@overdeck/desktop 0.45.23 → 0.45.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (388) hide show
  1. package/drizzle/overdeck/0000_overdeck_init.sql +2 -0
  2. package/package.json +1 -1
  3. package/server/{acceptance-criteria-DOA0KgXx.js → acceptance-criteria-DDCnXF58.js} +2 -2
  4. package/server/{advancing-selfheal-BBu6DSNm.js → advancing-selfheal-BVwW4qRn.js} +6 -6
  5. package/server/{agent-gc-BV1q_2EV.js → agent-gc-CHcnvonI.js} +4 -4
  6. package/server/agent-state-Bc3tzUC8.js +3 -0
  7. package/server/{agent-state-service-HoK8U4jW.js → agent-state-service-BsgWxZuB.js} +5 -5
  8. package/server/{agent-state-service-CnzFKSAQ.js → agent-state-service-D5UGKIJL.js} +1 -1
  9. package/server/{agents-B4Bjbkfv.js → agents-EbI0zCJl.js} +4 -4
  10. package/server/agents-wi9NWzs2.js +3 -0
  11. package/server/{archive-planning-zkJb3BeM.js → archive-planning-BZDgzoEj.js} +1 -1
  12. package/server/{archive-planning-DYrYojxl.js → archive-planning-Du25Jtst.js} +4 -4
  13. package/server/{artifact-index-jobs-C-xy7Z5v.js → artifact-index-jobs-CbEDfCDu.js} +2 -2
  14. package/server/assemble-J2ZZ2C15.js +339 -0
  15. package/server/{backlog-auto-trigger-GtG71X8H.js → backlog-auto-trigger-2R2jog7n.js} +3 -3
  16. package/server/{behavior-B_-4EKF3.js → behavior-B3exJ42O.js} +2 -2
  17. package/server/{briefing-freshness-DWdW7vUm.js → briefing-freshness-D1wzUIWv.js} +2 -2
  18. package/server/{build-info-DgTqZkL5.js → build-info-CZk_TITh.js} +1 -1
  19. package/server/{build-info-BT096lEl.js → build-info-Ie_D0_BT.js} +3 -3
  20. package/server/{checkpoint-manager-DDqcGyu8.js → checkpoint-manager-BI1Wxoku.js} +2 -2
  21. package/server/{checkpoint-manager-B7Bt29J0.js → checkpoint-manager-DwbQoqrC.js} +1 -1
  22. package/server/checkpoint-worker.js +1 -1
  23. package/server/{checkpoints-CpgCjAlN.js → checkpoints-BJIs5QIA.js} +1 -1
  24. package/server/{checkpoints-C-AXLfYT.js → checkpoints-CQB1h765.js} +2 -2
  25. package/server/{claude-hooks-provision-C8wdRnN1.js → claude-hooks-provision-8Ngo8TpT.js} +1 -1
  26. package/server/{claude-hooks-provision-but-_qGY.js → claude-hooks-provision-D8GXF3_s.js} +2 -2
  27. package/server/{claude-permissions-H_5wHQZQ.js → claude-permissions-DNWEVV6z.js} +2 -2
  28. package/server/{claude-settings-overlay-CbSz0Dvb.js → claude-settings-overlay-CEdaqpWI.js} +2 -2
  29. package/server/{claude-settings-overlay-BTENVmYf.js → claude-settings-overlay-DWy-Bb4Y.js} +1 -1
  30. package/server/cli-B86rejVV.js +3 -0
  31. package/server/{cli-vBeXbPrq.js → cli-RoOx5DUf.js} +9 -9
  32. package/server/{cliproxy-Bgb2XCqi.js → cliproxy-C8a1vtTU.js} +2 -2
  33. package/server/{cliproxy-DW0V86F8.js → cliproxy-fHfIeiGd.js} +1 -1
  34. package/server/{close-issue-Dn_4c4G8.js → close-issue-DoOifFIK.js} +5 -5
  35. package/server/{closed-issue-reaper-hANY_ehE.js → closed-issue-reaper-Bk3SU4RC.js} +9 -9
  36. package/server/{closed-issue-reaper-CWpY2uBw.js → closed-issue-reaper-CktPXo8m.js} +1 -1
  37. package/server/{codex-TmSi-yTv.js → codex-BZXGhUVB.js} +7 -7
  38. package/server/{codex-Dg7Is5yb.js → codex-GcHuUF-k.js} +1 -1
  39. package/server/{codex-parser-C4gSH-IR.js → codex-parser-CFZ1_1Jl.js} +2 -2
  40. package/server/{config-CCvjQf27.js → config-BZ0sHTju.js} +2 -2
  41. package/server/{config-DjLOdbgT.js → config-CKxYiCmX.js} +2 -2
  42. package/server/{config-DUIhMN_T.js → config-DzV30TOm.js} +1 -1
  43. package/server/{config-yaml-DvyMuOle.js → config-yaml-DySPNmKN.js} +23 -9
  44. package/server/{conflict-gate-CmrYpa47.js → conflict-gate-BaCVrH-N.js} +3 -3
  45. package/server/{conflict-gate-BSJkNTdp.js → conflict-gate-BhAY7TUd.js} +1 -1
  46. package/server/context-layers-BrPmE__h.js +4 -0
  47. package/server/context-layers-igZ4FI4_.js +37 -0
  48. package/server/{control-settings-aP1ANIlI.js → control-settings-BQp7_4uD.js} +4 -4
  49. package/server/{conversation-compaction-CNbTLB86.js → conversation-compaction-CgrR8YYp.js} +8 -8
  50. package/server/{conversation-compaction-DiG5zWQq.js → conversation-compaction-eQB5CkOe.js} +1 -1
  51. package/server/{conversation-service-Up7FEzIC.js → conversation-service-BLd3MYsG.js} +1 -1
  52. package/server/{conversation-service-Du-MTNpJ.js → conversation-service-DPJ71F33.js} +329 -19
  53. package/server/{conversations-DbOs1e9Q.js → conversations-6AfUfbwc.js} +5 -5
  54. package/server/{conversations-6mPANqvL.js → conversations-CAsJF9kh.js} +1 -1
  55. package/server/{cost-Ca0YTWDw.js → cost-B2ddP6wq.js} +2 -2
  56. package/server/{cost-CW4WSe72.js → cost-R-m6Yi-W.js} +3 -3
  57. package/server/{cost-sync-C0VdGme1.js → cost-sync-BsN6ER0n.js} +3 -3
  58. package/server/{dag-CdOjJVDT.js → dag-B1ucnjDU.js} +2 -2
  59. package/server/{dangerous-git-ops-CT-IypG3.js → dangerous-git-ops-BXqeWVSf.js} +1 -1
  60. package/server/dashboard-db-worker.js +7 -7
  61. package/server/{deacon-pRnyD5w9.js → deacon-CU_cAYSR.js} +254 -144
  62. package/server/{deacon-DYSEJb48.js → deacon-kiQrb4ZT.js} +3 -3
  63. package/server/{deacon-nudge-log-Bjg8U4Y9.js → deacon-nudge-log-6wVqAaqz.js} +3 -3
  64. package/server/{deacon-swarm-DftYRDo8.js → deacon-swarm-BXZZ1Z2-.js} +13 -13
  65. package/server/deacon-swarm-C-GwfjJy.js +2 -0
  66. package/server/deacon.js +8 -8
  67. package/server/{deploy-patrol-Bjsho_ha.js → deploy-patrol-AiFoP8dw.js} +6 -6
  68. package/server/{deploy-window-DeP_OIRk.js → deploy-window-C3F-tihF.js} +6 -6
  69. package/server/{deploy-window-CM6W1-c6.js → deploy-window-DkZraDyj.js} +1 -1
  70. package/server/{dev-supervisor-BpMoHlkR.js → dev-supervisor-bcOWqdQE.js} +2 -2
  71. package/server/{devcontainer-renderer-CtUgrVKW.js → devcontainer-renderer-_d6XhyND.js} +3 -3
  72. package/server/dist-Bzy0y69j.js +3 -0
  73. package/server/{dist-DyRx4cI7.js → dist-Cb_0uvpS.js} +1 -1
  74. package/server/{docker-BK7HIcBj.js → docker-DcMTFTUC.js} +2 -2
  75. package/server/{dod-BrSfUHm0.js → dod-C6n9RV3G.js} +1 -1
  76. package/server/{ensure-devcontainer-DRqaAkBR.js → ensure-devcontainer-BZgOhRo7.js} +1 -1
  77. package/server/{ensure-devcontainer-DseivYEy.js → ensure-devcontainer-DNi-ono3.js} +4 -4
  78. package/server/{esm-shims-CbI3BVkl.js → esm-shims-OSHAYaS1.js} +1 -1
  79. package/server/{event-store-tdiY5eDZ.js → event-store-CQL6NeqB.js} +3 -3
  80. package/server/{event-store-Cr5PQwFC.js → event-store-EV2cMiXj.js} +1 -1
  81. package/server/{events-CvvGK6LT.js → events-BTdrdEq8.js} +1 -1
  82. package/server/{events-CC1dgUpx.js → events-DTfAe4My.js} +3 -3
  83. package/server/{factory-CynerjXO.js → factory-CFibJuaw.js} +4 -4
  84. package/server/{feature-registry-population-B0pmAz0a.js → feature-registry-population-DKZFMbFt.js} +4 -4
  85. package/server/{feature-registry-storage-_wUBRD3J.js → feature-registry-storage-BdPuLcBX.js} +2 -2
  86. package/server/{features-Dhxz-wLc.js → features-ez2271oH.js} +2 -2
  87. package/server/{feedback-target-CPS15Vte.js → feedback-target-7mqqwrX6.js} +7 -7
  88. package/server/{feedback-target-iygZwmMc.js → feedback-target-CoFDHiM8.js} +1 -1
  89. package/server/{feedback-writer-C9b6ccN1.js → feedback-writer-CY5L1lB7.js} +5 -5
  90. package/server/{feedback-writer-qmiMbqTZ.js → feedback-writer-D3a22RCd.js} +1 -1
  91. package/server/flywheel-DHrgCphM.js +1084 -0
  92. package/server/flywheel-DzGtWnJ1.js +477 -0
  93. package/server/flywheel-SVF02Jpq.js +2 -0
  94. package/server/{flywheel-merge-order-DxbQKE1d.js → flywheel-merge-order-UU0tiUld.js} +9 -8
  95. package/server/{flywheel-merge-order-C-6zRLvM.js → flywheel-merge-order-UUcsCDb6.js} +1 -1
  96. package/server/{forge-Ch9gCFod.js → forge-CNFnyqps.js} +2 -2
  97. package/server/forge-DXnS_YFH.js +2 -0
  98. package/server/{from-CJ_aH5jD.js → from-kNxT0bZC.js} +1 -1
  99. package/server/{fts-db-CKgg0VKg.js → fts-db-CE46vDkZ.js} +2 -2
  100. package/server/{fts-operations-BrL_VTRr.js → fts-operations-CqY6zl-i.js} +2 -2
  101. package/server/{git-utils-BVa07a4a.js → git-utils-CRw2zLPC.js} +68 -3
  102. package/server/git-utils-D0_yhCgF.js +3 -0
  103. package/server/{github-app-CMBdIFBQ.js → github-app-C3QrAUd0.js} +18 -7
  104. package/server/{github-app-CPfoFAdV.js → github-app-ClZ2lk8D.js} +1 -1
  105. package/server/{github-client--XVlDpwM.js → github-client-BnIsSrEN.js} +2 -2
  106. package/server/{github-client-B4QsdE-X.js → github-client-DfQYVUaw.js} +1 -1
  107. package/server/{github-pr-lookup-BRbDW-qk.js → github-pr-lookup-D16NGsSO.js} +2 -2
  108. package/server/{harness-binary-CVio2m-u.js → harness-binary-DPUi-Pv8.js} +32 -6
  109. package/server/{harness-resolve-qHJBhy3Z.js → harness-resolve-3lNZkyT4.js} +18 -9
  110. package/server/{health-events-C9B8y1Hm.js → health-events-BBcTYQKU.js} +2 -2
  111. package/server/{health-events-CpfvuVmm.js → health-events-BDOHby5Q.js} +1 -1
  112. package/server/{hooks-DUXw8A0-.js → hooks-CKZgXlJb.js} +2 -2
  113. package/server/{hooks-ltecuFqZ.js → hooks-DPVX1rwQ.js} +1 -1
  114. package/server/{hume-BEq0bUDg.js → hume-Cz8igP9E.js} +2 -2
  115. package/server/hume-ccTf4wTX.js +3 -0
  116. package/server/{idle-stack-reaper-D7w9t3fE.js → idle-stack-reaper-CuLF0j2H.js} +1 -1
  117. package/server/{idle-stack-reaper-w1ISSlhs.js → idle-stack-reaper-DDIRwxUY.js} +2 -2
  118. package/server/{in-flight-guard-aQ1IxeI3.js → in-flight-guard-CAAkqPLu.js} +2 -2
  119. package/server/{infra-CzaSOgul.js → infra-BEqFxlJc.js} +14 -4
  120. package/server/{injection-DZ0PfYa4.js → injection-C8aiVJrF.js} +191 -183
  121. package/server/{injection-oNZeoDhL.js → injection-CPUIqNhI.js} +1 -1
  122. package/server/{inspect-agent-DJKLWcVT.js → inspect-agent-BLuJ1AkT.js} +135 -79
  123. package/server/inspect-agent-Brtz0URj.js +2 -0
  124. package/server/{internal-token-DXdfprGr.js → internal-token-BrcU6qfe.js} +1 -1
  125. package/server/{internal-token-Bb4XeV2x.js → internal-token-s0-oKybJ.js} +2 -2
  126. package/server/{io-B3_AHDfr.js → io-C9kF1wtJ.js} +3 -3
  127. package/server/{issue-closed-zhdvQicO.js → issue-closed-CDJk4pIp.js} +7 -7
  128. package/server/{issue-lifecycle-Dy4vd0Oa.js → issue-lifecycle-B8sZHVHh.js} +1 -1
  129. package/server/{issue-lifecycle-CreaCkjW.js → issue-lifecycle-ojZAzDBP.js} +21 -21
  130. package/server/{issue-service-singleton-DabvBWUp.js → issue-service-singleton-BvJ09SaR.js} +1 -1
  131. package/server/{issue-service-singleton-B5ushCvE.js → issue-service-singleton-Yx5DdmVJ.js} +8 -8
  132. package/server/{issues-B6ToV6x1.js → issues-BMmP_77e.js} +2 -2
  133. package/server/{jsonl-parser-Dhflo1SH.js → jsonl-parser-BXSlHwEh.js} +3 -3
  134. package/server/{label-cleanup-BKPJm4Hv.js → label-cleanup-B0UJwnv5.js} +3 -3
  135. package/server/{label-reconciler-DdWbHEBu.js → label-reconciler-B4iOAjlC.js} +4 -4
  136. package/server/{launcher-generator-CHVm7bGT.js → launcher-generator-BBWG_SiS.js} +101 -7
  137. package/server/{lifecycle-io-D8iNBcux.js → lifecycle-io-BREGpnLk.js} +5 -5
  138. package/server/{lifecycle-io-Bsnr2K4F.js → lifecycle-io-DPo7x11I.js} +1 -1
  139. package/server/{lifecycle-sycO16hj.js → lifecycle-xmBfK2GJ.js} +6 -6
  140. package/server/{lifecycle-DfeyBDwA.js → lifecycle-yPd___5E.js} +2 -2
  141. package/server/{linear-client-D4zqMnX7.js → linear-client-BsuUvkdA.js} +2 -2
  142. package/server/{linear-client-DqhDQO9k.js → linear-client-CTskEeT_.js} +1 -1
  143. package/server/memory-fts-worker.js +1 -1
  144. package/server/{merge-DK23JEdS.js → merge-B1DiziGU.js} +1 -1
  145. package/server/{merge-C_ZEhbqI.js → merge-CefQNAnq.js} +3 -3
  146. package/server/{merge-agent-XrB80vfT.js → merge-agent-4WOWlSYA.js} +28 -28
  147. package/server/{merge-agent-BQM3a8z5.js → merge-agent-CKkgIBPB.js} +1 -1
  148. package/server/{merge-batch-Bwoyr8Je.js → merge-batch-ClFn2T-y.js} +1 -1
  149. package/server/merge-ops-CR44oU9-.js +2 -0
  150. package/server/{merge-rebase-C1KIVr0s.js → merge-rebase-BfaTyXsw.js} +2 -2
  151. package/server/merge-set-DJ8-UErs.js +83 -0
  152. package/server/{merge-set-DnSYdBEp.js → merge-set-bUqbm3yc.js} +1 -1
  153. package/server/{merge-sync-SSv3E-pl.js → merge-sync-BJYeOODr.js} +1 -1
  154. package/server/{merge-sync-DZ9dojJn.js → merge-sync-VPV28g0g.js} +2 -2
  155. package/server/{merge-train-DxDfBTjr.js → merge-train-CHopycP0.js} +3 -3
  156. package/server/{merge-train-deps-CyYQUksx.js → merge-train-deps-D1cOZzy2.js} +4 -4
  157. package/server/{merge-verification-CSizH3HY.js → merge-verification-BkaOqPsw.js} +4 -4
  158. package/server/{multipart-parser-Dt8YPN5S.js → multipart-parser-duPAfSBw.js} +2 -2
  159. package/server/{no-resume-mode-Cx3K0hHi.js → no-resume-mode-Nw29vaFb.js} +1 -1
  160. package/server/node_modules/.package-lock.json +8 -8
  161. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/package.json +3 -3
  162. package/server/node_modules/undici/README.md +5 -0
  163. package/server/node_modules/undici/docs/docs/api/Client.md +4 -0
  164. package/server/node_modules/undici/docs/docs/api/Dispatcher.md +6 -0
  165. package/server/node_modules/undici/docs/docs/api/Interceptors.md +59 -0
  166. package/server/node_modules/undici/docs/docs/api/MockAgent.md +27 -0
  167. package/server/node_modules/undici/docs/docs/api/MockPool.md +28 -1
  168. package/server/node_modules/undici/docs/docs/index.md +5 -0
  169. package/server/node_modules/undici/lib/core/request.js +1 -1
  170. package/server/node_modules/undici/lib/core/util.js +6 -1
  171. package/server/node_modules/undici/lib/dispatcher/agent.js +3 -3
  172. package/server/node_modules/undici/lib/dispatcher/client-h1.js +31 -6
  173. package/server/node_modules/undici/lib/dispatcher/client-h2.js +34 -43
  174. package/server/node_modules/undici/lib/handler/cache-handler.js +93 -5
  175. package/server/node_modules/undici/lib/handler/cache-revalidation-handler.js +10 -0
  176. package/server/node_modules/undici/lib/handler/redirect-handler.js +5 -2
  177. package/server/node_modules/undici/lib/handler/retry-handler.js +6 -4
  178. package/server/node_modules/undici/lib/interceptor/cache.js +21 -4
  179. package/server/node_modules/undici/lib/interceptor/decompress.js +4 -0
  180. package/server/node_modules/undici/lib/mock/mock-interceptor.js +25 -7
  181. package/server/node_modules/undici/lib/mock/mock-utils.js +39 -10
  182. package/server/node_modules/undici/lib/util/cache.js +49 -7
  183. package/server/node_modules/undici/lib/web/fetch/body.js +2 -1
  184. package/server/node_modules/undici/lib/web/fetch/response.js +1 -3
  185. package/server/node_modules/undici/package.json +2 -2
  186. package/server/node_modules/undici/types/client.d.ts +2 -2
  187. package/server/node_modules/undici/types/dispatcher.d.ts +3 -3
  188. package/server/node_modules/undici/types/mock-interceptor.d.ts +5 -1
  189. package/server/{orphan-proposed-reconciler-neK8dHQk.js → orphan-proposed-reconciler-BvKkWMJQ.js} +12 -12
  190. package/server/{orphan-proposed-reconciler-BTkDrl4R.js → orphan-proposed-reconciler-CTSGcK8p.js} +1 -1
  191. package/server/package-lock.json +9 -9
  192. package/server/package.json +1 -1
  193. package/server/{pan-dir-DeVUgwA7.js → pan-dir-B0c3w0Ya.js} +3 -3
  194. package/server/{paths-_zEts6wc.js → paths-D-xWGHdh.js} +2 -2
  195. package/server/{pickup-Dd0Znxxy.js → pickup-DUCLWrJY.js} +17 -16
  196. package/server/{pipeline-membership-0HaEGDlH.js → pipeline-membership-mY3GprlK.js} +7 -7
  197. package/server/{pipeline-notifier-6iCJplFZ.js → pipeline-notifier-BJr8gQX6.js} +1 -1
  198. package/server/{pipeline-notifier-D0ykk59O.js → pipeline-notifier-BXkJzDC4.js} +2 -2
  199. package/server/{project-pipelines-2sK1apsO.js → project-pipelines-C0MWUeCU.js} +2 -2
  200. package/server/project-repos-B6GycDh9.js +94 -0
  201. package/server/project-repos-DXKQsc_m.js +3 -0
  202. package/server/{projects-9SkRpES9.js → projects-vjjcmiN8.js} +1 -1
  203. package/server/{prompts-Dp4Tpk39.js → prompts-DxzFXuLl.js} +2 -2
  204. package/server/{providers-DV7ec8l7.js → providers-qQAwGQDW.js} +7 -7
  205. package/server/{providers-DKkBXhxU.js → providers-u4Ga0jOr.js} +1 -1
  206. package/server/public/assets/{chunk-BO2N2NFS-CltymLRg.js → chunk-BO2N2NFS-BamJdinX.js} +4 -4
  207. package/server/public/assets/{diagram-OG6HWLK6-D2f6pjgA.js → diagram-OG6HWLK6-DfOB8-w4.js} +1 -1
  208. package/server/public/assets/{dist-DEmlBBNQ.js → dist-ByIuzMQW.js} +3 -3
  209. package/server/public/assets/{dist-BWR4qFiV.js → dist-D7zYSEA6.js} +1 -1
  210. package/server/public/assets/{ganttDiagram-6RSMTGT7-DnfiViPK.js → ganttDiagram-6RSMTGT7-EdmRyXL3.js} +1 -1
  211. package/server/public/assets/{highlighted-body-OFNGDK62-B8Wrmj9H.js → highlighted-body-OFNGDK62-MerOfTX8.js} +1 -1
  212. package/server/public/assets/{index-CsSuZQBI.js → index-CWeMerGO.js} +146 -144
  213. package/server/public/assets/{index-CUr1xv8w.css → index-CenuJ3Cw.css} +1 -1
  214. package/server/public/assets/{linear-C9zFQpkX.js → linear-BBbArIcK.js} +1 -1
  215. package/server/public/assets/mermaid-GHXKKRXX-CpPWAFwE.js +1 -0
  216. package/server/public/assets/{pieDiagram-4H26LBE5-lR8H7Yjd.js → pieDiagram-4H26LBE5-BKIddiJN.js} +1 -1
  217. package/server/public/assets/{prod-B1jCQihw.js → prod-B8vYiu52.js} +4 -4
  218. package/server/public/assets/{quadrantDiagram-W4KKPZXB-CVQ2guem.js → quadrantDiagram-W4KKPZXB-D6RtoULk.js} +1 -1
  219. package/server/public/assets/{sankeyDiagram-5OEKKPKP-eD1RB4gm.js → sankeyDiagram-5OEKKPKP-CLrCedZX.js} +1 -1
  220. package/server/public/assets/{xychartDiagram-2RQKCTM6-ChEC6dQn.js → xychartDiagram-2RQKCTM6-hznR8DYl.js} +1 -1
  221. package/server/public/index.html +2 -2
  222. package/server/{pull-requests--Ib2jTgy.js → pull-requests-7N8WKseP.js} +1 -1
  223. package/server/{pull-requests-CXIhdCYD.js → pull-requests-_lHueOHW.js} +3 -3
  224. package/server/{queries-6d7Cdtm7.js → queries-CjNIf-Ub.js} +576 -166
  225. package/server/{rally-B708-nZn.js → rally-CyWT_lNO.js} +3 -3
  226. package/server/{rally-api-nY0ZANw3.js → rally-api-C8e_1JRi.js} +2 -2
  227. package/server/{rally-api-yjQ0TfHd.js → rally-api-ClOSd-Tt.js} +1 -1
  228. package/server/{rally-client-B1EJhfV0.js → rally-client-lc-nokqr.js} +4 -4
  229. package/server/{rally-client-CULK2XAY.js → rally-client-sgtVqzNU.js} +1 -1
  230. package/server/rally-zhhtXuDP.js +3 -0
  231. package/server/{reap-terminal-sessions-MWnqdLCJ.js → reap-terminal-sessions-7KeHv1R1.js} +1 -1
  232. package/server/{reap-terminal-sessions-N3BTkmX_.js → reap-terminal-sessions-BtHPo6Xc.js} +1 -1
  233. package/server/rebuild-stack-CFvcBHsS.js +4 -0
  234. package/server/{rebuild-stack-Dp4eLkt4.js → rebuild-stack-lwtsW0GO.js} +26 -35
  235. package/server/{reconstruct-cache-uWbZfjms.js → reconstruct-cache-C3Ui7ojV.js} +6 -6
  236. package/server/{record-t6V-3Dcj.js → record-CN0pj4_5.js} +1 -1
  237. package/server/{record-update-DACtKh6_.js → record-update-bLJxAXH4.js} +1 -1
  238. package/server/{record-update-Dq0t2uBG.js → record-update-dE1Aw83j.js} +2 -2
  239. package/server/{recovery-trip-BJtIQuag.js → recovery-trip-BvRWfUXM.js} +2 -2
  240. package/server/{release-engine-DZpmGGzb.js → release-engine-Cx48W7z8.js} +5 -5
  241. package/server/{release-set-hnXd_kga.js → release-set-CQfuN9-v.js} +3 -3
  242. package/server/{remote-Br-ZWVIP.js → remote-C_2hasl7.js} +3 -3
  243. package/server/{remote-4tiENDaI.js → remote-ChgimyYa.js} +3 -3
  244. package/server/{remote-agents-nmty1mLu.js → remote-agents-By1ige5O.js} +6 -6
  245. package/server/{remote-agents-CRCg1L4H.js → remote-agents-CA3Ihlxj.js} +1 -1
  246. package/server/{remote-completion-BbWNd10K.js → remote-completion-fVe9e_3u.js} +12 -12
  247. package/server/resume-BFv1PGpA.js +3 -0
  248. package/server/{review-agent-sKkE1FEL.js → review-agent-CIGOQYBD.js} +29 -25
  249. package/server/{review-agent-DJRO8EG8.js → review-agent-DNboMyW4.js} +1 -1
  250. package/server/{review-artifacts-BLbSC4ke.js → review-artifacts-nRDPuMxd.js} +5 -5
  251. package/server/{review-context-BgX3lcCx.js → review-context-2uj-YQ8J.js} +69 -25
  252. package/server/{review-status-C6n6-9f_.js → review-status-btEYlaxA.js} +1 -1
  253. package/server/{review-status-enrichment-tbOn_A_u.js → review-status-enrichment-Dci-ZwEt.js} +3 -3
  254. package/server/{review-status-A7quS5KJ.js → review-status-kZj_KyCk.js} +42 -26
  255. package/server/{review-status-sync-BhSQ0d0l.js → review-status-sync-BTOpxtTC.js} +10 -5
  256. package/server/{review-status-sync-To3-iS-N.js → review-status-sync-DSDK3OMy.js} +1 -1
  257. package/server/{review-verdict-feedback-CTRNtzXO.js → review-verdict-feedback-CCjVA7Uk.js} +6 -6
  258. package/server/{review-verdict-feedback-C1Kg8n7t.js → review-verdict-feedback-CTd4QMBu.js} +1 -1
  259. package/server/{rollup-B53Y81xK.js → rollup-BKQC7jp4.js} +1 -1
  260. package/server/{rollup-WA0VD-Rr.js → rollup-FGsKki9R.js} +8 -8
  261. package/server/{scanner-D2743cp8.js → scanner-CnqEZeDy.js} +41 -14
  262. package/server/{sequence-io-Cg0zYj_E.js → sequence-io-D909zgeH.js} +4 -4
  263. package/server/{sequencer-agent-BGY8gjg-.js → sequencer-agent-CzkcK6P5.js} +5 -5
  264. package/server/server.js +2194 -341
  265. package/server/{service-DCpB_SGd.js → service-CLeAoU6G.js} +51 -50
  266. package/server/{session-fork-BQ8_6H32.js → session-fork-CHI1XvL9.js} +2 -2
  267. package/server/{session-history-CVZDpS3c.js → session-history-BT3IvqhC.js} +4 -4
  268. package/server/settings-66A6uvIA.js +2 -0
  269. package/server/{settings-BZ5m1UCl.js → settings-BTMvpNFU.js} +3 -3
  270. package/server/{settings-ylxwqwQG.js → settings-C0zgxOGf.js} +2 -2
  271. package/server/{shadow-engineering-BlxG6Xye.js → shadow-engineering-BJfgm-hX.js} +2 -2
  272. package/server/{shadow-state-Dh-HzF2J.js → shadow-state-7a-524T8.js} +2 -2
  273. package/server/{shadow-state-C2_epgx2.js → shadow-state-DnDyjujH.js} +1 -1
  274. package/server/{shadow-utils-4bvjn9b3.js → shadow-utils-Db3oroFG.js} +2 -2
  275. package/server/{ship-log-ClSMIzZX.js → ship-log-D9MlVzYU.js} +1 -1
  276. package/server/{smart-compaction-CHIxLr_d.js → smart-compaction-CV2ukKND.js} +1 -1
  277. package/server/{smart-compaction-r4pHQBIr.js → smart-compaction-KCYScAU1.js} +7 -7
  278. package/server/{spawn-planning-session-DWAorh2B.js → spawn-planning-session-DKpdFyOC.js} +30 -23
  279. package/server/{spawn-planning-session-KC_UduxD.js → spawn-planning-session-qUC2VWu3.js} +1 -1
  280. package/server/{specialist-completion-BXhav38U.js → specialist-completion-Ky9wCDpb.js} +1 -1
  281. package/server/{specialist-context-DtrYvGJ-.js → specialist-context-Bn3dCGS2.js} +5 -5
  282. package/server/{specialist-handoff-logger-C45ouoZ6.js → specialist-handoff-logger-CMEwYxa2.js} +2 -2
  283. package/server/{specialist-logs-DJ3RzKxW.js → specialist-logs-C5p8G7tx.js} +3 -3
  284. package/server/{specialists-JVO00bs7.js → specialists-CC4r-c2s.js} +776 -347
  285. package/server/{specialists-D5fRZXmN.js → specialists-CShuVGWT.js} +1 -1
  286. package/server/{specialists-DVj0hvaL.js → specialists-DM6bWjsi.js} +1 -1
  287. package/server/{specialists-DyFeedjn.js → specialists-jiuuyVkp.js} +21 -19
  288. package/server/specs-C8Wsn2XO.js +3 -0
  289. package/server/{src-CG9mCkP6.js → src-CXmtj0im.js} +6 -6
  290. package/server/{src-CMTQGyCK.js → src-CdmnTM2m.js} +5 -5
  291. package/server/{src-U7_kTPEE.js → src-DtcUOZCq.js} +111 -18
  292. package/server/stack-health-Bn3o8FBX.js +3 -0
  293. package/server/{stack-health-puygdaMd.js → stack-health-DxSdG9cW.js} +63 -9
  294. package/server/{stale-task-claims-BbFwCTb0.js → stale-task-claims-KJKxxiiQ.js} +4 -4
  295. package/server/{staleness-Cbl_w4Bw.js → staleness-CT34nwr9.js} +1 -1
  296. package/server/{staleness-Bpy41ngS.js → staleness-DPm7ClwA.js} +1 -1
  297. package/server/{state-home-CIGjwNfJ.js → state-home-Cn_Qu8IX.js} +2 -2
  298. package/server/{state-migrate-Dkzaxvny.js → state-migrate-BGg2ZaOt.js} +4 -4
  299. package/server/{stuck-remediation-CzEov_fq.js → stuck-remediation-DYuPRYYw.js} +300 -23
  300. package/server/{stuck-remediation-sY_MHHgQ.js → stuck-remediation-s9_2qfi6.js} +1 -1
  301. package/server/{substrate-bug-weights-service-BH66lhm7.js → substrate-bug-weights-service-B-FwCs5V.js} +3 -3
  302. package/server/{summary-fork-DHhJIsAL.js → summary-fork-D1RAk9rJ.js} +78 -12
  303. package/server/{summary-fork-D8bXjCr7.js → summary-fork-DpcxN9tf.js} +2 -2
  304. package/server/supervisor/{injection-budget-C1iPirFS.js → injection-budget-Csw5tqfJ.js} +2 -41
  305. package/server/supervisor/pty-supervisor.js +2 -1
  306. package/server/supervisor/pty-token-x-ea28Us.js +43 -0
  307. package/server/supervisor-FTJAIsAK.js +2 -0
  308. package/server/{supervisor-BO-Zk_h-.js → supervisor-wM4ooB5O.js} +3 -3
  309. package/server/{swarm-readiness-CQ_fwUWF.js → swarm-readiness-DlP_UjHq.js} +3 -3
  310. package/server/{system-prerequisites-Bza0ffAh.js → system-prerequisites-DUDj1YHf.js} +56 -29
  311. package/server/{teardown-workspace-CEgauF4U.js → teardown-workspace-DeTTImn-.js} +15 -15
  312. package/server/{test-agent-queue-DXDt0Xa-.js → test-agent-queue-MbxX5vqq.js} +6 -6
  313. package/server/{test-verdict-CmUBK5cT.js → test-verdict-bWYBtqBg.js} +1 -1
  314. package/server/{test-verdict-DFjjIHR5.js → test-verdict-gscuksPv.js} +1 -1
  315. package/server/{tldr-daemon-DL566HbH.js → tldr-daemon-BYFkts95.js} +1 -1
  316. package/server/{tldr-daemon-BDtLOIlO.js → tldr-daemon-C-69c3OI.js} +2 -2
  317. package/server/{tmux-DoThH6aj.js → tmux-B6z7h_vZ.js} +1 -1
  318. package/server/{tmux-ftABRAmc.js → tmux-R7N7y-Mh.js} +2 -2
  319. package/server/{token-CsOhvw42.js → token-BK6t8BIT.js} +2 -2
  320. package/server/token-util-DuPuNriz.js +3 -0
  321. package/server/{token-util-CTmczIfW.js → token-util-DxXu-vd1.js} +1 -1
  322. package/server/{tracker-config-B4itFzDo.js → tracker-config-G6latr8C.js} +2 -2
  323. package/server/{tracker-utils-BePq_oj-.js → tracker-utils-B4ylXZQK.js} +1 -1
  324. package/server/{tracker-utils-tnxxqROg.js → tracker-utils-DHv5pSDT.js} +2 -2
  325. package/server/{traefik-connect-m73vGebA.js → traefik-connect-Df2uXPsQ.js} +1 -1
  326. package/server/{tunnel-B2vxjx_b.js → tunnel-CDVKJpRv.js} +3 -3
  327. package/server/{tunnel-Cgj-IGIl.js → tunnel-DGdUkGoZ.js} +1 -1
  328. package/server/{types-BBNjPcqU.js → types-5M0lupud.js} +1 -1
  329. package/server/{uat-train-cKfM-_WW.js → uat-train-B05BWkp-.js} +1 -1
  330. package/server/{uat-train-CuEn0t9M.js → uat-train-DDSrSoV1.js} +25 -25
  331. package/server/validate-IfDGkaVR.js +177 -0
  332. package/server/{validation-CIi6pnI2.js → validation-CC9OPqJZ.js} +1 -1
  333. package/server/{validation-B5JxoPUS.js → validation-Dw1pzDzr.js} +4 -4
  334. package/server/{verification-artifact-C-lIHfUa.js → verification-artifact-B3itKTxu.js} +1 -1
  335. package/server/{verification-artifact-BcnIbigL.js → verification-artifact-TVFSz_q1.js} +1 -1
  336. package/server/{verification-runner-CDj4lD4t.js → verification-runner-BW4HOKAz.js} +1 -1
  337. package/server/{verification-runner-Br0S_Ous.js → verification-runner-CkgX6EtI.js} +91 -106
  338. package/server/{vtt-parser-DKpNNW5i.js → vtt-parser-DYPbKcIJ.js} +1 -1
  339. package/server/{work-agent-prompt-Yb2bd3Fq.js → work-agent-prompt-Du8Vh2aJ.js} +9 -9
  340. package/server/workflows-BQu4RFQ-.js +2 -0
  341. package/server/{workflows-C9WmILql.js → workflows-mbQzh6mQ.js} +18 -18
  342. package/server/{workspace-DuUdndHe.js → workspace--8tnhDI0.js} +1 -1
  343. package/server/{workspace-BVl4rihN.js → workspace-BPUws1-_.js} +3 -3
  344. package/server/{workspace-config-cEGcO6UT.js → workspace-config-CIVWZOQr.js} +1 -1
  345. package/server/{workspace-manager-hLUv3ADC.js → workspace-manager-CBhNdzE4.js} +66 -15
  346. package/server/workspace-manager-CWT55qeI.js +3 -0
  347. package/server/{workspace-metadata-DNpMixRq.js → workspace-metadata-BzHnwwX4.js} +1 -1
  348. package/server/{workspace-metadata-CskwzzhL.js → workspace-metadata-_WygnyoX.js} +2 -2
  349. package/server/{workspaces-hWvy9eKs.js → workspaces-Do_9J0LQ.js} +130 -111
  350. package/sync-sources/hooks/record-cost-event.js +6 -4
  351. package/sync-sources/skills/okf/README.md +11 -3
  352. package/sync-sources/skills/okf/SKILL.md +12 -1
  353. package/sync-sources/skills/okf/docs/USAGE.md +15 -0
  354. package/sync-sources/skills/okf/references/overdeck.md +28 -0
  355. package/sync-sources/skills/pan-flywheel/SKILL.md +18 -1
  356. package/sync-sources/skills/pan-knowledge/SKILL.md +10 -0
  357. package/sync-sources/skills/pan-orders/SKILL.md +33 -0
  358. package/sync-sources/skills/pan-start/SKILL.md +4 -0
  359. package/sync-sources/templates/traefik/dynamic/overdeck.yml.template +10 -0
  360. package/server/agent-state-Bg0lhqwj.js +0 -3
  361. package/server/agents-FlIgQ3ql.js +0 -3
  362. package/server/cli-BsVIHwzC.js +0 -3
  363. package/server/context-layers-B3Nt58jl.js +0 -4
  364. package/server/context-layers-ZYFcWiyc.js +0 -165
  365. package/server/deacon-swarm-9jRLS5Ke.js +0 -2
  366. package/server/dist-Bd3vn0Hw.js +0 -3
  367. package/server/flywheel-DMCUzDWg.js +0 -2
  368. package/server/flywheel-DSSpWmqF.js +0 -522
  369. package/server/flywheel-DcBkQvgE.js +0 -207
  370. package/server/forge-B-ZWyTRm.js +0 -2
  371. package/server/git-utils-Dry_Ka_D.js +0 -3
  372. package/server/hume-B_DbflNM.js +0 -3
  373. package/server/inspect-agent-ch-F-5Ci.js +0 -2
  374. package/server/layers-DzxSTGNA.js +0 -93
  375. package/server/merge-blockers-BsFjGrQ8.js +0 -41
  376. package/server/merge-ops-DlB1IM0Y.js +0 -2
  377. package/server/merge-set-DLz0MkGT.js +0 -139
  378. package/server/public/assets/mermaid-GHXKKRXX-BUAB8hqt.js +0 -1
  379. package/server/rally-njs_mJrt.js +0 -3
  380. package/server/rebuild-stack-kA7XngID.js +0 -3
  381. package/server/resume-CcKqnTvE.js +0 -3
  382. package/server/settings-D0OSwos5.js +0 -2
  383. package/server/specs-nN45DG2X.js +0 -3
  384. package/server/stack-health-Df0YEZKa.js +0 -3
  385. package/server/supervisor-BPy-o1A8.js +0 -2
  386. package/server/token-util-DrHg8abn.js +0 -3
  387. package/server/workflows-D90rMOya.js +0 -2
  388. package/server/workspace-manager-ZTdJAy9M.js +0 -3
@@ -349,6 +349,8 @@ CREATE TABLE `review_status` (
349
349
  `strike_ready_at` integer,
350
350
  `strike_landing_state` text,
351
351
  `strike_recovery_count` integer DEFAULT 0,
352
+ `strike_transport_retry_count` integer,
353
+ `strike_next_attempt_at` integer,
352
354
  `strike_landing_attempts` text
353
355
  );
354
356
  --> statement-breakpoint
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@overdeck/desktop",
3
- "version": "0.45.23",
3
+ "version": "0.45.24",
4
4
  "description": "Overdeck Command Deck — AI agent monitoring desktop app",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -1,4 +1,4 @@
1
- import { m as readWorkspacePlanSync, o as init_io, v as init_types, y as subItemsOf } from "./io-B3_AHDfr.js";
1
+ import { m as readWorkspacePlanSync, o as init_io, v as init_types, y as subItemsOf } from "./io-C9kF1wtJ.js";
2
2
  import "effect";
3
3
  //#region ../../lib/xbrief/acceptance-criteria.ts
4
4
  init_io();
@@ -59,4 +59,4 @@ function extractACFromDocument(doc) {
59
59
  //#endregion
60
60
  export { getXBriefACStatusSync as n, extractACFromDocument as t };
61
61
 
62
- //# sourceMappingURL=acceptance-criteria-DOA0KgXx.js.map
62
+ //# sourceMappingURL=acceptance-criteria-DDCnXF58.js.map
@@ -1,8 +1,8 @@
1
- import { D as killSession, M as listSessionNames, w as init_tmux } from "./tmux-ftABRAmc.js";
2
- import { c as getReviewStatusSync, d as loadReviewStatuses, l as init_review_status } from "./review-status-A7quS5KJ.js";
3
- import { Wn as getAgentStateSync, Zn as markAgentStoppedState, b as init_agents, ir as saveAgentStateSync } from "./queries-6d7Cdtm7.js";
4
- import { c as logDeaconEventSync, o as init_persistent_logger } from "./session-history-CVZDpS3c.js";
5
- import { a as selectMergedAdvancingSessions, t as init_reap_terminal_sessions } from "./reap-terminal-sessions-N3BTkmX_.js";
1
+ import { D as killSession, M as listSessionNames, w as init_tmux } from "./tmux-R7N7y-Mh.js";
2
+ import { c as getReviewStatusSync, d as loadReviewStatuses, l as init_review_status } from "./review-status-kZj_KyCk.js";
3
+ import { Yn as getAgentStateSync, b as init_agents, lr as saveAgentStateSync, nr as markAgentStoppedState } from "./queries-CjNIf-Ub.js";
4
+ import { c as logDeaconEventSync, o as init_persistent_logger } from "./session-history-BT3IvqhC.js";
5
+ import { a as selectMergedAdvancingSessions, t as init_reap_terminal_sessions } from "./reap-terminal-sessions-BtHPo6Xc.js";
6
6
  import { Effect } from "effect";
7
7
  //#region ../../lib/cloister/advancing-selfheal.ts
8
8
  init_agents();
@@ -135,4 +135,4 @@ async function runBootAdvancingSelfHeal(deps = defaultBootAdvancingSelfHealDeps)
135
135
  //#endregion
136
136
  export { checkMergedAdvancingSessions, markAdvancingSessionStopped, reconcileInFlightJournals, runBootAdvancingSelfHeal };
137
137
 
138
- //# sourceMappingURL=advancing-selfheal-BBu6DSNm.js.map
138
+ //# sourceMappingURL=advancing-selfheal-BVwW4qRn.js.map
@@ -1,6 +1,6 @@
1
- import { Mt as readIssueRecordForWorkspaceSync, Ot as init_record } from "./config-yaml-DvyMuOle.js";
2
- import { c as listAllAgentsSync, l as removeAgentSync, o as init_agents } from "./agents-B4Bjbkfv.js";
3
- import { i as resolveGitHubIssueSync, n as init_tracker_utils } from "./tracker-utils-tnxxqROg.js";
1
+ import { Mt as readIssueRecordForWorkspaceSync, Ot as init_record } from "./config-yaml-DySPNmKN.js";
2
+ import { c as listAllAgentsSync, l as removeAgentSync, o as init_agents } from "./agents-EbI0zCJl.js";
3
+ import { i as resolveGitHubIssueSync, n as init_tracker_utils } from "./tracker-utils-DHv5pSDT.js";
4
4
  import { n as mapGitHubStateToCanonical, t as init_state_mapping } from "./state-mapping-BL_-3Yt8.js";
5
5
  import { readdir, readlink } from "fs/promises";
6
6
  import { execFile } from "child_process";
@@ -112,4 +112,4 @@ function pruneTerminalStoppedAgents() {
112
112
  //#endregion
113
113
  export { pidsWithCwdUnder as a, sweepAutoCloseOutCache as i, pruneTerminalStoppedAgents as n, getAutoCloseOutCanonicalState as r, pruneStoppedAgentsForIssue as t };
114
114
 
115
- //# sourceMappingURL=agent-gc-BV1q_2EV.js.map
115
+ //# sourceMappingURL=agent-gc-CHcnvonI.js.map
@@ -0,0 +1,3 @@
1
+ import { Bn as clearAgentPausedSync, Hn as clearAgentTroubledSync, Xn as init_agent_state, Yn as getAgentStateSync, dr as setAgentPausedSync } from "./queries-CjNIf-Ub.js";
2
+ init_agent_state();
3
+ export { clearAgentPausedSync, clearAgentTroubledSync, getAgentStateSync, setAgentPausedSync };
@@ -1,6 +1,6 @@
1
- import { a as init_event_store, i as initEventStore } from "./event-store-tdiY5eDZ.js";
2
- import { d as applyEvent, t as init_src, u as INITIAL_READ_MODEL_STATE } from "./src-U7_kTPEE.js";
3
- import { f as markAgentStateServiceInProcess, l as getRuntimeSnapshot$1, p as setAgentRuntimeMirror, r as init_session_history, t as appendSessionIdToHistory, u as init_agent_runtime_mirror } from "./session-history-CVZDpS3c.js";
1
+ import { a as init_event_store, i as initEventStore } from "./event-store-CQL6NeqB.js";
2
+ import { m as applyEvent, p as INITIAL_READ_MODEL_STATE, t as init_src } from "./src-DtcUOZCq.js";
3
+ import { f as markAgentStateServiceInProcess, l as getRuntimeSnapshot$1, p as setAgentRuntimeMirror, r as init_session_history, t as appendSessionIdToHistory, u as init_agent_runtime_mirror } from "./session-history-BT3IvqhC.js";
4
4
  import { Context, Effect, Layer, SubscriptionRef } from "effect";
5
5
  //#region services/agent-state-service.ts
6
6
  /**
@@ -58,7 +58,7 @@ const AgentStateServiceLive = Layer.effect(AgentStateService, Effect.gen(functio
58
58
  const store = yield* Effect.promise(() => initEventStore());
59
59
  const ref = yield* SubscriptionRef.make({});
60
60
  const seedFromSources = Effect.gen(function* () {
61
- const { reconstructCacheAuto } = yield* Effect.promise(() => import("./reconstruct-cache-uWbZfjms.js"));
61
+ const { reconstructCacheAuto } = yield* Effect.promise(() => import("./reconstruct-cache-C3Ui7ojV.js"));
62
62
  const seeded = (yield* Effect.promise(() => reconstructCacheAuto())).agentRuntimeById;
63
63
  if (Object.keys(seeded).length > 0) {
64
64
  yield* SubscriptionRef.update(ref, (current) => mergeRuntimeBySequence(current, seeded));
@@ -107,4 +107,4 @@ function applyEventToRef(ref, ev) {
107
107
  //#endregion
108
108
  export { AgentStateServiceLive as n, getRuntimeSnapshot as r, AgentStateService as t };
109
109
 
110
- //# sourceMappingURL=agent-state-service-HoK8U4jW.js.map
110
+ //# sourceMappingURL=agent-state-service-BsgWxZuB.js.map
@@ -1,2 +1,2 @@
1
- import { n as AgentStateServiceLive, r as getRuntimeSnapshot, t as AgentStateService } from "./agent-state-service-HoK8U4jW.js";
1
+ import { n as AgentStateServiceLive, r as getRuntimeSnapshot, t as AgentStateService } from "./agent-state-service-BsgWxZuB.js";
2
2
  export { AgentStateService, AgentStateServiceLive, getRuntimeSnapshot };
@@ -1,7 +1,7 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Br as getOverdeckHome, Vr as init_paths } from "./config-yaml-DvyMuOle.js";
3
- import { _ as integer, a as EventBus, b as and, c as Records, d as getOverdeckDatabaseSync, f as init_infra, h as text, l as Tmux, m as sqliteTable, p as init_sqlite_core, r as Db, v as init_drizzle_orm, x as eq } from "./infra-CzaSOgul.js";
4
- import { n as init_issues, t as IssueId } from "./issues-B6ToV6x1.js";
2
+ import { Br as getOverdeckHome, Vr as init_paths } from "./config-yaml-DySPNmKN.js";
3
+ import { _ as integer, a as EventBus, b as and, c as Records, d as getOverdeckDatabaseSync, f as init_infra, h as text, l as Tmux, m as sqliteTable, p as init_sqlite_core, r as Db, v as init_drizzle_orm, x as eq } from "./infra-BEqFxlJc.js";
4
+ import { n as init_issues, t as IssueId } from "./issues-BMmP_77e.js";
5
5
  import { join } from "node:path";
6
6
  import { Context, Effect, Layer, Schema } from "effect";
7
7
  import { readFileSync, readdirSync, rmSync, statSync } from "node:fs";
@@ -972,4 +972,4 @@ var init_agents = __esmMin((() => {
972
972
  //#endregion
973
973
  export { countAgentsByStatusRole as a, listAllAgentsSync as c, isTerminalIssueStage as d, countAgentsByStatus as i, removeAgentSync as l, AgentsResolverLive as n, init_agents as o, backfillAgentsSync as r, listAgentIdsByPrefixSync as s, AgentsResolver as t, getIssueStageSync as u };
974
974
 
975
- //# sourceMappingURL=agents-B4Bjbkfv.js.map
975
+ //# sourceMappingURL=agents-EbI0zCJl.js.map
@@ -0,0 +1,3 @@
1
+ import { $ as appendActivity, $n as isRole, $t as OHMYPI_AGENT_READY_TIMEOUT_SECONDS, An as buildDefaultResumeContinueMessage, Ar as saveAgentRuntimeState, At as deliverAgentPermissionDecision, B as detectCrashedAgents, Bn as clearAgentPausedSync, Bt as assertWorkspaceStackHealthyForSpawn, C as replayCrashedStandingAgent, Cn as getProviderEnvForModel, Cr as normalizeAgentId, Dr as getAgentRuntimeState, Er as waitForReadySignal, Fn as writeChannelsBridgeMcpConfig, G as resumeAgent, Gn as getAgentDir, Gt as transitionIssueToInProgress, H as restartAgent, Hn as clearAgentTroubledSync, In as GOVERNOR_SLOT_PAUSE_REASON_PREFIX, Jn as getAgentStateFilePath, Kt as transitionIssueToInReview, Ln as SESSION_EXITED_BEFORE_KICKOFF, Mn as decideChannelsForWorkAgent, Mt as deliverResumeMessageWithTranscriptConfirmation, Nn as decideSupervisorForWorkAgent, Nt as setAgentDeliveryMethod, Or as getAgentRuntimeStateSync, Pn as dismissDevChannelsDialog, Qn as isAgentTroubled, Rn as __testInternals, S as contextWindowForModel, Sn as determineModel, Sr as isQualifiedAgentId, T as shouldReplayCompactAtTierRunBoundary, Tn as getProviderTmuxFlags, Tr as waitForAgentIdle, U as buildCompactRecoverySeed, Un as clearYieldForResumeSync, V as recoverAgent, Vn as clearAgentTroubled, Vt as buildAgentLaunchConfig, Wt as retrieveSpawnTimeMemoryContext, X as messageAgent, Yn as getAgentStateSync, Zn as isAgentPaused, a as listRunningAgentsSync, an as getProviderAuthMode, ar as recordAgentFailureSync, at as saveSessionId, b as init_agents, bn as buildCavemanExports, cn as injectPiConversationMemory, cr as saveAgentState, dn as waitForPromptReady, dr as setAgentPausedSync, en as describeOhmypiSpawnFailure, et as getActivity, fr as setAgentYieldedSync, ft as stopAgent, i as listRunningAgents, ir as recordAgentFailure, jn as buildResumeContinueMessage, jt as deliverInitialPromptWithRetry, kt as deliverAgentMessage, ln as roleAgentDefinitionPath, lr as saveAgentStateSync, lt as spawnAgent, mr as writeAgentStateJsonSync, nn as getAgentRuntimeBaseCommand, nr as markAgentStoppedState, nt as getLatestSessionIdSync, o as warnOnBareNumericIssueIds, on as getRoleRuntimeBaseCommand, pr as wipeAgentStateDirs, pt as stopAgentSync, qn as getAgentState, r as listAgentStates, rr as markAgentTroubled, rt as getSessionId, sr as resetAgentFailureCount, t as dropLegacyAgentStatesMissingRoleAsync, tr as markAgentRunningState, tt as getLatestSessionId, ur as setAgentPaused, ut as spawnRun, w as replayStandingAgent, wn as getProviderExportsForModel, wr as resolveAgentTargetSync, x as compactAtTierRunBoundary, xn as buildSpawnEnvForModel, xr as clearReadySignal, z as autoRecoverAgents, zn as clearAgentPaused } from "./queries-CjNIf-Ub.js";
2
+ init_agents();
3
+ export { GOVERNOR_SLOT_PAUSE_REASON_PREFIX, OHMYPI_AGENT_READY_TIMEOUT_SECONDS, SESSION_EXITED_BEFORE_KICKOFF, __testInternals, appendActivity, assertWorkspaceStackHealthyForSpawn, autoRecoverAgents, buildAgentLaunchConfig, buildCavemanExports, buildCompactRecoverySeed, buildDefaultResumeContinueMessage, buildResumeContinueMessage, buildSpawnEnvForModel, clearAgentPaused, clearAgentPausedSync, clearAgentTroubled, clearAgentTroubledSync, clearReadySignal, clearYieldForResumeSync, compactAtTierRunBoundary, contextWindowForModel, decideChannelsForWorkAgent, decideSupervisorForWorkAgent, deliverAgentMessage, deliverAgentPermissionDecision, deliverInitialPromptWithRetry, deliverResumeMessageWithTranscriptConfirmation, describeOhmypiSpawnFailure, detectCrashedAgents, determineModel, dismissDevChannelsDialog, dropLegacyAgentStatesMissingRoleAsync, getActivity, getAgentDir, getAgentRuntimeBaseCommand, getAgentRuntimeState, getAgentRuntimeStateSync, getAgentState, getAgentStateFilePath, getAgentStateSync, getLatestSessionId, getLatestSessionIdSync, getProviderAuthMode, getProviderEnvForModel, getProviderExportsForModel, getProviderTmuxFlags, getRoleRuntimeBaseCommand, getSessionId, injectPiConversationMemory, isAgentPaused, isAgentTroubled, isQualifiedAgentId, isRole, listAgentStates, listRunningAgents, listRunningAgentsSync, markAgentRunningState, markAgentStoppedState, markAgentTroubled, messageAgent, normalizeAgentId, recordAgentFailure, recordAgentFailureSync, recoverAgent, replayCrashedStandingAgent, replayStandingAgent, resetAgentFailureCount, resolveAgentTargetSync, restartAgent, resumeAgent, retrieveSpawnTimeMemoryContext, roleAgentDefinitionPath, saveAgentRuntimeState, saveAgentState, saveAgentStateSync, saveSessionId, setAgentDeliveryMethod, setAgentPaused, setAgentPausedSync, setAgentYieldedSync, shouldReplayCompactAtTierRunBoundary, spawnAgent, spawnRun, stopAgent, stopAgentSync, transitionIssueToInProgress, transitionIssueToInReview, waitForAgentIdle, waitForPromptReady, waitForReadySignal, warnOnBareNumericIssueIds, wipeAgentStateDirs, writeAgentStateJsonSync, writeChannelsBridgeMcpConfig };
@@ -1,3 +1,3 @@
1
- import { i as findWorkspacePath, o as init_archive_planning } from "./archive-planning-DYrYojxl.js";
1
+ import { i as findWorkspacePath, o as init_archive_planning } from "./archive-planning-Du25Jtst.js";
2
2
  init_archive_planning();
3
3
  export { findWorkspacePath };
@@ -1,8 +1,8 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Dr as PROJECT_PRDS_COMPLETED_SUBDIR, Er as PROJECT_PRDS_ACTIVE_SUBDIR, Or as PROJECT_PRDS_PLANNED_SUBDIR, Tr as PROJECT_DOCS_SUBDIR, Vr as init_paths, gr as ARCHIVES_DIR, kr as PROJECT_PRDS_SUBDIR } from "./config-yaml-DvyMuOle.js";
2
+ import { Dr as PROJECT_PRDS_COMPLETED_SUBDIR, Er as PROJECT_PRDS_ACTIVE_SUBDIR, Or as PROJECT_PRDS_PLANNED_SUBDIR, Tr as PROJECT_DOCS_SUBDIR, Vr as init_paths, gr as ARCHIVES_DIR, kr as PROJECT_PRDS_SUBDIR } from "./config-yaml-DySPNmKN.js";
3
3
  import { a as PAN_DIRNAME, c as PAN_SESSIONS_FILENAME, i as PAN_CONTINUE_FILENAME, n as PAN_CONTEXT_FILENAME, s as PAN_FEEDBACK_DIRNAME, u as PAN_SPEC_FILENAME } from "./types-hraoaQIp.js";
4
- import { a as getDraftPath, o as getIssueDraftPath, t as init_pan_dir } from "./pan-dir-DeVUgwA7.js";
5
- import { a as stepSkipped, i as stepOk, n as init_types, r as stepFailed } from "./types-BBNjPcqU.js";
4
+ import { a as getDraftPath, o as getIssueDraftPath, t as init_pan_dir } from "./pan-dir-B0c3w0Ya.js";
5
+ import { a as stepSkipped, i as stepOk, n as init_types, r as stepFailed } from "./types-5M0lupud.js";
6
6
  import { Effect } from "effect";
7
7
  import { existsSync, readdirSync } from "fs";
8
8
  import { dirname, join } from "path";
@@ -290,4 +290,4 @@ var init_archive_planning = __esmMin((() => {
290
290
  //#endregion
291
291
  export { inferBranchFromWorkspace as a, findPrdAnywhereSync as c, findWorkspacePath as i, init_prd_locations as l, archiveWorkspaceArtifacts as n, init_archive_planning as o, findAllWorkspacePaths as r, movePrd as s, archivePlanning as t };
292
292
 
293
- //# sourceMappingURL=archive-planning-DYrYojxl.js.map
293
+ //# sourceMappingURL=archive-planning-Du25Jtst.js.map
@@ -1,4 +1,4 @@
1
- import { Br as getOverdeckHome, Vr as init_paths } from "./config-yaml-DvyMuOle.js";
1
+ import { Br as getOverdeckHome, Vr as init_paths } from "./config-yaml-DySPNmKN.js";
2
2
  import { n as openDatabase, t as init_driver } from "./driver-CKVGi51s.js";
3
3
  import { dirname, join } from "node:path";
4
4
  import { mkdirSync } from "node:fs";
@@ -208,4 +208,4 @@ function unshareArtifactBySlugJob(slug) {
208
208
  //#endregion
209
209
  export { getArtifactBySlugJob, listArtifactsForWorkspaceOrIssueJob, unshareArtifactBySlugJob };
210
210
 
211
- //# sourceMappingURL=artifact-index-jobs-C-xy7Z5v.js.map
211
+ //# sourceMappingURL=artifact-index-jobs-CbEDfCDu.js.map
@@ -0,0 +1,339 @@
1
+ import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
+ import { Br as getOverdeckHome, Vr as init_paths, jr as SYNC_SOURCES } from "./config-yaml-DySPNmKN.js";
3
+ import { existsSync, mkdirSync, readFileSync, readdirSync, writeFileSync } from "fs";
4
+ import { join } from "path";
5
+ //#region ../../lib/context-layers/layers.ts
6
+ /**
7
+ * Context layer model (PAN-1201).
8
+ *
9
+ * Three layers of context compose at sync time:
10
+ *
11
+ * global — ~/.overdeck/context/global.md (+ global/{skills,agents}/)
12
+ * Applies to every harness invocation, everywhere.
13
+ * project — <projectRoot>/.overdeck/context/project.md
14
+ * Applies when CWD is under a registered project. Committed.
15
+ * workspace — <workspace>/.overdeck/context/workspace.md
16
+ * Auto-assembled by Overdeck at spawn time. Gitignored.
17
+ *
18
+ * The global layer lives under ~/.overdeck (per-machine). Project and
19
+ * Project and workspace context live outside the permanent state plane under
20
+ * `.overdeck/`. Reads retain a `.pan/context/` compatibility fallback.
21
+ */
22
+ /** `~/.overdeck/context` — the global layer directory. */
23
+ function globalContextDir() {
24
+ return join(getOverdeckHome(), "context");
25
+ }
26
+ /** `~/.overdeck/context/global.md` — the global layer's canonical source. */
27
+ function globalContextFile() {
28
+ return join(globalContextDir(), "global.md");
29
+ }
30
+ /** `<projectRoot>/.overdeck/context` — a registered project's layer directory. */
31
+ function projectContextDir(projectRoot) {
32
+ return join(projectRoot, ".overdeck", "context");
33
+ }
34
+ /** `<projectRoot>/.overdeck/context/project.md` — a project's canonical source. */
35
+ function projectContextFile(projectRoot) {
36
+ return join(projectContextDir(projectRoot), "project.md");
37
+ }
38
+ function legacyProjectContextFile(projectRoot) {
39
+ return join(projectRoot, ".pan", "context", "project.md");
40
+ }
41
+ function resolveProjectContextFile(projectRoot) {
42
+ const canonical = projectContextFile(projectRoot);
43
+ return existsSync(canonical) ? canonical : legacyProjectContextFile(projectRoot);
44
+ }
45
+ /** `<workspace>/.overdeck/context` — a workspace's layer directory. */
46
+ function workspaceContextDir(workspacePath) {
47
+ return join(workspacePath, ".overdeck", "context");
48
+ }
49
+ /** `<workspace>/.pan/context/workspace.md` — the auto-assembled bundle. */
50
+ function workspaceContextFile(workspacePath) {
51
+ return join(workspaceContextDir(workspacePath), "workspace.md");
52
+ }
53
+ function legacyWorkspaceContextFile(workspacePath) {
54
+ return join(workspacePath, ".pan", "context", "workspace.md");
55
+ }
56
+ function resolveWorkspaceContextFile(workspacePath) {
57
+ const canonical = workspaceContextFile(workspacePath);
58
+ return existsSync(canonical) ? canonical : legacyWorkspaceContextFile(workspacePath);
59
+ }
60
+ /** `~/.overdeck/context/pi-global.md` — the rendered global layer for Pi. */
61
+ function piGlobalContextFile() {
62
+ return join(getOverdeckHome(), "context", "pi-global.md");
63
+ }
64
+ /** `~/.overdeck/context/codex-global.md` — the rendered global layer for Codex. */
65
+ function codexGlobalContextFile() {
66
+ return join(getOverdeckHome(), "context", "codex-global.md");
67
+ }
68
+ /**
69
+ * Ensure a project's layer dir exists with a stub `project.md`. Idempotent.
70
+ * Returns true when a file was created. Called by `pan projects add`.
71
+ */
72
+ function ensureProjectLayer(projectRoot) {
73
+ const file = projectContextFile(projectRoot);
74
+ if (existsSync(file)) return false;
75
+ mkdirSync(projectContextDir(projectRoot), { recursive: true });
76
+ writeFileSync(file, PROJECT_STARTER, "utf-8");
77
+ return true;
78
+ }
79
+ /** Read a layer's canonical markdown, or '' when the file does not exist. */
80
+ function readLayerContent(file) {
81
+ return existsSync(file) ? readFileSync(file, "utf-8") : "";
82
+ }
83
+ var PROJECT_STARTER;
84
+ var init_layers = __esmMin((() => {
85
+ init_paths();
86
+ PROJECT_STARTER = `# Project Context
87
+
88
+ Context for this project specifically. \`pan sync\` renders it into the
89
+ project's CLAUDE.md (and equivalents) when CWD is under this project.
90
+
91
+ This file is committed to the repo; \`workspace.md\` is not.
92
+ `;
93
+ }));
94
+ //#endregion
95
+ //#region ../../lib/context-layers/harness.ts
96
+ /**
97
+ * Render a canonical layer body for a single harness.
98
+ *
99
+ * Strips every `{{#harness:*}}` / `{{/harness:*}}` marker and drops the spans
100
+ * that are not covered by the target harness. Runs of 3+ blank lines left by
101
+ * removed spans collapse to a single blank line so output stays tidy.
102
+ */
103
+ function renderForHarness(content, harness) {
104
+ const target = HARNESS_MARKERS[harness];
105
+ const openCounts = /* @__PURE__ */ new Map();
106
+ let out = "";
107
+ let lastIndex = 0;
108
+ const emit = (text) => {
109
+ let covered = false;
110
+ let anyOpen = false;
111
+ for (const [name, count] of openCounts) if (count > 0) {
112
+ anyOpen = true;
113
+ if (name === target) covered = true;
114
+ }
115
+ if (!anyOpen || covered) out += text;
116
+ };
117
+ MARKER_RE.lastIndex = 0;
118
+ let m;
119
+ while ((m = MARKER_RE.exec(content)) !== null) {
120
+ emit(content.slice(lastIndex, m.index));
121
+ const [, kind, name] = m;
122
+ const delta = kind === "#" ? 1 : -1;
123
+ openCounts.set(name, (openCounts.get(name) ?? 0) + delta);
124
+ lastIndex = m.index + m[0].length;
125
+ }
126
+ emit(content.slice(lastIndex));
127
+ return out.replace(/\n{3,}/g, "\n\n");
128
+ }
129
+ /**
130
+ * Lint a context-layer template for malformed harness blocks.
131
+ *
132
+ * Errors: an unclosed `{{#harness:x}}` or a stray `{{/harness:x}}` with no
133
+ * matching open. Warnings: a marker naming a harness Overdeck has no
134
+ * adapter for (allowed for forward compatibility, surfaced so typos —
135
+ * `{{#harness:clade}}` — do not pass silently).
136
+ */
137
+ function validateTemplate(content) {
138
+ const issues = [];
139
+ const openCounts = /* @__PURE__ */ new Map();
140
+ const seen = /* @__PURE__ */ new Set();
141
+ MARKER_RE.lastIndex = 0;
142
+ let m;
143
+ while ((m = MARKER_RE.exec(content)) !== null) {
144
+ const [, kind, name] = m;
145
+ seen.add(name);
146
+ if (kind === "#") openCounts.set(name, (openCounts.get(name) ?? 0) + 1);
147
+ else {
148
+ const next = (openCounts.get(name) ?? 0) - 1;
149
+ openCounts.set(name, next);
150
+ if (next < 0) issues.push({
151
+ severity: "error",
152
+ message: `stray closing marker {{/harness:${name}}} with no matching {{#harness:${name}}}`
153
+ });
154
+ }
155
+ }
156
+ for (const [name, count] of openCounts) if (count > 0) issues.push({
157
+ severity: "error",
158
+ message: `unclosed block: {{#harness:${name}}} opened ${count} time(s) without a matching {{/harness:${name}}}`
159
+ });
160
+ for (const name of seen) if (!KNOWN_HARNESS_MARKERS.has(name)) issues.push({
161
+ severity: "warning",
162
+ message: `unknown harness "${name}" — Overdeck ships adapters for: ${[...KNOWN_HARNESS_MARKERS].join(", ")}`
163
+ });
164
+ return {
165
+ ok: !issues.some((i) => i.severity === "error"),
166
+ issues
167
+ };
168
+ }
169
+ var HARNESS_MARKERS, KNOWN_HARNESS_MARKERS, MARKER_RE;
170
+ var init_harness = __esmMin((() => {
171
+ HARNESS_MARKERS = {
172
+ "claude-code": "claude",
173
+ ohmypi: "ohmypi",
174
+ codex: "codex",
175
+ acp: "acp"
176
+ };
177
+ KNOWN_HARNESS_MARKERS = new Set([
178
+ "claude",
179
+ "pi",
180
+ "ohmypi",
181
+ "codex",
182
+ "acp"
183
+ ]);
184
+ MARKER_RE = /\{\{([#/])harness:([a-zA-Z0-9_-]+)\}\}/g;
185
+ }));
186
+ //#endregion
187
+ //#region ../../lib/context-layers/rules.ts
188
+ /**
189
+ * Bundled engineering rules (PAN-1201).
190
+ *
191
+ * Overdeck ships a small set of engineering rules under sync-sources/rules/.
192
+ * Each rule carries a `scope:` frontmatter key:
193
+ *
194
+ * universal — distributed everywhere (relevant to anyone running agents)
195
+ * dev — distributed only on a overdeck checkout (rules about
196
+ * developing Overdeck itself)
197
+ *
198
+ * `pan sync` folds the applicable rules into the rendered global CLAUDE.md.
199
+ * Their `paths:` frontmatter (Claude Code path-scoping) is dropped on fold —
200
+ * a folded rule is always-on.
201
+ */
202
+ /**
203
+ * Parse a rule file into `{ scope, body }`. Rules with no frontmatter, or
204
+ * frontmatter without a recognised `scope:`, default to `universal`.
205
+ */
206
+ function parseRule(name, raw) {
207
+ const m = FRONTMATTER_RE.exec(raw);
208
+ let scope = "universal";
209
+ let body = raw;
210
+ if (m) {
211
+ body = raw.slice(m[0].length);
212
+ const value = m[1].split(/\r?\n/).find((l) => /^\s*scope\s*:/.test(l))?.split(":")[1]?.trim().replace(/['"]/g, "");
213
+ if (value === "dev" || value === "universal") scope = value;
214
+ }
215
+ return {
216
+ name,
217
+ scope,
218
+ body: body.trim()
219
+ };
220
+ }
221
+ /** Read every bundled rule from sync-sources/rules/, sorted by name. */
222
+ function readBundledRules() {
223
+ const dir = SYNC_SOURCES.rules;
224
+ if (!existsSync(dir)) return [];
225
+ return readdirSync(dir).filter((f) => f.endsWith(".md")).sort().map((f) => parseRule(f.replace(/\.md$/, ""), readFileSync(join(dir, f), "utf-8")));
226
+ }
227
+ /**
228
+ * Render the applicable bundled rules into one CLAUDE.md section.
229
+ *
230
+ * `includeDev` admits `scope: dev` rules — set it from `isDevMode()` so they
231
+ * only fold in on a overdeck checkout. Each rule body is rendered for
232
+ * the target harness so any `{{#harness:*}}` blocks resolve. Returns '' when
233
+ * no rules apply.
234
+ */
235
+ function renderBundledRules(harness, includeDev) {
236
+ const sections = readBundledRules().filter((r) => includeDev || r.scope === "universal").map((r) => renderForHarness(r.body, harness).trim()).filter((s) => s.length > 0);
237
+ if (sections.length === 0) return "";
238
+ return `## Overdeck Engineering Rules\n\n${sections.join("\n\n")}`;
239
+ }
240
+ var FRONTMATTER_RE;
241
+ var init_rules = __esmMin((() => {
242
+ init_paths();
243
+ init_harness();
244
+ FRONTMATTER_RE = /^---\r?\n([\s\S]*?)\r?\n---\r?\n?/;
245
+ }));
246
+ //#endregion
247
+ //#region ../../lib/context-layers/render.ts
248
+ /** True when `existing` already contains a Overdeck-managed region. */
249
+ function hasManagedRegion(existing) {
250
+ const beginIdx = existing.indexOf(REGION_BEGIN);
251
+ const endIdx = existing.indexOf(REGION_END);
252
+ return beginIdx !== -1 && endIdx !== -1 && endIdx > beginIdx;
253
+ }
254
+ /**
255
+ * Return `existing` with the Overdeck-managed region removed — i.e. only the
256
+ * hand-authored content the user owns, trimmed. When there is no region, the
257
+ * whole (trimmed) file is the user's. Used to decide whether a target file has
258
+ * pre-existing content worth preserving and backing up before first injection.
259
+ */
260
+ function userContentOutsideRegion(existing) {
261
+ const beginIdx = existing.indexOf(REGION_BEGIN);
262
+ const endIdx = existing.lastIndexOf(REGION_END);
263
+ if (beginIdx !== -1 && endIdx !== -1 && endIdx > beginIdx) return (existing.slice(0, beginIdx) + existing.slice(endIdx + 29)).trim();
264
+ return existing.trim();
265
+ }
266
+ /**
267
+ * Render the global layer for one harness: `global.md` rendered, with the
268
+ * applicable bundled engineering rules folded in below it.
269
+ *
270
+ * The result is the *managed content* — caller wraps it via
271
+ * {@link applyManagedRegion} when writing the harness's CLAUDE.md.
272
+ */
273
+ function renderGlobalLayer(harness, includeDevRules) {
274
+ return [renderForHarness(readLayerContent(globalContextFile()), harness).trim(), renderBundledRules(harness, includeDevRules)].filter((s) => s.length > 0).join("\n\n---\n\n");
275
+ }
276
+ /**
277
+ * Render a project layer for one harness. Returns '' when the project has no
278
+ * `project.md` — sync then leaves that project's CLAUDE.md alone.
279
+ */
280
+ function renderProjectLayer(projectRoot, harness) {
281
+ const raw = readLayerContent(resolveProjectContextFile(projectRoot));
282
+ if (raw.trim().length === 0) return "";
283
+ return renderForHarness(raw, harness).trim();
284
+ }
285
+ var REGION_BEGIN, REGION_END;
286
+ var init_render = __esmMin((() => {
287
+ init_harness();
288
+ init_rules();
289
+ init_layers();
290
+ REGION_BEGIN = "<!-- BEGIN OVERDECK CONTEXT — managed by `pan sync`; edit the layer source, not this region -->";
291
+ REGION_END = "<!-- END OVERDECK CONTEXT -->";
292
+ }));
293
+ //#endregion
294
+ //#region ../../lib/context-layers/assemble.ts
295
+ function removeMarkedProjectLayer(content) {
296
+ const start = content.indexOf(PROJECT_LAYER_START);
297
+ if (start < 0) return null;
298
+ const markerEnd = content.indexOf("-->", start + 33);
299
+ if (markerEnd < 0) return null;
300
+ const marker = content.slice(start, markerEnd + 3);
301
+ const lengthMatch = /\schars=(\d+)\s-->$/.exec(marker);
302
+ if (!lengthMatch) return null;
303
+ const projectEnd = markerEnd + 4 + Number(lengthMatch[1]);
304
+ if (content[markerEnd + 3] !== "\n") return null;
305
+ if (content.slice(projectEnd, projectEnd + 1 + 35) !== `\n<!-- overdeck:project-layer:end -->`) return null;
306
+ const end = projectEnd + 1;
307
+ let before = content.slice(0, start);
308
+ let after = content.slice(end + 35);
309
+ if (before.endsWith(SECTION_SEPARATOR) && after.startsWith(SECTION_SEPARATOR)) before = before.slice(0, -7);
310
+ else if (before.endsWith(SECTION_SEPARATOR)) before = before.slice(0, -7);
311
+ else if (after.startsWith(SECTION_SEPARATOR)) after = after.slice(7);
312
+ return `${before}${after}`.trim();
313
+ }
314
+ /**
315
+ * Remove the project layer embedded in a workspace bundle.
316
+ *
317
+ * New bundles carry reserved structural markers, so project Markdown can contain
318
+ * horizontal rules without becoming ambiguous. Legacy bundles predate those
319
+ * markers; their only safely identifiable workspace-owned section is the
320
+ * generated header before the first top-level separator. Keeping that header is
321
+ * preferable to forwarding an unknown amount of stale, harness-specific text.
322
+ */
323
+ function workspaceContextWithoutProjectLayer(content) {
324
+ const marked = removeMarkedProjectLayer(content);
325
+ if (marked !== null) return marked;
326
+ const firstSeparator = content.indexOf(SECTION_SEPARATOR);
327
+ return (firstSeparator < 0 ? content : content.slice(0, firstSeparator)).trim();
328
+ }
329
+ var SECTION_SEPARATOR, PROJECT_LAYER_START, PROJECT_LAYER_END;
330
+ var init_assemble = __esmMin((() => {
331
+ init_render();
332
+ SECTION_SEPARATOR = "\n\n---\n\n";
333
+ PROJECT_LAYER_START = "<!-- overdeck:project-layer:start";
334
+ PROJECT_LAYER_END = "<!-- overdeck:project-layer:end -->";
335
+ }));
336
+ //#endregion
337
+ export { projectContextDir as A, ensureProjectLayer as C, legacyProjectContextFile as D, init_layers as E, workspaceContextDir as F, workspaceContextFile as I, readLayerContent as M, resolveProjectContextFile as N, legacyWorkspaceContextFile as O, resolveWorkspaceContextFile as P, codexGlobalContextFile as S, globalContextFile as T, KNOWN_HARNESS_MARKERS as _, REGION_BEGIN as a, validateTemplate as b, init_render as c, userContentOutsideRegion as d, init_rules as f, HARNESS_MARKERS as g, renderBundledRules as h, workspaceContextWithoutProjectLayer as i, projectContextFile as j, piGlobalContextFile as k, renderGlobalLayer as l, readBundledRules as m, PROJECT_LAYER_START as n, REGION_END as o, parseRule as p, init_assemble as r, hasManagedRegion as s, PROJECT_LAYER_END as t, renderProjectLayer as u, init_harness as v, globalContextDir as w, PROJECT_STARTER as x, renderForHarness as y };
338
+
339
+ //# sourceMappingURL=assemble-J2ZZ2C15.js.map
@@ -1,6 +1,6 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { r as isNoResumeValueEnabled, t as init_no_resume_mode } from "./no-resume-mode-Cx3K0hHi.js";
3
- import { a as spawnSequencerAgent, i as init_sequencer_agent } from "./sequencer-agent-BGY8gjg-.js";
2
+ import { r as isNoResumeValueEnabled, t as init_no_resume_mode } from "./no-resume-mode-Nw29vaFb.js";
3
+ import { a as spawnSequencerAgent, i as init_sequencer_agent } from "./sequencer-agent-CzkcK6P5.js";
4
4
  //#region ../../lib/backlog/backlog-auto-trigger.ts
5
5
  /**
6
6
  * PAN-2396: --no-resume is the operator's full-quiescence escape hatch —
@@ -37,4 +37,4 @@ __esmMin((() => {
37
37
  }))();
38
38
  export { triggerDebouncedIncrementalPass };
39
39
 
40
- //# sourceMappingURL=backlog-auto-trigger-GtG71X8H.js.map
40
+ //# sourceMappingURL=backlog-auto-trigger-2R2jog7n.js.map
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { t as init_src } from "./src-U7_kTPEE.js";
2
+ import { t as init_src } from "./src-DtcUOZCq.js";
3
3
  //#region ../../lib/runtimes/behavior.ts
4
4
  var init_behavior = __esmMin((() => {
5
5
  init_src();
@@ -7,4 +7,4 @@ var init_behavior = __esmMin((() => {
7
7
  //#endregion
8
8
  export { init_behavior as t };
9
9
 
10
- //# sourceMappingURL=behavior-B_-4EKF3.js.map
10
+ //# sourceMappingURL=behavior-B3exJ42O.js.map
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Br as getOverdeckHome, Vr as init_paths } from "./config-yaml-DvyMuOle.js";
2
+ import { Br as getOverdeckHome, Vr as init_paths } from "./config-yaml-DySPNmKN.js";
3
3
  import { dirname, join } from "path";
4
4
  import { randomUUID } from "crypto";
5
5
  import { mkdir, readFile, rename, stat, writeFile } from "fs/promises";
@@ -128,4 +128,4 @@ var init_briefing_freshness = __esmMin((() => {
128
128
  //#endregion
129
129
  export { resolveSessionContextBriefingPath as a, recordBriefingSessionStart as i, ensureSessionContextBriefingFile as n, init_briefing_freshness as r, appendFreshBriefingUpdate as t };
130
130
 
131
- //# sourceMappingURL=briefing-freshness-DWdW7vUm.js.map
131
+ //# sourceMappingURL=briefing-freshness-D1wzUIWv.js.map
@@ -1,3 +1,3 @@
1
- import { n as init_build_info, t as getBuildInfo } from "./build-info-BT096lEl.js";
1
+ import { n as init_build_info, t as getBuildInfo } from "./build-info-Ie_D0_BT.js";
2
2
  init_build_info();
3
3
  export { getBuildInfo };
@@ -2,12 +2,12 @@ import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
2
  //#region ../../lib/deploy/build-info.ts
3
3
  function getBuildInfo() {
4
4
  return {
5
- buildCommit: "3824685a47cd1a723b2a2ef7e57d46abf82957ae",
6
- builtAt: "2026-07-20T03:34:02.499Z"
5
+ buildCommit: "470dfaba75ec7478787a15f9854f20df5c960c05",
6
+ builtAt: "2026-07-23T14:20:17.760Z"
7
7
  };
8
8
  }
9
9
  var init_build_info = __esmMin((() => {}));
10
10
  //#endregion
11
11
  export { init_build_info as n, getBuildInfo as t };
12
12
 
13
- //# sourceMappingURL=build-info-BT096lEl.js.map
13
+ //# sourceMappingURL=build-info-Ie_D0_BT.js.map
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Kt as STATE_BRANCH_PATHS, Yt as init_state_plane, mr as init_errors, pr as VcsError, sr as InvalidAgentIdError, tr as CheckpointError } from "./config-yaml-DvyMuOle.js";
2
+ import { Kt as STATE_BRANCH_PATHS, Yt as init_state_plane, mr as init_errors, pr as VcsError, sr as InvalidAgentIdError, tr as CheckpointError } from "./config-yaml-DySPNmKN.js";
3
3
  import { Effect, Layer } from "effect";
4
4
  import { join } from "path";
5
5
  import { tmpdir } from "os";
@@ -663,4 +663,4 @@ var init_checkpoint_manager = __esmMin((() => {
663
663
  //#endregion
664
664
  export { pruneStaleCheckpointRefs as _, diffAgainstMain as a, diffCheckpoints as c, diffPatchSinceCommit as d, findCommitAtTime as f, pruneCheckpointRefsForAgents as g, listCheckpoints as h, deleteLegacyCheckpointRefs as i, diffFilesAgainstHead as l, init_checkpoint_manager as m, checkpointStateExclusions as n, diffAgainstMainFiles as o, getCheckpointTimestamp as p, deleteCheckpoint as r, diffCheckpointFiles as s, captureCheckpoint as t, diffPatchFilesAgainstHead as u };
665
665
 
666
- //# sourceMappingURL=checkpoint-manager-DDqcGyu8.js.map
666
+ //# sourceMappingURL=checkpoint-manager-BI1Wxoku.js.map
@@ -1,3 +1,3 @@
1
- import { _ as pruneStaleCheckpointRefs, g as pruneCheckpointRefsForAgents, h as listCheckpoints, i as deleteLegacyCheckpointRefs, m as init_checkpoint_manager, p as getCheckpointTimestamp, s as diffCheckpointFiles } from "./checkpoint-manager-DDqcGyu8.js";
1
+ import { _ as pruneStaleCheckpointRefs, g as pruneCheckpointRefsForAgents, h as listCheckpoints, i as deleteLegacyCheckpointRefs, m as init_checkpoint_manager, p as getCheckpointTimestamp, s as diffCheckpointFiles } from "./checkpoint-manager-BI1Wxoku.js";
2
2
  init_checkpoint_manager();
3
3
  export { deleteLegacyCheckpointRefs, diffCheckpointFiles, getCheckpointTimestamp, listCheckpoints, pruneCheckpointRefsForAgents, pruneStaleCheckpointRefs };
@@ -1,4 +1,4 @@
1
- import { a as releaseTranscriptRange, i as listTranscriptCheckpoints, n as commitTranscriptRange, r as getTranscriptCheckpoint, t as claimTranscriptRange } from "./checkpoints-C-AXLfYT.js";
1
+ import { a as releaseTranscriptRange, i as listTranscriptCheckpoints, n as commitTranscriptRange, r as getTranscriptCheckpoint, t as claimTranscriptRange } from "./checkpoints-CQB1h765.js";
2
2
  import { parentPort } from "node:worker_threads";
3
3
  //#region ../../lib/memory/checkpoint-worker.ts
4
4
  function runOperation(operation, payload) {
@@ -1,2 +1,2 @@
1
- import { a as releaseTranscriptRange, i as listTranscriptCheckpoints, n as commitTranscriptRange, r as getTranscriptCheckpoint, t as claimTranscriptRange } from "./checkpoints-C-AXLfYT.js";
1
+ import { a as releaseTranscriptRange, i as listTranscriptCheckpoints, n as commitTranscriptRange, r as getTranscriptCheckpoint, t as claimTranscriptRange } from "./checkpoints-CQB1h765.js";
2
2
  export { claimTranscriptRange, commitTranscriptRange, getTranscriptCheckpoint, listTranscriptCheckpoints, releaseTranscriptRange };
@@ -1,4 +1,4 @@
1
- import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-CzaSOgul.js";
1
+ import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-BEqFxlJc.js";
2
2
  import { randomUUID } from "node:crypto";
3
3
  //#region ../../lib/overdeck/transcript-checkpoint-sync.ts
4
4
  /**
@@ -195,4 +195,4 @@ function getTranscriptCheckpoint(sessionId) {
195
195
  //#endregion
196
196
  export { releaseTranscriptRange as a, listTranscriptCheckpoints as i, commitTranscriptRange as n, getTranscriptCheckpoint as r, claimTranscriptRange as t };
197
197
 
198
- //# sourceMappingURL=checkpoints-C-AXLfYT.js.map
198
+ //# sourceMappingURL=checkpoints-CQB1h765.js.map
@@ -1,3 +1,3 @@
1
- import { n as provisionClaudeHooks, t as init_claude_hooks_provision } from "./claude-hooks-provision-but-_qGY.js";
1
+ import { n as provisionClaudeHooks, t as init_claude_hooks_provision } from "./claude-hooks-provision-D8GXF3_s.js";
2
2
  init_claude_hooks_provision();
3
3
  export { provisionClaudeHooks };