| AST analysis | Parses PowerShell into its syntax tree. Names every command, resolves aliases against the runtime that will run it, finds redirections, dynamic invocation, encoded commands, hidden windows and download-then-execute shapes. |
| Preflight | Refuses what cannot run before it runs: parse errors, missing commands, invalid parameters, and commands written for another platform - PowerShell 7 syntax on Windows PowerShell 5.1, Unix paths on Windows, Windows habits on Linux - with the line and the fix named. |
| Policy engine | Calculates risk (read-only, creates or copies data, modifies system, destructive, critical, blocked) and applies the configured decision per category: allow, confirm, strong-confirm or block. Three profiles - Cautious, Balanced, Generous - set a dozen knobs at once. |
| Provenance | Every command carries where it came from: typed by you, AI-generated, an AI repair, Agent-generated. Execution bridges from generated text to a running process can be confirmed or blocked separately. |
| Authorization gate | Every tool call passes one boundary that fails closed: a tool that does not declare itself read-only is approved before it changes anything. Only the command path may claim to authorize downstream, and a test names the files allowed to. |
| Destructive mismatch | A request to delete one kind of thing that would delete another - an Operation named "Trigger Notepad" versus its trigger - is refused before anyone is asked to approve it. |
| Secret redaction | API keys, tokens and credentials are redacted from provider context, saved sessions, history and notifications. Sensitive Operation parameters are stored as fingerprints, never as plaintext. |
| Execution controls | Real PowerShell process per command, streaming output, cancellation, per-class timeouts, output limits, and a lifetime guard that ends child processes with the application. |
| Audit trail | Every Agent run is recorded step by step: tool, command, provenance, calculated risk, policy decision, authorization outcome, observation and duration. Review Run shows it; interrupted runs are reported on the next start. |