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
11 changes: 0 additions & 11 deletions apps/marketing/app/globals.css
Original file line number Diff line number Diff line change
Expand Up @@ -163,17 +163,6 @@
}
}

/* Fractal noise texture overlay */
body::after {
content: "";
position: fixed;
inset: 0;
z-index: 9999;
pointer-events: none;
opacity: 0.035;
background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");
}

/* Heading scale */
h1 {
font-size: clamp(2.25rem, 5vw, 3.75rem);
Expand Down
131 changes: 26 additions & 105 deletions apps/marketing/components/DynamicBackground.tsx
Original file line number Diff line number Diff line change
@@ -1,136 +1,57 @@
"use client";

import { motion } from "framer-motion";

/**
* Full-page animated background with floating gradient orbs,
* a subtle dot grid, and moving aurora streaks — all on deep black.
*/
export function DynamicBackground() {
return (
<div className="pointer-events-none fixed inset-0 z-0 overflow-hidden">
{/* ── Dot grid ─────────────────────────────────────── */}
<div
className="absolute inset-0 opacity-[0.04]"
style={{
backgroundImage: "radial-gradient(circle, rgba(255,255,255,0.5) 1px, transparent 1px)",
backgroundSize: "32px 32px",
}}
/>
<div className="absolute inset-0 bg-background" />

{/* ── Gradient orbs ────────────────────────────────── */}
{/* Top-left — cool purple */}
<motion.div
className="absolute -left-[15%] -top-[10%] h-[700px] w-[700px] rounded-full blur-[120px]"
style={{
background: "radial-gradient(circle, oklch(0.45 0.18 280 / 0.18), transparent 70%)",
}}
animate={{
x: [0, 60, -30, 0],
y: [0, 40, -20, 0],
scale: [1, 1.08, 0.95, 1],
}}
transition={{
duration: 20,
repeat: Infinity,
ease: "easeInOut",
}}
/>

{/* Center-right — deep blue */}
<motion.div
className="absolute right-[-10%] top-[25%] h-[600px] w-[600px] rounded-full blur-[120px]"
{/* Structural top light */}
<div
className="absolute left-1/2 top-0 h-[34rem] w-[min(90rem,100vw)] -translate-x-1/2"
style={{
background: "radial-gradient(circle, oklch(0.40 0.16 260 / 0.14), transparent 70%)",
}}
animate={{
x: [0, -50, 30, 0],
y: [0, -30, 50, 0],
scale: [1, 0.92, 1.06, 1],
}}
transition={{
duration: 25,
repeat: Infinity,
ease: "easeInOut",
background:
"radial-gradient(ellipse at top, oklch(0.58 0.11 255 / 0.12) 0%, oklch(0.46 0.06 250 / 0.05) 38%, transparent 72%)",
}}
/>

{/* Bottom-center — subtle warm accent */}
<motion.div
className="absolute bottom-[-5%] left-[30%] h-[500px] w-[500px] rounded-full blur-[140px]"
{/* Subtle section framing */}
<div
className="absolute inset-x-0 top-[7rem] h-px"
style={{
background: "radial-gradient(circle, oklch(0.38 0.12 300 / 0.10), transparent 70%)",
}}
animate={{
x: [0, 40, -60, 0],
y: [0, -40, 20, 0],
scale: [1, 1.1, 0.94, 1],
}}
transition={{
duration: 30,
repeat: Infinity,
ease: "easeInOut",
background: "linear-gradient(90deg, transparent, rgba(255,255,255,0.14), transparent)",
}}
/>

{/* Mid-left — faint teal whisper */}
<motion.div
className="absolute left-[10%] top-[55%] h-[400px] w-[400px] rounded-full blur-[100px]"
{/* Crisp grid instead of atmospheric fog */}
<div
className="absolute inset-0 opacity-[0.045]"
style={{
background: "radial-gradient(circle, oklch(0.42 0.10 200 / 0.08), transparent 70%)",
}}
animate={{
x: [0, -30, 50, 0],
y: [0, 60, -30, 0],
}}
transition={{
duration: 22,
repeat: Infinity,
ease: "easeInOut",
backgroundImage:
"linear-gradient(rgba(255,255,255,0.06) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.06) 1px, transparent 1px)",
backgroundPosition: "center top",
backgroundSize: "72px 72px",
}}
/>

{/* ── Aurora streaks ───────────────────────────────── */}
<motion.div
className="absolute left-[20%] top-[10%] h-[2px] w-[40vw] origin-left rotate-[15deg] opacity-[0.07]"
<div
className="absolute inset-0 opacity-[0.025]"
style={{
background:
"linear-gradient(90deg, transparent, oklch(0.55 0.20 270), oklch(0.50 0.15 240), transparent)",
}}
animate={{
opacity: [0.04, 0.09, 0.04],
scaleX: [0.8, 1.2, 0.8],
}}
transition={{
duration: 8,
repeat: Infinity,
ease: "easeInOut",
backgroundImage:
"linear-gradient(180deg, rgba(255,255,255,0.06) 0, transparent 22rem), linear-gradient(90deg, transparent 0, rgba(255,255,255,0.06) 50%, transparent 100%)",
}}
/>

<motion.div
className="absolute right-[15%] top-[40%] h-[1.5px] w-[35vw] origin-right -rotate-[12deg] opacity-[0.05]"
<div
className="absolute inset-x-0 bottom-0 h-[22rem]"
style={{
background:
"linear-gradient(90deg, transparent, oklch(0.50 0.18 290), oklch(0.45 0.12 260), transparent)",
}}
animate={{
opacity: [0.03, 0.07, 0.03],
scaleX: [1, 0.7, 1],
}}
transition={{
duration: 10,
repeat: Infinity,
ease: "easeInOut",
background: "linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.82) 100%)",
}}
/>

{/* ── Vignette — darkens edges toward pure black ──── */}
{/* Edge control */}
<div
className="absolute inset-0"
style={{
background:
"radial-gradient(ellipse 80% 70% at 50% 40%, transparent 30%, rgba(0,0,0,0.7) 100%)",
"radial-gradient(ellipse 85% 72% at 50% 30%, transparent 42%, rgba(0,0,0,0.76) 100%)",
}}
/>
</div>
Expand Down
8 changes: 0 additions & 8 deletions apps/marketing/components/GetStarted.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,6 @@ import { LINKS } from "./links";
export function GetStarted() {
return (
<section id="get-started" className="relative px-6 py-20 sm:py-28">
{/* Section glow */}
<div
className="pointer-events-none absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 h-[300px] w-[500px]"
style={{
background:
"radial-gradient(ellipse at center, oklch(0.45 0.16 270 / 0.06) 0%, transparent 70%)",
}}
/>
<div className="relative mx-auto max-w-xl text-center">
<h2 className="text-foreground">Start building.</h2>
<p className="mt-3 text-base text-muted-foreground sm:text-lg">One command. Zero config.</p>
Expand Down
19 changes: 2 additions & 17 deletions apps/marketing/components/Hero.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,10 @@ import { OKCodeMockup } from "./OKCodeMockup";
export function Hero() {
return (
<section className="relative overflow-hidden px-6 pt-36 pb-0 sm:pt-44">
{/* Ambient glow — amplified for true black */}
<div
className="pointer-events-none absolute left-1/2 top-0 -translate-x-1/2"
className="pointer-events-none absolute inset-x-0 top-20 h-px"
style={{
width: "1100px",
height: "700px",
background:
"radial-gradient(ellipse at center, oklch(0.50 0.22 270 / 0.12) 0%, oklch(0.40 0.15 250 / 0.05) 40%, transparent 70%)",
background: "linear-gradient(90deg, transparent, rgba(255,255,255,0.14), transparent)",
}}
/>

Expand Down Expand Up @@ -89,17 +85,6 @@ export function Hero() {
>
<OKCodeMockup />
</div>

{/* Subtle reflection glow under frame */}
<div
className="pointer-events-none absolute -bottom-24 left-1/2 -translate-x-1/2"
style={{
width: "80%",
height: "140px",
background:
"radial-gradient(ellipse at center, oklch(0.50 0.20 270 / 0.08) 0%, transparent 70%)",
}}
/>
</motion.div>
</div>
</section>
Expand Down
4 changes: 1 addition & 3 deletions apps/server/src/doctor.ts
Original file line number Diff line number Diff line change
Expand Up @@ -87,9 +87,7 @@ const doctorProgram = Effect.gen(function* () {
console.log("No providers are ready. Set up at least one provider to start coding:");
console.log("");
console.log(" Codex: npm install -g @openai/codex && codex login");
console.log(
" Claude Code: npm install -g @anthropic-ai/claude-code && claude auth login (or set ANTHROPIC_API_KEY / ANTHROPIC_AUTH_TOKEN)",
);
console.log(" Claude Code: npm install -g @anthropic-ai/claude-code && claude auth login");
console.log(" Copilot: npm install -g @github/copilot && copilot login");
} else if (readyCount === statuses.length) {
console.log("All providers are ready.");
Expand Down
76 changes: 5 additions & 71 deletions apps/server/src/provider/Layers/ClaudeAdapter.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,6 @@ class FakeClaudeQuery implements AsyncIterable<SDKMessage> {
function makeHarness(config?: {
readonly nativeEventLogPath?: string;
readonly nativeEventLogger?: ClaudeAdapterLiveOptions["nativeEventLogger"];
readonly readAuthTokenFromHelperCommand?: ClaudeAdapterLiveOptions["readAuthTokenFromHelperCommand"];
readonly cwd?: string;
readonly baseDir?: string;
}) {
Expand All @@ -149,11 +148,6 @@ function makeHarness(config?: {
createInput = input;
return query;
},
...(config?.readAuthTokenFromHelperCommand
? {
readAuthTokenFromHelperCommand: config.readAuthTokenFromHelperCommand,
}
: {}),
...(config?.nativeEventLogger
? {
nativeEventLogger: config.nativeEventLogger,
Expand Down Expand Up @@ -358,64 +352,8 @@ describe("ClaudeAdapterLive", () => {
);
});

it.effect("sources ANTHROPIC_AUTH_TOKEN from the configured helper command", () => {
const helperCommand = "op read op://shared/anthropic/token --no-newline";
const helperToken = "helper-token";
let helperCall: {
readonly command: string;
readonly options?: { readonly cwd?: string };
} | null = null;
const helper: NonNullable<ClaudeAdapterLiveOptions["readAuthTokenFromHelperCommand"]> = (
command,
options,
) => {
helperCall = {
command,
...(options?.cwd ? { options: { cwd: options.cwd } } : {}),
};
return helperToken;
};
const harness = makeHarness({
readAuthTokenFromHelperCommand: helper,
});

return Effect.gen(function* () {
const adapter = yield* ClaudeAdapter;
yield* adapter.startSession({
threadId: THREAD_ID,
provider: "claudeAgent",
cwd: THREAD_CWD,
runtimeMode: "full-access",
env: {
ANTHROPIC_AUTH_TOKEN: "",
},
providerOptions: {
claudeAgent: {
authTokenHelperCommand: helperCommand,
},
},
});

const createInput = harness.getLastCreateQueryInput();
assert.equal(createInput?.options.env?.ANTHROPIC_AUTH_TOKEN, helperToken);
assert.equal(helperCall?.command, helperCommand);
assert.equal(helperCall?.options?.cwd, THREAD_CWD);
}).pipe(
Effect.provideService(Random.Random, makeDeterministicRandomService()),
Effect.provide(harness.layer),
);
});

it.effect("prefers an explicit ANTHROPIC_AUTH_TOKEN over the helper command", () => {
let helperCallCount = 0;
const helper: NonNullable<ClaudeAdapterLiveOptions["readAuthTokenFromHelperCommand"]> = () => {
helperCallCount += 1;
return "helper-token";
};
const harness = makeHarness({
readAuthTokenFromHelperCommand: helper,
});

it.effect("strips Anthropic credential env vars before starting Claude Code", () => {
const harness = makeHarness();
return Effect.gen(function* () {
const adapter = yield* ClaudeAdapter;
yield* adapter.startSession({
Expand All @@ -424,18 +362,14 @@ describe("ClaudeAdapterLive", () => {
cwd: THREAD_CWD,
runtimeMode: "full-access",
env: {
ANTHROPIC_API_KEY: "api-key",
ANTHROPIC_AUTH_TOKEN: "env-token",
},
providerOptions: {
claudeAgent: {
authTokenHelperCommand: "op read op://shared/anthropic/token --no-newline",
},
},
});

const createInput = harness.getLastCreateQueryInput();
assert.equal(createInput?.options.env?.ANTHROPIC_AUTH_TOKEN, "env-token");
assert.equal(helperCallCount, 0);
assert.equal(createInput?.options.env?.ANTHROPIC_API_KEY, undefined);
assert.equal(createInput?.options.env?.ANTHROPIC_AUTH_TOKEN, undefined);
}).pipe(
Effect.provideService(Random.Random, makeDeterministicRandomService()),
Effect.provide(harness.layer),
Expand Down
Loading
Loading