glimmervoid 0.37.0 → 0.38.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 (36) hide show
  1. package/dist/bin/glimmervoid.js +14 -14
  2. package/dist/chunks/{adapters-BmfVPxlH.js → adapters-B-IkWl-r.js} +19 -4
  3. package/dist/chunks/{adapters-CqFFmM2R.js → adapters-Dt3vwxwY.js} +1 -1
  4. package/dist/chunks/{agent-api-cli-BTHEyJKS.js → agent-api-cli-3hryuewm.js} +1 -1
  5. package/dist/chunks/{agent-api-cli-CBgOKXoO.js → agent-api-cli-BcZ9DLCF.js} +3 -3
  6. package/dist/chunks/{agent-api-core-DzKhakCv.js → agent-api-core--8WtU1xU.js} +3 -12
  7. package/dist/chunks/{agent-setup-cli-C8DGxlA-.js → agent-setup-cli-BixDoCkF.js} +2 -2
  8. package/dist/chunks/{config-BYc2z1Oc.js → config-BHBZsCBc.js} +9 -8
  9. package/dist/chunks/config-store-DYj3wYgw.js +1 -0
  10. package/dist/chunks/{config-store-B7MpiYxG.js → config-store-DbfMbz4j.js} +41 -64
  11. package/dist/chunks/{contracts-C6ipN_zw.js → contracts-u40eJhaf.js} +20 -14
  12. package/dist/chunks/{git-version-6QFnKbWa.js → git-version-BpnTd8sU.js} +1 -1
  13. package/dist/chunks/{grok-CZ6kP_vD.js → grok-xFs6zIu4.js} +1 -1
  14. package/dist/chunks/{json-file-BaxGcB2R.js → json-file-CIJf0Cel.js} +190 -9
  15. package/dist/chunks/{knowledge-graph-cli-DApeMzA8.js → knowledge-graph-cli-DcspNqhz.js} +1 -1
  16. package/dist/chunks/{loopback-post-DJ6iYWuL.js → loopback-post-DZK7YibD.js} +1 -1
  17. package/dist/chunks/{main-BUfjroXE.js → main-w01-P1oZ.js} +1048 -440
  18. package/dist/chunks/{pair-cli-GZ9t1mIO.js → pair-cli-BdoyrDCr.js} +2 -2
  19. package/dist/chunks/{remote-config-D2Is89Kj.js → remote-config-61zJ0hME.js} +2 -2
  20. package/dist/chunks/{session-BZbariv5.js → session-8Pv0y1vz.js} +1 -1
  21. package/dist/chunks/{session-routes-C4t8O8yg.js → session-routes-D-GZC-Sy.js} +1 -1
  22. package/dist/chunks/{settings-cli-DQOjmjev.js → settings-cli-DKJsm3AP.js} +3 -3
  23. package/dist/chunks/{ssh-sign-cli-LIBP8ppO.js → ssh-sign-cli-Dc2gOCwE.js} +2 -2
  24. package/dist/client/assets/index-BfqmOGgc.js +275 -0
  25. package/dist/client/assets/index-DxABp5yJ.css +1 -0
  26. package/dist/client/index.html +10 -3
  27. package/dist/server/index.js +1 -1
  28. package/dist/session/command-hook-relay.js +1 -1
  29. package/dist/session/hook-relay.js +1 -1
  30. package/dist/session/statusline-relay.js +1 -1
  31. package/dist/session/visions-relay.js +7 -7
  32. package/package.json +1 -1
  33. package/scripts/recover-handoff.mjs +1 -1
  34. package/dist/chunks/config-store-CsUoy88Q.js +0 -1
  35. package/dist/client/assets/index-B_Qt7fbZ.css +0 -1
  36. package/dist/client/assets/index-D-upBor0.js +0 -265
@@ -6,9 +6,9 @@
6
6
  <meta name="color-scheme" content="dark light">
7
7
  <link rel="icon" type="image/svg+xml" href="/assets/favicon-CKygeLwW.svg">
8
8
  <title>Glimmervoid</title>
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-D-upBor0.js"></script>
11
- <link rel="stylesheet" crossorigin href="/assets/index-B_Qt7fbZ.css">
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:not(.active) .loading-spinner{animation:none}.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-BfqmOGgc.js"></script>
11
+ <link rel="stylesheet" crossorigin href="/assets/index-DxABp5yJ.css">
12
12
  </head>
13
13
  <body>
14
14
  <div class="loading-screen" id="loading-screen">
@@ -70,6 +70,13 @@
70
70
  <span class="update-banner-copy-status" id="update-banner-copy-status" role="status"></span>
71
71
  <button class="update-banner-dismiss" id="update-banner-dismiss" type="button" aria-label="Dismiss update notice">&times;</button>
72
72
  </div>
73
+ <div class="update-banner post-turn-leftovers-banner" id="post-turn-leftovers-banner" role="status" hidden>
74
+ <span class="update-banner-text" id="post-turn-leftovers-text"></span>
75
+ <code class="update-banner-cmd post-turn-leftovers-cmd" id="post-turn-leftovers-cmd"></code>
76
+ <button class="update-banner-copy" id="post-turn-leftovers-copy" type="button">Copy</button>
77
+ <span class="update-banner-copy-status" id="post-turn-leftovers-copy-status" role="status"></span>
78
+ <button class="update-banner-dismiss" id="post-turn-leftovers-dismiss" type="button" aria-label="Dismiss old report notice">&times;</button>
79
+ </div>
73
80
  <div class="update-banner" id="telemetry-banner" role="status" hidden>
74
81
  <span class="update-banner-text">Glimmervoid sends anonymous usage and error data to help improve it. No paths, prompts or terminal output.</span>
75
82
  <a class="update-banner-link" id="telemetry-banner-settings" href="#settings/privacy/telemetry-enabled">Open settings</a>
@@ -87,6 +87,6 @@ if (!nodePty.ok) {
87
87
  }));
88
88
  process.exit(1);
89
89
  }
90
- await import("../chunks/main-BUfjroXE.js");
90
+ await import("../chunks/main-w01-P1oZ.js");
91
91
  //#endregion
92
92
  export {};
@@ -1,5 +1,5 @@
1
1
  import { t as readStdin } from "../chunks/relay-stdin-CpHvLu6M.js";
2
- import { t as postPayload } from "../chunks/loopback-post-DJ6iYWuL.js";
2
+ import { t as postPayload } from "../chunks/loopback-post-DZK7YibD.js";
3
3
  import { n as sessionStartContextOutput } from "../chunks/refocus-core-BKQKllq7.js";
4
4
  //#region session/command-hook-relay.ts
5
5
  async function main(argv = process.argv.slice(2), stdin = process.stdin, stdout = process.stdout) {
@@ -1,6 +1,6 @@
1
1
  import { t as readStdin } from "../chunks/relay-stdin-CpHvLu6M.js";
2
2
  import { r as decideRelayPost } from "../chunks/hook-relay-core-DA_bz2KA.js";
3
- import { n as postToLoopback } from "../chunks/loopback-post-DJ6iYWuL.js";
3
+ import { n as postToLoopback } from "../chunks/loopback-post-DZK7YibD.js";
4
4
  //#region session/hook-relay.ts
5
5
  async function main(argv = process.argv.slice(2), stdin = process.stdin, env = process.env) {
6
6
  const [event] = argv;
@@ -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 { t as postPayload } from "../chunks/loopback-post-DJ6iYWuL.js";
3
+ import { t as postPayload } from "../chunks/loopback-post-DZK7YibD.js";
4
4
  import { n as isRecord } from "../chunks/coerce-NSst8oRP.js";
5
5
  import { n as parseJsonRecord } from "../chunks/json-core-dfa_7Fak.js";
6
6
  //#region session/statusline-relay.ts
@@ -5,7 +5,7 @@ import { r as nextBackoffMs } from "../chunks/backoff-DjVpfHk7.js";
5
5
  import { n as unrefTimer } from "../chunks/timer-deps-u2DAQLok.js";
6
6
  import fs from "node:fs";
7
7
  import os from "node:os";
8
- import WebSocket from "ws";
8
+ import WebSocket$1 from "ws";
9
9
  //#region server/visions/core/visions-lsp-core.ts
10
10
  var HEADER_END = "\r\n\r\n";
11
11
  var CONTENT_LENGTH_RE = /^content-length:\s*(\d+)\s*$/i;
@@ -343,7 +343,7 @@ function mirrorFailureDetail(update) {
343
343
  return "";
344
344
  }
345
345
  function sendWsFrame(ws, decision) {
346
- if (!ws || ws.readyState !== WebSocket.OPEN) return false;
346
+ if (!ws || ws.readyState !== WebSocket$1.OPEN) return false;
347
347
  if (!decision.send) return false;
348
348
  ws.send(decision.serialized);
349
349
  return true;
@@ -433,7 +433,7 @@ function createRelay({ argv = process.argv.slice(2), env = process.env, stdin =
433
433
  function connect() {
434
434
  if (isStopping) return;
435
435
  const port = currentPort();
436
- const socket = new WebSocket(`ws://127.0.0.1:${port}/visions`);
436
+ const socket = new WebSocket$1(`ws://127.0.0.1:${port}/visions`);
437
437
  ws = socket;
438
438
  socket.on("open", () => {
439
439
  if (ws !== socket) return;
@@ -473,7 +473,7 @@ function createRelay({ argv = process.argv.slice(2), env = process.env, stdin =
473
473
  for (const id of [...pendingCodeActionById.keys()]) settleCodeAction(id, null);
474
474
  }
475
475
  function forwardCodeAction(id, params) {
476
- if (!sendWsJson(ws, daemonRequest(id, "textDocument/codeAction", params))) {
476
+ if (!sendWsJson(ws, daemonRequest(id, CODE_ACTION_METHOD, params))) {
477
477
  writeEditorMessage(responseMessage(id, null));
478
478
  return;
479
479
  }
@@ -521,7 +521,7 @@ function createRelay({ argv = process.argv.slice(2), env = process.env, stdin =
521
521
  settleCodeAction(msg.id, msg.result);
522
522
  return;
523
523
  }
524
- if (msg.type === "lsp-request" && msg.method === "workspace/applyEdit") forwardApplyEdit(msg.id, msg.params);
524
+ if (msg.type === "lsp-request" && msg.method === APPLY_EDIT_METHOD) forwardApplyEdit(msg.id, msg.params);
525
525
  }
526
526
  function updateMirror(method, params) {
527
527
  const documentParams = asDocumentParams(params);
@@ -582,7 +582,7 @@ function createRelay({ argv = process.argv.slice(2), env = process.env, stdin =
582
582
  return false;
583
583
  }
584
584
  function handleRequest(id, method, params) {
585
- if (method === "textDocument/codeAction") {
585
+ if (method === CODE_ACTION_METHOD) {
586
586
  forwardCodeAction(id, params);
587
587
  return;
588
588
  }
@@ -633,4 +633,4 @@ function main() {
633
633
  }
634
634
  if (process.argv[1] === import.meta.filename) main();
635
635
  //#endregion
636
- export { ACTIVITY_METHOD, APPLY_EDIT_METHOD, CODE_ACTION_METHOD, CODE_ACTION_TIMEOUT_MS, MAX_DAEMON_FRAME_BYTES, SYNC_KIND_INCREMENTAL, createRelay, daemonMessage, decideDaemonFrame, planMirrorReplay, readConfiguredPort, replayDidOpenMessage, resolvePortPlan, sendWsFrame, sendWsJson };
636
+ export { CODE_ACTION_TIMEOUT_MS, SYNC_KIND_INCREMENTAL, createRelay, readConfiguredPort, resolvePortPlan, sendWsFrame, sendWsJson };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "glimmervoid",
3
- "version": "0.37.0",
3
+ "version": "0.38.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",
@@ -79,4 +79,4 @@ if (wasRunAsTheRecoveryScript()) {
79
79
  process.exitCode = 0;
80
80
  }
81
81
 
82
- export { PREVIOUS_DEPENDENCIES_BACKUP_NAME, PREVIOUS_DIST_BACKUP_NAME, recoverHandoff };
82
+ export { recoverHandoff };
@@ -1 +0,0 @@
1
- export { s as loadConfigFile } from "./config-store-B7MpiYxG.js";