@telora/daemon 0.21.98 → 0.21.144

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 (416) hide show
  1. package/build-info.json +6 -3
  2. package/dist/audit/audit-hooks.d.ts +120 -5
  3. package/dist/audit/audit-hooks.d.ts.map +1 -1
  4. package/dist/audit/audit-hooks.js +205 -45
  5. package/dist/audit/audit-hooks.js.map +1 -1
  6. package/dist/ci/ci-escalation.js +1 -1
  7. package/dist/ci/ci-escalation.js.map +1 -1
  8. package/dist/ci/ci-sensor-loop.d.ts +30 -0
  9. package/dist/ci/ci-sensor-loop.d.ts.map +1 -1
  10. package/dist/ci/ci-sensor-loop.js +85 -12
  11. package/dist/ci/ci-sensor-loop.js.map +1 -1
  12. package/dist/cli/connect/config-write.d.ts +87 -0
  13. package/dist/cli/connect/config-write.d.ts.map +1 -0
  14. package/dist/cli/connect/config-write.js +255 -0
  15. package/dist/cli/connect/config-write.js.map +1 -0
  16. package/dist/cli/connect/registration.d.ts +76 -0
  17. package/dist/cli/connect/registration.d.ts.map +1 -0
  18. package/dist/cli/connect/registration.js +207 -0
  19. package/dist/cli/connect/registration.js.map +1 -0
  20. package/dist/cli/connect.d.ts +3 -141
  21. package/dist/cli/connect.d.ts.map +1 -1
  22. package/dist/cli/connect.js +9 -441
  23. package/dist/cli/connect.js.map +1 -1
  24. package/dist/completion/coverage-drift-state.d.ts +29 -2
  25. package/dist/completion/coverage-drift-state.d.ts.map +1 -1
  26. package/dist/completion/coverage-drift-state.js +42 -2
  27. package/dist/completion/coverage-drift-state.js.map +1 -1
  28. package/dist/completion/coverage-stabilized.d.ts +58 -0
  29. package/dist/completion/coverage-stabilized.d.ts.map +1 -0
  30. package/dist/completion/coverage-stabilized.js +84 -0
  31. package/dist/completion/coverage-stabilized.js.map +1 -0
  32. package/dist/completion/delivery-advancement-guard.d.ts +21 -0
  33. package/dist/completion/delivery-advancement-guard.d.ts.map +1 -1
  34. package/dist/completion/delivery-advancement-guard.js +31 -3
  35. package/dist/completion/delivery-advancement-guard.js.map +1 -1
  36. package/dist/completion/escalation-provenance.d.ts +2 -1
  37. package/dist/completion/escalation-provenance.d.ts.map +1 -1
  38. package/dist/completion/escalation-provenance.js +2 -1
  39. package/dist/completion/escalation-provenance.js.map +1 -1
  40. package/dist/completion/escalations.js +1 -1
  41. package/dist/completion/escalations.js.map +1 -1
  42. package/dist/completion/event-escalations.d.ts +16 -1
  43. package/dist/completion/event-escalations.d.ts.map +1 -1
  44. package/dist/completion/event-escalations.js +43 -5
  45. package/dist/completion/event-escalations.js.map +1 -1
  46. package/dist/completion/event-phases.d.ts.map +1 -1
  47. package/dist/completion/event-phases.js +5 -2
  48. package/dist/completion/event-phases.js.map +1 -1
  49. package/dist/completion/event.d.ts +1 -1
  50. package/dist/completion/event.d.ts.map +1 -1
  51. package/dist/completion/event.js +2 -2
  52. package/dist/completion/event.js.map +1 -1
  53. package/dist/completion/machine-remediable-demotion.d.ts +74 -0
  54. package/dist/completion/machine-remediable-demotion.d.ts.map +1 -0
  55. package/dist/completion/machine-remediable-demotion.js +148 -0
  56. package/dist/completion/machine-remediable-demotion.js.map +1 -0
  57. package/dist/completion/read-only-pristine.d.ts +1 -1
  58. package/dist/completion/read-only-pristine.d.ts.map +1 -1
  59. package/dist/completion/read-only-pristine.js +1 -1
  60. package/dist/completion/read-only-pristine.js.map +1 -1
  61. package/dist/completion/review-exit-escalations.d.ts +1 -1
  62. package/dist/completion/review-exit-escalations.d.ts.map +1 -1
  63. package/dist/completion/review-exit-phase.d.ts +5 -2
  64. package/dist/completion/review-exit-phase.d.ts.map +1 -1
  65. package/dist/completion/review-exit-phase.js +15 -8
  66. package/dist/completion/review-exit-phase.js.map +1 -1
  67. package/dist/completion/settle-injection-sweep.d.ts +55 -0
  68. package/dist/completion/settle-injection-sweep.d.ts.map +1 -0
  69. package/dist/completion/settle-injection-sweep.js +88 -0
  70. package/dist/completion/settle-injection-sweep.js.map +1 -0
  71. package/dist/completion/state-cascade.d.ts.map +1 -1
  72. package/dist/completion/state-cascade.js +42 -1
  73. package/dist/completion/state-cascade.js.map +1 -1
  74. package/dist/completion/status-advance-phase.d.ts.map +1 -1
  75. package/dist/completion/status-advance-phase.js +18 -0
  76. package/dist/completion/status-advance-phase.js.map +1 -1
  77. package/dist/completion/team-lifecycle.d.ts +42 -0
  78. package/dist/completion/team-lifecycle.d.ts.map +1 -1
  79. package/dist/completion/team-lifecycle.js +73 -1
  80. package/dist/completion/team-lifecycle.js.map +1 -1
  81. package/dist/delivery/delivery-advance-block.d.ts +1 -1
  82. package/dist/delivery/delivery-advance-block.d.ts.map +1 -1
  83. package/dist/delivery/delivery-advance-block.js +1 -1
  84. package/dist/delivery/delivery-advance-block.js.map +1 -1
  85. package/dist/delivery/delivery-lifecycle.d.ts +19 -33
  86. package/dist/delivery/delivery-lifecycle.d.ts.map +1 -1
  87. package/dist/delivery/delivery-lifecycle.js +20 -148
  88. package/dist/delivery/delivery-lifecycle.js.map +1 -1
  89. package/dist/delivery/delivery-merge-ops.d.ts +46 -0
  90. package/dist/delivery/delivery-merge-ops.d.ts.map +1 -0
  91. package/dist/delivery/delivery-merge-ops.js +154 -0
  92. package/dist/delivery/delivery-merge-ops.js.map +1 -0
  93. package/dist/delivery/delivery-reconciler-apply.d.ts +28 -0
  94. package/dist/delivery/delivery-reconciler-apply.d.ts.map +1 -1
  95. package/dist/delivery/delivery-reconciler-apply.js +30 -0
  96. package/dist/delivery/delivery-reconciler-apply.js.map +1 -1
  97. package/dist/delivery/delivery-reconciler-shadow.d.ts +1 -1
  98. package/dist/delivery/delivery-reconciler-shadow.d.ts.map +1 -1
  99. package/dist/delivery/delivery-reconciler-shadow.js +1 -1
  100. package/dist/delivery/delivery-reconciler-shadow.js.map +1 -1
  101. package/dist/delivery/delivery-reconciler.d.ts +7 -2
  102. package/dist/delivery/delivery-reconciler.d.ts.map +1 -1
  103. package/dist/delivery/delivery-reconciler.js +34 -5
  104. package/dist/delivery/delivery-reconciler.js.map +1 -1
  105. package/dist/delivery/external-hold-surface.d.ts +32 -0
  106. package/dist/delivery/external-hold-surface.d.ts.map +1 -0
  107. package/dist/delivery/external-hold-surface.js +67 -0
  108. package/dist/delivery/external-hold-surface.js.map +1 -0
  109. package/dist/delivery/external-hold.d.ts +21 -0
  110. package/dist/delivery/external-hold.d.ts.map +1 -1
  111. package/dist/delivery/external-hold.js +40 -5
  112. package/dist/delivery/external-hold.js.map +1 -1
  113. package/dist/delivery/operator-hold.d.ts +1 -1
  114. package/dist/delivery/operator-hold.d.ts.map +1 -1
  115. package/dist/delivery/paused-revival.d.ts +140 -0
  116. package/dist/delivery/paused-revival.d.ts.map +1 -0
  117. package/dist/delivery/paused-revival.js +230 -0
  118. package/dist/delivery/paused-revival.js.map +1 -0
  119. package/dist/delivery/wait-reachability.d.ts.map +1 -1
  120. package/dist/delivery/wait-reachability.js +11 -0
  121. package/dist/delivery/wait-reachability.js.map +1 -1
  122. package/dist/directive/close-loop-dispatcher.d.ts +16 -263
  123. package/dist/directive/close-loop-dispatcher.d.ts.map +1 -1
  124. package/dist/directive/close-loop-dispatcher.js +21 -259
  125. package/dist/directive/close-loop-dispatcher.js.map +1 -1
  126. package/dist/directive/directive-dispatch.d.ts +20 -1
  127. package/dist/directive/directive-dispatch.d.ts.map +1 -1
  128. package/dist/directive/directive-dispatch.js +19 -1
  129. package/dist/directive/directive-dispatch.js.map +1 -1
  130. package/dist/directive/directive-executor.d.ts +1 -3
  131. package/dist/directive/directive-executor.d.ts.map +1 -1
  132. package/dist/directive/directive-executor.js +24 -22
  133. package/dist/directive/directive-executor.js.map +1 -1
  134. package/dist/directive/phase-sync.d.ts +28 -15
  135. package/dist/directive/phase-sync.d.ts.map +1 -1
  136. package/dist/directive/phase-sync.js +28 -36
  137. package/dist/directive/phase-sync.js.map +1 -1
  138. package/dist/directive/resolver-dispatch.d.ts +19 -92
  139. package/dist/directive/resolver-dispatch.d.ts.map +1 -1
  140. package/dist/directive/resolver-dispatch.js +19 -65
  141. package/dist/directive/resolver-dispatch.js.map +1 -1
  142. package/dist/drift/staleness-sensor.js +1 -1
  143. package/dist/drift/staleness-sensor.js.map +1 -1
  144. package/dist/focus/focus-engine.d.ts.map +1 -1
  145. package/dist/focus/focus-engine.js +29 -2
  146. package/dist/focus/focus-engine.js.map +1 -1
  147. package/dist/focus/focus-executor.d.ts.map +1 -1
  148. package/dist/focus/focus-executor.js +290 -256
  149. package/dist/focus/focus-executor.js.map +1 -1
  150. package/dist/focus/focus-lifecycle.d.ts.map +1 -1
  151. package/dist/focus/focus-lifecycle.js +2 -1
  152. package/dist/focus/focus-lifecycle.js.map +1 -1
  153. package/dist/focus/focus-loop-registry.d.ts.map +1 -1
  154. package/dist/focus/focus-loop-registry.js +43 -1
  155. package/dist/focus/focus-loop-registry.js.map +1 -1
  156. package/dist/focus/focus-respawn-guard.d.ts +1 -1
  157. package/dist/focus/focus-respawn-guard.d.ts.map +1 -1
  158. package/dist/focus/focus-respawn-guard.js +12 -3
  159. package/dist/focus/focus-respawn-guard.js.map +1 -1
  160. package/dist/focus/focus-team-state.d.ts +11 -0
  161. package/dist/focus/focus-team-state.d.ts.map +1 -1
  162. package/dist/focus/focus-team-state.js +17 -0
  163. package/dist/focus/focus-team-state.js.map +1 -1
  164. package/dist/focus/listener-auto-advance.d.ts +17 -46
  165. package/dist/focus/listener-auto-advance.d.ts.map +1 -1
  166. package/dist/focus/listener-auto-advance.js +104 -256
  167. package/dist/focus/listener-auto-advance.js.map +1 -1
  168. package/dist/focus/listener-spawn.d.ts +62 -0
  169. package/dist/focus/listener-spawn.d.ts.map +1 -0
  170. package/dist/focus/listener-spawn.js +418 -0
  171. package/dist/focus/listener-spawn.js.map +1 -0
  172. package/dist/focus/listener-state.d.ts +57 -0
  173. package/dist/focus/listener-state.d.ts.map +1 -0
  174. package/dist/focus/listener-state.js +63 -0
  175. package/dist/focus/listener-state.js.map +1 -0
  176. package/dist/focus/listener.d.ts +0 -58
  177. package/dist/focus/listener.d.ts.map +1 -1
  178. package/dist/focus/listener.js +138 -516
  179. package/dist/focus/listener.js.map +1 -1
  180. package/dist/focus/tick-deadline.d.ts +55 -0
  181. package/dist/focus/tick-deadline.d.ts.map +1 -0
  182. package/dist/focus/tick-deadline.js +91 -0
  183. package/dist/focus/tick-deadline.js.map +1 -0
  184. package/dist/focus/verify-open-issues.d.ts +62 -0
  185. package/dist/focus/verify-open-issues.d.ts.map +1 -0
  186. package/dist/focus/verify-open-issues.js +265 -0
  187. package/dist/focus/verify-open-issues.js.map +1 -0
  188. package/dist/focus-stage-lifecycle/index.d.ts +19 -26
  189. package/dist/focus-stage-lifecycle/index.d.ts.map +1 -1
  190. package/dist/focus-stage-lifecycle/index.js +27 -39
  191. package/dist/focus-stage-lifecycle/index.js.map +1 -1
  192. package/dist/focus-stage-lifecycle/wedge-cause-arbiter.d.ts +52 -0
  193. package/dist/focus-stage-lifecycle/wedge-cause-arbiter.d.ts.map +1 -0
  194. package/dist/focus-stage-lifecycle/wedge-cause-arbiter.js +94 -0
  195. package/dist/focus-stage-lifecycle/wedge-cause-arbiter.js.map +1 -0
  196. package/dist/focus-stage-lifecycle/wedge-watchdog.d.ts +18 -1
  197. package/dist/focus-stage-lifecycle/wedge-watchdog.d.ts.map +1 -1
  198. package/dist/focus-stage-lifecycle/wedge-watchdog.js +57 -7
  199. package/dist/focus-stage-lifecycle/wedge-watchdog.js.map +1 -1
  200. package/dist/git/index.d.ts +2 -0
  201. package/dist/git/index.d.ts.map +1 -1
  202. package/dist/git/index.js +2 -0
  203. package/dist/git/index.js.map +1 -1
  204. package/dist/git/merge-strategies.d.ts +80 -0
  205. package/dist/git/merge-strategies.d.ts.map +1 -0
  206. package/dist/git/merge-strategies.js +218 -0
  207. package/dist/git/merge-strategies.js.map +1 -0
  208. package/dist/git/merge-to-main.d.ts +76 -0
  209. package/dist/git/merge-to-main.d.ts.map +1 -0
  210. package/dist/git/merge-to-main.js +256 -0
  211. package/dist/git/merge-to-main.js.map +1 -0
  212. package/dist/git/merge.d.ts +27 -81
  213. package/dist/git/merge.d.ts.map +1 -1
  214. package/dist/git/merge.js +4 -448
  215. package/dist/git/merge.js.map +1 -1
  216. package/dist/git/state-detector.js +1 -1
  217. package/dist/git/state-detector.js.map +1 -1
  218. package/dist/guard/condition-evaluators.d.ts +9 -0
  219. package/dist/guard/condition-evaluators.d.ts.map +1 -1
  220. package/dist/guard/condition-evaluators.js +15 -0
  221. package/dist/guard/condition-evaluators.js.map +1 -1
  222. package/dist/guard/guard-evaluator.d.ts +17 -1
  223. package/dist/guard/guard-evaluator.d.ts.map +1 -1
  224. package/dist/guard/guard-evaluator.js +61 -2
  225. package/dist/guard/guard-evaluator.js.map +1 -1
  226. package/dist/guard/trigger-executor.d.ts +30 -18
  227. package/dist/guard/trigger-executor.d.ts.map +1 -1
  228. package/dist/guard/trigger-executor.js +55 -31
  229. package/dist/guard/trigger-executor.js.map +1 -1
  230. package/dist/loops/engine.js +1 -1
  231. package/dist/loops/engine.js.map +1 -1
  232. package/dist/merge/focus-merge.d.ts +1 -1
  233. package/dist/merge/focus-merge.d.ts.map +1 -1
  234. package/dist/merge/focus-merge.js +1 -1
  235. package/dist/merge/focus-merge.js.map +1 -1
  236. package/dist/merge/merge-back-loop.d.ts +1 -1
  237. package/dist/merge/merge-back-loop.d.ts.map +1 -1
  238. package/dist/merge/merge-back-loop.js +2 -2
  239. package/dist/merge/merge-back-loop.js.map +1 -1
  240. package/dist/merge/merge-detector.js +1 -1
  241. package/dist/merge/merge-detector.js.map +1 -1
  242. package/dist/nexus/return.js +1 -1
  243. package/dist/nexus/return.js.map +1 -1
  244. package/dist/prd/controller-shared.d.ts +223 -0
  245. package/dist/prd/controller-shared.d.ts.map +1 -0
  246. package/dist/prd/controller-shared.js +77 -0
  247. package/dist/prd/controller-shared.js.map +1 -0
  248. package/dist/prd/controller.d.ts +5 -256
  249. package/dist/prd/controller.d.ts.map +1 -1
  250. package/dist/prd/controller.js +9 -166
  251. package/dist/prd/controller.js.map +1 -1
  252. package/dist/prd/done-sweep.d.ts +55 -0
  253. package/dist/prd/done-sweep.d.ts.map +1 -0
  254. package/dist/prd/done-sweep.js +112 -0
  255. package/dist/prd/done-sweep.js.map +1 -0
  256. package/dist/prompt/team-prompt-base.d.ts +1 -1
  257. package/dist/prompt/team-prompt-base.d.ts.map +1 -1
  258. package/dist/prompt/team-prompt-base.js +1 -1
  259. package/dist/prompt/team-prompt-base.js.map +1 -1
  260. package/dist/prompt-sections/execution-sections.d.ts +1 -1
  261. package/dist/prompt-sections/execution-sections.d.ts.map +1 -1
  262. package/dist/prompt-sections/execution-sections.js +12 -2
  263. package/dist/prompt-sections/execution-sections.js.map +1 -1
  264. package/dist/prompt-sections/persona-sections.d.ts +0 -32
  265. package/dist/prompt-sections/persona-sections.d.ts.map +1 -1
  266. package/dist/prompt-sections/persona-sections.js +19 -88
  267. package/dist/prompt-sections/persona-sections.js.map +1 -1
  268. package/dist/prompt-sections/shared.d.ts +1 -1
  269. package/dist/prompt-sections/shared.d.ts.map +1 -1
  270. package/dist/queries/agent-resolvable-promotion.d.ts +1 -1
  271. package/dist/queries/agent-resolvable-promotion.d.ts.map +1 -1
  272. package/dist/queries/agent-resolvable-promotion.js +2 -1
  273. package/dist/queries/agent-resolvable-promotion.js.map +1 -1
  274. package/dist/queries/deliveries.d.ts +0 -172
  275. package/dist/queries/deliveries.d.ts.map +1 -1
  276. package/dist/queries/deliveries.js +1 -77
  277. package/dist/queries/deliveries.js.map +1 -1
  278. package/dist/queries/escalation-consumption.d.ts +120 -0
  279. package/dist/queries/escalation-consumption.d.ts.map +1 -0
  280. package/dist/queries/escalation-consumption.js +143 -0
  281. package/dist/queries/escalation-consumption.js.map +1 -0
  282. package/dist/queries/escalation-dispositions.d.ts +19 -0
  283. package/dist/queries/escalation-dispositions.d.ts.map +1 -0
  284. package/dist/queries/escalation-dispositions.js +18 -0
  285. package/dist/queries/escalation-dispositions.js.map +1 -0
  286. package/dist/queries/escalation-suppression.d.ts +1 -1
  287. package/dist/queries/escalation-suppression.d.ts.map +1 -1
  288. package/dist/queries/escalation-suppression.js +1 -1
  289. package/dist/queries/escalation-suppression.js.map +1 -1
  290. package/dist/queries/escalations.d.ts +343 -0
  291. package/dist/queries/escalations.d.ts.map +1 -0
  292. package/dist/queries/escalations.js +493 -0
  293. package/dist/queries/escalations.js.map +1 -0
  294. package/dist/queries/focus-discovery.d.ts +204 -0
  295. package/dist/queries/focus-discovery.d.ts.map +1 -0
  296. package/dist/queries/focus-discovery.js +92 -0
  297. package/dist/queries/focus-discovery.js.map +1 -0
  298. package/dist/queries/focuses.d.ts +36 -0
  299. package/dist/queries/focuses.d.ts.map +1 -1
  300. package/dist/queries/focuses.js +45 -0
  301. package/dist/queries/focuses.js.map +1 -1
  302. package/dist/queries/guards.d.ts +10 -0
  303. package/dist/queries/guards.d.ts.map +1 -1
  304. package/dist/queries/guards.js +14 -1
  305. package/dist/queries/guards.js.map +1 -1
  306. package/dist/queries/index.d.ts +4 -2
  307. package/dist/queries/index.d.ts.map +1 -1
  308. package/dist/queries/index.js +4 -2
  309. package/dist/queries/index.js.map +1 -1
  310. package/dist/queries/issues.d.ts +8 -372
  311. package/dist/queries/issues.d.ts.map +1 -1
  312. package/dist/queries/issues.js +7 -482
  313. package/dist/queries/issues.js.map +1 -1
  314. package/dist/queries/schemas.d.ts +51 -0
  315. package/dist/queries/schemas.d.ts.map +1 -1
  316. package/dist/queries/schemas.js +34 -0
  317. package/dist/queries/schemas.js.map +1 -1
  318. package/dist/queries/verification.d.ts +5 -6
  319. package/dist/queries/verification.d.ts.map +1 -1
  320. package/dist/queries/verification.js +5 -6
  321. package/dist/queries/verification.js.map +1 -1
  322. package/dist/resolvers/agent-escalations.d.ts +20 -0
  323. package/dist/resolvers/agent-escalations.d.ts.map +1 -1
  324. package/dist/resolvers/agent-escalations.js +40 -10
  325. package/dist/resolvers/agent-escalations.js.map +1 -1
  326. package/dist/resolvers/index.d.ts +2 -2
  327. package/dist/resolvers/index.d.ts.map +1 -1
  328. package/dist/resolvers/index.js +1 -1
  329. package/dist/resolvers/index.js.map +1 -1
  330. package/dist/resolvers/loop-persona.d.ts +1 -11
  331. package/dist/resolvers/loop-persona.d.ts.map +1 -1
  332. package/dist/resolvers/loop-persona.js +2 -16
  333. package/dist/resolvers/loop-persona.js.map +1 -1
  334. package/dist/resolvers/shared/git-diff.d.ts +99 -18
  335. package/dist/resolvers/shared/git-diff.d.ts.map +1 -1
  336. package/dist/resolvers/shared/git-diff.js +98 -27
  337. package/dist/resolvers/shared/git-diff.js.map +1 -1
  338. package/dist/shell/control-state.d.ts +1 -1
  339. package/dist/shell/control-state.d.ts.map +1 -1
  340. package/dist/shell/control-state.js +1 -1
  341. package/dist/shell/control-state.js.map +1 -1
  342. package/dist/shell/crash-recovery.d.ts +1 -1
  343. package/dist/shell/crash-recovery.d.ts.map +1 -1
  344. package/dist/shell/crash-recovery.js +2 -2
  345. package/dist/shell/crash-recovery.js.map +1 -1
  346. package/dist/shell/install-probe-tick.d.ts +1 -1
  347. package/dist/shell/install-probe-tick.d.ts.map +1 -1
  348. package/dist/shell/install-probe-tick.js +1 -1
  349. package/dist/shell/install-probe-tick.js.map +1 -1
  350. package/dist/shell/unified-shell-provisioning.d.ts +40 -0
  351. package/dist/shell/unified-shell-provisioning.d.ts.map +1 -1
  352. package/dist/shell/unified-shell-provisioning.js +72 -0
  353. package/dist/shell/unified-shell-provisioning.js.map +1 -1
  354. package/dist/shell/unified-shell.d.ts.map +1 -1
  355. package/dist/shell/unified-shell.js +19 -2
  356. package/dist/shell/unified-shell.js.map +1 -1
  357. package/dist/spawn/helpers.d.ts.map +1 -1
  358. package/dist/spawn/helpers.js +6 -1
  359. package/dist/spawn/helpers.js.map +1 -1
  360. package/dist/spawn/model-routing.d.ts +1 -1
  361. package/dist/spawn/model-routing.d.ts.map +1 -1
  362. package/dist/spawn/model-routing.js +1 -1
  363. package/dist/spawn/model-routing.js.map +1 -1
  364. package/dist/spawn/process-spawn.d.ts.map +1 -1
  365. package/dist/spawn/process-spawn.js +7 -0
  366. package/dist/spawn/process-spawn.js.map +1 -1
  367. package/dist/spawn/prompt-assembly.d.ts +1 -1
  368. package/dist/spawn/prompt-assembly.d.ts.map +1 -1
  369. package/dist/spawn/prompt-assembly.js +1 -1
  370. package/dist/spawn/prompt-assembly.js.map +1 -1
  371. package/dist/spawn/spawn-cooldown.d.ts +41 -7
  372. package/dist/spawn/spawn-cooldown.d.ts.map +1 -1
  373. package/dist/spawn/spawn-cooldown.js +47 -0
  374. package/dist/spawn/spawn-cooldown.js.map +1 -1
  375. package/dist/spawn/spawn-decision.d.ts.map +1 -1
  376. package/dist/spawn/spawn-decision.js +34 -2
  377. package/dist/spawn/spawn-decision.js.map +1 -1
  378. package/dist/spawn/worktree-session.d.ts +1 -1
  379. package/dist/spawn/worktree-session.d.ts.map +1 -1
  380. package/dist/spawn/worktree-session.js +1 -1
  381. package/dist/spawn/worktree-session.js.map +1 -1
  382. package/dist/templates/claude-md.d.ts +1 -1
  383. package/dist/templates/claude-md.d.ts.map +1 -1
  384. package/dist/templates/claude-md.js +12 -0
  385. package/dist/templates/claude-md.js.map +1 -1
  386. package/dist/verify/stall-detectors.d.ts +20 -8
  387. package/dist/verify/stall-detectors.d.ts.map +1 -1
  388. package/dist/verify/stall-detectors.js +27 -46
  389. package/dist/verify/stall-detectors.js.map +1 -1
  390. package/dist/verify/verification-default-on.d.ts +1 -1
  391. package/dist/verify/verification-default-on.d.ts.map +1 -1
  392. package/dist/verify/verification-deps.d.ts +1 -1
  393. package/dist/verify/verification-deps.d.ts.map +1 -1
  394. package/dist/verify/verification-engine.d.ts.map +1 -1
  395. package/dist/verify/verification-engine.js +20 -12
  396. package/dist/verify/verification-engine.js.map +1 -1
  397. package/dist/workflow/gate-failure-policy.d.ts +48 -0
  398. package/dist/workflow/gate-failure-policy.d.ts.map +1 -0
  399. package/dist/workflow/gate-failure-policy.js +57 -0
  400. package/dist/workflow/gate-failure-policy.js.map +1 -0
  401. package/dist/workflow/pipeline-config.d.ts +2 -2
  402. package/dist/workflow/pipeline-config.js +2 -2
  403. package/dist/worktree/provision.js +1 -1
  404. package/dist/worktree/provision.js.map +1 -1
  405. package/dist/worktree/scratch-guard.d.ts.map +1 -1
  406. package/dist/worktree/scratch-guard.js +23 -2
  407. package/dist/worktree/scratch-guard.js.map +1 -1
  408. package/package.json +1 -1
  409. package/dist/directive/close-loop-stage.d.ts +0 -50
  410. package/dist/directive/close-loop-stage.d.ts.map +0 -1
  411. package/dist/directive/close-loop-stage.js +0 -210
  412. package/dist/directive/close-loop-stage.js.map +0 -1
  413. package/dist/focus-stage-lifecycle/review-convergence.d.ts +0 -133
  414. package/dist/focus-stage-lifecycle/review-convergence.d.ts.map +0 -1
  415. package/dist/focus-stage-lifecycle/review-convergence.js +0 -237
  416. package/dist/focus-stage-lifecycle/review-convergence.js.map +0 -1
@@ -0,0 +1,256 @@
1
+ /**
2
+ * The integration -> main merge (the single write-to-main point).
3
+ *
4
+ * Split out of git/merge.ts (file-size limit). mergeIntegrationToMain is the one
5
+ * place refs/heads/main advances, so the fail-closed CI green-wait gate lives
6
+ * here. Pure CONSUMER of the git-merge family: it imports the strategy mechanics
7
+ * from git/merge-strategies.ts and the shared primitives from git/merge.ts, and
8
+ * nothing in either imports back -> no cycle.
9
+ */
10
+ import { runGitSync, getMergeWorktreePath } from './types.js';
11
+ import { withMergeLock } from './merge-lock.js';
12
+ import { getDefaultBranch } from './branch.js';
13
+ import { resolveRef } from './utils.js';
14
+ import { resolveCiMergeGate, classifyCiMergeWait, } from '../ci/ci-status.js';
15
+ import { describeWaitReachability } from '../delivery/wait-reachability.js';
16
+ import { createLogger } from '../shell/log.js';
17
+ import { applyMergeStrategy, recoverDirtyMergeWorktree } from './merge-strategies.js';
18
+ import { hasOriginRemote, worktreesWithBranchCheckedOut, hasTrackedChanges, handlePushFailureWithRollback } from './merge.js';
19
+ const log = createLogger({ module: 'CI' });
20
+ /**
21
+ * Merge the integration branch into the default (main) branch.
22
+ *
23
+ * Called when a focus completes with CI enabled. Optionally pushes
24
+ * to remote when CD is also enabled. The push step is gated by
25
+ * `pushToRemote` and only runs when an `origin` remote is configured.
26
+ *
27
+ * Uses the merge worktree and merge lock (same as mergeToIntegration)
28
+ * to avoid concurrent merge conflicts. The merge worktree checks main out
29
+ * DETACHED and advances refs/heads/main via `git update-ref`, so the merge
30
+ * completes even when main is attached in the daemon's primary worktree
31
+ * (where `git checkout main` would fail with "'main' is already used by
32
+ * worktree"). Clean worktrees holding main are re-synced afterward.
33
+ *
34
+ * The result's `pushedTo` field is set only when CD push happened and
35
+ * succeeded. Callers can read it to emit a focus-attributed log line
36
+ * with the resolved remote name + URL.
37
+ */
38
+ export function mergeIntegrationToMain(params) {
39
+ const { config, focusName, pushToRemote, mergeStrategy = 'merge-commit', getCiStatus } = params;
40
+ return withMergeLock(async () => {
41
+ const mwt = getMergeWorktreePath(config);
42
+ const mainBranch = getDefaultBranch(config.repoPath);
43
+ // Same self-heal as mergeToIntegration: this route shares the merge worktree,
44
+ // so an earlier failed merge's residue would break the detached checkout
45
+ // below. REFUSE if the worktree cannot be CONFIRMED clean afterward.
46
+ const recovery = recoverDirtyMergeWorktree(mwt);
47
+ if (!recovery.clean) {
48
+ return {
49
+ success: false,
50
+ error: `Merge worktree could not be confirmed clean before merging ${config.integrationBranch} into ` +
51
+ `${mainBranch}; residue survived recovery: ${recovery.residue ?? 'unknown'}`,
52
+ sourceBranch: config.integrationBranch,
53
+ targetBranch: mainBranch,
54
+ };
55
+ }
56
+ const withRemote = hasOriginRemote(config.repoPath);
57
+ // Fail early when a CD push was requested but no remote is configured.
58
+ // Returning a push-failure result (rather than silently skipping) lets
59
+ // the caller's shouldFileCdPushEscalation check fire so the operator
60
+ // sees a visible escalation instead of a silent no-op.
61
+ if (pushToRemote && !withRemote) {
62
+ return {
63
+ success: false,
64
+ error: 'Push failed: no origin remote configured for this repository',
65
+ sourceBranch: config.integrationBranch,
66
+ targetBranch: mainBranch,
67
+ };
68
+ }
69
+ // Fetch latest refs
70
+ if (withRemote) {
71
+ runGitSync(['fetch', 'origin'], config.repoPath);
72
+ }
73
+ // ── Green-wait gate (the single write-to-main point) ────────────────
74
+ // This is the ONE place refs/heads/main advances, so the CI verdict is
75
+ // evaluated HERE -- not in whichever completion/eager code path called us.
76
+ // Every daemon route to main inherits the same fail-closed gate. With a
77
+ // reader wired, the SHA about to reach main (the integration tip) must be
78
+ // GREEN; pending/red/unknown HOLD without advancing the ref (nothing was
79
+ // written -- no rollback, and the caller reports a hold, never an error or
80
+ // an escalation). An explicit `undefined` reader skips the gate (opt-out).
81
+ if (getCiStatus) {
82
+ let mergedSha = '';
83
+ try {
84
+ // resolveRef checks the git exit status, so an unresolvable
85
+ // integrationBranch yields null rather than git's stdout echo of the
86
+ // branch NAME -- which would otherwise reach the CI gate as if it were
87
+ // a commit SHA (echo-into-SHA-field bug class).
88
+ mergedSha = resolveRef(config.repoPath, config.integrationBranch) ?? '';
89
+ }
90
+ catch (err) {
91
+ log.warn(`Could not resolve integration tip SHA for the CI gate: ${err.message}`);
92
+ }
93
+ if (mergedSha) {
94
+ let status = 'unknown';
95
+ try {
96
+ status = await getCiStatus({ sha: mergedSha, integrationBranch: config.integrationBranch, config });
97
+ }
98
+ catch (err) {
99
+ log.warn(`CI status read failed for ${mergedSha.slice(0, 12)}: ${err.message}`);
100
+ }
101
+ const gate = resolveCiMergeGate(status);
102
+ if (!gate.proceed) {
103
+ // Classify whether this hold can still fire: a settled RED result on
104
+ // this (unchanged) sha never re-evaluates without a NEW commit -- a
105
+ // stall that reads as patience -- whereas a pending run can still be
106
+ // finished by the CI runner. Record the distinction on the hold and in
107
+ // the log so a stall is legible from the daemon log alone.
108
+ const wait = classifyCiMergeWait(status, mergedSha);
109
+ const marker = describeWaitReachability(wait);
110
+ log.info(`Holding ${config.integrationBranch}->${mainBranch} for "${focusName}": ${gate.reason} ` +
111
+ `(sha ${mergedSha.slice(0, 12)}) [${marker}].`);
112
+ return {
113
+ success: false,
114
+ ciHeld: { ...gate, reachable: wait.reachable, reachabilityReason: marker },
115
+ sourceBranch: config.integrationBranch,
116
+ targetBranch: mainBranch,
117
+ };
118
+ }
119
+ log.info(`CI gate passed for "${focusName}": ${gate.reason} (sha ${mergedSha.slice(0, 12)}).`);
120
+ }
121
+ }
122
+ // Record where main was BEFORE we touch anything, so push failure can roll
123
+ // the ref back, and classify any worktrees that currently have main attached
124
+ // (the daemon's primary repoPath usually keeps main checked out). Advancing
125
+ // the ref out-of-band leaves such a worktree with a stale tree, so after a
126
+ // successful merge we re-sync every worktree that has NO tracked uncommitted
127
+ // changes -- `git reset --hard` restores tracked files and preserves
128
+ // untracked ones, so a worktree dirty only with untracked scratch (the
129
+ // common dev-box state) is still safe to sync. Worktrees with tracked WIP are
130
+ // left untouched (never clobber a developer's edits) but flagged loudly
131
+ // afterward. Classification MUST happen before the advance: afterward the
132
+ // phantom diff masquerades as tracked changes and defeats the check.
133
+ const mainRefBefore = runGitSync(['rev-parse', mainBranch], config.repoPath);
134
+ const mainWorktrees = worktreesWithBranchCheckedOut(config.repoPath, mainBranch, mwt);
135
+ const resyncableMainWorktrees = mainWorktrees.filter(wt => !hasTrackedChanges(wt));
136
+ const trackedDirtyMainWorktrees = mainWorktrees.filter(wt => hasTrackedChanges(wt));
137
+ // Detached checkout of main's tip in the merge worktree. We deliberately
138
+ // do NOT attach the main branch (`git checkout main`): main is frequently
139
+ // checked out in the daemon's primary worktree, and git refuses to attach
140
+ // the same branch in two worktrees ("'main' is already used by worktree").
141
+ // Detaching lets us build the merge result and advance the ref via
142
+ // update-ref, which bypasses that guard.
143
+ const checkoutResult = runGitSync(['checkout', '--detach', mainBranch], mwt);
144
+ if (!checkoutResult.success) {
145
+ return {
146
+ success: false,
147
+ error: `Failed to checkout ${mainBranch}: ${checkoutResult.error}`,
148
+ sourceBranch: config.integrationBranch,
149
+ targetBranch: mainBranch,
150
+ };
151
+ }
152
+ // Bring the detached HEAD up to the latest remote main (best-effort ff).
153
+ // If remote main has diverged, a later push would be rejected and rolled
154
+ // back; we don't merge it here to keep the integration->main result clean.
155
+ if (withRemote) {
156
+ runGitSync(['merge', '--ff-only', `origin/${mainBranch}`], mwt);
157
+ }
158
+ // Save pre-merge state for rollback
159
+ const preMergeRef = runGitSync(['rev-parse', 'HEAD'], mwt);
160
+ // Dispatch to the requested strategy. The strategy helpers operate on the
161
+ // merge worktree's current HEAD (here a detached HEAD at main's tip), so
162
+ // they work identically whether or not main is attached.
163
+ let result = applyMergeStrategy(mwt, config.integrationBranch, mainBranch, mergeStrategy);
164
+ if (!result.success) {
165
+ return {
166
+ ...result,
167
+ error: `${result.error ?? 'Unknown error'} (merging ${config.integrationBranch} into ${mainBranch} via ${mergeStrategy})`,
168
+ sourceBranch: config.integrationBranch,
169
+ targetBranch: mainBranch,
170
+ };
171
+ }
172
+ // Capture merge commit SHA
173
+ const shaResult = runGitSync(['rev-parse', 'HEAD'], mwt);
174
+ if (!result.commitSha && shaResult.success) {
175
+ result = { ...result, commitSha: shaResult.output };
176
+ }
177
+ const newMainSha = shaResult.success ? shaResult.output : result.commitSha;
178
+ // Advance refs/heads/main out-of-band to the merge result. update-ref is a
179
+ // plumbing command without the checked-out-branch guard that `git checkout`
180
+ // and `git branch -f` enforce, so this succeeds even when main is attached
181
+ // in the primary worktree.
182
+ if (newMainSha) {
183
+ const updateRef = runGitSync(['update-ref', `refs/heads/${mainBranch}`, newMainSha], mwt);
184
+ if (!updateRef.success) {
185
+ return {
186
+ success: false,
187
+ error: `Failed to advance ${mainBranch} ref to merge result: ${updateRef.error}`,
188
+ sourceBranch: config.integrationBranch,
189
+ targetBranch: mainBranch,
190
+ };
191
+ }
192
+ }
193
+ // Push main to remote (gated on CD opt-in).
194
+ let pushedTo;
195
+ if (withRemote && pushToRemote) {
196
+ const pushResult = runGitSync(['push', 'origin', mainBranch], mwt);
197
+ if (!pushResult.success) {
198
+ // Roll the main ref back to its pre-merge value before the generic
199
+ // rollback (which resets the detached HEAD and marks corruption on a
200
+ // failed rollback) runs.
201
+ if (mainRefBefore.success) {
202
+ runGitSync(['update-ref', `refs/heads/${mainBranch}`, mainRefBefore.output], mwt);
203
+ }
204
+ if (preMergeRef.success) {
205
+ return handlePushFailureWithRollback({
206
+ repoPath: mwt,
207
+ branch: mainBranch,
208
+ preMergeRef: preMergeRef.output,
209
+ pushError: pushResult.error,
210
+ sourceBranch: config.integrationBranch,
211
+ targetBranch: mainBranch,
212
+ });
213
+ }
214
+ return {
215
+ success: false,
216
+ error: `Push failed (no pre-merge ref for rollback): ${pushResult.error}`,
217
+ sourceBranch: config.integrationBranch,
218
+ targetBranch: mainBranch,
219
+ };
220
+ }
221
+ const urlResult = runGitSync(['remote', 'get-url', 'origin'], mwt, { timeoutMs: 3_000 });
222
+ pushedTo = { name: 'origin', url: urlResult.success ? urlResult.output : '' };
223
+ }
224
+ // Re-sync worktrees that held main and had no tracked changes before the ref
225
+ // advance, so the out-of-band update leaves no phantom diff. `reset --hard`
226
+ // restores tracked files to the new main and leaves untracked files intact,
227
+ // so this is safe for both clean and untracked-only worktrees.
228
+ if (newMainSha) {
229
+ for (const wt of resyncableMainWorktrees) {
230
+ const reset = runGitSync(['reset', '--hard', newMainSha], wt);
231
+ if (!reset.success) {
232
+ log.warn(`[CI] Advanced ${mainBranch} but failed to re-sync worktree ${wt}: ${reset.error}`);
233
+ }
234
+ }
235
+ // Worktrees with tracked WIP can't be reset without clobbering work, but
236
+ // leaving them silently stale is exactly what confused downstream tooling
237
+ // (the /sync that committed a stale tree). Flag each loudly with the
238
+ // recovery command so the staleness is never silent.
239
+ for (const wt of trackedDirtyMainWorktrees) {
240
+ log.warn(`[CI] Advanced ${mainBranch} to ${newMainSha} but worktree ${wt} has uncommitted ` +
241
+ `TRACKED changes -- left unsynced to avoid clobbering work. Its tree now lags ` +
242
+ `${mainBranch} and will show a phantom diff (e.g. to /sync). Commit or stash there, ` +
243
+ `then 'git -C ${wt} reset --hard ${mainBranch}' to reconcile.`);
244
+ }
245
+ }
246
+ const action = pushToRemote ? 'merged and pushed' : 'merged';
247
+ log.info(`Successfully ${action} ${config.integrationBranch} into ${mainBranch}`);
248
+ return {
249
+ success: true,
250
+ commitSha: result.commitSha,
251
+ preMergeRef: preMergeRef.success ? preMergeRef.output : undefined,
252
+ pushedTo,
253
+ };
254
+ }, `mergeIntegrationToMain:${focusName}`);
255
+ }
256
+ //# sourceMappingURL=merge-to-main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge-to-main.js","sourceRoot":"","sources":["../../src/git/merge-to-main.ts"],"names":[],"mappings":"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"}
@@ -5,9 +5,8 @@
5
5
  * push failure handling with rollback, and stash management.
6
6
  */
7
7
  import type { DaemonConfig, MergeBackResult } from '../types/index.js';
8
- import { type MergeResult, type MergeStrategy } from './types.js';
8
+ import { type MergeResult } from './types.js';
9
9
  import { type CorruptionDetails } from './merge-lock.js';
10
- import { type CiStatusReader, type CiMergeGateDecision } from '../ci/ci-status.js';
11
10
  /**
12
11
  * Classify the post-merge sha observation for a merge that already succeeded.
13
12
  * Given whether a commit sha was already captured (e.g. from a --no-ff merge),
@@ -32,6 +31,32 @@ export declare function classifyMergeShaObservation(alreadyHasCommitSha: boolean
32
31
  commitSha?: string;
33
32
  shaUnobserved?: boolean;
34
33
  };
34
+ /**
35
+ * Returns true if the repo at repoPath has an 'origin' remote configured.
36
+ * Used to gate all network operations so the daemon works in remote-less repos.
37
+ */
38
+ export declare function hasOriginRemote(repoPath: string): boolean;
39
+ /**
40
+ * Parse `git worktree list --porcelain` to find worktrees -- other than
41
+ * `excludePath` -- that currently have `branch` ATTACHED (a non-detached
42
+ * checkout). Returns absolute worktree paths.
43
+ *
44
+ * Used by the integration->main merge to locate any worktree that holds
45
+ * `main` (typically the daemon's primary repoPath, where a developer keeps
46
+ * main checked out) so it can be re-synced after the ref is advanced
47
+ * out-of-band.
48
+ */
49
+ export declare function worktreesWithBranchCheckedOut(repoPath: string, branch: string, excludePath: string): string[];
50
+ /**
51
+ * True when a worktree has uncommitted TRACKED changes (staged or unstaged
52
+ * modifications/additions/deletions). Untracked files (porcelain "?? ") do NOT
53
+ * count: `git reset --hard` preserves untracked files, so a worktree whose only
54
+ * dirt is untracked scratch is still safe to re-sync after an out-of-band ref
55
+ * advance -- and MUST be, because a dev box almost always carries stray
56
+ * untracked files, and skipping the re-sync leaves main advanced over a stale
57
+ * working tree (the phantom diff that confuses downstream tooling like /sync).
58
+ */
59
+ export declare function hasTrackedChanges(worktreePath: string): boolean;
35
60
  interface PushFailureRollbackParams {
36
61
  repoPath: string;
37
62
  branch: string;
@@ -77,22 +102,6 @@ export declare function handlePushFailureWithRollback(params: PushFailureRollbac
77
102
  * became a pathspec).
78
103
  */
79
104
  export declare function handleUntrackedFilesBlockingMerge(repoPath: string, errorOutput: string): boolean;
80
- /**
81
- * Attempt a squash merge: stages all changes from the source branch as a
82
- * single commit on the current branch.
83
- *
84
- * 1. `git merge --squash <sourceBranch>` -- stages all diffs without committing
85
- * 2. `git commit -m <commitMessage>` -- creates a single squashed commit
86
- * 3. Captures the resulting commit SHA via `git rev-parse HEAD`
87
- *
88
- * On conflict, aborts the merge and returns conflicted file details.
89
- */
90
- export declare function trySquashMerge(repoPath: string, sourceBranch: string, commitMessage: string): MergeResult;
91
- /**
92
- * Dispatch to the appropriate merge strategy helper.
93
- * For 'merge-commit', tries fast-forward first, then falls back to --no-ff.
94
- */
95
- export declare function applyMergeStrategy(repoPath: string, sourceBranch: string, targetBranch: string, strategy: MergeStrategy): MergeResult;
96
105
  export interface MergeToIntegrationParams {
97
106
  config: DaemonConfig;
98
107
  branchName: string;
@@ -114,69 +123,6 @@ export interface MergeToIntegrationParams {
114
123
  * Serialized via the merge lock to prevent concurrent checkout races.
115
124
  */
116
125
  export declare function mergeToIntegration(params: MergeToIntegrationParams): Promise<MergeResult>;
117
- export interface MergeIntegrationToMainParams {
118
- config: DaemonConfig;
119
- /** Focus ID for log attribution / push-failure escalations. */
120
- focusId: string;
121
- /** Focus name for logging/commit messages. */
122
- focusName: string;
123
- /** Whether to also push main to remote (CD). */
124
- pushToRemote: boolean;
125
- /**
126
- * Merge strategy honored when integrating into main. Defaults to
127
- * `merge-commit` (which itself attempts fast-forward first, then falls
128
- * back to `--no-ff`) so legacy callers that omit the field get the
129
- * pre-existing behavior.
130
- */
131
- mergeStrategy?: MergeStrategy;
132
- /**
133
- * The green-wait CI status reader, evaluated at THIS write point -- the single
134
- * place `refs/heads/main` is advanced -- so the gate governs every daemon route
135
- * to main identically, not whichever call path performed the merge. REQUIRED so
136
- * no caller can advance main without making the CI decision explicit:
137
- * - a reader (`resolveCiStatusReader()`) => the merged SHA's status is read
138
- * and `resolveCiMergeGate` decides; pending/red/unknown HOLD (fail-closed),
139
- * green proceeds. On a hold the ref is NOT advanced and the result carries
140
- * `ciHeld` (not an error -- nothing was written, nothing to roll back).
141
- * - `undefined` => an explicit, visible opt-out (used by tests and legacy
142
- * callers with no CI source); the gate is skipped and the merge proceeds
143
- * exactly as before.
144
- */
145
- getCiStatus: CiStatusReader | undefined;
146
- }
147
- /**
148
- * Resolved remote name + URL describing the push target for a CD push.
149
- * Exported only so the focus-completion / focus-team-lifecycle log lines
150
- * can surface the remote without re-querying git.
151
- */
152
- export interface PushedRemoteInfo {
153
- /** Remote name (always `origin` today). */
154
- name: string;
155
- /** Remote URL as configured in the repo. */
156
- url: string;
157
- }
158
- /**
159
- * Merge the integration branch into the default (main) branch.
160
- *
161
- * Called when a focus completes with CI enabled. Optionally pushes
162
- * to remote when CD is also enabled. The push step is gated by
163
- * `pushToRemote` and only runs when an `origin` remote is configured.
164
- *
165
- * Uses the merge worktree and merge lock (same as mergeToIntegration)
166
- * to avoid concurrent merge conflicts. The merge worktree checks main out
167
- * DETACHED and advances refs/heads/main via `git update-ref`, so the merge
168
- * completes even when main is attached in the daemon's primary worktree
169
- * (where `git checkout main` would fail with "'main' is already used by
170
- * worktree"). Clean worktrees holding main are re-synced afterward.
171
- *
172
- * The result's `pushedTo` field is set only when CD push happened and
173
- * succeeded. Callers can read it to emit a focus-attributed log line
174
- * with the resolved remote name + URL.
175
- */
176
- export declare function mergeIntegrationToMain(params: MergeIntegrationToMainParams): Promise<MergeResult & {
177
- pushedTo?: PushedRemoteInfo;
178
- ciHeld?: CiMergeGateDecision;
179
- }>;
180
126
  export interface MergeBackFromIntegrationParams {
181
127
  /** Path to the focus/delivery worktree. */
182
128
  worktreePath: string;
@@ -1 +1 @@
1
- {"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../src/git/merge.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAc,KAAK,WAAW,EAAE,KAAK,aAAa,EAAwB,MAAM,YAAY,CAAC;AACpG,OAAO,EAAyC,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAIhG,OAAO,EAGL,KAAK,cAAc,EAEnB,KAAK,mBAAmB,EACzB,MAAM,oBAAoB,CAAC;AAO5B;;;;;;;;;;;;;GAaG;AACH,wBAAgB,2BAA2B,CACzC,mBAAmB,EAAE,OAAO,EAC5B,SAAS,EAAE;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAC/C,WAAW,EAAE;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,OAAO,CAAA;CAAE,CAOjD;AAoFD,UAAU,yBAAyB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,IAAI,CAAC;CAC1D;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,yBAAyB,GAAG,WAAW,CAoD5F;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,GAClB,OAAO,CAmCT;AA4JD;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,GACpB,WAAW,CAoDb;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,aAAa,GACtB,WAAW,CAmBb;AAID,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,YAAY,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,oBAAoB,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CAC9G;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,wBAAwB,GAC/B,OAAO,CAAC,WAAW,CAAC,CAyKtB;AAID,MAAM,WAAW,4BAA4B;IAC3C,MAAM,EAAE,YAAY,CAAC;IACrB,+DAA+D;IAC/D,OAAO,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,YAAY,EAAE,OAAO,CAAC;IACtB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B;;;;;;;;;;;;OAYG;IACH,WAAW,EAAE,cAAc,GAAG,SAAS,CAAC;CACzC;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,4CAA4C;IAC5C,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,4BAA4B,GACnC,OAAO,CAAC,WAAW,GAAG;IAAE,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAAC,MAAM,CAAC,EAAE,mBAAmB,CAAA;CAAE,CAAC,CAoPtF;AAID,MAAM,WAAW,8BAA8B;IAC7C,2CAA2C;IAC3C,YAAY,EAAE,MAAM,CAAC;IACrB,4DAA4D;IAC5D,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,8BAA8B,GACrC,OAAO,CAAC,eAAe,CAAC,CAgE1B"}
1
+ {"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../src/git/merge.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAc,KAAK,WAAW,EAAwB,MAAM,YAAY,CAAC;AAChF,OAAO,EAAyC,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAahG;;;;;;;;;;;;;GAaG;AACH,wBAAgB,2BAA2B,CACzC,mBAAmB,EAAE,OAAO,EAC5B,SAAS,EAAE;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAC/C,WAAW,EAAE;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,OAAO,CAAA;CAAE,CAOjD;AAID;;;GAGG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED;;;;;;;;;GASG;AACH,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAClB,MAAM,EAAE,CAoBV;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAI/D;AAYD,UAAU,yBAAyB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,IAAI,CAAC;CAC1D;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,yBAAyB,GAAG,WAAW,CAoD5F;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,GAClB,OAAO,CAmCT;AAKD,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,YAAY,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,oBAAoB,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CAC9G;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,wBAAwB,GAC/B,OAAO,CAAC,WAAW,CAAC,CAyKtB;AAKD,MAAM,WAAW,8BAA8B;IAC7C,2CAA2C;IAC3C,YAAY,EAAE,MAAM,CAAC;IACrB,4DAA4D;IAC5D,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,8BAA8B,GACrC,OAAO,CAAC,eAAe,CAAC,CAgE1B"}