{step.number}
+{step.title}
+{step.body}
+diff --git a/components/CommercialOffer.js b/components/CommercialOffer.js index a95812b..8b52ba1 100644 --- a/components/CommercialOffer.js +++ b/components/CommercialOffer.js @@ -86,6 +86,12 @@ export default function CommercialOffer({ hostedOffer }) { +
+ Building vertical software or operating workflows for clients?{' '} + + Explore OpenAdapt Execute. + +
) diff --git a/components/NavHeader.js b/components/NavHeader.js index b22b4d7..c4a026d 100644 --- a/components/NavHeader.js +++ b/components/NavHeader.js @@ -30,6 +30,7 @@ const SOLUTIONS_LINKS = [ ] const PRODUCT_LINKS = [ + { label: 'OpenAdapt Execute', href: '/execute' }, { label: 'Run locally', href: '/start' }, { label: 'How it works', href: '/how-it-works' }, { diff --git a/components/Pricing.js b/components/Pricing.js index e8c4742..1499f93 100644 --- a/components/Pricing.js +++ b/components/Pricing.js @@ -406,10 +406,10 @@ export default function Pricing({ hostedOffer = null }) { annually, plus scoped integration work. - Discuss OEM + Explore OpenAdapt Execute diff --git a/pages/execute.js b/pages/execute.js new file mode 100644 index 0000000..b32997b --- /dev/null +++ b/pages/execute.js @@ -0,0 +1,181 @@ +import Head from 'next/head' +import Link from 'next/link' + +import Footer from '@components/Footer' + +const description = + 'OpenAdapt Execute gives software and service providers verified execution in the systems their products cannot integrate with.' + +const STEPS = [ + { + number: '01', + title: 'Qualify one transaction', + body: 'We bind the intended inputs, identity checks, effect proof, target environment, and exception path to one workflow version.', + }, + { + number: '02', + title: 'Send an authorized request', + body: 'Your product sends a structured transaction to the private partner API. OpenAdapt dispatches it to the approved customer-controlled runner.', + }, + { + number: '03', + title: 'Receive a durable result', + body: 'The execution returns a verified receipt when the required proof passes, or a typed exception when an authorized person or reconciliation is needed.', + }, +] + +const OUTCOMES = [ + { + label: 'verified', + body: 'The runner completed the authorized work and proved the configured business effect.', + }, + { + label: 'reconciliation_required', + body: 'The action may have reached the target, but the proof is incomplete. OpenAdapt does not repeat a consequential write blindly.', + }, + { + label: 'halted_before_effect', + body: 'The runner refused before a business effect when identity, target, authorization, or policy evidence did not match.', + }, + { + label: 'rejected_policy', + body: 'The authorization or policy contract rejected the request before execution could proceed.', + }, + { + label: 'failed_platform', + body: 'The execution platform failed before any possible business effect.', + }, + { + label: 'rolled_back_verified', + body: 'A configured compensating action completed and OpenAdapt independently verified its business effect.', + }, +] + +export default function ExecutePage() { + return ( +OpenAdapt Execute
++ Your product already knows the transaction. OpenAdapt completes it through the customer's browser, desktop, RDP, or Citrix session, then returns a verified receipt or a typed exception. +
++ OpenAdapt Execute is a private partner API and an OEM integration. We provision it with a qualified workflow and a commercial agreement. +
+The execution boundary
++ Vertical software, service providers, and operations teams often prepare the right structured data but cannot write it into each customer system. OpenAdapt carries the authorized transaction across that final boundary without turning your product into a general-purpose computer agent. +
+From request to receipt
+{step.number}
+{step.body}
+{`POST /v1/executions\n→ 202 { schema_version: "openadapt.execute-accepted/v1",\n execution_id, state: "queued" }\n\nwebhook → { schema_version: "openadapt.execute-webhook/v1",\n event_type: "execution.terminal", receipt: { outcome: "verified" } }`}
+ + Execution is asynchronous. A run can wait for an authorized decision, survive a restart, or require reconciliation without losing its transaction identity. +
+Clear outcomes
+{outcome.body}
+Start with one deployment
++ We qualify the first workflow with your team. That creates the reusable execution contract, customer-runner plan, mobile operator decision path, and evidence needed to scale it through your product. +
+