Tasks are inserted into the val-scoped SQLite database by the authenticated ChatGPT Val Town plugin. There is no public enqueue endpoint.
runId: unique stable id, <=128 chars.targetUrl: http/https URL.risk: read_only, reversible_write, or consequential.purpose: human-readable reason for the run.steps: 1..30 DSL actions.approved: must be true for reversible_write, consequential, and any fill_secret action.allowedHosts: extra main-navigation hosts, explicit only.preferredProvider: kernel or browserless.evidenceRetention: minimal (default) or full.gotowait_forclickfillfill_secrettypeselectextract_textextract_attribute (attribute value is blocked)expect_textexpect_urlNever put a password, cookie, API token, or OTP secret in task_json.
Use fill_secret with an environment-variable name. The value is resolved in execution memory only after approval.
minimal persists status, URL, checks, errors, duration and fallback metadata but omits extracted outputs and provider session ids.
full persists the full receipt and should be used only when the extracted data is intentionally safe to retain.
read_only + provider FAIL is retryable.BLOCKED, PARTIAL, writes and consequential tasks are never automatically retried.runner.ts again.read_only tasks.A successful browser call without at least one positive expectation remains PARTIAL.
PASS requires all explicit expectations to succeed.