@overdeck/desktop 0.45.10 → 0.45.11

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 (86) hide show
  1. package/package.json +1 -1
  2. package/server/{advancing-selfheal-CMlGznKv.js → advancing-selfheal-BezNfM3P.js} +3 -3
  3. package/server/{agent-state-xk_G8t90.js → agent-state-BUANcaA7.js} +1 -1
  4. package/server/{agent-state-service-C1iUF9Ft.js → agent-state-service-DmFpIMbP.js} +1 -1
  5. package/server/{agent-state-service-5ge9xxhx.js → agent-state-service-tXUdp6UF.js} +2 -2
  6. package/server/{agents-BIggLvi_.js → agents-C-vqmKDi.js} +1 -1
  7. package/server/{agents-DHvsjsuP.js → agents-C7V4odQ6.js} +11 -11
  8. package/server/{backlog-auto-trigger-COm_R96V.js → backlog-auto-trigger-Cb8PR-5w.js} +2 -2
  9. package/server/{cli-CvK9xuSS.js → cli-BgzbB6h3.js} +2 -2
  10. package/server/cli-DCqy_wFa.js +3 -0
  11. package/server/{close-issue-BnpErnD1.js → close-issue-BWf3pxn4.js} +2 -2
  12. package/server/{closed-issue-reaper-DRqK5k39.js → closed-issue-reaper-D7XPq5pY.js} +4 -4
  13. package/server/{closed-issue-reaper-BLCQwTpF.js → closed-issue-reaper-VSTSTROK.js} +1 -1
  14. package/server/{conflict-gate-JdFuhKuF.js → conflict-gate-DwOslTij.js} +1 -1
  15. package/server/{conflict-gate-BhKvrPxn.js → conflict-gate-FFEvTDVA.js} +3 -3
  16. package/server/{conversation-compaction-C5o_eKEm.js → conversation-compaction-CCqN4hWk.js} +4 -4
  17. package/server/{conversation-compaction-Ba5aZdrb.js → conversation-compaction-CL5Ti4j4.js} +1 -1
  18. package/server/{deacon-j3qSZ7--.js → deacon-CGHl90eC.js} +107 -50
  19. package/server/{deacon-Cv2RMfHs.js → deacon-DMPh40Im.js} +2 -2
  20. package/server/deacon-swarm-CVTiNL0N.js +2 -0
  21. package/server/{deacon-swarm-DadWNi5J.js → deacon-swarm-aMMJTq6t.js} +4 -4
  22. package/server/deacon.js +4 -4
  23. package/server/{feedback-target-oE4-Esxl.js → feedback-target-dJjFfITP.js} +4 -4
  24. package/server/{feedback-target-C4DaDSZ8.js → feedback-target-nQSM6ygL.js} +1 -1
  25. package/server/{flywheel-ClMjGW_u.js → flywheel-BLoVNtJV.js} +6 -6
  26. package/server/{flywheel-DefHRzY4.js → flywheel-Cqf8vu7N.js} +6 -6
  27. package/server/{flywheel-BqDdGvrQ.js → flywheel-PJsbrXNY.js} +1 -1
  28. package/server/{flywheel-merge-order-CuDcqTRJ.js → flywheel-merge-order-B7BH8mZ3.js} +2 -2
  29. package/server/{flywheel-merge-order-B6YDSElh.js → flywheel-merge-order-CCwF60b-.js} +1 -1
  30. package/server/{harness-resolve-DKeSVsJL.js → harness-resolve-B3f9G1Kp.js} +2 -2
  31. package/server/{inspect-agent-BKKc0XnB.js → inspect-agent-CKF5-SJr.js} +3 -3
  32. package/server/inspect-agent-CqpEWGWy.js +2 -0
  33. package/server/{issue-lifecycle-DnhQgddB.js → issue-lifecycle-5LbOcATP.js} +7 -7
  34. package/server/{issue-lifecycle-nY4esZn8.js → issue-lifecycle-CjYqQ669.js} +1 -1
  35. package/server/{issue-service-singleton-Bnqv1uaa.js → issue-service-singleton-B8iu_TKV.js} +1 -1
  36. package/server/{issue-service-singleton-_AquSBTl.js → issue-service-singleton-CDGt__oQ.js} +2 -2
  37. package/server/{lifecycle-CGKm7doE.js → lifecycle-CEg4sHZH.js} +4 -4
  38. package/server/{merge-agent-Dh8Y9PDO.js → merge-agent-7nBiCytp.js} +1 -1
  39. package/server/{merge-agent-BcgAYStl.js → merge-agent-C81xPIGd.js} +6 -6
  40. package/server/merge-ops-DE_6CnmZ.js +2 -0
  41. package/server/{merge-train-DmxlYbEo.js → merge-train-D3qzRccL.js} +2 -2
  42. package/server/{merge-train-deps-DBHsOWt9.js → merge-train-deps-Be5ElC_P.js} +2 -2
  43. package/server/{orphan-proposed-reconciler-Db8tUhce.js → orphan-proposed-reconciler-Boq_XaRe.js} +3 -3
  44. package/server/{orphan-proposed-reconciler-mXV--tcB.js → orphan-proposed-reconciler-C0sPnDq_.js} +1 -1
  45. package/server/{reconstruct-cache-_tDZ2D72.js → reconstruct-cache-C2pCltOq.js} +3 -3
  46. package/server/{remote-completion-Bklh6loJ.js → remote-completion-BmxD5UMQ.js} +3 -3
  47. package/server/resume-C-nxu9Y4.js +3 -0
  48. package/server/{review-agent-phzqNqIs.js → review-agent-D6P6d3pz.js} +26 -17
  49. package/server/review-agent-DTINEffB.js +3 -0
  50. package/server/{review-context-CCq56O_Y.js → review-context-Dyo0tsBa.js} +2 -2
  51. package/server/{review-status-BQjqQXZG.js → review-status-B5ZASOo4.js} +18 -5
  52. package/server/{review-status-bBkqUj5i.js → review-status-h7BXIA4z.js} +1 -1
  53. package/server/{review-verdict-feedback-wqnikhMK.js → review-verdict-feedback-B70VbfRL.js} +4 -4
  54. package/server/{review-verdict-feedback-cZh9Wi9G.js → review-verdict-feedback-CorgH49f.js} +1 -1
  55. package/server/{sequence-io-B2GmilSI.js → sequence-io-6YP8fVpH.js} +2 -2
  56. package/server/{sequencer-agent-D8pW2aU_.js → sequencer-agent-ja-nkEc1.js} +5 -5
  57. package/server/server.js +66 -55
  58. package/server/{service-CILd-uOt.js → service-HKDrIy0h.js} +24 -24
  59. package/server/{smart-compaction-Bgp_gwcA.js → smart-compaction-L0LSnF0_.js} +1 -1
  60. package/server/{smart-compaction-CrP90OFE.js → smart-compaction-uke1npUz.js} +2 -2
  61. package/server/{spawn-planning-session-D15KbPOy.js → spawn-planning-session-CSMWco8B.js} +1 -1
  62. package/server/{spawn-planning-session-BmJWHSCu.js → spawn-planning-session-CXc0NkwV.js} +3 -3
  63. package/server/{specialist-context-CwKkcXL9.js → specialist-context-BGCJ24LH.js} +3 -3
  64. package/server/{specialist-logs-CvDxquV_.js → specialist-logs--Uz-r8ia.js} +2 -2
  65. package/server/{specialists-BCjcG4uE.js → specialists-Ca9XSBCS.js} +1 -1
  66. package/server/{specialists-D07ybnam.js → specialists-DEfrAbWs.js} +36 -36
  67. package/server/{specialists-F2uMO4QS.js → specialists-DeZx9xom.js} +1 -1
  68. package/server/{specialists-BYi0k8CZ.js → specialists-nZ0mRwpZ.js} +12 -12
  69. package/server/{summary-fork-DedqguZb.js → summary-fork-2a1L2DIU.js} +2 -2
  70. package/server/{summary-fork-EjvOkEPl.js → summary-fork-Xn0QUNmb.js} +3 -3
  71. package/server/{teardown-workspace-5LCVbjfq.js → teardown-workspace-DhA6oAIK.js} +2 -2
  72. package/server/{test-agent-queue-qfsq6uaC.js → test-agent-queue-B_ukPyIK.js} +3 -3
  73. package/server/{uat-train-CtNGgXxj.js → uat-train-BLBAbJ8Y.js} +10 -10
  74. package/server/{uat-train-C3hWXtip.js → uat-train-DPfGR9_I.js} +1 -1
  75. package/server/{verification-runner-DuZRHjPU.js → verification-runner-KTGTNugM.js} +1 -1
  76. package/server/{verification-runner-BPAhPWR7.js → verification-runner-R2-4XgMO.js} +4 -4
  77. package/server/{workflows-H-COJ84X.js → workflows-CSKX5MhC.js} +7 -7
  78. package/server/workflows-DVwXauef.js +2 -0
  79. package/server/{workspaces-CRU9_vRn.js → workspaces-DXLDgXo2.js} +32 -32
  80. package/server/cli-CJDWXE_Y.js +0 -3
  81. package/server/deacon-swarm-D1iAUX-P.js +0 -2
  82. package/server/inspect-agent-vm88mLYr.js +0 -2
  83. package/server/merge-ops-QdBiQ8XB.js +0 -2
  84. package/server/resume-DnIsmIgC.js +0 -3
  85. package/server/review-agent-DgySDb-G.js +0 -3
  86. package/server/workflows-Cz8OtiB4.js +0 -2
@@ -3,7 +3,7 @@ import { Lr as encodeClaudeProjectDir, Or as OVERDECK_HOME, Vr as init_paths, vr
3
3
  import { E as listPaneValues, L as sessionExists, w as killSession, x as init_tmux } from "./tmux-ePNhMIMU.js";
4
4
  import { o as getPricingSync, s as init_cost, t as calculateCostSync } from "./cost-C2CuA66z.js";
5
5
  import { a as readCavemanVariant, n as init_workspace } from "./workspace-4ZufqeMe.js";
6
- import { n as resolveHarness, t as init_harness_resolve } from "./harness-resolve-DKeSVsJL.js";
6
+ import { n as resolveHarness, t as init_harness_resolve } from "./harness-resolve-B3f9G1Kp.js";
7
7
  import { Effect } from "effect";
8
8
  import { appendFileSync, existsSync, mkdirSync, readFileSync, readdirSync, statSync, writeFileSync } from "fs";
9
9
  import { basename, join } from "path";
@@ -325,7 +325,7 @@ function roleForSpecialistModel(specialistType) {
325
325
  return { role: "work" };
326
326
  }
327
327
  async function buildSpecialistBaseCommand(specialistType, model, sessionName) {
328
- const { getAgentRuntimeBaseCommand } = await import("./agents-BIggLvi_.js");
328
+ const { getAgentRuntimeBaseCommand } = await import("./agents-C-vqmKDi.js");
329
329
  const role = roleForSpecialistModel(specialistType).role;
330
330
  const harness = await resolveHarness({
331
331
  model,
@@ -724,7 +724,7 @@ async function signalSpecialistCompletion(projectKey, specialistType, result, is
724
724
  const resolvedTmuxSession = metadata.tmuxSession ?? getTmuxSessionName(specialistType, projectKey, issueId);
725
725
  updateRunStatus(projectKey, registryKey, result.status);
726
726
  if (metadata.currentRun) try {
727
- const { finalizeRunLogSync } = await import("./specialist-logs-CvDxquV_.js");
727
+ const { finalizeRunLogSync } = await import("./specialist-logs--Uz-r8ia.js");
728
728
  finalizeRunLogSync(projectKey, specialistType, metadata.currentRun, {
729
729
  status: result.status,
730
730
  notes: result.notes
@@ -734,7 +734,7 @@ async function signalSpecialistCompletion(projectKey, specialistType, result, is
734
734
  }
735
735
  setCurrentRun(projectKey, registryKey, null);
736
736
  updateRunMetadata(projectKey, registryKey, { currentActivity: null });
737
- import("./agents-BIggLvi_.js").then(({ saveAgentRuntimeState }) => {
737
+ import("./agents-C-vqmKDi.js").then(({ saveAgentRuntimeState }) => {
738
738
  saveAgentRuntimeState(resolvedTmuxSession, {
739
739
  state: "idle",
740
740
  lastActivity: (/* @__PURE__ */ new Date()).toISOString(),
@@ -765,7 +765,7 @@ async function terminateSpecialist(projectKey, specialistType, issueId) {
765
765
  console.error(`[specialist] Failed to kill tmux session ${tmuxSession}:`, error);
766
766
  }
767
767
  if (metadata.currentRun) {
768
- const { finalizeRunLogSync } = await import("./specialist-logs-CvDxquV_.js");
768
+ const { finalizeRunLogSync } = await import("./specialist-logs--Uz-r8ia.js");
769
769
  try {
770
770
  finalizeRunLogSync(projectKey, specialistType, metadata.currentRun, {
771
771
  status: metadata.lastRunStatus || "incomplete",
@@ -779,12 +779,12 @@ async function terminateSpecialist(projectKey, specialistType, issueId) {
779
779
  updateRunMetadata(projectKey, registryKey, { currentActivity: null });
780
780
  const key = `${projectKey}-${specialistType}`;
781
781
  gracePeriodStates.delete(key);
782
- const { saveAgentRuntimeState } = await import("./agents-BIggLvi_.js");
782
+ const { saveAgentRuntimeState } = await import("./agents-C-vqmKDi.js");
783
783
  saveAgentRuntimeState(tmuxSession, {
784
784
  state: "suspended",
785
785
  lastActivity: (/* @__PURE__ */ new Date()).toISOString()
786
786
  });
787
- const { scheduleDigestGeneration } = await import("./specialist-context-CwKkcXL9.js");
787
+ const { scheduleDigestGeneration } = await import("./specialist-context-BGCJ24LH.js");
788
788
  scheduleDigestGeneration(projectKey, specialistType);
789
789
  scheduleLogCleanup(projectKey, specialistType);
790
790
  }
@@ -797,7 +797,7 @@ async function terminateSpecialist(projectKey, specialistType, issueId) {
797
797
  function scheduleLogCleanup(projectKey, specialistType) {
798
798
  Promise.resolve().then(async () => {
799
799
  try {
800
- const { cleanupOldLogsSync } = await import("./specialist-logs-CvDxquV_.js");
800
+ const { cleanupOldLogsSync } = await import("./specialist-logs--Uz-r8ia.js");
801
801
  const { getSpecialistRetention } = await import("./projects-BNmVxnNt.js");
802
802
  const retention = getSpecialistRetention(projectKey);
803
803
  const deleted = cleanupOldLogsSync(projectKey, specialistType, {
@@ -952,7 +952,7 @@ function listSpecialistsForProject(projectKey) {
952
952
  */
953
953
  async function getAllProjectSpecialistStatuses() {
954
954
  const registry = loadRegistry();
955
- const { getAgentRuntimeStateSync } = await import("./agents-BIggLvi_.js");
955
+ const { getAgentRuntimeStateSync } = await import("./agents-C-vqmKDi.js");
956
956
  const results = [];
957
957
  for (const [projectKey, specialists] of Object.entries(registry.projects)) for (const [registryKey, metadata] of Object.entries(specialists)) {
958
958
  const { specialistType, issueId, role } = parseSpecialistRegistryKey(registryKey);
@@ -1089,7 +1089,7 @@ async function getSpecialistStatus(name, projectKey) {
1089
1089
  const sessionId = readRecordedClaudeSessionId(getTmuxSessionName(name, projectKey));
1090
1090
  const running = await isRunning(name, projectKey);
1091
1091
  const contextTokens = countContextTokens(name);
1092
- const { getAgentRuntimeStateSync } = await import("./agents-BIggLvi_.js");
1092
+ const { getAgentRuntimeStateSync } = await import("./agents-C-vqmKDi.js");
1093
1093
  const runtimeState = getAgentRuntimeStateSync(getTmuxSessionName(name, projectKey));
1094
1094
  let state;
1095
1095
  if (runtimeState) switch (runtimeState.state) {
@@ -1188,7 +1188,7 @@ async function sendFeedbackToAgent(feedback) {
1188
1188
  return false;
1189
1189
  }
1190
1190
  try {
1191
- const { messageAgent } = await import("./agents-BIggLvi_.js");
1191
+ const { messageAgent } = await import("./agents-C-vqmKDi.js");
1192
1192
  await messageAgent(agentSession, `SPECIALIST FEEDBACK: ${fromSpecialist} reported ${feedback.feedbackType.toUpperCase()} for ${toIssueId}.\n\nMUST READ: ${fileResult.filePath}\n\nUse your Read tool to open this file, read every line, then address the feedback and continue working. Do NOT stop at the prompt.`);
1193
1193
  console.log(`[specialist] Sent feedback from ${fromSpecialist} to ${agentSession} (file: ${fileResult.filePath})`);
1194
1194
  return true;
@@ -1307,4 +1307,4 @@ var init_specialists = __esmMin((() => {
1307
1307
  //#endregion
1308
1308
  export { updateRunMetadata as $, isEnabled as A, pauseGracePeriod as B, getSpecialistState as C, initSpecialistsDirectory as D, incrementProjectRunCount as E, listSpecialistsForProject as F, sendFeedbackToAgent as G, recordWake as H, loadRegistry as I, specialists_exports as J, setCurrentRun as K, makeSpecialistRegistryKey as L, isProjectSpecialistActivelyRunning as M, isRunning as N, init_specialists as O, listProjectsWithSpecialists as P, updateProjectSpecialistMetadata as Q, parseReviewerSessionName as R, getSpecialistMetadata as S, getTmuxSessionName as T, resumeGracePeriod as U, pruneSpecialistRegistryEntriesForIssue as V, saveRegistry as W, terminateSpecialist as X, startGracePeriod as Y, updateContextTokens as Z, getPendingFeedback as _, disableSpecialist as a, init_jsonl_parser as at, getReviewerSessionName as b, exitGracePeriod as c, getAllProjectSpecialistStatuses as d, updateRunStatus as et, getAllSpecialistStatus as f, getGracePeriodState as g, getFeedbackStats as h, countContextTokens as i, getSessionFilesSync as it, isInitialized as j, initializeEnabledSpecialists as k, findActiveRegistryKey as l, getEnabledSpecialists as m, buildSpecialistBaseCommand as n, getActiveSessionModelSync as nt, enableSpecialist as o, normalizeModelName as ot, getAllSpecialists as p, signalSpecialistCompletion as q, buildSpecialistCavemanExports as r, getProjectDirsSync as rt, ensureProjectSpecialistDir as s, parseClaudeSessionSync as st, REVIEWER_ROLES as t, updateSpecialistMetadata as tt, findSessionFile as u, getProjectSpecialistDir as v, getSpecialistStatus as w, getRunMetadata as x, getProjectSpecialistMetadata as y, parseSpecialistRegistryKey as z };
1309
1309
 
1310
- //# sourceMappingURL=specialists-BYi0k8CZ.js.map
1310
+ //# sourceMappingURL=specialists-nZ0mRwpZ.js.map
@@ -1,4 +1,4 @@
1
- import "./smart-compaction-CrP90OFE.js";
2
- import { a as generateFallbackSummary, l as init_summary_fork } from "./summary-fork-EjvOkEPl.js";
1
+ import "./smart-compaction-uke1npUz.js";
2
+ import { a as generateFallbackSummary, l as init_summary_fork } from "./summary-fork-Xn0QUNmb.js";
3
3
  init_summary_fork();
4
4
  export { generateFallbackSummary };
@@ -1,9 +1,9 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
2
  import { Gr as sessionFilePath, Rr as getHandoffsDir, Ur as packageRoot, Vr as init_paths, cr as FsError, f as loadConfigSync, t as init_config_yaml, vr as init_errors } from "./config-yaml-DPAieL_G.js";
3
- import { St as deliverAgentMessage, t as init_agents } from "./agents-DHvsjsuP.js";
3
+ import { St as deliverAgentMessage, t as init_agents } from "./agents-C7V4odQ6.js";
4
4
  import { k as init_conversations } from "./conversations-DL_BAWVk.js";
5
5
  import { a as init_stack_health, i as getWorkspaceStackHealth } from "./stack-health-BJVh1TCg.js";
6
- import { a as runModelSummary, i as parseEntries, o as serializeConversation, r as init_smart_compaction, s as summarizeSerializedText, t as generateSmartSummary } from "./smart-compaction-CrP90OFE.js";
6
+ import { a as runModelSummary, i as parseEntries, o as serializeConversation, r as init_smart_compaction, s as summarizeSerializedText, t as generateSmartSummary } from "./smart-compaction-uke1npUz.js";
7
7
  import { Effect } from "effect";
8
8
  import { join } from "path";
9
9
  import { homedir } from "node:os";
@@ -521,4 +521,4 @@ var init_summary_fork = __esmMin((() => {
521
521
  //#endregion
522
522
  export { init_transcript_adapter as _, generateFallbackSummary as a, handoffPreconditionFallbackReason as c, prependFallbackFocus as d, requestHandoffFromAgent as f, getTranscriptAdapter as g, validateHandoffDoc as h, copySessionFromCompactBoundary as i, init_summary_fork as l, sanitizeHandoffDoc as m, HandoffValidationError as n, generateSummaryForFork as o, reserveSummaryForkSession as p, authorHandoffExternal as r, handoffFailureReason as s, HandoffStallError as t, logHandoffFallback as u };
523
523
 
524
- //# sourceMappingURL=summary-fork-EjvOkEPl.js.map
524
+ //# sourceMappingURL=summary-fork-Xn0QUNmb.js.map
@@ -605,7 +605,7 @@ function pruneSpecialistRegistry(issueId) {
605
605
  return Effect.tryPromise({
606
606
  try: async () => {
607
607
  const step = "teardown:specialist-registry";
608
- const { pruneSpecialistRegistryEntriesForIssue } = await import("./specialists-F2uMO4QS.js");
608
+ const { pruneSpecialistRegistryEntriesForIssue } = await import("./specialists-DeZx9xom.js");
609
609
  const removed = pruneSpecialistRegistryEntriesForIssue(issueId);
610
610
  return removed > 0 ? stepOk(step, [`Pruned ${removed} specialist registry entr${removed === 1 ? "y" : "ies"} for ${issueId}`]) : stepSkipped(step, [`No specialist registry entries for ${issueId}`]);
611
611
  },
@@ -630,4 +630,4 @@ function pruneCheckpointRefs(projectPath, issueLower) {
630
630
  //#endregion
631
631
  export { teardownWorkspace as t };
632
632
 
633
- //# sourceMappingURL=teardown-workspace-5LCVbjfq.js.map
633
+ //# sourceMappingURL=teardown-workspace-DhA6oAIK.js.map
@@ -1,6 +1,6 @@
1
1
  import { Gn as resolveProjectFromIssueSync, Nn as init_projects } from "./config-yaml-DPAieL_G.js";
2
- import { c as init_review_status, y as setReviewStatusSync } from "./review-status-BQjqQXZG.js";
3
- import { W as spawnRun, t as init_agents } from "./agents-DHvsjsuP.js";
2
+ import { c as init_review_status, y as setReviewStatusSync } from "./review-status-B5ZASOo4.js";
3
+ import { W as spawnRun, t as init_agents } from "./agents-C7V4odQ6.js";
4
4
  import { n as shouldSkipDispatchAsMerged, t as init_merge_verification } from "./merge-verification-DA9rvqsE.js";
5
5
  import { r as init_test_verdict, t as clearTestVerdictArtifact } from "./test-verdict-D3Il7cBK.js";
6
6
  import { Data, Effect } from "effect";
@@ -163,4 +163,4 @@ const dispatchTestAgentAndNotify = (issueId, workspace, branch, notifyAgent) =>
163
163
  //#endregion
164
164
  export { buildTestRolePrompt, dispatchTestAgentAndNotify };
165
165
 
166
- //# sourceMappingURL=test-agent-queue-qfsq6uaC.js.map
166
+ //# sourceMappingURL=test-agent-queue-B_ukPyIK.js.map
@@ -1,14 +1,14 @@
1
1
  import { Nn as init_projects, Tr as CONFIG_FILE, Vr as init_paths, X as resolveModel, bn as findProjectByPathSync, d as loadConfigNoMigration, t as init_config_yaml } from "./config-yaml-DPAieL_G.js";
2
2
  import { t as require_toml } from "./toml-CeLDATih.js";
3
3
  import { C as isPaneDead, L as sessionExists, w as killSession, x as init_tmux } from "./tmux-ePNhMIMU.js";
4
- import { j as messageAgent, t as init_agents } from "./agents-DHvsjsuP.js";
4
+ import { j as messageAgent, t as init_agents } from "./agents-C7V4odQ6.js";
5
5
  import { S as setUatGenerationStackStartedAtSync, a as getUatGenerationSync, h as listUatGenerationsWithStacksSync, l as isMergeTrainEnabled, m as listUatGenerationsSync, o as init_merge_sync, p as listUatGenerationNamesSync, s as insertUatGenerationSync, w as updateUatGenerationSync } from "./merge-sync-CaLRt2cB.js";
6
6
  import { A as findVBriefByIssue, N as readVBriefDocument, j as init_vbrief_index } from "./io-Wy8YpFeP.js";
7
7
  import { S as getConversationByName, _t as getDiscoveredStats, at as aggregateDiscoveredSessionCost, ct as countDiscoveredSessions, ft as findDiscoveredSessions, k as init_conversations, mt as getDiscoveredSessionById, ot as aggregateDiscoveredSessionCostBy, yt as init_discovered_sessions } from "./conversations-DL_BAWVk.js";
8
8
  import { f as isFlywheelGloballyPaused, i as getFlywheelActiveRunId, n as FLYWHEEL_GLOBAL_PAUSE_KEY, o as getSetting, s as init_control_settings, t as FLYWHEEL_ACTIVE_RUN_ID_KEY, w as setSetting } from "./control-settings-BMqUkXmR.js";
9
- import { n as resolveHarness, t as init_harness_resolve } from "./harness-resolve-DKeSVsJL.js";
9
+ import { n as resolveHarness, t as init_harness_resolve } from "./harness-resolve-B3f9G1Kp.js";
10
10
  import { a as enrichSessions, c as searchSessions, i as CostThresholdError, n as getSessionsFeedFacets, o as embedSessions, r as listSessionsFeed, t as scan } from "./scanner-CUGpdp4i.js";
11
- import { S as writeLatestFlywheelStatus, c as spawnFlywheelAgent, f as getFlywheelRunDetail, g as nextFlywheelRunId, h as listFlywheelRuns, i as loadResumeSessionId, r as isFlywheelDevcontainerRuntime, s as saveResumeSessionId, t as FLYWHEEL_ORCHESTRATOR_AGENT_ID, u as abortFlywheelRun, v as readFlywheelLaunchMetadata, x as writeFlywheelLaunchMetadata, y as resolveLiveFlywheelRunId } from "./flywheel-ClMjGW_u.js";
11
+ import { S as writeLatestFlywheelStatus, c as spawnFlywheelAgent, f as getFlywheelRunDetail, g as nextFlywheelRunId, h as listFlywheelRuns, i as loadResumeSessionId, r as isFlywheelDevcontainerRuntime, s as saveResumeSessionId, t as FLYWHEEL_ORCHESTRATOR_AGENT_ID, u as abortFlywheelRun, v as readFlywheelLaunchMetadata, x as writeFlywheelLaunchMetadata, y as resolveLiveFlywheelRunId } from "./flywheel-BLoVNtJV.js";
12
12
  import { t as recordDeaconNudge } from "./deacon-nudge-log-CJGA6aSQ.js";
13
13
  import { n as init_acceptance_criteria, t as extractACFromDocument } from "./acceptance-criteria-l0DSvFFS.js";
14
14
  import { n as ensureDevcontainerSync, r as init_ensure_devcontainer } from "./ensure-devcontainer-XLL0vtgV.js";
@@ -455,12 +455,12 @@ async function pauseFlywheelRunForDashboard() {
455
455
  if (before.activeRunId) try {
456
456
  const { readFile } = await import("node:fs/promises");
457
457
  const { join } = await import("node:path");
458
- const { getAgentDir } = await import("./agents-BIggLvi_.js");
458
+ const { getAgentDir } = await import("./agents-C-vqmKDi.js");
459
459
  const sessionId = (await readFile(join(getAgentDir(FLYWHEEL_ORCHESTRATOR_AGENT_ID), "session.id"), "utf-8")).trim();
460
460
  if (sessionId) await saveResumeSessionId(before.activeRunId, sessionId);
461
461
  } catch {}
462
462
  await setPaused(true);
463
- await import("./agents-BIggLvi_.js").then(({ stopAgent }) => Effect.runPromise(stopAgent(FLYWHEEL_ORCHESTRATOR_AGENT_ID)));
463
+ await import("./agents-C-vqmKDi.js").then(({ stopAgent }) => Effect.runPromise(stopAgent(FLYWHEEL_ORCHESTRATOR_AGENT_ID)));
464
464
  return {
465
465
  before,
466
466
  after: await readGateSnapshot(),
@@ -470,7 +470,7 @@ async function pauseFlywheelRunForDashboard() {
470
470
  async function abortFlywheelRunForDashboard() {
471
471
  const candidate = await getActiveRunId();
472
472
  if (!candidate) return { aborted: await resolveLiveFlywheelRunId() ?? null };
473
- const { stopAgent } = await import("./agents-BIggLvi_.js");
473
+ const { stopAgent } = await import("./agents-C-vqmKDi.js");
474
474
  await Effect.runPromise(stopAgent(FLYWHEEL_ORCHESTRATOR_AGENT_ID));
475
475
  await abortFlywheelRun(candidate);
476
476
  return { aborted: candidate };
@@ -1901,7 +1901,7 @@ function canStartUatTrainReconciler() {
1901
1901
  async function getReadySet() {
1902
1902
  const status = await readCurrentFlywheelStatusForDashboard();
1903
1903
  if (!status) return null;
1904
- const { computeMergeQueue, resolveMergeQueuePrUrl } = await import("./flywheel-merge-order-B6YDSElh.js");
1904
+ const { computeMergeQueue, resolveMergeQueuePrUrl } = await import("./flywheel-merge-order-CCwF60b-.js");
1905
1905
  const fromVerbs = (await Effect.runPromise(computeMergeQueue(status.activePipeline, projectRoot(), {
1906
1906
  getPrUrl: resolveMergeQueuePrUrl,
1907
1907
  onIneligible: (issueId, reason) => console.log(`[uat-train] ${issueId} has a merge verb but is not merge-eligible (${reason}) — excluded from the ready set`)
@@ -1927,7 +1927,7 @@ async function getReadySet() {
1927
1927
  */
1928
1928
  async function sweepEligibleFeatures(alreadyIncluded) {
1929
1929
  try {
1930
- const { loadReviewStatuses, mergeGateEligibility } = await import("./review-status-bBkqUj5i.js");
1930
+ const { loadReviewStatuses, mergeGateEligibility } = await import("./review-status-h7BXIA4z.js");
1931
1931
  const { resolveProjectFromIssueSync } = await import("./projects-BNmVxnNt.js");
1932
1932
  const { execFile } = await import("node:child_process");
1933
1933
  const { promisify } = await import("node:util");
@@ -2162,7 +2162,7 @@ async function postUatGenerationStackPayload(name) {
2162
2162
  }
2163
2163
  async function postUatGenerationPromotePayload(name, firePostMerge) {
2164
2164
  const root = projectRoot();
2165
- const { reviewRecordEligibility } = await import("./flywheel-merge-order-B6YDSElh.js");
2165
+ const { reviewRecordEligibility } = await import("./flywheel-merge-order-CCwF60b-.js");
2166
2166
  const result = await promoteUatGeneration(name, root, {
2167
2167
  git: buildUatPromoteGitDeps(root),
2168
2168
  store: {
@@ -2180,4 +2180,4 @@ async function postUatGenerationPromotePayload(name, firePostMerge) {
2180
2180
  //#endregion
2181
2181
  export { getDashboardIdentity as _, postUatGenerationStackPayload as a, startUatTrainReconciler as c, openFlywheelRunReportForDashboard as d, pauseFlywheelRunForDashboard as f, runDashboardDbJob as g, startFlywheelRunForDashboard as h, postUatGenerationPromotePayload as i, stopUatTrainReconciler as l, resumeFlywheelRunForDashboard as m, getUatCandidatePayload as n, resolveUatProjectRoot as o, readCurrentFlywheelStatusForDashboard as p, getUatGenerationsPayload as r, runUatTrainReconcile as s, canStartUatTrainReconciler as t, abortFlywheelRunForDashboard as u, readHostDashboardApiPort as v, shouldRefuseHostDashboardPort as y };
2182
2182
 
2183
- //# sourceMappingURL=uat-train-CtNGgXxj.js.map
2183
+ //# sourceMappingURL=uat-train-BLBAbJ8Y.js.map
@@ -1,2 +1,2 @@
1
- import { a as postUatGenerationStackPayload, c as startUatTrainReconciler, i as postUatGenerationPromotePayload, l as stopUatTrainReconciler, n as getUatCandidatePayload, o as resolveUatProjectRoot, r as getUatGenerationsPayload, s as runUatTrainReconcile, t as canStartUatTrainReconciler } from "./uat-train-CtNGgXxj.js";
1
+ import { a as postUatGenerationStackPayload, c as startUatTrainReconciler, i as postUatGenerationPromotePayload, l as stopUatTrainReconciler, n as getUatCandidatePayload, o as resolveUatProjectRoot, r as getUatGenerationsPayload, s as runUatTrainReconcile, t as canStartUatTrainReconciler } from "./uat-train-BLBAbJ8Y.js";
2
2
  export { canStartUatTrainReconciler, getUatCandidatePayload, getUatGenerationsPayload, postUatGenerationPromotePayload, postUatGenerationStackPayload, resolveUatProjectRoot, runUatTrainReconcile, startUatTrainReconciler, stopUatTrainReconciler };
@@ -1,2 +1,2 @@
1
- import { n as runVerificationForIssue } from "./verification-runner-BPAhPWR7.js";
1
+ import { n as runVerificationForIssue } from "./verification-runner-R2-4XgMO.js";
2
2
  export { runVerificationForIssue };
@@ -1,9 +1,9 @@
1
1
  import { Nn as init_projects, bn as findProjectByPathSync } from "./config-yaml-DPAieL_G.js";
2
- import { c as init_review_status, f as markWorkspaceStuck, s as getReviewStatusSync, y as setReviewStatusSync } from "./review-status-BQjqQXZG.js";
3
- import { K as stopAgent, Yn as setAgentPaused, j as messageAgent, t as init_agents } from "./agents-DHvsjsuP.js";
2
+ import { c as init_review_status, f as markWorkspaceStuck, s as getReviewStatusSync, y as setReviewStatusSync } from "./review-status-B5ZASOo4.js";
3
+ import { K as stopAgent, Yn as setAgentPaused, j as messageAgent, t as init_agents } from "./agents-C7V4odQ6.js";
4
4
  import { o as init_io, t as VBriefMergeConflictError } from "./io-Wy8YpFeP.js";
5
5
  import { a as writeFeedbackFile, i as init_feedback_writer } from "./feedback-writer-DMaO0XXa.js";
6
- import { n as resolveIssueFeedbackTarget, r as surfaceIssueFeedbackNeedsYou, t as init_feedback_target } from "./feedback-target-oE4-Esxl.js";
6
+ import { n as resolveIssueFeedbackTarget, r as surfaceIssueFeedbackNeedsYou, t as init_feedback_target } from "./feedback-target-dJjFfITP.js";
7
7
  import { n as init_validation, r as runQualityGates, t as DEFAULT_GATES } from "./validation-BmUB-26g.js";
8
8
  import { a as getVBriefACStatusSync } from "./beads-DlZm-vrG.js";
9
9
  import { Effect } from "effect";
@@ -552,4 +552,4 @@ function runVerificationForIssue(issueId, workspacePath, workspaceInfo, logPrefi
552
552
  //#endregion
553
553
  export { runVerificationForIssue as n, changesetHasNoContent as t };
554
554
 
555
- //# sourceMappingURL=verification-runner-BPAhPWR7.js.map
555
+ //# sourceMappingURL=verification-runner-R2-4XgMO.js.map
@@ -1,11 +1,11 @@
1
1
  import { $n as extractPrefixSync, Dt as getProjectConfigFromWorkspacePath, Or as OVERDECK_HOME, Ot as init_record, Qn as extractNumberSync, Vr as init_paths, er as init_issue_id, kt as markRecordPipelineClosedOutSync } from "./config-yaml-DPAieL_G.js";
2
- import { _t as init_config, vt as loadCloisterConfig } from "./agents-DHvsjsuP.js";
2
+ import { _t as init_config, vt as loadCloisterConfig } from "./agents-C7V4odQ6.js";
3
3
  import { n as recordFeatureRegistryLifecycle, t as init_feature_registry_population } from "./feature-registry-population-Dwyj9gEM.js";
4
4
  import { i as findWorkspacePath, o as init_archive_planning, t as archivePlanning } from "./archive-planning-zTvWWHG_.js";
5
5
  import { a as stepSkipped, i as stepOk, n as init_types, r as stepFailed, t as getLinearApiKey } from "./types-B5u3NxMl.js";
6
- import { t as closeIssue } from "./close-issue-BnpErnD1.js";
6
+ import { t as closeIssue } from "./close-issue-BWf3pxn4.js";
7
7
  import { t as pruneStoppedAgentsForIssue } from "./agent-gc-BtAzj8QN.js";
8
- import { t as teardownWorkspace } from "./teardown-workspace-5LCVbjfq.js";
8
+ import { t as teardownWorkspace } from "./teardown-workspace-DhA6oAIK.js";
9
9
  import { n as init_compact_beads, t as compactBeads } from "./compact-beads-RFwdZFPA.js";
10
10
  import { Effect } from "effect";
11
11
  import { existsSync } from "fs";
@@ -285,7 +285,7 @@ async function verifyBranchMergedImpl(ctx) {
285
285
  const branchName = `feature/${ctx.issueId.toLowerCase()}`;
286
286
  try {
287
287
  try {
288
- const { loadReviewStatuses } = await import("./review-status-bBkqUj5i.js");
288
+ const { loadReviewStatuses } = await import("./review-status-h7BXIA4z.js");
289
289
  if (loadReviewStatuses()[ctx.issueId.toUpperCase()]?.mergeStatus === "merged") return stepOk(step, ["Merge specialist confirmed merge completed"]);
290
290
  } catch {}
291
291
  const { stdout: branchExists } = await execAsync(`git branch --list "${branchName}" 2>/dev/null || true`, {
@@ -488,7 +488,7 @@ async function resetIssueToTodoImpl(ctx) {
488
488
  */
489
489
  async function resetPostMergeStateForIssue(issueId) {
490
490
  try {
491
- const { resetPostMergeState } = await import("./merge-agent-Dh8Y9PDO.js");
491
+ const { resetPostMergeState } = await import("./merge-agent-7nBiCytp.js");
492
492
  resetPostMergeState(issueId);
493
493
  resetPostMergeState(issueId.toUpperCase());
494
494
  } catch {
@@ -504,7 +504,7 @@ function clearReviewStatusStep(issueId) {
504
504
  async function clearReviewStatusStepImpl(issueId) {
505
505
  const step = "clear-review-status";
506
506
  try {
507
- const { clearReviewStatus } = await import("./review-status-bBkqUj5i.js");
507
+ const { clearReviewStatus } = await import("./review-status-h7BXIA4z.js");
508
508
  clearReviewStatus(issueId.toUpperCase());
509
509
  return stepOk(step, ["Review status cleared"]);
510
510
  } catch {
@@ -571,4 +571,4 @@ async function resetIssueToCanceledImpl(ctx) {
571
571
  //#endregion
572
572
  export { deepWipe as a, closeOut as i, cancelIssueWorkflow as n, resetToTodo as o, close as r, approve as t };
573
573
 
574
- //# sourceMappingURL=workflows-H-COJ84X.js.map
574
+ //# sourceMappingURL=workflows-CSKX5MhC.js.map
@@ -0,0 +1,2 @@
1
+ import { a as deepWipe, i as closeOut } from "./workflows-CSKX5MhC.js";
2
+ export { closeOut, deepWipe };
@@ -1,13 +1,13 @@
1
1
  import { $n as extractPrefixSync, Br as getOverdeckHome, Dn as getProjectSync, Gn as resolveProjectFromIssueSync, Ln as listProjectsSync, Lr as encodeClaudeProjectDir, Nn as init_projects, Qn as extractNumberSync, Sn as findProjectByTeamSync, Vr as init_paths, cr as FsError, er as init_issue_id, ln as init_state_plane, lr as GitError, nr as parseIssueIdSync, un as isStatePlaneOnlyStatus, vn as extractTeamPrefix, vr as init_errors } from "./config-yaml-DPAieL_G.js";
2
- import { D as jsonResponse, E as httpHandler, S as normalizeOrigin, b as getTrustedOrigins, f as getWorkAgentLifecycleStateSync, n as _serverManagedMerges, y as getHeaderFromMap } from "./specialists-D07ybnam.js";
2
+ import { D as jsonResponse, E as httpHandler, S as normalizeOrigin, b as getTrustedOrigins, f as getWorkAgentLifecycleStateSync, n as _serverManagedMerges, y as getHeaderFromMap } from "./specialists-DEfrAbWs.js";
3
3
  import { a as init_activity_logger, n as emitActivityEntrySync } from "./activity-logger-pcbf-e30.js";
4
4
  import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-CpKlYZA9.js";
5
5
  import { K as buildChildEnvWithoutTmuxSync, L as sessionExists, O as listSessionNames, i as capturePane, q as init_child_env, x as init_tmux } from "./tmux-ePNhMIMU.js";
6
- import { _ as setDeaconIgnored, c as init_review_status, f as markWorkspaceStuck, g as setAutoMerge, s as getReviewStatusSync, u as loadReviewStatuses, y as setReviewStatusSync } from "./review-status-BQjqQXZG.js";
7
- import { _ as init_queue_position, a as EventStoreService, g as findPositionInQueueSync, h as computeQueuePositionFromStatusSync, s as init_domain_services } from "./issue-lifecycle-DnhQgddB.js";
6
+ import { _ as setDeaconIgnored, c as init_review_status, f as markWorkspaceStuck, g as setAutoMerge, s as getReviewStatusSync, u as loadReviewStatuses, y as setReviewStatusSync } from "./review-status-B5ZASOo4.js";
7
+ import { _ as init_queue_position, a as EventStoreService, g as findPositionInQueueSync, h as computeQueuePositionFromStatusSync, s as init_domain_services } from "./issue-lifecycle-5LbOcATP.js";
8
8
  import { o as getPricingSync, s as init_cost, t as calculateCostSync } from "./cost-C2CuA66z.js";
9
- import { Mn as getAgentState, Rt as transitionIssueToInReview, U as spawnAgent, Z as listRunningAgents, gr as saveAgentRuntimeState, j as messageAgent, mr as getAgentRuntimeStateSync, t as init_agents } from "./agents-DHvsjsuP.js";
10
- import { f as CostWriter, l as CostDoorLive } from "./service-CILd-uOt.js";
9
+ import { Mn as getAgentState, Rt as transitionIssueToInReview, U as spawnAgent, Z as listRunningAgents, gr as saveAgentRuntimeState, j as messageAgent, mr as getAgentRuntimeStateSync, t as init_agents } from "./agents-C7V4odQ6.js";
10
+ import { f as CostWriter, l as CostDoorLive } from "./service-HKDrIy0h.js";
11
11
  import { a as init_tracker_config, t as getGitHubConfig } from "./tracker-config-C3hiPVAM.js";
12
12
  import { i as resolveGitHubIssueSync, n as init_tracker_utils } from "./tracker-utils-bpWs7Xyx.js";
13
13
  import { o as getInternalTokenSync, s as init_internal_token } from "./internal-token-CQUx9YLc.js";
@@ -22,20 +22,20 @@ import { a as queryBeadsForIssue, r as init_beads_query } from "./beads-query-Br
22
22
  import { a as readEventsFromLineSync, i as init_events, l as init_wal, o as readEventsSync, r as getLastEventMetadataSync, t as appendCostEventSync } from "./events-DGWZzye2.js";
23
23
  import { n as getContainersReferencingWorkspacePath, r as init_workspace_manager } from "./workspace-manager-CEWK-OXd.js";
24
24
  import { r as init_devcontainer_renderer, t as DEVCONTAINER_DIRNAME } from "./devcontainer-renderer-DUJYYRQB.js";
25
- import { at as init_jsonl_parser, nt as getActiveSessionModelSync } from "./specialists-BYi0k8CZ.js";
25
+ import { at as init_jsonl_parser, nt as getActiveSessionModelSync } from "./specialists-nZ0mRwpZ.js";
26
26
  import { n as restoreTrackedBeadsExport, t as init_beads_restore } from "./beads-restore-CMbDSB5R.js";
27
27
  import { i as findWorkspacePath, o as init_archive_planning } from "./archive-planning-zTvWWHG_.js";
28
28
  import { T as verifyAppCanMerge, f as init_github_app, m as isIntegrationPermissionError } from "./github-app-FMXgo3vK.js";
29
29
  import { a as loadWorkspaceMetadataSync, i as listWorkspaceMetadataSync } from "./workspace-metadata-1eu1RvAT.js";
30
30
  import { n as enrichReviewStatusFromSessions } from "./review-status-enrichment-CGlcApSn.js";
31
- import { n as generateDailySummary, r as init_cli } from "./cli-CvK9xuSS.js";
32
- import { a as getDiffStat, i as getDiffBase, o as init_review_context, r as getChangedFiles } from "./review-context-CCq56O_Y.js";
31
+ import { n as generateDailySummary, r as init_cli } from "./cli-BgzbB6h3.js";
32
+ import { a as getDiffStat, i as getDiffBase, o as init_review_context, r as getChangedFiles } from "./review-context-Dyo0tsBa.js";
33
33
  import { n as getTldrDaemonServiceSync, r as init_tldr_daemon } from "./tldr-daemon-CJW_P4On.js";
34
- import { C as init_git_activity, S as init_operations, a as init_merge_agent, b as MainDivergedError, w as listGitOperationsSync, x as gitPush, y as syncMainIntoWorkspace } from "./merge-agent-BcgAYStl.js";
34
+ import { C as init_git_activity, S as init_operations, a as init_merge_agent, b as MainDivergedError, w as listGitOperationsSync, x as gitPush, y as syncMainIntoWorkspace } from "./merge-agent-C81xPIGd.js";
35
35
  import { F as enqueueMerge, I as getAllActiveQueues$1, L as getCurrentMerge, P as dequeueMerge, z as markMergeProcessing } from "./merge-UlAwCk80.js";
36
- import { i as init_conflict_gate, r as getCachedConflictGateMergeability } from "./conflict-gate-BhKvrPxn.js";
37
- import { n as runVerificationForIssue } from "./verification-runner-BPAhPWR7.js";
38
- import { t as teardownWorkspace } from "./teardown-workspace-5LCVbjfq.js";
36
+ import { i as init_conflict_gate, r as getCachedConflictGateMergeability } from "./conflict-gate-FFEvTDVA.js";
37
+ import { n as runVerificationForIssue } from "./verification-runner-R2-4XgMO.js";
38
+ import { t as teardownWorkspace } from "./teardown-workspace-DhA6oAIK.js";
39
39
  import { n as init_rebuild_stack, t as composeProjectNameForWorkspace } from "./rebuild-stack-BLG3rlWa.js";
40
40
  import { Effect, Layer, Option } from "effect";
41
41
  import { closeSync, existsSync, fstatSync, mkdirSync, openSync, readFileSync, readSync, readdirSync, renameSync, writeFileSync } from "fs";
@@ -2907,7 +2907,7 @@ async function triggerMerge(issueId) {
2907
2907
  readyForMerge: false
2908
2908
  });
2909
2909
  completePendingOperation(issueId, null);
2910
- const { postMergeLifecycle } = await import("./merge-agent-Dh8Y9PDO.js");
2910
+ const { postMergeLifecycle } = await import("./merge-agent-7nBiCytp.js");
2911
2911
  await postMergeLifecycle(issueId, projectPath);
2912
2912
  return {
2913
2913
  success: true,
@@ -2947,7 +2947,7 @@ async function triggerMerge(issueId) {
2947
2947
  const { getMergeSetSync, ensureMergeSetForIssueSync, upsertMergeSetSync, withRepoStateSync } = await import("./merge-set-rXK3ehnB.js");
2948
2948
  const { runQualityGates } = await import("./validation-CbqP_dze.js");
2949
2949
  const { getForgeAdapter } = await import("./forge-BfP7OJwK.js");
2950
- const { messageAgent } = await import("./agents-BIggLvi_.js");
2950
+ const { messageAgent } = await import("./agents-C-vqmKDi.js");
2951
2951
  let mergeSet = getMergeSetSync(issueId) || ensureMergeSetForIssueSync(issueId);
2952
2952
  if (!mergeSet) {
2953
2953
  const error = `No merge set found for ${issueId}`;
@@ -3217,7 +3217,7 @@ async function triggerMerge(issueId) {
3217
3217
  readyForMerge: false
3218
3218
  });
3219
3219
  completePendingOperation(issueId, null);
3220
- const { postMergeLifecycle } = await import("./merge-agent-Dh8Y9PDO.js");
3220
+ const { postMergeLifecycle } = await import("./merge-agent-7nBiCytp.js");
3221
3221
  advanceQueue();
3222
3222
  await postMergeLifecycle(issueId, projectPath);
3223
3223
  return {
@@ -3332,7 +3332,7 @@ async function triggerMerge(issueId) {
3332
3332
  readyForMerge: false
3333
3333
  });
3334
3334
  completePendingOperation(issueId, null);
3335
- const { postMergeLifecycle } = await import("./merge-agent-Dh8Y9PDO.js");
3335
+ const { postMergeLifecycle } = await import("./merge-agent-7nBiCytp.js");
3336
3336
  await postMergeLifecycle(issueId, projectPath, branchName);
3337
3337
  return {
3338
3338
  success: true,
@@ -3346,7 +3346,7 @@ async function triggerMerge(issueId) {
3346
3346
  } catch (prStateErr) {
3347
3347
  console.warn(`[merge] Pre-merge PR state check failed for ${issueId}: ${prStateErr.message} — proceeding (check is best-effort)`);
3348
3348
  }
3349
- const { postMergeLifecycle } = await import("./merge-agent-Dh8Y9PDO.js");
3349
+ const { postMergeLifecycle } = await import("./merge-agent-7nBiCytp.js");
3350
3350
  const agentId = `agent-${issueId.toLowerCase()}`;
3351
3351
  const rebaseMsg = `MERGE REQUESTED: The human has clicked MERGE for ${issueId}. Please rebase onto ${targetBranch} and push:\n\n1. git fetch origin ${targetBranch}\n2. git rebase origin/${targetBranch}\n3. If conflicts: resolve them, git add, git rebase --continue\n4. git push --force-with-lease\n\nAfter pushing, the server will handle verification and merge automatically. Do NOT run gh pr merge yourself.`;
3352
3352
  setReviewStatus(issueId, { mergeStep: "rebasing" });
@@ -3506,7 +3506,7 @@ async function triggerMerge(issueId) {
3506
3506
  const verifyResult = skipLocalVerification ? { outcome: "passed" } : await (async () => {
3507
3507
  console.log(`[merge] Running post-rebase verification for ${issueId}...`);
3508
3508
  appendShipLog(issueId, "Running post-rebase verification (full quality-gate suite)…", "verifying");
3509
- const { runVerificationForIssue } = await import("./verification-runner-DuZRHjPU.js");
3509
+ const { runVerificationForIssue } = await import("./verification-runner-KTGTNugM.js");
3510
3510
  return Effect.runPromise(runVerificationForIssue(issueId, workspacePath, { isRemote: false }, "merge-verify", {
3511
3511
  syncTargetBranch: false,
3512
3512
  onGateLog: (line) => appendShipLog(issueId, line, "verifying")
@@ -3967,7 +3967,7 @@ const postWorkspaceApproveRoute = HttpRouter.add("POST", "/api/issues/:issueId/a
3967
3967
  console.log(`[approve] Starting role pipeline for ${issueId}...`);
3968
3968
  let reviewResult;
3969
3969
  try {
3970
- const { spawnReviewRoleForIssue } = await import("./review-agent-DgySDb-G.js");
3970
+ const { spawnReviewRoleForIssue } = await import("./review-agent-DTINEffB.js");
3971
3971
  reviewResult = await Effect.runPromise(spawnReviewRoleForIssue({
3972
3972
  issueId,
3973
3973
  workspace: workspacePath,
@@ -4034,7 +4034,7 @@ const postWorkspaceApproveRoute = HttpRouter.add("POST", "/api/issues/:issueId/a
4034
4034
  completePendingOperation(issueId, pushResult.error);
4035
4035
  return jsonResponse({ error: pushResult.error }, { status: pushResult.httpStatus });
4036
4036
  }
4037
- const { approve: lifecycleApprove } = await import("./lifecycle-CGKm7doE.js");
4037
+ const { approve: lifecycleApprove } = await import("./lifecycle-CEg4sHZH.js");
4038
4038
  const ghResolved = resolveGitHubIssueSync(issueId);
4039
4039
  const isGitHubIssueFlag = ghResolved.isGitHub;
4040
4040
  const lifecycleCtx = {
@@ -5345,7 +5345,7 @@ const postWorkspaceReviewRoute = HttpRouter.add("POST", "/api/review/:issueId/tr
5345
5345
  } catch {}
5346
5346
  return;
5347
5347
  }
5348
- const { spawnReviewRoleForIssue } = await import("./review-agent-DgySDb-G.js");
5348
+ const { spawnReviewRoleForIssue } = await import("./review-agent-DTINEffB.js");
5349
5349
  const prUrl = getReviewStatusSync(issueId)?.prUrl;
5350
5350
  const reviewResult = await Effect.runPromise(spawnReviewRoleForIssue({
5351
5351
  issueId,
@@ -5485,7 +5485,7 @@ const postWorkspaceRequestReviewRoute = HttpRouter.add("POST", "/api/review/:iss
5485
5485
  console.log(`[request-review] Feature branch push note: ${errorMessage(pushErr)}`);
5486
5486
  }
5487
5487
  const prUrl = getReviewStatusSync(issueId)?.prUrl;
5488
- const { spawnReviewRoleForIssue } = await import("./review-agent-DgySDb-G.js");
5488
+ const { spawnReviewRoleForIssue } = await import("./review-agent-DTINEffB.js");
5489
5489
  const result = await Effect.runPromise(spawnReviewRoleForIssue({
5490
5490
  issueId,
5491
5491
  workspace: workspacePathRerun,
@@ -5535,7 +5535,7 @@ const postWorkspaceRequestReviewRoute = HttpRouter.add("POST", "/api/review/:iss
5535
5535
  });
5536
5536
  } else {
5537
5537
  const workspacePath = join$1(resolved.projectPath, "workspaces", `feature-${issueId.toLowerCase()}`);
5538
- const { spawnRun } = yield* Effect.promise(() => import("./agents-BIggLvi_.js"));
5538
+ const { spawnRun } = yield* Effect.promise(() => import("./agents-C-vqmKDi.js"));
5539
5539
  try {
5540
5540
  const testRun = yield* Effect.promise(() => spawnRun(issueId, "test", { workspace: workspacePath }));
5541
5541
  setReviewStatus(issueId, { testStatus: "testing" });
@@ -5624,7 +5624,7 @@ const postWorkspaceRequestReviewRoute = HttpRouter.add("POST", "/api/review/:iss
5624
5624
  autoRequeueCount: newCount
5625
5625
  }, { status: 500 });
5626
5626
  const result = yield* Effect.promise(async () => {
5627
- const { spawnReviewRoleForIssue } = await import("./review-agent-DgySDb-G.js");
5627
+ const { spawnReviewRoleForIssue } = await import("./review-agent-DTINEffB.js");
5628
5628
  return await Effect.runPromise(spawnReviewRoleForIssue({
5629
5629
  issueId,
5630
5630
  workspace: workspacePath,
@@ -5921,7 +5921,7 @@ const postWorkspaceResetReviewRoute = HttpRouter.add("POST", "/api/review/:issue
5921
5921
  const result = processResetReviewPipeline(issueId, resetWorkspace.exists);
5922
5922
  if (result.httpStatus !== 200) return jsonResponse(result.body, { status: result.httpStatus });
5923
5923
  try {
5924
- const { resetPostMergeState } = yield* Effect.promise(() => import("./merge-agent-Dh8Y9PDO.js"));
5924
+ const { resetPostMergeState } = yield* Effect.promise(() => import("./merge-agent-7nBiCytp.js"));
5925
5925
  resetPostMergeState(issueId);
5926
5926
  } catch (err) {
5927
5927
  console.warn(`[reset-review] resetPostMergeState best-effort failed for ${issueId}:`, err);
@@ -5930,7 +5930,7 @@ const postWorkspaceResetReviewRoute = HttpRouter.add("POST", "/api/review/:issue
5930
5930
  const rerun = body?.rerun === true;
5931
5931
  if (rerun) try {
5932
5932
  yield* Effect.promise(async () => {
5933
- const { spawnReviewRoleForIssue } = await import("./review-agent-DgySDb-G.js");
5933
+ const { spawnReviewRoleForIssue } = await import("./review-agent-DTINEffB.js");
5934
5934
  const dispatchArgs = buildReviewRedispatchArgs(issueId, resetWorkspace, workspaceInfo, resolved);
5935
5935
  if (dispatchArgs) {
5936
5936
  const result = await Effect.runPromise(spawnReviewRoleForIssue({
@@ -5959,7 +5959,7 @@ const postWorkspaceResetReviewRoute = HttpRouter.add("POST", "/api/review/:issue
5959
5959
  const postWorkspaceReviewPurgeRoute = HttpRouter.add("POST", "/api/review/:issueId/purge", httpHandler(Effect.gen(function* () {
5960
5960
  const issueId = (yield* HttpRouter.params)["issueId"] ?? "";
5961
5961
  if (!parseIssueIdSync(issueId)) return jsonResponse({ error: "Invalid issue ID" }, { status: 400 });
5962
- const { purgeReviewAgentsForIssue } = yield* Effect.promise(() => import("./review-agent-DgySDb-G.js"));
5962
+ const { purgeReviewAgentsForIssue } = yield* Effect.promise(() => import("./review-agent-DTINEffB.js"));
5963
5963
  const projectKey = resolveProjectFromIssueSync(issueId)?.projectKey;
5964
5964
  const purge = yield* Effect.promise(() => purgeReviewAgentsForIssue(projectKey, issueId));
5965
5965
  const workspaceInfo = getWorkspaceInfoForIssue(issueId);
@@ -5990,7 +5990,7 @@ const postWorkspaceAbortReviewRoute = HttpRouter.add("POST", "/api/review/:issue
5990
5990
  error: "Workspace does not exist"
5991
5991
  }, { status: 400 });
5992
5992
  const { resolveProjectFromIssueSync } = yield* Effect.promise(() => import("./projects-BNmVxnNt.js"));
5993
- const { killAllReviewerSessions } = yield* Effect.promise(() => import("./review-agent-DgySDb-G.js"));
5993
+ const { killAllReviewerSessions } = yield* Effect.promise(() => import("./review-agent-DTINEffB.js"));
5994
5994
  const { killed, failed } = yield* killAllReviewerSessions(resolveProjectFromIssueSync(issueId)?.projectKey, issueId);
5995
5995
  setReviewStatus(issueId, {
5996
5996
  reviewStatus: "pending",
@@ -6063,7 +6063,7 @@ const getReviewConfigRoute = HttpRouter.add("GET", "/api/review/:issueId/config"
6063
6063
  if (!parseIssueIdSync(issueId)) return jsonResponse({ error: "Invalid issue ID" }, { status: 400 });
6064
6064
  return jsonResponse(yield* Effect.promise(async () => {
6065
6065
  const { readIssueRecordSync, resolveProjectForIssue } = await import("./record-DjPikotp.js");
6066
- const { resolveReviewMode, resolveReReviewScope } = await import("./review-agent-DgySDb-G.js");
6066
+ const { resolveReviewMode, resolveReReviewScope } = await import("./review-agent-DTINEffB.js");
6067
6067
  const project = resolveProjectForIssue(issueId);
6068
6068
  const record = project ? readIssueRecordSync(project, issueId) : null;
6069
6069
  return {
@@ -6090,7 +6090,7 @@ const postReviewConfigRoute = HttpRouter.add("POST", "/api/review/:issueId/confi
6090
6090
  if (hasScope && body.reReviewScope !== null && body.reReviewScope !== "all" && body.reReviewScope !== "changed" && body.reReviewScope !== "blockers") return jsonResponse({ error: "reReviewScope must be all, changed, blockers, or null" }, { status: 400 });
6091
6091
  return jsonResponse(yield* Effect.promise(async () => {
6092
6092
  const { ensureIssueRecordSync, readIssueRecordSync, resolveProjectForIssue, writeIssueRecordSync } = await import("./record-DjPikotp.js");
6093
- const { resolveReviewMode, resolveReReviewScope } = await import("./review-agent-DgySDb-G.js");
6093
+ const { resolveReviewMode, resolveReReviewScope } = await import("./review-agent-DTINEffB.js");
6094
6094
  const project = resolveProjectForIssue(issueId);
6095
6095
  const record = readIssueRecordSync(project, issueId) ?? ensureIssueRecordSync(project, issueId);
6096
6096
  if (hasMode) if (body.reviewMode === null) delete record.reviewMode;
@@ -7306,7 +7306,7 @@ const postWorkspaceReviewStatusRoute = HttpRouter.add("POST", "/api/review/:issu
7306
7306
  if (verificationStatus) update.verificationStatus = verificationStatus;
7307
7307
  if (readyForMerge !== void 0) update.readyForMerge = readyForMerge;
7308
7308
  const status = setReviewStatus(issueId, update);
7309
- const { getTmuxSessionName } = yield* Effect.promise(() => import("./specialists-F2uMO4QS.js"));
7309
+ const { getTmuxSessionName } = yield* Effect.promise(() => import("./specialists-DeZx9xom.js"));
7310
7310
  const projectKey = resolveProjectFromIssueSync(issueId)?.projectKey;
7311
7311
  if (reviewStatus && [
7312
7312
  "passed",
@@ -7477,4 +7477,4 @@ const workspacesRouteLayer = Layer.mergeAll(workspaceDataRouteLayer, postWorkspa
7477
7477
  //#endregion
7478
7478
  export { hasDashboardInternalToken as C, getWorkspacePathForIssue as D, rejectUnsafeDashboardMutationRequest as E, dashboardSessionCookieHeader as S, rejectUnauthorizedDashboardSessionMintRequest as T, syncCacheSync as _, pushApproveMain as a, resolveIssueHeadlineCost as b, triggerMerge as c, reconcile as d, reconcilePiTranscripts as f, rebuildCacheSync as g, getCostsForIssueSync as h, mergeOpsRouteLayer as i, resumeQueuedMerges as l, migrateAllSessionsSync as m, buildRichPRBody as n, reconcileGitHubMergeStatus as o, reclassifyUnknownCostEventsSync as p, isBranchAlreadyRebased as r, shouldBlockApproveForDirtyStatus as s, workspacesRouteLayer as t, syncWalFromAllProjects as u, processPendingFeedbackDeliveries as v, rejectUnauthorizedDashboardRequest as w, dashboardCsrfToken as x, getCachedRunningAgents as y };
7479
7479
 
7480
- //# sourceMappingURL=workspaces-CRU9_vRn.js.map
7480
+ //# sourceMappingURL=workspaces-DXLDgXo2.js.map
@@ -1,3 +0,0 @@
1
- import { r as init_cli, t as createResetMarker } from "./cli-CvK9xuSS.js";
2
- init_cli();
3
- export { createResetMarker };
@@ -1,2 +0,0 @@
1
- import { r as coordinateSwarmSlots } from "./deacon-swarm-DadWNi5J.js";
2
- export { coordinateSwarmSlots };
@@ -1,2 +0,0 @@
1
- import { n as onInspectComplete } from "./inspect-agent-BKKc0XnB.js";
2
- export { onInspectComplete };
@@ -1,2 +0,0 @@
1
- import { c as triggerMerge } from "./workspaces-CRU9_vRn.js";
2
- export { triggerMerge };
@@ -1,3 +0,0 @@
1
- import { E as resumeAgent, T as init_resume } from "./agents-DHvsjsuP.js";
2
- init_resume();
3
- export { resumeAgent };
@@ -1,3 +0,0 @@
1
- import { a as killAllReviewSessions, c as resolveReviewMode, d as handleReviewDiscoveryReady, f as resolveReReviewScope, i as isReviewStaleSync, l as spawnReviewRoleForIssue, m as reviewResumeDecision, n as isExtendedReviewEnabled, o as killAllReviewerSessions, p as spawnReviewSubRoleForIssue, r as isReviewSessionForIssue, s as purgeReviewAgentsForIssue, t as init_review_agent, u as buildConvoyPrompt } from "./review-agent-phzqNqIs.js";
2
- init_review_agent();
3
- export { buildConvoyPrompt, handleReviewDiscoveryReady, isExtendedReviewEnabled, isReviewSessionForIssue, isReviewStaleSync, killAllReviewSessions, killAllReviewerSessions, purgeReviewAgentsForIssue, resolveReReviewScope, resolveReviewMode, reviewResumeDecision, spawnReviewRoleForIssue, spawnReviewSubRoleForIssue };
@@ -1,2 +0,0 @@
1
- import { a as deepWipe, i as closeOut } from "./workflows-H-COJ84X.js";
2
- export { closeOut, deepWipe };