@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.
- package/dist/build-info.json +3 -3
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/control-ui/css/style.css +12 -44
- package/dist/control-ui/index.html +0 -9
- package/dist/control-ui/js/app.js +0 -5
- package/dist/plugin-sdk/index.js +6 -6
- package/package.json +1 -1
- package/dist/control-ui/js/debug.js +0 -55
package/dist/build-info.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
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
|
|
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">▶</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) {
|
package/dist/plugin-sdk/index.js
CHANGED
|
@@ -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
|
|
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 =
|
|
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) =>
|
|
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 ??
|
|
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
|
|
10565
|
+
function parseConfigJson5(raw, json5 = JSON5) {
|
|
10566
10566
|
try {
|
|
10567
10567
|
return {
|
|
10568
10568
|
ok: true,
|
|
10569
|
-
parsed: json5
|
|
10569
|
+
parsed: json5.parse(raw)
|
|
10570
10570
|
};
|
|
10571
10571
|
} catch (err) {
|
|
10572
10572
|
return {
|
package/package.json
CHANGED
|
@@ -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
|
-
})();
|