style(web): fix prettier config, format entire web/ tree
.prettierrc.json was missing "semi": false, so prettier wanted to add semicolons to a codebase written without them (763 semicolon-free statements vs. 150 with, in hand-written .ts; zero hand-written .svelte files use them at all). That's why prettier --check failed on 249 files — not because the code was unformatted, but because the config didn't match the actual house style. Added "semi": false; left printWidth/etc as configured (printWidth barely moves the failure count: 218/213/212 files at 100/120/140). Ran `prettier --write .` with the corrected config. Verified semantics-preserving before and after: - eslint: 142 problems both before and after, byte-identical - build passes, 38/38 tests pass - token-stream diff (whitespace/semicolons/quotes normalized) on all 218 changed files: only 52 had any remaining token change, all either trailing-comma removal (matching trailingComma: "none") or import/ ternary reflow — no semantic changes - live smoke test: Knowledge, Tasks, Fleet map, and a chat window (AgentTrace, markdown, Scope graph, activity rail) all render correctly, no console errors Most of the diff is shadcn/ui vendor files (lib/components/ui/) moving from the CLI's own style (double quotes, tabs, semicolons) to house style; re-running `shadcn-svelte add` on a component will need a follow-up format pass. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -85,11 +85,15 @@
|
||||
<Card.Root>
|
||||
<Card.Header>
|
||||
<Card.Title class="text-sm">Execution outcomes — last 30 days</Card.Title>
|
||||
<Card.Description class="text-xs">Every gated action, by day it ran, succeeded vs failed.</Card.Description>
|
||||
<Card.Description class="text-xs"
|
||||
>Every gated action, by day it ran, succeeded vs failed.</Card.Description
|
||||
>
|
||||
</Card.Header>
|
||||
<Card.Content>
|
||||
{#if trend.length === 0}
|
||||
{#if !loading}<p class="py-8 text-center text-sm text-muted-foreground">No executions in the last 30 days yet.</p>{/if}
|
||||
{#if !loading}<p class="py-8 text-center text-sm text-muted-foreground">
|
||||
No executions in the last 30 days yet.
|
||||
</p>{/if}
|
||||
{:else}
|
||||
<div bind:this={chartEl} class="w-full"></div>
|
||||
{/if}
|
||||
@@ -98,8 +102,12 @@
|
||||
|
||||
<Card.Root>
|
||||
<Card.Header>
|
||||
<Card.Title class="flex items-center gap-1.5 text-sm"><TrendingUpIcon class="size-4" /> Capability timeline</Card.Title>
|
||||
<Card.Description class="text-xs">What Nomos has learned to do, ordered by when it first succeeded.</Card.Description>
|
||||
<Card.Title class="flex items-center gap-1.5 text-sm"
|
||||
><TrendingUpIcon class="size-4" /> Capability timeline</Card.Title
|
||||
>
|
||||
<Card.Description class="text-xs"
|
||||
>What Nomos has learned to do, ordered by when it first succeeded.</Card.Description
|
||||
>
|
||||
</Card.Header>
|
||||
<Card.Content>
|
||||
<div class="flex flex-col gap-2">
|
||||
@@ -108,13 +116,17 @@
|
||||
<div>
|
||||
<span class="font-mono text-sm">{item.verb}</span>
|
||||
<span class="ml-2 text-xs text-muted-foreground">
|
||||
{item.first_success ? `first succeeded ${fmtDate(item.first_success)}` : 'no successes yet'}
|
||||
{item.first_success
|
||||
? `first succeeded ${fmtDate(item.first_success)}`
|
||||
: 'no successes yet'}
|
||||
</span>
|
||||
</div>
|
||||
<Badge variant={timelineVariant(item)}>{item.successes}/{item.total}</Badge>
|
||||
</div>
|
||||
{:else}
|
||||
{#if !loading}<p class="py-8 text-center text-sm text-muted-foreground">No executions yet.</p>{/if}
|
||||
{#if !loading}<p class="py-8 text-center text-sm text-muted-foreground">
|
||||
No executions yet.
|
||||
</p>{/if}
|
||||
{/each}
|
||||
</div>
|
||||
</Card.Content>
|
||||
@@ -123,12 +135,15 @@
|
||||
<Card.Root>
|
||||
<Card.Header>
|
||||
<Card.Title class="text-sm">Patterns</Card.Title>
|
||||
<Card.Description class="text-xs">Statistically validated behaviors, extracted from outcome feedback.</Card.Description>
|
||||
<Card.Description class="text-xs"
|
||||
>Statistically validated behaviors, extracted from outcome feedback.</Card.Description
|
||||
>
|
||||
</Card.Header>
|
||||
<Card.Content>
|
||||
{#if patterns.length === 0}
|
||||
<p class="py-6 text-center text-sm text-muted-foreground">
|
||||
No patterns learned yet — patterns emerge once outcome feedback is recorded for repeated actions.
|
||||
No patterns learned yet — patterns emerge once outcome feedback is recorded for repeated
|
||||
actions.
|
||||
</p>
|
||||
{:else}
|
||||
<div class="flex flex-col gap-2">
|
||||
@@ -136,7 +151,8 @@
|
||||
<div class="flex items-center justify-between gap-3 rounded-lg border px-3 py-2">
|
||||
<div>
|
||||
<span class="text-sm">{p.pattern}</span>
|
||||
<span class="ml-2 text-xs text-muted-foreground">{p.applies_type} · {p.action}</span>
|
||||
<span class="ml-2 text-xs text-muted-foreground">{p.applies_type} · {p.action}</span
|
||||
>
|
||||
</div>
|
||||
<Badge variant="outline">{(p.confidence * 100).toFixed(0)}% conf.</Badge>
|
||||
</div>
|
||||
@@ -148,8 +164,12 @@
|
||||
|
||||
<Card.Root>
|
||||
<Card.Header>
|
||||
<Card.Title class="flex items-center gap-1.5 text-sm"><SparklesIcon class="size-4" /> Promoted skills</Card.Title>
|
||||
<Card.Description class="text-xs">Procedures promoted from validated patterns.</Card.Description>
|
||||
<Card.Title class="flex items-center gap-1.5 text-sm"
|
||||
><SparklesIcon class="size-4" /> Promoted skills</Card.Title
|
||||
>
|
||||
<Card.Description class="text-xs"
|
||||
>Procedures promoted from validated patterns.</Card.Description
|
||||
>
|
||||
</Card.Header>
|
||||
<Card.Content>
|
||||
{#if skills.length === 0}
|
||||
|
||||
Reference in New Issue
Block a user