codecane 1.0.293 → 1.0.296

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 (300) hide show
  1. package/README.md +87 -0
  2. package/dist/background-process-manager.d.ts +50 -0
  3. package/dist/background-process-manager.js +359 -0
  4. package/dist/background-process-manager.js.map +1 -0
  5. package/dist/browser-runner.d.ts +35 -0
  6. package/dist/browser-runner.js +680 -0
  7. package/dist/browser-runner.js.map +1 -0
  8. package/dist/chat-storage.d.ts +2 -0
  9. package/dist/chat-storage.js +93 -0
  10. package/dist/chat-storage.js.map +1 -0
  11. package/dist/checkpoints/checkpoint-manager.d.ts +94 -0
  12. package/dist/checkpoints/checkpoint-manager.js +280 -0
  13. package/dist/checkpoints/checkpoint-manager.js.map +1 -0
  14. package/dist/checkpoints/file-manager.d.ts +72 -0
  15. package/dist/checkpoints/file-manager.js +294 -0
  16. package/dist/checkpoints/file-manager.js.map +1 -0
  17. package/dist/cli-handlers/api-key.d.ts +25 -0
  18. package/dist/cli-handlers/api-key.js +66 -0
  19. package/dist/cli-handlers/api-key.js.map +1 -0
  20. package/dist/cli-handlers/checkpoint.d.ts +18 -0
  21. package/dist/cli-handlers/checkpoint.js +195 -0
  22. package/dist/cli-handlers/checkpoint.js.map +1 -0
  23. package/dist/cli-handlers/diff.d.ts +2 -0
  24. package/dist/cli-handlers/diff.js +31 -0
  25. package/dist/cli-handlers/diff.js.map +1 -0
  26. package/dist/cli-handlers/easter-egg.d.ts +1 -0
  27. package/dist/cli-handlers/easter-egg.js +126 -0
  28. package/dist/cli-handlers/easter-egg.js.map +1 -0
  29. package/dist/cli-handlers/inititalization-flow.d.ts +1 -0
  30. package/dist/cli-handlers/inititalization-flow.js +24 -0
  31. package/dist/cli-handlers/inititalization-flow.js.map +1 -0
  32. package/dist/cli.d.ts +44 -0
  33. package/dist/cli.js +494 -0
  34. package/dist/cli.js.map +1 -0
  35. package/dist/client.d.ts +151 -0
  36. package/dist/client.js +835 -0
  37. package/dist/client.js.map +1 -0
  38. package/dist/code-map/languages.d.ts +13 -0
  39. package/dist/code-map/languages.d.ts.map +1 -0
  40. package/dist/code-map/languages.js +129 -0
  41. package/dist/code-map/languages.js.map +1 -0
  42. package/dist/code-map/parse.d.ts +12 -0
  43. package/dist/code-map/parse.d.ts.map +1 -0
  44. package/dist/code-map/parse.js +127 -0
  45. package/dist/code-map/parse.js.map +1 -0
  46. package/dist/code-map/test-langs/test.d.ts +12 -0
  47. package/dist/code-map/test-langs/test.d.ts.map +1 -0
  48. package/dist/code-map/test-langs/test.js +23 -0
  49. package/dist/code-map/test-langs/test.js.map +1 -0
  50. package/dist/code-map/tree-sitter-queries/readme.md +23 -0
  51. package/dist/code-map/tree-sitter-queries/tree-sitter-c-tags.scm +11 -0
  52. package/dist/code-map/tree-sitter-queries/tree-sitter-c_sharp-tags.scm +13 -0
  53. package/dist/code-map/tree-sitter-queries/tree-sitter-cpp-tags.scm +17 -0
  54. package/dist/code-map/tree-sitter-queries/tree-sitter-go-tags.scm +26 -0
  55. package/dist/code-map/tree-sitter-queries/tree-sitter-java-tags.scm +19 -0
  56. package/dist/code-map/tree-sitter-queries/tree-sitter-javascript-tags.scm +15 -0
  57. package/dist/code-map/tree-sitter-queries/tree-sitter-php-tags.scm +26 -0
  58. package/dist/code-map/tree-sitter-queries/tree-sitter-python-tags.scm +9 -0
  59. package/dist/code-map/tree-sitter-queries/tree-sitter-ruby-tags.scm +58 -0
  60. package/dist/code-map/tree-sitter-queries/tree-sitter-rust-tags.scm +26 -0
  61. package/dist/code-map/tree-sitter-queries/tree-sitter-typescript-tags.scm +15 -0
  62. package/dist/code-map/tsconfig.tsbuildinfo +1 -0
  63. package/dist/common/actions.d.ts +2592 -0
  64. package/dist/common/actions.js +144 -0
  65. package/dist/common/actions.js.map +1 -0
  66. package/dist/common/analytics.d.ts +4 -0
  67. package/dist/common/analytics.js +40 -0
  68. package/dist/common/analytics.js.map +1 -0
  69. package/dist/common/api-keys/constants.d.ts +8 -0
  70. package/dist/common/api-keys/constants.js +26 -0
  71. package/dist/common/api-keys/constants.js.map +1 -0
  72. package/dist/common/api-keys/crypto.d.ts +24 -0
  73. package/dist/common/api-keys/crypto.js +186 -0
  74. package/dist/common/api-keys/crypto.js.map +1 -0
  75. package/dist/common/browser-actions.d.ts +4415 -0
  76. package/dist/common/browser-actions.js +343 -0
  77. package/dist/common/browser-actions.js.map +1 -0
  78. package/dist/common/constants/analytics-events.d.ts +19 -0
  79. package/dist/common/constants/analytics-events.js +27 -0
  80. package/dist/common/constants/analytics-events.js.map +1 -0
  81. package/dist/common/constants/grant-priorities.d.ts +2 -0
  82. package/dist/common/constants/grant-priorities.js +10 -0
  83. package/dist/common/constants/grant-priorities.js.map +1 -0
  84. package/dist/common/constants/tools.d.ts +17 -0
  85. package/dist/common/constants/tools.js +45 -0
  86. package/dist/common/constants/tools.js.map +1 -0
  87. package/dist/common/constants.d.ts +134 -0
  88. package/dist/common/constants.js +180 -0
  89. package/dist/common/constants.js.map +1 -0
  90. package/dist/common/db/drizzle.config.d.ts +2 -0
  91. package/dist/common/db/drizzle.config.js +17 -0
  92. package/dist/common/db/drizzle.config.js.map +1 -0
  93. package/dist/common/db/env.d.mts +1 -0
  94. package/dist/common/db/env.mjs +26 -0
  95. package/dist/common/db/env.mjs.map +1 -0
  96. package/dist/common/db/index.d.ts +6 -0
  97. package/dist/common/db/index.js +35 -0
  98. package/dist/common/db/index.js.map +1 -0
  99. package/dist/common/db/schema.d.ts +1419 -0
  100. package/dist/common/db/schema.js +175 -0
  101. package/dist/common/db/schema.js.map +1 -0
  102. package/dist/common/db/transaction.d.ts +12 -0
  103. package/dist/common/db/transaction.js +36 -0
  104. package/dist/common/db/transaction.js.map +1 -0
  105. package/dist/common/env.d.mts +1 -0
  106. package/dist/common/env.mjs +40 -0
  107. package/dist/common/env.mjs.map +1 -0
  108. package/dist/common/json-config/__tests__/stringify-schema.test.d.ts +1 -0
  109. package/dist/common/json-config/__tests__/stringify-schema.test.js +66 -0
  110. package/dist/common/json-config/__tests__/stringify-schema.test.js.map +1 -0
  111. package/dist/common/json-config/constants.d.ts +82 -0
  112. package/dist/common/json-config/constants.js +48 -0
  113. package/dist/common/json-config/constants.js.map +1 -0
  114. package/dist/common/json-config/parser.d.ts +7 -0
  115. package/dist/common/json-config/parser.js +51 -0
  116. package/dist/common/json-config/parser.js.map +1 -0
  117. package/dist/common/json-config/stringify-schema.d.ts +9 -0
  118. package/dist/common/json-config/stringify-schema.js +131 -0
  119. package/dist/common/json-config/stringify-schema.js.map +1 -0
  120. package/dist/common/project-file-tree.d.ts +11 -0
  121. package/dist/common/project-file-tree.js +200 -0
  122. package/dist/common/project-file-tree.js.map +1 -0
  123. package/dist/common/types/agent-state.d.ts +464 -0
  124. package/dist/common/types/agent-state.js +32 -0
  125. package/dist/common/types/agent-state.js.map +1 -0
  126. package/dist/common/types/grant.d.ts +2 -0
  127. package/dist/common/types/grant.js +10 -0
  128. package/dist/common/types/grant.js.map +1 -0
  129. package/dist/common/types/message.d.ts +311 -0
  130. package/dist/common/types/message.js +54 -0
  131. package/dist/common/types/message.js.map +1 -0
  132. package/dist/common/types/referral.d.ts +2 -0
  133. package/dist/common/types/referral.js +5 -0
  134. package/dist/common/types/referral.js.map +1 -0
  135. package/dist/common/types/tools.d.ts +5 -0
  136. package/dist/common/types/tools.js +3 -0
  137. package/dist/common/types/tools.js.map +1 -0
  138. package/dist/common/types/usage.d.ts +40 -0
  139. package/dist/common/types/usage.js +15 -0
  140. package/dist/common/types/usage.js.map +1 -0
  141. package/dist/common/util/__tests__/messages.test.d.ts +1 -0
  142. package/dist/common/util/__tests__/messages.test.js +70 -0
  143. package/dist/common/util/__tests__/messages.test.js.map +1 -0
  144. package/dist/common/util/__tests__/saxy.test.d.ts +1 -0
  145. package/dist/common/util/__tests__/saxy.test.js +387 -0
  146. package/dist/common/util/__tests__/saxy.test.js.map +1 -0
  147. package/dist/common/util/__tests__/string.test.d.ts +1 -0
  148. package/dist/common/util/__tests__/string.test.js +82 -0
  149. package/dist/common/util/__tests__/string.test.js.map +1 -0
  150. package/dist/common/util/array.d.ts +6 -0
  151. package/dist/common/util/array.js +32 -0
  152. package/dist/common/util/array.js.map +1 -0
  153. package/dist/common/util/changes.d.ts +7 -0
  154. package/dist/common/util/changes.js +78 -0
  155. package/dist/common/util/changes.js.map +1 -0
  156. package/dist/common/util/credentials.d.ts +25 -0
  157. package/dist/common/util/credentials.js +24 -0
  158. package/dist/common/util/credentials.js.map +1 -0
  159. package/dist/common/util/currency.d.ts +14 -0
  160. package/dist/common/util/currency.js +23 -0
  161. package/dist/common/util/currency.js.map +1 -0
  162. package/dist/common/util/dates.d.ts +10 -0
  163. package/dist/common/util/dates.js +22 -0
  164. package/dist/common/util/dates.js.map +1 -0
  165. package/dist/common/util/file.d.ts +159 -0
  166. package/dist/common/util/file.js +192 -0
  167. package/dist/common/util/file.js.map +1 -0
  168. package/dist/common/util/git.d.ts +6 -0
  169. package/dist/common/util/git.js +81 -0
  170. package/dist/common/util/git.js.map +1 -0
  171. package/dist/common/util/logger.d.ts +8 -0
  172. package/dist/common/util/logger.js +52 -0
  173. package/dist/common/util/logger.js.map +1 -0
  174. package/dist/common/util/lru-cache.d.ts +30 -0
  175. package/dist/common/util/lru-cache.js +68 -0
  176. package/dist/common/util/lru-cache.js.map +1 -0
  177. package/dist/common/util/messages.d.ts +9 -0
  178. package/dist/common/util/messages.js +69 -0
  179. package/dist/common/util/messages.js.map +1 -0
  180. package/dist/common/util/min-heap.d.ts +15 -0
  181. package/dist/common/util/min-heap.js +73 -0
  182. package/dist/common/util/min-heap.js.map +1 -0
  183. package/dist/common/util/object.d.ts +18 -0
  184. package/dist/common/util/object.js +91 -0
  185. package/dist/common/util/object.js.map +1 -0
  186. package/dist/common/util/patch.d.ts +1 -0
  187. package/dist/common/util/patch.js +215 -0
  188. package/dist/common/util/patch.js.map +1 -0
  189. package/dist/common/util/promise.d.ts +17 -0
  190. package/dist/common/util/promise.js +80 -0
  191. package/dist/common/util/promise.js.map +1 -0
  192. package/dist/common/util/referral.d.ts +1 -0
  193. package/dist/common/util/referral.js +6 -0
  194. package/dist/common/util/referral.js.map +1 -0
  195. package/dist/common/util/saxy.d.ts +164 -0
  196. package/dist/common/util/saxy.js +503 -0
  197. package/dist/common/util/saxy.js.map +1 -0
  198. package/dist/common/util/string.d.ts +61 -0
  199. package/dist/common/util/string.js +220 -0
  200. package/dist/common/util/string.js.map +1 -0
  201. package/dist/common/util/stripe.d.ts +3 -0
  202. package/dist/common/util/stripe.js +22 -0
  203. package/dist/common/util/stripe.js.map +1 -0
  204. package/dist/common/util/sync-failure.d.ts +1 -0
  205. package/dist/common/util/sync-failure.js +57 -0
  206. package/dist/common/util/sync-failure.js.map +1 -0
  207. package/dist/common/websockets/websocket-client.d.ts +42 -0
  208. package/dist/common/websockets/websocket-client.js +216 -0
  209. package/dist/common/websockets/websocket-client.js.map +1 -0
  210. package/dist/common/websockets/websocket-schema.d.ts +4876 -0
  211. package/dist/common/websockets/websocket-schema.js +55 -0
  212. package/dist/common/websockets/websocket-schema.js.map +1 -0
  213. package/dist/config.d.ts +4 -0
  214. package/dist/config.js +12 -0
  215. package/dist/config.js.map +1 -0
  216. package/dist/create-template-project.d.ts +1 -0
  217. package/dist/create-template-project.js +107 -0
  218. package/dist/create-template-project.js.map +1 -0
  219. package/dist/credentials.d.ts +4 -0
  220. package/dist/credentials.js +38 -0
  221. package/dist/credentials.js.map +1 -0
  222. package/dist/dev-process-manager.d.ts +10 -0
  223. package/dist/dev-process-manager.js +55 -0
  224. package/dist/dev-process-manager.js.map +1 -0
  225. package/dist/display.d.ts +9 -0
  226. package/dist/display.js +68 -0
  227. package/dist/display.js.map +1 -0
  228. package/dist/fingerprint.d.ts +1 -0
  229. package/dist/fingerprint.js +48 -0
  230. package/dist/fingerprint.js.map +1 -0
  231. package/dist/index.d.ts +2 -0
  232. package/dist/index.js +130 -0
  233. package/dist/index.js.map +1 -0
  234. package/dist/menu.d.ts +3 -0
  235. package/dist/menu.js +170 -0
  236. package/dist/menu.js.map +1 -0
  237. package/dist/project-files.d.ts +129 -0
  238. package/dist/project-files.js +556 -0
  239. package/dist/project-files.js.map +1 -0
  240. package/dist/startup-process-handler.d.ts +2 -0
  241. package/dist/startup-process-handler.js +21 -0
  242. package/dist/startup-process-handler.js.map +1 -0
  243. package/dist/tool-handlers.d.ts +30 -0
  244. package/dist/tool-handlers.js +245 -0
  245. package/dist/tool-handlers.js.map +1 -0
  246. package/dist/types.d.ts +15 -0
  247. package/dist/types.js +3 -0
  248. package/dist/types.js.map +1 -0
  249. package/dist/update-codebuff.d.ts +1 -0
  250. package/dist/update-codebuff.js +161 -0
  251. package/dist/update-codebuff.js.map +1 -0
  252. package/dist/utils/__tests__/background-process-manager.test.d.ts +1 -0
  253. package/dist/utils/__tests__/background-process-manager.test.js +327 -0
  254. package/dist/utils/__tests__/background-process-manager.test.js.map +1 -0
  255. package/dist/utils/__tests__/response-example-4-files.txt +621 -0
  256. package/dist/utils/__tests__/tool-renderers.test.d.ts +1 -0
  257. package/dist/utils/__tests__/tool-renderers.test.js +51 -0
  258. package/dist/utils/__tests__/tool-renderers.test.js.map +1 -0
  259. package/dist/utils/__tests__/xml-stream-parser.test.d.ts +1 -0
  260. package/dist/utils/__tests__/xml-stream-parser.test.js +229 -0
  261. package/dist/utils/__tests__/xml-stream-parser.test.js.map +1 -0
  262. package/dist/utils/analytics.d.ts +6 -0
  263. package/dist/utils/analytics.js +83 -0
  264. package/dist/utils/analytics.js.map +1 -0
  265. package/dist/utils/detect-shell.d.ts +1 -0
  266. package/dist/utils/detect-shell.js +60 -0
  267. package/dist/utils/detect-shell.js.map +1 -0
  268. package/dist/utils/git.d.ts +2 -0
  269. package/dist/utils/git.js +40 -0
  270. package/dist/utils/git.js.map +1 -0
  271. package/dist/utils/logger.d.ts +21 -0
  272. package/dist/utils/logger.js +105 -0
  273. package/dist/utils/logger.js.map +1 -0
  274. package/dist/utils/spinner.d.ts +11 -0
  275. package/dist/utils/spinner.js +87 -0
  276. package/dist/utils/spinner.js.map +1 -0
  277. package/dist/utils/system-info.d.ts +8 -0
  278. package/dist/utils/system-info.js +22 -0
  279. package/dist/utils/system-info.js.map +1 -0
  280. package/dist/utils/terminal.d.ts +43 -0
  281. package/dist/utils/terminal.js +546 -0
  282. package/dist/utils/terminal.js.map +1 -0
  283. package/dist/utils/tool-renderers.d.ts +16 -0
  284. package/dist/utils/tool-renderers.js +163 -0
  285. package/dist/utils/tool-renderers.js.map +1 -0
  286. package/dist/utils/xml-stream-parser.d.ts +9 -0
  287. package/dist/utils/xml-stream-parser.js +128 -0
  288. package/dist/utils/xml-stream-parser.js.map +1 -0
  289. package/dist/web-scraper.d.ts +3 -0
  290. package/dist/web-scraper.js +57 -0
  291. package/dist/web-scraper.js.map +1 -0
  292. package/dist/workers/checkpoint-worker.d.ts +1 -0
  293. package/dist/workers/checkpoint-worker.js +48 -0
  294. package/dist/workers/checkpoint-worker.js.map +1 -0
  295. package/dist/workers/project-context.d.ts +1 -0
  296. package/dist/workers/project-context.js +20 -0
  297. package/dist/workers/project-context.js.map +1 -0
  298. package/package.json +69 -22
  299. package/bin/launcher.js +0 -21
  300. package/scripts/postinstall.js +0 -100
@@ -0,0 +1,556 @@
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
+ exports.deleteFile = exports.getProjectFileContext = exports.currentChatId = void 0;
30
+ exports.isDir = isDir;
31
+ exports.getProjectDataDir = getProjectDataDir;
32
+ exports.getCurrentChatDir = getCurrentChatDir;
33
+ exports.setProjectRoot = setProjectRoot;
34
+ exports.getProjectRoot = getProjectRoot;
35
+ exports.setWorkingDirectory = setWorkingDirectory;
36
+ exports.getWorkingDirectory = getWorkingDirectory;
37
+ exports.getStartingDirectory = getStartingDirectory;
38
+ exports.toAbsolutePath = toAbsolutePath;
39
+ exports.initProjectFileContextWithWorker = initProjectFileContextWithWorker;
40
+ exports.getChangesSinceLastFileVersion = getChangesSinceLastFileVersion;
41
+ exports.getFiles = getFiles;
42
+ exports.getFilesOrNull = getFilesOrNull;
43
+ exports.getExistingFiles = getExistingFiles;
44
+ exports.addScrapedContentToFiles = addScrapedContentToFiles;
45
+ exports.getFilesAbsolutePath = getFilesAbsolutePath;
46
+ exports.setFiles = setFiles;
47
+ exports.getFileBlocks = getFileBlocks;
48
+ const child_process_1 = require("child_process");
49
+ const fs_1 = __importStar(require("fs"));
50
+ const os_1 = __importDefault(require("os"));
51
+ const path_1 = __importStar(require("path"));
52
+ const util_1 = require("util");
53
+ const worker_threads_1 = require("worker_threads");
54
+ const parse_1 = require("./code-map/parse");
55
+ const constants_1 = require("./common/constants");
56
+ const project_file_tree_1 = require("./common/project-file-tree");
57
+ const file_1 = require("./common/util/file");
58
+ const object_1 = require("./common/util/object");
59
+ const diff_1 = require("diff");
60
+ const picocolors_1 = require("picocolors");
61
+ const checkpoint_manager_1 = require("./checkpoints/checkpoint-manager");
62
+ const credentials_1 = require("./credentials");
63
+ const system_info_1 = require("./utils/system-info");
64
+ const web_scraper_1 = require("./web-scraper");
65
+ // Global variables for chat management
66
+ // Initialize chat ID on first import
67
+ exports.currentChatId = new Date().toISOString().replace(/:/g, '-');
68
+ function isDir(p) {
69
+ try {
70
+ return (0, fs_1.statSync)(p).isDirectory();
71
+ }
72
+ catch {
73
+ return false;
74
+ }
75
+ }
76
+ // Get the project-specific data directory
77
+ function getProjectDataDir() {
78
+ const root = getProjectRoot();
79
+ if (!root) {
80
+ throw new Error('Project root not set. Call setProjectRoot() first.');
81
+ }
82
+ const baseName = path_1.default.basename(root);
83
+ const baseDir = path_1.default.join(credentials_1.CONFIG_DIR, 'projects', baseName);
84
+ // TODO: Need to handle duplicate project directories after adding automatic
85
+ // feedback feature
86
+ return baseDir;
87
+ }
88
+ function getCurrentChatDir() {
89
+ const dir = path_1.default.join(getProjectDataDir(), 'chats', exports.currentChatId);
90
+ (0, file_1.ensureDirectoryExists)(dir);
91
+ return dir;
92
+ }
93
+ const execAsync = (0, util_1.promisify)(child_process_1.exec);
94
+ let projectRoot;
95
+ function setProjectRoot(dir, setCwd = false) {
96
+ if ((0, fs_1.existsSync)(dir)) {
97
+ if (projectRoot) {
98
+ checkpoint_manager_1.checkpointManager.clearCheckpoints(true);
99
+ console.log('\n' + (0, picocolors_1.green)('Directory change:'), `Codebuff will read and write files in "${dir}".\n`);
100
+ }
101
+ projectRoot = dir;
102
+ if (setCwd) {
103
+ setWorkingDirectory(dir);
104
+ }
105
+ return dir;
106
+ }
107
+ if (setCwd) {
108
+ setWorkingDirectory(projectRoot);
109
+ }
110
+ return projectRoot;
111
+ }
112
+ function getProjectRoot() {
113
+ return projectRoot;
114
+ }
115
+ let workingDirectory;
116
+ function setWorkingDirectory(dir) {
117
+ workingDirectory = dir;
118
+ return workingDirectory;
119
+ }
120
+ function getWorkingDirectory() {
121
+ return workingDirectory;
122
+ }
123
+ function getStartingDirectory(dir = undefined) {
124
+ let base;
125
+ try {
126
+ base = process.cwd();
127
+ }
128
+ catch (error) {
129
+ throw new Error('Failed to get current working directory. Is this directory deleted?', { cause: error });
130
+ }
131
+ if (!dir) {
132
+ return { cwd: base, shouldSearch: true };
133
+ }
134
+ const dirAbsolute = path_1.default.normalize(path_1.default.resolve(base, dir));
135
+ if (!(0, fs_1.existsSync)(dirAbsolute) || !(0, fs_1.statSync)(dirAbsolute).isDirectory()) {
136
+ console.log(`Could not find directory ${dirAbsolute}\n`);
137
+ return { cwd: base, shouldSearch: true };
138
+ }
139
+ return { cwd: dirAbsolute, shouldSearch: false };
140
+ }
141
+ /**
142
+ * Transforms a relative filepath into an absolute one, using the project root as the base.
143
+ * Handles '..' and '.' in paths correctly. Also handles Windows paths.
144
+ *
145
+ * @param filepath The relative filepath to transform
146
+ * @param projectRoot The absolute path to the project root
147
+ * @returns The absolute filepath
148
+ */
149
+ function toAbsolutePath(filepath, projectRoot) {
150
+ // If already absolute, normalize and return
151
+ if (path_1.default.isAbsolute(filepath)) {
152
+ return path_1.default.normalize(filepath);
153
+ }
154
+ // Handle '..' at the start by resolving against project root
155
+ return path_1.default.normalize(path_1.default.resolve(projectRoot, filepath));
156
+ }
157
+ let cachedProjectFileContext;
158
+ function initProjectFileContextWithWorker(dir) {
159
+ // NOTE: Uses the built worker-script-project-context.js within dist.
160
+ // So you need to run `bun run build` before running locally.
161
+ const workerPath = __filename.endsWith('.ts')
162
+ ? path_1.default.join(__dirname, '..', 'dist', 'workers/project-context.js')
163
+ : path_1.default.join(__dirname, 'workers/project-context.js');
164
+ const worker = new worker_threads_1.Worker(workerPath);
165
+ worker.postMessage({ dir });
166
+ return new Promise((resolve, reject) => {
167
+ worker.on('message', (initFileContext) => {
168
+ worker.terminate();
169
+ cachedProjectFileContext = initFileContext;
170
+ resolve(initFileContext);
171
+ });
172
+ });
173
+ }
174
+ /**
175
+ * Retrieves or updates the project file context for a given project.
176
+ *
177
+ * This function gathers comprehensive information about the project's files, structure,
178
+ * and state. It either creates a new context if one doesn't exist for the specified
179
+ * project root, or updates an existing cached context with new information.
180
+ *
181
+ * The context includes:
182
+ * - File tree structure
183
+ * - Token scores for code analysis
184
+ * - Knowledge files (project-specific documentation)
185
+ * - User knowledge files (from home directory)
186
+ * - Git changes and status
187
+ * - Changes since the last file version
188
+ * - Shell configuration files
189
+ * - System information
190
+ *
191
+ * @param {string} projectRoot - The root directory path of the project
192
+ * @param {Record<string, string>} lastFileVersion - Record of the last known file versions
193
+ * @param {FileVersion[][]} newFileVersions - Array of file version arrays, representing the history of file changes
194
+ * @returns {Promise<ProjectFileContext>} A promise that resolves to the project file context object
195
+ */
196
+ const getProjectFileContext = async (projectRoot, lastFileVersion) => {
197
+ const gitChanges = await getGitChanges();
198
+ const changesSinceLastChat = getChangesSinceLastFileVersion(lastFileVersion);
199
+ if (!cachedProjectFileContext ||
200
+ cachedProjectFileContext.currentWorkingDirectory !== projectRoot) {
201
+ const fileTree = (0, project_file_tree_1.getProjectFileTree)(projectRoot);
202
+ const flattenedNodes = (0, project_file_tree_1.flattenTree)(fileTree);
203
+ const allFilePaths = flattenedNodes
204
+ .filter((node) => node.type === 'file')
205
+ .map((node) => node.filePath);
206
+ const knowledgeFilePaths = allFilePaths.filter((filePath) => {
207
+ const lowercaseFilePath = filePath.toLowerCase();
208
+ return (lowercaseFilePath.endsWith('knowledge.md') ||
209
+ lowercaseFilePath.endsWith('claude.md'));
210
+ });
211
+ const knowledgeFiles = getExistingFiles(knowledgeFilePaths);
212
+ const knowledgeFilesWithScrapedContent = await addScrapedContentToFiles(knowledgeFiles);
213
+ // Get knowledge files from user's home directory
214
+ const homeDir = os_1.default.homedir();
215
+ const userKnowledgeFiles = findKnowledgeFilesInDir(homeDir);
216
+ const userKnowledgeFilesWithScrapedContent = await addScrapedContentToFiles(userKnowledgeFiles);
217
+ const shellConfigFiles = loadShellConfigFiles();
218
+ const fileTokenScores = await (0, parse_1.getFileTokenScores)(projectRoot, allFilePaths);
219
+ cachedProjectFileContext = {
220
+ currentWorkingDirectory: projectRoot,
221
+ fileTree,
222
+ fileTokenScores,
223
+ knowledgeFiles: knowledgeFilesWithScrapedContent,
224
+ shellConfigFiles,
225
+ systemInfo: (0, system_info_1.getSystemInfo)(),
226
+ userKnowledgeFiles: userKnowledgeFilesWithScrapedContent,
227
+ gitChanges,
228
+ changesSinceLastChat,
229
+ fileVersions: [],
230
+ };
231
+ }
232
+ return cachedProjectFileContext;
233
+ };
234
+ exports.getProjectFileContext = getProjectFileContext;
235
+ /**
236
+ * Retrieves information about the current state of the Git repository.
237
+ *
238
+ * This asynchronous function executes several Git commands to gather comprehensive
239
+ * information about the repository's current state, including:
240
+ * - Current status (modified files, untracked files, etc.)
241
+ * - Uncommitted changes (diff)
242
+ * - Staged changes (cached diff)
243
+ * - Recent commit messages (from the last 10 commits)
244
+ *
245
+ * The function uses the global projectRoot variable to determine which repository
246
+ * to query. If any Git command fails (e.g., if the directory is not a Git repository),
247
+ * the function gracefully handles the error and returns empty strings for all properties.
248
+ *
249
+ * @returns {Promise<{status: string, diff: string, diffCached: string, lastCommitMessages: string}>}
250
+ * A promise that resolves to an object containing Git repository information:
251
+ * - status: Output of 'git status' command
252
+ * - diff: Output of 'git diff' command showing uncommitted changes
253
+ * - diffCached: Output of 'git diff --cached' command showing staged changes
254
+ * - lastCommitMessages: Recent commit messages, formatted as a newline-separated string
255
+ */
256
+ async function getGitChanges() {
257
+ try {
258
+ const { stdout: status } = await execAsync('git status', {
259
+ cwd: projectRoot,
260
+ });
261
+ const { stdout: diff } = await execAsync('git diff', { cwd: projectRoot });
262
+ const { stdout: diffCached } = await execAsync('git diff --cached', {
263
+ cwd: projectRoot,
264
+ });
265
+ const { stdout: shortLogOutput } = await execAsync('git shortlog HEAD~10..HEAD', {
266
+ cwd: projectRoot,
267
+ });
268
+ const shortLogLines = shortLogOutput.trim().split('\n');
269
+ const lastCommitMessages = shortLogLines
270
+ .slice(1)
271
+ .reverse()
272
+ .map((line) => line.trim())
273
+ .join('\n');
274
+ return { status, diff, diffCached, lastCommitMessages };
275
+ }
276
+ catch (error) {
277
+ return { status: '', diff: '', diffCached: '', lastCommitMessages: '' };
278
+ }
279
+ }
280
+ /**
281
+ * Identifies changes between the last known version of files and their current state on disk.
282
+ *
283
+ * This function compares each file in the provided lastFileVersion record with its current
284
+ * content on disk. For files that have changed, it generates a patch using the diff library's
285
+ * createPatch function. Files that haven't changed or can't be read are filtered out from
286
+ * the result.
287
+ *
288
+ * The function is used to track changes made to files since the last interaction or session,
289
+ * which helps maintain context about what has changed in the project over time.
290
+ *
291
+ * @param {Record<string, string>} lastFileVersion - A record mapping file paths to their
292
+ * content as of the last known version
293
+ * @returns {Record<string, string>} A record mapping file paths to patch strings for files
294
+ * that have changed since the last version. Files that haven't changed or couldn't
295
+ * be read are not included in the result.
296
+ */
297
+ function getChangesSinceLastFileVersion(lastFileVersion) {
298
+ const changes = Object.entries(lastFileVersion)
299
+ .map(([filePath, file]) => {
300
+ const fullFilePath = path_1.default.join(getProjectRoot(), filePath);
301
+ try {
302
+ const currentContent = fs_1.default.readFileSync(fullFilePath, 'utf8');
303
+ if (currentContent === file) {
304
+ return [filePath, null];
305
+ }
306
+ return [filePath, (0, diff_1.createPatch)(filePath, file, currentContent)];
307
+ }
308
+ catch (error) {
309
+ // console.error(`Error reading file ${fullFilePath}:`, error)
310
+ return [filePath, null];
311
+ }
312
+ })
313
+ .filter(([_, diff]) => diff !== null);
314
+ return Object.fromEntries(changes);
315
+ }
316
+ function getFiles(filePaths) {
317
+ const result = {};
318
+ const MAX_FILE_SIZE = 1024 * 1024; // 1MB in bytes
319
+ const ig = (0, project_file_tree_1.parseGitignore)(projectRoot, projectRoot);
320
+ for (const filePath of filePaths) {
321
+ if (!filePath) {
322
+ continue;
323
+ }
324
+ // Convert absolute paths within project to relative paths
325
+ const relativePath = filePath.startsWith(projectRoot)
326
+ ? path_1.default.relative(projectRoot, filePath)
327
+ : filePath;
328
+ const fullPath = path_1.default.join(projectRoot, relativePath);
329
+ if ((0, path_1.isAbsolute)(relativePath) || !fullPath.startsWith(projectRoot)) {
330
+ result[relativePath] = constants_1.FILE_READ_STATUS.OUTSIDE_PROJECT;
331
+ continue;
332
+ }
333
+ try {
334
+ if (ig.ignores(relativePath)) {
335
+ result[relativePath] = constants_1.FILE_READ_STATUS.IGNORED;
336
+ continue;
337
+ }
338
+ }
339
+ catch (error) {
340
+ result[relativePath] = constants_1.FILE_READ_STATUS.ERROR;
341
+ continue;
342
+ }
343
+ try {
344
+ const stats = fs_1.default.statSync(fullPath);
345
+ if (stats.size > MAX_FILE_SIZE) {
346
+ result[relativePath] =
347
+ constants_1.FILE_READ_STATUS.TOO_LARGE +
348
+ ` [${(stats.size / (1024 * 1024)).toFixed(2)}MB]`;
349
+ }
350
+ else {
351
+ const content = fs_1.default.readFileSync(fullPath, 'utf8');
352
+ result[relativePath] = content;
353
+ }
354
+ }
355
+ catch (error) {
356
+ if (error &&
357
+ typeof error === 'object' &&
358
+ 'code' in error &&
359
+ error.code === 'ENOENT') {
360
+ result[relativePath] = constants_1.FILE_READ_STATUS.DOES_NOT_EXIST;
361
+ }
362
+ else {
363
+ result[relativePath] = constants_1.FILE_READ_STATUS.ERROR;
364
+ }
365
+ }
366
+ }
367
+ return result;
368
+ }
369
+ function getFilesOrNull(filePaths) {
370
+ const result = getFiles(filePaths);
371
+ return Object.fromEntries(Object.entries(result).map(([filePath, content]) => [
372
+ filePath,
373
+ (0, constants_1.toOptionalFile)(content),
374
+ ]));
375
+ }
376
+ function getExistingFiles(filePaths) {
377
+ return (0, object_1.filterObject)(getFilesOrNull(filePaths), (value) => value !== null);
378
+ }
379
+ async function addScrapedContentToFiles(files) {
380
+ const newFiles = { ...files };
381
+ await Promise.all(Object.entries(files).map(async ([filePath, content]) => {
382
+ const urls = (0, web_scraper_1.parseUrlsFromContent)(content);
383
+ const scrapedContent = await (0, web_scraper_1.getScrapedContentBlocks)(urls);
384
+ newFiles[filePath] =
385
+ content +
386
+ (scrapedContent.length > 0 ? '\n' : '') +
387
+ scrapedContent.join('\n');
388
+ }));
389
+ return newFiles;
390
+ }
391
+ function findKnowledgeFilesInDir(dir) {
392
+ const result = {};
393
+ try {
394
+ const files = fs_1.default.readdirSync(dir, { withFileTypes: true });
395
+ for (const file of files) {
396
+ if (!file.isDirectory() && file.name.endsWith('knowledge.md')) {
397
+ const fullPath = path_1.default.join(dir, file.name);
398
+ try {
399
+ const content = fs_1.default.readFileSync(fullPath, 'utf8');
400
+ result[file.name] = content;
401
+ }
402
+ catch (error) {
403
+ // Skip files we can't read
404
+ console.error(`Error reading knowledge file ${fullPath}:`, error);
405
+ }
406
+ }
407
+ }
408
+ }
409
+ catch (error) {
410
+ // Skip directories we can't read
411
+ console.error(`Error reading directory ${dir}:`, error);
412
+ }
413
+ return result;
414
+ }
415
+ function getFilesAbsolutePath(filePaths) {
416
+ const result = {};
417
+ for (const filePath of filePaths) {
418
+ try {
419
+ const content = fs_1.default.readFileSync(filePath, 'utf8');
420
+ result[filePath] = content;
421
+ }
422
+ catch (error) {
423
+ result[filePath] = null;
424
+ }
425
+ }
426
+ return result;
427
+ }
428
+ function setFiles(files) {
429
+ for (const [filePath, content] of Object.entries(files)) {
430
+ const fullPath = path_1.default.join(projectRoot, filePath);
431
+ fs_1.default.writeFileSync(fullPath, content, 'utf8');
432
+ }
433
+ }
434
+ function getFileBlocks(filePaths) {
435
+ const result = {};
436
+ for (const filePath of filePaths) {
437
+ const fullPath = path_1.default.join(projectRoot, filePath);
438
+ try {
439
+ const content = fs_1.default.readFileSync(fullPath, 'utf8');
440
+ result[filePath] = content;
441
+ }
442
+ catch (error) {
443
+ const fileDoesNotExist = error instanceof Error &&
444
+ error.message.includes('no such file or directory');
445
+ result[filePath] = fileDoesNotExist
446
+ ? '[FILE_DOES_NOT_EXIST]'
447
+ : '[FILE_READ_ERROR]';
448
+ if (!fileDoesNotExist) {
449
+ console.error(`Error reading file ${fullPath}:`, error instanceof Error ? error.message : error);
450
+ }
451
+ }
452
+ }
453
+ const fileBlocks = filePaths.map((filePath) => (0, file_1.createWriteFileBlock)(filePath, result[filePath]));
454
+ return fileBlocks.join('\n');
455
+ }
456
+ const loadShellConfigFiles = () => {
457
+ const homeDir = os_1.default.homedir();
458
+ const configFiles = [
459
+ path_1.default.join(homeDir, '.bashrc'),
460
+ path_1.default.join(homeDir, '.bash_profile'),
461
+ path_1.default.join(homeDir, '.bash_login'),
462
+ path_1.default.join(homeDir, '.profile'),
463
+ path_1.default.join(homeDir, '.zshrc'),
464
+ path_1.default.join(homeDir, '.kshrc'),
465
+ ];
466
+ const files = getFilesAbsolutePath(configFiles);
467
+ return (0, object_1.filterObject)(files, (value) => value !== null);
468
+ };
469
+ /*
470
+ function getExportedTokensForFiles(
471
+ filePaths: string[]
472
+ ): Record<string, string[]> {
473
+ const result: Record<string, string[]> = {}
474
+ const fullFilePaths = filePaths.map((filePath) =>
475
+ path.join(projectRoot, filePath)
476
+ )
477
+ const program = ts.createProgram(fullFilePaths, {})
478
+
479
+ for (let i = 0; i < filePaths.length; i++) {
480
+ const filePath = filePaths[i]
481
+ const fullFilePath = fullFilePaths[i]
482
+ const sourceFile = program.getSourceFile(fullFilePath)
483
+ if (sourceFile) {
484
+ try {
485
+ const exportedTokens = getExportedTokens(sourceFile)
486
+ result[filePath] = exportedTokens
487
+ } catch (error) {
488
+ console.error(`Error processing file ${fullFilePath}:`, error)
489
+ result[filePath] = []
490
+ }
491
+ } else {
492
+ // console.error(`Could not find source file: ${fullFilePath}`)
493
+ result[filePath] = []
494
+ }
495
+ }
496
+
497
+ return result
498
+ }
499
+
500
+ function getExportedTokens(sourceFile: ts.SourceFile): string[] {
501
+ const exportedTokens: string[] = []
502
+
503
+ function visit(node: ts.Node) {
504
+ if (ts.isExportDeclaration(node)) {
505
+ if (node.exportClause && ts.isNamedExports(node.exportClause)) {
506
+ node.exportClause.elements.forEach((element) => {
507
+ exportedTokens.push(element.name.text)
508
+ })
509
+ }
510
+ } else if (
511
+ ts.isFunctionDeclaration(node) ||
512
+ ts.isClassDeclaration(node) ||
513
+ ts.isVariableStatement(node)
514
+ ) {
515
+ if (
516
+ node.modifiers?.some(
517
+ (modifier) => modifier.kind === ts.SyntaxKind.ExportKeyword
518
+ )
519
+ ) {
520
+ if (ts.isFunctionDeclaration(node) || ts.isClassDeclaration(node)) {
521
+ if (node.name) {
522
+ exportedTokens.push(node.name.text)
523
+ }
524
+ } else if (ts.isVariableStatement(node)) {
525
+ node.declarationList.declarations.forEach((declaration) => {
526
+ if (ts.isIdentifier(declaration.name)) {
527
+ exportedTokens.push(declaration.name.text)
528
+ }
529
+ })
530
+ }
531
+ }
532
+ }
533
+
534
+ ts.forEachChild(node, visit)
535
+ }
536
+
537
+ visit(sourceFile)
538
+
539
+ return exportedTokens
540
+ }
541
+ */
542
+ const deleteFile = (fullPath) => {
543
+ try {
544
+ if (fs_1.default.existsSync(fullPath)) {
545
+ fs_1.default.unlinkSync(fullPath);
546
+ return true;
547
+ }
548
+ return false;
549
+ }
550
+ catch (error) {
551
+ console.error(`Error deleting file ${fullPath}:`, error);
552
+ return false;
553
+ }
554
+ };
555
+ exports.deleteFile = deleteFile;
556
+ //# sourceMappingURL=project-files.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-files.js","sourceRoot":"","sources":["../src/project-files.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { CodebuffConfig } from './common/json-config/constants';
2
+ export declare function logAndHandleStartup(projectRoot: string, config: CodebuffConfig | null): Promise<any>;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.logAndHandleStartup = logAndHandleStartup;
4
+ const picocolors_1 = require("picocolors");
5
+ const background_process_manager_1 = require("./background-process-manager");
6
+ const dev_process_manager_1 = require("./dev-process-manager");
7
+ function logAndHandleStartup(projectRoot, config) {
8
+ // First clean up any existing processes
9
+ const { separateCodebuffInstanceRunning, cleanUpPromise } = (0, background_process_manager_1.cleanupStoredProcesses)();
10
+ // Start up new processes if necessary
11
+ if (config?.startupProcesses) {
12
+ if (!separateCodebuffInstanceRunning) {
13
+ (0, dev_process_manager_1.startDevProcesses)(config.startupProcesses, projectRoot);
14
+ }
15
+ else {
16
+ console.log((0, picocolors_1.gray)('Another instance of codebuff detected. Skipping startup processes.') + '\n');
17
+ }
18
+ }
19
+ return cleanUpPromise;
20
+ }
21
+ //# sourceMappingURL=startup-process-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"startup-process-handler.js","sourceRoot":"","sources":["../src/startup-process-handler.ts"],"names":[],"mappings":";;AAMA,kDAqBC;AA1BD,2CAAiC;AAEjC,6EAAqE;AACrE,+DAAyD;AAEzD,SAAgB,mBAAmB,CACjC,WAAmB,EACnB,MAA6B;IAE7B,wCAAwC;IACxC,MAAM,EAAE,+BAA+B,EAAE,cAAc,EAAE,GACvD,IAAA,mDAAsB,GAAE,CAAA;IAE1B,sCAAsC;IACtC,IAAI,MAAM,EAAE,gBAAgB,EAAE,CAAC;QAC7B,IAAI,CAAC,+BAA+B,EAAE,CAAC;YACrC,IAAA,uCAAiB,EAAC,MAAM,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAA;QACzD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CACT,IAAA,iBAAI,EACF,oEAAoE,CACrE,GAAG,IAAI,CACT,CAAA;QACH,CAAC;IACH,CAAC;IACD,OAAO,cAAc,CAAA;AACvB,CAAC"}
@@ -0,0 +1,30 @@
1
+ import { BrowserResponse } from './common/browser-actions';
2
+ import { RawToolCall } from './common/types/tools';
3
+ export type ToolHandler<T extends Record<string, any>> = (parameters: T, id: string) => Promise<string | BrowserResponse>;
4
+ export declare const handleUpdateFile: ToolHandler<{
5
+ tool: 'write_file' | 'str_replace' | 'create_plan';
6
+ path: string;
7
+ content: string;
8
+ type: 'patch' | 'file';
9
+ }>;
10
+ export declare const handleScrapeWebPage: ToolHandler<{
11
+ url: string;
12
+ }>;
13
+ export declare const handleRunTerminalCommand: (parameters: {
14
+ command: string;
15
+ mode?: "user" | "assistant";
16
+ process_type?: "SYNC" | "BACKGROUND";
17
+ timeout_seconds?: number;
18
+ }, id: string) => Promise<{
19
+ result: string;
20
+ stdout: string;
21
+ }>;
22
+ export declare const handleCodeSearch: ToolHandler<{
23
+ pattern: string;
24
+ }>;
25
+ export declare const toolHandlers: Record<string, ToolHandler<any>>;
26
+ export declare const handleToolCall: (toolCall: RawToolCall) => Promise<{
27
+ name: string;
28
+ result: string;
29
+ id: string;
30
+ }>;