glimmervoid 0.41.1 → 0.42.1

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-CyDflXHy.js → adapters-CWIHOfVo.js} +5 -5
  3. package/dist/chunks/{adapters-D8BJffFW.js → adapters-DzClvFt5.js} +1 -1
  4. package/dist/chunks/{agent-api-cli-B7-ToJul.js → agent-api-cli-2FKWf5jj.js} +10 -5
  5. package/dist/chunks/{agent-api-cli-CvCov9_e.js → agent-api-cli-Cn-g_ej_.js} +1 -1
  6. package/dist/chunks/{agent-api-core-CLxZAole.js → agent-api-core-CP4J2B39.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-CxYqTNbe.js → config-store-Br2PY4Tg.js} +2 -2
  9. package/dist/chunks/config-store-DwYjz6h1.js +1 -0
  10. package/dist/chunks/{contracts-C9Jj9iDo.js → contracts-DJqeCtR3.js} +2 -2
  11. package/dist/chunks/{control-messages-C6JGCTuy.js → control-messages-DHDEMTLI.js} +20 -2
  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-ZpBLKI1h.js} +587 -126
  15. package/dist/chunks/{pair-cli-CL1D9xc7.js → pair-cli-DW5mUBZa.js} +2 -2
  16. package/dist/chunks/{remote-config-CaW0mpwr.js → remote-config-DcmhRuRc.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-BnM9rg8B.js} +5 -5
  20. package/dist/chunks/{settings-readout-core-CX7DmEuG.js → settings-readout-core-2XunjdBA.js} +2 -2
  21. package/dist/chunks/{ssh-sign-cli-BEAAFjXg.js → ssh-sign-cli-CmnA5lFM.js} +2 -2
  22. package/dist/client/assets/index-CBGmkbVV.js +176 -0
  23. package/dist/client/assets/index-NhlaT6eP.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-CP4J2B39.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-DW5mUBZa.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-BnM9rg8B.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-CmnA5lFM.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-Cn-g_ej_.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-Cn-g_ej_.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-DwYjz6h1.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-DzClvFt5.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,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-DHDEMTLI.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-DJqeCtR3.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-CyDflXHy.js";
1
+ export { a as describeAgentResolvability, l as listAgentIds, f as setCustomAgents } from "./adapters-CWIHOfVo.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-CP4J2B39.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 +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-2FKWf5jj.js";
@@ -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-DHDEMTLI.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";
@@ -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-DHDEMTLI.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-DJqeCtR3.js";
8
8
  import fs from "node:fs";
9
9
  import path from "node:path";
10
10
  import os from "node:os";
@@ -0,0 +1 @@
1
+ export { s as loadConfigFile } from "./config-store-Br2PY4Tg.js";
@@ -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-DHDEMTLI.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,
@@ -1490,7 +1491,6 @@ var OPERATOR_SURFACES = Object.freeze([
1490
1491
  "reviews"
1491
1492
  ]);
1492
1493
  var idOnlyClientTypes = [
1493
- "remove-session",
1494
1494
  "kill",
1495
1495
  "start-session",
1496
1496
  "restart",
@@ -1525,6 +1525,12 @@ var clientVariants = [
1525
1525
  environment: z.string().optional(),
1526
1526
  requestId
1527
1527
  }),
1528
+ loose("remove-session", {
1529
+ id: sessionId,
1530
+ force: z.unknown().optional(),
1531
+ discardRemoteWork: z.boolean().optional(),
1532
+ requestId
1533
+ }),
1528
1534
  loose("list-conversations", {
1529
1535
  id: sessionId,
1530
1536
  requestId
@@ -1735,6 +1741,7 @@ Object.freeze([
1735
1741
  "hooks-report",
1736
1742
  "save-hook-result",
1737
1743
  "add-session-result",
1744
+ "remove-session-result",
1738
1745
  "agent-logins",
1739
1746
  "delete-hook-result",
1740
1747
  "workspace-repos",
@@ -1865,6 +1872,12 @@ var serverVariants = [
1865
1872
  error: optionalError,
1866
1873
  reason: z.enum(["not-git"]).optional()
1867
1874
  }),
1875
+ loose("remove-session-result", {
1876
+ requestId,
1877
+ ok: z.boolean(),
1878
+ error: optionalError,
1879
+ canDiscardRemoteWork: z.boolean().optional()
1880
+ }),
1868
1881
  loose("agent-logins", {
1869
1882
  requestId,
1870
1883
  logins: AgentLoginStatuses,
@@ -1935,6 +1948,11 @@ var serverVariants = [
1935
1948
  awaitingBackgroundTasks: z.boolean(),
1936
1949
  timestamp
1937
1950
  }),
1951
+ loose("session-unseen", {
1952
+ id: sessionId,
1953
+ unseenOutcome: UnseenOutcome.nullable(),
1954
+ timestamp
1955
+ }),
1938
1956
  loose("session-wakeup", {
1939
1957
  id: sessionId,
1940
1958
  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";