@git.zone/tsdoc 1.11.1 → 1.11.3

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 (62) hide show
  1. package/dist_ts/aidocs_classes/commit.js +65 -42
  2. package/dist_ts/aidocs_classes/description.js +68 -29
  3. package/dist_ts/aidocs_classes/projectcontext.d.ts +5 -5
  4. package/dist_ts/aidocs_classes/projectcontext.js +8 -16
  5. package/dist_ts/aidocs_classes/readme.js +156 -88
  6. package/dist_ts/classes.aidoc.d.ts +10 -6
  7. package/dist_ts/classes.aidoc.js +17 -11
  8. package/dist_ts/classes.diffprocessor.js +284 -0
  9. package/dist_ts/cli.js +21 -92
  10. package/dist_ts/plugins.d.ts +1 -2
  11. package/dist_ts/plugins.js +2 -3
  12. package/package.json +2 -3
  13. package/ts/aidocs_classes/commit.ts +67 -51
  14. package/ts/aidocs_classes/description.ts +72 -34
  15. package/ts/aidocs_classes/projectcontext.ts +7 -14
  16. package/ts/aidocs_classes/readme.ts +168 -93
  17. package/ts/classes.aidoc.ts +18 -11
  18. package/ts/cli.ts +20 -100
  19. package/ts/plugins.ts +1 -2
  20. package/dist_ts/context/config-manager.d.ts +0 -83
  21. package/dist_ts/context/config-manager.js +0 -318
  22. package/dist_ts/context/context-analyzer.d.ts +0 -73
  23. package/dist_ts/context/context-analyzer.js +0 -311
  24. package/dist_ts/context/context-cache.d.ts +0 -73
  25. package/dist_ts/context/context-cache.js +0 -239
  26. package/dist_ts/context/context-trimmer.d.ts +0 -60
  27. package/dist_ts/context/context-trimmer.js +0 -258
  28. package/dist_ts/context/diff-processor.js +0 -284
  29. package/dist_ts/context/enhanced-context.d.ts +0 -73
  30. package/dist_ts/context/enhanced-context.js +0 -275
  31. package/dist_ts/context/index.d.ts +0 -11
  32. package/dist_ts/context/index.js +0 -12
  33. package/dist_ts/context/iterative-context-builder.d.ts +0 -62
  34. package/dist_ts/context/iterative-context-builder.js +0 -395
  35. package/dist_ts/context/lazy-file-loader.d.ts +0 -60
  36. package/dist_ts/context/lazy-file-loader.js +0 -182
  37. package/dist_ts/context/task-context-factory.d.ts +0 -48
  38. package/dist_ts/context/task-context-factory.js +0 -86
  39. package/dist_ts/context/types.d.ts +0 -301
  40. package/dist_ts/context/types.js +0 -2
  41. package/dist_ts/tsdoc.classes.typedoc.d.ts +0 -10
  42. package/dist_ts/tsdoc.classes.typedoc.js +0 -48
  43. package/dist_ts/tsdoc.cli.d.ts +0 -1
  44. package/dist_ts/tsdoc.cli.js +0 -32
  45. package/dist_ts/tsdoc.logging.d.ts +0 -2
  46. package/dist_ts/tsdoc.logging.js +0 -14
  47. package/dist_ts/tsdoc.paths.d.ts +0 -8
  48. package/dist_ts/tsdoc.paths.js +0 -12
  49. package/dist_ts/tsdoc.plugins.d.ts +0 -11
  50. package/dist_ts/tsdoc.plugins.js +0 -15
  51. package/ts/context/config-manager.ts +0 -369
  52. package/ts/context/context-analyzer.ts +0 -391
  53. package/ts/context/context-cache.ts +0 -286
  54. package/ts/context/context-trimmer.ts +0 -310
  55. package/ts/context/enhanced-context.ts +0 -332
  56. package/ts/context/index.ts +0 -70
  57. package/ts/context/iterative-context-builder.ts +0 -512
  58. package/ts/context/lazy-file-loader.ts +0 -207
  59. package/ts/context/task-context-factory.ts +0 -120
  60. package/ts/context/types.ts +0 -324
  61. /package/dist_ts/{context/diff-processor.d.ts → classes.diffprocessor.d.ts} +0 -0
  62. /package/ts/{context/diff-processor.ts → classes.diffprocessor.ts} +0 -0
@@ -1,73 +0,0 @@
1
- import type { IFileMetadata, IAnalysisResult, TaskType, IPrioritizationWeights, ITierConfig } from './types.js';
2
- /**
3
- * ContextAnalyzer provides intelligent file selection and prioritization
4
- * based on dependency analysis, task relevance, and configurable weights
5
- */
6
- export declare class ContextAnalyzer {
7
- private projectRoot;
8
- private weights;
9
- private tiers;
10
- /**
11
- * Creates a new ContextAnalyzer
12
- * @param projectRoot - Root directory of the project
13
- * @param weights - Prioritization weights
14
- * @param tiers - Tier configuration
15
- */
16
- constructor(projectRoot: string, weights?: Partial<IPrioritizationWeights>, tiers?: Partial<ITierConfig>);
17
- /**
18
- * Analyzes files for a specific task type
19
- * @param metadata - Array of file metadata to analyze
20
- * @param taskType - Type of task being performed
21
- * @param changedFiles - Optional list of recently changed files (for commits)
22
- * @returns Analysis result with scored files
23
- */
24
- analyze(metadata: IFileMetadata[], taskType: TaskType, changedFiles?: string[]): Promise<IAnalysisResult>;
25
- /**
26
- * Builds a dependency graph from file metadata
27
- * @param metadata - Array of file metadata
28
- * @returns Dependency graph as a map
29
- */
30
- private buildDependencyGraph;
31
- /**
32
- * Extracts import statements from file contents
33
- * @param contents - File contents
34
- * @param filePath - Path of the file being analyzed
35
- * @returns Array of absolute paths to imported files
36
- */
37
- private extractImports;
38
- /**
39
- * Calculates centrality scores for all nodes in the dependency graph
40
- * Uses a simplified PageRank-like algorithm
41
- * @param graph - Dependency graph
42
- */
43
- private calculateCentrality;
44
- /**
45
- * Analyzes a single file
46
- * @param meta - File metadata
47
- * @param taskType - Task being performed
48
- * @param graph - Dependency graph
49
- * @param changedFiles - Recently changed files
50
- * @returns File analysis
51
- */
52
- private analyzeFile;
53
- /**
54
- * Calculates task-specific relevance score
55
- */
56
- private calculateRelevance;
57
- /**
58
- * Calculates efficiency score (information density)
59
- */
60
- private calculateEfficiency;
61
- /**
62
- * Calculates recency score for changed files
63
- */
64
- private calculateRecency;
65
- /**
66
- * Assigns a tier based on importance score
67
- */
68
- private assignTier;
69
- /**
70
- * Generates a human-readable reason for the score
71
- */
72
- private generateReason;
73
- }
@@ -1,311 +0,0 @@
1
- import * as plugins from '../plugins.js';
2
- /**
3
- * ContextAnalyzer provides intelligent file selection and prioritization
4
- * based on dependency analysis, task relevance, and configurable weights
5
- */
6
- export class ContextAnalyzer {
7
- /**
8
- * Creates a new ContextAnalyzer
9
- * @param projectRoot - Root directory of the project
10
- * @param weights - Prioritization weights
11
- * @param tiers - Tier configuration
12
- */
13
- constructor(projectRoot, weights = {}, tiers = {}) {
14
- this.projectRoot = projectRoot;
15
- // Default weights
16
- this.weights = {
17
- dependencyWeight: weights.dependencyWeight ?? 0.3,
18
- relevanceWeight: weights.relevanceWeight ?? 0.4,
19
- efficiencyWeight: weights.efficiencyWeight ?? 0.2,
20
- recencyWeight: weights.recencyWeight ?? 0.1,
21
- };
22
- // Default tiers
23
- this.tiers = {
24
- essential: tiers.essential ?? { minScore: 0.8, trimLevel: 'none' },
25
- important: tiers.important ?? { minScore: 0.5, trimLevel: 'light' },
26
- optional: tiers.optional ?? { minScore: 0.2, trimLevel: 'aggressive' },
27
- };
28
- }
29
- /**
30
- * Analyzes files for a specific task type
31
- * @param metadata - Array of file metadata to analyze
32
- * @param taskType - Type of task being performed
33
- * @param changedFiles - Optional list of recently changed files (for commits)
34
- * @returns Analysis result with scored files
35
- */
36
- async analyze(metadata, taskType, changedFiles = []) {
37
- const startTime = Date.now();
38
- // Build dependency graph
39
- const dependencyGraph = await this.buildDependencyGraph(metadata);
40
- // Calculate centrality scores
41
- this.calculateCentrality(dependencyGraph);
42
- // Analyze each file
43
- const files = [];
44
- for (const meta of metadata) {
45
- const analysis = await this.analyzeFile(meta, taskType, dependencyGraph, changedFiles);
46
- files.push(analysis);
47
- }
48
- // Sort by importance score (highest first)
49
- files.sort((a, b) => b.importanceScore - a.importanceScore);
50
- const analysisDuration = Date.now() - startTime;
51
- return {
52
- taskType,
53
- files,
54
- dependencyGraph,
55
- totalFiles: metadata.length,
56
- analysisDuration,
57
- };
58
- }
59
- /**
60
- * Builds a dependency graph from file metadata
61
- * @param metadata - Array of file metadata
62
- * @returns Dependency graph as a map
63
- */
64
- async buildDependencyGraph(metadata) {
65
- const graph = new Map();
66
- // Initialize graph entries
67
- for (const meta of metadata) {
68
- graph.set(meta.path, {
69
- path: meta.path,
70
- imports: [],
71
- importedBy: [],
72
- centrality: 0,
73
- });
74
- }
75
- // Parse imports from each file
76
- for (const meta of metadata) {
77
- try {
78
- const contents = await plugins.fsInstance.file(meta.path).encoding('utf8').read();
79
- const imports = this.extractImports(contents, meta.path);
80
- const deps = graph.get(meta.path);
81
- deps.imports = imports;
82
- // Update importedBy for imported files
83
- for (const importPath of imports) {
84
- const importedDeps = graph.get(importPath);
85
- if (importedDeps) {
86
- importedDeps.importedBy.push(meta.path);
87
- }
88
- }
89
- }
90
- catch (error) {
91
- console.warn(`Failed to parse imports from ${meta.path}:`, error.message);
92
- }
93
- }
94
- return graph;
95
- }
96
- /**
97
- * Extracts import statements from file contents
98
- * @param contents - File contents
99
- * @param filePath - Path of the file being analyzed
100
- * @returns Array of absolute paths to imported files
101
- */
102
- extractImports(contents, filePath) {
103
- const imports = [];
104
- const fileDir = plugins.path.dirname(filePath);
105
- // Match various import patterns
106
- const importRegex = /(?:import|export).*?from\s+['"](.+?)['"]/g;
107
- let match;
108
- while ((match = importRegex.exec(contents)) !== null) {
109
- const importPath = match[1];
110
- // Skip external modules
111
- if (!importPath.startsWith('.')) {
112
- continue;
113
- }
114
- // Resolve relative import to absolute path
115
- let resolvedPath = plugins.path.resolve(fileDir, importPath);
116
- // Handle various file extensions
117
- const extensions = ['.ts', '.js', '.tsx', '.jsx', '/index.ts', '/index.js'];
118
- let found = false;
119
- for (const ext of extensions) {
120
- const testPath = resolvedPath.endsWith(ext) ? resolvedPath : resolvedPath + ext;
121
- try {
122
- // Use synchronous file check to avoid async in this context
123
- const fs = require('fs');
124
- const exists = fs.existsSync(testPath);
125
- if (exists) {
126
- imports.push(testPath);
127
- found = true;
128
- break;
129
- }
130
- }
131
- catch (error) {
132
- // Continue trying other extensions
133
- }
134
- }
135
- if (!found && !resolvedPath.includes('.')) {
136
- // Try with .ts extension as default
137
- imports.push(resolvedPath + '.ts');
138
- }
139
- }
140
- return imports;
141
- }
142
- /**
143
- * Calculates centrality scores for all nodes in the dependency graph
144
- * Uses a simplified PageRank-like algorithm
145
- * @param graph - Dependency graph
146
- */
147
- calculateCentrality(graph) {
148
- const damping = 0.85;
149
- const iterations = 10;
150
- const nodeCount = graph.size;
151
- // Initialize scores
152
- const scores = new Map();
153
- for (const path of graph.keys()) {
154
- scores.set(path, 1.0 / nodeCount);
155
- }
156
- // Iterative calculation
157
- for (let i = 0; i < iterations; i++) {
158
- const newScores = new Map();
159
- for (const [path, deps] of graph.entries()) {
160
- let score = (1 - damping) / nodeCount;
161
- // Add contributions from nodes that import this file
162
- for (const importerPath of deps.importedBy) {
163
- const importerDeps = graph.get(importerPath);
164
- if (importerDeps) {
165
- const importerScore = scores.get(importerPath) ?? 0;
166
- const outgoingCount = importerDeps.imports.length || 1;
167
- score += damping * (importerScore / outgoingCount);
168
- }
169
- }
170
- newScores.set(path, score);
171
- }
172
- // Update scores
173
- for (const [path, score] of newScores) {
174
- scores.set(path, score);
175
- }
176
- }
177
- // Normalize scores to 0-1 range
178
- const maxScore = Math.max(...scores.values());
179
- if (maxScore > 0) {
180
- for (const deps of graph.values()) {
181
- const score = scores.get(deps.path) ?? 0;
182
- deps.centrality = score / maxScore;
183
- }
184
- }
185
- }
186
- /**
187
- * Analyzes a single file
188
- * @param meta - File metadata
189
- * @param taskType - Task being performed
190
- * @param graph - Dependency graph
191
- * @param changedFiles - Recently changed files
192
- * @returns File analysis
193
- */
194
- async analyzeFile(meta, taskType, graph, changedFiles) {
195
- const deps = graph.get(meta.path);
196
- const centralityScore = deps?.centrality ?? 0;
197
- // Calculate task-specific relevance
198
- const relevanceScore = this.calculateRelevance(meta, taskType);
199
- // Calculate efficiency (information per token)
200
- const efficiencyScore = this.calculateEfficiency(meta);
201
- // Calculate recency (for commit tasks)
202
- const recencyScore = this.calculateRecency(meta, changedFiles);
203
- // Calculate combined importance score
204
- const importanceScore = relevanceScore * this.weights.relevanceWeight +
205
- centralityScore * this.weights.dependencyWeight +
206
- efficiencyScore * this.weights.efficiencyWeight +
207
- recencyScore * this.weights.recencyWeight;
208
- // Assign tier
209
- const tier = this.assignTier(importanceScore);
210
- return {
211
- path: meta.path,
212
- relevanceScore,
213
- centralityScore,
214
- efficiencyScore,
215
- recencyScore,
216
- importanceScore,
217
- tier,
218
- reason: this.generateReason(meta, taskType, importanceScore, tier),
219
- };
220
- }
221
- /**
222
- * Calculates task-specific relevance score
223
- */
224
- calculateRelevance(meta, taskType) {
225
- const relativePath = meta.relativePath.toLowerCase();
226
- let score = 0.5; // Base score
227
- // README generation - prioritize public APIs and main exports
228
- if (taskType === 'readme') {
229
- if (relativePath.includes('index.ts'))
230
- score += 0.3;
231
- if (relativePath.match(/^ts\/[^\/]+\.ts$/))
232
- score += 0.2; // Root level exports
233
- if (relativePath.includes('test/'))
234
- score -= 0.3;
235
- if (relativePath.includes('classes/'))
236
- score += 0.1;
237
- if (relativePath.includes('interfaces/'))
238
- score += 0.1;
239
- }
240
- // Commit messages - prioritize changed files and their dependencies
241
- if (taskType === 'commit') {
242
- if (relativePath.includes('test/'))
243
- score -= 0.2;
244
- // Recency will handle changed files
245
- }
246
- // Description generation - prioritize main exports and core interfaces
247
- if (taskType === 'description') {
248
- if (relativePath.includes('index.ts'))
249
- score += 0.4;
250
- if (relativePath.match(/^ts\/[^\/]+\.ts$/))
251
- score += 0.3;
252
- if (relativePath.includes('test/'))
253
- score -= 0.4;
254
- if (relativePath.includes('interfaces/'))
255
- score += 0.2;
256
- }
257
- return Math.max(0, Math.min(1, score));
258
- }
259
- /**
260
- * Calculates efficiency score (information density)
261
- */
262
- calculateEfficiency(meta) {
263
- // Prefer files that are not too large (good signal-to-noise ratio)
264
- const optimalSize = 5000; // ~1250 tokens
265
- const distance = Math.abs(meta.estimatedTokens - optimalSize);
266
- const normalized = Math.max(0, 1 - distance / optimalSize);
267
- return normalized;
268
- }
269
- /**
270
- * Calculates recency score for changed files
271
- */
272
- calculateRecency(meta, changedFiles) {
273
- if (changedFiles.length === 0) {
274
- return 0;
275
- }
276
- // Check if this file was changed
277
- const isChanged = changedFiles.some((changed) => changed === meta.path);
278
- return isChanged ? 1.0 : 0.0;
279
- }
280
- /**
281
- * Assigns a tier based on importance score
282
- */
283
- assignTier(score) {
284
- if (score >= this.tiers.essential.minScore)
285
- return 'essential';
286
- if (score >= this.tiers.important.minScore)
287
- return 'important';
288
- if (score >= this.tiers.optional.minScore)
289
- return 'optional';
290
- return 'excluded';
291
- }
292
- /**
293
- * Generates a human-readable reason for the score
294
- */
295
- generateReason(meta, taskType, score, tier) {
296
- const reasons = [];
297
- if (meta.relativePath.includes('index.ts')) {
298
- reasons.push('main export file');
299
- }
300
- if (meta.relativePath.includes('test/')) {
301
- reasons.push('test file (lower priority)');
302
- }
303
- if (taskType === 'readme' && meta.relativePath.match(/^ts\/[^\/]+\.ts$/)) {
304
- reasons.push('root-level module');
305
- }
306
- reasons.push(`score: ${score.toFixed(2)}`);
307
- reasons.push(`tier: ${tier}`);
308
- return reasons.join(', ');
309
- }
310
- }
311
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1hbmFseXplci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzL2NvbnRleHQvY29udGV4dC1hbmFseXplci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGVBQWUsQ0FBQztBQVd6Qzs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sZUFBZTtJQUsxQjs7Ozs7T0FLRztJQUNILFlBQ0UsV0FBbUIsRUFDbkIsVUFBMkMsRUFBRSxFQUM3QyxRQUE4QixFQUFFO1FBRWhDLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBRS9CLGtCQUFrQjtRQUNsQixJQUFJLENBQUMsT0FBTyxHQUFHO1lBQ2IsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLGdCQUFnQixJQUFJLEdBQUc7WUFDakQsZUFBZSxFQUFFLE9BQU8sQ0FBQyxlQUFlLElBQUksR0FBRztZQUMvQyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsZ0JBQWdCLElBQUksR0FBRztZQUNqRCxhQUFhLEVBQUUsT0FBTyxDQUFDLGFBQWEsSUFBSSxHQUFHO1NBQzVDLENBQUM7UUFFRixnQkFBZ0I7UUFDaEIsSUFBSSxDQUFDLEtBQUssR0FBRztZQUNYLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUyxJQUFJLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFO1lBQ2xFLFNBQVMsRUFBRSxLQUFLLENBQUMsU0FBUyxJQUFJLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFO1lBQ25FLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUSxJQUFJLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFO1NBQ3ZFLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksS0FBSyxDQUFDLE9BQU8sQ0FDbEIsUUFBeUIsRUFDekIsUUFBa0IsRUFDbEIsZUFBeUIsRUFBRTtR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
@@ -1,73 +0,0 @@
1
- import type { ICacheEntry, ICacheConfig } from './types.js';
2
- /**
3
- * ContextCache provides persistent caching of file contents and token counts
4
- * with automatic invalidation on file changes
5
- */
6
- export declare class ContextCache {
7
- private cacheDir;
8
- private cache;
9
- private config;
10
- private cacheIndexPath;
11
- /**
12
- * Creates a new ContextCache
13
- * @param projectRoot - Root directory of the project
14
- * @param config - Cache configuration
15
- */
16
- constructor(projectRoot: string, config?: Partial<ICacheConfig>);
17
- /**
18
- * Initializes the cache by loading from disk
19
- */
20
- init(): Promise<void>;
21
- /**
22
- * Gets a cached entry if it's still valid
23
- * @param filePath - Absolute path to the file
24
- * @returns Cache entry if valid, null otherwise
25
- */
26
- get(filePath: string): Promise<ICacheEntry | null>;
27
- /**
28
- * Stores a cache entry
29
- * @param entry - Cache entry to store
30
- */
31
- set(entry: ICacheEntry): Promise<void>;
32
- /**
33
- * Stores multiple cache entries
34
- * @param entries - Array of cache entries
35
- */
36
- setMany(entries: ICacheEntry[]): Promise<void>;
37
- /**
38
- * Checks if a file is cached and valid
39
- * @param filePath - Absolute path to the file
40
- * @returns True if cached and valid
41
- */
42
- has(filePath: string): Promise<boolean>;
43
- /**
44
- * Gets cache statistics
45
- */
46
- getStats(): {
47
- entries: number;
48
- totalSize: number;
49
- oldestEntry: number | null;
50
- newestEntry: number | null;
51
- };
52
- /**
53
- * Clears all cache entries
54
- */
55
- clear(): Promise<void>;
56
- /**
57
- * Clears specific cache entries
58
- * @param filePaths - Array of file paths to clear
59
- */
60
- clearPaths(filePaths: string[]): Promise<void>;
61
- /**
62
- * Cleans up expired and invalid cache entries
63
- */
64
- private cleanup;
65
- /**
66
- * Enforces maximum cache size by evicting oldest entries
67
- */
68
- private enforceMaxSize;
69
- /**
70
- * Persists cache index to disk
71
- */
72
- private persist;
73
- }