@overdeck/desktop 0.45.22 → 0.45.24

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 (429) hide show
  1. package/drizzle/overdeck/0000_overdeck_init.sql +2 -0
  2. package/package.json +1 -1
  3. package/server/{acceptance-criteria-BH7ac_1G.js → acceptance-criteria-DDCnXF58.js} +5 -5
  4. package/server/{advancing-selfheal-cSvXNZLZ.js → advancing-selfheal-BVwW4qRn.js} +6 -6
  5. package/server/{agent-gc-Dj2gncak.js → agent-gc-CHcnvonI.js} +4 -4
  6. package/server/agent-state-Bc3tzUC8.js +3 -0
  7. package/server/{agent-state-service-DistflNn.js → agent-state-service-BsgWxZuB.js} +5 -5
  8. package/server/{agent-state-service-CsQ07Pxe.js → agent-state-service-D5UGKIJL.js} +1 -1
  9. package/server/{agents-DXdHmRTC.js → agents-EbI0zCJl.js} +4 -4
  10. package/server/agents-wi9NWzs2.js +3 -0
  11. package/server/{archive-planning-Cp_DC1j-.js → archive-planning-BZDgzoEj.js} +1 -1
  12. package/server/{archive-planning-BvDuWNMo.js → archive-planning-Du25Jtst.js} +30 -6
  13. package/server/{artifact-index-jobs-CDBFL4OU.js → artifact-index-jobs-CbEDfCDu.js} +2 -2
  14. package/server/assemble-J2ZZ2C15.js +339 -0
  15. package/server/{backlog-auto-trigger-DmA1IbYf.js → backlog-auto-trigger-2R2jog7n.js} +3 -3
  16. package/server/{behavior-CGj16clS.js → behavior-B3exJ42O.js} +2 -2
  17. package/server/{briefing-freshness-C12WgkaB.js → briefing-freshness-D1wzUIWv.js} +2 -2
  18. package/server/{build-info-BRpqQvNd.js → build-info-CZk_TITh.js} +1 -1
  19. package/server/{build-info-NU3KbXYw.js → build-info-Ie_D0_BT.js} +3 -3
  20. package/server/{checkpoint-manager-CTPjAmtH.js → checkpoint-manager-BI1Wxoku.js} +2 -2
  21. package/server/{checkpoint-manager-rOgT98WY.js → checkpoint-manager-DwbQoqrC.js} +1 -1
  22. package/server/checkpoint-worker.js +1 -1
  23. package/server/{checkpoints-B5jFNi2G.js → checkpoints-BJIs5QIA.js} +1 -1
  24. package/server/{checkpoints-BJum14fs.js → checkpoints-CQB1h765.js} +2 -2
  25. package/server/{claude-hooks-provision-BhwWK-TQ.js → claude-hooks-provision-8Ngo8TpT.js} +1 -1
  26. package/server/{claude-hooks-provision-D7p5WcKZ.js → claude-hooks-provision-D8GXF3_s.js} +2 -2
  27. package/server/{claude-permissions-nSFKH78M.js → claude-permissions-DNWEVV6z.js} +2 -2
  28. package/server/{claude-settings-overlay-BI_UIke0.js → claude-settings-overlay-CEdaqpWI.js} +2 -2
  29. package/server/{claude-settings-overlay-DHBwjS1X.js → claude-settings-overlay-DWy-Bb4Y.js} +1 -1
  30. package/server/cli-B86rejVV.js +3 -0
  31. package/server/{cli-CbKNkFE5.js → cli-RoOx5DUf.js} +9 -9
  32. package/server/{cliproxy-Brf_5MuG.js → cliproxy-C8a1vtTU.js} +2 -2
  33. package/server/{cliproxy-bONZDBbC.js → cliproxy-fHfIeiGd.js} +1 -1
  34. package/server/{close-issue-CxReRxIc.js → close-issue-DoOifFIK.js} +5 -5
  35. package/server/{closed-issue-reaper-CQ3kqha7.js → closed-issue-reaper-Bk3SU4RC.js} +9 -9
  36. package/server/{closed-issue-reaper-DXP2Xyv3.js → closed-issue-reaper-CktPXo8m.js} +1 -1
  37. package/server/{codex-CbmztVcc.js → codex-BZXGhUVB.js} +27 -8
  38. package/server/codex-GcHuUF-k.js +3 -0
  39. package/server/{codex-parser-jl8AeAmB.js → codex-parser-CFZ1_1Jl.js} +2 -2
  40. package/server/{config-q4Gvd8dq.js → config-BZ0sHTju.js} +2 -2
  41. package/server/{config-DeTsoZdR.js → config-CKxYiCmX.js} +2 -2
  42. package/server/{config-BJKocXKd.js → config-DzV30TOm.js} +1 -1
  43. package/server/{config-yaml-ig8Nwtiw.js → config-yaml-DySPNmKN.js} +77 -194
  44. package/server/{conflict-gate-CFqPVxEg.js → conflict-gate-BaCVrH-N.js} +3 -3
  45. package/server/{conflict-gate-CHU9K1vU.js → conflict-gate-BhAY7TUd.js} +1 -1
  46. package/server/context-layers-BrPmE__h.js +4 -0
  47. package/server/context-layers-igZ4FI4_.js +37 -0
  48. package/server/{control-settings-D_odMIaC.js → control-settings-BQp7_4uD.js} +4 -4
  49. package/server/{conversation-compaction-B6YSRLda.js → conversation-compaction-CgrR8YYp.js} +8 -8
  50. package/server/{conversation-compaction-CN4-5YYt.js → conversation-compaction-eQB5CkOe.js} +1 -1
  51. package/server/{conversation-service-Dq33SYEj.js → conversation-service-BLd3MYsG.js} +1 -1
  52. package/server/{conversation-service-C3avRVEr.js → conversation-service-DPJ71F33.js} +329 -19
  53. package/server/{conversations-bYpM9-kZ.js → conversations-6AfUfbwc.js} +5 -5
  54. package/server/{conversations-H9if0bCQ.js → conversations-CAsJF9kh.js} +1 -1
  55. package/server/{cost-Codk1pc2.js → cost-B2ddP6wq.js} +18 -2
  56. package/server/{cost-wH46-WsJ.js → cost-R-m6Yi-W.js} +3 -3
  57. package/server/{cost-sync-D_cre6WM.js → cost-sync-BsN6ER0n.js} +3 -3
  58. package/server/{dag-CJpgf9A3.js → dag-B1ucnjDU.js} +9 -9
  59. package/server/{dangerous-git-ops-D6AF-Hg_.js → dangerous-git-ops-BXqeWVSf.js} +1 -1
  60. package/server/dashboard-db-worker.js +7 -7
  61. package/server/{deacon-CkT_kznS.js → deacon-CU_cAYSR.js} +406 -607
  62. package/server/{deacon-B8HbQdqU.js → deacon-kiQrb4ZT.js} +3 -3
  63. package/server/{deacon-nudge-log-D6K9K-rE.js → deacon-nudge-log-6wVqAaqz.js} +3 -3
  64. package/server/{deacon-swarm-BryRr6AO.js → deacon-swarm-BXZZ1Z2-.js} +17 -17
  65. package/server/deacon-swarm-C-GwfjJy.js +2 -0
  66. package/server/deacon.js +8 -8
  67. package/server/{deploy-patrol-1IrZxicY.js → deploy-patrol-AiFoP8dw.js} +136 -19
  68. package/server/{deploy-window-wDf4UgHt.js → deploy-window-C3F-tihF.js} +77 -10
  69. package/server/{deploy-window-7ZYHh7Zp.js → deploy-window-DkZraDyj.js} +1 -1
  70. package/server/{dev-supervisor-C7p9kEpc.js → dev-supervisor-bcOWqdQE.js} +2 -2
  71. package/server/{devcontainer-renderer-CNmQy0pL.js → devcontainer-renderer-_d6XhyND.js} +3 -3
  72. package/server/dist-Bzy0y69j.js +3 -0
  73. package/server/{dist-D-Ed5yVw.js → dist-Cb_0uvpS.js} +1 -1
  74. package/server/{docker-BCZ89M9X.js → docker-DcMTFTUC.js} +2 -2
  75. package/server/{dod-DbJLYcHv.js → dod-C6n9RV3G.js} +1 -1
  76. package/server/{ensure-devcontainer-Cs6W9Yzj.js → ensure-devcontainer-BZgOhRo7.js} +1 -1
  77. package/server/{ensure-devcontainer-V5JWaAva.js → ensure-devcontainer-DNi-ono3.js} +4 -4
  78. package/server/{esm-shims-dTeNdq7X.js → esm-shims-OSHAYaS1.js} +1 -1
  79. package/server/{event-store-TnWdydfB.js → event-store-CQL6NeqB.js} +3 -3
  80. package/server/{event-store-CpBGsO6_.js → event-store-EV2cMiXj.js} +1 -1
  81. package/server/{events-Dsuv6qyB.js → events-BTdrdEq8.js} +1 -1
  82. package/server/{events-DSUdR-04.js → events-DTfAe4My.js} +3 -3
  83. package/server/{factory-BMrK4TrE.js → factory-CFibJuaw.js} +50 -13
  84. package/server/{feature-registry-population-B-CI9hgE.js → feature-registry-population-DKZFMbFt.js} +4 -4
  85. package/server/{feature-registry-storage-B972ph_A.js → feature-registry-storage-BdPuLcBX.js} +2 -2
  86. package/server/{features-Bc-Bmiye.js → features-ez2271oH.js} +2 -2
  87. package/server/{feedback-target-DZ-iAnAa.js → feedback-target-7mqqwrX6.js} +7 -7
  88. package/server/{feedback-target-DS6NUuSs.js → feedback-target-CoFDHiM8.js} +1 -1
  89. package/server/{feedback-writer-BXP6g75N.js → feedback-writer-CY5L1lB7.js} +6 -5
  90. package/server/{feedback-writer-Bx5z11mF.js → feedback-writer-D3a22RCd.js} +1 -1
  91. package/server/flywheel-DHrgCphM.js +1084 -0
  92. package/server/flywheel-DzGtWnJ1.js +477 -0
  93. package/server/flywheel-SVF02Jpq.js +2 -0
  94. package/server/{flywheel-merge-order-CTgHeg-W.js → flywheel-merge-order-UU0tiUld.js} +10 -9
  95. package/server/{flywheel-merge-order-CNKAY489.js → flywheel-merge-order-UUcsCDb6.js} +1 -1
  96. package/server/{forge-B1S_KZv4.js → forge-CNFnyqps.js} +2 -2
  97. package/server/forge-DXnS_YFH.js +2 -0
  98. package/server/{from-DpwQ-sc3.js → from-kNxT0bZC.js} +1 -1
  99. package/server/{fts-db-DmAcuCkV.js → fts-db-CE46vDkZ.js} +2 -2
  100. package/server/{fts-operations-7d_RkmWp.js → fts-operations-CqY6zl-i.js} +2 -2
  101. package/server/{git-utils-Cc3FHDKd.js → git-utils-CRw2zLPC.js} +68 -3
  102. package/server/git-utils-D0_yhCgF.js +3 -0
  103. package/server/{github-app-CDPtGF7J.js → github-app-C3QrAUd0.js} +27 -8
  104. package/server/{github-app-CU14oYzP.js → github-app-ClZ2lk8D.js} +1 -1
  105. package/server/{github-client-XjTJbBm7.js → github-client-BnIsSrEN.js} +2 -2
  106. package/server/{github-client-CwBZZ3t7.js → github-client-DfQYVUaw.js} +1 -1
  107. package/server/{github-pr-lookup-CFGeVhqv.js → github-pr-lookup-D16NGsSO.js} +2 -2
  108. package/server/{harness-binary-B2CTcD84.js → harness-binary-DPUi-Pv8.js} +32 -6
  109. package/server/{harness-resolve-D5FVQTmy.js → harness-resolve-3lNZkyT4.js} +18 -9
  110. package/server/{health-events-DREeevle.js → health-events-BBcTYQKU.js} +2 -2
  111. package/server/{health-events-C1whmd58.js → health-events-BDOHby5Q.js} +1 -1
  112. package/server/{hooks-yxRsjk-z.js → hooks-CKZgXlJb.js} +2 -2
  113. package/server/{hooks-B-HItBiS.js → hooks-DPVX1rwQ.js} +1 -1
  114. package/server/{hume-Dz_OymXE.js → hume-Cz8igP9E.js} +2 -2
  115. package/server/hume-ccTf4wTX.js +3 -0
  116. package/server/{idle-stack-reaper-DrCv0OAG.js → idle-stack-reaper-CuLF0j2H.js} +1 -1
  117. package/server/{idle-stack-reaper-Yf34xXxY.js → idle-stack-reaper-DDIRwxUY.js} +2 -2
  118. package/server/{in-flight-guard-BoWm66Kh.js → in-flight-guard-CAAkqPLu.js} +2 -2
  119. package/server/{infra-D4iNWMA5.js → infra-BEqFxlJc.js} +14 -4
  120. package/server/{injection-D7T75Pye.js → injection-C8aiVJrF.js} +191 -183
  121. package/server/{injection-BVNa4MQW.js → injection-CPUIqNhI.js} +1 -1
  122. package/server/{inspect-agent-BXCgNeZ4.js → inspect-agent-BLuJ1AkT.js} +137 -81
  123. package/server/inspect-agent-Brtz0URj.js +2 -0
  124. package/server/{internal-token-C9DdEOKY.js → internal-token-BrcU6qfe.js} +1 -1
  125. package/server/{internal-token-CXsfxslp.js → internal-token-s0-oKybJ.js} +2 -2
  126. package/server/{io-DQR9PMgS.js → io-C9kF1wtJ.js} +160 -184
  127. package/server/{issue-closed-DtmJM0D0.js → issue-closed-CDJk4pIp.js} +7 -7
  128. package/server/{issue-lifecycle-8PSS9Anq.js → issue-lifecycle-B8sZHVHh.js} +1 -1
  129. package/server/{issue-lifecycle-CeyW_HoD.js → issue-lifecycle-ojZAzDBP.js} +22 -22
  130. package/server/{issue-service-singleton-DBZabEl7.js → issue-service-singleton-BvJ09SaR.js} +1 -1
  131. package/server/{issue-service-singleton-D_RVYBuL.js → issue-service-singleton-Yx5DdmVJ.js} +8 -8
  132. package/server/{issues-pDW9VUNz.js → issues-BMmP_77e.js} +2 -2
  133. package/server/{jsonl-parser-C3HVNR5d.js → jsonl-parser-BXSlHwEh.js} +3 -3
  134. package/server/{label-cleanup-DPwiZlWo.js → label-cleanup-B0UJwnv5.js} +3 -3
  135. package/server/{label-reconciler-Df1ZduPH.js → label-reconciler-B4iOAjlC.js} +4 -4
  136. package/server/{launcher-generator-COgR2By1.js → launcher-generator-BBWG_SiS.js} +105 -10
  137. package/server/{lifecycle-io-taIb0PoH.js → lifecycle-io-BREGpnLk.js} +37 -37
  138. package/server/lifecycle-io-DPo7x11I.js +3 -0
  139. package/server/{lifecycle-CtPDcZ9u.js → lifecycle-xmBfK2GJ.js} +6 -6
  140. package/server/lifecycle-yPd___5E.js +121 -0
  141. package/server/{linear-client-DsFkIxee.js → linear-client-BsuUvkdA.js} +2 -2
  142. package/server/{linear-client-YwZMDIwQ.js → linear-client-CTskEeT_.js} +1 -1
  143. package/server/memory-fts-worker.js +1 -1
  144. package/server/{merge-BwsyNRJV.js → merge-B1DiziGU.js} +1 -1
  145. package/server/{merge-C1t-bspg.js → merge-CefQNAnq.js} +3 -3
  146. package/server/{merge-agent-DDiIjzk-.js → merge-agent-4WOWlSYA.js} +28 -28
  147. package/server/{merge-agent-B-SnXOoc.js → merge-agent-CKkgIBPB.js} +1 -1
  148. package/server/{merge-batch-Byt-QnEl.js → merge-batch-ClFn2T-y.js} +1 -1
  149. package/server/merge-ops-CR44oU9-.js +2 -0
  150. package/server/{merge-rebase-Cm6fXaZN.js → merge-rebase-BfaTyXsw.js} +2 -2
  151. package/server/merge-set-DJ8-UErs.js +83 -0
  152. package/server/{merge-set-6LEglm6o.js → merge-set-bUqbm3yc.js} +1 -1
  153. package/server/{merge-sync-B95_4in_.js → merge-sync-BJYeOODr.js} +1 -1
  154. package/server/{merge-sync-Do8_q32h.js → merge-sync-VPV28g0g.js} +2 -2
  155. package/server/{merge-train-CKana8EH.js → merge-train-CHopycP0.js} +3 -3
  156. package/server/{merge-train-deps-BgmqwIfA.js → merge-train-deps-D1cOZzy2.js} +4 -4
  157. package/server/{merge-verification-CqnUzGEK.js → merge-verification-BkaOqPsw.js} +4 -4
  158. package/server/{multipart-parser-tdOQDJ3o.js → multipart-parser-duPAfSBw.js} +2 -2
  159. package/server/{no-resume-mode-BWOSZjWd.js → no-resume-mode-Nw29vaFb.js} +11 -8
  160. package/server/node_modules/.package-lock.json +8 -8
  161. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/package.json +3 -3
  162. package/server/node_modules/undici/README.md +5 -0
  163. package/server/node_modules/undici/docs/docs/api/Client.md +4 -0
  164. package/server/node_modules/undici/docs/docs/api/Dispatcher.md +6 -0
  165. package/server/node_modules/undici/docs/docs/api/Interceptors.md +59 -0
  166. package/server/node_modules/undici/docs/docs/api/MockAgent.md +27 -0
  167. package/server/node_modules/undici/docs/docs/api/MockPool.md +28 -1
  168. package/server/node_modules/undici/docs/docs/index.md +5 -0
  169. package/server/node_modules/undici/lib/core/request.js +1 -1
  170. package/server/node_modules/undici/lib/core/util.js +6 -1
  171. package/server/node_modules/undici/lib/dispatcher/agent.js +3 -3
  172. package/server/node_modules/undici/lib/dispatcher/client-h1.js +31 -6
  173. package/server/node_modules/undici/lib/dispatcher/client-h2.js +34 -43
  174. package/server/node_modules/undici/lib/handler/cache-handler.js +93 -5
  175. package/server/node_modules/undici/lib/handler/cache-revalidation-handler.js +10 -0
  176. package/server/node_modules/undici/lib/handler/redirect-handler.js +5 -2
  177. package/server/node_modules/undici/lib/handler/retry-handler.js +6 -4
  178. package/server/node_modules/undici/lib/interceptor/cache.js +21 -4
  179. package/server/node_modules/undici/lib/interceptor/decompress.js +4 -0
  180. package/server/node_modules/undici/lib/mock/mock-interceptor.js +25 -7
  181. package/server/node_modules/undici/lib/mock/mock-utils.js +39 -10
  182. package/server/node_modules/undici/lib/util/cache.js +49 -7
  183. package/server/node_modules/undici/lib/web/fetch/body.js +2 -1
  184. package/server/node_modules/undici/lib/web/fetch/response.js +1 -3
  185. package/server/node_modules/undici/package.json +2 -2
  186. package/server/node_modules/undici/types/client.d.ts +2 -2
  187. package/server/node_modules/undici/types/dispatcher.d.ts +3 -3
  188. package/server/node_modules/undici/types/mock-interceptor.d.ts +5 -1
  189. package/server/{orphan-proposed-reconciler-xklgvNA7.js → orphan-proposed-reconciler-BvKkWMJQ.js} +15 -13
  190. package/server/{orphan-proposed-reconciler-DSvsJ5M7.js → orphan-proposed-reconciler-CTSGcK8p.js} +1 -1
  191. package/server/package-lock.json +9 -9
  192. package/server/package.json +1 -1
  193. package/server/{pan-dir-DOcf6ug3.js → pan-dir-B0c3w0Ya.js} +78 -58
  194. package/server/{paths-DooHpt9p.js → paths-D-xWGHdh.js} +2 -2
  195. package/server/{pickup-CaskQ7j6.js → pickup-DUCLWrJY.js} +17 -16
  196. package/server/{pipeline-membership-1LGRjo-k.js → pipeline-membership-mY3GprlK.js} +186 -67
  197. package/server/{pipeline-notifier-CZsrU_nj.js → pipeline-notifier-BJr8gQX6.js} +1 -1
  198. package/server/{pipeline-notifier-B6FVsYF9.js → pipeline-notifier-BXkJzDC4.js} +2 -2
  199. package/server/{project-pipelines-CtNG_rvs.js → project-pipelines-C0MWUeCU.js} +2 -2
  200. package/server/project-repos-B6GycDh9.js +94 -0
  201. package/server/project-repos-DXKQsc_m.js +3 -0
  202. package/server/projects-vjjcmiN8.js +3 -0
  203. package/server/{prompts-EvhMeeHG.js → prompts-DxzFXuLl.js} +2 -2
  204. package/server/{providers-BDDPULlp.js → providers-qQAwGQDW.js} +7 -7
  205. package/server/{providers-DNSQqy2V.js → providers-u4Ga0jOr.js} +1 -1
  206. package/server/public/assets/{chunk-BO2N2NFS-sym_ufXe.js → chunk-BO2N2NFS-BamJdinX.js} +4 -4
  207. package/server/public/assets/{diagram-OG6HWLK6-CQJPBNBu.js → diagram-OG6HWLK6-DfOB8-w4.js} +1 -1
  208. package/server/public/assets/{dist-DukGS2YZ.js → dist-ByIuzMQW.js} +3 -3
  209. package/server/public/assets/{dist-Bio7THQU.js → dist-D7zYSEA6.js} +1 -1
  210. package/server/public/assets/{ganttDiagram-6RSMTGT7-D4lWwte3.js → ganttDiagram-6RSMTGT7-EdmRyXL3.js} +1 -1
  211. package/server/public/assets/{highlighted-body-OFNGDK62-CaLboCt5.js → highlighted-body-OFNGDK62-MerOfTX8.js} +1 -1
  212. package/server/public/assets/{index-Bwejq-5s.js → index-CWeMerGO.js} +147 -144
  213. package/server/public/assets/index-CenuJ3Cw.css +1 -0
  214. package/server/public/assets/{linear-qUWmMZ-c.js → linear-BBbArIcK.js} +1 -1
  215. package/server/public/assets/mermaid-GHXKKRXX-CpPWAFwE.js +1 -0
  216. package/server/public/assets/{pieDiagram-4H26LBE5-C4zYulEm.js → pieDiagram-4H26LBE5-BKIddiJN.js} +1 -1
  217. package/server/public/assets/{prod-C8VtLuWC.js → prod-B8vYiu52.js} +4 -4
  218. package/server/public/assets/{quadrantDiagram-W4KKPZXB-qP04zyZC.js → quadrantDiagram-W4KKPZXB-D6RtoULk.js} +1 -1
  219. package/server/public/assets/{sankeyDiagram-5OEKKPKP-eMPTX_cG.js → sankeyDiagram-5OEKKPKP-CLrCedZX.js} +1 -1
  220. package/server/public/assets/{xychartDiagram-2RQKCTM6-Dme1PIt6.js → xychartDiagram-2RQKCTM6-hznR8DYl.js} +1 -1
  221. package/server/public/index.html +2 -2
  222. package/server/{pull-requests-By_BteaL.js → pull-requests-7N8WKseP.js} +1 -1
  223. package/server/{pull-requests-8z2N1UOV.js → pull-requests-_lHueOHW.js} +13 -11
  224. package/server/{queries-ZABd5aXP.js → queries-CjNIf-Ub.js} +1200 -201
  225. package/server/{rally-i_goYmiA.js → rally-CyWT_lNO.js} +3 -3
  226. package/server/{rally-api-DqKqIMNR.js → rally-api-C8e_1JRi.js} +2 -2
  227. package/server/{rally-api-xHazRk0d.js → rally-api-ClOSd-Tt.js} +1 -1
  228. package/server/{rally-client-COYz1vYR.js → rally-client-lc-nokqr.js} +4 -4
  229. package/server/{rally-client-CGWEHaPd.js → rally-client-sgtVqzNU.js} +1 -1
  230. package/server/rally-zhhtXuDP.js +3 -0
  231. package/server/{reap-terminal-sessions-CaMkFOIH.js → reap-terminal-sessions-7KeHv1R1.js} +1 -1
  232. package/server/{reap-terminal-sessions-DG9eiMVz.js → reap-terminal-sessions-BtHPo6Xc.js} +1 -1
  233. package/server/rebuild-stack-CFvcBHsS.js +4 -0
  234. package/server/{rebuild-stack-JUm0jqYP.js → rebuild-stack-lwtsW0GO.js} +26 -35
  235. package/server/{reconstruct-cache-wU79aCee.js → reconstruct-cache-C3Ui7ojV.js} +6 -6
  236. package/server/record-CN0pj4_5.js +3 -0
  237. package/server/{record-update-D3N6WMFR.js → record-update-bLJxAXH4.js} +1 -1
  238. package/server/record-update-dE1Aw83j.js +310 -0
  239. package/server/{recovery-trip-DkzJSej9.js → recovery-trip-BvRWfUXM.js} +2 -2
  240. package/server/{release-engine-DMINVN8S.js → release-engine-Cx48W7z8.js} +5 -5
  241. package/server/{release-set-DeUSOEHy.js → release-set-CQfuN9-v.js} +3 -3
  242. package/server/{remote-b-c5bOce.js → remote-C_2hasl7.js} +3 -3
  243. package/server/{remote-Dr5kGYSZ.js → remote-ChgimyYa.js} +3 -3
  244. package/server/{remote-agents-Ct_WOyke.js → remote-agents-By1ige5O.js} +6 -6
  245. package/server/{remote-agents-D6O_zETW.js → remote-agents-CA3Ihlxj.js} +1 -1
  246. package/server/{remote-completion-Dca3hAaa.js → remote-completion-fVe9e_3u.js} +12 -12
  247. package/server/resume-BFv1PGpA.js +3 -0
  248. package/server/{review-agent-CThvgK2r.js → review-agent-CIGOQYBD.js} +29 -25
  249. package/server/{review-agent-CCum8sGe.js → review-agent-DNboMyW4.js} +1 -1
  250. package/server/{review-artifacts-CXywD0F2.js → review-artifacts-nRDPuMxd.js} +5 -5
  251. package/server/{review-context-OYfKUprb.js → review-context-2uj-YQ8J.js} +70 -26
  252. package/server/review-status-btEYlaxA.js +3 -0
  253. package/server/{review-status-enrichment-crNAtIpL.js → review-status-enrichment-Dci-ZwEt.js} +3 -3
  254. package/server/{review-status-DFRjDFef.js → review-status-kZj_KyCk.js} +77 -28
  255. package/server/{review-status-sync-DpAMD_WO.js → review-status-sync-BTOpxtTC.js} +10 -5
  256. package/server/{review-status-sync-D60PJWNL.js → review-status-sync-DSDK3OMy.js} +1 -1
  257. package/server/{review-verdict-feedback-CpUZl5aE.js → review-verdict-feedback-CCjVA7Uk.js} +6 -6
  258. package/server/{review-verdict-feedback-JImjut0z.js → review-verdict-feedback-CTd4QMBu.js} +1 -1
  259. package/server/{rollup-CZ02qgxk.js → rollup-BKQC7jp4.js} +1 -1
  260. package/server/{rollup-SyuF09e4.js → rollup-FGsKki9R.js} +8 -8
  261. package/server/{scanner-Br0Z5S6R.js → scanner-CnqEZeDy.js} +45 -14
  262. package/server/{sequence-io-fxU0DlwW.js → sequence-io-D909zgeH.js} +4 -4
  263. package/server/{sequencer-agent-B5YC5XVP.js → sequencer-agent-CzkcK6P5.js} +5 -5
  264. package/server/server.js +2961 -919
  265. package/server/{service-Bagb90KZ.js → service-CLeAoU6G.js} +55 -54
  266. package/server/{session-fork-BqQxd-V6.js → session-fork-CHI1XvL9.js} +2 -2
  267. package/server/{session-history-XdS0JKp3.js → session-history-BT3IvqhC.js} +4 -4
  268. package/server/settings-66A6uvIA.js +2 -0
  269. package/server/{settings-BNbocWOg.js → settings-BTMvpNFU.js} +3 -3
  270. package/server/{settings-uLc6DEYI.js → settings-C0zgxOGf.js} +2 -2
  271. package/server/{shadow-engineering-D4X_s3fA.js → shadow-engineering-BJfgm-hX.js} +2 -2
  272. package/server/{shadow-state-C_NkP-sa.js → shadow-state-7a-524T8.js} +2 -2
  273. package/server/{shadow-state-CbvsN3qG.js → shadow-state-DnDyjujH.js} +1 -1
  274. package/server/{shadow-utils-CYMRPeRT.js → shadow-utils-Db3oroFG.js} +2 -2
  275. package/server/{ship-log-__QtAFXG.js → ship-log-D9MlVzYU.js} +1 -1
  276. package/server/{smart-compaction-jdMkG1vo.js → smart-compaction-CV2ukKND.js} +1 -1
  277. package/server/{smart-compaction-CLZOWin1.js → smart-compaction-KCYScAU1.js} +7 -7
  278. package/server/{spawn-planning-session-D5OXo8pT.js → spawn-planning-session-DKpdFyOC.js} +35 -27
  279. package/server/{spawn-planning-session-8D6mE033.js → spawn-planning-session-qUC2VWu3.js} +1 -1
  280. package/server/{specialist-completion-CqmduO92.js → specialist-completion-Ky9wCDpb.js} +1 -1
  281. package/server/{specialist-context-CJ-QjFR-.js → specialist-context-Bn3dCGS2.js} +5 -5
  282. package/server/{specialist-handoff-logger-Dnjlwt7g.js → specialist-handoff-logger-CMEwYxa2.js} +2 -2
  283. package/server/{specialist-logs-CQnKzuZs.js → specialist-logs-C5p8G7tx.js} +3 -3
  284. package/server/{specialists-Bg9v4z3F.js → specialists-CC4r-c2s.js} +1015 -460
  285. package/server/{specialists-D0gGXMZx.js → specialists-CShuVGWT.js} +1 -1
  286. package/server/specialists-DM6bWjsi.js +3 -0
  287. package/server/{specialists-CwZHb5cb.js → specialists-jiuuyVkp.js} +66 -74
  288. package/server/specs-C8Wsn2XO.js +3 -0
  289. package/server/{src-BMMoA_ba.js → src-CXmtj0im.js} +6 -6
  290. package/server/{src-Bqdtd6po.js → src-CdmnTM2m.js} +5 -5
  291. package/server/{src-k039WVYY.js → src-DtcUOZCq.js} +112 -18
  292. package/server/stack-health-Bn3o8FBX.js +3 -0
  293. package/server/{stack-health-C-ifC7b0.js → stack-health-DxSdG9cW.js} +63 -9
  294. package/server/{stale-task-claims-L7pJkQFL.js → stale-task-claims-KJKxxiiQ.js} +4 -4
  295. package/server/{staleness-_Tr-GwdA.js → staleness-CT34nwr9.js} +1 -1
  296. package/server/{staleness-BID1BKdr.js → staleness-DPm7ClwA.js} +15 -3
  297. package/server/{state-home-CONQvZR0.js → state-home-Cn_Qu8IX.js} +96 -44
  298. package/server/{state-migrate-BeBW0KXA.js → state-migrate-BGg2ZaOt.js} +12 -3
  299. package/server/{stuck-remediation-CKnIryGT.js → stuck-remediation-DYuPRYYw.js} +307 -26
  300. package/server/{stuck-remediation-CsGD5Ksb.js → stuck-remediation-s9_2qfi6.js} +1 -1
  301. package/server/{substrate-bug-weights-service-CpIZILj9.js → substrate-bug-weights-service-B-FwCs5V.js} +3 -3
  302. package/server/{summary-fork-bX6ax6X7.js → summary-fork-D1RAk9rJ.js} +78 -12
  303. package/server/{summary-fork-agEMsPSo.js → summary-fork-DpcxN9tf.js} +2 -2
  304. package/server/supervisor/{injection-budget-C1iPirFS.js → injection-budget-Csw5tqfJ.js} +2 -41
  305. package/server/supervisor/pty-supervisor.js +2 -1
  306. package/server/supervisor/pty-token-x-ea28Us.js +43 -0
  307. package/server/supervisor-FTJAIsAK.js +2 -0
  308. package/server/{supervisor-Ctt4eRYz.js → supervisor-wM4ooB5O.js} +3 -3
  309. package/server/{swarm-readiness-DdmJVX7y.js → swarm-readiness-DlP_UjHq.js} +4 -4
  310. package/server/{system-prerequisites-DSXBvffY.js → system-prerequisites-DUDj1YHf.js} +56 -29
  311. package/server/{teardown-workspace-DDCf5n-a.js → teardown-workspace-DeTTImn-.js} +15 -15
  312. package/server/{test-agent-queue-BJZ9Nfcc.js → test-agent-queue-MbxX5vqq.js} +7 -7
  313. package/server/{test-verdict-Cp5tljlJ.js → test-verdict-bWYBtqBg.js} +1 -1
  314. package/server/{test-verdict-D_-sXIz_.js → test-verdict-gscuksPv.js} +1 -1
  315. package/server/{tldr-daemon-B8_oT5gx.js → tldr-daemon-BYFkts95.js} +1 -1
  316. package/server/{tldr-daemon-BQFmmFp0.js → tldr-daemon-C-69c3OI.js} +2 -2
  317. package/server/tmux-B6z7h_vZ.js +3 -0
  318. package/server/{tmux-L5LgvGLp.js → tmux-R7N7y-Mh.js} +76 -44
  319. package/server/{token-BkQLy4yS.js → token-BK6t8BIT.js} +2 -2
  320. package/server/token-util-DuPuNriz.js +3 -0
  321. package/server/{token-util-DI8sGlmF.js → token-util-DxXu-vd1.js} +1 -1
  322. package/server/{tracker-config-DdT-nUAM.js → tracker-config-G6latr8C.js} +2 -2
  323. package/server/{tracker-utils-DV3h1FYG.js → tracker-utils-B4ylXZQK.js} +1 -1
  324. package/server/{tracker-utils-CawsPSS2.js → tracker-utils-DHv5pSDT.js} +2 -2
  325. package/server/{traefik-connect-C6mJckNs.js → traefik-connect-Df2uXPsQ.js} +1 -1
  326. package/server/{tunnel-IdK1iTHx.js → tunnel-CDVKJpRv.js} +3 -3
  327. package/server/{tunnel-BIFl98rc.js → tunnel-DGdUkGoZ.js} +1 -1
  328. package/server/{types-7-GnJn0t.js → types-5M0lupud.js} +1 -1
  329. package/server/{uat-train-0Ujk8GCv.js → uat-train-B05BWkp-.js} +1 -1
  330. package/server/{uat-train-j0cPeMSj.js → uat-train-DDSrSoV1.js} +28 -28
  331. package/server/validate-IfDGkaVR.js +177 -0
  332. package/server/{validation-DcAgXTQp.js → validation-CC9OPqJZ.js} +1 -1
  333. package/server/{validation-CabEISJT.js → validation-Dw1pzDzr.js} +259 -9
  334. package/server/{verification-artifact-Ck1tefmz.js → verification-artifact-B3itKTxu.js} +1 -1
  335. package/server/{verification-artifact-BuTA1QbL.js → verification-artifact-TVFSz_q1.js} +1 -1
  336. package/server/{verification-runner-DlJezzef.js → verification-runner-BW4HOKAz.js} +1 -1
  337. package/server/{verification-runner-FiuAZ-H2.js → verification-runner-CkgX6EtI.js} +174 -124
  338. package/server/{vtt-parser-BnRsYzcz.js → vtt-parser-DYPbKcIJ.js} +1 -1
  339. package/server/{work-agent-prompt-DLthEPAq.js → work-agent-prompt-Du8Vh2aJ.js} +13 -13
  340. package/server/workflows-BQu4RFQ-.js +2 -0
  341. package/server/{workflows-BZNNYkGC.js → workflows-mbQzh6mQ.js} +39 -77
  342. package/server/{workspace-3IC-UkAi.js → workspace--8tnhDI0.js} +1 -1
  343. package/server/{workspace-D9ppycdg.js → workspace-BPUws1-_.js} +3 -3
  344. package/server/{workspace-config-Bigl_-Lk.js → workspace-config-CIVWZOQr.js} +1 -1
  345. package/server/{workspace-manager-ClkCIWTe.js → workspace-manager-CBhNdzE4.js} +76 -18
  346. package/server/workspace-manager-CWT55qeI.js +3 -0
  347. package/server/{workspace-metadata-BE0efUv_.js → workspace-metadata-BzHnwwX4.js} +1 -1
  348. package/server/{workspace-metadata-tiSRIWJP.js → workspace-metadata-_WygnyoX.js} +2 -2
  349. package/server/{workspaces-CFPcL0vl.js → workspaces-Do_9J0LQ.js} +309 -124
  350. package/sync-sources/agents/pan-inspect-agent.md +1 -1
  351. package/sync-sources/agents/pan-merge-agent.md +1 -1
  352. package/sync-sources/agents/pan-planning-agent.md +4 -4
  353. package/sync-sources/agents/pan-work-agent.md +1 -1
  354. package/sync-sources/dev-skills/pan-commit/SKILL.md +1 -1
  355. package/sync-sources/dev-skills/test-specialist-workflow/SKILL.md +1 -1
  356. package/sync-sources/hooks/record-cost-event.js +369 -75
  357. package/sync-sources/hooks/session-start-hook +7 -0
  358. package/sync-sources/hooks/work-agent-stop-hook +1 -1
  359. package/sync-sources/rules/per-bead-durability.md +1 -1
  360. package/sync-sources/rules/prd-authoring.md +1 -1
  361. package/sync-sources/skills/feature-work/SKILL.md +1 -1
  362. package/sync-sources/skills/okf/README.md +11 -3
  363. package/sync-sources/skills/okf/SKILL.md +12 -1
  364. package/sync-sources/skills/okf/docs/USAGE.md +15 -0
  365. package/sync-sources/skills/okf/references/overdeck.md +28 -0
  366. package/sync-sources/skills/pan/SKILL.md +2 -2
  367. package/sync-sources/skills/pan-admin-config/SKILL.md +1 -0
  368. package/sync-sources/skills/pan-approve/SKILL.md +1 -1
  369. package/sync-sources/skills/pan-close/SKILL.md +1 -1
  370. package/sync-sources/skills/pan-doctor/SKILL.md +1 -1
  371. package/sync-sources/skills/pan-flywheel/SKILL.md +18 -1
  372. package/sync-sources/skills/pan-knowledge/SKILL.md +10 -0
  373. package/sync-sources/skills/pan-new-project/SKILL.md +9 -11
  374. package/sync-sources/skills/pan-orders/SKILL.md +33 -0
  375. package/sync-sources/skills/pan-oversee/SKILL.md +5 -5
  376. package/sync-sources/skills/pan-plan/SKILL.md +6 -6
  377. package/sync-sources/skills/pan-quickstart/SKILL.md +1 -1
  378. package/sync-sources/skills/pan-recap/SKILL.md +2 -2
  379. package/sync-sources/skills/pan-review/SKILL.md +1 -1
  380. package/sync-sources/skills/pan-start/SKILL.md +7 -3
  381. package/sync-sources/skills/pan-swarm/SKILL.md +1 -1
  382. package/sync-sources/skills/pan-sync/SKILL.md +1 -1
  383. package/sync-sources/skills/pan-task/SKILL.md +2 -2
  384. package/sync-sources/skills/pan-wipe/SKILL.md +2 -2
  385. package/sync-sources/skills/pipeline-list/SKILL.md +1 -1
  386. package/sync-sources/skills/pipeline-status/SKILL.md +2 -2
  387. package/sync-sources/skills/plan/SKILL.md +11 -11
  388. package/sync-sources/skills/write-vbrief/SKILL.md +7 -282
  389. package/sync-sources/skills/write-xbrief/SKILL.md +295 -0
  390. package/sync-sources/templates/claude-md/sections/warnings.md +1 -1
  391. package/sync-sources/templates/traefik/dynamic/overdeck.yml.template +10 -0
  392. package/server/agent-state-Co5Sy2Fw.js +0 -3
  393. package/server/agents-DyHKlq1I.js +0 -3
  394. package/server/cli-BRORS9qY.js +0 -3
  395. package/server/codex-DNyiQDKW.js +0 -3
  396. package/server/context-layers-15gDOk20.js +0 -165
  397. package/server/context-layers-DlQKkHH2.js +0 -4
  398. package/server/deacon-swarm-CV54eNmU.js +0 -2
  399. package/server/dist-j64RzSrQ.js +0 -3
  400. package/server/flywheel-6WHU4O7A.js +0 -207
  401. package/server/flywheel-COR0mbRI.js +0 -522
  402. package/server/flywheel-Ctr5uuvo.js +0 -2
  403. package/server/forge-B0_opi-V.js +0 -2
  404. package/server/git-utils-CsKGnzFA.js +0 -3
  405. package/server/hume-BmhvfVbV.js +0 -3
  406. package/server/inspect-agent-Dq0z1k3H.js +0 -2
  407. package/server/layers-Cp1To4L8.js +0 -93
  408. package/server/lifecycle-io-DmY2qwCn.js +0 -3
  409. package/server/merge-blockers-BYjeXrVN.js +0 -41
  410. package/server/merge-ops-DwWCkSgo.js +0 -2
  411. package/server/merge-set-DiISXcC-.js +0 -139
  412. package/server/projects-BKkwpH6q.js +0 -3
  413. package/server/public/assets/index-Bdc4V9ba.css +0 -1
  414. package/server/public/assets/mermaid-GHXKKRXX-B5v_r7cI.js +0 -1
  415. package/server/rally-OSJXdiHK.js +0 -3
  416. package/server/rebuild-stack-CKjJAI8L.js +0 -3
  417. package/server/record-rwK-nKv_.js +0 -3
  418. package/server/record-update-Crz74r-6.js +0 -168
  419. package/server/resume-wZZsWtzz.js +0 -3
  420. package/server/review-status-Bnh-rdkY.js +0 -3
  421. package/server/settings-BlUsVaUc.js +0 -2
  422. package/server/specialists-Dqe6_HE5.js +0 -3
  423. package/server/specs-BhOKBzqk.js +0 -3
  424. package/server/stack-health-Bd06frFn.js +0 -3
  425. package/server/supervisor-COVHrBTg.js +0 -2
  426. package/server/tmux-BAvtac_u.js +0 -3
  427. package/server/token-util-BArZLN6w.js +0 -3
  428. package/server/workflows-C4mR0Reb.js +0 -2
  429. package/server/workspace-manager-B1WOfKvB.js +0 -3
@@ -1,2 +1,2 @@
1
- import { i as validateSpecialistAutoCompleteMetadata, n as _serverManagedMerges, r as firePostMergeLifecycle, t as specialistsRouteLayer } from "./specialists-Bg9v4z3F.js";
1
+ import { i as validateSpecialistAutoCompleteMetadata, n as _serverManagedMerges, r as firePostMergeLifecycle, t as specialistsRouteLayer } from "./specialists-CC4r-c2s.js";
2
2
  export { _serverManagedMerges, specialistsRouteLayer as default, specialistsRouteLayer, firePostMergeLifecycle, validateSpecialistAutoCompleteMetadata };
@@ -0,0 +1,3 @@
1
+ import { $ as updateSpecialistMetadata, A as findSessionFile, B as getProjectSpecialistDir, C as listSpecialistsForProject, D as updateRunMetadata, E as updateProjectSpecialistMetadata, F as isInitialized, G as isProjectSpecialistActivelyRunning, H as getSpecialistMetadata, I as isRunning, J as parseReviewerSessionName, K as loadRegistry, L as REVIEWER_ROLES, M as getSpecialistState, N as getSpecialistStatus, O as updateRunStatus, P as initializeEnabledSpecialists, Q as saveRegistry, R as ensureProjectSpecialistDir, S as listProjectsWithSpecialists, T as updateContextTokens, U as getTmuxSessionName, V as getReviewerSessionName, W as initSpecialistsDirectory, X as pruneSpecialistRegistryEntriesForIssue, Y as parseSpecialistRegistryKey, Z as recordWake, _ as getEnabledSpecialists, a as sendFeedbackToAgent, b as incrementProjectRunCount, c as getGracePeriodState, d as signalSpecialistCompletion, et as buildSpecialistBaseCommand, f as startGracePeriod, g as getAllProjectSpecialistStatuses, h as enableSpecialist, i as getPendingFeedback, j as getAllSpecialistStatus, k as countContextTokens, 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 getProjectSpecialistMetadata, w as setCurrentRun, x as isEnabled, y as getRunMetadata, z as getAllSpecialists } from "./specialists-jiuuyVkp.js";
2
+ init_specialists();
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 };
@@ -1,9 +1,9 @@
1
1
  import { n as __esmMin, r as __exportAll } from "./rolldown-runtime-DNCzzKnI.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";
2
+ import { Vr as init_paths, hr as AGENTS_DIR, wr as OVERDECK_HOME } from "./config-yaml-DySPNmKN.js";
3
+ import { A as listPaneValues, D as killSession, H as sessionExists, w as init_tmux } from "./tmux-R7N7y-Mh.js";
4
+ import { a as readCavemanVariant, n as init_workspace } from "./workspace-BPUws1-_.js";
5
+ import { n as resolveHarness, t as init_harness_resolve } from "./harness-resolve-3lNZkyT4.js";
6
+ import { a as init_jsonl_parser, n as getAllSessionFilesSync, s as parseClaudeSessionSync } from "./jsonl-parser-BXSlHwEh.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-DyHKlq1I.js");
34
+ const { getAgentRuntimeBaseCommand } = await import("./agents-wi9NWzs2.js");
35
35
  const role = roleForSpecialistModel(specialistType).role;
36
36
  const harness = await resolveHarness({
37
37
  model,
@@ -39,15 +39,6 @@ async function buildSpecialistBaseCommand(specialistType, model, sessionName) {
39
39
  });
40
40
  return getAgentRuntimeBaseCommand(model, sessionName, specialistType.startsWith("pan-") ? specialistType : `pan-${specialistType.endsWith("-agent") ? specialistType.slice(0, -6) : specialistType}-agent`, harness);
41
41
  }
42
- function readRecordedClaudeSessionId(tmuxSession) {
43
- const sessionFile = join(AGENTS_DIR, tmuxSession, "session.id");
44
- if (!existsSync(sessionFile)) return null;
45
- try {
46
- return readFileSync(sessionFile, "utf-8").trim() || null;
47
- } catch {
48
- return null;
49
- }
50
- }
51
42
  /**
52
43
  * Build shell export lines for caveman compression for specialist agents.
53
44
  *
@@ -75,10 +66,8 @@ async function buildSpecialistCavemanExports(specialistType, workspacePath, conf
75
66
  return `export CAVEMAN_DEFAULT_MODE="${mode}"\nexport OVERDECK_CAVEMAN_VARIANT="${variant}"\n`;
76
67
  }
77
68
  var init_specialists_spawn = __esmMin((() => {
78
- init_paths();
79
69
  init_workspace();
80
70
  init_harness_resolve();
81
- promisify(exec);
82
71
  `${[
83
72
  "ANTHROPIC_BASE_URL",
84
73
  "ANTHROPIC_AUTH_TOKEN",
@@ -95,6 +84,22 @@ var init_specialists_spawn = __esmMin((() => {
95
84
  *
96
85
  * Manages specialist metadata, registry persistence, and session naming.
97
86
  */
87
+ /**
88
+ * Get the directory for a project's specialist
89
+ */
90
+ function getProjectSpecialistDir(projectKey, specialistType) {
91
+ return join(SPECIALISTS_DIR, projectKey, specialistType);
92
+ }
93
+ /**
94
+ * Ensure per-project specialist directory structure exists
95
+ */
96
+ function ensureProjectSpecialistDir(projectKey, specialistType) {
97
+ const specialistDir = getProjectSpecialistDir(projectKey, specialistType);
98
+ const runsDir = join(specialistDir, "runs");
99
+ const contextDir = join(specialistDir, "context");
100
+ if (!existsSync(runsDir)) mkdirSync(runsDir, { recursive: true });
101
+ if (!existsSync(contextDir)) mkdirSync(contextDir, { recursive: true });
102
+ }
98
103
  function isProjectSpecialistActivelyRunning(runtimeState, fallbackRunning = false) {
99
104
  if (runtimeState?.state === "active") return true;
100
105
  if (runtimeState?.state === "idle" || runtimeState?.state === "suspended" || runtimeState?.state === "stopped" || runtimeState?.state === "waiting-on-human") return false;
@@ -205,27 +210,6 @@ function getAllSpecialists() {
205
210
  return loadRegistry().specialists ?? [];
206
211
  }
207
212
  /**
208
- * Check if a legacy specialist has a recorded Claude session.
209
- *
210
- * @param name - Specialist name
211
- * @returns True if the specialist has a recorded session id in its agent directory
212
- */
213
- function isInitialized(name) {
214
- return readRecordedClaudeSessionId(getTmuxSessionName(name)) !== null;
215
- }
216
- /**
217
- * Get the state of a specialist from recorded agent metadata.
218
- *
219
- * Note: This only checks whether a recorded Claude session exists, not if it's actually running.
220
- * Use getSpecialistStatus() for runtime state.
221
- *
222
- * @param name - Specialist name
223
- * @returns Specialist state
224
- */
225
- function getSpecialistState(name) {
226
- return isInitialized(name) ? "sleeping" : "uninitialized";
227
- }
228
- /**
229
213
  * Get tmux session name for a specialist
230
214
  *
231
215
  * @param name - Specialist name
@@ -333,7 +317,6 @@ function recordWake(name, sessionId) {
333
317
  var SPECIALISTS_DIR, REGISTRY_FILE, DEFAULT_SPECIALISTS, REVIEWER_ROLES;
334
318
  var init_specialists_registry = __esmMin((() => {
335
319
  init_paths();
336
- init_specialists_spawn();
337
320
  SPECIALISTS_DIR = join(OVERDECK_HOME, "specialists");
338
321
  REGISTRY_FILE = join(SPECIALISTS_DIR, "registry.json");
339
322
  DEFAULT_SPECIALISTS = [];
@@ -352,6 +335,36 @@ var init_specialists_registry = __esmMin((() => {
352
335
  *
353
336
  * Resolves specialist session state, token usage, and startup status.
354
337
  */
338
+ function readRecordedClaudeSessionId(tmuxSession) {
339
+ const sessionFile = join(AGENTS_DIR, tmuxSession, "session.id");
340
+ if (!existsSync(sessionFile)) return null;
341
+ try {
342
+ return readFileSync(sessionFile, "utf-8").trim() || null;
343
+ } catch {
344
+ return null;
345
+ }
346
+ }
347
+ /**
348
+ * Check if a legacy specialist has a recorded Claude session.
349
+ *
350
+ * @param name - Specialist name
351
+ * @returns True if the specialist has a recorded session id in its agent directory
352
+ */
353
+ function isInitialized(name) {
354
+ return readRecordedClaudeSessionId(getTmuxSessionName(name)) !== null;
355
+ }
356
+ /**
357
+ * Get the state of a specialist from recorded agent metadata.
358
+ *
359
+ * Note: This only checks whether a recorded Claude session exists, not if it's actually running.
360
+ * Use getSpecialistStatus() for runtime state.
361
+ *
362
+ * @param name - Specialist name
363
+ * @returns Specialist state
364
+ */
365
+ function getSpecialistState(name) {
366
+ return isInitialized(name) ? "sleeping" : "uninitialized";
367
+ }
355
368
  /**
356
369
  * Find JSONL file for a session ID
357
370
  *
@@ -424,7 +437,7 @@ async function getSpecialistStatus(name, projectKey) {
424
437
  const sessionId = readRecordedClaudeSessionId(getTmuxSessionName(name, projectKey));
425
438
  const running = await isRunning(name, projectKey);
426
439
  const contextTokens = countContextTokens(name);
427
- const { getAgentRuntimeStateSync } = await import("./agents-DyHKlq1I.js");
440
+ const { getAgentRuntimeStateSync } = await import("./agents-wi9NWzs2.js");
428
441
  const runtimeState = getAgentRuntimeStateSync(getTmuxSessionName(name, projectKey));
429
442
  let state;
430
443
  if (runtimeState) switch (runtimeState.state) {
@@ -482,41 +495,20 @@ async function initializeEnabledSpecialists() {
482
495
  }
483
496
  var execAsync;
484
497
  var init_specialists_status = __esmMin((() => {
498
+ init_paths();
485
499
  init_jsonl_parser();
486
500
  init_tmux();
487
501
  init_specialists_registry();
488
- init_specialists_spawn();
489
502
  execAsync = promisify(exec);
490
503
  }));
491
504
  //#endregion
492
505
  //#region ../../lib/cloister/specialists-project-meta.ts
493
506
  /**
494
- * Cloister Specialist Project Metadata
495
- *
496
- * Manages per-project specialist run metadata and configuration.
497
- */
498
- /**
499
507
  * ===========================================================================
500
508
  * Per-Project Specialist Functions
501
509
  * ===========================================================================
502
510
  */
503
511
  /**
504
- * Get the directory for a project's specialist
505
- */
506
- function getProjectSpecialistDir(projectKey, specialistType) {
507
- return join(SPECIALISTS_DIR, projectKey, specialistType);
508
- }
509
- /**
510
- * Ensure per-project specialist directory structure exists
511
- */
512
- function ensureProjectSpecialistDir(projectKey, specialistType) {
513
- const specialistDir = getProjectSpecialistDir(projectKey, specialistType);
514
- const runsDir = join(specialistDir, "runs");
515
- const contextDir = join(specialistDir, "context");
516
- if (!existsSync(runsDir)) mkdirSync(runsDir, { recursive: true });
517
- if (!existsSync(contextDir)) mkdirSync(contextDir, { recursive: true });
518
- }
519
- /**
520
512
  * Get metadata for a specific (projectKey, registryKey) pair.
521
513
  * registryKey is either a plain specialistType (legacy) or a compound key from makeSpecialistRegistryKey().
522
514
  */
@@ -637,7 +629,7 @@ function listSpecialistsForProject(projectKey) {
637
629
  */
638
630
  async function getAllProjectSpecialistStatuses() {
639
631
  const registry = loadRegistry();
640
- const { getAgentRuntimeStateSync } = await import("./agents-DyHKlq1I.js");
632
+ const { getAgentRuntimeStateSync } = await import("./agents-wi9NWzs2.js");
641
633
  const results = [];
642
634
  for (const [projectKey, specialists] of Object.entries(registry.projects)) for (const [registryKey, metadata] of Object.entries(specialists)) {
643
635
  const { specialistType, issueId, role } = parseSpecialistRegistryKey(registryKey);
@@ -834,7 +826,7 @@ async function signalSpecialistCompletion(projectKey, specialistType, result, is
834
826
  const resolvedTmuxSession = metadata.tmuxSession ?? getTmuxSessionName(specialistType, projectKey, issueId);
835
827
  updateRunStatus(projectKey, registryKey, result.status);
836
828
  if (metadata.currentRun) try {
837
- const { finalizeRunLogSync } = await import("./specialist-logs-CQnKzuZs.js");
829
+ const { finalizeRunLogSync } = await import("./specialist-logs-C5p8G7tx.js");
838
830
  finalizeRunLogSync(projectKey, specialistType, metadata.currentRun, {
839
831
  status: result.status,
840
832
  notes: result.notes
@@ -844,7 +836,7 @@ async function signalSpecialistCompletion(projectKey, specialistType, result, is
844
836
  }
845
837
  setCurrentRun(projectKey, registryKey, null);
846
838
  updateRunMetadata(projectKey, registryKey, { currentActivity: null });
847
- import("./agents-DyHKlq1I.js").then(({ saveAgentRuntimeState }) => {
839
+ import("./agents-wi9NWzs2.js").then(({ saveAgentRuntimeState }) => {
848
840
  saveAgentRuntimeState(resolvedTmuxSession, {
849
841
  state: "idle",
850
842
  lastActivity: (/* @__PURE__ */ new Date()).toISOString(),
@@ -875,7 +867,7 @@ async function terminateSpecialist(projectKey, specialistType, issueId) {
875
867
  console.error(`[specialist] Failed to kill tmux session ${tmuxSession}:`, error);
876
868
  }
877
869
  if (metadata.currentRun) {
878
- const { finalizeRunLogSync } = await import("./specialist-logs-CQnKzuZs.js");
870
+ const { finalizeRunLogSync } = await import("./specialist-logs-C5p8G7tx.js");
879
871
  try {
880
872
  finalizeRunLogSync(projectKey, specialistType, metadata.currentRun, {
881
873
  status: metadata.lastRunStatus || "incomplete",
@@ -889,12 +881,12 @@ async function terminateSpecialist(projectKey, specialistType, issueId) {
889
881
  updateRunMetadata(projectKey, registryKey, { currentActivity: null });
890
882
  const key = `${projectKey}-${specialistType}`;
891
883
  gracePeriodStates.delete(key);
892
- const { saveAgentRuntimeState } = await import("./agents-DyHKlq1I.js");
884
+ const { saveAgentRuntimeState } = await import("./agents-wi9NWzs2.js");
893
885
  saveAgentRuntimeState(tmuxSession, {
894
886
  state: "suspended",
895
887
  lastActivity: (/* @__PURE__ */ new Date()).toISOString()
896
888
  });
897
- const { scheduleDigestGeneration } = await import("./specialist-context-CJ-QjFR-.js");
889
+ const { scheduleDigestGeneration } = await import("./specialist-context-Bn3dCGS2.js");
898
890
  scheduleDigestGeneration(projectKey, specialistType);
899
891
  scheduleLogCleanup(projectKey, specialistType);
900
892
  }
@@ -907,8 +899,8 @@ async function terminateSpecialist(projectKey, specialistType, issueId) {
907
899
  function scheduleLogCleanup(projectKey, specialistType) {
908
900
  Promise.resolve().then(async () => {
909
901
  try {
910
- const { cleanupOldLogsSync } = await import("./specialist-logs-CQnKzuZs.js");
911
- const { getSpecialistRetention } = await import("./projects-BKkwpH6q.js");
902
+ const { cleanupOldLogsSync } = await import("./specialist-logs-C5p8G7tx.js");
903
+ const { getSpecialistRetention } = await import("./projects-vjjcmiN8.js");
912
904
  const retention = getSpecialistRetention(projectKey);
913
905
  const deleted = cleanupOldLogsSync(projectKey, specialistType, {
914
906
  maxDays: retention.max_days,
@@ -958,7 +950,7 @@ async function sendFeedbackToAgent(feedback) {
958
950
  }
959
951
  const agentSession = `agent-${toIssueId.toLowerCase()}`;
960
952
  const feedbackMessage = formatFeedbackForAgent(fullFeedback);
961
- const { writeFeedbackFile } = await import("./feedback-writer-Bx5z11mF.js");
953
+ const { writeFeedbackFile } = await import("./feedback-writer-D3a22RCd.js");
962
954
  const specialist = {
963
955
  "review-agent": "review-agent",
964
956
  "test-agent": "test-agent",
@@ -977,7 +969,7 @@ async function sendFeedbackToAgent(feedback) {
977
969
  return false;
978
970
  }
979
971
  try {
980
- const { messageAgent } = await import("./agents-DyHKlq1I.js");
972
+ const { messageAgent } = await import("./agents-wi9NWzs2.js");
981
973
  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
974
  console.log(`[specialist] Sent feedback from ${fromSpecialist} to ${agentSession} (file: ${fileResult.filePath})`);
983
975
  return true;
@@ -1135,6 +1127,6 @@ var init_specialists = __esmMin((() => {
1135
1127
  init_specialists_feedback();
1136
1128
  }));
1137
1129
  //#endregion
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 };
1130
+ export { updateSpecialistMetadata as $, findSessionFile as A, getProjectSpecialistDir as B, listSpecialistsForProject as C, updateRunMetadata as D, updateProjectSpecialistMetadata as E, isInitialized as F, isProjectSpecialistActivelyRunning as G, getSpecialistMetadata as H, isRunning as I, parseReviewerSessionName as J, loadRegistry as K, REVIEWER_ROLES as L, getSpecialistState as M, getSpecialistStatus as N, updateRunStatus as O, initializeEnabledSpecialists as P, saveRegistry as Q, ensureProjectSpecialistDir as R, listProjectsWithSpecialists as S, updateContextTokens as T, getTmuxSessionName as U, getReviewerSessionName as V, initSpecialistsDirectory as W, pruneSpecialistRegistryEntriesForIssue as X, parseSpecialistRegistryKey as Y, recordWake as Z, getEnabledSpecialists as _, sendFeedbackToAgent as a, incrementProjectRunCount as b, getGracePeriodState as c, signalSpecialistCompletion as d, buildSpecialistBaseCommand as et, startGracePeriod as f, getAllProjectSpecialistStatuses as g, enableSpecialist as h, getPendingFeedback as i, getAllSpecialistStatus as j, countContextTokens 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, getProjectSpecialistMetadata as v, setCurrentRun as w, isEnabled as x, getRunMetadata as y, getAllSpecialists as z };
1139
1131
 
1140
- //# sourceMappingURL=specialists-CwZHb5cb.js.map
1132
+ //# sourceMappingURL=specialists-jiuuyVkp.js.map
@@ -0,0 +1,3 @@
1
+ import { C as init_specs, x as findSpecByIssue } from "./io-C9kF1wtJ.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-dTeNdq7X.js";
3
- import { n as require_dist$1, r as require_src$14, t as require_dist$2 } from "./dist-D-Ed5yVw.js";
2
+ import { r as init_esm_shims, t as __dirname } from "./esm-shims-OSHAYaS1.js";
3
+ import { n as require_dist$1, r as require_src$14, t as require_dist$2 } from "./dist-Cb_0uvpS.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-j64RzSrQ.js").then((m) => /* @__PURE__ */ __toESM(m.default))).HttpsProxyAgent;
1201
+ this.#proxyAgent ||= (await import("./dist-Bzy0y69j.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-Bqdtd6po.js")).default;
1206
+ this.#fetch ||= hasWindow ? window.fetch : (await import("./src-CdmnTM2m.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-Bqdtd6po.js").then(({ default: fetch }) => fetch(...args));
10604
+ const fetch = (...args) => import("./src-CdmnTM2m.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-BMMoA_ba.js.map
133659
+ //# sourceMappingURL=src-CXmtj0im.js.map
@@ -1,13 +1,13 @@
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-DpwQ-sc3.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-kNxT0bZC.js";
3
3
  import { deprecate, promisify, types } from "node:util";
4
4
  import { format } from "node:url";
5
5
  import http from "node:http";
6
+ import https from "node:https";
7
+ import { isIP } from "node:net";
6
8
  import { Buffer as Buffer$1 } from "node:buffer";
7
9
  import Stream, { PassThrough, pipeline } from "node:stream";
8
- import { isIP } from "node:net";
9
10
  import zlib from "node:zlib";
10
- import https from "node:https";
11
11
  //#region ../../../node_modules/.bun/data-uri-to-buffer@4.0.1/node_modules/data-uri-to-buffer/dist/index.js
12
12
  /**
13
13
  * Returns a `Buffer` instance from the given data URI `uri`.
@@ -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-tdOQDJ3o.js");
212
+ const { toFormData } = await import("./multipart-parser-duPAfSBw.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-Bqdtd6po.js.map
1179
+ //# sourceMappingURL=src-CdmnTM2m.js.map
@@ -1374,7 +1374,7 @@ var init_events = __esmMin((() => {
1374
1374
  payload: Schema.Struct({
1375
1375
  agentId: AgentId,
1376
1376
  model: Schema.String,
1377
- claudeSessionId: Schema.optional(Schema.String),
1377
+ claudeSessionId: Schema.optional(Schema.NullOr(Schema.String)),
1378
1378
  sessionModel: Schema.optional(Schema.String),
1379
1379
  sessionHarness: Schema.optional(Schema.String)
1380
1380
  })
@@ -2301,7 +2301,7 @@ var init_editor = __esmMin((() => {
2301
2301
  }));
2302
2302
  //#endregion
2303
2303
  //#region ../../../packages/contracts/src/flywheel.ts
2304
- var FlywheelRunId, FlywheelHttpUrl, FlywheelHarness, FlywheelEffort, FlywheelOrchestrator, FlywheelHeadline, FlywheelPipelineVerb, FlywheelPipelineStatus, FlywheelPipelineItem, FlywheelSubstrateBugStatus, FlywheelSubstrateBug, FlywheelAgentStatus, FlywheelAgent, FlywheelParkedItem, FlywheelSuggestionAction, FlywheelSuggestionPriority, FlywheelSuggestion, FlywheelSystemStatus, FlywheelStatus;
2304
+ var FlywheelRunId, FlywheelHttpUrl, FlywheelHarness, FlywheelEffort, FlywheelOrchestrator, FlywheelHeadline, FlywheelPipelineVerb, FlywheelPipelineStatus, FlywheelPipelineItem, FlywheelSubstrateBugStatus, FlywheelSubstrateBug, FlywheelAgentStatus, FlywheelAgent, FlywheelParkedItem, FlywheelSuggestionAction, FlywheelSuggestionPriority, FlywheelSuggestion, FlywheelSystemStatus, FlywheelOrders, FlywheelStatus;
2305
2305
  var init_flywheel = __esmMin((() => {
2306
2306
  FlywheelRunId = Schema.String.check(Schema.isPattern(/^RUN-\d+$/));
2307
2307
  FlywheelHttpUrl = Schema.String.check(Schema.isPattern(/^https?:\/\/\S+$/i));
@@ -2309,7 +2309,8 @@ var init_flywheel = __esmMin((() => {
2309
2309
  "claude-code",
2310
2310
  "pi",
2311
2311
  "ohmypi",
2312
- "codex"
2312
+ "codex",
2313
+ "acp"
2313
2314
  ]);
2314
2315
  FlywheelEffort = Schema.Literals([
2315
2316
  "low",
@@ -2432,6 +2433,15 @@ var init_flywheel = __esmMin((() => {
2432
2433
  agentsActive: Schema.Number,
2433
2434
  agentsCap: Schema.Number
2434
2435
  });
2436
+ FlywheelOrders = Schema.Struct({
2437
+ bookId: Schema.String,
2438
+ bookName: Schema.String,
2439
+ landed: Schema.Number,
2440
+ total: Schema.Number,
2441
+ laneAInFlight: Schema.Array(Schema.String),
2442
+ laneBInFlight: Schema.optional(Schema.String),
2443
+ drained: Schema.Boolean
2444
+ });
2435
2445
  FlywheelStatus = Schema.Struct({
2436
2446
  runId: FlywheelRunId,
2437
2447
  startedAt: Schema.String,
@@ -2445,6 +2455,7 @@ var init_flywheel = __esmMin((() => {
2445
2455
  suggestions: Schema.Array(FlywheelSuggestion).pipe(Schema.withDecodingDefaultKey(Effect.succeed([]))),
2446
2456
  system: FlywheelSystemStatus,
2447
2457
  openQuestions: Schema.Array(Schema.String),
2458
+ orders: Schema.optional(FlywheelOrders),
2448
2459
  ticks: Schema.Number,
2449
2460
  lastTickAt: Schema.String
2450
2461
  });
@@ -3790,28 +3801,26 @@ function applyEvent(state, event) {
3790
3801
  case "agent.model_set": {
3791
3802
  const { agentId, model, claudeSessionId, sessionModel, sessionHarness } = event.payload;
3792
3803
  const prev = state.agentRuntimeById[agentId] ?? defaultRuntimeSnapshot(agentId, event.timestamp, event.sequence);
3804
+ const nextSessionId = claudeSessionId === null ? void 0 : claudeSessionId ?? prev.claudeSessionId;
3793
3805
  const next = {
3794
3806
  ...prev,
3795
3807
  model,
3796
- claudeSessionId: claudeSessionId ?? prev.claudeSessionId,
3808
+ claudeSessionId: nextSessionId,
3797
3809
  sessionModel: sessionModel ?? prev.sessionModel,
3798
3810
  sessionHarness: sessionHarness ?? prev.sessionHarness,
3799
3811
  lastActivity: event.timestamp,
3800
3812
  updatedAtSequence: event.sequence
3801
3813
  };
3802
3814
  let nextAgentIdBySessionId = state.agentIdBySessionId;
3803
- if (claudeSessionId && claudeSessionId !== prev.claudeSessionId) {
3804
- nextAgentIdBySessionId = {
3805
- ...state.agentIdBySessionId,
3806
- [claudeSessionId]: agentId
3807
- };
3815
+ if (claudeSessionId !== void 0 && nextSessionId !== prev.claudeSessionId) {
3808
3816
  if (prev.claudeSessionId && state.agentIdBySessionId[prev.claudeSessionId] === agentId) {
3809
- const { [prev.claudeSessionId]: _removed, ...rest } = state.agentIdBySessionId;
3810
- nextAgentIdBySessionId = {
3811
- ...rest,
3812
- [claudeSessionId]: agentId
3813
- };
3817
+ const { [prev.claudeSessionId]: _removed, ...rest } = nextAgentIdBySessionId;
3818
+ nextAgentIdBySessionId = rest;
3814
3819
  }
3820
+ if (nextSessionId) nextAgentIdBySessionId = {
3821
+ ...nextAgentIdBySessionId,
3822
+ [nextSessionId]: agentId
3823
+ };
3815
3824
  }
3816
3825
  return {
3817
3826
  ...state,
@@ -4252,6 +4261,55 @@ var init_flywheel_stats = __esmMin((() => {
4252
4261
  });
4253
4262
  Schema.decodeUnknownSync(FlywheelStats);
4254
4263
  Schema.encodeSync(FlywheelStats);
4264
+ }));
4265
+ //#endregion
4266
+ //#region ../../../packages/contracts/src/orders.ts
4267
+ var OrderBookLane, OrderBookStatus, OrderBookPosture, OrderBookItem, OrderBookSettings, OrderBook, OrderBookIndexEntry;
4268
+ var init_orders = __esmMin((() => {
4269
+ OrderBookLane = Schema.Literals(["A", "B"]);
4270
+ OrderBookStatus = Schema.Literals([
4271
+ "draft",
4272
+ "ready",
4273
+ "running",
4274
+ "drained",
4275
+ "complete"
4276
+ ]);
4277
+ OrderBookPosture = Schema.Literals(["open", "drain"]);
4278
+ OrderBookItem = Schema.Struct({
4279
+ issue: Schema.String,
4280
+ lane: OrderBookLane,
4281
+ order: Schema.Number,
4282
+ prereqs: Schema.Array(Schema.String),
4283
+ reVerify: Schema.Boolean,
4284
+ planAtPickup: Schema.optional(Schema.Boolean),
4285
+ addedAt: Schema.String,
4286
+ addedBy: Schema.String
4287
+ });
4288
+ OrderBookSettings = Schema.Struct({
4289
+ laneAConcurrency: Schema.Number,
4290
+ briefOverlay: Schema.optional(Schema.String),
4291
+ posture: OrderBookPosture,
4292
+ postureSetAt: Schema.optional(Schema.String),
4293
+ postureSetBy: Schema.optional(Schema.String),
4294
+ postureReason: Schema.optional(Schema.String)
4295
+ });
4296
+ OrderBook = Schema.Struct({
4297
+ id: Schema.String,
4298
+ name: Schema.String,
4299
+ status: OrderBookStatus,
4300
+ settings: OrderBookSettings,
4301
+ items: Schema.Array(OrderBookItem),
4302
+ runId: Schema.optional(Schema.String),
4303
+ createdAt: Schema.String,
4304
+ updatedAt: Schema.String
4305
+ });
4306
+ OrderBookIndexEntry = Schema.Struct({
4307
+ id: Schema.String,
4308
+ name: Schema.String,
4309
+ status: OrderBookStatus,
4310
+ runId: Schema.optional(Schema.String),
4311
+ updatedAt: Schema.String
4312
+ });
4255
4313
  })), CONTEXT_LAYER_KINDS, CONTEXT_PREVIEW_HARNESSES, ContextPreviewHarness, ContextProjectSummary, ContextWorkspaceSummary, ContextLayerBase, GlobalContextLayerRecord, ProjectContextLayerRecord, WorkspaceContextLayerRecord, ContextEditableLayerRecord, GlobalContextLayerTarget, ProjectContextLayerTarget, WorkspaceContextLayerTarget, ContextLayerTarget, ContextLayerDraft, ContextSyncTarget, ContextPreviewRequest, ContextHarnessPreviews, ContextPreviewDiagnostic, ContextLayerSaveRequest;
4256
4314
  var init_context_layers = __esmMin((() => {
4257
4315
  CONTEXT_LAYER_KINDS = [
@@ -4262,7 +4320,8 @@ var init_context_layers = __esmMin((() => {
4262
4320
  CONTEXT_PREVIEW_HARNESSES = [
4263
4321
  "claude-code",
4264
4322
  "ohmypi",
4265
- "codex"
4323
+ "codex",
4324
+ "acp"
4266
4325
  ];
4267
4326
  Schema.Literals(CONTEXT_LAYER_KINDS);
4268
4327
  ContextPreviewHarness = Schema.Literals(CONTEXT_PREVIEW_HARNESSES);
@@ -4362,6 +4421,7 @@ var init_context_layers = __esmMin((() => {
4362
4421
  "claude-code": Schema.String,
4363
4422
  ohmypi: Schema.String,
4364
4423
  codex: Schema.String,
4424
+ acp: Schema.String,
4365
4425
  fullPrompt: Schema.String
4366
4426
  });
4367
4427
  ContextPreviewDiagnostic = Schema.Struct({
@@ -4416,6 +4476,7 @@ var init_artifacts = __esmMin((() => {
4416
4476
  "pi",
4417
4477
  "ohmypi",
4418
4478
  "codex",
4479
+ "acp",
4419
4480
  "user"
4420
4481
  ]);
4421
4482
  ArtifactLifecycleState = Schema.Literals([
@@ -4544,9 +4605,13 @@ var init_feature_registry = __esmMin((() => {
4544
4605
  function getHarnessBehavior(harness) {
4545
4606
  if (harness === "ohmypi" || harness === "pi") return OHMYPI_BEHAVIOR;
4546
4607
  if (harness === "codex") return CODEX_BEHAVIOR;
4608
+ if (harness === "acp") return ACP_BEHAVIOR;
4547
4609
  return CLAUDE_CODE_BEHAVIOR;
4548
4610
  }
4549
- var CLAUDE_CODE_BEHAVIOR, OHMYPI_BEHAVIOR, CODEX_BEHAVIOR;
4611
+ function getRuntimeBehavior(runtime) {
4612
+ return BEHAVIORS[runtime];
4613
+ }
4614
+ var CLAUDE_CODE_BEHAVIOR, OHMYPI_BEHAVIOR, CODEX_BEHAVIOR, ACP_BEHAVIOR, BEHAVIORS;
4550
4615
  var init_harness_behavior = __esmMin((() => {
4551
4616
  CLAUDE_CODE_BEHAVIOR = {
4552
4617
  displayName: "Claude Code",
@@ -4611,6 +4676,33 @@ var init_harness_behavior = __esmMin((() => {
4611
4676
  workAgentMode: "codex-work-tui",
4612
4677
  readyTimeoutSeconds: 30
4613
4678
  };
4679
+ ACP_BEHAVIOR = {
4680
+ displayName: "ACP",
4681
+ executableName: "acp-host",
4682
+ processNames: ["acp-host", "kimi"],
4683
+ launchCommandKind: "acp-host",
4684
+ deliveryKind: "acp-host-rpc",
4685
+ readinessKind: "acp-host-ready",
4686
+ transcriptKind: "acp-jsonl",
4687
+ sessionIdSource: "acp-session-id",
4688
+ contextLayerKind: "acp",
4689
+ feedKind: "acp",
4690
+ supportsPtySupervisor: false,
4691
+ supportsChannelsBridge: false,
4692
+ supportsConversationStreaming: true,
4693
+ supportsPatchProjection: false,
4694
+ usesRpcFifo: false,
4695
+ usesCodexHome: false,
4696
+ injectsPromptTimeMemory: false,
4697
+ workAgentMode: "acp-host",
4698
+ readyTimeoutSeconds: 30
4699
+ };
4700
+ BEHAVIORS = {
4701
+ "claude-code": CLAUDE_CODE_BEHAVIOR,
4702
+ ohmypi: OHMYPI_BEHAVIOR,
4703
+ codex: CODEX_BEHAVIOR,
4704
+ acp: ACP_BEHAVIOR
4705
+ };
4614
4706
  })), HygieneFinding, HygienePullRequest;
4615
4707
  var init_hygiene = __esmMin((() => {
4616
4708
  HygieneFinding = Schema.Struct({
@@ -4685,6 +4777,7 @@ var init_deploy = __esmMin((() => {
4685
4777
  behindTotal: Schema.NullOr(Schema.Number),
4686
4778
  behindBuildInputs: Schema.NullOr(Schema.Number),
4687
4779
  originMainLastCommitAt: Schema.NullOr(Schema.Number),
4780
+ originMainLastBuildInputCommitAt: Schema.NullOr(Schema.Number),
4688
4781
  computedAt: Schema.Number,
4689
4782
  reason: Schema.optional(Schema.String)
4690
4783
  });
@@ -4716,6 +4809,7 @@ var init_src = __esmMin((() => {
4716
4809
  init_editor();
4717
4810
  init_flywheel();
4718
4811
  init_flywheel_stats();
4812
+ init_orders();
4719
4813
  init_context_layers();
4720
4814
  init_artifacts();
4721
4815
  init_feature_registry();
@@ -4727,6 +4821,6 @@ var init_src = __esmMin((() => {
4727
4821
  init_issue_sort();
4728
4822
  }));
4729
4823
  //#endregion
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 };
4824
+ export { AgentSnapshot as A, EDITORS as C, MemoryObservation as D, projectLegacySystemHealthSummary as E, normalizeChannelReplyPayload as M, MemoryStatus as O, FlywheelStatus as S, SystemHealthSnapshot as T, trimTurnDiffSummaries as _, OHMYPI_BEHAVIOR as a, WS_METHODS as b, ContextLayerSaveRequest as c, OrderBookIndexEntry as d, FlywheelStats as f, isTerminalTurnDiffSummaryStatus as g, getMaxTurnDiffSummariesPerAgent as h, CODEX_BEHAVIOR as i, ReviewStatusSnapshot as j, AgentRuntimeSnapshot as k, ContextPreviewRequest as l, applyEvent as m, compareIssueIds as n, getHarnessBehavior as o, INITIAL_READ_MODEL_STATE as p, CLAUDE_CODE_BEHAVIOR as r, getRuntimeBehavior as s, init_src as t, OrderBook as u, PanRpcError as v, DomainEvent as w, FlywheelRunId as x, PanRpcGroup as y };
4731
4825
 
4732
- //# sourceMappingURL=src-k039WVYY.js.map
4826
+ //# sourceMappingURL=src-DtcUOZCq.js.map
@@ -0,0 +1,3 @@
1
+ import { a as getWorkspaceStackHealth, s as init_stack_health } from "./stack-health-DxSdG9cW.js";
2
+ init_stack_health();
3
+ export { getWorkspaceStackHealth };