codebuff 1.0.233 → 1.0.234

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 (130) hide show
  1. package/dist/code-map/tsconfig.tsbuildinfo +1 -1
  2. package/dist/common/json-config/__tests__/__snapshots__/stringify-schema.test.js.snap +66 -0
  3. package/dist/common/types/usage.d.ts +4 -4
  4. package/package.json +1 -1
  5. package/dist/background-process-manager.d.ts +0 -50
  6. package/dist/background-process-manager.js +0 -320
  7. package/dist/background-process-manager.js.map +0 -1
  8. package/dist/browser-runner.d.ts +0 -35
  9. package/dist/browser-runner.js +0 -680
  10. package/dist/browser-runner.js.map +0 -1
  11. package/dist/chat-storage.d.ts +0 -2
  12. package/dist/chat-storage.js +0 -93
  13. package/dist/chat-storage.js.map +0 -1
  14. package/dist/checkpoints/checkpoint-manager.d.ts +0 -94
  15. package/dist/checkpoints/checkpoint-manager.js +0 -280
  16. package/dist/checkpoints/checkpoint-manager.js.map +0 -1
  17. package/dist/checkpoints/file-manager.d.ts +0 -72
  18. package/dist/checkpoints/file-manager.js +0 -311
  19. package/dist/checkpoints/file-manager.js.map +0 -1
  20. package/dist/cli-handlers/api-key.d.ts +0 -25
  21. package/dist/cli-handlers/api-key.js +0 -66
  22. package/dist/cli-handlers/api-key.js.map +0 -1
  23. package/dist/cli-handlers/checkpoint.d.ts +0 -18
  24. package/dist/cli-handlers/checkpoint.js +0 -195
  25. package/dist/cli-handlers/checkpoint.js.map +0 -1
  26. package/dist/cli-handlers/diff.d.ts +0 -2
  27. package/dist/cli-handlers/diff.js +0 -31
  28. package/dist/cli-handlers/diff.js.map +0 -1
  29. package/dist/cli-handlers/easter-egg.d.ts +0 -1
  30. package/dist/cli-handlers/easter-egg.js +0 -126
  31. package/dist/cli-handlers/easter-egg.js.map +0 -1
  32. package/dist/cli-handlers/inititalization-flow.d.ts +0 -1
  33. package/dist/cli-handlers/inititalization-flow.js +0 -24
  34. package/dist/cli-handlers/inititalization-flow.js.map +0 -1
  35. package/dist/cli.d.ts +0 -42
  36. package/dist/cli.js +0 -451
  37. package/dist/cli.js.map +0 -1
  38. package/dist/client.d.ts +0 -139
  39. package/dist/client.js +0 -791
  40. package/dist/client.js.map +0 -1
  41. package/dist/common/billing/quota-manager.d.ts +0 -29
  42. package/dist/common/billing/quota-manager.js +0 -251
  43. package/dist/common/billing/quota-manager.js.map +0 -1
  44. package/dist/common/logger.d.ts +0 -1
  45. package/dist/common/logger.js +0 -7
  46. package/dist/common/logger.js.map +0 -1
  47. package/dist/common/util/constants.d.ts +0 -1
  48. package/dist/common/util/constants.js +0 -7
  49. package/dist/common/util/constants.js.map +0 -1
  50. package/dist/common/util/helpers.d.ts +0 -1
  51. package/dist/common/util/helpers.js +0 -6
  52. package/dist/common/util/helpers.js.map +0 -1
  53. package/dist/common/util/token-counter.d.ts +0 -3
  54. package/dist/common/util/token-counter.js +0 -27
  55. package/dist/common/util/token-counter.js.map +0 -1
  56. package/dist/common/util/tools.d.ts +0 -2
  57. package/dist/common/util/tools.js +0 -13
  58. package/dist/common/util/tools.js.map +0 -1
  59. package/dist/config.d.ts +0 -4
  60. package/dist/config.js +0 -12
  61. package/dist/config.js.map +0 -1
  62. package/dist/create-template-project.d.ts +0 -1
  63. package/dist/create-template-project.js +0 -107
  64. package/dist/create-template-project.js.map +0 -1
  65. package/dist/credentials.d.ts +0 -4
  66. package/dist/credentials.js +0 -38
  67. package/dist/credentials.js.map +0 -1
  68. package/dist/dev-process-manager.d.ts +0 -10
  69. package/dist/dev-process-manager.js +0 -54
  70. package/dist/dev-process-manager.js.map +0 -1
  71. package/dist/fingerprint.d.ts +0 -1
  72. package/dist/fingerprint.js +0 -48
  73. package/dist/fingerprint.js.map +0 -1
  74. package/dist/index.d.ts +0 -2
  75. package/dist/index.js +0 -106
  76. package/dist/index.js.map +0 -1
  77. package/dist/menu.d.ts +0 -3
  78. package/dist/menu.js +0 -124
  79. package/dist/menu.js.map +0 -1
  80. package/dist/project-files.d.ts +0 -114
  81. package/dist/project-files.js +0 -513
  82. package/dist/project-files.js.map +0 -1
  83. package/dist/startup-process-handler.d.ts +0 -2
  84. package/dist/startup-process-handler.js +0 -21
  85. package/dist/startup-process-handler.js.map +0 -1
  86. package/dist/tool-handlers.d.ts +0 -28
  87. package/dist/tool-handlers.js +0 -240
  88. package/dist/tool-handlers.js.map +0 -1
  89. package/dist/types.d.ts +0 -8
  90. package/dist/types.js +0 -3
  91. package/dist/types.js.map +0 -1
  92. package/dist/update-codebuff.d.ts +0 -1
  93. package/dist/update-codebuff.js +0 -158
  94. package/dist/update-codebuff.js.map +0 -1
  95. package/dist/utils/__tests__/background-process-manager.test.d.ts +0 -1
  96. package/dist/utils/__tests__/background-process-manager.test.js +0 -289
  97. package/dist/utils/__tests__/background-process-manager.test.js.map +0 -1
  98. package/dist/utils/__tests__/tool-renderers.test.d.ts +0 -1
  99. package/dist/utils/__tests__/tool-renderers.test.js +0 -51
  100. package/dist/utils/__tests__/tool-renderers.test.js.map +0 -1
  101. package/dist/utils/__tests__/xml-stream-parser.test.d.ts +0 -1
  102. package/dist/utils/__tests__/xml-stream-parser.test.js +0 -229
  103. package/dist/utils/__tests__/xml-stream-parser.test.js.map +0 -1
  104. package/dist/utils/detect-shell.d.ts +0 -1
  105. package/dist/utils/detect-shell.js +0 -60
  106. package/dist/utils/detect-shell.js.map +0 -1
  107. package/dist/utils/spinner.d.ts +0 -11
  108. package/dist/utils/spinner.js +0 -87
  109. package/dist/utils/spinner.js.map +0 -1
  110. package/dist/utils/system-info.d.ts +0 -8
  111. package/dist/utils/system-info.js +0 -22
  112. package/dist/utils/system-info.js.map +0 -1
  113. package/dist/utils/terminal.d.ts +0 -38
  114. package/dist/utils/terminal.js +0 -459
  115. package/dist/utils/terminal.js.map +0 -1
  116. package/dist/utils/tool-renderers.d.ts +0 -16
  117. package/dist/utils/tool-renderers.js +0 -145
  118. package/dist/utils/tool-renderers.js.map +0 -1
  119. package/dist/utils/xml-stream-parser.d.ts +0 -9
  120. package/dist/utils/xml-stream-parser.js +0 -128
  121. package/dist/utils/xml-stream-parser.js.map +0 -1
  122. package/dist/web-scraper.d.ts +0 -3
  123. package/dist/web-scraper.js +0 -57
  124. package/dist/web-scraper.js.map +0 -1
  125. package/dist/workers/checkpoint-worker.d.ts +0 -1
  126. package/dist/workers/checkpoint-worker.js +0 -48
  127. package/dist/workers/checkpoint-worker.js.map +0 -1
  128. package/dist/workers/project-context.d.ts +0 -1
  129. package/dist/workers/project-context.js +0 -17
  130. package/dist/workers/project-context.js.map +0 -1
@@ -1,240 +0,0 @@
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
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.handleToolCall = exports.toolHandlers = exports.handleCodeSearch = exports.handleRunTerminalCommand = exports.handleScrapeWebPage = exports.handleWriteFile = void 0;
27
- const child_process_1 = require("child_process");
28
- const path = __importStar(require("path"));
29
- const ripgrep_1 = require("@vscode/ripgrep");
30
- const actions_1 = require("./common/actions");
31
- const browser_actions_1 = require("./common/browser-actions");
32
- const changes_1 = require("./common/util/changes");
33
- const string_1 = require("./common/util/string");
34
- const picocolors_1 = require("picocolors");
35
- const browser_runner_1 = require("./browser-runner");
36
- const spinner_1 = require("./utils/spinner");
37
- const terminal_1 = require("./utils/terminal");
38
- const web_scraper_1 = require("./web-scraper");
39
- const handleWriteFile = async (parameters, _id, projectPath) => {
40
- const fileChange = actions_1.FileChangeSchema.parse(parameters);
41
- const { created, modified, ignored } = (0, changes_1.applyChanges)(projectPath, [fileChange]);
42
- let result = [];
43
- // Calculate added/deleted lines from the diff content
44
- const lines = fileChange.content.split('\n');
45
- let addedLines = 0;
46
- let deletedLines = 0;
47
- lines.forEach((line) => {
48
- if (line.startsWith('+') && !line.startsWith('@@')) {
49
- addedLines++;
50
- }
51
- else if (line.startsWith('-') && !line.startsWith('@@')) {
52
- deletedLines++;
53
- }
54
- });
55
- for (const file of created) {
56
- const counts = `(${(0, picocolors_1.green)(`+${addedLines}`)})`;
57
- result.push(`Wrote to ${file} successfully.`);
58
- console.log((0, picocolors_1.green)(`- Created ${file} ${counts}`));
59
- }
60
- for (const file of modified) {
61
- const counts = `(${(0, picocolors_1.green)(`+${addedLines}`)}, ${(0, picocolors_1.red)(`-${deletedLines}`)})`;
62
- result.push(`Wrote to ${file} successfully.`);
63
- console.log((0, picocolors_1.green)(`- Updated ${file} ${counts}`));
64
- }
65
- for (const file of ignored) {
66
- result.push(`Failed to write to ${file}; file is ignored by .gitignore or .codebuffignore`);
67
- }
68
- return result.join('\n');
69
- };
70
- exports.handleWriteFile = handleWriteFile;
71
- const handleScrapeWebPage = async (parameters) => {
72
- const { url } = parameters;
73
- const content = await (0, web_scraper_1.scrapeWebPage)(url);
74
- if (!content) {
75
- return `<web_scraping_error url="${url}">Failed to scrape the web page.</web_scraping_error>`;
76
- }
77
- return `<web_scraped_content url="${url}">${content}</web_scraped_content>`;
78
- };
79
- exports.handleScrapeWebPage = handleScrapeWebPage;
80
- const handleRunTerminalCommand = async (parameters, id, projectPath) => {
81
- const { command, mode = 'assistant', process_type = 'SYNC' } = parameters;
82
- return (0, terminal_1.runTerminalCommand)(id, command, mode, projectPath, process_type.toUpperCase());
83
- };
84
- exports.handleRunTerminalCommand = handleRunTerminalCommand;
85
- const handleCodeSearch = async (parameters, _id, projectPath) => {
86
- return new Promise((resolve) => {
87
- let stdout = '';
88
- let stderr = '';
89
- const basename = path.basename(projectPath);
90
- const pattern = parameters.pattern.replace(/"/g, '');
91
- const command = `${path.resolve(ripgrep_1.rgPath)} "${pattern}" .`;
92
- console.log();
93
- console.log((0, picocolors_1.green)(`Searching ${basename} for "${pattern}":`));
94
- const childProcess = (0, child_process_1.spawn)(command, {
95
- cwd: projectPath,
96
- shell: true,
97
- });
98
- childProcess.stdout.on('data', (data) => {
99
- stdout += data.toString();
100
- });
101
- childProcess.stderr.on('data', (data) => {
102
- stderr += data.toString();
103
- });
104
- childProcess.on('close', (code) => {
105
- const lines = stdout.split('\n').filter((line) => line.trim());
106
- const maxResults = 3;
107
- const previewResults = lines.slice(0, maxResults);
108
- if (previewResults.length > 0) {
109
- console.log(previewResults.join('\n'));
110
- if (lines.length > maxResults) {
111
- console.log('...');
112
- }
113
- }
114
- console.log((0, picocolors_1.green)(`Found ${lines.length} results`));
115
- const truncatedStdout = (0, string_1.truncateStringWithMessage)({
116
- str: stdout,
117
- maxLength: 10000,
118
- });
119
- const truncatedStderr = (0, string_1.truncateStringWithMessage)({
120
- str: stderr,
121
- maxLength: 1000,
122
- });
123
- resolve(formatResult(truncatedStdout, truncatedStderr, 'Code search completed', code));
124
- });
125
- childProcess.on('error', (error) => {
126
- resolve(`<terminal_command_error>Failed to execute ripgrep: ${error.message}</terminal_command_error>`);
127
- });
128
- });
129
- };
130
- exports.handleCodeSearch = handleCodeSearch;
131
- function formatResult(stdout, stderr, status, exitCode) {
132
- let result = '<terminal_command_result>\n';
133
- result += `<stdout>${stdout}</stdout>\n`;
134
- if (stderr !== undefined) {
135
- result += `<stderr>${stderr}</stderr>\n`;
136
- }
137
- result += `<status>${status}</status>\n`;
138
- if (exitCode !== null) {
139
- result += `<exit_code>${exitCode}</exit_code>\n`;
140
- }
141
- result += '</terminal_command_result>';
142
- return result;
143
- }
144
- exports.toolHandlers = {
145
- write_file: exports.handleWriteFile,
146
- scrape_web_page: exports.handleScrapeWebPage,
147
- run_terminal_command: ((parameters, id, projectPath) => (0, exports.handleRunTerminalCommand)(parameters, id, projectPath).then((result) => result.result)),
148
- code_search: exports.handleCodeSearch,
149
- end_turn: async () => {
150
- return '';
151
- },
152
- browser_logs: async (params, _id) => {
153
- spinner_1.Spinner.get().start();
154
- let response;
155
- try {
156
- const action = browser_actions_1.BrowserActionSchema.parse(params);
157
- response = await (0, browser_runner_1.handleBrowserInstruction)(action);
158
- }
159
- catch (error) {
160
- const errorMessage = error instanceof Error ? error.message : String(error);
161
- console.log('Small hiccup, one sec...');
162
- return JSON.stringify({
163
- success: false,
164
- error: `Browser action validation failed: ${errorMessage}`,
165
- logs: [
166
- {
167
- type: 'error',
168
- message: `Browser action validation failed: ${errorMessage}`,
169
- timestamp: Date.now(),
170
- source: 'tool',
171
- },
172
- ],
173
- });
174
- }
175
- finally {
176
- spinner_1.Spinner.get().stop();
177
- }
178
- // Log any browser errors
179
- if (!response.success && response.error) {
180
- console.error((0, picocolors_1.red)(`Browser action failed: ${response.error}`));
181
- }
182
- if (response.logs) {
183
- response.logs.forEach((log) => {
184
- if (log.source === 'tool') {
185
- switch (log.type) {
186
- case 'error':
187
- console.error((0, picocolors_1.red)(log.message));
188
- break;
189
- case 'warning':
190
- console.warn((0, picocolors_1.yellow)(log.message));
191
- break;
192
- case 'info':
193
- console.info((0, picocolors_1.cyan)(log.message));
194
- break;
195
- default:
196
- console.log((0, picocolors_1.cyan)(log.message));
197
- }
198
- }
199
- });
200
- }
201
- return JSON.stringify(response);
202
- },
203
- };
204
- const handleToolCall = async (toolCall, projectPath) => {
205
- const { name, parameters } = toolCall;
206
- const handler = exports.toolHandlers[name];
207
- if (!handler) {
208
- throw new Error(`No handler found for tool: ${name}`);
209
- }
210
- const content = await handler(parameters, toolCall.id, projectPath);
211
- if (typeof content !== 'string') {
212
- throw new Error(`Tool call ${name} not supported. It returned non-string content.`);
213
- }
214
- // TODO: Add support for screenshots.
215
- // const toolResultMessage: Message = {
216
- // role: 'user',
217
- // content: match(content)
218
- // .with({ screenshots: P.not(P.nullish) }, (response) => [
219
- // ...(response.screenshots.pre ? [response.screenshots.pre] : []),
220
- // {
221
- // type: 'text' as const,
222
- // text:
223
- // JSON.stringify({
224
- // ...response,
225
- // screenshots: undefined,
226
- // }),
227
- // },
228
- // response.screenshots.post,
229
- // ])
230
- // .with(P.string, (str) => str)
231
- // .otherwise((val) => JSON.stringify(val)),
232
- // }
233
- return {
234
- name,
235
- result: content,
236
- id: toolCall.id,
237
- };
238
- };
239
- exports.handleToolCall = handleToolCall;
240
- //# sourceMappingURL=tool-handlers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tool-handlers.js","sourceRoot":"","sources":["../src/tool-handlers.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts DELETED
@@ -1,8 +0,0 @@
1
- import { CostMode } from './common/constants';
2
- export type GitCommand = 'stage' | undefined;
3
- export interface CliOptions {
4
- initialInput?: string;
5
- git: GitCommand;
6
- costMode: CostMode;
7
- model?: string;
8
- }
package/dist/types.js DELETED
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=types.js.map
package/dist/types.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- export declare function updateCodebuff(): Promise<void>;
@@ -1,158 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.updateCodebuff = updateCodebuff;
7
- const child_process_1 = require("child_process");
8
- const picocolors_1 = require("picocolors");
9
- const package_json_1 = __importDefault(require("../package.json"));
10
- const background_process_manager_1 = require("./background-process-manager");
11
- const config_1 = require("./config");
12
- const web_scraper_1 = require("./web-scraper");
13
- async function updateCodebuff() {
14
- if (!config_1.isProduction)
15
- return;
16
- const latestVersion = await getCodebuffNpmVersion();
17
- const isUpToDate = isNpmUpToDate(package_json_1.default.version, latestVersion);
18
- if (!isUpToDate) {
19
- const installerInfo = detectInstaller();
20
- if (!installerInfo) {
21
- console.log((0, picocolors_1.yellow)("There's a new version available! Please update Codebuff to prevent errors (run `npm install -g codebuff` to update)."));
22
- return;
23
- }
24
- console.log((0, picocolors_1.green)(`Updating Codebuff using ${installerInfo.installer}...`));
25
- try {
26
- runUpdateCodebuff(installerInfo);
27
- await (0, background_process_manager_1.killAllBackgroundProcesses)();
28
- console.log((0, picocolors_1.green)('Codebuff updated successfully.'));
29
- console.log((0, picocolors_1.green)('Please restart by running `codebuff` to use the new version.'));
30
- process.exit(0);
31
- }
32
- catch (error) {
33
- console.error('Failed to update Codebuff.');
34
- }
35
- }
36
- }
37
- async function getCodebuffNpmVersion() {
38
- try {
39
- const result = (0, child_process_1.execSync)('npm view codebuff version', {
40
- encoding: 'utf-8',
41
- stdio: 'pipe', // Suppress all output
42
- });
43
- const versionMatch = result.match(/(\d+\.\d+\.\d+)/);
44
- if (versionMatch) {
45
- return versionMatch[1];
46
- }
47
- }
48
- catch (error) { }
49
- // Fallback to web scraping if npm command fails
50
- const url = 'https://www.npmjs.com/package/codebuff';
51
- const content = await (0, web_scraper_1.scrapeWebPage)(url);
52
- const latestVersionRegex = /"latest":"(\d+\.\d+\.\d+)"/;
53
- const match = content.match(latestVersionRegex);
54
- return match ? match[1] : '';
55
- }
56
- function isNpmUpToDate(currentVersion, latestVersion) {
57
- const current = currentVersion.split('.').map(Number);
58
- const latest = latestVersion.split('.').map(Number);
59
- for (let i = 0; i < 3; i++) {
60
- if (current[i] < latest[i])
61
- return false;
62
- if (current[i] > latest[i])
63
- return true;
64
- }
65
- return true;
66
- }
67
- function detectInstaller() {
68
- let codebuffLocation = '';
69
- try {
70
- if (process.platform === 'win32') {
71
- codebuffLocation = (0, child_process_1.execSync)('where codebuff').toString().trim();
72
- }
73
- else {
74
- codebuffLocation = (0, child_process_1.execSync)('which codebuff').toString().trim();
75
- }
76
- }
77
- catch (error) {
78
- // Continue with empty location - could be a local installation
79
- }
80
- const binPath = (codebuffLocation.split('\n')[0] ?? '').replace(/\\/g, '/');
81
- const npmUserAgent = process.env.npm_config_user_agent ?? '';
82
- // Check for package manager script environments
83
- const isYarnScript = process.env.npm_lifecycle_script?.includes('yarn');
84
- const isPnpmScript = process.env.npm_lifecycle_script?.includes('pnpm');
85
- const isBunScript = process.env.npm_lifecycle_script?.includes('bun');
86
- const isNpmScript = process.env.npm_execpath?.endsWith('npm-cli.js') ||
87
- npmUserAgent.includes('npm');
88
- // Mac: /Users/jahooma/.yarn/bin/codebuff
89
- if (isYarnScript || binPath.includes('.yarn')) {
90
- return {
91
- installer: 'yarn',
92
- scope: binPath.includes('.yarn') ? 'global' : 'local',
93
- };
94
- }
95
- // Windows: ~/AppData/Local/pnpm/store
96
- // macOS: ~/Library/pnpm/store
97
- // Linux: ~/.local/share/pnpm/store
98
- if (isPnpmScript || binPath.includes('pnpm')) {
99
- return {
100
- installer: 'pnpm',
101
- scope: binPath.includes('pnpm') ? 'global' : 'local',
102
- };
103
- }
104
- // Mac: /Users/jahooma/.bun/install/cache
105
- if (isBunScript || binPath.includes('.bun')) {
106
- return {
107
- installer: 'bun',
108
- scope: binPath.includes('.bun') ? 'global' : 'local',
109
- };
110
- }
111
- // /usr/local/lib/node_modules on macOS/Linux or %AppData%\npm/node_modules on Windows
112
- // OR: .nvm/versions/node/v18.17.0/bin/codebuff on mac
113
- // OR /Users/stefan/Library/Application Support/Herd/config/nvm/versions/node/v22.9.0/bin/codebuff
114
- // OR ~/.config/nvm/versions/node/v22.11.0/bin/codebuff
115
- // OR /opt/homebrew/bin/codebuff
116
- const isGlobalNpmPath = binPath.includes('npm') ||
117
- binPath.startsWith('/usr/') ||
118
- binPath.includes('nvm/') ||
119
- binPath.includes('homebrew/bin');
120
- if (isNpmScript || isGlobalNpmPath) {
121
- return {
122
- installer: 'npm',
123
- scope: isGlobalNpmPath ? 'global' : 'local',
124
- };
125
- }
126
- return undefined;
127
- }
128
- function runUpdateCodebuff(installerInfo) {
129
- let command;
130
- const isGlobal = installerInfo.scope === 'global';
131
- switch (installerInfo.installer) {
132
- case 'npm':
133
- command = `npm ${isGlobal ? 'install -g' : 'install'} codebuff@latest`;
134
- break;
135
- case 'yarn':
136
- command = `yarn ${isGlobal ? 'global add' : 'add'} codebuff@latest`;
137
- break;
138
- case 'pnpm':
139
- command = `pnpm add ${isGlobal ? '-g' : ''} codebuff@latest`;
140
- break;
141
- case 'bun':
142
- command = `bun add ${isGlobal ? '-g' : ''} codebuff@latest`;
143
- break;
144
- default:
145
- throw new Error(`Unsupported installer: ${installerInfo.installer} ${installerInfo.scope}`);
146
- }
147
- (0, child_process_1.execSync)(command, { stdio: 'inherit' });
148
- }
149
- function restartCodebuff() {
150
- const child = (0, child_process_1.spawn)('codebuff', [...process.argv.slice(2), '--post-update'], {
151
- detached: false,
152
- stdio: 'inherit',
153
- });
154
- child.on('exit', (code) => {
155
- process.exit(code ?? 0);
156
- });
157
- }
158
- //# sourceMappingURL=update-codebuff.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"update-codebuff.js","sourceRoot":"","sources":["../src/update-codebuff.ts"],"names":[],"mappings":"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"}