@overdeck/desktop 0.45.16 → 0.45.18

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 (365) hide show
  1. package/dist-electron/main.js +149 -158
  2. package/dist-electron/main.js.map +1 -1
  3. package/dist-electron/preload.js +17 -2
  4. package/dist-electron/preload.js.map +1 -1
  5. package/package.json +5 -4
  6. package/server/acceptance-criteria-aQFKQf-J.js +62 -0
  7. package/server/{advancing-selfheal-DJYAvGv-.js → advancing-selfheal-DgwQgm4D.js} +6 -6
  8. package/server/{agent-gc-D0wDIeV1.js → agent-gc-kpzxqT7P.js} +3 -3
  9. package/server/agent-state-C_6TG-Ad.js +3 -0
  10. package/server/{agent-state-service-CZrayD_G.js → agent-state-service-BUfovFfB.js} +1 -1
  11. package/server/{agent-state-service-DFslS5go.js → agent-state-service-nUD3qfob.js} +5 -5
  12. package/server/agents-BA15AQqo.js +3 -0
  13. package/server/{briefing-freshness-DESTCWo-.js → agents-BHBxr8c9.js} +5 -131
  14. package/server/{archive-planning-CbghE9-o.js → archive-planning-CzCW9Ifl.js} +5 -10
  15. package/server/{archive-planning-CoyIbgGK.js → archive-planning-D-QsBufn.js} +1 -1
  16. package/server/{artifact-index-jobs-CcSrUoSE.js → artifact-index-jobs-qqa51B2Z.js} +2 -2
  17. package/server/{backlog-auto-trigger-BfgDsII0.js → backlog-auto-trigger-B7Bi0bvY.js} +2 -2
  18. package/server/{behavior-BTpYbAv4.js → behavior-CWqNMqE5.js} +2 -2
  19. package/server/briefing-freshness-DuxIE1yr.js +131 -0
  20. package/server/{checkpoint-manager-BwFdegJF.js → checkpoint-manager-DF6hb9Jw.js} +3 -3
  21. package/server/{checkpoint-manager-DWSXooZV.js → checkpoint-manager-DixkLus7.js} +1 -1
  22. package/server/checkpoint-worker.js +1 -1
  23. package/server/{checkpoints-fjadfOKF.js → checkpoints-B1Z42tJE.js} +1 -1
  24. package/server/{checkpoints-BtUonbs3.js → checkpoints-BiviJqei.js} +2 -2
  25. package/server/{claude-hooks-provision-DiK62u0k.js → claude-hooks-provision-BeMGi4ty.js} +1 -1
  26. package/server/{claude-hooks-provision-DAtxutOs.js → claude-hooks-provision-Du_PkMsp.js} +2 -2
  27. package/server/{claude-permissions-CThLgf8d.js → claude-permissions-BB6agcOZ.js} +2 -2
  28. package/server/{claude-settings-overlay-BF9MPIwx.js → claude-settings-overlay-CAq2oFSK.js} +2 -2
  29. package/server/{claude-settings-overlay-Dx_Uqcmv.js → claude-settings-overlay-DUWWLd6M.js} +1 -1
  30. package/server/cli-BFgrSWKV.js +3 -0
  31. package/server/{cli-ByKIIMfT.js → cli-C33xPZNm.js} +9 -9
  32. package/server/{cliproxy-C_GuT5DU.js → cliproxy-BQX1TL6N.js} +1 -1
  33. package/server/{cliproxy-B4c1BUvs.js → cliproxy-CGBA1GzA.js} +2 -2
  34. package/server/{close-issue-BOuLKr6e.js → close-issue-DNv8npc1.js} +5 -5
  35. package/server/{closed-issue-reaper-CksfuiFD.js → closed-issue-reaper-DrqgBJlr.js} +1 -1
  36. package/server/{closed-issue-reaper-DCAYzNXW.js → closed-issue-reaper-LoMnnjtJ.js} +9 -9
  37. package/server/codex-DxLivxri.js +3 -0
  38. package/server/{codex-parser-mFYZh8vR.js → codex-parser-DboQnEXN.js} +2 -2
  39. package/server/{codex-BbqIRZjd.js → codex-sgWVCGUd.js} +43 -18
  40. package/server/{config-Dj6N8EP9.js → config-6MCHOZ2N.js} +1 -1
  41. package/server/{config-DVLdmnMJ.js → config-DfaUXr6r.js} +2 -2
  42. package/server/{config-yaml-cNOZcEww.js → config-yaml-CqaAyn8y.js} +74 -74
  43. package/server/{conflict-gate-BMKm_5DV.js → conflict-gate-BF_zhcmb.js} +3 -3
  44. package/server/{conflict-gate-CuXUv-bP.js → conflict-gate-BubJprtD.js} +1 -1
  45. package/server/{context-layers-c0JqYHcS.js → context-layers-BFrxfl0l.js} +17 -3
  46. package/server/{context-layers-CeAwSYNt.js → context-layers-DWL_8HhY.js} +2 -2
  47. package/server/{control-settings-D4EFsRBd.js → control-settings-BguNQ1F_.js} +4 -4
  48. package/server/{conversation-compaction-kHVfVRg3.js → conversation-compaction-CRKAf2qP.js} +1 -1
  49. package/server/{conversation-compaction-BCggyih4.js → conversation-compaction-DxSXl0pT.js} +8 -8
  50. package/server/{conversation-service-BTzObqGi.js → conversation-service-DzuY9qoH.js} +1 -1
  51. package/server/{conversation-service-B8LFQQm1.js → conversation-service-mFVFdDQK.js} +6 -6
  52. package/server/{conversations-B-lcHv-5.js → conversations-BX5aD-6F.js} +4 -4
  53. package/server/{conversations-BM7zlXjr.js → conversations-BajHQ60c.js} +1 -1
  54. package/server/{cost-D9kPIY_5.js → cost-BoqD1Pxz.js} +2 -2
  55. package/server/{cost-BcpRQ-7o.js → cost-DuZ5vlv-.js} +3 -3
  56. package/server/{cost-sync-DF6odxK9.js → cost-sync-BYnmnMkY.js} +3 -3
  57. package/server/{dag-DKI3sOmX.js → dag-C6kYyF17.js} +7 -243
  58. package/server/{dangerous-git-ops-Bn18PEcN.js → dangerous-git-ops-q5OPtXMd.js} +1 -1
  59. package/server/dashboard-db-worker.js +6 -6
  60. package/server/{deacon-DONuopff.js → deacon-CwCiNuEZ.js} +3 -3
  61. package/server/{deacon-DdARMjZq.js → deacon-Dru5onpk.js} +233 -162
  62. package/server/{deacon-nudge-log-B-naf89q.js → deacon-nudge-log-ilDfxrhK.js} +1 -1
  63. package/server/{deacon-swarm-BNGkmYR_.js → deacon-swarm-BPmBmSoU.js} +298 -72
  64. package/server/deacon-swarm-CKyGJng1.js +2 -0
  65. package/server/deacon.js +14 -7
  66. package/server/{devcontainer-renderer-C-34Sxyz.js → devcontainer-renderer-BqGNCzvN.js} +3 -3
  67. package/server/{dist-BMXvKiZP.js → dist-BwlEiLCU.js} +1 -1
  68. package/server/dist-Bx4KkgYL.js +3 -0
  69. package/server/{dist-src-BgGUblXg.js → dist-src-BE0Denfs.js} +1 -1
  70. package/server/{docker-apZ9pBYw.js → docker-CNjXS72x.js} +2 -2
  71. package/server/{ensure-devcontainer-Bqi1EF1P.js → ensure-devcontainer-5e9xOve4.js} +4 -4
  72. package/server/{ensure-devcontainer-Dq3KoOIl.js → ensure-devcontainer-C6gyUQdE.js} +1 -1
  73. package/server/{esm-shims-BEjvINX3.js → esm-shims-Cso7IGBC.js} +1 -1
  74. package/server/{event-store-CqDgfbAs.js → event-store-D9UhQyMS.js} +1 -1
  75. package/server/{event-store-D89fMfXS.js → event-store-KZnWUKWh.js} +3 -3
  76. package/server/{events-S_C0pvl6.js → events-2eFUPdqz.js} +3 -3
  77. package/server/{events-rIGncmP1.js → events-BYbvqZky.js} +1 -1
  78. package/server/{factory-DV18m0rc.js → factory-BtaRsHFC.js} +20 -17
  79. package/server/{feature-registry-population-CqZSnqQi.js → feature-registry-population-Ca2UaV0U.js} +4 -4
  80. package/server/{feature-registry-storage-BeXmNBwK.js → feature-registry-storage-DaP-bQxO.js} +2 -2
  81. package/server/{features-u5XeMaOK.js → features-DqvaoQoa.js} +2 -2
  82. package/server/{feedback-target-CwyWf0Dg.js → feedback-target-BXWdOiYI.js} +9 -7
  83. package/server/{feedback-target-DDG1PWl3.js → feedback-target-BblmMe9P.js} +1 -1
  84. package/server/{feedback-writer-BsJiw5aT.js → feedback-writer-CULeOOY4.js} +1 -1
  85. package/server/{feedback-writer-D20HSXre.js → feedback-writer-Dn8o9ZyE.js} +4 -4
  86. package/server/{flywheel-RCnHAgc4.js → flywheel-BUWdcfhq.js} +1 -1
  87. package/server/{flywheel-Dczmgchd.js → flywheel-CqkO3cDj.js} +15 -28
  88. package/server/{flywheel-9Y1X7IM-.js → flywheel-D9r1mw2U.js} +13 -13
  89. package/server/{flywheel-merge-order-DEtEd3aK.js → flywheel-merge-order-LDzQDwSg.js} +1 -1
  90. package/server/{flywheel-merge-order-CtCYsFJP.js → flywheel-merge-order-VtjUweEb.js} +6 -6
  91. package/server/forge-DJy3Zx4s.js +2 -0
  92. package/server/{forge-DFDThFil.js → forge-wEollMCi.js} +22 -12
  93. package/server/{from-NSJypkI8.js → from-B2tOYhYV.js} +1 -1
  94. package/server/{fts-db-C5A_TTOM.js → fts-db-Bgzn2RO7.js} +2 -2
  95. package/server/{fts-operations-DvCSimfU.js → fts-operations-Bj8yutnR.js} +2 -2
  96. package/server/{git-utils-Dr0L7mFk.js → git-utils-GxlL0tmt.js} +2 -2
  97. package/server/{git-utils-C0neHvQx.js → git-utils-q8jNoBts.js} +1 -1
  98. package/server/{github-app-Bwt9lK4A.js → github-app-BrYwK_Gb.js} +1 -1
  99. package/server/{github-app-u9-SX7Gc.js → github-app-tUbb8Ldr.js} +8 -3
  100. package/server/{github-client-Btyy3uan.js → github-client-BwBU41jK.js} +3 -3
  101. package/server/{github-client-Do3k-N1W.js → github-client-D6CNsftm.js} +1 -1
  102. package/server/{github-pr-lookup-DOF1U2WW.js → github-pr-lookup-BS5PqkJb.js} +2 -2
  103. package/server/{harness-resolve-C6g2R0Cd.js → harness-resolve-Dx8hUsvC.js} +3 -3
  104. package/server/{health-events-B4u-2a9m.js → health-events-2DLp-5Xp.js} +2 -2
  105. package/server/{health-events-Bos3sk5g.js → health-events-B0mj6Iae.js} +1 -1
  106. package/server/{hooks-uEr8WTx_.js → hooks-BDcQJDUe.js} +1 -1
  107. package/server/{hooks-BCoOjL_R.js → hooks-BS_JrvYP.js} +3 -3
  108. package/server/hume-B4seN95Y.js +3 -0
  109. package/server/{hume-BqxYKbUf.js → hume-BRhNKyXQ.js} +2 -2
  110. package/server/{idle-stack-reaper-DbZ8ukMd.js → idle-stack-reaper-BCITXNW5.js} +2 -2
  111. package/server/{idle-stack-reaper-H0W6XtHh.js → idle-stack-reaper-C1ymihno.js} +1 -1
  112. package/server/{infra-Ba9mS6e6.js → infra-_Kx1m9pm.js} +9 -4
  113. package/server/{injection-C1DKXeIZ.js → injection-Bvhyg_MV.js} +1 -1
  114. package/server/{injection-yrMBxzVq.js → injection-CCaYkofq.js} +7 -7
  115. package/server/{inspect-agent-B-mnb4uh.js → inspect-agent-BqyZ4pCo.js} +35 -67
  116. package/server/inspect-agent-DCJQm9Wu.js +2 -0
  117. package/server/{internal-token-BtqSbKTx.js → internal-token-Cl-1IxaE.js} +2 -2
  118. package/server/{internal-token-BPYEaXFh.js → internal-token-D-t28de5.js} +1 -1
  119. package/server/{io-VEGSAqsd.js → io-DkC4sFSy.js} +36 -43
  120. package/server/{issue-closed-BxcePXL-.js → issue-closed-Cpl4VDUM.js} +41 -6
  121. package/server/{issue-lifecycle--8MRxrG1.js → issue-lifecycle-CFR8TJ22.js} +22 -37
  122. package/server/{issue-lifecycle-CdMUauyb.js → issue-lifecycle-YNTy3OT3.js} +1 -1
  123. package/server/{issue-service-singleton-MZsDhAob.js → issue-service-singleton-D81mCts_.js} +1 -1
  124. package/server/{issue-service-singleton-CkTUI-eu.js → issue-service-singleton-ldvUUXi3.js} +29 -29
  125. package/server/{issues-CBAsuoAO.js → issues-DIEHt9sq.js} +2 -2
  126. package/server/{jsonl-parser-BUW5_sSK.js → jsonl-parser-Cd5jIqh7.js} +3 -3
  127. package/server/{label-cleanup-htK6fBRU.js → label-cleanup-Btny6Gyo.js} +3 -3
  128. package/server/{state-home-CEvD_v5F.js → launcher-generator-BXLM9f4b.js} +7 -127
  129. package/server/{layers-jjL16At6.js → layers-gCJlK62m.js} +2 -2
  130. package/server/lifecycle-D7aQUnTO.js +12 -0
  131. package/server/{lifecycle-io-DXv8Utct.js → lifecycle-io-DQBF-GHO.js} +1 -1
  132. package/server/{lifecycle-io-IehcRt2v.js → lifecycle-io-FfPUtz-y.js} +4 -4
  133. package/server/{linear-client-D9cSQfvD.js → linear-client-CDH2D6Qy.js} +3 -3
  134. package/server/{linear-client-By7hjwuN.js → linear-client-WrYrUIAH.js} +1 -1
  135. package/server/memory-fts-worker.js +1 -1
  136. package/server/{merge-BN8FGJ2q.js → merge-BsDgUxFz.js} +3 -3
  137. package/server/{merge-BLcEZNXz.js → merge-Dervs4BF.js} +1 -1
  138. package/server/{merge-agent-B3u2szOL.js → merge-agent-D6DNhe9j.js} +64 -51
  139. package/server/{merge-agent-ejC7Wos8.js → merge-agent-DMQTJMP0.js} +1 -1
  140. package/server/{merge-batch-DyqlgYGp.js → merge-batch-Bv6Z5K2H.js} +1 -1
  141. package/server/{merge-blockers-cq-aS2KG.js → merge-blockers-WWWi6Ur2.js} +2 -2
  142. package/server/merge-ops-h9OCnIVz.js +2 -0
  143. package/server/{merge-rebase-Dl7yIxtV.js → merge-rebase-Czth9ggm.js} +2 -2
  144. package/server/{merge-set-CZ9Nbay0.js → merge-set-DNc4zBqd.js} +3 -3
  145. package/server/{merge-set-Dy0D0r3i.js → merge-set-vuE3MEVt.js} +1 -1
  146. package/server/{merge-sync-D7jWLgCC.js → merge-sync-B2KSk54U.js} +2 -2
  147. package/server/{merge-sync-CG9kDCdT.js → merge-sync-B9nHdUGx.js} +1 -1
  148. package/server/{merge-train-CH33XJOH.js → merge-train-DJgr81tF.js} +3 -3
  149. package/server/{merge-train-deps-JoVdGnOg.js → merge-train-deps-B2OWS0k9.js} +4 -4
  150. package/server/{merge-verification-D4wTChdX.js → merge-verification-BBIXUEqa.js} +4 -4
  151. package/server/{multipart-parser-Csn8U-K9.js → multipart-parser-9DhuAkPd.js} +2 -2
  152. package/server/node_modules/.package-lock.json +11 -11
  153. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/package.json +3 -3
  154. package/server/node_modules/toml/README.md +54 -0
  155. package/server/node_modules/toml/index.d.ts +42 -1
  156. package/server/node_modules/toml/index.js +3 -3
  157. package/server/node_modules/toml/lib/compiler.js +35 -3
  158. package/server/node_modules/toml/lib/parser.js +224 -143
  159. package/server/node_modules/toml/package.json +3 -1
  160. package/server/node_modules/ws/lib/receiver.js +15 -32
  161. package/server/node_modules/ws/lib/websocket-server.js +4 -4
  162. package/server/node_modules/ws/lib/websocket.js +4 -4
  163. package/server/node_modules/ws/package.json +5 -1
  164. package/server/{orphan-proposed-reconciler-DI_IS1p_.js → orphan-proposed-reconciler-B8H41C4a.js} +14 -24
  165. package/server/{orphan-proposed-reconciler-BIcNu4tl.js → orphan-proposed-reconciler-DbTmT7qy.js} +1 -1
  166. package/server/package-lock.json +12 -12
  167. package/server/package.json +1 -1
  168. package/server/{pan-dir-CQIfKG8c.js → pan-dir-BTw4MdSe.js} +4 -4
  169. package/server/{paths-Blj6A9AJ.js → paths-Btkc8mzp.js} +2 -2
  170. package/server/{pipeline-notifier-BH4PAi-w.js → pipeline-notifier-3frIvSi3.js} +1 -1
  171. package/server/{pipeline-notifier-D_WYtEwl.js → pipeline-notifier-DTd19f18.js} +2 -2
  172. package/server/{project-pipelines-jMTitpeO.js → project-pipelines-B95fcAek.js} +2 -2
  173. package/server/projects-Dc9aoVoG.js +3 -0
  174. package/server/{prompts-B3njaImU.js → prompts-CIVmjHxn.js} +2 -2
  175. package/server/{providers-DnPxkHoG.js → providers-BLLk5IIb.js} +1 -1
  176. package/server/{providers-BbEyFhPX.js → providers-C-yWibCk.js} +7 -7
  177. package/server/public/assets/{chunk-BO2N2NFS-3qh9TUJi.js → chunk-BO2N2NFS-DzKZyoKY.js} +4 -4
  178. package/server/public/assets/{diagram-OG6HWLK6-D8UVTPj7.js → diagram-OG6HWLK6-Cx8mWUb8.js} +1 -1
  179. package/server/public/assets/{dist-BvLLn1YC.js → dist-BqccLhaw.js} +3 -3
  180. package/server/public/assets/{dist-CyubL7Wj.js → dist-rC3nAs_O.js} +1 -1
  181. package/server/public/assets/{ganttDiagram-6RSMTGT7-BI4E1LbQ.js → ganttDiagram-6RSMTGT7-DLYPLf5T.js} +1 -1
  182. package/server/public/assets/{highlighted-body-OFNGDK62-D_bapWkF.js → highlighted-body-OFNGDK62-D4DqixbV.js} +1 -1
  183. package/server/public/assets/index-CPcysUHk.js +796 -0
  184. package/server/public/assets/index-H5M0yhM4.css +1 -0
  185. package/server/public/assets/{linear-CEdobObr.js → linear-yqcXkDfj.js} +1 -1
  186. package/server/public/assets/mermaid-GHXKKRXX-CWdZ_heB.js +1 -0
  187. package/server/public/assets/{pieDiagram-4H26LBE5-DT79L01f.js → pieDiagram-4H26LBE5-DhraIOaV.js} +1 -1
  188. package/server/public/assets/{prod-CR_K2DFV.js → prod-DKUunUdN.js} +4 -4
  189. package/server/public/assets/{quadrantDiagram-W4KKPZXB-BEkKXXrL.js → quadrantDiagram-W4KKPZXB-DPiRcToa.js} +1 -1
  190. package/server/public/assets/{sankeyDiagram-5OEKKPKP-BxSCqn-j.js → sankeyDiagram-5OEKKPKP-3An5HNkZ.js} +1 -1
  191. package/server/public/assets/{xychartDiagram-2RQKCTM6-DicwJGG_.js → xychartDiagram-2RQKCTM6-lbEOjfqQ.js} +1 -1
  192. package/server/public/index.html +2 -2
  193. package/server/{pull-requests-43LPDfM8.js → pull-requests-D7AL5woD.js} +1 -1
  194. package/server/{pull-requests-DyUkQl4W.js → pull-requests-NDDNtqNq.js} +3 -3
  195. package/server/{agents-B9GwfCyp.js → queries-C0LCGG21.js} +710 -325
  196. package/server/{rally-BtWjybOa.js → rally-4oKvnxLG.js} +3 -3
  197. package/server/rally-DF5a3ioP.js +3 -0
  198. package/server/{rally-api-B-osULNL.js → rally-api-41tT6ikZ.js} +2 -2
  199. package/server/{rally-api-B-YA_oXx.js → rally-api-BsaQ8Vnz.js} +1 -1
  200. package/server/{rally-client-sErNQBO0.js → rally-client-Bo4hNcCZ.js} +5 -5
  201. package/server/{rally-client-CzFymP7P.js → rally-client-b5PT1x5L.js} +1 -1
  202. package/server/{reap-terminal-sessions-DnDQ7pf9.js → reap-terminal-sessions-BR39qflC.js} +1 -1
  203. package/server/{reap-terminal-sessions-2s-fvilz.js → reap-terminal-sessions-CFkuquQj.js} +1 -1
  204. package/server/{rebuild-stack-nGD_nPZo.js → rebuild-stack-C7JPUom6.js} +1 -1
  205. package/server/{rebuild-stack-CoU-HqZj.js → rebuild-stack-Ddv6W017.js} +5 -5
  206. package/server/{reconstruct-cache-Wj8GrYB0.js → reconstruct-cache-Gqhm---K.js} +6 -6
  207. package/server/record-DLOqfbkI.js +3 -0
  208. package/server/record-update-BltEmPge.js +168 -0
  209. package/server/record-update-CDp7aTaT.js +3 -0
  210. package/server/recovery-trip-Cn7KJVkS.js +44 -0
  211. package/server/{release-engine-CBLQXDlH.js → release-engine-BYzmIBf9.js} +5 -5
  212. package/server/{release-set-BNiqi7hy.js → release-set-7pnxFOWR.js} +3 -3
  213. package/server/{remote-DW_TWQnr.js → remote-Cvu4CSDk.js} +3 -3
  214. package/server/{remote-agents-C4cyxHQS.js → remote-agents-C2C6z9tj.js} +6 -33
  215. package/server/{remote-agents-Cv-U-_V8.js → remote-agents-DYY5fFpd.js} +1 -1
  216. package/server/{remote-completion-PhXGGFQy.js → remote-completion-2Kb4IDg_.js} +13 -13
  217. package/server/{remote-DcO9An_f.js → remote-rN0ecjHE.js} +3 -3
  218. package/server/resume-BFLl-yLn.js +3 -0
  219. package/server/{review-agent-Dn-yn7Zj.js → review-agent-BZvk0N5G.js} +31 -23
  220. package/server/{review-agent-u5q3ip7H.js → review-agent-CpSHLzed.js} +1 -1
  221. package/server/{review-artifacts-D4T04aYI.js → review-artifacts-PCo53YMn.js} +5 -19
  222. package/server/{review-context-Rc0VDLG_.js → review-context-M7QtJlJq.js} +8 -8
  223. package/server/{review-monitor-BC--miCO.js → review-monitor-BLC5mTTg.js} +2 -2
  224. package/server/{review-status-CG0iDuWa.js → review-status-77N3PoZr.js} +1 -1
  225. package/server/{review-status-Dc1l4dVz.js → review-status-DANr0t-v.js} +32 -58
  226. package/server/{review-status-enrichment-C1a1OG_1.js → review-status-enrichment-DwOg4UfL.js} +3 -3
  227. package/server/{review-status-sync-CfSixhhX.js → review-status-sync-Bd08OOFA.js} +1 -1
  228. package/server/{review-status-sync-CAr-hfnJ.js → review-status-sync-BjTUJ5fx.js} +2 -2
  229. package/server/{review-verdict-feedback-D2Q960wX.js → review-verdict-feedback-BsFLjN_6.js} +1 -1
  230. package/server/{review-verdict-feedback-CVDbIDBe.js → review-verdict-feedback-CBf-J_wS.js} +8 -8
  231. package/server/{rollup-DctoIu-A.js → rollup-Bu0f2EyN.js} +8 -8
  232. package/server/{rollup-CakjztPl.js → rollup-DTCCdEy4.js} +1 -1
  233. package/server/{scanner-BTM1jc_u.js → scanner-BlZ2vB7j.js} +7 -7
  234. package/server/{sequence-io-pnoIDGv4.js → sequence-io-ylyDtz2J.js} +4 -4
  235. package/server/{sequencer-agent-9Soi-WL-.js → sequencer-agent-DsWQ-87H.js} +6 -17
  236. package/server/server.js +4695 -4093
  237. package/server/{service-DfTVoqJg.js → service-CLVBC_1Y.js} +116 -90
  238. package/server/{session-fork-C4jAFHj8.js → session-fork-DlEIAhRy.js} +2 -2
  239. package/server/{session-history-DanhhiCw.js → session-history-bnOFKMwf.js} +4 -4
  240. package/server/settings-CP3GGon2.js +2 -0
  241. package/server/{settings-Cuc12oP_.js → settings-Cqa-8nyj.js} +2 -2
  242. package/server/{settings-DfT3f86D.js → settings-gJrdLZy2.js} +3 -3
  243. package/server/{shadow-engineering-bKuKTCn-.js → shadow-engineering-fq1YEKV3.js} +3 -3
  244. package/server/{shadow-state-CVHpRWlb.js → shadow-state-BqeFAygK.js} +1 -1
  245. package/server/{shadow-state-DJz6_pb_.js → shadow-state-RptE9Cau.js} +2 -2
  246. package/server/shadow-utils-BMWr5tRT.js +39 -0
  247. package/server/{ship-log-CwqPFfqx.js → ship-log-BRQQi2lU.js} +1 -1
  248. package/server/{smart-compaction-CiWfGfRZ.js → smart-compaction-CmoXpjeU.js} +7 -7
  249. package/server/{smart-compaction-B4KlpZGN.js → smart-compaction-DldUel4B.js} +1 -1
  250. package/server/{spawn-planning-session-CU-DwyDl.js → spawn-planning-session-CoS6LTc6.js} +16 -16
  251. package/server/{spawn-planning-session-D5N3RuLG.js → spawn-planning-session-DT2tSMxo.js} +1 -1
  252. package/server/{specialist-completion-CJcv-NXH.js → specialist-completion-pJtESo7m.js} +1 -1
  253. package/server/{specialist-context-B2HlbNxS.js → specialist-context-CspI4Eog.js} +5 -5
  254. package/server/{specialist-handoff-logger-CQyF1ygu.js → specialist-handoff-logger-Duz9RGvk.js} +2 -2
  255. package/server/{specialist-logs-CdcUpfjj.js → specialist-logs-DtSkPJZK.js} +3 -3
  256. package/server/{specialists-D7AcFi1u.js → specialists-CywEMwxk.js} +1 -1
  257. package/server/{specialists-k22_Btaq.js → specialists-D9-dMUtI.js} +1 -1
  258. package/server/{specialists-CFgw_0Q6.js → specialists-Dax7tqXC.js} +161 -448
  259. package/server/{specialists-CwzFdapR.js → specialists-GF42OOqd.js} +18 -18
  260. package/server/specs-VwcFtEDi.js +3 -0
  261. package/server/{src-B4TTzNSr.js → src-By3D85Ry.js} +6 -1
  262. package/server/{src-BvpMg4EB.js → src-CqyFg52C.js} +5 -5
  263. package/server/{src-D4YUZrwR.js → src-DhxM-eCb.js} +6 -6
  264. package/server/{stack-health-DVN7zRnL.js → stack-health-BsEVrJZ6.js} +1 -1
  265. package/server/{stack-health-CSgcYcr8.js → stack-health-C-SnpRHh.js} +2 -2
  266. package/server/stale-task-claims-vTxmRzLi.js +69 -0
  267. package/server/state-home-Bur1y4oH.js +213 -0
  268. package/server/{state-mapping-C13UaCL7.js → state-mapping-Ci0pkac4.js} +1 -1
  269. package/server/state-migrate-D3VveYfO.js +362 -0
  270. package/server/{stuck-remediation-CxsyxwFO.js → stuck-remediation-B699-p8v.js} +36 -41
  271. package/server/{stuck-remediation-nTIvhGOR.js → stuck-remediation-CaFYYTQW.js} +1 -1
  272. package/server/{summary-fork-CnRMPCYd.js → summary-fork-BxnF8Xh0.js} +2 -2
  273. package/server/{summary-fork-gKSoFAnK.js → summary-fork-COqYpVa3.js} +8 -8
  274. package/server/supervisor/{paths-3R6b989k.js → paths-Bk6hJRH9.js} +4 -3
  275. package/server/supervisor/pty-supervisor.js +2 -2
  276. package/server/supervisor/{pty-token-CScQ32Rj.js → pty-token-BZS5GYdG.js} +2 -2
  277. package/server/supervisor-eWAAmXKu.js +2 -0
  278. package/server/{supervisor-CZMs8s0M.js → supervisor-liMgIPDF.js} +2 -2
  279. package/server/{swarm-readiness-h6-pwY8w.js → swarm-readiness-sXB1vhzo.js} +3 -3
  280. package/server/{system-prerequisites-DZZTi2G6.js → system-prerequisites-Bz6KdkFJ.js} +1 -13
  281. package/server/{teardown-workspace-B4D-oCVg.js → teardown-workspace-DvzqnmUF.js} +14 -71
  282. package/server/{test-agent-queue-CnuYku4B.js → test-agent-queue-hAU1Ah08.js} +5 -5
  283. package/server/{tldr-daemon-CuA8hz21.js → tldr-daemon-Bam7Xhoo.js} +2 -2
  284. package/server/{tldr-daemon-CgZQ3jmZ.js → tldr-daemon-DhGwd88s.js} +1 -1
  285. package/server/tmux-C-rgxRDA.js +3 -0
  286. package/server/{tmux-C3g9VFcg.js → tmux-U55cNGFG.js} +92 -4
  287. package/server/{token-g_sJ19g3.js → token-Dsa-i36o.js} +2 -2
  288. package/server/{token-util-DiwnnbJo.js → token-util-BWNpH96m.js} +1 -1
  289. package/server/token-util-DRt0j2nQ.js +3 -0
  290. package/server/{tracker-config-dQxC15vH.js → tracker-config-OkdbaUCm.js} +2 -2
  291. package/server/{tracker-utils--z8FLSWn.js → tracker-utils-CghXMF3q.js} +2 -2
  292. package/server/{tracker-utils-DkKyRT0H.js → tracker-utils-DdzUiPNU.js} +1 -1
  293. package/server/{tunnel-BpWZs0Jy.js → tunnel-D1YxesBL.js} +3 -3
  294. package/server/{tunnel-CN2px87h.js → tunnel-DjlzgTl3.js} +1 -1
  295. package/server/typed-errors-CH4roFIj.js +3 -0
  296. package/server/{typed-errors-sLpGfegz.js → typed-errors-n_Tnb4Fh.js} +3 -4
  297. package/server/{types-BLS_Zbmd.js → types-DOjWNv3Z.js} +1 -1
  298. package/server/{types-tlXf80x3.js → types-DXBMm4mX.js} +1 -1
  299. package/server/{uat-train-utGVmqdm.js → uat-train-CaaWs9Rp.js} +1 -1
  300. package/server/{uat-train-BRo6DM7p.js → uat-train-CqN34zFx.js} +24 -25
  301. package/server/{validation-CsPVsoA0.js → validation-4-z2Cw4z.js} +70 -23
  302. package/server/validation-DpTNakM6.js +3 -0
  303. package/server/verification-artifact-DK1xb1zG.js +56 -0
  304. package/server/verification-artifact-JD_edpZ9.js +2 -0
  305. package/server/{verification-runner-CMT5WRMS.js → verification-runner-BjHN80pJ.js} +338 -58
  306. package/server/verification-runner-ShYu5Ph3.js +2 -0
  307. package/server/{vtt-parser-C_XPlifj.js → vtt-parser-QnRfcjiU.js} +1 -1
  308. package/server/{work-agent-prompt-ZTAb2Hyf.js → work-agent-prompt-BiJ43Der.js} +12 -88
  309. package/server/workflows-B4C3lY9E.js +2 -0
  310. package/server/{workflows-CXRwhw_o.js → workflows-DkTotz_m.js} +17 -24
  311. package/server/{workspace-CNfuj1-5.js → workspace-CuN0ev4Z.js} +3 -3
  312. package/server/{workspace-9UEsKuiP.js → workspace-DQ4vVivd.js} +1 -1
  313. package/server/{workspace-config-ChWOECy0.js → workspace-config-C77NKnsV.js} +1 -1
  314. package/server/{workspace-manager-BO-6k3sP.js → workspace-manager-B1mYn0lN.js} +1 -1
  315. package/server/{workspace-manager-D8AByFIT.js → workspace-manager-Beeo2aKF.js} +23 -48
  316. package/server/{workspace-metadata-CvC268MN.js → workspace-metadata-BZC5BmoP.js} +2 -2
  317. package/server/{workspace-metadata-DZiJtnuF.js → workspace-metadata-Cy7_ZACL.js} +1 -1
  318. package/server/{workspaces-D-uIoqbg.js → workspaces-CGuzW1Ia.js} +182 -152
  319. package/sync-sources/hooks/codex-notify-hook +64 -8
  320. package/sync-sources/hooks/record-cost-event.js +1109 -36
  321. package/sync-sources/hooks/record-cost-event.js.map +1 -1
  322. package/sync-sources/hooks/statusline.sh +2 -2
  323. package/sync-sources/hooks/work-agent-stop-hook +1 -2
  324. package/server/acceptance-criteria-BZ_nQS1f.js +0 -33
  325. package/server/agent-state-lGvgPP4m.js +0 -3
  326. package/server/agents-CEcaxSkR.js +0 -3
  327. package/server/auto-commit-IW-eik_b.js +0 -3
  328. package/server/bd-process-lock-XAXAet9O.js +0 -390
  329. package/server/beads-B1u04n3o.js +0 -2
  330. package/server/beads-BeSMEjGT.js +0 -649
  331. package/server/beads-query-Dl4FhT8J.js +0 -95
  332. package/server/beads-restore-BUItPOjI.js +0 -23
  333. package/server/cli-D9cUTbBr.js +0 -3
  334. package/server/codex-BYPz6ZdF.js +0 -3
  335. package/server/compact-beads-CyJtoXJi.js +0 -94
  336. package/server/compact-beads-N00E4EVa.js +0 -3
  337. package/server/deacon-swarm-CvdFekIO.js +0 -2
  338. package/server/dist-BNwrgsUO.js +0 -3
  339. package/server/export-BJHSVwKP.js +0 -87
  340. package/server/forge-8y6aEPTB.js +0 -2
  341. package/server/hume-CerGi2RH.js +0 -3
  342. package/server/inspect-agent-CWkeAB7J.js +0 -2
  343. package/server/lifecycle-Ck2UR27D.js +0 -14
  344. package/server/merge-ops-CFkQtXEj.js +0 -2
  345. package/server/projects-CrBE6IhN.js +0 -3
  346. package/server/public/assets/index-BAZxZ-8I.js +0 -796
  347. package/server/public/assets/index-FBG3JBfq.css +0 -1
  348. package/server/public/assets/mermaid-GHXKKRXX-BYP8MI37.js +0 -1
  349. package/server/rally-oggyp4cs.js +0 -3
  350. package/server/record-lEYK__LD.js +0 -3
  351. package/server/recovery-trip-BT7nb9OV.js +0 -98
  352. package/server/resolver-C7dLn8OK.js +0 -158
  353. package/server/resume-BYZBIab-.js +0 -3
  354. package/server/settings-Cy7SCFO9.js +0 -2
  355. package/server/specs-RzcDgozr.js +0 -3
  356. package/server/supervisor-CfX192ma.js +0 -2
  357. package/server/tmux-By8E_Yv_.js +0 -3
  358. package/server/token-util-C9u4An3K.js +0 -3
  359. package/server/tracker-config-BzfVj41Z.js +0 -3
  360. package/server/typed-errors-CrN1AByg.js +0 -3
  361. package/server/validation-Dq_wwcw3.js +0 -3
  362. package/server/verification-runner-D0Uh-9jc.js +0 -2
  363. package/server/workflows-BLwxUMP7.js +0 -2
  364. package/server/writer-BUweuRPx.js +0 -3
  365. package/server/writer-CrP2xuBn.js +0 -251
@@ -1,3 +1,3 @@
1
- import { i as init_linear_client, n as LinearClientLive, r as LinearClientOptionalLive, t as LinearClient } from "./linear-client-D9cSQfvD.js";
1
+ import { i as init_linear_client, n as LinearClientLive, r as LinearClientOptionalLive, t as LinearClient } from "./linear-client-CDH2D6Qy.js";
2
2
  init_linear_client();
3
3
  export { LinearClient, LinearClientLive, LinearClientOptionalLive };
@@ -1,4 +1,4 @@
1
- import { a as runMemoryFtsTransactionSync, i as runMemoryFtsStatementSync, n as getMemoryFtsDatabaseSync, r as init_fts_operations, t as closeMemoryFtsDatabasesInProcess } from "./fts-operations-DvCSimfU.js";
1
+ import { a as runMemoryFtsTransactionSync, i as runMemoryFtsStatementSync, n as getMemoryFtsDatabaseSync, r as init_fts_operations, t as closeMemoryFtsDatabasesInProcess } from "./fts-operations-Bj8yutnR.js";
2
2
  import { parentPort } from "node:worker_threads";
3
3
  //#region ../../lib/memory/fts-worker.ts
4
4
  init_fts_operations();
@@ -1,5 +1,5 @@
1
- import { C as inArray, _ as integer, a as EventBus, b as and, d as getOverdeckDatabaseSync, f as init_infra, h as text, m as sqliteTable, p as init_sqlite_core, r as Db, s as Forge, v as init_drizzle_orm, x as eq } from "./infra-Ba9mS6e6.js";
2
- import { n as init_issues, t as IssueId } from "./issues-CBAsuoAO.js";
1
+ import { C as inArray, _ as integer, a as EventBus, b as and, d as getOverdeckDatabaseSync, f as init_infra, h as text, m as sqliteTable, p as init_sqlite_core, r as Db, s as Forge, v as init_drizzle_orm, x as eq } from "./infra-_Kx1m9pm.js";
2
+ import { n as init_issues, t as IssueId } from "./issues-DIEHt9sq.js";
3
3
  import { Context, Effect, Layer, Schema } from "effect";
4
4
  import { HttpApiEndpoint, HttpApiGroup } from "effect/unstable/httpapi";
5
5
  //#region ../../lib/overdeck/merge.ts
@@ -700,4 +700,4 @@ function getAllActiveQueues() {
700
700
  //#endregion
701
701
  export { UatNotPromotable as A, readyForMerge as B, RepoMergeStatus as C, UatMember as D, UatGenerationNotFound as E, enqueueMerge as F, getAllActiveQueues as I, getCurrentMerge as L, UatStatus as M, WorkspaceType as N, UatMemberRole as O, dequeueMerge as P, getQueueForProject as R, RepoKey as S, UatGenerationFilter as T, NotReadyForMerge as _, ForgeMergeFailed as a, QueueView as b, MergeInProgress as c, MergeSet as d, MergeSetNotFound as f, MergeWriterLive as g, MergeWriter as h, AutoMergeStatus as i, UatResolution as j, UatName as k, MergeResolver as l, MergeSetStatus as m, AutoMergeFilter as n, GateStatus as o, MergeSetRepo as p, AutoMergeNotFound as r, MergeApi as s, AutoMerge as t, MergeResolverLive as u, ProjectKey as v, UatGeneration as w, RebaseStatus as x, QueueEntryStatus as y, markMergeProcessing as z };
702
702
 
703
- //# sourceMappingURL=merge-BN8FGJ2q.js.map
703
+ //# sourceMappingURL=merge-BsDgUxFz.js.map
@@ -1,2 +1,2 @@
1
- import { A as UatNotPromotable, B as readyForMerge, C as RepoMergeStatus, D as UatMember, E as UatGenerationNotFound, F as enqueueMerge, I as getAllActiveQueues, L as getCurrentMerge, M as UatStatus, N as WorkspaceType, O as UatMemberRole, P as dequeueMerge, R as getQueueForProject, S as RepoKey, T as UatGenerationFilter, _ as NotReadyForMerge, a as ForgeMergeFailed, b as QueueView, c as MergeInProgress, d as MergeSet, f as MergeSetNotFound, g as MergeWriterLive, h as MergeWriter, i as AutoMergeStatus, j as UatResolution, k as UatName, l as MergeResolver, m as MergeSetStatus, n as AutoMergeFilter, o as GateStatus, p as MergeSetRepo, r as AutoMergeNotFound, s as MergeApi, t as AutoMerge, u as MergeResolverLive, v as ProjectKey, w as UatGeneration, x as RebaseStatus, y as QueueEntryStatus, z as markMergeProcessing } from "./merge-BN8FGJ2q.js";
1
+ import { A as UatNotPromotable, B as readyForMerge, C as RepoMergeStatus, D as UatMember, E as UatGenerationNotFound, F as enqueueMerge, I as getAllActiveQueues, L as getCurrentMerge, M as UatStatus, N as WorkspaceType, O as UatMemberRole, P as dequeueMerge, R as getQueueForProject, S as RepoKey, T as UatGenerationFilter, _ as NotReadyForMerge, a as ForgeMergeFailed, b as QueueView, c as MergeInProgress, d as MergeSet, f as MergeSetNotFound, g as MergeWriterLive, h as MergeWriter, i as AutoMergeStatus, j as UatResolution, k as UatName, l as MergeResolver, m as MergeSetStatus, n as AutoMergeFilter, o as GateStatus, p as MergeSetRepo, r as AutoMergeNotFound, s as MergeApi, t as AutoMerge, u as MergeResolverLive, v as ProjectKey, w as UatGeneration, x as RebaseStatus, y as QueueEntryStatus, z as markMergeProcessing } from "./merge-BsDgUxFz.js";
2
2
  export { AutoMerge, AutoMergeFilter, AutoMergeNotFound, AutoMergeStatus, ForgeMergeFailed, GateStatus, MergeApi, MergeInProgress, MergeResolver, MergeResolverLive, MergeSet, MergeSetNotFound, MergeSetRepo, MergeSetStatus, MergeWriter, MergeWriterLive, NotReadyForMerge, ProjectKey, QueueEntryStatus, QueueView, RebaseStatus, RepoKey, RepoMergeStatus, UatGeneration, UatGenerationFilter, UatGenerationNotFound, UatMember, UatMemberRole, UatName, UatNotPromotable, UatResolution, UatStatus, WorkspaceType, dequeueMerge, enqueueMerge, getAllActiveQueues, getCurrentMerge, getQueueForProject, markMergeProcessing, readyForMerge };
@@ -1,15 +1,14 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Fn as init_projects, Jr as init_paths, Vn as loadProjectsConfigSync, br as VcsError, f as loadConfigSync, fr as GitError, jr as OVERDECK_HOME, t as init_config_yaml, xr as init_errors } from "./config-yaml-cNOZcEww.js";
2
+ import { Fn as init_projects, Mr as OVERDECK_HOME, Sr as init_errors, Vn as loadProjectsConfigSync, Yr as init_paths, f as loadConfigSync, pr as GitError, t as init_config_yaml, xr as VcsError } from "./config-yaml-CqaAyn8y.js";
3
3
  import { a as init_activity_logger, n as emitActivityEntrySync, r as emitActivityTtsSync } from "./activity-logger-pcbf-e30.js";
4
- import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-Ba9mS6e6.js";
5
- import { L as sessionExists, O as listSessionNames, P as sendKeys, i as capturePane, w as killSession, x as init_tmux } from "./tmux-C3g9VFcg.js";
6
- import { c as init_review_status, f as markWorkspaceStuck, s as getReviewStatusSync, y as setReviewStatusSync } from "./review-status-Dc1l4dVz.js";
7
- import { i as resolveGitHubIssueSync, n as init_tracker_utils } from "./tracker-utils--z8FLSWn.js";
8
- import { n as recordFeatureRegistryLifecycle, t as init_feature_registry_population } from "./feature-registry-population-CqZSnqQi.js";
9
- import { r as verifyMergedBeforeLifecycle, t as init_merge_verification } from "./merge-verification-D4wTChdX.js";
10
- import { n as restoreTrackedBeadsExport, t as init_beads_restore } from "./beads-restore-BUItPOjI.js";
11
- import { n as init_validation, r as runQualityGates } from "./validation-CsPVsoA0.js";
12
- import { i as init_git_utils, t as cleanupStaleLocks } from "./git-utils-Dr0L7mFk.js";
4
+ import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-_Kx1m9pm.js";
5
+ import { F as sendKeys, R as sessionExists, S as init_tmux, T as killSession, i as capturePane, k as listSessionNames } from "./tmux-U55cNGFG.js";
6
+ import { c as init_review_status, f as markWorkspaceStuck, s as getReviewStatusSync, y as setReviewStatusSync } from "./review-status-DANr0t-v.js";
7
+ import { i as resolveGitHubIssueSync, n as init_tracker_utils } from "./tracker-utils-CghXMF3q.js";
8
+ import { n as recordFeatureRegistryLifecycle, t as init_feature_registry_population } from "./feature-registry-population-Ca2UaV0U.js";
9
+ import { r as verifyMergedBeforeLifecycle, t as init_merge_verification } from "./merge-verification-BBIXUEqa.js";
10
+ import { i as runQualityGates, n as init_validation } from "./validation-4-z2Cw4z.js";
11
+ import { i as init_git_utils, t as cleanupStaleLocks } from "./git-utils-GxlL0tmt.js";
13
12
  import { Data, Effect } from "effect";
14
13
  import { appendFileSync, existsSync, mkdirSync } from "fs";
15
14
  import { basename, dirname, join, relative } from "path";
@@ -311,8 +310,41 @@ function parseStatusPath(line) {
311
310
  * Respects .gitignore (no -f), unstages excluded paths, and leaves excluded
312
311
  * paths dirty so the sync can proceed. Returns success=false on git errors.
313
312
  */
314
- async function autoCommitWorkspaceChangesBeforeSync(projectPath) {
313
+ async function autoCommitWorkspaceChangesBeforeSync(projectPath, issueId) {
315
314
  try {
315
+ for (const operationHead of [
316
+ "MERGE_HEAD",
317
+ "REBASE_HEAD",
318
+ "CHERRY_PICK_HEAD",
319
+ "REVERT_HEAD"
320
+ ]) try {
321
+ await execAsync(`git rev-parse -q --verify ${operationHead}`, {
322
+ cwd: projectPath,
323
+ encoding: "utf-8"
324
+ });
325
+ return {
326
+ success: false,
327
+ committed: false,
328
+ reason: `Refusing to auto-commit while ${operationHead} exists; finish or abort the in-progress Git operation first`
329
+ };
330
+ } catch {}
331
+ try {
332
+ const { stdout: conflictMarkers } = await execAsync("git grep -n -I -E '^(<<<<<<<( |$)|=======$|>>>>>>>( |$))' -- .", {
333
+ cwd: projectPath,
334
+ encoding: "utf-8"
335
+ });
336
+ if (conflictMarkers.trim()) return {
337
+ success: false,
338
+ committed: false,
339
+ reason: `Refusing to auto-commit conflict markers in: ${[...new Set(conflictMarkers.trim().split("\n").map((line) => line.split(":", 1)[0]))].join(", ")}`
340
+ };
341
+ } catch (error) {
342
+ if (error?.code !== 1) return {
343
+ success: false,
344
+ committed: false,
345
+ reason: `Failed to scan for conflict markers: ${error.message}`
346
+ };
347
+ }
316
348
  const { stdout: statusOut } = await execAsync("git status --porcelain", {
317
349
  cwd: projectPath,
318
350
  encoding: "utf-8"
@@ -339,7 +371,7 @@ async function autoCommitWorkspaceChangesBeforeSync(projectPath) {
339
371
  committed: false,
340
372
  reason: "only excluded/ignored changes remain"
341
373
  };
342
- await execAsync("git commit -m \"chore: auto-commit before sync with main\"", {
374
+ await execAsync(`git commit -m "${issueId ? `chore: auto-commit before sync with main (${issueId})` : "chore: auto-commit before sync with main"}"`, {
343
375
  cwd: projectPath,
344
376
  encoding: "utf-8"
345
377
  });
@@ -394,7 +426,7 @@ async function notifyTldrDaemon(projectPath, _sourceBranch) {
394
426
  return;
395
427
  }
396
428
  console.log(`[merge-agent] Found ${changedFiles.length} changed source files to reindex`);
397
- const { getTldrDaemonServiceSync } = await import("./tldr-daemon-CgZQ3jmZ.js");
429
+ const { getTldrDaemonServiceSync } = await import("./tldr-daemon-DhGwd88s.js");
398
430
  const tldrService = getTldrDaemonServiceSync(projectPath, venvPath);
399
431
  if (!(await tldrService.getStatus()).running) {
400
432
  console.log(`[merge-agent] TLDR daemon not running, skipping notification`);
@@ -424,7 +456,7 @@ async function postMergeLifecycle(issueId, projectPath, sourceBranch, options) {
424
456
  }
425
457
  const run = (async () => {
426
458
  try {
427
- const { findSpecByIssue } = await import("./specs-RzcDgozr.js");
459
+ const { findSpecByIssue } = await import("./specs-VwcFtEDi.js");
428
460
  const spec = await Effect.runPromise(findSpecByIssue(projectPath, issueId));
429
461
  if (spec && (spec.status === "completed" || spec.status === "cancelled")) {
430
462
  console.log(`[merge-agent] ${issueId} is closed out (spec ${spec.status}) — skipping post-merge lifecycle`);
@@ -486,7 +518,7 @@ async function postMergeLifecycle(issueId, projectPath, sourceBranch, options) {
486
518
  }
487
519
  console.log(`[merge-agent] Running post-merge verify handoff for ${issueId}`);
488
520
  try {
489
- const { cleanupMergedLabels } = await import("./label-cleanup-htK6fBRU.js");
521
+ const { cleanupMergedLabels } = await import("./label-cleanup-Btny6Gyo.js");
490
522
  const ghResolved = resolveGitHubIssueSync(issueId);
491
523
  const labelCtx = ghResolved.isGitHub ? {
492
524
  issueId,
@@ -535,21 +567,8 @@ async function postMergeLifecycle(issueId, projectPath, sourceBranch, options) {
535
567
  console.warn(`[merge-agent] Async post-merge release trigger failed for ${issueId}: ${err instanceof Error ? err.message : String(err)}`);
536
568
  });
537
569
  try {
538
- const { compactBeads } = await import("./compact-beads-N00E4EVa.js");
539
- const beadsResult = await Effect.runPromise(compactBeads({
540
- issueId,
541
- projectPath
542
- }));
543
- if (beadsResult.success && !beadsResult.skipped) {
544
- console.log(`[merge-agent] ✓ ${beadsResult.details?.join("; ")}`);
545
- logActivity("beads_compaction_complete", beadsResult.details?.join("; ") || "Beads compacted");
546
- }
547
- } catch (err) {
548
- console.warn(`[merge-agent] Beads compaction failed: ${err}`);
549
- }
550
- try {
551
- const { setAgentPaused, getAgentState } = await import("./agents-CEcaxSkR.js");
552
- const { killSession, sessionExists } = await import("./tmux-By8E_Yv_.js");
570
+ const { setAgentPaused, getAgentState } = await import("./agents-BA15AQqo.js");
571
+ const { killSession, sessionExists } = await import("./tmux-C-rgxRDA.js");
553
572
  const issueLower = issueId.toLowerCase();
554
573
  const reason = "awaiting close-out (verify on main)";
555
574
  for (const agentId of [`agent-${issueLower}`, `planning-${issueLower}`]) {
@@ -574,8 +593,8 @@ async function postMergeLifecycle(issueId, projectPath, sourceBranch, options) {
574
593
  console.warn(`[merge-agent] Could not pause or kill agent sessions: ${err}`);
575
594
  }
576
595
  try {
577
- const { killAllReviewerSessions } = await import("./review-agent-u5q3ip7H.js");
578
- const { resolveProjectFromIssueSync } = await import("./projects-CrBE6IhN.js");
596
+ const { killAllReviewerSessions } = await import("./review-agent-CpSHLzed.js");
597
+ const { resolveProjectFromIssueSync } = await import("./projects-Dc9aoVoG.js");
579
598
  const projectKey = resolveProjectFromIssueSync(issueId)?.projectKey;
580
599
  if (projectKey) {
581
600
  const { killed } = await Effect.runPromise(killAllReviewerSessions(projectKey, issueId));
@@ -589,7 +608,7 @@ async function postMergeLifecycle(issueId, projectPath, sourceBranch, options) {
589
608
  }
590
609
  await killPostMergeRoleSessions(issueId);
591
610
  try {
592
- const { createResetMarker } = await import("./cli-D9cUTbBr.js");
611
+ const { createResetMarker } = await import("./cli-BFgrSWKV.js");
593
612
  const timestamp = (/* @__PURE__ */ new Date()).toISOString();
594
613
  const marker = await createResetMarker({
595
614
  projectId: basename(projectPath),
@@ -604,8 +623,8 @@ async function postMergeLifecycle(issueId, projectPath, sourceBranch, options) {
604
623
  console.warn(`[merge-agent] Memory reset marker creation failed (non-fatal): ${err}`);
605
624
  }
606
625
  try {
607
- const { findWorkspacePath } = await import("./archive-planning-CoyIbgGK.js");
608
- const { stopWorkspaceDocker } = await import("./workspace-manager-BO-6k3sP.js");
626
+ const { findWorkspacePath } = await import("./archive-planning-D-QsBufn.js");
627
+ const { stopWorkspaceDocker } = await import("./workspace-manager-B1mYn0lN.js");
609
628
  const issueLower = issueId.toLowerCase();
610
629
  const workspacePath = findWorkspacePath(projectPath, issueLower);
611
630
  if (workspacePath) {
@@ -636,7 +655,7 @@ async function triggerPostMergeReleaseIfConfigured(issueId, projectPath) {
636
655
  console.log(`[merge-agent] Release already started or completed for ${issueId} (${currentStatus}), skipping`);
637
656
  return;
638
657
  }
639
- const { resolveProjectFromIssueSync, getProjectSync } = await import("./projects-CrBE6IhN.js");
658
+ const { resolveProjectFromIssueSync, getProjectSync } = await import("./projects-Dc9aoVoG.js");
640
659
  const resolved = resolveProjectFromIssueSync(issueId);
641
660
  if (!(resolved ? getProjectSync(resolved.projectKey) : null)?.release) {
642
661
  setReviewStatusSync(issueId, {
@@ -646,7 +665,7 @@ async function triggerPostMergeReleaseIfConfigured(issueId, projectPath) {
646
665
  console.log(`[merge-agent] No release config for ${issueId}; marked release skipped`);
647
666
  return;
648
667
  }
649
- const { runRelease } = await import("./release-engine-CBLQXDlH.js");
668
+ const { runRelease } = await import("./release-engine-BYzmIBf9.js");
650
669
  try {
651
670
  await runRelease(issueId, projectPath);
652
671
  } catch (err) {
@@ -665,11 +684,11 @@ async function triggerPostMergeReleaseIfConfigured(issueId, projectPath) {
665
684
  async function transitionIssueToVerifyingOnMain(issueId, projectPath) {
666
685
  const [effectModule, issueLifecycleModule, githubModule, linearModule, rallyModule, errorsModule] = await Promise.all([
667
686
  import("effect"),
668
- import("./issue-lifecycle-CdMUauyb.js"),
669
- import("./github-client-Do3k-N1W.js"),
670
- import("./linear-client-By7hjwuN.js"),
671
- import("./rally-client-CzFymP7P.js"),
672
- import("./typed-errors-CrN1AByg.js")
687
+ import("./issue-lifecycle-YNTy3OT3.js"),
688
+ import("./github-client-D6CNsftm.js"),
689
+ import("./linear-client-WrYrUIAH.js"),
690
+ import("./rally-client-b5PT1x5L.js"),
691
+ import("./typed-errors-CH4roFIj.js")
673
692
  ]);
674
693
  const { Effect, Layer } = effectModule;
675
694
  const { IssueLifecycle, IssueLifecycleLive } = issueLifecycleModule;
@@ -1129,10 +1148,9 @@ async function scanForConflictMarkers(projectPath) {
1129
1148
  async function syncMainIntoWorkspace(projectPath, issueId) {
1130
1149
  console.log(`[sync-main] Starting sync of main into workspace for ${issueId}`);
1131
1150
  logActivity("sync_main_start", `Starting sync for ${issueId}`);
1132
- await Effect.runPromise(restoreTrackedBeadsExport(projectPath));
1133
1151
  console.log(`[sync-main] Checking for uncommitted changes...`);
1134
1152
  logActivity("sync_main_auto_commit", `Auto-committing uncommitted changes before sync`);
1135
- const autoCommit = await autoCommitWorkspaceChangesBeforeSync(projectPath);
1153
+ const autoCommit = await autoCommitWorkspaceChangesBeforeSync(projectPath, issueId);
1136
1154
  if (!autoCommit.success) {
1137
1155
  const message = autoCommit.reason || "Failed to auto-commit uncommitted changes";
1138
1156
  console.error(`[sync-main] ${message}`);
@@ -1326,7 +1344,6 @@ var init_merge_agent = __esmMin((() => {
1326
1344
  init_config_yaml();
1327
1345
  init_paths();
1328
1346
  init_tracker_utils();
1329
- init_beads_restore();
1330
1347
  init_validation();
1331
1348
  init_projects();
1332
1349
  init_git_utils();
@@ -1345,11 +1362,7 @@ var init_merge_agent = __esmMin((() => {
1345
1362
  ".claude/skills/",
1346
1363
  ".overdeck/"
1347
1364
  ];
1348
- SYNC_MAIN_MAIN_PREFERRED_PATHS = [
1349
- ".pan/continues",
1350
- ".pan/specs",
1351
- ".beads"
1352
- ];
1365
+ SYNC_MAIN_MAIN_PREFERRED_PATHS = [".pan/continues", ".pan/specs"];
1353
1366
  __dirname = dirname(fileURLToPath(import.meta.url));
1354
1367
  MERGE_HISTORY_DIR = join(join(OVERDECK_HOME, "specialists"), "merge-agent");
1355
1368
  MERGE_HISTORY_FILE = join(MERGE_HISTORY_DIR, "history.jsonl");
@@ -1401,4 +1414,4 @@ var init_merge_agent = __esmMin((() => {
1401
1414
  //#endregion
1402
1415
  export { init_operations as C, gitPush as S, listGitOperationsSync as T, scanGitPatterns as _, init_merge_agent as a, triggerPostMergeReleaseIfConfigured as b, isSyncMainMainPreferredPath as c, parseAgentOutput as d, postMergeLifecycle as f, scanForConflictMarkers as g, salvageStrandedMerge as h, captureTmuxOutput as i, logMergeHistory as l, runProjectQualityGates as m, GIT_PATTERNS as n, isAutoCommitExcludedPath as o, resetPostMergeState as p, autoCommitWorkspaceChangesBeforeSync as r, isMergeAgentRunning as s, AUTO_COMMIT_EXCLUDED_PATHS as t, notifyTldrDaemon as u, sendMessageToAgent as v, init_git_activity as w, MainDivergedError as x, syncMainIntoWorkspace as y };
1403
1416
 
1404
- //# sourceMappingURL=merge-agent-B3u2szOL.js.map
1417
+ //# sourceMappingURL=merge-agent-D6DNhe9j.js.map
@@ -1,3 +1,3 @@
1
- import { _ as scanGitPatterns, a as init_merge_agent, b as triggerPostMergeReleaseIfConfigured, c as isSyncMainMainPreferredPath, d as parseAgentOutput, f as postMergeLifecycle, g as scanForConflictMarkers, h as salvageStrandedMerge, i as captureTmuxOutput, l as logMergeHistory, m as runProjectQualityGates, n as GIT_PATTERNS, o as isAutoCommitExcludedPath, p as resetPostMergeState, r as autoCommitWorkspaceChangesBeforeSync, s as isMergeAgentRunning, t as AUTO_COMMIT_EXCLUDED_PATHS, u as notifyTldrDaemon, v as sendMessageToAgent, y as syncMainIntoWorkspace } from "./merge-agent-B3u2szOL.js";
1
+ import { _ as scanGitPatterns, a as init_merge_agent, b as triggerPostMergeReleaseIfConfigured, c as isSyncMainMainPreferredPath, d as parseAgentOutput, f as postMergeLifecycle, g as scanForConflictMarkers, h as salvageStrandedMerge, i as captureTmuxOutput, l as logMergeHistory, m as runProjectQualityGates, n as GIT_PATTERNS, o as isAutoCommitExcludedPath, p as resetPostMergeState, r as autoCommitWorkspaceChangesBeforeSync, s as isMergeAgentRunning, t as AUTO_COMMIT_EXCLUDED_PATHS, u as notifyTldrDaemon, v as sendMessageToAgent, y as syncMainIntoWorkspace } from "./merge-agent-D6DNhe9j.js";
2
2
  init_merge_agent();
3
3
  export { AUTO_COMMIT_EXCLUDED_PATHS, GIT_PATTERNS, autoCommitWorkspaceChangesBeforeSync, captureTmuxOutput, isAutoCommitExcludedPath, isMergeAgentRunning, isSyncMainMainPreferredPath, logMergeHistory, notifyTldrDaemon, parseAgentOutput, postMergeLifecycle, resetPostMergeState, runProjectQualityGates, salvageStrandedMerge, scanForConflictMarkers, scanGitPatterns, sendMessageToAgent, syncMainIntoWorkspace, triggerPostMergeReleaseIfConfigured };
@@ -44,4 +44,4 @@ async function shipMergeBatch(issueIds, deps) {
44
44
  //#endregion
45
45
  export { shipMergeBatch };
46
46
 
47
- //# sourceMappingURL=merge-batch-DyqlgYGp.js.map
47
+ //# sourceMappingURL=merge-batch-Bv6Z5K2H.js.map
@@ -1,4 +1,4 @@
1
- import { c as init_review_status_sync, r as getAllReviewStatusesFromDb } from "./review-status-sync-CAr-hfnJ.js";
1
+ import { c as init_review_status_sync, r as getAllReviewStatusesFromDb } from "./review-status-sync-BjTUJ5fx.js";
2
2
  //#region ../../lib/cloister/merge-blockers.ts
3
3
  init_review_status_sync();
4
4
  /**
@@ -38,4 +38,4 @@ function getMergeBlockersPayload() {
38
38
  //#endregion
39
39
  export { getMergeBlockersPayload as t };
40
40
 
41
- //# sourceMappingURL=merge-blockers-cq-aS2KG.js.map
41
+ //# sourceMappingURL=merge-blockers-WWWi6Ur2.js.map
@@ -0,0 +1,2 @@
1
+ import { c as triggerMerge } from "./workspaces-CGuzW1Ia.js";
2
+ export { triggerMerge };
@@ -1,4 +1,4 @@
1
- import { fr as GitError, gr as MergeConflictError, xr as init_errors } from "./config-yaml-cNOZcEww.js";
1
+ import { Sr as init_errors, _r as MergeConflictError, pr as GitError } from "./config-yaml-CqaAyn8y.js";
2
2
  import { Effect } from "effect";
3
3
  import { existsSync } from "fs";
4
4
  import { join } from "path";
@@ -131,4 +131,4 @@ function rebaseFeatureBranch(workspacePath, featureBranch, baseBranch, issueId)
131
131
  //#endregion
132
132
  export { rebaseFeatureBranch };
133
133
 
134
- //# sourceMappingURL=merge-rebase-Dl7yIxtV.js.map
134
+ //# sourceMappingURL=merge-rebase-Czth9ggm.js.map
@@ -1,6 +1,6 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Fn as init_projects, kn as getProjectSync, nr as init_issue_id, or as resolveIssueIdSync, qn as resolveProjectFromIssueSync } from "./config-yaml-cNOZcEww.js";
3
- import { T as upsertMergeSet, i as getMergeSetFromDb, o as init_merge_sync } from "./merge-sync-D7jWLgCC.js";
2
+ import { Fn as init_projects, kn as getProjectSync, qn as resolveProjectFromIssueSync, rr as init_issue_id, sr as resolveIssueIdSync } from "./config-yaml-CqaAyn8y.js";
3
+ import { T as upsertMergeSet, i as getMergeSetFromDb, o as init_merge_sync } from "./merge-sync-B2KSk54U.js";
4
4
  import "effect";
5
5
  import { join } from "path";
6
6
  //#region ../../lib/project-repos.ts
@@ -136,4 +136,4 @@ var init_merge_set = __esmMin((() => {
136
136
  //#endregion
137
137
  export { upsertMergeSetSync as a, init_merge_set as i, ensureMergeSetForIssueSync as n, withRepoArtifactUrlSync as o, getMergeSetSync as r, withRepoStateSync as s, buildMergeSetForIssueSync as t };
138
138
 
139
- //# sourceMappingURL=merge-set-CZ9Nbay0.js.map
139
+ //# sourceMappingURL=merge-set-DNc4zBqd.js.map
@@ -1,3 +1,3 @@
1
- import { a as upsertMergeSetSync, i as init_merge_set, n as ensureMergeSetForIssueSync, o as withRepoArtifactUrlSync, r as getMergeSetSync, s as withRepoStateSync } from "./merge-set-CZ9Nbay0.js";
1
+ import { a as upsertMergeSetSync, i as init_merge_set, n as ensureMergeSetForIssueSync, o as withRepoArtifactUrlSync, r as getMergeSetSync, s as withRepoStateSync } from "./merge-set-DNc4zBqd.js";
2
2
  init_merge_set();
3
3
  export { ensureMergeSetForIssueSync, getMergeSetSync, upsertMergeSetSync, withRepoArtifactUrlSync, withRepoStateSync };
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-Ba9mS6e6.js";
2
+ import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-_Kx1m9pm.js";
3
3
  //#region ../../lib/overdeck/merge-sync.ts
4
4
  function isoFromMillis(value) {
5
5
  return value == null ? void 0 : new Date(value).toISOString();
@@ -401,4 +401,4 @@ var init_merge_sync = __esmMin((() => {
401
401
  //#endregion
402
402
  export { transitionToMerging as C, setUatGenerationStackStartedAtSync as S, upsertMergeSet as T, markFailed as _, getUatGenerationSync as a, resetProcessingToQueued as b, isFlywheelGloballyPaused as c, listDuePendingAutoMerges as d, listProblemAutoMerges as f, markBlocked as g, listUatGenerationsWithStacksSync as h, getMergeSetFromDb as i, isMergeTrainEnabled as l, listUatGenerationsSync as m, getActionableAutoMerge as n, init_merge_sync as o, listUatGenerationNamesSync as p, getAllActiveQueues as r, insertUatGenerationSync as s, cancelPending as t, listActiveAutoMerges as u, markMerged as v, updateUatGenerationSync as w, scheduleAutoMergeWithResult as x, requeueToPending as y };
403
403
 
404
- //# sourceMappingURL=merge-sync-D7jWLgCC.js.map
404
+ //# sourceMappingURL=merge-sync-B2KSk54U.js.map
@@ -1,3 +1,3 @@
1
- import { b as resetProcessingToQueued, o as init_merge_sync } from "./merge-sync-D7jWLgCC.js";
1
+ import { b as resetProcessingToQueued, o as init_merge_sync } from "./merge-sync-B2KSk54U.js";
2
2
  init_merge_sync();
3
3
  export { resetProcessingToQueued };
@@ -1,4 +1,4 @@
1
- import { l as isMergeTrainEnabled, o as init_merge_sync } from "./merge-sync-D7jWLgCC.js";
1
+ import { l as isMergeTrainEnabled, o as init_merge_sync } from "./merge-sync-B2KSk54U.js";
2
2
  //#region ../../lib/cloister/merge-train-reconciler.ts
3
3
  init_merge_sync();
4
4
  /**
@@ -62,9 +62,9 @@ async function reconcileStaleSiblings(mergedIssueId, deps) {
62
62
  */
63
63
  async function runMergeTrainReconcile(mergedIssueId, opts = {}) {
64
64
  if (!(opts.enabled ?? isMergeTrainEnabled)()) return [];
65
- return reconcileStaleSiblings(mergedIssueId, opts.deps ?? (await import("./merge-train-deps-JoVdGnOg.js")).buildRealReconcileDeps());
65
+ return reconcileStaleSiblings(mergedIssueId, opts.deps ?? (await import("./merge-train-deps-B2OWS0k9.js")).buildRealReconcileDeps());
66
66
  }
67
67
  //#endregion
68
68
  export { runMergeTrainReconcile };
69
69
 
70
- //# sourceMappingURL=merge-train-CH33XJOH.js.map
70
+ //# sourceMappingURL=merge-train-DJgr81tF.js.map
@@ -1,6 +1,6 @@
1
- import { Fn as init_projects, qn as resolveProjectFromIssueSync } from "./config-yaml-cNOZcEww.js";
2
- import { W as spawnRun, t as init_agents } from "./agents-B9GwfCyp.js";
3
- import { c as init_review_status_sync, r as getAllReviewStatusesFromDb } from "./review-status-sync-CAr-hfnJ.js";
1
+ import { Fn as init_projects, qn as resolveProjectFromIssueSync } from "./config-yaml-CqaAyn8y.js";
2
+ import { X as spawnRun, s as init_agents } from "./queries-C0LCGG21.js";
3
+ import { c as init_review_status_sync, r as getAllReviewStatusesFromDb } from "./review-status-sync-BjTUJ5fx.js";
4
4
  import { join } from "path";
5
5
  import { exec } from "child_process";
6
6
  import { promisify } from "util";
@@ -66,4 +66,4 @@ function buildRealReconcileDeps() {
66
66
  //#endregion
67
67
  export { buildRealReconcileDeps };
68
68
 
69
- //# sourceMappingURL=merge-train-deps-JoVdGnOg.js.map
69
+ //# sourceMappingURL=merge-train-deps-B2OWS0k9.js.map
@@ -1,7 +1,7 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Fn as init_projects, qn as resolveProjectFromIssueSync } from "./config-yaml-cNOZcEww.js";
3
- import { i as resolveGitHubIssueSync, n as init_tracker_utils } from "./tracker-utils--z8FLSWn.js";
4
- import { _ as listPullRequestsForHead, f as init_github_app, p as isGitHubAppConfigured } from "./github-app-u9-SX7Gc.js";
2
+ import { Fn as init_projects, qn as resolveProjectFromIssueSync } from "./config-yaml-CqaAyn8y.js";
3
+ import { i as resolveGitHubIssueSync, n as init_tracker_utils } from "./tracker-utils-CghXMF3q.js";
4
+ import { _ as listPullRequestsForHead, f as init_github_app, p as isGitHubAppConfigured } from "./github-app-tUbb8Ldr.js";
5
5
  import { Effect } from "effect";
6
6
  import { exec } from "node:child_process";
7
7
  import { promisify } from "node:util";
@@ -121,4 +121,4 @@ var init_merge_verification = __esmMin((() => {
121
121
  //#endregion
122
122
  export { shouldSkipDispatchAsMerged as n, verifyMergedBeforeLifecycle as r, init_merge_verification as t };
123
123
 
124
- //# sourceMappingURL=merge-verification-D4wTChdX.js.map
124
+ //# sourceMappingURL=merge-verification-BBIXUEqa.js.map
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { a as File, i as init_esm_min, n as FormData, t as init_from } from "./from-NSJypkI8.js";
2
+ import { a as File, i as init_esm_min, n as FormData, t as init_from } from "./from-B2tOYhYV.js";
3
3
  //#region ../../../node_modules/.bun/node-fetch@3.3.2/node_modules/node-fetch/src/utils/multipart-parser.js
4
4
  function _fileName(headerValue) {
5
5
  const m = headerValue.match(/\bfilename=("(.*?)"|([^()<>@,;:\\"/[\]?={}\s\t]+))($|;\s)/i);
@@ -293,4 +293,4 @@ __esmMin((() => {
293
293
  }))();
294
294
  export { toFormData };
295
295
 
296
- //# sourceMappingURL=multipart-parser-Csn8U-K9.js.map
296
+ //# sourceMappingURL=multipart-parser-9DhuAkPd.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@overdeck/desktop-server",
3
- "version": "0.45.16",
3
+ "version": "0.45.18",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
@@ -23,9 +23,9 @@
23
23
  }
24
24
  },
25
25
  "node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared": {
26
- "version": "4.0.0-beta.97",
27
- "resolved": "https://registry.npmjs.org/@effect/platform-node-shared/-/platform-node-shared-4.0.0-beta.97.tgz",
28
- "integrity": "sha512-sAlygOlDLLERk7fC24f7Aa4G3wkEbGyyMEileHTHU2fThiPYSGMqNRK1LLnNr17m2+JR7BHbycwXkJkM18BAQw==",
26
+ "version": "4.0.0-beta.98",
27
+ "resolved": "https://registry.npmjs.org/@effect/platform-node-shared/-/platform-node-shared-4.0.0-beta.98.tgz",
28
+ "integrity": "sha512-iySXaffnCJX1sNAIp79ghhIeui9E5qwUQyqd1VLPkB9UNO4vdpd9B5fTEXwe7S/GusL4jsk9vSvX38XJgRFG1w==",
29
29
  "license": "MIT",
30
30
  "dependencies": {
31
31
  "@types/ws": "^8.18.1",
@@ -35,7 +35,7 @@
35
35
  "node": ">=18.0.0"
36
36
  },
37
37
  "peerDependencies": {
38
- "effect": "^4.0.0-beta.97"
38
+ "effect": "^4.0.0-beta.98"
39
39
  }
40
40
  },
41
41
  "node_modules/@google-cloud/common": {
@@ -2042,9 +2042,9 @@
2042
2042
  }
2043
2043
  },
2044
2044
  "node_modules/toml": {
2045
- "version": "4.1.2",
2046
- "resolved": "https://registry.npmjs.org/toml/-/toml-4.1.2.tgz",
2047
- "integrity": "sha512-m0vXfHODcw3gk+KONAOlVQ5yNHc3yS3B1ybM3HS1vqDoS0RWTDDVBVVTYi8hH0k+2OM1vmo9fb1WX9EVqjqfHA==",
2045
+ "version": "4.3.0",
2046
+ "resolved": "https://registry.npmjs.org/toml/-/toml-4.3.0.tgz",
2047
+ "integrity": "sha512-lVb8X9BsPVuH0M4BKeS91tXAmJvCjQ5UIyAbQFaxkKGyUFK2RPkhwaFSQH8vbpl1d23eu/IBH+dwVMHWaq9A5A==",
2048
2048
  "license": "MIT",
2049
2049
  "engines": {
2050
2050
  "node": ">=20"
@@ -2218,9 +2218,9 @@
2218
2218
  "license": "ISC"
2219
2219
  },
2220
2220
  "node_modules/ws": {
2221
- "version": "8.21.0",
2222
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.21.0.tgz",
2223
- "integrity": "sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==",
2221
+ "version": "8.21.1",
2222
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.21.1.tgz",
2223
+ "integrity": "sha512-+0NTnW77fFN/DjQi6k/Sq/Yvk4Sgajw7urW8V+asjXnRgDs9gyGkdb7EzgfhA4goXsRIZKE28fzIXBHEzhuiWw==",
2224
2224
  "license": "MIT",
2225
2225
  "engines": {
2226
2226
  "node": ">=10.0.0"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@effect/platform-node-shared",
3
3
  "type": "module",
4
- "version": "4.0.0-beta.97",
4
+ "version": "4.0.0-beta.98",
5
5
  "license": "MIT",
6
6
  "description": "Unified interfaces for common platform-specific services",
7
7
  "homepage": "https://effect.website",
@@ -46,12 +46,12 @@
46
46
  "provenance": true
47
47
  },
48
48
  "peerDependencies": {
49
- "effect": "^4.0.0-beta.97"
49
+ "effect": "^4.0.0-beta.98"
50
50
  },
51
51
  "devDependencies": {
52
52
  "@types/node": "^26.1.1",
53
53
  "tar": "^7.5.19",
54
- "effect": "^4.0.0-beta.97"
54
+ "effect": "^4.0.0-beta.98"
55
55
  },
56
56
  "dependencies": {
57
57
  "@types/ws": "^8.18.1",
@@ -60,6 +60,14 @@ try {
60
60
  }
61
61
  ```
62
62
 
63
+ ### Nesting Depth Limit
64
+
65
+ To guard against stack overflow on maliciously deep input, arrays and inline tables may nest at most 500 levels deep by default; input past the limit throws a normal parse error. Adjust the limit with the `maxDepth` option:
66
+
67
+ ```javascript
68
+ toml.parse(someTomlString, { maxDepth: 100 });
69
+ ```
70
+
63
71
  ### Date/Time Values
64
72
 
65
73
  Offset date-times are returned as JavaScript `Date` objects. Local date-times, local dates, and local times are returned as strings since they have no timezone information and can't be losslessly represented as `Date`:
@@ -78,6 +86,52 @@ typeof data.ld // "string"
78
86
  typeof data.lt // "string"
79
87
  ```
80
88
 
89
+ #### Temporal Support
90
+
91
+ Pass `useTemporal: true` to have date/time values returned as
92
+ [Temporal](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Temporal)
93
+ objects instead:
94
+
95
+ | TOML type | Returned as |
96
+ | ---------------- | ------------------------- |
97
+ | Offset date-time | `Temporal.ZonedDateTime` |
98
+ | Local date-time | `Temporal.PlainDateTime` |
99
+ | Local date | `Temporal.PlainDate` |
100
+ | Local time | `Temporal.PlainTime` |
101
+
102
+ ```javascript
103
+ const data = toml.parse(`
104
+ odt = 1979-05-27T00:32:00-07:00
105
+ ldt = 1979-05-27T07:32:00
106
+ ld = 1979-05-27
107
+ lt = 07:32:00
108
+ `, { useTemporal: true });
109
+
110
+ data.odt.toString() // "1979-05-27T00:32:00-07:00[-07:00]"
111
+ data.ldt.toString() // "1979-05-27T07:32:00"
112
+ data.ld.toString() // "1979-05-27"
113
+ data.lt.toString() // "07:32:00"
114
+ ```
115
+
116
+ Offset date-times become `Temporal.ZonedDateTime` values whose time zone is
117
+ the original UTC offset (`Z` maps to the `UTC` time zone), so the offset
118
+ written in the TOML document is preserved — unlike the default `Date`
119
+ representation, which loses it. Fractional seconds beyond nanosecond
120
+ precision are truncated, as permitted by the TOML spec.
121
+
122
+ `useTemporal` requires a runtime with the `Temporal` global. On runtimes
123
+ that don't provide it yet, pass an implementation such as
124
+ [`@js-temporal/polyfill`](https://www.npmjs.com/package/@js-temporal/polyfill)
125
+ via the `temporal` option:
126
+
127
+ ```javascript
128
+ const { Temporal } = require('@js-temporal/polyfill');
129
+ const data = toml.parse(someTomlString, { useTemporal: true, temporal: Temporal });
130
+ ```
131
+
132
+ Once `Temporal` is broadly available, Temporal output is expected to become
133
+ the default behavior in a future major version.
134
+
81
135
  ### Special Float Values
82
136
 
83
137
  `inf` and `nan` are returned as JavaScript `Infinity` and `NaN`:
@@ -1,3 +1,44 @@
1
1
  declare module 'toml' {
2
- export function parse(input: string): any;
2
+ /**
3
+ * A minimal structural subset of the `Temporal` global, used to supply an
4
+ * alternate implementation (e.g. from `@js-temporal/polyfill`) on runtimes
5
+ * without native Temporal support.
6
+ */
7
+ export interface TemporalLike {
8
+ ZonedDateTime: { from(item: string): any };
9
+ PlainDateTime: { from(item: string): any };
10
+ PlainDate: { from(item: string): any };
11
+ PlainTime: { from(item: string): any };
12
+ }
13
+
14
+ export interface ParseOptions {
15
+ /**
16
+ * Maximum nesting depth for arrays and inline tables. Parsing input nested
17
+ * deeper than this throws a parse error rather than overflowing the stack.
18
+ * Defaults to 500.
19
+ */
20
+ maxDepth?: number;
21
+
22
+ /**
23
+ * When true, date/time values are returned as Temporal objects instead of
24
+ * the default representations:
25
+ *
26
+ * - Offset date-time: `Temporal.ZonedDateTime` (instead of `Date`)
27
+ * - Local date-time: `Temporal.PlainDateTime` (instead of `string`)
28
+ * - Local date: `Temporal.PlainDate` (instead of `string`)
29
+ * - Local time: `Temporal.PlainTime` (instead of `string`)
30
+ *
31
+ * Requires a global `Temporal` object, or an implementation passed via
32
+ * the `temporal` option.
33
+ */
34
+ useTemporal?: boolean;
35
+
36
+ /**
37
+ * The Temporal implementation to use when `useTemporal` is set. Defaults
38
+ * to the global `Temporal` object if one is available.
39
+ */
40
+ temporal?: TemporalLike;
41
+ }
42
+
43
+ export function parse(input: string, options?: ParseOptions): any;
3
44
  }
@@ -2,9 +2,9 @@ var parser = require('./lib/parser');
2
2
  var compiler = require('./lib/compiler');
3
3
 
4
4
  module.exports = {
5
- parse: function(input) {
5
+ parse: function(input, options) {
6
6
  var str = input.toString();
7
- var nodes = parser.parse(str);
8
- return compiler.compile(nodes, str);
7
+ var nodes = parser.parse(str, options);
8
+ return compiler.compile(nodes, str, options);
9
9
  }
10
10
  };