Skip to main content

Module patterns

Module patterns 

Source
Expand description

Command classification patterns for identifying compilation commands.

Implements the 5-tier classification system:

  • Tier 0: Instant reject (non-Bash, empty)
  • Tier 1: Structure analysis (pipes, redirects, background)
  • Tier 2: SIMD keyword filter
  • Tier 3: Negative pattern check
  • Tier 4: Full classification with confidence

Structs§

Classification
Result of command classification.
ClassificationDetails
Detailed classification results with per-tier decisions.
ClassificationTier
Detailed result for a single classification tier.

Enums§

CompilationKind
Kind of compilation command detected.
TierDecision
Decision outcome for a classification tier.

Statics§

COMPILATION_KEYWORDS
Keywords that indicate a potential compilation command. Used for SIMD-accelerated quick filtering (Tier 2).
NEVER_INTERCEPT
Commands that should NEVER be intercepted, even if they contain compilation keywords. These either modify local state or have dependencies on local execution.

Functions§

classify_command
Classify a shell command.
classify_command_detailed
Classify a shell command with detailed tier decisions for diagnostics.
compound_local_compilation_segments
Segments of an && chain (all but the last) that look like a compilation command but were not classified as one, and therefore stay local when the chain is rewritten by the hook (issue #50).
declined_compilation_due_to_structure
Detect a command that would be a compilation command if it weren’t for an (unsafe / unhandled) pipe/redirect/background/subshell structure — i.e. one that the classifier declines purely because of its shell structure rather than because the underlying program is not a compiler (issue #24, item 3).
is_cargo_package_verification
Whether Cargo will build and verify a package archive without publishing it.
is_cargo_xwin_build
Recognize the explicit cargo-xwin build entry points, without treating a mention in a Cargo option value as permission to relax the native MSVC gate. The worker must still have the requested Rust target, cargo-xwin and its SDK. Non-build commands (including cache mutation and environment inspection) are deliberately outside this offload surface.
normalize_command
Normalize a command by stripping common wrappers (sudo, time, env, etc.)
split_shell_commands
Split a shell command string on unquoted ;, &&, and || operators.