@git.zone/tsdoc 1.11.1 → 1.11.2
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.
- package/dist_ts/aidocs_classes/commit.js +27 -34
- package/dist_ts/aidocs_classes/description.js +68 -29
- package/dist_ts/aidocs_classes/projectcontext.d.ts +5 -5
- package/dist_ts/aidocs_classes/projectcontext.js +8 -16
- package/dist_ts/aidocs_classes/readme.js +156 -88
- package/dist_ts/classes.aidoc.d.ts +10 -6
- package/dist_ts/classes.aidoc.js +17 -11
- package/dist_ts/classes.diffprocessor.js +284 -0
- package/dist_ts/cli.js +21 -92
- package/dist_ts/plugins.d.ts +1 -2
- package/dist_ts/plugins.js +2 -3
- package/package.json +2 -3
- package/ts/aidocs_classes/commit.ts +26 -41
- package/ts/aidocs_classes/description.ts +72 -34
- package/ts/aidocs_classes/projectcontext.ts +7 -14
- package/ts/aidocs_classes/readme.ts +168 -93
- package/ts/classes.aidoc.ts +18 -11
- package/ts/cli.ts +20 -100
- package/ts/plugins.ts +1 -2
- package/dist_ts/context/config-manager.d.ts +0 -83
- package/dist_ts/context/config-manager.js +0 -318
- package/dist_ts/context/context-analyzer.d.ts +0 -73
- package/dist_ts/context/context-analyzer.js +0 -311
- package/dist_ts/context/context-cache.d.ts +0 -73
- package/dist_ts/context/context-cache.js +0 -239
- package/dist_ts/context/context-trimmer.d.ts +0 -60
- package/dist_ts/context/context-trimmer.js +0 -258
- package/dist_ts/context/diff-processor.js +0 -284
- package/dist_ts/context/enhanced-context.d.ts +0 -73
- package/dist_ts/context/enhanced-context.js +0 -275
- package/dist_ts/context/index.d.ts +0 -11
- package/dist_ts/context/index.js +0 -12
- package/dist_ts/context/iterative-context-builder.d.ts +0 -62
- package/dist_ts/context/iterative-context-builder.js +0 -395
- package/dist_ts/context/lazy-file-loader.d.ts +0 -60
- package/dist_ts/context/lazy-file-loader.js +0 -182
- package/dist_ts/context/task-context-factory.d.ts +0 -48
- package/dist_ts/context/task-context-factory.js +0 -86
- package/dist_ts/context/types.d.ts +0 -301
- package/dist_ts/context/types.js +0 -2
- package/dist_ts/tsdoc.classes.typedoc.d.ts +0 -10
- package/dist_ts/tsdoc.classes.typedoc.js +0 -48
- package/dist_ts/tsdoc.cli.d.ts +0 -1
- package/dist_ts/tsdoc.cli.js +0 -32
- package/dist_ts/tsdoc.logging.d.ts +0 -2
- package/dist_ts/tsdoc.logging.js +0 -14
- package/dist_ts/tsdoc.paths.d.ts +0 -8
- package/dist_ts/tsdoc.paths.js +0 -12
- package/dist_ts/tsdoc.plugins.d.ts +0 -11
- package/dist_ts/tsdoc.plugins.js +0 -15
- package/ts/context/config-manager.ts +0 -369
- package/ts/context/context-analyzer.ts +0 -391
- package/ts/context/context-cache.ts +0 -286
- package/ts/context/context-trimmer.ts +0 -310
- package/ts/context/enhanced-context.ts +0 -332
- package/ts/context/index.ts +0 -70
- package/ts/context/iterative-context-builder.ts +0 -512
- package/ts/context/lazy-file-loader.ts +0 -207
- package/ts/context/task-context-factory.ts +0 -120
- package/ts/context/types.ts +0 -324
- /package/dist_ts/{context/diff-processor.d.ts → classes.diffprocessor.d.ts} +0 -0
- /package/ts/{context/diff-processor.ts → classes.diffprocessor.ts} +0 -0
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Intelligent git diff processor that handles large diffs by sampling and prioritization
|
|
3
|
+
* instead of blind truncation.
|
|
4
|
+
*/
|
|
5
|
+
export class DiffProcessor {
|
|
6
|
+
constructor(options = {}) {
|
|
7
|
+
this.options = {
|
|
8
|
+
maxDiffTokens: options.maxDiffTokens ?? 100000,
|
|
9
|
+
smallFileLines: options.smallFileLines ?? 50,
|
|
10
|
+
mediumFileLines: options.mediumFileLines ?? 200,
|
|
11
|
+
sampleHeadLines: options.sampleHeadLines ?? 20,
|
|
12
|
+
sampleTailLines: options.sampleTailLines ?? 20,
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Process an array of git diffs into a structured, token-efficient format
|
|
17
|
+
*/
|
|
18
|
+
processDiffs(diffStringArray) {
|
|
19
|
+
// Parse all diffs into file info objects
|
|
20
|
+
const fileInfos = diffStringArray
|
|
21
|
+
.map(diffString => this.parseDiffFile(diffString))
|
|
22
|
+
.filter(info => info !== null);
|
|
23
|
+
// Prioritize files (source files first, build artifacts last)
|
|
24
|
+
const prioritized = this.prioritizeFiles(fileInfos);
|
|
25
|
+
const result = {
|
|
26
|
+
summary: '',
|
|
27
|
+
fullDiffs: [],
|
|
28
|
+
summarizedDiffs: [],
|
|
29
|
+
metadataOnly: [],
|
|
30
|
+
totalFiles: prioritized.length,
|
|
31
|
+
totalTokens: 0,
|
|
32
|
+
};
|
|
33
|
+
let tokensUsed = 0;
|
|
34
|
+
const tokenBudget = this.options.maxDiffTokens;
|
|
35
|
+
// Categorize and include files based on size and token budget
|
|
36
|
+
for (const fileInfo of prioritized) {
|
|
37
|
+
const remainingBudget = tokenBudget - tokensUsed;
|
|
38
|
+
if (remainingBudget <= 0) {
|
|
39
|
+
// Budget exhausted - rest are metadata only
|
|
40
|
+
result.metadataOnly.push(this.formatMetadataOnly(fileInfo));
|
|
41
|
+
continue;
|
|
42
|
+
}
|
|
43
|
+
if (fileInfo.totalLines <= this.options.smallFileLines) {
|
|
44
|
+
// Small file - include fully if budget allows
|
|
45
|
+
if (fileInfo.estimatedTokens <= remainingBudget) {
|
|
46
|
+
const statusPrefix = this.getFileStatusPrefix(fileInfo);
|
|
47
|
+
result.fullDiffs.push(`${statusPrefix}${fileInfo.diffContent}`);
|
|
48
|
+
tokensUsed += fileInfo.estimatedTokens;
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
result.metadataOnly.push(this.formatMetadataOnly(fileInfo));
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
else if (fileInfo.totalLines <= this.options.mediumFileLines) {
|
|
55
|
+
// Medium file - try to include summary with head/tail
|
|
56
|
+
const summary = this.extractDiffSample(fileInfo, this.options.sampleHeadLines, this.options.sampleTailLines);
|
|
57
|
+
const summaryTokens = Math.ceil(summary.length / 4); // Rough estimate
|
|
58
|
+
if (summaryTokens <= remainingBudget) {
|
|
59
|
+
result.summarizedDiffs.push(summary);
|
|
60
|
+
tokensUsed += summaryTokens;
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
result.metadataOnly.push(this.formatMetadataOnly(fileInfo));
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
// Large file - metadata only
|
|
68
|
+
result.metadataOnly.push(this.formatMetadataOnly(fileInfo));
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
result.totalTokens = tokensUsed;
|
|
72
|
+
result.summary = this.generateSummary(result);
|
|
73
|
+
return result;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Format the processed diff for inclusion in context
|
|
77
|
+
*/
|
|
78
|
+
formatForContext(processed) {
|
|
79
|
+
const sections = [];
|
|
80
|
+
// Summary section
|
|
81
|
+
sections.push('====== GIT DIFF SUMMARY ======');
|
|
82
|
+
sections.push(processed.summary);
|
|
83
|
+
sections.push('');
|
|
84
|
+
// Full diffs section
|
|
85
|
+
if (processed.fullDiffs.length > 0) {
|
|
86
|
+
sections.push(`====== FULL DIFFS (${processed.fullDiffs.length} files) ======`);
|
|
87
|
+
sections.push(processed.fullDiffs.join('\n\n'));
|
|
88
|
+
sections.push('');
|
|
89
|
+
}
|
|
90
|
+
// Summarized diffs section
|
|
91
|
+
if (processed.summarizedDiffs.length > 0) {
|
|
92
|
+
sections.push(`====== SUMMARIZED DIFFS (${processed.summarizedDiffs.length} files) ======`);
|
|
93
|
+
sections.push(processed.summarizedDiffs.join('\n\n'));
|
|
94
|
+
sections.push('');
|
|
95
|
+
}
|
|
96
|
+
// Metadata only section
|
|
97
|
+
if (processed.metadataOnly.length > 0) {
|
|
98
|
+
sections.push(`====== METADATA ONLY (${processed.metadataOnly.length} files) ======`);
|
|
99
|
+
sections.push(processed.metadataOnly.join('\n'));
|
|
100
|
+
sections.push('');
|
|
101
|
+
}
|
|
102
|
+
sections.push('====== END OF GIT DIFF ======');
|
|
103
|
+
return sections.join('\n');
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Parse a single git diff string into file information
|
|
107
|
+
*/
|
|
108
|
+
parseDiffFile(diffString) {
|
|
109
|
+
if (!diffString || diffString.trim().length === 0) {
|
|
110
|
+
return null;
|
|
111
|
+
}
|
|
112
|
+
const lines = diffString.split('\n');
|
|
113
|
+
let filepath = '';
|
|
114
|
+
let status = 'modified';
|
|
115
|
+
let linesAdded = 0;
|
|
116
|
+
let linesRemoved = 0;
|
|
117
|
+
// Parse diff header to extract filepath and status
|
|
118
|
+
for (const line of lines) {
|
|
119
|
+
if (line.startsWith('--- a/')) {
|
|
120
|
+
filepath = line.substring(6);
|
|
121
|
+
}
|
|
122
|
+
else if (line.startsWith('+++ b/')) {
|
|
123
|
+
const newPath = line.substring(6);
|
|
124
|
+
if (newPath === '/dev/null') {
|
|
125
|
+
status = 'deleted';
|
|
126
|
+
}
|
|
127
|
+
else if (filepath === '/dev/null') {
|
|
128
|
+
status = 'added';
|
|
129
|
+
filepath = newPath;
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
filepath = newPath;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
else if (line.startsWith('+') && !line.startsWith('+++')) {
|
|
136
|
+
linesAdded++;
|
|
137
|
+
}
|
|
138
|
+
else if (line.startsWith('-') && !line.startsWith('---')) {
|
|
139
|
+
linesRemoved++;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
const totalLines = linesAdded + linesRemoved;
|
|
143
|
+
const estimatedTokens = Math.ceil(diffString.length / 4);
|
|
144
|
+
return {
|
|
145
|
+
filepath,
|
|
146
|
+
status,
|
|
147
|
+
linesAdded,
|
|
148
|
+
linesRemoved,
|
|
149
|
+
totalLines,
|
|
150
|
+
estimatedTokens,
|
|
151
|
+
diffContent: diffString,
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Prioritize files by importance (source files before build artifacts)
|
|
156
|
+
*/
|
|
157
|
+
prioritizeFiles(files) {
|
|
158
|
+
return files.sort((a, b) => {
|
|
159
|
+
const scoreA = this.getFileImportanceScore(a.filepath);
|
|
160
|
+
const scoreB = this.getFileImportanceScore(b.filepath);
|
|
161
|
+
return scoreB - scoreA; // Higher score first
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Calculate importance score for a file path
|
|
166
|
+
*/
|
|
167
|
+
getFileImportanceScore(filepath) {
|
|
168
|
+
// Source files - highest priority
|
|
169
|
+
if (filepath.match(/^(src|lib|app|components|pages|api)\//)) {
|
|
170
|
+
return 100;
|
|
171
|
+
}
|
|
172
|
+
// Test files - high priority
|
|
173
|
+
if (filepath.match(/\.(test|spec)\.(ts|js|tsx|jsx)$/) || filepath.startsWith('test/')) {
|
|
174
|
+
return 80;
|
|
175
|
+
}
|
|
176
|
+
// Configuration files - medium-high priority
|
|
177
|
+
if (filepath.match(/\.(json|yaml|yml|toml|config\.(ts|js))$/)) {
|
|
178
|
+
return 60;
|
|
179
|
+
}
|
|
180
|
+
// Documentation - medium priority
|
|
181
|
+
if (filepath.match(/\.(md|txt|rst)$/)) {
|
|
182
|
+
return 40;
|
|
183
|
+
}
|
|
184
|
+
// Build artifacts - low priority
|
|
185
|
+
if (filepath.match(/^(dist|build|out|\.next|public\/dist)\//)) {
|
|
186
|
+
return 10;
|
|
187
|
+
}
|
|
188
|
+
// Start with default priority
|
|
189
|
+
let score = 50;
|
|
190
|
+
// Boost interface/type files - they're usually small but critical
|
|
191
|
+
if (filepath.includes('interfaces/') || filepath.includes('.types.')) {
|
|
192
|
+
score += 20;
|
|
193
|
+
}
|
|
194
|
+
// Boost entry points
|
|
195
|
+
if (filepath.endsWith('index.ts') || filepath.endsWith('mod.ts')) {
|
|
196
|
+
score += 15;
|
|
197
|
+
}
|
|
198
|
+
return score;
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Extract head and tail lines from a diff, omitting the middle
|
|
202
|
+
*/
|
|
203
|
+
extractDiffSample(fileInfo, headLines, tailLines) {
|
|
204
|
+
const lines = fileInfo.diffContent.split('\n');
|
|
205
|
+
const totalLines = lines.length;
|
|
206
|
+
if (totalLines <= headLines + tailLines) {
|
|
207
|
+
// File is small enough to include fully
|
|
208
|
+
return fileInfo.diffContent;
|
|
209
|
+
}
|
|
210
|
+
// Extract file metadata from diff header
|
|
211
|
+
const headerLines = [];
|
|
212
|
+
let bodyStartIndex = 0;
|
|
213
|
+
for (let i = 0; i < lines.length; i++) {
|
|
214
|
+
if (lines[i].startsWith('@@')) {
|
|
215
|
+
headerLines.push(...lines.slice(0, i + 1));
|
|
216
|
+
bodyStartIndex = i + 1;
|
|
217
|
+
break;
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
const bodyLines = lines.slice(bodyStartIndex);
|
|
221
|
+
const head = bodyLines.slice(0, headLines);
|
|
222
|
+
const tail = bodyLines.slice(-tailLines);
|
|
223
|
+
const omittedLines = bodyLines.length - headLines - tailLines;
|
|
224
|
+
const statusEmoji = fileInfo.status === 'added' ? '➕' :
|
|
225
|
+
fileInfo.status === 'deleted' ? '➖' : '📝';
|
|
226
|
+
const parts = [];
|
|
227
|
+
parts.push(`${statusEmoji} FILE: ${fileInfo.filepath}`);
|
|
228
|
+
parts.push(`CHANGES: +${fileInfo.linesAdded} lines, -${fileInfo.linesRemoved} lines (${fileInfo.totalLines} total)`);
|
|
229
|
+
parts.push('');
|
|
230
|
+
parts.push(...headerLines);
|
|
231
|
+
parts.push(...head);
|
|
232
|
+
parts.push('');
|
|
233
|
+
parts.push(`[... ${omittedLines} lines omitted - use Read tool to see full file ...]`);
|
|
234
|
+
parts.push('');
|
|
235
|
+
parts.push(...tail);
|
|
236
|
+
return parts.join('\n');
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Get file status prefix with emoji
|
|
240
|
+
*/
|
|
241
|
+
getFileStatusPrefix(fileInfo) {
|
|
242
|
+
const statusEmoji = fileInfo.status === 'added' ? '➕' :
|
|
243
|
+
fileInfo.status === 'deleted' ? '➖' : '📝';
|
|
244
|
+
return `${statusEmoji} `;
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Extract filepath from diff content
|
|
248
|
+
*/
|
|
249
|
+
extractFilepathFromDiff(diffContent) {
|
|
250
|
+
const lines = diffContent.split('\n');
|
|
251
|
+
for (const line of lines) {
|
|
252
|
+
if (line.startsWith('+++ b/')) {
|
|
253
|
+
return line.substring(6);
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
return 'unknown';
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* Format file info as metadata only
|
|
260
|
+
*/
|
|
261
|
+
formatMetadataOnly(fileInfo) {
|
|
262
|
+
const statusEmoji = fileInfo.status === 'added' ? '➕' :
|
|
263
|
+
fileInfo.status === 'deleted' ? '➖' : '📝';
|
|
264
|
+
return `${statusEmoji} ${fileInfo.filepath} (+${fileInfo.linesAdded}, -${fileInfo.linesRemoved})`;
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* Generate human-readable summary of processed diff
|
|
268
|
+
*/
|
|
269
|
+
generateSummary(result) {
|
|
270
|
+
const parts = [];
|
|
271
|
+
parts.push(`Files changed: ${result.totalFiles} total`);
|
|
272
|
+
parts.push(`- ${result.fullDiffs.length} included in full`);
|
|
273
|
+
parts.push(`- ${result.summarizedDiffs.length} summarized (head/tail shown)`);
|
|
274
|
+
parts.push(`- ${result.metadataOnly.length} metadata only`);
|
|
275
|
+
parts.push(`Estimated tokens: ~${result.totalTokens.toLocaleString()}`);
|
|
276
|
+
if (result.metadataOnly.length > 0) {
|
|
277
|
+
parts.push('');
|
|
278
|
+
parts.push('NOTE: Some files excluded to stay within token budget.');
|
|
279
|
+
parts.push('Use Read tool with specific file paths to see full content.');
|
|
280
|
+
}
|
|
281
|
+
return parts.join('\n');
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5kaWZmcHJvY2Vzc29yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvY2xhc3Nlcy5kaWZmcHJvY2Vzc29yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7R0FHRztBQTZCSCxNQUFNLE9BQU8sYUFBYTtJQUd4QixZQUFZLFVBQWlDLEVBQUU7UUFDN0MsSUFBSSxDQUFDLE9BQU8sR0FBRztZQUNiLGFBQWEsRUFBRSxPQUFPLENBQUMsYUFBYSxJQUFJLE1BQU07WUFDOUMsY0FBYyxFQUFFLE9BQU8sQ0FBQyxjQUFjLElBQUksRUFBRTtZQUM1QyxlQUFlLEVBQUUsT0FBTyxDQUFDLGVBQWUsSUFBSSxHQUFHO1lBQy9DLGVBQWUsRUFBRSxPQUFPLENBQUMsZUFBZSxJQUFJLEVBQUU7WUFDOUMsZUFBZSxFQUFFLE9BQU8sQ0FBQyxlQUFlLElBQUksRUFBRTtTQUMvQyxDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0ksWUFBWSxDQUFDLGVBQXlCO1FBQzNDLHlDQUF5QztRQUN6QyxNQUFNLFNBQVMsR0FBb0IsZUFBZTthQUMvQyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ2pELE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxJQUFJLENBQW9CLENBQUM7UUFFcEQsOERBQThEO1FBQzlELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFcEQsTUFBTSxNQUFNLEdBQW1CO1lBQzdCLE9BQU8sRUFBRSxFQUFFO1lBQ1gsU0FBUyxFQUFFLEVBQUU7WUFDYixlQUFlLEVBQUUsRUFBRTtZQUNuQixZQUFZLEVBQUUsRUFBRTtZQUNoQixVQUFVLEVBQUUsV0FBVyxDQUFDLE1BQU07WUFDOUIsV0FBVyxFQUFFLENBQUM7U0FDZixDQUFDO1FBRUYsSUFBSSxVQUFVLEdBQUcsQ0FB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
|
package/dist_ts/cli.js
CHANGED
|
@@ -3,7 +3,6 @@ import * as paths from './paths.js';
|
|
|
3
3
|
import { logger } from './logging.js';
|
|
4
4
|
import { TypeDoc } from './classes.typedoc.js';
|
|
5
5
|
import { AiDoc } from './classes.aidoc.js';
|
|
6
|
-
import * as context from './context/index.js';
|
|
7
6
|
export const run = async () => {
|
|
8
7
|
const tsdocCli = new plugins.smartcli.Smartcli();
|
|
9
8
|
tsdocCli.standardCommand().subscribe(async (argvArg) => {
|
|
@@ -26,15 +25,6 @@ export const run = async () => {
|
|
|
26
25
|
tsdocCli.addCommand('aidoc').subscribe(async (argvArg) => {
|
|
27
26
|
const aidocInstance = new AiDoc();
|
|
28
27
|
await aidocInstance.start();
|
|
29
|
-
// Get context token count if requested
|
|
30
|
-
if (argvArg.tokens || argvArg.showTokens) {
|
|
31
|
-
logger.log('info', `Calculating context token count...`);
|
|
32
|
-
const tokenCount = await aidocInstance.getProjectContextTokenCount(paths.cwd);
|
|
33
|
-
logger.log('ok', `Total context token count: ${tokenCount}`);
|
|
34
|
-
if (argvArg.tokensOnly) {
|
|
35
|
-
return; // Exit early if we only want token count
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
28
|
logger.log('info', `Generating new readme...`);
|
|
39
29
|
logger.log('info', `This may take some time...`);
|
|
40
30
|
await aidocInstance.buildReadme(paths.cwd);
|
|
@@ -42,89 +32,28 @@ export const run = async () => {
|
|
|
42
32
|
logger.log('info', `This may take some time...`);
|
|
43
33
|
await aidocInstance.buildDescription(paths.cwd);
|
|
44
34
|
});
|
|
45
|
-
tsdocCli.addCommand('
|
|
35
|
+
tsdocCli.addCommand('readme').subscribe(async (argvArg) => {
|
|
46
36
|
const aidocInstance = new AiDoc();
|
|
47
37
|
await aidocInstance.start();
|
|
48
|
-
logger.log('info', `
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
let contextResult;
|
|
68
|
-
if (argvArg.all) {
|
|
69
|
-
// Show stats for all task types
|
|
70
|
-
const stats = await taskFactory.getTokenStats();
|
|
71
|
-
logger.log('ok', 'Token statistics by task:');
|
|
72
|
-
for (const [task, data] of Object.entries(stats)) {
|
|
73
|
-
logger.log('info', `\n${task.toUpperCase()}:`);
|
|
74
|
-
logger.log('info', ` Tokens: ${data.tokenCount}`);
|
|
75
|
-
logger.log('info', ` Token savings: ${data.savings}`);
|
|
76
|
-
logger.log('info', ` Files: ${data.includedFiles} included, ${data.trimmedFiles} trimmed, ${data.excludedFiles} excluded`);
|
|
77
|
-
// Calculate percentage of model context
|
|
78
|
-
const o4MiniPercentage = (data.tokenCount / 200000 * 100).toFixed(2);
|
|
79
|
-
logger.log('info', ` Context usage: ${o4MiniPercentage}% of o4-mini (200K tokens)`);
|
|
80
|
-
}
|
|
81
|
-
return;
|
|
82
|
-
}
|
|
83
|
-
// Get context for specific task
|
|
84
|
-
contextResult = await taskFactory.createContextForTask(taskType);
|
|
85
|
-
// Display results
|
|
86
|
-
logger.log('ok', `Total context token count: ${contextResult.tokenCount}`);
|
|
87
|
-
logger.log('info', `Files included: ${contextResult.includedFiles.length}`);
|
|
88
|
-
logger.log('info', `Files trimmed: ${contextResult.trimmedFiles.length}`);
|
|
89
|
-
logger.log('info', `Files excluded: ${contextResult.excludedFiles.length}`);
|
|
90
|
-
logger.log('info', `Token savings: ${contextResult.tokenSavings}`);
|
|
91
|
-
if (argvArg.detailed) {
|
|
92
|
-
// Show more detailed info about the context and token usage
|
|
93
|
-
const o4MiniPercentage = (contextResult.tokenCount / 200000 * 100).toFixed(2);
|
|
94
|
-
logger.log('info', `Token usage: ${o4MiniPercentage}% of o4-mini 200K token context window`);
|
|
95
|
-
if (argvArg.model) {
|
|
96
|
-
// Show percentages for different models
|
|
97
|
-
if (argvArg.model === 'gpt4') {
|
|
98
|
-
const gpt4Percentage = (contextResult.tokenCount / 8192 * 100).toFixed(2);
|
|
99
|
-
logger.log('info', `Token usage (GPT-4): ${gpt4Percentage}% of 8192 token context window`);
|
|
100
|
-
}
|
|
101
|
-
else if (argvArg.model === 'gpt35') {
|
|
102
|
-
const gpt35Percentage = (contextResult.tokenCount / 4096 * 100).toFixed(2);
|
|
103
|
-
logger.log('info', `Token usage (GPT-3.5): ${gpt35Percentage}% of 4096 token context window`);
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
// Estimate cost (approximate values)
|
|
107
|
-
const o4MiniInputCost = 0.00005; // per 1K tokens for o4-mini
|
|
108
|
-
const estimatedCost = (contextResult.tokenCount / 1000 * o4MiniInputCost).toFixed(6);
|
|
109
|
-
logger.log('info', `Estimated input cost: $${estimatedCost} (o4-mini)`);
|
|
110
|
-
if (argvArg.listFiles) {
|
|
111
|
-
// List files included in context
|
|
112
|
-
logger.log('info', '\nIncluded files:');
|
|
113
|
-
contextResult.includedFiles.forEach(file => {
|
|
114
|
-
logger.log('info', ` ${file.relativePath} (${file.tokenCount} tokens)`);
|
|
115
|
-
});
|
|
116
|
-
logger.log('info', '\nTrimmed files:');
|
|
117
|
-
contextResult.trimmedFiles.forEach(file => {
|
|
118
|
-
logger.log('info', ` ${file.relativePath} (${file.tokenCount} tokens)`);
|
|
119
|
-
});
|
|
120
|
-
if (contextResult.excludedFiles.length > 0) {
|
|
121
|
-
logger.log('info', '\nExcluded files:');
|
|
122
|
-
contextResult.excludedFiles.forEach(file => {
|
|
123
|
-
logger.log('info', ` ${file.relativePath} (${file.tokenCount} tokens)`);
|
|
124
|
-
});
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
}
|
|
38
|
+
logger.log('info', `Generating new readme...`);
|
|
39
|
+
logger.log('info', `This may take some time...`);
|
|
40
|
+
await aidocInstance.buildReadme(paths.cwd);
|
|
41
|
+
});
|
|
42
|
+
tsdocCli.addCommand('description').subscribe(async (argvArg) => {
|
|
43
|
+
const aidocInstance = new AiDoc();
|
|
44
|
+
await aidocInstance.start();
|
|
45
|
+
logger.log('info', `Generating new description and keywords...`);
|
|
46
|
+
logger.log('info', `This may take some time...`);
|
|
47
|
+
await aidocInstance.buildDescription(paths.cwd);
|
|
48
|
+
});
|
|
49
|
+
tsdocCli.addCommand('commit').subscribe(async (argvArg) => {
|
|
50
|
+
const aidocInstance = new AiDoc();
|
|
51
|
+
await aidocInstance.start();
|
|
52
|
+
logger.log('info', `Generating commit message...`);
|
|
53
|
+
logger.log('info', `This may take some time...`);
|
|
54
|
+
const commitObject = await aidocInstance.buildNextCommitObject(paths.cwd);
|
|
55
|
+
logger.log('ok', `Commit message generated:`);
|
|
56
|
+
console.log(JSON.stringify(commitObject, null, 2));
|
|
128
57
|
});
|
|
129
58
|
tsdocCli.addCommand('test').subscribe((argvArg) => {
|
|
130
59
|
tsdocCli.triggerCommand('typedoc', argvArg);
|
|
@@ -134,4 +63,4 @@ export const run = async () => {
|
|
|
134
63
|
});
|
|
135
64
|
tsdocCli.startParse();
|
|
136
65
|
};
|
|
137
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvY2xpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxLQUFLLE1BQU0sWUFBWSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFdEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUUzQyxNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUcsS0FBSyxJQUFJLEVBQUU7SUFDNUIsTUFBTSxRQUFRLEdBQUcsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBRWpELFFBQVEsQ0FBQyxlQUFlLEVBQUUsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO1FBQ3JELE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLDZCQUE2QixDQUFDLENBQUM7UUFDbEQsUUFBUSxJQUFJLEVBQUUsQ0FBQztZQUNiLEtBQUssTUFBTSxPQUFPLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7Z0JBQ3hDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLDJDQUEyQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztnQkFDekUsUUFBUSxDQUFDLGNBQWMsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQzVDLE1BQU07WUFDUjtnQkFDRSxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxtQ0FBbUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDeEUsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FB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
|
package/dist_ts/plugins.d.ts
CHANGED
|
@@ -21,5 +21,4 @@ export declare const smartfileFactory: smartfile.SmartFileFactory;
|
|
|
21
21
|
import * as tspublish from '@git.zone/tspublish';
|
|
22
22
|
export { tspublish };
|
|
23
23
|
import * as typedoc from 'typedoc';
|
|
24
|
-
|
|
25
|
-
export { typedoc, gptTokenizer };
|
|
24
|
+
export { typedoc };
|
package/dist_ts/plugins.js
CHANGED
|
@@ -28,6 +28,5 @@ import * as tspublish from '@git.zone/tspublish';
|
|
|
28
28
|
export { tspublish };
|
|
29
29
|
// third party scope
|
|
30
30
|
import * as typedoc from 'typedoc';
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3BsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYztBQUNkLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBRTdCLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUVoQixrQkFBa0I7QUFDbEIsT0FBTyxLQUFLLFFBQVEsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRCxPQUFPLEtBQUssSUFBSSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pDLE9BQU8sS0FBSyxVQUFVLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxLQUFLLE9BQU8sTUFBTSxxQkFBcUIsQ0FBQztBQUMvQyxPQUFPLEtBQUssUUFBUSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pELE9BQU8sS0FBSyxVQUFVLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxLQUFLLFNBQVMsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEtBQUssT0FBTyxNQUFNLHFCQUFxQixDQUFDO0FBQy9DLE9BQU8sS0FBSyxRQUFRLE1BQU0sc0JBQXNCLENBQUM7QUFDakQsT0FBTyxLQUFLLGFBQWEsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEtBQUssUUFBUSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pELE9BQU8sS0FBSyx3QkFBd0IsTUFBTSx3Q0FBd0MsQ0FBQztBQUNuRixPQUFPLEtBQUssU0FBUyxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sS0FBSyxVQUFVLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxLQUFLLFNBQVMsTUFBTSx1QkFBdUIsQ0FBQztBQUVuRCxPQUFPLEVBQ0wsUUFBUSxFQUNSLElBQUksRUFDSixVQUFVLEVBQ1YsT0FBTyxFQUNQLFFBQVEsRUFDUixVQUFVLEVBQ1YsU0FBUyxFQUNULE9BQU8sRUFDUCxRQUFRLEVBQ1IsYUFBYSxFQUNiLFFBQVEsRUFDUix3QkFBd0IsRUFDeEIsU0FBUyxFQUNULFVBQVUsRUFDVixTQUFTLEdBQ1YsQ0FBQztBQUVGLDZEQUE2RDtBQUM3RCxNQUFNLG1CQUFtQixHQUFHLElBQUksT0FBTyxDQUFDLG1CQUFtQixFQUFFLENBQUM7QUFDOUQsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0FBRW5FLGlFQUFpRTtBQUNqRSxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLENBQUM7QUFFcEUsa0JBQWtCO0FBQ2xCLE9BQU8sS0FBSyxTQUFTLE1BQU0scUJBQXFCLENBQUM7QUFFakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxDQUFDO0FBRXJCLG9CQUFvQjtBQUNwQixPQUFPLEtBQUssT0FBTyxNQUFNLFNBQVMsQ0FBQztBQUNuQyxPQUFPLEtBQUssWUFBWSxNQUFNLGVBQWUsQ0FBQztBQUU5QyxPQUFPLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxDQUFDIn0=
|
|
31
|
+
export { typedoc };
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3BsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYztBQUNkLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBRTdCLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUVoQixrQkFBa0I7QUFDbEIsT0FBTyxLQUFLLFFBQVEsTUFBTSxzQkFBc0IsQ0FBQztBQUNqRCxPQUFPLEtBQUssSUFBSSxNQUFNLGtCQUFrQixDQUFDO0FBQ3pDLE9BQU8sS0FBSyxVQUFVLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxLQUFLLE9BQU8sTUFBTSxxQkFBcUIsQ0FBQztBQUMvQyxPQUFPLEtBQUssUUFBUSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pELE9BQU8sS0FBSyxVQUFVLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxLQUFLLFNBQVMsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEtBQUssT0FBTyxNQUFNLHFCQUFxQixDQUFDO0FBQy9DLE9BQU8sS0FBSyxRQUFRLE1BQU0sc0JBQXNCLENBQUM7QUFDakQsT0FBTyxLQUFLLGFBQWEsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEtBQUssUUFBUSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pELE9BQU8sS0FBSyx3QkFBd0IsTUFBTSx3Q0FBd0MsQ0FBQztBQUNuRixPQUFPLEtBQUssU0FBUyxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sS0FBSyxVQUFVLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxLQUFLLFNBQVMsTUFBTSx1QkFBdUIsQ0FBQztBQUVuRCxPQUFPLEVBQ0wsUUFBUSxFQUNSLElBQUksRUFDSixVQUFVLEVBQ1YsT0FBTyxFQUNQLFFBQVEsRUFDUixVQUFVLEVBQ1YsU0FBUyxFQUNULE9BQU8sRUFDUCxRQUFRLEVBQ1IsYUFBYSxFQUNiLFFBQVEsRUFDUix3QkFBd0IsRUFDeEIsU0FBUyxFQUNULFVBQVUsRUFDVixTQUFTLEdBQ1YsQ0FBQztBQUVGLDZEQUE2RDtBQUM3RCxNQUFNLG1CQUFtQixHQUFHLElBQUksT0FBTyxDQUFDLG1CQUFtQixFQUFFLENBQUM7QUFDOUQsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0FBRW5FLGlFQUFpRTtBQUNqRSxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLENBQUM7QUFFcEUsa0JBQWtCO0FBQ2xCLE9BQU8sS0FBSyxTQUFTLE1BQU0scUJBQXFCLENBQUM7QUFFakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxDQUFDO0FBRXJCLG9CQUFvQjtBQUNwQixPQUFPLEtBQUssT0FBTyxNQUFNLFNBQVMsQ0FBQztBQUVuQyxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUMifQ==
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@git.zone/tsdoc",
|
|
3
|
-
"version": "1.11.
|
|
3
|
+
"version": "1.11.2",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "A comprehensive TypeScript documentation tool that leverages AI to generate and enhance project documentation, including dynamic README creation, API docs via TypeDoc, and smart commit message generation.",
|
|
6
6
|
"type": "module",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"@push.rocks/early": "^4.0.4",
|
|
24
24
|
"@push.rocks/npmextra": "^5.3.3",
|
|
25
25
|
"@push.rocks/qenv": "^6.1.3",
|
|
26
|
-
"@push.rocks/smartagent": "
|
|
26
|
+
"@push.rocks/smartagent": "file:../../push.rocks/smartagent",
|
|
27
27
|
"@push.rocks/smartai": "^0.8.0",
|
|
28
28
|
"@push.rocks/smartcli": "^4.0.19",
|
|
29
29
|
"@push.rocks/smartdelay": "^3.0.5",
|
|
@@ -36,7 +36,6 @@
|
|
|
36
36
|
"@push.rocks/smartpath": "^6.0.0",
|
|
37
37
|
"@push.rocks/smartshell": "^3.3.0",
|
|
38
38
|
"@push.rocks/smarttime": "^4.1.1",
|
|
39
|
-
"gpt-tokenizer": "^3.4.0",
|
|
40
39
|
"typedoc": "^0.28.15",
|
|
41
40
|
"typescript": "^5.9.3"
|
|
42
41
|
},
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import * as plugins from '../plugins.js';
|
|
2
2
|
import { AiDoc } from '../classes.aidoc.js';
|
|
3
3
|
import { ProjectContext } from './projectcontext.js';
|
|
4
|
-
import { DiffProcessor } from '../
|
|
4
|
+
import { DiffProcessor } from '../classes.diffprocessor.js';
|
|
5
|
+
import { logger } from '../logging.js';
|
|
5
6
|
|
|
6
7
|
export interface INextCommitObject {
|
|
7
8
|
recommendedNextVersionLevel: 'fix' | 'feat' | 'BREAKING CHANGE'; // the recommended next version level of the project
|
|
@@ -114,33 +115,13 @@ export class Commit {
|
|
|
114
115
|
processedDiffString = 'No changes.';
|
|
115
116
|
}
|
|
116
117
|
|
|
117
|
-
// Use
|
|
118
|
-
|
|
119
|
-
this.projectDir,
|
|
120
|
-
this.aiDocsRef.openaiInstance
|
|
121
|
-
);
|
|
122
|
-
await taskContextFactory.initialize();
|
|
123
|
-
|
|
124
|
-
// Generate context specifically for commit task
|
|
125
|
-
const contextResult = await taskContextFactory.createContextForCommit(processedDiffString);
|
|
126
|
-
|
|
127
|
-
// Get the optimized context string
|
|
128
|
-
let contextString = contextResult.context;
|
|
129
|
-
|
|
130
|
-
// Log token usage statistics
|
|
131
|
-
console.log(`Token usage - Context: ${contextResult.tokenCount}, Files: ${contextResult.includedFiles.length + contextResult.trimmedFiles.length}, Savings: ${contextResult.tokenSavings}`);
|
|
132
|
-
|
|
133
|
-
// Check for token overflow against model limits
|
|
134
|
-
const MODEL_TOKEN_LIMIT = 200000; // o4-mini
|
|
135
|
-
if (contextResult.tokenCount > MODEL_TOKEN_LIMIT * 0.9) {
|
|
136
|
-
console.log(`⚠️ Warning: Context size (${contextResult.tokenCount} tokens) is close to or exceeds model limit (${MODEL_TOKEN_LIMIT} tokens).`);
|
|
137
|
-
console.log(`The model may not be able to process all information effectively.`);
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
// Use DualAgentOrchestrator for commit message generation with Guardian validation
|
|
118
|
+
// Use DualAgentOrchestrator for commit message generation
|
|
119
|
+
// Note: No filesystem tool needed - the diff already contains all change information
|
|
141
120
|
const commitOrchestrator = new plugins.smartagent.DualAgentOrchestrator({
|
|
142
|
-
|
|
121
|
+
smartAiInstance: this.aiDocsRef.smartAiInstance,
|
|
143
122
|
defaultProvider: 'openai',
|
|
123
|
+
logPrefix: '[Commit]',
|
|
124
|
+
onProgress: (event) => logger.log(event.logLevel, event.logMessage),
|
|
144
125
|
guardianPolicyPrompt: `
|
|
145
126
|
You validate commit messages for semantic versioning compliance.
|
|
146
127
|
|
|
@@ -154,7 +135,7 @@ APPROVE if:
|
|
|
154
135
|
REJECT with specific feedback if:
|
|
155
136
|
- Version level doesn't match the scope of changes (e.g., "feat" for a typo fix should be "fix")
|
|
156
137
|
- Message is vague, unprofessional, or contains sensitive information
|
|
157
|
-
- JSON is malformed or missing required fields
|
|
138
|
+
- JSON is malformed or missing required fields
|
|
158
139
|
`,
|
|
159
140
|
});
|
|
160
141
|
|
|
@@ -162,9 +143,12 @@ REJECT with specific feedback if:
|
|
|
162
143
|
|
|
163
144
|
const commitTaskPrompt = `
|
|
164
145
|
You create a commit message for a git commit.
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
146
|
+
Project directory: ${this.projectDir}
|
|
147
|
+
|
|
148
|
+
Analyze the git diff below to understand what changed and generate a commit message.
|
|
149
|
+
|
|
150
|
+
You should not include any licensing information or personal information.
|
|
151
|
+
Never mention CLAUDE code, or codex.
|
|
168
152
|
|
|
169
153
|
Important: Answer only in valid JSON.
|
|
170
154
|
|
|
@@ -173,21 +157,20 @@ Your answer should be parseable with JSON.parse() without modifying anything.
|
|
|
173
157
|
Here is the structure of the JSON you should return:
|
|
174
158
|
|
|
175
159
|
interface {
|
|
176
|
-
recommendedNextVersionLevel: 'fix' | 'feat' | 'BREAKING CHANGE'; // the recommended next version level
|
|
177
|
-
recommendedNextVersionScope: string; //
|
|
178
|
-
recommendedNextVersionMessage: string; // the commit message
|
|
160
|
+
recommendedNextVersionLevel: 'fix' | 'feat' | 'BREAKING CHANGE'; // the recommended next version level
|
|
161
|
+
recommendedNextVersionScope: string; // scope name like "core", "cli", or specific class names
|
|
162
|
+
recommendedNextVersionMessage: string; // the commit message (don't include fix/feat prefix)
|
|
179
163
|
recommendedNextVersionDetails: string[]; // detailed bullet points for the changelog
|
|
180
|
-
recommendedNextVersion: string; // the recommended next version
|
|
164
|
+
recommendedNextVersion: string; // the recommended next version x.x.x
|
|
181
165
|
}
|
|
182
166
|
|
|
183
|
-
For
|
|
167
|
+
For recommendedNextVersionDetails, only add entries that have obvious value to the reader.
|
|
184
168
|
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
169
|
+
Here is the git diff showing what changed:
|
|
170
|
+
|
|
171
|
+
${processedDiffString}
|
|
188
172
|
|
|
189
|
-
|
|
190
|
-
${contextString}
|
|
173
|
+
Generate the commit message based on these changes.
|
|
191
174
|
`;
|
|
192
175
|
|
|
193
176
|
const commitResult = await commitOrchestrator.run(commitTaskPrompt);
|
|
@@ -214,8 +197,10 @@ ${contextString}
|
|
|
214
197
|
|
|
215
198
|
// Use DualAgentOrchestrator for changelog generation with Guardian validation
|
|
216
199
|
const changelogOrchestrator = new plugins.smartagent.DualAgentOrchestrator({
|
|
217
|
-
|
|
200
|
+
smartAiInstance: this.aiDocsRef.smartAiInstance,
|
|
218
201
|
defaultProvider: 'openai',
|
|
202
|
+
logPrefix: '[Changelog]',
|
|
203
|
+
onProgress: (event) => logger.log(event.logLevel, event.logMessage),
|
|
219
204
|
guardianPolicyPrompt: `
|
|
220
205
|
You validate changelog generation.
|
|
221
206
|
|