Updated: 2026-09-06
normal ChatGPT mobile/web -> authenticated Val Town plugin -> val-scoped SQLite -> runner.ts -> provider router -> cloud browser -> receipt
No Codex and no user computer are required.
cleitoncosta/chat-native-maestrostatus.tsmain.ts — minimal public GET-only liveness endpoint.status.ts — authenticated provider/task/cost/security diagnostics.runner.ts — queue lease, validation, network preflight, routed execution, retry decision, receipt persistence.selftest.ts — stateless DSL/config regression tests.stateful_selftest.ts — circuit breaker, timeout and retry-state regression tests with state restoration.url_selftest.ts — URL/DNS/SSRF regression tests.lib/types.ts — typed task/receipt/evidence schema.lib/dsl.ts — DSL validation, browser program generation, in-memory secret resolution.lib/policy.ts — retry/lease/timeout/circuit constants and pure disposition logic.lib/provider_health.ts — circuit breaker state machine.lib/cost.ts — provider cost-estimation rules.lib/url_security.ts — fail-closed URL/DNS-over-HTTPS preflight.providers/router.ts — provider routing/fallback with health tracking.providers/kernel.ts — primary browser adapter.providers/browserless.ts — secondary browser adapter.README.mddocs/CURRENT_STATE.mddocs/PROVIDER_CENSUS.mddocs/ACTIVATION_RUNBOOK.mddocs/TASK_SCHEMA.mddocs/SMOKE_TASK.jsonDurable queue and terminal receipt state. New V0.5 fields:
attempt_countclaimed_atnext_attempt_atOne row per provider attempt/fallback with:
Circuit state per provider:
CLOSED / HALF_OPEN / OPENProvider ranking and current free-tier facts.
schema_version=0.5.0, app_version=0.5.0.
A retry can become PENDING, but it cannot consume browser credits until ChatGPT explicitly invokes the runner again.
Before any provider execution:
Runner-level negative-control proof:
ssrf-runner-v05 -> BLOCKED / NETWORK_PREFLIGHT_BLOCKED: blocked hostname: 169.254.169.254
The fixture was deleted after verification.
Task JSON never stores secret values.
fill_secret stores only an env-var name and requires explicit approval.
The value is resolved in memory immediately before provider execution.
extract_attribute of value is blocked to reduce accidental credential leakage.
Current user-created Val Town env-var count: 0.
Default: minimal.
Persisted by default:
Not persisted by default:
full must be intentionally requested.
Official current Free plan verified 2026-09-06:
Local Kernel cost estimate remains unsupported; actual account usage must be observed.
Official current Free plan verified 2026-09-06:
The runtime estimates base browser-time units only; actual provider accounting remains authoritative.
value attribute extraction block./function execution.These three V0.4 records intentionally remain in browser_tasks as historical evidence:
neg-control-no-kernel-key -> BLOCKED / KERNEL_API_KEY missing.neg-control-no-browserless-token -> BLOCKED / BROWSERLESS_TOKEN missing.neg-control-secret-not-approved -> BLOCKED / NEEDS_SECRET_APPROVAL.V0.5 synthetic lease/circuit/SSRF fixtures were removed after tests so production metrics are not polluted.
Exactly one external action remains necessary: configure a recurring-free browser credential, preferably KERNEL_API_KEY, directly in Val Town env vars. Do not paste it into chat.
After the key exists:
docs/SMOKE_TASK.json explicitly;runner.ts once;heading = Example Domain and all checks PASS;ACCOUNT_KEY_REQUIRED/UNVERIFIED to OPERATIONAL.