Ryanhub - file viewer
filename: assistant/server/static/index.html
branch: main
back to repo
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1" />
  <title>assistant</title>
  <link rel="icon" href="/assets/favicon.ico" type="image/x-icon" />
  <link rel="stylesheet" href="/assets/style.css" />
</head>
<body>
  <div class="shell">
    <header class="topbar">
      <div>
        <h1 class="app-title">assistant</h1>
        <p class="app-sub muted">local web UI</p>
      </div>
      <div class="meta">
        <span class="pill" id="status-pill"><span class="dot"></span><span id="status-text">…</span></span>
        <div class="llm-line muted small" id="model-line"></div>
      </div>
    </header>

    <main class="layout" id="main-grid">
      <section class="panel section dashboard-panel">
        <div class="panel-head">
          <h2>overview</h2>
        </div>
        <div class="dashboard-body">
          <div class="widgets" id="widgets"></div>
        </div>
      </section>

      <div class="bottom-grid">
        <section class="panel section activity-panel">
          <div class="panel-head">
            <h2>model logs</h2>
          </div>
          <div class="activity-body">
            <div class="chat-log" id="activity-log"></div>
            <div class="composer activity-summary">
              <div class="summary-box" id="summary"></div>
              <div class="composer-actions">
                <span class="hint muted small">summary chat response</span>
              </div>
            </div>
          </div>
        </section>

        <section class="panel section calendar-panel">
          <div class="panel-head">
            <h2>calendar</h2>
          </div>
          <div class="calendar-body">
            <div class="cal-view">
              <div class="cal-nav">
                <button type="button" class="cal-nav-btn" id="cal-prev" aria-label="previous month">‹</button>
                <div class="cal-month-label" id="cal-month-label">-</div>
                <button type="button" class="cal-nav-btn" id="cal-next" aria-label="next month">›</button>
              </div>
              <div class="cal-weekdays" aria-hidden="true">
                <span>S</span><span>M</span><span>T</span><span>W</span><span>T</span><span>F</span><span>S</span>
              </div>
              <div class="cal-grid" id="cal-grid"></div>
              <div class="cal-detail">
                <div class="cal-detail-head">
                  <span id="cal-selected-label">select a day</span>
                  <button type="button" class="cal-small-btn" id="cal-today">today</button>
                </div>
                <ul class="cal-day-items" id="cal-day-items"></ul>
              </div>
            </div>
            <div class="cal-composer-column">
              <form class="composer cal-composer" id="cal-quick-form">
                <div class="cal-quick-add-title">
                  <input type="text" id="cal-quick-title" placeholder="new event title" autocomplete="off" />
                </div>
                <div class="cal-quick-add-row">
                  <select id="cal-quick-when" class="cal-when-select" aria-label="When"></select>
                  <button type="submit">add</button>
                </div>
              </form>
              <div class="cal-pending-wrap" id="cal-pending-wrap">
                <div class="cal-pending-title">pending approvals</div>
                <ul class="cal-pending-list" id="cal-pending-list"></ul>
              </div>
            </div>
          </div>
        </section>

        <section class="panel section chat-panel">
          <div class="panel-head">
            <h2>chat</h2>
          </div>
          <div class="chat-log" id="chat-log" aria-live="polite"></div>
          <form class="composer" id="chat-form">
            <textarea id="prompt" rows="3" autocomplete="off" placeholder="chat here..." required></textarea>
            <div class="composer-actions">
              <span class="hint muted small">api: post /ask and post /ask/stream</span>
              <div class="composer-actions-buttons">
                <button type="button" id="cancel-btn" class="composer-cancel" disabled aria-label="Cancel request">cancel</button>
                <button type="submit" id="send-btn">send</button>
              </div>
            </div>
          </form>
        </section>

        <section class="panel section scratchpad-panel" id="scratchpad-panel" hidden>
          <div class="panel-head">
            <h2>scratchpad</h2>
          </div>
          <div class="scratchpad-body">
            <div class="scratchpad-editor-wrap">
              <textarea id="scratchpad-editor" class="scratchpad-editor" rows="16" spellcheck="false" placeholder="# Shared notes&#10;" aria-label="Markdown source"></textarea>
              <div id="scratchpad-rendered" class="scratchpad-rendered md-content" hidden></div>
              <button type="button" class="scratchpad-render-toggle" id="scratchpad-render-toggle" aria-pressed="false" aria-label="Show rendered Markdown">Preview</button>
            </div>
          </div>
        </section>
      </div>
    </main>
  </div>
  <script src="/assets/app.js" defer></script>
</body>
</html>