@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,12 +1,13 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Tn as init_projects, gn as getIssuePrefix } from "./config-yaml-DySPNmKN.js";
3
- import { C as init_specs, w as listSpecs } from "./io-C9kF1wtJ.js";
4
- import { f as init_config, m as loadConfigSync } from "./config-BZ0sHTju.js";
5
- import { r as init_factory, t as createTracker } from "./factory-CFibJuaw.js";
6
- import { A as createSettledTtlPromiseCache, N as withConcurrencyLimitPromise, _ as listOpenIssuesWithLabelsPromise, f as init_github_app, h as listIssuesWithAnyLabelPromise, j as init_concurrency } from "./github-app-C3QrAUd0.js";
7
- import { n as init_label_reconciler, t as STALE_PIPELINE_LABELS } from "./label-reconciler-B4iOAjlC.js";
8
- import { join } from "node:path";
2
+ import { Gn as init_projects, In as getIssuePrefix } from "./config-yaml-CmOPzmBb.js";
3
+ import { C as listSpecs, S as init_specs } from "./io-VHvc0Ssp.js";
4
+ import { f as init_config, m as loadConfigSync } from "./config-Dr3pW6w6.js";
5
+ import { r as init_factory, t as createTracker } from "./factory-CRoOpGsF.js";
6
+ import { A as createSettledTtlPromiseCache, N as withConcurrencyLimitPromise, _ as listOpenIssuesWithLabelsPromise, f as init_github_app, h as listIssuesWithAnyLabelPromise, j as init_concurrency } from "./github-app-CQ1Lo6LA.js";
7
+ import { n as init_label_reconciler, t as STALE_PIPELINE_LABELS } from "./label-reconciler--F85rufp.js";
8
+ import { join, resolve } from "node:path";
9
9
  import { Effect } from "effect";
10
+ import { realpath } from "node:fs/promises";
10
11
  import { execFile } from "node:child_process";
11
12
  import { promisify } from "node:util";
12
13
  //#region ../../lib/resource-utils.ts
@@ -112,11 +113,11 @@ function resolveProjectTrackerType(project) {
112
113
  if (project.github_repo) return "github";
113
114
  if (getIssuePrefix(project)) return "linear";
114
115
  if (project.gitlab_repo) return "gitlab";
115
- throw new Error(`Cannot resolve tracker for ${project.name}`);
116
+ throw new PipelineMembershipUnavailableError("tracker_unconfigured", `Cannot resolve tracker for ${project.name}`);
116
117
  }
117
118
  async function listProjectTrackerIssues(project) {
118
119
  const issuePrefix = getIssuePrefix(project)?.toUpperCase();
119
- if (!issuePrefix) throw new Error(`Missing issue_prefix for project ${project.name}`);
120
+ if (!issuePrefix) throw new PipelineMembershipUnavailableError("missing_issue_prefix", `Missing issue_prefix for project ${project.name}`);
120
121
  const trackerType = resolveProjectTrackerType(project);
121
122
  const trackerConfig = loadConfigSync().trackers[trackerType];
122
123
  const tracker = createTracker({
@@ -144,6 +145,14 @@ async function listProjectTrackerIssues(project) {
144
145
  }];
145
146
  });
146
147
  }
148
+ async function withUnavailableReason(reason, operation) {
149
+ try {
150
+ return await operation();
151
+ } catch (error) {
152
+ if (error instanceof PipelineMembershipUnavailableError) throw error;
153
+ throw new PipelineMembershipUnavailableError(reason, error instanceof Error ? error.message : String(error));
154
+ }
155
+ }
147
156
  function issueNumber(issueId) {
148
157
  const match = issueId.match(/-(\d+)$/);
149
158
  if (!match) throw new Error(`Cannot derive GitHub issue number from ${issueId}`);
@@ -164,52 +173,156 @@ function projectRepositories(project) {
164
173
  defaultBranch: repo.default_branch ?? project.workspace?.default_branch ?? "main"
165
174
  }));
166
175
  }
176
+ async function normalizeRepoPath(path) {
177
+ return realpath(path).catch(() => resolve(path));
178
+ }
179
+ async function hasGitRef(repoPath, branch, run) {
180
+ const ref = branch.startsWith("origin/") ? `refs/remotes/${branch}` : `refs/heads/${branch}`;
181
+ try {
182
+ await run("git", [
183
+ "rev-parse",
184
+ "--verify",
185
+ "--quiet",
186
+ ref
187
+ ], repoPath);
188
+ return true;
189
+ } catch {
190
+ return false;
191
+ }
192
+ }
193
+ async function resolveRepositoryDefaultBranch(repoPath, configured, run = defaultDeps.run) {
194
+ if (configured) {
195
+ if (await hasGitRef(repoPath, configured, run)) return configured;
196
+ if (await hasGitRef(repoPath, `origin/${configured}`, run)) return `origin/${configured}`;
197
+ }
198
+ for (const ref of ["refs/remotes/origin/HEAD", "HEAD"]) try {
199
+ const branch = (await run("git", [
200
+ "symbolic-ref",
201
+ "--quiet",
202
+ "--short",
203
+ ref
204
+ ], repoPath)).trim();
205
+ if (branch && await hasGitRef(repoPath, branch, run)) return branch;
206
+ } catch {}
207
+ for (const branch of [
208
+ "main",
209
+ "master",
210
+ "origin/main",
211
+ "origin/master"
212
+ ]) if (await hasGitRef(repoPath, branch, run)) return branch;
213
+ throw new PipelineMembershipUnavailableError("default_branch_unresolved", `Could not resolve default branch for repository ${repoPath} (configured: ${configured ?? "none"})`);
214
+ }
215
+ async function snapshotBranchRefs(repoPath, defaultBranch, refPatterns, run = defaultDeps.run) {
216
+ const unavailable = () => new PipelineMembershipUnavailableError("repo_unavailable", `Workspace repo path is not a git repository: ${repoPath}`);
217
+ let gitTopLevel;
218
+ try {
219
+ gitTopLevel = (await run("git", ["rev-parse", "--show-toplevel"], repoPath)).trim();
220
+ } catch (error) {
221
+ if (error instanceof PipelineMembershipUnavailableError) throw error;
222
+ throw unavailable();
223
+ }
224
+ const [normalizedRepoPath, normalizedGitTopLevel] = await Promise.all([normalizeRepoPath(repoPath), normalizeRepoPath(gitTopLevel)]);
225
+ if (normalizedRepoPath !== normalizedGitTopLevel) throw unavailable();
226
+ const resolvedDefaultBranch = await resolveRepositoryDefaultBranch(repoPath, defaultBranch, run);
227
+ const [refs, unmergedRefs, firstParentShas] = await Promise.all([
228
+ run("git", [
229
+ "for-each-ref",
230
+ "--format=%(objectname) %(refname:short)",
231
+ ...refPatterns
232
+ ], repoPath),
233
+ run("git", [
234
+ "for-each-ref",
235
+ `--no-merged=${resolvedDefaultBranch}`,
236
+ "--format=%(refname:short)",
237
+ ...refPatterns
238
+ ], repoPath),
239
+ run("git", [
240
+ "rev-list",
241
+ "--first-parent",
242
+ resolvedDefaultBranch
243
+ ], repoPath)
244
+ ]);
245
+ return {
246
+ refs,
247
+ unmergedRefs,
248
+ firstParentShas
249
+ };
250
+ }
251
+ function parseBranchRefLine(line) {
252
+ const spaceIdx = line.indexOf(" ");
253
+ return {
254
+ tipSha: spaceIdx === -1 ? null : line.slice(0, spaceIdx),
255
+ ref: spaceIdx === -1 ? line : line.slice(spaceIdx + 1)
256
+ };
257
+ }
258
+ function classifyBranchRefLine(line, unmergedSet, firstParentShas) {
259
+ const { tipSha, ref } = parseBranchRefLine(line);
260
+ if (unmergedSet.has(ref)) return "unmerged";
261
+ if (tipSha && !firstParentShas.has(tipSha)) return "merged-work";
262
+ return "pointer";
263
+ }
264
+ async function gatherIssueBranchContainment(project, issueId, run = defaultDeps.run) {
265
+ const normalizedIssueId = issueId.toLowerCase();
266
+ const refPatterns = [
267
+ `refs/heads/feature/${normalizedIssueId}`,
268
+ `refs/remotes/origin/feature/${normalizedIssueId}`,
269
+ `refs/heads/strike/${normalizedIssueId}`,
270
+ `refs/remotes/origin/strike/${normalizedIssueId}`
271
+ ];
272
+ const snapshots = await Promise.all(projectRepositories(project).map(async (repository) => ({
273
+ repository,
274
+ snapshot: await snapshotBranchRefs(repository.path, repository.defaultBranch, refPatterns, run)
275
+ })));
276
+ const result = {
277
+ unmergedRefs: [],
278
+ mergedWorkRefs: [],
279
+ pointerRefs: []
280
+ };
281
+ for (const { repository, snapshot } of snapshots) {
282
+ const unmergedSet = new Set(snapshot.unmergedRefs.split("\n").map((ref) => ref.trim()).filter(Boolean));
283
+ const firstParentShas = new Set(snapshot.firstParentShas.split("\n").map((sha) => sha.trim()).filter(Boolean));
284
+ const refLines = snapshot.refs.split("\n").map((line) => line.trim()).filter(Boolean);
285
+ for (const line of refLines) {
286
+ const { ref } = parseBranchRefLine(line);
287
+ const qualifiedRef = `${repository.path}:${ref}`;
288
+ switch (classifyBranchRefLine(line, unmergedSet, firstParentShas)) {
289
+ case "unmerged":
290
+ result.unmergedRefs.push(qualifiedRef);
291
+ break;
292
+ case "merged-work":
293
+ result.mergedWorkRefs.push(qualifiedRef);
294
+ break;
295
+ case "pointer":
296
+ result.pointerRefs.push(qualifiedRef);
297
+ break;
298
+ }
299
+ }
300
+ }
301
+ return result;
302
+ }
167
303
  /** Gather all durable pipeline lenses for one project in batches. */
168
304
  async function gatherProjectLensSignals(project, deps = defaultDeps) {
169
305
  const issuePrefix = getIssuePrefix(project)?.toUpperCase();
170
- if (!issuePrefix) throw new Error(`Missing issue_prefix for project ${project.name}`);
306
+ if (!issuePrefix) throw new PipelineMembershipUnavailableError("missing_issue_prefix", `Missing issue_prefix for project ${project.name}`);
171
307
  const githubRepository = project.github_repo?.split("/");
172
308
  const owner = githubRepository?.[0];
173
309
  const repo = githubRepository?.[1];
174
310
  if (project.github_repo && (!owner || !repo)) throw new Error(`Invalid github_repo for ${project.name}: ${project.github_repo}`);
175
- const branchSnapshots = projectRepositories(project).map(async (repository) => {
176
- const [refs, unmergedRefs, firstParentShas] = await Promise.all([
177
- deps.run("git", [
178
- "for-each-ref",
179
- "--format=%(objectname) %(refname:short)",
180
- "refs/heads/feature/*",
181
- "refs/remotes/origin/feature/*",
182
- "refs/heads/strike/*",
183
- "refs/remotes/origin/strike/*"
184
- ], repository.path),
185
- deps.run("git", [
186
- "for-each-ref",
187
- `--no-merged=${repository.defaultBranch}`,
188
- "--format=%(refname:short)",
189
- "refs/heads/feature/*",
190
- "refs/remotes/origin/feature/*",
191
- "refs/heads/strike/*",
192
- "refs/remotes/origin/strike/*"
193
- ], repository.path),
194
- deps.run("git", [
195
- "rev-list",
196
- "--first-parent",
197
- repository.defaultBranch
198
- ], repository.path)
199
- ]);
200
- return {
201
- refs,
202
- unmergedRefs,
203
- firstParentShas
204
- };
205
- });
311
+ const repositories = projectRepositories(project);
312
+ const branchRefPatterns = [
313
+ "refs/heads/feature/*",
314
+ "refs/remotes/origin/feature/*",
315
+ "refs/heads/strike/*",
316
+ "refs/remotes/origin/strike/*"
317
+ ];
318
+ const branchSnapshots = repositories.map((repository) => snapshotBranchRefs(repository.path, repository.defaultBranch, branchRefPatterns, deps.run));
206
319
  const [trackerIssues, openIssues, phaseLabeledIssues, openPrs, branches, specIssueIds] = await Promise.all([
207
- project.github_repo ? Promise.resolve([]) : deps.listTrackerIssues(project),
208
- owner && repo ? deps.listOpenIssues(owner, repo) : Promise.resolve([]),
209
- owner && repo ? deps.listPhaseLabeledIssues(owner, repo) : Promise.resolve([]),
210
- owner && repo ? deps.listOpenPullRequests(owner, repo) : Promise.resolve([]),
320
+ project.github_repo ? Promise.resolve([]) : withUnavailableReason("forge_unavailable", () => deps.listTrackerIssues(project)),
321
+ owner && repo ? withUnavailableReason("forge_unavailable", () => deps.listOpenIssues(owner, repo)) : Promise.resolve([]),
322
+ owner && repo ? withUnavailableReason("forge_unavailable", () => deps.listPhaseLabeledIssues(owner, repo)) : Promise.resolve([]),
323
+ owner && repo ? withUnavailableReason("forge_unavailable", () => deps.listOpenPullRequests(owner, repo)) : Promise.resolve([]),
211
324
  Promise.all(branchSnapshots),
212
- deps.listSpecIssueIds(project.path)
325
+ withUnavailableReason("gather_failed", () => deps.listSpecIssueIds(project.path))
213
326
  ]);
214
327
  const candidates = /* @__PURE__ */ new Set();
215
328
  const labelsByIssue = /* @__PURE__ */ new Map();
@@ -254,17 +367,16 @@ async function gatherProjectLensSignals(project, deps = defaultDeps) {
254
367
  const unmerged = new Set(snapshot.unmergedRefs.split("\n").map((ref) => ref.trim()).filter(Boolean));
255
368
  const firstParentShas = new Set(snapshot.firstParentShas.split("\n").map((sha) => sha.trim()).filter(Boolean));
256
369
  for (const line of refLines) {
257
- const spaceIdx = line.indexOf(" ");
258
- const tipSha = spaceIdx === -1 ? null : line.slice(0, spaceIdx);
259
- const ref = spaceIdx === -1 ? line : line.slice(spaceIdx + 1);
370
+ const { ref } = parseBranchRefLine(line);
260
371
  const id = issueIdFromRef(ref, issuePrefix);
261
372
  if (id) {
262
373
  candidates.add(id);
263
374
  branchIssues.add(id);
264
375
  const headRef = ref.replace(/^origin\//, "");
265
376
  headRefsByIssue.set(id, new Set([...headRefsByIssue.get(id) ?? [], headRef]));
266
- if (unmerged.has(ref)) unmergedBranchIssues.add(id);
267
- else if (tipSha && !firstParentShas.has(tipSha)) mergedBranchWorkIssues.add(id);
377
+ const classification = classifyBranchRefLine(line, unmerged, firstParentShas);
378
+ if (classification === "unmerged") unmergedBranchIssues.add(id);
379
+ else if (classification === "merged-work") mergedBranchWorkIssues.add(id);
268
380
  }
269
381
  }
270
382
  }
@@ -274,7 +386,7 @@ async function gatherProjectLensSignals(project, deps = defaultDeps) {
274
386
  const issueStateCandidates = unknownIssueIds.filter((id) => openPrIssues.has(id) || branchIssues.has(id));
275
387
  const issueStateCandidateSet = new Set(issueStateCandidates);
276
388
  for (const id of unknownIssueIds) if (!issueStateCandidateSet.has(id)) candidates.delete(id);
277
- const issueStates = issueStateCandidates.length > 0 ? await deps.listIssueStates(owner, repo, issueStateCandidates.map(issueNumber)) : [];
389
+ const issueStates = issueStateCandidates.length > 0 ? await withUnavailableReason("forge_unavailable", () => deps.listIssueStates(owner, repo, issueStateCandidates.map(issueNumber))) : [];
278
390
  const stateByNumber = new Map(issueStates.map((entry) => [entry.number, entry.state]));
279
391
  for (const id of issueStateCandidates) {
280
392
  const state = stateByNumber.get(issueNumber(id));
@@ -287,7 +399,7 @@ async function gatherProjectLensSignals(project, deps = defaultDeps) {
287
399
  `feature/${id.toLowerCase()}`,
288
400
  `strike/${id.toLowerCase()}`
289
401
  ]))];
290
- const mergedHeads = new Set(await deps.listMergedPullRequestHeads(owner, repo, candidateHeads));
402
+ const mergedHeads = new Set(await withUnavailableReason("forge_unavailable", () => deps.listMergedPullRequestHeads(owner, repo, candidateHeads)));
291
403
  for (const id of openCandidates) if ([
292
404
  ...headRefsByIssue.get(id) ?? [],
293
405
  `feature/${id.toLowerCase()}`,
@@ -329,7 +441,7 @@ async function gatherProjectLensSignalsForProjects(projects, gather = gatherProj
329
441
  error
330
442
  }));
331
443
  }
332
- var execFileAsync, GRAPHQL_ALIAS_CHUNK_SIZE, cachedOpenPullRequests, defaultDeps;
444
+ var execFileAsync, GRAPHQL_ALIAS_CHUNK_SIZE, cachedOpenPullRequests, PipelineMembershipUnavailableError, defaultDeps, PIPELINE_PROJECT_CONCURRENCY;
333
445
  var init_pipeline_membership_gather = __esmMin((() => {
334
446
  init_github_app();
335
447
  init_concurrency();
@@ -342,6 +454,14 @@ var init_pipeline_membership_gather = __esmMin((() => {
342
454
  execFileAsync = promisify(execFile);
343
455
  GRAPHQL_ALIAS_CHUNK_SIZE = 50;
344
456
  cachedOpenPullRequests = createSettledTtlPromiseCache(3e4);
457
+ PipelineMembershipUnavailableError = class extends Error {
458
+ reason;
459
+ constructor(reason, message) {
460
+ super(message);
461
+ this.name = "PipelineMembershipUnavailableError";
462
+ this.reason = reason;
463
+ }
464
+ };
345
465
  defaultDeps = {
346
466
  listOpenIssues: listOpenIssuesWithLabelsPromise,
347
467
  listPhaseLabeledIssues: (owner, repo) => listIssuesWithAnyLabelPromise(owner, repo, STALE_PIPELINE_LABELS),
@@ -360,61 +480,9 @@ var init_pipeline_membership_gather = __esmMin((() => {
360
480
  return stdout;
361
481
  }
362
482
  };
483
+ PIPELINE_PROJECT_CONCURRENCY = 3;
363
484
  }));
364
485
  //#endregion
365
- //#region ../../lib/pipeline-membership.ts
366
- /**
367
- * Classify a single issue's pipeline membership from its durable lens signals.
368
- *
369
- * Decisions (see PAN-1980):
370
- * - A closed issue is subtracted from the pipeline regardless of lingering
371
- * branch/label/agent/workspace state (§2d), EXCEPT a still-open PR — a live,
372
- * mergeable artifact that must be closed (`zombie_pr`).
373
- * - L1-merged is the merge oracle; a squash-merged branch that L2 still calls
374
- * "unmerged" is treated as merged.
375
- * - An open issue with a branch but no PR is `planned_backlog` (in the pipeline,
376
- * needs a PR or disposition) — distinct from `in_flight` so it does not
377
- * inflate throughput.
378
- */
379
- function resolvePipelineMembership(s) {
380
- const branchLive = s.hasConventionBranch && s.branchUnmerged && !s.hasMergedPr;
381
- const lenses = {
382
- L1_openPr: s.hasOpenPr,
383
- L2_unmergedBranch: branchLive,
384
- L3_issueOpen: s.issueOpen,
385
- L4_phaseLabel: s.phaseLabel
386
- };
387
- const result = (bucket, reason) => {
388
- const labelDrift = s.phaseLabel !== null && (bucket === "clean_terminal" || !s.issueOpen) ? "stale_present" : s.issueOpen && s.hasOpenPr && s.phaseLabel === null ? "stale_absent" : null;
389
- return {
390
- issueId: s.issueId,
391
- inPipeline: bucket !== "clean_terminal",
392
- bucket,
393
- reasons: [reason],
394
- labelDrift,
395
- lenses
396
- };
397
- };
398
- if (!s.issueOpen) {
399
- if (s.hasOpenPr) return result("zombie_pr", "issue is closed but a PR is still open — close/reconcile the PR");
400
- return result("clean_terminal", "issue closed; no open PR — terminal (any leftover branch/label/agent is cleanup, not pipeline)");
401
- }
402
- if (s.hasOpenPr) return result("in_flight", "open issue with an open PR — active work");
403
- if (s.hasMergedPr) return result("post_merge_limbo", "open issue with a merged PR — merged but never closed out; run close-out");
404
- if (branchLive) return result("planned_backlog", "open issue with an unmerged convention branch (feature/ or strike/) but no PR — needs a PR or disposition");
405
- if (s.hasConventionBranch) {
406
- if (s.hasMergedBranchWork) return result("post_merge_limbo", "open issue whose branch work is contained in main but with no merged PR — landed via a non-PR path; run close-out");
407
- return result("planned_backlog", "open issue with a convention branch but no unique commits — created, work not yet landed; needs work or disposition");
408
- }
409
- if (s.hasXbriefSpec) return result("planned_backlog", PLANNED_BACKLOG_SPEC_ONLY_REASON);
410
- if (s.explicitlyReady) return result("planned_backlog", "open issue carries the explicit ready label — ready to start");
411
- return result("clean_terminal", "open issue with no branch and no PR — backlog, never started");
412
- }
413
- var PLANNED_BACKLOG_SPEC_ONLY_REASON;
414
- var init_pipeline_membership = __esmMin((() => {
415
- PLANNED_BACKLOG_SPEC_ONLY_REASON = "open issue with an xBRIEF spec but no branch/PR — planned work whose plan encodes code paths that age; needs starting or re-planning";
416
- }));
417
- //#endregion
418
- export { gatherProjectLensSignalsForProjects as a, init_resource_utils as c, gatherProjectLensSignals as i, parseIssueIdFromTextSync as l, init_pipeline_membership as n, init_pipeline_membership_gather as o, resolvePipelineMembership as r, listOpenPullRequestsSnapshot as s, PLANNED_BACKLOG_SPEC_ONLY_REASON as t };
486
+ export { gatherProjectLensSignals as a, listIssueStatesBatched as c, mapPipelineProjects as d, projectRepositories as f, parseIssueIdFromTextSync as g, init_resource_utils as h, gatherIssueBranchContainment as i, listMergedPullRequestHeadsBatched as l, snapshotBranchRefs as m, PipelineMembershipUnavailableError as n, gatherProjectLensSignalsForProjects as o, resolveRepositoryDefaultBranch as p, classifyBranchRefLine as r, init_pipeline_membership_gather as s, PIPELINE_PROJECT_CONCURRENCY as t, listOpenPullRequestsSnapshot as u };
419
487
 
420
- //# sourceMappingURL=pipeline-membership-mY3GprlK.js.map
488
+ //# sourceMappingURL=pipeline-membership-gather-CET40frr.js.map
@@ -0,0 +1,3 @@
1
+ import { a as gatherProjectLensSignals, c as listIssueStatesBatched, d as mapPipelineProjects, f as projectRepositories, i as gatherIssueBranchContainment, l as listMergedPullRequestHeadsBatched, m as snapshotBranchRefs, n as PipelineMembershipUnavailableError, o as gatherProjectLensSignalsForProjects, p as resolveRepositoryDefaultBranch, r as classifyBranchRefLine, s as init_pipeline_membership_gather, t as PIPELINE_PROJECT_CONCURRENCY, u as listOpenPullRequestsSnapshot } from "./pipeline-membership-gather-CET40frr.js";
2
+ init_pipeline_membership_gather();
3
+ export { PIPELINE_PROJECT_CONCURRENCY, PipelineMembershipUnavailableError, classifyBranchRefLine, gatherIssueBranchContainment, gatherProjectLensSignals, gatherProjectLensSignalsForProjects, listIssueStatesBatched, listMergedPullRequestHeadsBatched, listOpenPullRequestsSnapshot, mapPipelineProjects, projectRepositories, resolveRepositoryDefaultBranch, snapshotBranchRefs };
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { o as getInternalTokenSync, s as init_internal_token, t as INTERNAL_TOKEN_HEADER } from "./internal-token-s0-oKybJ.js";
2
+ import { o as getInternalTokenSync, s as init_internal_token, t as INTERNAL_TOKEN_HEADER } from "./internal-token-DvMTQSOS.js";
3
3
  import { Effect } from "effect";
4
4
  //#region ../../lib/pipeline-notifier.ts
5
5
  /**
@@ -60,4 +60,4 @@ var init_pipeline_notifier = __esmMin((() => {
60
60
  //#endregion
61
61
  export { setPipelineHandlerSync as a, setPipelineHandler as i, notifyPipeline as n, notifyPipelineSync as r, init_pipeline_notifier as t };
62
62
 
63
- //# sourceMappingURL=pipeline-notifier-BXkJzDC4.js.map
63
+ //# sourceMappingURL=pipeline-notifier-BuQ0e4hF.js.map
@@ -1,3 +1,3 @@
1
- import { a as setPipelineHandlerSync, i as setPipelineHandler, n as notifyPipeline, r as notifyPipelineSync, t as init_pipeline_notifier } from "./pipeline-notifier-BXkJzDC4.js";
1
+ import { a as setPipelineHandlerSync, i as setPipelineHandler, n as notifyPipeline, r as notifyPipelineSync, t as init_pipeline_notifier } from "./pipeline-notifier-BuQ0e4hF.js";
2
2
  init_pipeline_notifier();
3
3
  export { notifyPipeline, notifyPipelineSync, setPipelineHandler, setPipelineHandlerSync };
@@ -0,0 +1,50 @@
1
+ import { n as init_review_status_source, s as resolveCanonicalReviewStatus } from "./review-status-source-CpvJnvnQ.js";
2
+ //#region ../../lib/cloister/post-merge-lifecycle-worker.ts
3
+ init_review_status_source();
4
+ const queue = /* @__PURE__ */ new Map();
5
+ let workerPromise = null;
6
+ function nextEntry() {
7
+ return [...queue.values()].find((entry) => !entry.running) ?? null;
8
+ }
9
+ async function drainQueue() {
10
+ for (let entry = nextEntry(); entry; entry = nextEntry()) {
11
+ entry.running = true;
12
+ const status = resolveCanonicalReviewStatus(entry.issueId);
13
+ if (!status.available || status.status?.mergeStatus !== "merged" || status.status.mergeStep !== "post-merge-cleanup") {
14
+ queue.delete(entry.issueId);
15
+ continue;
16
+ }
17
+ try {
18
+ const { postMergeLifecycle } = await import("./merge-agent-DrXa1CpW.js");
19
+ await postMergeLifecycle(entry.issueId, entry.projectPath, entry.sourceBranch, { skipDeploy: true });
20
+ console.log(`[deacon] Completed pending post-merge lifecycle for ${entry.issueId}`);
21
+ } catch (error) {
22
+ console.warn(`[deacon] Pending post-merge lifecycle retry failed for ${entry.issueId}: ${error}`);
23
+ } finally {
24
+ queue.delete(entry.issueId);
25
+ }
26
+ }
27
+ }
28
+ function startWorker() {
29
+ if (workerPromise || !nextEntry()) return;
30
+ workerPromise = drainQueue().finally(() => {
31
+ workerPromise = null;
32
+ if (nextEntry()) startWorker();
33
+ });
34
+ }
35
+ function enqueuePostMergeLifecycle(issueId, projectPath, sourceBranch) {
36
+ const normalizedIssueId = issueId.trim().toUpperCase();
37
+ if (!normalizedIssueId || queue.has(normalizedIssueId)) return null;
38
+ queue.set(normalizedIssueId, {
39
+ issueId: normalizedIssueId,
40
+ projectPath,
41
+ sourceBranch,
42
+ running: false
43
+ });
44
+ startWorker();
45
+ return `Queued pending post-merge lifecycle for ${normalizedIssueId}`;
46
+ }
47
+ //#endregion
48
+ export { enqueuePostMergeLifecycle };
49
+
50
+ //# sourceMappingURL=post-merge-lifecycle-worker-DbO10pum.js.map
@@ -1,4 +1,4 @@
1
- import { Tn as init_projects, kn as listProjectsSync } from "./config-yaml-DySPNmKN.js";
1
+ import { Gn as init_projects, Yn as listProjectsSync } from "./config-yaml-CmOPzmBb.js";
2
2
  import { join } from "node:path";
3
3
  import { existsSync, readFileSync } from "node:fs";
4
4
  import { execFile } from "node:child_process";
@@ -159,4 +159,4 @@ async function fetchProjectReleaseStatus(projectKey, deps = {}) {
159
159
  //#endregion
160
160
  export { fetchProjectReleaseStatus };
161
161
 
162
- //# sourceMappingURL=project-pipelines-C0MWUeCU.js.map
162
+ //# sourceMappingURL=project-pipelines-Bim6bThI.js.map
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Tn as init_projects, yn as getProjectSync, zn as resolveProjectFromIssueSync } from "./config-yaml-DySPNmKN.js";
2
+ import { Gn as init_projects, ar as resolveProjectFromIssueSync, zn as getProjectSync } from "./config-yaml-CmOPzmBb.js";
3
3
  import "effect";
4
4
  import { existsSync } from "fs";
5
5
  import { join } from "path";
@@ -85,10 +85,14 @@ function computeWorkspaceRepoRootsSync(repos, issueId, workspacePath) {
85
85
  function resolveWorkspaceRepoRootsSync(issueId, workspacePath) {
86
86
  return computeWorkspaceRepoRootsSync(resolveProjectReposForIssueSync(issueId), issueId, workspacePath);
87
87
  }
88
+ /** Resolve the primary git checkout used by single-repo workspace probes. */
89
+ function resolvePrimaryWorkspaceRepoDirSync(issueId, workspacePath) {
90
+ return resolveWorkspaceRepoRootsSync(issueId, workspacePath)[0].dir;
91
+ }
88
92
  var init_project_repos = __esmMin((() => {
89
93
  init_projects();
90
94
  }));
91
95
  //#endregion
92
- export { resolveConfiguredReposSync as a, resolveWorkspaceRepoRootsSync as c, normalizeForgeSync as i, inferProjectForgeSync as n, resolveProjectReposForIssueSync as o, init_project_repos as r, resolveProjectReposFromResolvedIssueSync as s, computeWorkspaceRepoRootsSync as t };
96
+ export { resolveConfiguredReposSync as a, resolveProjectReposFromResolvedIssueSync as c, normalizeForgeSync as i, resolveWorkspaceRepoRootsSync as l, inferProjectForgeSync as n, resolvePrimaryWorkspaceRepoDirSync as o, init_project_repos as r, resolveProjectReposForIssueSync as s, computeWorkspaceRepoRootsSync as t };
93
97
 
94
- //# sourceMappingURL=project-repos-B6GycDh9.js.map
98
+ //# sourceMappingURL=project-repos-C0nuoBGv.js.map
@@ -0,0 +1,3 @@
1
+ import { l as resolveWorkspaceRepoRootsSync, o as resolvePrimaryWorkspaceRepoDirSync, r as init_project_repos } from "./project-repos-C0nuoBGv.js";
2
+ init_project_repos();
3
+ export { resolvePrimaryWorkspaceRepoDirSync, resolveWorkspaceRepoRootsSync };
@@ -0,0 +1,3 @@
1
+ import { $n as registerProject, An as extractTeamPrefix, Bn as getSpecialistConfig, Dn as PROJECTS_CONFIG_FILE, Fn as findProjectsByRallyProject, Gn as init_projects, Hn as getSpecialistRetention, In as getIssuePrefix, Jn as listProjects, Kn as initializeProjectsConfig, Ln as getProject, Mn as findProjectByPathSync, Nn as findProjectByTeam, On as ProjectRenameError, Pn as findProjectByTeamSync, Rn as getProjectSwarmHotspots, Un as hasProjects, Vn as getSpecialistPromptOverride, Wn as hasProjectsSync, Xn as loadProjectsConfig, Yn as listProjectsSync, Zn as loadProjectsConfigSync, ar as resolveProjectFromIssueSync, cr as saveProjectsConfigSync, dr as setProjectSwarmPolicySync, er as registerProjectSync, fr as unregisterProject, ir as resolveProjectFromIssue, jn as findProjectByPath, kn as createDefaultProjectsConfig, lr as setProjectAutoMergeDefaultSync, nr as renameProjectSync, or as resolveProjectPath, pr as unregisterProjectSync, qn as initializeProjectsConfigSync, rr as resolveInfraRepo, sr as saveProjectsConfig, tr as renameProject, ur as setProjectMergeTrainSync, zn as getProjectSync } from "./config-yaml-CmOPzmBb.js";
2
+ init_projects();
3
+ export { PROJECTS_CONFIG_FILE, ProjectRenameError, createDefaultProjectsConfig, extractTeamPrefix, findProjectByPath, findProjectByPathSync, findProjectByTeam, findProjectByTeamSync, findProjectsByRallyProject, getIssuePrefix, getProject, getProjectSwarmHotspots, getProjectSync, getSpecialistConfig, getSpecialistPromptOverride, getSpecialistRetention, hasProjects, hasProjectsSync, initializeProjectsConfig, initializeProjectsConfigSync, listProjects, listProjectsSync, loadProjectsConfig, loadProjectsConfigSync, registerProject, registerProjectSync, renameProject, renameProjectSync, resolveInfraRepo, resolveProjectFromIssue, resolveProjectFromIssueSync, resolveProjectPath, saveProjectsConfig, saveProjectsConfigSync, setProjectAutoMergeDefaultSync, setProjectMergeTrainSync, setProjectSwarmPolicySync, unregisterProject, unregisterProjectSync };
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { h as jsYaml, m as init_js_yaml } from "./config-yaml-DySPNmKN.js";
2
+ import { h as jsYaml, m as init_js_yaml } from "./config-yaml-CmOPzmBb.js";
3
3
  import { Data, Effect } from "effect";
4
4
  import { existsSync, readFileSync } from "fs";
5
5
  import { dirname, join } from "path";
@@ -669,4 +669,4 @@ var init_prompts = __esmMin((() => {
669
669
  //#endregion
670
670
  export { renderPrompt as n, init_prompts as t };
671
671
 
672
- //# sourceMappingURL=prompts-DxzFXuLl.js.map
672
+ //# sourceMappingURL=prompts-BEx08AIu.js.map
@@ -1,3 +1,3 @@
1
- import { B as getProviderEnvSync, H as init_providers, V as getProviderForModelSync } from "./config-yaml-DySPNmKN.js";
1
+ import { B as getProviderEnvSync, H as init_providers, V as getProviderForModelSync } from "./config-yaml-CmOPzmBb.js";
2
2
  init_providers();
3
3
  export { getProviderEnvSync, getProviderForModelSync };
@@ -1,9 +1,9 @@
1
1
  import { n as __esmMin, t as __commonJSMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { i as init_paths, r as ensureParentDir, s as resolveIssueMemoryRoot } from "./paths-D-xWGHdh.js";
3
- import { o as getPricingSync, s as init_cost } from "./cost-B2ddP6wq.js";
4
- import { d as init_cost_sync, f as insertCostEventSync, m as queryMemoryExtractionCostUsdSync } from "./cost-sync-BsN6ER0n.js";
5
- import { n as CLIPROXY_BASE_URL, t as CLIPROXY_AUTH_TOKEN, v as init_cliproxy$1 } from "./cliproxy-C8a1vtTU.js";
6
- import { i as init_settings, s as loadMemorySettings } from "./settings-BTMvpNFU.js";
2
+ import { i as init_paths, r as ensureParentDir, s as resolveIssueMemoryRoot } from "./paths-cXmOwSbh.js";
3
+ import { o as getPricingSync, s as init_cost } from "./cost-Bgcub5kW.js";
4
+ import { d as init_cost_sync, f as insertCostEventSync, m as queryMemoryExtractionCostUsdSync } from "./cost-sync-Dv3LUaNW.js";
5
+ import { n as CLIPROXY_BASE_URL, t as CLIPROXY_AUTH_TOKEN, v as init_cliproxy$1 } from "./cliproxy-C8mB3KuB.js";
6
+ import { i as init_settings, s as loadMemorySettings } from "./settings-Bse1Pdcj.js";
7
7
  import { join } from "path";
8
8
  import { randomUUID } from "crypto";
9
9
  import { readFile, writeFile } from "fs/promises";
@@ -8125,7 +8125,7 @@ async function readMemoryHealth(path) {
8125
8125
  };
8126
8126
  }
8127
8127
  async function emitMemoryHealthChanged(payload, timestamp) {
8128
- const { initEventStore } = await import("./event-store-EV2cMiXj.js");
8128
+ const { initEventStore } = await import("./event-store-ELqkVOn0.js");
8129
8129
  await (await initEventStore()).appendAsync({
8130
8130
  type: "memory.health_changed",
8131
8131
  timestamp,
@@ -8232,4 +8232,4 @@ var init_providers = __esmMin((() => {
8232
8232
  //#endregion
8233
8233
  export { updateMemoryHealth as i, extractWithProviderPolicy as n, init_health as r, init_providers as t };
8234
8234
 
8235
- //# sourceMappingURL=providers-qQAwGQDW.js.map
8235
+ //# sourceMappingURL=providers-evXhiQeg.js.map