glimmervoid 0.44.0 → 0.44.2

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 (163) hide show
  1. package/README.md +1 -1
  2. package/dist/bin/glimmervoid.js +8 -8
  3. package/dist/chunks/{adapters-CSRTLFiZ.js → adapters-7AfJ6yb3.js} +2 -2
  4. package/dist/chunks/{adapters-DjDtNufj.js → adapters-B_ss_kZh.js} +1 -1
  5. package/dist/chunks/{agent-api-cli-ep_5T7Hx.js → agent-api-cli-prUJ5ZGN.js} +1 -1
  6. package/dist/chunks/{agent-api-cli-CVgij_62.js → agent-api-cli-zwuWZlwk.js} +1 -1
  7. package/dist/chunks/{agent-api-core-DmPT6Hc_.js → agent-api-core-DQwd2ClI.js} +1 -1
  8. package/dist/chunks/{config-CGRYpcBQ.js → config-DlKkg6IX.js} +16 -1
  9. package/dist/chunks/{config-store-B1u3WA5t.js → config-store-DIrwF5iQ.js} +51 -7
  10. package/dist/chunks/config-store-LYSRHNQs.js +1 -0
  11. package/dist/chunks/{contracts-Fup4hhP9.js → contracts-lxJ0sQEl.js} +48 -15
  12. package/dist/chunks/{main-DPtmg7Bn.js → main-BCbulgNv.js} +352 -45
  13. package/dist/chunks/{pair-cli-BwOTWShx.js → pair-cli-B3VRcrHm.js} +2 -2
  14. package/dist/chunks/{remote-config-DWWnz5dP.js → remote-config-C91HwjWq.js} +1 -1
  15. package/dist/chunks/{settings-cli-C_owm3rw.js → settings-cli-C9eCc60b.js} +4 -4
  16. package/dist/chunks/{settings-readout-core-C_JzSeF7.js → settings-readout-core-DK1m5TUq.js} +1 -1
  17. package/dist/chunks/{ssh-sign-cli-CDjUtDKa.js → ssh-sign-cli-DCnHgHqo.js} +1 -1
  18. package/dist/client/assets/action-status-DXcC95xv.js +1 -0
  19. package/dist/client/assets/action-status-DXcC95xv.js.br +0 -0
  20. package/dist/client/assets/benchmark-panel-Cssmnd3z.js +1 -0
  21. package/dist/client/assets/benchmark-panel-Cssmnd3z.js.br +0 -0
  22. package/dist/client/assets/dom-helpers-CcEFPh-F.js +4 -0
  23. package/dist/client/assets/dom-helpers-CcEFPh-F.js.br +0 -0
  24. package/dist/client/assets/hooks-panel-Cli8EeBB.js +1 -0
  25. package/dist/client/assets/hooks-panel-Cli8EeBB.js.br +0 -0
  26. package/dist/client/assets/index-C3nOrTwM.css +2 -0
  27. package/dist/client/assets/index-C3nOrTwM.css.br +0 -0
  28. package/dist/client/assets/index-C8u3ZjM3.js +173 -0
  29. package/dist/client/assets/index-C8u3ZjM3.js.br +0 -0
  30. package/dist/client/assets/issues-panel-Bev1wadi.js +1 -0
  31. package/dist/client/assets/issues-panel-Bev1wadi.js.br +0 -0
  32. package/dist/client/assets/modal-CvDX5-_2.js +1 -0
  33. package/dist/client/assets/modal-CvDX5-_2.js.br +0 -0
  34. package/dist/client/assets/poll-ago-Dj148faJ.js +1 -0
  35. package/dist/client/assets/poll-ago-Dj148faJ.js.br +0 -0
  36. package/dist/client/assets/pr-queue-columns-Jleg5z3W.js +1 -0
  37. package/dist/client/assets/pr-queue-columns-Jleg5z3W.js.br +0 -0
  38. package/dist/client/assets/radar-panel-Dtp4ZzT3.js +1 -0
  39. package/dist/client/assets/radar-panel-Dtp4ZzT3.js.br +0 -0
  40. package/dist/client/assets/review-queue-panel-BQvU_-xl.js +2 -0
  41. package/dist/client/assets/review-queue-panel-BQvU_-xl.js.br +0 -0
  42. package/dist/client/assets/settings-panel-DegKCsoZ.js +3 -0
  43. package/dist/client/assets/settings-panel-DegKCsoZ.js.br +0 -0
  44. package/dist/client/assets/sprite-bee-DwCVghaj.png +0 -0
  45. package/dist/client/assets/sprite-cat-DRx9MYM3.png +0 -0
  46. package/dist/client/assets/sprite-cow-BX3Phf6B.png +0 -0
  47. package/dist/client/assets/sprite-deer-DwQYMzDV.png +0 -0
  48. package/dist/client/assets/sprite-dragon-CTIHOQJ3.png +0 -0
  49. package/dist/client/assets/sprite-fox-BI43RV3z.png +0 -0
  50. package/dist/client/assets/sprite-frog-CwGTpt-c.png +0 -0
  51. package/dist/client/assets/sprite-giraffe-DwM3MmKG.png +0 -0
  52. package/dist/client/assets/sprite-hamster-WN4q03Wr.png +0 -0
  53. package/dist/client/assets/sprite-hedgehog-CM9XZtPS.png +0 -0
  54. package/dist/client/assets/sprite-horse-B5CMO0Ue.png +0 -0
  55. package/dist/client/assets/sprite-owl-BybpXmvP.png +0 -0
  56. package/dist/client/assets/sprite-panda-DxAHDNb3.png +0 -0
  57. package/dist/client/assets/sprite-penguin-Du588fg8.png +0 -0
  58. package/dist/client/assets/sprite-pig-BTuwvuhq.png +0 -0
  59. package/dist/client/assets/sprite-red-panda-5y9J8xSy.png +0 -0
  60. package/dist/client/assets/sprite-sheep-vHUTjc5U.png +0 -0
  61. package/dist/client/assets/sprite-unicorn-CJ3g8Zet.png +0 -0
  62. package/dist/client/assets/sprite-whale-C3Galw4z.png +0 -0
  63. package/dist/client/assets/trace-panel-DFqImX92.js +1 -0
  64. package/dist/client/assets/trace-panel-DFqImX92.js.br +0 -0
  65. package/dist/client/assets/trail-acacia-5Fr79eBl.png +0 -0
  66. package/dist/client/assets/trail-acacia-frame2-D83GtoaY.png +0 -0
  67. package/dist/client/assets/trail-acacia-frame3-BBXTo5I-.png +0 -0
  68. package/dist/client/assets/trail-acacia-frame4-Xv9ZEsyD.png +0 -0
  69. package/dist/client/assets/trail-acorns-BOCEZemb.png +0 -0
  70. package/dist/client/assets/trail-acorns-frame2-BhHnaBud.png +0 -0
  71. package/dist/client/assets/trail-acorns-frame3-DKXXievy.png +0 -0
  72. package/dist/client/assets/trail-acorns-frame4-Ch2VXeMA.png +0 -0
  73. package/dist/client/assets/trail-bamboo-GqKJxCTV.png +0 -0
  74. package/dist/client/assets/trail-bamboo-frame2-bHacG8f_.png +0 -0
  75. package/dist/client/assets/trail-bamboo-frame3-CaoctCwJ.png +0 -0
  76. package/dist/client/assets/trail-bamboo-frame4-CqBfq3ff.png +0 -0
  77. package/dist/client/assets/trail-bubbles-frame2-eNpysXFZ.png +0 -0
  78. package/dist/client/assets/trail-bubbles-frame3-CWwqOJLM.png +0 -0
  79. package/dist/client/assets/trail-bubbles-frame4-Dj9TUXsV.png +0 -0
  80. package/dist/client/assets/trail-bubbles-pZ5FzCq7.png +0 -0
  81. package/dist/client/assets/trail-clouds-D18nQlSc.png +0 -0
  82. package/dist/client/assets/trail-clouds-frame2-W-_5l_i2.png +0 -0
  83. package/dist/client/assets/trail-clouds-frame3-CGQnOEBI.png +0 -0
  84. package/dist/client/assets/trail-clouds-frame4-CvlkFN6d.png +0 -0
  85. package/dist/client/assets/trail-clover-Ci7hUdO0.png +0 -0
  86. package/dist/client/assets/trail-clover-frame2-Z6NRhQ3U.png +0 -0
  87. package/dist/client/assets/trail-clover-frame3-0srIKU22.png +0 -0
  88. package/dist/client/assets/trail-clover-frame4-BO9UjM_-.png +0 -0
  89. package/dist/client/assets/trail-daisies-DVEPmnHq.png +0 -0
  90. package/dist/client/assets/trail-daisies-frame2-C_3-bnO5.png +0 -0
  91. package/dist/client/assets/trail-daisies-frame3-CR7GzXzm.png +0 -0
  92. package/dist/client/assets/trail-daisies-frame4-CKQDb8cR.png +0 -0
  93. package/dist/client/assets/trail-dust-Cf48D_ja.png +0 -0
  94. package/dist/client/assets/trail-dust-frame2-DAisulyH.png +0 -0
  95. package/dist/client/assets/trail-dust-frame3-BLi-DUzo.png +0 -0
  96. package/dist/client/assets/trail-dust-frame4-DGXo_Q2f.png +0 -0
  97. package/dist/client/assets/trail-embers-c-vlGDDo.png +0 -0
  98. package/dist/client/assets/trail-embers-frame2-wCK1DXpW.png +0 -0
  99. package/dist/client/assets/trail-embers-frame3-C5QS1ZRt.png +0 -0
  100. package/dist/client/assets/trail-embers-frame4-DA-O9bwZ.png +0 -0
  101. package/dist/client/assets/trail-hearts-DQwkXjr0.png +0 -0
  102. package/dist/client/assets/trail-hearts-frame2-DbyTUdl2.png +0 -0
  103. package/dist/client/assets/trail-hearts-frame3-XHaluU_W.png +0 -0
  104. package/dist/client/assets/trail-hearts-frame4-BA0W9inL.png +0 -0
  105. package/dist/client/assets/trail-honey-BC7CvXOJ.png +0 -0
  106. package/dist/client/assets/trail-honey-frame2-C4tRQx2J.png +0 -0
  107. package/dist/client/assets/trail-honey-frame3-V4pdDsZr.png +0 -0
  108. package/dist/client/assets/trail-honey-frame4-BqfUOIZk.png +0 -0
  109. package/dist/client/assets/trail-leaves-Di39skyY.png +0 -0
  110. package/dist/client/assets/trail-leaves-frame2-Dibep-05.png +0 -0
  111. package/dist/client/assets/trail-leaves-frame3-ByxojOFR.png +0 -0
  112. package/dist/client/assets/trail-leaves-frame4-CQGuAWJE.png +0 -0
  113. package/dist/client/assets/trail-logomarks-eIe8WIQx.png +0 -0
  114. package/dist/client/assets/trail-logomarks-frame2-Dw7X4i4F.png +0 -0
  115. package/dist/client/assets/trail-logomarks-frame3-CwoFgR8k.png +0 -0
  116. package/dist/client/assets/trail-logomarks-frame4-B7tFxRZO.png +0 -0
  117. package/dist/client/assets/trail-paws-C4cgGpTt.png +0 -0
  118. package/dist/client/assets/trail-paws-frame2-D8gNCPFb.png +0 -0
  119. package/dist/client/assets/trail-paws-frame3-BiEhbm80.png +0 -0
  120. package/dist/client/assets/trail-paws-frame4-BLLXXSyZ.png +0 -0
  121. package/dist/client/assets/trail-rainbow-BavE03WZ.png +0 -0
  122. package/dist/client/assets/trail-rainbow-frame2-BGZ7ZuQD.png +0 -0
  123. package/dist/client/assets/trail-rainbow-frame3-CY3FOgWe.png +0 -0
  124. package/dist/client/assets/trail-rainbow-frame4-DPWH6W3T.png +0 -0
  125. package/dist/client/assets/trail-seeds-BVCYzFRY.png +0 -0
  126. package/dist/client/assets/trail-seeds-frame2-CgopUUJh.png +0 -0
  127. package/dist/client/assets/trail-seeds-frame3-D2rIJzox.png +0 -0
  128. package/dist/client/assets/trail-seeds-frame4-WbnqCHlJ.png +0 -0
  129. package/dist/client/assets/trail-snow-BmXmGNtx.png +0 -0
  130. package/dist/client/assets/trail-snow-frame2-BQC5GITf.png +0 -0
  131. package/dist/client/assets/trail-snow-frame3-1GIpb4hr.png +0 -0
  132. package/dist/client/assets/trail-snow-frame4-BB4B66p3.png +0 -0
  133. package/dist/client/assets/trail-sparkles-D3Ivb6ob.png +0 -0
  134. package/dist/client/assets/trail-sparkles-frame2-DR03q4T0.png +0 -0
  135. package/dist/client/assets/trail-sparkles-frame3-DtdWWuVM.png +0 -0
  136. package/dist/client/assets/trail-sparkles-frame4-ea8pBjiu.png +0 -0
  137. package/dist/client/assets/trail-stars-EgySiFbH.png +0 -0
  138. package/dist/client/assets/trail-stars-frame2-BOXk5jcm.png +0 -0
  139. package/dist/client/assets/trail-stars-frame3-DJ2AW0RA.png +0 -0
  140. package/dist/client/assets/trail-stars-frame4-BcSJ1AVu.png +0 -0
  141. package/dist/client/assets/ui-prefs-CavQQH-s.js +1 -0
  142. package/dist/client/assets/ui-prefs-CavQQH-s.js.br +0 -0
  143. package/dist/client/assets/usage-panel-CEJqXYIA.js +1 -0
  144. package/dist/client/assets/usage-panel-CEJqXYIA.js.br +0 -0
  145. package/dist/client/assets/visions-panel-Dm3iKlhv.js +1 -0
  146. package/dist/client/assets/visions-panel-Dm3iKlhv.js.br +0 -0
  147. package/dist/client/assets/xterm-BdQ2Kshh.js +79 -0
  148. package/dist/client/assets/xterm-BdQ2Kshh.js.br +0 -0
  149. package/dist/client/assets/zod-BRLv4KqJ.js.br +0 -0
  150. package/dist/client/fonts/CommitMono-OFL.txt.br +0 -0
  151. package/dist/client/fonts/commit-mono-400-regular-core.woff2 +0 -0
  152. package/dist/client/fonts/commit-mono-700-regular-core.woff2 +0 -0
  153. package/dist/client/index.html +10 -5
  154. package/dist/client/index.html.br +0 -0
  155. package/dist/client/octicons-LICENSE.txt.br +3 -0
  156. package/dist/server/index.js +1 -1
  157. package/package.json +1 -1
  158. package/dist/chunks/config-store-D4vUBcUX.js +0 -1
  159. package/dist/client/assets/index-BedqDfKJ.js +0 -177
  160. package/dist/client/assets/index-o9J4_Orv.css +0 -2
  161. package/dist/client/assets/xterm-kR64YvZ-.js +0 -79
  162. package/dist/client/fonts/commit-mono-400-italic.woff2 +0 -0
  163. package/dist/client/fonts/commit-mono-700-italic.woff2 +0 -0
@@ -1,6 +1,6 @@
1
1
  import { r as errorMessage } from "./text-DoirglWV.js";
2
- import { c as resolveConfigPath } from "./config-store-B1u3WA5t.js";
3
- import { c as defaultPairingsPath, i as REVOCATION_PROPAGATION_SECONDS, l as defaultSeenPath, n as normalizeRemoteConfig, o as createPairingsStore, s as createSeenStore } from "./remote-config-DWWnz5dP.js";
2
+ import { c as resolveConfigPath } from "./config-store-DIrwF5iQ.js";
3
+ import { c as defaultPairingsPath, i as REVOCATION_PROPAGATION_SECONDS, l as defaultSeenPath, n as normalizeRemoteConfig, o as createPairingsStore, s as createSeenStore } from "./remote-config-C91HwjWq.js";
4
4
  import fs from "node:fs";
5
5
  //#region server/text-format.ts
6
6
  function trimIso(iso) {
@@ -3,7 +3,7 @@ import { n as equalsIgnoringCaseOnWindows } from "./paths-Bu4eH1Yd.js";
3
3
  import { n as isRecord } from "./coerce-NSst8oRP.js";
4
4
  import { n as unrefTimer, t as DEFAULT_TIMER_FNS } from "./timer-deps-u2DAQLok.js";
5
5
  import { a as jsonStateLoadError, d as writeJsonAtomicSync, l as sleepSync, s as loadJsonStateFileSync, u as writeJsonAtomic } from "./json-file-DFCTvPjj.js";
6
- import { o as glimmervoidHomeDir, ot as canonicalizePath } from "./config-store-B1u3WA5t.js";
6
+ import { lt as canonicalizePath, o as glimmervoidHomeDir } from "./config-store-DIrwF5iQ.js";
7
7
  import fs from "node:fs";
8
8
  import path from "node:path";
9
9
  import crypto from "node:crypto";
@@ -1,11 +1,11 @@
1
1
  import { r as errorMessage, t as errorCode } from "./text-DoirglWV.js";
2
2
  import { f as AgentSettingsReply } from "./session-CUc6d7aS.js";
3
- import { r as BrowserConfig } from "./config-CGRYpcBQ.js";
3
+ import { r as BrowserConfig } from "./config-DlKkg6IX.js";
4
4
  import { n as isRecord } from "./coerce-NSst8oRP.js";
5
5
  import { t as renderTable } from "./ascii-figure-core-pDAwtlKO.js";
6
6
  import { n as glimmervoidHomeDir, t as decideConfigPath } from "./config-path-core-DFt-TemS.js";
7
- import { C as deleteValueAtPath, D as scoreSettingsSearch, E as parsePosthogProjectSelection, N as SETTINGS_REGISTRY, O as setValueAtPath, Q as withEnvSecrets, S as cloneValue, X as readEnvSecrets, Y as ENV_SECRET_BINDINGS, j as valueAtPath, l as saveConfigFileOnce, s as loadConfigFile, u as validateConfig } from "./config-store-B1u3WA5t.js";
8
- import { a as fail, c as listSettings, d as renderSectionTables, f as requireConfigFileSetting, g as valueText, h as succeed, i as describeSetting, l as readSetting, m as settingsRequestForServer, n as configFileViewOf, o as fitColumn, p as sectionOf, r as defaultText, s as getSetting, t as ALL_SETTINGS } from "./settings-readout-core-C_JzSeF7.js";
7
+ import { $ as readEnvSecrets, C as deleteValueAtPath, D as scoreSettingsSearch, E as parsePosthogProjectSelection, N as SETTINGS_REGISTRY, O as setValueAtPath, Q as ENV_SECRET_BINDINGS, S as cloneValue, j as valueAtPath, l as saveConfigFileOnce, s as loadConfigFile, tt as withEnvSecrets, u as validateConfig } from "./config-store-DIrwF5iQ.js";
8
+ import { a as fail, c as listSettings, d as renderSectionTables, f as requireConfigFileSetting, g as valueText, h as succeed, i as describeSetting, l as readSetting, m as settingsRequestForServer, n as configFileViewOf, o as fitColumn, p as sectionOf, r as defaultText, s as getSetting, t as ALL_SETTINGS } from "./settings-readout-core-DK1m5TUq.js";
9
9
  import fs from "node:fs";
10
10
  import os from "node:os";
11
11
  import { parseArgs } from "node:util";
@@ -329,7 +329,7 @@ function processIo() {
329
329
  async function runSettingsCli(commandArguments, io = processIo()) {
330
330
  const serverRequest = settingsRequestForServer(commandArguments, process.env);
331
331
  if (!serverRequest) return runSettingsCommand(commandArguments, io);
332
- const { askAgentApi } = await import("./agent-api-cli-ep_5T7Hx.js");
332
+ const { askAgentApi } = await import("./agent-api-cli-prUJ5ZGN.js");
333
333
  const reply = AgentSettingsReply.safeParse(await askAgentApi("settings", serverRequest).catch((error) => ({
334
334
  ok: false,
335
335
  error: errorMessage(error)
@@ -1,6 +1,6 @@
1
1
  import { p as AgentSettingsRequest } from "./session-CUc6d7aS.js";
2
2
  import { t as renderTable } from "./ascii-figure-core-pDAwtlKO.js";
3
- import { A as settingsOf, M as FILE_ONLY_GROUPS, N as SETTINGS_REGISTRY, S as cloneValue, T as hasScaledUnit, X as readEnvSecrets, j as valueAtPath, k as settingsGroupOf, w as displayText, x as SETTINGS_INDEX } from "./config-store-B1u3WA5t.js";
3
+ import { $ as readEnvSecrets, A as settingsOf, M as FILE_ONLY_GROUPS, N as SETTINGS_REGISTRY, S as cloneValue, T as hasScaledUnit, j as valueAtPath, k as settingsGroupOf, w as displayText, x as SETTINGS_INDEX } from "./config-store-DIrwF5iQ.js";
4
4
  import { parseArgs } from "node:util";
5
5
  //#region server/core/settings-readout-core.ts
6
6
  var VALUE_COLUMN_WIDTH = 40;
@@ -2,7 +2,7 @@ import { r as errorMessage } from "./text-DoirglWV.js";
2
2
  import { I as SshSignReply, j as SIGN_URL_ENV } from "./session-CUc6d7aS.js";
3
3
  import { n as execFileAsync, o as spawn } from "./child-process-safe-D4hyVIXj.js";
4
4
  import { a as isLoopbackHostname } from "./hook-relay-core-DA_bz2KA.js";
5
- import { n as postToAgentIngress } from "./agent-api-cli-CVgij_62.js";
5
+ import { n as postToAgentIngress } from "./agent-api-cli-zwuWZlwk.js";
6
6
  import { l as parseSshPublicKey } from "./ssh-signing-core-CRhVVWNW.js";
7
7
  import path from "node:path";
8
8
  import fs from "node:fs/promises";
@@ -0,0 +1 @@
1
+ import{A as e,Ct as t,D as n,E as r,Et as i,b as a,o}from"./dom-helpers-CcEFPh-F.js";var s=`http://www.w3.org/2000/svg`;function c(e,t){let n=document.createElementNS(s,e);for(let[e,r]of Object.entries(t))n.setAttribute(e,r);return n}function l(e,t){let n=document.createElementNS(s,`svg`);return n.setAttribute(`width`,String(e)),n.setAttribute(`height`,String(t)),n.setAttribute(`viewBox`,`0 0 ${e} ${t}`),n.setAttribute(`aria-hidden`,`true`),n}var u=`M4 4L12 12M12 4L4 12`,d=`M12 8a4 4 0 1 1-8 0a4 4 0 1 1 8 0M8 1.5v2.5M8 12v2.5M1.5 8h2.5M12 8h2.5M3.4 3.4l1.77 1.77M10.83 10.83l1.77 1.77M3.4 12.6l1.77-1.77M10.83 5.17l1.77-1.77`,f=`M3 4h10M3 8h10M3 12h10`,p=`M3 8h0.01M8 8h0.01M13 8h0.01`,m=`M8 2.5v6M5 5.5h6M5 12.5h6`,h=`M4.5 12.5h7a3 3 0 0 0 0.4-5.97a4 4 0 0 0-7.7 0.57a2.7 2.7 0 0 0 0.3 5.4z`;function g(e){let t=l(16,16);return t.classList.add(`line-icon`),t.append(c(`path`,{d:e,fill:`none`,stroke:`currentColor`,"stroke-width":`2`,"stroke-linecap":`round`,"stroke-linejoin":`round`})),t}function _(e,t){let{class:n,...r}=t,i=l(16,16);return n!==void 0&&i.classList.add(n),i.append(c(e,r)),i}function v(e){let t=document.createElement(`span`);t.className=`status-icon`,t.dataset.icon=e;for(let n of a[e])t.append(_(n.tag,n.attributes));return t}function y(e,t){e.dataset.icon!==t&&(e.dataset.icon=t,e.replaceChildren(v(t)))}var b={busy:`text-text-muted`,ok:`text-state-done`,error:`text-state-failed`},x=15e3,S=`Something went wrong. Details are hidden in streamer mode.`;function C(e,t){return e!==`error`||t.startsWith(`Not connected to the server. Reconnecting.`)?t:document.documentElement.hasAttribute(`data-streamer`)?S:t}var w={busy:`working`,ok:`complete`,error:`failed`};function T(e){let t=e.querySelector(`:scope > .action-status-icon`),n=e.querySelector(`:scope > .action-status-text`);if(t&&n&&e.childNodes.length===2)return{iconElement:t,textElement:n};let r=o(`span`,`action-status-icon`);r.setAttribute(`aria-hidden`,`true`);let i=o(`span`,`action-status-text`);return e.replaceChildren(r,i),{iconElement:r,textElement:i}}function E(e){e.replaceChildren(),delete e.dataset.tone}function D(e,t,n){if(!n){E(e);return}if(!t){E(e),e.textContent=n;return}e.dataset.tone=t;let{iconElement:r,textElement:i}=T(e);y(r,w[t]),i.textContent=C(t,n)}function O(e=`action-status`){let t=o(`p`,e);return t.setAttribute(`role`,`status`),t.hidden=!0,{element:t,show:(n,r)=>{t.className=`${e} text-xs ${b[n]}`,D(t,n,r),t.hidden=!r},clear:()=>{t.hidden=!0,E(t)}}}function k(t,n){return r(t)?!0:(n.show(`error`,e),!1)}function A(e,t){let n=e instanceof Error?e.message:``;return n===`Request timed out`?`The server did not answer within ${Math.round(t/1e3)} s.`:n||`Not connected to the server. Reconnecting.`}async function j(e,t,r,{busyText:i,timeoutMs:a=x}={}){i&&r.show(`busy`,i);try{let i=await n(e,t,{timeoutMs:a});return r.clear(),i}catch(e){return r.show(`error`,A(e,a)),null}}var M=null,N=3e4,P=null;function F(){let e=document.getElementById(`header-status`),t=document.getElementById(`header-status-text`),n=document.getElementById(`header-status-age`),r=document.getElementById(`header-status-dismiss`);return!e||!t||!n||!r?null:(r.dataset.wired===void 0&&(r.dataset.wired=``,r.addEventListener(`click`,B)),{line:e,text:t,age:n})}function I(){let e=F();if(!e||!M)return;let n=i(Date.now()-M.raisedAt,{...t,justNowBelowSeconds:60});e.age.textContent!==n&&(e.age.textContent=n)}function L({source:e,sessionId:t,message:n,hidesInStreamerMode:r=!0}){let i=F();if(!i)return;let a=r?C(`error`,n):n,s=o(`strong`,`header-status-source`,e);i.text.replaceChildren(s,` ${a}`),i.text.title=`${e}: ${a}`,M={source:e,sessionId:t??null,raisedAt:Date.now()},I(),P??=window.setInterval(I,N),i.line.hidden=!1}function R(e,t){M?.source===e&&(t===void 0||M.sessionId===t)&&B()}function z(e){M?.sessionId===e&&B()}function B(){M=null,P!==null&&window.clearInterval(P),P=null;let e=F();e&&(e.line.hidden=!0,e.text.replaceChildren(),e.text.title=``,e.age.textContent=``)}export{g as _,D as a,j as c,m as d,u as f,f as g,d as h,O as i,k as l,p as m,R as n,L as o,h as p,z as r,A as s,x as t,y as u,l as v,c as y};
@@ -0,0 +1 @@
1
+ import{n as e,o as t,r as n}from"./dom-helpers-CcEFPh-F.js";import{St as r,bt as i,xt as a}from"./index-C8u3ZjM3.js";var o={mine:`Mine`,run:`Run`,cancel:`Cancel`},s=null;function c(e){return e===null?`n/a`:`${Math.round(e*100)}%`}function l(e){if(e===null)return`n/a`;let t=Math.round(e*100);return t>0?`+${t}`:String(t)}function u(e,n,r){let i=t(`button`,`bench-action-button`,o[n]);return i.type=`button`,i.disabled=r,i.addEventListener(`click`,()=>a(e.id,n)),i}function d(e,t){let n=e.inFlight;if(!n||n.suiteId!==t.id)return``;let r=n.caseId?`case ${n.caseId}, `:``;return`Cell ${n.cellIndex+1} of ${n.cellCount}: ${r}arm ${n.armId}, trial ${n.trial}, ${n.phase}.`}function f(e){let n=t(`td`,`bench-score`,c(e?.recall??null));return e&&e.invalid>0&&(n.title=`${e.invalid} invalid or failed cell(s)`),e&&e.degraded>0&&(n.dataset.degraded=`true`),n}function p(e){let n=e.armIds.filter(t=>t!==e.baselineArm),r=t(`table`,`bench-table`),i=t(`tr`);i.append(t(`th`,null,`Case`),...e.armIds.map(n=>t(`th`,null,n===e.baselineArm?`${n} (baseline)`:n))),i.append(...n.map(e=>t(`th`,null,`${e} vs baseline`))),r.append(i);for(let i of e.rows){let a=t(`tr`);a.append(t(`td`,`bench-case`,i.caseId),...e.armIds.map(e=>f(i.arms[e]))),a.append(...n.map(e=>t(`td`,`bench-delta`,l(i.deltaVsBaseline[e]??null)))),r.append(a)}let a=[...new Set(e.armIds.flatMap(t=>Object.keys(e.totals[t]?.recallByTag??{})))].sort(),o=t(`tr`,`bench-total`);o.append(t(`td`,`bench-case`,`Paired recall`),...e.armIds.map(t=>f(e.totals[t]))),r.append(o);for(let n of a){let i=t(`tr`,`bench-total`);i.append(t(`td`,`bench-case`,`Recall, ${n}`),...e.armIds.map(r=>t(`td`,`bench-score`,c(e.totals[r]?.recallByTag[n]??null)))),r.append(i)}return r}function m(e,r){let{isServerConnected:a,pendingActionBySuite:o,outcomeBySuite:s}=i(),c=t(`div`,`bench-suite`),l=e.inFlight?.suiteId===r.id,f=!!e.inFlight&&!l,m=o.has(r.id)||!a,h=t(`div`,`bench-summary`);h.append(t(`span`,`bench-suite-title`,r.title),n(`bench`,r.caseCount===1?`case`:`cases`,String(r.caseCount)),n(`bench`,r.candidateCount===1?`candidate`:`candidates`,String(r.candidateCount)),n(`bench`,`arms`,String(r.armIds.length))),c.append(h);let g=t(`div`,`bench-controls`),_=e.configured===!0&&r.error===null;g.append(u(r,`mine`,!_||m||l),u(r,`run`,!_||m||l||f||r.caseCount===0),u(r,`cancel`,m||!l));let v=t(`span`,`bench-status`,(a?``:`Not connected to the server. Reconnecting.`)||d(e,r)||s.get(r.id)||``);if(v.setAttribute(`role`,`status`),g.append(v),c.append(g),r.error)return c.append(t(`p`,`bench-error`,r.error)),c;let y=r.latestReport;return y?(c.append(t(`p`,`bench-run-line`,`Latest run ${y.runId}: ${y.status}. Only cases every arm scored count toward paired recall.`)),y.rows.length>0&&c.append(p(y)),c):(c.append(t(`p`,`bench-empty`,r.caseCount===0?`Move approved candidates into the cases folder, then choose Run.`:`No run yet.`)),c)}function h(){if(!s)return;s.textContent=``;let{status:n}=i(),r=e(`bench`,`Benchmarks`,`Suites from the benchmarks folder of the Glimmervoid home, one run at a time.`);if(s.append(r),!n)s.append(t(`p`,`bench-empty`,`Waiting for the server.`));else if(!n.configured)s.append(t(`p`,`bench-empty`,n.reason||`Benchmarks are off.`));else if(n.suites.length===0)s.append(t(`p`,`bench-empty`,`No suites yet. Create a folder holding suite.json under benchmarks in the Glimmervoid home.`));else for(let e of n.suites)s.append(m(n,e))}function g(e){s||(s=t(`div`,`bench-content`),e.append(s),r(h),h())}var _={mount:g};export{_ as view};
@@ -0,0 +1,4 @@
1
+ import{_ as e,a as t,c as n,d as r,f as i,g as a,h as o,i as s,l as c,m as l,n as u,o as d,p as f,r as p,s as m,t as ee,u as h,v as g}from"./zod-BRLv4KqJ.js";var te=h({attempt:c().int().positive(),limit:c().int().positive()}).refine(e=>e.attempt<=e.limit),ne={error:l().nullable().optional(),lastRefreshedAt:c().finite().nonnegative().nullable().optional(),incident:l().nullable().optional(),nextAttemptAt:c().finite().nonnegative().nullable().optional(),retry:te.nullable().optional(),isRefreshing:t().optional(),refreshNotice:l().nullable().optional()},re=f({lastRefreshedAt:c().finite().nonnegative().nullable(),error:l().nullable()}),ie=h({lane:u([`my-prs`,`team-review`,`issues`])}),ae=h({ok:t(),error:l().optional(),freshness:re.optional()}),oe=/^[A-Za-z0-9][A-Za-z0-9._-]*$/,se=/^[A-Za-z0-9][A-Za-z0-9._-]*\/[A-Za-z0-9][A-Za-z0-9._-]*$/,ce=/^[A-Za-z0-9_=-]+$/;function le(e){let t=e.split(`/`);return t.length!==2||!t.every(e=>oe.test(e))?null:[t[0],t[1]]}var ue=7,de=/^[0-9a-f]{7,40}$/i,fe=/^[0-9a-f]{40}$/;function pe(e,{chars:t=ue,validate:n=!1}={}){if(typeof e!=`string`||!e)return``;if(!n)return e.slice(0,t);let r=e.trim();return de.test(r)?r.slice(0,t).toLowerCase():``}var _=l().regex(fe),me=l().regex(/^[^/]+\/[^/]+$/);h({number:c().int().positive(),title:l(),body:l(),url:l(),author:h({login:l(),is_bot:t().optional()}).passthrough(),state:u([`OPEN`,`CLOSED`,`MERGED`]).optional(),isDraft:t(),isCrossRepository:t(),baseRefName:l(),baseRefOid:_,headRefName:l().optional(),headRefOid:_,additions:c().int().nonnegative(),deletions:c().int().nonnegative(),files:p(h({path:l(),additions:c().int().nonnegative(),deletions:c().int().nonnegative()}).passthrough())}).passthrough();var he=h({path:l(),line:c().int().positive(),side:u([`RIGHT`,`LEFT`]).default(`RIGHT`),body:l()}),ge=Object.freeze({STAMP:`APPROVE`,COMMENT:`APPROVE WITH NITS`,NEEDS_YOU:`REQUEST CHANGES`}),_e=u([`APPROVE`,`APPROVE WITH NITS`,`REQUEST CHANGES`,`BLOCKED`]),ve=r(e=>typeof e==`string`&&Object.hasOwn(ge,e)?ge[e]:e,_e),ye=u([`CRITICAL`,`HIGH`,`MEDIUM`,`LOW`]),be=he.extend({severity:ye.optional()}),xe=h({path:l().min(1),line:c().int().positive().nullable(),side:u([`RIGHT`,`LEFT`]),severity:ye,reviewer:l().min(1),disposition:u([`ACTIONABLE`,`NIT`,`AMBIGUOUS`]).nullable(),body:l().min(1)}),Se=h({text:l().min(1),paths:p(l()),isFallback:t().default(!1)}),Ce=h({goal:l().default(``),change:l(),checked:p(l()),gaps:p(l()),handChecks:p(Se).default([])});h({verdict:_e,head:_,summary:l(),assessment:Ce.nullable(),findings:p(xe)}),h({body:l(),commit_id:_,comments:p(h({path:l().min(1),line:c().int().positive(),side:u([`RIGHT`,`LEFT`]).default(`RIGHT`),body:l().min(1)}))});var we=u([`APPROVE`,`COMMENT`]),Te=u([`APPROVED`,`CHANGES_REQUESTED`,`COMMENTED`]),Ee=new Set([`APPROVED`,`CHANGES_REQUESTED`]),De=u([`APPROVED`,`CHANGES_REQUESTED`,`REVIEW_REQUIRED`]),Oe=u([`SUCCESS`,`FAILURE`,`PENDING`,`ERROR`,`EXPECTED`]),ke={requestSource:u([`direct`,`team`]).default(`team`),isDraft:t().optional(),checksState:Oe.nullable().optional()},Ae=h({login:l().min(1),state:Te,commit:_.nullable(),isViewer:t(),submittedAt:l().nullable().optional()});function je(e,t){return e||(t.includes(`CHANGES_REQUESTED`)?`CHANGES_REQUESTED`:t.includes(`APPROVED`)?`APPROVED`:`REVIEW_REQUIRED`)}function Me(e){return e.reviewDecision!==`APPROVED`||e.requeuedHead!==void 0&&e.requeuedHead===(e.liveHead??e.reviewedHead)?!1:(e.githubReviews??[]).some(e=>e.isViewer&&e.state===`APPROVED`)}var Ne=h({head:_,base:_.optional(),verdict:_e,summary:l(),body:l(),comments:p(he),wasPosted:t()}),Pe=Ne.pick({head:!0,verdict:!0,summary:!0,wasPosted:!0}).extend({comments:p(be)}),Fe=l().min(1).max(256).regex(ce),Ie=h({addressed:t(),reason:l().trim().min(1).max(4e3)}).strict(),Le=h({id:Fe,path:l(),line:c().int().positive().nullable(),isResolved:t(),viewerCanResolve:t(),comments:h({pageInfo:h({hasNextPage:t(),endCursor:l().nullable().optional()}),nodes:p(h({body:l(),author:h({login:l()}).nullable(),viewerDidAuthor:t(),createdAt:l().datetime(),url:l().url(),originalCommit:h({oid:_}).nullable()}))})});h({data:h({node:h({comments:Le.shape.comments}).nullable()}).nullable()}),h({pullRequest:h({reviewThreads:h({pageInfo:h({hasNextPage:t(),endCursor:l().nullable().optional()}),nodes:p(Le)})}).nullable()}),h({data:h({resolveReviewThread:h({thread:h({id:Fe,isResolved:m(!0)})})}).nullable(),errors:p(e()).optional()});var Re=h({id:Fe,path:l(),line:c().int().positive().nullable(),isResolved:t(),viewerCanResolve:t(),isNit:t(),url:l().url(),viewerComment:l().max(1500).optional(),lastReplyBody:l().max(1500).optional(),viewerCommentTruncated:t().optional(),lastReplyTruncated:t().optional(),lastReplyAuthor:l(),lastReplyAt:l().datetime(),judgement:Ie.extend({head:_,judgedAt:c().finite(),lastReplyAt:l().datetime()}).optional(),resolveError:l().optional(),resolveAttemptReplyAt:l().optional(),judgeAttempt:h({head:_,lastReplyAt:l(),retryAt:c().finite()}).optional(),unjudgeable:h({head:_,lastReplyAt:l(),reason:l().min(1)}).optional()});h({merge_base_commit:h({sha:_}),files:p(h({filename:l(),previous_filename:l().optional(),patch:l().optional()})).max(300)});var ze=h({total:c().int().nonnegative(),resolved:c().int().nonnegative()}),Be=h({...ke,key:l(),repo:me,number:c().int().positive(),title:l(),url:l(),author:l(),tier:u([`stamp`,`full`]),reasons:p(l()),reviewedHead:_,reviewedBase:_.optional(),verdict:ve,summary:l(),assessment:Ce.optional(),body:l(),comments:p(be),status:u([`ready`,`stale`,`posted`,`discarded`,`error`]),error:l().optional(),threads:p(Re).optional(),viewerThreads:ze.optional(),githubReviews:p(Ae).optional(),reviewDecision:De.nullable().optional(),liveHead:_.optional(),prCreatedAt:l().optional(),reviewedAt:c().finite().optional(),postedAt:c().finite().optional(),postedEvent:we.optional(),priorReviewedHead:_.optional(),requeuedHead:_.optional(),earlierReview:Pe.optional()});function Ve(e){return e.status===`posted`&&e.postedEvent===`COMMENT`}var He=u([`approve`,`approve-only`,`comment`,`discard`,`requeue`,`resolve-thread`]);function Ue(e){return e.action===`discard`||e.head!==void 0}var We=h({key:l().min(1),head:_.optional(),action:He,threadId:Fe.optional(),body:l(),comments:p(he)}).refine(e=>e.action!==`resolve-thread`||e.threadId!==void 0,{message:`resolve-thread requires threadId`,path:[`threadId`]}).refine(Ue,{message:`only discard may omit head`,path:[`head`]}),Ge=h({key:l(),ok:t(),error:l().optional(),warning:l().optional()}),Ke=h({sessionId:l().min(1),workDir:l().min(1),worktreePath:l().min(1),head:_,deadlineAt:c(),remainingAwakeMs:c().nonnegative().optional(),savedAt:c()}),qe=h({...ke,reviewDecision:De.nullable().optional(),key:l(),repo:me,number:c().int().positive(),title:l(),url:l(),author:l(),prCreatedAt:l().optional()}),Je=h({draft:Be.nullable(),reviewedHead:_.nullable(),inFlight:t(),skipReason:l().nullable(),handReview:qe.optional(),reviewAttempts:c().int().nonnegative().default(0),resumable:Ke.nullable().optional(),reviewedAt:c().optional(),threads:p(Re).optional(),viewerThreads:ze.optional(),autoResolvedThreadIds:p(Fe).optional(),githubReviews:p(Ae).optional(),reviewDecision:De.nullable().optional(),liveHead:_.optional(),requeuedHead:_.optional(),priorReview:Ne.optional(),discardedReviewHead:_.optional(),requestedAt:c().finite().optional(),updatedAt:c().finite()});i(l(),Je);var Ye=u([`preparing`,`checkout`,`reviewing`]),Xe=h({at:c().finite(),tool:l(),detail:l()}),Ze=h({...ke,reviewDecision:De.nullable().optional(),key:l(),repo:me,number:c().int().positive(),title:l(),url:l(),author:l(),tier:u([`stamp`,`full`]),reasons:p(l()),head:_,phase:Ye,startedAt:c().finite(),deadlineAt:c().finite().nullable(),toolCalls:c().int().nonnegative(),recentSteps:p(Xe),prCreatedAt:l().optional(),priorReviewedHead:_.optional()}),Qe=h({...ne,type:m(`team-review-status`),ts:c().finite(),configured:t(),reason:l().nullable().optional(),drafts:p(Be),inFlight:p(Ze),queued:p(qe).default([]),handReview:p(qe).default([]),team:h({org:l(),slug:l(),name:l(),avatarUrl:l()}).nullable().optional()}).passthrough(),$e=u([`merged`,`draft`,`conflicts`,`behind`,`checks-failing`,`changes-requested`,`unresolved-threads`,`checks-pending`,`needs-approval`,`ready`,`unknown`]),v=c().int().nonnegative(),y=l().regex(se),et=l().regex(/^[1-9][0-9]*$/),tt=o([y,`#`,et]),nt=o([tt,`@`,_]),rt=l().refine(e=>tt.safeParse(e).success),it=l().refine(e=>nt.safeParse(e).success);d(`outcome`,[f({outcome:m(`pushed`)}),f({outcome:u([`no-change`,`failed`,`stopped`,`timed-out`]),reason:l().min(1)})]);var at=f({outcome:u([`pushed`,`no-change`,`failed`,`stopped`,`timed-out`]),reason:l().min(1).optional(),at:c().finite()}),ot=at.extend({key:rt,headRefOid:_,baseRefOid:_,consecutiveAttempts:c().int().min(1).optional()});f({keepMergeableKeys:p(rt),keepMergeableAttemptKeys:p(it),keepMergeableAttempts:p(ot).default([]),mergeQueueKeys:p(rt).default([]),keepMergeablePushedHeadKeys:p(it).default([])});var st=f({repo:y,number:c().int().positive(),url:g(),source:u([`hook`,`sha`,`manual`]),linkedAt:c().finite()}),ct=f({links:p(st).max(20),unlinkedKeys:p(rt).default([])}),lt=h({repo:y,number:c().int().positive(),keepMergeable:t()}),ut=h({key:l(),ok:t(),error:l().optional()}),dt=ut,ft=h({repo:y,number:c().int().positive(),mergeWhenReady:t()}),pt=ut,mt=u([`MERGE`,`SQUASH`,`REBASE`]),ht=h({path:l(),line:c().int().positive().nullable(),isOutdated:t(),url:g(),author:l().nullable(),excerpt:l(),commentCount:c().int().positive(),lastAuthor:l().nullable(),lastActivityAt:l()}),gt=h({reviewer:l().nullable(),state:l(),submittedAt:l().nullable()}),_t=h({outcome:u([`rebased`,`failed`]),at:c().finite(),message:l()}),vt=h({at:c().finite(),message:l()}),b=h({key:l(),repo:y,number:c().int().positive(),title:l(),url:g(),isDraft:t(),state:u([`OPEN`,`MERGED`,`CLOSED`]),createdAt:l(),mergedAt:l().nullable(),updatedAt:l(),baseRefName:l(),baseRefOid:_,headRefName:l().min(1),isCrossRepository:t(),headRefOid:_,isInMergeQueue:t(),mergeMethod:mt,mergeable:u([`MERGEABLE`,`CONFLICTING`,`UNKNOWN`]),mergeStateStatus:l(),reviewDecision:u([`APPROVED`,`CHANGES_REQUESTED`,`REVIEW_REQUIRED`]).nullable(),checks:h({state:u([`SUCCESS`,`FAILURE`,`PENDING`,`ERROR`,`EXPECTED`]).nullable(),failing:p(l()),pendingCount:v}),unresolvedThreads:v,threads:p(ht),behindBy:v.nullable(),reviewRequests:p(h({name:l(),isTeam:t(),avatarUrl:l().nullable()})),approvals:v,reviews:p(gt),stage:$e,autoRebase:_t.optional(),keepMergeable:t().optional(),keepMergeableAttempt:at.optional(),isKeepMergeableFixInFlight:t().optional(),mergeQueuePosition:c().int().positive().nullable().optional(),isMergeQueueHeldForRepairPush:t().optional(),mergeQueueFailure:vt.optional()}).refine(e=>e.key===`${e.repo}#${e.number}`),yt=f({key:rt,autoRebase:b.shape.autoRebase,keepMergeable:b.shape.keepMergeable,keepMergeableAttempt:b.shape.keepMergeableAttempt,isKeepMergeableFixInFlight:b.shape.isKeepMergeableFixInFlight,mergeQueuePosition:b.shape.mergeQueuePosition,isMergeQueueHeldForRepairPush:b.shape.isMergeQueueHeldForRepairPush,mergeQueueFailure:b.shape.mergeQueueFailure}),bt=h({...ne,type:m(`my-prs-status`),ts:c().finite(),configured:t(),reason:l().nullable().optional(),viewer:l().nullable(),prs:p(yt),truncatedNote:l().nullable().optional(),isKeepMergeableEnabled:t().optional(),isMergeQueueEnabled:t().optional()}).passthrough();bt.extend({prs:p(b)});var xt=h({repo:y,number:c().int().positive(),headRefOid:_}),St=u([`merged`,`queued`,`auto-merge`,`unconfirmed`]),Ct=h({key:l(),ok:t(),kind:St.optional(),error:l().optional()}),wt=h({__typename:m(`CheckRun`),name:l(),conclusion:l().nullable(),status:l(),startedAt:l().nullish(),checkSuite:h({app:h({databaseId:c().int().nullish()}).nullish(),workflowRun:h({workflow:h({databaseId:c().int().nullish()})}).nullish()}).nullish()}),Tt=h({__typename:m(`StatusContext`),context:l(),state:l()}),Et=a([wt,Tt]),Dt=h({hasNextPage:t(),endCursor:l().nullable()}),x=h({__typename:m(`PullRequest`),id:l().regex(ce),number:c().int().positive(),title:l(),url:g(),isDraft:t(),state:u([`OPEN`,`MERGED`,`CLOSED`]),createdAt:l(),mergedAt:l().nullable(),updatedAt:l(),baseRefName:l(),baseRefOid:_,headRefName:l().min(1),isCrossRepository:t(),headRefOid:_,isInMergeQueue:t(),mergeable:u([`MERGEABLE`,`CONFLICTING`,`UNKNOWN`]),mergeStateStatus:l(),reviewDecision:u([`APPROVED`,`CHANGES_REQUESTED`,`REVIEW_REQUIRED`]).nullable(),repository:h({nameWithOwner:y,viewerDefaultMergeMethod:mt}),commits:h({nodes:p(h({commit:h({statusCheckRollup:h({id:l().regex(ce).optional(),state:u([`SUCCESS`,`FAILURE`,`PENDING`,`ERROR`,`EXPECTED`]).nullable(),contexts:h({pageInfo:Dt.optional(),nodes:p(Et)})}).nullable()})}))}),reviewThreads:h({pageInfo:h({hasNextPage:t()}),nodes:p(h({isResolved:t()}))}),reviewRequests:h({nodes:p(h({requestedReviewer:d(`__typename`,[h({__typename:m(`User`),login:l()}),h({__typename:m(`Team`),slug:l(),avatarUrl:l().nullable(),organization:h({login:l()})}),h({__typename:u([`Bot`,`Mannequin`])})]).nullable()}))}),latestOpinionatedReviews:h({nodes:p(h({state:l()}))}),latestReviews:h({nodes:p(h({state:l(),submittedAt:l().nullable(),author:h({login:l()}).nullable()}))})}),Ot=h({login:l()}).nullable();h({isResolved:t(),isOutdated:t(),path:l(),line:c().int().positive().nullable(),firstComment:h({totalCount:v,nodes:p(h({author:Ot,bodyText:l(),url:g(),createdAt:l()}))}),lastComment:h({nodes:p(h({author:Ot,createdAt:l()}))})}),h({data:h({repository:h({pullRequest:h({reviewThreads:h({pageInfo:h({hasNextPage:t(),endCursor:l().nullable()}),nodes:p(e())})}).nullable()}).nullable()}),errors:p(e()).optional()}),h({data:h({node:h({contexts:h({pageInfo:Dt,nodes:p(e())}).nullable()}).nullable()}).nullable(),errors:p(e()).optional()}),h({data:h({repository:h({pullRequest:h({state:l(),isInMergeQueue:t(),autoMergeRequest:h({enabledAt:l().nullable()}).nullable()}).nullable()}).nullable()}),errors:p(e()).optional()}),h({data:h({open:h({issueCount:v,nodes:p(e())}),merged:h({issueCount:v,nodes:p(e())})}),errors:p(e()).optional()});var S=Object.freeze({min:0,exclusiveMin:!0,label:`a positive number`}),kt=Object.freeze({min:0,label:`zero or more`}),At=Object.freeze({min:0,max:300}),jt=Object.freeze({min:1,max:60}),Mt=Object.freeze({min:.5,max:2}),Nt=Object.freeze({flyingAnimalsMinGapSeconds:20,flyingAnimalsMaxGapSeconds:40,flyingAnimalsMinDurationSeconds:6.9,flyingAnimalsMaxDurationSeconds:11.5,flyingAnimalsScale:1,flyingAnimalsOnPhone:!0}),Pt=Object.freeze({min:64,max:16384}),Ft=Object.freeze({min:0,max:65536}),It=Object.freeze({min:0,max:65535}),Lt=Object.freeze({min:0,exclusiveMin:!0,max:2147483647/1e3}),Rt=S,zt=S,Bt=S,Vt=S,Ht=S,Ut=kt,Wt=S,Gt=S,Kt=S,qt=S,Jt=S,Yt=S,Xt=S,Zt=S,Qt=S,$t=Object.freeze({min:60,max:21600,label:`between 60 and 21600`}),en=Object.freeze({min:1,label:`at least 1`}),tn=Object.freeze({min:1,label:`at least 1`}),nn=kt,rn=Object.freeze({min:1,max:30,label:`between 1 and 30`}),an=Object.freeze({min:1,max:1440}),on=Object.freeze({min:1,max:3650}),sn=Object.freeze({min:30,max:3650}),cn=Object.freeze({min:1,max:24}),ln=S,un=Object.freeze({scanIntervalMinutes:an,retainDays:on,warehouseRetainDays:sn,sessionBlockHours:cn}),dn=Object.freeze({min:5,max:120}),fn=Object.freeze({min:1,max:5}),pn=Object.freeze({min:1,max:50});Object.freeze({NON_NEGATIVE_NUMBER_RANGE:kt,FLYING_ANIMALS_GAP_RANGE:At,FLYING_ANIMALS_DURATION_RANGE:jt,FLYING_ANIMALS_SCALE_RANGE:Mt,KEEP_MERGEABLE_TIMEOUT_MINUTES_RANGE:dn,PORT_RANGE:It,POSTHOG_ESCALATION_RANGE:Xt,POSTHOG_FIX_TIMEOUT_RANGE:$t,POSTHOG_INTERVAL_RANGE:Kt,POSTHOG_INVESTIGATION_TIMEOUT_RANGE:Jt,POSTHOG_MAX_CONCURRENT_RANGE:qt,POSTHOG_MIN_USERS_RANGE:Yt,POSTHOG_TRAFFIC_BASELINE_RANGE:rn,POSTHOG_TRAFFIC_COOLDOWN_RANGE:nn,POSTHOG_TRAFFIC_MIN_USERS_RANGE:tn,POSTHOG_TRAFFIC_MULTIPLIER_RANGE:en,REPLAY_BUFFER_KB_RANGE:Pt,MEMORY_RESERVE_MB_RANGE:Ft,TASK_TITLE_TIMEOUT_RANGE:Lt,USAGE_BUDGET_RANGE:ln,USAGE_RETAIN_DAYS_RANGE:on,USAGE_SCAN_INTERVAL_RANGE:an,VISIONS_ACTIVITY_MAX_PER_HOUR_RANGE:Ut,VISIONS_COOLDOWN_MS_RANGE:Vt,VISIONS_DISPATCH_TIMEOUT_RANGE:Wt,VISIONS_INTENT_THREAD_TTL_MS_RANGE:Gt,VISIONS_MAX_PER_HOUR_RANGE:Ht,VISIONS_QUIET_MS_RANGE:Bt,WORKFLOWS_MAX_ACTIONS_PER_POLL_RANGE:pn,WORKFLOWS_MAX_CONCURRENT_SESSIONS_RANGE:fn});var mn=Object.freeze([`opened`,`checks-failed`,`review-requested`,`approved`,`commented`,`merged`]),hn=Object.freeze([`notify`,`spawn`,`label`,`comment`]),gn=2e4,_n=65536,vn=50,yn=/^[a-z0-9][a-z0-9-]{0,63}$/,bn=/[\x00-\x1f\x7f,]|^-/,xn=(e,t)=>{let n=`${e} must be an integer between ${t.min} and ${t.max}`;return c({error:n}).int({error:n}).min(t.min,{error:n}).max(t.max,{error:n})},Sn=t({error:`workflows.enabled must be a boolean`}),Cn=xn(`workflows.maxConcurrentSessions`,fn),wn=xn(`workflows.maxActionsPerPoll`,pn),Tn=(e,t)=>p(t,{error:`${e} must be an array`}).min(1,{error:`${e} must list at least one entry when present`}),En=l({error:`a workflow label name must be a string`}).trim().min(1,{error:`a workflow label name must not be empty`}).max(vn,{error:`a workflow label name must be at most ${vn} characters`}).refine(e=>!bn.test(e),{error:`a workflow label name must not start with a dash or hold a comma or control character`}),Dn=l({error:`a workflow comment body must be a string`}).min(1,{error:`a workflow comment body must not be empty`}).max(_n,{error:`a workflow comment body must be at most ${_n} characters`}).refine(e=>e.trim().length>0,{error:`a workflow comment body must not be blank`}),On=u(mn,{error:`workflows.rules[].trigger must be one of ${mn.join(`, `)}`}),kn=d(`type`,[f({type:m(`notify`)}),f({type:m(`spawn`),promptTemplate:l({error:`a spawn action needs a promptTemplate string`}).min(1,{error:`a spawn action promptTemplate must not be empty`}).max(gn,{error:`a spawn action promptTemplate must be at most ${gn} characters`}).refine(e=>e.trim().length>0,{error:`a spawn action promptTemplate must not be blank`})}),f({type:m(`label`),name:En}),f({type:m(`comment`),body:Dn})],{error:`workflows.rules[].actions[].type must be one of ${hn.join(`, `)}`}),An=f({mine:t({error:`workflows.rules[].filters.mine must be a boolean`}).optional(),teamReviewRequested:t({error:`workflows.rules[].filters.teamReviewRequested must be a boolean`}).optional(),authors:Tn(`workflows.rules[].filters.authors`,l({error:`workflows.rules[].filters.authors must hold GitHub logins`}).regex(oe,{error:`workflows.rules[].filters.authors must hold GitHub logins`})).optional(),labels:Tn(`workflows.rules[].filters.labels`,En).optional(),baseBranches:Tn(`workflows.rules[].filters.baseBranches`,l({error:`workflows.rules[].filters.baseBranches must hold branch names`}).min(1,{error:`workflows.rules[].filters.baseBranches must hold branch names`})).optional()},{error:`workflows.rules[].filters must be an object`}),jn=l({error:`workflows.rules[].id must be a string`}).regex(yn,{error:`workflows.rules[].id must be 1 to 64 lowercase letters, digits and dashes, starting with a letter or digit`}),Mn=t({error:`workflows.rules[].enabled must be a boolean`}),Nn=f({id:jn,name:l({error:`workflows.rules[].name must be a string`}).trim().min(1,{error:`workflows.rules[].name must not be empty`}).max(80,{error:`workflows.rules[].name must be at most 80 characters`}),enabled:Mn.default(!1),repos:Tn(`workflows.rules[].repos`,y),filters:An.default({}),trigger:On,actions:Tn(`workflows.rules[].actions`,kn)},{error:`workflows.rules[] must be an object`}),Pn=f({enabled:Sn.default(!0),maxConcurrentSessions:Cn.default(2),maxActionsPerPoll:wn.default(20),rules:p(Nn,{error:`workflows.rules must be an array`}).default([])},{error:`workflows must be an object`}).superRefine((e,t)=>{let n=new Set;for(let[r,i]of e.rules.entries())n.has(i.id)?t.addIssue({code:`custom`,path:[`rules`,r,`id`],message:`workflows.rules[${r}].id "${i.id}" is declared more than once`}):n.add(i.id)}),Fn=f({id:jn,enabled:Mn},{error:`a dashboard update of workflows.rules[] carries only id and enabled`});f({enabled:Sn.optional(),maxConcurrentSessions:Cn.optional(),maxActionsPerPoll:wn.optional(),rules:p(Fn,{error:`workflows.rules must be an array`}).optional()},{error:`a dashboard update of workflows carries only enabled, maxConcurrentSessions, maxActionsPerPoll and rule toggles`});var In=c().int().nonnegative(),Ln=u([`SUCCESS`,`FAILURE`,`PENDING`,`ERROR`,`EXPECTED`]).nullable(),Rn=x.extend({author:h({login:l()}).nullable(),labels:h({nodes:p(h({name:l()}))}),comments:h({totalCount:In})}),zn=f({repo:y,number:c().int().positive(),title:l(),url:g(),author:l().nullable(),state:u([`OPEN`,`MERGED`,`CLOSED`]),createdAt:l(),mergedAt:l().nullable(),isDraft:t(),isCrossRepository:t(),baseRefName:l(),headRefName:l().min(1),headRefOid:_,labels:p(l()),commentCount:In,reviewRequests:p(l()),checksState:Ln,reviewDecision:u([`APPROVED`,`CHANGES_REQUESTED`,`REVIEW_REQUIRED`]).nullable()}),Bn=f({polledAtMs:In,prs:p(zn)});f({repos:i(l().regex(/^[a-z0-9][a-z0-9._-]*\/[a-z0-9][a-z0-9._-]*$/),Bn)});var Vn=l().refine(e=>tt.safeParse(e).success&&e===e.toLowerCase()&&Number.isSafeInteger(Number(e.slice(e.lastIndexOf(`#`)+1))));function Hn(e){return`${e.repo}#${e.number}`.toLowerCase()}h({repository:x.shape.repository.pick({nameWithOwner:!0}),number:x.shape.number,updatedAt:x.shape.updatedAt,headRefOid:x.shape.headRefOid,state:x.shape.state,commits:h({nodes:p(h({commit:h({statusCheckRollup:h({state:b.shape.checks.shape.state}).nullable()})}))}),reviewDecision:x.shape.reviewDecision,mergeable:x.shape.mergeable}),x.extend({author:Rn.shape.author.unwrap().extend({__typename:l().optional()}).nullable(),labels:Rn.shape.labels,comments:Rn.shape.comments,latestReviews:h({nodes:p(x.shape.latestReviews.shape.nodes.element.extend({commit:h({oid:l()}).nullable().optional()}))}),writerOpinionatedReviews:x.shape.latestOpinionatedReviews.optional()});var Un=f({key:Vn,id:x.shape.id,repo:b.shape.repo,number:b.shape.number,title:b.shape.title,url:b.shape.url,author:zn.shape.author,isAuthorBot:t(),labels:zn.shape.labels,commentCount:zn.shape.commentCount,isDraft:b.shape.isDraft,state:b.shape.state,createdAt:b.shape.createdAt,mergedAt:b.shape.mergedAt,updatedAt:b.shape.updatedAt,baseRefName:b.shape.baseRefName,baseRefOid:b.shape.baseRefOid,headRefName:b.shape.headRefName,headRefOid:b.shape.headRefOid,isCrossRepository:b.shape.isCrossRepository,isInMergeQueue:b.shape.isInMergeQueue,mergeMethod:b.shape.mergeMethod,mergeable:b.shape.mergeable,mergeStateStatus:b.shape.mergeStateStatus,reviewDecision:De.nullable(),checks:b.shape.checks.strict(),rollupState:Oe.nullable(),unresolvedThreads:b.shape.unresolvedThreads,threads:p(b.shape.threads.element.strict()),behindBy:b.shape.behindBy,reviewRequests:p(b.shape.reviewRequests.element.strict()),approvals:b.shape.approvals,reviews:p(b.shape.reviews.element.extend({commit:_.nullable()}).strict()),opinionatedWriterReviewStates:p(l())}).refine(e=>e.key===Hn(e)),Wn=n({type:m(`github-prs`),ts:c().finite().nonnegative(),prs:i(Vn,Un).refine(e=>Object.entries(e).every(([e,t])=>e===t.key)),freshness:re}),Gn=l().regex(se),Kn=l().regex(RegExp(`${se.source.slice(0,-1)}#[1-9][0-9]*$`)),qn=h({number:c().int().positive(),url:l().url(),title:l(),state:u([`open`,`draft`,`merged`,`closed`])});h({issue:h({closedByPullRequestsReferences:h({nodes:p(h({number:qn.shape.number,url:qn.shape.url,title:qn.shape.title,state:u([`OPEN`,`MERGED`,`CLOSED`]),isDraft:t()}).nullable()).max(5)})}).nullable()});function Jn({state:e,isDraft:t}){return e===`OPEN`?t?`draft`:`open`:e===`MERGED`?`merged`:`closed`}var C={key:l(),repo:Gn,number:c().int().positive(),title:l(),url:l().url(),labels:p(l()),assignees:p(l()),author:l(),comments:c().int().nonnegative(),createdAt:ee(),updatedAt:ee()},Yn=u([`project`,`me`,`team`]),Xn={...C,sources:p(Yn).nonempty().refine(e=>new Set(e).size===e.length),teams:p(Gn),projectId:l().nullable(),pullRequests:p(qn).max(5).default([])},Zn=h(Xn).refine(e=>e.key===`${e.repo}#${e.number}`),Qn=h({...Xn,sessionId:l().nullable().default(null)}).refine(e=>e.key===`${e.repo}#${e.number}`),$n=h({...C,state:u([`open`,`closed`])});h({number:C.number,title:C.title,html_url:C.url,state:u([`open`,`closed`]),labels:p(a([l(),h({name:l()})])),assignees:p(h({login:l()})),user:h({login:l()}).nullable(),comments:C.comments,created_at:C.createdAt,updated_at:C.updatedAt,repository_url:l().url().optional(),pull_request:e().optional()}),h({items:p(e()),total_count:c().int().nonnegative(),incomplete_results:t()}),h({ok:t(),items:p($n),isComplete:t(),error:l()}),h({issues:p(Zn),lastSyncAt:c().finite().nonnegative().nullable(),perRepoSync:i(Gn,h({lastSyncAt:c().finite().nonnegative().nullable(),ticks:c().int().nonnegative(),needsFullReconcile:t()})),sessionLinks:i(Kn,l()).default({}),pullRequestsFetchedAt:i(Kn,ee()).default({})});var er=h({type:m(`issues-status`),ts:c().finite(),configured:t(),reason:l().nullable(),lastSyncAt:c().finite().nonnegative().nullable(),issues:p(Qn),...ne}).passthrough(),tr=2e4,nr=4e3,rr=524288,ir=1e4,ar=`ExitPlanMode`,or=4096,sr=/^ {0,3}(#{1,6})[ \t]+(.*)$/;function cr(e){let t=e.trimEnd(),n=t.length;for(;n>0&&t[n-1]===`#`;)n--;if(n===t.length||n===0)return t;let r=t[n-1];return r!==` `&&r!==` `?t:t.slice(0,n).trimEnd()}function lr(e,{overlongLine:t}){if(t===`reject`&&e.length>4096)return null;let n=sr.exec(e.slice(0,or));return n?{level:n[1].length,text:cr(n[2])}:null}var ur=h({plan:l().min(1),planFilePath:l().min(1),agent_id:l().min(1).optional(),agent_type:l().min(1).optional()}).passthrough();h({tool_name:m(ar),tool_input:ur,agent_id:l().min(1).optional(),agent_type:l().min(1).optional()}).passthrough(),h({plan:l(),planFilePath:l(),agentId:l().nullable(),agentType:l().nullable()}).extend({sessionId:l().min(1),revision:c().int().positive(),receivedAt:c().finite()});var dr=Object.freeze([`open`,`released`,`decided`,`closed`]),fr=u(dr),pr=Object.freeze([`approve`,`approve-accept-edits`,`revise`,`terminal`]),mr=u(pr),hr=h({heading:l().max(nr).nullable(),comment:l().min(1).max(nr)}),gr=h({id:l().min(1),agentId:l().nullable(),revision:c().int().positive(),decision:mr,feedback:l().max(tr).optional(),comments:p(hr).max(40).optional(),plan:l().min(1).max(rr).optional()}),_r=h({revision:c().int().positive(),receivedAt:c().finite(),chars:c().int().nonnegative(),title:l()}),vr=h({revision:c().int().positive(),since:c().finite()}),yr=h({agentId:l().nullable(),agentType:l().nullable(),revisions:p(_r),state:fr,openRevision:vr.nullable(),approvedRevision:c().int().positive().nullable(),lastDecision:mr.nullable()});h({reviews:p(yr)});var br=h({agentId:l().nullable(),revision:c().int().nonnegative(),plan:l(),planFilePath:l(),receivedAt:c().finite()}),xr=h({id:l(),agentId:l().nullable(),agentType:l().nullable(),revision:c().int().positive(),receivedAt:c().finite(),state:fr,lastDecision:mr.nullable(),approvedRevision:c().int().positive().nullable(),chars:c().int().nonnegative(),title:l(),hasPlan:t()}),Sr=h({id:l(),agentId:l().nullable(),planFilePath:l(),changedAt:c().finite()}),Cr=h({id:l(),reviews:p(yr),body:br.nullable()});Object.freeze([`file`,`subsystem`,`co-change`,`hotspot`,`blast`,`untested`,`collision`,`link`]);var w=l().min(1),T=l().min(1),E=c().int().nonnegative(),wr=p(T).max(20),Tr=u([`added`,`modified`,`deleted`,`renamed`,`untracked`]),Er=f({factId:w,path:T,previousPath:T.optional(),status:Tr,isCommitted:t()}),Dr=f({factId:w,agentsPath:T,title:l(),paths:p(T).min(1)}),Or=f({factId:w,path:T,partner:T,support:E,confidence:c().min(0).max(1)}),kr=f({factId:w,path:T,commitCount:E,fixCommitCount:E}),Ar=f({factId:w,path:T,directDependents:wr,directDependentCount:E,transitiveDependentCount:E,dependentTests:wr,dependentTestCount:E}),jr=f({factId:w,path:T}),Mr=f({factId:w,path:T,otherSessionId:l().min(1),otherSessionName:l()}),Nr=f({factId:w,providerRepo:l().min(1),packageName:l().min(1),packageDir:l(),consumerManifest:T,versionSpec:l(),isLocalLink:t(),providerChangedPathCount:E,importers:wr,importerCount:E,changedImporterCount:E}),Pr=f({name:l().min(1),root:l().min(1),sessionPathPrefix:l(),base:l().nullable(),files:p(Er),subsystems:p(Dr),coChangeGaps:p(Or),hotspots:p(kr),blastRadius:p(Ar),untestedFiles:p(jr),collisions:p(Mr),links:p(Nr),error:l().nullable()}),Fr=f({sessionId:l().min(1),sig:l().nullable(),generatedAt:c().finite(),repos:p(Pr),error:l().min(1).optional()}),Ir=u([`decision`,`retraction`,`conjecture`,`resolution`,`dismissal`,`defect`,`experiment`,`close`,`unable`,`escalation`,`acknowledgement`,`enactment`]),D={id:l().min(1),at:ee(),session:l(),agent:l(),commit:l().nullable(),dirty:t(),binding:l()},Lr={of:l().min(1),because:l()},Rr=n({id:l(),text:l()}),zr=d(`kind`,[n({...D,kind:m(`decision`),chose:l(),over:p(l()),because:l()}),n({...D,kind:m(`retraction`),...Lr}),n({...D,kind:m(`conjecture`),observation:l(),couldBe:p(l()),discriminatedBy:l()}),n({...D,kind:m(`resolution`),...Lr,as:l().optional()}),n({...D,kind:m(`dismissal`),...Lr}),n({...D,kind:m(`defect`),what:l(),evidence:l(),files:p(l())}),n({...D,kind:m(`experiment`),expectation:l(),context:p(l()),actions:p(Rr),criteria:p(Rr)}),n({...D,kind:m(`close`),of:l(),outcome:u([`success`,`failure`,`inconclusive`]),results:i(l(),e())}),n({...D,kind:m(`unable`),what:l(),because:l()}),n({...D,kind:m(`escalation`),what:l(),because:l()}),n({...D,kind:m(`acknowledgement`),...Lr}),n({...D,kind:m(`enactment`),practice:l(),results:i(l(),e())})]),Br=a([zr,h({id:l().min(1),kind:l().min(1).refine(e=>!Ir.safeParse(e).success)})]);n({branch:l().nullable(),escalations:p(e()),records:p(Br),citedBy:i(l(),p(e())),damaged:p(e())});var Vr=f({id:l().min(1),at:ee().nullable(),kind:l().min(1),text:l().max(280),detail:l().max(280).nullable(),supersedes:l().nullable()}),Hr=d(`ok`,[f({ok:m(!0),latest:Vr.nullable()}),f({ok:m(!1),reason:l().min(1).max(200)})]),Ur=f({journal:Hr,updatedAt:c().finite()}),O=Object.freeze({DORMANT:`DORMANT`,INITIALIZING:`INITIALIZING`,STARTING:`STARTING`,RUNNING:`RUNNING`,WAITING:`WAITING`,IDLE:`IDLE`,COMPLETE:`COMPLETE`,DONE:`DONE`,FAILED:`FAILED`}),Wr=Object.freeze({[O.DORMANT]:`Dormant`,[O.INITIALIZING]:`Starting`,[O.STARTING]:`Starting`,[O.RUNNING]:`Working`,[O.WAITING]:`Needs Input`,[O.IDLE]:`Idle`,[O.COMPLETE]:`Complete`,[O.DONE]:`Exited`,[O.FAILED]:`Failed`}),Gr=Object.freeze([O.INITIALIZING,O.STARTING,O.RUNNING,O.WAITING,O.IDLE,O.COMPLETE]),Kr=Object.freeze([O.DONE,O.FAILED]),qr=Object.freeze([O.WAITING,O.IDLE,O.COMPLETE]),Jr=/^[a-zA-Z0-9_\-. ()]{1,64}$/,Yr=`Session name may only contain letters, numbers, spaces, dashes, dots, underscores, and parentheses (max 64 chars)`,Xr=/[\x00-\x1f\x7f-\x9f]/,Zr=l().refine(e=>!Xr.test(e)).trim().max(120);h({title:l().nullable(),name:l().nullable().optional()}).strict();var Qr=u(O),$r=u([`finished`,`failed`]),ei=h({at:c().finite().nullable(),kind:l(),reason:l().nullable()}).passthrough(),ti=4e3,ni=1e3,ri=2e3,ii=h({question:l().min(1).max(ni),header:l().max(100).default(``),options:p(h({label:l().min(1).max(200),description:l().max(ni).default(``)})).min(1).max(8),multiSelect:t().default(!1)}),ai=h({requestId:a([l().min(1).max(128),c().int()]),kind:u([`command`,`fileChange`,`permissions`,`tool`,`question`]),summary:l().max(ti),isSummaryTruncated:t(),toolName:l().max(200).optional(),questions:p(ii).min(1).max(4).optional(),alwaysAllowSummary:l().max(ti).optional()}),oi=i(l().max(ni),l().max(ri)),si=u([`accept`,`acceptForSession`,`decline`]),ci=80,li=Object.freeze({notInstalled:`not installed`,unsupportedVersion:`unsupported version`,codexHooksUntrusted:`Codex hooks need trust in /hooks`}),ui=d(`active`,[h({active:m(!0)}).strict(),h({active:m(!1),reason:l().min(1).max(ci),version:l().optional()}).strict()]),di=h({id:l(),name:l(),taskTitle:Zr.nullable().default(null),taskTitleIsCustom:t().default(!1),path:l(),agent:l(),state:Qr,stateSince:c(),dangerouslySkipPermissions:t(),saneYolo:t().default(!1),ephemeral:t(),ownerId:l().nullable().optional(),isWorktree:t(),isWorkspace:t().default(!1),remoteWorkspace:l().nullable().default(null),isGuarded:t().default(!1),isGuardrailsReleased:t().default(!1),resumeSessionId:l().nullable(),activeAgents:c().int().nonnegative(),awaitingBackgroundTasks:t(),isCompacting:t().default(!1),isWaitingForMemory:t().default(!1),pendingWakeup:ei.nullable(),pendingPromptKind:l().nullable(),conversationApproval:ai.nullable().default(null),hasConversationBridge:t().default(!1),isConversationViewOn:t().default(!1),hasPlan:t().default(!1),mergeStatus:l().nullable(),mergeReason:l().nullable(),worktreeNotice:l().nullable(),failureReason:l().nullable().optional(),unseenOutcome:$r.nullable().default(null),effectiveBase:l().nullable(),linkedPrs:p(st).default([]),coherenceHooks:ui.nullable().default(null),auditLog:p(e())}).passthrough();h({namespace:m(`git`,{error:`namespace must be git`}),publicKey:l({error:`publicKey must be a string`}).min(1,{error:`publicKey must not be empty`}).max(16384,{error:`publicKey must be at most 16384 characters`}),payload:s({error:`payload must be base64`})}).strict(),a([h({ok:m(!0),signature:l()}).strict(),h({ok:m(!1),error:l()}).strict()]);var fi=[`push`,`spawn`,`send`,`read`,`close`,`attention`,`board`,`edit`,`review`,`reviews`,`prs`,`link-pr`,`settings`];[...fi],h({prompt:l({error:`prompt must be a string`}).min(1,{error:`prompt must not be empty`}).max(2e4,{error:`prompt must be at most 20000 characters`}).refine(e=>!e.trimStart().startsWith(`-`),{message:`prompt must not start with a dash, which the agent CLI would read as an option`}),name:l({error:`name must be a string`}).min(1,{error:`name must not be empty`}).max(200,{error:`name must be at most 200 characters`}).optional(),agent:l({error:`agent must be a string`}).min(1,{error:`agent must not be empty`}).max(40,{error:`agent must be at most 40 characters`}).optional()}).strict();var pi=l({error:`the session must be a string`}).min(1,{error:`the session must not be empty`}).max(300,{error:`the session must be at most 300 characters`});h({words:p(l({error:`each word must be a string`}).max(2e4,{error:`each word must be at most 20000 characters`}),{error:`words must be a list`}).min(1,{error:`send needs text`}).max(5e3,{error:`send takes at most 5000 words`})}).strict(),h({child:pi.optional()}).strict(),h({child:pi,discard:t().optional()}).strict(),a([h({child:pi,answers:i(l(),l().min(1))}).strict(),h({child:pi,toOperator:m(!0)}).strict()]);var mi=h({from:u([`parent`,`child`,`glimmervoid`]),at:c().finite(),text:l()}).strict();h({ok:m(!0),channels:p(h({sessionId:l(),name:l(),entries:p(mi),dropped:c().int().nonnegative()}).strict())}).strict(),h({note:l({error:`note must be a string`}).min(1,{error:`note must not be empty`}).max(500,{error:`note must be at most 500 characters`})}).strict(),a([h({ok:m(!0),pending:t()}).strict(),h({ok:m(!1),error:l()}).strict()]),h({id:di.shape.id,name:di.shape.name,agent:di.shape.agent,state:di.shape.state,ephemeral:di.shape.ephemeral}).strict(),h({pr:l({error:`pr must be a string`}).min(1,{error:`pr must not be empty`}).max(300,{error:`pr must be at most 300 characters`})}).strict(),h({command:u([`list`,`get`],{error:`command must be list or get`}),path:l({error:`path must be a string`}).min(1,{error:`path must not be empty`}).max(200,{error:`path must be at most 200 characters`}).optional()}).strict(),a([h({ok:m(!0),text:l(),readout:e()}).strict(),h({ok:m(!1),error:l()}).strict()]);var hi=qe.pick({key:!0,title:!0,url:!0,author:!0});h({ok:m(!0),configured:t(),reason:l().nullable(),reviewing:p(hi.extend({phase:Ze.shape.phase})),queued:p(hi),drafts:p(hi.extend({status:Be.shape.status,verdict:l(),summary:Be.shape.summary,comments:c().int().nonnegative(),isOutOfDate:t()}))}).strict(),h({ok:m(!0),configured:t(),prs:p(h({key:b.shape.key,title:b.shape.title,url:b.shape.url,state:b.shape.state,isDraft:b.shape.isDraft,stage:b.shape.stage,reviewDecision:b.shape.reviewDecision,approvals:b.shape.approvals,unresolvedThreads:b.shape.unresolvedThreads,behindBy:b.shape.behindBy,mergeable:b.shape.mergeable,isInMergeQueue:b.shape.isInMergeQueue,checks:b.shape.checks.pick({state:!0,failing:!0})}).strict())}).strict();var gi=4096;h({path:l({error:`path must be a string`}).min(1,{error:`path must not be empty`}).max(gi,{error:`path must be at most ${gi} characters`})}).strict();var _i=h({path:l(),name:l(),surfacedAt:c().finite()}).strict();h({commands:p(h({name:u(fi),answers:t(),reason:l().optional()}).strict()),guarded:t(),boundary:u([`os-sandbox`,`workspace`,`none`]),environment:h({name:l(),workspace:l(),state:l()}).strict().nullable(),deadEnds:p(h({blocked:l(),route:l()}).strict())}).strict().extend({ok:m(!0)}).strict();var vi=4e3,k=h({ts:c().finite(),uuid:l().nullable(),parentUuid:l().nullable(),vendorSessionId:l().min(1),agentId:l().min(1).optional(),agentType:l().min(1).optional(),transcriptOffset:c().int().nonnegative().optional(),truncated:t().optional()}),yi=d(`kind`,[k.extend({kind:m(`prompt`),text:l()}),k.extend({kind:m(`expansion`),text:l(),toolUseId:l().min(1).optional()}),k.extend({kind:m(`thinking`),text:l()}),k.extend({kind:m(`assistant`),text:l()}),k.extend({kind:m(`tool_call`),toolUseId:l().min(1),name:l().min(1),input:e()}),k.extend({kind:m(`tool_result`),toolUseId:l().min(1),content:l(),isError:t(),truncated:t()}),k.extend({kind:m(`session`),vendor:l().min(1),transcriptPath:l().min(1),reason:l().min(1).optional()}),k.extend({kind:m(`notice`),text:l().max(vi)}),k.extend({kind:m(`raw`),line:l().max(vi)})]);h({transcriptPath:l().min(1),vendorSessionId:l().min(1),offset:c().int().nonnegative(),ingestedSubagentPaths:p(l().min(1)),offsetByTranscriptPath:i(l().min(1),c().int().nonnegative()).default({}),subagentOffsetByPath:i(l().min(1),c().int().nonnegative()).default({})});var bi=l().max(16384),xi=p(bi).max(4096),Si=h({model:bi.nullable(),mcpServers:xi,plugins:p(h({name:bi,skills:xi,agents:xi})).max(4096),skills:xi,agents:xi,hookEvents:p(h({event:bi,runCount:c().int().nonnegative()})).max(4096),hookCommands:p(l().max(65536)).max(4096)}),Ci=u([`release`,`main`]),wi=u([`idle`,`running`,`staged`,`succeeded`,`failed`,`discarded`,`interrupted`]),Ti=u([`fetch`,`stage`,`install`,`link-deps`,`build`]),Ei=u([`pending`,`running`,`succeeded`,`failed`]),Di=h({id:Ti,status:Ei,startedAt:c().finite().nullable(),finishedAt:c().finite().nullable(),outputTail:p(l())}).strict(),Oi=h({state:wi,fromSha:l().nullable(),toSha:l().nullable(),toVersion:l().nullable(),channel:Ci,steps:p(Di),activeStep:Ti.nullable(),reason:l().nullable(),startedAt:c().finite().nullable(),finishedAt:c().finite().nullable(),failedAtHandOff:t().optional()}).strict(),ki=Oi.pick({state:!0,activeStep:!0,reason:!0,startedAt:!0,finishedAt:!0}),Ai=/^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$/,ji=/^[A-Za-z_][A-Za-z0-9_]*$/,Mi=l().regex(/^[^/\s]+\/[^/\s]+$/),A=c().finite(),j=l().min(1),Ni=Object.freeze([`CLAUDE_CODE_OAUTH_TOKEN`]),M=l().regex(Ai);function Pi(e){return new Set(e.map(e=>e.id)).size===e.length}var Fi=d(`kind`,[f({kind:m(`manual`)}),f({kind:m(`github-merged-prs`),repo:Mi,minBodies:c().int().min(1),limit:c().int().min(1).max(500)})]),Ii=d(`kind`,[f({kind:m(`none`)}),f({kind:m(`pr-checkout`)})]),Li=u([`review-findings`,`json`]),Ri=f({promptTemplate:j,output:Li,timeoutSeconds:c().int().min(30).max(14400)}),zi=f({id:M,env:i(l().regex(ji),l()).refine(e=>Ni.every(t=>!Object.hasOwn(e,t)),{message:`arm env must not set ${Ni.join(`, `)}; Glimmervoid injects it per cell`}).optional(),extraArgs:p(l()).optional(),setup:f({command:p(j).min(1)}).optional()}),Bi=d(`kind`,[f({kind:m(`llm-judge-match`),model:j})]);f({id:M,title:j,caseSource:Fi,workspace:Ii,subject:Ri,arms:p(zi).min(2).refine(Pi,{message:`arm ids must be unique`}),baselineArm:M,trials:c().int().min(1).max(20),scorer:Bi}).refine(e=>e.arms.some(t=>t.id===e.baselineArm),{message:`baselineArm must name one of the arms`,path:[`baselineArm`]});var Vi=f({id:M,text:j,tags:p(M),path:j.optional(),line:c().int().positive().optional()}),Hi=d(`kind`,[f({kind:m(`manual`)}),f({kind:m(`github-pr`),repo:Mi,number:c().int().positive(),url:j,minedAt:A})]);f({id:M,input:i(l(),e()),references:p(Vi).min(1).refine(Pi,{message:`reference ids must be unique`}),source:Hi}),h({repo:Mi,number:c().int().positive(),reviewedSha:_,baseSha:_,changedFiles:p(j)});var Ui=u([`found`,`partial`,`missed`]),Wi=f({referenceId:M,verdict:Ui,findingIndexes:p(c().int().nonnegative())}),Gi=u([`scored`,`invalid`,`error`]),Ki=f({caseId:M,armId:M,trial:c().int().min(1),status:Gi,startedAt:A,finishedAt:A,degradedReasons:p(j),findingCount:c().int().nonnegative(),judgements:p(Wi),costUsd:c().finite().nonnegative().nullable(),error:j.nullable()}),qi=u([`running`,`completed`,`interrupted`,`failed`]);f({id:M,suiteId:M,status:qi,startedAt:A,finishedAt:A.nullable(),error:j.nullable(),cells:p(Ki)});var Ji=c().min(0).max(1).nullable(),Yi=f({trials:c().int().nonnegative(),recall:Ji,recallByTag:i(M,Ji),degraded:c().int().nonnegative(),invalid:c().int().nonnegative(),costUsd:c().finite().nonnegative().nullable()}),Xi=f({caseId:M,arms:i(M,Yi),deltaVsBaseline:i(M,c().min(-1).max(1).nullable())}),Zi=f({runId:M,suiteId:M,status:qi,baselineArm:M,armIds:p(M),rows:p(Xi),totals:i(M,Yi)}),Qi=u([`mine`,`run`,`cancel`]),$i=h({suiteId:M,action:Qi}),ea=h({suiteId:M,action:Qi,ok:t(),error:l().optional(),runId:M.optional()}),ta=u([`setup`,`preflight`,`workspace`,`subject`,`judge`]),na=h({suiteId:M,runId:M,caseId:M.nullable(),armId:M,trial:c().int().min(1),phase:ta,cellIndex:c().int().nonnegative(),cellCount:c().int().positive(),startedAt:A}),ra=h({id:M,title:l(),error:l().nullable(),caseCount:c().int().nonnegative(),candidateCount:c().int().nonnegative(),armIds:p(M),baselineArm:M.nullable(),latestReport:Zi.nullable()}),ia=h({type:m(`benchmark-status`),ts:A,configured:t(),reason:l().nullable(),suites:p(ra),inFlight:na.nullable()}).passthrough(),aa=h({__typename:l(),login:l()}).nullable();h({number:c().int().positive(),title:l(),url:j,mergedAt:l().nullable(),reviewThreads:h({totalCount:c().int().nonnegative()}),reviews:h({totalCount:c().int().nonnegative()})});var oa=h({path:l(),line:c().int().positive().nullable(),originalLine:c().int().positive().nullable(),comments:h({nodes:p(h({databaseId:c().int().positive(),author:aa,body:l(),createdAt:l(),originalCommit:h({oid:_}).nullable()}))})}),sa=h({databaseId:c().int().positive(),author:aa,body:l(),submittedAt:l().nullable(),commit:h({oid:_}).nullable()}),ca=d(`__typename`,[h({__typename:m(`BaseRefChangedEvent`),createdAt:l()}),h({__typename:m(`BaseRefForcePushedEvent`),createdAt:l(),beforeCommit:h({oid:_}).nullable()})]);h({author:aa,baseRefOid:_,reviewThreads:h({pageInfo:h({hasNextPage:t()}),nodes:p(oa)}),reviews:h({pageInfo:h({hasNextPage:t()}),nodes:p(sa)}),timelineItems:h({pageInfo:h({hasNextPage:t()}),nodes:p(ca)})}),h({mergeBaseSha:_,changedFiles:p(j),isFileListComplete:t()});var la=4e3,N=l().nullable().optional(),P=l(),ua=h({path:l(),reason:l()}).strict(),da=ct.shape.unlinkedKeys.unwrap().element,fa=/^https:\/\/github\.com\/([^/\s]+\/[^/\s]+)\/pull\/([0-9]+)(?:[/?#].*)?$/i;function pa(e){let t=e.trim(),n=fa.exec(t),r=n?`${n[1]}#${n[2]}`:t,i=da.safeParse(r);return i.success?i.data:null}function F(e,t){return n({type:m(e),...t})}function I(e={}){return n(e)}var L=l().nullable(),R=c().finite(),ma=R.optional(),z=L.optional(),B=I(),ha=p(e()),ga=c().int().positive(),_a=l().min(1).max(gi),va=p(a([I({at:R,tool:l(),detail:l()}),I({at:R,note:l()})]));h({id:l(),label:l(),command:l(),args:p(l()),resolvable:t().nullable()}).strict();var ya=h({name:l(),template:l(),parameters:i(l(),l()),hourlyCostUsd:c().nullable(),idleStopMinutes:c()}),ba=p(ya).nullable(),xa=u([`claude-code`,`codex`]),Sa=h({agent:xa,state:u([`signed-in`,`signed-out`,`connecting`,`failed`]),source:u([`host`,`glimmervoid`]).nullable(),verificationUrl:l().nullable(),userCode:l().nullable(),needsPastedCode:t(),reason:l().nullable()}).strict(),Ca=p(Sa),wa=h({setupWarning:L,lastFailure:h({message:l(),failedAt:R}).nullable()}),Ta=h({id:P,session:l(),taskTitle:Zr.nullable().optional(),taskTitleIsCustom:t().optional(),path:l(),agent:l(),state:Qr,stateSince:R,skipPerms:t(),saneYolo:t(),worktree:t(),workspace:t().optional(),remoteWorkspace:l().optional(),guarded:t().optional(),guardrailsReleased:t().optional(),resumeSessionId:L,ephemeral:t().optional(),ownerId:P.optional(),linkedPrs:p(st).optional()}),Ea=4096,Da=Ea+2*(rr+tr+80*nr),Oa=h({reason:l(),message:l()}),ka=u([`npm-global`,`npx`,`clone`,`unknown`]),Aa={updateAvailable:t(),current:L,latest:L,currentSha:L,latestSha:L,releaseUrl:L,command:l(),flavor:ka,platform:l(),installedBranch:L,upstream:L,isTreeClean:t().nullable(),lastCheckAt:R,channel:Ci,behindCount:c().int().nonnegative().nullable(),reason:L,deprecation:L,journalSummary:ki.nullable(),applyRefusal:Oa.nullable()};h(Aa);var ja=8192,Ma=h({name:l().max(128),stack:l().max(ja)}).strict(),Na=1e3,Pa=h({scope:l().min(1).max(64),text:l().min(1).max(Na)}).strict(),Fa=Object.freeze([`view_shown`,`operator_action`,`onboarding_step`]);Object.freeze([`focus`,`zen`,`prs`,`issues`,`usage`,`radar`,`visions`,`hooks`,`trace`,`benchmarks`,`settings`]),Object.freeze({usage:[`sort`,`range`,`period`,`expand`,`refresh`],issues:[`scope`,`filter`,`search`,`filters-toggle`,`select`,`back`,`go-to-session`,`open-session`,`refresh`],radar:[`report`,`open-session`,`resolve`,`suppress`,`archive-investigation`],onboarding:[`rescan`,`add-root-typed`,`add-root-suggested`,`add-session`],reviews:[`open-session`,`approve`,`approve-only`,`comment`,`discard`,`requeue`,`resolve-thread`,`merge`,`keep-mergeable`,`merge-when-ready`,`refresh`]}),Object.freeze([`agent`,`repo_roots`,`first_session`]),Object.freeze([`current`,`done`]),Object.freeze([`usage`,`issues`,`radar`,`onboarding`,`reviews`]);var Ia=[`kill`,`start-session`,`merge-session`,`finish-session`,`merge-continue-session`,`discard-session-worktree`,`resolve-session-merge`,`request-session-diff`,`request-change-map`,`request-branch-sync`,`resync-branch`,`debug-state`];function La(t){return F(t,{id:P,force:e().optional()})}var Ra=Ia.map(La),za={id:P,force:e().optional(),fresh:e().optional(),conversationId:l().optional()},Ba=[F(`restart`,za),F(`force-restart`,za),F(`add-session`,{name:l(),path:l(),repos:p(l()).optional(),agent:l().optional(),dangerouslySkipPermissions:t().optional(),unguarded:t().optional(),runInPlace:t().optional(),environment:l().optional(),requestId:N}),F(`remove-session`,{id:P,force:e().optional(),discardWork:t().optional(),confirmedKeptPaths:p(l()).optional(),requestId:N}),F(`list-conversations`,{id:P,requestId:N}),F(`resume-conversation`,{id:P,conversationId:l()}),F(`rename-session`,{id:P,newName:l()}),F(`get-workspace-repos`,{id:P,requestId:N}),F(`set-workspace-repos`,{id:P,repos:p(l()),requestId:N}),F(`set-session-title`,{id:P,title:Zr}),F(`link-session-pr`,{id:P,key:da}),F(`unlink-session-pr`,{id:P,key:da}),F(`ping`,{requestId:N}),F(`get-settings`,{requestId:N}),F(`get-agent-logins`,{requestId:N}),F(`start-remote-setup`,{agent:xa,requestId:N}),F(`agent-connect`,{agent:xa,action:u([`start`,`cancel`]),requestId:N}),F(`agent-connect-code`,{agent:xa,code:l(),requestId:N}),F(`update-settings`,{settings:i(l(),e()),requestId:N}),F(`scan-repo-roots`,{requestId:N,includeSuggestions:t().optional()}),F(`list-agents`,{requestId:N,rescan:t().optional()}),F(`get-radar-report`,{issueId:a([l(),c()]),requestId:N}),F(`radar-open-session`,{projectId:a([l(),c()]),issueId:a([l(),c()]),requestId:N}),F(`issue-detail`,{requestId:l().min(1),repo:Gn,issueNumber:c().int().positive()}),F(`open-issue-session`,{requestId:N,projectId:l(),repo:Gn,issueNumber:c().int().positive()}),F(`radar-issue-action`,{projectId:a([l(),c()]),issueId:a([l(),c()]),action:l(),requestId:N}),F(`open-team-review-session`,{requestId:N,key:da}),F(`team-review-action`,{...We.shape,requestId:N}).refine(Ue,{message:`only discard may omit head`,path:[`head`]}),F(`benchmark-action`,{...$i.shape,requestId:N}),F(`my-pr-merge`,{...xt.shape,requestId:N}),F(`my-pr-keep-mergeable`,{...lt.shape,requestId:N}),F(`my-pr-merge-when-ready`,{...ft.shape,requestId:N}),F(`github-polling-refresh`,{...ie.shape,requestId:N}),F(`radar-archive-investigation`,{id:e().optional(),requestId:N}),F(`telegram-test`,{requestId:N}),F(`request-usage-report`,{requestId:N,days:e().optional(),force:e().optional()}),F(`request-hooks-report`,{requestId:N}),F(`save-hook`,{hook:i(l(),e()),requestId:N}),F(`delete-hook`,{id:l(),requestId:N}),F(`shutdown`),F(`restart-server`),F(`focus-change`,{focused:t()}),F(`request-health-snapshot`),F(`request-telemetry-deletion`,{requestId:N}),F(`update-check`),F(`update-apply`),F(`session-trace`,{id:P,requestId:N,after:c().int().nonnegative().default(0),endingAt:a([c().int().nonnegative(),m(`tail`)]).optional()}),F(`session-plan`,{id:P,agentId:L,revision:ga.optional(),draft:t().optional()}),F(`plan-decision`,gr.shape),F(`set-session-conversation-view`,{id:P,isOn:t()}),F(`set-session-guardrails`,{id:P,isOn:t()}),F(`conversation-approval`,{id:P,requestId:ai.shape.requestId,decision:si,answers:oi.optional()}),F(`session-doc-read`,{id:P,path:_a,requestId:N}),F(`session-doc-save`,{id:P,path:_a,text:l(),baseHash:l().min(1),requestId:N}),F(`session-coherence-journal`,{id:P,requestId:N}),F(`session-setup`,{id:P,requestId:N}),F(`client-error`,Ma.shape),F(`client-log`,Pa.shape),F(`dashboard-telemetry`,{event:u(Fa),properties:i(l(),e())}),F(`dismiss`,{id:P,force:e().optional(),expectedState:Qr.optional()}),F(`watch-session-changes`,{id:P.nullable()}),...Ra];d(`type`,Ba),Object.freeze(`snapshot.hooks-report.save-hook-result.add-session-result.start-remote-setup-result.remove-session-result.agent-logins.delete-hook-result.workspace-repos.set-workspace-repos-result.hooks-updated.state-change.session-added.session-removed.session-renamed.session-title.session-prs.session-modified.session-git.session-coherence-hooks.session-agents.session-wakeup.session-prompt.session-conversation.session-merge-status.session-worktree-blocked.session-worktree-warning.session-worktree-ready.session-diff.session-diff-error.change-map.branch-sync-status.session-changed.post-turn-result.debug-state-response.session-trace-response.session-trace-changed.session-plan-changed.session-plan-draft.session-plan-response.session-docs-changed.session-docs-snapshot.session-doc-response.session-doc-save-result.session-coherence.session-coherence-snapshot.session-coherence-journal-response.session-setup-response.notify.update-status.update-progress.post-turn-leftovers.error.session-error.settings.settings-error.settings-updated.pong.agents-listed.repo-roots-scanned.conversations.resume-conversation-ack.health-snapshot.radar-status.radar-investigation-activity.radar-investigation-finished.radar-report.radar-open-session-result.issue-detail-result.open-issue-session-result.open-team-review-session-result.radar-issue-action-result.telemetry-deletion-result.team-review-action-result.benchmark-action-result.my-pr-merge-result.my-pr-keep-mergeable-result.my-pr-merge-when-ready-result.github-polling-refresh-result.radar-archive-investigation-result.team-review-status.benchmark-status.my-prs-status.issues-status.usage-sessions.usage-report.plan-limits.usage-budget-alert.visions-findings.visions-comments.visions-hand.visions-intent.visions-fix.visions-snapshot.ingest-activity.ingest-snapshot.client-trust.shutting-down.restarting`.split(`.`));var Va=[F(`snapshot`,{sessions:p(di),serverBuild:L}),F(`hooks-report`,{requestId:N,ts:ma,hooks:p(B).optional(),builtin:p(B).optional(),events:p(I({name:l(),matcher:L,description:l(),http:t().optional()})).optional(),projects:p(I({id:l(),name:l(),agent:l()})).optional(),limits:I({maxTimeoutSec:c().int().positive()}).optional(),error:z}),F(`save-hook-result`,{requestId:N,ok:t(),error:z,hook:B.optional()}),F(`add-session-result`,{requestId:N,ok:t(),error:z,reason:u([`not-git`]).optional()}),F(`remove-session-result`,{requestId:N,ok:t(),error:z,canDiscardWork:t().optional(),keptPaths:p(ua).optional()}),F(`agent-logins`,{requestId:N,logins:Ca,error:z}),F(`start-remote-setup-result`,{requestId:N,ok:t(),error:z,sessionId:l().optional(),sessionName:l().optional()}),F(`delete-hook-result`,{requestId:N,ok:t(),error:z,id:l().optional()}),F(`workspace-repos`,{requestId:N,id:P,ok:t(),repos:p(l()),error:z}),F(`set-workspace-repos-result`,{requestId:N,id:P,ok:t(),error:z}),F(`hooks-updated`,{count:c().int().nonnegative()}),F(`state-change`,{id:P,session:l(),from:Qr,to:Qr,event:l(),timestamp:R,skipPerms:t().optional(),saneYolo:t().optional(),failureReason:l().optional()}),F(`session-added`,Ta.shape),F(`session-modified`,Ta.shape),F(`session-removed`,{id:P,session:l()}),F(`session-renamed`,{id:P,oldName:l(),newName:l()}),F(`session-title`,{id:P,taskTitle:Zr.nullable(),isCustom:t()}),F(`session-prs`,{id:P,linkedPrs:p(st)}),F(`session-git`,{id:P,worktree:t()}),F(`session-coherence-hooks`,{id:P,coherenceHooks:ui.nullable()}),F(`session-agents`,{id:P,activeAgents:c().int().nonnegative(),awaitingBackgroundTasks:t(),timestamp:R}),F(`session-unseen`,{id:P,unseenOutcome:$r.nullable(),timestamp:R}),F(`session-wakeup`,{id:P,pendingWakeup:ei.nullable(),timestamp:R}),F(`session-prompt`,{isCompacting:t().optional(),id:P,pendingPromptKind:L,timestamp:R}),F(`session-conversation`,{id:P,hasConversationBridge:t(),isConversationViewOn:t(),conversationApproval:ai.nullable()}),F(`session-merge-status`,{id:P,mergeStatus:l(),reason:L,parked:t(),timestamp:R}),F(`session-worktree-blocked`,{id:P,session:l(),branch:L,notice:L,timestamp:R}),F(`session-worktree-warning`,{id:P,session:l(),branch:L,notice:L,timestamp:R}),F(`session-worktree-ready`,{id:P,session:l(),branch:L,base:L,timestamp:R}),F(`session-diff`,{id:P,committed:I({stat:l(),diff:l()}),uncommitted:I({stat:l(),diff:l()}),hasCommits:t()}),F(`session-diff-error`,{id:P,message:l()}),F(`change-map`,{id:P,map:Fr}),F(`branch-sync-status`,{id:P,branch:L,upstream:L,state:l(),ahead:c().int().nonnegative(),behind:c().int().nonnegative(),fetched:t().nullable(),action:l().optional(),error:z}),F(`session-changed`,{id:P}),F(`post-turn-result`,{id:P,mode:l(),skipped:L,filesFixed:c().int().nonnegative(),findings:p(I({file:l(),rule:l(),count:c().int().nonnegative()})),timestamp:R}),F(`debug-state-response`,{id:P,payload:B}),F(`session-trace-response`,{id:P,requestId:N,records:p(yi),start:c().int().nonnegative(),next:c().int().nonnegative(),reset:t(),path:l()}),F(`session-trace-changed`,{id:P}),F(`session-plan-changed`,xr.shape),F(`session-plan-draft`,Sr.shape),F(`session-plan-response`,Cr.shape),F(`session-docs-changed`,{id:P,docs:p(_i)}),F(`session-docs-snapshot`,{sessions:i(l(),p(_i))}),F(`session-doc-response`,{requestId:N,id:P,path:l(),ok:t(),text:l().optional(),hash:l().optional(),error:z}),F(`session-doc-save-result`,{requestId:N,id:P,path:l(),ok:t(),hash:l().optional(),conflict:t().optional(),error:z}),F(`session-coherence`,{id:P,...Ur.shape}),F(`session-coherence-snapshot`,{sessions:i(l(),Ur)}),F(`session-coherence-journal-response`,{requestId:N,id:P,ok:t(),entries:p(Vr).max(200),error:z}),F(`session-setup-response`,{requestId:N,id:P,ok:t(),setup:Si.optional(),error:z}),F(`notify`,{session:l(),category:l(),message:l(),escalationCount:c().int().nonnegative(),kind:m(`plan`).optional()}),F(`update-status`,Aa),F(`update-progress`,{journal:Oi}),F(`post-turn-leftovers`,{repositories:p(l()),command:l()}),F(`error`,{id:P.optional(),message:l(),requestId:N,scope:l().optional()}),F(`session-error`,{id:P.optional(),session:l(),message:l(),scope:l().optional()}),F(`settings`,{settings:B,requestId:N}),F(`settings-error`,{message:l(),requestId:N}),F(`settings-updated`,{settings:B,requestId:N}),F(`pong`,{requestId:N}),F(`agents-listed`,{requestId:N,agents:p(I({id:l(),label:l(),resolvable:t()}))}),F(`repo-roots-scanned`,{requestId:N,directories:p(I({root:l(),projects:p(I({name:l(),path:l(),isGit:t().optional()}))})),suggestions:p(I({path:l(),label:l(),gitRepoCount:c().int().nonnegative()})).optional(),error:l().optional()}),F(`conversations`,{requestId:N,id:L,current:L.optional(),conversations:p(I({id:l(),title:l(),cwd:l(),worktreePath:l(),worktreeName:l(),gitBranch:L,mtime:R})),error:l().optional()}),F(`resume-conversation-ack`,{id:P.optional(),resumeSessionId:L.optional(),ok:t(),error:l().optional(),requestId:N}),F(`health-snapshot`,{stats:B}),F(`radar-status`,{ts:R,intervalMinutes:c(),projects:p(B),investigations:p(B)}),F(`radar-investigation-activity`,{projectId:a([l(),c()]),issueId:l(),inFlight:m(!0),startedAt:R.nullable(),trail:va}),F(`radar-investigation-finished`,{projectId:a([l(),c()]),issueId:l(),verdict:l(),summaryLine:L,startedAt:R.nullable(),trail:va}),F(`radar-report`,{requestId:N,ok:t(),found:t(),issueId:L,format:l().optional(),content:l().optional(),message:l().optional(),error:l().optional()}),F(`radar-open-session-result`,{requestId:N,ok:t(),error:z,sessionId:l().optional(),sessionName:l().optional(),pending:t().optional()}),F(`issue-detail-result`,{requestId:l().min(1),ok:t(),body:l().nullable(),error:l().nullable()}),F(`open-issue-session-result`,{requestId:N,ok:t(),error:z,sessionId:l().optional(),sessionName:l().optional(),pending:t().optional(),existing:t().optional()}),F(`open-team-review-session-result`,{requestId:N,ok:t(),error:z,key:da.optional(),sessionId:l().optional(),sessionName:l().optional(),pending:t().optional(),existing:t().optional()}),F(`radar-issue-action-result`,{requestId:N,ok:t(),error:z,status:L.optional()}),F(`team-review-action-result`,{...Ge.shape,requestId:N}),F(`telemetry-deletion-result`,{requestId:N,ok:t()}),F(`benchmark-action-result`,{...ea.shape,requestId:N}),F(`my-pr-merge-result`,{...Ct.shape,requestId:N}),F(`my-pr-keep-mergeable-result`,{...dt.shape,requestId:N}),F(`my-pr-merge-when-ready-result`,{...pt.shape,requestId:N}),F(`github-polling-refresh-result`,{...ae.shape,requestId:N}),F(`radar-archive-investigation-result`,{requestId:N,ok:t(),error:z}),F(`telegram-test-result`,{requestId:N,ok:t(),error:z,telegramDelivery:wa.nullable()}),Qe,ia,bt,Wn,er,F(`usage-sessions`,{ts:R,pricingSource:L,sessions:p(I({id:P,tokens:c(),costUSD:c(),officialCostUSD:c().nullable().optional()}))}),F(`usage-report`,{requestId:N,ts:ma,tz:l().optional(),blockHours:c().optional(),totals:B.optional(),daily:ha.optional(),models:ha.optional(),sessions:ha.optional(),blocks:ha.optional(),activeBlock:e().nullable().optional(),anomaly:e().nullable().optional(),byLane:e().optional(),planWindowLanes:e().nullable().optional(),budget:e().optional(),savings:e().optional(),tokenLimit:e().nullable().optional(),pricing:B.optional(),scan:B.optional(),warning:z,error:z}),F(`plan-limits`,{ts:R,fiveHour:e().nullable(),sevenDay:e().nullable(),source:l(),vendor:u([`claude`,`codex`]).optional()}),F(`usage-budget-alert`,{scope:l(),periodKey:l(),threshold:c(),text:l(),ts:R}),F(`visions-findings`,{uri:l(),diagnostics:ha,ts:R}),F(`visions-comments`,{uri:l(),comments:ha,ts:R}),F(`visions-hand`,{uri:l(),hand:L,ts:R}),F(`visions-intent`,{projectId:L,intent:B,ts:R}),F(`visions-fix`,{uri:l(),fix:B,ts:R}),F(`visions-snapshot`,{documents:p(B),intent:B,fixes:p(B),ts:R}),F(`ingest-activity`,{events:p(B),overflow:c().int().nonnegative(),ts:R}),F(`ingest-snapshot`,{events:p(B),sources:e(),ts:R}),F(`client-trust`,{trust:u([`local`,`remote`])}),F(`shutting-down`),F(`restarting`)],Ha=d(`type`,Va),Ua=32,Wa=/^\s*at .+:\d+:\d+\)?$|^[^@\s]*@.+:\d+:\d+$/;function Ga(e){let t=e.stack??``,n=String(e);return(t.startsWith(n)?t.slice(n.length):t).split(`
2
+ `).filter(e=>Wa.test(e)).join(`
3
+ `)}function Ka(e){return e==null?null:e instanceof Error?{name:(e.name||`Error`).slice(0,128),stack:Ga(e).slice(0,ja)}:{name:`NonError`,stack:``}}function qa(e,t){let n=new Set;return(r,i)=>{n.has(r)||n.size>=t||e(i)&&n.add(r)}}function Ja(e){let t=qa(e,Ua);return e=>{let n=Ka(e);n&&t(`${n.name}\n${n.stack}`,{type:`client-error`,...n})}}function Ya(e){if(!(e instanceof Error))return`${typeof e}: ${String(e)}`;let t=Ga(e).split(`
4
+ `)[0]?.trim()??``;return[`${e.name||`Error`}: ${e.message}`,t].filter(Boolean).join(` `)}function Xa(e){return e.slice(0,5).map(e=>`${e.path.map(String).join(`.`)||`(root)`}: ${e.message}`).join(`; `)}function Za(e){return typeof e!=`object`||!e||!(`type`in e)?`(untyped)`:String(e.type)}function Qa(e){let t=qa(e,Ua);return(e,n)=>{let r={scope:e.slice(0,64),text:n.slice(0,Na)};t(`${r.scope}\n${r.text}`,{type:`client-log`,...r})}}var $a=6e4,eo=18e5,to=20;function no({attempt:e=1,baseMs:t=$a,maxMs:n=eo,retryAfterMs:r=null,random:i=Math.random,jitter:a=`full`}={}){if(typeof r==`number`&&Number.isFinite(r)&&r>0)return Math.min(r,n);let o=Math.max(0,Math.min(e,to)-1),s=Math.min(n,t*2**o);return a===`none`?s:Math.round(a===`half`?s*(.5+.5*i()):i()*s)}var ro=500,io=3e4;function ao(e,t=Math.random){return no({attempt:(typeof e==`number`&&Number.isFinite(e)&&e>0?Math.floor(e):0)+1,baseMs:ro,maxMs:io,random:t,jitter:`half`})}var oo=0,so=1,co=1e4;function lo({hasSocket:e,readyState:t,retryPending:n,connectingAgeMs:r=0}){return n?`retry-now`:e?t===oo?r>co?`connect`:`wait`:t===so?`probe`:`connect`:`connect`}function uo(e){return e===`https:`?`wss:`:`ws:`}function fo(e,t){return`${uo(e?.protocol)}//${e.host}${t}`}var V=``,po=null;function mo(){return V}function ho(){return V?Promise.resolve(V):po||(po=fetch(`/control-token`,{credentials:`same-origin`,cache:`no-store`}).then(e=>e.ok?e.json():null).then(e=>{let t=e?.token;return V=typeof t==`string`?t:``,V}).catch(()=>``).finally(()=>{po=null}),po)}function go(){V=``}function _o(e){return V?`${e}${e.includes(`?`)?`&`:`?`}token=${encodeURIComponent(V)}`:e}function H(e,t){return typeof e==`string`&&e.trim()?e.trim():t}function U(e,t){return typeof e==`number`&&Number.isFinite(e)?e:t}var W=60,vo=3600,yo=24,bo=1024,xo=bo*1024,So=xo*1024,Co={compact:{second:e=>`${e}s`,minute:e=>`${e}m`,hour:e=>`${e}h`,day:e=>`${e}d`},abbreviated:{second:e=>`${e} sec`,minute:e=>`${e} min`,hour:e=>`${e} hr`,day:e=>`${e} ${e===1?`day`:`days`}`},spelled:{second:e=>`${e} ${e===1?`second`:`seconds`}`,minute:e=>`${e} ${e===1?`minute`:`minutes`}`,hour:e=>`${e} ${e===1?`hour`:`hours`}`,day:e=>`${e} ${e===1?`day`:`days`}`}},wo={rounding:`floor`,wording:`compact`,suffix:` ago`,justNowBelowSeconds:0};function To(e){return String(e).padStart(2,`0`)}function Eo(e,t){return Math.max(0,Math[t](e/1e3))}function Do(e,t){let n=Co[t];if(e<W)return n.second(e);let r=Math.floor(e/W);if(r<60)return n.minute(r);let i=Math.floor(r/60);return i<yo?n.hour(i):n.day(Math.floor(i/yo))}function Oo(e,t){let n=Eo(e,t.rounding);return n<t.justNowBelowSeconds?`just now`:`${Do(n,t.wording)}${t.suffix}`}function ko(e,{smallestUnit:t,dropsZeroRemainder:n}){let r=(e,t,r)=>n&&t===0?e:`${e} ${t}${r}`;if(t===`s`&&e<W)return`${e}s`;if(t===`s`&&e<vo)return r(`${Math.floor(e/W)}m`,e%W,`s`);let i=Math.floor(e/W);return i<60?`${i}m`:r(`${Math.floor(i/60)}h`,i%60,`m`)}function Ao(e,{rounding:t,showsHours:n}){let r=Eo(e,t),i=To(r%W),a=Math.floor(r/W),o=Math.floor(r/vo);return!n||o===0?`${a}:${i}`:`${o}:${To(a%60)}:${i}`}function jo(e,t){return e<bo?`${e} B`:t===`KB`||e<xo?`${(e/bo).toFixed(1)} KB`:e<So?`${(e/xo).toFixed(1)} MB`:`${(e/So).toFixed(2)} GB`}function Mo(e){let t=new Date(e);return`${t.getFullYear()}-${To(t.getMonth()+1)}-${To(t.getDate())}`}function No(e){return`${To(e.getHours())}:${To(e.getMinutes())}`}function Po(e){return e.toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`,second:`2-digit`})}function Fo(e){let t=(Array.isArray(e)?e:[]).filter(e=>typeof e==`string`&&e!==``);return[...new Set(t)].sort().join(`|`)}function Io(e,t){let n=typeof e==`string`?e:``,r=typeof t==`string`?t:``;return n===``?{shown:!1,acknowledged:``}:{shown:n!==r,acknowledged:r}}function Lo({getAck:e,setAck:t,signature:n,isLooking:r}){let i=e(),a=e=>{e!==i&&(i=e,t(e))};return{refresh(){let e=n(),t=Io(e,r()?e:i);return a(t.acknowledged),t.shown},acknowledge(){a(n())}}}function Ro(e,{label:t}){if(!e)return`Waiting for ${t} status from the server.`;let n=typeof e.reason==`string`?e.reason.trim():``;return e.configured===!1&&n?`${t} is misconfigured: ${n}.`:e.configured===!1?`${t} is off.`:`${t} is on. Waiting for the first poll.`}var zo=`machine-updates`,Bo=`update-actions`,Vo={spiking:0,regressed:1,worsened:2,new:3,quiet:4},Ho={spiking:`crit`,regressed:`crit`,worsened:`warn`,new:`warn`,quiet:`dim`},Uo=99,Wo={ROOT_CAUSE:`root cause`,NEEDS_HUMAN:`needs you`,TRANSIENT:`transient`,FIXED:`fixed`,ERROR:`error`};function Go(e){return Array.isArray(e)?e.flatMap(e=>{let t=e,n=U(t?.at,0),r=H(t?.note,``);if(r)return[{at:n,note:r}];let i=H(t?.tool,``);return i?[{at:n,tool:i,detail:H(t?.detail,``)}]:[]}):[]}function Ko(e){return e.filter(e=>`tool`in e)}function qo(e){return e.detail?`${e.tool} ${e.detail}`:e.tool}function Jo(e){let t=Go(e?.trail),n=t.findLast(e=>`note`in e);if(n)return n.note;let r=Ko(t).at(-1);return r?qo(r):``}function Yo(e){let t=[];for(let n of e){if(`note`in n){t.push({kind:`note`,at:n.at,text:n.note});continue}let e=t.at(-1);e?.kind===`work`?e.stepCount+=1:t.push({kind:`work`,at:n.at,stepCount:1})}return t}function Xo(e){let t=H(e?.summaryLine,``);return e?.inFlight===!0&&Jo(e)||t}function Zo(e){return{inFlight:e?.inFlight===!0,startedAt:U(e?.startedAt,null),steps:Go(e?.trail),verdict:H(e?.verdict,``),summaryLine:H(e?.summaryLine,``)}}function Qo(e,t,n){let r=String(t??``),i=String(n??``);if(!r||!i)return null;for(let t of Array.isArray(e?.projects)?e.projects:[])if(String(t?.projectId??``)===r){for(let e of Array.isArray(t.issues)?t.issues:[])if(String(e?.issueId??``)===i)return e}return null}function $o(e,t){let n=Qo(e,t?.projectId,t?.issueId);return n?(n.inFlight=!0,n.startedAt=U(t?.startedAt,null),n.trail=Go(t?.trail),!0):!1}function es(e){return{inFlight:!1,startedAt:U(e?.startedAt,null),steps:Go(e?.trail),verdict:H(e?.verdict,``),summaryLine:H(e?.summaryLine,``)}}function ts(e,t){return!e||!t?!1:String(t.projectId??``)===e.projectId&&String(t.issueId??``)===e.issueId}function ns(e,t){let n=Qo(e,t?.projectId,t?.issueId);if(!n)return!1;let r=es(t);return n.inFlight=!1,n.startedAt=r.startedAt,n.trail=r.steps,n.verdict=r.verdict,n.summaryLine=r.summaryLine,!0}function rs(e){return Wo[typeof e==`string`?e.toUpperCase():``]||String(e??``).toLowerCase()}function is(e){return Ao(e,{rounding:`round`,showsHours:!1})}function as(e,t){return e==null?``:`+${is(t-e)}`}function os(e){let t=e.steps.at(-1),n=t&&`tool`in t?t.tool:t?.note??``;return[e.steps.length,t?.at??0,n].join(`::`)}function ss(e,t){if(e.inFlight){let n=Ko(e.steps).length,r=`${n} ${n===1?`step`:`steps`}`;return`investigating, ${e.startedAt?`started ${t}`:`starting`}, ${r}`}return e.verdict?`finished: ${rs(e.verdict)}`:`finished`}function cs(e){return Ro(e,{label:`PostHog monitoring`})}function ls(e){return U(e.intervalMinutes,null)!==null}function us(e,t){return e==null||e.configured===!1?`placeholder`:t>0?`ready`:ls(e)?`placeholder`:`pending`}function ds(e){return Ho[e??``]||`dim`}function fs(e){if(typeof e?.lastSeen!=`string`)return null;let t=Date.parse(e.lastSeen);return!Number.isFinite(t)||t<=0?null:t}function ps(e){let t=H(e?.status,``).trim().toLowerCase();return!t||t===`active`?``:t}function ms(e){return Array.isArray(e)?e.map(e=>Number(e)).filter(e=>Number.isFinite(e)):[]}function hs(e){return Array.isArray(e)?e.map(e=>typeof e==`number`?e:Number(e?.occurrences)).filter(e=>Number.isFinite(e)):[]}function gs(e,t=64,n=16){let r=ms(e);if(r.length<2)return``;let i=Math.max(...r),a=Math.min(...r),o=t/(r.length-1),s=n/2,c=i-a;return r.map((e,t)=>{let r=t*o,i=c===0?s:n-(e-a)/c*n;return`${Number(r.toFixed(2))},${Number(i.toFixed(2))}`}).join(` `)}function _s(e){if(e.length<4)return null;let t=Math.floor(e.length/2),n=e.slice(0,t).reduce((e,t)=>e+t,0);if(n===0)return null;let r=e.slice(-t).reduce((e,t)=>e+t,0),i=Math.round(Math.abs(r-n)/Math.abs(n)*100);return r>n?{direction:`up`,percent:i}:r<n?{direction:`down`,percent:i}:{direction:`flat`,percent:i}}function vs(e){return e.length===0?`0 polls, 0 to 0 occurrences`:`${e.length} polls, ${Math.min(...e)} to ${Math.max(...e)} occurrences`}function ys(e){let t=Array.isArray(e)?e:[],n=0,r=0;for(let e of t)e?.change===`spiking`&&(n+=1),e?.verdict===`NEEDS_HUMAN`&&(r+=1);return{active:t.length,spiking:n,needsHuman:r}}var bs=3e5;function xs(e){let t=Number(e);return!Number.isFinite(t)||t<=0?bs:t*2}function Ss(e){let t=e.split(/[\\/]+/).filter(Boolean);return t.length===0?``:t[t.length-1]}function Cs(e){let t=Ss(H(e?.name,``));if(t)return t;let n=e?.projectId;return n==null||n===``?`project`:String(n)}function ws(e){let t=H(e,``);return t?(t.replace(/^[a-z][a-z0-9+.-]*:\/\//i,``).split(`/`)[0].split(`@`).pop()??``).replace(/:\d+$/,``):``}function Ts(e){let t=new Set,n=Array.isArray(e)?e:[];for(let e of n){let n=ws(e?.host);n&&t.add(n)}return t.size>1}function Es(e,t,n={}){let r=ys(e?.issues),i=H(e?.error,``).slice(0,200),a=Number(t),o=Number(e?.lastTickAt),s=Number.isFinite(a)&&Number.isFinite(o)&&o>0?a-o:0,c=s>xs(n.intervalMs)?s:0;return{loud:r.active>0||r.spiking>0||!!i||c>0,counts:r,error:i,staleMs:c}}function Ds(e,t,n={}){let r=[],i=[],a=Array.isArray(e)?e:[];for(let e of a){let a=Es(e,t,n),o={project:e,...a};a.loud?r.push(o):i.push(o)}return{loud:r,quiet:i}}function Os(e,t=null){return(Array.isArray(e?.investigations)?e.investigations:[]).filter(e=>typeof e==`object`&&!!e).filter(e=>typeof e.id==`string`&&e.id!==``).filter(e=>e.archived!==!0).filter(e=>!t?.has(e.id)).map(e=>({id:e.id,issueId:H(e.issueId,``),projectId:e.projectId??null,projectLabel:H(e.projectName,``),title:H(e.title,`Untitled issue`),summaryLine:H(e.summaryLine,``),url:H(e.url,``),verdict:H(e.verdict,`ERROR`).toUpperCase(),mode:H(e.mode,`investigate`),prUrl:/^https:\/\/[^\s"'<>]{1,300}$/.test(H(e.prUrl,``))?H(e.prUrl,``):``,at:Number.isFinite(Number(e.at))?Number(e.at):0})).sort((e,t)=>t.at-e.at)}function ks(e,t){if(!t||t.size===0)return t;let n=Array.isArray(e?.investigations)?e.investigations:[],r=new Set;for(let e of n){if(typeof e!=`object`||!e)continue;let{id:t}=e;typeof t==`string`&&r.add(t)}for(let e of[...t])r.has(e)||t.delete(e);return t}function G(e,t){let n=H(e,``);if(n)return/^\d/.test(n)?`v${n}`:n;let r=pe(t,{validate:!0});return r?`commit ${r}`:``}function As(e){return`Update available: ${G(e?.current,e?.currentSha)} to ${G(e?.latest,e?.latestSha)}`}function js({posthog:e}={}){let t=[],n=Array.isArray(e?.projects)?e.projects:[];for(let e of n){let n=H(e?.projectId,H(e?.name,`project`)),r=Array.isArray(e?.issues)?e.issues:[];for(let e=0;e<r.length;e++){let i=r[e],a=H(i?.issueId,H(i?.title,`#${e}`));i?.change===`spiking`&&t.push(`issue:${n}/${a}:spiking`),i?.verdict===`NEEDS_HUMAN`&&t.push(`issue:${n}/${a}:needs-human`)}}return t}function Ms(e={}){return Fo(js(e))}function Ns(e){return Vo[e??``]??Uo}function Ps(e){return Array.isArray(e)?e.map((e,t)=>({issue:e,index:t})).sort((e,t)=>{let n=Ns(e.issue?.change)-Ns(t.issue?.change);if(n!==0)return n;let r=U(t.issue?.users,0)-U(e.issue?.users,0);if(r!==0)return r;let i=U(t.issue?.occurrences,0)-U(e.issue?.occurrences,0);return i===0?e.index-t.index:i}).map(e=>e.issue):[]}var Fs=Object.freeze({fetch:`Fetch`,stage:`Stage`,install:`Install dependencies`,"link-deps":`Link dependencies`,build:`Build`}),Is=Object.freeze({"branch-count-unavailable":`The last check could not compare the checked-out branch with its upstream.`,"branch-diverged":`The checked-out branch has diverged from its upstream.`,"fetch-failed":`The last update check could not fetch the upstream branch.`,"main-channel-requires-clone":`The main channel requires a clone install.`,"no-branch":`The last update check found no checked-out branch.`,"no-upstream":`The checked-out branch has no upstream.`,"release-check-failed":`The last release check failed.`,"remote-tip-unavailable":`The last update check could not resolve the upstream branch tip.`,"update-check-failed":`The last update check failed.`}),Ls=Object.freeze([`unsupported-flavor`,`unsupported-platform`]),Rs=`Not connected to the server. Reconnecting.`,zs=Object.freeze({requested:!1,failure:null});function Bs(e){return e.replace(/^\[[^\]]+\]\s*/,``)}function Vs(e,t,n=null){return t===`request-sent`?{requested:!0,failure:null}:t===`request-unsent`?{requested:!1,failure:Rs}:t===`progress-frame`?zs:t===`error-frame`?e.requested?{requested:!1,failure:n}:e:e.failure===null?e:{requested:e.requested,failure:null}}function Hs(e,t){return t?.state?t.state:e?.journalSummary?.state}function K(e,t=null,n=null){return{actions:e,note:t,command:n}}function Us(e){let t=e?.applyRefusal;return t?Ls.includes(t.reason):!1}function Ws({status:e,journal:t,request:n=zs}){if(n.failure===`Not connected to the server. Reconnecting.`)return K([],Rs);let r=Gs(Hs(e,t),e,n.requested);return n.failure?{...r,note:n.failure}:r}function Gs(e,t,n){if(e===`running`||n)return K([]);if(e===`staged`||Ks(t))return K([`restart`]);if(!t?.updateAvailable)return K([`check`]);let r=t.applyRefusal;return r?Us(t)?K([`check`],r.message,H(t.command,null)):K([`check`],r.message):K([`update`])}function Ks(e){return e?.applyRefusal?.reason===`target-already-checked-out`}function qs(e){return e?.journalSummary?.state===`staged`||Ks(e)}function Js(e){return Is[e]??`The last update check failed: ${e}.`}function Ys(e){let t=H(e?.deprecation,null);return t?`Security notice: ${G(e?.current,e?.currentSha)||`This version`} is marked unsafe. ${t}`:null}function Xs(e){let t=G(e?.latest,e?.latestSha)||`A new version`;if(qs(e))return{mode:`restart`,text:`${t} is ready. Restart to update, or it installs on the next start.`};if(e?.journalSummary?.state===`running`)return{mode:`link`,text:`Downloading ${t} in the background.`};let n=As(e);return!e||e.applyRefusal===void 0||Us(e)?{mode:`command`,text:n}:{mode:`link`,text:n}}function Zs(e){let t=Xs(e),n=Ys(e);return n?qs(e)||e?.journalSummary?.state===`running`?{mode:t.mode,tone:`security`,text:`${n} ${t.text}`}:{mode:`command`,tone:`security`,text:n}:{...t,tone:`update`}}function Qs(e){let t=H(e,``);return t?`: ${t}`:``}var $s=new Set([`idle`,`staged`,`succeeded`,`discarded`]);function ec(e){return e.state===`failed`?`Update failed${Qs(e.reason)}.`:e.state===`interrupted`?`Update interrupted${Qs(e.reason)}.`:null}function tc(e){return Fs[e]??e}function nc(e){let t=e.steps.find(t=>t.id===e.activeStep);if(t&&t.outputTail.length>0)return{stepId:t.id,lines:t.outputTail};let n=e.steps.findLast(e=>e.outputTail.length>0);return n?{stepId:n.id,lines:n.outputTail}:{stepId:null,lines:[]}}function rc(e){if(!e||$s.has(e.state))return null;let t=nc(e),n=t.stepId!==null&&t.stepId!==e.activeStep?t.stepId:null;return{state:e.state,terminalLine:ec(e),steps:e.steps.map(e=>({id:e.id,label:tc(e.id),status:e.status})),outputTail:t.lines,outputStepId:t.stepId,outputStepLabel:n===null?null:tc(n)}}var ic=6e5;function ac(e){return e.channel!==`main`||!Number.isInteger(e.behindCount)?``:`${e.behindCount} ${e.behindCount===1?`commit`:`commits`} behind`}function oc(e,t){let n=Hs(e,t),r=G(t?.toVersion,t?.toSha)||G(e?.latest,e?.latestSha)||`the update`;if(n===`running`)return{tone:`running`,headline:`Downloading ${r} in the background. Glimmervoid keeps running.`};if(n===`staged`)return{tone:`staged`,headline:`${r} is ready. Restart to update now, or it installs on the next start.`};if(!e)return{tone:`unknown`,headline:`No update check has run yet.`};let i=Ys(e);if(i)return{tone:`security`,headline:i};if(Ks(e))return{tone:`staged`,headline:`${G(e.latest,e.latestSha)||`The latest release`} is already checked out. Restart to run it.`};if(e.updateAvailable)return{tone:`available`,headline:`Update available.`};let a=H(e.reason,``);return a?{tone:`unknown`,headline:Js(a)}:{tone:`current`,headline:`Up to date.`}}function sc(e){return e?.updateAvailable===!0||Ks(e)}function cc(e){if(!e)return`Update status unavailable.`;let t=G(e.current,null)||`Unknown version`,n=pe(e.currentSha,{validate:!0}),r=H(e.installedBranch,``);return[t,[n?`commit ${n}`:``,r?`on ${r}`:``].filter(Boolean).join(` `),e.isTreeClean===!0?`clean checkout`:e.isTreeClean===!1?`uncommitted local changes`:``].filter(Boolean).join(`, `)}function lc(e){return e?{label:G(e.latest,e.latestSha)||`Latest target unknown`,behind:ac(e),releaseUrl:H(e.releaseUrl,``)}:{label:`Update status unavailable.`,behind:``,releaseUrl:``}}function uc({status:e,checkForUpdates:t,now:n,lastAutoCheckAt:r}){if(t===!1||r!==null&&n-r<ic)return!1;let i=typeof e?.lastCheckAt==`number`?e.lastCheckAt:null;return i===null||n-i>=ic}function dc({status:e,checkForUpdates:t,relativeTime:n}){return t===!1?`Update checks are off.`:e?e.flavor===`unknown`?`The install flavor is unknown.`:n:`No update check has run.`}var q=null,J=null,fc=0,Y=new Map,pc=null,mc=0,hc=!1,gc=0,_c=0,vc=null,X=null;function yc(e){X=e}function bc(e){vc=e}function xc(e){return q?.readyState===WebSocket.OPEN&&(q.send(JSON.stringify(e)),!0)}var Sc=Qa(xc);function Cc(e,t){console.warn(`[${e}] ${t}`),Sc(e,t)}function wc(e){return _c+=1,`${e}-${_c}`}function Tc(e,t,{timeoutMs:n=5e3}={}){let r=wc(e);return new Promise((i,a)=>{let o=setTimeout(()=>{Y.delete(r),a(Error(`Request timed out`))},n);Y.set(r,{resolve:i,reject:a,timer:o}),q?.readyState===WebSocket.OPEN?q.send(JSON.stringify({type:e,requestId:r,...t})):(clearTimeout(o),Y.delete(r),a(Error(Rs)))})}function Ec(e){if(typeof e!=`object`||!e||!(`requestId`in e))return;let t=e.requestId;if(typeof t!=`string`)return;let n=Y.get(t);n&&(clearTimeout(n.timer),Y.delete(t),n.reject(Error(`The server sent a reply this dashboard could not read. Reload the page to pick up the current version.`)))}function Dc(e){for(let t of Y.values())clearTimeout(t.timer),t.reject(Error(e));Y.clear()}function Oc(){let e=q;q=null,Dc(Rs),X&&X(`disconnected`,`Reconnecting`),e?.close(),fc=0,kc()}function kc(){if(J!==null&&(J!==null&&clearTimeout(J),J=null),!mo()&&!hc){hc=!0,ho().finally(()=>{hc=!1,kc()});return}if(hc)return;let e=gc>0?`?since=${gc}`:``,t=fo(location,_o(`/control${e}`)),n=new WebSocket(t);q=n,mc=Date.now();let r=!1;n.addEventListener(`open`,()=>{r=!0,fc=0,X&&X(`connected`,`Connected`)}),n.addEventListener(`message`,e=>{if(q!==n)return;let t;try{t=JSON.parse(e.data)}catch{Cc(`control`,`dropped a server message that is not JSON`);return}let r=Ha.safeParse(t);if(!r.success){Cc(`control`,`dropped ${Za(t)}: ${Xa(r.error.issues)}`),Ec(t);return}let i=r.data;if(i.type===`snapshot`&&typeof i.seq!=`number`&&(gc=0),typeof i.seq==`number`){if(i.seq<=gc)return;gc=i.seq}let a=typeof i.requestId==`string`?i.requestId:``,o=a?Y.get(a):void 0;o?(clearTimeout(o.timer),Y.delete(a),o.resolve(i)):vc&&vc(i)}),n.addEventListener(`close`,()=>{if(q!==n)return;q=null,Dc(Rs),r||go(),X&&X(`disconnected`,`Reconnecting`);let e=ao(fc);fc+=1,J=setTimeout(kc,e)})}async function Ac(){if(X&&X(`connecting`,`Connecting`),pc)return pc;let e=lo({hasSocket:!!q,readyState:q?.readyState??null,retryPending:J!==null,connectingAgeMs:Date.now()-mc});if(e===`retry-now`)return J!==null&&clearTimeout(J),J=null,fc=0,kc(),`reconnecting`;if(e===`connect`)return Oc(),`reconnecting`;if(e===`wait`)return`reconnecting`;let t=q;return pc=Tc(`ping`,{}).then(()=>(X&&X(`verified`,`Connected`),`ok`)).catch(()=>(q===t&&t&&Oc(),`dead`)).finally(()=>{pc=null}),pc}var jc=Object.freeze({[O.DORMANT]:`not-started`,[O.INITIALIZING]:`starting`,[O.STARTING]:`starting`,[O.RUNNING]:`working`,[O.WAITING]:`needs-input`,[O.IDLE]:`idle`,[O.COMPLETE]:`complete`,[O.DONE]:`exited`,[O.FAILED]:`failed`}),Mc=`monitoring`,Z=e=>({fill:`none`,stroke:`currentColor`,"stroke-width":e,"stroke-linecap":`round`,"stroke-linejoin":`round`}),Q={fill:`currentColor`},Nc=Object.freeze({"not-started":[{tag:`circle`,attributes:{cx:`8`,cy:`8`,r:`6`,...Z(`1.6`),"stroke-linecap":`butt`,"stroke-dasharray":`2.6 2.1`}}],starting:[{tag:`circle`,attributes:{cx:`8`,cy:`8`,r:`6`,...Z(`1.8`),"stroke-opacity":`.25`}},{tag:`path`,attributes:{d:`M8 2a6 6 0 0 1 6 6`,...Z(`1.8`),class:`status-icon-spin`}}],working:[{tag:`circle`,attributes:{cx:`8`,cy:`8`,r:`4`,...Z(`1.4`),class:`status-icon-ping`}},{tag:`circle`,attributes:{cx:`8`,cy:`8`,r:`4`,...Q}}],monitoring:[{tag:`path`,attributes:{d:`M1.3 8S3.8 3.4 8 3.4 14.7 8 14.7 8 12.2 12.6 8 12.6 1.3 8 1.3 8z`,...Z(`1.5`)}},{tag:`circle`,attributes:{cx:`8`,cy:`8`,r:`2.2`,...Q}}],"needs-input":[{tag:`path`,attributes:{d:`M4.6 5.2a3.4 3.4 0 1 1 4.9 3.05c-1 .5-1.5 1.1-1.5 2.05v.6`,...Z(`2.5`)}},{tag:`circle`,attributes:{cx:`8`,cy:`14`,r:`1.55`,...Q}}],idle:[{tag:`rect`,attributes:{x:`3.6`,y:`2.8`,width:`3`,height:`10.4`,rx:`.8`,...Q}},{tag:`rect`,attributes:{x:`9.4`,y:`2.8`,width:`3`,height:`10.4`,rx:`.8`,...Q}}],complete:[{tag:`path`,attributes:{d:`M2.8 8.4l3.4 3.4 7-7.4`,...Z(`2.2`)}}],exited:[{tag:`rect`,attributes:{x:`3`,y:`3`,width:`10`,height:`10`,rx:`1.6`,...Q}}],failed:[{tag:`path`,attributes:{d:`M3.5 3.5l9 9M12.5 3.5l-9 9`,...Z(`2`)}}]});function Pc(e,t){return!e||e.toLowerCase().endsWith(`[bot]`)?null:`https://avatars.githubusercontent.com/${encodeURIComponent(e)}?s=${t*2}`}function Fc(e){return e.match(/[a-z0-9]/i)?.[0]?.toUpperCase()??`?`}function $(e,t,n){let r=document.createElement(e);return t&&(r.className=t),n!=null&&(r.textContent=n),r}function Ic(e,t,n){let r=$(e,t);return r.innerHTML=n,r}function Lc(e,t){for(let[n,r]of t)e.style.setProperty(n,r)}function Rc({login:e,url:t,cssPx:n}){let r=$(`span`,`avatar`);r.style.width=`${n}px`,r.style.height=`${n}px`;let i=()=>$(`span`,`avatar-monogram`,Fc(e)),a=t===void 0?Pc(e,n):t;if(!a)return r.append(i()),r;let o=$(`img`);return o.src=a,o.width=n,o.height=n,o.loading=`lazy`,o.decoding=`async`,o.referrerPolicy=`no-referrer`,o.alt=``,o.addEventListener(`error`,()=>o.replaceWith(i()),{once:!0}),r.append(o),r}function zc(e,t){let n=$(`span`,`avatar-stack`);for(let r of e){let e=Rc({login:r.login,url:r.url,cssPx:t});e.title=r.title,e.setAttribute(`role`,`img`),e.setAttribute(`aria-label`,r.title);let i=$(`span`,`avatar-badge`);i.dataset.tone=r.tone,e.append(i),n.append(e)}return n}function Bc(e,t,n){let r=e.querySelector(t);if(!r||r.tagName.toLowerCase()!==n)throw Error(`${t} does not match a <${n}>`);return r}function Vc(e,t){let n=e.querySelector(t);if(!(n instanceof HTMLElement))throw Error(`${t} matches no element`);return n}function Hc(e,t,n,r=t){if(!n){let n=$(`span`,e,t);return n.title=r,n}let i=$(`a`,e,t);return i.title=r,i.href=n,i.target=`_blank`,i.rel=`noopener`,i}function Uc(e,t){return e===O.RUNNING&&t===!0}function Wc(e,t=!1){let n=e,r=Uc(e,t),i=r?`Monitoring`:Wr[n]||e;return{icon:r?Mc:jc[n]??jc[O.DORMANT],label:i.toUpperCase(),isMonitoring:r}}function Gc(e){if(!e)return;let t=null,n=()=>{t=null;let n=e.offsetHeight;n>0&&document.documentElement.style.setProperty(`--header-h`,`${n}px`)};new ResizeObserver(()=>{t===null&&(t=requestAnimationFrame(n))}).observe(e)}function Kc(e,t,n){let r=$(`section`,`${e}-section`),i=$(`div`,`${e}-section-head`);return i.append($(`h2`,`${e}-section-title`,t)),n&&i.append($(`span`,`${e}-section-hint`,n)),r.append(i),r}function qc(e,t,n,r){let i=$(`span`,`${e}-stat`);return r&&(i.dataset.tone=r),i.append($(`span`,`${e}-stat-value`,n),$(`span`,`${e}-stat-label`,t)),i}function Jc(e){return Array.isArray(e?.projects)?e.projects:[]}function Yc(e){return!e||!!e.closest(`[hidden]`)}function Xc(e){return navigator.clipboard?.writeText?navigator.clipboard.writeText(e):null}function Zc(e,t){e&&t&&e.parentElement!==t&&(e._adoptHome||={parent:e.parentElement,next:e.nextElementSibling},t.appendChild(e))}function Qc(e,t=null){let n=e?._adoptHome;n&&(delete e._adoptHome,n.parent?.isConnected?n.next&&n.next.parentElement===n.parent?n.parent.insertBefore(e,n.next):n.parent.appendChild(e):t&&t.appendChild(e))}export{ts as $,bt as $n,Wr as $t,Rs as A,Yt as An,ko as At,Bs as B,un as Bn,Xa as Bt,wc as C,It as Cn,wo as Ct,Tc as D,Kt as Dn,Po as Dt,xc as E,$t as En,Oo as Et,Vs as F,en as Fn,_o as Ft,ns as G,Wt as Gn,ba as Gt,Bo as H,an as Hn,la as Ht,uc as I,Qt as In,fo as It,is as J,Bt as Jn,pa as Jt,Qo as K,Gt as Kn,xa as Kt,sc as L,Pt as Ln,ao as Lt,dc as M,rn as Mn,H as Mt,lc as N,nn as Nn,go as Nt,yc as O,Jt as On,Mo as Ot,rc as P,tn as Pn,ho as Pt,Zo as Q,Ct as Qn,$r as Qt,Zs as R,Lt as Rn,Ja as Rt,kc as S,kt as Sn,Lo as St,Cc as T,Xt as Tn,Ao as Tt,zo as U,Ut as Un,Ea as Ut,oc as V,on as Vn,Ca as Vt,$o as W,Vt as Wn,Da as Wt,Ts as X,fn as Xn,Jr as Xt,as as Y,pn as Yn,li as Yt,Os as Z,b as Zn,Yr as Zt,Wc as _,jt as _n,os as _t,zc as a,Fr as an,je as ar,Ds as at,Nc as b,dn as bn,rs as bt,Hc as c,ir as cn,le as cr,us as ct,Gc as d,Wn as dn,ds as dt,Gr as en,ct as er,fs as et,Jc as f,Hn as fn,ws as ft,Lc as g,Nt as gn,ys as gt,Qc as h,Rt as hn,vs as ht,Rc as i,Ir as in,Ve as ir,hs as it,cc as j,Zt as jn,U as jt,zs as k,qt as kn,No as kt,Uc as l,lr as ln,cs as lt,Bc as m,zt as mn,gs as mt,Kc as n,Kr as nn,ye as nr,Xo as nt,$ as o,rr as on,Me as or,Ms as ot,Vc as p,Pn as pn,Ps as pt,es as q,Ht as qn,wa as qt,qc as r,O as rn,Qe as rr,_s as rt,Ic as s,nr as sn,pe as sr,Cs as st,Zc as t,qr as tn,Ee as tr,ps as tt,Yc as u,Jn as un,ks as ut,Xc as v,At as vn,ss as vt,bc as w,S as wn,jo as wt,Ac as x,Ft as xn,Fo as xt,jc as y,Mt as yn,Yo as yt,Ws as z,ln as zn,Ya as zt};
@@ -0,0 +1 @@
1
+ import{A as e,D as t,f as n,n as r,o as i,r as a,u as o}from"./dom-helpers-CcEFPh-F.js";import{i as s,s as c,t as l}from"./action-status-DXcC95xv.js";import{i as u}from"./modal-CvDX5-_2.js";import{$r as d,Ar as f,Br as p,Ci as m,Dr as h,Ei as g,Er as _,Fr as v,Gr as y,Hr as b,Ir as ee,Jr as x,Kr as S,Lr as te,Mr as ne,Nr as re,Or as ie,Pr as ae,Qr as oe,Rr as se,Si as ce,Ti as le,Ur as ue,Vr as de,Wr as fe,Xr as pe,Yr as me,Zr as he,_i as ge,ai as C,bi as _e,ci as ve,di as ye,ei as be,fi as xe,gi as Se,hi as Ce,ii as we,jr as Te,kr as w,li as Ee,mi as T,ni as De,oi as Oe,pi as E,qr as ke,ri as D,si as O,ti as Ae,ui as k,vi as je,wi as Me,xi as Ne,yi as Pe,zr as A}from"./index-C8u3ZjM3.js";var j=_(),M=null,N=null,P=null,F=null,I=null,L=null,R=!1,z=``,B=new Set,V=new Set,H=new Map,U=!1,W=(e,t)=>r(`hooks`,e,t);function G(e,t,n){let r=i(`p`,e,t);return n&&(r.dataset.tone=n),r}function K(e,t,n,r){let a=i(`button`,e,t);return a.type=`button`,r&&a.setAttribute(`aria-label`,r),a.addEventListener(`click`,n),a}async function Fe(e,n){try{let r=await t(e,n,{timeoutMs:l});if((r.type===`save-hook-result`||r.type===`delete-hook-result`)&&r.ok)return null;let i=e===`save-hook`?`Could not save the hook.`:`Could not delete the hook.`;return`error`in r&&typeof r.error==`string`&&r.error?r.error:i}catch(e){return c(e,l)}}async function Ie(e,t,n,r){V.add(e),H.set(e,{tone:`busy`,text:r}),$({force:!0});let i=await Fe(t,n);V.delete(e),i&&H.set(e,{tone:`error`,text:i}),i||H.delete(e),$({force:!0}),h()}function q(e,t,n){let r=i(`label`,`hooks-field`);return r.append(i(`span`,`hooks-field-label`,e),t),n&&r.append(i(`span`,`hooks-field-hint`,n)),r}function J(e,t,n){let r=i(`input`,`settings-view-input`);return r.type=`text`,r.value=e,r.autocomplete=`off`,r.spellcheck=!1,t&&(r.placeholder=t),r.addEventListener(`input`,()=>n(r.value)),r}function Le(e,t){let n=i(`textarea`,`settings-view-input hooks-command`);return n.rows=3,n.value=e,n.spellcheck=!1,n.addEventListener(`input`,()=>t(n.value)),n}function Re(e,t,n){let r=i(`select`,`settings-view-input hooks-select`);for(let n of t){let t=i(`option`,null,n.name);t.value=n.name,t.title=n.description,n.name===e.event&&(t.selected=!0),r.append(t)}return r.addEventListener(`change`,()=>n(r.value)),r}function ze(e,t){let n=i(`div`,`hooks-type-row`);n.setAttribute(`role`,`radiogroup`);for(let r of y){let a=i(`label`,`settings-view-toggle hooks-choice`),o=i(`input`,`settings-view-checkbox`);o.type=`radio`,o.name=`hooks-type`,o.value=r.value,o.checked=e.type===r.value,o.title=r.hint,o.addEventListener(`change`,()=>{o.checked&&t(r.value)}),a.append(o,i(`span`,null,r.label)),n.append(a)}return n}function Be(e,t){let n=i(`div`,`hooks-projects`);if(t.length===0)return n.append(i(`span`,`hooks-field-hint`,w)),n;let r=i(`label`,`settings-view-project-choice hooks-choice`),a=i(`input`,`settings-view-checkbox`);a.type=`checkbox`,a.checked=e.projects.length===0,r.append(a,i(`span`,null,w)),n.append(r);let o=[];for(let r of t){let t=i(`label`,`settings-view-project-choice hooks-choice`),s=i(`input`,`settings-view-checkbox`);s.type=`checkbox`,s.value=r.id,s.checked=e.projects.includes(r.id),s.addEventListener(`change`,()=>{e.projects=o.filter(e=>e.checked).map(e=>e.value),a.checked=e.projects.length===0}),o.push(s),t.append(s,i(`span`,null,r.name)),r.agent!==`claude-code`&&(t.append(i(`span`,`hooks-choice-note`,r.agent)),t.title=`Not a Claude Code project: this hook will not reach its sessions.`),n.append(t)}return a.addEventListener(`change`,()=>{if(!a.checked)a.checked=e.projects.length===0;else{for(let e of o)e.checked=!1;e.projects=[]}}),n}function Ve(e){let t=i(`div`,`hooks-templates`);t.append(i(`span`,`hooks-templates-label`,pe));for(let n of fe){let r=K(`hooks-chip`,n.label,()=>X(null,Ne(n,e)));r.title=n.summary,t.append(r)}return t}function Y(e){I&&(e?I.show(`error`,e):I.clear())}function He(e){let t=C(j.report),r=n(j.report),a=W(e.id?te:S,ee);a.classList.add(`hooks-editor`);let o=i(`form`,`hooks-form`);o.addEventListener(`submit`,e=>{e.preventDefault(),We()}),o.addEventListener(`keydown`,e=>{e.key===`Escape`?(e.preventDefault(),Ue()):e.key===`Enter`&&(e.ctrlKey||e.metaKey)&&(e.preventDefault(),We())}),e.id||o.append(Ve(t));let c=i(`span`,`hooks-field-hint`,E(t,e.event)),l=J(e.matcher,``,t=>{e.matcher=t}),u=q(`Command`,Le(e.command,t=>{e.command=t}),`Runs through the shell with the event JSON on stdin. Exit 2 blocks the action where the event allows it.`),d=q(`URL`,J(e.url,`http://127.0.0.1:8080/hook`,t=>{e.url=t}),`Claude Code POSTs the event JSON to it.`),f=()=>{u.hidden=e.type!==`command`,d.hidden=e.type!==`http`};f();let p=q(`Matcher`,l,null);p.append(c);let m=()=>{let n=t.find(t=>t.name===e.event);c.textContent=E(t,e.event),l.disabled=!!n&&!n.matcher,l.disabled&&(l.value=``,e.matcher=``)};m();let h=i(`input`,`settings-view-input hooks-timeout`);h.type=`number`,h.inputMode=`numeric`,h.min=`1`,h.max=String(T(j.report)),h.value=e.timeout,h.addEventListener(`input`,()=>{e.timeout=h.value});let g=i(`label`,`settings-view-toggle hooks-choice`),_=i(`input`,`settings-view-checkbox`);_.type=`checkbox`,_.checked=e.enabled,_.addEventListener(`change`,()=>{e.enabled=_.checked}),g.append(_,i(`span`,null,`Enabled`)),o.append(q(`Name`,J(e.name,`Lint after edits`,t=>{e.name=t}),null),q(`Event`,Re(e,t,t=>{e.event=t,m()}),null),p,q(`Type`,ze(e,t=>{e.type=t,f()}),null),u,d,q(`Timeout (seconds)`,h,ne),q(`Projects`,Be(e,r),null),q(``,g,null)),I=s(`hooks-editor-status`);let v=i(`div`,`hooks-editor-footer`),y=i(`span`,`hooks-editor-shortcut`,me),b=K(`btn-dialog btn-dialog-cancel`,`Cancel`,Ue),x=i(`button`,`btn-dialog btn-dialog-confirm`,e.id?`Save changes`:`Add hook`);return x.type=`submit`,L=x,v.append(I.element,y,b,x),o.append(v),a.append(o),a}function X(e,t=null){N=t||(e?m(e):D(C(j.report))),P=O(e?m(e):D(C(j.report))),F=He(N),$({force:!0}),F.scrollIntoView({block:`nearest`});let n=F.querySelector(`input[type=text]`);n instanceof HTMLInputElement&&n.focus()}function Z(){N=null,P=null,F=null,I=null,L=null,R=!1,U=!0,$({force:!0})}function Ue(){!N||!P||!ye(N,P)?Z():u({title:ae,message:re,confirmLabel:`Discard`,danger:!0,onConfirm:Z})}async function We(){if(!N||R)return;let e=Ae(N,C(j.report),T(j.report));if(e){Y(e);return}let t=I,n=L;R=!0,t?.show(`busy`,`Saving the hook.`),n&&(n.disabled=!0);let r=await Fe(`save-hook`,{hook:O(N)});R=!1,n&&(n.disabled=!1),t===I&&(r?Y(r):(Z(),h()))}function Ge(e){let t=i(`details`,`hooks-preview`);t.open=B.has(e.id),t.addEventListener(`toggle`,()=>{t.open?B.add(e.id):B.delete(e.id)});let n=i(`summary`,`hooks-preview-summary`,x);n.title=ke;let r=i(`pre`,`hooks-preview-code`,ge(e));return t.append(n,r),t}function Ke(e,{grouped:t=!1}={}){let r=n(j.report),a=i(`article`,`hooks-row`);a.setAttribute(`aria-label`,e.name),e.enabled===!1&&(a.dataset.state=`off`);let o=i(`div`,`hooks-row-main`),c=i(`div`,`hooks-row-head`);c.append(i(`span`,`hooks-row-name`,e.name));let l=t?e.matcher||``:we(e);l&&c.append(i(`span`,`hooks-row-event`,l));let d=i(`code`,`hooks-row-target`,_e(e));d.title=_e(e);let f=i(`p`,`hooks-row-meta`,[g(e.type),ce(e),Se(e,r)].filter(Boolean).join(` / `));o.append(c,d,f);let p=Ce(e,r);p.length>0&&o.append(G(`hooks-row-meta`,`Scoped to a project no longer in config: ${p.join(`, `)}`,`warn`)),o.append(Ge(e));let h=H.get(e.id);if(h){let e=s(`hooks-row-status`);e.show(h.tone,h.text),o.append(e.element)}let _=i(`div`,`hooks-row-actions`),y=i(`label`,`settings-view-toggle hooks-choice`),b=i(`input`,`settings-view-checkbox`);b.type=`checkbox`,b.checked=e.enabled!==!1,b.disabled=V.has(e.id),b.setAttribute(`aria-label`,`${e.name} enabled`),b.addEventListener(`change`,()=>{Ie(e.id,`save-hook`,{hook:Me(e)},b.checked?`Turning the hook on.`:`Turning the hook off.`)}),y.append(b,i(`span`,null,`On`));let ee=K(`hooks-btn`,`Edit`,()=>X(e),`Edit ${e.name}`),x=K(`hooks-btn`,v,()=>{let t=m({...e,name:De(e.name)});t.id=null,X(null,t)},`Duplicate ${e.name}`),S=K(`hooks-btn hooks-btn-danger`,`Delete`,()=>{u({title:`Delete hook`,message:be(e),confirmLabel:`Delete`,danger:!0,onConfirm:()=>{Ie(e.id,`delete-hook`,{id:e.id},`Deleting the hook.`)}})},`Delete ${e.name}`);return S.disabled=V.has(e.id),_.append(y,ee,x,S),a.append(o,_),a}function qe(e){let t=i(`article`,`hooks-row hooks-row-builtin`),n=i(`div`,`hooks-row-main`);return n.append(i(`span`,`hooks-row-event`,oe(e)),i(`p`,`hooks-row-meta`,e.purpose)),t.append(n),t}function Je(){let e=W(`Hooks`,b),t=i(`div`,`hooks-stats`);for(let e of le(j.report))t.append(a(`hooks`,e.label,e.value,e.tone));return e.append(t,G(`hooks-meta`,p)),e}function Ye(){let e=i(`input`,`settings-view-input hooks-filter`);return e.type=`search`,e.value=z,e.placeholder=A,e.setAttribute(`aria-label`,A),e.addEventListener(`input`,()=>{z=e.value;let t=M?.querySelector(`.hooks-list-yours`);t&&t.replaceWith(Q())}),e}function Xe(){let e=i(`div`,`hooks-empty-state`);return e.append(G(`hooks-empty`,de),Ve(C(j.report))),e}function Q(){let e=i(`div`,`hooks-list-yours`),t=k(j.report);if(t.length===0)return e.append(Xe()),e;let n=Oe(Pe(t,C(j.report)),z);if(n.length===0)return e.append(G(`hooks-empty`,se)),e;for(let t of ve(n)){let n=i(`div`,`hooks-group`);n.append(i(`h3`,`hooks-group-title`,t.event));let r=i(`div`,`hooks-list`);for(let e of t.hooks)r.append(Ke(e,{grouped:!0}));n.append(r),e.append(n)}return e}function Ze(){let e=W(he,null),t=K(`hooks-btn hooks-btn-add`,`+ New hook`,()=>X(null));t.disabled=!!N;let n=e.querySelector(`.hooks-section-head`);return n&&n.append(t),je(k(j.report))&&e.append(Ye()),e.append(Q()),e}function Qe(){let e=i(`details`,`hooks-builtin`),t=i(`summary`,`hooks-builtin-summary`);t.append(i(`span`,`hooks-section-title`,`${Te} (${d(j.report).length})`),i(`span`,`hooks-section-hint`,f));let n=i(`div`,`hooks-list`);for(let e of d(j.report))n.append(qe(e));return e.append(t,n),e}function $e(){let t=i(`div`,`hooks-content`);return j.report?xe(j.report)?(t.append(G(`hooks-warning`,Ee(j.report))),t):(t.append(Je()),F&&t.append(F),t.append(Ze(),Qe()),t):(t.append(j.hasReportSendFailed?G(`hooks-warning`,e):G(`hooks-empty`,ue)),t)}function $({force:e=!1}={}){if(!M||!e&&o(M)||(j=_(),M.replaceChildren($e()),!U))return;U=!1;let t=M.querySelector(`.hooks-btn-add`);t instanceof HTMLButtonElement&&t.focus()}function et(e){M||(M=i(`div`,`hooks-panel`),e.append(M),ie(()=>$()),$({force:!0}))}function tt(e){e===`shown`&&$({force:!0}),h()}var nt={mount:et,refresh:tt};export{nt as view};