@overdeck/desktop 0.45.21 → 0.45.22

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 (344) hide show
  1. package/package.json +1 -1
  2. package/server/{acceptance-criteria-CJIFA8Vg.js → acceptance-criteria-BH7ac_1G.js} +2 -2
  3. package/server/{advancing-selfheal-CPOBO5ZS.js → advancing-selfheal-cSvXNZLZ.js} +6 -6
  4. package/server/{agent-gc-D6PUckBB.js → agent-gc-Dj2gncak.js} +4 -4
  5. package/server/{agent-state-BV_6RHnO.js → agent-state-Co5Sy2Fw.js} +1 -1
  6. package/server/{agent-state-service-DHwemt96.js → agent-state-service-CsQ07Pxe.js} +1 -1
  7. package/server/{agent-state-service-6MFQqnFy.js → agent-state-service-DistflNn.js} +5 -5
  8. package/server/{agents-DbrHWunF.js → agents-DXdHmRTC.js} +4 -4
  9. package/server/{agents-Czz6R57Z.js → agents-DyHKlq1I.js} +1 -1
  10. package/server/{archive-planning-BOnwJq8M.js → archive-planning-BvDuWNMo.js} +5 -5
  11. package/server/{archive-planning-MPpvQJL4.js → archive-planning-Cp_DC1j-.js} +1 -1
  12. package/server/{artifact-index-jobs-BOoySTKD.js → artifact-index-jobs-CDBFL4OU.js} +2 -2
  13. package/server/{backlog-auto-trigger-BUaFI44J.js → backlog-auto-trigger-DmA1IbYf.js} +3 -3
  14. package/server/{behavior-Dg-D8eBG.js → behavior-CGj16clS.js} +2 -2
  15. package/server/{briefing-freshness-OouGbJ7d.js → briefing-freshness-C12WgkaB.js} +2 -2
  16. package/server/{build-info-Cv6CI7Gu.js → build-info-BRpqQvNd.js} +1 -1
  17. package/server/{build-info-27NlbKhV.js → build-info-NU3KbXYw.js} +3 -3
  18. package/server/{checkpoint-manager-D64fCC4p.js → checkpoint-manager-CTPjAmtH.js} +2 -2
  19. package/server/{checkpoint-manager-C7mFCY_E.js → checkpoint-manager-rOgT98WY.js} +1 -1
  20. package/server/checkpoint-worker.js +1 -1
  21. package/server/{checkpoints-DwZqT2qQ.js → checkpoints-B5jFNi2G.js} +1 -1
  22. package/server/{checkpoints-Vh-J15ge.js → checkpoints-BJum14fs.js} +2 -2
  23. package/server/{claude-hooks-provision-CS5W_dhI.js → claude-hooks-provision-BhwWK-TQ.js} +1 -1
  24. package/server/{claude-hooks-provision-BVLGfHrv.js → claude-hooks-provision-D7p5WcKZ.js} +2 -2
  25. package/server/{claude-permissions-C2OrLYKL.js → claude-permissions-nSFKH78M.js} +2 -2
  26. package/server/{claude-settings-overlay-DX-fMFpC.js → claude-settings-overlay-BI_UIke0.js} +2 -2
  27. package/server/{claude-settings-overlay-DWXjafJh.js → claude-settings-overlay-DHBwjS1X.js} +1 -1
  28. package/server/cli-BRORS9qY.js +3 -0
  29. package/server/{cli-mvpEOb3w.js → cli-CbKNkFE5.js} +9 -9
  30. package/server/{cliproxy-Dvsr4ZkW.js → cliproxy-Brf_5MuG.js} +2 -2
  31. package/server/{cliproxy-7g1nObvB.js → cliproxy-bONZDBbC.js} +1 -1
  32. package/server/{close-issue-8F6uawYj.js → close-issue-CxReRxIc.js} +5 -5
  33. package/server/{closed-issue-reaper-BaYQYF6w.js → closed-issue-reaper-CQ3kqha7.js} +9 -9
  34. package/server/{closed-issue-reaper-BhV-r-tC.js → closed-issue-reaper-DXP2Xyv3.js} +1 -1
  35. package/server/{codex-D_UBEOwL.js → codex-CbmztVcc.js} +9 -6
  36. package/server/{codex-BBeZ8c3s.js → codex-DNyiQDKW.js} +1 -1
  37. package/server/{codex-parser-BTzlOZiV.js → codex-parser-jl8AeAmB.js} +2 -2
  38. package/server/{config-nAB_F-Gp.js → config-BJKocXKd.js} +1 -1
  39. package/server/{config-G1TOMJZA.js → config-DeTsoZdR.js} +2 -2
  40. package/server/{config-CrduXs4a.js → config-q4Gvd8dq.js} +2 -2
  41. package/server/{config-yaml-Ciyp2mYe.js → config-yaml-ig8Nwtiw.js} +124 -27
  42. package/server/{conflict-gate-BLUNMs1i.js → conflict-gate-CFqPVxEg.js} +3 -3
  43. package/server/{conflict-gate-BKalpcjL.js → conflict-gate-CHU9K1vU.js} +1 -1
  44. package/server/{context-layers-Cg9ZgVfx.js → context-layers-15gDOk20.js} +3 -3
  45. package/server/{context-layers-YNpf6Q_I.js → context-layers-DlQKkHH2.js} +2 -2
  46. package/server/{control-settings-D_79A6gp.js → control-settings-D_odMIaC.js} +4 -4
  47. package/server/{conversation-compaction-DiuZbIUB.js → conversation-compaction-B6YSRLda.js} +8 -8
  48. package/server/{conversation-compaction-CMIeWW4_.js → conversation-compaction-CN4-5YYt.js} +1 -1
  49. package/server/{conversation-service-DQybSPUK.js → conversation-service-C3avRVEr.js} +6 -6
  50. package/server/{conversation-service-CWk8mEym.js → conversation-service-Dq33SYEj.js} +1 -1
  51. package/server/{conversations-BJ-t3BRm.js → conversations-H9if0bCQ.js} +1 -1
  52. package/server/{conversations-BUgGvqVL.js → conversations-bYpM9-kZ.js} +4 -4
  53. package/server/{cost-Drm7qeD5.js → cost-Codk1pc2.js} +2 -2
  54. package/server/{cost-sync-DzHP6zaR.js → cost-sync-D_cre6WM.js} +3 -3
  55. package/server/{cost-jJ2cgDcG.js → cost-wH46-WsJ.js} +3 -3
  56. package/server/{dag-DIji6O2b.js → dag-CJpgf9A3.js} +2 -2
  57. package/server/{dangerous-git-ops-BebB-61h.js → dangerous-git-ops-D6AF-Hg_.js} +1 -1
  58. package/server/dashboard-db-worker.js +7 -7
  59. package/server/{deacon-pleYrvIm.js → deacon-B8HbQdqU.js} +3 -3
  60. package/server/{deacon-1s7bM5zn.js → deacon-CkT_kznS.js} +1377 -407
  61. package/server/{deacon-nudge-log-C5VCKtyi.js → deacon-nudge-log-D6K9K-rE.js} +3 -3
  62. package/server/{deacon-swarm-DmA3rJ7k.js → deacon-swarm-BryRr6AO.js} +13 -13
  63. package/server/deacon-swarm-CV54eNmU.js +2 -0
  64. package/server/deacon.js +8 -8
  65. package/server/{deploy-patrol-DmM6F-yw.js → deploy-patrol-1IrZxicY.js} +6 -6
  66. package/server/{deploy-window-ClLq1RYf.js → deploy-window-7ZYHh7Zp.js} +1 -1
  67. package/server/{deploy-window-jw4S_Y-c.js → deploy-window-wDf4UgHt.js} +6 -6
  68. package/server/{dev-supervisor-Do2Stz49.js → dev-supervisor-C7p9kEpc.js} +2 -2
  69. package/server/{devcontainer-renderer-D8ylupco.js → devcontainer-renderer-CNmQy0pL.js} +3 -3
  70. package/server/{dist-yfR7G1BL.js → dist-D-Ed5yVw.js} +1 -1
  71. package/server/dist-j64RzSrQ.js +3 -0
  72. package/server/{docker-ClwPQaba.js → docker-BCZ89M9X.js} +2 -2
  73. package/server/{dod-BLphkhjs.js → dod-DbJLYcHv.js} +1 -1
  74. package/server/{ensure-devcontainer-BA3bICoY.js → ensure-devcontainer-Cs6W9Yzj.js} +1 -1
  75. package/server/{ensure-devcontainer-CFpQatOc.js → ensure-devcontainer-V5JWaAva.js} +4 -4
  76. package/server/{esm-shims-BZw-fTQ6.js → esm-shims-dTeNdq7X.js} +1 -1
  77. package/server/{event-store-DABarGNz.js → event-store-CpBGsO6_.js} +1 -1
  78. package/server/{event-store-BVnON3vf.js → event-store-TnWdydfB.js} +3 -3
  79. package/server/{events-CmERlnwn.js → events-DSUdR-04.js} +3 -3
  80. package/server/{events-LGeUehYW.js → events-Dsuv6qyB.js} +1 -1
  81. package/server/{factory-CQNprtHe.js → factory-BMrK4TrE.js} +4 -4
  82. package/server/{feature-registry-population-D9Z3tYSa.js → feature-registry-population-B-CI9hgE.js} +4 -4
  83. package/server/{feature-registry-storage-BWymOgXE.js → feature-registry-storage-B972ph_A.js} +2 -2
  84. package/server/{features--fOza5g5.js → features-Bc-Bmiye.js} +2 -2
  85. package/server/{feedback-target-Dn9vfPpz.js → feedback-target-DS6NUuSs.js} +1 -1
  86. package/server/{feedback-target-Dqik2WTe.js → feedback-target-DZ-iAnAa.js} +7 -7
  87. package/server/{feedback-writer-Wlq5-qgS.js → feedback-writer-BXP6g75N.js} +4 -4
  88. package/server/{feedback-writer-DDQNV8uc.js → feedback-writer-Bx5z11mF.js} +1 -1
  89. package/server/{flywheel-DPUc8r3V.js → flywheel-6WHU4O7A.js} +14 -14
  90. package/server/{flywheel-1Wd8WDlh.js → flywheel-COR0mbRI.js} +12 -12
  91. package/server/{flywheel-Q-38YhZG.js → flywheel-Ctr5uuvo.js} +1 -1
  92. package/server/{flywheel-merge-order-CeBuX0EJ.js → flywheel-merge-order-CNKAY489.js} +1 -1
  93. package/server/{flywheel-merge-order-4SqOXFAr.js → flywheel-merge-order-CTgHeg-W.js} +7 -7
  94. package/server/forge-B0_opi-V.js +2 -0
  95. package/server/{forge-DBbDpiYc.js → forge-B1S_KZv4.js} +2 -2
  96. package/server/{from-hh6vTBGl.js → from-DpwQ-sc3.js} +1 -1
  97. package/server/{fts-db-6ponMie2.js → fts-db-DmAcuCkV.js} +2 -2
  98. package/server/{fts-operations-KIRK165y.js → fts-operations-7d_RkmWp.js} +2 -2
  99. package/server/git-utils-Cc3FHDKd.js +198 -0
  100. package/server/{git-utils-DmF5xkj8.js → git-utils-CsKGnzFA.js} +1 -1
  101. package/server/{github-app-B3yfECo8.js → github-app-CDPtGF7J.js} +2 -2
  102. package/server/{github-app-CeSVFL6C.js → github-app-CU14oYzP.js} +1 -1
  103. package/server/{github-client-4A6FgA8O.js → github-client-CwBZZ3t7.js} +1 -1
  104. package/server/{github-client-Dslipypz.js → github-client-XjTJbBm7.js} +2 -2
  105. package/server/{github-pr-lookup-DBP0YHMr.js → github-pr-lookup-CFGeVhqv.js} +2 -2
  106. package/server/harness-binary-B2CTcD84.js +106 -0
  107. package/server/{harness-resolve-BGpO-OVM.js → harness-resolve-D5FVQTmy.js} +9 -15
  108. package/server/{health-events-CnwV_SSz.js → health-events-C1whmd58.js} +1 -1
  109. package/server/{health-events-CZGZ5I-A.js → health-events-DREeevle.js} +2 -2
  110. package/server/{hooks-DvX33gY_.js → hooks-B-HItBiS.js} +1 -1
  111. package/server/{hooks-CoNscX84.js → hooks-yxRsjk-z.js} +2 -2
  112. package/server/hume-BmhvfVbV.js +3 -0
  113. package/server/{hume-DSJt5eA_.js → hume-Dz_OymXE.js} +2 -2
  114. package/server/{idle-stack-reaper-5DVRoY6P.js → idle-stack-reaper-DrCv0OAG.js} +1 -1
  115. package/server/{idle-stack-reaper-BfL8HqYy.js → idle-stack-reaper-Yf34xXxY.js} +2 -2
  116. package/server/{in-flight-guard-tVGiI5ee.js → in-flight-guard-BoWm66Kh.js} +2 -2
  117. package/server/{infra-DN2wSxle.js → infra-D4iNWMA5.js} +4 -4
  118. package/server/{injection-DK9zh_HL.js → injection-BVNa4MQW.js} +1 -1
  119. package/server/{injection-DtlT8Akv.js → injection-D7T75Pye.js} +7 -7
  120. package/server/{inspect-agent-DKByUS_F.js → inspect-agent-BXCgNeZ4.js} +13 -9
  121. package/server/inspect-agent-Dq0z1k3H.js +2 -0
  122. package/server/{internal-token-7bYL5v6K.js → internal-token-C9DdEOKY.js} +1 -1
  123. package/server/{internal-token-DhfFiwW7.js → internal-token-CXsfxslp.js} +2 -2
  124. package/server/{io-BiM-7Zsx.js → io-DQR9PMgS.js} +3 -3
  125. package/server/{issue-closed-Dfw3QDyZ.js → issue-closed-DtmJM0D0.js} +7 -7
  126. package/server/{issue-lifecycle-ytsEdDlK.js → issue-lifecycle-8PSS9Anq.js} +1 -1
  127. package/server/{issue-lifecycle-B7HZWnTA.js → issue-lifecycle-CeyW_HoD.js} +21 -21
  128. package/server/{issue-service-singleton-D5EB5eYr.js → issue-service-singleton-DBZabEl7.js} +1 -1
  129. package/server/{issue-service-singleton-CPESc4Or.js → issue-service-singleton-D_RVYBuL.js} +8 -8
  130. package/server/{issues-XYtFMxrH.js → issues-pDW9VUNz.js} +2 -2
  131. package/server/{jsonl-parser-DJV2eZUP.js → jsonl-parser-C3HVNR5d.js} +3 -3
  132. package/server/{label-cleanup-CJ4m8iRU.js → label-cleanup-DPwiZlWo.js} +3 -3
  133. package/server/{label-reconciler-CNf3Ylm3.js → label-reconciler-Df1ZduPH.js} +4 -4
  134. package/server/{launcher-generator-5DJRiovn.js → launcher-generator-COgR2By1.js} +6 -6
  135. package/server/{layers-cZx7ibtV.js → layers-Cp1To4L8.js} +2 -2
  136. package/server/{lifecycle-CE7619Xw.js → lifecycle-CtPDcZ9u.js} +6 -6
  137. package/server/{lifecycle-io-CUpsxG0p.js → lifecycle-io-DmY2qwCn.js} +1 -1
  138. package/server/{lifecycle-io-DMurK4oM.js → lifecycle-io-taIb0PoH.js} +4 -4
  139. package/server/{linear-client-BLyN-NiP.js → linear-client-DsFkIxee.js} +2 -2
  140. package/server/{linear-client-Bj1l4FOA.js → linear-client-YwZMDIwQ.js} +1 -1
  141. package/server/memory-fts-worker.js +1 -1
  142. package/server/{merge-CwX2_AWm.js → merge-BwsyNRJV.js} +1 -1
  143. package/server/{merge-hSC2BENe.js → merge-C1t-bspg.js} +3 -3
  144. package/server/{merge-agent-CnORPiri.js → merge-agent-B-SnXOoc.js} +1 -1
  145. package/server/{merge-agent-DnBsms_V.js → merge-agent-DDiIjzk-.js} +369 -213
  146. package/server/{merge-batch-C2w2U2eK.js → merge-batch-Byt-QnEl.js} +1 -1
  147. package/server/{merge-blockers-DhRgh76x.js → merge-blockers-BYjeXrVN.js} +2 -2
  148. package/server/merge-ops-DwWCkSgo.js +2 -0
  149. package/server/{merge-rebase-CE-ZyOMY.js → merge-rebase-Cm6fXaZN.js} +2 -2
  150. package/server/{merge-set-DHkzPCJU.js → merge-set-6LEglm6o.js} +1 -1
  151. package/server/{merge-set-D7YNU1ZB.js → merge-set-DiISXcC-.js} +3 -3
  152. package/server/{merge-sync-CpGA9Kg7.js → merge-sync-B95_4in_.js} +1 -1
  153. package/server/{merge-sync-De1FYva5.js → merge-sync-Do8_q32h.js} +2 -2
  154. package/server/{merge-train-SvkRJZ-k.js → merge-train-CKana8EH.js} +3 -3
  155. package/server/{merge-train-deps-CECJTElu.js → merge-train-deps-BgmqwIfA.js} +4 -4
  156. package/server/{merge-verification-B3meGcXF.js → merge-verification-CqnUzGEK.js} +4 -4
  157. package/server/{multipart-parser-ByTMgYV5.js → multipart-parser-tdOQDJ3o.js} +2 -2
  158. package/server/{no-resume-mode-BnInAFKs.js → no-resume-mode-BWOSZjWd.js} +1 -1
  159. package/server/node_modules/.package-lock.json +5 -5
  160. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/README.md +3 -3
  161. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeChildProcessSpawner.d.ts.map +1 -1
  162. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeChildProcessSpawner.js +2 -2
  163. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeChildProcessSpawner.js.map +1 -1
  164. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/package.json +5 -5
  165. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/src/NodeChildProcessSpawner.ts +6 -8
  166. package/server/{orphan-proposed-reconciler-CAfuWTA1.js → orphan-proposed-reconciler-DSvsJ5M7.js} +1 -1
  167. package/server/{orphan-proposed-reconciler-AxAGUouN.js → orphan-proposed-reconciler-xklgvNA7.js} +19 -12
  168. package/server/package-lock.json +6 -6
  169. package/server/package.json +1 -1
  170. package/server/{pan-dir-Rw17YjT1.js → pan-dir-DOcf6ug3.js} +4 -4
  171. package/server/{paths-FP8v3lTz.js → paths-DooHpt9p.js} +2 -2
  172. package/server/{pickup-xi3KTLaJ.js → pickup-CaskQ7j6.js} +2 -2
  173. package/server/{pipeline-membership-BtKMNY7v.js → pipeline-membership-1LGRjo-k.js} +11 -8
  174. package/server/{pipeline-notifier-BM2HLF7B.js → pipeline-notifier-B6FVsYF9.js} +2 -2
  175. package/server/{pipeline-notifier-dQ-U4NSb.js → pipeline-notifier-CZsrU_nj.js} +1 -1
  176. package/server/{project-pipelines-B59NfN44.js → project-pipelines-CtNG_rvs.js} +2 -2
  177. package/server/projects-BKkwpH6q.js +3 -0
  178. package/server/{prompts-CbqaVjbe.js → prompts-EvhMeeHG.js} +2 -2
  179. package/server/{providers-d3pwXGVE.js → providers-BDDPULlp.js} +7 -7
  180. package/server/providers-DNSQqy2V.js +3 -0
  181. package/server/public/assets/{chunk-BO2N2NFS-BxYSL7J-.js → chunk-BO2N2NFS-sym_ufXe.js} +4 -4
  182. package/server/public/assets/{diagram-OG6HWLK6-C_F9Q2as.js → diagram-OG6HWLK6-CQJPBNBu.js} +1 -1
  183. package/server/public/assets/{dist-DQNg4CiF.js → dist-Bio7THQU.js} +1 -1
  184. package/server/public/assets/{dist-CLSlc6cV.js → dist-DukGS2YZ.js} +3 -3
  185. package/server/public/assets/{ganttDiagram-6RSMTGT7-Cq0my-0C.js → ganttDiagram-6RSMTGT7-D4lWwte3.js} +1 -1
  186. package/server/public/assets/{highlighted-body-OFNGDK62-eZC03dGh.js → highlighted-body-OFNGDK62-CaLboCt5.js} +1 -1
  187. package/server/public/assets/{index-C6NLz_1S.css → index-Bdc4V9ba.css} +1 -1
  188. package/server/public/assets/{index-SLYGA8AQ.js → index-Bwejq-5s.js} +147 -145
  189. package/server/public/assets/{linear-6Fi3qnGg.js → linear-qUWmMZ-c.js} +1 -1
  190. package/server/public/assets/mermaid-GHXKKRXX-B5v_r7cI.js +1 -0
  191. package/server/public/assets/{pieDiagram-4H26LBE5-Dpmc6xsv.js → pieDiagram-4H26LBE5-C4zYulEm.js} +1 -1
  192. package/server/public/assets/{prod-ojHllFvN.js → prod-C8VtLuWC.js} +4 -4
  193. package/server/public/assets/{quadrantDiagram-W4KKPZXB-Ulr9gON5.js → quadrantDiagram-W4KKPZXB-qP04zyZC.js} +1 -1
  194. package/server/public/assets/{sankeyDiagram-5OEKKPKP-CwdHGXfL.js → sankeyDiagram-5OEKKPKP-eMPTX_cG.js} +1 -1
  195. package/server/public/assets/{xychartDiagram-2RQKCTM6-r-bEDzJh.js → xychartDiagram-2RQKCTM6-Dme1PIt6.js} +1 -1
  196. package/server/public/index.html +54 -10
  197. package/server/{pull-requests-CjjPj7v6.js → pull-requests-8z2N1UOV.js} +3 -3
  198. package/server/{pull-requests-D3N6HQzI.js → pull-requests-By_BteaL.js} +1 -1
  199. package/server/{queries-B5hl7lMQ.js → queries-ZABd5aXP.js} +95 -71
  200. package/server/rally-OSJXdiHK.js +3 -0
  201. package/server/{rally-api-DGaFz5L5.js → rally-api-DqKqIMNR.js} +2 -2
  202. package/server/{rally-api-CKr0O4DJ.js → rally-api-xHazRk0d.js} +1 -1
  203. package/server/{rally-client-Cqf6EX_r.js → rally-client-CGWEHaPd.js} +1 -1
  204. package/server/{rally-client-SVbjGvqj.js → rally-client-COYz1vYR.js} +4 -4
  205. package/server/{rally-Dp0Gb1DN.js → rally-i_goYmiA.js} +3 -3
  206. package/server/reap-terminal-sessions-CaMkFOIH.js +4 -0
  207. package/server/{reap-terminal-sessions-CjqRAGw7.js → reap-terminal-sessions-DG9eiMVz.js} +11 -28
  208. package/server/{rebuild-stack-DjdpALr1.js → rebuild-stack-CKjJAI8L.js} +1 -1
  209. package/server/{rebuild-stack-DHqCLvLX.js → rebuild-stack-JUm0jqYP.js} +6 -6
  210. package/server/{reconstruct-cache-BqrCQt0o.js → reconstruct-cache-wU79aCee.js} +6 -6
  211. package/server/record-rwK-nKv_.js +3 -0
  212. package/server/{record-update-RviRDSNs.js → record-update-Crz74r-6.js} +2 -2
  213. package/server/{record-update-BlB8mpKO.js → record-update-D3N6WMFR.js} +1 -1
  214. package/server/{recovery-trip-l1Hsi37x.js → recovery-trip-DkzJSej9.js} +2 -2
  215. package/server/{release-engine-CSI4K6Oj.js → release-engine-DMINVN8S.js} +5 -5
  216. package/server/{release-set-BywwggrE.js → release-set-DeUSOEHy.js} +3 -3
  217. package/server/{remote-DYziAkiZ.js → remote-Dr5kGYSZ.js} +3 -3
  218. package/server/{remote-agents-CZ2rc8I0.js → remote-agents-Ct_WOyke.js} +6 -6
  219. package/server/{remote-agents-BNORDWAX.js → remote-agents-D6O_zETW.js} +1 -1
  220. package/server/{remote-cnoeuDWn.js → remote-b-c5bOce.js} +3 -3
  221. package/server/{remote-completion-W67FNQ-A.js → remote-completion-Dca3hAaa.js} +13 -13
  222. package/server/resume-wZZsWtzz.js +3 -0
  223. package/server/{review-agent-CSswH985.js → review-agent-CCum8sGe.js} +1 -1
  224. package/server/{review-agent-CqSqSHkU.js → review-agent-CThvgK2r.js} +23 -23
  225. package/server/{review-artifacts-BBgnd5df.js → review-artifacts-CXywD0F2.js} +5 -5
  226. package/server/{review-context-Ctp9BdNJ.js → review-context-OYfKUprb.js} +8 -8
  227. package/server/{review-status-DXeqFpk5.js → review-status-Bnh-rdkY.js} +1 -1
  228. package/server/{review-status-CCgPVK1h.js → review-status-DFRjDFef.js} +21 -37
  229. package/server/{review-status-enrichment-DtDRGpst.js → review-status-enrichment-crNAtIpL.js} +3 -3
  230. package/server/review-status-source-CxuEjLGg.js +39 -0
  231. package/server/{review-status-sync-C792ksoJ.js → review-status-sync-D60PJWNL.js} +1 -1
  232. package/server/{review-status-sync-jnLgd04F.js → review-status-sync-DpAMD_WO.js} +2 -2
  233. package/server/{review-verdict-feedback-CMsIpTpy.js → review-verdict-feedback-CpUZl5aE.js} +7 -7
  234. package/server/{review-verdict-feedback-D5lW0o3k.js → review-verdict-feedback-JImjut0z.js} +1 -1
  235. package/server/{rollup-B3kQmNpl.js → rollup-CZ02qgxk.js} +1 -1
  236. package/server/{rollup-CLj_AK9f.js → rollup-SyuF09e4.js} +8 -8
  237. package/server/{scanner-C4NeC4FE.js → scanner-Br0Z5S6R.js} +7 -7
  238. package/server/{sequence-io-Ce-6grIY.js → sequence-io-fxU0DlwW.js} +4 -4
  239. package/server/{sequencer-agent-Bpz0yGmG.js → sequencer-agent-B5YC5XVP.js} +5 -5
  240. package/server/server.js +583 -387
  241. package/server/{service-CqAY8Kmk.js → service-Bagb90KZ.js} +150 -47
  242. package/server/{session-fork-uNo4rMRA.js → session-fork-BqQxd-V6.js} +2 -2
  243. package/server/{session-history-DUehL3KN.js → session-history-XdS0JKp3.js} +4 -4
  244. package/server/{settings-DP2OYLXL.js → settings-BNbocWOg.js} +3 -3
  245. package/server/settings-BlUsVaUc.js +2 -0
  246. package/server/{settings-D9grjmaP.js → settings-uLc6DEYI.js} +2 -2
  247. package/server/{shadow-engineering-Bi_oIMtF.js → shadow-engineering-D4X_s3fA.js} +3 -3
  248. package/server/{shadow-state-a_ztFBJe.js → shadow-state-C_NkP-sa.js} +2 -2
  249. package/server/{shadow-state-CDxEuPlE.js → shadow-state-CbvsN3qG.js} +1 -1
  250. package/server/{shadow-utils-CyOg6_Xq.js → shadow-utils-CYMRPeRT.js} +2 -2
  251. package/server/{ship-log-DDcueaIR.js → ship-log-__QtAFXG.js} +1 -1
  252. package/server/{smart-compaction--Oj65Uov.js → smart-compaction-CLZOWin1.js} +7 -7
  253. package/server/{smart-compaction-C1_VVLEd.js → smart-compaction-jdMkG1vo.js} +1 -1
  254. package/server/{spawn-planning-session-LFtK2QCE.js → spawn-planning-session-8D6mE033.js} +1 -1
  255. package/server/{spawn-planning-session-AiUSsBnH.js → spawn-planning-session-D5OXo8pT.js} +19 -15
  256. package/server/{specialist-completion-qOgqdqXH.js → specialist-completion-CqmduO92.js} +1 -1
  257. package/server/{specialist-context-gjj8Z4Ii.js → specialist-context-CJ-QjFR-.js} +5 -5
  258. package/server/{specialist-handoff-logger-BsBNvVZv.js → specialist-handoff-logger-Dnjlwt7g.js} +2 -2
  259. package/server/{specialist-logs-CSLtvPx6.js → specialist-logs-CQnKzuZs.js} +3 -3
  260. package/server/{specialists-DAegTvRt.js → specialists-Bg9v4z3F.js} +122 -94
  261. package/server/{specialists-CYRwELzc.js → specialists-CwZHb5cb.js} +18 -18
  262. package/server/{specialists-D0VBf8g_.js → specialists-D0gGXMZx.js} +1 -1
  263. package/server/{specialists-C6WkeKFK.js → specialists-Dqe6_HE5.js} +1 -1
  264. package/server/specs-BhOKBzqk.js +3 -0
  265. package/server/{src-OLoJhUiJ.js → src-BMMoA_ba.js} +6 -6
  266. package/server/{src-BqTcrfO_.js → src-Bqdtd6po.js} +3 -3
  267. package/server/{src-Dpq1yFIl.js → src-k039WVYY.js} +337 -4
  268. package/server/{stack-health-I713ELld.js → stack-health-Bd06frFn.js} +1 -1
  269. package/server/{stack-health-DV_f-lK0.js → stack-health-C-ifC7b0.js} +2 -2
  270. package/server/{stale-task-claims-CQSKZVq0.js → stale-task-claims-L7pJkQFL.js} +4 -4
  271. package/server/{staleness-BbsGxmF2.js → staleness-BID1BKdr.js} +1 -1
  272. package/server/{staleness-zGp4P1hd.js → staleness-_Tr-GwdA.js} +1 -1
  273. package/server/{state-home-DixkE-up.js → state-home-CONQvZR0.js} +36 -23
  274. package/server/state-migrate-BeBW0KXA.js +478 -0
  275. package/server/{stuck-remediation-BWkK_O7A.js → stuck-remediation-CKnIryGT.js} +20 -18
  276. package/server/{stuck-remediation-CTPRC2S5.js → stuck-remediation-CsGD5Ksb.js} +1 -1
  277. package/server/{substrate-bug-weights-service-DXd0ID83.js → substrate-bug-weights-service-CpIZILj9.js} +3 -3
  278. package/server/{summary-fork-CdLn8Chr.js → summary-fork-agEMsPSo.js} +2 -2
  279. package/server/{summary-fork-f3DpgjXh.js → summary-fork-bX6ax6X7.js} +8 -8
  280. package/server/supervisor-COVHrBTg.js +2 -0
  281. package/server/{supervisor-Ch8CDuoF.js → supervisor-Ctt4eRYz.js} +3 -3
  282. package/server/{swarm-readiness-C9P2iPap.js → swarm-readiness-DdmJVX7y.js} +3 -3
  283. package/server/{system-prerequisites-DkoQBn1q.js → system-prerequisites-DSXBvffY.js} +24 -44
  284. package/server/{teardown-workspace-D-5yMyit.js → teardown-workspace-DDCf5n-a.js} +15 -15
  285. package/server/{test-agent-queue-BwpUpu-o.js → test-agent-queue-BJZ9Nfcc.js} +6 -6
  286. package/server/{test-verdict-BRiSu7eW.js → test-verdict-Cp5tljlJ.js} +1 -1
  287. package/server/{test-verdict-BQ1yx7d4.js → test-verdict-D_-sXIz_.js} +1 -1
  288. package/server/{tldr-daemon-BJA7TkqS.js → tldr-daemon-B8_oT5gx.js} +1 -1
  289. package/server/{tldr-daemon-DjxP5g6Y.js → tldr-daemon-BQFmmFp0.js} +2 -2
  290. package/server/{tmux-HQLgwo_C.js → tmux-BAvtac_u.js} +1 -1
  291. package/server/{tmux-y1blSxks.js → tmux-L5LgvGLp.js} +2 -2
  292. package/server/{token-LUrbM9sU.js → token-BkQLy4yS.js} +2 -2
  293. package/server/token-util-BArZLN6w.js +3 -0
  294. package/server/{token-util-BZaDAQ8S.js → token-util-DI8sGlmF.js} +1 -1
  295. package/server/{tracker-config-DSFZBdXP.js → tracker-config-DdT-nUAM.js} +2 -2
  296. package/server/{tracker-utils-DiceZN3a.js → tracker-utils-CawsPSS2.js} +2 -2
  297. package/server/{tracker-utils-WtP_V-yn.js → tracker-utils-DV3h1FYG.js} +1 -1
  298. package/server/{traefik-connect-BXqfOP4-.js → traefik-connect-C6mJckNs.js} +1 -1
  299. package/server/{tunnel-WcJImbAC.js → tunnel-BIFl98rc.js} +1 -1
  300. package/server/{tunnel-DTng1rfQ.js → tunnel-IdK1iTHx.js} +3 -3
  301. package/server/{types-BjaZ1oqH.js → types-7-GnJn0t.js} +1 -1
  302. package/server/{types-DqeBMmJN.js → types-hraoaQIp.js} +1 -1
  303. package/server/{uat-train-Wismge7h.js → uat-train-0Ujk8GCv.js} +1 -1
  304. package/server/{uat-train-BpLnp7Cx.js → uat-train-j0cPeMSj.js} +25 -25
  305. package/server/{validation-BA4e5EGm.js → validation-CabEISJT.js} +4 -4
  306. package/server/{validation-CUWamZ4X.js → validation-DcAgXTQp.js} +1 -1
  307. package/server/{verification-artifact-Dr_0g9nb.js → verification-artifact-BuTA1QbL.js} +1 -1
  308. package/server/{verification-artifact-CrbI4tJE.js → verification-artifact-Ck1tefmz.js} +1 -1
  309. package/server/{verification-runner-Dcksl_P-.js → verification-runner-DlJezzef.js} +1 -1
  310. package/server/{verification-runner-gAzh3cVD.js → verification-runner-FiuAZ-H2.js} +15 -14
  311. package/server/{vtt-parser-3VZKsmSm.js → vtt-parser-BnRsYzcz.js} +1 -1
  312. package/server/{work-agent-prompt-ULdcANl5.js → work-agent-prompt-DLthEPAq.js} +12 -11
  313. package/server/{workflows-B8ROFlfw.js → workflows-BZNNYkGC.js} +18 -18
  314. package/server/workflows-C4mR0Reb.js +2 -0
  315. package/server/{workspace-DSjUJaJN.js → workspace-3IC-UkAi.js} +1 -1
  316. package/server/{workspace-DhTDA8nB.js → workspace-D9ppycdg.js} +3 -3
  317. package/server/{workspace-config-BAAsAv-o.js → workspace-config-Bigl_-Lk.js} +1 -1
  318. package/server/{workspace-manager-CcujONCR.js → workspace-manager-B1WOfKvB.js} +1 -1
  319. package/server/{workspace-manager-DsN52IMG.js → workspace-manager-ClkCIWTe.js} +13 -13
  320. package/server/{workspace-metadata-CftOpNLs.js → workspace-metadata-BE0efUv_.js} +1 -1
  321. package/server/{workspace-metadata-DIL5_U4c.js → workspace-metadata-tiSRIWJP.js} +2 -2
  322. package/server/{workspaces-Dmlh1YXm.js → workspaces-CFPcL0vl.js} +96 -96
  323. package/sync-sources/skills/pan-start/SKILL.md +23 -0
  324. package/server/cli-ChErG518.js +0 -3
  325. package/server/deacon-swarm-uudlSCLM.js +0 -2
  326. package/server/dist-BEDL2alY.js +0 -3
  327. package/server/forge-DbhJyH6u.js +0 -2
  328. package/server/git-utils-Bkxzr1Xf.js +0 -129
  329. package/server/hume-BrA1tUuk.js +0 -3
  330. package/server/inspect-agent-CyXNo9fM.js +0 -2
  331. package/server/merge-ops-BpTtuO8x.js +0 -2
  332. package/server/projects-IRHJIPYC.js +0 -3
  333. package/server/providers-BqCdTryq.js +0 -3
  334. package/server/public/assets/mermaid-GHXKKRXX-BNwFoQsf.js +0 -1
  335. package/server/rally-DGimSRBQ.js +0 -3
  336. package/server/reap-terminal-sessions-C1mfzoZo.js +0 -3
  337. package/server/record-us0YECMO.js +0 -3
  338. package/server/resume-OyN3dEXE.js +0 -3
  339. package/server/settings-BaPXXJsT.js +0 -2
  340. package/server/specs-BsNcum0h.js +0 -3
  341. package/server/state-migrate-_zJJ6XKE.js +0 -362
  342. package/server/supervisor-Qy1QecAs.js +0 -2
  343. package/server/token-util-Cg-QnowA.js +0 -3
  344. package/server/workflows-C5c-RPsY.js +0 -2
@@ -1,9 +1,9 @@
1
1
  import { n as __esmMin, r as __exportAll } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Rr as OVERDECK_HOME, kr as AGENTS_DIR, ti as init_paths } from "./config-yaml-Ciyp2mYe.js";
3
- import { D as killSession, V as sessionExists, k as listPaneValues, w as init_tmux } from "./tmux-y1blSxks.js";
4
- import { a as readCavemanVariant, n as init_workspace } from "./workspace-DhTDA8nB.js";
5
- import { n as resolveHarness, t as init_harness_resolve } from "./harness-resolve-BGpO-OVM.js";
6
- import { a as init_jsonl_parser, n as getAllSessionFilesSync, s as parseClaudeSessionSync } from "./jsonl-parser-DJV2eZUP.js";
2
+ import { Mr as AGENTS_DIR, Vr as OVERDECK_HOME, ii as init_paths } from "./config-yaml-ig8Nwtiw.js";
3
+ import { D as killSession, V as sessionExists, k as listPaneValues, w as init_tmux } from "./tmux-L5LgvGLp.js";
4
+ import { a as readCavemanVariant, n as init_workspace } from "./workspace-D9ppycdg.js";
5
+ import { n as resolveHarness, t as init_harness_resolve } from "./harness-resolve-D5FVQTmy.js";
6
+ import { a as init_jsonl_parser, n as getAllSessionFilesSync, s as parseClaudeSessionSync } from "./jsonl-parser-C3HVNR5d.js";
7
7
  import { Effect } from "effect";
8
8
  import { appendFileSync, existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
9
9
  import { basename, join } from "path";
@@ -31,7 +31,7 @@ function roleForSpecialistModel(specialistType) {
31
31
  return { role: "work" };
32
32
  }
33
33
  async function buildSpecialistBaseCommand(specialistType, model, sessionName) {
34
- const { getAgentRuntimeBaseCommand } = await import("./agents-Czz6R57Z.js");
34
+ const { getAgentRuntimeBaseCommand } = await import("./agents-DyHKlq1I.js");
35
35
  const role = roleForSpecialistModel(specialistType).role;
36
36
  const harness = await resolveHarness({
37
37
  model,
@@ -424,7 +424,7 @@ async function getSpecialistStatus(name, projectKey) {
424
424
  const sessionId = readRecordedClaudeSessionId(getTmuxSessionName(name, projectKey));
425
425
  const running = await isRunning(name, projectKey);
426
426
  const contextTokens = countContextTokens(name);
427
- const { getAgentRuntimeStateSync } = await import("./agents-Czz6R57Z.js");
427
+ const { getAgentRuntimeStateSync } = await import("./agents-DyHKlq1I.js");
428
428
  const runtimeState = getAgentRuntimeStateSync(getTmuxSessionName(name, projectKey));
429
429
  let state;
430
430
  if (runtimeState) switch (runtimeState.state) {
@@ -637,7 +637,7 @@ function listSpecialistsForProject(projectKey) {
637
637
  */
638
638
  async function getAllProjectSpecialistStatuses() {
639
639
  const registry = loadRegistry();
640
- const { getAgentRuntimeStateSync } = await import("./agents-Czz6R57Z.js");
640
+ const { getAgentRuntimeStateSync } = await import("./agents-DyHKlq1I.js");
641
641
  const results = [];
642
642
  for (const [projectKey, specialists] of Object.entries(registry.projects)) for (const [registryKey, metadata] of Object.entries(specialists)) {
643
643
  const { specialistType, issueId, role } = parseSpecialistRegistryKey(registryKey);
@@ -834,7 +834,7 @@ async function signalSpecialistCompletion(projectKey, specialistType, result, is
834
834
  const resolvedTmuxSession = metadata.tmuxSession ?? getTmuxSessionName(specialistType, projectKey, issueId);
835
835
  updateRunStatus(projectKey, registryKey, result.status);
836
836
  if (metadata.currentRun) try {
837
- const { finalizeRunLogSync } = await import("./specialist-logs-CSLtvPx6.js");
837
+ const { finalizeRunLogSync } = await import("./specialist-logs-CQnKzuZs.js");
838
838
  finalizeRunLogSync(projectKey, specialistType, metadata.currentRun, {
839
839
  status: result.status,
840
840
  notes: result.notes
@@ -844,7 +844,7 @@ async function signalSpecialistCompletion(projectKey, specialistType, result, is
844
844
  }
845
845
  setCurrentRun(projectKey, registryKey, null);
846
846
  updateRunMetadata(projectKey, registryKey, { currentActivity: null });
847
- import("./agents-Czz6R57Z.js").then(({ saveAgentRuntimeState }) => {
847
+ import("./agents-DyHKlq1I.js").then(({ saveAgentRuntimeState }) => {
848
848
  saveAgentRuntimeState(resolvedTmuxSession, {
849
849
  state: "idle",
850
850
  lastActivity: (/* @__PURE__ */ new Date()).toISOString(),
@@ -875,7 +875,7 @@ async function terminateSpecialist(projectKey, specialistType, issueId) {
875
875
  console.error(`[specialist] Failed to kill tmux session ${tmuxSession}:`, error);
876
876
  }
877
877
  if (metadata.currentRun) {
878
- const { finalizeRunLogSync } = await import("./specialist-logs-CSLtvPx6.js");
878
+ const { finalizeRunLogSync } = await import("./specialist-logs-CQnKzuZs.js");
879
879
  try {
880
880
  finalizeRunLogSync(projectKey, specialistType, metadata.currentRun, {
881
881
  status: metadata.lastRunStatus || "incomplete",
@@ -889,12 +889,12 @@ async function terminateSpecialist(projectKey, specialistType, issueId) {
889
889
  updateRunMetadata(projectKey, registryKey, { currentActivity: null });
890
890
  const key = `${projectKey}-${specialistType}`;
891
891
  gracePeriodStates.delete(key);
892
- const { saveAgentRuntimeState } = await import("./agents-Czz6R57Z.js");
892
+ const { saveAgentRuntimeState } = await import("./agents-DyHKlq1I.js");
893
893
  saveAgentRuntimeState(tmuxSession, {
894
894
  state: "suspended",
895
895
  lastActivity: (/* @__PURE__ */ new Date()).toISOString()
896
896
  });
897
- const { scheduleDigestGeneration } = await import("./specialist-context-gjj8Z4Ii.js");
897
+ const { scheduleDigestGeneration } = await import("./specialist-context-CJ-QjFR-.js");
898
898
  scheduleDigestGeneration(projectKey, specialistType);
899
899
  scheduleLogCleanup(projectKey, specialistType);
900
900
  }
@@ -907,8 +907,8 @@ async function terminateSpecialist(projectKey, specialistType, issueId) {
907
907
  function scheduleLogCleanup(projectKey, specialistType) {
908
908
  Promise.resolve().then(async () => {
909
909
  try {
910
- const { cleanupOldLogsSync } = await import("./specialist-logs-CSLtvPx6.js");
911
- const { getSpecialistRetention } = await import("./projects-IRHJIPYC.js");
910
+ const { cleanupOldLogsSync } = await import("./specialist-logs-CQnKzuZs.js");
911
+ const { getSpecialistRetention } = await import("./projects-BKkwpH6q.js");
912
912
  const retention = getSpecialistRetention(projectKey);
913
913
  const deleted = cleanupOldLogsSync(projectKey, specialistType, {
914
914
  maxDays: retention.max_days,
@@ -958,7 +958,7 @@ async function sendFeedbackToAgent(feedback) {
958
958
  }
959
959
  const agentSession = `agent-${toIssueId.toLowerCase()}`;
960
960
  const feedbackMessage = formatFeedbackForAgent(fullFeedback);
961
- const { writeFeedbackFile } = await import("./feedback-writer-DDQNV8uc.js");
961
+ const { writeFeedbackFile } = await import("./feedback-writer-Bx5z11mF.js");
962
962
  const specialist = {
963
963
  "review-agent": "review-agent",
964
964
  "test-agent": "test-agent",
@@ -977,7 +977,7 @@ async function sendFeedbackToAgent(feedback) {
977
977
  return false;
978
978
  }
979
979
  try {
980
- const { messageAgent } = await import("./agents-Czz6R57Z.js");
980
+ const { messageAgent } = await import("./agents-DyHKlq1I.js");
981
981
  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.`);
982
982
  console.log(`[specialist] Sent feedback from ${fromSpecialist} to ${agentSession} (file: ${fileResult.filePath})`);
983
983
  return true;
@@ -1137,4 +1137,4 @@ var init_specialists = __esmMin((() => {
1137
1137
  //#endregion
1138
1138
  export { updateSpecialistMetadata as $, updateRunStatus as A, getSpecialistMetadata as B, isEnabled as C, updateContextTokens as D, setCurrentRun as E, initializeEnabledSpecialists as F, isProjectSpecialistActivelyRunning as G, getTmuxSessionName as H, isRunning as I, parseReviewerSessionName as J, loadRegistry as K, REVIEWER_ROLES as L, findSessionFile as M, getAllSpecialistStatus as N, updateProjectSpecialistMetadata as O, getSpecialistStatus as P, saveRegistry as Q, getAllSpecialists as R, incrementProjectRunCount as S, listSpecialistsForProject as T, initSpecialistsDirectory as U, getSpecialistState as V, isInitialized as W, pruneSpecialistRegistryEntriesForIssue as X, parseSpecialistRegistryKey as Y, recordWake as Z, getAllProjectSpecialistStatuses as _, sendFeedbackToAgent as a, getProjectSpecialistMetadata as b, getGracePeriodState as c, signalSpecialistCompletion as d, buildSpecialistBaseCommand as et, startGracePeriod as f, ensureProjectSpecialistDir as g, enableSpecialist as h, getPendingFeedback as i, countContextTokens as j, updateRunMetadata as k, pauseGracePeriod as l, disableSpecialist as m, specialists_exports as n, exitGracePeriod as o, terminateSpecialist as p, makeSpecialistRegistryKey as q, getFeedbackStats as r, findActiveRegistryKey as s, init_specialists as t, buildSpecialistCavemanExports as tt, resumeGracePeriod as u, getEnabledSpecialists as v, listProjectsWithSpecialists as w, getRunMetadata as x, getProjectSpecialistDir as y, getReviewerSessionName as z };
1139
1139
 
1140
- //# sourceMappingURL=specialists-CYRwELzc.js.map
1140
+ //# sourceMappingURL=specialists-CwZHb5cb.js.map
@@ -1,2 +1,2 @@
1
- import { i as validateSpecialistAutoCompleteMetadata, n as _serverManagedMerges, r as firePostMergeLifecycle, t as specialistsRouteLayer } from "./specialists-DAegTvRt.js";
1
+ import { i as validateSpecialistAutoCompleteMetadata, n as _serverManagedMerges, r as firePostMergeLifecycle, t as specialistsRouteLayer } from "./specialists-Bg9v4z3F.js";
2
2
  export { _serverManagedMerges, specialistsRouteLayer as default, specialistsRouteLayer, firePostMergeLifecycle, validateSpecialistAutoCompleteMetadata };
@@ -1,3 +1,3 @@
1
- import { $ as updateSpecialistMetadata, A as updateRunStatus, B as getSpecialistMetadata, C as isEnabled, D as updateContextTokens, E as setCurrentRun, F as initializeEnabledSpecialists, G as isProjectSpecialistActivelyRunning, H as getTmuxSessionName, I as isRunning, J as parseReviewerSessionName, K as loadRegistry, L as REVIEWER_ROLES, M as findSessionFile, N as getAllSpecialistStatus, O as updateProjectSpecialistMetadata, P as getSpecialistStatus, Q as saveRegistry, R as getAllSpecialists, S as incrementProjectRunCount, T as listSpecialistsForProject, U as initSpecialistsDirectory, V as getSpecialistState, W as isInitialized, X as pruneSpecialistRegistryEntriesForIssue, Y as parseSpecialistRegistryKey, Z as recordWake, _ as getAllProjectSpecialistStatuses, a as sendFeedbackToAgent, b as getProjectSpecialistMetadata, c as getGracePeriodState, d as signalSpecialistCompletion, et as buildSpecialistBaseCommand, f as startGracePeriod, g as ensureProjectSpecialistDir, h as enableSpecialist, i as getPendingFeedback, j as countContextTokens, k as updateRunMetadata, l as pauseGracePeriod, m as disableSpecialist, o as exitGracePeriod, p as terminateSpecialist, q as makeSpecialistRegistryKey, r as getFeedbackStats, s as findActiveRegistryKey, t as init_specialists, tt as buildSpecialistCavemanExports, u as resumeGracePeriod, v as getEnabledSpecialists, w as listProjectsWithSpecialists, x as getRunMetadata, y as getProjectSpecialistDir, z as getReviewerSessionName } from "./specialists-CYRwELzc.js";
1
+ import { $ as updateSpecialistMetadata, A as updateRunStatus, B as getSpecialistMetadata, C as isEnabled, D as updateContextTokens, E as setCurrentRun, F as initializeEnabledSpecialists, G as isProjectSpecialistActivelyRunning, H as getTmuxSessionName, I as isRunning, J as parseReviewerSessionName, K as loadRegistry, L as REVIEWER_ROLES, M as findSessionFile, N as getAllSpecialistStatus, O as updateProjectSpecialistMetadata, P as getSpecialistStatus, Q as saveRegistry, R as getAllSpecialists, S as incrementProjectRunCount, T as listSpecialistsForProject, U as initSpecialistsDirectory, V as getSpecialistState, W as isInitialized, X as pruneSpecialistRegistryEntriesForIssue, Y as parseSpecialistRegistryKey, Z as recordWake, _ as getAllProjectSpecialistStatuses, a as sendFeedbackToAgent, b as getProjectSpecialistMetadata, c as getGracePeriodState, d as signalSpecialistCompletion, et as buildSpecialistBaseCommand, f as startGracePeriod, g as ensureProjectSpecialistDir, h as enableSpecialist, i as getPendingFeedback, j as countContextTokens, k as updateRunMetadata, l as pauseGracePeriod, m as disableSpecialist, o as exitGracePeriod, p as terminateSpecialist, q as makeSpecialistRegistryKey, r as getFeedbackStats, s as findActiveRegistryKey, t as init_specialists, tt as buildSpecialistCavemanExports, u as resumeGracePeriod, v as getEnabledSpecialists, w as listProjectsWithSpecialists, x as getRunMetadata, y as getProjectSpecialistDir, z as getReviewerSessionName } from "./specialists-CwZHb5cb.js";
2
2
  init_specialists();
3
3
  export { REVIEWER_ROLES, buildSpecialistBaseCommand, buildSpecialistCavemanExports, countContextTokens, disableSpecialist, enableSpecialist, ensureProjectSpecialistDir, exitGracePeriod, findActiveRegistryKey, findSessionFile, getAllProjectSpecialistStatuses, getAllSpecialistStatus, getAllSpecialists, getEnabledSpecialists, getFeedbackStats, getGracePeriodState, getPendingFeedback, getProjectSpecialistDir, getProjectSpecialistMetadata, getReviewerSessionName, getRunMetadata, getSpecialistMetadata, getSpecialistState, getSpecialistStatus, getTmuxSessionName, incrementProjectRunCount, initSpecialistsDirectory, initializeEnabledSpecialists, isEnabled, isInitialized, isProjectSpecialistActivelyRunning, isRunning, listProjectsWithSpecialists, listSpecialistsForProject, loadRegistry, makeSpecialistRegistryKey, parseReviewerSessionName, parseSpecialistRegistryKey, pauseGracePeriod, pruneSpecialistRegistryEntriesForIssue, recordWake, resumeGracePeriod, saveRegistry, sendFeedbackToAgent, setCurrentRun, signalSpecialistCompletion, startGracePeriod, terminateSpecialist, updateContextTokens, updateProjectSpecialistMetadata, updateRunMetadata, updateRunStatus, updateSpecialistMetadata };
@@ -0,0 +1,3 @@
1
+ import { C as init_specs, x as findSpecByIssue } from "./io-DQR9PMgS.js";
2
+ init_specs();
3
+ export { findSpecByIssue };
@@ -1,6 +1,6 @@
1
1
  import { i as __require, o as __toESM, t as __commonJSMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { r as init_esm_shims, t as __dirname } from "./esm-shims-BZw-fTQ6.js";
3
- import { n as require_dist$1, r as require_src$14, t as require_dist$2 } from "./dist-yfR7G1BL.js";
2
+ import { r as init_esm_shims, t as __dirname } from "./esm-shims-dTeNdq7X.js";
3
+ import { n as require_dist$1, r as require_src$14, t as require_dist$2 } from "./dist-D-Ed5yVw.js";
4
4
  //#region ../../../node_modules/.bun/@google-cloud+promisify@4.1.0/node_modules/@google-cloud/promisify/build/src/index.js
5
5
  var require_src$13 = /* @__PURE__ */ __commonJSMin(((exports) => {
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
@@ -1198,12 +1198,12 @@ var require_gaxios = /* @__PURE__ */ __commonJSMin(((exports) => {
1198
1198
  * @returns A proxy agent
1199
1199
  */
1200
1200
  static async #getProxyAgent() {
1201
- this.#proxyAgent ||= (await import("./dist-BEDL2alY.js").then((m) => /* @__PURE__ */ __toESM(m.default))).HttpsProxyAgent;
1201
+ this.#proxyAgent ||= (await import("./dist-j64RzSrQ.js").then((m) => /* @__PURE__ */ __toESM(m.default))).HttpsProxyAgent;
1202
1202
  return this.#proxyAgent;
1203
1203
  }
1204
1204
  static async #getFetch() {
1205
1205
  const hasWindow = typeof window !== "undefined" && !!window;
1206
- this.#fetch ||= hasWindow ? window.fetch : (await import("./src-BqTcrfO_.js")).default;
1206
+ this.#fetch ||= hasWindow ? window.fetch : (await import("./src-Bqdtd6po.js")).default;
1207
1207
  return this.#fetch;
1208
1208
  }
1209
1209
  /**
@@ -10601,7 +10601,7 @@ var require_src$7 = /* @__PURE__ */ __commonJSMin(((exports) => {
10601
10601
  const TeenyStatistics_1 = require_TeenyStatistics();
10602
10602
  const crypto_1 = __require("crypto");
10603
10603
  const streamEvents = require_stream_events();
10604
- const fetch = (...args) => import("./src-BqTcrfO_.js").then(({ default: fetch }) => fetch(...args));
10604
+ const fetch = (...args) => import("./src-Bqdtd6po.js").then(({ default: fetch }) => fetch(...args));
10605
10605
  var RequestError = class extends Error {
10606
10606
  code;
10607
10607
  };
@@ -133656,4 +133656,4 @@ var require_src = /* @__PURE__ */ __commonJSMin(((exports) => {
133656
133656
  export default require_src();
133657
133657
  export {};
133658
133658
 
133659
- //# sourceMappingURL=src-OLoJhUiJ.js.map
133659
+ //# sourceMappingURL=src-BMMoA_ba.js.map
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { i as init_esm_min, n as FormData, o as Blob, r as formDataToBlob, s as init_fetch_blob, t as init_from } from "./from-hh6vTBGl.js";
2
+ import { i as init_esm_min, n as FormData, o as Blob, r as formDataToBlob, s as init_fetch_blob, t as init_from } from "./from-DpwQ-sc3.js";
3
3
  import { deprecate, promisify, types } from "node:util";
4
4
  import { format } from "node:url";
5
5
  import http from "node:http";
@@ -209,7 +209,7 @@ var init_body = __esmMin((() => {
209
209
  for (const [name, value] of parameters) formData.append(name, value);
210
210
  return formData;
211
211
  }
212
- const { toFormData } = await import("./multipart-parser-ByTMgYV5.js");
212
+ const { toFormData } = await import("./multipart-parser-tdOQDJ3o.js");
213
213
  return toFormData(this.body, ct);
214
214
  }
215
215
  /**
@@ -1176,4 +1176,4 @@ __esmMin((() => {
1176
1176
  }))();
1177
1177
  export { fetch as default };
1178
1178
 
1179
- //# sourceMappingURL=src-BqTcrfO_.js.map
1179
+ //# sourceMappingURL=src-Bqdtd6po.js.map
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Effect, Schema } from "effect";
2
+ import { Effect, Schema, SchemaGetter } from "effect";
3
3
  import * as Rpc from "effect/unstable/rpc/Rpc";
4
4
  import * as RpcGroup from "effect/unstable/rpc/RpcGroup";
5
5
  //#region ../../../packages/contracts/src/types.ts
@@ -792,11 +792,303 @@ var init_memory = __esmMin((() => {
792
792
  });
793
793
  }));
794
794
  //#endregion
795
+ //#region ../../../packages/contracts/src/system-health.ts
796
+ /**
797
+ * Shared V2 system-health contract. Domain measurements use null for unavailable
798
+ * evidence, unknown enum values decode to safe unavailable/unknown states, and
799
+ * the legacy summary is a compatibility projection from the accepted V2 snapshot.
800
+ */
801
+ function isWorkAgent(agent) {
802
+ return agent.kind === "work" || agent.role === "work";
803
+ }
804
+ function isPlanningAgent(agent) {
805
+ return agent.kind === "planning" || agent.role === "plan" || agent.role === "planning";
806
+ }
807
+ function isSpecialistAgent(agent) {
808
+ return agent.kind === "specialist" || agent.role === "review" || agent.role?.startsWith("review-") === true || agent.role === "test" || agent.role === "ship";
809
+ }
810
+ function projectWebhookRelay(services) {
811
+ const relay = services.find((service) => service.id === "smee-relay" || service.id === "webhook-relay");
812
+ if (!relay) return {
813
+ configured: false,
814
+ running: false,
815
+ status: "unknown",
816
+ message: "Webhook relay health is unavailable."
817
+ };
818
+ const status = relay.status === "running" || relay.status === "not_configured" || relay.status === "stopped" ? relay.status : "unknown";
819
+ return {
820
+ configured: relay.status !== "not_configured",
821
+ running: relay.status === "running",
822
+ status,
823
+ message: relay.message
824
+ };
825
+ }
826
+ /**
827
+ * Projects the V2 domains into the legacy summary without recollecting state.
828
+ * Diagnostic-only swap and virtual-commitment values remain visible here but
829
+ * do not participate in V2 health-state evaluation.
830
+ */
831
+ function projectLegacySystemHealthSummary(snapshot) {
832
+ const metrics = snapshot.host.metrics;
833
+ const agentMemoryBytes = snapshot.agents.reduce((total, agent) => total + (agent.memoryBytes ?? 0), 0);
834
+ const containers = snapshot.topConsumers.filter((consumer) => consumer.type === "container");
835
+ const containerMemoryBytes = containers.reduce((total, consumer) => total + consumer.memoryBytes, 0);
836
+ const overdeckMemoryBytes = agentMemoryBytes + containerMemoryBytes;
837
+ const totalMemoryBytes = metrics.totalMemoryBytes ?? 0;
838
+ return {
839
+ cpuPercent: metrics.cpuPercent ?? 0,
840
+ loadAverage1m: metrics.loadAverage1m ?? 0,
841
+ loadPerCore1m: metrics.loadPerCore1m ?? 0,
842
+ totalMemoryBytes,
843
+ usedMemoryBytes: metrics.usedMemoryBytes ?? 0,
844
+ availableMemoryBytes: metrics.availableMemoryBytes ?? 0,
845
+ memoryUsedPercent: metrics.memoryUsedPercent ?? 0,
846
+ swapTotalBytes: metrics.swapTotalBytes ?? 0,
847
+ swapUsedBytes: metrics.swapUsedBytes ?? 0,
848
+ swapUsedPercent: metrics.swapUsedPercent ?? 0,
849
+ committedMemoryBytes: metrics.committedMemoryBytes ?? 0,
850
+ commitLimitBytes: metrics.commitLimitBytes ?? 0,
851
+ overcommitPercent: metrics.virtualCommitmentPercent ?? 0,
852
+ agentCount: snapshot.agents.length,
853
+ workAgentCount: snapshot.agents.filter(isWorkAgent).length,
854
+ planningAgentCount: snapshot.agents.filter(isPlanningAgent).length,
855
+ specialistSessionCount: snapshot.agents.filter(isSpecialistAgent).length,
856
+ leakedSpecialistCount: snapshot.agents.filter((agent) => isSpecialistAgent(agent) && agent.lifecycle === "orphaned").length,
857
+ containerCount: containers.length,
858
+ containerMemoryBytes,
859
+ overdeckMemoryBytes,
860
+ overdeckMemoryPercent: totalMemoryBytes > 0 ? Math.round(overdeckMemoryBytes / totalMemoryBytes * 1e3) / 10 : 0,
861
+ smeeRelay: projectWebhookRelay(snapshot.services)
862
+ };
863
+ }
864
+ var HealthStateValue, HealthState, HealthReason, HostPlatform, HostHealthMetrics, AdmissionState, AgentHealthStatus, AgentHealthKind, SpecialistLifecycle, AgentHealthSnapshot, ServiceHealthStatus, ServiceHealthSnapshot, SystemHealthConsumer, LegacyWebhookRelaySummary, LegacySystemHealthSummary, SystemHealthSnapshot;
865
+ var init_system_health = __esmMin((() => {
866
+ HealthStateValue = Schema.Literals([
867
+ "measuring",
868
+ "healthy",
869
+ "warning",
870
+ "critical",
871
+ "unavailable"
872
+ ]);
873
+ HealthState = Schema.String.pipe(Schema.decodeTo(HealthStateValue, {
874
+ decode: SchemaGetter.transform((value) => HealthStateValue.literals.includes(value) ? value : "unavailable"),
875
+ encode: SchemaGetter.transform((value) => value)
876
+ }));
877
+ HealthReason = Schema.Struct({
878
+ code: Schema.String,
879
+ domain: Schema.Literals([
880
+ "host",
881
+ "admission",
882
+ "agent",
883
+ "service"
884
+ ]),
885
+ severity: Schema.Literals([
886
+ "info",
887
+ "warning",
888
+ "critical"
889
+ ]),
890
+ message: Schema.String,
891
+ metric: Schema.optional(Schema.String),
892
+ observed: Schema.optional(Schema.Number),
893
+ threshold: Schema.optional(Schema.Number)
894
+ });
895
+ HostPlatform = Schema.String.pipe(Schema.decodeTo(Schema.Literals([
896
+ "linux",
897
+ "darwin",
898
+ "unsupported"
899
+ ]), {
900
+ decode: SchemaGetter.transform((value) => value === "linux" || value === "darwin" || value === "unsupported" ? value : "unsupported"),
901
+ encode: SchemaGetter.transform((value) => value)
902
+ }));
903
+ HostHealthMetrics = Schema.Struct({
904
+ cpuPercent: Schema.NullOr(Schema.Number),
905
+ loadAverage1m: Schema.NullOr(Schema.Number),
906
+ loadPerCore1m: Schema.NullOr(Schema.Number),
907
+ totalMemoryBytes: Schema.NullOr(Schema.Number),
908
+ usedMemoryBytes: Schema.NullOr(Schema.Number),
909
+ availableMemoryBytes: Schema.NullOr(Schema.Number),
910
+ memoryUsedPercent: Schema.NullOr(Schema.Number),
911
+ memoryPressureSomeAvg10: Schema.NullOr(Schema.Number),
912
+ memoryPressureFullAvg10: Schema.NullOr(Schema.Number),
913
+ memoryPressureFreePercent: Schema.NullOr(Schema.Number),
914
+ swapTotalBytes: Schema.NullOr(Schema.Number),
915
+ swapUsedBytes: Schema.NullOr(Schema.Number),
916
+ swapUsedPercent: Schema.NullOr(Schema.Number),
917
+ swapActivityBytesPerMinute: Schema.NullOr(Schema.Number),
918
+ committedMemoryBytes: Schema.NullOr(Schema.Number),
919
+ commitLimitBytes: Schema.NullOr(Schema.Number),
920
+ virtualCommitmentPercent: Schema.NullOr(Schema.Number)
921
+ });
922
+ AdmissionState = Schema.String.pipe(Schema.decodeTo(Schema.Literals([
923
+ "open",
924
+ "soft",
925
+ "blocked",
926
+ "unavailable"
927
+ ]), {
928
+ decode: SchemaGetter.transform((value) => value === "open" || value === "soft" || value === "blocked" || value === "unavailable" ? value : "unavailable"),
929
+ encode: SchemaGetter.transform((value) => value)
930
+ }));
931
+ AgentHealthStatus = Schema.String.pipe(Schema.decodeTo(Schema.Literals([
932
+ "healthy",
933
+ "idle",
934
+ "waiting",
935
+ "warning",
936
+ "stalled",
937
+ "wedged",
938
+ "dead",
939
+ "unavailable"
940
+ ]), {
941
+ decode: SchemaGetter.transform((value) => value === "healthy" || value === "idle" || value === "waiting" || value === "warning" || value === "stalled" || value === "wedged" || value === "dead" || value === "unavailable" ? value : "unavailable"),
942
+ encode: SchemaGetter.transform((value) => value)
943
+ }));
944
+ AgentHealthKind = Schema.String.pipe(Schema.decodeTo(Schema.Literals([
945
+ "work",
946
+ "planning",
947
+ "specialist",
948
+ "conversation",
949
+ "other"
950
+ ]), {
951
+ decode: SchemaGetter.transform((value) => value === "work" || value === "planning" || value === "specialist" || value === "conversation" || value === "other" ? value : "other"),
952
+ encode: SchemaGetter.transform((value) => value)
953
+ }));
954
+ SpecialistLifecycle = Schema.String.pipe(Schema.decodeTo(Schema.Literals([
955
+ "active",
956
+ "warm",
957
+ "orphaned",
958
+ "unknown"
959
+ ]), {
960
+ decode: SchemaGetter.transform((value) => value === "active" || value === "warm" || value === "orphaned" || value === "unknown" ? value : "unknown"),
961
+ encode: SchemaGetter.transform((value) => value)
962
+ }));
963
+ AgentHealthSnapshot = Schema.Struct({
964
+ id: Schema.String,
965
+ issueId: Schema.optional(Schema.String),
966
+ role: Schema.optional(Schema.String),
967
+ kind: Schema.optional(AgentHealthKind),
968
+ status: AgentHealthStatus,
969
+ lifecycle: Schema.optional(SpecialistLifecycle),
970
+ tmuxActive: Schema.optional(Schema.Boolean),
971
+ memoryBytes: Schema.optional(Schema.Number),
972
+ memoryGb: Schema.optional(Schema.Number),
973
+ cpuPercent: Schema.optional(Schema.Number),
974
+ currentIssue: Schema.optional(Schema.String),
975
+ lastActivityAt: Schema.optional(Schema.String),
976
+ consecutiveFailures: Schema.optional(Schema.Number),
977
+ killCount: Schema.optional(Schema.Number),
978
+ contextPercent: Schema.optional(Schema.NullOr(Schema.Number)),
979
+ reasons: Schema.Array(HealthReason)
980
+ });
981
+ ServiceHealthStatus = Schema.String.pipe(Schema.decodeTo(Schema.Literals([
982
+ "running",
983
+ "not_configured",
984
+ "degraded",
985
+ "stopped",
986
+ "unavailable"
987
+ ]), {
988
+ decode: SchemaGetter.transform((value) => value === "running" || value === "not_configured" || value === "degraded" || value === "stopped" || value === "unavailable" ? value : "unavailable"),
989
+ encode: SchemaGetter.transform((value) => value)
990
+ }));
991
+ ServiceHealthSnapshot = Schema.Struct({
992
+ id: Schema.String,
993
+ label: Schema.optional(Schema.String),
994
+ required: Schema.optional(Schema.Boolean),
995
+ status: ServiceHealthStatus,
996
+ message: Schema.String,
997
+ reasons: Schema.Array(HealthReason)
998
+ });
999
+ SystemHealthConsumer = Schema.Struct({
1000
+ id: Schema.String,
1001
+ label: Schema.String,
1002
+ type: Schema.Literals([
1003
+ "agent",
1004
+ "specialist",
1005
+ "container"
1006
+ ]),
1007
+ memoryBytes: Schema.Number,
1008
+ memoryGb: Schema.Number,
1009
+ cpuPercent: Schema.optional(Schema.Number),
1010
+ issueId: Schema.optional(Schema.String),
1011
+ currentIssue: Schema.optional(Schema.String),
1012
+ leaked: Schema.optional(Schema.Boolean),
1013
+ killTarget: Schema.optional(Schema.Struct({
1014
+ kind: Schema.Literals([
1015
+ "agent",
1016
+ "specialist",
1017
+ "container"
1018
+ ]),
1019
+ agentId: Schema.optional(Schema.String),
1020
+ containerId: Schema.optional(Schema.String),
1021
+ projectKey: Schema.optional(Schema.String),
1022
+ issueId: Schema.optional(Schema.String),
1023
+ specialistType: Schema.optional(Schema.String)
1024
+ }))
1025
+ });
1026
+ LegacyWebhookRelaySummary = Schema.Struct({
1027
+ configured: Schema.Boolean,
1028
+ running: Schema.Boolean,
1029
+ status: Schema.Literals([
1030
+ "not_configured",
1031
+ "running",
1032
+ "stopped",
1033
+ "unknown"
1034
+ ]),
1035
+ message: Schema.String
1036
+ });
1037
+ LegacySystemHealthSummary = Schema.Struct({
1038
+ cpuPercent: Schema.Number,
1039
+ loadAverage1m: Schema.Number,
1040
+ loadPerCore1m: Schema.Number,
1041
+ totalMemoryBytes: Schema.Number,
1042
+ usedMemoryBytes: Schema.Number,
1043
+ availableMemoryBytes: Schema.Number,
1044
+ memoryUsedPercent: Schema.Number,
1045
+ swapTotalBytes: Schema.Number,
1046
+ swapUsedBytes: Schema.Number,
1047
+ swapUsedPercent: Schema.Number,
1048
+ committedMemoryBytes: Schema.Number,
1049
+ commitLimitBytes: Schema.Number,
1050
+ overcommitPercent: Schema.Number,
1051
+ agentCount: Schema.Number,
1052
+ workAgentCount: Schema.Number,
1053
+ planningAgentCount: Schema.Number,
1054
+ specialistSessionCount: Schema.Number,
1055
+ leakedSpecialistCount: Schema.Number,
1056
+ containerCount: Schema.Number,
1057
+ containerMemoryBytes: Schema.Number,
1058
+ overdeckMemoryBytes: Schema.Number,
1059
+ overdeckMemoryPercent: Schema.Number,
1060
+ smeeRelay: LegacyWebhookRelaySummary
1061
+ });
1062
+ SystemHealthSnapshot = Schema.Struct({
1063
+ version: Schema.Literal(2),
1064
+ state: HealthState,
1065
+ updatedAt: Schema.String,
1066
+ nextPollMs: Schema.Number,
1067
+ host: Schema.Struct({
1068
+ state: HealthState,
1069
+ platform: HostPlatform,
1070
+ reasons: Schema.Array(HealthReason),
1071
+ metrics: HostHealthMetrics
1072
+ }),
1073
+ admission: Schema.Struct({
1074
+ state: AdmissionState,
1075
+ availableMemoryBytes: Schema.NullOr(Schema.Number),
1076
+ admittedWorkAgentCount: Schema.Number,
1077
+ reasons: Schema.Array(HealthReason)
1078
+ }),
1079
+ agents: Schema.Array(AgentHealthSnapshot),
1080
+ services: Schema.Array(ServiceHealthSnapshot),
1081
+ topConsumers: Schema.Array(SystemHealthConsumer),
1082
+ summary: LegacySystemHealthSummary
1083
+ });
1084
+ }));
1085
+ //#endregion
795
1086
  //#region ../../../packages/contracts/src/events.ts
796
1087
  var SystemHeartbeatEvent, BeadsFreshnessChangedEvent, AgentStartedEvent, AgentStoppedEvent, AgentHeartbeatDeadEvent, WorkCompletedEvent, AgentCompletedEvent, ReviewApprovedEvent, TestPassedEvent, AgentStatusChangedEvent, AgentOutputReceivedEvent, AgentEnrichmentChangedEvent, AgentCreatedEvent, AgentActivityChangedEvent, AgentThinkingStartedEvent, AgentThinkingStoppedEvent, AgentWaitingStartedEvent, AgentWaitingClearedEvent, AgentPermissionRequestedEvent, AgentPermissionResolvedEvent, AgentMessageReceivedEvent, AgentChannelReplyEvent, AgentModelSetEvent, AgentCurrentIssueSetEvent, AgentContextSaturationChangedEvent, AgentResolutionChangedEvent, AgentStateRestoredEvent, AgentTurnDiffCompletedEvent, PlanningStartedEvent, PlanningFailedEvent, PlanningSyncEvent, PlanItemStatusChangedEvent, PlanSubitemStatusChangedEvent, PlanItemsUnblockedEvent, PipelineStatusChangedEvent, MergeReadyEvent, ReviewStatusChangedEvent, PipelineReviewStartedEvent, PipelineReviewCompletedEvent, PipelineTestStartedEvent, PipelineTestCompletedEvent, PipelineVerificationStartedEvent, PipelineVerificationFailedEvent, IssueTransitionedEvent, OperatorInterventionEvent, SubstrateBugFiledEvent, ReviewReviewerStartedEvent, ReviewReviewerCompletedEvent, ReviewSpecialistTimedOutEvent, ReviewCoordinatorStartedEvent, ReviewCoordinatorDiedEvent, SpecialistLifecycleState, SpecialistStartedEvent, SpecialistCompletedEvent, SpecialistFailedEvent, ResourcesUpdatedEvent, SystemHealthSeverityChangedEvent, IssuesSnapshotEvent, IssuesUpdatedEvent, IssueStatusChangedEvent, ActivityUpdatedEvent, ActivityEntryEvent, ActivityDetailedEvent, ActivityTtsEvent, DashboardLifecycleStartedEvent, DashboardLifecycleCompletedEvent, DashboardLifecycleFailedEvent, ShadowInferenceUpdateEvent, WorkspaceCreatedEvent, WorkspaceWipeStartedEvent, WorkspaceDestroyedEvent, WorkspaceDeletedEvent, WorkspaceAbortedEvent, MemoryObservationCreatedEvent, MemoryStatusUpdatedEvent, MemoryRollupTriggeredEvent, MemoryResetMarkerCreatedEvent, MemoryHealthChangedEvent, CostEventRecordedEvent, ConversationCompactingChangedEvent, ConversationCreatedEvent, ConversationTitleChangedEvent, ConversationPermissionChangedEvent, ScanStartedEvent, ScanProgressEvent, ScanCompleteEvent, EnrichProgressEvent, EnrichCompleteEvent, EmbedProgressEvent, DomainEvent;
797
1088
  var init_events = __esmMin((() => {
798
1089
  init_types();
799
1090
  init_memory();
1091
+ init_system_health();
800
1092
  SystemHeartbeatEvent = Schema.Struct({
801
1093
  type: Schema.Literal("system.heartbeat"),
802
1094
  timestamp: Schema.String,
@@ -1417,7 +1709,13 @@ var init_events = __esmMin((() => {
1417
1709
  previousSeverity: Schema.String,
1418
1710
  severity: Schema.String,
1419
1711
  reasons: Schema.Array(Schema.String),
1420
- leakedSpecialistCount: Schema.Number
1712
+ leakedSpecialistCount: Schema.Number,
1713
+ version: Schema.optional(Schema.Literal(2)),
1714
+ transitionVersion: Schema.optional(Schema.Number),
1715
+ previousState: Schema.optional(HealthState),
1716
+ state: Schema.optional(HealthState),
1717
+ reasonCodes: Schema.optional(Schema.Array(Schema.String)),
1718
+ acceptedAt: Schema.optional(Schema.String)
1421
1719
  })
1422
1720
  });
1423
1721
  IssuesSnapshotEvent = Schema.Struct({
@@ -4375,6 +4673,38 @@ var init_hygiene = __esmMin((() => {
4375
4673
  //#endregion
4376
4674
  //#region ../../../packages/contracts/src/update.ts
4377
4675
  var init_update = __esmMin((() => {}));
4676
+ var init_deploy = __esmMin((() => {
4677
+ Schema.Struct({
4678
+ status: Schema.Literals([
4679
+ "fresh",
4680
+ "stale",
4681
+ "unknown"
4682
+ ]),
4683
+ buildCommit: Schema.NullOr(Schema.String),
4684
+ originMainSha: Schema.NullOr(Schema.String),
4685
+ behindTotal: Schema.NullOr(Schema.Number),
4686
+ behindBuildInputs: Schema.NullOr(Schema.Number),
4687
+ originMainLastCommitAt: Schema.NullOr(Schema.Number),
4688
+ computedAt: Schema.Number,
4689
+ reason: Schema.optional(Schema.String)
4690
+ });
4691
+ }));
4692
+ //#endregion
4693
+ //#region ../../../packages/contracts/src/issue-sort.ts
4694
+ /**
4695
+ * Compares issue identifiers numerically within their prefix, so PAN-532 sorts
4696
+ * before PAN-2822. Every issue-id sort should use this comparator (PAN-2831).
4697
+ */
4698
+ function compareIssueIds(a, b) {
4699
+ return collator.compare(a, b);
4700
+ }
4701
+ var collator;
4702
+ var init_issue_sort = __esmMin((() => {
4703
+ collator = new Intl.Collator("en", {
4704
+ numeric: true,
4705
+ sensitivity: "base"
4706
+ });
4707
+ }));
4378
4708
  //#endregion
4379
4709
  //#region ../../../packages/contracts/src/index.ts
4380
4710
  var init_src = __esmMin((() => {
@@ -4392,8 +4722,11 @@ var init_src = __esmMin((() => {
4392
4722
  init_harness_behavior();
4393
4723
  init_hygiene();
4394
4724
  init_update();
4725
+ init_system_health();
4726
+ init_deploy();
4727
+ init_issue_sort();
4395
4728
  }));
4396
4729
  //#endregion
4397
- export { normalizeChannelReplyPayload as C, MemoryStatus as S, FlywheelRunId as _, getHarnessBehavior as a, DomainEvent as b, FlywheelStats as c, getMaxTurnDiffSummariesPerAgent as d, isTerminalTurnDiffSummaryStatus as f, WS_METHODS as g, PanRpcGroup as h, OHMYPI_BEHAVIOR as i, INITIAL_READ_MODEL_STATE as l, PanRpcError as m, CLAUDE_CODE_BEHAVIOR as n, ContextLayerSaveRequest as o, trimTurnDiffSummaries as p, CODEX_BEHAVIOR as r, ContextPreviewRequest as s, init_src as t, applyEvent as u, FlywheelStatus as v, MemoryObservation as x, EDITORS as y };
4730
+ export { projectLegacySystemHealthSummary as C, AgentSnapshot as D, AgentRuntimeSnapshot as E, ReviewStatusSnapshot as O, SystemHealthSnapshot as S, MemoryStatus as T, WS_METHODS as _, OHMYPI_BEHAVIOR as a, EDITORS as b, ContextPreviewRequest as c, applyEvent as d, getMaxTurnDiffSummariesPerAgent as f, PanRpcGroup as g, PanRpcError as h, CODEX_BEHAVIOR as i, normalizeChannelReplyPayload as k, FlywheelStats as l, trimTurnDiffSummaries as m, compareIssueIds as n, getHarnessBehavior as o, isTerminalTurnDiffSummaryStatus as p, CLAUDE_CODE_BEHAVIOR as r, ContextLayerSaveRequest as s, init_src as t, INITIAL_READ_MODEL_STATE as u, FlywheelRunId as v, MemoryObservation as w, DomainEvent as x, FlywheelStatus as y };
4398
4731
 
4399
- //# sourceMappingURL=src-Dpq1yFIl.js.map
4732
+ //# sourceMappingURL=src-k039WVYY.js.map
@@ -1,3 +1,3 @@
1
- import { a as init_stack_health, i as getWorkspaceStackHealth } from "./stack-health-DV_f-lK0.js";
1
+ import { a as init_stack_health, i as getWorkspaceStackHealth } from "./stack-health-C-ifC7b0.js";
2
2
  init_stack_health();
3
3
  export { getWorkspaceStackHealth };
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { $n as resolveProjectFromIssueSync, Nn as getProjectSync, dr as parseIssueIdSync, lr as init_issue_id, zn as init_projects } from "./config-yaml-Ciyp2mYe.js";
2
+ import { Hn as init_projects, In as getProjectSync, fr as init_issue_id, mr as parseIssueIdSync, nr as resolveProjectFromIssueSync } from "./config-yaml-ig8Nwtiw.js";
3
3
  import { a as init_activity_logger, n as emitActivityEntrySync } from "./activity-logger-DDlOIAML.js";
4
4
  import { join } from "node:path";
5
5
  import { Duration, Effect, Schedule, Stream } from "effect";
@@ -352,4 +352,4 @@ var init_stack_health = __esmMin((() => {
352
352
  //#endregion
353
353
  export { init_stack_health as a, init_docker_stats as c, getWorkspaceStackHealth as i, recordDockerContainerLifecycleSnapshot as l, collectDockerContainerLifecycleSnapshot as n, recordWorkspaceStackHealthTransition as o, evaluateWorkspaceStackHealth as r, DockerStatsCollector as s, DEFAULT_STUCK_CREATED_THRESHOLD_MS as t };
354
354
 
355
- //# sourceMappingURL=stack-health-DV_f-lK0.js.map
355
+ //# sourceMappingURL=stack-health-C-ifC7b0.js.map
@@ -1,6 +1,6 @@
1
- import { At as init_record, Et as getIssueRecordPath, Ft as readIssueRecordSync, Un as listProjectsSync, zn as init_projects } from "./config-yaml-Ciyp2mYe.js";
2
- import { a as isPidDead, i as init_fs_lock, n as updateIssueRecord, t as init_record_update } from "./record-update-RviRDSNs.js";
3
- import { c as listAllAgentsSync, o as init_agents } from "./agents-DbrHWunF.js";
1
+ import { Hn as init_projects, Kn as listProjectsSync, Nt as init_record, Rt as readIssueRecordSync, kt as getIssueRecordPath } from "./config-yaml-ig8Nwtiw.js";
2
+ import { a as isPidDead, i as init_fs_lock, n as updateIssueRecord, t as init_record_update } from "./record-update-Crz74r-6.js";
3
+ import { c as listAllAgentsSync, o as init_agents } from "./agents-DXdHmRTC.js";
4
4
  import { dirname } from "node:path";
5
5
  import { hostname } from "node:os";
6
6
  import { readdirSync } from "node:fs";
@@ -66,4 +66,4 @@ async function patrolStaleTaskClaims() {
66
66
  //#endregion
67
67
  export { patrolStaleTaskClaims };
68
68
 
69
- //# sourceMappingURL=stale-task-claims-CQSKZVq0.js.map
69
+ //# sourceMappingURL=stale-task-claims-L7pJkQFL.js.map
@@ -129,4 +129,4 @@ var init_staleness = __esmMin((() => {
129
129
  //#endregion
130
130
  export { init_staleness as i, _resetForTests as n, computeBuildStaleness as r, BUILD_INPUT_PATHS as t };
131
131
 
132
- //# sourceMappingURL=staleness-BbsGxmF2.js.map
132
+ //# sourceMappingURL=staleness-BID1BKdr.js.map
@@ -1,3 +1,3 @@
1
- import { i as init_staleness, n as _resetForTests, r as computeBuildStaleness, t as BUILD_INPUT_PATHS } from "./staleness-BbsGxmF2.js";
1
+ import { i as init_staleness, n as _resetForTests, r as computeBuildStaleness, t as BUILD_INPUT_PATHS } from "./staleness-BID1BKdr.js";
2
2
  init_staleness();
3
3
  export { BUILD_INPUT_PATHS, _resetForTests, computeBuildStaleness };