← back to AbramsOS
auto-data-snapshot: 2026-09-01T14:52:01 (2 data files) — views/partials/chat.ejs views/partials/footer.ejs
b5d614e5bf5f019883389bddeb590e1d26ba35c1 · 2026-09-01 14:52:15 -0700 · auto-commit-fleet
Files touched
A views/partials/chat.ejsM views/partials/footer.ejs
Diff
commit b5d614e5bf5f019883389bddeb590e1d26ba35c1
Author: auto-commit-fleet <steve@designerwallcoverings.com>
Date: Tue Sep 1 14:52:15 2026 -0700
auto-data-snapshot: 2026-09-01T14:52:01 (2 data files) — views/partials/chat.ejs views/partials/footer.ejs
---
views/partials/chat.ejs | 39 +++++++++++++++++++++++++++++++++++++++
views/partials/footer.ejs | 2 ++
2 files changed, 41 insertions(+)
diff --git a/views/partials/chat.ejs b/views/partials/chat.ejs
new file mode 100644
index 0000000..5a8cd2d
--- /dev/null
+++ b/views/partials/chat.ejs
@@ -0,0 +1,39 @@
+<!-- Nav-bar chat: model + agent pickers, spec cards, chat panel. Rendered on
+ every page via footer.ejs. Dynamic roster comes from /api/chat/registry. -->
+<button id="aosChatLauncher" class="aos-chat-launcher glass" aria-label="Open chat" title="Chat">💬</button>
+
+<section id="aosChatPanel" class="aos-chat-panel glass" hidden aria-label="AbramsOS chat">
+ <header class="aos-chat-head">
+ <div class="aos-chat-pickers">
+ <label class="aos-chat-field">
+ <span>Model</span>
+ <span class="aos-chat-selwrap">
+ <select id="aosChatModel"></select>
+ <button type="button" class="aos-chat-info" data-spec="model" title="Model spec">ⓘ</button>
+ </span>
+ </label>
+ <label class="aos-chat-field">
+ <span>Agent</span>
+ <span class="aos-chat-selwrap">
+ <select id="aosChatAgent"></select>
+ <button type="button" class="aos-chat-info" data-spec="agent" title="Agent spec">ⓘ</button>
+ </span>
+ </label>
+ </div>
+ <div class="aos-chat-head-right">
+ <span id="aosChatLane" class="aos-chat-lane" title="Where your data goes"></span>
+ <button type="button" id="aosChatAllSpecs" class="aos-chat-allspecs" title="All specs">All specs</button>
+ <button type="button" id="aosChatClose" class="aos-chat-close" aria-label="Close">✕</button>
+ </div>
+ </header>
+
+ <div id="aosChatSpec" class="aos-chat-spec" hidden></div>
+ <div id="aosChatRoster" class="aos-chat-roster" hidden></div>
+
+ <div id="aosChatLog" class="aos-chat-log" aria-live="polite"></div>
+
+ <form id="aosChatForm" class="aos-chat-form">
+ <textarea id="aosChatInput" rows="1" placeholder="Ask about your records…" autocomplete="off"></textarea>
+ <button type="submit" id="aosChatSend" class="aos-chat-send">Send</button>
+ </form>
+</section>
diff --git a/views/partials/footer.ejs b/views/partials/footer.ejs
index 7099435..c9f9454 100644
--- a/views/partials/footer.ejs
+++ b/views/partials/footer.ejs
@@ -5,7 +5,9 @@
</footer>
</div><!-- /content-wrap -->
</div><!-- /applayout -->
+ <%- include('chat') %>
<script src="/js/theme.js"></script>
+ <script src="/js/chat.js"></script>
<% if (typeof gridScript !== 'undefined' && gridScript) { %>
<script src="/js/sort-density.js"></script>
<% } %>
← b998091 abramsos: watch loads .env so launchd corpus-refresh has GEO
·
back to AbramsOS
·
Add nav-bar chat: model+agent pickers, grounded RAG, PII-red d683961 →