🔍 Resolving [1/1] 🔍 @mariozechner/pi-tui [7/6] 🔍 Resolving [7/6] 🔍 Resolving [7/6] 🔍 Resolving [7/7] 🔍 @mariozechner/jiti [13/12] 🔍 Resolving [13/12] 🔍 Resolving [13/12] 🔍 Resolving [13/12] 🔍 Resolving [13/12] 🔍 Resolving [13/12] 🔍 Resolving [13/12] PASS: safe command is allowed PASS: safe curl GET is allowed PASS: safe wget GET is allowed PASS: safe curl HEAD is allowed PASS: safe curl silent flag is allowed PASS: safe curl head flag is allowed PASS: safe curl location flag is allowed PASS: safe curl combined long flags are allowed PASS: safe curl negated long flag is allowed PASS: safe curl combined silent short flags are allowed PASS: safe curl combined head and location short flags are allowed PASS: safe curl ordinary short flag cluster is allowed PASS: safe wget OPTIONS is allowed PASS: dangerous built-in sudo prompts PASS: direct rm blocks PASS: composed rm blocks PASS: deferred rm blocks PASS: git worktree creation prompts PASS: jj workspace creation prompts PASS: git global option before worktree prompts PASS: wrapped Git global option before worktree prompts PASS: composed jj global option before workspace prompts PASS: git short paginate alias before worktree prompts PASS: wrapped Git short no-pager alias before worktree prompts PASS: composed jj debug flag before workspace prompts PASS: unknown Git global cannot hide worktree creation PASS: wrapped unknown jj global cannot hide workspace creation PASS: composed unknown Git global cannot hide worktree creation PASS: Git global option value is not a worktree subcommand PASS: jj global option value followed by unresolved alias prompts PASS: argv-injected Git worktree alias prompts PASS: wrapped argv-injected jj workspace alias prompts PASS: Git injected alias overriding known command prompts PASS: jj injected alias overriding known command prompts PASS: Git injected alias embedding worktree add prompts PASS: wrapped Git injected alias embedding worktree add prompts PASS: jj injected alias embedding workspace add prompts PASS: wrapped jj injected alias embedding workspace add prompts PASS: Git mixed-quoted embedded-add alias prompts PASS: wrapped jj literal-string embedded-add alias prompts PASS: unparseable invoked injected alias prompts PASS: composed argv-injected jj TOML workspace alias prompts PASS: persistent unknown Git alias-shaped add prompts PASS: persistent Git alias embedding worktree add prompts without literal add PASS: wrapped persistent unknown jj alias-shaped add prompts PASS: persistent jj alias embedding workspace add prompts without literal add PASS: unknown Git global cannot hide persistent alias-shaped add PASS: known Git remote add remains allowed PASS: ordinary Git status remains allowed PASS: ordinary Git grep remains allowed PASS: ordinary Git blame remains allowed PASS: ordinary Git rev-parse remains allowed PASS: ordinary Git ls-files remains allowed PASS: ordinary Git archive remains allowed PASS: ordinary Git show-ref remains allowed PASS: Git global version information remains allowed PASS: Git global version ignores mutation-shaped trailing argv PASS: Git global help remains allowed PASS: Git global help ignores worktree subcommand argv PASS: Git global HTML path remains allowed PASS: Git global man path remains allowed PASS: Git global info path remains allowed PASS: Git global exec path remains allowed PASS: ordinary jj bookmark list remains allowed PASS: ordinary jj log remains allowed PASS: jj help remains allowed PASS: jj revert remains allowed PASS: jj bisect remains allowed PASS: jj sign remains allowed PASS: jj operation alias remains allowed PASS: jj status alias remains allowed PASS: jj long version remains allowed PASS: jj short version remains allowed PASS: jj long help remains allowed PASS: jj short help remains allowed PASS: jj subcommand help remains allowed PASS: jj informational version short-circuits workspace add PASS: jj informational help short-circuits workspace add PASS: jj at-operation log remains allowed PASS: jj at-operation workspace add still prompts PASS: unknown jj command prompts PASS: pi install blocks PASS: pi remove blocks through wrapper PASS: pi uninstall blocks PASS: pi update blocks PASS: pi config blocks PASS: pi list remains allowed PASS: curl separate request mutation prompts PASS: curl equals request mutation prompts PASS: curl glued request mutation prompts PASS: curl glued data value containing XGET prompts PASS: curl glued header value containing XGET is allowed PASS: curl valid short option cluster request mutation prompts PASS: curl final request option controls mutation PASS: curl next transfer cannot hide earlier mutation PASS: curl short next alias cannot hide earlier mutation PASS: curl long next token consumed as header value is allowed PASS: curl short next token consumed as header value is allowed PASS: curl next tokens after end-of-options are positional PASS: curl safe long multi-transfer is allowed PASS: curl safe short multi-transfer is allowed PASS: curl mutation after long boundary prompts PASS: curl mutation after short boundary prompts PASS: curl WebDAV MKCOL prompts PASS: curl custom explicit method prompts PASS: curl lowercase method is not read-only GET PASS: curl long config prompts PASS: curl glued short config prompts PASS: curl data mutation prompts PASS: curl no-get after get restores data mutation PASS: curl no-get after short get restores upload mutation PASS: curl later get restores GET semantics PASS: curl expand-data mutation prompts PASS: curl unclassified future long option prompts PASS: curl unclassified future short option prompts PASS: curl upload mutation prompts PASS: curl read-only method cannot mask data mutation PASS: curl read-only method cannot mask upload mutation PASS: curl get conversion with read-only method remains allowed PASS: wget separate method mutation prompts PASS: wget equals method mutation prompts PASS: wget post data mutation prompts PASS: wget read-only method cannot mask body mutation PASS: wget WebDAV MOVE prompts PASS: wget custom explicit method prompts PASS: wget lowercase method is not read-only HEAD PASS: wget header value resembling method cannot mask post data PASS: composed wget body value resembling safe method prompts PASS: wget ordinary header value remains allowed PASS: wget opaque config prompts PASS: wrapped wget short execute prompts PASS: wget long execute prompts PASS: wget malformed method prompts PASS: wget ambiguous unknown option prompts PASS: headless HTTP prompt blocks PASS: gate discovers the deployed rules module PASS: throwing parser rule blocks diagnostically PASS: project cannot replace rules PASS: project cannot disable block rules PASS: project cannot disable protected prompt rules PASS: project cannot disable headless prompt rules PASS: path outside any repository blocks as unrecoverable PASS: git feature branch allows PASS: git double-dot-prefixed child allows PASS: git target outside the repository root blocks PASS: git main notifies and allows PASS: git master notifies and allows PASS: indeterminate repository state allows PASS: repository ordinary-healthy PASS: repository ordinary-nonempty-at PASS: repository ordinary-conflict PASS: repository ordinary-divergent-at PASS: repository ordinary-main-at PASS: repository ordinary-master-at PASS: repository diamond-healthy PASS: repository diamond-nonempty-wip PASS: repository diamond-resolved-nonempty-join PASS: repository diamond-missing-wip PASS: repository diamond-moved-wip PASS: repository diamond-divergent-wip PASS: repository diamond-divergent-wip-without-target PASS: repository diamond-divergent-wip-malformed-resolution PASS: repository diamond-nonsingle-parent-wip PASS: repository diamond-single-parent-join PASS: repository diamond-conflicted-join PASS: repository diamond-conflicted-immediate-parent PASS: repository diamond-join-parent-count-mismatch PASS: repository diamond-malformed-join-probe PASS: repository diamond-failing-join-probe PASS: repository malformed-probe PASS: repository malformed-parent-count-probe PASS: repository failing-probe PASS: repository ambiguous-probe PASS: repository failing-root-probe PASS: repository outside-jj-contradictory-stdout PASS: repository outside-jj-wrong-status PASS: repository outside-jj-mixed-diagnostics PASS: repository outside-jj-hint-git-main PASS: repository classification-whitespace-only PASS: repository classification-padded PASS: repository classification-extra-blank PASS: repository root-padded PASS: repository current-extra-blank PASS: repository identity-padded PASS: repository defaults-extra-blank PASS: repository resolution-padded PASS: repository parents-extra-blank PASS: repository canonical-root-mismatch PASS: repository target-jj-cwd-other-repository PASS: repository target-git-cwd-jj-repository PASS: repository git-protected-head PASS: repository git-feature-head PASS: repository git-detached-head PASS: repository git-malformed-head PASS: repository git-multiline-head PASS: repository colocated-healthy PASS: repository colocated-divergent-roots PASS: characterized Git outside result is accepted PASS: Git outside result with contradictory stdout is invalid PASS: Git outside result with wrong status is invalid PASS: Git outside result with trailing diagnostics is accepted PASS: adapter registers only tool_call handler PASS: adapter translates edit allow PASS: adapter translates write allow PASS: adapter permits a notify decision and announces it PASS: adapter blocks a target outside any repository PASS: adapter strips a Pi at-prefix before resolving PASS: adapter expands a leading tilde before resolving PASS: adapter passes unrelated tools through PASS: adapter blocks a non-string path PASS: adapter blocks an empty path PASS: adapter blocks a whitespace-only path PASS: adapter blocks a missing path key PASS: adapter cannot read atomic hashline edit input PASS: adapter permits core exceptions PASS: adapter permits capability exceptions PASS: adapter permits a missing filesystem capability PASS: adapter permits a throwing capability factory PASS: adapter permits a throwing notification capability PASS: normalize keeps an ordinary relative path PASS: normalize strips a Pi at-prefix PASS: normalize expands a bare tilde PASS: normalize expands a tilde path PASS: normalize expands a tilde path behind an at-prefix PASS: normalize converts a file URL PASS: normalize folds unicode space variants PASS: normalize rejects a whitespace-only path PASS: normalize rejects a bare at-prefix PASS: classification reports a malformed current probe PASS: classification reports a failing current probe PASS: classification reports an ambiguous current probe PASS: classification reports a failing root probe PASS: classification reports a malformed join probe PASS: classification reports a canonical root mismatch PASS: classification reports ambiguous Git and jj identities PASS: classification reports a healthy diamond PASS: classification reports an ordinary jj repository 237 pi-agent-environment policy cases passed