@symerian/symi 3.4.13 → 3.4.15

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,5 +1,5 @@
1
1
  {
2
- "version": "3.4.13",
3
- "commit": "0bd7af3aad729d5624b4468624bc1f06a99df485",
4
- "builtAt": "2026-05-03T23:47:00.036Z"
2
+ "version": "3.4.15",
3
+ "commit": "db3e7550df433d688464e4118d148ee77938825c",
4
+ "builtAt": "2026-05-04T00:06:14.628Z"
5
5
  }
@@ -1 +1 @@
1
- a649098f562391f51cd1204df04e27461a1ae2ca318a6f86ef3ae200db57eeb8
1
+ 3b723aa48c4c2db4c7b80fac80bf8a70d8463e5f065a9317073d44e518ac750b
@@ -866,10 +866,21 @@ body {
866
866
  display: flex;
867
867
  flex-direction: column;
868
868
  justify-content: flex-start;
869
- padding: 32px 0 16px;
869
+ padding: 32px 24px 16px;
870
870
  overflow-y: auto;
871
871
  overflow-x: hidden;
872
872
  pointer-events: none;
873
+ /* Glass-panel background to highlight the reading column. Mirrors the
874
+ same look the side panels just had stripped from them, so the user's
875
+ eye is drawn here. */
876
+ background: var(--glass-bg);
877
+ backdrop-filter: var(--blur);
878
+ -webkit-backdrop-filter: var(--blur);
879
+ border: 1px solid var(--glass-border);
880
+ border-radius: 14px;
881
+ box-shadow:
882
+ var(--shadow),
883
+ inset 0 1px 0 rgba(255, 255, 255, 0.06);
873
884
  }
874
885
 
875
886
  /* Constrain all response content to a readable column, centered */
@@ -5612,49 +5623,6 @@ body {
5612
5623
  color: var(--text-dim);
5613
5624
  }
5614
5625
 
5615
- /* ── Debug Panel ─────────────────────────────────────────────────── */
5616
- .debug-panel {
5617
- max-height: 300px;
5618
- overflow: hidden;
5619
- transition: max-height 0.3s ease;
5620
- }
5621
- .debug-panel.collapsed {
5622
- max-height: 28px;
5623
- }
5624
- .debug-panel.collapsed .debug-entries {
5625
- display: none;
5626
- }
5627
- .debug-panel.collapsed .debug-toggle-arrow {
5628
- transform: rotate(0deg);
5629
- }
5630
- .debug-toggle-arrow {
5631
- display: inline-block;
5632
- font-size: 9px;
5633
- margin-left: 4px;
5634
- transition: transform 0.2s ease;
5635
- transform: rotate(90deg);
5636
- }
5637
- .debug-panel .panel-label {
5638
- cursor: pointer;
5639
- user-select: none;
5640
- }
5641
- .debug-entries {
5642
- max-height: 260px;
5643
- overflow-y: auto;
5644
- padding: 4px 6px;
5645
- font-family: "SF Mono", "Fira Code", monospace;
5646
- font-size: 10px;
5647
- line-height: 1.4;
5648
- }
5649
- .debug-entry {
5650
- padding: 2px 0;
5651
- color: var(--text-dim);
5652
- border-bottom: 1px solid rgba(255, 255, 255, 0.03);
5653
- white-space: nowrap;
5654
- overflow: hidden;
5655
- text-overflow: ellipsis;
5656
- }
5657
-
5658
5626
  /* History-unavailable banner — shown when server retries fail and we fall
5659
5627
  back to the localStorage feed cache. Kept terse so it doesn't dominate
5660
5628
  the chat area. Dismissable via the × button on the right. */
@@ -317,14 +317,6 @@
317
317
  </button>
318
318
  </div>
319
319
 
320
- <!-- Debug Panel (hidden by default, toggle with Shift+D) -->
321
- <div class="glass-panel debug-panel collapsed" id="debug-panel">
322
- <div class="panel-label" onclick="this.parentElement.classList.toggle('collapsed')">
323
- DEBUG EVENTS <span class="debug-toggle-arrow">&#x25B6;</span>
324
- </div>
325
- <div class="debug-entries" id="debug-panel-entries"></div>
326
- </div>
327
-
328
320
  </aside>
329
321
 
330
322
  <!-- Response waterfall area -->
@@ -1045,6 +1037,5 @@
1045
1037
  <script src="js/subagents.js"></script>
1046
1038
  <script src="js/scheduling.js"></script>
1047
1039
  <script src="js/models.js"></script>
1048
- <script src="js/debug.js"></script>
1049
1040
  </body>
1050
1041
  </html>
@@ -675,11 +675,6 @@ function handleGatewayEvent(event) {
675
675
  lastEventTs = Date.now();
676
676
  }
677
677
 
678
- // Log to debug panel if available
679
- if (typeof window.logDebugEvent === "function") {
680
- window.logDebugEvent(p.state, p);
681
- }
682
-
683
678
  // Handle "thinking" state broadcast from gateway (agent started processing)
684
679
  if (p.state === "thinking") {
685
680
  if (p.runId && currentRunId && p.runId !== currentRunId) {
@@ -3,7 +3,7 @@ import path from "node:path";
3
3
  import fs, { constants, readFileSync } from "node:fs";
4
4
  import os from "node:os";
5
5
  import { Logger } from "tslog";
6
- import json5 from "json5";
6
+ import JSON5 from "json5";
7
7
  import chalk, { Chalk } from "chalk";
8
8
  import fs$1, { mkdtemp, rm } from "node:fs/promises";
9
9
  import { z } from "zod";
@@ -473,7 +473,7 @@ function readLoggingConfig() {
473
473
  try {
474
474
  if (!fs.existsSync(configPath)) return;
475
475
  const raw = fs.readFileSync(configPath, "utf-8");
476
- const logging = json5.parse(raw)?.logging;
476
+ const logging = JSON5.parse(raw)?.logging;
477
477
  if (!logging || typeof logging !== "object" || Array.isArray(logging)) return;
478
478
  return logging;
479
479
  } catch {
@@ -7320,7 +7320,7 @@ function safeRealpath(target) {
7320
7320
  }
7321
7321
  const defaultResolver = {
7322
7322
  readFile: (p) => fs.readFileSync(p, "utf-8"),
7323
- parseJson: (raw) => json5.parse(raw)
7323
+ parseJson: (raw) => JSON5.parse(raw)
7324
7324
  };
7325
7325
  /**
7326
7326
  * Resolves all $include directives in a parsed config object.
@@ -10551,7 +10551,7 @@ function resolveConfigPathForDeps(deps) {
10551
10551
  function normalizeDeps(overrides = {}) {
10552
10552
  return {
10553
10553
  fs: overrides.fs ?? fs,
10554
- json5: overrides.json5 ?? json5,
10554
+ json5: overrides.json5 ?? JSON5,
10555
10555
  env: overrides.env ?? process.env,
10556
10556
  homedir: overrides.homedir ?? (() => resolveRequiredHomeDir(overrides.env ?? process.env, os.homedir)),
10557
10557
  configPath: overrides.configPath ?? "",
@@ -10562,11 +10562,11 @@ function maybeLoadDotEnvForConfig(env) {
10562
10562
  if (env !== process.env) return;
10563
10563
  loadDotEnv({ quiet: true });
10564
10564
  }
10565
- function parseConfigJson5(raw, json5$1 = json5) {
10565
+ function parseConfigJson5(raw, json5 = JSON5) {
10566
10566
  try {
10567
10567
  return {
10568
10568
  ok: true,
10569
- parsed: json5$1.parse(raw)
10569
+ parsed: json5.parse(raw)
10570
10570
  };
10571
10571
  } catch (err) {
10572
10572
  return {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@symerian/symi",
3
- "version": "3.4.13",
3
+ "version": "3.4.15",
4
4
  "description": "Multi-channel AI gateway with extensible messaging integrations",
5
5
  "keywords": [],
6
6
  "homepage": "https://github.com/jaysteelmind/symi#readme",
@@ -1,55 +0,0 @@
1
- // ── Debug Panel — real-time event log for Glass UI ───────────────────
2
- // Shows every WebSocket event with timestamp, type, and payload summary.
3
- // Collapsible. Capped at 200 entries. Hidden by default, toggled via Shift+D.
4
-
5
- (function () {
6
- const MAX_DEBUG_ENTRIES = 200;
7
- let debugContainer = null;
8
-
9
- window.initDebugPanel = function () {
10
- debugContainer = document.getElementById("debug-panel-entries");
11
-
12
- document.addEventListener("keydown", function (e) {
13
- if (e.shiftKey && e.key === "D") {
14
- const panel = document.getElementById("debug-panel");
15
- if (panel) {
16
- panel.classList.toggle("collapsed");
17
- }
18
- }
19
- });
20
- };
21
-
22
- window.logDebugEvent = function (event, payload) {
23
- if (!debugContainer) {
24
- return;
25
- }
26
- const entry = document.createElement("div");
27
- entry.className = "debug-entry";
28
- var time = new Date().toLocaleTimeString("en-US", { hour12: false });
29
- var summary = "";
30
- try {
31
- summary =
32
- typeof payload === "object"
33
- ? JSON.stringify(payload).slice(0, 120)
34
- : String(payload).slice(0, 120);
35
- } catch {
36
- summary = "[unserializable]";
37
- }
38
- entry.textContent = time + " [" + event + "] " + summary;
39
- debugContainer.prepend(entry);
40
-
41
- // Cap entries
42
- while (debugContainer.children.length > MAX_DEBUG_ENTRIES) {
43
- debugContainer.removeChild(debugContainer.lastChild);
44
- }
45
- };
46
-
47
- // Auto-init when DOM is ready
48
- if (document.readyState === "loading") {
49
- document.addEventListener("DOMContentLoaded", function () {
50
- window.initDebugPanel();
51
- });
52
- } else {
53
- window.initDebugPanel();
54
- }
55
- })();