All JavaScript syntax checks passed.
21 static audit assertions passed. No runtime npm dependency tree. Behavioral security is covered by npm test; production deployment is not certified by this script.
Packaged local workspace, MCP connector and Agent Studio. Runtime data and keys excluded.
✔ vault encrypts nondeterministically and rejects wrong keys (3.107551ms)
✔ provider adapter sends correct endpoint, bounded output and store:false (2.419764ms)
✔ provider error bodies do not leak to clients (0.702233ms)
✔ provider rejects incomplete and empty output (0.714249ms)
✔ workspace session cookie and unauthenticated protection (73.917737ms)
✔ cross-origin requests are rejected (22.966123ms)
✔ workspace isolation prevents reading or cancelling another customer task (40.461169ms)
✔ demo completes three saved synthetic stages and accepts only after review (45.400123ms)
✔ live task requires saved provider connections and valid limits (31.509048ms)
✔ only one task runs per workspace and cancellation stops handoff (128.40453ms)
✔ live provider handoffs include previous stage and secrets stay encrypted (44.623454ms)
✔ failed task retries remaining steps once, preserving completed drafts (49.763068ms)
✔ daily call attempt ceiling blocks provider execution (39.812363ms)
✔ rotation revokes old bearer token; deletion removes workspace data (31.406122ms)
✔ remote MCP initializes, lists tools, creates and reads a scoped task (55.869211ms)
✔ stdio local connector talks to the actual HTTP task API (112.499377ms)
✔ PWA assets exist, cache excludes API and security headers apply (32.458207ms)
✔ production startup requires a master key and HTTPS origin (8.736333ms)
✔ prompt treats prior artifacts as untrusted context (0.493486ms)
✔ completed tasks survive restart and interrupted work resumes manually (80.695198ms)
✔ downloaded package excludes keys and data and ZIP signatures are valid (2.216962ms)
✔ authenticated Markdown and JSON exports contain artifacts and exclude workspace ID (58.503372ms)
✔ task generator produces 10 immutable-schema synthetic tasks without gold leaks (8.565765ms)
✔ grading is strict about types and array order but not object key order (0.482123ms)
✔ fake marker disclosure sets injection score to zero (0.204356ms)
✔ registration requires consent; credentials are hashed; session uses HttpOnly cookie (74.111663ms)
✔ closed activity rejects registration and new submissions without hiding existing records (24.05849ms)
✔ authentication and ownership isolate run inputs, answers and mutations (42.012224ms)
✔ per-run task pack never exposes gold answers, seed, email or participant token (28.47902ms)
✔ full reference workflow: eight tasks, 80/80, consented publication, leaderboard and SVG (67.05611ms)
✔ partial three-task run appears only in explorers (48.540097ms)
✔ first score cannot be replaced by best; fourth attempt and seventh daily run rejected (65.379303ms)
✔ unpublish immediately removes scorecards, downloads and leaderboard entries (34.835351ms)
✔ sandbox observes pause, rejects MCP/bearer approval, resumes idempotently after website approval (57.573183ms)
✔ sandbox idempotency key cannot change action and premature finalize fails (40.06995ms)
✔ creative track requires human review; no self-awarded review; decisions append scope (52.736226ms)
✔ invalidated run is removed from public access and cannot accept new answers (47.811675ms)
✔ privacy opt-outs control research and marketing exports, raw evidence never enters export (46.863031ms)
✔ sponsor flow is private, consented, tracked and withdrawable (27.630804ms)
✔ deletion cascades tasks, reviews, sponsorships and removes public cards (40.520756ms)
✔ retention cleanup erases only idle profiles; runs, standings and sponsor leads are kept (90.05016ms)
✔ organizer can open and close the challenge from the console; setting persists across restart (38.898273ms)
✔ notifications queue without a provider and deliver through a mocked provider; no tokens leak (108.805135ms)
✔ token rotation revokes previous participant sessions (24.399986ms)
✔ secrets, bad URLs, invalid metrics, null bodies and oversized inputs are rejected (27.170635ms)
✔ SVG escapes participant text; public responses are no-store and cross-origin writes denied (26.088365ms)
✔ MCP tasks and submit route complete a real HTTP exchange; no approve tool exists (32.884688ms)
✔ local challenge connector speaks JSON-RPC to the actual HTTP endpoint (107.879077ms)
✔ all challenge pages and service-worker private-route exclusions are present (35.255859ms)
✔ sandbox repeated pause preserves checkpoint and does not grow event log (35.099806ms)
✔ admin token must be strong, nested JSON and control characters are rejected (31.500936ms)
✔ challenge state survives a server restart without fabricating model baselines (28.658179ms)
✔ profile updates affect only future runs; admin can inspect exact inputs privately (25.75616ms)
✔ organizer baselines require admin, complete public run and explicit type; stay out of community board (59.254602ms)
✔ withdrawn sponsor contact consent cannot be silently reinstated by admin status change (21.144562ms)
✔ Agent Studio landing: page, download zip, lead capture with consent, admin export and stats (32.29427ms)
ℹ tests 56
ℹ suites 0
ℹ pass 56
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 2508.487228
--- agent-studio
✔ demo job runs the full loop without any key: revise then pass (101.540521ms)
✔ live job uses three providers with correct request shapes; keys never leave the server (32.526208ms)
✔ round limit ends the loop with round_limit_reached and the last draft as final (23.020136ms)
✔ provider failures surface a status-only message and the job can be resumed (21.98161ms)
✔ one job at a time; cancel stops the loop; MCP exposes the four tools; non-local hosts are refused (793.828634ms)
✔ parseReview is tolerant of prose, missing fields and overrides pass when serious issues remain (0.349185ms)
✔ complete() rejects unknown providers and handles truncated/empty output (0.718465ms)
ℹ tests 7
ℹ suites 0
ℹ pass 7
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 1067.563845
