@overdeck/desktop 0.49.2 → 0.50.0

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 (455) hide show
  1. package/drizzle/overdeck/0000_overdeck_init.sql +1 -0
  2. package/package.json +1 -1
  3. package/server/{acceptance-criteria-CHtDkHEL.js → acceptance-criteria-B_maCGZv.js} +2 -2
  4. package/server/{active-dashboard-bundle-Byh6sP-q.js → active-dashboard-bundle-CCqpFWiz.js} +2 -2
  5. package/server/{activity-logger-Ck8qoluj.js → activity-logger-B0X2JJwM.js} +1 -1
  6. package/server/{activity-logger-BWZhVphb.js → activity-logger-SlTXYCVf.js} +3 -3
  7. package/server/{advancing-selfheal-65W4yUQi.js → advancing-selfheal-BJAfiY-C.js} +11 -6
  8. package/server/{agent-gc-BNUudFnt.js → agent-gc-bhikjoJ_.js} +11 -11
  9. package/server/{agent-idle-ONBssBN_.js → agent-idle-D-UQ7gDv.js} +11 -11
  10. package/server/{agent-state-CM8iVw5B.js → agent-state-BrUPf_7Z.js} +1 -1
  11. package/server/{agent-state-BJhGIJZe.js → agent-state-FABw8neJ.js} +344 -402
  12. package/server/{agent-state-service-CzHfoqKQ.js → agent-state-service-BAQApt97.js} +1 -1
  13. package/server/{agent-state-service-CiIuwzIs.js → agent-state-service-rDenYSlD.js} +5 -5
  14. package/server/{agents-DpCuoF65.js → agents-DixZjXWm.js} +1 -1
  15. package/server/{agents-jXgqpHca.js → agents-DzpQidT8.js} +4 -4
  16. package/server/{archive-planning-CGkU6UeL.js → archive-planning-BL1ABtW0.js} +5 -5
  17. package/server/archive-planning-D3gw32U9.js +2 -0
  18. package/server/{artifact-index-jobs-Ck4NRRkY.js → artifact-index-jobs-Cjdme0jS.js} +2 -2
  19. package/server/{assemble-CyvEBmmq.js → assemble-B_JgnCbG.js} +2 -2
  20. package/server/{auto-spawn-consent-Dc4mtM-B.js → auto-spawn-consent-BesWchEi.js} +7 -7
  21. package/server/{backlog-auto-trigger-CCEpr4YT.js → backlog-auto-trigger-COLq639j.js} +3 -3
  22. package/server/{behavior-BiCQzqyT.js → behavior-DCg8CIWC.js} +3 -3
  23. package/server/{bridge-pool-patrol-Ce8rNPym.js → bridge-pool-patrol-BDohuMRt.js} +2 -2
  24. package/server/{briefing-freshness-e_OEYZEe.js → briefing-freshness-ENa_hW_V.js} +2 -2
  25. package/server/build-info-Dx2qrVhb.js +2 -0
  26. package/server/{build-info-BRw4QlYO.js → build-info-WuZT6xyi.js} +3 -3
  27. package/server/{checkpoint-manager-DOwRGFff.js → checkpoint-manager-CSZ7aVQF.js} +2 -2
  28. package/server/{checkpoint-manager-CKr42Usw.js → checkpoint-manager-DXhGRvg4.js} +1 -1
  29. package/server/checkpoint-worker.js +1 -1
  30. package/server/{checkpoints-Cszp_0Np.js → checkpoints-DUkUsPVS.js} +2 -2
  31. package/server/{checkpoints-Cb6CWT4S.js → checkpoints-tm_w6Y4V.js} +1 -1
  32. package/server/{claude-hooks-provision-C5JHpxTS.js → claude-hooks-provision-CTh9zxEi.js} +1 -1
  33. package/server/{claude-hooks-provision-Cer2eFfj.js → claude-hooks-provision-fRofvhTN.js} +2 -2
  34. package/server/{claude-permissions-Bc5kjX1q.js → claude-permissions-DLrb9ovz.js} +18 -3
  35. package/server/{claude-settings-overlay-m-VVZej1.js → claude-settings-overlay-BYnXaTVc.js} +2 -2
  36. package/server/{claude-settings-overlay-C7rWsnya.js → claude-settings-overlay-CMS5Jab5.js} +1 -1
  37. package/server/cli-BflmtEFM.js +2 -0
  38. package/server/{cli-BmczsfD6.js → cli-CoQou1t_.js} +11 -11
  39. package/server/{cliproxy-BpYpkogS.js → cliproxy-DXDQcR3I.js} +2 -2
  40. package/server/{cliproxy-_yUU0HRY.js → cliproxy-DdhFpcXU.js} +1 -1
  41. package/server/{close-issue-CxvRD0UI.js → close-issue-CpQ0BWg-.js} +5 -5
  42. package/server/{closed-issue-reaper-nMLRi5de.js → closed-issue-reaper-CdcJRvUx.js} +13 -13
  43. package/server/{closed-issue-reaper-omOcUDBl.js → closed-issue-reaper-TymtZM37.js} +1 -1
  44. package/server/{codex-DZhFfcWu.js → codex-BValsmtK.js} +1 -1
  45. package/server/{codex-KaSKE-R3.js → codex-DYyZL8JD.js} +6 -6
  46. package/server/{compaction-continuation-Bjfi70G-.js → compaction-continuation-CVjbdGKt.js} +3 -3
  47. package/server/{config-CH1AqqIQ.js → config-CvKH7r7W.js} +1 -1
  48. package/server/{config-ZGjvuR6J.js → config-NxI9Yl2f.js} +2 -2
  49. package/server/{config-Doq_tF-f.js → config-_qaa1UXH.js} +2 -2
  50. package/server/{config-yaml-D9nfpEx1.js → config-yaml-D60AnTIu.js} +24 -9
  51. package/server/{conflict-gate-D4XCtrm2.js → conflict-gate-0dD1kxjN.js} +1 -1
  52. package/server/{conflict-gate-DcUTY4Gb.js → conflict-gate-hAUCL-un.js} +5 -5
  53. package/server/{context-layers-BBTKP-Y4.js → context-layers-CdpabJj0.js} +3 -3
  54. package/server/{context-layers-BGj2Y9l3.js → context-layers-Ds1MnEFI.js} +2 -2
  55. package/server/{continue-i7Revg8D.js → continue-CnvrUfxw.js} +2 -2
  56. package/server/{control-settings-BMoDHY1G.js → control-settings-Db0uXgVM.js} +308 -5
  57. package/server/{conversation-compaction-D4VOmF7p.js → conversation-compaction-B-1KETG9.js} +8 -8
  58. package/server/{conversation-compaction-DzIjYMfg.js → conversation-compaction-DzMXGRiJ.js} +1 -1
  59. package/server/{conversation-service-CzZUJFEx.js → conversation-service-BL-asWPX.js} +1 -1
  60. package/server/{conversation-service-tQCIbBVZ.js → conversation-service-BxIOd5ay.js} +21 -7
  61. package/server/{conversations-bFDaD5YN.js → conversations-CEMfwMt-.js} +1 -1
  62. package/server/{conversations-C75EFFjf.js → conversations-nS6QgYpD.js} +5 -5
  63. package/server/cost-3FyqKK56.js +838 -0
  64. package/server/{cost-BCWEkvro.js → cost-Cctc-Q9M.js} +3 -3
  65. package/server/{cost-CiIwxH1D.js → cost-DTuIRE4y.js} +2 -2
  66. package/server/{cost-sync-DOkdE_yB.js → cost-sync-DfmvLT9L.js} +3 -3
  67. package/server/{dag-BPc74hwj.js → dag-o-dUpw1L.js} +2 -2
  68. package/server/{dangerous-git-ops-By9iguTP.js → dangerous-git-ops-BOtXCFkT.js} +1 -1
  69. package/server/dashboard-db-worker.js +61 -11
  70. package/server/{deacon-B24dNzr8.js → deacon-CsisLmPt.js} +125 -165
  71. package/server/{deacon-canonical-state-CkvxRPck.js → deacon-canonical-state-DkdkQS5p.js} +2 -2
  72. package/server/{deacon-CzSZMtb-.js → deacon-e6py3jkM.js} +3 -3
  73. package/server/{deacon-event-client-BYIQBu0T.js → deacon-event-client-BCjHiGAY.js} +1 -1
  74. package/server/{deacon-event-client-Do6Z2gKl.js → deacon-event-client-CMQswEHX.js} +2 -2
  75. package/server/{deacon-nudge-log-CzM9JA9t.js → deacon-nudge-log-pcliw8Dr.js} +1 -1
  76. package/server/{deacon-pending-lifecycle-BObEdT-L.js → deacon-pending-lifecycle-BzaE76Xo.js} +3 -3
  77. package/server/deacon.js +11 -11
  78. package/server/{dead-end-trip-CnVmjnya.js → dead-end-trip-Bs3hxIn6.js} +3 -3
  79. package/server/dead-end-trip-DUbiRMtT.js +2 -0
  80. package/server/{delivery-gyce0vQ7.js → delivery-DhZGRShH.js} +1 -1
  81. package/server/{deploy-patrol-CEwwEYDM.js → deploy-patrol-B8sKkA8h.js} +8 -8
  82. package/server/deploy-queue--smqHLhe.js +2 -0
  83. package/server/{deploy-queue-r96ojDI3.js → deploy-queue-CCGWXFkp.js} +2 -2
  84. package/server/{deploy-window-D_3hhfxt.js → deploy-window-YuJewzmC.js} +4 -4
  85. package/server/{deploy-window-DeJK8mTK.js → deploy-window-hgsvZ3UZ.js} +1 -1
  86. package/server/{dev-supervisor-DZWwpENk.js → dev-supervisor-4SBloJHV.js} +2 -2
  87. package/server/{devcontainer-renderer-d-9dCV_2.js → devcontainer-renderer-BiJhwFNi.js} +3 -3
  88. package/server/{dist-DsLAsFSh.js → dist-CoR2sivG.js} +1 -1
  89. package/server/dist-FHv1s5ez.js +3 -0
  90. package/server/{docker-B2mUBzGk.js → docker-CWO7dcIP.js} +3 -3
  91. package/server/{docker-CRPHBylA.js → docker-DQzyMXkd.js} +1 -1
  92. package/server/{dod-DWtilRLx.js → dod-BAk5arLF.js} +1 -1
  93. package/server/{done-preflight-BDVdWed5.js → done-preflight-CGFA0M1b.js} +1 -1
  94. package/server/{done-preflight-D4ukUf-S.js → done-preflight-Cx9JGznT.js} +5 -5
  95. package/server/{durable-review-pipeline-CaCbEJSt.js → durable-review-pipeline-BOEZ0chh.js} +1 -1
  96. package/server/{durable-review-pipeline-B3OS2_He.js → durable-review-pipeline-Djx_lvFd.js} +1 -1
  97. package/server/{ensure-devcontainer-rGSh0JHK.js → ensure-devcontainer-Dk6ZMOUC.js} +1 -1
  98. package/server/{ensure-devcontainer-BUeBRjmm.js → ensure-devcontainer-DzYBBwnM.js} +4 -4
  99. package/server/{esm-shims-oAaKIa-a.js → esm-shims-deFq5Hhl.js} +1 -1
  100. package/server/{event-store-Db4w4YIY.js → event-store-C50Qt-f1.js} +1 -1
  101. package/server/{event-store-BCSgMubf.js → event-store-DTns2XZP.js} +5 -5
  102. package/server/{event-store-provider-DlSQND3V.js → event-store-provider-Bu1Qrg6v.js} +1 -1
  103. package/server/{events-B6zioJA_.js → events-B6xW8Cpm.js} +3 -3
  104. package/server/{factory-BrdqXBeK.js → factory-CWVKwKFE.js} +4 -4
  105. package/server/{feature-registry-storage-zh3ZXW6f.js → feature-registry-storage-vaxRN3WO.js} +2 -2
  106. package/server/{features-BGntOWdy.js → features-DXWwktJB.js} +2 -2
  107. package/server/{feedback-stuck-retirement-DpA5u1kt.js → feedback-stuck-retirement-CXAYe2rU.js} +2 -2
  108. package/server/{feedback-target-Ddqk93NF.js → feedback-target-DSVpi0gT.js} +1 -1
  109. package/server/{feedback-target-D7GxdUYG.js → feedback-target-yPD_wclF.js} +10 -10
  110. package/server/{feedback-writer-CH2846DP.js → feedback-writer-BzN4qvaP.js} +1 -1
  111. package/server/{feedback-writer-C1gCLFmp.js → feedback-writer-Ds1Wjsz4.js} +5 -5
  112. package/server/{flywheel-HJt7QdWP.js → flywheel-BCZS-FlW.js} +1 -1
  113. package/server/{flywheel-v1cCOBx-.js → flywheel-CC4gE_rx.js} +15 -15
  114. package/server/{flywheel-CjW2L7BS.js → flywheel-DWKd7bMc.js} +16 -16
  115. package/server/{flywheel-merge-order-4fNRN2F2.js → flywheel-merge-order-DDT3i57u.js} +1 -1
  116. package/server/{flywheel-merge-order-D_yyAlND.js → flywheel-merge-order-DJwH2KpL.js} +17 -15
  117. package/server/forge-4VVCRcF7.js +2 -0
  118. package/server/{forge-RVTCK_5X.js → forge-CHADjOFs.js} +2 -2
  119. package/server/{from-BnLgKYvw.js → from-C3dzmjSO.js} +1 -1
  120. package/server/{fs-lock-C7J-ugIf.js → fs-lock-DQ_gUxfq.js} +2 -2
  121. package/server/{fts-operations-CU0B5WUx.js → fts-operations-asZo2fh1.js} +2 -2
  122. package/server/{git-info-BSrI9owC.js → git-info-DMOSfJ9I.js} +1 -1
  123. package/server/{git-utils-CsKV0Dis.js → git-utils-BAMwn9Nf.js} +1 -1
  124. package/server/{git-utils-DW8-jIUJ.js → git-utils-BdHk8y7g.js} +4 -4
  125. package/server/{github-app-Oi5hdn1n.js → github-app-BWziYCf3.js} +1 -1
  126. package/server/{github-app-7ywLhuZO.js → github-app-BlMSzSTw.js} +2 -2
  127. package/server/{github-client-Cy0fSj1a.js → github-client-OK24qpol.js} +1 -1
  128. package/server/{github-client-DAbuXLuk.js → github-client-w6j5nVlz.js} +2 -2
  129. package/server/{github-pr-lookup-Dhh3ec1V.js → github-pr-lookup-bGcsEvLE.js} +2 -2
  130. package/server/{harness-binary-tMmgJfC1.js → harness-binary-DChiynaB.js} +2 -2
  131. package/server/{harness-resolve-DusNpVEe.js → harness-resolve-BplBEbwn.js} +4 -4
  132. package/server/{health-events-BYDZ9n2i.js → health-events-BTqsmunw.js} +1 -1
  133. package/server/{health-events-DNw9Mzw9.js → health-events-Bk3LjaJ9.js} +2 -2
  134. package/server/{hooks-BjBjxqNh.js → hooks-DJR1yR9w.js} +2 -2
  135. package/server/{hooks-B4wj32l2.js → hooks-EndRNrx9.js} +1 -1
  136. package/server/{hume-BP9YbxaE.js → hume-1FJmNDTq.js} +2 -2
  137. package/server/hume-gXLmRhmN.js +3 -0
  138. package/server/{identity-C23uY8dZ.js → identity-C3s8lyp0.js} +3 -3
  139. package/server/{idle-stack-reaper-Bw0rU9GC.js → idle-stack-reaper-CBelVOE3.js} +1 -1
  140. package/server/{idle-stack-reaper-BSxb1bln.js → idle-stack-reaper-DtoI4al6.js} +4 -4
  141. package/server/{in-flight-guard-DuxabAHT.js → in-flight-guard-B7khcBdQ.js} +1 -1
  142. package/server/{infra-CHIvOb9q.js → infra-CJRi_5Wu.js} +10 -4
  143. package/server/{injection-BYUt8ml1.js → injection-ADWQ3D0s.js} +8 -8
  144. package/server/{injection-BviePcm3.js → injection-BWsgHvrL.js} +1 -1
  145. package/server/{inspect-agent-sV_19NxZ.js → inspect-agent-CCfNJjKr.js} +12 -12
  146. package/server/inspect-agent-Dhp3hCGp.js +2 -0
  147. package/server/{internal-token-BOtIRJU7.js → internal-token-BCTEqUCX.js} +1 -1
  148. package/server/{internal-token-DoVzb4b7.js → internal-token-BeIWG_kT.js} +2 -2
  149. package/server/{io-DKrWd3gX.js → io-BCtZoXHo.js} +4 -4
  150. package/server/{issue-closed-6RQsAjDX.js → issue-closed-CiYAa6bX.js} +7 -7
  151. package/server/{issue-lifecycle-D9nLErvS.js → issue-lifecycle-BETNVVLq.js} +25 -25
  152. package/server/{issue-lifecycle-DOPVv7xz.js → issue-lifecycle-DaKN57sx.js} +1 -1
  153. package/server/{issue-service-singleton-CvgNAWqK.js → issue-service-singleton-1Q0ER8Yc.js} +1 -1
  154. package/server/{issue-service-singleton-B2xy-IS9.js → issue-service-singleton-C_sZ0HjP.js} +10 -10
  155. package/server/{issue-title-fallback-DTSCQVu0.js → issue-title-fallback-B91iD66g.js} +3 -3
  156. package/server/{issues-e_Ck1Ln2.js → issues-RGHQUKhB.js} +2 -2
  157. package/server/{jsonl-parser-DqxVCZ1k.js → jsonl-parser-Dfs1dlYE.js} +3 -3
  158. package/server/{jsonl-resolver-07OS3qOr.js → jsonl-resolver-bFtftCDd.js} +8 -8
  159. package/server/{kimi-code-vtXl2DR5.js → kimi-code-BxkDgaj4.js} +1 -1
  160. package/server/{kimi-code-BjtAHIz1.js → kimi-code-CNYRA8Dd.js} +11 -11
  161. package/server/{kimi-parser-B1lgy2Vt.js → kimi-parser-OcWwmOqF.js} +2 -2
  162. package/server/{label-cleanup-D2zUMasf.js → label-cleanup-CefxK9tL.js} +3 -3
  163. package/server/{lifecycle-DaCovZwn.js → lifecycle-DDZ7w-BY.js} +6 -6
  164. package/server/{lifecycle-0NOEzomy.js → lifecycle-DVXyUil2.js} +2 -2
  165. package/server/{lifecycle-io-BBMTaP7S.js → lifecycle-io-D1oBiMce.js} +1 -1
  166. package/server/{lifecycle-io-6WL46dsB.js → lifecycle-io-D7N0vQNj.js} +5 -5
  167. package/server/{linear-client-7fQThJTc.js → linear-client-DUN7zCeb.js} +2 -2
  168. package/server/{linear-client-BTGApNLo.js → linear-client-TL32snOy.js} +1 -1
  169. package/server/{linear-mcp-auth-B8pYRsiU.js → linear-mcp-auth-CtRKSHy5.js} +1 -1
  170. package/server/{linear-mcp-auth-Nk5s3L9M.js → linear-mcp-auth-bB0CPyjh.js} +5 -5
  171. package/server/memory-fts-worker.js +1 -1
  172. package/server/{memory-governor-Cqvbusr4.js → memory-governor-Cvv_9K0M.js} +87 -21
  173. package/server/{memory-pressure-patrol-DPb8foam.js → memory-pressure-patrol-C6DJJQRA.js} +38 -14
  174. package/server/{merge-BB_bjJ9a.js → merge-DOCR6pHi.js} +1 -1
  175. package/server/{merge-FZ78_cEz.js → merge-FTk4LsnM.js} +3 -3
  176. package/server/{merge-agent-B3jRrlS1.js → merge-agent-C-dsN9se.js} +31 -31
  177. package/server/{merge-agent-BuoC_PRZ.js → merge-agent-D-4_iQgy.js} +2 -2
  178. package/server/{merge-batch-B8bVjFWS.js → merge-batch-BJjzUUL7.js} +1 -1
  179. package/server/{merge-completeness-DQt7Qa7i.js → merge-completeness-BOtBUwTU.js} +4 -4
  180. package/server/{merge-completeness-DkdabVch.js → merge-completeness-CoLJxfUY.js} +1 -1
  181. package/server/merge-eligibility-C4rTS97F.js +3 -0
  182. package/server/merge-eligibility-D7wRnJbj.js +51 -0
  183. package/server/merge-ops-Cf02szJ5.js +2 -0
  184. package/server/merge-rebase-Bj7eJAG4.js +2 -0
  185. package/server/{merge-rebase-qq40s91P.js → merge-rebase-KBw4rdh3.js} +2 -2
  186. package/server/{merge-set-BTNYvxM3.js → merge-set-CVfEM57p.js} +1 -1
  187. package/server/{merge-set-BmRRflt0.js → merge-set-CyW-xSn4.js} +4 -4
  188. package/server/{merge-sync-0m2Q087q.js → merge-sync-CYGsJy0u.js} +1 -1
  189. package/server/{merge-sync-CJpOa0cZ.js → merge-sync-YLvOPAry.js} +2 -2
  190. package/server/{merge-train-iwKqjtCF.js → merge-train-VxLn8Ms4.js} +4 -4
  191. package/server/{merge-train-deps-CH5Mr3vN.js → merge-train-deps-D0y4hBB9.js} +4 -4
  192. package/server/{merge-verification-JJc5GC2t.js → merge-verification-BfJRNMiD.js} +6 -6
  193. package/server/{merged-docker-cleanup-worker-BOqWA373.js → merged-docker-cleanup-worker-Bh5fKG_b.js} +3 -3
  194. package/server/{merged-docker-cleanup-worker-CrhTdxZV.js → merged-docker-cleanup-worker-Ci9oeFAe.js} +1 -1
  195. package/server/{messaging-nuwStbdQ.js → messaging-Dfbhgjd6.js} +1 -1
  196. package/server/{multipart-parser-DxuW_rZV.js → multipart-parser-BYwfKOVU.js} +2 -2
  197. package/server/{no-resume-mode-xuYLFhLw.js → no-resume-mode-DjMQRkId.js} +1 -1
  198. package/server/node_modules/.package-lock.json +18 -18
  199. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/ai-docs/package.json +2 -2
  200. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/ai-docs/src/70_cli/10_basics.ts +4 -2
  201. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeClusterSocket.d.ts.map +1 -1
  202. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeClusterSocket.js +12 -9
  203. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeClusterSocket.js.map +1 -1
  204. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeSocket.js +1 -1
  205. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/dist/NodeSocket.js.map +1 -1
  206. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/package.json +6 -6
  207. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/src/NodeClusterSocket.ts +15 -12
  208. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/src/NodeSocket.ts +1 -1
  209. package/server/node_modules/@types/node/README.md +1 -1
  210. package/server/node_modules/@types/node/buffer.buffer.d.ts +5 -5
  211. package/server/node_modules/@types/node/crypto.d.ts +2 -2
  212. package/server/node_modules/@types/node/http.d.ts +16 -0
  213. package/server/node_modules/@types/node/http2.d.ts +10 -2
  214. package/server/node_modules/@types/node/package.json +2 -2
  215. package/server/node_modules/@types/node/process.d.ts +52 -0
  216. package/server/node_modules/@types/node/quic.d.ts +210 -28
  217. package/server/node_modules/@types/node/sqlite.d.ts +6 -2
  218. package/server/node_modules/@types/node/test.d.ts +36 -0
  219. package/server/node_modules/effect/node_modules/uuid/README.md +19 -19
  220. package/server/node_modules/effect/node_modules/uuid/dist/v1.js +7 -3
  221. package/server/node_modules/effect/node_modules/uuid/dist/v7.js +5 -2
  222. package/server/node_modules/effect/node_modules/uuid/dist-node/v1.js +7 -3
  223. package/server/node_modules/effect/node_modules/uuid/dist-node/v7.js +5 -2
  224. package/server/node_modules/effect/node_modules/uuid/package.json +4 -3
  225. package/server/node_modules/msgpackr/dist/index-no-eval.cjs +11 -5
  226. package/server/node_modules/msgpackr/dist/index-no-eval.cjs.map +1 -1
  227. package/server/node_modules/msgpackr/dist/index-no-eval.min.js +1 -1
  228. package/server/node_modules/msgpackr/dist/index-no-eval.min.js.map +1 -1
  229. package/server/node_modules/msgpackr/dist/index.js +11 -5
  230. package/server/node_modules/msgpackr/dist/index.js.map +1 -1
  231. package/server/node_modules/msgpackr/dist/index.min.js +1 -1
  232. package/server/node_modules/msgpackr/dist/index.min.js.map +1 -1
  233. package/server/node_modules/msgpackr/dist/node.cjs +11 -5
  234. package/server/node_modules/msgpackr/dist/node.cjs.map +1 -1
  235. package/server/node_modules/msgpackr/dist/test.js +11 -5
  236. package/server/node_modules/msgpackr/dist/test.js.map +1 -1
  237. package/server/node_modules/msgpackr/dist/unpack-no-eval.cjs +11 -5
  238. package/server/node_modules/msgpackr/dist/unpack-no-eval.cjs.map +1 -1
  239. package/server/node_modules/msgpackr/package.json +1 -1
  240. package/server/node_modules/msgpackr/unpack.js +11 -5
  241. package/server/node_modules/picomatch/lib/parse.js +10 -1
  242. package/server/node_modules/picomatch/lib/scan.js +30 -18
  243. package/server/node_modules/picomatch/package.json +1 -1
  244. package/server/{orphan-proposed-reconciler-gf4TxfZb.js → orphan-proposed-reconciler-CnP0K2v3.js} +2 -2
  245. package/server/{orphan-proposed-reconciler-Dmk0kO_p.js → orphan-proposed-reconciler-nFUlquZt.js} +21 -21
  246. package/server/package-lock.json +19 -19
  247. package/server/package.json +1 -1
  248. package/server/{pan-dir-BMda7tQj.js → pan-dir-B4NfzOf3.js} +4 -4
  249. package/server/{parked-residue-BiHb8cD7.js → parked-residue-8WbU0y1z.js} +68 -64
  250. package/server/{paths-DEe9j-kw.js → paths-rETQhTF2.js} +2 -2
  251. package/server/{pending-lifecycle-claim-J5uIIJPu.js → pending-lifecycle-claim-yAwDuGS4.js} +1 -1
  252. package/server/{pickup-D1UbSDPd.js → pickup-Dle6k9Xt.js} +1 -1
  253. package/server/{pipeline-agent-reader-D-6okryb.js → pipeline-agent-reader-CeWhQzXC.js} +3 -3
  254. package/server/{pipeline-membership-PGX3Pe8V.js → pipeline-membership-BV4hdkHm.js} +1 -1
  255. package/server/{pipeline-membership-CCbgBzNC.js → pipeline-membership-C9ykcjsn.js} +1 -1
  256. package/server/{pipeline-membership-gather-BK4dzh0X.js → pipeline-membership-gather-Ba0wJNCR.js} +10 -10
  257. package/server/{pipeline-membership-gather-BRhU7XPx.js → pipeline-membership-gather-C9E22B2W.js} +1 -1
  258. package/server/{pipeline-notifier-DvHLaXKb.js → pipeline-notifier-B5DPXvnr.js} +1 -1
  259. package/server/{pipeline-notifier-BNAV9kpa.js → pipeline-notifier-p190L97e.js} +2 -2
  260. package/server/{post-merge-lifecycle-worker-DAWgzXQA.js → post-merge-lifecycle-worker-OQoK8Ckg.js} +2 -2
  261. package/server/{post-merge-state-DC2_0t12.js → post-merge-state-DFaf7OI1.js} +4 -4
  262. package/server/{prd-locations-BbAvqQmT.js → prd-locations-F2oLSAhy.js} +3 -3
  263. package/server/{project-pipelines-By_5WcT4.js → project-pipelines-CUsa6U59.js} +2 -2
  264. package/server/{project-repos-3bI6t4fO.js → project-repos-BVdi9-ch.js} +1 -1
  265. package/server/{project-repos--QeCg7yQ.js → project-repos-CsfvLtmr.js} +2 -2
  266. package/server/{project-resource-refresh-queue-x-K9mvpP.js → project-resource-refresh-queue-BehrH4Ai.js} +17 -17
  267. package/server/{project-resource-refresh-queue-BaZC79S3.js → project-resource-refresh-queue-D2110Guc.js} +1 -1
  268. package/server/{projects-LftaVK99.js → projects-BMuEf14J.js} +1 -1
  269. package/server/{prompts-BotGu-6W.js → prompts-CKpDt8Jn.js} +2 -2
  270. package/server/{providers-Dqgz3MY5.js → providers-Buv2wmFU.js} +1 -1
  271. package/server/{providers-BL1I66sM.js → providers-CxPKmyif.js} +7 -7
  272. package/server/public/assets/{chunk-BO2N2NFS-D5Fz5jND.js → chunk-BO2N2NFS-DZOQVqV1.js} +4 -4
  273. package/server/public/assets/{diagram-OG6HWLK6-Eux0gWFq.js → diagram-OG6HWLK6-oKeXcbO1.js} +1 -1
  274. package/server/public/assets/{dist-D-JX_u7m.js → dist-2qPmeRzT.js} +3 -3
  275. package/server/public/assets/{dist-C3zShwhA.js → dist-ClBlE-Nm.js} +1 -1
  276. package/server/public/assets/{ganttDiagram-6RSMTGT7-UH3aweia.js → ganttDiagram-6RSMTGT7-BwdG9fQv.js} +1 -1
  277. package/server/public/assets/{highlighted-body-OFNGDK62-ccIQ-WXS.js → highlighted-body-OFNGDK62-BzGNdskQ.js} +1 -1
  278. package/server/public/assets/index-CdPveU3M.css +1 -0
  279. package/server/public/assets/{index-BTVcdPve.js → index-Cg6tdZoY.js} +149 -149
  280. package/server/public/assets/{linear-Cnnu4YQy.js → linear-DpEt1TJb.js} +1 -1
  281. package/server/public/assets/mermaid-GHXKKRXX-6KBD_3T_.js +1 -0
  282. package/server/public/assets/{pieDiagram-4H26LBE5-BD8-Tye6.js → pieDiagram-4H26LBE5-9BpM4oRJ.js} +1 -1
  283. package/server/public/assets/{prod-Ca6aKMts.js → prod-CzJiNNEG.js} +4 -4
  284. package/server/public/assets/{quadrantDiagram-W4KKPZXB-BmSrVyFD.js → quadrantDiagram-W4KKPZXB-BXWVAoZx.js} +1 -1
  285. package/server/public/assets/{sankeyDiagram-5OEKKPKP-CEGy8Das.js → sankeyDiagram-5OEKKPKP-5oxodGEw.js} +1 -1
  286. package/server/public/assets/{xychartDiagram-2RQKCTM6-VnQ8iY8s.js → xychartDiagram-2RQKCTM6-BChDrHxZ.js} +1 -1
  287. package/server/public/index.html +2 -2
  288. package/server/pull-requests-CmlandI7.js +2 -0
  289. package/server/{pull-requests-Cp_FDT8-.js → pull-requests-T0OV0Vn4.js} +3 -3
  290. package/server/{rally-bQpBzUNf.js → rally-CUqj2oIN.js} +3 -3
  291. package/server/rally-DYIn9R2U.js +3 -0
  292. package/server/{rally-api-CqAIJ8RX.js → rally-api-BFPb2oSq.js} +2 -2
  293. package/server/{rally-api-Ij1Zt0NI.js → rally-api-BoucQG1u.js} +1 -1
  294. package/server/{rally-client-qKbCNRVW.js → rally-client-16iObny7.js} +4 -4
  295. package/server/{rally-client-CN5vh4Ac.js → rally-client-CsqLjLLa.js} +1 -1
  296. package/server/{rebuild-stack-DrMyA_mA.js → rebuild-stack-BcBVFJp3.js} +2 -2
  297. package/server/{rebuild-stack-BNOMVh7C.js → rebuild-stack-CyXMrj6K.js} +6 -6
  298. package/server/reconciler-caYiRnPy.js +657 -0
  299. package/server/{reconstruct-cache-mxIYCnqs.js → reconstruct-cache-3JzPOune.js} +7 -7
  300. package/server/{record-Ug18Cp4V.js → record-DYOg97Iv.js} +1 -1
  301. package/server/{record-update-dBGxL9OC.js → record-update-BPqpBu3O.js} +5 -5
  302. package/server/{record-update-WyhsREoH.js → record-update-CDPEX7BH.js} +1 -1
  303. package/server/{recovery-trip-BKLrL6NX.js → recovery-trip-CpfW6LCJ.js} +3 -3
  304. package/server/{recovery-trip-wFAixKsg.js → recovery-trip-xqKC07Gy.js} +1 -1
  305. package/server/{release-engine-D9gaCBn9.js → release-engine-C_OOhCaK.js} +5 -5
  306. package/server/{release-set-DPHHzEGx.js → release-set-DOIDz2vw.js} +3 -3
  307. package/server/{remote-BUEeUic6.js → remote-BTh-sjpX.js} +3 -3
  308. package/server/{remote-agents-CSaTLi3u.js → remote-agents-DbbN7vSm.js} +6 -6
  309. package/server/{remote-agents-BVtASiOF.js → remote-agents-MuXx2gWm.js} +1 -1
  310. package/server/{remote-completion-CBV3b9TI.js → remote-completion-LcWCpAm2.js} +12 -12
  311. package/server/{remote-BU6ONLpv.js → remote-xY0B43Ho.js} +3 -3
  312. package/server/{resolver-gxv97jsQ.js → resolver-C2QKOf09.js} +2 -2
  313. package/server/{resolver-DvSMXty7.js → resolver-D4nsxfGo.js} +7 -7
  314. package/server/{resume-DvHuF-bm.js → resume-ByUrJUNX.js} +1 -1
  315. package/server/{review-agent-esZ0QXdY.js → review-agent-BRBTm1qE.js} +30 -30
  316. package/server/{review-agent-DgkUPRx0.js → review-agent-Caodi0PX.js} +2 -2
  317. package/server/{review-artifacts-DGGEobLp.js → review-artifacts-DgaDlbO4.js} +6 -6
  318. package/server/{review-convoy-liveness-DmO8dIBH.js → review-convoy-liveness-BBvyuRLC.js} +8 -8
  319. package/server/{review-run-recovery-DHiiw7d8.js → review-run-recovery-DCzWMMvE.js} +1 -1
  320. package/server/{review-run-recovery-Ct0q7FkE.js → review-run-recovery-THHMKlXJ.js} +2 -2
  321. package/server/{review-status-C_kQeeX0.js → review-status-Bge_3XTR.js} +1 -1
  322. package/server/{review-status-yOGD2MuK.js → review-status-DpniqzPT.js} +55 -45
  323. package/server/{review-status-emit-BZz1Y_22.js → review-status-emit-D7sM720S.js} +3 -3
  324. package/server/{review-status-enrichment-BWH0XW_m.js → review-status-enrichment-PDI4-faj.js} +3 -3
  325. package/server/{review-status-sync-2C9lk85r.js → review-status-sync-C6ZKTI8f.js} +11 -8
  326. package/server/{review-status-sync-Bq00Loey.js → review-status-sync-CvpHWyvR.js} +1 -1
  327. package/server/{review-verdict-feedback-CE_tr2iQ.js → review-verdict-feedback-B2ojHFH5.js} +7 -7
  328. package/server/{review-verdict-feedback-Brjaxoda.js → review-verdict-feedback-tyMoLT2L.js} +1 -1
  329. package/server/{review-verdict-writer-Ca2V7QSY.js → review-verdict-writer-Cy_1pnIj.js} +7 -7
  330. package/server/{review-verdict-writer-CD-4kDVx.js → review-verdict-writer-DjrJ64eS.js} +1 -1
  331. package/server/{rollup--g9ik1XQ.js → rollup-Cp0KEoOu.js} +1 -1
  332. package/server/{rollup-B6g9Nr6L.js → rollup-DU3xBQu2.js} +8 -8
  333. package/server/{scanner-YxIv-fG1.js → scanner-BFKG3Gxv.js} +7 -7
  334. package/server/{search-DqMN4__-.js → search-DhtKwbBC.js} +2 -2
  335. package/server/{sequence-io--b3_PsWq.js → sequence-io-C-Q19Jez.js} +4 -4
  336. package/server/{sequencer-agent-CqouKVZG.js → sequencer-agent-eN2P2lDz.js} +6 -6
  337. package/server/server.js +585 -282
  338. package/server/{service-CEp-3iow.js → service-CThO0Sar.js} +77 -772
  339. package/server/{session-fork-GtoeCh2H.js → session-fork-ZYTHtpBh.js} +2 -2
  340. package/server/settings-ByDRfuuE.js +2 -0
  341. package/server/{settings-CLQcdkoD.js → settings-CTywpFw5.js} +2 -2
  342. package/server/{settings-Ch2pCVtt.js → settings-nAT-eK56.js} +3 -3
  343. package/server/{shadow-engineering-BxiFrIKv.js → shadow-engineering-BHZKPJhq.js} +2 -2
  344. package/server/{shadow-state-CSA1vtxr.js → shadow-state-BTLi4Axs.js} +2 -2
  345. package/server/{shadow-state-nGhCNXT2.js → shadow-state-CZ_LnPsi.js} +1 -1
  346. package/server/{shadow-utils-7q5QDmMj.js → shadow-utils-CPLlPHdn.js} +2 -2
  347. package/server/{ship-log-ie0A_SqV.js → ship-log-D-CphNZx.js} +1 -1
  348. package/server/{ship-record-BM3oVvnL.js → ship-record-BaBla0l_.js} +5 -5
  349. package/server/{ship-record-DHWH1hLz.js → ship-record-BlvX8-xv.js} +1 -1
  350. package/server/{ship-status-BEkddXMT.js → ship-status-rQbPQBsF.js} +2 -2
  351. package/server/{smart-compaction-BkzjVpWL.js → smart-compaction-CUXn8mfX.js} +1 -1
  352. package/server/{smart-compaction-D0TE1lBD.js → smart-compaction-D1CNGdZx.js} +7 -7
  353. package/server/{spawn-planning-session-CkGweSCC.js → spawn-planning-session-DCmO6COk.js} +17 -17
  354. package/server/{spawn-planning-session-s406rw1N.js → spawn-planning-session-DfEWyrVV.js} +2 -2
  355. package/server/{specialist-completion-CTAjwH5j.js → specialist-completion-BMv3K54P.js} +1 -1
  356. package/server/{specialist-context-CKasRfYu.js → specialist-context-C1-CfYQb.js} +5 -5
  357. package/server/{specialist-handoff-logger-DrjrOmmn.js → specialist-handoff-logger-BDKoz5Z9.js} +2 -2
  358. package/server/{specialist-logs-Du6quZ0_.js → specialist-logs-BJQFkpdG.js} +3 -3
  359. package/server/{specialists-x-kPMhrL.js → specialists-CYt1U3Zm.js} +2 -2
  360. package/server/{specialists-CuDWiNdB.js → specialists-D6MUU31Q.js} +19 -19
  361. package/server/{specialists-b0dMMjWq.js → specialists-DhS79T9v.js} +333 -118
  362. package/server/{specialists-B-4zyE4Y.js → specialists-Dx0zRTxX.js} +1 -1
  363. package/server/{specialists-registry-1y6Rt_F1.js → specialists-registry-BRLCi61y.js} +1 -1
  364. package/server/{specialists-registry-BYjs04iK.js → specialists-registry-Bng0OFGH.js} +2 -2
  365. package/server/specs-oRGyfz6C.js +3 -0
  366. package/server/{src-CZsPs61V.js → src-C7gGe4KU.js} +6 -6
  367. package/server/{src-CY2Wl8IX.js → src-CdwN6WY6.js} +8 -2
  368. package/server/{src-DeQwpuh6.js → src-DMosbuSJ.js} +3 -3
  369. package/server/{stack-health-BQFSJc0l.js → stack-health-BKfNaqMm.js} +3 -3
  370. package/server/{stack-health-ypIKtkbE.js → stack-health-Bz711z1Y.js} +1 -1
  371. package/server/{stale-task-claims-C2e1zdMT.js → stale-task-claims-DMRLb5R2.js} +5 -5
  372. package/server/{staleness-Fzx_3_Hr.js → staleness-CxZaIhrn.js} +1 -1
  373. package/server/{staleness-CRDK6LFG.js → staleness-r_dkMyMG.js} +1 -1
  374. package/server/{stall-sweeper-QNk4h9m6.js → stall-sweeper-CBWqSWV2.js} +8 -8
  375. package/server/{state-home-DdG8erBI.js → state-home-DhsMqg8W.js} +2 -2
  376. package/server/{state-migrate-C6H3jfHE.js → state-migrate-C2Ouyd6e.js} +6 -6
  377. package/server/{state-mirror-DF4Lfxm0.js → state-mirror-BPXciz84.js} +3 -3
  378. package/server/{stuck-remediation-BVNd9txd.js → stuck-remediation-DALieAkx.js} +1 -1
  379. package/server/{stuck-remediation-BDa_tXgB.js → stuck-remediation-kta3KN7c.js} +13 -13
  380. package/server/{substrate-bug-weights-service-BbbCZEtJ.js → substrate-bug-weights-service-D_ICP7TI.js} +3 -3
  381. package/server/{summary-fork-DIQmtOuV.js → summary-fork-CojrFKb6.js} +2 -2
  382. package/server/{summary-fork-BvcW6bq0.js → summary-fork-DhhaFhxZ.js} +10 -10
  383. package/server/supervisor-DSSWo4M2.js +2 -0
  384. package/server/{supervisor-D3jC2c7A.js → supervisor-DqH-laVL.js} +4 -4
  385. package/server/{swarm-readiness-CMWAQuWM.js → swarm-readiness-LF8ZF_hc.js} +3 -3
  386. package/server/{synthesis-verdict-DVlrLF9A.js → synthesis-verdict-CGFF8uQI.js} +2 -2
  387. package/server/{synthesis-verdict-C-pJOPsn.js → synthesis-verdict-DSoOFUIV.js} +1 -1
  388. package/server/{system-prerequisites-QKtIYXI2.js → system-prerequisites-Lsx0jUUV.js} +2 -2
  389. package/server/{teardown-workspace-cJea1OLo.js → teardown-workspace-DMwomEG1.js} +16 -16
  390. package/server/{test-agent-queue-C5DI_gWX.js → test-agent-queue-Cu0D6BYe.js} +6 -6
  391. package/server/{test-verdict-C7kmd2_Y.js → test-verdict-9mvl7pQn.js} +1 -1
  392. package/server/{test-verdict-DUbDHqeD.js → test-verdict-oNSv1rVr.js} +2 -2
  393. package/server/{tldr-daemon-BNQHwblU.js → tldr-daemon-CRSAkhBx.js} +1 -1
  394. package/server/{tldr-daemon-CO08YlfQ.js → tldr-daemon-McqCk2X7.js} +2 -2
  395. package/server/{tmux-B8zsqD_6.js → tmux-CYucGrTl.js} +2 -2
  396. package/server/{tmux-DWEc4Ld9.js → tmux-wnT_hg-s.js} +2 -2
  397. package/server/{token-Bez-qCB2.js → token-BdfZLRg1.js} +1 -1
  398. package/server/{tracker-config-CJzPhSHv.js → tracker-config-tfAOWgng.js} +2 -2
  399. package/server/{tracker-utils-DJAOAuMN.js → tracker-utils-Dbg_pVZg.js} +2 -2
  400. package/server/{traefik-connect-D3H5I6b9.js → traefik-connect-DoQvQ6oJ.js} +1 -1
  401. package/server/{tunnel-BSdKnW0U.js → tunnel-B1MNIgkL.js} +1 -1
  402. package/server/{tunnel-Cr3ctqxp.js → tunnel-skW68j9B.js} +3 -3
  403. package/server/{types-fzBp9cYi.js → types-PW4zkxCM.js} +1 -1
  404. package/server/{uat-failure-feedback-IZQ-J8jt.js → uat-failure-feedback-ly8ZwtfC.js} +5 -5
  405. package/server/{uat-promote-verification-DXApKcc2.js → uat-promote-verification-BBaMwfdc.js} +5 -5
  406. package/server/{uat-train-IIZlz7r3.js → uat-train-BBEiYSep.js} +0 -0
  407. package/server/{uat-train-CycEzpbE.js → uat-train-D7Ran2FB.js} +1 -1
  408. package/server/{validate-Ur4xH5bN.js → validate-BYcBcBwg.js} +3 -3
  409. package/server/{validation-Dr6V4PXx.js → validation-BfG2jW5C.js} +4 -4
  410. package/server/{validation-CHovCoTT.js → validation-nSrYiYvA.js} +1 -1
  411. package/server/{verification-artifact-D3viYe_t.js → verification-artifact-Cmhgq4b_.js} +1 -1
  412. package/server/{verification-artifact-k5Ftpg0c.js → verification-artifact-DglwaHke.js} +1 -1
  413. package/server/{verification-runner-Dl13mmsI.js → verification-runner-BEq5ZF-h.js} +16 -16
  414. package/server/{verification-runner-BuqGwm2t.js → verification-runner-CFjAuv9u.js} +1 -1
  415. package/server/{vtt-parser-BSnAB-Og.js → vtt-parser-Va--tv27.js} +1 -1
  416. package/server/{work-agent-prompt-CJJ4tXci.js → work-agent-prompt-BnhKNAg7.js} +1 -1
  417. package/server/{work-agent-prompt-CioeOuM4.js → work-agent-prompt-CaD2ue8m.js} +10 -10
  418. package/server/{work-agent-start-B65Gqn9N.js → work-agent-start-0nJ-6UeA.js} +2 -2
  419. package/server/{work-agent-start-Ct1HVh6z.js → work-agent-start-D8NEN5KD.js} +1 -1
  420. package/server/workflows-BtHRlFIm.js +2 -0
  421. package/server/{workflows-AgFul1xc.js → workflows-C7mxM1qc.js} +28 -28
  422. package/server/{workspace-Cy4sDd3q.js → workspace-BAhMgMaO.js} +3 -3
  423. package/server/{workspace-Cu3XlMXt.js → workspace-Dbqv9ehn.js} +1 -1
  424. package/server/{workspace-anchor-drift-CMaqvizr.js → workspace-anchor-drift-B_3kyyxJ.js} +4 -4
  425. package/server/{workspace-anchor-drift-BI0Hz6zI.js → workspace-anchor-drift-Bpa3xoni.js} +1 -1
  426. package/server/{workspace-config-DRYDO7Zr.js → workspace-config-D-bNq2CF.js} +1 -1
  427. package/server/{workspace-manager-jfkKAEuO.js → workspace-manager-BrbX90Rm.js} +1 -1
  428. package/server/{workspace-manager-CgovxDrO.js → workspace-manager-CM8RCrSc.js} +16 -16
  429. package/server/{workspace-metadata-BDqXzGGK.js → workspace-metadata-BEOwJSdK.js} +1 -1
  430. package/server/{workspace-metadata-BNzODIv6.js → workspace-metadata-Cu6yfxBS.js} +2 -2
  431. package/server/{workspaces-BJdPqx_J.js → workspaces-C7LAuZfe.js} +123 -696
  432. package/sync-sources/rules/agent-message-delivery.md +21 -14
  433. package/sync-sources/rules/pan-handoff-focus-limit.md +3 -1
  434. package/sync-sources/skills/pan-gauntlet-loop/SKILL.md +94 -46
  435. package/sync-sources/skills/pan-handoff/SKILL.md +13 -2
  436. package/server/archive-planning-BW4MKNI7.js +0 -2
  437. package/server/build-info-Bj2vQEMh.js +0 -2
  438. package/server/cli-BRuzUT_I.js +0 -2
  439. package/server/dead-end-trip-6V_CwveT.js +0 -2
  440. package/server/deploy-queue-CjLErpgw.js +0 -2
  441. package/server/dist-fCA6y2bH.js +0 -3
  442. package/server/forge-bvak6vXJ.js +0 -2
  443. package/server/hume-TYTb6fDU.js +0 -3
  444. package/server/inspect-agent-JFEaYTRa.js +0 -2
  445. package/server/merge-ops-DabXHp2i.js +0 -2
  446. package/server/merge-rebase-CXq0qsgR.js +0 -2
  447. package/server/public/assets/index-2wV4ipy_.css +0 -1
  448. package/server/public/assets/mermaid-GHXKKRXX-Bjto8iJh.js +0 -1
  449. package/server/pull-requests-jVGcVq5G.js +0 -2
  450. package/server/rally-CxhVgIQ6.js +0 -3
  451. package/server/settings-DhtPDmmI.js +0 -2
  452. package/server/specs-IYsFlM-L.js +0 -3
  453. package/server/supervisor-v0cYN2Vp.js +0 -2
  454. package/server/workflows-CfHm8lVd.js +0 -2
  455. package/sync-sources/skills/pan-gauntlet-loop/references/lessons.md +0 -60
@@ -414,7 +414,7 @@ var init_percent = __esmMin((() => {}));
414
414
  function apiLaunchModelIdSync(modelId) {
415
415
  return GPT56_LONG_CONTEXT_VARIANTS[modelId] ?? modelId;
416
416
  }
417
- var CLIPROXY_CODEX_CONTEXT_WINDOW, CLIPROXY_GPT56_CONTEXT_WINDOW, CLIPROXY_GPT56_LONG_CONTEXT_WINDOW, GPT56_LONG_CONTEXT_VARIANTS;
417
+ var CLIPROXY_CODEX_CONTEXT_WINDOW, CLIPROXY_GPT56_CONTEXT_WINDOW, CLIPROXY_GPT56_LONG_CONTEXT_WINDOW, GPT56_LONG_CONTEXT_VARIANTS, OPENROUTER_MODEL_CONTEXT_WINDOWS;
418
418
  var init_model_context_windows = __esmMin((() => {
419
419
  CLIPROXY_CODEX_CONTEXT_WINDOW = 15e4;
420
420
  CLIPROXY_GPT56_CONTEXT_WINDOW = 272e3;
@@ -424,6 +424,7 @@ var init_model_context_windows = __esmMin((() => {
424
424
  "gpt-5.6-terra[372k]": "gpt-5.6-terra",
425
425
  "gpt-5.6-luna[372k]": "gpt-5.6-luna"
426
426
  };
427
+ OPENROUTER_MODEL_CONTEXT_WINDOWS = { "stealth/ox-alpha": 1048576 };
427
428
  }));
428
429
  //#endregion
429
430
  //#region ../../lib/model-capabilities.ts
@@ -2977,7 +2978,7 @@ var init_providers = __esmMin((() => {
2977
2978
  displayName: "OpenRouter",
2978
2979
  compatibility: "direct",
2979
2980
  defaultHarness: "ohmypi",
2980
- baseUrl: "https://openrouter.ai/api/v1",
2981
+ baseUrl: "https://openrouter.ai/api",
2981
2982
  authType: "static",
2982
2983
  models: [],
2983
2984
  tested: true,
@@ -12923,7 +12924,7 @@ var init_defaults = __esmMin((() => {
12923
12924
  }
12924
12925
  },
12925
12926
  conversationSearch: {
12926
- enabled: false,
12927
+ enabled: true,
12927
12928
  provider: "openai",
12928
12929
  model: "text-embedding-3-small",
12929
12930
  apiKeyRef: void 0,
@@ -13006,7 +13007,9 @@ var init_defaults = __esmMin((() => {
13006
13007
  governorFootprintDefaultTestGb: 1,
13007
13008
  governorSwapSoftFreePercent: 25,
13008
13009
  governorSwapRecoveryFreePercent: 50,
13009
- governorPsiFullShedAvg10: 1
13010
+ governorPsiFullShedAvg10: 1,
13011
+ governorPsiCalmReadmitAvg10: .05,
13012
+ governorPsiCalmWindowMs: 6e5
13010
13013
  },
13011
13014
  issues: { closedWindowDays: 14 },
13012
13015
  telemetry: { enabled: true },
@@ -13263,6 +13266,12 @@ function degradeInvalidTieredExecution(result, err) {
13263
13266
  enabled: false
13264
13267
  };
13265
13268
  }
13269
+ function warnInvalidClaudePermissionMode(raw, effective) {
13270
+ const shown = typeof raw === "string" ? raw : JSON.stringify(raw);
13271
+ if (warnedInvalidClaudePermissionModes.has(String(shown))) return;
13272
+ warnedInvalidClaudePermissionModes.add(String(shown));
13273
+ console.error(`[config] claude.permissionMode "${shown}" is not a valid value — valid values are 'auto' (Claude Code runs with --permission-mode default; needs the auto-approve hooks) and 'bypass' (--permission-mode bypassPermissions; no prompts). Ignoring it and using "${effective}".`);
13274
+ }
13266
13275
  function mergeConfigs(...configs) {
13267
13276
  const result = {
13268
13277
  ...DEFAULT_CONFIG,
@@ -13340,7 +13349,9 @@ function mergeConfigs(...configs) {
13340
13349
  governorFootprintDefaultTestGb: DEFAULT_CONFIG.resources.governorFootprintDefaultTestGb,
13341
13350
  governorSwapSoftFreePercent: DEFAULT_CONFIG.resources.governorSwapSoftFreePercent,
13342
13351
  governorSwapRecoveryFreePercent: DEFAULT_CONFIG.resources.governorSwapRecoveryFreePercent,
13343
- governorPsiFullShedAvg10: DEFAULT_CONFIG.resources.governorPsiFullShedAvg10
13352
+ governorPsiFullShedAvg10: DEFAULT_CONFIG.resources.governorPsiFullShedAvg10,
13353
+ governorPsiCalmReadmitAvg10: DEFAULT_CONFIG.resources.governorPsiCalmReadmitAvg10,
13354
+ governorPsiCalmWindowMs: DEFAULT_CONFIG.resources.governorPsiCalmWindowMs
13344
13355
  },
13345
13356
  issues: { closedWindowDays: DEFAULT_CONFIG.issues.closedWindowDays },
13346
13357
  telemetry: { enabled: DEFAULT_CONFIG.telemetry.enabled },
@@ -13590,6 +13601,8 @@ function mergeConfigs(...configs) {
13590
13601
  if (typeof config.resources.governor_swap_soft_free_percent === "number") result.resources.governorSwapSoftFreePercent = config.resources.governor_swap_soft_free_percent;
13591
13602
  if (typeof config.resources.governor_swap_recovery_free_percent === "number") result.resources.governorSwapRecoveryFreePercent = config.resources.governor_swap_recovery_free_percent;
13592
13603
  if (typeof config.resources.governor_psi_full_shed_avg10 === "number") result.resources.governorPsiFullShedAvg10 = config.resources.governor_psi_full_shed_avg10;
13604
+ if (typeof config.resources.governor_psi_calm_readmit_avg10 === "number" && Number.isFinite(config.resources.governor_psi_calm_readmit_avg10) && config.resources.governor_psi_calm_readmit_avg10 >= 0) result.resources.governorPsiCalmReadmitAvg10 = config.resources.governor_psi_calm_readmit_avg10;
13605
+ if (typeof config.resources.governor_psi_calm_window_ms === "number" && Number.isFinite(config.resources.governor_psi_calm_window_ms) && config.resources.governor_psi_calm_window_ms > 0) result.resources.governorPsiCalmWindowMs = config.resources.governor_psi_calm_window_ms;
13593
13606
  if (result.resources.governorRecoveryReserveGb <= result.resources.governorSoftReserveGb) result.resources.governorRecoveryReserveGb = result.resources.governorSoftReserveGb + 1;
13594
13607
  if (result.resources.governorWatchReserveGb <= result.resources.governorSoftReserveGb) result.resources.governorWatchReserveGb = result.resources.governorSoftReserveGb + 1;
13595
13608
  if (result.resources.governorSwapRecoveryFreePercent <= result.resources.governorSwapSoftFreePercent) result.resources.governorSwapRecoveryFreePercent = Math.min(result.resources.governorSwapSoftFreePercent + 10, 100);
@@ -13616,7 +13629,8 @@ function mergeConfigs(...configs) {
13616
13629
  if (typeof config.experimental.streamdownRenderer === "boolean") result.experimental.streamdownRenderer = config.experimental.streamdownRenderer;
13617
13630
  if (typeof config.experimental.showHarnessModelPermutations === "boolean") result.experimental.showHarnessModelPermutations = config.experimental.showHarnessModelPermutations;
13618
13631
  }
13619
- if (config.claude && (config.claude.permissionMode === "auto" || config.claude.permissionMode === "bypass")) result.claude.permissionMode = config.claude.permissionMode;
13632
+ if (config.claude?.permissionMode !== void 0) if (config.claude.permissionMode === "auto" || config.claude.permissionMode === "bypass") result.claude.permissionMode = config.claude.permissionMode;
13633
+ else warnInvalidClaudePermissionMode(config.claude.permissionMode, result.claude.permissionMode);
13620
13634
  if (config.codex && (config.codex.permissionMode === "read-only" || config.codex.permissionMode === "workspace" || config.codex.permissionMode === "auto-review" || config.codex.permissionMode === "full-access")) result.codex.permissionMode = config.codex.permissionMode;
13621
13635
  if (config.codex && (config.codex.transport === "app-server" || config.codex.transport === "tui")) result.codex.transport = config.codex.transport;
13622
13636
  if (config.acp?.permissionMode === "auto") result.acp.permissionMode = config.acp.permissionMode;
@@ -13646,7 +13660,7 @@ function mergeConfigs(...configs) {
13646
13660
  explicitlyDisabled
13647
13661
  };
13648
13662
  }
13649
- var lastTieredInvalidReasonWarned;
13663
+ var lastTieredInvalidReasonWarned, warnedInvalidClaudePermissionModes;
13650
13664
  var init_merge = __esmMin((() => {
13651
13665
  init_model_capabilities();
13652
13666
  init_registry();
@@ -13655,6 +13669,7 @@ var init_merge = __esmMin((() => {
13655
13669
  init_roles();
13656
13670
  init_domain_mergers();
13657
13671
  init_schema();
13672
+ warnedInvalidClaudePermissionModes = /* @__PURE__ */ new Set();
13658
13673
  }));
13659
13674
  //#endregion
13660
13675
  //#region ../../../node_modules/.bun/js-yaml@4.1.1/node_modules/js-yaml/dist/js-yaml.mjs
@@ -16135,6 +16150,6 @@ var init_config_yaml = __esmMin((() => {
16135
16150
  init_load();
16136
16151
  }));
16137
16152
  //#endregion
16138
- export { readIssueRecord as $, updateProjectsConfigText as $n, GitHubApiError as $r, findProjectByPathSync as $t, validateTieredExecutionConfig as A, getCanonicalOverdeckHome as Ai, resolveProjectKeyForCwdAsync as An, MODEL_DEPRECATIONS as Ar, STATE_PLANE_PATHS as At, clearIssueOwner as B, isDevMode as Bi, unregisterProject as Bn, apiLaunchModelIdSync as Br, init_state_migration_lock as Bt, DEFAULT_TIERED_EXECUTION_CONFIG as C, PROJECT_PRDS_SUBDIR as Ci, registerProjectSync as Cn, DEFAULT_ROLES as Cr, flushAllPendingAutoCommits as Ct, resolveTieredExecutionBlock as D, activeDeploymentRepoRoot as Di, resolveProjectFromIssue as Dn, init_roles as Dr, queueAutoCommit as Dt, init_tier_table as E, TRAEFIK_DIR as Ei, resolveInfraRepo as En, derefWorkhorse as Er, pushPendingStateCommits as Et, appendSessionEntry as F, getHandoffsDir as Fi, setProjectAutoMergeDefaultSync as Fn, modelSupportsImagesSync as Fr, isOverdeckWorkspaceRuntimePath as Ft, getIssueRecordPath as G, extractNumberSync as Gn, COMPLIANCE_MODES as Gr, shouldCommitLegacyWorkspaceArtifacts as Gt, ensureIssueRecord as H, resolveOhmypiExtensionPath as Hi, validateVersionSyncConfig as Hn, fmix32 as Hr, init_state_read_home as Ht, appendSessionEntrySync as I, getLegacyHome as Ii, setProjectMergeTrain as In, resolveModelIdSync as Ir, isStatePlaneOnlyStatus as It, getProjectConfigFromWorkspacePath as J, normalizeIssueIdSync as Jn, CheckpointError as Jr, PROJECTS_CONFIG_FILE as Jt, getIssueRecordPathForWorkspace as K, extractPrefixSync as Kn, PARENT_MODEL_REF as Kr, init_project_key as Kt, batchReadIssueRecords as L, getOverdeckHome as Li, setProjectMergeTrainSync as Ln, CLIPROXY_GPT56_CONTEXT_WINDOW as Lr, isStatePlanePath as Lt, RECORD_SCHEMA_VERSION as M, getDocsDisableStatePath as Mi, saveProjectsConfig as Mn, getModelEffortLevelsSync as Mr, init_state_plane as Mt, appendFeedbackEntry as N, getDocsIndexPath as Ni, saveProjectsConfigSync as Nn, hasModelCapabilitySync as Nr, isGeneratedGitHookPath as Nt, resolveTieredExecutionEnabled as O, claudeSessionTranscriptExists as Oi, resolveProjectFromIssueSync as On, resolveModel as Or, reconcileStatePlaneDrift as Ot, appendFeedbackEntrySync as P, getDocsTelemetryPath as Pi, setProjectAutoMergeDefault as Pn, init_model_capabilities as Pr, isOverdeckOwnedOnlyStatus as Pt, queueIssueRecordCommit as Q, init_projects_config_write as Qn, GitError as Qr, findProjectByPath as Qt, buildOwnUri as R, init_paths as Ri, setProjectSwarmPolicy as Rn, CLIPROXY_GPT56_LONG_CONTEXT_WINDOW as Rr, parsePorcelainStatusPaths as Rt, init_defaults as S, PROJECT_PRDS_PLANNED_SUBDIR as Si, registerProject as Sn, init_registry as Sr, deriveProjectRoot as St, TieredExecutionConfigError as T, SYNC_SOURCES as Ti, renameProjectSync as Tn, computeModelOrigin as Tr, init_auto_commit as Tt, ensureIssueRecordSync as U, sessionFilePath as Ui, init_projects_cache_events as Un, fnv1a32 as Ur, resolveStateReadHomeAsync as Ut, clearRecordFeedbackSync as V, packageRoot as Vi, unregisterProjectSync as Vn, init_model_context_windows as Vr, STATE_BRANCH as Vt, getIssueRecordBasePath as W, subscribeProjectsConfigInvalidation as Wn, init_percent as Wr, resolveStateReadHomeSync as Wt, markRecordPipelineClosedOutSync as X, resolveBareNumericIdSync as Xn, ConfigError as Xr, createDefaultProjectsConfig as Xt, init_record as Y, parseIssueIdSync as Yn, ClaudeCredentialParseError as Yr, ProjectRenameError as Yt, markRecordPipelineResidueClosedOutSync as Z, resolveIssueIdSync as Zn, FsError as Zr, extractTeamPrefix as Zt, mergeConfigs as _, LOGS_DIR as _i, listProjectsAsync as _n, setupCredentialFileAuthSync as _r, writeRecordTieredExecutionOverride as _t, getConversationsConfigSync as a, TmuxError as ai, getProjectSwarmHotspots as an, KIMI_PLATFORM_BASE_URL as ar, writeAgentHarnessModelSync as at, mergeTtsDaemonConfigs as b, PROJECT_PRDS_ACTIVE_SUBDIR as bi, loadProjectsConfigSync as bn, init_openai_compatible_proxy as br, writeStatusOverrideSync as bt, init_load as c, init_errors as ci, getSpecialistPromptOverride as cn, clearCredentialFileAuthSync as cr, writeIssueRecordForWorkspaceSync as ct, isTldrEnabledSync as d, BIN_DIR as di, hasProjectsSync as dn, getProviderEnvSync as dr, writeRecordDecisionsSync as dt, InvalidAgentIdError as ei, findProjectByTeam as en, require_dist as er, readIssueRecordForWorkspaceSync as et, loadConfigNoMigration as f, CACHE_AGENTS_DIR as fi, init_projects as fn, getProviderForModelSync as fr, writeRecordHazards as ft, jsYaml as g, COSTS_DIR as gi, listProjects as gn, resolveKimiCodeModelAlias as gr, writeRecordScopeDriftSync as gt, init_js_yaml as h, CONFIG_FILE as hi, invalidateProjectsConfigCache as hn, qualifyPiModel as hr, writeRecordResumePointSync as ht, getConversationsConfig as i, ProcessSpawnError as ii, getProject as in, KIMI_CODING_BASE_URL as ir, writeAgentHarnessModel as it, RECORD_DIRNAME as j, getDocsBudgetStatePath as ji, resolveProjectPath as jn, getModelCapabilitySync as jr, getMainDivergence as jt, resolveTieredExecutionEnabledForIssue as k, encodeClaudeProjectDir as ki, resolveProjectKeyForCwd as kn, MODEL_CAPABILITIES as kr, STATE_BRANCH_PATHS as kt, isClaudeCodeChannelsEnabled as l, AGENTS_DIR as li, getSpecialistRetention as ln, getBuiltInDefaultHarness as lr, writeIssueRecordSync as lt, updateConversationsConfig as m, CLAUDE_DIR as mi, initializeProjectsConfigSync as mn, piProviderForModel as mr, writeRecordResumePoint as mt, clearConfigCache as n, MergeConflictError as ni, findProjectsByRallyProject as nn, canUseModelWithAuthSync as nr, readRecordContinueViewSync as nt, getGlobalConfigPath as o, TrackerError as oi, getProjectSync as on, PROVIDERS as or, writeCloseOutDodGate as ot, loadConfigSync as p, CACHE_RULES_DIR as pi, initializeProjectsConfig as pn, init_providers as pr, writeRecordHazardsSync as pt, getIssueWorkspacePath as q, init_issue_id as qn, ROLE_EFFORTS as qr, projectKey as qt, getConversationSearchConfigSync as r, MessageDeliveryFailed as ri, getIssuePrefix as rn, init_harness_policy as rr, resolveProjectForIssue as rt, getOpenInEditorCommand as s, VcsError as si, getSpecialistConfig as sn, UnknownModelError as sr, writeCloseOutDodGateSync as st, init_config_yaml as t, LinearApiError as ti, findProjectByTeamSync as tn, canUseHarnessSync as tr, readIssueRecordSync as tt, isClaudeCodeChannelsMcpEnabled as u, ARCHIVES_DIR as ui, hasProjects as un, getKimiAnthropicBaseUrl as ur, writeRecordDecisions as ut, getDefaultDocsConfig as v, OVERDECK_HOME as vi, listProjectsSync as vn, ensureOpenAICompatibleProxyRunning as vr, writeRecordTieredExecutionOverrideSync as vt, TIERED_EXECUTION_DIFFICULTIES as w, SKILLS_DIR as wi, renameProject as wn, DEFAULT_WORKHORSES as wr, flushAutoCommits as wt, DEFAULT_CONFIG as x, PROJECT_PRDS_COMPLETED_SUBDIR as xi, projects_exports as xn, defaultBackgroundAiFeatures as xr, writeStatusOverridesSync as xt, getDefaultTtsDaemonConfig as y, PROJECT_DOCS_SUBDIR as yi, loadProjectsConfig as yn, getDashScopeUpstreamBaseUrl as yr, writeStatusOverride as yt, claimIssueOwner as z, isDeploymentGenerationRoot as zi, setProjectSwarmPolicySync as zn, GPT56_LONG_CONTEXT_VARIANTS as zr, acquireStateMigrationLock as zt };
16153
+ export { readIssueRecord as $, updateProjectsConfigText as $n, GitError as $r, findProjectByPathSync as $t, validateTieredExecutionConfig as A, encodeClaudeProjectDir as Ai, resolveProjectKeyForCwdAsync as An, MODEL_DEPRECATIONS as Ar, STATE_PLANE_PATHS as At, clearIssueOwner as B, isDeploymentGenerationRoot as Bi, unregisterProject as Bn, OPENROUTER_MODEL_CONTEXT_WINDOWS as Br, init_state_migration_lock as Bt, DEFAULT_TIERED_EXECUTION_CONFIG as C, PROJECT_PRDS_PLANNED_SUBDIR as Ci, registerProjectSync as Cn, DEFAULT_ROLES as Cr, flushAllPendingAutoCommits as Ct, resolveTieredExecutionBlock as D, TRAEFIK_DIR as Di, resolveProjectFromIssue as Dn, init_roles as Dr, queueAutoCommit as Dt, init_tier_table as E, SYNC_SOURCES as Ei, resolveInfraRepo as En, derefWorkhorse as Er, pushPendingStateCommits as Et, appendSessionEntry as F, getDocsTelemetryPath as Fi, setProjectAutoMergeDefaultSync as Fn, modelSupportsImagesSync as Fr, isOverdeckWorkspaceRuntimePath as Ft, getIssueRecordPath as G, extractNumberSync as Gn, init_percent as Gr, shouldCommitLegacyWorkspaceArtifacts as Gt, ensureIssueRecord as H, packageRoot as Hi, validateVersionSyncConfig as Hn, init_model_context_windows as Hr, init_state_read_home as Ht, appendSessionEntrySync as I, getHandoffsDir as Ii, setProjectMergeTrain as In, resolveModelIdSync as Ir, isStatePlaneOnlyStatus as It, getProjectConfigFromWorkspacePath as J, normalizeIssueIdSync as Jn, ROLE_EFFORTS as Jr, PROJECTS_CONFIG_FILE as Jt, getIssueRecordPathForWorkspace as K, extractPrefixSync as Kn, COMPLIANCE_MODES as Kr, init_project_key as Kt, batchReadIssueRecords as L, getLegacyHome as Li, setProjectMergeTrainSync as Ln, CLIPROXY_GPT56_CONTEXT_WINDOW as Lr, isStatePlanePath as Lt, RECORD_SCHEMA_VERSION as M, getDocsBudgetStatePath as Mi, saveProjectsConfig as Mn, getModelEffortLevelsSync as Mr, init_state_plane as Mt, appendFeedbackEntry as N, getDocsDisableStatePath as Ni, saveProjectsConfigSync as Nn, hasModelCapabilitySync as Nr, isGeneratedGitHookPath as Nt, resolveTieredExecutionEnabled as O, activeDeploymentRepoRoot as Oi, resolveProjectFromIssueSync as On, resolveModel as Or, reconcileStatePlaneDrift as Ot, appendFeedbackEntrySync as P, getDocsIndexPath as Pi, setProjectAutoMergeDefault as Pn, init_model_capabilities as Pr, isOverdeckOwnedOnlyStatus as Pt, queueIssueRecordCommit as Q, init_projects_config_write as Qn, FsError as Qr, findProjectByPath as Qt, buildOwnUri as R, getOverdeckHome as Ri, setProjectSwarmPolicy as Rn, CLIPROXY_GPT56_LONG_CONTEXT_WINDOW as Rr, parsePorcelainStatusPaths as Rt, init_defaults as S, PROJECT_PRDS_COMPLETED_SUBDIR as Si, registerProject as Sn, init_registry as Sr, deriveProjectRoot as St, TieredExecutionConfigError as T, SKILLS_DIR as Ti, renameProjectSync as Tn, computeModelOrigin as Tr, init_auto_commit as Tt, ensureIssueRecordSync as U, resolveOhmypiExtensionPath as Ui, init_projects_cache_events as Un, fmix32 as Ur, resolveStateReadHomeAsync as Ut, clearRecordFeedbackSync as V, isDevMode as Vi, unregisterProjectSync as Vn, apiLaunchModelIdSync as Vr, STATE_BRANCH as Vt, getIssueRecordBasePath as W, sessionFilePath as Wi, subscribeProjectsConfigInvalidation as Wn, fnv1a32 as Wr, resolveStateReadHomeSync as Wt, markRecordPipelineClosedOutSync as X, resolveBareNumericIdSync as Xn, ClaudeCredentialParseError as Xr, createDefaultProjectsConfig as Xt, init_record as Y, parseIssueIdSync as Yn, CheckpointError as Yr, ProjectRenameError as Yt, markRecordPipelineResidueClosedOutSync as Z, resolveIssueIdSync as Zn, ConfigError as Zr, extractTeamPrefix as Zt, mergeConfigs as _, COSTS_DIR as _i, listProjectsAsync as _n, setupCredentialFileAuthSync as _r, writeRecordTieredExecutionOverride as _t, getConversationsConfigSync as a, ProcessSpawnError as ai, getProjectSwarmHotspots as an, KIMI_PLATFORM_BASE_URL as ar, writeAgentHarnessModelSync as at, mergeTtsDaemonConfigs as b, PROJECT_DOCS_SUBDIR as bi, loadProjectsConfigSync as bn, init_openai_compatible_proxy as br, writeStatusOverrideSync as bt, init_load as c, VcsError as ci, getSpecialistPromptOverride as cn, clearCredentialFileAuthSync as cr, writeIssueRecordForWorkspaceSync as ct, isTldrEnabledSync as d, ARCHIVES_DIR as di, hasProjectsSync as dn, getProviderEnvSync as dr, writeRecordDecisionsSync as dt, GitHubApiError as ei, findProjectByTeam as en, require_dist as er, readIssueRecordForWorkspaceSync as et, loadConfigNoMigration as f, BIN_DIR as fi, init_projects as fn, getProviderForModelSync as fr, writeRecordHazards as ft, jsYaml as g, CONFIG_FILE as gi, listProjects as gn, resolveKimiCodeModelAlias as gr, writeRecordScopeDriftSync as gt, init_js_yaml as h, CLAUDE_DIR as hi, invalidateProjectsConfigCache as hn, qualifyPiModel as hr, writeRecordResumePointSync as ht, getConversationsConfig as i, MessageDeliveryFailed as ii, getProject as in, KIMI_CODING_BASE_URL as ir, writeAgentHarnessModel as it, RECORD_DIRNAME as j, getCanonicalOverdeckHome as ji, resolveProjectPath as jn, getModelCapabilitySync as jr, getMainDivergence as jt, resolveTieredExecutionEnabledForIssue as k, claudeSessionTranscriptExists as ki, resolveProjectKeyForCwd as kn, MODEL_CAPABILITIES as kr, STATE_BRANCH_PATHS as kt, isClaudeCodeChannelsEnabled as l, init_errors as li, getSpecialistRetention as ln, getBuiltInDefaultHarness as lr, writeIssueRecordSync as lt, updateConversationsConfig as m, CACHE_RULES_DIR as mi, initializeProjectsConfigSync as mn, piProviderForModel as mr, writeRecordResumePoint as mt, clearConfigCache as n, LinearApiError as ni, findProjectsByRallyProject as nn, canUseModelWithAuthSync as nr, readRecordContinueViewSync as nt, getGlobalConfigPath as o, TmuxError as oi, getProjectSync as on, PROVIDERS as or, writeCloseOutDodGate as ot, loadConfigSync as p, CACHE_AGENTS_DIR as pi, initializeProjectsConfig as pn, init_providers as pr, writeRecordHazardsSync as pt, getIssueWorkspacePath as q, init_issue_id as qn, PARENT_MODEL_REF as qr, projectKey as qt, getConversationSearchConfigSync as r, MergeConflictError as ri, getIssuePrefix as rn, init_harness_policy as rr, resolveProjectForIssue as rt, getOpenInEditorCommand as s, TrackerError as si, getSpecialistConfig as sn, UnknownModelError as sr, writeCloseOutDodGateSync as st, init_config_yaml as t, InvalidAgentIdError as ti, findProjectByTeamSync as tn, canUseHarnessSync as tr, readIssueRecordSync as tt, isClaudeCodeChannelsMcpEnabled as u, AGENTS_DIR as ui, hasProjects as un, getKimiAnthropicBaseUrl as ur, writeRecordDecisions as ut, getDefaultDocsConfig as v, LOGS_DIR as vi, listProjectsSync as vn, ensureOpenAICompatibleProxyRunning as vr, writeRecordTieredExecutionOverrideSync as vt, TIERED_EXECUTION_DIFFICULTIES as w, PROJECT_PRDS_SUBDIR as wi, renameProject as wn, DEFAULT_WORKHORSES as wr, flushAutoCommits as wt, DEFAULT_CONFIG as x, PROJECT_PRDS_ACTIVE_SUBDIR as xi, projects_exports as xn, defaultBackgroundAiFeatures as xr, writeStatusOverridesSync as xt, getDefaultTtsDaemonConfig as y, OVERDECK_HOME as yi, loadProjectsConfig as yn, getDashScopeUpstreamBaseUrl as yr, writeStatusOverride as yt, claimIssueOwner as z, init_paths as zi, setProjectSwarmPolicySync as zn, GPT56_LONG_CONTEXT_VARIANTS as zr, acquireStateMigrationLock as zt };
16139
16154
 
16140
- //# sourceMappingURL=config-yaml-D9nfpEx1.js.map
16155
+ //# sourceMappingURL=config-yaml-D60AnTIu.js.map
@@ -1,2 +1,2 @@
1
- import { o as resolveConflictGate, t as buildRealConflictGateDeps } from "./conflict-gate-DcUTY4Gb.js";
1
+ import { o as resolveConflictGate, t as buildRealConflictGateDeps } from "./conflict-gate-hAUCL-un.js";
2
2
  export { buildRealConflictGateDeps, resolveConflictGate };
@@ -1,6 +1,6 @@
1
- import { l as init_activity_logger, o as emitActivityEntrySync } from "./activity-logger-BWZhVphb.js";
2
- import { Ht as init_messaging, Ut as messageAgent, an as init_spawn, sn as spawnRun } from "./agent-state-BJhGIJZe.js";
3
- import { d as getReviewStatusSync, p as init_review_status, w as setReviewStatusSync } from "./review-status-yOGD2MuK.js";
1
+ import { l as init_activity_logger, o as emitActivityEntrySync } from "./activity-logger-SlTXYCVf.js";
2
+ import { Ht as init_messaging, Ut as messageAgent, an as init_spawn, sn as spawnRun } from "./agent-state-FABw8neJ.js";
3
+ import { d as getReviewStatusSync, p as init_review_status, w as setReviewStatusSync } from "./review-status-DpniqzPT.js";
4
4
  import { exec } from "node:child_process";
5
5
  import { promisify } from "node:util";
6
6
  //#region ../../lib/cloister/conflict-gate.ts
@@ -229,7 +229,7 @@ function buildConflictResolverPrompt(input) {
229
229
  "",
230
230
  "Resolve the conflict WITHOUT degrading either side of the change:",
231
231
  `1. Read what origin/${input.targetBranch} changed and what ${input.issueId} intended before editing.`,
232
- `2. Rebase this branch onto origin/${input.targetBranch} and resolve every conflict so BOTH intents are preserved.`,
232
+ `2. Run pan sync-main ${input.issueId} to merge origin/${input.targetBranch} through the repository-approved sync path, then resolve every conflict so BOTH intents are preserved.`,
233
233
  "3. Build, run the relevant tests, and commit the resolved state.",
234
234
  "4. Re-request review when the branch is clean (use pan done or pan review request as appropriate for this workspace).",
235
235
  "",
@@ -270,4 +270,4 @@ function shellQuote(value) {
270
270
  //#endregion
271
271
  export { probeBranchConflictPaths as a, parseMergeTreeNameOnly as i, checkBranchMergeability as n, resolveConflictGate as o, getCachedConflictGateMergeability as r, buildRealConflictGateDeps as t };
272
272
 
273
- //# sourceMappingURL=conflict-gate-DcUTY4Gb.js.map
273
+ //# sourceMappingURL=conflict-gate-hAUCL-un.js.map
@@ -1,6 +1,6 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Ri as init_paths, ci as init_errors } from "./config-yaml-D9nfpEx1.js";
3
- import { D as init_layers, l as init_render, p as init_rules, r as init_assemble } from "./assemble-CyvEBmmq.js";
2
+ import { li as init_errors, zi as init_paths } from "./config-yaml-D60AnTIu.js";
3
+ import { D as init_layers, l as init_render, p as init_rules, r as init_assemble } from "./assemble-B_JgnCbG.js";
4
4
  import "effect";
5
5
  import "fs";
6
6
  import "path";
@@ -34,4 +34,4 @@ var init_context_layers = __esmMin((() => {
34
34
  //#endregion
35
35
  export { init_context_layers as t };
36
36
 
37
- //# sourceMappingURL=context-layers-BBTKP-Y4.js.map
37
+ //# sourceMappingURL=context-layers-CdpabJj0.js.map
@@ -1,4 +1,4 @@
1
- import { A as piGlobalContextFile, C as codexGlobalContextFile } from "./assemble-CyvEBmmq.js";
2
- import { t as init_context_layers } from "./context-layers-BBTKP-Y4.js";
1
+ import { A as piGlobalContextFile, C as codexGlobalContextFile } from "./assemble-B_JgnCbG.js";
2
+ import { t as init_context_layers } from "./context-layers-CdpabJj0.js";
3
3
  init_context_layers();
4
4
  export { codexGlobalContextFile, piGlobalContextFile };
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Zr as FsError, ci as init_errors } from "./config-yaml-D9nfpEx1.js";
2
+ import { Qr as FsError, li as init_errors } from "./config-yaml-D60AnTIu.js";
3
3
  import { c as PAN_SESSIONS_FILENAME, f as WORKSPACE_RUNTIME_DIRNAME, i as PAN_CONTINUE_FILENAME, m as init_types, n as PAN_CONTEXT_FILENAME, s as PAN_FEEDBACK_DIRNAME, t as LEGACY_WORKSPACE_RUNTIME_DIRNAME, u as PAN_SPEC_FILENAME } from "./types-pLpbsNto.js";
4
4
  import { Effect, FileSystem } from "effect";
5
5
  import { join } from "path";
@@ -60,4 +60,4 @@ var init_continue = __esmMin((() => {
60
60
  //#endregion
61
61
  export { init_continue as a, getWorkspacePanPaths as i, getLegacyWorkspacePanPaths as n, getReadableWorkspacePanPaths as r, ensureWorkspacePanDir as t };
62
62
 
63
- //# sourceMappingURL=continue-i7Revg8D.js.map
63
+ //# sourceMappingURL=continue-CnvrUfxw.js.map
@@ -1,9 +1,312 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { bn as loadProjectsConfigSync, fn as init_projects, on as getProjectSync } from "./config-yaml-D9nfpEx1.js";
3
- import { _ as integer, a as EventBus, d as getOverdeckDatabaseSync, f as init_infra, h as text, m as sqliteTable, p as init_sqlite_core, r as Db, v as init_drizzle_orm, x as eq } from "./infra-CHIvOb9q.js";
4
- import { n as init_issues, t as IssueId } from "./issues-e_Ck1Ln2.js";
2
+ import { bn as loadProjectsConfigSync, fn as init_projects, li as init_errors, on as getProjectSync } from "./config-yaml-D60AnTIu.js";
3
+ import { _ as integer, a as EventBus, d as getOverdeckDatabaseSync, f as init_infra, h as text, m as sqliteTable, p as init_sqlite_core, r as Db, v as init_drizzle_orm, x as eq } from "./infra-CJRi_5Wu.js";
4
+ import { n as init_issues, t as IssueId } from "./issues-RGHQUKhB.js";
5
+ import { o as getPricingSync, s as init_cost } from "./cost-DTuIRE4y.js";
5
6
  import { Context, Effect, Layer, Schema } from "effect";
7
+ import { existsSync, readFileSync } from "fs";
6
8
  import { HttpApiEndpoint, HttpApiGroup } from "effect/unstable/httpapi";
9
+ //#region ../../lib/cost-parsers/ohmypi-parser.ts
10
+ /**
11
+ * oh-my-pi (omp) JSONL parser (PAN-1989). Forked from pi-parser.ts (PAN-636).
12
+ *
13
+ * omp sessions live at:
14
+ * ~/.omp/agent/sessions/<encoded-cwd>/<timestamp>_<session-id>.jsonl
15
+ *
16
+ * Format (omp v3 — same as Pi v3):
17
+ * - First line: { type: "session", version: 3, id, timestamp, cwd }
18
+ * - Subsequent: every entry has an opaque `id` and a `parentId`. parentId
19
+ * is null for the first non-session entry.
20
+ * - The graph is a tree (omp supports forking/branching), not a list.
21
+ *
22
+ * To compute usage for the *active* branch we walk leaf -> root via parentId
23
+ * from the latest leaf (max timestamp among entries that have no children).
24
+ * omp assistant messages report per-call usage — input/output tokens are NOT
25
+ * cumulative across the conversation — so summing along the active branch is
26
+ * correct without subtracting pre-compaction input.
27
+ *
28
+ * SessionUsage shape comes from jsonl-parser.ts (the Claude Code parser); we
29
+ * map into it unchanged so all upstream consumers keep working.
30
+ */
31
+ function isMessage(entry) {
32
+ return entry.type === "message";
33
+ }
34
+ function isAssistantMessage(entry) {
35
+ return isMessage(entry) && entry.message?.role === "assistant";
36
+ }
37
+ function pricingProviderFor(provider, model) {
38
+ const lowerProvider = provider?.toLowerCase() ?? "";
39
+ const lowerModel = model.toLowerCase();
40
+ if (lowerProvider === "openai" || lowerProvider === "openai-codex" || lowerModel.includes("gpt")) return "openai";
41
+ if (lowerProvider === "google" || lowerModel.includes("gemini")) return "google";
42
+ if (lowerProvider === "anthropic" || lowerModel.includes("claude")) return "anthropic";
43
+ if (lowerProvider === "kimi" || lowerProvider === "minimax" || lowerProvider === "zai" || lowerProvider === "zhipu" || lowerProvider === "custom" || lowerModel.includes("kimi") || lowerModel.includes("minimax") || lowerModel.includes("glm")) return "custom";
44
+ return null;
45
+ }
46
+ function computeCostFromPricing(provider, model, usage) {
47
+ const pricingProvider = pricingProviderFor(provider, model);
48
+ if (!pricingProvider) return {
49
+ cost: 0,
50
+ reason: "unknown-provider"
51
+ };
52
+ const pricing = getPricingSync(pricingProvider, model);
53
+ if (!pricing) return {
54
+ cost: 0,
55
+ reason: "unpriced-model"
56
+ };
57
+ return { cost: usage.inputTokens / 1e3 * pricing.inputPer1k + usage.outputTokens / 1e3 * pricing.outputPer1k + (usage.cacheReadTokens ?? 0) / 1e3 * (pricing.cacheReadPer1k ?? 0) + (usage.cacheWriteTokens ?? 0) / 1e3 * (pricing.cacheWrite5mPer1k ?? 0) };
58
+ }
59
+ function tsMs(timestamp) {
60
+ if (!timestamp) return 0;
61
+ const t = Date.parse(timestamp);
62
+ return Number.isFinite(t) ? t : 0;
63
+ }
64
+ /**
65
+ * Parse a Pi session JSONL file into a SessionUsage record.
66
+ *
67
+ * Returns null if the file does not exist, is empty, or is unparseable. Errors
68
+ * during line parsing are tolerated (the line is skipped); we never throw.
69
+ */
70
+ function parseOhmypiSessionSync(filePath) {
71
+ if (!existsSync(filePath)) return null;
72
+ const result = parseOhmypiSessionContent(readFileSync(filePath, "utf8"), filePath);
73
+ return result.ok ? result.usage : null;
74
+ }
75
+ function parseOhmypiSessionCostResultSync(filePath) {
76
+ if (!existsSync(filePath)) return {
77
+ ok: false,
78
+ reason: "unreadable"
79
+ };
80
+ try {
81
+ return parseOhmypiSessionContent(readFileSync(filePath, "utf8"), filePath);
82
+ } catch {
83
+ return {
84
+ ok: false,
85
+ reason: "unreadable"
86
+ };
87
+ }
88
+ }
89
+ /**
90
+ * Parse Pi session JSONL content. Exposed for tests and callers that already
91
+ * have the file content in memory.
92
+ */
93
+ function parseOhmypiSessionContent(content, filePath = "<inline>") {
94
+ const lines = content.split("\n").filter((l) => l.trim().length > 0);
95
+ if (lines.length === 0) return {
96
+ ok: false,
97
+ reason: "empty"
98
+ };
99
+ let root = null;
100
+ const entriesById = /* @__PURE__ */ new Map();
101
+ const childrenOf = /* @__PURE__ */ new Map();
102
+ const unknownTypesSeen = /* @__PURE__ */ new Set();
103
+ for (const line of lines) {
104
+ let parsed;
105
+ try {
106
+ parsed = JSON.parse(line);
107
+ } catch {
108
+ continue;
109
+ }
110
+ if (!parsed || typeof parsed !== "object") continue;
111
+ const entry = parsed;
112
+ if (entry.type === "session") {
113
+ root = entry;
114
+ continue;
115
+ }
116
+ if (!entry.id) continue;
117
+ if (!KNOWN_TYPES.has(entry.type)) {
118
+ if (!unknownTypesSeen.has(entry.type)) {
119
+ unknownTypesSeen.add(entry.type);
120
+ console.debug(`[ohmypi-parser] unknown entry type "${entry.type}" in ${filePath} — ignoring`);
121
+ }
122
+ }
123
+ entriesById.set(entry.id, entry);
124
+ const list = childrenOf.get(entry.parentId ?? null);
125
+ if (list) list.push(entry.id);
126
+ else childrenOf.set(entry.parentId ?? null, [entry.id]);
127
+ }
128
+ if (!root) return {
129
+ ok: false,
130
+ reason: "missing-session-root"
131
+ };
132
+ if (entriesById.size === 0) return {
133
+ ok: true,
134
+ usage: emptyUsage(filePath, root)
135
+ };
136
+ const leaves = [];
137
+ for (const entry of entriesById.values()) {
138
+ const kids = childrenOf.get(entry.id);
139
+ if (!kids || kids.length === 0) leaves.push(entry);
140
+ }
141
+ if (leaves.length === 0) leaves.push(...entriesById.values());
142
+ let latestLeaf = leaves[0];
143
+ for (const leaf of leaves) if (tsMs(leaf.timestamp) > tsMs(latestLeaf.timestamp)) latestLeaf = leaf;
144
+ const branch = [];
145
+ const visited = /* @__PURE__ */ new Set();
146
+ let cursor = latestLeaf;
147
+ while (cursor) {
148
+ if (visited.has(cursor.id)) break;
149
+ visited.add(cursor.id);
150
+ branch.push(cursor);
151
+ if (!cursor.parentId) break;
152
+ cursor = entriesById.get(cursor.parentId);
153
+ }
154
+ branch.reverse();
155
+ const totals = {
156
+ inputTokens: 0,
157
+ outputTokens: 0,
158
+ cacheReadTokens: 0,
159
+ cacheWriteTokens: 0
160
+ };
161
+ let costV2 = 0;
162
+ let messageCount = 0;
163
+ let costRecomputedFromTokens = 0;
164
+ const modelBreakdown = {};
165
+ const usageEvents = [];
166
+ const unpricedModels = [];
167
+ const modelsInOrder = [];
168
+ let compactionCount = 0;
169
+ let firstTs = null;
170
+ let lastTs = null;
171
+ for (const entry of branch) {
172
+ if (entry.type === "compaction_start" || entry.type === "session_compact") compactionCount += 1;
173
+ if (!firstTs && entry.timestamp) firstTs = entry.timestamp;
174
+ if (entry.timestamp) lastTs = entry.timestamp;
175
+ if (!isAssistantMessage(entry)) continue;
176
+ const usage = entry.message.usage;
177
+ if (!usage) continue;
178
+ const model = entry.message.model || "unknown";
179
+ const provider = typeof entry.message.provider === "string" ? entry.message.provider : null;
180
+ const input = usage.input ?? 0;
181
+ const output = usage.output ?? 0;
182
+ const cacheRead = usage.cacheRead ?? 0;
183
+ const cacheWrite = usage.cacheWrite ?? 0;
184
+ const tokenUsage = {
185
+ inputTokens: input,
186
+ outputTokens: output,
187
+ cacheReadTokens: cacheRead,
188
+ cacheWriteTokens: cacheWrite
189
+ };
190
+ const hasInlineCost = usage.cost?.total !== void 0;
191
+ let cost = usage.cost?.total ?? 0;
192
+ let warning;
193
+ if (!hasInlineCost && input + output + cacheRead + cacheWrite > 0) {
194
+ const computed = computeCostFromPricing(provider, model, tokenUsage);
195
+ cost = computed.cost;
196
+ if (computed.reason) {
197
+ unpricedModels.push({
198
+ provider,
199
+ model,
200
+ reason: computed.reason
201
+ });
202
+ warning = [{
203
+ type: "unpriced-model",
204
+ provider,
205
+ model,
206
+ reason: computed.reason
207
+ }];
208
+ }
209
+ }
210
+ const localComputed = hasInlineCost ? (usage.cost?.input ?? 0) + (usage.cost?.output ?? 0) + (usage.cost?.cacheRead ?? 0) + (usage.cost?.cacheWrite ?? 0) : cost;
211
+ totals.inputTokens += input;
212
+ totals.outputTokens += output;
213
+ totals.cacheReadTokens = (totals.cacheReadTokens ?? 0) + cacheRead;
214
+ totals.cacheWriteTokens = (totals.cacheWriteTokens ?? 0) + cacheWrite;
215
+ costV2 += cost;
216
+ costRecomputedFromTokens += localComputed;
217
+ messageCount += 1;
218
+ if (!modelBreakdown[model]) {
219
+ modelBreakdown[model] = {
220
+ cost: 0,
221
+ inputTokens: 0,
222
+ outputTokens: 0,
223
+ messageCount: 0,
224
+ cacheReadTokens: 0,
225
+ cacheWriteTokens: 0
226
+ };
227
+ modelsInOrder.push(model);
228
+ }
229
+ const slot = modelBreakdown[model];
230
+ slot.cost += cost;
231
+ slot.inputTokens += input;
232
+ slot.outputTokens += output;
233
+ slot.messageCount += 1;
234
+ slot.cacheReadTokens = (slot.cacheReadTokens ?? 0) + cacheRead;
235
+ slot.cacheWriteTokens = (slot.cacheWriteTokens ?? 0) + cacheWrite;
236
+ usageEvents.push({
237
+ requestId: `ohmypi:${root.id}:${entry.id}`,
238
+ timestamp: entry.timestamp || root.timestamp,
239
+ sessionId: root.id,
240
+ sessionFile: filePath,
241
+ provider,
242
+ model,
243
+ input,
244
+ output,
245
+ cacheRead,
246
+ cacheWrite,
247
+ cost,
248
+ ...warning ? { warnings: warning } : {}
249
+ });
250
+ }
251
+ if (Math.abs(costV2 - costRecomputedFromTokens) > 1e-9) console.debug(`[ohmypi-parser] inline cost vs sum-of-line-items delta=${(costV2 - costRecomputedFromTokens).toFixed(6)} in ${filePath}`);
252
+ if (compactionCount > 0) console.debug(`[ohmypi-parser] active branch in ${filePath} has ${compactionCount} compaction event(s) — usage summed per-message (no double-count)`);
253
+ const display = modelsInOrder.length === 0 ? "unknown" : modelsInOrder.length === 1 ? modelsInOrder[0] : modelsInOrder.join(" → ");
254
+ return {
255
+ ok: true,
256
+ usage: {
257
+ sessionId: root.id,
258
+ sessionFile: filePath,
259
+ startTime: firstTs ?? root.timestamp,
260
+ endTime: lastTs ?? root.timestamp,
261
+ model: display,
262
+ usage: totals,
263
+ cost: costV2,
264
+ cost_v2: costV2,
265
+ messageCount,
266
+ modelBreakdown
267
+ },
268
+ usageEvents,
269
+ unpricedModels
270
+ };
271
+ }
272
+ function emptyUsage(filePath, root) {
273
+ return {
274
+ sessionId: root.id,
275
+ sessionFile: filePath,
276
+ startTime: root.timestamp,
277
+ endTime: root.timestamp,
278
+ model: "unknown",
279
+ usage: {
280
+ inputTokens: 0,
281
+ outputTokens: 0,
282
+ cacheReadTokens: 0,
283
+ cacheWriteTokens: 0
284
+ },
285
+ cost: 0,
286
+ cost_v2: 0,
287
+ messageCount: 0,
288
+ modelBreakdown: {}
289
+ };
290
+ }
291
+ var KNOWN_TYPES;
292
+ var init_ohmypi_parser = __esmMin((() => {
293
+ init_cost();
294
+ init_errors();
295
+ KNOWN_TYPES = new Set([
296
+ "session",
297
+ "message",
298
+ "model_change",
299
+ "thinking_level_change",
300
+ "compaction_start",
301
+ "compaction_end",
302
+ "session_before_compact",
303
+ "session_compact",
304
+ "session_before_switch",
305
+ "session_before_fork",
306
+ "session_start"
307
+ ]);
308
+ }));
309
+ //#endregion
7
310
  //#region ../../lib/overdeck/control-settings.ts
8
311
  function mapProjectConfig(raw, key) {
9
312
  return {
@@ -438,6 +741,6 @@ var init_control_settings = __esmMin((() => {
438
741
  })).add(HttpApiEndpoint.get("listProjects", "/projects", { success: Schema.Array(ProjectConfig) }));
439
742
  }));
440
743
  //#endregion
441
- export { setFlywheelGloballyPaused as C, setSetting as D, setMergeTrainEnabled as E, stampBootReconciliation as O, setFlywheelAutoPickupBacklog as S, setLastCleanShutdownAt as T, setBootReconciliationGrace as _, getFlywheelActiveRunIdSync as a, setDeaconGloballyPausedSync as b, init_control_settings as c, isDeaconGloballyPausedSync as d, isFlywheelAutoPickupBacklog as f, setBootReconciliationDecision as g, isMergeTrainEnabled as h, getFlywheelActiveRunId as i, isCloisterSpawnsPausedSync as l, isFlywheelRequireUatBeforeMerge as m, FLYWHEEL_GLOBAL_PAUSE_KEY as n, getLastCleanShutdownAt as o, isFlywheelGloballyPaused as p, getBootReconciliationState as r, getSetting as s, FLYWHEEL_ACTIVE_RUN_ID_KEY as t, isDeaconGloballyPaused as u, setCloisterSpawnsPausedSync as v, setFlywheelRequireUatBeforeMerge as w, setFlywheelActiveRunId as x, setDeaconGloballyPaused as y };
744
+ export { parseOhmypiSessionCostResultSync as A, setFlywheelGloballyPaused as C, setSetting as D, setMergeTrainEnabled as E, stampBootReconciliation as O, setFlywheelAutoPickupBacklog as S, setLastCleanShutdownAt as T, setBootReconciliationGrace as _, getFlywheelActiveRunIdSync as a, setDeaconGloballyPausedSync as b, init_control_settings as c, isDeaconGloballyPausedSync as d, isFlywheelAutoPickupBacklog as f, setBootReconciliationDecision as g, isMergeTrainEnabled as h, getFlywheelActiveRunId as i, parseOhmypiSessionSync as j, init_ohmypi_parser as k, isCloisterSpawnsPausedSync as l, isFlywheelRequireUatBeforeMerge as m, FLYWHEEL_GLOBAL_PAUSE_KEY as n, getLastCleanShutdownAt as o, isFlywheelGloballyPaused as p, getBootReconciliationState as r, getSetting as s, FLYWHEEL_ACTIVE_RUN_ID_KEY as t, isDeaconGloballyPaused as u, setCloisterSpawnsPausedSync as v, setFlywheelRequireUatBeforeMerge as w, setFlywheelActiveRunId as x, setDeaconGloballyPaused as y };
442
745
 
443
- //# sourceMappingURL=control-settings-BMoDHY1G.js.map
746
+ //# sourceMappingURL=control-settings-Db0uXgVM.js.map
@@ -1,11 +1,11 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { p as loadConfigSync, t as init_config_yaml } from "./config-yaml-D9nfpEx1.js";
3
- import { a as init_event_store, n as getEventStore } from "./event-store-BCSgMubf.js";
4
- import { Br as getAgentRuntimeBaseCommand, q as init_agents, ui as getProviderExportsForModel } from "./agent-state-BJhGIJZe.js";
5
- import { n as isBackgroundFeatureEnabled, t as init_features } from "./features-BGntOWdy.js";
6
- import { t as init_conversation_service, u as findLastCompactBoundary } from "./conversation-service-tQCIbBVZ.js";
7
- import { r as init_smart_compaction, t as generateSmartSummary } from "./smart-compaction-D0TE1lBD.js";
8
- import { a as generateFallbackSummary, l as init_summary_fork } from "./summary-fork-BvcW6bq0.js";
2
+ import { p as loadConfigSync, t as init_config_yaml } from "./config-yaml-D60AnTIu.js";
3
+ import { a as init_event_store, n as getEventStore } from "./event-store-DTns2XZP.js";
4
+ import { Br as getAgentRuntimeBaseCommand, q as init_agents, ui as getProviderExportsForModel } from "./agent-state-FABw8neJ.js";
5
+ import { n as isBackgroundFeatureEnabled, t as init_features } from "./features-DXWwktJB.js";
6
+ import { t as init_conversation_service, u as findLastCompactBoundary } from "./conversation-service-BxIOd5ay.js";
7
+ import { r as init_smart_compaction, t as generateSmartSummary } from "./smart-compaction-D1CNGdZx.js";
8
+ import { a as generateFallbackSummary, l as init_summary_fork } from "./summary-fork-DhhaFhxZ.js";
9
9
  import { dirname, join } from "node:path";
10
10
  import { Effect } from "effect";
11
11
  import { existsSync } from "node:fs";
@@ -179,4 +179,4 @@ var init_conversation_compaction = __esmMin((() => {
179
179
  //#endregion
180
180
  export { init_conversation_compaction as a, shouldInterceptManualCompact as c, getConversationCompactionSettings as i, compactConversationNative as n, isCompacting as o, estimateContextTokens as r, maybeCompactBeforeRespawn as s, buildCompactionRuntimeInfo as t };
181
181
 
182
- //# sourceMappingURL=conversation-compaction-D4VOmF7p.js.map
182
+ //# sourceMappingURL=conversation-compaction-B-1KETG9.js.map
@@ -1,3 +1,3 @@
1
- import { a as init_conversation_compaction, c as shouldInterceptManualCompact, i as getConversationCompactionSettings, n as compactConversationNative, o as isCompacting, r as estimateContextTokens, s as maybeCompactBeforeRespawn, t as buildCompactionRuntimeInfo } from "./conversation-compaction-D4VOmF7p.js";
1
+ import { a as init_conversation_compaction, c as shouldInterceptManualCompact, i as getConversationCompactionSettings, n as compactConversationNative, o as isCompacting, r as estimateContextTokens, s as maybeCompactBeforeRespawn, t as buildCompactionRuntimeInfo } from "./conversation-compaction-B-1KETG9.js";
2
2
  init_conversation_compaction();
3
3
  export { buildCompactionRuntimeInfo, compactConversationNative, estimateContextTokens, getConversationCompactionSettings, isCompacting, maybeCompactBeforeRespawn, shouldInterceptManualCompact };
@@ -1,3 +1,3 @@
1
- import { i as computeContextUsage, t as init_conversation_service, u as findLastCompactBoundary } from "./conversation-service-tQCIbBVZ.js";
1
+ import { i as computeContextUsage, t as init_conversation_service, u as findLastCompactBoundary } from "./conversation-service-BxIOd5ay.js";
2
2
  init_conversation_service();
3
3
  export { computeContextUsage, findLastCompactBoundary };
@@ -1,9 +1,9 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Ir as resolveModelIdSync, Pr as init_model_capabilities, Ri as init_paths, kr as MODEL_CAPABILITIES } from "./config-yaml-D9nfpEx1.js";
3
- import { s as getHarnessBehavior } from "./src-CY2Wl8IX.js";
4
- import { o as getPricingSync, s as init_cost, t as calculateCostSync } from "./cost-CiIwxH1D.js";
5
- import { i as parseCodexSessionSync, n as init_codex_parser, t as init_behavior } from "./behavior-BiCQzqyT.js";
6
- import { r as summarizeKimiEntries, t as init_kimi_parser } from "./kimi-parser-B1lgy2Vt.js";
2
+ import { Ir as resolveModelIdSync, Pr as init_model_capabilities, kr as MODEL_CAPABILITIES, zi as init_paths } from "./config-yaml-D60AnTIu.js";
3
+ import { s as getHarnessBehavior } from "./src-CdwN6WY6.js";
4
+ import { o as getPricingSync, s as init_cost, t as calculateCostSync } from "./cost-DTuIRE4y.js";
5
+ import { i as parseCodexSessionSync, n as init_codex_parser, t as init_behavior } from "./behavior-DCg8CIWC.js";
6
+ import { r as summarizeKimiEntries, t as init_kimi_parser } from "./kimi-parser-OcWwmOqF.js";
7
7
  import "node:path";
8
8
  import "node:os";
9
9
  import { open, readFile, stat, watch } from "node:fs/promises";
@@ -367,6 +367,7 @@ async function parseCodexConversationMessages(sessionFile) {
367
367
  const toolCallsByCallId = /* @__PURE__ */ new Map();
368
368
  let totalTokens = 0;
369
369
  let sequence = 0;
370
+ let trailingAgentMessageAt;
370
371
  for (const line of lines) {
371
372
  let entry;
372
373
  try {
@@ -384,6 +385,7 @@ async function parseCodexConversationMessages(sessionFile) {
384
385
  const text = typeof payload.message === "string" ? payload.message.trim() : "";
385
386
  if (!text) continue;
386
387
  sequence += 1;
388
+ trailingAgentMessageAt = ptype === "agent_message" ? createdAt : void 0;
387
389
  messages.push({
388
390
  id: `codex-${ptype === "user_message" ? "user" : "agent"}-${sequence}`,
389
391
  role: ptype === "user_message" ? "user" : "assistant",
@@ -401,6 +403,7 @@ async function parseCodexConversationMessages(sessionFile) {
401
403
  }
402
404
  if (entry.type === "response_item") {
403
405
  if (ptype === "function_call" || ptype === "custom_tool_call") {
406
+ trailingAgentMessageAt = void 0;
404
407
  const callId = typeof payload.call_id === "string" ? payload.call_id : "";
405
408
  const name = typeof payload.name === "string" ? payload.name : "tool";
406
409
  const args = typeof payload.arguments === "string" ? payload.arguments : payload.input != null ? JSON.stringify(payload.input) : "";
@@ -445,6 +448,7 @@ async function parseCodexConversationMessages(sessionFile) {
445
448
  messages,
446
449
  workLog,
447
450
  byteOffset: fileStats.size,
451
+ lastTurnCompletedAt: trailingAgentMessageAt,
448
452
  streaming,
449
453
  totalCost,
450
454
  totalTokens,
@@ -1927,7 +1931,17 @@ async function summarizeConversationActivity(sessionFile, options = {}) {
1927
1931
  lastSequence: 0
1928
1932
  });
1929
1933
  const lastMsg = messages[messages.length - 1];
1930
- const isWorking = Date.now() - mtimeMs < WORKING_STALENESS_MS && !lastTurnCompletedAt && (streaming || pendingToolUse.size > 0 || messages.length === 0 || lastMsg?.role === "user" || lastMsg?.role === "assistant" && !lastMsg.completedAt);
1934
+ const workingFileRecent = Date.now() - mtimeMs < WORKING_STALENESS_MS;
1935
+ const lastWork = workLog[workLog.length - 1];
1936
+ let workGapWorking = false;
1937
+ if (lastWork) {
1938
+ const workTs = Date.parse(lastWork.createdAt || "");
1939
+ if (!Number.isNaN(workTs) && Date.now() - workTs < WORKING_STALENESS_MS) {
1940
+ const msgTs = Date.parse(lastMsg?.completedAt || lastMsg?.createdAt || "");
1941
+ workGapWorking = Number.isNaN(msgTs) || workTs >= msgTs;
1942
+ }
1943
+ }
1944
+ const isWorking = workingFileRecent && !lastTurnCompletedAt && (streaming || pendingToolUse.size > 0 || messages.length === 0 || lastMsg?.role === "user" || lastMsg?.role === "assistant" && !lastMsg.completedAt || workGapWorking);
1931
1945
  const fileRecent = Date.now() - mtimeMs < 3e4;
1932
1946
  let currentTool = null;
1933
1947
  if (fileRecent) {
@@ -2221,4 +2235,4 @@ var init_conversation_service = __esmMin((() => {
2221
2235
  //#endregion
2222
2236
  export { parseAcpConversationMessages as S, isOhmypiSessionFile as _, contextUsageFromParseResult as a, parseCodexConversationMessages as b, parseEntireConversation as c, init_kimi_conversation_parser as d, parseKimiConversationMessages as f, init_ohmypi_conversation_parser as g, parsePiConversationMessages as h, computeContextUsage as i, parseFromLastCompactBoundary as l, isPiSessionFile as m, gateSnapshotEmission as n, summarizeConversationActivity as o, init_pi_conversation_parser as p, watchConversation as r, parseConversationMessages as s, init_conversation_service as t, findLastCompactBoundary as u, parseOhmypiConversationMessages as v, init_acp_conversation_parser as x, init_codex_conversation_parser as y };
2223
2237
 
2224
- //# sourceMappingURL=conversation-service-tQCIbBVZ.js.map
2238
+ //# sourceMappingURL=conversation-service-BxIOd5ay.js.map