jolash-dashboard / agents.html
kwmlamar's picture
Upload folder using huggingface_hub
3d749f4 verified
Raw
History Blame Contribute Delete
61.9 kB
<!DOCTYPE html><html lang="en" class="dark inter_48bf155c-module__tUfyVa__variable jetbrains_mono_39c8d23b-module__WK7_cq__variable h-full antialiased"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/70bc3e132a0a741e-s.p.3t6q91iet4nsy.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/83afe278b6a6bb3c-s.p.2bn3s6zvc0dyp.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/chunks/3ccb3s36a-ev0.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/1kbvvjb8xiuz5.js"/><script src="/_next/static/chunks/27jktro2p5rq9.js" async=""></script><script src="/_next/static/chunks/2ne35xpb2gco9.js" async=""></script><script src="/_next/static/chunks/3rxl-jt3pdxgx.js" async=""></script><script src="/_next/static/chunks/turbopack-2w-hlngzk4qal.js" async=""></script><script src="/_next/static/chunks/1e176kr40-yyy.js" async=""></script><script src="/_next/static/chunks/0ce9zjk5_q3eu.js" async=""></script><script src="/_next/static/chunks/07arni_h-ml32.js" async=""></script><script src="/_next/static/chunks/1-8s9_t85wwr4.js" async=""></script><script src="/_next/static/chunks/1_6o9mccgraxt.js" async=""></script><meta name="next-size-adjust" content=""/><title>Jolash</title><meta name="description" content="Jolash trading AI — team dashboard"/><link rel="icon" href="/favicon.ico?favicon.2vob68tjqpejf.ico" sizes="256x256" type="image/x-icon"/><script src="/_next/static/chunks/0cz1d0mv5g_q7.js" noModule=""></script></head><body class="min-h-screen bg-app-gradient text-foreground md:flex md:flex-row"><div hidden=""><!--$--><!--/$--></div><div class="sticky top-0 h-screen px-3 py-4 hidden md:flex md:flex-col bg-neutral-100 dark:bg-neutral-800 w-[228px] flex-shrink-0 justify-between gap-10 !bg-[oklch(0.155_0_0)]"><div class="flex flex-1 flex-col overflow-x-hidden overflow-y-auto"><a class="flex items-center gap-2 py-1" href="/"><div class="flex h-7 w-7 shrink-0 items-center justify-center rounded-md bg-neutral-200 text-sm font-semibold text-neutral-900">J</div><span class="whitespace-pre text-sm font-medium tracking-tight text-neutral-100">Jolash</span></a><div class="mt-6 flex flex-col"><div><div class="overflow-hidden px-2.5 pt-4 pb-1 first:pt-0"><span class="whitespace-pre text-[10px] font-medium uppercase tracking-wider text-neutral-600">Research</span></div><div class="flex flex-col gap-0.5"><a class="flex items-center justify-start gap-2 group/sidebar rounded-lg px-2.5 py-1.5 -mx-0.5 text-[13px] font-normal transition-all duration-150 text-neutral-400 hover:bg-white/[0.035] hover:text-neutral-200" href="/"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-layout-dashboard h-4 w-4 shrink-0 transition-colors text-neutral-500" aria-hidden="true"><rect width="7" height="9" x="3" y="3" rx="1"></rect><rect width="7" height="5" x="14" y="3" rx="1"></rect><rect width="7" height="9" x="14" y="12" rx="1"></rect><rect width="7" height="5" x="3" y="16" rx="1"></rect></svg><span class="text-neutral-700 dark:text-neutral-200 text-sm group-hover/sidebar:translate-x-1 transition duration-150 whitespace-pre inline-block !p-0 !m-0">Overview</span></a><a class="flex items-center justify-start gap-2 group/sidebar rounded-lg px-2.5 py-1.5 -mx-0.5 text-[13px] font-normal transition-all duration-150 text-neutral-400 hover:bg-white/[0.035] hover:text-neutral-200" href="/hypotheses"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-flask-conical h-4 w-4 shrink-0 transition-colors text-neutral-500" aria-hidden="true"><path d="M14 2v6a2 2 0 0 0 .245.96l5.51 10.08A2 2 0 0 1 18 22H6a2 2 0 0 1-1.755-2.96l5.51-10.08A2 2 0 0 0 10 8V2"></path><path d="M6.453 15h11.094"></path><path d="M8.5 2h7"></path></svg><span class="text-neutral-700 dark:text-neutral-200 text-sm group-hover/sidebar:translate-x-1 transition duration-150 whitespace-pre inline-block !p-0 !m-0">Hypotheses</span></a><a class="flex items-center justify-start gap-2 group/sidebar rounded-lg px-2.5 py-1.5 -mx-0.5 text-[13px] font-normal transition-all duration-150 text-neutral-400 hover:bg-white/[0.035] hover:text-neutral-200" href="/backtests"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chart-line h-4 w-4 shrink-0 transition-colors text-neutral-500" aria-hidden="true"><path d="M3 3v16a2 2 0 0 0 2 2h16"></path><path d="m19 9-5 5-4-4-3 3"></path></svg><span class="text-neutral-700 dark:text-neutral-200 text-sm group-hover/sidebar:translate-x-1 transition duration-150 whitespace-pre inline-block !p-0 !m-0">Backtest Results</span></a></div></div><div><div class="overflow-hidden px-2.5 pt-4 pb-1 first:pt-0"><span class="whitespace-pre text-[10px] font-medium uppercase tracking-wider text-neutral-600">Risk &amp; Execution</span></div><div class="flex flex-col gap-0.5"><a class="flex items-center justify-start gap-2 group/sidebar rounded-lg px-2.5 py-1.5 -mx-0.5 text-[13px] font-normal transition-all duration-150 text-neutral-400 hover:bg-white/[0.035] hover:text-neutral-200" href="/risk"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-shield-alert h-4 w-4 shrink-0 transition-colors text-neutral-500" aria-hidden="true"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"></path><path d="M12 8v4"></path><path d="M12 16h.01"></path></svg><span class="text-neutral-700 dark:text-neutral-200 text-sm group-hover/sidebar:translate-x-1 transition duration-150 whitespace-pre inline-block !p-0 !m-0">Risk Dashboard</span></a><a class="flex items-center justify-start gap-2 group/sidebar rounded-lg px-2.5 py-1.5 -mx-0.5 text-[13px] font-normal transition-all duration-150 text-neutral-400 hover:bg-white/[0.035] hover:text-neutral-200" href="/execution"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-activity h-4 w-4 shrink-0 transition-colors text-neutral-500" aria-hidden="true"><path d="M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2"></path></svg><span class="text-neutral-700 dark:text-neutral-200 text-sm group-hover/sidebar:translate-x-1 transition duration-150 whitespace-pre inline-block !p-0 !m-0">Live Execution</span></a><a class="flex items-center justify-start gap-2 group/sidebar rounded-lg px-2.5 py-1.5 -mx-0.5 text-[13px] font-normal transition-all duration-150 text-neutral-400 hover:bg-white/[0.035] hover:text-neutral-200" href="/decay"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-trending-down h-4 w-4 shrink-0 transition-colors text-neutral-500" aria-hidden="true"><path d="M16 17h6v-6"></path><path d="m22 17-8.5-8.5-5 5L2 7"></path></svg><span class="text-neutral-700 dark:text-neutral-200 text-sm group-hover/sidebar:translate-x-1 transition duration-150 whitespace-pre inline-block !p-0 !m-0">Decay Tracking</span></a><a class="flex items-center justify-start gap-2 group/sidebar rounded-lg px-2.5 py-1.5 -mx-0.5 text-[13px] font-normal transition-all duration-150 text-neutral-400 hover:bg-white/[0.035] hover:text-neutral-200" href="/live"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-radio h-4 w-4 shrink-0 transition-colors text-neutral-500" aria-hidden="true"><path d="M16.247 7.761a6 6 0 0 1 0 8.478"></path><path d="M19.075 4.933a10 10 0 0 1 0 14.134"></path><path d="M4.925 19.067a10 10 0 0 1 0-14.134"></path><path d="M7.753 16.239a6 6 0 0 1 0-8.478"></path><circle cx="12" cy="12" r="2"></circle></svg><span class="text-neutral-700 dark:text-neutral-200 text-sm group-hover/sidebar:translate-x-1 transition duration-150 whitespace-pre inline-block !p-0 !m-0">Live Market Data</span></a></div></div><div><div class="overflow-hidden px-2.5 pt-4 pb-1 first:pt-0"><span class="whitespace-pre text-[10px] font-medium uppercase tracking-wider text-neutral-600">Infrastructure</span></div><div class="flex flex-col gap-0.5"><a class="flex items-center justify-start gap-2 group/sidebar rounded-lg px-2.5 py-1.5 -mx-0.5 text-[13px] font-normal transition-all duration-150 text-neutral-400 hover:bg-white/[0.035] hover:text-neutral-200" href="/datasets"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-database h-4 w-4 shrink-0 transition-colors text-neutral-500" aria-hidden="true"><ellipse cx="12" cy="5" rx="9" ry="3"></ellipse><path d="M3 5V19A9 3 0 0 0 21 19V5"></path><path d="M3 12A9 3 0 0 0 21 12"></path></svg><span class="text-neutral-700 dark:text-neutral-200 text-sm group-hover/sidebar:translate-x-1 transition duration-150 whitespace-pre inline-block !p-0 !m-0">Datasets &amp; Models</span></a><a class="flex items-center justify-start gap-2 group/sidebar rounded-lg px-2.5 py-1.5 -mx-0.5 text-[13px] font-normal transition-all duration-150 text-neutral-400 hover:bg-white/[0.035] hover:text-neutral-200" href="/data-health"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-hard-drive h-4 w-4 shrink-0 transition-colors text-neutral-500" aria-hidden="true"><path d="M10 16h.01"></path><path d="M2.212 11.577a2 2 0 0 0-.212.896V18a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-5.527a2 2 0 0 0-.212-.896L18.55 5.11A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z"></path><path d="M21.946 12.013H2.054"></path><path d="M6 16h.01"></path></svg><span class="text-neutral-700 dark:text-neutral-200 text-sm group-hover/sidebar:translate-x-1 transition duration-150 whitespace-pre inline-block !p-0 !m-0">Data Health</span></a><a class="flex items-center justify-start gap-2 group/sidebar rounded-lg px-2.5 py-1.5 -mx-0.5 text-[13px] font-normal transition-all duration-150 bg-white/[0.07] text-neutral-100 shadow-[inset_0_1px_0_rgba(255,255,255,0.04)]" href="/agents"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-users h-4 w-4 shrink-0 transition-colors text-neutral-100" aria-hidden="true"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"></path><path d="M16 3.128a4 4 0 0 1 0 7.744"></path><path d="M22 21v-2a4 4 0 0 0-3-3.87"></path><circle cx="9" cy="7" r="4"></circle></svg><span class="text-neutral-700 dark:text-neutral-200 text-sm group-hover/sidebar:translate-x-1 transition duration-150 whitespace-pre inline-block !p-0 !m-0">Team &amp; Agents</span></a></div></div><div><div class="overflow-hidden px-2.5 pt-4 pb-1 first:pt-0"><span class="whitespace-pre text-[10px] font-medium uppercase tracking-wider text-neutral-600">Compliance</span></div><div class="flex flex-col gap-0.5"><a class="flex items-center justify-start gap-2 group/sidebar rounded-lg px-2.5 py-1.5 -mx-0.5 text-[13px] font-normal transition-all duration-150 text-neutral-400 hover:bg-white/[0.035] hover:text-neutral-200" href="/compliance"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard-list h-4 w-4 shrink-0 transition-colors text-neutral-500" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path><path d="M12 11h4"></path><path d="M12 16h4"></path><path d="M8 11h.01"></path><path d="M8 16h.01"></path></svg><span class="text-neutral-700 dark:text-neutral-200 text-sm group-hover/sidebar:translate-x-1 transition duration-150 whitespace-pre inline-block !p-0 !m-0">Audit Trail</span></a></div></div></div></div></div><div class="h-10 px-4 py-4 flex flex-row md:hidden items-center justify-between bg-neutral-100 dark:bg-neutral-800 w-full"><div class="flex justify-end z-20 w-full"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-menu text-neutral-800 dark:text-neutral-200 cursor-pointer" aria-hidden="true"><path d="M4 5h16"></path><path d="M4 12h16"></path><path d="M4 19h16"></path></svg></div></div><main class="flex-1 overflow-x-hidden md:m-2 md:rounded-2xl md:border md:border-white/[0.08] bg-[oklch(0.185_0_0)] md:min-h-[calc(100vh-1rem)]"><div class="mx-auto w-full max-w-6xl px-6 py-8 md:px-10"><div><div class="mb-8"><p class="font-data mb-1.5 text-[10px] font-medium uppercase tracking-[0.2em] text-muted-foreground/60">Infrastructure · Ops Console</p><h1 class="text-2xl font-medium tracking-tight text-foreground">Team &amp; Agents</h1><p class="mt-1.5 text-sm font-normal leading-relaxed text-muted-foreground">Status of every automated piece of the system. Read-only for now — no remote triggers yet.</p></div><div class="font-data mb-6 flex flex-wrap gap-4 text-[11px] text-muted-foreground/70"><span class="flex items-center gap-1.5"><span class="status-dot text-amber-400 status-dot-live" style="background-color:currentColor"></span>1<!-- --> running</span><span class="flex items-center gap-1.5"><span class="status-dot text-rose-400 status-dot-live" style="background-color:currentColor"></span>1<!-- --> needs attention</span><span class="flex items-center gap-1.5"><span class="status-dot text-neutral-600" style="background-color:currentColor"></span>0<!-- --> not built</span></div><div data-slot="card" data-size="default" class="group/card flex flex-col gap-(--card-spacing) overflow-hidden rounded-xl bg-card py-(--card-spacing) text-sm text-card-foreground ring-1 ring-foreground/10 [--card-spacing:--spacing(4)] has-data-[slot=card-footer]:pb-0 has-[&gt;img:first-child]:pt-0 data-[size=sm]:[--card-spacing:--spacing(3)] data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl glass-panel mb-6"><div data-slot="card-header" class="group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl px-(--card-spacing) has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-(--card-spacing)"><div data-slot="card-title" class="font-heading font-medium group-data-[size=sm]/card:text-sm text-base">Run Research Agent</div><p class="text-sm text-muted-foreground">No scheduled automation yet (HF Jobs needs prepaid compute credits) — run it locally whenever you want new hypotheses proposed and screened.</p></div><div data-slot="card-content" class="px-(--card-spacing)"><div class="flex items-start justify-between gap-3 rounded-lg border border-white/[0.08] bg-black/30 px-4 py-3"><code class="whitespace-pre-wrap break-all font-mono text-[13px] leading-relaxed text-neutral-300">source .venv/bin/activate &amp;&amp; python scripts/research_agent.py \
--csv-root data/raw/forex/extracted \
--hf-state-repo KUTech/trading-llm-agent-state \
--num-proposals 3</code><button class="flex shrink-0 items-center gap-1.5 rounded-md border border-white/[0.1] px-2.5 py-1.5 text-xs text-neutral-300 transition-colors hover:bg-white/[0.06]"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-copy h-3.5 w-3.5" aria-hidden="true"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"></rect><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"></path></svg>Copy</button></div><p class="mt-3 text-xs leading-relaxed text-muted-foreground">Requires <code class="rounded bg-white/[0.06] px-1 py-0.5 font-data">OPENROUTER_API_KEY</code> in a local <code class="rounded bg-white/[0.06] px-1 py-0.5 font-data">.env</code> file. Results push automatically to<!-- --> <code class="rounded bg-white/[0.06] px-1 py-0.5 font-data">KUTech/trading-llm-agent-state</code> <!-- -->on Hugging Face — this dashboard reflects them next time it&#x27;s rebuilt.</p></div></div><div class="space-y-3"><div data-slot="card" data-size="default" class="group/card flex flex-col gap-(--card-spacing) overflow-hidden rounded-xl bg-card text-sm text-card-foreground ring-1 ring-foreground/10 [--card-spacing:--spacing(4)] has-data-[slot=card-footer]:pb-0 has-[&gt;img:first-child]:pt-0 data-[size=sm]:[--card-spacing:--spacing(3)] data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl glass-panel border-l-2 py-0 border-l-rose-400/60"><div data-slot="card-header" class="group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl px-(--card-spacing) has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-(--card-spacing) pt-4"><div class="flex items-start justify-between gap-4"><div class="min-w-0"><div class="flex items-center gap-2"><span class="status-dot text-rose-400 status-dot-live" style="background-color:currentColor"></span><div data-slot="card-title" class="font-heading font-medium group-data-[size=sm]/card:text-sm text-base">Jolash Reasoning Model</div></div><p class="mt-1 text-sm text-muted-foreground">Fine-tuned chat/reasoning assistant (Qwen2.5-0.5B LoRA)</p></div><div class="flex shrink-0 flex-col items-end gap-1.5"><span class="inline-flex items-center gap-1.5 whitespace-nowrap rounded-full border border-white/[0.08] bg-white/[0.03] px-2 py-0.5 text-[11px] font-medium text-rose-300"><span class="status-dot text-rose-400 status-dot-live" style="background-color:currentColor"></span>Needs attention</span><span class="font-data text-[11px] text-muted-foreground/60">last run <!-- -->Jul 6, 12:14 AM</span></div></div></div><div data-slot="card-content" class="px-(--card-spacing) pb-4"><div class="scrollbar-thin mt-1 space-y-0 rounded-lg border border-white/[0.06] bg-black/20"><div class="flex gap-3 border-b border-white/[0.05] px-3 py-2.5 last:border-0"><span class="font-data mt-0.5 shrink-0 text-[11px] tabular-nums text-muted-foreground/50">07/06, 00:14</span><p class="text-[13px] leading-relaxed text-foreground/85">Compared fine-tuned vs base model output — fine-tune produced unresolved &lt;think&gt; traces instead of direct answers. Needs dataset rework or retraining.</p></div><div class="flex gap-3 border-b border-white/[0.05] px-3 py-2.5 last:border-0"><span class="font-data mt-0.5 shrink-0 text-[11px] tabular-nums text-muted-foreground/50">07/05, 21:14</span><p class="text-[13px] leading-relaxed text-foreground/85">Completed training run on Colab (Qwen2.5-0.5B, 5000 examples, 157 steps) and pushed adapter to KUTech/trading-llm.</p></div></div></div></div><div data-slot="card" data-size="default" class="group/card flex flex-col gap-(--card-spacing) overflow-hidden rounded-xl bg-card text-sm text-card-foreground ring-1 ring-foreground/10 [--card-spacing:--spacing(4)] has-data-[slot=card-footer]:pb-0 has-[&gt;img:first-child]:pt-0 data-[size=sm]:[--card-spacing:--spacing(3)] data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl glass-panel border-l-2 py-0 border-l-emerald-400/60"><div data-slot="card-header" class="group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl px-(--card-spacing) has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-(--card-spacing) pt-4"><div class="flex items-start justify-between gap-4"><div class="min-w-0"><div class="flex items-center gap-2"><span class="status-dot text-emerald-400" style="background-color:currentColor"></span><div data-slot="card-title" class="font-heading font-medium group-data-[size=sm]/card:text-sm text-base">Testing Engine</div></div><p class="mt-1 text-sm text-muted-foreground">Deterministic backtest pipeline (features -&gt; model -&gt; honest metrics)</p></div><div class="flex shrink-0 flex-col items-end gap-1.5"><span class="inline-flex items-center gap-1.5 whitespace-nowrap rounded-full border border-white/[0.08] bg-white/[0.03] px-2 py-0.5 text-[11px] font-medium text-emerald-300"><span class="status-dot text-emerald-400" style="background-color:currentColor"></span>Done</span><span class="font-data text-[11px] text-muted-foreground/60">last run <!-- -->Jul 5, 11:10 PM</span></div></div></div><div data-slot="card-content" class="px-(--card-spacing) pb-4"><div class="scrollbar-thin mt-1 space-y-0 rounded-lg border border-white/[0.06] bg-black/20"><div class="flex gap-3 border-b border-white/[0.05] px-3 py-2.5 last:border-0"><span class="font-data mt-0.5 shrink-0 text-[11px] tabular-nums text-muted-foreground/50">07/05, 23:10</span><p class="text-[13px] leading-relaxed text-foreground/85">Ran EURUSD 4h-direction backtest with realistic spread costs — confirmed no exploitable edge (Sharpe -0.86).</p></div><div class="flex gap-3 border-b border-white/[0.05] px-3 py-2.5 last:border-0"><span class="font-data mt-0.5 shrink-0 text-[11px] tabular-nums text-muted-foreground/50">07/05, 22:40</span><p class="text-[13px] leading-relaxed text-foreground/85">Trained baseline HistGradientBoostingClassifier — validation AUC 0.513, at chance level.</p></div></div></div></div><div data-slot="card" data-size="default" class="group/card flex flex-col gap-(--card-spacing) overflow-hidden rounded-xl bg-card text-sm text-card-foreground ring-1 ring-foreground/10 [--card-spacing:--spacing(4)] has-data-[slot=card-footer]:pb-0 has-[&gt;img:first-child]:pt-0 data-[size=sm]:[--card-spacing:--spacing(3)] data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl glass-panel border-l-2 py-0 border-l-neutral-600/40"><div data-slot="card-header" class="group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl px-(--card-spacing) has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-(--card-spacing) pt-4"><div class="flex items-start justify-between gap-4"><div class="min-w-0"><div class="flex items-center gap-2"><span class="status-dot text-neutral-500" style="background-color:currentColor"></span><div data-slot="card-title" class="font-heading font-medium group-data-[size=sm]/card:text-sm text-base">Research Agent</div></div><p class="mt-1 text-sm text-muted-foreground">Proposes specific, testable trading hypotheses via LLM API (OpenRouter), auto-screened</p></div><div class="flex shrink-0 flex-col items-end gap-1.5"><span class="inline-flex items-center gap-1.5 whitespace-nowrap rounded-full border border-white/[0.08] bg-white/[0.03] px-2 py-0.5 text-[11px] font-medium text-neutral-400"><span class="status-dot text-neutral-500" style="background-color:currentColor"></span>Idle</span><span class="font-data text-[11px] text-muted-foreground/60">last run <!-- -->Jul 9, 10:00 AM</span></div></div></div><div data-slot="card-content" class="px-(--card-spacing) pb-4"><div class="scrollbar-thin mt-1 space-y-0 rounded-lg border border-white/[0.06] bg-black/20"><div class="flex gap-3 border-b border-white/[0.05] px-3 py-2.5 last:border-0"><span class="font-data mt-0.5 shrink-0 text-[11px] tabular-nums text-muted-foreground/50">07/09, 10:00</span><p class="text-[13px] leading-relaxed text-foreground/85">Proposed 4 new combos -- EURUSD 1h h=12, USDCHF 4h h=24, AUDUSD 1D h=12 cleared the cheap screen (NZDUSD 4h h=12 rejected). Second, independent USDCHF signal is notable given USDCHF is already the one confirmed candidate.</p></div><div class="flex gap-3 border-b border-white/[0.05] px-3 py-2.5 last:border-0"><span class="font-data mt-0.5 shrink-0 text-[11px] tabular-nums text-muted-foreground/50">07/06, 18:10</span><p class="text-[13px] leading-relaxed text-foreground/85">Proposed USDCAD 1D horizon=24 and AUDUSD 4h horizon=12 -- USDCAD cleared the cheap screen with a notably strong AUC=0.6223 (small daily sample, needs full validation before trusting).</p></div><div class="flex gap-3 border-b border-white/[0.05] px-3 py-2.5 last:border-0"><span class="font-data mt-0.5 shrink-0 text-[11px] tabular-nums text-muted-foreground/50">07/06, 17:55</span><p class="text-[13px] leading-relaxed text-foreground/85">Proposed EURUSD 4h horizon=12 and USDJPY 1D horizon=24 via OpenRouter (gpt-4o-mini) -- both auto cheap-screened, state persisted to KUTech/trading-llm-agent-state.</p></div></div></div></div><div data-slot="card" data-size="default" class="group/card flex flex-col gap-(--card-spacing) overflow-hidden rounded-xl bg-card text-sm text-card-foreground ring-1 ring-foreground/10 [--card-spacing:--spacing(4)] has-data-[slot=card-footer]:pb-0 has-[&gt;img:first-child]:pt-0 data-[size=sm]:[--card-spacing:--spacing(3)] data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl glass-panel border-l-2 py-0 border-l-amber-400/60"><div data-slot="card-header" class="group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl px-(--card-spacing) has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-(--card-spacing) pt-4"><div class="flex items-start justify-between gap-4"><div class="min-w-0"><div class="flex items-center gap-2"><span class="status-dot text-amber-400 status-dot-live" style="background-color:currentColor"></span><div data-slot="card-title" class="font-heading font-medium group-data-[size=sm]/card:text-sm text-base">USDCHF Paper Trading</div></div><p class="mt-1 text-sm text-muted-foreground">Live hourly signal + vol-target sizing + drawdown guard against an OANDA practice account (launchd, real order flow, no real capital)</p></div><div class="flex shrink-0 flex-col items-end gap-1.5"><span class="inline-flex items-center gap-1.5 whitespace-nowrap rounded-full border border-white/[0.08] bg-white/[0.03] px-2 py-0.5 text-[11px] font-medium text-amber-300"><span class="status-dot text-amber-400 status-dot-live" style="background-color:currentColor"></span>Running</span><span class="font-data text-[11px] text-muted-foreground/60">last run <!-- -->Jul 13, 4:02 AM</span></div></div></div><div data-slot="card-content" class="px-(--card-spacing) pb-4"><div class="scrollbar-thin mt-1 space-y-0 rounded-lg border border-white/[0.06] bg-black/20"><div class="flex gap-3 border-b border-white/[0.05] px-3 py-2.5 last:border-0"><span class="font-data mt-0.5 shrink-0 text-[11px] tabular-nums text-muted-foreground/50">07/13, 04:02</span><p class="text-[13px] leading-relaxed text-foreground/85">Held +1000 units long (proba_up 0.575, vol_scale 1.000, drawdown guard untripped).</p></div><div class="flex gap-3 border-b border-white/[0.05] px-3 py-2.5 last:border-0"><span class="font-data mt-0.5 shrink-0 text-[11px] tabular-nums text-muted-foreground/50">07/13, 02:02</span><p class="text-[13px] leading-relaxed text-foreground/85">Flipped flat -&gt; long (proba_up 0.553 crossed the 0.55 confidence threshold).</p></div><div class="flex gap-3 border-b border-white/[0.05] px-3 py-2.5 last:border-0"><span class="font-data mt-0.5 shrink-0 text-[11px] tabular-nums text-muted-foreground/50">07/12, 21:02</span><p class="text-[13px] leading-relaxed text-foreground/85">First live decision after launch -- position_sizing.py (vol-target scale + drawdown guard) wired in mid-session.</p></div></div></div></div><div data-slot="card" data-size="default" class="group/card flex flex-col gap-(--card-spacing) overflow-hidden rounded-xl bg-card text-sm text-card-foreground ring-1 ring-foreground/10 [--card-spacing:--spacing(4)] has-data-[slot=card-footer]:pb-0 has-[&gt;img:first-child]:pt-0 data-[size=sm]:[--card-spacing:--spacing(3)] data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl glass-panel border-l-2 py-0 border-l-emerald-400/60"><div data-slot="card-header" class="group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl px-(--card-spacing) has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-(--card-spacing) pt-4"><div class="flex items-start justify-between gap-4"><div class="min-w-0"><div class="flex items-center gap-2"><span class="status-dot text-emerald-400" style="background-color:currentColor"></span><div data-slot="card-title" class="font-heading font-medium group-data-[size=sm]/card:text-sm text-base">Central Bank Sentiment Fetcher</div></div><p class="mt-1 text-sm text-muted-foreground">LLM-scores Fed/SNB policy-statement hawkishness (2015-2025) into a candidate carry-adjacent feature</p></div><div class="flex shrink-0 flex-col items-end gap-1.5"><span class="inline-flex items-center gap-1.5 whitespace-nowrap rounded-full border border-white/[0.08] bg-white/[0.03] px-2 py-0.5 text-[11px] font-medium text-emerald-300"><span class="status-dot text-emerald-400" style="background-color:currentColor"></span>Done</span><span class="font-data text-[11px] text-muted-foreground/60">last run <!-- -->Jul 12, 11:12 PM</span></div></div></div><div data-slot="card-content" class="px-(--card-spacing) pb-4"><div class="scrollbar-thin mt-1 space-y-0 rounded-lg border border-white/[0.06] bg-black/20"><div class="flex gap-3 border-b border-white/[0.05] px-3 py-2.5 last:border-0"><span class="font-data mt-0.5 shrink-0 text-[11px] tabular-nums text-muted-foreground/50">07/13, 04:00</span><p class="text-[13px] leading-relaxed text-foreground/85">Full validation on USDCHF 1D h=20: Sharpe 0.44 (2024-25) vs. -0.66 (2021-22) -- REJECTED, failed robustness. Same pattern as the raw carry features.</p></div><div class="flex gap-3 border-b border-white/[0.05] px-3 py-2.5 last:border-0"><span class="font-data mt-0.5 shrink-0 text-[11px] tabular-nums text-muted-foreground/50">07/12, 23:12</span><p class="text-[13px] leading-relaxed text-foreground/85">Fetched and LLM-scored Fed + SNB statements 2015-2025 -&gt; data/sentiment/USD.csv, CHF.csv.</p></div></div></div></div></div></div><!--$--><!--/$--></div></main><section aria-label="Notifications alt+T" tabindex="-1" aria-live="polite" aria-relevant="additions text" aria-atomic="false"></section><script src="/_next/static/chunks/1kbvvjb8xiuz5.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[85625,[\"/_next/static/chunks/1e176kr40-yyy.js\",\"/_next/static/chunks/0ce9zjk5_q3eu.js\",\"/_next/static/chunks/07arni_h-ml32.js\",\"/_next/static/chunks/1-8s9_t85wwr4.js\"],\"AppSidebar\"]\n3:I[39756,[\"/_next/static/chunks/1e176kr40-yyy.js\",\"/_next/static/chunks/0ce9zjk5_q3eu.js\",\"/_next/static/chunks/07arni_h-ml32.js\",\"/_next/static/chunks/1-8s9_t85wwr4.js\"],\"default\"]\n4:I[37457,[\"/_next/static/chunks/1e176kr40-yyy.js\",\"/_next/static/chunks/0ce9zjk5_q3eu.js\",\"/_next/static/chunks/07arni_h-ml32.js\",\"/_next/static/chunks/1-8s9_t85wwr4.js\"],\"default\"]\n5:I[13354,[\"/_next/static/chunks/1e176kr40-yyy.js\",\"/_next/static/chunks/0ce9zjk5_q3eu.js\",\"/_next/static/chunks/07arni_h-ml32.js\",\"/_next/static/chunks/1-8s9_t85wwr4.js\"],\"Toaster\"]\n7:I[97367,[\"/_next/static/chunks/1e176kr40-yyy.js\",\"/_next/static/chunks/0ce9zjk5_q3eu.js\",\"/_next/static/chunks/07arni_h-ml32.js\",\"/_next/static/chunks/1-8s9_t85wwr4.js\"],\"OutletBoundary\"]\n8:\"$Sreact.suspense\"\nb:I[97367,[\"/_next/static/chunks/1e176kr40-yyy.js\",\"/_next/static/chunks/0ce9zjk5_q3eu.js\",\"/_next/static/chunks/07arni_h-ml32.js\",\"/_next/static/chunks/1-8s9_t85wwr4.js\"],\"ViewportBoundary\"]\nd:I[97367,[\"/_next/static/chunks/1e176kr40-yyy.js\",\"/_next/static/chunks/0ce9zjk5_q3eu.js\",\"/_next/static/chunks/07arni_h-ml32.js\",\"/_next/static/chunks/1-8s9_t85wwr4.js\"],\"MetadataBoundary\"]\nf:I[68027,[\"/_next/static/chunks/1e176kr40-yyy.js\",\"/_next/static/chunks/0ce9zjk5_q3eu.js\",\"/_next/static/chunks/07arni_h-ml32.js\",\"/_next/static/chunks/1-8s9_t85wwr4.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/3ccb3s36a-ev0.css\",\"style\"]\n:HL[\"/_next/static/media/70bc3e132a0a741e-s.p.3t6q91iet4nsy.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/83afe278b6a6bb3c-s.p.2bn3s6zvc0dyp.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"agents\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"agents\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/3ccb3s36a-ev0.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/1e176kr40-yyy.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/0ce9zjk5_q3eu.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/chunks/07arni_h-ml32.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-3\",{\"src\":\"/_next/static/chunks/1-8s9_t85wwr4.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"dark inter_48bf155c-module__tUfyVa__variable jetbrains_mono_39c8d23b-module__WK7_cq__variable h-full antialiased\",\"children\":[\"$\",\"body\",null,{\"className\":\"min-h-screen bg-app-gradient text-foreground md:flex md:flex-row\",\"children\":[[\"$\",\"$L2\",null,{}],[\"$\",\"main\",null,{\"className\":\"flex-1 overflow-x-hidden md:m-2 md:rounded-2xl md:border md:border-white/[0.08] bg-[oklch(0.185_0_0)] md:min-h-[calc(100vh-1rem)]\",\"children\":[\"$\",\"div\",null,{\"className\":\"mx-auto w-full max-w-6xl px-6 py-8 md:px-10\",\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}],[\"$\",\"$L5\",null,{}]]}]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[\"$L6\",[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/1_6o9mccgraxt.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L7\",null,{\"children\":[\"$\",\"$8\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@9\"}]}]]}],{},null,false,null]},null,false,\"$@a\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$Lb\",null,{\"children\":\"$Lc\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Ld\",null,{\"children\":[\"$\",\"$8\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Le\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}],false]],\"m\":\"$undefined\",\"G\":[\"$f\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/3ccb3s36a-ev0.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"DyyPHCjuwlEd_g9CqKoD8\"}\n"])</script><script>self.__next_f.push([1,"10:[]\na:\"$W10\"\n"])</script><script>self.__next_f.push([1,"11:I[27396,[\"/_next/static/chunks/1e176kr40-yyy.js\",\"/_next/static/chunks/0ce9zjk5_q3eu.js\",\"/_next/static/chunks/07arni_h-ml32.js\",\"/_next/static/chunks/1-8s9_t85wwr4.js\",\"/_next/static/chunks/1_6o9mccgraxt.js\"],\"CopyCommand\"]\n"])</script><script>self.__next_f.push([1,"6:[\"$\",\"div\",null,{\"children\":[[\"$\",\"div\",null,{\"className\":\"mb-8\",\"children\":[[\"$\",\"p\",null,{\"className\":\"font-data mb-1.5 text-[10px] font-medium uppercase tracking-[0.2em] text-muted-foreground/60\",\"children\":\"Infrastructure · Ops Console\"}],[\"$\",\"h1\",null,{\"className\":\"text-2xl font-medium tracking-tight text-foreground\",\"children\":\"Team \u0026 Agents\"}],[\"$\",\"p\",null,{\"className\":\"mt-1.5 text-sm font-normal leading-relaxed text-muted-foreground\",\"children\":\"Status of every automated piece of the system. Read-only for now — no remote triggers yet.\"}]]}],[\"$\",\"div\",null,{\"className\":\"font-data mb-6 flex flex-wrap gap-4 text-[11px] text-muted-foreground/70\",\"children\":[[\"$\",\"span\",null,{\"className\":\"flex items-center gap-1.5\",\"children\":[[\"$\",\"span\",null,{\"className\":\"status-dot text-amber-400 status-dot-live\",\"style\":{\"backgroundColor\":\"currentColor\"}}],1,\" running\"]}],[\"$\",\"span\",null,{\"className\":\"flex items-center gap-1.5\",\"children\":[[\"$\",\"span\",null,{\"className\":\"status-dot text-rose-400 status-dot-live\",\"style\":{\"backgroundColor\":\"currentColor\"}}],1,\" needs attention\"]}],[\"$\",\"span\",null,{\"className\":\"flex items-center gap-1.5\",\"children\":[[\"$\",\"span\",null,{\"className\":\"status-dot text-neutral-600\",\"style\":{\"backgroundColor\":\"currentColor\"}}],0,\" not built\"]}]]}],[\"$\",\"div\",null,{\"data-slot\":\"card\",\"data-size\":\"default\",\"className\":\"group/card flex flex-col gap-(--card-spacing) overflow-hidden rounded-xl bg-card py-(--card-spacing) text-sm text-card-foreground ring-1 ring-foreground/10 [--card-spacing:--spacing(4)] has-data-[slot=card-footer]:pb-0 has-[\u003eimg:first-child]:pt-0 data-[size=sm]:[--card-spacing:--spacing(3)] data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl glass-panel mb-6\",\"children\":[[\"$\",\"div\",null,{\"data-slot\":\"card-header\",\"className\":\"group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl px-(--card-spacing) has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-(--card-spacing)\",\"children\":[[\"$\",\"div\",null,{\"data-slot\":\"card-title\",\"className\":\"font-heading font-medium group-data-[size=sm]/card:text-sm text-base\",\"children\":\"Run Research Agent\"}],[\"$\",\"p\",null,{\"className\":\"text-sm text-muted-foreground\",\"children\":\"No scheduled automation yet (HF Jobs needs prepaid compute credits) — run it locally whenever you want new hypotheses proposed and screened.\"}]]}],[\"$\",\"div\",null,{\"data-slot\":\"card-content\",\"className\":\"px-(--card-spacing)\",\"children\":[[\"$\",\"$L11\",null,{\"command\":\"source .venv/bin/activate \u0026\u0026 python scripts/research_agent.py \\\\\\n --csv-root data/raw/forex/extracted \\\\\\n --hf-state-repo KUTech/trading-llm-agent-state \\\\\\n --num-proposals 3\"}],[\"$\",\"p\",null,{\"className\":\"mt-3 text-xs leading-relaxed text-muted-foreground\",\"children\":[\"Requires \",[\"$\",\"code\",null,{\"className\":\"rounded bg-white/[0.06] px-1 py-0.5 font-data\",\"children\":\"OPENROUTER_API_KEY\"}],\" in a local \",[\"$\",\"code\",null,{\"className\":\"rounded bg-white/[0.06] px-1 py-0.5 font-data\",\"children\":\".env\"}],\" file. Results push automatically to\",\" \",[\"$\",\"code\",null,{\"className\":\"rounded bg-white/[0.06] px-1 py-0.5 font-data\",\"children\":\"KUTech/trading-llm-agent-state\"}],\" \",\"on Hugging Face — this dashboard reflects them next time it's rebuilt.\"]}]]}]]}],[\"$\",\"div\",null,{\"className\":\"space-y-3\",\"children\":[[\"$\",\"div\",\"reasoning-model\",{\"data-slot\":\"card\",\"data-size\":\"default\",\"className\":\"group/card flex flex-col gap-(--card-spacing) overflow-hidden rounded-xl bg-card text-sm text-card-foreground ring-1 ring-foreground/10 [--card-spacing:--spacing(4)] has-data-[slot=card-footer]:pb-0 has-[\u003eimg:first-child]:pt-0 data-[size=sm]:[--card-spacing:--spacing(3)] data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl glass-panel border-l-2 py-0 border-l-rose-400/60\",\"children\":[\"$L12\",\"$L13\"]}],\"$L14\",\"$L15\",\"$L16\",\"$L17\"]}]]}]\n"])</script><script>self.__next_f.push([1,"12:[\"$\",\"div\",null,{\"data-slot\":\"card-header\",\"className\":\"group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl px-(--card-spacing) has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-(--card-spacing) pt-4\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex items-start justify-between gap-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"min-w-0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2\",\"children\":[[\"$\",\"span\",null,{\"className\":\"status-dot text-rose-400 status-dot-live\",\"style\":{\"backgroundColor\":\"currentColor\"}}],[\"$\",\"div\",null,{\"data-slot\":\"card-title\",\"className\":\"font-heading font-medium group-data-[size=sm]/card:text-sm text-base\",\"children\":\"Jolash Reasoning Model\"}]]}],[\"$\",\"p\",null,{\"className\":\"mt-1 text-sm text-muted-foreground\",\"children\":\"Fine-tuned chat/reasoning assistant (Qwen2.5-0.5B LoRA)\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex shrink-0 flex-col items-end gap-1.5\",\"children\":[[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1.5 whitespace-nowrap rounded-full border border-white/[0.08] bg-white/[0.03] px-2 py-0.5 text-[11px] font-medium text-rose-300\",\"children\":[[\"$\",\"span\",null,{\"className\":\"status-dot text-rose-400 status-dot-live\",\"style\":{\"backgroundColor\":\"currentColor\"}}],\"Needs attention\"]}],[\"$\",\"span\",null,{\"className\":\"font-data text-[11px] text-muted-foreground/60\",\"children\":[\"last run \",\"Jul 6, 12:14 AM\"]}]]}]]}]}]\n"])</script><script>self.__next_f.push([1,"13:[\"$\",\"div\",null,{\"data-slot\":\"card-content\",\"className\":\"px-(--card-spacing) pb-4\",\"children\":[\"$\",\"div\",null,{\"className\":\"scrollbar-thin mt-1 space-y-0 rounded-lg border border-white/[0.06] bg-black/20\",\"children\":[[\"$\",\"div\",\"0\",{\"className\":\"flex gap-3 border-b border-white/[0.05] px-3 py-2.5 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-data mt-0.5 shrink-0 text-[11px] tabular-nums text-muted-foreground/50\",\"children\":\"07/06, 00:14\"}],[\"$\",\"p\",null,{\"className\":\"text-[13px] leading-relaxed text-foreground/85\",\"children\":\"Compared fine-tuned vs base model output — fine-tune produced unresolved \u003cthink\u003e traces instead of direct answers. Needs dataset rework or retraining.\"}]]}],[\"$\",\"div\",\"1\",{\"className\":\"flex gap-3 border-b border-white/[0.05] px-3 py-2.5 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-data mt-0.5 shrink-0 text-[11px] tabular-nums text-muted-foreground/50\",\"children\":\"07/05, 21:14\"}],[\"$\",\"p\",null,{\"className\":\"text-[13px] leading-relaxed text-foreground/85\",\"children\":\"Completed training run on Colab (Qwen2.5-0.5B, 5000 examples, 157 steps) and pushed adapter to KUTech/trading-llm.\"}]]}]]}]}]\n"])</script><script>self.__next_f.push([1,"14:[\"$\",\"div\",\"testing-engine\",{\"data-slot\":\"card\",\"data-size\":\"default\",\"className\":\"group/card flex flex-col gap-(--card-spacing) overflow-hidden rounded-xl bg-card text-sm text-card-foreground ring-1 ring-foreground/10 [--card-spacing:--spacing(4)] has-data-[slot=card-footer]:pb-0 has-[\u003eimg:first-child]:pt-0 data-[size=sm]:[--card-spacing:--spacing(3)] data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl glass-panel border-l-2 py-0 border-l-emerald-400/60\",\"children\":[[\"$\",\"div\",null,{\"data-slot\":\"card-header\",\"className\":\"group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl px-(--card-spacing) has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-(--card-spacing) pt-4\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex items-start justify-between gap-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"min-w-0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2\",\"children\":[[\"$\",\"span\",null,{\"className\":\"status-dot text-emerald-400\",\"style\":{\"backgroundColor\":\"currentColor\"}}],[\"$\",\"div\",null,{\"data-slot\":\"card-title\",\"className\":\"font-heading font-medium group-data-[size=sm]/card:text-sm text-base\",\"children\":\"Testing Engine\"}]]}],[\"$\",\"p\",null,{\"className\":\"mt-1 text-sm text-muted-foreground\",\"children\":\"Deterministic backtest pipeline (features -\u003e model -\u003e honest metrics)\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex shrink-0 flex-col items-end gap-1.5\",\"children\":[[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1.5 whitespace-nowrap rounded-full border border-white/[0.08] bg-white/[0.03] px-2 py-0.5 text-[11px] font-medium text-emerald-300\",\"children\":[[\"$\",\"span\",null,{\"className\":\"status-dot text-emerald-400\",\"style\":{\"backgroundColor\":\"currentColor\"}}],\"Done\"]}],[\"$\",\"span\",null,{\"className\":\"font-data text-[11px] text-muted-foreground/60\",\"children\":[\"last run \",\"Jul 5, 11:10 PM\"]}]]}]]}]}],[\"$\",\"div\",null,{\"data-slot\":\"card-content\",\"className\":\"px-(--card-spacing) pb-4\",\"children\":[\"$\",\"div\",null,{\"className\":\"scrollbar-thin mt-1 space-y-0 rounded-lg border border-white/[0.06] bg-black/20\",\"children\":[[\"$\",\"div\",\"0\",{\"className\":\"flex gap-3 border-b border-white/[0.05] px-3 py-2.5 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-data mt-0.5 shrink-0 text-[11px] tabular-nums text-muted-foreground/50\",\"children\":\"07/05, 23:10\"}],[\"$\",\"p\",null,{\"className\":\"text-[13px] leading-relaxed text-foreground/85\",\"children\":\"Ran EURUSD 4h-direction backtest with realistic spread costs — confirmed no exploitable edge (Sharpe -0.86).\"}]]}],[\"$\",\"div\",\"1\",{\"className\":\"flex gap-3 border-b border-white/[0.05] px-3 py-2.5 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-data mt-0.5 shrink-0 text-[11px] tabular-nums text-muted-foreground/50\",\"children\":\"07/05, 22:40\"}],[\"$\",\"p\",null,{\"className\":\"text-[13px] leading-relaxed text-foreground/85\",\"children\":\"Trained baseline HistGradientBoostingClassifier — validation AUC 0.513, at chance level.\"}]]}]]}]}]]}]\n"])</script><script>self.__next_f.push([1,"15:[\"$\",\"div\",\"research-agent\",{\"data-slot\":\"card\",\"data-size\":\"default\",\"className\":\"group/card flex flex-col gap-(--card-spacing) overflow-hidden rounded-xl bg-card text-sm text-card-foreground ring-1 ring-foreground/10 [--card-spacing:--spacing(4)] has-data-[slot=card-footer]:pb-0 has-[\u003eimg:first-child]:pt-0 data-[size=sm]:[--card-spacing:--spacing(3)] data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl glass-panel border-l-2 py-0 border-l-neutral-600/40\",\"children\":[[\"$\",\"div\",null,{\"data-slot\":\"card-header\",\"className\":\"group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl px-(--card-spacing) has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-(--card-spacing) pt-4\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex items-start justify-between gap-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"min-w-0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2\",\"children\":[[\"$\",\"span\",null,{\"className\":\"status-dot text-neutral-500\",\"style\":{\"backgroundColor\":\"currentColor\"}}],[\"$\",\"div\",null,{\"data-slot\":\"card-title\",\"className\":\"font-heading font-medium group-data-[size=sm]/card:text-sm text-base\",\"children\":\"Research Agent\"}]]}],[\"$\",\"p\",null,{\"className\":\"mt-1 text-sm text-muted-foreground\",\"children\":\"Proposes specific, testable trading hypotheses via LLM API (OpenRouter), auto-screened\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex shrink-0 flex-col items-end gap-1.5\",\"children\":[[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1.5 whitespace-nowrap rounded-full border border-white/[0.08] bg-white/[0.03] px-2 py-0.5 text-[11px] font-medium text-neutral-400\",\"children\":[[\"$\",\"span\",null,{\"className\":\"status-dot text-neutral-500\",\"style\":{\"backgroundColor\":\"currentColor\"}}],\"Idle\"]}],[\"$\",\"span\",null,{\"className\":\"font-data text-[11px] text-muted-foreground/60\",\"children\":[\"last run \",\"Jul 9, 10:00 AM\"]}]]}]]}]}],[\"$\",\"div\",null,{\"data-slot\":\"card-content\",\"className\":\"px-(--card-spacing) pb-4\",\"children\":[\"$\",\"div\",null,{\"className\":\"scrollbar-thin mt-1 space-y-0 rounded-lg border border-white/[0.06] bg-black/20\",\"children\":[[\"$\",\"div\",\"0\",{\"className\":\"flex gap-3 border-b border-white/[0.05] px-3 py-2.5 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-data mt-0.5 shrink-0 text-[11px] tabular-nums text-muted-foreground/50\",\"children\":\"07/09, 10:00\"}],[\"$\",\"p\",null,{\"className\":\"text-[13px] leading-relaxed text-foreground/85\",\"children\":\"Proposed 4 new combos -- EURUSD 1h h=12, USDCHF 4h h=24, AUDUSD 1D h=12 cleared the cheap screen (NZDUSD 4h h=12 rejected). Second, independent USDCHF signal is notable given USDCHF is already the one confirmed candidate.\"}]]}],[\"$\",\"div\",\"1\",{\"className\":\"flex gap-3 border-b border-white/[0.05] px-3 py-2.5 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-data mt-0.5 shrink-0 text-[11px] tabular-nums text-muted-foreground/50\",\"children\":\"07/06, 18:10\"}],[\"$\",\"p\",null,{\"className\":\"text-[13px] leading-relaxed text-foreground/85\",\"children\":\"Proposed USDCAD 1D horizon=24 and AUDUSD 4h horizon=12 -- USDCAD cleared the cheap screen with a notably strong AUC=0.6223 (small daily sample, needs full validation before trusting).\"}]]}],[\"$\",\"div\",\"2\",{\"className\":\"flex gap-3 border-b border-white/[0.05] px-3 py-2.5 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-data mt-0.5 shrink-0 text-[11px] tabular-nums text-muted-foreground/50\",\"children\":\"07/06, 17:55\"}],[\"$\",\"p\",null,{\"className\":\"text-[13px] leading-relaxed text-foreground/85\",\"children\":\"Proposed EURUSD 4h horizon=12 and USDJPY 1D horizon=24 via OpenRouter (gpt-4o-mini) -- both auto cheap-screened, state persisted to KUTech/trading-llm-agent-state.\"}]]}]]}]}]]}]\n"])</script><script>self.__next_f.push([1,"16:[\"$\",\"div\",\"paper-trading-usdchf\",{\"data-slot\":\"card\",\"data-size\":\"default\",\"className\":\"group/card flex flex-col gap-(--card-spacing) overflow-hidden rounded-xl bg-card text-sm text-card-foreground ring-1 ring-foreground/10 [--card-spacing:--spacing(4)] has-data-[slot=card-footer]:pb-0 has-[\u003eimg:first-child]:pt-0 data-[size=sm]:[--card-spacing:--spacing(3)] data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl glass-panel border-l-2 py-0 border-l-amber-400/60\",\"children\":[[\"$\",\"div\",null,{\"data-slot\":\"card-header\",\"className\":\"group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl px-(--card-spacing) has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-(--card-spacing) pt-4\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex items-start justify-between gap-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"min-w-0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2\",\"children\":[[\"$\",\"span\",null,{\"className\":\"status-dot text-amber-400 status-dot-live\",\"style\":{\"backgroundColor\":\"currentColor\"}}],[\"$\",\"div\",null,{\"data-slot\":\"card-title\",\"className\":\"font-heading font-medium group-data-[size=sm]/card:text-sm text-base\",\"children\":\"USDCHF Paper Trading\"}]]}],[\"$\",\"p\",null,{\"className\":\"mt-1 text-sm text-muted-foreground\",\"children\":\"Live hourly signal + vol-target sizing + drawdown guard against an OANDA practice account (launchd, real order flow, no real capital)\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex shrink-0 flex-col items-end gap-1.5\",\"children\":[[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1.5 whitespace-nowrap rounded-full border border-white/[0.08] bg-white/[0.03] px-2 py-0.5 text-[11px] font-medium text-amber-300\",\"children\":[[\"$\",\"span\",null,{\"className\":\"status-dot text-amber-400 status-dot-live\",\"style\":{\"backgroundColor\":\"currentColor\"}}],\"Running\"]}],[\"$\",\"span\",null,{\"className\":\"font-data text-[11px] text-muted-foreground/60\",\"children\":[\"last run \",\"Jul 13, 4:02 AM\"]}]]}]]}]}],[\"$\",\"div\",null,{\"data-slot\":\"card-content\",\"className\":\"px-(--card-spacing) pb-4\",\"children\":[\"$\",\"div\",null,{\"className\":\"scrollbar-thin mt-1 space-y-0 rounded-lg border border-white/[0.06] bg-black/20\",\"children\":[[\"$\",\"div\",\"0\",{\"className\":\"flex gap-3 border-b border-white/[0.05] px-3 py-2.5 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-data mt-0.5 shrink-0 text-[11px] tabular-nums text-muted-foreground/50\",\"children\":\"07/13, 04:02\"}],[\"$\",\"p\",null,{\"className\":\"text-[13px] leading-relaxed text-foreground/85\",\"children\":\"Held +1000 units long (proba_up 0.575, vol_scale 1.000, drawdown guard untripped).\"}]]}],[\"$\",\"div\",\"1\",{\"className\":\"flex gap-3 border-b border-white/[0.05] px-3 py-2.5 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-data mt-0.5 shrink-0 text-[11px] tabular-nums text-muted-foreground/50\",\"children\":\"07/13, 02:02\"}],[\"$\",\"p\",null,{\"className\":\"text-[13px] leading-relaxed text-foreground/85\",\"children\":\"Flipped flat -\u003e long (proba_up 0.553 crossed the 0.55 confidence threshold).\"}]]}],[\"$\",\"div\",\"2\",{\"className\":\"flex gap-3 border-b border-white/[0.05] px-3 py-2.5 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-data mt-0.5 shrink-0 text-[11px] tabular-nums text-muted-foreground/50\",\"children\":\"07/12, 21:02\"}],[\"$\",\"p\",null,{\"className\":\"text-[13px] leading-relaxed text-foreground/85\",\"children\":\"First live decision after launch -- position_sizing.py (vol-target scale + drawdown guard) wired in mid-session.\"}]]}]]}]}]]}]\n"])</script><script>self.__next_f.push([1,"17:[\"$\",\"div\",\"cbank-sentiment-fetcher\",{\"data-slot\":\"card\",\"data-size\":\"default\",\"className\":\"group/card flex flex-col gap-(--card-spacing) overflow-hidden rounded-xl bg-card text-sm text-card-foreground ring-1 ring-foreground/10 [--card-spacing:--spacing(4)] has-data-[slot=card-footer]:pb-0 has-[\u003eimg:first-child]:pt-0 data-[size=sm]:[--card-spacing:--spacing(3)] data-[size=sm]:has-data-[slot=card-footer]:pb-0 *:[img:first-child]:rounded-t-xl *:[img:last-child]:rounded-b-xl glass-panel border-l-2 py-0 border-l-emerald-400/60\",\"children\":[[\"$\",\"div\",null,{\"data-slot\":\"card-header\",\"className\":\"group/card-header @container/card-header grid auto-rows-min items-start gap-1 rounded-t-xl px-(--card-spacing) has-data-[slot=card-action]:grid-cols-[1fr_auto] has-data-[slot=card-description]:grid-rows-[auto_auto] [.border-b]:pb-(--card-spacing) pt-4\",\"children\":[\"$\",\"div\",null,{\"className\":\"flex items-start justify-between gap-4\",\"children\":[[\"$\",\"div\",null,{\"className\":\"min-w-0\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-2\",\"children\":[[\"$\",\"span\",null,{\"className\":\"status-dot text-emerald-400\",\"style\":{\"backgroundColor\":\"currentColor\"}}],[\"$\",\"div\",null,{\"data-slot\":\"card-title\",\"className\":\"font-heading font-medium group-data-[size=sm]/card:text-sm text-base\",\"children\":\"Central Bank Sentiment Fetcher\"}]]}],[\"$\",\"p\",null,{\"className\":\"mt-1 text-sm text-muted-foreground\",\"children\":\"LLM-scores Fed/SNB policy-statement hawkishness (2015-2025) into a candidate carry-adjacent feature\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex shrink-0 flex-col items-end gap-1.5\",\"children\":[[\"$\",\"span\",null,{\"className\":\"inline-flex items-center gap-1.5 whitespace-nowrap rounded-full border border-white/[0.08] bg-white/[0.03] px-2 py-0.5 text-[11px] font-medium text-emerald-300\",\"children\":[[\"$\",\"span\",null,{\"className\":\"status-dot text-emerald-400\",\"style\":{\"backgroundColor\":\"currentColor\"}}],\"Done\"]}],[\"$\",\"span\",null,{\"className\":\"font-data text-[11px] text-muted-foreground/60\",\"children\":[\"last run \",\"Jul 12, 11:12 PM\"]}]]}]]}]}],[\"$\",\"div\",null,{\"data-slot\":\"card-content\",\"className\":\"px-(--card-spacing) pb-4\",\"children\":[\"$\",\"div\",null,{\"className\":\"scrollbar-thin mt-1 space-y-0 rounded-lg border border-white/[0.06] bg-black/20\",\"children\":[[\"$\",\"div\",\"0\",{\"className\":\"flex gap-3 border-b border-white/[0.05] px-3 py-2.5 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-data mt-0.5 shrink-0 text-[11px] tabular-nums text-muted-foreground/50\",\"children\":\"07/13, 04:00\"}],[\"$\",\"p\",null,{\"className\":\"text-[13px] leading-relaxed text-foreground/85\",\"children\":\"Full validation on USDCHF 1D h=20: Sharpe 0.44 (2024-25) vs. -0.66 (2021-22) -- REJECTED, failed robustness. Same pattern as the raw carry features.\"}]]}],[\"$\",\"div\",\"1\",{\"className\":\"flex gap-3 border-b border-white/[0.05] px-3 py-2.5 last:border-0\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-data mt-0.5 shrink-0 text-[11px] tabular-nums text-muted-foreground/50\",\"children\":\"07/12, 23:12\"}],[\"$\",\"p\",null,{\"className\":\"text-[13px] leading-relaxed text-foreground/85\",\"children\":\"Fetched and LLM-scored Fed + SNB statements 2015-2025 -\u003e data/sentiment/USD.csv, CHF.csv.\"}]]}]]}]}]]}]\n"])</script><script>self.__next_f.push([1,"c:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script><script>self.__next_f.push([1,"18:I[27201,[\"/_next/static/chunks/1e176kr40-yyy.js\",\"/_next/static/chunks/0ce9zjk5_q3eu.js\",\"/_next/static/chunks/07arni_h-ml32.js\",\"/_next/static/chunks/1-8s9_t85wwr4.js\"],\"IconMark\"]\n9:null\ne:[[\"$\",\"title\",\"0\",{\"children\":\"Jolash\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Jolash trading AI — team dashboard\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.2vob68tjqpejf.ico\",\"sizes\":\"256x256\",\"type\":\"image/x-icon\"}],[\"$\",\"$L18\",\"3\",{}]]\n"])</script></body></html>