@telora/daemon 0.23.48 → 0.23.54

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 (310) hide show
  1. package/build-info.json +2 -2
  2. package/dist/completion/review-exit/review-census-record.d.ts.map +1 -1
  3. package/dist/completion/review-exit/review-census-record.js +2 -0
  4. package/dist/completion/review-exit/review-census-record.js.map +1 -1
  5. package/dist/completion/state-cascade/failed-verdict-stranded-filing.d.ts +35 -0
  6. package/dist/completion/state-cascade/failed-verdict-stranded-filing.d.ts.map +1 -0
  7. package/dist/completion/state-cascade/failed-verdict-stranded-filing.js +93 -0
  8. package/dist/completion/state-cascade/failed-verdict-stranded-filing.js.map +1 -0
  9. package/dist/completion/state-cascade/review-approved-head-gate.d.ts.map +1 -1
  10. package/dist/completion/state-cascade/review-approved-head-gate.js +1 -0
  11. package/dist/completion/state-cascade/review-approved-head-gate.js.map +1 -1
  12. package/dist/completion/state-cascade/review-next-step.d.ts +19 -6
  13. package/dist/completion/state-cascade/review-next-step.d.ts.map +1 -1
  14. package/dist/completion/state-cascade/review-next-step.js +6 -2
  15. package/dist/completion/state-cascade/review-next-step.js.map +1 -1
  16. package/dist/completion/state-cascade/review-request-gate.d.ts +5 -0
  17. package/dist/completion/state-cascade/review-request-gate.d.ts.map +1 -1
  18. package/dist/completion/state-cascade/review-request-gate.js +7 -1
  19. package/dist/completion/state-cascade/review-request-gate.js.map +1 -1
  20. package/dist/completion/state-cascade/review-verify-judgment-gate.d.ts +137 -0
  21. package/dist/completion/state-cascade/review-verify-judgment-gate.d.ts.map +1 -0
  22. package/dist/completion/state-cascade/review-verify-judgment-gate.js +98 -0
  23. package/dist/completion/state-cascade/review-verify-judgment-gate.js.map +1 -0
  24. package/dist/completion/state-cascade/standing-approval-convergence.d.ts +8 -2
  25. package/dist/completion/state-cascade/standing-approval-convergence.d.ts.map +1 -1
  26. package/dist/completion/state-cascade/standing-approval-convergence.js +33 -7
  27. package/dist/completion/state-cascade/standing-approval-convergence.js.map +1 -1
  28. package/dist/completion/state-cascade/standing-approval-failed-verdict.d.ts +107 -0
  29. package/dist/completion/state-cascade/standing-approval-failed-verdict.d.ts.map +1 -0
  30. package/dist/completion/state-cascade/standing-approval-failed-verdict.js +121 -0
  31. package/dist/completion/state-cascade/standing-approval-failed-verdict.js.map +1 -0
  32. package/dist/completion/state-cascade/standing-approval-stranded.d.ts +29 -3
  33. package/dist/completion/state-cascade/standing-approval-stranded.d.ts.map +1 -1
  34. package/dist/completion/state-cascade/standing-approval-stranded.js +120 -7
  35. package/dist/completion/state-cascade/standing-approval-stranded.js.map +1 -1
  36. package/dist/completion/state-cascade/state-cascade.d.ts +14 -0
  37. package/dist/completion/state-cascade/state-cascade.d.ts.map +1 -1
  38. package/dist/completion/state-cascade/state-cascade.js +15 -6
  39. package/dist/completion/state-cascade/state-cascade.js.map +1 -1
  40. package/dist/completion/team-exit/status-advance-phase.d.ts +7 -0
  41. package/dist/completion/team-exit/status-advance-phase.d.ts.map +1 -1
  42. package/dist/completion/team-exit/status-advance-phase.js +26 -17
  43. package/dist/completion/team-exit/status-advance-phase.js.map +1 -1
  44. package/dist/composition/advance-precheck-context.d.ts.map +1 -1
  45. package/dist/composition/advance-precheck-context.js +3 -0
  46. package/dist/composition/advance-precheck-context.js.map +1 -1
  47. package/dist/composition/execution-migrations-context.d.ts.map +1 -1
  48. package/dist/composition/execution-migrations-context.js +1 -20
  49. package/dist/composition/execution-migrations-context.js.map +1 -1
  50. package/dist/composition/runtime-delivery-advance-context.d.ts +12 -3
  51. package/dist/composition/runtime-delivery-advance-context.d.ts.map +1 -1
  52. package/dist/composition/runtime-delivery-advance-context.js +36 -4
  53. package/dist/composition/runtime-delivery-advance-context.js.map +1 -1
  54. package/dist/composition/standing-approval-context.d.ts.map +1 -1
  55. package/dist/composition/standing-approval-context.js +4 -0
  56. package/dist/composition/standing-approval-context.js.map +1 -1
  57. package/dist/composition/state-cascade-context.d.ts +9 -0
  58. package/dist/composition/state-cascade-context.d.ts.map +1 -1
  59. package/dist/composition/state-cascade-context.js +21 -1
  60. package/dist/composition/state-cascade-context.js.map +1 -1
  61. package/dist/composition/verification-context.js +1 -1
  62. package/dist/composition/verify-feedback-context.d.ts +5 -1
  63. package/dist/composition/verify-feedback-context.d.ts.map +1 -1
  64. package/dist/composition/verify-feedback-context.js +8 -3
  65. package/dist/composition/verify-feedback-context.js.map +1 -1
  66. package/dist/delivery/delivery-lifecycle.d.ts.map +1 -1
  67. package/dist/delivery/delivery-lifecycle.js +3 -0
  68. package/dist/delivery/delivery-lifecycle.js.map +1 -1
  69. package/dist/delivery/paused-revival.d.ts.map +1 -1
  70. package/dist/delivery/paused-revival.js +2 -1
  71. package/dist/delivery/paused-revival.js.map +1 -1
  72. package/dist/delivery/recorded-concerns.d.ts +5 -2
  73. package/dist/delivery/recorded-concerns.d.ts.map +1 -1
  74. package/dist/delivery/recorded-concerns.js +8 -4
  75. package/dist/delivery/recorded-concerns.js.map +1 -1
  76. package/dist/focus/focus-poller-auto-advance.d.ts +15 -0
  77. package/dist/focus/focus-poller-auto-advance.d.ts.map +1 -1
  78. package/dist/focus/focus-poller-auto-advance.js +23 -15
  79. package/dist/focus/focus-poller-auto-advance.js.map +1 -1
  80. package/dist/focus/pending-spawn-review-next-step.d.ts.map +1 -1
  81. package/dist/focus/pending-spawn-review-next-step.js +10 -9
  82. package/dist/focus/pending-spawn-review-next-step.js.map +1 -1
  83. package/dist/focus/ready-focus-team-work.d.ts.map +1 -1
  84. package/dist/focus/ready-focus-team-work.js +2 -1
  85. package/dist/focus/ready-focus-team-work.js.map +1 -1
  86. package/dist/prompt-sections/execution-sections.d.ts +5 -0
  87. package/dist/prompt-sections/execution-sections.d.ts.map +1 -1
  88. package/dist/prompt-sections/execution-sections.js +12 -2
  89. package/dist/prompt-sections/execution-sections.js.map +1 -1
  90. package/dist/prompt-sections/gate-verdict-section.d.ts.map +1 -1
  91. package/dist/prompt-sections/gate-verdict-section.js +3 -1
  92. package/dist/prompt-sections/gate-verdict-section.js.map +1 -1
  93. package/dist/prompt-sections/persona-sections.d.ts +10 -0
  94. package/dist/prompt-sections/persona-sections.d.ts.map +1 -1
  95. package/dist/prompt-sections/persona-sections.js +21 -6
  96. package/dist/prompt-sections/persona-sections.js.map +1 -1
  97. package/dist/prompt-sections/prompt-listing.d.ts +33 -0
  98. package/dist/prompt-sections/prompt-listing.d.ts.map +1 -1
  99. package/dist/prompt-sections/prompt-listing.js +67 -13
  100. package/dist/prompt-sections/prompt-listing.js.map +1 -1
  101. package/dist/prompt-sections/routing-decider-sections.d.ts.map +1 -1
  102. package/dist/prompt-sections/routing-decider-sections.js +6 -2
  103. package/dist/prompt-sections/routing-decider-sections.js.map +1 -1
  104. package/dist/prompt-sections/shared.js +1 -1
  105. package/dist/prompt-sections/shortfall-gap-lines.d.ts +32 -0
  106. package/dist/prompt-sections/shortfall-gap-lines.d.ts.map +1 -0
  107. package/dist/prompt-sections/shortfall-gap-lines.js +58 -0
  108. package/dist/prompt-sections/shortfall-gap-lines.js.map +1 -0
  109. package/dist/prompt-sections/shortfall-park-section.d.ts +7 -1
  110. package/dist/prompt-sections/shortfall-park-section.d.ts.map +1 -1
  111. package/dist/prompt-sections/shortfall-park-section.js +27 -0
  112. package/dist/prompt-sections/shortfall-park-section.js.map +1 -1
  113. package/dist/queries/api-client/shared.js +1 -1
  114. package/dist/queries/delivery-gate-state/delivery-gate-state.d.ts +43 -16
  115. package/dist/queries/delivery-gate-state/delivery-gate-state.d.ts.map +1 -1
  116. package/dist/queries/delivery-gate-state/delivery-gate-state.js +43 -11
  117. package/dist/queries/delivery-gate-state/delivery-gate-state.js.map +1 -1
  118. package/dist/queries/delivery-gate-state/shortfall-judgment-record.d.ts +56 -0
  119. package/dist/queries/delivery-gate-state/shortfall-judgment-record.d.ts.map +1 -0
  120. package/dist/queries/delivery-gate-state/shortfall-judgment-record.js +123 -0
  121. package/dist/queries/delivery-gate-state/shortfall-judgment-record.js.map +1 -0
  122. package/dist/queries/delivery-gate-state/verify-own-holds.d.ts.map +1 -1
  123. package/dist/queries/delivery-gate-state/verify-own-holds.js +2 -1
  124. package/dist/queries/delivery-gate-state/verify-own-holds.js.map +1 -1
  125. package/dist/queries/escalations/cause-key.d.ts +9 -1
  126. package/dist/queries/escalations/cause-key.d.ts.map +1 -1
  127. package/dist/queries/escalations/cause-key.js +16 -2
  128. package/dist/queries/escalations/cause-key.js.map +1 -1
  129. package/dist/queries/escalations/filing-observation.d.ts.map +1 -1
  130. package/dist/queries/escalations/filing-observation.js +3 -0
  131. package/dist/queries/escalations/filing-observation.js.map +1 -1
  132. package/dist/queries/focus-review/focus-review-approval.d.ts.map +1 -1
  133. package/dist/queries/focus-review/focus-review-approval.js +1 -0
  134. package/dist/queries/focus-review/focus-review-approval.js.map +1 -1
  135. package/dist/queries/verification/shortfall-rulings.d.ts.map +1 -1
  136. package/dist/queries/verification/shortfall-rulings.js +3 -1
  137. package/dist/queries/verification/shortfall-rulings.js.map +1 -1
  138. package/dist/queries/verification/verification.js +1 -1
  139. package/dist/session/session-lineage.d.ts.map +1 -1
  140. package/dist/session/session-lineage.js +1 -0
  141. package/dist/session/session-lineage.js.map +1 -1
  142. package/dist/spawn/prompt-assembly.d.ts.map +1 -1
  143. package/dist/spawn/prompt-assembly.js +13 -1
  144. package/dist/spawn/prompt-assembly.js.map +1 -1
  145. package/dist/supervision/agent-resolvable-promotion.d.ts +3 -2
  146. package/dist/supervision/agent-resolvable-promotion.d.ts.map +1 -1
  147. package/dist/supervision/agent-resolvable-promotion.js +3 -2
  148. package/dist/supervision/agent-resolvable-promotion.js.map +1 -1
  149. package/dist/supervision/escalation-clearing.d.ts +14 -1
  150. package/dist/supervision/escalation-clearing.d.ts.map +1 -1
  151. package/dist/supervision/escalation-clearing.js +28 -1
  152. package/dist/supervision/escalation-clearing.js.map +1 -1
  153. package/dist/supervision/escalation-suppression.js +1 -1
  154. package/dist/supervision/focus-delivery-aggregate-phase.d.ts.map +1 -1
  155. package/dist/supervision/focus-delivery-aggregate-phase.js +1 -0
  156. package/dist/supervision/focus-delivery-aggregate-phase.js.map +1 -1
  157. package/dist/supervision/holds.d.ts.map +1 -1
  158. package/dist/supervision/holds.js +1 -0
  159. package/dist/supervision/holds.js.map +1 -1
  160. package/dist/supervision/null-role-spawn.d.ts.map +1 -1
  161. package/dist/supervision/null-role-spawn.js +1 -0
  162. package/dist/supervision/null-role-spawn.js.map +1 -1
  163. package/dist/supervision/stop-registry.d.ts +1 -0
  164. package/dist/supervision/stop-registry.d.ts.map +1 -1
  165. package/dist/supervision/stop-rows-delivery.d.ts +8 -0
  166. package/dist/supervision/stop-rows-delivery.d.ts.map +1 -1
  167. package/dist/supervision/stop-rows-delivery.js +28 -2
  168. package/dist/supervision/stop-rows-delivery.js.map +1 -1
  169. package/dist/supervision/team-work.d.ts.map +1 -1
  170. package/dist/supervision/team-work.js +1 -0
  171. package/dist/supervision/team-work.js.map +1 -1
  172. package/dist/supervision/verify-gate-stall.d.ts.map +1 -1
  173. package/dist/supervision/verify-gate-stall.js +1 -0
  174. package/dist/supervision/verify-gate-stall.js.map +1 -1
  175. package/dist/testing/fixtures/api-client.js +1 -1
  176. package/dist/testing/fixtures/escalation-store.d.ts +35 -0
  177. package/dist/testing/fixtures/escalation-store.d.ts.map +1 -0
  178. package/dist/testing/fixtures/escalation-store.js +86 -0
  179. package/dist/testing/fixtures/escalation-store.js.map +1 -0
  180. package/dist/testing/fixtures/index.js +1 -1
  181. package/dist/testing/fixtures/recording-api-client.js +1 -1
  182. package/dist/testing/fixtures/shortfall-rework-hold-deps.d.ts +22 -0
  183. package/dist/testing/fixtures/shortfall-rework-hold-deps.d.ts.map +1 -0
  184. package/dist/testing/fixtures/shortfall-rework-hold-deps.js +44 -0
  185. package/dist/testing/fixtures/shortfall-rework-hold-deps.js.map +1 -0
  186. package/dist/testing/fixtures/verification-feedback-deps.d.ts +7 -2
  187. package/dist/testing/fixtures/verification-feedback-deps.d.ts.map +1 -1
  188. package/dist/testing/fixtures/verification-feedback-deps.js +15 -19
  189. package/dist/testing/fixtures/verification-feedback-deps.js.map +1 -1
  190. package/dist/types/index.js +1 -1
  191. package/dist/types/issue-description-budget.d.ts.map +1 -1
  192. package/dist/types/issue-description-budget.js +1 -0
  193. package/dist/types/issue-description-budget.js.map +1 -1
  194. package/dist/types/issue-status.d.ts +17 -0
  195. package/dist/types/issue-status.d.ts.map +1 -1
  196. package/dist/types/issue-status.js +23 -1
  197. package/dist/types/issue-status.js.map +1 -1
  198. package/dist/verify/effect-reconciliation/pending-injection-stamp.d.ts.map +1 -1
  199. package/dist/verify/effect-reconciliation/pending-injection-stamp.js +1 -0
  200. package/dist/verify/effect-reconciliation/pending-injection-stamp.js.map +1 -1
  201. package/dist/verify/effect-reconciliation/verify-reconciliation.d.ts +18 -3
  202. package/dist/verify/effect-reconciliation/verify-reconciliation.d.ts.map +1 -1
  203. package/dist/verify/effect-reconciliation/verify-reconciliation.js +26 -6
  204. package/dist/verify/effect-reconciliation/verify-reconciliation.js.map +1 -1
  205. package/dist/verify/effect-reconciliation/verify-restatement.d.ts +8 -0
  206. package/dist/verify/effect-reconciliation/verify-restatement.d.ts.map +1 -1
  207. package/dist/verify/effect-reconciliation/verify-restatement.js +5 -2
  208. package/dist/verify/effect-reconciliation/verify-restatement.js.map +1 -1
  209. package/dist/verify/engine/verification-commit-sharing.d.ts +6 -0
  210. package/dist/verify/engine/verification-commit-sharing.d.ts.map +1 -1
  211. package/dist/verify/engine/verification-commit-sharing.js +34 -1
  212. package/dist/verify/engine/verification-commit-sharing.js.map +1 -1
  213. package/dist/verify/engine/verification-deps.js +1 -1
  214. package/dist/verify/engine/verification-engine.d.ts.map +1 -1
  215. package/dist/verify/engine/verification-engine.js +12 -3
  216. package/dist/verify/engine/verification-engine.js.map +1 -1
  217. package/dist/verify/gate-config/verification-config.js +1 -1
  218. package/dist/verify/gate-verdicts/commit-verdict-record.js +1 -1
  219. package/dist/verify/gate-verdicts/explicit-gate-outcome.d.ts.map +1 -1
  220. package/dist/verify/gate-verdicts/explicit-gate-outcome.js +2 -0
  221. package/dist/verify/gate-verdicts/explicit-gate-outcome.js.map +1 -1
  222. package/dist/verify/gate-verdicts/gate-run-registry.js +1 -1
  223. package/dist/verify/gate-verdicts/own-gate-verdict.d.ts +10 -0
  224. package/dist/verify/gate-verdicts/own-gate-verdict.d.ts.map +1 -1
  225. package/dist/verify/gate-verdicts/own-gate-verdict.js +3 -2
  226. package/dist/verify/gate-verdicts/own-gate-verdict.js.map +1 -1
  227. package/dist/verify/outcome-routing/shortfall-rework-issue.d.ts +101 -0
  228. package/dist/verify/outcome-routing/shortfall-rework-issue.d.ts.map +1 -0
  229. package/dist/verify/outcome-routing/shortfall-rework-issue.js +250 -0
  230. package/dist/verify/outcome-routing/shortfall-rework-issue.js.map +1 -0
  231. package/dist/verify/outcome-routing/verification-evidence-unavailable-feedback.d.ts.map +1 -1
  232. package/dist/verify/outcome-routing/verification-evidence-unavailable-feedback.js +4 -1
  233. package/dist/verify/outcome-routing/verification-evidence-unavailable-feedback.js.map +1 -1
  234. package/dist/verify/outcome-routing/verification-feedback.d.ts +38 -7
  235. package/dist/verify/outcome-routing/verification-feedback.d.ts.map +1 -1
  236. package/dist/verify/outcome-routing/verification-feedback.js +45 -46
  237. package/dist/verify/outcome-routing/verification-feedback.js.map +1 -1
  238. package/dist/verify/outcome-routing/verification-history-reset.d.ts +2 -1
  239. package/dist/verify/outcome-routing/verification-history-reset.d.ts.map +1 -1
  240. package/dist/verify/outcome-routing/verification-history-reset.js +5 -2
  241. package/dist/verify/outcome-routing/verification-history-reset.js.map +1 -1
  242. package/dist/verify/outcome-routing/verification-model-unavailable-hold.d.ts +2 -1
  243. package/dist/verify/outcome-routing/verification-model-unavailable-hold.d.ts.map +1 -1
  244. package/dist/verify/outcome-routing/verification-model-unavailable-hold.js +5 -1
  245. package/dist/verify/outcome-routing/verification-model-unavailable-hold.js.map +1 -1
  246. package/dist/verify/outcome-routing/verification-rework-issue.d.ts.map +1 -1
  247. package/dist/verify/outcome-routing/verification-rework-issue.js +4 -1
  248. package/dist/verify/outcome-routing/verification-rework-issue.js.map +1 -1
  249. package/dist/verify/outcome-routing/verification-rework-messages.d.ts +8 -2
  250. package/dist/verify/outcome-routing/verification-rework-messages.d.ts.map +1 -1
  251. package/dist/verify/outcome-routing/verification-rework-messages.js +18 -7
  252. package/dist/verify/outcome-routing/verification-rework-messages.js.map +1 -1
  253. package/dist/verify/run-selection/default-on-guards.d.ts +15 -0
  254. package/dist/verify/run-selection/default-on-guards.d.ts.map +1 -1
  255. package/dist/verify/run-selection/default-on-guards.js +18 -1
  256. package/dist/verify/run-selection/default-on-guards.js.map +1 -1
  257. package/dist/verify/run-selection/explicit-rearm.d.ts.map +1 -1
  258. package/dist/verify/run-selection/explicit-rearm.js +1 -0
  259. package/dist/verify/run-selection/explicit-rearm.js.map +1 -1
  260. package/dist/verify/run-selection/pre-review-gate-dispatch.d.ts.map +1 -1
  261. package/dist/verify/run-selection/pre-review-gate-dispatch.js +15 -6
  262. package/dist/verify/run-selection/pre-review-gate-dispatch.js.map +1 -1
  263. package/dist/verify/run-selection/reselection-log-line.d.ts +1 -1
  264. package/dist/verify/run-selection/reselection-log-line.d.ts.map +1 -1
  265. package/dist/verify/run-selection/reselection-log-line.js +6 -2
  266. package/dist/verify/run-selection/reselection-log-line.js.map +1 -1
  267. package/dist/verify/run-selection/unanswered-dispatch.d.ts +20 -0
  268. package/dist/verify/run-selection/unanswered-dispatch.d.ts.map +1 -0
  269. package/dist/verify/run-selection/unanswered-dispatch.js +85 -0
  270. package/dist/verify/run-selection/unanswered-dispatch.js.map +1 -0
  271. package/dist/verify/run-selection/verification-default-on.d.ts.map +1 -1
  272. package/dist/verify/run-selection/verification-default-on.js +2 -1
  273. package/dist/verify/run-selection/verification-default-on.js.map +1 -1
  274. package/dist/verify/shortfalls/delivery-commit-set.d.ts.map +1 -1
  275. package/dist/verify/shortfalls/delivery-commit-set.js +2 -1
  276. package/dist/verify/shortfalls/delivery-commit-set.js.map +1 -1
  277. package/dist/verify/shortfalls/latest-shortfall-judgment.d.ts +24 -0
  278. package/dist/verify/shortfalls/latest-shortfall-judgment.d.ts.map +1 -0
  279. package/dist/verify/shortfalls/latest-shortfall-judgment.js +94 -0
  280. package/dist/verify/shortfalls/latest-shortfall-judgment.js.map +1 -0
  281. package/dist/verify/shortfalls/parked-shortfall-reuse.d.ts.map +1 -1
  282. package/dist/verify/shortfalls/parked-shortfall-reuse.js +20 -6
  283. package/dist/verify/shortfalls/parked-shortfall-reuse.js.map +1 -1
  284. package/dist/verify/shortfalls/shortfall-judgment-log.d.ts +12 -0
  285. package/dist/verify/shortfalls/shortfall-judgment-log.d.ts.map +1 -0
  286. package/dist/verify/shortfalls/shortfall-judgment-log.js +56 -0
  287. package/dist/verify/shortfalls/shortfall-judgment-log.js.map +1 -0
  288. package/dist/verify/shortfalls/shortfall-park-escalation.d.ts.map +1 -1
  289. package/dist/verify/shortfalls/shortfall-park-escalation.js +6 -2
  290. package/dist/verify/shortfalls/shortfall-park-escalation.js.map +1 -1
  291. package/dist/verify/shortfalls/shortfall-park.d.ts +9 -0
  292. package/dist/verify/shortfalls/shortfall-park.d.ts.map +1 -1
  293. package/dist/verify/shortfalls/shortfall-park.js +23 -19
  294. package/dist/verify/shortfalls/shortfall-park.js.map +1 -1
  295. package/dist/verify/shortfalls/shortfall-repeat.d.ts +14 -0
  296. package/dist/verify/shortfalls/shortfall-repeat.d.ts.map +1 -1
  297. package/dist/verify/shortfalls/shortfall-repeat.js +15 -1
  298. package/dist/verify/shortfalls/shortfall-repeat.js.map +1 -1
  299. package/dist/verify/shortfalls/shortfall-rework-hold.d.ts +66 -0
  300. package/dist/verify/shortfalls/shortfall-rework-hold.d.ts.map +1 -0
  301. package/dist/verify/shortfalls/shortfall-rework-hold.js +230 -0
  302. package/dist/verify/shortfalls/shortfall-rework-hold.js.map +1 -0
  303. package/dist/verify/shortfalls/shortfall-rulings.d.ts +40 -10
  304. package/dist/verify/shortfalls/shortfall-rulings.d.ts.map +1 -1
  305. package/dist/verify/shortfalls/shortfall-rulings.js +59 -15
  306. package/dist/verify/shortfalls/shortfall-rulings.js.map +1 -1
  307. package/dist/worktree/focus-worktree-state.d.ts.map +1 -1
  308. package/dist/worktree/focus-worktree-state.js +1 -0
  309. package/dist/worktree/focus-worktree-state.js.map +1 -1
  310. package/package.json +1 -1
@@ -0,0 +1,98 @@
1
+ // PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
2
+ // Pinned by: packages/daemon/src/completion/state-cascade/review-verify-judgment-gate.test.ts,
3
+ // packages/daemon/src/integration/review-opens-after-verify-judgment-regression.test.ts
4
+ // PINNED-BY-END
5
+ import { resolveGateReads } from '../../verify/gate-verdicts/own-gate-verdict.js';
6
+ import { shortfallParkRefusingRework } from '../../verify/shortfalls/shortfall-park.js';
7
+ import { createLogger } from '../../log/daemon-log.js';
8
+ const log = createLogger({ module: 'state-cascade' });
9
+ /** What keeps the window shut, most telling first: a recorded failure, a run in flight, a park, then no record. */
10
+ const PRECEDENCE = ['failed', 'in_flight', 'parked', 'unrecorded'];
11
+ /** Where verify stands on one verify delivery at `sha` (module header). */
12
+ async function readDeliveryVerifyJudgment(deps, subject, delivery, sha) {
13
+ if (deps.isGateRunSelected(delivery.id))
14
+ return 'in_flight';
15
+ // Parked: its recorded shortfall stands at the head the park fixed, and only a ruling or a new commit releases it --
16
+ // a review now would approve that head over the failure (module header, WHICH DELIVERIES).
17
+ if (shortfallParkRefusingRework(delivery) !== null)
18
+ return 'parked';
19
+ const resolution = await resolveGateReads(deps, {
20
+ ...subject, deliveryId: delivery.id, injectionId: delivery.injectionId, gateState: delivery.gateState,
21
+ });
22
+ // No gate governs it: verify never judges it, so no outcome is coming to wait for.
23
+ if (!resolution?.configured)
24
+ return 'judged';
25
+ const explicit = deps.readDeliveryGateOutcome(delivery.id, sha, delivery.gateState, resolution.explicitGateKey);
26
+ if (explicit === 'failed')
27
+ return 'failed';
28
+ if (explicit === 'passed')
29
+ return 'judged';
30
+ return sha !== null && deps.readPassedSha(delivery.id) === sha ? 'judged' : 'unrecorded';
31
+ }
32
+ /** Read whether verify has finished judging the focus HEAD across its verify deliveries. */
33
+ export async function readFocusHeadVerifyJudgment(deps, subject, verifyDeliveries) {
34
+ const sha = deps.resolveJudgedCommit(subject.focusId);
35
+ const states = await Promise.all(verifyDeliveries.map((d) => readDeliveryVerifyJudgment(deps, subject, d, sha)));
36
+ for (const state of PRECEDENCE) {
37
+ const deliveryIds = verifyDeliveries.filter((_d, i) => states[i] === state).map((d) => d.id);
38
+ if (deliveryIds.length > 0)
39
+ return { state, sha, deliveryIds };
40
+ }
41
+ return { state: 'judged', sha, deliveryIds: [] };
42
+ }
43
+ /** True when the judgment lets the review window open. */
44
+ export function verifyJudgmentOpensReviewWindow(judgment) {
45
+ return judgment.state === 'judged';
46
+ }
47
+ /** focusId -> the reason, delivery set and HEAD its declined review request was last logged for (one line each, not per poll). */
48
+ const declineLogged = new Map();
49
+ /** Test-only: forget every logged decline. */
50
+ export function __resetReviewVerifyJudgmentGateForTests() {
51
+ declineLogged.clear();
52
+ }
53
+ /** Why the window stays shut, for the log. */
54
+ function describeDecline(judgment) {
55
+ const head = judgment.sha ? judgment.sha.slice(0, 8) : '(unreadable HEAD)';
56
+ const who = `delivery(ies) ${judgment.deliveryIds.join(', ')}`;
57
+ if (judgment.state === 'failed')
58
+ return `verify FAILED ${who} at ${head}; its rework is next, not a review.`;
59
+ if (judgment.state === 'parked') {
60
+ return `${who} parked on a repeating verify shortfall at ${head} or an earlier head; a review would approve a head its `
61
+ + 'failure stands on -- a ruling on its nodes or a new delivery commit releases the park (its escalation names the ruling).';
62
+ }
63
+ if (judgment.state === 'in_flight') {
64
+ return `verify is still judging ${who} at ${head} (a run is selected and not finished); the window opens once its outcome is recorded.`;
65
+ }
66
+ return `no verify outcome is recorded yet for ${who} at ${head}; the verification tick judges it.`;
67
+ }
68
+ /**
69
+ * The review request waits on verify having finished judging the focus HEAD
70
+ * (module header). In flight or unrecorded: the verification tick answers it.
71
+ * Failed: that failure routes re-work, so no review is spawned. Parked: a ruling
72
+ * or a new delivery commit releases it. A read that
73
+ * throws holds the request (fail closed) and is retried next poll. An absent
74
+ * reader holds nothing.
75
+ */
76
+ export async function declinesReviewBeforeVerifyJudged(focusId, verifyDeliveries, read) {
77
+ if (!read)
78
+ return false;
79
+ let judgment;
80
+ try {
81
+ judgment = await read(focusId, verifyDeliveries);
82
+ }
83
+ catch (err) {
84
+ log.warn(`[state-cascade] Not opening a review window on focus ${focusId}: verify's judgment of its HEAD could not be read: ${err.message}`);
85
+ return true;
86
+ }
87
+ if (verifyJudgmentOpensReviewWindow(judgment)) {
88
+ declineLogged.delete(focusId);
89
+ return false;
90
+ }
91
+ const key = `${judgment.state}:${judgment.deliveryIds.join(',')}@${judgment.sha ?? 'unreadable'}`;
92
+ if (declineLogged.get(focusId) !== key) {
93
+ declineLogged.set(focusId, key);
94
+ log.info(`[state-cascade] Not opening a review window on focus ${focusId}: ${describeDecline(judgment)}`);
95
+ }
96
+ return true;
97
+ }
98
+ //# sourceMappingURL=review-verify-judgment-gate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-verify-judgment-gate.js","sourceRoot":"","sources":["../../../src/completion/state-cascade/review-verify-judgment-gate.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,+FAA+F;AAC/F,0FAA0F;AAC1F,gBAAgB;AAwFhB,OAAO,EAAE,gBAAgB,EAAkB,MAAM,gDAAgD,CAAC;AAClG,OAAO,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;AACxF,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;AAwCtD,mHAAmH;AACnH,MAAM,UAAU,GAA0D,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;AAE1H,2EAA2E;AAC3E,KAAK,UAAU,0BAA0B,CACvC,IAA8B,EAC9B,OAAoC,EACpC,QAAsC,EACtC,GAAkB;IAElB,IAAI,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;QAAE,OAAO,WAAW,CAAC;IAC5D,qHAAqH;IACrH,2FAA2F;IAC3F,IAAI,2BAA2B,CAAC,QAAQ,CAAC,KAAK,IAAI;QAAE,OAAO,QAAQ,CAAC;IACpE,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC,IAAI,EAAE;QAC9C,GAAG,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,EAAE,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS;KACtG,CAAC,CAAC;IACH,mFAAmF;IACnF,IAAI,CAAC,UAAU,EAAE,UAAU;QAAE,OAAO,QAAQ,CAAC;IAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC;IAChH,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC3C,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC3C,OAAO,GAAG,KAAK,IAAI,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC;AAC3F,CAAC;AAED,4FAA4F;AAC5F,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,IAA8B,EAC9B,OAAoC,EACpC,gBAAyD;IAEzD,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,0BAA0B,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IACjH,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;QAC/B,MAAM,WAAW,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC7F,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC;IACjE,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;AACnD,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,+BAA+B,CAAC,QAAiC;IAC/E,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ,CAAC;AACrC,CAAC;AAQD,kIAAkI;AAClI,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;AAEhD,8CAA8C;AAC9C,MAAM,UAAU,uCAAuC;IACrD,aAAa,CAAC,KAAK,EAAE,CAAC;AACxB,CAAC;AAED,8CAA8C;AAC9C,SAAS,eAAe,CAAC,QAAiC;IACxD,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC;IAC3E,MAAM,GAAG,GAAG,iBAAiB,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAC/D,IAAI,QAAQ,CAAC,KAAK,KAAK,QAAQ;QAAE,OAAO,iBAAiB,GAAG,OAAO,IAAI,qCAAqC,CAAC;IAC7G,IAAI,QAAQ,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,GAAG,GAAG,8CAA8C,IAAI,yDAAyD;cACpH,0HAA0H,CAAC;IACjI,CAAC;IACD,IAAI,QAAQ,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;QACnC,OAAO,2BAA2B,GAAG,OAAO,IAAI,uFAAuF,CAAC;IAC1I,CAAC;IACD,OAAO,yCAAyC,GAAG,OAAO,IAAI,oCAAoC,CAAC;AACrG,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,gCAAgC,CACpD,OAAe,EACf,gBAA8B,EAC9B,IAAkD;IAElD,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxB,IAAI,QAAiC,CAAC;IACtC,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IACnD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,IAAI,CAAC,wDAAwD,OAAO,sDAAuD,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QACxJ,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,+BAA+B,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9C,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,GAAG,GAAG,GAAG,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,GAAG,IAAI,YAAY,EAAE,CAAC;IAClG,IAAI,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC;QACvC,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAChC,GAAG,CAAC,IAAI,CAAC,wDAAwD,OAAO,KAAK,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC5G,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -10,7 +10,8 @@ import { type CommitVerdictGateDeps } from '../review-exit-holds/review-exit-ver
10
10
  import type { GateReads } from '../../verify/gate-verdicts/own-gate-verdict.js';
11
11
  import { type ReviewHeadApproval } from './review-approved-head-gate.js';
12
12
  import type { ReviewCensus } from '../review-exit/review-census-record.js';
13
- import { type StrandedEscalationFiler } from './standing-approval-stranded.js';
13
+ import { type StrandedEscalationFiler, type StrandedEscalationResolver } from './standing-approval-stranded.js';
14
+ import type { ShortfallRulingsReader } from '../../verify/shortfalls/shortfall-rulings.js';
14
15
  /** The focus a pass converges. */
15
16
  export interface StandingApprovalFocus {
16
17
  organizationId: string;
@@ -36,6 +37,10 @@ export interface StandingApprovalDeps extends GateReads, Pick<CommitVerdictGateD
36
37
  externalHoldClock: () => string;
37
38
  /** Files the one escalation for a delivery declined identically across polls (standing-approval-stranded.ts). */
38
39
  fileStrandedEscalation?: StrandedEscalationFiler;
40
+ /** Resolves a delivery's open stranded filings once its stranding ended (standing-approval-stranded.ts). */
41
+ resolveStrandedEscalations?: StrandedEscalationResolver;
42
+ /** The delivery's active shortfall rulings: a failed verdict awaiting re-judgement on one is not stranded. */
43
+ readShortfallRulings?: ShortfallRulingsReader;
39
44
  /** The focus's recorded concern ids (delivery/recorded-concerns.ts), read once per pass; fail-closed to empty. */
40
45
  readRecordedConcernIds: RecordedConcernReader;
41
46
  }
@@ -73,7 +78,8 @@ export declare function censusCoversDelivery(censuses: readonly ReviewCensus[],
73
78
  export declare function __resetStandingApprovalConvergenceForTests(): void;
74
79
  /**
75
80
  * Converge every covered, passed, unheld verify delivery of the focus on its
76
- * standing approval (see the module header). Never throws.
81
+ * standing approval, and examine every failed-verdict one (see the module header).
82
+ * Never throws.
77
83
  */
78
84
  export declare function convergeOnStandingApproval(focus: StandingApprovalFocus, deliveries: readonly FocusDeliveryInfo[], deps: StandingApprovalDeps): Promise<StandingApprovalOutcome>;
79
85
  //# sourceMappingURL=standing-approval-convergence.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"standing-approval-convergence.d.ts","sourceRoot":"","sources":["../../../src/completion/state-cascade/standing-approval-convergence.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"standing-approval-convergence.d.ts","sourceRoot":"","sources":["../../../src/completion/state-cascade/standing-approval-convergence.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,11 @@
1
1
  // PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
2
2
  // Pinned by: packages/daemon/src/completion/state-cascade/standing-approval-convergence.test.ts,
3
+ // packages/daemon/src/completion/state-cascade/standing-approval-failed-verdict.test.ts,
3
4
  // packages/daemon/src/completion/state-cascade/standing-approval-stranded.test.ts,
4
5
  // packages/daemon/src/composition/review-holds-context.test.ts,
5
6
  // packages/daemon/src/integration/approved-head-hold-release-regression.test.ts,
7
+ // packages/daemon/src/integration/failed-verdict-ruling-rejudge-regression.test.ts,
8
+ // packages/daemon/src/integration/last-shortfall-judgment-round-trip.test.ts,
6
9
  // packages/daemon/src/integration/merge-back-approved-head-regression.test.ts,
7
10
  // packages/daemon/src/integration/shortfall-ruling-disposes-proposals-regression.test.ts,
8
11
  // packages/daemon/src/integration/standing-approval-release-regression.test.ts
@@ -65,6 +68,15 @@
65
68
  * the identical reason across consecutive polls is reported ONCE, anchored to it
66
69
  * (completion/state-cascade/standing-approval-stranded.ts).
67
70
  *
71
+ * A FAILED verdict at the approved head is examined on the same poll, never
72
+ * converged (completion/state-cascade/standing-approval-failed-verdict.ts): a verify
73
+ * delivery whose latest verify judgment of the approved commit is a shortfall
74
+ * failure, with no verify run, park, new ruling or owed work answering for it, is
75
+ * declined `failed_verdict` and counted by the same stranded streak. Once a
76
+ * delivery's stranding ends -- this pass converged it, or it left verify -- its
77
+ * open stranded filing is resolved (standing-approval-stranded.ts
78
+ * resolveClearedStrands).
79
+ *
68
80
  * FAILS CLOSED: an unreadable head, approval, census, issue list, workflow or hold
69
81
  * leaves the delivery in verify; the next poll retries. A read failure is never
70
82
  * converted into done.
@@ -87,7 +99,8 @@ import { readDoneRouteVerdict, verifyRunHoldsDone, } from '../review-exit-holds/
87
99
  import { isHeadAlreadyApproved } from './review-approved-head-gate.js';
88
100
  import { readShortfallPark } from '../../queries/delivery-gate-state/delivery-gate-state.js';
89
101
  import { createLogger } from '../../log/daemon-log.js';
90
- import { reportStandingApprovalDeclines, } from './standing-approval-stranded.js';
102
+ import { reportStandingApprovalDeclines, resolveClearedStrands, } from './standing-approval-stranded.js';
103
+ import { examineFailedVerdicts, failedVerdictCandidates, forgetFailedVerdictNotes, } from './standing-approval-failed-verdict.js';
91
104
  const log = createLogger({ module: 'state-cascade' });
92
105
  /** gate_state keys that record a verify failure or a hold (never a pass). */
93
106
  const HOLD_OR_FAILURE_KEYS = [
@@ -140,6 +153,7 @@ const lastLoggedReason = new Map();
140
153
  /** Test seam: forget logged hold reasons. */
141
154
  export function __resetStandingApprovalConvergenceForTests() {
142
155
  lastLoggedReason.clear();
156
+ forgetFailedVerdictNotes();
143
157
  }
144
158
  function logHeldOnce(focus, d, sha, reason) {
145
159
  if (lastLoggedReason.get(d.id) === reason)
@@ -212,22 +226,23 @@ async function readApprovedHead(deps, focus) {
212
226
  }
213
227
  /**
214
228
  * Converge every covered, passed, unheld verify delivery of the focus on its
215
- * standing approval (see the module header). Never throws.
229
+ * standing approval, and examine every failed-verdict one (see the module header).
230
+ * Never throws.
216
231
  */
217
232
  export async function convergeOnStandingApproval(focus, deliveries, deps) {
218
233
  const outcome = { converged: [], held: [] };
219
234
  const candidates = deliveries.filter(isStandingApprovalCandidate);
235
+ const failed = failedVerdictCandidates(deliveries);
220
236
  for (const d of deliveries)
221
237
  if (!candidates.includes(d))
222
238
  lastLoggedReason.delete(d.id);
223
239
  const seen = deliveries.map((d) => d.id);
224
- if (candidates.length === 0 || deps.isReviewSessionActive(focus.focusId)) {
225
- await reportStandingApprovalDeclines(focus, null, seen, [], deps.fileStrandedEscalation);
226
- return outcome;
227
- }
228
- const approved = await readApprovedHead(deps, focus);
240
+ const approved = (candidates.length === 0 && failed.length === 0) || deps.isReviewSessionActive(focus.focusId)
241
+ ? null
242
+ : await readApprovedHead(deps, focus);
229
243
  if (approved === null) {
230
244
  await reportStandingApprovalDeclines(focus, null, seen, [], deps.fileStrandedEscalation);
245
+ await resolveClearedStrands(focus, deliveries, [], null, deps.resolveStrandedEscalations);
231
246
  return outcome;
232
247
  }
233
248
  const { approvedSha } = approved;
@@ -244,9 +259,20 @@ export async function convergeOnStandingApproval(focus, deliveries, deps) {
244
259
  }
245
260
  if (covered.length > 0)
246
261
  await convergeCovered(focus, covered, deps, approved, outcome, decline);
262
+ if (failed.length > 0)
263
+ declines.push(...await examineFailed(focus, failed, deps, approved, outcome));
247
264
  await reportStandingApprovalDeclines(focus, approvedSha, seen, declines, deps.fileStrandedEscalation);
265
+ await resolveClearedStrands(focus, deliveries, outcome.converged, approvedSha, deps.resolveStrandedEscalations);
248
266
  return outcome;
249
267
  }
268
+ /** Examine the failed-verdict candidates at the approved head; each counted one is also reported as held. */
269
+ async function examineFailed(focus, failed, deps, approved, outcome) {
270
+ const head = { approvedSha: approved.approvedSha, advanceHead: approved.advance?.head ?? null };
271
+ const declines = await examineFailedVerdicts(focus, failed, head, deps, () => deps.readRecordedConcernIds(focus.focusId));
272
+ for (const d of declines)
273
+ outcome.held.push({ deliveryId: d.deliveryId, reason: d.reason });
274
+ return declines;
275
+ }
250
276
  /** Cross each census-covered candidate through the done gates, writing done for every one they let through. */
251
277
  async function convergeCovered(focus, covered, deps, approved, outcome, decline) {
252
278
  const shortfall = await resolveShortfallHold(deps, focus.focusId, focus.focusName);
@@ -1 +1 @@
1
- {"version":3,"file":"standing-approval-convergence.js","sourceRoot":"","sources":["../../../src/completion/state-cascade/standing-approval-convergence.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"standing-approval-convergence.js","sourceRoot":"","sources":["../../../src/completion/state-cascade/standing-approval-convergence.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,107 @@
1
+ /**
2
+ * The standing-approval pass's BACKSTOP for a FAILED verdict: a verify delivery
3
+ * whose latest verify judgment of the already-approved focus head is a failure is
4
+ * examined on every cascade poll and, when nothing will move it, reported as a
5
+ * decline that the stranded counter files after the same
6
+ * STANDING_APPROVAL_STRANDED_POLLS identical polls as a passed one
7
+ * (completion/state-cascade/standing-approval-stranded.ts), naming each held node
8
+ * (completion/state-cascade/failed-verdict-stranded-filing.ts).
9
+ *
10
+ * WHY. completion/state-cascade/standing-approval-convergence.ts examined only a
11
+ * delivery whose recorded verify outcome is `passed`. A failed one at an approved
12
+ * head has no other mover: review does not reopen at that head
13
+ * (completion/state-cascade/review-approved-head-gate.ts), verify does not judge an
14
+ * unchanged commit again on its own, and an approval does not cover a failed
15
+ * verdict, so it never converges -- and the convergence's candidate filter dropped
16
+ * it before the stranded counter ever saw it, so nothing was filed either.
17
+ *
18
+ * WHAT IS READ AS "FAILED AT THE APPROVED HEAD", in order:
19
+ * 1. verify/shortfalls/latest-shortfall-judgment.ts readFailedShortfallJudgment:
20
+ * the delivery sits in verify, unparked; its row's verification_outcome is
21
+ * 'failed' or unrecorded (null -- the edge resets a failure on its re-work
22
+ * round trip); no deterministic-failure, blind-evidence or awaited-model
23
+ * detail stands live; and its latest shortfall judgment is the LIVE
24
+ * gate_state.shortfallReconciliation, else the KEPT
25
+ * verificationHistory.lastShortfallJudgment, naming at least one node;
26
+ * 2. that judgment's commit (its judgedSha: the commit its re-work writer
27
+ * stamped, else its gate verdict's sha) is the approved commit, or the head
28
+ * a foreign-only advance moved past it. A judgment naming no commit, or
29
+ * another commit, is not about this head (a later commit is judged at the
30
+ * focus's pre-review run).
31
+ * The row's outcome is never read alone: it names no commit.
32
+ *
33
+ * NEVER CONVERGES. A failed verdict is not covered by an approval; this pass only
34
+ * reports it. Its done gates are not crossed.
35
+ *
36
+ * NOT COUNTED -- something already answers for the delivery, and the identical-poll
37
+ * count starts over like any other change of state:
38
+ * - a verify run is selected or in flight for it (isGateRunSelected): verify is
39
+ * judging it now;
40
+ * - it is PARKED: the park filed its one escalation
41
+ * (verify/shortfalls/shortfall-park-escalation.ts) and a ruling releases it
42
+ * (rule 1 above reads no park);
43
+ * - a ruling the judgment did not apply is in force (shortfall-park.ts
44
+ * rulingRecordedSince against the fingerprint its repeat record carries): it
45
+ * awaits re-judgement, which the ruling re-arm selects
46
+ * (verify/shortfalls/shortfall-rulings.ts);
47
+ * - it owes open work (delivery/recorded-concerns.ts splitOpenWork over its work
48
+ * issues): a coding pass is next, and the live open-work pass routes it.
49
+ * An unreadable input (its issues, or its rulings) decides nothing: like the
50
+ * passed path's, the delivery is declined `read_failed`, counted and filed after
51
+ * the same polls -- still naming the held nodes -- so a read that never comes back
52
+ * does not hide it.
53
+ *
54
+ * THE SIGNATURE the streak compares is the approved commit, the row's outcome and
55
+ * the judgment (when it held, the commit it judged, and per node its id, its
56
+ * unjudged discriminator and its reason): a new head, a changed outcome or a new
57
+ * judgment starts the count over.
58
+ *
59
+ * History: docs/daemon/history-team-lifecycle.md (completion/state-cascade/standing-approval-failed-verdict.ts).
60
+ *
61
+ * @module completion/state-cascade/standing-approval-failed-verdict
62
+ */
63
+ import type { FocusDeliveryInfo } from '../../types/index.js';
64
+ import type { getDeliveryIssues } from '../../queries/deliveries/issues.js';
65
+ import { type FailedShortfallJudgment } from '../../verify/shortfalls/latest-shortfall-judgment.js';
66
+ import type { ShortfallRulingsReader } from '../../verify/shortfalls/shortfall-rulings.js';
67
+ import type { StandingApprovalDecline } from './standing-approval-stranded.js';
68
+ /** The reads the examination takes (a slice of StandingApprovalDeps). */
69
+ export interface FailedVerdictDeps {
70
+ /** Whether a verify run for the delivery is selected or in flight. Absent: none is. */
71
+ isGateRunSelected?: (deliveryId: string) => boolean;
72
+ getDeliveryIssues: typeof getDeliveryIssues;
73
+ /** The delivery's active shortfall rulings and their fingerprint. Absent: none are known. */
74
+ readShortfallRulings?: ShortfallRulingsReader;
75
+ }
76
+ /** A verify delivery whose latest judgment is a shortfall failure, before its commit is compared with the head. */
77
+ export interface FailedVerdictCandidate {
78
+ delivery: FocusDeliveryInfo;
79
+ failed: FailedShortfallJudgment;
80
+ }
81
+ /** The approved commit, and the head a foreign-only advance moved past it (null when none). */
82
+ export interface FailedVerdictHead {
83
+ approvedSha: string;
84
+ advanceHead: string | null;
85
+ }
86
+ /** The focus the examination logs under. */
87
+ interface FailedVerdictFocus {
88
+ focusId: string;
89
+ focusName: string;
90
+ }
91
+ /**
92
+ * The deliveries whose latest verify judgment is a shortfall failure (rule 1 of
93
+ * the module header); every other delivery's logged state is forgotten.
94
+ */
95
+ export declare function failedVerdictCandidates(deliveries: readonly FocusDeliveryInfo[]): FailedVerdictCandidate[];
96
+ /** What the streak compares for a failed-verdict decline (module header, THE SIGNATURE). Pure. */
97
+ export declare function failedVerdictSignature(failed: FailedShortfallJudgment, approvedSha: string): string;
98
+ /** Forget every logged state (the convergence's test seam calls it). */
99
+ export declare function forgetFailedVerdictNotes(): void;
100
+ /**
101
+ * Examine each failed-verdict candidate at the approved head and return the
102
+ * declines to count (module header). `readConcernIds` is called at most once.
103
+ * Never throws: a read that fails is a `read_failed` decline.
104
+ */
105
+ export declare function examineFailedVerdicts(focus: FailedVerdictFocus, candidates: readonly FailedVerdictCandidate[], head: FailedVerdictHead, deps: FailedVerdictDeps, readConcernIds: () => Promise<ReadonlySet<string>>): Promise<StandingApprovalDecline[]>;
106
+ export {};
107
+ //# sourceMappingURL=standing-approval-failed-verdict.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standing-approval-failed-verdict.d.ts","sourceRoot":"","sources":["../../../src/completion/state-cascade/standing-approval-failed-verdict.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6DG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAI5E,OAAO,EAA+B,KAAK,uBAAuB,EAAE,MAAM,sDAAsD,CAAC;AAEjI,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AAC3F,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAM/E,yEAAyE;AACzE,MAAM,WAAW,iBAAiB;IAChC,uFAAuF;IACvF,iBAAiB,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC;IACpD,iBAAiB,EAAE,OAAO,iBAAiB,CAAC;IAC5C,6FAA6F;IAC7F,oBAAoB,CAAC,EAAE,sBAAsB,CAAC;CAC/C;AAED,mHAAmH;AACnH,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,MAAM,EAAE,uBAAuB,CAAC;CACjC;AAED,+FAA+F;AAC/F,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,4CAA4C;AAC5C,UAAU,kBAAkB;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAKD;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,SAAS,iBAAiB,EAAE,GAAG,sBAAsB,EAAE,CAQ1G;AASD,kGAAkG;AAClG,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,uBAAuB,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAGnG;AAED,wEAAwE;AACxE,wBAAgB,wBAAwB,IAAI,IAAI,CAE/C;AAkDD;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,kBAAkB,EACzB,UAAU,EAAE,SAAS,sBAAsB,EAAE,EAC7C,IAAI,EAAE,iBAAiB,EACvB,IAAI,EAAE,iBAAiB,EACvB,cAAc,EAAE,MAAM,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,GACjD,OAAO,CAAC,uBAAuB,EAAE,CAAC,CAgCpC"}
@@ -0,0 +1,121 @@
1
+ // PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
2
+ // Pinned by: packages/daemon/src/completion/state-cascade/standing-approval-failed-verdict.test.ts
3
+ // PINNED-BY-END
4
+ import { filterWorkIssues } from '../../types/issue-status.js';
5
+ import { splitOpenWork } from '../../delivery/recorded-concerns.js';
6
+ import { sameCommit } from '../../queries/focus-review/focus-review-approval.js';
7
+ import { readFailedShortfallJudgment } from '../../verify/shortfalls/latest-shortfall-judgment.js';
8
+ import { rulingRecordedSince } from '../../verify/shortfalls/shortfall-park.js';
9
+ import { createLogger } from '../../log/daemon-log.js';
10
+ const log = createLogger({ module: 'state-cascade' });
11
+ /** deliveryId -> the last state logged for it (one line per delivery per state, not one per poll). */
12
+ const lastNoted = new Map();
13
+ /**
14
+ * The deliveries whose latest verify judgment is a shortfall failure (rule 1 of
15
+ * the module header); every other delivery's logged state is forgotten.
16
+ */
17
+ export function failedVerdictCandidates(deliveries) {
18
+ const out = [];
19
+ for (const delivery of deliveries) {
20
+ const failed = readFailedShortfallJudgment(delivery);
21
+ if (failed !== null)
22
+ out.push({ delivery, failed });
23
+ else
24
+ lastNoted.delete(delivery.id);
25
+ }
26
+ return out;
27
+ }
28
+ /** The judged commit when it is the approved head (rule 2), else null. Pure. */
29
+ function judgedAtHead(failed, head) {
30
+ const sha = failed.judgment.judgedSha;
31
+ if (sha === undefined || sha === '')
32
+ return null;
33
+ return sameCommit(sha, head.approvedSha) || (head.advanceHead !== null && sameCommit(sha, head.advanceHead)) ? sha : null;
34
+ }
35
+ /** What the streak compares for a failed-verdict decline (module header, THE SIGNATURE). Pure. */
36
+ export function failedVerdictSignature(failed, approvedSha) {
37
+ const nodes = failed.judgment.nodes.map((n) => `${n.nodeId}:${n.unjudged ?? ''}:${n.reason}`).join(';');
38
+ return `failed_verdict|${approvedSha}|${failed.outcome ?? 'unrecorded'}|${failed.judgment.judgedSha ?? ''}|${failed.judgment.heldAt}|${nodes}`;
39
+ }
40
+ /** Forget every logged state (the convergence's test seam calls it). */
41
+ export function forgetFailedVerdictNotes() {
42
+ lastNoted.clear();
43
+ }
44
+ function noteOnce(d, state, line) {
45
+ if (lastNoted.get(d.id) === state)
46
+ return;
47
+ lastNoted.set(d.id, state);
48
+ log.info(line());
49
+ }
50
+ /** Why `d` is not counted this poll (module header, NOT COUNTED), or null when nothing answers for it. */
51
+ async function answeredBy(d, failed, deps, concernIds) {
52
+ if (deps.isGateRunSelected?.(d.id) === true)
53
+ return 'a verify run for it is in flight';
54
+ if (deps.readShortfallRulings) {
55
+ const { fingerprint } = await deps.readShortfallRulings(d.id);
56
+ if (rulingRecordedSince(failed.appliedRulings, fingerprint))
57
+ return 'a ruling verify did not apply is in force; it awaits re-judgement';
58
+ }
59
+ const work = filterWorkIssues(await deps.getDeliveryIssues(d.id));
60
+ if (splitOpenWork(work, await concernIds()).owed.length > 0)
61
+ return 'it owes open work; a coding pass is next';
62
+ return null;
63
+ }
64
+ /** The decline for one counted delivery: its judgment, held at the approved head. */
65
+ function declineOf(d, failed, judgedSha, approvedSha, readFailure) {
66
+ const payload = {
67
+ heldAt: failed.judgment.heldAt, judgedSha, outcome: failed.outcome, nodes: failed.judgment.nodes,
68
+ };
69
+ const ids = failed.judgment.nodes.map((n) => n.nodeId).join(', ');
70
+ if (readFailure !== null) {
71
+ return { deliveryId: d.id, deliveryName: d.name, kind: 'read_failed', reason: `a read failed (${readFailure})`, failed: payload };
72
+ }
73
+ return {
74
+ deliveryId: d.id,
75
+ deliveryName: d.name,
76
+ kind: 'failed_verdict',
77
+ reason: `verify's latest judgment of ${approvedSha.slice(0, 12)} is a failure on node(s) ${ids}`,
78
+ signature: failedVerdictSignature(failed, approvedSha),
79
+ failed: payload,
80
+ };
81
+ }
82
+ /**
83
+ * Examine each failed-verdict candidate at the approved head and return the
84
+ * declines to count (module header). `readConcernIds` is called at most once.
85
+ * Never throws: a read that fails is a `read_failed` decline.
86
+ */
87
+ export async function examineFailedVerdicts(focus, candidates, head, deps, readConcernIds) {
88
+ let concerns;
89
+ const concernIds = () => (concerns ??= readConcernIds());
90
+ const declines = [];
91
+ for (const { delivery: d, failed } of candidates) {
92
+ const judgedSha = judgedAtHead(failed, head);
93
+ if (judgedSha === null) {
94
+ lastNoted.delete(d.id);
95
+ continue;
96
+ }
97
+ let answered;
98
+ try {
99
+ answered = await answeredBy(d, failed, deps, concernIds);
100
+ }
101
+ catch (err) {
102
+ const decline = declineOf(d, failed, judgedSha, head.approvedSha, err.message);
103
+ noteOnce(d, decline.reason, () => `[state-cascade] Delivery "${d.name}" on "${focus.focusName}" failed verify at the approved head ` +
104
+ `${head.approvedSha.slice(0, 12)} and could not be examined this poll: ${decline.reason}. Left in verify; re-read next poll.`);
105
+ declines.push(decline);
106
+ continue;
107
+ }
108
+ if (answered !== null) {
109
+ noteOnce(d, `answered:${answered}`, () => `[state-cascade] Delivery "${d.name}" on "${focus.focusName}" failed verify at the ` +
110
+ `approved head ${head.approvedSha.slice(0, 12)}; not stranded: ${answered}.`);
111
+ continue;
112
+ }
113
+ const decline = declineOf(d, failed, judgedSha, head.approvedSha, null);
114
+ noteOnce(d, decline.signature ?? decline.reason, () => `[state-cascade] Delivery "${d.name}" on "${focus.focusName}": ${decline.reason}, ` +
115
+ 'and nothing re-judges it -- no verify run, no park, no ruling since that judgment, no owed work. Left in verify; ' +
116
+ 'filed as stranded if it stands for the stranded poll count. A shortfall ruling on those nodes, or a new delivery commit, moves it.');
117
+ declines.push(decline);
118
+ }
119
+ return declines;
120
+ }
121
+ //# sourceMappingURL=standing-approval-failed-verdict.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standing-approval-failed-verdict.js","sourceRoot":"","sources":["../../../src/completion/state-cascade/standing-approval-failed-verdict.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { FileEscalationIdempotentParams, FileEscalationIdempotentResult } from '../../supervision/escalation-suppression.js';
2
+ import { type StrandedFailedJudgment } from './failed-verdict-stranded-filing.js';
2
3
  /** Consecutive passes with the identical decline before the delivery is filed, and between asks after (~2.5 min at the 30s poll). */
3
4
  export declare const STANDING_APPROVAL_STRANDED_POLLS = 5;
4
5
  /** The filing's escalation_kind (see the module header for why this existing kind). */
@@ -6,13 +7,17 @@ export declare const STANDING_APPROVAL_STRANDED_KIND = "verify_gate_unclearable"
6
7
  /** metadata.diagnosis of the filing (its cause namespace). */
7
8
  export declare const STANDING_APPROVAL_STRANDED_DIAGNOSIS = "standing_approval_unconverged";
8
9
  /** Why a pass declined a delivery: the class decides whether it is ever filed. */
9
- export type StandingApprovalDeclineKind = 'census' | 'reconciler' | 'operator_hold' | 'external_hold' | 'shortfall_hold' | 'verdict' | 'read_failed';
10
+ export type StandingApprovalDeclineKind = 'census' | 'reconciler' | 'operator_hold' | 'external_hold' | 'shortfall_hold' | 'verdict' | 'read_failed' | 'failed_verdict';
10
11
  /** One decline a pass made. */
11
12
  export interface StandingApprovalDecline {
12
13
  deliveryId: string;
13
14
  deliveryName: string;
14
15
  kind: StandingApprovalDeclineKind;
15
16
  reason: string;
17
+ /** What the identical-poll streak compares; the reason when absent. */
18
+ signature?: string;
19
+ /** The failed verify judgment that holds it (a failed-verdict decline, or a failed one the pass could not examine). */
20
+ failed?: StrandedFailedJudgment;
16
21
  }
17
22
  /** The focus the filing is anchored under. */
18
23
  export interface StrandedFocus {
@@ -23,11 +28,19 @@ export interface StrandedFocus {
23
28
  }
24
29
  /** The idempotent filer (supervision/escalation-suppression.ts fileEscalationIdempotent in production). */
25
30
  export type StrandedEscalationFiler = (params: FileEscalationIdempotentParams) => Promise<FileEscalationIdempotentResult>;
26
- /** Test seam: forget every streak. */
31
+ /**
32
+ * Resolves the open rows carrying any of `causeKeys` on the focus and retires the
33
+ * keys where they were absorbed as symptoms; returns the count resolved
34
+ * (supervision/escalation-clearing.ts resolveOpenEscalationsOfCause in production).
35
+ */
36
+ export type StrandedEscalationResolver = (focusId: string, causeKeys: readonly string[], notes: string) => Promise<number>;
37
+ /** Test seam: forget every streak and every ask. */
27
38
  export declare function __resetStandingApprovalStrandedForTests(): void;
28
39
  /** The cause key: one filing per delivery per approved commit. Pure. */
29
40
  export declare function strandedCauseKey(deliveryId: string, approvedSha: string): string;
30
- /** The filing for one stranded delivery. Pure. */
41
+ /** Every stranded cause key a delivery can carry at an approved commit: the passed and the failed-verdict filing. Pure. */
42
+ export declare function strandedCauseKeys(deliveryId: string, approvedSha: string): string[];
43
+ /** The filing for one stranded delivery: the failed-verdict variant when a failed judgment holds it. Pure. */
31
44
  export declare function buildStrandedEscalation(focus: StrandedFocus, decline: StandingApprovalDecline, approvedSha: string, polls: number): FileEscalationIdempotentParams;
32
45
  /**
33
46
  * Record one pass's declines and ask the idempotent gate to file each delivery
@@ -36,4 +49,17 @@ export declare function buildStrandedEscalation(focus: StrandedFocus, decline: S
36
49
  * at: one not declined this pass loses its streak. Never throws.
37
50
  */
38
51
  export declare function reportStandingApprovalDeclines(focus: StrandedFocus, approvedSha: string | null, seen: readonly string[], declines: readonly StandingApprovalDecline[], file: StrandedEscalationFiler | undefined): Promise<string[]>;
52
+ /** The delivery fields the close half reads. */
53
+ export interface StrandedDeliveryState {
54
+ id: string;
55
+ name: string;
56
+ executionStatus: string | null;
57
+ }
58
+ /**
59
+ * The close half (module header): resolve the open stranded rows of every
60
+ * delivery whose stranding ended -- `converged` by this pass at `approvedSha`, or
61
+ * one the gate was asked about that now sits outside verify. A resolve that
62
+ * fails is retried on the next pass. Returns the count resolved. Never throws.
63
+ */
64
+ export declare function resolveClearedStrands(focus: StrandedFocus, deliveries: readonly StrandedDeliveryState[], converged: readonly string[], approvedSha: string | null, resolve: StrandedEscalationResolver | undefined): Promise<number>;
39
65
  //# sourceMappingURL=standing-approval-stranded.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"standing-approval-stranded.d.ts","sourceRoot":"","sources":["../../../src/completion/state-cascade/standing-approval-stranded.ts"],"names":[],"mappings":"AAmDA,OAAO,KAAK,EACV,8BAA8B,EAC9B,8BAA8B,EAC/B,MAAM,6CAA6C,CAAC;AAMrD,qIAAqI;AACrI,eAAO,MAAM,gCAAgC,IAAI,CAAC;AAElD,uFAAuF;AACvF,eAAO,MAAM,+BAA+B,4BAA4B,CAAC;AAEzE,8DAA8D;AAC9D,eAAO,MAAM,oCAAoC,kCAAmC,CAAC;AAErF,kFAAkF;AAClF,MAAM,MAAM,2BAA2B,GACnC,QAAQ,GAAG,YAAY,GAAG,eAAe,GAAG,eAAe,GAAG,gBAAgB,GAAG,SAAS,GAAG,aAAa,CAAC;AAK/G,+BAA+B;AAC/B,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,2BAA2B,CAAC;IAClC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,8CAA8C;AAC9C,MAAM,WAAW,aAAa;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,2GAA2G;AAC3G,MAAM,MAAM,uBAAuB,GAAG,CAAC,MAAM,EAAE,8BAA8B,KAAK,OAAO,CAAC,8BAA8B,CAAC,CAAC;AAO1H,sCAAsC;AACtC,wBAAgB,uCAAuC,IAAI,IAAI,CAE9D;AAED,wEAAwE;AACxE,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAEhF;AAED,kDAAkD;AAClD,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,uBAAuB,EAChC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,GACZ,8BAA8B,CAqChC;AAED;;;;;GAKG;AACH,wBAAsB,8BAA8B,CAClD,KAAK,EAAE,aAAa,EACpB,WAAW,EAAE,MAAM,GAAG,IAAI,EAC1B,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,QAAQ,EAAE,SAAS,uBAAuB,EAAE,EAC5C,IAAI,EAAE,uBAAuB,GAAG,SAAS,GACxC,OAAO,CAAC,MAAM,EAAE,CAAC,CAuBnB"}
1
+ {"version":3,"file":"standing-approval-stranded.d.ts","sourceRoot":"","sources":["../../../src/completion/state-cascade/standing-approval-stranded.ts"],"names":[],"mappings":"AAyEA,OAAO,KAAK,EACV,8BAA8B,EAC9B,8BAA8B,EAC/B,MAAM,6CAA6C,CAAC;AAMrD,OAAO,EAAgC,KAAK,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAKhH,qIAAqI;AACrI,eAAO,MAAM,gCAAgC,IAAI,CAAC;AAElD,uFAAuF;AACvF,eAAO,MAAM,+BAA+B,4BAA4B,CAAC;AAEzE,8DAA8D;AAC9D,eAAO,MAAM,oCAAoC,kCAAmC,CAAC;AAErF,kFAAkF;AAClF,MAAM,MAAM,2BAA2B,GACnC,QAAQ,GAAG,YAAY,GAAG,eAAe,GAAG,eAAe,GAAG,gBAAgB,GAAG,SAAS,GAAG,aAAa,GAAG,gBAAgB,CAAC;AAKlI,+BAA+B;AAC/B,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,2BAA2B,CAAC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uHAAuH;IACvH,MAAM,CAAC,EAAE,sBAAsB,CAAC;CACjC;AAED,8CAA8C;AAC9C,MAAM,WAAW,aAAa;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,2GAA2G;AAC3G,MAAM,MAAM,uBAAuB,GAAG,CAAC,MAAM,EAAE,8BAA8B,KAAK,OAAO,CAAC,8BAA8B,CAAC,CAAC;AAE1H;;;;GAIG;AACH,MAAM,MAAM,0BAA0B,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;AAU3H,oDAAoD;AACpD,wBAAgB,uCAAuC,IAAI,IAAI,CAG9D;AAED,wEAAwE;AACxE,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAEhF;AAED,2HAA2H;AAC3H,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAEnF;AAyCD,8GAA8G;AAC9G,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,uBAAuB,EAChC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,GACZ,8BAA8B,CAsChC;AAED;;;;;GAKG;AACH,wBAAsB,8BAA8B,CAClD,KAAK,EAAE,aAAa,EACpB,WAAW,EAAE,MAAM,GAAG,IAAI,EAC1B,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,QAAQ,EAAE,SAAS,uBAAuB,EAAE,EAC5C,IAAI,EAAE,uBAAuB,GAAG,SAAS,GACxC,OAAO,CAAC,MAAM,EAAE,CAAC,CAyBnB;AAED,gDAAgD;AAChD,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAUD;;;;;GAKG;AACH,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,aAAa,EACpB,UAAU,EAAE,SAAS,qBAAqB,EAAE,EAC5C,SAAS,EAAE,SAAS,MAAM,EAAE,EAC5B,WAAW,EAAE,MAAM,GAAG,IAAI,EAC1B,OAAO,EAAE,0BAA0B,GAAG,SAAS,GAC9C,OAAO,CAAC,MAAM,CAAC,CA2BjB"}