@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.
Files changed (210) hide show
  1. package/CHANGELOG.md +115 -0
  2. package/README.md +3 -3
  3. package/dist/agents/extract.d.ts +25 -0
  4. package/dist/agents/extract.d.ts.map +1 -0
  5. package/dist/agents/extract.js +186 -0
  6. package/dist/agents/extract.js.map +1 -0
  7. package/dist/agents/schemas.d.ts +106 -0
  8. package/dist/agents/schemas.d.ts.map +1 -0
  9. package/dist/agents/schemas.js +86 -0
  10. package/dist/agents/schemas.js.map +1 -0
  11. package/dist/agents/session.d.ts +28 -0
  12. package/dist/agents/session.d.ts.map +1 -0
  13. package/dist/agents/session.js +223 -0
  14. package/dist/agents/session.js.map +1 -0
  15. package/dist/analyzers/developer/detailed.js +1 -1
  16. package/dist/analyzers/developer/detailed.js.map +1 -1
  17. package/dist/analyzers/dispatcher.d.ts +36 -0
  18. package/dist/analyzers/dispatcher.d.ts.map +1 -0
  19. package/dist/analyzers/dispatcher.js +62 -0
  20. package/dist/analyzers/dispatcher.js.map +1 -0
  21. package/dist/analyzers/docs/shallow.d.ts +3 -2
  22. package/dist/analyzers/docs/shallow.d.ts.map +1 -1
  23. package/dist/analyzers/docs/shallow.js +2 -2
  24. package/dist/analyzers/docs/shallow.js.map +1 -1
  25. package/dist/analyzers/dx/shallow.d.ts +3 -2
  26. package/dist/analyzers/dx/shallow.d.ts.map +1 -1
  27. package/dist/analyzers/dx/shallow.js +2 -2
  28. package/dist/analyzers/dx/shallow.js.map +1 -1
  29. package/dist/analyzers/health/actions.d.ts +3 -3
  30. package/dist/analyzers/health/actions.d.ts.map +1 -1
  31. package/dist/analyzers/health/actions.js +99 -52
  32. package/dist/analyzers/health/actions.js.map +1 -1
  33. package/dist/analyzers/health/detailed.d.ts.map +1 -1
  34. package/dist/analyzers/health/detailed.js +6 -2
  35. package/dist/analyzers/health/detailed.js.map +1 -1
  36. package/dist/analyzers/health.d.ts +0 -2
  37. package/dist/analyzers/health.d.ts.map +1 -1
  38. package/dist/analyzers/health.js +134 -72
  39. package/dist/analyzers/health.js.map +1 -1
  40. package/dist/analyzers/maintainability/shallow.d.ts +3 -2
  41. package/dist/analyzers/maintainability/shallow.d.ts.map +1 -1
  42. package/dist/analyzers/maintainability/shallow.js +2 -2
  43. package/dist/analyzers/maintainability/shallow.js.map +1 -1
  44. package/dist/analyzers/quality/detailed.js +1 -1
  45. package/dist/analyzers/quality/detailed.js.map +1 -1
  46. package/dist/analyzers/quality/gather.d.ts +33 -4
  47. package/dist/analyzers/quality/gather.d.ts.map +1 -1
  48. package/dist/analyzers/quality/gather.js +81 -93
  49. package/dist/analyzers/quality/gather.js.map +1 -1
  50. package/dist/analyzers/quality/index.js +4 -4
  51. package/dist/analyzers/quality/index.js.map +1 -1
  52. package/dist/analyzers/quality/shallow.d.ts +3 -2
  53. package/dist/analyzers/quality/shallow.d.ts.map +1 -1
  54. package/dist/analyzers/quality/shallow.js +2 -2
  55. package/dist/analyzers/quality/shallow.js.map +1 -1
  56. package/dist/analyzers/scoring.d.ts +26 -9
  57. package/dist/analyzers/scoring.d.ts.map +1 -1
  58. package/dist/analyzers/scoring.js +83 -71
  59. package/dist/analyzers/scoring.js.map +1 -1
  60. package/dist/analyzers/security/detailed.js +1 -1
  61. package/dist/analyzers/security/detailed.js.map +1 -1
  62. package/dist/analyzers/security/gather.d.ts +28 -5
  63. package/dist/analyzers/security/gather.d.ts.map +1 -1
  64. package/dist/analyzers/security/gather.js +87 -135
  65. package/dist/analyzers/security/gather.js.map +1 -1
  66. package/dist/analyzers/security/index.d.ts +1 -1
  67. package/dist/analyzers/security/index.d.ts.map +1 -1
  68. package/dist/analyzers/security/index.js +16 -11
  69. package/dist/analyzers/security/index.js.map +1 -1
  70. package/dist/analyzers/security/report.d.ts +6 -0
  71. package/dist/analyzers/security/report.d.ts.map +1 -0
  72. package/dist/analyzers/security/report.js +118 -0
  73. package/dist/analyzers/security/report.js.map +1 -0
  74. package/dist/analyzers/security/shallow.d.ts +3 -2
  75. package/dist/analyzers/security/shallow.d.ts.map +1 -1
  76. package/dist/analyzers/security/shallow.js +2 -2
  77. package/dist/analyzers/security/shallow.js.map +1 -1
  78. package/dist/analyzers/tests/detailed.js +1 -1
  79. package/dist/analyzers/tests/detailed.js.map +1 -1
  80. package/dist/analyzers/tests/import-graph.d.ts +8 -22
  81. package/dist/analyzers/tests/import-graph.d.ts.map +1 -1
  82. package/dist/analyzers/tests/import-graph.js +22 -189
  83. package/dist/analyzers/tests/import-graph.js.map +1 -1
  84. package/dist/analyzers/tests/index.d.ts +1 -1
  85. package/dist/analyzers/tests/index.d.ts.map +1 -1
  86. package/dist/analyzers/tests/index.js +3 -3
  87. package/dist/analyzers/tests/index.js.map +1 -1
  88. package/dist/analyzers/tests/shallow.d.ts +3 -2
  89. package/dist/analyzers/tests/shallow.d.ts.map +1 -1
  90. package/dist/analyzers/tests/shallow.js +2 -2
  91. package/dist/analyzers/tests/shallow.js.map +1 -1
  92. package/dist/analyzers/tools/coverage.d.ts +21 -11
  93. package/dist/analyzers/tools/coverage.d.ts.map +1 -1
  94. package/dist/analyzers/tools/coverage.js +32 -44
  95. package/dist/analyzers/tools/coverage.js.map +1 -1
  96. package/dist/analyzers/tools/dotnet.d.ts +8 -0
  97. package/dist/analyzers/tools/dotnet.d.ts.map +1 -0
  98. package/dist/analyzers/tools/dotnet.js +81 -0
  99. package/dist/analyzers/tools/dotnet.js.map +1 -0
  100. package/dist/analyzers/tools/gather-cache.d.ts +16 -0
  101. package/dist/analyzers/tools/gather-cache.d.ts.map +1 -0
  102. package/dist/analyzers/tools/gather-cache.js +126 -0
  103. package/dist/analyzers/tools/gather-cache.js.map +1 -0
  104. package/dist/analyzers/tools/generic.d.ts.map +1 -1
  105. package/dist/analyzers/tools/generic.js +6 -28
  106. package/dist/analyzers/tools/generic.js.map +1 -1
  107. package/dist/analyzers/tools/gitleaks.d.ts +28 -5
  108. package/dist/analyzers/tools/gitleaks.d.ts.map +1 -1
  109. package/dist/analyzers/tools/gitleaks.js +91 -37
  110. package/dist/analyzers/tools/gitleaks.js.map +1 -1
  111. package/dist/analyzers/tools/go.d.ts +8 -0
  112. package/dist/analyzers/tools/go.d.ts.map +1 -0
  113. package/dist/analyzers/tools/go.js +84 -0
  114. package/dist/analyzers/tools/go.js.map +1 -0
  115. package/dist/analyzers/tools/graphify.d.ts +31 -3
  116. package/dist/analyzers/tools/graphify.d.ts.map +1 -1
  117. package/dist/analyzers/tools/graphify.js +78 -36
  118. package/dist/analyzers/tools/graphify.js.map +1 -1
  119. package/dist/analyzers/tools/grep-secrets.d.ts +6 -0
  120. package/dist/analyzers/tools/grep-secrets.d.ts.map +1 -0
  121. package/dist/analyzers/tools/grep-secrets.js +124 -0
  122. package/dist/analyzers/tools/grep-secrets.js.map +1 -0
  123. package/dist/analyzers/tools/jscpd.d.ts +40 -0
  124. package/dist/analyzers/tools/jscpd.d.ts.map +1 -0
  125. package/dist/analyzers/tools/jscpd.js +96 -0
  126. package/dist/analyzers/tools/jscpd.js.map +1 -0
  127. package/dist/analyzers/tools/node.d.ts +8 -0
  128. package/dist/analyzers/tools/node.d.ts.map +1 -0
  129. package/dist/analyzers/tools/node.js +160 -0
  130. package/dist/analyzers/tools/node.js.map +1 -0
  131. package/dist/analyzers/tools/package-json.d.ts +6 -0
  132. package/dist/analyzers/tools/package-json.d.ts.map +1 -0
  133. package/dist/analyzers/tools/package-json.js +67 -0
  134. package/dist/analyzers/tools/package-json.js.map +1 -0
  135. package/dist/analyzers/tools/parallel.d.ts +22 -5
  136. package/dist/analyzers/tools/parallel.d.ts.map +1 -1
  137. package/dist/analyzers/tools/parallel.js +26 -185
  138. package/dist/analyzers/tools/parallel.js.map +1 -1
  139. package/dist/analyzers/tools/paths.d.ts +21 -0
  140. package/dist/analyzers/tools/paths.d.ts.map +1 -0
  141. package/dist/analyzers/tools/paths.js +62 -0
  142. package/dist/analyzers/tools/paths.js.map +1 -0
  143. package/dist/analyzers/tools/python.d.ts +8 -0
  144. package/dist/analyzers/tools/python.d.ts.map +1 -0
  145. package/dist/analyzers/tools/python.js +81 -0
  146. package/dist/analyzers/tools/python.js.map +1 -0
  147. package/dist/analyzers/tools/rust.d.ts +8 -0
  148. package/dist/analyzers/tools/rust.d.ts.map +1 -0
  149. package/dist/analyzers/tools/rust.js +86 -0
  150. package/dist/analyzers/tools/rust.js.map +1 -0
  151. package/dist/analyzers/tools/semgrep.d.ts +39 -0
  152. package/dist/analyzers/tools/semgrep.d.ts.map +1 -0
  153. package/dist/analyzers/tools/semgrep.js +129 -0
  154. package/dist/analyzers/tools/semgrep.js.map +1 -0
  155. package/dist/analyzers/tools/tool-registry.d.ts +0 -41
  156. package/dist/analyzers/tools/tool-registry.d.ts.map +1 -1
  157. package/dist/analyzers/tools/tool-registry.js +0 -87
  158. package/dist/analyzers/tools/tool-registry.js.map +1 -1
  159. package/dist/analyzers/types.d.ts +42 -30
  160. package/dist/analyzers/types.d.ts.map +1 -1
  161. package/dist/cli.js +2 -2
  162. package/dist/cli.js.map +1 -1
  163. package/dist/constants.d.ts +1 -3
  164. package/dist/constants.d.ts.map +1 -1
  165. package/dist/constants.js +55 -14
  166. package/dist/constants.js.map +1 -1
  167. package/dist/languages/capabilities/descriptors.d.ts +74 -0
  168. package/dist/languages/capabilities/descriptors.d.ts.map +1 -0
  169. package/dist/languages/capabilities/descriptors.js +250 -0
  170. package/dist/languages/capabilities/descriptors.js.map +1 -0
  171. package/dist/languages/capabilities/global.d.ts +43 -0
  172. package/dist/languages/capabilities/global.d.ts.map +1 -0
  173. package/dist/languages/capabilities/global.js +48 -0
  174. package/dist/languages/capabilities/global.js.map +1 -0
  175. package/dist/languages/capabilities/index.d.ts +31 -0
  176. package/dist/languages/capabilities/index.d.ts.map +1 -0
  177. package/dist/languages/capabilities/index.js +56 -0
  178. package/dist/languages/capabilities/index.js.map +1 -0
  179. package/dist/languages/capabilities/provider.d.ts +16 -0
  180. package/dist/languages/capabilities/provider.d.ts.map +1 -0
  181. package/dist/languages/capabilities/provider.js +12 -0
  182. package/dist/languages/capabilities/provider.js.map +1 -0
  183. package/dist/languages/capabilities/types.d.ts +226 -0
  184. package/dist/languages/capabilities/types.d.ts.map +1 -0
  185. package/dist/languages/capabilities/types.js +23 -0
  186. package/dist/languages/capabilities/types.js.map +1 -0
  187. package/dist/languages/csharp.d.ts +8 -0
  188. package/dist/languages/csharp.d.ts.map +1 -1
  189. package/dist/languages/csharp.js +203 -103
  190. package/dist/languages/csharp.js.map +1 -1
  191. package/dist/languages/go.d.ts +13 -7
  192. package/dist/languages/go.d.ts.map +1 -1
  193. package/dist/languages/go.js +277 -183
  194. package/dist/languages/go.js.map +1 -1
  195. package/dist/languages/python.d.ts +14 -0
  196. package/dist/languages/python.d.ts.map +1 -1
  197. package/dist/languages/python.js +276 -169
  198. package/dist/languages/python.js.map +1 -1
  199. package/dist/languages/rust.d.ts +8 -0
  200. package/dist/languages/rust.d.ts.map +1 -1
  201. package/dist/languages/rust.js +218 -131
  202. package/dist/languages/rust.js.map +1 -1
  203. package/dist/languages/types.d.ts +16 -15
  204. package/dist/languages/types.d.ts.map +1 -1
  205. package/dist/languages/typescript.d.ts +12 -11
  206. package/dist/languages/typescript.d.ts.map +1 -1
  207. package/dist/languages/typescript.js +256 -161
  208. package/dist/languages/typescript.js.map +1 -1
  209. package/package.json +1 -1
  210. 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.mapEslintRuleSeverity = mapEslintRuleSeverity;
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
- function runEslint(cwd) {
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 { ran: false, errors: 0, warnings: 0, reason: 'not installed' };
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 { ran: false, errors: 0, warnings: 0, reason: 'no eslint config found' };
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
- // Tier each message, then collapse to errors/warnings for backcompat:
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
- const tier = tierEslintMessage(msg.ruleId, msg.severity);
175
- if (tier === 'critical' || tier === 'high')
176
- errors++;
177
- else
178
- warnings++;
273
+ counts[tierEslintMessage(msg.ruleId, msg.severity)]++;
179
274
  }
180
275
  }
181
- return { ran: true, errors, warnings, reason: '' };
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
- return { ran: false, errors: 0, warnings: 0, reason: 'config error' };
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
- parseCoverage(cwd) {
212
- const candidates = [
213
- { file: 'coverage/coverage-summary.json', parser: coverage_1.parseIstanbulSummary },
214
- { file: 'coverage/coverage-final.json', parser: coverage_1.parseIstanbulFinal },
215
- ];
216
- for (const c of candidates) {
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2LA,kDAcC;AAQD,gDAkBC;AAnOD,uCAAyB;AACzB,2CAA6B;AAE7B,0DAAuF;AACvF,8DAAoE;AACpE,sDAAqE;AAcrE,MAAM,SAAS,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAMjE;;;;;;;;;;GAUG;AACH,SAAS,qBAAqB,CAAC,MAAiC;IAC9D,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAE1B,kFAAkF;IAClF,IAAI,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO,UAAU,CAAC;IAE1D,wEAAwE;IACxE,IACE,MAAM,KAAK,SAAS;QACpB,MAAM,KAAK,iBAAiB;QAC5B,MAAM,KAAK,aAAa;QACxB,MAAM,KAAK,eAAe;QAC1B,MAAM,KAAK,UAAU,EACrB,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,IAAI,qDAAqD,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO,UAAU,CAAC;IAE1F,+CAA+C;IAC/C,IACE,MAAM,KAAK,UAAU;QACrB,MAAM,KAAK,gBAAgB;QAC3B,MAAM,KAAK,mBAAmB;QAC9B,MAAM,KAAK,cAAc;QACzB,MAAM,KAAK,cAAc;QACzB,MAAM,KAAK,cAAc;QACzB,MAAM,KAAK,WAAW;QACtB,MAAM,KAAK,gBAAgB;QAC3B,MAAM,KAAK,oBAAoB;QAC/B,MAAM,KAAK,cAAc,EACzB,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,iCAAiC,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IAClE,IAAI,+BAA+B,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC;IAEhE,8DAA8D;IAC9D,IACE,MAAM,KAAK,YAAY;QACvB,MAAM,KAAK,aAAa;QACxB,MAAM,KAAK,QAAQ;QACnB,MAAM,KAAK,cAAc;QACzB,MAAM,KAAK,QAAQ,EACnB,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,IAAI,iEAAiE,CAAC,IAAI,CAAC,MAAM,CAAC;QAChF,OAAO,QAAQ,CAAC;IAClB,IAAI,gCAAgC,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO,QAAQ,CAAC;IAEnE,6CAA6C;IAC7C,IAAI,6CAA6C,CAAC,IAAI,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IAE7E,OAAO,KAAK,CAAC;AACf,CAAC;AAED,8EAA8E;AAC9E,SAAS,iBAAiB,CACxB,MAAiC,EACjC,cAAsB;IAEtB,MAAM,MAAM,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC7C,qEAAqE;IACrE,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,EAAE,CAAC;QAC/B,IAAI,cAAc,KAAK,CAAC;YAAE,OAAO,MAAM,CAAC;QACxC,IAAI,cAAc,KAAK,CAAC;YAAE,OAAO,QAAQ,CAAC;IAC5C,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAYD;;;GAGG;AACH,KAAK,UAAU,sBAAsB,CAAC,GAAW;IAC/C,IAAI,CAAC,IAAA,mBAAU,EAAC,GAAG,EAAE,cAAc,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;IACtE,MAAM,QAAQ,GAAG,IAAA,YAAG,EAAC,uBAAuB,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;IAC1D,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;IAC5C,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAsB,CAAC;QAC5D,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,IAAI,SAAS,CAAC,QAAQ,EAAE,eAAe,EAAE,CAAC;YACxC,MAAM,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC;YAC7C,QAAQ,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC;YAC3B,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;YACnB,MAAM,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC;YACzB,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QACnB,CAAC;aAAM,IAAI,SAAS,CAAC,eAAe,EAAE,CAAC;YACrC,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,CAAC;gBACzD,IAAI,CAAC,CAAC,QAAQ,KAAK,UAAU;oBAAE,QAAQ,EAAE,CAAC;qBACrC,IAAI,CAAC,CAAC,QAAQ,KAAK,MAAM;oBAAE,IAAI,EAAE,CAAC;qBAClC,IAAI,CAAC,CAAC,QAAQ,KAAK,UAAU;oBAAE,MAAM,EAAE,CAAC;qBACxC,IAAI,CAAC,CAAC,QAAQ,KAAK,KAAK;oBAAE,GAAG,EAAE,CAAC;YACvC,CAAC;QACH,CAAC;QACD,MAAM,QAAQ,GAAkB;YAC9B,aAAa,EAAE,CAAC;YAChB,IAAI,EAAE,WAAW;YACjB,UAAU,EAAE,IAAI;YAChB,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE;SACxC,CAAC;QACF,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;IACjC,CAAC;AACH,CAAC;AAED,MAAM,kBAAkB,GAAsC;IAC5D,MAAM,EAAE,YAAY;IACpB,KAAK,CAAC,MAAM,CAAC,GAAG;QACd,MAAM,OAAO,GAAG,MAAM,sBAAsB,CAAC,GAAG,CAAC,CAAC;QAClD,OAAO,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9D,CAAC;CACF,CAAC;AAEF,SAAS,iBAAiB,CAAC,GAAW;IACpC,IAAI,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;IAC/C,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC;IAClD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,MAAM,CAAC,CAAS;IACvB,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,KAAK,CAAC,GAAW,EAAE,GAAW;IACrC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3D,CAAC;AAED;;;;GAIG;AACH,SAAgB,mBAAmB,CAAC,OAAe;IACjD,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,MAAM,QAAQ,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,kDAAkD,CAAC;IACpE,MAAM,UAAU,GAAG,iDAAiD,CAAC;IACrE,MAAM,KAAK,GAAG,wCAAwC,CAAC;IACvD,MAAM,KAAK,GAAG,yCAAyC,CAAC;IACxD,KAAK,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;QACtD,IAAI,CAAyB,CAAC;QAC9B,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACxC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;GAKG;AACH,SAAgB,kBAAkB,CAAC,QAAgB,EAAE,IAAY,EAAE,GAAW;IAC5E,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACnE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAE5C,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC5B,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7C,OAAO,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC5B,IAAI,MAAM,CAAC,OAAO,GAAG,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC,OAAO,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC;IAC9D,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,GAAG,CAAC,CAAC;QAC9C,IAAI,MAAM,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,SAAS,kBAAkB,CAAC,GAAW;IACrC,MAAM,YAAY,GAAG,6BAA6B,CAAC;IACnD,MAAM,UAAU,GAAG,0BAA0B,CAAC;IAE9C,MAAM,WAAW,GAAG,IAAA,mBAAU,EAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,IAAA,mBAAU,EAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAE9C,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS,EAAE,CAAC;QAC/B,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1D,CAAC;IAED,MAAM,aAAa,GAAG,IAAA,mBAAU,EAC9B,GAAG,EACH,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,CACnB,CAAC;IACF,MAAM,eAAe,GAAG,IAAA,mBAAU,EAChC,GAAG,EACH,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,eAAe,CAChB,CAAC;IAEF,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE,CAAC,CAAC,CAAC,KAAK,YAAY,EAAE,CAAC;IACvE,MAAM,aAAa,GAAG,IAAA,YAAG,EAAC,GAAG,UAAU,wBAAwB,EAAE,GAAG,CAAC,CAAC;IACtE,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAClD,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEvD,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;QACjC,IAAI,WAAW,EAAE,CAAC;YAChB,+DAA+D;QACjE,CAAC;aAAM,IAAI,eAAe,EAAE,CAAC;YAC3B,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,KAAK,oCAAoC,EAAE,CAAC;QACxF,CAAC;aAAM,CAAC;YACN,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,wBAAwB,EAAE,CAAC;QACnE,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,YAAY,EAAE,EAAE,KAAK,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE,CAAC,CAAC;IAC1F,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC,IAAA,mBAAU,EAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAAE,SAAS;QACtD,MAAM,MAAM,GAAG,IAAA,gBAAO,EAAqB,GAAG,GAAG,8BAA8B,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QAC9F,IAAI,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACpC,MAAM,MAAM,GAAmB,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;YAC3E,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;gBAC1B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;oBACtC,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;gBACxD,CAAC;YACH,CAAC;YACD,MAAM,QAAQ,GAAe,EAAE,aAAa,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;YAC1E,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;QACvC,CAAC;IACH,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;AACzD,CAAC;AAED,MAAM,cAAc,GAAmC;IACrD,MAAM,EAAE,YAAY;IACpB,KAAK,CAAC,MAAM,CAAC,GAAG;QACd,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QACxC,OAAO,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9D,CAAC;CACF,CAAC;AAEF;;;GAGG;AACH,SAAS,sBAAsB,CAAC,GAAW;IACzC,MAAM,UAAU,GAAG;QACjB,EAAE,IAAI,EAAE,gCAAgC,EAAE,MAAM,EAAE,+BAAoB,EAAE;QACxE,EAAE,IAAI,EAAE,8BAA8B,EAAE,MAAM,EAAE,6BAAkB,EAAE;KAC5D,CAAC;IACX,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,GAAW,CAAC;QAChB,IAAI,CAAC;YACH,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACtC,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAC5C,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,QAAQ,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC;QAC7E,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,kBAAkB,GAAuC;IAC7D,MAAM,EAAE,YAAY;IACpB,KAAK,CAAC,MAAM,CAAC,GAAG;QACd,OAAO,sBAAsB,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;CACF,CAAC;AAEF;;;;;;;;;GASG;AACH,SAAS,qBAAqB,CAAC,GAAW;IACxC,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChE,MAAM,QAAQ,GAAG,IAAA,gCAAmB,EAAC,GAAG,CAAC,CAAC;IAC1C,MAAM,GAAG,GAAG,IAAA,YAAG,EAAC,sBAAsB,IAAI,QAAQ,QAAQ,cAAc,EAAE,GAAG,CAAC,CAAC;IAC/E,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IAEtB,MAAM,SAAS,GAAG,IAAI,GAAG,EAAiC,CAAC;IAC3D,MAAM,KAAK,GAAG,IAAI,GAAG,EAA+B,CAAC;IAErD,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QACtB,IAAI,CAAC,CAAC;YAAE,SAAS;QACjB,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACnC,IAAI,OAAe,CAAC;QACpB,IAAI,CAAC;YACH,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;QAC1D,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QACD,MAAM,KAAK,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAC3C,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC1B,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAClC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,kBAAkB,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;YACpD,IAAI,QAAQ;gBAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC;QACD,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC;YAAE,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,OAAO;QACL,aAAa,EAAE,CAAC;QAChB,IAAI,EAAE,YAAY;QAClB,gBAAgB,EAAE,SAAS;QAC3B,SAAS;QACT,KAAK;KACN,CAAC;AACJ,CAAC;AAED,MAAM,iBAAiB,GAAsC;IAC3D,MAAM,EAAE,YAAY;IACpB,KAAK,CAAC,MAAM,CAAC,GAAG;QACd,OAAO,qBAAqB,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;CACF,CAAC;AAEF;;;;;;;;GAQG;AACH,SAAS,2BAA2B,CAAC,GAAW;IAC9C,MAAM,UAAU,GAAG,IAAA,YAAG,EACpB,+FAA+F,EAAE,UAAU;IAC3G,GAAG,CACJ,CAAC;IACF,IAAI,CAAC,UAAU,IAAI,UAAU,KAAK,2CAA2C;QAAE,OAAO,IAAI,CAAC;IAE3F,IAAI,IAAI,GAAkB,IAAI,CAAC;IAC/B,IAAI,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,IAAI,GAAG,QAAQ,CAAC;SAC9C,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,IAAI,GAAG,MAAM,CAAC;SAC/C,IAAI,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,IAAI,GAAG,OAAO,CAAC;SACpF,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,IAAI,GAAG,KAAK,CAAC;SAC7C,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,IAAI,GAAG,KAAK,CAAC;IAElD,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;AACxD,CAAC;AAED,MAAM,uBAAuB,GAA4C;IACvE,MAAM,EAAE,YAAY;IACpB,KAAK,CAAC,MAAM,CAAC,GAAG;QACd,OAAO,2BAA2B,CAAC,GAAG,CAAC,CAAC;IAC1C,CAAC;CACF,CAAC;AAEW,QAAA,UAAU,GAAoB;IACzC,EAAE,EAAE,YAAY;IAChB,WAAW,EAAE,yBAAyB;IACtC,gBAAgB,EAAE,CAAC,GAAG,SAAS,CAAC;IAChC,gBAAgB,EAAE;QAChB,WAAW;QACX,YAAY;QACZ,WAAW;QACX,YAAY;QACZ,YAAY;QACZ,YAAY;QACZ,WAAW;QACX,YAAY;QACZ,WAAW;QACX,YAAY;QACZ,YAAY;QACZ,YAAY;KACb;IACD,aAAa,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC;IAEhF,MAAM,CAAC,GAAG;QACR,OAAO,IAAA,mBAAU,EAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IACzC,CAAC;IAED,eAAe,EAAE,qBAAqB;IAEtC,KAAK,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,iBAAiB,CAAC;IACjD,eAAe,EAAE,CAAC,cAAc,EAAE,cAAc,CAAC;IAEjD,YAAY,EAAE;QACZ,QAAQ,EAAE,kBAAkB;QAC5B,IAAI,EAAE,cAAc;QACpB,QAAQ,EAAE,kBAAkB;QAC5B,OAAO,EAAE,iBAAiB;QAC1B,aAAa,EAAE,uBAAuB;KACvC;CACF,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vyuhlabs/dxkit",
3
- "version": "1.6.1",
3
+ "version": "2.0.1",
4
4
  "description": "AI-native developer experience toolkit for any repository",
5
5
  "license": "MIT",
6
6
  "author": "Vyuh Labs",
@@ -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}