From e9729cd6eea0c2a50e59b683e3d95c35e7ff241c Mon Sep 17 00:00:00 2001 From: Aayam Bansal Date: Wed, 29 Jul 2026 21:45:22 +0800 Subject: [PATCH 01/32] feat(landing): add editorial evidence system --- landing/src/app/globals.css | 270 ++++++++++++++++++++++ landing/src/components/EvidenceFigure.tsx | 241 +++++++++++++++++++ landing/src/components/InstallCommand.tsx | 18 ++ landing/src/components/SiteFooter.tsx | 62 +++++ landing/src/components/SiteNav.tsx | 83 +++++++ landing/src/components/ThemeToggle.tsx | 12 +- landing/src/lib/evidence.ts | 67 ++++++ 7 files changed, 751 insertions(+), 2 deletions(-) create mode 100644 landing/src/components/EvidenceFigure.tsx create mode 100644 landing/src/components/InstallCommand.tsx create mode 100644 landing/src/components/SiteFooter.tsx create mode 100644 landing/src/components/SiteNav.tsx create mode 100644 landing/src/lib/evidence.ts diff --git a/landing/src/app/globals.css b/landing/src/app/globals.css index 20c3146..a65f126 100644 --- a/landing/src/app/globals.css +++ b/landing/src/app/globals.css @@ -14,6 +14,8 @@ --selection: rgba(244, 236, 214, 0.22); --nav-bg: rgba(10, 9, 8, 0.85); --code-bg: #050404; + --gold: #bd9555; + --gold-soft: rgba(189, 149, 85, 0.18); color-scheme: dark; } @@ -29,6 +31,8 @@ --selection: rgba(26, 23, 21, 0.18); --nav-bg: rgba(250, 246, 234, 0.85); --code-bg: #f3eedf; + --gold: #8a6229; + --gold-soft: rgba(138, 98, 41, 0.14); color-scheme: light; } @@ -66,10 +70,17 @@ html, body { html { scroll-behavior: smooth; } section[id] { scroll-margin-top: 80px; } +body { overflow-x: hidden; } +a, button { -webkit-tap-highlight-color: transparent; } @media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } html, body { transition: none; } + *, *::before, *::after { + animation-duration: 0.01ms !important; + animation-iteration-count: 1 !important; + transition-duration: 0.01ms !important; + } } .font-serif { font-family: var(--font-serif), "Tiempos Text", "Source Serif 4", Georgia, serif; font-weight: 400; } @@ -77,6 +88,265 @@ section[id] { scroll-margin-top: 80px; } .prose p { text-wrap: pretty; } +.display-title { + font-family: var(--font-serif), Georgia, serif; + font-size: clamp(3.4rem, 8.5vw, 8.2rem); + font-weight: 400; + letter-spacing: -0.058em; + line-height: 0.92; + text-wrap: balance; +} + +.section-title { + font-family: var(--font-serif), Georgia, serif; + font-size: clamp(2.5rem, 5vw, 5.2rem); + font-weight: 400; + letter-spacing: -0.045em; + line-height: 0.98; + text-wrap: balance; +} + +.eyebrow { + font-family: var(--font-mono), ui-monospace, monospace; + font-size: 0.625rem; + letter-spacing: 0.18em; + line-height: 1.4; + text-transform: uppercase; +} + +.measure { + font-family: var(--font-serif), Georgia, serif; + font-size: clamp(4rem, 10vw, 8.5rem); + font-variant-numeric: lining-nums tabular-nums; + letter-spacing: -0.06em; + line-height: 0.82; +} + +.hero-veil { + background: + linear-gradient(180deg, rgba(4, 4, 3, 0.18) 0%, rgba(4, 4, 3, 0.06) 32%, rgba(4, 4, 3, 0.88) 88%, #070605 100%), + linear-gradient(90deg, rgba(4, 4, 3, 0.72) 0%, rgba(4, 4, 3, 0.08) 65%); +} + +.hairline-grid { + background-image: + linear-gradient(to right, var(--line) 1px, transparent 1px), + linear-gradient(to bottom, var(--line) 1px, transparent 1px); + background-size: 48px 48px; +} + +.focus-ring { + border-radius: 2px; +} + +.focus-ring:focus-visible, +a:focus-visible, +button:focus-visible { + outline: 1px solid var(--gold); + outline-offset: 5px; +} + +.button-primary, +.button-secondary { + display: inline-flex; + min-height: 48px; + align-items: center; + justify-content: center; + padding: 0 1.25rem; + border: 1px solid transparent; + font-family: var(--font-mono), ui-monospace, monospace; + font-size: 0.65rem; + letter-spacing: 0.13em; + text-transform: uppercase; + transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease; +} + +.button-primary { + background: var(--fg-strong); + color: var(--bg); +} + +.button-primary:hover { + background: var(--gold); + color: #080706; +} + +.button-secondary { + border-color: var(--line-strong); + color: var(--fg); +} + +.button-secondary:hover { + border-color: var(--gold); + color: var(--gold); +} + +.install-command { + display: flex; + width: 100%; + align-items: center; + gap: 0.9rem; + border: 1px solid var(--line-strong); + background: var(--code-bg); + padding: 0.95rem 1.1rem; + font-family: var(--font-mono), ui-monospace, monospace; + font-size: 0.76rem; + color: var(--fg); +} + +.install-command > span { + color: var(--gold); +} + +.figure-heading { + display: flex; + align-items: baseline; + justify-content: space-between; + gap: 1.5rem; + border-bottom: 1px solid var(--line); + padding-bottom: 0.85rem; + font-family: var(--font-mono), ui-monospace, monospace; + font-size: 0.58rem; + letter-spacing: 0.12em; + line-height: 1.5; + text-transform: uppercase; + color: var(--fg-mute); +} + +.evidence-figure { + border-top: 1px solid var(--line-strong); + border-bottom: 1px solid var(--line-strong); + padding: 1.1rem 0; +} + +.evidence-figure figcaption { + border-top: 1px solid var(--line); + padding-top: 1rem; + font-size: 0.75rem; + font-style: italic; + line-height: 1.65; + color: var(--fg-mute); +} + +.audit-grid { + display: grid; + grid-template-columns: repeat(15, minmax(0, 1fr)); + gap: 0.28rem; + padding: 1.5rem 0; +} + +.audit-cell { + aspect-ratio: 1; + border: 1px solid var(--line); +} + +.audit-cell-excluded { + background: var(--line); +} + +.audit-cell-valid { + border-color: var(--gold); + background: var(--gold); +} + +.pipeline-figure { + display: grid; + padding: 1.5rem 0; +} + +.pipeline-node { + display: grid; + grid-template-columns: 42px 95px 1fr; + gap: 1rem; + border-top: 1px solid var(--line); + padding: 1rem 0; +} + +.pipeline-node:first-child { + border-top: 0; +} + +.pipeline-node > span { + font-family: var(--font-mono), ui-monospace, monospace; + font-size: 0.62rem; + color: var(--gold); +} + +.pipeline-node > strong { + font-weight: 400; + color: var(--fg-strong); +} + +.pipeline-node > p { + font-size: 0.82rem; + color: var(--fg-mute); +} + +.article-prose { + font-size: clamp(1.08rem, 1.6vw, 1.23rem); + line-height: 1.82; + color: var(--fg-dim); +} + +.article-prose p { + margin-top: 1.4em; + text-wrap: pretty; +} + +.article-prose h2 { + margin-top: 3.2em; + font-family: var(--font-serif), Georgia, serif; + font-size: clamp(2.1rem, 4vw, 3.8rem); + font-weight: 400; + letter-spacing: -0.04em; + line-height: 1; + color: var(--fg-strong); +} + +.article-prose h3 { + margin-top: 2.4em; + font-family: var(--font-mono), ui-monospace, monospace; + font-size: 0.7rem; + font-weight: 400; + letter-spacing: 0.16em; + text-transform: uppercase; + color: var(--gold); +} + +.article-prose figure { + margin: 3rem 0; +} + +.article-prose a { + color: var(--fg-strong); + text-decoration: underline; + text-decoration-color: var(--gold); + text-underline-offset: 4px; +} + +.article-prose ul { + margin-top: 1.3em; + padding-left: 1.15em; +} + +.article-prose li { + margin-top: 0.65em; + padding-left: 0.3em; +} + +.article-prose li::marker { + color: var(--gold); +} + +.footer-link { + display: block; + transition: color 150ms ease; +} + +.footer-link:hover { + color: var(--gold); +} + a.quiet { color: inherit; text-decoration: underline; diff --git a/landing/src/components/EvidenceFigure.tsx b/landing/src/components/EvidenceFigure.tsx new file mode 100644 index 0000000..63c7909 --- /dev/null +++ b/landing/src/components/EvidenceFigure.tsx @@ -0,0 +1,241 @@ +import { PIPELINE, RETRIEVAL_AUDIT } from "@/lib/evidence"; + +export function OutcomeFigure() { + return ( +
+
+ Downstream code correctness + pass@1 · higher is better +
+
+ + +
+
+ Fixed Claude Opus 5 across a 40-task DS-1000 development pilot. + Descriptive result; not a universal context-engine ranking. +
+
+ ); +} + +export function CorpusAuditFigure() { + return ( +
+
+ Corpus-fidelity audit + 75 attempted cases +
+
+ {Array.from({ length: RETRIEVAL_AUDIT.attempted }, (_, index) => ( + + ))} +
+
+ + +
+
+ We report retrieval comparisons only where the scored target exists in + both indexed corpora. +
+
+ ); +} + +export function RetrievalFigure() { + const rows = [ + [ + "MRR", + RETRIEVAL_AUDIT.delphiMrr, + RETRIEVAL_AUDIT.comparatorMrr, + ], + [ + "Recall@5", + RETRIEVAL_AUDIT.delphiRecall5, + RETRIEVAL_AUDIT.comparatorRecall5, + ], + [ + "Recall@10", + RETRIEVAL_AUDIT.delphiRecall10, + RETRIEVAL_AUDIT.comparatorRecall10, + ], + [ + "Recall@20", + RETRIEVAL_AUDIT.delphiRecall20, + RETRIEVAL_AUDIT.comparatorRecall20, + ], + ] as const; + + return ( +
+
+ Strict-valid repository retrieval + 18 cases · higher is better +
+
+
+ Metric + Delphi + Hosted comparator +
+ {rows.map(([label, delphi, comparator]) => ( +
+ {label} + comparator + ? "text-[var(--gold)]" + : "text-[var(--fg-dim)]" + }`} + > + {delphi.toFixed(3)} + + delphi + ? "text-[var(--fg-strong)]" + : "text-[var(--fg-mute)]" + }`} + > + {comparator.toFixed(3)} + +
+ ))} +
+
+ The comparator leads early ranking. Delphi's recall@20 point + estimate is higher, but the paired interval{" "} + {RETRIEVAL_AUDIT.recall20Ci} crosses zero. +
+
+ ); +} + +export function LatencyFigure() { + return ( +
+
+ Mean query latency + seconds · lower is better +
+
+ + +
+
+ Delphi was 21.3× lower-latency on the 18 strict-valid repository + cases. Timing includes the observed query path, not indexing. +
+
+ ); +} + +export function PipelineFigure() { + return ( +
+
+ A context engine is a pipeline + source → verified work +
+
+ {PIPELINE.map(([number, title, body]) => ( +
+ {number} + {title} +

{body}

+
+ ))} +
+
+ A retrieval score observes one stage. The agent experiences the whole + chain. +
+
+ ); +} + +function BarRow({ + label, + value, + width, + emphasis = false, +}: { + label: string; + value: string; + width: string; + emphasis?: boolean; +}) { + return ( +
+
+ {label} + + {value} + +
+
+
+
+
+ ); +} + +function MetricLabel({ + value, + label, +}: { + value: string; + label: string; +}) { + return ( +

+ + {value} + + + {label} + +

+ ); +} + diff --git a/landing/src/components/InstallCommand.tsx b/landing/src/components/InstallCommand.tsx new file mode 100644 index 0000000..daa4d3e --- /dev/null +++ b/landing/src/components/InstallCommand.tsx @@ -0,0 +1,18 @@ +export function InstallCommand({ + compact = false, +}: { + compact?: boolean; +}) { + return ( +
+ + npx @synsci/delphi +
+ ); +} + diff --git a/landing/src/components/SiteFooter.tsx b/landing/src/components/SiteFooter.tsx new file mode 100644 index 0000000..99617fe --- /dev/null +++ b/landing/src/components/SiteFooter.tsx @@ -0,0 +1,62 @@ +import Link from "next/link"; + +export function SiteFooter() { + return ( +
+
+
+

+ delphi +

+

+ Open-source context infrastructure for agents that need to reason + over real software and research. +

+
+
+
+ + Research blog + + + GitHub + + + Documentation + +
+
+ + Apache 2.0 + + + Contact + + + Synthetic Sciences + +
+
+

+ © 2026 Synthetic Sciences · Built in the open +

+
+
+ ); +} + diff --git a/landing/src/components/SiteNav.tsx b/landing/src/components/SiteNav.tsx new file mode 100644 index 0000000..86e93be --- /dev/null +++ b/landing/src/components/SiteNav.tsx @@ -0,0 +1,83 @@ +import Link from "next/link"; +import { ThemeToggle } from "./ThemeToggle"; + +export function SiteNav({ + mode = "solid", +}: { + mode?: "overlay" | "solid"; +}) { + const overlay = mode === "overlay"; + + return ( +
+
+ + + delphi + + + Synthetic Sciences + + + + +
+
+ ); +} + diff --git a/landing/src/components/ThemeToggle.tsx b/landing/src/components/ThemeToggle.tsx index 400ac1b..8f19b49 100644 --- a/landing/src/components/ThemeToggle.tsx +++ b/landing/src/components/ThemeToggle.tsx @@ -3,7 +3,11 @@ import { useEffect, useState } from "react"; type Theme = "light" | "dark"; -export function ThemeToggle() { +export function ThemeToggle({ + tone = "default", +}: { + tone?: "default" | "inverse"; +}) { const [theme, setTheme] = useState(null); useEffect(() => { @@ -33,7 +37,11 @@ export function ThemeToggle() { aria-label={ isLight ? "Switch to dark theme" : "Switch to light theme" } - className="inline-flex items-center justify-center w-8 h-8 rounded-[6px] text-[var(--fg-dim)] hover:text-[var(--fg-strong)] hover:bg-[var(--line)] transition-colors" + className={`focus-ring inline-flex h-8 w-8 items-center justify-center transition-colors ${ + tone === "inverse" + ? "text-[#e8deca] hover:bg-white/10 hover:text-white" + : "text-[var(--fg-dim)] hover:bg-[var(--line)] hover:text-[var(--fg-strong)]" + }`} > {/* Sun for light, moon for dark — drawn inline so colour follows currentColor */} {isLight ? ( diff --git a/landing/src/lib/evidence.ts b/landing/src/lib/evidence.ts new file mode 100644 index 0000000..485b5d9 --- /dev/null +++ b/landing/src/lib/evidence.ts @@ -0,0 +1,67 @@ +export const DEVELOPER_PILOT = { + tasks: 40, + model: "Claude Opus 5", + delphiPassAtOne: 95, + nextBestPassAtOne: 90, +} as const; + +export const RETRIEVAL_AUDIT = { + attempted: 75, + strictValid: 18, + excludedTruncated: 57, + delphiLatencySeconds: 1.25, + comparatorLatencySeconds: 26.58, + latencyRatio: 21.3, + delphiMrr: 0.188, + comparatorMrr: 0.329, + delphiRecall5: 0.361, + comparatorRecall5: 0.5, + delphiRecall10: 0.472, + comparatorRecall10: 0.639, + delphiRecall20: 0.667, + comparatorRecall20: 0.639, + recall20Ci: "[-0.094, 0.139]", +} as const; + +export const ARTICLE = { + slug: "context-engine-is-the-product", + href: "/blog/context-engine-is-the-product", + title: "The context engine is the product", + dek: "What a fixed-model developer benchmark taught us about retrieval, latency, corpus fidelity, and the difference between finding a file and helping an agent finish the work.", + published: "July 29, 2026", + publishedIso: "2026-07-29", + readingTime: "11 min read", + labels: ["Evaluation", "Retrieval", "Developer agents"], +} as const; + +export const TIMELINE = [ + { + date: "Open source", + title: "A context engine you can own", + body: "Delphi begins as an Apache-2.0 MCP server for local-first code, paper, documentation, and dataset context.", + }, + { + date: "Product foundation", + title: "Context becomes a pipeline", + body: "Versioned sources, hybrid retrieval, code intelligence, provenance, and token-bounded context packs become one system.", + }, + { + date: "July 2026", + title: "The corpus gets audited", + body: "We remove 57 truncated scored targets before comparing repository retrieval on the 18 strict-valid cases.", + }, + { + date: "July 2026", + title: "The downstream result", + body: "Delphi reaches 95.0% pass@1—the strongest result in our fixed-model, 40-task developer pilot.", + }, +] as const; + +export const PIPELINE = [ + ["01", "Index", "Immutable source versions"], + ["02", "Retrieve", "Semantic, lexical, symbol, path, structural"], + ["03", "Fuse", "Rank and diversify evidence"], + ["04", "Assemble", "Token-bounded context with provenance"], + ["05", "Act", "Write and verify the change"], +] as const; + From 5317f6fae5bec03834e7365e354ceb642c83775d Mon Sep 17 00:00:00 2001 From: Aayam Bansal Date: Wed, 29 Jul 2026 21:49:11 +0800 Subject: [PATCH 02/32] feat(landing): rebuild Delphi homepage --- landing/src/app/page.tsx | 59 ++++++---- landing/src/components/ContextPipeline.tsx | 65 +++++++++++ landing/src/components/HeroImage.tsx | 15 ++- landing/src/components/HomeHero.tsx | 64 +++++++++++ landing/src/components/OpenSourceInstall.tsx | 44 ++++++++ landing/src/components/ProductTimeline.tsx | 50 +++++++++ landing/src/components/ResearchTeaser.tsx | 33 ++++++ landing/src/components/ResultsSpread.tsx | 111 +++++++++++++++++++ 8 files changed, 419 insertions(+), 22 deletions(-) create mode 100644 landing/src/components/ContextPipeline.tsx create mode 100644 landing/src/components/HomeHero.tsx create mode 100644 landing/src/components/OpenSourceInstall.tsx create mode 100644 landing/src/components/ProductTimeline.tsx create mode 100644 landing/src/components/ResearchTeaser.tsx create mode 100644 landing/src/components/ResultsSpread.tsx diff --git a/landing/src/app/page.tsx b/landing/src/app/page.tsx index dbf1cc0..570d72f 100644 --- a/landing/src/app/page.tsx +++ b/landing/src/app/page.tsx @@ -1,28 +1,49 @@ -import { Nav } from "@/components/Nav"; -import { Hero } from "@/components/Hero"; -import { HeroImage, ClosingImage } from "@/components/HeroImage"; -import { WhatIs } from "@/components/WhatIs"; -import { Benchmarks } from "@/components/Benchmarks"; -import { HowItWorks } from "@/components/HowItWorks"; -import { Quickstart } from "@/components/Quickstart"; -import { OpenSource } from "@/components/OpenSource"; -import { Footer } from "@/components/Footer"; +import Link from "next/link"; +import { ClosingImage } from "@/components/HeroImage"; +import { ContextPipeline } from "@/components/ContextPipeline"; +import { HomeHero } from "@/components/HomeHero"; +import { OpenSourceInstall } from "@/components/OpenSourceInstall"; +import { ProductTimeline } from "@/components/ProductTimeline"; +import { ResearchTeaser } from "@/components/ResearchTeaser"; +import { ResultsSpread } from "@/components/ResultsSpread"; +import { SiteFooter } from "@/components/SiteFooter"; export default function Home() { return ( <> -
), diff --git a/landing/src/app/preview/page.tsx b/landing/src/app/preview/page.tsx deleted file mode 100644 index 4fb71c6..0000000 --- a/landing/src/app/preview/page.tsx +++ /dev/null @@ -1,100 +0,0 @@ -import Image from "next/image"; -import Link from "next/link"; -import { Nav } from "@/components/Nav"; - -const VARIANTS = [ - { - n: "01", - key: "sacred-way", - name: "The Sacred Way", - blurb: - "A lone scholar climbs the Sacred Way of Delphi, the Temple of Apollo silhouetted on Mount Parnassus.", - }, - { - n: "02", - key: "pythia", - name: "The Pythia", - blurb: - "The Pythia on her bronze tripod in the inner sanctum of the Temple of Apollo, vapours rising from the fissure below.", - }, - { - n: "03", - key: "omphalos", - name: "The Omphalos", - blurb: - "The sacred navel-stone of Delphi alone in the cella, a robed figure approaching through deep silence.", - }, - { - n: "04", - key: "archive", - name: "The Archive", - blurb: - "A vast Greek archive of scrolls and codices. A single scribe reads at the centre.", - }, -]; - -export default function PreviewPage() { - return ( - <> -