@overdeck/desktop 0.45.24 → 0.47.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 (528) hide show
  1. package/drizzle/overdeck/0000_overdeck_init.sql +36 -1
  2. package/package.json +1 -1
  3. package/server/{acceptance-criteria-DDCnXF58.js → acceptance-criteria-10Ur5Dne.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-BNwqxseD.js} +6 -6
  7. package/server/{agent-gc-CHcnvonI.js → agent-gc-C3h9Or3a.js} +5 -5
  8. package/server/agent-state-CYXJVG72.js +3 -0
  9. package/server/agent-state-service-C63p_ftq.js +2 -0
  10. package/server/{agent-state-service-BsgWxZuB.js → agent-state-service-Ds6OeFvo.js} +15 -9
  11. package/server/{agents-EbI0zCJl.js → agents-J5mEnekq.js} +23 -16
  12. package/server/agents-ePFVoZbu.js +3 -0
  13. package/server/archive-planning-B2XplFzT.js +2 -0
  14. package/server/{archive-planning-Du25Jtst.js → archive-planning-BwhxeP7C.js} +22 -26
  15. package/server/{artifact-index-jobs-CbEDfCDu.js → artifact-index-jobs-D1q_vR3V.js} +2 -2
  16. package/server/{assemble-J2ZZ2C15.js → assemble-Bgwqv-Ro.js} +2 -2
  17. package/server/auto-spawn-consent-CQ9Bi9q6.js +1141 -0
  18. package/server/{backlog-auto-trigger-2R2jog7n.js → backlog-auto-trigger-n1lzPgN4.js} +3 -3
  19. package/server/{behavior-B3exJ42O.js → behavior-td6-xhQk.js} +2 -2
  20. package/server/boot-reconciled-stop-events-C7gGe3oB.js +44 -0
  21. package/server/bridge-pool-patrol-CYH2OLb5.js +136 -0
  22. package/server/{briefing-freshness-D1wzUIWv.js → briefing-freshness-DRqZ8lAz.js} +2 -2
  23. package/server/{build-info-Ie_D0_BT.js → build-info-7yiEpl6u.js} +5 -3
  24. package/server/{build-info-CZk_TITh.js → build-info-CpG__c63.js} +1 -1
  25. package/server/{checkpoint-manager-DwbQoqrC.js → checkpoint-manager-CkKmB0wZ.js} +1 -1
  26. package/server/{checkpoint-manager-BI1Wxoku.js → checkpoint-manager-DBcyNR8w.js} +2 -2
  27. package/server/checkpoint-worker.js +1 -1
  28. package/server/{checkpoints-CQB1h765.js → checkpoints-D95apurL.js} +2 -2
  29. package/server/{checkpoints-BJIs5QIA.js → checkpoints-Wm963lm8.js} +1 -1
  30. package/server/{claude-hooks-provision-8Ngo8TpT.js → claude-hooks-provision-4RPxNkE8.js} +1 -1
  31. package/server/{claude-hooks-provision-D8GXF3_s.js → claude-hooks-provision-Bjitl9aI.js} +13 -2
  32. package/server/{claude-permissions-DNWEVV6z.js → claude-permissions-CpbpvUQ2.js} +2 -2
  33. package/server/{claude-settings-overlay-DWy-Bb4Y.js → claude-settings-overlay-BzkHYDwR.js} +1 -1
  34. package/server/{claude-settings-overlay-CEdaqpWI.js → claude-settings-overlay-_H9Yrzab.js} +2 -2
  35. package/server/cli-CjOCSnfj.js +3 -0
  36. package/server/{cli-RoOx5DUf.js → cli-Cte9ZFGn.js} +9 -9
  37. package/server/{cliproxy-C8a1vtTU.js → cliproxy-C5fMJ7rY.js} +2 -2
  38. package/server/{cliproxy-fHfIeiGd.js → cliproxy-DaAbWMjC.js} +1 -1
  39. package/server/{close-issue-DoOifFIK.js → close-issue-BPh1ARCF.js} +5 -5
  40. package/server/{closed-issue-reaper-CktPXo8m.js → closed-issue-reaper-DHRfRMrp.js} +1 -1
  41. package/server/{closed-issue-reaper-Bk3SU4RC.js → closed-issue-reaper-DoOZqGFK.js} +88 -17
  42. package/server/{codex-BZXGhUVB.js → codex-BzGDW_d3.js} +36 -7
  43. package/server/{codex-GcHuUF-k.js → codex-o8FJwzmy.js} +1 -1
  44. package/server/{codex-parser-CFZ1_1Jl.js → codex-parser-Dt-ycU8L.js} +2 -2
  45. package/server/compaction-continuation-CvXpbZ4w.js +200 -0
  46. package/server/{config-CKxYiCmX.js → config-Bi3u1VK7.js} +4 -3
  47. package/server/{config-BZ0sHTju.js → config-BvLe652W.js} +2 -2
  48. package/server/{config-DzV30TOm.js → config-CL3Gyvja.js} +1 -1
  49. package/server/{config-yaml-DySPNmKN.js → config-yaml-CxdwhAIA.js} +276 -14
  50. package/server/conflict-gate-CX80JYYS.js +3 -0
  51. package/server/{conflict-gate-BaCVrH-N.js → conflict-gate-E4nt7ZeS.js} +60 -14
  52. package/server/{context-layers-igZ4FI4_.js → context-layers-C_IIysnm.js} +3 -3
  53. package/server/{context-layers-BrPmE__h.js → context-layers-DAG83UZt.js} +2 -2
  54. package/server/{control-settings-BQp7_4uD.js → control-settings-CiqGxXnc.js} +56 -19
  55. package/server/{conversation-compaction-eQB5CkOe.js → conversation-compaction-BE3CNtHF.js} +1 -1
  56. package/server/{conversation-compaction-CgrR8YYp.js → conversation-compaction-D6-yLtqt.js} +8 -8
  57. package/server/{conversation-service-DPJ71F33.js → conversation-service-DBxoYMDl.js} +10 -8
  58. package/server/conversation-service-D_TS2b1r.js +3 -0
  59. package/server/{conversations-CAsJF9kh.js → conversations-BKDVpB-3.js} +1 -1
  60. package/server/{conversations-6AfUfbwc.js → conversations-D0UEdLtk.js} +4 -4
  61. package/server/{cost-R-m6Yi-W.js → cost-DS1s0DbG.js} +3 -3
  62. package/server/{cost-B2ddP6wq.js → cost-DpgYmYqR.js} +12 -2
  63. package/server/{cost-sync-BsN6ER0n.js → cost-sync-tOCCGnEt.js} +3 -3
  64. package/server/{dag-B1ucnjDU.js → dag-BtkgLeqY.js} +2 -2
  65. package/server/{dangerous-git-ops-BXqeWVSf.js → dangerous-git-ops-CFLykHWt.js} +1 -1
  66. package/server/dashboard-db-worker.js +7 -7
  67. package/server/deacon-BIblC-WX.js +4 -0
  68. package/server/{deacon-nudge-log-6wVqAaqz.js → deacon-nudge-log-B08gF0mh.js} +3 -3
  69. package/server/{deacon-CU_cAYSR.js → deacon-pLRLbPvR.js} +3308 -2707
  70. package/server/deacon-pending-lifecycle-B-Io84AP.js +33 -0
  71. package/server/deacon-swarm-B1XkIvfr.js +2 -0
  72. package/server/{deacon-swarm-BXZZ1Z2-.js → deacon-swarm-v5PMun-m.js} +15 -14
  73. package/server/deacon.js +14 -19
  74. package/server/dead-end-trip-D8A3msX9.js +13 -0
  75. package/server/delivery-BX9HR4wQ.js +3 -0
  76. package/server/{deploy-patrol-AiFoP8dw.js → deploy-patrol-sYgOxLeb.js} +69 -18
  77. package/server/deploy-queue-VfohaPN_.js +169 -0
  78. package/server/deploy-queue-gHJBycaF.js +3 -0
  79. package/server/deploy-window-CFRZ0-kt.js +3 -0
  80. package/server/{deploy-window-C3F-tihF.js → deploy-window-D4DQb8VP.js} +40 -16
  81. package/server/{dev-supervisor-bcOWqdQE.js → dev-supervisor-DiOBDM1c.js} +2 -2
  82. package/server/{devcontainer-renderer-_d6XhyND.js → devcontainer-renderer-BUOIlfgD.js} +3 -3
  83. package/server/dist-B3YPQa5A.js +3 -0
  84. package/server/{dist-Cb_0uvpS.js → dist-C3A8B8wM.js} +1 -1
  85. package/server/{dist-src-BSoS7mkd.js → dist-src-C0adpegX.js} +1 -1
  86. package/server/{docker-DcMTFTUC.js → docker-BJzlkqYB.js} +2 -2
  87. package/server/docker-Y3PElJb0.js +3 -0
  88. package/server/dod-DlNtcH6n.js +91 -0
  89. package/server/durable-review-pipeline-Cibps-Rg.js +20 -0
  90. package/server/durable-review-pipeline-DP6bIcOY.js +3 -0
  91. package/server/{ensure-devcontainer-DNi-ono3.js → ensure-devcontainer-BAofzBPv.js} +4 -4
  92. package/server/{ensure-devcontainer-BZgOhRo7.js → ensure-devcontainer-DMAbWqtQ.js} +1 -1
  93. package/server/{esm-shims-OSHAYaS1.js → esm-shims-BeObUkaw.js} +1 -1
  94. package/server/{event-store-EV2cMiXj.js → event-store-5UKzh9Jf.js} +1 -1
  95. package/server/{event-store-CQL6NeqB.js → event-store-CrHcVC5_.js} +23 -4
  96. package/server/{events-DTfAe4My.js → events-BNrvchBg.js} +3 -3
  97. package/server/{events-BTdrdEq8.js → events-CF8QDbuV.js} +1 -1
  98. package/server/{factory-CFibJuaw.js → factory-Cmm9Hsho.js} +5 -5
  99. package/server/{feature-registry-population-DKZFMbFt.js → feature-registry-population-B6HpNWRy.js} +4 -4
  100. package/server/{feature-registry-storage-BdPuLcBX.js → feature-registry-storage-DJEFx1Pf.js} +2 -2
  101. package/server/{features-ez2271oH.js → features-D5km80UI.js} +2 -2
  102. package/server/{feedback-target-CoFDHiM8.js → feedback-target-BJ5ZADsu.js} +1 -1
  103. package/server/{feedback-target-7mqqwrX6.js → feedback-target-DSxEL6lP.js} +8 -8
  104. package/server/{feedback-writer-CY5L1lB7.js → feedback-writer-C27Hak8a.js} +5 -5
  105. package/server/{feedback-writer-D3a22RCd.js → feedback-writer-CoB9Z6aU.js} +1 -1
  106. package/server/{flywheel-DHrgCphM.js → flywheel-BHx8XuMr.js} +47 -20
  107. package/server/{flywheel-SVF02Jpq.js → flywheel-DZZdtiOL.js} +1 -1
  108. package/server/{flywheel-DzGtWnJ1.js → flywheel-f662Q-y2.js} +16 -15
  109. package/server/flywheel-merge-order-D_xLMbJU.js +462 -0
  110. package/server/flywheel-merge-order-Dil0LmdN.js +2 -0
  111. package/server/forge-B5o319qI.js +3 -0
  112. package/server/forge-BaKGCya6.js +383 -0
  113. package/server/{from-kNxT0bZC.js → from-B3tZbB55.js} +1 -1
  114. package/server/fs-lock-Bre3sGoz.js +130 -0
  115. package/server/{fts-db-CE46vDkZ.js → fts-db-IVc4_M3f.js} +2 -2
  116. package/server/{fts-operations-CqY6zl-i.js → fts-operations-B9jG8wa3.js} +2 -2
  117. package/server/{git-utils-CRw2zLPC.js → git-utils-CsvYfJU3.js} +30 -5
  118. package/server/git-utils-Xg4PFN45.js +3 -0
  119. package/server/{github-app-ClZ2lk8D.js → github-app-Bmg4R9mv.js} +1 -1
  120. package/server/{github-app-C3QrAUd0.js → github-app-CmNk0zLU.js} +3 -3
  121. package/server/{github-client-DfQYVUaw.js → github-client-B6KM9_wA.js} +1 -1
  122. package/server/{github-client-BnIsSrEN.js → github-client-qazkPrg0.js} +3 -3
  123. package/server/github-pr-lookup-DAcVeRLK.js +58 -0
  124. package/server/{harness-binary-DPUi-Pv8.js → harness-binary-BSpiXaLw.js} +2 -2
  125. package/server/{harness-resolve-3lNZkyT4.js → harness-resolve-BAJu5MX8.js} +4 -4
  126. package/server/{health-events-BDOHby5Q.js → health-events-2Z6Wa9SM.js} +1 -1
  127. package/server/{health-events-BBcTYQKU.js → health-events-BwX32k8d.js} +2 -2
  128. package/server/{hooks-DPVX1rwQ.js → hooks-D1g1jKLI.js} +1 -1
  129. package/server/{hooks-CKZgXlJb.js → hooks-DbtbimEf.js} +2 -2
  130. package/server/{hume-Cz8igP9E.js → hume-DXNiu6nQ.js} +2 -2
  131. package/server/hume-VUCNbTgn.js +3 -0
  132. package/server/{idle-stack-reaper-CuLF0j2H.js → idle-stack-reaper-CRA1e0jr.js} +1 -1
  133. package/server/{idle-stack-reaper-DDIRwxUY.js → idle-stack-reaper-Cy-dQzW4.js} +99 -6
  134. package/server/in-flight-guard-D-sSkADM.js +45 -0
  135. package/server/{infra-BEqFxlJc.js → infra-BDQDRopn.js} +81 -5
  136. package/server/{injection-C8aiVJrF.js → injection-6AGnXxlj.js} +7 -7
  137. package/server/{injection-CPUIqNhI.js → injection-Bl8d_jHZ.js} +1 -1
  138. package/server/inspect-agent-CUwVmr2h.js +2 -0
  139. package/server/{inspect-agent-BLuJ1AkT.js → inspect-agent-nXdIptyh.js} +26 -25
  140. package/server/{internal-token-s0-oKybJ.js → internal-token-DzK385vD.js} +2 -2
  141. package/server/{internal-token-BrcU6qfe.js → internal-token-Ias7N8Kg.js} +1 -1
  142. package/server/{io-C9kF1wtJ.js → io-B00PBNku.js} +44 -27
  143. package/server/{issue-closed-CDJk4pIp.js → issue-closed-BehTG1be.js} +8 -8
  144. package/server/{issue-lifecycle-ojZAzDBP.js → issue-lifecycle-Birk-ifu.js} +42 -30
  145. package/server/{issue-lifecycle-B8sZHVHh.js → issue-lifecycle-BqSuQvbn.js} +1 -1
  146. package/server/{issue-service-singleton-BvJ09SaR.js → issue-service-singleton-B2wXiIlw.js} +1 -1
  147. package/server/{issue-service-singleton-Yx5DdmVJ.js → issue-service-singleton-C6ZduvuY.js} +10 -10
  148. package/server/{issues-BMmP_77e.js → issues-DQ5-LatB.js} +2 -2
  149. package/server/{jsonl-parser-BXSlHwEh.js → jsonl-parser-BDpnGFCl.js} +5 -4
  150. package/server/{label-cleanup-B0UJwnv5.js → label-cleanup-Dwnky8FG.js} +3 -3
  151. package/server/{lifecycle-xmBfK2GJ.js → lifecycle-B3s4sM1G.js} +6 -7
  152. package/server/{lifecycle-yPd___5E.js → lifecycle-B4Xdb4cY.js} +2 -2
  153. package/server/{lifecycle-io-DPo7x11I.js → lifecycle-io-CzTHEooc.js} +1 -1
  154. package/server/{lifecycle-io-BREGpnLk.js → lifecycle-io-DCo6s6ks.js} +5 -5
  155. package/server/{linear-client-BsuUvkdA.js → linear-client-9uq7fhiV.js} +3 -3
  156. package/server/{linear-client-CTskEeT_.js → linear-client-CnbtHiic.js} +1 -1
  157. package/server/linear-mcp-auth-BxUOzswy.js +280 -0
  158. package/server/linear-mcp-auth-D46fBCLf.js +2 -0
  159. package/server/memory-fts-worker.js +1 -1
  160. package/server/{merge-CefQNAnq.js → merge-DiW9RdSB.js} +13 -11
  161. package/server/{merge-agent-4WOWlSYA.js → merge-agent-BLUgRsz3.js} +234 -84
  162. package/server/{merge-agent-CKkgIBPB.js → merge-agent-DQTXZk8z.js} +1 -1
  163. package/server/{merge-batch-ClFn2T-y.js → merge-batch-Cp_j9BGk.js} +1 -1
  164. package/server/merge-completeness-B46KqhtY.js +277 -0
  165. package/server/merge-completeness-BLbB5-6n.js +3 -0
  166. package/server/merge-ops-1abz6O_P.js +2 -0
  167. package/server/merge-rebase-CJJVAJuz.js +2 -0
  168. package/server/{merge-rebase-BfaTyXsw.js → merge-rebase-DIkBjgwq.js} +3 -3
  169. package/server/{merge-set-DJ8-UErs.js → merge-set-CBgHfwM0.js} +11 -5
  170. package/server/merge-set-DeUxFsC3.js +3 -0
  171. package/server/{merge-B1DiziGU.js → merge-sr8Nrnmi.js} +1 -1
  172. package/server/merge-sync-CpGmk6Ch.js +3 -0
  173. package/server/{merge-sync-VPV28g0g.js → merge-sync-kr4vqyjM.js} +409 -153
  174. package/server/{merge-train-CHopycP0.js → merge-train-Dmrcus12.js} +18 -8
  175. package/server/{merge-train-deps-D1cOZzy2.js → merge-train-deps-D_uGX91G.js} +21 -15
  176. package/server/merge-verification-NvaAd8CZ.js +220 -0
  177. package/server/merged-docker-cleanup-worker-DH_hrGPI.js +3 -0
  178. package/server/merged-docker-cleanup-worker-Y1R06TEl.js +107 -0
  179. package/server/{multipart-parser-duPAfSBw.js → multipart-parser-R-oC8dQg.js} +2 -2
  180. package/server/{no-resume-mode-Nw29vaFb.js → no-resume-mode-BgD0JUmM.js} +1 -1
  181. package/server/node_modules/.package-lock.json +30 -30
  182. package/server/node_modules/@effect/platform-node/node_modules/@effect/platform-node-shared/package.json +3 -3
  183. package/server/node_modules/@google-cloud/common/package.json +2 -2
  184. package/server/node_modules/@types/node/README.md +1 -1
  185. package/server/node_modules/@types/node/crypto.d.ts +1 -1
  186. package/server/node_modules/@types/node/package.json +2 -2
  187. package/server/node_modules/gaxios/build/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  188. package/server/node_modules/gaxios/build/esm/tsconfig.tsbuildinfo +1 -1
  189. package/server/node_modules/gaxios/package.json +1 -1
  190. package/server/node_modules/google-auth-library/build/src/auth/googleauth.js +24 -19
  191. package/server/node_modules/google-auth-library/package.json +1 -1
  192. package/server/node_modules/google-gax/build/protos/google/api/auth.proto +2 -1
  193. package/server/node_modules/google-gax/build/protos/google/api/backend.proto +12 -1
  194. package/server/node_modules/google-gax/build/protos/google/api/billing.proto +1 -1
  195. package/server/node_modules/google-gax/build/protos/google/api/client.proto +165 -53
  196. package/server/node_modules/google-gax/build/protos/google/api/cloudquotas/v1/resources.proto +1 -1
  197. package/server/node_modules/google-gax/build/protos/google/api/cloudquotas/v1beta/quota_adjuster_settings.proto +7 -3
  198. package/server/node_modules/google-gax/build/protos/google/api/cloudquotas/v1beta/resources.proto +1 -1
  199. package/server/node_modules/google-gax/build/protos/google/api/config_change.proto +1 -1
  200. package/server/node_modules/google-gax/build/protos/google/api/context.proto +1 -1
  201. package/server/node_modules/google-gax/build/protos/google/api/control.proto +3 -3
  202. package/server/node_modules/google-gax/build/protos/google/api/distribution.proto +1 -1
  203. package/server/node_modules/google-gax/build/protos/google/api/documentation.proto +1 -1
  204. package/server/node_modules/google-gax/build/protos/google/api/endpoint.proto +1 -1
  205. package/server/node_modules/google-gax/build/protos/google/api/error_reason.proto +186 -1
  206. package/server/node_modules/google-gax/build/protos/google/api/expr/v1alpha1/checked.proto +31 -3
  207. package/server/node_modules/google-gax/build/protos/google/api/expr/v1alpha1/eval.proto +8 -9
  208. package/server/node_modules/google-gax/build/protos/google/api/expr/v1alpha1/explain.proto +1 -2
  209. package/server/node_modules/google-gax/build/protos/google/api/expr/v1alpha1/syntax.proto +20 -22
  210. package/server/node_modules/google-gax/build/protos/google/api/expr/v1alpha1/value.proto +2 -3
  211. package/server/node_modules/google-gax/build/protos/google/api/field_behavior.proto +1 -1
  212. package/server/node_modules/google-gax/build/protos/google/api/field_info.proto +1 -1
  213. package/server/node_modules/google-gax/build/protos/google/api/http.proto +1 -1
  214. package/server/node_modules/google-gax/build/protos/google/api/httpbody.proto +1 -1
  215. package/server/node_modules/google-gax/build/protos/google/api/label.proto +1 -1
  216. package/server/node_modules/google-gax/build/protos/google/api/launch_stage.proto +1 -1
  217. package/server/node_modules/google-gax/build/protos/google/api/log.proto +1 -1
  218. package/server/node_modules/google-gax/build/protos/google/api/logging.proto +1 -1
  219. package/server/node_modules/google-gax/build/protos/google/api/metric.proto +1 -1
  220. package/server/node_modules/google-gax/build/protos/google/api/monitored_resource.proto +1 -1
  221. package/server/node_modules/google-gax/build/protos/google/api/monitoring.proto +1 -1
  222. package/server/node_modules/google-gax/build/protos/google/api/policy.proto +1 -1
  223. package/server/node_modules/google-gax/build/protos/google/api/quota.proto +1 -1
  224. package/server/node_modules/google-gax/build/protos/google/api/resource.proto +1 -1
  225. package/server/node_modules/google-gax/build/protos/google/api/routing.proto +8 -4
  226. package/server/node_modules/google-gax/build/protos/google/api/service.proto +2 -3
  227. package/server/node_modules/google-gax/build/protos/google/api/source_info.proto +1 -1
  228. package/server/node_modules/google-gax/build/protos/google/api/system_parameter.proto +1 -1
  229. package/server/node_modules/google-gax/build/protos/google/api/usage.proto +7 -27
  230. package/server/node_modules/google-gax/build/protos/google/api/visibility.proto +1 -1
  231. package/server/node_modules/google-gax/build/protos/google/longrunning/operations.proto +20 -1
  232. package/server/node_modules/google-gax/build/protos/google/protobuf/any.proto +52 -108
  233. package/server/node_modules/google-gax/build/protos/google/protobuf/compiler/ruby/ruby_generated_code.proto +2 -0
  234. package/server/node_modules/google-gax/build/protos/google/protobuf/cpp_features.proto +21 -1
  235. package/server/node_modules/google-gax/build/protos/google/protobuf/cpp_file_options.proto +24 -0
  236. package/server/node_modules/google-gax/build/protos/google/protobuf/cpp_options.proto +15 -0
  237. package/server/node_modules/google-gax/build/protos/google/protobuf/descriptor.proto +118 -30
  238. package/server/node_modules/google-gax/build/protos/google/protobuf/field_mask.proto +16 -18
  239. package/server/node_modules/google-gax/build/protos/google/protobuf/internal_options.proto +8 -1
  240. package/server/node_modules/google-gax/build/protos/google/protobuf/json/json_enumval_custom_string.proto +26 -0
  241. package/server/node_modules/google-gax/build/protos/google/protobuf/json_enumvalue_options.proto +29 -0
  242. package/server/node_modules/google-gax/build/protos/google/protobuf/json_options.proto +14 -0
  243. package/server/node_modules/google-gax/build/protos/google/protobuf/struct.proto +38 -22
  244. package/server/node_modules/google-gax/build/protos/google/protobuf/test_protos/forced_micro_string.proto +3 -0
  245. package/server/node_modules/google-gax/build/protos/google/protobuf/test_protos/repeated_field_proxy_import_message.proto +14 -0
  246. package/server/node_modules/google-gax/build/protos/google/protobuf/timestamp.proto +9 -8
  247. package/server/node_modules/google-gax/build/protos/google/protobuf/util/json_format_proto3.proto +18 -0
  248. package/server/node_modules/google-gax/build/protos/google/rpc/code.proto +1 -1
  249. package/server/node_modules/google-gax/build/protos/google/rpc/context/attribute_context.proto +7 -2
  250. package/server/node_modules/google-gax/build/protos/google/rpc/context/audit_context.proto +1 -1
  251. package/server/node_modules/google-gax/build/protos/google/rpc/error_details.proto +5 -5
  252. package/server/node_modules/google-gax/build/protos/google/rpc/http.proto +1 -1
  253. package/server/node_modules/google-gax/build/protos/google/rpc/status.proto +1 -2
  254. package/server/node_modules/google-gax/build/protos/google/type/calendar_period.proto +1 -1
  255. package/server/node_modules/google-gax/build/protos/google/type/color.proto +9 -10
  256. package/server/node_modules/google-gax/build/protos/google/type/date.proto +11 -9
  257. package/server/node_modules/google-gax/build/protos/google/type/datetime.proto +17 -17
  258. package/server/node_modules/google-gax/build/protos/google/type/dayofweek.proto +1 -1
  259. package/server/node_modules/google-gax/build/protos/google/type/decimal.proto +11 -13
  260. package/server/node_modules/google-gax/build/protos/google/type/expr.proto +1 -1
  261. package/server/node_modules/google-gax/build/protos/google/type/fraction.proto +1 -1
  262. package/server/node_modules/google-gax/build/protos/google/type/interval.proto +1 -2
  263. package/server/node_modules/google-gax/build/protos/google/type/latlng.proto +4 -5
  264. package/server/node_modules/google-gax/build/protos/google/type/localized_text.proto +3 -3
  265. package/server/node_modules/google-gax/build/protos/google/type/money.proto +1 -2
  266. package/server/node_modules/google-gax/build/protos/google/type/month.proto +1 -1
  267. package/server/node_modules/google-gax/build/protos/google/type/phone_number.proto +20 -15
  268. package/server/node_modules/google-gax/build/protos/google/type/postal_address.proto +39 -39
  269. package/server/node_modules/google-gax/build/protos/google/type/quaternion.proto +4 -4
  270. package/server/node_modules/google-gax/build/protos/google/type/timeofday.proto +11 -8
  271. package/server/node_modules/google-gax/package.json +5 -5
  272. package/server/node_modules/retry-request/package.json +4 -4
  273. package/server/node_modules/teeny-request/package.json +5 -5
  274. package/server/node_modules/undici/lib/cache/memory-cache-store.js +54 -9
  275. package/server/node_modules/undici/lib/cache/sqlite-cache-store.js +7 -1
  276. package/server/node_modules/undici/lib/core/request.js +12 -1
  277. package/server/node_modules/undici/lib/dispatcher/client-h1.js +11 -2
  278. package/server/node_modules/undici/lib/global.js +36 -16
  279. package/server/node_modules/undici/lib/handler/cache-handler.js +236 -116
  280. package/server/node_modules/undici/lib/handler/cache-revalidation-handler.js +3 -3
  281. package/server/node_modules/undici/lib/handler/retry-handler.js +24 -0
  282. package/server/node_modules/undici/lib/interceptor/cache.js +152 -62
  283. package/server/node_modules/undici/lib/interceptor/decompress.js +5 -2
  284. package/server/node_modules/undici/lib/util/cache.js +328 -66
  285. package/server/node_modules/undici/lib/util/date.js +23 -6
  286. package/server/node_modules/undici/lib/web/cookies/util.js +78 -8
  287. package/server/node_modules/undici/package.json +1 -1
  288. package/server/{orphan-proposed-reconciler-BvKkWMJQ.js → orphan-proposed-reconciler-B6vJHxtX.js} +242 -34
  289. package/server/{orphan-proposed-reconciler-CTSGcK8p.js → orphan-proposed-reconciler-DcgTPPFY.js} +1 -1
  290. package/server/package-lock.json +31 -31
  291. package/server/package.json +1 -1
  292. package/server/{pan-dir-B0c3w0Ya.js → pan-dir-DMzF5wne.js} +25 -11
  293. package/server/{paths-D-xWGHdh.js → paths-sJBSb7Ul.js} +2 -2
  294. package/server/pending-lifecycle-claim-DilzGfgk.js +110 -0
  295. package/server/persistent-logger-H_VjuOu7.js +57 -0
  296. package/server/{pickup-DUCLWrJY.js → pickup-DWhqzliO.js} +4 -3
  297. package/server/pipeline-membership-C88VBnhJ.js +3 -0
  298. package/server/pipeline-membership-D9SBvItj.js +57 -0
  299. package/server/pipeline-membership-gather-4eR-7Tqy.js +3 -0
  300. package/server/pipeline-membership-gather-CeVGnNJ2.js +593 -0
  301. package/server/{pipeline-notifier-BXkJzDC4.js → pipeline-notifier-D0ALV6Nw.js} +2 -2
  302. package/server/{pipeline-notifier-BJr8gQX6.js → pipeline-notifier-DT6xLFao.js} +1 -1
  303. package/server/post-merge-lifecycle-worker-8HIeS_J6.js +50 -0
  304. package/server/{project-pipelines-C0MWUeCU.js → project-pipelines-9SKt2bEc.js} +2 -2
  305. package/server/{project-repos-B6GycDh9.js → project-repos-B5pIphKg.js} +7 -3
  306. package/server/project-repos-DPjOdfPa.js +3 -0
  307. package/server/projects-_n3Zui6K.js +3 -0
  308. package/server/{prompts-DxzFXuLl.js → prompts-CgzMBvQF.js} +2 -2
  309. package/server/{providers-u4Ga0jOr.js → providers-BI1mOBQ4.js} +1 -1
  310. package/server/{providers-qQAwGQDW.js → providers-BJQSnAAp.js} +7 -7
  311. package/server/public/assets/{chunk-BO2N2NFS-BamJdinX.js → chunk-BO2N2NFS-D_pGACYN.js} +4 -4
  312. package/server/public/assets/{diagram-OG6HWLK6-DfOB8-w4.js → diagram-OG6HWLK6-BO6fe3hH.js} +1 -1
  313. package/server/public/assets/{dist-ByIuzMQW.js → dist-5zingMiA.js} +3 -3
  314. package/server/public/assets/{dist-D7zYSEA6.js → dist-CVxhbI2E.js} +1 -1
  315. package/server/public/assets/{ganttDiagram-6RSMTGT7-EdmRyXL3.js → ganttDiagram-6RSMTGT7-Bgj4A7kp.js} +1 -1
  316. package/server/public/assets/{highlighted-body-OFNGDK62-MerOfTX8.js → highlighted-body-OFNGDK62-DNPK7_cm.js} +1 -1
  317. package/server/public/assets/index-DEpY-D1O.js +807 -0
  318. package/server/public/assets/index-Ddkcz3WT.css +1 -0
  319. package/server/public/assets/{linear-BBbArIcK.js → linear-BB0jQT16.js} +1 -1
  320. package/server/public/assets/mermaid-GHXKKRXX-BzPfaQJ1.js +1 -0
  321. package/server/public/assets/{pieDiagram-4H26LBE5-BKIddiJN.js → pieDiagram-4H26LBE5-DeGIzzpZ.js} +1 -1
  322. package/server/public/assets/{prod-B8vYiu52.js → prod-XBLvikex.js} +4 -4
  323. package/server/public/assets/{quadrantDiagram-W4KKPZXB-D6RtoULk.js → quadrantDiagram-W4KKPZXB-BV9SLeWz.js} +1 -1
  324. package/server/public/assets/{sankeyDiagram-5OEKKPKP-CLrCedZX.js → sankeyDiagram-5OEKKPKP-Dwja0gj8.js} +1 -1
  325. package/server/public/assets/{xychartDiagram-2RQKCTM6-hznR8DYl.js → xychartDiagram-2RQKCTM6-DCB4qvfw.js} +1 -1
  326. package/server/public/index.html +2 -2
  327. package/server/{pull-requests-_lHueOHW.js → pull-requests-7BgLDsIo.js} +19 -10
  328. package/server/{pull-requests-7N8WKseP.js → pull-requests-Dq0y6IxE.js} +1 -1
  329. package/server/{queries-CjNIf-Ub.js → queries-C-MUZaIy.js} +824 -192
  330. package/server/{rally-CyWT_lNO.js → rally-CPysR4T_.js} +3 -3
  331. package/server/rally-D_VW4bJv.js +3 -0
  332. package/server/{rally-api-C8e_1JRi.js → rally-api-8Ptlp2os.js} +2 -2
  333. package/server/{rally-api-ClOSd-Tt.js → rally-api-CgosKdKL.js} +1 -1
  334. package/server/{rally-client-sgtVqzNU.js → rally-client-CCX0hADj.js} +1 -1
  335. package/server/{rally-client-lc-nokqr.js → rally-client-iYMHWQD7.js} +5 -5
  336. package/server/{reap-terminal-sessions-7KeHv1R1.js → reap-terminal-sessions-4Xg9NGA8.js} +2 -2
  337. package/server/{reap-terminal-sessions-BtHPo6Xc.js → reap-terminal-sessions-Qf-9LVQc.js} +2 -2
  338. package/server/{rebuild-stack-lwtsW0GO.js → rebuild-stack-CMdgaylx.js} +16 -7
  339. package/server/{rebuild-stack-CFvcBHsS.js → rebuild-stack-DqcOVmJO.js} +2 -2
  340. package/server/{reconstruct-cache-C3Ui7ojV.js → reconstruct-cache-CMZJ_Vjq.js} +9 -7
  341. package/server/record-BTwWhtBb.js +3 -0
  342. package/server/{record-update-dE1Aw83j.js → record-update-DaOKS7Wb.js} +124 -157
  343. package/server/record-update-DhI7eySG.js +3 -0
  344. package/server/{recovery-trip-BvRWfUXM.js → recovery-trip-DDH-02ng.js} +2 -2
  345. package/server/{release-engine-Cx48W7z8.js → release-engine-B2X9AfFC.js} +5 -5
  346. package/server/{release-set-CQfuN9-v.js → release-set-G4XKyQ8K.js} +3 -3
  347. package/server/{remote-C_2hasl7.js → remote-BXarMvqf.js} +3 -3
  348. package/server/{remote-ChgimyYa.js → remote-CUhyqjXk.js} +3 -3
  349. package/server/{remote-agents-By1ige5O.js → remote-agents-Bba-MgSA.js} +311 -48
  350. package/server/{remote-agents-CA3Ihlxj.js → remote-agents-CLZB3Coc.js} +2 -2
  351. package/server/{remote-completion-fVe9e_3u.js → remote-completion-CwAp79EC.js} +13 -13
  352. package/server/resume-mOREjlYu.js +3 -0
  353. package/server/{review-agent-CIGOQYBD.js → review-agent--pOptAEV.js} +65 -50
  354. package/server/{review-agent-DNboMyW4.js → review-agent-BTCNkq2h.js} +1 -1
  355. package/server/{review-artifacts-nRDPuMxd.js → review-artifacts-BNmw8dWE.js} +7 -6
  356. package/server/{review-context-2uj-YQ8J.js → review-context-DFxYOOJW.js} +9 -9
  357. package/server/{in-flight-guard-CAAkqPLu.js → review-convoy-liveness-BgU_1jJf.js} +3 -44
  358. package/server/review-status-CGvlA4o_.js +7737 -0
  359. package/server/review-status-Dma9SFaN.js +3 -0
  360. package/server/review-status-emit-DURrmGYX.js +50 -0
  361. package/server/{review-status-enrichment-Dci-ZwEt.js → review-status-enrichment-8NiNXi5W.js} +4 -4
  362. package/server/review-status-source-BLx_1siH.js +3 -0
  363. package/server/{review-status-source-CxuEjLGg.js → review-status-source-DIk1JSow.js} +24 -3
  364. package/server/{review-status-sync-BTOpxtTC.js → review-status-sync-0GxOqeqF.js} +11 -6
  365. package/server/{review-status-sync-DSDK3OMy.js → review-status-sync-muT-EBp2.js} +1 -1
  366. package/server/{review-verdict-feedback-CTd4QMBu.js → review-verdict-feedback-HwF6ODFy.js} +1 -1
  367. package/server/{review-verdict-feedback-CCjVA7Uk.js → review-verdict-feedback-xJNdqBnX.js} +65 -11
  368. package/server/{rollup-FGsKki9R.js → rollup-BQaol5TX.js} +8 -8
  369. package/server/{rollup-BKQC7jp4.js → rollup-BR4t_wck.js} +1 -1
  370. package/server/{scanner-CnqEZeDy.js → scanner-C-D2cFdX.js} +8 -7
  371. package/server/{sequence-io-D909zgeH.js → sequence-io-Bmf1EZM5.js} +4 -4
  372. package/server/{sequencer-agent-CzkcK6P5.js → sequencer-agent-CigMyKh2.js} +7 -6
  373. package/server/server.js +2005 -614
  374. package/server/{service-CLeAoU6G.js → service-CD0DvFvD.js} +114 -68
  375. package/server/{session-fork-CHI1XvL9.js → session-fork-B6cQ5eya.js} +2 -2
  376. package/server/{session-history-BT3IvqhC.js → session-history-3ON_IJjm.js} +7 -55
  377. package/server/settings-CVmWiJ-r.js +2 -0
  378. package/server/{settings-C0zgxOGf.js → settings-PilbFZAM.js} +3 -2
  379. package/server/{settings-BTMvpNFU.js → settings-VN0qOh4U.js} +3 -3
  380. package/server/{shadow-engineering-BJfgm-hX.js → shadow-engineering-DXvx77oE.js} +3 -3
  381. package/server/{shadow-state-7a-524T8.js → shadow-state-BBk_zacw.js} +2 -2
  382. package/server/{shadow-state-DnDyjujH.js → shadow-state-CZBp7pwq.js} +1 -1
  383. package/server/{shadow-utils-Db3oroFG.js → shadow-utils-DdZ05AJS.js} +2 -2
  384. package/server/{ship-log-D9MlVzYU.js → ship-log-7kJfjUX2.js} +1 -1
  385. package/server/{smart-compaction-CV2ukKND.js → smart-compaction-8fA5k5XN.js} +1 -1
  386. package/server/{smart-compaction-KCYScAU1.js → smart-compaction-ByhL9cRS.js} +8 -7
  387. package/server/{spawn-planning-session-DKpdFyOC.js → spawn-planning-session-pcF-YeFE.js} +38 -50
  388. package/server/spawn-planning-session-vLUJoFjy.js +3 -0
  389. package/server/{specialist-completion-Ky9wCDpb.js → specialist-completion-B07XjWD2.js} +1 -1
  390. package/server/{specialist-context-Bn3dCGS2.js → specialist-context-DJ-zFyL3.js} +5 -5
  391. package/server/{specialist-handoff-logger-CMEwYxa2.js → specialist-handoff-logger-aKSxbIgD.js} +2 -2
  392. package/server/{specialist-logs-C5p8G7tx.js → specialist-logs-Dae-n52_.js} +3 -3
  393. package/server/{specialists-CC4r-c2s.js → specialists-6PWdtWcg.js} +1177 -311
  394. package/server/{specialists-DM6bWjsi.js → specialists-Bz-wFT7R.js} +1 -1
  395. package/server/{specialists-jiuuyVkp.js → specialists-DUiExaxb.js} +18 -18
  396. package/server/{specialists-CShuVGWT.js → specialists-KR3pKulN.js} +1 -1
  397. package/server/specs--enInima.js +3 -0
  398. package/server/src-B948bGVR.js +11452 -0
  399. package/server/{src-CXmtj0im.js → src-rac0Mepv.js} +6 -6
  400. package/server/{src-CdmnTM2m.js → src-vHy2-oCv.js} +3 -3
  401. package/server/{stack-health-Bn3o8FBX.js → stack-health-BikqHSjn.js} +1 -1
  402. package/server/{stack-health-DxSdG9cW.js → stack-health-DqLTiEu4.js} +7 -5
  403. package/server/{stale-task-claims-KJKxxiiQ.js → stale-task-claims-Cab_Fo_Z.js} +5 -4
  404. package/server/{staleness-DPm7ClwA.js → staleness-C-a5rBxF.js} +1 -1
  405. package/server/{staleness-CT34nwr9.js → staleness-CGTZyp6V.js} +1 -1
  406. package/server/{state-home-Cn_Qu8IX.js → state-home-722Dkx92.js} +2 -2
  407. package/server/{state-mapping-BL_-3Yt8.js → state-mapping-CybR81Uf.js} +1 -1
  408. package/server/{state-migrate-BGg2ZaOt.js → state-migrate-2u8wIpoL.js} +4 -4
  409. package/server/{stuck-remediation-DYuPRYYw.js → stuck-remediation-CC6q3eqQ.js} +84 -26
  410. package/server/{stuck-remediation-s9_2qfi6.js → stuck-remediation-r1TJu68G.js} +1 -1
  411. package/server/{substrate-bug-weights-service-B-FwCs5V.js → substrate-bug-weights-service-CzIyyWFT.js} +3 -3
  412. package/server/{summary-fork-DpcxN9tf.js → summary-fork-BqgmgPDt.js} +2 -2
  413. package/server/{summary-fork-D1RAk9rJ.js → summary-fork-Df2WFijM.js} +8 -8
  414. package/server/supervisor/{injection-budget-Csw5tqfJ.js → injection-budget-Cg_KIb3o.js} +1 -1
  415. package/server/supervisor/{paths-DehGY2Fj.js → paths-BBOnCYlO.js} +10 -2
  416. package/server/supervisor/pty-supervisor.js +50 -4
  417. package/server/supervisor/{pty-token-x-ea28Us.js → pty-token-BbjwEUUM.js} +3 -3
  418. package/server/supervisor-B4anCCSm.js +2 -0
  419. package/server/{supervisor-wM4ooB5O.js → supervisor-BxqSpjcN.js} +3 -3
  420. package/server/{swarm-readiness-DlP_UjHq.js → swarm-readiness-DfFxa9-n.js} +3 -3
  421. package/server/{system-prerequisites-DUDj1YHf.js → system-prerequisites-ICLSkhhZ.js} +2 -2
  422. package/server/{teardown-workspace-DeTTImn-.js → teardown-workspace-DRdi_CPa.js} +15 -16
  423. package/server/{test-agent-queue-MbxX5vqq.js → test-agent-queue-A_-p-i0I.js} +8 -7
  424. package/server/{test-verdict-gscuksPv.js → test-verdict-BHgTAwIG.js} +1 -1
  425. package/server/{test-verdict-bWYBtqBg.js → test-verdict-C4i9aqEP.js} +1 -1
  426. package/server/{tldr-daemon-BYFkts95.js → tldr-daemon-CvWXBhX1.js} +1 -1
  427. package/server/{tldr-daemon-C-69c3OI.js → tldr-daemon-wvsU6bKv.js} +2 -2
  428. package/server/{tmux-R7N7y-Mh.js → tmux-CfDHob9M.js} +174 -4
  429. package/server/{tmux-B6z7h_vZ.js → tmux-Ctk6RV5l.js} +1 -1
  430. package/server/{token-BK6t8BIT.js → token-DrxwytsZ.js} +2 -2
  431. package/server/{token-util-DxXu-vd1.js → token-util-B48BlCba.js} +1 -1
  432. package/server/token-util-D411CAq9.js +3 -0
  433. package/server/{tracker-config-G6latr8C.js → tracker-config-BcPMElRB.js} +2 -2
  434. package/server/{tracker-utils-DHv5pSDT.js → tracker-utils-CJ6BHjcD.js} +3 -3
  435. package/server/{traefik-connect-Df2uXPsQ.js → traefik-connect-DZ6nMYMj.js} +1 -1
  436. package/server/{tunnel-DGdUkGoZ.js → tunnel-Bp-dRHZz.js} +1 -1
  437. package/server/{tunnel-CDVKJpRv.js → tunnel-DUbUPElU.js} +3 -3
  438. package/server/{typed-errors-BHhE85Ul.js → typed-errors-CKeoDdU3.js} +1 -1
  439. package/server/{typed-errors-2BTMxkZq.js → typed-errors-DyjseiB6.js} +1 -1
  440. package/server/{types-hraoaQIp.js → types-Cm5ASJbq.js} +1 -1
  441. package/server/{types-5M0lupud.js → types-Di8wdakq.js} +1 -1
  442. package/server/uat-promote-verification-CoJuh7XO.js +92 -0
  443. package/server/uat-train-4Q0k06CQ.js +0 -0
  444. package/server/uat-train-Dewoatps.js +2 -0
  445. package/server/{validate-IfDGkaVR.js → validate-B0C8p66t.js} +8 -6
  446. package/server/{validation-Dw1pzDzr.js → validation-B_kIRfNe.js} +4 -4
  447. package/server/{validation-CC9OPqJZ.js → validation-hVOwQk8T.js} +1 -1
  448. package/server/{verification-artifact-B3itKTxu.js → verification-artifact-BxlxTiYK.js} +1 -1
  449. package/server/{verification-artifact-TVFSz_q1.js → verification-artifact-D70AtckY.js} +1 -1
  450. package/server/{verification-runner-BW4HOKAz.js → verification-runner-Bc3cJvpC.js} +1 -1
  451. package/server/{verification-runner-CkgX6EtI.js → verification-runner-KZTz6u72.js} +40 -18
  452. package/server/{vtt-parser-DYPbKcIJ.js → vtt-parser-CE_i3Bcw.js} +1 -1
  453. package/server/{work-agent-prompt-Du8Vh2aJ.js → work-agent-prompt-ByrPAzOy.js} +20 -9
  454. package/server/{workflows-mbQzh6mQ.js → workflows-D0vP1WrK.js} +252 -99
  455. package/server/workflows-DtDX08ed.js +2 -0
  456. package/server/{workspace--8tnhDI0.js → workspace-COWvdibH.js} +1 -1
  457. package/server/{workspace-BPUws1-_.js → workspace-DQkRPLlQ.js} +3 -3
  458. package/server/workspace-anchor-drift-DXYIAHzr.js +224 -0
  459. package/server/workspace-anchor-drift-pwz23TI1.js +3 -0
  460. package/server/{workspace-config-CIVWZOQr.js → workspace-config-BdZM4PvZ.js} +1 -1
  461. package/server/{workspace-manager-CBhNdzE4.js → workspace-manager-BPgTrG66.js} +157 -118
  462. package/server/workspace-manager-C1F3XsnS.js +3 -0
  463. package/server/{workspace-metadata-BzHnwwX4.js → workspace-metadata-CdjzAP8x.js} +1 -1
  464. package/server/{workspace-metadata-_WygnyoX.js → workspace-metadata-DkO_iTLo.js} +2 -2
  465. package/server/{workspaces-Do_9J0LQ.js → workspaces-CRBJikLp.js} +749 -299
  466. package/sync-sources/dev-skills/pan-dashboard-restart/SKILL.md +34 -10
  467. package/sync-sources/hooks/linear-mcp-auth-hook +97 -0
  468. package/sync-sources/rules/ask-user-question-self-contained.md +9 -0
  469. package/sync-sources/skills/pan-close/SKILL.md +5 -3
  470. package/sync-sources/skills/pan-merge/SKILL.md +7 -5
  471. package/sync-sources/skills/pan-peer-review/SKILL.md +195 -0
  472. package/sync-sources/skills/pan-release/SKILL.md +57 -0
  473. package/sync-sources/skills/pan-reload/SKILL.md +3 -3
  474. package/sync-sources/skills/pan-restart/SKILL.md +5 -4
  475. package/sync-sources/skills/pan-review/SKILL.md +7 -1
  476. package/sync-sources/skills/pan-sync-main/SKILL.md +9 -8
  477. package/sync-sources/skills/pipeline-status/SKILL.md +10 -1
  478. package/sync-sources/skills/workspace-add-repo/SKILL.md +16 -1
  479. package/server/activity-logger-OEUBdfZ8.js +0 -3
  480. package/server/agent-state-Bc3tzUC8.js +0 -3
  481. package/server/agent-state-service-D5UGKIJL.js +0 -2
  482. package/server/agents-wi9NWzs2.js +0 -3
  483. package/server/archive-planning-BZDgzoEj.js +0 -3
  484. package/server/cli-B86rejVV.js +0 -3
  485. package/server/conflict-gate-BhAY7TUd.js +0 -3
  486. package/server/conversation-service-BLd3MYsG.js +0 -3
  487. package/server/deacon-kiQrb4ZT.js +0 -4
  488. package/server/deacon-swarm-C-GwfjJy.js +0 -2
  489. package/server/deploy-window-DkZraDyj.js +0 -3
  490. package/server/dist-Bzy0y69j.js +0 -3
  491. package/server/dod-C6n9RV3G.js +0 -66
  492. package/server/flywheel-merge-order-UU0tiUld.js +0 -245
  493. package/server/flywheel-merge-order-UUcsCDb6.js +0 -2
  494. package/server/forge-CNFnyqps.js +0 -270
  495. package/server/forge-DXnS_YFH.js +0 -2
  496. package/server/git-utils-D0_yhCgF.js +0 -3
  497. package/server/github-pr-lookup-D16NGsSO.js +0 -44
  498. package/server/hume-ccTf4wTX.js +0 -3
  499. package/server/inspect-agent-Brtz0URj.js +0 -2
  500. package/server/label-reconciler-B4iOAjlC.js +0 -113
  501. package/server/launcher-generator-BBWG_SiS.js +0 -473
  502. package/server/merge-ops-CR44oU9-.js +0 -2
  503. package/server/merge-set-bUqbm3yc.js +0 -3
  504. package/server/merge-sync-BJYeOODr.js +0 -3
  505. package/server/merge-verification-BkaOqPsw.js +0 -124
  506. package/server/pipeline-membership-mY3GprlK.js +0 -420
  507. package/server/project-repos-DXKQsc_m.js +0 -3
  508. package/server/projects-vjjcmiN8.js +0 -3
  509. package/server/public/assets/index-CWeMerGO.js +0 -804
  510. package/server/public/assets/index-CenuJ3Cw.css +0 -1
  511. package/server/public/assets/mermaid-GHXKKRXX-CpPWAFwE.js +0 -1
  512. package/server/rally-zhhtXuDP.js +0 -3
  513. package/server/record-CN0pj4_5.js +0 -3
  514. package/server/record-update-bLJxAXH4.js +0 -3
  515. package/server/resume-BFv1PGpA.js +0 -3
  516. package/server/review-status-btEYlaxA.js +0 -3
  517. package/server/review-status-kZj_KyCk.js +0 -1470
  518. package/server/settings-66A6uvIA.js +0 -2
  519. package/server/spawn-planning-session-qUC2VWu3.js +0 -2
  520. package/server/specs-C8Wsn2XO.js +0 -3
  521. package/server/src-DtcUOZCq.js +0 -4826
  522. package/server/supervisor-FTJAIsAK.js +0 -2
  523. package/server/token-util-DuPuNriz.js +0 -3
  524. package/server/tracker-utils-B4ylXZQK.js +0 -3
  525. package/server/uat-train-B05BWkp-.js +0 -2
  526. package/server/uat-train-DDSrSoV1.js +0 -2152
  527. package/server/workflows-BQu4RFQ-.js +0 -2
  528. package/server/workspace-manager-CWT55qeI.js +0 -3
@@ -1,6 +1,6 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { r as isNoResumeValueEnabled, t as init_no_resume_mode } from "./no-resume-mode-Nw29vaFb.js";
3
- import { a as spawnSequencerAgent, i as init_sequencer_agent } from "./sequencer-agent-CzkcK6P5.js";
2
+ import { r as isNoResumeValueEnabled, t as init_no_resume_mode } from "./no-resume-mode-BgD0JUmM.js";
3
+ import { a as spawnSequencerAgent, i as init_sequencer_agent } from "./sequencer-agent-CigMyKh2.js";
4
4
  //#region ../../lib/backlog/backlog-auto-trigger.ts
5
5
  /**
6
6
  * PAN-2396: --no-resume is the operator's full-quiescence escape hatch —
@@ -37,4 +37,4 @@ __esmMin((() => {
37
37
  }))();
38
38
  export { triggerDebouncedIncrementalPass };
39
39
 
40
- //# sourceMappingURL=backlog-auto-trigger-2R2jog7n.js.map
40
+ //# sourceMappingURL=backlog-auto-trigger-n1lzPgN4.js.map
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { t as init_src } from "./src-DtcUOZCq.js";
2
+ import { t as init_src } from "./src-B948bGVR.js";
3
3
  //#region ../../lib/runtimes/behavior.ts
4
4
  var init_behavior = __esmMin((() => {
5
5
  init_src();
@@ -7,4 +7,4 @@ var init_behavior = __esmMin((() => {
7
7
  //#endregion
8
8
  export { init_behavior as t };
9
9
 
10
- //# sourceMappingURL=behavior-B3exJ42O.js.map
10
+ //# sourceMappingURL=behavior-td6-xhQk.js.map
@@ -0,0 +1,44 @@
1
+ import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
+ //#region services/boot-reconciled-stop-events.ts
3
+ async function appendStopOnce(store, stop, errorMessage) {
4
+ const pendingByKey = appendByStore.get(store) ?? /* @__PURE__ */ new Map();
5
+ appendByStore.set(store, pendingByKey);
6
+ const key = `${stop.id}:${stop.previousStatus}`;
7
+ const existing = pendingByKey.get(key);
8
+ if (existing && await existing) return;
9
+ const pending = (async () => {
10
+ try {
11
+ const sequence = await store.appendAsync({
12
+ type: "agent.status_changed",
13
+ timestamp: (/* @__PURE__ */ new Date()).toISOString(),
14
+ payload: {
15
+ agentId: stop.id,
16
+ status: "stopped",
17
+ previousStatus: stop.previousStatus,
18
+ hasLiveTmuxSession: false
19
+ }
20
+ });
21
+ if (sequence <= 0) throw new Error(`Event append returned invalid sequence ${sequence}`);
22
+ return true;
23
+ } catch (err) {
24
+ console.error(errorMessage, err);
25
+ return false;
26
+ }
27
+ })();
28
+ pendingByKey.set(key, pending);
29
+ if (!await pending && pendingByKey.get(key) === pending) pendingByKey.delete(key);
30
+ }
31
+ async function emitBootReconciledStopEvents(store, stopped, presentAgents, errorMessage) {
32
+ for (const stop of stopped) {
33
+ if (!presentAgents[stop.id]) continue;
34
+ await appendStopOnce(store, stop, errorMessage);
35
+ }
36
+ }
37
+ var appendByStore;
38
+ var init_boot_reconciled_stop_events = __esmMin((() => {
39
+ appendByStore = /* @__PURE__ */ new WeakMap();
40
+ }));
41
+ //#endregion
42
+ export { init_boot_reconciled_stop_events as n, emitBootReconciledStopEvents as t };
43
+
44
+ //# sourceMappingURL=boot-reconciled-stop-events-C7gGe3oB.js.map
@@ -0,0 +1,136 @@
1
+ import { o as init_activity_logger, r as emitActivityEntrySync } from "./activity-logger-CyteR4JO.js";
2
+ import { promises } from "fs";
3
+ import { exec } from "child_process";
4
+ import { promisify } from "util";
5
+ //#region ../../lib/docker-bridge-pool.ts
6
+ init_activity_logger();
7
+ /** Lists every bridge network on the host, one name per line. */
8
+ const LIST_BRIDGE_NETWORKS_COMMAND = `docker network ls --filter driver=bridge --format '{{.Name}}'`;
9
+ const DOCKER_DAEMON_JSON_PATH = "/etc/docker/daemon.json";
10
+ /** `overdeck-feature-pan-2997_devnet`, `myn-feature-min-852_default`, … */
11
+ const FEATURE_NETWORK_RE = /^(.+?)-feature-[a-z0-9]+-\d+_(?:devnet|default)$/i;
12
+ function parseBridgeNetworkNames(stdout) {
13
+ return stdout.split("\n").map((line) => line.trim()).filter(Boolean);
14
+ }
15
+ /**
16
+ * Groups networks by the project prefix of their compose project name so the
17
+ * message names which project is consuming the pool. Anything that is not a
18
+ * workspace stack network (`bridge`, `overdeck`, a project's main stack) lands
19
+ * in `other`.
20
+ */
21
+ function groupBridgeNetworkNames(names) {
22
+ const counts = /* @__PURE__ */ new Map();
23
+ for (const name of names) {
24
+ const match = name.match(FEATURE_NETWORK_RE);
25
+ const label = match ? `${match[1]}-feature-*` : "other";
26
+ counts.set(label, (counts.get(label) ?? 0) + 1);
27
+ }
28
+ return [...counts.entries()].map(([label, count]) => ({
29
+ label,
30
+ count
31
+ })).sort((a, b) => b.count - a.count || a.label.localeCompare(b.label));
32
+ }
33
+ /**
34
+ * Capacity declared by `default-address-pools`: each pool yields
35
+ * `2^(size - baseMaskBits)` subnets. Returns null when the config is absent or
36
+ * malformed so the caller falls back to the measured default limit rather than
37
+ * trusting a number it could not derive.
38
+ */
39
+ function bridgePoolLimitFromPools(pools) {
40
+ if (!Array.isArray(pools) || pools.length === 0) return null;
41
+ let capacity = 0;
42
+ for (const pool of pools) {
43
+ const entry = pool;
44
+ if (typeof entry?.base !== "string" || typeof entry?.size !== "number") return null;
45
+ const baseMask = Number(entry.base.split("/")[1]);
46
+ if (!Number.isInteger(baseMask) || baseMask < 0 || baseMask > 32) return null;
47
+ if (!Number.isInteger(entry.size) || entry.size < baseMask || entry.size > 32) return null;
48
+ capacity += 2 ** (entry.size - baseMask);
49
+ }
50
+ return capacity > 0 ? capacity : null;
51
+ }
52
+ /**
53
+ * Reads `default-address-pools` from daemon.json. Returns null when the file is
54
+ * missing, unreadable, or declares no pools — which is itself the signal that
55
+ * the host is on Docker's narrow built-in pools.
56
+ */
57
+ async function readDockerDaemonPools() {
58
+ try {
59
+ const text = await promises.readFile(DOCKER_DAEMON_JSON_PATH, "utf-8");
60
+ const pools = JSON.parse(text)["default-address-pools"];
61
+ return Array.isArray(pools) ? pools : null;
62
+ } catch {
63
+ return null;
64
+ }
65
+ }
66
+ function assessBridgePoolPressure(names, limit = 31) {
67
+ const total = names.length;
68
+ const effectiveLimit = Math.max(1, limit);
69
+ return {
70
+ total,
71
+ limit: effectiveLimit,
72
+ headroom: Math.max(0, effectiveLimit - total),
73
+ underPressure: total >= effectiveLimit - 5,
74
+ exhausted: total >= effectiveLimit,
75
+ groups: groupBridgeNetworkNames(names)
76
+ };
77
+ }
78
+ /** `myn-feature-* 13, overdeck-feature-* 6, other 5` — empty when nothing to show. */
79
+ function formatBridgePoolBreakdown(groups) {
80
+ return groups.map((group) => `${group.label} ${group.count}`).join(", ");
81
+ }
82
+ //#endregion
83
+ //#region ../../lib/cloister/bridge-pool-patrol.ts
84
+ const execAsync = promisify(exec);
85
+ /** Last reported level. Module-level so it survives across patrol cycles. */
86
+ let lastLevel = "ok";
87
+ function defaultDeps() {
88
+ return {
89
+ listBridgeNetworkNames: async () => {
90
+ const { stdout } = await execAsync(LIST_BRIDGE_NETWORKS_COMMAND, { timeout: 15e3 });
91
+ return parseBridgeNetworkNames(stdout);
92
+ },
93
+ readPools: readDockerDaemonPools,
94
+ emit: (level, message) => {
95
+ emitActivityEntrySync({
96
+ source: "cloister",
97
+ level,
98
+ message
99
+ });
100
+ }
101
+ };
102
+ }
103
+ async function patrolDockerBridgePool(deps = {}) {
104
+ const d = {
105
+ ...defaultDeps(),
106
+ ...deps
107
+ };
108
+ let names;
109
+ try {
110
+ names = await d.listBridgeNetworkNames();
111
+ } catch {
112
+ return [];
113
+ }
114
+ const pools = await d.readPools().catch(() => null);
115
+ const pressure = assessBridgePoolPressure(names, bridgePoolLimitFromPools(pools) ?? 31);
116
+ const level = pressure.exhausted ? "exhausted" : pressure.underPressure ? "warn" : "ok";
117
+ if (level === lastLevel) return [];
118
+ const previous = lastLevel;
119
+ lastLevel = level;
120
+ const breakdown = formatBridgePoolBreakdown(pressure.groups);
121
+ const detail = breakdown ? ` (${breakdown})` : "";
122
+ if (level === "ok") {
123
+ const action = `Docker bridge network pool recovered — ${pressure.total} of ~${pressure.limit} slots used, ${pressure.headroom} free${detail}`;
124
+ d.emit("info", `[deacon] ${action}`);
125
+ console.log(`[deacon] ${action}`);
126
+ return [action];
127
+ }
128
+ const action = level === "exhausted" ? `Docker bridge network pool EXHAUSTED — ${pressure.total} of ~${pressure.limit} slots used; workspace stacks cannot be rebuilt and queued agent feedback will not be delivered${detail}` : `Docker bridge network pool under pressure — ${pressure.total} of ~${pressure.limit} slots used, only ${pressure.headroom} left${detail}`;
129
+ d.emit(level === "exhausted" ? "error" : "warn", `[deacon] ${action}`);
130
+ console.warn(`[deacon] ${action} (was ${previous})`);
131
+ return [action];
132
+ }
133
+ //#endregion
134
+ export { patrolDockerBridgePool };
135
+
136
+ //# sourceMappingURL=bridge-pool-patrol-CYH2OLb5.js.map
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Br as getOverdeckHome, Vr as init_paths } from "./config-yaml-DySPNmKN.js";
2
+ import { ci as getOverdeckHome, li as init_paths } from "./config-yaml-CxdwhAIA.js";
3
3
  import { dirname, join } from "path";
4
4
  import { randomUUID } from "crypto";
5
5
  import { mkdir, readFile, rename, stat, writeFile } from "fs/promises";
@@ -128,4 +128,4 @@ var init_briefing_freshness = __esmMin((() => {
128
128
  //#endregion
129
129
  export { resolveSessionContextBriefingPath as a, recordBriefingSessionStart as i, ensureSessionContextBriefingFile as n, init_briefing_freshness as r, appendFreshBriefingUpdate as t };
130
130
 
131
- //# sourceMappingURL=briefing-freshness-D1wzUIWv.js.map
131
+ //# sourceMappingURL=briefing-freshness-DRqZ8lAz.js.map
@@ -2,12 +2,14 @@ import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
2
  //#region ../../lib/deploy/build-info.ts
3
3
  function getBuildInfo() {
4
4
  return {
5
- buildCommit: "470dfaba75ec7478787a15f9854f20df5c960c05",
6
- builtAt: "2026-07-23T14:20:17.760Z"
5
+ buildCommit: "3eff6973c550a453f51d6c294df9154365f76528",
6
+ builtAt: "2026-07-27T19:06:18.015Z",
7
+ buildDirty: false,
8
+ buildBranch: null
7
9
  };
8
10
  }
9
11
  var init_build_info = __esmMin((() => {}));
10
12
  //#endregion
11
13
  export { init_build_info as n, getBuildInfo as t };
12
14
 
13
- //# sourceMappingURL=build-info-Ie_D0_BT.js.map
15
+ //# sourceMappingURL=build-info-7yiEpl6u.js.map
@@ -1,3 +1,3 @@
1
- import { n as init_build_info, t as getBuildInfo } from "./build-info-Ie_D0_BT.js";
1
+ import { n as init_build_info, t as getBuildInfo } from "./build-info-7yiEpl6u.js";
2
2
  init_build_info();
3
3
  export { getBuildInfo };
@@ -1,3 +1,3 @@
1
- import { _ as pruneStaleCheckpointRefs, g as pruneCheckpointRefsForAgents, h as listCheckpoints, i as deleteLegacyCheckpointRefs, m as init_checkpoint_manager, p as getCheckpointTimestamp, s as diffCheckpointFiles } from "./checkpoint-manager-BI1Wxoku.js";
1
+ import { _ as pruneStaleCheckpointRefs, g as pruneCheckpointRefsForAgents, h as listCheckpoints, i as deleteLegacyCheckpointRefs, m as init_checkpoint_manager, p as getCheckpointTimestamp, s as diffCheckpointFiles } from "./checkpoint-manager-DBcyNR8w.js";
2
2
  init_checkpoint_manager();
3
3
  export { deleteLegacyCheckpointRefs, diffCheckpointFiles, getCheckpointTimestamp, listCheckpoints, pruneCheckpointRefsForAgents, pruneStaleCheckpointRefs };
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Kt as STATE_BRANCH_PATHS, Yt as init_state_plane, mr as init_errors, pr as VcsError, sr as InvalidAgentIdError, tr as CheckpointError } from "./config-yaml-DySPNmKN.js";
2
+ import { Fr as init_errors, Or as InvalidAgentIdError, Pr as VcsError, Sr as CheckpointError, fn as STATE_BRANCH_PATHS, hn as init_state_plane } from "./config-yaml-CxdwhAIA.js";
3
3
  import { Effect, Layer } from "effect";
4
4
  import { join } from "path";
5
5
  import { tmpdir } from "os";
@@ -663,4 +663,4 @@ var init_checkpoint_manager = __esmMin((() => {
663
663
  //#endregion
664
664
  export { pruneStaleCheckpointRefs as _, diffAgainstMain as a, diffCheckpoints as c, diffPatchSinceCommit as d, findCommitAtTime as f, pruneCheckpointRefsForAgents as g, listCheckpoints as h, deleteLegacyCheckpointRefs as i, diffFilesAgainstHead as l, init_checkpoint_manager as m, checkpointStateExclusions as n, diffAgainstMainFiles as o, getCheckpointTimestamp as p, deleteCheckpoint as r, diffCheckpointFiles as s, captureCheckpoint as t, diffPatchFilesAgainstHead as u };
665
665
 
666
- //# sourceMappingURL=checkpoint-manager-BI1Wxoku.js.map
666
+ //# sourceMappingURL=checkpoint-manager-DBcyNR8w.js.map
@@ -1,4 +1,4 @@
1
- import { a as releaseTranscriptRange, i as listTranscriptCheckpoints, n as commitTranscriptRange, r as getTranscriptCheckpoint, t as claimTranscriptRange } from "./checkpoints-CQB1h765.js";
1
+ import { a as releaseTranscriptRange, i as listTranscriptCheckpoints, n as commitTranscriptRange, r as getTranscriptCheckpoint, t as claimTranscriptRange } from "./checkpoints-D95apurL.js";
2
2
  import { parentPort } from "node:worker_threads";
3
3
  //#region ../../lib/memory/checkpoint-worker.ts
4
4
  function runOperation(operation, payload) {
@@ -1,4 +1,4 @@
1
- import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-BEqFxlJc.js";
1
+ import { d as getOverdeckDatabaseSync, f as init_infra } from "./infra-BDQDRopn.js";
2
2
  import { randomUUID } from "node:crypto";
3
3
  //#region ../../lib/overdeck/transcript-checkpoint-sync.ts
4
4
  /**
@@ -195,4 +195,4 @@ function getTranscriptCheckpoint(sessionId) {
195
195
  //#endregion
196
196
  export { releaseTranscriptRange as a, listTranscriptCheckpoints as i, commitTranscriptRange as n, getTranscriptCheckpoint as r, claimTranscriptRange as t };
197
197
 
198
- //# sourceMappingURL=checkpoints-CQB1h765.js.map
198
+ //# sourceMappingURL=checkpoints-D95apurL.js.map
@@ -1,2 +1,2 @@
1
- import { a as releaseTranscriptRange, i as listTranscriptCheckpoints, n as commitTranscriptRange, r as getTranscriptCheckpoint, t as claimTranscriptRange } from "./checkpoints-CQB1h765.js";
1
+ import { a as releaseTranscriptRange, i as listTranscriptCheckpoints, n as commitTranscriptRange, r as getTranscriptCheckpoint, t as claimTranscriptRange } from "./checkpoints-D95apurL.js";
2
2
  export { claimTranscriptRange, commitTranscriptRange, getTranscriptCheckpoint, listTranscriptCheckpoints, releaseTranscriptRange };
@@ -1,3 +1,3 @@
1
- import { n as provisionClaudeHooks, t as init_claude_hooks_provision } from "./claude-hooks-provision-D8GXF3_s.js";
1
+ import { n as provisionClaudeHooks, t as init_claude_hooks_provision } from "./claude-hooks-provision-Bjitl9aI.js";
2
2
  init_claude_hooks_provision();
3
3
  export { provisionClaudeHooks };
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Vr as init_paths, _r as BIN_DIR, jr as SYNC_SOURCES } from "./config-yaml-DySPNmKN.js";
2
+ import { Qr as SYNC_SOURCES, Rr as BIN_DIR, li as init_paths } from "./config-yaml-CxdwhAIA.js";
3
3
  import { join } from "node:path";
4
4
  import { copyFileSync, existsSync, mkdirSync, readdirSync, renameSync, unlinkSync, writeFileSync } from "fs";
5
5
  import { basename as basename$1, dirname as dirname$1, join as join$1 } from "path";
@@ -104,6 +104,7 @@ var init_claude_hooks_registration = __esmMin((() => {
104
104
  "pan-hook-lib.sh",
105
105
  "pre-tool-hook",
106
106
  "ask-user-question-hook",
107
+ "linear-mcp-auth-hook",
107
108
  "auto-approve-hook",
108
109
  "heartbeat-hook",
109
110
  "stop-hook",
@@ -151,6 +152,16 @@ var init_claude_hooks_registration = __esmMin((() => {
151
152
  hookType: "PostToolUse",
152
153
  scriptName: "heartbeat-hook"
153
154
  },
155
+ {
156
+ hookType: "PostToolUse",
157
+ scriptName: "linear-mcp-auth-hook",
158
+ matcher: "mcp__linear__.*"
159
+ },
160
+ {
161
+ hookType: "PostToolUseFailure",
162
+ scriptName: "linear-mcp-auth-hook",
163
+ matcher: "mcp__linear__.*"
164
+ },
154
165
  {
155
166
  hookType: "PostToolUse",
156
167
  scriptName: "permission-event-hook"
@@ -375,4 +386,4 @@ var init_claude_hooks_provision = __esmMin((() => {
375
386
  //#endregion
376
387
  export { provisionClaudeHooks as n, init_claude_hooks_provision as t };
377
388
 
378
- //# sourceMappingURL=claude-hooks-provision-D8GXF3_s.js.map
389
+ //# sourceMappingURL=claude-hooks-provision-Bjitl9aI.js.map
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { f as loadConfigSync, t as init_config_yaml } from "./config-yaml-DySPNmKN.js";
2
+ import { f as loadConfigSync, t as init_config_yaml } from "./config-yaml-CxdwhAIA.js";
3
3
  import "effect";
4
4
  //#region ../../lib/claude-permissions.ts
5
5
  /** Read PAN_YOLO from the current process env. Returns the implied mode, or undefined if unset/unparseable. */
@@ -94,4 +94,4 @@ var init_claude_permissions = __esmMin((() => {
94
94
  //#endregion
95
95
  export { init_claude_permissions as a, getClaudePermissionFlagsSync as i, buildClaudeUserSettingsSync as n, resolvePermissionModeSync as o, getClaudePermissionFlagsStringSync as r, BYPASS_PERMISSION_MODE as t };
96
96
 
97
- //# sourceMappingURL=claude-permissions-DNWEVV6z.js.map
97
+ //# sourceMappingURL=claude-permissions-CpbpvUQ2.js.map
@@ -1,3 +1,3 @@
1
- import { n as init_claude_settings_overlay, r as injectOverdeckInfraDeny } from "./claude-settings-overlay-CEdaqpWI.js";
1
+ import { n as init_claude_settings_overlay, r as injectOverdeckInfraDeny } from "./claude-settings-overlay-_H9Yrzab.js";
2
2
  init_claude_settings_overlay();
3
3
  export { injectOverdeckInfraDeny };
@@ -1,5 +1,5 @@
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-CxdwhAIA.js";
3
3
  import { Effect, FileSystem } from "effect";
4
4
  import { join } from "path";
5
5
  import { homedir, tmpdir } from "os";
@@ -142,4 +142,4 @@ var init_claude_settings_overlay = __esmMin((() => {
142
142
  //#endregion
143
143
  export { init_claude_settings_overlay as n, injectOverdeckInfraDeny as r, detectProviderEnvConflicts as t };
144
144
 
145
- //# sourceMappingURL=claude-settings-overlay-CEdaqpWI.js.map
145
+ //# sourceMappingURL=claude-settings-overlay-_H9Yrzab.js.map
@@ -0,0 +1,3 @@
1
+ import { r as init_cli, t as createResetMarker } from "./cli-Cte9ZFGn.js";
2
+ init_cli();
3
+ export { createResetMarker };
@@ -1,11 +1,11 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Vr as init_paths } from "./config-yaml-DySPNmKN.js";
3
- import { c as resolveMemoryRoot, i as init_paths$1, l as resolveObservationsFile, p as resolveSummariesDir, r as ensureParentDir } from "./paths-D-xWGHdh.js";
4
- import { b as init_agents } from "./queries-CjNIf-Ub.js";
5
- import { i as init_settings } from "./settings-BTMvpNFU.js";
6
- import { r as init_health, t as init_providers } from "./providers-qQAwGQDW.js";
7
- import { a as withMemoryFtsDatabase, i as runMemoryFtsTransaction, n as init_fts_db } from "./fts-db-CE46vDkZ.js";
8
- import { r as init_rollup } from "./rollup-FGsKki9R.js";
2
+ import { li as init_paths } from "./config-yaml-CxdwhAIA.js";
3
+ import { c as resolveMemoryRoot, i as init_paths$1, l as resolveObservationsFile, p as resolveSummariesDir, r as ensureParentDir } from "./paths-sJBSb7Ul.js";
4
+ import { b as init_agents } from "./queries-C-MUZaIy.js";
5
+ import { i as init_settings } from "./settings-VN0qOh4U.js";
6
+ import { r as init_health, t as init_providers } from "./providers-BJQSnAAp.js";
7
+ import { a as withMemoryFtsDatabase, i as runMemoryFtsTransaction, n as init_fts_db } from "./fts-db-IVc4_M3f.js";
8
+ import { r as init_rollup } from "./rollup-BQaol5TX.js";
9
9
  import { dirname, join } from "path";
10
10
  import { randomUUID } from "crypto";
11
11
  import { readFile, rename, writeFile } from "fs/promises";
@@ -194,7 +194,7 @@ async function writeResetMarkerToFtsDb(projectId, marker) {
194
194
  });
195
195
  }
196
196
  async function emitResetMarkerCreated(marker, timestamp) {
197
- const { initEventStore } = await import("./event-store-EV2cMiXj.js");
197
+ const { initEventStore } = await import("./event-store-5UKzh9Jf.js");
198
198
  await (await initEventStore()).appendAsync({
199
199
  type: "memory.reset_marker_created",
200
200
  timestamp,
@@ -221,4 +221,4 @@ var init_cli = __esmMin((() => {
221
221
  //#endregion
222
222
  export { generateDailySummary as n, init_cli as r, createResetMarker as t };
223
223
 
224
- //# sourceMappingURL=cli-RoOx5DUf.js.map
224
+ //# sourceMappingURL=cli-Cte9ZFGn.js.map
@@ -1,5 +1,5 @@
1
1
  import { n as __esmMin } from "./rolldown-runtime-DNCzzKnI.js";
2
- import { Vr as init_paths, _r as BIN_DIR, ir as FsError, mr as init_errors, ur as ProcessSpawnError, wr as OVERDECK_HOME } from "./config-yaml-DySPNmKN.js";
2
+ import { Fr as init_errors, Gr as OVERDECK_HOME, Rr as BIN_DIR, Tr as FsError, jr as ProcessSpawnError, li as init_paths } from "./config-yaml-CxdwhAIA.js";
3
3
  import { Data, Effect } from "effect";
4
4
  import { existsSync, mkdirSync, readFileSync, statSync, writeFileSync } from "fs";
5
5
  import { join } from "path";
@@ -496,4 +496,4 @@ var init_cliproxy = __esmMin((() => {
496
496
  //#endregion
497
497
  export { restartCliproxy as C, readPidFile as S, stopCliproxy as T, getCliproxyPidPath as _, CliproxyError as a, isCliproxyInstalled as b, bridgeGeminiAuthToCliproxy as c, getCliproxyAuthDir as d, getCliproxyBinary as f, getCliproxyLogPath as g, getCliproxyDir as h, CLIPROXY_PORT as i, decodeJwtPayload as l, getCliproxyConfigPath as m, CLIPROXY_BASE_URL as n, bridgeCodexAuthToCliproxy as o, getCliproxyClientEnv as p, CLIPROXY_HOST as r, bridgeCodexAuthToCliproxySync as s, CLIPROXY_AUTH_TOKEN as t, detectPlatformAsset as u, init_cliproxy as v, startCliproxy as w, isCliproxyRunning as x, installCliproxy as y };
498
498
 
499
- //# sourceMappingURL=cliproxy-C8a1vtTU.js.map
499
+ //# sourceMappingURL=cliproxy-C5fMJ7rY.js.map
@@ -1,3 +1,3 @@
1
- import { v as init_cliproxy, x as isCliproxyRunning } from "./cliproxy-C8a1vtTU.js";
1
+ import { v as init_cliproxy, x as isCliproxyRunning } from "./cliproxy-C5fMJ7rY.js";
2
2
  init_cliproxy();
3
3
  export { isCliproxyRunning };
@@ -1,6 +1,6 @@
1
- import { Jn as extractPrefixSync, Xn as normalizeIssueIdSync, Yn as init_issue_id, qn as extractNumberSync } from "./config-yaml-DySPNmKN.js";
2
- import { b as init_agents, cr as saveAgentState, nr as markAgentStoppedState, qn as getAgentState } from "./queries-CjNIf-Ub.js";
3
- import { a as stepSkipped, i as stepOk, n as init_types, r as stepFailed, t as getLinearApiKey } from "./types-5M0lupud.js";
1
+ import { _r as normalizeIssueIdSync, gr as init_issue_id, hr as extractPrefixSync, mr as extractNumberSync } from "./config-yaml-CxdwhAIA.js";
2
+ import { b as init_agents, gr as saveAgentState, tr as getAgentState, ur as markAgentStoppedState } from "./queries-C-MUZaIy.js";
3
+ import { a as stepSkipped, i as stepOk, n as init_types, r as stepFailed, t as getLinearApiKey } from "./types-Di8wdakq.js";
4
4
  import { Effect } from "effect";
5
5
  import { exec } from "child_process";
6
6
  import { promisify } from "util";
@@ -227,7 +227,7 @@ function closeRallyDirect(ctx) {
227
227
  async function closeRallyDirectImpl(ctx) {
228
228
  const step = "close-issue:transition";
229
229
  if (!ctx.rally) return stepFailed(step, "Rally config not provided");
230
- const { RallyTracker } = await import("./rally-zhhtXuDP.js");
230
+ const { RallyTracker } = await import("./rally-D_VW4bJv.js");
231
231
  const tracker = new RallyTracker({
232
232
  apiKey: ctx.rally.apiKey,
233
233
  server: ctx.rally.server,
@@ -327,4 +327,4 @@ async function applyLabelLinearImpl(ctx, apiKey) {
327
327
  //#endregion
328
328
  export { closeIssue as t };
329
329
 
330
- //# sourceMappingURL=close-issue-DoOifFIK.js.map
330
+ //# sourceMappingURL=close-issue-BPh1ARCF.js.map
@@ -1,2 +1,2 @@
1
- import { t as handleIssueStatusChangedClosed } from "./closed-issue-reaper-Bk3SU4RC.js";
1
+ import { t as handleIssueStatusChangedClosed } from "./closed-issue-reaper-DoOZqGFK.js";
2
2
  export { handleIssueStatusChangedClosed };
@@ -1,12 +1,12 @@
1
- import { Ft as resolveProjectForIssue, Ot as init_record, Tn as init_projects, Vr as init_paths, Yn as init_issue_id, hr as AGENTS_DIR, kn as listProjectsSync } from "./config-yaml-DySPNmKN.js";
2
- import { a as init_activity_logger, n as emitActivityEntrySync } from "./activity-logger-DDlOIAML.js";
3
- import { D as killSession, M as listSessionNames, w as init_tmux } from "./tmux-R7N7y-Mh.js";
4
- import { d as loadReviewStatuses, l as init_review_status } from "./review-status-kZj_KyCk.js";
5
- import { b as init_agents, ft as stopAgent, i as listRunningAgents } from "./queries-CjNIf-Ub.js";
6
- import { i as teardownWorkspaceDockerByNamePromise, n as init_docker } from "./docker-DcMTFTUC.js";
7
- import { l as init_prd_locations, o as init_archive_planning } from "./archive-planning-Du25Jtst.js";
8
- import { n as init_issue_closed, r as isIssueClosed } from "./issue-closed-CDJk4pIp.js";
9
- import "./close-issue-DoOifFIK.js";
1
+ import { Gn as init_projects, Ir as AGENTS_DIR, Pt as init_record, Vt as resolveProjectForIssue, Yn as listProjectsSync, gr as init_issue_id, li as init_paths } from "./config-yaml-CxdwhAIA.js";
2
+ import { o as init_activity_logger, r as emitActivityEntrySync } from "./activity-logger-CyteR4JO.js";
3
+ import { D as killSession, M as listSessionNames, w as init_tmux } from "./tmux-CfDHob9M.js";
4
+ import { C as setReviewStatusSync, G as readJournalStatus, W as init_review_status_record_sync, h as loadReviewStatuses, p as init_review_status } from "./review-status-CGvlA4o_.js";
5
+ import { b as init_agents, i as listRunningAgents, pt as stopAgent } from "./queries-C-MUZaIy.js";
6
+ import { i as teardownWorkspaceDockerByNamePromise, n as init_docker } from "./docker-BJzlkqYB.js";
7
+ import { i as isTrackerIssueClosed, n as init_issue_closed, r as isIssueClosed } from "./issue-closed-BehTG1be.js";
8
+ import "./archive-planning-BwhxeP7C.js";
9
+ import "./close-issue-BPh1ARCF.js";
10
10
  import { join } from "node:path";
11
11
  import { Data, Effect } from "effect";
12
12
  import "fs";
@@ -20,13 +20,12 @@ import { promisify as promisify$1 } from "util";
20
20
  init_activity_logger();
21
21
  init_projects();
22
22
  init_record();
23
+ init_review_status_record_sync();
23
24
  init_agents();
24
25
  init_issue_closed();
25
26
  init_paths();
26
- init_prd_locations();
27
27
  init_tmux();
28
28
  init_review_status();
29
- init_archive_planning();
30
29
  init_docker();
31
30
  init_issue_id();
32
31
  const execAsync$2 = promisify$1(exec$1);
@@ -254,6 +253,7 @@ async function reapIssueResidue(projectPath, issueId) {
254
253
  //#endregion
255
254
  //#region ../../lib/cloister/closed-issue-reaper.ts
256
255
  init_paths();
256
+ init_review_status();
257
257
  init_tmux();
258
258
  function issueIdFromStatelessSession(sessionName) {
259
259
  const match = sessionName.match(/^(?:inspect|strike)-([a-z0-9]+-\d+)(?:-|$)/i);
@@ -268,6 +268,7 @@ function issueIdFromAgentDir(entryName) {
268
268
  return match ? match[1].toUpperCase() : null;
269
269
  }
270
270
  const execAsync = promisify(exec);
271
+ const DEVNET_CLOSURE_CHECK_CONCURRENCY = 4;
271
272
  async function listFeatureDevnetIssueIds() {
272
273
  try {
273
274
  const { stdout } = await execAsync(`docker network ls --format '{{.Name}}'`, {
@@ -281,7 +282,7 @@ async function listFeatureDevnetIssueIds() {
281
282
  }
282
283
  return [...issueIds];
283
284
  } catch {
284
- return [];
285
+ return null;
285
286
  }
286
287
  }
287
288
  async function isClosedIssue(issueId, closedChecks) {
@@ -292,6 +293,52 @@ async function isClosedIssue(issueId, closedChecks) {
292
293
  }
293
294
  return promise;
294
295
  }
296
+ async function isTrackerClosedIssue(issueId, trackerClosedChecks) {
297
+ let promise = trackerClosedChecks.get(issueId);
298
+ if (!promise) {
299
+ promise = isTrackerIssueClosed(issueId);
300
+ trackerClosedChecks.set(issueId, promise);
301
+ }
302
+ return promise;
303
+ }
304
+ function hasUnservicedReviewRequest(status) {
305
+ if (status.reviewStatus !== "pending" || !status.reviewRequestedAt) return false;
306
+ return !status.reviewSpawnedAt || new Date(status.reviewRequestedAt).getTime() > new Date(status.reviewSpawnedAt).getTime();
307
+ }
308
+ async function reapClosedIssueReviewRequests(trackerClosedChecks) {
309
+ const actions = [];
310
+ const pendingStatuses = Object.entries(loadReviewStatuses()).filter(([, status]) => status.reviewStatus === "pending");
311
+ for (let offset = 0; offset < pendingStatuses.length; offset += 4) {
312
+ const batch = pendingStatuses.slice(offset, offset + 4);
313
+ const candidates = (await Promise.all(batch.map(async ([issueId, dbStatus]) => {
314
+ const journal = await readJournalStatus(issueId);
315
+ const existing = {
316
+ ...dbStatus,
317
+ ...journal?.durable ?? {},
318
+ issueId
319
+ };
320
+ for (const field of journal?.clearedFields ?? []) delete existing[field];
321
+ return hasUnservicedReviewRequest(existing) ? [issueId, existing] : null;
322
+ }))).filter((candidate) => candidate !== null);
323
+ const trackerClosedCandidates = (await Promise.all(candidates.map(async ([issueId, existing]) => await isTrackerClosedIssue(issueId, trackerClosedChecks) ? [issueId, existing] : null))).filter((candidate) => candidate !== null);
324
+ for (const [issueId, existing] of trackerClosedCandidates) {
325
+ setReviewStatusSync(issueId, {
326
+ reviewRequestedAt: void 0,
327
+ reviewSpawnedAt: void 0
328
+ }, existing);
329
+ const action = `Cleared unserviced review request for ${issueId} — parent issue is closed`;
330
+ actions.push(action);
331
+ console.log(`[deacon] ${action}`);
332
+ emitActivityEntrySync({
333
+ source: "cloister",
334
+ level: "info",
335
+ issueId,
336
+ message: `[deacon] cleared unserviced review request for ${issueId} — parent issue is closed`
337
+ });
338
+ }
339
+ }
340
+ return actions;
341
+ }
295
342
  async function reapClosedIssueResidue(projectPath, issueId, actions, reapedIssueKeys) {
296
343
  const key = `${projectPath}:${issueId}`;
297
344
  if (reapedIssueKeys.has(key)) return;
@@ -366,6 +413,7 @@ async function handleIssueStatusChangedClosed(issueId) {
366
413
  async function reconcileClosedIssueAgents() {
367
414
  const actions = [];
368
415
  const closedChecks = /* @__PURE__ */ new Map();
416
+ const trackerClosedChecks = /* @__PURE__ */ new Map();
369
417
  const reapedAgentIds = /* @__PURE__ */ new Set();
370
418
  const closedIssueIds = /* @__PURE__ */ new Set();
371
419
  const reapedIssueKeys = /* @__PURE__ */ new Set();
@@ -405,13 +453,36 @@ async function reconcileClosedIssueAgents() {
405
453
  if (!await isClosedIssue(issueId, closedChecks)) continue;
406
454
  await reapResolvedIssueResidue(issueId, actions, reapedIssueKeys);
407
455
  }
408
- for (const issueId of await listFeatureDevnetIssueIds()) {
409
- if (!await isClosedIssue(issueId, closedChecks)) continue;
410
- await reapResolvedIssueResidue(issueId, actions, reapedIssueKeys);
456
+ const devnetIssueIds = await listFeatureDevnetIssueIds();
457
+ const openDevnetIssueIds = [];
458
+ if (devnetIssueIds) for (let offset = 0; offset < devnetIssueIds.length; offset += DEVNET_CLOSURE_CHECK_CONCURRENCY) {
459
+ const batch = devnetIssueIds.slice(offset, offset + DEVNET_CLOSURE_CHECK_CONCURRENCY);
460
+ const closureResults = await Promise.all(batch.map(async (issueId) => ({
461
+ issueId,
462
+ closed: await isClosedIssue(issueId, closedChecks)
463
+ })));
464
+ for (const { issueId, closed } of closureResults) if (closed) await reapResolvedIssueResidue(issueId, actions, reapedIssueKeys);
465
+ else openDevnetIssueIds.push(issueId);
466
+ }
467
+ let mergedIssueIds = devnetIssueIds ? [] : null;
468
+ if (openDevnetIssueIds.length > 0) try {
469
+ const { getReviewStatusesSync } = await import("./review-status-Dma9SFaN.js");
470
+ const statuses = getReviewStatusesSync(openDevnetIssueIds);
471
+ mergedIssueIds = openDevnetIssueIds.filter((issueId) => statuses[issueId]?.mergeStatus === "merged");
472
+ } catch (error) {
473
+ mergedIssueIds = null;
474
+ actions.push(`Failed to resolve merged-issue Docker cleanup status: ${error}`);
475
+ }
476
+ if (mergedIssueIds) try {
477
+ const { reconcileMergedDockerCleanupQueue } = await import("./merged-docker-cleanup-worker-DH_hrGPI.js");
478
+ actions.push(...reconcileMergedDockerCleanupQueue(mergedIssueIds));
479
+ } catch (error) {
480
+ actions.push(`Failed to reconcile merged-issue Docker cleanup queue: ${error}`);
411
481
  }
482
+ actions.push(...await reapClosedIssueReviewRequests(trackerClosedChecks));
412
483
  return actions;
413
484
  }
414
485
  //#endregion
415
- export { reconcileClosedIssueAgents as n, handleIssueStatusChangedClosed as t };
486
+ export { reapClosedIssueReviewRequests as n, reconcileClosedIssueAgents as r, handleIssueStatusChangedClosed as t };
416
487
 
417
- //# sourceMappingURL=closed-issue-reaper-Bk3SU4RC.js.map
488
+ //# sourceMappingURL=closed-issue-reaper-DoOZqGFK.js.map