codecane 1.0.123

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 (156) hide show
  1. package/README.md +87 -0
  2. package/dist/__tests__/tool-handlers.test.d.ts +1 -0
  3. package/dist/__tests__/tool-handlers.test.js +32 -0
  4. package/dist/__tests__/tool-handlers.test.js.map +1 -0
  5. package/dist/chat-storage.d.ts +29 -0
  6. package/dist/chat-storage.js +125 -0
  7. package/dist/chat-storage.js.map +1 -0
  8. package/dist/cli.d.ts +38 -0
  9. package/dist/cli.js +453 -0
  10. package/dist/cli.js.map +1 -0
  11. package/dist/client.d.ts +71 -0
  12. package/dist/client.js +458 -0
  13. package/dist/client.js.map +1 -0
  14. package/dist/code-map/languages.d.ts +12 -0
  15. package/dist/code-map/languages.js +129 -0
  16. package/dist/code-map/languages.js.map +1 -0
  17. package/dist/code-map/parse.d.ts +11 -0
  18. package/dist/code-map/parse.js +127 -0
  19. package/dist/code-map/parse.js.map +1 -0
  20. package/dist/code-map/test-langs/test.d.ts +11 -0
  21. package/dist/code-map/test-langs/test.js +23 -0
  22. package/dist/code-map/test-langs/test.js.map +1 -0
  23. package/dist/code-map/tree-sitter-queries/readme.md +23 -0
  24. package/dist/code-map/tree-sitter-queries/tree-sitter-c-tags.scm +11 -0
  25. package/dist/code-map/tree-sitter-queries/tree-sitter-c_sharp-tags.scm +13 -0
  26. package/dist/code-map/tree-sitter-queries/tree-sitter-cpp-tags.scm +17 -0
  27. package/dist/code-map/tree-sitter-queries/tree-sitter-go-tags.scm +26 -0
  28. package/dist/code-map/tree-sitter-queries/tree-sitter-java-tags.scm +19 -0
  29. package/dist/code-map/tree-sitter-queries/tree-sitter-javascript-tags.scm +15 -0
  30. package/dist/code-map/tree-sitter-queries/tree-sitter-php-tags.scm +26 -0
  31. package/dist/code-map/tree-sitter-queries/tree-sitter-python-tags.scm +9 -0
  32. package/dist/code-map/tree-sitter-queries/tree-sitter-ruby-tags.scm +58 -0
  33. package/dist/code-map/tree-sitter-queries/tree-sitter-rust-tags.scm +26 -0
  34. package/dist/code-map/tree-sitter-queries/tree-sitter-typescript-tags.scm +15 -0
  35. package/dist/code-map/tsconfig.tsbuildinfo +1 -0
  36. package/dist/common/actions.d.ts +1405 -0
  37. package/dist/common/actions.js +193 -0
  38. package/dist/common/actions.js.map +1 -0
  39. package/dist/common/billing/quota-manager.d.ts +29 -0
  40. package/dist/common/billing/quota-manager.js +213 -0
  41. package/dist/common/billing/quota-manager.js.map +1 -0
  42. package/dist/common/constants.d.ts +41 -0
  43. package/dist/common/constants.js +126 -0
  44. package/dist/common/constants.js.map +1 -0
  45. package/dist/common/db/drizzle.config.d.ts +2 -0
  46. package/dist/common/db/drizzle.config.js +17 -0
  47. package/dist/common/db/drizzle.config.js.map +1 -0
  48. package/dist/common/db/env.d.mts +1 -0
  49. package/dist/common/db/env.mjs +26 -0
  50. package/dist/common/db/env.mjs.map +1 -0
  51. package/dist/common/db/index.d.ts +6 -0
  52. package/dist/common/db/index.js +35 -0
  53. package/dist/common/db/index.js.map +1 -0
  54. package/dist/common/db/schema.d.ts +1089 -0
  55. package/dist/common/db/schema.js +114 -0
  56. package/dist/common/db/schema.js.map +1 -0
  57. package/dist/common/env.d.mts +1 -0
  58. package/dist/common/env.mjs +34 -0
  59. package/dist/common/env.mjs.map +1 -0
  60. package/dist/common/project-file-tree.d.ts +9 -0
  61. package/dist/common/project-file-tree.js +166 -0
  62. package/dist/common/project-file-tree.js.map +1 -0
  63. package/dist/common/types/referral.d.ts +2 -0
  64. package/dist/common/types/referral.js +5 -0
  65. package/dist/common/types/referral.js.map +1 -0
  66. package/dist/common/types/usage.d.ts +24 -0
  67. package/dist/common/types/usage.js +13 -0
  68. package/dist/common/types/usage.js.map +1 -0
  69. package/dist/common/util/__tests__/string.test.d.ts +1 -0
  70. package/dist/common/util/__tests__/string.test.js +83 -0
  71. package/dist/common/util/__tests__/string.test.js.map +1 -0
  72. package/dist/common/util/array.d.ts +6 -0
  73. package/dist/common/util/array.js +32 -0
  74. package/dist/common/util/array.js.map +1 -0
  75. package/dist/common/util/changes.d.ts +6 -0
  76. package/dist/common/util/changes.js +72 -0
  77. package/dist/common/util/changes.js.map +1 -0
  78. package/dist/common/util/credentials.d.ts +25 -0
  79. package/dist/common/util/credentials.js +24 -0
  80. package/dist/common/util/credentials.js.map +1 -0
  81. package/dist/common/util/dates.d.ts +1 -0
  82. package/dist/common/util/dates.js +13 -0
  83. package/dist/common/util/dates.js.map +1 -0
  84. package/dist/common/util/file.d.ts +151 -0
  85. package/dist/common/util/file.js +180 -0
  86. package/dist/common/util/file.js.map +1 -0
  87. package/dist/common/util/git.d.ts +6 -0
  88. package/dist/common/util/git.js +81 -0
  89. package/dist/common/util/git.js.map +1 -0
  90. package/dist/common/util/helpers.d.ts +1 -0
  91. package/dist/common/util/helpers.js +6 -0
  92. package/dist/common/util/helpers.js.map +1 -0
  93. package/dist/common/util/object.d.ts +18 -0
  94. package/dist/common/util/object.js +91 -0
  95. package/dist/common/util/object.js.map +1 -0
  96. package/dist/common/util/patch.d.ts +1 -0
  97. package/dist/common/util/patch.js +215 -0
  98. package/dist/common/util/patch.js.map +1 -0
  99. package/dist/common/util/promise.d.ts +1 -0
  100. package/dist/common/util/promise.js +33 -0
  101. package/dist/common/util/promise.js.map +1 -0
  102. package/dist/common/util/referral.d.ts +1 -0
  103. package/dist/common/util/referral.js +6 -0
  104. package/dist/common/util/referral.js.map +1 -0
  105. package/dist/common/util/server/referral.d.ts +14 -0
  106. package/dist/common/util/server/referral.js +85 -0
  107. package/dist/common/util/server/referral.js.map +1 -0
  108. package/dist/common/util/string.d.ts +9 -0
  109. package/dist/common/util/string.js +90 -0
  110. package/dist/common/util/string.js.map +1 -0
  111. package/dist/common/util/stripe.d.ts +2 -0
  112. package/dist/common/util/stripe.js +19 -0
  113. package/dist/common/util/stripe.js.map +1 -0
  114. package/dist/common/util/tools.d.ts +2 -0
  115. package/dist/common/util/tools.js +13 -0
  116. package/dist/common/util/tools.js.map +1 -0
  117. package/dist/common/websockets/websocket-client.d.ts +40 -0
  118. package/dist/common/websockets/websocket-client.js +187 -0
  119. package/dist/common/websockets/websocket-client.js.map +1 -0
  120. package/dist/common/websockets/websocket-schema.d.ts +3058 -0
  121. package/dist/common/websockets/websocket-schema.js +55 -0
  122. package/dist/common/websockets/websocket-schema.js.map +1 -0
  123. package/dist/config.d.ts +2 -0
  124. package/dist/config.js +8 -0
  125. package/dist/config.js.map +1 -0
  126. package/dist/credentials.d.ts +3 -0
  127. package/dist/credentials.js +33 -0
  128. package/dist/credentials.js.map +1 -0
  129. package/dist/fingerprint.d.ts +1 -0
  130. package/dist/fingerprint.js +43 -0
  131. package/dist/fingerprint.js.map +1 -0
  132. package/dist/index.d.ts +2 -0
  133. package/dist/index.js +75 -0
  134. package/dist/index.js.map +1 -0
  135. package/dist/menu.d.ts +1 -0
  136. package/dist/menu.js +94 -0
  137. package/dist/menu.js.map +1 -0
  138. package/dist/project-files.d.ts +64 -0
  139. package/dist/project-files.js +338 -0
  140. package/dist/project-files.js.map +1 -0
  141. package/dist/tool-handlers.d.ts +11 -0
  142. package/dist/tool-handlers.js +215 -0
  143. package/dist/tool-handlers.js.map +1 -0
  144. package/dist/types.d.ts +7 -0
  145. package/dist/types.js +3 -0
  146. package/dist/types.js.map +1 -0
  147. package/dist/update-codebuff.d.ts +1 -0
  148. package/dist/update-codebuff.js +156 -0
  149. package/dist/update-codebuff.js.map +1 -0
  150. package/dist/web-scraper.d.ts +3 -0
  151. package/dist/web-scraper.js +57 -0
  152. package/dist/web-scraper.js.map +1 -0
  153. package/dist/worker-script-project-context.d.ts +1 -0
  154. package/dist/worker-script-project-context.js +13 -0
  155. package/dist/worker-script-project-context.js.map +1 -0
  156. package/package.json +71 -0
@@ -0,0 +1,156 @@
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 web_scraper_1 = require("./web-scraper");
10
+ const package_json_1 = __importDefault(require("../package.json"));
11
+ const config_1 = require("./config");
12
+ async function updateCodebuff() {
13
+ if (!config_1.isProduction)
14
+ return;
15
+ const latestVersion = await getCodebuffNpmVersion();
16
+ const isUpToDate = isNpmUpToDate(package_json_1.default.version, latestVersion);
17
+ if (!isUpToDate) {
18
+ const installerInfo = detectInstaller();
19
+ if (!installerInfo) {
20
+ 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)."));
21
+ return;
22
+ }
23
+ console.log((0, picocolors_1.green)(`Updating Codebuff using ${installerInfo.installer}...`));
24
+ try {
25
+ runUpdateCodebuff(installerInfo);
26
+ console.log((0, picocolors_1.green)('Codebuff updated successfully.'));
27
+ console.log((0, picocolors_1.green)('Please restart by running `codebuff` to use the new version.'));
28
+ process.exit(0);
29
+ }
30
+ catch (error) {
31
+ console.error('Failed to update Codebuff.');
32
+ }
33
+ }
34
+ }
35
+ async function getCodebuffNpmVersion() {
36
+ try {
37
+ const result = (0, child_process_1.execSync)('npm view codebuff version', {
38
+ encoding: 'utf-8',
39
+ stdio: 'pipe', // Suppress all output
40
+ });
41
+ const versionMatch = result.match(/(\d+\.\d+\.\d+)/);
42
+ if (versionMatch) {
43
+ return versionMatch[1];
44
+ }
45
+ }
46
+ catch (error) { }
47
+ // Fallback to web scraping if npm command fails
48
+ const url = 'https://www.npmjs.com/package/codebuff';
49
+ const content = await (0, web_scraper_1.scrapeWebPage)(url);
50
+ const latestVersionRegex = /"latest":"(\d+\.\d+\.\d+)"/;
51
+ const match = content.match(latestVersionRegex);
52
+ return match ? match[1] : '';
53
+ }
54
+ function isNpmUpToDate(currentVersion, latestVersion) {
55
+ const current = currentVersion.split('.').map(Number);
56
+ const latest = latestVersion.split('.').map(Number);
57
+ for (let i = 0; i < 3; i++) {
58
+ if (current[i] < latest[i])
59
+ return false;
60
+ if (current[i] > latest[i])
61
+ return true;
62
+ }
63
+ return true;
64
+ }
65
+ function detectInstaller() {
66
+ let codebuffLocation = '';
67
+ try {
68
+ if (process.platform === 'win32') {
69
+ codebuffLocation = (0, child_process_1.execSync)('where codebuff').toString().trim();
70
+ }
71
+ else {
72
+ codebuffLocation = (0, child_process_1.execSync)('which codebuff').toString().trim();
73
+ }
74
+ }
75
+ catch (error) {
76
+ // Continue with empty location - could be a local installation
77
+ }
78
+ const binPath = (codebuffLocation.split('\n')[0] ?? '').replace(/\\/g, '/');
79
+ const npmUserAgent = process.env.npm_config_user_agent ?? '';
80
+ // Check for package manager script environments
81
+ const isYarnScript = process.env.npm_lifecycle_script?.includes('yarn');
82
+ const isPnpmScript = process.env.npm_lifecycle_script?.includes('pnpm');
83
+ const isBunScript = process.env.npm_lifecycle_script?.includes('bun');
84
+ const isNpmScript = process.env.npm_execpath?.endsWith('npm-cli.js') ||
85
+ npmUserAgent.includes('npm');
86
+ // Mac: /Users/jahooma/.yarn/bin/codebuff
87
+ if (isYarnScript || binPath.includes('.yarn')) {
88
+ return {
89
+ installer: 'yarn',
90
+ scope: binPath.includes('.yarn') ? 'global' : 'local',
91
+ };
92
+ }
93
+ // Windows: ~/AppData/Local/pnpm/store
94
+ // macOS: ~/Library/pnpm/store
95
+ // Linux: ~/.local/share/pnpm/store
96
+ if (isPnpmScript || binPath.includes('pnpm')) {
97
+ return {
98
+ installer: 'pnpm',
99
+ scope: binPath.includes('pnpm') ? 'global' : 'local',
100
+ };
101
+ }
102
+ // Mac: /Users/jahooma/.bun/install/cache
103
+ if (isBunScript || binPath.includes('.bun')) {
104
+ return {
105
+ installer: 'bun',
106
+ scope: binPath.includes('.bun') ? 'global' : 'local',
107
+ };
108
+ }
109
+ // /usr/local/lib/node_modules on macOS/Linux or %AppData%\npm/node_modules on Windows
110
+ // OR: .nvm/versions/node/v18.17.0/bin/codebuff on mac
111
+ // OR /Users/stefan/Library/Application Support/Herd/config/nvm/versions/node/v22.9.0/bin/codebuff
112
+ // OR ~/.config/nvm/versions/node/v22.11.0/bin/codebuff
113
+ // OR /opt/homebrew/bin/codebuff
114
+ const isGlobalNpmPath = binPath.includes('npm') ||
115
+ binPath.startsWith('/usr/') ||
116
+ binPath.includes('nvm/') ||
117
+ binPath.includes('homebrew/bin');
118
+ if (isNpmScript || isGlobalNpmPath) {
119
+ return {
120
+ installer: 'npm',
121
+ scope: isGlobalNpmPath ? 'global' : 'local',
122
+ };
123
+ }
124
+ return undefined;
125
+ }
126
+ function runUpdateCodebuff(installerInfo) {
127
+ let command;
128
+ const isGlobal = installerInfo.scope === 'global';
129
+ switch (installerInfo.installer) {
130
+ case 'npm':
131
+ command = `npm ${isGlobal ? 'install -g' : 'install'} codebuff@latest`;
132
+ break;
133
+ case 'yarn':
134
+ command = `yarn ${isGlobal ? 'global add' : 'add'} codebuff@latest`;
135
+ break;
136
+ case 'pnpm':
137
+ command = `pnpm add ${isGlobal ? '-g' : ''} codebuff@latest`;
138
+ break;
139
+ case 'bun':
140
+ command = `bun add ${isGlobal ? '-g' : ''} codebuff@latest`;
141
+ break;
142
+ default:
143
+ throw new Error(`Unsupported installer: ${installerInfo.installer} ${installerInfo.scope}`);
144
+ }
145
+ (0, child_process_1.execSync)(command, { stdio: 'inherit' });
146
+ }
147
+ function restartCodebuff() {
148
+ const child = (0, child_process_1.spawn)('codebuff', [...process.argv.slice(2), '--post-update'], {
149
+ detached: false,
150
+ stdio: 'inherit',
151
+ });
152
+ child.on('exit', (code) => {
153
+ process.exit(code ?? 0);
154
+ });
155
+ }
156
+ //# sourceMappingURL=update-codebuff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-codebuff.js","sourceRoot":"","sources":["../src/update-codebuff.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare function scrapeWebPage(url: string): Promise<any>;
2
+ export declare function parseUrlsFromContent(content: string): string[];
3
+ export declare function getScrapedContentBlocks(urls: string[]): Promise<string[]>;
@@ -0,0 +1,57 @@
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.scrapeWebPage = scrapeWebPage;
7
+ exports.parseUrlsFromContent = parseUrlsFromContent;
8
+ exports.getScrapedContentBlocks = getScrapedContentBlocks;
9
+ const axios_1 = __importDefault(require("axios"));
10
+ // Global cache for scraped web pages
11
+ const scrapedPagesCache = {};
12
+ async function scrapeWebPage(url) {
13
+ // Check if the page is already in the cache
14
+ if (scrapedPagesCache[url] !== undefined) {
15
+ return scrapedPagesCache[url];
16
+ }
17
+ try {
18
+ // const response = await axios.get(url)
19
+ const response = await axios_1.default.get(`https://r.jina.ai/${url}`);
20
+ const content = response.data;
21
+ // const html = response.data
22
+ // const $ = cheerio.load(html)
23
+ // // Extract the main content (you may need to adjust this selector based on the target websites)
24
+ // const content = $('body').text()
25
+ // Store the scraped content in the cache
26
+ scrapedPagesCache[url] = content;
27
+ return content;
28
+ }
29
+ catch (error) {
30
+ // console.error(
31
+ // `Error scraping web page ${url}:`,
32
+ // error instanceof Error ? error.message : error
33
+ // )
34
+ scrapedPagesCache[url] = '';
35
+ return '';
36
+ }
37
+ }
38
+ function parseUrlsFromContent(content) {
39
+ const urlRegex = /https?:\/\/[^\s]+/g;
40
+ return content.match(urlRegex) || [];
41
+ }
42
+ const MAX_SCRAPED_CONTENT_LENGTH = 75_000;
43
+ async function getScrapedContentBlocks(urls) {
44
+ const blocks = [];
45
+ for (const url of urls) {
46
+ const scrapedContent = await scrapeWebPage(url);
47
+ const truncatedScrapedContent = scrapedContent.length > MAX_SCRAPED_CONTENT_LENGTH
48
+ ? scrapedContent.slice(0, MAX_SCRAPED_CONTENT_LENGTH) +
49
+ '[...TRUNCATED: WEB PAGE CONTENT TOO LONG...]'
50
+ : scrapedContent;
51
+ if (truncatedScrapedContent) {
52
+ blocks.push(`<web_scraped_content url="${url}">\n${truncatedScrapedContent}\n</web_scraped_content>`);
53
+ }
54
+ }
55
+ return blocks;
56
+ }
57
+ //# sourceMappingURL=web-scraper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web-scraper.js","sourceRoot":"","sources":["../src/web-scraper.ts"],"names":[],"mappings":";;;;;AAMA,sCA4BC;AAED,oDAGC;AAGD,0DAgBC;AA1DD,kDAAyB;AAGzB,qCAAqC;AACrC,MAAM,iBAAiB,GAA2B,EAAE,CAAA;AAE7C,KAAK,UAAU,aAAa,CAAC,GAAW;IAC7C,4CAA4C;IAC5C,IAAI,iBAAiB,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;QACzC,OAAO,iBAAiB,CAAC,GAAG,CAAC,CAAA;IAC/B,CAAC;IAED,IAAI,CAAC;QACH,wCAAwC;QACxC,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,GAAG,CAAC,qBAAqB,GAAG,EAAE,CAAC,CAAA;QAC5D,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAA;QAC7B,6BAA6B;QAC7B,+BAA+B;QAE/B,kGAAkG;QAClG,mCAAmC;QAEnC,yCAAyC;QACzC,iBAAiB,CAAC,GAAG,CAAC,GAAG,OAAO,CAAA;QAEhC,OAAO,OAAO,CAAA;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,iBAAiB;QACjB,uCAAuC;QACvC,mDAAmD;QACnD,IAAI;QACJ,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAA;QAC3B,OAAO,EAAE,CAAA;IACX,CAAC;AACH,CAAC;AAED,SAAgB,oBAAoB,CAAC,OAAe;IAClD,MAAM,QAAQ,GAAG,oBAAoB,CAAA;IACrC,OAAO,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAA;AACtC,CAAC;AAED,MAAM,0BAA0B,GAAG,MAAM,CAAA;AAClC,KAAK,UAAU,uBAAuB,CAAC,IAAc;IAC1D,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,cAAc,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,CAAA;QAC/C,MAAM,uBAAuB,GAC3B,cAAc,CAAC,MAAM,GAAG,0BAA0B;YAChD,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,0BAA0B,CAAC;gBACnD,8CAA8C;YAChD,CAAC,CAAC,cAAc,CAAA;QACpB,IAAI,uBAAuB,EAAE,CAAC;YAC5B,MAAM,CAAC,IAAI,CACT,6BAA6B,GAAG,OAAO,uBAAuB,0BAA0B,CACzF,CAAA;QACH,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const worker_threads_1 = require("worker_threads");
4
+ const project_files_1 = require("./project-files");
5
+ if (worker_threads_1.parentPort) {
6
+ const parentPort = worker_threads_1.parentPort;
7
+ parentPort.on('message', async ({ dir }) => {
8
+ (0, project_files_1.setProjectRoot)(dir);
9
+ const initFileContext = await (0, project_files_1.getProjectFileContext)(dir, {}, []);
10
+ parentPort.postMessage(initFileContext);
11
+ });
12
+ }
13
+ //# sourceMappingURL=worker-script-project-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-script-project-context.js","sourceRoot":"","sources":["../src/worker-script-project-context.ts"],"names":[],"mappings":";;AAAA,mDAA8D;AAC9D,mDAAuE;AAEvE,IAAI,2BAAe,EAAE,CAAC;IACpB,MAAM,UAAU,GAAG,2BAAe,CAAA;IAElC,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;QACzC,IAAA,8BAAc,EAAC,GAAG,CAAC,CAAA;QACnB,MAAM,eAAe,GAAG,MAAM,IAAA,qCAAqB,EAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;QAChE,UAAU,CAAC,WAAW,CAAC,eAAe,CAAC,CAAA;IACzC,CAAC,CAAC,CAAA;AACJ,CAAC"}
package/package.json ADDED
@@ -0,0 +1,71 @@
1
+ {
2
+ "name": "codecane",
3
+ "version": "1.0.123",
4
+ "description": "AI dev assistant",
5
+ "license": "MIT",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "bin": {
9
+ "codecane": "dist/index.js"
10
+ },
11
+ "scripts": {
12
+ "prebuild": "bun run with-env -- bun clean && cd ../common && bun run build && cd ../packages/code-map && bun run build",
13
+ "build": "tsc && tsc-alias",
14
+ "postbuild": "mkdir -p dist/common && cp -r ../common/dist/* dist/common && mkdir -p dist/code-map && cp -r ../packages/code-map/dist/* dist/code-map && tsc-alias",
15
+ "clean": "rm -rf dist && (rm tsconfig.tsbuildinfo || true)",
16
+ "prepublishOnly": "bun run build && bun run clean-package.js",
17
+ "postpublish": "echo \"const fs=require('fs');fs.copyFileSync('temp.package.json','package.json');fs.unlinkSync('temp.package.json');\" | bun run -",
18
+ "format": "prettier --write \"**/*.{ts,tsx,json,md}\"",
19
+ "test": "jest",
20
+ "start-js": "bun run with-env -- node dist/index.js ..",
21
+ "start": "bun run with-env -- ts-node src/index.ts .. --git stage",
22
+ "start-dir": "bun run with-env -- ts-node src/index.ts",
23
+ "with-env": "env-cmd -f ./loadEnv.js",
24
+ "start-manifold": "bun run with-env -- ts-node src/index.ts ../../manifold",
25
+ "start-litestar": "bun run with-env -- ts-node src/index.ts ../test/__mock-projects__/litestar",
26
+ "start-jpcsp": "bun run with-env -- ts-node src/index.ts ../test/__mock-projects__/jpcsp",
27
+ "start-vscode": "bun run with-env -- ts-node src/index.ts ../test/__mock-projects__/vscode",
28
+ "start-nushell": "bun run with-env -- ts-node src/index.ts ../test/__mock-projects__/nushell",
29
+ "start-prod": "bun run with-env -- ts-node src/index.ts"
30
+ },
31
+ "files": [
32
+ "dist",
33
+ "README.md"
34
+ ],
35
+ "engines": {
36
+ "node": ">=14"
37
+ },
38
+ "dependencies": {
39
+ "@types/diff": "5.2.1",
40
+ "@vscode/ripgrep": "1.15.9",
41
+ "axios": "1.7.4",
42
+ "cheerio": "1.0.0",
43
+ "diff": "5.2.0",
44
+ "env-cmd": "^10.1.0",
45
+ "ignore": "5.3.2",
46
+ "lodash": "*",
47
+ "nanoid": "5.0.7",
48
+ "node-pty": "1.0.0",
49
+ "picocolors": "1.1.0",
50
+ "systeminformation": "5.23.4",
51
+ "tree-sitter": "0.21.1",
52
+ "tree-sitter-c": "0.23.0",
53
+ "tree-sitter-c-sharp": "0.23.0",
54
+ "tree-sitter-cpp": "0.23.0",
55
+ "tree-sitter-go": "0.23.1",
56
+ "tree-sitter-java": "0.23.2",
57
+ "tree-sitter-javascript": "0.23.0",
58
+ "tree-sitter-php": "0.23.2",
59
+ "tree-sitter-python": "0.23.2",
60
+ "tree-sitter-ruby": "0.23.0",
61
+ "tree-sitter-rust": "0.23.0",
62
+ "tree-sitter-typescript": "0.23.0",
63
+ "ts-pattern": "5.3.1",
64
+ "ws": "8.18.0",
65
+ "zod": "3.23.8"
66
+ },
67
+ "trustedDependencies": [
68
+ "@vscode/ripgrep",
69
+ "node-pty"
70
+ ]
71
+ }