glimmervoid 0.41.1 → 0.42.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/dist/bin/glimmervoid.js +13 -13
  2. package/dist/chunks/{adapters-D8BJffFW.js → adapters-C8GfnK2r.js} +1 -1
  3. package/dist/chunks/{adapters-CyDflXHy.js → adapters-D2u85MEH.js} +5 -5
  4. package/dist/chunks/{agent-api-cli-CvCov9_e.js → agent-api-cli-B-1MqjKc.js} +1 -1
  5. package/dist/chunks/{agent-api-cli-B7-ToJul.js → agent-api-cli-D7JPxNso.js} +10 -5
  6. package/dist/chunks/{agent-api-core-CLxZAole.js → agent-api-core-PwO7fPoc.js} +19 -5
  7. package/dist/chunks/{agent-setup-cli-py1gUMvJ.js → agent-setup-cli-C9qDV2g5.js} +1 -1
  8. package/dist/chunks/config-store-BL8LDBuM.js +1 -0
  9. package/dist/chunks/{config-store-CxYqTNbe.js → config-store-BxCW2IwK.js} +2 -2
  10. package/dist/chunks/{contracts-C9Jj9iDo.js → contracts-LXlDbl4R.js} +2 -2
  11. package/dist/chunks/{control-messages-C6JGCTuy.js → control-messages-88sdxt-U.js} +7 -1
  12. package/dist/chunks/{git-version-D_iXgYTZ.js → git-version-DqagvnAZ.js} +1 -1
  13. package/dist/chunks/{grok-BUGgQVE3.js → grok-DwrAcNHC.js} +1 -1
  14. package/dist/chunks/{main-CRU5ahjl.js → main-DZzDU4Q4.js} +284 -95
  15. package/dist/chunks/{pair-cli-CL1D9xc7.js → pair-cli-3KKNhZ22.js} +2 -2
  16. package/dist/chunks/{remote-config-CaW0mpwr.js → remote-config-Ce5nN0zL.js} +1 -1
  17. package/dist/chunks/{session-C8IpFmGQ.js → session-3eSP3t1i.js} +8 -2
  18. package/dist/chunks/{session-routes-nySS7DUE.js → session-routes-B2oSzmQn.js} +1 -1
  19. package/dist/chunks/{settings-cli-Duculey3.js → settings-cli-BYY991YC.js} +5 -5
  20. package/dist/chunks/{settings-readout-core-CX7DmEuG.js → settings-readout-core-CWAhwZKN.js} +2 -2
  21. package/dist/chunks/{ssh-sign-cli-BEAAFjXg.js → ssh-sign-cli-BbqYIPwh.js} +2 -2
  22. package/dist/client/assets/index-C9wfiVqt.js +176 -0
  23. package/dist/client/assets/index-PnaYWtoe.css +2 -0
  24. package/dist/client/index.html +2 -2
  25. package/dist/server/index.js +1 -1
  26. package/package.json +1 -1
  27. package/dist/chunks/config-store-DcVWBJOV.js +0 -1
  28. package/dist/client/assets/index-CBjFGcSs.js +0 -176
  29. package/dist/client/assets/index-Cbb5NKHK.css +0 -2
@@ -2,12 +2,12 @@
2
2
  import { o as nodePtyRebuildHint, r as firstLine, t as probeNodePty } from "../chunks/node-pty-preflight-C8QIlrtU.js";
3
3
  import { i as errorText } from "../chunks/text-DoirglWV.js";
4
4
  import { a as packageRoot } from "../chunks/runtime-paths-BkeftE60.js";
5
- import { t as AGENT_API_VERBS } from "../chunks/session-C8IpFmGQ.js";
5
+ import { t as AGENT_API_VERBS } from "../chunks/session-3eSP3t1i.js";
6
6
  import { i as execSync } from "../chunks/child-process-safe-D4hyVIXj.js";
7
- import { r as agentCommandHelpLines } from "../chunks/agent-api-core-CLxZAole.js";
7
+ import { r as agentCommandHelpLines } from "../chunks/agent-api-core-PwO7fPoc.js";
8
8
  import { t as renderTable } from "../chunks/ascii-figure-core-pDAwtlKO.js";
9
9
  import { n as glimmervoidHomeDir, t as decideConfigPath } from "../chunks/config-path-core-DFt-TemS.js";
10
- import { i as parseCommandLine, r as gitDoctorRows, t as probeGitVersion } from "../chunks/git-version-D_iXgYTZ.js";
10
+ import { i as parseCommandLine, r as gitDoctorRows, t as probeGitVersion } from "../chunks/git-version-DqagvnAZ.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-CL1D9xc7.js");
68
+ const { runPairCli } = await import("../chunks/pair-cli-3KKNhZ22.js");
69
69
  return runPairCli(subcommandArgs);
70
70
  }],
71
71
  ["agent", async (subcommandArgs) => {
72
- const { runAgentSetupCli } = await import("../chunks/agent-setup-cli-py1gUMvJ.js");
72
+ const { runAgentSetupCli } = await import("../chunks/agent-setup-cli-C9qDV2g5.js");
73
73
  return runAgentSetupCli(subcommandArgs);
74
74
  }],
75
75
  ["settings", async (subcommandArgs) => {
76
- const { runSettingsCli } = await import("../chunks/settings-cli-Duculey3.js");
76
+ const { runSettingsCli } = await import("../chunks/settings-cli-BYY991YC.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-BEAAFjXg.js");
84
+ const { runSshSignCli } = await import("../chunks/ssh-sign-cli-BbqYIPwh.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-CvCov9_e.js");
90
+ const { runAgentApiCli } = await import("../chunks/agent-api-cli-B-1MqjKc.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-CvCov9_e.js");
104
+ const { sessionLimitsHelpLines } = await import("../chunks/agent-api-cli-B-1MqjKc.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-DcVWBJOV.js");
161
+ const { loadConfigFile } = await import("../chunks/config-store-BL8LDBuM.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-D8BJffFW.js");
237
+ const { listAgentIds, describeAgentResolvability, setCustomAgents } = await import("../chunks/adapters-C8GfnK2r.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-py1gUMvJ.js");
245
+ const { inspectGrokAgentSetup } = await import("../chunks/agent-setup-cli-C9qDV2g5.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-DSmormp7.js");
261
261
  const { execFileSync } = await import("../chunks/child-process-safe-CjVtRjDD.js");
262
- const { inspectGrokAgentSetup } = await import("../chunks/agent-setup-cli-py1gUMvJ.js");
262
+ const { inspectGrokAgentSetup } = await import("../chunks/agent-setup-cli-C9qDV2g5.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 +1 @@
1
- export { a as describeAgentResolvability, l as listAgentIds, f as setCustomAgents } from "./adapters-CyDflXHy.js";
1
+ export { a as describeAgentResolvability, l as listAgentIds, f as setCustomAgents } from "./adapters-D2u85MEH.js";
@@ -1,14 +1,14 @@
1
1
  import { o as relayPath } from "./runtime-paths-BkeftE60.js";
2
- import { Lt as FULL_SHA_RE, zt as shortSha$1 } from "./session-C8IpFmGQ.js";
2
+ import { Bt as shortSha$1, Rt as FULL_SHA_RE } from "./session-3eSP3t1i.js";
3
3
  import { n as execFileAsync, r as execFileSync } from "./child-process-safe-D4hyVIXj.js";
4
- import { a as InstallFlavor } from "./control-messages-C6JGCTuy.js";
5
- import { o as supervisionLine } from "./session-routes-nySS7DUE.js";
4
+ import { a as InstallFlavor } from "./control-messages-88sdxt-U.js";
5
+ import { o as supervisionLine } from "./session-routes-B2oSzmQn.js";
6
6
  import { n as resolveAgentCommand, t as buildAgentSpawnCommand } from "./spawn-command-Cc40FiZI.js";
7
7
  import { c as textOr, s as rawTextOr } from "./coerce-NSst8oRP.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-BUGgQVE3.js";
9
+ import { i as isSpinnerChar, n as classifyAgentTitle, r as isBrailleChar, s as buildAgentEnv, t as grok } from "./grok-DwrAcNHC.js";
10
10
  import { t as buildHookCommand } from "./hook-command-core-qTNK-xMF.js";
11
- import "./contracts-C9Jj9iDo.js";
11
+ import "./contracts-LXlDbl4R.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 { t as askAgentApi, r as runAgentApiCli, i as sessionLimitsHelpLines } from "./agent-api-cli-B7-ToJul.js";
1
+ export { t as askAgentApi, r as runAgentApiCli, i as sessionLimitsHelpLines } from "./agent-api-cli-D7JPxNso.js";
@@ -1,7 +1,7 @@
1
1
  import { t as errorCode } from "./text-DoirglWV.js";
2
- import { n as AGENT_URL_ENV, s as AgentLimitsReply } from "./session-C8IpFmGQ.js";
3
- import { i as formatSessionLimits } from "./session-routes-nySS7DUE.js";
4
- import { l as isAgentApiVerb, t as AGENT_COMMAND_HELP } from "./agent-api-core-CLxZAole.js";
2
+ import { n as AGENT_URL_ENV, s as AgentLimitsReply } from "./session-3eSP3t1i.js";
3
+ import { i as formatSessionLimits } from "./session-routes-B2oSzmQn.js";
4
+ import { f as isAgentApiVerb, t as AGENT_COMMAND_HELP } from "./agent-api-core-PwO7fPoc.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";
@@ -26,8 +26,13 @@ var BODY_BUILDERS = {
26
26
  return child ? { child } : {};
27
27
  },
28
28
  close: (rest) => {
29
- const child = rest.join(" ").trim();
30
- return child ? { child } : null;
29
+ const discard = rest.includes("--discard");
30
+ const child = rest.filter((word) => word !== "--discard").join(" ").trim();
31
+ if (!child) return null;
32
+ return discard ? {
33
+ child,
34
+ discard
35
+ } : { child };
31
36
  },
32
37
  attention: (rest) => {
33
38
  const note = rest.join(" ").trim();
@@ -1,6 +1,6 @@
1
- import { a as AgentCloseRequest, c as AgentPullRequestRequest, f as AgentSettingsRequest, i as AgentAttentionRequest, l as AgentReadRequest, o as AgentEditRequest, p as AgentSpawnRequest, t as AGENT_API_VERBS, u as AgentSendRequest } from "./session-C8IpFmGQ.js";
2
- import { c as pullRequestKeyFromReference } from "./control-messages-C6JGCTuy.js";
3
- import { n as NO_OWN_WORKTREE_REASON, t as COMMAND_ROUTES } from "./session-routes-nySS7DUE.js";
1
+ import { a as AgentCloseRequest, c as AgentPullRequestRequest, f as AgentSettingsRequest, i as AgentAttentionRequest, l as AgentReadRequest, o as AgentEditRequest, p as AgentSpawnRequest, t as AGENT_API_VERBS, u as AgentSendRequest } from "./session-3eSP3t1i.js";
2
+ import { c as pullRequestKeyFromReference } from "./control-messages-88sdxt-U.js";
3
+ import { n as NO_OWN_WORKTREE_REASON, t as COMMAND_ROUTES } from "./session-routes-B2oSzmQn.js";
4
4
  import crypto from "node:crypto";
5
5
  var MAX_SPAWNS_IN_FLIGHT = 1;
6
6
  var REFUSAL_REASON = "unknown session";
@@ -145,6 +145,20 @@ function parseAgentVerb(verb, payload) {
145
145
  request: parsed.request
146
146
  };
147
147
  }
148
+ function describeChildWorktree({ worktreeDir, branch }) {
149
+ return branch ? `branch ${branch} at ${worktreeDir}` : worktreeDir;
150
+ }
151
+ function describeUnpushedCloseRefusal(childName, childId, worktree) {
152
+ return `${childName} holds work that is not on the integration branch (${describeChildWorktree(worktree)}), so it was not closed. Ask it to land the work with glimmervoid push (glimmervoid send ${childId} <text>), or run glimmervoid close ${childId} --discard to end it and throw the work away`;
153
+ }
154
+ function describeChildEndNote(childName, outcome) {
155
+ if (outcome.kind === "kept") return `${childName} ended holding work that is not on the integration branch, so its worktree was kept: ${describeChildWorktree(outcome.worktree)}. The operator decides whether to merge or discard it`;
156
+ if (outcome.kind === "discarded") return `${childName} ended and its worktree was discarded`;
157
+ return `${childName} ended`;
158
+ }
159
+ function describeKeptChildAttention(childName, worktree) {
160
+ return `${childName}, a session this one spawned, ended holding unpushed work: ${describeChildWorktree(worktree)}`;
161
+ }
148
162
  function describePushLanding(landing) {
149
163
  if (!landing.merged) {
150
164
  const reason = landing.reason || "unknown";
@@ -261,7 +275,7 @@ var AGENT_COMMAND_HELP = Object.freeze({
261
275
  },
262
276
  close: {
263
277
  usage: "close <child>",
264
- summary: "End a session this one spawned, once its task is done",
278
+ summary: "End a session this one spawned and discard its worktree; refused while it holds unpushed work unless --discard",
265
279
  missingArgumentHint: "glimmervoid close: this command needs the spawned session, for example \"glimmervoid close <child>\""
266
280
  },
267
281
  attention: {
@@ -319,4 +333,4 @@ function agentCommandHelpLines() {
319
333
  return Object.values(AGENT_COMMAND_HELP).map(({ usage, summary }) => ` ${usage.padEnd(USAGE_COLUMN_WIDTH)}${summary}`);
320
334
  }
321
335
  //#endregion
322
- export { decideSpawnAllowance as a, describeRoleRefusal as c, projectMyPrs as d, projectReviews as f, decideAgentRequest as i, isAgentApiVerb as l, REFUSAL_REASON as n, deriveChildSessionName as o, agentCommandHelpLines as r, describePushLanding as s, AGENT_COMMAND_HELP as t, parseAgentVerb as u };
336
+ export { decideSpawnAllowance as a, describeKeptChildAttention as c, describeUnpushedCloseRefusal as d, isAgentApiVerb as f, projectReviews as h, decideAgentRequest as i, describePushLanding as l, projectMyPrs as m, REFUSAL_REASON as n, deriveChildSessionName as o, parseAgentVerb as p, agentCommandHelpLines as r, describeChildEndNote as s, AGENT_COMMAND_HELP as t, describeRoleRefusal as u };
@@ -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-BUGgQVE3.js";
2
+ import { a as classifyGrokHooksFile, o as renderGrokHooksFile, t as grok } from "./grok-DwrAcNHC.js";
3
3
  import { p as writeTextAtomicSync } from "./json-file-DFCTvPjj.js";
4
4
  import fs from "node:fs";
5
5
  import path from "node:path";
@@ -0,0 +1 @@
1
+ export { s as loadConfigFile } from "./config-store-BxCW2IwK.js";
@@ -1,10 +1,10 @@
1
1
  import { n as errorLabel, r as errorMessage } from "./text-DoirglWV.js";
2
2
  import { n as equalsIgnoringCaseOnWindows } from "./paths-Bu4eH1Yd.js";
3
- import { B as PORT_RANGE, F as FLYING_ANIMALS_GAP_RANGE, I as FLYING_ANIMALS_SCALE_RANGE, L as KEEP_MERGEABLE_TIMEOUT_MINUTES_RANGE, M as CHANGE_MAP_NARRATOR_TIMEOUT_RANGE, N as FLYING_ANIMALS_DEFAULTS, P as FLYING_ANIMALS_DURATION_RANGE, Q as POSTHOG_TRAFFIC_MULTIPLIER_RANGE, R as MEMORY_RESERVE_MB_RANGE, U as POSTHOG_FIX_TIMEOUT_RANGE, V as POSITIVE_NUMBER_RANGE, Y as POSTHOG_TRAFFIC_BASELINE_RANGE, Z as POSTHOG_TRAFFIC_MIN_USERS_RANGE, at as USAGE_SCAN_INTERVAL_RANGE, et as REPLAY_BUFFER_KB_RANGE, ft as WORKFLOWS_MAX_ACTIONS_PER_POLL_RANGE, it as USAGE_RETAIN_DAYS_RANGE, nt as USAGE_BUDGET_RANGE, pt as WORKFLOWS_MAX_CONCURRENT_SESSIONS_RANGE, rt as USAGE_INTEGER_RANGES, tt as TASK_TITLE_TIMEOUT_RANGE, z as NON_NEGATIVE_NUMBER_RANGE } from "./control-messages-C6JGCTuy.js";
3
+ import { B as PORT_RANGE, F as FLYING_ANIMALS_GAP_RANGE, I as FLYING_ANIMALS_SCALE_RANGE, L as KEEP_MERGEABLE_TIMEOUT_MINUTES_RANGE, M as CHANGE_MAP_NARRATOR_TIMEOUT_RANGE, N as FLYING_ANIMALS_DEFAULTS, P as FLYING_ANIMALS_DURATION_RANGE, Q as POSTHOG_TRAFFIC_MULTIPLIER_RANGE, R as MEMORY_RESERVE_MB_RANGE, U as POSTHOG_FIX_TIMEOUT_RANGE, V as POSITIVE_NUMBER_RANGE, Y as POSTHOG_TRAFFIC_BASELINE_RANGE, Z as POSTHOG_TRAFFIC_MIN_USERS_RANGE, at as USAGE_SCAN_INTERVAL_RANGE, et as REPLAY_BUFFER_KB_RANGE, ft as WORKFLOWS_MAX_ACTIONS_PER_POLL_RANGE, it as USAGE_RETAIN_DAYS_RANGE, nt as USAGE_BUDGET_RANGE, pt as WORKFLOWS_MAX_CONCURRENT_SESSIONS_RANGE, rt as USAGE_INTEGER_RANGES, tt as TASK_TITLE_TIMEOUT_RANGE, z as NON_NEGATIVE_NUMBER_RANGE } from "./control-messages-88sdxt-U.js";
4
4
  import { n as glimmervoidHomeDir$1, t as decideConfigPath } from "./config-path-core-DFt-TemS.js";
5
5
  import { n as isRecord } from "./coerce-NSst8oRP.js";
6
6
  import { d as writeJsonAtomicSync, f as writeTextAtomic, p as writeTextAtomicSync } from "./json-file-DFCTvPjj.js";
7
- import { C as POST_TURN_CHECK_MODES, D as normalizeLegacyConfigNumbers, S as CHANGE_MAP_NARRATOR_ENGINES, T as USAGE_COST_MODES, b as configIssueMessage, f as AGENT_ID_SHAPE_MESSAGE, h as Config, p as BUILTIN_AGENT_IDS, s as FeatureFlagsResponse, u as TELEMETRY_KILL_SWITCH_FLAG, v as RUNTIME_CONFIG_SCALAR_KEYS, w as UPDATE_CHANNELS, x as BranchGcFileSettings } from "./contracts-C9Jj9iDo.js";
7
+ import { C as POST_TURN_CHECK_MODES, D as normalizeLegacyConfigNumbers, S as CHANGE_MAP_NARRATOR_ENGINES, T as USAGE_COST_MODES, b as configIssueMessage, f as AGENT_ID_SHAPE_MESSAGE, h as Config, p as BUILTIN_AGENT_IDS, s as FeatureFlagsResponse, u as TELEMETRY_KILL_SWITCH_FLAG, v as RUNTIME_CONFIG_SCALAR_KEYS, w as UPDATE_CHANNELS, x as BranchGcFileSettings } from "./contracts-LXlDbl4R.js";
8
8
  import fs from "node:fs";
9
9
  import path from "node:path";
10
10
  import os from "node:os";
@@ -1,5 +1,5 @@
1
- import { R as TaskTitle, Ut as repoParts, at as SessionPrLinks } from "./session-C8IpFmGQ.js";
2
- import { $ as POSTHOG_TRANSIENT_RECURRENCE_RANGE, A as BRANCH_GC_INTERVAL_MS_RANGE, B as PORT_RANGE, D as WorkflowsSettings, G as POSTHOG_INVESTIGATION_TIMEOUT_RANGE, H as POSTHOG_ESCALATION_RANGE, J as POSTHOG_RECURRENCE_WINDOW_RANGE, K as POSTHOG_MAX_CONCURRENT_RANGE, L as KEEP_MERGEABLE_TIMEOUT_MINUTES_RANGE, M as CHANGE_MAP_NARRATOR_TIMEOUT_RANGE, O as WorkflowsSettingsUpdate, Q as POSTHOG_TRAFFIC_MULTIPLIER_RANGE, R as MEMORY_RESERVE_MB_RANGE, U as POSTHOG_FIX_TIMEOUT_RANGE, V as POSITIVE_NUMBER_RANGE, W as POSTHOG_INTERVAL_RANGE, X as POSTHOG_TRAFFIC_COOLDOWN_RANGE, Y as POSTHOG_TRAFFIC_BASELINE_RANGE, Z as POSTHOG_TRAFFIC_MIN_USERS_RANGE, ct as VISIONS_DISPATCH_TIMEOUT_RANGE, dt as VISIONS_QUIET_MS_RANGE, et as REPLAY_BUFFER_KB_RANGE, j as BRANCH_GC_STALE_DAYS_RANGE, lt as VISIONS_INTENT_THREAD_TTL_MS_RANGE, o as OPERATOR_ACTIONS_BY_SURFACE, ot as VISIONS_ACTIVITY_MAX_PER_HOUR_RANGE, q as POSTHOG_MIN_USERS_RANGE, r as DASHBOARD_VIEWS, rt as USAGE_INTEGER_RANGES, s as OPERATOR_SURFACES, st as VISIONS_COOLDOWN_MS_RANGE, tt as TASK_TITLE_TIMEOUT_RANGE, ut as VISIONS_MAX_PER_HOUR_RANGE } from "./control-messages-C6JGCTuy.js";
1
+ import { R as TaskTitle, Wt as repoParts, ot as SessionPrLinks } from "./session-3eSP3t1i.js";
2
+ import { $ as POSTHOG_TRANSIENT_RECURRENCE_RANGE, A as BRANCH_GC_INTERVAL_MS_RANGE, B as PORT_RANGE, D as WorkflowsSettings, G as POSTHOG_INVESTIGATION_TIMEOUT_RANGE, H as POSTHOG_ESCALATION_RANGE, J as POSTHOG_RECURRENCE_WINDOW_RANGE, K as POSTHOG_MAX_CONCURRENT_RANGE, L as KEEP_MERGEABLE_TIMEOUT_MINUTES_RANGE, M as CHANGE_MAP_NARRATOR_TIMEOUT_RANGE, O as WorkflowsSettingsUpdate, Q as POSTHOG_TRAFFIC_MULTIPLIER_RANGE, R as MEMORY_RESERVE_MB_RANGE, U as POSTHOG_FIX_TIMEOUT_RANGE, V as POSITIVE_NUMBER_RANGE, W as POSTHOG_INTERVAL_RANGE, X as POSTHOG_TRAFFIC_COOLDOWN_RANGE, Y as POSTHOG_TRAFFIC_BASELINE_RANGE, Z as POSTHOG_TRAFFIC_MIN_USERS_RANGE, ct as VISIONS_DISPATCH_TIMEOUT_RANGE, dt as VISIONS_QUIET_MS_RANGE, et as REPLAY_BUFFER_KB_RANGE, j as BRANCH_GC_STALE_DAYS_RANGE, lt as VISIONS_INTENT_THREAD_TTL_MS_RANGE, o as OPERATOR_ACTIONS_BY_SURFACE, ot as VISIONS_ACTIVITY_MAX_PER_HOUR_RANGE, q as POSTHOG_MIN_USERS_RANGE, r as DASHBOARD_VIEWS, rt as USAGE_INTEGER_RANGES, s as OPERATOR_SURFACES, st as VISIONS_COOLDOWN_MS_RANGE, tt as TASK_TITLE_TIMEOUT_RANGE, ut as VISIONS_MAX_PER_HOUR_RANGE } from "./control-messages-88sdxt-U.js";
3
3
  import { n as isRecord } from "./coerce-NSst8oRP.js";
4
4
  import path from "node:path";
5
5
  import { z } from "zod";
@@ -1,4 +1,4 @@
1
- import { $ as MyPrSearchNode, B as MyPr, Bt as GH_SEGMENT, C as PendingWakeup, D as SESSION_DOC_PATH_MAX_CHARS, Ft as hasRequiredActionHead, G as MyPrKeepMergeableResult, Gt as GithubPollingRefreshResult, Ht as REPO_SLUG_RE, J as MyPrMergeRequest, Kt as GithubPrsFreshness, M as SessionDoc, N as SessionSnapshot, P as SessionState, Q as MyPrMergeWhenReadyResult, R as TaskTitle, Tt as TeamReviewActionResult, W as MyPrKeepMergeableRequest, Wt as GithubPollingRefreshRequest, Y as MyPrMergeResult, Z as MyPrMergeWhenReadyRequest, _t as ReviewChecksState, at as SessionPrLinks, b as ConversationApproval, ct as CommitSha, ft as GithubReviewDecision, it as MyPrsStatus, kt as TeamReviewStatus, ot as pullRequestKeyFormat, qt as githubPollingShape, st as repositoryName, v as CoherenceHooksState, wt as TeamReviewActionRequest, x as ConversationApprovalDecision, y as ConversationAnswers, z as LinkedPr } from "./session-C8IpFmGQ.js";
1
+ import { $ as MyPrMergeWhenReadyResult, At as TeamReviewStatus, B as LinkedPr, C as PendingWakeup, D as SESSION_DOC_PATH_MAX_CHARS, Et as TeamReviewActionResult, G as MyPrKeepMergeableRequest, Gt as GithubPollingRefreshRequest, It as hasRequiredActionHead, Jt as githubPollingShape, K as MyPrKeepMergeableResult, Kt as GithubPollingRefreshResult, M as SessionDoc, N as SessionSnapshot, P as SessionState, Q as MyPrMergeWhenReadyRequest, R as TaskTitle, Tt as TeamReviewActionRequest, Ut as REPO_SLUG_RE, V as MyPr, Vt as GH_SEGMENT, X as MyPrMergeResult, Y as MyPrMergeRequest, at as MyPrsStatus, b as ConversationApproval, ct as repositoryName, et as MyPrSearchNode, lt as CommitSha, ot as SessionPrLinks, pt as GithubReviewDecision, qt as GithubPrsFreshness, st as pullRequestKeyFormat, v as CoherenceHooksState, vt as ReviewChecksState, x as ConversationApprovalDecision, y as ConversationAnswers, z as UnseenOutcome } from "./session-3eSP3t1i.js";
2
2
  import { z } from "zod";
3
3
  //#region shared/contracts/issues.ts
4
4
  var IssueRepoSlug = z.string().regex(REPO_SLUG_RE);
@@ -1376,6 +1376,7 @@ var SessionCardFields = z.object({
1376
1376
  saneYolo: z.boolean(),
1377
1377
  worktree: z.boolean(),
1378
1378
  workspace: z.boolean().optional(),
1379
+ remoteWorkspace: z.string().optional(),
1379
1380
  guarded: z.boolean().optional(),
1380
1381
  guardrailsReleased: z.boolean().optional(),
1381
1382
  resumeSessionId: nullableString,
@@ -1935,6 +1936,11 @@ var serverVariants = [
1935
1936
  awaitingBackgroundTasks: z.boolean(),
1936
1937
  timestamp
1937
1938
  }),
1939
+ loose("session-unseen", {
1940
+ id: sessionId,
1941
+ unseenOutcome: UnseenOutcome.nullable(),
1942
+ timestamp
1943
+ }),
1938
1944
  loose("session-wakeup", {
1939
1945
  id: sessionId,
1940
1946
  pendingWakeup: PendingWakeup.nullable(),
@@ -1,4 +1,4 @@
1
- import { t as AGENT_API_VERBS } from "./session-C8IpFmGQ.js";
1
+ import { t as AGENT_API_VERBS } from "./session-3eSP3t1i.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 { o as relayPath } from "./runtime-paths-BkeftE60.js";
3
- import { A as SIGN_URL_ENV, n as AGENT_URL_ENV } from "./session-C8IpFmGQ.js";
3
+ import { A as SIGN_URL_ENV, n as AGENT_URL_ENV } from "./session-3eSP3t1i.js";
4
4
  import { t as HOOK_URL_ENV } from "./hook-relay-core-DA_bz2KA.js";
5
5
  import { n as isRecord } from "./coerce-NSst8oRP.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";