glimmervoid 0.35.0 → 0.36.0

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.
Files changed (38) hide show
  1. package/README.md +2 -0
  2. package/dist/bin/glimmervoid.js +17 -12
  3. package/dist/chunks/{adapters-B37wqNti.js → adapters-BVozg-Lg.js} +1 -1
  4. package/dist/chunks/{adapters-CADejSpq.js → adapters-BdnLyJjf.js} +10 -49
  5. package/dist/chunks/{agent-api-cli-CRj_FYbz.js → agent-api-cli-DIqRLvu3.js} +1 -1
  6. package/dist/chunks/{agent-api-cli-vGwstJ1j.js → agent-api-cli-d-Bgsshx.js} +3 -3
  7. package/dist/chunks/{agent-api-core-D1233u1U.js → agent-api-core-BUC9WND7.js} +2 -2
  8. package/dist/chunks/{agent-setup-cli-BTAFcckd.js → agent-setup-cli-CH7EHsAX.js} +1 -1
  9. package/dist/chunks/{config-rPbbL4nW.js → config-CuZ16F9W.js} +47 -771
  10. package/dist/chunks/config-store-LqQ7MuyV.js +4181 -0
  11. package/dist/chunks/config-store-tVmt_nfm.js +1 -0
  12. package/dist/chunks/{contracts-DjIgIuDk.js → contracts-BLZAOP57.js} +55 -6
  13. package/dist/chunks/{grok-KKgdSe-7.js → grok-Ch4-35_r.js} +3 -3
  14. package/dist/chunks/{hook-command-core-DclEoE9e.js → hook-command-core-qTNK-xMF.js} +4 -1
  15. package/dist/chunks/{hook-tools-UX2fmt81.js → hook-tools-BkxllUHE.js} +9 -16
  16. package/dist/chunks/{knowledge-graph-cli-Rj5nj87L.js → knowledge-graph-cli-DD7QvcFd.js} +1 -1
  17. package/dist/chunks/{main-BTI0J5QE.js → main-Rmo83Ow-.js} +3087 -834
  18. package/dist/chunks/{pair-cli-Dcyzv3In.js → pair-cli-DzFeAmq5.js} +2 -2
  19. package/dist/chunks/{remote-config-Dd1T-VJA.js → remote-config-CPdSF2Xi.js} +1 -1
  20. package/dist/chunks/{rtk-hook-core-BmEz2aq9.js → rtk-hook-core-VrUafGAp.js} +15 -5
  21. package/dist/chunks/rtk-resolver-B8BPgN9L.js +1 -0
  22. package/dist/chunks/{rtk-resolver-B9pzjLsM.js → rtk-resolver-C_micGrL.js} +1 -1
  23. package/dist/chunks/session-B8RhqQJe.js +986 -0
  24. package/dist/chunks/{session-routes-BYy3am9m.js → session-routes-DB5aDKsx.js} +1 -1
  25. package/dist/chunks/settings-cli-C2TY6hl-.js +484 -0
  26. package/dist/chunks/{ssh-sign-cli-DPHpT22B.js → ssh-sign-cli-C2nUwJC-.js} +2 -2
  27. package/dist/client/assets/index-BIaSyXwH.css +1 -0
  28. package/dist/client/assets/index-Ddu7M4Ad.js +259 -0
  29. package/dist/client/index.html +5 -3
  30. package/dist/server/index.js +1 -1
  31. package/dist/session/hook-tool-relay.js +3 -3
  32. package/package.json +3 -3
  33. package/dist/chunks/config-store-BeIxAZNn.js +0 -1
  34. package/dist/chunks/config-store-BtsYbNC3.js +0 -1713
  35. package/dist/chunks/rtk-resolver-SWU5VVM7.js +0 -1
  36. package/dist/chunks/session-D6xXN0UU.js +0 -232
  37. package/dist/client/assets/index-DE2GUmqs.css +0 -1
  38. package/dist/client/assets/index-Ds4ngkHp.js +0 -254
@@ -7,8 +7,8 @@
7
7
  <link rel="icon" type="image/svg+xml" href="/assets/favicon-CKygeLwW.svg">
8
8
  <title>Glimmervoid</title>
9
9
  <style>html,body{background:var(--bg,#0a0810);height:100%;color:var(--text,#c8c0e0);font-family:var(--font-mono,"CommitMono", "Cascadia Code", "Fira Code", "Consolas", "Menlo", monospace);margin:0;padding:0}.app-shell{display:none}html:not([data-layout=phone]) .app-ready .app-shell{display:contents}.loading-screen{z-index:9999;background:#0a0810;flex-direction:column;justify-content:center;align-items:center;gap:20px;transition:opacity .3s;display:flex;position:fixed;inset:0}.loading-screen.fade-out{opacity:0;pointer-events:none}.loading-title{letter-spacing:.1em;color:#e8e0ff;text-transform:uppercase;font-family:CommitMono,Cascadia Code,Fira Code,Consolas,Menlo,monospace;font-size:20px;font-weight:700}.loading-title:before{content:"▸";color:#c084fc}.loading-status{color:#8276b0;letter-spacing:.04em;font-family:CommitMono,Cascadia Code,Fira Code,Consolas,Menlo,monospace;font-size:12px}.loading-spinner{border:2px solid #2a2440;border-top-color:#c084fc;border-radius:50%;width:28px;height:28px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.shutdown-screen{z-index:9999;-webkit-backdrop-filter:blur();backdrop-filter:blur();pointer-events:none;opacity:0;background:#0a081000;flex-direction:column;justify-content:center;align-items:center;gap:20px;transition:background .4s,-webkit-backdrop-filter .4s,backdrop-filter .4s,opacity .3s;display:flex;position:fixed;inset:0}.shutdown-screen.active{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:auto;opacity:1;background:#0a0810eb}.shutdown-status{color:#8276b0;letter-spacing:.04em;font-family:CommitMono,Cascadia Code,Fira Code,Consolas,Menlo,monospace;font-size:12px;transition:color .3s}.shutdown-screen.done .loading-spinner{opacity:.3;border-color:#2a2440;animation:none}.shutdown-screen.done .shutdown-status{color:#4a4268}</style>
10
- <script type="module" crossorigin src="/assets/index-Ds4ngkHp.js"></script>
11
- <link rel="stylesheet" crossorigin href="/assets/index-DE2GUmqs.css">
10
+ <script type="module" crossorigin src="/assets/index-Ddu7M4Ad.js"></script>
11
+ <link rel="stylesheet" crossorigin href="/assets/index-BIaSyXwH.css">
12
12
  </head>
13
13
  <body>
14
14
  <div class="loading-screen" id="loading-screen">
@@ -39,8 +39,8 @@
39
39
  <div class="header-tabs" id="header-tabs" role="tablist" aria-label="Primary views">
40
40
  </div>
41
41
  </div>
42
+ <span class="header-aggregate" id="aggregate-status" role="status" aria-live="polite"></span>
42
43
  <div class="header-right">
43
- <span class="header-aggregate" id="aggregate-status" role="status" aria-live="polite"></span>
44
44
  <div class="celebration-tray" id="celebration-tray" data-state="empty">
45
45
  <button class="btn-celebrations" id="btn-celebrations" type="button" title="Play queued merge celebrations" aria-label="Play queued merge celebrations"><svg class="btn-celebrations-icon" viewBox="0 0 16 16" width="15" height="15" aria-hidden="true" focusable="false"><path d="M4.5 2h7v3.5a3.5 3.5 0 0 1-7 0z" /><path d="M4.5 3.5H2.5a2 2 0 0 0 2 2.5" /><path d="M11.5 3.5h2a2 2 0 0 1-2 2.5" /><path d="M8 9v3" /><path d="M5.5 14h5" /></svg></button>
46
46
  <span class="celebration-tray-count" id="celebration-tray-count" aria-live="polite"></span>
@@ -48,6 +48,8 @@
48
48
  <button class="btn-add-header" id="btn-add-session-header" type="button" title="Add a new session">+ Session</button>
49
49
  <button class="btn-help" id="btn-help" type="button" title="Keyboard shortcuts" aria-label="Keyboard shortcuts and version">?</button>
50
50
  <button class="btn-mute" id="btn-mute" type="button" title="Mute alerts" aria-label="Mute alerts" aria-pressed="false">&#9834;</button>
51
+ <span class="streamer-badge" id="streamer-badge" role="status">STREAMER</span>
52
+ <button class="btn-streamer" id="btn-streamer" type="button" title="Streamer mode" aria-label="Streamer mode" aria-pressed="false"><svg class="btn-streamer-icon" viewBox="0 0 16 16" width="15" height="15" aria-hidden="true" focusable="false"><rect x="1.5" y="3" width="13" height="8.5" rx="1" /><path d="M5.5 14h5" /><path d="M8 11.5V14" /></svg></button>
51
53
  <div class="header-menu" id="power-menu">
52
54
  <button class="btn-menu btn-power" id="btn-power" type="button" title="Server power" aria-label="Server power" aria-haspopup="menu" aria-expanded="false" aria-controls="power-menu-dropdown"><svg class="btn-power-icon" viewBox="0 0 16 16" width="15" height="15" aria-hidden="true" focusable="false"><path d="M8 1.5v6" /><path d="M4.4 3.6a5.5 5.5 0 1 0 7.2 0" /></svg></button>
53
55
  <div class="header-menu-dropdown" id="power-menu-dropdown" role="menu">
@@ -87,6 +87,6 @@ if (!nodePty.ok) {
87
87
  }));
88
88
  process.exit(1);
89
89
  }
90
- await import("../chunks/main-BTI0J5QE.js");
90
+ await import("../chunks/main-Rmo83Ow-.js");
91
91
  //#endregion
92
92
  export {};
@@ -1,6 +1,6 @@
1
1
  import { o as spawn } from "../chunks/child-process-safe-CbQnyh7D.js";
2
2
  import { t as readStdin } from "../chunks/relay-stdin-CpHvLu6M.js";
3
- import { a as SANE_YOLO_PATH_ENV, n as RTK_PATH_ENV, r as normalizeRtkHookResponse } from "../chunks/rtk-hook-core-BmEz2aq9.js";
3
+ import { i as normalizeRtkHookResponse, o as SANE_YOLO_PATH_ENV, r as RTK_PATH_ENV, t as CLAUDE_RELAY_FLAVOR } from "../chunks/rtk-hook-core-VrUafGAp.js";
4
4
  //#region session/hook-tool-relay.ts
5
5
  var RTK_TIMEOUT_MS = 3e3;
6
6
  function runHookTool(toolId, binPath, body) {
@@ -69,7 +69,7 @@ function runHookTool(toolId, binPath, body) {
69
69
  }
70
70
  });
71
71
  }
72
- async function main(toolId = process.argv[2] ?? "", env = process.env, stdin = process.stdin, stdout = process.stdout, runner = (binPath, body) => runHookTool(toolId === "rtk" ? "rtk" : "saneYolo", binPath, body)) {
72
+ async function main(toolId = process.argv[2] ?? "", env = process.env, stdin = process.stdin, stdout = process.stdout, runner = (binPath, body) => runHookTool(toolId === "rtk" ? "rtk" : "saneYolo", binPath, body), agentFlavor = process.argv[3] ?? "") {
73
73
  if (toolId !== "rtk" && toolId !== "saneYolo") return {
74
74
  code: 0,
75
75
  reason: "unknown-tool"
@@ -86,7 +86,7 @@ async function main(toolId = process.argv[2] ?? "", env = process.env, stdin = p
86
86
  reason: "empty-payload"
87
87
  };
88
88
  const toolOutput = await runner(binPath, body);
89
- const response = toolId === "rtk" ? normalizeRtkHookResponse(toolOutput) : toolOutput;
89
+ const response = toolId === "rtk" ? normalizeRtkHookResponse(toolOutput, { isForClaude: agentFlavor === CLAUDE_RELAY_FLAVOR }) : toolOutput;
90
90
  if (!response) return {
91
91
  code: 0,
92
92
  reason: "no-response"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "glimmervoid",
3
- "version": "0.35.0",
3
+ "version": "0.36.0",
4
4
  "description": "Mission control for coding agents: run and supervise Claude Code, Codex and Grok sessions in parallel git worktrees from one local browser dashboard",
5
5
  "main": "dist/server/index.js",
6
6
  "type": "module",
@@ -30,7 +30,7 @@
30
30
  "type": "git",
31
31
  "url": "git+https://github.com/johncwaters/glimmervoid.git"
32
32
  },
33
- "homepage": "https://github.com/johncwaters/glimmervoid#readme",
33
+ "homepage": "https://glimmervoid.dev",
34
34
  "bugs": {
35
35
  "url": "https://github.com/johncwaters/glimmervoid/issues"
36
36
  },
@@ -55,7 +55,7 @@
55
55
  "scripts": {
56
56
  "start": "node dist/server/index.js",
57
57
  "factory:run": "node test/factory/run.ts",
58
- "lint": "biome check .",
58
+ "lint": "biome check . --max-diagnostics=none",
59
59
  "test": "node --import ./tests/helpers/isolate-home.ts --test \"tests/**/*.test.ts\"",
60
60
  "typecheck": "tsc --project tsconfig.json && tsc --project tsconfig.public.json && tsc --project tsconfig.browser-harness.json",
61
61
  "test:browser": "node test/browser/harness.ts",
@@ -1 +0,0 @@
1
- export { c as loadConfigFile } from "./config-store-BtsYbNC3.js";