milens 0.7.0 → 0.7.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 (182) hide show
  1. package/.agents/skills/adapters/SKILL.md +54 -51
  2. package/.agents/skills/analyzer/SKILL.md +16 -19
  3. package/.agents/skills/apps/SKILL.md +60 -68
  4. package/.agents/skills/docs/SKILL.md +5 -25
  5. package/.agents/skills/milens/SKILL.md +6 -6
  6. package/.agents/skills/orchestrator/SKILL.md +8 -10
  7. package/.agents/skills/parser/SKILL.md +9 -11
  8. package/.agents/skills/root/SKILL.md +25 -29
  9. package/.agents/skills/scripts/SKILL.md +13 -16
  10. package/.agents/skills/security/SKILL.md +4 -9
  11. package/.agents/skills/server/SKILL.md +28 -25
  12. package/.agents/skills/store/SKILL.md +17 -21
  13. package/.agents/skills/test/SKILL.md +14 -19
  14. package/.agents/skills/ui/SKILL.md +1 -1
  15. package/README.md +12 -3
  16. package/adapters/README.md +144 -107
  17. package/adapters/claude-code/.claude/settings.json.hooks-snippet.json +26 -0
  18. package/adapters/claude-code/.claude-plugin/plugin.json +11 -0
  19. package/adapters/claude-code/.mcp.json +9 -0
  20. package/adapters/codex/.codex/config.toml +3 -0
  21. package/adapters/copilot/.vscode/mcp.json +10 -0
  22. package/adapters/cursor/.cursor/mcp.json +9 -0
  23. package/adapters/cursor/.cursorrules +69 -9
  24. package/adapters/gemini/.gemini/settings.json +9 -0
  25. package/dist/agents-md.d.ts +0 -1
  26. package/dist/agents-md.js +2 -2
  27. package/dist/agents-md.js.map +1 -1
  28. package/dist/analyzer/config.d.ts +0 -1
  29. package/dist/analyzer/engine.d.ts +0 -1
  30. package/dist/analyzer/engine.js +42 -40
  31. package/dist/analyzer/engine.js.map +1 -1
  32. package/dist/analyzer/enrich.d.ts +0 -1
  33. package/dist/analyzer/enrich.js +13 -0
  34. package/dist/analyzer/enrich.js.map +1 -1
  35. package/dist/analyzer/resolver.d.ts +0 -1
  36. package/dist/analyzer/resolver.js +48 -4
  37. package/dist/analyzer/resolver.js.map +1 -1
  38. package/dist/analyzer/review.d.ts +2 -2
  39. package/dist/analyzer/review.js +7 -59
  40. package/dist/analyzer/review.js.map +1 -1
  41. package/dist/analyzer/risk.d.ts +20 -0
  42. package/dist/analyzer/risk.js +76 -0
  43. package/dist/analyzer/risk.js.map +1 -0
  44. package/dist/analyzer/scanner.d.ts +0 -1
  45. package/dist/analyzer/scanner.js +2 -4
  46. package/dist/analyzer/scanner.js.map +1 -1
  47. package/dist/analyzer/scope-resolver.d.ts +0 -1
  48. package/dist/analyzer/scope-resolver.js +1 -1
  49. package/dist/analyzer/scope-resolver.js.map +1 -1
  50. package/dist/build-info.d.ts +2 -0
  51. package/dist/build-info.js +4 -0
  52. package/dist/build-info.js.map +1 -0
  53. package/dist/cli.d.ts +0 -1
  54. package/dist/cli.js +142 -16
  55. package/dist/cli.js.map +1 -1
  56. package/dist/metrics.d.ts +0 -1
  57. package/dist/orchestrator/orchestrator.d.ts +0 -1
  58. package/dist/orchestrator/orchestrator.js +16 -1
  59. package/dist/orchestrator/orchestrator.js.map +1 -1
  60. package/dist/orchestrator/reporter.d.ts +0 -1
  61. package/dist/parser/extract.d.ts +0 -1
  62. package/dist/parser/extract.js +53 -28
  63. package/dist/parser/extract.js.map +1 -1
  64. package/dist/parser/lang-css.d.ts +0 -1
  65. package/dist/parser/lang-go.d.ts +0 -1
  66. package/dist/parser/lang-html.d.ts +0 -1
  67. package/dist/parser/lang-java.d.ts +0 -1
  68. package/dist/parser/lang-js.d.ts +0 -1
  69. package/dist/parser/lang-md.d.ts +0 -1
  70. package/dist/parser/lang-php.d.ts +0 -1
  71. package/dist/parser/lang-py.d.ts +0 -1
  72. package/dist/parser/lang-ruby.d.ts +0 -1
  73. package/dist/parser/lang-rust.d.ts +0 -1
  74. package/dist/parser/lang-ts.d.ts +0 -1
  75. package/dist/parser/lang-vue.d.ts +0 -1
  76. package/dist/parser/language-provider.d.ts +0 -1
  77. package/dist/parser/languages.d.ts +0 -1
  78. package/dist/parser/loader.d.ts +0 -1
  79. package/dist/security/deps.d.ts +0 -1
  80. package/dist/security/rules.d.ts +0 -1
  81. package/dist/security/rules.js +13 -12
  82. package/dist/security/rules.js.map +1 -1
  83. package/dist/server/hooks.d.ts +0 -1
  84. package/dist/server/mcp-prompts.d.ts +0 -1
  85. package/dist/server/mcp-prompts.js +509 -523
  86. package/dist/server/mcp-prompts.js.map +1 -1
  87. package/dist/server/mcp.d.ts +0 -1
  88. package/dist/server/mcp.js +156 -655
  89. package/dist/server/mcp.js.map +1 -1
  90. package/dist/server/test-plan.d.ts +0 -1
  91. package/dist/server/tools/deps.d.ts +28 -0
  92. package/dist/server/tools/deps.js +2 -0
  93. package/dist/server/tools/deps.js.map +1 -0
  94. package/dist/server/tools/resources.d.ts +3 -0
  95. package/dist/server/tools/resources.js +103 -0
  96. package/dist/server/tools/resources.js.map +1 -0
  97. package/dist/server/tools/security.d.ts +3 -0
  98. package/dist/server/tools/security.js +176 -0
  99. package/dist/server/tools/security.js.map +1 -0
  100. package/dist/server/tools/session.d.ts +3 -0
  101. package/dist/server/tools/session.js +140 -0
  102. package/dist/server/tools/session.js.map +1 -0
  103. package/dist/server/tools/testing.d.ts +3 -0
  104. package/dist/server/tools/testing.js +200 -0
  105. package/dist/server/tools/testing.js.map +1 -0
  106. package/dist/server/watcher.d.ts +0 -1
  107. package/dist/server/watcher.js +1 -1
  108. package/dist/server/watcher.js.map +1 -1
  109. package/dist/skills.d.ts +0 -1
  110. package/dist/skills.js +8 -2
  111. package/dist/skills.js.map +1 -1
  112. package/dist/store/annotations.d.ts +1 -1
  113. package/dist/store/annotations.js +14 -3
  114. package/dist/store/annotations.js.map +1 -1
  115. package/dist/store/confidence.d.ts +0 -1
  116. package/dist/store/confidence.js +2 -0
  117. package/dist/store/confidence.js.map +1 -1
  118. package/dist/store/db.d.ts +9 -1
  119. package/dist/store/db.js +87 -20
  120. package/dist/store/db.js.map +1 -1
  121. package/dist/store/registry.d.ts +0 -1
  122. package/dist/store/vectors.d.ts +0 -1
  123. package/dist/types.d.ts +7 -1
  124. package/dist/ui/progress.d.ts +0 -1
  125. package/dist/uninstall.d.ts +0 -1
  126. package/dist/utils.d.ts +2 -1
  127. package/dist/utils.js +0 -0
  128. package/dist/utils.js.map +1 -1
  129. package/package.json +11 -8
  130. package/dist/agents-md.d.ts.map +0 -1
  131. package/dist/analyzer/config.d.ts.map +0 -1
  132. package/dist/analyzer/engine.d.ts.map +0 -1
  133. package/dist/analyzer/enrich.d.ts.map +0 -1
  134. package/dist/analyzer/resolver.d.ts.map +0 -1
  135. package/dist/analyzer/review.d.ts.map +0 -1
  136. package/dist/analyzer/scanner.d.ts.map +0 -1
  137. package/dist/analyzer/scope-resolver.d.ts.map +0 -1
  138. package/dist/analyzer/testplan.d.ts +0 -59
  139. package/dist/analyzer/testplan.d.ts.map +0 -1
  140. package/dist/analyzer/testplan.js +0 -218
  141. package/dist/analyzer/testplan.js.map +0 -1
  142. package/dist/cli.d.ts.map +0 -1
  143. package/dist/metrics.d.ts.map +0 -1
  144. package/dist/orchestrator/orchestrator.d.ts.map +0 -1
  145. package/dist/orchestrator/reporter.d.ts.map +0 -1
  146. package/dist/parser/extract.d.ts.map +0 -1
  147. package/dist/parser/lang-css.d.ts.map +0 -1
  148. package/dist/parser/lang-go.d.ts.map +0 -1
  149. package/dist/parser/lang-html.d.ts.map +0 -1
  150. package/dist/parser/lang-java.d.ts.map +0 -1
  151. package/dist/parser/lang-js.d.ts.map +0 -1
  152. package/dist/parser/lang-md.d.ts.map +0 -1
  153. package/dist/parser/lang-php.d.ts.map +0 -1
  154. package/dist/parser/lang-py.d.ts.map +0 -1
  155. package/dist/parser/lang-ruby.d.ts.map +0 -1
  156. package/dist/parser/lang-rust.d.ts.map +0 -1
  157. package/dist/parser/lang-ts.d.ts.map +0 -1
  158. package/dist/parser/lang-vue.d.ts.map +0 -1
  159. package/dist/parser/language-provider.d.ts.map +0 -1
  160. package/dist/parser/languages.d.ts.map +0 -1
  161. package/dist/parser/loader.d.ts.map +0 -1
  162. package/dist/security/deps.d.ts.map +0 -1
  163. package/dist/security/rules.d.ts.map +0 -1
  164. package/dist/server/hooks.d.ts.map +0 -1
  165. package/dist/server/mcp-prompts.d.ts.map +0 -1
  166. package/dist/server/mcp.d.ts.map +0 -1
  167. package/dist/server/test-plan.d.ts.map +0 -1
  168. package/dist/server/watcher.d.ts.map +0 -1
  169. package/dist/skills.d.ts.map +0 -1
  170. package/dist/store/annotations.d.ts.map +0 -1
  171. package/dist/store/confidence.d.ts.map +0 -1
  172. package/dist/store/db.d.ts.map +0 -1
  173. package/dist/store/registry.d.ts.map +0 -1
  174. package/dist/store/vectors.d.ts.map +0 -1
  175. package/dist/types.d.ts.map +0 -1
  176. package/dist/ui/progress.d.ts.map +0 -1
  177. package/dist/uninstall.d.ts.map +0 -1
  178. package/dist/utils.d.ts.map +0 -1
  179. package/docs/README.md +0 -25
  180. package/docs/diagram1.svg +0 -1
  181. package/docs/diagram2.svg +0 -1
  182. package/docs/diagram3.svg +0 -1
@@ -159,24 +159,35 @@ function detectHeritageType(node) {
159
159
  }
160
160
  return 'extends';
161
161
  }
162
- function buildSpanIndex(symbols) {
163
- const spans = [];
164
- for (const s of symbols) {
165
- if (s.kind === 'function' || s.kind === 'method' || s.kind === 'class' || s.kind === 'struct' || s.kind === 'trait') {
166
- spans.push({ startLine: s.startLine, endLine: s.endLine, id: s.id });
167
- }
168
- }
169
- // Sort by startLine desc so we find the innermost (tightest) enclosing first
170
- spans.sort((a, b) => b.startLine - a.startLine);
171
- return spans;
172
- }
173
- function findEnclosing(spans, line) {
174
- // Linear scan on pre-sorted array tightest match wins (innermost symbol)
175
- for (let i = 0; i < spans.length; i++) {
176
- const sp = spans[i];
177
- if (sp.startLine <= line && sp.endLine >= line)
178
- return sp.id;
179
- }
162
+ // ── Enclosing symbol lookup via tree-sitter's own position index ──
163
+ // Scope boundaries here are exactly the parse tree's node boundaries — a properly
164
+ // nested (laminar) interval family so the parse tree itself is already the optimal
165
+ // data structure for "which scope contains line N", no separate index needed.
166
+ // `descendantForPosition` walks the tree in ~O(log n), then we walk up `.parent`
167
+ // until we hit a node we recorded as a symbol (function/method/class/struct/trait).
168
+ // This replaces a flat sorted-span array + linear scan, which was O(n) per lookup
169
+ // (O(n²) total across a file with many calls) in the worst case of many sibling
170
+ // top-level symbols see the "current vs descendantForPosition" benchmark discussed
171
+ // in code review: ~10-20x faster on synthetic files with 16k-32k sibling functions.
172
+ //
173
+ // Note: SyntaxNode objects from web-tree-sitter are recreated on every access, so
174
+ // `===` on two nodes representing the same underlying tree node is NOT reliable —
175
+ // use the stable numeric `.id` field instead (confirmed via the official .d.ts and
176
+ // empirical testing).
177
+ const ENCLOSING_SCOPE_KINDS = new Set(['function', 'method', 'class', 'struct', 'trait']);
178
+ function findEnclosingViaAst(root, position, containerNodeIds) {
179
+ // Must be the exact node position, not a synthesized `{row, column: 0}` — column 0
180
+ // usually falls on leading indentation, which belongs to the *parent* node (e.g. the
181
+ // class body) rather than the target node (e.g. a method), so it under-shoots the
182
+ // tightest enclosing scope.
183
+ let node = root.descendantForPosition(position);
184
+ while (node) {
185
+ const id = containerNodeIds.get(node.id);
186
+ if (id !== undefined)
187
+ return id;
188
+ node = node.parent;
189
+ }
190
+ return undefined;
180
191
  }
181
192
  // ── Symbol query type mapping (constant) ──
182
193
  const SYMBOL_QUERY_TYPES = [
@@ -206,6 +217,9 @@ export function extractFromTree(tree, lang, spec, filePath) {
206
217
  const returnTypes = [];
207
218
  const callResultBindings = [];
208
219
  const exportedNames = new Set();
220
+ // AST node id → symbol id, for function/method/class/struct/trait symbols only —
221
+ // see findEnclosingViaAst above.
222
+ const containerNodeIds = new Map();
209
223
  const root = tree.rootNode;
210
224
  function runQuery(queryStr) {
211
225
  const q = getOrCompileQuery(lang, queryStr);
@@ -250,6 +264,9 @@ export function extractFromTree(tree, lang, spec, filePath) {
250
264
  if (parentClass)
251
265
  sym.parentId = parentClass.id;
252
266
  }
267
+ if (ENCLOSING_SCOPE_KINDS.has(kind)) {
268
+ containerNodeIds.set(defNode.id, sym.id);
269
+ }
253
270
  symbols.push(sym);
254
271
  }
255
272
  }
@@ -312,13 +329,13 @@ export function extractFromTree(tree, lang, spec, filePath) {
312
329
  names,
313
330
  isDefault: isDef,
314
331
  isWildcard: !isDef && names.length === 0,
332
+ isDynamic: defNode.type === 'call_expression',
315
333
  line: defNode.startPosition.row + 1,
316
334
  });
317
335
  }
318
336
  }
319
337
  // ── Extract calls (with span index for fast enclosing lookup) ──
320
338
  if (spec.queries.calls) {
321
- const spans = buildSpanIndex(symbols);
322
339
  for (const match of runQuery(spec.queries.calls)) {
323
340
  const callee = captureText(match, 'callee');
324
341
  const defNode = captureNode(match, 'def');
@@ -326,12 +343,19 @@ export function extractFromTree(tree, lang, spec, filePath) {
326
343
  continue;
327
344
  const callLine = defNode.startPosition.row + 1;
328
345
  const receiver = captureText(match, 'receiver');
346
+ // Distinguish "identifier is the function being invoked" from "identifier is merely
347
+ // passed as an argument" (e.g. `onMounted(handler)`, decorator arguments) — the latter
348
+ // captures @callee whose parent is an `arguments` node, not a call/new expression.
349
+ const calleeNode = captureNode(match, 'callee');
350
+ const parentType = calleeNode?.parent?.type;
351
+ const isArgumentRef = parentType === 'arguments' || parentType === 'pair' || parentType === 'array';
329
352
  calls.push({
330
353
  filePath,
331
- enclosingSymbolId: findEnclosing(spans, callLine) ?? `${filePath}#module:_top:0`,
354
+ enclosingSymbolId: findEnclosingViaAst(root, defNode.startPosition, containerNodeIds) ?? `${filePath}#module:_top:0`,
332
355
  calleeName: callee,
333
356
  receiver,
334
357
  line: callLine,
358
+ ...(isArgumentRef ? { isArgumentRef: true } : {}),
335
359
  });
336
360
  }
337
361
  }
@@ -380,8 +404,7 @@ export function extractFromTree(tree, lang, spec, filePath) {
380
404
  }
381
405
  // ── Extract type bindings (variable → type mappings, scope-aware) ──
382
406
  if (spec.queries.typeBindings) {
383
- const bindingSpans = buildSpanIndex(symbols);
384
- const seen = new Map(); // "scope::varName" → line (dedup: last wins)
407
+ const seen = new Map(); // "scope::varName" → line (dedup: first-seen wins)
385
408
  for (const match of runQuery(spec.queries.typeBindings)) {
386
409
  const varName = captureText(match, 'var');
387
410
  const typeName = captureText(match, 'type');
@@ -390,8 +413,12 @@ export function extractFromTree(tree, lang, spec, filePath) {
390
413
  const defNode = captureNode(match, 'var');
391
414
  const line = defNode ? defNode.startPosition.row + 1 : 0;
392
415
  // Scope: find enclosing function/method/class for this binding
393
- const scope = findEnclosing(bindingSpans, line);
394
- // Deduplicate per scope: prefer type annotation over new expression (later match wins)
416
+ const scope = defNode ? findEnclosingViaAst(root, defNode.startPosition, containerNodeIds) : undefined;
417
+ // Deduplicate per scope: when a type-annotation match and a new-expression match land on
418
+ // the same line (e.g. `const db: DbInterface = new SqliteDb()`), keep whichever the query
419
+ // iterates first and skip the rest — in practice the type-annotation pattern is always
420
+ // visited before the new-expression pattern for the same declarator, so this prefers the
421
+ // explicit annotation over the constructor-inferred type.
395
422
  const dedupKey = `${scope ?? ''}::${varName}`;
396
423
  const existingLine = seen.get(dedupKey);
397
424
  if (existingLine !== undefined && existingLine === line)
@@ -402,7 +429,6 @@ export function extractFromTree(tree, lang, spec, filePath) {
402
429
  }
403
430
  // ── Extract assignment chains (variable = identifier, for type propagation) ──
404
431
  if (spec.queries.assignmentChains) {
405
- const chainSpans = buildSpanIndex(symbols);
406
432
  for (const match of runQuery(spec.queries.assignmentChains)) {
407
433
  const target = captureText(match, 'target');
408
434
  const source = captureText(match, 'source');
@@ -410,7 +436,7 @@ export function extractFromTree(tree, lang, spec, filePath) {
410
436
  continue;
411
437
  const defNode = captureNode(match, 'target');
412
438
  const line = defNode ? defNode.startPosition.row + 1 : 0;
413
- const scope = findEnclosing(chainSpans, line);
439
+ const scope = defNode ? findEnclosingViaAst(root, defNode.startPosition, containerNodeIds) : undefined;
414
440
  assignmentBindings.push({ filePath, target, source, line, scope });
415
441
  }
416
442
  }
@@ -430,7 +456,6 @@ export function extractFromTree(tree, lang, spec, filePath) {
430
456
  }
431
457
  // ── Extract call result bindings (const x = func()) ──
432
458
  if (spec.queries.callResultBindings) {
433
- const crSpans = buildSpanIndex(symbols);
434
459
  for (const match of runQuery(spec.queries.callResultBindings)) {
435
460
  const target = captureText(match, 'var');
436
461
  const calleeName = captureText(match, 'callee');
@@ -438,7 +463,7 @@ export function extractFromTree(tree, lang, spec, filePath) {
438
463
  continue;
439
464
  const defNode = captureNode(match, 'var');
440
465
  const line = defNode ? defNode.startPosition.row + 1 : 0;
441
- const scope = findEnclosing(crSpans, line);
466
+ const scope = defNode ? findEnclosingViaAst(root, defNode.startPosition, containerNodeIds) : undefined;
442
467
  const receiver = captureText(match, 'receiver');
443
468
  callResultBindings.push({ filePath, target, calleeName, receiver, line, scope });
444
469
  }
@@ -1 +1 @@
1
- {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../src/parser/extract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extract.js","sourceRoot":"","sources":["../../src/parser/extract.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,3 @@
1
1
  import type { LangSpec } from './extract.js';
2
2
  declare const spec: LangSpec;
3
3
  export default spec;
4
- //# sourceMappingURL=lang-css.d.ts.map
@@ -1,4 +1,3 @@
1
1
  import type { LangSpec } from './extract.js';
2
2
  declare const spec: LangSpec;
3
3
  export default spec;
4
- //# sourceMappingURL=lang-go.d.ts.map
@@ -18,4 +18,3 @@ export declare function extractHtmlRefs(source: string, filePath: string): RawIm
18
18
  */
19
19
  export declare function extractHtmlLinks(source: string, filePath: string): RawImport[];
20
20
  export default spec;
21
- //# sourceMappingURL=lang-html.d.ts.map
@@ -1,4 +1,3 @@
1
1
  import type { LangSpec } from './extract.js';
2
2
  declare const spec: LangSpec;
3
3
  export default spec;
4
- //# sourceMappingURL=lang-java.d.ts.map
@@ -1,4 +1,3 @@
1
1
  import type { LangSpec } from './extract.js';
2
2
  declare const spec: LangSpec;
3
3
  export default spec;
4
- //# sourceMappingURL=lang-js.d.ts.map
@@ -6,4 +6,3 @@ declare const spec: LangSpec;
6
6
  */
7
7
  export declare function extractMarkdown(source: string, filePath: string): ExtractionResult;
8
8
  export default spec;
9
- //# sourceMappingURL=lang-md.d.ts.map
@@ -1,4 +1,3 @@
1
1
  import type { LangSpec } from './extract.js';
2
2
  declare const spec: LangSpec;
3
3
  export default spec;
4
- //# sourceMappingURL=lang-php.d.ts.map
@@ -1,4 +1,3 @@
1
1
  import type { LangSpec } from './extract.js';
2
2
  declare const spec: LangSpec;
3
3
  export default spec;
4
- //# sourceMappingURL=lang-py.d.ts.map
@@ -1,4 +1,3 @@
1
1
  import type { LangSpec } from './extract.js';
2
2
  declare const spec: LangSpec;
3
3
  export default spec;
4
- //# sourceMappingURL=lang-ruby.d.ts.map
@@ -1,4 +1,3 @@
1
1
  import type { LangSpec } from './extract.js';
2
2
  declare const spec: LangSpec;
3
3
  export default spec;
4
- //# sourceMappingURL=lang-rust.d.ts.map
@@ -1,4 +1,3 @@
1
1
  import type { LangSpec } from './extract.js';
2
2
  declare const spec: LangSpec;
3
3
  export default spec;
4
- //# sourceMappingURL=lang-ts.d.ts.map
@@ -31,4 +31,3 @@ export declare function extractVueTemplateAst(parser: Parser, source: string, fi
31
31
  */
32
32
  export declare function extractVueCompositionApi(scriptContent: string, filePath: string, lineOffset: number): CodeSymbol[];
33
33
  export default spec;
34
- //# sourceMappingURL=lang-vue.d.ts.map
@@ -24,4 +24,3 @@ export interface LanguageProvider {
24
24
  /** Optional: infer an implicit receiver for a call (e.g. `this` in JS) */
25
25
  inferImplicitReceiver?(call: RawCall, context: ParseContext): string | null;
26
26
  }
27
- //# sourceMappingURL=language-provider.d.ts.map
@@ -3,4 +3,3 @@ declare const ALL_LANGS: LangSpec[];
3
3
  export declare function langForFile(filePath: string): LangSpec | undefined;
4
4
  export declare function supportedExtensions(): string[];
5
5
  export { ALL_LANGS };
6
- //# sourceMappingURL=languages.d.ts.map
@@ -2,4 +2,3 @@ import Parser from 'web-tree-sitter';
2
2
  export declare function initTreeSitter(): Promise<void>;
3
3
  export declare function loadLanguage(wasmName: string): Promise<Parser.Language>;
4
4
  export declare function getParser(wasmName: string): Promise<Parser>;
5
- //# sourceMappingURL=loader.d.ts.map
@@ -35,4 +35,3 @@ export declare function checkVulnerabilities(deps: Dependency[]): VulnerabilityR
35
35
  * Full audit: detect ecosystem → parse dependencies → check vulnerabilities.
36
36
  */
37
37
  export declare function auditDependencies(rootPath: string): VulnerabilityReport;
38
- //# sourceMappingURL=deps.d.ts.map
@@ -40,4 +40,3 @@ export declare const ALL_RULES: SecurityRule[];
40
40
  export declare function loadRules(): SecurityRule[];
41
41
  export declare function getRulesByCategory(category: SecurityCategory): SecurityRule[];
42
42
  export declare function getRulesBySeverity(severity: string): SecurityRule[];
43
- //# sourceMappingURL=rules.d.ts.map
@@ -11,7 +11,8 @@ export const OWASP_CATEGORIES = {
11
11
  'A09:2021': 'Security Logging and Monitoring Failures',
12
12
  'A10:2021': 'Server-Side Request Forgery (SSRF)',
13
13
  };
14
- const DEFAULT_EXCLUDE = '**/*.test.*,**/*.spec.*,**/node_modules/**,**/security/rules.ts,**/metric-milens-tool*.md,**/docs/**,**/*.html';
14
+ const DEFAULT_EXCLUDE = '**/*.test.*,**/*.spec.*,**/node_modules/**,**/security/rules.ts,**/metric-milens-tool*.md,**/docs/**,**/*.html,**/mcp-prompts.ts,**/.agents/skills/**';
15
+ const SECRETS_EXCLUDE = DEFAULT_EXCLUDE + ',**/*.md,**/*.mdx';
15
16
  // ── Language-specific fileGlobs for cross-language coverage ──
16
17
  const JS_TS = '**/*.{js,jsx,ts,tsx,mjs,cjs}';
17
18
  const JS_TS_PY = '**/*.{js,jsx,ts,tsx,mjs,cjs,py}';
@@ -38,7 +39,7 @@ export const ALL_RULES = [
38
39
  /(?:password|passwd|pwd)\s*[:=]\s*['"`][^'"`\n]{4,}['"`]/i,
39
40
  /(?:password|passwd|pwd)\s*=\s*(?!process\.env\.)[^'"`\s;]{4,}/i,
40
41
  ],
41
- excludeGlob: DEFAULT_EXCLUDE,
42
+ excludeGlob: SECRETS_EXCLUDE,
42
43
  fix: 'Replace hardcoded password with process.env.DB_PASSWORD or a secrets manager.',
43
44
  confidence: 0.92,
44
45
  falsePositiveRisk: 'low', enabled: true,
@@ -54,7 +55,7 @@ export const ALL_RULES = [
54
55
  /(?:secret|secretKey|secret_key|clientSecret)\s*[:=]\s*['"`][A-Za-z0-9_\-+=/]{16,}['"`]/i,
55
56
  /(?:signingKey|signing_key|encryptionKey|encryption_key)\s*[:=]\s*['"`][A-Za-z0-9_\-+=/]{16,}['"`]/i,
56
57
  ],
57
- excludeGlob: DEFAULT_EXCLUDE,
58
+ excludeGlob: SECRETS_EXCLUDE,
58
59
  fix: 'Store secrets in a vault (HashiCorp Vault, AWS Secrets Manager, etc.) or environment variables.',
59
60
  confidence: 0.90,
60
61
  falsePositiveRisk: 'low', enabled: true,
@@ -70,7 +71,7 @@ export const ALL_RULES = [
70
71
  /(?:api[_-]?key|apiKey|apikey)\s*[:=]\s*['"`][A-Za-z0-9_\-]{20,}['"`]/i,
71
72
  /(?:api[_-]?secret|apiSecret)\s*[:=]\s*['"`][A-Za-z0-9_\-]{20,}['"`]/i,
72
73
  ],
73
- excludeGlob: DEFAULT_EXCLUDE,
74
+ excludeGlob: SECRETS_EXCLUDE,
74
75
  fix: 'Move the API key to process.env.API_KEY and never commit credentials.',
75
76
  confidence: 0.93,
76
77
  falsePositiveRisk: 'low', enabled: true,
@@ -86,7 +87,7 @@ export const ALL_RULES = [
86
87
  /\bAKIA[0-9A-Z]{16}\b/,
87
88
  /(?:aws[_-]?access[_-]?key|AWS_ACCESS_KEY_ID)\s*[:=]\s*['"`]AKIA[0-9A-Z]{16}['"`]/i,
88
89
  ],
89
- excludeGlob: DEFAULT_EXCLUDE,
90
+ excludeGlob: SECRETS_EXCLUDE,
90
91
  fix: 'Use IAM roles, instance profiles, or AWS Secrets Manager. If the key is leaked, deactivate it in the AWS console immediately.',
91
92
  confidence: 0.95,
92
93
  falsePositiveRisk: 'low', enabled: true,
@@ -102,7 +103,7 @@ export const ALL_RULES = [
102
103
  /\b(sk-(?:live|test|ant|admin)-[A-Za-z0-9_\-]{30,})\b/,
103
104
  /(?:stripe[_-]?key|openai[_-]?key|OPENAI_API_KEY)\s*[:=]\s*['"`]sk-[A-Za-z0-9_\-]+['"`]/i,
104
105
  ],
105
- excludeGlob: DEFAULT_EXCLUDE,
106
+ excludeGlob: SECRETS_EXCLUDE,
106
107
  fix: 'Use environment variables (STRIPE_SECRET_KEY, OPENAI_API_KEY) and never commit sk- keys.',
107
108
  confidence: 0.95,
108
109
  falsePositiveRisk: 'low', enabled: true,
@@ -118,7 +119,7 @@ export const ALL_RULES = [
118
119
  /\bghp_[A-Za-z0-9_]{36,}\b/,
119
120
  /(?:github[_-]?token|GITHUB_TOKEN|gh[_-]?token)\s*[:=]\s*['"`]ghp_[A-Za-z0-9_]+['"`]/i,
120
121
  ],
121
- excludeGlob: DEFAULT_EXCLUDE,
122
+ excludeGlob: SECRETS_EXCLUDE,
122
123
  fix: 'Use GITHUB_TOKEN in Actions workflows, or store PATs in repository secrets.',
123
124
  confidence: 0.95,
124
125
  falsePositiveRisk: 'low', enabled: true,
@@ -134,7 +135,7 @@ export const ALL_RULES = [
134
135
  /-----BEGIN\s+(?:RSA|ENCRYPTED)\s+PRIVATE\s+KEY-----/,
135
136
  /['"`]-----BEGIN\s+(?:RSA|ENCRYPTED)\s+PRIVATE\s+KEY-----/,
136
137
  ],
137
- excludeGlob: DEFAULT_EXCLUDE,
138
+ excludeGlob: SECRETS_EXCLUDE,
138
139
  fix: 'Store private keys outside the repository; use a secrets manager or PKI infrastructure.',
139
140
  confidence: 0.95,
140
141
  falsePositiveRisk: 'low', enabled: true,
@@ -150,7 +151,7 @@ export const ALL_RULES = [
150
151
  /-----BEGIN\s+EC\s+PRIVATE\s+KEY-----/,
151
152
  /['"`]-----BEGIN\s+EC\s+PRIVATE\s+KEY-----/,
152
153
  ],
153
- excludeGlob: DEFAULT_EXCLUDE,
154
+ excludeGlob: SECRETS_EXCLUDE,
154
155
  fix: 'Store private keys outside the repository; use a secrets manager or PKI infrastructure.',
155
156
  confidence: 0.95,
156
157
  falsePositiveRisk: 'low', enabled: true,
@@ -166,7 +167,7 @@ export const ALL_RULES = [
166
167
  /(?:token|authToken|accessToken|bearerToken)\s*[:=]\s*['"`][A-Za-z0-9_\-+=.]{20,}['"`]/i,
167
168
  /(?:authorization|Authorization)\s*[:=]\s*['"`]Bearer\s+[A-Za-z0-9_\-+=.]+['"`]/i,
168
169
  ],
169
- excludeGlob: DEFAULT_EXCLUDE,
170
+ excludeGlob: SECRETS_EXCLUDE,
170
171
  fix: 'Use environment variables or a secure token store. Rotate the exposed token.',
171
172
  confidence: 0.88,
172
173
  falsePositiveRisk: 'low', enabled: true,
@@ -183,7 +184,7 @@ export const ALL_RULES = [
183
184
  /(?:\.env\s*(?:file)?\s*[:=]\s*['"`][^'"`]*['"`])/i,
184
185
  /process\.env\.([A-Z_]+)\s*=\s*['"`][^'"`]{8,}['"`]/,
185
186
  ],
186
- excludeGlob: DEFAULT_EXCLUDE,
187
+ excludeGlob: SECRETS_EXCLUDE,
187
188
  fix: 'Never assign secret values to process.env in code. Use external .env files (gitignored) or a secrets manager.',
188
189
  confidence: 0.85,
189
190
  falsePositiveRisk: 'low', enabled: true,
@@ -1071,7 +1072,7 @@ export const ALL_RULES = [
1071
1072
  { id: 'SEC-148', category: 'data-leak', owasp: 'A09:2021', severity: 'HIGH', name: 'Stack Trace Exposure', description: 'Error details sent to client.', patterns: [/res\.send\s*\(\s*err\.stack/, /\.status.*\.send.*err/, /\.json\s*\(\s*\{\s*error\s*:\s*err/, /traceback\.format_exc\s*\(\s*\)/], fileGlob: JS_TS_PY, excludeGlob: DEFAULT_EXCLUDE, fix: 'Log errors server-side. Send generic error messages.', confidence: 0.90, falsePositiveRisk: 'low', enabled: true },
1072
1073
  { id: 'SEC-149', category: 'data-leak', owasp: 'A09:2021', severity: 'MEDIUM', name: 'Source Map Exposure', description: 'Source maps deployed to production.', patterns: [/\.map['"`]\s*\)/, /sourceMap.*true.*production/i, /devtool.*source-map/], fileGlob: JS_TS, excludeGlob: DEFAULT_EXCLUDE, fix: 'Do not deploy source maps to production.', confidence: 0.55, falsePositiveRisk: 'medium', enabled: true },
1073
1074
  { id: 'SEC-150', category: 'data-leak', owasp: 'A09:2021', severity: 'HIGH', name: 'Git Directory Exposure', description: '.git directory accessible.', patterns: [/\.git\/HEAD/, /\.git\/config/], fileGlob: '**/*.{json,yaml,yml}', fix: 'Ensure .git directory is not deployed.', confidence: 0.95, falsePositiveRisk: 'low', enabled: true },
1074
- { id: 'SEC-151', category: 'data-leak', owasp: 'A09:2021', severity: 'MEDIUM', name: 'Backup File Exposure', description: 'Backup files deployed.', patterns: [/\.bak['"`]/, /\.backup['"`]/, /\.old['"`]/, /\.swp['"`]/, /~\s*$/], excludeGlob: DEFAULT_EXCLUDE, fix: 'Remove backup files before deployment.', confidence: 0.50, falsePositiveRisk: 'high', enabled: true },
1075
+ { id: 'SEC-151', category: 'data-leak', owasp: 'A09:2021', severity: 'MEDIUM', name: 'Backup File Exposure', description: 'Backup files deployed.', patterns: [/\.bak['"`]/, /\.backup['"`]/, /\.old['"`]/, /\.swp['"`]/, /~\s*$/], excludeGlob: DEFAULT_EXCLUDE + ',src/server/tools/security.ts', fix: 'Remove backup files before deployment.', confidence: 0.50, falsePositiveRisk: 'high', enabled: true },
1075
1076
  // ═══════════════════════════════════════════════════════════════
1076
1077
  // SEC-152 – SEC-156 : Docker Security (A05:2021)
1077
1078
  // ═══════════════════════════════════════════════════════════════