127 lines
7.0 KiB
HTML
127 lines
7.0 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<title>TraderAI</title>
|
|
<link rel="icon" href="/static/art/LBC_Logo.ico" sizes="any">
|
|
<link rel="stylesheet" href="/static/styles.css">
|
|
</head>
|
|
<body>
|
|
<main class="shell">
|
|
<section class="workspace">
|
|
<header class="topbar">
|
|
<div class="brand-block">
|
|
<div class="logo-wrap" aria-hidden="true">
|
|
<img src="/static/art/LBC_Logo.png" alt="">
|
|
</div>
|
|
<div class="brand-copy">
|
|
<p class="eyebrow">Lambda Banking Conglomerate</p>
|
|
<h1>TraderAI</h1>
|
|
<p>Institutional marketplace intelligence for UEX operations</p>
|
|
</div>
|
|
</div>
|
|
<div class="status" id="status">Ready</div>
|
|
</header>
|
|
<div class="warning" id="warning" hidden></div>
|
|
<div class="messages" id="messages"></div>
|
|
<div class="composer-wrap">
|
|
<form class="composer" id="chat-form">
|
|
<textarea id="message-input" rows="2" placeholder="Search listings, draft a reply, prepare an offer..."></textarea>
|
|
<button type="submit">Send</button>
|
|
</form>
|
|
</div>
|
|
</section>
|
|
<aside class="actions">
|
|
<section class="side-section">
|
|
<h2>Pending Approval</h2>
|
|
<div id="pending-actions" class="pending-empty">No pending actions</div>
|
|
</section>
|
|
<section class="side-section sidebar-tools">
|
|
<div class="sidebar-tool-buttons" role="tablist" aria-label="Sidebar panels">
|
|
<button class="sidebar-tool-button" id="settings-toggle" type="button" aria-expanded="false" aria-controls="settings-panel" title="Settings">
|
|
<i data-lucide="settings" aria-hidden="true"></i>
|
|
<span>Settings</span>
|
|
</button>
|
|
<button class="sidebar-tool-button" id="memory-toggle" type="button" aria-expanded="false" aria-controls="memory-panel" title="Memory">
|
|
<i data-lucide="brain" aria-hidden="true"></i>
|
|
<span>Memory</span>
|
|
</button>
|
|
<button class="sidebar-tool-button" id="ollama-toggle" type="button" aria-expanded="false" aria-controls="ollama-panel" title="Ollama">
|
|
<img class="sidebar-tool-image" src="/static/art/ollama-icon.svg" alt="" onerror="this.remove();">
|
|
<i data-lucide="bot" aria-hidden="true"></i>
|
|
<span>Ollama</span>
|
|
</button>
|
|
</div>
|
|
<div class="sidebar-panel" id="settings-panel" hidden>
|
|
<div class="section-title-row">
|
|
<h2>Config</h2>
|
|
<button class="secondary small-button" id="config-refresh" type="button">Refresh</button>
|
|
</div>
|
|
<form class="config-form" id="config-form">
|
|
<label>UEX API URL<input id="config-uex-base-url" name="uex_base_url" type="text"></label>
|
|
<label>UEX Secret Key<input id="config-uex-secret-key" name="uex_secret_key" type="password" autocomplete="off"></label>
|
|
<label>UEX Bearer Token<input id="config-uex-bearer-token" name="uex_bearer_token" type="password" autocomplete="off"></label>
|
|
<label>UEX Username<input id="config-traderai-user-name" name="traderai_user_name" type="text"></label>
|
|
<label>Memory DB Path<input id="config-traderai-memory-path" name="traderai_memory_path" type="text"></label>
|
|
<label>Notification Poll Seconds<input id="config-uex-notification-poll-seconds" name="uex_notification_poll_seconds" type="number" min="15" step="15"></label>
|
|
<label class="config-check"><input id="config-require-write-approval" name="require_write_approval" type="checkbox"> Require write approval</label>
|
|
<div class="config-paths" id="config-paths"></div>
|
|
<button type="submit">Save Config</button>
|
|
<div class="config-status" id="config-status"></div>
|
|
</form>
|
|
<div class="update-box">
|
|
<div class="section-title-row">
|
|
<h2>Updates</h2>
|
|
<button class="secondary small-button" id="update-check" type="button">Check</button>
|
|
</div>
|
|
<div class="update-status" id="update-status"></div>
|
|
<div class="update-actions">
|
|
<button class="secondary small-button" id="update-open-releases" type="button">Releases</button>
|
|
<button class="small-button" id="update-install" type="button">Update</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="sidebar-panel" id="memory-panel" hidden>
|
|
<div class="section-title-row">
|
|
<h2>Memory</h2>
|
|
<button class="secondary small-button" id="memory-refresh" type="button">Refresh</button>
|
|
</div>
|
|
<div class="memory-controls">
|
|
<label><input type="checkbox" id="clear-memories" checked> Memories</label>
|
|
<label><input type="checkbox" id="clear-conversations" checked> Chat</label>
|
|
<label><input type="checkbox" id="clear-outbox" checked> Notices</label>
|
|
<label><input type="checkbox" id="clear-profile"> Profile</label>
|
|
<label><input type="checkbox" id="clear-jobs"> Jobs</label>
|
|
</div>
|
|
<button class="danger-button" id="memory-clear" type="button">Clear Selected</button>
|
|
<div id="memory-inspector" class="memory-inspector"></div>
|
|
</div>
|
|
<div class="sidebar-panel" id="ollama-panel" hidden>
|
|
<div class="section-title-row">
|
|
<h2>Ollama</h2>
|
|
<button class="secondary small-button" id="ollama-refresh" type="button">Refresh</button>
|
|
</div>
|
|
<form class="config-form" id="ollama-config-form">
|
|
<label>Ollama URL<input id="ollama-base-url" name="ollama_base_url" type="text"></label>
|
|
<label>Model<input id="ollama-model" name="ollama_model" type="text"></label>
|
|
<label>Context Tokens<input id="ollama-num-ctx" name="ollama_num_ctx" type="number" min="1024" step="1024"></label>
|
|
<button type="submit">Save Ollama Config</button>
|
|
</form>
|
|
<div class="ollama-status" id="ollama-status"></div>
|
|
<div class="ollama-actions">
|
|
<button class="secondary small-button" id="ollama-download" type="button">Download</button>
|
|
<button class="secondary small-button" id="ollama-install" type="button">Auto Install</button>
|
|
<button class="secondary small-button" id="ollama-launch" type="button">Launch</button>
|
|
<button class="small-button" id="ollama-pull" type="button">Install Model</button>
|
|
</div>
|
|
<div class="config-status" id="ollama-message"></div>
|
|
</div>
|
|
</section>
|
|
</aside>
|
|
</main>
|
|
<script src="https://unpkg.com/lucide@0.562.0/dist/umd/lucide.min.js"></script>
|
|
<script src="/static/app.js"></script>
|
|
</body>
|
|
</html>
|