summaryrefslogtreecommitdiff
path: root/scripts/Verify-PublishedHttp.ps1
diff options
context:
space:
mode:
authortanaka takashi <isazaka@gmail.com>2026-08-13 19:15:01 +0900
committertanaka takashi <isazaka@gmail.com>2026-08-13 19:15:01 +0900
commit36ae1a4cba791ec633a81b38b1d8345af8487276 (patch)
tree91cef96efac7eb8c2754658ce5af5181b1a15898 /scripts/Verify-PublishedHttp.ps1
parent76fdcb43585a4c4d288c1026d318a0ddbe3e26ab (diff)
feat!: unify sandbox configuration and permission application
Replace the split executable approval and sandbox resolution workflows with schema_version 2 and a YAML-driven execution.entries model. Resolve workspace, mount, executable, runtime, network, and resource settings into one config-scoped Applied Configuration snapshot protected by a user-only DACL and written with atomic replacement. Reduce the public CLI to implicit server startup, show, and apply. Remove serve/check, executable and sandbox subcommands, and configuration override flags including --config, --lang, --transport, --path, and --runtime-root. Add migration diagnostics for every removed schema and command surface, and keep server preflight mandatory for both stdio and HTTP. Update effective-policy compilation to validate the applied fingerprint, resolved paths, and executable hashes before startup. Preserve fail-closed behavior while allowing execution entries and runtime roots inside a development workspace to inherit that workspace capability without creating an impossible narrower ACL boundary. Rewrite the README around the consolidated permission matrix and document configuration, application, store location, startup, transport-specific elevation, Python 3.14, PowerShell, and cmd usage. Align specifications, design, implementation plan, traceability, audit report, localization, publish scripts, and operational verification with the breaking schema. Verification: Release build completed with zero warnings and errors; Agent.Core.Tests 104/104 and Agent.Planner.Tests 10/10 passed; administrator Windows Security/Recovery 56/56 and README operational 19/19 passed with no skips; published HTTP MCP completed a cmd/curl/venv-Python task with network deny and zero ACL, WFP, journal, backup, or process residue.
Diffstat (limited to 'scripts/Verify-PublishedHttp.ps1')
-rw-r--r--scripts/Verify-PublishedHttp.ps115
1 files changed, 10 insertions, 5 deletions
diff --git a/scripts/Verify-PublishedHttp.ps1 b/scripts/Verify-PublishedHttp.ps1
index a02a28b..7dd5fe2 100644
--- a/scripts/Verify-PublishedHttp.ps1
+++ b/scripts/Verify-PublishedHttp.ps1
@@ -29,6 +29,8 @@ $runRoot = Join-Path $testRootPath ('agent-mcp-http-cmd-' + [Guid]::NewGuid().To
$runRootForward = $runRoot.Replace('\', '/')
$endpoint = 'http://127.0.0.1:8080/mcp'
$log = Join-Path $evidence 'verification.log'
+$serverOut = Join-Path $evidence 'server.stdout.log'
+$serverErr = Join-Path $evidence 'server.stderr.log'
$server = $null
New-Item -ItemType Directory -Force -Path $evidence | Out-Null
New-Item -ItemType Directory -Path $runRoot | Out-Null
@@ -47,14 +49,17 @@ run-probe.cmdは次を順番に実行し、どれかが失敗したら非0で終
"@
try {
- & $agent check --config $config --lang ja 2>&1 | Tee-Object -FilePath $log
- if ($LASTEXITCODE -ne 0) { throw "Published check failed with exit code $LASTEXITCODE." }
+ & $agent show $config 2>&1 | Tee-Object -FilePath $log
+ if ($LASTEXITCODE -ne 0) { throw "Published configuration show failed with exit code $LASTEXITCODE." }
- $server = Start-Process -FilePath $agent -ArgumentList @('serve','--config',$config,'--lang','ja','--transport','http') `
- -WorkingDirectory $bundle -WindowStyle Hidden -PassThru
+ $server = Start-Process -FilePath $agent -ArgumentList @($config) -WorkingDirectory $bundle `
+ -WindowStyle Hidden -RedirectStandardOutput $serverOut -RedirectStandardError $serverErr -PassThru
$ready = $false
for ($attempt = 0; $attempt -lt 100; $attempt++) {
- if ($server.HasExited) { throw "Published server exited before readiness: $($server.ExitCode)" }
+ if ($server.HasExited) {
+ $diagnostic = if (Test-Path -LiteralPath $serverErr) { Get-Content -LiteralPath $serverErr -Raw } else { '' }
+ throw "Published server exited before readiness: $($server.ExitCode) $diagnostic"
+ }
try {
$response = Invoke-WebRequest -Uri $endpoint -Method Get -SkipHttpErrorCheck
if ($response.StatusCode -eq 405) { $ready = $true; break }