Download index.html from lysandre/inspector: direct link, hf CLI and curl.
- Browser
- Download file 4.92 kB
-
https://huggingface.co/spaces/lysandre/inspector/resolve/main/index.html
- Command line
-
hf download hf://spaces/lysandre/inspector/index.html
-
curl -L -o index.html https://huggingface.co/spaces/lysandre/inspector/resolve/main/index.html
4.92 kB
| <html lang="en"> | |
| <head> | |
| <meta charset="utf-8" /> | |
| <meta name="viewport" content="width=device-width, initial-scale=1" /> | |
| <title>Inspector</title> | |
| <link rel="stylesheet" href="style.css" /> | |
| </head> | |
| <body> | |
| <header class="app-header"> | |
| <div class="brand"> | |
| <div> | |
| <h1>Inspector</h1> | |
| </div> | |
| </div> | |
| <div class="header-actions"> | |
| <button id="theme-toggle" class="btn btn-ghost" title="Toggle light/dark">◐</button> | |
| <button id="compare-toggle" class="btn btn-ghost" title="Compare two architectures">⇄ Compare</button> | |
| <button id="collapse-all" class="btn btn-ghost">Collapse repeats</button> | |
| <button id="expand-all" class="btn btn-ghost">Expand repeats</button> | |
| <button id="reset-layout" class="btn btn-ghost">Reset layout</button> | |
| <button id="fit-btn" class="btn">Fit</button> | |
| </div> | |
| </header> | |
| <div class="layout"> | |
| <!-- Sidebar --> | |
| <aside class="sidebar"> | |
| <section class="panel"> | |
| <h2>Architecture</h2> | |
| <select id="arch-select" class="select"></select> | |
| <p id="arch-facts" class="note facts"></p> | |
| <div id="capability-chips" class="cap-chips sidebar-chips"></div> | |
| <p id="manifest-note" class="note"></p> | |
| <p id="modularity-note" class="note modularity"></p> | |
| </section> | |
| <section class="panel"> | |
| <h2>Config</h2> | |
| <label class="field-label">Hub checkpoint using this architecture</label> | |
| <select id="hub-select" class="select"><option value="">— loading checkpoints… —</option></select> | |
| <p id="hub-note" class="note">Pick a checkpoint to load its <code>config.json</code> and resolve counts.</p> | |
| <label class="field-label">config.json fields</label> | |
| <textarea id="config-editor" class="code-area" spellcheck="false"></textarea> | |
| <div class="row-btns"> | |
| <button id="config-apply" class="btn">Apply & resolve</button> | |
| <button id="config-reset" class="btn btn-ghost">Reset</button> | |
| </div> | |
| </section> | |
| </aside> | |
| <!-- Canvas --> | |
| <main class="canvas"> | |
| <svg id="graph" class="graph"></svg> | |
| <div id="status" class="status"></div> | |
| <div class="hint">Scroll to zoom · drag to pan · click to inspect · ⊕/⊖ to expand repeats</div> | |
| <!-- Spec-tier selector + feature toggles (bottom-left) --> | |
| <div id="spec-panel" class="spec-panel"> | |
| <div class="spec-row"> | |
| <span class="spec-label">Spec</span> | |
| <div class="spec-seg" id="spec-seg"> | |
| <button class="spec-btn" data-spec="1" title="Structure — components, edges, dataflow">1</button> | |
| <button class="spec-btn" data-spec="2" title="+ Capabilities — backends, schedule, kernels, TP">2</button> | |
| <button class="spec-btn active" data-spec="3" title="+ Modularity — extends, patches, comparison (full)">3</button> | |
| </div> | |
| </div> | |
| <label class="spec-toggle"><input type="checkbox" id="opt-tp" checked /> Tensor parallel</label> | |
| <label class="spec-toggle"><input type="checkbox" id="opt-kernels" checked /> Kernels</label> | |
| </div> | |
| <!-- Comparison overlay (shown in compare mode) --> | |
| <div id="compare-view" class="compare-view"> | |
| <div class="cmp-bar"> | |
| <span class="cmp-a-label" id="cmp-a-label"></span> | |
| <span class="cmp-vs">with</span> | |
| <select id="cmp-b" class="select"></select> | |
| <span id="cmp-shared-note" class="cmp-shared-note"></span> | |
| <button id="cmp-mode" class="btn btn-ghost" title="Merged union vs side-by-side">Merged</button> | |
| <button id="cmp-fit" class="btn btn-ghost">Fit</button> | |
| </div> | |
| <div class="cmp-graphs"> | |
| <div class="cmp-pane"> | |
| <div class="cmp-pane-h" id="cmp-a-title"></div> | |
| <svg id="cmp-graph-a" class="graph"></svg> | |
| </div> | |
| <div class="cmp-pane"> | |
| <div class="cmp-pane-h" id="cmp-b-title"></div> | |
| <svg id="cmp-graph-b" class="graph"></svg> | |
| </div> | |
| <div class="cmp-pane cmp-pane-merged"> | |
| <div class="cmp-pane-h"><span id="cmp-merge-legend" class="cmp-merge-legend"></span></div> | |
| <svg id="cmp-graph-merged" class="graph"></svg> | |
| </div> | |
| </div> | |
| <div id="compare-body" class="compare-body"></div> | |
| </div> | |
| </main> | |
| <!-- Inspector --> | |
| <aside class="inspector"> | |
| <h2>Details</h2> | |
| <div id="inspector-body" class="inspector-body"> | |
| <div class="insp-empty">Select a component to inspect it.</div> | |
| </div> | |
| </aside> | |
| </div> | |
| <script type="module" src="js/app.js"></script> | |
| </body> | |
| </html> | |