Spaces:
Running
Running
feat(domain-v4): publish panels.html from szl-holdings/a11oy@3b443fc44da8c83a8998b305a519ec70aa9d0f88
0e4ef1d verified Download panels.html from SZLHOLDINGS/finance: direct link, hf CLI and curl.
- Browser
- Download file 81 kB
-
https://huggingface.co/spaces/SZLHOLDINGS/finance/resolve/main/panels.html
- Command line
-
hf download hf://spaces/SZLHOLDINGS/finance/panels.html
-
curl -L -o panels.html https://huggingface.co/spaces/SZLHOLDINGS/finance/resolve/main/panels.html
81 kB
| <html lang="en" data-szl-native-vertical="v1" data-surface="dark" data-native-domain="finance" data-szl-public-experience-v3="true" data-szl-domain-experience-v4="true" data-domain="finance"> | |
| <head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1,viewport-fit=cover"><meta name="theme-color" content="#05070a"><title>PURIQ Finance — SZL Holdings</title><style> | |
| :root{color-scheme:dark;--touch:44px;--stage:1440px;--gutter:clamp(16px,3vw,42px);--line:rgba(255,255,255,.12);--muted:#98a4b3;--ink:#f8fafc;--bg:#05070a;--panel:rgba(12,16,22,.86);--accent:#7dd3fc;--accent2:#a7f3d0} | |
| *{box-sizing:border-box;min-inline-size:0}html{max-inline-size:100%;overflow-x:clip;text-size-adjust:100%}body{margin:0;min-height:100vh;max-inline-size:100%;overflow-x:clip;background:var(--bg);color:var(--ink);font:15px/1.55 Inter,ui-sans-serif,system-ui,sans-serif}a,button{min-block-size:var(--touch)}a{color:inherit;overflow-wrap:anywhere}button{border:1px solid var(--line);background:var(--ink);color:var(--bg);padding:10px 15px;border-radius:9px;font-weight:800;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.shell{width:min(100%,var(--stage));margin:auto;padding:calc(24px + env(safe-area-inset-top)) var(--gutter) calc(64px + env(safe-area-inset-bottom))}.top{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.brand{font-weight:900;letter-spacing:.16em}.eyebrow,.mono,.status{font:700 11px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.12em;text-transform:uppercase}.eyebrow{color:var(--accent)}h1{font-size:clamp(44px,8vw,116px);line-height:.88;letter-spacing:-.06em;margin:16px 0 22px;max-inline-size:12ch;overflow-wrap:anywhere}.lede{font-size:clamp(17px,2vw,22px);max-inline-size:70ch;color:var(--muted)}.flow{display:flex;gap:8px;flex-wrap:wrap;margin:30px 0}.flow span{border:1px solid var(--line);padding:8px 10px;border-radius:999px;font:700 10px ui-monospace,monospace;letter-spacing:.1em}.panel{border:1px solid var(--line);background:var(--panel);border-radius:18px;padding:18px}.livebar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.status{display:flex;align-items:center;gap:8px}.dot{inline-size:8px;block-size:8px;border-radius:50%;background:#64748b}.is-live .dot{background:var(--accent2);box-shadow:0 0 18px var(--accent2)}pre{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;max-block-size:360px;overflow:auto;font:12px/1.55 ui-monospace,monospace;color:#cbd5e1}.footer{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:18px}.footer .panel{font-size:12px;color:var(--muted)}.footer b{display:block;color:var(--ink);margin-bottom:8px}.truth{display:flex;gap:7px;flex-wrap:wrap}.truth span{font:700 10px ui-monospace,monospace;border:1px solid var(--line);padding:6px 8px;border-radius:6px}@media(max-width:760px){.footer{grid-template-columns:1fr}h1{font-size:clamp(42px,16vw,72px)}}@media(pointer:coarse){a,button{min-block-size:48px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}@media(forced-colors:active){*{forced-color-adjust:auto}.panel{border:1px solid CanvasText}} | |
| .illus{display:inline-block;font:700 9.5px ui-monospace,monospace;letter-spacing:.14em;text-transform:uppercase;color:#d4a444;border:1px dashed rgba(212,164,68,.55);border-radius:6px;padding:4px 8px;margin-bottom:10px} | |
| .tape>.illus{grid-column:1/-1;margin:10px 12px 9px} | |
| :root{--bg:#030403;--panel:rgba(7,10,7,.95);--muted:#9ca892;--accent:#f6c85f;--accent2:#7cf29a}.domain{margin-top:48px;display:grid;grid-template-columns:1fr;gap:12px}.tape{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}.quote{background:#050805;padding:14px}.quote b{display:block;font:900 18px ui-monospace,monospace;color:var(--accent2)}.quote span{font:700 10px ui-monospace,monospace;color:var(--muted)}.matrix{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,.75fr);gap:12px}.ledger{font:12px ui-monospace,monospace}.row{display:grid;grid-template-columns:1.2fr .7fr .7fr .8fr;gap:8px;padding:10px 0;border-bottom:1px solid var(--line)}.row b{color:var(--accent)}.stress{display:grid;gap:10px}.bar{display:grid;grid-template-columns:90px 1fr 50px;gap:8px;align-items:center}.bar i{display:block;block-size:8px;background:linear-gradient(90deg,var(--accent2),var(--accent));border-radius:9px}@media(max-width:850px){.tape{grid-template-columns:1fr 1fr}.matrix{grid-template-columns:1fr}.row{grid-template-columns:1fr 1fr}} | |
| .finance-desk{margin-top:32px;display:grid;gap:16px;min-width:0}.finance-desk *{box-sizing:border-box;min-width:0}.finance-desk .fin-head{display:flex;gap:12px;flex-wrap:wrap;justify-content:space-between;align-items:center}.finance-desk h2{margin:0;font-size:clamp(22px,4vw,34px)}.finance-desk h3{font-size:18px;margin:0 0 12px}.finance-desk .fin-note{font-size:14px;line-height:1.65;color:var(--muted);overflow-wrap:anywhere}.finance-desk .fin-state{font:700 12px ui-monospace,monospace;letter-spacing:.08em;border:1px solid var(--line);padding:10px;overflow-wrap:anywhere}.finance-desk .fin-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.4fr);gap:16px}.finance-desk .fin-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));gap:12px;margin:16px 0}.finance-desk label{display:block;font-size:14px;line-height:1.6}.finance-desk input,.finance-desk select{display:block;width:100%;max-width:100%;min-height:44px;background:#0b1119;color:var(--text,#edf3ff);border:1px solid #50637d;border-radius:6px;padding:10px;font-size:16px}.finance-desk button{min-width:44px;min-height:44px;white-space:normal}.finance-desk button:disabled{opacity:.65;cursor:not-allowed}.finance-desk .fin-actions{display:flex;flex-wrap:wrap;gap:10px}.finance-desk :focus-visible{outline:3px solid var(--accent,#a6c8ff);outline-offset:3px}.finance-desk .fin-scroll{overflow:auto;max-width:100%;border:1px solid var(--line)}.finance-desk table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:13px}.finance-desk th,.finance-desk td{padding:10px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.finance-desk summary{min-height:44px;padding:12px;cursor:pointer}.finance-desk caption{padding:10px;text-align:left;line-height:1.5}.finance-desk svg{display:block;width:100%;height:auto;max-height:280px;border:1px solid var(--line);background:linear-gradient(130deg,rgba(86,136,255,.09),rgba(136,80,255,.04))}.finance-desk .fin-provenance{white-space:pre-wrap;overflow-wrap:anywhere;max-height:380px;overflow:auto;font-size:12px;line-height:1.6}.finance-desk .fin-instrument{min-height:170px;background:radial-gradient(ellipse at 30% 0,rgba(94,143,255,.13),transparent 70%)}.finance-desk [hidden]{display:none!important}@media(max-width:800px){.finance-desk .fin-grid{grid-template-columns:1fr}.finance-desk th,.finance-desk td{padding:6px}}@media(prefers-reduced-motion:reduce){.finance-desk *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}@media(forced-colors:active){.finance-desk input,.finance-desk select,.finance-desk button,.finance-desk svg{border:1px solid CanvasText}.finance-desk polyline{stroke:CanvasText!important}} | |
| .fin-research textarea{width:100%;min-height:290px;padding:14px;background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:6px;font:inherit;font-size:14px;line-height:1.6;resize:vertical}.fin-research .fin-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.fin-research .fin-metric{padding:16px;border:1px solid var(--line)}.fin-research .fin-metric strong{display:block;font-size:28px;margin-top:8px}.fin-research .fin-metric span{font-size:14px;color:var(--muted)}.fin-research .fin-references{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:12px}.fin-research .fin-reference{border:1px solid var(--line);padding:16px}.fin-research .fin-reference a{font-size:16px;color:var(--accent);text-decoration:underline;text-underline-offset:4px}.fin-research .fin-reference p{font-size:14px;line-height:1.65;color:var(--muted)}.fin-research table{font-size:14px}.fin-research .fin-empty{padding:18px;color:var(--muted);font-size:14px;line-height:1.6}@media(max-width:640px){.fin-research .fin-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}} | |
| </style><style id="szl-native-tokens">/* ============================================================================ | |
| * SZL HOLDINGS — KANCHAY Design System v1.3.0 · szl-design-system.css | |
| * One self-contained file. 0 runtime CDN. No Google Fonts. No Inter default. | |
| * No purple gradients. Self-hosted system-font stack only. | |
| * | |
| * EVOLVES (does not replace) the canonical KANCHAY token scales: | |
| * yawar (blood/red), yuyay (teal — WCAG-AA focus ring), hatun (gold/premium), | |
| * gray (neutral), plus the a11oy dark surfaces. | |
| * ADDS the founder-approved logo palette: space navy #030F29, coral node | |
| * #DF735F (accent, used SPARINGLY), silver linework #E9EEF6->#9AA7BD->#5C6B86. | |
| * | |
| * Aesthetic: Anthropic calm restraint + Ollama dev-clean + defense-tech | |
| * gravitas + our own orbital/khipu motif. Generous whitespace. Serious, human, | |
| * honest. Measured contrast roles. ADDITIVE only — no v11 LOCKED number changed. | |
| * | |
| * Brand assets (c) 2026 SZL Holdings · CC BY 4.0 · code Apache-2.0 | |
| * Attribution: ORCID 0009-0001-0110-4173 | |
| * ========================================================================== */ | |
| /* --- 0 · Self-hosted font stack (NO CDN, NO webfont download required) ----- */ | |
| :root { | |
| --font-body: | |
| system-ui, -apple-system, "Segoe UI", "Helvetica Neue", "Liberation Sans", | |
| Arial, sans-serif; | |
| --font-display: | |
| system-ui, -apple-system, "Segoe UI", "Helvetica Neue", "Liberation Sans", | |
| Arial, sans-serif; | |
| --font-heading: var(--font-display); | |
| --font-mono: | |
| ui-monospace, "SF Mono", "Cascadia Code", "JetBrains Mono", "IBM Plex Mono", | |
| "Liberation Mono", Menlo, Consolas, monospace; | |
| } | |
| /* --- 1 · COLOR — full palette (KANCHAY scales KEPT; logo palette ADDED) ---- */ | |
| :root { | |
| /* yawar (blood / circulatory receipt ledger) — KEEP */ | |
| --color-yawar-50:#fdecec; --color-yawar-100:#f9cfcf; --color-yawar-200:#f0a3a3; | |
| --color-yawar-300:#e57373; --color-yawar-400:#d65151; --color-yawar-500:#c0392b; | |
| --color-yawar-600:#a32a1f; --color-yawar-700:#822018; --color-yawar-800:#5e1712; | |
| --color-yawar-900:#3d0f0c; | |
| /* yuyay (thought / 13-axis heart gate) — KEEP; focus ring lives here */ | |
| --color-yuyay-50:#e6f7f6; --color-yuyay-100:#bfeae8; --color-yuyay-200:#8fd9d5; | |
| --color-yuyay-300:#5cc4bf; --color-yuyay-400:#34aaa4; --color-yuyay-500:#168f89; | |
| --color-yuyay-600:#0f726e; --color-yuyay-700:#0b5957; --color-yuyay-800:#083f3e; | |
| --color-yuyay-900:#052827; | |
| /* hatun (great / premium accent, doctrine governance) — KEEP */ | |
| --color-hatun-50:#faf5e9; --color-hatun-100:#f0e3c4; --color-hatun-200:#e4cf99; | |
| --color-hatun-300:#d7b96b; --color-hatun-400:#cda64a; --color-hatun-500:#c08f2f; | |
| --color-hatun-600:#a3741f; --color-hatun-700:#825a18; --color-hatun-800:#5e4012; | |
| --color-hatun-900:#3d290b; | |
| /* neutral gray scale — KEEP */ | |
| --color-gray-50:#f5f7fa; --color-gray-100:#e6eaf1; --color-gray-200:#c9d2df; | |
| --color-gray-300:#a4b1c4; --color-gray-400:#76859b; --color-gray-500:#525f73; | |
| --color-gray-600:#3c4757; --color-gray-700:#2a3340; --color-gray-800:#1b222c; | |
| --color-gray-900:#10151c; --color-gray-950:#0a0f1e; | |
| /* NEW · canonical logo palette (founder-approved) */ | |
| --color-space-900:#030F29; --color-space-800:#061536; | |
| --color-space-700:#0a1e47; --color-space-600:#102a5e; | |
| --color-coral-300:#F0917E; --color-coral-400:#DF735F; --color-coral-500:#C4543F; | |
| --color-silver-100:#E9EEF6; --color-silver-300:#9AA7BD; --color-silver-500:#5C6B86; | |
| /* NEW 1.3.0 · graphite operational neutrals and warm editorial neutrals (2026-10-06) */ | |
| --color-graphite-950:#05070C; --color-graphite-900:#080B12; --color-graphite-800:#111722; | |
| --color-graphite-750:#141B27; --color-graphite-700:#182232; --color-graphite-600:#2B3749; | |
| --color-graphite-400:#71829B; --color-graphite-300:#8B98AC; --color-graphite-200:#AAB7C9; | |
| --color-graphite-50:#F1F4F8; | |
| --color-paper-100:#F5F3EE; --color-paper-200:#ECE9E2; --color-mist-100:#EBEEF2; | |
| --color-mist-200:#D6DBE3; --color-ink-600:#516075; --color-ink-500:#5E6A7C; | |
| --color-ink-400:#6E7A8C; | |
| --color-white:#FFFFFF; --color-ink:#0a0f1e; --color-ink-soft:#2a3340; | |
| /* semantic (status) — KEEP */ | |
| --color-success:#1f9d57; --color-success-strong:#116b3d; --color-success-light:#3fce82; | |
| --color-warning:#c08f2f; --color-warning-light:#e4cf99; | |
| --color-error:#c0392b; --color-error-light:#f0a3a3; | |
| --color-info:#2f7fb5; --color-info-light:#7cb8e0; | |
| } | |
| /* --- 2 · SEMANTIC SURFACES — the "polarities" (dark operator default) ------ */ | |
| /* A polarity can be declared on any element, not only <html>. A dark panel inside a | |
| light page (or a light panel inside a dark one) sets data-surface on its own root, | |
| and every role below re-resolves there, so its text, links, focus and status inks | |
| follow the panel's ground instead of the page's. */ | |
| :root, [data-surface="dark"] { | |
| --bg:var(--color-graphite-900); --bg-deep:var(--color-graphite-950); | |
| --surface:var(--color-graphite-800); --surface-alt:var(--color-graphite-750); | |
| --surface-raised:var(--color-graphite-700); | |
| --border:var(--color-graphite-600); | |
| --border-subtle:color-mix(in srgb, var(--color-graphite-600) 55%, transparent); | |
| --hairline:color-mix(in srgb, var(--color-silver-500) 38%, transparent); | |
| --control-edge:var(--color-graphite-400); | |
| --text:var(--color-graphite-50); --text-sub:var(--color-graphite-200); | |
| --text-ghost:var(--color-graphite-300); | |
| --accent:var(--color-coral-400); --accent-hover:var(--color-coral-300); | |
| --accent-press:var(--color-coral-500); --accent-ink:var(--color-space-900); | |
| /* Action fills are distinct from decorative coral: every small-text state must | |
| meet 4.5:1. Press keeps the legible fill and adds the button's tactile offset. */ | |
| --action-bg:var(--color-coral-400); --action-hover-bg:var(--color-coral-300); | |
| --action-press-bg:var(--color-coral-400); --action-ink:var(--color-space-900); | |
| --hero-atmosphere:color-mix(in srgb, var(--color-space-700) 60%, transparent); | |
| --holo-silver:var(--color-silver-100); --holo-teal:var(--color-yuyay-300); | |
| --shadow-card:var(--shadow-sm); --shadow-card-hover:var(--shadow-md); | |
| --premium:var(--color-hatun-300); | |
| --link:var(--color-yuyay-200); --link-hover:var(--color-yuyay-100); | |
| --focus:var(--color-yuyay-400); | |
| --chip-ok:var(--color-success-light); --chip-warn:var(--color-warning-light); | |
| --chip-bad:var(--color-error-light); | |
| color-scheme:dark; | |
| } | |
| [data-surface="light"] { | |
| --bg:var(--color-paper-100); --bg-deep:var(--color-paper-200); | |
| --surface:var(--color-white); --surface-alt:var(--color-mist-100); --surface-raised:var(--color-white); | |
| --border:var(--color-mist-200); | |
| --border-subtle:color-mix(in srgb, var(--color-mist-200) 60%, transparent); | |
| --hairline:color-mix(in srgb, var(--color-silver-500) 30%, transparent); | |
| --control-edge:var(--color-ink-400); | |
| --text:var(--color-graphite-800); --text-sub:var(--color-ink-600); | |
| --text-ghost:var(--color-ink-500); | |
| --accent:var(--color-coral-500); --accent-hover:var(--color-coral-400); | |
| --accent-press:#a8442f; --accent-ink:var(--color-white); | |
| /* White on unmodified coral-500 is 4.48:1. This local navy mix preserves the | |
| palette primitive while making the small primary label legible. */ | |
| --action-bg:color-mix(in srgb, var(--color-coral-500) 94%, var(--color-space-900)); | |
| --action-hover-bg:var(--accent-press); | |
| --action-press-bg:color-mix(in srgb, var(--accent-press) 90%, var(--color-space-900)); | |
| --action-ink:var(--color-white); | |
| --hero-atmosphere:color-mix(in srgb, var(--color-silver-300) 16%, transparent); | |
| --holo-silver:var(--color-silver-500); --holo-teal:var(--color-yuyay-700); | |
| --shadow-card:0 1px 2px rgba(3,15,41,.08); | |
| --shadow-card-hover:0 4px 16px rgba(3,15,41,.10); | |
| --premium:var(--color-hatun-700); | |
| --link:var(--color-yuyay-700); --link-hover:var(--color-yuyay-800); | |
| --focus:var(--color-yuyay-600); | |
| --chip-ok:var(--color-success-strong); --chip-warn:#6b4f00; --chip-bad:#9f281e; | |
| color-scheme:light; | |
| } | |
| /* Roles derived from a polarity token are re-declared on every surface root so they | |
| resolve against that surface, and a nested surface carries its own text color. Only | |
| the two polarity values count; data-surface used as a label is left alone. */ | |
| :root, [data-surface="dark"], [data-surface="light"] { | |
| --shadow-focus:0 0 0 3px color-mix(in srgb, var(--focus) 55%, transparent); | |
| --holo-edge:linear-gradient(128deg, var(--holo-silver), var(--border) 24%, | |
| var(--holo-teal) 48%, var(--border) 72%, var(--holo-silver)); | |
| } | |
| :where([data-surface="dark"], [data-surface="light"]) { color:var(--text); } | |
| /* A terminal is always graphite, including on an editorial page. These roles are | |
| palette-bound rather than page-bound, and are included in the tokens-only export. */ | |
| :root { | |
| --code-bg:var(--color-graphite-950); --code-ink:var(--color-graphite-50); | |
| --code-muted:var(--color-graphite-300); --code-border:var(--color-graphite-600); | |
| --code-edge:var(--color-graphite-400); --code-focus:var(--color-yuyay-400); | |
| --code-link:var(--color-yuyay-200); --code-link-hover:var(--color-yuyay-100); | |
| --code-string:var(--color-success-light); --code-number:var(--color-hatun-300); | |
| } | |
| /* --- 3 · TYPE SCALE — Major Third (1.25), base 16px (KANCHAY scale) -------- */ | |
| :root { | |
| --text-xs:0.75rem; --text-sm:0.875rem; --text-base:1rem; --text-lg:1.25rem; | |
| --text-xl:1.563rem; --text-2xl:1.953rem; --text-3xl:2.441rem; | |
| --text-4xl:3.052rem; --text-5xl:3.815rem; --text-6xl:4.768rem; | |
| --leading-tight:1.1; --leading-snug:1.2; --leading-normal:1.6; --leading-mono:1.5; | |
| --tracking-tight:-0.011em; --tracking-normal:0; --tracking-caps:0.08em; | |
| --weight-regular:400; --weight-medium:500; --weight-semibold:600; --weight-bold:700; | |
| } | |
| /* --- 4 · SPACING / RADIUS / SHADOW / MOTION / Z — KEEP canonical tokens ----- */ | |
| :root { | |
| --space-px:1px; --space-1:.25rem; --space-2:.5rem; --space-3:.75rem; --space-4:1rem; | |
| --space-5:1.25rem; --space-6:1.5rem; --space-8:2rem; --space-10:2.5rem; --space-12:3rem; | |
| --space-16:4rem; --space-20:5rem; --space-24:6rem; | |
| --radius-sm:4px; --radius-md:8px; --radius-lg:12px; --radius-xl:16px; | |
| --radius-2xl:24px; --radius-full:9999px; | |
| --shadow-sm:0 1px 2px rgba(0,0,0,.40); --shadow-md:0 2px 8px rgba(0,0,0,.45); | |
| --shadow-lg:0 8px 24px rgba(0,0,0,.50); --shadow-xl:0 16px 48px rgba(0,0,0,.55); | |
| --shadow-glow-hatun:0 0 0 1px var(--color-hatun-500), | |
| 0 0 16px color-mix(in srgb, var(--color-hatun-400) 30%, transparent); | |
| --shadow-node:0 0 0 1px var(--color-coral-500), | |
| 0 0 18px color-mix(in srgb, var(--color-coral-400) 32%, transparent); | |
| --ease-standard:cubic-bezier(.2,0,0,1); --ease-emphasized:cubic-bezier(.3,0,.1,1); | |
| --ease-out:cubic-bezier(0,0,.2,1); --ease-in:cubic-bezier(.4,0,1,1); | |
| --ease-orbit:cubic-bezier(.45,.05,.25,1); | |
| --duration-instant:75ms; --duration-fast:150ms; --duration-base:250ms; | |
| --duration-slow:400ms; --duration-slower:600ms; --duration-orbit:24s; | |
| --z-base:0; --z-raised:10; --z-dropdown:1000; --z-sticky:1100; --z-overlay:1200; | |
| --z-modal:1300; --z-popover:1400; --z-toast:1500; --z-max:2147483000; | |
| --z-control-dock:var(--z-popover); | |
| --border-hairline:1px; --border-thick:2px; --border-focus:3px; | |
| --measure:68ch; --container:1200px; | |
| --safe-area-top:env(safe-area-inset-top,0px); | |
| --safe-area-right:env(safe-area-inset-right,0px); | |
| --safe-area-bottom:env(safe-area-inset-bottom,0px); | |
| --safe-area-left:env(safe-area-inset-left,0px); | |
| --target-size-min:24px; --target-size-coarse:44px; | |
| --control-dock-max-inline-size:24rem; | |
| } | |
| @media (prefers-reduced-motion: reduce) { | |
| *, *::before, *::after { | |
| animation-duration:.01ms ; animation-iteration-count:1 ; | |
| transition-duration:.01ms ; scroll-behavior:auto ; | |
| } | |
| } | |
| </style><style id="szl-native-vertical">/* SPDX-License-Identifier: Apache-2.0 | |
| * Copyright 2026 Stephen P. Lutar Jr. / SZL Holdings | |
| * Four domain front doors; roles inherit the canonical KANCHAY polarity. */ | |
| html[data-szl-native-vertical] { --ink:var(--text); --muted:var(--text-sub); --line:var(--border); | |
| --faint:var(--text-ghost); --stage:1280px; --gutter:clamp(20px,4vw,56px); overflow-x:visible; } | |
| html[data-native-domain="finance"] { --accent:var(--premium); } | |
| html[data-native-domain="sentra"],html[data-native-domain="terra"] { --accent:var(--link); } | |
| [data-szl-native-vertical] *,[data-szl-native-vertical] *::before,[data-szl-native-vertical] *::after { box-sizing:border-box; min-inline-size:0; } | |
| [data-szl-native-vertical] body { margin:0; background:var(--bg); color:var(--text); font:16px/1.65 var(--font-body); } | |
| [data-szl-native-vertical] body::before { display:none; } | |
| [data-szl-native-vertical] main { max-width:1280px; padding:32px var(--gutter) 48px; margin:auto; } | |
| [data-szl-native-vertical] .top { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:20px; padding-bottom:24px; border-bottom:1px solid var(--border); } | |
| [data-szl-native-vertical] .brand { display:none; } | |
| .native-identity { display:flex; align-items:center; gap:16px; color:var(--text); font:650 12px/1.4 var(--font-body); letter-spacing:.12em; } | |
| .native-identity img { flex:0 0 40px; width:40px; height:40px; } | |
| .native-family { display:block; margin-top:4px; color:var(--text-sub); font-size:13px; font-weight:400; letter-spacing:0; } | |
| [data-szl-native-vertical] h1 { max-width:14ch; margin:16px 0 24px; font:600 clamp(40px,6.5vw,88px)/1.06 var(--font-display); letter-spacing:-.045em; overflow-wrap:anywhere; } | |
| [data-native-domain="counsel"] h1 { font-weight:400; } | |
| [data-szl-native-vertical] h2,[data-szl-native-vertical] h3 { color:var(--text); line-height:1.3; letter-spacing:-.015em; } | |
| [data-szl-native-vertical] .lede { max-width:64ch; color:var(--text-sub); font-size:clamp(17px,2vw,21px); line-height:1.7; } | |
| [data-szl-native-vertical] .eyebrow,[data-szl-native-vertical] .mono,[data-szl-native-vertical] .kicker { color:var(--text-sub); font:500 12px/1.6 var(--font-mono); letter-spacing:.055em; } | |
| [data-szl-native-vertical] .kicker { margin-top:56px; } | |
| [data-szl-native-vertical] .flow { gap:8px; margin:26px 0 40px; } | |
| [data-szl-native-vertical] .flow span,[data-szl-native-vertical] .chip { font-size:12px; color:var(--text-sub); border-color:var(--border); background:var(--surface); padding:8px 12px; line-height:1.5; } | |
| [data-szl-native-vertical] .panel { border:1px solid var(--border); background:var(--surface); color:var(--text); border-radius:16px; padding:clamp(20px,3vw,32px); box-shadow:var(--shadow-card); } | |
| [data-szl-native-vertical] .panel h2 { font:650 17px/1.4 var(--font-display); letter-spacing:0; } | |
| [data-szl-native-vertical] .panel p { color:var(--text-sub); } | |
| [data-szl-native-vertical] .illus { font-size:11px; line-height:1.5; color:var(--premium); background:var(--surface); letter-spacing:.04em; } | |
| [data-szl-native-vertical] a { color:var(--link); text-underline-offset:4px; overflow-wrap:anywhere; } | |
| [data-szl-native-vertical] a:hover { color:var(--link-hover); text-decoration:underline; } | |
| [data-szl-native-vertical] main a,[data-szl-native-vertical] button,[data-szl-native-vertical] summary { min-height:44px; } | |
| [data-szl-native-vertical] main a { display:inline-flex; align-items:center; padding-block:8px; } | |
| [data-szl-native-vertical] button,[data-szl-native-vertical] .button { border:1px solid var(--control-edge); border-radius:8px; padding:10px 16px; background:var(--surface-raised); color:var(--text); font:600 14px/1.5 var(--font-body); } | |
| [data-szl-native-vertical] button:hover:not(:disabled),[data-szl-native-vertical] .button:hover { background:var(--surface-alt); border-color:var(--focus); } | |
| [data-szl-native-vertical] :is(a,button,input,select,textarea,summary,[tabindex]):focus-visible { outline:3px solid var(--focus); outline-offset:4px; box-shadow:none; } | |
| [data-szl-native-vertical] button:disabled { opacity:1; color:var(--text-ghost); border-style:dashed; cursor:not-allowed; } | |
| [data-szl-native-vertical] .livebar { flex-wrap:wrap; gap:16px; } | |
| [data-szl-native-vertical] .status,[data-szl-native-vertical] .pill { white-space:normal; color:var(--text-sub); font-size:12px; line-height:1.6; } | |
| [data-szl-native-vertical] .status .dot { flex:0 0 6px; } | |
| [data-szl-native-vertical] pre { background:var(--code-bg); color:var(--code-ink); border:1px solid var(--code-border); padding:18px; border-radius:10px; font:13px/1.7 var(--font-mono); white-space:pre-wrap; overflow-wrap:anywhere; max-width:100%; } | |
| [data-szl-native-vertical] .footer { gap:16px; margin-top:32px; font-size:14px; line-height:1.65; } | |
| [data-szl-native-vertical] .footer b { font-size:14px; line-height:1.4; } | |
| [data-szl-native-vertical] .truth { gap:6px; } | |
| [data-szl-native-vertical] .truth span { color:var(--text-sub); background:var(--surface-alt); font-size:11px; padding:5px 8px; } | |
| .native-credit { margin-top:32px; padding-top:24px; border-top:1px solid var(--border); color:var(--text-sub); font:12px/1.8 var(--font-body); } | |
| .native-credit span { display:block; margin-top:4px; } | |
| .native-credit a { margin-inline:4px; } | |
| .native-skip { position:absolute; top:8px; left:8px; z-index:100; transform:translateY(-180%); padding:12px 18px; min-height:44px; background:var(--surface); color:var(--text); border:2px solid var(--focus); } | |
| .native-skip:focus { transform:none; } | |
| /* An atmospheric edge, never an evidence colour or a continuously moving layer. */ | |
| [data-szl-native-vertical] .top::after { content:""; display:block; width:100%; height:1px; margin-bottom:-25px; background:var(--holo-edge); opacity:.7; } | |
| [data-szl-native-vertical] .finance-desk { --fin-line:var(--border); --fin-muted:var(--text-sub); --fin-ink:var(--text); --fin-accent:var(--premium); gap:20px; } | |
| [data-szl-native-vertical] .finance-desk :is(input,select,textarea) { background:var(--bg); color:var(--text); border:1px solid var(--control-edge); border-radius:8px; min-height:44px; padding:10px 12px; font:16px/1.5 var(--font-body); } | |
| [data-szl-native-vertical] .finance-desk label { color:var(--text); line-height:1.5; } | |
| [data-szl-native-vertical] .finance-desk :is(.fin-note,.fin-state,th,td,.fin-provenance) { color:var(--text-sub); } | |
| [data-szl-native-vertical] .finance-desk .fin-state { font-size:12px; line-height:1.6; border-color:var(--border); } | |
| [data-szl-native-vertical] .finance-desk .fin-state[data-state="OK"] { color:var(--chip-ok); } | |
| [data-szl-native-vertical] .finance-desk table { font-size:14px; } | |
| [data-szl-native-vertical] .finance-desk summary { display:list-item; padding:10px 0; color:var(--text); } | |
| [data-szl-native-vertical] .finance-desk :is(.fin-json,.fin-errors) { color:var(--code-ink); } | |
| [data-native-domain="counsel"] .matter,[data-native-domain="counsel"] .authority { background:var(--surface); border-color:var(--border); } | |
| [data-native-domain="counsel"] .issue { font-size:15px; line-height:1.75; border-color:var(--border); } | |
| [data-native-domain="counsel"] .cite { font:12px/1.65 var(--font-mono); color:var(--text-sub); } | |
| [data-native-domain="sentra"] .node { color:var(--text); background:var(--surface-raised); border-color:var(--control-edge); } | |
| [data-native-domain="sentra"] .queue { background:var(--surface); } | |
| [data-native-domain="sentra"] .incident { font-size:14px; line-height:1.6; } | |
| [data-native-domain="sentra"] #sentra-verifier-handoff { margin-top:28px; } | |
| [data-native-domain="terra"] .grad { color:var(--text); background:none; -webkit-text-fill-color:currentColor; } | |
| [data-native-domain="terra"] .asset { color:var(--text-sub); font-size:14px; padding:18px; background:var(--surface); } | |
| [data-native-domain="terra"] .asset :is(b,i) { color:var(--text-sub); font-size:12px; } | |
| [data-native-domain="terra"] .grid { grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr)); gap:16px; } | |
| [data-native-domain="terra"] .pill.unavailable { color:var(--chip-bad); } | |
| [data-native-domain="terra"] .pill.observed { color:var(--chip-ok); } | |
| @media(max-width:760px) { | |
| [data-szl-native-vertical] main { padding-top:24px; } | |
| [data-szl-native-vertical] .top > .mono { width:100%; } | |
| [data-szl-native-vertical] .footer { grid-template-columns:1fr; } | |
| [data-szl-native-vertical] .livebar { align-items:flex-start; } | |
| [data-szl-native-vertical] .fin-grid,[data-szl-native-vertical] .fin-fields { grid-template-columns:1fr; } | |
| [data-native-domain="sentra"] .node { max-width:44%; font-size:11px; padding:10px; } | |
| } | |
| @media(prefers-reduced-motion:reduce) { [data-szl-native-vertical] *,[data-szl-native-vertical] *::before,[data-szl-native-vertical] *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } } | |
| @media(forced-colors:active) { | |
| [data-szl-native-vertical] body,[data-szl-native-vertical] .panel,[data-szl-native-vertical] pre { background:Canvas; color:CanvasText; } | |
| [data-szl-native-vertical] :is(.panel,.node,button,.button,input,select,textarea) { border:1px solid CanvasText; } | |
| [data-szl-native-vertical] a { color:LinkText; } | |
| [data-szl-native-vertical] .top::after { background:CanvasText; } | |
| } | |
| .native-nav { display:flex; flex-wrap:wrap; gap:8px; padding-block:18px; border-bottom:1px solid var(--border); } | |
| [data-szl-native-vertical] .native-nav a { font:550 14px/1.5 var(--font-body); padding:10px 14px; min-height:44px; border:1px solid var(--border); border-radius:8px; background:var(--surface); text-decoration:none; } | |
| [data-szl-native-vertical] .native-nav a:hover { border-color:var(--focus); } | |
| .native-noscript { padding:16px; border:1px solid var(--control-edge); background:var(--surface); color:var(--text); } | |
| [data-szl-native-vertical] [id] { scroll-margin-top:24px; } | |
| [data-native-domain="terra"] .grid > .asset:last-child { grid-column:1/-1; } | |
| </style></head> | |
| <body><a class="native-skip" href="#native-main">Skip to workspace</a><main class="shell" id="native-main" tabindex="-1"><header class="top"><div class="native-identity"><img src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MDAgNjAwIiByb2xlPSJpbWciIGFyaWEtbGFiZWxsZWRieT0ic3psLWljb24tMzItdGl0bGUgc3psLWljb24tMzItZGVzYyI+PHRpdGxlIGlkPSJzemwtaWNvbi0zMi10aXRsZSI+U1pMIEhvbGRpbmdzPC90aXRsZT48ZGVzYyBpZD0ic3psLWljb24tMzItZGVzYyI+U1pMIGxldHRlcnMsIG9uZSBvcmJpdCBhbmQgdGhlIGNvcmFsIG5vZGUsIGZvciBwbGFjZW1lbnRzIG9mIDI0IHRvIDQ4IHBpeGVscy48L2Rlc2M+PHJlY3Qgd2lkdGg9IjYwMCIgaGVpZ2h0PSI2MDAiIHJ4PSIxMjAiIGZpbGw9IiMwMzBGMjkiLz48ZWxsaXBzZSBjeD0iMzAwIiBjeT0iMzAwIiByeD0iMjYyIiByeT0iMTIyIiBmaWxsPSJub25lIiBzdHJva2U9IiM5QUE3QkQiIHN0cm9rZS13aWR0aD0iMjIiIHRyYW5zZm9ybT0icm90YXRlKC0yMiAzMDAgMzAwKSIvPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDMwMCAzMDApIHNjYWxlKDEuMikgdHJhbnNsYXRlKC0yOTkuOCAtMjk5LjEpIj48ZyBmaWxsPSIjMDMwRjI5IiBzdHJva2U9IiMwMzBGMjkiIHN0cm9rZS13aWR0aD0iMTguMzMiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0yMjguMjU2IDMzMS4wNDlRMjI4LjI1NiAzNTMuOTY3IDIxMS4yNiAzNjYuMDkxUTE5NC4yNjUgMzc4LjIxNCAxNjEuMzgzIDM3OC4yMTRRMTMxLjM3OCAzNzguMjE0IDExNC4zMjggMzY3LjU4NlE5Ny4yNzggMzU2Ljk1NyA5Mi40MDYgMzM1LjM2N0wxMjMuOTYgMzMwLjE2M1ExMjcuMTcxIDM0Mi41NjQgMTM2LjQ3MSAzNDguMTU1UTE0NS43NzEgMzUzLjc0NiAxNjIuMjY4IDM1My43NDZRMTk2LjQ4IDM1My43NDYgMTk2LjQ4IDMzMi45MzFRMTk2LjQ4IDMyNi4yODggMTkyLjU0OSAzMjEuOTdRMTg4LjYxOSAzMTcuNjUyIDE4MS40NzggMzE0Ljc3NFExNzQuMzM2IDMxMS44OTUgMTU0LjA3NSAzMDcuNzk4UTEzNi41ODIgMzAzLjcwMiAxMjkuNzE4IDMwMS4yMTFRMTIyLjg1MyAyOTguNzIgMTE3LjMxNyAyOTUuMzQzUTExMS43ODEgMjkxLjk2NiAxMDcuOTA2IDI4Ny4yMDVRMTA0LjAzMSAyODIuNDQ0IDEwMS44NzIgMjc2LjAyM1E5OS43MTMgMjY5LjYwMSA5OS43MTMgMjYxLjI5N1E5OS43MTMgMjQwLjE1IDExNS42MDEgMjI4LjkxM1ExMzEuNDg5IDIxNy42NzUgMTYxLjgyNSAyMTcuNjc1UTE5MC44MzMgMjE3LjY3NSAyMDUuMzkyIDIyNi43NTRRMjE5Ljk1MiAyMzUuODMzIDIyNC4xNTkgMjU2Ljc1OEwxOTIuNDk0IDI2MS4wNzZRMTkwLjA1OCAyNTEuMDAxIDE4Mi41ODUgMjQ1LjkwOFExNzUuMTExIDI0MC44MTUgMTYxLjE2MSAyNDAuODE1UTEzMS40ODkgMjQwLjgxNSAxMzEuNDg5IDI1OS40MTVRMTMxLjQ4OSAyNjUuNTA1IDEzNC42NDQgMjY5LjM4UTEzNy44IDI3My4yNTUgMTQ0IDI3NS45NjdRMTUwLjIgMjc4LjY4IDE2OS4xMzMgMjgyLjc3NlExOTEuNjA4IDI4Ny41MzcgMjAxLjI5NiAyOTEuNTc4UTIxMC45ODQgMjk1LjYyIDIxNi42MyAzMDAuOTg5UTIyMi4yNzcgMzA2LjM1OSAyMjUuMjY2IDMxMy44MzNRMjI4LjI1NiAzMjEuMzA2IDIyOC4yNTYgMzMxLjA0OVoiLz48cGF0aCBkPSJNMzY5LjA4NyAzNzZIMjQzLjg2N1YzNTIuODZMMzI4LjIzMyAyNDUuNTc2SDI1Mi4yODFWMjIwSDM2NC41NDhWMjQyLjY5N0wyODAuMTgyIDM1MC40MjRIMzY5LjA4N1oiLz48cGF0aCBkPSJNMzkwLjc4OCAzNzZWMjIwSDQyMy40NDlWMzUwLjc1N0g1MDcuMTUxVjM3NloiLz48L2c+PGcgZmlsbD0iI0ZGRkZGRiI+PHBhdGggZD0iTTIyOC4yNTYgMzMxLjA0OVEyMjguMjU2IDM1My45NjcgMjExLjI2IDM2Ni4wOTFRMTk0LjI2NSAzNzguMjE0IDE2MS4zODMgMzc4LjIxNFExMzEuMzc4IDM3OC4yMTQgMTE0LjMyOCAzNjcuNTg2UTk3LjI3OCAzNTYuOTU3IDkyLjQwNiAzMzUuMzY3TDEyMy45NiAzMzAuMTYzUTEyNy4xNzEgMzQyLjU2NCAxMzYuNDcxIDM0OC4xNTVRMTQ1Ljc3MSAzNTMuNzQ2IDE2Mi4yNjggMzUzLjc0NlExOTYuNDggMzUzLjc0NiAxOTYuNDggMzMyLjkzMVExOTYuNDggMzI2LjI4OCAxOTIuNTQ5IDMyMS45N1ExODguNjE5IDMxNy42NTIgMTgxLjQ3OCAzMTQuNzc0UTE3NC4zMzYgMzExLjg5NSAxNTQuMDc1IDMwNy43OThRMTM2LjU4MiAzMDMuNzAyIDEyOS43MTggMzAxLjIxMVExMjIuODUzIDI5OC43MiAxMTcuMzE3IDI5NS4zNDNRMTExLjc4MSAyOTEuOTY2IDEwNy45MDYgMjg3LjIwNVExMDQuMDMxIDI4Mi40NDQgMTAxLjg3MiAyNzYuMDIzUTk5LjcxMyAyNjkuNjAxIDk5LjcxMyAyNjEuMjk3UTk5LjcxMyAyNDAuMTUgMTE1LjYwMSAyMjguOTEzUTEzMS40ODkgMjE3LjY3NSAxNjEuODI1IDIxNy42NzVRMTkwLjgzMyAyMTcuNjc1IDIwNS4zOTIgMjI2Ljc1NFEyMTkuOTUyIDIzNS44MzMgMjI0LjE1OSAyNTYuNzU4TDE5Mi40OTQgMjYxLjA3NlExOTAuMDU4IDI1MS4wMDEgMTgyLjU4NSAyNDUuOTA4UTE3NS4xMTEgMjQwLjgxNSAxNjEuMTYxIDI0MC44MTVRMTMxLjQ4OSAyNDAuODE1IDEzMS40ODkgMjU5LjQxNVExMzEuNDg5IDI2NS41MDUgMTM0LjY0NCAyNjkuMzhRMTM3LjggMjczLjI1NSAxNDQgMjc1Ljk2N1ExNTAuMiAyNzguNjggMTY5LjEzMyAyODIuNzc2UTE5MS42MDggMjg3LjUzNyAyMDEuMjk2IDI5MS41NzhRMjEwLjk4NCAyOTUuNjIgMjE2LjYzIDMwMC45ODlRMjIyLjI3NyAzMDYuMzU5IDIyNS4yNjYgMzEzLjgzM1EyMjguMjU2IDMyMS4zMDYgMjI4LjI1NiAzMzEuMDQ5WiIvPjxwYXRoIGQ9Ik0zNjkuMDg3IDM3NkgyNDMuODY3VjM1Mi44NkwzMjguMjMzIDI0NS41NzZIMjUyLjI4MVYyMjBIMzY0LjU0OFYyNDIuNjk3TDI4MC4xODIgMzUwLjQyNEgzNjkuMDg3WiIvPjxwYXRoIGQ9Ik0zOTAuNzg4IDM3NlYyMjBINDIzLjQ0OVYzNTAuNzU3SDUwNy4xNTFWMzc2WiIvPjwvZz48L2c+PGNpcmNsZSBjeD0iMzczLjY5IiBjeT0iMTU0LjA1IiByPSIzMCIgZmlsbD0iI0RGNzM1RiIvPjwvc3ZnPgo=" width="40" height="40" alt="SZL Holdings"><span>SZL HOLDINGS<span class="native-family">A11oy · Finance</span></span></div><div class="brand">SZL HOLDINGS / PURIQ FINANCE</div><div class="mono">DOMAIN EXPERIENCE V4 · SOURCE BOUND</div></header><nav class="native-nav" aria-label="Workspace sections"><a href="#fin-signed">Signed prices</a><a href="#fin-research">Research audit</a><a href="#fin-desk">Source workbench</a><a href="#fin-analytics">Advisory analytics</a><a href="#native-evidence">Evidence status</a></nav><noscript><p class="native-noscript">JavaScript is disabled. No runtime observation has been made in this page. Source links remain available; interactive tools require JavaScript.</p></noscript><section style="margin-top:clamp(52px,9vw,112px)"><div class="eyebrow">FINANCIAL INTELLIGENCE</div><h1>PURIQ Finance</h1><p class="lede">Provenance-first financial signal and decision console. One governed runtime underneath; a domain-native workbench above it. Observed evidence, modeled analysis, human authority, and audit receipts remain separate states.</p><div class="flow"><span>INGEST</span><span>PRICE</span><span>STRESS</span><span>DECIDE</span><span>AUDIT</span></div></section> | |
| <section id="fin-signed" class="finance-desk" aria-labelledby="fin-signed-title"> | |
| <div class="fin-head"><h2 id="fin-signed-title">Signed price observatory</h2><a href="/signed-prices#fin-signed">Open observatory</a></div> | |
| <p class="fin-note">Inspect public BTC, ETH and SOL prints. Provider signatures authenticate assertions; they do not establish market accuracy or independent sources. Keys come from the provider over HTTPS.</p> | |
| <div class="fin-grid"><div class="card"> | |
| <form id="fin-signed-form"><label for="fin-signed-symbol">Public sample</label><select id="fin-signed-symbol"><option>BTC</option><option>ETH</option><option>SOL</option></select><div class="fin-actions"><button type="submit">Verify latest print</button><button type="button" id="fin-signed-export" disabled>Download evidence</button></div></form> | |
| <p class="fin-state" id="fin-signed-state" role="status" aria-live="polite">NOT CHECKED</p> | |
| <h3 id="fin-signed-price">No accepted price</h3><p class="fin-note" id="fin-signed-proof">Full-record signature, freshness and source policy are required.</p> | |
| <p class="fin-note">Review only. Local evidence digests are unsigned. No orders or capital movement.</p> | |
| </div><div class="card"> | |
| <h3>Reference-price research</h3><p class="fin-note">MODELED / SYNTHETIC. Compare equal-venue and declared-group medians under outliers and duplicated sources. Group independence is an assumption; this is not an accuracy or performance benchmark.</p> | |
| <button type="button" id="fin-signed-model">Run synthetic comparison</button><p id="fin-signed-model-state" class="fin-state" role="status">NOT RUN</p><div class="fin-scroll"><table><caption>Synthetic USD reference values</caption><thead><tr><th>Scenario</th><th>Venue median</th><th>Group median</th></tr></thead><tbody id="fin-signed-model-rows"></tbody></table></div> | |
| </div></div> | |
| <details><summary>Verification evidence and source revision</summary><pre id="fin-signed-evidence" class="fin-provenance">No observation.</pre></details> | |
| <p class="fin-note"><a href="https://github.com/szl-holdings/puriq-live/blob/2ea8ea4bb9de2ca432f40c0c55ea5a5ed02786bf/docs/SIGNED_PRICE_RESEARCH_2026-10-07.md" target="_blank" rel="noopener noreferrer">Research, source code and prior art</a></p> | |
| </section> | |
| <script> | |
| (()=>{'use strict'; | |
| const $=id=>document.getElementById(id);if(!$('fin-signed'))return; | |
| let serial=0,pending=null,accepted=null,expiry=null; | |
| function clear(){accepted=null;clearTimeout(expiry);$('fin-signed-export').disabled=true;$('fin-signed-price').textContent='No accepted price';$('fin-signed-proof').textContent='Full-record signature, freshness and source policy are required.';$('fin-signed-evidence').textContent='No observation.';} | |
| function invalidate(){serial++;if(pending)pending.abort();clear();$('fin-signed-state').textContent='NOT CHECKED';} | |
| async function json(path,signal){const response=await fetch(path,{credentials:'omit',cache:'no-store',redirect:'error',signal,headers:{Accept:'application/json'}});if(!/^application\/json(?:;|$)/i.test(response.headers.get('content-type')||''))throw Error('INVALID_RESPONSE');const reader=response.body.getReader(),parts=[];let size=0;try{for(;;){const p=await reader.read();if(p.done)break;size+=p.value.length;if(size>200000)throw Error('RESPONSE_TOO_LARGE');parts.push(p.value);}}catch(e){await reader.cancel();throw e;}const raw=new Uint8Array(size);let i=0;for(const p of parts){raw.set(p,i);i+=p.length;}const body=JSON.parse(new TextDecoder('utf-8',{fatal:true}).decode(raw));if(response.status!==200)throw Error('SOURCE_UNAVAILABLE');if(body.schema!=='szl.finance.signed-price/v1'||! /^[0-9a-f]{40}$/.test(body.source_revision)||body.execution_enabled!==false||body.advisory_only!==true||body.receipt?.signing!=='UNSIGNED_HONEST')throw Error('INVALID_CONTRACT');return body;} | |
| $('fin-signed-form').addEventListener('submit',async e=>{e.preventDefault();invalidate();const epoch=serial,symbol=$('fin-signed-symbol').value;const controller=new AbortController();pending=controller;const timer=setTimeout(()=>controller.abort(),15000),started=performance.now();$('fin-signed-state').textContent='VERIFYING';try{ | |
| const body=await json('/api/finance/signed-prices/'+encodeURIComponent(symbol),pending.signal);if(epoch!==serial)return;const result=body.result,proof=result?.verification; | |
| if(result?.symbol!==symbol||result.can_authorize!==false||result.trading_enabled!==false)throw Error('INVALID_CONTRACT');$('fin-signed-evidence').textContent=JSON.stringify(body,null,2); | |
| if(result.status!=='REVIEW'){if(result.status!=='ABSTAIN'||result.price_text!==null)throw Error('INVALID_CONTRACT');$('fin-signed-state').textContent='ABSTAIN';$('fin-signed-proof').textContent=(result.decision_reasons||[]).join(', ');return;} | |
| const age=proof?.freshness?.age_seconds,eventTime=Date.parse(result.provider_print?.at),price=result.price_text; | |
| if(body.state!=='REVIEW'||proof.core_valid!==true||proof.record_valid!==true||proof.fresh!==true||proof.verification_scope!=='full-record'||proof.freshness?.max_age_seconds!==30||!Number.isFinite(age)||!Number.isFinite(eventTime)||!/^\d+(?:\.\d+)?$/.test(price)||result.decision_reasons?.length!==0)throw Error('INVALID_CONTRACT'); | |
| const remaining=(30-Math.max(0,age,(Date.now()-eventTime)/1000))*1000-(performance.now()-started); | |
| if(remaining<=0){$('fin-signed-state').textContent='EXPIRED';return;} | |
| accepted=body;$('fin-signed-export').disabled=false;$('fin-signed-state').textContent='REVIEW / PROVIDER SIGNATURES VERIFIED';$('fin-signed-price').textContent=symbol+' $'+price;$('fin-signed-proof').textContent='Core and full-record signatures verified. Freshness expires locally. Key fingerprint: '+proof.key_fingerprint; | |
| expiry=setTimeout(()=>{if(epoch===serial){clear();$('fin-signed-state').textContent='EXPIRED — VERIFY AGAIN';}},remaining); | |
| }catch(error){if(epoch===serial){clear();$('fin-signed-state').textContent=error.name==='AbortError'?'UNAVAILABLE / DEADLINE':'UNAVAILABLE';}}finally{clearTimeout(timer);if(epoch===serial)pending=null;}}); | |
| $('fin-signed-symbol').addEventListener('change',invalidate); | |
| $('fin-signed-export').addEventListener('click',()=>{if(!accepted)return;const url=URL.createObjectURL(new Blob([JSON.stringify(accepted,null,2)+'\n'],{type:'application/json'})),a=document.createElement('a');a.href=url;a.download='puriq-signed-price-evidence.json';a.click();setTimeout(()=>URL.revokeObjectURL(url),1000);}); | |
| $('fin-signed-model').addEventListener('click',async()=>{const button=$('fin-signed-model'),controller=new AbortController(),timer=setTimeout(()=>controller.abort(),15000);button.disabled=true;$('fin-signed-model-rows').replaceChildren();$('fin-signed-model-state').textContent='COMPUTING';try{const body=await json('/api/finance/signed-prices/model',controller.signal);if(body.state!=='MODELED'||body.result?.data_kind!=='SYNTHETIC')throw Error('INVALID_CONTRACT');for(const [name,item] of Object.entries(body.result.cases)){const row=document.createElement('tr');for(const value of [name.replaceAll('_',' '),item.venue_median_usd,item.reference_price_usd]){const cell=document.createElement('td');cell.textContent=value;row.append(cell);}$('fin-signed-model-rows').append(row);}$('fin-signed-model-state').textContent='MODELED / SYNTHETIC';}catch(error){$('fin-signed-model-state').textContent='UNAVAILABLE';}finally{clearTimeout(timer);button.disabled=false;}}); | |
| window.addEventListener('pagehide',invalidate);document.addEventListener('visibilitychange',()=>{if(document.hidden)invalidate();}); | |
| })(); | |
| </script> | |
| <section class="finance-desk fin-research" id="fin-research" aria-labelledby="fin-research-title"> | |
| <section class="panel"><div class="mono">PURIQ / RESEARCH AUDIT</div><h2 id="fin-research-title">What survives the data checks?</h2><p class="fin-note">Audit an annual panel before using it in a financial thesis. Inspect exclusions, release timing, coverage, and supplied robustness estimates. No model is fitted here.</p> | |
| <div class="fin-grid"><form id="fin-research-form"><div class="fin-fields"><label for="fin-research-date">As known on<input id="fin-research-date" type="date" value="2024-12-31" required></label></div><label for="fin-research-input">Research packet (JSON)</label><textarea id="fin-research-input" spellcheck="false" maxlength="160000" aria-describedby="fin-research-help"></textarea><p id="fin-research-help" class="fin-note">Up to 160 KB. Each record needs entity, period (year), value, and state: observed, suppressed, missing, or invalid. Add available_at to establish eligibility as of the selected date. Send only data you are authorized to submit.</p><div class="fin-actions"><button type="submit" id="fin-research-run">Audit research packet</button><button type="button" id="fin-research-demo">Load synthetic example</button></div></form> | |
| <div><p id="fin-research-state" class="fin-state" role="status">SYNTHETIC EXAMPLE / NOT AUDITED</p><p class="fin-note">The example uses fictional entities and estimates. Suppression is never converted into an observed zero. Unknown release dates are excluded from the as-of sample.</p><div id="fin-research-metrics" class="fin-metrics"></div><div id="fin-research-issues" class="fin-empty">Run the audit to inspect the sample.</div><button type="button" id="fin-research-export" disabled>Export evidence packet</button><p class="fin-note">The result is a stateless calculation over caller-supplied records. Export includes your inputs and an unsigned integrity receipt. It does not establish source authenticity or causal validity.</p></div></div> | |
| </section> | |
| <div class="fin-grid"><section class="panel"><h3>Sample attrition</h3><div id="fin-research-attrition" class="fin-scroll" tabindex="0" role="region" aria-label="Sample attrition table"><p class="fin-empty">No audit yet.</p></div></section><section class="panel"><h3>Robustness comparison</h3><p class="fin-note">Reported estimates only. A sign change or fewer than 30 declared clusters prompts review; the threshold is a screening heuristic, not a validity test.</p><div id="fin-research-robustness" class="fin-scroll" tabindex="0" role="region" aria-label="Reported robustness table"><p class="fin-empty">No specifications evaluated.</p></div></section></div> | |
| <section class="panel"><h3>Entity-year coverage</h3><p id="fin-research-coverage-note" class="fin-note">Supply expected_entities, start_year, and end_year to define the intended sample. A sample inferred only from submitted records can hide absent entities.</p><div id="fin-research-coverage" class="fin-scroll" tabindex="0" role="region" aria-label="Entity year coverage table"></div><details><summary>Full audit and integrity receipt</summary><pre id="fin-research-evidence" class="fin-provenance">No audit yet.</pre></details></section> | |
| <section class="panel"><h3>Research references</h3><p class="fin-note">Selected public primary sources reviewed on 7 October 2026. These inform the design; the authors and projects do not endorse this product.</p><div class="fin-references"> | |
| <article class="fin-reference"><a href="https://docs.openbb.co/odp/v4/python/developer/standardization" target="_blank" rel="noopener noreferrer">OpenBB</a><p>Normalize schemas while preserving the difference between missing values and real zeros.</p></article><article class="fin-reference"><a href="https://www.quantconnect.com/docs/v2/writing-algorithms/importing-data/streaming-data/custom-securities/key-concepts" target="_blank" rel="noopener noreferrer">QuantConnect / LEAN</a><p>Use the date information became available to guard against look-ahead bias.</p></article><article class="fin-reference"><a href="https://github.com/microsoft/qlib" target="_blank" rel="noopener noreferrer">Microsoft Qlib</a><p>Make data preparation, evaluation, and data health checks explicit parts of research.</p></article><article class="fin-reference"><a href="https://fred.stlouisfed.org/docs/api/fred/realtime_period.html" target="_blank" rel="noopener noreferrer">FRED / ALFRED</a><p>Historical vintages describe what was known at the time. This audit checks supplied release dates; it does not fetch vintages.</p></article><article class="fin-reference"><a href="https://www.bls.gov/cew/questions-and-answers.htm" target="_blank" rel="noopener noreferrer">BLS QCEW</a><p>Suppressed employment and wage fields can be zero-filled. Interpret disclosure flags before classifying a value.</p></article><article class="fin-reference"><a href="https://www.irs.gov/statistics/soi-tax-stats-migration-data" target="_blank" rel="noopener noreferrer">IRS migration data</a><p>Retain period-specific documentation when comparing tax-return migration across years.</p></article><article class="fin-reference"><a href="https://www.sec.gov/search-filings/edgar-application-programming-interfaces" target="_blank" rel="noopener noreferrer">SEC EDGAR</a><p>Keep filing dates, units, and reporting periods with financial observations.</p></article><article class="fin-reference"><a href="https://economics.stanford.edu/people/susan-athey" target="_blank" rel="noopener noreferrer">Susan Athey</a><p>Stanford economist whose work connects economics and machine learning. Reading focus: identification and research design.</p></article><article class="fin-reference"><a href="https://scholars.duke.edu/person/andrew.patton" target="_blank" rel="noopener noreferrer">Andrew Patton</a><p>Duke financial econometrician. Reading focus: forecast evaluation and volatility.</p></article><article class="fin-reference"><a href="https://arxiv.org/abs/1607.00699" target="_blank" rel="noopener noreferrer">Athey & Imbens</a><p>Applied econometrics: causality, policy evaluation, sensitivity, and robustness.</p></article></div></section></section> | |
| <script> | |
| (()=>{'use strict'; | |
| const $=id=>document.getElementById(id);let accepted=null,epoch=0,controller=null; | |
| const example={expected_entities:['County A','County B','County C'],start_year:2022,end_year:2023,records:[ | |
| {entity:'County A',period:2022,value:0,state:'observed',available_at:'2023-06-01',group:'Large'}, | |
| {entity:'County A',period:2023,value:12,state:'observed',available_at:'2024-06-01',group:'Large'}, | |
| {entity:'County B',period:2022,value:0,state:'suppressed',available_at:'2023-06-01',group:'Small'}, | |
| {entity:'County B',period:2023,value:null,state:'missing',group:'Small'}, | |
| {entity:'County C',period:2022,value:8,state:'observed',group:'Small'}, | |
| {entity:'County C',period:2023,value:9,state:'observed',available_at:'2025-02-01',group:'Small'}], | |
| specifications:[{label:'Synthetic baseline',estimate:0.2,standard_error:0.1,n:60,clusters:4},{label:'Synthetic alternate trend',estimate:-0.1,standard_error:0.15,n:48,clusters:4}]}; | |
| function text(tag,value){const e=document.createElement(tag);e.textContent=String(value);return e;} | |
| function empty(id,message){$(id).replaceChildren(text('p',message));} | |
| function clear(){accepted=null;$('fin-research-export').disabled=true;$('fin-research-metrics').replaceChildren();empty('fin-research-attrition','No current audit.');empty('fin-research-robustness','No current comparison.');$('fin-research-coverage').replaceChildren();$('fin-research-evidence').textContent='No current evidence.';$('fin-research-issues').textContent='Run the audit to inspect the sample.';$('fin-research-coverage-note').textContent='Coverage is calculated after you submit the research packet.';} | |
| function invalidate(){epoch++;if(controller)controller.abort();clear();$('fin-research-state').textContent='INPUTS CHANGED / NOT AUDITED';} | |
| function demo(){invalidate();$('fin-research-input').value=JSON.stringify(example,null,2);$('fin-research-date').value='2024-12-31';$('fin-research-state').textContent='SYNTHETIC EXAMPLE / NOT AUDITED';} | |
| function table(id,heads,rows){const t=document.createElement('table'),head=document.createElement('thead'),tr=document.createElement('tr');heads.forEach(h=>{const th=text('th',h);th.scope='col';tr.append(th);});head.append(tr);t.append(head);const body=document.createElement('tbody');for(const row of rows){const tr=document.createElement('tr');for(const item of row)tr.append(text('td',item===null||item===undefined?'Unknown':item));body.append(tr);}t.append(body);$(id).replaceChildren(t);} | |
| function show(body,raw){const r=body.result,s=r.summary; | |
| for(const [label,value] of [['Submitted',s.total_records],['Eligible as of date',s.kept_records],['Excluded',s.excluded_records],['Observed zeros kept',s.kept_zero_records]]){const card=document.createElement('div');card.className='fin-metric';card.append(text('span',label),text('strong',value));$('fin-research-metrics').append(card);} | |
| $('fin-research-state').textContent=(r.audit_accepted?'AUDITED':'REVIEW REQUIRED')+' / CALLER-SUPPLIED DATA / '+r.as_of; | |
| const issues=r.issues.map(i=>i.code.replaceAll('_',' ')+(i.count===undefined?'':' ('+i.count+')'));$('fin-research-issues').textContent=issues.length?issues.join(' · '):'No configured audit flags. This does not establish source validity.'; | |
| table('fin-research-attrition',['Group','Submitted','Kept','Excluded'],r.attrition.groups.map(g=>[g.group,g.total_records,g.kept_records,g.excluded_records])); | |
| if(r.robustness.specifications.length){table('fin-research-robustness',['Reported specification','Estimate','Std. error','N / clusters'],r.robustness.specifications.map(x=>[x.label,x.estimate,x.standard_error,(x.n??'?')+' / '+(x.clusters??'?')]));const p=text('p',r.robustness.flags.length?r.robustness.flags.map(f=>f.code.replaceAll('_',' ')+(f.label?' — '+f.label:'')).join(' · '):'No configured robustness flags. Estimates have not been recomputed.');p.className='fin-note';$('fin-research-robustness').append(p);}else{empty('fin-research-robustness','No estimates supplied. No regression has been run.');} | |
| const c=r.coverage;$('fin-research-coverage-note').textContent=c.recorded_cells+' recorded / '+c.expected_cells+' expected cells; '+c.absent_cells+' absent; '+c.eligible_cells+' eligible as of date. Grid: '+c.grid_origin+'. Showing '+Math.min(c.cells.length,150)+' cells. Export contains the full audit within documented bounds.'; | |
| table('fin-research-coverage',['Entity','Year','Data state','As-of eligible'],c.cells.slice(0,150).map(x=>[x.entity,x.period,x.state,x.eligible?'Yes':'No'])); | |
| $('fin-research-evidence').textContent=raw;$('fin-research-export').disabled=false;accepted=raw; | |
| } | |
| async function read(response){if(!(response.headers.get('content-type')||'').startsWith('application/json'))throw Error('INVALID RESPONSE');const reader=response.body.getReader(),chunks=[];let total=0;for(;;){const part=await reader.read();if(part.done)break;total+=part.value.length;if(total>4000000){await reader.cancel();throw Error('RESPONSE TOO LARGE');}chunks.push(part.value);}const all=new Uint8Array(total);let pos=0;for(const chunk of chunks){all.set(chunk,pos);pos+=chunk.length;}const raw=new TextDecoder('utf-8',{fatal:true}).decode(all);return {body:JSON.parse(raw),raw};} | |
| $('fin-research-form').addEventListener('submit',async event=>{event.preventDefault();invalidate();const serial=epoch;let payload,raw;try{const input=$('fin-research-input').value;for(const match of input.matchAll(/"(?:\\.|[^"\\])*"|(-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?)/g)){if(match[1]!==undefined){const n=Number(match[1]);if(!Number.isFinite(n)||(n===0&&/[1-9]/.test(match[1].split(/[eE]/)[0])))throw Error();}}payload=JSON.parse(input);if(!payload||Array.isArray(payload)||typeof payload!=='object')throw Error();payload.as_of=$('fin-research-date').value;raw=JSON.stringify(payload);if(new TextEncoder().encode(raw).length>160000)throw Error();}catch(e){$('fin-research-state').textContent='INVALID JSON PACKET / LIMIT 160 KB';return;} | |
| controller=new AbortController();const timer=setTimeout(()=>controller.abort(),20000);$('fin-research-state').textContent='AUDITING'; | |
| try{const response=await fetch('/api/finance/research/audit',{method:'POST',credentials:'omit',cache:'no-store',redirect:'error',signal:controller.signal,headers:{Accept:'application/json','Content-Type':'application/json'},body:raw}),packet=await read(response),body=packet.body;if(serial!==epoch)return;if(!response.ok||body.ok!==true)throw Error(typeof body.error==='string'&&/^[A-Z_]+$/.test(body.error)?body.error:'UNAVAILABLE'); | |
| if(body.schema!=='szl.finance.research/v1'||body.execution_enabled!==false||body.operation!=='research-audit'||body.truth_label!=='MODELED'||body.receipt?.signing!=='UNSIGNED_HONEST'||body.receipt?.signed!==false||!body.result||body.result.schema!=='szl.finance.research-audit/v1'||body.result.as_of!==payload.as_of)throw Error('INVALID CONTRACT');show(body,packet.raw); | |
| }catch(e){if(serial===epoch){clear();$('fin-research-state').textContent='BLOCKED / '+(e.name==='AbortError'?'DEADLINE':e.message);}}finally{clearTimeout(timer);}}); | |
| $('fin-research-form').addEventListener('input',invalidate);$('fin-research-demo').addEventListener('click',demo);$('fin-research-export').addEventListener('click',()=>{if(!accepted)return;const url=URL.createObjectURL(new Blob([accepted],{type:'application/json'})),a=document.createElement('a');a.href=url;a.download='puriq-research-audit.json';a.click();setTimeout(()=>URL.revokeObjectURL(url),1000);});window.addEventListener('pagehide',invalidate);demo(); | |
| })(); | |
| </script> | |
| <section id="fin-desk" class="finance-desk" data-szl-finance-workspace="1" aria-labelledby="fin-title"> | |
| <div class="panel fin-head"><div><div class="mono">PURIQ / SOURCE WORKBENCH</div><h2 id="fin-title">Inspect the evidence before the thesis.</h2></div><button id="fin-refresh" type="button">Refresh source status</button></div> | |
| <div class="panel"><p id="fin-registry-state" class="fin-state" role="status">NOT PROBED</p><p class="fin-note">Configuration is not connectivity. Status describes the last request for an adapter, not every market or instrument. Canonical runtime revision (reported evidence, not a compatibility key): <span id="fin-revision">UNAVAILABLE</span>.</p><details><summary>Inspect the 16-source access register</summary><div class="fin-scroll" tabindex="0" role="region" aria-label="Provider status table"><table><caption>Canonical market-data adapters. Owner-only sources are not exposed by this public Space.</caption><thead><tr><th scope="col">Source</th><th scope="col">Last-request state</th><th scope="col">Access</th></tr></thead><tbody id="fin-provider-body"></tbody></table></div></details></div> | |
| <div class="fin-grid"><section class="panel"><h3>One bounded observation</h3><form id="fin-form"><label for="fin-source">Source</label><select id="fin-source" name="source" disabled></select><p id="fin-operation" class="fin-note">Waiting for the canonical source contract.</p><div id="fin-fields" class="fin-fields"></div><div class="fin-actions"><button id="fin-observe" type="submit" disabled>Read public source</button><button id="fin-export" type="button" disabled>Export observation</button></div></form><p class="fin-note">Public observations only. No account, wallet, order, credential entry, model inference, or trading authorization. Polymarket and Kalshi contract equivalence is not established. Filings retain period and filing-date context.</p></section> | |
| <section class="panel fin-instrument"><h3>Source instrument</h3><p id="fin-result-state" class="fin-state" role="status">UNAVAILABLE</p><div id="fin-chart"></div><p id="fin-chart-note" class="fin-note">No chart observation.</p></section></div> | |
| <section class="panel"><h3>Returned records</h3><div id="fin-result-table" class="fin-scroll" tabindex="0" role="region" aria-label="Returned source records"></div><details><summary>Source envelope and provenance</summary><p class="fin-note">Digests establish internal consistency, not signatures, investment performance, or source authenticity. Display is limited to 250,000 characters; export preserves the accepted public response.</p><pre id="fin-detail" class="fin-provenance">No accepted observation.</pre></details></section> | |
| </section> | |
| <script> | |
| (()=>{'use strict'; | |
| const $=id=>document.getElementById(id), area=$('fin-desk'); | |
| if(!area)return; | |
| const defaults={ | |
| 'polymarket-markets':{limit:'12',offset:'0'},'polymarket-book':{token_id:''}, | |
| 'polymarket-history':{token_id:'',interval:'1d',fidelity:'60'}, | |
| 'kalshi-markets':{limit:'12',cursor:'',series_ticker:''},'kalshi-book':{ticker:'',depth:'20'}, | |
| 'coinbase-products':{},'coinbase-ticker':{product:'BTC-USD'}, | |
| 'coinbase-candles':{product:'BTC-USD',granularity:'3600',end:'',count:'60'}, | |
| 'sec-submissions':{cik:'320193',limit:'10'},'sec-companyfacts':{cik:'320193',limit:'10'}, | |
| 'treasury-rates':{limit:'12'},'treasury-debt':{limit:'12'},'bls-series':{series_id:'CUUR0000SA0'}, | |
| 'fred-series':{},'alpaca-quote':{},'alpaca-bars':{}}; | |
| const privateIds=new Set(['fred-series','alpaca-quote','alpaca-bars']); | |
| const sha=/^[0-9a-f]{40}$/, digest=/^[0-9a-f]{64}$/, code=/^[A-Z][A-Z0-9_]{0,95}$/; | |
| const states=new Set(['NOT_PROBED','SNAPSHOT','CACHED','STALE','UNAVAILABLE','EXPIRED']); | |
| let revision=null, specs=new Map(), registryEpoch=0, queryEpoch=0, pending=null, receipt=null; | |
| function text(tag,value){const e=document.createElement(tag);e.textContent=value;return e;} | |
| function showState(value){$('fin-result-state').textContent=value;} | |
| function clearResult(){receipt=null;$('fin-export').disabled=true;$('fin-result-table').replaceChildren();$('fin-chart').replaceChildren();$('fin-detail').textContent='No accepted observation.';$('fin-chart-note').textContent='No chart observation.';} | |
| function invalidate(){queryEpoch++;if(pending)pending.abort();pending=null;clearResult();} | |
| async function readJson(path,signal){ | |
| const response=await fetch(path,{method:'GET',credentials:'omit',cache:'no-store',redirect:'error',signal,headers:{Accept:'application/json'}}); | |
| if(!/^application\/(json|[a-z0-9.+-]+\+json)(;|$)/i.test(response.headers.get('content-type')||''))throw Error('INVALID_RESPONSE_TYPE'); | |
| const rawLength=response.headers.get('content-length'); | |
| if(rawLength!==null&&(!/^\d+$/.test(rawLength)||Number(rawLength)>4000000))throw Error('RESPONSE_TOO_LARGE'); | |
| const reader=response.body.getReader(),chunks=[];let bytes=0; | |
| try{for(;;){const part=await reader.read();if(part.done)break;bytes+=part.value.length;if(bytes>4000000)throw Error('RESPONSE_TOO_LARGE');chunks.push(part.value);}} | |
| catch(error){await reader.cancel();throw error;} | |
| const raw=new Uint8Array(bytes);let at=0;for(const part of chunks){raw.set(part,at);at+=part.length;} | |
| return {status:response.status,body:JSON.parse(new TextDecoder('utf-8',{fatal:true}).decode(raw))}; | |
| } | |
| function identity(body,schema){return body&&body.schema===schema&&typeof body.source_revision==='string'&&sha.test(body.source_revision)&&body.source_revision!=='0'.repeat(40)&&body.execution_enabled===false;} | |
| function form(){ | |
| invalidate();const source=$('fin-source').value,spec=specs.get(source);$('fin-fields').replaceChildren(); | |
| $('fin-observe').disabled=!spec||privateIds.has(source)||spec.private!==false; | |
| if(!spec){showState('UNAVAILABLE');return;} | |
| $('fin-operation').textContent=spec.operation; | |
| if(privateIds.has(source)){showState('OWNER-ONLY SOURCE — unavailable in this public Space');return;} | |
| for(const name of spec.parameters){const label=text('label',name.replaceAll('_',' '));const input=document.createElement('input');input.name=name;input.id='fin-param-'+name;input.maxLength=2048;input.autocomplete='off';input.value=defaults[source][name]||'';label.htmlFor=input.id;label.append(input);$('fin-fields').append(label);} | |
| showState('READY TO REQUEST — not a connectivity claim'); | |
| } | |
| async function registry(){ | |
| const generation=++registryEpoch;invalidate();revision=null;specs.clear();$('fin-source').replaceChildren();$('fin-source').disabled=true;$('fin-observe').disabled=true;$('fin-provider-body').replaceChildren();$('fin-registry-state').textContent='CHECKING SOURCE IDENTITY'; | |
| const controller=new AbortController(),timer=setTimeout(()=>controller.abort(),15000); | |
| try{ | |
| const witness=await readJson('/api/source',controller.signal);const value=witness.body; | |
| if(witness.status!==200||value.deployment_source!=='szl-holdings/a11oy'||!sha.test(value.source_revision)||value.source_revision==='0'.repeat(40))throw Error('INVALID_SOURCE_WITNESS'); | |
| const result=await readJson('/api/finance/providers',controller.signal); | |
| if(generation!==registryEpoch)return; | |
| const body=result.body;revision=body&&typeof body.source_revision==='string'?body.source_revision:null; | |
| if(result.status!==200||!identity(body,'szl.finance.providers/v1')||body.read_only!==true||body.canonical_repository!=='szl-holdings/a11oy'||!Array.isArray(body.sources)||body.sources.length!==Object.keys(defaults).length)throw Error('INVALID_PROVIDER_CONTRACT'); | |
| const next=new Map(); | |
| for(const row of body.sources){ | |
| if(!row||!Object.hasOwn(defaults,row.id)||next.has(row.id)||typeof row.operation!=='string'||row.operation.length>500||typeof row.provider!=='string'||row.private!==privateIds.has(row.id)||!Array.isArray(row.parameters)||row.parameters.length>8||!states.has(row.observed_connection)||!['PRESENT','MISSING'].includes(row.configuration))throw Error('INVALID_PROVIDER_CONTRACT'); | |
| if(!row.private&&(row.parameters.length!==Object.keys(defaults[row.id]).length||row.parameters.some(k=>!Object.hasOwn(defaults[row.id],k))||new Set(row.parameters).size!==row.parameters.length))throw Error('INVALID_PARAMETERS'); | |
| next.set(row.id,row); | |
| } | |
| specs=next; | |
| for(const [id,row] of specs){const option=text('option',id+(row.private?' — owner-only':''));option.value=id;option.disabled=row.private;$('fin-source').append(option);const tr=document.createElement('tr');for(const value of [id,row.observed_connection,row.private?'OWNER-ONLY':row.configuration==='MISSING'?'CONFIGURATION MISSING':'PUBLIC READ'])tr.append(text('td',value));$('fin-provider-body').append(tr);} | |
| $('fin-source').disabled=false;$('fin-source').value='coinbase-ticker';$('fin-registry-state').textContent='16 ADAPTERS / 13 PUBLIC / 3 OWNER-ONLY — last-request state only';$('fin-revision').textContent=revision;form(); | |
| }catch(error){if(generation!==registryEpoch)return;revision=null;specs.clear();$('fin-source').disabled=true;$('fin-observe').disabled=true;$('fin-registry-state').textContent='UNAVAILABLE — provider registry not accepted';$('fin-revision').textContent='UNAVAILABLE';showState('UNAVAILABLE');clearResult();} | |
| finally{clearTimeout(timer);} | |
| } | |
| function scalar(value){return value===null||value===undefined?'Unavailable':typeof value==='object'?JSON.stringify(value):String(value);} | |
| function table(data){ | |
| const rows=Array.isArray(data.items)?data.items:[data];const table=document.createElement('table');table.append(text('caption','Displaying '+Math.min(rows.length,30)+' of '+rows.length+' returned records. Bounded response, not an all-market census. Null is unavailable; zero is retained.')); | |
| if(!rows.length){$('fin-result-table').append(text('p','EMPTY — the source returned no records.'));return;} | |
| const keys=[...new Set(rows.flatMap(row=>Object.keys(row)))].slice(0,6),head=document.createElement('thead'),hr=document.createElement('tr');for(const key of keys){const th=text('th',key.replaceAll('_',' '));th.scope='col';hr.append(th);}head.append(hr);table.append(head); | |
| const tbody=document.createElement('tbody');for(const row of rows.slice(0,30)){const tr=document.createElement('tr');for(const key of keys)tr.append(text('td',scalar(row[key]).slice(0,300)));tbody.append(tr);}table.append(tbody);$('fin-result-table').append(table); | |
| } | |
| function chart(source,data){ | |
| const note=$('fin-chart-note');if(source!=='coinbase-candles'){note.textContent='Structured source records below. No chart inferred for this data type.';return;} | |
| if(data.window_complete!==true||!Array.isArray(data.missing_intervals)||data.missing_intervals.length||!Array.isArray(data.items)||data.items.length<2||!Number.isSafeInteger(data.granularity_seconds)||data.granularity_seconds<=0){note.textContent='Chart withheld — complete contiguous candles were not established. No gap filling.';return;} | |
| const points=data.items.map(row=>[row.time,typeof row.close==='string'&&/^(\d+)(\.\d+)?$/.test(row.close)?Number(row.close):NaN]); | |
| if(points.length>300||points.some(([t,v],i)=>!Number.isSafeInteger(t)||!Number.isFinite(v)||v<=0||(i>0&&t-points[i-1][0]!==data.granularity_seconds))){note.textContent='Chart withheld — invalid chart inputs.';return;} | |
| const lo=Math.min(...points.map(p=>p[1])),hi=Math.max(...points.map(p=>p[1])),span=hi-lo||1,elapsed=points.at(-1)[0]-points[0][0]; | |
| const NS='http://www.w3.org/2000/svg',svg=document.createElementNS(NS,'svg');svg.setAttribute('viewBox','0 0 800 260');svg.setAttribute('role','img');svg.setAttribute('aria-label','Historical candle close prices. Approximate drawing only; exact source values are in the records and export.'); | |
| const title=document.createElementNS(NS,'title');title.textContent='Historical close, quote-currency units; no execution or performance claim';svg.append(title); | |
| const poly=document.createElementNS(NS,'polyline');poly.setAttribute('points',points.map(([t,v])=>[20+(t-points[0][0])/elapsed*760,220-(v-lo)/span*190].join(',')).join(' '));poly.setAttribute('fill','none');poly.setAttribute('stroke','currentColor');poly.setAttribute('stroke-width','2');svg.append(poly);$('fin-chart').append(svg); | |
| note.textContent=data.product+' / '+points.length+' completed candles / '+data.granularity_seconds+' seconds per candle. Visual range '+lo+'–'+hi+' quote units. Approximate rendering only; source decimals are unchanged in the export.'; | |
| } | |
| async function observe(event){ | |
| event.preventDefault();invalidate();const generation=queryEpoch,source=$('fin-source').value,spec=specs.get(source); | |
| if(!revision||!spec||spec.private!==false||privateIds.has(source)){showState('DENIED — source is not public');return;} | |
| const params=new URLSearchParams();for(const [key,value] of new FormData($('fin-form'))){if(key==='source')continue;if(!spec.parameters.includes(key)||typeof value!=='string'||value.length>2048){showState('INVALID PARAMETERS');return;}if(value.trim())params.set(key,value.trim());} | |
| const controller=new AbortController();pending=controller;const timer=setTimeout(()=>controller.abort(),15000);showState('REQUESTING — previous result cleared');$('fin-observe').disabled=true; | |
| try{ | |
| const result=await readJson('/api/finance/observations/'+source+(params.size?'?'+params:''),controller.signal);if(generation!==queryEpoch)return;const body=result.body; | |
| if(!identity(body,'szl.finance.observation/v1')||body.source!==source)throw Error('INVALID_OBSERVATION'); | |
| if(result.status!==200||body.ok!==true||!['SNAPSHOT','CACHED'].includes(body.state)){showState('UNAVAILABLE / '+(code.test(body.error||'')?body.error:'NO_CURRENT_OBSERVATION'));return;} | |
| if(!body.data||typeof body.data!=='object'||Array.isArray(body.data)||body.truth_label!=='REPORTED'||!body.provenance||body.provenance.signed!==false||!digest.test(body.provenance.observation_id||'')||body.provenance.retrieved_at!==body.retrieved_at||body.provenance.runtime_reported_source_revision!==body.source_revision)throw Error('INVALID_OBSERVATION'); | |
| if(Array.isArray(body.data.items)&&body.data.items.some(row=>!row||typeof row!=='object'||Array.isArray(row)))throw Error('INVALID_RECORDS'); | |
| table(body.data);chart(source,body.data);receipt=body;$('fin-export').disabled=false;$('fin-detail').textContent=JSON.stringify(body,null,2).slice(0,250000);showState(body.state+' / REPORTED / retrieved '+body.retrieved_at+' — not current-price assurance'); | |
| }catch(error){if(generation===queryEpoch){clearResult();showState('UNAVAILABLE — request failed or response was rejected');}} | |
| finally{clearTimeout(timer);if(generation===queryEpoch){pending=null;$('fin-observe').disabled=!specs.has(source)||privateIds.has(source);}} | |
| } | |
| $('fin-form').addEventListener('input',event=>{if(event.target.id==='fin-source')return;invalidate();const spec=specs.get($('fin-source').value);$('fin-observe').disabled=!spec||spec.private!==false;showState('PARAMETERS CHANGED — request a new observation');}); | |
| $('fin-form').addEventListener('submit',observe);$('fin-source').addEventListener('change',form);$('fin-refresh').addEventListener('click',registry); | |
| $('fin-export').addEventListener('click',()=>{if(!receipt)return;const blob=new Blob([JSON.stringify(receipt,null,2)+'\n'],{type:'application/json'}),url=URL.createObjectURL(blob),link=document.createElement('a');link.href=url;link.download='puriq-'+receipt.source+'-observation.json';link.click();setTimeout(()=>URL.revokeObjectURL(url),1000);}); | |
| window.addEventListener('pagehide',invalidate);registry(); | |
| })(); | |
| </script> | |
| <section class="finance-desk" id="fin-analytics" aria-labelledby="fin-analytics-title"> | |
| <section class="panel"><div class="mono">PURIQ / ADVISORY ANALYTICS V2</div><h2 id="fin-analytics-title">From source evidence to measured inputs.</h2> | |
| <p class="fin-note">Daily-close indicators are modeled analysis, not investment advice or an execution quote. Paper use only. Live history comes from the canonical Coinbase adapter; the fixture is synthetic. Missing daily intervals block calculation.</p> | |
| <form id="fin-analysis-form"><div class="fin-fields"><label>Instrument<input id="fin-analysis-symbol" value="BTC-USD" maxlength="24" pattern="[A-Z0-9][A-Z0-9.\-]{0,23}" required></label><label>Input lane<select id="fin-analysis-origin"><option value="coinbase">Coinbase completed daily candles</option><option value="fixture">Synthetic fixture — offline demonstration</option></select></label><label>Analysis<select id="fin-analysis-kind"><option value="signals">Indicator suite</option><option value="quote">Historical risk statistics</option></select></label></div><button type="submit" id="fin-analysis-run">Compute advisory analysis</button></form> | |
| <p id="fin-analysis-state" class="fin-state" role="status">NOT COMPUTED</p><pre id="fin-analysis-summary" class="fin-provenance">No inputs accepted.</pre> | |
| <div class="fin-actions"><button type="button" id="fin-analysis-export" disabled>Export result and receipt</button><button type="button" id="fin-analysis-verify" disabled>Verify receipt integrity</button></div><p class="fin-note">Receipts are unsigned and caller-held. Integrity does not prove authenticity, profitability, or trading authority. No shared portfolio state or ledger is written.</p> | |
| <details><summary>Bounded portfolio statistics</summary><p class="fin-note">Enter 3–300 positive closes per asset, at most 16 assets. These are unverified caller inputs. The output contains per-asset statistics and simple means, not a weighted portfolio or backtest.</p><label for="fin-portfolio">Holdings as JSON</label><textarea id="fin-portfolio" rows="5" style="width:100%;max-width:100%;background:#0b1119;color:#edf3ff" maxlength="150000">{"BTC-USD":[100,102,101,104]}</textarea><label>Annual periods<select id="fin-annual"><option value="365">365 — daily crypto</option><option value="252">252 — trading days</option></select></label><button type="button" id="fin-portfolio-run">Compute caller-supplied series</button></details> | |
| <details><summary>Full source binding and computation evidence</summary><pre id="fin-analysis-evidence" class="fin-provenance">No evidence yet.</pre></details></section> | |
| </section> | |
| <script> | |
| (()=>{'use strict';const $=id=>document.getElementById(id);let accepted=null,epoch=0,controller=null; | |
| function clear(){accepted=null;$('fin-analysis-export').disabled=true;$('fin-analysis-verify').disabled=true;$('fin-analysis-summary').textContent='No inputs accepted.';$('fin-analysis-evidence').textContent='No evidence yet.';} | |
| function invalidate(){epoch++;if(controller)controller.abort();clear();$('fin-analysis-state').textContent='INPUTS CHANGED — compute again';} | |
| async function call(path,body){const serial=++epoch;if(controller)controller.abort();controller=new AbortController();const timer=setTimeout(()=>controller.abort(),20000);clear();$('fin-analysis-state').textContent='COMPUTING'; | |
| try{const r=await fetch(path,{method:body===undefined?'GET':'POST',credentials:'omit',cache:'no-store',redirect:'error',signal:controller.signal,headers:{Accept:'application/json','Content-Type':'application/json'},...(body===undefined?{}:{body:JSON.stringify(body)})}); | |
| if(!(r.headers.get('content-type')||'').startsWith('application/json'))throw Error('INVALID_RESPONSE');const reader=r.body.getReader(),chunks=[];let size=0;for(;;){const part=await reader.read();if(part.done)break;size+=part.value.length;if(size>4000000){await reader.cancel();throw Error('RESPONSE_TOO_LARGE');}chunks.push(part.value);}const bytes=new Uint8Array(size);let at=0;for(const chunk of chunks){bytes.set(chunk,at);at+=chunk.length;}const data=JSON.parse(new TextDecoder('utf-8',{fatal:true}).decode(bytes));if(serial!==epoch)return; | |
| if(!r.ok||data.ok!==true)throw Error(typeof data.error==='string'&&/^[A-Z_]+$/.test(data.error)?data.error:'UNAVAILABLE'); | |
| if(data.schema!=='szl.finance.analytics/v2'||data.execution_enabled!==false||data.advisory_only!==true||data.paper_only!==true||data.not_financial_advice!==true||data.receipt?.signing!=='UNSIGNED_HONEST')throw Error('INVALID_CONTRACT');accepted=data; | |
| const origin=data.inputs?.asset?.origin||data.inputs?.origin||'integrity check';$('fin-analysis-state').textContent='COMPUTED / '+origin.toUpperCase()+' / ADVISORY ONLY';$('fin-analysis-summary').textContent=JSON.stringify(data.result,null,2);$('fin-analysis-evidence').textContent=JSON.stringify(data,null,2);$('fin-analysis-export').disabled=false;$('fin-analysis-verify').disabled=false; | |
| }catch(e){if(serial===epoch){clear();$('fin-analysis-state').textContent='BLOCKED / '+(e.name==='AbortError'?'DEADLINE':e.message);}}finally{clearTimeout(timer);}} | |
| $('fin-analysis-form').addEventListener('submit',e=>{e.preventDefault();call('/api/finance/v2/'+$('fin-analysis-kind').value+'/'+encodeURIComponent($('fin-analysis-symbol').value)+'?origin='+$('fin-analysis-origin').value);}); | |
| for(const id of ['fin-analysis-form','fin-portfolio','fin-annual'])$(id).addEventListener('input',invalidate); | |
| $('fin-portfolio-run').addEventListener('click',()=>{try{call('/api/finance/v2/portfolio',{holdings:JSON.parse($('fin-portfolio').value),periods_per_year:Number($('fin-annual').value)});}catch(e){invalidate();$('fin-analysis-state').textContent='INVALID JSON';}}); | |
| $('fin-analysis-verify').addEventListener('click',()=>{if(accepted)call('/api/finance/v2/receipts/verify',accepted);}); | |
| $('fin-analysis-export').addEventListener('click',()=>{if(!accepted)return;const url=URL.createObjectURL(new Blob([JSON.stringify(accepted,null,2)+'\n'],{type:'application/json'})),a=document.createElement('a');a.href=url;a.download='puriq-computation.json';a.click();setTimeout(()=>URL.revokeObjectURL(url),1000);});window.addEventListener('pagehide',invalidate); | |
| })(); | |
| </script> | |
| <section class="panel" id="native-evidence" aria-label="Governed evidence" style="margin-top:14px"><div class="livebar"><div id="st" role="status" aria-live="polite" aria-atomic="true" class="status"><span class="dot"></span><span>PROBING GOVERNED EVIDENCE</span></div><button type="button" onclick="loadEvidence()">Refresh evidence</button></div><pre id="out" tabindex="0" aria-label="Governed evidence JSON">Loading governed evidence…</pre></section><footer class="footer"><div class="panel"><b>Decision tape</b><span>Domain-specific visualization remains distinct from the shared execution contract.</span></div><div class="panel"><b>Exposure matrix</b><span>Every decision surface keeps provenance and evidence status visible.</span></div><div class="panel"><b>Evidence ledger</b><div class="truth"><span>MEASURED</span><span>REPORTED</span><span>MODELED</span><span>UNAVAILABLE</span></div></div></footer><p class="mono" style="margin-top:18px;color:var(--muted)">Canonical product source: <a href="https://github.com/szl-holdings/a11oy/tree/main/verticals/puriq-markets" target="_blank" rel="noopener">https://github.com/szl-holdings/a11oy/tree/main/verticals/puriq-markets</a> · Portfolio: <a href="https://a-11-oy.com/products/" target="_blank" rel="noopener">a-11-oy.com/products/</a></p><div class="native-credit">Orbit v2 artwork © Stephen P. Lutar Jr. / SZL Holdings · <a href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a> · <a href="https://github.com/szl-holdings/szl-brand/blob/27d12e77fc0f9f1a0e5fae8b34adf2380d51d070/NOTICE">Trademark notice</a><span>Presentation does not change source, evidence, or authorization state.</span></div></main><script>async function loadEvidence(){const s=document.getElementById('st'),o=document.getElementById('out');try{const r=await fetch('/api/live',{cache:'no-store'}),j=await r.json();const verified=r.ok&&j.status==='MEASURED'&&j.receipt_verified===true;const reachable=r.ok&&(j.status==='REACHABLE'||j.status==='LIVE'||j.status==='SNAPSHOT');s.className='status';s.dataset.reachability=reachable?'REACHABLE':'UNAVAILABLE';s.children[1].textContent=(verified?'MEASURED':(reachable?(j.status==='SNAPSHOT'?'SNAPSHOT':'REACHABLE'):'UNAVAILABLE'))+' / '+(j.latency_ms??'-')+' ms';const root=document.documentElement;if(root.dataset.domain==='sentra'){root.dataset.iris='closed';}o.textContent=JSON.stringify(j,null,2)}catch(e){s.children[1].textContent='UNAVAILABLE';o.textContent=String(e)}}loadEvidence();setInterval(loadEvidence,60000)</script></body></html> |