@tng-sh/mcp-server 1.0.4 → 1.0.5
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/dist/index.js +53 -12
- package/dist/index.js.map +1 -1
- package/dist/prompts.d.ts +3 -0
- package/dist/prompts.d.ts.map +1 -0
- package/dist/prompts.js +63 -0
- package/dist/prompts.js.map +1 -0
- package/dist/tools/audit.d.ts +1 -1
- package/dist/tools/audit.d.ts.map +1 -1
- package/dist/tools/audit.js +101 -128
- package/dist/tools/audit.js.map +1 -1
- package/dist/tools/method_resolver.d.ts +20 -0
- package/dist/tools/method_resolver.d.ts.map +1 -0
- package/dist/tools/method_resolver.js +138 -0
- package/dist/tools/method_resolver.js.map +1 -0
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -12,6 +12,7 @@ import { findCallSites } from './tools/call_sites.js';
|
|
|
12
12
|
import { impactMethod } from './tools/impact.js';
|
|
13
13
|
import { runInit } from './init.js';
|
|
14
14
|
import { preflightTarget, buildMcpResponse } from './tools/utils.js';
|
|
15
|
+
import { registerPrompts } from './prompts.js';
|
|
15
16
|
const server = new McpServer({
|
|
16
17
|
name: 'tng-mcp',
|
|
17
18
|
version: '1.1.0',
|
|
@@ -21,10 +22,10 @@ if (process.argv.includes('init')) {
|
|
|
21
22
|
process.exit(code);
|
|
22
23
|
}
|
|
23
24
|
const auditSchema = {
|
|
24
|
-
file_path: z.string().describe('Relative or absolute path to the source file (
|
|
25
|
+
file_path: z.string().optional().describe('Relative or absolute path to the source file (optional when method name is unique in project)'),
|
|
25
26
|
method_name: z.string().describe('Name of the method/function to audit (e.g., "process_payment", "validateUser", "handleSubmit")'),
|
|
26
27
|
class_name: z.string().optional().describe('Class or module name to disambiguate methods with the same name'),
|
|
27
|
-
test_type: z.string().optional().describe('Component type - REQUIRED for JavaScript/Python:
|
|
28
|
+
test_type: z.string().optional().describe('Component type - REQUIRED for JavaScript/Python/Ruby. You MUST auto-detect this based on the code. For JS/TS choose from: react_component, express_handler, nest_js, orm_model, graphql_resolver, background_job, mailer, utility. For Python choose from: endpoint, service, model, job, mailer, utility. For Ruby choose from: adapter, cli, generator, http_endpoint, job, lib, mailer, model, serializer, service, utility. Ignored for Rails.'),
|
|
28
29
|
response_format: z.string().optional().describe('Response format: "text" (default), "json", or "both".'),
|
|
29
30
|
raw_json: z.boolean().optional().describe('If true, return JSON envelope with raw tool output.'),
|
|
30
31
|
project_root: z.string().optional().describe('Project root for deterministic relative-path resolution.'),
|
|
@@ -36,7 +37,7 @@ const generateSchema = {
|
|
|
36
37
|
file_path: z.string().describe('Relative or absolute path to the source file to generate tests for'),
|
|
37
38
|
method_name: z.string().describe('Name of the method/function to generate tests for'),
|
|
38
39
|
class_name: z.string().optional().describe('Class or module name to disambiguate methods with the same name'),
|
|
39
|
-
test_type: z.string().optional().describe('Component type
|
|
40
|
+
test_type: z.string().optional().describe('Component type - REQUIRED for JavaScript/Python/Ruby. You MUST auto-detect this based on the code. For JS/TS choose from: react_component, express_handler, nest_js, orm_model, graphql_resolver, background_job, mailer, utility. For Python choose from: endpoint, service, model, job, mailer, utility. For Ruby choose from: adapter, cli, generator, http_endpoint, job, lib, mailer, model, serializer, service, utility. Ignored for Rails.'),
|
|
40
41
|
response_format: z.string().optional().describe('Response format: "text" (default), "json", or "both".'),
|
|
41
42
|
raw_json: z.boolean().optional().describe('If true, return JSON envelope with raw tool output.'),
|
|
42
43
|
project_root: z.string().optional().describe('Project root for deterministic relative-path resolution.'),
|
|
@@ -100,12 +101,15 @@ const callSitesSchema = {
|
|
|
100
101
|
const auditDescription = `Audit a specific method/function for security, bugs, performance, and code quality issues.
|
|
101
102
|
Use when the user asks to audit, review, analyze, inspect, or check code.
|
|
102
103
|
Returns findings with severity, line locations, and suggested fixes.
|
|
104
|
+
IMPORTANT POST-AUDIT INSTRUCTION: Once you have presented the audit findings to the user, you MUST ask them if they would like you to implement the suggested fixes. Do not implement the fixes immediately without asking first.
|
|
103
105
|
Supports: Ruby, Python, JavaScript/TypeScript.
|
|
104
|
-
|
|
106
|
+
IMPORTANT: For JavaScript/Python/Ruby, the "test_type" argument is MANDATORY. You MUST automatically infer the test_type from the code (e.g., express_handler, react_component, endpoint, utility) and provide it. Do NOT ask the user unless completely ambiguous.
|
|
107
|
+
Example: audit_method { file_path: "src/api/payment.ts", method_name: "processPayment", test_type: "express_handler" }`;
|
|
105
108
|
const generateDescription = `Generate tests for a specific method/function.
|
|
106
109
|
Use when the user asks to write tests, create specs, or add coverage.
|
|
107
110
|
Returns complete test code with suggested file path and command to run.
|
|
108
111
|
Supports: Ruby, Python, JavaScript/TypeScript.
|
|
112
|
+
IMPORTANT: For JavaScript/Python/Ruby, the "test_type" argument is MANDATORY. You MUST automatically infer the test_type from the code (e.g., express_handler, react_component, endpoint, utility) and provide it. Do NOT ask the user unless completely ambiguous.
|
|
109
113
|
Example: generate_test { file_path: "src/utils/validator.ts", method_name: "validateUser", test_type: "utility" }`;
|
|
110
114
|
const xrayDescription = `Generate a Mermaid flowchart for a method/function (X-Ray).
|
|
111
115
|
Use when the user asks for a diagram, flowchart, or visual explanation.
|
|
@@ -134,8 +138,10 @@ Use when the user asks "who calls this?" or "where is this used?".
|
|
|
134
138
|
Example: find_call_sites { file_path: "src/utils/auth.ts", method_name: "validateUser" }`;
|
|
135
139
|
async function callWithPreflight(toolName, args, handler, options = { requireMethod: false }) {
|
|
136
140
|
const filePath = args?.file_path ? String(args.file_path) : '';
|
|
137
|
-
const
|
|
138
|
-
|
|
141
|
+
const canSkipPathPreflight = !!options.allowMissingFilePath
|
|
142
|
+
&& filePath.trim().length === 0
|
|
143
|
+
&& (toolName === 'audit_method' || !!args?.all);
|
|
144
|
+
if (!canSkipPathPreflight) {
|
|
139
145
|
const preflight = preflightTarget({
|
|
140
146
|
tool: toolName,
|
|
141
147
|
filePath,
|
|
@@ -162,13 +168,29 @@ async function callWithPreflight(toolName, args, handler, options = { requireMet
|
|
|
162
168
|
file_path: preflight.resolvedPath || filePath,
|
|
163
169
|
};
|
|
164
170
|
}
|
|
171
|
+
else {
|
|
172
|
+
args = {
|
|
173
|
+
...args,
|
|
174
|
+
project_root: args?.project_root || process.cwd(),
|
|
175
|
+
};
|
|
176
|
+
if (options.requireMethod && !args?.method_name) {
|
|
177
|
+
const format = args?.response_format || (args?.raw_json ? 'json' : 'text');
|
|
178
|
+
return buildMcpResponse({
|
|
179
|
+
tool: toolName,
|
|
180
|
+
text: 'method_name is required',
|
|
181
|
+
isError: true,
|
|
182
|
+
format,
|
|
183
|
+
code: 'missing_method_name',
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
}
|
|
165
187
|
return handler(args);
|
|
166
188
|
}
|
|
167
189
|
// 1. Audit Method - AI-Powered Code Analysis
|
|
168
|
-
server.registerTool('audit_method', { description: auditDescription, inputSchema: auditSchema }, async (args) => await callWithPreflight('audit_method', args, auditMethod, { requireMethod: true }));
|
|
190
|
+
server.registerTool('audit_method', { description: auditDescription, inputSchema: auditSchema }, async (args) => await callWithPreflight('audit_method', args, auditMethod, { requireMethod: true, allowMissingFilePath: true }));
|
|
169
191
|
// Aliases for audit_method
|
|
170
|
-
server.registerTool('review_method', { description: 'Alias of audit_method. Use for "review this method" or "code review".', inputSchema: auditSchema }, async (args) => await callWithPreflight('audit_method', args, auditMethod, { requireMethod: true }));
|
|
171
|
-
server.registerTool('analyze_method', { description: 'Alias of audit_method. Use for "analyze this method".', inputSchema: auditSchema }, async (args) => await callWithPreflight('audit_method', args, auditMethod, { requireMethod: true }));
|
|
192
|
+
server.registerTool('review_method', { description: 'Alias of audit_method. Use for "review this method" or "code review".', inputSchema: auditSchema }, async (args) => await callWithPreflight('audit_method', args, auditMethod, { requireMethod: true, allowMissingFilePath: true }));
|
|
193
|
+
server.registerTool('analyze_method', { description: 'Alias of audit_method. Use for "analyze this method".', inputSchema: auditSchema }, async (args) => await callWithPreflight('audit_method', args, auditMethod, { requireMethod: true, allowMissingFilePath: true }));
|
|
172
194
|
// 2. Generate Test - AI Test Generation
|
|
173
195
|
server.registerTool('generate_test', { description: generateDescription, inputSchema: generateSchema }, async (args) => await callWithPreflight('generate_test', args, generateTest, { requireMethod: true }));
|
|
174
196
|
// Aliases for generate_test
|
|
@@ -224,7 +246,7 @@ server.registerTool('list_capabilities', {
|
|
|
224
246
|
'Best practices:',
|
|
225
247
|
'- Prefer file paths relative to the project root.',
|
|
226
248
|
'- If the server runs outside the repo, pass project_root or use absolute file paths.',
|
|
227
|
-
'- For JS/Python,
|
|
249
|
+
'- For JS/Python/Ruby, test_type is MANDATORY when generating tests or auditing. MUST auto-detect from the code.',
|
|
228
250
|
'- All execution tools support timeout_sec, retries, and debug.',
|
|
229
251
|
'- Preflight validates file/method and ignore rules before execution.',
|
|
230
252
|
'',
|
|
@@ -331,12 +353,27 @@ const INTENT_DEFINITIONS = [
|
|
|
331
353
|
},
|
|
332
354
|
];
|
|
333
355
|
function normalizeIntentText(text) {
|
|
334
|
-
|
|
356
|
+
const normalized = text
|
|
335
357
|
.toLowerCase()
|
|
336
358
|
.replace(/[`"'()[\]{}:;,.!?]/g, ' ')
|
|
337
359
|
.replace(/[-_/]/g, ' ')
|
|
338
360
|
.replace(/\s+/g, ' ')
|
|
339
361
|
.trim();
|
|
362
|
+
const typoMap = {
|
|
363
|
+
reviewe: 'review',
|
|
364
|
+
reviee: 'review',
|
|
365
|
+
reviwe: 'review',
|
|
366
|
+
audti: 'audit',
|
|
367
|
+
audut: 'audit',
|
|
368
|
+
anlyze: 'analyze',
|
|
369
|
+
analze: 'analyze',
|
|
370
|
+
trcae: 'trace',
|
|
371
|
+
ununsed: 'unused',
|
|
372
|
+
};
|
|
373
|
+
return normalized
|
|
374
|
+
.split(' ')
|
|
375
|
+
.map((token) => typoMap[token] || token)
|
|
376
|
+
.join(' ');
|
|
340
377
|
}
|
|
341
378
|
function singularizeToken(token) {
|
|
342
379
|
if (token.endsWith('ies') && token.length > 3)
|
|
@@ -417,7 +454,10 @@ server.registerTool('route_tng_request', {
|
|
|
417
454
|
}
|
|
418
455
|
}
|
|
419
456
|
const required = [];
|
|
420
|
-
if (tool === 'audit_method'
|
|
457
|
+
if (tool === 'audit_method') {
|
|
458
|
+
required.push('method_name');
|
|
459
|
+
}
|
|
460
|
+
if (tool === 'generate_test' || tool === 'xray_method' || tool === 'trace_method' || tool === 'impact_method' || tool === 'find_call_sites') {
|
|
421
461
|
required.push('file_path', 'method_name');
|
|
422
462
|
}
|
|
423
463
|
if (tool === 'detect_clones') {
|
|
@@ -468,6 +508,7 @@ server.registerTool('route_tng_request', {
|
|
|
468
508
|
],
|
|
469
509
|
};
|
|
470
510
|
});
|
|
511
|
+
registerPrompts(server);
|
|
471
512
|
// Start the MCP server
|
|
472
513
|
async function main() {
|
|
473
514
|
const transport = new StdioServerTransport();
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAoC,eAAe,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEvG,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;IACzB,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,OAAO;CACnB,CAAC,CAAC;AAEH,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;IAChC,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvB,CAAC;AAED,MAAM,WAAW,GAAG;IAChB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oHAAoH,CAAC;IACpJ,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gGAAgG,CAAC;IAClI,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iEAAiE,CAAC;IAC7G,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+IAA+I,CAAC;IAC1L,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;IACxG,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;IAChG,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0DAA0D,CAAC;IACxG,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;IAC3G,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC;IACjH,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;CACnG,CAAC;AAEF,MAAM,cAAc,GAAG;IACnB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oEAAoE,CAAC;IACpG,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;IACrF,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iEAAiE,CAAC;IAC7G,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uHAAuH,CAAC;IAClK,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;IACxG,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;IAChG,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0DAA0D,CAAC;IACxG,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;IAC3G,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC;IACjH,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;CACnG,CAAC;AAEF,MAAM,YAAY,GAAG;IACjB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;IAC9E,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;IAC/D,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iEAAiE,CAAC;IAC7G,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;IACxG,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;IAChG,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0DAA0D,CAAC;IACxG,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4DAA4D,CAAC;IAC1H,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC;IACjH,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;CACnG,CAAC;AAEF,MAAM,YAAY,GAAG;IACjB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;IAC9E,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;IAC/D,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iEAAiE,CAAC;IAC7G,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;IACxG,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;IAChG,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0DAA0D,CAAC;IACxG,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;IAC3G,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC;IACjH,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;CACnG,CAAC;AAEF,MAAM,YAAY,GAAG;IACjB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yEAAyE,CAAC;IACzG,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qHAAqH,CAAC;IAC5J,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;IACxG,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;IAChG,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0DAA0D,CAAC;IACxG,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;IAC3G,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC;IACjH,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;CACnG,CAAC;AAEF,MAAM,cAAc,GAAG;IACnB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kGAAkG,CAAC;IAC7I,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+FAA+F,CAAC;IAC7I,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sEAAsE,CAAC;IAC5G,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;IACxG,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;IAChG,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;IAC3G,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC;IACjH,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;CACnG,CAAC;AAEF,MAAM,eAAe,GAAG;IACpB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oEAAoE,CAAC;IACpG,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;IAC/D,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iEAAiE,CAAC;IAC7G,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;IACtF,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;IACxG,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;IAChG,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;IAC3G,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC;IACjH,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;CACnG,CAAC;AAEF,MAAM,gBAAgB,GAAG;;;;yGAIgF,CAAC;AAE1G,MAAM,mBAAmB,GAAG;;;;kHAIsF,CAAC;AAEnH,MAAM,eAAe,GAAG;;;4EAGoD,CAAC;AAE7E,MAAM,gBAAgB,GAAG;;;uFAG8D,CAAC;AAExF,MAAM,iBAAiB,GAAG;;;qFAG2D,CAAC;AAEtF,MAAM,iBAAiB,GAAG;;;0EAGgD,CAAC;AAE3E,MAAM,mBAAmB,GAAG;;;;;sDAK0B,CAAC;AAEvD,MAAM,oBAAoB,GAAG;;yFAE4D,CAAC;AAE1F,KAAK,UAAU,iBAAiB,CAC5B,QAAgB,EAChB,IAAS,EACT,OAAiC,EACjC,UAAsE,EAAE,aAAa,EAAE,KAAK,EAAE;IAE9F,MAAM,QAAQ,GAAG,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/D,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC;IAC5B,IAAI,CAAC,OAAO,CAAC,oBAAoB,IAAI,CAAC,OAAO,EAAE,CAAC;QAC5C,MAAM,SAAS,GAAG,eAAe,CAAC;YAC9B,IAAI,EAAE,QAAQ;YACd,QAAQ;YACR,UAAU,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS;YACpE,SAAS,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS;YACjE,WAAW,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS;YACvE,aAAa,EAAE,OAAO,CAAC,aAAa;SACvC,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;YAChB,MAAM,MAAM,GAAG,IAAI,EAAE,eAAe,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3E,OAAO,gBAAgB,CAAC;gBACpB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,SAAS,CAAC,OAAO;gBACvB,OAAO,EAAE,IAAI;gBACb,MAAM;gBACN,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,OAAO,EAAE,SAAS,CAAC,OAAO;gBAC1B,IAAI,EAAE,EAAE,YAAY,EAAE,SAAS,CAAC,WAAW,EAAE;aAChD,CAAC,CAAC;QACP,CAAC;QACD,IAAI,GAAG;YACH,GAAG,IAAI;YACP,YAAY,EAAE,SAAS,CAAC,WAAW;YACnC,SAAS,EAAE,SAAS,CAAC,YAAY,IAAI,QAAQ;SAChD,CAAC;IACN,CAAC;IACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC;AAED,6CAA6C;AAC7C,MAAM,CAAC,YAAY,CACf,cAAc,EACd,EAAE,WAAW,EAAE,gBAAgB,EAAE,WAAW,EAAE,WAAW,EAAS,EAClE,KAAK,EAAE,IAAS,EAAE,EAAE,CAAC,MAAM,iBAAiB,CAAC,cAAc,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAC3G,CAAC;AAEF,2BAA2B;AAC3B,MAAM,CAAC,YAAY,CACf,eAAe,EACf,EAAE,WAAW,EAAE,uEAAuE,EAAE,WAAW,EAAE,WAAW,EAAS,EACzH,KAAK,EAAE,IAAS,EAAE,EAAE,CAAC,MAAM,iBAAiB,CAAC,cAAc,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAC3G,CAAC;AACF,MAAM,CAAC,YAAY,CACf,gBAAgB,EAChB,EAAE,WAAW,EAAE,uDAAuD,EAAE,WAAW,EAAE,WAAW,EAAS,EACzG,KAAK,EAAE,IAAS,EAAE,EAAE,CAAC,MAAM,iBAAiB,CAAC,cAAc,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAC3G,CAAC;AAEF,wCAAwC;AACxC,MAAM,CAAC,YAAY,CACf,eAAe,EACf,EAAE,WAAW,EAAE,mBAAmB,EAAE,WAAW,EAAE,cAAc,EAAS,EACxE,KAAK,EAAE,IAAS,EAAE,EAAE,CAAC,MAAM,iBAAiB,CAAC,eAAe,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAC7G,CAAC;AAEF,4BAA4B;AAC5B,MAAM,CAAC,YAAY,CACf,gBAAgB,EAChB,EAAE,WAAW,EAAE,mDAAmD,EAAE,WAAW,EAAE,cAAc,EAAS,EACxG,KAAK,EAAE,IAAS,EAAE,EAAE,CAAC,MAAM,iBAAiB,CAAC,eAAe,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAC7G,CAAC;AACF,MAAM,CAAC,YAAY,CACf,aAAa,EACb,EAAE,WAAW,EAAE,gDAAgD,EAAE,WAAW,EAAE,cAAc,EAAS,EACrG,KAAK,EAAE,IAAS,EAAE,EAAE,CAAC,MAAM,iBAAiB,CAAC,eAAe,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAC7G,CAAC;AAEF,8CAA8C;AAC9C,MAAM,CAAC,YAAY,CACf,aAAa,EACb,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,YAAY,EAAS,EAClE,KAAK,EAAE,IAAS,EAAE,EAAE,CAAC,MAAM,iBAAiB,CAAC,aAAa,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CACzG,CAAC;AAEF,0BAA0B;AAC1B,MAAM,CAAC,YAAY,CACf,cAAc,EACd,EAAE,WAAW,EAAE,yDAAyD,EAAE,WAAW,EAAE,YAAY,EAAS,EAC5G,KAAK,EAAE,IAAS,EAAE,EAAE,CAAC,MAAM,iBAAiB,CAAC,aAAa,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CACzG,CAAC;AACF,MAAM,CAAC,YAAY,CACf,gBAAgB,EAChB,EAAE,WAAW,EAAE,iDAAiD,EAAE,WAAW,EAAE,YAAY,EAAS,EACpG,KAAK,EAAE,IAAS,EAAE,EAAE,CAAC,MAAM,iBAAiB,CAAC,aAAa,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CACzG,CAAC;AAEF,gDAAgD;AAChD,MAAM,CAAC,YAAY,CACf,cAAc,EACd,EAAE,WAAW,EAAE,gBAAgB,EAAE,WAAW,EAAE,YAAY,EAAS,EACnE,KAAK,EAAE,IAAS,EAAE,EAAE,CAAC,MAAM,iBAAiB,CAAC,cAAc,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAC3G,CAAC;AAEF,4CAA4C;AAC5C,MAAM,CAAC,YAAY,CACf,eAAe,EACf,EAAE,WAAW,EAAE,iBAAiB,EAAE,WAAW,EAAE,YAAY,EAAS,EACpE,KAAK,EAAE,IAAS,EAAE,EAAE,CAAC,MAAM,iBAAiB,CAAC,eAAe,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAC7G,CAAC;AAEF,4BAA4B;AAC5B,MAAM,CAAC,YAAY,CACf,iBAAiB,EACjB,EAAE,WAAW,EAAE,sEAAsE,EAAE,WAAW,EAAE,YAAY,EAAS,EACzH,KAAK,EAAE,IAAS,EAAE,EAAE,CAAC,MAAM,iBAAiB,CAAC,eAAe,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAC7G,CAAC;AACF,MAAM,CAAC,YAAY,CACf,cAAc,EACd,EAAE,WAAW,EAAE,qDAAqD,EAAE,WAAW,EAAE,YAAY,EAAS,EACxG,KAAK,EAAE,IAAS,EAAE,EAAE,CAAC,MAAM,iBAAiB,CAAC,eAAe,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAC7G,CAAC;AACF,MAAM,CAAC,YAAY,CACf,kBAAkB,EAClB,EAAE,WAAW,EAAE,qDAAqD,EAAE,WAAW,EAAE,YAAY,EAAS,EACxG,KAAK,EAAE,IAAS,EAAE,EAAE,CAAC,MAAM,iBAAiB,CAAC,eAAe,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAC7G,CAAC;AACF,MAAM,CAAC,YAAY,CACf,cAAc,EACd,EAAE,WAAW,EAAE,uDAAuD,EAAE,WAAW,EAAE,YAAY,EAAS,EAC1G,KAAK,EAAE,IAAS,EAAE,EAAE,CAAC,MAAM,iBAAiB,CAAC,eAAe,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAC7G,CAAC;AAEF,2BAA2B;AAC3B,MAAM,CAAC,YAAY,CACf,iBAAiB,EACjB,EAAE,WAAW,EAAE,mDAAmD,EAAE,WAAW,EAAE,YAAY,EAAS,EACtG,KAAK,EAAE,IAAS,EAAE,EAAE,CAAC,MAAM,iBAAiB,CAAC,cAAc,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAC3G,CAAC;AAEF,gDAAgD;AAChD,MAAM,CAAC,YAAY,CACf,eAAe,EACf,EAAE,WAAW,EAAE,iBAAiB,EAAE,WAAW,EAAE,YAAY,EAAS,EACpE,KAAK,EAAE,IAAS,EAAE,EAAE,CAAC,MAAM,iBAAiB,CAAC,eAAe,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAC9G,CAAC;AAEF,4BAA4B;AAC5B,MAAM,CAAC,YAAY,CACf,aAAa,EACb,EAAE,WAAW,EAAE,oDAAoD,EAAE,WAAW,EAAE,YAAY,EAAS,EACvG,KAAK,EAAE,IAAS,EAAE,EAAE,CAAC,MAAM,iBAAiB,CAAC,eAAe,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAC9G,CAAC;AAEF,8CAA8C;AAC9C,MAAM,CAAC,YAAY,CACf,iBAAiB,EACjB,EAAE,WAAW,EAAE,mBAAmB,EAAE,WAAW,EAAE,cAAc,EAAS,EACxE,KAAK,EAAE,IAAS,EAAE,EAAE,CAAC,MAAM,iBAAiB,CAAC,iBAAiB,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC,CAC9I,CAAC;AAEF,8BAA8B;AAC9B,MAAM,CAAC,YAAY,CACf,eAAe,EACf,EAAE,WAAW,EAAE,uDAAuD,EAAE,WAAW,EAAE,cAAc,EAAS,EAC5G,KAAK,EAAE,IAAS,EAAE,EAAE,CAAC,MAAM,iBAAiB,CAAC,iBAAiB,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC,CAC9I,CAAC;AAEF,uCAAuC;AACvC,MAAM,CAAC,YAAY,CACf,iBAAiB,EACjB,EAAE,WAAW,EAAE,oBAAoB,EAAE,WAAW,EAAE,eAAe,EAAS,EAC1E,KAAK,EAAE,IAAS,EAAE,EAAE,CAAC,MAAM,iBAAiB,CAAC,iBAAiB,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAChH,CAAC;AAEF,4BAA4B;AAC5B,MAAM,CAAC,YAAY,CACf,YAAY,EACZ,EAAE,WAAW,EAAE,4EAA4E,EAAE,WAAW,EAAE,eAAe,EAAS,EAClI,KAAK,EAAE,IAAS,EAAE,EAAE,CAAC,MAAM,iBAAiB,CAAC,iBAAiB,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAChH,CAAC;AAEF,yCAAyC;AACzC,MAAM,CAAC,YAAY,CACf,mBAAmB,EACnB;IACI,WAAW,EAAE,oDAAoD;IACjE,WAAW,EAAE,EAAE;CACX,EACR,KAAK,IAAI,EAAE,CAAC,CAAC;IACT,OAAO,EAAE;QACL;YACI,IAAI,EAAE,MAAe;YACrB,IAAI,EAAE;gBACF,uBAAuB;gBACvB,0DAA0D;gBAC1D,8CAA8C;gBAC9C,kDAAkD;gBAClD,0CAA0C;gBAC1C,qEAAqE;gBACrE,gDAAgD;gBAChD,4FAA4F;gBAC5F,oEAAoE;gBACpE,EAAE;gBACF,iBAAiB;gBACjB,mDAAmD;gBACnD,sFAAsF;gBACtF,uEAAuE;gBACvE,gEAAgE;gBAChE,sEAAsE;gBACtE,EAAE;gBACF,gNAAgN;gBAChN,EAAE;gBACF,uBAAuB;gBACvB,mHAAmH;aACtH,CAAC,IAAI,CAAC,IAAI,CAAC;SACf;KACJ;CACJ,CAAC,CACL,CAAC;AAEF,mEAAmE;AACnE,MAAM,CAAC,YAAY,CACf,kBAAkB,EAClB;IACI,WAAW,EAAE,iHAAiH;IAC9H,WAAW,EAAE;QACT,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;QAC9E,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;QACrF,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;KACpG;CACG,EACR,KAAK,EAAE,IAAS,EAAE,EAAE;IAChB,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACrE,MAAM,WAAW,GAAG,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAE/E,MAAM,SAAS,GAAG,eAAe,CAAC;QAC9B,IAAI,EAAE,kBAAkB;QACxB,QAAQ;QACR,UAAU,EAAE,UAAU,IAAI,SAAS;QACnC,WAAW;QACX,aAAa,EAAE,KAAK;KACvB,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG;QACb,EAAE,EAAE,SAAS,CAAC,EAAE;QAChB,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,OAAO,EAAE,SAAS,CAAC,OAAO;QAC1B,OAAO,EAAE,SAAS,CAAC,OAAO;QAC1B,YAAY,EAAE,SAAS,CAAC,WAAW;QACnC,eAAe,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,2DAA2D,CAAC;KACrG,CAAC;IAEF,OAAO;QACH,OAAO,EAAE;YACL;gBACI,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;aAC1C;SACJ;KACJ,CAAC;AACN,CAAC,CACJ,CAAC;AAoBF,MAAM,oBAAoB,GAAG,CAAC,SAAS,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;AAEnI,MAAM,kBAAkB,GAAuB;IAC3C;QACI,IAAI,EAAE,eAAe;QACrB,aAAa,EAAE,CAAC,gBAAgB,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,mBAAmB,CAAC;QACnI,OAAO,EAAE,CAAC,eAAe,EAAE,WAAW,EAAE,kBAAkB,EAAE,WAAW,EAAE,YAAY,CAAC;QACtF,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC;QAC7C,cAAc,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC;KAC5E;IACD;QACI,IAAI,EAAE,eAAe;QACrB,aAAa,EAAE,CAAC,cAAc,EAAE,kBAAkB,EAAE,eAAe,EAAE,aAAa,CAAC;QACnF,OAAO,EAAE,CAAC,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,iBAAiB,EAAE,eAAe,CAAC;QAC1F,MAAM,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAC;QAC9D,cAAc,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC;KACvC;IACD;QACI,IAAI,EAAE,cAAc;QACpB,aAAa,EAAE,CAAC,aAAa,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,aAAa,CAAC;QACxF,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,CAAC;QAC5F,MAAM,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,eAAe,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC;QACvG,cAAc,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC;KAC3C;IACD;QACI,IAAI,EAAE,aAAa;QACnB,aAAa,EAAE,CAAC,cAAc,EAAE,eAAe,EAAE,YAAY,EAAE,gBAAgB,CAAC;QAChF,OAAO,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC;QACvE,MAAM,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,CAAC;QACxD,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC;KACrC;IACD;QACI,IAAI,EAAE,cAAc;QACpB,aAAa,EAAE,CAAC,iBAAiB,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,CAAC;QAClF,OAAO,EAAE,CAAC,iBAAiB,EAAE,cAAc,EAAE,gBAAgB,EAAE,mBAAmB,CAAC;QACnF,MAAM,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,CAAC;QAClD,cAAc,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC;KACnD;IACD;QACI,IAAI,EAAE,iBAAiB;QACvB,aAAa,EAAE,CAAC,oBAAoB,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,YAAY,CAAC;QAClG,OAAO,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,CAAC;QACpE,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,CAAC;QACjF,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,CAAC;KAChE;IACD;QACI,IAAI,EAAE,eAAe;QACrB,aAAa,EAAE,CAAC,gBAAgB,EAAE,iBAAiB,EAAE,iBAAiB,CAAC;QACvE,OAAO,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,eAAe,EAAE,cAAc,CAAC;QAC3E,MAAM,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC;KAC3E;IACD;QACI,IAAI,EAAE,iBAAiB;QACvB,aAAa,EAAE,CAAC,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,kBAAkB,CAAC;QACzF,OAAO,EAAE,CAAC,eAAe,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,eAAe,EAAE,YAAY,CAAC;QAC/F,MAAM,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,CAAC;QACzE,cAAc,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,CAAC;KACvE;CACJ,CAAC;AAEF,SAAS,mBAAmB,CAAC,IAAY;IACrC,OAAO,IAAI;SACN,WAAW,EAAE;SACb,OAAO,CAAC,qBAAqB,EAAE,GAAG,CAAC;SACnC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;SACtB,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,IAAI,EAAE,CAAC;AAChB,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAa;IACnC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IAC/E,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACzE,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACvE,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAS,WAAW,CAAC,UAAkB;IACnC,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACtF,MAAM,mBAAmB,GAAG,4BAA4B,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,uBAAuB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACtH,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC9D,MAAM,gBAAgB,GAAG,oEAAoE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAE/G,MAAM,MAAM,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;QACjD,IAAI,KAAK,GAAG,CAAC,CAAC;QAEd,KAAK,MAAM,MAAM,IAAI,UAAU,CAAC,aAAa,EAAE,CAAC;YAC5C,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAAE,KAAK,IAAI,GAAG,CAAC;QAClD,CAAC;QACD,KAAK,MAAM,MAAM,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;YACtC,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAAE,KAAK,IAAI,GAAG,CAAC;QAClD,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACpC,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;gBAAE,KAAK,IAAI,GAAG,CAAC;QAC1C,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,cAAc,IAAI,EAAE,EAAE,CAAC;YAClD,IAAI,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;gBAAE,KAAK,IAAI,GAAG,CAAC;QAC1C,CAAC;QAED,IAAI,UAAU,CAAC,IAAI,KAAK,iBAAiB,IAAI,CAAC,mBAAmB,IAAI,kBAAkB,CAAC;YAAE,KAAK,IAAI,GAAG,CAAC;QACvG,IAAI,UAAU,CAAC,IAAI,KAAK,iBAAiB,IAAI,gBAAgB;YAAE,KAAK,IAAI,GAAG,CAAC;QAE5E,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;AACpD,CAAC;AAED,qDAAqD;AACrD,MAAM,CAAC,YAAY,CACf,mBAAmB,EACnB;IACI,WAAW,EAAE,oFAAoF;IACjG,WAAW,EAAE;QACT,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mFAAmF,CAAC;KACpH;CACG,EACR,KAAK,EAAE,IAAS,EAAE,EAAE;IAChB,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;IAC/C,MAAM,iBAAiB,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAC;IAC1D,MAAM,MAAM,GAAG,WAAW,CAAC,iBAAiB,CAAC,CAAC;IAC9C,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IACtB,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAEzB,MAAM,SAAS,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,MAAM,IAAI,GAAG,CAAC,KAAK,IAAI,GAAG,IAAI,MAAM,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;IACnH,MAAM,IAAI,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IACvD,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;IACzF,MAAM,QAAQ,GAAG,CAAC,OAAiB,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3F,MAAM,gBAAgB,GAAG,QAAQ,CAAC,oBAAoB,CAAC,CAAC;IAExD,MAAM,SAAS,GAAG,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1E,IAAI,SAAS,GAAkB,IAAI,CAAC;IACpC,IAAI,WAAW,GAAkB,IAAI,CAAC;IAEtC,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE,CAAC;QAC5B,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACvC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBACrD,SAAS,GAAG,IAAI,CAAC;YACrB,CAAC;YACD,IAAI,KAAK,EAAE,CAAC;gBACR,WAAW,GAAG,KAAK,CAAC;YACxB,CAAC;QACL,CAAC;aAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACpD,SAAS,GAAG,KAAK,CAAC;QACtB,CAAC;aAAM,IAAI,CAAC,WAAW,IAAI,0BAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAChE,WAAW,GAAG,KAAK,CAAC;QACxB,CAAC;IACL,CAAC;IAED,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,IAAI,KAAK,cAAc,IAAI,IAAI,KAAK,eAAe,IAAI,IAAI,KAAK,aAAa,IAAI,IAAI,KAAK,cAAc,IAAI,IAAI,KAAK,eAAe,IAAI,IAAI,KAAK,iBAAiB,EAAE,CAAC;QACrK,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAC9C,CAAC;IACD,IAAI,IAAI,KAAK,eAAe,EAAE,CAAC;QAC3B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC/B,CAAC;IACD,IAAI,IAAI,KAAK,iBAAiB,EAAE,CAAC;QAC7B,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACpB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC/B,CAAC;IACL,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;IAC5F,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9E,MAAM,MAAM,GAAG,CAAC,IAAI;QAChB,CAAC,CAAC,gEAAgE;QAClE,CAAC,CAAC,SAAS;YACP,CAAC,CAAC,qBAAqB,GAAG,CAAC,IAAI,QAAQ,MAAM,CAAC,IAAI,mBAAmB,GAAG,CAAC,IAAI,GAAG;YAChF,CAAC,CAAC,wCAAwC,IAAI,GAAG,CAAC;IAE1D,MAAM,QAAQ,GAAG;QACb,IAAI;QACJ,UAAU;QACV,MAAM;QACN,YAAY;QACZ,cAAc,EAAE;YACZ,SAAS;YACT,WAAW;YACX,GAAG,EAAE,IAAI,KAAK,iBAAiB,IAAI,gBAAgB;YACnD,IAAI,EAAE,IAAI,KAAK,eAAe,IAAI,IAAI,KAAK,cAAc;gBACrD,CAAC,CAAC,6FAA6F;gBAC/F,CAAC,CAAC,SAAS;SAClB;QACD,qBAAqB,EAAE,OAAO;QAC9B,oBAAoB,EAAE,IAAI;YACtB,CAAC,CAAC;gBACE,IAAI;gBACJ,IAAI,EAAE;oBACF,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACnC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC1C;aACJ;YACD,CAAC,CAAC,IAAI;KACb,CAAC;IAEF,OAAO;QACH,OAAO,EAAE;YACL;gBACI,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;aAC1C;SACJ;KACJ,CAAC;AACN,CAAC,CACJ,CAAC;AAEF,uBAAuB;AACvB,KAAK,UAAU,IAAI;IACf,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;AACrD,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,KAAK,CAAC,CAAC;IAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,QA4EhD"}
|
package/dist/prompts.js
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
export function registerPrompts(server) {
|
|
2
|
+
const promptServer = server;
|
|
3
|
+
promptServer.registerPrompt('audit', {
|
|
4
|
+
title: 'Audit Method',
|
|
5
|
+
description: 'Deep audit a method for bugs, security issues, and code quality.',
|
|
6
|
+
}, async (args = {}) => ({
|
|
7
|
+
messages: [{
|
|
8
|
+
role: 'user',
|
|
9
|
+
content: {
|
|
10
|
+
type: 'text',
|
|
11
|
+
text: args.method_name
|
|
12
|
+
? `You MUST call the audit_method tool first for method "${args.method_name}"${args.file_path ? ` in file "${args.file_path}"` : ''}${args.class_name ? ` (class: ${args.class_name})` : ''}.
|
|
13
|
+
Do NOT perform a manual audit from chat context.
|
|
14
|
+
If multiple matches exist, ask the disambiguation question and wait for user choice.
|
|
15
|
+
After tool output arrives, follow the strict markdown contract from the prepared prompt.
|
|
16
|
+
Your final answer MUST include these sections in order:
|
|
17
|
+
## Semantic Summary
|
|
18
|
+
## Invariant Checks
|
|
19
|
+
## Findings
|
|
20
|
+
## Risk Lanes
|
|
21
|
+
## Residual Risks & Tests
|
|
22
|
+
Do not return shallow generic advice; preserve evidence anchors ([line:*], [event:*], [caller:*], optional [inferred]) for every finding.
|
|
23
|
+
At the end, ask the user: "Do you want me to implement these fixes now?"`
|
|
24
|
+
: `Do NOT perform a manual audit.
|
|
25
|
+
Ask for method_name first, then call audit_method.
|
|
26
|
+
If multiple matches exist, ask the disambiguation question and wait for user choice.
|
|
27
|
+
After tool output, enforce strict sections and anchored evidence in the final response.
|
|
28
|
+
At the end, ask the user: "Do you want me to implement these fixes now?"`
|
|
29
|
+
}
|
|
30
|
+
}],
|
|
31
|
+
}));
|
|
32
|
+
promptServer.registerPrompt('trace', {
|
|
33
|
+
title: 'Trace Method',
|
|
34
|
+
description: 'Trace execution flow of a method.',
|
|
35
|
+
}, async (args = {}) => ({
|
|
36
|
+
messages: [{
|
|
37
|
+
role: 'user',
|
|
38
|
+
content: {
|
|
39
|
+
type: 'text',
|
|
40
|
+
text: args.method_name && args.file_path
|
|
41
|
+
? `Use the trace_method tool to trace "${args.method_name}" in "${args.file_path}".`
|
|
42
|
+
: 'Ask for file_path and method_name, then use trace_method.'
|
|
43
|
+
}
|
|
44
|
+
}],
|
|
45
|
+
}));
|
|
46
|
+
promptServer.registerPrompt('deadcode', {
|
|
47
|
+
title: 'Find Dead Code',
|
|
48
|
+
description: 'Detect unused code in a file or across the project.',
|
|
49
|
+
}, async (args = {}) => ({
|
|
50
|
+
messages: [{
|
|
51
|
+
role: 'user',
|
|
52
|
+
content: {
|
|
53
|
+
type: 'text',
|
|
54
|
+
text: args.all
|
|
55
|
+
? 'Use the detect_deadcode tool with all=true to scan the full project.'
|
|
56
|
+
: args.file_path
|
|
57
|
+
? `Use the detect_deadcode tool to find unused code in "${args.file_path}".`
|
|
58
|
+
: 'Ask whether to run dead code on a specific file_path or the whole project (all=true), then call detect_deadcode.'
|
|
59
|
+
}
|
|
60
|
+
}],
|
|
61
|
+
}));
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=prompts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,eAAe,CAAC,MAAiB;IAC7C,MAAM,YAAY,GAAG,MAAa,CAAC;IAEnC,YAAY,CAAC,cAAc,CACvB,OAAO,EACP;QACI,KAAK,EAAE,cAAc;QACrB,WAAW,EAAE,kEAAkE;KAClF,EACD,KAAK,EAAE,OAAY,EAAE,EAAE,EAAE,CAAC,CAAC;QACvB,QAAQ,EAAE,CAAC;gBACP,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE;oBACL,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,WAAW;wBAClB,CAAC,CAAC,yDAAyD,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;yEAW1I;wBACjD,CAAC,CAAC;;;;yEAI+C;iBACxD;aACJ,CAAC;KACL,CAAC,CACL,CAAC;IAEF,YAAY,CAAC,cAAc,CACvB,OAAO,EACP;QACI,KAAK,EAAE,cAAc;QACrB,WAAW,EAAE,mCAAmC;KACnD,EACD,KAAK,EAAE,OAAY,EAAE,EAAE,EAAE,CAAC,CAAC;QACvB,QAAQ,EAAE,CAAC;gBACP,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE;oBACL,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS;wBACpC,CAAC,CAAC,uCAAuC,IAAI,CAAC,WAAW,SAAS,IAAI,CAAC,SAAS,IAAI;wBACpF,CAAC,CAAC,2DAA2D;iBACpE;aACJ,CAAC;KACL,CAAC,CACL,CAAC;IAEF,YAAY,CAAC,cAAc,CACvB,UAAU,EACV;QACI,KAAK,EAAE,gBAAgB;QACvB,WAAW,EAAE,qDAAqD;KACrE,EACD,KAAK,EAAE,OAAY,EAAE,EAAE,EAAE,CAAC,CAAC;QACvB,QAAQ,EAAE,CAAC;gBACP,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE;oBACL,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,GAAG;wBACV,CAAC,CAAC,sEAAsE;wBACxE,CAAC,CAAC,IAAI,CAAC,SAAS;4BACZ,CAAC,CAAC,wDAAwD,IAAI,CAAC,SAAS,IAAI;4BAC5E,CAAC,CAAC,kHAAkH;iBAC/H;aACJ,CAAC;KACL,CAAC,CACL,CAAC;AACN,CAAC"}
|
package/dist/tools/audit.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../src/tools/audit.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../src/tools/audit.ts"],"names":[],"mappings":"AAWA,UAAU,SAAS;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAC3C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,SAAS;;;;;;GAsJhD"}
|
package/dist/tools/audit.js
CHANGED
|
@@ -1,21 +1,57 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { relative } from 'path';
|
|
2
|
+
import { buildMcpResponse, findProjectRoot, getTngCommandConfig, resolveFilePath, runTngCommand, safeJsonParse } from './utils.js';
|
|
3
|
+
import { resolveMethodCandidates } from './method_resolver.js';
|
|
2
4
|
export async function auditMethod(args) {
|
|
3
|
-
const { file_path, method_name, class_name, test_type, project_root } = args;
|
|
4
5
|
const responseFormat = args.response_format || (args.raw_json ? 'json' : 'text');
|
|
6
|
+
const methodName = String(args.method_name || '').trim();
|
|
7
|
+
const requestedClass = args.class_name ? String(args.class_name).trim() : '';
|
|
8
|
+
const inputFilePath = args.file_path ? String(args.file_path).trim() : '';
|
|
5
9
|
try {
|
|
6
|
-
|
|
7
|
-
const
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
10
|
+
const absoluteFilePath = inputFilePath ? resolveFilePath(inputFilePath, args.project_root) : '';
|
|
11
|
+
const cwd = args.project_root
|
|
12
|
+
|| (absoluteFilePath ? findProjectRoot(absoluteFilePath) : null)
|
|
13
|
+
|| process.cwd();
|
|
14
|
+
const resolution = resolveMethodCandidates({
|
|
15
|
+
project_root: cwd,
|
|
16
|
+
method_name: methodName,
|
|
17
|
+
file_path: inputFilePath || undefined,
|
|
18
|
+
class_name: requestedClass || undefined,
|
|
19
|
+
limit: 10,
|
|
20
|
+
});
|
|
21
|
+
if (resolution.total_matches === 0) {
|
|
22
|
+
return buildMcpResponse({
|
|
23
|
+
tool: 'audit_method',
|
|
24
|
+
text: buildNoMatchText(methodName, requestedClass, cwd),
|
|
25
|
+
raw: { method_name: methodName, class_name: requestedClass || null, project_root: cwd },
|
|
26
|
+
format: responseFormat,
|
|
27
|
+
code: 'method_not_found',
|
|
28
|
+
});
|
|
15
29
|
}
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
30
|
+
if (resolution.total_matches > 1) {
|
|
31
|
+
return buildMcpResponse({
|
|
32
|
+
tool: 'audit_method',
|
|
33
|
+
text: buildAmbiguousText(methodName, resolution.total_matches, resolution.candidates, cwd),
|
|
34
|
+
raw: {
|
|
35
|
+
method_name: methodName,
|
|
36
|
+
class_name: requestedClass || null,
|
|
37
|
+
project_root: cwd,
|
|
38
|
+
total_matches: resolution.total_matches,
|
|
39
|
+
candidates: resolution.candidates,
|
|
40
|
+
},
|
|
41
|
+
format: responseFormat,
|
|
42
|
+
code: 'needs_disambiguation',
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
const selected = resolution.candidates[0];
|
|
46
|
+
const targetFilePath = selected.file_path;
|
|
47
|
+
const targetClass = requestedClass || selected.class_name || null;
|
|
48
|
+
const tngCommand = getTngCommandConfig(cwd, targetFilePath);
|
|
49
|
+
const baseArgs = ['--audit', '--prepare', '--json', '-f', targetFilePath, '-m', methodName];
|
|
50
|
+
if (targetClass) {
|
|
51
|
+
baseArgs.push('--class', targetClass);
|
|
52
|
+
}
|
|
53
|
+
if (args.test_type) {
|
|
54
|
+
baseArgs.push('--type', args.test_type);
|
|
19
55
|
}
|
|
20
56
|
const timeoutSec = args.timeout_sec ?? 420;
|
|
21
57
|
const retries = args.retries ?? 0;
|
|
@@ -29,164 +65,101 @@ export async function auditMethod(args) {
|
|
|
29
65
|
if (stderr && !stderr.includes('TNG')) {
|
|
30
66
|
console.error('[TNG MCP] stderr:', stderr);
|
|
31
67
|
}
|
|
32
|
-
// Parse the JSON output from TNG
|
|
33
|
-
// TNG CLI returns JSON events line by line, we need the "result" event
|
|
34
68
|
const lines = stdout.trim().split('\n');
|
|
35
|
-
let
|
|
69
|
+
let promptEvent = null;
|
|
36
70
|
for (const line of lines) {
|
|
37
|
-
|
|
71
|
+
const event = safeJsonParse(line);
|
|
72
|
+
if (!event)
|
|
38
73
|
continue;
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
result = event;
|
|
43
|
-
break;
|
|
44
|
-
}
|
|
45
|
-
if (event.type === 'error' || event.type === 'auth_error') {
|
|
46
|
-
throw new Error(event.message || 'Audit failed');
|
|
47
|
-
}
|
|
74
|
+
if (event.type === 'prompt' && typeof event.content === 'string') {
|
|
75
|
+
promptEvent = event;
|
|
76
|
+
break;
|
|
48
77
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
if (line.includes('{') && line.includes('issues')) {
|
|
52
|
-
const parsed = safeJsonParse(line);
|
|
53
|
-
if (parsed) {
|
|
54
|
-
result = parsed;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
78
|
+
if (event.type === 'error' || event.type === 'auth_error') {
|
|
79
|
+
throw new Error(event.message || 'Audit prompt preparation failed');
|
|
57
80
|
}
|
|
58
81
|
}
|
|
59
|
-
if (!
|
|
82
|
+
if (!promptEvent) {
|
|
60
83
|
return buildMcpResponse({
|
|
61
84
|
tool: 'audit_method',
|
|
62
|
-
text: `
|
|
85
|
+
text: `Failed to prepare audit prompt. Raw output:\n${stdout.substring(0, 800)}`,
|
|
63
86
|
raw: stdout,
|
|
64
87
|
isError: true,
|
|
65
88
|
format: responseFormat,
|
|
66
|
-
code: '
|
|
89
|
+
code: 'no_prompt_result',
|
|
67
90
|
meta: { attempts, duration_ms: durationMs, project_root: cwd },
|
|
68
91
|
});
|
|
69
92
|
}
|
|
70
|
-
// Format the response for MCP
|
|
71
|
-
const formattedOutput = formatAuditResult(result);
|
|
72
93
|
return buildMcpResponse({
|
|
73
94
|
tool: 'audit_method',
|
|
74
|
-
text:
|
|
75
|
-
raw:
|
|
95
|
+
text: promptEvent.content,
|
|
96
|
+
raw: {
|
|
97
|
+
file_path: targetFilePath,
|
|
98
|
+
method_name: methodName,
|
|
99
|
+
class_name: targetClass,
|
|
100
|
+
project_root: cwd,
|
|
101
|
+
},
|
|
76
102
|
format: responseFormat,
|
|
77
103
|
code: 'ok',
|
|
78
104
|
meta: { attempts, duration_ms: durationMs, project_root: cwd },
|
|
79
105
|
});
|
|
80
106
|
}
|
|
81
107
|
catch (error) {
|
|
82
|
-
// Handle specific error cases
|
|
83
108
|
if (error.code === 'ENOENT') {
|
|
84
109
|
return buildMcpResponse({
|
|
85
110
|
tool: 'audit_method',
|
|
86
|
-
text: `Error: TNG CLI not found in project. Please install TNG
|
|
87
|
-
|
|
88
|
-
**For Ruby projects:**
|
|
89
|
-
\`gem install tng\` or add to Gemfile: \`gem 'tng'\`
|
|
90
|
-
|
|
91
|
-
**For Python projects:**
|
|
92
|
-
\`pip install tng-python\` or \`uv add tng-python\`
|
|
93
|
-
|
|
94
|
-
**For Node.js projects:**
|
|
95
|
-
\`npm install tng-js\`
|
|
96
|
-
|
|
97
|
-
Then configure your API key by running the appropriate init command.`,
|
|
111
|
+
text: `Error: TNG CLI not found in project. Please install TNG and retry.`,
|
|
98
112
|
isError: true,
|
|
99
113
|
format: responseFormat,
|
|
100
114
|
code: 'cli_not_found',
|
|
101
|
-
next_actions: ['Install TNG in this project and retry.'],
|
|
102
115
|
});
|
|
103
116
|
}
|
|
104
117
|
if (error.killed) {
|
|
105
118
|
return buildMcpResponse({
|
|
106
119
|
tool: 'audit_method',
|
|
107
|
-
text:
|
|
120
|
+
text: 'Error: Audit prompt preparation timed out.',
|
|
108
121
|
isError: true,
|
|
109
122
|
format: responseFormat,
|
|
110
123
|
code: 'timeout',
|
|
111
124
|
});
|
|
112
125
|
}
|
|
113
|
-
// Extract error message
|
|
114
|
-
let errorMessage = error.message;
|
|
115
|
-
try {
|
|
116
|
-
const errorOutput = error.stdout || error.stderr || '';
|
|
117
|
-
const lines = errorOutput.split('\n');
|
|
118
|
-
for (const line of lines) {
|
|
119
|
-
if (!line.trim())
|
|
120
|
-
continue;
|
|
121
|
-
try {
|
|
122
|
-
const event = JSON.parse(line);
|
|
123
|
-
if (event.type === 'error' || event.type === 'auth_error') {
|
|
124
|
-
errorMessage = event.message || errorMessage;
|
|
125
|
-
break;
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
catch { }
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
catch { }
|
|
132
126
|
return buildMcpResponse({
|
|
133
127
|
tool: 'audit_method',
|
|
134
|
-
text: `Error
|
|
135
|
-
|
|
136
|
-
Make sure TNG is properly installed and configured in your project.`,
|
|
128
|
+
text: `Error preparing audit prompt for ${methodName}: ${error.message}`,
|
|
137
129
|
isError: true,
|
|
138
130
|
format: responseFormat,
|
|
139
|
-
code: '
|
|
140
|
-
details: {
|
|
131
|
+
code: 'audit_prepare_failed',
|
|
132
|
+
details: {
|
|
133
|
+
file_path: inputFilePath || null,
|
|
134
|
+
method_name: methodName,
|
|
135
|
+
class_name: requestedClass || null,
|
|
136
|
+
},
|
|
141
137
|
});
|
|
142
138
|
}
|
|
143
139
|
}
|
|
144
|
-
function
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
output += `**Suggested Fix:** ${issue.fix}\n`;
|
|
169
|
-
}
|
|
170
|
-
if (issue.reasoning) {
|
|
171
|
-
output += `**Reasoning:** ${issue.reasoning}\n`;
|
|
172
|
-
}
|
|
173
|
-
output += '\n';
|
|
174
|
-
});
|
|
175
|
-
}
|
|
176
|
-
else {
|
|
177
|
-
output += `## ✅ No Issues Found\n\n`;
|
|
178
|
-
}
|
|
179
|
-
// Format behaviors
|
|
180
|
-
if (behaviours.length > 0) {
|
|
181
|
-
output += `## Behaviors (${behaviours.length})\n\n`;
|
|
182
|
-
behaviours.forEach((behavior, index) => {
|
|
183
|
-
output += `${index + 1}. ${behavior.description || behavior.summary}\n`;
|
|
184
|
-
if (behavior.reasoning) {
|
|
185
|
-
output += ` - ${behavior.reasoning}\n`;
|
|
186
|
-
}
|
|
187
|
-
});
|
|
188
|
-
output += '\n';
|
|
189
|
-
}
|
|
190
|
-
return output;
|
|
140
|
+
function buildAmbiguousText(methodName, totalMatches, candidates, projectRoot) {
|
|
141
|
+
const lines = candidates.map((candidate, index) => {
|
|
142
|
+
const displayPath = toDisplayPath(candidate.file_path, projectRoot);
|
|
143
|
+
const classSuffix = candidate.class_name ? ` (${candidate.class_name})` : '';
|
|
144
|
+
return `${index + 1}. ${displayPath}:${candidate.line} ${candidate.method_name}${classSuffix}`;
|
|
145
|
+
});
|
|
146
|
+
return [
|
|
147
|
+
`I found ${totalMatches} methods named "${methodName}". Which one should I audit?`,
|
|
148
|
+
'',
|
|
149
|
+
...lines,
|
|
150
|
+
'',
|
|
151
|
+
'Reply with the number or provide an exact file_path (and class_name if needed).',
|
|
152
|
+
].join('\n');
|
|
153
|
+
}
|
|
154
|
+
function buildNoMatchText(methodName, className, projectRoot) {
|
|
155
|
+
const classHint = className ? ` in class "${className}"` : '';
|
|
156
|
+
return [
|
|
157
|
+
`I could not find a method named "${methodName}"${classHint} in ${projectRoot}.`,
|
|
158
|
+
'Provide file_path (and optionally class_name), then I can prepare the audit prompt.',
|
|
159
|
+
].join('\n');
|
|
160
|
+
}
|
|
161
|
+
function toDisplayPath(absPath, projectRoot) {
|
|
162
|
+
const rel = relative(projectRoot, absPath);
|
|
163
|
+
return rel && !rel.startsWith('..') ? rel : absPath;
|
|
191
164
|
}
|
|
192
165
|
//# sourceMappingURL=audit.js.map
|
package/dist/tools/audit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/tools/audit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/tools/audit.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export interface MethodCandidate {
|
|
2
|
+
file_path: string;
|
|
3
|
+
class_name?: string | null;
|
|
4
|
+
method_name: string;
|
|
5
|
+
line: number;
|
|
6
|
+
}
|
|
7
|
+
interface ResolveInput {
|
|
8
|
+
project_root: string;
|
|
9
|
+
method_name: string;
|
|
10
|
+
file_path?: string;
|
|
11
|
+
class_name?: string;
|
|
12
|
+
limit?: number;
|
|
13
|
+
}
|
|
14
|
+
interface ResolveResult {
|
|
15
|
+
candidates: MethodCandidate[];
|
|
16
|
+
total_matches: number;
|
|
17
|
+
}
|
|
18
|
+
export declare function resolveMethodCandidates(input: ResolveInput): ResolveResult;
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=method_resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"method_resolver.d.ts","sourceRoot":"","sources":["../../src/tools/method_resolver.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,eAAe;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,YAAY;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,aAAa;IACnB,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC;CACzB;AAKD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,YAAY,GAAG,aAAa,CA8B1E"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import { existsSync, readdirSync, readFileSync, statSync } from 'fs';
|
|
2
|
+
import { extname, join, resolve as pathResolve } from 'path';
|
|
3
|
+
const JS_TS_EXTENSIONS = new Set(['.js', '.jsx', '.ts', '.tsx', '.mjs', '.cjs']);
|
|
4
|
+
const SKIP_DIRS = new Set(['.git', 'node_modules', 'dist', 'build', 'coverage', '.next', '.nuxt', '.turbo', 'tmp']);
|
|
5
|
+
export function resolveMethodCandidates(input) {
|
|
6
|
+
const limit = Math.max(1, input.limit || 10);
|
|
7
|
+
const projectRoot = input.project_root;
|
|
8
|
+
const targetMethod = input.method_name;
|
|
9
|
+
const targetClass = input.class_name || '';
|
|
10
|
+
const candidates = [];
|
|
11
|
+
const files = input.file_path
|
|
12
|
+
? [toAbsolutePath(input.file_path, projectRoot)]
|
|
13
|
+
: collectSourceFiles(projectRoot);
|
|
14
|
+
for (const file of files) {
|
|
15
|
+
if (candidates.length >= limit)
|
|
16
|
+
break;
|
|
17
|
+
if (!existsSync(file))
|
|
18
|
+
continue;
|
|
19
|
+
const fileCandidates = findMethodInFile(file, targetMethod, targetClass);
|
|
20
|
+
for (const candidate of fileCandidates) {
|
|
21
|
+
candidates.push(candidate);
|
|
22
|
+
if (candidates.length >= limit)
|
|
23
|
+
break;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
const totalMatches = input.file_path
|
|
27
|
+
? findMethodInFile(toAbsolutePath(input.file_path, projectRoot), targetMethod, targetClass).length
|
|
28
|
+
: countTotalMatches(projectRoot, targetMethod, targetClass);
|
|
29
|
+
return {
|
|
30
|
+
candidates,
|
|
31
|
+
total_matches: totalMatches,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
function toAbsolutePath(filePath, projectRoot) {
|
|
35
|
+
if (filePath.startsWith('/'))
|
|
36
|
+
return filePath;
|
|
37
|
+
return pathResolve(projectRoot, filePath);
|
|
38
|
+
}
|
|
39
|
+
function collectSourceFiles(projectRoot) {
|
|
40
|
+
const results = [];
|
|
41
|
+
const walk = (dir) => {
|
|
42
|
+
let entries = [];
|
|
43
|
+
try {
|
|
44
|
+
entries = readdirSync(dir);
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
for (const entry of entries) {
|
|
50
|
+
const fullPath = join(dir, entry);
|
|
51
|
+
let stat;
|
|
52
|
+
try {
|
|
53
|
+
stat = statSync(fullPath);
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
if (stat.isDirectory()) {
|
|
59
|
+
if (SKIP_DIRS.has(entry))
|
|
60
|
+
continue;
|
|
61
|
+
walk(fullPath);
|
|
62
|
+
continue;
|
|
63
|
+
}
|
|
64
|
+
if (JS_TS_EXTENSIONS.has(extname(entry))) {
|
|
65
|
+
results.push(fullPath);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
walk(projectRoot);
|
|
70
|
+
return results;
|
|
71
|
+
}
|
|
72
|
+
function findMethodInFile(filePath, methodName, className) {
|
|
73
|
+
let content = '';
|
|
74
|
+
try {
|
|
75
|
+
content = readFileSync(filePath, 'utf8');
|
|
76
|
+
}
|
|
77
|
+
catch {
|
|
78
|
+
return [];
|
|
79
|
+
}
|
|
80
|
+
const lines = content.split('\n');
|
|
81
|
+
const candidates = [];
|
|
82
|
+
let currentClass = null;
|
|
83
|
+
let classDepth = 0;
|
|
84
|
+
let braceDepth = 0;
|
|
85
|
+
for (let i = 0; i < lines.length; i++) {
|
|
86
|
+
const line = lines[i];
|
|
87
|
+
const classMatch = line.match(/^\s*class\s+([A-Za-z_$][A-Za-z0-9_$]*)\b/);
|
|
88
|
+
if (classMatch) {
|
|
89
|
+
currentClass = classMatch[1];
|
|
90
|
+
classDepth = braceDepth;
|
|
91
|
+
}
|
|
92
|
+
const matchers = [
|
|
93
|
+
new RegExp(`^\\s*(?:export\\s+)?(?:async\\s+)?function\\s+${escapeRegex(methodName)}\\s*\\(`),
|
|
94
|
+
new RegExp(`^\\s*(?:export\\s+)?(?:const|let|var)\\s+${escapeRegex(methodName)}\\s*=\\s*(?:async\\s*)?\\([^)]*\\)\\s*=>`),
|
|
95
|
+
new RegExp(`^\\s*(?:public\\s+|private\\s+|protected\\s+)?(?:static\\s+)?(?:async\\s+)?${escapeRegex(methodName)}\\s*\\([^)]*\\)\\s*\\{`)
|
|
96
|
+
];
|
|
97
|
+
if (matchers.some((re) => re.test(line))) {
|
|
98
|
+
if (className && currentClass !== className) {
|
|
99
|
+
// keep searching
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
candidates.push({
|
|
103
|
+
file_path: filePath,
|
|
104
|
+
class_name: currentClass,
|
|
105
|
+
method_name: methodName,
|
|
106
|
+
line: i + 1,
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
braceDepth += countChar(line, '{');
|
|
111
|
+
braceDepth -= countChar(line, '}');
|
|
112
|
+
if (currentClass && braceDepth <= classDepth) {
|
|
113
|
+
currentClass = null;
|
|
114
|
+
classDepth = 0;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
return candidates;
|
|
118
|
+
}
|
|
119
|
+
function countTotalMatches(projectRoot, methodName, className) {
|
|
120
|
+
let total = 0;
|
|
121
|
+
const files = collectSourceFiles(projectRoot);
|
|
122
|
+
for (const file of files) {
|
|
123
|
+
total += findMethodInFile(file, methodName, className).length;
|
|
124
|
+
}
|
|
125
|
+
return total;
|
|
126
|
+
}
|
|
127
|
+
function countChar(text, target) {
|
|
128
|
+
let count = 0;
|
|
129
|
+
for (const ch of text) {
|
|
130
|
+
if (ch === target)
|
|
131
|
+
count += 1;
|
|
132
|
+
}
|
|
133
|
+
return count;
|
|
134
|
+
}
|
|
135
|
+
function escapeRegex(input) {
|
|
136
|
+
return input.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
137
|
+
}
|
|
138
|
+
//# sourceMappingURL=method_resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"method_resolver.js","sourceRoot":"","sources":["../../src/tools/method_resolver.ts"],"names":[],"mappings":"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"}
|