@overdeck/desktop 0.45.12 → 0.45.13

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 (323) hide show
  1. package/drizzle/overdeck/0000_overdeck_init.sql +33 -0
  2. package/package.json +7 -2
  3. package/server/{acceptance-criteria-1LHgD9vg.js → acceptance-criteria-CfujPRrz.js} +2 -2
  4. package/server/{advancing-selfheal-BqsLWqEM.js → advancing-selfheal-Bn5QiLtn.js} +4 -4
  5. package/server/{agent-gc-CUb52n7s.js → agent-gc-Cl9Nm0Zu.js} +3 -3
  6. package/server/{agent-state-D-moNwhA.js → agent-state-C6Rm6FPR.js} +1 -1
  7. package/server/{agent-state-service-BzESvLOf.js → agent-state-service-JhFzYCP_.js} +5 -5
  8. package/server/{agent-state-service-BaZH7sXJ.js → agent-state-service-U8feBf8t.js} +1 -1
  9. package/server/{agents-C4kZ8a2r.js → agents-CxbuBjID.js} +1 -1
  10. package/server/{agents-B5LfpLPv.js → agents-DqQa4Dq_.js} +88 -64
  11. package/server/{archive-planning-oX1pj6nY.js → archive-planning-CPitEZo4.js} +3 -3
  12. package/server/{archive-planning-BbZe-8IK.js → archive-planning-DmpT1_14.js} +1 -1
  13. package/server/{artifact-index-jobs-DGr6bxev.js → artifact-index-jobs-sMnNtPhy.js} +2 -2
  14. package/server/{auto-commit-CGQlb4rV.js → auto-commit-wZ9X7Isd.js} +1 -1
  15. package/server/{backlog-auto-trigger-BlJHikOm.js → backlog-auto-trigger-Cf9C8fwD.js} +2 -2
  16. package/server/{bd-process-lock-i3CYMS-B.js → bd-process-lock-D1aJxeYv.js} +2 -2
  17. package/server/{beads-BNU-fb48.js → beads-CivpXztb.js} +1 -1
  18. package/server/{beads-DD7fYCl5.js → beads-DRoj6-e1.js} +4 -4
  19. package/server/{beads-query-e6oku4P5.js → beads-query-tOsAYP5h.js} +2 -2
  20. package/server/{behavior-CPf0pbOt.js → behavior-D3d2mVyD.js} +3 -3
  21. package/server/{briefing-freshness-B2FdLwIv.js → briefing-freshness-BL3Q6p7R.js} +4 -4
  22. package/server/{checkpoint-manager-JryW6MpM.js → checkpoint-manager-DCxjQvP_.js} +2 -2
  23. package/server/{checkpoint-manager-eFgaMMu4.js → checkpoint-manager-j5URlFY7.js} +1 -1
  24. package/server/checkpoint-worker.js +1 -1
  25. package/server/{checkpoints-qvOqvMuC.js → checkpoints-BoX1H2Hf.js} +2 -2
  26. package/server/{checkpoints-BK17oicz.js → checkpoints-Bu_M_Q9W.js} +1 -1
  27. package/server/claude-hooks-provision-D-jGXmu1.js +360 -0
  28. package/server/{claude-permissions-B6bWGh9d.js → claude-permissions-DxIjkOVl.js} +2 -2
  29. package/server/{claude-settings-overlay-BPdhTPjo.js → claude-settings-overlay-5b9X2S0C.js} +1 -1
  30. package/server/{claude-settings-overlay-CRyyKKXQ.js → claude-settings-overlay-BPDS6GfE.js} +2 -2
  31. package/server/cli-CqgiSAU8.js +3 -0
  32. package/server/{cli-B75AieAM.js → cli-s7bPWy-E.js} +9 -9
  33. package/server/{cliproxy-CCzwuSNe.js → cliproxy-BituqWtR.js} +2 -2
  34. package/server/{cliproxy-DOQf66G9.js → cliproxy-D3sHB0sI.js} +1 -1
  35. package/server/{close-issue-_X3MXJyG.js → close-issue-CrBE7voz.js} +4 -4
  36. package/server/{closed-issue-reaper-CLR7ClsO.js → closed-issue-reaper-BRQBc7Xa.js} +1 -1
  37. package/server/{closed-issue-reaper-BsUfBSjM.js → closed-issue-reaper-DX9mYUji.js} +9 -9
  38. package/server/{codex-CY-QRuU9.js → codex-Bi1ITSOo.js} +1 -1
  39. package/server/{codex-B4KEpX5V.js → codex-CO0HrK3j.js} +5 -5
  40. package/server/{compact-beads-cZds2MTr.js → compact-beads-CrA8-k10.js} +1 -1
  41. package/server/{compact-beads-uEDccC76.js → compact-beads-DUkCUFxA.js} +3 -3
  42. package/server/{config-DARrpYWA.js → config-B4_d7z7z.js} +1 -1
  43. package/server/{config-8sjaU6jZ.js → config-DsCxzjXK.js} +2 -2
  44. package/server/{config-yaml-ClpGgrf6.js → config-yaml-C_djSurJ.js} +2 -2
  45. package/server/{conflict-gate-Ds9_2yjd.js → conflict-gate-CpOn9KC-.js} +1 -1
  46. package/server/{conflict-gate-BtB_o-Vi.js → conflict-gate-D47Kl78u.js} +3 -3
  47. package/server/{context-layers-r2ywnQYA.js → context-layers-BNhUBTkf.js} +3 -3
  48. package/server/{context-layers-CRCk1QG7.js → context-layers-CHl3Nroz.js} +2 -2
  49. package/server/{control-settings-D1B3u6HP.js → control-settings-KyYNXZLv.js} +4 -4
  50. package/server/{conversation-compaction-D86Zo2Ci.js → conversation-compaction-D3aS5PnS.js} +8 -8
  51. package/server/{conversation-compaction-CZRVk4hg.js → conversation-compaction-D4Wed1BJ.js} +1 -1
  52. package/server/{conversation-service-CuTVU8dV.js → conversation-service-CFZIjs-M.js} +5 -5
  53. package/server/{conversation-service-CkL-6MuG.js → conversation-service-DcDB5usR.js} +1 -1
  54. package/server/{conversations-DfJKBDwB.js → conversations-BSOU5qnu.js} +4 -4
  55. package/server/{conversations-BmWEluPL.js → conversations-BbDPrz89.js} +1 -1
  56. package/server/{cost-DAPYN6iA.js → cost-BE_ulOrw.js} +3 -3
  57. package/server/{cost-CCnqa5xK.js → cost-CaiG63FG.js} +2 -2
  58. package/server/{cost-sync-BDL10Nwu.js → cost-sync-D6AX8jv-.js} +3 -3
  59. package/server/{dag-Dv2r5bVD.js → dag-BQFtXOuJ.js} +3 -3
  60. package/server/{dangerous-git-ops-Dcw7PbYo.js → dangerous-git-ops-04Ba-Qu3.js} +1 -1
  61. package/server/dashboard-db-worker.js +6 -6
  62. package/server/{deacon-CM0MxbS8.js → deacon-2EvA9Ci3.js} +97 -97
  63. package/server/{deacon-DYnZH7kC.js → deacon-Bz-6Wjmn.js} +3 -3
  64. package/server/deacon-swarm-B8pgK2a7.js +2 -0
  65. package/server/{deacon-swarm-BstYoz8Q.js → deacon-swarm-DYYOzHRH.js} +10 -10
  66. package/server/deacon.js +7 -7
  67. package/server/{devcontainer-renderer-CaYOG9JN.js → devcontainer-renderer-Dx0C7VWJ.js} +2 -2
  68. package/server/dist-BYSj075e.js +3 -0
  69. package/server/{dist-BIC8spJ0.js → dist-ya66D9ze.js} +1 -1
  70. package/server/{docker-DDI1shu3.js → docker-D2TbXDO6.js} +2 -2
  71. package/server/{ensure-devcontainer-CbSXvN9W.js → ensure-devcontainer-BIShzs3M.js} +1 -1
  72. package/server/{ensure-devcontainer-DCAg3ksz.js → ensure-devcontainer-BTiMfFp5.js} +3 -3
  73. package/server/{event-store-DU3HkZlN.js → event-store-C02Gprug.js} +1 -1
  74. package/server/{event-store-DCMqyI07.js → event-store-C71x6h0i.js} +3 -3
  75. package/server/{events-BfiosVAn.js → events-BFDuPV6n.js} +3 -3
  76. package/server/{events-DLRxpSuV.js → events-D2gP2-Yv.js} +1 -1
  77. package/server/{factory-BMtWV9iv.js → factory-ByfbrCab.js} +4 -4
  78. package/server/{feature-registry-population-DA7bO6Zn.js → feature-registry-population-CSH66UO8.js} +4 -4
  79. package/server/{feature-registry-storage-nAY1fbBt.js → feature-registry-storage-DW7dUefc.js} +2 -2
  80. package/server/{features-DMu7eGmU.js → features-x_aLR7U9.js} +2 -2
  81. package/server/{feedback-target-DHqcw3cN.js → feedback-target-BFo9fScH.js} +6 -6
  82. package/server/{feedback-target-B2SEai8-.js → feedback-target-C4VMPTZu.js} +1 -1
  83. package/server/{feedback-writer-qvm7UON7.js → feedback-writer-B9ZqnnX3.js} +4 -4
  84. package/server/{feedback-writer-DMBdS_jL.js → feedback-writer-DCyd75yJ.js} +1 -1
  85. package/server/{flywheel-Dfpx4bIV.js → flywheel-D9NKvWqb.js} +11 -11
  86. package/server/{flywheel-k4FPtCQ_.js → flywheel-DB48X7Nn.js} +1 -1
  87. package/server/{flywheel-D2LdPSic.js → flywheel-DwQCoZQG.js} +13 -13
  88. package/server/{flywheel-merge-order-CB4lbXeJ.js → flywheel-merge-order-DrjmFXg4.js} +6 -6
  89. package/server/{flywheel-merge-order-CttTazRY.js → flywheel-merge-order-f1bi5XIf.js} +1 -1
  90. package/server/{forge-CoPFXFyl.js → forge-C-SoKy8U.js} +2 -2
  91. package/server/forge-CUCYK7h_.js +2 -0
  92. package/server/{from-B0YoJl9-.js → from-fu7ZumnY.js} +1 -1
  93. package/server/{fts-db-DAHW1yA_.js → fts-db-CL-YzSRG.js} +2 -2
  94. package/server/{fts-operations-DDXDBi0d.js → fts-operations-Bylu5NjM.js} +2 -2
  95. package/server/{git-utils-B90Zjzfl.js → git-utils-C8koBs8j.js} +2 -2
  96. package/server/{git-utils-DbfC0zls.js → git-utils-Ym380hJZ.js} +1 -1
  97. package/server/{github-app-C7lftMNj.js → github-app-DIr70YLg.js} +1 -1
  98. package/server/{github-app-BecAnXRX.js → github-app-DhycHVLF.js} +2 -2
  99. package/server/{github-client-D21rCIXk.js → github-client-7gkcXcBS.js} +2 -2
  100. package/server/{github-client-BwtKZtM0.js → github-client-Ji9lUTNF.js} +1 -1
  101. package/server/{github-pr-lookup-CzVWuysl.js → github-pr-lookup-rt7T9FwA.js} +2 -2
  102. package/server/{harness-resolve-SkRJm4a7.js → harness-resolve-CvGXUnAF.js} +3 -3
  103. package/server/{health-events-BT0aAfeA.js → health-events-D4E1DLN-.js} +2 -2
  104. package/server/{health-events-DA_JLpgZ.js → health-events-DDfkoO5a.js} +1 -1
  105. package/server/{hooks-DxEn2BoY.js → hooks-D_6pAbuJ.js} +2 -2
  106. package/server/{hooks-BQxRXtRb.js → hooks-DvdnCVv6.js} +1 -1
  107. package/server/{idle-stack-reaper-C7fJL8jH.js → idle-stack-reaper-DNbV9-fj.js} +1 -1
  108. package/server/{idle-stack-reaper-DGy7tvC9.js → idle-stack-reaper-cDRXDpgE.js} +2 -2
  109. package/server/{infra-DE3C4PMr.js → infra-Clew3DpF.js} +50 -3
  110. package/server/{injection-Dt22tGvS.js → injection-QCIHOpk6.js} +1 -1
  111. package/server/{injection-Cc4Qt8LZ.js → injection-ql0Nddcn.js} +7 -7
  112. package/server/inspect-agent-D8UBDgfR.js +2 -0
  113. package/server/{inspect-agent-DOaCDkCF.js → inspect-agent-DY18KEx4.js} +9 -9
  114. package/server/{internal-token-B_1YLWLI.js → internal-token-BeXjPLKy.js} +2 -2
  115. package/server/{internal-token-nobT6FhA.js → internal-token-C90jBp-y.js} +1 -1
  116. package/server/{io-A7ZuOBkz.js → io-CbAFXQge.js} +2 -2
  117. package/server/{issue-closed-Da3DeomA.js → issue-closed-BYC2TCk-.js} +4 -4
  118. package/server/{issue-lifecycle-543pQX9D.js → issue-lifecycle-BoJa6qIt.js} +21 -21
  119. package/server/{issue-lifecycle-Bd9XBJAQ.js → issue-lifecycle-CLHbj8RS.js} +1 -1
  120. package/server/{issue-service-singleton-BC2JLZi7.js → issue-service-singleton-3g_CCY-1.js} +1 -1
  121. package/server/{issue-service-singleton-Brc3t0SV.js → issue-service-singleton-BS9NENuR.js} +8 -8
  122. package/server/{issues-D3kt9UWE.js → issues-BPcqPqfV.js} +2 -2
  123. package/server/{label-cleanup-w9X_T3AQ.js → label-cleanup-CwiCSZrb.js} +2 -2
  124. package/server/{layers-Cwe1J-9o.js → layers-OHHLphl0.js} +2 -2
  125. package/server/{lifecycle-f1GbDK33.js → lifecycle-B8IdvUbt.js} +6 -6
  126. package/server/{lifecycle-io-D56q8zlO.js → lifecycle-io-BMCH1Bxg.js} +1 -1
  127. package/server/{lifecycle-io-Bqvj0m3i.js → lifecycle-io-C73m5e6R.js} +4 -4
  128. package/server/{linear-client-Bh4T4S-c.js → linear-client-BMxgycoy.js} +1 -1
  129. package/server/{linear-client-CfJMTAYd.js → linear-client-CgQlM4aT.js} +2 -2
  130. package/server/memory-fts-worker.js +1 -1
  131. package/server/{merge-ZrXFM3jv.js → merge-B7Oi-g6k.js} +3 -3
  132. package/server/{merge-DRMPa8CQ.js → merge-BRkVaIx-.js} +1 -1
  133. package/server/merge-agent-Bwm34MZ5.js +3 -0
  134. package/server/{merge-agent-CHHs5S_0.js → merge-agent-DNFFsiEm.js} +61 -26
  135. package/server/{merge-batch-BwhGdlh4.js → merge-batch-BpYXUaqJ.js} +1 -1
  136. package/server/{merge-blockers-BMhDpMl_.js → merge-blockers-DIOZmqdK.js} +2 -2
  137. package/server/merge-ops-B7m-hBEZ.js +2 -0
  138. package/server/{merge-rebase-R7MfqpiE.js → merge-rebase-C8WH39MB.js} +2 -2
  139. package/server/{merge-set-B3Breacq.js → merge-set-CsEE2CyQ.js} +9 -5
  140. package/server/{merge-set-D-iXNP0I.js → merge-set-DOsBTBQc.js} +1 -1
  141. package/server/{merge-sync-DHWbGtjR.js → merge-sync-C2B322Ot.js} +2 -2
  142. package/server/{merge-sync-bOOtfeXR.js → merge-sync-CcLM2vwW.js} +1 -1
  143. package/server/{merge-train-98ptZrPT.js → merge-train-BIm7-7cy.js} +3 -3
  144. package/server/{merge-train-deps-B5FWJTE2.js → merge-train-deps-DG1oQ2DT.js} +4 -4
  145. package/server/{merge-verification-BGiuiXAK.js → merge-verification-BAbjxEd5.js} +4 -4
  146. package/server/{multipart-parser-D7mzNNDm.js → multipart-parser-jKtKAXtl.js} +2 -2
  147. package/server/node_modules/.package-lock.json +1 -1
  148. package/server/{orphan-proposed-reconciler-CSuxivr9.js → orphan-proposed-reconciler-BqVGaOIj.js} +1 -1
  149. package/server/{orphan-proposed-reconciler-BSGCNJ6X.js → orphan-proposed-reconciler-zHrwJ3xr.js} +9 -9
  150. package/server/package-lock.json +2 -2
  151. package/server/package.json +1 -1
  152. package/server/{pan-dir-DoPtdHrp.js → pan-dir-BlNrLzW7.js} +3 -3
  153. package/server/{paths-CVDLPxXp.js → paths-CiVeo4N_.js} +2 -2
  154. package/server/{pipeline-notifier-WD2dnOsR.js → pipeline-notifier-DBF6dHxH.js} +2 -2
  155. package/server/{pipeline-notifier-BtYHbBPl.js → pipeline-notifier-nkWCe042.js} +1 -1
  156. package/server/{projects-Bqfwuqet.js → projects-BqRMlDOv.js} +1 -1
  157. package/server/{prompts-Cg7e9FPb.js → prompts-CXbQvevY.js} +2 -2
  158. package/server/{providers-fLduChnX.js → providers-CUdAb5Qu.js} +7 -7
  159. package/server/{providers-JjK6izqX.js → providers-gZ0cUgQM.js} +1 -1
  160. package/server/public/assets/{chunk-BO2N2NFS-aNlsGDCu.js → chunk-BO2N2NFS-C-6y8VFI.js} +4 -4
  161. package/server/public/assets/{diagram-OG6HWLK6-CnjkrvT8.js → diagram-OG6HWLK6-NACO1xW5.js} +1 -1
  162. package/server/public/assets/{dist-CGKBCieA.js → dist-D1FjqGgm.js} +1 -1
  163. package/server/public/assets/{dist-Bg3Sbsx4.js → dist-DQD-ZjQY.js} +3 -3
  164. package/server/public/assets/{ganttDiagram-6RSMTGT7-C8LLKj23.js → ganttDiagram-6RSMTGT7-CEMAKgmE.js} +1 -1
  165. package/server/public/assets/{highlighted-body-OFNGDK62-BSDEUvhW.js → highlighted-body-OFNGDK62-D5lC7FW8.js} +1 -1
  166. package/server/public/assets/{index-LQIfhmgI.js → index-BDqWyuZQ.js} +140 -140
  167. package/server/public/assets/{linear-DEbYZoxg.js → linear-DDHAMRPB.js} +1 -1
  168. package/server/public/assets/mermaid-GHXKKRXX-DRM2ANcR.js +1 -0
  169. package/server/public/assets/{pieDiagram-4H26LBE5-BtZL5pXE.js → pieDiagram-4H26LBE5-DwBdeKBb.js} +1 -1
  170. package/server/public/assets/{prod-DYVvIyuh.js → prod-DAZt0c4G.js} +4 -4
  171. package/server/public/assets/{quadrantDiagram-W4KKPZXB-a7vS8Jc8.js → quadrantDiagram-W4KKPZXB-CNDLp-_m.js} +1 -1
  172. package/server/public/assets/{sankeyDiagram-5OEKKPKP-Ckbq2SWH.js → sankeyDiagram-5OEKKPKP-oIUL_uO1.js} +1 -1
  173. package/server/public/assets/{xychartDiagram-2RQKCTM6-DJyeNa99.js → xychartDiagram-2RQKCTM6-B-IM6Cck.js} +1 -1
  174. package/server/public/index.html +1 -1
  175. package/server/{pull-requests-D2SjJIwY.js → pull-requests-DZ-V7_LB.js} +1 -1
  176. package/server/{pull-requests-1WXmTBlo.js → pull-requests-kTRl7cWC.js} +3 -3
  177. package/server/rally-CRteqXe0.js +3 -0
  178. package/server/{rally-api-H5I2CBO0.js → rally-api-DpZo3WwF.js} +2 -2
  179. package/server/{rally-api-BtvwdX6d.js → rally-api-jOk4vit_.js} +1 -1
  180. package/server/{rally-client-Bt-qHiOh.js → rally-client-BQjm3aaq.js} +1 -1
  181. package/server/{rally-client-33CYZYYu.js → rally-client-CoWZeVEj.js} +4 -4
  182. package/server/{rally-8aQlLLVj.js → rally-xCTZ-UcI.js} +3 -3
  183. package/server/{rebuild-stack-KHkkrGjx.js → rebuild-stack-BZ7j27xY.js} +5 -5
  184. package/server/{rebuild-stack-CXSgAGPR.js → rebuild-stack-r-cxcr26.js} +1 -1
  185. package/server/{reconstruct-cache-D_Ml65_6.js → reconstruct-cache-13EkMg_i.js} +6 -6
  186. package/server/{record-De2syxNB.js → record-CJsjvRO4.js} +1 -1
  187. package/server/release-engine-YLTnEO_K.js +306 -0
  188. package/server/release-set-DwvT_Opu.js +125 -0
  189. package/server/{remote-CGuognN3.js → remote-9u9WL0NJ.js} +3 -3
  190. package/server/{remote-D0Old0Cv.js → remote-B062S1Kc.js} +3 -3
  191. package/server/{remote-agents-UHoi4oGr.js → remote-agents-B4eWgwNd.js} +1 -1
  192. package/server/{remote-agents-DfhMq6kQ.js → remote-agents-BBTg-vLT.js} +5 -5
  193. package/server/{remote-completion-RZYePR_0.js → remote-completion-B0rmBnbL.js} +12 -12
  194. package/server/resume-R7xkSmLW.js +3 -0
  195. package/server/{review-agent-uwVftH98.js → review-agent-Bf9XjLnl.js} +1 -1
  196. package/server/{review-agent-sZBCpEVv.js → review-agent-tfR5RDzG.js} +22 -22
  197. package/server/{review-artifacts-C7a45b1_.js → review-artifacts-D0_IE6DQ.js} +6 -6
  198. package/server/{review-context-CErbQpKL.js → review-context-CXO5ml5D.js} +7 -7
  199. package/server/{review-monitor-DHD9m_kh.js → review-monitor-DfFUSx0J.js} +2 -2
  200. package/server/{review-status-JhQ3qlDS.js → review-status-B0Axo-Ma.js} +1 -1
  201. package/server/{review-status-gPndPUBc.js → review-status-BcfwcAcO.js} +23 -16
  202. package/server/{review-status-enrichment-qWvWckYN.js → review-status-enrichment-Cp5kFTGl.js} +3 -3
  203. package/server/{review-status-sync-B_GrEke8.js → review-status-sync-Bc0c_u12.js} +1 -1
  204. package/server/{review-status-sync-D3A9KX95.js → review-status-sync-CEFty1pW.js} +9 -5
  205. package/server/{review-verdict-feedback-4WZ5ZdbC.js → review-verdict-feedback-BOKRLLDf.js} +6 -6
  206. package/server/{review-verdict-feedback-Zo0r_z4m.js → review-verdict-feedback-BnGtT0vN.js} +1 -1
  207. package/server/{rollup-Bmhn80tB.js → rollup-BVqFuiS9.js} +1 -1
  208. package/server/{rollup-BrUIKMv_.js → rollup-C22QDVxh.js} +8 -8
  209. package/server/{scanner-BIGumel_.js → scanner-BLCnuXqY.js} +7 -7
  210. package/server/{sequence-io-DA0akEQN.js → sequence-io-BozlUb6f.js} +4 -4
  211. package/server/{sequencer-agent-DeflKafB.js → sequencer-agent-BEDEHfd2.js} +5 -5
  212. package/server/server.js +251 -160
  213. package/server/{service-V0sUK-OR.js → service-C8jKYZ0w.js} +42 -42
  214. package/server/{session-fork-Yx3UcAQf.js → session-fork-BDGksK4e.js} +2 -2
  215. package/server/{settings-CFEeQRj2.js → settings-CSLhh6qR.js} +2 -2
  216. package/server/settings-CSaXtkoA.js +2 -0
  217. package/server/{settings-CxVate0h.js → settings-DrRQCren.js} +3 -3
  218. package/server/{shadow-engineering-BRxnVSDk.js → shadow-engineering-BMcBN-Of.js} +2 -2
  219. package/server/{shadow-state-BiMwdyl1.js → shadow-state-B4ayC7nx.js} +2 -2
  220. package/server/{shadow-state-1aS8FijU.js → shadow-state-CHqWHD3T.js} +1 -1
  221. package/server/{ship-log-CMWH3H5-.js → ship-log-CDVmOlZP.js} +1 -1
  222. package/server/{smart-compaction-Bw1K_Sbl.js → smart-compaction-C-F5sP9P.js} +7 -7
  223. package/server/{smart-compaction-xblMyVpT.js → smart-compaction-V9DBrGcr.js} +1 -1
  224. package/server/{spawn-planning-session-CzDFSKAQ.js → spawn-planning-session-Bz4_JES2.js} +1 -1
  225. package/server/{spawn-planning-session-DxLxcM7m.js → spawn-planning-session-dSpOU0lP.js} +15 -15
  226. package/server/{specialist-completion-BiEXUHfD.js → specialist-completion-Coz3eTSr.js} +1 -1
  227. package/server/{specialist-context-BfkTA81h.js → specialist-context-fmb03vXQ.js} +5 -5
  228. package/server/{specialist-handoff-logger-BiKuLtNm.js → specialist-handoff-logger-B9HK_lRu.js} +2 -2
  229. package/server/{specialist-logs-CFJjGsLC.js → specialist-logs-B24R2B9Y.js} +3 -3
  230. package/server/{specialists-BLIreoE7.js → specialists-B6f5-5nG.js} +1 -1
  231. package/server/{specialists-DjHbwQ_p.js → specialists-BGNZ0_ZW.js} +18 -18
  232. package/server/{specialists-B4byf18k.js → specialists-CL7E8yUg.js} +75 -75
  233. package/server/{specialists-DdvpFNt1.js → specialists-Chvvwf5z.js} +1 -1
  234. package/server/specs-oaaYaA5c.js +3 -0
  235. package/server/{src-CALBEUMX.js → src-BVxZuHMg.js} +3 -3
  236. package/server/{src-mK_M_ZIj.js → src-D-VXCC9C.js} +5 -5
  237. package/server/{src-fgbU-jJ-.js → src-DGAEtABV.js} +13 -2
  238. package/server/{stack-health-BFM8YlHw.js → stack-health-BKbTTOT2.js} +1 -1
  239. package/server/{stack-health-Qd7rPiVe.js → stack-health-C-le5erA.js} +2 -2
  240. package/server/{state-home-C2Bicw9N.js → state-home-CoyWsECg.js} +6 -6
  241. package/server/{summary-fork-EWWBvzgE.js → summary-fork-BF_0vxrq.js} +2 -2
  242. package/server/{summary-fork-DezPkJSm.js → summary-fork-BlE30Q-I.js} +8 -8
  243. package/server/supervisor-03Tj_Wra.js +2 -0
  244. package/server/{supervisor-D5GC5jUM.js → supervisor-BSeML_p0.js} +2 -2
  245. package/server/{swarm-readiness-Cf9mommA.js → swarm-readiness-CQ4sjrXc.js} +3 -3
  246. package/server/{system-prerequisites-BsI9hxh9.js → system-prerequisites-DnmLYOnU.js} +13 -1
  247. package/server/{teardown-workspace-CWz1pbEK.js → teardown-workspace-CpcjDrZ4.js} +12 -12
  248. package/server/{test-agent-queue-TiVXe3ZT.js → test-agent-queue-Bq298zZl.js} +5 -5
  249. package/server/{tldr-daemon-C_1frSDj.js → tldr-daemon-CaSUXd9r.js} +2 -2
  250. package/server/{tldr-daemon-Big5IZ_M.js → tldr-daemon-Rn1Zue0P.js} +1 -1
  251. package/server/{tmux-D57f-XNv.js → tmux-BVc-NeKM.js} +2 -2
  252. package/server/{tmux-DClqWwb8.js → tmux-CbcrkUx5.js} +1 -1
  253. package/server/{token-_qujO3JZ.js → token-D2OC_9ms.js} +1 -1
  254. package/server/{tracker-config-BmdJU_w6.js → tracker-config-C1Y_2CIo.js} +2 -2
  255. package/server/{tracker-config-B_Ubts1Z.js → tracker-config-EsBoOWEy.js} +1 -1
  256. package/server/{tracker-utils-Bg-Sevcv.js → tracker-utils-DSb9cfrF.js} +1 -1
  257. package/server/{tracker-utils-CWFt6jjV.js → tracker-utils-lph9C3Pw.js} +2 -2
  258. package/server/{tunnel-UBf2vyAL.js → tunnel-BFBCeo97.js} +2 -2
  259. package/server/{tunnel-hOBNQbmF.js → tunnel-DDe-ATFF.js} +1 -1
  260. package/server/{uat-train-DGkIkLxu.js → uat-train-8T24rPzc.js} +1 -1
  261. package/server/{uat-train-qNanv5hN.js → uat-train-DtKHHy1U.js} +23 -23
  262. package/server/{validation-B0QaLIHP.js → validation-COOXwNXU.js} +1 -1
  263. package/server/{validation-C4wegCvH.js → validation-lyudzPvD.js} +3 -3
  264. package/server/{verification-runner-CntudBes.js → verification-runner-DO0nYTJx.js} +11 -11
  265. package/server/{verification-runner-DdleMNLq.js → verification-runner-Dd1FX8Qk.js} +1 -1
  266. package/server/{vtt-parser-CKc-smWM.js → vtt-parser-C57tEF7-.js} +1 -1
  267. package/server/{work-agent-prompt-CG5jFV9A.js → work-agent-prompt-B2F3ZwKm.js} +11 -11
  268. package/server/workflows-B4fIN8VP.js +2 -0
  269. package/server/{workflows-BK2xs_a8.js → workflows-Clz_AFwR.js} +13 -13
  270. package/server/{workspace-CLrSIRCx.js → workspace-CY_2-Ddv.js} +3 -3
  271. package/server/{workspace-C9lC5o3E.js → workspace-D0rCFemz.js} +1 -1
  272. package/server/{workspace-manager-Cb2a7bg9.js → workspace-manager-BIfpzqdU.js} +1 -1
  273. package/server/{workspace-manager-BJhW2sky.js → workspace-manager-D6NgGkiF.js} +10 -10
  274. package/server/{workspace-metadata-QQmo_Z0l.js → workspace-metadata-C8yn8kAH.js} +2 -2
  275. package/server/{workspace-metadata-CTRnr323.js → workspace-metadata-DfgR40YU.js} +1 -1
  276. package/server/{workspaces-Ca4zZs12.js → workspaces-DOeHyKmA.js} +104 -92
  277. package/sync-sources/hooks/ask-user-question-hook +87 -0
  278. package/sync-sources/hooks/auto-approve-hook +96 -0
  279. package/sync-sources/hooks/codex-notify-hook +62 -0
  280. package/sync-sources/hooks/gh-issue-trailer-hook +4 -0
  281. package/sync-sources/hooks/gh-issue-trailer-hook.d.ts +7 -0
  282. package/sync-sources/hooks/gh-issue-trailer-hook.d.ts.map +1 -0
  283. package/sync-sources/hooks/gh-issue-trailer-hook.js +239 -0
  284. package/sync-sources/hooks/gh-issue-trailer-hook.js.map +1 -0
  285. package/sync-sources/hooks/gh-issue-trailer-hook.ts +296 -0
  286. package/sync-sources/hooks/git-hooks/post-checkout +109 -0
  287. package/sync-sources/hooks/heartbeat-hook +113 -0
  288. package/sync-sources/hooks/notification-hook +70 -0
  289. package/sync-sources/hooks/notify-complete +79 -0
  290. package/sync-sources/hooks/pan-hook-lib.sh +153 -0
  291. package/sync-sources/hooks/permission-event-hook +24 -0
  292. package/sync-sources/hooks/post-compact-hook +25 -0
  293. package/sync-sources/hooks/pre-compact-hook +26 -0
  294. package/sync-sources/hooks/pre-tool-hook +35 -0
  295. package/sync-sources/hooks/record-cost-event.d.ts +1 -0
  296. package/sync-sources/hooks/record-cost-event.js +31858 -0
  297. package/sync-sources/hooks/record-cost-event.js.map +1 -0
  298. package/sync-sources/hooks/record-cost-event.ts +267 -0
  299. package/sync-sources/hooks/rtk-bash-filter +152 -0
  300. package/sync-sources/hooks/session-start-hook +80 -0
  301. package/sync-sources/hooks/specialist-stop-hook +106 -0
  302. package/sync-sources/hooks/statusline.sh +169 -0
  303. package/sync-sources/hooks/stop-hook +217 -0
  304. package/sync-sources/hooks/tldr-post-edit +72 -0
  305. package/sync-sources/hooks/tldr-read-enforcer +340 -0
  306. package/sync-sources/hooks/tmux-send-keys-guard +87 -0
  307. package/sync-sources/hooks/tsdown.config.ts +14 -0
  308. package/sync-sources/hooks/user-prompt-submit-hook +57 -0
  309. package/sync-sources/hooks/work-agent-stop-hook +424 -0
  310. package/server/cli-Ch_BWJB2.js +0 -3
  311. package/server/deacon-swarm-CSWGRfzr.js +0 -2
  312. package/server/dist-BUplB3Od.js +0 -3
  313. package/server/forge-IgLR0Ist.js +0 -2
  314. package/server/inspect-agent-CYoWAeeB.js +0 -2
  315. package/server/merge-agent-CfohxFWM.js +0 -3
  316. package/server/merge-ops-Czke6UAp.js +0 -2
  317. package/server/public/assets/mermaid-GHXKKRXX-CZOsRYoT.js +0 -1
  318. package/server/rally-Ba9QoNYc.js +0 -3
  319. package/server/resume-CmxF3Kjz.js +0 -3
  320. package/server/settings-DEhYpW0k.js +0 -2
  321. package/server/specs-CVH1kvz3.js +0 -3
  322. package/server/supervisor-DQMK2e3I.js +0 -2
  323. package/server/workflows-pKw9yRSV.js +0 -2
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Br as getOverdeckHome, Vr as init_paths } from "./config-yaml-ClpGgrf6.js";
2
+ import { Hr as init_paths, Vr as getOverdeckHome } from "./config-yaml-C_djSurJ.js";
3
3
  import { dirname, isAbsolute, join, resolve } from "node:path";
4
4
  import { Data } from "effect";
5
5
  import { mkdir, open, readFile, realpath, unlink } from "node:fs/promises";
@@ -366,4 +366,4 @@ var init_bd_process_lock = __esmMin((() => {
366
366
  //#endregion
367
367
  export { withBdProcessLock as a, runBdWithRetry as i, init_bd_process_lock as n, readBdProcessLockHolder as r, BdTransientFailure as t };
368
368
 
369
- //# sourceMappingURL=bd-process-lock-i3CYMS-B.js.map
369
+ //# sourceMappingURL=bd-process-lock-D1aJxeYv.js.map
@@ -1,2 +1,2 @@
1
- import { a as getVBriefACStatusSync, c as syncBeadStatusToVBrief, i as getVBriefACStatus, n as clearBeadsForIssue, o as resolveBdTimeout, r as createBeadsFromVBrief, s as retryBd, t as BeadsOperationError } from "./beads-DD7fYCl5.js";
1
+ import { a as getVBriefACStatusSync, c as syncBeadStatusToVBrief, i as getVBriefACStatus, n as clearBeadsForIssue, o as resolveBdTimeout, r as createBeadsFromVBrief, s as retryBd, t as BeadsOperationError } from "./beads-DRoj6-e1.js";
2
2
  export { BeadsOperationError, clearBeadsForIssue, createBeadsFromVBrief, getVBriefACStatus, getVBriefACStatusSync, resolveBdTimeout, retryBd, syncBeadStatusToVBrief };
@@ -1,7 +1,7 @@
1
- import { _ as updateItemStatus, b as init_types, d as readPlanSync, m as readWorkspacePlanSync, o as init_io, v as updateSubItemStatus, x as subItemsOf } from "./io-A7ZuOBkz.js";
2
- import { a as withBdProcessLock, i as runBdWithRetry, n as init_bd_process_lock, t as BdTransientFailure } from "./bd-process-lock-i3CYMS-B.js";
1
+ import { _ as updateItemStatus, b as init_types, d as readPlanSync, m as readWorkspacePlanSync, o as init_io, v as updateSubItemStatus, x as subItemsOf } from "./io-CbAFXQge.js";
2
+ import { a as withBdProcessLock, i as runBdWithRetry, n as init_bd_process_lock, t as BdTransientFailure } from "./bd-process-lock-D1aJxeYv.js";
3
3
  import { n as withBdMutexPromise } from "./bd-mutex-BItGvLQ8.js";
4
- import { n as init_acceptance_criteria, t as extractACFromDocument } from "./acceptance-criteria-1LHgD9vg.js";
4
+ import { n as init_acceptance_criteria, t as extractACFromDocument } from "./acceptance-criteria-CfujPRrz.js";
5
5
  import { Data, Effect } from "effect";
6
6
  import { chmodSync, existsSync, mkdirSync, writeFileSync } from "fs";
7
7
  import { basename, join, resolve } from "path";
@@ -746,4 +746,4 @@ const getVBriefACStatus = (workspacePath) => Effect.try({
746
746
  //#endregion
747
747
  export { getVBriefACStatusSync as a, syncBeadStatusToVBrief as c, getVBriefACStatus as i, clearBeadsForIssue as n, resolveBdTimeout as o, createBeadsFromVBrief as r, retryBd as s, BeadsOperationError as t };
748
748
 
749
- //# sourceMappingURL=beads-DD7fYCl5.js.map
749
+ //# sourceMappingURL=beads-DRoj6-e1.js.map
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { i as runBdWithRetry, n as init_bd_process_lock, r as readBdProcessLockHolder, t as BdTransientFailure } from "./bd-process-lock-i3CYMS-B.js";
2
+ import { i as runBdWithRetry, n as init_bd_process_lock, r as readBdProcessLockHolder, t as BdTransientFailure } from "./bd-process-lock-D1aJxeYv.js";
3
3
  import { Data, Effect } from "effect";
4
4
  import { existsSync } from "fs";
5
5
  import { basename, dirname, join } from "path";
@@ -167,4 +167,4 @@ var init_beads_query = __esmMin((() => {
167
167
  //#endregion
168
168
  export { queryBeadsForIssue as a, queryBeadById as i, assertIssueHasBeads as n, queryReadyBeadsByIssueLabels as o, init_beads_query as r, resolveBeadsQueryRoot as s, BeadsMissingError as t };
169
169
 
170
- //# sourceMappingURL=beads-query-e6oku4P5.js.map
170
+ //# sourceMappingURL=beads-query-tOsAYP5h.js.map
@@ -1,6 +1,6 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { t as init_src } from "./src-fgbU-jJ-.js";
3
- import { o as getPricingSync, s as init_cost } from "./cost-CCnqa5xK.js";
2
+ import { t as init_src } from "./src-DGAEtABV.js";
3
+ import { o as getPricingSync, s as init_cost } from "./cost-CaiG63FG.js";
4
4
  import { existsSync, readFileSync } from "node:fs";
5
5
  //#region ../../lib/cost-parsers/codex-parser.ts
6
6
  /**
@@ -250,4 +250,4 @@ var init_behavior = __esmMin((() => {
250
250
  //#endregion
251
251
  export { parseCodexSessionSync as i, init_codex_parser as n, parseCodexSessionCostEventsSync as r, init_behavior as t };
252
252
 
253
- //# sourceMappingURL=behavior-CPf0pbOt.js.map
253
+ //# sourceMappingURL=behavior-D3d2mVyD.js.map
@@ -1,7 +1,7 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Br as getOverdeckHome, Vr as init_paths } from "./config-yaml-ClpGgrf6.js";
3
- import { _ as integer, a as EventBus, b as and, c as Records, d as getOverdeckDatabaseSync, f as init_infra, h as text, l as Tmux, m as sqliteTable, p as init_sqlite_core, r as Db, v as init_drizzle_orm, x as eq } from "./infra-DE3C4PMr.js";
4
- import { n as init_issues, t as IssueId } from "./issues-D3kt9UWE.js";
2
+ import { Hr as init_paths, Vr as getOverdeckHome } from "./config-yaml-C_djSurJ.js";
3
+ import { _ as integer, a as EventBus, b as and, c as Records, d as getOverdeckDatabaseSync, f as init_infra, h as text, l as Tmux, m as sqliteTable, p as init_sqlite_core, r as Db, v as init_drizzle_orm, x as eq } from "./infra-Clew3DpF.js";
4
+ import { n as init_issues, t as IssueId } from "./issues-BPcqPqfV.js";
5
5
  import { join } from "node:path";
6
6
  import { Context, Effect, Layer, Schema } from "effect";
7
7
  import { dirname as dirname$1, join as join$1 } from "path";
@@ -1098,4 +1098,4 @@ var init_briefing_freshness = __esmMin((() => {
1098
1098
  //#endregion
1099
1099
  export { resolveSessionContextBriefingPath as a, backfillAgentsSync as c, init_agents as d, listAgentIdsByPrefixSync as f, isTerminalIssueStage as g, getIssueStageSync as h, recordBriefingSessionStart as i, countAgentsByStatus as l, removeAgentSync as m, ensureSessionContextBriefingFile as n, AgentsResolver as o, listAllAgentsSync as p, init_briefing_freshness as r, AgentsResolverLive as s, appendFreshBriefingUpdate as t, countAgentsByStatusRole as u };
1100
1100
 
1101
- //# sourceMappingURL=briefing-freshness-B2FdLwIv.js.map
1101
+ //# sourceMappingURL=briefing-freshness-BL3Q6p7R.js.map
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { _r as VcsError, ar as CheckpointError, dr as InvalidAgentIdError, ln as init_state_plane, on as STATE_BRANCH_PATHS, vr as init_errors } from "./config-yaml-ClpGgrf6.js";
2
+ import { fr as InvalidAgentIdError, ln as init_state_plane, on as STATE_BRANCH_PATHS, or as CheckpointError, vr as VcsError, yr as init_errors } from "./config-yaml-C_djSurJ.js";
3
3
  import { Effect, Layer } from "effect";
4
4
  import { join } from "path";
5
5
  import { tmpdir } from "os";
@@ -663,4 +663,4 @@ var init_checkpoint_manager = __esmMin((() => {
663
663
  //#endregion
664
664
  export { pruneStaleCheckpointRefs as _, diffAgainstMain as a, diffCheckpoints as c, diffPatchSinceCommit as d, findCommitAtTime as f, pruneCheckpointRefsForAgents as g, listCheckpoints as h, deleteLegacyCheckpointRefs as i, diffFilesAgainstHead as l, init_checkpoint_manager as m, checkpointStateExclusions as n, diffAgainstMainFiles as o, getCheckpointTimestamp as p, deleteCheckpoint as r, diffCheckpointFiles as s, captureCheckpoint as t, diffPatchFilesAgainstHead as u };
665
665
 
666
- //# sourceMappingURL=checkpoint-manager-JryW6MpM.js.map
666
+ //# sourceMappingURL=checkpoint-manager-DCxjQvP_.js.map
@@ -1,3 +1,3 @@
1
- import { _ as pruneStaleCheckpointRefs, g as pruneCheckpointRefsForAgents, h as listCheckpoints, i as deleteLegacyCheckpointRefs, m as init_checkpoint_manager, p as getCheckpointTimestamp, s as diffCheckpointFiles } from "./checkpoint-manager-JryW6MpM.js";
1
+ import { _ as pruneStaleCheckpointRefs, g as pruneCheckpointRefsForAgents, h as listCheckpoints, i as deleteLegacyCheckpointRefs, m as init_checkpoint_manager, p as getCheckpointTimestamp, s as diffCheckpointFiles } from "./checkpoint-manager-DCxjQvP_.js";
2
2
  init_checkpoint_manager();
3
3
  export { deleteLegacyCheckpointRefs, diffCheckpointFiles, getCheckpointTimestamp, listCheckpoints, pruneCheckpointRefsForAgents, pruneStaleCheckpointRefs };
@@ -1,4 +1,4 @@
1
- import { a as releaseTranscriptRange, i as listTranscriptCheckpoints, n as commitTranscriptRange, r as getTranscriptCheckpoint, t as claimTranscriptRange } from "./checkpoints-qvOqvMuC.js";
1
+ import { a as releaseTranscriptRange, i as listTranscriptCheckpoints, n as commitTranscriptRange, r as getTranscriptCheckpoint, t as claimTranscriptRange } from "./checkpoints-BoX1H2Hf.js";
2
2
  import { parentPort } from "node:worker_threads";
3
3
  //#region ../../lib/memory/checkpoint-worker.ts
4
4
  function runOperation(operation, payload) {
@@ -1,4 +1,4 @@
1
- import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-DE3C4PMr.js";
1
+ import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-Clew3DpF.js";
2
2
  import { randomUUID } from "node:crypto";
3
3
  //#region ../../lib/overdeck/transcript-checkpoint-sync.ts
4
4
  /**
@@ -195,4 +195,4 @@ function getTranscriptCheckpoint(sessionId) {
195
195
  //#endregion
196
196
  export { releaseTranscriptRange as a, listTranscriptCheckpoints as i, commitTranscriptRange as n, getTranscriptCheckpoint as r, claimTranscriptRange as t };
197
197
 
198
- //# sourceMappingURL=checkpoints-qvOqvMuC.js.map
198
+ //# sourceMappingURL=checkpoints-BoX1H2Hf.js.map
@@ -1,2 +1,2 @@
1
- import { a as releaseTranscriptRange, i as listTranscriptCheckpoints, n as commitTranscriptRange, r as getTranscriptCheckpoint, t as claimTranscriptRange } from "./checkpoints-qvOqvMuC.js";
1
+ import { a as releaseTranscriptRange, i as listTranscriptCheckpoints, n as commitTranscriptRange, r as getTranscriptCheckpoint, t as claimTranscriptRange } from "./checkpoints-BoX1H2Hf.js";
2
2
  export { claimTranscriptRange, commitTranscriptRange, getTranscriptCheckpoint, listTranscriptCheckpoints, releaseTranscriptRange };
@@ -0,0 +1,360 @@
1
+ import { Hr as init_paths, Ir as SYNC_SOURCES, Sr as BIN_DIR } from "./config-yaml-C_djSurJ.js";
2
+ import { join } from "node:path";
3
+ import { copyFileSync, existsSync, mkdirSync, readdirSync, renameSync, unlinkSync, writeFileSync } from "fs";
4
+ import { basename as basename$1, dirname as dirname$1, join as join$1 } from "path";
5
+ import { homedir } from "node:os";
6
+ import { chmodSync as chmodSync$1, copyFileSync as copyFileSync$1, existsSync as existsSync$1, mkdirSync as mkdirSync$1 } from "node:fs";
7
+ import { readFile } from "node:fs/promises";
8
+ import { execFile } from "node:child_process";
9
+ import { promisify } from "node:util";
10
+ //#region ../../lib/claude-hooks-registration.ts
11
+ /**
12
+ * Overdeck's Claude Code hook registration — single source of truth for
13
+ * WHICH hook scripts exist and WHERE they register in ~/.claude/settings.json.
14
+ *
15
+ * Consumed by two installers that must never drift:
16
+ * - `pan admin hooks install` (src/cli/commands/setup/hooks.ts) — the
17
+ * interactive CLI path.
18
+ * - the desktop boot provisioner (src/lib/claude-hooks-provision.ts) — the
19
+ * non-interactive path for machines that never run the pan CLI (PAN-2595).
20
+ *
21
+ * Registration is delta-only: existing entries (including hand-customized
22
+ * matchers) are left alone; only missing Overdeck hooks are appended, and
23
+ * stale pre-rebrand `panopticon/bin` twins are pruned (PAN-2530).
24
+ */
25
+ /**
26
+ * Hook scripts copied from sync-sources/hooks/ to ~/.overdeck/bin/.
27
+ * (Comments preserved from the original setupHooksCommand list.)
28
+ */
29
+ const HOOK_SCRIPT_NAMES = [
30
+ "pan-hook-lib.sh",
31
+ "pre-tool-hook",
32
+ "ask-user-question-hook",
33
+ "auto-approve-hook",
34
+ "heartbeat-hook",
35
+ "stop-hook",
36
+ "notification-hook",
37
+ "specialist-stop-hook",
38
+ "work-agent-stop-hook",
39
+ "session-start-hook",
40
+ "user-prompt-submit-hook",
41
+ "pre-compact-hook",
42
+ "post-compact-hook",
43
+ "record-cost-event.js",
44
+ "gh-issue-trailer-hook",
45
+ "gh-issue-trailer-hook.js",
46
+ "tldr-read-enforcer",
47
+ "tldr-post-edit",
48
+ "rtk-bash-filter",
49
+ "permission-event-hook",
50
+ "tmux-send-keys-guard"
51
+ ];
52
+ /**
53
+ * The settings.json registration table. Order matters only for readability;
54
+ * see setupHooksCommand for the per-entry rationale comments (PAN-1402,
55
+ * PAN-1024, PAN-1084, PAN-1520).
56
+ */
57
+ const OVERDECK_HOOK_REGISTRATIONS = [
58
+ {
59
+ hookType: "PreToolUse",
60
+ scriptName: "pre-tool-hook"
61
+ },
62
+ {
63
+ hookType: "PreToolUse",
64
+ scriptName: "auto-approve-hook"
65
+ },
66
+ {
67
+ hookType: "PreToolUse",
68
+ scriptName: "gh-issue-trailer-hook",
69
+ matcher: "Bash"
70
+ },
71
+ {
72
+ hookType: "PreToolUse",
73
+ scriptName: "tmux-send-keys-guard",
74
+ matcher: "Bash"
75
+ },
76
+ {
77
+ hookType: "PreToolUse",
78
+ scriptName: "ask-user-question-hook",
79
+ matcher: "AskUserQuestion"
80
+ },
81
+ {
82
+ hookType: "PostToolUse",
83
+ scriptName: "heartbeat-hook"
84
+ },
85
+ {
86
+ hookType: "PostToolUse",
87
+ scriptName: "permission-event-hook"
88
+ },
89
+ {
90
+ hookType: "Stop",
91
+ scriptName: "stop-hook"
92
+ },
93
+ {
94
+ hookType: "Stop",
95
+ scriptName: "permission-event-hook"
96
+ },
97
+ {
98
+ hookType: "SessionStart",
99
+ scriptName: "session-start-hook"
100
+ },
101
+ {
102
+ hookType: "Notification",
103
+ scriptName: "notification-hook"
104
+ },
105
+ {
106
+ hookType: "UserPromptSubmit",
107
+ scriptName: "user-prompt-submit-hook"
108
+ },
109
+ {
110
+ hookType: "PreCompact",
111
+ scriptName: "pre-compact-hook"
112
+ },
113
+ {
114
+ hookType: "PostCompact",
115
+ scriptName: "post-compact-hook"
116
+ },
117
+ {
118
+ hookType: "PermissionRequest",
119
+ scriptName: "permission-event-hook"
120
+ },
121
+ {
122
+ hookType: "PreToolUse",
123
+ scriptName: "tldr-read-enforcer",
124
+ matcher: "Read",
125
+ requiresPython3: true
126
+ },
127
+ {
128
+ hookType: "PostToolUse",
129
+ scriptName: "tldr-post-edit",
130
+ matcher: "Edit|Write",
131
+ requiresPython3: true
132
+ }
133
+ ];
134
+ /**
135
+ * Per-hook-type detection of whether a Overdeck hook is already registered.
136
+ * PAN-800: rewritten from an all-or-nothing short-circuit to a delta-install
137
+ * check so users with older installs still get SessionStart/Notification/etc.
138
+ * added without having to wipe their settings.
139
+ */
140
+ function isHookConfigured(settings, hookType, binDir, scriptName) {
141
+ return (settings?.hooks?.[hookType] || []).some((hookConfig) => hookConfig.hooks?.some((hook) => (hook.command?.includes(join$1(binDir, scriptName)) ?? false) || (hook.command?.includes(`overdeck/bin/${scriptName}`) ?? false)));
142
+ }
143
+ /**
144
+ * PAN-2530: Remove stale pre-rebrand hook entries that point at the old
145
+ * `~/.panopticon/bin/<scriptName>` path.
146
+ *
147
+ * Before the PAN-1952 rebrand, hooks were installed under `panopticon/bin/`.
148
+ * `isHookConfigured()` only recognizes the current `overdeck/bin/` path, so a
149
+ * re-sync after the rename added the new hook *alongside* the legacy one,
150
+ * leaving both registered and both firing (e.g. ask-user-question-hook fired
151
+ * twice, one copy still branded "Panopticon"). Prune any legacy entry for this
152
+ * script so exactly one hook survives after install.
153
+ *
154
+ * Mutates `settings` in place. Returns true if anything was removed.
155
+ */
156
+ function pruneLegacyPanopticonHook(settings, hookType, scriptName) {
157
+ const list = settings?.hooks?.[hookType];
158
+ if (!list) return false;
159
+ const isLegacy = (command) => command?.includes(`panopticon/bin/${scriptName}`) ?? false;
160
+ let removed = false;
161
+ const next = [];
162
+ for (const hookConfig of list) {
163
+ const originalHooks = hookConfig.hooks ?? [];
164
+ const keptHooks = originalHooks.filter((hook) => {
165
+ if (isLegacy(hook.command)) {
166
+ removed = true;
167
+ return false;
168
+ }
169
+ return true;
170
+ });
171
+ if (keptHooks.length > 0 || originalHooks.length === 0) next.push(keptHooks.length === originalHooks.length ? hookConfig : {
172
+ ...hookConfig,
173
+ hooks: keptHooks
174
+ });
175
+ }
176
+ if (removed) settings.hooks[hookType] = next;
177
+ return removed;
178
+ }
179
+ function addOverdeckHookIfMissing(settings, hookType, binDir, scriptName, matcher = ".*") {
180
+ if (!settings.hooks) settings.hooks = {};
181
+ pruneLegacyPanopticonHook(settings, hookType, scriptName);
182
+ if (isHookConfigured(settings, hookType, binDir, scriptName)) return false;
183
+ (settings.hooks[hookType] ??= []).push({
184
+ matcher,
185
+ hooks: [{
186
+ type: "command",
187
+ command: join$1(binDir, scriptName)
188
+ }]
189
+ });
190
+ return true;
191
+ }
192
+ /**
193
+ * Apply the full Overdeck registration table to `settings` (mutated in place,
194
+ * delta-only). Returns what changed so callers can decide whether to write.
195
+ */
196
+ function applyOverdeckHookRegistrations(settings, binDir, opts) {
197
+ const added = [];
198
+ const removed = [];
199
+ for (const reg of OVERDECK_HOOK_REGISTRATIONS) {
200
+ if (reg.requiresPython3 && !opts.python3Available) continue;
201
+ if (pruneLegacyPanopticonHook(settings, reg.hookType, reg.scriptName)) removed.push(`${reg.hookType}:${reg.scriptName}`);
202
+ if (addOverdeckHookIfMissing(settings, reg.hookType, binDir, reg.scriptName, reg.matcher ?? ".*")) added.push(`${reg.hookType}:${reg.scriptName}`);
203
+ }
204
+ return {
205
+ added,
206
+ removed
207
+ };
208
+ }
209
+ /**
210
+ * Copy the file to `<path>.pan-backup-<iso>` adjacent to the original.
211
+ * Returns the backup path, or null if the file did not exist.
212
+ *
213
+ * Backups go alongside the file (not in tmpdir) so users can find them
214
+ * easily and so we don't pay EXDEV on the copy.
215
+ */
216
+ function backupSettingsSync(path) {
217
+ if (!existsSync(path)) return null;
218
+ const backupPath = `${path}.pan-backup-${(/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-")}`;
219
+ copyFileSync(path, backupPath);
220
+ return backupPath;
221
+ }
222
+ /**
223
+ * Keep the most recent `SETTINGS_BACKUP_KEEP` backups for the given
224
+ * settings file, delete the rest. Backups are sorted lexically — the
225
+ * ISO-8601 timestamp in the suffix makes that equivalent to chronological.
226
+ *
227
+ * Silent on per-file delete failure; the next prune cycle will retry.
228
+ */
229
+ function pruneBackupsSync(settingsPath, keep = 5) {
230
+ const dir = dirname$1(settingsPath);
231
+ const prefix = `${basename$1(settingsPath)}.pan-backup-`;
232
+ let entries;
233
+ try {
234
+ entries = readdirSync(dir);
235
+ } catch {
236
+ return;
237
+ }
238
+ const backups = entries.filter((e) => e.startsWith(prefix)).sort().reverse();
239
+ for (const stale of backups.slice(keep)) try {
240
+ unlinkSync(join$1(dir, stale));
241
+ } catch {}
242
+ }
243
+ /**
244
+ * Atomic JSON write: serialize, write to a tmpfile in the same directory,
245
+ * rename onto the target. Crash or out-of-disk between the open and the
246
+ * rename leaves the original file intact.
247
+ *
248
+ * tmpfile lives in the same directory (not tmpdir) so the rename is a
249
+ * single-filesystem op — POSIX guarantees that's atomic.
250
+ */
251
+ function atomicWriteJsonSync(path, value) {
252
+ const dir = dirname$1(path);
253
+ if (!existsSync(dir)) mkdirSync(dir, { recursive: true });
254
+ const tmpPath = `${path}.tmp-${process.pid}-${Date.now()}`;
255
+ writeFileSync(tmpPath, `${JSON.stringify(value, null, 2)}\n`, "utf-8");
256
+ renameSync(tmpPath, path);
257
+ }
258
+ //#endregion
259
+ //#region ../../lib/claude-hooks-provision.ts
260
+ /**
261
+ * Non-interactive Claude Code hook provisioning for machines that never run
262
+ * the pan CLI — the desktop app (PAN-2595).
263
+ *
264
+ * Mirrors what `pan admin hooks install` does, minus everything interactive:
265
+ * copy the hook scripts from sync-sources/hooks/ into ~/.overdeck/bin/, then
266
+ * delta-register them in ~/.claude/settings.json via the shared table
267
+ * (src/lib/claude-hooks-registration.ts). Safe-settings guarantees hold
268
+ * (PAN-1137): an unparseable settings.json is never overwritten — we skip
269
+ * with a reason instead of process.exit — and every write is backed up and
270
+ * atomic. Idempotent: a machine with everything registered results in no
271
+ * write at all.
272
+ *
273
+ * Never throws; returns a result the caller can log. Runs async probes only
274
+ * (no execSync — this is server-boot-reachable code).
275
+ */
276
+ init_paths();
277
+ const execFileAsync = promisify(execFile);
278
+ async function commandAvailable(cmd, args) {
279
+ try {
280
+ await execFileAsync(cmd, args, { timeout: 1e4 });
281
+ return true;
282
+ } catch {
283
+ return false;
284
+ }
285
+ }
286
+ async function provisionClaudeHooks(options = {}) {
287
+ const settingsPath = options.settingsPath ?? join(homedir(), ".claude", "settings.json");
288
+ const binDir = options.binDir ?? BIN_DIR;
289
+ const none = {
290
+ changed: false,
291
+ binariesSynced: 0,
292
+ registered: [],
293
+ pruned: []
294
+ };
295
+ try {
296
+ if (!existsSync$1(SYNC_SOURCES.hooks)) return {
297
+ ok: false,
298
+ reason: `hook sources not shipped in this install (${SYNC_SOURCES.hooks})`,
299
+ ...none
300
+ };
301
+ if (!await commandAvailable("jq", ["--version"])) return {
302
+ ok: false,
303
+ reason: "jq is not installed — hooks require it (see the setup checklist)",
304
+ ...none
305
+ };
306
+ mkdirSync$1(binDir, { recursive: true });
307
+ let binariesSynced = 0;
308
+ for (const scriptName of HOOK_SCRIPT_NAMES) {
309
+ const sourcePath = join(SYNC_SOURCES.hooks, scriptName);
310
+ if (!existsSync$1(sourcePath)) return {
311
+ ok: false,
312
+ reason: `hook script missing from install: ${sourcePath}`,
313
+ ...none
314
+ };
315
+ copyFileSync$1(sourcePath, join(binDir, scriptName));
316
+ chmodSync$1(join(binDir, scriptName), 493);
317
+ binariesSynced++;
318
+ }
319
+ let settings = {};
320
+ if (existsSync$1(settingsPath)) try {
321
+ settings = JSON.parse(await readFile(settingsPath, "utf-8"));
322
+ } catch (err) {
323
+ return {
324
+ ok: false,
325
+ reason: `${settingsPath} is not valid JSON (${err instanceof Error ? err.message : String(err)}) — refusing to write; fix or restore a .pan-backup first`,
326
+ ...none,
327
+ binariesSynced
328
+ };
329
+ }
330
+ const python3Available = await commandAvailable("python3", ["--version"]);
331
+ const { added, removed } = applyOverdeckHookRegistrations(settings, binDir, { python3Available });
332
+ if (added.length === 0 && removed.length === 0) return {
333
+ ok: true,
334
+ changed: false,
335
+ binariesSynced,
336
+ registered: [],
337
+ pruned: []
338
+ };
339
+ backupSettingsSync(settingsPath);
340
+ atomicWriteJsonSync(settingsPath, settings);
341
+ pruneBackupsSync(settingsPath);
342
+ return {
343
+ ok: true,
344
+ changed: true,
345
+ binariesSynced,
346
+ registered: added,
347
+ pruned: removed
348
+ };
349
+ } catch (err) {
350
+ return {
351
+ ok: false,
352
+ reason: err instanceof Error ? err.message : String(err),
353
+ ...none
354
+ };
355
+ }
356
+ }
357
+ //#endregion
358
+ export { provisionClaudeHooks };
359
+
360
+ //# sourceMappingURL=claude-hooks-provision-D-jGXmu1.js.map
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { f as loadConfigSync, t as init_config_yaml } from "./config-yaml-ClpGgrf6.js";
2
+ import { f as loadConfigSync, t as init_config_yaml } from "./config-yaml-C_djSurJ.js";
3
3
  import "effect";
4
4
  //#region ../../lib/claude-permissions.ts
5
5
  /** Read PAN_YOLO from the current process env. Returns the implied mode, or undefined if unset/unparseable. */
@@ -94,4 +94,4 @@ var init_claude_permissions = __esmMin((() => {
94
94
  //#endregion
95
95
  export { init_claude_permissions as a, getClaudePermissionFlagsSync as i, buildClaudeUserSettingsSync as n, resolvePermissionModeSync as o, getClaudePermissionFlagsStringSync as r, BYPASS_PERMISSION_MODE as t };
96
96
 
97
- //# sourceMappingURL=claude-permissions-B6bWGh9d.js.map
97
+ //# sourceMappingURL=claude-permissions-DxIjkOVl.js.map
@@ -1,3 +1,3 @@
1
- import { n as init_claude_settings_overlay, r as injectOverdeckInfraDeny } from "./claude-settings-overlay-CRyyKKXQ.js";
1
+ import { n as init_claude_settings_overlay, r as injectOverdeckInfraDeny } from "./claude-settings-overlay-BPDS6GfE.js";
2
2
  init_claude_settings_overlay();
3
3
  export { injectOverdeckInfraDeny };
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { cr as FsError, vr as init_errors } from "./config-yaml-ClpGgrf6.js";
2
+ import { lr as FsError, yr as init_errors } from "./config-yaml-C_djSurJ.js";
3
3
  import { Effect, FileSystem } from "effect";
4
4
  import { join } from "path";
5
5
  import { homedir, tmpdir } from "os";
@@ -142,4 +142,4 @@ var init_claude_settings_overlay = __esmMin((() => {
142
142
  //#endregion
143
143
  export { init_claude_settings_overlay as n, injectOverdeckInfraDeny as r, detectProviderEnvConflicts as t };
144
144
 
145
- //# sourceMappingURL=claude-settings-overlay-CRyyKKXQ.js.map
145
+ //# sourceMappingURL=claude-settings-overlay-BPDS6GfE.js.map
@@ -0,0 +1,3 @@
1
+ import { r as init_cli, t as createResetMarker } from "./cli-s7bPWy-E.js";
2
+ init_cli();
3
+ export { createResetMarker };
@@ -1,11 +1,11 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Vr as init_paths } from "./config-yaml-ClpGgrf6.js";
3
- import { c as resolveMemoryRoot, i as init_paths$1, l as resolveObservationsFile, p as resolveSummariesDir, r as ensureParentDir } from "./paths-CVDLPxXp.js";
4
- import { t as init_agents } from "./agents-B5LfpLPv.js";
5
- import { i as init_settings } from "./settings-CxVate0h.js";
6
- import { r as init_health, t as init_providers } from "./providers-fLduChnX.js";
7
- import { a as withMemoryFtsDatabase, i as runMemoryFtsTransaction, n as init_fts_db } from "./fts-db-DAHW1yA_.js";
8
- import { r as init_rollup } from "./rollup-BrUIKMv_.js";
2
+ import { Hr as init_paths } from "./config-yaml-C_djSurJ.js";
3
+ import { c as resolveMemoryRoot, i as init_paths$1, l as resolveObservationsFile, p as resolveSummariesDir, r as ensureParentDir } from "./paths-CiVeo4N_.js";
4
+ import { t as init_agents } from "./agents-DqQa4Dq_.js";
5
+ import { i as init_settings } from "./settings-DrRQCren.js";
6
+ import { r as init_health, t as init_providers } from "./providers-CUdAb5Qu.js";
7
+ import { a as withMemoryFtsDatabase, i as runMemoryFtsTransaction, n as init_fts_db } from "./fts-db-CL-YzSRG.js";
8
+ import { r as init_rollup } from "./rollup-C22QDVxh.js";
9
9
  import { dirname, join } from "path";
10
10
  import { randomUUID } from "crypto";
11
11
  import { readFile, rename, writeFile } from "fs/promises";
@@ -194,7 +194,7 @@ async function writeResetMarkerToFtsDb(projectId, marker) {
194
194
  });
195
195
  }
196
196
  async function emitResetMarkerCreated(marker, timestamp) {
197
- const { initEventStore } = await import("./event-store-DU3HkZlN.js");
197
+ const { initEventStore } = await import("./event-store-C02Gprug.js");
198
198
  await (await initEventStore()).appendAsync({
199
199
  type: "memory.reset_marker_created",
200
200
  timestamp,
@@ -221,4 +221,4 @@ var init_cli = __esmMin((() => {
221
221
  //#endregion
222
222
  export { generateDailySummary as n, init_cli as r, createResetMarker as t };
223
223
 
224
- //# sourceMappingURL=cli-B75AieAM.js.map
224
+ //# sourceMappingURL=cli-s7bPWy-E.js.map
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Or as OVERDECK_HOME, Vr as init_paths, cr as FsError, mr as ProcessSpawnError, vr as init_errors, xr as BIN_DIR } from "./config-yaml-ClpGgrf6.js";
2
+ import { Hr as init_paths, Sr as BIN_DIR, hr as ProcessSpawnError, kr as OVERDECK_HOME, lr as FsError, yr as init_errors } from "./config-yaml-C_djSurJ.js";
3
3
  import { Data, Effect } from "effect";
4
4
  import { existsSync, mkdirSync, readFileSync, statSync, writeFileSync } from "fs";
5
5
  import { join } from "path";
@@ -496,4 +496,4 @@ var init_cliproxy = __esmMin((() => {
496
496
  //#endregion
497
497
  export { restartCliproxy as C, readPidFile as S, stopCliproxy as T, getCliproxyPidPath as _, CliproxyError as a, isCliproxyInstalled as b, bridgeGeminiAuthToCliproxy as c, getCliproxyAuthDir as d, getCliproxyBinary as f, getCliproxyLogPath as g, getCliproxyDir as h, CLIPROXY_PORT as i, decodeJwtPayload as l, getCliproxyConfigPath as m, CLIPROXY_BASE_URL as n, bridgeCodexAuthToCliproxy as o, getCliproxyClientEnv as p, CLIPROXY_HOST as r, bridgeCodexAuthToCliproxySync as s, CLIPROXY_AUTH_TOKEN as t, detectPlatformAsset as u, init_cliproxy as v, startCliproxy as w, isCliproxyRunning as x, installCliproxy as y };
498
498
 
499
- //# sourceMappingURL=cliproxy-CCzwuSNe.js.map
499
+ //# sourceMappingURL=cliproxy-BituqWtR.js.map
@@ -1,3 +1,3 @@
1
- import { v as init_cliproxy, x as isCliproxyRunning } from "./cliproxy-CCzwuSNe.js";
1
+ import { v as init_cliproxy, x as isCliproxyRunning } from "./cliproxy-BituqWtR.js";
2
2
  init_cliproxy();
3
3
  export { isCliproxyRunning };
@@ -1,5 +1,5 @@
1
- import { $n as extractPrefixSync, Qn as extractNumberSync, er as init_issue_id, tr as normalizeIssueIdSync } from "./config-yaml-ClpGgrf6.js";
2
- import { Mn as getAgentState, Vn as markAgentStoppedState, qn as saveAgentState, t as init_agents } from "./agents-B5LfpLPv.js";
1
+ import { $n as extractPrefixSync, Qn as extractNumberSync, er as init_issue_id, tr as normalizeIssueIdSync } from "./config-yaml-C_djSurJ.js";
2
+ import { Mn as getAgentState, Vn as markAgentStoppedState, qn as saveAgentState, t as init_agents } from "./agents-DqQa4Dq_.js";
3
3
  import { a as stepSkipped, i as stepOk, n as init_types, r as stepFailed, t as getLinearApiKey } from "./types-B5u3NxMl.js";
4
4
  import { Effect } from "effect";
5
5
  import { exec } from "child_process";
@@ -227,7 +227,7 @@ function closeRallyDirect(ctx) {
227
227
  async function closeRallyDirectImpl(ctx) {
228
228
  const step = "close-issue:transition";
229
229
  if (!ctx.rally) return stepFailed(step, "Rally config not provided");
230
- const { RallyTracker } = await import("./rally-Ba9QoNYc.js");
230
+ const { RallyTracker } = await import("./rally-CRteqXe0.js");
231
231
  const tracker = new RallyTracker({
232
232
  apiKey: ctx.rally.apiKey,
233
233
  server: ctx.rally.server,
@@ -327,4 +327,4 @@ async function applyLabelLinearImpl(ctx, apiKey) {
327
327
  //#endregion
328
328
  export { closeIssue as t };
329
329
 
330
- //# sourceMappingURL=close-issue-_X3MXJyG.js.map
330
+ //# sourceMappingURL=close-issue-CrBE7voz.js.map
@@ -1,2 +1,2 @@
1
- import { t as handleIssueStatusChangedClosed } from "./closed-issue-reaper-BsUfBSjM.js";
1
+ import { t as handleIssueStatusChangedClosed } from "./closed-issue-reaper-DX9mYUji.js";
2
2
  export { handleIssueStatusChangedClosed };
@@ -1,12 +1,12 @@
1
- import { Ft as resolveProjectForIssue, Ln as listProjectsSync, Nn as init_projects, Ot as init_record, Vr as init_paths, er as init_issue_id, yr as AGENTS_DIR } from "./config-yaml-ClpGgrf6.js";
1
+ import { Ft as resolveProjectForIssue, Hr as init_paths, Ln as listProjectsSync, Nn as init_projects, Ot as init_record, br as AGENTS_DIR, er as init_issue_id } from "./config-yaml-C_djSurJ.js";
2
2
  import { a as init_activity_logger, n as emitActivityEntrySync } from "./activity-logger-pcbf-e30.js";
3
- import { O as listSessionNames, w as killSession, x as init_tmux } from "./tmux-D57f-XNv.js";
4
- import { c as init_review_status, u as loadReviewStatuses } from "./review-status-gPndPUBc.js";
5
- import { K as stopAgent, Z as listRunningAgents, t as init_agents } from "./agents-B5LfpLPv.js";
6
- import { i as teardownWorkspaceDockerByNamePromise, n as init_docker } from "./docker-DDI1shu3.js";
7
- import { l as init_prd_locations, o as init_archive_planning } from "./archive-planning-oX1pj6nY.js";
8
- import { n as init_issue_closed, r as isIssueClosed } from "./issue-closed-Da3DeomA.js";
9
- import "./close-issue-_X3MXJyG.js";
3
+ import { O as listSessionNames, w as killSession, x as init_tmux } from "./tmux-BVc-NeKM.js";
4
+ import { c as init_review_status, u as loadReviewStatuses } from "./review-status-BcfwcAcO.js";
5
+ import { K as stopAgent, Z as listRunningAgents, t as init_agents } from "./agents-DqQa4Dq_.js";
6
+ import { i as teardownWorkspaceDockerByNamePromise, n as init_docker } from "./docker-D2TbXDO6.js";
7
+ import { l as init_prd_locations, o as init_archive_planning } from "./archive-planning-CPitEZo4.js";
8
+ import { n as init_issue_closed, r as isIssueClosed } from "./issue-closed-BYC2TCk-.js";
9
+ import "./close-issue-CrBE7voz.js";
10
10
  import { join } from "node:path";
11
11
  import { Data, Effect } from "effect";
12
12
  import "fs";
@@ -342,4 +342,4 @@ async function reconcileClosedIssueAgents() {
342
342
  //#endregion
343
343
  export { reconcileClosedIssueAgents as n, handleIssueStatusChangedClosed as t };
344
344
 
345
- //# sourceMappingURL=closed-issue-reaper-BsUfBSjM.js.map
345
+ //# sourceMappingURL=closed-issue-reaper-DX9mYUji.js.map
@@ -1,3 +1,3 @@
1
- import { a as extractThreadIdFromRollout, c as initCodexHome, d as waitForCodexRollout, f as writeThreadId, l as init_codex, o as findLatestRollout, s as findRolloutPath } from "./codex-B4KEpX5V.js";
1
+ import { a as extractThreadIdFromRollout, c as initCodexHome, d as waitForCodexRollout, f as writeThreadId, l as init_codex, o as findLatestRollout, s as findRolloutPath } from "./codex-CO0HrK3j.js";
2
2
  init_codex();
3
3
  export { extractThreadIdFromRollout, findLatestRollout, findRolloutPath, initCodexHome, waitForCodexRollout, writeThreadId };