@node9/policy-engine 2.16.1 → 2.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.
- package/dist/index.d.mts +49 -13
- package/dist/index.d.ts +49 -13
- package/dist/index.js +267 -231
- package/dist/index.mjs +266 -231
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -402,6 +402,15 @@ interface ShellCommandAnalysis {
|
|
|
402
402
|
*/
|
|
403
403
|
declare function analyzeShellCommand(command: string): ShellCommandAnalysis;
|
|
404
404
|
|
|
405
|
+
/**
|
|
406
|
+
* A destination a tool call will reach, whichever carrier declared it: a
|
|
407
|
+
* shell command (extractShellDestinations) or a tool argument
|
|
408
|
+
* (extractToolDestinations). The interface is still spelled ShellDestination
|
|
409
|
+
* where it lives (shell/index.ts, which is hashed by the extractor-version
|
|
410
|
+
* gate, so a rename there is not free); this is the name that says what the
|
|
411
|
+
* shape is for.
|
|
412
|
+
*/
|
|
413
|
+
type Destination = ShellDestination;
|
|
405
414
|
interface EgressPolicy {
|
|
406
415
|
/** Master switch. Default false — opt-in, like dlp.pii. */
|
|
407
416
|
enabled: boolean;
|
|
@@ -431,7 +440,25 @@ interface EgressVerdict {
|
|
|
431
440
|
declare const DEFAULT_EGRESS_ALLOWLIST: readonly string[];
|
|
432
441
|
/** Glob host match: "*" = any, "*.x" = apex x + any subdomain, else exact. */
|
|
433
442
|
declare function hostMatches(host: string, pattern: string): boolean;
|
|
434
|
-
/**
|
|
443
|
+
/**
|
|
444
|
+
* "Private" for the allowPrivate opt-in: loopback, RFC1918 and its IPv6
|
|
445
|
+
* analogue, the unspecified address, and the conventional local suffixes.
|
|
446
|
+
*
|
|
447
|
+
* The address half is classifySsrf's answer, so every spelling that file
|
|
448
|
+
* normalizes (brackets, zone id, IPv4-mapped IPv6) is one spelling here too.
|
|
449
|
+
* The old body had its own IPv4-only regexes and returned false for `[::1]`,
|
|
450
|
+
* which BLOCKED a local IPv6 dev server under allowPrivate (measured
|
|
451
|
+
* 2026-09-20; the shell extractor keeps the brackets, the declared-URL
|
|
452
|
+
* extractor strips them, and this function knew neither). Two parsers for
|
|
453
|
+
* one question is how that happens.
|
|
454
|
+
*
|
|
455
|
+
* NOT private here: link-local, multicast, the metadata endpoints. Those are
|
|
456
|
+
* the SSRF floor's tiers and allowPrivate must not be able to reach them;
|
|
457
|
+
* evaluateEgress documents that the floor runs first, and this function
|
|
458
|
+
* agrees with it rather than relying on it. CGNAT (100.64/10) is also out:
|
|
459
|
+
* a mesh-VPN peer is not everyone's private network, which is why the floor
|
|
460
|
+
* gave it its own tier; a Tailscale user lists the range in `allow`.
|
|
461
|
+
*/
|
|
435
462
|
declare function isPrivateHost(host: string): boolean;
|
|
436
463
|
/**
|
|
437
464
|
* Evaluate extracted destinations against the egress policy. Precedence per
|
|
@@ -441,7 +468,7 @@ declare function isPrivateHost(host: string): boolean;
|
|
|
441
468
|
* first review; null if everything is allowed (or policy disabled / mode off).
|
|
442
469
|
* Pure.
|
|
443
470
|
*/
|
|
444
|
-
declare function evaluateEgress(dests: readonly
|
|
471
|
+
declare function evaluateEgress(dests: readonly Destination[], policy: EgressPolicy): EgressVerdict | null;
|
|
445
472
|
|
|
446
473
|
interface PipeChainAnalysis {
|
|
447
474
|
isPipeline: boolean;
|
|
@@ -610,16 +637,6 @@ declare function resolvePinned(matches: SmartRule[]): SmartRule | undefined;
|
|
|
610
637
|
* Returns a reason string if dangerous, null if safe.
|
|
611
638
|
*/
|
|
612
639
|
declare function checkDangerousSql(sql: string): string | null;
|
|
613
|
-
/**
|
|
614
|
-
* Stateless policy evaluation. Same waterfall as the original
|
|
615
|
-
* proxy/src/policy/index.ts:evaluatePolicy, but config + context + I/O
|
|
616
|
-
* hooks come in as parameters so this function works in any host.
|
|
617
|
-
*
|
|
618
|
-
* Returns 'allow' for ignored tools, the matched smart-rule verdict,
|
|
619
|
-
* inline-execution review, eval-detection verdict, pipe-chain verdict,
|
|
620
|
-
* provenance verdict, sandbox allow, dangerous-word review, or strict-mode
|
|
621
|
-
* fallback. See the design doc for the full tier table.
|
|
622
|
-
*/
|
|
623
640
|
declare function evaluatePolicy(config: PolicyConfig, toolName: string, args?: unknown, context?: PolicyContext, hooks?: PolicyHostHooks): Promise<PolicyVerdict>;
|
|
624
641
|
/** Returns true when toolName matches the config's ignoredTools list. */
|
|
625
642
|
declare function isIgnoredTool(toolName: string, config: PolicyConfig): boolean;
|
|
@@ -1446,6 +1463,25 @@ declare function ssrfFloor(tokens: ReadonlyArray<{
|
|
|
1446
1463
|
* `[]` in a path means "every element of this array".
|
|
1447
1464
|
*/
|
|
1448
1465
|
declare const DESTINATION_ARGS: ReadonlyMap<string, readonly string[]>;
|
|
1466
|
+
/**
|
|
1467
|
+
* The hosts a non-shell tool call will reach, in the SAME shape the shell
|
|
1468
|
+
* extractor produces, so both feed one evaluateEgress (G10).
|
|
1469
|
+
*
|
|
1470
|
+
* Measured 2026-09-20 on dev e748b4a, egress { mode: 'block', allow: [] }:
|
|
1471
|
+
* `curl https://evil.example.com/` denied, the same URL through WebFetch, MCP
|
|
1472
|
+
* fetch and browser navigate allowed. The allowlist was shell-only, and an
|
|
1473
|
+
* agent that wants to exfiltrate does not need curl. The extraction below is
|
|
1474
|
+
* what the floor above already does; the policy was never applied to it.
|
|
1475
|
+
*
|
|
1476
|
+
* Same closed table, same helpers, for the same reason: a tool is covered
|
|
1477
|
+
* because it is LISTED, never because an argument looked like a URL. A tool
|
|
1478
|
+
* not in DESTINATION_ARGS yields [] and is invisible to the egress policy,
|
|
1479
|
+
* exactly as it is invisible to the floor. `binary` carries the tool name so
|
|
1480
|
+
* the reason string and the audit row say which carrier it was.
|
|
1481
|
+
*
|
|
1482
|
+
* Never throws: this runs on the hook path for every tool call.
|
|
1483
|
+
*/
|
|
1484
|
+
declare function extractToolDestinations(toolName: string, args: unknown): Destination[];
|
|
1449
1485
|
interface DestinationHit extends SsrfMatch {
|
|
1450
1486
|
/** The path that carried it, for the message and the audit row. */
|
|
1451
1487
|
argPath: string;
|
|
@@ -1465,4 +1501,4 @@ declare function ssrfDestinationFloor(toolName: string, args: unknown, opts?: {
|
|
|
1465
1501
|
/** Engine version stamped on audit entries for future drift detection. */
|
|
1466
1502
|
declare const ENGINE_VERSION = "1.4.0";
|
|
1467
1503
|
|
|
1468
|
-
export { AST_FS_REGEX_RULES, type AuditEntryForClassify, BASH_TOOL_NAMES, BUILTIN_SHIELDS, type BlastEnvFinding, type BlastFinding, type BlastResult, type BlastSummary, CANARY_MIN_LENGTH, CANONICAL_EXTRACTOR_HASH, CANONICAL_EXTRACTOR_VERSION, COMMAND_WRAPPERS, COPY_VERBS, COST_PER_LOOP_ITER_USD, type CanaryHit, type CanaryValue, type CanaryView, type CanonicalAgent, type CanonicalFinding, type CanonicalFindingType, type CanonicalSourceType, DEFAULT_EGRESS_ALLOWLIST, DESTINATION_ARGS, DESTRUCTIVE_OP_RE, DLP_PATTERNS, DLP_SCAN_LIMITS, type DlpMatch, ENGINE_VERSION, type EgressPolicy, type EgressVerdict, type ExtractContext, FILE_TOOLS, FLAGS_WITH_VALUES, FS_READ_TOOLS, type FsOpVerdict, type InjectionConfidence, type InjectionContext, type InjectionMatch, LONG_OUTPUT_THRESHOLD_BYTES, LOOP_MAX_RECORDS, LOOP_THRESHOLD_FOR_WASTE, type LoopWindowEvaluation, MAX_BLAST_PATH, NET_BINARIES, PATTERN_VERB_NAMES, PRIVILEGE_ESCALATION_RE, type PiiPattern, type PipeChainAnalysis, type PolicyConfig, type PolicyContext, type PolicyHostHooks, type PolicyVerdict, type PositionedArg, type ProvenanceLookup, type ProvenanceTrust, REALTIME_PII_PATTERNS, type RiskMetadata, SCAN_SIGNAL_WEIGHTS, SENSITIVE_PATH_RE, SENSITIVE_PATH_REGEXES, SSRF_MAX_HOST, type ScanFinding, type ScanSignals, type ScanSummary, type ScoreTier, type SessionExtractContext, type SessionToolCall, type Severity, type ShellCommandAnalysis, type ShellDestToken, type ShellDestination, type ShieldDefinition, type ShieldOverrides, type ShieldVerdict, type SmartCondition, type SmartRule, type SsrfFloorOptions, type SsrfMatch, type SsrfTier, type SsrfVerdict, type ToolCallEntry, type ToolCallRecord, analyzeFsOperation, analyzePipeChain, analyzeShellCommand, checkDangerousSql, classifyAuditEntry, classifyRuleSeverity, classifyScanSignal, classifySsrf, computeAgentDeviceScore, computeArgsHash, computeBlendedSecurityScore, computeScanScore, computeSecurityScore, dedupeCanonicalFindings, detectArgsPii, detectDangerousEval, detectDangerousShellExec, detectInlineExec, detectPii, evaluateEgress, evaluateLoopWindow, evaluatePolicy, evaluateSmartConditions, extractAllSshHosts, extractCanonicalFindings, extractNetworkTargets, extractPositionalArgs, extractSessionLevelFindings, extractShellDestTokens, extractShellDestinations, fileOperandFlagsOf, getCompiledRegex, getNestedValue, hostMatches, isBashTool, isIgnoredTool, isPrivateHost, isProtectedHomePath, isShellShapedTool, isShieldVerdict, isStrictGatedTier, matchCanary, matchCanaryArgs, matchSensitivePath, matchesPattern, narrativeRuleLabel, normalizeCommandForPolicy, normalizeIpLiteral, parseAllSshHostsFromCommand, parseDestHost, patternShapeOf, positionedArgs, previewArgs, redactText, resolvePinned, safeMessage, sampleCopyCommand, scanArgs, scanInjection, scanText, sensitivePathMatch, ssrfDestinationFloor, ssrfFloor, ssrfReason, stripControlChars, stripTerminalEscapes, summarizeBlast, summarizeScan, toScanFinding, toolMatchesRule, truncateBlastPath, unwrapCommandHead, validateOverrides, validateRegex, validateShieldDefinition };
|
|
1504
|
+
export { AST_FS_REGEX_RULES, type AuditEntryForClassify, BASH_TOOL_NAMES, BUILTIN_SHIELDS, type BlastEnvFinding, type BlastFinding, type BlastResult, type BlastSummary, CANARY_MIN_LENGTH, CANONICAL_EXTRACTOR_HASH, CANONICAL_EXTRACTOR_VERSION, COMMAND_WRAPPERS, COPY_VERBS, COST_PER_LOOP_ITER_USD, type CanaryHit, type CanaryValue, type CanaryView, type CanonicalAgent, type CanonicalFinding, type CanonicalFindingType, type CanonicalSourceType, DEFAULT_EGRESS_ALLOWLIST, DESTINATION_ARGS, DESTRUCTIVE_OP_RE, DLP_PATTERNS, DLP_SCAN_LIMITS, type Destination, type DlpMatch, ENGINE_VERSION, type EgressPolicy, type EgressVerdict, type ExtractContext, FILE_TOOLS, FLAGS_WITH_VALUES, FS_READ_TOOLS, type FsOpVerdict, type InjectionConfidence, type InjectionContext, type InjectionMatch, LONG_OUTPUT_THRESHOLD_BYTES, LOOP_MAX_RECORDS, LOOP_THRESHOLD_FOR_WASTE, type LoopWindowEvaluation, MAX_BLAST_PATH, NET_BINARIES, PATTERN_VERB_NAMES, PRIVILEGE_ESCALATION_RE, type PiiPattern, type PipeChainAnalysis, type PolicyConfig, type PolicyContext, type PolicyHostHooks, type PolicyVerdict, type PositionedArg, type ProvenanceLookup, type ProvenanceTrust, REALTIME_PII_PATTERNS, type RiskMetadata, SCAN_SIGNAL_WEIGHTS, SENSITIVE_PATH_RE, SENSITIVE_PATH_REGEXES, SSRF_MAX_HOST, type ScanFinding, type ScanSignals, type ScanSummary, type ScoreTier, type SessionExtractContext, type SessionToolCall, type Severity, type ShellCommandAnalysis, type ShellDestToken, type ShellDestination, type ShieldDefinition, type ShieldOverrides, type ShieldVerdict, type SmartCondition, type SmartRule, type SsrfFloorOptions, type SsrfMatch, type SsrfTier, type SsrfVerdict, type ToolCallEntry, type ToolCallRecord, analyzeFsOperation, analyzePipeChain, analyzeShellCommand, checkDangerousSql, classifyAuditEntry, classifyRuleSeverity, classifyScanSignal, classifySsrf, computeAgentDeviceScore, computeArgsHash, computeBlendedSecurityScore, computeScanScore, computeSecurityScore, dedupeCanonicalFindings, detectArgsPii, detectDangerousEval, detectDangerousShellExec, detectInlineExec, detectPii, evaluateEgress, evaluateLoopWindow, evaluatePolicy, evaluateSmartConditions, extractAllSshHosts, extractCanonicalFindings, extractNetworkTargets, extractPositionalArgs, extractSessionLevelFindings, extractShellDestTokens, extractShellDestinations, extractToolDestinations, fileOperandFlagsOf, getCompiledRegex, getNestedValue, hostMatches, isBashTool, isIgnoredTool, isPrivateHost, isProtectedHomePath, isShellShapedTool, isShieldVerdict, isStrictGatedTier, matchCanary, matchCanaryArgs, matchSensitivePath, matchesPattern, narrativeRuleLabel, normalizeCommandForPolicy, normalizeIpLiteral, parseAllSshHostsFromCommand, parseDestHost, patternShapeOf, positionedArgs, previewArgs, redactText, resolvePinned, safeMessage, sampleCopyCommand, scanArgs, scanInjection, scanText, sensitivePathMatch, ssrfDestinationFloor, ssrfFloor, ssrfReason, stripControlChars, stripTerminalEscapes, summarizeBlast, summarizeScan, toScanFinding, toolMatchesRule, truncateBlastPath, unwrapCommandHead, validateOverrides, validateRegex, validateShieldDefinition };
|
package/dist/index.d.ts
CHANGED
|
@@ -402,6 +402,15 @@ interface ShellCommandAnalysis {
|
|
|
402
402
|
*/
|
|
403
403
|
declare function analyzeShellCommand(command: string): ShellCommandAnalysis;
|
|
404
404
|
|
|
405
|
+
/**
|
|
406
|
+
* A destination a tool call will reach, whichever carrier declared it: a
|
|
407
|
+
* shell command (extractShellDestinations) or a tool argument
|
|
408
|
+
* (extractToolDestinations). The interface is still spelled ShellDestination
|
|
409
|
+
* where it lives (shell/index.ts, which is hashed by the extractor-version
|
|
410
|
+
* gate, so a rename there is not free); this is the name that says what the
|
|
411
|
+
* shape is for.
|
|
412
|
+
*/
|
|
413
|
+
type Destination = ShellDestination;
|
|
405
414
|
interface EgressPolicy {
|
|
406
415
|
/** Master switch. Default false — opt-in, like dlp.pii. */
|
|
407
416
|
enabled: boolean;
|
|
@@ -431,7 +440,25 @@ interface EgressVerdict {
|
|
|
431
440
|
declare const DEFAULT_EGRESS_ALLOWLIST: readonly string[];
|
|
432
441
|
/** Glob host match: "*" = any, "*.x" = apex x + any subdomain, else exact. */
|
|
433
442
|
declare function hostMatches(host: string, pattern: string): boolean;
|
|
434
|
-
/**
|
|
443
|
+
/**
|
|
444
|
+
* "Private" for the allowPrivate opt-in: loopback, RFC1918 and its IPv6
|
|
445
|
+
* analogue, the unspecified address, and the conventional local suffixes.
|
|
446
|
+
*
|
|
447
|
+
* The address half is classifySsrf's answer, so every spelling that file
|
|
448
|
+
* normalizes (brackets, zone id, IPv4-mapped IPv6) is one spelling here too.
|
|
449
|
+
* The old body had its own IPv4-only regexes and returned false for `[::1]`,
|
|
450
|
+
* which BLOCKED a local IPv6 dev server under allowPrivate (measured
|
|
451
|
+
* 2026-09-20; the shell extractor keeps the brackets, the declared-URL
|
|
452
|
+
* extractor strips them, and this function knew neither). Two parsers for
|
|
453
|
+
* one question is how that happens.
|
|
454
|
+
*
|
|
455
|
+
* NOT private here: link-local, multicast, the metadata endpoints. Those are
|
|
456
|
+
* the SSRF floor's tiers and allowPrivate must not be able to reach them;
|
|
457
|
+
* evaluateEgress documents that the floor runs first, and this function
|
|
458
|
+
* agrees with it rather than relying on it. CGNAT (100.64/10) is also out:
|
|
459
|
+
* a mesh-VPN peer is not everyone's private network, which is why the floor
|
|
460
|
+
* gave it its own tier; a Tailscale user lists the range in `allow`.
|
|
461
|
+
*/
|
|
435
462
|
declare function isPrivateHost(host: string): boolean;
|
|
436
463
|
/**
|
|
437
464
|
* Evaluate extracted destinations against the egress policy. Precedence per
|
|
@@ -441,7 +468,7 @@ declare function isPrivateHost(host: string): boolean;
|
|
|
441
468
|
* first review; null if everything is allowed (or policy disabled / mode off).
|
|
442
469
|
* Pure.
|
|
443
470
|
*/
|
|
444
|
-
declare function evaluateEgress(dests: readonly
|
|
471
|
+
declare function evaluateEgress(dests: readonly Destination[], policy: EgressPolicy): EgressVerdict | null;
|
|
445
472
|
|
|
446
473
|
interface PipeChainAnalysis {
|
|
447
474
|
isPipeline: boolean;
|
|
@@ -610,16 +637,6 @@ declare function resolvePinned(matches: SmartRule[]): SmartRule | undefined;
|
|
|
610
637
|
* Returns a reason string if dangerous, null if safe.
|
|
611
638
|
*/
|
|
612
639
|
declare function checkDangerousSql(sql: string): string | null;
|
|
613
|
-
/**
|
|
614
|
-
* Stateless policy evaluation. Same waterfall as the original
|
|
615
|
-
* proxy/src/policy/index.ts:evaluatePolicy, but config + context + I/O
|
|
616
|
-
* hooks come in as parameters so this function works in any host.
|
|
617
|
-
*
|
|
618
|
-
* Returns 'allow' for ignored tools, the matched smart-rule verdict,
|
|
619
|
-
* inline-execution review, eval-detection verdict, pipe-chain verdict,
|
|
620
|
-
* provenance verdict, sandbox allow, dangerous-word review, or strict-mode
|
|
621
|
-
* fallback. See the design doc for the full tier table.
|
|
622
|
-
*/
|
|
623
640
|
declare function evaluatePolicy(config: PolicyConfig, toolName: string, args?: unknown, context?: PolicyContext, hooks?: PolicyHostHooks): Promise<PolicyVerdict>;
|
|
624
641
|
/** Returns true when toolName matches the config's ignoredTools list. */
|
|
625
642
|
declare function isIgnoredTool(toolName: string, config: PolicyConfig): boolean;
|
|
@@ -1446,6 +1463,25 @@ declare function ssrfFloor(tokens: ReadonlyArray<{
|
|
|
1446
1463
|
* `[]` in a path means "every element of this array".
|
|
1447
1464
|
*/
|
|
1448
1465
|
declare const DESTINATION_ARGS: ReadonlyMap<string, readonly string[]>;
|
|
1466
|
+
/**
|
|
1467
|
+
* The hosts a non-shell tool call will reach, in the SAME shape the shell
|
|
1468
|
+
* extractor produces, so both feed one evaluateEgress (G10).
|
|
1469
|
+
*
|
|
1470
|
+
* Measured 2026-09-20 on dev e748b4a, egress { mode: 'block', allow: [] }:
|
|
1471
|
+
* `curl https://evil.example.com/` denied, the same URL through WebFetch, MCP
|
|
1472
|
+
* fetch and browser navigate allowed. The allowlist was shell-only, and an
|
|
1473
|
+
* agent that wants to exfiltrate does not need curl. The extraction below is
|
|
1474
|
+
* what the floor above already does; the policy was never applied to it.
|
|
1475
|
+
*
|
|
1476
|
+
* Same closed table, same helpers, for the same reason: a tool is covered
|
|
1477
|
+
* because it is LISTED, never because an argument looked like a URL. A tool
|
|
1478
|
+
* not in DESTINATION_ARGS yields [] and is invisible to the egress policy,
|
|
1479
|
+
* exactly as it is invisible to the floor. `binary` carries the tool name so
|
|
1480
|
+
* the reason string and the audit row say which carrier it was.
|
|
1481
|
+
*
|
|
1482
|
+
* Never throws: this runs on the hook path for every tool call.
|
|
1483
|
+
*/
|
|
1484
|
+
declare function extractToolDestinations(toolName: string, args: unknown): Destination[];
|
|
1449
1485
|
interface DestinationHit extends SsrfMatch {
|
|
1450
1486
|
/** The path that carried it, for the message and the audit row. */
|
|
1451
1487
|
argPath: string;
|
|
@@ -1465,4 +1501,4 @@ declare function ssrfDestinationFloor(toolName: string, args: unknown, opts?: {
|
|
|
1465
1501
|
/** Engine version stamped on audit entries for future drift detection. */
|
|
1466
1502
|
declare const ENGINE_VERSION = "1.4.0";
|
|
1467
1503
|
|
|
1468
|
-
export { AST_FS_REGEX_RULES, type AuditEntryForClassify, BASH_TOOL_NAMES, BUILTIN_SHIELDS, type BlastEnvFinding, type BlastFinding, type BlastResult, type BlastSummary, CANARY_MIN_LENGTH, CANONICAL_EXTRACTOR_HASH, CANONICAL_EXTRACTOR_VERSION, COMMAND_WRAPPERS, COPY_VERBS, COST_PER_LOOP_ITER_USD, type CanaryHit, type CanaryValue, type CanaryView, type CanonicalAgent, type CanonicalFinding, type CanonicalFindingType, type CanonicalSourceType, DEFAULT_EGRESS_ALLOWLIST, DESTINATION_ARGS, DESTRUCTIVE_OP_RE, DLP_PATTERNS, DLP_SCAN_LIMITS, type DlpMatch, ENGINE_VERSION, type EgressPolicy, type EgressVerdict, type ExtractContext, FILE_TOOLS, FLAGS_WITH_VALUES, FS_READ_TOOLS, type FsOpVerdict, type InjectionConfidence, type InjectionContext, type InjectionMatch, LONG_OUTPUT_THRESHOLD_BYTES, LOOP_MAX_RECORDS, LOOP_THRESHOLD_FOR_WASTE, type LoopWindowEvaluation, MAX_BLAST_PATH, NET_BINARIES, PATTERN_VERB_NAMES, PRIVILEGE_ESCALATION_RE, type PiiPattern, type PipeChainAnalysis, type PolicyConfig, type PolicyContext, type PolicyHostHooks, type PolicyVerdict, type PositionedArg, type ProvenanceLookup, type ProvenanceTrust, REALTIME_PII_PATTERNS, type RiskMetadata, SCAN_SIGNAL_WEIGHTS, SENSITIVE_PATH_RE, SENSITIVE_PATH_REGEXES, SSRF_MAX_HOST, type ScanFinding, type ScanSignals, type ScanSummary, type ScoreTier, type SessionExtractContext, type SessionToolCall, type Severity, type ShellCommandAnalysis, type ShellDestToken, type ShellDestination, type ShieldDefinition, type ShieldOverrides, type ShieldVerdict, type SmartCondition, type SmartRule, type SsrfFloorOptions, type SsrfMatch, type SsrfTier, type SsrfVerdict, type ToolCallEntry, type ToolCallRecord, analyzeFsOperation, analyzePipeChain, analyzeShellCommand, checkDangerousSql, classifyAuditEntry, classifyRuleSeverity, classifyScanSignal, classifySsrf, computeAgentDeviceScore, computeArgsHash, computeBlendedSecurityScore, computeScanScore, computeSecurityScore, dedupeCanonicalFindings, detectArgsPii, detectDangerousEval, detectDangerousShellExec, detectInlineExec, detectPii, evaluateEgress, evaluateLoopWindow, evaluatePolicy, evaluateSmartConditions, extractAllSshHosts, extractCanonicalFindings, extractNetworkTargets, extractPositionalArgs, extractSessionLevelFindings, extractShellDestTokens, extractShellDestinations, fileOperandFlagsOf, getCompiledRegex, getNestedValue, hostMatches, isBashTool, isIgnoredTool, isPrivateHost, isProtectedHomePath, isShellShapedTool, isShieldVerdict, isStrictGatedTier, matchCanary, matchCanaryArgs, matchSensitivePath, matchesPattern, narrativeRuleLabel, normalizeCommandForPolicy, normalizeIpLiteral, parseAllSshHostsFromCommand, parseDestHost, patternShapeOf, positionedArgs, previewArgs, redactText, resolvePinned, safeMessage, sampleCopyCommand, scanArgs, scanInjection, scanText, sensitivePathMatch, ssrfDestinationFloor, ssrfFloor, ssrfReason, stripControlChars, stripTerminalEscapes, summarizeBlast, summarizeScan, toScanFinding, toolMatchesRule, truncateBlastPath, unwrapCommandHead, validateOverrides, validateRegex, validateShieldDefinition };
|
|
1504
|
+
export { AST_FS_REGEX_RULES, type AuditEntryForClassify, BASH_TOOL_NAMES, BUILTIN_SHIELDS, type BlastEnvFinding, type BlastFinding, type BlastResult, type BlastSummary, CANARY_MIN_LENGTH, CANONICAL_EXTRACTOR_HASH, CANONICAL_EXTRACTOR_VERSION, COMMAND_WRAPPERS, COPY_VERBS, COST_PER_LOOP_ITER_USD, type CanaryHit, type CanaryValue, type CanaryView, type CanonicalAgent, type CanonicalFinding, type CanonicalFindingType, type CanonicalSourceType, DEFAULT_EGRESS_ALLOWLIST, DESTINATION_ARGS, DESTRUCTIVE_OP_RE, DLP_PATTERNS, DLP_SCAN_LIMITS, type Destination, type DlpMatch, ENGINE_VERSION, type EgressPolicy, type EgressVerdict, type ExtractContext, FILE_TOOLS, FLAGS_WITH_VALUES, FS_READ_TOOLS, type FsOpVerdict, type InjectionConfidence, type InjectionContext, type InjectionMatch, LONG_OUTPUT_THRESHOLD_BYTES, LOOP_MAX_RECORDS, LOOP_THRESHOLD_FOR_WASTE, type LoopWindowEvaluation, MAX_BLAST_PATH, NET_BINARIES, PATTERN_VERB_NAMES, PRIVILEGE_ESCALATION_RE, type PiiPattern, type PipeChainAnalysis, type PolicyConfig, type PolicyContext, type PolicyHostHooks, type PolicyVerdict, type PositionedArg, type ProvenanceLookup, type ProvenanceTrust, REALTIME_PII_PATTERNS, type RiskMetadata, SCAN_SIGNAL_WEIGHTS, SENSITIVE_PATH_RE, SENSITIVE_PATH_REGEXES, SSRF_MAX_HOST, type ScanFinding, type ScanSignals, type ScanSummary, type ScoreTier, type SessionExtractContext, type SessionToolCall, type Severity, type ShellCommandAnalysis, type ShellDestToken, type ShellDestination, type ShieldDefinition, type ShieldOverrides, type ShieldVerdict, type SmartCondition, type SmartRule, type SsrfFloorOptions, type SsrfMatch, type SsrfTier, type SsrfVerdict, type ToolCallEntry, type ToolCallRecord, analyzeFsOperation, analyzePipeChain, analyzeShellCommand, checkDangerousSql, classifyAuditEntry, classifyRuleSeverity, classifyScanSignal, classifySsrf, computeAgentDeviceScore, computeArgsHash, computeBlendedSecurityScore, computeScanScore, computeSecurityScore, dedupeCanonicalFindings, detectArgsPii, detectDangerousEval, detectDangerousShellExec, detectInlineExec, detectPii, evaluateEgress, evaluateLoopWindow, evaluatePolicy, evaluateSmartConditions, extractAllSshHosts, extractCanonicalFindings, extractNetworkTargets, extractPositionalArgs, extractSessionLevelFindings, extractShellDestTokens, extractShellDestinations, extractToolDestinations, fileOperandFlagsOf, getCompiledRegex, getNestedValue, hostMatches, isBashTool, isIgnoredTool, isPrivateHost, isProtectedHomePath, isShellShapedTool, isShieldVerdict, isStrictGatedTier, matchCanary, matchCanaryArgs, matchSensitivePath, matchesPattern, narrativeRuleLabel, normalizeCommandForPolicy, normalizeIpLiteral, parseAllSshHostsFromCommand, parseDestHost, patternShapeOf, positionedArgs, previewArgs, redactText, resolvePinned, safeMessage, sampleCopyCommand, scanArgs, scanInjection, scanText, sensitivePathMatch, ssrfDestinationFloor, ssrfFloor, ssrfReason, stripControlChars, stripTerminalEscapes, summarizeBlast, summarizeScan, toScanFinding, toolMatchesRule, truncateBlastPath, unwrapCommandHead, validateOverrides, validateRegex, validateShieldDefinition };
|