logicstamp-context 0.1.1 → 0.2.1
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/LLM_CONTEXT.md +4 -3
- package/README.md +116 -19
- package/dist/cli/commands/compare.d.ts.map +1 -1
- package/dist/cli/commands/compare.js +17 -8
- package/dist/cli/commands/compare.js.map +1 -1
- package/dist/cli/commands/context/bundleFormatter.d.ts +20 -0
- package/dist/cli/commands/context/bundleFormatter.d.ts.map +1 -0
- package/dist/cli/commands/context/bundleFormatter.js +55 -0
- package/dist/cli/commands/context/bundleFormatter.js.map +1 -0
- package/dist/cli/commands/context/configManager.d.ts +23 -0
- package/dist/cli/commands/context/configManager.d.ts.map +1 -0
- package/dist/cli/commands/context/configManager.js +69 -0
- package/dist/cli/commands/context/configManager.js.map +1 -0
- package/dist/cli/commands/context/contractBuilder.d.ts +18 -0
- package/dist/cli/commands/context/contractBuilder.d.ts.map +1 -0
- package/dist/cli/commands/context/contractBuilder.js +72 -0
- package/dist/cli/commands/context/contractBuilder.js.map +1 -0
- package/dist/cli/commands/context/fileWriter.d.ts +38 -0
- package/dist/cli/commands/context/fileWriter.d.ts.map +1 -0
- package/dist/cli/commands/context/fileWriter.js +170 -0
- package/dist/cli/commands/context/fileWriter.js.map +1 -0
- package/dist/cli/commands/context/statsCalculator.d.ts +44 -0
- package/dist/cli/commands/context/statsCalculator.d.ts.map +1 -0
- package/dist/cli/commands/context/statsCalculator.js +150 -0
- package/dist/cli/commands/context/statsCalculator.js.map +1 -0
- package/dist/cli/commands/context/tokenEstimator.d.ts +76 -0
- package/dist/cli/commands/context/tokenEstimator.d.ts.map +1 -0
- package/dist/cli/commands/context/tokenEstimator.js +258 -0
- package/dist/cli/commands/context/tokenEstimator.js.map +1 -0
- package/dist/cli/commands/context.d.ts +1 -0
- package/dist/cli/commands/context.d.ts.map +1 -1
- package/dist/cli/commands/context.js +72 -399
- package/dist/cli/commands/context.js.map +1 -1
- package/dist/cli/commands/style.d.ts +11 -0
- package/dist/cli/commands/style.d.ts.map +1 -0
- package/dist/cli/commands/style.js +15 -0
- package/dist/cli/commands/style.js.map +1 -0
- package/dist/cli/handlers/cleanHandler.d.ts +5 -0
- package/dist/cli/handlers/cleanHandler.d.ts.map +1 -0
- package/dist/cli/handlers/cleanHandler.js +28 -0
- package/dist/cli/handlers/cleanHandler.js.map +1 -0
- package/dist/cli/handlers/compareHandler.d.ts +5 -0
- package/dist/cli/handlers/compareHandler.d.ts.map +1 -0
- package/dist/cli/handlers/compareHandler.js +332 -0
- package/dist/cli/handlers/compareHandler.js.map +1 -0
- package/dist/cli/handlers/contextHandler.d.ts +5 -0
- package/dist/cli/handlers/contextHandler.d.ts.map +1 -0
- package/dist/cli/handlers/contextHandler.js +24 -0
- package/dist/cli/handlers/contextHandler.js.map +1 -0
- package/dist/cli/handlers/initHandler.d.ts +6 -0
- package/dist/cli/handlers/initHandler.d.ts.map +1 -0
- package/dist/cli/handlers/initHandler.js +30 -0
- package/dist/cli/handlers/initHandler.js.map +1 -0
- package/dist/cli/handlers/styleHandler.d.ts +5 -0
- package/dist/cli/handlers/styleHandler.d.ts.map +1 -0
- package/dist/cli/handlers/styleHandler.js +30 -0
- package/dist/cli/handlers/styleHandler.js.map +1 -0
- package/dist/cli/handlers/validateHandler.d.ts +5 -0
- package/dist/cli/handlers/validateHandler.d.ts.map +1 -0
- package/dist/cli/handlers/validateHandler.js +23 -0
- package/dist/cli/handlers/validateHandler.js.map +1 -0
- package/dist/cli/parser/argumentParser.d.ts +44 -0
- package/dist/cli/parser/argumentParser.d.ts.map +1 -0
- package/dist/cli/parser/argumentParser.js +194 -0
- package/dist/cli/parser/argumentParser.js.map +1 -0
- package/dist/cli/parser/helpText.d.ts +11 -0
- package/dist/cli/parser/helpText.d.ts.map +1 -0
- package/dist/cli/parser/helpText.js +373 -0
- package/dist/cli/parser/helpText.js.map +1 -0
- package/dist/cli/stamp.js +14 -821
- package/dist/cli/stamp.js.map +1 -1
- package/dist/core/astParser/detectors.d.ts +24 -0
- package/dist/core/astParser/detectors.d.ts.map +1 -0
- package/dist/core/astParser/detectors.js +102 -0
- package/dist/core/astParser/detectors.js.map +1 -0
- package/dist/core/astParser/extractors/componentExtractor.d.ts +13 -0
- package/dist/core/astParser/extractors/componentExtractor.d.ts.map +1 -0
- package/dist/core/astParser/extractors/componentExtractor.js +41 -0
- package/dist/core/astParser/extractors/componentExtractor.js.map +1 -0
- package/dist/core/astParser/extractors/eventExtractor.d.ts +14 -0
- package/dist/core/astParser/extractors/eventExtractor.d.ts.map +1 -0
- package/dist/core/astParser/extractors/eventExtractor.js +49 -0
- package/dist/core/astParser/extractors/eventExtractor.js.map +1 -0
- package/dist/core/astParser/extractors/propExtractor.d.ts +14 -0
- package/dist/core/astParser/extractors/propExtractor.d.ts.map +1 -0
- package/dist/core/astParser/extractors/propExtractor.js +73 -0
- package/dist/core/astParser/extractors/propExtractor.js.map +1 -0
- package/dist/core/astParser/extractors/stateExtractor.d.ts +13 -0
- package/dist/core/astParser/extractors/stateExtractor.d.ts.map +1 -0
- package/dist/core/astParser/extractors/stateExtractor.js +66 -0
- package/dist/core/astParser/extractors/stateExtractor.js.map +1 -0
- package/dist/core/astParser.d.ts.map +1 -1
- package/dist/core/astParser.js +5 -307
- package/dist/core/astParser.js.map +1 -1
- package/dist/core/contractBuilder.d.ts +1 -0
- package/dist/core/contractBuilder.d.ts.map +1 -1
- package/dist/core/contractBuilder.js +1 -0
- package/dist/core/contractBuilder.js.map +1 -1
- package/dist/core/pack/builder.d.ts +35 -0
- package/dist/core/pack/builder.d.ts.map +1 -0
- package/dist/core/pack/builder.js +76 -0
- package/dist/core/pack/builder.js.map +1 -0
- package/dist/core/pack/collector.d.ts +20 -0
- package/dist/core/pack/collector.d.ts.map +1 -0
- package/dist/core/pack/collector.js +71 -0
- package/dist/core/pack/collector.js.map +1 -0
- package/dist/core/pack/loader.d.ts +23 -0
- package/dist/core/pack/loader.d.ts.map +1 -0
- package/dist/core/pack/loader.js +66 -0
- package/dist/core/pack/loader.js.map +1 -0
- package/dist/core/pack/resolver.d.ts +21 -0
- package/dist/core/pack/resolver.d.ts.map +1 -0
- package/dist/core/pack/resolver.js +79 -0
- package/dist/core/pack/resolver.js.map +1 -0
- package/dist/core/pack.d.ts +17 -27
- package/dist/core/pack.d.ts.map +1 -1
- package/dist/core/pack.js +18 -225
- package/dist/core/pack.js.map +1 -1
- package/dist/core/styleExtractor/index.d.ts +11 -0
- package/dist/core/styleExtractor/index.d.ts.map +1 -0
- package/dist/core/styleExtractor/index.js +11 -0
- package/dist/core/styleExtractor/index.js.map +1 -0
- package/dist/core/styleExtractor/layout.d.ts +14 -0
- package/dist/core/styleExtractor/layout.d.ts.map +1 -0
- package/dist/core/styleExtractor/layout.js +86 -0
- package/dist/core/styleExtractor/layout.js.map +1 -0
- package/dist/core/styleExtractor/motion.d.ts +20 -0
- package/dist/core/styleExtractor/motion.d.ts.map +1 -0
- package/dist/core/styleExtractor/motion.js +74 -0
- package/dist/core/styleExtractor/motion.js.map +1 -0
- package/dist/core/styleExtractor/scss.d.ts +30 -0
- package/dist/core/styleExtractor/scss.d.ts.map +1 -0
- package/dist/core/styleExtractor/scss.js +80 -0
- package/dist/core/styleExtractor/scss.js.map +1 -0
- package/dist/core/styleExtractor/styleExtractor.d.ts +11 -0
- package/dist/core/styleExtractor/styleExtractor.d.ts.map +1 -0
- package/dist/core/styleExtractor/styleExtractor.js +115 -0
- package/dist/core/styleExtractor/styleExtractor.js.map +1 -0
- package/dist/core/styleExtractor/styled.d.ts +13 -0
- package/dist/core/styleExtractor/styled.d.ts.map +1 -0
- package/dist/core/styleExtractor/styled.js +31 -0
- package/dist/core/styleExtractor/styled.js.map +1 -0
- package/dist/core/styleExtractor/tailwind.d.ts +16 -0
- package/dist/core/styleExtractor/tailwind.d.ts.map +1 -0
- package/dist/core/styleExtractor/tailwind.js +85 -0
- package/dist/core/styleExtractor/tailwind.js.map +1 -0
- package/dist/core/styleExtractor.d.ts +8 -0
- package/dist/core/styleExtractor.d.ts.map +1 -0
- package/dist/core/styleExtractor.js +8 -0
- package/dist/core/styleExtractor.js.map +1 -0
- package/dist/types/UIFContract.d.ts +71 -0
- package/dist/types/UIFContract.d.ts.map +1 -1
- package/dist/types/UIFContract.js.map +1 -1
- package/dist/utils/tokens.d.ts +18 -10
- package/dist/utils/tokens.d.ts.map +1 -1
- package/dist/utils/tokens.js +100 -10
- package/dist/utils/tokens.js.map +1 -1
- package/package.json +5 -1
- package/schema/logicstamp.context.schema.json +288 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cleanHandler.d.ts","sourceRoot":"","sources":["../../../src/cli/handlers/cleanHandler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAqB/D"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Handler for clean command
|
|
3
|
+
*/
|
|
4
|
+
import { cleanCommand } from '../commands/clean.js';
|
|
5
|
+
import { parseCleanArgs } from '../parser/argumentParser.js';
|
|
6
|
+
import { getCleanHelp } from '../parser/helpText.js';
|
|
7
|
+
import { printFoxIcon } from './initHandler.js';
|
|
8
|
+
export async function handleClean(args) {
|
|
9
|
+
if (args.includes('--help') || args.includes('-h')) {
|
|
10
|
+
printFoxIcon();
|
|
11
|
+
console.log(getCleanHelp());
|
|
12
|
+
process.exit(0);
|
|
13
|
+
}
|
|
14
|
+
// Explicitly reject --compare-modes (only available in stamp context, not stamp context clean)
|
|
15
|
+
if (args.includes('--compare-modes')) {
|
|
16
|
+
console.error('❌ --compare-modes is not available for "stamp context clean". Use "stamp context --compare-modes" instead.');
|
|
17
|
+
process.exit(1);
|
|
18
|
+
}
|
|
19
|
+
const options = parseCleanArgs(args);
|
|
20
|
+
try {
|
|
21
|
+
await cleanCommand(options);
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
console.error('❌ Clean failed:', error.message);
|
|
25
|
+
process.exit(1);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=cleanHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cleanHandler.js","sourceRoot":"","sources":["../../../src/cli/handlers/cleanHandler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAqB,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAc;IAC9C,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACnD,YAAY,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;QAC5B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,+FAA+F;IAC/F,IAAI,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACrC,OAAO,CAAC,KAAK,CAAC,4GAA4G,CAAC,CAAC;QAC5H,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IAErC,IAAI,CAAC;QACH,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;QAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compareHandler.d.ts","sourceRoot":"","sources":["../../../src/cli/handlers/compareHandler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAwCH,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuCjE"}
|
|
@@ -0,0 +1,332 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Handler for compare command
|
|
3
|
+
*/
|
|
4
|
+
import { contextCommand } from '../commands/context.js';
|
|
5
|
+
import { compareCommand, multiFileCompare, displayMultiFileCompareResult, cleanOrphanedFiles, } from '../commands/compare.js';
|
|
6
|
+
import { parseCompareArgs } from '../parser/argumentParser.js';
|
|
7
|
+
import { getCompareHelp } from '../parser/helpText.js';
|
|
8
|
+
import { printFoxIcon } from './initHandler.js';
|
|
9
|
+
/**
|
|
10
|
+
* Prompt user for Y/N input (only in TTY mode)
|
|
11
|
+
*/
|
|
12
|
+
async function promptYesNo(question) {
|
|
13
|
+
const { createInterface } = await import('node:readline');
|
|
14
|
+
const readline = createInterface({
|
|
15
|
+
input: process.stdin,
|
|
16
|
+
output: process.stdout,
|
|
17
|
+
});
|
|
18
|
+
return new Promise((resolve) => {
|
|
19
|
+
readline.question(question, (answer) => {
|
|
20
|
+
readline.close();
|
|
21
|
+
resolve(answer.toLowerCase() === 'y');
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Check if running in interactive TTY
|
|
27
|
+
*/
|
|
28
|
+
function isTTY() {
|
|
29
|
+
return process.stdout.isTTY === true && process.stdin.isTTY === true;
|
|
30
|
+
}
|
|
31
|
+
export async function handleCompare(args) {
|
|
32
|
+
if (args[0] === '--help' || args[0] === '-h') {
|
|
33
|
+
printFoxIcon();
|
|
34
|
+
console.log(getCompareHelp());
|
|
35
|
+
process.exit(0);
|
|
36
|
+
}
|
|
37
|
+
// Explicitly reject --compare-modes (only available in stamp context, not stamp context compare)
|
|
38
|
+
if (args.includes('--compare-modes')) {
|
|
39
|
+
console.error('❌ --compare-modes is not available for "stamp context compare". Use "stamp context --compare-modes" instead.');
|
|
40
|
+
process.exit(1);
|
|
41
|
+
}
|
|
42
|
+
const { stats, approve, cleanOrphaned, quiet, skipGitignore, positionalArgs } = parseCompareArgs(args);
|
|
43
|
+
// Auto-mode: no files specified - use multi-file comparison with context_main.json
|
|
44
|
+
if (positionalArgs.length === 0) {
|
|
45
|
+
await handleAutoCompareMode({ stats, approve, cleanOrphaned, quiet, skipGitignore });
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
// Manual mode: explicit files provided
|
|
49
|
+
if (positionalArgs.length < 2) {
|
|
50
|
+
printFoxIcon();
|
|
51
|
+
console.log(getCompareHelp());
|
|
52
|
+
process.exit(1);
|
|
53
|
+
}
|
|
54
|
+
const oldFile = positionalArgs[0];
|
|
55
|
+
const newFile = positionalArgs[1];
|
|
56
|
+
// Detect if we're comparing context_main.json files (multi-file mode)
|
|
57
|
+
const isMultiFileMode = oldFile.endsWith('context_main.json') || newFile.endsWith('context_main.json');
|
|
58
|
+
if (isMultiFileMode) {
|
|
59
|
+
await handleMultiFileCompareMode({ oldFile, newFile, stats, approve, cleanOrphaned, quiet });
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
await handleSingleFileCompareMode({ oldFile, newFile, stats, approve, quiet });
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
async function handleAutoCompareMode(options) {
|
|
66
|
+
const { stats, approve, cleanOrphaned, quiet, skipGitignore } = options;
|
|
67
|
+
const { tmpdir } = await import('node:os');
|
|
68
|
+
const { join, dirname } = await import('node:path');
|
|
69
|
+
const { copyFile, rm, mkdir } = await import('node:fs/promises');
|
|
70
|
+
const { existsSync } = await import('node:fs');
|
|
71
|
+
// Check if context_main.json exists
|
|
72
|
+
if (!existsSync('context_main.json')) {
|
|
73
|
+
console.error('❌ context_main.json not found. Run "stamp context" first to generate context files.');
|
|
74
|
+
process.exit(1);
|
|
75
|
+
}
|
|
76
|
+
if (!quiet) {
|
|
77
|
+
console.log('Auto-compare mode');
|
|
78
|
+
}
|
|
79
|
+
// Create temp directory for new context generation
|
|
80
|
+
const tempDir = join(tmpdir(), `context-compare-${Date.now()}`);
|
|
81
|
+
await mkdir(tempDir, { recursive: true });
|
|
82
|
+
if (!quiet) {
|
|
83
|
+
console.log('🔄 Generating fresh context...');
|
|
84
|
+
}
|
|
85
|
+
// Generate fresh context to temp directory
|
|
86
|
+
const contextOptions = {
|
|
87
|
+
depth: 1,
|
|
88
|
+
includeCode: 'header',
|
|
89
|
+
format: 'json',
|
|
90
|
+
out: tempDir,
|
|
91
|
+
hashLock: false,
|
|
92
|
+
strict: false,
|
|
93
|
+
allowMissing: true,
|
|
94
|
+
maxNodes: 100,
|
|
95
|
+
profile: 'llm-chat',
|
|
96
|
+
predictBehavior: false,
|
|
97
|
+
dryRun: false,
|
|
98
|
+
stats: false,
|
|
99
|
+
strictMissing: false,
|
|
100
|
+
compareModes: false,
|
|
101
|
+
skipGitignore,
|
|
102
|
+
quiet,
|
|
103
|
+
suppressSuccessIndicator: true, // Suppress ✓ when called internally from compare
|
|
104
|
+
};
|
|
105
|
+
try {
|
|
106
|
+
await contextCommand(contextOptions);
|
|
107
|
+
// Multi-file compare using context_main.json indices
|
|
108
|
+
if (!quiet) {
|
|
109
|
+
console.log('🔍 Comparing all context files...\n');
|
|
110
|
+
}
|
|
111
|
+
const multiCompareOptions = {
|
|
112
|
+
oldIndexFile: 'context_main.json',
|
|
113
|
+
newIndexFile: join(tempDir, 'context_main.json'),
|
|
114
|
+
stats,
|
|
115
|
+
approve,
|
|
116
|
+
autoCleanOrphaned: cleanOrphaned,
|
|
117
|
+
quiet,
|
|
118
|
+
};
|
|
119
|
+
const result = await multiFileCompare(multiCompareOptions);
|
|
120
|
+
displayMultiFileCompareResult(result, stats, quiet);
|
|
121
|
+
// Handle drift approval
|
|
122
|
+
if (result.status === 'DRIFT') {
|
|
123
|
+
let shouldUpdate = false;
|
|
124
|
+
if (approve) {
|
|
125
|
+
// --approve flag: non-interactive, deterministic
|
|
126
|
+
shouldUpdate = true;
|
|
127
|
+
console.log('🔄 --approve flag set, updating all context files...');
|
|
128
|
+
}
|
|
129
|
+
else if (isTTY()) {
|
|
130
|
+
// Interactive prompt (local dev convenience)
|
|
131
|
+
shouldUpdate = await promptYesNo('Update all context files? (y/N) ');
|
|
132
|
+
}
|
|
133
|
+
if (shouldUpdate) {
|
|
134
|
+
// Copy all new context files to current directory
|
|
135
|
+
const { readFile } = await import('node:fs/promises');
|
|
136
|
+
const newIndexContent = await readFile(join(tempDir, 'context_main.json'), 'utf8');
|
|
137
|
+
const newIndex = JSON.parse(newIndexContent);
|
|
138
|
+
let copiedFiles = 0;
|
|
139
|
+
for (const folder of newIndex.folders) {
|
|
140
|
+
const srcPath = join(tempDir, folder.contextFile);
|
|
141
|
+
const destPath = folder.contextFile;
|
|
142
|
+
// Create parent directory if needed
|
|
143
|
+
await mkdir(dirname(destPath), { recursive: true });
|
|
144
|
+
await copyFile(srcPath, destPath);
|
|
145
|
+
copiedFiles++;
|
|
146
|
+
if (!quiet) {
|
|
147
|
+
console.log(` ✓ Updated ${destPath}`);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
// Copy context_main.json
|
|
151
|
+
await copyFile(join(tempDir, 'context_main.json'), 'context_main.json');
|
|
152
|
+
if (!quiet) {
|
|
153
|
+
console.log(` ✓ Updated context_main.json`);
|
|
154
|
+
}
|
|
155
|
+
// Clean up orphaned files if requested
|
|
156
|
+
if (cleanOrphaned && result.orphanedFiles && result.orphanedFiles.length > 0) {
|
|
157
|
+
if (!quiet) {
|
|
158
|
+
console.log('\n🗑️ Cleaning up orphaned files...');
|
|
159
|
+
}
|
|
160
|
+
const deletedCount = await cleanOrphanedFiles(result.orphanedFiles, '.', quiet);
|
|
161
|
+
if (!quiet) {
|
|
162
|
+
console.log(` ✓ Deleted ${deletedCount} orphaned file(s)`);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
if (!quiet) {
|
|
166
|
+
console.log(`\n✅ ${copiedFiles + 1} context files updated successfully`);
|
|
167
|
+
}
|
|
168
|
+
// Clean up temp directory
|
|
169
|
+
await rm(tempDir, { recursive: true, force: true });
|
|
170
|
+
process.exit(0); // Success: drift approved and updated
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
// Clean up temp directory
|
|
174
|
+
await rm(tempDir, { recursive: true, force: true });
|
|
175
|
+
if (isTTY() && !approve) {
|
|
176
|
+
console.log('❌ Update declined\n');
|
|
177
|
+
}
|
|
178
|
+
process.exit(1); // Drift detected but not approved
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
else {
|
|
182
|
+
// No drift - clean up and exit success
|
|
183
|
+
await rm(tempDir, { recursive: true, force: true });
|
|
184
|
+
process.exit(0);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
catch (error) {
|
|
188
|
+
// Try to clean up temp directory even on error
|
|
189
|
+
try {
|
|
190
|
+
await rm(tempDir, { recursive: true, force: true });
|
|
191
|
+
}
|
|
192
|
+
catch { }
|
|
193
|
+
console.error('❌ Compare failed:', error.message);
|
|
194
|
+
process.exit(1);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
async function handleMultiFileCompareMode(options) {
|
|
198
|
+
const { oldFile, newFile, stats, approve, cleanOrphaned, quiet } = options;
|
|
199
|
+
// Multi-file comparison mode
|
|
200
|
+
const multiCompareOptions = {
|
|
201
|
+
oldIndexFile: oldFile,
|
|
202
|
+
newIndexFile: newFile,
|
|
203
|
+
stats,
|
|
204
|
+
approve,
|
|
205
|
+
autoCleanOrphaned: cleanOrphaned,
|
|
206
|
+
quiet,
|
|
207
|
+
};
|
|
208
|
+
try {
|
|
209
|
+
const result = await multiFileCompare(multiCompareOptions);
|
|
210
|
+
displayMultiFileCompareResult(result, stats, quiet);
|
|
211
|
+
// Handle drift approval in manual mode
|
|
212
|
+
if (result.status === 'DRIFT') {
|
|
213
|
+
let shouldUpdate = false;
|
|
214
|
+
if (approve) {
|
|
215
|
+
// --approve flag: non-interactive, deterministic
|
|
216
|
+
shouldUpdate = true;
|
|
217
|
+
if (!quiet) {
|
|
218
|
+
console.log('🔄 --approve flag set, updating all context files...');
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
else if (isTTY()) {
|
|
222
|
+
// Interactive prompt (local dev convenience)
|
|
223
|
+
shouldUpdate = await promptYesNo('Update all context files? (y/N) ');
|
|
224
|
+
}
|
|
225
|
+
if (shouldUpdate) {
|
|
226
|
+
// Copy all new context files
|
|
227
|
+
const { readFile, copyFile, mkdir } = await import('node:fs/promises');
|
|
228
|
+
const { dirname, join } = await import('node:path');
|
|
229
|
+
const newIndexContent = await readFile(newFile, 'utf8');
|
|
230
|
+
const newIndex = JSON.parse(newIndexContent);
|
|
231
|
+
const baseDir = dirname(oldFile);
|
|
232
|
+
let copiedFiles = 0;
|
|
233
|
+
for (const folder of newIndex.folders) {
|
|
234
|
+
const srcPath = join(dirname(newFile), folder.contextFile);
|
|
235
|
+
const destPath = join(baseDir, folder.contextFile);
|
|
236
|
+
// Create parent directory if needed
|
|
237
|
+
await mkdir(dirname(destPath), { recursive: true });
|
|
238
|
+
await copyFile(srcPath, destPath);
|
|
239
|
+
copiedFiles++;
|
|
240
|
+
if (!quiet) {
|
|
241
|
+
console.log(` ✓ Updated ${folder.contextFile}`);
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
// Copy context_main.json
|
|
245
|
+
await copyFile(newFile, oldFile);
|
|
246
|
+
if (!quiet) {
|
|
247
|
+
console.log(` ✓ Updated ${oldFile}`);
|
|
248
|
+
}
|
|
249
|
+
// Clean up orphaned files if requested
|
|
250
|
+
if (cleanOrphaned && result.orphanedFiles && result.orphanedFiles.length > 0) {
|
|
251
|
+
if (!quiet) {
|
|
252
|
+
console.log('\n🗑️ Cleaning up orphaned files...');
|
|
253
|
+
}
|
|
254
|
+
const deletedCount = await cleanOrphanedFiles(result.orphanedFiles, baseDir, quiet);
|
|
255
|
+
if (!quiet) {
|
|
256
|
+
console.log(` ✓ Deleted ${deletedCount} orphaned file(s)`);
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
if (!quiet) {
|
|
260
|
+
console.log(`\n✅ ${copiedFiles + 1} context files updated successfully`);
|
|
261
|
+
}
|
|
262
|
+
process.exit(0); // Success: drift approved and updated
|
|
263
|
+
}
|
|
264
|
+
else {
|
|
265
|
+
if (isTTY() && !approve) {
|
|
266
|
+
console.log('❌ Update declined\n');
|
|
267
|
+
}
|
|
268
|
+
process.exit(1); // Drift detected but not approved
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
else {
|
|
272
|
+
// No drift
|
|
273
|
+
process.exit(0);
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
catch (error) {
|
|
277
|
+
console.error('❌ Compare failed:', error.message);
|
|
278
|
+
process.exit(1);
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
async function handleSingleFileCompareMode(options) {
|
|
282
|
+
const { oldFile, newFile, stats, approve, quiet } = options;
|
|
283
|
+
// Single-file comparison mode (backward compatible)
|
|
284
|
+
const compareOptions = {
|
|
285
|
+
oldFile,
|
|
286
|
+
newFile,
|
|
287
|
+
stats,
|
|
288
|
+
approve,
|
|
289
|
+
quiet,
|
|
290
|
+
};
|
|
291
|
+
try {
|
|
292
|
+
const result = await compareCommand(compareOptions);
|
|
293
|
+
// Handle drift approval in manual mode
|
|
294
|
+
if (result.status === 'DRIFT') {
|
|
295
|
+
let shouldUpdate = false;
|
|
296
|
+
if (approve) {
|
|
297
|
+
// --approve flag: non-interactive, deterministic
|
|
298
|
+
shouldUpdate = true;
|
|
299
|
+
if (!quiet) {
|
|
300
|
+
console.log(`🔄 --approve flag set, updating ${oldFile}...`);
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
else if (isTTY()) {
|
|
304
|
+
// Interactive prompt (local dev convenience)
|
|
305
|
+
shouldUpdate = await promptYesNo(`Update ${oldFile} with ${newFile}? (y/N) `);
|
|
306
|
+
}
|
|
307
|
+
if (shouldUpdate) {
|
|
308
|
+
const { copyFile } = await import('node:fs/promises');
|
|
309
|
+
await copyFile(newFile, oldFile);
|
|
310
|
+
if (!quiet) {
|
|
311
|
+
console.log(`✅ ${oldFile} updated successfully\n`);
|
|
312
|
+
}
|
|
313
|
+
process.exit(0); // Success: drift approved and updated
|
|
314
|
+
}
|
|
315
|
+
else {
|
|
316
|
+
if (isTTY() && !approve) {
|
|
317
|
+
console.log('❌ Update declined\n');
|
|
318
|
+
}
|
|
319
|
+
process.exit(1); // Drift detected but not approved
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
else {
|
|
323
|
+
// No drift
|
|
324
|
+
process.exit(0);
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
catch (error) {
|
|
328
|
+
console.error('❌ Compare failed:', error.message);
|
|
329
|
+
process.exit(1);
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
//# sourceMappingURL=compareHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compareHandler.js","sourceRoot":"","sources":["../../../src/cli/handlers/compareHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contextHandler.d.ts","sourceRoot":"","sources":["../../../src/cli/handlers/contextHandler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBlE"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Handler for context/generate command
|
|
3
|
+
*/
|
|
4
|
+
import { contextCommand } from '../commands/context.js';
|
|
5
|
+
import { parseContextArgs } from '../parser/argumentParser.js';
|
|
6
|
+
import { getGenerateHelp } from '../parser/helpText.js';
|
|
7
|
+
import { printFoxIcon } from './initHandler.js';
|
|
8
|
+
export async function handleGenerate(args) {
|
|
9
|
+
if (args.includes('--help') || args.includes('-h')) {
|
|
10
|
+
printFoxIcon();
|
|
11
|
+
console.log(getGenerateHelp());
|
|
12
|
+
process.exit(0);
|
|
13
|
+
}
|
|
14
|
+
const options = parseContextArgs(args);
|
|
15
|
+
try {
|
|
16
|
+
await contextCommand(options);
|
|
17
|
+
}
|
|
18
|
+
catch (error) {
|
|
19
|
+
console.error('❌ Context generation failed:', error.message);
|
|
20
|
+
console.error(error.stack);
|
|
21
|
+
process.exit(1);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=contextHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contextHandler.js","sourceRoot":"","sources":["../../../src/cli/handlers/contextHandler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAuB,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAc;IACjD,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACnD,YAAY,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC;QAC/B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAEvC,IAAI,CAAC;QACH,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;QACxE,OAAO,CAAC,KAAK,CAAE,KAAe,CAAC,KAAK,CAAC,CAAC;QACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initHandler.d.ts","sourceRoot":"","sources":["../../../src/cli/handlers/initHandler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,wBAAgB,YAAY,SAO3B;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB9D"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Handler for init command
|
|
3
|
+
*/
|
|
4
|
+
import { init } from '../commands/init.js';
|
|
5
|
+
import { parseInitArgs } from '../parser/argumentParser.js';
|
|
6
|
+
import { getInitHelp } from '../parser/helpText.js';
|
|
7
|
+
export function printFoxIcon() {
|
|
8
|
+
console.log(`
|
|
9
|
+
/\\_/\\
|
|
10
|
+
( o.o )
|
|
11
|
+
> ^ <
|
|
12
|
+
🦊 Meet the Logic Fox
|
|
13
|
+
`);
|
|
14
|
+
}
|
|
15
|
+
export async function handleInit(args) {
|
|
16
|
+
printFoxIcon();
|
|
17
|
+
if (args.includes('--help') || args.includes('-h')) {
|
|
18
|
+
console.log(getInitHelp());
|
|
19
|
+
process.exit(0);
|
|
20
|
+
}
|
|
21
|
+
const options = parseInitArgs(args);
|
|
22
|
+
try {
|
|
23
|
+
await init(options);
|
|
24
|
+
}
|
|
25
|
+
catch (error) {
|
|
26
|
+
console.error('❌ Initialization failed:', error.message);
|
|
27
|
+
process.exit(1);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=initHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initHandler.js","sourceRoot":"","sources":["../../../src/cli/handlers/initHandler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,IAAI,EAAoB,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,MAAM,UAAU,YAAY;IAC1B,OAAO,CAAC,GAAG,CAAC;;;;;CAKb,CAAC,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAc;IAC7C,YAAY,EAAE,CAAC;IAEf,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;QAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAEpC,IAAI,CAAC;QACH,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;IACtB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;QACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styleHandler.d.ts","sourceRoot":"","sources":["../../../src/cli/handlers/styleHandler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuB/D"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Handler for style command
|
|
3
|
+
*/
|
|
4
|
+
import { styleCommand } from '../commands/style.js';
|
|
5
|
+
import { parseStyleArgs } from '../parser/argumentParser.js';
|
|
6
|
+
import { getStyleHelp } from '../parser/helpText.js';
|
|
7
|
+
import { printFoxIcon } from './initHandler.js';
|
|
8
|
+
export async function handleStyle(args) {
|
|
9
|
+
if (args.includes('--help') || args.includes('-h')) {
|
|
10
|
+
printFoxIcon();
|
|
11
|
+
console.log(getStyleHelp());
|
|
12
|
+
process.exit(0);
|
|
13
|
+
}
|
|
14
|
+
// Explicitly reject --compare-modes (only available in stamp context, not stamp context style)
|
|
15
|
+
if (args.includes('--compare-modes')) {
|
|
16
|
+
console.error('❌ --compare-modes is not available for "stamp context style". Use "stamp context --compare-modes" instead.');
|
|
17
|
+
process.exit(1);
|
|
18
|
+
}
|
|
19
|
+
const options = parseStyleArgs(args);
|
|
20
|
+
// Note: styleCommand internally sets includeStyle: true
|
|
21
|
+
try {
|
|
22
|
+
await styleCommand(options);
|
|
23
|
+
}
|
|
24
|
+
catch (error) {
|
|
25
|
+
console.error('❌ Style context generation failed:', error.message);
|
|
26
|
+
console.error(error.stack);
|
|
27
|
+
process.exit(1);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=styleHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styleHandler.js","sourceRoot":"","sources":["../../../src/cli/handlers/styleHandler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAqB,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,IAAc;IAC9C,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACnD,YAAY,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;QAC5B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,+FAA+F;IAC/F,IAAI,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACrC,OAAO,CAAC,KAAK,CAAC,4GAA4G,CAAC,CAAC;QAC5H,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IACrC,wDAAwD;IAExD,IAAI,CAAC;QACH,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;QAC9E,OAAO,CAAC,KAAK,CAAE,KAAe,CAAC,KAAK,CAAC,CAAC;QACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validateHandler.d.ts","sourceRoot":"","sources":["../../../src/cli/handlers/validateHandler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAelE"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Handler for validate command
|
|
3
|
+
*/
|
|
4
|
+
import { validateCommand } from '../commands/validate.js';
|
|
5
|
+
import { parseValidateArgs } from '../parser/argumentParser.js';
|
|
6
|
+
import { getValidateHelp } from '../parser/helpText.js';
|
|
7
|
+
import { printFoxIcon } from './initHandler.js';
|
|
8
|
+
export async function handleValidate(args) {
|
|
9
|
+
if (args.includes('--help') || args.includes('-h')) {
|
|
10
|
+
printFoxIcon();
|
|
11
|
+
console.log(getValidateHelp());
|
|
12
|
+
process.exit(0);
|
|
13
|
+
}
|
|
14
|
+
const { quiet, filePath } = parseValidateArgs(args);
|
|
15
|
+
try {
|
|
16
|
+
await validateCommand(filePath, quiet);
|
|
17
|
+
}
|
|
18
|
+
catch (error) {
|
|
19
|
+
console.error('❌ Validation failed:', error.message);
|
|
20
|
+
process.exit(1);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=validateHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validateHandler.js","sourceRoot":"","sources":["../../../src/cli/handlers/validateHandler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,IAAc;IACjD,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACnD,YAAY,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC;QAC/B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAEpD,IAAI,CAAC;QACH,MAAM,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;QAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Argument parsing utilities for CLI commands
|
|
3
|
+
*/
|
|
4
|
+
import type { ContextOptions } from '../commands/context.js';
|
|
5
|
+
import type { InitOptions } from '../commands/init.js';
|
|
6
|
+
import type { CleanOptions } from '../commands/clean.js';
|
|
7
|
+
import type { StyleOptions } from '../commands/style.js';
|
|
8
|
+
export interface CompareArgs {
|
|
9
|
+
stats: boolean;
|
|
10
|
+
approve: boolean;
|
|
11
|
+
cleanOrphaned: boolean;
|
|
12
|
+
quiet: boolean;
|
|
13
|
+
skipGitignore: boolean;
|
|
14
|
+
positionalArgs: string[];
|
|
15
|
+
}
|
|
16
|
+
export interface ValidateArgs {
|
|
17
|
+
quiet: boolean;
|
|
18
|
+
filePath?: string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Parse context command arguments (for generate command)
|
|
22
|
+
*/
|
|
23
|
+
export declare function parseContextArgs(args: string[]): ContextOptions;
|
|
24
|
+
/**
|
|
25
|
+
* Parse compare command arguments
|
|
26
|
+
*/
|
|
27
|
+
export declare function parseCompareArgs(args: string[]): CompareArgs;
|
|
28
|
+
/**
|
|
29
|
+
* Parse validate command arguments
|
|
30
|
+
*/
|
|
31
|
+
export declare function parseValidateArgs(args: string[]): ValidateArgs;
|
|
32
|
+
/**
|
|
33
|
+
* Parse init command arguments
|
|
34
|
+
*/
|
|
35
|
+
export declare function parseInitArgs(args: string[]): InitOptions;
|
|
36
|
+
/**
|
|
37
|
+
* Parse clean command arguments
|
|
38
|
+
*/
|
|
39
|
+
export declare function parseCleanArgs(args: string[]): CleanOptions;
|
|
40
|
+
/**
|
|
41
|
+
* Parse style command arguments (same as context args but exclude includeStyle)
|
|
42
|
+
*/
|
|
43
|
+
export declare function parseStyleArgs(args: string[]): StyleOptions;
|
|
44
|
+
//# sourceMappingURL=argumentParser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"argumentParser.d.ts","sourceRoot":"","sources":["../../../src/cli/parser/argumentParser.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,OAAO,CAAC;IACvB,KAAK,EAAE,OAAO,CAAC;IACf,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,cAAc,CAoG/D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,WAAW,CAkB5D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,YAAY,CAQ9D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,WAAW,CA6BzD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,YAAY,CAgB3D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,YAAY,CAQ3D"}
|