codebuff 1.0.285 → 1.0.287

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 (48) hide show
  1. package/dist/cli.d.ts +17 -1
  2. package/dist/cli.js +113 -39
  3. package/dist/cli.js.map +1 -1
  4. package/dist/client.js +15 -2
  5. package/dist/client.js.map +1 -1
  6. package/dist/common/__tests__/project-file-tree.test.d.ts +1 -0
  7. package/dist/common/__tests__/project-file-tree.test.js +251 -0
  8. package/dist/common/__tests__/project-file-tree.test.js.map +1 -0
  9. package/dist/common/actions.d.ts +34 -34
  10. package/dist/common/constants/analytics-events.d.ts +5 -0
  11. package/dist/common/constants/analytics-events.js +5 -0
  12. package/dist/common/constants/analytics-events.js.map +1 -1
  13. package/dist/common/json-config/__tests__/__snapshots__/stringify-schema.test.js.snap +119 -0
  14. package/dist/common/types/agent-state.d.ts +8 -8
  15. package/dist/common/types/message.d.ts +6 -6
  16. package/dist/common/types/usage.d.ts +2 -2
  17. package/dist/common/util/credentials.d.ts +2 -2
  18. package/dist/common/util/process-stream.d.ts +7 -0
  19. package/dist/common/util/process-stream.js +162 -0
  20. package/dist/common/util/process-stream.js.map +1 -0
  21. package/dist/common/util/saxy.d.ts +1 -1
  22. package/dist/common/util/saxy.js +2 -2
  23. package/dist/common/util/saxy.js.map +1 -1
  24. package/dist/common/websockets/websocket-schema.d.ts +72 -72
  25. package/dist/display.js +4 -4
  26. package/dist/display.js.map +1 -1
  27. package/dist/index.js +1 -7
  28. package/dist/menu.d.ts +11 -0
  29. package/dist/menu.js +152 -28
  30. package/dist/menu.js.map +1 -1
  31. package/dist/update-codebuff.js +5 -0
  32. package/dist/update-codebuff.js.map +1 -1
  33. package/dist/utils/__tests__/__snapshots__/background-process-manager.test.js.snap +137 -0
  34. package/dist/utils/__tests__/file-paths.test.d.ts +1 -0
  35. package/dist/utils/__tests__/file-paths.test.js +37 -0
  36. package/dist/utils/__tests__/file-paths.test.js.map +1 -0
  37. package/dist/utils/__tests__/path.test.d.ts +1 -0
  38. package/dist/utils/__tests__/path.test.js +37 -0
  39. package/dist/utils/__tests__/path.test.js.map +1 -0
  40. package/dist/utils/file-paths.d.ts +9 -0
  41. package/dist/utils/file-paths.js +24 -0
  42. package/dist/utils/file-paths.js.map +1 -0
  43. package/dist/utils/path.d.ts +9 -0
  44. package/dist/utils/path.js +27 -0
  45. package/dist/utils/path.js.map +1 -0
  46. package/dist/utils/terminal.js +6 -5
  47. package/dist/utils/terminal.js.map +1 -1
  48. package/package.json +1 -1
package/dist/menu.js CHANGED
@@ -26,6 +26,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
26
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.interactiveCommandDetails = void 0;
30
+ exports.getSlashCommands = getSlashCommands;
31
+ exports.displaySlashCommandHelperMenu = displaySlashCommandHelperMenu;
29
32
  exports.displayGreeting = displayGreeting;
30
33
  exports.displayMenu = displayMenu;
31
34
  const fs = __importStar(require("fs"));
@@ -33,6 +36,120 @@ const os_1 = __importDefault(require("os"));
33
36
  const path_1 = __importDefault(require("path"));
34
37
  const picocolors_1 = require("picocolors");
35
38
  const project_files_1 = require("./project-files");
39
+ exports.interactiveCommandDetails = [
40
+ {
41
+ baseCommand: 'help',
42
+ description: 'Display help information',
43
+ isSlashCommand: true,
44
+ commandText: '', // Empty commandText ensures it's not shown in the main interactive list
45
+ aliases: ['h'], // Optional: if you want /h to also work for tab completion
46
+ },
47
+ {
48
+ commandText: '"login"',
49
+ baseCommand: 'login',
50
+ description: 'Authenticate your session',
51
+ isSlashCommand: false,
52
+ },
53
+ {
54
+ commandText: '"init"',
55
+ baseCommand: 'init',
56
+ description: 'Configure project for better results',
57
+ isSlashCommand: true,
58
+ },
59
+ {
60
+ commandText: '"diff" or "d"',
61
+ baseCommand: 'diff',
62
+ aliases: ['d'],
63
+ description: 'Show last assistant change diff',
64
+ isSlashCommand: true,
65
+ },
66
+ {
67
+ commandText: '"undo" / "redo"',
68
+ description: 'Revert or re-apply last change',
69
+ // This entry will be expanded into two slash commands: /undo and /redo
70
+ },
71
+ {
72
+ commandText: '"checkpoint <id>"',
73
+ baseCommand: 'checkpoint',
74
+ params: '<id>',
75
+ description: 'Restore to a specific checkpoint',
76
+ isSlashCommand: true,
77
+ },
78
+ {
79
+ commandText: '"!<cmd>"',
80
+ baseCommand: '!', // Or handle this specially, e.g. baseCommand 'shell'
81
+ params: '<cmd>',
82
+ description: 'Run shell command directly',
83
+ isSlashCommand: false, // e.g. /! <cmd> or /shell <cmd>
84
+ },
85
+ {
86
+ commandText: '"usage" or "credits"',
87
+ description: 'View remaining / bonus AI credits',
88
+ // This entry will be expanded into two slash commands: /usage and /credits
89
+ },
90
+ {
91
+ commandText: 'ESC key or Ctrl-C',
92
+ description: 'Cancel generation',
93
+ isSlashCommand: false,
94
+ },
95
+ {
96
+ baseCommand: 'undo',
97
+ description: 'Undo last change',
98
+ isSlashCommand: true,
99
+ commandText: '',
100
+ }, // commandText empty as it's covered by "undo / redo" for main menu
101
+ {
102
+ baseCommand: 'redo',
103
+ description: 'Redo last undone change',
104
+ isSlashCommand: true,
105
+ commandText: '',
106
+ },
107
+ {
108
+ baseCommand: 'usage',
109
+ description: 'View AI credits usage',
110
+ isSlashCommand: true,
111
+ commandText: '',
112
+ },
113
+ {
114
+ baseCommand: 'credits',
115
+ description: 'View AI credits balance',
116
+ isSlashCommand: false,
117
+ commandText: '',
118
+ },
119
+ {
120
+ commandText: '"exit" or Ctrl-C x2',
121
+ baseCommand: 'exit',
122
+ description: 'Quit Codebuff',
123
+ isSlashCommand: true,
124
+ },
125
+ ];
126
+ function getSlashCommands() {
127
+ return exports.interactiveCommandDetails
128
+ .filter(cmd => cmd.isSlashCommand && cmd.baseCommand)
129
+ .sort((a, b) => a.baseCommand.localeCompare(b.baseCommand));
130
+ }
131
+ function displaySlashCommandHelperMenu() {
132
+ const commands = getSlashCommands();
133
+ if (commands.length === 0) {
134
+ return;
135
+ }
136
+ // Calculate the maximum length of command strings for alignment
137
+ const maxCommandLength = Math.max(...commands.map((cmd) => {
138
+ const commandString = `/${cmd.baseCommand}${cmd.params ? ` ${cmd.params}` : ''}`;
139
+ return commandString.length;
140
+ }));
141
+ // Format each command with its description
142
+ const commandLines = commands.map((cmd) => {
143
+ const commandString = `/${cmd.baseCommand}${cmd.params ? ` ${cmd.params}` : ''}`;
144
+ // Pad with dots to align descriptions
145
+ const padding = '.'.repeat(maxCommandLength - commandString.length + 3);
146
+ return `${(0, picocolors_1.cyan)(commandString)} ${padding} ${cmd.description}`;
147
+ });
148
+ // Add the shell command tip at the end
149
+ const shellTip = (0, picocolors_1.gray)('(Tip: Type "!" followed by a command to run it in your shell, e.g., !ls)');
150
+ // Print with consistent spacing
151
+ console.log(`\n\n${commandLines.join('\n')}\n${shellTip}\n`);
152
+ }
36
153
  function displayGreeting(costMode, username) {
37
154
  // Show extra info only for logged in users
38
155
  const costModeDescription = {
@@ -44,26 +161,42 @@ function displayGreeting(costMode, username) {
44
161
  if (costModeDescription[costMode]) {
45
162
  console.log(`${costModeDescription[costMode]}`);
46
163
  }
164
+ if ((0, project_files_1.getProjectRoot)() === os_1.default.homedir() || (0, project_files_1.getProjectRoot)() === '/') {
165
+ console.info(`Welcome! Codebuff is a coding agent you can prompt with natural language.
166
+
167
+ To get started:
168
+ 1. cd into a project you want to edit
169
+ 2. run "codebuff"
170
+ `.trim());
171
+ process.exit();
172
+ }
47
173
  console.log(`Codebuff will read and write files in "${(0, project_files_1.getProjectRoot)()}". Type "help" for a list of commands.`);
48
174
  const gitDir = path_1.default.join((0, project_files_1.getProjectRoot)(), '.git');
49
- if ((0, project_files_1.getProjectRoot)() === os_1.default.homedir()) {
50
- console.info('\nTo get started:\n- cd into a project\n- ask for a code change');
51
- return;
52
- }
53
175
  if (!fs.existsSync(gitDir)) {
54
176
  console.info((0, picocolors_1.magenta)("Just fyi, this project doesn't contain a .git directory (are you at the top level of your project?). Codebuff works best with a git repo!"));
55
177
  }
56
178
  console.log(`\nWelcome${username ? ` back ${username}` : ''}! What would you like to do?`);
57
179
  }
180
+ const getRandomColors = () => {
181
+ const allColors = [picocolors_1.red, picocolors_1.green, picocolors_1.yellow, picocolors_1.blue, picocolors_1.blueBright, picocolors_1.magenta, picocolors_1.cyan];
182
+ const colors = [];
183
+ while (colors.length < 3) {
184
+ const color = allColors[Math.floor(Math.random() * allColors.length)];
185
+ if (!colors.includes(color)) {
186
+ colors.push(color);
187
+ }
188
+ }
189
+ return colors;
190
+ };
58
191
  function displayMenu() {
59
192
  const terminalWidth = process.stdout.columns || 80;
60
193
  const dividerLine = '─'.repeat(terminalWidth);
194
+ const selectedColors = getRandomColors();
61
195
  const colorizeRandom = (text) => {
62
- const colorFunctions = [picocolors_1.blueBright, picocolors_1.green, picocolors_1.yellow, picocolors_1.magenta, picocolors_1.cyan];
63
196
  return text
64
197
  .split('')
65
198
  .map((char) => {
66
- const colorFn = colorFunctions[Math.floor(Math.random() * colorFunctions.length)];
199
+ const colorFn = selectedColors[Math.floor(Math.random() * selectedColors.length)];
67
200
  return colorFn(char);
68
201
  })
69
202
  .join('');
@@ -78,7 +211,7 @@ ${colorizeRandom('╚██████╗')}${colorizeRandom('╚████
78
211
  ${colorizeRandom(' ╚═════╝')}${colorizeRandom(' ╚═════╝ ')}${colorizeRandom('╚═════╝ ')}${colorizeRandom('╚══════╝')}${colorizeRandom('╚═════╝ ')}${colorizeRandom(' ╚═════╝ ')}${colorizeRandom('╚═╝ ')}${colorizeRandom('╚═╝ ')}
79
212
  `);
80
213
  console.log(`\n${(0, picocolors_1.bold)('Your AI pair programmer that understands, edits, and improves your codebase through natural conversation.')}`);
81
- console.log(`\n${(0, picocolors_1.bold)((0, picocolors_1.underline)('DIAGNOSTICS CHECK'))}`);
214
+ console.log(`\n${(0, picocolors_1.bold)((0, picocolors_1.underline)('PROJECT SETUP'))}`);
82
215
  console.log((() => {
83
216
  const currentDirectoryLine = `${(0, picocolors_1.green)('✅ Current directory:')} ${(0, picocolors_1.bold)((0, picocolors_1.blueBright)((0, project_files_1.getProjectRoot)()))}`;
84
217
  const hasGitRepo = fs.existsSync(path_1.default.join((0, project_files_1.getProjectRoot)(), '.git'));
@@ -95,10 +228,10 @@ ${(0, picocolors_1.green)('✅ codebuff.json: detected')}`;
95
228
  }
96
229
  // Condition 2: Git repo not found
97
230
  if (!hasGitRepo) {
98
- return `${currentDirectoryLine}\n${(0, picocolors_1.yellow)('❌ Git repo: not found - navigate to a working directory!')}
231
+ return `${currentDirectoryLine}\n${(0, picocolors_1.yellow)('❌ Git repo: not found')}${' - navigate to a working directory!'}
99
232
  ${hasGitIgnore ? (0, picocolors_1.green)('✅ .gitignore: detected') : (0, picocolors_1.yellow)('❌ .gitignore: missing')}${gitignoreNote}
100
- ${hasKnowledgeMd ? (0, picocolors_1.green)('✅ knowledge.md: detected') : (0, picocolors_1.yellow)('❌ knowledge.md: missing')}
101
- ${hasCodebuffJson ? (0, picocolors_1.green)('✅ codebuff.json: detected') : (0, picocolors_1.yellow)('❌ codebuff.json: missing')}`;
233
+ ${hasKnowledgeMd ? (0, picocolors_1.green)('✅ knowledge.md: detected') : (0, picocolors_1.yellow)('❌ knowledge.md: missing')}${' — run "init" to fix'}
234
+ ${hasCodebuffJson ? (0, picocolors_1.green)('✅ codebuff.json: detected') : (0, picocolors_1.yellow)('❌ codebuff.json: missing')}${' — run "init" to fix'}`;
102
235
  }
103
236
  // Condition 3: Missing .gitignore
104
237
  if (!hasGitIgnore) {
@@ -123,8 +256,8 @@ ${!hasKnowledgeMd && !hasCodebuffJson ? `\n${(0, picocolors_1.yellow)('knowledge
123
256
  })());
124
257
  // COMMUNITY & FEEDBACK SECTION
125
258
  console.log(`\n${(0, picocolors_1.bold)((0, picocolors_1.underline)('COMMUNITY & FEEDBACK'))}`);
126
- console.log(`DM @brandonkachen or @jahooma on Discord, or email ${(0, picocolors_1.blueBright)('founders@codebuff.com')}`);
127
- console.log(`Join our Discord: ${(0, picocolors_1.blueBright)('https://codebuff.com/discord')} ${(0, picocolors_1.yellow)('(Ctrl/Cmd+Click to open)')}`);
259
+ console.log(`Thanks for using Codebuff! DM @brandonkachen or @jahooma on Discord, or email ${(0, picocolors_1.blueBright)('founders@codebuff.com')}`);
260
+ console.log(`Join our Discord: ${(0, picocolors_1.blueBright)('https://codebuff.com/discord')} ${(0, picocolors_1.gray)(`(${os_1.default.platform() === 'darwin' ? 'Command' : 'Ctrl'} + Click to open)`)}`);
128
261
  console.log(`\n${(0, picocolors_1.bold)((0, picocolors_1.underline)('EXAMPLE PROMPTS'))}
129
262
  ${'Code Quality:'}
130
263
  ${(0, picocolors_1.cyan)(' • "Add error handling to this function"')}
@@ -147,23 +280,14 @@ ${(0, picocolors_1.cyan)(' • "Set up CI/CD pipeline config"')}
147
280
  `);
148
281
  // INTERACTIVE COMMANDS SECTION
149
282
  const fixedCommandWidth = 30; // Fixed width for command column
150
- const formatMenuLine = (command, description) => {
151
- const paddedCommand = command.padEnd(fixedCommandWidth);
283
+ const formatMenuLine = (commandText, description) => {
284
+ const paddedCommand = commandText.padEnd(fixedCommandWidth);
152
285
  return `${paddedCommand}${description}`;
153
286
  };
154
- const menuLines = [
155
- formatMenuLine('type "login"', 'Authenticate your session'),
156
- formatMenuLine('type "init"', 'Configure project for better results'),
157
- formatMenuLine('type "diff" or "d"', 'Show last assistant change diff'),
158
- formatMenuLine('type "undo" / "redo"', 'Revert or re-apply last change'),
159
- formatMenuLine('type "checkpoint <id>"', 'Restore to a specific checkpoint'),
160
- formatMenuLine('type "!<cmd>"', 'Run shell command directly'),
161
- formatMenuLine('type "usage" / "credits"', 'View remaining / bonus AI credits'),
162
- formatMenuLine('hit ESC key or Ctrl-C', 'Cancel generation'),
163
- formatMenuLine('type "exit" or Ctrl-C x2', 'Quit Codebuff'),
164
- ];
165
- console.log(`\n${(0, picocolors_1.bold)((0, picocolors_1.underline)('INTERACTIVE COMMANDS'))}${' '.repeat(fixedCommandWidth - 20)}${(0, picocolors_1.bold)((0, picocolors_1.underline)('DESCRIPTION'))}\n${menuLines.join(`\n${dividerLine}`)}\n`);
166
- console.log(`\nThanks for using Codebuff!`);
167
- console.log(`${(0, picocolors_1.green)('↓ Start prompting now ↓')}`);
287
+ const menuLines = exports.interactiveCommandDetails
288
+ .filter((cmd) => cmd.commandText) // Filter out slash-only commands like the discrete undo/redo
289
+ .map((cmd) => formatMenuLine(cmd.commandText, cmd.description));
290
+ console.log(`\n${(0, picocolors_1.bold)((0, picocolors_1.underline)('COMMANDS (type these below)'))}${' '.repeat(fixedCommandWidth - 27)}${(0, picocolors_1.bold)((0, picocolors_1.underline)('DESCRIPTION'))}\n\n${menuLines.join(`\n${dividerLine}`)}\n`);
291
+ console.log(`\n↓ Enter your prompt or command below ↓`);
168
292
  }
169
293
  //# sourceMappingURL=menu.js.map
package/dist/menu.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"menu.js","sourceRoot":"","sources":["../src/menu.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"menu.js","sourceRoot":"","sources":["../src/menu.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsHA,4CAIC;AAED,sEA6BC;AAED,0CAuCC;AAcD,kCAwIC;AAxVD,uCAAwB;AACxB,4CAAmB;AACnB,gDAAuB;AAGvB,2CAWmB;AAEnB,mDAAgD;AAYnC,QAAA,yBAAyB,GAAkB;IACtD;QACE,WAAW,EAAE,MAAM;QACnB,WAAW,EAAE,0BAA0B;QACvC,cAAc,EAAE,IAAI;QACpB,WAAW,EAAE,EAAE,EAAE,wEAAwE;QACzF,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,2DAA2D;KAC5E;IACD;QACE,WAAW,EAAE,SAAS;QACtB,WAAW,EAAE,OAAO;QACpB,WAAW,EAAE,2BAA2B;QACxC,cAAc,EAAE,KAAK;KACtB;IACD;QACE,WAAW,EAAE,QAAQ;QACrB,WAAW,EAAE,MAAM;QACnB,WAAW,EAAE,sCAAsC;QACnD,cAAc,EAAE,IAAI;KACrB;IACD;QACE,WAAW,EAAE,eAAe;QAC5B,WAAW,EAAE,MAAM;QACnB,OAAO,EAAE,CAAC,GAAG,CAAC;QACd,WAAW,EAAE,iCAAiC;QAC9C,cAAc,EAAE,IAAI;KACrB;IACD;QACE,WAAW,EAAE,iBAAiB;QAC9B,WAAW,EAAE,gCAAgC;QAC7C,uEAAuE;KACxE;IACD;QACE,WAAW,EAAE,mBAAmB;QAChC,WAAW,EAAE,YAAY;QACzB,MAAM,EAAE,MAAM;QACd,WAAW,EAAE,kCAAkC;QAC/C,cAAc,EAAE,IAAI;KACrB;IACD;QACE,WAAW,EAAE,UAAU;QACvB,WAAW,EAAE,GAAG,EAAE,qDAAqD;QACvE,MAAM,EAAE,OAAO;QACf,WAAW,EAAE,4BAA4B;QACzC,cAAc,EAAE,KAAK,EAAE,gCAAgC;KACxD;IACD;QACE,WAAW,EAAE,sBAAsB;QACnC,WAAW,EAAE,mCAAmC;QAChD,2EAA2E;KAC5E;IACD;QACE,WAAW,EAAE,mBAAmB;QAChC,WAAW,EAAE,mBAAmB;QAChC,cAAc,EAAE,KAAK;KACtB;IACD;QACE,WAAW,EAAE,MAAM;QACnB,WAAW,EAAE,kBAAkB;QAC/B,cAAc,EAAE,IAAI;QACpB,WAAW,EAAE,EAAE;KAChB,EAAE,mEAAmE;IACtE;QACE,WAAW,EAAE,MAAM;QACnB,WAAW,EAAE,yBAAyB;QACtC,cAAc,EAAE,IAAI;QACpB,WAAW,EAAE,EAAE;KAChB;IACD;QACE,WAAW,EAAE,OAAO;QACpB,WAAW,EAAE,uBAAuB;QACpC,cAAc,EAAE,IAAI;QACpB,WAAW,EAAE,EAAE;KAChB;IACD;QACE,WAAW,EAAE,SAAS;QACtB,WAAW,EAAE,yBAAyB;QACtC,cAAc,EAAE,KAAK;QACrB,WAAW,EAAE,EAAE;KAChB;IACD;QACE,WAAW,EAAE,qBAAqB;QAClC,WAAW,EAAE,MAAM;QACnB,WAAW,EAAE,eAAe;QAC5B,cAAc,EAAE,IAAI;KACrB;CACF,CAAA;AAED,SAAgB,gBAAgB;IAC9B,OAAO,iCAAyB;SAC7B,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,cAAc,IAAI,GAAG,CAAC,WAAW,CAAC;SACpD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAY,CAAC,aAAa,CAAC,CAAC,CAAC,WAAY,CAAC,CAAC,CAAA;AACjE,CAAC;AAED,SAAgB,6BAA6B;IAC3C,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAA;IACnC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAM;IACR,CAAC;IAED,gEAAgE;IAChE,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAC/B,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACtB,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;QAChF,OAAO,aAAa,CAAC,MAAM,CAAA;IAC7B,CAAC,CAAC,CACH,CAAA;IAED,2CAA2C;IAC3C,MAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACxC,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;QAChF,sCAAsC;QACtC,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,gBAAgB,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QACvE,OAAO,GAAG,IAAA,iBAAI,EAAC,aAAa,CAAC,IAAI,OAAO,IAAI,GAAG,CAAC,WAAW,EAAE,CAAA;IAC/D,CAAC,CAAC,CAAA;IAEF,uCAAuC;IACvC,MAAM,QAAQ,GAAG,IAAA,iBAAI,EACnB,0EAA0E,CAC3E,CAAA;IAED,gCAAgC;IAChC,OAAO,CAAC,GAAG,CAAC,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAA;AAC9D,CAAC;AAED,SAAgB,eAAe,CAAC,QAAkB,EAAE,QAAuB;IACzE,2CAA2C;IAC3C,MAAM,mBAAmB,GAAG;QAC1B,IAAI,EAAE,IAAA,iBAAI,EAAC,IAAA,mBAAM,EAAC,qBAAqB,CAAC,CAAC;QACzC,MAAM,EAAE,EAAE;QACV,GAAG,EAAE,IAAA,iBAAI,EAAC,IAAA,uBAAU,EAAC,qBAAqB,CAAC,CAAC;QAC5C,YAAY,EAAE,IAAA,iBAAI,EAAC,IAAA,oBAAO,EAAC,8BAA8B,CAAC,CAAC;KAC5D,CAAA;IACD,IAAI,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC;QAClC,OAAO,CAAC,GAAG,CAAC,GAAG,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;IACjD,CAAC;IAED,IAAI,IAAA,8BAAc,GAAE,KAAK,YAAE,CAAC,OAAO,EAAE,IAAI,IAAA,8BAAc,GAAE,KAAK,GAAG,EAAE,CAAC;QAClE,OAAO,CAAC,IAAI,CACV;;;;;CAKL,CAAC,IAAI,EAAE,CACH,CAAA;QACD,OAAO,CAAC,IAAI,EAAE,CAAA;IAChB,CAAC;IAED,OAAO,CAAC,GAAG,CACT,0CAA0C,IAAA,8BAAc,GAAE,wCAAwC,CACnG,CAAA;IACD,MAAM,MAAM,GAAG,cAAI,CAAC,IAAI,CAAC,IAAA,8BAAc,GAAE,EAAE,MAAM,CAAC,CAAA;IAClD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,IAAI,CACV,IAAA,oBAAO,EACL,2IAA2I,CAC5I,CACF,CAAA;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CACT,YAAY,QAAQ,CAAC,CAAC,CAAC,SAAS,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,8BAA8B,CAC9E,CAAA;AACH,CAAC;AAED,MAAM,eAAe,GAAG,GAAG,EAAE;IAC3B,MAAM,SAAS,GAAG,CAAC,gBAAG,EAAE,kBAAK,EAAE,mBAAM,EAAE,iBAAI,EAAE,uBAAU,EAAE,oBAAO,EAAE,iBAAI,CAAC,CAAA;IACvE,MAAM,MAAM,GAAgB,EAAE,CAAA;IAC9B,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAA;QACrE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACpB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAED,SAAgB,WAAW;IACzB,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAA;IAClD,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;IAE7C,MAAM,cAAc,GAAG,eAAe,EAAE,CAAA;IACxC,MAAM,cAAc,GAAG,CAAC,IAAY,EAAE,EAAE;QACtC,OAAO,IAAI;aACR,KAAK,CAAC,EAAE,CAAC;aACT,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACZ,MAAM,OAAO,GACX,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAA;YACnE,OAAO,OAAO,CAAC,IAAI,CAAC,CAAA;QACtB,CAAC,CAAC;aACD,IAAI,CAAC,EAAE,CAAC,CAAA;IACb,CAAC,CAAA;IAED,OAAO,CAAC,GAAG,CAAC;EACZ,cAAc,CAAC,YAAY,CAAC;EAC5B,cAAc,CAAC,SAAS,CAAC,GAAG,cAAc,CAAC,YAAY,CAAC,GAAG,cAAc,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC,WAAW,CAAC,GAAG,cAAc,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC,UAAU,CAAC;EACvO,cAAc,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC,WAAW,CAAC,GAAG,cAAc,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC,WAAW,CAAC,GAAG,cAAc,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC,UAAU,CAAC;EACvO,cAAc,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC,WAAW,CAAC,GAAG,cAAc,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC,WAAW,CAAC,GAAG,cAAc,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC,UAAU,CAAC;EACvO,cAAc,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC,WAAW,CAAC,GAAG,cAAc,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC,WAAW,CAAC,GAAG,cAAc,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC,UAAU,CAAC;EACvO,cAAc,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC,WAAW,CAAC,GAAG,cAAc,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC,WAAW,CAAC,GAAG,cAAc,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC,UAAU,CAAC;EACvO,cAAc,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC,WAAW,CAAC,GAAG,cAAc,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC,WAAW,CAAC,GAAG,cAAc,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC,UAAU,CAAC;CACxO,CAAC,CAAA;IAEA,OAAO,CAAC,GAAG,CACT,KAAK,IAAA,iBAAI,EAAC,2GAA2G,CAAC,EAAE,CACzH,CAAA;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,IAAA,iBAAI,EAAC,IAAA,sBAAS,EAAC,eAAe,CAAC,CAAC,EAAE,CAAC,CAAA;IAEpD,OAAO,CAAC,GAAG,CACT,CAAC,GAAG,EAAE;QACJ,MAAM,oBAAoB,GAAG,GAAG,IAAA,kBAAK,EAAC,sBAAsB,CAAC,IAAI,IAAA,iBAAI,EAAC,IAAA,uBAAU,EAAC,IAAA,8BAAc,GAAE,CAAC,CAAC,EAAE,CAAA;QACrG,MAAM,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,cAAI,CAAC,IAAI,CAAC,IAAA,8BAAc,GAAE,EAAE,MAAM,CAAC,CAAC,CAAA;QACrE,MAAM,YAAY,GAAG,EAAE,CAAC,UAAU,CAChC,cAAI,CAAC,IAAI,CAAC,IAAA,8BAAc,GAAE,EAAE,YAAY,CAAC,CAC1C,CAAA;QACD,MAAM,cAAc,GAAG,EAAE,CAAC,UAAU,CAClC,cAAI,CAAC,IAAI,CAAC,IAAA,8BAAc,GAAE,EAAE,cAAc,CAAC,CAC5C,CAAA;QACD,MAAM,eAAe,GAAG,EAAE,CAAC,UAAU,CACnC,cAAI,CAAC,IAAI,CAAC,IAAA,8BAAc,GAAE,EAAE,eAAe,CAAC,CAC7C,CAAA;QACD,MAAM,aAAa,GACjB,kEAAkE,CAAA;QAEpE,iDAAiD;QACjD,IAAI,UAAU,IAAI,YAAY,IAAI,cAAc,IAAI,eAAe,EAAE,CAAC;YACpE,OAAO,GAAG,oBAAoB,KAAK,IAAA,kBAAK,EAAC,sBAAsB,CAAC;EACtE,IAAA,kBAAK,EAAC,wBAAwB,CAAC,GAAG,aAAa;EAC/C,IAAA,kBAAK,EAAC,0BAA0B,CAAC;EACjC,IAAA,kBAAK,EAAC,2BAA2B,CAAC,EAAE,CAAA;QAChC,CAAC;QAED,kCAAkC;QAClC,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,GAAG,oBAAoB,KAAK,IAAA,mBAAM,EAAC,uBAAuB,CAAC,GAAG,qCAAqC;EAChH,YAAY,CAAC,CAAC,CAAC,IAAA,kBAAK,EAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,IAAA,mBAAM,EAAC,uBAAuB,CAAC,GAAG,aAAa;EAChG,cAAc,CAAC,CAAC,CAAC,IAAA,kBAAK,EAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,IAAA,mBAAM,EAAC,yBAAyB,CAAC,GAAG,sBAAsB;EAC/G,eAAe,CAAC,CAAC,CAAC,IAAA,kBAAK,EAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,IAAA,mBAAM,EAAC,0BAA0B,CAAC,GAAG,sBAAsB,EAAE,CAAA;QAChH,CAAC;QAED,kCAAkC;QAClC,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,GAAG,oBAAoB,KAAK,IAAA,kBAAK,EAAC,sBAAsB,CAAC;EACtE,IAAA,mBAAM,EAAC,iEAAiE,CAAC,GAAG,aAAa;EACzF,cAAc,CAAC,CAAC,CAAC,IAAA,kBAAK,EAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,IAAA,mBAAM,EAAC,yBAAyB,CAAC;EACtF,eAAe,CAAC,CAAC,CAAC,IAAA,kBAAK,EAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,IAAA,mBAAM,EAAC,0BAA0B,CAAC,EAAE,CAAA;QACvF,CAAC;QACD,uCAAuC;QACvC,OAAO,GAAG,oBAAoB,KAAK,IAAA,kBAAK,EAAC,sBAAsB,CAAC;EACpE,IAAA,kBAAK,EAAC,wBAAwB,CAAC,GAAG,aAAa;EAE/C,CAAC,cAAc,IAAI,CAAC,eAAe;YACjC,CAAC,CAAC,IAAA,mBAAM,EAAC,uDAAuD,CAAC;YACjE,CAAC,CAAC,CAAC,cAAc;gBACf,CAAC,CAAC,IAAA,mBAAM,EAAC,uCAAuC,CAAC;gBACjD,CAAC,CAAC,CAAC,eAAe;oBAChB,CAAC,CAAC,IAAA,mBAAM,EAAC,wCAAwC,CAAC;oBAClD,CAAC,CAAC,IAAA,kBAAK,EAAC,0CAA0C,CAC1D;EACE,cAAc,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,IAAA,mBAAM,EAAC,gIAAgI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;EACzL,CAAC,cAAc,IAAI,eAAe,CAAC,CAAC,CAAC,KAAK,IAAA,mBAAM,EAAC,uGAAuG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;EAChK,CAAC,cAAc,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,IAAA,mBAAM,EAAC,uGAAuG,CAAC,KAAK,IAAA,mBAAM,EAAC,gIAAgI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAA;IAC9S,CAAC,CAAC,EAAE,CACL,CAAA;IAED,+BAA+B;IAC/B,OAAO,CAAC,GAAG,CAAC,KAAK,IAAA,iBAAI,EAAC,IAAA,sBAAS,EAAC,sBAAsB,CAAC,CAAC,EAAE,CAAC,CAAA;IAC3D,OAAO,CAAC,GAAG,CACT,iFAAiF,IAAA,uBAAU,EAAC,uBAAuB,CAAC,EAAE,CACvH,CAAA;IACD,OAAO,CAAC,GAAG,CACT,qBAAqB,IAAA,uBAAU,EAAC,8BAA8B,CAAC,IAAI,IAAA,iBAAI,EAAC,IAAI,YAAE,CAAC,QAAQ,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,mBAAmB,CAAC,EAAE,CAClJ,CAAA;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,IAAA,iBAAI,EAAC,IAAA,sBAAS,EAAC,iBAAiB,CAAC,CAAC;EACnD,eAAe;EACf,IAAA,iBAAI,EAAC,2CAA2C,CAAC;EACjD,IAAA,iBAAI,EAAC,uCAAuC,CAAC;EAC7C,IAAA,iBAAI,EAAC,6CAA6C,CAAC;;EAEnD,uBAAuB;EACvB,IAAA,iBAAI,EAAC,8CAA8C,CAAC;EACpD,IAAA,iBAAI,EAAC,6CAA6C,CAAC;;EAEnD,6BAA6B;EAC7B,IAAA,iBAAI,EAAC,oCAAoC,CAAC;EAC1C,IAAA,iBAAI,EAAC,wCAAwC,CAAC;EAC9C,IAAA,iBAAI,EAAC,mCAAmC,CAAC;;EAEzC,4BAA4B;EAC5B,IAAA,iBAAI,EAAC,2CAA2C,CAAC;EACjD,IAAA,iBAAI,EAAC,sCAAsC,CAAC;EAC5C,IAAA,iBAAI,EAAC,oCAAoC,CAAC;CAC3C,CAAC,CAAA;IAEA,+BAA+B;IAC/B,MAAM,iBAAiB,GAAG,EAAE,CAAA,CAAC,iCAAiC;IAE9D,MAAM,cAAc,GAAG,CAAC,WAAmB,EAAE,WAAmB,EAAE,EAAE;QAClE,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAA;QAC3D,OAAO,GAAG,aAAa,GAAG,WAAW,EAAE,CAAA;IACzC,CAAC,CAAA;IAED,MAAM,SAAS,GAAG,iCAAyB;SACxC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,6DAA6D;SAC9F,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAA;IAEjE,OAAO,CAAC,GAAG,CACT,KAAK,IAAA,iBAAI,EAAC,IAAA,sBAAS,EAAC,6BAA6B,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,iBAAiB,GAAG,EAAE,CAAC,GAAG,IAAA,iBAAI,EAAC,IAAA,sBAAS,EAAC,aAAa,CAAC,CAAC,OAAO,SAAS,CAAC,IAAI,CAAC,KAAK,WAAW,EAAE,CAAC,IAAI,CACvK,CAAA;IAED,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAA;AACzD,CAAC"}
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.updateCodebuff = updateCodebuff;
7
7
  const child_process_1 = require("child_process");
8
8
  const picocolors_1 = require("picocolors");
9
+ const analytics_events_1 = require("./common/constants/analytics-events");
9
10
  const package_json_1 = __importDefault(require("../package.json"));
10
11
  const background_process_manager_1 = require("./background-process-manager");
11
12
  const config_1 = require("./config");
@@ -33,6 +34,10 @@ async function updateCodebuff() {
33
34
  process.exit(0);
34
35
  }
35
36
  catch (error) {
37
+ (0, analytics_1.trackEvent)(analytics_events_1.AnalyticsEvent.UPDATE_CODEBUFF_FAILED, {
38
+ error: error instanceof Error ? error.message : 'Unknown error',
39
+ });
40
+ (0, analytics_1.flushAnalytics)();
36
41
  console.error('Failed to update Codebuff.');
37
42
  }
38
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"update-codebuff.js","sourceRoot":"","sources":["../src/update-codebuff.ts"],"names":[],"mappings":";;;;;AAUA,wCA+BC;AAzCD,iDAA+C;AAE/C,2CAA0C;AAE1C,mEAAyC;AACzC,6EAAyE;AACzE,qCAAuC;AACvC,iDAAkD;AAClD,+CAA6C;AAEtC,KAAK,UAAU,cAAc;IAClC,IAAI,CAAC,qBAAY;QAAE,OAAM;IAEzB,MAAM,aAAa,GAAG,MAAM,qBAAqB,EAAE,CAAA;IACnD,MAAM,UAAU,GAAG,aAAa,CAAC,sBAAW,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;IACpE,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,aAAa,GAAG,eAAe,EAAE,CAAA;QACvC,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CACT,IAAA,mBAAM,EACJ,sHAAsH,CACvH,CACF,CAAA;YACD,OAAM;QACR,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,IAAA,kBAAK,EAAC,2BAA2B,aAAa,CAAC,SAAS,KAAK,CAAC,CAAC,CAAA;QAC3E,IAAI,CAAC;YACH,iBAAiB,CAAC,aAAa,CAAC,CAAA;YAChC,MAAM,IAAA,uDAA0B,GAAE,CAAA;YAClC,IAAA,0BAAc,GAAE,CAAA;YAEhB,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,IAAA,kBAAK,EAAC,gCAAgC,CAAC,CAAC,CAAA;YAC3D,OAAO,CAAC,GAAG,CACT,IAAI;gBACF,IAAA,kBAAK,EAAC,8DAA8D,CAAC,CACxE,CAAA;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAA;QAC7C,CAAC;IACH,CAAC;AACH,CAAC;AAED,KAAK,UAAU,qBAAqB;IAClC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAA,wBAAQ,EAAC,2BAA2B,EAAE;YACnD,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,MAAM,EAAE,sBAAsB;SACtC,CAAC,CAAA;QACF,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA;QACpD,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,YAAY,CAAC,CAAC,CAAC,CAAA;QACxB,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC,CAAA,CAAC;IAClB,gDAAgD;IAChD,MAAM,GAAG,GAAG,wCAAwC,CAAA;IACpD,MAAM,OAAO,GAAG,MAAM,IAAA,2BAAa,EAAC,GAAG,CAAC,CAAA;IAExC,MAAM,kBAAkB,GAAG,4BAA4B,CAAA;IACvD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAA;IAC/C,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AAC9B,CAAC;AAED,SAAS,aAAa,CAAC,cAAsB,EAAE,aAAqB;IAClE,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IACrD,MAAM,MAAM,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IAEnD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;YAAE,OAAO,KAAK,CAAA;QACxC,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;YAAE,OAAO,IAAI,CAAA;IACzC,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAOD,SAAS,eAAe;IACtB,IAAI,gBAAgB,GAAG,EAAE,CAAA;IACzB,IAAI,CAAC;QACH,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YACjC,gBAAgB,GAAG,IAAA,wBAAQ,EAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAA;QACjE,CAAC;aAAM,CAAC;YACN,gBAAgB,GAAG,IAAA,wBAAQ,EAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAA;QACjE,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,+DAA+D;IACjE,CAAC;IAED,MAAM,OAAO,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;IAC3E,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE,CAAA;IAE5D,gDAAgD;IAChD,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAA;IACvE,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAA;IACvE,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAA;IACrE,MAAM,WAAW,GACf,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAC,YAAY,CAAC;QAChD,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAE9B,yCAAyC;IACzC,IAAI,YAAY,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9C,OAAO;YACL,SAAS,EAAE,MAAM;YACjB,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO;SACtD,CAAA;IACH,CAAC;IAED,sCAAsC;IACtC,8BAA8B;IAC9B,mCAAmC;IACnC,IAAI,YAAY,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC7C,OAAO;YACL,SAAS,EAAE,MAAM;YACjB,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO;SACrD,CAAA;IACH,CAAC;IAED,yCAAyC;IACzC,IAAI,WAAW,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC5C,OAAO;YACL,SAAS,EAAE,KAAK;YAChB,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO;SACrD,CAAA;IACH,CAAC;IAED,sFAAsF;IACtF,sDAAsD;IACtD,kGAAkG;IAClG,uDAAuD;IACvD,gCAAgC;IAChC,MAAM,eAAe,GACnB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;QACvB,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC;QAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;QACxB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAA;IAClC,IAAI,WAAW,IAAI,eAAe,EAAE,CAAC;QACnC,OAAO;YACL,SAAS,EAAE,KAAK;YAChB,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO;SAC5C,CAAA;IACH,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAS,iBAAiB,CAAC,aAA4B;IACrD,IAAI,OAAe,CAAA;IACnB,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,KAAK,QAAQ,CAAA;IAEjD,QAAQ,aAAa,CAAC,SAAS,EAAE,CAAC;QAChC,KAAK,KAAK;YACR,OAAO,GAAG,OAAO,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,kBAAkB,CAAA;YACtE,MAAK;QACP,KAAK,MAAM;YACT,OAAO,GAAG,QAAQ,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,kBAAkB,CAAA;YACnE,MAAK;QACP,KAAK,MAAM;YACT,OAAO,GAAG,YAAY,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAA;YAC5D,MAAK;QACP,KAAK,KAAK;YACR,OAAO,GAAG,WAAW,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAA;YAC3D,MAAK;QACP;YACE,MAAM,IAAI,KAAK,CACb,0BAA0B,aAAa,CAAC,SAAS,IAAI,aAAa,CAAC,KAAK,EAAE,CAC3E,CAAA;IACL,CAAC;IAED,IAAA,wBAAQ,EAAC,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAA;AACzC,CAAC;AAED,SAAS,eAAe;IACtB,MAAM,KAAK,GAAG,IAAA,qBAAK,EAAC,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,EAAE;QAC3E,QAAQ,EAAE,KAAK;QACf,KAAK,EAAE,SAAS;KACjB,CAAC,CAAA;IACF,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;QACxB,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAA;IACzB,CAAC,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"update-codebuff.js","sourceRoot":"","sources":["../src/update-codebuff.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,137 @@
1
+ // Bun Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`getBackgroundProcessInfoString formats a running process correctly 1`] = `
4
+ "<background_process>
5
+ <process_id>123</process_id>
6
+ <command>npm test</command>
7
+ <start_time_utc>1970-01-01T00:00:01.000Z</start_time_utc>
8
+ <duration_ms>2000</duration_ms>
9
+ <stdout>test output</stdout>
10
+ <stderr>test error</stderr>
11
+ <status>running</status>
12
+ </background_process>"
13
+ `;
14
+
15
+ exports[`getBackgroundProcessInfoString formats a completed process correctly 1`] = `
16
+ "<background_process>
17
+ <process_id>456</process_id>
18
+ <command>npm build</command>
19
+ <start_time_utc>1970-01-01T00:00:01.000Z</start_time_utc>
20
+ <duration_ms>1000</duration_ms>
21
+ <stdout>build successful</stdout>
22
+ <status>completed</status>
23
+ <exit_code>0</exit_code>
24
+ </background_process>"
25
+ `;
26
+
27
+ exports[`getBackgroundProcessInfoString formats an errored process correctly 1`] = `
28
+ "<background_process>
29
+ <process_id>789</process_id>
30
+ <command>invalid-command</command>
31
+ <start_time_utc>1970-01-01T00:00:01.000Z</start_time_utc>
32
+ <duration_ms>1500</duration_ms>
33
+ <stderr>command not found</stderr>
34
+ <status>error</status>
35
+ <exit_code>1</exit_code>
36
+ <signal_code>SIGTERM</signal_code>
37
+ </background_process>"
38
+ `;
39
+
40
+ exports[`getBackgroundProcessInfoString handles new output since last report 1`] = `
41
+ "<background_process>
42
+ <process_id>102</process_id>
43
+ <command>echo test</command>
44
+ <start_time_utc>1970-01-01T00:00:01.000Z</start_time_utc>
45
+ <duration_ms>1000</duration_ms>
46
+ <stdout>[PREVIOUS OUTPUT]
47
+ more output</stdout>
48
+ <status>completed</status>
49
+ </background_process>"
50
+ `;
51
+
52
+ exports[`getBackgroundProcessInfoString handles no new content 1`] = `
53
+ "<background_process>
54
+ <process_id>103</process_id>
55
+ <command>echo test</command>
56
+ <start_time_utc>1970-01-01T00:00:01.000Z</start_time_utc>
57
+ <duration_ms>1000</duration_ms>
58
+ <status>running</status>
59
+ </background_process>"
60
+ `;
61
+
62
+ exports[`getBackgroundProcessInfoString handles new stderr without when no previous stderr 1`] = `
63
+ "<background_process>
64
+ <process_id>104</process_id>
65
+ <command>echo test</command>
66
+ <start_time_utc>1970-01-01T00:00:01.000Z</start_time_utc>
67
+ <duration_ms>1000</duration_ms>
68
+ <stderr>new error</stderr>
69
+ <status>error</status>
70
+ </background_process>"
71
+ `;
72
+
73
+ exports[`getBackgroundProcessInfoString handles new stdout without when no previous stdout 1`] = `
74
+ "<background_process>
75
+ <process_id>105</process_id>
76
+ <command>echo test</command>
77
+ <start_time_utc>1970-01-01T00:00:01.000Z</start_time_utc>
78
+ <duration_ms>2000</duration_ms>
79
+ <stdout>first output</stdout>
80
+ <status>running</status>
81
+ </background_process>"
82
+ `;
83
+
84
+ exports[`getBackgroundProcessInfoString reports completed process with new stderr even if stdout unchanged 1`] = `
85
+ "<background_process>
86
+ <process_id>106</process_id>
87
+ <command>echo test</command>
88
+ <start_time_utc>1970-01-01T00:00:01.000Z</start_time_utc>
89
+ <duration_ms>1000</duration_ms>
90
+ <stderr>new error</stderr>
91
+ <status>completed</status>
92
+ </background_process>"
93
+ `;
94
+
95
+ exports[`getBackgroundProcessInfoString reports completed process with new stdout even if stderr unchanged 1`] = `
96
+ "<background_process>
97
+ <process_id>107</process_id>
98
+ <command>echo test</command>
99
+ <start_time_utc>1970-01-01T00:00:01.000Z</start_time_utc>
100
+ <duration_ms>1000</duration_ms>
101
+ <stdout>[PREVIOUS OUTPUT]
102
+ more</stdout>
103
+ <status>completed</status>
104
+ </background_process>"
105
+ `;
106
+
107
+ exports[`getBackgroundProcessInfoString reports process when status changes even without output changes 1`] = `
108
+ "<background_process>
109
+ <process_id>108</process_id>
110
+ <command>echo test</command>
111
+ <start_time_utc>1970-01-01T00:00:01.000Z</start_time_utc>
112
+ <duration_ms>1000</duration_ms>
113
+ <status>completed</status>
114
+ </background_process>"
115
+ `;
116
+
117
+ exports[`getBackgroundProcessInfoString calculates duration from endTime when available 1`] = `
118
+ "<background_process>
119
+ <process_id>109</process_id>
120
+ <command>echo test</command>
121
+ <start_time_utc>1970-01-01T00:00:01.000Z</start_time_utc>
122
+ <duration_ms>1500</duration_ms>
123
+ <stdout>test</stdout>
124
+ <status>completed</status>
125
+ </background_process>"
126
+ `;
127
+
128
+ exports[`getBackgroundProcessInfoString calculates duration from current time when no endTime 1`] = `
129
+ "<background_process>
130
+ <process_id>110</process_id>
131
+ <command>echo test</command>
132
+ <start_time_utc>1970-01-01T00:00:01.000Z</start_time_utc>
133
+ <duration_ms>2000</duration_ms>
134
+ <stdout>test</stdout>
135
+ <status>running</status>
136
+ </background_process>"
137
+ `;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,37 @@
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
+ const file_paths_1 = require("../file-paths");
7
+ const path_1 = __importDefault(require("path"));
8
+ describe('toAbsolutePath', () => {
9
+ const projectRoot = '/home/user/project';
10
+ it('should handle relative paths', () => {
11
+ expect((0, file_paths_1.toAbsolutePath)('src/file.ts', projectRoot))
12
+ .toBe(path_1.default.normalize(path_1.default.join(projectRoot, 'src/file.ts')));
13
+ });
14
+ it('should handle parent directory references', () => {
15
+ expect((0, file_paths_1.toAbsolutePath)('../file.ts', projectRoot))
16
+ .toBe(path_1.default.normalize(path_1.default.join(path_1.default.dirname(projectRoot), 'file.ts')));
17
+ });
18
+ it('should handle current directory references', () => {
19
+ expect((0, file_paths_1.toAbsolutePath)('./file.ts', projectRoot))
20
+ .toBe(path_1.default.normalize(path_1.default.join(projectRoot, 'file.ts')));
21
+ });
22
+ it('should return absolute paths unchanged', () => {
23
+ const absolutePath = '/absolute/path/file.ts';
24
+ expect((0, file_paths_1.toAbsolutePath)(absolutePath, projectRoot))
25
+ .toBe(path_1.default.normalize(absolutePath));
26
+ });
27
+ it('should handle Windows-style paths', () => {
28
+ const winPath = 'src\\file.ts';
29
+ expect((0, file_paths_1.toAbsolutePath)(winPath, projectRoot))
30
+ .toBe(path_1.default.normalize(path_1.default.join(projectRoot, 'src/file.ts')));
31
+ });
32
+ it('should normalize paths with multiple slashes', () => {
33
+ expect((0, file_paths_1.toAbsolutePath)('src//file.ts', projectRoot))
34
+ .toBe(path_1.default.normalize(path_1.default.join(projectRoot, 'src/file.ts')));
35
+ });
36
+ });
37
+ //# sourceMappingURL=file-paths.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-paths.test.js","sourceRoot":"","sources":["../../../src/utils/__tests__/file-paths.test.ts"],"names":[],"mappings":";;;;;AAAA,8CAA8C;AAC9C,gDAAuB;AAEvB,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,MAAM,WAAW,GAAG,oBAAoB,CAAA;IAExC,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,CAAC,IAAA,2BAAc,EAAC,aAAa,EAAE,WAAW,CAAC,CAAC;aAC/C,IAAI,CAAC,cAAI,CAAC,SAAS,CAAC,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC,CAAA;IAChE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,CAAC,IAAA,2BAAc,EAAC,YAAY,EAAE,WAAW,CAAC,CAAC;aAC9C,IAAI,CAAC,cAAI,CAAC,SAAS,CAAC,cAAI,CAAC,IAAI,CAAC,cAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;IAC1E,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,CAAC,IAAA,2BAAc,EAAC,WAAW,EAAE,WAAW,CAAC,CAAC;aAC7C,IAAI,CAAC,cAAI,CAAC,SAAS,CAAC,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;IAC5D,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,YAAY,GAAG,wBAAwB,CAAA;QAC7C,MAAM,CAAC,IAAA,2BAAc,EAAC,YAAY,EAAE,WAAW,CAAC,CAAC;aAC9C,IAAI,CAAC,cAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAA;IACvC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,OAAO,GAAG,cAAc,CAAA;QAC9B,MAAM,CAAC,IAAA,2BAAc,EAAC,OAAO,EAAE,WAAW,CAAC,CAAC;aACzC,IAAI,CAAC,cAAI,CAAC,SAAS,CAAC,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC,CAAA;IAChE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,CAAC,IAAA,2BAAc,EAAC,cAAc,EAAE,WAAW,CAAC,CAAC;aAChD,IAAI,CAAC,cAAI,CAAC,SAAS,CAAC,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC,CAAA;IAChE,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,37 @@
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
+ const path_1 = require("../path");
7
+ const path_2 = __importDefault(require("path"));
8
+ describe('toAbsolutePath', () => {
9
+ const projectRoot = '/home/user/project';
10
+ it('should handle relative paths', () => {
11
+ expect((0, path_1.toAbsolutePath)('src/file.ts', projectRoot))
12
+ .toBe(path_2.default.normalize(path_2.default.join(projectRoot, 'src/file.ts')));
13
+ });
14
+ it('should handle parent directory references', () => {
15
+ expect((0, path_1.toAbsolutePath)('../file.ts', projectRoot))
16
+ .toBe(path_2.default.normalize(path_2.default.join(path_2.default.dirname(projectRoot), 'file.ts')));
17
+ });
18
+ it('should handle current directory references', () => {
19
+ expect((0, path_1.toAbsolutePath)('./file.ts', projectRoot))
20
+ .toBe(path_2.default.normalize(path_2.default.join(projectRoot, 'file.ts')));
21
+ });
22
+ it('should return absolute paths unchanged', () => {
23
+ const absolutePath = '/absolute/path/file.ts';
24
+ expect((0, path_1.toAbsolutePath)(absolutePath, projectRoot))
25
+ .toBe(path_2.default.normalize(absolutePath));
26
+ });
27
+ it('should handle Windows-style paths', () => {
28
+ const winPath = 'src\\file.ts';
29
+ expect((0, path_1.toAbsolutePath)(winPath, projectRoot))
30
+ .toBe(path_2.default.normalize(path_2.default.join(projectRoot, 'src/file.ts')));
31
+ });
32
+ it('should normalize paths with multiple slashes', () => {
33
+ expect((0, path_1.toAbsolutePath)('src//file.ts', projectRoot))
34
+ .toBe(path_2.default.normalize(path_2.default.join(projectRoot, 'src/file.ts')));
35
+ });
36
+ });
37
+ //# sourceMappingURL=path.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path.test.js","sourceRoot":"","sources":["../../../src/utils/__tests__/path.test.ts"],"names":[],"mappings":";;;;;AAAA,kCAAwC;AACxC,gDAAuB;AAEvB,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,MAAM,WAAW,GAAG,oBAAoB,CAAA;IAExC,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,CAAC,IAAA,qBAAc,EAAC,aAAa,EAAE,WAAW,CAAC,CAAC;aAC/C,IAAI,CAAC,cAAI,CAAC,SAAS,CAAC,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC,CAAA;IAChE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,CAAC,IAAA,qBAAc,EAAC,YAAY,EAAE,WAAW,CAAC,CAAC;aAC9C,IAAI,CAAC,cAAI,CAAC,SAAS,CAAC,cAAI,CAAC,IAAI,CAAC,cAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;IAC1E,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,CAAC,IAAA,qBAAc,EAAC,WAAW,EAAE,WAAW,CAAC,CAAC;aAC7C,IAAI,CAAC,cAAI,CAAC,SAAS,CAAC,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;IAC5D,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,YAAY,GAAG,wBAAwB,CAAA;QAC7C,MAAM,CAAC,IAAA,qBAAc,EAAC,YAAY,EAAE,WAAW,CAAC,CAAC;aAC9C,IAAI,CAAC,cAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAA;IACvC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,OAAO,GAAG,cAAc,CAAA;QAC9B,MAAM,CAAC,IAAA,qBAAc,EAAC,OAAO,EAAE,WAAW,CAAC,CAAC;aACzC,IAAI,CAAC,cAAI,CAAC,SAAS,CAAC,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC,CAAA;IAChE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,CAAC,IAAA,qBAAc,EAAC,cAAc,EAAE,WAAW,CAAC,CAAC;aAChD,IAAI,CAAC,cAAI,CAAC,SAAS,CAAC,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC,CAAA;IAChE,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Transforms a relative filepath into an absolute one, using the project root as the base.
3
+ * Handles '..' and '.' in paths correctly. Also handles Windows paths.
4
+ *
5
+ * @param filepath The relative filepath to transform
6
+ * @param projectRoot The absolute path to the project root
7
+ * @returns The absolute filepath
8
+ */
9
+ export declare function toAbsolutePath(filepath: string, projectRoot: string): string;
@@ -0,0 +1,24 @@
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.toAbsolutePath = toAbsolutePath;
7
+ const path_1 = __importDefault(require("path"));
8
+ /**
9
+ * Transforms a relative filepath into an absolute one, using the project root as the base.
10
+ * Handles '..' and '.' in paths correctly. Also handles Windows paths.
11
+ *
12
+ * @param filepath The relative filepath to transform
13
+ * @param projectRoot The absolute path to the project root
14
+ * @returns The absolute filepath
15
+ */
16
+ function toAbsolutePath(filepath, projectRoot) {
17
+ // If already absolute, normalize and return
18
+ if (path_1.default.isAbsolute(filepath)) {
19
+ return path_1.default.normalize(filepath);
20
+ }
21
+ // Handle '..' at the start by resolving against project root
22
+ return path_1.default.normalize(path_1.default.resolve(projectRoot, filepath));
23
+ }
24
+ //# sourceMappingURL=file-paths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-paths.js","sourceRoot":"","sources":["../../src/utils/file-paths.ts"],"names":[],"mappings":";;;;;AAUA,wCAQC;AAlBD,gDAAuB;AAEvB;;;;;;;GAOG;AACH,SAAgB,cAAc,CAAC,QAAgB,EAAE,WAAmB;IAClE,4CAA4C;IAC5C,IAAI,cAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9B,OAAO,cAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;IACjC,CAAC;IAED,6DAA6D;IAC7D,OAAO,cAAI,CAAC,SAAS,CAAC,cAAI,CAAC,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAA;AAC5D,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Transforms a relative filepath into an absolute one, using the project root as the base.
3
+ * Handles '..' and '.' in paths correctly. Also handles Windows paths.
4
+ *
5
+ * @param filepath The relative filepath to transform
6
+ * @param projectRoot The absolute path to the project root
7
+ * @returns The absolute filepath
8
+ */
9
+ export declare function toAbsolutePath(filepath: string, projectRoot: string): string;
@@ -0,0 +1,27 @@
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.toAbsolutePath = toAbsolutePath;
7
+ const path_1 = __importDefault(require("path"));
8
+ /**
9
+ * Transforms a relative filepath into an absolute one, using the project root as the base.
10
+ * Handles '..' and '.' in paths correctly. Also handles Windows paths.
11
+ *
12
+ * @param filepath The relative filepath to transform
13
+ * @param projectRoot The absolute path to the project root
14
+ * @returns The absolute filepath
15
+ */
16
+ function toAbsolutePath(filepath, projectRoot) {
17
+ // If already absolute, normalize and return
18
+ if (path_1.default.isAbsolute(filepath)) {
19
+ return path_1.default.normalize(filepath);
20
+ }
21
+ // Handle Windows paths
22
+ const normalizedFilepath = filepath.replace(/\\/g, '/');
23
+ const normalizedProjectRoot = projectRoot.replace(/\\/g, '/');
24
+ // Handle '..' at the start by resolving against project root
25
+ return path_1.default.normalize(path_1.default.resolve(normalizedProjectRoot, normalizedFilepath));
26
+ }
27
+ //# sourceMappingURL=path.js.map