herdr-plugin-amq 0.1.7 → 0.1.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,14 +1,28 @@
1
1
  <!DOCTYPE html>
2
- <html lang="en">
2
+ <html lang="en" data-theme="light" data-theme-preference="system" data-reading-layout="split">
3
3
  <head>
4
4
  <meta charset="UTF-8">
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
6
  <title>AGsuite: Autonomous Swarm Workspace</title>
7
+ <script>
8
+ (() => {
9
+ const read = (key) => {
10
+ try {
11
+ return localStorage.getItem(key);
12
+ } catch {
13
+ return null;
14
+ }
15
+ };
16
+ const themePreference = ["system", "light", "dark"].includes(read("agmail_theme")) ? read("agmail_theme") : "system";
17
+ const readingLayout = ["split", "full"].includes(read("agmail_reading_layout")) ? read("agmail_reading_layout") : "split";
18
+ const theme = themePreference === "dark" || (themePreference === "system" && matchMedia("(prefers-color-scheme: dark)").matches) ? "dark" : "light";
19
+ document.documentElement.dataset.theme = theme;
20
+ document.documentElement.dataset.themePreference = themePreference;
21
+ document.documentElement.dataset.readingLayout = readingLayout;
22
+ })();
23
+ </script>
7
24
  <link rel="icon" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><text y='20' font-size='20'>✉️</text></svg>">
8
- <link rel="stylesheet" href="style.css">
9
- <link rel="preconnect" href="https://fonts.googleapis.com">
10
- <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
11
- <link href="https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300..800;1,300..800&family=Product+Sans:wght@400;700&family=Roboto+Mono:wght@400;600&display=swap" rel="stylesheet">
25
+ <link rel="stylesheet" href="style.css?v=4">
12
26
  </head>
13
27
  <body>
14
28
  <!-- Top Navigation Header -->
@@ -45,10 +59,13 @@
45
59
  <button class="icon-btn" id="refresh-btn" title="Refresh mailbox">
46
60
  <svg viewBox="0 0 24 24"><path fill="currentColor" d="M17.65 6.35A7.958 7.958 0 0 0 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08A5.99 5.99 0 0 1 12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z"/></svg>
47
61
  </button>
62
+ <button class="icon-btn" id="open-settings-btn" title="Settings" aria-label="Open settings" aria-haspopup="dialog">
63
+ <svg viewBox="0 0 24 24"><path fill="currentColor" d="M19.43 12.98c.04-.32.07-.65.07-.98s-.03-.66-.08-.98l2.11-1.65a.5.5 0 0 0 .12-.64l-2-3.46a.5.5 0 0 0-.61-.22l-2.49 1a7.3 7.3 0 0 0-1.69-.98L14.5 2.42A.49.49 0 0 0 14 2h-4a.49.49 0 0 0-.49.42l-.38 2.65c-.61.25-1.17.59-1.69.98l-2.49-1a.49.49 0 0 0-.61.22l-2 3.46a.49.49 0 0 0 .12.64l2.11 1.65c-.05.32-.09.66-.09.98s.03.66.08.98l-2.11 1.65a.5.5 0 0 0-.12.64l2 3.46c.12.22.38.31.61.22l2.49-1c.52.4 1.08.73 1.69.98l.38 2.65c.04.24.25.42.49.42h4c.24 0 .45-.18.49-.42l.38-2.65c.61-.25 1.17-.58 1.69-.98l2.49 1c.23.09.49 0 .61-.22l2-3.46a.5.5 0 0 0-.12-.64l-2.11-1.65zM12 15.5A3.5 3.5 0 1 1 12 8a3.5 3.5 0 0 1 0 7.5z"/></svg>
64
+ </button>
48
65
 
49
66
  <!-- Google Account Switcher Trigger -->
50
67
  <div class="account-menu-wrapper">
51
- <button class="account-profile-btn" id="user-profile-btn" title="Switch active account / persona">
68
+ <button class="account-profile-btn" id="user-profile-btn" title="Switch active account / persona" aria-expanded="false" aria-controls="account-dropdown">
52
69
  <span class="account-header-label" id="header-account-label">👑 God Mode</span>
53
70
  <div class="user-badge" id="current-user-avatar">👑</div>
54
71
  </button>
@@ -58,7 +75,8 @@
58
75
  <div class="account-dropdown-header">
59
76
  <div class="large-avatar" id="dropdown-large-avatar">👑</div>
60
77
  <div class="account-dropdown-user-info">
61
- <strong id="dropdown-user-title">God Mode (All Transmissions)</strong>
78
+ <strong id="dropdown-user-title">God Mode</strong>
79
+ <span class="account-dropdown-role" id="dropdown-user-role">All transmissions · sending as user</span>
62
80
  <span class="account-dropdown-email" id="dropdown-user-email">amq://all-agents</span>
63
81
  <span class="account-badge-pill">Active Persona</span>
64
82
  </div>
@@ -206,7 +224,7 @@
206
224
  </div>
207
225
 
208
226
  <!-- Split Layout: Mail List on Left, Thread Detail on Right -->
209
- <div class="content-splitter" id="splitter-view">
227
+ <div class="content-splitter" id="splitter-view" data-reading-layout="split">
210
228
  <!-- List Container -->
211
229
  <div class="mail-list-container" id="mail-list-view">
212
230
  <div class="mail-list" id="mail-list">
@@ -215,10 +233,10 @@
215
233
  </div>
216
234
 
217
235
  <!-- Detail Reading View -->
218
- <div class="mail-detail-container hidden" id="mail-detail-view">
236
+ <div class="mail-detail-container hidden" id="mail-detail-view" role="region" aria-labelledby="detail-subject" tabindex="-1">
219
237
  <div class="detail-header">
220
238
  <div class="detail-header-actions">
221
- <button class="icon-btn-small" id="back-to-list-btn" title="Back to list">
239
+ <button class="icon-btn-small" id="back-to-list-btn" title="Back to list" aria-label="Back to message list">
222
240
  <svg viewBox="0 0 24 24"><path fill="currentColor" d="M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z"/></svg>
223
241
  </button>
224
242
  <h2 id="detail-subject" class="detail-subject">Select a transmission</h2>
@@ -515,6 +533,106 @@
515
533
  </div>
516
534
  </div>
517
535
 
536
+ <div class="modal-backdrop hidden" id="settings-backdrop">
537
+ <section class="agent-modal-card settings-modal-card" role="dialog" aria-modal="true" aria-labelledby="settings-modal-title" aria-describedby="settings-modal-description">
538
+ <div class="agent-modal-header">
539
+ <h3 id="settings-modal-title">Settings</h3>
540
+ <button class="icon-btn-small" id="close-settings-btn" aria-label="Close settings">✕</button>
541
+ </div>
542
+ <form id="settings-form">
543
+ <p class="settings-intro" id="settings-modal-description">Choose how AGmail displays messages and which appearance it uses. Preferences are saved in this browser.</p>
544
+ <fieldset class="settings-group">
545
+ <legend>Message reading</legend>
546
+ <div class="settings-choice-grid settings-reading-grid">
547
+ <label class="settings-choice">
548
+ <input type="radio" name="reading-layout" value="split" checked>
549
+ <span class="settings-choice-preview settings-preview-split" aria-hidden="true"><i></i><i></i></span>
550
+ <span class="settings-choice-copy">
551
+ <strong>Split pane</strong>
552
+ <small>Keep the message list beside the selected conversation.</small>
553
+ </span>
554
+ </label>
555
+ <label class="settings-choice">
556
+ <input type="radio" name="reading-layout" value="full">
557
+ <span class="settings-choice-preview settings-preview-full" aria-hidden="true"><i></i><i></i></span>
558
+ <span class="settings-choice-copy">
559
+ <strong>Full page</strong>
560
+ <small>Open one message at a time with a Back to list control.</small>
561
+ </span>
562
+ </label>
563
+ </div>
564
+ </fieldset>
565
+ <fieldset class="settings-group">
566
+ <legend>Theme</legend>
567
+ <div class="settings-choice-grid settings-theme-grid">
568
+ <label class="settings-choice settings-theme-choice">
569
+ <input type="radio" name="theme" value="system" checked>
570
+ <span class="settings-theme-swatch settings-theme-system" aria-hidden="true"></span>
571
+ <span class="settings-choice-copy"><strong>System</strong><small>Follow this device</small></span>
572
+ </label>
573
+ <label class="settings-choice settings-theme-choice">
574
+ <input type="radio" name="theme" value="light">
575
+ <span class="settings-theme-swatch settings-theme-light" aria-hidden="true"></span>
576
+ <span class="settings-choice-copy"><strong>Light</strong><small>Always bright</small></span>
577
+ </label>
578
+ <label class="settings-choice settings-theme-choice">
579
+ <input type="radio" name="theme" value="dark">
580
+ <span class="settings-theme-swatch settings-theme-dark" aria-hidden="true"></span>
581
+ <span class="settings-choice-copy"><strong>Dark</strong><small>Easy on low light</small></span>
582
+ </label>
583
+ </div>
584
+ </fieldset>
585
+ <div class="agent-modal-actions">
586
+ <button type="button" class="btn btn-secondary" id="cancel-settings-btn">Cancel</button>
587
+ <button type="submit" class="btn btn-primary" id="save-settings-btn">Save preferences</button>
588
+ </div>
589
+ </form>
590
+ </section>
591
+ </div>
592
+
593
+ <dialog class="agent-activity-dialog" id="agent-activity-dialog" aria-labelledby="agent-activity-name">
594
+ <div class="agent-activity-shell">
595
+ <header class="agent-activity-header">
596
+ <div>
597
+ <span class="agent-activity-kicker">Agent activity</span>
598
+ <h2 id="agent-activity-name">Agent</h2>
599
+ <span id="agent-activity-handle">agent@amq</span>
600
+ </div>
601
+ <button class="icon-btn-small" id="close-agent-activity-btn" aria-label="Close agent activity">✕</button>
602
+ </header>
603
+ <div class="agent-activity-body">
604
+ <section class="agent-activity-identity">
605
+ <div class="agent-activity-avatar" id="agent-activity-avatar">A</div>
606
+ <div class="agent-activity-identity-copy">
607
+ <strong id="agent-activity-role">Swarm Agent</strong>
608
+ <span class="agent-activity-status idle" id="agent-activity-status">Idle</span>
609
+ </div>
610
+ </section>
611
+ <section class="agent-activity-card agent-activity-current">
612
+ <span class="agent-activity-label">Current activity</span>
613
+ <strong id="agent-activity-headline" aria-live="polite">No live activity signal</strong>
614
+ </section>
615
+ <section class="agent-activity-card">
616
+ <div class="agent-activity-card-heading">
617
+ <span class="agent-activity-label">Assigned task</span>
618
+ <span class="agent-task-status offline" id="agent-activity-task-status">No active task assigned</span>
619
+ </div>
620
+ <strong id="agent-activity-task">No board task is currently assigned to this agent.</strong>
621
+ </section>
622
+ <dl class="agent-activity-meta">
623
+ <div><dt>Model</dt><dd id="agent-activity-model">Not configured</dd></div>
624
+ <div><dt>Unread</dt><dd id="agent-activity-unread">0</dd></div>
625
+ <div><dt>Herdr pane</dt><dd id="agent-activity-pane">Not tracked</dd></div>
626
+ <div><dt>Observed</dt><dd id="agent-activity-observed">No live snapshot</dd></div>
627
+ </dl>
628
+ </div>
629
+ <footer class="agent-activity-actions">
630
+ <button class="btn btn-secondary" id="view-agent-inbox-btn">View inbox</button>
631
+ <button class="btn btn-primary" id="view-agent-task-btn" hidden>Open task</button>
632
+ </footer>
633
+ </div>
634
+ </dialog>
635
+
518
636
  <!-- New Task Modal for Kanban Board -->
519
637
  <div class="modal-backdrop hidden" id="task-modal-backdrop">
520
638
  <div class="agent-modal-card">
@@ -542,6 +660,7 @@
542
660
  </select>
543
661
  </div>
544
662
  </div>
663
+ <div class="task-owner-tip hidden" id="task-owner-tip" aria-live="polite"></div>
545
664
  <div class="agent-field">
546
665
  <label for="task-desc-input">Description / Requirements / Evidence:</label>
547
666
  <textarea id="task-desc-input" rows="4" placeholder="Detail the task objectives, constraints, or gate criteria..."></textarea>
@@ -721,7 +840,7 @@
721
840
  </div>
722
841
  </aside>
723
842
 
724
- <script src="app.js"></script>
843
+ <script src="app.js?v=4"></script>
725
844
 
726
845
  </body>
727
846
  </html>