geneseed 3.12.0 → 3.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +121 -0
- package/README.md +2 -2
- package/SHIPPED.md +1 -1
- package/adapters/bob/README.md +1 -1
- package/adapters/claude-code/README.md +1 -1
- package/adapters/openclaude/README.md +1 -1
- package/adapters/opencode/README.md +3 -3
- package/docs/README.md +41 -22
- package/docs/concepts/agents.md +3 -1
- package/docs/concepts/collaboration.md +3 -1
- package/docs/concepts/exclusions.md +4 -2
- package/docs/concepts/footprint.md +3 -1
- package/docs/concepts/foreman-mode.md +3 -1
- package/docs/concepts/hook-gates.md +61 -0
- package/docs/concepts/hooks.md +8 -56
- package/docs/concepts/host-matrix.md +38 -0
- package/docs/concepts/hosts.md +6 -32
- package/docs/concepts/loop-branch.md +66 -0
- package/docs/concepts/loop-bricks.md +48 -0
- package/docs/concepts/loop-contracts.md +33 -0
- package/docs/concepts/loop-gates.md +30 -0
- package/docs/concepts/loop-notes.md +43 -0
- package/docs/concepts/loop-risk.md +36 -0
- package/docs/concepts/loop-templates.md +50 -0
- package/docs/concepts/loops.md +24 -116
- package/docs/concepts/lsp.md +2 -0
- package/docs/concepts/memory.md +3 -1
- package/docs/concepts/notebook.md +3 -1
- package/docs/concepts/rules.md +4 -2
- package/docs/concepts/skills.md +3 -1
- package/docs/concepts/themes.md +3 -1
- package/docs/extending.md +23 -8
- package/docs/guides/autostart.md +3 -1
- package/docs/guides/choose-your-setup.md +5 -80
- package/docs/guides/headless.md +5 -3
- package/docs/guides/install-agent-md.md +37 -0
- package/docs/guides/install-bob.md +20 -0
- package/docs/guides/install-claude-code.md +22 -0
- package/docs/guides/install-clone.md +34 -0
- package/docs/guides/install-openclaude.md +25 -0
- package/docs/guides/install-opencode.md +35 -0
- package/docs/guides/install-scripted.md +21 -0
- package/docs/guides/install.md +9 -118
- package/docs/guides/loop-finish.md +54 -0
- package/docs/guides/loop-running.md +66 -0
- package/docs/guides/loop-which-template.md +35 -0
- package/docs/guides/mcp-filesystem.md +41 -0
- package/docs/guides/mcp-gitlab.md +66 -0
- package/docs/guides/mcp-markitdown.md +36 -0
- package/docs/guides/mcp.md +8 -137
- package/docs/guides/migrate.md +3 -1
- package/docs/guides/project-context.md +4 -2
- package/docs/guides/read-non-markdown.md +17 -0
- package/docs/guides/run-a-loop.md +64 -0
- package/docs/guides/run-anywhere.md +2 -0
- package/docs/guides/setup-doctrines.md +55 -0
- package/docs/guides/setup-footprint.md +48 -0
- package/docs/guides/uninstall.md +3 -1
- package/docs/guides/upgrade.md +3 -1
- package/docs/guides/verify.md +3 -1
- package/docs/guides/wiki.md +3 -1
- package/docs/guides/worktree.md +3 -1
- package/docs/reference/about.md +3 -1
- package/docs/reference/cli.md +2 -0
- package/docs/reference/env-context.md +40 -0
- package/docs/reference/environment.md +10 -59
- package/docs/reference/glossary.md +3 -1
- package/docs/reference/loop-actions.md +20 -0
- package/docs/reference/opencode-plugins.md +14 -118
- package/docs/reference/plugin-activity.md +20 -0
- package/docs/reference/plugin-context.md +27 -0
- package/docs/reference/plugin-guard.md +27 -0
- package/docs/reference/plugin-learn.md +27 -0
- package/docs/reference/plugin-notify.md +20 -0
- package/docs/reference/plugin-ponytail.md +19 -0
- package/docs/reference/plugin-workflow.md +25 -0
- package/docs/reference/troubleshoot-doctor.md +50 -0
- package/docs/reference/troubleshoot-hooks.md +99 -0
- package/docs/reference/troubleshoot-install.md +108 -0
- package/docs/reference/troubleshoot-tools.md +56 -0
- package/docs/reference/troubleshoot-update.md +23 -0
- package/docs/reference/troubleshoot-web.md +66 -0
- package/docs/reference/troubleshooting.md +13 -337
- package/docs/understand/a-day.md +3 -1
- package/docs/understand/enforced-vs-asked.md +3 -1
- package/docs/understand/harness.md +2 -0
- package/docs/understand/machine-bob.md +17 -0
- package/docs/understand/machine-claude.md +35 -0
- package/docs/understand/machine-opencode.md +36 -0
- package/docs/understand/on-your-machine.md +12 -55
- package/docs/understand/take-it-out.md +13 -0
- package/docs/web-ui.md +35 -15
- package/harness.config.json +1 -1
- package/js/README.md +11 -3
- package/js/cli-table.json +27 -1
- package/js/hosts/mcp.mjs +1 -1
- package/js/hosts/native.mjs +43 -5
- package/js/inspect/checks-build.mjs +28 -0
- package/js/loop/catalog.mjs +12 -1
- package/js/loop/cli.mjs +28 -6
- package/js/loop/graph.mjs +18 -0
- package/js/loop/registry.mjs +196 -0
- package/js/loop/score.mjs +45 -6
- package/js/loop/state.mjs +125 -11
- package/js/maintain/setup.mjs +1 -1
- package/js/web/actions.mjs +25 -0
- package/js/web/api.mjs +13 -0
- package/js/web/docs.mjs +64 -12
- package/js/web/routes.mjs +5 -1
- package/package.json +1 -1
- package/src/agents/explorer.md +2 -2
- package/src/agents/researcher.md +3 -3
- package/src/bricks/README.md +3 -1
- package/src/bricks/adr-challenge.md +20 -0
- package/src/bricks/adr-draft.md +15 -0
- package/src/bricks/characterize.md +17 -0
- package/src/bricks/ci-fix.md +2 -1
- package/src/bricks/ci-triage.md +20 -0
- package/src/bricks/compat-check.md +16 -0
- package/src/bricks/done-check.md +16 -0
- package/src/bricks/fitness-define.md +22 -0
- package/src/bricks/flake-check.md +17 -0
- package/src/bricks/flake-repro.md +18 -0
- package/src/bricks/identify.md +6 -3
- package/src/bricks/migration-plan.md +21 -0
- package/src/bricks/mutation-check.md +18 -0
- package/src/bricks/plan.md +6 -6
- package/src/bricks/red-test.md +16 -0
- package/src/bricks/review.md +5 -3
- package/src/bricks/spec.md +18 -0
- package/src/bricks/upgrade-scout.md +16 -0
- package/src/loops/api-endpoint.json +31 -0
- package/src/loops/architecture-decision.json +22 -0
- package/src/loops/bugfix.json +1 -0
- package/src/loops/ci-repair.json +19 -0
- package/src/loops/deps-upgrade.json +29 -0
- package/src/loops/enforce-architecture-rule.json +28 -0
- package/src/loops/feature.json +8 -5
- package/src/loops/fix-flaky-tests.json +30 -0
- package/src/loops/legacy-refactor.json +26 -0
- package/src/loops/legacy-tests.json +29 -0
- package/src/loops/refactor.json +5 -1
- package/src/loops/remove-dead-code.json +30 -0
- package/src/loops/spec-first-feature.json +29 -0
- package/src/loops/tdd.json +25 -0
- package/src/loops/update-contract.json +33 -0
- package/src/skills/brick-forge.md +3 -1
- package/src/skills/bruno-collection-generator.md +3 -3
- package/src/skills/bruno-test-writer.md +3 -3
- package/src/skills/ci-fix.md +3 -3
- package/src/skills/consolidate-memory.md +4 -4
- package/src/skills/council.md +1 -1
- package/src/skills/fresh-eyes.md +1 -1
- package/src/skills/git-archaeology.md +1 -1
- package/src/skills/git-rescue.md +4 -3
- package/src/skills/handoff.md +1 -1
- package/src/skills/herdr.md +1 -1
- package/src/skills/learn-mode.md +2 -2
- package/src/skills/loop.md +22 -10
- package/src/skills/opencode-theme.md +3 -3
- package/src/skills/ponytail.md +1 -1
- package/src/skills/profile.md +3 -4
- package/src/skills/prose.md +2 -3
- package/src/skills/quiz.md +1 -1
- package/src/skills/react-view-transitions/SKILL.md +1 -1
- package/src/skills/react-view-transitions/VENDOR.md +8 -3
- package/src/skills/research.md +3 -3
- package/src/skills/review-response.md +2 -2
- package/src/skills/rule.md +3 -3
- package/src/skills/security-audit.md +4 -4
- package/src/skills/teach.md +1 -1
- package/src/skills/wiki.md +3 -3
- package/src/skills/workflow.md +4 -4
- package/src/skills/worktree.md +2 -2
- package/web/dist/assets/Activity-Ca2Aruu7.js +1 -0
- package/web/dist/assets/ActivityDetail-Bo7v4Z_r.js +1 -0
- package/web/dist/assets/Dashboard-BuMq46aT.js +2 -0
- package/web/dist/assets/Docs-BzccCllG.js +5 -0
- package/web/dist/assets/FilterInput-CBcJBQPI.js +1 -0
- package/web/dist/assets/GreenhouseView-BCIKcnGG.js +2 -0
- package/web/dist/assets/Installs-DMFJvq7s.js +2 -0
- package/web/dist/assets/JournalView-o1rmd1_1.js +1 -0
- package/web/dist/assets/Laws-BANxq_I_.js +3 -0
- package/web/dist/assets/Library-DW4x0fbh.js +1 -0
- package/web/dist/assets/Loops-DEBibbBP.js +2 -0
- package/web/dist/assets/{Markdown-qjM2_ofS.js → Markdown-CdTX0kLe.js} +14 -14
- package/web/dist/assets/OperatorHudView-CLD0fYaA.js +2 -0
- package/web/dist/assets/Personal-6uMJvyBG.js +1 -0
- package/web/dist/assets/Tabs-BubnyZhF.js +1 -0
- package/web/dist/assets/activity-CObqyxkL.js +1 -0
- package/web/dist/assets/{api-CyMRbU2x.js → api-D_ixdyEY.js} +1 -1
- package/web/dist/assets/drawable-C_x5xncq.js +1 -0
- package/web/dist/assets/index-CMPgezFm.js +2 -0
- package/web/dist/assets/index-DMsT4Aa6.css +1 -0
- package/web/dist/assets/{react-B9Z_tXRV.js → react-Bbzhmq4v.js} +1 -1
- package/web/dist/assets/rolldown-runtime-hePW80VL.js +1 -0
- package/web/dist/assets/sections-Dg23Hel5.js +1 -0
- package/web/dist/assets/usePoll-BOqeunzF.js +1 -0
- package/web/dist/index.html +6 -5
- package/web/dist/assets/Activity-GaaZWXTY.js +0 -1
- package/web/dist/assets/ActivityDetail-4t7d45Du.js +0 -1
- package/web/dist/assets/Dashboard-CYn7Tp16.js +0 -2
- package/web/dist/assets/Docs-BeFKLg2T.js +0 -5
- package/web/dist/assets/FilterInput-CVyqmYWM.js +0 -1
- package/web/dist/assets/GreenhouseView-C6ibc8IE.js +0 -2
- package/web/dist/assets/Installs-DRYjYnxs.js +0 -2
- package/web/dist/assets/JournalView-1HbU1mfg.js +0 -1
- package/web/dist/assets/Laws-DFoG8JWB.js +0 -3
- package/web/dist/assets/Library-DDjgNwz_.js +0 -1
- package/web/dist/assets/Loops-D9VEoO0F.js +0 -1
- package/web/dist/assets/OperatorHudView-Bs7paWmh.js +0 -2
- package/web/dist/assets/Personal-BY5n4gTw.js +0 -1
- package/web/dist/assets/Tabs-ho-EYD8i.js +0 -1
- package/web/dist/assets/drawable-CLS9drMb.js +0 -1
- package/web/dist/assets/index-CX_hXMi5.css +0 -1
- package/web/dist/assets/index-Cjr7XCA3.js +0 -2
- package/web/dist/assets/sections-GalMS0Zv.js +0 -1
- package/web/dist/assets/usePoll-O0sJEw1Y.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/space-grotesk-latin-400-normal-CJ-V5oYT.woff2)format("woff2")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/space-grotesk-latin-500-normal-lFbtlQH6.woff2)format("woff2")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/space-grotesk-latin-600-normal-DjKNqYRj.woff2)format("woff2")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/space-grotesk-latin-700-normal-RjhwGPKo.woff2)format("woff2")}@font-face{font-family:Hanken Grotesk;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/hanken-grotesk-latin-400-normal-BG6hkEXj.woff2)format("woff2")}@font-face{font-family:Hanken Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/hanken-grotesk-latin-500-normal-DrDcrrxK.woff2)format("woff2")}@font-face{font-family:Hanken Grotesk;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/hanken-grotesk-latin-600-normal-CIXX6EOa.woff2)format("woff2")}@font-face{font-family:Hanken Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/hanken-grotesk-latin-700-normal-CeQ8H3UY.woff2)format("woff2")}@font-face{font-family:Hanken Grotesk;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/hanken-grotesk-latin-400-italic-Bserb8X5.woff2)format("woff2")}@font-face{font-family:Hanken Grotesk;font-style:italic;font-display:swap;font-weight:500;src:url(/assets/hanken-grotesk-latin-500-italic-BGfwwhek.woff2)format("woff2")}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/geist-mono-latin-400-normal-DTRLJnHl.woff2)format("woff2")}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/geist-mono-latin-500-normal-YINYabwD.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-latin-500-normal-BWZEU5yA.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/jetbrains-mono-latin-600-normal-C8RAYTDA.woff2)format("woff2")}@font-face{font-family:Space Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/space-mono-latin-400-normal-Rg4St2Dn.woff2)format("woff2")}@font-face{font-family:Space Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/space-mono-latin-700-normal-mWgeinG7.woff2)format("woff2")}@font-face{font-family:Space Mono;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/space-mono-latin-400-italic-YylcN9Ay.woff2)format("woff2")}@font-face{font-family:Space Mono;font-style:italic;font-display:swap;font-weight:700;src:url(/assets/space-mono-latin-700-italic-vNvENeTh.woff2)format("woff2")}:root{--bg:#08090b;--bg-2:#0c0e11;--surface:#101317;--surface-2:#14181d;--surface-3:#1b2026;--line:#2c333b;--line-2:#3a434d;--line-3:#4c5762;--text:#eaeef2;--text-2:#9aa6b2;--text-3:#727f8e;--accent:#3ad4c4;--accent-2:#2ba89b;--accent-ink:#04100d;--accent-soft:color-mix(in srgb, var(--accent) 13%, transparent);--accent-line:color-mix(in srgb, var(--accent) 34%, transparent);--good:#4ed888;--warn:#e8b53d;--bad:#ff5c57;--r-xs:4px;--r-sm:7px;--r-md:11px;--r-lg:16px;--r-xl:22px;--rail-w:248px;--topbar-h:64px;--shadow-pop:0 18px 50px -12px #000000b3, 0 2px 0 #ffffff05 inset;--shadow-card:0 1px 0 #ffffff05 inset, 0 14px 40px -28px #000000e6;--font-display:"Hanken Grotesk", system-ui, sans-serif;--font-ui:"Hanken Grotesk", system-ui, sans-serif;--font-mono:"Geist Mono", ui-monospace, monospace}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-size:14px;line-height:1.55}#root{height:100%}::selection{background:var(--accent-soft);color:var(--text)}a{color:var(--accent-text,var(--accent));text-decoration:none}button{font-family:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-xs)}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:100;border:1px solid var(--accent);background:var(--surface);color:var(--text);border-radius:10px;padding:10px 16px;font-size:13px;text-decoration:none;position:fixed;top:8px;left:-999px}.skip-link:focus{left:8px}.atmos{pointer-events:none;z-index:0;background:radial-gradient(900px 520px at 78% -8%, var(--accent-soft), transparent 60%), radial-gradient(700px 600px at -6% 102%, color-mix(in srgb, var(--accent) 5%, transparent), transparent 60%);opacity:.9;position:fixed;inset:0}.atmos:after{content:"";opacity:.025;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.4'/%3E%3C/svg%3E");position:absolute;inset:0}.app{z-index:1;color:var(--text);background:var(--bg);grid-template-columns:var(--rail-w) 1fr;scrollbar-color:var(--line-2) transparent;min-height:100%;display:grid;position:relative}.app,.app *{scrollbar-width:thin}.app ::-webkit-scrollbar{width:9px;height:9px}.app ::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:999px}.app ::-webkit-scrollbar-thumb:hover{background:var(--line-3)}.app ::-webkit-scrollbar-track{background:0 0}.app ::-webkit-scrollbar-corner{background:0 0}.col{flex-direction:column;min-width:0;min-height:100vh;display:flex}.topbar{z-index:6;height:var(--topbar-h);border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--bg) 78%, transparent);-webkit-backdrop-filter:blur(14px)saturate(140%);backdrop-filter:blur(14px)saturate(140%);align-items:center;gap:16px;padding:0 26px;display:flex;position:sticky;top:0}.topbar-spacer{flex:1}.tb-search{position:relative}.tb-search input{background:var(--surface);width:240px;color:var(--text);border:1px solid var(--line);border-radius:var(--r-sm);font-family:var(--font-ui);padding:8px 12px 8px 32px;font-size:13px;transition:border-color .14s}.tb-search input:focus{border-color:var(--accent-line);outline:none}.tb-search .mag{width:14px;height:14px;color:var(--text-3);position:absolute;top:50%;left:11px;transform:translateY(-50%)}.kbd{font-family:var(--font-mono);color:var(--text-3);border:1px solid var(--line-2);border-radius:4px;padding:1px 5px;font-size:10px;position:absolute;top:50%;right:9px;transform:translateY(-50%)}.spotlight{z-index:12;background:var(--surface);width:380px;max-height:60vh;color:var(--text);border:1px solid var(--line);border-radius:var(--r-sm);padding:6px 0;position:absolute;top:calc(100% + 6px);right:0;overflow-y:auto;box-shadow:0 14px 40px #00000052}.spot-empty{color:var(--text-3);padding:14px 16px;font-size:12.5px}.spot-group+.spot-group{border-top:1px solid var(--line-2);margin-top:4px;padding-top:4px}.spot-group-head{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-3);padding:6px 14px 4px;font-size:10px}.spot-row{cursor:pointer;padding:7px 14px}.spot-row.on{background:color-mix(in srgb, var(--accent) 16%, transparent)}.spot-title{color:var(--text);font-size:13px}.spot-desc{color:var(--text-3);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:11.5px;overflow:hidden}.page{flex:1;padding:30px 34px 120px;overflow:auto}.page.center{width:100%;max-width:1180px;margin:0 auto}.pad{max-width:1180px;margin:0 auto}.eyebrow{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--text-3);align-items:center;gap:8px;font-size:10px;display:inline-flex}.eyebrow:before{content:"";background:var(--accent);border-radius:2px;width:14px;height:2px}h1.h{font-family:var(--font-display);letter-spacing:-.02em;margin:10px 0 4px;font-size:27px;font-weight:600}h2.h{font-family:var(--font-display);letter-spacing:-.01em;margin:0;font-size:19px;font-weight:600}.sub{color:var(--text-2);max-width:70ch;margin:0;font-size:14px}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.muted{color:var(--text-2)}.dim{color:var(--text-3)}svg.glyph{flex:none;width:16px;height:16px}.card{background:linear-gradient(180deg, var(--surface), var(--surface-2));border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-card)}.card.pad-lg{padding:22px 24px}.card.pad-md{padding:18px 20px}.act-card{color:inherit;text-decoration:none;transition:border-color .15s,transform .12s;display:block}.act-card:hover{border-color:var(--line-2);transform:translateY(-1px)}.act-chev{color:var(--text-3);transition:color .14s,transform .14s}.act-card:hover .act-chev{color:var(--text);transform:translate(2px)}.card-head{align-items:center;gap:12px;margin-bottom:16px;display:flex}.card-head h3{font-family:var(--font-display);letter-spacing:-.01em;margin:0;font-size:16.5px;font-weight:600}.card-head .right{align-items:center;gap:8px;margin-left:auto;display:flex}.tick{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-3);font-size:10px}.metric{font-family:var(--font-display);font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-weight:500;line-height:1}.badge{font-family:var(--font-mono);letter-spacing:.02em;border:1px solid var(--line-2);color:var(--text-2);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:3px 9px;font-size:11px;display:inline-flex}.badge .dot{background:currentColor;border-radius:50%;width:6px;height:6px}.badge.ok{color:var(--good);border-color:color-mix(in srgb, var(--good) 36%, transparent);background:color-mix(in srgb, var(--good) 9%, transparent)}.badge.warn{color:var(--warn);border-color:color-mix(in srgb, var(--warn) 36%, transparent);background:color-mix(in srgb, var(--warn) 9%, transparent)}.badge.bad{color:var(--bad);border-color:color-mix(in srgb, var(--bad) 36%, transparent);background:color-mix(in srgb, var(--bad) 9%, transparent)}.badge.acc{color:var(--accent);border-color:var(--accent-line);background:var(--accent-soft)}.btn{cursor:pointer;white-space:nowrap;font-family:var(--font-ui);border-radius:var(--r-sm);background:var(--accent);color:var(--accent-ink);border:1px solid #0000;align-items:center;gap:8px;padding:9px 15px;font-size:13px;font-weight:600;transition:filter .14s,transform 80ms;display:inline-flex}.btn:hover{filter:brightness(1.08)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:default;filter:none}.btn.ghost{color:var(--text);border-color:var(--line-2);background:0 0}.btn.ghost:hover{border-color:var(--accent-line);background:var(--surface);filter:none}.btn.soft{background:var(--accent-soft);color:var(--accent);border-color:var(--accent-line)}.btn.soft:hover{background:color-mix(in srgb, var(--accent) 18%, transparent);filter:none}.btn.sm{padding:5px 10px;font-size:12px}.stale-banner{color:var(--warn);border:1px solid color-mix(in srgb, var(--warn) 36%, transparent);background:color-mix(in srgb, var(--warn) 10%, transparent);border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;padding:10px 14px;display:flex}.btn .glyph{width:15px;height:15px}.fl-matrix .btn:not(.ghost):not(.soft):not(.btn-grid):disabled{box-shadow:none;background-image:none}.seg{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);gap:2px;padding:3px;display:inline-flex}.seg button{cursor:pointer;color:var(--text-2);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;background:0 0;border:0;border-radius:5px;padding:6px 13px;font-size:11px;transition:color .14s,background .14s}.seg button:hover{color:var(--text)}.seg button.on{color:var(--accent-ink);background:var(--accent)}.kv{border-bottom:1px solid var(--line);grid-template-columns:168px 1fr;align-items:baseline;gap:16px;padding:11px 0;font-size:13.5px;display:grid}.kv:last-child{border-bottom:0}.kv .k{color:var(--text-3);font-family:var(--font-mono);letter-spacing:.04em;font-size:11.5px}.kv .v{color:var(--text);word-break:break-word}.hr{background:var(--line);border:0;height:1px;margin:22px 0}code{font-family:var(--font-mono);background:var(--surface-3);border:1px solid var(--line);border-radius:var(--r-xs);color:var(--text);padding:1px 6px;font-size:.92em}.sel{background:var(--surface);color:var(--text);border:1px solid var(--line-2);border-radius:var(--r-sm);font-family:var(--font-mono);cursor:pointer;min-width:180px;padding:9px 12px;font-size:12.5px}.sel:focus{border-color:var(--accent-line);outline:none}.sel option{background:var(--surface-2)}.grid{gap:16px;display:grid}.row{align-items:center;gap:12px;display:flex}.wrap{flex-wrap:wrap}.between{justify-content:space-between}.stack{flex-direction:column;display:flex}.grid.split-status{grid-template-columns:1.55fr 1fr;align-items:start}.grid.split-operator{grid-template-columns:1.6fr 1fr;align-items:start}.grid.split-even{grid-template-columns:1fr 1fr;align-items:start}.head-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:24px;display:flex}.hero{grid-template-columns:232px 1fr;align-items:center;gap:28px;display:grid}.ring-wrap{width:232px;height:232px;position:relative}.ring-wrap svg{width:100%;height:100%;transform:rotate(-90deg)}.ring-center{text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.ring-center .pct{font-family:var(--font-display);letter-spacing:-.03em;font-size:44px;font-weight:600;line-height:1}.ring-center .lbl{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--text-3);margin-top:6px;font-size:9.5px}.hero-facts{flex-direction:column;gap:4px;display:flex}.hero-facts .ttl{font-family:var(--font-display);letter-spacing:-.02em;font-size:25px;font-weight:600}.hero-chips{flex-wrap:wrap;gap:8px;margin:14px 0 18px;display:flex}.chip{border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);font-family:var(--font-mono);align-items:center;gap:8px;padding:7px 12px;font-size:12px;display:inline-flex}.chip .ck{color:var(--text-3)}.chip .cv{color:var(--text)}.kpiband{flex-wrap:wrap;align-items:center;gap:30px;padding:16px 22px;display:flex}.kseg{cursor:pointer;font:inherit;color:inherit;background:0 0;border:0;align-items:baseline;gap:9px;padding:0;text-decoration:none;display:flex}.kseg-n{font-family:var(--font-display);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:27px;font-weight:500;line-height:1}.kseg-n.zero{color:var(--text-3)}.kseg-l{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-3);font-size:10px}.kseg:hover .kseg-l{color:var(--accent)}.kseg-spacer{flex:1}.kseg.hot .kseg-n{color:var(--good)}.delta{font-family:var(--font-mono);font-size:11.5px}.delta.up{color:var(--good)}.genome{grid-template-columns:repeat(auto-fill,minmax(216px,1fr));gap:14px;display:grid}.gcell{cursor:pointer;background:var(--bg-2);box-shadow:none;border-radius:var(--r-md);padding:18px;transition:border-color .15s,transform .15s,background .15s;position:relative;overflow:hidden}.gcell:hover{border-color:var(--accent-line);background:var(--surface-2);transform:translateY(-2px)}.gcell .gtop{justify-content:space-between;align-items:center;display:flex}.gcell .gname{font-family:var(--font-display);font-size:15px;font-weight:600}.gcell .gcount{font-family:var(--font-display);letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin:14px 0 4px;font-size:34px;font-weight:500;line-height:1}.gcell .gcount.zero{color:var(--text-3)}.gcell .gdesc{color:var(--text-2);font-size:12.5px}.gcell .gicon{width:20px;height:20px;color:var(--text-3)}.gcell:hover .gicon{color:var(--accent)}.feed{flex-direction:column;display:flex}.feed-row{border-bottom:1px solid var(--line);grid-template-columns:14px 1fr auto;align-items:center;gap:12px;padding:11px 0;display:grid}.feed-row:last-child{border-bottom:0}.feed-dot{background:var(--text-3);border-radius:50%;width:8px;height:8px}.feed-dot.ok{background:var(--good)}.feed-dot.acc{background:var(--accent)}.feed-dot.warn{background:var(--warn)}.feed-dot.bad{background:var(--bad)}.feed-txt{font-size:13px}.feed-txt b{font-weight:600}.feed-when{font-family:var(--font-mono);color:var(--text-3);font-size:11px}.tbl{border-collapse:collapse;width:100%}.tbl th{text-align:left;font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-3);border-bottom:1px solid var(--line);padding:0 14px 11px;font-size:10px;font-weight:500}.tbl td{border-bottom:1px solid var(--line);vertical-align:middle;padding:12px 14px;font-size:13.5px}.tbl tr:last-child td{border-bottom:0}.tbl tbody tr{transition:background .1s}.tbl tbody tr:hover{background:var(--surface-2)}.tbl .num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;text-align:right}.tbl .name{font-weight:600}.tbl .clickable{cursor:pointer;position:relative}.stretch-link:after{content:"";position:absolute;inset:0}.strand{border-bottom:1px solid var(--line);cursor:pointer;justify-content:space-between;align-items:center;padding:13px 0;display:flex;position:relative}.strand .strand-name{align-items:center;gap:12px;min-width:150px;font-weight:600;display:flex}.strand .strand-link{color:inherit;text-decoration:none}.strand .strand-link:hover{text-decoration:underline}.strand .strand-dot{background:var(--accent);border-radius:50%;flex:none;width:7px;height:7px}.strand .hbar{flex:1;margin:0 16px}.strand .strand-val{font-family:var(--font-mono);text-align:right;width:34px;font-size:14px}.lineage-track{padding-left:26px;position:relative}.lineage-track .spine{background:linear-gradient(var(--accent), var(--line-2));width:2px;position:absolute;top:6px;bottom:18px;left:7px}.lineage-step{position:relative}.lineage-step:not(:last-child){margin-bottom:22px}.lineage-step .node{border:2px solid var(--bg);background:var(--surface-3);border-radius:50%;width:14px;height:14px;position:absolute;top:3px;left:-26px}.lineage-step .node.on{background:var(--accent);box-shadow:0 0 10px var(--accent)}.lineage-step .lt{font-family:var(--font-display);font-size:15px;font-weight:600}.lineage-step .ld{color:var(--text-2);font-size:13px}.lineage-step .ltag{font-family:var(--font-mono);color:var(--text-3);margin-top:2px;font-size:11px}.lib{grid-template-columns:300px 1fr;align-items:start;gap:20px;display:grid}.lib-head{border-bottom:1px solid var(--line);align-items:baseline;gap:8px;padding:13px 16px;display:flex}.lib-head-label{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-2);font-size:11px}.lib-head-count{font-family:var(--font-mono);color:var(--text-3);font-variant-numeric:tabular-nums;font-size:11px}.lib-filter{box-sizing:border-box;background:var(--surface);width:100%;color:var(--text);border:0;border-bottom:1px solid var(--line);font-family:var(--font-mono);padding:10px 16px;font-size:12px}.lib-filter:focus{border-bottom-color:var(--accent-line);outline:none}.lib-filter::placeholder{color:var(--text-3)}.lib-more{font-family:var(--font-mono);color:var(--text-3);border-bottom:1px solid var(--line);padding:12px 16px;font-size:11px}.lib-rows{max-height:calc(100vh - 280px);overflow:auto}.lib-row{text-align:left;border:0;border-bottom:1px solid var(--line);cursor:pointer;width:100%;font:inherit;color:var(--text);background:0 0;padding:12px 16px;transition:background .1s;display:block}.lib-row:hover{background:var(--surface-2)}.lib-row.on{background:var(--accent-soft)}.lib-row.on .lr-name{color:var(--accent)}.lib-row .lr-name{align-items:center;gap:8px;font-size:13.5px;font-weight:600;display:flex}.lib-row .lr-name .mono{color:var(--text-3);font-size:11px}.lib-row .lr-desc{color:var(--text-2);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:12px;overflow:hidden}.lib-group{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-3);background:var(--surface-2);border-bottom:1px solid var(--line);padding:10px 16px 4px;font-size:10px}.lib-group .cdot{background:var(--cc,var(--text-3));vertical-align:1px;border-radius:50%;width:7px;height:7px;margin-right:8px;display:inline-block}.mf-doc{flex-direction:column;gap:18px;display:flex}.mf-vault{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-2);padding:14px 16px}.mf-vault-head{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.mf-vault-name{font-family:var(--font-display);font-size:15px;font-weight:600}.mf-vault-path{color:var(--text-3);font-size:11.5px}.mf-vault-desc{color:var(--text-2);margin:4px 0 10px;font-size:13px}.mf-roles{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.mf-role{border-radius:var(--r-sm);background:var(--bg-2);color:var(--text-2);align-items:center;gap:5px;padding:3px 8px;font-size:11.5px;display:inline-flex}.mf-role .glyph{width:13px;height:13px}.mf-role-danger{color:var(--bad);background:color-mix(in srgb, var(--bad) 12%, transparent)}.mf-entries{border-collapse:collapse;width:100%;font-size:12.5px}.mf-entries td{border-top:1px solid var(--line);vertical-align:top;padding:7px 0}.mf-entries tr:first-child td{border-top:0}.mf-path{width:42%;color:var(--text)}.mf-struck{color:var(--text-3);text-decoration:line-through}.mf-load-cell{white-space:nowrap;width:74px}.mf-edesc{color:var(--text-2)}.mf-load{font-family:var(--font-mono);letter-spacing:.04em;border:1px solid color-mix(in srgb, currentColor 36%, transparent);border-radius:999px;padding:2px 8px;font-size:10px;display:inline-block}.mf-load-ok{color:var(--good)}.mf-load-warn{color:var(--warn)}.mf-load-muted{color:var(--text-3)}.mf-empty{color:var(--text-2)}.mf-empty-title{font-family:var(--font-display);color:var(--text);margin-bottom:6px;font-size:15px;font-weight:600}.mf-empty p{margin:0 0 12px;font-size:13px}.mf-raw{margin-top:16px}.mf-raw-toggle{cursor:pointer;font:inherit;color:var(--text-3);background:0 0;border:0;align-items:center;gap:6px;padding:4px 0;font-size:12px;display:inline-flex}.mf-raw-toggle:hover{color:var(--text)}.mf-caret{width:13px;height:13px;transition:transform .12s}.mf-caret.on{transform:rotate(90deg)}.mf-raw-pre{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-md);font-family:var(--font-mono);color:var(--text-2);margin-top:8px;padding:14px 16px;font-size:12px;overflow:auto}.detail-doc{padding:28px 32px}.detail-doc h1{font-family:var(--font-display);letter-spacing:-.02em;margin:0 0 4px;font-size:24px;font-weight:600}.detail-doc .doc-meta{flex-wrap:wrap;gap:8px;margin:12px 0 22px;display:flex}.detail-doc h2{font-family:var(--font-display);margin:26px 0 8px;font-size:16px;font-weight:600}.detail-doc p{color:var(--text);margin:0 0 12px}.detail-doc ul{color:var(--text);margin:0 0 14px;padding-left:20px}.detail-doc li{margin:4px 0}.detail-doc pre{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-md);font-family:var(--font-mono);color:var(--text-2);padding:14px 16px;font-size:12.5px;overflow:auto}.check{padding:16px 20px;transition:border-color .15s}.check.bad{border-color:color-mix(in srgb, var(--bad) 34%, var(--line))}.check-head{cursor:pointer;width:100%;color:inherit;font:inherit;text-align:left;background:0 0;border:0;align-items:center;gap:12px;display:flex}.check-head:disabled{cursor:default}.check-head:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;border-radius:4px}.check-head h3{font-family:var(--font-display);margin:0;font-size:14.5px;font-weight:600}.check-head .chev{color:var(--text-3);margin-left:auto;transition:transform .15s}.check.open .check-head .chev{transform:rotate(90deg)}.check-body{border-top:1px solid var(--line);flex-direction:column;gap:8px;margin:14px 0 0;padding:14px 0 0;display:flex}.problem{color:var(--text-2);font-size:13px;font-family:var(--font-mono);grid-template-columns:16px 1fr;gap:10px;display:grid}.problem .x{color:var(--bad)}.diff-file{overflow:hidden}.diff-head{cursor:pointer;border-bottom:1px solid #0000;align-items:center;gap:12px;padding:13px 18px;display:flex}.diff-file.open .diff-head{border-bottom-color:var(--line)}.diff-head .chk{width:16px;height:16px;accent-color:var(--accent)}.diff-head .fname{font-family:var(--font-mono);font-size:13px;font-weight:500}.diff-body{font-family:var(--font-mono);padding:6px 0;font-size:12.5px;line-height:1.7;overflow:auto}.diff-line{white-space:pre;padding:0 18px}.diff-line.add{background:color-mix(in srgb, var(--good) 9%, transparent);color:var(--good)}.diff-line.del{background:color-mix(in srgb, var(--bad) 9%, transparent);color:var(--bad)}.diff-line.ctx{color:var(--text-3)}.diff-line.hunk{color:var(--accent);background:var(--accent-soft)}.mcp-target{border:1px solid var(--line);border-radius:var(--r-md);margin-bottom:14px;overflow:hidden}.mcp-target .mt-head{background:var(--bg-2);font-family:var(--font-mono);color:var(--text-2);align-items:center;gap:8px;padding:11px 16px;font-size:11.5px;display:flex}.mcp-row{border-top:1px solid var(--line);align-items:center;gap:14px;padding:13px 16px;display:flex}.sw-toggle{background:var(--surface-3);border:1px solid var(--line-2);cursor:pointer;appearance:none;border-radius:999px;flex:none;width:38px;height:22px;margin:0;padding:0;transition:background .15s;position:relative}.sw-toggle:after{content:"";background:var(--text-2);border-radius:50%;width:16px;height:16px;transition:transform .15s,background .15s;position:absolute;top:2px;left:2px}.sw-toggle.on{background:var(--accent-soft);border-color:var(--accent-line)}.sw-toggle.on:after{background:var(--accent);transform:translate(16px)}.console{left:var(--rail-w);z-index:20;background:linear-gradient(180deg, var(--surface), var(--bg-2));border-top:1px solid var(--line-2);flex-direction:column;transition:transform .18s cubic-bezier(.22,1,.36,1);display:flex;position:fixed;bottom:0;right:0;box-shadow:0 -16px 40px -20px #000c}@media (width<=720px){.console{left:0}}.console-head{cursor:pointer;-webkit-user-select:none;user-select:none;flex:none;align-items:center;gap:12px;height:42px;padding:0 18px;display:flex}.console-head .ttl{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-2);align-items:center;gap:9px;font-size:11px;display:flex}.console-head .ttl .live{background:var(--text-3);border-radius:50%;width:7px;height:7px}.console-head .ttl .live.on{background:var(--warn);animation:1.1s infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}.console-head .count{font-family:var(--font-mono);color:var(--text-3);border:1px solid var(--line-2);border-radius:999px;padding:0 7px;font-size:11px}.console-head .right{align-items:center;gap:6px;margin-left:auto;display:flex}.console-body{font-family:var(--font-mono);flex:1;padding:8px 18px 16px;font-size:12px;line-height:1.6;overflow:auto}.console-empty{color:var(--text-3);padding:14px 0;font-style:italic}.run{margin-bottom:12px}.run-head{align-items:center;gap:9px;display:flex}.run-head .pr{color:var(--accent);font-weight:600}.run-head .act{color:var(--text)}.run-head .st{margin-left:auto;font-size:11px}.run-head .st.running{color:var(--warn)}.run-head .st.done{color:var(--good)}.run-head .st.failed{color:var(--bad)}.run-out{white-space:pre-wrap;color:var(--text-2);border-left:2px solid var(--line-2);margin:5px 0 0;padding-left:12px}.iconbtn{border-radius:var(--r-sm);cursor:pointer;width:28px;height:28px;color:var(--text-2);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:inline-flex}.iconbtn:hover{background:var(--surface-3);color:var(--text)}.iconbtn .glyph{width:16px;height:16px}.pop{z-index:30;background:var(--surface-2);border:1px solid var(--line-2);border-radius:var(--r-md);width:204px;box-shadow:var(--shadow-pop);max-height:60vh;padding:8px;position:fixed;bottom:72px;left:14px;overflow:auto}.pop-item{border-radius:var(--r-sm);cursor:pointer;width:100%;color:inherit;text-align:left;background:0 0;border:0;align-items:center;gap:10px;padding:8px 10px;font-family:inherit;font-size:13px;display:flex}.pop-item:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.pop-item:hover{background:var(--surface-3)}.pop-item .po{border-radius:50%;flex:none;width:11px;height:11px}.pop-item .pn{text-transform:capitalize;font-weight:500}.pop-item.on{background:var(--accent-soft)}.pop-item.on .pn{color:var(--accent)}@keyframes rise{0%{transform:translateY(9px)}to{transform:none}}.rise{animation:.5s cubic-bezier(.2,.7,.2,1) both rise;animation-delay:calc(var(--i,0) * 50ms)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.empty{text-align:center;color:var(--text-3);padding:60px 20px}.empty .big{font-family:var(--font-display);color:var(--text-2);margin-bottom:6px;font-size:18px}@media (width<=1180px){.hero,.lib{grid-template-columns:1fr}}.app.light{--bg:#e7eaee;--bg-2:#dde2e7;--surface:#f4f6f8;--surface-2:#ebeef1;--surface-3:#e0e5ea;--line:#c2cbd3;--line-2:#a7b2bc;--line-3:#8593a0;--text:#11161b;--text-2:#3c4750;--text-3:#5a6772;--good:#1f9657;--warn:#b07914;--bad:#d23a37;--shadow-card:0 1px 2px #1f2a210a, 0 14px 36px -28px #1f2a2166;--shadow-pop:0 18px 50px -16px #1f2a2147;--shadow-modal:0 24px 60px -18px #1f2a214d}.app.light .atmos{background:radial-gradient(900px 520px at 80% -10%, var(--accent-soft), transparent 62%), radial-gradient(700px 600px at -6% 102%, color-mix(in srgb, var(--accent) 7%, transparent), transparent 60%);opacity:.7}.app.light .atmos:after{opacity:.015}.app.light .rail{background:linear-gradient(#fbfdfa,#f3f6f2)}.app.light .topbar{background:color-mix(in srgb, var(--bg) 82%, transparent)}.app.light .card{background:linear-gradient(180deg, #fbfdfc, var(--surface-2))}.app.light .sprout{filter:none}.app.light .console{background:linear-gradient(180deg, var(--surface), var(--bg-2))}.app.light .kbd{color:var(--text-3)}.app.light .diff-line.add{background:color-mix(in srgb, var(--good) 13%, transparent)}.app.light .diff-line.del{background:color-mix(in srgb, var(--bad) 13%, transparent)}.app.light .sel option{background:#fbfdfc}.voice-readout{font-family:var(--font-mono);color:var(--text-2);background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-sm);align-items:center;gap:10px;max-width:64ch;margin:4px 0 16px;padding:9px 13px;font-size:12.5px;display:flex}.voice-readout .vr-cur{color:var(--accent);flex:none;font-weight:600}.voice-readout .vr-txt{color:var(--text);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.toast{z-index:40;background:var(--surface-2);border:1px solid var(--line-2);border-radius:var(--r-md);max-width:380px;box-shadow:var(--shadow-pop);padding:14px 16px;font-size:13px;transition:opacity .22s cubic-bezier(.22,1,.36,1),transform .22s cubic-bezier(.22,1,.36,1);position:fixed;bottom:56px;right:18px}@starting-style{.toast{opacity:0;transform:translateY(10px)}}.toast.err{border-color:color-mix(in srgb, var(--bad) 45%, var(--line-2))}.toast.info{border-color:color-mix(in srgb, var(--accent) 45%, var(--line-2))}.run-cancel{margin-left:8px}.detail-doc .markdown h1,.detail-doc .markdown h2,.detail-doc .markdown h3{font-family:var(--font-display);letter-spacing:-.01em;font-weight:600}.detail-doc .markdown h1{margin:22px 0 8px;font-size:20px}.detail-doc .markdown h2{margin:22px 0 8px;font-size:16px}.detail-doc .markdown h3{margin:18px 0 6px;font-size:14px}.detail-doc .markdown p{color:var(--text);margin:0 0 12px}.detail-doc .markdown ul,.detail-doc .markdown ol{margin:0 0 14px;padding-left:20px}.detail-doc .markdown li{margin:4px 0}.detail-doc .markdown a{color:var(--accent);border-bottom:1px dashed var(--accent-line)}.detail-doc .markdown pre{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-md);font-family:var(--font-mono);color:var(--text-2);padding:14px 16px;font-size:12.5px;overflow:auto}.detail-doc .markdown pre code{background:0 0;border:0;padding:0}.detail-doc .markdown blockquote{border-left:2px solid var(--line-2);color:var(--text-2);margin:0 0 12px;padding:2px 14px}.detail-doc .markdown table{border-collapse:collapse;margin:0 0 14px}.detail-doc .markdown th,.detail-doc .markdown td{border:1px solid var(--line);padding:6px 10px;font-size:13px}.loading{color:var(--text-3);font-family:var(--font-mono);padding:40px 0;font-size:12.5px}.skel{gap:10px;max-width:560px;margin-top:16px;display:grid}.skel-bar{border-radius:var(--r-sm);background:linear-gradient(90deg, var(--surface-2) 25%, var(--surface-3) 50%, var(--surface-2) 75%);background-size:200% 100%;height:13px;animation:1.3s linear infinite skel-shimmer}.skel-bar:nth-child(2){width:72%}.skel-bar:nth-child(3){width:46%}@keyframes skel-shimmer{0%{background-position:200% 0}to{background-position:0 0}}dialog.confirm{background:var(--surface);color:var(--text);border:1px solid var(--line-2);border-radius:var(--r-lg);box-shadow:var(--shadow-pop);max-width:400px;padding:20px 22px}dialog.confirm::backdrop{background:#0000008c}dialog.confirm[open]{transition:opacity .2s cubic-bezier(.22,1,.36,1),transform .2s cubic-bezier(.22,1,.36,1)}dialog.confirm[open]::backdrop{transition:opacity .2s ease-out}@starting-style{dialog.confirm[open]{opacity:0;transform:scale(.96)translateY(6px)}dialog.confirm[open]::backdrop{opacity:0}}.confirm-title{font-family:var(--font-display);margin:0 0 8px;font-size:17px;font-weight:600}.confirm-body{color:var(--text-2);white-space:pre-line;font-size:13px;line-height:1.5}.confirm-actions{justify-content:flex-end;gap:8px;margin-top:18px;display:flex}.law-toolbar .law-filter{border:1px solid var(--line);border-radius:var(--r-sm);max-width:200px;margin:0;padding:8px 12px}.law-toolbar .law-filter:focus{border-color:var(--accent-line)}.mb-14{margin-bottom:14px}.mb-16{margin-bottom:16px}.mb-18{margin-bottom:18px}.gap-8{gap:8px}.gap-10{gap:10px}.gap-12{gap:12px}.gap-16{gap:16px}.narrow{max-width:820px}.narrow-lg{max-width:860px}.docs-wrap{container:docs/inline-size}.library.docs-lib{overflow:clip}.docs-lib .lib-kinds .seg{grid-template-columns:1fr 1fr;margin:0 8px;display:grid}.docs-lib .lib-kinds .seg button{white-space:nowrap;padding:6px 8px}.docs-lib .lib-list-head .track-prog{margin:10px 0 0}.docs-read-mark{color:var(--good);font-size:12px}.docs-crumbs{color:var(--text-3);flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;display:flex}.docs-crumbs a{color:var(--text-2)}.docs-crumbs a:hover{color:var(--accent)}.docs-crumbs [aria-current]{color:var(--text)}.docs-read{grid-template-columns:minmax(0,1fr);align-items:start;gap:28px;display:grid}.docs-toc{border:1px solid var(--line-2);background:var(--surface);border-radius:10px;margin:6px 0 22px;padding:12px 16px}.docs-toc-head{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-3);margin-bottom:6px;font-size:10.5px}.docs-toc ul{margin:0;padding:0;list-style:none}.docs-toc li{padding:2px 0}.docs-toc li.lvl-3{padding-left:14px}.docs-toc a{color:var(--text-2);font-size:13px;text-decoration:none}.docs-toc a:hover{color:var(--accent)}.markdown .docs-here{background:var(--accent-soft);border:1px solid var(--accent-line);border-radius:8px;padding:6px 10px}.docs-article{min-width:0}.docs-margin{order:-1;gap:16px;display:grid;position:static;top:16px}.docs-margin .docs-toc{margin:0}.docs-gloss{gap:8px;display:none}.docs-gloss-card{border:1px solid var(--line);background:var(--surface);border-radius:var(--r-sm);padding:10px 12px}.docs-gloss-card b{font-family:var(--font-mono);color:var(--accent);font-size:12px}.docs-gloss-card p{color:var(--text-2);margin:4px 0 0;font-size:12.5px;line-height:1.45}@container docs (width>=1422px){.library.docs-lib{grid-template-columns:232px minmax(0,280px) minmax(0,1fr)}.docs-read{grid-template-columns:minmax(0,1fr) 210px}.docs-margin{order:0;position:sticky}.docs-gloss{display:grid}}@container docs (width>=869px) and (width<=1421.98px){.library.docs-lib{grid-template-rows:auto 1fr;grid-template-columns:280px minmax(0,1fr)}.docs-lib .lib-kinds{border-bottom:1px solid var(--line);grid-area:1/1}.docs-lib .lib-list{grid-area:2/1}.docs-lib .lib-reader{grid-area:1/2/3/3;padding:28px}}.track-prog{background:var(--surface-3);border-radius:99px;height:3px;overflow:hidden}.track-prog i{background:var(--accent);height:100%;transition:width .3s cubic-bezier(.22,1,.36,1);display:block}.track-bar{border-top:1px solid var(--line);justify-content:space-between;gap:10px;margin-top:28px;padding-top:16px;display:flex}.detail-doc .markdown blockquote.analogy{border:1px solid var(--accent-line);background:var(--accent-soft);border-radius:var(--r-md);color:var(--text);padding:10px 14px}.detail-doc .markdown blockquote.analogy strong:first-child{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:4px;font-size:10.5px;display:block}.docs-map{grid-template-columns:minmax(0,1fr) 280px;align-items:start;gap:16px;margin-top:18px;display:grid}.map-tree{border:1px solid var(--line);border-radius:var(--r-md);margin:0;padding:0;list-style:none;overflow:hidden}.map-tree li+li{border-top:1px solid var(--line)}.map-node{text-align:left;cursor:pointer;width:100%;font:inherit;color:var(--text);background:0 0;border:0;grid-template-columns:minmax(0,1fr) auto 120px;align-items:center;gap:12px;padding:10px 14px;font-size:13px;display:grid}.map-node:hover{background:var(--surface-2)}.map-node.on{background:var(--accent-soft)}.map-cost{text-align:right;font-size:11.5px}.map-detail{position:sticky;top:16px}.map-detail dl{margin:12px 0 0;font-size:13px}.map-detail dt{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-3);margin-top:10px;font-size:10.5px}.map-detail dd{color:var(--text);margin:3px 0 0}@media (width<=1180px){.docs-map{grid-template-columns:1fr}.map-detail{position:static}}@media (width<=720px){.map-node{grid-template-columns:minmax(0,1fr) auto}.map-cost{display:none}}.newhere{border:1px solid var(--accent-line);background:var(--accent-soft);border-radius:var(--r-md);align-items:center;gap:16px;margin-bottom:20px;padding:14px 18px;display:flex}.newhere-body{flex:1;min-width:0}.newhere-body p{color:var(--text-2);margin:2px 0 8px;font-size:13px}.newhere-dots{gap:6px;display:flex}.newhere-dots i{background:var(--line-2);border-radius:99px;width:22px;height:4px}.newhere-dots i.f{background:var(--accent)}.newhere-x{color:var(--text-3);cursor:pointer;background:0 0;border:0;padding:4px 6px;font-size:18px;line-height:1}.newhere-x:hover{color:var(--text)}@media (width<=720px){.newhere{flex-wrap:wrap}}.cli-card .cli-syn{background:var(--surface);border:1px solid var(--line);font-family:var(--font-mono);white-space:pre-wrap;color:var(--text);border-radius:8px;margin:10px 0;padding:10px 12px;font-size:12.5px}.cli-block{margin-top:10px}.cli-block-head{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-3);margin-bottom:6px;font-size:10.5px}.cli-arg{border-bottom:1px dashed var(--line);padding:6px 0}.cli-arg:last-child{border-bottom:0}.cli-arg-name{font-family:var(--font-mono);color:var(--text);font-weight:600}.cli-arg-meta{color:var(--text-3);font-size:11.5px}.cli-arg-help{color:var(--text-2);margin-top:2px;font-size:13px}.glossary-table{border-collapse:collapse;width:100%;font-size:13px}.glossary-table th,.glossary-table td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:9px 10px}.glossary-table th{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-3);font-size:10.5px;font-weight:500}.glossary-table td.dim{color:var(--text-2)}.fl-cultivar{--bg:#0b0e12;--bg-2:#0f1318;--surface:#14181d;--surface-2:#1b2026;--surface-3:#232a31;--line:#2c333b;--line-2:#3a434d;--line-3:#4c5762;--text:#eaeef2;--text-2:#9aa6b2;--text-3:#758290;--good:#4ed888;--warn:#e8b53d;--bad:#ff6b66;--r-xs:4px;--r-sm:8px;--r-md:12px;--r-lg:16px;--r-xl:20px;--font-display:"Hanken Grotesk", system-ui, sans-serif;--font-ui:"Hanken Grotesk", system-ui, sans-serif;--font-mono:"Geist Mono", ui-monospace, monospace;--shadow-card:0 1px 0 #ffffff08 inset, 0 16px 40px -28px #000000e6}.fl-cultivar.light{--bg:#eef2f1;--bg-2:#e6eceb;--surface:#fbfdfc;--surface-2:#f3f6f6;--surface-3:#e9efee;--line:#dde5e4;--line-2:#c7d2d1;--line-3:#9dacac;--text:#0e1620;--text-2:#46535f;--text-3:#616f80;--good:#14855a;--warn:#9e6410;--bad:#cc3a44}.fl-cultivar h1.h,.fl-cultivar h2,.fl-cultivar h3{font-family:var(--font-display);letter-spacing:-.012em}.fl-cultivar .card-head h3{font-family:var(--font-display);letter-spacing:-.01em;font-weight:600}.fl-cultivar .card{background:var(--surface);box-shadow:inset 0 1px 0 var(--accent-soft), var(--shadow-card)}.fl-cultivar .btn:not(.ghost):not(.soft){box-shadow:inset 0 1px 0 #ffffff24, 0 6px 16px -10px color-mix(in srgb, var(--accent) 60%, transparent)}.fl-cultivar .badge{border-radius:var(--r-sm)}.fl-cultivar .atmos{background:radial-gradient(880px 520px at 82% -10%, var(--accent-soft), transparent 62%), radial-gradient(680px 560px at -8% 104%, color-mix(in srgb, var(--accent) 4%, transparent), transparent 60%);opacity:.85}.fl-cultivar .atmos:after{content:"";pointer-events:none;background-image:radial-gradient(color-mix(in srgb, var(--text) 5%, transparent) 1px, transparent 1px);opacity:.5;background-size:26px 26px;position:absolute;inset:0}.fl-operator{--bg:#0a0c0e;--bg-2:#0a0c0e;--surface:#11151a;--surface-2:#171c22;--surface-3:#1e242c;--line:#262d36;--line-2:#333c46;--line-3:#48535f;--text:#d6dee6;--text-2:#92a0ae;--text-3:#738091;--good:#4fb37e;--warn:#e8a23b;--bad:#e8625a;--r-xs:0px;--r-sm:0px;--r-md:0px;--r-lg:0px;--r-xl:0px;--font-display:"JetBrains Mono", ui-monospace, monospace;--font-ui:"JetBrains Mono", ui-monospace, monospace;--font-mono:"JetBrains Mono", ui-monospace, monospace;--shadow-card:none}.fl-operator.light{--bg:#eceef1;--bg-2:#eceef1;--surface:#fbfdfc;--surface-2:#f4f6f8;--surface-3:#e9ecf0;--line:#dce0e5;--line-2:#c4cad1;--line-3:#97a0aa;--text:#141a21;--text-2:#47525e;--text-3:#626d7a;--good:#1a7a4d;--warn:#8f5e10;--bad:#c2403f}.fl-operator{--shadow-card:none}.fl-operator h1.h,.fl-operator h2,.fl-operator h3{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;font-weight:600}.fl-operator .card{background:var(--surface);box-shadow:none;border:1px solid var(--line)}.fl-operator .btn{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;border-radius:0}.fl-operator .btn:not(.ghost):not(.soft){box-shadow:inset 0 1px 0 color-mix(in srgb, var(--accent-ink) 22%, transparent)}.fl-operator .badge{text-transform:uppercase;letter-spacing:.06em;border-radius:0}.fl-operator .atmos{background:0 0}.fl-operator .atmos:after{content:"";pointer-events:none;background-image:repeating-linear-gradient(0deg, color-mix(in srgb, var(--accent) 5%, transparent) 0 1px, transparent 1px 3px);opacity:1;mix-blend-mode:normal;position:absolute;inset:0}.fl-matrix{--bg:#04070a;--bg-2:#04070a;--surface:#0b1116;--surface-2:#121a21;--surface-3:#18242c;--line:#16242b;--line-2:#22343c;--line-3:#33514c;--text:#d2ebd9;--text-2:#86a492;--text-3:#64836e;--good:#2dd68a;--warn:#d4a024;--bad:#f2495b;--r-xs:2px;--r-sm:2px;--r-md:2px;--r-lg:2px;--r-xl:2px;--font-display:"Space Mono", ui-monospace, monospace;--font-ui:"Space Mono", ui-monospace, monospace;--font-mono:"Space Mono", ui-monospace, monospace;--shadow-card:none}.fl-matrix.light{--bg:#e8f1eb;--bg-2:#e8f1eb;--surface:#fbfdfc;--surface-2:#e9f4ed;--surface-3:#dceae0;--line:#d0e2d6;--line-2:#b4cdbc;--line-3:#86a793;--text:#0a1410;--text-2:#41564b;--text-3:#5c7064;--good:#117a4e;--warn:#9a6410;--bad:#c2403f}.fl-matrix .card{background:var(--surface);box-shadow:none}.fl-matrix h1.h,.fl-matrix h2,.fl-matrix h3{letter-spacing:.03em}.fl-matrix .btn{font-family:var(--font-mono);letter-spacing:.05em;border-radius:2px}.fl-matrix .badge{text-transform:uppercase;letter-spacing:.04em;border-radius:2px}.fl-matrix .btn:not(.ghost):not(.soft):not(.btn-grid){box-shadow:0 1px 2px #0006, inset 0 1px 0 color-mix(in srgb, var(--accent) 22%, transparent), 0 2px 10px -3px color-mix(in srgb, var(--accent) 34%, transparent)}.fl-matrix .atmos{background:0 0}.fl-matrix .atmos:after{content:"";pointer-events:none;background-image:repeating-linear-gradient(0deg, color-mix(in srgb, var(--text) 5%, transparent) 0 1px, transparent 1px 26px), repeating-linear-gradient(90deg, color-mix(in srgb, var(--text) 5%, transparent) 0 1px, transparent 1px 26px);position:absolute;inset:0}.fl-atlas{--bg:#15130e;--bg-2:#100e0a;--surface:#1c1a12;--surface-2:#211e15;--surface-3:#2a2619;--line:#322d22;--line-2:#453e2e;--line-3:#5c5340;--text:#efeae0;--text-2:#b5ac99;--text-3:#8a8172;--good:#8fd694;--warn:#e8b53d;--bad:#ff6f69;--r-xs:8px;--r-sm:12px;--r-md:16px;--r-lg:20px;--r-xl:24px;--font-display:"Space Grotesk", system-ui, sans-serif;--font-ui:"Hanken Grotesk", system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace;--shadow-card:0 1px 0 #ffffff08 inset, 0 22px 50px -32px #000000d9}.fl-atlas.light{--bg:#f4f0e6;--bg-2:#ebe6d8;--surface:#fcfaf4;--surface-2:#f6f2e7;--surface-3:#ede8d9;--line:#e2dac6;--line-2:#cfc5ac;--line-3:#a2977c;--text:#1f1d16;--text-2:#56503f;--text-3:#736c5a;--good:#1c8450;--warn:#9c6a10;--bad:#cc4a45}.fl-atlas h1.h,.fl-atlas h2,.fl-atlas h3{font-family:var(--font-display);letter-spacing:-.015em;font-weight:600}.fl-atlas .card-head h3{font-family:var(--font-display);font-weight:600}.fl-atlas .card{background:linear-gradient(180deg, color-mix(in srgb, var(--accent) 4%, var(--surface)) 0%, var(--surface) 22%);border-radius:var(--r-lg)}.fl-atlas .btn{border-radius:999px}.fl-atlas .btn:not(.ghost):not(.soft){box-shadow:inset 0 1px 0 #ffffff24, 0 8px 20px -12px color-mix(in srgb, var(--accent) 55%, transparent);background-image:linear-gradient(#ffffff1a,#0000)}.fl-atlas .badge,.fl-atlas .tb-search,.fl-atlas .sel,.fl-atlas .inp{border-radius:999px}.fl-atlas .atmos{background:radial-gradient(900px 560px at 70% -10%, color-mix(in srgb, var(--accent) 8%, transparent), transparent 60%);opacity:1}.fl-atlas .atmos:after{content:"";pointer-events:none;opacity:.03;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.4'/%3E%3C/svg%3E");position:absolute;inset:0}.dir-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-top:4px;display:grid}.dir-tile{text-align:left;border:1px solid var(--line);background:var(--surface);border-radius:var(--r-md);cursor:pointer;font:inherit;color:var(--text);flex-direction:column;gap:11px;padding:12px;transition:border-color .14s,transform .1s,box-shadow .14s;display:flex}.dir-tile:hover{border-color:var(--accent-line);transform:translateY(-2px)}.dir-tile.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset, 0 12px 28px -22px var(--accent)}.dir-thumb{border:1px solid #ffffff0f;border-radius:8px;flex-direction:column;justify-content:center;gap:6px;height:78px;padding:10px 10px 10px 34px;display:flex;position:relative;overflow:hidden}.dir-thumb-rail{opacity:.9;width:24px;position:absolute;top:0;bottom:0;left:0}.dir-thumb-bar{opacity:.92;border-radius:3px;height:6px}.dir-thumb-dot{border-radius:50%;width:9px;height:9px;position:absolute;top:10px;right:10px}.dir-cultivar .dir-thumb{background:#0b0e12;border-radius:12px}.dir-cultivar .dir-thumb-rail{background:#14181d;border-right:1px solid #2c333b}.dir-cultivar .dir-thumb-bar{background:#3ad4c4}.dir-cultivar .dir-thumb-bar:nth-child(2),.dir-cultivar .dir-thumb-bar:nth-child(3){background:#2c333b}.dir-cultivar .dir-thumb-dot{background:#3ad4c4;box-shadow:0 0 8px #2ba89b}.dir-atlas .dir-thumb{background:#15130e;border-radius:18px}.dir-atlas .dir-thumb-rail{background:#1c1a12;border-right:1px solid #322d22}.dir-atlas .dir-thumb-bar{background:#8fd694;border-radius:999px}.dir-atlas .dir-thumb-bar:nth-child(2),.dir-atlas .dir-thumb-bar:nth-child(3){background:#322d22}.dir-atlas .dir-thumb-dot{background:#c9e8a8;box-shadow:0 0 8px #5c7a50}.dir-operator .dir-thumb{background:#0a0c0e;border-radius:0}.dir-operator .dir-thumb-rail{background:#11151a;border-right:1px solid #262d36}.dir-operator .dir-thumb-bar{background:#e8a23b}.dir-operator .dir-thumb-bar:nth-child(2),.dir-operator .dir-thumb-bar:nth-child(3){background:#262d36}.dir-operator .dir-thumb-dot{background:#e8a23b;box-shadow:0 0 8px #e8a23b}.dir-matrix .dir-thumb{background:#04070a;border-radius:2px}.dir-matrix .dir-thumb-rail{background:#0b1116;border-right:1px solid #16242b}.dir-matrix .dir-thumb-bar{background:#19e37c}.dir-matrix .dir-thumb-bar:nth-child(2),.dir-matrix .dir-thumb-bar:nth-child(3){background:#18242c}.dir-matrix .dir-thumb-dot{background:#19e37c;box-shadow:0 0 8px #19e37c}.dir-meta{flex-direction:column;gap:4px;display:flex}.dir-name{font-family:var(--font-display);align-items:center;gap:8px;font-size:14.5px;font-weight:600;display:flex}.dir-check{font-family:var(--font-mono);color:var(--accent);margin-left:auto;font-size:10px}.dir-tag{color:var(--text-2);font-size:12px;line-height:1.45}.dir-layout{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;padding-bottom:16px;display:flex}.dir-layout .tick{color:var(--text-2)}.dir-layout-note{font-size:12px}@media (width<=960px){.dir-grid{grid-template-columns:1fr}}.fl-operator .card{background:var(--surface);box-shadow:none;border-radius:0}.fl-operator .card-head{border-bottom:1px solid var(--line);margin-bottom:14px;padding-bottom:11px}.fl-operator .card-head h3{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-2);padding-left:22px;font-size:10.5px;font-weight:500;position:relative}.fl-operator .card-head h3:before{content:"";background:var(--accent);width:14px;height:2px;position:absolute;top:50%;left:0;transform:translateY(-50%)}.fl-operator .hero-facts .ttl{font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;font-size:17px;font-weight:600}.fl-operator .voice-readout .vr-txt{font-family:var(--font-mono);color:var(--text-3);letter-spacing:.02em;font-size:11.5px}.fl-operator .chip{border:1px solid var(--line);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;background:0 0;border-radius:2px;padding:5px 10px;font-size:10.5px}.fl-operator .chip .ck{color:var(--text-3)}.fl-operator .chip .cv{color:var(--text)}.fl-operator .kpiband{border:1px solid var(--line);border-radius:0;padding:12px 14px}.fl-operator .kseg-l{letter-spacing:.14em;font-size:9px}.fl-operator .kseg-n{font-family:var(--font-mono);letter-spacing:-.01em;font-size:24px;font-weight:500}.fl-operator .gcell{border:1px solid var(--line);border-radius:0;padding:14px 16px}.fl-operator .gcell .gname{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-2);font-size:11px}.fl-operator .gcell .gcount{font-family:var(--font-mono);letter-spacing:-.01em;font-size:30px}.fl-operator .gcell .gdesc{font-family:var(--font-mono);letter-spacing:.04em;color:var(--text-3);font-size:10.5px}.fl-operator .feed-row{border-bottom:1px solid var(--line);font-family:var(--font-mono);padding:9px 0;font-size:12px}.fl-operator .seg{border:1px solid var(--line);background:var(--surface);border-radius:0}.fl-operator .seg button{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;border-radius:0;font-size:10.5px}.fl-operator .atmos:after{content:"";pointer-events:none;background-image:radial-gradient(#ffffff06 1px,#0000 1px);background-size:22px 22px;position:absolute;inset:0}.fl-operator.light .atmos:after{background-image:radial-gradient(#141c260a 1px,#0000 1px)}.b-greet{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:18px;display:flex}.b-greet h1.b-h{letter-spacing:-.025em;margin:4px 0 0;font-size:31px}.b-hero-grid{grid-template-columns:1.25fr 1fr;align-items:stretch}.b-hero{align-items:center;gap:24px;min-height:220px;padding:24px;display:flex}.b-hero-ring{flex:none}.b-hero-side{flex-direction:column;gap:9px;min-width:0;display:flex}.b-hero-title{font-family:var(--font-display);letter-spacing:-.01em;margin:0;font-size:21px;font-weight:600}.b-chips{flex-wrap:wrap;gap:8px;margin-top:4px;display:flex}.b-chip{background:var(--surface-3);border:1px solid var(--line);color:var(--text-2);white-space:nowrap;border-radius:999px;padding:6px 13px;font-size:12.5px}.b-chip b{color:var(--text);font-weight:500}.b-hero-checks{flex-direction:column;gap:5px;margin:2px 0;padding:0;list-style:none;display:flex}.b-hcheck{color:var(--text-2);grid-template-columns:16px 1fr;align-items:center;gap:9px;font-size:12.5px;display:grid}.b-hcheck-mark{border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;font-size:10px;font-weight:700;line-height:1;display:inline-flex}.b-hcheck.ok .b-hcheck-mark{color:var(--good);background:color-mix(in srgb, var(--good) 14%, transparent)}.b-hcheck.bad .b-hcheck-mark{color:var(--bad);background:color-mix(in srgb, var(--bad) 14%, transparent)}.b-hcheck.bad .b-hcheck-label{color:var(--text)}.b-tiles{grid-template-columns:1fr 1fr;gap:14px;display:grid}.b-tile{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-card);flex-direction:column;gap:10px;padding:18px;display:flex;position:relative}.b-tile-ic{border-radius:12px;justify-content:center;align-items:center;width:38px;height:38px;display:flex}.b-tile-ic .glyph{width:19px;height:19px}.b-tile-body{flex-direction:column;gap:2px;display:flex}.b-tile-val{font-family:var(--font-display);letter-spacing:-.02em;font-size:32px;font-weight:600;line-height:1}.b-tile-val.zero{color:var(--text-3)}.b-tile-label{color:var(--text-2);font-size:13px}.b-tile-sub{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--text-3);font-size:9.5px;position:absolute;top:18px;right:18px}.b-mix-card{flex-direction:column;display:flex}.b-mix{flex:1;grid-template-columns:auto 1fr;align-items:center;gap:26px;display:grid}.b-legend{flex-direction:column;gap:11px;display:flex}.b-leg-row{grid-template-columns:12px 90px 1fr 32px;align-items:center;gap:10px;display:grid}.b-leg-dot{border-radius:4px;width:11px;height:11px}.b-leg-name{font-size:13px}.b-leg-bar{background:var(--surface-3);border-radius:999px;height:8px;overflow:hidden}.b-leg-bar i{border-radius:999px;height:100%;display:block}.b-leg-val{font-family:var(--font-mono);text-align:right;font-variant-numeric:tabular-nums;font-size:13px}.b-stat-lead{align-items:baseline;gap:10px;margin-bottom:10px;display:flex}.b-stat-big{font-family:var(--font-display);letter-spacing:-.02em;font-size:34px;font-weight:600}.b-stat-cap{color:var(--text-2);font-size:12.5px}.b-timeline{flex-direction:column;display:flex}.b-tl-row{border-bottom:1px solid var(--line);grid-template-columns:16px 1fr auto;align-items:center;gap:14px;padding:12px 0;display:grid}.b-tl-row:last-child{border-bottom:0}.b-tl-node{background:var(--text-3);width:10px;height:10px;box-shadow:0 0 0 4px var(--surface);border-radius:50%}.b-tl-node.ok{background:var(--good)}.b-tl-node.acc{background:var(--accent)}.b-tl-node.warn{background:var(--warn)}.b-tl-body{word-break:break-word;min-width:0;font-size:13.5px}.b-tl-body b{text-transform:capitalize}.b-tl-when{font-family:var(--font-mono);color:var(--text-3);white-space:nowrap;font-size:11px}.donut-c-num{font-family:var(--font-display);fill:var(--text);font-size:28px;font-weight:600}.donut-c-cap{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;fill:var(--text-3);font-size:10px}@media (width<=1180px){.b-hero-grid{grid-template-columns:1fr}.b-tiles{grid-template-columns:repeat(4,1fr)}}@media (width<=720px){.b-tiles{grid-template-columns:1fr 1fr}.b-hero{flex-direction:column;align-items:flex-start}.b-mix{grid-template-columns:1fr}}.c-root{font-family:var(--font-mono)}.c-titlebar{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:16px;display:flex}.c-h1{font-family:var(--font-mono);letter-spacing:.02em;color:var(--text);margin:0;font-size:17px;font-weight:600}.c-sub{font-family:var(--font-mono);color:var(--text-3);margin-top:5px;font-size:11.5px}.c-root .btn{font-family:var(--font-mono);letter-spacing:.05em;border-radius:var(--r-sm);font-size:11px}.c-strip{border:1px solid var(--line);background:var(--surface);border-radius:var(--r-sm);grid-template-columns:repeat(7,1fr);margin-bottom:14px;display:grid}.c-strip-cell{border-right:1px solid var(--line);min-width:0;padding:11px 14px}.c-strip-cell:last-child{border-right:0}.c-strip-k{letter-spacing:.14em;text-transform:uppercase;color:var(--text-3);font-size:9px}.c-strip-v{color:var(--text);font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;margin-top:6px;font-size:13.5px;overflow:hidden}.c-pill{letter-spacing:.08em;border-radius:var(--r-sm);text-transform:uppercase;border:1px solid;padding:2px 7px;font-size:9.5px;display:inline-block}.c-pill.ok{color:var(--good)}.c-pill.warn{color:var(--warn)}.c-pill.bad{color:var(--bad)}.c-kpi-row{border:1px solid var(--line);background:var(--surface);border-radius:var(--r-sm);grid-template-columns:repeat(6,1fr);margin-bottom:14px;display:grid}.c-kpi{border-right:1px solid var(--line);padding:14px 16px;position:relative}.c-kpi:last-child{border-right:0}.c-kpi-label{letter-spacing:.14em;text-transform:uppercase;color:var(--text-3);font-size:9px}.c-kpi-val{letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--text);margin-top:6px;font-size:29px;font-weight:500}.c-kpi-val.zero{color:var(--text-3)}.c-grid{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.c-mod{border:1px solid var(--line);background:var(--surface);border-radius:var(--r-sm);flex-direction:column;min-width:0;display:flex}.c-mod-head{border-bottom:1px solid var(--line);align-items:center;gap:9px;padding:11px 14px;display:flex}.c-tab{background:var(--accent);flex:none;width:16px;height:2px}.c-mod-head h3{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-2);margin:0;font-size:10.5px;font-weight:500}.c-mod-right{letter-spacing:.1em;color:var(--text-3);margin-left:auto;font-size:10.5px}.c-mod-body{flex:1;padding:14px}.c-tbl{border-collapse:collapse;width:100%;font-family:var(--font-mono)}.c-tbl th{text-align:left;letter-spacing:.12em;text-transform:uppercase;color:var(--text-3);border-bottom:1px solid var(--line);padding:0 10px 9px;font-size:9px;font-weight:500}.c-tbl td{border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums;padding:8px 10px;font-size:12.5px}.c-tbl tr:last-child td{border-bottom:0}.c-tbl .num{text-align:right}.c-name{color:var(--text);font-weight:500}.c-dim{color:var(--text-3)}.c-bar{background:var(--surface-3);border-radius:var(--r-sm);height:7px;overflow:hidden}.c-bar i{height:100%;display:block}.c-check-list{flex-direction:column;margin-top:12px;display:flex}.c-check-row{border-top:1px solid var(--line);grid-template-columns:12px 1fr auto;align-items:center;gap:10px;padding:7px 0;font-size:12px;display:grid}.c-check-row:first-child{border-top:0}.c-dotmark{background:var(--text-3);border-radius:2px;width:8px;height:8px}.c-dotmark.ok{background:var(--good)}.c-dotmark.bad{background:var(--bad)}.c-dotmark.acc{background:var(--accent)}.c-dotmark.warn{background:var(--warn)}.c-check-name{color:var(--text)}.c-check-detail{color:var(--text-3);text-align:right;font-size:11px}.c-axis{color:var(--text-3);font-size:9px;font-family:var(--font-mono);justify-content:space-between;margin-top:6px;display:flex}.c-axis span{text-align:center;flex:1}.c-cols{align-items:flex-end;gap:4px;width:100%;display:flex}.c-col{background:var(--surface-3);flex:1;min-width:4px;transition:background .12s}.c-col.hi{background:var(--accent)}.c-band{gap:3px;margin-bottom:12px;display:flex}.c-band-cell{background:var(--surface-3);flex:1;height:14px}.c-band-cell.ok{background:var(--good)}.c-band-cell.bad{background:var(--bad)}@media (width<=1180px){.c-strip{grid-template-columns:repeat(4,1fr)}.c-kpi-row{grid-template-columns:repeat(3,1fr)}.c-grid{grid-template-columns:repeat(2,1fr)}.c-grid .c-mod[style*=span\ 3],.c-grid .c-mod[style*=span\ 2]{grid-column:span 2!important}}@media (width<=720px){.c-strip,.c-kpi-row{grid-template-columns:repeat(2,1fr)}.c-grid{grid-template-columns:1fr}.c-grid .c-mod[style*=span]{grid-column:span 1!important}}.lib-doc{font-size:14px}.lib-doc-empty{border:1px dashed var(--line-2);border-radius:var(--r-sm);color:var(--text-2);align-items:flex-start;gap:10px;padding:16px;font-size:13px;display:flex}.lib-doc-empty .glyph{width:20px;height:20px;color:var(--text-3);flex:none}.boot-splash{z-index:100;background:var(--bg);flex-direction:column;justify-content:center;align-items:center;gap:20px;display:flex;position:fixed;inset:0}.boot-splash.fading{animation:.55s forwards splashOut}.boot-dial{width:172px;height:172px;animation:1.8s ease-in-out infinite glowPulse;position:relative}.boot-ring{width:100%;height:100%;transform:rotate(-90deg)}.boot-progress{stroke-dasharray:452;stroke-dashoffset:452px;--end:0;animation:.4s cubic-bezier(.2,.7,.2,1) forwards ringFill}.boot-sprout{width:58px;height:58px;position:absolute;top:50%;left:50%;overflow:visible;transform:translate(-50%,-50%)}.boot-sprout .bs-stem{transform-origin:12px 21.5px;animation:.3s cubic-bezier(.2,.7,.2,1) .1s forwards stemGrow;transform:scaleY(0)}.boot-sprout .bs-leaf{transform-origin:12px 12px;transform:scale(0)}.boot-sprout .bs-leaf-main{animation:.2s cubic-bezier(.22,1,.36,1) .25s forwards leafIn}.boot-sprout .bs-leaf-back{animation:.2s cubic-bezier(.22,1,.36,1) .35s forwards leafIn}.boot-status{font:500 12px var(--font-mono);color:var(--text-2);align-items:center;display:flex}.boot-caret{background:var(--accent);width:6px;height:13px;margin-left:7px;animation:1s step-end infinite blink}@keyframes splashOut{to{opacity:0;visibility:hidden}}@keyframes stemGrow{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes leafIn{0%{transform:scale(0)}to{transform:scale(1)}}@keyframes ringFill{to{stroke-dashoffset:var(--end)}}@keyframes glowPulse{0%,to{filter:drop-shadow(0 0 6px var(--accent-soft))}50%{filter:drop-shadow(0 0 16px var(--accent-line))}}.deploy-pop{border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--surface);flex-direction:column;gap:10px;margin-bottom:16px;padding:12px;display:flex}.deploy-pop .dp-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.deploy-pop .dp-path{background:var(--surface-2);min-width:200px;color:var(--text);border:1px solid var(--line-2);border-radius:var(--r-xs);font-family:var(--font-mono,monospace);flex:260px;padding:7px 10px;font-size:13px}.deploy-pop .dp-path:focus{border-color:var(--accent-line);outline:none}.deploy-pop .dp-note{color:var(--text-2);margin:0}.deploy-pop .dp-note code{color:var(--text)}.deploy-pop .dp-field{align-items:center;gap:6px;display:flex}.deploy-pop .dp-field>span{color:var(--text-2);white-space:nowrap;font-size:12px}.rules-list{overflow:hidden}.rule-row{border-bottom:1px solid var(--line)}.rule-row:last-child{border-bottom:0}.rule-head{text-align:left;cursor:pointer;width:100%;font:inherit;color:var(--text);background:0 0;border:0;align-items:center;gap:12px;padding:13px 18px;transition:background .1s;display:flex}.rule-head:hover{background:var(--surface-2)}.rule-row.on .rule-head{background:var(--accent-soft)}.rule-no{font-family:var(--font-mono);color:var(--accent);font-variant-numeric:tabular-nums;min-width:34px;font-size:13px}.rule-title{font-family:var(--font-display);letter-spacing:-.01em;flex:1;font-size:15px;font-weight:600}.rule-chip{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);border:1px solid var(--line-2);border-radius:999px;padding:3px 9px;font-size:10.5px}.rule-chip.user{color:var(--accent);border-color:var(--accent-line)}.rule-chip.trial{color:var(--warn);border-color:color-mix(in srgb, var(--warn) 45%, transparent)}.rule-chip.trial.overdue{color:var(--bg);background:var(--warn);border-color:var(--warn)}.rule-expand{background:color-mix(in srgb, var(--accent) 4%, transparent);padding:2px 18px 18px 64px}.rule-expand p{color:var(--text-2);white-space:pre-wrap;font-size:13.5px;line-height:1.66}.rule-src{font-family:var(--font-mono);color:var(--text-3);margin-top:8px;font-size:11px}.rule-notice{color:var(--warn);margin:0 0 12px}.rules-meter{align-items:center;gap:12px;margin-bottom:16px;display:flex}.rules-meter-bar{background:var(--surface-3);border:1px solid var(--line);border-radius:999px;flex:0 0 180px;height:6px;overflow:hidden}.rules-meter-fill{background:var(--accent);height:100%;transition:width .2s}.rules-meter.warn .rules-meter-fill{background:var(--warn)}.rules-meter.over .rules-meter-fill{background:oklch(62% .19 25)}.rules-meter-label{font-family:var(--font-mono);color:var(--text-3);font-size:11.5px}.rules-meter.warn .rules-meter-label{color:var(--warn)}.rules-meter.over .rules-meter-label{color:oklch(62% .19 25)}.rule-form{flex-direction:column;gap:10px;display:flex}.rule-form .lib-filter{width:100%}.rule-body-input{resize:vertical;background:var(--surface);width:100%;color:var(--text);border:1px solid var(--line-2);border-radius:var(--r-sm);font-family:var(--font-mono);padding:10px 12px;font-size:12.5px;line-height:1.6}.rule-body-input:focus{border-color:var(--accent-line);outline:none}.rule-trial-label{font-family:var(--font-mono);color:var(--text-3);text-transform:uppercase;letter-spacing:.06em;align-items:center;gap:8px;font-size:11px;display:inline-flex}.rule-date{width:150px}.voice-ref{padding:0}.voice-ref>summary{cursor:pointer;border-radius:var(--r-md);align-items:baseline;gap:12px;padding:12px 18px;list-style:none;display:flex}.voice-ref>summary::-webkit-details-marker{display:none}.voice-ref>summary:before{content:"";border-right:1.5px solid var(--text-3);border-bottom:1.5px solid var(--text-3);flex:none;width:5px;height:5px;margin-right:2px;transition:transform .15s;transform:rotate(-45deg)}.voice-ref[open]>summary:before{transform:rotate(45deg)}.voice-ref>summary:hover{background:var(--surface-2)}.voice-ref .vr-title{font-family:var(--font-display);font-size:14px;font-weight:600}.vr-list{padding:2px 12px 12px}.voice-row{border-radius:var(--r-xs);border:1px solid #0000;align-items:baseline;gap:12px;padding:5px 8px;display:flex}.voice-row.current{border-color:var(--accent-line);background:var(--accent-soft)}.vr-name{width:108px;font-family:var(--font-display);text-transform:capitalize;flex:none;font-size:12.5px;font-weight:600}.vr-desc{min-width:0;color:var(--text-2);flex:1;font-size:11.5px;font-style:italic}.jr-head{margin-bottom:14px}.jr-row2{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:14px;display:grid}.jr-card{padding-top:14px;padding-bottom:14px}.jr-card .card-head{margin-bottom:10px}.jr-ring{width:100%;color:inherit;cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;align-items:center;gap:9px;padding:5px 0;display:flex}.jr-ring:hover .jr-ring-label{color:var(--text)}.jr-ring-label{width:88px;color:var(--text-2);flex:none;font-size:11.5px}.jr-ring-track{background:var(--surface-3);border-radius:999px;flex:1;height:8px;overflow:hidden}.jr-ring-fill{background:linear-gradient(90deg, var(--accent-2), var(--accent));border-radius:999px;height:100%;display:block}.jr-ring-num{text-align:right;width:34px;font-family:var(--font-mono);color:var(--accent);flex:none;font-size:10.5px}.jr-fresh{border:0;border-bottom:1px solid var(--line-2);width:100%;color:inherit;cursor:pointer;font:inherit;text-align:left;background:0 0;align-items:baseline;gap:10px;padding:6px 0;display:flex}.jr-fresh:hover .jr-fresh-name{color:var(--accent)}.jr-fresh-kind{width:64px;font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);flex:none;font-size:8.5px}.jr-fresh-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:11.5px;overflow:hidden}.jr-fresh-when{font-family:var(--font-mono);color:var(--text-3);flex:none;font-size:10px}.jr-skipped{margin:8px 0 0;font-size:11px}.jr-care{border-top:1px solid var(--line-2);color:var(--text-3);margin:8px 0 0;padding-top:9px;font-size:11.5px}.jr-go{font-family:var(--font-mono);color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0;font-size:10.5px}.jr-go:hover{text-decoration:underline}.jr-go.right{margin-left:auto}.jr-map{border-color:var(--accent-line)}.jr-others{margin:14px 0 0;font-size:11.5px}.cmap{width:100%;height:auto;min-height:300px;display:block}.cm-edge{fill:none;stroke:var(--line-3);stroke-width:1.5px}.cm-edge-gov{fill:none;stroke:var(--line-2);stroke-width:1.2px;stroke-dasharray:4 5}.cm-node{cursor:pointer}.cmap .cm-node,.cmap .cm-mini>g{transform-box:fill-box;transform-origin:50%}.cm-node:hover circle{stroke-width:2.6px}.cm-node:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.cm-hub-disc{fill:var(--accent-soft);stroke:var(--accent);stroke-width:2px}.cm-hub-name{fill:var(--accent);font-family:var(--font-display);font-size:17px;font-weight:600}.cm-hub-num{fill:var(--text);font-family:var(--font-mono);font-size:10px}.cm-sat-disc{fill:var(--surface-2);stroke:var(--accent);stroke-width:1.5px}.cm-sat-name{fill:var(--text);font-family:var(--font-display);font-size:12.5px;font-weight:600}.cm-sat-num{fill:var(--accent);font-family:var(--font-mono);font-size:10px}.cm-sat-big{fill:var(--accent);font-family:var(--font-mono);font-size:13px;font-weight:500}.cm-mini{font-family:var(--font-mono);font-size:7.5px}.cm-pack-disc{fill:var(--accent-soft);stroke-width:1.2px}.cm-pack-id{fill:var(--text)}.cm-gov-disc{fill:var(--surface);stroke:var(--line-3);stroke-width:1.3px}.cm-gov-name{fill:var(--text);font-family:var(--font-display);font-size:10.5px;font-weight:600}.cm-gov-num{fill:var(--accent);font-family:var(--font-mono);font-size:9px}.cm-note{fill:var(--text-3);font-family:var(--font-mono);font-size:8.5px}.cm-govern-label{fill:var(--text-3);font-family:var(--font-mono);letter-spacing:1.5px;font-size:8.5px}@media (width<=1180px){.jr-row2{grid-template-columns:1fr}}@media (width<=720px){.vr-name{width:100%}.voice-row{flex-wrap:wrap}}.col:has(.pad>.jr-head){height:100vh}.page:has(>.pad>.jr-head){flex-direction:column;display:flex}.pad:has(>.jr-head){flex-direction:column;flex:1;width:100%;max-width:none;min-height:0;margin:0;display:flex}.pad:has(>.jr-head) .jr-map{flex-direction:column;flex:1;min-height:0;display:flex}.pad:has(>.jr-head) .jr-map .card-head{flex:none}.pad:has(>.jr-head) .cmap{flex:1;height:auto;min-height:240px}.pad:has(>.jr-head) .jr-others{flex:none}:root{--ease-out:cubic-bezier(.22,1,.36,1)}.glide{pointer-events:none;opacity:0;width:0;height:0;position:absolute;top:0;left:0}.rail>.glide{border-radius:var(--r-sm);background:linear-gradient(90deg, var(--accent-soft), transparent 88%)}.seg:has(>.glide){position:relative}.seg>.glide{background:var(--accent);border-radius:5px}.fl-operator .seg>.glide{border-radius:0}.seg:has(>.glide) button{position:relative}.seg:has(>.glide) button.on{background:0 0}@keyframes viewIn{0%{opacity:.4;transform:translateY(5px)}}.view-in{animation:viewIn .22s var(--ease-out)}.console-head{position:relative}.console-progress{height:2px;position:absolute;top:-1px;left:0;right:0;overflow:hidden}.console-progress:after{content:"";background:linear-gradient(90deg, transparent, var(--warn), transparent);width:30%;animation:1.3s cubic-bezier(.45,0,.55,1) infinite consoleScan;position:absolute;inset:0}@keyframes consoleScan{0%{transform:translate(-100%)}to{transform:translate(340%)}}.console-head.flash-ok{animation:.9s ease-out flashOk}.console-head.flash-bad{animation:.9s ease-out flashBad}@keyframes flashOk{0%{background:color-mix(in srgb, var(--good) 28%, transparent)}}@keyframes flashBad{0%{background:color-mix(in srgb, var(--bad) 28%, transparent)}}@keyframes dotPop{0%{transform:scale(.2)}60%{transform:scale(1.35)}}.check.rise .feed-dot{animation:dotPop .4s var(--ease-out) both;animation-delay:calc(var(--i,0) * 50ms + .14s)}:root{interpolate-size:allow-keywords}.law-expand,.rule-expand,.check-body,.mf-raw-pre{transition:height .28s var(--ease-out), opacity .2s ease-out, padding-top .28s var(--ease-out), margin-top .28s var(--ease-out);overflow:clip}@starting-style{.law-expand,.rule-expand,.mf-raw-pre{opacity:0;height:0}.check-body{opacity:0;height:0;margin-top:0;padding-top:0}}.spot-hit{background:color-mix(in srgb, var(--accent) 26%, transparent);color:inherit;border-radius:2px;padding:0 1px;animation:.5s ease-out hitIn}@keyframes hitIn{0%{background:color-mix(in srgb, var(--accent) 55%, transparent)}}::view-transition-old(root){animation-duration:.32s;animation-timing-function:var(--ease-out)}::view-transition-new(root){animation-duration:.32s;animation-timing-function:var(--ease-out)}.app{--accent-text:var(--accent);--accent-soft:color-mix(in srgb, var(--accent) 13%, transparent);--accent-line:color-mix(in srgb, var(--accent) 34%, transparent);--accent-dim:color-mix(in srgb, var(--accent-2) 62%, transparent);font-family:var(--font-ui);grid-template-columns:var(--rail-w) minmax(0, 1fr)}.t-good{color:var(--good)}.t-warn{color:var(--warn)}.sidebar{background:var(--bg-2);border-right:1px solid var(--line);flex-direction:column;align-self:start;gap:2px;height:100vh;padding:20px 12px 14px;display:flex;position:sticky;top:0;overflow-y:auto}.sb-brand{color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;padding:4px 8px 20px;display:flex}.sb-mark{border-radius:var(--r-sm);background:var(--surface);border:1px solid var(--line);flex:none;place-items:center;width:30px;height:30px;display:grid}.sb-mark .sprout{filter:none;width:20px;height:20px}.sb-brand:hover .sprout{transform:rotate(-7deg)}.sb-brand-text{flex-direction:column;min-width:0;line-height:1.25;display:flex}.sb-name{font-size:15px;font-weight:700}.sb-ver{font-family:var(--font-mono);color:var(--text-3);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}a.sb-item{border-radius:var(--r-sm);color:var(--text-2);align-items:center;gap:10px;padding:9px 10px;font-weight:500;transition:background .14s,color .14s;display:flex}a.sb-item:hover{background:var(--surface);color:var(--text)}.sb-item .glyph{width:18px;height:18px}.sb-label{flex:1;min-width:0}.sb-count{font-family:var(--font-mono);color:var(--text-3);font-variant-numeric:tabular-nums;font-size:12px}a.sb-item.on{background:var(--accent-soft);color:var(--accent-text);font-weight:600}a.sb-item.on .sb-count{color:var(--accent-text)}.sb-spacer{flex:1;min-height:16px}.sb-vitals{border-top:1px solid var(--line);font-family:var(--font-mono);color:var(--text-3);flex-direction:column;gap:7px;margin-top:8px;padding:14px 10px 4px;font-size:12px;display:flex}.sb-vitals>div,.sb-voice{justify-content:space-between;gap:8px;display:flex}.sb-vitals b{color:var(--text);font-weight:500}.sb-vitals b.good{color:var(--good)}.sb-vitals b.warn{color:var(--warn)}.sb-vitals b.bad{color:var(--bad)}.sb-voice{width:100%;font:inherit;color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;padding:0}.sb-voice b{align-items:center;gap:3px;display:inline-flex}.sb-voice .glyph{width:12px;height:12px}.sb-voice:hover b{color:var(--accent-text)}.topbar{background:var(--bg-2);-webkit-backdrop-filter:none;backdrop-filter:none;gap:10px;padding:0 32px}.crumbs{min-width:0;color:var(--text-3);white-space:nowrap;align-items:center;gap:8px;display:flex;overflow:hidden}.crumb-root{text-overflow:ellipsis;font-size:13px;overflow:hidden}.crumb-here{color:var(--text);font-weight:600}.topbar .iconbtn{border-color:var(--line);background:var(--surface);width:38px;height:38px}.topbar .iconbtn:hover{border-color:var(--line-2)}.tb-search input{width:320px;height:38px;padding-left:34px}.tb-harness{min-width:0;max-width:200px;height:38px;padding:0 10px}.tb-pop-anchor{position:relative}.appearance-pop{z-index:30;background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r-md);width:max-content;max-width:min(92vw,540px);box-shadow:var(--shadow-pop);flex-direction:column;gap:14px;padding:16px;display:flex;position:absolute;top:calc(100% + 8px);right:0}.ap-group{flex-direction:column;gap:6px;display:flex}.ap-label{color:var(--text-2);font-size:12px;font-weight:600}.accent-picker{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.accent-src{border:1px solid var(--line-2);color:var(--text-2);font:inherit;cursor:pointer;background:0 0;border-radius:999px;padding:5px 12px;font-size:12px;font-weight:600}.accent-src:hover{color:var(--text)}.accent-src.on{color:var(--text);border-color:var(--accent-line);background:var(--accent-soft)}.accent-swatches{gap:8px;display:flex}.accent-swatch{cursor:pointer;background:var(--sw);border:2px solid var(--bg-2);width:22px;height:22px;box-shadow:0 0 0 1px var(--line-2);border-radius:50%;padding:0;position:relative}.accent-swatch:hover{box-shadow:0 0 0 1px var(--text-3)}.accent-swatch.on{box-shadow:0 0 0 2px var(--text)}.accent-custom{background:conic-gradient(#ff5c57,#e8b53d,#4ed888,#3ad4c4,#5b8cff,#c77dff,#ff5c57)}.accent-custom.picked{background:var(--sw)}.accent-custom input{opacity:0;cursor:pointer;border:0;width:100%;height:100%;margin:0;padding:0;position:absolute;inset:0}.accent-custom:focus-within{outline:2px solid var(--accent);outline-offset:2px}.appearance-pop .seg{flex-wrap:wrap}.page{padding:28px 32px 120px}.pad{max-width:1320px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:20px;display:flex}.page-head h1.h,.lib-title h1.h{font-family:var(--font-display);letter-spacing:-.02em;margin:0 0 4px;font-size:28px;font-weight:700}.page-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.btn.danger{background:var(--bad);color:#fff}.btn.danger-line{color:var(--bad);border-color:color-mix(in srgb, var(--bad) 45%, transparent)}.btn.danger-line:hover{background:color-mix(in srgb, var(--bad) 10%, transparent);border-color:var(--bad)}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);flex-direction:column;gap:12px;min-width:0;padding:18px 20px;display:flex}.panel.flush{gap:0;padding:0;overflow:hidden}.panel-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.panel-head h2{font-family:var(--font-ui);letter-spacing:0;margin:0;font-size:15px;font-weight:700}.panel-head a.mono{color:var(--text-3)}.panel-head a.mono:hover{color:var(--accent-text)}.panel-note{color:var(--text-3);margin:0;font-size:12px}.tag{background:var(--surface-3);color:var(--text-2);white-space:nowrap;border-radius:999px;place-self:center start;align-items:center;padding:2px 9px;font-size:12px;font-weight:600;display:inline-flex}.tag.ok{background:color-mix(in srgb, var(--good) 13%, transparent);color:var(--good)}.tag.warn{background:color-mix(in srgb, var(--warn) 15%, transparent);color:var(--warn)}.tag.bad{background:color-mix(in srgb, var(--bad) 13%, transparent);color:var(--bad)}.tag.acc{background:var(--accent-soft);color:var(--accent-text)}.tag.human{color:var(--text);box-shadow:inset 0 0 0 1px var(--line-3)}.app.light .tag.warn,.app.light .t-warn{color:color-mix(in srgb, var(--warn) 72%, #000)}.tag.note{white-space:normal}.tabs{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-sm);gap:4px;max-width:100%;margin-bottom:20px;padding:3px;display:inline-flex;overflow-x:auto}.tabs a{border-radius:max(0px, calc(var(--r-sm) - 2px));color:var(--text-2);white-space:nowrap;padding:6px 14px;font-weight:600}.tabs a:hover{color:var(--text)}.tabs a.on{background:var(--bg-2);color:var(--text);box-shadow:0 0 0 1px var(--line)}.tab-badge{font-family:var(--font-mono);color:var(--text-3);margin-left:6px;font-weight:400}.stackbar{gap:3px;height:12px;display:flex}.stackbar>span{border-radius:3px;min-width:3px}.stackbar.thin{gap:2px;height:8px}.sb-ethos{background:var(--text)}.sb-invariants{background:var(--accent)}.sb-doctrines{background:var(--accent-dim)}.sb-yours{border:1px dashed var(--line-3)}.sb-rest{background:var(--line-2)}.legend{flex-direction:column;gap:8px;margin:0;padding:0;font-size:13px;list-style:none;display:flex}.legend li{align-items:center;gap:8px;display:flex}.swatch{border-radius:3px;flex:none;width:10px;height:10px}.legend-label{color:var(--text-2);flex:1}.hbars{flex-direction:column;gap:7px;margin:0;padding:0;font-size:12px;list-style:none;display:flex}.hbars li{align-items:center;gap:10px;display:flex}.hb-label{width:84px;color:var(--text-2);flex:none}.hb-track{background:var(--surface-2);border-radius:2px;flex:1;gap:2px;height:9px;display:flex}.hb-track>span{border-radius:2px}.hb-ok{background:var(--accent)}.hb-exp{background:var(--warn)}.hb-n{text-align:right;min-width:22px}.hbar{background:var(--surface-3);border-radius:3px;flex:1;min-width:40px;height:8px;display:block;overflow:hidden}.hbar>span,.hbar>i{background:var(--accent);height:100%;display:block}.hbar.ok>span,.hbar.ok>i{background:var(--good)}.hbar.warn>span,.hbar.warn>i{background:var(--warn)}.hbar.bad>span,.hbar.bad>i{background:var(--bad)}.chart-key{color:var(--text-3);flex-wrap:wrap;gap:14px;font-size:12px;display:flex}.chart-key i{vertical-align:-1px;border-radius:2px;width:9px;height:9px;margin-right:4px;display:inline-block}.key-ok{background:var(--accent)}.key-exp{background:var(--warn)}.vbars{border-bottom:1px solid var(--line);align-items:flex-end;gap:4px;height:118px;padding-bottom:6px;display:flex}.vbars>span{border-radius:3px 3px 0 0;flex:1;min-height:4px}.vb-update{background:var(--accent)}.vb-rebuild{background:var(--accent-dim)}.vb-other{background:var(--line-3)}.vb-failed{background:var(--bad)}.chart-axis{justify-content:space-between;gap:8px;font-size:11px;display:flex}.ov-stack{flex-direction:column;gap:20px;display:flex}.ov-charts{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.health{border-radius:var(--r-md);--tone:var(--good);border:1px solid color-mix(in srgb, var(--tone) 30%, transparent);background:color-mix(in srgb, var(--tone) 8%, transparent);align-items:center;gap:16px;padding:14px 18px;display:flex}.health.warn{--tone:var(--warn)}.health.bad{--tone:var(--bad)}.health-dot{background:var(--tone);width:10px;height:10px;box-shadow:0 0 0 4px color-mix(in srgb, var(--tone) 14%, transparent);border-radius:99px;flex:none}.health p{flex:1;min-width:0;margin:0}.health-built{white-space:nowrap;font-size:12px}.needs{grid-template-columns:max-content minmax(0,1fr) max-content max-content;column-gap:16px;margin:0 -20px -18px;padding:0;list-style:none;display:grid}.needs li{grid-column:1/-1;grid-template-columns:subgrid;border-top:1px solid var(--line);align-items:center;padding:11px 20px;display:grid}.needs .tag{justify-self:start}.needs-where{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.needs-verb{color:var(--accent-text);white-space:nowrap;justify-self:end;font-weight:600}.needs-verb:hover{text-decoration:underline}.needs-empty{color:var(--text-2);margin:0}.tier-strip{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:20px;display:grid;overflow:hidden}.tier{border-right:1px solid var(--line);color:var(--text);flex-direction:column;gap:8px;padding:16px 20px;display:flex}.tier:last-child{border-right:0}.tier.on{background:var(--accent-soft);box-shadow:inset 0 -2px 0 var(--accent)}a.tier:hover{background:var(--surface-2)}.tier-k{color:var(--text-3);font-size:11px}.tier.on .tier-k{color:var(--accent-text)}.tier-top{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.tier-name{font-size:16px;font-weight:700}.tier-n{font-size:18px}.tier-bar{background:var(--surface-3);border-radius:99px;height:6px;overflow:hidden}.tier-bar>span{background:var(--accent);height:100%;display:block}a.tier .tier-bar>span{background:var(--line-3)}.tier-sub{color:var(--text-3);font-size:12px}.split{align-items:flex-start;gap:20px;display:flex}.split>.panel{flex:1}.aside-stack{flex-direction:column;flex:none;gap:16px;width:340px;display:flex}.law-toolbar{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:12px;padding:10px 16px;display:flex}.law-toolbar .law-filter{background:var(--bg-2);min-width:0;color:var(--text);border:1px solid var(--line);border-radius:var(--r-sm);font:inherit;flex:0 220px;margin:0;padding:7px 11px;font-size:13px}.law-toolbar .law-filter:focus{border-color:var(--accent-line);outline:none}.law-note{margin-left:auto;font-size:13px}.law-wrap{--law-5:92px minmax(0, 1.4fr) minmax(0, 1fr) 96px 104px;--law-cols:var(--law-5)}.law-wrap.with-toggle{--law-cols:var(--law-5) 44px}.law-rowhead,.law-row{grid-template-columns:var(--law-cols);border-bottom:1px solid var(--line);align-items:center;gap:14px;padding:9px 20px;display:grid}.law-rowhead{color:var(--text-3);font-size:12px;font-weight:600}.law-row{width:100%;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border-top:0;border-left:0;border-right:0;padding:10px 20px;transition:background .1s}.law-row.has-toggle{grid-template-columns:minmax(0,1fr) 44px;padding-top:0;padding-bottom:0}.law-disclosure{grid-template-columns:var(--law-5);min-width:0;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:14px;padding:10px 0;display:grid}.law-disclosure:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.law-row .toggle-col{justify-content:center;align-items:center;display:flex}.law-row:hover{background:var(--surface-2)}.law-row.on{background:var(--accent-soft)}.law-no{white-space:nowrap;font-family:var(--font-mono);color:var(--accent-text);font-variant-numeric:tabular-nums;align-items:center;gap:8px;display:flex}.law-no .x{color:var(--text-3);font-size:11px;transition:transform .14s}.law-row.on .law-no .x{transform:rotate(90deg)}.law-name{flex-direction:column;gap:2px;min-width:0;font-weight:600;display:flex}.law-princ{color:var(--text-3);font-size:12.5px;font-weight:400;line-height:1.4}.law-latin{min-width:0;color:var(--text-3);font-style:italic}.law-status{white-space:nowrap;background:var(--surface-3);color:var(--text-3);border-radius:999px;justify-self:start;padding:2px 9px;font-size:12px;font-weight:600}.law-status.ok{background:color-mix(in srgb, var(--good) 13%, transparent);color:var(--good)}.law-status.warn{background:color-mix(in srgb, var(--warn) 15%, transparent);color:var(--warn)}.law-enf{color:var(--text-2);font-size:13px}.law-enf.hook{color:var(--accent-text);font-weight:600}.law-row.law-off .law-no,.law-row.law-off .law-name>span:first-child{color:var(--text-3)}.law-expand{border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--accent) 4%, transparent);padding:4px 20px 18px 46px}.law-expand p{max-width:75ch;color:var(--text-2);margin:6px 0 0;font-size:13.5px;line-height:1.66}.law-expand em{color:var(--text)}.law-srcline{font-family:var(--font-mono);color:var(--text-3);margin-top:13px;font-size:11px}.band-head{background:var(--bg-2);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:baseline;gap:12px;padding:12px 20px 8px;display:flex}.band-head .mono{font-size:11px}.tier-h{letter-spacing:.08em;text-transform:uppercase;color:var(--text-2);align-items:center;gap:7px;margin:0;font-size:12px;font-weight:700;display:inline-flex}.pack-head .tier-h:before{content:"";background:var(--cc,var(--text-3));border-radius:50%;width:8px;height:8px}.pack-desc{flex:1;font-size:13px}.pack-state{color:var(--text-3);font-size:12px}.pack-wrap.pack-off .law-row{opacity:.72}.pack-wrap.pack-off .pack-state{color:var(--warn)}.pack-enable{border-bottom:1px solid var(--line);white-space:nowrap;font-family:var(--font-mono);color:var(--text-3);padding:9px 20px;font-size:12px;overflow-x:auto}.pack-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.pack-list li{align-items:center;gap:10px;display:flex}.pack-list li.off .pl-name{color:var(--text-3)}.pl-name{text-overflow:ellipsis;white-space:nowrap;flex:none;width:78px;font-weight:600;overflow:hidden}.pl-n{text-align:right;width:18px;font-size:12px}.pack-apply{flex-wrap:wrap;gap:10px;display:flex}.pack-warn{color:var(--warn);border:1px solid color-mix(in srgb, var(--warn) 36%, transparent);border-radius:var(--r-sm);background:color-mix(in srgb, var(--warn) 8%, transparent);margin:0;padding:10px 13px;font-size:13px}.gate-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.gate-list li{flex-direction:column;gap:5px;display:flex}.gate-top{align-items:baseline;gap:8px;font-size:13px;display:flex}.gate-row{border-radius:var(--r-sm);width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;box-sizing:content-box;background:0 0;border:0;flex-direction:column;gap:5px;margin:-6px -8px;padding:6px 8px;display:flex}.gate-row:hover{background:var(--surface-2)}.gate-row:hover .gate-name{color:var(--accent-text)}.gate-name{color:var(--text)}@keyframes lawFlash{0%{box-shadow:inset 0 0 0 2px var(--accent);background:var(--accent-soft)}to{background:0 0;box-shadow:inset 0 0 0 2px #0000}}.law-flash{animation:1.6s cubic-bezier(.22,1,.36,1) lawFlash}@media (prefers-reduced-motion:reduce){.law-flash{animation-duration:10ms}}.gate-n{margin-left:auto}.gate-list .hbar{flex:none;width:100%}.pad-wide{max-width:none}.library{min-height:calc(100vh - var(--topbar-h) - 150px);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);grid-template-columns:232px minmax(0,380px) minmax(0,1fr);display:grid;overflow:hidden}.library.locked{grid-template-columns:minmax(0,380px) minmax(0,1fr)}.lib-kinds{background:var(--bg-2);border-right:1px solid var(--line);flex-direction:column;gap:16px;padding:22px 14px;display:flex}.lib-title{flex-direction:column;gap:2px;padding:0 8px;font-size:13px;display:flex}.lib-title h1.h{margin:0;font-size:24px}.lib-kinds .stackbar{margin:0 8px}.kind-list{flex-direction:column;gap:2px;display:flex}.kind-list a{border-radius:var(--r-sm);color:var(--text-2);justify-content:space-between;gap:8px;padding:8px;display:flex}.kind-list a:hover{background:var(--surface);color:var(--text)}.kind-list a.on{background:var(--surface-3);color:var(--text);font-weight:600}.rail-cats{border-left:1px solid var(--line-2);flex-direction:column;gap:6px;margin:2px 0 6px 12px;padding-left:8px;display:flex}.rail-cats ul{flex-direction:column;gap:1px;margin:0;padding:0;list-style:none;display:flex}.rail-cats button{border-radius:var(--r-sm);width:100%;color:var(--text-2);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:5px 8px;font-size:12.5px;display:flex}.rail-cats button:hover{background:var(--surface);color:var(--text)}.rail-cats button.on{background:var(--surface-3);color:var(--text);font-weight:600}.rail-cats .cdot{background:var(--cc,var(--text-3));border-radius:50%;flex:none;width:7px;height:7px}.rail-cats .rc-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.rail-mix{gap:2px;height:4px;margin:0 8px;display:flex}.rail-mix span{background:var(--cc,var(--text-3));border-radius:2px;flex-basis:0;transition:opacity .14s}.rail-mix span.dim{opacity:.25}.lib-list{border-right:1px solid var(--line);flex-direction:column;min-width:0;min-height:0;display:flex}.lib-list-head{border-bottom:1px solid var(--line);padding:14px 18px}.library .lib-rows{max-height:calc(100vh - var(--topbar-h) - 250px);flex:1;overflow:auto}.library .lib-row{color:var(--text);flex-direction:column;gap:3px;padding:10px 18px;display:flex}.library .lib-row.on{background:var(--accent-soft)}.library .lib-row.on .lr-name{color:var(--text)}.library .lr-desc{font-size:13px}.lib-reader{flex-direction:column;gap:12px;min-width:0;padding:28px 36px;display:flex}.reader-tags{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.reader-title{font-family:var(--font-display);letter-spacing:-.02em;overflow-wrap:anywhere;margin:0;font-size:28px;font-weight:700}.reader-lede{max-width:62ch;color:var(--text-2);margin:0;font-size:16px;line-height:1.5}.reader-src{overflow-wrap:anywhere;margin:0;font-size:12px}.lib-reader .hr{margin:6px 0}.lib-reader .detail-doc{max-width:76ch;padding:0}.card-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:20px;display:grid}.big-num{color:var(--text-3);margin:0}.big-num .mono{color:var(--text);font-size:26px}.slots{grid-template-columns:repeat(var(--slots,15), minmax(0, 1fr));gap:4px;padding-top:6px;display:grid}.slots span{border:1px dashed var(--line-3);border-radius:4px;height:26px}.slots span.used{background:var(--accent);border:0}.hb-n.warn{color:var(--warn)}.hosts{grid-template-columns:minmax(0,1fr) 380px;align-items:start;gap:20px;display:grid}.hosts-main{flex-direction:column;gap:16px;min-width:0;display:flex}.inst-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:12px;padding:14px 20px 12px;display:flex}.inst-head h2{margin:0;font-size:15px;font-weight:700}.inst-head p{margin:2px 0 0;font-size:13px}.inst-deploy{border-bottom:1px solid var(--line);padding:16px 20px}.inst-empty{color:var(--text-3);padding:20px;font-size:13px}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;font-size:13px;display:flex}.tbl-scroll{overflow-x:auto}.hosts-tbl th{font-family:var(--font-ui);letter-spacing:0;text-transform:none;padding:12px 14px 10px;font-size:12px;font-weight:600}.hosts-tbl th:first-child,.hosts-tbl td:first-child{padding-left:20px}.hosts-tbl td{white-space:nowrap}.hosts-tbl tr.pickable{cursor:pointer}.hosts-tbl tr.pickable:hover{background:var(--surface-2)}.hosts-tbl tr.on,.hosts-tbl tr.on:hover{background:var(--accent-soft)}.hosts-tbl tr.on .row-pick{color:var(--accent-text)}.hosts-tbl .pick-mark{text-align:right;color:var(--accent-text);white-space:nowrap;font-size:12px;font-weight:600}.install-panel .ip-eyebrow{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent-text);font-size:10.5px}.install-panel .ip-kind{color:var(--text-2);margin-top:-6px;font-size:13px}.hosts-tbl tr.quiet td{color:var(--text-3)}.path-cell{text-overflow:ellipsis;max-width:280px;color:var(--text-2);font-size:12px;overflow:hidden}.row-pick{font:inherit;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:0;padding:0;font-weight:600}.row-pick:hover{color:var(--accent-text)}.install-panel{top:calc(var(--topbar-h) + 16px);background:var(--bg-2);border:1px solid var(--accent-line);border-radius:var(--r-md);flex-direction:column;gap:16px;padding:24px;display:flex;position:sticky}.ip-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.ip-head h2{margin:0;font-size:20px;font-weight:700}code.ip-path{color:var(--text-3);overflow-wrap:anywhere;background:0 0;border:0;padding:0;font-size:12px}.ip-picks{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.ip-picks .dp-field,.field{flex-direction:column;gap:6px;min-width:0;font-size:13px;font-weight:600;display:flex}.ip-picks .dp-field:first-child{grid-column:1/-1}.ip-picks .sel,.field .sel{width:100%;min-width:0;font-family:var(--font-ui)}.ip-block{flex-direction:column;gap:6px;display:flex}.ip-label{font-size:13px;font-weight:600}.install-panel .mcp-target{border:0;border-radius:0;margin:0;overflow:visible}.install-panel .mcp-target .mt-head{background:0 0;flex-wrap:wrap;padding:4px 0}.install-panel .mcp-row{justify-content:space-between;padding:9px 0}.install-panel .card{box-shadow:none;background:0 0;border:0;margin:0;padding:0}.install-panel .card .card-head{margin-bottom:6px}.install-panel .card .card-head h3{font-family:var(--font-ui);font-size:13px;font-weight:600}.ip-switch{color:var(--text-2);align-items:center;gap:10px;font-size:13px;display:flex}.ip-spacer{flex:1}.ip-actions{border-top:1px solid var(--line);flex-wrap:wrap;gap:10px;padding-top:16px;display:flex}.install-panel .h-remove{border:1px solid color-mix(in srgb, var(--bad) 40%, transparent);border-radius:var(--r-sm);background:color-mix(in srgb, var(--bad) 5%, transparent);flex-direction:column;align-items:stretch;gap:10px;padding:14px;display:flex}.hr-msg{margin:0;font-size:13px}.kv-grid{grid-template-columns:96px minmax(0,1fr);row-gap:8px;margin:0;font-size:13px;display:grid}.kv-grid dt{color:var(--text-3)}.kv-grid dd{overflow-wrap:anywhere;margin:0}.tabbar,.tb-menu,.nav-scrim{display:none}@media (width<=1180px){.ov-charts,.card-row{grid-template-columns:repeat(2,minmax(0,1fr))}.split{flex-direction:column;align-items:stretch}.aside-stack{width:auto}.hosts{grid-template-columns:minmax(0,1fr)}.install-panel{position:static}.library{grid-template-columns:200px minmax(0,1fr)}.library .lib-reader{border-top:1px solid var(--line);grid-column:1/-1}.library.locked .lib-reader{border-top:0;grid-column:auto}.law-wrap{--law-5:80px minmax(0, 1fr) 96px 104px}.law-latin,.law-rowhead>span:nth-child(3){display:none}.needs{grid-template-columns:max-content minmax(0,1fr) max-content}.needs-where{display:none}}@media (width<=960px){:root{--rail-w:62px}.sidebar{align-items:stretch;padding:18px 8px}.sb-brand{justify-content:center;padding:4px 0 16px}.sb-brand-text,.sb-vitals{display:none}.sb-label,.sb-count{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}a.sb-item{justify-content:center;padding:10px 0}.tier-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.tier:nth-child(2){border-right:0}.tier:nth-child(-n+2){border-bottom:1px solid var(--line)}.tb-search input{width:200px}}@media (width<=720px){:root{--rail-w:248px}.app{grid-template-columns:minmax(0,1fr)}.tb-menu{flex:none;place-items:center;display:inline-grid}.topbar{padding:0 16px}.crumb-root,.crumbs>[aria-hidden],.tb-harness{display:none}.tb-search input{width:112px}.tb-search .kbd{display:none}.page .seg{flex-wrap:wrap;max-width:100%}.sidebar{z-index:40;width:var(--rail-w);visibility:hidden;height:100dvh;padding:20px 12px 14px;transition:transform .22s,visibility .22s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%);box-shadow:0 0 60px -10px #000c}.app.nav-open .sidebar{visibility:visible;transform:none}.sb-brand{justify-content:flex-start;padding:4px 8px 20px}.sb-brand-text,.sb-vitals{display:flex}.sb-label,.sb-count{clip-path:none;width:auto;height:auto;position:static}a.sb-item{justify-content:flex-start;padding:9px 10px}.nav-scrim{z-index:39;cursor:pointer;background:#0000008c;border:0;padding:0;display:block;position:fixed;inset:0}.page{padding:18px 16px 150px}.tabbar{z-index:25;background:var(--bg-2);border-top:1px solid var(--line);grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;height:64px;display:grid;position:fixed;bottom:0;left:0;right:0}.tabbar a{min-width:0;color:var(--text-3);white-space:nowrap;flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:11px;font-weight:600;display:flex;overflow:hidden}.tabbar a.on{color:var(--accent-text)}.tabbar .glyph{width:20px;height:20px}.console{bottom:64px}.ov-charts,.card-row{grid-template-columns:minmax(0,1fr)}.health{flex-wrap:wrap}.needs{grid-template-columns:minmax(0,1fr) max-content;column-gap:10px}.needs .tag{display:none}.law-wrap{--law-5:64px minmax(0, 1fr) 84px}.law-enf,.law-rowhead>span:nth-child(5),.law-note{display:none}.library,.library.locked{grid-template-columns:minmax(0,1fr)}.lib-kinds{border-right:0;border-bottom:1px solid var(--line);padding:16px 12px}.kind-list{grid-auto-columns:max-content;grid-auto-flow:column;gap:2px;display:grid;overflow-x:auto}.kind-list a{white-space:nowrap;grid-row:1}.lib-kinds{container-type:inline-size}.rail-cats{border-left:0;grid-area:2/1/auto/span 12;width:100cqi;margin:6px 0 0;padding:0;position:sticky;left:0}.rail-cats ul{flex-flow:wrap;gap:4px}.rail-cats button{border:1px solid var(--line);width:auto}.lib-list{border-right:0}.library .lib-rows{max-height:45vh}.library .lib-reader{border-top:1px solid var(--line);grid-column:auto;padding:20px 16px}.hosts-tbl th:nth-child(2),.hosts-tbl td:nth-child(2){display:none}.ip-picks{grid-template-columns:minmax(0,1fr)}.slots span{height:20px}}@media (width<=720px) and (prefers-reduced-motion:reduce){.sidebar{transition:none}}.reader-head{align-items:center;gap:18px;display:flex}.reader-head .reader-title{flex:0 auto;width:auto;min-width:0;margin:0}.agent-glyph{color:var(--accent-text);flex:none;display:block;overflow:visible}.agent-glyph g,.agent-glyph path,.agent-glyph circle,.agent-glyph ellipse,.agent-glyph rect{transform-box:fill-box;transform-origin:50%}.agent-glyph .ag-f{fill:currentColor;fill-opacity:.18}.ag-disc{fill:currentColor;fill-opacity:.07;stroke:none}.ag-ring{opacity:.35;animation:40s linear infinite agRing}.ag-late{animation-delay:.5s!important}.ag-later{animation-delay:1s!important}.ag-wave{transform-origin:0;animation:2.6s ease-in-out infinite agWave}.ag-call{opacity:.6;animation:2.6s ease-out infinite agCall}.ag-draw{stroke-dasharray:100;animation:4.5s cubic-bezier(.65,0,.35,1) infinite agDraw}.ag-blink{animation:1.1s step-end infinite agBlink}.ag-nudge-l{animation:3s ease-in-out infinite agNudgeL}.ag-nudge-r{animation:3s ease-in-out infinite agNudgeR}.ag-write{animation:4.5s ease-in-out infinite agWrite}.ag-rise{transform-origin:bottom;animation:4s cubic-bezier(.22,1,.36,1) infinite agRise}.ag-search{animation:4s ease-in-out infinite agSearch}.ag-frame{animation:3s ease-in-out infinite agFrame}.ag-turn{animation:6s cubic-bezier(.65,0,.35,1) infinite agTurn}.ag-drain{transform-origin:bottom;animation:6s linear infinite agDrain}.ag-fill{transform-origin:bottom;animation:6s linear infinite agFillUp}.ag-gauge{transform-origin:0 100%;animation:3.2s ease-in-out infinite agGauge}.ag-tilt{transform-origin:top;animation:3.6s ease-in-out infinite agTilt}.ag-spin{animation:4s linear infinite agSpin}.ag-orbit{transform-box:view-box;transform-origin:30px 34px;animation:8s linear infinite agOrbit}.ag-sweep{animation:4s ease-in-out infinite agSweep}.ag-mark{opacity:0;animation:4s ease-in-out infinite agMark}.ag-ripple{animation:2.8s ease-out infinite agRipple}.ag-lean{transform-origin:bottom;animation:3s ease-in-out infinite agLean}.ag-grow{transform-origin:bottom;animation:5s ease-in-out infinite agGrow}.ag-sway{transform-origin:0 100%;animation:3s ease-in-out infinite agSway}.ag-slosh{animation:3s ease-in-out infinite agSlosh}.ag-bubble{animation:2.4s ease-in infinite agBubble}.ag-beat{animation:1.5s ease-in-out infinite agBeat}.ag-twinkle{animation:2.2s ease-in-out infinite agTwinkle}.ag-rays{animation:24s linear infinite agRing}.ag-pulse{animation:2.6s ease-in-out infinite agPulse}@keyframes agRing{to{transform:rotate(360deg)}}@keyframes agWave{50%{transform:skewY(-7deg)scaleX(.93)}}@keyframes agCall{0%{opacity:0;transform:translate(-3px)}40%{opacity:.7}to{opacity:0;transform:translate(2px)}}@keyframes agDraw{0%{stroke-dashoffset:100px}45%,80%{stroke-dashoffset:0}to{stroke-dashoffset:-100px}}@keyframes agBlink{50%{opacity:0}}@keyframes agNudgeL{50%{transform:translate(-2px)}}@keyframes agNudgeR{50%{transform:translate(2px)}}@keyframes agWrite{0%,to{transform:translate(0)}30%{transform:translate(-14px,-12px)}60%{transform:translate(-8px,-4px)}}@keyframes agRise{0%{transform:scaleY(.2)}40%,85%{transform:scaleY(1)}to{transform:scaleY(.2)}}@keyframes agSearch{20%{transform:rotate(35deg)}45%{transform:rotate(-25deg)}70%{transform:rotate(10deg)}}@keyframes agFrame{50%{transform:scale(.86)}}@keyframes agTurn{0%,42%{transform:rotate(0)}50%,92%{transform:rotate(180deg)}to{transform:rotate(180deg)}}@keyframes agDrain{0%{transform:scaleY(1)}42%,to{transform:scaleY(.15)}}@keyframes agFillUp{0%{transform:scaleY(.15)}42%,to{transform:scaleY(1)}}@keyframes agGauge{0%,to{transform:rotate(-70deg)}55%{transform:rotate(8deg)}65%{transform:rotate(-2deg)}}@keyframes agTilt{25%{transform:rotate(7deg)}60%{transform:rotate(-4deg)}80%{transform:rotate(1deg)}}@keyframes agSpin{50%{transform:scaleX(.12)}}@keyframes agOrbit{to{transform:rotate(360deg)}}@keyframes agSweep{50%{transform:translate(16px)}}@keyframes agMark{0%,45%{opacity:0}55%,90%{opacity:1}to{opacity:0}}@keyframes agRipple{0%{opacity:.6;transform:scale(1)}to{opacity:0;transform:scale(1.25)}}@keyframes agLean{50%{transform:rotate(-12deg)}}@keyframes agGrow{0%,to{transform:scale(.9)}50%{transform:scale(1)}}@keyframes agSway{50%{transform:rotate(-8deg)}}@keyframes agSlosh{50%{transform:skew(4deg)}}@keyframes agBubble{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-16px)}}@keyframes agBeat{12%{transform:scale(1.14)}24%{transform:scale(.98)}36%{transform:scale(1.08)}50%{transform:scale(1)}}@keyframes agTwinkle{50%{opacity:.15;transform:rotate(45deg)scale(.7)}}@keyframes agPulse{50%{opacity:.75;transform:scale(1.07)}}@media (prefers-reduced-motion:reduce){.agent-glyph *{animation:none!important}.ag-draw{stroke-dasharray:none}.ag-mark{opacity:1}}.loop-graph{min-width:0}.loop-rules{max-width:76ch;color:var(--text-2);margin:0;padding-left:18px;font-size:13.5px}.loop-rules li+li{margin-top:4px}.loop-ring{width:100%;max-width:680px;height:auto;font-family:var(--font-ui);margin:0 auto;display:block}.loop-run-wait{margin:0;font-size:12.5px}.loop-run-preset{align-items:center;gap:8px;display:flex}.loop-history{border:1px solid var(--line);border-radius:var(--r-md);overflow-x:auto}.loop-h2{margin:10px 0 0;font-size:15px;font-weight:700}.loop-brick-list{border:1px solid var(--line);border-radius:var(--r-md);margin:0;padding:0;list-style:none;overflow:hidden}.loop-brick{border-bottom:1px solid var(--line);scroll-margin-top:calc(var(--topbar-h) + 12px);flex-wrap:wrap;align-items:center;gap:6px 10px;padding:9px 14px;transition:background .2s;display:flex}.loop-brick:last-child{border-bottom:0}.loop-brick.on{background:var(--accent-soft)}.loop-brick.dimmed{opacity:.55}.loop-brick b{min-width:9em;font-size:13.5px}.loop-brick b a{color:var(--text)}.loop-brick b a:hover{color:var(--accent-text)}.loop-brick .mono{font-size:12px}.loop-facts{grid-template-columns:max-content minmax(0,1fr);gap:6px 18px;margin:0;font-size:13.5px;display:grid}.loop-facts dt{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);align-self:center;font-size:11px}.loop-facts dd{overflow-wrap:anywhere;flex-wrap:wrap;align-items:center;gap:4px;margin:0;display:flex}.loop-src-bar{margin-bottom:12px}.loop-brick-src{white-space:pre-wrap;max-height:480px;font-family:var(--font-mono);background:var(--bg-2);border:1px solid var(--line);border-radius:var(--r-sm);margin:0;padding:10px 12px;font-size:12px;overflow:auto}.loop-problems{border-color:color-mix(in srgb, var(--warn) 40%, transparent);margin-bottom:16px}.loop-problems ul{margin:0;padding-left:18px}.lr-ring{fill:none;stroke:var(--accent);stroke-width:3px;stroke-linecap:round}.lr-inner{fill:color-mix(in srgb, var(--good) 6%, transparent);stroke:color-mix(in srgb, var(--good) 25%, transparent);stroke-width:1px}path.lr-inner{fill:none;stroke:var(--good);stroke-width:2.5px;stroke-linecap:round}.lr-flow{fill:none;stroke:var(--line-3);stroke-width:1.6px}.lr-box{fill:none;stroke:color-mix(in srgb, var(--good) 45%, transparent);stroke-width:1.2px}.lr-head-ring{fill:var(--accent)}.lr-head-inner{fill:var(--good)}.lr-head-flow{fill:var(--line-3)}.lr-node{cursor:pointer}.lr-node circle{fill:color-mix(in srgb, var(--accent) 12%, var(--surface));stroke:var(--accent);stroke-width:2px}.lr-node.inner circle{stroke:var(--good);fill:color-mix(in srgb, var(--good) 12%, var(--surface))}.lr-node text{fill:var(--text);font-size:11.5px;font-weight:600}.lr-node:hover circle,.lr-node:focus-visible circle{stroke-width:3px}.lr-node:focus{outline:none}.lr-node.current circle,.lr-node.inner.current circle{fill:var(--accent);stroke:var(--accent);stroke-width:4px}.lr-node.current text{fill:var(--accent-ink)}.lr-gate circle{fill:var(--warn)}.lr-gate text:first-of-type{fill:var(--surface);font-size:14px}.loop-ring .lr-human circle:first-of-type{fill:var(--surface);stroke:var(--text-2);stroke-width:1.4px}.loop-ring .lr-human path.lr-human-fig,.loop-ring .lr-human circle.lr-human-fig{fill:var(--text);stroke:none}.lr-lbl{fill:var(--text);font-size:14px;font-weight:600}.lr-sub{fill:var(--text-2);font-size:11px}.lr-sub.lr-good{fill:var(--good)}.lr-sub.lr-warn{fill:var(--warn)}.lr-sub.lr-acc{fill:var(--accent)}.lr-title{fill:var(--text);font-size:18px;font-weight:700}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as e}from"./sections-GalMS0Zv.js";var t=e((e=>{var t=Symbol.for(`react.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.provider`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.iterator;function p(e){return typeof e!=`object`||!e?null:(e=f&&e[f]||e[`@@iterator`],typeof e==`function`?e:null)}var m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},h=Object.assign,g={};function _(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||m}_.prototype.isReactComponent={},_.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`setState(...): takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},_.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function v(){}v.prototype=_.prototype;function y(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||m}var b=y.prototype=new v;b.constructor=y,h(b,_.prototype),b.isPureReactComponent=!0;var ee=Array.isArray,te=Object.prototype.hasOwnProperty,x={current:null},ne={key:!0,ref:!0,__self:!0,__source:!0};function re(e,n,r){var i,a={},o=null,s=null;if(n!=null)for(i in n.ref!==void 0&&(s=n.ref),n.key!==void 0&&(o=``+n.key),n)te.call(n,i)&&!ne.hasOwnProperty(i)&&(a[i]=n[i]);var c=arguments.length-2;if(c===1)a.children=r;else if(1<c){for(var l=Array(c),u=0;u<c;u++)l[u]=arguments[u+2];a.children=l}if(e&&e.defaultProps)for(i in c=e.defaultProps,c)a[i]===void 0&&(a[i]=c[i]);return{$$typeof:t,type:e,key:o,ref:s,props:a,_owner:x.current}}function ie(e,n){return{$$typeof:t,type:e.type,key:n,ref:e.ref,props:e.props,_owner:e._owner}}function ae(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function oe(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var se=/\/+/g;function ce(e,t){return typeof e==`object`&&e&&e.key!=null?oe(``+e.key):t.toString(36)}function le(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0}}if(c)return c=e,o=o(c),e=a===``?`.`+ce(c,0):a,ee(o)?(i=``,e!=null&&(i=e.replace(se,`$&/`)+`/`),le(o,r,i,``,function(e){return e})):o!=null&&(ae(o)&&(o=ie(o,i+(!o.key||c&&c.key===o.key?``:(``+o.key).replace(se,`$&/`)+`/`)+e)),r.push(o)),1;if(c=0,a=a===``?`.`:a+`:`,ee(e))for(var l=0;l<e.length;l++){s=e[l];var u=a+ce(s,l);c+=le(s,r,i,u,o)}else if(u=p(e),typeof u==`function`)for(e=u.call(e),l=0;!(s=e.next()).done;)s=s.value,u=a+ce(s,l++),c+=le(s,r,i,u,o);else if(s===`object`)throw r=String(e),Error(`Objects are not valid as a React child (found: `+(r===`[object Object]`?`object with keys {`+Object.keys(e).join(`, `)+`}`:r)+`). If you meant to render a collection of children, use an array instead.`);return c}function ue(e,t,n){if(e==null)return e;var r=[],i=0;return le(e,r,``,``,function(e){return t.call(n,e,i++)}),r}function de(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(t){(e._status===0||e._status===-1)&&(e._status=1,e._result=t)},function(t){(e._status===0||e._status===-1)&&(e._status=2,e._result=t)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var S={current:null},fe={transition:null},pe={ReactCurrentDispatcher:S,ReactCurrentBatchConfig:fe,ReactCurrentOwner:x};function me(){throw Error(`act(...) is not supported in production builds of React.`)}e.Children={map:ue,forEach:function(e,t,n){ue(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return ue(e,function(){t++}),t},toArray:function(e){return ue(e,function(e){return e})||[]},only:function(e){if(!ae(e))throw Error(`React.Children.only expected to receive a single React element child.`);return e}},e.Component=_,e.Fragment=r,e.Profiler=a,e.PureComponent=y,e.StrictMode=i,e.Suspense=l,e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=pe,e.act=me,e.cloneElement=function(e,n,r){if(e==null)throw Error(`React.cloneElement(...): The argument must be a React element, but you passed `+e+`.`);var i=h({},e.props),a=e.key,o=e.ref,s=e._owner;if(n!=null){if(n.ref!==void 0&&(o=n.ref,s=x.current),n.key!==void 0&&(a=``+n.key),e.type&&e.type.defaultProps)var c=e.type.defaultProps;for(l in n)te.call(n,l)&&!ne.hasOwnProperty(l)&&(i[l]=n[l]===void 0&&c!==void 0?c[l]:n[l])}var l=arguments.length-2;if(l===1)i.children=r;else if(1<l){c=Array(l);for(var u=0;u<l;u++)c[u]=arguments[u+2];i.children=c}return{$$typeof:t,type:e.type,key:a,ref:o,props:i,_owner:s}},e.createContext=function(e){return e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},e.Provider={$$typeof:o,_context:e},e.Consumer=e},e.createElement=re,e.createFactory=function(e){var t=re.bind(null,e);return t.type=e,t},e.createRef=function(){return{current:null}},e.forwardRef=function(e){return{$$typeof:c,render:e}},e.isValidElement=ae,e.lazy=function(e){return{$$typeof:d,_payload:{_status:-1,_result:e},_init:de}},e.memo=function(e,t){return{$$typeof:u,type:e,compare:t===void 0?null:t}},e.startTransition=function(e){var t=fe.transition;fe.transition={};try{e()}finally{fe.transition=t}},e.unstable_act=me,e.useCallback=function(e,t){return S.current.useCallback(e,t)},e.useContext=function(e){return S.current.useContext(e)},e.useDebugValue=function(){},e.useDeferredValue=function(e){return S.current.useDeferredValue(e)},e.useEffect=function(e,t){return S.current.useEffect(e,t)},e.useId=function(){return S.current.useId()},e.useImperativeHandle=function(e,t,n){return S.current.useImperativeHandle(e,t,n)},e.useInsertionEffect=function(e,t){return S.current.useInsertionEffect(e,t)},e.useLayoutEffect=function(e,t){return S.current.useLayoutEffect(e,t)},e.useMemo=function(e,t){return S.current.useMemo(e,t)},e.useReducer=function(e,t,n){return S.current.useReducer(e,t,n)},e.useRef=function(e){return S.current.useRef(e)},e.useState=function(e){return S.current.useState(e)},e.useSyncExternalStore=function(e,t,n){return S.current.useSyncExternalStore(e,t,n)},e.useTransition=function(){return S.current.useTransition()},e.version=`18.3.1`})),n=e(((e,n)=>{n.exports=t()})),r=e((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0<n;){var r=n-1>>>1,a=e[r];if(0<i(a,t))e[r]=t,e[n]=a,n=r;else break a}}function n(e){return e.length===0?null:e[0]}function r(e){if(e.length===0)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;a:for(var r=0,a=e.length,o=a>>>1;r<o;){var s=2*(r+1)-1,c=e[s],l=s+1,u=e[l];if(0>i(c,n))l<a&&0>i(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(l<a&&0>i(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(typeof performance==`object`&&typeof performance.now==`function`){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=typeof setTimeout==`function`?setTimeout:null,_=typeof clearTimeout==`function`?clearTimeout:null,v=typeof setImmediate<`u`?setImmediate:null;typeof navigator<`u`&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function y(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function b(e){if(h=!1,y(e),!m){if(n(c)!==null)m=!0,ue(ee);else{var t=n(l);t!==null&&de(b,t.startTime-e)}}}function ee(t,i){m=!1,h&&(h=!1,_(ne),ne=-1),p=!0;var a=f;try{for(y(i),d=n(c);d!==null&&(!(d.expirationTime>i)||t&&!ae());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=i);i=e.unstable_now(),typeof s==`function`?d.callback=s:d===n(c)&&r(c),y(i)}else r(c);d=n(c)}if(d!==null)var u=!0;else{var g=n(l);g!==null&&de(b,g.startTime-i),u=!1}return u}finally{d=null,f=a,p=!1}}var te=!1,x=null,ne=-1,re=5,ie=-1;function ae(){return!(e.unstable_now()-ie<re)}function oe(){if(x!==null){var t=e.unstable_now();ie=t;var n=!0;try{n=x(!0,t)}finally{n?se():(te=!1,x=null)}}else te=!1}var se;if(typeof v==`function`)se=function(){v(oe)};else if(typeof MessageChannel<`u`){var ce=new MessageChannel,le=ce.port2;ce.port1.onmessage=oe,se=function(){le.postMessage(null)}}else se=function(){g(oe,0)};function ue(e){x=e,te||(te=!0,se())}function de(t,n){ne=g(function(){t(e.unstable_now())},n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_continueExecution=function(){m||p||(m=!0,ue(ee))},e.unstable_forceFrameRate=function(e){0>e||125<e?console.error(`forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported`):re=0<e?Math.floor(1e3/e):5},e.unstable_getCurrentPriorityLevel=function(){return f},e.unstable_getFirstCallbackNode=function(){return n(c)},e.unstable_next=function(e){switch(f){case 1:case 2:case 3:var t=3;break;default:t=f}var n=f;f=t;try{return e()}finally{f=n}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=function(){},e.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=f;f=e;try{return t()}finally{f=n}},e.unstable_scheduleCallback=function(r,i,a){var o=e.unstable_now();switch(typeof a==`object`&&a?(a=a.delay,a=typeof a==`number`&&0<a?o+a:o):a=o,r){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return s=a+s,r={id:u++,callback:i,priorityLevel:r,startTime:a,expirationTime:s,sortIndex:-1},a>o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(_(ne),ne=-1):h=!0,de(b,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,ue(ee))),r},e.unstable_shouldYield=ae,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),i=e(((e,t)=>{t.exports=r()})),a=e((e=>{var t=n(),r=i();function a(e){for(var t=`https://reactjs.org/docs/error-decoder.html?invariant=`+e,n=1;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n]);return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}var o=new Set,s={};function c(e,t){l(e,t),l(e+`Capture`,t)}function l(e,t){for(s[e]=t,e=0;e<t.length;e++)o.add(t[e])}var u=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0,d=Object.prototype.hasOwnProperty,f=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,p={},m={};function h(e){return d.call(m,e)?!0:d.call(p,e)?!1:f.test(e)?m[e]=!0:(p[e]=!0,!1)}function g(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case`function`:case`symbol`:return!0;case`boolean`:return r?!1:n===null?(e=e.toLowerCase().slice(0,5),e!==`data-`&&e!==`aria-`):!n.acceptsBooleans;default:return!1}}function _(e,t,n,r){if(t==null||g(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function v(e,t,n,r,i,a,o){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=i,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=a,this.removeEmptyString=o}var y={};`children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style`.split(` `).forEach(function(e){y[e]=new v(e,0,!1,e,null,!1,!1)}),[[`acceptCharset`,`accept-charset`],[`className`,`class`],[`htmlFor`,`for`],[`httpEquiv`,`http-equiv`]].forEach(function(e){var t=e[0];y[t]=new v(t,1,!1,e[1],null,!1,!1)}),[`contentEditable`,`draggable`,`spellCheck`,`value`].forEach(function(e){y[e]=new v(e,2,!1,e.toLowerCase(),null,!1,!1)}),[`autoReverse`,`externalResourcesRequired`,`focusable`,`preserveAlpha`].forEach(function(e){y[e]=new v(e,2,!1,e,null,!1,!1)}),`allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope`.split(` `).forEach(function(e){y[e]=new v(e,3,!1,e.toLowerCase(),null,!1,!1)}),[`checked`,`multiple`,`muted`,`selected`].forEach(function(e){y[e]=new v(e,3,!0,e,null,!1,!1)}),[`capture`,`download`].forEach(function(e){y[e]=new v(e,4,!1,e,null,!1,!1)}),[`cols`,`rows`,`size`,`span`].forEach(function(e){y[e]=new v(e,6,!1,e,null,!1,!1)}),[`rowSpan`,`start`].forEach(function(e){y[e]=new v(e,5,!1,e.toLowerCase(),null,!1,!1)});var b=/[\-:]([a-z])/g;function ee(e){return e[1].toUpperCase()}`accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height`.split(` `).forEach(function(e){var t=e.replace(b,ee);y[t]=new v(t,1,!1,e,null,!1,!1)}),`xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type`.split(` `).forEach(function(e){var t=e.replace(b,ee);y[t]=new v(t,1,!1,e,`http://www.w3.org/1999/xlink`,!1,!1)}),[`xml:base`,`xml:lang`,`xml:space`].forEach(function(e){var t=e.replace(b,ee);y[t]=new v(t,1,!1,e,`http://www.w3.org/XML/1998/namespace`,!1,!1)}),[`tabIndex`,`crossOrigin`].forEach(function(e){y[e]=new v(e,1,!1,e.toLowerCase(),null,!1,!1)}),y.xlinkHref=new v(`xlinkHref`,1,!1,`xlink:href`,`http://www.w3.org/1999/xlink`,!0,!1),[`src`,`href`,`action`,`formAction`].forEach(function(e){y[e]=new v(e,1,!1,e.toLowerCase(),null,!0,!0)});function te(e,t,n,r){var i=y.hasOwnProperty(t)?y[t]:null;(i===null?r||!(2<t.length)||t[0]!==`o`&&t[0]!==`O`||t[1]!==`n`&&t[1]!==`N`:i.type!==0)&&(_(t,n,i,r)&&(n=null),r||i===null?h(t)&&(n===null?e.removeAttribute(t):e.setAttribute(t,``+n)):i.mustUseProperty?e[i.propertyName]=n===null?i.type!==3&&``:n:(t=i.attributeName,r=i.attributeNamespace,n===null?e.removeAttribute(t):(i=i.type,n=i===3||i===4&&!0===n?``:``+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}var x=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,ne=Symbol.for(`react.element`),re=Symbol.for(`react.portal`),ie=Symbol.for(`react.fragment`),ae=Symbol.for(`react.strict_mode`),oe=Symbol.for(`react.profiler`),se=Symbol.for(`react.provider`),ce=Symbol.for(`react.context`),le=Symbol.for(`react.forward_ref`),ue=Symbol.for(`react.suspense`),de=Symbol.for(`react.suspense_list`),S=Symbol.for(`react.memo`),fe=Symbol.for(`react.lazy`),pe=Symbol.for(`react.offscreen`),me=Symbol.iterator;function he(e){return typeof e!=`object`||!e?null:(e=me&&e[me]||e[`@@iterator`],typeof e==`function`?e:null)}var C=Object.assign,ge;function _e(e){if(ge===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);ge=t&&t[1]||``}return`
|
|
1
|
+
import{t as e}from"./rolldown-runtime-hePW80VL.js";var t=e((e=>{var t=Symbol.for(`react.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.provider`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.iterator;function p(e){return typeof e!=`object`||!e?null:(e=f&&e[f]||e[`@@iterator`],typeof e==`function`?e:null)}var m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},h=Object.assign,g={};function _(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||m}_.prototype.isReactComponent={},_.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`setState(...): takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},_.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function v(){}v.prototype=_.prototype;function y(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||m}var b=y.prototype=new v;b.constructor=y,h(b,_.prototype),b.isPureReactComponent=!0;var ee=Array.isArray,te=Object.prototype.hasOwnProperty,x={current:null},ne={key:!0,ref:!0,__self:!0,__source:!0};function re(e,n,r){var i,a={},o=null,s=null;if(n!=null)for(i in n.ref!==void 0&&(s=n.ref),n.key!==void 0&&(o=``+n.key),n)te.call(n,i)&&!ne.hasOwnProperty(i)&&(a[i]=n[i]);var c=arguments.length-2;if(c===1)a.children=r;else if(1<c){for(var l=Array(c),u=0;u<c;u++)l[u]=arguments[u+2];a.children=l}if(e&&e.defaultProps)for(i in c=e.defaultProps,c)a[i]===void 0&&(a[i]=c[i]);return{$$typeof:t,type:e,key:o,ref:s,props:a,_owner:x.current}}function ie(e,n){return{$$typeof:t,type:e.type,key:n,ref:e.ref,props:e.props,_owner:e._owner}}function ae(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function oe(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var se=/\/+/g;function ce(e,t){return typeof e==`object`&&e&&e.key!=null?oe(``+e.key):t.toString(36)}function le(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0}}if(c)return c=e,o=o(c),e=a===``?`.`+ce(c,0):a,ee(o)?(i=``,e!=null&&(i=e.replace(se,`$&/`)+`/`),le(o,r,i,``,function(e){return e})):o!=null&&(ae(o)&&(o=ie(o,i+(!o.key||c&&c.key===o.key?``:(``+o.key).replace(se,`$&/`)+`/`)+e)),r.push(o)),1;if(c=0,a=a===``?`.`:a+`:`,ee(e))for(var l=0;l<e.length;l++){s=e[l];var u=a+ce(s,l);c+=le(s,r,i,u,o)}else if(u=p(e),typeof u==`function`)for(e=u.call(e),l=0;!(s=e.next()).done;)s=s.value,u=a+ce(s,l++),c+=le(s,r,i,u,o);else if(s===`object`)throw r=String(e),Error(`Objects are not valid as a React child (found: `+(r===`[object Object]`?`object with keys {`+Object.keys(e).join(`, `)+`}`:r)+`). If you meant to render a collection of children, use an array instead.`);return c}function ue(e,t,n){if(e==null)return e;var r=[],i=0;return le(e,r,``,``,function(e){return t.call(n,e,i++)}),r}function de(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(t){(e._status===0||e._status===-1)&&(e._status=1,e._result=t)},function(t){(e._status===0||e._status===-1)&&(e._status=2,e._result=t)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var S={current:null},fe={transition:null},pe={ReactCurrentDispatcher:S,ReactCurrentBatchConfig:fe,ReactCurrentOwner:x};function me(){throw Error(`act(...) is not supported in production builds of React.`)}e.Children={map:ue,forEach:function(e,t,n){ue(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return ue(e,function(){t++}),t},toArray:function(e){return ue(e,function(e){return e})||[]},only:function(e){if(!ae(e))throw Error(`React.Children.only expected to receive a single React element child.`);return e}},e.Component=_,e.Fragment=r,e.Profiler=a,e.PureComponent=y,e.StrictMode=i,e.Suspense=l,e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=pe,e.act=me,e.cloneElement=function(e,n,r){if(e==null)throw Error(`React.cloneElement(...): The argument must be a React element, but you passed `+e+`.`);var i=h({},e.props),a=e.key,o=e.ref,s=e._owner;if(n!=null){if(n.ref!==void 0&&(o=n.ref,s=x.current),n.key!==void 0&&(a=``+n.key),e.type&&e.type.defaultProps)var c=e.type.defaultProps;for(l in n)te.call(n,l)&&!ne.hasOwnProperty(l)&&(i[l]=n[l]===void 0&&c!==void 0?c[l]:n[l])}var l=arguments.length-2;if(l===1)i.children=r;else if(1<l){c=Array(l);for(var u=0;u<l;u++)c[u]=arguments[u+2];i.children=c}return{$$typeof:t,type:e.type,key:a,ref:o,props:i,_owner:s}},e.createContext=function(e){return e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},e.Provider={$$typeof:o,_context:e},e.Consumer=e},e.createElement=re,e.createFactory=function(e){var t=re.bind(null,e);return t.type=e,t},e.createRef=function(){return{current:null}},e.forwardRef=function(e){return{$$typeof:c,render:e}},e.isValidElement=ae,e.lazy=function(e){return{$$typeof:d,_payload:{_status:-1,_result:e},_init:de}},e.memo=function(e,t){return{$$typeof:u,type:e,compare:t===void 0?null:t}},e.startTransition=function(e){var t=fe.transition;fe.transition={};try{e()}finally{fe.transition=t}},e.unstable_act=me,e.useCallback=function(e,t){return S.current.useCallback(e,t)},e.useContext=function(e){return S.current.useContext(e)},e.useDebugValue=function(){},e.useDeferredValue=function(e){return S.current.useDeferredValue(e)},e.useEffect=function(e,t){return S.current.useEffect(e,t)},e.useId=function(){return S.current.useId()},e.useImperativeHandle=function(e,t,n){return S.current.useImperativeHandle(e,t,n)},e.useInsertionEffect=function(e,t){return S.current.useInsertionEffect(e,t)},e.useLayoutEffect=function(e,t){return S.current.useLayoutEffect(e,t)},e.useMemo=function(e,t){return S.current.useMemo(e,t)},e.useReducer=function(e,t,n){return S.current.useReducer(e,t,n)},e.useRef=function(e){return S.current.useRef(e)},e.useState=function(e){return S.current.useState(e)},e.useSyncExternalStore=function(e,t,n){return S.current.useSyncExternalStore(e,t,n)},e.useTransition=function(){return S.current.useTransition()},e.version=`18.3.1`})),n=e(((e,n)=>{n.exports=t()})),r=e((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0<n;){var r=n-1>>>1,a=e[r];if(0<i(a,t))e[r]=t,e[n]=a,n=r;else break a}}function n(e){return e.length===0?null:e[0]}function r(e){if(e.length===0)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;a:for(var r=0,a=e.length,o=a>>>1;r<o;){var s=2*(r+1)-1,c=e[s],l=s+1,u=e[l];if(0>i(c,n))l<a&&0>i(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(l<a&&0>i(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(typeof performance==`object`&&typeof performance.now==`function`){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=typeof setTimeout==`function`?setTimeout:null,_=typeof clearTimeout==`function`?clearTimeout:null,v=typeof setImmediate<`u`?setImmediate:null;typeof navigator<`u`&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function y(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function b(e){if(h=!1,y(e),!m){if(n(c)!==null)m=!0,ue(ee);else{var t=n(l);t!==null&&de(b,t.startTime-e)}}}function ee(t,i){m=!1,h&&(h=!1,_(ne),ne=-1),p=!0;var a=f;try{for(y(i),d=n(c);d!==null&&(!(d.expirationTime>i)||t&&!ae());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=i);i=e.unstable_now(),typeof s==`function`?d.callback=s:d===n(c)&&r(c),y(i)}else r(c);d=n(c)}if(d!==null)var u=!0;else{var g=n(l);g!==null&&de(b,g.startTime-i),u=!1}return u}finally{d=null,f=a,p=!1}}var te=!1,x=null,ne=-1,re=5,ie=-1;function ae(){return!(e.unstable_now()-ie<re)}function oe(){if(x!==null){var t=e.unstable_now();ie=t;var n=!0;try{n=x(!0,t)}finally{n?se():(te=!1,x=null)}}else te=!1}var se;if(typeof v==`function`)se=function(){v(oe)};else if(typeof MessageChannel<`u`){var ce=new MessageChannel,le=ce.port2;ce.port1.onmessage=oe,se=function(){le.postMessage(null)}}else se=function(){g(oe,0)};function ue(e){x=e,te||(te=!0,se())}function de(t,n){ne=g(function(){t(e.unstable_now())},n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_continueExecution=function(){m||p||(m=!0,ue(ee))},e.unstable_forceFrameRate=function(e){0>e||125<e?console.error(`forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported`):re=0<e?Math.floor(1e3/e):5},e.unstable_getCurrentPriorityLevel=function(){return f},e.unstable_getFirstCallbackNode=function(){return n(c)},e.unstable_next=function(e){switch(f){case 1:case 2:case 3:var t=3;break;default:t=f}var n=f;f=t;try{return e()}finally{f=n}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=function(){},e.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=f;f=e;try{return t()}finally{f=n}},e.unstable_scheduleCallback=function(r,i,a){var o=e.unstable_now();switch(typeof a==`object`&&a?(a=a.delay,a=typeof a==`number`&&0<a?o+a:o):a=o,r){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return s=a+s,r={id:u++,callback:i,priorityLevel:r,startTime:a,expirationTime:s,sortIndex:-1},a>o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(_(ne),ne=-1):h=!0,de(b,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,ue(ee))),r},e.unstable_shouldYield=ae,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),i=e(((e,t)=>{t.exports=r()})),a=e((e=>{var t=n(),r=i();function a(e){for(var t=`https://reactjs.org/docs/error-decoder.html?invariant=`+e,n=1;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n]);return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}var o=new Set,s={};function c(e,t){l(e,t),l(e+`Capture`,t)}function l(e,t){for(s[e]=t,e=0;e<t.length;e++)o.add(t[e])}var u=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0,d=Object.prototype.hasOwnProperty,f=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,p={},m={};function h(e){return d.call(m,e)?!0:d.call(p,e)?!1:f.test(e)?m[e]=!0:(p[e]=!0,!1)}function g(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case`function`:case`symbol`:return!0;case`boolean`:return r?!1:n===null?(e=e.toLowerCase().slice(0,5),e!==`data-`&&e!==`aria-`):!n.acceptsBooleans;default:return!1}}function _(e,t,n,r){if(t==null||g(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function v(e,t,n,r,i,a,o){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=i,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=a,this.removeEmptyString=o}var y={};`children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style`.split(` `).forEach(function(e){y[e]=new v(e,0,!1,e,null,!1,!1)}),[[`acceptCharset`,`accept-charset`],[`className`,`class`],[`htmlFor`,`for`],[`httpEquiv`,`http-equiv`]].forEach(function(e){var t=e[0];y[t]=new v(t,1,!1,e[1],null,!1,!1)}),[`contentEditable`,`draggable`,`spellCheck`,`value`].forEach(function(e){y[e]=new v(e,2,!1,e.toLowerCase(),null,!1,!1)}),[`autoReverse`,`externalResourcesRequired`,`focusable`,`preserveAlpha`].forEach(function(e){y[e]=new v(e,2,!1,e,null,!1,!1)}),`allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope`.split(` `).forEach(function(e){y[e]=new v(e,3,!1,e.toLowerCase(),null,!1,!1)}),[`checked`,`multiple`,`muted`,`selected`].forEach(function(e){y[e]=new v(e,3,!0,e,null,!1,!1)}),[`capture`,`download`].forEach(function(e){y[e]=new v(e,4,!1,e,null,!1,!1)}),[`cols`,`rows`,`size`,`span`].forEach(function(e){y[e]=new v(e,6,!1,e,null,!1,!1)}),[`rowSpan`,`start`].forEach(function(e){y[e]=new v(e,5,!1,e.toLowerCase(),null,!1,!1)});var b=/[\-:]([a-z])/g;function ee(e){return e[1].toUpperCase()}`accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height`.split(` `).forEach(function(e){var t=e.replace(b,ee);y[t]=new v(t,1,!1,e,null,!1,!1)}),`xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type`.split(` `).forEach(function(e){var t=e.replace(b,ee);y[t]=new v(t,1,!1,e,`http://www.w3.org/1999/xlink`,!1,!1)}),[`xml:base`,`xml:lang`,`xml:space`].forEach(function(e){var t=e.replace(b,ee);y[t]=new v(t,1,!1,e,`http://www.w3.org/XML/1998/namespace`,!1,!1)}),[`tabIndex`,`crossOrigin`].forEach(function(e){y[e]=new v(e,1,!1,e.toLowerCase(),null,!1,!1)}),y.xlinkHref=new v(`xlinkHref`,1,!1,`xlink:href`,`http://www.w3.org/1999/xlink`,!0,!1),[`src`,`href`,`action`,`formAction`].forEach(function(e){y[e]=new v(e,1,!1,e.toLowerCase(),null,!0,!0)});function te(e,t,n,r){var i=y.hasOwnProperty(t)?y[t]:null;(i===null?r||!(2<t.length)||t[0]!==`o`&&t[0]!==`O`||t[1]!==`n`&&t[1]!==`N`:i.type!==0)&&(_(t,n,i,r)&&(n=null),r||i===null?h(t)&&(n===null?e.removeAttribute(t):e.setAttribute(t,``+n)):i.mustUseProperty?e[i.propertyName]=n===null?i.type!==3&&``:n:(t=i.attributeName,r=i.attributeNamespace,n===null?e.removeAttribute(t):(i=i.type,n=i===3||i===4&&!0===n?``:``+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}var x=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,ne=Symbol.for(`react.element`),re=Symbol.for(`react.portal`),ie=Symbol.for(`react.fragment`),ae=Symbol.for(`react.strict_mode`),oe=Symbol.for(`react.profiler`),se=Symbol.for(`react.provider`),ce=Symbol.for(`react.context`),le=Symbol.for(`react.forward_ref`),ue=Symbol.for(`react.suspense`),de=Symbol.for(`react.suspense_list`),S=Symbol.for(`react.memo`),fe=Symbol.for(`react.lazy`),pe=Symbol.for(`react.offscreen`),me=Symbol.iterator;function he(e){return typeof e!=`object`||!e?null:(e=me&&e[me]||e[`@@iterator`],typeof e==`function`?e:null)}var C=Object.assign,ge;function _e(e){if(ge===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);ge=t&&t[1]||``}return`
|
|
2
2
|
`+ge+e}var ve=!1;function ye(e,t){if(!e||ve)return``;ve=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t){if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),typeof Reflect==`object`&&Reflect.construct){try{Reflect.construct(t,[])}catch(e){var r=e}Reflect.construct(e,[],t)}else{try{t.call()}catch(e){r=e}e.call(t.prototype)}}else{try{throw Error()}catch(e){r=e}e()}}catch(t){if(t&&r&&typeof t.stack==`string`){for(var i=t.stack.split(`
|
|
3
3
|
`),a=r.stack.split(`
|
|
4
4
|
`),o=i.length-1,s=a.length-1;1<=o&&0<=s&&i[o]!==a[s];)s--;for(;1<=o&&0<=s;o--,s--)if(i[o]!==a[s]){if(o!==1||s!==1)do if(o--,s--,0>s||i[o]!==a[s]){var c=`
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),s=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:`Module`}),r},c=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},l=(n,r,o)=>(o=n==null?{}:e(i(n)),c(r||!n||!n.__esModule||!a.call(n,`default`)?t(o,`default`,{value:n,enumerable:!0}):o,n));export{s as n,l as r,o as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={agents:{label:`Agents`,type:`agent`,desc:`capability specialists`,icon:`agent`},skills:{label:`Skills`,type:`skill`,desc:`repeatable workflows`,icon:`skill`},laws:{label:`Constitution`,type:`law`,desc:`ontology, invariants, doctrines`,icon:`law`},memory:{label:`Memory`,type:`memory`,desc:`durable facts`,icon:`library`},notebook:{label:`Notebook`,type:`notebook`,desc:`sovereign space`,icon:`notebook`},wiki:{label:`Wiki`,type:`wiki`,desc:`knowledge base`,icon:`graph`},config:{label:`Setup files`,type:`config`,desc:`install metadata`,icon:`settings`}},t=[`agents`,`memory`,`notebook`,`wiki`,`config`],n=[`skills`,`agents`,`memory`,`notebook`,`wiki`,`config`],r=Object.fromEntries(Object.entries(e).map(([e,t])=>[t.type,e]));export{r as i,e as n,t as r,n as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t}from"./react-Bbzhmq4v.js";var n=e(t(),1);function r(e,t,r){(0,n.useEffect)(()=>{let n=!0,r=()=>n,i=()=>{document.hidden||e(r)};e(r);let a=setInterval(i,t);return document.addEventListener(`visibilitychange`,i),()=>{n=!1,clearInterval(a),document.removeEventListener(`visibilitychange`,i)}},r)}export{r as t};
|
package/web/dist/index.html
CHANGED
|
@@ -11,11 +11,12 @@
|
|
|
11
11
|
<!-- The brand sprout as an inline SVG favicon (no extra asset to serve). -->
|
|
12
12
|
<link rel="icon" type="image/svg+xml"
|
|
13
13
|
href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 21.5v-9' stroke='%233AD4C4' stroke-width='2' stroke-linecap='round' fill='none'/%3E%3Cpath d='M12 13c0-4.5 3.2-7.5 7.5-7.5 0 4.5-3.2 7.5-7.5 7.5z' fill='%233AD4C4'/%3E%3Cpath d='M12 14.5c0-3.6-2.6-6-6-6 0 3.6 2.6 6 6 6z' fill='%233AD4C4' opacity='.42'/%3E%3C/svg%3E" />
|
|
14
|
-
<script type="module" crossorigin src="/assets/index-
|
|
15
|
-
<link rel="modulepreload" crossorigin href="/assets/
|
|
16
|
-
<link rel="modulepreload" crossorigin href="/assets/react-
|
|
17
|
-
<link rel="modulepreload" crossorigin href="/assets/api-
|
|
18
|
-
<link rel="
|
|
14
|
+
<script type="module" crossorigin src="/assets/index-CMPgezFm.js"></script>
|
|
15
|
+
<link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-hePW80VL.js">
|
|
16
|
+
<link rel="modulepreload" crossorigin href="/assets/react-Bbzhmq4v.js">
|
|
17
|
+
<link rel="modulepreload" crossorigin href="/assets/api-D_ixdyEY.js">
|
|
18
|
+
<link rel="modulepreload" crossorigin href="/assets/sections-Dg23Hel5.js">
|
|
19
|
+
<link rel="stylesheet" crossorigin href="/assets/index-DMsT4Aa6.css">
|
|
19
20
|
</head>
|
|
20
21
|
<body>
|
|
21
22
|
<div id="root"></div>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as e}from"./sections-GalMS0Zv.js";import{i as t,t as n}from"./react-B9Z_tXRV.js";import{t as r}from"./api-CyMRbU2x.js";import{M as i,O as a,c as o,q as s,v as c}from"./index-Cjr7XCA3.js";import{a as l,i as u,n as d,o as f,r as p,s as m,t as h}from"./usePoll-O0sJEw1Y.js";var g=e(t(),1),_=n();function v({s:e}){let t=u[e.status]||u.idle,n=e.files,r=e.todos,o=r&&r.total>0||e.error||e.blocked_on;return(0,_.jsxs)(`a`,{className:`card pad-md act-card`,href:`#/activity/${encodeURIComponent(e.session_id)}`,children:[(0,_.jsxs)(`div`,{className:`row between wrap gap-12`,children:[(0,_.jsxs)(`div`,{className:`row gap-10`,style:{minWidth:0},children:[(0,_.jsx)(`span`,{className:`feed-dot ${t.cls||`acc`}`,style:{width:9,height:9}}),(0,_.jsxs)(`div`,{style:{minWidth:0},children:[(0,_.jsx)(`h3`,{style:{margin:0},children:e.title||f(e.cwd)||e.session_id}),e.cwd&&(0,_.jsx)(`div`,{className:`dim mono`,style:{fontSize:12,...d},title:e.cwd,children:e.cwd})]})]}),(0,_.jsxs)(`div`,{className:`row gap-8`,style:{flexShrink:0},children:[e.model&&(0,_.jsx)(`span`,{className:`badge mono`,title:`model`,children:e.model}),e.agent&&(0,_.jsx)(`span`,{className:`badge`,children:e.agent}),(0,_.jsxs)(`span`,{className:`badge ${t.cls}`,children:[(0,_.jsx)(`span`,{className:`dot`}),t.label]}),(0,_.jsx)(a,{name:`chevron`,className:`glyph act-chev`})]})]}),e.phase&&(0,_.jsxs)(`div`,{className:`row gap-8`,style:{marginTop:10,fontSize:14},children:[(0,_.jsx)(a,{name:`activity`}),(0,_.jsx)(`span`,{style:d,children:e.phase})]}),(e.tokens>0||e.cost>0||e.turn_started_at||n&&n.count>0)&&(0,_.jsxs)(`div`,{className:`row wrap`,style:{gap:16,marginTop:12,fontSize:13,color:`var(--text-2)`},children:[e.tokens>0&&(0,_.jsxs)(`span`,{children:[m(e.tokens),` tok`]}),e.cost>0&&(0,_.jsxs)(`span`,{children:[`$`,e.cost.toFixed(2)]}),e.turn_started_at?(0,_.jsx)(`span`,{children:(0,_.jsx)(p,{startedAt:e.turn_started_at})}):null,n&&n.count>0&&(0,_.jsxs)(`span`,{children:[n.count,` file`,n.count===1?``:`s`,` `,(0,_.jsxs)(`span`,{style:{color:`var(--good)`},children:[`+`,n.additions]}),` `,(0,_.jsxs)(`span`,{style:{color:`var(--bad)`},children:[`−`,n.deletions]})]})]}),o&&(0,_.jsxs)(`div`,{className:`row between wrap gap-12`,style:{marginTop:12,paddingTop:10,borderTop:`1px solid var(--line)`},children:[r&&r.total>0?(0,_.jsxs)(`span`,{className:`row gap-8 dim`,style:{fontSize:13},children:[(0,_.jsx)(l,{done:r.done,total:r.total}),`plan `,r.done,`/`,r.total]}):(0,_.jsx)(`span`,{}),e.error?(0,_.jsx)(`span`,{className:`badge bad`,title:e.error,style:{maxWidth:300,...d},children:e.error}):e.blocked_on?(0,_.jsx)(`span`,{className:`badge bad`,title:e.blocked_on,style:{maxWidth:300,...d},children:e.blocked_on}):null]}),(0,_.jsxs)(`div`,{className:`dim mono`,style:{fontSize:11,marginTop:8},children:[`updated `,i(e.updated_at),` ago`]})]})}function y(){let[e,t]=(0,g.useState)(null),[n,i]=(0,g.useState)(``);h(e=>r.activity().then(n=>{e()&&(t(n),i(``))},t=>{e()&&i(t.message)}),2e3,[]);let a=!e||e.enabled!==!1,l=e?.activity||[],u=s(),d=async()=>{let e=!a;try{let n=await r.activityToggle(e);t(e=>({...e||{},enabled:n.enabled,activity:n.enabled&&e?.activity||[]})),i(``)}catch(e){i(e.message)}};return(0,_.jsxs)(`div`,{className:`narrow`,children:[(0,_.jsxs)(`div`,{className:`head-row mb-16`,children:[(0,_.jsxs)(`div`,{children:[(0,_.jsx)(`h1`,{className:`h`,children:`Activity`}),(0,_.jsx)(`p`,{className:`sub`,children:`Live OpenCode sessions this harness is running: what each one is doing right now. Refreshes every couple of seconds; sessions drop off when their process exits.`})]}),(0,_.jsxs)(`div`,{className:`row gap-10`,style:{alignItems:`center`,flexShrink:0},children:[(0,_.jsx)(`span`,{className:`dim mono`,style:{fontSize:12},children:a?`tracking on`:`tracking off`}),(0,_.jsx)(`div`,{className:`sw-toggle${a?` on`:``}`,role:`switch`,"aria-checked":a,"aria-label":`Toggle activity tracking`,tabIndex:0,onClick:d,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.key===` `&&e.preventDefault(),d())}})]})]}),(0,_.jsx)(o,{error:n,style:{marginBottom:12}}),e?a?l.length===0?(0,_.jsxs)(`div`,{className:`empty`,children:[(0,_.jsx)(`div`,{className:`big`,children:`No active sessions`}),`Run `,(0,_.jsx)(`code`,{children:`opencode`}),` and the sessions it spins up appear here.`]}):(0,_.jsx)(`div`,{className:`stack gap-12`,ref:u,children:l.map(e=>(0,_.jsx)(`div`,{"data-flip":e.session_id,children:(0,_.jsx)(v,{s:e})},e.session_id))}):(0,_.jsxs)(`div`,{className:`empty`,children:[(0,_.jsx)(`div`,{className:`big`,children:`Activity tracking is off`}),`The plugin isn't recording sessions. Flip the switch to turn it back on.`]}):(0,_.jsx)(c,{label:`Reading live sessions…`})]})}export{y as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{s as e}from"./sections-GalMS0Zv.js";import{i as t,t as n}from"./react-B9Z_tXRV.js";import{t as r}from"./api-CyMRbU2x.js";import{M as i,O as a,v as o}from"./index-Cjr7XCA3.js";import{i as s,n as c,o as l,r as u,s as d,t as f}from"./usePoll-O0sJEw1Y.js";var p=e(t(),1),m=n();function h(e){return e.kind===`tool`?e.status===`error`?`bad`:e.status===`completed`?`ok`:`acc`:{retry:`warn`,error:`bad`,subtask:`acc`,text:`acc`}[e.kind]||``}function g({rec:e}){let t=e.who===`you`,n=[];t||(e.kind===`tool`&&e.ms!=null&&n.push(`${(e.ms/1e3).toFixed(1)}s`),e.kind===`step`&&(e.tokens&&n.push(`${d(e.tokens)} tok`),e.cost&&n.push(`$${e.cost.toFixed(2)}`)),e.kind===`subtask`&&e.agent&&n.unshift(e.agent));let r=!t&&(e.kind===`text`||e.kind===`thinking`||e.kind===`step`),i=t?e.text:e.label||e.snippet||e.kind;return(0,m.jsxs)(`div`,{className:`row gap-10`,style:{alignItems:`baseline`},children:[(0,m.jsx)(`span`,{className:`badge ${t?``:`acc`}`,style:{flexShrink:0,minWidth:52,justifyContent:`center`},children:t?`you`:`agent`}),(0,m.jsxs)(`div`,{style:{minWidth:0,flex:1,fontSize:13},children:[!t&&(0,m.jsx)(`span`,{className:`feed-dot ${h(e)||`acc`}`,style:{display:`inline-block`,marginRight:8,verticalAlign:`middle`}}),e.kind===`thinking`&&(0,m.jsx)(`span`,{className:`dim`,children:`thinking: `}),r?(0,m.jsx)(`span`,{className:`dim`,children:i}):t?i:(0,m.jsx)(`b`,{children:i}),e.error&&(0,m.jsxs)(`span`,{className:`dim`,children:[`: `,e.error]})]}),n.length>0&&(0,m.jsx)(`span`,{className:`dim mono`,style:{flexShrink:0,fontSize:12},children:n.join(` · `)})]})}function _({turns:e}){return!e||e.length===0?(0,m.jsx)(`div`,{className:`dim`,style:{fontSize:13},children:`No conversation captured yet.`}):(0,m.jsx)(`div`,{className:`stack gap-12`,children:e.map((e,t)=>{let n=e.role===`user`;return(0,m.jsxs)(`div`,{className:`row gap-10`,style:{alignItems:`baseline`},children:[(0,m.jsx)(`span`,{className:`badge ${n?``:`acc`}`,style:{flexShrink:0,minWidth:52,justifyContent:`center`},children:n?`you`:`agent`}),(0,m.jsx)(`div`,{style:{minWidth:0,fontSize:13,color:n?`inherit`:`var(--text-2)`},children:e.text})]},t)})})}function v({sid:e}){let[t,n]=(0,p.useState)(null),[h,v]=(0,p.useState)(``),[y,b]=(0,p.useState)(!1),[x,S]=(0,p.useState)(!1);f(t=>r.activityDetail(e).then(e=>{t()&&(n(e),v(``),b(!1))},e=>{t()&&(e.status===404?b(!0):v(e.message))}),2e3,[e]);let C=(0,m.jsxs)(`a`,{className:`btn ghost sm`,href:`#/activity`,style:{marginBottom:12,display:`inline-flex`,gap:6},children:[(0,m.jsx)(a,{name:`arrow`,style:{transform:`rotate(180deg)`}}),` Activity`]});if(y)return(0,m.jsxs)(`div`,{className:`narrow`,children:[C,(0,m.jsxs)(`div`,{className:`empty`,children:[(0,m.jsx)(`div`,{className:`big`,children:`Session ended`}),`It's no longer live. `,(0,m.jsx)(`a`,{href:`#/activity`,children:`Back to Activity`}),`.`]})]});if(!t)return(0,m.jsxs)(`div`,{className:`narrow`,children:[C,(0,m.jsx)(o,{label:`Loading session…`})]});let w=t.session,T=s[w.status]||s.idle,E=w.files,D=w.todos,O=!!(E&&E.items&&E.items.length>0),k=!!(D&&D.items&&D.items.length>0),A=t.conversation||[],j=t.timeline||[],M=[...A.filter(e=>e.role===`user`).map(e=>({who:`you`,text:e.text,t:e.t||0})),...j.map(e=>({...e,who:`agent`}))].sort((e,t)=>(e.t||0)-(t.t||0));return(0,m.jsxs)(`div`,{className:`narrow`,children:[C,h&&(0,m.jsx)(`p`,{className:`badge bad`,style:{marginBottom:12},children:h}),(0,m.jsxs)(`div`,{className:`card pad-md`,children:[(0,m.jsxs)(`div`,{className:`row between wrap gap-12`,children:[(0,m.jsxs)(`div`,{style:{minWidth:0},children:[(0,m.jsx)(`h1`,{className:`h`,style:{margin:0},children:w.title||l(w.cwd)||w.session_id}),w.cwd&&(0,m.jsx)(`div`,{className:`dim mono`,style:{fontSize:12,...c},title:w.cwd,children:w.cwd})]}),(0,m.jsxs)(`div`,{className:`row gap-8`,style:{flexShrink:0},children:[w.model&&(0,m.jsx)(`span`,{className:`badge mono`,children:w.model}),w.agent&&(0,m.jsx)(`span`,{className:`badge`,children:w.agent}),(0,m.jsxs)(`span`,{className:`badge ${T.cls}`,children:[(0,m.jsx)(`span`,{className:`dot`}),T.label]})]})]}),w.phase&&(0,m.jsxs)(`div`,{className:`row gap-8`,style:{marginTop:10,fontSize:14},children:[(0,m.jsx)(a,{name:`activity`}),(0,m.jsx)(`span`,{style:c,children:w.phase})]}),(0,m.jsxs)(`div`,{className:`row wrap`,style:{gap:16,marginTop:12,fontSize:13,color:`var(--text-2)`},children:[w.tokens>0&&(0,m.jsxs)(`span`,{children:[d(w.tokens),` tok`]}),w.cost>0&&(0,m.jsxs)(`span`,{children:[`$`,w.cost.toFixed(2)]}),w.turn_started_at?(0,m.jsx)(`span`,{children:(0,m.jsx)(u,{startedAt:w.turn_started_at})}):null,(0,m.jsxs)(`span`,{className:`dim`,children:[`updated `,i(w.updated_at),` ago`]})]}),(w.error||w.blocked_on)&&(0,m.jsx)(`div`,{style:{marginTop:10},children:(0,m.jsx)(`span`,{className:`badge bad`,style:{maxWidth:`100%`,...c},children:w.error||w.blocked_on})})]}),(O||k)&&(0,m.jsxs)(`div`,{className:`grid gap-12`,style:{marginTop:12,gridTemplateColumns:O&&k?`minmax(0, 1fr) minmax(0, 1fr)`:`1fr`},children:[O&&(0,m.jsxs)(`div`,{className:`card pad-md`,children:[(0,m.jsx)(`div`,{className:`card-head`,children:(0,m.jsxs)(`h3`,{children:[`Files touched `,(0,m.jsxs)(`span`,{className:`dim`,children:[`(`,E.count,`)`]})]})}),(0,m.jsx)(`div`,{className:`stack`,style:{gap:6,marginTop:8},children:E.items.map(e=>(0,m.jsxs)(`div`,{className:`row between gap-12`,style:{fontSize:13},children:[(0,m.jsx)(`span`,{className:`mono`,style:{...c,minWidth:0,flex:1},title:e.file,children:e.file}),(0,m.jsxs)(`span`,{style:{flexShrink:0},children:[(0,m.jsxs)(`span`,{style:{color:`var(--good)`},children:[`+`,e.additions]}),` `,(0,m.jsxs)(`span`,{style:{color:`var(--bad)`},children:[`−`,e.deletions]})]})]},e.file))})]}),k&&(0,m.jsxs)(`div`,{className:`card pad-md`,children:[(0,m.jsx)(`div`,{className:`card-head`,children:(0,m.jsxs)(`h3`,{children:[`Plan`,` `,(0,m.jsxs)(`span`,{className:`dim`,children:[`(`,D.done,`/`,D.total,`)`]})]})}),(0,m.jsx)(`div`,{className:`stack`,style:{gap:6,marginTop:8},children:D.items.map((e,t)=>(0,m.jsxs)(`div`,{className:`row gap-8`,style:{fontSize:13},children:[(0,m.jsx)(`span`,{className:`feed-dot ${e.status===`completed`?`ok`:e.status===`in_progress`?`acc`:``}`}),(0,m.jsx)(`span`,{style:{textDecoration:e.status===`completed`?`line-through`:`none`,color:e.status===`completed`?`var(--text-3)`:`inherit`},children:e.content})]},t))})]})]}),(0,m.jsxs)(`div`,{className:`card pad-md`,style:{marginTop:12},children:[(0,m.jsxs)(`div`,{className:`card-head`,style:{justifyContent:`space-between`,marginBottom:12},children:[(0,m.jsx)(`h3`,{children:`Timeline`}),j.length>0&&(0,m.jsx)(`button`,{className:`btn ghost sm`,onClick:()=>S(e=>!e),children:x?`Show conversation`:`Show all ${j.length} steps`})]}),x?(0,m.jsx)(`div`,{className:`stack gap-12`,children:M.map((e,t)=>(0,m.jsx)(g,{rec:e},t))}):(0,m.jsx)(_,{turns:A})]})]})}export{v as default};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/GreenhouseView-C6ibc8IE.js","assets/sections-GalMS0Zv.js","assets/react-B9Z_tXRV.js","assets/drawable-CLS9drMb.js","assets/index-Cjr7XCA3.js","assets/api-CyMRbU2x.js","assets/index-CX_hXMi5.css","assets/jobBuckets-Dbq8ZlWW.js","assets/OperatorHudView-Bs7paWmh.js","assets/JournalView-1HbU1mfg.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{n as e,o as t,r as n,s as r}from"./sections-GalMS0Zv.js";import{i,t as a}from"./react-B9Z_tXRV.js";import{t as o}from"./api-CyMRbU2x.js";import{A as s,F as c,H as l,I as u,K as d,M as f,O as p,P as m,U as h,b as g,c as _,j as v,k as y,s as b,t as x,v as S}from"./index-Cjr7XCA3.js";var C=r(i(),1),w={neutral:`Loaded & ready`,imperial:`The Codex in force`,military:`The unit stands ready`,cyberpunk:`Jacked in`,wizard:`Wards in place`,pirate:`The crew stands ready`,gamer:`Game loaded`,sports:`The squad takes the field`,biker:`The crew rolls out`,commentator:`Lights out, away we go`,verstappen:`Setup's in`,joker:`Mic check`,mean:`Rules are up`,marvin:`Online. Reluctantly.`},T=e=>e.deployed?w[e.theme]||`Loaded & ready`:`Not deployed`,E=a();function D({value:e,size:t=232}){let n=d(e,1100)??0,r=t/2-14,i=2*Math.PI*r,a=i*(1-n);return(0,E.jsxs)(`div`,{className:`ring-wrap`,style:{width:t,height:t},children:[(0,E.jsxs)(`svg`,{viewBox:`0 0 ${t} ${t}`,children:[(0,E.jsx)(`circle`,{cx:t/2,cy:t/2,r,fill:`none`,stroke:`var(--surface-3)`,strokeWidth:`10`}),(0,E.jsx)(`circle`,{cx:t/2,cy:t/2,r,fill:`none`,stroke:`var(--accent)`,strokeWidth:`10`,strokeLinecap:`round`,strokeDasharray:i,strokeDashoffset:a}),Array.from({length:48}).map((e,i)=>{let a=i/48*2*Math.PI,o=r-18,s=r-24,c=t/2+Math.cos(a)*o,l=t/2+Math.sin(a)*o,u=t/2+Math.cos(a)*s,d=t/2+Math.sin(a)*s;return(0,E.jsx)(`line`,{x1:c,y1:l,x2:u,y2:d,stroke:`var(--line-2)`,strokeWidth:`1`,opacity:i/48<n?.9:.25},i)})]}),(0,E.jsxs)(`div`,{className:`ring-center`,children:[(0,E.jsxs)(`div`,{className:`pct`,children:[Math.round(n*100),(0,E.jsx)(`span`,{style:{fontSize:20,color:`var(--text-3)`},children:`%`})]}),(0,E.jsx)(`div`,{className:`lbl`,children:`germination`})]})]})}function O({overview:e}){let t=y(e.diff),n=e.counts||{};return(0,E.jsxs)(`div`,{className:`card kpiband rise mb-16`,children:[[{key:`agents`,label:`Agents`,hash:`#/agents`},{key:`skills`,label:`Skills`,hash:`#/skills`},{key:`laws`,label:`Invariants`,hash:`#/laws`}].map(e=>{let t=n[e.key];return(0,E.jsxs)(`a`,{className:`kseg`,href:e.hash,title:`Open ${e.label}`,children:[(0,E.jsx)(`span`,{className:`kseg-n`+(t===0?` zero`:``),children:t==null?`—`:(0,E.jsx)(h,{value:t})}),(0,E.jsx)(`span`,{className:`kseg-l`,children:e.label})]},e.key)}),(0,E.jsx)(`div`,{className:`kseg-spacer`}),(0,E.jsxs)(`button`,{className:`kseg`+(t>0?` hot`:``),onClick:()=>l(`#/diff`),title:`Open changes`,children:[(0,E.jsx)(`span`,{className:`kseg-n`+(t===0?` zero`:``),children:(0,E.jsx)(h,{value:t})}),(0,E.jsx)(`span`,{className:`kseg-l`,children:`Local edits`}),t>0&&(0,E.jsx)(`span`,{className:`delta up`,children:`▲`})]})]})}function k({overview:t}){return(0,E.jsx)(`div`,{className:`genome`,children:n.map((n,r)=>{let i=e[n],a=t.counts?.[n];return(0,E.jsxs)(`div`,{className:`card gcell rise`,style:{"--i":r},onClick:()=>l(`#/section/`+n),children:[(0,E.jsxs)(`div`,{className:`gtop`,children:[(0,E.jsx)(`span`,{className:`gname`,children:i.label}),(0,E.jsx)(p,{name:i.icon,className:`gicon`})]}),(0,E.jsx)(`div`,{className:`gcount`+(a===0?` zero`:``),children:a==null?`—`:(0,E.jsx)(h,{value:a})}),(0,E.jsx)(`div`,{className:`gdesc`,children:i.desc})]},n)})})}function A({jobs:e}){if(!e||e.length===0)return(0,E.jsx)(`div`,{className:`feed`,children:(0,E.jsxs)(`div`,{className:`empty`,children:[(0,E.jsx)(`div`,{className:`big`,children:`No activity yet`}),`Actions you run appear here.`]})});let t={done:`ok`,running:`acc`,failed:`bad`},n=[...e].sort((e,t)=>t.started-e.started).slice(0,8);return(0,E.jsx)(`div`,{className:`feed`,children:n.map(e=>(0,E.jsxs)(`div`,{className:`feed-row`,children:[(0,E.jsx)(`span`,{className:`feed-dot ${t[e.status]||`ok`}`}),(0,E.jsx)(`span`,{className:`feed-txt`,children:(0,E.jsx)(`b`,{children:e.action})}),(0,E.jsxs)(`span`,{className:`feed-when`,children:[f(e.started),` ago`]})]},e.id))})}function j({overview:e,sigil:t,setup:r,jobs:i,onAction:a}){let o=T(e),s=v(e,r);return(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(`div`,{className:`card pad-lg rise mb-16`,children:(0,E.jsxs)(`div`,{className:`hero`,children:[(0,E.jsx)(D,{value:s}),(0,E.jsxs)(`div`,{className:`hero-facts`,children:[(0,E.jsx)(`div`,{className:`ttl`,children:o}),t&&(0,E.jsxs)(`div`,{className:`voice-readout`,children:[(0,E.jsx)(`span`,{className:`vr-cur`,children:`▕`}),(0,E.jsx)(`span`,{className:`vr-txt`,children:t})]},e.theme),(0,E.jsxs)(`p`,{className:`sub`,children:[`One source rendered into `,(0,E.jsx)(`code`,{children:e.target}),`. Every repo on this machine inherits it.`]}),(0,E.jsxs)(`div`,{className:`hero-chips`,children:[(0,E.jsxs)(`span`,{className:`chip`,children:[(0,E.jsx)(`span`,{className:`ck`,children:`voice`}),(0,E.jsx)(`span`,{className:`cv`,style:{textTransform:`capitalize`},children:e.theme})]}),(0,E.jsxs)(`span`,{className:`chip`,children:[(0,E.jsx)(`span`,{className:`ck`,children:`mode`}),(0,E.jsx)(`span`,{className:`cv`,children:e.emit})]}),(0,E.jsxs)(`span`,{className:`chip`,children:[(0,E.jsx)(`span`,{className:`ck`,children:`footprint`}),(0,E.jsx)(`span`,{className:`cv`,children:e.footprint})]}),(0,E.jsxs)(`span`,{className:`chip`,children:[(0,E.jsx)(`span`,{className:`ck`,children:`built`}),(0,E.jsx)(`span`,{className:`cv`,children:e.build_time||`unknown`})]}),(0,E.jsxs)(`span`,{className:`chip`,children:[(0,E.jsx)(`span`,{className:`ck`,children:`fp`}),(0,E.jsx)(`span`,{className:`cv`,children:r?.installed_fp||`—`})]})]}),(0,E.jsxs)(`div`,{className:`row wrap gap-10`,children:[(0,E.jsxs)(`button`,{className:`btn`,onClick:()=>a(`update`),children:[(0,E.jsx)(p,{name:`refresh`}),`Update`]}),(0,E.jsxs)(`button`,{className:`btn ghost`,onClick:()=>a(`build-all`),children:[(0,E.jsx)(p,{name:`build`}),`Rebuild`]}),(0,E.jsxs)(`button`,{className:`btn ghost`,onClick:()=>a(`doctor`),children:[(0,E.jsx)(p,{name:`doctor`}),`Run doctor`]})]})]})]})}),(0,E.jsx)(O,{overview:e}),(0,E.jsxs)(`div`,{className:`grid split-status`,children:[(0,E.jsxs)(`div`,{className:`card pad-lg`,children:[(0,E.jsxs)(`div`,{className:`card-head`,children:[(0,E.jsx)(`h3`,{children:`Capability genome`}),(0,E.jsx)(`div`,{className:`right`,children:(0,E.jsxs)(`span`,{className:`tick`,children:[n.length,` sections`]})})]}),(0,E.jsx)(k,{overview:e})]}),(0,E.jsxs)(`div`,{className:`card pad-lg`,children:[(0,E.jsxs)(`div`,{className:`card-head`,children:[(0,E.jsx)(`h3`,{children:`Recent activity`}),(0,E.jsx)(`div`,{className:`right`,children:(0,E.jsxs)(`span`,{className:`badge acc`,children:[(0,E.jsx)(`span`,{className:`dot`}),`live`]})})]}),(0,E.jsx)(A,{jobs:i})]})]})]})}function M({k:t,overview:n,max:r}){let i=e[t],a=n.counts?.[t]??0;return(0,E.jsxs)(`div`,{className:`strand`,children:[(0,E.jsxs)(`span`,{className:`strand-name`,children:[(0,E.jsx)(`span`,{className:`strand-dot`}),(0,E.jsx)(`a`,{href:`#/section/`+t,className:`strand-link stretch-link`,children:i.label})]}),(0,E.jsx)(`div`,{className:`hbar`,children:(0,E.jsx)(`i`,{style:{width:`${a/r*100}%`}})}),(0,E.jsx)(`span`,{className:`strand-val`,children:a})]})}function N({overview:e,sigil:t,setup:r,jobs:i}){let a=s(e.counts),o=r?.version_verdict||``,c=o.includes(`up to date`),l=y(e.diff),u=[[`Source`,`src/, the canonical genetic material`,r?.source_fp||`—`,!0],[`Render`,`geneseed build → ${e.emit}`,e.theme+` voice`,!0],[`Deployed`,e.target,`inherited by every repo`,!1]];return(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(`div`,{className:`mb-16`,children:(0,E.jsxs)(`div`,{className:`card pad-lg rise`,style:{position:`relative`,overflow:`hidden`},children:[(0,E.jsx)(`h2`,{className:`h`,style:{fontSize:22,margin:`0 0 18px`},children:`Gene-seed lineage`}),(0,E.jsxs)(`div`,{className:`lineage-track`,children:[(0,E.jsx)(`div`,{className:`spine`}),u.map(([e,t,n,r],i)=>(0,E.jsxs)(`div`,{className:`lineage-step`,children:[(0,E.jsx)(`span`,{className:`node ${r?`on`:``}`}),(0,E.jsx)(`div`,{className:`lt`,children:e}),(0,E.jsx)(`div`,{className:`ld`,children:t}),(0,E.jsx)(`div`,{className:`ltag`,children:n})]},i))]}),(0,E.jsx)(`hr`,{className:`hr`}),t&&(0,E.jsxs)(`div`,{className:`voice-readout`,style:{marginBottom:14},children:[(0,E.jsx)(`span`,{className:`vr-cur`,children:`▕`}),(0,E.jsx)(`span`,{className:`vr-txt`,children:t})]},e.theme),(0,E.jsxs)(`div`,{className:`row wrap gap-10`,children:[(0,E.jsxs)(`span`,{className:`badge ${c?`ok`:`warn`}`,children:[(0,E.jsx)(`span`,{className:`dot`}),`in sync · `,o]}),(0,E.jsxs)(`span`,{className:`badge`,children:[(0,E.jsx)(`span`,{className:`dot`}),l,` local edits`]})]})]})}),(0,E.jsxs)(`div`,{className:`grid split-even`,children:[(0,E.jsxs)(`div`,{className:`card pad-lg`,children:[(0,E.jsxs)(`div`,{className:`card-head`,children:[(0,E.jsx)(`h3`,{children:`Genome strand`}),(0,E.jsx)(`div`,{className:`right`,children:(0,E.jsx)(`span`,{className:`tick`,children:`by volume`})})]}),n.map(t=>(0,E.jsx)(M,{k:t,overview:e,max:a},t))]}),(0,E.jsxs)(`div`,{className:`card pad-lg`,children:[(0,E.jsx)(`div`,{className:`card-head`,children:(0,E.jsx)(`h3`,{children:`Recent activity`})}),(0,E.jsx)(A,{jobs:i})]})]})]})}function P({overview:t,setup:r,jobs:i}){let a=n.reduce((e,n)=>e+(t.counts?.[n]??0),0),o=s(t.counts),c=t.doctor?.ok,l=t.doctor?.problems?.length??0,u=y(t.diff);return(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(`div`,{className:`card pad-md rise mb-16`,children:(0,E.jsx)(`div`,{className:`row wrap between gap-16`,children:(0,E.jsxs)(`div`,{className:`row`,style:{gap:20,flexWrap:`wrap`},children:[(0,E.jsxs)(`div`,{children:[(0,E.jsx)(`div`,{className:`tick`,children:`status`}),(0,E.jsx)(`div`,{className:`row`,style:{gap:8,marginTop:4},children:(0,E.jsxs)(`span`,{className:`badge ${t.deployed?`ok`:`warn`}`,children:[(0,E.jsx)(`span`,{className:`dot`}),t.deployed?`deployed`:`not deployed`]})})]}),(0,E.jsxs)(`div`,{children:[(0,E.jsx)(`div`,{className:`tick`,children:`voice`}),(0,E.jsx)(`div`,{className:`metric`,style:{fontSize:18,marginTop:6,textTransform:`capitalize`},children:t.theme})]}),(0,E.jsxs)(`div`,{children:[(0,E.jsx)(`div`,{className:`tick`,children:`mode`}),(0,E.jsx)(`div`,{className:`mono`,style:{fontSize:14,marginTop:6},children:t.emit})]}),(0,E.jsxs)(`div`,{children:[(0,E.jsx)(`div`,{className:`tick`,children:`fingerprint`}),(0,E.jsx)(`div`,{className:`mono`,style:{fontSize:14,marginTop:6,color:`var(--accent)`},children:r?.installed_fp||`—`})]}),(0,E.jsxs)(`div`,{children:[(0,E.jsx)(`div`,{className:`tick`,children:`doctor`}),(0,E.jsx)(`div`,{className:`row`,style:{gap:8,marginTop:4},children:c?(0,E.jsxs)(`span`,{className:`badge ok`,children:[(0,E.jsx)(`span`,{className:`dot`}),`clean`]}):(0,E.jsxs)(`span`,{className:`badge warn`,children:[(0,E.jsx)(`span`,{className:`dot`}),l,` issue`,l===1?``:`s`]})})]}),(0,E.jsxs)(`div`,{children:[(0,E.jsx)(`div`,{className:`tick`,children:`edits`}),(0,E.jsx)(`div`,{className:`metric`,style:{fontSize:18,marginTop:6},children:u})]})]})})}),(0,E.jsxs)(`div`,{className:`grid split-operator`,children:[(0,E.jsxs)(`div`,{className:`card rise`,style:{"--i":1},children:[(0,E.jsxs)(`div`,{className:`card-head pad-lg`,style:{padding:`18px 20px 0`,marginBottom:14},children:[(0,E.jsx)(`h3`,{children:`Sections`}),(0,E.jsx)(`div`,{className:`right`,children:(0,E.jsxs)(`span`,{className:`tick`,children:[a,` entries total`]})})]}),(0,E.jsxs)(`table`,{className:`tbl`,children:[(0,E.jsx)(`thead`,{children:(0,E.jsxs)(`tr`,{children:[(0,E.jsx)(`th`,{children:`Section`}),(0,E.jsx)(`th`,{children:`Detail`}),(0,E.jsx)(`th`,{style:{width:130},children:`Share`}),(0,E.jsx)(`th`,{className:`num`,children:`Count`})]})}),(0,E.jsx)(`tbody`,{children:n.map(n=>{let r=e[n],i=t.counts?.[n]??0;return(0,E.jsxs)(`tr`,{className:`clickable`,children:[(0,E.jsx)(`td`,{className:`name`,children:(0,E.jsx)(`a`,{href:`#/section/`+n,className:`stretch-link`,children:r.label})}),(0,E.jsx)(`td`,{className:`muted`,children:r.desc}),(0,E.jsx)(`td`,{children:(0,E.jsx)(`div`,{className:`hbar`,children:(0,E.jsx)(`i`,{style:{width:`${i/o*100}%`}})})}),(0,E.jsx)(`td`,{className:`num`,children:i})]},n)})})]})]}),(0,E.jsxs)(`div`,{className:`card pad-lg rise`,style:{"--i":2},children:[(0,E.jsx)(`div`,{className:`card-head`,children:(0,E.jsx)(`h3`,{children:`Run log`})}),(0,E.jsx)(A,{jobs:i})]})]})]})}function F(){let[e,t]=(0,C.useState)(!1);return(0,E.jsxs)(`div`,{className:`stale-banner`,role:`alert`,children:[(0,E.jsx)(`span`,{children:`This console is running code from before your last upgrade.`}),(0,E.jsx)(`button`,{className:`btn sm`,onClick:async()=>{t(!0);try{await o.restart()}catch{}u(c)},disabled:e,children:e?`Restarting…`:`Restart`})]})}var I=t({default:()=>B}),L=(0,C.lazy)(()=>x(()=>import(`./GreenhouseView-C6ibc8IE.js`),__vite__mapDeps([0,1,2,3,4,5,6,7]))),R=(0,C.lazy)(()=>x(()=>import(`./OperatorHudView-Bs7paWmh.js`),__vite__mapDeps([8,1,2,4,5,6,7]))),z=(0,C.lazy)(()=>x(()=>import(`./JournalView-1HbU1mfg.js`),__vite__mapDeps([9,1,2,5,3,4,6])));function B({overview:e,overviewError:t,onRetry:n,themes:r,setup:i,runs:a,onAction:s,layout:c=`cultivar`,dataRev:l}){let u=c,[d,f]=(0,C.useState)(`status`),p=e&&r.find(t=>t.name===e.theme)?.sigil||``,{data:h}=m(()=>u===`greenhouse`||u===`operator`?o.doctor().catch(()=>null):Promise.resolve(null),[u,l]),{data:v}=m(()=>u===`journal`?o.recent().catch(()=>null):Promise.resolve(null),[u,l]);if(!e)return t?(0,E.jsxs)(`div`,{children:[(0,E.jsx)(_,{error:`Could not load the harness overview: ${t}`}),(0,E.jsx)(`button`,{className:`btn`,onClick:n,children:`Retry`})]}):(0,E.jsx)(S,{});let y=e.daemon_stale?(0,E.jsx)(F,{}):null;return e.deployed?d===`status`&&u===`journal`?(0,E.jsxs)(C.Suspense,{fallback:(0,E.jsx)(S,{}),children:[y,(0,E.jsx)(z,{overview:e,recent:v,onAction:s,onDirection:f,dataRev:l})]}):(0,E.jsxs)(E.Fragment,{children:[y,(0,E.jsx)(`div`,{className:`head-row`,children:(0,E.jsx)(g,{"aria-label":`Dashboard view`,children:[[`status`,`Status`],[`lineage`,`Lineage`],[`operator`,`Operator`]].map(([e,t])=>(0,E.jsx)(`button`,{className:d===e?`on`:``,onClick:()=>f(e),"aria-pressed":d===e,children:t},e))})}),(0,E.jsxs)(`div`,{className:`view-in`,children:[d===`status`&&u===`cultivar`&&(0,E.jsx)(j,{overview:e,sigil:p,setup:i,jobs:a,onAction:s}),d===`status`&&u===`greenhouse`&&(0,E.jsx)(C.Suspense,{fallback:(0,E.jsx)(S,{}),children:(0,E.jsx)(L,{overview:e,sigil:p,jobs:a,doctor:h,onAction:s})}),d===`status`&&u===`operator`&&(0,E.jsx)(C.Suspense,{fallback:(0,E.jsx)(S,{}),children:(0,E.jsx)(R,{overview:e,jobs:a,doctor:h,onAction:s})}),d===`lineage`&&(0,E.jsx)(N,{overview:e,sigil:p,setup:i,jobs:a}),d===`operator`&&(0,E.jsx)(P,{overview:e,setup:i,jobs:a})]},d)]}):(0,E.jsxs)(E.Fragment,{children:[y,(0,E.jsx)(b,{onAction:s})]})}export{B as default,T as n,I as t};
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import{s as e}from"./sections-GalMS0Zv.js";import{i as t,t as n}from"./react-B9Z_tXRV.js";import{t as r}from"./api-CyMRbU2x.js";import{C as i,H as a,O as o,P as s,S as c,a as l,b as u,c as d,i as f,n as p,o as m,r as h,v as g,x as _}from"./index-Cjr7XCA3.js";import{i as v,n as y,r as b,t as x}from"./Markdown-qjM2_ofS.js";var S=e(t(),1),C=n();function w(e,t=0){let n=String(e).toLowerCase().trim().replace(/[^a-z0-9\s-]/g,``).replace(/\s+/g,`-`).replace(/-+/g,`-`).replace(/^-+|-+$/g,``);return n&&/^[a-z]/.test(n)?n:`h-${t}-${n||`section`}`}function T(e,t){if(!e||!t)return null;try{return e.querySelector(t)}catch{return null}}function E(e){let t=[],n=!1,r=0;for(let i of(e||``).split(`
|
|
2
|
-
`)){if(i.startsWith("```")){n=!n;continue}if(n)continue;let e=i.match(/^(##|###)\s+(.+?)\s*$/);e&&(r+=1,t.push({level:e[1].length,title:e[2],id:w(e[2],r)}))}return t}var D={"opencode-global":`OpenCode, global (recommended)`,opencode:`OpenCode, per-repo`,"claude-global":`Claude Code`,claude:`Claude Code`,"openclaude-global":`OpenClaude`,openclaude:`OpenClaude`,"bob-global":`Bob`,bob:`Bob`,files:`Any AGENT.md tool`},O=`you already know this`;function k({page:e,overview:t,onAction:n}){let r=(0,S.useRef)(null),i=(0,S.useMemo)(()=>y(e.body,e.links),[e.body,e.links]);(0,S.useEffect)(()=>{let e=r.current;if(!e)return;let t=0;e.querySelectorAll(`h1, h2, h3`).forEach(e=>{if(e.tagName!==`H1`&&(t+=1),!e.id){let n=w(e.textContent||``,t);n&&(e.id=n)}}),e.querySelectorAll(`blockquote`).forEach(e=>{(e.querySelector(`strong`)?.textContent||``).toLowerCase().startsWith(O)&&e.classList.add(`analogy`)})},[i]),(0,S.useEffect)(()=>{let e=r.current;if(!e)return;let t=e=>{let t=e.target.closest(`a[href]`);if(!t)return;let n=t.getAttribute(`href`);n&&n.startsWith(`#/`)&&(e.preventDefault(),a(n))};return e.addEventListener(`click`,t),()=>e.removeEventListener(`click`,t)},[i]),(0,S.useEffect)(()=>{let t=e.anchor;if(!t)return;let n=T(r.current,`#${CSS.escape(t)}`);n&&n.scrollIntoView({behavior:`smooth`,block:`start`})},[i,e.anchor]),(0,S.useEffect)(()=>{let n=r.current;if(!n||e.id!==`install`)return;n.querySelectorAll(`.docs-here`).forEach(e=>e.classList.remove(`docs-here`));let i=D[t?.emit];if(!i)return;let a=[...n.querySelectorAll(`h3`)].find(e=>w(e.textContent||``)===w(i));a&&(a.classList.add(`docs-here`),a.scrollIntoView?.({behavior:`smooth`,block:`start`}))},[i,e.id,t?.emit]);let o=[];return e.id===`install`&&(o.push({label:`Run doctor`,action:`doctor`}),o.push({label:`Rebuild`,action:`build`})),e.id===`verify`&&o.push({label:`Run doctor`,action:`doctor`}),e.id===`self-improve`&&o.push({label:`Open diff`,hash:`#/diff`}),e.id===`upgrade`&&o.push({label:`Update`,action:`update`}),(0,C.jsxs)(`div`,{className:`detail-doc`,children:[(0,C.jsx)(`h1`,{style:{marginTop:0},children:e.title}),e.source&&(0,C.jsx)(`div`,{className:`doc-meta`,children:(0,C.jsxs)(`span`,{className:`badge`,children:[(0,C.jsx)(`span`,{className:`dot`}),e.source]})}),o.length>0&&(0,C.jsx)(`div`,{className:`row wrap gap-10`,style:{margin:`10px 0 14px`},children:o.map(e=>e.hash?(0,C.jsx)(`a`,{className:`btn ghost sm`,href:e.hash,children:e.label},e.label):(0,C.jsx)(`button`,{className:`btn ghost sm`,onClick:()=>n&&n(e.action),children:e.label},e.label))}),(0,C.jsx)(`div`,{className:`markdown`,ref:r,dangerouslySetInnerHTML:{__html:i}}),e.link&&(0,C.jsx)(`div`,{style:{marginTop:24},children:(0,C.jsx)(`a`,{className:`btn soft sm`,href:e.link.hash,children:e.link.label})})]})}var A=1200;function j({a:e,kind:t}){let n=t===`positional`?e.dest:e.names.join(`, `),r=[];return e.metavar&&r.push(e.metavar),e.choices&&r.push(`{${e.choices.join(`|`)}}`),e.default!==null&&e.default!==void 0&&e.default!==``&&!e.is_flag&&r.push(`default: ${e.default}`),e.required&&r.push(`required`),(0,C.jsxs)(`div`,{className:`cli-arg`,children:[(0,C.jsx)(`code`,{className:`cli-arg-name`,children:n}),r.length>0&&(0,C.jsxs)(`code`,{className:`cli-arg-meta`,children:[` `,r.join(` · `)]}),e.help&&(0,C.jsx)(`div`,{className:`cli-arg-help`,children:e.help})]})}function M({text:e}){let[t,n]=(0,S.useState)(!1);return(0,C.jsxs)(`button`,{className:`btn ghost sm`,onClick:async()=>{try{await navigator.clipboard.writeText(e),n(!0),setTimeout(()=>n(!1),A)}catch{}},title:`Copy command`,children:[(0,C.jsx)(o,{name:t?`spark`:`copy`}),t?`Copied`:`Copy`]})}function N({cmd:e,prog:t}){let n=[t,e.name];for(let t of e.positionals||[]){let e=(t.metavar||t.dest||``).toUpperCase();n.push(t.required?e:`[${e}]`)}(e.options||[]).length&&n.push(`[OPTIONS]`);let r=n.join(` `);return(0,C.jsxs)(`div`,{className:`card pad-md mb-12 cli-card`,children:[(0,C.jsxs)(`div`,{className:`row wrap between`,style:{alignItems:`flex-start`},children:[(0,C.jsxs)(`div`,{className:`stack`,style:{gap:4},children:[(0,C.jsx)(`h3`,{style:{margin:0},children:(0,C.jsx)(`code`,{children:e.name})}),e.help&&(0,C.jsx)(`p`,{className:`sub`,style:{margin:0},children:e.help})]}),(0,C.jsx)(M,{text:`${t} ${e.name}`})]}),(0,C.jsx)(`pre`,{className:`cli-syn`,children:r}),(e.positionals||[]).length>0&&(0,C.jsxs)(`div`,{className:`cli-block`,children:[(0,C.jsx)(`div`,{className:`cli-block-head`,children:`Arguments`}),e.positionals.map(e=>(0,C.jsx)(j,{a:e,kind:`positional`},e.dest))]}),(e.options||[]).length>0&&(0,C.jsxs)(`div`,{className:`cli-block`,children:[(0,C.jsx)(`div`,{className:`cli-block-head`,children:`Options`}),e.options.map(e=>(0,C.jsx)(j,{a:e,kind:`option`},e.names.join(`,`)))]})]})}function P({page:e}){let t=e.prog||`geneseed`,n=e.commands||[];return(0,C.jsxs)(`div`,{className:`detail-doc`,children:[(0,C.jsx)(`h1`,{style:{marginTop:0},children:e.title}),(0,C.jsxs)(`p`,{className:`sub`,style:{marginTop:4},children:[`Every subcommand of `,(0,C.jsx)(`code`,{children:t}),`. Generated from the parser at request time (the same one `,(0,C.jsx)(`code`,{children:`geneseed`}),` actually parses), so this page cannot drift.`]}),(0,C.jsx)(`div`,{style:{marginTop:18},children:n.map(e=>(0,C.jsx)(N,{cmd:e,prog:t},e.name))})]})}function F({page:e}){let t=e.rows||[],n=e.theme||`neutral`;return(0,C.jsxs)(`div`,{className:`detail-doc`,children:[(0,C.jsx)(`h1`,{style:{marginTop:0},children:e.title}),(0,C.jsxs)(`p`,{className:`sub`,style:{marginTop:4},children:[`Geneseed's invented vocabulary, decoded. Left: the neutral, plain-English term. Right: the word your `,(0,C.jsx)(`code`,{style:{textTransform:`capitalize`},children:n}),` theme actually uses in the agent's voice. Last: the developer idea it maps to.`]}),(0,C.jsx)(`div`,{className:`card pad-md`,style:{marginTop:18},children:(0,C.jsxs)(`table`,{className:`glossary-table`,children:[(0,C.jsx)(`thead`,{children:(0,C.jsxs)(`tr`,{children:[(0,C.jsx)(`th`,{children:`Concept`}),(0,C.jsx)(`th`,{children:`Neutral term`}),(0,C.jsxs)(`th`,{children:[`In `,n]}),(0,C.jsx)(`th`,{children:`Meaning`}),(0,C.jsx)(`th`,{children:`In dev terms`})]})}),(0,C.jsx)(`tbody`,{children:t.map(e=>(0,C.jsxs)(`tr`,{children:[(0,C.jsx)(`td`,{children:(0,C.jsx)(`strong`,{children:e.label})}),(0,C.jsx)(`td`,{children:(0,C.jsx)(`code`,{children:e.neutral||`—`})}),(0,C.jsx)(`td`,{children:(0,C.jsx)(`code`,{children:e.themed||e.neutral||`—`})}),(0,C.jsx)(`td`,{className:`dim`,children:e.desc}),(0,C.jsx)(`td`,{className:`dim`,children:e.analogy||`—`})]},e.label))})]})})]})}var I={enforced:`ok`,automatic:`ok`,asked:`warn`,"on demand":`warn`};function L(e){let t=[],n=[],r=`before`;for(let i of(e||``).split(`
|
|
3
|
-
`))r===`before`&&/^\|\s*piece\s*\|/i.test(i)?r=`map`:r===`map`&&!i.trimStart().startsWith(`|`)&&(r=`after`),r===`before`?t.push(i):r===`after`&&n.push(i);return[t.join(`
|
|
4
|
-
`),n.join(`
|
|
5
|
-
`)]}var R=({text:e})=>(0,C.jsx)(`span`,{dangerouslySetInnerHTML:{__html:b(v.parseInline(e||``))}}),z=({kind:e})=>(0,C.jsx)(`span`,{className:`tag ${I[e]||``}`,children:e});function B({page:e,overview:t,onAction:n}){let[r,i]=(0,S.useState)(0);if(!e.rows)return(0,C.jsx)(k,{page:e,overview:t,onAction:n});let a=e.rows[r]||e.rows[0],[o,s]=L(e.body);return(0,C.jsxs)(`div`,{className:`detail-doc`,children:[(0,C.jsx)(`h1`,{style:{marginTop:0},children:e.title}),(0,C.jsx)(x,{body:o,links:e.links}),(0,C.jsxs)(`div`,{className:`docs-map`,children:[(0,C.jsx)(`ul`,{className:`map-tree`,"aria-label":`Pieces`,children:e.rows.map((e,t)=>(0,C.jsx)(`li`,{children:(0,C.jsxs)(`button`,{className:`map-node ${t===r?`on`:``}`,"aria-pressed":t===r,onClick:()=>i(t),children:[(0,C.jsx)(`span`,{className:`map-piece`,children:(0,C.jsx)(R,{text:e.piece})}),(0,C.jsx)(z,{kind:e.kind}),(0,C.jsx)(`span`,{className:`mono dim map-cost`,children:(0,C.jsx)(R,{text:e.cost})})]})},t))}),a&&(0,C.jsxs)(`div`,{className:`card pad-md map-detail`,"aria-live":`polite`,children:[(0,C.jsx)(`h3`,{style:{margin:`0 0 8px`},children:(0,C.jsx)(R,{text:a.piece})}),(0,C.jsx)(z,{kind:a.kind}),(0,C.jsxs)(`dl`,{children:[(0,C.jsx)(`dt`,{children:`Does`}),(0,C.jsx)(`dd`,{children:(0,C.jsx)(R,{text:a.does})}),(0,C.jsx)(`dt`,{children:`Costs`}),(0,C.jsx)(`dd`,{children:(0,C.jsx)(R,{text:a.cost})}),(0,C.jsx)(`dt`,{children:`Turn it off`}),(0,C.jsx)(`dd`,{children:(0,C.jsx)(R,{text:a.off})})]})]})]}),s.trim()&&(0,C.jsx)(x,{body:s,links:e.links})]})}var V=5,H=e=>e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`);function U(e,t){let n=e||``,r=[];for(let e of t||[])if([...new Set([e.themed,e.neutral,e.label].filter(Boolean))].some(e=>RegExp(`(?<![\\w-])${H(e)}s?(?![\\w-])`,`i`).test(n))&&r.push(e),r.length===V)break;return r}var W=e=>document.getElementById(e)?.scrollIntoView({behavior:`smooth`});function G({body:e,glossaryRows:t}){let n=(0,S.useMemo)(()=>E(e),[e]),r=(0,S.useMemo)(()=>U(e,t),[e,t]);return!n.length&&!r.length?null:(0,C.jsxs)(`aside`,{className:`docs-margin`,children:[n.length>0&&(0,C.jsxs)(`nav`,{className:`docs-toc`,"aria-label":`On this page`,children:[(0,C.jsx)(`div`,{className:`docs-toc-head`,children:`On this page`}),(0,C.jsx)(`ul`,{children:n.map(e=>(0,C.jsx)(`li`,{className:`lvl-${e.level}`,children:(0,C.jsx)(`a`,{href:`#${e.id}`,onClick:t=>{t.preventDefault(),W(e.id)},children:e.title})},e.id))})]}),r.length>0&&(0,C.jsxs)(`div`,{className:`docs-gloss`,children:[(0,C.jsx)(`div`,{className:`docs-toc-head`,children:`Terms on this page`}),r.map(e=>(0,C.jsxs)(`div`,{className:`docs-gloss-card`,children:[(0,C.jsx)(`b`,{children:e.themed||e.neutral||e.label}),(0,C.jsx)(`p`,{children:e.desc})]},e.label))]})]})}function K({page:e}){let t=e.version||{},n=[[`Theme`,e.theme],[`Install mode`,e.emit],[`Deployed`,e.deployed?`yes`:`no`],[`Target`,(0,C.jsx)(`code`,{children:e.target},`t`)],[`Source root`,(0,C.jsx)(`code`,{children:e.root},`r`)],[`Installed build`,(0,C.jsx)(`code`,{children:t.installed_fp||`(none)`},`i`)],[`Source build`,(0,C.jsx)(`code`,{children:t.source_fp||`—`},`s`)],[`Match?`,t.verdict||`—`],[`License`,e.license]];return(0,C.jsxs)(`div`,{className:`detail-doc`,children:[(0,C.jsx)(`h1`,{style:{marginTop:0},children:e.title}),(0,C.jsx)(`p`,{className:`sub`,style:{marginTop:4},children:`Live snapshot of the install behind this UI, plus where to go next.`}),(0,C.jsx)(`div`,{className:`card pad-md`,style:{marginTop:18},children:n.map(([e,t])=>(0,C.jsxs)(`div`,{className:`kv`,children:[(0,C.jsx)(`span`,{className:`k`,children:e}),(0,C.jsx)(`span`,{className:`v`,children:t??`—`})]},e))}),(0,C.jsxs)(`div`,{className:`row wrap gap-10`,style:{marginTop:18},children:[(0,C.jsxs)(`a`,{className:`btn ghost`,href:e.repo,target:`_blank`,rel:`noreferrer`,children:[(0,C.jsx)(o,{name:`external`}),e.repo_is_github?`GitHub repo`:`Source repo`]}),e.repo_is_github&&(0,C.jsxs)(C.Fragment,{children:[(0,C.jsxs)(`a`,{className:`btn ghost`,href:`${e.repo}/issues`,target:`_blank`,rel:`noreferrer`,children:[(0,C.jsx)(o,{name:`external`}),`File an issue`]}),(0,C.jsxs)(`a`,{className:`btn ghost`,href:`${e.repo}/blob/main/LICENSE`,target:`_blank`,rel:`noreferrer`,children:[(0,C.jsx)(o,{name:`external`}),`License`]})]})]})]})}function q(e){return e?.groups?.[0]?.pages?.[0]?.id||``}function J({data:e,error:t,overview:n,onAction:r}){if(t)return(0,C.jsx)(d,{error:t,style:{margin:18}});if(!e)return(0,C.jsx)(g,{label:`Loading page…`});switch(e.kind){case`markdown`:case`concept`:return(0,C.jsx)(k,{page:e,overview:n,onAction:r});case`map`:return(0,C.jsx)(B,{page:e,overview:n,onAction:r});case`cli`:return(0,C.jsx)(P,{page:e});case`glossary`:return(0,C.jsx)(F,{page:e});case`about`:return(0,C.jsx)(K,{page:e});default:return(0,C.jsxs)(`div`,{className:`empty`,children:[(0,C.jsx)(`div`,{className:`big`,children:`Unknown page kind`}),e.kind]})}}function Y(e,t){if(!e||!t)return null;for(let n of e.groups)if(n.pages.some(e=>e.id===t))return n;return null}function X({page:e,query:t,overview:n,onAction:o}){let[v,y]=i(c(n?.emit)),{data:b,error:x}=s(()=>r.docs(v),[v]),w=e||q(b),{data:T,error:E,loading:D}=s(()=>w?r.docsPage(w,v):Promise.resolve(null),[w,v]),{data:O}=s(()=>r.docsPage(`glossary`,v).catch(()=>null),[v],`docs:glossary`);(0,S.useEffect)(()=>{if(b&&w&&!b.groups.some(e=>e.pages.some(e=>e.id===w))){let e=q(b);e&&e!==w&&a(`#/docs/${encodeURIComponent(e)}`)}},[b,w]);let k=(Y(b,w)||b?.groups?.[0])?.id===p,A=(t||``).toLowerCase().trim();(0,S.useEffect)(()=>{k&&T?.id===w&&l(w)},[k,T,w]);let j=k?[...m(),w]:[],M=(0,S.useMemo)(()=>b?A?b.groups.map(e=>({...e,pages:e.pages.filter(t=>t.title.toLowerCase().includes(A)||e.label.toLowerCase().includes(A)||t.id.toLowerCase().includes(A))})).filter(e=>e.pages.length>0):b.groups:[],[b,A]);return x?(0,C.jsx)(d,{error:x}):(0,C.jsxs)(C.Fragment,{children:[(0,C.jsxs)(`div`,{className:`head-row mb-16`,children:[(0,C.jsxs)(`div`,{children:[(0,C.jsx)(`div`,{className:`eyebrow`,children:`documentation`}),(0,C.jsx)(`h1`,{className:`h`,children:`Docs`}),(0,C.jsx)(`p`,{className:`sub`,children:`Start with Understand, then guides, concepts and reference. Pages and config that differ by host are filtered to your selected harness.`})]}),(0,C.jsx)(u,{"aria-label":`Harness`,children:_.map(e=>(0,C.jsx)(`button`,{className:v===e.id?`on`:``,onClick:()=>y(e.id),"aria-pressed":v===e.id,children:e.label},e.id))})]}),(0,C.jsxs)(`div`,{className:`docs-hb`,children:[(0,C.jsxs)(`nav`,{className:`card docs-nav`,"aria-label":`Docs pages`,children:[k&&!A?(0,C.jsx)(h,{menu:b,pageId:w,seen:j}):M.map(e=>(0,C.jsxs)(`div`,{className:`docs-group`,children:[(0,C.jsx)(`div`,{className:`docs-group-head`,children:e.label}),e.pages.map(e=>(0,C.jsx)(`button`,{className:`lib-row ${w===e.id?`on`:``}`,"aria-current":w===e.id?`page`:void 0,onClick:()=>a(`#/docs/${encodeURIComponent(e.id)}`),children:(0,C.jsx)(`div`,{className:`lr-name`,children:e.title})},e.id))]},e.id)),M.length===0&&b&&(0,C.jsxs)(`div`,{className:`empty`,style:{padding:32},children:[(0,C.jsx)(`div`,{className:`big`,children:`No matches`}),`Try another search.`]}),!b&&(0,C.jsx)(g,{label:`Loading docs…`})]}),(0,C.jsxs)(`div`,{className:`card docs-article`,children:[(0,C.jsx)(J,{data:D?null:T,error:E,overview:n,onAction:o},`${w}|${v}`),k&&!D&&(0,C.jsx)(f,{menu:b,pageId:w})]}),!D&&(0,C.jsx)(G,{body:T?.body,glossaryRows:O?.rows})]})]})}export{X as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./sections-GalMS0Zv.js";import{i as e,t}from"./react-B9Z_tXRV.js";e();var n=t();function r({value:e,onChange:t,label:r,placeholder:i,className:a}){return(0,n.jsx)(`input`,{className:a||`lib-filter`,type:`text`,value:e,onChange:e=>t(e.target.value),placeholder:i,"aria-label":r||i})}export{r as t};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{n as e,r as t,s as n}from"./sections-GalMS0Zv.js";import{i as r,t as i}from"./react-B9Z_tXRV.js";import{t as a}from"./drawable-CLS9drMb.js";import{G as o,O as s,Q as c,U as l,W as u,Y as d,k as f}from"./index-Cjr7XCA3.js";import{t as p}from"./jobBuckets-Dbq8ZlWW.js";import{n as m}from"./Dashboard-CYn7Tp16.js";var h=n(r(),1),g=i(),_=12,v=120,y=[`#2BB673`,`#16A6A6`,`#E8A23B`,`#E07A5F`,`#8E7DBE`,`#5BD08A`,`#79856E`],b=650;function x({segments:e,size:t=186,stroke:n=26,caption:r=`capabilities`}){let i=e.reduce((e,t)=>e+t.value,0)||1,s=(0,h.useRef)(null),f=e.map(e=>e.value).join(`,`);(0,h.useLayoutEffect)(()=>{let t=s.current?.querySelectorAll(`path`);if(!t?.length||!u())return;let n=e.filter(e=>e.value>0).map(e=>e.value/i),r=n.map((e,t)=>n.slice(0,t).reduce((e,t)=>e+t,0)),l=a(t);d(l,{draw:`0 0`});let f=c(l,{draw:[`0 0`,`0 1`],duration:(e,t)=>Math.max(b*n[t],60),delay:(e,t)=>b*r[t],ease:`linear`});return o(f,b)},[f]);let p=t/2-n/2,m=t/2,_=t/2,v=[],y=0;for(let t of e)v.push(y),y+=t.value;return(0,g.jsxs)(`svg`,{width:t,height:t,viewBox:`0 0 ${t} ${t}`,children:[(0,g.jsx)(`circle`,{cx:m,cy:_,r:p,fill:`none`,stroke:`var(--surface-3)`,strokeWidth:n}),(0,g.jsx)(`g`,{ref:s,children:e.map((e,t)=>{if(e.value/i<=0)return null;let r=v[t]/i*2*Math.PI-Math.PI/2,a=(v[t]+e.value)/i*2*Math.PI-Math.PI/2,o=m+p*Math.cos(r),s=_+p*Math.sin(r),c=m+p*Math.cos(a),l=_+p*Math.sin(a),u=+(a-r>Math.PI);return(0,g.jsx)(`path`,{d:`M ${o} ${s} A ${p} ${p} 0 ${u} 1 ${c} ${l}`,fill:`none`,stroke:e.color,strokeWidth:n,strokeLinecap:`butt`,children:(0,g.jsxs)(`title`,{children:[e.label,`: `,e.value]})},t)})}),(0,g.jsx)(`text`,{x:m,y:_-4,textAnchor:`middle`,className:`donut-c-num`,children:(0,g.jsx)(l,{value:i,duration:b})}),(0,g.jsx)(`text`,{x:m,y:_+16,textAnchor:`middle`,className:`donut-c-cap`,children:r})]})}function S(e){if(e.length<2)return e.length?`M${e[0][0]},${e[0][1]}`:``;let t=`M${e[0][0]},${e[0][1]}`;for(let n=0;n<e.length-1;n++){let r=e[n-1]||e[n],i=e[n],a=e[n+1],o=e[n+2]||a,s=i[0]+(a[0]-r[0])/6,c=i[1]+(a[1]-r[1])/6,l=a[0]-(o[0]-i[0])/6,u=a[1]-(o[1]-i[1])/6;t+=` C${s},${c} ${l},${u} ${a[0]},${a[1]}`}return t}function C({data:e,height:t=156,accent:n}){if(!e.length)return null;let r=t,i=Math.max(...e.map(e=>e.v),1)+1,a=e.length>1?588/(e.length-1):588,o=e.map((e,t)=>[6+t*a,r-6-e.v/i*(r-14-6)]),s=S(o),c=o[o.length-1],l=o[0],u=`${s} L${c[0]},${r} L${l[0]},${r} Z`;return(0,g.jsxs)(`svg`,{viewBox:`0 0 600 ${r}`,preserveAspectRatio:`none`,style:{width:`100%`,height:t,display:`block`,overflow:`visible`},children:[(0,g.jsx)(`defs`,{children:(0,g.jsxs)(`linearGradient`,{id:`b-grad`,x1:`0`,y1:`0`,x2:`0`,y2:`1`,children:[(0,g.jsx)(`stop`,{offset:`0`,stopColor:n,stopOpacity:`.28`}),(0,g.jsx)(`stop`,{offset:`1`,stopColor:n,stopOpacity:`0`})]})}),(0,g.jsx)(`path`,{d:u,fill:`url(#b-grad)`}),(0,g.jsx)(`path`,{d:s,fill:`none`,stroke:n,strokeWidth:`2`,strokeLinejoin:`round`,strokeLinecap:`round`,vectorEffect:`non-scaling-stroke`}),(0,g.jsx)(`circle`,{cx:c[0],cy:c[1],r:`3.5`,fill:n,vectorEffect:`non-scaling-stroke`})]})}function w({label:e,value:t,sub:n,color:r,icon:i}){return(0,g.jsxs)(`div`,{className:`b-tile`,children:[(0,g.jsx)(`span`,{className:`b-tile-ic`,style:{background:`color-mix(in srgb, ${r} 18%, transparent)`,color:r},children:(0,g.jsx)(s,{name:i})}),(0,g.jsxs)(`div`,{className:`b-tile-body`,children:[(0,g.jsx)(`div`,{className:`b-tile-val`+(t===0?` zero`:``),children:t}),(0,g.jsx)(`div`,{className:`b-tile-label`,children:e})]}),(0,g.jsx)(`div`,{className:`b-tile-sub`,children:n})]})}function T({overview:n,sigil:r,jobs:i,doctor:a,onAction:o}){let c=n.counts||{},u=a?.groups||[],d=u.length>0,h=u.filter(e=>e.problems.length===0).length,b=u.length||1,S=m(n),T=f(n.diff),E=t.filter(e=>(c[e]||0)>0).map((t,n)=>({label:e[t].label,value:c[t]||0,color:y[n%y.length]})),D=E.reduce((e,t)=>e+t.value,0),O=p(i||[],10),k=O.reduce((e,t)=>e+t.v,0);return(0,g.jsxs)(g.Fragment,{children:[(0,g.jsxs)(`div`,{className:`b-greet`,children:[(0,g.jsxs)(`div`,{children:[(0,g.jsx)(`div`,{className:`eyebrow`,children:`your harness`}),(0,g.jsx)(`h1`,{className:`h b-h`,children:S}),(0,g.jsx)(`p`,{className:`sub`,children:r||`A friendly read of every layer growing in your harness.`})]}),(0,g.jsxs)(`div`,{className:`row gap-8`,children:[(0,g.jsxs)(`button`,{className:`btn`,onClick:()=>o(`update`),children:[(0,g.jsx)(s,{name:`refresh`}),`Update`]}),(0,g.jsxs)(`button`,{className:`btn ghost`,onClick:()=>o(`build-all`),children:[(0,g.jsx)(s,{name:`build`}),`Rebuild`]})]})]}),(0,g.jsxs)(`div`,{className:`grid b-hero-grid mb-16`,children:[(0,g.jsxs)(`div`,{className:`card b-hero`,children:[(0,g.jsx)(`div`,{className:`b-hero-ring`,children:(0,g.jsx)(x,{segments:[{label:`pass`,value:h,color:y[0]},{label:`attention`,value:Math.max(b-h,0),color:y[2]}],size:168,stroke:20,caption:`checks`})}),(0,g.jsxs)(`div`,{className:`b-hero-side`,children:[(0,g.jsx)(`h3`,{className:`b-hero-title`,children:d?`${h} of ${b} checks pass`:`Running checks…`}),(0,g.jsxs)(`p`,{className:`sub`,children:[`One source, rendered into `,(0,g.jsx)(`code`,{children:n.target}),` and inherited by every repo on this machine.`]}),d&&(0,g.jsx)(`ul`,{className:`b-hero-checks`,children:u.map(e=>{let t=e.problems.length===0;return(0,g.jsxs)(`li`,{className:`b-hcheck ${t?`ok`:`bad`}`,title:t?`clean`:e.problems.join(`; `),children:[(0,g.jsx)(`span`,{className:`b-hcheck-mark`,children:t?`✓`:`!`}),(0,g.jsx)(`span`,{className:`b-hcheck-label`,children:e.label})]},e.label)})}),(0,g.jsxs)(`div`,{className:`b-chips`,children:[(0,g.jsxs)(`span`,{className:`b-chip`,children:[(0,g.jsx)(`b`,{style:{textTransform:`capitalize`},children:n.theme}),` voice`]}),(0,g.jsx)(`span`,{className:`b-chip`,children:(0,g.jsx)(`b`,{children:n.emit})}),(0,g.jsxs)(`span`,{className:`b-chip`,children:[`built `,(0,g.jsx)(`b`,{children:n.build_time||`unknown`})]})]})]})]}),(0,g.jsxs)(`div`,{className:`b-tiles`,children:[(0,g.jsx)(w,{label:`Agents`,value:c.agents??`—`,sub:`specialists`,color:y[0],icon:`layers`}),(0,g.jsx)(w,{label:`Skills`,value:c.skills??`—`,sub:`workflows`,color:y[1],icon:`skill`}),(0,g.jsx)(w,{label:`Invariants`,value:c.laws??`—`,sub:c.doctrines?`${c.doctrines.active}/${c.doctrines.total} packs · ${c.doctrines.rules} rules`:`all upheld`,color:y[2],icon:`law`}),(0,g.jsx)(w,{label:`Edits`,value:T,sub:`to graft`,color:y[3],icon:`changes`})]})]}),(0,g.jsxs)(`div`,{className:`grid split-even mb-16`,children:[(0,g.jsxs)(`div`,{className:`card pad-lg b-mix-card`,children:[(0,g.jsxs)(`div`,{className:`card-head`,children:[(0,g.jsx)(`h3`,{children:`Capability mix`}),(0,g.jsx)(`div`,{className:`right`,children:(0,g.jsxs)(`span`,{className:`tick`,children:[D,` total`]})})]}),(0,g.jsxs)(`div`,{className:`b-mix`,children:[(0,g.jsx)(x,{segments:E,size:186,stroke:26}),(0,g.jsx)(`div`,{className:`b-legend`,children:E.map(e=>(0,g.jsxs)(`div`,{className:`b-leg-row`,children:[(0,g.jsx)(`span`,{className:`b-leg-dot`,style:{background:e.color}}),(0,g.jsx)(`span`,{className:`b-leg-name`,children:e.label}),(0,g.jsx)(`span`,{className:`b-leg-bar`,children:(0,g.jsx)(`i`,{style:{width:`${e.value/D*100}%`,background:e.color}})}),(0,g.jsx)(`span`,{className:`b-leg-val`,children:e.value})]},e.label))})]})]}),(0,g.jsxs)(`div`,{className:`card pad-lg`,children:[(0,g.jsxs)(`div`,{className:`card-head`,children:[(0,g.jsx)(`h3`,{children:`Recent runs`}),(0,g.jsx)(`div`,{className:`right`,children:(0,g.jsxs)(`span`,{className:`badge ok`,children:[(0,g.jsx)(`span`,{className:`dot`}),`job log`]})})]}),(0,g.jsxs)(`div`,{className:`b-stat-lead`,children:[(0,g.jsx)(`span`,{className:`b-stat-big`,children:(0,g.jsx)(l,{value:k})}),(0,g.jsxs)(`span`,{className:`b-stat-cap`,children:[`runs in the last 10 days · `,h,`/`,b,` checks pass now`]})]}),(0,g.jsx)(C,{data:O,accent:y[0],height:156})]})]}),(0,g.jsxs)(`div`,{className:`card pad-lg`,children:[(0,g.jsxs)(`div`,{className:`card-head`,children:[(0,g.jsx)(`h3`,{children:`Recent activity`}),(0,g.jsx)(`div`,{className:`right`,children:(0,g.jsxs)(`span`,{className:`tick`,children:[`last `,Math.min(i?.length||0,12),` runs`]})})]}),(0,g.jsxs)(`div`,{className:`b-timeline`,children:[(i||[]).slice(0,_).map(e=>{let t=e.status===`done`,n=e.status===`failed`?`warn`:t?`ok`:`acc`;return(0,g.jsxs)(`div`,{className:`b-tl-row`,children:[(0,g.jsx)(`span`,{className:`b-tl-node ${n}`}),(0,g.jsxs)(`div`,{className:`b-tl-body`,children:[(0,g.jsx)(`b`,{children:e.action}),e.output?`: ${e.output.split(`
|
|
2
|
-
`)[0].slice(0,v)}`:``]}),(0,g.jsx)(`span`,{className:`b-tl-when`,children:e.duration?`${e.duration}s`:e.status})]},e.id)}),(!i||i.length===0)&&(0,g.jsxs)(`div`,{className:`b-tl-row`,children:[(0,g.jsx)(`span`,{className:`b-tl-node`}),(0,g.jsx)(`div`,{className:`b-tl-body sub`,children:`No runs yet. Trigger an action to populate this.`}),(0,g.jsx)(`span`,{className:`b-tl-when`,children:`—`})]})]})]})]})}export{T as default};
|