codebuff 1.0.127 → 1.0.129
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/dist/__tests__/tool-handlers.test.d.ts +1 -0
- package/dist/__tests__/tool-handlers.test.js +32 -0
- package/dist/__tests__/tool-handlers.test.js.map +1 -0
- package/dist/cli.js +1 -2
- package/dist/cli.js.map +1 -1
- package/dist/client.d.ts +2 -2
- package/dist/client.js +1 -1
- package/dist/client.js.map +1 -1
- package/dist/common/actions.d.ts +86 -86
- package/dist/common/billing/quota-manager.js +1 -1
- package/dist/common/billing/quota-manager.js.map +1 -1
- package/dist/common/constants.d.ts +20 -4
- package/dist/common/constants.js +64 -17
- package/dist/common/constants.js.map +1 -1
- package/dist/common/types/plan.d.ts +24 -0
- package/dist/common/types/plan.js +3 -0
- package/dist/common/types/plan.js.map +1 -0
- package/dist/common/util/promise.d.ts +7 -0
- package/dist/common/util/promise.js +23 -1
- package/dist/common/util/promise.js.map +1 -1
- package/dist/common/util/string.d.ts +1 -0
- package/dist/common/util/string.js +7 -1
- package/dist/common/util/string.js.map +1 -1
- package/dist/common/websockets/websocket-schema.d.ts +176 -176
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/tool-handlers.d.ts +1 -1
- package/dist/tool-handlers.js +134 -60
- package/dist/tool-handlers.js.map +1 -1
- package/package.json +4 -1
package/dist/index.js
CHANGED
|
@@ -14,8 +14,10 @@ const picocolors_1 = require("picocolors");
|
|
|
14
14
|
const cli_1 = require("./cli");
|
|
15
15
|
const project_files_1 = require("./project-files");
|
|
16
16
|
const update_codebuff_1 = require("./update-codebuff");
|
|
17
|
+
const tool_handlers_1 = require("./tool-handlers");
|
|
17
18
|
async function codebuff(projectDir, { initialInput, git, costMode }) {
|
|
18
19
|
const dir = (0, project_files_1.setProjectRoot)(projectDir);
|
|
20
|
+
(0, tool_handlers_1.resetPtyShell)(dir);
|
|
19
21
|
const updatePromise = (0, update_codebuff_1.updateCodebuff)();
|
|
20
22
|
const initFileContextPromise = (0, project_files_1.initProjectFileContextWithWorker)(dir);
|
|
21
23
|
const readyPromise = Promise.all([updatePromise, initFileContextPromise]);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAEA,4CAAmB;AAEnB,gDAAuB;AACvB,2CAAqD;AAErD,+BAA2B;AAC3B,mDAGwB;AACxB,uDAAkD;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/tool-handlers.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
export type ToolHandler = (input: any, id: string) => Promise<string>;
|
|
2
2
|
export declare const handleScrapeWebPage: ToolHandler;
|
|
3
|
+
export declare const resetPtyShell: (dir: string) => void;
|
|
3
4
|
export declare const handleRunTerminalCommand: (input: {
|
|
4
5
|
command: string;
|
|
5
6
|
}, id: string, mode: "user" | "assistant") => Promise<{
|
|
6
7
|
result: string;
|
|
7
8
|
stdout: string;
|
|
8
|
-
stderr: string;
|
|
9
9
|
}>;
|
|
10
10
|
export declare const handleCodeSearch: ToolHandler;
|
|
11
11
|
export declare const toolHandlers: Record<string, ToolHandler>;
|
package/dist/tool-handlers.js
CHANGED
|
@@ -1,13 +1,38 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
27
|
};
|
|
5
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.toolHandlers = exports.handleCodeSearch = exports.handleRunTerminalCommand = exports.handleScrapeWebPage = void 0;
|
|
29
|
+
exports.toolHandlers = exports.handleCodeSearch = exports.handleRunTerminalCommand = exports.resetPtyShell = exports.handleScrapeWebPage = void 0;
|
|
7
30
|
const child_process_1 = require("child_process");
|
|
8
31
|
const path_1 = __importDefault(require("path"));
|
|
9
32
|
const picocolors_1 = require("picocolors");
|
|
10
33
|
const ripgrep_1 = require("@vscode/ripgrep");
|
|
34
|
+
const os = __importStar(require("os"));
|
|
35
|
+
const pty = __importStar(require("@homebridge/node-pty-prebuilt-multiarch"));
|
|
11
36
|
const web_scraper_1 = require("./web-scraper");
|
|
12
37
|
const project_files_1 = require("./project-files");
|
|
13
38
|
const handleScrapeWebPage = async (input, id) => {
|
|
@@ -19,87 +44,133 @@ const handleScrapeWebPage = async (input, id) => {
|
|
|
19
44
|
return `<web_scraped_content url="${url}">${content}</web_scraped_content>`;
|
|
20
45
|
};
|
|
21
46
|
exports.handleScrapeWebPage = handleScrapeWebPage;
|
|
47
|
+
const createPty = (dir) => {
|
|
48
|
+
const isWindows = os.platform() === 'win32';
|
|
49
|
+
const shell = os.platform() === 'win32' ? 'powershell.exe' : 'bash';
|
|
50
|
+
const persistentPty = pty.spawn(shell, [], {
|
|
51
|
+
name: 'xterm-256color',
|
|
52
|
+
cols: process.stdout.columns || 80,
|
|
53
|
+
rows: process.stdout.rows || 24,
|
|
54
|
+
cwd: dir,
|
|
55
|
+
env: {
|
|
56
|
+
...process.env,
|
|
57
|
+
TERM: 'xterm-256color',
|
|
58
|
+
PAGER: 'cat',
|
|
59
|
+
GIT_PAGER: 'cat',
|
|
60
|
+
GIT_TERMINAL_PROMPT: '0',
|
|
61
|
+
...(isWindows ? { TERM: 'cygwin' } : {}),
|
|
62
|
+
LESS: '-FRX',
|
|
63
|
+
TERM_PROGRAM: 'mintty',
|
|
64
|
+
},
|
|
65
|
+
});
|
|
66
|
+
return persistentPty;
|
|
67
|
+
};
|
|
68
|
+
let persistentPty = null;
|
|
69
|
+
const resetPtyShell = (dir) => {
|
|
70
|
+
if (persistentPty) {
|
|
71
|
+
persistentPty.kill();
|
|
72
|
+
}
|
|
73
|
+
persistentPty = createPty(dir);
|
|
74
|
+
};
|
|
75
|
+
exports.resetPtyShell = resetPtyShell;
|
|
22
76
|
const handleRunTerminalCommand = async (input, id, mode) => {
|
|
77
|
+
// Note: With PTY, all output comes through stdout since it emulates a real terminal
|
|
23
78
|
const { command } = input;
|
|
24
79
|
return new Promise((resolve) => {
|
|
25
|
-
|
|
26
|
-
|
|
80
|
+
if (!persistentPty) {
|
|
81
|
+
throw new Error('Persistent PTY not initialized');
|
|
82
|
+
}
|
|
83
|
+
const ptyProcess = persistentPty;
|
|
27
84
|
const MAX_EXECUTION_TIME = 10_000;
|
|
85
|
+
let commandOutput = '';
|
|
86
|
+
let foundFirstNewLine = false;
|
|
28
87
|
if (mode === 'assistant') {
|
|
29
88
|
console.log();
|
|
30
89
|
console.log((0, picocolors_1.green)(`> ${command}`));
|
|
31
90
|
}
|
|
32
|
-
const childProcess = (0, child_process_1.spawn)(command, {
|
|
33
|
-
shell: true,
|
|
34
|
-
cwd: (0, project_files_1.getProjectRoot)(),
|
|
35
|
-
});
|
|
36
91
|
const timer = setTimeout(() => {
|
|
37
92
|
if (mode === 'assistant') {
|
|
38
|
-
|
|
93
|
+
// Kill and recreate PTY
|
|
94
|
+
(0, exports.resetPtyShell)((0, project_files_1.getProjectRoot)());
|
|
39
95
|
resolve({
|
|
40
|
-
result: formatResult(
|
|
41
|
-
stdout,
|
|
42
|
-
stderr,
|
|
96
|
+
result: formatResult(commandOutput, undefined, `Command timed out after ${MAX_EXECUTION_TIME / 1000} seconds and was terminated. Shell has been restarted.`),
|
|
97
|
+
stdout: commandOutput,
|
|
43
98
|
});
|
|
44
99
|
}
|
|
45
100
|
}, MAX_EXECUTION_TIME);
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
101
|
+
const dataDisposable = ptyProcess.onData((data) => {
|
|
102
|
+
const prefix = commandOutput + data;
|
|
103
|
+
// Skip the first line of the output, because it's the command being printed.
|
|
104
|
+
if (!foundFirstNewLine) {
|
|
105
|
+
if (!prefix.includes('\n')) {
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
foundFirstNewLine = true;
|
|
109
|
+
const newLineIndex = prefix.indexOf('\n');
|
|
110
|
+
data = prefix.slice(newLineIndex + 1);
|
|
111
|
+
}
|
|
112
|
+
// Try to detect error messages in the output
|
|
53
113
|
if (mode === 'user' &&
|
|
54
114
|
// Mac
|
|
55
|
-
(
|
|
115
|
+
(data.includes('command not found') ||
|
|
56
116
|
// Linux
|
|
57
|
-
|
|
117
|
+
data.includes(': not found') ||
|
|
58
118
|
// Common
|
|
59
|
-
|
|
119
|
+
data.includes('syntax error:') ||
|
|
60
120
|
// Linux
|
|
61
|
-
|
|
121
|
+
data.includes('Syntax error:') ||
|
|
62
122
|
// Windows
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
123
|
+
data.includes('is not recognized as an internal or external command') ||
|
|
124
|
+
data.includes('/bin/sh: -c: line') ||
|
|
125
|
+
data.includes('/bin/sh: line') ||
|
|
126
|
+
data.startsWith('fatal:') ||
|
|
127
|
+
data.startsWith('error:') ||
|
|
128
|
+
data.startsWith('Der Befehl') ||
|
|
129
|
+
data.includes('ist entweder falsch geschrieben oder konnte nicht gefunden werden'))) {
|
|
130
|
+
clearTimeout(timer);
|
|
131
|
+
dataDisposable.dispose();
|
|
70
132
|
resolve({
|
|
71
133
|
result: 'command not found',
|
|
72
|
-
stdout,
|
|
73
|
-
stderr,
|
|
134
|
+
stdout: commandOutput,
|
|
74
135
|
});
|
|
136
|
+
return;
|
|
75
137
|
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
stdout
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
138
|
+
// Detect the end of the command output if the prompt is printed.
|
|
139
|
+
// Windows PowerShell prompt pattern: "MM/DD HH:mm Path ►"
|
|
140
|
+
const simpleWindowsPromptRegex = /\d{2}:\d{2}.*►/;
|
|
141
|
+
// Another PowerShell prompt: "PS C:\jahooma\www\Finance-Scraper>"
|
|
142
|
+
const simpleWindowsPromptRegex2 = /PS [A-Z]:\\.*>/;
|
|
143
|
+
const hasSimplePromptOnWindows = simpleWindowsPromptRegex.test(prefix);
|
|
144
|
+
const hasSimplePromptOnWindows2 = simpleWindowsPromptRegex2.test(prefix);
|
|
145
|
+
if (prefix.includes('bash-3.2$ ') ||
|
|
146
|
+
hasSimplePromptOnWindows ||
|
|
147
|
+
hasSimplePromptOnWindows2) {
|
|
148
|
+
commandOutput += data;
|
|
149
|
+
process.stdout.write(data);
|
|
150
|
+
process.stdout.clearLine(0);
|
|
151
|
+
process.stdout.cursorTo(0);
|
|
152
|
+
clearTimeout(timer);
|
|
153
|
+
dataDisposable.dispose();
|
|
154
|
+
if (command.startsWith('cd ') && mode === 'user') {
|
|
155
|
+
const newWorkingDirectory = command.split(' ')[1];
|
|
156
|
+
(0, project_files_1.setProjectRoot)(path_1.default.join((0, project_files_1.getProjectRoot)(), newWorkingDirectory));
|
|
157
|
+
}
|
|
158
|
+
if (mode === 'assistant') {
|
|
159
|
+
console.log((0, picocolors_1.green)(`Command completed`));
|
|
160
|
+
}
|
|
161
|
+
// Reset the PTY to the project root
|
|
162
|
+
ptyProcess.write(`cd ${(0, project_files_1.getProjectRoot)()}\r`);
|
|
163
|
+
resolve({
|
|
164
|
+
result: formatResult(commandOutput, undefined, 'Command completed'),
|
|
165
|
+
stdout: commandOutput,
|
|
166
|
+
});
|
|
167
|
+
return;
|
|
93
168
|
}
|
|
169
|
+
process.stdout.write(data);
|
|
170
|
+
commandOutput += data;
|
|
94
171
|
});
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
resolve({
|
|
98
|
-
result: `<terminal_command_error>Failed to execute command: ${error.message}</terminal_command_error>`,
|
|
99
|
-
stdout,
|
|
100
|
-
stderr,
|
|
101
|
-
});
|
|
102
|
-
});
|
|
172
|
+
// Write the command
|
|
173
|
+
ptyProcess.write(command + '\r');
|
|
103
174
|
});
|
|
104
175
|
};
|
|
105
176
|
exports.handleRunTerminalCommand = handleRunTerminalCommand;
|
|
@@ -111,7 +182,9 @@ const truncate = (str, maxLength) => {
|
|
|
111
182
|
function formatResult(stdout, stderr, status, exitCode) {
|
|
112
183
|
let result = '<terminal_command_result>\n';
|
|
113
184
|
result += `<stdout>${truncate(stdout, 10000)}</stdout>\n`;
|
|
114
|
-
|
|
185
|
+
if (stderr !== undefined) {
|
|
186
|
+
result += `<stderr>${truncate(stderr, 10000)}</stderr>\n`;
|
|
187
|
+
}
|
|
115
188
|
if (status !== undefined) {
|
|
116
189
|
result += `<status>${status}</status>\n`;
|
|
117
190
|
}
|
|
@@ -125,9 +198,10 @@ const handleCodeSearch = async (input, id) => {
|
|
|
125
198
|
return new Promise((resolve) => {
|
|
126
199
|
let stdout = '';
|
|
127
200
|
let stderr = '';
|
|
128
|
-
const
|
|
201
|
+
const pattern = input.pattern.replace(/"/g, '');
|
|
202
|
+
const command = `${path_1.default.resolve(ripgrep_1.rgPath)} "${pattern}" .`;
|
|
129
203
|
console.log();
|
|
130
|
-
console.log((0, picocolors_1.green)(`Searching project for: ${
|
|
204
|
+
console.log((0, picocolors_1.green)(`Searching project for: ${pattern}`));
|
|
131
205
|
const childProcess = (0, child_process_1.spawn)(command, {
|
|
132
206
|
cwd: (0, project_files_1.getProjectRoot)(),
|
|
133
207
|
shell: true,
|
|
@@ -139,7 +213,7 @@ const handleCodeSearch = async (input, id) => {
|
|
|
139
213
|
stderr += data.toString();
|
|
140
214
|
});
|
|
141
215
|
childProcess.on('close', (code) => {
|
|
142
|
-
console.log();
|
|
216
|
+
console.log((0, picocolors_1.green)(`${stdout.split('\n').length - 1} results`));
|
|
143
217
|
const truncatedStdout = truncate(stdout, 10000);
|
|
144
218
|
const truncatedStderr = truncate(stderr, 1000);
|
|
145
219
|
resolve(formatResult(truncatedStdout, truncatedStderr, 'Code search completed', code));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-handlers.js","sourceRoot":"","sources":["../src/tool-handlers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tool-handlers.js","sourceRoot":"","sources":["../src/tool-handlers.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "codebuff",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.129",
|
|
4
4
|
"description": "AI dev assistant",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
"prepublishOnly": "bun run build && bun run clean-package.js",
|
|
17
17
|
"postpublish": "echo \"const fs=require('fs');fs.copyFileSync('temp.package.json','package.json');fs.unlinkSync('temp.package.json');\" | bun run -",
|
|
18
18
|
"format": "prettier --write \"**/*.{ts,tsx,json,md}\"",
|
|
19
|
+
"test": "jest",
|
|
19
20
|
"start-js": "bun run with-env -- node dist/index.js ..",
|
|
20
21
|
"start": "bun run with-env -- ts-node src/index.ts .. --git stage",
|
|
21
22
|
"start-dir": "bun run with-env -- ts-node src/index.ts",
|
|
@@ -35,6 +36,7 @@
|
|
|
35
36
|
"node": ">=14"
|
|
36
37
|
},
|
|
37
38
|
"dependencies": {
|
|
39
|
+
"@homebridge/node-pty-prebuilt-multiarch": "0.11.14",
|
|
38
40
|
"@types/diff": "5.2.1",
|
|
39
41
|
"@vscode/ripgrep": "1.15.9",
|
|
40
42
|
"axios": "1.7.4",
|
|
@@ -63,6 +65,7 @@
|
|
|
63
65
|
"zod": "3.23.8"
|
|
64
66
|
},
|
|
65
67
|
"trustedDependencies": [
|
|
68
|
+
"@homebridge/node-pty-prebuilt-multiarch",
|
|
66
69
|
"@vscode/ripgrep"
|
|
67
70
|
]
|
|
68
71
|
}
|