glimmervoid 0.45.1-next.61 → 0.45.1-next.65

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 (90) hide show
  1. package/dist/bin/glimmervoid.js +13 -13
  2. package/dist/chunks/{adapters-MedfwWEt.js → adapters-BpjX0djP.js} +5 -5
  3. package/dist/chunks/{adapters-llOyoibJ.js → adapters-CPCQGdQP.js} +1 -1
  4. package/dist/chunks/{agent-api-cli-21VH66DW.js → agent-api-cli-Cpez-uww.js} +1 -1
  5. package/dist/chunks/{agent-api-cli-Ctyl-wQE.js → agent-api-cli-LGGAxmEI.js} +4 -4
  6. package/dist/chunks/{agent-api-core-Bul8RBo6.js → agent-api-core-BSdwxYJs.js} +3 -3
  7. package/dist/chunks/{agent-setup-cli-BA_1AdhQ.js → agent-setup-cli-BLrIrWTb.js} +1 -1
  8. package/dist/chunks/{build-channel-BFlbN47U.js → build-channel-DGyhk8hO.js} +2 -2
  9. package/dist/chunks/{config-C8kfugVN.js → config-DqgKuhBG.js} +7 -104
  10. package/dist/chunks/config-store-DDRtmgjN.js +1 -0
  11. package/dist/chunks/{config-store-sSqr3E3v.js → config-store-GMSs3pKP.js} +7 -6
  12. package/dist/chunks/{git-version-BpdkKH2j.js → git-version-C-IkI4sr.js} +1 -1
  13. package/dist/chunks/{grok-7jK8ZNtf.js → grok-B8DOqRB-.js} +1 -1
  14. package/dist/chunks/{main-oSCVLbkg.js → main-BSElluRo.js} +11 -11
  15. package/dist/chunks/{pair-cli-IfDAq5Y9.js → pair-cli-2xpWEvAQ.js} +2 -2
  16. package/dist/chunks/{remote-config-CEaLpe86.js → remote-config-Bt3ebJY1.js} +1 -1
  17. package/dist/chunks/{session-BwlLY_mv.js → session-BF6eF7dw.js} +0 -13
  18. package/dist/chunks/{session-routes-CviNvxcz.js → session-routes-gzOQJb1W.js} +1 -1
  19. package/dist/chunks/{settings-cli-DNtrC3KP.js → settings-cli-DPK-xx4w.js} +5 -5
  20. package/dist/chunks/{settings-readout-core-BVBHnzSn.js → settings-readout-core-C3kVbO18.js} +2 -2
  21. package/dist/chunks/{shown-files-core-soMzCQ1D.js → shown-files-core-Bkuessu6.js} +1 -1
  22. package/dist/chunks/{ssh-sign-cli-CCUgMvZp.js → ssh-sign-cli-BOo44kJp.js} +2 -2
  23. package/dist/client/assets/{action-status-0U-hFn7S.js → action-status-hJ8vrTK4.js} +1 -1
  24. package/dist/client/assets/action-status-hJ8vrTK4.js.br +0 -0
  25. package/dist/client/assets/{benchmark-panel-DqVAzdTb.js → benchmark-panel-DDdPTcPG.js} +1 -1
  26. package/dist/client/assets/benchmark-panel-DDdPTcPG.js.br +0 -0
  27. package/dist/client/assets/{card-dom-_fAuKTwE.js → card-dom-D4NvWM47.js} +1 -1
  28. package/dist/client/assets/card-dom-D4NvWM47.js.br +0 -0
  29. package/dist/client/assets/control-ws-6I4n2_Rl.js +4 -0
  30. package/dist/client/assets/control-ws-6I4n2_Rl.js.br +0 -0
  31. package/dist/client/assets/{dialogs-Fj5B0T3c.js → dialogs-DVu0wneM.js} +1 -1
  32. package/dist/client/assets/dialogs-DVu0wneM.js.br +0 -0
  33. package/dist/client/assets/dom-helpers-D7V9q-Y4.js +1 -0
  34. package/dist/client/assets/dom-helpers-D7V9q-Y4.js.br +0 -0
  35. package/dist/client/assets/{hooks-panel-5NPEj1uS.js → hooks-panel-CpmErFfq.js} +1 -1
  36. package/dist/client/assets/hooks-panel-CpmErFfq.js.br +0 -0
  37. package/dist/client/assets/index-DFKfA_59.js +84 -0
  38. package/dist/client/assets/index-DFKfA_59.js.br +0 -0
  39. package/dist/client/assets/{issues-panel-cygm8anb.js → issues-panel-CrLnP083.js} +1 -1
  40. package/dist/client/assets/issues-panel-CrLnP083.js.br +0 -0
  41. package/dist/client/assets/{modal-BRBfeCUF.js → modal-CpGyiWuk.js} +1 -1
  42. package/dist/client/assets/modal-CpGyiWuk.js.br +0 -0
  43. package/dist/client/assets/{plan-face-IkcK4f1M.js → plan-face-DfWHAjOh.js} +1 -1
  44. package/dist/client/assets/plan-face-DfWHAjOh.js.br +0 -0
  45. package/dist/client/assets/{poll-ago-CuGmNCv5.js → poll-ago-jEMVa0Q3.js} +1 -1
  46. package/dist/client/assets/poll-ago-jEMVa0Q3.js.br +0 -0
  47. package/dist/client/assets/{pr-scope-tabs-BIGxs6d6.js → pr-scope-tabs-Cqg3Jd4j.js} +1 -1
  48. package/dist/client/assets/pr-scope-tabs-Cqg3Jd4j.js.br +0 -0
  49. package/dist/client/assets/{radar-panel-BR4YMsTd.js → radar-panel-h4_qpORK.js} +1 -1
  50. package/dist/client/assets/radar-panel-h4_qpORK.js.br +0 -0
  51. package/dist/client/assets/{review-queue-panel-CjU2bgZL.js → review-queue-panel--WBJXiHx.js} +1 -1
  52. package/dist/client/assets/review-queue-panel--WBJXiHx.js.br +0 -0
  53. package/dist/client/assets/{settings-panel-zOITKDoJ.js → settings-panel-xYNRgKCj.js} +2 -2
  54. package/dist/client/assets/settings-panel-xYNRgKCj.js.br +0 -0
  55. package/dist/client/assets/{trace-panel-Cbq9IBsx.js → trace-panel-Czvsqr1f.js} +1 -1
  56. package/dist/client/assets/trace-panel-Czvsqr1f.js.br +0 -0
  57. package/dist/client/assets/{ui-prefs-DemZczQT.js → ui-prefs-Kmmz3DzP.js} +1 -1
  58. package/dist/client/assets/ui-prefs-Kmmz3DzP.js.br +0 -0
  59. package/dist/client/assets/{usage-panel-D7WpBdQa.js → usage-panel-r60lmFdf.js} +1 -1
  60. package/dist/client/assets/usage-panel-r60lmFdf.js.br +0 -0
  61. package/dist/client/assets/{visions-panel-D-3Omc8h.js → visions-panel-BYSu81CE.js} +1 -1
  62. package/dist/client/assets/visions-panel-BYSu81CE.js.br +0 -0
  63. package/dist/client/index.html +8 -8
  64. package/dist/client/index.html.br +0 -0
  65. package/dist/server/index.js +1 -1
  66. package/package.json +1 -1
  67. package/dist/chunks/config-store-7dRssEkS.js +0 -1
  68. package/dist/client/assets/action-status-0U-hFn7S.js.br +0 -0
  69. package/dist/client/assets/benchmark-panel-DqVAzdTb.js.br +0 -0
  70. package/dist/client/assets/card-dom-_fAuKTwE.js.br +0 -0
  71. package/dist/client/assets/control-ws-CR2udDof.js +0 -4
  72. package/dist/client/assets/control-ws-CR2udDof.js.br +0 -0
  73. package/dist/client/assets/dialogs-Fj5B0T3c.js.br +0 -0
  74. package/dist/client/assets/dom-helpers-BQnoww4P.js +0 -1
  75. package/dist/client/assets/dom-helpers-BQnoww4P.js.br +0 -0
  76. package/dist/client/assets/hooks-panel-5NPEj1uS.js.br +0 -0
  77. package/dist/client/assets/index-ByHIcR0N.js +0 -84
  78. package/dist/client/assets/index-ByHIcR0N.js.br +0 -0
  79. package/dist/client/assets/issues-panel-cygm8anb.js.br +0 -0
  80. package/dist/client/assets/modal-BRBfeCUF.js.br +0 -0
  81. package/dist/client/assets/plan-face-IkcK4f1M.js.br +0 -0
  82. package/dist/client/assets/poll-ago-CuGmNCv5.js.br +0 -0
  83. package/dist/client/assets/pr-scope-tabs-BIGxs6d6.js.br +0 -0
  84. package/dist/client/assets/radar-panel-BR4YMsTd.js.br +0 -0
  85. package/dist/client/assets/review-queue-panel-CjU2bgZL.js.br +0 -0
  86. package/dist/client/assets/settings-panel-zOITKDoJ.js.br +0 -0
  87. package/dist/client/assets/trace-panel-Cbq9IBsx.js.br +0 -0
  88. package/dist/client/assets/ui-prefs-DemZczQT.js.br +0 -0
  89. package/dist/client/assets/usage-panel-D7WpBdQa.js.br +0 -0
  90. package/dist/client/assets/visions-panel-D-3Omc8h.js.br +0 -0
@@ -3,11 +3,11 @@ import { o as nodePtyRebuildHint, r as firstLine, t as probeNodePty } from "../c
3
3
  import { i as errorText } from "../chunks/text-DoirglWV.js";
4
4
  import { o as packageRoot } from "../chunks/runtime-paths-ghcH9CeW.js";
5
5
  import { n as glimmervoidHomeDir, t as decideConfigPath } from "../chunks/config-path-core-DUWk0Lui.js";
6
- import { t as AGENT_API_VERBS } from "../chunks/session-BwlLY_mv.js";
6
+ import { t as AGENT_API_VERBS } from "../chunks/session-BF6eF7dw.js";
7
7
  import { i as execSync } from "../chunks/child-process-safe-D4hyVIXj.js";
8
- import { r as agentCommandHelpLines } from "../chunks/agent-api-core-Bul8RBo6.js";
8
+ import { r as agentCommandHelpLines } from "../chunks/agent-api-core-BSdwxYJs.js";
9
9
  import { t as renderTable } from "../chunks/ascii-figure-core-pDAwtlKO.js";
10
- import { i as parseCommandLine, r as gitDoctorRows, t as probeGitVersion } from "../chunks/git-version-BpdkKH2j.js";
10
+ import { i as parseCommandLine, r as gitDoctorRows, t as probeGitVersion } from "../chunks/git-version-C-IkI4sr.js";
11
11
  import { i as guardrailsDoctorRows, r as probeGuardrailsDependencies } from "../chunks/guardrails-deps-BjPzk1rE.js";
12
12
  import { i as pnpmGlobalBinDir, n as npmGlobalBinDir, r as onPath, t as formatPathNotice } from "../chunks/path-doctor-C23VAqeu.js";
13
13
  import fs from "node:fs";
@@ -65,15 +65,15 @@ var OWN_SUBCOMMAND_RUNNERS = [
65
65
  return 0;
66
66
  }],
67
67
  ["pair", async (subcommandArgs) => {
68
- const { runPairCli } = await import("../chunks/pair-cli-IfDAq5Y9.js");
68
+ const { runPairCli } = await import("../chunks/pair-cli-2xpWEvAQ.js");
69
69
  return runPairCli(subcommandArgs);
70
70
  }],
71
71
  ["agent", async (subcommandArgs) => {
72
- const { runAgentSetupCli } = await import("../chunks/agent-setup-cli-BA_1AdhQ.js");
72
+ const { runAgentSetupCli } = await import("../chunks/agent-setup-cli-BLrIrWTb.js");
73
73
  return runAgentSetupCli(subcommandArgs);
74
74
  }],
75
75
  ["settings", async (subcommandArgs) => {
76
- const { runSettingsCli } = await import("../chunks/settings-cli-DNtrC3KP.js");
76
+ const { runSettingsCli } = await import("../chunks/settings-cli-DPK-xx4w.js");
77
77
  return runSettingsCli(subcommandArgs);
78
78
  }],
79
79
  ["visions", async (subcommandArgs) => {
@@ -81,13 +81,13 @@ var OWN_SUBCOMMAND_RUNNERS = [
81
81
  return runVisionsCli(subcommandArgs);
82
82
  }],
83
83
  ["ssh-sign", async (subcommandArgs) => {
84
- const { runSshSignCli } = await import("../chunks/ssh-sign-cli-CCUgMvZp.js");
84
+ const { runSshSignCli } = await import("../chunks/ssh-sign-cli-BOo44kJp.js");
85
85
  return runSshSignCli(subcommandArgs);
86
86
  }]
87
87
  ];
88
88
  var ownSubcommandNames = new Set(OWN_SUBCOMMAND_RUNNERS.map(([name]) => name));
89
89
  var SUBCOMMAND_RUNNERS = new Map([...OWN_SUBCOMMAND_RUNNERS, ...AGENT_API_VERBS.filter((verb) => !ownSubcommandNames.has(verb)).map((verb) => [verb, async (subcommandArgs, subcommandName) => {
90
- const { runAgentApiCli } = await import("../chunks/agent-api-cli-21VH66DW.js");
90
+ const { runAgentApiCli } = await import("../chunks/agent-api-cli-Cpez-uww.js");
91
91
  return runAgentApiCli([subcommandName, ...subcommandArgs]);
92
92
  }])]);
93
93
  var AGENT_INSTALL_COMMAND_BY_ID = {
@@ -101,7 +101,7 @@ function missingAgentText(agentId) {
101
101
  }
102
102
  async function printSessionLimits() {
103
103
  if (!process.env["GLIMMERVOID_AGENT_URL"]) return;
104
- const { sessionLimitsHelpLines } = await import("../chunks/agent-api-cli-21VH66DW.js");
104
+ const { sessionLimitsHelpLines } = await import("../chunks/agent-api-cli-Cpez-uww.js");
105
105
  const limitsLines = await sessionLimitsHelpLines();
106
106
  console.log(`\n${limitsLines.join("\n")}`);
107
107
  }
@@ -158,7 +158,7 @@ async function readDeclaredCustomAgents() {
158
158
  declared: [],
159
159
  error: null
160
160
  };
161
- const { loadConfigFile } = await import("../chunks/config-store-7dRssEkS.js");
161
+ const { loadConfigFile } = await import("../chunks/config-store-DDRtmgjN.js");
162
162
  try {
163
163
  const loaded = loadConfigFile(decided.path, { exitOnError: false });
164
164
  if (!loaded.config) return {
@@ -234,7 +234,7 @@ async function runDoctor() {
234
234
  }
235
235
  switchSection("Agents");
236
236
  try {
237
- const { listAgentIds, describeAgentResolvability, setCustomAgents } = await import("../chunks/adapters-llOyoibJ.js");
237
+ const { listAgentIds, describeAgentResolvability, setCustomAgents } = await import("../chunks/adapters-CPCQGdQP.js");
238
238
  const declaredCustomAgents = await readDeclaredCustomAgents();
239
239
  if (declaredCustomAgents.error) line("config", declaredCustomAgents.error);
240
240
  setCustomAgents(declaredCustomAgents.declared);
@@ -242,7 +242,7 @@ async function runDoctor() {
242
242
  const { label, path: resolvedPath } = describeAgentResolvability(id);
243
243
  line(`${id} (${label})`, resolvedPath ?? missingAgentText(id));
244
244
  }
245
- const { inspectGrokAgentSetup } = await import("../chunks/agent-setup-cli-BA_1AdhQ.js");
245
+ const { inspectGrokAgentSetup } = await import("../chunks/agent-setup-cli-BLrIrWTb.js");
246
246
  const grokSetup = inspectGrokAgentSetup();
247
247
  line("grok hook setup", `${grokSetup.classification}: ${grokSetup.filePath}`);
248
248
  } catch (err) {
@@ -259,7 +259,7 @@ async function runDoctor() {
259
259
  try {
260
260
  const { resolvePackageBin } = await import("../chunks/runtime-paths-Cc0_ZR6V.js");
261
261
  const { execFileSync } = await import("../chunks/child-process-safe-CjVtRjDD.js");
262
- const { inspectGrokAgentSetup } = await import("../chunks/agent-setup-cli-BA_1AdhQ.js");
262
+ const { inspectGrokAgentSetup } = await import("../chunks/agent-setup-cli-BLrIrWTb.js");
263
263
  const binPath = resolvePackageBin("cc-safety-net", "cc-safety-net");
264
264
  line("Sane YOLO", binPath || "not installed");
265
265
  if (binPath) line("cc-safety-net version", execFileSync(process.execPath, [binPath, "--version"], {
@@ -1,14 +1,14 @@
1
1
  import { s as relayPath } from "./runtime-paths-ghcH9CeW.js";
2
- import { Bt as FULL_SHA_RE, Ht as shortSha$1 } from "./session-BwlLY_mv.js";
2
+ import { Bt as FULL_SHA_RE, Ht as shortSha$1 } from "./session-BF6eF7dw.js";
3
3
  import { n as execFileAsync, r as execFileSync } from "./child-process-safe-D4hyVIXj.js";
4
- import { b as InstallFlavor, mt as UpdateChannel } from "./config-C8kfugVN.js";
5
- import { o as supervisionLine } from "./session-routes-CviNvxcz.js";
4
+ import { b as InstallFlavor, mt as UpdateChannel } from "./config-DqgKuhBG.js";
5
+ import { o as supervisionLine } from "./session-routes-gzOQJb1W.js";
6
6
  import { c as textOr, s as rawTextOr } from "./coerce-NSst8oRP.js";
7
7
  import { n as resolveAgentCommand, t as buildAgentSpawnCommand } from "./spawn-command-Cc40FiZI.js";
8
8
  import { r as nextBackoffMs } from "./backoff-DjVpfHk7.js";
9
- import { i as isSpinnerChar, n as classifyAgentTitle, r as isBrailleChar, s as buildAgentEnv, t as grok } from "./grok-7jK8ZNtf.js";
9
+ import { i as isSpinnerChar, n as classifyAgentTitle, r as isBrailleChar, s as buildAgentEnv, t as grok } from "./grok-B8DOqRB-.js";
10
10
  import { t as buildHookCommand } from "./hook-command-core-qTNK-xMF.js";
11
- import { n as isExperimentalBuild, t as compareReleaseVersions } from "./build-channel-BFlbN47U.js";
11
+ import { n as isExperimentalBuild, t as compareReleaseVersions } from "./build-channel-DGyhk8hO.js";
12
12
  import { n as mergeCodexPreToolUse, t as HOOK_TOOLS } from "./hook-tools-Dl7-r2Eb.js";
13
13
  import fs from "node:fs";
14
14
  import path from "node:path";
@@ -1 +1 @@
1
- export { a as describeAgentResolvability, l as listAgentIds, f as setCustomAgents } from "./adapters-MedfwWEt.js";
1
+ export { a as describeAgentResolvability, l as listAgentIds, f as setCustomAgents } from "./adapters-BpjX0djP.js";
@@ -1 +1 @@
1
- export { t as askAgentApi, r as runAgentApiCli, i as sessionLimitsHelpLines } from "./agent-api-cli-Ctyl-wQE.js";
1
+ export { t as askAgentApi, r as runAgentApiCli, i as sessionLimitsHelpLines } from "./agent-api-cli-LGGAxmEI.js";
@@ -1,11 +1,11 @@
1
1
  import { t as errorCode } from "./text-DoirglWV.js";
2
- import { c as AgentLimitsReply, n as AGENT_URL_ENV } from "./session-BwlLY_mv.js";
3
- import { i as formatSessionLimits } from "./session-routes-CviNvxcz.js";
4
- import { f as isAgentApiVerb, t as AGENT_COMMAND_HELP } from "./agent-api-core-Bul8RBo6.js";
2
+ import { c as AgentLimitsReply, n as AGENT_URL_ENV } from "./session-BF6eF7dw.js";
3
+ import { i as formatSessionLimits } from "./session-routes-gzOQJb1W.js";
4
+ import { f as isAgentApiVerb, t as AGENT_COMMAND_HELP } from "./agent-api-core-BSdwxYJs.js";
5
5
  import { i as resolveHookTarget } from "./hook-relay-core-DA_bz2KA.js";
6
6
  import { n as decideGuardrailsProxy } from "./guardrails-proxy-core-BI3rdY-m.js";
7
7
  import { t as parseJsonOrNull } from "./json-core-dfa_7Fak.js";
8
- import { r as describeOverCap } from "./shown-files-core-soMzCQ1D.js";
8
+ import { r as describeOverCap } from "./shown-files-core-Bkuessu6.js";
9
9
  import fs from "node:fs";
10
10
  import path from "node:path";
11
11
  import http from "node:http";
@@ -1,6 +1,6 @@
1
- import { a as AgentAttentionRequest, d as AgentSendRequest, i as AgentAnswerRequest, l as AgentPullRequestRequest, m as AgentSpawnRequest, o as AgentCloseRequest, p as AgentSettingsRequest, s as AgentEditRequest, t as AGENT_API_VERBS, u as AgentReadRequest, w as RefinedTaskTitle, z as TASK_TITLE_CONTROL_CHARACTERS } from "./session-BwlLY_mv.js";
2
- import { T as pullRequestKeyFromReference, c as TASK_TITLE_SOURCE_PRIORITY, o as PersistedTaskTitle } from "./config-C8kfugVN.js";
3
- import { n as NO_OWN_WORKTREE_REASON, t as COMMAND_ROUTES } from "./session-routes-CviNvxcz.js";
1
+ import { a as AgentAttentionRequest, d as AgentSendRequest, i as AgentAnswerRequest, l as AgentPullRequestRequest, m as AgentSpawnRequest, o as AgentCloseRequest, p as AgentSettingsRequest, s as AgentEditRequest, t as AGENT_API_VERBS, u as AgentReadRequest, w as RefinedTaskTitle, z as TASK_TITLE_CONTROL_CHARACTERS } from "./session-BF6eF7dw.js";
2
+ import { T as pullRequestKeyFromReference, c as TASK_TITLE_SOURCE_PRIORITY, o as PersistedTaskTitle } from "./config-DqgKuhBG.js";
3
+ import { n as NO_OWN_WORKTREE_REASON, t as COMMAND_ROUTES } from "./session-routes-gzOQJb1W.js";
4
4
  import path from "node:path";
5
5
  import crypto from "node:crypto";
6
6
  //#region shared/session-naming.ts
@@ -1,5 +1,5 @@
1
1
  import { a as isMissingFileError, r as errorMessage } from "./text-DoirglWV.js";
2
- import { a as classifyGrokHooksFile, o as renderGrokHooksFile, t as grok } from "./grok-7jK8ZNtf.js";
2
+ import { a as classifyGrokHooksFile, o as renderGrokHooksFile, t as grok } from "./grok-B8DOqRB-.js";
3
3
  import { p as writeTextAtomicSync } from "./json-file-BjFK_eSH.js";
4
4
  import fs from "node:fs";
5
5
  import path from "node:path";
@@ -1,5 +1,5 @@
1
- import "./session-BwlLY_mv.js";
2
- import { C as OPERATOR_ACTIONS_BY_SURFACE, S as ONBOARDING_STEP_STATES, n as BUILTIN_AGENT_IDS, w as OPERATOR_SURFACES, x as ONBOARDING_STEPS, y as DASHBOARD_VIEWS } from "./config-C8kfugVN.js";
1
+ import "./session-BF6eF7dw.js";
2
+ import { C as OPERATOR_ACTIONS_BY_SURFACE, S as ONBOARDING_STEP_STATES, n as BUILTIN_AGENT_IDS, w as OPERATOR_SURFACES, x as ONBOARDING_STEPS, y as DASHBOARD_VIEWS } from "./config-DqgKuhBG.js";
3
3
  import { z } from "zod";
4
4
  //#region shared/contracts/telemetry.ts
5
5
  var TELEMETRY_ADAPTERS = Object.freeze([...BUILTIN_AGENT_IDS, "custom"]);
@@ -1,4 +1,4 @@
1
- import { B as TaskTitle, D as SESSION_DOC_PATH_MAX_CHARS, Dt as TeamReviewActionRequest, F as SessionState, Gt as REPO_SLUG_RE, H as LinkedPr, I as ShownFile, J as MyPrKeepMergeableResult, Jt as GithubPollingRefreshResult, Kt as repoParts, Mt as TeamReviewStatus, N as SessionDoc, Ot as TeamReviewActionResult, P as SessionSnapshot, Q as MyPrMergeResult, Rt as hasRequiredActionHead, S as ConversationApprovalDecision, U as MyPr, Ut as GH_SEGMENT, V as UnseenOutcome, Xt as githubPollingShape, Yt as GithubPrsFreshness, Z as MyPrMergeRequest, b as ConversationAnswers, bt as ReviewChecksState, ct as SessionPrLinks, dt as CommitSha, et as MyPrMergeWhenReadyRequest, ht as GithubReviewDecision, lt as pullRequestKeyFormat, nt as MyPrSearchNode, q as MyPrKeepMergeableRequest, qt as GithubPollingRefreshRequest, st as MyPrsStatus, tt as MyPrMergeWhenReadyResult, ut as repositoryName, x as ConversationApproval, y as CoherenceHooksState } from "./session-BwlLY_mv.js";
1
+ import { B as TaskTitle, D as SESSION_DOC_PATH_MAX_CHARS, Dt as TeamReviewActionRequest, F as SessionState, Gt as REPO_SLUG_RE, H as LinkedPr, I as ShownFile, J as MyPrKeepMergeableResult, Jt as GithubPollingRefreshResult, Kt as repoParts, Mt as TeamReviewStatus, N as SessionDoc, Ot as TeamReviewActionResult, P as SessionSnapshot, Q as MyPrMergeResult, Rt as hasRequiredActionHead, S as ConversationApprovalDecision, U as MyPr, Ut as GH_SEGMENT, V as UnseenOutcome, Xt as githubPollingShape, Yt as GithubPrsFreshness, Z as MyPrMergeRequest, b as ConversationAnswers, bt as ReviewChecksState, ct as SessionPrLinks, dt as CommitSha, et as MyPrMergeWhenReadyRequest, ht as GithubReviewDecision, lt as pullRequestKeyFormat, nt as MyPrSearchNode, q as MyPrKeepMergeableRequest, qt as GithubPollingRefreshRequest, st as MyPrsStatus, tt as MyPrMergeWhenReadyResult, ut as repositoryName, x as ConversationApproval, y as CoherenceHooksState } from "./session-BF6eF7dw.js";
2
2
  import { n as isRecord } from "./coerce-NSst8oRP.js";
3
3
  import path from "node:path";
4
4
  import { z } from "zod";
@@ -111,6 +111,9 @@ var IssuesStatus = z.object({
111
111
  issues: z.array(IssueRow),
112
112
  ...githubPollingShape
113
113
  }).passthrough();
114
+ //#endregion
115
+ //#region shared/contracts/plan-review.ts
116
+ var PLAN_TITLE_MAX_CHARS = 120;
114
117
  var PLAN_FEEDBACK_MAX_CHARS = 2e4;
115
118
  var PLAN_COMMENT_MAX_CHARS = 4e3;
116
119
  var PLAN_BODY_CAP_BYTES = 524288;
@@ -122,8 +125,8 @@ var HEADING_SCAN_MAX_CHARS = 4096;
122
125
  var ATX_HEADING = /^ {0,3}(#{1,6})[ \t]+(.*)$/;
123
126
  function capPlanTitle(text) {
124
127
  const trimmed = text.trim();
125
- if (trimmed.length <= 120) return trimmed;
126
- return trimmed.slice(0, 120);
128
+ if (trimmed.length <= PLAN_TITLE_MAX_CHARS) return trimmed;
129
+ return trimmed.slice(0, PLAN_TITLE_MAX_CHARS);
127
130
  }
128
131
  function withoutClosingHeadingMarks(text) {
129
132
  const trimmed = text.trimEnd();
@@ -135,7 +138,7 @@ function withoutClosingHeadingMarks(text) {
135
138
  return trimmed.slice(0, textEnd).trimEnd();
136
139
  }
137
140
  function parseAtxHeading(line, { overlongLine }) {
138
- if (overlongLine === "reject" && line.length > 4096) return null;
141
+ if (overlongLine === "reject" && line.length > HEADING_SCAN_MAX_CHARS) return null;
139
142
  const heading = ATX_HEADING.exec(line.slice(0, HEADING_SCAN_MAX_CHARS));
140
143
  if (!heading) return null;
141
144
  return {
@@ -1755,106 +1758,6 @@ var clientVariants = [
1755
1758
  ...idOnlyClientVariants
1756
1759
  ];
1757
1760
  var ClientMessage = z.discriminatedUnion("type", clientVariants);
1758
- Object.freeze([
1759
- "snapshot",
1760
- "hooks-report",
1761
- "save-hook-result",
1762
- "add-session-result",
1763
- "start-remote-setup-result",
1764
- "remove-session-result",
1765
- "agent-logins",
1766
- "delete-hook-result",
1767
- "workspace-repos",
1768
- "set-workspace-repos-result",
1769
- "hooks-updated",
1770
- "state-change",
1771
- "session-added",
1772
- "session-removed",
1773
- "session-close-confirm",
1774
- "session-renamed",
1775
- "session-title",
1776
- "session-prs",
1777
- "session-modified",
1778
- "session-git",
1779
- "session-coherence-hooks",
1780
- "session-agents",
1781
- "session-prompt",
1782
- "session-conversation",
1783
- "session-merge-status",
1784
- "session-worktree-blocked",
1785
- "session-worktree-warning",
1786
- "session-worktree-ready",
1787
- "session-diff",
1788
- "session-diff-error",
1789
- "change-map",
1790
- "branch-sync-status",
1791
- "session-changed",
1792
- "debug-state-response",
1793
- "session-trace-response",
1794
- "session-trace-changed",
1795
- "session-plan-changed",
1796
- "session-plan-draft",
1797
- "session-plan-response",
1798
- "session-docs-changed",
1799
- "session-docs-snapshot",
1800
- "session-doc-response",
1801
- "session-doc-save-result",
1802
- "session-coherence",
1803
- "session-coherence-snapshot",
1804
- "session-coherence-journal-response",
1805
- "session-setup-response",
1806
- "notify",
1807
- "update-status",
1808
- "update-progress",
1809
- "post-turn-leftovers",
1810
- "error",
1811
- "session-error",
1812
- "settings",
1813
- "settings-error",
1814
- "settings-updated",
1815
- "pong",
1816
- "agents-listed",
1817
- "repo-roots-scanned",
1818
- "conversations",
1819
- "resume-conversation-ack",
1820
- "health-snapshot",
1821
- "radar-status",
1822
- "radar-investigation-activity",
1823
- "radar-investigation-finished",
1824
- "radar-report",
1825
- "radar-open-session-result",
1826
- "issue-detail-result",
1827
- "open-issue-session-result",
1828
- "open-team-review-session-result",
1829
- "radar-issue-action-result",
1830
- "telemetry-deletion-result",
1831
- "team-review-action-result",
1832
- "benchmark-action-result",
1833
- "my-pr-merge-result",
1834
- "my-pr-keep-mergeable-result",
1835
- "my-pr-merge-when-ready-result",
1836
- "github-polling-refresh-result",
1837
- "radar-archive-investigation-result",
1838
- "team-review-status",
1839
- "benchmark-status",
1840
- "my-prs-status",
1841
- "issues-status",
1842
- "usage-sessions",
1843
- "usage-report",
1844
- "plan-limits",
1845
- "usage-budget-alert",
1846
- "visions-findings",
1847
- "visions-comments",
1848
- "visions-hand",
1849
- "visions-intent",
1850
- "visions-fix",
1851
- "visions-snapshot",
1852
- "ingest-activity",
1853
- "ingest-snapshot",
1854
- "client-trust",
1855
- "shutting-down",
1856
- "restarting"
1857
- ]);
1858
1761
  var serverVariants = [
1859
1762
  loose("snapshot", {
1860
1763
  sessions: z.array(SessionSnapshot),
@@ -0,0 +1 @@
1
+ export { c as loadConfigFile } from "./config-store-GMSs3pKP.js";
@@ -2,10 +2,11 @@ import { n as errorLabel, r as errorMessage } from "./text-DoirglWV.js";
2
2
  import { n as equalsIgnoringCaseOnWindows } from "./paths-Bu4eH1Yd.js";
3
3
  import { o as packageRoot } from "./runtime-paths-ghcH9CeW.js";
4
4
  import { n as glimmervoidHomeDir$1, t as decideConfigPath } from "./config-path-core-DUWk0Lui.js";
5
- import { $ as PORT_RANGE, J as FLYING_ANIMALS_GAP_RANGE, K as FLYING_ANIMALS_DEFAULTS, Q as NON_NEGATIVE_NUMBER_RANGE, X as KEEP_MERGEABLE_TIMEOUT_MINUTES_RANGE, Y as FLYING_ANIMALS_SCALE_RANGE, Z as MEMORY_RESERVE_MB_RANGE, at as REPLAY_BUFFER_KB_RANGE, ct as USAGE_INTEGER_RANGES, d as USAGE_COST_MODES, dt as WORKFLOWS_MAX_ACTIONS_PER_POLL_RANGE, et as POSITIVE_NUMBER_RANGE, ft as WORKFLOWS_MAX_CONCURRENT_SESSIONS_RANGE, i as Config, it as POSTHOG_TRAFFIC_MULTIPLIER_RANGE, l as configIssueMessage, lt as USAGE_RETAIN_DAYS_RANGE, n as BUILTIN_AGENT_IDS, nt as POSTHOG_TRAFFIC_BASELINE_RANGE, ot as TASK_TITLE_TIMEOUT_RANGE, p as normalizeLegacyConfigNumbers, pt as UPDATE_CHANNELS, q as FLYING_ANIMALS_DURATION_RANGE, rt as POSTHOG_TRAFFIC_MIN_USERS_RANGE, s as RUNTIME_CONFIG_SCALAR_KEYS, st as USAGE_BUDGET_RANGE, t as AGENT_ID_SHAPE_MESSAGE, tt as POSTHOG_FIX_TIMEOUT_RANGE, u as BranchGcFileSettings, ut as USAGE_SCAN_INTERVAL_RANGE } from "./config-C8kfugVN.js";
5
+ import { $ as PORT_RANGE, J as FLYING_ANIMALS_GAP_RANGE, K as FLYING_ANIMALS_DEFAULTS, Q as NON_NEGATIVE_NUMBER_RANGE, X as KEEP_MERGEABLE_TIMEOUT_MINUTES_RANGE, Y as FLYING_ANIMALS_SCALE_RANGE, Z as MEMORY_RESERVE_MB_RANGE, at as REPLAY_BUFFER_KB_RANGE, ct as USAGE_INTEGER_RANGES, d as USAGE_COST_MODES, dt as WORKFLOWS_MAX_ACTIONS_PER_POLL_RANGE, et as POSITIVE_NUMBER_RANGE, ft as WORKFLOWS_MAX_CONCURRENT_SESSIONS_RANGE, i as Config, it as POSTHOG_TRAFFIC_MULTIPLIER_RANGE, l as configIssueMessage, lt as USAGE_RETAIN_DAYS_RANGE, n as BUILTIN_AGENT_IDS, nt as POSTHOG_TRAFFIC_BASELINE_RANGE, ot as TASK_TITLE_TIMEOUT_RANGE, p as normalizeLegacyConfigNumbers, pt as UPDATE_CHANNELS, q as FLYING_ANIMALS_DURATION_RANGE, rt as POSTHOG_TRAFFIC_MIN_USERS_RANGE, s as RUNTIME_CONFIG_SCALAR_KEYS, st as USAGE_BUDGET_RANGE, t as AGENT_ID_SHAPE_MESSAGE, tt as POSTHOG_FIX_TIMEOUT_RANGE, u as BranchGcFileSettings, ut as USAGE_SCAN_INTERVAL_RANGE } from "./config-DqgKuhBG.js";
6
6
  import { n as isRecord } from "./coerce-NSst8oRP.js";
7
+ import { t as DEFAULT_TIMER_FNS } from "./timer-deps-u2DAQLok.js";
7
8
  import { d as writeJsonAtomicSync, f as writeTextAtomic, p as writeTextAtomicSync } from "./json-file-BjFK_eSH.js";
8
- import { f as TELEMETRY_KILL_SWITCH_FLAG, l as FeatureFlagsResponse, n as isExperimentalBuild } from "./build-channel-BFlbN47U.js";
9
+ import { f as TELEMETRY_KILL_SWITCH_FLAG, l as FeatureFlagsResponse, n as isExperimentalBuild } from "./build-channel-DGyhk8hO.js";
9
10
  import fs from "node:fs";
10
11
  import path from "node:path";
11
12
  import os from "node:os";
@@ -3737,7 +3738,7 @@ function readIsExperimentalBuild() {
3737
3738
  return isRecord(manifest) && isExperimentalBuild(manifest.version);
3738
3739
  }
3739
3740
  var IS_EXPERIMENTAL_BUILD = readIsExperimentalBuild();
3740
- function createConfigStore({ settingsDefaults, readTelemetryInstallId, isExperimentalBuild = IS_EXPERIMENTAL_BUILD } = {}) {
3741
+ function createConfigStore({ settingsDefaults, readTelemetryInstallId, isExperimentalBuild = IS_EXPERIMENTAL_BUILD, setTimeoutFn = DEFAULT_TIMER_FNS.setTimeoutFn, clearTimeoutFn = DEFAULT_TIMER_FNS.clearTimeoutFn } = {}) {
3741
3742
  const configPath = resolveConfigPath();
3742
3743
  const effectiveDefaults = {
3743
3744
  ...DEFAULT_CONFIG,
@@ -4001,8 +4002,8 @@ function createConfigStore({ settingsDefaults, readTelemetryInstallId, isExperim
4001
4002
  const targetName = path.basename(canonicalConfigPath);
4002
4003
  watcher = fs.watch(watchDir, (_event, filename) => {
4003
4004
  if (filename != null && !equalsIgnoringCaseOnWindows(path.basename(String(filename)), targetName)) return;
4004
- if (reloadTimer) clearTimeout(reloadTimer);
4005
- reloadTimer = setTimeout(() => {
4005
+ if (reloadTimer) clearTimeoutFn(reloadTimer);
4006
+ reloadTimer = setTimeoutFn(() => {
4006
4007
  fs.readFile(configPath, "utf8", handleConfigChange);
4007
4008
  }, 500);
4008
4009
  });
@@ -4011,7 +4012,7 @@ function createConfigStore({ settingsDefaults, readTelemetryInstallId, isExperim
4011
4012
  console.warn("[config] Failed to watch config.json:", errorMessage(watchErr));
4012
4013
  }
4013
4014
  return function stop() {
4014
- if (reloadTimer) clearTimeout(reloadTimer);
4015
+ if (reloadTimer) clearTimeoutFn(reloadTimer);
4015
4016
  if (watcher) try {
4016
4017
  watcher.close();
4017
4018
  } catch {}
@@ -1,4 +1,4 @@
1
- import { t as AGENT_API_VERBS } from "./session-BwlLY_mv.js";
1
+ import { t as AGENT_API_VERBS } from "./session-BF6eF7dw.js";
2
2
  import { r as execFileSync } from "./child-process-safe-D4hyVIXj.js";
3
3
  //#region server/core/command-line-core.ts
4
4
  var SUBCOMMANDS_HONORING_TRAILING_GLOBAL_OPTIONS = /* @__PURE__ */ new Set([
@@ -1,6 +1,6 @@
1
1
  import { r as errorMessage } from "./text-DoirglWV.js";
2
2
  import { s as relayPath } from "./runtime-paths-ghcH9CeW.js";
3
- import { j as SIGN_URL_ENV, n as AGENT_URL_ENV } from "./session-BwlLY_mv.js";
3
+ import { j as SIGN_URL_ENV, n as AGENT_URL_ENV } from "./session-BF6eF7dw.js";
4
4
  import { n as isRecord } from "./coerce-NSst8oRP.js";
5
5
  import { t as HOOK_URL_ENV } from "./hook-relay-core-DA_bz2KA.js";
6
6
  import { a as SANE_YOLO_PATH_ENV, o as saneYoloEnv, r as RTK_PATH_ENV } from "./rtk-hook-core-B-MpzPin.js";
@@ -3,13 +3,13 @@ import { a as isMissingFileError, i as errorText$1, r as errorMessage, t as erro
3
3
  import { a as sanitizeWorktreeName, i as safePathSegment, n as equalsIgnoringCaseOnWindows, r as isPathInside, t as caseFoldedPathKey } from "./paths-Bu4eH1Yd.js";
4
4
  import { c as resolvePackageBin, i as clientDir, n as bundled, o as packageRoot, r as cliPath, s as relayPath, t as assetRoot } from "./runtime-paths-ghcH9CeW.js";
5
5
  import { n as glimmervoidHomeDir, r as isOperatorHomeUnderTest, t as decideConfigPath } from "./config-path-core-DUWk0Lui.js";
6
- import { $ as MyPrMergeStateResponse, $t as MERGEABLE_LIVE_STATES, A as SHOWN_FILE_CAP_BYTES, At as TeamReviewResolveResponse, B as TaskTitle, C as ConversationQuestion, Ct as ReviewFinding, Dt as TeamReviewActionRequest, E as SESSION_DOC_BODY_CAP_BYTES, Et as ReviewVerdict, Ft as TeamReviewThreadsRepository, G as MyPrCheckContext, Gt as REPO_SLUG_RE, H as LinkedPr, Ht as shortSha, I as ShownFile, It as canApproveAfterComment, K as MyPrCheckContextsResponse, Kt as repoParts, Lt as decisionAsIfApprovalRequired, M as SSH_SIGN_BODY_CAP_BYTES, Mt as TeamReviewStatus, Nt as TeamReviewThreadCommentsResponse, O as SESSION_NAME_PATTERN, Pt as TeamReviewThreadResult, Qt as KILLABLE_STATES, R as SshSignRequest, St as ReviewDraft, Tt as ReviewThreadId, U as MyPr, Ut as GH_SEGMENT, Vt as HEX_SHA_RE, W as MyPrAutoRebase, Wt as NODE_ID_RE, X as MyPrMergeMethod, Y as MyPrLaneEntry, Z as MyPrMergeRequest, Zt as BADGE_LABELS, _ as CONVERSATION_PERMISSION_HOOK_EVENT, _t as PostedReviewEvent, at as MyPrsSnapshot, dt as CommitSha, en as RESTARTABLE_STATES, et as MyPrMergeWhenReadyRequest, ft as DECIDING_REVIEW_STATES, g as CONVERSATION_APPROVAL_SUMMARY_MAX_CHARS, gt as GithubReviewState, h as COHERENCE_HOOKS_INACTIVE, it as MyPrThreadsResponse, j as SIGN_URL_ENV, jt as TeamReviewStateEntry, k as SESSION_NAME_RULE_TEXT, kt as TeamReviewCompareFiles, mt as FindingSeverity, n as AGENT_URL_ENV, ot as MyPrsState, pt as EarlierReview, q as MyPrKeepMergeableRequest, r as ASK_USER_QUESTION_TOOL_NAME, rt as MyPrThreadNode, tn as STATES, v as CONVERSATION_TOOL_RESULT_HOOK_EVENT, vt as PostingPlan, wt as ReviewResult, xt as ReviewComment, yt as PrDetail, zt as hasStandingViewerApproval } from "./session-BwlLY_mv.js";
6
+ import { $ as MyPrMergeStateResponse, $t as MERGEABLE_LIVE_STATES, A as SHOWN_FILE_CAP_BYTES, At as TeamReviewResolveResponse, B as TaskTitle, C as ConversationQuestion, Ct as ReviewFinding, Dt as TeamReviewActionRequest, E as SESSION_DOC_BODY_CAP_BYTES, Et as ReviewVerdict, Ft as TeamReviewThreadsRepository, G as MyPrCheckContext, Gt as REPO_SLUG_RE, H as LinkedPr, Ht as shortSha, I as ShownFile, It as canApproveAfterComment, K as MyPrCheckContextsResponse, Kt as repoParts, Lt as decisionAsIfApprovalRequired, M as SSH_SIGN_BODY_CAP_BYTES, Mt as TeamReviewStatus, Nt as TeamReviewThreadCommentsResponse, O as SESSION_NAME_PATTERN, Pt as TeamReviewThreadResult, Qt as KILLABLE_STATES, R as SshSignRequest, St as ReviewDraft, Tt as ReviewThreadId, U as MyPr, Ut as GH_SEGMENT, Vt as HEX_SHA_RE, W as MyPrAutoRebase, Wt as NODE_ID_RE, X as MyPrMergeMethod, Y as MyPrLaneEntry, Z as MyPrMergeRequest, Zt as BADGE_LABELS, _ as CONVERSATION_PERMISSION_HOOK_EVENT, _t as PostedReviewEvent, at as MyPrsSnapshot, dt as CommitSha, en as RESTARTABLE_STATES, et as MyPrMergeWhenReadyRequest, ft as DECIDING_REVIEW_STATES, g as CONVERSATION_APPROVAL_SUMMARY_MAX_CHARS, gt as GithubReviewState, h as COHERENCE_HOOKS_INACTIVE, it as MyPrThreadsResponse, j as SIGN_URL_ENV, jt as TeamReviewStateEntry, k as SESSION_NAME_RULE_TEXT, kt as TeamReviewCompareFiles, mt as FindingSeverity, n as AGENT_URL_ENV, ot as MyPrsState, pt as EarlierReview, q as MyPrKeepMergeableRequest, r as ASK_USER_QUESTION_TOOL_NAME, rt as MyPrThreadNode, tn as STATES, v as CONVERSATION_TOOL_RESULT_HOOK_EVENT, vt as PostingPlan, wt as ReviewResult, xt as ReviewComment, yt as PrDetail, zt as hasStandingViewerApproval } from "./session-BF6eF7dw.js";
7
7
  import { n as execFileAsync, o as spawn, r as execFileSync, t as execFile } from "./child-process-safe-D4hyVIXj.js";
8
- import { A as BenchmarkRun, At as parseExitPlanModeHookPayload, B as GithubPrsFrame, Ct as PLAN_BODY_CAP_BYTES, D as BenchmarkCase, Dt as PLAN_TOOL_NAME, E as BenchmarkActionRequest, Et as PLAN_RESULT_HOOK_EVENT, F as MinedPrReviewData, Ft as IssueUpdate, G as WorkflowsState, H as WorkflowCommentBody, I as PrCheckoutCaseInput, It as IssuesSearchResponse, L as GithubPrDetailNode, Lt as IssuesState, M as BenchmarkSuite, Mt as GithubIssuePullRequestsRepository, N as CommitComparison, Nt as GithubIssueResponse, O as BenchmarkId, Ot as PlanDecision, P as MergedPrListing, Pt as IssueKey, R as GithubPrKey, Rt as IssuesStatus, St as changeMapFactId, T as pullRequestKeyFromReference, Tt as PLAN_HOOK_OUTPUT_MAX_CHARS, U as WorkflowLabelName, V as comparablePrKey, W as WorkflowsSettings, X as KEEP_MERGEABLE_TIMEOUT_MINUTES_RANGE, _ as CONTROL_FRAME_MAX_BYTES, _t as MAX_RAW_LINE_CHARS, a as ConfigUpdate, bt as CoherenceJournalOutput, ct as USAGE_INTEGER_RANGES, d as USAGE_COST_MODES, f as USAGE_VENDOR_KEYS, g as CLIENT_LOG_TEXT_MAX_CHARS, gt as SessionSetup, ht as UpdateJournal, j as BenchmarkStatus, jt as planTitle, k as BenchmarkJudgement, kt as PlanRevision, l as configIssueMessage, m as CHANGES_POLL_INTERVAL_MS, r as BrowserConfig, s as RUNTIME_CONFIG_SCALAR_KEYS, v as ClientMessage, vt as TraceCheckpoint, wt as PLAN_HOOK_EVENT, xt as ChangeMap, yt as TraceRecord, z as GithubPrLightSearchNode, zt as issuePullRequestStateFromGithub } from "./config-C8kfugVN.js";
9
- import { a as permitsHelpCommand, r as describeSessionLimits } from "./session-routes-CviNvxcz.js";
10
- import { A as seedTaskTitleSources, B as listRepoWorktreePaths, C as extractPromptTaskTitle, D as parseRefinedTaskTitle, E as parseRefinedSessionName, F as resumePromptFor, H as nextSuggestedName, I as shouldAdoptReportedResumeId, L as claudeProjectsDir, M as RESUME_ID_RE, N as pickAutoResume, O as resolveRefocusTaskTitle, P as resolveResumeTarget, R as encodeProjectDir, S as extractOscTaskTitle, T as isSubstantivePrompt, V as isAutoNameOf, _ as buildTaskTitleRefinementPrompt, a as decideSpawnAllowance, b as decideTaskTitleRefinement, c as describeKeptChildAttention, d as describeUnpushedCloseRefusal, g as buildPersistedTaskTitle, h as projectReviews, i as decideAgentRequest, j as AUTO_CONTINUE_PROMPT, k as resolveTaskTitle, l as describePushLanding, m as projectMyPrs, n as REFUSAL_REASON, o as deriveChildSessionName, p as parseAgentVerb, s as describeChildEndNote, u as describeRoleRefusal, v as chooseRefinedSessionName, w as isSelfWakePrompt, x as extractAiTitle, y as cleanTaskPrompt, z as listRepoConversations } from "./agent-api-core-Bul8RBo6.js";
8
+ import { A as BenchmarkRun, At as parseExitPlanModeHookPayload, B as GithubPrsFrame, Ct as PLAN_BODY_CAP_BYTES, D as BenchmarkCase, Dt as PLAN_TOOL_NAME, E as BenchmarkActionRequest, Et as PLAN_RESULT_HOOK_EVENT, F as MinedPrReviewData, Ft as IssueUpdate, G as WorkflowsState, H as WorkflowCommentBody, I as PrCheckoutCaseInput, It as IssuesSearchResponse, L as GithubPrDetailNode, Lt as IssuesState, M as BenchmarkSuite, Mt as GithubIssuePullRequestsRepository, N as CommitComparison, Nt as GithubIssueResponse, O as BenchmarkId, Ot as PlanDecision, P as MergedPrListing, Pt as IssueKey, R as GithubPrKey, Rt as IssuesStatus, St as changeMapFactId, T as pullRequestKeyFromReference, Tt as PLAN_HOOK_OUTPUT_MAX_CHARS, U as WorkflowLabelName, V as comparablePrKey, W as WorkflowsSettings, X as KEEP_MERGEABLE_TIMEOUT_MINUTES_RANGE, _ as CONTROL_FRAME_MAX_BYTES, _t as MAX_RAW_LINE_CHARS, a as ConfigUpdate, bt as CoherenceJournalOutput, ct as USAGE_INTEGER_RANGES, d as USAGE_COST_MODES, f as USAGE_VENDOR_KEYS, g as CLIENT_LOG_TEXT_MAX_CHARS, gt as SessionSetup, ht as UpdateJournal, j as BenchmarkStatus, jt as planTitle, k as BenchmarkJudgement, kt as PlanRevision, l as configIssueMessage, m as CHANGES_POLL_INTERVAL_MS, r as BrowserConfig, s as RUNTIME_CONFIG_SCALAR_KEYS, v as ClientMessage, vt as TraceCheckpoint, wt as PLAN_HOOK_EVENT, xt as ChangeMap, yt as TraceRecord, z as GithubPrLightSearchNode, zt as issuePullRequestStateFromGithub } from "./config-DqgKuhBG.js";
9
+ import { a as permitsHelpCommand, r as describeSessionLimits } from "./session-routes-gzOQJb1W.js";
10
+ import { A as seedTaskTitleSources, B as listRepoWorktreePaths, C as extractPromptTaskTitle, D as parseRefinedTaskTitle, E as parseRefinedSessionName, F as resumePromptFor, H as nextSuggestedName, I as shouldAdoptReportedResumeId, L as claudeProjectsDir, M as RESUME_ID_RE, N as pickAutoResume, O as resolveRefocusTaskTitle, P as resolveResumeTarget, R as encodeProjectDir, S as extractOscTaskTitle, T as isSubstantivePrompt, V as isAutoNameOf, _ as buildTaskTitleRefinementPrompt, a as decideSpawnAllowance, b as decideTaskTitleRefinement, c as describeKeptChildAttention, d as describeUnpushedCloseRefusal, g as buildPersistedTaskTitle, h as projectReviews, i as decideAgentRequest, j as AUTO_CONTINUE_PROMPT, k as resolveTaskTitle, l as describePushLanding, m as projectMyPrs, n as REFUSAL_REASON, o as deriveChildSessionName, p as parseAgentVerb, s as describeChildEndNote, u as describeRoleRefusal, v as chooseRefinedSessionName, w as isSelfWakePrompt, x as extractAiTitle, y as cleanTaskPrompt, z as listRepoConversations } from "./agent-api-core-BSdwxYJs.js";
11
11
  import { a as positiveIntOr, c as textOr, i as numberOr, n as isRecord, o as positiveNumberOr, r as nonNegativeIntOr, s as rawTextOr, t as coercedNumberOr } from "./coerce-NSst8oRP.js";
12
- import { i as parseCommandLine, n as warnWhenGitIsTooOld } from "./git-version-BpdkKH2j.js";
12
+ import { i as parseCommandLine, n as warnWhenGitIsTooOld } from "./git-version-C-IkI4sr.js";
13
13
  import { n as checkGuardrailsDependencies, t as allowGuardedSpawn } from "./guardrails-deps-BjPzk1rE.js";
14
14
  import { t as HOOK_URL_ENV } from "./hook-relay-core-DA_bz2KA.js";
15
15
  import { t as HOOK_VIA_GUARDRAILS_PROXY_ENV } from "./guardrails-proxy-core-BI3rdY-m.js";
@@ -19,16 +19,16 @@ import { s as saneYoloFiles } from "./rtk-hook-core-B-MpzPin.js";
19
19
  import { _ as lineStartOffsets, a as projectForUri, b as replacedSpanOfWholeTextChange, c as visionsLaneReloadSignature, d as applyDidOpen, f as createDocStore, g as lineOfOffset, h as getDoc, i as isUriInProjects, l as applyDidChange, m as formatRange, n as applyEditorNotification, o as resolveVisionsScopeProjects, p as detectBlankLineBoundary, r as createEditorState, s as scopePathsOf, t as ACTIVITY_METHOD, u as applyDidClose, v as listDocs, x as uriOfParams, y as offsetOfPosition } from "./ingest-editor-core-B2tycW_m.js";
20
20
  import { n as DEFAULT_MAX_MS, r as nextBackoffMs, t as DEFAULT_BASE_MS } from "./backoff-DjVpfHk7.js";
21
21
  import { n as unrefTimer, t as DEFAULT_TIMER_FNS } from "./timer-deps-u2DAQLok.js";
22
- import { a as readPageTitle, i as filesAfterRetention, n as decideShownKind, o as shownMimeForFilename, r as describeOverCap, t as SHOWN_SNIFF_BYTES } from "./shown-files-core-soMzCQ1D.js";
22
+ import { a as readPageTitle, i as filesAfterRetention, n as decideShownKind, o as shownMimeForFilename, r as describeOverCap, t as SHOWN_SNIFF_BYTES } from "./shown-files-core-Bkuessu6.js";
23
23
  import { n as shellQuote } from "./hook-command-core-qTNK-xMF.js";
24
24
  import { C as parseCgroupBytes, S as memoryReserveBytes, T as parseMemAvailableBytes, _ as createSpawnGate, a as jsonStateLoadError, b as cgroupLimitBytes, c as loadedJsonValue, d as writeJsonAtomicSync, f as writeTextAtomic, g as createSerialQueue, h as createMemoryAdmission, i as createJsonStateWriter, m as createKeyedSerialQueue, n as appendJsonLines, o as loadJsonStateFile, p as writeTextAtomicSync, r as createJsonStateStore, s as loadJsonStateFileSync, t as appendJsonLine, u as writeJsonAtomic, v as isQueueAdmissionTimeout, w as parseCgroupV2Path, x as headroomFromReadings, y as cgroupAncestorPaths } from "./json-file-BjFK_eSH.js";
25
- import { $ as resolveProjectToken, B as buildAiGenerationEvents, G as claudeAccountUuidOf, H as buildExceptionProperties, I as FIRST_RUN_NOTICE, J as decideRemoteTelemetryState, K as codexUserIdOf, L as TELEMETRY_BATCH_URL, Q as parsePosthogReleaseId, R as TELEMETRY_FLAGS_URL, S as validateSettingsBlock, U as buildPersonProperties, V as buildBrowserExceptionProperties, W as classifySessionExit, X as exceptionFingerprint, Y as decideTelemetryConsent, Z as nodeMajorVersion, _ as isRtkBinaryName, a as ensureProjectIds, at as matchedPrefix, b as mergeSettingsBlock, ct as sessionIdFromBranch, dt as canonicalizePath, ft as comparableDirectoryPath, g as installTargetPath, h as findEscapingArchiveMember, i as createConfigStore, it as DEFAULT_BRANCH_GC_PREFIXES, lt as usablePrefixes, m as decideRtkInstall, n as DEFAULT_CONFIG, nt as stableConfigKey, o as generateProjectId, ot as planBranchGc, p as assetForPlatform, pt as isSameDirectoryPath, q as decideIsDevInstall, s as glimmervoidHomeDir$1, st as planWorktreeGc, t as ABORT_CONFIG_SAVE, ut as worktreeIntegrationTips, v as verifyDigest, x as settingsBlockSpecFor, z as adapterBucket } from "./config-store-sSqr3E3v.js";
26
- import { a as DEEP_HISTORY_SCROLLBACK_LINES, c as DashboardTelemetryReport, d as TELEMETRY_EVENT_SCHEMAS, i as HookEnvelope, o as parseDataAttach, p as TelemetryState, r as HTTP_URL_RE, s as parseDataClientMessage, u as PendingCrashReport } from "./build-channel-BFlbN47U.js";
27
- import { A as decideFileRead, B as shouldEvaluateDespiteIoFailures, C as pickNewestPublished, D as codexRootCandidates, E as codexHomes, F as isUsageFile, H as splitLines$1, I as passOutcome, L as projectDirCandidates, M as expandTilde, N as grokHomes, O as codexSessionIdFromPath, P as grokRootCandidates, R as resolveProjectsDirs, S as parseResolvedSha, T as codexFallbackRoots, U as claudeCode, V as shouldPersistWarehouse, _ as isCheckFresh, a as describeAgentResolvability, b as parseRegistryDeprecation, c as isKnownAgentId, d as resolveAdapter, f as setCustomAgents, g as decideUpdateStatus, h as decideInstallFlavor, i as customAgentFingerprint, j as dedupeCodexFiles, k as continuationDelayMs, l as listAgentIds, m as readHostCodexVersion, n as cachedAgentResolvability, o as getAdapter, p as codex, r as commandFor, s as hookProfileOf, t as DEFAULT_AGENT_ID, u as resetCommandCache, v as normalizeSha, w as shortSha$1, x as parseRegistryLatest, y as normalizeUpdateChannel, z as scopedClaudeRoots } from "./adapters-MedfwWEt.js";
25
+ import { $ as resolveProjectToken, B as buildAiGenerationEvents, G as claudeAccountUuidOf, H as buildExceptionProperties, I as FIRST_RUN_NOTICE, J as decideRemoteTelemetryState, K as codexUserIdOf, L as TELEMETRY_BATCH_URL, Q as parsePosthogReleaseId, R as TELEMETRY_FLAGS_URL, S as validateSettingsBlock, U as buildPersonProperties, V as buildBrowserExceptionProperties, W as classifySessionExit, X as exceptionFingerprint, Y as decideTelemetryConsent, Z as nodeMajorVersion, _ as isRtkBinaryName, a as ensureProjectIds, at as matchedPrefix, b as mergeSettingsBlock, ct as sessionIdFromBranch, dt as canonicalizePath, ft as comparableDirectoryPath, g as installTargetPath, h as findEscapingArchiveMember, i as createConfigStore, it as DEFAULT_BRANCH_GC_PREFIXES, lt as usablePrefixes, m as decideRtkInstall, n as DEFAULT_CONFIG, nt as stableConfigKey, o as generateProjectId, ot as planBranchGc, p as assetForPlatform, pt as isSameDirectoryPath, q as decideIsDevInstall, s as glimmervoidHomeDir$1, st as planWorktreeGc, t as ABORT_CONFIG_SAVE, ut as worktreeIntegrationTips, v as verifyDigest, x as settingsBlockSpecFor, z as adapterBucket } from "./config-store-GMSs3pKP.js";
26
+ import { a as DEEP_HISTORY_SCROLLBACK_LINES, c as DashboardTelemetryReport, d as TELEMETRY_EVENT_SCHEMAS, i as HookEnvelope, o as parseDataAttach, p as TelemetryState, r as HTTP_URL_RE, s as parseDataClientMessage, u as PendingCrashReport } from "./build-channel-DGyhk8hO.js";
27
+ import { A as decideFileRead, B as shouldEvaluateDespiteIoFailures, C as pickNewestPublished, D as codexRootCandidates, E as codexHomes, F as isUsageFile, H as splitLines$1, I as passOutcome, L as projectDirCandidates, M as expandTilde, N as grokHomes, O as codexSessionIdFromPath, P as grokRootCandidates, R as resolveProjectsDirs, S as parseResolvedSha, T as codexFallbackRoots, U as claudeCode, V as shouldPersistWarehouse, _ as isCheckFresh, a as describeAgentResolvability, b as parseRegistryDeprecation, c as isKnownAgentId, d as resolveAdapter, f as setCustomAgents, g as decideUpdateStatus, h as decideInstallFlavor, i as customAgentFingerprint, j as dedupeCodexFiles, k as continuationDelayMs, l as listAgentIds, m as readHostCodexVersion, n as cachedAgentResolvability, o as getAdapter, p as codex, r as commandFor, s as hookProfileOf, t as DEFAULT_AGENT_ID, u as resetCommandCache, v as normalizeSha, w as shortSha$1, x as parseRegistryLatest, y as normalizeUpdateChannel, z as scopedClaudeRoots } from "./adapters-BpjX0djP.js";
28
28
  import { t as HOOK_TOOLS } from "./hook-tools-Dl7-r2Eb.js";
29
29
  import { a as formatSshPublicKey, c as orderAgentSockets, i as commitSigningShimText, l as parseSshPublicKey, n as NO_AGENT_HOLDS_KEY, o as isForwardedAgentDirName, r as agentListsKey, s as isSignableGitObject, t as COMMIT_SIGNING_SHIM_NAME } from "./ssh-signing-core-CRhVVWNW.js";
30
- import { a as configSiblingPath, c as defaultPairingsPath, d as decideDeviceAuth, f as deviceNameFromUserAgent, l as defaultSeenPath, n as normalizeRemoteConfig, o as createPairingsStore, p as hashSecret, r as validateRemoteConfig, s as createSeenStore, t as decideBindHost, u as DEFAULT_DEVICE_MAX_AGE_MS } from "./remote-config-CEaLpe86.js";
31
- import { n as configFileViewOf, u as readSettingsForAgent } from "./settings-readout-core-BVBHnzSn.js";
30
+ import { a as configSiblingPath, c as defaultPairingsPath, d as decideDeviceAuth, f as deviceNameFromUserAgent, l as defaultSeenPath, n as normalizeRemoteConfig, o as createPairingsStore, p as hashSecret, r as validateRemoteConfig, s as createSeenStore, t as decideBindHost, u as DEFAULT_DEVICE_MAX_AGE_MS } from "./remote-config-Bt3ebJY1.js";
31
+ import { n as configFileViewOf, u as readSettingsForAgent } from "./settings-readout-core-C3kVbO18.js";
32
32
  import { _ as escapeMarkup, g as createLaneLog, n as createVisionsSetup } from "./visions-setup-VMMyqOpl.js";
33
33
  import { t as getRtkPath } from "./rtk-resolver-C_IReILP.js";
34
34
  import { createRequire } from "node:module";
@@ -1,6 +1,6 @@
1
1
  import { r as errorMessage } from "./text-DoirglWV.js";
2
- import { l as resolveConfigPath } from "./config-store-sSqr3E3v.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-CEaLpe86.js";
2
+ import { l as resolveConfigPath } from "./config-store-GMSs3pKP.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-Bt3ebJY1.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-BjFK_eSH.js";
6
- import { dt as canonicalizePath, s as glimmervoidHomeDir } from "./config-store-sSqr3E3v.js";
6
+ import { dt as canonicalizePath, s as glimmervoidHomeDir } from "./config-store-GMSs3pKP.js";
7
7
  import fs from "node:fs";
8
8
  import path from "node:path";
9
9
  import crypto from "node:crypto";
@@ -871,19 +871,6 @@ var MyPrMergeStateResponse = z.object({
871
871
  }).nullable() }).nullable() }),
872
872
  errors: z.array(z.unknown()).optional()
873
873
  });
874
- z.object({
875
- data: z.object({
876
- open: z.object({
877
- issueCount: nonnegativeInteger,
878
- nodes: z.array(z.unknown())
879
- }),
880
- merged: z.object({
881
- issueCount: nonnegativeInteger,
882
- nodes: z.array(z.unknown())
883
- })
884
- }),
885
- errors: z.array(z.unknown()).optional()
886
- });
887
874
  var SESSION_NAME_PATTERN = /^[a-zA-Z0-9_\-. ()]{1,64}$/;
888
875
  var SESSION_NAME_RULE_TEXT = "Session name may only contain letters, numbers, spaces, dashes, dots, underscores, and parentheses (max 64 chars)";
889
876
  var TASK_TITLE_CONTROL_CHARACTERS = /[\x00-\x1f\x7f-\x9f]/;
@@ -1,4 +1,4 @@
1
- import { T as SESSION_COMMANDS } from "./session-BwlLY_mv.js";
1
+ import { T as SESSION_COMMANDS } from "./session-BF6eF7dw.js";
2
2
  //#region session/core/session-routes.ts
3
3
  var SUPERVISION_LINE = "Glimmervoid supervises this session. Run glimmervoid --help for the commands it gives you and this session's limits.";
4
4
  var SPAWN_LINE = "To delegate work that edits files or runs long, use glimmervoid spawn rather than an in-process subagent: the spawned session gets its own dashboard card the operator can watch. An in-process subagent stays fine for a quick read-only lookup.";
@@ -1,11 +1,11 @@
1
1
  import { r as errorMessage, t as errorCode } from "./text-DoirglWV.js";
2
2
  import { n as glimmervoidHomeDir, t as decideConfigPath } from "./config-path-core-DUWk0Lui.js";
3
- import { f as AgentSettingsReply } from "./session-BwlLY_mv.js";
4
- import { r as BrowserConfig } from "./config-C8kfugVN.js";
3
+ import { f as AgentSettingsReply } from "./session-BF6eF7dw.js";
4
+ import { r as BrowserConfig } from "./config-DqgKuhBG.js";
5
5
  import { n as isRecord } from "./coerce-NSst8oRP.js";
6
6
  import { t as renderTable } from "./ascii-figure-core-pDAwtlKO.js";
7
- import { A as setValueAtPath, F as SETTINGS_REGISTRY, N as valueAtPath, O as parsePosthogProjectSelection, T as deleteValueAtPath, c as loadConfigFile, d as validateConfig, et as ENV_SECRET_BINDINGS, f as isSettingAvailable, k as scoreSettingsSearch, r as IS_EXPERIMENTAL_BUILD, rt as withEnvSecrets, tt as readEnvSecrets, u as saveConfigFileOnce, w as cloneValue } from "./config-store-sSqr3E3v.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 availableSettings } from "./settings-readout-core-BVBHnzSn.js";
7
+ import { A as setValueAtPath, F as SETTINGS_REGISTRY, N as valueAtPath, O as parsePosthogProjectSelection, T as deleteValueAtPath, c as loadConfigFile, d as validateConfig, et as ENV_SECRET_BINDINGS, f as isSettingAvailable, k as scoreSettingsSearch, r as IS_EXPERIMENTAL_BUILD, rt as withEnvSecrets, tt as readEnvSecrets, u as saveConfigFileOnce, w as cloneValue } from "./config-store-GMSs3pKP.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 availableSettings } from "./settings-readout-core-C3kVbO18.js";
9
9
  import fs from "node:fs";
10
10
  import os from "node:os";
11
11
  import { parseArgs } from "node:util";
@@ -330,7 +330,7 @@ function processIo() {
330
330
  async function runSettingsCli(commandArguments, io = processIo()) {
331
331
  const serverRequest = settingsRequestForServer(commandArguments, process.env);
332
332
  if (!serverRequest) return runSettingsCommand(commandArguments, io);
333
- const { askAgentApi } = await import("./agent-api-cli-21VH66DW.js");
333
+ const { askAgentApi } = await import("./agent-api-cli-Cpez-uww.js");
334
334
  const reply = AgentSettingsReply.safeParse(await askAgentApi("settings", serverRequest).catch((error) => ({
335
335
  ok: false,
336
336
  error: errorMessage(error)
@@ -1,6 +1,6 @@
1
- import { p as AgentSettingsRequest } from "./session-BwlLY_mv.js";
1
+ import { p as AgentSettingsRequest } from "./session-BF6eF7dw.js";
2
2
  import { t as renderTable } from "./ascii-figure-core-pDAwtlKO.js";
3
- import { C as SETTINGS_INDEX, D as hasScaledUnit, E as displayText, F as SETTINGS_REGISTRY, M as settingsOf, N as valueAtPath, P as FILE_ONLY_GROUPS, f as isSettingAvailable, j as settingsGroupOf, tt as readEnvSecrets, w as cloneValue } from "./config-store-sSqr3E3v.js";
3
+ import { C as SETTINGS_INDEX, D as hasScaledUnit, E as displayText, F as SETTINGS_REGISTRY, M as settingsOf, N as valueAtPath, P as FILE_ONLY_GROUPS, f as isSettingAvailable, j as settingsGroupOf, tt as readEnvSecrets, w as cloneValue } from "./config-store-GMSs3pKP.js";
4
4
  import { parseArgs } from "node:util";
5
5
  //#region server/core/settings-readout-core.ts
6
6
  var VALUE_COLUMN_WIDTH = 40;
@@ -1,4 +1,4 @@
1
- import { A as SHOWN_FILE_CAP_BYTES } from "./session-BwlLY_mv.js";
1
+ import { A as SHOWN_FILE_CAP_BYTES } from "./session-BF6eF7dw.js";
2
2
  import path from "node:path";
3
3
  //#region server/core/shown-files-core.ts
4
4
  var SHOWN_SNIFF_BYTES = 65536;
@@ -1,8 +1,8 @@
1
1
  import { r as errorMessage } from "./text-DoirglWV.js";
2
- import { L as SshSignReply, j as SIGN_URL_ENV } from "./session-BwlLY_mv.js";
2
+ import { L as SshSignReply, j as SIGN_URL_ENV } from "./session-BF6eF7dw.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-Ctyl-wQE.js";
5
+ import { n as postToAgentIngress } from "./agent-api-cli-LGGAxmEI.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";
@@ -1 +1 @@
1
- import{C as e,gt as t,o as n,x as r,yt as i}from"./dom-helpers-BQnoww4P.js";import{l as a,u as o}from"./control-ws-CR2udDof.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`,g=`M8 1.8l5.2 2v4c0 3.2-2.2 5.4-5.2 6.4c-3-1-5.2-3.2-5.2-6.4v-4z`,_=`${g}M2 2l12 12`,v=`M9.2 1.5L3.5 9h4.3l-1 5.5L12.5 7H8.2z`,y=`M8.7 4.2L5.6 8.6h2.5l-.6 3.2l3.1-4.4H8.1z`,b=`M3 13V9M8 13V3M13 13V6.5`;function x(e,t=`2`){let n=l(16,16);return n.classList.add(`line-icon`),n.append(c(`path`,{d:e,fill:`none`,stroke:`currentColor`,"stroke-width":t,"stroke-linecap":`round`,"stroke-linejoin":`round`})),n}function S(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 C(e){let t=document.createElement(`span`);t.className=`status-icon`,t.dataset.icon=e;for(let n of r[e])t.append(S(n.tag,n.attributes));return t}function w(e,t){e.dataset.icon!==t&&(e.dataset.icon=t,e.replaceChildren(C(t)))}var T={busy:`text-text-muted`,ok:`text-state-done`,error:`text-state-failed`},E=15e3,D=`Something went wrong. Details are hidden in streamer mode.`;function O(e,t){return e!==`error`||t.startsWith(`Not connected to the server. Reconnecting.`)?t:document.documentElement.hasAttribute(`data-streamer`)?D:t}var k={busy:`working`,ok:`complete`,error:`failed`};function A(e){let t=e.querySelector(`:scope > .action-status-icon`),r=e.querySelector(`:scope > .action-status-text`);if(t&&r&&e.childNodes.length===2)return{iconElement:t,textElement:r};let i=n(`span`,`action-status-icon`);i.setAttribute(`aria-hidden`,`true`);let a=n(`span`,`action-status-text`);return e.replaceChildren(i,a),{iconElement:i,textElement:a}}function j(e){e.replaceChildren(),delete e.dataset.tone}function M(e,t,n){if(!n){j(e);return}if(!t){j(e),e.textContent=n;return}e.dataset.tone=t;let{iconElement:r,textElement:i}=A(e);w(r,k[t]),i.textContent=O(t,n)}function N(e=`action-status`){let t=n(`p`,e);return t.setAttribute(`role`,`status`),t.hidden=!0,{element:t,show:(n,r)=>{t.className=`${e} text-xs ${T[n]}`,M(t,n,r),t.hidden=!r},clear:()=>{t.hidden=!0,j(t)}}}function P(t,n){return a(t)?!0:(n.show(`error`,e),!1)}function F(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 I(e,t,n,{busyText:r,timeoutMs:i=E}={}){r&&n.show(`busy`,r);try{let r=await o(e,t,{timeoutMs:i});return n.clear(),r}catch(e){return n.show(`error`,F(e,i)),null}}var L=null,R=3e4,z=null;function B(){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`,G)),{line:e,text:t,age:n})}function V(){let e=B();if(!e||!L)return;let n=i(Date.now()-L.raisedAt,{...t,justNowBelowSeconds:60});e.age.textContent!==n&&(e.age.textContent=n)}function H({source:e,sessionId:t,message:r,hidesInStreamerMode:i=!0}){let a=B();if(!a)return;let o=i?O(`error`,r):r,s=n(`strong`,`header-status-source`,e);a.text.replaceChildren(s,` ${o}`),a.text.title=`${e}: ${o}`,L={source:e,sessionId:t??null,raisedAt:Date.now()},V(),z??=window.setInterval(V,R),a.line.hidden=!1}function U(e,t){L?.source===e&&(t===void 0||L.sessionId===t)&&G()}function W(e){L?.sessionId===e&&G()}function G(){L=null,z!==null&&window.clearInterval(z),z=null;let e=B();e&&(e.line.hidden=!0,e.text.replaceChildren(),e.text.title=``,e.age.textContent=``)}export{l as C,x as S,y as _,M as a,f as b,I as c,v as d,m as f,d as g,p as h,N as i,P as l,h as m,U as n,H as o,u as p,W as r,F as s,E as t,w as u,g as v,c as w,b as x,_ as y};
1
+ import{C as e,gt as t,o as n,x as r,yt as i}from"./dom-helpers-D7V9q-Y4.js";import{l as a,u as o}from"./control-ws-6I4n2_Rl.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`,g=`M8 1.8l5.2 2v4c0 3.2-2.2 5.4-5.2 6.4c-3-1-5.2-3.2-5.2-6.4v-4z`,_=`${g}M2 2l12 12`,v=`M9.2 1.5L3.5 9h4.3l-1 5.5L12.5 7H8.2z`,y=`M8.7 4.2L5.6 8.6h2.5l-.6 3.2l3.1-4.4H8.1z`,b=`M3 13V9M8 13V3M13 13V6.5`;function x(e,t=`2`){let n=l(16,16);return n.classList.add(`line-icon`),n.append(c(`path`,{d:e,fill:`none`,stroke:`currentColor`,"stroke-width":t,"stroke-linecap":`round`,"stroke-linejoin":`round`})),n}function S(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 C(e){let t=document.createElement(`span`);t.className=`status-icon`,t.dataset.icon=e;for(let n of r[e])t.append(S(n.tag,n.attributes));return t}function w(e,t){e.dataset.icon!==t&&(e.dataset.icon=t,e.replaceChildren(C(t)))}var T={busy:`text-text-muted`,ok:`text-state-done`,error:`text-state-failed`},E=15e3,D=`Something went wrong. Details are hidden in streamer mode.`;function O(e,t){return e!==`error`||t.startsWith(`Not connected to the server. Reconnecting.`)?t:document.documentElement.hasAttribute(`data-streamer`)?D:t}var k={busy:`working`,ok:`complete`,error:`failed`};function A(e){let t=e.querySelector(`:scope > .action-status-icon`),r=e.querySelector(`:scope > .action-status-text`);if(t&&r&&e.childNodes.length===2)return{iconElement:t,textElement:r};let i=n(`span`,`action-status-icon`);i.setAttribute(`aria-hidden`,`true`);let a=n(`span`,`action-status-text`);return e.replaceChildren(i,a),{iconElement:i,textElement:a}}function j(e){e.replaceChildren(),delete e.dataset.tone}function M(e,t,n){if(!n){j(e);return}if(!t){j(e),e.textContent=n;return}e.dataset.tone=t;let{iconElement:r,textElement:i}=A(e);w(r,k[t]),i.textContent=O(t,n)}function N(e=`action-status`){let t=n(`p`,e);return t.setAttribute(`role`,`status`),t.hidden=!0,{element:t,show:(n,r)=>{t.className=`${e} text-xs ${T[n]}`,M(t,n,r),t.hidden=!r},clear:()=>{t.hidden=!0,j(t)}}}function P(t,n){return a(t)?!0:(n.show(`error`,e),!1)}function F(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 I(e,t,n,{busyText:r,timeoutMs:i=E}={}){r&&n.show(`busy`,r);try{let r=await o(e,t,{timeoutMs:i});return n.clear(),r}catch(e){return n.show(`error`,F(e,i)),null}}var L=null,R=3e4,z=null;function B(){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`,G)),{line:e,text:t,age:n})}function V(){let e=B();if(!e||!L)return;let n=i(Date.now()-L.raisedAt,{...t,justNowBelowSeconds:60});e.age.textContent!==n&&(e.age.textContent=n)}function H({source:e,sessionId:t,message:r,hidesInStreamerMode:i=!0}){let a=B();if(!a)return;let o=i?O(`error`,r):r,s=n(`strong`,`header-status-source`,e);a.text.replaceChildren(s,` ${o}`),a.text.title=`${e}: ${o}`,L={source:e,sessionId:t??null,raisedAt:Date.now()},V(),z??=window.setInterval(V,R),a.line.hidden=!1}function U(e,t){L?.source===e&&(t===void 0||L.sessionId===t)&&G()}function W(e){L?.sessionId===e&&G()}function G(){L=null,z!==null&&window.clearInterval(z),z=null;let e=B();e&&(e.line.hidden=!0,e.text.replaceChildren(),e.text.title=``,e.age.textContent=``)}export{l as C,x as S,y as _,M as a,f as b,I as c,v as d,m as f,d as g,p as h,N as i,P as l,h as m,U as n,H as o,u as p,W as r,F as s,E as t,w as u,g as v,c as w,b as x,_ as y};
@@ -1 +1 @@
1
- import{n as e,o as t,r as n}from"./dom-helpers-BQnoww4P.js";import{H as r,U as i,W as a}from"./index-ByHIcR0N.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 a=t(`button`,`bench-action-button`,o[n]);return a.type=`button`,a.disabled=r,a.addEventListener(`click`,()=>i(e.id,n)),a}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,i){let{isServerConnected:a,pendingActionBySuite:o,outcomeBySuite:s}=r(),c=t(`div`,`bench-suite`),l=e.inFlight?.suiteId===i.id,f=!!e.inFlight&&!l,m=o.has(i.id)||!a,h=t(`div`,`bench-summary`);h.append(t(`span`,`bench-suite-title`,i.title),n(`bench`,i.caseCount===1?`case`:`cases`,String(i.caseCount)),n(`bench`,i.candidateCount===1?`candidate`:`candidates`,String(i.candidateCount)),n(`bench`,`arms`,String(i.armIds.length))),c.append(h);let g=t(`div`,`bench-controls`),_=e.configured===!0&&i.error===null;g.append(u(i,`mine`,!_||m||l),u(i,`run`,!_||m||l||f||i.caseCount===0),u(i,`cancel`,m||!l));let v=t(`span`,`bench-status`,(a?``:`Not connected to the server. Reconnecting.`)||d(e,i)||s.get(i.id)||``);if(v.setAttribute(`role`,`status`),g.append(v),c.append(g),i.error)return c.append(t(`p`,`bench-error`,i.error)),c;let y=i.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`,i.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}=r(),i=e(`bench`,`Benchmarks`,`Suites from the benchmarks folder of the Glimmervoid home, one run at a time.`);if(s.append(i),!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),a(h),h())}var _={mount:g};export{_ as view};
1
+ import{n as e,o as t,r as n}from"./dom-helpers-D7V9q-Y4.js";import{H as r,U as i,W as a}from"./index-DFKfA_59.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 a=t(`button`,`bench-action-button`,o[n]);return a.type=`button`,a.disabled=r,a.addEventListener(`click`,()=>i(e.id,n)),a}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,i){let{isServerConnected:a,pendingActionBySuite:o,outcomeBySuite:s}=r(),c=t(`div`,`bench-suite`),l=e.inFlight?.suiteId===i.id,f=!!e.inFlight&&!l,m=o.has(i.id)||!a,h=t(`div`,`bench-summary`);h.append(t(`span`,`bench-suite-title`,i.title),n(`bench`,i.caseCount===1?`case`:`cases`,String(i.caseCount)),n(`bench`,i.candidateCount===1?`candidate`:`candidates`,String(i.candidateCount)),n(`bench`,`arms`,String(i.armIds.length))),c.append(h);let g=t(`div`,`bench-controls`),_=e.configured===!0&&i.error===null;g.append(u(i,`mine`,!_||m||l),u(i,`run`,!_||m||l||f||i.caseCount===0),u(i,`cancel`,m||!l));let v=t(`span`,`bench-status`,(a?``:`Not connected to the server. Reconnecting.`)||d(e,i)||s.get(i.id)||``);if(v.setAttribute(`role`,`status`),g.append(v),c.append(g),i.error)return c.append(t(`p`,`bench-error`,i.error)),c;let y=i.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`,i.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}=r(),i=e(`bench`,`Benchmarks`,`Suites from the benchmarks folder of the Glimmervoid home, one run at a time.`);if(s.append(i),!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),a(h),h())}var _={mount:g};export{_ as view};