@vyuhlabs/dxkit 1.6.1 → 2.0.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/CHANGELOG.md +115 -0
- package/README.md +3 -3
- package/dist/agents/extract.d.ts +25 -0
- package/dist/agents/extract.d.ts.map +1 -0
- package/dist/agents/extract.js +186 -0
- package/dist/agents/extract.js.map +1 -0
- package/dist/agents/schemas.d.ts +106 -0
- package/dist/agents/schemas.d.ts.map +1 -0
- package/dist/agents/schemas.js +86 -0
- package/dist/agents/schemas.js.map +1 -0
- package/dist/agents/session.d.ts +28 -0
- package/dist/agents/session.d.ts.map +1 -0
- package/dist/agents/session.js +223 -0
- package/dist/agents/session.js.map +1 -0
- package/dist/analyzers/developer/detailed.js +1 -1
- package/dist/analyzers/developer/detailed.js.map +1 -1
- package/dist/analyzers/dispatcher.d.ts +36 -0
- package/dist/analyzers/dispatcher.d.ts.map +1 -0
- package/dist/analyzers/dispatcher.js +62 -0
- package/dist/analyzers/dispatcher.js.map +1 -0
- package/dist/analyzers/docs/shallow.d.ts +3 -2
- package/dist/analyzers/docs/shallow.d.ts.map +1 -1
- package/dist/analyzers/docs/shallow.js +2 -2
- package/dist/analyzers/docs/shallow.js.map +1 -1
- package/dist/analyzers/dx/shallow.d.ts +3 -2
- package/dist/analyzers/dx/shallow.d.ts.map +1 -1
- package/dist/analyzers/dx/shallow.js +2 -2
- package/dist/analyzers/dx/shallow.js.map +1 -1
- package/dist/analyzers/health/actions.d.ts +3 -3
- package/dist/analyzers/health/actions.d.ts.map +1 -1
- package/dist/analyzers/health/actions.js +99 -52
- package/dist/analyzers/health/actions.js.map +1 -1
- package/dist/analyzers/health/detailed.d.ts.map +1 -1
- package/dist/analyzers/health/detailed.js +6 -2
- package/dist/analyzers/health/detailed.js.map +1 -1
- package/dist/analyzers/health.d.ts +0 -2
- package/dist/analyzers/health.d.ts.map +1 -1
- package/dist/analyzers/health.js +134 -72
- package/dist/analyzers/health.js.map +1 -1
- package/dist/analyzers/maintainability/shallow.d.ts +3 -2
- package/dist/analyzers/maintainability/shallow.d.ts.map +1 -1
- package/dist/analyzers/maintainability/shallow.js +2 -2
- package/dist/analyzers/maintainability/shallow.js.map +1 -1
- package/dist/analyzers/quality/detailed.js +1 -1
- package/dist/analyzers/quality/detailed.js.map +1 -1
- package/dist/analyzers/quality/gather.d.ts +33 -4
- package/dist/analyzers/quality/gather.d.ts.map +1 -1
- package/dist/analyzers/quality/gather.js +81 -93
- package/dist/analyzers/quality/gather.js.map +1 -1
- package/dist/analyzers/quality/index.js +4 -4
- package/dist/analyzers/quality/index.js.map +1 -1
- package/dist/analyzers/quality/shallow.d.ts +3 -2
- package/dist/analyzers/quality/shallow.d.ts.map +1 -1
- package/dist/analyzers/quality/shallow.js +2 -2
- package/dist/analyzers/quality/shallow.js.map +1 -1
- package/dist/analyzers/scoring.d.ts +26 -9
- package/dist/analyzers/scoring.d.ts.map +1 -1
- package/dist/analyzers/scoring.js +83 -71
- package/dist/analyzers/scoring.js.map +1 -1
- package/dist/analyzers/security/detailed.js +1 -1
- package/dist/analyzers/security/detailed.js.map +1 -1
- package/dist/analyzers/security/gather.d.ts +28 -5
- package/dist/analyzers/security/gather.d.ts.map +1 -1
- package/dist/analyzers/security/gather.js +87 -135
- package/dist/analyzers/security/gather.js.map +1 -1
- package/dist/analyzers/security/index.d.ts +1 -1
- package/dist/analyzers/security/index.d.ts.map +1 -1
- package/dist/analyzers/security/index.js +16 -11
- package/dist/analyzers/security/index.js.map +1 -1
- package/dist/analyzers/security/report.d.ts +6 -0
- package/dist/analyzers/security/report.d.ts.map +1 -0
- package/dist/analyzers/security/report.js +118 -0
- package/dist/analyzers/security/report.js.map +1 -0
- package/dist/analyzers/security/shallow.d.ts +3 -2
- package/dist/analyzers/security/shallow.d.ts.map +1 -1
- package/dist/analyzers/security/shallow.js +2 -2
- package/dist/analyzers/security/shallow.js.map +1 -1
- package/dist/analyzers/tests/detailed.js +1 -1
- package/dist/analyzers/tests/detailed.js.map +1 -1
- package/dist/analyzers/tests/import-graph.d.ts +8 -22
- package/dist/analyzers/tests/import-graph.d.ts.map +1 -1
- package/dist/analyzers/tests/import-graph.js +22 -189
- package/dist/analyzers/tests/import-graph.js.map +1 -1
- package/dist/analyzers/tests/index.d.ts +1 -1
- package/dist/analyzers/tests/index.d.ts.map +1 -1
- package/dist/analyzers/tests/index.js +3 -3
- package/dist/analyzers/tests/index.js.map +1 -1
- package/dist/analyzers/tests/shallow.d.ts +3 -2
- package/dist/analyzers/tests/shallow.d.ts.map +1 -1
- package/dist/analyzers/tests/shallow.js +2 -2
- package/dist/analyzers/tests/shallow.js.map +1 -1
- package/dist/analyzers/tools/coverage.d.ts +21 -11
- package/dist/analyzers/tools/coverage.d.ts.map +1 -1
- package/dist/analyzers/tools/coverage.js +32 -44
- package/dist/analyzers/tools/coverage.js.map +1 -1
- package/dist/analyzers/tools/dotnet.d.ts +8 -0
- package/dist/analyzers/tools/dotnet.d.ts.map +1 -0
- package/dist/analyzers/tools/dotnet.js +81 -0
- package/dist/analyzers/tools/dotnet.js.map +1 -0
- package/dist/analyzers/tools/gather-cache.d.ts +16 -0
- package/dist/analyzers/tools/gather-cache.d.ts.map +1 -0
- package/dist/analyzers/tools/gather-cache.js +126 -0
- package/dist/analyzers/tools/gather-cache.js.map +1 -0
- package/dist/analyzers/tools/generic.d.ts.map +1 -1
- package/dist/analyzers/tools/generic.js +6 -28
- package/dist/analyzers/tools/generic.js.map +1 -1
- package/dist/analyzers/tools/gitleaks.d.ts +28 -5
- package/dist/analyzers/tools/gitleaks.d.ts.map +1 -1
- package/dist/analyzers/tools/gitleaks.js +91 -37
- package/dist/analyzers/tools/gitleaks.js.map +1 -1
- package/dist/analyzers/tools/go.d.ts +8 -0
- package/dist/analyzers/tools/go.d.ts.map +1 -0
- package/dist/analyzers/tools/go.js +84 -0
- package/dist/analyzers/tools/go.js.map +1 -0
- package/dist/analyzers/tools/graphify.d.ts +31 -3
- package/dist/analyzers/tools/graphify.d.ts.map +1 -1
- package/dist/analyzers/tools/graphify.js +78 -36
- package/dist/analyzers/tools/graphify.js.map +1 -1
- package/dist/analyzers/tools/grep-secrets.d.ts +6 -0
- package/dist/analyzers/tools/grep-secrets.d.ts.map +1 -0
- package/dist/analyzers/tools/grep-secrets.js +124 -0
- package/dist/analyzers/tools/grep-secrets.js.map +1 -0
- package/dist/analyzers/tools/jscpd.d.ts +40 -0
- package/dist/analyzers/tools/jscpd.d.ts.map +1 -0
- package/dist/analyzers/tools/jscpd.js +96 -0
- package/dist/analyzers/tools/jscpd.js.map +1 -0
- package/dist/analyzers/tools/node.d.ts +8 -0
- package/dist/analyzers/tools/node.d.ts.map +1 -0
- package/dist/analyzers/tools/node.js +160 -0
- package/dist/analyzers/tools/node.js.map +1 -0
- package/dist/analyzers/tools/package-json.d.ts +6 -0
- package/dist/analyzers/tools/package-json.d.ts.map +1 -0
- package/dist/analyzers/tools/package-json.js +67 -0
- package/dist/analyzers/tools/package-json.js.map +1 -0
- package/dist/analyzers/tools/parallel.d.ts +22 -5
- package/dist/analyzers/tools/parallel.d.ts.map +1 -1
- package/dist/analyzers/tools/parallel.js +26 -185
- package/dist/analyzers/tools/parallel.js.map +1 -1
- package/dist/analyzers/tools/paths.d.ts +21 -0
- package/dist/analyzers/tools/paths.d.ts.map +1 -0
- package/dist/analyzers/tools/paths.js +62 -0
- package/dist/analyzers/tools/paths.js.map +1 -0
- package/dist/analyzers/tools/python.d.ts +8 -0
- package/dist/analyzers/tools/python.d.ts.map +1 -0
- package/dist/analyzers/tools/python.js +81 -0
- package/dist/analyzers/tools/python.js.map +1 -0
- package/dist/analyzers/tools/rust.d.ts +8 -0
- package/dist/analyzers/tools/rust.d.ts.map +1 -0
- package/dist/analyzers/tools/rust.js +86 -0
- package/dist/analyzers/tools/rust.js.map +1 -0
- package/dist/analyzers/tools/semgrep.d.ts +39 -0
- package/dist/analyzers/tools/semgrep.d.ts.map +1 -0
- package/dist/analyzers/tools/semgrep.js +129 -0
- package/dist/analyzers/tools/semgrep.js.map +1 -0
- package/dist/analyzers/tools/tool-registry.d.ts +0 -41
- package/dist/analyzers/tools/tool-registry.d.ts.map +1 -1
- package/dist/analyzers/tools/tool-registry.js +0 -87
- package/dist/analyzers/tools/tool-registry.js.map +1 -1
- package/dist/analyzers/types.d.ts +42 -30
- package/dist/analyzers/types.d.ts.map +1 -1
- package/dist/cli.js +2 -2
- package/dist/cli.js.map +1 -1
- package/dist/constants.d.ts +1 -3
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +55 -14
- package/dist/constants.js.map +1 -1
- package/dist/languages/capabilities/descriptors.d.ts +74 -0
- package/dist/languages/capabilities/descriptors.d.ts.map +1 -0
- package/dist/languages/capabilities/descriptors.js +250 -0
- package/dist/languages/capabilities/descriptors.js.map +1 -0
- package/dist/languages/capabilities/global.d.ts +43 -0
- package/dist/languages/capabilities/global.d.ts.map +1 -0
- package/dist/languages/capabilities/global.js +48 -0
- package/dist/languages/capabilities/global.js.map +1 -0
- package/dist/languages/capabilities/index.d.ts +31 -0
- package/dist/languages/capabilities/index.d.ts.map +1 -0
- package/dist/languages/capabilities/index.js +56 -0
- package/dist/languages/capabilities/index.js.map +1 -0
- package/dist/languages/capabilities/provider.d.ts +16 -0
- package/dist/languages/capabilities/provider.d.ts.map +1 -0
- package/dist/languages/capabilities/provider.js +12 -0
- package/dist/languages/capabilities/provider.js.map +1 -0
- package/dist/languages/capabilities/types.d.ts +226 -0
- package/dist/languages/capabilities/types.d.ts.map +1 -0
- package/dist/languages/capabilities/types.js +23 -0
- package/dist/languages/capabilities/types.js.map +1 -0
- package/dist/languages/csharp.d.ts +8 -0
- package/dist/languages/csharp.d.ts.map +1 -1
- package/dist/languages/csharp.js +203 -103
- package/dist/languages/csharp.js.map +1 -1
- package/dist/languages/go.d.ts +13 -7
- package/dist/languages/go.d.ts.map +1 -1
- package/dist/languages/go.js +277 -183
- package/dist/languages/go.js.map +1 -1
- package/dist/languages/python.d.ts +14 -0
- package/dist/languages/python.d.ts.map +1 -1
- package/dist/languages/python.js +276 -169
- package/dist/languages/python.js.map +1 -1
- package/dist/languages/rust.d.ts +8 -0
- package/dist/languages/rust.d.ts.map +1 -1
- package/dist/languages/rust.js +218 -131
- package/dist/languages/rust.js.map +1 -1
- package/dist/languages/types.d.ts +16 -15
- package/dist/languages/types.d.ts.map +1 -1
- package/dist/languages/typescript.d.ts +12 -11
- package/dist/languages/typescript.d.ts.map +1 -1
- package/dist/languages/typescript.js +256 -161
- package/dist/languages/typescript.js.map +1 -1
- package/package.json +1 -1
- package/templates/.ai/templates/session-checkpoint-template.md +97 -0
|
@@ -34,10 +34,12 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.typescript = void 0;
|
|
37
|
-
exports.
|
|
37
|
+
exports.extractTsImportsRaw = extractTsImportsRaw;
|
|
38
|
+
exports.resolveTsImportRaw = resolveTsImportRaw;
|
|
38
39
|
const fs = __importStar(require("fs"));
|
|
39
40
|
const path = __importStar(require("path"));
|
|
40
41
|
const coverage_1 = require("../analyzers/tools/coverage");
|
|
42
|
+
const exclusions_1 = require("../analyzers/tools/exclusions");
|
|
41
43
|
const runner_1 = require("../analyzers/tools/runner");
|
|
42
44
|
const TS_JS_EXT = ['.ts', '.tsx', '.js', '.jsx', '.mjs', '.cjs'];
|
|
43
45
|
/**
|
|
@@ -113,6 +115,60 @@ function tierEslintMessage(ruleId, eslintSeverity) {
|
|
|
113
115
|
}
|
|
114
116
|
return tiered;
|
|
115
117
|
}
|
|
118
|
+
/**
|
|
119
|
+
* Single source of truth for the typescript pack's dep-vuln gathering.
|
|
120
|
+
* Consumed by `tsDepVulnsProvider` (capability dispatcher).
|
|
121
|
+
*/
|
|
122
|
+
async function gatherTsDepVulnsResult(cwd) {
|
|
123
|
+
if (!(0, runner_1.fileExists)(cwd, 'package.json'))
|
|
124
|
+
return { kind: 'tool-missing' };
|
|
125
|
+
const auditRaw = (0, runner_1.run)('npm audit --json 2>&1', cwd, 60000);
|
|
126
|
+
if (!auditRaw)
|
|
127
|
+
return { kind: 'no-output' };
|
|
128
|
+
try {
|
|
129
|
+
const auditData = JSON.parse(auditRaw);
|
|
130
|
+
let critical = 0;
|
|
131
|
+
let high = 0;
|
|
132
|
+
let medium = 0;
|
|
133
|
+
let low = 0;
|
|
134
|
+
if (auditData.metadata?.vulnerabilities) {
|
|
135
|
+
const v = auditData.metadata.vulnerabilities;
|
|
136
|
+
critical = v.critical || 0;
|
|
137
|
+
high = v.high || 0;
|
|
138
|
+
medium = v.moderate || 0;
|
|
139
|
+
low = v.low || 0;
|
|
140
|
+
}
|
|
141
|
+
else if (auditData.vulnerabilities) {
|
|
142
|
+
for (const v of Object.values(auditData.vulnerabilities)) {
|
|
143
|
+
if (v.severity === 'critical')
|
|
144
|
+
critical++;
|
|
145
|
+
else if (v.severity === 'high')
|
|
146
|
+
high++;
|
|
147
|
+
else if (v.severity === 'moderate')
|
|
148
|
+
medium++;
|
|
149
|
+
else if (v.severity === 'low')
|
|
150
|
+
low++;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
const envelope = {
|
|
154
|
+
schemaVersion: 1,
|
|
155
|
+
tool: 'npm-audit',
|
|
156
|
+
enrichment: null,
|
|
157
|
+
counts: { critical, high, medium, low },
|
|
158
|
+
};
|
|
159
|
+
return { kind: 'success', envelope };
|
|
160
|
+
}
|
|
161
|
+
catch {
|
|
162
|
+
return { kind: 'parse-error' };
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
const tsDepVulnsProvider = {
|
|
166
|
+
source: 'typescript',
|
|
167
|
+
async gather(cwd) {
|
|
168
|
+
const outcome = await gatherTsDepVulnsResult(cwd);
|
|
169
|
+
return outcome.kind === 'success' ? outcome.envelope : null;
|
|
170
|
+
},
|
|
171
|
+
};
|
|
116
172
|
function stripTsJsComments(src) {
|
|
117
173
|
let out = src.replace(/\/\*[\s\S]*?\*\//g, '');
|
|
118
174
|
out = out.replace(/(^|[^:"'/])\/\/[^\n]*/g, '$1');
|
|
@@ -129,13 +185,64 @@ function isFile(p) {
|
|
|
129
185
|
function toRel(abs, cwd) {
|
|
130
186
|
return path.relative(cwd, abs).split(path.sep).join('/');
|
|
131
187
|
}
|
|
132
|
-
|
|
188
|
+
/**
|
|
189
|
+
* Capture raw TS/JS module specifiers from source text. The imports
|
|
190
|
+
* capability batch-calls this while walking the pack's source extensions;
|
|
191
|
+
* unit tests exercise it directly for parse-correctness cases.
|
|
192
|
+
*/
|
|
193
|
+
function extractTsImportsRaw(content) {
|
|
194
|
+
const out = [];
|
|
195
|
+
const stripped = stripTsJsComments(content);
|
|
196
|
+
const importRe = /\bimport\s+(?:[^'";]*?from\s+)?['"]([^'"]+)['"]/g;
|
|
197
|
+
const reexportRe = /\bexport\s+(?:[^'";]*?from\s+)['"]([^'"]+)['"]/g;
|
|
198
|
+
const dynRe = /\bimport\s*\(\s*['"]([^'"]+)['"]\s*\)/g;
|
|
199
|
+
const reqRe = /\brequire\s*\(\s*['"]([^'"]+)['"]\s*\)/g;
|
|
200
|
+
for (const re of [importRe, reexportRe, dynRe, reqRe]) {
|
|
201
|
+
let m;
|
|
202
|
+
while ((m = re.exec(stripped)) !== null) {
|
|
203
|
+
out.push(m[1]);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
return out;
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Resolve a TS/JS module specifier to an in-project relative file path,
|
|
210
|
+
* or null for external packages and unresolvable specifiers. Exported so
|
|
211
|
+
* unit tests can exercise resolution directly; the imports capability
|
|
212
|
+
* calls it while building per-file edges.
|
|
213
|
+
*/
|
|
214
|
+
function resolveTsImportRaw(fromFile, spec, cwd) {
|
|
215
|
+
if (!spec.startsWith('./') && !spec.startsWith('../'))
|
|
216
|
+
return null;
|
|
217
|
+
const fromDir = path.dirname(path.join(cwd, fromFile));
|
|
218
|
+
const baseAbs = path.resolve(fromDir, spec);
|
|
219
|
+
for (const ext of TS_JS_EXT) {
|
|
220
|
+
if (baseAbs.endsWith(ext) && isFile(baseAbs)) {
|
|
221
|
+
return toRel(baseAbs, cwd);
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
for (const ext of TS_JS_EXT) {
|
|
225
|
+
if (isFile(baseAbs + ext))
|
|
226
|
+
return toRel(baseAbs + ext, cwd);
|
|
227
|
+
}
|
|
228
|
+
for (const ext of TS_JS_EXT) {
|
|
229
|
+
const idx = path.join(baseAbs, 'index' + ext);
|
|
230
|
+
if (isFile(idx))
|
|
231
|
+
return toRel(idx, cwd);
|
|
232
|
+
}
|
|
233
|
+
return null;
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Single source of truth for the typescript pack's lint gathering.
|
|
237
|
+
* Consumed by `tsLintProvider` (capability dispatcher).
|
|
238
|
+
*/
|
|
239
|
+
function gatherTsLintResult(cwd) {
|
|
133
240
|
const lbEslintPath = 'node_modules/.bin/lb-eslint';
|
|
134
241
|
const eslintPath = 'node_modules/.bin/eslint';
|
|
135
242
|
const hasLbEslint = (0, runner_1.fileExists)(cwd, lbEslintPath);
|
|
136
243
|
const hasEslint = (0, runner_1.fileExists)(cwd, eslintPath);
|
|
137
244
|
if (!hasLbEslint && !hasEslint) {
|
|
138
|
-
return {
|
|
245
|
+
return { kind: 'unavailable', reason: 'not installed' };
|
|
139
246
|
}
|
|
140
247
|
const hasFlatConfig = (0, runner_1.fileExists)(cwd, 'eslint.config.js', 'eslint.config.mjs', 'eslint.config.cjs', 'eslint.config.ts');
|
|
141
248
|
const hasLegacyConfig = (0, runner_1.fileExists)(cwd, '.eslintrc', '.eslintrc.js', '.eslintrc.json', '.eslintrc.yml', '.eslintrc.yaml', '.eslintrc.cjs');
|
|
@@ -148,15 +255,10 @@ function runEslint(cwd) {
|
|
|
148
255
|
// lb-eslint may provide its own config; fall through to try it
|
|
149
256
|
}
|
|
150
257
|
else if (hasLegacyConfig) {
|
|
151
|
-
return {
|
|
152
|
-
ran: false,
|
|
153
|
-
errors: 0,
|
|
154
|
-
warnings: 0,
|
|
155
|
-
reason: `v${major} but project uses legacy .eslintrc`,
|
|
156
|
-
};
|
|
258
|
+
return { kind: 'unavailable', reason: `v${major} but project uses legacy .eslintrc` };
|
|
157
259
|
}
|
|
158
260
|
else {
|
|
159
|
-
return {
|
|
261
|
+
return { kind: 'unavailable', reason: 'no eslint config found' };
|
|
160
262
|
}
|
|
161
263
|
}
|
|
162
264
|
const bins = hasLbEslint ? [`./${lbEslintPath}`, `./${eslintPath}`] : [`./${eslintPath}`];
|
|
@@ -165,24 +267,151 @@ function runEslint(cwd) {
|
|
|
165
267
|
continue;
|
|
166
268
|
const result = (0, runner_1.runJSON)(`${bin} . --format json 2>/dev/null`, cwd, 120000);
|
|
167
269
|
if (result && Array.isArray(result)) {
|
|
168
|
-
|
|
169
|
-
// critical + high → errors, medium + low → warnings.
|
|
170
|
-
let errors = 0;
|
|
171
|
-
let warnings = 0;
|
|
270
|
+
const counts = { critical: 0, high: 0, medium: 0, low: 0 };
|
|
172
271
|
for (const file of result) {
|
|
173
272
|
for (const msg of file.messages || []) {
|
|
174
|
-
|
|
175
|
-
if (tier === 'critical' || tier === 'high')
|
|
176
|
-
errors++;
|
|
177
|
-
else
|
|
178
|
-
warnings++;
|
|
273
|
+
counts[tierEslintMessage(msg.ruleId, msg.severity)]++;
|
|
179
274
|
}
|
|
180
275
|
}
|
|
181
|
-
|
|
276
|
+
const envelope = { schemaVersion: 1, tool: 'eslint', counts };
|
|
277
|
+
return { kind: 'success', envelope };
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
return { kind: 'unavailable', reason: 'config error' };
|
|
281
|
+
}
|
|
282
|
+
const tsLintProvider = {
|
|
283
|
+
source: 'typescript',
|
|
284
|
+
async gather(cwd) {
|
|
285
|
+
const outcome = gatherTsLintResult(cwd);
|
|
286
|
+
return outcome.kind === 'success' ? outcome.envelope : null;
|
|
287
|
+
},
|
|
288
|
+
};
|
|
289
|
+
/**
|
|
290
|
+
* Single source of truth for the typescript pack's coverage gathering.
|
|
291
|
+
* Consumed by `tsCoverageProvider` (capability dispatcher).
|
|
292
|
+
*/
|
|
293
|
+
function gatherTsCoverageResult(cwd) {
|
|
294
|
+
const candidates = [
|
|
295
|
+
{ file: 'coverage/coverage-summary.json', parser: coverage_1.parseIstanbulSummary },
|
|
296
|
+
{ file: 'coverage/coverage-final.json', parser: coverage_1.parseIstanbulFinal },
|
|
297
|
+
];
|
|
298
|
+
for (const c of candidates) {
|
|
299
|
+
const abs = path.join(cwd, c.file);
|
|
300
|
+
let raw;
|
|
301
|
+
try {
|
|
302
|
+
raw = fs.readFileSync(abs, 'utf-8');
|
|
303
|
+
}
|
|
304
|
+
catch {
|
|
305
|
+
continue;
|
|
306
|
+
}
|
|
307
|
+
try {
|
|
308
|
+
const coverage = c.parser(raw, c.file, cwd);
|
|
309
|
+
return { schemaVersion: 1, tool: `coverage:${coverage.source}`, coverage };
|
|
310
|
+
}
|
|
311
|
+
catch {
|
|
312
|
+
continue;
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
return null;
|
|
316
|
+
}
|
|
317
|
+
const tsCoverageProvider = {
|
|
318
|
+
source: 'typescript',
|
|
319
|
+
async gather(cwd) {
|
|
320
|
+
return gatherTsCoverageResult(cwd);
|
|
321
|
+
},
|
|
322
|
+
};
|
|
323
|
+
/**
|
|
324
|
+
* Enumerate TS/JS source files under cwd and pre-compute the pack's
|
|
325
|
+
* per-file imports (raw specifiers) and resolved edges. `find` is the
|
|
326
|
+
* enumerator to stay consistent with `gatherSourceFiles`; exclusions
|
|
327
|
+
* come from the project's `.gitignore` + `.dxkit-ignore` via the
|
|
328
|
+
* shared `getFindExcludeFlags` helper.
|
|
329
|
+
*
|
|
330
|
+
* Returns null when the repo has no TS/JS source, so the dispatcher
|
|
331
|
+
* can skip this provider cleanly on pure Python/Go/Rust/C# trees.
|
|
332
|
+
*/
|
|
333
|
+
function gatherTsImportsResult(cwd) {
|
|
334
|
+
const exts = TS_JS_EXT.map((e) => `-name "*${e}"`).join(' -o ');
|
|
335
|
+
const excludes = (0, exclusions_1.getFindExcludeFlags)(cwd);
|
|
336
|
+
const raw = (0, runner_1.run)(`find . -type f \\( ${exts} \\) ${excludes} 2>/dev/null`, cwd);
|
|
337
|
+
if (!raw)
|
|
338
|
+
return null;
|
|
339
|
+
const extracted = new Map();
|
|
340
|
+
const edges = new Map();
|
|
341
|
+
for (const line of raw.split('\n')) {
|
|
342
|
+
const p = line.trim();
|
|
343
|
+
if (!p)
|
|
344
|
+
continue;
|
|
345
|
+
const rel = p.replace(/^\.\//, '');
|
|
346
|
+
let content;
|
|
347
|
+
try {
|
|
348
|
+
content = fs.readFileSync(path.join(cwd, rel), 'utf-8');
|
|
349
|
+
}
|
|
350
|
+
catch {
|
|
351
|
+
continue;
|
|
182
352
|
}
|
|
353
|
+
const specs = extractTsImportsRaw(content);
|
|
354
|
+
extracted.set(rel, specs);
|
|
355
|
+
const targets = new Set();
|
|
356
|
+
for (const spec of specs) {
|
|
357
|
+
const resolved = resolveTsImportRaw(rel, spec, cwd);
|
|
358
|
+
if (resolved)
|
|
359
|
+
targets.add(resolved);
|
|
360
|
+
}
|
|
361
|
+
if (targets.size > 0)
|
|
362
|
+
edges.set(rel, targets);
|
|
183
363
|
}
|
|
184
|
-
|
|
364
|
+
if (extracted.size === 0)
|
|
365
|
+
return null;
|
|
366
|
+
return {
|
|
367
|
+
schemaVersion: 1,
|
|
368
|
+
tool: 'ts-imports',
|
|
369
|
+
sourceExtensions: TS_JS_EXT,
|
|
370
|
+
extracted,
|
|
371
|
+
edges,
|
|
372
|
+
};
|
|
373
|
+
}
|
|
374
|
+
const tsImportsProvider = {
|
|
375
|
+
source: 'typescript',
|
|
376
|
+
async gather(cwd) {
|
|
377
|
+
return gatherTsImportsResult(cwd);
|
|
378
|
+
},
|
|
379
|
+
};
|
|
380
|
+
/**
|
|
381
|
+
* Detect the JS/TS test framework by inspecting the `scripts.test`
|
|
382
|
+
* entry of `package.json` — that's the contract runners publish
|
|
383
|
+
* themselves by and is cheap/deterministic. Returns null when there's
|
|
384
|
+
* no package.json or no recognizable runner; 'unknown' is NOT returned
|
|
385
|
+
* to the dispatcher because an 'unknown' string is worse than null
|
|
386
|
+
* (the last-wins aggregate would prefer it over another pack's real
|
|
387
|
+
* answer).
|
|
388
|
+
*/
|
|
389
|
+
function gatherTsTestFrameworkResult(cwd) {
|
|
390
|
+
const testScript = (0, runner_1.run)("node -e \"const p=require('./package.json'); console.log(p.scripts?.test || '')\" 2>/dev/null", // slop-ok
|
|
391
|
+
cwd);
|
|
392
|
+
if (!testScript || testScript === 'echo "Error: no test specified" && exit 1')
|
|
393
|
+
return null;
|
|
394
|
+
let name = null;
|
|
395
|
+
if (testScript.includes('vitest'))
|
|
396
|
+
name = 'vitest';
|
|
397
|
+
else if (testScript.includes('jest'))
|
|
398
|
+
name = 'jest';
|
|
399
|
+
else if (testScript.includes('mocha') || testScript.includes('lb-mocha'))
|
|
400
|
+
name = 'mocha';
|
|
401
|
+
else if (testScript.includes('ava'))
|
|
402
|
+
name = 'ava';
|
|
403
|
+
else if (testScript.includes('tap'))
|
|
404
|
+
name = 'tap';
|
|
405
|
+
if (!name)
|
|
406
|
+
return null;
|
|
407
|
+
return { schemaVersion: 1, tool: 'typescript', name };
|
|
185
408
|
}
|
|
409
|
+
const tsTestFrameworkProvider = {
|
|
410
|
+
source: 'typescript',
|
|
411
|
+
async gather(cwd) {
|
|
412
|
+
return gatherTsTestFrameworkResult(cwd);
|
|
413
|
+
},
|
|
414
|
+
};
|
|
186
415
|
exports.typescript = {
|
|
187
416
|
id: 'typescript',
|
|
188
417
|
displayName: 'TypeScript / JavaScript',
|
|
@@ -208,146 +437,12 @@ exports.typescript = {
|
|
|
208
437
|
mapLintSeverity: mapEslintRuleSeverity,
|
|
209
438
|
tools: ['eslint', 'npm-audit', 'vitest-coverage'],
|
|
210
439
|
semgrepRulesets: ['p/javascript', 'p/typescript'],
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
const abs = path.join(cwd, c.file);
|
|
218
|
-
let raw;
|
|
219
|
-
try {
|
|
220
|
-
raw = fs.readFileSync(abs, 'utf-8');
|
|
221
|
-
}
|
|
222
|
-
catch {
|
|
223
|
-
continue;
|
|
224
|
-
}
|
|
225
|
-
try {
|
|
226
|
-
return c.parser(raw, c.file, cwd);
|
|
227
|
-
}
|
|
228
|
-
catch {
|
|
229
|
-
continue;
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
return null;
|
|
233
|
-
},
|
|
234
|
-
extractImports(content) {
|
|
235
|
-
const out = [];
|
|
236
|
-
const stripped = stripTsJsComments(content);
|
|
237
|
-
const importRe = /\bimport\s+(?:[^'";]*?from\s+)?['"]([^'"]+)['"]/g;
|
|
238
|
-
const reexportRe = /\bexport\s+(?:[^'";]*?from\s+)['"]([^'"]+)['"]/g;
|
|
239
|
-
const dynRe = /\bimport\s*\(\s*['"]([^'"]+)['"]\s*\)/g;
|
|
240
|
-
const reqRe = /\brequire\s*\(\s*['"]([^'"]+)['"]\s*\)/g;
|
|
241
|
-
for (const re of [importRe, reexportRe, dynRe, reqRe]) {
|
|
242
|
-
let m;
|
|
243
|
-
while ((m = re.exec(stripped)) !== null) {
|
|
244
|
-
out.push(m[1]);
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
|
-
return out;
|
|
248
|
-
},
|
|
249
|
-
resolveImport(fromFile, spec, cwd) {
|
|
250
|
-
if (!spec.startsWith('./') && !spec.startsWith('../'))
|
|
251
|
-
return null;
|
|
252
|
-
const fromDir = path.dirname(path.join(cwd, fromFile));
|
|
253
|
-
const baseAbs = path.resolve(fromDir, spec);
|
|
254
|
-
for (const ext of TS_JS_EXT) {
|
|
255
|
-
if (baseAbs.endsWith(ext) && isFile(baseAbs)) {
|
|
256
|
-
return toRel(baseAbs, cwd);
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
for (const ext of TS_JS_EXT) {
|
|
260
|
-
if (isFile(baseAbs + ext))
|
|
261
|
-
return toRel(baseAbs + ext, cwd);
|
|
262
|
-
}
|
|
263
|
-
for (const ext of TS_JS_EXT) {
|
|
264
|
-
const idx = path.join(baseAbs, 'index' + ext);
|
|
265
|
-
if (isFile(idx))
|
|
266
|
-
return toRel(idx, cwd);
|
|
267
|
-
}
|
|
268
|
-
return null;
|
|
269
|
-
},
|
|
270
|
-
async gatherMetrics(cwd) {
|
|
271
|
-
const metrics = {
|
|
272
|
-
toolsUsed: [],
|
|
273
|
-
toolsUnavailable: [],
|
|
274
|
-
};
|
|
275
|
-
const eslintStatus = runEslint(cwd);
|
|
276
|
-
if (eslintStatus.ran) {
|
|
277
|
-
metrics.lintErrors = eslintStatus.errors;
|
|
278
|
-
metrics.lintWarnings = eslintStatus.warnings;
|
|
279
|
-
metrics.lintTool = 'eslint';
|
|
280
|
-
metrics.toolsUsed.push('eslint');
|
|
281
|
-
}
|
|
282
|
-
else {
|
|
283
|
-
metrics.toolsUnavailable.push(`eslint (${eslintStatus.reason})`);
|
|
284
|
-
}
|
|
285
|
-
const auditRaw = (0, runner_1.run)('npm audit --json 2>&1', cwd, 60000);
|
|
286
|
-
if (auditRaw) {
|
|
287
|
-
try {
|
|
288
|
-
const auditData = JSON.parse(auditRaw);
|
|
289
|
-
let critical = 0;
|
|
290
|
-
let high = 0;
|
|
291
|
-
let medium = 0;
|
|
292
|
-
let low = 0;
|
|
293
|
-
if (auditData.metadata?.vulnerabilities) {
|
|
294
|
-
const v = auditData.metadata.vulnerabilities;
|
|
295
|
-
critical = v.critical || 0;
|
|
296
|
-
high = v.high || 0;
|
|
297
|
-
medium = v.moderate || 0;
|
|
298
|
-
low = v.low || 0;
|
|
299
|
-
}
|
|
300
|
-
else if (auditData.vulnerabilities) {
|
|
301
|
-
for (const v of Object.values(auditData.vulnerabilities)) {
|
|
302
|
-
if (v.severity === 'critical')
|
|
303
|
-
critical++;
|
|
304
|
-
else if (v.severity === 'high')
|
|
305
|
-
high++;
|
|
306
|
-
else if (v.severity === 'moderate')
|
|
307
|
-
medium++;
|
|
308
|
-
else if (v.severity === 'low')
|
|
309
|
-
low++;
|
|
310
|
-
}
|
|
311
|
-
}
|
|
312
|
-
metrics.depVulnCritical = critical;
|
|
313
|
-
metrics.depVulnHigh = high;
|
|
314
|
-
metrics.depVulnMedium = medium;
|
|
315
|
-
metrics.depVulnLow = low;
|
|
316
|
-
metrics.depAuditTool = 'npm-audit';
|
|
317
|
-
metrics.toolsUsed.push('npm-audit');
|
|
318
|
-
}
|
|
319
|
-
catch {
|
|
320
|
-
metrics.toolsUnavailable.push('npm-audit (parse error)');
|
|
321
|
-
}
|
|
322
|
-
}
|
|
323
|
-
else {
|
|
324
|
-
metrics.toolsUnavailable.push('npm-audit');
|
|
325
|
-
}
|
|
326
|
-
const testScript = (0, runner_1.run)("node -e \"const p=require('./package.json'); console.log(p.scripts?.test || '')\" 2>/dev/null", // slop-ok
|
|
327
|
-
cwd);
|
|
328
|
-
if (testScript && testScript !== 'echo "Error: no test specified" && exit 1') {
|
|
329
|
-
let framework = 'unknown';
|
|
330
|
-
if (testScript.includes('vitest'))
|
|
331
|
-
framework = 'vitest';
|
|
332
|
-
else if (testScript.includes('jest'))
|
|
333
|
-
framework = 'jest';
|
|
334
|
-
else if (testScript.includes('mocha') || testScript.includes('lb-mocha'))
|
|
335
|
-
framework = 'mocha';
|
|
336
|
-
else if (testScript.includes('ava'))
|
|
337
|
-
framework = 'ava';
|
|
338
|
-
else if (testScript.includes('tap'))
|
|
339
|
-
framework = 'tap';
|
|
340
|
-
metrics.testFramework = framework;
|
|
341
|
-
}
|
|
342
|
-
const scriptsOutput = (0, runner_1.run)('node -e "const p=require(\'./package.json\'); console.log(Object.keys(p.scripts||{}).length)" 2>/dev/null', // slop-ok
|
|
343
|
-
cwd);
|
|
344
|
-
metrics.npmScriptsCount = parseInt(scriptsOutput) || 0;
|
|
345
|
-
const engineOutput = (0, runner_1.run)("node -e \"const p=require('./package.json'); console.log(p.engines?.node || '')\" 2>/dev/null", // slop-ok
|
|
346
|
-
cwd);
|
|
347
|
-
if (engineOutput) {
|
|
348
|
-
metrics.nodeEngineVersion = engineOutput;
|
|
349
|
-
}
|
|
350
|
-
return metrics;
|
|
440
|
+
capabilities: {
|
|
441
|
+
depVulns: tsDepVulnsProvider,
|
|
442
|
+
lint: tsLintProvider,
|
|
443
|
+
coverage: tsCoverageProvider,
|
|
444
|
+
imports: tsImportsProvider,
|
|
445
|
+
testFramework: tsTestFrameworkProvider,
|
|
351
446
|
},
|
|
352
447
|
};
|
|
353
448
|
//# sourceMappingURL=typescript.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typescript.js","sourceRoot":"","sources":["../../src/languages/typescript.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"typescript.js","sourceRoot":"","sources":["../../src/languages/typescript.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# Session Checkpoint: {DATE} - Session {N}
|
|
2
|
+
|
|
3
|
+
**Developer:** {DEVELOPER_NAME}
|
|
4
|
+
**Date:** {YYYY-MM-DD}
|
|
5
|
+
**Duration:** {X hours}
|
|
6
|
+
|
|
7
|
+
## Session Goal
|
|
8
|
+
{One-line description of what we set out to accomplish}
|
|
9
|
+
|
|
10
|
+
## Accomplished ✅
|
|
11
|
+
- {Specific item 1}
|
|
12
|
+
- {Specific item 2}
|
|
13
|
+
- {Specific item 3}
|
|
14
|
+
|
|
15
|
+
## Files Created/Modified
|
|
16
|
+
|
|
17
|
+
### Created
|
|
18
|
+
- `path/to/new/file1.py` - {brief description}
|
|
19
|
+
- `path/to/new/file2.go` - {brief description}
|
|
20
|
+
|
|
21
|
+
### Modified
|
|
22
|
+
- `path/to/existing/file1.py` - {what changed}
|
|
23
|
+
- `path/to/existing/file2.go` - {what changed}
|
|
24
|
+
|
|
25
|
+
## Key Decisions
|
|
26
|
+
|
|
27
|
+
### Decision 1: {Title}
|
|
28
|
+
**Why:** {Reasoning for this approach}
|
|
29
|
+
**Alternatives considered:** {Other options we discussed}
|
|
30
|
+
**Trade-offs:** {What we gained/lost with this choice}
|
|
31
|
+
|
|
32
|
+
### Decision 2: {Title}
|
|
33
|
+
**Why:** {Reasoning}
|
|
34
|
+
**Alternatives considered:** {Other options}
|
|
35
|
+
**Trade-offs:** {Gains/losses}
|
|
36
|
+
|
|
37
|
+
## Implementation Details
|
|
38
|
+
|
|
39
|
+
### {Component/Feature Name}
|
|
40
|
+
{Brief technical description of how it works, key patterns used, important details}
|
|
41
|
+
|
|
42
|
+
### {Component/Feature Name}
|
|
43
|
+
{Description}
|
|
44
|
+
|
|
45
|
+
## Testing Status
|
|
46
|
+
- [ ] Unit tests added/updated
|
|
47
|
+
- [ ] Integration tests added/updated
|
|
48
|
+
- [ ] Manual testing completed
|
|
49
|
+
- [ ] All tests passing (`make test`)
|
|
50
|
+
- [ ] Code linted and formatted (`make lint && make format`)
|
|
51
|
+
|
|
52
|
+
## Next Session
|
|
53
|
+
|
|
54
|
+
### Goal
|
|
55
|
+
{What to accomplish next - be specific}
|
|
56
|
+
|
|
57
|
+
### Planned Steps
|
|
58
|
+
1. {Specific next step with enough context}
|
|
59
|
+
2. {Specific next step}
|
|
60
|
+
3. {Specific next step}
|
|
61
|
+
|
|
62
|
+
### Context for AI Agent
|
|
63
|
+
```
|
|
64
|
+
We just completed {X}. The implementation is in {files}.
|
|
65
|
+
|
|
66
|
+
Next, we need to {Y} because {reason}.
|
|
67
|
+
|
|
68
|
+
Key context to remember:
|
|
69
|
+
- {Important detail 1}
|
|
70
|
+
- {Important detail 2}
|
|
71
|
+
|
|
72
|
+
Start by {first specific action}.
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Blockers / Considerations
|
|
76
|
+
|
|
77
|
+
### Blockers
|
|
78
|
+
- {Any blockers that need resolution}
|
|
79
|
+
|
|
80
|
+
### Technical Debt
|
|
81
|
+
- {Any shortcuts taken that need future attention}
|
|
82
|
+
|
|
83
|
+
### Things to Watch
|
|
84
|
+
- {Potential issues or areas needing careful attention}
|
|
85
|
+
|
|
86
|
+
### Dependencies
|
|
87
|
+
- {External dependencies or waiting on other work}
|
|
88
|
+
|
|
89
|
+
## References
|
|
90
|
+
- Related docs: {links to relevant documentation}
|
|
91
|
+
- Related issues: {GitHub issue links}
|
|
92
|
+
- Related PRs: {Pull request links}
|
|
93
|
+
- External resources: {API docs, articles, etc.}
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
**Session Summary:** {One paragraph summarizing the session for quick scanning}
|