@overdeck/desktop 0.45.10 → 0.45.12

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 (603) hide show
  1. package/drizzle/overdeck/0000_overdeck_init.sql +6 -0
  2. package/package.json +1 -1
  3. package/server/{acceptance-criteria-l0DSvFFS.js → acceptance-criteria-1LHgD9vg.js} +2 -2
  4. package/server/{advancing-selfheal-CMlGznKv.js → advancing-selfheal-BqsLWqEM.js} +4 -4
  5. package/server/{agent-gc-BtAzj8QN.js → agent-gc-CUb52n7s.js} +3 -3
  6. package/server/{agent-state-xk_G8t90.js → agent-state-D-moNwhA.js} +1 -1
  7. package/server/{agent-state-service-C1iUF9Ft.js → agent-state-service-BaZH7sXJ.js} +1 -1
  8. package/server/{agent-state-service-5ge9xxhx.js → agent-state-service-BzESvLOf.js} +4 -4
  9. package/server/{agents-DHvsjsuP.js → agents-B5LfpLPv.js} +256 -185
  10. package/server/{agents-BIggLvi_.js → agents-C4kZ8a2r.js} +1 -1
  11. package/server/{archive-planning-B4Qi02bk.js → archive-planning-BbZe-8IK.js} +1 -1
  12. package/server/{archive-planning-zTvWWHG_.js → archive-planning-oX1pj6nY.js} +3 -3
  13. package/server/{artifact-index-jobs-BrByqVkB.js → artifact-index-jobs-DGr6bxev.js} +3 -3
  14. package/server/{auto-commit-DoIPFoEs.js → auto-commit-CGQlb4rV.js} +1 -1
  15. package/server/{backlog-auto-trigger-COm_R96V.js → backlog-auto-trigger-BlJHikOm.js} +2 -2
  16. package/server/{bd-process-lock-CJkoG7hW.js → bd-process-lock-i3CYMS-B.js} +3 -3
  17. package/server/{beads-AmCXEv_E.js → beads-BNU-fb48.js} +1 -1
  18. package/server/{beads-DlZm-vrG.js → beads-DD7fYCl5.js} +4 -4
  19. package/server/{beads-query-BrVNWoSL.js → beads-query-e6oku4P5.js} +2 -2
  20. package/server/{behavior-By-2Wipv.js → behavior-CPf0pbOt.js} +2 -2
  21. package/server/{briefing-freshness-CXhZdnB8.js → briefing-freshness-B2FdLwIv.js} +27 -15
  22. package/server/{checkpoint-manager-CfNpHOp4.js → checkpoint-manager-JryW6MpM.js} +2 -2
  23. package/server/{checkpoint-manager-CPw51H2n.js → checkpoint-manager-eFgaMMu4.js} +1 -1
  24. package/server/checkpoint-worker.js +1 -1
  25. package/server/{checkpoints-BjlBWOA8.js → checkpoints-BK17oicz.js} +1 -1
  26. package/server/{checkpoints-BbfH1EIy.js → checkpoints-qvOqvMuC.js} +2 -2
  27. package/server/{claude-permissions-DrRAs_0F.js → claude-permissions-B6bWGh9d.js} +3 -3
  28. package/server/{claude-settings-overlay-CEWlIFL-.js → claude-settings-overlay-BPdhTPjo.js} +1 -1
  29. package/server/{claude-settings-overlay-BSeS7Ki3.js → claude-settings-overlay-CRyyKKXQ.js} +2 -2
  30. package/server/{cli-CvK9xuSS.js → cli-B75AieAM.js} +9 -9
  31. package/server/cli-Ch_BWJB2.js +3 -0
  32. package/server/{cliproxy-J-_1iIXe.js → cliproxy-CCzwuSNe.js} +2 -2
  33. package/server/{cliproxy-BOcmOK6l.js → cliproxy-DOQf66G9.js} +1 -1
  34. package/server/{close-issue-BnpErnD1.js → close-issue-_X3MXJyG.js} +4 -4
  35. package/server/{closed-issue-reaper-DRqK5k39.js → closed-issue-reaper-BsUfBSjM.js} +13 -13
  36. package/server/{closed-issue-reaper-BLCQwTpF.js → closed-issue-reaper-CLR7ClsO.js} +1 -1
  37. package/server/{codex-DcInrhok.js → codex-B4KEpX5V.js} +5 -5
  38. package/server/{codex-BUZjrnqH.js → codex-CY-QRuU9.js} +1 -1
  39. package/server/{compact-beads-omhUgj5b.js → compact-beads-cZds2MTr.js} +1 -1
  40. package/server/{compact-beads-RFwdZFPA.js → compact-beads-uEDccC76.js} +3 -3
  41. package/server/{config-oWoKf5jO.js → config-8sjaU6jZ.js} +2 -2
  42. package/server/{config-CzcWQ24p.js → config-DARrpYWA.js} +1 -1
  43. package/server/{config-yaml-DPAieL_G.js → config-yaml-ClpGgrf6.js} +100 -99
  44. package/server/{conflict-gate-BhKvrPxn.js → conflict-gate-BtB_o-Vi.js} +3 -3
  45. package/server/{conflict-gate-JdFuhKuF.js → conflict-gate-Ds9_2yjd.js} +1 -1
  46. package/server/{context-layers-DxKsseHI.js → context-layers-CRCk1QG7.js} +2 -2
  47. package/server/{context-layers-CTjQwcEQ.js → context-layers-r2ywnQYA.js} +3 -3
  48. package/server/{control-settings-BMqUkXmR.js → control-settings-D1B3u6HP.js} +4 -4
  49. package/server/{conversation-compaction-Ba5aZdrb.js → conversation-compaction-CZRVk4hg.js} +1 -1
  50. package/server/{conversation-compaction-C5o_eKEm.js → conversation-compaction-D86Zo2Ci.js} +9 -9
  51. package/server/{conversation-service-WKl-sw58.js → conversation-service-CkL-6MuG.js} +1 -1
  52. package/server/{conversation-service-DvG8vZSV.js → conversation-service-CuTVU8dV.js} +5 -5
  53. package/server/{conversations-Dcx6LeIh.js → conversations-BmWEluPL.js} +1 -1
  54. package/server/{conversations-DL_BAWVk.js → conversations-DfJKBDwB.js} +5 -5
  55. package/server/{cost-C2CuA66z.js → cost-CCnqa5xK.js} +2 -2
  56. package/server/{cost-DaOG8sUB.js → cost-DAPYN6iA.js} +3 -3
  57. package/server/{cost-sync-8lkDeL9g.js → cost-sync-BDL10Nwu.js} +3 -3
  58. package/server/{dag-jH8ZkewR.js → dag-Dv2r5bVD.js} +3 -3
  59. package/server/dashboard-db-worker.js +6 -6
  60. package/server/{deacon-j3qSZ7--.js → deacon-CM0MxbS8.js} +235 -178
  61. package/server/{deacon-Cv2RMfHs.js → deacon-DYnZH7kC.js} +3 -3
  62. package/server/{deacon-nudge-log-CJGA6aSQ.js → deacon-nudge-log-B-naf89q.js} +2 -2
  63. package/server/{deacon-swarm-DadWNi5J.js → deacon-swarm-BstYoz8Q.js} +17 -17
  64. package/server/deacon-swarm-CSWGRfzr.js +2 -0
  65. package/server/deacon.js +7 -7
  66. package/server/{devcontainer-renderer-DUJYYRQB.js → devcontainer-renderer-CaYOG9JN.js} +2 -2
  67. package/server/{docker-Q4bphryk.js → docker-DDI1shu3.js} +2 -2
  68. package/server/{ensure-devcontainer-BCB6fHp9.js → ensure-devcontainer-CbSXvN9W.js} +1 -1
  69. package/server/{ensure-devcontainer-XLL0vtgV.js → ensure-devcontainer-DCAg3ksz.js} +3 -3
  70. package/server/{event-store-DTJXZjCl.js → event-store-DCMqyI07.js} +3 -3
  71. package/server/{event-store-DIk9wvnS.js → event-store-DU3HkZlN.js} +1 -1
  72. package/server/{events-DGWZzye2.js → events-BfiosVAn.js} +3 -3
  73. package/server/{events-BlzVUyTx.js → events-DLRxpSuV.js} +1 -1
  74. package/server/{factory-rG4T40su.js → factory-BMtWV9iv.js} +4 -4
  75. package/server/{feature-registry-population-Dwyj9gEM.js → feature-registry-population-DA7bO6Zn.js} +5 -5
  76. package/server/{feature-registry-storage-CnGyNgAq.js → feature-registry-storage-nAY1fbBt.js} +3 -3
  77. package/server/{features-CYY2_Eeh.js → features-DMu7eGmU.js} +2 -2
  78. package/server/{feedback-target-C4DaDSZ8.js → feedback-target-B2SEai8-.js} +1 -1
  79. package/server/{feedback-target-oE4-Esxl.js → feedback-target-DHqcw3cN.js} +6 -6
  80. package/server/{feedback-writer-thrdxYpK.js → feedback-writer-DMBdS_jL.js} +1 -1
  81. package/server/{feedback-writer-DMaO0XXa.js → feedback-writer-qvm7UON7.js} +4 -4
  82. package/server/{flywheel-DefHRzY4.js → flywheel-D2LdPSic.js} +13 -13
  83. package/server/{flywheel-ClMjGW_u.js → flywheel-Dfpx4bIV.js} +11 -11
  84. package/server/{flywheel-BqDdGvrQ.js → flywheel-k4FPtCQ_.js} +1 -1
  85. package/server/{flywheel-merge-order-CuDcqTRJ.js → flywheel-merge-order-CB4lbXeJ.js} +6 -6
  86. package/server/{flywheel-merge-order-B6YDSElh.js → flywheel-merge-order-CttTazRY.js} +1 -1
  87. package/server/{forge-BixzckB0.js → forge-CoPFXFyl.js} +3 -3
  88. package/server/forge-IgLR0Ist.js +2 -0
  89. package/server/{from-D4xmArTA.js → from-B0YoJl9-.js} +2 -2
  90. package/server/{fts-db-DPtxOAjp.js → fts-db-DAHW1yA_.js} +2 -2
  91. package/server/{fts-operations-VrGjsT0w.js → fts-operations-DDXDBi0d.js} +3 -3
  92. package/server/{git-utils-D_cax3fD.js → git-utils-B90Zjzfl.js} +2 -2
  93. package/server/{git-utils-RAmTwjFB.js → git-utils-DbfC0zls.js} +1 -1
  94. package/server/{github-app-FMXgo3vK.js → github-app-BecAnXRX.js} +2 -2
  95. package/server/{github-app-B5PDHMyn.js → github-app-C7lftMNj.js} +1 -1
  96. package/server/{github-client-VRiB6N-4.js → github-client-BwtKZtM0.js} +1 -1
  97. package/server/{github-client-yjbXaqpR.js → github-client-D21rCIXk.js} +2 -2
  98. package/server/{github-pr-lookup-t8X8R0c0.js → github-pr-lookup-CzVWuysl.js} +2 -2
  99. package/server/{harness-resolve-DKeSVsJL.js → harness-resolve-SkRJm4a7.js} +3 -3
  100. package/server/{health-events-DaLX4-0a.js → health-events-BT0aAfeA.js} +2 -2
  101. package/server/{health-events-CD6q47ub.js → health-events-DA_JLpgZ.js} +1 -1
  102. package/server/{hooks-D-cbMUzQ.js → hooks-BQxRXtRb.js} +1 -1
  103. package/server/{hooks-CmHFSj_Z.js → hooks-DxEn2BoY.js} +2 -2
  104. package/server/{idle-stack-reaper-DdnERp3G.js → idle-stack-reaper-C7fJL8jH.js} +1 -1
  105. package/server/{idle-stack-reaper-DBKQ9SKu.js → idle-stack-reaper-DGy7tvC9.js} +2 -2
  106. package/server/{infra-CpKlYZA9.js → infra-DE3C4PMr.js} +22 -4
  107. package/server/{injection-CszhePD2.js → injection-Cc4Qt8LZ.js} +7 -7
  108. package/server/{injection-DKzL2Axk.js → injection-Dt22tGvS.js} +1 -1
  109. package/server/inspect-agent-CYoWAeeB.js +2 -0
  110. package/server/{inspect-agent-BKKc0XnB.js → inspect-agent-DOaCDkCF.js} +9 -9
  111. package/server/{internal-token-CQUx9YLc.js → internal-token-B_1YLWLI.js} +3 -3
  112. package/server/{internal-token-DrGdpLFo.js → internal-token-nobT6FhA.js} +1 -1
  113. package/server/{io-Wy8YpFeP.js → io-A7ZuOBkz.js} +2 -2
  114. package/server/{issue-closed-BO84g03t.js → issue-closed-Da3DeomA.js} +4 -4
  115. package/server/{issue-lifecycle-DnhQgddB.js → issue-lifecycle-543pQX9D.js} +28 -28
  116. package/server/{issue-lifecycle-nY4esZn8.js → issue-lifecycle-Bd9XBJAQ.js} +1 -1
  117. package/server/{issue-service-singleton-Bnqv1uaa.js → issue-service-singleton-BC2JLZi7.js} +1 -1
  118. package/server/{issue-service-singleton-_AquSBTl.js → issue-service-singleton-Brc3t0SV.js} +8 -8
  119. package/server/{issues-ChNcfHta.js → issues-D3kt9UWE.js} +2 -2
  120. package/server/{label-cleanup-bVXCGWBM.js → label-cleanup-w9X_T3AQ.js} +2 -2
  121. package/server/{layers-vdvlpFki.js → layers-Cwe1J-9o.js} +2 -2
  122. package/server/{lifecycle-CGKm7doE.js → lifecycle-f1GbDK33.js} +6 -6
  123. package/server/{lifecycle-io-DSrv9xGh.js → lifecycle-io-Bqvj0m3i.js} +4 -4
  124. package/server/{lifecycle-io-CdqPkCyk.js → lifecycle-io-D56q8zlO.js} +1 -1
  125. package/server/{linear-client-BxKvL6U8.js → linear-client-Bh4T4S-c.js} +1 -1
  126. package/server/{linear-client-E0HdXtWs.js → linear-client-CfJMTAYd.js} +2 -2
  127. package/server/memory-fts-worker.js +1 -1
  128. package/server/{merge-D3wEbmUJ.js → merge-DRMPa8CQ.js} +1 -1
  129. package/server/{merge-UlAwCk80.js → merge-ZrXFM3jv.js} +3 -3
  130. package/server/{merge-agent-BcgAYStl.js → merge-agent-CHHs5S_0.js} +25 -25
  131. package/server/{merge-agent-Dh8Y9PDO.js → merge-agent-CfohxFWM.js} +1 -1
  132. package/server/{merge-blockers-DwdQNsYD.js → merge-blockers-BMhDpMl_.js} +2 -2
  133. package/server/merge-ops-Czke6UAp.js +2 -0
  134. package/server/{merge-rebase-CH12_ufi.js → merge-rebase-R7MfqpiE.js} +2 -2
  135. package/server/{merge-set-TRxJwR-w.js → merge-set-B3Breacq.js} +3 -3
  136. package/server/{merge-set-rXK3ehnB.js → merge-set-D-iXNP0I.js} +1 -1
  137. package/server/{merge-sync-CaLRt2cB.js → merge-sync-DHWbGtjR.js} +2 -2
  138. package/server/{merge-sync-BKLKu9kz.js → merge-sync-bOOtfeXR.js} +1 -1
  139. package/server/{merge-train-DmxlYbEo.js → merge-train-98ptZrPT.js} +3 -3
  140. package/server/{merge-train-deps-DBHsOWt9.js → merge-train-deps-B5FWJTE2.js} +4 -4
  141. package/server/{merge-verification-DA9rvqsE.js → merge-verification-BGiuiXAK.js} +4 -4
  142. package/server/{multipart-parser-DtIEUW2B.js → multipart-parser-D7mzNNDm.js} +2 -2
  143. package/server/node_modules/.package-lock.json +1 -0
  144. package/server/{orphan-proposed-reconciler-Db8tUhce.js → orphan-proposed-reconciler-BSGCNJ6X.js} +9 -9
  145. package/server/{orphan-proposed-reconciler-mXV--tcB.js → orphan-proposed-reconciler-CSuxivr9.js} +1 -1
  146. package/server/package-lock.json +2 -0
  147. package/server/package.json +1 -0
  148. package/server/{pan-dir-BgBeeZDX.js → pan-dir-DoPtdHrp.js} +3 -3
  149. package/server/{paths-TE1GOZDr.js → paths-CVDLPxXp.js} +2 -2
  150. package/server/{pipeline-notifier-lwMa--Gz.js → pipeline-notifier-BtYHbBPl.js} +1 -1
  151. package/server/{pipeline-notifier-aX_5EqQO.js → pipeline-notifier-WD2dnOsR.js} +2 -2
  152. package/server/{projects-BNmVxnNt.js → projects-Bqfwuqet.js} +1 -1
  153. package/server/{prompts-CelsUdrx.js → prompts-Cg7e9FPb.js} +2 -2
  154. package/server/{providers-BOnRq5XK.js → providers-JjK6izqX.js} +1 -1
  155. package/server/{providers-4-xOzHQu.js → providers-fLduChnX.js} +7 -7
  156. package/server/public/assets/{chunk-BO2N2NFS-BjULspib.js → chunk-BO2N2NFS-aNlsGDCu.js} +4 -4
  157. package/server/public/assets/{diagram-OG6HWLK6-4ER5ovy_.js → diagram-OG6HWLK6-CnjkrvT8.js} +1 -1
  158. package/server/public/assets/{dist-CBUe_1pC.js → dist-Bg3Sbsx4.js} +3 -3
  159. package/server/public/assets/{dist-DVM-OI65.js → dist-CGKBCieA.js} +1 -1
  160. package/server/public/assets/{ganttDiagram-6RSMTGT7-DQ3nocJU.js → ganttDiagram-6RSMTGT7-C8LLKj23.js} +1 -1
  161. package/server/public/assets/{highlighted-body-OFNGDK62-BcLOHe75.js → highlighted-body-OFNGDK62-BSDEUvhW.js} +1 -1
  162. package/server/public/assets/{index-B-m-cSFg.css → index-CZiADHcL.css} +1 -1
  163. package/server/public/assets/index-LQIfhmgI.js +796 -0
  164. package/server/public/assets/{linear-Acq5WFAt.js → linear-DEbYZoxg.js} +1 -1
  165. package/server/public/assets/mermaid-GHXKKRXX-CZOsRYoT.js +1 -0
  166. package/server/public/assets/{pieDiagram-4H26LBE5-BEmjmqLh.js → pieDiagram-4H26LBE5-BtZL5pXE.js} +1 -1
  167. package/server/public/assets/{prod-D-3YYika.js → prod-DYVvIyuh.js} +4 -4
  168. package/server/public/assets/{quadrantDiagram-W4KKPZXB-DyeZ0jBC.js → quadrantDiagram-W4KKPZXB-a7vS8Jc8.js} +1 -1
  169. package/server/public/assets/{sankeyDiagram-5OEKKPKP-DSD--Pbl.js → sankeyDiagram-5OEKKPKP-Ckbq2SWH.js} +1 -1
  170. package/server/public/assets/{xychartDiagram-2RQKCTM6-idS7x7Bb.js → xychartDiagram-2RQKCTM6-DJyeNa99.js} +1 -1
  171. package/server/public/index.html +2 -2
  172. package/server/{pull-requests-CH4iBFLl.js → pull-requests-1WXmTBlo.js} +3 -3
  173. package/server/{pull-requests-DL_4klIb.js → pull-requests-D2SjJIwY.js} +1 -1
  174. package/server/{rally-D0mKv2t8.js → rally-8aQlLLVj.js} +3 -3
  175. package/server/rally-Ba9QoNYc.js +3 -0
  176. package/server/{rally-api-CcCdecF-.js → rally-api-BtvwdX6d.js} +1 -1
  177. package/server/{rally-api-DgAt6FbN.js → rally-api-H5I2CBO0.js} +2 -2
  178. package/server/{rally-client-DYjtgTOu.js → rally-client-33CYZYYu.js} +4 -4
  179. package/server/{rally-client-X0bEEN2B.js → rally-client-Bt-qHiOh.js} +1 -1
  180. package/server/{rebuild-stack-ByFCMqTK.js → rebuild-stack-CXSgAGPR.js} +1 -1
  181. package/server/{rebuild-stack-BLG3rlWa.js → rebuild-stack-KHkkrGjx.js} +6 -6
  182. package/server/{reconstruct-cache-_tDZ2D72.js → reconstruct-cache-D_Ml65_6.js} +7 -7
  183. package/server/{record-DjPikotp.js → record-De2syxNB.js} +1 -1
  184. package/server/{remote-TN0cV8k-.js → remote-CGuognN3.js} +3 -3
  185. package/server/{remote-B1Trmr0N.js → remote-D0Old0Cv.js} +3 -3
  186. package/server/{remote-agents-CmbIKw7E.js → remote-agents-DfhMq6kQ.js} +5 -5
  187. package/server/{remote-agents-DNuaAgU6.js → remote-agents-UHoi4oGr.js} +1 -1
  188. package/server/{remote-completion-Bklh6loJ.js → remote-completion-RZYePR_0.js} +12 -12
  189. package/server/resume-CmxF3Kjz.js +3 -0
  190. package/server/{review-agent-phzqNqIs.js → review-agent-sZBCpEVv.js} +35 -26
  191. package/server/review-agent-uwVftH98.js +3 -0
  192. package/server/{review-artifacts-BGc69epg.js → review-artifacts-C7a45b1_.js} +7 -7
  193. package/server/{review-context-CCq56O_Y.js → review-context-CErbQpKL.js} +7 -7
  194. package/server/{review-monitor-BKG2ubt5.js → review-monitor-DHD9m_kh.js} +2 -2
  195. package/server/{review-status-bBkqUj5i.js → review-status-JhQ3qlDS.js} +1 -1
  196. package/server/{review-status-enrichment-CGlcApSn.js → review-status-enrichment-qWvWckYN.js} +3 -3
  197. package/server/{review-status-BQjqQXZG.js → review-status-gPndPUBc.js} +66 -30
  198. package/server/{review-status-sync-BxHBVH8s.js → review-status-sync-B_GrEke8.js} +1 -1
  199. package/server/{review-status-sync-BWHnrq-k.js → review-status-sync-D3A9KX95.js} +2 -2
  200. package/server/{review-verdict-feedback-wqnikhMK.js → review-verdict-feedback-4WZ5ZdbC.js} +7 -7
  201. package/server/{review-verdict-feedback-cZh9Wi9G.js → review-verdict-feedback-Zo0r_z4m.js} +1 -1
  202. package/server/{rollup-DBNy1yFB.js → rollup-Bmhn80tB.js} +1 -1
  203. package/server/{rollup-BJE-Vc7H.js → rollup-BrUIKMv_.js} +7 -7
  204. package/server/{scanner-CUGpdp4i.js → scanner-BIGumel_.js} +7 -7
  205. package/server/{sequence-io-B2GmilSI.js → sequence-io-DA0akEQN.js} +5 -5
  206. package/server/{sequencer-agent-D8pW2aU_.js → sequencer-agent-DeflKafB.js} +6 -6
  207. package/server/server.js +576 -552
  208. package/server/{service-CILd-uOt.js → service-V0sUK-OR.js} +64 -64
  209. package/server/{session-fork-DDSDVoIK.js → session-fork-Yx3UcAQf.js} +2 -2
  210. package/server/{settings-CBrei_kx.js → settings-CFEeQRj2.js} +2 -2
  211. package/server/{settings-D2wt4nku.js → settings-CxVate0h.js} +3 -3
  212. package/server/settings-DEhYpW0k.js +2 -0
  213. package/server/{shadow-engineering-Ba1D0QUN.js → shadow-engineering-BRxnVSDk.js} +2 -2
  214. package/server/{shadow-state-BOaq8BrD.js → shadow-state-1aS8FijU.js} +1 -1
  215. package/server/{shadow-state-DTC7AMHc.js → shadow-state-BiMwdyl1.js} +2 -2
  216. package/server/{smart-compaction-CrP90OFE.js → smart-compaction-Bw1K_Sbl.js} +7 -7
  217. package/server/{smart-compaction-Bgp_gwcA.js → smart-compaction-xblMyVpT.js} +1 -1
  218. package/server/{spawn-planning-session-D15KbPOy.js → spawn-planning-session-CzDFSKAQ.js} +1 -1
  219. package/server/{spawn-planning-session-BmJWHSCu.js → spawn-planning-session-DxLxcM7m.js} +15 -15
  220. package/server/{specialist-context-CwKkcXL9.js → specialist-context-BfkTA81h.js} +5 -5
  221. package/server/{specialist-handoff-logger-B_2VsWli.js → specialist-handoff-logger-BiKuLtNm.js} +2 -2
  222. package/server/{specialist-logs-CvDxquV_.js → specialist-logs-CFJjGsLC.js} +3 -3
  223. package/server/{specialists-D07ybnam.js → specialists-B4byf18k.js} +156 -156
  224. package/server/{specialists-BCjcG4uE.js → specialists-BLIreoE7.js} +1 -1
  225. package/server/{specialists-F2uMO4QS.js → specialists-DdvpFNt1.js} +1 -1
  226. package/server/{specialists-BYi0k8CZ.js → specialists-DjHbwQ_p.js} +18 -18
  227. package/server/specs-CVH1kvz3.js +3 -0
  228. package/server/{src-Dp0WHgDZ.js → src-CALBEUMX.js} +3 -3
  229. package/server/{src-BswtmojL.js → src-mK_M_ZIj.js} +3 -3
  230. package/server/{stack-health-Deel1mSW.js → stack-health-BFM8YlHw.js} +1 -1
  231. package/server/{stack-health-BJVh1TCg.js → stack-health-Qd7rPiVe.js} +3 -3
  232. package/server/{state-home-Bgj7i-C7.js → state-home-C2Bicw9N.js} +6 -6
  233. package/server/{summary-fork-EjvOkEPl.js → summary-fork-DezPkJSm.js} +16 -16
  234. package/server/{summary-fork-DedqguZb.js → summary-fork-EWWBvzgE.js} +2 -2
  235. package/server/supervisor/chunk-ruWRV7i3.js +30 -0
  236. package/server/supervisor/paths-3R6b989k.js +224 -0
  237. package/server/supervisor/pty-supervisor.js +391 -0
  238. package/server/supervisor/pty-token-CScQ32Rj.js +43 -0
  239. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/LICENSE +69 -0
  240. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/README.md +67 -0
  241. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/binding.gyp +123 -0
  242. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/.editorconfig +2 -0
  243. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/.drone.yml +17 -0
  244. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/.gitattributes +19 -0
  245. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/LICENSE +21 -0
  246. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/Makefile +166 -0
  247. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/README.md +151 -0
  248. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/RELEASES.md +280 -0
  249. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/VERSION.txt +1 -0
  250. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/configure +167 -0
  251. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/BufferResizeTests.cc +90 -0
  252. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/ChangeScreenBuffer.cc +53 -0
  253. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/ClearConsole.cc +72 -0
  254. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/ConinMode.cc +117 -0
  255. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/ConinMode.ps1 +116 -0
  256. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/ConoutMode.cc +113 -0
  257. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/DebugClient.py +42 -0
  258. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/DebugServer.py +63 -0
  259. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/DumpLines.py +5 -0
  260. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/EnableExtendedFlags.txt +46 -0
  261. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/Font-Report-June2016/CP437-Consolas.txt +528 -0
  262. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/Font-Report-June2016/CP437-Lucida.txt +633 -0
  263. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/Font-Report-June2016/CP932.txt +630 -0
  264. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/Font-Report-June2016/CP936.txt +630 -0
  265. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/Font-Report-June2016/CP949.txt +630 -0
  266. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/Font-Report-June2016/CP950.txt +630 -0
  267. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/Font-Report-June2016/MinimumWindowWidths.txt +16 -0
  268. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/Font-Report-June2016/Results.txt +4 -0
  269. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/Font-Report-June2016/Windows10SetFontBugginess.txt +144 -0
  270. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/FontSurvey.cc +100 -0
  271. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/FormatChar.h +21 -0
  272. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/FreezePerfTest.cc +62 -0
  273. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/GetCh.cc +20 -0
  274. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/GetConsolePos.cc +41 -0
  275. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/GetFont.cc +261 -0
  276. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/IdentifyConsoleWindow.ps1 +51 -0
  277. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/IsNewConsole.cc +87 -0
  278. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/MouseInputNotes.txt +90 -0
  279. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/MoveConsoleWindow.cc +34 -0
  280. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/Notes.txt +219 -0
  281. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/OSVersion.cc +27 -0
  282. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/ScreenBufferFreezeInactive.cc +101 -0
  283. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/ScreenBufferTest.cc +671 -0
  284. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/ScreenBufferTest2.cc +151 -0
  285. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/SelectAllTest.cc +45 -0
  286. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/SetBufferSize.cc +32 -0
  287. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/SetCursorPos.cc +10 -0
  288. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/SetFont.cc +145 -0
  289. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/SetWindowRect.cc +36 -0
  290. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/ShowArgv.cc +12 -0
  291. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/ShowConsoleInput.cc +40 -0
  292. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/Spew.py +5 -0
  293. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/TestUtil.cc +172 -0
  294. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/UnicodeDoubleWidthTest.cc +102 -0
  295. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/UnicodeWideTest1.cc +246 -0
  296. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/UnicodeWideTest2.cc +130 -0
  297. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/UnixEcho.cc +89 -0
  298. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/Utf16Echo.cc +46 -0
  299. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/VeryLargeRead.cc +122 -0
  300. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/VkEscapeTest.cc +56 -0
  301. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/Win10ResizeWhileFrozen.cc +52 -0
  302. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/Win10WrapTest1.cc +57 -0
  303. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/Win10WrapTest2.cc +30 -0
  304. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/Win32Echo1.cc +26 -0
  305. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/Win32Echo2.cc +19 -0
  306. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/Win32Test1.cc +46 -0
  307. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/Win32Test2.cc +70 -0
  308. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/Win32Test3.cc +78 -0
  309. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/Win32Write1.cc +44 -0
  310. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/WindowsBugCrashReader.cc +27 -0
  311. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/WriteConsole.cc +106 -0
  312. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/build32.sh +9 -0
  313. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/build64.sh +9 -0
  314. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/color-test.sh +212 -0
  315. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/font-notes.txt +300 -0
  316. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/misc/winbug-15048.cc +201 -0
  317. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/ship/build-pty4j-libpty.bat +36 -0
  318. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/ship/common_ship.py +53 -0
  319. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/ship/make_msvc_package.py +165 -0
  320. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/ship/ship.py +108 -0
  321. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/Agent.cc +613 -0
  322. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/Agent.h +103 -0
  323. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/AgentCreateDesktop.cc +84 -0
  324. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/AgentCreateDesktop.h +28 -0
  325. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/ConsoleFont.cc +632 -0
  326. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/ConsoleFont.h +28 -0
  327. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/ConsoleInput.cc +852 -0
  328. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/ConsoleInput.h +109 -0
  329. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/ConsoleInputReencoding.cc +121 -0
  330. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/ConsoleInputReencoding.h +36 -0
  331. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/ConsoleLine.cc +152 -0
  332. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/ConsoleLine.h +41 -0
  333. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/Coord.h +87 -0
  334. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/DebugShowInput.cc +239 -0
  335. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/DebugShowInput.h +32 -0
  336. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/DefaultInputMap.cc +422 -0
  337. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/DefaultInputMap.h +28 -0
  338. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/DsrSender.h +30 -0
  339. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/EventLoop.cc +99 -0
  340. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/EventLoop.h +47 -0
  341. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/InputMap.cc +246 -0
  342. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/InputMap.h +114 -0
  343. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/LargeConsoleRead.cc +71 -0
  344. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/LargeConsoleRead.h +68 -0
  345. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/NamedPipe.cc +378 -0
  346. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/NamedPipe.h +125 -0
  347. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/Scraper.cc +699 -0
  348. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/Scraper.h +103 -0
  349. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/SimplePool.h +75 -0
  350. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/SmallRect.h +143 -0
  351. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/Terminal.cc +535 -0
  352. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/Terminal.h +69 -0
  353. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/UnicodeEncoding.h +157 -0
  354. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/UnicodeEncodingTest.cc +189 -0
  355. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/Win32Console.cc +107 -0
  356. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/Win32Console.h +67 -0
  357. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/Win32ConsoleBuffer.cc +193 -0
  358. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/Win32ConsoleBuffer.h +99 -0
  359. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/main.cc +114 -0
  360. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/agent/subdir.mk +61 -0
  361. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/configurations.gypi +60 -0
  362. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/debugserver/DebugServer.cc +117 -0
  363. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/debugserver/subdir.mk +41 -0
  364. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/include/winpty.h +242 -0
  365. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/include/winpty_constants.h +131 -0
  366. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/libwinpty/AgentLocation.cc +75 -0
  367. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/libwinpty/AgentLocation.h +28 -0
  368. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/libwinpty/LibWinptyException.h +54 -0
  369. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/libwinpty/WinptyInternal.h +72 -0
  370. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/libwinpty/subdir.mk +46 -0
  371. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/libwinpty/winpty.cc +970 -0
  372. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/AgentMsg.h +38 -0
  373. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/BackgroundDesktop.cc +122 -0
  374. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/BackgroundDesktop.h +73 -0
  375. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/Buffer.cc +103 -0
  376. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/Buffer.h +102 -0
  377. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/DebugClient.cc +187 -0
  378. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/DebugClient.h +38 -0
  379. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/GenRandom.cc +138 -0
  380. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/GenRandom.h +55 -0
  381. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/GetCommitHash.bat +13 -0
  382. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/Mutex.h +54 -0
  383. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/OsModule.h +63 -0
  384. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/OwnedHandle.cc +36 -0
  385. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/OwnedHandle.h +45 -0
  386. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/PrecompiledHeader.h +43 -0
  387. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/StringBuilder.h +227 -0
  388. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/StringBuilderTest.cc +114 -0
  389. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/StringUtil.cc +55 -0
  390. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/StringUtil.h +80 -0
  391. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/TimeMeasurement.h +63 -0
  392. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/UnixCtrlChars.h +45 -0
  393. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/UpdateGenVersion.bat +20 -0
  394. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/WindowsSecurity.cc +460 -0
  395. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/WindowsSecurity.h +104 -0
  396. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/WindowsVersion.cc +252 -0
  397. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/WindowsVersion.h +29 -0
  398. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/WinptyAssert.cc +55 -0
  399. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/WinptyAssert.h +64 -0
  400. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/WinptyException.cc +57 -0
  401. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/WinptyException.h +43 -0
  402. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/WinptyVersion.cc +42 -0
  403. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/WinptyVersion.h +27 -0
  404. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/shared/winpty_snprintf.h +99 -0
  405. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/subdir.mk +5 -0
  406. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/tests/subdir.mk +28 -0
  407. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/tests/trivial_test.cc +158 -0
  408. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/unix-adapter/InputHandler.cc +114 -0
  409. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/unix-adapter/InputHandler.h +56 -0
  410. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/unix-adapter/OutputHandler.cc +80 -0
  411. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/unix-adapter/OutputHandler.h +53 -0
  412. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/unix-adapter/Util.cc +86 -0
  413. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/unix-adapter/Util.h +31 -0
  414. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/unix-adapter/WakeupFd.cc +70 -0
  415. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/unix-adapter/WakeupFd.h +42 -0
  416. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/unix-adapter/main.cc +729 -0
  417. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/unix-adapter/subdir.mk +41 -0
  418. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/src/winpty.gyp +235 -0
  419. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/deps/winpty/vcbuild.bat +83 -0
  420. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/conpty_console_list_agent.js +20 -0
  421. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/conpty_console_list_agent.js.map +1 -0
  422. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/eventEmitter2.js +47 -0
  423. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/eventEmitter2.js.map +1 -0
  424. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/eventEmitter2.test.js +30 -0
  425. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/eventEmitter2.test.js.map +1 -0
  426. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/index.js +52 -0
  427. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/index.js.map +1 -0
  428. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/interfaces.js +7 -0
  429. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/interfaces.js.map +1 -0
  430. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/prebuild-file-path.js +18 -0
  431. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/prebuild-file-path.js.map +1 -0
  432. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/prebuild-loader.js +19 -0
  433. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/prebuild-loader.js.map +1 -0
  434. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/shared/conout.js +11 -0
  435. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/shared/conout.js.map +1 -0
  436. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/terminal.js +190 -0
  437. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/terminal.js.map +1 -0
  438. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/terminal.test.js +139 -0
  439. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/terminal.test.js.map +1 -0
  440. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/testUtils.test.js +28 -0
  441. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/testUtils.test.js.map +1 -0
  442. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/types.js +7 -0
  443. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/types.js.map +1 -0
  444. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/unixTerminal.js +290 -0
  445. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/unixTerminal.js.map +1 -0
  446. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/unixTerminal.test.js +352 -0
  447. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/unixTerminal.test.js.map +1 -0
  448. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/utils.js +17 -0
  449. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/utils.js.map +1 -0
  450. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/windowsConoutConnection.js +125 -0
  451. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/windowsConoutConnection.js.map +1 -0
  452. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/windowsPtyAgent.js +345 -0
  453. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/windowsPtyAgent.js.map +1 -0
  454. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/windowsPtyAgent.test.js +90 -0
  455. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/windowsPtyAgent.test.js.map +1 -0
  456. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/windowsTerminal.js +201 -0
  457. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/windowsTerminal.js.map +1 -0
  458. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/windowsTerminal.test.js +217 -0
  459. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/windowsTerminal.test.js.map +1 -0
  460. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/worker/conoutSocketWorker.js +22 -0
  461. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/lib/worker/conoutSocketWorker.js.map +1 -0
  462. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/package.json +79 -0
  463. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-arm/node.abi102.musl.node +0 -0
  464. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-arm/node.abi102.node +0 -0
  465. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-arm/node.abi108.musl.node +0 -0
  466. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-arm/node.abi108.node +0 -0
  467. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-arm/node.abi111.musl.node +0 -0
  468. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-arm/node.abi111.node +0 -0
  469. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-arm/node.abi115.musl.node +0 -0
  470. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-arm/node.abi115.node +0 -0
  471. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-arm/node.abi120.musl.node +0 -0
  472. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-arm/node.abi120.node +0 -0
  473. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-arm/node.abi127.musl.node +0 -0
  474. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-arm/node.abi127.node +0 -0
  475. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-arm/node.abi131.musl.node +0 -0
  476. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-arm/node.abi131.node +0 -0
  477. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-arm/node.abi137.musl.node +0 -0
  478. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-arm/node.abi137.node +0 -0
  479. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-arm64/node.abi102.musl.node +0 -0
  480. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-arm64/node.abi108.musl.node +0 -0
  481. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-arm64/node.abi108.node +0 -0
  482. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-arm64/node.abi111.musl.node +0 -0
  483. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-arm64/node.abi111.node +0 -0
  484. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-arm64/node.abi115.musl.node +0 -0
  485. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-arm64/node.abi115.node +0 -0
  486. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-arm64/node.abi120.musl.node +0 -0
  487. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-arm64/node.abi120.node +0 -0
  488. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-arm64/node.abi127.musl.node +0 -0
  489. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-arm64/node.abi127.node +0 -0
  490. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-arm64/node.abi131.musl.node +0 -0
  491. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-arm64/node.abi131.node +0 -0
  492. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-arm64/node.abi137.musl.node +0 -0
  493. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-arm64/node.abi137.node +0 -0
  494. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-ia32/node.abi108.node +0 -0
  495. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-ia32/node.abi111.node +0 -0
  496. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-ia32/node.abi115.node +0 -0
  497. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-ia32/node.abi120.node +0 -0
  498. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-ia32/node.abi127.node +0 -0
  499. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-ia32/node.abi131.node +0 -0
  500. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-ia32/node.abi137.node +0 -0
  501. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-x64/node.abi102.musl.node +0 -0
  502. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-x64/node.abi108.musl.node +0 -0
  503. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-x64/node.abi108.node +0 -0
  504. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-x64/node.abi111.musl.node +0 -0
  505. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-x64/node.abi111.node +0 -0
  506. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-x64/node.abi115.musl.node +0 -0
  507. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-x64/node.abi115.node +0 -0
  508. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-x64/node.abi120.musl.node +0 -0
  509. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-x64/node.abi120.node +0 -0
  510. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-x64/node.abi127.musl.node +0 -0
  511. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-x64/node.abi127.node +0 -0
  512. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-x64/node.abi131.musl.node +0 -0
  513. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-x64/node.abi131.node +0 -0
  514. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-x64/node.abi137.musl.node +0 -0
  515. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/prebuilds/linux-x64/node.abi137.node +0 -0
  516. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/scripts/check-prebuild.js +15 -0
  517. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/scripts/increment-version.js +54 -0
  518. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/scripts/install.js +18 -0
  519. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/scripts/post-install.js +83 -0
  520. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/src/conpty_console_list_agent.ts +19 -0
  521. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/src/eventEmitter2.test.ts +30 -0
  522. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/src/eventEmitter2.ts +48 -0
  523. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/src/index.ts +53 -0
  524. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/src/interfaces.ts +130 -0
  525. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/src/native.d.ts +54 -0
  526. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/src/prebuild-file-path.ts +21 -0
  527. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/src/prebuild-loader.ts +17 -0
  528. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/src/shared/conout.ts +15 -0
  529. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/src/terminal.test.ts +119 -0
  530. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/src/terminal.ts +211 -0
  531. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/src/testUtils.test.ts +23 -0
  532. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/src/tsconfig.json +22 -0
  533. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/src/types.ts +15 -0
  534. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/src/unix/pty.cc +796 -0
  535. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/src/unix/spawn-helper.cc +23 -0
  536. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/src/unixTerminal.test.ts +368 -0
  537. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/src/unixTerminal.ts +318 -0
  538. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/src/utils.ts +9 -0
  539. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/src/win/conpty.cc +583 -0
  540. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/src/win/conpty.h +41 -0
  541. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/src/win/conpty_console_list.cc +44 -0
  542. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/src/win/path_util.cc +95 -0
  543. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/src/win/path_util.h +26 -0
  544. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/src/win/winpty.cc +333 -0
  545. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/src/windowsConoutConnection.ts +82 -0
  546. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/src/windowsPtyAgent.test.ts +94 -0
  547. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/src/windowsPtyAgent.ts +342 -0
  548. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/src/windowsTerminal.test.ts +227 -0
  549. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/src/windowsTerminal.ts +208 -0
  550. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/src/worker/conoutSocketWorker.ts +22 -0
  551. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/third_party/conpty/1.22.250204002/win10-arm64/OpenConsole.exe +0 -0
  552. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/third_party/conpty/1.22.250204002/win10-arm64/conpty.dll +0 -0
  553. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/third_party/conpty/1.22.250204002/win10-x64/OpenConsole.exe +0 -0
  554. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/third_party/conpty/1.22.250204002/win10-x64/conpty.dll +0 -0
  555. package/server/supervisor/vendor/@homebridge/node-pty-prebuilt-multiarch/typings/node-pty.d.ts +230 -0
  556. package/server/{supervisor-0oXvLwyC.js → supervisor-D5GC5jUM.js} +8 -8
  557. package/server/supervisor-DQMK2e3I.js +2 -0
  558. package/server/{swarm-readiness-OBgamRql.js → swarm-readiness-Cf9mommA.js} +3 -3
  559. package/server/system-prerequisites-BsI9hxh9.js +166 -0
  560. package/server/{teardown-workspace-5LCVbjfq.js → teardown-workspace-CWz1pbEK.js} +12 -12
  561. package/server/{test-agent-queue-qfsq6uaC.js → test-agent-queue-TiVXe3ZT.js} +6 -6
  562. package/server/{test-verdict-D3Il7cBK.js → test-verdict-Bm4uv_AA.js} +2 -2
  563. package/server/{test-verdict-BkubHtti.js → test-verdict-CCDd25uN.js} +1 -1
  564. package/server/{tldr-daemon-CJqGsDFh.js → tldr-daemon-Big5IZ_M.js} +1 -1
  565. package/server/{tldr-daemon-CJW_P4On.js → tldr-daemon-C_1frSDj.js} +2 -2
  566. package/server/{tmux-ePNhMIMU.js → tmux-D57f-XNv.js} +2 -2
  567. package/server/{tmux-CeDD14p1.js → tmux-DClqWwb8.js} +1 -1
  568. package/server/{tracker-config-Drt_tx4D.js → tracker-config-B_Ubts1Z.js} +1 -1
  569. package/server/{tracker-config-C3hiPVAM.js → tracker-config-BmdJU_w6.js} +2 -2
  570. package/server/{tracker-utils-D6B8scEw.js → tracker-utils-Bg-Sevcv.js} +1 -1
  571. package/server/{tracker-utils-bpWs7Xyx.js → tracker-utils-CWFt6jjV.js} +2 -2
  572. package/server/{tunnel-3Ve8BS4H.js → tunnel-UBf2vyAL.js} +2 -2
  573. package/server/{tunnel-AporWhoi.js → tunnel-hOBNQbmF.js} +1 -1
  574. package/server/{uat-train-C3hWXtip.js → uat-train-DGkIkLxu.js} +1 -1
  575. package/server/{uat-train-CtNGgXxj.js → uat-train-qNanv5hN.js} +54 -54
  576. package/server/{validation-CbqP_dze.js → validation-B0QaLIHP.js} +1 -1
  577. package/server/{validation-BmUB-26g.js → validation-C4wegCvH.js} +3 -3
  578. package/server/{verification-runner-BPAhPWR7.js → verification-runner-CntudBes.js} +11 -11
  579. package/server/{verification-runner-DuZRHjPU.js → verification-runner-DdleMNLq.js} +1 -1
  580. package/server/{work-agent-prompt-DCdHsm-V.js → work-agent-prompt-CG5jFV9A.js} +11 -11
  581. package/server/{workflows-H-COJ84X.js → workflows-BK2xs_a8.js} +13 -13
  582. package/server/workflows-pKw9yRSV.js +2 -0
  583. package/server/{workspace-DYv9kBg6.js → workspace-C9lC5o3E.js} +1 -1
  584. package/server/{workspace-4ZufqeMe.js → workspace-CLrSIRCx.js} +3 -3
  585. package/server/{workspace-manager-CEWK-OXd.js → workspace-manager-BJhW2sky.js} +10 -10
  586. package/server/{workspace-manager-B3PqQQSM.js → workspace-manager-Cb2a7bg9.js} +1 -1
  587. package/server/{workspace-metadata-C0I-nIDL.js → workspace-metadata-CTRnr323.js} +1 -1
  588. package/server/{workspace-metadata-1eu1RvAT.js → workspace-metadata-QQmo_Z0l.js} +2 -2
  589. package/server/{workspaces-CRU9_vRn.js → workspaces-Ca4zZs12.js} +223 -223
  590. package/server/cli-CJDWXE_Y.js +0 -3
  591. package/server/deacon-swarm-D1iAUX-P.js +0 -2
  592. package/server/forge-BfP7OJwK.js +0 -2
  593. package/server/inspect-agent-vm88mLYr.js +0 -2
  594. package/server/merge-ops-QdBiQ8XB.js +0 -2
  595. package/server/public/assets/index-DdqPXf3T.js +0 -796
  596. package/server/public/assets/mermaid-GHXKKRXX-BTHbMU88.js +0 -1
  597. package/server/rally-DffLLIdl.js +0 -3
  598. package/server/resume-DnIsmIgC.js +0 -3
  599. package/server/review-agent-DgySDb-G.js +0 -3
  600. package/server/settings-vLoKyghx.js +0 -2
  601. package/server/specs-DeS98l_p.js +0 -3
  602. package/server/supervisor-D1-XwmZ7.js +0 -2
  603. package/server/workflows-Cz8OtiB4.js +0 -2
@@ -1,46 +1,46 @@
1
1
  import { n as __esmMin, o as __toESM } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { $ as getModelCapabilitySync, Br as getOverdeckHome, C as resolveTieredExecutionEnabled, Dn as getProjectSync, En as getProjectSwarmHotspots, Ft as resolveProjectForIssue, Gn as resolveProjectFromIssueSync, Gr as sessionFilePath, H as ensureOpenAICompatibleProxyRunning, I as getProviderEnvSync, L as getProviderForModelSync, Lr as encodeClaudeProjectDir, Lt as writeAgentHarnessModelSync, Mt as readIssueRecordForWorkspaceSync, N as clearCredentialFileAuthSync, Nn as init_projects, Nt as readIssueRecordSync, Or as OVERDECK_HOME, Ot as init_record, P as getBuiltInDefaultHarness, R as init_providers, S as init_tier_table, U as init_openai_compatible_proxy, Ur as packageRoot, V as setupCredentialFileAuthSync, Vr as init_paths, Wr as resolveOhmypiExtensionPath, X as resolveModel, Y as init_roles, at as fmix32, b as TIERED_EXECUTION_DIFFICULTIES, bn as findProjectByPathSync, cr as FsError, er as init_issue_id, f as loadConfigSync, fn as init_state_read_home, ir as require_dist, it as resolveModelIdSync, l as isClaudeCodeChannelsMcpEnabled, mn as shouldCommitLegacyWorkspaceArtifacts, nt as init_model_capabilities, or as ClaudeCredentialParseError, ot as fnv1a32, rr as resolveBareNumericIdSync, sr as ConfigError, st as init_percent, t as init_config_yaml, tt as hasModelCapabilitySync, u as isTldrEnabledSync, vr as init_errors, w as resolveTieredExecutionEnabledForIssue, wn as getIssuePrefix, y as DEFAULT_TIERED_EXECUTION_CONFIG, yr as AGENTS_DIR } from "./config-yaml-DPAieL_G.js";
2
+ import { $ as getModelCapabilitySync, Br as getOverdeckHome, C as resolveTieredExecutionEnabled, Dn as getProjectSync, En as getProjectSwarmHotspots, Ft as resolveProjectForIssue, Gn as resolveProjectFromIssueSync, Gr as sessionFilePath, H as ensureOpenAICompatibleProxyRunning, I as getProviderEnvSync, L as getProviderForModelSync, Lr as encodeClaudeProjectDir, Lt as writeAgentHarnessModelSync, Mt as readIssueRecordForWorkspaceSync, N as clearCredentialFileAuthSync, Nn as init_projects, Nt as readIssueRecordSync, Or as OVERDECK_HOME, Ot as init_record, P as getBuiltInDefaultHarness, R as init_providers, S as init_tier_table, U as init_openai_compatible_proxy, Ur as packageRoot, V as setupCredentialFileAuthSync, Vr as init_paths, Wr as resolveOhmypiExtensionPath, X as resolveModel, Y as init_roles, at as fmix32, b as TIERED_EXECUTION_DIFFICULTIES, bn as findProjectByPathSync, cr as FsError, er as init_issue_id, f as loadConfigSync, fn as init_state_read_home, ir as require_dist, it as resolveModelIdSync, l as isClaudeCodeChannelsMcpEnabled, mn as shouldCommitLegacyWorkspaceArtifacts, nt as init_model_capabilities, or as ClaudeCredentialParseError, ot as fnv1a32, rr as resolveBareNumericIdSync, sr as ConfigError, st as init_percent, t as init_config_yaml, tt as hasModelCapabilitySync, u as isTldrEnabledSync, vr as init_errors, w as resolveTieredExecutionEnabledForIssue, wn as getIssuePrefix, y as DEFAULT_TIERED_EXECUTION_CONFIG, yr as AGENTS_DIR } from "./config-yaml-ClpGgrf6.js";
3
3
  import { t as require_toml } from "./toml-CeLDATih.js";
4
4
  import { a as init_activity_logger, n as emitActivityEntrySync, r as emitActivityTtsSync } from "./activity-logger-pcbf-e30.js";
5
- import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-CpKlYZA9.js";
6
- import { A as listSessionsSync, C as isPaneDead, E as listPaneValues, I as sendRawKeystroke, L as sessionExists, N as sendEscapeKeyAsync, P as sendKeys, R as sessionExistsSync, T as killSessionSync, W as BLANKED_PROVIDER_ENV, a as capturePaneSync, d as exactPaneTarget, i as capturePane, k as listSessions, o as createSession, q as init_child_env, s as createSessionSync, w as killSession, x as init_tmux, z as setOption } from "./tmux-ePNhMIMU.js";
7
- import { a as init_event_store, i as initEventStore } from "./event-store-DTJXZjCl.js";
5
+ import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-DE3C4PMr.js";
6
+ import { A as listSessionsSync, C as isPaneDead, E as listPaneValues, I as sendRawKeystroke, L as sessionExists, N as sendEscapeKeyAsync, P as sendKeys, R as sessionExistsSync, T as killSessionSync, W as BLANKED_PROVIDER_ENV, a as capturePaneSync, d as exactPaneTarget, i as capturePane, k as listSessions, o as createSession, q as init_child_env, s as createSessionSync, w as killSession, x as init_tmux, z as setOption } from "./tmux-D57f-XNv.js";
7
+ import { a as init_event_store, i as initEventStore } from "./event-store-DCMqyI07.js";
8
8
  import { a as getHarnessBehavior, i as OHMYPI_BEHAVIOR } from "./src-fgbU-jJ-.js";
9
- import { A as listOverdeckAgentStatesSync, E as readReviewStatusMap, O as getOverdeckAgentStateSync, T as init_review_status_source, c as init_review_status, j as saveOverdeckAgentStateSync, k as init_agent_state_sync, m as resetPipelineVerdictsForWorkStartSync } from "./review-status-BQjqQXZG.js";
10
- import { d as init_agents$1, l as countAgentsByStatus, n as ensureSessionContextBriefingFile, r as init_briefing_freshness } from "./briefing-freshness-CXhZdnB8.js";
11
- import { o as getPricingSync, s as init_cost } from "./cost-C2CuA66z.js";
12
- import { t as init_behavior } from "./behavior-By-2Wipv.js";
13
- import { _ as init_tier_metrics, g as estimateFeedDeliveryTokens, v as recordTierFeedDelivery } from "./cost-sync-8lkDeL9g.js";
9
+ import { A as listOverdeckAgentStatesSync, E as readReviewStatusMap, O as getOverdeckAgentStateSync, T as init_review_status_source, c as init_review_status, j as saveOverdeckAgentStateSync, k as init_agent_state_sync, m as resetPipelineVerdictsForWorkStartSync } from "./review-status-gPndPUBc.js";
10
+ import { d as init_agents$1, l as countAgentsByStatus, n as ensureSessionContextBriefingFile, r as init_briefing_freshness } from "./briefing-freshness-B2FdLwIv.js";
11
+ import { o as getPricingSync, s as init_cost } from "./cost-CCnqa5xK.js";
12
+ import { t as init_behavior } from "./behavior-CPf0pbOt.js";
13
+ import { _ as init_tier_metrics, g as estimateFeedDeliveryTokens, v as recordTierFeedDelivery } from "./cost-sync-BDL10Nwu.js";
14
14
  import { n as init_agent_runtime_mirror, r as isAgentStateServiceInProcess, t as getRuntimeSnapshot } from "./agent-runtime-mirror-DrWxopNA.js";
15
- import { i as ensureInternalTokenSync, s as init_internal_token, t as INTERNAL_TOKEN_HEADER } from "./internal-token-CQUx9YLc.js";
16
- import { m as readWorkspacePlanSync, o as init_io } from "./io-Wy8YpFeP.js";
17
- import { c as bridgeGeminiAuthToCliproxy, p as getCliproxyClientEnv, s as bridgeCodexAuthToCliproxySync, v as init_cliproxy } from "./cliproxy-J-_1iIXe.js";
18
- import { f as init_config$1, m as loadConfigSync$1 } from "./config-oWoKf5jO.js";
19
- import { L as normalizeHarness, R as reactivateConversationForSpawn, S as getConversationByName, k as init_conversations, y as createConversation } from "./conversations-DL_BAWVk.js";
20
- import { n as recordFeatureRegistryLifecycle, t as init_feature_registry_population } from "./feature-registry-population-Dwyj9gEM.js";
21
- import { a as readCavemanVariant, n as init_workspace } from "./workspace-4ZufqeMe.js";
22
- import { a as init_launcher_generator, c as requireModelOverrideSync, i as generateLauncherScriptSync, l as shellQuoteModelIdSync, n as init_state_home, o as init_model_validation, r as isStateMigrated, s as normalizeModelOverrideSync } from "./state-home-Bgj7i-C7.js";
23
- import { a as init_claude_permissions, r as getClaudePermissionFlagsStringSync } from "./claude-permissions-DrRAs_0F.js";
24
- import { h as workspaceContextFile, o as init_layers } from "./layers-vdvlpFki.js";
25
- import { a as extractThreadIdFromRollout, c as initCodexHome, l as init_codex, o as findLatestRollout } from "./codex-DcInrhok.js";
26
- import { a as getFlywheelActiveRunIdSync, s as init_control_settings } from "./control-settings-BMqUkXmR.js";
27
- import { n as createTrackerFromConfig, r as init_factory, t as createTracker } from "./factory-rG4T40su.js";
28
- import { a as init_stack_health, i as getWorkspaceStackHealth } from "./stack-health-BJVh1TCg.js";
29
- import { a as createActiveSlice, c as groupItemsByWave, s as getDispatchableItems, u as init_dag } from "./dag-jH8ZkewR.js";
30
- import { n as init_bd_process_lock, t as BdTransientFailure } from "./bd-process-lock-CJkoG7hW.js";
31
- import { n as assertIssueHasBeads, r as init_beads_query, t as BeadsMissingError } from "./beads-query-BrVNWoSL.js";
32
- import { c as generateFixedPointPromptSync, f as initHookSync, n as checkHookSync, p as init_hooks } from "./hooks-CmHFSj_Z.js";
33
- import { n as resolveHarness, t as init_harness_resolve } from "./harness-resolve-DKeSVsJL.js";
15
+ import { i as ensureInternalTokenSync, s as init_internal_token, t as INTERNAL_TOKEN_HEADER } from "./internal-token-B_1YLWLI.js";
16
+ import { m as readWorkspacePlanSync, o as init_io } from "./io-A7ZuOBkz.js";
17
+ import { c as bridgeGeminiAuthToCliproxy, p as getCliproxyClientEnv, s as bridgeCodexAuthToCliproxySync, v as init_cliproxy } from "./cliproxy-CCzwuSNe.js";
18
+ import { f as init_config$1, m as loadConfigSync$1 } from "./config-8sjaU6jZ.js";
19
+ import { L as normalizeHarness, R as reactivateConversationForSpawn, S as getConversationByName, k as init_conversations, y as createConversation } from "./conversations-DfJKBDwB.js";
20
+ import { n as recordFeatureRegistryLifecycle, t as init_feature_registry_population } from "./feature-registry-population-DA7bO6Zn.js";
21
+ import { a as readCavemanVariant, n as init_workspace } from "./workspace-CLrSIRCx.js";
22
+ import { a as init_launcher_generator, c as requireModelOverrideSync, i as generateLauncherScriptSync, l as shellQuoteModelIdSync, n as init_state_home, o as init_model_validation, r as isStateMigrated, s as normalizeModelOverrideSync } from "./state-home-C2Bicw9N.js";
23
+ import { a as init_claude_permissions, r as getClaudePermissionFlagsStringSync } from "./claude-permissions-B6bWGh9d.js";
24
+ import { h as workspaceContextFile, o as init_layers } from "./layers-Cwe1J-9o.js";
25
+ import { a as extractThreadIdFromRollout, c as initCodexHome, l as init_codex, o as findLatestRollout } from "./codex-B4KEpX5V.js";
26
+ import { a as getFlywheelActiveRunIdSync, s as init_control_settings } from "./control-settings-D1B3u6HP.js";
27
+ import { n as createTrackerFromConfig, r as init_factory, t as createTracker } from "./factory-BMtWV9iv.js";
28
+ import { a as init_stack_health, i as getWorkspaceStackHealth } from "./stack-health-Qd7rPiVe.js";
29
+ import { a as createActiveSlice, c as groupItemsByWave, s as getDispatchableItems, u as init_dag } from "./dag-Dv2r5bVD.js";
30
+ import { n as init_bd_process_lock, t as BdTransientFailure } from "./bd-process-lock-i3CYMS-B.js";
31
+ import { n as assertIssueHasBeads, r as init_beads_query, t as BeadsMissingError } from "./beads-query-e6oku4P5.js";
32
+ import { c as generateFixedPointPromptSync, f as initHookSync, n as checkHookSync, p as init_hooks } from "./hooks-DxEn2BoY.js";
33
+ import { n as resolveHarness, t as init_harness_resolve } from "./harness-resolve-SkRJm4a7.js";
34
34
  import { r as isRoleTerminal, t as init_reap_terminal_sessions } from "./reap-terminal-sessions-CAmURC2h.js";
35
- import { a as init_lifecycle_io, t as appendContinueSessionEntryForIssue } from "./lifecycle-io-DSrv9xGh.js";
36
- import { r as init_swarm_readiness, t as analyzeSwarmReadiness } from "./swarm-readiness-OBgamRql.js";
35
+ import { a as init_lifecycle_io, t as appendContinueSessionEntryForIssue } from "./lifecycle-io-Bqvj0m3i.js";
36
+ import { r as init_swarm_readiness, t as analyzeSwarmReadiness } from "./swarm-readiness-Cf9mommA.js";
37
+ import { dirname, join } from "node:path";
37
38
  import { Data, Duration, Effect, FileSystem } from "effect";
38
39
  import { appendFileSync, existsSync, mkdirSync, readFileSync, statSync, statfsSync, unlinkSync, writeFileSync } from "fs";
39
- import { basename, dirname, join, resolve } from "path";
40
+ import { basename as basename$1, dirname as dirname$1, join as join$1, resolve as resolve$1 } from "path";
40
41
  import { homedir } from "os";
41
42
  import "node:os";
42
- import { chmodSync as chmodSync$1, closeSync as closeSync$1, constants, createReadStream as createReadStream$1, existsSync as existsSync$1, mkdirSync as mkdirSync$1, openSync as openSync$1, readFileSync as readFileSync$1, readdirSync as readdirSync$1, statSync as statSync$1, unlinkSync as unlinkSync$1, writeFileSync as writeFileSync$1, writeSync } from "node:fs";
43
- import { join as join$1 } from "node:path";
43
+ import { chmodSync as chmodSync$1, closeSync as closeSync$1, constants, cpSync, createReadStream as createReadStream$1, existsSync as existsSync$1, mkdirSync as mkdirSync$1, openSync as openSync$1, readFileSync as readFileSync$1, readdirSync as readdirSync$1, renameSync as renameSync$1, rmSync as rmSync$1, statSync as statSync$1, unlinkSync as unlinkSync$1, writeFileSync as writeFileSync$1, writeSync } from "node:fs";
44
44
  import { chmod, mkdir, readFile, stat as stat$1, writeFile } from "node:fs/promises";
45
45
  import { randomUUID } from "crypto";
46
46
  import { ChildProcess } from "effect/unstable/process";
@@ -50,7 +50,8 @@ import { exec, execFile } from "node:child_process";
50
50
  import { promisify } from "node:util";
51
51
  import { exec as exec$1, execSync as execSync$1 } from "child_process";
52
52
  import { promisify as promisify$1 } from "util";
53
- import { randomBytes, randomUUID as randomUUID$1 } from "node:crypto";
53
+ import { createHash as createHash$1, randomBytes, randomUUID as randomUUID$1 } from "node:crypto";
54
+ import { fileURLToPath } from "node:url";
54
55
  import { ChildProcessSpawner as ChildProcessSpawner$1 } from "effect/unstable/process/ChildProcessSpawner";
55
56
  import { layer } from "@effect/platform-node/NodeServices";
56
57
  import { request } from "node:http";
@@ -357,7 +358,7 @@ var init_ohmypi_parser = __esmMin((() => {
357
358
  //#endregion
358
359
  //#region ../../lib/overdeck/agent-rollback-state.ts
359
360
  function getRollbackAgentStatePath(agentId) {
360
- return join$1(getOverdeckHome(), "agents", agentId, AGENT_STATE_ROLLBACK_FILE);
361
+ return join(getOverdeckHome(), "agents", agentId, AGENT_STATE_ROLLBACK_FILE);
361
362
  }
362
363
  function readRollbackAgentStateSync(agentId, parse) {
363
364
  const stateFile = getRollbackAgentStatePath(agentId);
@@ -366,7 +367,7 @@ function readRollbackAgentStateSync(agentId, parse) {
366
367
  }
367
368
  function writeRollbackAgentStateSync(state, serialize) {
368
369
  const stateFile = getRollbackAgentStatePath(state.id);
369
- mkdirSync$1(join$1(getOverdeckHome(), "agents", state.id), { recursive: true });
370
+ mkdirSync$1(join(getOverdeckHome(), "agents", state.id), { recursive: true });
370
371
  writeFileSync$1(stateFile, serialize(state));
371
372
  }
372
373
  var AGENT_STATE_ROLLBACK_FILE;
@@ -504,7 +505,7 @@ function getAgentRuntimeStateSync(agentId) {
504
505
  }
505
506
  async function patchRuntimeJson(agentId, patch) {
506
507
  const agentDir = getAgentDir(agentId);
507
- const runtimeFile = join(agentDir, "runtime.json");
508
+ const runtimeFile = join$1(agentDir, "runtime.json");
508
509
  let runtime = {};
509
510
  try {
510
511
  runtime = JSON.parse(await readFile$1(runtimeFile, "utf-8"));
@@ -629,7 +630,7 @@ function resolveAgentTargetSync(input) {
629
630
  * Get path to agent's ready signal file (written by SessionStart hook)
630
631
  */
631
632
  function getReadySignalPath(agentId) {
632
- return join(getOverdeckHome(), "agents", agentId, "ready.json");
633
+ return join$1(getOverdeckHome(), "agents", agentId, "ready.json");
633
634
  }
634
635
  /**
635
636
  * Clear ready signal before spawning (clean slate)
@@ -698,12 +699,87 @@ var init_identity = __esmMin((() => {
698
699
  SINGLETON_AGENT_IDS = new Set(["flywheel-orchestrator", "sequencer-runner"]);
699
700
  }));
700
701
  //#endregion
702
+ //#region ../../lib/channels/pty-supervisor-locate.ts
703
+ /**
704
+ * Locate (and if necessary materialize) the PTY supervisor artifact.
705
+ *
706
+ * The supervisor (dist/pty-supervisor.js, built by the root tsdown config) is
707
+ * spawned inside the agent/conversation tmux session under the HOST `node`,
708
+ * and the session must outlive the process that spawned it. That rules out
709
+ * running it from inside a packaged desktop app: the Linux AppImage is a
710
+ * transient FUSE mount that disappears when the app quits, and the staged
711
+ * dashboard node_modules carry an Electron-ABI node-pty that host node cannot
712
+ * load. So the desktop packaging stages a host-runnable copy — the supervisor
713
+ * chunk closure plus a pristine multiarch-prebuilt node-pty — next to the
714
+ * server bundle (server/supervisor/, see
715
+ * apps/desktop/scripts/prepare-server-resources.mjs), and this module copies
716
+ * it onto real disk under ${OVERDECK_HOME}/runtime/ before first use
717
+ * (PAN-2592).
718
+ *
719
+ * Resolution order:
720
+ * 1. <packageRoot>/dist/pty-supervisor.js — dev checkouts, `pan up`, and
721
+ * npm-global @overdeck/core installs (node-pty resolves from the package
722
+ * root's own node_modules).
723
+ * 2. <bundleDir>/supervisor/pty-supervisor.js — desktop layouts; the staged
724
+ * tree is materialized to ${OVERDECK_HOME}/runtime/pty-supervisor/<hash>/
725
+ * (content-hash keyed, so an app upgrade refreshes it) and the vendored
726
+ * packages land under node_modules/ there for normal Node resolution.
727
+ *
728
+ * Missing everywhere is a build/packaging defect and throws — never silently
729
+ * degrade a spawn that the caller expects to be supervised.
730
+ */
731
+ function resolvePtySupervisorScriptPath() {
732
+ const built = join(packageRoot, "dist", "pty-supervisor.js");
733
+ if (existsSync$1(built)) return built;
734
+ const staged = join(moduleDir, "supervisor");
735
+ if (existsSync$1(join(staged, "pty-supervisor.js"))) return materializePtySupervisorRuntime(staged);
736
+ throw new Error("pty-supervisor build artifact missing — run `npm run build`.");
737
+ }
738
+ /**
739
+ * Copy the staged supervisor tree to durable disk and return the entry path.
740
+ * Idempotent and race-safe: the copy lands in a temp dir and is renamed into
741
+ * place; the target is keyed by the entry file's content hash.
742
+ */
743
+ function materializePtySupervisorRuntime(stagedDir, overdeckHome = getOverdeckHome()) {
744
+ const stagedEntry = join(stagedDir, "pty-supervisor.js");
745
+ const targetDir = join(overdeckHome, "runtime", "pty-supervisor", createHash$1("sha256").update(readFileSync$1(stagedEntry)).digest("hex").slice(0, 16));
746
+ const entry = join(targetDir, "pty-supervisor.js");
747
+ if (existsSync$1(entry)) return entry;
748
+ const tmpDir = `${targetDir}.tmp-${process.pid}`;
749
+ rmSync$1(tmpDir, {
750
+ recursive: true,
751
+ force: true
752
+ });
753
+ mkdirSync$1(tmpDir, { recursive: true });
754
+ for (const name of readdirSync$1(stagedDir)) {
755
+ if (name === "vendor") continue;
756
+ cpSync(join(stagedDir, name), join(tmpDir, name), { recursive: true });
757
+ }
758
+ const vendorDir = join(stagedDir, "vendor");
759
+ if (existsSync$1(vendorDir)) cpSync(vendorDir, join(tmpDir, "node_modules"), { recursive: true });
760
+ try {
761
+ renameSync$1(tmpDir, targetDir);
762
+ } catch (err) {
763
+ rmSync$1(tmpDir, {
764
+ recursive: true,
765
+ force: true
766
+ });
767
+ if (!existsSync$1(entry)) throw err;
768
+ }
769
+ return entry;
770
+ }
771
+ var moduleDir;
772
+ var init_pty_supervisor_locate = __esmMin((() => {
773
+ init_paths();
774
+ moduleDir = dirname(fileURLToPath(import.meta.url));
775
+ }));
776
+ //#endregion
701
777
  //#region ../../lib/pty-token.ts
702
778
  function ptyTokenDir(agentId) {
703
- return join$1(getOverdeckHome(), "agents", agentId);
779
+ return join(getOverdeckHome(), "agents", agentId);
704
780
  }
705
781
  function getPtyTokenPath(agentId) {
706
- return join$1(ptyTokenDir(agentId), "pty-token");
782
+ return join(ptyTokenDir(agentId), "pty-token");
707
783
  }
708
784
  async function readPtyToken(agentId) {
709
785
  try {
@@ -801,10 +877,10 @@ var init_agent_record_sync = __esmMin((() => {
801
877
  * ~/.overdeck/agents/<id>/lifecycle.log — per-agent state transitions
802
878
  */
803
879
  function logsDir() {
804
- return join(getOverdeckHome(), "logs");
880
+ return join$1(getOverdeckHome(), "logs");
805
881
  }
806
882
  function agentDir(agentId) {
807
- return join(getOverdeckHome(), "agents", agentId);
883
+ return join$1(getOverdeckHome(), "agents", agentId);
808
884
  }
809
885
  function ensureLogsDir() {
810
886
  try {
@@ -823,14 +899,14 @@ function timestamp() {
823
899
  function logDeaconEventSync(message) {
824
900
  ensureLogsDir();
825
901
  try {
826
- appendFileSync(join(logsDir(), "deacon.log"), `[${timestamp()}] ${message}\n`);
902
+ appendFileSync(join$1(logsDir(), "deacon.log"), `[${timestamp()}] ${message}\n`);
827
903
  } catch {}
828
904
  }
829
905
  /** Append a line to ~/.overdeck/agents/<agentId>/lifecycle.log */
830
906
  function logAgentLifecycleSync(agentId, message) {
831
907
  ensureAgentDir(agentId);
832
908
  try {
833
- appendFileSync(join(agentDir(agentId), "lifecycle.log"), `[${timestamp()}] ${message}\n`);
909
+ appendFileSync(join$1(agentDir(agentId), "lifecycle.log"), `[${timestamp()}] ${message}\n`);
834
910
  } catch {}
835
911
  }
836
912
  var init_persistent_logger = __esmMin((() => {
@@ -839,7 +915,7 @@ var init_persistent_logger = __esmMin((() => {
839
915
  //#endregion
840
916
  //#region ../../lib/agents/agent-state.ts
841
917
  function getAgentDir(agentId) {
842
- return join(getOverdeckHome(), "agents", agentId);
918
+ return join$1(getOverdeckHome(), "agents", agentId);
843
919
  }
844
920
  function getAgentStateFilePath(agentId) {
845
921
  return getRollbackAgentStatePath(agentId);
@@ -864,7 +940,7 @@ async function wipeAgentStateDirs(issueId, opts = {}) {
864
940
  if (!issueId || !/^[A-Za-z]+-\d+$/.test(issueId)) throw new Error(`wipeAgentStateDirs: invalid issueId "${issueId}"`);
865
941
  if (opts.rolePrefix !== void 0 && !/^[a-z][a-z0-9-]*$/.test(opts.rolePrefix)) throw new Error(`wipeAgentStateDirs: invalid rolePrefix "${opts.rolePrefix}"`);
866
942
  const issueLower = issueId.toLowerCase();
867
- const dirPath = join(AGENTS_DIR, `agent-${issueLower}${opts.rolePrefix ? `-${opts.rolePrefix}` : ""}`);
943
+ const dirPath = join$1(AGENTS_DIR, `agent-${issueLower}${opts.rolePrefix ? `-${opts.rolePrefix}` : ""}`);
868
944
  let entries;
869
945
  try {
870
946
  entries = await readdir$1(AGENTS_DIR);
@@ -883,7 +959,7 @@ async function wipeAgentStateDirs(issueId, opts = {}) {
883
959
  targets = entries.filter((name) => name === work);
884
960
  }
885
961
  for (const name of targets) try {
886
- await rm$1(join(AGENTS_DIR, name), {
962
+ await rm$1(join$1(AGENTS_DIR, name), {
887
963
  recursive: true,
888
964
  force: true
889
965
  });
@@ -1375,7 +1451,7 @@ async function buildResumeMessageForAgent(state, fallbackMessage, callerMessage)
1375
1451
  message: callerMessage ?? fallbackMessage,
1376
1452
  redeliveringKickoff: false
1377
1453
  };
1378
- const promptPath = join(getAgentDir(state.id), "initial-prompt.md");
1454
+ const promptPath = join$1(getAgentDir(state.id), "initial-prompt.md");
1379
1455
  try {
1380
1456
  return {
1381
1457
  message: `${await readFile$1(promptPath, "utf-8")}${callerMessage ? `\n\n---\n\nAdditional message delivered during resume:\n\n${callerMessage}` : ""}`,
@@ -1445,7 +1521,6 @@ async function prepareSupervisorForFreshLaunch(agentId, options, state) {
1445
1521
  return { useSupervisor: false };
1446
1522
  }
1447
1523
  const supervisorScriptPath = resolvePtySupervisorScriptPath();
1448
- if (!existsSync(supervisorScriptPath)) throw new Error("pty-supervisor build artifact missing — run `npm run build`.");
1449
1524
  await writePtyToken(agentId);
1450
1525
  state.supervisorEnabled = true;
1451
1526
  return {
@@ -1472,7 +1547,6 @@ async function prepareSupervisorForRelaunch(agentId, state, model, harness) {
1472
1547
  return { useSupervisor: false };
1473
1548
  }
1474
1549
  const supervisorScriptPath = resolvePtySupervisorScriptPath();
1475
- if (!existsSync(supervisorScriptPath)) throw new Error("pty-supervisor build artifact missing — run `npm run build`.");
1476
1550
  await writePtyToken(agentId);
1477
1551
  state.supervisorEnabled = true;
1478
1552
  return {
@@ -1480,9 +1554,6 @@ async function prepareSupervisorForRelaunch(agentId, state, model, harness) {
1480
1554
  supervisorScriptPath
1481
1555
  };
1482
1556
  }
1483
- function resolvePtySupervisorScriptPath() {
1484
- return join(packageRoot, "dist", "pty-supervisor.js");
1485
- }
1486
1557
  /**
1487
1558
  * Decide whether to enable Claude Code Channels for a work-agent launch.
1488
1559
  *
@@ -1554,13 +1625,13 @@ function decideChannelsForWorkAgent(agentId, _options, state) {
1554
1625
  */
1555
1626
  async function writeChannelsBridgeMcpConfig(configPath, agentId) {
1556
1627
  const fsp = await import("fs/promises");
1557
- await fsp.mkdir(dirname(configPath), { recursive: true });
1628
+ await fsp.mkdir(dirname$1(configPath), { recursive: true });
1558
1629
  const mcpConfig = { mcpServers: { "overdeck-bridge": {
1559
1630
  command: "bun",
1560
- args: ["run", join(join(dirname(import.meta.url.replace("file://", "")), "..", ".."), "src", "lib", "channels", "overdeck-bridge.ts")],
1631
+ args: ["run", join$1(join$1(dirname$1(import.meta.url.replace("file://", "")), "..", ".."), "src", "lib", "channels", "overdeck-bridge.ts")],
1561
1632
  env: {
1562
1633
  OVERDECK_AGENT_ID: agentId,
1563
- OVERDECK_HOME: process.env.OVERDECK_HOME ?? join(homedir(), ".overdeck")
1634
+ OVERDECK_HOME: process.env.OVERDECK_HOME ?? join$1(homedir(), ".overdeck")
1564
1635
  }
1565
1636
  } } };
1566
1637
  await fsp.writeFile(configPath, JSON.stringify(mcpConfig, null, 2), "utf-8");
@@ -1617,7 +1688,7 @@ var init_supervisor_channels = __esmMin((() => {
1617
1688
  init_activity_logger();
1618
1689
  init_config_yaml();
1619
1690
  init_behavior();
1620
- init_paths();
1691
+ init_pty_supervisor_locate();
1621
1692
  init_providers();
1622
1693
  init_pty_token();
1623
1694
  init_tmux();
@@ -1635,7 +1706,7 @@ var init_supervisor_channels = __esmMin((() => {
1635
1706
  * Anthropic-compatible /v1/messages endpoint.
1636
1707
  */
1637
1708
  function getCodexAuthPath() {
1638
- return join(homedir(), ".codex", "auth.json");
1709
+ return join$1(homedir(), ".codex", "auth.json");
1639
1710
  }
1640
1711
  function decodeBase64Url(value) {
1641
1712
  try {
@@ -1694,7 +1765,7 @@ function buildStatus(raw, installed, bridgedFromCodex) {
1694
1765
  };
1695
1766
  }
1696
1767
  async function getOpenAIAuthStatusPromise() {
1697
- const codexDir = join(homedir(), ".codex");
1768
+ const codexDir = join$1(homedir(), ".codex");
1698
1769
  const authPath = getCodexAuthPath();
1699
1770
  const installed = existsSync(codexDir) || existsSync(authPath);
1700
1771
  const raw = await readCodexAuthAsync(authPath);
@@ -2141,8 +2212,8 @@ var init_claude_auth = __esmMin((() => {
2141
2212
  return yield* spawner.string(cmd).pipe(Effect.timeout(Duration.seconds(3)), Effect.map((s) => s.trim() || null), Effect.orElseSucceed(() => null));
2142
2213
  });
2143
2214
  getClaudeAuthStatusImpl = Effect.gen(function* () {
2144
- const claudeDir = join(homedir(), ".claude");
2145
- const credPath = join(claudeDir, ".credentials.json");
2215
+ const claudeDir = join$1(homedir(), ".claude");
2216
+ const credPath = join$1(claudeDir, ".credentials.json");
2146
2217
  const installed = existsSync(claudeDir);
2147
2218
  const hasAnthropicApiKey = !!process.env.ANTHROPIC_API_KEY;
2148
2219
  let loggedIn = false;
@@ -2215,11 +2286,11 @@ var init_claude_auth = __esmMin((() => {
2215
2286
  * from spawnAgent and killAgent paths that run on dedicated workers.
2216
2287
  */
2217
2288
  function ohmypiFifoPaths(agentId, home) {
2218
- const agentDir = join$1(home === void 0 ? getOverdeckHome() : join$1(home, ".overdeck"), "agents", agentId);
2289
+ const agentDir = join(home === void 0 ? getOverdeckHome() : join(home, ".overdeck"), "agents", agentId);
2219
2290
  return {
2220
2291
  agentDir,
2221
- readyPath: join$1(agentDir, "ready.json"),
2222
- fifoPath: join$1(agentDir, "rpc.in")
2292
+ readyPath: join(agentDir, "ready.json"),
2293
+ fifoPath: join(agentDir, "rpc.in")
2223
2294
  };
2224
2295
  }
2225
2296
  async function createOhmypiFifoPromise(agentId, home) {
@@ -2296,11 +2367,11 @@ var init_ohmypi_fifo = __esmMin((() => {
2296
2367
  //#endregion
2297
2368
  //#region ../../lib/runtimes/pi-fifo.ts
2298
2369
  function piFifoPaths(agentId, home) {
2299
- const agentDir = join$1(home === void 0 ? getOverdeckHome() : join$1(home, ".overdeck"), "agents", agentId);
2370
+ const agentDir = join(home === void 0 ? getOverdeckHome() : join(home, ".overdeck"), "agents", agentId);
2300
2371
  return {
2301
2372
  agentDir,
2302
- readyPath: join$1(agentDir, "ready.json"),
2303
- fifoPath: join$1(agentDir, "rpc.in")
2373
+ readyPath: join(agentDir, "ready.json"),
2374
+ fifoPath: join(agentDir, "rpc.in")
2304
2375
  };
2305
2376
  }
2306
2377
  var init_pi_fifo = __esmMin((() => {
@@ -2334,12 +2405,12 @@ async function claudeSystemPromptFiles(workspace, harness) {
2334
2405
  files.push(await ensureSessionContextBriefingFile());
2335
2406
  const behavior = getHarnessBehavior(harness);
2336
2407
  if (behavior.contextLayerKind === "pi") {
2337
- const { piGlobalContextFile } = await import("./context-layers-DxKsseHI.js");
2408
+ const { piGlobalContextFile } = await import("./context-layers-CRCk1QG7.js");
2338
2409
  const globalFile = piGlobalContextFile();
2339
2410
  if (existsSync(globalFile)) files.unshift(globalFile);
2340
2411
  }
2341
2412
  if (behavior.contextLayerKind === "codex") {
2342
- const { codexGlobalContextFile } = await import("./context-layers-DxKsseHI.js");
2413
+ const { codexGlobalContextFile } = await import("./context-layers-CRCk1QG7.js");
2343
2414
  const globalFile = codexGlobalContextFile();
2344
2415
  if (existsSync(globalFile)) files.unshift(globalFile);
2345
2416
  }
@@ -2396,7 +2467,7 @@ async function getOhmypiLauncherFields(agentId, model) {
2396
2467
  };
2397
2468
  }
2398
2469
  function getCodexLauncherFields(agentId, model, workspacePath) {
2399
- const codexHome = join(homedir(), ".overdeck", "agents", agentId, "codex-home");
2470
+ const codexHome = join$1(homedir(), ".overdeck", "agents", agentId, "codex-home");
2400
2471
  const codexPermMode = loadConfigSync().config.codex?.permissionMode ?? "workspace";
2401
2472
  initCodexHome(codexHome, {
2402
2473
  trustedDir: workspacePath,
@@ -2408,7 +2479,7 @@ function getCodexLauncherFields(agentId, model, workspacePath) {
2408
2479
  harness: "codex",
2409
2480
  codexMode: "work-tui",
2410
2481
  codexHome,
2411
- codexSessionDir: join(codexHome, "sessions"),
2482
+ codexSessionDir: join$1(codexHome, "sessions"),
2412
2483
  model
2413
2484
  };
2414
2485
  }
@@ -2441,7 +2512,7 @@ function describeOhmypiSpawnFailure(agentId) {
2441
2512
  if (freeMb < 512) parts.push("(DISK NEARLY FULL — likely ENOSPC crash)");
2442
2513
  } catch {}
2443
2514
  try {
2444
- const logPath = join(getAgentDir(agentId), "output.log");
2515
+ const logPath = join$1(getAgentDir(agentId), "output.log");
2445
2516
  if (existsSync(logPath)) {
2446
2517
  const tail = readFileSync(logPath, "utf8").slice(-1500).trim().split("\n").slice(-8).join("\n");
2447
2518
  if (tail) parts.push(`output.log tail:\n${tail}`);
@@ -2469,8 +2540,8 @@ async function waitForPromptReady(agentId, harness, timeoutSec = 30) {
2469
2540
  return waitForReadySignal(agentId, timeoutSec);
2470
2541
  }
2471
2542
  function inferMemoryProjectId(workspacePath) {
2472
- const workspaceName = basename(workspacePath);
2473
- if (workspaceName.startsWith("feature-")) return basename(dirname(dirname(workspacePath)));
2543
+ const workspaceName = basename$1(workspacePath);
2544
+ if (workspaceName.startsWith("feature-")) return basename$1(dirname$1(dirname$1(workspacePath)));
2474
2545
  return workspaceName;
2475
2546
  }
2476
2547
  /**
@@ -2485,14 +2556,14 @@ async function injectPiPromptTimeMemory(agentId, prompt) {
2485
2556
  try {
2486
2557
  const identity = {
2487
2558
  projectId: inferMemoryProjectId(agentState.workspace),
2488
- workspaceId: basename(agentState.workspace),
2559
+ workspaceId: basename$1(agentState.workspace),
2489
2560
  issueId: agentState.issueId,
2490
2561
  runId: agentId,
2491
2562
  sessionId: agentId,
2492
2563
  agentRole: agentState.role ?? "work",
2493
2564
  agentHarness: agentState.harness ?? "claude-code"
2494
2565
  };
2495
- const { injectPromptTimeMemory } = await import("./injection-DKzL2Axk.js");
2566
+ const { injectPromptTimeMemory } = await import("./injection-Dt22tGvS.js");
2496
2567
  const result = await injectPromptTimeMemory({
2497
2568
  prompt,
2498
2569
  identity,
@@ -2519,14 +2590,14 @@ async function injectPiConversationMemory(opts, prompt) {
2519
2590
  try {
2520
2591
  const identity = {
2521
2592
  projectId: inferMemoryProjectId(opts.cwd),
2522
- workspaceId: basename(opts.cwd),
2593
+ workspaceId: basename$1(opts.cwd),
2523
2594
  issueId: opts.issueId,
2524
2595
  runId: opts.conversationName,
2525
2596
  sessionId: opts.conversationName,
2526
2597
  agentRole: "work",
2527
2598
  agentHarness: "ohmypi"
2528
2599
  };
2529
- const { injectPromptTimeMemory } = await import("./injection-DKzL2Axk.js");
2600
+ const { injectPromptTimeMemory } = await import("./injection-Dt22tGvS.js");
2530
2601
  const result = await injectPromptTimeMemory({
2531
2602
  prompt,
2532
2603
  identity,
@@ -2590,7 +2661,7 @@ async function getAgentRuntimeBaseCommand(model, agentName, agentDefinition, har
2590
2661
  if (process.env.OVERDECK_TEST_HARNESS_COMMAND) return process.env.OVERDECK_TEST_HARNESS_COMMAND;
2591
2662
  const provider = getProviderForModelSync(validatedModel);
2592
2663
  const nameFlag = agentName ? ` --name ${agentName}` : "";
2593
- const defIsRoleFile = !!agentDefinition && existsSync(resolve(agentDefinition)) && statSync(resolve(agentDefinition)).isFile();
2664
+ const defIsRoleFile = !!agentDefinition && existsSync(resolve$1(agentDefinition)) && statSync(resolve$1(agentDefinition)).isFile();
2594
2665
  if (agentDefinition && !defIsRoleFile) {
2595
2666
  const agentFlag = ` --agent ${agentDefinition}`;
2596
2667
  const effortFlag = effort ? ` --effort ${effort}` : "";
@@ -2605,7 +2676,7 @@ async function getAgentRuntimeBaseCommand(model, agentName, agentDefinition, har
2605
2676
  }
2606
2677
  function roleAgentDefinitionPath(role, subRole) {
2607
2678
  if (role === "review" && subRole) return null;
2608
- return join(packageRoot, "roles", `${role}.md`);
2679
+ return join$1(packageRoot, "roles", `${role}.md`);
2609
2680
  }
2610
2681
  /**
2611
2682
  * PAN-2087: Claude Code 2.1.195 removed support for passing an agent DEFINITION
@@ -2636,7 +2707,7 @@ function roleAgentDefinitionPath(role, subRole) {
2636
2707
  * `--agent <file>` flag, or '' when the definition file is missing.
2637
2708
  */
2638
2709
  function roleSystemPromptInjectionSync(definitionPath, explicitEffort) {
2639
- const abs = resolve(definitionPath);
2710
+ const abs = resolve$1(definitionPath);
2640
2711
  if (!existsSync(abs)) return "";
2641
2712
  const raw = readFileSync(abs, "utf8");
2642
2713
  let body = raw;
@@ -2649,10 +2720,10 @@ function roleSystemPromptInjectionSync(definitionPath, explicitEffort) {
2649
2720
  if (parsed && typeof parsed === "object") frontmatter = parsed;
2650
2721
  } catch {}
2651
2722
  }
2652
- const dir = join(getOverdeckHome(), "role-prompts");
2723
+ const dir = join$1(getOverdeckHome(), "role-prompts");
2653
2724
  mkdirSync(dir, { recursive: true });
2654
- const stem = basename(definitionPath).replace(/\.md$/, "");
2655
- const outPath = join(dir, `${stem}.md`);
2725
+ const stem = basename$1(definitionPath).replace(/\.md$/, "");
2726
+ const outPath = join$1(dir, `${stem}.md`);
2656
2727
  writeFileSync(outPath, body);
2657
2728
  const flags = [` --append-system-prompt-file '${outPath}'`];
2658
2729
  const effort = explicitEffort ?? (typeof frontmatter.effort === "string" ? frontmatter.effort : void 0);
@@ -2665,7 +2736,7 @@ function roleSystemPromptInjectionSync(definitionPath, explicitEffort) {
2665
2736
  mcpNames.push(name);
2666
2737
  }
2667
2738
  if (Object.keys(servers).length > 0) {
2668
- const mcpPath = join(dir, `${stem}.mcp.json`);
2739
+ const mcpPath = join$1(dir, `${stem}.mcp.json`);
2669
2740
  writeFileSync(mcpPath, JSON.stringify({ mcpServers: servers }, null, 2));
2670
2741
  flags.push(` --mcp-config '${mcpPath}'`);
2671
2742
  }
@@ -2689,10 +2760,10 @@ async function getRoleRuntimeBaseCommand(model, agentName, role, harness = "clau
2689
2760
  if (process.env.OVERDECK_TEST_HARNESS_COMMAND) return process.env.OVERDECK_TEST_HARNESS_COMMAND;
2690
2761
  const provider = getProviderForModelSync(validatedModel);
2691
2762
  const requestedDefinitionPath = roleAgentDefinitionPath(role, subRole);
2692
- const definitionPath = requestedDefinitionPath && existsSync(resolve(requestedDefinitionPath)) ? requestedDefinitionPath : null;
2763
+ const definitionPath = requestedDefinitionPath && existsSync(resolve$1(requestedDefinitionPath)) ? requestedDefinitionPath : null;
2693
2764
  if (requestedDefinitionPath && !definitionPath && !missingRoleDefinitionWarnings.has(requestedDefinitionPath)) {
2694
2765
  missingRoleDefinitionWarnings.add(requestedDefinitionPath);
2695
- console.warn(`[agents] Role definition ${resolve(requestedDefinitionPath)} does not exist; launching ${role} without its role system prompt`);
2766
+ console.warn(`[agents] Role definition ${resolve$1(requestedDefinitionPath)} does not exist; launching ${role} without its role system prompt`);
2696
2767
  }
2697
2768
  const roleInject = definitionPath ? roleSystemPromptInjectionSync(definitionPath, effort) : "";
2698
2769
  const nameFlag = ` --name ${agentName}`;
@@ -2903,7 +2974,7 @@ function resolveSlotTierSpawnParams(baseWorkspace, slotItemId, explicitModel, sp
2903
2974
  const doc = readWorkspacePlanSync(baseWorkspace);
2904
2975
  if (!doc) return {};
2905
2976
  const planMetadata = doc?.plan?.metadata;
2906
- const issueIdMatch = basename(baseWorkspace).match(/^feature-(.+)$/i);
2977
+ const issueIdMatch = basename$1(baseWorkspace).match(/^feature-(.+)$/i);
2907
2978
  const issueId = issueIdMatch ? issueIdMatch[1].toUpperCase() : null;
2908
2979
  const config = loadConfigSync().config;
2909
2980
  const tiered = config.tieredExecution;
@@ -2940,7 +3011,7 @@ function resolveSingleWorkTierSpawnParams(workspace, explicitModel, spawnKey) {
2940
3011
  const planMetadata = doc?.plan?.metadata;
2941
3012
  const item = getDispatchableItems(doc, /* @__PURE__ */ new Set())[0];
2942
3013
  if (!item) return {};
2943
- const issueIdMatch = basename(workspace).match(/^feature-(.+)$/i);
3014
+ const issueIdMatch = basename$1(workspace).match(/^feature-(.+)$/i);
2944
3015
  const issueId = issueIdMatch ? issueIdMatch[1].toUpperCase() : null;
2945
3016
  const config = loadConfigSync().config;
2946
3017
  const tiered = config.tieredExecution;
@@ -3030,7 +3101,7 @@ async function transitionIssueToInReview(issueId, workspacePath) {
3030
3101
  async function buildAgentLaunchConfig(opts) {
3031
3102
  const model = requireModelOverrideSync(opts.model);
3032
3103
  try {
3033
- const { injectOverdeckInfraDeny } = await import("./claude-settings-overlay-CEWlIFL-.js");
3104
+ const { injectOverdeckInfraDeny } = await import("./claude-settings-overlay-BPdhTPjo.js");
3034
3105
  await Effect.runPromise(injectOverdeckInfraDeny(opts.workspace));
3035
3106
  } catch (err) {
3036
3107
  console.warn(`[agents] injectOverdeckInfraDeny failed for ${opts.agentId} (non-fatal): ${err instanceof Error ? err.message : err}`);
@@ -3097,21 +3168,21 @@ async function buildAgentLaunchConfig(opts) {
3097
3168
  function defaultRunWorkspace(issueId) {
3098
3169
  const project = resolveProjectFromIssueSync(issueId);
3099
3170
  if (!project) throw new Error(`Cannot spawn role run for ${issueId}: no project is configured for this issue prefix`);
3100
- return join(project.projectPath, "workspaces", `feature-${issueId.toLowerCase()}`);
3171
+ return join$1(project.projectPath, "workspaces", `feature-${issueId.toLowerCase()}`);
3101
3172
  }
3102
3173
  async function retrieveSpawnTimeMemoryContext(input) {
3103
3174
  if (!input.prompt.trim()) return "";
3104
3175
  try {
3105
3176
  const identity = {
3106
3177
  projectId: inferMemoryProjectId(input.workspace),
3107
- workspaceId: basename(input.workspace),
3178
+ workspaceId: basename$1(input.workspace),
3108
3179
  issueId: input.issueId,
3109
3180
  runId: input.agentId,
3110
3181
  sessionId: input.agentId,
3111
3182
  agentRole: input.role,
3112
3183
  agentHarness: input.harness
3113
3184
  };
3114
- const { injectPromptTimeMemory } = await import("./injection-DKzL2Axk.js");
3185
+ const { injectPromptTimeMemory } = await import("./injection-Dt22tGvS.js");
3115
3186
  return (await injectPromptTimeMemory({
3116
3187
  prompt: input.prompt,
3117
3188
  identity,
@@ -3202,7 +3273,7 @@ async function assertWorkspaceStackHealthyForSpawn(issueId, role, allowHost = fa
3202
3273
  record.attempts += 1;
3203
3274
  spawnStackRebuildState.set(normalizedIssue, record);
3204
3275
  console.log(`[agents] Workspace stack for ${normalizedIssue} unhealthy (${details}) — rebuilding before spawn (attempt ${record.attempts}/${SPAWN_STACK_REBUILD_MAX_ATTEMPTS})`);
3205
- const { rebuildWorkspaceStack } = await import("./rebuild-stack-ByFCMqTK.js");
3276
+ const { rebuildWorkspaceStack } = await import("./rebuild-stack-CXSgAGPR.js");
3206
3277
  const result = await Effect.runPromise(rebuildWorkspaceStack(issueId, { onProgress: (m) => console.log(`[agents] ${normalizedIssue} stack rebuild: ${m}`) })).catch((err) => ({
3207
3278
  success: false,
3208
3279
  error: err instanceof Error ? err.message : String(err)
@@ -3246,7 +3317,7 @@ var init_spawn_prep = __esmMin((() => {
3246
3317
  //#endregion
3247
3318
  //#region ../../lib/cv.ts
3248
3319
  function getCVFile(agentId) {
3249
- return join(AGENTS_DIR, agentId, "cv.json");
3320
+ return join$1(AGENTS_DIR, agentId, "cv.json");
3250
3321
  }
3251
3322
  /**
3252
3323
  * Read an agent's CV without creating one.
@@ -3290,7 +3361,7 @@ function getAgentCVSync(agentId) {
3290
3361
  * Save an agent's CV
3291
3362
  */
3292
3363
  function saveAgentCVSync(cv) {
3293
- mkdirSync(join(AGENTS_DIR, cv.agentId), { recursive: true });
3364
+ mkdirSync(join$1(AGENTS_DIR, cv.agentId), { recursive: true });
3294
3365
  writeFileSync(getCVFile(cv.agentId), JSON.stringify(cv, null, 2));
3295
3366
  }
3296
3367
  /**
@@ -3320,10 +3391,10 @@ var init_cv = __esmMin((() => {
3320
3391
  //#endregion
3321
3392
  //#region ../../lib/bridge-token.ts
3322
3393
  function bridgeTokensDir() {
3323
- return join$1(getOverdeckHome(), "bridge-tokens");
3394
+ return join(getOverdeckHome(), "bridge-tokens");
3324
3395
  }
3325
3396
  function getBridgeTokenPath(agentId) {
3326
- return join$1(bridgeTokensDir(), `${agentId}.token`);
3397
+ return join(bridgeTokensDir(), `${agentId}.token`);
3327
3398
  }
3328
3399
  function readBridgeTokenSync(agentId) {
3329
3400
  const path = getBridgeTokenPath(agentId);
@@ -3544,7 +3615,7 @@ function resilientDeliveryMethod(method) {
3544
3615
  * Resolve OVERDECK_HOME — same fallback semantics as overdeck-bridge.
3545
3616
  */
3546
3617
  function overdeckHomeForSockets() {
3547
- return process.env.OVERDECK_HOME ?? join(homedir(), ".overdeck");
3618
+ return process.env.OVERDECK_HOME ?? join$1(homedir(), ".overdeck");
3548
3619
  }
3549
3620
  function overdeckHomeForChannels() {
3550
3621
  return overdeckHomeForSockets();
@@ -3554,14 +3625,14 @@ function overdeckHomeForChannels() {
3554
3625
  */
3555
3626
  async function appendChannelDeliveryLog(agentId, entry) {
3556
3627
  try {
3557
- const dir = join(overdeckHomeForSockets(), "logs");
3628
+ const dir = join$1(overdeckHomeForSockets(), "logs");
3558
3629
  await (await import("fs/promises")).mkdir(dir, { recursive: true });
3559
3630
  const line = JSON.stringify({
3560
3631
  ts: (/* @__PURE__ */ new Date()).toISOString(),
3561
3632
  agentId,
3562
3633
  ...entry
3563
3634
  });
3564
- await (await import("fs/promises")).appendFile(join(dir, `bridge-${agentId}.log`), `${line}\n`, "utf-8");
3635
+ await (await import("fs/promises")).appendFile(join$1(dir, `bridge-${agentId}.log`), `${line}\n`, "utf-8");
3565
3636
  } catch {}
3566
3637
  }
3567
3638
  /**
@@ -3658,7 +3729,7 @@ async function deliverAgentMessage(agentId, message, caller = "unknown", deliver
3658
3729
  }
3659
3730
  let supervisorFailure;
3660
3731
  if (resolvedMethod === "auto" || resolvedMethod === "supervisor") {
3661
- const supervisorSocketPath = join(overdeckHomeForSockets(), "sockets", `pty-${normalizedId}.sock`);
3732
+ const supervisorSocketPath = join$1(overdeckHomeForSockets(), "sockets", `pty-${normalizedId}.sock`);
3662
3733
  const ptyToken = await readPtyToken(normalizedId);
3663
3734
  if (!existsSync(supervisorSocketPath)) supervisorFailure = "socket-missing";
3664
3735
  else if (!ptyToken) supervisorFailure = "pty-token-missing";
@@ -3682,7 +3753,7 @@ async function deliverAgentMessage(agentId, message, caller = "unknown", deliver
3682
3753
  }
3683
3754
  if (resolvedMethod === "auto" || resolvedMethod === "channels") {
3684
3755
  let channelFailure;
3685
- const socketPath = join(overdeckHomeForSockets(), "sockets", `agent-${normalizedId}.sock`);
3756
+ const socketPath = join$1(overdeckHomeForSockets(), "sockets", `agent-${normalizedId}.sock`);
3686
3757
  if (!channelsEnabled) channelFailure = "channels-disabled";
3687
3758
  else if (!existsSync(socketPath)) channelFailure = "socket-missing";
3688
3759
  else {
@@ -3811,9 +3882,9 @@ async function deliverInitialPromptWithRetry(agentId, prompt, caller, deliveryMe
3811
3882
  try {
3812
3883
  if (state?.harness && getHarnessBehavior(state.harness).usesCodexHome) {
3813
3884
  const ownsWorkspaceKickoff = state.workspace && (state.role === "work" || state.role === "strike");
3814
- const kickoffPath = ownsWorkspaceKickoff ? join(state.workspace, ".pan", "kickoff.md") : join(getAgentDir(normalizedId), "kickoff.md");
3885
+ const kickoffPath = ownsWorkspaceKickoff ? join$1(state.workspace, ".pan", "kickoff.md") : join$1(getAgentDir(normalizedId), "kickoff.md");
3815
3886
  const displayPath = ownsWorkspaceKickoff ? "`.pan/kickoff.md`" : `\`${kickoffPath}\``;
3816
- mkdirSync(dirname(kickoffPath), { recursive: true });
3887
+ mkdirSync(dirname$1(kickoffPath), { recursive: true });
3817
3888
  writeFileSync(kickoffPath, prompt, "utf-8");
3818
3889
  deliveredPrompt = `Your complete task brief has been written to ${displayPath}. Read that file in full now and execute it exactly — it is your full set of work instructions. Begin immediately and keep working autonomously until done; do not wait for further input.`;
3819
3890
  }
@@ -3866,7 +3937,7 @@ async function deliverAgentPermissionDecision(agentId, requestId, behavior) {
3866
3937
  state = null;
3867
3938
  }
3868
3939
  if (!state?.channelsEnabled) throw new Error(`agent ${normalizedId} is not using Claude channels`);
3869
- const socketPath = join(overdeckHomeForChannels(), "sockets", `agent-${normalizedId}.sock`);
3940
+ const socketPath = join$1(overdeckHomeForChannels(), "sockets", `agent-${normalizedId}.sock`);
3870
3941
  if (!existsSync(socketPath)) throw new Error(`bridge socket missing for ${normalizedId}`);
3871
3942
  const bridgeToken = readBridgeTokenSync(normalizedId);
3872
3943
  if (!bridgeToken) throw new Error(`bridge token missing for ${normalizedId}`);
@@ -3978,7 +4049,7 @@ var init_config = __esmMin((() => {
3978
4049
  import_toml = require_toml();
3979
4050
  init_errors();
3980
4051
  init_paths();
3981
- CLOISTER_CONFIG_FILE = join(OVERDECK_HOME, "cloister.toml");
4052
+ CLOISTER_CONFIG_FILE = join$1(OVERDECK_HOME, "cloister.toml");
3982
4053
  DEFAULT_CLOISTER_CONFIG = {
3983
4054
  startup: {
3984
4055
  auto_start: true,
@@ -4477,7 +4548,7 @@ async function dropLegacyAgentStatesMissingRoleAsync() {
4477
4548
  }
4478
4549
  let dropped = 0;
4479
4550
  await Promise.all(entries.map(async (entry) => {
4480
- const dirPath = join(AGENTS_DIR, entry);
4551
+ const dirPath = join$1(AGENTS_DIR, entry);
4481
4552
  let stat;
4482
4553
  try {
4483
4554
  stat = await fsp.stat(dirPath);
@@ -4541,7 +4612,7 @@ async function warnOnBareNumericIssueIds() {
4541
4612
  }
4542
4613
  const legacy = [];
4543
4614
  await Promise.all(entries.map(async (entry) => {
4544
- const dirPath = join(AGENTS_DIR, entry);
4615
+ const dirPath = join$1(AGENTS_DIR, entry);
4545
4616
  try {
4546
4617
  if (!(await fsp.stat(dirPath)).isDirectory()) return;
4547
4618
  } catch {
@@ -4603,7 +4674,7 @@ function isTmuxProcessSync(pid) {
4603
4674
  * sync internals.
4604
4675
  */
4605
4676
  function killLauncherProcessSync(agentId) {
4606
- const launcherPath = join(AGENTS_DIR, agentId, "launcher.sh");
4677
+ const launcherPath = join$1(AGENTS_DIR, agentId, "launcher.sh");
4607
4678
  let pidsOut;
4608
4679
  try {
4609
4680
  pidsOut = execSync$1(`pgrep -f ${JSON.stringify(launcherPath)}`, {
@@ -4635,7 +4706,7 @@ function killLauncherProcessSync(agentId) {
4635
4706
  } catch {}
4636
4707
  }
4637
4708
  async function killLauncherProcessAsync(agentId) {
4638
- const launcherPath = join(AGENTS_DIR, agentId, "launcher.sh");
4709
+ const launcherPath = join$1(AGENTS_DIR, agentId, "launcher.sh");
4639
4710
  let pidsOut;
4640
4711
  try {
4641
4712
  const { stdout } = await execAsync$3(`pgrep -f ${JSON.stringify(launcherPath)}`);
@@ -4664,7 +4735,7 @@ function stopAgentSync(agentId) {
4664
4735
  if (output) {
4665
4736
  const agentDir = getAgentDir(normalizedId);
4666
4737
  mkdirSync(agentDir, { recursive: true });
4667
- writeFileSync(join(agentDir, "output.log"), output);
4738
+ writeFileSync(join$1(agentDir, "output.log"), output);
4668
4739
  }
4669
4740
  } catch {}
4670
4741
  killSessionSync(normalizedId);
@@ -4698,7 +4769,7 @@ var init_termination = __esmMin((() => {
4698
4769
  const output = yield* capturePane(normalizedId, 5e3);
4699
4770
  if (!output) return;
4700
4771
  const agentDir = getAgentDir(normalizedId);
4701
- const outputFile = join(agentDir, "output.log");
4772
+ const outputFile = join$1(agentDir, "output.log");
4702
4773
  yield* Effect.tryPromise({
4703
4774
  try: () => mkdir$1(agentDir, { recursive: true }),
4704
4775
  catch: (cause) => new FsError({
@@ -4788,10 +4859,10 @@ async function spawnRun(issueId, role, options = {}) {
4788
4859
  let reapWarmIdle = false;
4789
4860
  const advancing = role === "review" || role === "test" || role === "ship";
4790
4861
  try {
4791
- const { isPaneDead } = await import("./tmux-CeDD14p1.js");
4862
+ const { isPaneDead } = await import("./tmux-DClqWwb8.js");
4792
4863
  if (await Effect.runPromise(isPaneDead(agentId))) reapWarmIdle = true;
4793
4864
  else if (advancing) {
4794
- const { getReviewStatusSync } = await import("./review-status-bBkqUj5i.js");
4865
+ const { getReviewStatusSync } = await import("./review-status-JhQ3qlDS.js");
4795
4866
  const { isRoleTerminal } = await import("./reap-terminal-sessions-BwJb2DLJ.js");
4796
4867
  const status = getReviewStatusSync(issueId);
4797
4868
  reapWarmIdle = !!status && isRoleTerminal(role, status);
@@ -4799,7 +4870,7 @@ async function spawnRun(issueId, role, options = {}) {
4799
4870
  } catch {}
4800
4871
  if (!reapWarmIdle) throw new Error(`Role run ${agentId} already running. Use 'pan tell' to message it.`);
4801
4872
  console.log(`[spawn] ${agentId} is warm-idle from the previous cycle — reaping it for the new ${role} dispatch (PAN-2579)`);
4802
- const { killSession } = await import("./tmux-CeDD14p1.js");
4873
+ const { killSession } = await import("./tmux-DClqWwb8.js");
4803
4874
  await Effect.runPromise(killSession(agentId)).catch(() => {});
4804
4875
  }
4805
4876
  await assertWorkspaceStackHealthyForSpawn(issueId, role, options.allowHost, workspace);
@@ -4810,7 +4881,7 @@ async function spawnRun(issueId, role, options = {}) {
4810
4881
  model: selectedModel
4811
4882
  });
4812
4883
  if (getProviderForModelSync(selectedModel).name === "openai" && await getProviderAuthMode(selectedModel) === "subscription") {
4813
- const { isCliproxyRunning } = await import("./cliproxy-BOcmOK6l.js");
4884
+ const { isCliproxyRunning } = await import("./cliproxy-DOQf66G9.js");
4814
4885
  if (!await Effect.runPromise(isCliproxyRunning())) throw new Error("CLIProxyAPI sidecar is not running. GPT subscription role runs route through a local cliproxy process managed by `pan up`. Run `pan up` (or restart the dashboard) before spawning a GPT role run.");
4815
4886
  }
4816
4887
  const state = {
@@ -4844,7 +4915,7 @@ async function spawnRun(issueId, role, options = {}) {
4844
4915
  let promptFile;
4845
4916
  const tracksKickoffDelivery = role === "flywheel";
4846
4917
  if (prompt && (tracksKickoffDelivery || !shouldDeliverPromptViaTmux && !shouldDeliverPromptViaPi && !shouldDeliverPromptViaCodexTui)) {
4847
- promptFile = join(getAgentDir(agentId), "initial-prompt.md");
4918
+ promptFile = join$1(getAgentDir(agentId), "initial-prompt.md");
4848
4919
  await writeFile$1(promptFile, prompt);
4849
4920
  if (tracksKickoffDelivery) {
4850
4921
  state.kickoffDelivered = false;
@@ -4866,7 +4937,7 @@ async function spawnRun(issueId, role, options = {}) {
4866
4937
  try {
4867
4938
  const agentDir = getAgentDir(agentId);
4868
4939
  await mkdir$1(agentDir, { recursive: true });
4869
- await writeFile$1(join(agentDir, "session.id"), rawSessionId, "utf-8");
4940
+ await writeFile$1(join$1(agentDir, "session.id"), rawSessionId, "utf-8");
4870
4941
  } catch (err) {
4871
4942
  console.warn(`[spawnRun] Failed to persist session.id for ${agentId}:`, err instanceof Error ? err.message : String(err));
4872
4943
  }
@@ -4914,12 +4985,12 @@ async function spawnRun(issueId, role, options = {}) {
4914
4985
  ...piLauncherFields,
4915
4986
  ...codexLauncherFields
4916
4987
  });
4917
- const launcherScript = join(getAgentDir(agentId), "launcher.sh");
4988
+ const launcherScript = join$1(getAgentDir(agentId), "launcher.sh");
4918
4989
  await writeLauncherScriptAtomic(launcherScript, launcherContent);
4919
4990
  const claudeCmd = `bash ${launcherScript}`;
4920
4991
  console.log(`[claude-invoke] purpose=role-run | role=${role} | model=${state.model} | source=agents.ts:spawnRun | session=${agentId} | command="${claudeCmd}"`);
4921
4992
  try {
4922
- const { preTrustDirectory } = await import("./workspace-manager-B3PqQQSM.js");
4993
+ const { preTrustDirectory } = await import("./workspace-manager-Cb2a7bg9.js");
4923
4994
  preTrustDirectory(workspace);
4924
4995
  } catch {}
4925
4996
  clearReadySignal(agentId);
@@ -5007,7 +5078,7 @@ async function spawnAgent(options) {
5007
5078
  });
5008
5079
  console.log(`[DEBUG] Selected model: ${selectedModel}`);
5009
5080
  if (getProviderForModelSync(selectedModel).name === "openai" && await getProviderAuthMode(selectedModel) === "subscription") {
5010
- const { isCliproxyRunning } = await import("./cliproxy-BOcmOK6l.js");
5081
+ const { isCliproxyRunning } = await import("./cliproxy-DOQf66G9.js");
5011
5082
  if (!await Effect.runPromise(isCliproxyRunning())) throw new Error("CLIProxyAPI sidecar is not running. GPT subscription agents route through a local cliproxy process managed by `pan up`. Run `pan up` (or restart the dashboard) before spawning a GPT agent.");
5012
5083
  }
5013
5084
  const resolvedHarness = await resolveHarness({
@@ -5033,7 +5104,7 @@ async function spawnAgent(options) {
5033
5104
  if (role === "work") {
5034
5105
  try {
5035
5106
  if (resetPipelineVerdictsForWorkStartSync(options.issueId)) {
5036
- const { resetPostMergeState } = await import("./merge-agent-Dh8Y9PDO.js");
5107
+ const { resetPostMergeState } = await import("./merge-agent-CfohxFWM.js");
5037
5108
  resetPostMergeState(options.issueId);
5038
5109
  }
5039
5110
  } catch (err) {
@@ -5044,7 +5115,7 @@ async function spawnAgent(options) {
5044
5115
  });
5045
5116
  }
5046
5117
  if (role === "work") try {
5047
- const { writeStoryFeatureContext } = await import("./work-agent-prompt-DCdHsm-V.js");
5118
+ const { writeStoryFeatureContext } = await import("./work-agent-prompt-CG5jFV9A.js");
5048
5119
  await writeStoryFeatureContext(options.workspace, options.issueId);
5049
5120
  } catch (ctxErr) {
5050
5121
  console.warn(`[agents] Could not write story feature context for ${options.issueId}: ${ctxErr.message}`);
@@ -5081,7 +5152,7 @@ async function spawnAgent(options) {
5081
5152
  role,
5082
5153
  harness: resolvedHarness
5083
5154
  });
5084
- const promptFile = join(getAgentDir(agentId), "initial-prompt.md");
5155
+ const promptFile = join$1(getAgentDir(agentId), "initial-prompt.md");
5085
5156
  const tracksKickoffDelivery = role === "work" || role === "strike";
5086
5157
  if (prompt) {
5087
5158
  await writeFile$1(promptFile, prompt);
@@ -5092,9 +5163,9 @@ async function spawnAgent(options) {
5092
5163
  }
5093
5164
  checkAndSetupHooks();
5094
5165
  try {
5095
- const venvPath = join(options.workspace, ".venv");
5166
+ const venvPath = join$1(options.workspace, ".venv");
5096
5167
  if (isTldrEnabledSync() && existsSync(venvPath)) {
5097
- const { getTldrDaemonServiceSync } = await import("./tldr-daemon-CJqGsDFh.js");
5168
+ const { getTldrDaemonServiceSync } = await import("./tldr-daemon-Big5IZ_M.js");
5098
5169
  const tldrService = getTldrDaemonServiceSync(options.workspace, venvPath);
5099
5170
  if (!(await tldrService.getStatus()).running) {
5100
5171
  await tldrService.start(true);
@@ -5107,7 +5178,7 @@ async function spawnAgent(options) {
5107
5178
  const channelsDecision = decideChannelsForWorkAgent(agentId, options, state);
5108
5179
  let channelsBridgeMcpConfig;
5109
5180
  if (channelsDecision.eligible) {
5110
- channelsBridgeMcpConfig = join(options.workspace, ".pan", "agent-mcp.json");
5181
+ channelsBridgeMcpConfig = join$1(options.workspace, ".pan", "agent-mcp.json");
5111
5182
  writeBridgeTokenSync(agentId);
5112
5183
  await writeChannelsBridgeMcpConfig(channelsBridgeMcpConfig, agentId);
5113
5184
  state.channelsEnabled = true;
@@ -5127,19 +5198,19 @@ async function spawnAgent(options) {
5127
5198
  extraEnvExports: flywheelEnvExports(flywheelEnv),
5128
5199
  effort: options.effort
5129
5200
  });
5130
- const launcherScript = join(getAgentDir(agentId), "launcher.sh");
5201
+ const launcherScript = join$1(getAgentDir(agentId), "launcher.sh");
5131
5202
  await writeLauncherScriptAtomic(launcherScript, launcherContent);
5132
5203
  const claudeCmd = `bash ${launcherScript}`;
5133
5204
  console.log(`[claude-invoke] purpose=work-agent | model=${state.model} | source=agents.ts:spawnAgent | session=${agentId} | command="${claudeCmd}"`);
5134
5205
  try {
5135
- const { preTrustDirectory } = await import("./workspace-manager-B3PqQQSM.js");
5206
+ const { preTrustDirectory } = await import("./workspace-manager-Cb2a7bg9.js");
5136
5207
  preTrustDirectory(options.workspace);
5137
5208
  } catch {}
5138
5209
  try {
5139
- const { isGitHubAppConfigured, generateInstallationToken, configureWorkspaceForBot } = await import("./github-app-B5PDHMyn.js");
5210
+ const { isGitHubAppConfigured, generateInstallationToken, configureWorkspaceForBot } = await import("./github-app-C7lftMNj.js");
5140
5211
  if (isGitHubAppConfigured()) {
5141
- const { findProjectByPathSync } = await import("./projects-BNmVxnNt.js");
5142
- const ghRepo = findProjectByPathSync(resolve(options.workspace, "..", ".."))?.github_repo;
5212
+ const { findProjectByPathSync } = await import("./projects-Bqfwuqet.js");
5213
+ const ghRepo = findProjectByPathSync(resolve$1(options.workspace, "..", ".."))?.github_repo;
5143
5214
  if (ghRepo) {
5144
5215
  const [owner, repo] = ghRepo.split("/");
5145
5216
  const { token } = await Effect.runPromise(generateInstallationToken());
@@ -5203,10 +5274,10 @@ async function spawnAgent(options) {
5203
5274
  }
5204
5275
  }
5205
5276
  if (resolvedHarness === "codex") {
5206
- const codexHomeForAgent = join(homedir(), ".overdeck", "agents", agentId, "codex-home");
5277
+ const codexHomeForAgent = join$1(homedir(), ".overdeck", "agents", agentId, "codex-home");
5207
5278
  (async () => {
5208
5279
  try {
5209
- const { waitForCodexRollout, extractThreadIdFromRollout, writeThreadId } = await import("./codex-BUZjrnqH.js");
5280
+ const { waitForCodexRollout, extractThreadIdFromRollout, writeThreadId } = await import("./codex-CY-QRuU9.js");
5210
5281
  const rollout = await waitForCodexRollout(codexHomeForAgent, 12e4);
5211
5282
  if (rollout) {
5212
5283
  const threadId = extractThreadIdFromRollout(rollout);
@@ -5268,7 +5339,7 @@ function buildRegisteredSlotPrompt(issueId, baseWorkspace, slot, extraPrompt) {
5268
5339
  }
5269
5340
  async function ensureRegisteredSlotWorktree(baseWorkspace, slot) {
5270
5341
  if (existsSync(slot.workspace)) return;
5271
- await mkdir$1(dirname(slot.workspace), { recursive: true });
5342
+ await mkdir$1(dirname$1(slot.workspace), { recursive: true });
5272
5343
  const branchExists = await gitBranchExists(baseWorkspace, slot.branch);
5273
5344
  const target = JSON.stringify(slot.workspace);
5274
5345
  const branch = JSON.stringify(slot.branch);
@@ -5289,8 +5360,8 @@ function escapeRegExp$1(value) {
5289
5360
  * Check if Overdeck hooks are configured, and auto-setup if not
5290
5361
  */
5291
5362
  function checkAndSetupHooks() {
5292
- const settingsPath = join(homedir(), ".claude", "settings.json");
5293
- const hookPath = join(homedir(), ".overdeck", "bin", "heartbeat-hook");
5363
+ const settingsPath = join$1(homedir(), ".claude", "settings.json");
5364
+ const hookPath = join$1(homedir(), ".overdeck", "bin", "heartbeat-hook");
5294
5365
  if (existsSync(settingsPath)) try {
5295
5366
  const settingsContent = readFileSync(settingsPath, "utf-8");
5296
5367
  if ((JSON.parse(settingsContent)?.hooks?.PostToolUse || []).some((hookConfig) => hookConfig.hooks?.some((hook) => hook.command === hookPath || hook.command?.includes("overdeck") || hook.command?.includes("heartbeat-hook")))) return;
@@ -5309,9 +5380,9 @@ function checkAndSetupHooks() {
5309
5380
  * Write task cache for heartbeat hook to use
5310
5381
  */
5311
5382
  function writeTaskCache(agentId, issueId) {
5312
- const cacheDir = join(getAgentDir(agentId));
5383
+ const cacheDir = join$1(getAgentDir(agentId));
5313
5384
  mkdirSync(cacheDir, { recursive: true });
5314
- writeFileSync(join(cacheDir, "current-task.json"), JSON.stringify({
5385
+ writeFileSync(join$1(cacheDir, "current-task.json"), JSON.stringify({
5315
5386
  id: issueId,
5316
5387
  title: `Working on ${issueId}`,
5317
5388
  updated_at: (/* @__PURE__ */ new Date()).toISOString()
@@ -5384,16 +5455,16 @@ function overdeckDir() {
5384
5455
  return getOverdeckHome();
5385
5456
  }
5386
5457
  function heartbeatsDir() {
5387
- return join$1(overdeckDir(), "heartbeats");
5458
+ return join(overdeckDir(), "heartbeats");
5388
5459
  }
5389
5460
  function agentsDir() {
5390
- return join$1(overdeckDir(), "agents");
5461
+ return join(overdeckDir(), "agents");
5391
5462
  }
5392
5463
  function agentDirFor(agentId) {
5393
- return join$1(agentsDir(), agentId);
5464
+ return join(agentsDir(), agentId);
5394
5465
  }
5395
5466
  function describeSpawnFailure(agentId) {
5396
- const outputPath = join$1(agentDirFor(agentId), "output.log");
5467
+ const outputPath = join(agentDirFor(agentId), "output.log");
5397
5468
  if (!existsSync$1(outputPath)) return "";
5398
5469
  try {
5399
5470
  const tail = readFileSync$1(outputPath, "utf8").slice(-1500).trim().split("\n").slice(-8).join("\n");
@@ -5403,13 +5474,13 @@ function describeSpawnFailure(agentId) {
5403
5474
  }
5404
5475
  }
5405
5476
  function ohmypiSessionDirFor(agentId) {
5406
- return join$1(agentDirFor(agentId), "sessions");
5477
+ return join(agentDirFor(agentId), "sessions");
5407
5478
  }
5408
5479
  function readyPathFor(agentId) {
5409
5480
  return ohmypiFifoPaths(agentId).readyPath;
5410
5481
  }
5411
5482
  function sessionIdPathFor(agentId) {
5412
- return join$1(agentDirFor(agentId), "session.id");
5483
+ return join(agentDirFor(agentId), "session.id");
5413
5484
  }
5414
5485
  /**
5415
5486
  * Read the persisted omp session id for resume.
@@ -5464,12 +5535,12 @@ function cleanupOhmypiTransientFiles(agentId) {
5464
5535
  } catch {}
5465
5536
  const dir = agentDirFor(agentId);
5466
5537
  for (const transient of ["ready.json", "completed"]) {
5467
- const path = join$1(dir, transient);
5538
+ const path = join(dir, transient);
5468
5539
  if (existsSync$1(path)) try {
5469
5540
  unlinkSync$1(path);
5470
5541
  } catch {}
5471
5542
  }
5472
- const heartbeatPath = join$1(heartbeatsDir(), `${agentId}.json`);
5543
+ const heartbeatPath = join(heartbeatsDir(), `${agentId}.json`);
5473
5544
  if (existsSync$1(heartbeatPath)) try {
5474
5545
  unlinkSync$1(heartbeatPath);
5475
5546
  } catch {}
@@ -5493,7 +5564,7 @@ async function waitForReady(agentId, timeoutMs) {
5493
5564
  throw new OhmypiSpawnTimeout(agentId);
5494
5565
  }
5495
5566
  function writeAgentPromptFile(agentId, prompt) {
5496
- const promptPath = join$1(agentDirFor(agentId), "prompt.txt");
5567
+ const promptPath = join(agentDirFor(agentId), "prompt.txt");
5497
5568
  writeFileSync$1(promptPath, prompt);
5498
5569
  return promptPath;
5499
5570
  }
@@ -5512,7 +5583,7 @@ function walkJsonl(dir, out) {
5512
5583
  return;
5513
5584
  }
5514
5585
  for (const entry of entries) {
5515
- const full = join$1(dir, entry);
5586
+ const full = join(dir, entry);
5516
5587
  let stat;
5517
5588
  try {
5518
5589
  stat = statSync$1(full);
@@ -5569,7 +5640,7 @@ var init_ohmypi = __esmMin((() => {
5569
5640
  }
5570
5641
  }
5571
5642
  getHeartbeat(agentId) {
5572
- const heartbeatPath = join$1(heartbeatsDir(), `${agentId}.json`);
5643
+ const heartbeatPath = join(heartbeatsDir(), `${agentId}.json`);
5573
5644
  if (existsSync$1(heartbeatPath)) try {
5574
5645
  const data = JSON.parse(readFileSync$1(heartbeatPath, "utf-8"));
5575
5646
  if (data.timestamp) {
@@ -5704,7 +5775,7 @@ var init_ohmypi = __esmMin((() => {
5704
5775
  setTerminalEnv: true,
5705
5776
  trapHup: true
5706
5777
  });
5707
- const launcherPath = join$1(dir, "ohmypi-launcher.sh");
5778
+ const launcherPath = join(dir, "ohmypi-launcher.sh");
5708
5779
  writeFileSync$1(launcherPath, launcherScript);
5709
5780
  chmodSync$1(launcherPath, 493);
5710
5781
  await Effect.runPromise(createSession(agentId, config.workspace, `bash ${launcherPath}`, { env: { OVERDECK_AGENT_ID: agentId } }));
@@ -5756,7 +5827,7 @@ var init_ohmypi = __esmMin((() => {
5756
5827
  function appendActivity(agentId, entry) {
5757
5828
  const dir = getAgentDir(agentId);
5758
5829
  mkdirSync(dir, { recursive: true });
5759
- const activityFile = join(dir, "activity.jsonl");
5830
+ const activityFile = join$1(dir, "activity.jsonl");
5760
5831
  appendFileSync(activityFile, JSON.stringify(entry) + "\n");
5761
5832
  if (existsSync(activityFile)) try {
5762
5833
  const lines = readFileSync(activityFile, "utf8").trim().split("\n");
@@ -5767,7 +5838,7 @@ function appendActivity(agentId, entry) {
5767
5838
  * Read activity log (last N entries)
5768
5839
  */
5769
5840
  function getActivity(agentId, limit = 100) {
5770
- const activityFile = join(getAgentDir(agentId), "activity.jsonl");
5841
+ const activityFile = join$1(getAgentDir(agentId), "activity.jsonl");
5771
5842
  if (!existsSync(activityFile)) return [];
5772
5843
  try {
5773
5844
  return readFileSync(activityFile, "utf8").trim().split("\n").filter((line) => line.trim()).map((line) => JSON.parse(line)).slice(-limit);
@@ -5781,13 +5852,13 @@ function getActivity(agentId, limit = 100) {
5781
5852
  function saveSessionId(agentId, sessionId) {
5782
5853
  const dir = getAgentDir(agentId);
5783
5854
  mkdirSync(dir, { recursive: true });
5784
- writeFileSync(join(dir, "session.id"), sessionId);
5855
+ writeFileSync(join$1(dir, "session.id"), sessionId);
5785
5856
  }
5786
5857
  /**
5787
5858
  * Get saved Claude session ID
5788
5859
  */
5789
5860
  function getSessionId(agentId) {
5790
- const sessionFile = join(getAgentDir(agentId), "session.id");
5861
+ const sessionFile = join$1(getAgentDir(agentId), "session.id");
5791
5862
  if (!existsSync(sessionFile)) return null;
5792
5863
  try {
5793
5864
  return readFileSync(sessionFile, "utf8").trim();
@@ -5804,10 +5875,10 @@ function getSessionId(agentId) {
5804
5875
  */
5805
5876
  function resolveCodexThreadIdSync(agentId) {
5806
5877
  const agentDir = getAgentDir(agentId);
5807
- const codexHome = join(agentDir, "codex-home");
5878
+ const codexHome = join$1(agentDir, "codex-home");
5808
5879
  if (!existsSync(codexHome)) return null;
5809
5880
  try {
5810
- const threadIdPath = join(agentDir, "codex-thread-id");
5881
+ const threadIdPath = join$1(agentDir, "codex-thread-id");
5811
5882
  if (existsSync(threadIdPath)) {
5812
5883
  const id = readFileSync(threadIdPath, "utf-8").trim();
5813
5884
  if (id) return id;
@@ -5834,10 +5905,10 @@ function pickFreshestExistingSessionIdSync(agentId, candidates) {
5834
5905
  if (valid.length === 0) return null;
5835
5906
  const workspace = getAgentStateSync(agentId)?.workspace;
5836
5907
  if (workspace) {
5837
- const projectDir = join(homedir(), ".claude", "projects", encodeClaudeProjectDir(workspace));
5908
+ const projectDir = join$1(homedir(), ".claude", "projects", encodeClaudeProjectDir(workspace));
5838
5909
  let best = null;
5839
5910
  for (const id of valid) try {
5840
- const s = statSync(join(projectDir, `${id}.jsonl`));
5911
+ const s = statSync(join$1(projectDir, `${id}.jsonl`));
5841
5912
  if (!best || s.mtimeMs > best.mtimeMs) best = {
5842
5913
  id,
5843
5914
  mtimeMs: s.mtimeMs
@@ -5852,7 +5923,7 @@ function getLatestSessionIdSync(agentId) {
5852
5923
  if (codexThreadId) return codexThreadId;
5853
5924
  const fromSessionFile = getSessionId(agentId);
5854
5925
  if (fromSessionFile) return fromSessionFile;
5855
- const sessionsFile = join(getAgentDir(agentId), "sessions.json");
5926
+ const sessionsFile = join$1(getAgentDir(agentId), "sessions.json");
5856
5927
  try {
5857
5928
  if (existsSync(sessionsFile)) {
5858
5929
  const sessions = JSON.parse(readFileSync(sessionsFile, "utf8"));
@@ -5864,7 +5935,7 @@ function getLatestSessionIdSync(agentId) {
5864
5935
  } catch {}
5865
5936
  const runtimeState = getAgentRuntimeStateSync(agentId);
5866
5937
  if (runtimeState?.claudeSessionId) return runtimeState.claudeSessionId;
5867
- const codexThreadIdPath = join(getAgentDir(agentId), "codex-thread-id");
5938
+ const codexThreadIdPath = join$1(getAgentDir(agentId), "codex-thread-id");
5868
5939
  try {
5869
5940
  if (existsSync(codexThreadIdPath)) {
5870
5941
  const threadId = readFileSync(codexThreadIdPath, "utf-8").trim();
@@ -5888,8 +5959,8 @@ var init_activity = __esmMin((() => {
5888
5959
  init_errors();
5889
5960
  getLatestSessionId = (agentId) => {
5890
5961
  const agentDir = getAgentDir(agentId);
5891
- const sessionFile = join(agentDir, "session.id");
5892
- const sessionsFile = join(agentDir, "sessions.json");
5962
+ const sessionFile = join$1(agentDir, "session.id");
5963
+ const sessionsFile = join$1(agentDir, "sessions.json");
5893
5964
  return Effect.gen(function* () {
5894
5965
  const sessionId = yield* Effect.tryPromise({
5895
5966
  try: () => readFile$1(sessionFile, "utf8"),
@@ -5947,9 +6018,9 @@ var init_session_rotation = __esmMin((() => {}));
5947
6018
  //#endregion
5948
6019
  //#region ../../lib/agents/messaging.ts
5949
6020
  function queueAgentMail(agentId, message) {
5950
- const mailDir = join(getAgentDir(agentId), "mail");
6021
+ const mailDir = join$1(getAgentDir(agentId), "mail");
5951
6022
  mkdirSync(mailDir, { recursive: true });
5952
- writeFileSync(join(mailDir, `${(/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-")}.md`), `# Message\n\n${message}\n`);
6023
+ writeFileSync(join$1(mailDir, `${(/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-")}.md`), `# Message\n\n${message}\n`);
5953
6024
  }
5954
6025
  async function appendTellInterventionForUserSource(normalizedId, caller) {
5955
6026
  if (!USER_MESSAGE_INTERVENTION_SOURCES.has(caller)) return;
@@ -5983,7 +6054,7 @@ async function messageAgent(agentId, message, caller = "internal") {
5983
6054
  return;
5984
6055
  }
5985
6056
  console.log(`[agents] Auto-resuming suspended agent ${normalizedId} to deliver message`);
5986
- const { resumeAgent } = await import("./agents-BIggLvi_.js");
6057
+ const { resumeAgent } = await import("./agents-C4kZ8a2r.js");
5987
6058
  const result = await resumeAgent(normalizedId, message);
5988
6059
  if (!result.success) throw new Error(`Failed to auto-resume agent: ${result.error}`);
5989
6060
  if (result.messageDelivered === false) throw new Error(`Agent resumed but ready signal did not fire — message not delivered. Feedback is in the mail queue.`);
@@ -5999,7 +6070,7 @@ async function messageAgent(agentId, message, caller = "internal") {
5999
6070
  return;
6000
6071
  }
6001
6072
  console.log(`[agents] Auto-resuming stopped agent ${normalizedId} to deliver feedback (session exists: ${await Effect.runPromise(sessionExists(normalizedId))})`);
6002
- const { resumeAgent } = await import("./agents-BIggLvi_.js");
6073
+ const { resumeAgent } = await import("./agents-C4kZ8a2r.js");
6003
6074
  const resumeResult = await resumeAgent(normalizedId, message);
6004
6075
  queueAgentMail(normalizedId, message);
6005
6076
  if (resumeResult.success && resumeResult.messageDelivered !== false) {
@@ -6031,11 +6102,11 @@ async function messageAgent(agentId, message, caller = "internal") {
6031
6102
  await Effect.runPromise(killSession(normalizedId));
6032
6103
  } catch {}
6033
6104
  const providerExports = await getProviderExportsForModel(agentState.model || "claude-sonnet-4-6");
6034
- const fallbackLauncher = join(getAgentDir(normalizedId), "launcher.sh");
6105
+ const fallbackLauncher = join$1(getAgentDir(normalizedId), "launcher.sh");
6035
6106
  const resumeRole = agentState.role ?? "work";
6036
6107
  const resumeModel = agentState.model || "claude-sonnet-4-6";
6037
6108
  const fallbackHarness = agentState.harness ?? "claude-code";
6038
- const { assertWorkspaceStackHealthyForSpawn } = await import("./agents-BIggLvi_.js");
6109
+ const { assertWorkspaceStackHealthyForSpawn } = await import("./agents-C4kZ8a2r.js");
6039
6110
  await assertWorkspaceStackHealthyForSpawn(agentState.issueId || normalizedId.replace(/^agent-/, "").toUpperCase(), resumeRole, agentState.hostOverride === true, agentState.workspace);
6040
6111
  const fallbackPiFields = fallbackHarness === "ohmypi" ? await getOhmypiLauncherFields(normalizedId, resumeModel) : {};
6041
6112
  const fallbackCodexFields = fallbackHarness === "codex" ? getCodexLauncherFields(normalizedId, resumeModel, agentState.workspace) : {};
@@ -6098,7 +6169,7 @@ async function messageAgent(agentId, message, caller = "internal") {
6098
6169
  } else console.warn(`[agents] Fallback-restarted ${normalizedId} but ready signal not detected — feedback in mail queue`);
6099
6170
  return;
6100
6171
  }
6101
- const { loadRemoteAgentState, sendToRemoteAgent } = await import("./remote-agents-DNuaAgU6.js");
6172
+ const { loadRemoteAgentState, sendToRemoteAgent } = await import("./remote-agents-UHoi4oGr.js");
6102
6173
  const remoteState = loadRemoteAgentState(normalizedId);
6103
6174
  if (remoteState && remoteState.vmName) {
6104
6175
  console.log(`[agents] Sending message to remote agent ${normalizedId} on ${remoteState.vmName}`);
@@ -6112,7 +6183,7 @@ async function messageAgent(agentId, message, caller = "internal") {
6112
6183
  const expectedHarness = agentState?.harness ?? "claude-code";
6113
6184
  if (panePids.length > 0 && !await hasAgentRuntimeInSubtree(panePids[0], expectedHarness)) {
6114
6185
  console.warn(`[agents] ${normalizedId} tmux session is a zombie (no ${expectedHarness} runtime) — attempting resume`);
6115
- const { resumeAgent } = await import("./agents-BIggLvi_.js");
6186
+ const { resumeAgent } = await import("./agents-C4kZ8a2r.js");
6116
6187
  const resumeResult = await resumeAgent(normalizedId, message);
6117
6188
  if (resumeResult.success) {
6118
6189
  if (resumeResult.messageDelivered !== false) await appendTellInterventionForUserSource(normalizedId, caller);
@@ -6224,7 +6295,7 @@ async function buildCompactRecoverySeed(agentId) {
6224
6295
  if (agentState?.workspace && sessionId) {
6225
6296
  const sessionFile = sessionFilePath(agentState.workspace, sessionId);
6226
6297
  try {
6227
- const [{ getConversationCompactionSettings }, { generateSmartSummary }] = await Promise.all([import("./conversation-compaction-Ba5aZdrb.js"), import("./smart-compaction-Bgp_gwcA.js")]);
6298
+ const [{ getConversationCompactionSettings }, { generateSmartSummary }] = await Promise.all([import("./conversation-compaction-CZRVk4hg.js"), import("./smart-compaction-xblMyVpT.js")]);
6228
6299
  const settings = getConversationCompactionSettings();
6229
6300
  summary = (await Effect.runPromise(generateSmartSummary({
6230
6301
  jsonlPath: sessionFile,
@@ -6235,7 +6306,7 @@ async function buildCompactRecoverySeed(agentId) {
6235
6306
  } catch (err) {
6236
6307
  logAgentLifecycleSync(normalizedId, `compact-recovery smart summary failed (${err instanceof Error ? err.message : String(err)}); trying heuristic fallback`);
6237
6308
  try {
6238
- const { generateFallbackSummary } = await import("./summary-fork-DedqguZb.js");
6309
+ const { generateFallbackSummary } = await import("./summary-fork-EWWBvzgE.js");
6239
6310
  summary = await Effect.runPromise(generateFallbackSummary(sessionFile));
6240
6311
  } catch (fallbackErr) {
6241
6312
  logAgentLifecycleSync(normalizedId, `compact-recovery fallback summary failed (${fallbackErr instanceof Error ? fallbackErr.message : String(fallbackErr)}); seeding with reseed instructions only`);
@@ -6320,7 +6391,7 @@ async function resumeAgent(agentId, message, opts) {
6320
6391
  if (await Effect.runPromise(sessionExists(normalizedId))) try {
6321
6392
  await Effect.runPromise(killSession(normalizedId));
6322
6393
  } catch {}
6323
- const completedFile = join(getAgentDir(normalizedId), "completed");
6394
+ const completedFile = join$1(getAgentDir(normalizedId), "completed");
6324
6395
  if (existsSync(completedFile)) try {
6325
6396
  unlinkSync(completedFile);
6326
6397
  } catch {}
@@ -6382,7 +6453,7 @@ async function resumeAgent(agentId, message, opts) {
6382
6453
  if (resumeDriftReasons.length > 0) logAgentLifecycleSync(normalizedId, `resumeAgent: starting fresh session instead of --resume because session origin drifted (${resumeDriftReasons.join(", ")})`);
6383
6454
  if (freshSessionId) saveSessionId(normalizedId, freshSessionId);
6384
6455
  else if (!shouldResumeSavedSession) try {
6385
- unlinkSync(join(getAgentDir(normalizedId), "session.id"));
6456
+ unlinkSync(join$1(getAgentDir(normalizedId), "session.id"));
6386
6457
  } catch {}
6387
6458
  const issueId = agentState.issueId || normalizedId.replace(/^agent-/, "").toUpperCase();
6388
6459
  const defaultResumeMessage = buildDefaultResumeContinueMessage(issueId);
@@ -6422,7 +6493,7 @@ async function resumeAgent(agentId, message, opts) {
6422
6493
  useSupervisor: supervisorLaunch.useSupervisor,
6423
6494
  supervisorScriptPath: supervisorLaunch.supervisorScriptPath
6424
6495
  });
6425
- const launcherScript = join(getAgentDir(normalizedId), "launcher.sh");
6496
+ const launcherScript = join$1(getAgentDir(normalizedId), "launcher.sh");
6426
6497
  await writeLauncherScriptAtomic(launcherScript, launcherContent);
6427
6498
  const claudeCmd = `bash ${launcherScript}`;
6428
6499
  await Effect.runPromise(createSession(normalizedId, agentState.workspace, claudeCmd, { env: {
@@ -6571,7 +6642,7 @@ async function sendGracefulRestartWarning(agentId, harness, workspace) {
6571
6642
  await Effect.runPromise(sendKeys(agentId, warning));
6572
6643
  } catch {}
6573
6644
  await new Promise((r) => setTimeout(r, GRACEFUL_RESTART_GRACE_MS));
6574
- const continueFile = join(workspace, ".pan", "continue.json");
6645
+ const continueFile = join$1(workspace, ".pan", "continue.json");
6575
6646
  if (existsSync(continueFile)) {
6576
6647
  const mtime = statSync(continueFile).mtimeMs;
6577
6648
  const ageMs = Date.now() - mtime;
@@ -6645,7 +6716,7 @@ async function restartAgent(agentId, opts = {}) {
6645
6716
  useSupervisor: supervisorLaunch.useSupervisor,
6646
6717
  supervisorScriptPath: supervisorLaunch.supervisorScriptPath
6647
6718
  });
6648
- const launcherScript = join(getAgentDir(normalizedId), "launcher.sh");
6719
+ const launcherScript = join$1(getAgentDir(normalizedId), "launcher.sh");
6649
6720
  await writeLauncherScriptAtomic(launcherScript, launcherContent);
6650
6721
  const claudeCmd = `bash ${launcherScript}`;
6651
6722
  await Effect.runPromise(createSession(normalizedId, agentState.workspace, claudeCmd, { env: {
@@ -6749,7 +6820,7 @@ async function recoverAgent(agentId, opts = {}) {
6749
6820
  killSessionSync(normalizedId);
6750
6821
  } catch {}
6751
6822
  }
6752
- const healthFile = join(getAgentDir(normalizedId), "health.json");
6823
+ const healthFile = join$1(getAgentDir(normalizedId), "health.json");
6753
6824
  let health = {
6754
6825
  consecutiveFailures: 0,
6755
6826
  killCount: 0,
@@ -6782,7 +6853,7 @@ async function recoverAgent(agentId, opts = {}) {
6782
6853
  isPlanning: recoveryRole === "plan",
6783
6854
  harness: "ohmypi"
6784
6855
  });
6785
- const launcherScript = join(getAgentDir(normalizedId), "launcher.sh");
6856
+ const launcherScript = join$1(getAgentDir(normalizedId), "launcher.sh");
6786
6857
  await writeLauncherScriptAtomic(launcherScript, launcherContent);
6787
6858
  await Effect.runPromise(createSession(normalizedId, state.workspace, `bash ${launcherScript}`, { env: {
6788
6859
  ...BLANKED_PROVIDER_ENV,
@@ -6817,7 +6888,7 @@ async function recoverAgent(agentId, opts = {}) {
6817
6888
  supervisorScriptPath: recoverySupervisorLaunch.supervisorScriptPath,
6818
6889
  ...recoveryCodexFields
6819
6890
  });
6820
- const launcherScript = join(getAgentDir(normalizedId), "launcher.sh");
6891
+ const launcherScript = join$1(getAgentDir(normalizedId), "launcher.sh");
6821
6892
  await writeLauncherScriptAtomic(launcherScript, recoveryLauncherContent);
6822
6893
  createSessionSync(normalizedId, state.workspace, `bash ${launcherScript}`, { env: {
6823
6894
  ...BLANKED_PROVIDER_ENV,
@@ -7429,7 +7500,7 @@ function extractTracedFrText(prdMarkdown, traces) {
7429
7500
  */
7430
7501
  async function loadPrdDraft(projectRoot, issueId) {
7431
7502
  for (const name of [`${issueId.toUpperCase()}.md`, `${issueId.toLowerCase()}.md`]) try {
7432
- return await readFile(join$1(projectRoot, ".pan", "drafts", name), "utf-8");
7503
+ return await readFile(join(projectRoot, ".pan", "drafts", name), "utf-8");
7433
7504
  } catch {}
7434
7505
  }
7435
7506
  /**
@@ -7777,6 +7848,6 @@ var init_agents = __esmMin((() => {
7777
7848
  init_tier_replay();
7778
7849
  }));
7779
7850
  //#endregion
7780
- export { warnOnBareNumericIssueIds as $, writeAgentStateJsonSync as $n, waitForPromptReady as $t, init_messaging as A, getAgentDir as An, init_bridge_token as At, createOhmypiRuntimeSync as B, markAgentRunningState as Bn, resolveStaffing as Bt, restartAgent as C, __testInternals as Cn, deliverAgentPermissionDecision as Ct, init_context_overflow as D, clearAgentTroubledSync as Dn, captureTranscriptUserRecordSnapshot as Dt, resumeAgent as E, clearAgentTroubled as En, setAgentDeliveryMethod as Et, getActivity as F, init_agent_state as Fn, init_spawn_prep as Ft, init_termination as G, recordStartupSessionExit as Gn, getAgentRuntimeBaseCommand as Gt, init_spawn as H, markAgentTroubled as Hn, resolveTier as Ht, getLatestSessionId as I, isAgentPaused as In, retrieveSpawnTimeMemoryContext as It, dropLegacyAgentStatesMissingRoleAsync as J, saveAgentStateSync as Jn, getProviderAuthMode as Jt, stopAgent as K, resetAgentFailureCount as Kn, getCodexLauncherFields as Kt, getLatestSessionIdSync as L, isAgentTroubled as Ln, transitionIssueToInProgress as Lt, init_operator_interventions as M, getAgentState as Mn, assertWorkspaceStackHealthyForSpawn as Mt, operatorInterventionEvent as N, getAgentStateFilePath as Nn, buildAgentLaunchConfig as Nt, isContextOverflowError as O, clearYieldForResumeSync as On, init_transcript_landing as Ot, appendActivity as P, getAgentStateSync as Pn, defaultRunWorkspace as Pt, listRunningAgentsSync as Q, wipeAgentStateDirs as Qn, roleAgentDefinitionPath as Qt, getSessionId as R, isRole as Rn, transitionIssueToInReview as Rt, recoverAgent as S, SESSION_EXITED_BEFORE_KICKOFF as Sn, deliverAgentMessage as St, init_resume as T, clearAgentPausedSync as Tn, deliverResumeMessageWithTranscriptConfirmation as Tt, spawnAgent as U, recordAgentFailure as Un, OHMYPI_AGENT_READY_TIMEOUT_SECONDS as Ut, init_ohmypi as V, markAgentStoppedState as Vn, init_resolve_tier as Vt, spawnRun as W, recordAgentFailureSync as Wn, describeOhmypiSpawnFailure as Wt, listAgentStates as X, setAgentPausedSync as Xn, init_runtime_command as Xt, init_queries as Y, setAgentPaused as Yn, getRoleRuntimeBaseCommand as Yt, listRunningAgents as Z, setAgentYieldedSync as Zn, injectPiConversationMemory as Zt, init_slot_reconcile as _, decideChannelsForWorkAgent as _n, getAgentRuntimeSnapshot as _r, init_config as _t, replayStandingAgent as a, init_claude_auth as an, init_pty_token as ar, init_concurrency as at, autoRecoverAgents as b, writeChannelsBridgeMcpConfig as bn, parseOhmypiSessionCostResultSync as br, saveCloisterConfigSync as bt, init_tier_supervisor as c, determineModel as cn, isQualifiedAgentId as cr, resetPatrolDispatchBudget as ct, spawnTierSupervisor as d, getProviderTmuxFlags as dn, waitForAgentIdle as dr, workResumeSlotsAvailable as dt, init_pi_fifo as en, init_persistent_logger as er, countRunningAgents as et, supervisorAgentId as f, init_provider_health as fn, waitForReadySignal as fr, getCachedMemoryVerdict as ft, init_tier_escalation as g, buildDefaultResumeContinueMessage as gn, saveAgentRuntimeState as gr, getHealthThresholdsMs as gt, decideEscalation as h, init_openai_auth as hn, init_runtime_state as hr, DEFAULT_CLOISTER_CONFIG as ht, replayCrashedStandingAgent as i, getClaudeAuthStatus as in, readAgentHarnessModelRecordSync as ir, getConcurrencyLimits as it, messageAgent as j, getAgentResumeGateBlockReason as jn, writeBridgeTokenSync as jt, isContextOverflowTail as k, decideResumeGate as kn, probeTranscriptSince as kt, loadPrdDraft as l, getProviderEnvForModel as ln, normalizeAgentId as lr, tryReserveAdvancingSlot as lt, init_tier_feed as m, getOpenAIAuthStatus as mn, getAgentRuntimeStateSync as mr, setCachedMemoryVerdict as mt, compactAtTierRunBoundary as n, init_ohmypi_fifo as nn, logDeaconEventSync as nr, describeRunningAgents as nt, shouldReplayCompactAtTierRunBoundary as o, buildCavemanExports as on, writePtyToken as or, releaseAdvancingSlot as ot, broadcastCommit as p, validateProviderHealth as pn, getAgentRuntimeState as pr, init_memory_verdict_cache as pt, stopAgentSync as q, saveAgentState as qn, getOhmypiLauncherFields as qt, contextWindowForModel as r, ohmypiFifoPaths as rn, init_agent_record_sync as rr, emergencyBrake as rt, deliverCommitForReview as s, buildSpawnEnvForModel as sn, clearReadySignal as sr, releaseSwarmSlot as st, init_agents as t, piFifoPaths as tn, logAgentLifecycleSync as tr, countRunningSwarmSlotsForIssue as tt, shouldSupervise as u, getProviderExportsForModel as un, resolveAgentTargetSync as ur, tryReserveSwarmSlot as ut, listSlotAssignments as v, decideSupervisorForWorkAgent as vn, init_agent_runtime as vr, loadCloisterConfig as vt, buildCompactRecoverySeed as w, clearAgentPaused as wn, deliverInitialPromptWithRetry as wt, detectCrashedAgents as x, GOVERNOR_SLOT_PAUSE_REASON_PREFIX as xn, shouldAutoStart as xt, reconcileSlotState as y, dismissDevChannelsDialog as yn, init_ohmypi_parser as yr, loadCloisterConfigSync as yt, saveSessionId as z, markAgentRunning as zn, init_staffing as zt };
7851
+ export { warnOnBareNumericIssueIds as $, writeAgentStateJsonSync as $n, waitForPromptReady as $t, init_messaging as A, getAgentDir as An, init_bridge_token as At, createOhmypiRuntimeSync as B, markAgentRunningState as Bn, resolveStaffing as Bt, restartAgent as C, __testInternals as Cn, deliverAgentPermissionDecision as Ct, init_context_overflow as D, clearAgentTroubledSync as Dn, captureTranscriptUserRecordSnapshot as Dt, resumeAgent as E, clearAgentTroubled as En, setAgentDeliveryMethod as Et, getActivity as F, init_agent_state as Fn, init_spawn_prep as Ft, init_termination as G, recordStartupSessionExit as Gn, getAgentRuntimeBaseCommand as Gt, init_spawn as H, markAgentTroubled as Hn, resolveTier as Ht, getLatestSessionId as I, isAgentPaused as In, retrieveSpawnTimeMemoryContext as It, dropLegacyAgentStatesMissingRoleAsync as J, saveAgentStateSync as Jn, getProviderAuthMode as Jt, stopAgent as K, resetAgentFailureCount as Kn, getCodexLauncherFields as Kt, getLatestSessionIdSync as L, isAgentTroubled as Ln, transitionIssueToInProgress as Lt, init_operator_interventions as M, getAgentState as Mn, assertWorkspaceStackHealthyForSpawn as Mt, operatorInterventionEvent as N, getAgentStateFilePath as Nn, buildAgentLaunchConfig as Nt, isContextOverflowError as O, clearYieldForResumeSync as On, init_transcript_landing as Ot, appendActivity as P, getAgentStateSync as Pn, defaultRunWorkspace as Pt, listRunningAgentsSync as Q, wipeAgentStateDirs as Qn, roleAgentDefinitionPath as Qt, getSessionId as R, isRole as Rn, transitionIssueToInReview as Rt, recoverAgent as S, SESSION_EXITED_BEFORE_KICKOFF as Sn, parseOhmypiSessionCostResultSync as Sr, deliverAgentMessage as St, init_resume as T, clearAgentPausedSync as Tn, deliverResumeMessageWithTranscriptConfirmation as Tt, spawnAgent as U, recordAgentFailure as Un, OHMYPI_AGENT_READY_TIMEOUT_SECONDS as Ut, init_ohmypi as V, markAgentStoppedState as Vn, init_resolve_tier as Vt, spawnRun as W, recordAgentFailureSync as Wn, describeOhmypiSpawnFailure as Wt, listAgentStates as X, setAgentPausedSync as Xn, init_runtime_command as Xt, init_queries as Y, setAgentPaused as Yn, getRoleRuntimeBaseCommand as Yt, listRunningAgents as Z, setAgentYieldedSync as Zn, injectPiConversationMemory as Zt, init_slot_reconcile as _, decideChannelsForWorkAgent as _n, init_runtime_state as _r, init_config as _t, replayStandingAgent as a, init_claude_auth as an, init_pty_token as ar, init_concurrency as at, autoRecoverAgents as b, writeChannelsBridgeMcpConfig as bn, init_agent_runtime as br, saveCloisterConfigSync as bt, init_tier_supervisor as c, determineModel as cn, resolvePtySupervisorScriptPath as cr, resetPatrolDispatchBudget as ct, spawnTierSupervisor as d, getProviderTmuxFlags as dn, normalizeAgentId as dr, workResumeSlotsAvailable as dt, init_pi_fifo as en, init_persistent_logger as er, countRunningAgents as et, supervisorAgentId as f, init_provider_health as fn, resolveAgentTargetSync as fr, getCachedMemoryVerdict as ft, init_tier_escalation as g, buildDefaultResumeContinueMessage as gn, getAgentRuntimeStateSync as gr, getHealthThresholdsMs as gt, decideEscalation as h, init_openai_auth as hn, getAgentRuntimeState as hr, DEFAULT_CLOISTER_CONFIG as ht, replayCrashedStandingAgent as i, getClaudeAuthStatus as in, readAgentHarnessModelRecordSync as ir, getConcurrencyLimits as it, messageAgent as j, getAgentResumeGateBlockReason as jn, writeBridgeTokenSync as jt, isContextOverflowTail as k, decideResumeGate as kn, probeTranscriptSince as kt, loadPrdDraft as l, getProviderEnvForModel as ln, clearReadySignal as lr, tryReserveAdvancingSlot as lt, init_tier_feed as m, getOpenAIAuthStatus as mn, waitForReadySignal as mr, setCachedMemoryVerdict as mt, compactAtTierRunBoundary as n, init_ohmypi_fifo as nn, logDeaconEventSync as nr, describeRunningAgents as nt, shouldReplayCompactAtTierRunBoundary as o, buildCavemanExports as on, writePtyToken as or, releaseAdvancingSlot as ot, broadcastCommit as p, validateProviderHealth as pn, waitForAgentIdle as pr, init_memory_verdict_cache as pt, stopAgentSync as q, saveAgentState as qn, getOhmypiLauncherFields as qt, contextWindowForModel as r, ohmypiFifoPaths as rn, init_agent_record_sync as rr, emergencyBrake as rt, deliverCommitForReview as s, buildSpawnEnvForModel as sn, init_pty_supervisor_locate as sr, releaseSwarmSlot as st, init_agents as t, piFifoPaths as tn, logAgentLifecycleSync as tr, countRunningSwarmSlotsForIssue as tt, shouldSupervise as u, getProviderExportsForModel as un, isQualifiedAgentId as ur, tryReserveSwarmSlot as ut, listSlotAssignments as v, decideSupervisorForWorkAgent as vn, saveAgentRuntimeState as vr, loadCloisterConfig as vt, buildCompactRecoverySeed as w, clearAgentPaused as wn, deliverInitialPromptWithRetry as wt, detectCrashedAgents as x, GOVERNOR_SLOT_PAUSE_REASON_PREFIX as xn, init_ohmypi_parser as xr, shouldAutoStart as xt, reconcileSlotState as y, dismissDevChannelsDialog as yn, getAgentRuntimeSnapshot as yr, loadCloisterConfigSync as yt, saveSessionId as z, markAgentRunning as zn, init_staffing as zt };
7781
7852
 
7782
- //# sourceMappingURL=agents-DHvsjsuP.js.map
7853
+ //# sourceMappingURL=agents-B5LfpLPv.js.map