@milo4jo/contextkit 0.3.0 → 0.5.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.
- package/README.md +43 -11
- package/dist/commands/select.d.ts.map +1 -1
- package/dist/commands/select.js +15 -9
- package/dist/commands/select.js.map +1 -1
- package/dist/config/index.d.ts +11 -0
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +11 -0
- package/dist/config/index.js.map +1 -1
- package/dist/config/validation.d.ts +33 -0
- package/dist/config/validation.d.ts.map +1 -0
- package/dist/config/validation.js +241 -0
- package/dist/config/validation.js.map +1 -0
- package/dist/index.js +0 -0
- package/dist/retrieval/imports.d.ts +76 -0
- package/dist/retrieval/imports.d.ts.map +1 -0
- package/dist/retrieval/imports.js +258 -0
- package/dist/retrieval/imports.js.map +1 -0
- package/dist/selector/formatter.d.ts +15 -0
- package/dist/selector/formatter.d.ts.map +1 -1
- package/dist/selector/formatter.js +132 -0
- package/dist/selector/formatter.js.map +1 -1
- package/dist/selector/index.d.ts +11 -4
- package/dist/selector/index.d.ts.map +1 -1
- package/dist/selector/index.js +67 -12
- package/dist/selector/index.js.map +1 -1
- package/dist/selector/scoring.d.ts +20 -0
- package/dist/selector/scoring.d.ts.map +1 -1
- package/dist/selector/scoring.js +103 -10
- package/dist/selector/scoring.js.map +1 -1
- package/package.json +1 -1
- package/dist/commands/source.d.ts +0 -3
- package/dist/commands/source.d.ts.map +0 -1
- package/dist/commands/source.js +0 -153
- package/dist/commands/source.js.map +0 -1
- package/dist/utils/output.d.ts +0 -42
- package/dist/utils/output.d.ts.map +0 -1
- package/dist/utils/output.js +0 -62
- package/dist/utils/output.js.map +0 -1
|
@@ -22,15 +22,35 @@ export interface RankedChunk extends ScoredChunk {
|
|
|
22
22
|
contentMatch: number;
|
|
23
23
|
symbolMatch: number;
|
|
24
24
|
fileTypeBoost: number;
|
|
25
|
+
importBoost: number;
|
|
25
26
|
};
|
|
26
27
|
}
|
|
28
|
+
/** Import relationship data for scoring */
|
|
29
|
+
export interface ImportGraph {
|
|
30
|
+
/** Map of file path -> files it imports */
|
|
31
|
+
imports: Map<string, string[]>;
|
|
32
|
+
/** Map of file path -> files that import it */
|
|
33
|
+
importedBy: Map<string, string[]>;
|
|
34
|
+
}
|
|
27
35
|
/** Options for scoring */
|
|
28
36
|
export interface ScoringOptions {
|
|
29
37
|
/** Apply diversity penalty (reduce score for many chunks from same file) */
|
|
30
38
|
diversityPenalty?: boolean;
|
|
39
|
+
/** Import relationships for boosting related files */
|
|
40
|
+
importGraph?: ImportGraph;
|
|
31
41
|
}
|
|
32
42
|
/**
|
|
33
43
|
* Calculate scores and rank chunks
|
|
34
44
|
*/
|
|
35
45
|
export declare function rankChunks(chunks: ScoredChunk[], query: string, options?: ScoringOptions): RankedChunk[];
|
|
46
|
+
/**
|
|
47
|
+
* Build an import graph from a dependency map
|
|
48
|
+
*/
|
|
49
|
+
export declare function buildImportGraph(dependencyMap: Map<string, string[]>): ImportGraph;
|
|
50
|
+
/**
|
|
51
|
+
* Get files that should be included based on imports from selected files
|
|
52
|
+
*/
|
|
53
|
+
export declare function getRelatedImports(selectedFiles: string[], importGraph: ImportGraph, options?: {
|
|
54
|
+
maxDepth?: number;
|
|
55
|
+
}): string[];
|
|
36
56
|
//# sourceMappingURL=scoring.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scoring.d.ts","sourceRoot":"","sources":["../../src/selector/scoring.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,6BAA6B;AAC7B,MAAM,WAAW,WAAY,SAAQ,WAAW;IAC9C,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,cAAc,EAAE;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;QACpB,aAAa,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"scoring.d.ts","sourceRoot":"","sources":["../../src/selector/scoring.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,6BAA6B;AAC7B,MAAM,WAAW,WAAY,SAAQ,WAAW;IAC9C,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,cAAc,EAAE;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,EAAE,MAAM,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;QACpB,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAYD,2CAA2C;AAC3C,MAAM,WAAW,WAAW;IAC1B,2CAA2C;IAC3C,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC/B,+CAA+C;IAC/C,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CACnC;AAED,0BAA0B;AAC1B,MAAM,WAAW,cAAc;IAC7B,4EAA4E;IAC5E,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,sDAAsD;IACtD,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,MAAM,EAAE,WAAW,EAAE,EACrB,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,cAAmB,GAC3B,WAAW,EAAE,CAyEf;AAySD;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GACnC,WAAW,CAiBb;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,aAAa,EAAE,MAAM,EAAE,EACvB,WAAW,EAAE,WAAW,EACxB,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GAClC,MAAM,EAAE,CA2BV"}
|
package/dist/selector/scoring.js
CHANGED
|
@@ -12,11 +12,12 @@
|
|
|
12
12
|
*/
|
|
13
13
|
/** Scoring weights - tuned for code search */
|
|
14
14
|
const WEIGHTS = {
|
|
15
|
-
similarity: 0.
|
|
15
|
+
similarity: 0.45, // Semantic similarity is primary signal
|
|
16
16
|
pathMatch: 0.15, // Path contains query keywords
|
|
17
17
|
contentMatch: 0.15, // Content contains exact keywords
|
|
18
18
|
symbolMatch: 0.15, // Contains relevant function/class names
|
|
19
19
|
fileTypeBoost: 0.05, // File type priority
|
|
20
|
+
importBoost: 0.05, // File is imported by selected chunks
|
|
20
21
|
};
|
|
21
22
|
/**
|
|
22
23
|
* Calculate scores and rank chunks
|
|
@@ -25,24 +26,36 @@ export function rankChunks(chunks, query, options = {}) {
|
|
|
25
26
|
// Extract keywords and symbols from query
|
|
26
27
|
const queryKeywords = extractKeywords(query);
|
|
27
28
|
const querySymbols = extractSymbols(query);
|
|
28
|
-
//
|
|
29
|
-
const
|
|
30
|
-
// Semantic similarity (already 0-1)
|
|
29
|
+
// First pass: score all chunks without import boost
|
|
30
|
+
const initialScores = chunks.map((chunk) => {
|
|
31
31
|
const similarityScore = chunk.similarity;
|
|
32
|
-
// Path match bonus (query keywords in file path)
|
|
33
32
|
const pathMatchScore = calculatePathMatch(chunk.filePath, queryKeywords);
|
|
34
|
-
// Content keyword match (exact words in content)
|
|
35
33
|
const contentMatchScore = calculateContentMatch(chunk.content, queryKeywords);
|
|
36
|
-
// Code symbol match (function/class names)
|
|
37
34
|
const symbolMatchScore = calculateSymbolMatch(chunk.content, querySymbols);
|
|
38
|
-
// File type boost
|
|
39
35
|
const fileTypeBoost = calculateFileTypeBoost(chunk.filePath);
|
|
40
|
-
|
|
41
|
-
const score = WEIGHTS.similarity * similarityScore +
|
|
36
|
+
const baseScore = WEIGHTS.similarity * similarityScore +
|
|
42
37
|
WEIGHTS.pathMatch * pathMatchScore +
|
|
43
38
|
WEIGHTS.contentMatch * contentMatchScore +
|
|
44
39
|
WEIGHTS.symbolMatch * symbolMatchScore +
|
|
45
40
|
WEIGHTS.fileTypeBoost * fileTypeBoost;
|
|
41
|
+
return {
|
|
42
|
+
chunk,
|
|
43
|
+
baseScore,
|
|
44
|
+
similarityScore,
|
|
45
|
+
pathMatchScore,
|
|
46
|
+
contentMatchScore,
|
|
47
|
+
symbolMatchScore,
|
|
48
|
+
fileTypeBoost,
|
|
49
|
+
};
|
|
50
|
+
});
|
|
51
|
+
// Sort by base score to find top files
|
|
52
|
+
initialScores.sort((a, b) => b.baseScore - a.baseScore);
|
|
53
|
+
// Calculate import boosts if import graph is provided
|
|
54
|
+
const importBoosts = calculateImportBoosts(initialScores, options.importGraph);
|
|
55
|
+
// Second pass: apply import boosts and create final ranked chunks
|
|
56
|
+
const ranked = initialScores.map(({ chunk, baseScore, similarityScore, pathMatchScore, contentMatchScore, symbolMatchScore, fileTypeBoost, }) => {
|
|
57
|
+
const importBoost = importBoosts.get(chunk.filePath) || 0;
|
|
58
|
+
const score = baseScore + WEIGHTS.importBoost * importBoost;
|
|
46
59
|
return {
|
|
47
60
|
...chunk,
|
|
48
61
|
score,
|
|
@@ -52,6 +65,7 @@ export function rankChunks(chunks, query, options = {}) {
|
|
|
52
65
|
contentMatch: contentMatchScore,
|
|
53
66
|
symbolMatch: symbolMatchScore,
|
|
54
67
|
fileTypeBoost: fileTypeBoost,
|
|
68
|
+
importBoost: importBoost,
|
|
55
69
|
},
|
|
56
70
|
};
|
|
57
71
|
});
|
|
@@ -63,6 +77,41 @@ export function rankChunks(chunks, query, options = {}) {
|
|
|
63
77
|
}
|
|
64
78
|
return ranked;
|
|
65
79
|
}
|
|
80
|
+
/**
|
|
81
|
+
* Calculate import boosts for files based on their relationship to top-scoring files
|
|
82
|
+
*
|
|
83
|
+
* If a top-scoring file imports another file, that file gets a boost.
|
|
84
|
+
* Boost decays based on how far from top the importer is.
|
|
85
|
+
*/
|
|
86
|
+
function calculateImportBoosts(scoredChunks, importGraph) {
|
|
87
|
+
const boosts = new Map();
|
|
88
|
+
if (!importGraph) {
|
|
89
|
+
return boosts;
|
|
90
|
+
}
|
|
91
|
+
// Get unique files from top chunks (consider top 20 as "selected")
|
|
92
|
+
const topFiles = new Set();
|
|
93
|
+
const fileScores = new Map();
|
|
94
|
+
for (const { chunk, baseScore } of scoredChunks.slice(0, 20)) {
|
|
95
|
+
if (!topFiles.has(chunk.filePath)) {
|
|
96
|
+
topFiles.add(chunk.filePath);
|
|
97
|
+
fileScores.set(chunk.filePath, baseScore);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
// For each top file, boost its imports
|
|
101
|
+
for (const filePath of topFiles) {
|
|
102
|
+
const fileScore = fileScores.get(filePath) || 0;
|
|
103
|
+
const imports = importGraph.imports.get(filePath) || [];
|
|
104
|
+
for (const importedFile of imports) {
|
|
105
|
+
// Boost proportional to the importer's score
|
|
106
|
+
// Higher scoring importers give stronger boosts
|
|
107
|
+
const boost = Math.min(fileScore, 1.0);
|
|
108
|
+
const currentBoost = boosts.get(importedFile) || 0;
|
|
109
|
+
// Take max boost if multiple files import the same file
|
|
110
|
+
boosts.set(importedFile, Math.max(currentBoost, boost));
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
return boosts;
|
|
114
|
+
}
|
|
66
115
|
/**
|
|
67
116
|
* Apply diversity penalty to avoid too many chunks from same file
|
|
68
117
|
*/
|
|
@@ -284,4 +333,48 @@ const STOP_WORDS = new Set([
|
|
|
284
333
|
'file',
|
|
285
334
|
'function',
|
|
286
335
|
]);
|
|
336
|
+
/**
|
|
337
|
+
* Build an import graph from a dependency map
|
|
338
|
+
*/
|
|
339
|
+
export function buildImportGraph(dependencyMap) {
|
|
340
|
+
const imports = new Map();
|
|
341
|
+
const importedBy = new Map();
|
|
342
|
+
for (const [file, deps] of dependencyMap) {
|
|
343
|
+
imports.set(file, deps);
|
|
344
|
+
for (const dep of deps) {
|
|
345
|
+
const existing = importedBy.get(dep) || [];
|
|
346
|
+
if (!existing.includes(file)) {
|
|
347
|
+
existing.push(file);
|
|
348
|
+
}
|
|
349
|
+
importedBy.set(dep, existing);
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
return { imports, importedBy };
|
|
353
|
+
}
|
|
354
|
+
/**
|
|
355
|
+
* Get files that should be included based on imports from selected files
|
|
356
|
+
*/
|
|
357
|
+
export function getRelatedImports(selectedFiles, importGraph, options = {}) {
|
|
358
|
+
const maxDepth = options.maxDepth ?? 1;
|
|
359
|
+
const related = new Set();
|
|
360
|
+
const visited = new Set(selectedFiles);
|
|
361
|
+
let currentLevel = selectedFiles;
|
|
362
|
+
for (let depth = 0; depth < maxDepth; depth++) {
|
|
363
|
+
const nextLevel = [];
|
|
364
|
+
for (const file of currentLevel) {
|
|
365
|
+
const imports = importGraph.imports.get(file) || [];
|
|
366
|
+
for (const importedFile of imports) {
|
|
367
|
+
if (!visited.has(importedFile)) {
|
|
368
|
+
visited.add(importedFile);
|
|
369
|
+
related.add(importedFile);
|
|
370
|
+
nextLevel.push(importedFile);
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
currentLevel = nextLevel;
|
|
375
|
+
if (currentLevel.length === 0)
|
|
376
|
+
break;
|
|
377
|
+
}
|
|
378
|
+
return Array.from(related);
|
|
379
|
+
}
|
|
287
380
|
//# sourceMappingURL=scoring.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scoring.js","sourceRoot":"","sources":["../../src/selector/scoring.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;
|
|
1
|
+
{"version":3,"file":"scoring.js","sourceRoot":"","sources":["../../src/selector/scoring.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../../src/commands/source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC,eAAO,MAAM,aAAa,SAKtB,CAAC"}
|
package/dist/commands/source.js
DELETED
|
@@ -1,153 +0,0 @@
|
|
|
1
|
-
import { Command } from 'commander';
|
|
2
|
-
import { existsSync, statSync } from 'fs';
|
|
3
|
-
import { resolve, relative, basename } from 'path';
|
|
4
|
-
import chalk from 'chalk';
|
|
5
|
-
import fg from 'fast-glob';
|
|
6
|
-
import { loadConfig, saveConfig, ensureInitialized } from '../config/index.js';
|
|
7
|
-
import { output } from '../utils/output.js';
|
|
8
|
-
export const sourceCommand = new Command('source')
|
|
9
|
-
.description('Manage sources')
|
|
10
|
-
.action(() => {
|
|
11
|
-
// Show subcommand help when no subcommand given
|
|
12
|
-
sourceCommand.help();
|
|
13
|
-
});
|
|
14
|
-
// source add
|
|
15
|
-
sourceCommand
|
|
16
|
-
.command('add <path>')
|
|
17
|
-
.description('Add a directory as a source')
|
|
18
|
-
.option('-n, --name <name>', 'Custom name for the source')
|
|
19
|
-
.option('-i, --include <patterns...>', 'Include patterns (glob)')
|
|
20
|
-
.option('-e, --exclude <patterns...>', 'Exclude patterns (glob)')
|
|
21
|
-
.action(async (path, options) => {
|
|
22
|
-
ensureInitialized();
|
|
23
|
-
const absolutePath = resolve(process.cwd(), path);
|
|
24
|
-
const relativePath = './' + relative(process.cwd(), absolutePath);
|
|
25
|
-
// Validate path exists
|
|
26
|
-
if (!existsSync(absolutePath)) {
|
|
27
|
-
output.error('Path not found');
|
|
28
|
-
// Try to suggest similar paths
|
|
29
|
-
const parent = resolve(absolutePath, '..');
|
|
30
|
-
if (existsSync(parent)) {
|
|
31
|
-
const entries = fg.sync(['*'], { cwd: parent, onlyDirectories: true });
|
|
32
|
-
const similar = entries.filter((e) => e.toLowerCase().includes(basename(path).toLowerCase()));
|
|
33
|
-
if (similar.length > 0) {
|
|
34
|
-
console.error(`Did you mean '${similar[0]}'?`);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
process.exit(1);
|
|
38
|
-
}
|
|
39
|
-
// Validate it's a directory
|
|
40
|
-
if (!statSync(absolutePath).isDirectory()) {
|
|
41
|
-
output.error('Not a directory');
|
|
42
|
-
console.error(`'${path}' is a file, not a directory.`);
|
|
43
|
-
process.exit(1);
|
|
44
|
-
}
|
|
45
|
-
// Load config
|
|
46
|
-
const config = loadConfig();
|
|
47
|
-
// Generate source ID
|
|
48
|
-
const sourceId = options.name || basename(absolutePath);
|
|
49
|
-
// Check for duplicates
|
|
50
|
-
const existing = config.sources.find((s) => s.id === sourceId);
|
|
51
|
-
if (existing) {
|
|
52
|
-
output.error('Source already exists');
|
|
53
|
-
console.error(`A source named '${sourceId}' already exists.`);
|
|
54
|
-
console.error(`Use a different name with ${chalk.cyan('--name')}`);
|
|
55
|
-
process.exit(1);
|
|
56
|
-
}
|
|
57
|
-
// Count files
|
|
58
|
-
const defaultInclude = ['**/*.ts', '**/*.js', '**/*.tsx', '**/*.jsx', '**/*.md', '**/*.json'];
|
|
59
|
-
const defaultExclude = ['**/node_modules/**', '**/dist/**', '**/.git/**'];
|
|
60
|
-
const include = options.include || defaultInclude;
|
|
61
|
-
const exclude = options.exclude || defaultExclude;
|
|
62
|
-
const files = fg.sync(include, {
|
|
63
|
-
cwd: absolutePath,
|
|
64
|
-
ignore: exclude,
|
|
65
|
-
onlyFiles: true,
|
|
66
|
-
});
|
|
67
|
-
// Create source entry
|
|
68
|
-
const source = {
|
|
69
|
-
id: sourceId,
|
|
70
|
-
path: relativePath,
|
|
71
|
-
patterns: {
|
|
72
|
-
include,
|
|
73
|
-
exclude,
|
|
74
|
-
},
|
|
75
|
-
};
|
|
76
|
-
// Add to config
|
|
77
|
-
config.sources.push(source);
|
|
78
|
-
saveConfig(config);
|
|
79
|
-
// Output
|
|
80
|
-
output.success(`Added source '${chalk.cyan(sourceId)}'`);
|
|
81
|
-
console.log(` Path: ${relativePath}`);
|
|
82
|
-
console.log(` Files: ${files.length} (${getFileExtensions(files)})`);
|
|
83
|
-
console.log();
|
|
84
|
-
console.log(`Run ${chalk.cyan('contextkit index')} to index this source.`);
|
|
85
|
-
});
|
|
86
|
-
// source list
|
|
87
|
-
sourceCommand
|
|
88
|
-
.command('list')
|
|
89
|
-
.description('List configured sources')
|
|
90
|
-
.action(() => {
|
|
91
|
-
ensureInitialized();
|
|
92
|
-
const config = loadConfig();
|
|
93
|
-
const opts = sourceCommand.parent?.opts() || {};
|
|
94
|
-
if (config.sources.length === 0) {
|
|
95
|
-
if (opts.json) {
|
|
96
|
-
console.log(JSON.stringify({ sources: [] }));
|
|
97
|
-
}
|
|
98
|
-
else {
|
|
99
|
-
console.log('No sources configured.');
|
|
100
|
-
console.log(`Add one with ${chalk.cyan('contextkit source add <path>')}`);
|
|
101
|
-
}
|
|
102
|
-
return;
|
|
103
|
-
}
|
|
104
|
-
if (opts.json) {
|
|
105
|
-
console.log(JSON.stringify({ sources: config.sources }, null, 2));
|
|
106
|
-
return;
|
|
107
|
-
}
|
|
108
|
-
if (opts.plain) {
|
|
109
|
-
for (const source of config.sources) {
|
|
110
|
-
console.log(`${source.id}\t${source.path}`);
|
|
111
|
-
}
|
|
112
|
-
return;
|
|
113
|
-
}
|
|
114
|
-
// Table output
|
|
115
|
-
console.log();
|
|
116
|
-
console.log(chalk.bold('Sources:'));
|
|
117
|
-
console.log(` ${chalk.gray('NAME'.padEnd(15))} ${chalk.gray('PATH')}`);
|
|
118
|
-
for (const source of config.sources) {
|
|
119
|
-
console.log(` ${source.id.padEnd(15)} ${source.path}`);
|
|
120
|
-
}
|
|
121
|
-
console.log();
|
|
122
|
-
console.log(`Total: ${config.sources.length} source${config.sources.length === 1 ? '' : 's'}`);
|
|
123
|
-
});
|
|
124
|
-
// source remove
|
|
125
|
-
sourceCommand
|
|
126
|
-
.command('remove <name>')
|
|
127
|
-
.alias('rm')
|
|
128
|
-
.description('Remove a source')
|
|
129
|
-
.action((name) => {
|
|
130
|
-
ensureInitialized();
|
|
131
|
-
const config = loadConfig();
|
|
132
|
-
const index = config.sources.findIndex((s) => s.id === name);
|
|
133
|
-
if (index === -1) {
|
|
134
|
-
output.error('Source not found');
|
|
135
|
-
console.error(`No source named '${name}'.`);
|
|
136
|
-
console.error(`Run ${chalk.cyan('contextkit source list')} to see available sources.`);
|
|
137
|
-
process.exit(1);
|
|
138
|
-
}
|
|
139
|
-
config.sources.splice(index, 1);
|
|
140
|
-
saveConfig(config);
|
|
141
|
-
output.success(`Removed source '${chalk.cyan(name)}'`);
|
|
142
|
-
console.log(`Run ${chalk.cyan('contextkit index')} to update the index.`);
|
|
143
|
-
});
|
|
144
|
-
function getFileExtensions(files) {
|
|
145
|
-
const exts = new Set();
|
|
146
|
-
for (const file of files) {
|
|
147
|
-
const ext = file.split('.').pop();
|
|
148
|
-
if (ext)
|
|
149
|
-
exts.add(ext);
|
|
150
|
-
}
|
|
151
|
-
return Array.from(exts).slice(0, 5).join(', ') + (exts.size > 5 ? '...' : '');
|
|
152
|
-
}
|
|
153
|
-
//# sourceMappingURL=source.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"source.js","sourceRoot":"","sources":["../../src/commands/source.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/output.d.ts
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Output utilities for consistent CLI formatting
|
|
3
|
-
*/
|
|
4
|
-
export declare const output: {
|
|
5
|
-
/**
|
|
6
|
-
* Print a success message with checkmark
|
|
7
|
-
*/
|
|
8
|
-
success(message: string): void;
|
|
9
|
-
/**
|
|
10
|
-
* Print an error message
|
|
11
|
-
*/
|
|
12
|
-
error(message: string): void;
|
|
13
|
-
/**
|
|
14
|
-
* Print a warning message
|
|
15
|
-
*/
|
|
16
|
-
warn(message: string): void;
|
|
17
|
-
/**
|
|
18
|
-
* Print an info message
|
|
19
|
-
*/
|
|
20
|
-
info(message: string): void;
|
|
21
|
-
/**
|
|
22
|
-
* Print a dim/secondary message
|
|
23
|
-
*/
|
|
24
|
-
dim(message: string): void;
|
|
25
|
-
/**
|
|
26
|
-
* Print a heading
|
|
27
|
-
*/
|
|
28
|
-
heading(message: string): void;
|
|
29
|
-
/**
|
|
30
|
-
* Print a key-value pair
|
|
31
|
-
*/
|
|
32
|
-
keyValue(key: string, value: string): void;
|
|
33
|
-
};
|
|
34
|
-
/**
|
|
35
|
-
* Check if stdout is a TTY (for progress bars, colors, etc.)
|
|
36
|
-
*/
|
|
37
|
-
export declare function isTTY(): boolean;
|
|
38
|
-
/**
|
|
39
|
-
* Check if colors should be disabled
|
|
40
|
-
*/
|
|
41
|
-
export declare function isNoColor(): boolean;
|
|
42
|
-
//# sourceMappingURL=output.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/utils/output.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,eAAO,MAAM,MAAM;IACjB;;OAEG;qBACc,MAAM,GAAG,IAAI;IAI9B;;OAEG;mBACY,MAAM,GAAG,IAAI;IAI5B;;OAEG;kBACW,MAAM,GAAG,IAAI;IAI3B;;OAEG;kBACW,MAAM,GAAG,IAAI;IAI3B;;OAEG;iBACU,MAAM,GAAG,IAAI;IAI1B;;OAEG;qBACc,MAAM,GAAG,IAAI;IAK9B;;OAEG;kBACW,MAAM,SAAS,MAAM,GAAG,IAAI;CAG3C,CAAC;AAEF;;GAEG;AACH,wBAAgB,KAAK,IAAI,OAAO,CAE/B;AAED;;GAEG;AACH,wBAAgB,SAAS,IAAI,OAAO,CAEnC"}
|
package/dist/utils/output.js
DELETED
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import chalk from 'chalk';
|
|
2
|
-
/**
|
|
3
|
-
* Output utilities for consistent CLI formatting
|
|
4
|
-
*/
|
|
5
|
-
export const output = {
|
|
6
|
-
/**
|
|
7
|
-
* Print a success message with checkmark
|
|
8
|
-
*/
|
|
9
|
-
success(message) {
|
|
10
|
-
console.log(chalk.green('✓') + ' ' + message);
|
|
11
|
-
},
|
|
12
|
-
/**
|
|
13
|
-
* Print an error message
|
|
14
|
-
*/
|
|
15
|
-
error(message) {
|
|
16
|
-
console.error(chalk.red('Error:') + ' ' + message);
|
|
17
|
-
},
|
|
18
|
-
/**
|
|
19
|
-
* Print a warning message
|
|
20
|
-
*/
|
|
21
|
-
warn(message) {
|
|
22
|
-
console.warn(chalk.yellow('⚠') + ' ' + message);
|
|
23
|
-
},
|
|
24
|
-
/**
|
|
25
|
-
* Print an info message
|
|
26
|
-
*/
|
|
27
|
-
info(message) {
|
|
28
|
-
console.log(chalk.blue('ℹ') + ' ' + message);
|
|
29
|
-
},
|
|
30
|
-
/**
|
|
31
|
-
* Print a dim/secondary message
|
|
32
|
-
*/
|
|
33
|
-
dim(message) {
|
|
34
|
-
console.log(chalk.dim(message));
|
|
35
|
-
},
|
|
36
|
-
/**
|
|
37
|
-
* Print a heading
|
|
38
|
-
*/
|
|
39
|
-
heading(message) {
|
|
40
|
-
console.log();
|
|
41
|
-
console.log(chalk.bold(message));
|
|
42
|
-
},
|
|
43
|
-
/**
|
|
44
|
-
* Print a key-value pair
|
|
45
|
-
*/
|
|
46
|
-
keyValue(key, value) {
|
|
47
|
-
console.log(` ${chalk.gray(key + ':')} ${value}`);
|
|
48
|
-
},
|
|
49
|
-
};
|
|
50
|
-
/**
|
|
51
|
-
* Check if stdout is a TTY (for progress bars, colors, etc.)
|
|
52
|
-
*/
|
|
53
|
-
export function isTTY() {
|
|
54
|
-
return process.stdout.isTTY === true;
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Check if colors should be disabled
|
|
58
|
-
*/
|
|
59
|
-
export function isNoColor() {
|
|
60
|
-
return process.env.NO_COLOR !== undefined || process.env.TERM === 'dumb';
|
|
61
|
-
}
|
|
62
|
-
//# sourceMappingURL=output.js.map
|
package/dist/utils/output.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/utils/output.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB;;OAEG;IACH,OAAO,CAAC,OAAe;QACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAe;QACnB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,CAAC;IACrD,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,OAAe;QAClB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,OAAe;QAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,OAAe;QACjB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,OAAe;QACrB,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,GAAW,EAAE,KAAa;QACjC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC;IACrD,CAAC;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,KAAK;IACnB,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS;IACvB,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC;AAC3E,CAAC"}
|