codebuff 1.0.289 → 1.0.290

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.
Files changed (41) hide show
  1. package/dist/cli-handlers/checkpoint.d.ts +1 -1
  2. package/dist/cli.d.ts +1 -1
  3. package/dist/cli.js +1 -1
  4. package/dist/client.d.ts +1 -1
  5. package/dist/common/__tests__/project-file-tree.test.d.ts +1 -0
  6. package/dist/common/__tests__/project-file-tree.test.js +251 -0
  7. package/dist/common/__tests__/project-file-tree.test.js.map +1 -0
  8. package/dist/common/actions.d.ts +60 -60
  9. package/dist/common/json-config/__tests__/__snapshots__/stringify-schema.test.js.snap +119 -0
  10. package/dist/common/types/agent-state.d.ts +8 -8
  11. package/dist/common/types/message.d.ts +6 -6
  12. package/dist/common/types/usage.d.ts +2 -2
  13. package/dist/common/util/credentials.d.ts +2 -2
  14. package/dist/common/util/process-stream.d.ts +7 -0
  15. package/dist/common/util/process-stream.js +162 -0
  16. package/dist/common/util/process-stream.js.map +1 -0
  17. package/dist/common/websockets/websocket-schema.d.ts +112 -112
  18. package/dist/index.js +3 -3
  19. package/dist/readline.d.ts +22 -0
  20. package/dist/readline.js +180 -0
  21. package/dist/readline.js.map +1 -0
  22. package/dist/tool-handlers.js +3 -3
  23. package/dist/tool-handlers.js.map +1 -1
  24. package/dist/utils/__tests__/__snapshots__/background-process-manager.test.js.snap +137 -0
  25. package/dist/utils/__tests__/file-paths.test.d.ts +1 -0
  26. package/dist/utils/__tests__/file-paths.test.js +37 -0
  27. package/dist/utils/__tests__/file-paths.test.js.map +1 -0
  28. package/dist/utils/__tests__/path.test.d.ts +1 -0
  29. package/dist/utils/__tests__/path.test.js +37 -0
  30. package/dist/utils/__tests__/path.test.js.map +1 -0
  31. package/dist/utils/file-paths.d.ts +9 -0
  32. package/dist/utils/file-paths.js +24 -0
  33. package/dist/utils/file-paths.js.map +1 -0
  34. package/dist/utils/path.d.ts +9 -0
  35. package/dist/utils/path.js +27 -0
  36. package/dist/utils/path.js.map +1 -0
  37. package/dist/utils/spinner.js +1 -1
  38. package/package.json +1 -1
  39. package/dist/slash-commands.d.ts +0 -7
  40. package/dist/slash-commands.js +0 -21
  41. package/dist/slash-commands.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { Interface as ReadlineInterface } from 'readline';
1
+ import { Interface as ReadlineInterface } from '../readline';
2
2
  import type { Client } from '../client';
3
3
  export declare const checkpointCommands: {
4
4
  readonly save: readonly [readonly ["checkpoint"], "Save current state as a new checkpoint"];
package/dist/cli.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import * as readline from 'readline';
1
+ import * as readline from './readline';
2
2
  import { ProjectFileContext } from './common/util/file';
3
3
  import { CliOptions } from './types';
4
4
  export declare class CLI {
package/dist/cli.js CHANGED
@@ -28,7 +28,7 @@ const fs_1 = __importStar(require("fs"));
28
28
  const os = __importStar(require("os"));
29
29
  const os_1 = require("os");
30
30
  const path_1 = __importStar(require("path"));
31
- const readline = __importStar(require("readline"));
31
+ const readline = __importStar(require("./readline"));
32
32
  const analytics_events_1 = require("./common/constants/analytics-events");
33
33
  const string_1 = require("./common/util/string");
34
34
  const picocolors_1 = require("picocolors");
package/dist/client.d.ts CHANGED
@@ -117,9 +117,9 @@ export declare class Client {
117
117
  } | {
118
118
  type: "image";
119
119
  source: {
120
- data: string;
121
120
  type: "base64";
122
121
  media_type: "image/jpeg";
122
+ data: string;
123
123
  };
124
124
  cache_control?: {
125
125
  type: "ephemeral";
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,251 @@
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
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ // @ts-ignore
30
+ const bun_test_1 = require("bun:test");
31
+ const path_1 = __importDefault(require("path"));
32
+ const memfs_1 = require("memfs");
33
+ // Mock fs to use memfs's vol directly
34
+ bun_test_1.mock.module('fs', () => ({
35
+ existsSync: (path) => memfs_1.vol.existsSync(path),
36
+ readFileSync: (path, options) => memfs_1.vol.readFileSync(path, options),
37
+ }));
38
+ // Import fs after mocking to get the mocked version
39
+ const fs_1 = __importDefault(require("fs"));
40
+ const projectFileTreeModule = __importStar(require("../project-file-tree"));
41
+ const project_file_tree_1 = require("../project-file-tree");
42
+ // Basic memfs check
43
+ (0, bun_test_1.it)('memfs basic check', () => {
44
+ memfs_1.vol.reset();
45
+ memfs_1.vol.fromJSON({ '/testfile.txt': 'content' });
46
+ (0, bun_test_1.expect)(fs_1.default.existsSync('/testfile.txt')).toBe(true);
47
+ (0, bun_test_1.expect)(fs_1.default.readFileSync('/testfile.txt', 'utf8')).toBe('content');
48
+ });
49
+ (0, bun_test_1.describe)('parseGitignore', () => {
50
+ const projectRoot = '/project';
51
+ (0, bun_test_1.it)('handles empty .gitignore', () => {
52
+ memfs_1.vol.reset();
53
+ memfs_1.vol.fromJSON({
54
+ '/project/.gitignore': '',
55
+ });
56
+ const ig = (0, project_file_tree_1.parseGitignore)(projectRoot, projectRoot);
57
+ (0, bun_test_1.expect)(ig.ignores('file.txt')).toBe(false);
58
+ });
59
+ (0, bun_test_1.it)('ignores comments and blank lines', () => {
60
+ memfs_1.vol.reset();
61
+ memfs_1.vol.fromJSON({
62
+ '/project/.gitignore': `
63
+ # This is a comment
64
+
65
+ # Another comment
66
+ `,
67
+ });
68
+ const ig = (0, project_file_tree_1.parseGitignore)(projectRoot, projectRoot);
69
+ (0, bun_test_1.expect)(ig.ignores('file.txt')).toBe(false);
70
+ });
71
+ (0, bun_test_1.it)('handles simple file patterns', () => {
72
+ memfs_1.vol.reset();
73
+ memfs_1.vol.fromJSON({
74
+ '/project/.gitignore': `
75
+ file.txt
76
+ *.log
77
+ `,
78
+ });
79
+ const ig = (0, project_file_tree_1.parseGitignore)(projectRoot, projectRoot);
80
+ (0, bun_test_1.expect)(ig.ignores('file.txt')).toBe(true);
81
+ (0, bun_test_1.expect)(ig.ignores('debug.log')).toBe(true);
82
+ (0, bun_test_1.expect)(ig.ignores('src/error.log')).toBe(true);
83
+ (0, bun_test_1.expect)(ig.ignores('other.txt')).toBe(false);
84
+ });
85
+ (0, bun_test_1.it)('handles directory patterns', () => {
86
+ memfs_1.vol.reset();
87
+ memfs_1.vol.fromJSON({
88
+ '/project/.gitignore': 'build/',
89
+ });
90
+ const ig = (0, project_file_tree_1.parseGitignore)(projectRoot, projectRoot);
91
+ (0, bun_test_1.expect)(ig.ignores('build/output.js')).toBe(true);
92
+ (0, bun_test_1.expect)(ig.ignores('src/build/output.js')).toBe(true);
93
+ (0, bun_test_1.expect)(ig.ignores('building.js')).toBe(false);
94
+ });
95
+ (0, bun_test_1.it)('handles root-anchored patterns in root .gitignore', () => {
96
+ memfs_1.vol.reset();
97
+ memfs_1.vol.fromJSON({
98
+ '/project/.gitignore': '/config.js',
99
+ });
100
+ const ig = (0, project_file_tree_1.parseGitignore)(projectRoot, projectRoot);
101
+ (0, bun_test_1.expect)(ig.ignores('config.js')).toBe(true);
102
+ (0, bun_test_1.expect)(ig.ignores('src/config.js')).toBe(false);
103
+ });
104
+ (0, bun_test_1.it)('handles root-anchored patterns in subdirectory .gitignore', () => {
105
+ memfs_1.vol.reset();
106
+ memfs_1.vol.fromJSON({
107
+ '/project/src/.gitignore': '/config.js',
108
+ });
109
+ const ig = (0, project_file_tree_1.parseGitignore)(path_1.default.join(projectRoot, 'src'), projectRoot);
110
+ (0, bun_test_1.expect)(ig.ignores('config.js')).toBe(true);
111
+ (0, bun_test_1.expect)(ig.ignores('src/config.js')).toBe(false);
112
+ });
113
+ (0, bun_test_1.it)('handles negation patterns', () => {
114
+ memfs_1.vol.reset();
115
+ memfs_1.vol.fromJSON({
116
+ '/project/.gitignore': `
117
+ *.log
118
+ !important.log
119
+ `,
120
+ });
121
+ const ig = (0, project_file_tree_1.parseGitignore)(projectRoot, projectRoot);
122
+ (0, bun_test_1.expect)(ig.ignores('debug.log')).toBe(true);
123
+ (0, bun_test_1.expect)(ig.ignores('important.log')).toBe(false);
124
+ });
125
+ (0, bun_test_1.it)('handles patterns with leading/trailing whitespace', () => {
126
+ memfs_1.vol.reset();
127
+ memfs_1.vol.fromJSON({
128
+ '/project/.gitignore': `
129
+ \t file.txt \t
130
+ \t *.log \t
131
+ `,
132
+ });
133
+ const ig = (0, project_file_tree_1.parseGitignore)(projectRoot, projectRoot);
134
+ (0, bun_test_1.expect)(ig.ignores('file.txt')).toBe(true);
135
+ (0, bun_test_1.expect)(ig.ignores('debug.log')).toBe(true);
136
+ });
137
+ (0, bun_test_1.it)('handles .codebuffignore and .manicodeignore', () => {
138
+ memfs_1.vol.reset();
139
+ memfs_1.vol.fromJSON({
140
+ '/project/.codebuffignore': 'codebuff.log',
141
+ '/project/.manicodeignore': 'manicode.log',
142
+ });
143
+ const ig = (0, project_file_tree_1.parseGitignore)(projectRoot, projectRoot);
144
+ (0, bun_test_1.expect)(ig.ignores('codebuff.log')).toBe(true);
145
+ (0, bun_test_1.expect)(ig.ignores('manicode.log')).toBe(true);
146
+ (0, bun_test_1.expect)(ig.ignores('other.log')).toBe(false);
147
+ });
148
+ (0, bun_test_1.it)('handles multiple ignore files in the same directory', () => {
149
+ memfs_1.vol.reset();
150
+ memfs_1.vol.fromJSON({
151
+ '/project/.gitignore': 'git.log',
152
+ '/project/.codebuffignore': 'codebuff.log',
153
+ '/project/.manicodeignore': '!git.log', // Should not un-ignore git.log
154
+ });
155
+ const ig = (0, project_file_tree_1.parseGitignore)(projectRoot, projectRoot);
156
+ (0, bun_test_1.expect)(ig.ignores('git.log')).toBe(true);
157
+ (0, bun_test_1.expect)(ig.ignores('codebuff.log')).toBe(true);
158
+ });
159
+ (0, bun_test_1.it)('handles Windows-style backslashes', () => {
160
+ memfs_1.vol.reset();
161
+ memfs_1.vol.fromJSON({
162
+ '/project/.gitignore': 'src\\build\\output.js',
163
+ });
164
+ const ig = (0, project_file_tree_1.parseGitignore)(projectRoot, projectRoot);
165
+ (0, bun_test_1.expect)(ig.ignores('src/build/output.js')).toBe(true);
166
+ });
167
+ (0, bun_test_1.it)('handles patterns relative to subdirectory .gitignore', () => {
168
+ memfs_1.vol.reset();
169
+ memfs_1.vol.fromJSON({
170
+ '/project/src/.gitignore': 'build/',
171
+ });
172
+ const ig = (0, project_file_tree_1.parseGitignore)(path_1.default.join(projectRoot, 'src'), projectRoot);
173
+ (0, bun_test_1.expect)(ig.ignores('src/build/output.js')).toBe(true);
174
+ (0, bun_test_1.expect)(ig.ignores('build/output.js')).toBe(false);
175
+ });
176
+ (0, bun_test_1.it)('calls fs.existsSync and fs.readFileSync for each ignore file', () => {
177
+ memfs_1.vol.reset();
178
+ memfs_1.vol.fromJSON({
179
+ '/project/.gitignore': 'git.log',
180
+ '/project/.codebuffignore': 'codebuff.log',
181
+ });
182
+ const existsSpy = bun_test_1.mock.spyOn(fs_1.default, 'existsSync');
183
+ const readSpy = bun_test_1.mock.spyOn(fs_1.default, 'readFileSync');
184
+ (0, project_file_tree_1.parseGitignore)(projectRoot, projectRoot);
185
+ // Should check for all three possible ignore files
186
+ (0, bun_test_1.expect)(existsSpy).toHaveBeenCalledTimes(3);
187
+ (0, bun_test_1.expect)(existsSpy).toHaveBeenCalledWith(path_1.default.join(projectRoot, '.gitignore'));
188
+ (0, bun_test_1.expect)(existsSpy).toHaveBeenCalledWith(path_1.default.join(projectRoot, '.codebuffignore'));
189
+ (0, bun_test_1.expect)(existsSpy).toHaveBeenCalledWith(path_1.default.join(projectRoot, '.manicodeignore'));
190
+ // Should read the two files that exist
191
+ (0, bun_test_1.expect)(readSpy).toHaveBeenCalledTimes(2);
192
+ (0, bun_test_1.expect)(readSpy).toHaveBeenCalledWith(path_1.default.join(projectRoot, '.gitignore'), 'utf8');
193
+ (0, bun_test_1.expect)(readSpy).toHaveBeenCalledWith(path_1.default.join(projectRoot, '.codebuffignore'), 'utf8');
194
+ existsSpy.mockRestore();
195
+ readSpy.mockRestore();
196
+ });
197
+ });
198
+ (0, bun_test_1.describe)('isFileIgnored', () => {
199
+ const projectRoot = '/project';
200
+ (0, bun_test_1.it)('aggregates ignore rules from parent directories', () => {
201
+ memfs_1.vol.reset();
202
+ memfs_1.vol.fromJSON({
203
+ '/project/.gitignore': '*.log',
204
+ '/project/src/.gitignore': 'build/',
205
+ '/project/src/frontend/.gitignore': '*.min.js',
206
+ });
207
+ const parseGitignoreSpy = bun_test_1.mock.spyOn(projectFileTreeModule, 'parseGitignore');
208
+ // Root .gitignore pattern
209
+ (0, bun_test_1.expect)((0, project_file_tree_1.isFileIgnored)('debug.log', projectRoot)).toBe(true);
210
+ (0, bun_test_1.expect)((0, project_file_tree_1.isFileIgnored)('src/error.log', projectRoot)).toBe(true);
211
+ // src/.gitignore pattern
212
+ (0, bun_test_1.expect)((0, project_file_tree_1.isFileIgnored)('src/build/output.js', projectRoot)).toBe(true);
213
+ (0, bun_test_1.expect)((0, project_file_tree_1.isFileIgnored)('other/build/output.js', projectRoot)).toBe(false);
214
+ // src/frontend/.gitignore pattern
215
+ (0, bun_test_1.expect)((0, project_file_tree_1.isFileIgnored)('src/frontend/app.min.js', projectRoot)).toBe(true);
216
+ (0, bun_test_1.expect)((0, project_file_tree_1.isFileIgnored)('src/frontend/app.js', projectRoot)).toBe(false);
217
+ // Should call parseGitignore for each directory up to root
218
+ (0, bun_test_1.expect)(parseGitignoreSpy).toHaveBeenCalledTimes(3);
219
+ parseGitignoreSpy.mockRestore();
220
+ });
221
+ (0, bun_test_1.it)('handles root-anchored patterns in subdirectories', () => {
222
+ memfs_1.vol.reset();
223
+ memfs_1.vol.fromJSON({
224
+ '/project/src/.gitignore': '/config.js',
225
+ });
226
+ (0, bun_test_1.expect)((0, project_file_tree_1.isFileIgnored)('config.js', projectRoot)).toBe(true);
227
+ (0, bun_test_1.expect)((0, project_file_tree_1.isFileIgnored)('src/config.js', projectRoot)).toBe(false);
228
+ });
229
+ (0, bun_test_1.it)('handles negation patterns across directories', () => {
230
+ memfs_1.vol.reset();
231
+ memfs_1.vol.fromJSON({
232
+ '/project/.gitignore': '*.log',
233
+ '/project/src/.gitignore': '!important.log',
234
+ });
235
+ (0, bun_test_1.expect)((0, project_file_tree_1.isFileIgnored)('debug.log', projectRoot)).toBe(true);
236
+ (0, bun_test_1.expect)((0, project_file_tree_1.isFileIgnored)('src/important.log', projectRoot)).toBe(false);
237
+ });
238
+ (0, bun_test_1.it)('handles multiple ignore files in the same directory', () => {
239
+ memfs_1.vol.reset();
240
+ memfs_1.vol.fromJSON({
241
+ '/project/src/.gitignore': 'git.log',
242
+ '/project/src/.codebuffignore': 'codebuff.log',
243
+ '/project/src/.manicodeignore': 'manicode.log',
244
+ });
245
+ (0, bun_test_1.expect)((0, project_file_tree_1.isFileIgnored)('src/git.log', projectRoot)).toBe(true);
246
+ (0, bun_test_1.expect)((0, project_file_tree_1.isFileIgnored)('src/codebuff.log', projectRoot)).toBe(true);
247
+ (0, bun_test_1.expect)((0, project_file_tree_1.isFileIgnored)('src/manicode.log', projectRoot)).toBe(true);
248
+ (0, bun_test_1.expect)((0, project_file_tree_1.isFileIgnored)('src/other.log', projectRoot)).toBe(false);
249
+ });
250
+ });
251
+ //# sourceMappingURL=project-file-tree.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-file-tree.test.js","sourceRoot":"","sources":["../../src/__tests__/project-file-tree.test.ts"],"names":[],"mappings":"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"}