hackmyagent 0.16.5 → 0.17.0

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 (71) hide show
  1. package/dist/.integrity-manifest.json +1 -1
  2. package/dist/arp/crypto/hybrid-signing.d.ts +107 -0
  3. package/dist/arp/crypto/hybrid-signing.d.ts.map +1 -0
  4. package/dist/arp/crypto/hybrid-signing.js +321 -0
  5. package/dist/arp/crypto/hybrid-signing.js.map +1 -0
  6. package/dist/arp/crypto/index.d.ts +13 -0
  7. package/dist/arp/crypto/index.d.ts.map +1 -0
  8. package/dist/arp/crypto/index.js +33 -0
  9. package/dist/arp/crypto/index.js.map +1 -0
  10. package/dist/arp/crypto/manifest-loader.d.ts +117 -0
  11. package/dist/arp/crypto/manifest-loader.d.ts.map +1 -0
  12. package/dist/arp/crypto/manifest-loader.js +361 -0
  13. package/dist/arp/crypto/manifest-loader.js.map +1 -0
  14. package/dist/arp/crypto/types.d.ts +69 -0
  15. package/dist/arp/crypto/types.d.ts.map +1 -0
  16. package/dist/arp/crypto/types.js +11 -0
  17. package/dist/arp/crypto/types.js.map +1 -0
  18. package/dist/arp/index.d.ts +28 -1
  19. package/dist/arp/index.d.ts.map +1 -1
  20. package/dist/arp/index.js +97 -4
  21. package/dist/arp/index.js.map +1 -1
  22. package/dist/arp/intelligence/behavioral-risk-server.d.ts +82 -0
  23. package/dist/arp/intelligence/behavioral-risk-server.d.ts.map +1 -0
  24. package/dist/arp/intelligence/behavioral-risk-server.js +258 -0
  25. package/dist/arp/intelligence/behavioral-risk-server.js.map +1 -0
  26. package/dist/arp/intelligence/behavioral-risk.d.ts +217 -0
  27. package/dist/arp/intelligence/behavioral-risk.d.ts.map +1 -0
  28. package/dist/arp/intelligence/behavioral-risk.js +429 -0
  29. package/dist/arp/intelligence/behavioral-risk.js.map +1 -0
  30. package/dist/arp/intelligence/coordinator.d.ts +93 -2
  31. package/dist/arp/intelligence/coordinator.d.ts.map +1 -1
  32. package/dist/arp/intelligence/coordinator.js +281 -1
  33. package/dist/arp/intelligence/coordinator.js.map +1 -1
  34. package/dist/arp/intelligence/guard-anomaly.d.ts +349 -0
  35. package/dist/arp/intelligence/guard-anomaly.d.ts.map +1 -0
  36. package/dist/arp/intelligence/guard-anomaly.js +399 -0
  37. package/dist/arp/intelligence/guard-anomaly.js.map +1 -0
  38. package/dist/arp/intelligence/nanomind-l1.d.ts +37 -0
  39. package/dist/arp/intelligence/nanomind-l1.d.ts.map +1 -1
  40. package/dist/arp/intelligence/nanomind-l1.js +78 -0
  41. package/dist/arp/intelligence/nanomind-l1.js.map +1 -1
  42. package/dist/arp/intelligence/runtime-twin.d.ts +157 -0
  43. package/dist/arp/intelligence/runtime-twin.d.ts.map +1 -0
  44. package/dist/arp/intelligence/runtime-twin.js +479 -0
  45. package/dist/arp/intelligence/runtime-twin.js.map +1 -0
  46. package/dist/arp/intelligence/verify-classification.d.ts +124 -0
  47. package/dist/arp/intelligence/verify-classification.d.ts.map +1 -0
  48. package/dist/arp/intelligence/verify-classification.js +329 -0
  49. package/dist/arp/intelligence/verify-classification.js.map +1 -0
  50. package/dist/arp/proxy/server.d.ts +38 -8
  51. package/dist/arp/proxy/server.d.ts.map +1 -1
  52. package/dist/arp/proxy/server.js +89 -0
  53. package/dist/arp/proxy/server.js.map +1 -1
  54. package/dist/arp/types.d.ts +229 -1
  55. package/dist/arp/types.d.ts.map +1 -1
  56. package/dist/cli.js +691 -154
  57. package/dist/cli.js.map +1 -1
  58. package/dist/hardening/scanner.d.ts.map +1 -1
  59. package/dist/hardening/scanner.js +11 -1
  60. package/dist/hardening/scanner.js.map +1 -1
  61. package/dist/nanomind-core/compiler/semantic-compiler.d.ts.map +1 -1
  62. package/dist/nanomind-core/compiler/semantic-compiler.js +170 -10
  63. package/dist/nanomind-core/compiler/semantic-compiler.js.map +1 -1
  64. package/dist/nanomind-core/compiler/source-code-preprocessor.d.ts +64 -0
  65. package/dist/nanomind-core/compiler/source-code-preprocessor.d.ts.map +1 -0
  66. package/dist/nanomind-core/compiler/source-code-preprocessor.js +656 -0
  67. package/dist/nanomind-core/compiler/source-code-preprocessor.js.map +1 -0
  68. package/dist/nanomind-core/ingestion/artifact-parser.d.ts.map +1 -1
  69. package/dist/nanomind-core/ingestion/artifact-parser.js +15 -6
  70. package/dist/nanomind-core/ingestion/artifact-parser.js.map +1 -1
  71. package/package.json +3 -1
@@ -1 +1 @@
1
- {"version":3,"file":"semantic-compiler.d.ts","sourceRoot":"","sources":["../../../src/nanomind-core/compiler/semantic-compiler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAOH,OAAO,KAAK,EACV,WAAW,EACX,iBAAiB,EACjB,cAAc,EASf,MAAM,aAAa,CAAC;AAErB,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,KAAK,CAAkC;gBAEnC,MAAM,GAAE,OAAO,CAAC,cAAc,CAAM;IAUhD;;;OAGG;IACG,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA0GzE;;;OAGG;IACH,SAAS,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO;YAStB,oBAAoB;IAoFlC,OAAO,CAAC,OAAO;CAchB"}
1
+ {"version":3,"file":"semantic-compiler.d.ts","sourceRoot":"","sources":["../../../src/nanomind-core/compiler/semantic-compiler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAQH,OAAO,KAAK,EACV,WAAW,EACX,iBAAiB,EACjB,cAAc,EASf,MAAM,aAAa,CAAC;AAErB,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,KAAK,CAAkC;gBAEnC,MAAM,GAAE,OAAO,CAAC,cAAc,CAAM;IAUhD;;;OAGG;IACG,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAmJzE;;;OAGG;IACH,SAAS,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO;YAStB,oBAAoB;IAoFlC,OAAO,CAAC,OAAO;CAchB"}
@@ -28,6 +28,7 @@ const artifact_parser_js_1 = require("../ingestion/artifact-parser.js");
28
28
  const input_sanitizer_js_1 = require("../ingestion/input-sanitizer.js");
29
29
  const tme_classifier_js_1 = require("../inference/tme-classifier.js");
30
30
  const tme_neural_js_1 = require("../inference/tme-neural.js");
31
+ const source_code_preprocessor_js_1 = require("./source-code-preprocessor.js");
31
32
  class SemanticCompiler {
32
33
  constructor(config = {}) {
33
34
  this.cache = new Map(); // content hash → AST
@@ -66,10 +67,20 @@ class SemanticCompiler {
66
67
  if (sanitized.manipulated) {
67
68
  warnings.push(`${sanitized.manipulationAttempts.length} NanoMind manipulation attempt(s) detected and neutralized`);
68
69
  }
69
- // Step 4: Extract declarations from artifact structure
70
+ // Step 4: Extract declarations from artifact structure.
71
+ //
72
+ // For source_code artifacts, the config-oriented pattern detectors run
73
+ // against a preprocessed "analysis view" with comments, imports, and
74
+ // string literals stripped. This eliminates reflexive false positives
75
+ // where source files whose job is to scan for attack patterns get
76
+ // flagged for containing those patterns in their own docstrings,
77
+ // defensive regex, or self-describing identifiers. Other artifact
78
+ // types (skills, configs, prompts) are unchanged — the whole content
79
+ // is still meaningful and every byte is analyzed.
80
+ const analysisContent = (0, source_code_preprocessor_js_1.buildAnalysisView)(content, parsed.type, path);
70
81
  const declaredCapabilities = extractDeclaredCapabilities(content, parsed.type, parsed.frontmatter);
71
82
  const declaredConstraints = extractDeclaredConstraints(content);
72
- const declaredDataAccess = extractDataAccessPatterns(content, declaredCapabilities);
83
+ const declaredDataAccess = extractDataAccessPatterns(analysisContent, declaredCapabilities, parsed.type);
73
84
  const declaredPurpose = extractDeclaredPurpose(content, parsed.frontmatter);
74
85
  // Step 5: NanoMind inference (intent + inferred capabilities)
75
86
  let intentClassification = 'benign';
@@ -98,8 +109,38 @@ class SemanticCompiler {
98
109
  intentConfidence = Math.max(intentConfidence, 0.6);
99
110
  warnings.push('NanoMind manipulation detected -- elevated to suspicious');
100
111
  }
101
- // Step 6: Map risk surfaces
102
- const inferredRiskSurface = mapRiskSurfaces(content, declaredCapabilities, inferredCapabilities, intentClassification);
112
+ // Step 6: Map risk surfaces.
113
+ // Use the preprocessed analysis view so the regex-based detectors
114
+ // (eval/RCE, credential harvesting, exfiltration URLs) don't match
115
+ // against comments, imports, or string literals in source files.
116
+ const inferredRiskSurface = mapRiskSurfaces(analysisContent, declaredCapabilities, inferredCapabilities, intentClassification, parsed.type);
117
+ // Step 6b: Canonical credential-format scan for source_code.
118
+ // The config-oriented pattern detectors are disabled for source files
119
+ // to eliminate reflexive false positives, but we still want to flag
120
+ // concrete hardcoded secrets — i.e. byte sequences that match known
121
+ // API key formats (`sk-ant-api...`, `AKIA...`, `ghp_...`, PEM blocks).
122
+ // This scan runs on the ORIGINAL content (not the stripped analysis
123
+ // view) so keys embedded in string literals are still detected. We
124
+ // ignore matches that look like regex rule definitions (e.g. contain
125
+ // `\d` / `[a-z]` character class metacharacters) or test fixtures
126
+ // (contain "FAKE" / "TEST" / "EXAMPLE" markers) so security scanner
127
+ // codebases and test files don't trip on their own reference patterns.
128
+ if (parsed.type === 'source_code') {
129
+ const canonicalHits = scanCanonicalCredentialFormats(content);
130
+ for (const hit of canonicalHits) {
131
+ inferredRiskSurface.push({
132
+ surface: `Hardcoded ${hit.label}`,
133
+ attackClass: 'CRED-HARVEST',
134
+ confidence: 0.9,
135
+ evidence: hit.evidence,
136
+ });
137
+ declaredDataAccess.push({
138
+ dataType: 'credentials',
139
+ accessMode: 'read',
140
+ coveredByCapability: false,
141
+ });
142
+ }
143
+ }
103
144
  // Step 7: Extract evidence spans
104
145
  const evidenceSpans = extractEvidenceSpans(content, inferredRiskSurface);
105
146
  // Step 8: Build and sign the AST
@@ -232,11 +273,26 @@ function extractDeclaredPurpose(content, frontmatter) {
232
273
  // From YAML frontmatter
233
274
  if (frontmatter?.description)
234
275
  return String(frontmatter.description);
235
- // From first paragraph
276
+ // From first paragraph. Skip comment lines (line comments, block
277
+ // comment bodies, shebangs) so that a doc comment saying "this is a
278
+ // fixture" or "for testing" does not get mistaken for the artifact's
279
+ // declared purpose — which would then incorrectly classify the file as
280
+ // a test/doc context and suppress credential findings.
236
281
  const lines = content.split('\n').filter(l => l.trim().length > 0);
237
- for (const line of lines) {
238
- if (!line.startsWith('#') && !line.startsWith('-') && !line.startsWith('---') && line.trim().length > 20) {
239
- return line.trim().slice(0, 200);
282
+ for (const rawLine of lines) {
283
+ const line = rawLine.trim();
284
+ if (line.startsWith('#') ||
285
+ line.startsWith('-') ||
286
+ line.startsWith('---') ||
287
+ line.startsWith('//') ||
288
+ line.startsWith('/*') ||
289
+ line.startsWith('*') ||
290
+ line.startsWith('"""') ||
291
+ line.startsWith("'''")) {
292
+ continue;
293
+ }
294
+ if (line.length > 20) {
295
+ return line.slice(0, 200);
240
296
  }
241
297
  }
242
298
  return 'Unknown purpose';
@@ -311,8 +367,19 @@ function extractDeclaredConstraints(content) {
311
367
  }
312
368
  return constraints;
313
369
  }
314
- function extractDataAccessPatterns(content, capabilities) {
370
+ function extractDataAccessPatterns(content, capabilities, artifactType = 'unknown') {
315
371
  const patterns = [];
372
+ // For source_code artifacts, substring matching on data-type keywords
373
+ // ("token", "session", "credential") produces reflexive false positives:
374
+ // any Go/TS/Python file with a variable named `scanToken` or a type named
375
+ // `CredentialStore` gets flagged as accessing credentials. Source code
376
+ // needs AST-based data flow analysis, not byte-level substring matches.
377
+ // Skipping this pass for source_code eliminates the dominant false
378
+ // positive mode without affecting skill/config/prompt analysis, where
379
+ // the whole content is semantically meaningful.
380
+ if (artifactType === 'source_code') {
381
+ return patterns;
382
+ }
316
383
  const dataTypes = ['user', 'customer', 'payment', 'session', 'credential', 'email', 'profile', 'medical', 'financial'];
317
384
  for (const dt of dataTypes) {
318
385
  if (content.toLowerCase().includes(dt)) {
@@ -337,6 +404,80 @@ function extractDataAccessPatterns(content, capabilities) {
337
404
  }
338
405
  return patterns;
339
406
  }
407
+ /**
408
+ * Canonical credential-format patterns we trust enough to flag even when
409
+ * the surrounding context is source code. Each pattern targets a real-world
410
+ * secret format with low false-positive rate on arbitrary text.
411
+ */
412
+ const CANONICAL_CREDENTIAL_PATTERNS = [
413
+ { label: 'Anthropic API key', regex: /sk-ant-api\d{2}-[a-zA-Z0-9_-]{20,}/g },
414
+ { label: 'OpenAI project key', regex: /sk-proj-[a-zA-Z0-9_-]{20,}/g },
415
+ { label: 'AWS access key', regex: /AKIA[0-9A-Z]{16}/g },
416
+ { label: 'GitHub personal access token', regex: /ghp_[a-zA-Z0-9]{36}/g },
417
+ { label: 'GitHub OAuth token', regex: /gho_[a-zA-Z0-9]{36}/g },
418
+ { label: 'GitHub app token', regex: /ghs_[a-zA-Z0-9]{36}/g },
419
+ { label: 'Slack bot token', regex: /xox[baprs]-[a-zA-Z0-9-]{10,}/g },
420
+ { label: 'Google API key', regex: /AIza[0-9A-Za-z_-]{35}/g },
421
+ { label: 'Stripe live key', regex: /sk_live_[0-9a-zA-Z]{24,}/g },
422
+ { label: 'PEM private key', regex: /-----BEGIN (?:RSA |EC |DSA |OPENSSH |ENCRYPTED |PRIVATE)[A-Z ]*KEY-----/g },
423
+ ];
424
+ /**
425
+ * Scan raw source content for concrete secret formats that are worth
426
+ * flagging regardless of surrounding context. Returns a list of hits.
427
+ *
428
+ * Filters out matches that look like:
429
+ * - Regex rule definitions in a scanner's own source (contain `\d`,
430
+ * `[a-z]`, `{6,}`, or other regex metacharacters adjacent to the
431
+ * match). A security scanner quoting `sk-ant-api\d{2}-[a-zA-Z0-9_-]{6,}`
432
+ * in a regex pattern is not a leaked credential.
433
+ * - Test fixtures containing `FAKE`, `EXAMPLE`, `PLACEHOLDER`, `DUMMY`,
434
+ * `SAMPLE`, `TEST`, `XXX`, `YOUR_` markers in the surrounding window.
435
+ */
436
+ function scanCanonicalCredentialFormats(content) {
437
+ const hits = [];
438
+ // Markers that, when embedded directly in the key bytes themselves,
439
+ // indicate the value is a placeholder rather than a real credential.
440
+ // Using word-boundary anchors on the match (not the surrounding code)
441
+ // so a comment like "// for testing" in the same file doesn't mask a
442
+ // real planted key.
443
+ const inKeyFixtureMarker = /FAKE|EXAMPLE|PLACEHOLDER|DUMMY|YOUR_?KEY|YOUR_?TOKEN|REPLACE_ME|INSERT_HERE/i;
444
+ // Markers in the immediate preceding window (label / variable name)
445
+ // that strongly suggest a template value (e.g. `YOUR_API_KEY=...`).
446
+ const preKeyTemplateMarker = /(<\s*YOUR_|\bYOUR[_-]?(?:KEY|TOKEN|SECRET)|example[_-]?key|template[_-]?key|placeholder)/i;
447
+ // Regex metacharacters indicating the match is inside a scanner rule
448
+ // definition rather than a concrete key literal.
449
+ const regexContextMarker = /\\d|\\w|\\s|\[a-z|\[A-Z|\[0-9|\{\d+,|\*\?|\+\?/;
450
+ for (const { label, regex } of CANONICAL_CREDENTIAL_PATTERNS) {
451
+ regex.lastIndex = 0;
452
+ let match;
453
+ while ((match = regex.exec(content)) !== null) {
454
+ const matched = match[0];
455
+ // Narrow preceding context: just the 40 chars before the match,
456
+ // which covers the variable/label on the same line but not the
457
+ // whole file. We explicitly do NOT check the full window, because
458
+ // unrelated comments (e.g. "// testing ...") are often nearby.
459
+ const preStart = Math.max(0, match.index - 40);
460
+ const preContext = content.slice(preStart, match.index);
461
+ // Skip matches inside regex rule definitions.
462
+ if (regexContextMarker.test(preContext) || regexContextMarker.test(matched)) {
463
+ continue;
464
+ }
465
+ // Skip if the key bytes themselves contain placeholder markers.
466
+ if (inKeyFixtureMarker.test(matched)) {
467
+ continue;
468
+ }
469
+ // Skip if the immediate label/variable name indicates a template.
470
+ if (preKeyTemplateMarker.test(preContext)) {
471
+ continue;
472
+ }
473
+ hits.push({
474
+ label,
475
+ evidence: `${label}: ${matched.slice(0, 16)}...`,
476
+ });
477
+ }
478
+ }
479
+ return hits;
480
+ }
340
481
  function extractDependencies(content) {
341
482
  const deps = [];
342
483
  // References to other files/packages
@@ -369,8 +510,27 @@ function isGovernanceContent(text) {
369
510
  // 3+ constraint phrases or governance section headers = governance doc
370
511
  return constraintCount >= 3 || sectionHeaders;
371
512
  }
372
- function mapRiskSurfaces(content, declared, inferred, intent) {
513
+ function mapRiskSurfaces(content, declared, inferred, intent, artifactType = 'unknown') {
373
514
  const surfaces = [];
515
+ // Source code needs semantic (AST) analysis, not regex-based substring
516
+ // matching on content. The risk-surface checks below were designed for
517
+ // skills, agent configs, and system prompts, where the entire content is
518
+ // semantically meaningful and finding the string "password" next to
519
+ // "request" plausibly implies credential harvesting. In a Go or TypeScript
520
+ // file, the same substrings are almost always idiomatic identifiers and
521
+ // HTTP helpers (`githubToken`, `http.NewRequest`), which makes every
522
+ // network service file fire CRED-HARVEST. The preprocessor already
523
+ // strips comments, imports, and string literals; even so, the remaining
524
+ // identifier tokens produce near-100% false positive rates on real
525
+ // codebases. Skipping the config-oriented substring pathway for source
526
+ // code eliminates the reflexive false positive mode entirely. Any real
527
+ // source-level attack surface belongs to a dedicated AST analyzer, not
528
+ // to this regex pass.
529
+ if (artifactType === 'source_code') {
530
+ // Source-level risk surfaces are surfaced by the analyzer layer, not
531
+ // by regex-matching raw content here.
532
+ return surfaces;
533
+ }
374
534
  const text = content.toLowerCase();
375
535
  // Detect governance documents -- these talk ABOUT security, not perform attacks
376
536
  // SOUL.md, governance docs, and system prompts with constraint language
@@ -1 +1 @@
1
- {"version":3,"file":"semantic-compiler.js","sourceRoot":"","sources":["../../../src/nanomind-core/compiler/semantic-compiler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"semantic-compiler.js","sourceRoot":"","sources":["../../../src/nanomind-core/compiler/semantic-compiler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Source Code Preprocessor
3
+ *
4
+ * The config-oriented detectors in the semantic compiler
5
+ * (`extractDataAccessPatterns`, `mapRiskSurfaces`) were designed for
6
+ * skills, agent configs, and system prompts, where the entire content is
7
+ * semantically meaningful. Running them against source code produces
8
+ * reflexive false positives: any file whose *purpose* is to scan for
9
+ * attack patterns (a credential regex, an `eval(` pattern, a typosquatting
10
+ * detector) contains the exact strings those detectors look for.
11
+ *
12
+ * This preprocessor produces a "stripped view" of source code with
13
+ * comments, import statements, and string literals replaced by whitespace.
14
+ * The stripped view preserves byte offsets so any index-based analysis
15
+ * downstream keeps working. The original content is left untouched for
16
+ * callers that need it (evidence extraction, capability parsing, etc.).
17
+ *
18
+ * What survives the strip:
19
+ * - Identifiers (variable, function, and type names)
20
+ * - Control flow and operators
21
+ * - Struct tags and field names (outside of string literals)
22
+ *
23
+ * What is removed:
24
+ * - `//`, `#`, `--` line comments
25
+ * - `/* ... *\/`, `"""..."""`, `'''...'''` block comments
26
+ * - `"..."`, `'...'`, `` `...` ``, `r"..."`, etc. string literals
27
+ * - `import (...)` blocks and `import "..."` / `from X import Y` lines
28
+ *
29
+ * The net effect: code that references credential/eval/RCE patterns
30
+ * defensively (scanners, allowlists, documentation strings) no longer
31
+ * trips reflexive regex matches, while code that actually *does* those
32
+ * things (e.g. `exec(userInput)` where `exec` is a symbol call, not a
33
+ * string) still surfaces.
34
+ *
35
+ * Security note: stripping string literals trades off a narrow detection
36
+ * case — a hardcoded secret embedded in a string literal whose *exact*
37
+ * bytes match an AWS/Anthropic/GitHub key format — for eliminating the
38
+ * dominant false positive mode on source code. Canonical API key formats
39
+ * are still detected upstream of this path: `classifyArtifactType` routes
40
+ * files matching `sk-ant-`, `AKIA...`, `ghp_...`, or PEM headers into the
41
+ * `credential_file` artifact type before source code preprocessing runs,
42
+ * so those cases are preserved.
43
+ */
44
+ import type { ArtifactType } from '../types.js';
45
+ export type SourceLanguage = 'go' | 'typescript' | 'javascript' | 'python' | 'rust' | 'java' | 'ruby' | 'unknown';
46
+ /** Detect source language from a file path. Returns 'unknown' for unsupported extensions. */
47
+ export declare function detectSourceLanguage(path?: string): SourceLanguage;
48
+ /**
49
+ * Build an analysis view of content for use with config-oriented detectors.
50
+ *
51
+ * For source_code artifacts, strips comments, imports, and string literals.
52
+ * For all other artifact types, returns the original content unchanged.
53
+ *
54
+ * The stripped view preserves byte offsets: removed bytes are replaced with
55
+ * spaces (or newlines inside multi-line regions), so any downstream code
56
+ * that uses absolute indices remains valid.
57
+ */
58
+ export declare function buildAnalysisView(content: string, artifactType: ArtifactType, path?: string): string;
59
+ /**
60
+ * Strip comments, imports, and string literals from source code.
61
+ * Exposed for tests. Callers should usually use `buildAnalysisView`.
62
+ */
63
+ export declare function stripSourceCode(content: string, language: SourceLanguage): string;
64
+ //# sourceMappingURL=source-code-preprocessor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-code-preprocessor.d.ts","sourceRoot":"","sources":["../../../src/nanomind-core/compiler/source-code-preprocessor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAMhD,MAAM,MAAM,cAAc,GACtB,IAAI,GACJ,YAAY,GACZ,YAAY,GACZ,QAAQ,GACR,MAAM,GACN,MAAM,GACN,MAAM,GACN,SAAS,CAAC;AAEd,6FAA6F;AAC7F,wBAAgB,oBAAoB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,cAAc,CAkBlE;AAMD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,YAAY,EAC1B,IAAI,CAAC,EAAE,MAAM,GACZ,MAAM,CASR;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,GAAG,MAAM,CAkBjF"}