Page Agent
Page Agent adds a bounded browser agent to your application. Pricing is 29 USD per domain per month, plus actual inference usage. Velqa authentication and explicit user authorization are required before any session.
Demo and availability
The public runtime remains disabled until at least one model is certified. The demo then shows a waiting state and emits no session, even for a signed-in user. Do not advertise availability before this gate is lifted.
Assertion route (Next Route Handler)
Your backend must authenticate the user, authorize them for the site, check the exact Origin and Fetch Metadata headers (Sec-Fetch-Site, Sec-Fetch-Mode), and protect the route against CSRF. Sign a short-lived assertion containing siteId, sub, iat, exp, jti, aud, and kid. A secret sk_pa_ key must never reach the browser: use only the publishable key and a credentialed assertion URL.
export async function GET(request: Request) {
const user = await requireUser(request);
verifyOriginAndCsrf(request);
const site = await authorizeSite(user.id, new URL(request.url).origin);
if (!site) return Response.json({ error: "forbidden" }, { status: 403 });
return Response.json({ assertion: await signAssertion({ siteId: site.id, sub: user.id, aud: "velqa-page-agent", kid: process.env.PAGE_AGENT_SIGNING_KID }) });
}DOM, security, and confirmations
The DOM is untrusted data: indirect prompt injection can be placed in a page. The agent must never treat page text as a trusted instruction. Passwords, card fields, and data-velqa-mask markers are masked by default. Business-data masking is opt-in and is only a visual interaction mask, not a confidentiality guarantee.
Destructive actions (delete, pay, send, archive, disable, revoke, checkout, and payment submission) pause before dispatch and require an explicit confirmation marker. Navigation is restricted to exact allowed origins; javascript: and JavaScript execution are disabled.
Data, providers, and retention
Selected DOM content and prompts are sent to the authorized inference subprocessors listed in the current provider register. Session metadata is retained for at most 90 days, billing/usage aggregates for 24 months, and the encrypted technical idempotency cache for at most 15 minutes. See the DPA and privacy policy.
Installation
Load the SDK from an immutable, SRI-verified release. Set data-velqa-key, data-velqa-lang, and data-velqa-assertion-url; never put an sk_pa_ key in HTML. For the full operational integration, see the Page Agent runbook maintained by your team.
