Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion components/Faq.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ export const faqItems = [
},
{
question: 'What software does OpenAdapt work with?',
answer: 'OpenAdapt targets repeated workflows across browser applications, Windows UI Automation, native macOS, and remote desktop environments. Choose managed browser execution or connect a self-hosted or customer-controlled runtime for desktop, RDP, Citrix, private systems, and regulated data.',
answer: 'OpenAdapt targets repeated workflows across browser applications, Windows UI Automation, native macOS Accessibility, Linux AT-SPI, RDP, Citrix, and other remote desktop environments. Choose managed browser execution or connect a local, self-hosted, or customer-controlled runtime for desktop, remote, private-system, and regulated workflows.',
},
]

Expand Down
2 changes: 1 addition & 1 deletion components/InstallSection.js
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ export default function InstallSection() {
<p className={styles.subtitle}>
One command installs the OpenAdapt launcher and governed
workflow compiler. The same CLI records, compiles, and replays
across browser, Windows, macOS, RDP, and Citrix under one
across browser, Windows, macOS, Linux, RDP, and Citrix under one
governed loop. No account or hosted service is required.
</p>

Expand Down
8 changes: 4 additions & 4 deletions components/MastHead.js
Original file line number Diff line number Diff line change
Expand Up @@ -54,10 +54,10 @@ export default function Home({ githubStats }) {
Demonstrate a repeated task once. OpenAdapt
compiles it into a local program that replays at
$0 per healthy run across browser, Windows,
macOS, RDP, and Citrix. When the screen changes,
it re-checks its evidence, repairs with AI when
it can, and halts for a person instead of
guessing.{' '}
macOS, Linux, RDP, and Citrix. When the screen
changes, it re-checks its evidence, repairs with
AI when it can, and halts for a person instead
of guessing.{' '}
<Link href="#product-status">
See how it runs across every interface.
</Link>
Expand Down
2 changes: 1 addition & 1 deletion components/NavHeader.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ const SOLUTIONS_LINKS = [

const PRODUCT_LINKS = [
{ label: 'How it works', href: '/how-it-works' },
{ label: 'How it runs', href: '/#product-status' },
{ label: 'Platforms & deployment', href: '/#product-status' },
{ label: 'Workflows', href: '/workflows' },
{ label: 'Safety', href: '/safety' },
{ label: 'Compare', href: '/compare' },
Expand Down
15 changes: 8 additions & 7 deletions components/ProductStatus.js
Original file line number Diff line number Diff line change
Expand Up @@ -56,12 +56,12 @@ const executionSurfaces = [
detail: 'Compile DOM, accessibility, visual, and interaction evidence into deterministic browser workflows.',
},
{
title: 'Windows applications',
detail: 'Use structured UI Automation with retained visual evidence to operate legacy desktop applications.',
title: 'Desktop applications',
detail: 'Use Windows UI Automation, macOS Accessibility, or Linux AT-SPI with retained visual evidence to operate native applications.',
},
{
title: 'RDP, Citrix & VDI',
detail: 'Carry the same policy, verification, repair, and audit model into remote application environments.',
title: 'Remote applications',
detail: 'Carry the same policy, verification, repair, and audit model through RDP, Citrix Workspace, and other VDI environments.',
},
]

Expand Down Expand Up @@ -110,9 +110,10 @@ export default function ProductStatus() {
Built for the interfaces your work depends on
</h3>
<p className="mt-3 max-w-3xl text-sm leading-relaxed text-ink-2">
From modern browser apps to legacy Windows and remote desktops,
workflows stay inspectable, policy-bound, and governed by
explicit verification.
From modern browser apps to native Windows, macOS, and
Linux software and remote desktops, workflows stay
inspectable, policy-bound, and governed by explicit
verification.
</p>
<div className="mt-6 grid gap-4 md:grid-cols-3">
{executionSurfaces.map((item) => (
Expand Down
6 changes: 3 additions & 3 deletions components/Qualification.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import Link from 'next/link'
// end; where one does not, it halts for a human or an AI instead of trusting
// the screen. The oracle is an enhancement, never a gate on using the product.
// We lead with fit, then affirm that when work fits that shape OpenAdapt runs
// it across every interface (browser, Windows, macOS, RDP, Citrix) under one
// it across every interface (browser, Windows, macOS, Linux, RDP, Citrix) under one
// governed loop, with the full /compare breakdown one click away.

const fits = [
Expand Down Expand Up @@ -54,8 +54,8 @@ export default function Qualification() {
<p className="mx-auto mt-6 max-w-2xl text-center text-sm leading-relaxed text-ink-3">
When work fits that shape, OpenAdapt runs it across every
interface it touches under one governed loop: browser,
Windows, macOS, RDP, and Citrix. See how it compares with
RPA, computer-use agents, and browser recorders on the{' '}
Windows, macOS, Linux, RDP, and Citrix. See how it compares
with RPA, computer-use agents, and browser recorders on the{' '}
<Link href="/compare" className="text-accent underline">
comparison page
</Link>
Expand Down
2 changes: 1 addition & 1 deletion components/ReplayHero.js
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ export default function ReplayHero() {
<figcaption className={styles.frameCaption}>
A compiled workflow replaying against OpenEMR&rsquo;s live
public demo. The same governed loop runs across browser,
Windows, macOS, RDP, and Citrix.
Windows, macOS, Linux, RDP, and Citrix.
</figcaption>
</div>

Expand Down
8 changes: 4 additions & 4 deletions cypress/e2e/basic.cy.js
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,7 @@ describe('public product truth', () => {
cy.contains('button', 'Product').click()
cy.get('#nav-solutions-menu').should('not.exist')
cy.get('#nav-product-menu').within(() => {
cy.contains('a', 'How it runs').should(
cy.contains('a', 'Platforms & deployment').should(
'have.attr',
'href',
'/#product-status'
Expand Down Expand Up @@ -277,8 +277,8 @@ describe('public product truth', () => {
'be.visible'
)
cy.contains('Web applications').should('be.visible')
cy.contains('Windows applications').should('be.visible')
cy.contains('RDP, Citrix & VDI').should('be.visible')
cy.contains('Desktop applications').should('be.visible')
cy.contains('Remote applications').should('be.visible')
cy.contains('qualification evidence')
.should('have.attr', 'href')
.and('include', '/tree/main/benchmark')
Expand Down Expand Up @@ -383,7 +383,7 @@ describe('public product truth', () => {
.should('have.attr', 'href')
.and('equal', '/solutions/insurance')
cy.contains('Product').scrollIntoView().should('be.visible')
cy.contains('a', 'How it runs').should(
cy.contains('a', 'Platforms & deployment').should(
'have.attr',
'href',
'/#product-status'
Expand Down
22 changes: 10 additions & 12 deletions data/workflowCatalog.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,19 +8,17 @@

const FLOW_REPO = 'https://github.com/OpenAdaptAI/openadapt-flow'

// Canonical substrate maturity labels, reconciled to public/status.json (the
// single source of truth). The same governed loop covers every substrate; the
// label says how broadly each has been exercised today. Beta = broadly
// exercised (browser); Early access = validated on specific named tasks
// (Windows UIA, native macOS, RDP); Exploratory = no validated real-environment
// integration yet (Citrix / VDI). The three catalog entries below all run
// through the browser substrate.
// Canonical substrate availability labels, reconciled to public/status.json.
// Each released backend is available behind the same governed loop; its exact
// evidence scope and deployment boundary live in the status manifest. The
// catalog entries below all run through the browser substrate.
export const SUBSTRATE_MATURITY = {
browser: 'Beta',
windows: 'Early access',
macos: 'Early access',
rdp: 'Early access',
citrix: 'Exploratory',
browser: 'Available',
windows: 'Available',
macos: 'Available',
linux: 'Available',
rdp: 'Available',
citrix: 'Available',
}

// Shared honesty envelope. Every catalog entry sets these explicitly so the
Expand Down
19 changes: 11 additions & 8 deletions pages/download.js
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ export default function DownloadPage({ release, fetchFailed }) {
<title>Install OpenAdapt | OpenAdapt</title>
<meta
name="description"
content="Install the working OpenAdapt engine, or inspect native desktop packaging for Windows, macOS, and Linux."
content="Install the OpenAdapt CLI or download OpenAdapt Desktop Beta for Windows, macOS, and Linux."
/>
<link rel="canonical" href="https://openadapt.ai/download" />
<meta
Expand All @@ -101,7 +101,7 @@ export default function DownloadPage({ release, fetchFailed }) {
/>
<meta
property="og:description"
content="Install the OpenAdapt engine and inspect native desktop packaging for Windows, macOS, and Linux."
content="Install the governed workflow engine or download native OpenAdapt Desktop Beta installers for Windows, macOS, and Linux."
/>
<meta
property="og:url"
Expand All @@ -113,7 +113,7 @@ export default function DownloadPage({ release, fetchFailed }) {
<div className="mx-auto max-w-4xl px-4 py-14">
<p className="eyebrow">Install OpenAdapt</p>
<h1 className="font-display mt-3 text-3xl font-semibold tracking-tight text-ink md:text-4xl">
Start with the OpenAdapt CLI
Install the CLI or desktop app
</h1>
<p className="mt-5 max-w-2xl text-base text-ink-2 md:text-lg">
The flagship{' '}
Expand All @@ -136,19 +136,22 @@ export default function DownloadPage({ release, fetchFailed }) {

<div className="mt-6 flex flex-wrap gap-3">
<a
href="https://docs.openadapt.ai/get-started/"
href="#desktop-builds"
className="btn-ink"
>
Read docs
Download desktop app
</a>
<a href="#desktop-builds" className="btn-ghost-ink">
View desktop builds
<a
href="https://docs.openadapt.ai/get-started/"
className="btn-ghost-ink"
>
CLI quickstart
</a>
</div>

{/* Recommended download */}
<div id="desktop-builds" className="mt-12 scroll-mt-8">
<p className="eyebrow">Desktop packaging</p>
<p className="eyebrow">Desktop app</p>
<h2 className="mt-2 font-display text-2xl font-semibold tracking-tight text-ink">
Native desktop Beta
</h2>
Expand Down
4 changes: 2 additions & 2 deletions pages/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -59,9 +59,9 @@ const softwareSchema = {
name: 'OpenAdapt',
alternateName: 'OpenAdapt.AI',
applicationCategory: 'DeveloperApplication',
operatingSystem: 'Windows, macOS, Linux (browser workflow path)',
operatingSystem: 'Windows, macOS, Linux',
description:
'Open-source governed workflow compiler for repeated GUI work. Record a browser workflow, compile it into a deterministic local program, and use configured verification to resolve, repair, or halt under interface drift.',
'Open-source governed workflow compiler for repeated GUI work across browser, Windows, macOS, Linux, RDP, and Citrix. Record a workflow, compile it into a deterministic local program, and use configured verification to resolve, repair, or halt under interface drift.',
url: 'https://openadapt.ai',
downloadUrl: 'https://pypi.org/project/openadapt/',
author: {
Expand Down
11 changes: 8 additions & 3 deletions pages/workflows.js
Original file line number Diff line number Diff line change
Expand Up @@ -222,6 +222,10 @@ export default function WorkflowsPage() {
<strong className="text-ink">Native macOS</strong> —{' '}
{SUBSTRATE_MATURITY.macos}
</li>
<li>
<strong className="text-ink">Native Linux</strong> —{' '}
{SUBSTRATE_MATURITY.linux}
</li>
<li>
<strong className="text-ink">RDP</strong> —{' '}
{SUBSTRATE_MATURITY.rdp}
Expand All @@ -241,9 +245,10 @@ export default function WorkflowsPage() {
>
status manifest
</a>
. Beta means broadly exercised; Early access means
validated on specific named tasks; Exploratory means no
validated real-environment integration yet.
. Available means the backend ships in the released
compiler/runtime. The manifest records its exact bounded
evidence and whether execution is managed or
customer-controlled.
</p>
</div>
</div>
Expand Down
Loading
Loading