codesift-mcp 0.7.0 → 0.8.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/dist/cli/git-hooks-installer.d.ts.map +1 -1
- package/dist/cli/git-hooks-installer.js +18 -5
- package/dist/cli/git-hooks-installer.js.map +1 -1
- package/dist/cli/hooks.d.ts.map +1 -1
- package/dist/cli/hooks.js +106 -2
- package/dist/cli/hooks.js.map +1 -1
- package/dist/cli/setup.d.ts +5 -0
- package/dist/cli/setup.d.ts.map +1 -1
- package/dist/cli/setup.js +31 -5
- package/dist/cli/setup.js.map +1 -1
- package/dist/config.d.ts +2 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +10 -1
- package/dist/config.js.map +1 -1
- package/dist/instructions.d.ts +1 -1
- package/dist/instructions.d.ts.map +1 -1
- package/dist/instructions.js +6 -1
- package/dist/instructions.js.map +1 -1
- package/dist/parser/extractors/hono.d.ts.map +1 -1
- package/dist/parser/extractors/hono.js +21 -13
- package/dist/parser/extractors/hono.js.map +1 -1
- package/dist/parser/extractors/php.d.ts +12 -0
- package/dist/parser/extractors/php.d.ts.map +1 -1
- package/dist/parser/extractors/php.js +440 -26
- package/dist/parser/extractors/php.js.map +1 -1
- package/dist/register-tool-loaders.d.ts +16 -0
- package/dist/register-tool-loaders.d.ts.map +1 -1
- package/dist/register-tool-loaders.js +26 -0
- package/dist/register-tool-loaders.js.map +1 -1
- package/dist/register-tools.d.ts +3 -1
- package/dist/register-tools.d.ts.map +1 -1
- package/dist/register-tools.js +354 -7
- package/dist/register-tools.js.map +1 -1
- package/dist/retrieval/codebase-retrieval.d.ts.map +1 -1
- package/dist/retrieval/codebase-retrieval.js +22 -0
- package/dist/retrieval/codebase-retrieval.js.map +1 -1
- package/dist/retrieval/retrieval-schemas.d.ts +4 -0
- package/dist/retrieval/retrieval-schemas.d.ts.map +1 -1
- package/dist/retrieval/semantic-handlers.js +1 -1
- package/dist/retrieval/semantic-handlers.js.map +1 -1
- package/dist/search/semantic.d.ts +21 -5
- package/dist/search/semantic.d.ts.map +1 -1
- package/dist/search/semantic.js +129 -4
- package/dist/search/semantic.js.map +1 -1
- package/dist/search/tool-ranker.js +1 -1
- package/dist/search/tool-ranker.js.map +1 -1
- package/dist/server-helpers.d.ts.map +1 -1
- package/dist/server-helpers.js +96 -1
- package/dist/server-helpers.js.map +1 -1
- package/dist/storage/index-store.d.ts.map +1 -1
- package/dist/storage/index-store.js +7 -5
- package/dist/storage/index-store.js.map +1 -1
- package/dist/storage/registry.d.ts +28 -4
- package/dist/storage/registry.d.ts.map +1 -1
- package/dist/storage/registry.js +126 -5
- package/dist/storage/registry.js.map +1 -1
- package/dist/storage/usage-stats.d.ts +2 -0
- package/dist/storage/usage-stats.d.ts.map +1 -1
- package/dist/storage/usage-stats.js +6 -0
- package/dist/storage/usage-stats.js.map +1 -1
- package/dist/storage/usage-tracker.js +1 -1
- package/dist/storage/usage-tracker.js.map +1 -1
- package/dist/tools/_helpers.d.ts.map +1 -1
- package/dist/tools/_helpers.js +14 -0
- package/dist/tools/_helpers.js.map +1 -1
- package/dist/tools/conversation-tools.js +1 -1
- package/dist/tools/conversation-tools.js.map +1 -1
- package/dist/tools/index-tools.d.ts +12 -0
- package/dist/tools/index-tools.d.ts.map +1 -1
- package/dist/tools/index-tools.js +52 -5
- package/dist/tools/index-tools.js.map +1 -1
- package/dist/tools/insights-tools.d.ts +137 -0
- package/dist/tools/insights-tools.d.ts.map +1 -0
- package/dist/tools/insights-tools.js +438 -0
- package/dist/tools/insights-tools.js.map +1 -0
- package/dist/tools/pattern-tools.d.ts +7 -0
- package/dist/tools/pattern-tools.d.ts.map +1 -1
- package/dist/tools/pattern-tools.js +287 -15
- package/dist/tools/pattern-tools.js.map +1 -1
- package/dist/tools/php-tools.d.ts +78 -4
- package/dist/tools/php-tools.d.ts.map +1 -1
- package/dist/tools/php-tools.js +824 -42
- package/dist/tools/php-tools.js.map +1 -1
- package/dist/tools/php8-compat-tools.d.ts +62 -0
- package/dist/tools/php8-compat-tools.d.ts.map +1 -0
- package/dist/tools/php8-compat-tools.js +287 -0
- package/dist/tools/php8-compat-tools.js.map +1 -0
- package/dist/tools/php8-migration-candidates-tools.d.ts +68 -0
- package/dist/tools/php8-migration-candidates-tools.d.ts.map +1 -0
- package/dist/tools/php8-migration-candidates-tools.js +476 -0
- package/dist/tools/php8-migration-candidates-tools.js.map +1 -0
- package/dist/tools/phpstan-baseline-tools.d.ts +62 -0
- package/dist/tools/phpstan-baseline-tools.d.ts.map +1 -0
- package/dist/tools/phpstan-baseline-tools.js +263 -0
- package/dist/tools/phpstan-baseline-tools.js.map +1 -0
- package/dist/tools/project-tools.d.ts +4 -2
- package/dist/tools/project-tools.d.ts.map +1 -1
- package/dist/tools/project-tools.js +19 -6
- package/dist/tools/project-tools.js.map +1 -1
- package/dist/tools/react-tools.d.ts +24 -0
- package/dist/tools/react-tools.d.ts.map +1 -1
- package/dist/tools/react-tools.js +292 -3
- package/dist/tools/react-tools.js.map +1 -1
- package/dist/tools/search-tools.d.ts.map +1 -1
- package/dist/tools/search-tools.js +92 -10
- package/dist/tools/search-tools.js.map +1 -1
- package/dist/tools/symbol-tools.d.ts.map +1 -1
- package/dist/tools/symbol-tools.js +4 -1
- package/dist/tools/symbol-tools.js.map +1 -1
- package/dist/tools/yii-console-tools.d.ts +69 -0
- package/dist/tools/yii-console-tools.d.ts.map +1 -0
- package/dist/tools/yii-console-tools.js +256 -0
- package/dist/tools/yii-console-tools.js.map +1 -0
- package/dist/tools/yii-migrations-tools.d.ts +79 -0
- package/dist/tools/yii-migrations-tools.d.ts.map +1 -0
- package/dist/tools/yii-migrations-tools.js +543 -0
- package/dist/tools/yii-migrations-tools.js.map +1 -0
- package/dist/tools/yii-modules-tools.d.ts +63 -0
- package/dist/tools/yii-modules-tools.d.ts.map +1 -0
- package/dist/tools/yii-modules-tools.js +201 -0
- package/dist/tools/yii-modules-tools.js.map +1 -0
- package/dist/tools/yii-rbac-tools.d.ts +89 -0
- package/dist/tools/yii-rbac-tools.d.ts.map +1 -0
- package/dist/tools/yii-rbac-tools.js +238 -0
- package/dist/tools/yii-rbac-tools.js.map +1 -0
- package/dist/tools/yii3-attribute-candidates-tools.d.ts +72 -0
- package/dist/tools/yii3-attribute-candidates-tools.d.ts.map +1 -0
- package/dist/tools/yii3-attribute-candidates-tools.js +301 -0
- package/dist/tools/yii3-attribute-candidates-tools.js.map +1 -0
- package/dist/tools/yii3-migration-tools.d.ts +74 -0
- package/dist/tools/yii3-migration-tools.d.ts.map +1 -0
- package/dist/tools/yii3-migration-tools.js +440 -0
- package/dist/tools/yii3-migration-tools.js.map +1 -0
- package/dist/types.d.ts +5 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/constant-file-pattern.d.ts +3 -1
- package/dist/utils/constant-file-pattern.d.ts.map +1 -1
- package/dist/utils/constant-file-pattern.js +6 -4
- package/dist/utils/constant-file-pattern.js.map +1 -1
- package/dist/utils/heritage-edges.d.ts +16 -0
- package/dist/utils/heritage-edges.d.ts.map +1 -1
- package/dist/utils/heritage-edges.js +31 -10
- package/dist/utils/heritage-edges.js.map +1 -1
- package/dist/utils/source-stripper.d.ts +23 -0
- package/dist/utils/source-stripper.d.ts.map +1 -0
- package/dist/utils/source-stripper.js +239 -0
- package/dist/utils/source-stripper.js.map +1 -0
- package/dist/utils/tsconfig-paths.d.ts +2 -2
- package/dist/utils/tsconfig-paths.d.ts.map +1 -1
- package/dist/utils/tsconfig-paths.js +10 -4
- package/dist/utils/tsconfig-paths.js.map +1 -1
- package/dist/utils/wall-clock.d.ts +9 -0
- package/dist/utils/wall-clock.d.ts.map +1 -0
- package/dist/utils/wall-clock.js +19 -0
- package/dist/utils/wall-clock.js.map +1 -0
- package/package.json +1 -1
- package/rules/codesift.md +10 -3
- package/rules/codesift.mdc +10 -3
- package/rules/codex.md +10 -3
- package/rules/gemini.md +10 -3
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PHPStan baseline analyzer (N6).
|
|
3
|
+
*
|
|
4
|
+
* Mature PHP codebases adopt PHPStan incrementally — they raise the level
|
|
5
|
+
* to e.g. 6, generate a baseline file containing every existing error,
|
|
6
|
+
* and treat the baseline as a debt ledger. The Yii2 panel in this gap
|
|
7
|
+
* analysis (tgm-panel) ships an 18 011-line phpstan-baseline.neon — that's
|
|
8
|
+
* roughly 1 800 ignored errors. The team knows the debt is there but has
|
|
9
|
+
* no per-path triage data.
|
|
10
|
+
*
|
|
11
|
+
* This tool parses phpstan-baseline.neon and surfaces:
|
|
12
|
+
* - by_path: files ranked by error count
|
|
13
|
+
* - by_category: error types (no-return-type, undefined-property,
|
|
14
|
+
* iterable-no-value-type, ...) ranked by frequency
|
|
15
|
+
* - quick_wins: files with 1-3 errors — easy refactor targets
|
|
16
|
+
* - aggregate counts (total_ignored, by-severity if hints present)
|
|
17
|
+
*
|
|
18
|
+
* The tool is universal — works on any PHP repo with PHPStan, not only
|
|
19
|
+
* Yii2. Auto-loads on composer.json detection.
|
|
20
|
+
*
|
|
21
|
+
* NEON parsing: NEON is a YAML superset with PHP-specific bracket forms.
|
|
22
|
+
* Rather than pull in a NEON parser dependency we hand-roll a minimal
|
|
23
|
+
* reader — the baseline format is mechanical (parameters: → ignoreErrors:
|
|
24
|
+
* → array of {message, count, path}). Edge cases like nested includes are
|
|
25
|
+
* out of scope; the tool would surface a file_unparseable note rather
|
|
26
|
+
* than crash.
|
|
27
|
+
*/
|
|
28
|
+
import { readFile } from "node:fs/promises";
|
|
29
|
+
import { join } from "node:path";
|
|
30
|
+
import { getCodeIndex } from "./index-tools.js";
|
|
31
|
+
// ---------------------------------------------------------------------------
|
|
32
|
+
// Implementation
|
|
33
|
+
// ---------------------------------------------------------------------------
|
|
34
|
+
const QUICK_WIN_THRESHOLD = 3;
|
|
35
|
+
export async function analyzePhpStanBaseline(repo, options) {
|
|
36
|
+
const index = await getCodeIndex(repo);
|
|
37
|
+
if (!index)
|
|
38
|
+
throw new Error(`Repository "${repo}" not found.`);
|
|
39
|
+
const maxPaths = options?.max_paths ?? 50;
|
|
40
|
+
const explicitPath = options?.baseline_path;
|
|
41
|
+
// Locate the baseline file. Convention: phpstan-baseline.neon at the
|
|
42
|
+
// repo root. Some projects nest it in config/; we try a small candidate
|
|
43
|
+
// list before giving up.
|
|
44
|
+
const candidates = explicitPath
|
|
45
|
+
? [explicitPath]
|
|
46
|
+
: [
|
|
47
|
+
"phpstan-baseline.neon",
|
|
48
|
+
"config/phpstan-baseline.neon",
|
|
49
|
+
".phpstan-baseline.neon",
|
|
50
|
+
];
|
|
51
|
+
let baselineFile = null;
|
|
52
|
+
let content = null;
|
|
53
|
+
for (const c of candidates) {
|
|
54
|
+
try {
|
|
55
|
+
content = await readFile(join(index.root, c), "utf-8");
|
|
56
|
+
baselineFile = c;
|
|
57
|
+
break;
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
continue;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
if (!content || !baselineFile) {
|
|
64
|
+
return {
|
|
65
|
+
repo,
|
|
66
|
+
baseline_file: null,
|
|
67
|
+
total_ignored: 0,
|
|
68
|
+
total_files: 0,
|
|
69
|
+
by_path: [],
|
|
70
|
+
by_category: {},
|
|
71
|
+
quick_wins: [],
|
|
72
|
+
entries: [],
|
|
73
|
+
parse_warnings: [
|
|
74
|
+
`No phpstan-baseline.neon found at ${candidates.join(", ")}`,
|
|
75
|
+
],
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
const { entries, warnings } = parseNeonBaseline(content);
|
|
79
|
+
// Aggregate.
|
|
80
|
+
const byPathMap = new Map();
|
|
81
|
+
const categoryByPath = new Map();
|
|
82
|
+
const byCategory = {};
|
|
83
|
+
for (const e of entries) {
|
|
84
|
+
byPathMap.set(e.path, (byPathMap.get(e.path) ?? 0) + e.count);
|
|
85
|
+
if (!categoryByPath.has(e.path))
|
|
86
|
+
categoryByPath.set(e.path, new Set());
|
|
87
|
+
categoryByPath.get(e.path).add(e.category);
|
|
88
|
+
byCategory[e.category] = (byCategory[e.category] ?? 0) + e.count;
|
|
89
|
+
}
|
|
90
|
+
const byPath = [...byPathMap.entries()]
|
|
91
|
+
.map(([path, count]) => ({ path, count }))
|
|
92
|
+
.sort((a, b) => b.count - a.count)
|
|
93
|
+
.slice(0, maxPaths);
|
|
94
|
+
const quickWins = [...byPathMap.entries()]
|
|
95
|
+
.filter(([, count]) => count <= QUICK_WIN_THRESHOLD)
|
|
96
|
+
.map(([path, count]) => ({
|
|
97
|
+
path,
|
|
98
|
+
count,
|
|
99
|
+
categories: [...(categoryByPath.get(path) ?? [])].sort(),
|
|
100
|
+
}))
|
|
101
|
+
.sort((a, b) => a.count - b.count);
|
|
102
|
+
const totalIgnored = entries.reduce((sum, e) => sum + e.count, 0);
|
|
103
|
+
return {
|
|
104
|
+
repo,
|
|
105
|
+
baseline_file: baselineFile,
|
|
106
|
+
total_ignored: totalIgnored,
|
|
107
|
+
total_files: byPathMap.size,
|
|
108
|
+
by_path: byPath,
|
|
109
|
+
by_category: byCategory,
|
|
110
|
+
quick_wins: quickWins,
|
|
111
|
+
entries: [...entries].sort((a, b) => b.count - a.count),
|
|
112
|
+
parse_warnings: warnings,
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Parse a phpstan-baseline.neon file. The format we care about:
|
|
117
|
+
*
|
|
118
|
+
* parameters:
|
|
119
|
+
* ignoreErrors:
|
|
120
|
+
* -
|
|
121
|
+
* message: "#regex#"
|
|
122
|
+
* count: 3
|
|
123
|
+
* path: relative/path.php
|
|
124
|
+
*
|
|
125
|
+
* NEON allows several syntactic alternatives (single-line vs block,
|
|
126
|
+
* quoted vs unquoted, single-tick vs double-tick strings). We accept the
|
|
127
|
+
* variants PHPStan itself emits. Anything outside `ignoreErrors` is
|
|
128
|
+
* ignored. Includes (top-level `includes:` directive) are not followed —
|
|
129
|
+
* the tool reports against the explicit baseline file only.
|
|
130
|
+
*/
|
|
131
|
+
function parseNeonBaseline(content) {
|
|
132
|
+
const warnings = [];
|
|
133
|
+
const entries = [];
|
|
134
|
+
// Find the ignoreErrors block. Indentation varies between projects, so
|
|
135
|
+
// we anchor on the keyword and walk forward.
|
|
136
|
+
const headerRe = /^\s*ignoreErrors\s*:\s*$/m;
|
|
137
|
+
const headerMatch = headerRe.exec(content);
|
|
138
|
+
if (!headerMatch) {
|
|
139
|
+
return {
|
|
140
|
+
entries,
|
|
141
|
+
warnings: ["No ignoreErrors block found in baseline"],
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
const blockStart = headerMatch.index + headerMatch[0].length;
|
|
145
|
+
// Each entry starts with `-` at the same indent. We split on
|
|
146
|
+
// /^\s*-\s*$/m delimiters and parse each chunk.
|
|
147
|
+
const tail = content.slice(blockStart);
|
|
148
|
+
// Stop at next top-level key (not indented) — handles edge cases where
|
|
149
|
+
// ignoreErrors isn't the last block.
|
|
150
|
+
const stopRe = /^\S/m;
|
|
151
|
+
const stopMatch = stopRe.exec(tail);
|
|
152
|
+
const blockBody = stopMatch ? tail.slice(0, stopMatch.index) : tail;
|
|
153
|
+
// Split on entry markers. NEON entries inside an ignoreErrors block
|
|
154
|
+
// start with `-` followed by either a newline (multi-line entry) or
|
|
155
|
+
// a space + inline { ... }.
|
|
156
|
+
const entryRe = /^\s*-\s*(?:\n|\r\n)/gm;
|
|
157
|
+
const parts = [];
|
|
158
|
+
let lastIdx = -1;
|
|
159
|
+
let m;
|
|
160
|
+
while ((m = entryRe.exec(blockBody)) !== null) {
|
|
161
|
+
if (lastIdx >= 0)
|
|
162
|
+
parts.push(blockBody.slice(lastIdx, m.index));
|
|
163
|
+
lastIdx = m.index + m[0].length;
|
|
164
|
+
}
|
|
165
|
+
if (lastIdx >= 0)
|
|
166
|
+
parts.push(blockBody.slice(lastIdx));
|
|
167
|
+
for (const part of parts) {
|
|
168
|
+
const entry = parseEntryChunk(part);
|
|
169
|
+
if (entry)
|
|
170
|
+
entries.push(entry);
|
|
171
|
+
else
|
|
172
|
+
warnings.push(`Skipped unparseable entry near: ${part.slice(0, 80)}`);
|
|
173
|
+
}
|
|
174
|
+
return { entries, warnings };
|
|
175
|
+
}
|
|
176
|
+
function parseEntryChunk(chunk) {
|
|
177
|
+
// message: extract text between the first quote pair after `message:`.
|
|
178
|
+
const msgMatch = /message\s*:\s*(?:["']((?:[^"'\\]|\\.)*?)["']|(\S[^\n]*))/m.exec(chunk);
|
|
179
|
+
if (!msgMatch)
|
|
180
|
+
return null;
|
|
181
|
+
const message = (msgMatch[1] ?? msgMatch[2] ?? "").trim();
|
|
182
|
+
if (!message)
|
|
183
|
+
return null;
|
|
184
|
+
const countMatch = /count\s*:\s*(\d+)/m.exec(chunk);
|
|
185
|
+
const count = countMatch ? Number(countMatch[1]) : 1;
|
|
186
|
+
// path: unquoted is more common; accept quoted too.
|
|
187
|
+
const pathMatch = /path\s*:\s*(?:["']([^"']+)["']|(\S[^\n]*))/m.exec(chunk);
|
|
188
|
+
if (!pathMatch)
|
|
189
|
+
return null;
|
|
190
|
+
const path = (pathMatch[1] ?? pathMatch[2] ?? "").trim();
|
|
191
|
+
if (!path)
|
|
192
|
+
return null;
|
|
193
|
+
return {
|
|
194
|
+
message,
|
|
195
|
+
count,
|
|
196
|
+
path,
|
|
197
|
+
category: classifyMessage(message),
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Bucket a PHPStan error message into a coarse category. The default
|
|
202
|
+
* categories cover ~95% of typical baseline content; uncategorized
|
|
203
|
+
* messages fall into "other". Categories chosen to give actionable
|
|
204
|
+
* triage signal: "no-return-type" is mechanical to fix, "undefined-property"
|
|
205
|
+
* usually means a missing @property docblock, etc.
|
|
206
|
+
*/
|
|
207
|
+
function classifyMessage(message) {
|
|
208
|
+
const m = message;
|
|
209
|
+
if (/has no return type/i.test(m))
|
|
210
|
+
return "no-return-type";
|
|
211
|
+
if (/has parameter \S+ with no type/i.test(m))
|
|
212
|
+
return "no-parameter-type";
|
|
213
|
+
if (/no value type specified in iterable/i.test(m))
|
|
214
|
+
return "iterable-no-value-type";
|
|
215
|
+
if (/has no type specified/i.test(m))
|
|
216
|
+
return "no-type-specified";
|
|
217
|
+
if (/Access to an undefined property/i.test(m))
|
|
218
|
+
return "undefined-property";
|
|
219
|
+
if (/Access to an undefined static property/i.test(m))
|
|
220
|
+
return "undefined-static-property";
|
|
221
|
+
if (/Call to an undefined method/i.test(m))
|
|
222
|
+
return "undefined-method";
|
|
223
|
+
if (/Call to an undefined static method/i.test(m))
|
|
224
|
+
return "undefined-static-method";
|
|
225
|
+
if (/Undefined variable/i.test(m))
|
|
226
|
+
return "undefined-variable";
|
|
227
|
+
if (/might not be defined/i.test(m))
|
|
228
|
+
return "possibly-undefined-variable";
|
|
229
|
+
if (/Strict comparison/i.test(m))
|
|
230
|
+
return "strict-comparison";
|
|
231
|
+
if (/Loose comparison/i.test(m))
|
|
232
|
+
return "loose-comparison";
|
|
233
|
+
if (/Cannot access/i.test(m))
|
|
234
|
+
return "cannot-access";
|
|
235
|
+
if (/Method \S+ is unused|Property \S+ is unused/i.test(m))
|
|
236
|
+
return "unused-symbol";
|
|
237
|
+
if (/Function \S+ is unused/i.test(m))
|
|
238
|
+
return "unused-function";
|
|
239
|
+
if (/Unreachable statement/i.test(m))
|
|
240
|
+
return "unreachable-statement";
|
|
241
|
+
if (/Dead catch/i.test(m))
|
|
242
|
+
return "dead-catch";
|
|
243
|
+
if (/PHPDoc tag \S+ contains unresolvable/i.test(m))
|
|
244
|
+
return "phpdoc-unresolvable";
|
|
245
|
+
if (/PHPDoc tag \S+ has invalid value/i.test(m))
|
|
246
|
+
return "phpdoc-invalid";
|
|
247
|
+
if (/Generic type \S+ specifies/i.test(m))
|
|
248
|
+
return "generic-type-mismatch";
|
|
249
|
+
if (/Parameter #\d+ \S+ of \S+ expects/i.test(m))
|
|
250
|
+
return "parameter-type-mismatch";
|
|
251
|
+
if (/Cannot call method \S+ on/i.test(m))
|
|
252
|
+
return "method-on-null";
|
|
253
|
+
if (/should return \S+ but returns/i.test(m))
|
|
254
|
+
return "return-type-mismatch";
|
|
255
|
+
if (/instanceof.*always (?:true|false)/i.test(m))
|
|
256
|
+
return "always-true-false";
|
|
257
|
+
if (/Comparison operation/i.test(m))
|
|
258
|
+
return "comparison-operation";
|
|
259
|
+
if (/Result of \|\| is always|Result of && is always/i.test(m))
|
|
260
|
+
return "always-true-false";
|
|
261
|
+
return "other";
|
|
262
|
+
}
|
|
263
|
+
//# sourceMappingURL=phpstan-baseline-tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phpstan-baseline-tools.js","sourceRoot":"","sources":["../../src/tools/phpstan-baseline-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,7 +17,7 @@ export declare const EXTRACTOR_VERSIONS: {
|
|
|
17
17
|
readonly typescript: "3.0.0";
|
|
18
18
|
readonly javascript: "1.0.0";
|
|
19
19
|
readonly python: "1.0.0";
|
|
20
|
-
readonly php: "
|
|
20
|
+
readonly php: "2.0.0";
|
|
21
21
|
readonly astro: "1.0.0";
|
|
22
22
|
readonly kotlin: "1.0.0";
|
|
23
23
|
readonly monorepo: "1.0.0";
|
|
@@ -361,7 +361,9 @@ export interface Yii2Conventions extends PhpConventions {
|
|
|
361
361
|
export declare function extractYii2Conventions(files: {
|
|
362
362
|
path: string;
|
|
363
363
|
}[]): Yii2Conventions;
|
|
364
|
-
|
|
364
|
+
/** Test-only — clear the analyzeProject cache. */
|
|
365
|
+
export declare function resetAnalyzeProjectCacheForTesting(): void;
|
|
366
|
+
export declare function analyzeProject(repoName: string, options?: {
|
|
365
367
|
force?: boolean | undefined;
|
|
366
368
|
}): Promise<ProfileSummary>;
|
|
367
369
|
export interface ProfileSummary {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-tools.d.ts","sourceRoot":"","sources":["../../src/tools/project-tools.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"project-tools.d.ts","sourceRoot":"","sources":["../../src/tools/project-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -27,7 +27,7 @@ export const EXTRACTOR_VERSIONS = {
|
|
|
27
27
|
typescript: "3.0.0", // v3: extends/implements heritage, generics in signatures, enum members as constants, is_async flag, modifiers + accessor_kind in meta, namespace + ambient module declarations, anonymous default export synth, RangeError guard, AST-based import-graph branch with type_only flag + tsconfig paths resolution + find_circular_deps type-only filter (was v2.1: field_definition, CommonJS exports, object-literal methods, class_static_block, generator_function_declaration)
|
|
28
28
|
javascript: "1.0.0", // independent JS version — bump for JS-only extractor changes (CJS, .jsx-specific) without forcing TS reindex
|
|
29
29
|
python: "1.0.0",
|
|
30
|
-
php: "
|
|
30
|
+
php: "2.0.0", // v2: extends/implements/uses_traits/modifiers/attributes on classes; typed properties + readonly + @var fallback on properties; promoted constructor params as synthetic field symbols; backed enum types; method-level modifiers + attributes; Codeception base classes (Unit/Cest/Cept) classify as test_suite — forces full reindex of PHP files
|
|
31
31
|
astro: "1.0.0",
|
|
32
32
|
kotlin: "1.0.0",
|
|
33
33
|
monorepo: "1.0.0", // workspace resolver — bump forces reindex when workspace schema changes
|
|
@@ -1645,10 +1645,12 @@ async function extractGitHealth(projectRoot) {
|
|
|
1645
1645
|
return null;
|
|
1646
1646
|
}
|
|
1647
1647
|
}
|
|
1648
|
-
|
|
1649
|
-
|
|
1650
|
-
|
|
1651
|
-
|
|
1648
|
+
const analyzeProjectCache = new Map();
|
|
1649
|
+
/** Test-only — clear the analyzeProject cache. */
|
|
1650
|
+
export function resetAnalyzeProjectCacheForTesting() {
|
|
1651
|
+
analyzeProjectCache.clear();
|
|
1652
|
+
}
|
|
1653
|
+
export async function analyzeProject(repoName, options = {}) {
|
|
1652
1654
|
const startTime = Date.now();
|
|
1653
1655
|
let files_analyzed = 0;
|
|
1654
1656
|
let files_skipped = 0;
|
|
@@ -1674,6 +1676,15 @@ export async function analyzeProject(repoName, _options = {}) {
|
|
|
1674
1676
|
};
|
|
1675
1677
|
return buildSummary(failedProfile, "(not written — no index)");
|
|
1676
1678
|
}
|
|
1679
|
+
// Cache hit: reuse previous profile when the underlying index hasn't been
|
|
1680
|
+
// touched since we last computed. force=true bypasses (callers needing
|
|
1681
|
+
// fresh analysis even on an unchanged index, e.g. wiki regeneration).
|
|
1682
|
+
if (!options.force) {
|
|
1683
|
+
const cached = analyzeProjectCache.get(repoName);
|
|
1684
|
+
if (cached && cached.updatedAt === index.updated_at) {
|
|
1685
|
+
return cached.profile;
|
|
1686
|
+
}
|
|
1687
|
+
}
|
|
1677
1688
|
// Prefer real project root over conversation index root (~/.claude/projects/...)
|
|
1678
1689
|
// The conversation index root points to Claude's project dir, not the actual git repo
|
|
1679
1690
|
let projectRoot = index.root;
|
|
@@ -1805,7 +1816,9 @@ export async function analyzeProject(repoName, _options = {}) {
|
|
|
1805
1816
|
};
|
|
1806
1817
|
// Write full profile to disk — MCP returns only summary
|
|
1807
1818
|
const profilePath = await writeProfileToDisk(projectRoot, profile);
|
|
1808
|
-
|
|
1819
|
+
const summary = buildSummary(profile, profilePath);
|
|
1820
|
+
analyzeProjectCache.set(repoName, { updatedAt: index.updated_at, profile: summary });
|
|
1821
|
+
return summary;
|
|
1809
1822
|
}
|
|
1810
1823
|
// ---------------------------------------------------------------------------
|
|
1811
1824
|
// Disk persistence — write profile to .zuvo/project-profile.json
|