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
13 changes: 11 additions & 2 deletions lib/publicJsonArtifacts.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,16 @@ export const PUBLIC_JSON_ARTIFACTS = Object.freeze({
title: 'RDP reference qualification evidence',
description:
'Exact trial outcomes, identity and effect checks, failure counts, and source versions for the accepted RDP reference batch.',
sha256: '13765ff5b9811049091bc2e90dc6f47413d80ca283a4bf4f7b85f824bdad1f82',
sha256: '1fb41f5ce79a68f506fa24e7a06641ee4c5d990bd29a34179f5163cb5b09c029',
}),
'/demos/rdp/program-graph.json': Object.freeze({
source: '/demos/rdp/program-graph.json',
fileName: 'program-graph.json',
format: 'json',
title: 'RDP compiled workflow graph',
description:
'The exact exported program graph used in the accepted RDP reference presentation.',
sha256: '9cffca5540f8fdb9bcbd9748906780d8369576508010af9a6741a64e93b755a3',
}),
'/demos/rdp/presentation.manifest.json': Object.freeze({
source: '/demos/rdp/presentation.manifest.json',
Expand All @@ -40,7 +49,7 @@ export const PUBLIC_JSON_ARTIFACTS = Object.freeze({
title: 'RDP presentation manifest',
description:
'Content hashes and exact retained-frame provenance for the paced RDP presentation video.',
sha256: '7561d3981f0374cacda865ee03548eb8d564d5d20f30ae93f42809a669c82551',
sha256: '2087864cc3466d6f65c5d9486b31ffa1a166c6455a89eb05cf1e44211fe84525',
}),
'/desktop-preview/MANIFEST.json': Object.freeze({
source: '/desktop-preview/MANIFEST.json',
Expand Down
17 changes: 10 additions & 7 deletions pages/execute.js
Original file line number Diff line number Diff line change
Expand Up @@ -120,14 +120,14 @@ export default function ExecutePage() {

<section id="rdp-demo" className="scroll-mt-24 border-b border-hairline px-5 py-16 md:py-20">
<div className="mx-auto max-w-5xl">
<p className="eyebrow">Real RDP execution</p>
<p className="eyebrow">Real RDP qualification</p>
<div className="mt-3 grid gap-8 lg:grid-cols-[1.35fr_0.65fr] lg:items-start">
<div>
<h2 className="font-display text-3xl font-semibold tracking-tight text-ink">
See the external remote-session path.
Watch one transaction cross RDP, verify, and refuse the wrong record.
</h2>
<p className="mt-4 max-w-3xl text-base leading-relaxed text-ink-2">
This synthetic healthcare task crosses a real RDP client and server. OpenAdapt records the remote pixels, compiles the demonstration, verifies the intended record before the write, and checks the saved result outside the remote screen.
The demonstration books a synthetic appointment through a real RDP client and server. OpenAdapt compiles that exact demonstration, replays it with different inputs, checks the saved database row through a separate read-only connection, and halts when the active record changes before Save.
</p>
<div className="mt-6 overflow-hidden rounded-2xl border border-hairline bg-ink">
<video
Expand All @@ -145,7 +145,7 @@ export default function ExecutePage() {
</video>
</div>
<p className="mt-3 text-xs leading-relaxed text-ink-3">
Reference qualification with synthetic data. The video uses paced presentation timing and exact retained RDP frames. A customer application and environment receive their own qualification.
Reference qualification with synthetic data. The presentation uses exact retained RDP frames and the exported compiled graph. The slower timing affects the video only.
</p>
</div>
<div className="grid gap-3 sm:grid-cols-3 lg:grid-cols-1">
Expand All @@ -154,17 +154,20 @@ export default function ExecutePage() {
<p className="mt-2 text-sm leading-relaxed text-ink-2">Healthy RDP runs confirmed the intended identity and saved effect.</p>
</article>
<article className="rounded-2xl border border-hairline bg-panel p-5">
<p className="font-display text-3xl font-semibold text-ink">3 / 3</p>
<p className="mt-2 text-sm leading-relaxed text-ink-2">Changed-screen trials halted before a write.</p>
<p className="font-display text-3xl font-semibold text-ink">6 / 6</p>
<p className="mt-2 text-sm leading-relaxed text-ink-2">Screen-drift and wrong-record trials halted before a write.</p>
</article>
<article className="rounded-2xl border border-hairline bg-panel p-5">
<p className="font-display text-3xl font-semibold text-ink">0</p>
<p className="mt-2 text-sm leading-relaxed text-ink-2">Model calls and silent incorrect successes in the accepted batch.</p>
<p className="mt-2 text-sm leading-relaxed text-ink-2">Model calls, wrong-record writes, and silent incorrect successes.</p>
</article>
<p className="flex flex-col gap-2 px-1 pt-2 text-sm">
<JsonArtifactLink source="/demos/rdp/qualification.json" className="font-medium">
Inspect the qualification evidence →
</JsonArtifactLink>
<JsonArtifactLink source="/demos/rdp/program-graph.json" className="font-medium">
Inspect the compiled workflow →
</JsonArtifactLink>
<a
href="https://github.com/OpenAdaptAI/openadapt-flow/blob/main/docs/backends/RDP.md"
target="_blank"
Expand Down
Binary file modified public/demos/rdp/openadapt-rdp-demo.mp4
Binary file not shown.
Binary file modified public/demos/rdp/poster.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
68 changes: 56 additions & 12 deletions public/demos/rdp/presentation.manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,40 +8,84 @@
{
"outcome": "RECORDED",
"phase": "Demonstration",
"presented_frame_count": 5,
"source_frame_count": 5,
"presented_frame_count": 158,
"source_frame_count": 54,
"summary": {
"actions": 4,
"actions": 8,
"model_calls": 0,
"params": {
"appointment_slot": "2026-08-12 09:30",
"patient_mrn": "MRN A1001",
"request_id": "REQ-DEMO-001",
"visit_type": "Cardiology follow-up"
},
"surface": "real RDP round-trip"
}
},
{
"outcome": "VERIFIED",
"phase": "Governed replay",
"presented_frame_count": 5,
"source_frame_count": 5,
"presented_frame_count": 9,
"source_frame_count": 9,
"summary": {
"effect_confirmed": true,
"identity_verified": true,
"model_calls": 0,
"silent_incorrect_success": false
"silent_incorrect_success": false,
"verifier": {
"expected": {
"appointment_slot": "2026-08-14 10:45",
"patient_mrn": "MRN A1001",
"request_id": "REQ-LIVE-2048-1",
"status": "scheduled",
"visit_type": "Intake consultation"
},
"kind": "read-only SQL",
"query": "SELECT appointment_id, request_id, patient_mrn, patient_name, appointment_slot, visit_type, status FROM appointments",
"rows": [
{
"appointment_id": "APT-90F5510C",
"appointment_slot": "2026-08-14 10:45",
"patient_mrn": "MRN A1001",
"patient_name": "Ada Lovelace",
"request_id": "REQ-LIVE-2048-1",
"status": "scheduled",
"visit_type": "Intake consultation"
}
]
},
"workflow_digest": "1639d92d9c92aa1ba3b87b017ba9a52eae8b2d2a8cbe0e6a3c9deead52df7664"
}
},
{
"outcome": "HALTED",
"phase": "Changed-screen refusal",
"phase": "Wrong-record refusal",
"presented_frame_count": 1,
"source_frame_count": 1,
"source_frame_count": 9,
"summary": {
"effect_written": false,
"expected_record": "Ada Lovelace \u00b7 MRN A1001",
"identity_mismatch": true,
"identity_region": [
545,
118,
680,
55
],
"model_calls": 0,
"safety_halt": true
"observed_record": "Grace Hopper \u00b7 MRN B2002",
"safety_halt": true,
"verifier": {
"kind": "read-only SQL",
"rows": []
}
}
}
],
"schema_version": "openadapt.rdp-presentation-render.v1",
"timing": "paced presentation timing; source frames remain exact",
"program_graph_sha256": "9cffca5540f8fdb9bcbd9748906780d8369576508010af9a6741a64e93b755a3",
"schema_version": "openadapt.rdp-presentation-render.v2",
"timing": "paced derivative; source frames and input events remain exact",
"video": "openadapt-rdp-demo.mp4",
"video_sha256": "66bced89b5c0d3a5ddd5b04f7ec1181c91f26030d6f0f2c14436405ffefa3812"
"video_sha256": "e556b59084864ebe643ab4650abf8d9ebdfd99d4548f5ebeeed21432e0c9f2fa",
"workflow_digest": "1639d92d9c92aa1ba3b87b017ba9a52eae8b2d2a8cbe0e6a3c9deead52df7664"
}
Loading
Loading