@ai-coders/context 0.1.0

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 (79) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +658 -0
  3. package/dist/generators/agentGenerator.d.ts +23 -0
  4. package/dist/generators/agentGenerator.d.ts.map +1 -0
  5. package/dist/generators/agentGenerator.js +357 -0
  6. package/dist/generators/agentGenerator.js.map +1 -0
  7. package/dist/generators/documentationGenerator.d.ts +40 -0
  8. package/dist/generators/documentationGenerator.d.ts.map +1 -0
  9. package/dist/generators/documentationGenerator.js +786 -0
  10. package/dist/generators/documentationGenerator.js.map +1 -0
  11. package/dist/generators/incrementalDocumentationGenerator.d.ts +33 -0
  12. package/dist/generators/incrementalDocumentationGenerator.d.ts.map +1 -0
  13. package/dist/generators/incrementalDocumentationGenerator.js +400 -0
  14. package/dist/generators/incrementalDocumentationGenerator.js.map +1 -0
  15. package/dist/index.d.ts +6 -0
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/index.js +559 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/services/anthropicClient.d.ts +12 -0
  20. package/dist/services/anthropicClient.d.ts.map +1 -0
  21. package/dist/services/anthropicClient.js +98 -0
  22. package/dist/services/anthropicClient.js.map +1 -0
  23. package/dist/services/baseLLMClient.d.ts +12 -0
  24. package/dist/services/baseLLMClient.d.ts.map +1 -0
  25. package/dist/services/baseLLMClient.js +41 -0
  26. package/dist/services/baseLLMClient.js.map +1 -0
  27. package/dist/services/changeAnalyzer.d.ts +44 -0
  28. package/dist/services/changeAnalyzer.d.ts.map +1 -0
  29. package/dist/services/changeAnalyzer.js +344 -0
  30. package/dist/services/changeAnalyzer.js.map +1 -0
  31. package/dist/services/geminiClient.d.ts +12 -0
  32. package/dist/services/geminiClient.d.ts.map +1 -0
  33. package/dist/services/geminiClient.js +96 -0
  34. package/dist/services/geminiClient.js.map +1 -0
  35. package/dist/services/grokClient.d.ts +12 -0
  36. package/dist/services/grokClient.d.ts.map +1 -0
  37. package/dist/services/grokClient.js +101 -0
  38. package/dist/services/grokClient.js.map +1 -0
  39. package/dist/services/llmClientFactory.d.ts +14 -0
  40. package/dist/services/llmClientFactory.d.ts.map +1 -0
  41. package/dist/services/llmClientFactory.js +109 -0
  42. package/dist/services/llmClientFactory.js.map +1 -0
  43. package/dist/services/openRouterClient.d.ts +12 -0
  44. package/dist/services/openRouterClient.d.ts.map +1 -0
  45. package/dist/services/openRouterClient.js +96 -0
  46. package/dist/services/openRouterClient.js.map +1 -0
  47. package/dist/services/openaiClient.d.ts +12 -0
  48. package/dist/services/openaiClient.d.ts.map +1 -0
  49. package/dist/services/openaiClient.js +98 -0
  50. package/dist/services/openaiClient.js.map +1 -0
  51. package/dist/types.d.ts +60 -0
  52. package/dist/types.d.ts.map +1 -0
  53. package/dist/types.js +3 -0
  54. package/dist/types.js.map +1 -0
  55. package/dist/utils/cliUI.d.ts +25 -0
  56. package/dist/utils/cliUI.d.ts.map +1 -0
  57. package/dist/utils/cliUI.js +236 -0
  58. package/dist/utils/cliUI.js.map +1 -0
  59. package/dist/utils/fileMapper.d.ts +11 -0
  60. package/dist/utils/fileMapper.d.ts.map +1 -0
  61. package/dist/utils/fileMapper.js +125 -0
  62. package/dist/utils/fileMapper.js.map +1 -0
  63. package/dist/utils/gitService.d.ts +50 -0
  64. package/dist/utils/gitService.d.ts.map +1 -0
  65. package/dist/utils/gitService.js +470 -0
  66. package/dist/utils/gitService.js.map +1 -0
  67. package/dist/utils/interactiveMode.d.ts +16 -0
  68. package/dist/utils/interactiveMode.d.ts.map +1 -0
  69. package/dist/utils/interactiveMode.js +432 -0
  70. package/dist/utils/interactiveMode.js.map +1 -0
  71. package/dist/utils/pricing.d.ts +14 -0
  72. package/dist/utils/pricing.d.ts.map +1 -0
  73. package/dist/utils/pricing.js +115 -0
  74. package/dist/utils/pricing.js.map +1 -0
  75. package/dist/utils/tokenEstimator.d.ts +27 -0
  76. package/dist/utils/tokenEstimator.d.ts.map +1 -0
  77. package/dist/utils/tokenEstimator.js +198 -0
  78. package/dist/utils/tokenEstimator.js.map +1 -0
  79. package/package.json +73 -0
@@ -0,0 +1,470 @@
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 () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.GitService = void 0;
40
+ const child_process_1 = require("child_process");
41
+ const path = __importStar(require("path"));
42
+ const fs = __importStar(require("fs-extra"));
43
+ const chalk_1 = __importDefault(require("chalk"));
44
+ class GitService {
45
+ constructor(repoPath) {
46
+ this.repoPath = path.resolve(repoPath);
47
+ this.stateFile = path.join(this.repoPath, 'context-log.json');
48
+ }
49
+ isGitRepository() {
50
+ try {
51
+ (0, child_process_1.execSync)('git rev-parse --git-dir', {
52
+ cwd: this.repoPath,
53
+ stdio: 'pipe'
54
+ });
55
+ return true;
56
+ }
57
+ catch {
58
+ return false;
59
+ }
60
+ }
61
+ getCurrentCommit() {
62
+ try {
63
+ return (0, child_process_1.execSync)('git rev-parse HEAD', {
64
+ cwd: this.repoPath,
65
+ encoding: 'utf8'
66
+ }).trim();
67
+ }
68
+ catch (error) {
69
+ throw new Error(`Failed to get current commit: ${error}`);
70
+ }
71
+ }
72
+ getChangedFiles(since) {
73
+ try {
74
+ let sinceRef = since || this.getLastProcessedCommit();
75
+ // If no reference point, check if we have commits
76
+ if (!sinceRef) {
77
+ try {
78
+ // Try to get the previous commit
79
+ (0, child_process_1.execSync)('git rev-parse HEAD~1', { cwd: this.repoPath, stdio: 'pipe' });
80
+ sinceRef = 'HEAD~1';
81
+ }
82
+ catch {
83
+ // No previous commit, get all tracked files as "added"
84
+ return this.getAllTrackedFilesAsAdded();
85
+ }
86
+ }
87
+ // Validate the reference commit exists
88
+ if (!this.isValidCommit(sinceRef)) {
89
+ console.warn(`Warning: Reference commit ${sinceRef} no longer exists, falling back to HEAD~1`);
90
+ try {
91
+ (0, child_process_1.execSync)('git rev-parse HEAD~1', { cwd: this.repoPath, stdio: 'pipe' });
92
+ sinceRef = 'HEAD~1';
93
+ }
94
+ catch {
95
+ return this.getAllTrackedFilesAsAdded();
96
+ }
97
+ }
98
+ // Get diff with name status
99
+ const diffOutput = (0, child_process_1.execSync)(`git diff --name-status ${sinceRef}..HEAD`, {
100
+ cwd: this.repoPath,
101
+ encoding: 'utf8'
102
+ }).trim();
103
+ const changes = {
104
+ added: [],
105
+ modified: [],
106
+ deleted: [],
107
+ renamed: []
108
+ };
109
+ if (!diffOutput) {
110
+ return changes;
111
+ }
112
+ const lines = diffOutput.split('\n');
113
+ for (const line of lines) {
114
+ const parts = line.split('\t');
115
+ const status = parts[0];
116
+ const filePath = parts[1];
117
+ switch (status.charAt(0)) {
118
+ case 'A':
119
+ changes.added.push(filePath);
120
+ break;
121
+ case 'M':
122
+ changes.modified.push(filePath);
123
+ break;
124
+ case 'D':
125
+ changes.deleted.push(filePath);
126
+ break;
127
+ case 'R':
128
+ const fromFile = parts[1];
129
+ const toFile = parts[2];
130
+ changes.renamed.push({ from: fromFile, to: toFile });
131
+ break;
132
+ }
133
+ }
134
+ return changes;
135
+ }
136
+ catch (error) {
137
+ throw new Error(`Failed to get changed files: ${error}`);
138
+ }
139
+ }
140
+ getStagedFiles() {
141
+ try {
142
+ const output = (0, child_process_1.execSync)('git diff --cached --name-only', {
143
+ cwd: this.repoPath,
144
+ encoding: 'utf8'
145
+ }).trim();
146
+ return output ? output.split('\n') : [];
147
+ }
148
+ catch (error) {
149
+ throw new Error(`Failed to get staged files: ${error}`);
150
+ }
151
+ }
152
+ getStagedChanges() {
153
+ try {
154
+ const output = (0, child_process_1.execSync)('git diff --cached --name-status', {
155
+ cwd: this.repoPath,
156
+ encoding: 'utf8'
157
+ }).trim();
158
+ const changes = {
159
+ added: [],
160
+ modified: [],
161
+ deleted: [],
162
+ renamed: []
163
+ };
164
+ if (!output) {
165
+ return changes;
166
+ }
167
+ const lines = output.split('\n');
168
+ for (const line of lines) {
169
+ const parts = line.split('\t');
170
+ const status = parts[0];
171
+ const filePath = parts[1];
172
+ switch (status.charAt(0)) {
173
+ case 'A':
174
+ changes.added.push(filePath);
175
+ break;
176
+ case 'M':
177
+ changes.modified.push(filePath);
178
+ break;
179
+ case 'D':
180
+ changes.deleted.push(filePath);
181
+ break;
182
+ case 'R':
183
+ const fromFile = parts[1];
184
+ const toFile = parts[2];
185
+ changes.renamed.push({ from: fromFile, to: toFile });
186
+ break;
187
+ }
188
+ }
189
+ return changes;
190
+ }
191
+ catch (error) {
192
+ throw new Error(`Failed to get staged changes: ${error}`);
193
+ }
194
+ }
195
+ getUncommittedChanges() {
196
+ try {
197
+ // Get both staged and unstaged changes
198
+ const diffOutput = (0, child_process_1.execSync)('git diff --name-status HEAD', {
199
+ cwd: this.repoPath,
200
+ encoding: 'utf8'
201
+ }).trim();
202
+ const changes = {
203
+ added: [],
204
+ modified: [],
205
+ deleted: [],
206
+ renamed: []
207
+ };
208
+ if (!diffOutput) {
209
+ return changes;
210
+ }
211
+ const lines = diffOutput.split('\n');
212
+ for (const line of lines) {
213
+ const parts = line.split('\t');
214
+ const status = parts[0];
215
+ const filePath = parts[1];
216
+ switch (status.charAt(0)) {
217
+ case 'A':
218
+ changes.added.push(filePath);
219
+ break;
220
+ case 'M':
221
+ changes.modified.push(filePath);
222
+ break;
223
+ case 'D':
224
+ changes.deleted.push(filePath);
225
+ break;
226
+ case 'R':
227
+ const fromFile = parts[1];
228
+ const toFile = parts[2];
229
+ changes.renamed.push({ from: fromFile, to: toFile });
230
+ break;
231
+ }
232
+ }
233
+ return changes;
234
+ }
235
+ catch (error) {
236
+ throw new Error(`Failed to get uncommitted changes: ${error}`);
237
+ }
238
+ }
239
+ getBranchName() {
240
+ try {
241
+ return (0, child_process_1.execSync)('git branch --show-current', {
242
+ cwd: this.repoPath,
243
+ encoding: 'utf8'
244
+ }).trim();
245
+ }
246
+ catch (error) {
247
+ return 'unknown';
248
+ }
249
+ }
250
+ getLastProcessedCommit() {
251
+ try {
252
+ if (!fs.existsSync(this.stateFile)) {
253
+ return null;
254
+ }
255
+ const state = fs.readJsonSync(this.stateFile);
256
+ return state.lastCommit || null;
257
+ }
258
+ catch {
259
+ return null;
260
+ }
261
+ }
262
+ saveState(commit) {
263
+ try {
264
+ // Validate that the commit exists
265
+ if (!this.isValidCommit(commit)) {
266
+ throw new Error(`Invalid commit hash: ${commit}`);
267
+ }
268
+ const state = {
269
+ lastCommit: commit
270
+ };
271
+ fs.writeJsonSync(this.stateFile, state, { spaces: 2 });
272
+ }
273
+ catch (error) {
274
+ console.warn(`Warning: Could not save state: ${error}`);
275
+ }
276
+ }
277
+ getState() {
278
+ try {
279
+ if (!fs.existsSync(this.stateFile)) {
280
+ return null;
281
+ }
282
+ return fs.readJsonSync(this.stateFile);
283
+ }
284
+ catch {
285
+ return null;
286
+ }
287
+ }
288
+ clearState() {
289
+ try {
290
+ if (fs.existsSync(this.stateFile)) {
291
+ fs.unlinkSync(this.stateFile);
292
+ }
293
+ }
294
+ catch (error) {
295
+ console.warn(`Warning: Could not clear state: ${error}`);
296
+ }
297
+ }
298
+ filterRelevantFiles(files, fileMapper) {
299
+ return files.filter(file => {
300
+ const fullPath = path.join(this.repoPath, file);
301
+ return fs.existsSync(fullPath) && fileMapper.isTextFile(fullPath);
302
+ });
303
+ }
304
+ isFileTracked(filePath) {
305
+ try {
306
+ (0, child_process_1.execSync)(`git ls-files --error-unmatch "${filePath}"`, {
307
+ cwd: this.repoPath,
308
+ stdio: 'pipe'
309
+ });
310
+ return true;
311
+ }
312
+ catch {
313
+ return false;
314
+ }
315
+ }
316
+ getTrackedFiles() {
317
+ try {
318
+ const output = (0, child_process_1.execSync)('git ls-files', {
319
+ cwd: this.repoPath,
320
+ encoding: 'utf8'
321
+ }).trim();
322
+ return output ? output.split('\n') : [];
323
+ }
324
+ catch (error) {
325
+ throw new Error(`Failed to get tracked files: ${error}`);
326
+ }
327
+ }
328
+ filterTrackedFiles(files) {
329
+ const trackedFiles = new Set(this.getTrackedFiles());
330
+ return files.filter(file => trackedFiles.has(file));
331
+ }
332
+ getCommitMessage(commit) {
333
+ try {
334
+ return (0, child_process_1.execSync)(`git log --format=%B -n 1 ${commit}`, {
335
+ cwd: this.repoPath,
336
+ encoding: 'utf8'
337
+ }).trim();
338
+ }
339
+ catch {
340
+ return 'Unknown commit';
341
+ }
342
+ }
343
+ getFileHistory(filePath, limit = 10) {
344
+ try {
345
+ const output = (0, child_process_1.execSync)(`git log --format="%H|%ci|%s" -n ${limit} -- "${filePath}"`, {
346
+ cwd: this.repoPath,
347
+ encoding: 'utf8'
348
+ }).trim();
349
+ if (!output)
350
+ return [];
351
+ return output.split('\n').map(line => {
352
+ const [commit, date, message] = line.split('|');
353
+ return { commit, date, message };
354
+ });
355
+ }
356
+ catch {
357
+ return [];
358
+ }
359
+ }
360
+ getAllTrackedFilesAsAdded() {
361
+ try {
362
+ const output = (0, child_process_1.execSync)('git ls-files', {
363
+ cwd: this.repoPath,
364
+ encoding: 'utf8'
365
+ }).trim();
366
+ const changes = {
367
+ added: output ? output.split('\n') : [],
368
+ modified: [],
369
+ deleted: [],
370
+ renamed: []
371
+ };
372
+ return changes;
373
+ }
374
+ catch (error) {
375
+ throw new Error(`Failed to get tracked files: ${error}`);
376
+ }
377
+ }
378
+ isValidCommit(commit) {
379
+ try {
380
+ (0, child_process_1.execSync)(`git rev-parse --verify ${commit}`, {
381
+ cwd: this.repoPath,
382
+ stdio: 'pipe'
383
+ });
384
+ return true;
385
+ }
386
+ catch {
387
+ return false;
388
+ }
389
+ }
390
+ getCommitsBetween(fromCommit, toCommit = 'HEAD') {
391
+ try {
392
+ const output = (0, child_process_1.execSync)(`git rev-list --reverse ${fromCommit}..${toCommit}`, {
393
+ cwd: this.repoPath,
394
+ encoding: 'utf8'
395
+ }).trim();
396
+ return output ? output.split('\n') : [];
397
+ }
398
+ catch (error) {
399
+ throw new Error(`Failed to get commits between ${fromCommit} and ${toCommit}: ${error}`);
400
+ }
401
+ }
402
+ getCommitInfo(commit) {
403
+ try {
404
+ const output = (0, child_process_1.execSync)(`git log --format="%H|%h|%s|%ci" -n 1 ${commit}`, {
405
+ cwd: this.repoPath,
406
+ encoding: 'utf8'
407
+ }).trim();
408
+ const [hash, shortHash, message, date] = output.split('|');
409
+ return { hash, shortHash, message, date };
410
+ }
411
+ catch {
412
+ return null;
413
+ }
414
+ }
415
+ displayCommitTrackingInfo(verbose = false) {
416
+ const lastProcessed = this.getLastProcessedCommit();
417
+ const current = this.getCurrentCommit();
418
+ if (verbose) {
419
+ console.log(chalk_1.default.bold('\nšŸ” Commit Tracking Information:'));
420
+ console.log(chalk_1.default.gray('─'.repeat(50)));
421
+ if (lastProcessed) {
422
+ const lastInfo = this.getCommitInfo(lastProcessed);
423
+ if (lastInfo) {
424
+ console.log(`${chalk_1.default.green('Last documented:')} ${lastInfo.shortHash} - ${lastInfo.message}`);
425
+ console.log(`${chalk_1.default.gray(' ')} ${lastInfo.date}`);
426
+ }
427
+ else {
428
+ console.log(`${chalk_1.default.yellow('Last documented:')} ${lastProcessed.substring(0, 8)} (commit no longer exists)`);
429
+ }
430
+ }
431
+ else {
432
+ console.log(`${chalk_1.default.yellow('Last documented:')} None (first run)`);
433
+ }
434
+ const currentInfo = this.getCommitInfo(current);
435
+ if (currentInfo) {
436
+ console.log(`${chalk_1.default.blue('Current commit: ')} ${currentInfo.shortHash} - ${currentInfo.message}`);
437
+ console.log(`${chalk_1.default.gray(' ')} ${currentInfo.date}`);
438
+ }
439
+ if (lastProcessed && lastProcessed !== current) {
440
+ const commitsBetween = this.getCommitsBetween(lastProcessed, current);
441
+ if (commitsBetween.length > 0) {
442
+ console.log(`${chalk_1.default.cyan('Commits to process:')} ${commitsBetween.length}`);
443
+ }
444
+ }
445
+ console.log(chalk_1.default.gray('─'.repeat(50)));
446
+ }
447
+ }
448
+ hasContextBeenInitialized(outputDir) {
449
+ // Check if state file exists
450
+ const hasStateFile = fs.existsSync(this.stateFile);
451
+ // Check if context folder exists and has content
452
+ const contextDir = path.join(outputDir);
453
+ const docsDir = path.join(contextDir, 'docs');
454
+ const hasContextFolder = fs.existsSync(contextDir) && fs.existsSync(docsDir);
455
+ // Check if docs folder has any content
456
+ let hasDocumentation = false;
457
+ if (hasContextFolder) {
458
+ try {
459
+ const files = fs.readdirSync(docsDir);
460
+ hasDocumentation = files.length > 0;
461
+ }
462
+ catch {
463
+ hasDocumentation = false;
464
+ }
465
+ }
466
+ return hasStateFile || (hasContextFolder && hasDocumentation);
467
+ }
468
+ }
469
+ exports.GitService = GitService;
470
+ //# sourceMappingURL=gitService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gitService.js","sourceRoot":"","sources":["../../src/utils/gitService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ export declare class InteractiveMode {
2
+ private ui;
3
+ constructor();
4
+ start(): Promise<void>;
5
+ private promptMainCommand;
6
+ private promptCommonParameters;
7
+ private promptInitParameters;
8
+ private promptLLMConfiguration;
9
+ private promptPatterns;
10
+ private getAvailableProviders;
11
+ private getDefaultModelForProvider;
12
+ private getModelsForProvider;
13
+ private getProviderUrl;
14
+ private executeCommand;
15
+ }
16
+ //# sourceMappingURL=interactiveMode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interactiveMode.d.ts","sourceRoot":"","sources":["../../src/utils/interactiveMode.ts"],"names":[],"mappings":"AAmBA,qBAAa,eAAe;IAC1B,OAAO,CAAC,EAAE,CAAe;;IAMnB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAiBd,iBAAiB;YA+DjB,sBAAsB;YA0BtB,oBAAoB;YAwCpB,sBAAsB;YA0FtB,cAAc;IAgC5B,OAAO,CAAC,qBAAqB;IAgB7B,OAAO,CAAC,0BAA0B;IAYlC,OAAO,CAAC,oBAAoB;IA+B5B,OAAO,CAAC,cAAc;YAYR,cAAc;CAkG7B"}