spec-gen-cli 1.1.0 → 1.2.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 +163 -77
- package/dist/api/analyze.d.ts.map +1 -1
- package/dist/api/analyze.js +56 -27
- package/dist/api/analyze.js.map +1 -1
- package/dist/api/drift.d.ts.map +1 -1
- package/dist/api/drift.js +26 -20
- package/dist/api/drift.js.map +1 -1
- package/dist/api/generate.d.ts.map +1 -1
- package/dist/api/generate.js +19 -43
- package/dist/api/generate.js.map +1 -1
- package/dist/api/init.d.ts.map +1 -1
- package/dist/api/init.js +6 -5
- package/dist/api/init.js.map +1 -1
- package/dist/api/run.d.ts.map +1 -1
- package/dist/api/run.js +67 -51
- package/dist/api/run.js.map +1 -1
- package/dist/api/specs.d.ts.map +1 -1
- package/dist/api/specs.js +5 -4
- package/dist/api/specs.js.map +1 -1
- package/dist/api/types.d.ts +7 -1
- package/dist/api/types.d.ts.map +1 -1
- package/dist/api/verify.d.ts.map +1 -1
- package/dist/api/verify.js +31 -32
- package/dist/api/verify.js.map +1 -1
- package/dist/cli/commands/analyze.d.ts.map +1 -1
- package/dist/cli/commands/analyze.js +41 -62
- package/dist/cli/commands/analyze.js.map +1 -1
- package/dist/cli/commands/doctor.d.ts +9 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -0
- package/dist/cli/commands/doctor.js +273 -0
- package/dist/cli/commands/doctor.js.map +1 -0
- package/dist/cli/commands/drift.d.ts.map +1 -1
- package/dist/cli/commands/drift.js +18 -32
- package/dist/cli/commands/drift.js.map +1 -1
- package/dist/cli/commands/generate.d.ts.map +1 -1
- package/dist/cli/commands/generate.js +40 -101
- package/dist/cli/commands/generate.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +17 -15
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/mcp.d.ts.map +1 -1
- package/dist/cli/commands/mcp.js +2 -1
- package/dist/cli/commands/mcp.js.map +1 -1
- package/dist/cli/commands/run.d.ts +0 -15
- package/dist/cli/commands/run.d.ts.map +1 -1
- package/dist/cli/commands/run.js +61 -111
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli/commands/verify.d.ts.map +1 -1
- package/dist/cli/commands/verify.js +18 -52
- package/dist/cli/commands/verify.js.map +1 -1
- package/dist/cli/commands/view.d.ts +4 -0
- package/dist/cli/commands/view.d.ts.map +1 -1
- package/dist/cli/commands/view.js +29 -24
- package/dist/cli/commands/view.js.map +1 -1
- package/dist/cli/index.js +22 -4
- package/dist/cli/index.js.map +1 -1
- package/dist/constants.d.ts +254 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +320 -0
- package/dist/constants.js.map +1 -0
- package/dist/core/analyzer/artifact-generator.d.ts +8 -0
- package/dist/core/analyzer/artifact-generator.d.ts.map +1 -1
- package/dist/core/analyzer/artifact-generator.js +59 -11
- package/dist/core/analyzer/artifact-generator.js.map +1 -1
- package/dist/core/analyzer/call-graph.d.ts.map +1 -1
- package/dist/core/analyzer/call-graph.js +135 -1
- package/dist/core/analyzer/call-graph.js.map +1 -1
- package/dist/core/analyzer/dependency-graph.d.ts +32 -0
- package/dist/core/analyzer/dependency-graph.d.ts.map +1 -1
- package/dist/core/analyzer/dependency-graph.js +104 -10
- package/dist/core/analyzer/dependency-graph.js.map +1 -1
- package/dist/core/analyzer/duplicate-detector.d.ts.map +1 -1
- package/dist/core/analyzer/duplicate-detector.js +4 -0
- package/dist/core/analyzer/duplicate-detector.js.map +1 -1
- package/dist/core/analyzer/embedding-service.d.ts +6 -0
- package/dist/core/analyzer/embedding-service.d.ts.map +1 -1
- package/dist/core/analyzer/embedding-service.js +15 -1
- package/dist/core/analyzer/embedding-service.js.map +1 -1
- package/dist/core/analyzer/file-walker.d.ts.map +1 -1
- package/dist/core/analyzer/file-walker.js +4 -3
- package/dist/core/analyzer/file-walker.js.map +1 -1
- package/dist/core/analyzer/http-route-parser.d.ts +111 -0
- package/dist/core/analyzer/http-route-parser.d.ts.map +1 -0
- package/dist/core/analyzer/http-route-parser.js +466 -0
- package/dist/core/analyzer/http-route-parser.js.map +1 -0
- package/dist/core/analyzer/import-parser.d.ts.map +1 -1
- package/dist/core/analyzer/import-parser.js +19 -5
- package/dist/core/analyzer/import-parser.js.map +1 -1
- package/dist/core/analyzer/refactor-analyzer.d.ts.map +1 -1
- package/dist/core/analyzer/refactor-analyzer.js +8 -7
- package/dist/core/analyzer/refactor-analyzer.js.map +1 -1
- package/dist/core/analyzer/repository-mapper.d.ts.map +1 -1
- package/dist/core/analyzer/repository-mapper.js +12 -13
- package/dist/core/analyzer/repository-mapper.js.map +1 -1
- package/dist/core/analyzer/signature-extractor.d.ts +1 -1
- package/dist/core/analyzer/signature-extractor.d.ts.map +1 -1
- package/dist/core/analyzer/signature-extractor.js +69 -1
- package/dist/core/analyzer/signature-extractor.js.map +1 -1
- package/dist/core/analyzer/spec-vector-index.d.ts.map +1 -1
- package/dist/core/analyzer/spec-vector-index.js +4 -3
- package/dist/core/analyzer/spec-vector-index.js.map +1 -1
- package/dist/core/analyzer/vector-index.d.ts.map +1 -1
- package/dist/core/analyzer/vector-index.js +29 -1
- package/dist/core/analyzer/vector-index.js.map +1 -1
- package/dist/core/drift/drift-detector.d.ts.map +1 -1
- package/dist/core/drift/drift-detector.js +7 -6
- package/dist/core/drift/drift-detector.js.map +1 -1
- package/dist/core/drift/git-diff.d.ts.map +1 -1
- package/dist/core/drift/git-diff.js +28 -16
- package/dist/core/drift/git-diff.js.map +1 -1
- package/dist/core/generator/mapping-generator.d.ts.map +1 -1
- package/dist/core/generator/mapping-generator.js +11 -10
- package/dist/core/generator/mapping-generator.js.map +1 -1
- package/dist/core/generator/openspec-compat.d.ts.map +1 -1
- package/dist/core/generator/openspec-compat.js +3 -2
- package/dist/core/generator/openspec-compat.js.map +1 -1
- package/dist/core/generator/openspec-format-generator.js.map +1 -1
- package/dist/core/generator/openspec-writer.d.ts +0 -4
- package/dist/core/generator/openspec-writer.d.ts.map +1 -1
- package/dist/core/generator/openspec-writer.js +30 -41
- package/dist/core/generator/openspec-writer.js.map +1 -1
- package/dist/core/generator/spec-pipeline.d.ts.map +1 -1
- package/dist/core/generator/spec-pipeline.js +4 -4
- package/dist/core/generator/spec-pipeline.js.map +1 -1
- package/dist/core/generator/stages/stage1-survey.d.ts.map +1 -1
- package/dist/core/generator/stages/stage1-survey.js +5 -3
- package/dist/core/generator/stages/stage1-survey.js.map +1 -1
- package/dist/core/generator/stages/stage2-entities.d.ts.map +1 -1
- package/dist/core/generator/stages/stage2-entities.js +10 -9
- package/dist/core/generator/stages/stage2-entities.js.map +1 -1
- package/dist/core/generator/stages/stage3-services.d.ts.map +1 -1
- package/dist/core/generator/stages/stage3-services.js +9 -8
- package/dist/core/generator/stages/stage3-services.js.map +1 -1
- package/dist/core/generator/stages/stage4-api.d.ts.map +1 -1
- package/dist/core/generator/stages/stage4-api.js +10 -9
- package/dist/core/generator/stages/stage4-api.js.map +1 -1
- package/dist/core/generator/stages/stage5-architecture.d.ts.map +1 -1
- package/dist/core/generator/stages/stage5-architecture.js +5 -4
- package/dist/core/generator/stages/stage5-architecture.js.map +1 -1
- package/dist/core/generator/stages/stage6-adr.d.ts.map +1 -1
- package/dist/core/generator/stages/stage6-adr.js +7 -2
- package/dist/core/generator/stages/stage6-adr.js.map +1 -1
- package/dist/core/services/chat-agent.d.ts.map +1 -1
- package/dist/core/services/chat-agent.js +46 -15
- package/dist/core/services/chat-agent.js.map +1 -1
- package/dist/core/services/config-manager.d.ts.map +1 -1
- package/dist/core/services/config-manager.js +32 -26
- package/dist/core/services/config-manager.js.map +1 -1
- package/dist/core/services/gitignore-manager.d.ts.map +1 -1
- package/dist/core/services/gitignore-manager.js +2 -13
- package/dist/core/services/gitignore-manager.js.map +1 -1
- package/dist/core/services/llm-service.d.ts.map +1 -1
- package/dist/core/services/llm-service.js +33 -35
- package/dist/core/services/llm-service.js.map +1 -1
- package/dist/core/services/mcp-handlers/analysis.d.ts.map +1 -1
- package/dist/core/services/mcp-handlers/analysis.js +23 -14
- package/dist/core/services/mcp-handlers/analysis.js.map +1 -1
- package/dist/core/services/mcp-handlers/graph.d.ts.map +1 -1
- package/dist/core/services/mcp-handlers/graph.js +24 -23
- package/dist/core/services/mcp-handlers/graph.js.map +1 -1
- package/dist/core/services/mcp-handlers/semantic.d.ts +1 -1
- package/dist/core/services/mcp-handlers/semantic.d.ts.map +1 -1
- package/dist/core/services/mcp-handlers/semantic.js +17 -16
- package/dist/core/services/mcp-handlers/semantic.js.map +1 -1
- package/dist/core/services/mcp-handlers/utils.d.ts.map +1 -1
- package/dist/core/services/mcp-handlers/utils.js +4 -3
- package/dist/core/services/mcp-handlers/utils.js.map +1 -1
- package/dist/core/services/project-detector.d.ts.map +1 -1
- package/dist/core/services/project-detector.js +2 -13
- package/dist/core/services/project-detector.js.map +1 -1
- package/dist/core/verifier/verification-engine.d.ts +9 -3
- package/dist/core/verifier/verification-engine.d.ts.map +1 -1
- package/dist/core/verifier/verification-engine.js +25 -13
- package/dist/core/verifier/verification-engine.js.map +1 -1
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/command-helpers.d.ts +38 -0
- package/dist/utils/command-helpers.d.ts.map +1 -0
- package/dist/utils/command-helpers.js +82 -0
- package/dist/utils/command-helpers.js.map +1 -0
- package/dist/utils/errors.d.ts.map +1 -1
- package/dist/utils/errors.js +4 -3
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +14 -3
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/progress.d.ts +1 -1
- package/dist/utils/progress.d.ts.map +1 -1
- package/dist/utils/progress.js +15 -12
- package/dist/utils/progress.js.map +1 -1
- package/dist/utils/shutdown.d.ts.map +1 -1
- package/dist/utils/shutdown.js +4 -3
- package/dist/utils/shutdown.js.map +1 -1
- package/package.json +9 -5
- package/src/viewer/InteractiveGraphViewer.jsx +182 -139
- package/src/viewer/components/ArchitectureView.jsx +19 -19
- package/src/viewer/components/ChatPanel.jsx +40 -40
- package/src/viewer/components/ClusterGraph.jsx +34 -22
- package/src/viewer/components/FilterBar.jsx +26 -26
- package/src/viewer/components/FlatGraph.jsx +22 -15
- package/src/viewer/components/MicroComponents.jsx +14 -12
- package/src/viewer/utils/constants.js +17 -0
- package/src/viewer/utils/graph-helpers.js +7 -3
- package/src/viewer/utils/graph-helpers.test.ts +39 -0
- package/src/viewer/utils/themes.js +170 -0
|
@@ -5,5 +5,9 @@
|
|
|
5
5
|
* then opens the user's browser.
|
|
6
6
|
*/
|
|
7
7
|
import { Command } from 'commander';
|
|
8
|
+
/** Strip internal filesystem paths and API keys from error messages before sending to clients. */
|
|
9
|
+
export declare function sanitizeErrorMessage(msg: string): string;
|
|
10
|
+
/** Ensure a resolved path stays within the project root. Returns null if invalid. */
|
|
11
|
+
export declare function safePath(rootPath: string, userPath: string): string | null;
|
|
8
12
|
export declare const viewCommand: Command;
|
|
9
13
|
//# sourceMappingURL=view.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/view.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/view.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2BpC,kGAAkG;AAClG,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAUxD;AAED,qFAAqF;AACrF,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAO1E;AAYD,eAAO,MAAM,WAAW,SA+frB,CAAC"}
|
|
@@ -5,22 +5,21 @@
|
|
|
5
5
|
* then opens the user's browser.
|
|
6
6
|
*/
|
|
7
7
|
import { Command } from 'commander';
|
|
8
|
-
import { existsSync } from 'node:fs';
|
|
9
8
|
import { readFile } from 'node:fs/promises';
|
|
9
|
+
import { fileExists } from '../../utils/command-helpers.js';
|
|
10
10
|
import { createServer } from 'vite';
|
|
11
11
|
import react from '@vitejs/plugin-react';
|
|
12
12
|
import { join, resolve, sep } from 'node:path';
|
|
13
13
|
import { spawn } from 'node:child_process';
|
|
14
14
|
import { fileURLToPath } from 'node:url';
|
|
15
15
|
import { logger } from '../../utils/logger.js';
|
|
16
|
+
import { MAX_QUERY_LENGTH, MAX_CHAT_BODY_BYTES, DEFAULT_VIEWER_PORT, DEFAULT_VIEWER_HOST, SPEC_GEN_ANALYSIS_REL_PATH, OPENSPEC_DIR, OPENSPEC_SPECS_SUBDIR, ARTIFACT_DEPENDENCY_GRAPH, ARTIFACT_LLM_CONTEXT, ARTIFACT_REFACTOR_PRIORITIES, ARTIFACT_MAPPING, } from '../../constants.js';
|
|
16
17
|
import { VectorIndex } from '../../core/analyzer/vector-index.js';
|
|
17
18
|
import { EmbeddingService } from '../../core/analyzer/embedding-service.js';
|
|
18
19
|
import { getSkeletonContent, detectLanguage } from '../../core/analyzer/code-shaper.js';
|
|
19
20
|
import { runChatAgent, resolveProviderConfig } from '../../core/services/chat-agent.js';
|
|
20
|
-
const MAX_QUERY_LENGTH = 1000;
|
|
21
|
-
const MAX_CHAT_BODY_BYTES = 512 * 1024; // 512 KB limit for chat requests
|
|
22
21
|
/** Strip internal filesystem paths and API keys from error messages before sending to clients. */
|
|
23
|
-
function sanitizeErrorMessage(msg) {
|
|
22
|
+
export function sanitizeErrorMessage(msg) {
|
|
24
23
|
return msg
|
|
25
24
|
.replace(/\/Users\/[^\s:]+/g, '[path]')
|
|
26
25
|
.replace(/\/home\/[^\s:]+/g, '[path]')
|
|
@@ -32,7 +31,7 @@ function sanitizeErrorMessage(msg) {
|
|
|
32
31
|
.replace(/x-api-key:\s*\S{10,}/gi, 'x-api-key: [REDACTED]');
|
|
33
32
|
}
|
|
34
33
|
/** Ensure a resolved path stays within the project root. Returns null if invalid. */
|
|
35
|
-
function safePath(rootPath, userPath) {
|
|
34
|
+
export function safePath(rootPath, userPath) {
|
|
36
35
|
const root = resolve(rootPath);
|
|
37
36
|
const abs = resolve(rootPath, userPath);
|
|
38
37
|
if (abs !== root && !abs.startsWith(root + sep)) {
|
|
@@ -49,20 +48,20 @@ function openBrowser(url) {
|
|
|
49
48
|
}
|
|
50
49
|
export const viewCommand = new Command('view')
|
|
51
50
|
.description('Start an interactive graph viewer (React) for .spec-gen/analysis')
|
|
52
|
-
.option('--analysis <path>', 'Path to analysis directory',
|
|
53
|
-
.option('--spec <path>', 'Path to spec files directory',
|
|
54
|
-
.option('--port <n>', 'Port to run the viewer on',
|
|
55
|
-
.option('--host <host>', 'Host to bind (use 0.0.0.0 for LAN)',
|
|
51
|
+
.option('--analysis <path>', 'Path to analysis directory', `${SPEC_GEN_ANALYSIS_REL_PATH}/`)
|
|
52
|
+
.option('--spec <path>', 'Path to spec files directory', `./${OPENSPEC_DIR}/${OPENSPEC_SPECS_SUBDIR}/`)
|
|
53
|
+
.option('--port <n>', 'Port to run the viewer on', String(DEFAULT_VIEWER_PORT))
|
|
54
|
+
.option('--host <host>', 'Host to bind (use 0.0.0.0 for LAN)', DEFAULT_VIEWER_HOST)
|
|
56
55
|
.option('--no-open', 'Do not open the browser automatically', false)
|
|
57
56
|
.action(async (options) => {
|
|
58
57
|
const rootPath = process.cwd();
|
|
59
58
|
const analysisDir = resolve(rootPath, options.analysis);
|
|
60
|
-
const graphPath = join(analysisDir,
|
|
61
|
-
const llmContextPath = join(analysisDir,
|
|
62
|
-
const refactorPath = join(analysisDir,
|
|
63
|
-
const mappingPath = join(analysisDir,
|
|
59
|
+
const graphPath = join(analysisDir, ARTIFACT_DEPENDENCY_GRAPH);
|
|
60
|
+
const llmContextPath = join(analysisDir, ARTIFACT_LLM_CONTEXT);
|
|
61
|
+
const refactorPath = join(analysisDir, ARTIFACT_REFACTOR_PRIORITIES);
|
|
62
|
+
const mappingPath = join(analysisDir, ARTIFACT_MAPPING);
|
|
64
63
|
const specDir = resolve(rootPath, options.spec);
|
|
65
|
-
if (!
|
|
64
|
+
if (!(await fileExists(graphPath))) {
|
|
66
65
|
logger.error(`Missing graph file: ${graphPath}`);
|
|
67
66
|
logger.info('Tip', 'Run "spec-gen analyze" first (or pass --analysis)');
|
|
68
67
|
process.exitCode = 1;
|
|
@@ -71,14 +70,20 @@ export const viewCommand = new Command('view')
|
|
|
71
70
|
const here = fileURLToPath(new URL('.', import.meta.url));
|
|
72
71
|
const candidateA = resolve(join(here, '../../viewer/app')); // when running from src/cli/commands
|
|
73
72
|
const candidateB = resolve(join(here, '../../../src/viewer/app')); // when running from dist/cli/commands
|
|
74
|
-
const viewerRoot =
|
|
75
|
-
if (!
|
|
73
|
+
const viewerRoot = await fileExists(join(candidateA, 'index.html')) ? candidateA : candidateB;
|
|
74
|
+
if (!(await fileExists(join(viewerRoot, 'index.html')))) {
|
|
76
75
|
logger.error(`Viewer assets not found (expected index.html). Tried: ${candidateA} and ${candidateB}`);
|
|
77
76
|
process.exitCode = 1;
|
|
78
77
|
return;
|
|
79
78
|
}
|
|
80
|
-
const
|
|
81
|
-
|
|
79
|
+
const parsedPort = Number.parseInt(options.port, 10);
|
|
80
|
+
if (options.port && (isNaN(parsedPort) || parsedPort < 1 || parsedPort > 65535)) {
|
|
81
|
+
logger.error('--port must be a number between 1 and 65535');
|
|
82
|
+
process.exitCode = 1;
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
const port = isNaN(parsedPort) ? DEFAULT_VIEWER_PORT : parsedPort;
|
|
86
|
+
const host = options.host || DEFAULT_VIEWER_HOST;
|
|
82
87
|
logger.section('Starting Graph Viewer');
|
|
83
88
|
logger.info('Analysis', analysisDir);
|
|
84
89
|
logger.info('Graph', graphPath);
|
|
@@ -104,7 +109,7 @@ export const viewCommand = new Command('view')
|
|
|
104
109
|
});
|
|
105
110
|
devServer.middlewares.use('/api/llm-context', async (_req, res) => {
|
|
106
111
|
try {
|
|
107
|
-
if (!
|
|
112
|
+
if (!(await fileExists(llmContextPath))) {
|
|
108
113
|
res.statusCode = 404;
|
|
109
114
|
res.end(JSON.stringify({ error: 'llm-context.json not found' }));
|
|
110
115
|
return;
|
|
@@ -121,7 +126,7 @@ export const viewCommand = new Command('view')
|
|
|
121
126
|
});
|
|
122
127
|
devServer.middlewares.use('/api/refactor-priorities', async (_req, res) => {
|
|
123
128
|
try {
|
|
124
|
-
if (!
|
|
129
|
+
if (!(await fileExists(refactorPath))) {
|
|
125
130
|
res.statusCode = 404;
|
|
126
131
|
res.end(JSON.stringify({ error: 'refactor-priorities.json not found' }));
|
|
127
132
|
return;
|
|
@@ -138,7 +143,7 @@ export const viewCommand = new Command('view')
|
|
|
138
143
|
});
|
|
139
144
|
devServer.middlewares.use('/api/mapping', async (_req, res) => {
|
|
140
145
|
try {
|
|
141
|
-
if (!
|
|
146
|
+
if (!(await fileExists(mappingPath))) {
|
|
142
147
|
res.statusCode = 404;
|
|
143
148
|
res.end(JSON.stringify({ error: 'mapping.json not found' }));
|
|
144
149
|
return;
|
|
@@ -155,7 +160,7 @@ export const viewCommand = new Command('view')
|
|
|
155
160
|
});
|
|
156
161
|
devServer.middlewares.use('/api/spec', async (_req, res) => {
|
|
157
162
|
try {
|
|
158
|
-
if (!
|
|
163
|
+
if (!(await fileExists(specDir))) {
|
|
159
164
|
res.statusCode = 404;
|
|
160
165
|
res.end(JSON.stringify({ error: 'spec directory not found' }));
|
|
161
166
|
return;
|
|
@@ -206,7 +211,7 @@ export const viewCommand = new Command('view')
|
|
|
206
211
|
});
|
|
207
212
|
devServer.middlewares.use('/api/spec-requirements', async (_req, res) => {
|
|
208
213
|
try {
|
|
209
|
-
if (!
|
|
214
|
+
if (!(await fileExists(mappingPath))) {
|
|
210
215
|
res.statusCode = 404;
|
|
211
216
|
res.end(JSON.stringify({ error: 'mapping.json not found' }));
|
|
212
217
|
return;
|
|
@@ -224,7 +229,7 @@ export const viewCommand = new Command('view')
|
|
|
224
229
|
if (!specFileRel || !reqName)
|
|
225
230
|
continue;
|
|
226
231
|
const specFileAbs = safePath(rootPath, specFileRel);
|
|
227
|
-
if (!specFileAbs || !
|
|
232
|
+
if (!specFileAbs || !(await fileExists(specFileAbs)))
|
|
228
233
|
continue;
|
|
229
234
|
try {
|
|
230
235
|
const content = await readFile(specFileAbs, 'utf-8');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view.js","sourceRoot":"","sources":["../../../src/cli/commands/view.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"view.js","sourceRoot":"","sources":["../../../src/cli/commands/view.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.js
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
* Philosophy: "Archaeology over Creativity" — Extract the truth of what code does.
|
|
7
7
|
*/
|
|
8
8
|
import { Command } from 'commander';
|
|
9
|
+
import { createRequire } from 'node:module';
|
|
9
10
|
import { initCommand } from './commands/init.js';
|
|
10
11
|
import { analyzeCommand } from './commands/analyze.js';
|
|
11
12
|
import { generateCommand } from './commands/generate.js';
|
|
@@ -14,7 +15,11 @@ import { driftCommand } from './commands/drift.js';
|
|
|
14
15
|
import { runCommand } from './commands/run.js';
|
|
15
16
|
import { mcpCommand } from './commands/mcp.js';
|
|
16
17
|
import { viewCommand } from './commands/view.js';
|
|
18
|
+
import { doctorCommand } from './commands/doctor.js';
|
|
17
19
|
import { configureLogger } from '../utils/logger.js';
|
|
20
|
+
// Read version from package.json at runtime so it never drifts from the published version
|
|
21
|
+
const require = createRequire(import.meta.url);
|
|
22
|
+
const { version } = require('../../package.json');
|
|
18
23
|
const program = new Command();
|
|
19
24
|
// Hook to configure logger before any command runs
|
|
20
25
|
program.hook('preAction', (thisCommand) => {
|
|
@@ -25,13 +30,22 @@ program.hook('preAction', (thisCommand) => {
|
|
|
25
30
|
noColor: opts.color === false,
|
|
26
31
|
timestamps: process.env.CI === 'true' || opts.color === false,
|
|
27
32
|
});
|
|
33
|
+
// Warn when SSL verification is disabled — it's a security trade-off
|
|
34
|
+
if (opts.insecure) {
|
|
35
|
+
process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';
|
|
36
|
+
// Only print if we're not in quiet mode
|
|
37
|
+
if (!opts.quiet) {
|
|
38
|
+
process.stderr.write('\x1b[33m[warn]\x1b[0m --insecure: SSL certificate verification is disabled. ' +
|
|
39
|
+
'Only use this on trusted networks.\n');
|
|
40
|
+
}
|
|
41
|
+
}
|
|
28
42
|
});
|
|
29
43
|
program
|
|
30
44
|
.name('spec-gen')
|
|
31
45
|
.description('Reverse-engineer OpenSpec specifications from existing codebases.\n\n' +
|
|
32
46
|
'Philosophy: "Archaeology over Creativity" — We extract the truth of what\n' +
|
|
33
47
|
'code does, grounded in static analysis, not LLM hallucinations.')
|
|
34
|
-
.version(
|
|
48
|
+
.version(version)
|
|
35
49
|
.option('-q, --quiet', 'Minimal output (errors only)', false)
|
|
36
50
|
.option('-v, --verbose', 'Show debug information', false)
|
|
37
51
|
.option('--no-color', 'Disable colored output (also enables timestamps)')
|
|
@@ -43,9 +57,9 @@ Workflow:
|
|
|
43
57
|
1. spec-gen init Detect project type, create config
|
|
44
58
|
2. spec-gen analyze Scan codebase, build dependency graph
|
|
45
59
|
3. spec-gen view Review visually the dependency graph
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
60
|
+
4. spec-gen generate Create OpenSpec files using LLM
|
|
61
|
+
5. spec-gen verify Validate specs against source code
|
|
62
|
+
6. spec-gen drift Detect when code outpaces specs
|
|
49
63
|
|
|
50
64
|
Quick start:
|
|
51
65
|
$ cd your-project
|
|
@@ -57,6 +71,9 @@ Quick start:
|
|
|
57
71
|
Or run the full pipeline at once:
|
|
58
72
|
$ spec-gen run
|
|
59
73
|
|
|
74
|
+
Troubleshoot your setup:
|
|
75
|
+
$ spec-gen doctor
|
|
76
|
+
|
|
60
77
|
Output integrates with OpenSpec ecosystem:
|
|
61
78
|
openspec/
|
|
62
79
|
├── config.yaml
|
|
@@ -79,5 +96,6 @@ program.addCommand(driftCommand);
|
|
|
79
96
|
program.addCommand(runCommand);
|
|
80
97
|
program.addCommand(mcpCommand);
|
|
81
98
|
program.addCommand(viewCommand);
|
|
99
|
+
program.addCommand(doctorCommand);
|
|
82
100
|
program.parse();
|
|
83
101
|
//# sourceMappingURL=index.js.map
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,mDAAmD;AACnD,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,WAAW,EAAE,EAAE;IACxC,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared constants for spec-gen
|
|
3
|
+
*
|
|
4
|
+
* Centralises magic numbers so they're easy to find, reason about, and change.
|
|
5
|
+
*/
|
|
6
|
+
/** Hidden directory where spec-gen stores its state */
|
|
7
|
+
export declare const SPEC_GEN_DIR = ".spec-gen";
|
|
8
|
+
/** Analysis artifacts sub-directory */
|
|
9
|
+
export declare const SPEC_GEN_ANALYSIS_SUBDIR = "analysis";
|
|
10
|
+
/** LLM log sub-directory */
|
|
11
|
+
export declare const SPEC_GEN_LOGS_SUBDIR = "logs";
|
|
12
|
+
/** Verification reports sub-directory */
|
|
13
|
+
export declare const SPEC_GEN_VERIFICATION_SUBDIR = "verification";
|
|
14
|
+
/** Generation outputs sub-directory */
|
|
15
|
+
export declare const SPEC_GEN_OUTPUTS_SUBDIR = "outputs";
|
|
16
|
+
/** Spec backups sub-directory */
|
|
17
|
+
export declare const SPEC_GEN_BACKUPS_SUBDIR = "backups";
|
|
18
|
+
/** Generation intermediate files sub-directory */
|
|
19
|
+
export declare const SPEC_GEN_GENERATION_SUBDIR = "generation";
|
|
20
|
+
/** Run metadata sub-directory */
|
|
21
|
+
export declare const SPEC_GEN_RUNS_SUBDIR = "runs";
|
|
22
|
+
/** Config file name inside SPEC_GEN_DIR */
|
|
23
|
+
export declare const SPEC_GEN_CONFIG_FILENAME = "config.json";
|
|
24
|
+
/** Relative path to the spec-gen config file */
|
|
25
|
+
export declare const SPEC_GEN_CONFIG_REL_PATH = ".spec-gen/config.json";
|
|
26
|
+
/** Relative path to the analysis output directory */
|
|
27
|
+
export declare const SPEC_GEN_ANALYSIS_REL_PATH = ".spec-gen/analysis";
|
|
28
|
+
/** Default openspec root directory name */
|
|
29
|
+
export declare const OPENSPEC_DIR = "openspec";
|
|
30
|
+
/** Default relative path used when creating a new openspec directory */
|
|
31
|
+
export declare const DEFAULT_OPENSPEC_PATH = "./openspec";
|
|
32
|
+
/** Default openspec specs sub-directory */
|
|
33
|
+
export declare const OPENSPEC_SPECS_SUBDIR = "specs";
|
|
34
|
+
/** Default openspec decisions sub-directory */
|
|
35
|
+
export declare const OPENSPEC_DECISIONS_SUBDIR = "decisions";
|
|
36
|
+
/** Config file name inside the openspec directory */
|
|
37
|
+
export declare const OPENSPEC_CONFIG_FILENAME = "config.yaml";
|
|
38
|
+
/** Filename for the repository structure artifact */
|
|
39
|
+
export declare const ARTIFACT_REPO_STRUCTURE = "repo-structure.json";
|
|
40
|
+
/** Filename for the dependency graph artifact */
|
|
41
|
+
export declare const ARTIFACT_DEPENDENCY_GRAPH = "dependency-graph.json";
|
|
42
|
+
/** Filename for the LLM context artifact */
|
|
43
|
+
export declare const ARTIFACT_LLM_CONTEXT = "llm-context.json";
|
|
44
|
+
/** Filename for the requirement mapping artifact */
|
|
45
|
+
export declare const ARTIFACT_MAPPING = "mapping.json";
|
|
46
|
+
/** Filename for the refactor priorities artifact */
|
|
47
|
+
export declare const ARTIFACT_REFACTOR_PRIORITIES = "refactor-priorities.json";
|
|
48
|
+
/** Filename for the repository map artifact (saved by RepositoryMapper) */
|
|
49
|
+
export declare const ARTIFACT_REPOSITORY_MAP = "repository-map.json";
|
|
50
|
+
/** Filename for the generation report saved to outputs/ */
|
|
51
|
+
export declare const ARTIFACT_GENERATION_REPORT = "generation-report.json";
|
|
52
|
+
/** Filename for the shutdown state file */
|
|
53
|
+
export declare const ARTIFACT_SHUTDOWN_STATE = "shutdown-state.json";
|
|
54
|
+
/** Default maximum context window for Claude models (tokens) */
|
|
55
|
+
export declare const CLAUDE_MAX_CONTEXT_TOKENS = 200000;
|
|
56
|
+
/** Default maximum context window for Mistral Vibe (tokens) */
|
|
57
|
+
export declare const MISTRAL_VIBE_MAX_CONTEXT_TOKENS = 128000;
|
|
58
|
+
/** Default maximum output tokens for Claude models */
|
|
59
|
+
export declare const CLAUDE_MAX_OUTPUT_TOKENS = 16000;
|
|
60
|
+
/** Default maximum output tokens for Mistral Vibe */
|
|
61
|
+
export declare const MISTRAL_VIBE_MAX_OUTPUT_TOKENS = 4096;
|
|
62
|
+
/** Maximum buffer size for LLM CLI output (bytes) — 50 MB */
|
|
63
|
+
export declare const LLM_CLI_MAX_BUFFER_BYTES: number;
|
|
64
|
+
/** Timeout for LLM CLI calls (ms) — 5 minutes */
|
|
65
|
+
export declare const LLM_CLI_TIMEOUT_MS = 300000;
|
|
66
|
+
/** Default maximum number of files to include in analysis */
|
|
67
|
+
export declare const DEFAULT_MAX_FILES = 500;
|
|
68
|
+
/** Default maximum number of changed files to check in drift detection */
|
|
69
|
+
export declare const DEFAULT_DRIFT_MAX_FILES = 100;
|
|
70
|
+
/** How old (ms) an analysis can be before being considered stale (1 hour) */
|
|
71
|
+
export declare const ANALYSIS_STALE_THRESHOLD_MS: number;
|
|
72
|
+
/** How old (ms) an analysis can be before being re-used in 'run' (1 hour) */
|
|
73
|
+
export declare const ANALYSIS_REUSE_THRESHOLD_MS: number;
|
|
74
|
+
/** Default port for the Vite viewer server */
|
|
75
|
+
export declare const DEFAULT_VIEWER_PORT = 5173;
|
|
76
|
+
/** Default host for the Vite viewer server */
|
|
77
|
+
export declare const DEFAULT_VIEWER_HOST = "127.0.0.1";
|
|
78
|
+
/** Maximum allowed chat request body size (bytes) — 512 KB */
|
|
79
|
+
export declare const MAX_CHAT_BODY_BYTES: number;
|
|
80
|
+
/** Maximum search query length (characters) */
|
|
81
|
+
export declare const MAX_QUERY_LENGTH = 1000;
|
|
82
|
+
/** Estimated system prompt overhead per LLM call (tokens) */
|
|
83
|
+
export declare const LLM_SYSTEM_PROMPT_OVERHEAD_TOKENS = 500;
|
|
84
|
+
/** Estimated output / input token ratio for spec generation tasks */
|
|
85
|
+
export declare const GENERATION_OUTPUT_RATIO = 0.4;
|
|
86
|
+
export declare const DEFAULT_ANTHROPIC_MODEL = "claude-sonnet-4-20250514";
|
|
87
|
+
export declare const DEFAULT_OPENAI_MODEL = "gpt-4o";
|
|
88
|
+
export declare const DEFAULT_OPENAI_COMPAT_MODEL = "mistral-large-latest";
|
|
89
|
+
export declare const DEFAULT_GEMINI_MODEL = "gemini-2.0-flash";
|
|
90
|
+
/** Lighter model used for interactive chat (lower cost, faster) */
|
|
91
|
+
export declare const DEFAULT_CHAT_OPENAI_MODEL = "gpt-4o-mini";
|
|
92
|
+
/** Minimum Node.js major version required */
|
|
93
|
+
export declare const MIN_NODE_MAJOR_VERSION = 20;
|
|
94
|
+
/** Analysis age (hours) beyond which doctor warns it may be stale */
|
|
95
|
+
export declare const ANALYSIS_AGE_WARNING_HOURS = 24;
|
|
96
|
+
/** Minimum available disk space (MB) before doctor reports failure */
|
|
97
|
+
export declare const MIN_DISK_SPACE_FAIL_MB = 200;
|
|
98
|
+
/** Minimum available disk space (MB) before doctor reports a warning */
|
|
99
|
+
export declare const MIN_DISK_SPACE_WARN_MB = 500;
|
|
100
|
+
/** Default maximum number of retries for LLM API calls */
|
|
101
|
+
export declare const DEFAULT_LLM_MAX_RETRIES = 3;
|
|
102
|
+
/** Default initial retry delay (ms) */
|
|
103
|
+
export declare const DEFAULT_LLM_INITIAL_DELAY_MS = 1000;
|
|
104
|
+
/** Default maximum retry delay (ms) */
|
|
105
|
+
export declare const DEFAULT_LLM_MAX_DELAY_MS = 30000;
|
|
106
|
+
/** Default timeout for LLM API calls (ms) — 2 minutes */
|
|
107
|
+
export declare const DEFAULT_LLM_TIMEOUT_MS = 120000;
|
|
108
|
+
/** Default cost warning threshold (USD) */
|
|
109
|
+
export declare const DEFAULT_LLM_COST_WARNING_THRESHOLD = 10;
|
|
110
|
+
/** Fraction of max context tokens at which a warning is emitted */
|
|
111
|
+
export declare const CONTEXT_LIMIT_WARNING_RATIO = 0.9;
|
|
112
|
+
/** Maximum characters of diff content passed to LLM context */
|
|
113
|
+
export declare const DIFF_MAX_CHARS = 4000;
|
|
114
|
+
/** Stage 1 (project survey) max output tokens */
|
|
115
|
+
export declare const STAGE1_MAX_TOKENS = 3000;
|
|
116
|
+
/** Stage 2 (entity extraction) max output tokens per file chunk */
|
|
117
|
+
export declare const STAGE2_MAX_TOKENS = 4000;
|
|
118
|
+
/** Stage 3 (service analysis) max output tokens per file chunk */
|
|
119
|
+
export declare const STAGE3_MAX_TOKENS = 4000;
|
|
120
|
+
/** Stage 4 (API extraction) max output tokens per file chunk */
|
|
121
|
+
export declare const STAGE4_MAX_TOKENS = 4000;
|
|
122
|
+
/** Stage 5 (architecture synthesis) max output tokens */
|
|
123
|
+
export declare const STAGE5_MAX_TOKENS = 3000;
|
|
124
|
+
/** Stage 6 (ADR enrichment) max output tokens */
|
|
125
|
+
export declare const STAGE6_MAX_TOKENS = 5000;
|
|
126
|
+
/** Max file content characters passed per chunk to stages 2–4 */
|
|
127
|
+
export declare const STAGE_CHUNK_MAX_CHARS = 8000;
|
|
128
|
+
/** Max characters of skeleton excerpt appended to graph prompt */
|
|
129
|
+
export declare const SKELETON_EXCERPT_MAX_CHARS = 4000;
|
|
130
|
+
/** Verification engine: max tokens for file-purpose prediction */
|
|
131
|
+
export declare const VERIFICATION_PREDICTION_MAX_TOKENS = 1000;
|
|
132
|
+
/** Drift detector: max tokens for LLM change classification */
|
|
133
|
+
export declare const DRIFT_CLASSIFICATION_MAX_TOKENS = 200;
|
|
134
|
+
/** Max output tokens for chat agent turns (Anthropic) */
|
|
135
|
+
export declare const CHAT_AGENT_MAX_TOKENS = 4096;
|
|
136
|
+
/** Characters of API error body included in error messages */
|
|
137
|
+
export declare const API_ERROR_PREVIEW_LENGTH = 300;
|
|
138
|
+
/** Fallback estimated tokens for the project survey phase when not yet computed */
|
|
139
|
+
export declare const DEFAULT_SURVEY_ESTIMATED_TOKENS = 2000;
|
|
140
|
+
/** Max high-value files retained after scoring */
|
|
141
|
+
export declare const HIGH_VALUE_FILES_LIMIT = 50;
|
|
142
|
+
/** Max high-value files shown in text summary */
|
|
143
|
+
export declare const HIGH_VALUE_FILES_PREVIEW_LIMIT = 20;
|
|
144
|
+
/** Max entry points shown in text summary */
|
|
145
|
+
export declare const ENTRY_POINTS_PREVIEW_LIMIT = 10;
|
|
146
|
+
/** Max languages shown in text summary */
|
|
147
|
+
export declare const LANGUAGES_PREVIEW_LIMIT = 10;
|
|
148
|
+
/** Max directories shown in text summary */
|
|
149
|
+
export declare const DIRECTORIES_PREVIEW_LIMIT = 15;
|
|
150
|
+
/** Risk score weight for fan-in (callers) */
|
|
151
|
+
export declare const RISK_SCORE_FAN_IN_WEIGHT = 4;
|
|
152
|
+
/** Risk score weight for fan-out (callees) */
|
|
153
|
+
export declare const RISK_SCORE_FAN_OUT_WEIGHT = 2;
|
|
154
|
+
/** Risk score bonus when the node is a hub */
|
|
155
|
+
export declare const RISK_SCORE_HUB_BONUS = 20;
|
|
156
|
+
/** Risk score weight for blast radius */
|
|
157
|
+
export declare const RISK_SCORE_BLAST_RADIUS_WEIGHT = 1.5;
|
|
158
|
+
/** Risk score at or below which a function is considered low-risk */
|
|
159
|
+
export declare const RISK_SCORE_LOW_THRESHOLD = 20;
|
|
160
|
+
/** Risk score at or below which a function is considered medium-risk */
|
|
161
|
+
export declare const RISK_SCORE_MEDIUM_THRESHOLD = 45;
|
|
162
|
+
/** Fan-out at or above which a function is treated as a god-function */
|
|
163
|
+
export declare const GOD_FUNCTION_FAN_OUT_THRESHOLD = 8;
|
|
164
|
+
/** Fan-out threshold for SRP (single-responsibility) refactoring recommendation */
|
|
165
|
+
export declare const REFACTOR_SRP_FAN_OUT_THRESHOLD = 5;
|
|
166
|
+
/** Maximum fan-in for a node to be a low-risk refactor candidate */
|
|
167
|
+
export declare const LOW_RISK_MAX_FAN_IN = 2;
|
|
168
|
+
/** Maximum fan-out for a node to be a low-risk refactor candidate */
|
|
169
|
+
export declare const LOW_RISK_MAX_FAN_OUT = 3;
|
|
170
|
+
/** Default minimum fan-in to be classified as a critical hub */
|
|
171
|
+
export declare const CRITICAL_HUBS_DEFAULT_MIN_FAN_IN = 3;
|
|
172
|
+
/** Default subgraph traversal depth */
|
|
173
|
+
export declare const SUBGRAPH_DEFAULT_MAX_DEPTH = 3;
|
|
174
|
+
/** Maximum allowed subgraph traversal depth */
|
|
175
|
+
export declare const SUBGRAPH_MAX_DEPTH_LIMIT = 20;
|
|
176
|
+
/** Criticality score weight for fan-in */
|
|
177
|
+
export declare const CRITICALITY_FAN_IN_WEIGHT = 3;
|
|
178
|
+
/** Criticality score weight for fan-out */
|
|
179
|
+
export declare const CRITICALITY_FAN_OUT_WEIGHT = 1.5;
|
|
180
|
+
/** Criticality score bonus when a node has layer violations */
|
|
181
|
+
export declare const CRITICALITY_VIOLATION_BONUS = 10;
|
|
182
|
+
/** Fan-in at or above which a hub is treated as heavily depended-upon */
|
|
183
|
+
export declare const HUB_HIGH_FAN_IN_THRESHOLD = 8;
|
|
184
|
+
/** Fan-out at or above which a hub is treated as an orchestration-heavy god-function */
|
|
185
|
+
export declare const HUB_HIGH_FAN_OUT_THRESHOLD = 5;
|
|
186
|
+
/** Stability score at or above which a hub can be refactored now */
|
|
187
|
+
export declare const STABILITY_SCORE_CAN_REFACTOR = 60;
|
|
188
|
+
/** Stability score at or above which a hub can be refactored after stabilising deps */
|
|
189
|
+
export declare const STABILITY_SCORE_STABILISE_FIRST = 30;
|
|
190
|
+
/** Default number of refactor candidates to return */
|
|
191
|
+
export declare const LOW_RISK_REFACTOR_CANDIDATES_DEFAULT_LIMIT = 5;
|
|
192
|
+
/** Default number of leaf functions to return */
|
|
193
|
+
export declare const LEAF_FUNCTIONS_DEFAULT_LIMIT = 20;
|
|
194
|
+
/** Similarity score returned for containment matches (one name includes the other) */
|
|
195
|
+
export declare const SIMILARITY_CONTAINMENT_SCORE = 0.8;
|
|
196
|
+
/** Weight applied to Jaccard token-overlap similarity */
|
|
197
|
+
export declare const SIMILARITY_TOKEN_OVERLAP_WEIGHT = 0.7;
|
|
198
|
+
/** Minimum heuristic similarity score to include a function as a candidate match */
|
|
199
|
+
export declare const HEURISTIC_MATCH_MIN_SCORE = 0.7;
|
|
200
|
+
/** Maximum number of heuristic fallback matches returned per operation */
|
|
201
|
+
export declare const MAX_HEURISTIC_MATCHES_PER_OP = 2;
|
|
202
|
+
/** Max hub functions included in Stage 5 architecture prompt */
|
|
203
|
+
export declare const STAGE5_HUB_FUNCTIONS_LIMIT = 8;
|
|
204
|
+
/** Max entry points included in Stage 5 architecture prompt */
|
|
205
|
+
export declare const STAGE5_ENTRY_POINTS_LIMIT = 8;
|
|
206
|
+
/** Max layer violations included in Stage 5 architecture prompt */
|
|
207
|
+
export declare const STAGE5_VIOLATIONS_LIMIT = 5;
|
|
208
|
+
/** Approximate tokens per character used for LLM context token estimation (~4 chars/token) */
|
|
209
|
+
export declare const TOKENS_PER_CHAR_DEFAULT = 0.25;
|
|
210
|
+
/** Max characters of file content included per file in Phase 2 (deep analysis) */
|
|
211
|
+
export declare const PHASE2_FILE_CONTENT_MAX_CHARS = 10000;
|
|
212
|
+
/** Max characters of file content included per file in Phase 3 (validation) */
|
|
213
|
+
export declare const PHASE3_FILE_CONTENT_MAX_CHARS = 5000;
|
|
214
|
+
/** Max files shown in dependency diagram (Mermaid) */
|
|
215
|
+
export declare const DEPENDENCY_DIAGRAM_MAX_FILES = 30;
|
|
216
|
+
/** Max number of top refactor issues returned by analyze_codebase */
|
|
217
|
+
export declare const TOP_REFACTOR_ISSUES_LIMIT = 10;
|
|
218
|
+
/** Composite score semantic weight for suggest_insertion_points */
|
|
219
|
+
export declare const INSERTION_SEMANTIC_WEIGHT = 0.6;
|
|
220
|
+
/** Composite score structural weight for suggest_insertion_points */
|
|
221
|
+
export declare const INSERTION_STRUCTURAL_WEIGHT = 0.4;
|
|
222
|
+
/** Structural bonus scores per insertion role */
|
|
223
|
+
export declare const INSERTION_ROLE_BONUS_ENTRY_POINT = 1;
|
|
224
|
+
export declare const INSERTION_ROLE_BONUS_ORCHESTRATOR = 0.8;
|
|
225
|
+
export declare const INSERTION_ROLE_BONUS_HUB = 0.6;
|
|
226
|
+
export declare const INSERTION_ROLE_BONUS_INTERNAL = 0.4;
|
|
227
|
+
export declare const INSERTION_ROLE_BONUS_UTILITY = 0.3;
|
|
228
|
+
/** Fan-out threshold at or above which a node is classified as an orchestrator */
|
|
229
|
+
export declare const INSERTION_ORCHESTRATOR_FAN_OUT_THRESHOLD = 5;
|
|
230
|
+
/** Maximum files included in LLM deep analysis phase */
|
|
231
|
+
export declare const MAX_DEEP_ANALYSIS_FILES = 20;
|
|
232
|
+
/** Fraction of high-value files selected for LLM deep analysis */
|
|
233
|
+
export declare const DEEP_ANALYSIS_FILE_RATIO = 0.3;
|
|
234
|
+
/** Maximum files included in LLM validation phase */
|
|
235
|
+
export declare const MAX_VALIDATION_FILES = 5;
|
|
236
|
+
/** Estimated cost (USD) above which the generate command prompts for confirmation */
|
|
237
|
+
export declare const COST_CONFIRMATION_THRESHOLD = 0.5;
|
|
238
|
+
/** Base score added for each fan-in/fan-out excess block */
|
|
239
|
+
export declare const REFACTOR_EXCESS_BASE_SCORE = 2;
|
|
240
|
+
/** Maximum proportional score boost for excess fan-in */
|
|
241
|
+
export declare const MAX_FAN_IN_SCORE_BOOST = 3;
|
|
242
|
+
/** Maximum proportional score boost for excess fan-out */
|
|
243
|
+
export declare const MAX_FAN_OUT_SCORE_BOOST = 3;
|
|
244
|
+
/** Base score added for SRP violations */
|
|
245
|
+
export declare const SRP_BASE_SCORE = 1.5;
|
|
246
|
+
/** Per-requirement penalty above SRP_MAX_REQUIREMENTS */
|
|
247
|
+
export declare const SRP_PER_REQUIREMENT_PENALTY = 0.5;
|
|
248
|
+
/** Score added for clone group membership */
|
|
249
|
+
export declare const CLONE_GROUP_MEMBERSHIP_SCORE = 1.5;
|
|
250
|
+
/** Maximum call-graph depth considered "shallow" (bonus for refactoring) */
|
|
251
|
+
export declare const SHALLOW_FUNCTION_DEPTH_MAX = 2;
|
|
252
|
+
/** Score bonus for shallow functions with issues */
|
|
253
|
+
export declare const SHALLOW_FUNCTION_SCORE_BONUS = 0.5;
|
|
254
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,uDAAuD;AACvD,eAAO,MAAM,YAAY,cAAc,CAAC;AAExC,uCAAuC;AACvC,eAAO,MAAM,wBAAwB,aAAa,CAAC;AAEnD,4BAA4B;AAC5B,eAAO,MAAM,oBAAoB,SAAS,CAAC;AAE3C,yCAAyC;AACzC,eAAO,MAAM,4BAA4B,iBAAiB,CAAC;AAE3D,uCAAuC;AACvC,eAAO,MAAM,uBAAuB,YAAY,CAAC;AAEjD,iCAAiC;AACjC,eAAO,MAAM,uBAAuB,YAAY,CAAC;AAEjD,kDAAkD;AAClD,eAAO,MAAM,0BAA0B,eAAe,CAAC;AAEvD,iCAAiC;AACjC,eAAO,MAAM,oBAAoB,SAAS,CAAC;AAE3C,2CAA2C;AAC3C,eAAO,MAAM,wBAAwB,gBAAgB,CAAC;AAEtD,gDAAgD;AAChD,eAAO,MAAM,wBAAwB,0BAAgD,CAAC;AAEtF,qDAAqD;AACrD,eAAO,MAAM,0BAA0B,uBAAgD,CAAC;AAExF,2CAA2C;AAC3C,eAAO,MAAM,YAAY,aAAa,CAAC;AAEvC,wEAAwE;AACxE,eAAO,MAAM,qBAAqB,eAAe,CAAC;AAElD,2CAA2C;AAC3C,eAAO,MAAM,qBAAqB,UAAU,CAAC;AAE7C,+CAA+C;AAC/C,eAAO,MAAM,yBAAyB,cAAc,CAAC;AAErD,qDAAqD;AACrD,eAAO,MAAM,wBAAwB,gBAAgB,CAAC;AAMtD,qDAAqD;AACrD,eAAO,MAAM,uBAAuB,wBAAwB,CAAC;AAE7D,iDAAiD;AACjD,eAAO,MAAM,yBAAyB,0BAA0B,CAAC;AAEjE,4CAA4C;AAC5C,eAAO,MAAM,oBAAoB,qBAAqB,CAAC;AAEvD,oDAAoD;AACpD,eAAO,MAAM,gBAAgB,iBAAiB,CAAC;AAE/C,oDAAoD;AACpD,eAAO,MAAM,4BAA4B,6BAA6B,CAAC;AAEvE,2EAA2E;AAC3E,eAAO,MAAM,uBAAuB,wBAAwB,CAAC;AAE7D,2DAA2D;AAC3D,eAAO,MAAM,0BAA0B,2BAA2B,CAAC;AAEnE,2CAA2C;AAC3C,eAAO,MAAM,uBAAuB,wBAAwB,CAAC;AAM7D,gEAAgE;AAChE,eAAO,MAAM,yBAAyB,SAAU,CAAC;AAEjD,+DAA+D;AAC/D,eAAO,MAAM,+BAA+B,SAAU,CAAC;AAEvD,sDAAsD;AACtD,eAAO,MAAM,wBAAwB,QAAS,CAAC;AAE/C,qDAAqD;AACrD,eAAO,MAAM,8BAA8B,OAAQ,CAAC;AAEpD,6DAA6D;AAC7D,eAAO,MAAM,wBAAwB,QAAmB,CAAC;AAEzD,iDAAiD;AACjD,eAAO,MAAM,kBAAkB,SAAU,CAAC;AAM1C,6DAA6D;AAC7D,eAAO,MAAM,iBAAiB,MAAM,CAAC;AAErC,0EAA0E;AAC1E,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAE3C,6EAA6E;AAC7E,eAAO,MAAM,2BAA2B,QAAiB,CAAC;AAE1D,6EAA6E;AAC7E,eAAO,MAAM,2BAA2B,QAAiB,CAAC;AAM1D,8CAA8C;AAC9C,eAAO,MAAM,mBAAmB,OAAO,CAAC;AAExC,8CAA8C;AAC9C,eAAO,MAAM,mBAAmB,cAAc,CAAC;AAE/C,8DAA8D;AAC9D,eAAO,MAAM,mBAAmB,QAAa,CAAC;AAE9C,+CAA+C;AAC/C,eAAO,MAAM,gBAAgB,OAAQ,CAAC;AAMtC,6DAA6D;AAC7D,eAAO,MAAM,iCAAiC,MAAM,CAAC;AAErD,qEAAqE;AACrE,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAM3C,eAAO,MAAM,uBAAuB,6BAA6B,CAAC;AAClE,eAAO,MAAM,oBAAoB,WAAW,CAAC;AAC7C,eAAO,MAAM,2BAA2B,yBAAyB,CAAC;AAClE,eAAO,MAAM,oBAAoB,qBAAqB,CAAC;AACvD,mEAAmE;AACnE,eAAO,MAAM,yBAAyB,gBAAgB,CAAC;AAMvD,6CAA6C;AAC7C,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC,qEAAqE;AACrE,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAE7C,sEAAsE;AACtE,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAE1C,wEAAwE;AACxE,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAM1C,0DAA0D;AAC1D,eAAO,MAAM,uBAAuB,IAAI,CAAC;AAEzC,uCAAuC;AACvC,eAAO,MAAM,4BAA4B,OAAQ,CAAC;AAElD,uCAAuC;AACvC,eAAO,MAAM,wBAAwB,QAAS,CAAC;AAE/C,yDAAyD;AACzD,eAAO,MAAM,sBAAsB,SAAU,CAAC;AAE9C,2CAA2C;AAC3C,eAAO,MAAM,kCAAkC,KAAO,CAAC;AAEvD,mEAAmE;AACnE,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAM/C,+DAA+D;AAC/D,eAAO,MAAM,cAAc,OAAQ,CAAC;AAMpC,iDAAiD;AACjD,eAAO,MAAM,iBAAiB,OAAQ,CAAC;AAEvC,mEAAmE;AACnE,eAAO,MAAM,iBAAiB,OAAQ,CAAC;AAEvC,kEAAkE;AAClE,eAAO,MAAM,iBAAiB,OAAQ,CAAC;AAEvC,gEAAgE;AAChE,eAAO,MAAM,iBAAiB,OAAQ,CAAC;AAEvC,yDAAyD;AACzD,eAAO,MAAM,iBAAiB,OAAQ,CAAC;AAEvC,iDAAiD;AACjD,eAAO,MAAM,iBAAiB,OAAQ,CAAC;AAEvC,iEAAiE;AACjE,eAAO,MAAM,qBAAqB,OAAQ,CAAC;AAE3C,kEAAkE;AAClE,eAAO,MAAM,0BAA0B,OAAQ,CAAC;AAEhD,kEAAkE;AAClE,eAAO,MAAM,kCAAkC,OAAQ,CAAC;AAExD,+DAA+D;AAC/D,eAAO,MAAM,+BAA+B,MAAM,CAAC;AAMnD,yDAAyD;AACzD,eAAO,MAAM,qBAAqB,OAAQ,CAAC;AAE3C,8DAA8D;AAC9D,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAM5C,mFAAmF;AACnF,eAAO,MAAM,+BAA+B,OAAQ,CAAC;AAMrD,kDAAkD;AAClD,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC,iDAAiD;AACjD,eAAO,MAAM,8BAA8B,KAAK,CAAC;AAEjD,6CAA6C;AAC7C,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAE7C,0CAA0C;AAC1C,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAE1C,4CAA4C;AAC5C,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAM5C,6CAA6C;AAC7C,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAE1C,8CAA8C;AAC9C,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAE3C,8CAA8C;AAC9C,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAEvC,yCAAyC;AACzC,eAAO,MAAM,8BAA8B,MAAM,CAAC;AAElD,qEAAqE;AACrE,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAE3C,wEAAwE;AACxE,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAE9C,wEAAwE;AACxE,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAEhD,mFAAmF;AACnF,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAEhD,oEAAoE;AACpE,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC,qEAAqE;AACrE,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAEtC,gEAAgE;AAChE,eAAO,MAAM,gCAAgC,IAAI,CAAC;AAElD,uCAAuC;AACvC,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAE5C,+CAA+C;AAC/C,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAE3C,0CAA0C;AAC1C,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAE3C,2CAA2C;AAC3C,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAE9C,+DAA+D;AAC/D,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAE9C,yEAAyE;AACzE,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAE3C,wFAAwF;AACxF,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAE5C,oEAAoE;AACpE,eAAO,MAAM,4BAA4B,KAAK,CAAC;AAE/C,uFAAuF;AACvF,eAAO,MAAM,+BAA+B,KAAK,CAAC;AAElD,sDAAsD;AACtD,eAAO,MAAM,0CAA0C,IAAI,CAAC;AAE5D,iDAAiD;AACjD,eAAO,MAAM,4BAA4B,KAAK,CAAC;AAM/C,sFAAsF;AACtF,eAAO,MAAM,4BAA4B,MAAM,CAAC;AAEhD,yDAAyD;AACzD,eAAO,MAAM,+BAA+B,MAAM,CAAC;AAEnD,oFAAoF;AACpF,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAE7C,0EAA0E;AAC1E,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAM9C,gEAAgE;AAChE,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAE5C,+DAA+D;AAC/D,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAE3C,mEAAmE;AACnE,eAAO,MAAM,uBAAuB,IAAI,CAAC;AAMzC,8FAA8F;AAC9F,eAAO,MAAM,uBAAuB,OAAO,CAAC;AAE5C,kFAAkF;AAClF,eAAO,MAAM,6BAA6B,QAAS,CAAC;AAEpD,+EAA+E;AAC/E,eAAO,MAAM,6BAA6B,OAAQ,CAAC;AAEnD,sDAAsD;AACtD,eAAO,MAAM,4BAA4B,KAAK,CAAC;AAM/C,qEAAqE;AACrE,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAE5C,mEAAmE;AACnE,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAE7C,qEAAqE;AACrE,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAE/C,iDAAiD;AACjD,eAAO,MAAM,gCAAgC,IAAM,CAAC;AACpD,eAAO,MAAM,iCAAiC,MAAM,CAAC;AACrD,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAC5C,eAAO,MAAM,6BAA6B,MAAM,CAAC;AACjD,eAAO,MAAM,4BAA4B,MAAM,CAAC;AAEhD,kFAAkF;AAClF,eAAO,MAAM,wCAAwC,IAAI,CAAC;AAM1D,wDAAwD;AACxD,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAE1C,kEAAkE;AAClE,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAE5C,qDAAqD;AACrD,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAMtC,qFAAqF;AACrF,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAM/C,4DAA4D;AAC5D,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAE5C,yDAAyD;AACzD,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC,0DAA0D;AAC1D,eAAO,MAAM,uBAAuB,IAAI,CAAC;AAEzC,0CAA0C;AAC1C,eAAO,MAAM,cAAc,MAAM,CAAC;AAElC,yDAAyD;AACzD,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAE/C,6CAA6C;AAC7C,eAAO,MAAM,4BAA4B,MAAM,CAAC;AAEhD,4EAA4E;AAC5E,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAE5C,oDAAoD;AACpD,eAAO,MAAM,4BAA4B,MAAM,CAAC"}
|