Problem
Astron Agent can orchestrate browser/RPA work, but integrations commonly fall back to brittle DOM selectors or unrestricted page evaluation. Applications that expose a structured same-page action runner should be callable through a narrower, auditable contract.
bilawalsidhu/gods-eye-view is a concrete public-data fixture. Its voice agent and deterministic QA harness both use:
window.__gevVoiceCommands.runner(toolName, args)
The runner dispatches the same 28 bounded actions used by the OpenAI Realtime voice surface. Astron has no action allowlist, confirmation policy, timeout/cancellation, or honest-result adapter for this kind of browser surface.
Proposed Solution
Add an RPA-backed trusted browser action connector, with Gods Eye View as the first acceptance fixture:
- Configure a localhost application URL and explicit action allowlist. Never accept arbitrary JavaScript from an Agent prompt.
- Open/attach through the existing Astron RPA boundary, wait for the fixed runner, and invoke only
runner(actionName, JSON_args).
- Serialize calls per page and add bounded readiness/action timeouts, cancellation, and stale-page detection.
- Preserve result honesty: exception, timeout, missing runner, page close, or
{ ok: false } must remain failures.
- Separate read-only actions from state-changing actions. Require confirmation for camera/layer changes and anything that may activate metered providers.
- Do not copy cookies, local storage, API keys, screenshots, browser globals, or arbitrary DOM content into model context.
- Keep it local-first: no LAN exposure, unauthenticated HTTP bridge, generic remote eval, submodules, or hidden background control.
- Audit action name, normalized args, duration, result status, target origin, and correlation ID with secret/large-payload redaction.
Initial Policy
Read-only candidates: get_current_view_state, get_entity_context, and bounded analyst_query.
Confirmation-required candidates: fly_to_location, zoom_to_globe, set_layer_visibility, set_map_stack, annotations, radio, scenes, tracking, and cockpit actions.
Named-person search, face recognition, private/paywalled data, and safety-critical operational decisions remain out of scope. Gods Eye View documents that its public data can be delayed, incomplete, modeled, inferred, or wrong.
Acceptance Fixture
Pin bilawalsidhu/gods-eye-view@314a0e1c2ef668cb110674b737e19a44ff6fc1ef on localhost.
Why not MCP first?
Gods Eye View has no network MCP/HTTP action server. Its existing trusted automation seam is inside the browser and is already exercised by scripts/qa-voice-routing.mjs. RPA can reuse that boundary without adding a remote-control surface; a future MCP bridge can reuse the same policy.
Related
Problem
Astron Agent can orchestrate browser/RPA work, but integrations commonly fall back to brittle DOM selectors or unrestricted page evaluation. Applications that expose a structured same-page action runner should be callable through a narrower, auditable contract.
bilawalsidhu/gods-eye-viewis a concrete public-data fixture. Its voice agent and deterministic QA harness both use:The runner dispatches the same 28 bounded actions used by the OpenAI Realtime voice surface. Astron has no action allowlist, confirmation policy, timeout/cancellation, or honest-result adapter for this kind of browser surface.
Proposed Solution
Add an RPA-backed trusted browser action connector, with Gods Eye View as the first acceptance fixture:
runner(actionName, JSON_args).{ ok: false }must remain failures.Initial Policy
Read-only candidates:
get_current_view_state,get_entity_context, and boundedanalyst_query.Confirmation-required candidates:
fly_to_location,zoom_to_globe,set_layer_visibility,set_map_stack, annotations, radio, scenes, tracking, and cockpit actions.Named-person search, face recognition, private/paywalled data, and safety-critical operational decisions remain out of scope. Gods Eye View documents that its public data can be delayed, incomplete, modeled, inferred, or wrong.
Acceptance Fixture
Pin
bilawalsidhu/gods-eye-view@314a0e1c2ef668cb110674b737e19a44ff6fc1efon localhost.window.__gevVoiceCommands.runnerwithout requiring an OpenAI voice session.get_current_view_statesucceeds with structured JSON.fly_to_locationandset_layer_visibilitycalls preserve runner status.{ ok: false }remain failures.Why not MCP first?
Gods Eye View has no network MCP/HTTP action server. Its existing trusted automation seam is inside the browser and is already exercised by
scripts/qa-voice-routing.mjs. RPA can reuse that boundary without adding a remote-control surface; a future MCP bridge can reuse the same policy.Related