hackmyagent 0.16.5 → 0.16.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.integrity-manifest.json +1 -1
- package/dist/arp/crypto/hybrid-signing.d.ts +107 -0
- package/dist/arp/crypto/hybrid-signing.d.ts.map +1 -0
- package/dist/arp/crypto/hybrid-signing.js +321 -0
- package/dist/arp/crypto/hybrid-signing.js.map +1 -0
- package/dist/arp/crypto/index.d.ts +13 -0
- package/dist/arp/crypto/index.d.ts.map +1 -0
- package/dist/arp/crypto/index.js +33 -0
- package/dist/arp/crypto/index.js.map +1 -0
- package/dist/arp/crypto/manifest-loader.d.ts +117 -0
- package/dist/arp/crypto/manifest-loader.d.ts.map +1 -0
- package/dist/arp/crypto/manifest-loader.js +361 -0
- package/dist/arp/crypto/manifest-loader.js.map +1 -0
- package/dist/arp/crypto/types.d.ts +69 -0
- package/dist/arp/crypto/types.d.ts.map +1 -0
- package/dist/arp/crypto/types.js +11 -0
- package/dist/arp/crypto/types.js.map +1 -0
- package/dist/arp/index.d.ts +27 -0
- package/dist/arp/index.d.ts.map +1 -1
- package/dist/arp/index.js +94 -1
- package/dist/arp/index.js.map +1 -1
- package/dist/arp/intelligence/behavioral-risk-server.d.ts +82 -0
- package/dist/arp/intelligence/behavioral-risk-server.d.ts.map +1 -0
- package/dist/arp/intelligence/behavioral-risk-server.js +258 -0
- package/dist/arp/intelligence/behavioral-risk-server.js.map +1 -0
- package/dist/arp/intelligence/behavioral-risk.d.ts +217 -0
- package/dist/arp/intelligence/behavioral-risk.d.ts.map +1 -0
- package/dist/arp/intelligence/behavioral-risk.js +429 -0
- package/dist/arp/intelligence/behavioral-risk.js.map +1 -0
- package/dist/arp/intelligence/coordinator.d.ts +93 -2
- package/dist/arp/intelligence/coordinator.d.ts.map +1 -1
- package/dist/arp/intelligence/coordinator.js +281 -1
- package/dist/arp/intelligence/coordinator.js.map +1 -1
- package/dist/arp/intelligence/guard-anomaly.d.ts +349 -0
- package/dist/arp/intelligence/guard-anomaly.d.ts.map +1 -0
- package/dist/arp/intelligence/guard-anomaly.js +399 -0
- package/dist/arp/intelligence/guard-anomaly.js.map +1 -0
- package/dist/arp/intelligence/nanomind-l1.d.ts +37 -0
- package/dist/arp/intelligence/nanomind-l1.d.ts.map +1 -1
- package/dist/arp/intelligence/nanomind-l1.js +78 -0
- package/dist/arp/intelligence/nanomind-l1.js.map +1 -1
- package/dist/arp/intelligence/verify-classification.d.ts +124 -0
- package/dist/arp/intelligence/verify-classification.d.ts.map +1 -0
- package/dist/arp/intelligence/verify-classification.js +329 -0
- package/dist/arp/intelligence/verify-classification.js.map +1 -0
- package/dist/arp/proxy/server.d.ts +38 -8
- package/dist/arp/proxy/server.d.ts.map +1 -1
- package/dist/arp/proxy/server.js +89 -0
- package/dist/arp/proxy/server.js.map +1 -1
- package/dist/arp/types.d.ts +228 -1
- package/dist/arp/types.d.ts.map +1 -1
- package/dist/cli.js +85 -18
- package/dist/cli.js.map +1 -1
- package/dist/nanomind-core/compiler/semantic-compiler.d.ts.map +1 -1
- package/dist/nanomind-core/compiler/semantic-compiler.js +170 -10
- package/dist/nanomind-core/compiler/semantic-compiler.js.map +1 -1
- package/dist/nanomind-core/compiler/source-code-preprocessor.d.ts +64 -0
- package/dist/nanomind-core/compiler/source-code-preprocessor.d.ts.map +1 -0
- package/dist/nanomind-core/compiler/source-code-preprocessor.js +656 -0
- package/dist/nanomind-core/compiler/source-code-preprocessor.js.map +1 -0
- package/dist/nanomind-core/ingestion/artifact-parser.d.ts.map +1 -1
- package/dist/nanomind-core/ingestion/artifact-parser.js +15 -6
- package/dist/nanomind-core/ingestion/artifact-parser.js.map +1 -1
- 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;
|
|
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(
|
|
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
|
-
|
|
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
|
|
238
|
-
|
|
239
|
-
|
|
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"}
|