bobs-workshop 0.3.3 → 3.1.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/LICENSE +2 -2
- package/README.md +199 -210
- package/bin/bobs-workshop.js +109 -0
- package/config/agents.json +27 -0
- package/dist/plugins/bobs-workshop.js +34 -0
- package/dist/tools/background-agent/cancel.d.ts +3 -0
- package/dist/tools/background-agent/cancel.d.ts.map +1 -0
- package/dist/tools/background-agent/cancel.js +52 -0
- package/dist/tools/background-agent/concurrency.d.ts +15 -0
- package/dist/tools/background-agent/concurrency.d.ts.map +1 -0
- package/dist/tools/background-agent/concurrency.js +61 -0
- package/dist/tools/background-agent/index.d.ts +8 -0
- package/dist/tools/background-agent/index.d.ts.map +1 -0
- package/dist/tools/background-agent/index.js +7 -0
- package/dist/tools/background-agent/launch.d.ts +6 -0
- package/dist/tools/background-agent/launch.d.ts.map +1 -0
- package/dist/tools/background-agent/launch.js +33 -0
- package/dist/tools/background-agent/list.d.ts +7 -0
- package/dist/tools/background-agent/list.d.ts.map +1 -0
- package/dist/tools/background-agent/list.js +40 -0
- package/dist/tools/background-agent/manager.d.ts +29 -0
- package/dist/tools/background-agent/manager.d.ts.map +1 -0
- package/dist/tools/background-agent/manager.js +388 -0
- package/dist/tools/background-agent/output.d.ts +3 -0
- package/dist/tools/background-agent/output.d.ts.map +1 -0
- package/dist/tools/background-agent/output.js +41 -0
- package/dist/tools/background-agent/types.d.ts +46 -0
- package/dist/tools/background-agent/types.d.ts.map +1 -0
- package/dist/tools/background-agent/types.js +1 -0
- package/dist/tools/index.d.ts +9 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +8 -0
- package/dist/tools/manual/index.d.ts +3 -0
- package/dist/tools/manual/index.d.ts.map +1 -0
- package/dist/tools/manual/index.js +2 -0
- package/dist/tools/manual/manual-update.d.ts +4 -0
- package/dist/tools/manual/manual-update.d.ts.map +1 -0
- package/dist/tools/manual/manual-update.js +190 -0
- package/dist/tools/manual/verify-manual.d.ts +4 -0
- package/dist/tools/manual/verify-manual.d.ts.map +1 -0
- package/dist/tools/manual/verify-manual.js +51 -0
- package/package.json +34 -66
- package/postinstall.js +193 -0
- package/src/agents/alice.md +466 -0
- package/src/agents/bob-rev.md +493 -0
- package/src/agents/bob-send.md +277 -0
- package/src/agents/bob.md +442 -0
- package/src/agents/trace.md +451 -0
- package/src/plugins/bobs-workshop.ts +45 -0
- package/src/skills/api-patterns/SKILL.md +376 -0
- package/src/skills/architecture/SKILL.md +271 -0
- package/src/skills/bobs-workshop/performance/icon.svg +3 -0
- package/src/skills/brainstorming/SKILL.md +210 -0
- package/src/skills/clean-code/SKILL.md +151 -0
- package/src/skills/code-review-checklist/SKILL.md +220 -0
- package/src/skills/database-design/SKILL.md +271 -0
- package/src/skills/exploration/SKILL.md +257 -0
- package/src/skills/frontend-ui-ux/SKILL.md +78 -0
- package/src/skills/git-master/SKILL.md +1105 -0
- package/src/skills/performance/SKILL.md +144 -0
- package/src/skills/performance/icon.svg +3 -0
- package/src/skills/plan-writing/SKILL.md +225 -0
- package/src/skills/security/SKILL.md +410 -0
- package/src/skills/simplification/SKILL.md +238 -0
- package/src/skills/systematic-debugging/SKILL.md +175 -0
- package/src/skills/testing-patterns/SKILL.md +305 -0
- package/src/skills/verification/SKILL.md +286 -0
- package/src/tools/background-agent/cancel.ts +67 -0
- package/src/tools/background-agent/concurrency.ts +71 -0
- package/src/tools/background-agent/index.ts +7 -0
- package/src/tools/background-agent/launch.ts +39 -0
- package/src/tools/background-agent/list.ts +50 -0
- package/src/tools/background-agent/manager.ts +466 -0
- package/src/tools/background-agent/output.ts +57 -0
- package/src/tools/background-agent/types.ts +55 -0
- package/src/tools/index.ts +8 -0
- package/src/tools/manual/index.ts +2 -0
- package/src/tools/manual/manual-update.ts +197 -0
- package/src/tools/manual/verify-manual.ts +60 -0
- package/uninstall.js +64 -0
- package/Claude.md +0 -162
- package/bin/bobs-mcp-server.js +0 -11
- package/bin/bobs-mcp.js +0 -130
- package/dist/api/taskLogger.js +0 -106
- package/dist/api/taskLogger.js.map +0 -1
- package/dist/cli/checker.js +0 -401
- package/dist/cli/checker.js.map +0 -1
- package/dist/cli/cleanup.js +0 -131
- package/dist/cli/cleanup.js.map +0 -1
- package/dist/cli/debug.js +0 -157
- package/dist/cli/debug.js.map +0 -1
- package/dist/cli/health.js +0 -97
- package/dist/cli/health.js.map +0 -1
- package/dist/cli/setup.js +0 -81
- package/dist/cli/setup.js.map +0 -1
- package/dist/cli/workshop.js +0 -42
- package/dist/cli/workshop.js.map +0 -1
- package/dist/dashboard/server.js +0 -1203
- package/dist/dashboard/server.js.map +0 -1
- package/dist/index.js +0 -960
- package/dist/index.js.map +0 -1
- package/dist/prompts/architect.js +0 -221
- package/dist/prompts/architect.js.map +0 -1
- package/dist/prompts/debugger.js +0 -257
- package/dist/prompts/debugger.js.map +0 -1
- package/dist/prompts/engineer.js +0 -249
- package/dist/prompts/engineer.js.map +0 -1
- package/dist/prompts/orchestrator.js +0 -304
- package/dist/prompts/orchestrator.js.map +0 -1
- package/dist/prompts/reviewer.js +0 -289
- package/dist/prompts/reviewer.js.map +0 -1
- package/dist/services/activitySummarizer.js +0 -388
- package/dist/services/activitySummarizer.js.map +0 -1
- package/dist/services/changeValidator.js +0 -396
- package/dist/services/changeValidator.js.map +0 -1
- package/dist/services/claudeOrchestrator.js +0 -343
- package/dist/services/claudeOrchestrator.js.map +0 -1
- package/dist/services/fileMonitor.js +0 -250
- package/dist/services/fileMonitor.js.map +0 -1
- package/dist/services/implementationSummarizer.js +0 -306
- package/dist/services/implementationSummarizer.js.map +0 -1
- package/dist/services/liveMonitor.js +0 -315
- package/dist/services/liveMonitor.js.map +0 -1
- package/dist/services/mcpAuditLogger.js +0 -104
- package/dist/services/mcpAuditLogger.js.map +0 -1
- package/dist/services/mcpLogger.js +0 -223
- package/dist/services/mcpLogger.js.map +0 -1
- package/dist/services/tmuxManager.js +0 -541
- package/dist/services/tmuxManager.js.map +0 -1
- package/dist/tools/approvalTools.js +0 -244
- package/dist/tools/approvalTools.js.map +0 -1
- package/dist/tools/autoDebugger.js +0 -147
- package/dist/tools/autoDebugger.js.map +0 -1
- package/dist/tools/cleanupService.js +0 -221
- package/dist/tools/cleanupService.js.map +0 -1
- package/dist/tools/dashboardTools.js +0 -342
- package/dist/tools/dashboardTools.js.map +0 -1
- package/dist/tools/developmentNudges.js +0 -336
- package/dist/tools/developmentNudges.js.map +0 -1
- package/dist/tools/gitTools.js +0 -741
- package/dist/tools/gitTools.js.map +0 -1
- package/dist/tools/orchestratorTools.js +0 -832
- package/dist/tools/orchestratorTools.js.map +0 -1
- package/dist/tools/searchCache.js +0 -64
- package/dist/tools/searchCache.js.map +0 -1
- package/dist/tools/searchTools.js +0 -1107
- package/dist/tools/searchTools.js.map +0 -1
- package/dist/tools/semgrep-patterns.js +0 -296
- package/dist/tools/semgrep-patterns.js.map +0 -1
- package/dist/tools/specTools.js +0 -332
- package/dist/tools/specTools.js.map +0 -1
- package/dist/tools/structural/__tests__/orchestrator.test.js +0 -61
- package/dist/tools/structural/__tests__/orchestrator.test.js.map +0 -1
- package/dist/tools/structural/cache.js +0 -226
- package/dist/tools/structural/cache.js.map +0 -1
- package/dist/tools/structural/engines/python/index.js +0 -118
- package/dist/tools/structural/engines/python/index.js.map +0 -1
- package/dist/tools/structural/engines/typescript/__tests__/typescript-engine.test.js +0 -97
- package/dist/tools/structural/engines/typescript/__tests__/typescript-engine.test.js.map +0 -1
- package/dist/tools/structural/engines/typescript/analyzer.js +0 -433
- package/dist/tools/structural/engines/typescript/analyzer.js.map +0 -1
- package/dist/tools/structural/engines/typescript/index.js +0 -381
- package/dist/tools/structural/engines/typescript/index.js.map +0 -1
- package/dist/tools/structural/engines/typescript/utils.js +0 -279
- package/dist/tools/structural/engines/typescript/utils.js.map +0 -1
- package/dist/tools/structural/index.js +0 -248
- package/dist/tools/structural/index.js.map +0 -1
- package/dist/tools/structural/types.js +0 -18
- package/dist/tools/structural/types.js.map +0 -1
- package/dist/tools/tmuxTools.js +0 -100
- package/dist/tools/tmuxTools.js.map +0 -1
- package/dist/tools/workRecorder.js +0 -215
- package/dist/tools/workRecorder.js.map +0 -1
- package/dist/tools/worktreeTools.js +0 -705
- package/dist/tools/worktreeTools.js.map +0 -1
- package/dist/utils/__tests__/integration.test.js +0 -57
- package/dist/utils/__tests__/integration.test.js.map +0 -1
- package/dist/utils/__tests__/serverDetection.test.js +0 -151
- package/dist/utils/__tests__/serverDetection.test.js.map +0 -1
- package/dist/utils/errorHandling.js +0 -336
- package/dist/utils/errorHandling.js.map +0 -1
- package/dist/utils/processManager.js +0 -172
- package/dist/utils/processManager.js.map +0 -1
- package/dist/utils/reliability.js +0 -263
- package/dist/utils/reliability.js.map +0 -1
- package/dist/utils/responseFormatter.js +0 -250
- package/dist/utils/responseFormatter.js.map +0 -1
- package/dist/utils/serverDetection.js +0 -133
- package/dist/utils/serverDetection.js.map +0 -1
- package/dist/utils/specMigration.js +0 -105
- package/dist/utils/specMigration.js.map +0 -1
- package/dist/validation/schemas.js +0 -299
- package/dist/validation/schemas.js.map +0 -1
- package/public/.well-known/mcp/manifest.json +0 -473
- package/public/index.html +0 -3157
- package/public/index.html.backup +0 -2805
- package/public/index.html.backup2 +0 -1292
- package/scripts/cleanup-system-logs.ts +0 -121
- package/scripts/init-workspace.js +0 -63
- package/scripts/install-search-tools.js +0 -116
|
@@ -1,279 +0,0 @@
|
|
|
1
|
-
import { Project, SyntaxKind, ts } from "ts-morph";
|
|
2
|
-
import { glob } from "glob";
|
|
3
|
-
import { minimatch } from "minimatch";
|
|
4
|
-
import path from "path";
|
|
5
|
-
import * as fs from "fs";
|
|
6
|
-
import { cacheManager } from "../../cache.js";
|
|
7
|
-
// Re-export for backward compatibility
|
|
8
|
-
export const fileCache = {
|
|
9
|
-
get: (key) => {
|
|
10
|
-
const cached = cacheManager.getCachedFile(key);
|
|
11
|
-
return cached?.then(c => c?.sourceFile);
|
|
12
|
-
},
|
|
13
|
-
set: (key, value) => {
|
|
14
|
-
cacheManager.setCachedFile(key, value);
|
|
15
|
-
},
|
|
16
|
-
clear: () => cacheManager.clearFileCache()
|
|
17
|
-
};
|
|
18
|
-
export const symbolCache = {
|
|
19
|
-
get: (key) => cacheManager.getCachedSymbol(key),
|
|
20
|
-
set: (key, value) => cacheManager.setCachedSymbol(key, value),
|
|
21
|
-
clear: () => cacheManager.clearSymbolCache()
|
|
22
|
-
};
|
|
23
|
-
export const performanceConfig = {
|
|
24
|
-
maxMemoryMB: 2048,
|
|
25
|
-
batchSize: 50,
|
|
26
|
-
cacheStrategy: "memory",
|
|
27
|
-
gcInterval: 100
|
|
28
|
-
};
|
|
29
|
-
export const timeoutLimits = {
|
|
30
|
-
singleFile: 5000,
|
|
31
|
-
symbolSearch: 10000,
|
|
32
|
-
projectAnalysis: 60000,
|
|
33
|
-
impactAnalysis: 30000,
|
|
34
|
-
};
|
|
35
|
-
export const securityConfig = {
|
|
36
|
-
allowedPaths: ["./src", "./tests", "./lib"],
|
|
37
|
-
excludePatterns: ["**/node_modules/**", "**/.git/**", "**/dist/**", "**/build/**"],
|
|
38
|
-
maxFileSize: 5 * 1024 * 1024,
|
|
39
|
-
maxPathDepth: 10,
|
|
40
|
-
};
|
|
41
|
-
export function findProjectRoot(filePath) {
|
|
42
|
-
let currentDir = path.dirname(path.resolve(filePath));
|
|
43
|
-
// First priority: look for tsconfig.json (closest to the file)
|
|
44
|
-
let tsConfigDir = null;
|
|
45
|
-
let tempDir = currentDir;
|
|
46
|
-
while (tempDir !== path.dirname(tempDir)) {
|
|
47
|
-
if (fs.existsSync(path.join(tempDir, 'tsconfig.json'))) {
|
|
48
|
-
tsConfigDir = tempDir;
|
|
49
|
-
break;
|
|
50
|
-
}
|
|
51
|
-
tempDir = path.dirname(tempDir);
|
|
52
|
-
}
|
|
53
|
-
// If we found a tsconfig.json, use it
|
|
54
|
-
if (tsConfigDir) {
|
|
55
|
-
return tsConfigDir;
|
|
56
|
-
}
|
|
57
|
-
// Fallback: look for package.json or .git
|
|
58
|
-
while (currentDir !== path.dirname(currentDir)) {
|
|
59
|
-
if (fs.existsSync(path.join(currentDir, 'package.json')) ||
|
|
60
|
-
fs.existsSync(path.join(currentDir, '.git'))) {
|
|
61
|
-
return currentDir;
|
|
62
|
-
}
|
|
63
|
-
currentDir = path.dirname(currentDir);
|
|
64
|
-
}
|
|
65
|
-
// Final fallback to the directory containing the file
|
|
66
|
-
return path.dirname(path.resolve(filePath));
|
|
67
|
-
}
|
|
68
|
-
export function createProject(rootPath, includeNodeModules = false) {
|
|
69
|
-
const workingDir = rootPath || process.cwd();
|
|
70
|
-
// Check if there's a tsconfig.json file
|
|
71
|
-
const tsConfigPath = path.join(workingDir, 'tsconfig.json');
|
|
72
|
-
const hasTsConfig = fs.existsSync(tsConfigPath);
|
|
73
|
-
// If we have a tsconfig and we're not doing symbol analysis (includeNodeModules), use it
|
|
74
|
-
if (hasTsConfig && !includeNodeModules) {
|
|
75
|
-
try {
|
|
76
|
-
const project = new Project({
|
|
77
|
-
tsConfigFilePath: tsConfigPath,
|
|
78
|
-
skipAddingFilesFromTsConfig: true,
|
|
79
|
-
useInMemoryFileSystem: false,
|
|
80
|
-
skipFileDependencyResolution: false // Enable for language service operations
|
|
81
|
-
});
|
|
82
|
-
return project;
|
|
83
|
-
}
|
|
84
|
-
catch (error) {
|
|
85
|
-
// If tsconfig parsing fails, fall back to default options
|
|
86
|
-
console.error('Failed to parse tsconfig.json, using defaults:', error);
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
// Use default compiler options for symbol analysis or when tsconfig is not available
|
|
90
|
-
const baseOptions = {
|
|
91
|
-
target: ts.ScriptTarget.ES2022,
|
|
92
|
-
module: ts.ModuleKind.ESNext,
|
|
93
|
-
moduleResolution: ts.ModuleResolutionKind.Bundler,
|
|
94
|
-
allowJs: true,
|
|
95
|
-
declaration: true,
|
|
96
|
-
esModuleInterop: true,
|
|
97
|
-
allowSyntheticDefaultImports: true,
|
|
98
|
-
strict: false, // Disable strict mode for better compatibility
|
|
99
|
-
skipLibCheck: true,
|
|
100
|
-
noEmit: true,
|
|
101
|
-
resolveJsonModule: true,
|
|
102
|
-
isolatedModules: true,
|
|
103
|
-
allowImportingTsExtensions: false,
|
|
104
|
-
noResolve: false,
|
|
105
|
-
jsx: ts.JsxEmit.ReactJSX,
|
|
106
|
-
};
|
|
107
|
-
if (includeNodeModules) {
|
|
108
|
-
const projectRoot = workingDir;
|
|
109
|
-
baseOptions.typeRoots = [
|
|
110
|
-
path.join(projectRoot, "node_modules/@types"),
|
|
111
|
-
path.join(projectRoot, "node_modules")
|
|
112
|
-
];
|
|
113
|
-
baseOptions.baseUrl = projectRoot;
|
|
114
|
-
baseOptions.paths = {
|
|
115
|
-
"*": ["node_modules/*", "node_modules/@types/*"]
|
|
116
|
-
};
|
|
117
|
-
}
|
|
118
|
-
const project = new Project({
|
|
119
|
-
compilerOptions: baseOptions,
|
|
120
|
-
skipAddingFilesFromTsConfig: true,
|
|
121
|
-
useInMemoryFileSystem: false,
|
|
122
|
-
skipFileDependencyResolution: false // Enable for language service operations
|
|
123
|
-
});
|
|
124
|
-
return project;
|
|
125
|
-
}
|
|
126
|
-
export function findClosestTsConfig(filePath) {
|
|
127
|
-
let currentDir = path.dirname(path.resolve(filePath));
|
|
128
|
-
// Walk up from the target path looking only for tsconfig.json
|
|
129
|
-
while (currentDir !== path.dirname(currentDir)) {
|
|
130
|
-
const tsConfigPath = path.join(currentDir, 'tsconfig.json');
|
|
131
|
-
if (fs.existsSync(tsConfigPath)) {
|
|
132
|
-
return currentDir;
|
|
133
|
-
}
|
|
134
|
-
currentDir = path.dirname(currentDir);
|
|
135
|
-
}
|
|
136
|
-
return null;
|
|
137
|
-
}
|
|
138
|
-
export function nodeToLocation(node) {
|
|
139
|
-
const sourceFile = node.getSourceFile();
|
|
140
|
-
const start = sourceFile.getLineAndColumnAtPos(node.getStart());
|
|
141
|
-
const end = sourceFile.getLineAndColumnAtPos(node.getEnd());
|
|
142
|
-
return {
|
|
143
|
-
file: sourceFile.getFilePath(),
|
|
144
|
-
position: {
|
|
145
|
-
line: start.line - 1,
|
|
146
|
-
character: start.column - 1
|
|
147
|
-
},
|
|
148
|
-
endPosition: {
|
|
149
|
-
line: end.line - 1,
|
|
150
|
-
character: end.column - 1
|
|
151
|
-
}
|
|
152
|
-
};
|
|
153
|
-
}
|
|
154
|
-
export function positionToOffset(sourceFile, position) {
|
|
155
|
-
const character = position.character ?? 0;
|
|
156
|
-
const pos = sourceFile.compilerNode.getPositionOfLineAndCharacter(position.line, character);
|
|
157
|
-
return pos;
|
|
158
|
-
}
|
|
159
|
-
export function getSymbolKind(node) {
|
|
160
|
-
const kind = node.getKind();
|
|
161
|
-
switch (kind) {
|
|
162
|
-
case SyntaxKind.ClassDeclaration:
|
|
163
|
-
return "class";
|
|
164
|
-
case SyntaxKind.InterfaceDeclaration:
|
|
165
|
-
return "interface";
|
|
166
|
-
case SyntaxKind.EnumDeclaration:
|
|
167
|
-
return "enum";
|
|
168
|
-
case SyntaxKind.FunctionDeclaration:
|
|
169
|
-
case SyntaxKind.FunctionExpression:
|
|
170
|
-
case SyntaxKind.ArrowFunction:
|
|
171
|
-
return "function";
|
|
172
|
-
case SyntaxKind.MethodDeclaration:
|
|
173
|
-
case SyntaxKind.MethodSignature:
|
|
174
|
-
return "method";
|
|
175
|
-
case SyntaxKind.PropertyDeclaration:
|
|
176
|
-
case SyntaxKind.PropertySignature:
|
|
177
|
-
return "property";
|
|
178
|
-
case SyntaxKind.VariableDeclaration:
|
|
179
|
-
return "variable";
|
|
180
|
-
case SyntaxKind.Parameter:
|
|
181
|
-
return "parameter";
|
|
182
|
-
case SyntaxKind.TypeAliasDeclaration:
|
|
183
|
-
return "type";
|
|
184
|
-
case SyntaxKind.ModuleDeclaration:
|
|
185
|
-
return "module";
|
|
186
|
-
case SyntaxKind.NamespaceKeyword:
|
|
187
|
-
return "namespace";
|
|
188
|
-
default:
|
|
189
|
-
return "variable";
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
export async function findFiles(pattern, basePath = process.cwd()) {
|
|
193
|
-
const files = await glob(pattern, {
|
|
194
|
-
cwd: basePath,
|
|
195
|
-
absolute: true,
|
|
196
|
-
ignore: securityConfig.excludePatterns,
|
|
197
|
-
});
|
|
198
|
-
return files.filter(file => {
|
|
199
|
-
const relativePath = path.relative(basePath, file);
|
|
200
|
-
const depth = relativePath.split(path.sep).length;
|
|
201
|
-
return depth <= securityConfig.maxPathDepth;
|
|
202
|
-
});
|
|
203
|
-
}
|
|
204
|
-
export function matchesScope(filePath, scope) {
|
|
205
|
-
if (!scope)
|
|
206
|
-
return true;
|
|
207
|
-
if (scope.fileTypes) {
|
|
208
|
-
const ext = path.extname(filePath);
|
|
209
|
-
if (!scope.fileTypes.includes(ext))
|
|
210
|
-
return false;
|
|
211
|
-
}
|
|
212
|
-
if (scope.excludeFiles) {
|
|
213
|
-
for (const pattern of scope.excludeFiles) {
|
|
214
|
-
if (minimatch(filePath, pattern))
|
|
215
|
-
return false;
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
if (scope.includeFiles) {
|
|
219
|
-
for (const pattern of scope.includeFiles) {
|
|
220
|
-
if (minimatch(filePath, pattern))
|
|
221
|
-
return true;
|
|
222
|
-
}
|
|
223
|
-
return false;
|
|
224
|
-
}
|
|
225
|
-
return true;
|
|
226
|
-
}
|
|
227
|
-
export function validatePath(filePath, allowNodeModules = false) {
|
|
228
|
-
// Path validation removed - allow analyzing files from any location
|
|
229
|
-
return;
|
|
230
|
-
}
|
|
231
|
-
export function getNodeComplexity(node) {
|
|
232
|
-
let complexity = 1;
|
|
233
|
-
node.forEachDescendant(child => {
|
|
234
|
-
const kind = child.getKind();
|
|
235
|
-
if (kind === SyntaxKind.IfStatement ||
|
|
236
|
-
kind === SyntaxKind.ForStatement ||
|
|
237
|
-
kind === SyntaxKind.ForInStatement ||
|
|
238
|
-
kind === SyntaxKind.ForOfStatement ||
|
|
239
|
-
kind === SyntaxKind.WhileStatement ||
|
|
240
|
-
kind === SyntaxKind.DoStatement ||
|
|
241
|
-
kind === SyntaxKind.ConditionalExpression ||
|
|
242
|
-
kind === SyntaxKind.CatchClause ||
|
|
243
|
-
kind === SyntaxKind.CaseClause ||
|
|
244
|
-
kind === SyntaxKind.BinaryExpression) {
|
|
245
|
-
complexity++;
|
|
246
|
-
}
|
|
247
|
-
});
|
|
248
|
-
return complexity;
|
|
249
|
-
}
|
|
250
|
-
export function getTypeString(type, maxLength = 500) {
|
|
251
|
-
const typeText = type.getText();
|
|
252
|
-
if (typeText.length > maxLength) {
|
|
253
|
-
return typeText.substring(0, maxLength - 3) + "...";
|
|
254
|
-
}
|
|
255
|
-
return typeText;
|
|
256
|
-
}
|
|
257
|
-
export async function checkMemoryUsage() {
|
|
258
|
-
const usage = process.memoryUsage();
|
|
259
|
-
const heapUsedMB = usage.heapUsed / 1024 / 1024;
|
|
260
|
-
const cacheMemoryMB = cacheManager.getMemoryUsage() / 1024 / 1024;
|
|
261
|
-
if (heapUsedMB + cacheMemoryMB > performanceConfig.maxMemoryMB * 0.9) {
|
|
262
|
-
if (global.gc) {
|
|
263
|
-
global.gc();
|
|
264
|
-
}
|
|
265
|
-
await cacheManager.clearAll();
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
|
-
export class TimeoutError extends Error {
|
|
269
|
-
constructor(operation, limit) {
|
|
270
|
-
super(`Operation '${operation}' timed out after ${limit}ms`);
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
export function withTimeout(promise, operation, limit) {
|
|
274
|
-
return Promise.race([
|
|
275
|
-
promise,
|
|
276
|
-
new Promise((_, reject) => setTimeout(() => reject(new TimeoutError(operation, limit)), limit))
|
|
277
|
-
]);
|
|
278
|
-
}
|
|
279
|
-
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../src/tools/structural/engines/typescript/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,248 +0,0 @@
|
|
|
1
|
-
import * as fs from "fs";
|
|
2
|
-
import * as path from "path";
|
|
3
|
-
import { TypeScriptEngine } from "./engines/typescript/index.js";
|
|
4
|
-
import { ErrorCode, AnalysisError } from "./types.js";
|
|
5
|
-
/**
|
|
6
|
-
* Structural Search Orchestrator
|
|
7
|
-
*
|
|
8
|
-
* Coordinates AST-based structural searches across different languages.
|
|
9
|
-
* Routes queries to appropriate engines (TypeScript, Python, etc.)
|
|
10
|
-
*/
|
|
11
|
-
export class StructuralSearchOrchestrator {
|
|
12
|
-
constructor() {
|
|
13
|
-
this.engines = new Map([
|
|
14
|
-
["typescript", new TypeScriptEngine()],
|
|
15
|
-
["javascript", new TypeScriptEngine()], // JS uses TS engine
|
|
16
|
-
["tsx", new TypeScriptEngine()],
|
|
17
|
-
["jsx", new TypeScriptEngine()],
|
|
18
|
-
// ["python", new PythonEngine()], // Disabled until Phase 2
|
|
19
|
-
]);
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Main search method - analyzes query and routes to appropriate engine
|
|
23
|
-
*/
|
|
24
|
-
async search(query, options) {
|
|
25
|
-
const language = this.detectLanguage(options.scope || process.cwd());
|
|
26
|
-
const engine = this.selectEngine(language);
|
|
27
|
-
if (!engine) {
|
|
28
|
-
throw new AnalysisError({
|
|
29
|
-
code: ErrorCode.PARSE_ERROR,
|
|
30
|
-
message: `No structural search engine available for language: ${language}`,
|
|
31
|
-
details: {
|
|
32
|
-
suggestion: "Structural search currently supports TypeScript/JavaScript. Use lexical or semantic search for other languages."
|
|
33
|
-
}
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
const operation = this.parseOperation(query);
|
|
37
|
-
const scope = options.scope || process.cwd();
|
|
38
|
-
switch (operation.type) {
|
|
39
|
-
case "references":
|
|
40
|
-
if (!operation.symbol) {
|
|
41
|
-
throw new AnalysisError({
|
|
42
|
-
code: ErrorCode.INVALID_PATTERN,
|
|
43
|
-
message: "Symbol name is required for references search"
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
return engine.findReferences(operation.symbol, scope, options);
|
|
47
|
-
case "definition":
|
|
48
|
-
if (!operation.symbol) {
|
|
49
|
-
throw new AnalysisError({
|
|
50
|
-
code: ErrorCode.INVALID_PATTERN,
|
|
51
|
-
message: "Symbol name is required for definition search"
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
const def = await engine.findDefinition(operation.symbol, scope, options);
|
|
55
|
-
return def ? [def] : [];
|
|
56
|
-
case "dependencies":
|
|
57
|
-
// If a target file is specified in the query, resolve it relative to scope
|
|
58
|
-
const targetPath = operation.target
|
|
59
|
-
? (path.isAbsolute(operation.target) ? operation.target : path.join(scope, operation.target))
|
|
60
|
-
: scope;
|
|
61
|
-
return engine.getDependencies(targetPath, options);
|
|
62
|
-
case "architectural-issues":
|
|
63
|
-
// Architect-specific: find architectural problems
|
|
64
|
-
if (language === "typescript" || language === "javascript") {
|
|
65
|
-
const tsEngine = engine;
|
|
66
|
-
const issues = await tsEngine.findArchitecturalIssues(scope);
|
|
67
|
-
return issues.map(issue => ({
|
|
68
|
-
file: issue.location.file,
|
|
69
|
-
line: issue.location.position.line,
|
|
70
|
-
symbol: issue.type,
|
|
71
|
-
kind: "variable",
|
|
72
|
-
context: `${issue.severity.toUpperCase()}: ${issue.message}`,
|
|
73
|
-
relevance: issue.severity === "error" ? 1.0 : issue.severity === "warning" ? 0.7 : 0.5
|
|
74
|
-
}));
|
|
75
|
-
}
|
|
76
|
-
return [];
|
|
77
|
-
case "call-graph":
|
|
78
|
-
// Debugger-specific: show call relationships
|
|
79
|
-
if (!operation.symbol) {
|
|
80
|
-
throw new AnalysisError({
|
|
81
|
-
code: ErrorCode.INVALID_PATTERN,
|
|
82
|
-
message: "Symbol name is required for call graph analysis"
|
|
83
|
-
});
|
|
84
|
-
}
|
|
85
|
-
// For now, use references as a proxy for call graph
|
|
86
|
-
return engine.findReferences(operation.symbol, scope, options);
|
|
87
|
-
case "unused-exports":
|
|
88
|
-
// Engineer-specific: find unused exports
|
|
89
|
-
if (language === "typescript" || language === "javascript") {
|
|
90
|
-
const tsEngine = engine;
|
|
91
|
-
const unused = await tsEngine.findUnusedExports(scope);
|
|
92
|
-
return unused.map(item => ({
|
|
93
|
-
file: item.location.file,
|
|
94
|
-
line: item.location.position.line,
|
|
95
|
-
symbol: item.name,
|
|
96
|
-
kind: item.kind,
|
|
97
|
-
context: `Unused export from ${item.exportedFrom}`,
|
|
98
|
-
relevance: 0.8
|
|
99
|
-
}));
|
|
100
|
-
}
|
|
101
|
-
return [];
|
|
102
|
-
default:
|
|
103
|
-
throw new AnalysisError({
|
|
104
|
-
code: ErrorCode.INVALID_PATTERN,
|
|
105
|
-
message: `Unsupported operation type: ${operation.type}`
|
|
106
|
-
});
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Detect programming language from project structure
|
|
111
|
-
*/
|
|
112
|
-
detectLanguage(projectPath) {
|
|
113
|
-
// Check if path looks like a file (has extension), even if it doesn't exist
|
|
114
|
-
const ext = path.extname(projectPath).substring(1);
|
|
115
|
-
if (ext) {
|
|
116
|
-
// Normalize extensions to language names
|
|
117
|
-
if (ext === 'ts' || ext === 'tsx')
|
|
118
|
-
return 'typescript';
|
|
119
|
-
if (ext === 'js' || ext === 'jsx')
|
|
120
|
-
return 'javascript';
|
|
121
|
-
if (ext === 'py')
|
|
122
|
-
return 'python';
|
|
123
|
-
return ext || "typescript";
|
|
124
|
-
}
|
|
125
|
-
// If it's an existing file, use its extension
|
|
126
|
-
if (fs.existsSync(projectPath) && fs.statSync(projectPath).isFile()) {
|
|
127
|
-
return "typescript"; // Default for files without extension
|
|
128
|
-
}
|
|
129
|
-
// Check for project indicators
|
|
130
|
-
const indicators = [
|
|
131
|
-
{ file: "tsconfig.json", language: "typescript" },
|
|
132
|
-
{ file: "package.json", language: "typescript" }, // Assume TypeScript for Node projects
|
|
133
|
-
{ file: "requirements.txt", language: "python" },
|
|
134
|
-
{ file: "setup.py", language: "python" },
|
|
135
|
-
{ file: "pyproject.toml", language: "python" },
|
|
136
|
-
];
|
|
137
|
-
for (const { file, language } of indicators) {
|
|
138
|
-
if (fs.existsSync(path.join(projectPath, file))) {
|
|
139
|
-
return language;
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
// Default to TypeScript
|
|
143
|
-
return "typescript";
|
|
144
|
-
}
|
|
145
|
-
/**
|
|
146
|
-
* Select appropriate engine for language
|
|
147
|
-
*/
|
|
148
|
-
selectEngine(language) {
|
|
149
|
-
return this.engines.get(language);
|
|
150
|
-
}
|
|
151
|
-
/**
|
|
152
|
-
* Parse natural language query to extract operation intent
|
|
153
|
-
*
|
|
154
|
-
* Supported patterns (from spec):
|
|
155
|
-
* - US-1: "find references to UserService"
|
|
156
|
-
* - US-1: "show all usages of calculatePrice"
|
|
157
|
-
* - US-2: "go to definition of AuthToken"
|
|
158
|
-
* - US-2: "where is validateInput defined"
|
|
159
|
-
* - US-3: "show dependencies for user.ts"
|
|
160
|
-
* - US-3: "what does api/auth.ts import"
|
|
161
|
-
*/
|
|
162
|
-
parseOperation(query) {
|
|
163
|
-
const normalized = query.toLowerCase().trim();
|
|
164
|
-
const original = query.trim(); // Preserve original casing for symbol names
|
|
165
|
-
// Pattern 1: References
|
|
166
|
-
if (normalized.match(/find references (to|for|of)\s+(\w+)/) ||
|
|
167
|
-
normalized.match(/show (all )?usages? (of|for)\s+(\w+)/) ||
|
|
168
|
-
normalized.match(/where is (\w+) used/) ||
|
|
169
|
-
normalized.match(/who uses (\w+)/)) {
|
|
170
|
-
// Extract symbol from original query to preserve casing
|
|
171
|
-
const symbolMatch = original.match(/(?:to|for|of|used|uses)\s+(\w+)/) ||
|
|
172
|
-
original.match(/where is (\w+)/);
|
|
173
|
-
const symbol = symbolMatch ? symbolMatch[1] : undefined;
|
|
174
|
-
return {
|
|
175
|
-
type: "references",
|
|
176
|
-
symbol
|
|
177
|
-
};
|
|
178
|
-
}
|
|
179
|
-
// Pattern 2: Definition
|
|
180
|
-
if (normalized.match(/go to definition (of|for)\s+(\w+)/) ||
|
|
181
|
-
normalized.match(/where is (\w+) defined/) ||
|
|
182
|
-
normalized.match(/find definition (of|for)\s+(\w+)/) ||
|
|
183
|
-
normalized.match(/show (\w+) definition/)) {
|
|
184
|
-
// Extract symbol from original query to preserve casing
|
|
185
|
-
const symbolMatch = original.match(/(?:of|for|is)\s+(\w+)(?:\s+defined)?/) ||
|
|
186
|
-
original.match(/show (\w+)/);
|
|
187
|
-
const symbol = symbolMatch ? symbolMatch[1] : undefined;
|
|
188
|
-
return {
|
|
189
|
-
type: "definition",
|
|
190
|
-
symbol
|
|
191
|
-
};
|
|
192
|
-
}
|
|
193
|
-
// Pattern 3: Dependencies
|
|
194
|
-
if (normalized.match(/show dependencies (for|of)\s+(.+)/) ||
|
|
195
|
-
normalized.match(/what does (.+) import/) ||
|
|
196
|
-
normalized.match(/list imports (in|for)\s+(.+)/) ||
|
|
197
|
-
normalized.match(/dependencies (of|for)\s+(.+)/)) {
|
|
198
|
-
// Extract from original query to preserve casing
|
|
199
|
-
const targetMatch = original.match(/(?:for|of)\s+(.+)$/) ||
|
|
200
|
-
original.match(/what does (.+) import/) ||
|
|
201
|
-
original.match(/(?:in|for)\s+(.+)$/);
|
|
202
|
-
const target = targetMatch ? targetMatch[1].trim() : undefined;
|
|
203
|
-
return {
|
|
204
|
-
type: "dependencies",
|
|
205
|
-
target
|
|
206
|
-
};
|
|
207
|
-
}
|
|
208
|
-
// Pattern 4: Call graph
|
|
209
|
-
if (normalized.match(/call graph (for|of)\s+(\w+)/) ||
|
|
210
|
-
normalized.match(/what calls (\w+)/) ||
|
|
211
|
-
normalized.match(/show callers (of|for)\s+(\w+)/)) {
|
|
212
|
-
// Extract symbol from original query to preserve casing
|
|
213
|
-
const symbolMatch = original.match(/(?:for|of|calls)\s+(\w+)/) ||
|
|
214
|
-
original.match(/what calls (\w+)/);
|
|
215
|
-
const symbol = symbolMatch ? symbolMatch[1] : undefined;
|
|
216
|
-
return {
|
|
217
|
-
type: "call-graph",
|
|
218
|
-
symbol
|
|
219
|
-
};
|
|
220
|
-
}
|
|
221
|
-
// Pattern 5: Architectural issues
|
|
222
|
-
if (normalized.match(/find (circular|architectural) (dependencies|issues)/) ||
|
|
223
|
-
normalized.match(/check architecture/) ||
|
|
224
|
-
normalized.match(/analyze (architecture|structure)/) ||
|
|
225
|
-
normalized.match(/circular dependencies/)) {
|
|
226
|
-
return {
|
|
227
|
-
type: "architectural-issues"
|
|
228
|
-
};
|
|
229
|
-
}
|
|
230
|
-
// Pattern 6: Unused exports
|
|
231
|
-
if (normalized.match(/find unused exports/) ||
|
|
232
|
-
normalized.match(/show unused exports/) ||
|
|
233
|
-
normalized.match(/list unused exports/) ||
|
|
234
|
-
normalized.match(/unused (code|exports)/)) {
|
|
235
|
-
return {
|
|
236
|
-
type: "unused-exports"
|
|
237
|
-
};
|
|
238
|
-
}
|
|
239
|
-
// Default: Try to extract symbol name and assume references search
|
|
240
|
-
const words = original.split(/\s+/); // Use original to detect CamelCase
|
|
241
|
-
const potentialSymbol = words.find(w => /^[A-Z][a-zA-Z0-9]*$/.test(w)); // CamelCase
|
|
242
|
-
return {
|
|
243
|
-
type: "references",
|
|
244
|
-
symbol: potentialSymbol
|
|
245
|
-
};
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/structural/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
export var ErrorCode;
|
|
2
|
-
(function (ErrorCode) {
|
|
3
|
-
ErrorCode["FILE_NOT_FOUND"] = "FILE_NOT_FOUND";
|
|
4
|
-
ErrorCode["PARSE_ERROR"] = "PARSE_ERROR";
|
|
5
|
-
ErrorCode["TIMEOUT"] = "TIMEOUT";
|
|
6
|
-
ErrorCode["MEMORY_LIMIT"] = "MEMORY_LIMIT";
|
|
7
|
-
ErrorCode["INVALID_PATTERN"] = "INVALID_PATTERN";
|
|
8
|
-
ErrorCode["SCOPE_ERROR"] = "SCOPE_ERROR";
|
|
9
|
-
})(ErrorCode || (ErrorCode = {}));
|
|
10
|
-
export class AnalysisError extends Error {
|
|
11
|
-
constructor(data) {
|
|
12
|
-
super(data.message);
|
|
13
|
-
this.code = data.code;
|
|
14
|
-
this.details = data.details;
|
|
15
|
-
this.name = "AnalysisError";
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
//# sourceMappingURL=types.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/tools/structural/types.ts"],"names":[],"mappings":"AAwHA,MAAM,CAAN,IAAY,SAOX;AAPD,WAAY,SAAS;IACnB,8CAAiC,CAAA;IACjC,wCAA2B,CAAA;IAC3B,gCAAmB,CAAA;IACnB,0CAA6B,CAAA;IAC7B,gDAAmC,CAAA;IACnC,wCAA2B,CAAA;AAC7B,CAAC,EAPW,SAAS,KAAT,SAAS,QAOpB;AAUD,MAAM,OAAO,aAAc,SAAQ,KAAK;IAYtC,YAAY,IAYX;QACC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF"}
|