@overdeck/desktop 0.45.24 → 0.46.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 (511) hide show
  1. package/drizzle/overdeck/0000_overdeck_init.sql +32 -0
  2. package/package.json +1 -1
  3. package/server/{acceptance-criteria-DDCnXF58.js → acceptance-criteria-CCwFGICj.js} +2 -2
  4. package/server/activity-logger-CMthG6Vd.js +3 -0
  5. package/server/{activity-logger-DDlOIAML.js → activity-logger-CyteR4JO.js} +24 -13
  6. package/server/{advancing-selfheal-BVwW4qRn.js → advancing-selfheal-De1L-Sb4.js} +6 -6
  7. package/server/{agent-gc-CHcnvonI.js → agent-gc-CBULruzm.js} +5 -5
  8. package/server/agent-state-VQk8fY9F.js +3 -0
  9. package/server/{agent-state-service-BsgWxZuB.js → agent-state-service-BlnSkRFA.js} +5 -5
  10. package/server/{agent-state-service-D5UGKIJL.js → agent-state-service-hZpxIw1E.js} +1 -1
  11. package/server/agents-BKKkxKgK.js +3 -0
  12. package/server/{agents-EbI0zCJl.js → agents-C5rWYhb6.js} +4 -4
  13. package/server/archive-planning-0FJ6Xd3b.js +2 -0
  14. package/server/{archive-planning-Du25Jtst.js → archive-planning-C0lAbNB_.js} +16 -24
  15. package/server/{artifact-index-jobs-CbEDfCDu.js → artifact-index-jobs-ug6ZxIP5.js} +2 -2
  16. package/server/{assemble-J2ZZ2C15.js → assemble-DnffNpOo.js} +2 -2
  17. package/server/{backlog-auto-trigger-2R2jog7n.js → backlog-auto-trigger-Dh-i9PQf.js} +3 -3
  18. package/server/{behavior-B3exJ42O.js → behavior-CfIg6pKp.js} +2 -2
  19. package/server/bridge-pool-patrol-CUFmjVDN.js +136 -0
  20. package/server/{briefing-freshness-D1wzUIWv.js → briefing-freshness-DHmCSLar.js} +2 -2
  21. package/server/{build-info-CZk_TITh.js → build-info-BP160gU7.js} +1 -1
  22. package/server/{build-info-Ie_D0_BT.js → build-info-CuFfxZxp.js} +5 -3
  23. package/server/{checkpoint-manager-BI1Wxoku.js → checkpoint-manager-DEWD82qK.js} +2 -2
  24. package/server/{checkpoint-manager-DwbQoqrC.js → checkpoint-manager-Dxh0FYsv.js} +1 -1
  25. package/server/checkpoint-worker.js +1 -1
  26. package/server/{checkpoints-CQB1h765.js → checkpoints-CZvbtLnr.js} +2 -2
  27. package/server/{checkpoints-BJIs5QIA.js → checkpoints-DMTgXuLG.js} +1 -1
  28. package/server/{claude-hooks-provision-8Ngo8TpT.js → claude-hooks-provision-CN-xo-do.js} +1 -1
  29. package/server/{claude-hooks-provision-D8GXF3_s.js → claude-hooks-provision-fvy4RD2b.js} +13 -2
  30. package/server/{claude-permissions-DNWEVV6z.js → claude-permissions-CN0cSCPp.js} +2 -2
  31. package/server/{claude-settings-overlay-CEdaqpWI.js → claude-settings-overlay-CJn35FHQ.js} +2 -2
  32. package/server/{claude-settings-overlay-DWy-Bb4Y.js → claude-settings-overlay-Dabi9slj.js} +1 -1
  33. package/server/cli-DmXETsw-.js +3 -0
  34. package/server/{cli-RoOx5DUf.js → cli-oCWYA1pE.js} +9 -9
  35. package/server/{cliproxy-C8a1vtTU.js → cliproxy-C8mB3KuB.js} +2 -2
  36. package/server/{cliproxy-fHfIeiGd.js → cliproxy-PGwTX_o8.js} +1 -1
  37. package/server/{close-issue-DoOifFIK.js → close-issue-D5MF5GqF.js} +5 -5
  38. package/server/{closed-issue-reaper-CktPXo8m.js → closed-issue-reaper-CJ24u0Zt.js} +1 -1
  39. package/server/{closed-issue-reaper-Bk3SU4RC.js → closed-issue-reaper-Cltx86x5.js} +37 -16
  40. package/server/{codex-GcHuUF-k.js → codex-BdEsUFWh.js} +1 -1
  41. package/server/{codex-BZXGhUVB.js → codex-Drlf5Xhf.js} +36 -7
  42. package/server/{codex-parser-CFZ1_1Jl.js → codex-parser-DpB89Vqa.js} +2 -2
  43. package/server/compaction-continuation-K2AxQX4H.js +200 -0
  44. package/server/{config-CKxYiCmX.js → config-B2IMcBxx.js} +4 -3
  45. package/server/{config-DzV30TOm.js → config-DV-grfQc.js} +1 -1
  46. package/server/{config-BZ0sHTju.js → config-Dr3pW6w6.js} +2 -2
  47. package/server/{config-yaml-DySPNmKN.js → config-yaml-CmOPzmBb.js} +268 -14
  48. package/server/{conflict-gate-BaCVrH-N.js → conflict-gate-B9cN3SBi.js} +4 -4
  49. package/server/{conflict-gate-BhAY7TUd.js → conflict-gate-Dh754uyA.js} +1 -1
  50. package/server/{context-layers-BrPmE__h.js → context-layers-D6LZo3l1.js} +2 -2
  51. package/server/{context-layers-igZ4FI4_.js → context-layers-dR5YxHYB.js} +3 -3
  52. package/server/{control-settings-BQp7_4uD.js → control-settings-C7DUehE1.js} +49 -19
  53. package/server/{conversation-compaction-CgrR8YYp.js → conversation-compaction-BoqdDXWF.js} +8 -8
  54. package/server/{conversation-compaction-eQB5CkOe.js → conversation-compaction-Dj4FAKoZ.js} +1 -1
  55. package/server/{conversation-service-DPJ71F33.js → conversation-service-5aCnq1zR.js} +8 -7
  56. package/server/conversation-service-BCxl4f8Z.js +3 -0
  57. package/server/{conversations-6AfUfbwc.js → conversations-BUpYsOZg.js} +4 -4
  58. package/server/{conversations-CAsJF9kh.js → conversations-C34dyIb9.js} +1 -1
  59. package/server/{cost-B2ddP6wq.js → cost-Bgcub5kW.js} +12 -2
  60. package/server/{cost-R-m6Yi-W.js → cost-CvxRrucd.js} +3 -3
  61. package/server/{cost-sync-BsN6ER0n.js → cost-sync-Dv3LUaNW.js} +3 -3
  62. package/server/{dag-B1ucnjDU.js → dag-ombYYt4s.js} +2 -2
  63. package/server/{dangerous-git-ops-BXqeWVSf.js → dangerous-git-ops-BcJPC5Rr.js} +1 -1
  64. package/server/dashboard-db-worker.js +7 -7
  65. package/server/deacon-DrXqT9LQ.js +4 -0
  66. package/server/{deacon-CU_cAYSR.js → deacon-hi9KLPLT.js} +2933 -2704
  67. package/server/{deacon-nudge-log-6wVqAaqz.js → deacon-nudge-log-BNBebzeL.js} +3 -3
  68. package/server/deacon-pending-lifecycle-Cpk0k7Hi.js +33 -0
  69. package/server/{deacon-swarm-BXZZ1Z2-.js → deacon-swarm-DBxUaO-A.js} +13 -13
  70. package/server/deacon-swarm-I2JfX5Tg.js +2 -0
  71. package/server/deacon.js +14 -19
  72. package/server/dead-end-trip-CQcP70ND.js +13 -0
  73. package/server/delivery-Da0zEMY4.js +3 -0
  74. package/server/{deploy-patrol-AiFoP8dw.js → deploy-patrol-Df-Tmaq0.js} +69 -18
  75. package/server/deploy-queue-9SrhZR63.js +3 -0
  76. package/server/deploy-queue-UjKGYsDe.js +169 -0
  77. package/server/deploy-window-jOiPRHL0.js +3 -0
  78. package/server/{deploy-window-C3F-tihF.js → deploy-window-rpqpWqHA.js} +40 -16
  79. package/server/{dev-supervisor-bcOWqdQE.js → dev-supervisor-CC46Ig8q.js} +2 -2
  80. package/server/{devcontainer-renderer-_d6XhyND.js → devcontainer-renderer-68CSCRnu.js} +3 -3
  81. package/server/{dist-Cb_0uvpS.js → dist-CJy72uEg.js} +1 -1
  82. package/server/dist-DSlxIU1H.js +3 -0
  83. package/server/{dist-src-BSoS7mkd.js → dist-src-Bik83hFi.js} +1 -1
  84. package/server/docker-BMVTSFL5.js +3 -0
  85. package/server/{docker-DcMTFTUC.js → docker-Dam7mbIB.js} +2 -2
  86. package/server/{dod-C6n9RV3G.js → dod-Dar-yheg.js} +8 -4
  87. package/server/durable-review-pipeline-CGZ5QBxh.js +17 -0
  88. package/server/durable-review-pipeline-jpgCJZFp.js +3 -0
  89. package/server/{ensure-devcontainer-DNi-ono3.js → ensure-devcontainer-B057YA81.js} +4 -4
  90. package/server/{ensure-devcontainer-BZgOhRo7.js → ensure-devcontainer-C98V8yW-.js} +1 -1
  91. package/server/{esm-shims-OSHAYaS1.js → esm-shims-Br9BPdkR.js} +1 -1
  92. package/server/{event-store-EV2cMiXj.js → event-store-ELqkVOn0.js} +1 -1
  93. package/server/{event-store-CQL6NeqB.js → event-store-zY5MJHgF.js} +23 -4
  94. package/server/{events-BTdrdEq8.js → events-D6pyqhzM.js} +1 -1
  95. package/server/{events-DTfAe4My.js → events-D9PR1IC0.js} +3 -3
  96. package/server/{factory-CFibJuaw.js → factory-CRoOpGsF.js} +5 -5
  97. package/server/{feature-registry-population-DKZFMbFt.js → feature-registry-population--YUXU999.js} +4 -4
  98. package/server/{feature-registry-storage-BdPuLcBX.js → feature-registry-storage-BORBTo0y.js} +2 -2
  99. package/server/{features-ez2271oH.js → features--nFkJY8v.js} +2 -2
  100. package/server/{feedback-target-CoFDHiM8.js → feedback-target-C0ZzyHvU.js} +1 -1
  101. package/server/{feedback-target-7mqqwrX6.js → feedback-target-Dt9BsapX.js} +8 -8
  102. package/server/{feedback-writer-CY5L1lB7.js → feedback-writer-BG0RUZiu.js} +5 -5
  103. package/server/{feedback-writer-D3a22RCd.js → feedback-writer-D1fm-5Z8.js} +1 -1
  104. package/server/{flywheel-SVF02Jpq.js → flywheel-BekukH4i.js} +1 -1
  105. package/server/{flywheel-DHrgCphM.js → flywheel-BiT3odRb.js} +23 -15
  106. package/server/{flywheel-DzGtWnJ1.js → flywheel-CLVB55Be.js} +16 -15
  107. package/server/flywheel-merge-order-BJv1DZz1.js +462 -0
  108. package/server/flywheel-merge-order-BKw9o6ku.js +2 -0
  109. package/server/forge-CZbSg6Ds.js +383 -0
  110. package/server/forge-DK3blQb_.js +3 -0
  111. package/server/{from-kNxT0bZC.js → from-D_4_dk7i.js} +1 -1
  112. package/server/{fts-db-CE46vDkZ.js → fts-db-BeOomFa-.js} +2 -2
  113. package/server/{fts-operations-CqY6zl-i.js → fts-operations-BdewJ_g9.js} +2 -2
  114. package/server/git-utils-CI6cwyyC.js +3 -0
  115. package/server/{git-utils-CRw2zLPC.js → git-utils-ameCgDdy.js} +30 -5
  116. package/server/{github-app-C3QrAUd0.js → github-app-CQ1Lo6LA.js} +3 -3
  117. package/server/{github-app-ClZ2lk8D.js → github-app-DtAsvwzK.js} +1 -1
  118. package/server/{github-client-BnIsSrEN.js → github-client-BfyDxuRN.js} +2 -2
  119. package/server/{github-client-DfQYVUaw.js → github-client-Cj0yl_07.js} +1 -1
  120. package/server/github-pr-lookup-BDq6Wznz.js +58 -0
  121. package/server/{harness-binary-DPUi-Pv8.js → harness-binary-DqkftwTb.js} +2 -2
  122. package/server/{harness-resolve-3lNZkyT4.js → harness-resolve-CqMqM1Mb.js} +4 -4
  123. package/server/{health-events-BBcTYQKU.js → health-events-CazRxJUS.js} +2 -2
  124. package/server/{health-events-BDOHby5Q.js → health-events-_xfTaOUs.js} +1 -1
  125. package/server/{hooks-CKZgXlJb.js → hooks-BO3QT1sn.js} +2 -2
  126. package/server/{hooks-DPVX1rwQ.js → hooks-BnJsxlSq.js} +1 -1
  127. package/server/{hume-Cz8igP9E.js → hume-CDYJxqx-.js} +2 -2
  128. package/server/hume-Dq--7rOQ.js +3 -0
  129. package/server/{idle-stack-reaper-CuLF0j2H.js → idle-stack-reaper-BYqERdkE.js} +1 -1
  130. package/server/{idle-stack-reaper-DDIRwxUY.js → idle-stack-reaper-CnGx_PO_.js} +99 -6
  131. package/server/in-flight-guard-Bq3epG58.js +45 -0
  132. package/server/{infra-BEqFxlJc.js → infra-BjuxvjdS.js} +70 -5
  133. package/server/{injection-CPUIqNhI.js → injection-DZxlV2al.js} +1 -1
  134. package/server/{injection-C8aiVJrF.js → injection-UCf8EsjX.js} +7 -7
  135. package/server/{inspect-agent-BLuJ1AkT.js → inspect-agent-6kylZnrm.js} +26 -25
  136. package/server/inspect-agent-BVwDrVrz.js +2 -0
  137. package/server/{internal-token-s0-oKybJ.js → internal-token-DvMTQSOS.js} +2 -2
  138. package/server/{internal-token-BrcU6qfe.js → internal-token-M9omeXM1.js} +1 -1
  139. package/server/{io-C9kF1wtJ.js → io-VHvc0Ssp.js} +43 -26
  140. package/server/{issue-closed-CDJk4pIp.js → issue-closed-B6KJkmHZ.js} +7 -7
  141. package/server/{issue-lifecycle-B8sZHVHh.js → issue-lifecycle-9gk3fnXN.js} +1 -1
  142. package/server/{issue-lifecycle-ojZAzDBP.js → issue-lifecycle-C4Zj0WmE.js} +34 -28
  143. package/server/{issue-service-singleton-Yx5DdmVJ.js → issue-service-singleton-DmCh7EHj.js} +10 -10
  144. package/server/{issue-service-singleton-BvJ09SaR.js → issue-service-singleton-PMx8F1jr.js} +1 -1
  145. package/server/{issues-BMmP_77e.js → issues-CgnQ1OGQ.js} +2 -2
  146. package/server/{jsonl-parser-BXSlHwEh.js → jsonl-parser-DJOH_O-w.js} +5 -4
  147. package/server/{label-cleanup-B0UJwnv5.js → label-cleanup-Dv7AV_R1.js} +3 -3
  148. package/server/{label-reconciler-B4iOAjlC.js → label-reconciler--F85rufp.js} +4 -4
  149. package/server/{lifecycle-yPd___5E.js → lifecycle-CTdOWYMi.js} +2 -2
  150. package/server/{lifecycle-xmBfK2GJ.js → lifecycle-DDN8ApVY.js} +6 -7
  151. package/server/{lifecycle-io-BREGpnLk.js → lifecycle-io-D-lGdzK3.js} +5 -5
  152. package/server/{lifecycle-io-DPo7x11I.js → lifecycle-io-D_zTLvP1.js} +1 -1
  153. package/server/{linear-client-BsuUvkdA.js → linear-client-BQU36QqE.js} +2 -2
  154. package/server/{linear-client-CTskEeT_.js → linear-client-CY4O_Tu3.js} +1 -1
  155. package/server/linear-mcp-auth-BnU4TYfY.js +280 -0
  156. package/server/linear-mcp-auth-NYBq_oHZ.js +2 -0
  157. package/server/memory-fts-worker.js +1 -1
  158. package/server/{merge-CefQNAnq.js → merge-Bpx4jjht.js} +13 -11
  159. package/server/{merge-agent-4WOWlSYA.js → merge-agent-DdMVSV2Y.js} +233 -83
  160. package/server/{merge-agent-CKkgIBPB.js → merge-agent-DrXa1CpW.js} +1 -1
  161. package/server/{merge-batch-ClFn2T-y.js → merge-batch-C5q1c1GX.js} +1 -1
  162. package/server/merge-completeness-BMm8tMyZ.js +277 -0
  163. package/server/merge-completeness-D0ljXbk3.js +3 -0
  164. package/server/{merge-B1DiziGU.js → merge-idOG--29.js} +1 -1
  165. package/server/merge-ops-DdpTiEMt.js +2 -0
  166. package/server/merge-rebase-DGQpYJU3.js +2 -0
  167. package/server/{merge-rebase-BfaTyXsw.js → merge-rebase-xLnMlw5h.js} +3 -3
  168. package/server/{merge-set-DJ8-UErs.js → merge-set-DH7ot3yz.js} +11 -5
  169. package/server/merge-set-DzsOTBg5.js +3 -0
  170. package/server/{merge-sync-VPV28g0g.js → merge-sync-CQ-LgZ1_.js} +406 -153
  171. package/server/merge-sync-Ca7F5JnQ.js +3 -0
  172. package/server/{merge-train-CHopycP0.js → merge-train-DTEMyIu4.js} +18 -8
  173. package/server/{merge-train-deps-D1cOZzy2.js → merge-train-deps-CNPJzepw.js} +4 -4
  174. package/server/merge-verification-x3JO8Dtz.js +220 -0
  175. package/server/merged-docker-cleanup-worker-CTpC27Bs.js +107 -0
  176. package/server/merged-docker-cleanup-worker-Cdi9apm-.js +3 -0
  177. package/server/{multipart-parser-duPAfSBw.js → multipart-parser-IMSBfePV.js} +2 -2
  178. package/server/{no-resume-mode-Nw29vaFb.js → no-resume-mode-C5ULAXwO.js} +1 -1
  179. package/server/node_modules/.package-lock.json +27 -27
  180. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/package.json +3 -3
  181. package/server/node_modules/@google-cloud/common/package.json +2 -2
  182. package/server/node_modules/gaxios/build/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  183. package/server/node_modules/gaxios/build/esm/tsconfig.tsbuildinfo +1 -1
  184. package/server/node_modules/gaxios/package.json +1 -1
  185. package/server/node_modules/google-auth-library/build/src/auth/googleauth.js +24 -19
  186. package/server/node_modules/google-auth-library/package.json +1 -1
  187. package/server/node_modules/google-gax/build/protos/google/api/auth.proto +2 -1
  188. package/server/node_modules/google-gax/build/protos/google/api/backend.proto +12 -1
  189. package/server/node_modules/google-gax/build/protos/google/api/billing.proto +1 -1
  190. package/server/node_modules/google-gax/build/protos/google/api/client.proto +165 -53
  191. package/server/node_modules/google-gax/build/protos/google/api/cloudquotas/v1/resources.proto +1 -1
  192. package/server/node_modules/google-gax/build/protos/google/api/cloudquotas/v1beta/quota_adjuster_settings.proto +7 -3
  193. package/server/node_modules/google-gax/build/protos/google/api/cloudquotas/v1beta/resources.proto +1 -1
  194. package/server/node_modules/google-gax/build/protos/google/api/config_change.proto +1 -1
  195. package/server/node_modules/google-gax/build/protos/google/api/context.proto +1 -1
  196. package/server/node_modules/google-gax/build/protos/google/api/control.proto +3 -3
  197. package/server/node_modules/google-gax/build/protos/google/api/distribution.proto +1 -1
  198. package/server/node_modules/google-gax/build/protos/google/api/documentation.proto +1 -1
  199. package/server/node_modules/google-gax/build/protos/google/api/endpoint.proto +1 -1
  200. package/server/node_modules/google-gax/build/protos/google/api/error_reason.proto +186 -1
  201. package/server/node_modules/google-gax/build/protos/google/api/expr/v1alpha1/checked.proto +31 -3
  202. package/server/node_modules/google-gax/build/protos/google/api/expr/v1alpha1/eval.proto +8 -9
  203. package/server/node_modules/google-gax/build/protos/google/api/expr/v1alpha1/explain.proto +1 -2
  204. package/server/node_modules/google-gax/build/protos/google/api/expr/v1alpha1/syntax.proto +20 -22
  205. package/server/node_modules/google-gax/build/protos/google/api/expr/v1alpha1/value.proto +2 -3
  206. package/server/node_modules/google-gax/build/protos/google/api/field_behavior.proto +1 -1
  207. package/server/node_modules/google-gax/build/protos/google/api/field_info.proto +1 -1
  208. package/server/node_modules/google-gax/build/protos/google/api/http.proto +1 -1
  209. package/server/node_modules/google-gax/build/protos/google/api/httpbody.proto +1 -1
  210. package/server/node_modules/google-gax/build/protos/google/api/label.proto +1 -1
  211. package/server/node_modules/google-gax/build/protos/google/api/launch_stage.proto +1 -1
  212. package/server/node_modules/google-gax/build/protos/google/api/log.proto +1 -1
  213. package/server/node_modules/google-gax/build/protos/google/api/logging.proto +1 -1
  214. package/server/node_modules/google-gax/build/protos/google/api/metric.proto +1 -1
  215. package/server/node_modules/google-gax/build/protos/google/api/monitored_resource.proto +1 -1
  216. package/server/node_modules/google-gax/build/protos/google/api/monitoring.proto +1 -1
  217. package/server/node_modules/google-gax/build/protos/google/api/policy.proto +1 -1
  218. package/server/node_modules/google-gax/build/protos/google/api/quota.proto +1 -1
  219. package/server/node_modules/google-gax/build/protos/google/api/resource.proto +1 -1
  220. package/server/node_modules/google-gax/build/protos/google/api/routing.proto +8 -4
  221. package/server/node_modules/google-gax/build/protos/google/api/service.proto +2 -3
  222. package/server/node_modules/google-gax/build/protos/google/api/source_info.proto +1 -1
  223. package/server/node_modules/google-gax/build/protos/google/api/system_parameter.proto +1 -1
  224. package/server/node_modules/google-gax/build/protos/google/api/usage.proto +7 -27
  225. package/server/node_modules/google-gax/build/protos/google/api/visibility.proto +1 -1
  226. package/server/node_modules/google-gax/build/protos/google/longrunning/operations.proto +20 -1
  227. package/server/node_modules/google-gax/build/protos/google/protobuf/any.proto +52 -108
  228. package/server/node_modules/google-gax/build/protos/google/protobuf/compiler/ruby/ruby_generated_code.proto +2 -0
  229. package/server/node_modules/google-gax/build/protos/google/protobuf/cpp_features.proto +21 -1
  230. package/server/node_modules/google-gax/build/protos/google/protobuf/cpp_file_options.proto +24 -0
  231. package/server/node_modules/google-gax/build/protos/google/protobuf/cpp_options.proto +15 -0
  232. package/server/node_modules/google-gax/build/protos/google/protobuf/descriptor.proto +118 -30
  233. package/server/node_modules/google-gax/build/protos/google/protobuf/field_mask.proto +16 -18
  234. package/server/node_modules/google-gax/build/protos/google/protobuf/internal_options.proto +8 -1
  235. package/server/node_modules/google-gax/build/protos/google/protobuf/json/json_enumval_custom_string.proto +26 -0
  236. package/server/node_modules/google-gax/build/protos/google/protobuf/json_enumvalue_options.proto +29 -0
  237. package/server/node_modules/google-gax/build/protos/google/protobuf/json_options.proto +14 -0
  238. package/server/node_modules/google-gax/build/protos/google/protobuf/struct.proto +38 -22
  239. package/server/node_modules/google-gax/build/protos/google/protobuf/test_protos/forced_micro_string.proto +3 -0
  240. package/server/node_modules/google-gax/build/protos/google/protobuf/test_protos/repeated_field_proxy_import_message.proto +14 -0
  241. package/server/node_modules/google-gax/build/protos/google/protobuf/timestamp.proto +9 -8
  242. package/server/node_modules/google-gax/build/protos/google/protobuf/util/json_format_proto3.proto +18 -0
  243. package/server/node_modules/google-gax/build/protos/google/rpc/code.proto +1 -1
  244. package/server/node_modules/google-gax/build/protos/google/rpc/context/attribute_context.proto +7 -2
  245. package/server/node_modules/google-gax/build/protos/google/rpc/context/audit_context.proto +1 -1
  246. package/server/node_modules/google-gax/build/protos/google/rpc/error_details.proto +5 -5
  247. package/server/node_modules/google-gax/build/protos/google/rpc/http.proto +1 -1
  248. package/server/node_modules/google-gax/build/protos/google/rpc/status.proto +1 -2
  249. package/server/node_modules/google-gax/build/protos/google/type/calendar_period.proto +1 -1
  250. package/server/node_modules/google-gax/build/protos/google/type/color.proto +9 -10
  251. package/server/node_modules/google-gax/build/protos/google/type/date.proto +11 -9
  252. package/server/node_modules/google-gax/build/protos/google/type/datetime.proto +17 -17
  253. package/server/node_modules/google-gax/build/protos/google/type/dayofweek.proto +1 -1
  254. package/server/node_modules/google-gax/build/protos/google/type/decimal.proto +11 -13
  255. package/server/node_modules/google-gax/build/protos/google/type/expr.proto +1 -1
  256. package/server/node_modules/google-gax/build/protos/google/type/fraction.proto +1 -1
  257. package/server/node_modules/google-gax/build/protos/google/type/interval.proto +1 -2
  258. package/server/node_modules/google-gax/build/protos/google/type/latlng.proto +4 -5
  259. package/server/node_modules/google-gax/build/protos/google/type/localized_text.proto +3 -3
  260. package/server/node_modules/google-gax/build/protos/google/type/money.proto +1 -2
  261. package/server/node_modules/google-gax/build/protos/google/type/month.proto +1 -1
  262. package/server/node_modules/google-gax/build/protos/google/type/phone_number.proto +20 -15
  263. package/server/node_modules/google-gax/build/protos/google/type/postal_address.proto +39 -39
  264. package/server/node_modules/google-gax/build/protos/google/type/quaternion.proto +4 -4
  265. package/server/node_modules/google-gax/build/protos/google/type/timeofday.proto +11 -8
  266. package/server/node_modules/google-gax/package.json +5 -5
  267. package/server/node_modules/retry-request/package.json +4 -4
  268. package/server/node_modules/teeny-request/package.json +5 -5
  269. package/server/node_modules/undici/lib/cache/memory-cache-store.js +54 -9
  270. package/server/node_modules/undici/lib/cache/sqlite-cache-store.js +7 -1
  271. package/server/node_modules/undici/lib/core/request.js +12 -1
  272. package/server/node_modules/undici/lib/dispatcher/client-h1.js +11 -2
  273. package/server/node_modules/undici/lib/global.js +36 -16
  274. package/server/node_modules/undici/lib/handler/cache-handler.js +236 -116
  275. package/server/node_modules/undici/lib/handler/cache-revalidation-handler.js +3 -3
  276. package/server/node_modules/undici/lib/handler/retry-handler.js +24 -0
  277. package/server/node_modules/undici/lib/interceptor/cache.js +152 -62
  278. package/server/node_modules/undici/lib/interceptor/decompress.js +5 -2
  279. package/server/node_modules/undici/lib/util/cache.js +328 -66
  280. package/server/node_modules/undici/lib/util/date.js +23 -6
  281. package/server/node_modules/undici/lib/web/cookies/util.js +78 -8
  282. package/server/node_modules/undici/package.json +1 -1
  283. package/server/{orphan-proposed-reconciler-CTSGcK8p.js → orphan-proposed-reconciler-CWmOdM9-.js} +1 -1
  284. package/server/{orphan-proposed-reconciler-BvKkWMJQ.js → orphan-proposed-reconciler-Dg6U4ADZ.js} +24 -15
  285. package/server/package-lock.json +28 -28
  286. package/server/package.json +1 -1
  287. package/server/{pan-dir-B0c3w0Ya.js → pan-dir-ubraCiUg.js} +24 -10
  288. package/server/{paths-D-xWGHdh.js → paths-cXmOwSbh.js} +2 -2
  289. package/server/pending-lifecycle-claim-DEteYdS9.js +110 -0
  290. package/server/{pickup-DUCLWrJY.js → pickup-D8xtG1J2.js} +1 -1
  291. package/server/pipeline-membership-BGSvkT2M.js +3 -0
  292. package/server/pipeline-membership-CrAPLYtf.js +57 -0
  293. package/server/{pipeline-membership-mY3GprlK.js → pipeline-membership-gather-CET40frr.js} +177 -109
  294. package/server/pipeline-membership-gather-DTfcgxLl.js +3 -0
  295. package/server/{pipeline-notifier-BXkJzDC4.js → pipeline-notifier-BuQ0e4hF.js} +2 -2
  296. package/server/{pipeline-notifier-BJr8gQX6.js → pipeline-notifier-ImNXknf0.js} +1 -1
  297. package/server/post-merge-lifecycle-worker-DbO10pum.js +50 -0
  298. package/server/{project-pipelines-C0MWUeCU.js → project-pipelines-Bim6bThI.js} +2 -2
  299. package/server/{project-repos-B6GycDh9.js → project-repos-C0nuoBGv.js} +7 -3
  300. package/server/project-repos-CRE6Ykow.js +3 -0
  301. package/server/projects-B03Wr-xc.js +3 -0
  302. package/server/{prompts-DxzFXuLl.js → prompts-BEx08AIu.js} +2 -2
  303. package/server/{providers-u4Ga0jOr.js → providers-D7IluJe0.js} +1 -1
  304. package/server/{providers-qQAwGQDW.js → providers-evXhiQeg.js} +7 -7
  305. package/server/public/assets/{chunk-BO2N2NFS-BamJdinX.js → chunk-BO2N2NFS-D1s4-Sqp.js} +4 -4
  306. package/server/public/assets/{diagram-OG6HWLK6-DfOB8-w4.js → diagram-OG6HWLK6-1gdMoSF7.js} +1 -1
  307. package/server/public/assets/{dist-D7zYSEA6.js → dist-CxAOHbil.js} +1 -1
  308. package/server/public/assets/{dist-ByIuzMQW.js → dist-DqDRYW6P.js} +3 -3
  309. package/server/public/assets/{ganttDiagram-6RSMTGT7-EdmRyXL3.js → ganttDiagram-6RSMTGT7-BYex-Ec7.js} +1 -1
  310. package/server/public/assets/{highlighted-body-OFNGDK62-MerOfTX8.js → highlighted-body-OFNGDK62-DlVkiG0S.js} +1 -1
  311. package/server/public/assets/index-Cc7cnFC4.css +1 -0
  312. package/server/public/assets/index-K0hAYCgV.js +807 -0
  313. package/server/public/assets/{linear-BBbArIcK.js → linear-B4cuEFmO.js} +1 -1
  314. package/server/public/assets/mermaid-GHXKKRXX-DyDHFXHV.js +1 -0
  315. package/server/public/assets/{pieDiagram-4H26LBE5-BKIddiJN.js → pieDiagram-4H26LBE5-CBHNBIJQ.js} +1 -1
  316. package/server/public/assets/{prod-B8vYiu52.js → prod-CN2nHBvX.js} +4 -4
  317. package/server/public/assets/{quadrantDiagram-W4KKPZXB-D6RtoULk.js → quadrantDiagram-W4KKPZXB-Bom87VOQ.js} +1 -1
  318. package/server/public/assets/{sankeyDiagram-5OEKKPKP-CLrCedZX.js → sankeyDiagram-5OEKKPKP-UrBeyLxk.js} +1 -1
  319. package/server/public/assets/{xychartDiagram-2RQKCTM6-hznR8DYl.js → xychartDiagram-2RQKCTM6-DhkbrIxR.js} +1 -1
  320. package/server/public/index.html +2 -2
  321. package/server/{pull-requests-7N8WKseP.js → pull-requests-Cv7LxzUN.js} +1 -1
  322. package/server/{pull-requests-_lHueOHW.js → pull-requests-DHWiKxo7.js} +19 -10
  323. package/server/{queries-CjNIf-Ub.js → queries-DHJm7bTd.js} +631 -110
  324. package/server/{rally-CyWT_lNO.js → rally-B71M9f4o.js} +3 -3
  325. package/server/rally-YDjU513q.js +3 -0
  326. package/server/{rally-api-ClOSd-Tt.js → rally-api-D5uXN08-.js} +1 -1
  327. package/server/{rally-api-C8e_1JRi.js → rally-api-Dkqmok65.js} +2 -2
  328. package/server/{rally-client-lc-nokqr.js → rally-client-Bfqm6XI4.js} +4 -4
  329. package/server/{rally-client-sgtVqzNU.js → rally-client-CxsA6ExK.js} +1 -1
  330. package/server/{reap-terminal-sessions-7KeHv1R1.js → reap-terminal-sessions-BQ23nriz.js} +2 -2
  331. package/server/{reap-terminal-sessions-BtHPo6Xc.js → reap-terminal-sessions-CvmwaqKv.js} +2 -2
  332. package/server/{rebuild-stack-lwtsW0GO.js → rebuild-stack-0EEYReVZ.js} +16 -7
  333. package/server/{rebuild-stack-CFvcBHsS.js → rebuild-stack-qeRqHZxH.js} +2 -2
  334. package/server/{reconstruct-cache-C3Ui7ojV.js → reconstruct-cache-BbYFsqLa.js} +7 -6
  335. package/server/record-CtroO946.js +3 -0
  336. package/server/record-update-DH6dLJID.js +3 -0
  337. package/server/{record-update-dE1Aw83j.js → record-update-Z0QCxmMp.js} +124 -34
  338. package/server/{recovery-trip-BvRWfUXM.js → recovery-trip-eJe26h-f.js} +2 -2
  339. package/server/{release-engine-Cx48W7z8.js → release-engine-lPUp-MTd.js} +5 -5
  340. package/server/{release-set-CQfuN9-v.js → release-set-BwGeyZKX.js} +3 -3
  341. package/server/{remote-C_2hasl7.js → remote-BCd02Es1.js} +3 -3
  342. package/server/{remote-ChgimyYa.js → remote-CVGUhXMV.js} +3 -3
  343. package/server/{remote-agents-CA3Ihlxj.js → remote-agents-C1bssi41.js} +2 -2
  344. package/server/{remote-agents-By1ige5O.js → remote-agents-C_VxssLU.js} +300 -46
  345. package/server/{remote-completion-fVe9e_3u.js → remote-completion-DAB0P706.js} +12 -12
  346. package/server/resume-u9byntrq.js +3 -0
  347. package/server/{review-agent-DNboMyW4.js → review-agent-CD4RCI0Y.js} +1 -1
  348. package/server/{review-agent-CIGOQYBD.js → review-agent-CHhI66UP.js} +60 -47
  349. package/server/{review-artifacts-nRDPuMxd.js → review-artifacts-DSMRIfuJ.js} +7 -6
  350. package/server/{review-context-2uj-YQ8J.js → review-context-oFuBbiEE.js} +8 -8
  351. package/server/{in-flight-guard-CAAkqPLu.js → review-convoy-liveness-CpzrcJ5F.js} +3 -44
  352. package/server/review-status-BZH8h-6W.js +3 -0
  353. package/server/review-status-emit-CUExtHd5.js +50 -0
  354. package/server/{review-status-enrichment-Dci-ZwEt.js → review-status-enrichment-QV_hQkgS.js} +4 -4
  355. package/server/{review-status-source-CxuEjLGg.js → review-status-source-CpvJnvnQ.js} +24 -3
  356. package/server/review-status-source-ylw5QZUR.js +3 -0
  357. package/server/{review-status-sync-BTOpxtTC.js → review-status-sync-483sujRo.js} +2 -2
  358. package/server/{review-status-sync-DSDK3OMy.js → review-status-sync-NaWvI9Xf.js} +1 -1
  359. package/server/review-status-yljtTd-q.js +7521 -0
  360. package/server/{review-verdict-feedback-CTd4QMBu.js → review-verdict-feedback-BPDn4li_.js} +1 -1
  361. package/server/{review-verdict-feedback-CCjVA7Uk.js → review-verdict-feedback-CELeUinh.js} +48 -8
  362. package/server/{rollup-FGsKki9R.js → rollup-DTNvelz9.js} +8 -8
  363. package/server/{rollup-BKQC7jp4.js → rollup-DYZfq1c4.js} +1 -1
  364. package/server/{scanner-CnqEZeDy.js → scanner-CV35oSn4.js} +8 -7
  365. package/server/{sequence-io-D909zgeH.js → sequence-io-DF_8iuhV.js} +4 -4
  366. package/server/{sequencer-agent-CzkcK6P5.js → sequencer-agent-B2WeCtGi.js} +5 -5
  367. package/server/server.js +1952 -578
  368. package/server/{service-CLeAoU6G.js → service-Br9rpBNA.js} +81 -64
  369. package/server/{session-fork-CHI1XvL9.js → session-fork-D0LY152N.js} +2 -2
  370. package/server/{session-history-BT3IvqhC.js → session-history-BUyK29eq.js} +4 -4
  371. package/server/{settings-BTMvpNFU.js → settings-Bse1Pdcj.js} +3 -3
  372. package/server/settings-CdvIF84R.js +2 -0
  373. package/server/{settings-C0zgxOGf.js → settings-CvVGqNEs.js} +3 -2
  374. package/server/{shadow-engineering-BJfgm-hX.js → shadow-engineering-BWLa8ODz.js} +2 -2
  375. package/server/{shadow-state-7a-524T8.js → shadow-state-B4fpKxOO.js} +2 -2
  376. package/server/{shadow-state-DnDyjujH.js → shadow-state-FV6PHfEW.js} +1 -1
  377. package/server/{shadow-utils-Db3oroFG.js → shadow-utils-D7asqxOZ.js} +2 -2
  378. package/server/{ship-log-D9MlVzYU.js → ship-log-xplJ8t75.js} +1 -1
  379. package/server/{smart-compaction-CV2ukKND.js → smart-compaction-CPp2Ykf6.js} +1 -1
  380. package/server/{smart-compaction-KCYScAU1.js → smart-compaction-D3U_79f-.js} +8 -7
  381. package/server/{spawn-planning-session-qUC2VWu3.js → spawn-planning-session-1nFi3gfk.js} +1 -1
  382. package/server/{spawn-planning-session-DKpdFyOC.js → spawn-planning-session-DGfZ5B8D.js} +17 -17
  383. package/server/{specialist-completion-Ky9wCDpb.js → specialist-completion-Br48eiDP.js} +1 -1
  384. package/server/{specialist-context-Bn3dCGS2.js → specialist-context-cVbGnTa3.js} +5 -5
  385. package/server/{specialist-handoff-logger-CMEwYxa2.js → specialist-handoff-logger-DK-GTz4s.js} +2 -2
  386. package/server/{specialist-logs-C5p8G7tx.js → specialist-logs-Cl5-hqT8.js} +3 -3
  387. package/server/{specialists-CC4r-c2s.js → specialists-CNfYO3G2.js} +975 -227
  388. package/server/{specialists-jiuuyVkp.js → specialists-Cicieuzu.js} +18 -18
  389. package/server/{specialists-CShuVGWT.js → specialists-JHsdU3pA.js} +1 -1
  390. package/server/{specialists-DM6bWjsi.js → specialists-Tdezg_6N.js} +1 -1
  391. package/server/specs-Bt7WJDoC.js +3 -0
  392. package/server/src-CRmCHlma.js +11408 -0
  393. package/server/{src-CXmtj0im.js → src-Ck028hjO.js} +6 -6
  394. package/server/{src-CdmnTM2m.js → src-UWcGe0Ix.js} +3 -3
  395. package/server/{stack-health-Bn3o8FBX.js → stack-health-CJLMrLBl.js} +1 -1
  396. package/server/{stack-health-DxSdG9cW.js → stack-health-DqSqx0zv.js} +7 -5
  397. package/server/{stale-task-claims-KJKxxiiQ.js → stale-task-claims-CYFOUNlT.js} +4 -4
  398. package/server/{staleness-CT34nwr9.js → staleness-BQ-0gMYK.js} +1 -1
  399. package/server/{staleness-DPm7ClwA.js → staleness-D47CUJok.js} +1 -1
  400. package/server/{state-home-Cn_Qu8IX.js → state-home-BYV7qZTW.js} +2 -2
  401. package/server/{state-mapping-BL_-3Yt8.js → state-mapping-BVldLhBf.js} +1 -1
  402. package/server/{state-migrate-BGg2ZaOt.js → state-migrate-CvvBtS0Y.js} +4 -4
  403. package/server/{stuck-remediation-s9_2qfi6.js → stuck-remediation-Wt0UVvu1.js} +1 -1
  404. package/server/{stuck-remediation-DYuPRYYw.js → stuck-remediation-mkLC6G_t.js} +79 -22
  405. package/server/{substrate-bug-weights-service-B-FwCs5V.js → substrate-bug-weights-service-XfLAKnmK.js} +3 -3
  406. package/server/{summary-fork-DpcxN9tf.js → summary-fork-CD7GOts0.js} +2 -2
  407. package/server/{summary-fork-D1RAk9rJ.js → summary-fork-xiXBnWG9.js} +8 -8
  408. package/server/supervisor/{injection-budget-Csw5tqfJ.js → injection-budget-B5SbvDx2.js} +1 -1
  409. package/server/supervisor/{paths-DehGY2Fj.js → paths-K3noE4N_.js} +1 -1
  410. package/server/supervisor/pty-supervisor.js +49 -3
  411. package/server/supervisor/{pty-token-x-ea28Us.js → pty-token-B7lp0ElT.js} +2 -2
  412. package/server/{supervisor-wM4ooB5O.js → supervisor-DL788vos.js} +3 -3
  413. package/server/supervisor-UWiQNK-y.js +2 -0
  414. package/server/{swarm-readiness-DlP_UjHq.js → swarm-readiness-BV14DF5N.js} +3 -3
  415. package/server/{system-prerequisites-DUDj1YHf.js → system-prerequisites-pdWG6ZQs.js} +2 -2
  416. package/server/{teardown-workspace-DeTTImn-.js → teardown-workspace-l2F4_zim.js} +15 -16
  417. package/server/{test-agent-queue-MbxX5vqq.js → test-agent-queue-qakFIIGz.js} +6 -6
  418. package/server/{test-verdict-bWYBtqBg.js → test-verdict-BJYDggMm.js} +1 -1
  419. package/server/{test-verdict-gscuksPv.js → test-verdict-Gw-btEfb.js} +1 -1
  420. package/server/{tldr-daemon-BYFkts95.js → tldr-daemon-BKOYB616.js} +1 -1
  421. package/server/{tldr-daemon-C-69c3OI.js → tldr-daemon-CBaWkV9k.js} +2 -2
  422. package/server/{tmux-R7N7y-Mh.js → tmux-B1Wbxz5o.js} +3 -3
  423. package/server/{tmux-B6z7h_vZ.js → tmux-DQ6jB76i.js} +1 -1
  424. package/server/{launcher-generator-BBWG_SiS.js → tmux-dedup-DbN6MGzM.js} +428 -9
  425. package/server/{token-BK6t8BIT.js → token-Cxbk023d.js} +2 -2
  426. package/server/{token-util-DxXu-vd1.js → token-util-CLq2MmQt.js} +1 -1
  427. package/server/token-util-zlz9U0ki.js +3 -0
  428. package/server/{tracker-config-G6latr8C.js → tracker-config-DZ8Zn2nQ.js} +2 -2
  429. package/server/{tracker-utils-DHv5pSDT.js → tracker-utils-L0FKtjq2.js} +3 -3
  430. package/server/{traefik-connect-Df2uXPsQ.js → traefik-connect-bNX6jKkb.js} +1 -1
  431. package/server/{tunnel-CDVKJpRv.js → tunnel-BAm1XgjG.js} +3 -3
  432. package/server/{tunnel-DGdUkGoZ.js → tunnel-CjSnHdTc.js} +1 -1
  433. package/server/{types-5M0lupud.js → types-q67TYYg5.js} +1 -1
  434. package/server/uat-promote-verification-CKB9ZrKC.js +92 -0
  435. package/server/uat-train-Cu-4nvbf.js +2 -0
  436. package/server/uat-train-D5UjcyAa.js +0 -0
  437. package/server/{validate-IfDGkaVR.js → validate-Cxsx5Uz1.js} +8 -6
  438. package/server/{validation-CC9OPqJZ.js → validation-DEaTZafj.js} +1 -1
  439. package/server/{validation-Dw1pzDzr.js → validation-VZgJxmqc.js} +4 -4
  440. package/server/{verification-artifact-B3itKTxu.js → verification-artifact-C85cRTc_.js} +1 -1
  441. package/server/{verification-artifact-TVFSz_q1.js → verification-artifact-g3yuxQDL.js} +1 -1
  442. package/server/{verification-runner-BW4HOKAz.js → verification-runner-DlZI8yhw.js} +1 -1
  443. package/server/{verification-runner-CkgX6EtI.js → verification-runner-KDZIsBj4.js} +40 -18
  444. package/server/{vtt-parser-DYPbKcIJ.js → vtt-parser-Jr94BF3Y.js} +1 -1
  445. package/server/{work-agent-prompt-Du8Vh2aJ.js → work-agent-prompt-C-vuP3_J.js} +20 -9
  446. package/server/workflows-CHrx_hcW.js +2 -0
  447. package/server/{workflows-mbQzh6mQ.js → workflows-D0oip4eV.js} +161 -78
  448. package/server/{workspace--8tnhDI0.js → workspace-BqFg__wH.js} +1 -1
  449. package/server/{workspace-BPUws1-_.js → workspace-C0fH3aek.js} +3 -3
  450. package/server/workspace-anchor-drift-B4gMRHl4.js +3 -0
  451. package/server/workspace-anchor-drift-CZKofakh.js +224 -0
  452. package/server/{workspace-config-CIVWZOQr.js → workspace-config-B123aZl-.js} +1 -1
  453. package/server/workspace-manager-CDTKjjdU.js +3 -0
  454. package/server/{workspace-manager-CBhNdzE4.js → workspace-manager-CwO-Hek7.js} +156 -117
  455. package/server/{workspace-metadata-_WygnyoX.js → workspace-metadata-CQv00QwK.js} +2 -2
  456. package/server/{workspace-metadata-BzHnwwX4.js → workspace-metadata-D4M8BM4W.js} +1 -1
  457. package/server/{workspaces-Do_9J0LQ.js → workspaces-j1e_6aAT.js} +719 -292
  458. package/sync-sources/dev-skills/pan-dashboard-restart/SKILL.md +34 -10
  459. package/sync-sources/hooks/linear-mcp-auth-hook +97 -0
  460. package/sync-sources/rules/ask-user-question-self-contained.md +9 -0
  461. package/sync-sources/skills/pan-close/SKILL.md +5 -3
  462. package/sync-sources/skills/pan-peer-review/SKILL.md +195 -0
  463. package/sync-sources/skills/pan-reload/SKILL.md +3 -3
  464. package/sync-sources/skills/pan-restart/SKILL.md +5 -4
  465. package/sync-sources/skills/pan-review/SKILL.md +7 -1
  466. package/sync-sources/skills/pan-sync-main/SKILL.md +9 -8
  467. package/sync-sources/skills/pipeline-status/SKILL.md +10 -1
  468. package/sync-sources/skills/workspace-add-repo/SKILL.md +16 -1
  469. package/server/activity-logger-OEUBdfZ8.js +0 -3
  470. package/server/agent-state-Bc3tzUC8.js +0 -3
  471. package/server/agents-wi9NWzs2.js +0 -3
  472. package/server/archive-planning-BZDgzoEj.js +0 -3
  473. package/server/cli-B86rejVV.js +0 -3
  474. package/server/conversation-service-BLd3MYsG.js +0 -3
  475. package/server/deacon-kiQrb4ZT.js +0 -4
  476. package/server/deacon-swarm-C-GwfjJy.js +0 -2
  477. package/server/deploy-window-DkZraDyj.js +0 -3
  478. package/server/dist-Bzy0y69j.js +0 -3
  479. package/server/flywheel-merge-order-UU0tiUld.js +0 -245
  480. package/server/flywheel-merge-order-UUcsCDb6.js +0 -2
  481. package/server/forge-CNFnyqps.js +0 -270
  482. package/server/forge-DXnS_YFH.js +0 -2
  483. package/server/git-utils-D0_yhCgF.js +0 -3
  484. package/server/github-pr-lookup-D16NGsSO.js +0 -44
  485. package/server/hume-ccTf4wTX.js +0 -3
  486. package/server/inspect-agent-Brtz0URj.js +0 -2
  487. package/server/merge-ops-CR44oU9-.js +0 -2
  488. package/server/merge-set-bUqbm3yc.js +0 -3
  489. package/server/merge-sync-BJYeOODr.js +0 -3
  490. package/server/merge-verification-BkaOqPsw.js +0 -124
  491. package/server/project-repos-DXKQsc_m.js +0 -3
  492. package/server/projects-vjjcmiN8.js +0 -3
  493. package/server/public/assets/index-CWeMerGO.js +0 -804
  494. package/server/public/assets/index-CenuJ3Cw.css +0 -1
  495. package/server/public/assets/mermaid-GHXKKRXX-CpPWAFwE.js +0 -1
  496. package/server/rally-zhhtXuDP.js +0 -3
  497. package/server/record-CN0pj4_5.js +0 -3
  498. package/server/record-update-bLJxAXH4.js +0 -3
  499. package/server/resume-BFv1PGpA.js +0 -3
  500. package/server/review-status-btEYlaxA.js +0 -3
  501. package/server/review-status-kZj_KyCk.js +0 -1470
  502. package/server/settings-66A6uvIA.js +0 -2
  503. package/server/specs-C8Wsn2XO.js +0 -3
  504. package/server/src-DtcUOZCq.js +0 -4826
  505. package/server/supervisor-FTJAIsAK.js +0 -2
  506. package/server/token-util-DuPuNriz.js +0 -3
  507. package/server/tracker-utils-B4ylXZQK.js +0 -3
  508. package/server/uat-train-B05BWkp-.js +0 -2
  509. package/server/uat-train-DDSrSoV1.js +0 -2152
  510. package/server/workflows-BQu4RFQ-.js +0 -2
  511. package/server/workspace-manager-CWT55qeI.js +0 -3
@@ -1,21 +1,23 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Ft as resolveProjectForIssue, Gr as sessionFilePath, Nt as readIssueRecordSync, Ot as init_record, Ur as packageRoot, Vr as init_paths, f as loadConfigSync, hr as AGENTS_DIR, t as init_config_yaml, tt as resolveModel } from "./config-yaml-DySPNmKN.js";
3
- import { a as init_activity_logger, n as emitActivityEntrySync } from "./activity-logger-DDlOIAML.js";
4
- import { D as killSession, E as isPaneDead, M as listSessionNames, w as init_tmux } from "./tmux-R7N7y-Mh.js";
5
- import { b as setReviewStatusSync, c as getReviewStatusSync, l as init_review_status } from "./review-status-kZj_KyCk.js";
6
- import { l as removeAgentSync, o as init_agents, s as listAgentIdsByPrefixSync } from "./agents-EbI0zCJl.js";
7
- import { Jt as providerDefaultHarnessSync, Xn as init_agent_state, Yn as getAgentStateSync, b as init_agents$1, qt as init_staffing } from "./queries-CjNIf-Ub.js";
2
+ import { Ir as AGENTS_DIR, Pt as init_record, Vt as resolveProjectForIssue, ci as init_paths, f as loadConfigSync, fi as sessionFilePath, t as init_config_yaml, tt as resolveModel, ui as packageRoot, zt as readIssueRecordSync } from "./config-yaml-CmOPzmBb.js";
3
+ import { o as init_activity_logger, r as emitActivityEntrySync } from "./activity-logger-CyteR4JO.js";
4
+ import { D as killSession, E as isPaneDead, M as listSessionNames, w as init_tmux } from "./tmux-B1Wbxz5o.js";
5
+ import { S as setReviewStatusSync, f as init_review_status, u as getReviewStatusSync } from "./review-status-yljtTd-q.js";
6
+ import { l as removeAgentSync, o as init_agents, s as listAgentIdsByPrefixSync } from "./agents-C5rWYhb6.js";
7
+ import { $t as providerDefaultHarnessSync, Qt as init_staffing, b as init_agents$1, ir as init_agent_state, rr as getAgentStateSync } from "./queries-DHJm7bTd.js";
8
8
  import { a as PAN_DIRNAME, p as init_types } from "./types-hraoaQIp.js";
9
- import { a as init_review_convoy_liveness, c as init_review_monitor, i as evaluateReviewConvoyLiveness, n as createPromiseCoalescer, r as init_in_flight_guard, s as REVIEW_SUB_ROLES } from "./in-flight-guard-CAAkqPLu.js";
10
- import { n as shouldSkipDispatchAsMerged, t as init_merge_verification } from "./merge-verification-BkaOqPsw.js";
11
- import { n as formatTier1Summary, o as init_review_context, t as buildReviewContext } from "./review-context-2uj-YQ8J.js";
12
- import { a as resolveConflictGate, i as init_conflict_gate, r as getCachedConflictGateMergeability, t as buildRealConflictGateDeps } from "./conflict-gate-BaCVrH-N.js";
9
+ import { a as init_review_monitor, i as REVIEW_SUB_ROLES, n as init_review_convoy_liveness, t as evaluateReviewConvoyLiveness } from "./review-convoy-liveness-CpzrcJ5F.js";
10
+ import { n as init_merge_verification, r as shouldSkipDispatchAsMerged } from "./merge-verification-x3JO8Dtz.js";
11
+ import { n as createPromiseCoalescer, r as init_in_flight_guard } from "./in-flight-guard-Bq3epG58.js";
12
+ import { n as formatTier1Summary, o as init_review_context, t as buildReviewContext } from "./review-context-oFuBbiEE.js";
13
+ import { a as resolveConflictGate, i as init_conflict_gate, r as getCachedConflictGateMergeability, t as buildRealConflictGateDeps } from "./conflict-gate-B9cN3SBi.js";
13
14
  import { Effect } from "effect";
14
15
  import { existsSync } from "fs";
15
16
  import { dirname, join } from "path";
16
17
  import { mkdir, readFile, rm, writeFile } from "fs/promises";
17
18
  import { exec } from "child_process";
18
19
  import { promisify } from "util";
20
+ import { createHash } from "node:crypto";
19
21
  //#region ../../lib/cloister/review-resume-decision.ts
20
22
  /**
21
23
  * PAN-1862 — the resume-vs-fresh decision for a review agent, as a PURE function so it is locked
@@ -151,7 +153,7 @@ async function buildConvoyPromptPromise(opts) {
151
153
  }
152
154
  async function spawnReviewSubRoleForIssuePromise(opts) {
153
155
  try {
154
- const { saveAgentState, spawnRun, getAgentStateSync, getLatestSessionIdSync, resumeAgent, stopAgent } = await import("./agents-wi9NWzs2.js");
156
+ const { saveAgentState, spawnRun, getAgentStateSync, getLatestSessionIdSync, resumeAgent, stopAgent } = await import("./agents-BKKkxKgK.js");
155
157
  const cfg = loadConfigSync().config;
156
158
  const outputPath = opts.outputPath ?? reviewerAgentOutputPath(opts.workspace, opts.runId, opts.subRole);
157
159
  const synthesisAgentId = opts.synthesisAgentId ?? `agent-${opts.issueId.toLowerCase()}-review`;
@@ -239,7 +241,7 @@ async function spawnReviewSubRoleForIssuePromise(opts) {
239
241
  if (opts.forkedSessionId) run.reviewForkedFromParent = true;
240
242
  await Effect.runPromise(saveAgentState(run));
241
243
  try {
242
- const { notifyPipelineSync } = await import("./pipeline-notifier-BJr8gQX6.js");
244
+ const { notifyPipelineSync } = await import("./pipeline-notifier-ImNXknf0.js");
243
245
  notifyPipelineSync({
244
246
  type: "reviewer_started",
245
247
  issueId: opts.issueId,
@@ -270,14 +272,14 @@ async function computeConvoyScope(issueId, workspace) {
270
272
  let carried = [];
271
273
  let scope = "changed";
272
274
  try {
273
- const { getReviewStatusSync } = await import("./review-status-btEYlaxA.js");
275
+ const { getReviewStatusSync } = await import("./review-status-BZH8h-6W.js");
274
276
  scope = resolveReReviewScope(issueId);
275
277
  const priorVerdicts = getReviewStatusSync(issueId)?.reviewerVerdicts;
276
278
  let changedFiles;
277
279
  const anchors = new Set(Object.values(priorVerdicts ?? {}).map((v) => v?.atCommit).filter((c) => !!c));
278
280
  if (anchors.size === 1) try {
279
- const { resolveWorkspaceRepoRootsSync } = await import("./project-repos-DXKQsc_m.js");
280
- const primaryRepoDir = resolveWorkspaceRepoRootsSync(issueId, workspace)[0]?.dir ?? workspace;
281
+ const { resolvePrimaryWorkspaceRepoDirSync } = await import("./project-repos-CRE6Ykow.js");
282
+ const primaryRepoDir = resolvePrimaryWorkspaceRepoDirSync(issueId, workspace);
281
283
  const { stdout } = await execAsync$1(`git diff --name-only ${[...anchors][0]}..HEAD`, {
282
284
  cwd: primaryRepoDir,
283
285
  encoding: "utf-8",
@@ -315,13 +317,13 @@ async function computeConvoyScope(issueId, workspace) {
315
317
  */
316
318
  async function forkParentSessionForReviewer(parentAgentId, workspace) {
317
319
  try {
318
- const { getLatestSessionIdSync } = await import("./agents-wi9NWzs2.js");
320
+ const { getLatestSessionIdSync } = await import("./agents-BKKkxKgK.js");
319
321
  const parentSessionId = getLatestSessionIdSync(parentAgentId);
320
322
  if (!parentSessionId) return null;
321
323
  const src = sessionFilePath(workspace, parentSessionId);
322
324
  const { existsSync } = await import("fs");
323
325
  if (!existsSync(src)) return null;
324
- const { reserveForkSession, copySessionForFork } = await import("./session-fork-CHI1XvL9.js");
326
+ const { reserveForkSession, copySessionForFork } = await import("./session-fork-D0LY152N.js");
325
327
  const reserved = await reserveForkSession(workspace);
326
328
  await copySessionForFork(src, reserved.sessionFile, { fullHistory: true });
327
329
  return reserved.sessionId;
@@ -359,13 +361,13 @@ async function launchConvoyReviewersPromise(params) {
359
361
  }
360
362
  }
361
363
  const cfg = loadConfigSync().config;
362
- const { getAgentStateSync } = await import("./agents-wi9NWzs2.js");
364
+ const { getAgentStateSync } = await import("./agents-BKKkxKgK.js");
363
365
  const parentState = getAgentStateSync(params.synthesisAgentId);
364
366
  const reviewerResults = await Promise.all(params.inScope.map(async (subRole) => {
365
367
  const outputPath = reviewerAgentOutputPath(params.workspace, params.runId, subRole);
366
368
  let forkedSessionId;
367
369
  if (params.forkFromParent && parentState?.harness === "claude-code" && !params.harness) try {
368
- const { getLatestSessionIdSync } = await import("./agents-wi9NWzs2.js");
370
+ const { getLatestSessionIdSync } = await import("./agents-BKKkxKgK.js");
369
371
  const reviewerModel = params.model ?? resolveModel("review", subRole, cfg);
370
372
  if (!!!getLatestSessionIdSync(reviewerAgentId(params.issueId, subRole)) && reviewerModel === parentState.model) {
371
373
  forkedSessionId = await forkParentSessionForReviewer(params.synthesisAgentId, params.workspace) ?? void 0;
@@ -386,7 +388,7 @@ async function launchConvoyReviewersPromise(params) {
386
388
  allowHost: params.allowHost ?? false
387
389
  }));
388
390
  if (!result.success) try {
389
- const { messageAgent } = await import("./agents-wi9NWzs2.js");
391
+ const { messageAgent } = await import("./agents-BKKkxKgK.js");
390
392
  await messageAgent(params.synthesisAgentId, `REVIEWER_FAILED ${subRole} ${result.error ?? result.message}`);
391
393
  } catch (signalErr) {
392
394
  console.warn(`[review-agent] Failed to signal ${subRole} spawn failure to ${params.synthesisAgentId}:`, signalErr);
@@ -413,7 +415,7 @@ async function launchConvoyReviewersPromise(params) {
413
415
  async function handleReviewDiscoveryReady(issueId, opts = {}) {
414
416
  const normalized = issueId.toUpperCase();
415
417
  const parentId = `agent-${normalized.toLowerCase()}-review`;
416
- const { saveAgentState, getAgentStateSync } = await import("./agents-wi9NWzs2.js");
418
+ const { saveAgentState, getAgentStateSync } = await import("./agents-BKKkxKgK.js");
417
419
  const parent = getAgentStateSync(parentId);
418
420
  if (!parent) return {
419
421
  success: false,
@@ -553,6 +555,30 @@ var init_review_convoy = __esmMin((() => {
553
555
  * - killAllReviewSessions — kill ALL review sessions on shutdown
554
556
  * (pan down)
555
557
  */
558
+ async function deriveReviewRunHead8(issueId, workspace) {
559
+ try {
560
+ const { resolvePrimaryWorkspaceRepoDirSync, resolveWorkspaceRepoRootsSync } = await import("./project-repos-CRE6Ykow.js");
561
+ if (resolveWorkspaceRepoRootsSync(issueId, workspace).some((root) => root.isPolyrepo)) {
562
+ const { snapshotWorkspaceHeadsPromise } = await import("./git-utils-CI6cwyyC.js");
563
+ const anchor = await snapshotWorkspaceHeadsPromise(issueId, workspace);
564
+ return anchor ? createHash("sha1").update(anchor).digest("hex").substring(0, 8) : "unknown";
565
+ }
566
+ const probeDir = resolvePrimaryWorkspaceRepoDirSync(issueId, workspace);
567
+ const { stdout } = await execAsync([
568
+ "git",
569
+ "rev-parse",
570
+ "--short=8",
571
+ "HEAD"
572
+ ].join(" "), {
573
+ cwd: probeDir,
574
+ encoding: "utf-8",
575
+ timeout: 1e4
576
+ });
577
+ return stdout.trim() || "unknown";
578
+ } catch {
579
+ return "unknown";
580
+ }
581
+ }
556
582
  function buildReviewRolePrompt(opts) {
557
583
  const inScope = opts.inScopeSubRoles && opts.inScopeSubRoles.length > 0 ? opts.inScopeSubRoles : [...REVIEW_SUB_ROLES];
558
584
  const carried = opts.carriedSubRoles ?? [];
@@ -641,8 +667,8 @@ function buildReviewRolePrompt(opts) {
641
667
  "including a per-reviewer verdict for each sub-role that RAN this cycle",
642
668
  "(PAN-1862 — this is what lets the next re-review skip provably-clean reviewers;",
643
669
  "do NOT list carried-forward sub-roles, their verdicts are already recorded):",
644
- ` pan admin specialists done review ${opts.issueId} --status passed --notes "<one-line summary>" --reviewers "${inScope.map((r) => `${r}=passed`).join(",")}"`,
645
- ` pan admin specialists done review ${opts.issueId} --status blocked --notes "<one-line top blocker>" --reviewers "<subRole>=passed|blocked for each of: ${inScope.join(", ")}>"`,
670
+ ` pan admin specialists done review ${opts.issueId} --status passed --notes "<one-line summary>" --run-id "${opts.runId}" --reviewers "${inScope.map((r) => `${r}=passed`).join(",")}"`,
671
+ ` pan admin specialists done review ${opts.issueId} --status blocked --notes "<one-line top blocker>" --run-id "${opts.runId}" --reviewers "<subRole>=passed|blocked for each of: ${inScope.join(", ")}>"`,
646
672
  "",
647
673
  "After running the signal command above, STOP and wait — do not exit, do not run",
648
674
  "any further commands. The session stays open for the next review cycle.",
@@ -689,8 +715,8 @@ function buildSelfReviewPrompt(opts) {
689
715
  `3. Write your findings to ${reviewReportPath}.`,
690
716
  "",
691
717
  "Then signal the verdict with the Overdeck CLI (exactly one):",
692
- ` pan admin specialists done review ${opts.issueId} --status passed --notes "<one-line summary>"`,
693
- ` pan admin specialists done review ${opts.issueId} --status blocked --notes "<one-line top blocker>"`,
718
+ ` pan admin specialists done review ${opts.issueId} --status passed --notes "<one-line summary>" --run-id "${opts.runId}"`,
719
+ ` pan admin specialists done review ${opts.issueId} --status blocked --notes "<one-line top blocker>" --run-id "${opts.runId}"`,
694
720
  "",
695
721
  "After running the signal command above, STOP and wait — do not exit, do not run",
696
722
  "any further commands. The session stays open for the next review cycle.",
@@ -751,13 +777,9 @@ async function spawnReviewRoleForIssuePromise(opts) {
751
777
  let staleRunId = false;
752
778
  let currentRunId;
753
779
  if (!paneDead && !opts.force) try {
754
- const { resolveWorkspaceRepoRootsSync } = await import("./project-repos-DXKQsc_m.js");
755
- const { stdout } = await execAsync("git rev-parse --short=8 HEAD", {
756
- cwd: resolveWorkspaceRepoRootsSync(opts.issueId, opts.workspace)[0]?.dir ?? opts.workspace,
757
- encoding: "utf-8",
758
- timeout: 1e4
759
- });
760
- currentRunId = `agent-${opts.issueId.toLowerCase()}-review-${stdout.trim()}`;
780
+ const head8 = await deriveReviewRunHead8(opts.issueId, opts.workspace);
781
+ if (head8 === "unknown") throw new Error("workspace HEAD unavailable");
782
+ currentRunId = `agent-${opts.issueId.toLowerCase()}-review-${head8}`;
761
783
  const synthReviewRunId = getAgentStateSync(reviewSessionName)?.reviewRunId;
762
784
  if (!synthReviewRunId || synthReviewRunId !== currentRunId) {
763
785
  staleRunId = true;
@@ -829,7 +851,7 @@ async function spawnReviewRoleForIssuePromise(opts) {
829
851
  };
830
852
  }
831
853
  try {
832
- const { archiveFeedbackFiles } = await import("./feedback-writer-D3a22RCd.js");
854
+ const { archiveFeedbackFiles } = await import("./feedback-writer-D1fm-5Z8.js");
833
855
  await Effect.runPromise(archiveFeedbackFiles(opts.workspace));
834
856
  } catch {}
835
857
  try {
@@ -846,7 +868,7 @@ async function spawnReviewRoleForIssuePromise(opts) {
846
868
  };
847
869
  }
848
870
  try {
849
- const { notifyPipelineSync } = await import("./pipeline-notifier-BJr8gQX6.js");
871
+ const { notifyPipelineSync } = await import("./pipeline-notifier-ImNXknf0.js");
850
872
  notifyPipelineSync({
851
873
  type: "task_queued",
852
874
  specialist: "review-agent",
@@ -854,20 +876,11 @@ async function spawnReviewRoleForIssuePromise(opts) {
854
876
  });
855
877
  } catch {}
856
878
  try {
857
- const { spawnRun, saveAgentState, getAgentState, getAgentStateSync, getLatestSessionIdSync, resumeAgent, wipeAgentStateDirs } = await import("./agents-wi9NWzs2.js");
879
+ const { spawnRun, saveAgentState, getAgentState, getAgentStateSync, getLatestSessionIdSync, resumeAgent, wipeAgentStateDirs } = await import("./agents-BKKkxKgK.js");
858
880
  const workAgentState = await Effect.runPromise(getAgentState(`agent-${opts.issueId.toLowerCase()}`));
859
881
  const allowHost = opts.allowHost === true || workAgentState?.hostOverride === true;
860
- let headSha = "unknown";
861
- try {
862
- const { resolveWorkspaceRepoRootsSync } = await import("./project-repos-DXKQsc_m.js");
863
- const { stdout } = await execAsync("git rev-parse --short=8 HEAD", {
864
- cwd: resolveWorkspaceRepoRootsSync(opts.issueId, opts.workspace)[0]?.dir ?? opts.workspace,
865
- encoding: "utf-8",
866
- timeout: 1e4
867
- });
868
- headSha = stdout.trim();
869
- } catch {}
870
- const runId = headSha !== "unknown" ? `agent-${opts.issueId.toLowerCase()}-review-${headSha}` : `agent-${opts.issueId.toLowerCase()}-review`;
882
+ const head8 = await deriveReviewRunHead8(opts.issueId, opts.workspace);
883
+ const runId = head8 !== "unknown" ? `agent-${opts.issueId.toLowerCase()}-review-${head8}` : `agent-${opts.issueId.toLowerCase()}-review`;
871
884
  const reviewDir = join(opts.workspace, PAN_DIRNAME, "review", runId);
872
885
  let contextManifestPath;
873
886
  let tier1Summary;
@@ -1229,4 +1242,4 @@ var init_review_agent = __esmMin((() => {
1229
1242
  //#endregion
1230
1243
  export { isReviewStaleSync as a, purgeReviewAgentsForIssue as c, buildConvoyPrompt as d, handleReviewDiscoveryReady as f, reviewResumeDecision as h, isReviewSessionForIssue as i, resolveReviewMode as l, spawnReviewSubRoleForIssue as m, init_review_agent as n, killAllReviewSessions as o, resolveReReviewScope as p, isExtendedReviewEnabled as r, killAllReviewerSessions as s, PARENT_REVIEW_TIMEOUT_MS as t, spawnReviewRoleForIssue as u };
1231
1244
 
1232
- //# sourceMappingURL=review-agent-CIGOQYBD.js.map
1245
+ //# sourceMappingURL=review-agent-CHhI66UP.js.map
@@ -1,8 +1,8 @@
1
- import { Yn as init_issue_id, qn as extractNumberSync } from "./config-yaml-DySPNmKN.js";
2
- import { a as init_activity_logger, n as emitActivityEntrySync } from "./activity-logger-DDlOIAML.js";
3
- import { a as upsertMergeSetSync, i as init_merge_set, n as ensureMergeSetForIssueSync, o as withRepoArtifactUrlSync, s as withRepoStateSync } from "./merge-set-DJ8-UErs.js";
4
- import { i as findPlanSync, o as init_io } from "./io-C9kF1wtJ.js";
5
- import { n as getForgeAdapter } from "./forge-CNFnyqps.js";
1
+ import { gr as init_issue_id, mr as extractNumberSync } from "./config-yaml-CmOPzmBb.js";
2
+ import { o as init_activity_logger, r as emitActivityEntrySync } from "./activity-logger-CyteR4JO.js";
3
+ import { c as withRepoArtifactUrlSync, i as init_merge_set, l as withRepoStateSync, n as ensureMergeSetForIssueSync, s as upsertMergeSetSync } from "./merge-set-DH7ot3yz.js";
4
+ import { i as findPlanSync, o as init_io } from "./io-VHvc0Ssp.js";
5
+ import { n as getForgeAdapter, r as init_forge } from "./forge-CZbSg6Ds.js";
6
6
  import { join } from "node:path";
7
7
  import { Data, Effect } from "effect";
8
8
  import { existsSync } from "node:fs";
@@ -11,6 +11,7 @@ import { exec } from "node:child_process";
11
11
  import { promisify } from "node:util";
12
12
  //#region ../../lib/review-artifacts.ts
13
13
  init_io();
14
+ init_forge();
14
15
  init_issue_id();
15
16
  init_merge_set();
16
17
  init_activity_logger();
@@ -153,4 +154,4 @@ const createReviewArtifactsForIssue = (issueId, workspacePath) => Effect.tryProm
153
154
  //#endregion
154
155
  export { createReviewArtifactsForIssue };
155
156
 
156
- //# sourceMappingURL=review-artifacts-nRDPuMxd.js.map
157
+ //# sourceMappingURL=review-artifacts-DSMRIfuJ.js.map
@@ -1,12 +1,12 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { ir as FsError, mr as init_errors } from "./config-yaml-DySPNmKN.js";
2
+ import { Fr as init_errors, Tr as FsError } from "./config-yaml-CmOPzmBb.js";
3
3
  import { a as PAN_DIRNAME, p as init_types } from "./types-hraoaQIp.js";
4
- import { c as resolveWorkspaceRepoRootsSync, r as init_project_repos } from "./project-repos-B6GycDh9.js";
5
- import { i as findPlanSync, o as init_io, u as readPlan } from "./io-C9kF1wtJ.js";
6
- import { d as getDevrootPathSync, f as init_config } from "./config-BZ0sHTju.js";
7
- import { a as init_lifecycle_io, i as findXBriefByIssueSync } from "./lifecycle-io-BREGpnLk.js";
8
- import { n as init_review_verdict_feedback } from "./review-verdict-feedback-CCjVA7Uk.js";
9
- import { n as init_github_pr_lookup, r as lookupPullRequestNumberForBranch } from "./github-pr-lookup-D16NGsSO.js";
4
+ import { l as resolveWorkspaceRepoRootsSync, r as init_project_repos } from "./project-repos-C0nuoBGv.js";
5
+ import { i as findPlanSync, o as init_io, u as readPlan } from "./io-VHvc0Ssp.js";
6
+ import { d as getDevrootPathSync, f as init_config } from "./config-Dr3pW6w6.js";
7
+ import { a as init_lifecycle_io, i as findXBriefByIssueSync } from "./lifecycle-io-D-lGdzK3.js";
8
+ import { n as init_review_verdict_feedback } from "./review-verdict-feedback-CELeUinh.js";
9
+ import { i as lookupPullRequestNumberForBranch, n as init_github_pr_lookup } from "./github-pr-lookup-BDq6Wznz.js";
10
10
  import { Effect } from "effect";
11
11
  import { existsSync } from "fs";
12
12
  import { join } from "path";
@@ -744,4 +744,4 @@ var init_review_context = __esmMin((() => {
744
744
  //#endregion
745
745
  export { getDiffStat as a, getDiffBase as i, formatTier1Summary as n, init_review_context as o, getChangedFiles as r, buildReviewContext as t };
746
746
 
747
- //# sourceMappingURL=review-context-2uj-YQ8J.js.map
747
+ //# sourceMappingURL=review-context-oFuBbiEE.js.map
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { w as init_tmux } from "./tmux-R7N7y-Mh.js";
2
+ import { w as init_tmux } from "./tmux-B1Wbxz5o.js";
3
3
  import "effect";
4
4
  import "fs";
5
5
  import "path";
@@ -52,47 +52,6 @@ function evaluateReviewConvoyLiveness(issueId, status, agents, now = Date.now())
52
52
  }
53
53
  var init_review_convoy_liveness = __esmMin((() => {}));
54
54
  //#endregion
55
- //#region ../../lib/cloister/in-flight-guard.ts
56
- function createPromiseCoalescer() {
57
- const inFlight = /* @__PURE__ */ new Map();
58
- return {
59
- run(key, task) {
60
- const existing = inFlight.get(key);
61
- if (existing) return existing;
62
- const p = task();
63
- inFlight.set(key, p);
64
- p.catch(() => {}).finally(() => inFlight.delete(key));
65
- return p;
66
- },
67
- isInFlight(key) {
68
- return inFlight.has(key);
69
- }
70
- };
71
- }
72
- function createInFlightGuard() {
73
- const inFlight = /* @__PURE__ */ new Set();
74
- return {
75
- run(key, task, onError) {
76
- if (inFlight.has(key)) return false;
77
- inFlight.add(key);
78
- (async () => {
79
- try {
80
- await task();
81
- } catch (err) {
82
- onError?.(err);
83
- } finally {
84
- inFlight.delete(key);
85
- }
86
- })();
87
- return true;
88
- },
89
- isInFlight(key) {
90
- return inFlight.has(key);
91
- }
92
- };
93
- }
94
- var init_in_flight_guard = __esmMin((() => {}));
95
- //#endregion
96
- export { init_review_convoy_liveness as a, init_review_monitor as c, evaluateReviewConvoyLiveness as i, createPromiseCoalescer as n, reviewTimestampMs as o, init_in_flight_guard as r, REVIEW_SUB_ROLES as s, createInFlightGuard as t };
55
+ export { init_review_monitor as a, REVIEW_SUB_ROLES as i, init_review_convoy_liveness as n, reviewTimestampMs as r, evaluateReviewConvoyLiveness as t };
97
56
 
98
- //# sourceMappingURL=in-flight-guard-CAAkqPLu.js.map
57
+ //# sourceMappingURL=review-convoy-liveness-CpzrcJ5F.js.map
@@ -0,0 +1,3 @@
1
+ import { S as setReviewStatusSync, d as getReviewStatusesSync, f as init_review_status, g as markWorkspaceStuck, i as clearReviewStatus, m as loadReviewStatuses, t as FEEDBACK_DELIVERY_STUCK_REASON, u as getReviewStatusSync } from "./review-status-yljtTd-q.js";
2
+ init_review_status();
3
+ export { FEEDBACK_DELIVERY_STUCK_REASON, clearReviewStatus, getReviewStatusSync, getReviewStatusesSync, loadReviewStatuses, markWorkspaceStuck, setReviewStatusSync };
@@ -0,0 +1,50 @@
1
+ import { f as init_review_status, u as getReviewStatusSync } from "./review-status-yljtTd-q.js";
2
+ import { t as enrichReviewStatus } from "./review-status-enrichment-QV_hQkgS.js";
3
+ import { Effect } from "effect";
4
+ import { isDeepStrictEqual } from "node:util";
5
+ //#region review-status-emit.ts
6
+ init_review_status();
7
+ function canonicalStatus(status) {
8
+ const canonical = { ...status };
9
+ delete canonical.reviewCoordinatorSessionName;
10
+ delete canonical.reviewSessionNames;
11
+ delete canonical.reviewSubStatuses;
12
+ return JSON.parse(JSON.stringify(canonical));
13
+ }
14
+ function sameCanonicalReviewStatus(left, right) {
15
+ return isDeepStrictEqual(canonicalStatus(left), canonicalStatus(right));
16
+ }
17
+ function emitReviewStatusChanged(append, issueId, status) {
18
+ append({
19
+ type: "review.status_changed",
20
+ timestamp: (/* @__PURE__ */ new Date()).toISOString(),
21
+ payload: {
22
+ issueId,
23
+ status
24
+ }
25
+ });
26
+ (async () => {
27
+ const enriched = await Effect.runPromise(enrichReviewStatus(issueId, status).pipe(Effect.timeout("5 seconds"), Effect.catch(() => Effect.succeed(null))));
28
+ if (!enriched) {
29
+ console.warn(`[pipeline] review-status enrichment timed out or failed for ${issueId}; unenriched event already appended`);
30
+ return;
31
+ }
32
+ if (!((enriched.reviewSessionNames?.length ?? 0) > 0 || !!enriched.reviewCoordinatorSessionName || !!enriched.reviewSubStatuses)) return;
33
+ const current = getReviewStatusSync(issueId);
34
+ if (!current || !sameCanonicalReviewStatus(current, status)) return;
35
+ append({
36
+ type: "review.status_changed",
37
+ timestamp: (/* @__PURE__ */ new Date()).toISOString(),
38
+ payload: {
39
+ issueId,
40
+ status: enriched
41
+ }
42
+ });
43
+ })().catch((err) => {
44
+ console.warn(`[pipeline] review-status enrichment patch failed for ${issueId}:`, err);
45
+ });
46
+ }
47
+ //#endregion
48
+ export { sameCanonicalReviewStatus as n, emitReviewStatusChanged as t };
49
+
50
+ //# sourceMappingURL=review-status-emit-CUExtHd5.js.map
@@ -1,5 +1,5 @@
1
- import { Tn as init_projects, zn as resolveProjectFromIssueSync } from "./config-yaml-DySPNmKN.js";
2
- import { M as listSessionNames, w as init_tmux } from "./tmux-R7N7y-Mh.js";
1
+ import { Gn as init_projects, ar as resolveProjectFromIssueSync } from "./config-yaml-CmOPzmBb.js";
2
+ import { M as listSessionNames, w as init_tmux } from "./tmux-B1Wbxz5o.js";
3
3
  import { Data, Effect } from "effect";
4
4
  import { existsSync } from "fs";
5
5
  import { join } from "path";
@@ -34,7 +34,7 @@ function mostRecentByTimestamp(sessionNames, parseTimestamp) {
34
34
  async function enrichReviewStatusPromise(issueId, status) {
35
35
  let allSessions = [];
36
36
  try {
37
- allSessions = [...await Effect.runPromise(listSessionNames())];
37
+ allSessions = [...await Effect.runPromise(listSessionNames().pipe(Effect.timeout("5 seconds")))];
38
38
  } catch {
39
39
  return status;
40
40
  }
@@ -124,4 +124,4 @@ const enrichReviewStatus = (issueId, status) => Effect.tryPromise({
124
124
  //#endregion
125
125
  export { enrichReviewStatusFromSessions as n, enrichReviewStatus as t };
126
126
 
127
- //# sourceMappingURL=review-status-enrichment-Dci-ZwEt.js.map
127
+ //# sourceMappingURL=review-status-enrichment-QV_hQkgS.js.map
@@ -23,7 +23,27 @@ function readReviewStatusMap() {
23
23
  return null;
24
24
  }
25
25
  }
26
- var TERMINAL_REVIEW, TERMINAL_TEST, reader;
26
+ function registerCanonicalReviewStatusResolver(fn) {
27
+ canonicalResolver = fn;
28
+ }
29
+ function resolveCanonicalReviewStatus(issueId) {
30
+ if (!canonicalResolver) return {
31
+ available: false,
32
+ status: null
33
+ };
34
+ try {
35
+ return {
36
+ available: true,
37
+ status: canonicalResolver(issueId)
38
+ };
39
+ } catch {
40
+ return {
41
+ available: false,
42
+ status: null
43
+ };
44
+ }
45
+ }
46
+ var TERMINAL_REVIEW, TERMINAL_TEST, reader, canonicalResolver;
27
47
  var init_review_status_source = __esmMin((() => {
28
48
  TERMINAL_REVIEW = new Set([
29
49
  "passed",
@@ -32,8 +52,9 @@ var init_review_status_source = __esmMin((() => {
32
52
  ]);
33
53
  TERMINAL_TEST = new Set(["passed", "failed"]);
34
54
  reader = null;
55
+ canonicalResolver = null;
35
56
  }));
36
57
  //#endregion
37
- export { registerReviewStatusMapReader as a, readReviewStatusMap as i, init_review_status_source as n, isRoleTerminal as r, classifyAdvancingSessionLifecycle as t };
58
+ export { registerCanonicalReviewStatusResolver as a, readReviewStatusMap as i, init_review_status_source as n, registerReviewStatusMapReader as o, isRoleTerminal as r, resolveCanonicalReviewStatus as s, classifyAdvancingSessionLifecycle as t };
38
59
 
39
- //# sourceMappingURL=review-status-source-CxuEjLGg.js.map
60
+ //# sourceMappingURL=review-status-source-CpvJnvnQ.js.map
@@ -0,0 +1,3 @@
1
+ import { n as init_review_status_source, s as resolveCanonicalReviewStatus } from "./review-status-source-CpvJnvnQ.js";
2
+ init_review_status_source();
3
+ export { resolveCanonicalReviewStatus };
@@ -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-BEqFxlJc.js";
2
+ import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-BjuxvjdS.js";
3
3
  import { Effect } from "effect";
4
4
  //#region ../../lib/review-status-normalize.ts
5
5
  function normalizeReviewStatusSync(status) {
@@ -296,4 +296,4 @@ var init_review_status_sync = __esmMin((() => {
296
296
  //#endregion
297
297
  export { getMergeBlockerReconcileCandidatesSync as a, init_review_status_sync as c, init_review_status_normalize as d, normalizeReviewStatusSync as f, getMergeBlockerReconcileCandidates as i, markWorkspaceStuck as l, deleteReviewStatus as n, getReviewStatusFromDbSync as o, getAllReviewStatusesFromDb as r, getReviewStatusesFromDb as s, clearWorkspaceStuck as t, upsertReviewStatusSync as u };
298
298
 
299
- //# sourceMappingURL=review-status-sync-BTOpxtTC.js.map
299
+ //# sourceMappingURL=review-status-sync-483sujRo.js.map
@@ -1,3 +1,3 @@
1
- import { c as init_review_status_sync, t as clearWorkspaceStuck } from "./review-status-sync-BTOpxtTC.js";
1
+ import { c as init_review_status_sync, t as clearWorkspaceStuck } from "./review-status-sync-483sujRo.js";
2
2
  init_review_status_sync();
3
3
  export { clearWorkspaceStuck };