glimmervoid 0.37.0 → 0.38.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/dist/bin/glimmervoid.js +14 -14
  2. package/dist/chunks/{adapters-BmfVPxlH.js → adapters-B-IkWl-r.js} +19 -4
  3. package/dist/chunks/{adapters-CqFFmM2R.js → adapters-Dt3vwxwY.js} +1 -1
  4. package/dist/chunks/{agent-api-cli-BTHEyJKS.js → agent-api-cli-3hryuewm.js} +1 -1
  5. package/dist/chunks/{agent-api-cli-CBgOKXoO.js → agent-api-cli-BcZ9DLCF.js} +3 -3
  6. package/dist/chunks/{agent-api-core-DzKhakCv.js → agent-api-core--8WtU1xU.js} +3 -12
  7. package/dist/chunks/{agent-setup-cli-C8DGxlA-.js → agent-setup-cli-BixDoCkF.js} +2 -2
  8. package/dist/chunks/{config-BYc2z1Oc.js → config-BHBZsCBc.js} +9 -8
  9. package/dist/chunks/config-store-DYj3wYgw.js +1 -0
  10. package/dist/chunks/{config-store-B7MpiYxG.js → config-store-DbfMbz4j.js} +41 -64
  11. package/dist/chunks/{contracts-C6ipN_zw.js → contracts-u40eJhaf.js} +20 -14
  12. package/dist/chunks/{git-version-6QFnKbWa.js → git-version-BpnTd8sU.js} +1 -1
  13. package/dist/chunks/{grok-CZ6kP_vD.js → grok-xFs6zIu4.js} +1 -1
  14. package/dist/chunks/{json-file-BaxGcB2R.js → json-file-CIJf0Cel.js} +190 -9
  15. package/dist/chunks/{knowledge-graph-cli-DApeMzA8.js → knowledge-graph-cli-DcspNqhz.js} +1 -1
  16. package/dist/chunks/{loopback-post-DJ6iYWuL.js → loopback-post-DZK7YibD.js} +1 -1
  17. package/dist/chunks/{main-BUfjroXE.js → main-w01-P1oZ.js} +1048 -440
  18. package/dist/chunks/{pair-cli-GZ9t1mIO.js → pair-cli-BdoyrDCr.js} +2 -2
  19. package/dist/chunks/{remote-config-D2Is89Kj.js → remote-config-61zJ0hME.js} +2 -2
  20. package/dist/chunks/{session-BZbariv5.js → session-8Pv0y1vz.js} +1 -1
  21. package/dist/chunks/{session-routes-C4t8O8yg.js → session-routes-D-GZC-Sy.js} +1 -1
  22. package/dist/chunks/{settings-cli-DQOjmjev.js → settings-cli-DKJsm3AP.js} +3 -3
  23. package/dist/chunks/{ssh-sign-cli-LIBP8ppO.js → ssh-sign-cli-Dc2gOCwE.js} +2 -2
  24. package/dist/client/assets/index-BfqmOGgc.js +275 -0
  25. package/dist/client/assets/index-DxABp5yJ.css +1 -0
  26. package/dist/client/index.html +10 -3
  27. package/dist/server/index.js +1 -1
  28. package/dist/session/command-hook-relay.js +1 -1
  29. package/dist/session/hook-relay.js +1 -1
  30. package/dist/session/statusline-relay.js +1 -1
  31. package/dist/session/visions-relay.js +7 -7
  32. package/package.json +1 -1
  33. package/scripts/recover-handoff.mjs +1 -1
  34. package/dist/chunks/config-store-CsUoy88Q.js +0 -1
  35. package/dist/client/assets/index-B_Qt7fbZ.css +0 -1
  36. package/dist/client/assets/index-D-upBor0.js +0 -265
@@ -2,11 +2,11 @@
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-BZbariv5.js";
5
+ import { t as AGENT_API_VERBS } from "../chunks/session-8Pv0y1vz.js";
6
6
  import { i as execSync } from "../chunks/child-process-safe-CbQnyh7D.js";
7
7
  import { t as renderTable } from "../chunks/ascii-figure-core-pDAwtlKO.js";
8
8
  import { n as glimmervoidHomeDir, t as decideConfigPath } from "../chunks/config-path-core-DFt-TemS.js";
9
- import { i as parseCommandLine, r as gitDoctorRows, t as probeGitVersion } from "../chunks/git-version-6QFnKbWa.js";
9
+ import { i as parseCommandLine, r as gitDoctorRows, t as probeGitVersion } from "../chunks/git-version-BpnTd8sU.js";
10
10
  import { i as guardrailsDoctorRows, r as probeGuardrailsDependencies } from "../chunks/guardrails-deps-Cb-ki4EU.js";
11
11
  import { i as pnpmGlobalBinDir, n as npmGlobalBinDir, r as onPath, t as formatPathNotice } from "../chunks/path-doctor-C23VAqeu.js";
12
12
  import fs from "node:fs";
@@ -74,19 +74,19 @@ var SUBCOMMAND_RUNNERS = new Map([
74
74
  return 0;
75
75
  }],
76
76
  ["pair", async (subcommandArgs) => {
77
- const { runPairCli } = await import("../chunks/pair-cli-GZ9t1mIO.js");
77
+ const { runPairCli } = await import("../chunks/pair-cli-BdoyrDCr.js");
78
78
  return runPairCli(subcommandArgs);
79
79
  }],
80
80
  ["agent", async (subcommandArgs) => {
81
- const { runAgentSetupCli } = await import("../chunks/agent-setup-cli-C8DGxlA-.js");
81
+ const { runAgentSetupCli } = await import("../chunks/agent-setup-cli-BixDoCkF.js");
82
82
  return runAgentSetupCli(subcommandArgs);
83
83
  }],
84
84
  ["kg", async (subcommandArgs) => {
85
- const { runKnowledgeGraphCommand } = await import("../chunks/knowledge-graph-cli-DApeMzA8.js");
85
+ const { runKnowledgeGraphCommand } = await import("../chunks/knowledge-graph-cli-DcspNqhz.js");
86
86
  return runKnowledgeGraphCommand(subcommandArgs);
87
87
  }],
88
88
  ["settings", async (subcommandArgs) => {
89
- const { runSettingsCommand } = await import("../chunks/settings-cli-DQOjmjev.js");
89
+ const { runSettingsCommand } = await import("../chunks/settings-cli-DKJsm3AP.js");
90
90
  return runSettingsCommand(subcommandArgs);
91
91
  }],
92
92
  ["visions", async (subcommandArgs) => {
@@ -94,21 +94,21 @@ var SUBCOMMAND_RUNNERS = new Map([
94
94
  return runVisionsCli(subcommandArgs);
95
95
  }],
96
96
  ["ssh-sign", async (subcommandArgs) => {
97
- const { runSshSignCli } = await import("../chunks/ssh-sign-cli-LIBP8ppO.js");
97
+ const { runSshSignCli } = await import("../chunks/ssh-sign-cli-Dc2gOCwE.js");
98
98
  return runSshSignCli(subcommandArgs);
99
99
  }],
100
100
  ["factory", async (subcommandArgs) => {
101
- const { runAgentApiCli } = await import("../chunks/agent-api-cli-BTHEyJKS.js");
101
+ const { runAgentApiCli } = await import("../chunks/agent-api-cli-3hryuewm.js");
102
102
  return runAgentApiCli(["factory", ...subcommandArgs]);
103
103
  }],
104
104
  ...AGENT_API_VERBS.map((verb) => [verb, async (subcommandArgs, subcommandName) => {
105
- const { runAgentApiCli } = await import("../chunks/agent-api-cli-BTHEyJKS.js");
105
+ const { runAgentApiCli } = await import("../chunks/agent-api-cli-3hryuewm.js");
106
106
  return runAgentApiCli([subcommandName, ...subcommandArgs]);
107
107
  }])
108
108
  ]);
109
109
  async function printSessionLimits() {
110
110
  if (!process.env["GLIMMERVOID_AGENT_URL"]) return;
111
- const { sessionLimitsHelpLines } = await import("../chunks/agent-api-cli-BTHEyJKS.js");
111
+ const { sessionLimitsHelpLines } = await import("../chunks/agent-api-cli-3hryuewm.js");
112
112
  const limitsLines = await sessionLimitsHelpLines();
113
113
  console.log(`\n${limitsLines.join("\n")}`);
114
114
  }
@@ -165,7 +165,7 @@ async function readDeclaredCustomAgents() {
165
165
  declared: [],
166
166
  error: null
167
167
  };
168
- const { loadConfigFile } = await import("../chunks/config-store-CsUoy88Q.js");
168
+ const { loadConfigFile } = await import("../chunks/config-store-DYj3wYgw.js");
169
169
  try {
170
170
  const loaded = loadConfigFile(decided.path, { exitOnError: false });
171
171
  if (!loaded.config) return {
@@ -241,7 +241,7 @@ async function runDoctor() {
241
241
  }
242
242
  switchSection("Agents");
243
243
  try {
244
- const { listAgentIds, describeAgentResolvability, setCustomAgents } = await import("../chunks/adapters-CqFFmM2R.js");
244
+ const { listAgentIds, describeAgentResolvability, setCustomAgents } = await import("../chunks/adapters-Dt3vwxwY.js");
245
245
  const declaredCustomAgents = await readDeclaredCustomAgents();
246
246
  if (declaredCustomAgents.error) line("config", declaredCustomAgents.error);
247
247
  setCustomAgents(declaredCustomAgents.declared);
@@ -249,7 +249,7 @@ async function runDoctor() {
249
249
  const { label, path: resolvedPath } = describeAgentResolvability(id);
250
250
  line(`${id} (${label})`, resolvedPath ?? "not found on PATH");
251
251
  }
252
- const { inspectGrokAgentSetup } = await import("../chunks/agent-setup-cli-C8DGxlA-.js");
252
+ const { inspectGrokAgentSetup } = await import("../chunks/agent-setup-cli-BixDoCkF.js");
253
253
  const grokSetup = inspectGrokAgentSetup();
254
254
  line("grok hook setup", `${grokSetup.classification}: ${grokSetup.filePath}`);
255
255
  } catch (err) {
@@ -266,7 +266,7 @@ async function runDoctor() {
266
266
  try {
267
267
  const { resolvePackageBin } = await import("../chunks/runtime-paths-DSmormp7.js");
268
268
  const { execFileSync } = await import("../chunks/child-process-safe-ChRmWAJP.js");
269
- const { inspectGrokAgentSetup } = await import("../chunks/agent-setup-cli-C8DGxlA-.js");
269
+ const { inspectGrokAgentSetup } = await import("../chunks/agent-setup-cli-BixDoCkF.js");
270
270
  const binPath = resolvePackageBin("cc-safety-net", "cc-safety-net");
271
271
  line("Sane YOLO", binPath || "not installed");
272
272
  if (binPath) line("cc-safety-net version", execFileSync(process.execPath, [binPath, "--version"], {
@@ -3,10 +3,10 @@ import { r as execFileSync } from "./child-process-safe-CbQnyh7D.js";
3
3
  import { n as resolveAgentCommand, t as buildAgentSpawnCommand } from "./spawn-command-Cc40FiZI.js";
4
4
  import { s as rawTextOr } from "./coerce-NSst8oRP.js";
5
5
  import { r as nextBackoffMs } from "./backoff-DjVpfHk7.js";
6
- import { l as supervisionLine } from "./session-routes-C4t8O8yg.js";
7
- import { c as buildAgentEnv, i as isSpinnerChar, n as classifyAgentTitle, r as isBrailleChar, t as grok } from "./grok-CZ6kP_vD.js";
6
+ import { l as supervisionLine } from "./session-routes-D-GZC-Sy.js";
7
+ import { c as buildAgentEnv, i as isSpinnerChar, n as classifyAgentTitle, r as isBrailleChar, t as grok } from "./grok-xFs6zIu4.js";
8
8
  import { t as buildHookCommand } from "./hook-command-core-qTNK-xMF.js";
9
- import "./contracts-C6ipN_zw.js";
9
+ import "./contracts-u40eJhaf.js";
10
10
  import { n as mergeCodexPreToolUse, t as HOOK_TOOLS } from "./hook-tools-BkxllUHE.js";
11
11
  import fs from "node:fs";
12
12
  import path from "node:path";
@@ -211,6 +211,21 @@ function laneSpendStatus({ isTrackingEnabled, scan }) {
211
211
  if (!scan.isHistoryCaughtUp || scan.lastOutcome === null) return "catching-up";
212
212
  return "known";
213
213
  }
214
+ function scopedClaudeRoots(scopeDirs, claudeDirs) {
215
+ if (!scopeDirs || scopeDirs.length === 0) return null;
216
+ const isInside = (candidate, parent) => candidate.startsWith(`${parent}${path.sep}`);
217
+ const roots = [];
218
+ for (const scopeDir of [...new Set(scopeDirs.map((dir) => path.resolve(dir)))].sort((left, right) => left.length - right.length)) {
219
+ if (!claudeDirs.some((claudeDir) => isInside(scopeDir, claudeDir))) return null;
220
+ if (roots.some((root) => isInside(scopeDir, root))) continue;
221
+ roots.push(scopeDir);
222
+ }
223
+ return roots.map((dir) => ({
224
+ vendor: "claude",
225
+ dir,
226
+ kind: "active"
227
+ }));
228
+ }
214
229
  function decideFileRead(prior, stat) {
215
230
  if (!prior) return {
216
231
  action: "restart",
@@ -775,4 +790,4 @@ function resetCommandCache() {
775
790
  resolvedCommands.clear();
776
791
  }
777
792
  //#endregion
778
- export { splitLines as A, isUsageFile as C, resolveProjectsDirs as D, projectDirCandidates as E, shouldEvaluateDespiteIoFailures as O, grokRootCandidates as S, passOutcome as T, continuationDelayMs as _, describeAgentResolvability as a, expandTilde as b, isKnownAgentId as c, resolveAdapter as d, setCustomAgents as f, codexSessionIdFromPath as g, codexRootCandidates as h, customAgentFingerprint as i, claudeCode as j, shouldPersistWarehouse as k, listAgentIds as l, codexHomes as m, cachedAgentResolvability as n, getAdapter as o, codexFallbackRoots as p, commandFor as r, hookProfileOf as s, DEFAULT_AGENT_ID as t, resetCommandCache as u, decideFileRead as v, laneSpendStatus as w, grokHomes as x, dedupeCodexFiles as y };
793
+ export { shouldPersistWarehouse as A, isUsageFile as C, resolveProjectsDirs as D, projectDirCandidates as E, claudeCode as M, scopedClaudeRoots as O, grokRootCandidates as S, passOutcome as T, continuationDelayMs as _, describeAgentResolvability as a, expandTilde as b, isKnownAgentId as c, resolveAdapter as d, setCustomAgents as f, codexSessionIdFromPath as g, codexRootCandidates as h, customAgentFingerprint as i, splitLines as j, shouldEvaluateDespiteIoFailures as k, listAgentIds as l, codexHomes as m, cachedAgentResolvability as n, getAdapter as o, codexFallbackRoots as p, commandFor as r, hookProfileOf as s, DEFAULT_AGENT_ID as t, resetCommandCache as u, decideFileRead as v, laneSpendStatus as w, grokHomes as x, dedupeCodexFiles as y };
@@ -1 +1 @@
1
- export { a as describeAgentResolvability, l as listAgentIds, f as setCustomAgents } from "./adapters-BmfVPxlH.js";
1
+ export { a as describeAgentResolvability, l as listAgentIds, f as setCustomAgents } from "./adapters-B-IkWl-r.js";
@@ -1 +1 @@
1
- export { n as runAgentApiCli, r as sessionLimitsHelpLines } from "./agent-api-cli-CBgOKXoO.js";
1
+ export { n as runAgentApiCli, r as sessionLimitsHelpLines } from "./agent-api-cli-BcZ9DLCF.js";
@@ -1,10 +1,10 @@
1
1
  import { t as errorCode } from "./text-DoirglWV.js";
2
- import { a as AgentDispatchRequest, c as AgentFactoryStatusRequest, d as AgentTicketRequest, l as AgentLimitsReply, n as AGENT_URL_ENV, s as AgentFactoryRetryRequest } from "./session-BZbariv5.js";
2
+ import { a as AgentDispatchRequest, c as AgentFactoryStatusRequest, d as AgentTicketRequest, l as AgentLimitsReply, n as AGENT_URL_ENV, s as AgentFactoryRetryRequest } from "./session-8Pv0y1vz.js";
3
3
  import { i as resolveHookTarget } from "./hook-relay-core-DA_bz2KA.js";
4
4
  import { n as decideGuardrailsProxy } from "./guardrails-proxy-core-BI3rdY-m.js";
5
5
  import { t as parseJsonOrNull } from "./json-core-dfa_7Fak.js";
6
- import { a as formatSessionLimits } from "./session-routes-C4t8O8yg.js";
7
- import { m as isOrchestratorAgentVerb, p as isAgentApiVerb } from "./agent-api-core-DzKhakCv.js";
6
+ import { a as formatSessionLimits } from "./session-routes-D-GZC-Sy.js";
7
+ import { m as isOrchestratorAgentVerb, p as isAgentApiVerb } from "./agent-api-core--8WtU1xU.js";
8
8
  import path from "node:path";
9
9
  import http from "node:http";
10
10
  //#region server/agent-api-cli.ts
@@ -1,5 +1,5 @@
1
- import { a as AgentDispatchRequest, c as AgentFactoryStatusRequest, i as AgentAttentionRequest, o as AgentEditRequest, s as AgentFactoryRetryRequest, t as AGENT_API_VERBS, u as AgentSpawnRequest, y as ORCHESTRATOR_AGENT_VERBS } from "./session-BZbariv5.js";
2
- import { c as spawnRoute, i as editRoute, n as attentionRoute, s as pushRoute, t as NO_OWN_WORKTREE_REASON } from "./session-routes-C4t8O8yg.js";
1
+ import { c as AgentFactoryStatusRequest, i as AgentAttentionRequest, o as AgentEditRequest, s as AgentFactoryRetryRequest, t as AGENT_API_VERBS, u as AgentSpawnRequest, y as ORCHESTRATOR_AGENT_VERBS } from "./session-8Pv0y1vz.js";
2
+ import { c as spawnRoute, i as editRoute, n as attentionRoute, s as pushRoute, t as NO_OWN_WORKTREE_REASON } from "./session-routes-D-GZC-Sy.js";
3
3
  import crypto from "node:crypto";
4
4
  var MAX_SPAWNS_IN_FLIGHT = 1;
5
5
  var SPAWNABLE_DEPTH = 0;
@@ -165,16 +165,7 @@ function parseAgentVerb(verb, payload) {
165
165
  request: parsed.data
166
166
  };
167
167
  }
168
- if (verb === "dispatch") {
169
- const parsed = AgentDispatchRequest.safeParse(payload);
170
- if (!parsed.success) return refuseInvalidBody(parsed.error.issues);
171
- return {
172
- ok: true,
173
- verb,
174
- request: parsed.data
175
- };
176
- }
177
- if (verb === "reopen" || verb === "cancel") return {
168
+ if (isOrchestratorAgentVerb(verb)) return {
178
169
  ok: false,
179
170
  status: 403,
180
171
  error: `${verb} requires a live factory orchestrator`
@@ -1,6 +1,6 @@
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-CZ6kP_vD.js";
3
- import { p as writeTextAtomicSync } from "./json-file-BaxGcB2R.js";
2
+ import { a as classifyGrokHooksFile, o as renderGrokHooksFile, t as grok } from "./grok-xFs6zIu4.js";
3
+ import { p as writeTextAtomicSync } from "./json-file-CIJf0Cel.js";
4
4
  import fs from "node:fs";
5
5
  import path from "node:path";
6
6
  //#region server/agent-setup-cli.ts
@@ -1,4 +1,4 @@
1
- import { $ as repositoryName, Ft as repoParts, K as MyPrSearchNode, Mt as GH_SEGMENT, N as TaskTitle, Q as SessionPrLinks, et as CommitSha } from "./session-BZbariv5.js";
1
+ import { $ as repositoryName, Ft as repoParts, K as MyPrSearchNode, Mt as GH_SEGMENT, N as TaskTitle, Q as SessionPrLinks, et as CommitSha } from "./session-8Pv0y1vz.js";
2
2
  import { n as isRecord } from "./coerce-NSst8oRP.js";
3
3
  import path from "node:path";
4
4
  import { z } from "zod";
@@ -178,6 +178,10 @@ var REPLAY_BUFFER_KB_RANGE = Object.freeze({
178
178
  min: 64,
179
179
  max: 16384
180
180
  });
181
+ var MEMORY_RESERVE_MB_RANGE = Object.freeze({
182
+ min: 0,
183
+ max: 65536
184
+ });
181
185
  var PORT_RANGE = Object.freeze({
182
186
  min: 0,
183
187
  max: 65535
@@ -280,6 +284,7 @@ Object.freeze({
280
284
  POSTHOG_TRAFFIC_MIN_USERS_RANGE,
281
285
  POSTHOG_TRAFFIC_MULTIPLIER_RANGE,
282
286
  REPLAY_BUFFER_KB_RANGE,
287
+ MEMORY_RESERVE_MB_RANGE,
283
288
  TASK_TITLE_TIMEOUT_RANGE,
284
289
  USAGE_BUDGET_RANGE,
285
290
  USAGE_RETAIN_DAYS_RANGE,
@@ -713,12 +718,11 @@ var TelemetrySettings = z.object(telemetryShape, { error: "telemetry must be an
713
718
  var TelemetryFileSettings = z.object(telemetryShape, { error: "telemetry must be an object" }).passthrough().optional();
714
719
  var createBrowserConfigShape = (isAbsolutePath) => ({
715
720
  port: z.number().int().min(PORT_RANGE.min).max(PORT_RANGE.max).optional(),
716
- autoRecoverSeconds: z.number().finite().nonnegative().optional(),
717
- inputGraceSeconds: z.number().finite().nonnegative().optional(),
718
- promptDetectionMs: z.number().finite().nonnegative().optional(),
719
721
  notifyDebounceMs: z.number().finite().nonnegative().optional(),
720
722
  phoneEscalationMs: z.number().finite().nonnegative().optional(),
721
723
  replayBufferKB: optionalWholeNumber("replayBufferKB", REPLAY_BUFFER_KB_RANGE),
724
+ sessionMemoryReserveMB: optionalWholeNumber("sessionMemoryReserveMB", MEMORY_RESERVE_MB_RANGE),
725
+ checkMemoryReserveMB: optionalWholeNumber("checkMemoryReserveMB", MEMORY_RESERVE_MB_RANGE),
722
726
  cursorBlink: optionalBoolean("cursorBlink"),
723
727
  debugMode: optionalBoolean("debugMode"),
724
728
  conversationView: optionalBoolean("conversationView"),
@@ -761,9 +765,6 @@ var BrowserConfig = createBrowserConfig(path.isAbsolute);
761
765
  var BROWSER_CONFIG_SHAPE = BrowserConfig.shape;
762
766
  var ConfigUpdate = z.object({
763
767
  ...BROWSER_CONFIG_SHAPE,
764
- autoRecoverSeconds: z.number({ error: "autoRecoverSeconds must be a positive number" }).finite().positive({ error: "autoRecoverSeconds must be a positive number" }).optional(),
765
- inputGraceSeconds: z.number({ error: "inputGraceSeconds must be a positive number" }).finite().positive({ error: "inputGraceSeconds must be a positive number" }).optional(),
766
- promptDetectionMs: z.number({ error: "promptDetectionMs must be a positive number" }).finite().positive({ error: "promptDetectionMs must be a positive number" }).optional(),
767
768
  notifyDebounceMs: z.number({ error: "notifyDebounceMs must be a positive number" }).finite().positive({ error: "notifyDebounceMs must be a positive number" }).optional(),
768
769
  phoneEscalationMs: z.number({ error: "phoneEscalationMs must be a positive number" }).finite().positive({ error: "phoneEscalationMs must be a positive number" }).optional(),
769
770
  branchGc: BranchGcControlSettings,
@@ -973,4 +974,4 @@ function configIssueMessage(error) {
973
974
  return error.issues[0]?.message || "settings are invalid";
974
975
  }
975
976
  //#endregion
976
- export { CoherenceWorkInspect as $, FLYING_ANIMALS_GAP_RANGE as A, REPLAY_BUFFER_KB_RANGE as B, USAGE_COST_MODES as C, FACTORY_MAX_LIVE_WORKERS_RANGE as D, CHANGE_MAP_NARRATOR_TIMEOUT_RANGE as E, POSITIVE_NUMBER_RANGE as F, USAGE_SCAN_INTERVAL_RANGE as G, USAGE_BUDGET_RANGE as H, POSTHOG_FIX_TIMEOUT_RANGE as I, CoherenceOrient as J, WORKFLOWS_MAX_ACTIONS_PER_POLL_RANGE as K, POSTHOG_TRAFFIC_BASELINE_RANGE as L, KEEP_MERGEABLE_TIMEOUT_MINUTES_RANGE as M, NON_NEGATIVE_NUMBER_RANGE as N, FLYING_ANIMALS_DEFAULTS as O, PORT_RANGE as P, CoherenceWorkCreated as Q, POSTHOG_TRAFFIC_MIN_USERS_RANGE as R, WorkflowsState as S, normalizeLegacyConfigNumbers as T, USAGE_INTEGER_RANGES as U, TASK_TITLE_TIMEOUT_RANGE as V, USAGE_RETAIN_DAYS_RANGE as W, CoherenceRisk as X, CoherenceReadiness as Y, CoherenceTicketCreated as Z, UPDATE_CHANNELS as _, ConfigUpdate as a, WorkflowSearchNode as b, RUNTIME_CONFIG_SCALAR_KEYS as c, BranchGcFileSettings as d, CoherenceWorkState as et, CHANGE_MAP_NARRATOR_ENGINES as f, POST_TURN_CHECK_MODES as g, FactorySettings as h, Config as i, FLYING_ANIMALS_SCALE_RANGE as j, FLYING_ANIMALS_DURATION_RANGE as k, TASK_TITLE_SOURCE_PRIORITY as l, DEFAULT_FACTORY_PROTECTED_PATHS as m, BUILTIN_AGENT_IDS as n, PersistedTaskTitle as o, DEFAULT_FACTORY_CHECKS as p, WORKFLOWS_MAX_CONCURRENT_SESSIONS_RANGE as q, BrowserConfig as r, ProjectConfig as s, AGENT_ID_SHAPE_MESSAGE as t, configIssueMessage as u, WorkflowCommentBody as v, USAGE_VENDOR_KEYS as w, WorkflowsSettings as x, WorkflowLabelName as y, POSTHOG_TRAFFIC_MULTIPLIER_RANGE as z };
977
+ export { CoherenceWorkCreated as $, FLYING_ANIMALS_GAP_RANGE as A, POSTHOG_TRAFFIC_MULTIPLIER_RANGE as B, USAGE_COST_MODES as C, FACTORY_MAX_LIVE_WORKERS_RANGE as D, CHANGE_MAP_NARRATOR_TIMEOUT_RANGE as E, PORT_RANGE as F, USAGE_RETAIN_DAYS_RANGE as G, TASK_TITLE_TIMEOUT_RANGE as H, POSITIVE_NUMBER_RANGE as I, WORKFLOWS_MAX_CONCURRENT_SESSIONS_RANGE as J, USAGE_SCAN_INTERVAL_RANGE as K, POSTHOG_FIX_TIMEOUT_RANGE as L, KEEP_MERGEABLE_TIMEOUT_MINUTES_RANGE as M, MEMORY_RESERVE_MB_RANGE as N, FLYING_ANIMALS_DEFAULTS as O, NON_NEGATIVE_NUMBER_RANGE as P, CoherenceTicketCreated as Q, POSTHOG_TRAFFIC_BASELINE_RANGE as R, WorkflowsState as S, normalizeLegacyConfigNumbers as T, USAGE_BUDGET_RANGE as U, REPLAY_BUFFER_KB_RANGE as V, USAGE_INTEGER_RANGES as W, CoherenceReadiness as X, CoherenceOrient as Y, CoherenceRisk as Z, UPDATE_CHANNELS as _, ConfigUpdate as a, WorkflowSearchNode as b, RUNTIME_CONFIG_SCALAR_KEYS as c, BranchGcFileSettings as d, CoherenceWorkInspect as et, CHANGE_MAP_NARRATOR_ENGINES as f, POST_TURN_CHECK_MODES as g, FactorySettings as h, Config as i, FLYING_ANIMALS_SCALE_RANGE as j, FLYING_ANIMALS_DURATION_RANGE as k, TASK_TITLE_SOURCE_PRIORITY as l, DEFAULT_FACTORY_PROTECTED_PATHS as m, BUILTIN_AGENT_IDS as n, PersistedTaskTitle as o, DEFAULT_FACTORY_CHECKS as p, WORKFLOWS_MAX_ACTIONS_PER_POLL_RANGE as q, BrowserConfig as r, ProjectConfig as s, AGENT_ID_SHAPE_MESSAGE as t, CoherenceWorkState as tt, configIssueMessage as u, WorkflowCommentBody as v, USAGE_VENDOR_KEYS as w, WorkflowsSettings as x, WorkflowLabelName as y, POSTHOG_TRAFFIC_MIN_USERS_RANGE as z };
@@ -0,0 +1 @@
1
+ export { s as loadConfigFile } from "./config-store-DbfMbz4j.js";
@@ -2,9 +2,9 @@ import { n as errorLabel, r as errorMessage } from "./text-DoirglWV.js";
2
2
  import { n as equalsIgnoringCaseOnWindows } from "./paths-Bu4eH1Yd.js";
3
3
  import { n as glimmervoidHomeDir$1, t as decideConfigPath } from "./config-path-core-DFt-TemS.js";
4
4
  import { n as isRecord } from "./coerce-NSst8oRP.js";
5
- import { d as writeJsonAtomicSync, f as writeTextAtomic, p as writeTextAtomicSync } from "./json-file-BaxGcB2R.js";
6
- import { A as FLYING_ANIMALS_GAP_RANGE, B as REPLAY_BUFFER_KB_RANGE, C as USAGE_COST_MODES, D as FACTORY_MAX_LIVE_WORKERS_RANGE, E as CHANGE_MAP_NARRATOR_TIMEOUT_RANGE, F as POSITIVE_NUMBER_RANGE, G as USAGE_SCAN_INTERVAL_RANGE, H as USAGE_BUDGET_RANGE, I as POSTHOG_FIX_TIMEOUT_RANGE, K as WORKFLOWS_MAX_ACTIONS_PER_POLL_RANGE, L as POSTHOG_TRAFFIC_BASELINE_RANGE, M as KEEP_MERGEABLE_TIMEOUT_MINUTES_RANGE, N as NON_NEGATIVE_NUMBER_RANGE, O as FLYING_ANIMALS_DEFAULTS, P as PORT_RANGE, R as POSTHOG_TRAFFIC_MIN_USERS_RANGE, T as normalizeLegacyConfigNumbers, U as USAGE_INTEGER_RANGES, V as TASK_TITLE_TIMEOUT_RANGE, W as USAGE_RETAIN_DAYS_RANGE, _ as UPDATE_CHANNELS, c as RUNTIME_CONFIG_SCALAR_KEYS, d as BranchGcFileSettings, f as CHANGE_MAP_NARRATOR_ENGINES, g as POST_TURN_CHECK_MODES, i as Config, j as FLYING_ANIMALS_SCALE_RANGE, k as FLYING_ANIMALS_DURATION_RANGE, m as DEFAULT_FACTORY_PROTECTED_PATHS, n as BUILTIN_AGENT_IDS, p as DEFAULT_FACTORY_CHECKS, q as WORKFLOWS_MAX_CONCURRENT_SESSIONS_RANGE, t as AGENT_ID_SHAPE_MESSAGE, u as configIssueMessage, z as POSTHOG_TRAFFIC_MULTIPLIER_RANGE } from "./config-BYc2z1Oc.js";
7
- import { V as FeatureFlagsResponse, W as TELEMETRY_KILL_SWITCH_FLAG } from "./contracts-C6ipN_zw.js";
5
+ import { b as DEFAULT_CHECK_MEMORY_RESERVE_MB, d as writeJsonAtomicSync, f as writeTextAtomic, p as writeTextAtomicSync } from "./json-file-CIJf0Cel.js";
6
+ import { A as FLYING_ANIMALS_GAP_RANGE, B as POSTHOG_TRAFFIC_MULTIPLIER_RANGE, C as USAGE_COST_MODES, D as FACTORY_MAX_LIVE_WORKERS_RANGE, E as CHANGE_MAP_NARRATOR_TIMEOUT_RANGE, F as PORT_RANGE, G as USAGE_RETAIN_DAYS_RANGE, H as TASK_TITLE_TIMEOUT_RANGE, I as POSITIVE_NUMBER_RANGE, J as WORKFLOWS_MAX_CONCURRENT_SESSIONS_RANGE, K as USAGE_SCAN_INTERVAL_RANGE, L as POSTHOG_FIX_TIMEOUT_RANGE, M as KEEP_MERGEABLE_TIMEOUT_MINUTES_RANGE, N as MEMORY_RESERVE_MB_RANGE, O as FLYING_ANIMALS_DEFAULTS, P as NON_NEGATIVE_NUMBER_RANGE, R as POSTHOG_TRAFFIC_BASELINE_RANGE, T as normalizeLegacyConfigNumbers, U as USAGE_BUDGET_RANGE, V as REPLAY_BUFFER_KB_RANGE, W as USAGE_INTEGER_RANGES, _ as UPDATE_CHANNELS, c as RUNTIME_CONFIG_SCALAR_KEYS, d as BranchGcFileSettings, f as CHANGE_MAP_NARRATOR_ENGINES, g as POST_TURN_CHECK_MODES, i as Config, j as FLYING_ANIMALS_SCALE_RANGE, k as FLYING_ANIMALS_DURATION_RANGE, m as DEFAULT_FACTORY_PROTECTED_PATHS, n as BUILTIN_AGENT_IDS, p as DEFAULT_FACTORY_CHECKS, q as WORKFLOWS_MAX_ACTIONS_PER_POLL_RANGE, t as AGENT_ID_SHAPE_MESSAGE, u as configIssueMessage, z as POSTHOG_TRAFFIC_MIN_USERS_RANGE } from "./config-BHBZsCBc.js";
7
+ import { K as TELEMETRY_KILL_SWITCH_FLAG, U as FeatureFlagsResponse } from "./contracts-u40eJhaf.js";
8
8
  import fs from "node:fs";
9
9
  import path from "node:path";
10
10
  import os from "node:os";
@@ -659,10 +659,6 @@ var DAYS = {
659
659
  label: "days",
660
660
  storedPerDisplay: 1
661
661
  };
662
- var MILLISECONDS = {
663
- label: "ms",
664
- storedPerDisplay: 1
665
- };
666
662
  var SECONDS_STORED_AS_MS = {
667
663
  label: "seconds",
668
664
  storedPerDisplay: MS_PER_SECOND,
@@ -2019,6 +2015,42 @@ var FILE_ONLY_SETTINGS = Object.freeze([
2019
2015
  fileOnlyReason: TUNING_KNOB,
2020
2016
  ...FILE_ONLY
2021
2017
  },
2018
+ {
2019
+ id: "file-session-memory-reserve",
2020
+ path: "sessionMemoryReserveMB",
2021
+ title: "Session memory reserve",
2022
+ group: "machine-sessions",
2023
+ description: "Free memory an automatic session start waits for; 0 starts sessions without checking.",
2024
+ control: "number",
2025
+ range: MEMORY_RESERVE_MB_RANGE,
2026
+ unit: {
2027
+ label: "MB",
2028
+ storedPerDisplay: 1
2029
+ },
2030
+ keywords: ["memory", "headroom"],
2031
+ defaultValue: 600,
2032
+ takesEffect: "now",
2033
+ fileOnlyReason: TUNING_KNOB,
2034
+ ...FILE_ONLY
2035
+ },
2036
+ {
2037
+ id: "file-check-memory-reserve",
2038
+ path: "checkMemoryReserveMB",
2039
+ title: "Check run memory reserve",
2040
+ group: "machine-sessions",
2041
+ description: "Free memory a factory check run waits for; 0 runs checks without checking.",
2042
+ control: "number",
2043
+ range: MEMORY_RESERVE_MB_RANGE,
2044
+ unit: {
2045
+ label: "MB",
2046
+ storedPerDisplay: 1
2047
+ },
2048
+ keywords: ["memory", "factory"],
2049
+ defaultValue: 1500,
2050
+ takesEffect: "now",
2051
+ fileOnlyReason: TUNING_KNOB,
2052
+ ...FILE_ONLY
2053
+ },
2022
2054
  {
2023
2055
  id: "file-cursor-blink",
2024
2056
  path: "cursorBlink",
@@ -2190,57 +2222,6 @@ var FILE_ONLY_SETTINGS = Object.freeze([
2190
2222
  fileOnlyReason: BY_RULE,
2191
2223
  ...FILE_ONLY
2192
2224
  },
2193
- {
2194
- id: "file-auto-recover-seconds",
2195
- path: "autoRecoverSeconds",
2196
- title: "Auto-recovery delay",
2197
- group: "machine-detection-sessions",
2198
- description: "Delay before an interrupted state can recover.",
2199
- control: "number",
2200
- integer: false,
2201
- step: "any",
2202
- range: POSITIVE_NUMBER_RANGE,
2203
- unit: SECONDS,
2204
- keywords: ["timer", "recovery"],
2205
- defaultValue: 3,
2206
- takesEffect: "new-sessions",
2207
- fileOnlyReason: TUNING_KNOB,
2208
- ...FILE_ONLY
2209
- },
2210
- {
2211
- id: "file-input-grace-seconds",
2212
- path: "inputGraceSeconds",
2213
- title: "Input grace period",
2214
- group: "machine-detection-sessions",
2215
- description: "Grace window around operator input.",
2216
- control: "number",
2217
- integer: false,
2218
- step: "any",
2219
- range: POSITIVE_NUMBER_RANGE,
2220
- unit: SECONDS,
2221
- keywords: ["timer", "prompt"],
2222
- defaultValue: 5,
2223
- takesEffect: "new-sessions",
2224
- fileOnlyReason: TUNING_KNOB,
2225
- ...FILE_ONLY
2226
- },
2227
- {
2228
- id: "file-prompt-detection-ms",
2229
- path: "promptDetectionMs",
2230
- title: "Prompt detection delay",
2231
- group: "machine-detection-sessions",
2232
- description: "Timing threshold used by prompt detection.",
2233
- control: "number",
2234
- integer: false,
2235
- step: "any",
2236
- range: POSITIVE_NUMBER_RANGE,
2237
- unit: MILLISECONDS,
2238
- keywords: ["timer", "detection"],
2239
- defaultValue: 1500,
2240
- takesEffect: "new-sessions",
2241
- fileOnlyReason: TUNING_KNOB,
2242
- ...FILE_ONLY
2243
- },
2244
2225
  {
2245
2226
  id: "file-notify-debounce-ms",
2246
2227
  path: "notifyDebounceMs",
@@ -3552,9 +3533,6 @@ function findEscapingArchiveMember(listingText) {
3552
3533
  //#region server/config-store.ts
3553
3534
  var DEFAULT_CONFIG = {
3554
3535
  port: 3e3,
3555
- autoRecoverSeconds: 3,
3556
- inputGraceSeconds: 5,
3557
- promptDetectionMs: 1500,
3558
3536
  notifyDebounceMs: 3e3,
3559
3537
  phoneEscalationMs: 3e5,
3560
3538
  cursorBlink: false,
@@ -3564,6 +3542,8 @@ var DEFAULT_CONFIG = {
3564
3542
  detectBackgroundAgents: true,
3565
3543
  detectScheduledWakeups: true,
3566
3544
  replayBufferKB: 512,
3545
+ sessionMemoryReserveMB: 600,
3546
+ checkMemoryReserveMB: DEFAULT_CHECK_MEMORY_RESERVE_MB,
3567
3547
  recordSignals: true,
3568
3548
  trace: { enabled: true },
3569
3549
  planReview: { enabled: true },
@@ -4004,9 +3984,6 @@ function createConfigStore({ settingsDefaults } = {}) {
4004
3984
  function getSettings() {
4005
3985
  return {
4006
3986
  port: config.port,
4007
- autoRecoverSeconds: config.autoRecoverSeconds,
4008
- inputGraceSeconds: config.inputGraceSeconds,
4009
- promptDetectionMs: config.promptDetectionMs,
4010
3987
  notifyDebounceMs: config.notifyDebounceMs,
4011
3988
  phoneEscalationMs: config.phoneEscalationMs ?? DEFAULT_CONFIG.phoneEscalationMs,
4012
3989
  replayBufferKB: config.replayBufferKB,
@@ -1,5 +1,5 @@
1
- import { D as SessionDoc, Dt as hasRequiredActionHead, G as MyPrMergeWhenReadyResult, H as MyPrMergeResult, It as GithubPollingRefreshRequest, Lt as GithubPollingRefreshResult, N as TaskTitle, O as SessionSnapshot, P as LinkedPr, Pt as REPO_SLUG_RE, Q as SessionPrLinks, R as MyPrKeepMergeableRequest, Rt as githubPollingShape, V as MyPrMergeRequest, W as MyPrMergeWhenReadyRequest, Z as MyPrsStatus, _ as ConversationApprovalDecision, _t as TeamReviewActionResult, b as PendingWakeup, et as CommitSha, g as ConversationApproval, gt as TeamReviewActionRequest, h as ConversationAnswers, k as SessionState, w as SESSION_DOC_PATH_MAX_CHARS, xt as TeamReviewStatus, z as MyPrKeepMergeableResult } from "./session-BZbariv5.js";
2
- import { J as CoherenceOrient, X as CoherenceRisk, Y as CoherenceReadiness, et as CoherenceWorkState, h as FactorySettings, n as BUILTIN_AGENT_IDS } from "./config-BYc2z1Oc.js";
1
+ import { D as SessionDoc, Dt as hasRequiredActionHead, G as MyPrMergeWhenReadyResult, H as MyPrMergeResult, It as GithubPollingRefreshRequest, Lt as GithubPollingRefreshResult, N as TaskTitle, O as SessionSnapshot, P as LinkedPr, Pt as REPO_SLUG_RE, Q as SessionPrLinks, R as MyPrKeepMergeableRequest, Rt as githubPollingShape, V as MyPrMergeRequest, W as MyPrMergeWhenReadyRequest, Z as MyPrsStatus, _ as ConversationApprovalDecision, _t as TeamReviewActionResult, b as PendingWakeup, et as CommitSha, g as ConversationApproval, gt as TeamReviewActionRequest, h as ConversationAnswers, k as SessionState, w as SESSION_DOC_PATH_MAX_CHARS, xt as TeamReviewStatus, z as MyPrKeepMergeableResult } from "./session-8Pv0y1vz.js";
2
+ import { X as CoherenceReadiness, Y as CoherenceOrient, Z as CoherenceRisk, h as FactorySettings, n as BUILTIN_AGENT_IDS, tt as CoherenceWorkState } from "./config-BHBZsCBc.js";
3
3
  import { z } from "zod";
4
4
  //#region shared/contracts/factory.ts
5
5
  var FactoryConsequences = z.looseObject({ records: z.array(z.looseObject({
@@ -1358,8 +1358,6 @@ var idOnlyClientTypes = [
1358
1358
  "start-session",
1359
1359
  "restart",
1360
1360
  "force-restart",
1361
- "sleep",
1362
- "wake",
1363
1361
  "merge-session",
1364
1362
  "finish-session",
1365
1363
  "merge-continue-session",
@@ -1420,7 +1418,6 @@ var clientVariants = [
1420
1418
  id: sessionId,
1421
1419
  key: PullRequestKey
1422
1420
  }),
1423
- loose("reorder-sessions", { order: z.array(sessionId) }),
1424
1421
  loose("ping", { requestId }),
1425
1422
  loose("get-settings", { requestId }),
1426
1423
  loose("update-settings", {
@@ -1596,8 +1593,6 @@ Object.freeze([
1596
1593
  "session-wakeup",
1597
1594
  "session-prompt",
1598
1595
  "session-conversation",
1599
- "session-sleep",
1600
- "session-wake",
1601
1596
  "session-merge-status",
1602
1597
  "session-worktree-blocked",
1603
1598
  "session-worktree-warning",
@@ -1622,6 +1617,7 @@ Object.freeze([
1622
1617
  "notify",
1623
1618
  "update-status",
1624
1619
  "update-progress",
1620
+ "post-turn-leftovers",
1625
1621
  "error",
1626
1622
  "session-error",
1627
1623
  "settings",
@@ -1656,7 +1652,6 @@ Object.freeze([
1656
1652
  "factory-state",
1657
1653
  "my-prs-status",
1658
1654
  "issues-status",
1659
- "branch-gc-status",
1660
1655
  "usage-sessions",
1661
1656
  "usage-report",
1662
1657
  "plan-limits",
@@ -1670,7 +1665,6 @@ Object.freeze([
1670
1665
  "ingest-activity",
1671
1666
  "ingest-snapshot",
1672
1667
  "client-trust",
1673
- "sessions-reordered",
1674
1668
  "shutting-down",
1675
1669
  "restarting"
1676
1670
  ]);
@@ -1781,8 +1775,6 @@ var serverVariants = [
1781
1775
  isConversationViewOn: z.boolean(),
1782
1776
  conversationApproval: ConversationApproval.nullable()
1783
1777
  }),
1784
- loose("session-sleep"),
1785
- loose("session-wake"),
1786
1778
  loose("session-merge-status", {
1787
1779
  id: sessionId,
1788
1780
  mergeStatus: z.string(),
@@ -1910,6 +1902,10 @@ var serverVariants = [
1910
1902
  }),
1911
1903
  loose("update-status", updateStatusShape),
1912
1904
  loose("update-progress", { journal: UpdateJournal }),
1905
+ loose("post-turn-leftovers", {
1906
+ repositories: z.array(z.string()),
1907
+ command: z.string()
1908
+ }),
1913
1909
  loose("error", {
1914
1910
  id: sessionId.optional(),
1915
1911
  message: z.string(),
@@ -2094,7 +2090,6 @@ var serverVariants = [
2094
2090
  loose("factory-state", FactoryState.shape),
2095
2091
  MyPrsStatus,
2096
2092
  IssuesStatus,
2097
- loose("branch-gc-status"),
2098
2093
  loose("usage-sessions", {
2099
2094
  ts: timestamp,
2100
2095
  pricingSource: nullableString,
@@ -2182,7 +2177,6 @@ var serverVariants = [
2182
2177
  ts: timestamp
2183
2178
  }),
2184
2179
  loose("client-trust", { trust: z.enum(["local", "remote"]) }),
2185
- loose("sessions-reordered", { order: z.array(sessionId) }),
2186
2180
  loose("shutting-down"),
2187
2181
  loose("restarting")
2188
2182
  ];
@@ -2207,6 +2201,9 @@ z.object({
2207
2201
  rows: viewerRows,
2208
2202
  seq: z.number().int().nonnegative()
2209
2203
  });
2204
+ var DATA_ATTACH_HISTORY_PARAM = "history";
2205
+ var DEEP_HISTORY_SCROLLBACK_LINES = 5e3;
2206
+ var DataAttachHistory = z.enum(["screen", "deep"]);
2210
2207
  function decodeJson(raw) {
2211
2208
  try {
2212
2209
  return JSON.parse(raw);
@@ -2219,6 +2216,15 @@ function parseDataClientMessage(raw) {
2219
2216
  if (!parsed.success) return null;
2220
2217
  return parsed.data;
2221
2218
  }
2219
+ function parseDataAttachHistory(rawUrl) {
2220
+ if (typeof rawUrl !== "string") return "screen";
2221
+ const queryAt = rawUrl.indexOf("?");
2222
+ if (queryAt === -1) return "screen";
2223
+ const query = new URLSearchParams(rawUrl.slice(queryAt + 1).split("#")[0]);
2224
+ const parsed = DataAttachHistory.safeParse(query.get(DATA_ATTACH_HISTORY_PARAM));
2225
+ if (!parsed.success) return "screen";
2226
+ return parsed.data;
2227
+ }
2222
2228
  //#endregion
2223
2229
  //#region shared/contracts/hooks.ts
2224
2230
  var HTTP_URL_RE = /^https?:\/\/\S+$/i;
@@ -2242,4 +2248,4 @@ z.object({
2242
2248
  projects: z.array(z.string()).optional()
2243
2249
  }).passthrough();
2244
2250
  //#endregion
2245
- export { FactoryHarnessVerdict as $, BenchmarkActionRequest as A, PrCheckoutCaseInput as B, IssueKey as C, IssuesStatus as D, IssuesState as E, BenchmarkStatus as F, TelemetryState as G, PendingCrashReport as H, BenchmarkSuite as I, FACTORY_ERROR_MAX_CHARS as J, FACTORY_DECISION_OUTPUT_MAX_BYTES as K, CommitComparison as L, BenchmarkId as M, BenchmarkJudgement as N, ChangeMap as O, BenchmarkRun as P, FactoryHarnessStateLine as Q, MergedPrListing as R, GithubIssueResponse as S, IssuesSearchResponse as T, TELEMETRY_EVENT_SCHEMAS as U, FeatureFlagsResponse as V, TELEMETRY_KILL_SWITCH_FLAG as W, FactoryConsequences as X, FACTORY_PROTECTED_PATH_FLOOR as Y, FactoryControlRequest as Z, PlanDecision as _, ClientMessage as a, FactoryWorkerEvent as at, planTitle as b, UpdateJournal as c, TraceRecord as d, FactoryLaneState as et, PLAN_BODY_CAP_BYTES as f, PLAN_TOOL_NAME as g, PLAN_RESULT_HOOK_EVENT as h, CONTROL_FRAME_MAX_BYTES as i, FactoryReviewerOutput as it, BenchmarkCase as j, changeMapFactId as k, MAX_RAW_LINE_CHARS as l, PLAN_HOOK_OUTPUT_MAX_CHARS as m, HookEnvelope as n, FactoryQueueIntentRequest as nt, DIFF_ANNOTATION_NOTE_MAX_CHARS as o, isSingleFactoryPathSegment as ot, PLAN_HOOK_EVENT as p, FactoryDecisionLogLine as q, parseDataClientMessage as r, FactoryReviewVerdict as rt, InstallFlavor as s, HTTP_URL_RE as t, FactoryProjectState as tt, TraceCheckpoint as u, PlanRevision as v, IssueUpdate as w, GithubIssuePullRequestsRepository as x, parseExitPlanModeHookPayload as y, MinedPrReviewData as z };
2251
+ export { FactoryControlRequest as $, ChangeMap as A, MergedPrListing as B, GithubIssuePullRequestsRepository as C, IssuesSearchResponse as D, IssueUpdate as E, BenchmarkJudgement as F, TELEMETRY_EVENT_SCHEMAS as G, PrCheckoutCaseInput as H, BenchmarkRun as I, FACTORY_DECISION_OUTPUT_MAX_BYTES as J, TELEMETRY_KILL_SWITCH_FLAG as K, BenchmarkStatus as L, BenchmarkActionRequest as M, BenchmarkCase as N, IssuesState as O, BenchmarkId as P, FactoryConsequences as Q, BenchmarkSuite as R, planTitle as S, IssueKey as T, FeatureFlagsResponse as U, MinedPrReviewData as V, PendingCrashReport as W, FACTORY_ERROR_MAX_CHARS as X, FactoryDecisionLogLine as Y, FACTORY_PROTECTED_PATH_FLOOR as Z, PLAN_RESULT_HOOK_EVENT as _, parseDataClientMessage as a, FactoryReviewVerdict as at, PlanRevision as b, DIFF_ANNOTATION_NOTE_MAX_CHARS as c, isSingleFactoryPathSegment as ct, MAX_RAW_LINE_CHARS as d, FactoryHarnessStateLine as et, TraceCheckpoint as f, PLAN_HOOK_OUTPUT_MAX_CHARS as g, PLAN_HOOK_EVENT as h, parseDataAttachHistory as i, FactoryQueueIntentRequest as it, changeMapFactId as j, IssuesStatus as k, InstallFlavor as l, PLAN_BODY_CAP_BYTES as m, HookEnvelope as n, FactoryLaneState as nt, CONTROL_FRAME_MAX_BYTES as o, FactoryReviewerOutput as ot, TraceRecord as p, TelemetryState as q, DEEP_HISTORY_SCROLLBACK_LINES as r, FactoryProjectState as rt, ClientMessage as s, FactoryWorkerEvent as st, HTTP_URL_RE as t, FactoryHarnessVerdict as tt, UpdateJournal as u, PLAN_TOOL_NAME as v, GithubIssueResponse as w, parseExitPlanModeHookPayload as x, PlanDecision as y, CommitComparison as z };
@@ -1,4 +1,4 @@
1
- import { t as AGENT_API_VERBS } from "./session-BZbariv5.js";
1
+ import { t as AGENT_API_VERBS } from "./session-8Pv0y1vz.js";
2
2
  import { r as execFileSync } from "./child-process-safe-CbQnyh7D.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 { T as SIGN_URL_ENV, n as AGENT_URL_ENV } from "./session-BZbariv5.js";
3
+ import { T as SIGN_URL_ENV, n as AGENT_URL_ENV } from "./session-8Pv0y1vz.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 { o as SANE_YOLO_PATH_ENV, r as RTK_PATH_ENV, s as saneYoloEnv } from "./rtk-hook-core-VrUafGAp.js";