pi-codex-auto-review 0.1.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/LICENSE +201 -0
- package/NOTICE +10 -0
- package/README.md +77 -0
- package/dist/approvals.d.ts +72 -0
- package/dist/approvals.js +167 -0
- package/dist/approvals.js.map +1 -0
- package/dist/audit.d.ts +28 -0
- package/dist/audit.js +40 -0
- package/dist/audit.js.map +1 -0
- package/dist/cli.d.ts +2 -0
- package/dist/cli.js +70 -0
- package/dist/cli.js.map +1 -0
- package/dist/context-files.d.ts +14 -0
- package/dist/context-files.js +113 -0
- package/dist/context-files.js.map +1 -0
- package/dist/contracts.d.ts +258 -0
- package/dist/contracts.js +102 -0
- package/dist/contracts.js.map +1 -0
- package/dist/index.d.ts +28 -0
- package/dist/index.js +106 -0
- package/dist/index.js.map +1 -0
- package/dist/native/darwin-arm64/artifact.json +5 -0
- package/dist/native/darwin-arm64/pi-guard-execpolicy +0 -0
- package/dist/native/linux-x64/artifact.json +5 -0
- package/dist/native/linux-x64/pi-guard-execpolicy +0 -0
- package/dist/policy/domains.d.ts +5 -0
- package/dist/policy/domains.js +18 -0
- package/dist/policy/domains.js.map +1 -0
- package/dist/policy/index.d.ts +56 -0
- package/dist/policy/index.js +304 -0
- package/dist/policy/index.js.map +1 -0
- package/dist/policy/paths.d.ts +5 -0
- package/dist/policy/paths.js +54 -0
- package/dist/policy/paths.js.map +1 -0
- package/dist/policy/rules.d.ts +36 -0
- package/dist/policy/rules.js +61 -0
- package/dist/policy/rules.js.map +1 -0
- package/dist/policy/shell.d.ts +14 -0
- package/dist/policy/shell.js +122 -0
- package/dist/policy/shell.js.map +1 -0
- package/dist/reports.d.ts +21 -0
- package/dist/reports.js +42 -0
- package/dist/reports.js.map +1 -0
- package/dist/review/context.d.ts +25 -0
- package/dist/review/context.js +108 -0
- package/dist/review/context.js.map +1 -0
- package/dist/review/investigation.d.ts +39 -0
- package/dist/review/investigation.js +36 -0
- package/dist/review/investigation.js.map +1 -0
- package/dist/review/lifecycle.d.ts +29 -0
- package/dist/review/lifecycle.js +71 -0
- package/dist/review/lifecycle.js.map +1 -0
- package/dist/review/policy.d.ts +4 -0
- package/dist/review/policy.js +15 -0
- package/dist/review/policy.js.map +1 -0
- package/dist/review/upstream-policy.d.ts +2 -0
- package/dist/review/upstream-policy.js +210 -0
- package/dist/review/upstream-policy.js.map +1 -0
- package/dist/reviewer.d.ts +45 -0
- package/dist/reviewer.js +148 -0
- package/dist/reviewer.js.map +1 -0
- package/dist/sandbox/broker.d.ts +1 -0
- package/dist/sandbox/broker.js +135 -0
- package/dist/sandbox/broker.js.map +1 -0
- package/dist/sandbox/config.d.ts +5 -0
- package/dist/sandbox/config.js +91 -0
- package/dist/sandbox/config.js.map +1 -0
- package/dist/sandbox/executor.d.ts +20 -0
- package/dist/sandbox/executor.js +144 -0
- package/dist/sandbox/executor.js.map +1 -0
- package/dist/sandbox/hard-links.d.ts +4 -0
- package/dist/sandbox/hard-links.js +145 -0
- package/dist/sandbox/hard-links.js.map +1 -0
- package/dist/sandbox/linux-read-paths.d.ts +7 -0
- package/dist/sandbox/linux-read-paths.js +47 -0
- package/dist/sandbox/linux-read-paths.js.map +1 -0
- package/dist/sandbox/paths.d.ts +3 -0
- package/dist/sandbox/paths.js +10 -0
- package/dist/sandbox/paths.js.map +1 -0
- package/dist/sandbox/runtime-write-paths.d.ts +2 -0
- package/dist/sandbox/runtime-write-paths.js +8 -0
- package/dist/sandbox/runtime-write-paths.js.map +1 -0
- package/dist/sandbox/seccomp.d.ts +5 -0
- package/dist/sandbox/seccomp.js +16 -0
- package/dist/sandbox/seccomp.js.map +1 -0
- package/dist/sandbox/worker.d.ts +1 -0
- package/dist/sandbox/worker.js +73 -0
- package/dist/sandbox/worker.js.map +1 -0
- package/dist/signals.d.ts +10 -0
- package/dist/signals.js +21 -0
- package/dist/signals.js.map +1 -0
- package/dist/startup.d.ts +22 -0
- package/dist/startup.js +100 -0
- package/dist/startup.js.map +1 -0
- package/dist/tools/controller.d.ts +63 -0
- package/dist/tools/controller.js +286 -0
- package/dist/tools/controller.js.map +1 -0
- package/dist/tools/external.d.ts +30 -0
- package/dist/tools/external.js +24 -0
- package/dist/tools/external.js.map +1 -0
- package/dist/tools/mcp.d.ts +17 -0
- package/dist/tools/mcp.js +186 -0
- package/dist/tools/mcp.js.map +1 -0
- package/docs/publishing.md +73 -0
- package/docs/security/dependencies.md +43 -0
- package/docs/testing/auto-review-protection.md +130 -0
- package/docs/usage.md +217 -0
- package/native/execpolicy/LICENSE +201 -0
- package/native/execpolicy/NOTICE +6 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/LICENSE +201 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/README.md +901 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/cli.d.ts +3 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/cli.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/cli.js +472 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/cli.js.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/index.d.ts +19 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/index.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/index.js +17 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/index.js.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/address.d.ts +52 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/address.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/address.js +153 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/address.js.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/aws-sigv4.d.ts +164 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/aws-sigv4.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/aws-sigv4.js +246 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/aws-sigv4.js.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/body-substitution.d.ts +58 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/body-substitution.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/body-substitution.js +128 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/body-substitution.js.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/credential-aws-pairs.d.ts +124 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/credential-aws-pairs.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/credential-aws-pairs.js +258 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/credential-aws-pairs.js.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/credential-decode.d.ts +87 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/credential-decode.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/credential-decode.js +138 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/credential-decode.js.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/credential-extract.d.ts +67 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/credential-extract.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/credential-extract.js +113 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/credential-extract.js.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/credential-mask-env.d.ts +70 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/credential-mask-env.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/credential-mask-env.js +171 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/credential-mask-env.js.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/credential-mask-files.d.ts +120 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/credential-mask-files.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/credential-mask-files.js +281 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/credential-mask-files.js.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/credential-sentinel.d.ts +108 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/credential-sentinel.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/credential-sentinel.js +208 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/credential-sentinel.js.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/domain-pattern.d.ts +82 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/domain-pattern.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/domain-pattern.js +155 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/domain-pattern.js.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/generate-seccomp-filter.d.ts +44 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/generate-seccomp-filter.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/generate-seccomp-filter.js +220 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/generate-seccomp-filter.js.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/http-proxy.d.ts +150 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/http-proxy.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/http-proxy.js +678 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/http-proxy.js.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/java-proxy-agent.d.ts +32 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/java-proxy-agent.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/java-proxy-agent.js +111 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/java-proxy-agent.js.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/linux-sandbox-utils.d.ts +305 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/linux-sandbox-utils.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/linux-sandbox-utils.js +2605 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/linux-sandbox-utils.js.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/linux-violation-monitor.d.ts +55 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/linux-violation-monitor.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/linux-violation-monitor.js +152 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/linux-violation-monitor.js.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/listen-in-range.d.ts +12 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/listen-in-range.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/listen-in-range.js +43 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/listen-in-range.js.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/macos-sandbox-utils.d.ts +116 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/macos-sandbox-utils.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/macos-sandbox-utils.js +1195 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/macos-sandbox-utils.js.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/mitm-ca.d.ts +200 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/mitm-ca.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/mitm-ca.js +443 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/mitm-ca.js.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/mitm-leaf.d.ts +28 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/mitm-leaf.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/mitm-leaf.js +114 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/mitm-leaf.js.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/mux-proxy.d.ts +59 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/mux-proxy.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/mux-proxy.js +159 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/mux-proxy.js.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/parent-proxy.d.ts +147 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/parent-proxy.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/parent-proxy.js +445 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/parent-proxy.js.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/read-deny-glob.d.ts +17 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/read-deny-glob.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/read-deny-glob.js +163 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/read-deny-glob.js.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/request-filter.d.ts +83 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/request-filter.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/request-filter.js +212 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/request-filter.js.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/resolved-address-guard.d.ts +76 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/resolved-address-guard.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/resolved-address-guard.js +221 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/resolved-address-guard.js.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/sandbox-config.d.ts +1691 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/sandbox-config.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/sandbox-config.js +1233 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/sandbox-config.js.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/sandbox-manager.d.ts +97 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/sandbox-manager.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/sandbox-manager.js +1937 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/sandbox-manager.js.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/sandbox-schemas.d.ts +113 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/sandbox-schemas.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/sandbox-schemas.js +3 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/sandbox-schemas.js.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/sandbox-utils.d.ts +411 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/sandbox-utils.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/sandbox-utils.js +1408 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/sandbox-utils.js.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/sandbox-violation-store.d.ts +37 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/sandbox-violation-store.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/sandbox-violation-store.js +125 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/sandbox-violation-store.js.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/socks-proxy.d.ts +57 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/socks-proxy.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/socks-proxy.js +332 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/socks-proxy.js.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/tls-terminate-proxy.d.ts +100 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/tls-terminate-proxy.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/tls-terminate-proxy.js +546 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/tls-terminate-proxy.js.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/windows-sandbox-utils.d.ts +923 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/windows-sandbox-utils.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/windows-sandbox-utils.js +1419 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/sandbox/windows-sandbox-utils.js.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/utils/config-loader.d.ts +31 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/utils/config-loader.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/utils/config-loader.js +69 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/utils/config-loader.js.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/utils/debug.d.ts +7 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/utils/debug.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/utils/debug.js +25 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/utils/debug.js.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/utils/platform.d.ts +15 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/utils/platform.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/utils/platform.js +49 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/utils/platform.js.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/utils/ripgrep.d.ts +17 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/utils/ripgrep.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/utils/ripgrep.js +37 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/utils/ripgrep.js.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/utils/shell-quote.d.ts +27 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/utils/shell-quote.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/utils/shell-quote.js +47 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/utils/shell-quote.js.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/utils/which.d.ts +9 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/utils/which.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/utils/which.js +25 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/dist/utils/which.js.map +1 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/package.json +88 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/vendor/java-proxy-agent/build.ts +95 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/vendor/java-proxy-agent/srt-proxy-agent.jar +0 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/vendor/seccomp/arm64/apply-seccomp +0 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/vendor/seccomp/build.ts +69 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/vendor/seccomp/x64/apply-seccomp +0 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/vendor/srt-win/arm64/srt-win.exe +0 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/vendor/srt-win/build.ts +28 -0
- package/node_modules/@anthropic-ai/sandbox-runtime/vendor/srt-win/x64/srt-win.exe +0 -0
- package/node_modules/@pondwader/socks5-server/.github/workflows/ci.yml +27 -0
- package/node_modules/@pondwader/socks5-server/LICENSE +20 -0
- package/node_modules/@pondwader/socks5-server/README.md +151 -0
- package/node_modules/@pondwader/socks5-server/dist/index.d.mts +87 -0
- package/node_modules/@pondwader/socks5-server/dist/index.d.ts +87 -0
- package/node_modules/@pondwader/socks5-server/dist/index.js +346 -0
- package/node_modules/@pondwader/socks5-server/dist/index.mjs +307 -0
- package/node_modules/@pondwader/socks5-server/package.json +31 -0
- package/node_modules/commander/LICENSE +22 -0
- package/node_modules/commander/Readme.md +1157 -0
- package/node_modules/commander/esm.mjs +16 -0
- package/node_modules/commander/index.js +24 -0
- package/node_modules/commander/lib/argument.js +149 -0
- package/node_modules/commander/lib/command.js +2509 -0
- package/node_modules/commander/lib/error.js +39 -0
- package/node_modules/commander/lib/help.js +520 -0
- package/node_modules/commander/lib/option.js +330 -0
- package/node_modules/commander/lib/suggestSimilar.js +101 -0
- package/node_modules/commander/package-support.json +16 -0
- package/node_modules/commander/package.json +84 -0
- package/node_modules/commander/typings/esm.d.mts +3 -0
- package/node_modules/commander/typings/index.d.ts +969 -0
- package/node_modules/node-forge/.editorconfig +17 -0
- package/node_modules/node-forge/.eslintrc.js +24 -0
- package/node_modules/node-forge/.github/workflows/main.yaml +96 -0
- package/node_modules/node-forge/.istanbul.yml +2 -0
- package/node_modules/node-forge/.npmignore +15 -0
- package/node_modules/node-forge/CHANGELOG.md +555 -0
- package/node_modules/node-forge/CONTRIBUTING.md +18 -0
- package/node_modules/node-forge/LICENSE +331 -0
- package/node_modules/node-forge/README.md +2071 -0
- package/node_modules/node-forge/RELEASE.md +19 -0
- package/node_modules/node-forge/SECURITY.md +5 -0
- package/node_modules/node-forge/examples/create-cert.js +110 -0
- package/node_modules/node-forge/examples/create-csr.js +66 -0
- package/node_modules/node-forge/examples/create-pkcs12.js +160 -0
- package/node_modules/node-forge/examples/imap.js +46 -0
- package/node_modules/node-forge/examples/sign-p7.js +115 -0
- package/node_modules/node-forge/examples/tls.js +189 -0
- package/node_modules/node-forge/flash/PooledSocket.as +18 -0
- package/node_modules/node-forge/flash/README.md +48 -0
- package/node_modules/node-forge/flash/SocketEvent.as +36 -0
- package/node_modules/node-forge/flash/SocketPool.as +754 -0
- package/node_modules/node-forge/flash/mod_fsp/README +135 -0
- package/node_modules/node-forge/flash/mod_fsp/mod_fsp.c +415 -0
- package/node_modules/node-forge/flash/package.json +28 -0
- package/node_modules/node-forge/flash/policyserver.js +65 -0
- package/node_modules/node-forge/flash/policyserver.py +112 -0
- package/node_modules/node-forge/flash/swf/SocketPool.swf +0 -0
- package/node_modules/node-forge/karma-sauce.conf.js +79 -0
- package/node_modules/node-forge/karma.conf.js +133 -0
- package/node_modules/node-forge/lib/aes.js +1091 -0
- package/node_modules/node-forge/lib/aesCipherSuites.js +282 -0
- package/node_modules/node-forge/lib/asn1-validator.js +91 -0
- package/node_modules/node-forge/lib/asn1.js +1503 -0
- package/node_modules/node-forge/lib/baseN.js +186 -0
- package/node_modules/node-forge/lib/cipher.js +230 -0
- package/node_modules/node-forge/lib/cipherModes.js +999 -0
- package/node_modules/node-forge/lib/des.js +496 -0
- package/node_modules/node-forge/lib/ed25519.js +1091 -0
- package/node_modules/node-forge/lib/forge.js +13 -0
- package/node_modules/node-forge/lib/form.js +149 -0
- package/node_modules/node-forge/lib/hmac.js +146 -0
- package/node_modules/node-forge/lib/http.js +1346 -0
- package/node_modules/node-forge/lib/index.all.js +16 -0
- package/node_modules/node-forge/lib/index.js +33 -0
- package/node_modules/node-forge/lib/jsbn.js +1294 -0
- package/node_modules/node-forge/lib/kem.js +168 -0
- package/node_modules/node-forge/lib/log.js +319 -0
- package/node_modules/node-forge/lib/md.all.js +13 -0
- package/node_modules/node-forge/lib/md.js +11 -0
- package/node_modules/node-forge/lib/md5.js +289 -0
- package/node_modules/node-forge/lib/mgf.js +12 -0
- package/node_modules/node-forge/lib/mgf1.js +57 -0
- package/node_modules/node-forge/lib/oids.js +180 -0
- package/node_modules/node-forge/lib/pbe.js +1023 -0
- package/node_modules/node-forge/lib/pbkdf2.js +211 -0
- package/node_modules/node-forge/lib/pem.js +237 -0
- package/node_modules/node-forge/lib/pkcs1.js +276 -0
- package/node_modules/node-forge/lib/pkcs12.js +1078 -0
- package/node_modules/node-forge/lib/pkcs7.js +1260 -0
- package/node_modules/node-forge/lib/pkcs7asn1.js +410 -0
- package/node_modules/node-forge/lib/pki.js +102 -0
- package/node_modules/node-forge/lib/prime.js +297 -0
- package/node_modules/node-forge/lib/prime.worker.js +168 -0
- package/node_modules/node-forge/lib/prng.js +419 -0
- package/node_modules/node-forge/lib/pss.js +241 -0
- package/node_modules/node-forge/lib/random.js +191 -0
- package/node_modules/node-forge/lib/rc2.js +410 -0
- package/node_modules/node-forge/lib/rsa.js +1973 -0
- package/node_modules/node-forge/lib/sha1.js +319 -0
- package/node_modules/node-forge/lib/sha256.js +327 -0
- package/node_modules/node-forge/lib/sha512.js +561 -0
- package/node_modules/node-forge/lib/socket.js +287 -0
- package/node_modules/node-forge/lib/ssh.js +236 -0
- package/node_modules/node-forge/lib/tls.js +4282 -0
- package/node_modules/node-forge/lib/tlssocket.js +249 -0
- package/node_modules/node-forge/lib/util.js +2652 -0
- package/node_modules/node-forge/lib/x509.js +3251 -0
- package/node_modules/node-forge/lib/xhr.js +738 -0
- package/node_modules/node-forge/package.json +123 -0
- package/node_modules/node-forge/tests/.eslintrc.js +5 -0
- package/node_modules/node-forge/tests/README.md +4 -0
- package/node_modules/node-forge/tests/benchmarks/aes-speed.js +62 -0
- package/node_modules/node-forge/tests/benchmarks/so-44303784.js +246 -0
- package/node_modules/node-forge/tests/flash/README.md +7 -0
- package/node_modules/node-forge/tests/flash/Test.as +96 -0
- package/node_modules/node-forge/tests/flash/build-flash.xml +7 -0
- package/node_modules/node-forge/tests/flash/index.html +28 -0
- package/node_modules/node-forge/tests/index.html +33 -0
- package/node_modules/node-forge/tests/issues/heartbleed.js +55 -0
- package/node_modules/node-forge/tests/issues/issue-428.html +95 -0
- package/node_modules/node-forge/tests/issues/issue-428.js +375 -0
- package/node_modules/node-forge/tests/karma/index.js +8 -0
- package/node_modules/node-forge/tests/karma/testWorker.js +65 -0
- package/node_modules/node-forge/tests/karma/web-worker-rsa.js +55 -0
- package/node_modules/node-forge/tests/legacy/common.html +65 -0
- package/node_modules/node-forge/tests/legacy/common.js +2199 -0
- package/node_modules/node-forge/tests/legacy/form.html +148 -0
- package/node_modules/node-forge/tests/legacy/form.js +40 -0
- package/node_modules/node-forge/tests/legacy/http.html +235 -0
- package/node_modules/node-forge/tests/legacy/index.html +70 -0
- package/node_modules/node-forge/tests/legacy/keygen.html +113 -0
- package/node_modules/node-forge/tests/legacy/login.css +26 -0
- package/node_modules/node-forge/tests/legacy/loginDemo.html +32 -0
- package/node_modules/node-forge/tests/legacy/loginDemo.js +149 -0
- package/node_modules/node-forge/tests/legacy/performance.html +533 -0
- package/node_modules/node-forge/tests/legacy/result.txt +1 -0
- package/node_modules/node-forge/tests/legacy/socketPool.html +302 -0
- package/node_modules/node-forge/tests/legacy/tasks.html +54 -0
- package/node_modules/node-forge/tests/legacy/tasks.js +378 -0
- package/node_modules/node-forge/tests/legacy/tls.html +389 -0
- package/node_modules/node-forge/tests/legacy/webid.html +89 -0
- package/node_modules/node-forge/tests/legacy/webid.js +313 -0
- package/node_modules/node-forge/tests/legacy/ws-webid.js +120 -0
- package/node_modules/node-forge/tests/legacy/xhr.html +67 -0
- package/node_modules/node-forge/tests/legacy/xhr.js +590 -0
- package/node_modules/node-forge/tests/pocs/ghsa-2328-f5f3-gj25.js +85 -0
- package/node_modules/node-forge/tests/pocs/ghsa-ppp5-5v6c-4jwp.js +166 -0
- package/node_modules/node-forge/tests/pocs/ghsa-q67f-28xg-22rw.js +103 -0
- package/node_modules/node-forge/tests/security/cve-2025-12816.js +75 -0
- package/node_modules/node-forge/tests/security/ghsa-554w-wpv2-vw27.js +81 -0
- package/node_modules/node-forge/tests/security/index.js +3 -0
- package/node_modules/node-forge/tests/server.crt +26 -0
- package/node_modules/node-forge/tests/server.js +87 -0
- package/node_modules/node-forge/tests/server.key +27 -0
- package/node_modules/node-forge/tests/support/task.js +718 -0
- package/node_modules/node-forge/tests/tests.css +61 -0
- package/node_modules/node-forge/tests/unit/aes.js +1498 -0
- package/node_modules/node-forge/tests/unit/asn1.js +1337 -0
- package/node_modules/node-forge/tests/unit/csr.js +129 -0
- package/node_modules/node-forge/tests/unit/des.js +231 -0
- package/node_modules/node-forge/tests/unit/ed25519.js +395 -0
- package/node_modules/node-forge/tests/unit/forge.js +2 -0
- package/node_modules/node-forge/tests/unit/hmac.js +64 -0
- package/node_modules/node-forge/tests/unit/index.html +20 -0
- package/node_modules/node-forge/tests/unit/index.js +27 -0
- package/node_modules/node-forge/tests/unit/jsbn.js +40 -0
- package/node_modules/node-forge/tests/unit/kem.js +167 -0
- package/node_modules/node-forge/tests/unit/md5.js +114 -0
- package/node_modules/node-forge/tests/unit/mgf1.js +16 -0
- package/node_modules/node-forge/tests/unit/pbkdf2.js +182 -0
- package/node_modules/node-forge/tests/unit/pem.js +159 -0
- package/node_modules/node-forge/tests/unit/pkcs1.js +1077 -0
- package/node_modules/node-forge/tests/unit/pkcs12.js +739 -0
- package/node_modules/node-forge/tests/unit/pkcs7.js +792 -0
- package/node_modules/node-forge/tests/unit/random.js +48 -0
- package/node_modules/node-forge/tests/unit/rc2.js +88 -0
- package/node_modules/node-forge/tests/unit/rsa.js +1278 -0
- package/node_modules/node-forge/tests/unit/sha1.js +72 -0
- package/node_modules/node-forge/tests/unit/sha256.js +79 -0
- package/node_modules/node-forge/tests/unit/sha512.js +200 -0
- package/node_modules/node-forge/tests/unit/ssh.js +175 -0
- package/node_modules/node-forge/tests/unit/tls.js +175 -0
- package/node_modules/node-forge/tests/unit/util.js +595 -0
- package/node_modules/node-forge/tests/unit/x509.js +1986 -0
- package/node_modules/node-forge/tests/websockets/server-webid.js +495 -0
- package/node_modules/node-forge/tests/websockets/server-ws.js +158 -0
- package/node_modules/node-forge/webpack-tests.config.js +26 -0
- package/node_modules/node-forge/webpack.config.js +130 -0
- package/node_modules/zod/LICENSE +21 -0
- package/node_modules/zod/README.md +208 -0
- package/node_modules/zod/index.cjs +33 -0
- package/node_modules/zod/index.d.cts +4 -0
- package/node_modules/zod/index.d.ts +4 -0
- package/node_modules/zod/index.js +4 -0
- package/node_modules/zod/package.json +118 -0
- package/node_modules/zod/src/index.ts +4 -0
- package/node_modules/zod/src/v3/ZodError.ts +330 -0
- package/node_modules/zod/src/v3/benchmarks/datetime.ts +58 -0
- package/node_modules/zod/src/v3/benchmarks/discriminatedUnion.ts +80 -0
- package/node_modules/zod/src/v3/benchmarks/index.ts +59 -0
- package/node_modules/zod/src/v3/benchmarks/ipv4.ts +57 -0
- package/node_modules/zod/src/v3/benchmarks/object.ts +69 -0
- package/node_modules/zod/src/v3/benchmarks/primitives.ts +162 -0
- package/node_modules/zod/src/v3/benchmarks/realworld.ts +63 -0
- package/node_modules/zod/src/v3/benchmarks/string.ts +55 -0
- package/node_modules/zod/src/v3/benchmarks/union.ts +80 -0
- package/node_modules/zod/src/v3/errors.ts +13 -0
- package/node_modules/zod/src/v3/external.ts +6 -0
- package/node_modules/zod/src/v3/helpers/enumUtil.ts +17 -0
- package/node_modules/zod/src/v3/helpers/errorUtil.ts +8 -0
- package/node_modules/zod/src/v3/helpers/parseUtil.ts +176 -0
- package/node_modules/zod/src/v3/helpers/partialUtil.ts +34 -0
- package/node_modules/zod/src/v3/helpers/typeAliases.ts +2 -0
- package/node_modules/zod/src/v3/helpers/util.ts +224 -0
- package/node_modules/zod/src/v3/index.ts +4 -0
- package/node_modules/zod/src/v3/locales/en.ts +124 -0
- package/node_modules/zod/src/v3/standard-schema.ts +113 -0
- package/node_modules/zod/src/v3/tests/Mocker.ts +54 -0
- package/node_modules/zod/src/v3/tests/all-errors.test.ts +157 -0
- package/node_modules/zod/src/v3/tests/anyunknown.test.ts +28 -0
- package/node_modules/zod/src/v3/tests/array.test.ts +71 -0
- package/node_modules/zod/src/v3/tests/async-parsing.test.ts +388 -0
- package/node_modules/zod/src/v3/tests/async-refinements.test.ts +46 -0
- package/node_modules/zod/src/v3/tests/base.test.ts +29 -0
- package/node_modules/zod/src/v3/tests/bigint.test.ts +55 -0
- package/node_modules/zod/src/v3/tests/branded.test.ts +53 -0
- package/node_modules/zod/src/v3/tests/catch.test.ts +220 -0
- package/node_modules/zod/src/v3/tests/coerce.test.ts +133 -0
- package/node_modules/zod/src/v3/tests/complex.test.ts +56 -0
- package/node_modules/zod/src/v3/tests/custom.test.ts +31 -0
- package/node_modules/zod/src/v3/tests/date.test.ts +32 -0
- package/node_modules/zod/src/v3/tests/deepmasking.test.ts +186 -0
- package/node_modules/zod/src/v3/tests/default.test.ts +112 -0
- package/node_modules/zod/src/v3/tests/description.test.ts +33 -0
- package/node_modules/zod/src/v3/tests/discriminated-unions.test.ts +315 -0
- package/node_modules/zod/src/v3/tests/enum.test.ts +80 -0
- package/node_modules/zod/src/v3/tests/error.test.ts +551 -0
- package/node_modules/zod/src/v3/tests/firstparty.test.ts +87 -0
- package/node_modules/zod/src/v3/tests/firstpartyschematypes.test.ts +21 -0
- package/node_modules/zod/src/v3/tests/function.test.ts +257 -0
- package/node_modules/zod/src/v3/tests/generics.test.ts +48 -0
- package/node_modules/zod/src/v3/tests/instanceof.test.ts +37 -0
- package/node_modules/zod/src/v3/tests/intersection.test.ts +110 -0
- package/node_modules/zod/src/v3/tests/language-server.source.ts +76 -0
- package/node_modules/zod/src/v3/tests/language-server.test.ts +207 -0
- package/node_modules/zod/src/v3/tests/literal.test.ts +36 -0
- package/node_modules/zod/src/v3/tests/map.test.ts +110 -0
- package/node_modules/zod/src/v3/tests/masking.test.ts +4 -0
- package/node_modules/zod/src/v3/tests/mocker.test.ts +19 -0
- package/node_modules/zod/src/v3/tests/nan.test.ts +21 -0
- package/node_modules/zod/src/v3/tests/nativeEnum.test.ts +87 -0
- package/node_modules/zod/src/v3/tests/nullable.test.ts +42 -0
- package/node_modules/zod/src/v3/tests/number.test.ts +176 -0
- package/node_modules/zod/src/v3/tests/object-augmentation.test.ts +29 -0
- package/node_modules/zod/src/v3/tests/object-in-es5-env.test.ts +29 -0
- package/node_modules/zod/src/v3/tests/object.test.ts +434 -0
- package/node_modules/zod/src/v3/tests/optional.test.ts +42 -0
- package/node_modules/zod/src/v3/tests/parseUtil.test.ts +23 -0
- package/node_modules/zod/src/v3/tests/parser.test.ts +41 -0
- package/node_modules/zod/src/v3/tests/partials.test.ts +243 -0
- package/node_modules/zod/src/v3/tests/pickomit.test.ts +111 -0
- package/node_modules/zod/src/v3/tests/pipeline.test.ts +29 -0
- package/node_modules/zod/src/v3/tests/preprocess.test.ts +186 -0
- package/node_modules/zod/src/v3/tests/primitive.test.ts +440 -0
- package/node_modules/zod/src/v3/tests/promise.test.ts +90 -0
- package/node_modules/zod/src/v3/tests/readonly.test.ts +194 -0
- package/node_modules/zod/src/v3/tests/record.test.ts +171 -0
- package/node_modules/zod/src/v3/tests/recursive.test.ts +197 -0
- package/node_modules/zod/src/v3/tests/refine.test.ts +313 -0
- package/node_modules/zod/src/v3/tests/safeparse.test.ts +27 -0
- package/node_modules/zod/src/v3/tests/set.test.ts +142 -0
- package/node_modules/zod/src/v3/tests/standard-schema.test.ts +83 -0
- package/node_modules/zod/src/v3/tests/string.test.ts +916 -0
- package/node_modules/zod/src/v3/tests/transformer.test.ts +233 -0
- package/node_modules/zod/src/v3/tests/tuple.test.ts +90 -0
- package/node_modules/zod/src/v3/tests/unions.test.ts +57 -0
- package/node_modules/zod/src/v3/tests/validations.test.ts +133 -0
- package/node_modules/zod/src/v3/tests/void.test.ts +15 -0
- package/node_modules/zod/src/v3/types.ts +5136 -0
- package/node_modules/zod/src/v4/classic/checks.ts +30 -0
- package/node_modules/zod/src/v4/classic/coerce.ts +27 -0
- package/node_modules/zod/src/v4/classic/compat.ts +66 -0
- package/node_modules/zod/src/v4/classic/errors.ts +75 -0
- package/node_modules/zod/src/v4/classic/external.ts +50 -0
- package/node_modules/zod/src/v4/classic/index.ts +5 -0
- package/node_modules/zod/src/v4/classic/iso.ts +90 -0
- package/node_modules/zod/src/v4/classic/parse.ts +33 -0
- package/node_modules/zod/src/v4/classic/schemas.ts +2054 -0
- package/node_modules/zod/src/v4/classic/tests/anyunknown.test.ts +26 -0
- package/node_modules/zod/src/v4/classic/tests/array.test.ts +264 -0
- package/node_modules/zod/src/v4/classic/tests/assignability.test.ts +210 -0
- package/node_modules/zod/src/v4/classic/tests/async-parsing.test.ts +381 -0
- package/node_modules/zod/src/v4/classic/tests/async-refinements.test.ts +68 -0
- package/node_modules/zod/src/v4/classic/tests/base.test.ts +7 -0
- package/node_modules/zod/src/v4/classic/tests/bigint.test.ts +54 -0
- package/node_modules/zod/src/v4/classic/tests/brand.test.ts +63 -0
- package/node_modules/zod/src/v4/classic/tests/catch.test.ts +252 -0
- package/node_modules/zod/src/v4/classic/tests/coalesce.test.ts +20 -0
- package/node_modules/zod/src/v4/classic/tests/coerce.test.ts +160 -0
- package/node_modules/zod/src/v4/classic/tests/continuability.test.ts +352 -0
- package/node_modules/zod/src/v4/classic/tests/custom.test.ts +40 -0
- package/node_modules/zod/src/v4/classic/tests/date.test.ts +31 -0
- package/node_modules/zod/src/v4/classic/tests/datetime.test.ts +296 -0
- package/node_modules/zod/src/v4/classic/tests/default.test.ts +313 -0
- package/node_modules/zod/src/v4/classic/tests/description.test.ts +32 -0
- package/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +619 -0
- package/node_modules/zod/src/v4/classic/tests/enum.test.ts +285 -0
- package/node_modules/zod/src/v4/classic/tests/error-utils.test.ts +527 -0
- package/node_modules/zod/src/v4/classic/tests/error.test.ts +711 -0
- package/node_modules/zod/src/v4/classic/tests/file.test.ts +91 -0
- package/node_modules/zod/src/v4/classic/tests/firstparty.test.ts +175 -0
- package/node_modules/zod/src/v4/classic/tests/function.test.ts +268 -0
- package/node_modules/zod/src/v4/classic/tests/generics.test.ts +72 -0
- package/node_modules/zod/src/v4/classic/tests/index.test.ts +829 -0
- package/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +34 -0
- package/node_modules/zod/src/v4/classic/tests/intersection.test.ts +171 -0
- package/node_modules/zod/src/v4/classic/tests/json.test.ts +108 -0
- package/node_modules/zod/src/v4/classic/tests/lazy.test.ts +227 -0
- package/node_modules/zod/src/v4/classic/tests/literal.test.ts +92 -0
- package/node_modules/zod/src/v4/classic/tests/map.test.ts +196 -0
- package/node_modules/zod/src/v4/classic/tests/nan.test.ts +21 -0
- package/node_modules/zod/src/v4/classic/tests/nested-refine.test.ts +168 -0
- package/node_modules/zod/src/v4/classic/tests/nonoptional.test.ts +86 -0
- package/node_modules/zod/src/v4/classic/tests/nullable.test.ts +22 -0
- package/node_modules/zod/src/v4/classic/tests/number.test.ts +247 -0
- package/node_modules/zod/src/v4/classic/tests/object.test.ts +563 -0
- package/node_modules/zod/src/v4/classic/tests/optional.test.ts +123 -0
- package/node_modules/zod/src/v4/classic/tests/partial.test.ts +147 -0
- package/node_modules/zod/src/v4/classic/tests/pickomit.test.ts +127 -0
- package/node_modules/zod/src/v4/classic/tests/pipe.test.ts +81 -0
- package/node_modules/zod/src/v4/classic/tests/prefault.test.ts +37 -0
- package/node_modules/zod/src/v4/classic/tests/preprocess.test.ts +298 -0
- package/node_modules/zod/src/v4/classic/tests/primitive.test.ts +175 -0
- package/node_modules/zod/src/v4/classic/tests/promise.test.ts +81 -0
- package/node_modules/zod/src/v4/classic/tests/prototypes.test.ts +23 -0
- package/node_modules/zod/src/v4/classic/tests/readonly.test.ts +252 -0
- package/node_modules/zod/src/v4/classic/tests/record.test.ts +342 -0
- package/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +356 -0
- package/node_modules/zod/src/v4/classic/tests/refine.test.ts +532 -0
- package/node_modules/zod/src/v4/classic/tests/registries.test.ts +204 -0
- package/node_modules/zod/src/v4/classic/tests/set.test.ts +179 -0
- package/node_modules/zod/src/v4/classic/tests/standard-schema.test.ts +57 -0
- package/node_modules/zod/src/v4/classic/tests/string-formats.test.ts +109 -0
- package/node_modules/zod/src/v4/classic/tests/string.test.ts +881 -0
- package/node_modules/zod/src/v4/classic/tests/stringbool.test.ts +66 -0
- package/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +758 -0
- package/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +2314 -0
- package/node_modules/zod/src/v4/classic/tests/transform.test.ts +250 -0
- package/node_modules/zod/src/v4/classic/tests/tuple.test.ts +163 -0
- package/node_modules/zod/src/v4/classic/tests/union.test.ts +94 -0
- package/node_modules/zod/src/v4/classic/tests/validations.test.ts +283 -0
- package/node_modules/zod/src/v4/classic/tests/void.test.ts +12 -0
- package/node_modules/zod/src/v4/core/api.ts +1594 -0
- package/node_modules/zod/src/v4/core/checks.ts +1283 -0
- package/node_modules/zod/src/v4/core/config.ts +15 -0
- package/node_modules/zod/src/v4/core/core.ts +134 -0
- package/node_modules/zod/src/v4/core/doc.ts +44 -0
- package/node_modules/zod/src/v4/core/errors.ts +424 -0
- package/node_modules/zod/src/v4/core/function.ts +176 -0
- package/node_modules/zod/src/v4/core/index.ts +15 -0
- package/node_modules/zod/src/v4/core/json-schema.ts +143 -0
- package/node_modules/zod/src/v4/core/parse.ts +94 -0
- package/node_modules/zod/src/v4/core/regexes.ts +135 -0
- package/node_modules/zod/src/v4/core/registries.ts +96 -0
- package/node_modules/zod/src/v4/core/schemas.ts +3842 -0
- package/node_modules/zod/src/v4/core/standard-schema.ts +64 -0
- package/node_modules/zod/src/v4/core/tests/index.test.ts +46 -0
- package/node_modules/zod/src/v4/core/tests/locales/be.test.ts +124 -0
- package/node_modules/zod/src/v4/core/tests/locales/en.test.ts +22 -0
- package/node_modules/zod/src/v4/core/tests/locales/ru.test.ts +128 -0
- package/node_modules/zod/src/v4/core/tests/locales/tr.test.ts +69 -0
- package/node_modules/zod/src/v4/core/to-json-schema.ts +977 -0
- package/node_modules/zod/src/v4/core/util.ts +775 -0
- package/node_modules/zod/src/v4/core/versions.ts +5 -0
- package/node_modules/zod/src/v4/core/zsf.ts +323 -0
- package/node_modules/zod/src/v4/index.ts +4 -0
- package/node_modules/zod/src/v4/locales/ar.ts +125 -0
- package/node_modules/zod/src/v4/locales/az.ts +121 -0
- package/node_modules/zod/src/v4/locales/be.ts +184 -0
- package/node_modules/zod/src/v4/locales/ca.ts +127 -0
- package/node_modules/zod/src/v4/locales/cs.ts +142 -0
- package/node_modules/zod/src/v4/locales/de.ts +124 -0
- package/node_modules/zod/src/v4/locales/en.ts +127 -0
- package/node_modules/zod/src/v4/locales/eo.ts +125 -0
- package/node_modules/zod/src/v4/locales/es.ts +125 -0
- package/node_modules/zod/src/v4/locales/fa.ts +134 -0
- package/node_modules/zod/src/v4/locales/fi.ts +131 -0
- package/node_modules/zod/src/v4/locales/fr-CA.ts +126 -0
- package/node_modules/zod/src/v4/locales/fr.ts +124 -0
- package/node_modules/zod/src/v4/locales/he.ts +125 -0
- package/node_modules/zod/src/v4/locales/hu.ts +126 -0
- package/node_modules/zod/src/v4/locales/id.ts +125 -0
- package/node_modules/zod/src/v4/locales/index.ts +39 -0
- package/node_modules/zod/src/v4/locales/it.ts +125 -0
- package/node_modules/zod/src/v4/locales/ja.ts +122 -0
- package/node_modules/zod/src/v4/locales/kh.ts +126 -0
- package/node_modules/zod/src/v4/locales/ko.ts +131 -0
- package/node_modules/zod/src/v4/locales/mk.ts +127 -0
- package/node_modules/zod/src/v4/locales/ms.ts +124 -0
- package/node_modules/zod/src/v4/locales/nl.ts +126 -0
- package/node_modules/zod/src/v4/locales/no.ts +124 -0
- package/node_modules/zod/src/v4/locales/ota.ts +125 -0
- package/node_modules/zod/src/v4/locales/pl.ts +126 -0
- package/node_modules/zod/src/v4/locales/ps.ts +133 -0
- package/node_modules/zod/src/v4/locales/pt.ts +123 -0
- package/node_modules/zod/src/v4/locales/ru.ts +184 -0
- package/node_modules/zod/src/v4/locales/sl.ts +126 -0
- package/node_modules/zod/src/v4/locales/sv.ts +127 -0
- package/node_modules/zod/src/v4/locales/ta.ts +125 -0
- package/node_modules/zod/src/v4/locales/th.ts +126 -0
- package/node_modules/zod/src/v4/locales/tr.ts +121 -0
- package/node_modules/zod/src/v4/locales/ua.ts +126 -0
- package/node_modules/zod/src/v4/locales/ur.ts +126 -0
- package/node_modules/zod/src/v4/locales/vi.ts +125 -0
- package/node_modules/zod/src/v4/locales/zh-CN.ts +123 -0
- package/node_modules/zod/src/v4/locales/zh-TW.ts +125 -0
- package/node_modules/zod/src/v4/mini/checks.ts +32 -0
- package/node_modules/zod/src/v4/mini/coerce.ts +22 -0
- package/node_modules/zod/src/v4/mini/external.ts +40 -0
- package/node_modules/zod/src/v4/mini/index.ts +3 -0
- package/node_modules/zod/src/v4/mini/iso.ts +62 -0
- package/node_modules/zod/src/v4/mini/parse.ts +1 -0
- package/node_modules/zod/src/v4/mini/schemas.ts +1579 -0
- package/node_modules/zod/src/v4/mini/tests/assignability.test.ts +129 -0
- package/node_modules/zod/src/v4/mini/tests/brand.test.ts +51 -0
- package/node_modules/zod/src/v4/mini/tests/checks.test.ts +144 -0
- package/node_modules/zod/src/v4/mini/tests/computed.test.ts +36 -0
- package/node_modules/zod/src/v4/mini/tests/error.test.ts +22 -0
- package/node_modules/zod/src/v4/mini/tests/functions.test.ts +43 -0
- package/node_modules/zod/src/v4/mini/tests/index.test.ts +871 -0
- package/node_modules/zod/src/v4/mini/tests/number.test.ts +95 -0
- package/node_modules/zod/src/v4/mini/tests/object.test.ts +185 -0
- package/node_modules/zod/src/v4/mini/tests/prototypes.test.ts +43 -0
- package/node_modules/zod/src/v4/mini/tests/recursive-types.test.ts +275 -0
- package/node_modules/zod/src/v4/mini/tests/string.test.ts +299 -0
- package/node_modules/zod/src/v4-mini/index.ts +1 -0
- package/node_modules/zod/v3/ZodError.cjs +138 -0
- package/node_modules/zod/v3/ZodError.d.cts +164 -0
- package/node_modules/zod/v3/ZodError.d.ts +164 -0
- package/node_modules/zod/v3/ZodError.js +133 -0
- package/node_modules/zod/v3/errors.cjs +17 -0
- package/node_modules/zod/v3/errors.d.cts +5 -0
- package/node_modules/zod/v3/errors.d.ts +5 -0
- package/node_modules/zod/v3/errors.js +9 -0
- package/node_modules/zod/v3/external.cjs +22 -0
- package/node_modules/zod/v3/external.d.cts +6 -0
- package/node_modules/zod/v3/external.d.ts +6 -0
- package/node_modules/zod/v3/external.js +6 -0
- package/node_modules/zod/v3/helpers/enumUtil.cjs +2 -0
- package/node_modules/zod/v3/helpers/enumUtil.d.cts +8 -0
- package/node_modules/zod/v3/helpers/enumUtil.d.ts +8 -0
- package/node_modules/zod/v3/helpers/enumUtil.js +1 -0
- package/node_modules/zod/v3/helpers/errorUtil.cjs +9 -0
- package/node_modules/zod/v3/helpers/errorUtil.d.cts +9 -0
- package/node_modules/zod/v3/helpers/errorUtil.d.ts +9 -0
- package/node_modules/zod/v3/helpers/errorUtil.js +6 -0
- package/node_modules/zod/v3/helpers/parseUtil.cjs +124 -0
- package/node_modules/zod/v3/helpers/parseUtil.d.cts +78 -0
- package/node_modules/zod/v3/helpers/parseUtil.d.ts +78 -0
- package/node_modules/zod/v3/helpers/parseUtil.js +109 -0
- package/node_modules/zod/v3/helpers/partialUtil.cjs +2 -0
- package/node_modules/zod/v3/helpers/partialUtil.d.cts +8 -0
- package/node_modules/zod/v3/helpers/partialUtil.d.ts +8 -0
- package/node_modules/zod/v3/helpers/partialUtil.js +1 -0
- package/node_modules/zod/v3/helpers/typeAliases.cjs +2 -0
- package/node_modules/zod/v3/helpers/typeAliases.d.cts +2 -0
- package/node_modules/zod/v3/helpers/typeAliases.d.ts +2 -0
- package/node_modules/zod/v3/helpers/typeAliases.js +1 -0
- package/node_modules/zod/v3/helpers/util.cjs +137 -0
- package/node_modules/zod/v3/helpers/util.d.cts +85 -0
- package/node_modules/zod/v3/helpers/util.d.ts +85 -0
- package/node_modules/zod/v3/helpers/util.js +133 -0
- package/node_modules/zod/v3/index.cjs +33 -0
- package/node_modules/zod/v3/index.d.cts +4 -0
- package/node_modules/zod/v3/index.d.ts +4 -0
- package/node_modules/zod/v3/index.js +4 -0
- package/node_modules/zod/v3/locales/en.cjs +111 -0
- package/node_modules/zod/v3/locales/en.d.cts +3 -0
- package/node_modules/zod/v3/locales/en.d.ts +3 -0
- package/node_modules/zod/v3/locales/en.js +109 -0
- package/node_modules/zod/v3/standard-schema.cjs +2 -0
- package/node_modules/zod/v3/standard-schema.d.cts +102 -0
- package/node_modules/zod/v3/standard-schema.d.ts +102 -0
- package/node_modules/zod/v3/standard-schema.js +1 -0
- package/node_modules/zod/v3/types.cjs +3775 -0
- package/node_modules/zod/v3/types.d.cts +1031 -0
- package/node_modules/zod/v3/types.d.ts +1031 -0
- package/node_modules/zod/v3/types.js +3693 -0
- package/node_modules/zod/v4/classic/checks.cjs +32 -0
- package/node_modules/zod/v4/classic/checks.d.cts +1 -0
- package/node_modules/zod/v4/classic/checks.d.ts +1 -0
- package/node_modules/zod/v4/classic/checks.js +1 -0
- package/node_modules/zod/v4/classic/coerce.cjs +47 -0
- package/node_modules/zod/v4/classic/coerce.d.cts +17 -0
- package/node_modules/zod/v4/classic/coerce.d.ts +17 -0
- package/node_modules/zod/v4/classic/coerce.js +17 -0
- package/node_modules/zod/v4/classic/compat.cjs +57 -0
- package/node_modules/zod/v4/classic/compat.d.cts +46 -0
- package/node_modules/zod/v4/classic/compat.d.ts +46 -0
- package/node_modules/zod/v4/classic/compat.js +27 -0
- package/node_modules/zod/v4/classic/errors.cjs +67 -0
- package/node_modules/zod/v4/classic/errors.d.cts +30 -0
- package/node_modules/zod/v4/classic/errors.d.ts +30 -0
- package/node_modules/zod/v4/classic/errors.js +41 -0
- package/node_modules/zod/v4/classic/external.cjs +70 -0
- package/node_modules/zod/v4/classic/external.d.cts +13 -0
- package/node_modules/zod/v4/classic/external.d.ts +13 -0
- package/node_modules/zod/v4/classic/external.js +18 -0
- package/node_modules/zod/v4/classic/index.cjs +33 -0
- package/node_modules/zod/v4/classic/index.d.cts +4 -0
- package/node_modules/zod/v4/classic/index.d.ts +4 -0
- package/node_modules/zod/v4/classic/index.js +4 -0
- package/node_modules/zod/v4/classic/iso.cjs +60 -0
- package/node_modules/zod/v4/classic/iso.d.cts +22 -0
- package/node_modules/zod/v4/classic/iso.d.ts +22 -0
- package/node_modules/zod/v4/classic/iso.js +30 -0
- package/node_modules/zod/v4/classic/parse.cjs +32 -0
- package/node_modules/zod/v4/classic/parse.d.cts +23 -0
- package/node_modules/zod/v4/classic/parse.d.ts +23 -0
- package/node_modules/zod/v4/classic/parse.js +6 -0
- package/node_modules/zod/v4/classic/schemas.cjs +1109 -0
- package/node_modules/zod/v4/classic/schemas.d.cts +630 -0
- package/node_modules/zod/v4/classic/schemas.d.ts +630 -0
- package/node_modules/zod/v4/classic/schemas.js +1006 -0
- package/node_modules/zod/v4/core/api.cjs +1039 -0
- package/node_modules/zod/v4/core/api.d.cts +284 -0
- package/node_modules/zod/v4/core/api.d.ts +284 -0
- package/node_modules/zod/v4/core/api.js +906 -0
- package/node_modules/zod/v4/core/checks.cjs +591 -0
- package/node_modules/zod/v4/core/checks.d.cts +278 -0
- package/node_modules/zod/v4/core/checks.d.ts +278 -0
- package/node_modules/zod/v4/core/checks.js +565 -0
- package/node_modules/zod/v4/core/core.cjs +67 -0
- package/node_modules/zod/v4/core/core.d.cts +49 -0
- package/node_modules/zod/v4/core/core.d.ts +49 -0
- package/node_modules/zod/v4/core/core.js +61 -0
- package/node_modules/zod/v4/core/doc.cjs +39 -0
- package/node_modules/zod/v4/core/doc.d.cts +14 -0
- package/node_modules/zod/v4/core/doc.d.ts +14 -0
- package/node_modules/zod/v4/core/doc.js +35 -0
- package/node_modules/zod/v4/core/errors.cjs +226 -0
- package/node_modules/zod/v4/core/errors.d.cts +208 -0
- package/node_modules/zod/v4/core/errors.d.ts +208 -0
- package/node_modules/zod/v4/core/errors.js +195 -0
- package/node_modules/zod/v4/core/function.cjs +102 -0
- package/node_modules/zod/v4/core/function.d.cts +52 -0
- package/node_modules/zod/v4/core/function.d.ts +52 -0
- package/node_modules/zod/v4/core/function.js +75 -0
- package/node_modules/zod/v4/core/index.cjs +44 -0
- package/node_modules/zod/v4/core/index.d.cts +15 -0
- package/node_modules/zod/v4/core/index.d.ts +15 -0
- package/node_modules/zod/v4/core/index.js +15 -0
- package/node_modules/zod/v4/core/json-schema.cjs +2 -0
- package/node_modules/zod/v4/core/json-schema.d.cts +87 -0
- package/node_modules/zod/v4/core/json-schema.d.ts +87 -0
- package/node_modules/zod/v4/core/json-schema.js +1 -0
- package/node_modules/zod/v4/core/parse.cjs +87 -0
- package/node_modules/zod/v4/core/parse.d.cts +25 -0
- package/node_modules/zod/v4/core/parse.d.ts +25 -0
- package/node_modules/zod/v4/core/parse.js +57 -0
- package/node_modules/zod/v4/core/regexes.cjs +103 -0
- package/node_modules/zod/v4/core/regexes.d.cts +62 -0
- package/node_modules/zod/v4/core/regexes.d.ts +62 -0
- package/node_modules/zod/v4/core/regexes.js +95 -0
- package/node_modules/zod/v4/core/registries.cjs +56 -0
- package/node_modules/zod/v4/core/registries.d.cts +35 -0
- package/node_modules/zod/v4/core/registries.d.ts +35 -0
- package/node_modules/zod/v4/core/registries.js +51 -0
- package/node_modules/zod/v4/core/schemas.cjs +1748 -0
- package/node_modules/zod/v4/core/schemas.d.cts +1041 -0
- package/node_modules/zod/v4/core/schemas.d.ts +1041 -0
- package/node_modules/zod/v4/core/schemas.js +1717 -0
- package/node_modules/zod/v4/core/standard-schema.cjs +2 -0
- package/node_modules/zod/v4/core/standard-schema.d.cts +55 -0
- package/node_modules/zod/v4/core/standard-schema.d.ts +55 -0
- package/node_modules/zod/v4/core/standard-schema.js +1 -0
- package/node_modules/zod/v4/core/to-json-schema.cjs +854 -0
- package/node_modules/zod/v4/core/to-json-schema.d.cts +88 -0
- package/node_modules/zod/v4/core/to-json-schema.d.ts +88 -0
- package/node_modules/zod/v4/core/to-json-schema.js +849 -0
- package/node_modules/zod/v4/core/util.cjs +539 -0
- package/node_modules/zod/v4/core/util.d.cts +183 -0
- package/node_modules/zod/v4/core/util.d.ts +183 -0
- package/node_modules/zod/v4/core/util.js +493 -0
- package/node_modules/zod/v4/core/versions.cjs +8 -0
- package/node_modules/zod/v4/core/versions.d.cts +5 -0
- package/node_modules/zod/v4/core/versions.d.ts +5 -0
- package/node_modules/zod/v4/core/versions.js +5 -0
- package/node_modules/zod/v4/index.cjs +22 -0
- package/node_modules/zod/v4/index.d.cts +3 -0
- package/node_modules/zod/v4/index.d.ts +3 -0
- package/node_modules/zod/v4/index.js +3 -0
- package/node_modules/zod/v4/locales/ar.cjs +142 -0
- package/node_modules/zod/v4/locales/ar.d.cts +4 -0
- package/node_modules/zod/v4/locales/ar.d.ts +4 -0
- package/node_modules/zod/v4/locales/ar.js +116 -0
- package/node_modules/zod/v4/locales/az.cjs +141 -0
- package/node_modules/zod/v4/locales/az.d.cts +4 -0
- package/node_modules/zod/v4/locales/az.d.ts +4 -0
- package/node_modules/zod/v4/locales/az.js +115 -0
- package/node_modules/zod/v4/locales/be.cjs +190 -0
- package/node_modules/zod/v4/locales/be.d.cts +4 -0
- package/node_modules/zod/v4/locales/be.d.ts +4 -0
- package/node_modules/zod/v4/locales/be.js +164 -0
- package/node_modules/zod/v4/locales/ca.cjs +144 -0
- package/node_modules/zod/v4/locales/ca.d.cts +4 -0
- package/node_modules/zod/v4/locales/ca.d.ts +4 -0
- package/node_modules/zod/v4/locales/ca.js +118 -0
- package/node_modules/zod/v4/locales/cs.cjs +161 -0
- package/node_modules/zod/v4/locales/cs.d.cts +4 -0
- package/node_modules/zod/v4/locales/cs.d.ts +4 -0
- package/node_modules/zod/v4/locales/cs.js +135 -0
- package/node_modules/zod/v4/locales/de.cjs +142 -0
- package/node_modules/zod/v4/locales/de.d.cts +4 -0
- package/node_modules/zod/v4/locales/de.d.ts +4 -0
- package/node_modules/zod/v4/locales/de.js +116 -0
- package/node_modules/zod/v4/locales/en.cjs +145 -0
- package/node_modules/zod/v4/locales/en.d.cts +5 -0
- package/node_modules/zod/v4/locales/en.d.ts +5 -0
- package/node_modules/zod/v4/locales/en.js +117 -0
- package/node_modules/zod/v4/locales/eo.cjs +144 -0
- package/node_modules/zod/v4/locales/eo.d.cts +5 -0
- package/node_modules/zod/v4/locales/eo.d.ts +5 -0
- package/node_modules/zod/v4/locales/eo.js +116 -0
- package/node_modules/zod/v4/locales/es.cjs +143 -0
- package/node_modules/zod/v4/locales/es.d.cts +4 -0
- package/node_modules/zod/v4/locales/es.d.ts +4 -0
- package/node_modules/zod/v4/locales/es.js +117 -0
- package/node_modules/zod/v4/locales/fa.cjs +148 -0
- package/node_modules/zod/v4/locales/fa.d.cts +4 -0
- package/node_modules/zod/v4/locales/fa.d.ts +4 -0
- package/node_modules/zod/v4/locales/fa.js +122 -0
- package/node_modules/zod/v4/locales/fi.cjs +148 -0
- package/node_modules/zod/v4/locales/fi.d.cts +4 -0
- package/node_modules/zod/v4/locales/fi.d.ts +4 -0
- package/node_modules/zod/v4/locales/fi.js +122 -0
- package/node_modules/zod/v4/locales/fr-CA.cjs +143 -0
- package/node_modules/zod/v4/locales/fr-CA.d.cts +4 -0
- package/node_modules/zod/v4/locales/fr-CA.d.ts +4 -0
- package/node_modules/zod/v4/locales/fr-CA.js +117 -0
- package/node_modules/zod/v4/locales/fr.cjs +142 -0
- package/node_modules/zod/v4/locales/fr.d.cts +4 -0
- package/node_modules/zod/v4/locales/fr.d.ts +4 -0
- package/node_modules/zod/v4/locales/fr.js +116 -0
- package/node_modules/zod/v4/locales/he.cjs +143 -0
- package/node_modules/zod/v4/locales/he.d.cts +4 -0
- package/node_modules/zod/v4/locales/he.d.ts +4 -0
- package/node_modules/zod/v4/locales/he.js +117 -0
- package/node_modules/zod/v4/locales/hu.cjs +143 -0
- package/node_modules/zod/v4/locales/hu.d.cts +4 -0
- package/node_modules/zod/v4/locales/hu.d.ts +4 -0
- package/node_modules/zod/v4/locales/hu.js +117 -0
- package/node_modules/zod/v4/locales/id.cjs +142 -0
- package/node_modules/zod/v4/locales/id.d.cts +4 -0
- package/node_modules/zod/v4/locales/id.d.ts +4 -0
- package/node_modules/zod/v4/locales/id.js +116 -0
- package/node_modules/zod/v4/locales/index.cjs +84 -0
- package/node_modules/zod/v4/locales/index.d.cts +39 -0
- package/node_modules/zod/v4/locales/index.d.ts +39 -0
- package/node_modules/zod/v4/locales/index.js +39 -0
- package/node_modules/zod/v4/locales/it.cjs +143 -0
- package/node_modules/zod/v4/locales/it.d.cts +4 -0
- package/node_modules/zod/v4/locales/it.d.ts +4 -0
- package/node_modules/zod/v4/locales/it.js +117 -0
- package/node_modules/zod/v4/locales/ja.cjs +141 -0
- package/node_modules/zod/v4/locales/ja.d.cts +4 -0
- package/node_modules/zod/v4/locales/ja.d.ts +4 -0
- package/node_modules/zod/v4/locales/ja.js +115 -0
- package/node_modules/zod/v4/locales/kh.cjs +143 -0
- package/node_modules/zod/v4/locales/kh.d.cts +4 -0
- package/node_modules/zod/v4/locales/kh.d.ts +4 -0
- package/node_modules/zod/v4/locales/kh.js +117 -0
- package/node_modules/zod/v4/locales/ko.cjs +147 -0
- package/node_modules/zod/v4/locales/ko.d.cts +4 -0
- package/node_modules/zod/v4/locales/ko.d.ts +4 -0
- package/node_modules/zod/v4/locales/ko.js +121 -0
- package/node_modules/zod/v4/locales/mk.cjs +144 -0
- package/node_modules/zod/v4/locales/mk.d.cts +4 -0
- package/node_modules/zod/v4/locales/mk.d.ts +4 -0
- package/node_modules/zod/v4/locales/mk.js +118 -0
- package/node_modules/zod/v4/locales/ms.cjs +142 -0
- package/node_modules/zod/v4/locales/ms.d.cts +4 -0
- package/node_modules/zod/v4/locales/ms.d.ts +4 -0
- package/node_modules/zod/v4/locales/ms.js +116 -0
- package/node_modules/zod/v4/locales/nl.cjs +143 -0
- package/node_modules/zod/v4/locales/nl.d.cts +4 -0
- package/node_modules/zod/v4/locales/nl.d.ts +4 -0
- package/node_modules/zod/v4/locales/nl.js +117 -0
- package/node_modules/zod/v4/locales/no.cjs +142 -0
- package/node_modules/zod/v4/locales/no.d.cts +4 -0
- package/node_modules/zod/v4/locales/no.d.ts +4 -0
- package/node_modules/zod/v4/locales/no.js +116 -0
- package/node_modules/zod/v4/locales/ota.cjs +143 -0
- package/node_modules/zod/v4/locales/ota.d.cts +4 -0
- package/node_modules/zod/v4/locales/ota.d.ts +4 -0
- package/node_modules/zod/v4/locales/ota.js +117 -0
- package/node_modules/zod/v4/locales/pl.cjs +143 -0
- package/node_modules/zod/v4/locales/pl.d.cts +4 -0
- package/node_modules/zod/v4/locales/pl.d.ts +4 -0
- package/node_modules/zod/v4/locales/pl.js +117 -0
- package/node_modules/zod/v4/locales/ps.cjs +148 -0
- package/node_modules/zod/v4/locales/ps.d.cts +4 -0
- package/node_modules/zod/v4/locales/ps.d.ts +4 -0
- package/node_modules/zod/v4/locales/ps.js +122 -0
- package/node_modules/zod/v4/locales/pt.cjs +142 -0
- package/node_modules/zod/v4/locales/pt.d.cts +4 -0
- package/node_modules/zod/v4/locales/pt.d.ts +4 -0
- package/node_modules/zod/v4/locales/pt.js +116 -0
- package/node_modules/zod/v4/locales/ru.cjs +190 -0
- package/node_modules/zod/v4/locales/ru.d.cts +4 -0
- package/node_modules/zod/v4/locales/ru.d.ts +4 -0
- package/node_modules/zod/v4/locales/ru.js +164 -0
- package/node_modules/zod/v4/locales/sl.cjs +143 -0
- package/node_modules/zod/v4/locales/sl.d.cts +4 -0
- package/node_modules/zod/v4/locales/sl.d.ts +4 -0
- package/node_modules/zod/v4/locales/sl.js +117 -0
- package/node_modules/zod/v4/locales/sv.cjs +144 -0
- package/node_modules/zod/v4/locales/sv.d.cts +4 -0
- package/node_modules/zod/v4/locales/sv.d.ts +4 -0
- package/node_modules/zod/v4/locales/sv.js +118 -0
- package/node_modules/zod/v4/locales/ta.cjs +143 -0
- package/node_modules/zod/v4/locales/ta.d.cts +4 -0
- package/node_modules/zod/v4/locales/ta.d.ts +4 -0
- package/node_modules/zod/v4/locales/ta.js +117 -0
- package/node_modules/zod/v4/locales/th.cjs +143 -0
- package/node_modules/zod/v4/locales/th.d.cts +4 -0
- package/node_modules/zod/v4/locales/th.d.ts +4 -0
- package/node_modules/zod/v4/locales/th.js +117 -0
- package/node_modules/zod/v4/locales/tr.cjs +143 -0
- package/node_modules/zod/v4/locales/tr.d.cts +5 -0
- package/node_modules/zod/v4/locales/tr.d.ts +5 -0
- package/node_modules/zod/v4/locales/tr.js +115 -0
- package/node_modules/zod/v4/locales/ua.cjs +143 -0
- package/node_modules/zod/v4/locales/ua.d.cts +4 -0
- package/node_modules/zod/v4/locales/ua.d.ts +4 -0
- package/node_modules/zod/v4/locales/ua.js +117 -0
- package/node_modules/zod/v4/locales/ur.cjs +143 -0
- package/node_modules/zod/v4/locales/ur.d.cts +4 -0
- package/node_modules/zod/v4/locales/ur.d.ts +4 -0
- package/node_modules/zod/v4/locales/ur.js +117 -0
- package/node_modules/zod/v4/locales/vi.cjs +142 -0
- package/node_modules/zod/v4/locales/vi.d.cts +4 -0
- package/node_modules/zod/v4/locales/vi.d.ts +4 -0
- package/node_modules/zod/v4/locales/vi.js +116 -0
- package/node_modules/zod/v4/locales/zh-CN.cjs +142 -0
- package/node_modules/zod/v4/locales/zh-CN.d.cts +4 -0
- package/node_modules/zod/v4/locales/zh-CN.d.ts +4 -0
- package/node_modules/zod/v4/locales/zh-CN.js +116 -0
- package/node_modules/zod/v4/locales/zh-TW.cjs +143 -0
- package/node_modules/zod/v4/locales/zh-TW.d.cts +4 -0
- package/node_modules/zod/v4/locales/zh-TW.d.ts +4 -0
- package/node_modules/zod/v4/locales/zh-TW.js +117 -0
- package/node_modules/zod/v4/mini/checks.cjs +34 -0
- package/node_modules/zod/v4/mini/checks.d.cts +1 -0
- package/node_modules/zod/v4/mini/checks.d.ts +1 -0
- package/node_modules/zod/v4/mini/checks.js +1 -0
- package/node_modules/zod/v4/mini/coerce.cjs +47 -0
- package/node_modules/zod/v4/mini/coerce.d.cts +7 -0
- package/node_modules/zod/v4/mini/coerce.d.ts +7 -0
- package/node_modules/zod/v4/mini/coerce.js +17 -0
- package/node_modules/zod/v4/mini/external.cjs +62 -0
- package/node_modules/zod/v4/mini/external.d.cts +11 -0
- package/node_modules/zod/v4/mini/external.d.ts +11 -0
- package/node_modules/zod/v4/mini/external.js +13 -0
- package/node_modules/zod/v4/mini/index.cjs +32 -0
- package/node_modules/zod/v4/mini/index.d.cts +3 -0
- package/node_modules/zod/v4/mini/index.d.ts +3 -0
- package/node_modules/zod/v4/mini/index.js +3 -0
- package/node_modules/zod/v4/mini/iso.cjs +60 -0
- package/node_modules/zod/v4/mini/iso.d.cts +22 -0
- package/node_modules/zod/v4/mini/iso.d.ts +22 -0
- package/node_modules/zod/v4/mini/iso.js +30 -0
- package/node_modules/zod/v4/mini/parse.cjs +8 -0
- package/node_modules/zod/v4/mini/parse.d.cts +1 -0
- package/node_modules/zod/v4/mini/parse.d.ts +1 -0
- package/node_modules/zod/v4/mini/parse.js +1 -0
- package/node_modules/zod/v4/mini/schemas.cjs +839 -0
- package/node_modules/zod/v4/mini/schemas.d.cts +356 -0
- package/node_modules/zod/v4/mini/schemas.d.ts +356 -0
- package/node_modules/zod/v4/mini/schemas.js +732 -0
- package/node_modules/zod/v4-mini/index.cjs +17 -0
- package/node_modules/zod/v4-mini/index.d.cts +1 -0
- package/node_modules/zod/v4-mini/index.d.ts +1 -0
- package/node_modules/zod/v4-mini/index.js +1 -0
- package/package.json +97 -0
|
@@ -0,0 +1,923 @@
|
|
|
1
|
+
export { containsGlobCharsWin, stripExtendedPathPrefix, buildGitConfigEnv, isUncPath, } from './sandbox-utils.js';
|
|
2
|
+
import type { SandboxDependencyCheck } from './linux-sandbox-utils.js';
|
|
3
|
+
import type { SrtWinConfig } from './sandbox-config.js';
|
|
4
|
+
/**
|
|
5
|
+
* Windows sandbox backend.
|
|
6
|
+
*
|
|
7
|
+
* Network isolation is enforced by `srt-win.exe` — a Rust helper that
|
|
8
|
+
* provisions a dedicated `srt-sandbox` local user account, installs a
|
|
9
|
+
* machine-wide WFP filter set keyed on that account's SID, and
|
|
10
|
+
* provides an `exec` subcommand that spawns the target via a two-hop
|
|
11
|
+
* launch (broker → `CreateProcessWithLogonW(runner)` → runner →
|
|
12
|
+
* restricted-token child) under `srt-sandbox`. The sandboxed child
|
|
13
|
+
* reaches the host only via the JS mux proxy, which the caller
|
|
14
|
+
* passes in via `--env`.
|
|
15
|
+
*
|
|
16
|
+
* The separate-user account structurally closes the surrogate-spawn
|
|
17
|
+
* class (schtasks, `PROC_THREAD_ATTRIBUTE_PARENT_PROCESS`, BITS,
|
|
18
|
+
* RunAs="Interactive User" COM): the child's token carries a
|
|
19
|
+
* different user SID, so it cannot reach real-user processes, tasks
|
|
20
|
+
* register under `srt-sandbox`, and the user-SID WFP filter fences
|
|
21
|
+
* `srt-sandbox` egress regardless of how the child was spawned.
|
|
22
|
+
*
|
|
23
|
+
* This module is a thin wrapper around the `srt-win` CLI; all status
|
|
24
|
+
* comes from live enumeration. There is no marker file.
|
|
25
|
+
*
|
|
26
|
+
* Filesystem rules (`denyRead`/`denyWrite`/`allowRead`/`allowWrite`)
|
|
27
|
+
* are enforced via additive explicit ACEs for `<sb-SID>` — see
|
|
28
|
+
* {@link grantWindowsAcl} / {@link stampWindowsAcl}.
|
|
29
|
+
*/
|
|
30
|
+
/**
|
|
31
|
+
* Stable machine-readable code carried on every
|
|
32
|
+
* {@link WindowsSandboxError}. Consumers branch on `.code` instead of
|
|
33
|
+
* prose-matching `.message` (message text is diagnostic and may change
|
|
34
|
+
* between releases).
|
|
35
|
+
*/
|
|
36
|
+
export type WindowsSandboxErrorCode =
|
|
37
|
+
/** `windows.srtWin.path` unset, or the configured/packaged exe is missing. */
|
|
38
|
+
'srt_win_not_found'
|
|
39
|
+
/** `spawnSync(srt-win)` itself failed (ENOENT, EACCES). */
|
|
40
|
+
| 'spawn_failed'
|
|
41
|
+
/** `srt-win` was killed by the spawn timeout (generic; see `install_timeout`). */
|
|
42
|
+
| 'srt_win_timeout'
|
|
43
|
+
/** A JSON-emitting `srt-win` subcommand exited non-zero. */
|
|
44
|
+
| 'srt_win_nonzero'
|
|
45
|
+
/** `srt-win` stdout was not valid JSON. */
|
|
46
|
+
| 'srt_win_bad_json'
|
|
47
|
+
/** {@link parseWindowsBinShell} rejected the `binShell` value. */
|
|
48
|
+
| 'bin_shell_invalid'
|
|
49
|
+
/** {@link verifyWindowsWfpEgress} could not bind a probe listener. */
|
|
50
|
+
| 'wfp_verify_bind_failed'
|
|
51
|
+
/** `srt-win wfp verify` produced no parseable result (timeout/kill). */
|
|
52
|
+
| 'wfp_verify_unparseable'
|
|
53
|
+
/** `srt-win wfp verify` proved direct egress SUCCEEDED (fence absent). */
|
|
54
|
+
| 'wfp_fence_inactive'
|
|
55
|
+
/** `srt-win wfp verify` was neither `blocked` nor `connected`. */
|
|
56
|
+
| 'wfp_verify_inconclusive'
|
|
57
|
+
/** `srt-win user trust-ca` exited non-zero. */
|
|
58
|
+
| 'trust_ca_failed'
|
|
59
|
+
/** `tlsTerminate` requested but no CA is installed for the sandbox user. */
|
|
60
|
+
| 'trust_ca_not_installed'
|
|
61
|
+
/** Installed CA thumbprint ≠ session CA thumbprint. */
|
|
62
|
+
| 'trust_ca_thumbprint_mismatch'
|
|
63
|
+
/** `srt-win install` exit 12 — WFP filter install failed. */
|
|
64
|
+
| 'install_wfp_failed'
|
|
65
|
+
/** `srt-win install` exit 14 — sandbox-user provisioning failed. */
|
|
66
|
+
| 'install_user_failed'
|
|
67
|
+
/** `srt-win install` exit 13 — different config under this sublayer. */
|
|
68
|
+
| 'install_config_conflict'
|
|
69
|
+
/** `srt-win install` exit 17 — ambient write-deny stamping failed. */
|
|
70
|
+
| 'install_ambient_failed'
|
|
71
|
+
/** `srt-win install` was killed by the spawn timeout (UAC left open). */
|
|
72
|
+
| 'install_timeout'
|
|
73
|
+
/** `srt-win install` failed with an unmapped exit code. */
|
|
74
|
+
| 'install_failed'
|
|
75
|
+
/** `srt-win uninstall` exited non-zero (not UAC-cancel). */
|
|
76
|
+
| 'uninstall_failed'
|
|
77
|
+
/** `srt-win acl stamp` exited non-zero. */
|
|
78
|
+
| 'acl_stamp_failed'
|
|
79
|
+
/** `srt-win acl grant` exited non-zero. */
|
|
80
|
+
| 'acl_grant_failed'
|
|
81
|
+
/** `srt-win exec` argv would exceed CreateProcessW's 32 767-char limit. */
|
|
82
|
+
| 'argv_too_long'
|
|
83
|
+
/** Sandbox user account / credential not present — run install. */
|
|
84
|
+
| 'not_provisioned'
|
|
85
|
+
/**
|
|
86
|
+
* Working directory is on a mapped network drive; the sandbox
|
|
87
|
+
* cannot start (per-user drive mappings don't exist under the
|
|
88
|
+
* sandbox logon). `srt-win exec` exit **16**; parsed from its
|
|
89
|
+
* stderr JSON by {@link parseWindowsSandboxError}, which carries
|
|
90
|
+
* the failing root on `.drive` ({@link MappedDriveCwdError}).
|
|
91
|
+
*/
|
|
92
|
+
| 'mapped_drive_cwd';
|
|
93
|
+
/**
|
|
94
|
+
* Error thrown by the Windows sandbox backend. Carries a stable
|
|
95
|
+
* {@link WindowsSandboxErrorCode} on `.code` so callers can branch
|
|
96
|
+
* without prose-matching `.message`. `instanceof WindowsSandboxError`
|
|
97
|
+
* narrows `.code` to the union.
|
|
98
|
+
*
|
|
99
|
+
* `.subcommand` is set on errors thrown from the `srt-win` spawn
|
|
100
|
+
* chokepoint (`spawn_failed`, `srt_win_timeout`, `srt_win_nonzero`,
|
|
101
|
+
* `srt_win_bad_json`) to the first CLI arg (e.g. `'install'`,
|
|
102
|
+
* `'wfp'`) so a consumer can distinguish install-spawn-failed from
|
|
103
|
+
* probe-spawn-failed without prose-matching. Unset elsewhere.
|
|
104
|
+
*/
|
|
105
|
+
export declare class WindowsSandboxError extends Error {
|
|
106
|
+
readonly code: WindowsSandboxErrorCode;
|
|
107
|
+
readonly subcommand?: string;
|
|
108
|
+
constructor(code: WindowsSandboxErrorCode, message: string, subcommand?: string);
|
|
109
|
+
}
|
|
110
|
+
export declare const DEFAULT_WINDOWS_PROXY_PORT_RANGE: readonly [number, number];
|
|
111
|
+
/**
|
|
112
|
+
* `cannot-read` is the graceful-degrade state when BFE enumeration
|
|
113
|
+
* is access-denied (it is admin-gated). The non-elevated readiness
|
|
114
|
+
* check is {@link verifyWindowsWfpEgress}, not this enum.
|
|
115
|
+
*/
|
|
116
|
+
export type WindowsWfpStatus = 'absent' | 'installed' | 'cannot-read';
|
|
117
|
+
export interface WindowsWfpStatusResult {
|
|
118
|
+
state: WindowsWfpStatus;
|
|
119
|
+
/** Live filter count from BFE enum; `0` on `cannot-read`. */
|
|
120
|
+
filters: number;
|
|
121
|
+
/** `[low, high]` for the loopback PERMIT, when known. */
|
|
122
|
+
portRange?: [number, number];
|
|
123
|
+
/** Sandbox-user SID read from the first user-keyed filter tag. */
|
|
124
|
+
userSid?: string;
|
|
125
|
+
/**
|
|
126
|
+
* Populated only on `cannot-read` (BFE enumeration is admin-gated;
|
|
127
|
+
* a non-elevated caller can't read it). The non-elevated readiness
|
|
128
|
+
* check is {@link verifyWindowsWfpEgress}, not this enum.
|
|
129
|
+
*/
|
|
130
|
+
hint?: string;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Result of `srt-win wfp verify` on success (exit 0, `blocked`) —
|
|
134
|
+
* see {@link verifyWindowsWfpEgress}. Any other outcome throws, so
|
|
135
|
+
* the tri-state is unobservable on the return path.
|
|
136
|
+
*/
|
|
137
|
+
export interface WindowsWfpVerifyResult {
|
|
138
|
+
target: string;
|
|
139
|
+
/** Runner's stderr (carries the `BLOCKED (…)` diagnostic line). */
|
|
140
|
+
stderr: string;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* State of the `srt-sandbox` local account that `srt-win install`
|
|
144
|
+
* provisions. The sandboxed child runs **as** this account.
|
|
145
|
+
*/
|
|
146
|
+
export interface WindowsSandboxUserStatus {
|
|
147
|
+
/** The `srt-sandbox` local account exists. */
|
|
148
|
+
provisioned: boolean;
|
|
149
|
+
/** `S-1-5-21-…` of `srt-sandbox`, when provisioned. */
|
|
150
|
+
sid?: string;
|
|
151
|
+
/** The `sandbox-runtime-users` local group exists. */
|
|
152
|
+
groupExists: boolean;
|
|
153
|
+
/** `S-1-5-21-…` of `sandbox-runtime-users`, when it exists. */
|
|
154
|
+
groupSid?: string;
|
|
155
|
+
inBuiltinUsers: boolean;
|
|
156
|
+
inSandboxGroup: boolean;
|
|
157
|
+
hiddenFromLogon: boolean;
|
|
158
|
+
/**
|
|
159
|
+
* The credential blob (`HKLM\SOFTWARE\sandbox-runtime\Cred`) is
|
|
160
|
+
* present, decryptable, and readable by THIS process. False when
|
|
161
|
+
* not yet written, or when called from inside the sandbox (the
|
|
162
|
+
* Cred key carries an explicit DENY for `sandbox-runtime-users` —
|
|
163
|
+
* machine-scope DPAPI alone is not a confidentiality boundary).
|
|
164
|
+
*/
|
|
165
|
+
credPresent: boolean;
|
|
166
|
+
/** Setup marker schema version, when the marker row exists. */
|
|
167
|
+
markerVersion?: number;
|
|
168
|
+
/**
|
|
169
|
+
* The calling (real) user's SID — the broker's identity, surfaced
|
|
170
|
+
* for diagnostics. The DENY-ACE trustee is `srt-sandbox`'s SID
|
|
171
|
+
* ({@link sid}), not this. Always present.
|
|
172
|
+
*/
|
|
173
|
+
realUserSid: string;
|
|
174
|
+
/**
|
|
175
|
+
* SHA-1 thumbprint of the install-time CA, when one was
|
|
176
|
+
* installed via `srt-win user trust-ca`. Uppercase hex.
|
|
177
|
+
*/
|
|
178
|
+
caCertThumb?: string;
|
|
179
|
+
/** PEM-encoded install-time CA certificate, when present. */
|
|
180
|
+
caCertPem?: string;
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Inner shell to run `command` under, inside the sandbox: the
|
|
184
|
+
* executable to spawn and the flag argv placed between it and the
|
|
185
|
+
* user's command string. `exe` MUST originate from trusted host
|
|
186
|
+
* configuration (user settings / install detection), NEVER from
|
|
187
|
+
* workspace or repository content — the inner shell runs INSIDE the
|
|
188
|
+
* sandbox so an unexpected path is not a sandbox-escape vector, but
|
|
189
|
+
* it would still be an arbitrary-exec footgun if sourced from
|
|
190
|
+
* untrusted input.
|
|
191
|
+
*
|
|
192
|
+
* Construct via {@link parseWindowsBinShell} — it is the SOLE
|
|
193
|
+
* normalizer and the only place validation lives.
|
|
194
|
+
*/
|
|
195
|
+
export type WindowsBinShell = {
|
|
196
|
+
/** Shell executable to spawn (absolute path when caller-supplied). */
|
|
197
|
+
exe: string;
|
|
198
|
+
/** Argv placed between `exe` and the user's command string. */
|
|
199
|
+
args: readonly string[];
|
|
200
|
+
};
|
|
201
|
+
/**
|
|
202
|
+
* Sole normalizer from the cross-platform `binShell?: string |
|
|
203
|
+
* WindowsBinShell` surface ({@link SandboxManager.wrapWithSandboxArgv})
|
|
204
|
+
* to a spawnable `{exe, args}` pair. All validation lives here —
|
|
205
|
+
* {@link wrapCommandWithSandboxWindows} consumes the result verbatim.
|
|
206
|
+
*
|
|
207
|
+
* String form: bare token (`'cmd'|'pwsh'|'powershell'`) resolves to
|
|
208
|
+
* the default install; absolute path to `bash.exe`/`sh.exe`/
|
|
209
|
+
* `pwsh.exe`/`powershell.exe`/`cmd.exe` keeps the caller's path with
|
|
210
|
+
* the matching flag shape. Object form: `exe` must be absolute; `args`
|
|
211
|
+
* pass through unchanged. Throws on anything else — no silent
|
|
212
|
+
* fallback to cmd.exe.
|
|
213
|
+
*
|
|
214
|
+
* Uses `path.win32` explicitly so the function (and its unit test)
|
|
215
|
+
* is platform-independent.
|
|
216
|
+
*/
|
|
217
|
+
export declare function parseWindowsBinShell(raw?: string | WindowsBinShell): WindowsBinShell;
|
|
218
|
+
export interface WindowsSandboxParams {
|
|
219
|
+
command: string;
|
|
220
|
+
/** Attribution key encoded for violation correlation; defaults to
|
|
221
|
+
* `command`. See MacOSSandboxParams.commandId. */
|
|
222
|
+
commandId?: string;
|
|
223
|
+
/**
|
|
224
|
+
* JS HTTP proxy port — fed to `generateProxyEnvVars` for the env
|
|
225
|
+
* overlay. With the in-process proxy this is the mux front-end
|
|
226
|
+
* port (same as `socksProxyPort`).
|
|
227
|
+
*/
|
|
228
|
+
httpProxyPort?: number;
|
|
229
|
+
/**
|
|
230
|
+
* JS SOCKS proxy port — fed to `generateProxyEnvVars` for the env
|
|
231
|
+
* overlay. With the in-process proxy this is the mux front-end
|
|
232
|
+
* port (same as `httpProxyPort`).
|
|
233
|
+
*/
|
|
234
|
+
socksProxyPort?: number;
|
|
235
|
+
/** Per-session proxy auth token; embedded in proxy env URLs. */
|
|
236
|
+
proxyAuthToken?: string;
|
|
237
|
+
/**
|
|
238
|
+
* `mode: 'mask'` credential env vars — sentinel values the
|
|
239
|
+
* sandboxed child should see in place of the real credentials.
|
|
240
|
+
* Threaded through the `--env` overlay so the runner forwards
|
|
241
|
+
* them into the child's fresh profile env (the broker's own
|
|
242
|
+
* environment never reaches the child, so an `env -u`-style
|
|
243
|
+
* scrub is structurally moot — there is no `unsetEnvVars`).
|
|
244
|
+
* Applied BEFORE the proxy assignments so the sandbox's own
|
|
245
|
+
* proxy plumbing survives even if a caller masks one of those
|
|
246
|
+
* names — same precedence as macOS/Linux.
|
|
247
|
+
*/
|
|
248
|
+
setEnvVars?: Readonly<Record<string, string>>;
|
|
249
|
+
/**
|
|
250
|
+
* Per-exec read-deny paths, applied via an additive
|
|
251
|
+
* `(D;OICI;FA;;;<sb-SID>)` ACE under the `srt-win exec`
|
|
252
|
+
* process's own PID and released after the child exits. Same
|
|
253
|
+
* disk-first chokepoint as the session-level
|
|
254
|
+
* {@link stampWindowsAcl}; same fail-closed semantics (exec
|
|
255
|
+
* fails if any path cannot be stamped).
|
|
256
|
+
*
|
|
257
|
+
* Normalized concrete paths — globs expanded by the caller via
|
|
258
|
+
* {@link expandWindowsFsPaths}, the same as session-level.
|
|
259
|
+
* `srt-win exec`'s `canonicalize_ace_targets` hard-fails on a
|
|
260
|
+
* glob (it never expands), so a `*`/`?` reaching this field is
|
|
261
|
+
* a caller bug.
|
|
262
|
+
*/
|
|
263
|
+
denyRead?: readonly string[];
|
|
264
|
+
/** Per-exec write-deny paths — see {@link denyRead}. */
|
|
265
|
+
denyWrite?: readonly string[];
|
|
266
|
+
/**
|
|
267
|
+
* Working directory the child starts in. Fed to
|
|
268
|
+
* {@link buildGitConfigEnv} as a `safe.directory` entry so git
|
|
269
|
+
* inside the sandbox accepts the real-user-owned working tree.
|
|
270
|
+
* Default: `process.cwd()`.
|
|
271
|
+
*
|
|
272
|
+
* `srt-win exec` has no `--cwd` flag — the child's working
|
|
273
|
+
* directory is whatever the caller passes as the spawn `{cwd:}`
|
|
274
|
+
* option (broker `current_dir()` → runner `lpCurrentDirectory` →
|
|
275
|
+
* child inherits). This field must match that spawn option so
|
|
276
|
+
* `safe.directory` covers where git actually runs.
|
|
277
|
+
*/
|
|
278
|
+
cwd?: string;
|
|
279
|
+
/**
|
|
280
|
+
* Session-level write-granted paths (the resolved
|
|
281
|
+
* `filesystem.allowWrite` set). Each becomes a `safe.directory`
|
|
282
|
+
* entry — see {@link buildGitConfigEnv}.
|
|
283
|
+
*/
|
|
284
|
+
allowWrite?: readonly string[];
|
|
285
|
+
/**
|
|
286
|
+
* Explicit `safe.directory` entries (from
|
|
287
|
+
* `SandboxRuntimeConfig.git.safeDirectories`). Unioned with
|
|
288
|
+
* {@link cwd} and {@link allowWrite} into the `safe.directory` set
|
|
289
|
+
* — see {@link buildGitConfigEnv}. Use for the repo top-level when
|
|
290
|
+
* launching from a subdirectory: the top-level must NOT go in
|
|
291
|
+
* `allowWrite`, but git's dubious-ownership check keys on it.
|
|
292
|
+
*/
|
|
293
|
+
gitSafeDirectories?: readonly string[];
|
|
294
|
+
/**
|
|
295
|
+
* Path to the TLS-termination trust bundle (the MITM CA + system
|
|
296
|
+
* roots) — fed to {@link generateProxyEnvVars} so the child's
|
|
297
|
+
* `NODE_EXTRA_CA_CERTS` / `CURL_CA_BUNDLE` / `SSL_CERT_FILE` /
|
|
298
|
+
* etc. point at it. Backslashes are normalised to forward slashes
|
|
299
|
+
* before emission so the value survives msys2 env conversion AND
|
|
300
|
+
* is accepted by native tools.
|
|
301
|
+
*
|
|
302
|
+
* The env-var layer covers OpenSSL-backed clients (msys2 curl,
|
|
303
|
+
* openssl-backed git, node, python, cargo). Schannel/.NET clients
|
|
304
|
+
* that read the Windows certificate store exclusively (System32
|
|
305
|
+
* `curl.exe`, `Invoke-WebRequest`, Go-built tools) trust via the
|
|
306
|
+
* separate `srt-win user trust-ca` / {@link windowsTrustCa}
|
|
307
|
+
* install-time write into the sandbox user's `CurrentUser\Root`.
|
|
308
|
+
*
|
|
309
|
+
* The caller is responsible for the sandbox user having read
|
|
310
|
+
* access to this path — `sandbox-manager.ts`'s `initialize()`
|
|
311
|
+
* pushes it into the session's `acl grant` read-set alongside the
|
|
312
|
+
* working-tree grants.
|
|
313
|
+
*/
|
|
314
|
+
caCertPath?: string;
|
|
315
|
+
/**
|
|
316
|
+
* Suppress srt-win's informational stderr (progress lines,
|
|
317
|
+
* per-exec-deny summary, seclogon-job note). Actual errors still
|
|
318
|
+
* print. Default `true` — the host surfaces sandbox diagnostics
|
|
319
|
+
* via its own debug log, not the child's stderr stream.
|
|
320
|
+
*/
|
|
321
|
+
quiet?: boolean;
|
|
322
|
+
/**
|
|
323
|
+
* Resolved `srt-win` spawn descriptor — from
|
|
324
|
+
* {@link resolveSrtWin}. Omitting it throws (there is no implicit
|
|
325
|
+
* vendor fallback); direct callers must resolve a path first.
|
|
326
|
+
*/
|
|
327
|
+
srtWin?: SrtWinSpawn;
|
|
328
|
+
/**
|
|
329
|
+
* Inner shell. Defaults to `parseWindowsBinShell(undefined)`
|
|
330
|
+
* (System32 cmd.exe). The child's post-`args` content is
|
|
331
|
+
* **passthrough** — `&` chains, `"…"`/`'…'` quotes exactly as
|
|
332
|
+
* written. The security boundary is at the OUTER spawn (this argv
|
|
333
|
+
* is spawned with `shell:false`); the inner shell runs INSIDE the
|
|
334
|
+
* sandbox so its metachars are the user's tool. Construct via
|
|
335
|
+
* {@link parseWindowsBinShell}.
|
|
336
|
+
*/
|
|
337
|
+
binShell?: WindowsBinShell;
|
|
338
|
+
}
|
|
339
|
+
/**
|
|
340
|
+
* The srt-win binary packaged with this module
|
|
341
|
+
* (`vendor/srt-win/<arch>/srt-win.exe`, arch from `process.arch`).
|
|
342
|
+
* Pass explicitly as `windows.srtWin.path` if you want the vendored
|
|
343
|
+
* exe — {@link resolveSrtWin} never falls back to it implicitly.
|
|
344
|
+
*
|
|
345
|
+
* WARNING: in a dev checkout this file may live inside your sandbox
|
|
346
|
+
* write grant — a sandboxed process could overwrite it; prefer a
|
|
347
|
+
* binary outside any grant (e.g. your own signed executable).
|
|
348
|
+
*/
|
|
349
|
+
export declare const VENDORED_SRT_WIN_EXE: string;
|
|
350
|
+
/**
|
|
351
|
+
* Locate a built `srt-win.exe` for development/CI. Checks, in order:
|
|
352
|
+
* 1. `<root>/vendor/srt-win/{arch}/srt-win.exe` (prebuilt —
|
|
353
|
+
* {@link VENDORED_SRT_WIN_EXE}).
|
|
354
|
+
* 2. `<root>/vendor/srt-win-src/target/release/srt-win.exe` (local
|
|
355
|
+
* `cargo build --release`).
|
|
356
|
+
*
|
|
357
|
+
* `<root>` is {@link repoRoot} — `__dirname/../..`, which resolves to the
|
|
358
|
+
* repo root from `src/sandbox/` and `dist/sandbox/` alike, and to the
|
|
359
|
+
* package root when installed under `node_modules`.
|
|
360
|
+
*
|
|
361
|
+
* This is an explicit helper — nothing calls it as an ambient
|
|
362
|
+
* default. Production callers set `windows.srtWin.path` (their own
|
|
363
|
+
* binary, or {@link VENDORED_SRT_WIN_EXE}); see {@link resolveSrtWin}.
|
|
364
|
+
*
|
|
365
|
+
* @throws if neither candidate exists.
|
|
366
|
+
*/
|
|
367
|
+
export declare function getSrtWinPath(): string;
|
|
368
|
+
/**
|
|
369
|
+
* `argv[1]` sentinel a multicall embedder's dispatcher matches
|
|
370
|
+
* against to route into `srt_win::run_from_args`. Mirrors the Rust
|
|
371
|
+
* `srt_win::SRT_WIN_DISPATCH_ARG1`; the two MUST stay in sync.
|
|
372
|
+
* `run_from_args` strips it before clap, so the standalone binary
|
|
373
|
+
* accepts it harmlessly.
|
|
374
|
+
*/
|
|
375
|
+
export declare const SRT_WIN_DISPATCH_ARG1 = "--srt-win";
|
|
376
|
+
/**
|
|
377
|
+
* Resolved `srt-win` spawn descriptor — the executable to load plus
|
|
378
|
+
* the leading arguments that carry the dispatch sentinel. Threaded
|
|
379
|
+
* to every spawn site so {@link resolveSrtWin} runs once (at
|
|
380
|
+
* `initialize()`) instead of re-`stat`ing on every helper call.
|
|
381
|
+
*/
|
|
382
|
+
export type SrtWinSpawn = Readonly<{
|
|
383
|
+
exe: string;
|
|
384
|
+
prependArgs: readonly string[];
|
|
385
|
+
}>;
|
|
386
|
+
/**
|
|
387
|
+
* Resolve the `srt-win` spawn target from config. `cfg.path` is
|
|
388
|
+
* required and used verbatim; {@link SRT_WIN_DISPATCH_ARG1} is
|
|
389
|
+
* prepended so a multicall dispatcher routes on `argv[1]` (the
|
|
390
|
+
* standalone binary strips it harmlessly).
|
|
391
|
+
*
|
|
392
|
+
* The path must be explicit because the packaged exe lives under
|
|
393
|
+
* the package root, which in a dev checkout sits inside the
|
|
394
|
+
* working-tree write grant (a planted `srt-win.exe` there would be
|
|
395
|
+
* spawned as the broker). Callers that want the packaged binary
|
|
396
|
+
* pass {@link VENDORED_SRT_WIN_EXE}.
|
|
397
|
+
*
|
|
398
|
+
* @throws if `cfg.path` is unset or names a missing file.
|
|
399
|
+
*/
|
|
400
|
+
export declare function resolveSrtWin(cfg?: SrtWinConfig): SrtWinSpawn;
|
|
401
|
+
/** Combined result of `srt-win status` — see {@link checkWindowsSandboxStatus}. */
|
|
402
|
+
export interface WindowsSandboxStatus {
|
|
403
|
+
user: WindowsSandboxUserStatus;
|
|
404
|
+
wfp: WindowsWfpStatusResult;
|
|
405
|
+
}
|
|
406
|
+
/**
|
|
407
|
+
* Query sandbox-user provisioning state AND the WFP filter set in a
|
|
408
|
+
* single `srt-win status` spawn — the same objects
|
|
409
|
+
* {@link getWindowsSandboxUserStatus} and {@link getWindowsWfpStatus}
|
|
410
|
+
* return, without paying two subprocess round-trips. Does not require
|
|
411
|
+
* elevation (WFP degrades to `cannot-read` for a non-elevated caller;
|
|
412
|
+
* see {@link WindowsWfpStatusResult.hint}).
|
|
413
|
+
*/
|
|
414
|
+
export declare function checkWindowsSandboxStatus(opts?: {
|
|
415
|
+
sublayerGuid?: string;
|
|
416
|
+
srtWin?: SrtWinSpawn;
|
|
417
|
+
}): WindowsSandboxStatus;
|
|
418
|
+
/** Async twin of {@link checkWindowsSandboxStatus}. */
|
|
419
|
+
export declare function checkWindowsSandboxStatusAsync(opts?: {
|
|
420
|
+
sublayerGuid?: string;
|
|
421
|
+
srtWin?: SrtWinSpawn;
|
|
422
|
+
}): Promise<WindowsSandboxStatus>;
|
|
423
|
+
/**
|
|
424
|
+
* Query the WFP filter set under the given sublayer via live BFE
|
|
425
|
+
* enumeration. `installed` means at least one srt-win-tagged
|
|
426
|
+
* `block-user` filter is present. Detection is **tag-based**
|
|
427
|
+
* (providerData JSON); filters installed by other tooling without the
|
|
428
|
+
* tag are not counted.
|
|
429
|
+
*
|
|
430
|
+
* BFE enumeration is admin-gated — a non-elevated caller gets
|
|
431
|
+
* `state:"cannot-read"` with a `hint` (not an error). The
|
|
432
|
+
* non-elevated readiness check is {@link verifyWindowsWfpEgress}.
|
|
433
|
+
*
|
|
434
|
+
* Prefer {@link getWindowsWfpStatusAsync}; this variant
|
|
435
|
+
* `spawnSync`-blocks the event loop.
|
|
436
|
+
*/
|
|
437
|
+
export declare function getWindowsWfpStatus(opts?: {
|
|
438
|
+
sublayerGuid?: string;
|
|
439
|
+
srtWin?: SrtWinSpawn;
|
|
440
|
+
}): WindowsWfpStatusResult;
|
|
441
|
+
/** Async twin of {@link getWindowsWfpStatus}. */
|
|
442
|
+
export declare function getWindowsWfpStatusAsync(opts?: {
|
|
443
|
+
sublayerGuid?: string;
|
|
444
|
+
srtWin?: SrtWinSpawn;
|
|
445
|
+
}): Promise<WindowsWfpStatusResult>;
|
|
446
|
+
/**
|
|
447
|
+
* Behavioral proof that the WFP egress fence is active for the
|
|
448
|
+
* sandbox user. Binds a local listener on an ephemeral loopback port
|
|
449
|
+
* outside the WFP loopback-permit range, then spawns `srt-win
|
|
450
|
+
* runner` as the sandbox user (via `CreateProcessWithLogonW`) to
|
|
451
|
+
* attempt a direct TCP connect to it. The WFP block-user filter
|
|
452
|
+
* fires at `ALE_AUTH_CONNECT` — before any packet leaves — so an
|
|
453
|
+
* active fence yields WSAEACCES immediately and a missing fence lets
|
|
454
|
+
* the connect through (the kernel completes the handshake against
|
|
455
|
+
* the listening socket's backlog; no event-loop tick required, so
|
|
456
|
+
* the synchronous `runSrtWin` is safe). Does not require elevation
|
|
457
|
+
* and does not depend on any external host.
|
|
458
|
+
*
|
|
459
|
+
* `initialize()` calls this once per session, so a stale install
|
|
460
|
+
* (sandbox user provisioned but filters since removed) fails closed
|
|
461
|
+
* at session start instead of running every exec with full egress.
|
|
462
|
+
*
|
|
463
|
+
* @param opts.target overrides the probe target (skips the local
|
|
464
|
+
* listener bind).
|
|
465
|
+
* @param opts.proxyPortRange the WFP loopback-permit range the
|
|
466
|
+
* listener must avoid. Default
|
|
467
|
+
* {@link DEFAULT_WINDOWS_PROXY_PORT_RANGE}.
|
|
468
|
+
* @throws on any outcome other than `blocked` (exit 0).
|
|
469
|
+
*/
|
|
470
|
+
export declare function verifyWindowsWfpEgress(opts?: {
|
|
471
|
+
target?: string;
|
|
472
|
+
proxyPortRange?: readonly [number, number];
|
|
473
|
+
srtWin?: SrtWinSpawn;
|
|
474
|
+
}): Promise<WindowsWfpVerifyResult>;
|
|
475
|
+
/**
|
|
476
|
+
* Query the sandbox user account's provisioning state. Each field
|
|
477
|
+
* is independently observed so a half-provisioned install (e.g.
|
|
478
|
+
* user exists but credential file missing) is distinguishable.
|
|
479
|
+
* Does not require elevation.
|
|
480
|
+
*
|
|
481
|
+
* Prefer {@link getWindowsSandboxUserStatusAsync}; this variant
|
|
482
|
+
* `spawnSync`-blocks the event loop.
|
|
483
|
+
*/
|
|
484
|
+
export declare function getWindowsSandboxUserStatus(opts?: {
|
|
485
|
+
srtWin?: SrtWinSpawn;
|
|
486
|
+
}): WindowsSandboxUserStatus;
|
|
487
|
+
/** Async twin of {@link getWindowsSandboxUserStatus}. */
|
|
488
|
+
export declare function getWindowsSandboxUserStatusAsync(opts?: {
|
|
489
|
+
srtWin?: SrtWinSpawn;
|
|
490
|
+
}): Promise<WindowsSandboxUserStatus>;
|
|
491
|
+
/**
|
|
492
|
+
* Read back the persistent MITM CA the sandbox was installed with
|
|
493
|
+
* (via `srt-win user trust-ca` / {@link windowsTrustCa}).
|
|
494
|
+
* Returns `null` when no CA was installed. The PEM is what `srt-win
|
|
495
|
+
* user status` reconstructs from the DER recorded in the registry.
|
|
496
|
+
*
|
|
497
|
+
* On Windows, `tlsTerminate` requires this CA to be present in the
|
|
498
|
+
* sandbox user's `CurrentUser\Root` (schannel-level trust is an
|
|
499
|
+
* install-time concern, not per-session); the host calls this from
|
|
500
|
+
* `initialize()` to fail early with an actionable message when it
|
|
501
|
+
* isn't.
|
|
502
|
+
*
|
|
503
|
+
* @param status pass an already-fetched
|
|
504
|
+
* {@link getWindowsSandboxUserStatus} result to avoid a second
|
|
505
|
+
* `srt-win user status` spawn.
|
|
506
|
+
*/
|
|
507
|
+
export declare function getWindowsSandboxCaCert(status?: WindowsSandboxUserStatus, opts?: {
|
|
508
|
+
srtWin?: SrtWinSpawn;
|
|
509
|
+
}): {
|
|
510
|
+
pem: string;
|
|
511
|
+
thumb: string;
|
|
512
|
+
} | null;
|
|
513
|
+
/**
|
|
514
|
+
* Install (or replace) the MITM CA in the **sandbox user's**
|
|
515
|
+
* `CurrentUser\Root` and record it in the registry (so
|
|
516
|
+
* {@link getWindowsSandboxCaCert} surfaces its thumbprint + PEM).
|
|
517
|
+
* Thin wrapper around `srt-win user trust-ca <path>`. Does NOT
|
|
518
|
+
* require elevation. Persistent until {@link uninstallWindowsSandbox}
|
|
519
|
+
* deletes the sandbox user's profile.
|
|
520
|
+
*
|
|
521
|
+
* The CA has a separate lifecycle from {@link installWindowsSandbox}
|
|
522
|
+
* — install provisions the account/filters and never touches the CA;
|
|
523
|
+
* call this AFTER install when `tlsTerminate` will be used.
|
|
524
|
+
*
|
|
525
|
+
* @throws when the sandbox user is not provisioned, the file is not a
|
|
526
|
+
* parseable X.509 certificate, or the registry write into the
|
|
527
|
+
* sandbox user's hive fails.
|
|
528
|
+
*/
|
|
529
|
+
export declare function windowsTrustCa(caCertPath: string, opts?: {
|
|
530
|
+
srtWin?: SrtWinSpawn;
|
|
531
|
+
}): void;
|
|
532
|
+
/** Async twin of {@link windowsTrustCa} — identical argv and errors. */
|
|
533
|
+
export declare function windowsTrustCaAsync(caCertPath: string, opts?: {
|
|
534
|
+
srtWin?: SrtWinSpawn;
|
|
535
|
+
}): Promise<void>;
|
|
536
|
+
/**
|
|
537
|
+
* The machine-wide state directory `%ProgramData%\sandbox-runtime`,
|
|
538
|
+
* mirroring `srt-win`'s `state_db::machine_store_dir()` exactly.
|
|
539
|
+
* Since the registry move it hosts only the managed CA key material
|
|
540
|
+
* (`ca\`), which must stay on the filesystem because the broker's
|
|
541
|
+
* unelevated generate-if-absent self-heal rewrites it; the
|
|
542
|
+
* credential, marker, and CA record live in
|
|
543
|
+
* `HKLM\SOFTWARE\sandbox-runtime`. Created and ACL'd by the
|
|
544
|
+
* elevated `srt-win install`: Administrators own it, BUILTIN\Users
|
|
545
|
+
* have modify, and the sandbox group carries an explicit
|
|
546
|
+
* `(OI)(CI)` DENY.
|
|
547
|
+
*/
|
|
548
|
+
export declare function windowsStateDir(): string;
|
|
549
|
+
/** Result of {@link ensurePersistentWindowsCa}. */
|
|
550
|
+
export type WindowsPersistentCa = {
|
|
551
|
+
/**
|
|
552
|
+
* PEM certificate — pass to `createMitmCA({caCertPem, caKeyPem})` so
|
|
553
|
+
* the caller doesn't re-read from disk.
|
|
554
|
+
*/
|
|
555
|
+
certPem: string;
|
|
556
|
+
/** PEM private key — see {@link certPem}. */
|
|
557
|
+
keyPem: string;
|
|
558
|
+
/**
|
|
559
|
+
* `cert.pem` on disk (derived from `ca.json`; exists so
|
|
560
|
+
* {@link windowsTrustCa} and diagnostic tooling have a path).
|
|
561
|
+
*/
|
|
562
|
+
certPath: string;
|
|
563
|
+
/** `key.pem` on disk (derived from `ca.json`). */
|
|
564
|
+
keyPath: string;
|
|
565
|
+
/** Uppercase-hex SHA-1 (matches `srt-win user status` `caCertThumb`). */
|
|
566
|
+
thumbprint: string;
|
|
567
|
+
/**
|
|
568
|
+
* `true` when this call generated a fresh CA (first run, `force`, or
|
|
569
|
+
* the on-disk pair was invalid/expiring); `false` when the existing
|
|
570
|
+
* on-disk pair was reused.
|
|
571
|
+
*/
|
|
572
|
+
generated: boolean;
|
|
573
|
+
/**
|
|
574
|
+
* `true` when this call wrote the CA into the sandbox user's
|
|
575
|
+
* `CurrentUser\Root` (via {@link windowsTrustCa}) — always on
|
|
576
|
+
* `generated`, and on reuse when the sandbox user's installed
|
|
577
|
+
* thumbprint didn't already match. Callers holding a
|
|
578
|
+
* {@link WindowsSandboxUserStatus} fetched before this call should
|
|
579
|
+
* treat its `caCertThumb` as stale when `trusted` is true.
|
|
580
|
+
*/
|
|
581
|
+
trusted: boolean;
|
|
582
|
+
};
|
|
583
|
+
/**
|
|
584
|
+
* Generate-if-absent a persistent MITM CA under
|
|
585
|
+
* `{windowsStateDir()}\ca\` and ensure it is trusted in
|
|
586
|
+
* the sandbox user's `CurrentUser\Root`. Idempotent and unelevated:
|
|
587
|
+
* a second call with a valid on-disk pair returns it with
|
|
588
|
+
* `generated: false`. On the machine store the `ca\` subdir is
|
|
589
|
+
* user-writable by design (BUILTIN\Users modify, inherited from the
|
|
590
|
+
* install-ACL'd store), so this self-heal keeps working without
|
|
591
|
+
* admin rights for every user of the machine.
|
|
592
|
+
*
|
|
593
|
+
* **Storage.** The pair lives in a single `ca.json = {certPem,
|
|
594
|
+
* keyPem}` written atomically (tmp+rename) and re-read after every
|
|
595
|
+
* write, so it is always a matched pair and concurrent brokers
|
|
596
|
+
* converge on whichever rename landed last. `cert.pem`/`key.pem` are
|
|
597
|
+
* derived copies for diagnostic tooling; `ca.json` is the source of
|
|
598
|
+
* truth.
|
|
599
|
+
*
|
|
600
|
+
* **Key custody is broker-side.** The MITM proxy runs as the real
|
|
601
|
+
* user, so the sandbox user never needs to read the key. The `ca/`
|
|
602
|
+
* subdirectory inherits the machine store's `(OI)(CI)` DACL, which
|
|
603
|
+
* carries an explicit `sandbox-runtime-users` DENY (see
|
|
604
|
+
* {@link windowsStateDir}), so `ca.json`/`key.pem` are unreadable
|
|
605
|
+
* from inside the sandbox with no per-file ACL work here. The key
|
|
606
|
+
* IS readable (and replaceable) by other REAL local users — an
|
|
607
|
+
* accepted trade-off of the shared store: the sandbox account is
|
|
608
|
+
* network-confined by SID-keyed WFP filters regardless of who
|
|
609
|
+
* spawns it. The certificate reaches the sandboxed child via the
|
|
610
|
+
* schannel registry write ({@link windowsTrustCa}) and the
|
|
611
|
+
* trust-bundle env vars — never via these files.
|
|
612
|
+
*
|
|
613
|
+
* `SandboxManager.initialize()` calls this on Windows when
|
|
614
|
+
* `tlsTerminate` is enabled without an explicit
|
|
615
|
+
* `caCertPath`/`caKeyPath`, then feeds the returned PEMs to
|
|
616
|
+
* `createMitmCA` — so an embedder gets a stable CA across restarts
|
|
617
|
+
* without orchestrating generation, storage, or trust itself. Explicit
|
|
618
|
+
* paths in config bypass this entirely.
|
|
619
|
+
*
|
|
620
|
+
* @param opts.force regenerate even if a valid pair is on disk.
|
|
621
|
+
* @param opts.status pass an already-fetched
|
|
622
|
+
* {@link getWindowsSandboxUserStatus} result to skip the
|
|
623
|
+
* provisioning check and avoid re-spawning `srt-win user status`
|
|
624
|
+
* for the trust reconcile.
|
|
625
|
+
* @param opts.dir override the CA directory (tests). Default
|
|
626
|
+
* `windowsStateDir()/ca`.
|
|
627
|
+
* @param opts.regenerateWithinDays regenerate if `notAfter` is within
|
|
628
|
+
* this many days. Default 30.
|
|
629
|
+
* @throws when the sandbox user is not provisioned (run
|
|
630
|
+
* {@link installWindowsSandbox} first), or the CA directory cannot
|
|
631
|
+
* be created.
|
|
632
|
+
*/
|
|
633
|
+
export declare function ensurePersistentWindowsCa(opts?: {
|
|
634
|
+
force?: boolean;
|
|
635
|
+
status?: WindowsSandboxUserStatus;
|
|
636
|
+
dir?: string;
|
|
637
|
+
regenerateWithinDays?: number;
|
|
638
|
+
srtWin?: SrtWinSpawn;
|
|
639
|
+
}): Promise<WindowsPersistentCa>;
|
|
640
|
+
export interface WindowsInstallOptions {
|
|
641
|
+
/** WFP sublayer GUID. Omit for srt-win's compile-time default. */
|
|
642
|
+
sublayerGuid?: string;
|
|
643
|
+
/**
|
|
644
|
+
* Loopback PERMIT port range. Must match what
|
|
645
|
+
* `SandboxRuntimeConfig.windows.proxyPortRange` will be set to.
|
|
646
|
+
* Default {@link DEFAULT_WINDOWS_PROXY_PORT_RANGE}.
|
|
647
|
+
*/
|
|
648
|
+
proxyPortRange?: readonly [number, number];
|
|
649
|
+
/**
|
|
650
|
+
* Name for the sandbox user account (created if absent, adopted
|
|
651
|
+
* if it already exists as a local user). Default `srt-sandbox`.
|
|
652
|
+
*/
|
|
653
|
+
sandboxUser?: string;
|
|
654
|
+
/**
|
|
655
|
+
* Replace an existing install whose configuration differs
|
|
656
|
+
* (different port range or sandbox-user name under the same
|
|
657
|
+
* sublayer). Without this, install refuses with "already
|
|
658
|
+
* installed with different config" rather than silently
|
|
659
|
+
* overwriting.
|
|
660
|
+
*/
|
|
661
|
+
force?: boolean;
|
|
662
|
+
/**
|
|
663
|
+
* How long to wait for the self-elevating install subprocess.
|
|
664
|
+
* Defaults to {@link INSTALL_TIMEOUT_MS}.
|
|
665
|
+
*/
|
|
666
|
+
timeoutMs?: number;
|
|
667
|
+
/** Resolved `srt-win` spawn descriptor — from {@link resolveSrtWin}. */
|
|
668
|
+
srtWin?: SrtWinSpawn;
|
|
669
|
+
}
|
|
670
|
+
export interface WindowsInstallResult {
|
|
671
|
+
/** Post-install WFP state. */
|
|
672
|
+
wfp: WindowsWfpStatusResult;
|
|
673
|
+
/** Post-install sandbox-user state. */
|
|
674
|
+
user: WindowsSandboxUserStatus;
|
|
675
|
+
/**
|
|
676
|
+
* `true` if the user dismissed the UAC prompt. Not an error —
|
|
677
|
+
* the install simply didn't happen. Re-run when the user is
|
|
678
|
+
* ready to grant elevation.
|
|
679
|
+
*/
|
|
680
|
+
cancelled?: true;
|
|
681
|
+
}
|
|
682
|
+
/**
|
|
683
|
+
* One-shot install: provisions the `srt-sandbox` user account and
|
|
684
|
+
* installs the user-SID-keyed WFP filter set — all in a single
|
|
685
|
+
* self-elevating process (one UAC prompt). Idempotent; re-running
|
|
686
|
+
* rotates the sandbox user's password.
|
|
687
|
+
*
|
|
688
|
+
* Network for the calling user is **not disrupted**: the filters key
|
|
689
|
+
* on the `srt-sandbox` user's SID, so the broker, services, and
|
|
690
|
+
* every other principal fall through to default-permit. No logout
|
|
691
|
+
* is required.
|
|
692
|
+
*
|
|
693
|
+
* Returns the post-call WFP + sandbox-user state. If the user
|
|
694
|
+
* cancels the UAC prompt this returns `{cancelled: true, …}` rather
|
|
695
|
+
* than throwing — cancellation is a user choice, not an error.
|
|
696
|
+
*
|
|
697
|
+
* Prefer {@link installWindowsSandboxAsync}; this variant
|
|
698
|
+
* `spawnSync`-blocks the event loop for the full UAC-prompt wait
|
|
699
|
+
* (up to `timeoutMs`).
|
|
700
|
+
*
|
|
701
|
+
* @throws on user/WFP creation failure, or if filters already exist
|
|
702
|
+
* under `sublayerGuid` with a different port range and `force` is
|
|
703
|
+
* not set.
|
|
704
|
+
*/
|
|
705
|
+
export declare function installWindowsSandbox(opts?: WindowsInstallOptions): WindowsInstallResult;
|
|
706
|
+
/**
|
|
707
|
+
* Async twin of {@link installWindowsSandbox}. Same options, same
|
|
708
|
+
* return type, same throw semantics. The UAC prompt is still modal,
|
|
709
|
+
* but the event loop stays live — spinners keep painting and timers
|
|
710
|
+
* keep firing.
|
|
711
|
+
*/
|
|
712
|
+
export declare function installWindowsSandboxAsync(opts?: WindowsInstallOptions): Promise<WindowsInstallResult>;
|
|
713
|
+
/**
|
|
714
|
+
* Remove the WFP filter set under `sublayerGuid` and the
|
|
715
|
+
* `srt-sandbox` account, its credential file, and the setup marker
|
|
716
|
+
* (one UAC prompt). Idempotent.
|
|
717
|
+
*
|
|
718
|
+
* @returns `{cancelled: true}` if the user dismissed UAC.
|
|
719
|
+
*/
|
|
720
|
+
export declare function uninstallWindowsSandbox(opts?: {
|
|
721
|
+
sublayerGuid?: string;
|
|
722
|
+
keepUser?: boolean;
|
|
723
|
+
/**
|
|
724
|
+
* How long to wait for the self-elevating uninstall subprocess.
|
|
725
|
+
* Defaults to {@link INSTALL_TIMEOUT_MS}.
|
|
726
|
+
*/
|
|
727
|
+
timeoutMs?: number;
|
|
728
|
+
srtWin?: SrtWinSpawn;
|
|
729
|
+
}): {
|
|
730
|
+
cancelled?: true;
|
|
731
|
+
};
|
|
732
|
+
/**
|
|
733
|
+
* Resolve any Windows filesystem-config path list — `allowRead`/
|
|
734
|
+
* `allowWrite` grants and `denyRead`/`denyWrite` stamps — to
|
|
735
|
+
* concrete paths via the single platform-aware
|
|
736
|
+
* {@link normalizePathForSandbox} chokepoint (Linux/macOS parity:
|
|
737
|
+
* point-in-time expansion at session initialize, not per-exec).
|
|
738
|
+
* Glob patterns are expanded; non-glob paths are normalized and
|
|
739
|
+
* returned 1:1. Directory targets are accepted — the additive
|
|
740
|
+
* sandbox-user ACE carries `(OI)(CI)` so it covers the subtree.
|
|
741
|
+
*
|
|
742
|
+
* Missing literal paths are dropped for `mode: 'grant'` (a grant on
|
|
743
|
+
* nothing is meaningless) but PASSED THROUGH for `mode: 'deny'` —
|
|
744
|
+
* `srt-win acl stamp` materializes a placeholder chain (mkdirs each
|
|
745
|
+
* missing intermediate + creates an empty leaf) and stamps every
|
|
746
|
+
* created component, so the deny lands on the exact target path
|
|
747
|
+
* and the sandbox user cannot create/write/delete it. A trailing
|
|
748
|
+
* `/` or `\` on the raw input means "the target is a directory":
|
|
749
|
+
* the placeholder leaf is created as an empty directory instead of
|
|
750
|
+
* an empty file, so a later `mkdirSync({recursive: true})` on the
|
|
751
|
+
* real path succeeds. Glob results (existing-by-construction) drop
|
|
752
|
+
* on a stat miss regardless of mode: a glob is inherently "match
|
|
753
|
+
* existing".
|
|
754
|
+
*
|
|
755
|
+
* **UNC exception:** a `\\server\share\…` **literal** passes through
|
|
756
|
+
* raw in BOTH modes (no existence probe — see {@link isUncPath});
|
|
757
|
+
* `srt-win` soft-drops a missing UNC deny target rather than
|
|
758
|
+
* materializing a placeholder chain on an SMB share. A UNC **glob**
|
|
759
|
+
* still walks the share (user-trusted).
|
|
760
|
+
*/
|
|
761
|
+
export declare function expandWindowsFsPaths(patterns: readonly string[], opts?: {
|
|
762
|
+
mode?: 'grant' | 'deny';
|
|
763
|
+
}): string[];
|
|
764
|
+
/**
|
|
765
|
+
* {@link WindowsSandboxError} narrowed to `mapped_drive_cwd`,
|
|
766
|
+
* carrying the `DRIVE_REMOTE` root that made the launch fail
|
|
767
|
+
* (`Z:\` for a mapped letter, `\\server\share\` for a raw UNC cwd).
|
|
768
|
+
*/
|
|
769
|
+
export interface MappedDriveCwdError extends WindowsSandboxError {
|
|
770
|
+
readonly code: 'mapped_drive_cwd';
|
|
771
|
+
readonly drive?: string;
|
|
772
|
+
}
|
|
773
|
+
/**
|
|
774
|
+
* Parse a structured `srt-win exec` error from its stderr. `exec`
|
|
775
|
+
* emits typed launch failures as a single JSON line
|
|
776
|
+
* `{"code":…,"message":…}` alongside a distinct exit code —
|
|
777
|
+
* `mapped_drive_cwd` is exit **16**. Embedders that spawn the
|
|
778
|
+
* `{argv, env}` from {@link wrapCommandWithSandboxWindows} call
|
|
779
|
+
* this on non-zero exit to surface an actionable
|
|
780
|
+
* {@link WindowsSandboxError} instead of a bare status.
|
|
781
|
+
*
|
|
782
|
+
* Returns `undefined` when no typed-error line is present (the
|
|
783
|
+
* common case: exit status is the child's own). Gate on the
|
|
784
|
+
* `srt-win` exit code before calling — the sandboxed child's own
|
|
785
|
+
* stderr is pumped through unchanged, so a child that happened to
|
|
786
|
+
* print a matching JSON line would parse here too.
|
|
787
|
+
*/
|
|
788
|
+
export declare function parseWindowsSandboxError(stderr: string): MappedDriveCwdError | undefined;
|
|
789
|
+
export interface WindowsAclStampOptions {
|
|
790
|
+
/** Paths the sandboxed child must not read. */
|
|
791
|
+
denyRead: readonly string[];
|
|
792
|
+
/** Paths the sandboxed child must not write (read stays allowed). */
|
|
793
|
+
denyWrite: readonly string[];
|
|
794
|
+
/** SID of the dedicated sandbox user — {@link WindowsSandboxUserStatus.sid}. */
|
|
795
|
+
sandboxUserSid: string;
|
|
796
|
+
/** Long-lived host PID the holds are tied to. Default: this process. */
|
|
797
|
+
holderPid?: number;
|
|
798
|
+
/** Resolved `srt-win` spawn descriptor — from {@link resolveSrtWin}. */
|
|
799
|
+
srtWin?: SrtWinSpawn;
|
|
800
|
+
}
|
|
801
|
+
/**
|
|
802
|
+
* Apply the file-deny ACE set for one host session: an additive
|
|
803
|
+
* `(D;OICI;mask;;;<sb-SID>)` on the target plus a
|
|
804
|
+
* `(D;OICI;FILE_DELETE_CHILD;;;<sb-SID>)` on the parent — no
|
|
805
|
+
* PROTECTED rewrite, no SD snapshot. Idempotent and refcounted via
|
|
806
|
+
* srt-win's `working_aces` table.
|
|
807
|
+
*
|
|
808
|
+
* Inputs are passed verbatim to `srt-win` (which canonicalizes and
|
|
809
|
+
* rejects globs). Callers that accept globs should pre-expand via
|
|
810
|
+
* {@link expandWindowsFsPaths}.
|
|
811
|
+
*
|
|
812
|
+
* @throws on exit ≠ 0 — including exit 2 (one or more inputs
|
|
813
|
+
* skipped). srt-win stamps the resolvable inputs before exiting
|
|
814
|
+
* 2, so on throw the caller should call {@link restoreWindowsAcl}
|
|
815
|
+
* to release whatever WAS stamped.
|
|
816
|
+
*/
|
|
817
|
+
export declare function stampWindowsAcl(opts: WindowsAclStampOptions): void;
|
|
818
|
+
/**
|
|
819
|
+
* Per-path outcome from `srt-win acl restore --json` /
|
|
820
|
+
* `revoke --json`. The status set is intentionally loose: the
|
|
821
|
+
* pre-/post- same-user-removal `srt-win` builds emit different
|
|
822
|
+
* vocabularies for `restore` (`restored`/`leftChanged`/… vs
|
|
823
|
+
* `revoked`/`stillHeld`/…). Callers (`reset()`) only log these,
|
|
824
|
+
* so the union is whatever the binary on PATH says.
|
|
825
|
+
*/
|
|
826
|
+
export interface WindowsAclAceOutcome {
|
|
827
|
+
path: string;
|
|
828
|
+
status: string;
|
|
829
|
+
}
|
|
830
|
+
/**
|
|
831
|
+
* Release this holder's deny ACEs and remove the sandbox-user ACE
|
|
832
|
+
* on any path whose refcount falls to zero. Best-effort (does not
|
|
833
|
+
* throw on per-path anomalies); returns per-path outcomes for the
|
|
834
|
+
* caller to surface. Returns `undefined` only when `srt-win`
|
|
835
|
+
* itself failed (no JSON to parse).
|
|
836
|
+
*/
|
|
837
|
+
export declare function restoreWindowsAcl(opts: {
|
|
838
|
+
sandboxUserSid: string;
|
|
839
|
+
holderPid?: number;
|
|
840
|
+
srtWin?: SrtWinSpawn;
|
|
841
|
+
}): WindowsAclAceOutcome[] | undefined;
|
|
842
|
+
export interface WindowsAclGrantOptions {
|
|
843
|
+
/** Paths to grant `MODIFY_NO_FDC` on (the working tree, `allowWrite`). */
|
|
844
|
+
write: readonly string[];
|
|
845
|
+
/** Paths to grant `FILE_GENERIC_READ|EXECUTE` on (`allowRead`). */
|
|
846
|
+
read: readonly string[];
|
|
847
|
+
/** SID of the dedicated sandbox user — {@link WindowsSandboxUserStatus.sid}. */
|
|
848
|
+
sandboxUserSid: string;
|
|
849
|
+
/** Long-lived host PID the holds are tied to. Default: this process. */
|
|
850
|
+
holderPid?: number;
|
|
851
|
+
/** Resolved `srt-win` spawn descriptor — from {@link resolveSrtWin}. */
|
|
852
|
+
srtWin?: SrtWinSpawn;
|
|
853
|
+
}
|
|
854
|
+
/**
|
|
855
|
+
* Apply per-session additive `(OI)(CI)` ALLOW ACEs for the sandbox
|
|
856
|
+
* user on each path. The sandbox user has no inherent rights on
|
|
857
|
+
* real-user-owned files; this is what makes the working tree (and
|
|
858
|
+
* explicit `allowRead`/`allowWrite` paths) reachable from the
|
|
859
|
+
* child. Idempotent and refcounted via srt-win's `working_aces`
|
|
860
|
+
* table.
|
|
861
|
+
*
|
|
862
|
+
* @throws on exit ≠ 0. On throw the caller should call
|
|
863
|
+
* {@link revokeWindowsAcl} to release whatever WAS granted.
|
|
864
|
+
*/
|
|
865
|
+
export declare function grantWindowsAcl(opts: WindowsAclGrantOptions): void;
|
|
866
|
+
/**
|
|
867
|
+
* Release this holder's grants and remove the sandbox-user ACE on
|
|
868
|
+
* any path whose refcount falls to zero. Best-effort (does not
|
|
869
|
+
* throw); logs anomalies.
|
|
870
|
+
*/
|
|
871
|
+
export declare function revokeWindowsAcl(opts: {
|
|
872
|
+
sandboxUserSid: string;
|
|
873
|
+
holderPid?: number;
|
|
874
|
+
srtWin?: SrtWinSpawn;
|
|
875
|
+
}): WindowsAclAceOutcome[] | undefined;
|
|
876
|
+
/**
|
|
877
|
+
* Build the spawn descriptor for running `command` inside the Windows
|
|
878
|
+
* sandbox: an `argv` array plus the `env` to spawn it with.
|
|
879
|
+
*
|
|
880
|
+
* Caller MUST spawn the result with `{shell: false}` — that is the
|
|
881
|
+
* security boundary that keeps untrusted bytes off the host's shell
|
|
882
|
+
* (the inner `cmd.exe /c` runs INSIDE the sandbox; see
|
|
883
|
+
* `vendor/srt-win-src/src/launch.rs` `build_cmdline` for the passthrough
|
|
884
|
+
* rationale) — AND with the returned `env`.
|
|
885
|
+
*
|
|
886
|
+
* Proxy configuration is single-sourced by {@link generateProxyEnvVars}
|
|
887
|
+
* (the same canonical builder used on macOS/Linux). `srt-win exec`
|
|
888
|
+
* takes no `--http-proxy` / `--socks-proxy` flags and synthesizes no
|
|
889
|
+
* proxy env. The two-hop runner starts with the SANDBOX user's
|
|
890
|
+
* profile env (`USERPROFILE`/`TEMP` isolated) and overlays exactly
|
|
891
|
+
* what we pass as `--env` — built here from the broker's `PATH` plus
|
|
892
|
+
* the generated proxy set.
|
|
893
|
+
*/
|
|
894
|
+
export declare function wrapCommandWithSandboxWindows(p: WindowsSandboxParams): {
|
|
895
|
+
argv: string[];
|
|
896
|
+
env: NodeJS.ProcessEnv;
|
|
897
|
+
};
|
|
898
|
+
/**
|
|
899
|
+
* Install instructions, surfaced verbatim in error messages.
|
|
900
|
+
*/
|
|
901
|
+
export declare function windowsInstallInstructions(sublayerGuid: string | undefined): string;
|
|
902
|
+
/**
|
|
903
|
+
* Check the Windows backend is ready to sandbox. Errors block
|
|
904
|
+
* `initialize()`; warnings are informational.
|
|
905
|
+
*
|
|
906
|
+
* Prefer {@link checkWindowsDependenciesAsync}; this variant
|
|
907
|
+
* `spawnSync`-blocks the event loop on two `srt-win.exe` spawns
|
|
908
|
+
* (Windows Defender cold-scan can add seconds).
|
|
909
|
+
*/
|
|
910
|
+
export declare function checkWindowsDependencies(opts?: {
|
|
911
|
+
sublayerGuid?: string;
|
|
912
|
+
srtWin?: SrtWinSpawn;
|
|
913
|
+
}): SandboxDependencyCheck;
|
|
914
|
+
/**
|
|
915
|
+
* Async twin of {@link checkWindowsDependencies}. Same result for the
|
|
916
|
+
* same underlying state; runs the two `srt-win` probes concurrently
|
|
917
|
+
* and never blocks the event loop.
|
|
918
|
+
*/
|
|
919
|
+
export declare function checkWindowsDependenciesAsync(opts?: {
|
|
920
|
+
sublayerGuid?: string;
|
|
921
|
+
srtWin?: SrtWinSpawn;
|
|
922
|
+
}): Promise<SandboxDependencyCheck>;
|
|
923
|
+
//# sourceMappingURL=windows-sandbox-utils.d.ts.map
|