@telora/daemon 0.24.42 → 0.24.56

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 (359) hide show
  1. package/build-info.json +11 -3
  2. package/dist/completion/completion-event/unfinished-work.d.ts +3 -3
  3. package/dist/completion/review-cycle-budget/review-loop-detection.d.ts.map +1 -1
  4. package/dist/completion/review-cycle-budget/review-loop-detection.js +2 -1
  5. package/dist/completion/review-cycle-budget/review-loop-detection.js.map +1 -1
  6. package/dist/completion/review-exit-holds/review-exit-verdict-gate.d.ts +1 -1
  7. package/dist/completion/review-exit-holds/review-exit-verdict-gate.d.ts.map +1 -1
  8. package/dist/completion/review-exit-holds/review-exit-verdict-gate.js +2 -3
  9. package/dist/completion/review-exit-holds/review-exit-verdict-gate.js.map +1 -1
  10. package/dist/completion/state-cascade/focus-next-step-read.d.ts +38 -0
  11. package/dist/completion/state-cascade/focus-next-step-read.d.ts.map +1 -0
  12. package/dist/completion/state-cascade/focus-next-step-read.js +188 -0
  13. package/dist/completion/state-cascade/focus-next-step-read.js.map +1 -0
  14. package/dist/completion/state-cascade/review-request-gate.d.ts.map +1 -1
  15. package/dist/completion/state-cascade/review-request-gate.js +1 -0
  16. package/dist/completion/state-cascade/review-request-gate.js.map +1 -1
  17. package/dist/completion/state-cascade/review-request-next-step.d.ts +56 -0
  18. package/dist/completion/state-cascade/review-request-next-step.d.ts.map +1 -0
  19. package/dist/completion/state-cascade/review-request-next-step.js +47 -0
  20. package/dist/completion/state-cascade/review-request-next-step.js.map +1 -0
  21. package/dist/completion/state-cascade/review-verify-judgment-gate.d.ts +1 -1
  22. package/dist/completion/state-cascade/review-verify-judgment-gate.d.ts.map +1 -1
  23. package/dist/completion/state-cascade/review-verify-judgment-gate.js +1 -0
  24. package/dist/completion/state-cascade/review-verify-judgment-gate.js.map +1 -1
  25. package/dist/completion/state-cascade/state-cascade.d.ts +12 -7
  26. package/dist/completion/state-cascade/state-cascade.d.ts.map +1 -1
  27. package/dist/completion/state-cascade/state-cascade.js +36 -105
  28. package/dist/completion/state-cascade/state-cascade.js.map +1 -1
  29. package/dist/composition/commit-gate-context.d.ts.map +1 -1
  30. package/dist/composition/commit-gate-context.js +1 -0
  31. package/dist/composition/commit-gate-context.js.map +1 -1
  32. package/dist/composition/daemon-contexts.js +1 -1
  33. package/dist/composition/execution-migrations-context.d.ts.map +1 -1
  34. package/dist/composition/execution-migrations-context.js +3 -1
  35. package/dist/composition/execution-migrations-context.js.map +1 -1
  36. package/dist/composition/execution-process-context.js +1 -1
  37. package/dist/composition/execution-recovery-context.d.ts +4 -3
  38. package/dist/composition/execution-recovery-context.d.ts.map +1 -1
  39. package/dist/composition/execution-recovery-context.js +6 -3
  40. package/dist/composition/execution-recovery-context.js.map +1 -1
  41. package/dist/composition/execution-worktree-context.js +1 -1
  42. package/dist/composition/focus-next-step-context.d.ts +19 -0
  43. package/dist/composition/focus-next-step-context.d.ts.map +1 -0
  44. package/dist/composition/focus-next-step-context.js +51 -0
  45. package/dist/composition/focus-next-step-context.js.map +1 -0
  46. package/dist/composition/runtime-contexts.d.ts.map +1 -1
  47. package/dist/composition/runtime-contexts.js +6 -18
  48. package/dist/composition/runtime-contexts.js.map +1 -1
  49. package/dist/composition/runtime-poll-context.d.ts +8 -53
  50. package/dist/composition/runtime-poll-context.d.ts.map +1 -1
  51. package/dist/composition/runtime-poll-context.js +35 -94
  52. package/dist/composition/runtime-poll-context.js.map +1 -1
  53. package/dist/composition/runtime-prd-context.d.ts +8 -0
  54. package/dist/composition/runtime-prd-context.d.ts.map +1 -1
  55. package/dist/composition/runtime-prd-context.js +32 -0
  56. package/dist/composition/runtime-prd-context.js.map +1 -1
  57. package/dist/composition/runtime-spawn-pass-context.d.ts.map +1 -1
  58. package/dist/composition/runtime-spawn-pass-context.js +2 -3
  59. package/dist/composition/runtime-spawn-pass-context.js.map +1 -1
  60. package/dist/composition/state-cascade-context.d.ts +2 -0
  61. package/dist/composition/state-cascade-context.d.ts.map +1 -1
  62. package/dist/composition/state-cascade-context.js +9 -0
  63. package/dist/composition/state-cascade-context.js.map +1 -1
  64. package/dist/composition/verification-context.d.ts.map +1 -1
  65. package/dist/composition/verification-context.js +15 -3
  66. package/dist/composition/verification-context.js.map +1 -1
  67. package/dist/config/live-daemon-config.js +1 -1
  68. package/dist/daemon-state/branch-removal-record.d.ts +30 -0
  69. package/dist/daemon-state/branch-removal-record.d.ts.map +1 -0
  70. package/dist/daemon-state/branch-removal-record.js +103 -0
  71. package/dist/daemon-state/branch-removal-record.js.map +1 -0
  72. package/dist/delivery/advance-hold.d.ts +8 -19
  73. package/dist/delivery/advance-hold.d.ts.map +1 -1
  74. package/dist/delivery/advance-hold.js +11 -36
  75. package/dist/delivery/advance-hold.js.map +1 -1
  76. package/dist/delivery/commit-verdict-hold.d.ts +1 -1
  77. package/dist/delivery/commit-verdict-hold.js +1 -1
  78. package/dist/delivery/recorded-concerns.d.ts.map +1 -1
  79. package/dist/delivery/recorded-concerns.js +0 -2
  80. package/dist/delivery/recorded-concerns.js.map +1 -1
  81. package/dist/directive/directive-queue.d.ts +4 -16
  82. package/dist/directive/directive-queue.d.ts.map +1 -1
  83. package/dist/directive/directive-queue.js +5 -13
  84. package/dist/directive/directive-queue.js.map +1 -1
  85. package/dist/directive/phase-sync.d.ts +1 -1
  86. package/dist/directive/phase-sync.js +1 -1
  87. package/dist/focus/crash-recovery.d.ts +10 -32
  88. package/dist/focus/crash-recovery.d.ts.map +1 -1
  89. package/dist/focus/crash-recovery.js +55 -150
  90. package/dist/focus/crash-recovery.js.map +1 -1
  91. package/dist/focus/daemon-contexts-runtime.d.ts +3 -3
  92. package/dist/focus/daemon-contexts-runtime.d.ts.map +1 -1
  93. package/dist/focus/daemon-contexts.js +1 -1
  94. package/dist/focus/directive-executor.d.ts.map +1 -1
  95. package/dist/focus/directive-executor.js +3 -7
  96. package/dist/focus/directive-executor.js.map +1 -1
  97. package/dist/focus/failed-head-rework-start.d.ts +61 -0
  98. package/dist/focus/failed-head-rework-start.d.ts.map +1 -0
  99. package/dist/focus/failed-head-rework-start.js +52 -0
  100. package/dist/focus/failed-head-rework-start.js.map +1 -0
  101. package/dist/focus/focus-activity-record.d.ts +4 -2
  102. package/dist/focus/focus-activity-record.d.ts.map +1 -1
  103. package/dist/focus/focus-activity-record.js +4 -2
  104. package/dist/focus/focus-activity-record.js.map +1 -1
  105. package/dist/focus/focus-liveness-pass.d.ts +62 -0
  106. package/dist/focus/focus-liveness-pass.d.ts.map +1 -0
  107. package/dist/focus/focus-liveness-pass.js +197 -0
  108. package/dist/focus/focus-liveness-pass.js.map +1 -0
  109. package/dist/focus/focus-poller-spawn.js +1 -1
  110. package/dist/focus/focus-poller-state.js +1 -1
  111. package/dist/focus/live-branch-preservation.d.ts +123 -0
  112. package/dist/focus/live-branch-preservation.d.ts.map +1 -0
  113. package/dist/focus/live-branch-preservation.js +192 -0
  114. package/dist/focus/live-branch-preservation.js.map +1 -0
  115. package/dist/focus/migration-claim-pass.d.ts +2 -0
  116. package/dist/focus/migration-claim-pass.d.ts.map +1 -1
  117. package/dist/focus/migration-claim-pass.js +57 -22
  118. package/dist/focus/migration-claim-pass.js.map +1 -1
  119. package/dist/focus/migration-held-set-publish.d.ts +28 -2
  120. package/dist/focus/migration-held-set-publish.d.ts.map +1 -1
  121. package/dist/focus/migration-held-set-publish.js +14 -0
  122. package/dist/focus/migration-held-set-publish.js.map +1 -1
  123. package/dist/focus/pending-spawn-review-next-step.d.ts +5 -11
  124. package/dist/focus/pending-spawn-review-next-step.d.ts.map +1 -1
  125. package/dist/focus/pending-spawn-review-next-step.js +26 -72
  126. package/dist/focus/pending-spawn-review-next-step.js.map +1 -1
  127. package/dist/focus/review-refire-gate.d.ts +25 -0
  128. package/dist/focus/review-refire-gate.d.ts.map +1 -0
  129. package/dist/focus/review-refire-gate.js +68 -0
  130. package/dist/focus/review-refire-gate.js.map +1 -0
  131. package/dist/focus/verify-routing-passes.d.ts +8 -11
  132. package/dist/focus/verify-routing-passes.d.ts.map +1 -1
  133. package/dist/focus/verify-routing-passes.js +1 -2
  134. package/dist/focus/verify-routing-passes.js.map +1 -1
  135. package/dist/git/types.js +1 -1
  136. package/dist/prd/arm-refusal-streak.d.ts +102 -0
  137. package/dist/prd/arm-refusal-streak.d.ts.map +1 -0
  138. package/dist/prd/arm-refusal-streak.js +136 -0
  139. package/dist/prd/arm-refusal-streak.js.map +1 -0
  140. package/dist/prd/arm-refusal.d.ts.map +1 -1
  141. package/dist/prd/arm-refusal.js +7 -4
  142. package/dist/prd/arm-refusal.js.map +1 -1
  143. package/dist/prd/controller-shared.d.ts +47 -12
  144. package/dist/prd/controller-shared.d.ts.map +1 -1
  145. package/dist/prd/controller-shared.js +30 -19
  146. package/dist/prd/controller-shared.js.map +1 -1
  147. package/dist/prd/controller.d.ts.map +1 -1
  148. package/dist/prd/controller.js +3 -1
  149. package/dist/prd/controller.js.map +1 -1
  150. package/dist/prd/frontier-arming.d.ts +10 -2
  151. package/dist/prd/frontier-arming.d.ts.map +1 -1
  152. package/dist/prd/frontier-arming.js +91 -7
  153. package/dist/prd/frontier-arming.js.map +1 -1
  154. package/dist/prd/scoping-prompt.d.ts +8 -0
  155. package/dist/prd/scoping-prompt.d.ts.map +1 -1
  156. package/dist/prd/scoping-prompt.js +18 -0
  157. package/dist/prd/scoping-prompt.js.map +1 -1
  158. package/dist/prompt-sections/qa-failure-section.d.ts.map +1 -1
  159. package/dist/prompt-sections/qa-failure-section.js +3 -1
  160. package/dist/prompt-sections/qa-failure-section.js.map +1 -1
  161. package/dist/queries/api-client/shared.js +1 -1
  162. package/dist/queries/deliveries/deliveries.js +1 -1
  163. package/dist/queries/delivery-gate-state/delivery-gate-holds.d.ts +4 -3
  164. package/dist/queries/delivery-gate-state/delivery-gate-holds.d.ts.map +1 -1
  165. package/dist/queries/delivery-gate-state/delivery-gate-state.js +1 -1
  166. package/dist/queries/escalations/escalations.d.ts.map +1 -1
  167. package/dist/queries/escalations/escalations.js +0 -1
  168. package/dist/queries/escalations/escalations.js.map +1 -1
  169. package/dist/queries/escalations/incident-record.d.ts.map +1 -1
  170. package/dist/queries/escalations/incident-record.js +1 -0
  171. package/dist/queries/escalations/incident-record.js.map +1 -1
  172. package/dist/queries/focus-review/review-criterion-verdicts.d.ts.map +1 -1
  173. package/dist/queries/focus-review/review-criterion-verdicts.js +1 -0
  174. package/dist/queries/focus-review/review-criterion-verdicts.js.map +1 -1
  175. package/dist/queries/migrations/live-focus-branches.d.ts +23 -0
  176. package/dist/queries/migrations/live-focus-branches.d.ts.map +1 -1
  177. package/dist/queries/migrations/live-focus-branches.js +32 -1
  178. package/dist/queries/migrations/live-focus-branches.js.map +1 -1
  179. package/dist/queries/prd/prd.d.ts.map +1 -1
  180. package/dist/queries/prd/prd.js +1 -16
  181. package/dist/queries/prd/prd.js.map +1 -1
  182. package/dist/queries/qa-packets/focus-qa-failure.d.ts +18 -0
  183. package/dist/queries/qa-packets/focus-qa-failure.d.ts.map +1 -1
  184. package/dist/queries/qa-packets/focus-qa-failure.js +14 -1
  185. package/dist/queries/qa-packets/focus-qa-failure.js.map +1 -1
  186. package/dist/queries/tower/tower-state.d.ts +2 -0
  187. package/dist/queries/tower/tower-state.d.ts.map +1 -1
  188. package/dist/queries/tower/tower-state.js +6 -0
  189. package/dist/queries/tower/tower-state.js.map +1 -1
  190. package/dist/queries/tower-decisions/tower-decisions.d.ts.map +1 -1
  191. package/dist/queries/tower-decisions/tower-decisions.js +1 -0
  192. package/dist/queries/tower-decisions/tower-decisions.js.map +1 -1
  193. package/dist/queries/verification/verification.d.ts +10 -0
  194. package/dist/queries/verification/verification.d.ts.map +1 -1
  195. package/dist/queries/verification/verification.js +1 -1
  196. package/dist/queries/verification/verification.js.map +1 -1
  197. package/dist/supervision/escalation-suppression.js +1 -1
  198. package/dist/supervision/failed-head-rerun.d.ts +7 -0
  199. package/dist/supervision/failed-head-rerun.d.ts.map +1 -0
  200. package/dist/supervision/failed-head-rerun.js +41 -0
  201. package/dist/supervision/failed-head-rerun.js.map +1 -0
  202. package/dist/supervision/focus-delivery-aggregate-phase.js +1 -1
  203. package/dist/supervision/focus-delivery-aggregate-phase.js.map +1 -1
  204. package/dist/supervision/focus-liveness.d.ts +89 -0
  205. package/dist/supervision/focus-liveness.d.ts.map +1 -0
  206. package/dist/supervision/focus-liveness.js +94 -0
  207. package/dist/supervision/focus-liveness.js.map +1 -0
  208. package/dist/supervision/focus-next-step.d.ts +175 -0
  209. package/dist/supervision/focus-next-step.d.ts.map +1 -0
  210. package/dist/supervision/focus-next-step.js +129 -0
  211. package/dist/supervision/focus-next-step.js.map +1 -0
  212. package/dist/supervision/prd-frontier-rule.d.ts +52 -0
  213. package/dist/supervision/prd-frontier-rule.d.ts.map +1 -0
  214. package/dist/supervision/prd-frontier-rule.js +51 -0
  215. package/dist/supervision/prd-frontier-rule.js.map +1 -0
  216. package/dist/supervision/prt-frontier.d.ts +22 -7
  217. package/dist/supervision/prt-frontier.d.ts.map +1 -1
  218. package/dist/supervision/prt-frontier.js +17 -7
  219. package/dist/supervision/prt-frontier.js.map +1 -1
  220. package/dist/supervision/review-loop-detector.d.ts.map +1 -1
  221. package/dist/supervision/review-loop-detector.js +2 -1
  222. package/dist/supervision/review-loop-detector.js.map +1 -1
  223. package/dist/supervision/spawn-cooldown.js +1 -1
  224. package/dist/supervision/stop-registry.d.ts +1 -0
  225. package/dist/supervision/stop-registry.d.ts.map +1 -1
  226. package/dist/supervision/stop-rows-focus-health.d.ts +14 -0
  227. package/dist/supervision/stop-rows-focus-health.d.ts.map +1 -1
  228. package/dist/supervision/stop-rows-focus-health.js +32 -0
  229. package/dist/supervision/stop-rows-focus-health.js.map +1 -1
  230. package/dist/supervision/stop-rows-spawn.d.ts +3 -2
  231. package/dist/supervision/stop-rows-spawn.d.ts.map +1 -1
  232. package/dist/supervision/stop-rows-spawn.js +9 -6
  233. package/dist/supervision/stop-rows-spawn.js.map +1 -1
  234. package/dist/supervision/team-work.js +1 -1
  235. package/dist/supervision/team-work.js.map +1 -1
  236. package/dist/testing/fixtures/api-client.js +1 -1
  237. package/dist/testing/fixtures/index.js +1 -1
  238. package/dist/testing/fixtures/migration-namespace-repo.d.ts.map +1 -1
  239. package/dist/testing/fixtures/migration-namespace-repo.js +1 -0
  240. package/dist/testing/fixtures/migration-namespace-repo.js.map +1 -1
  241. package/dist/testing/fixtures/pending-spawn-world.d.ts +24 -0
  242. package/dist/testing/fixtures/pending-spawn-world.d.ts.map +1 -1
  243. package/dist/testing/fixtures/pending-spawn-world.js +46 -19
  244. package/dist/testing/fixtures/pending-spawn-world.js.map +1 -1
  245. package/dist/testing/fixtures/recording-api-client.js +1 -1
  246. package/dist/testing/fixtures/verification-deps.d.ts +27 -0
  247. package/dist/testing/fixtures/verification-deps.d.ts.map +1 -1
  248. package/dist/testing/fixtures/verification-deps.js +77 -1
  249. package/dist/testing/fixtures/verification-deps.js.map +1 -1
  250. package/dist/testing/fixtures/vitest-failure-log.d.ts.map +1 -1
  251. package/dist/testing/fixtures/vitest-failure-log.js +1 -0
  252. package/dist/testing/fixtures/vitest-failure-log.js.map +1 -1
  253. package/dist/tower/focus-landed.d.ts +32 -1
  254. package/dist/tower/focus-landed.d.ts.map +1 -1
  255. package/dist/tower/focus-landed.js +67 -12
  256. package/dist/tower/focus-landed.js.map +1 -1
  257. package/dist/tower/tower-graph.d.ts +6 -2
  258. package/dist/tower/tower-graph.d.ts.map +1 -1
  259. package/dist/tower/tower-graph.js +8 -5
  260. package/dist/tower/tower-graph.js.map +1 -1
  261. package/dist/tower/tower-supervisor-history.d.ts.map +1 -1
  262. package/dist/tower/tower-supervisor-history.js +2 -1
  263. package/dist/tower/tower-supervisor-history.js.map +1 -1
  264. package/dist/tower/tower-supervisor-prompt.d.ts.map +1 -1
  265. package/dist/tower/tower-supervisor-prompt.js +40 -8
  266. package/dist/tower/tower-supervisor-prompt.js.map +1 -1
  267. package/dist/tower/tower-supervisor-session.d.ts.map +1 -1
  268. package/dist/tower/tower-supervisor-session.js +1 -0
  269. package/dist/tower/tower-supervisor-session.js.map +1 -1
  270. package/dist/tower/tower-verdicts.d.ts.map +1 -1
  271. package/dist/tower/tower-verdicts.js +2 -1
  272. package/dist/tower/tower-verdicts.js.map +1 -1
  273. package/dist/types/issue-status.d.ts.map +1 -1
  274. package/dist/types/issue-status.js +6 -1
  275. package/dist/types/issue-status.js.map +1 -1
  276. package/dist/verify/attribution/code-failure-evidence.d.ts +77 -0
  277. package/dist/verify/attribution/code-failure-evidence.d.ts.map +1 -0
  278. package/dist/verify/attribution/code-failure-evidence.js +92 -0
  279. package/dist/verify/attribution/code-failure-evidence.js.map +1 -0
  280. package/dist/verify/attribution/verification-attribution.d.ts +18 -0
  281. package/dist/verify/attribution/verification-attribution.d.ts.map +1 -1
  282. package/dist/verify/attribution/verification-attribution.js +49 -2
  283. package/dist/verify/attribution/verification-attribution.js.map +1 -1
  284. package/dist/verify/attribution/verification-baseline.d.ts.map +1 -1
  285. package/dist/verify/attribution/verification-baseline.js +1 -0
  286. package/dist/verify/attribution/verification-baseline.js.map +1 -1
  287. package/dist/verify/attribution/verification-diagnostics.d.ts +10 -0
  288. package/dist/verify/attribution/verification-diagnostics.d.ts.map +1 -1
  289. package/dist/verify/attribution/verification-diagnostics.js +39 -10
  290. package/dist/verify/attribution/verification-diagnostics.js.map +1 -1
  291. package/dist/verify/deterministic-gate/verification-deterministic.d.ts +19 -0
  292. package/dist/verify/deterministic-gate/verification-deterministic.d.ts.map +1 -1
  293. package/dist/verify/deterministic-gate/verification-deterministic.js +1 -1
  294. package/dist/verify/deterministic-gate/verification-deterministic.js.map +1 -1
  295. package/dist/verify/engine/verification-commit-sharing.d.ts.map +1 -1
  296. package/dist/verify/engine/verification-commit-sharing.js +36 -4
  297. package/dist/verify/engine/verification-commit-sharing.js.map +1 -1
  298. package/dist/verify/engine/verification-deps.d.ts +7 -0
  299. package/dist/verify/engine/verification-deps.d.ts.map +1 -1
  300. package/dist/verify/engine/verification-engine.d.ts.map +1 -1
  301. package/dist/verify/engine/verification-engine.js +6 -3
  302. package/dist/verify/engine/verification-engine.js.map +1 -1
  303. package/dist/verify/escaped-tests/escaped-test-run.d.ts +5 -1
  304. package/dist/verify/escaped-tests/escaped-test-run.d.ts.map +1 -1
  305. package/dist/verify/escaped-tests/escaped-test-run.js +24 -2
  306. package/dist/verify/escaped-tests/escaped-test-run.js.map +1 -1
  307. package/dist/verify/failing-test-rerun/failing-test-retry.d.ts +4 -1
  308. package/dist/verify/failing-test-rerun/failing-test-retry.d.ts.map +1 -1
  309. package/dist/verify/failing-test-rerun/failing-test-retry.js.map +1 -1
  310. package/dist/verify/gate-verdicts/commit-verdict-record.js +1 -1
  311. package/dist/verify/gate-verdicts/commit-verdict-record.js.map +1 -1
  312. package/dist/verify/gate-verdicts/no-verdict-record.d.ts +27 -3
  313. package/dist/verify/gate-verdicts/no-verdict-record.d.ts.map +1 -1
  314. package/dist/verify/gate-verdicts/no-verdict-record.js +36 -6
  315. package/dist/verify/gate-verdicts/no-verdict-record.js.map +1 -1
  316. package/dist/verify/outcome-routing/verification-rework-issue.d.ts.map +1 -1
  317. package/dist/verify/outcome-routing/verification-rework-issue.js +5 -4
  318. package/dist/verify/outcome-routing/verification-rework-issue.js.map +1 -1
  319. package/dist/verify/run-selection/default-on-guards.d.ts +15 -4
  320. package/dist/verify/run-selection/default-on-guards.d.ts.map +1 -1
  321. package/dist/verify/run-selection/default-on-guards.js +14 -4
  322. package/dist/verify/run-selection/default-on-guards.js.map +1 -1
  323. package/dist/verify/run-selection/explicit-next-step-gate.d.ts +39 -0
  324. package/dist/verify/run-selection/explicit-next-step-gate.d.ts.map +1 -0
  325. package/dist/verify/run-selection/explicit-next-step-gate.js +70 -0
  326. package/dist/verify/run-selection/explicit-next-step-gate.js.map +1 -0
  327. package/dist/verify/run-selection/pre-review-gate-dispatch.d.ts +0 -9
  328. package/dist/verify/run-selection/pre-review-gate-dispatch.d.ts.map +1 -1
  329. package/dist/verify/run-selection/pre-review-gate-dispatch.js +21 -62
  330. package/dist/verify/run-selection/pre-review-gate-dispatch.js.map +1 -1
  331. package/dist/verify/run-selection/reselection-log-line.d.ts +1 -1
  332. package/dist/verify/run-selection/reselection-log-line.d.ts.map +1 -1
  333. package/dist/verify/run-selection/reselection-log-line.js +2 -0
  334. package/dist/verify/run-selection/reselection-log-line.js.map +1 -1
  335. package/dist/verify/run-selection/verification-default-on.d.ts +32 -4
  336. package/dist/verify/run-selection/verification-default-on.d.ts.map +1 -1
  337. package/dist/verify/run-selection/verification-default-on.js +83 -19
  338. package/dist/verify/run-selection/verification-default-on.js.map +1 -1
  339. package/dist/verify/shortfalls/shortfall-park.js +1 -1
  340. package/dist/worktree/focus-worktree-state.js +1 -1
  341. package/dist/worktree/focus-worktree-state.js.map +1 -1
  342. package/docs/runbook-tower.md +26 -5
  343. package/package.json +3 -3
  344. package/dist/completion/state-cascade/review-next-step.d.ts +0 -107
  345. package/dist/completion/state-cascade/review-next-step.d.ts.map +0 -1
  346. package/dist/completion/state-cascade/review-next-step.js +0 -90
  347. package/dist/completion/state-cascade/review-next-step.js.map +0 -1
  348. package/dist/focus/failed-head-wedge.d.ts +0 -124
  349. package/dist/focus/failed-head-wedge.d.ts.map +0 -1
  350. package/dist/focus/failed-head-wedge.js +0 -120
  351. package/dist/focus/failed-head-wedge.js.map +0 -1
  352. package/dist/focus/stranded-review-reroute.d.ts +0 -70
  353. package/dist/focus/stranded-review-reroute.d.ts.map +0 -1
  354. package/dist/focus/stranded-review-reroute.js +0 -193
  355. package/dist/focus/stranded-review-reroute.js.map +0 -1
  356. package/dist/focus/uncommitted-work-backstop.d.ts +0 -115
  357. package/dist/focus/uncommitted-work-backstop.d.ts.map +0 -1
  358. package/dist/focus/uncommitted-work-backstop.js +0 -259
  359. package/dist/focus/uncommitted-work-backstop.js.map +0 -1
@@ -0,0 +1,68 @@
1
+ // PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
2
+ // Pinned by: packages/daemon/src/focus/focus-liveness-pass.test.ts,
3
+ // packages/daemon/src/focus/held-review-window-not-stranded.test.ts,
4
+ // packages/daemon/src/focus/stranded-review-refire-bound.test.ts,
5
+ // packages/daemon/src/integration/failed-verdict-review-exit-respawn-regression.test.ts,
6
+ // packages/daemon/src/integration/failed-verdict-review-loop-regression.test.ts
7
+ // PINNED-BY-END
8
+ /**
9
+ * Whether the stranded-review re-fire queues the review directive again for a
10
+ * focus whose review stage was already processed (focus/directive-executor.ts
11
+ * checkDirectives).
12
+ *
13
+ * The re-fire recovers a review a crash or teardown dropped: a window open, no
14
+ * team. It re-fires only when, in order:
15
+ * 1. the pure rule holds (directive/phase-sync.ts shouldRefireStrandedReview):
16
+ * a review stage, a window, no live team, no operator stop, and no gate
17
+ * verdict the window is HELD for -- read here, fail closed: an unreadable
18
+ * hold reads held, so the release pass (commit-verdict-release.ts) routes it;
19
+ * 2. the liveness detector has not reported this focus stalled
20
+ * (supervision/focus-liveness.ts): a review that started LIVENESS_STALL_STARTS
21
+ * times on an unchanged (HEAD, window) without moving the focus is not queued
22
+ * again -- its observation is the route, and a new commit, step or window
23
+ * starts over;
24
+ * 3. the focus's ONE next step (supervision/focus-next-step.ts) is a review: a
25
+ * failed gate at HEAD is its coding team's rework, a verdict still owed is a
26
+ * gate run -- re-queueing the review there would re-judge a commit nothing
27
+ * changed.
28
+ *
29
+ * @module focus/review-refire-gate
30
+ */
31
+ import { shouldRefireStrandedReview } from '../directive/phase-sync.js';
32
+ import { commitVerdictHeldDeliveryIds } from '../delivery/commit-verdict-hold.js';
33
+ import { focusLivenessStalled } from '../supervision/focus-liveness.js';
34
+ import { createLogger } from '../log/daemon-log.js';
35
+ const log = createLogger({ module: 'directive-executor' });
36
+ /**
37
+ * The gate-verdict hold read, tri-state: 'held' when some verify delivery carries
38
+ * the commit-verdict hold marker the review exit wrote (delivery/commit-verdict-hold.ts),
39
+ * 'clear' when the deliveries read and none does, 'unreadable' when the read failed.
40
+ */
41
+ export async function readReviewWindowGateHold(focus, deps) {
42
+ try {
43
+ return commitVerdictHeldDeliveryIds(await deps.getFocusDeliveries(focus.focus_id)).size > 0 ? 'held' : 'clear';
44
+ }
45
+ catch (err) {
46
+ log.debug(`[directive-executor] gate-verdict hold unreadable for "${focus.focus_name}": ${err.message}`);
47
+ return 'unreadable';
48
+ }
49
+ }
50
+ /** True = re-fire the review directive (module header). Never throws. */
51
+ export async function reviewMayRefire(focus, stageName, hasActiveTeam, deps) {
52
+ const rule = shouldRefireStrandedReview({
53
+ stageName,
54
+ reviewRequestedAt: focus.review_requested_at,
55
+ hasActiveTeam,
56
+ operatorStopped: !!focus.operator_stopped_at,
57
+ awaitingGateVerdict: (await readReviewWindowGateHold(focus, deps)) !== 'clear',
58
+ });
59
+ if (!rule)
60
+ return false;
61
+ if (focusLivenessStalled(focus.focus_id)) {
62
+ log.info(`[directive-executor] Not re-firing the review for "${focus.focus_name}": the liveness detector reported it stalled on this HEAD and window`);
63
+ return false;
64
+ }
65
+ const read = await deps.readNextStep(focus).catch(() => null);
66
+ return read?.readable === true && read.next.step === 'review';
67
+ }
68
+ //# sourceMappingURL=review-refire-gate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-refire-gate.js","sourceRoot":"","sources":["../../src/focus/review-refire-gate.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,oEAAoE;AACpE,uEAAuE;AACvE,oEAAoE;AACpE,2FAA2F;AAC3F,kFAAkF;AAClF,gBAAgB;AAEhB;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,EAAE,4BAA4B,EAAE,MAAM,oCAAoC,CAAC;AAClF,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAExE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,MAAM,GAAG,GAAG,YAAY,CAAC,EAAE,MAAM,EAAE,oBAAoB,EAAE,CAAC,CAAC;AAe3D;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,KAAyD,EACzD,IAAkD;IAElD,IAAI,CAAC;QACH,OAAO,4BAA4B,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;IACjH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,KAAK,CAAC,0DAA0D,KAAK,CAAC,UAAU,MAAO,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QACpH,OAAO,YAAY,CAAC;IACtB,CAAC;AACH,CAAC;AAED,yEAAyE;AACzE,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,KAAwB,EACxB,SAA6B,EAC7B,aAAsB,EACtB,IAAsB;IAEtB,MAAM,IAAI,GAAG,0BAA0B,CAAC;QACtC,SAAS;QACT,iBAAiB,EAAE,KAAK,CAAC,mBAAmB;QAC5C,aAAa;QACb,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB;QAC5C,mBAAmB,EAAE,CAAC,MAAM,wBAAwB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,OAAO;KAC/E,CAAC,CAAC;IACH,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxB,IAAI,oBAAoB,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzC,GAAG,CAAC,IAAI,CAAC,sDAAsD,KAAK,CAAC,UAAU,sEAAsE,CAAC,CAAC;QACvJ,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAC9D,OAAO,IAAI,EAAE,QAAQ,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC;AAChE,CAAC"}
@@ -7,15 +7,13 @@
7
7
  * 2. releaseCommitVerdictHolds: a review exit held on its commit's gate verdict
8
8
  * is replayed once that verdict lands (held re-work: once the run is over),
9
9
  * or its held evidence is dropped when HEAD moved;
10
- * 3. fileReworkForFailedHeadWedges: an armed focus left with a FAILED gate
11
- * verdict at its head and nothing to run (no review window, no owed work, no
12
- * live team) gets the rework Bug for it (focus/failed-head-wedge.ts). It runs
13
- * after the release pass, so a held exit the release routes this poll is
14
- * never read as a wedge;
15
- * 4. recoverUncommittedWork: an armed focus left with uncommitted work in its
16
- * worktree and no live team gets one coding respawn to finish it, then a
17
- * worktree-dirty record naming the paths (focus/uncommitted-work-backstop.ts);
18
- * 5. reopenFalsifiedDoneDeliveries: a done delivery carrying an open Bug that
10
+ * 3. detectFocusLivenessStalls: an armed focus whose one next step names an
11
+ * actor that does not move it -- a coding team, a gate run, a review -- gets
12
+ * a coding respawn when that actor is a coding team that never started, and
13
+ * ONE agent-resolvable observation at the stall (focus/focus-liveness-pass.ts).
14
+ * It runs after the release pass, so a held exit the release routes this poll
15
+ * is never read as a stall;
16
+ * 4. reopenFalsifiedDoneDeliveries: a done delivery carrying an open Bug that
19
17
  * names the met effects it falsifies re-opens to verify_failed -- verify
20
18
  * was wrong (verify/outcome-routing/falsified-effect-reopen.ts).
21
19
  *
@@ -36,8 +34,7 @@ import type { DaemonConfig } from '../types/index.js';
36
34
  export interface VerifyRoutingPasses {
37
35
  checkVerifyDeliveriesForOpenIssues: (config: DaemonConfig) => Promise<void>;
38
36
  releaseCommitVerdictHolds: (config: DaemonConfig) => Promise<unknown>;
39
- fileReworkForFailedHeadWedges: (config: DaemonConfig) => Promise<unknown>;
40
- recoverUncommittedWork: (config: DaemonConfig) => Promise<unknown>;
37
+ detectFocusLivenessStalls: (config: DaemonConfig) => Promise<unknown>;
41
38
  reopenFalsifiedDoneDeliveries: (config: DaemonConfig) => Promise<unknown>;
42
39
  }
43
40
  /** Run the verify-routing phase for one product-scoped config, over the given passes. */
@@ -1 +1 @@
1
- {"version":3,"file":"verify-routing-passes.d.ts","sourceRoot":"","sources":["../../src/focus/verify-routing-passes.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,2CAA2C;AAC3C,MAAM,WAAW,mBAAmB;IAClC,kCAAkC,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5E,yBAAyB,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACtE,6BAA6B,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1E,sBAAsB,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACnE,6BAA6B,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC3E;AAED,yFAAyF;AACzF,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAMf"}
1
+ {"version":3,"file":"verify-routing-passes.d.ts","sourceRoot":"","sources":["../../src/focus/verify-routing-passes.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,2CAA2C;AAC3C,MAAM,WAAW,mBAAmB;IAClC,kCAAkC,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5E,yBAAyB,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACtE,yBAAyB,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACtE,6BAA6B,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC3E;AAED,yFAAyF;AACzF,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAKf"}
@@ -7,8 +7,7 @@
7
7
  export async function runVerifyRoutingPasses(config, passes) {
8
8
  await passes.checkVerifyDeliveriesForOpenIssues(config);
9
9
  await passes.releaseCommitVerdictHolds(config);
10
- await passes.fileReworkForFailedHeadWedges(config);
11
- await passes.recoverUncommittedWork(config);
10
+ await passes.detectFocusLivenessStalls(config);
12
11
  await passes.reopenFalsifiedDoneDeliveries(config);
13
12
  }
14
13
  //# sourceMappingURL=verify-routing-passes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"verify-routing-passes.js","sourceRoot":"","sources":["../../src/focus/verify-routing-passes.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,0EAA0E;AAC1E,6DAA6D;AAC7D,0EAA0E;AAC1E,gBAAgB;AA+ChB,yFAAyF;AACzF,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,MAAoB,EACpB,MAA2B;IAE3B,MAAM,MAAM,CAAC,kCAAkC,CAAC,MAAM,CAAC,CAAC;IACxD,MAAM,MAAM,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,MAAM,CAAC,6BAA6B,CAAC,MAAM,CAAC,CAAC;IACnD,MAAM,MAAM,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAC5C,MAAM,MAAM,CAAC,6BAA6B,CAAC,MAAM,CAAC,CAAC;AACrD,CAAC"}
1
+ {"version":3,"file":"verify-routing-passes.js","sourceRoot":"","sources":["../../src/focus/verify-routing-passes.ts"],"names":[],"mappings":"AAAA,8FAA8F;AAC9F,0EAA0E;AAC1E,6DAA6D;AAC7D,0EAA0E;AAC1E,gBAAgB;AA4ChB,yFAAyF;AACzF,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,MAAoB,EACpB,MAA2B;IAE3B,MAAM,MAAM,CAAC,kCAAkC,CAAC,MAAM,CAAC,CAAC;IACxD,MAAM,MAAM,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,MAAM,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,MAAM,CAAC,6BAA6B,CAAC,MAAM,CAAC,CAAC;AACrD,CAAC"}
package/dist/git/types.js CHANGED
@@ -1,5 +1,5 @@
1
1
  // PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
2
- // Pinned by: 22 tests -- run: npm run gen:pinned-by -- --list packages/daemon/src/git/types.ts
2
+ // Pinned by: 23 tests -- run: npm run gen:pinned-by -- --list packages/daemon/src/git/types.ts
3
3
  // PINNED-BY-END
4
4
  /**
5
5
  * Shared types and utilities for the git subsystem.
@@ -0,0 +1,102 @@
1
+ /**
2
+ * A refused frontier arm that no scoping agent can fix reaches the machine lane.
3
+ *
4
+ * WHY IT EXISTS. The frontier records every refused arm on the focus Debug tab
5
+ * (./arm-refusal.ts) and retries it each tick. That is enough for the refusal
6
+ * the record was written for -- `arm_criteria_required`, fixed by the tree
7
+ * restatement the re-spawned scoping agent writes. It is not enough for the
8
+ * rest: `prd_member_focus` from a daemon older than the refusal, a
9
+ * `daemon_credential_required`, a frontier-rule disagreement answered as a
10
+ * `state_conflict`, an opaque `backend_error`. No agent the frontier spawns can
11
+ * fix those, so without this a refused arm waits on the Debug tab until someone
12
+ * reads it. History: docs/daemon/history-platform.md (prd/arm-refusal-streak.ts).
13
+ *
14
+ * WHAT IT DOES. Per focus it counts consecutive refused arms carrying the SAME
15
+ * refusal code, with no successful arm between them. A different code starts a
16
+ * new streak; a successful arm ends it. When a streak of any code other than
17
+ * `arm_criteria_required` reaches the bound it files ONE agent_resolvable
18
+ * observation, cause-keyed on (focus, code) through the cause-keyed filer, so a
19
+ * re-observation while it is open is suppressed. It reads the filer's result:
20
+ * only a filing that left the observation on record (`observationRecorded`)
21
+ * ends the attempts -- a filing the server refused is re-sent, unchanged, on
22
+ * every later refusal until one is recorded. It names the focus, the PRD,
23
+ * the refusal code and the daemon version. A successful arm resolves any
24
+ * observation this process filed for the focus. The Debug-tab record is
25
+ * untouched: this is added beside it, not instead of it.
26
+ *
27
+ * A daemon restart forgets the counts (the streak is re-earned, and the
28
+ * cause-keyed filer suppresses a second row while the first is open).
29
+ *
30
+ * NEVER THROWS into the tick: a filing, list or resolve failure is logged and
31
+ * retried on the next report. Production I/O is bound at the composition root
32
+ * (composition/runtime-prd-context.ts).
33
+ *
34
+ * @module prd/arm-refusal-streak
35
+ */
36
+ import type { IncidentRow } from '../queries/escalations/incident-record.js';
37
+ import type { FileEscalationIdempotentParams, FileEscalationIdempotentResult } from '../supervision/escalation-suppression.js';
38
+ import { type ArmFailure } from './arm-refusal.js';
39
+ /** Consecutive refused arms of one code, with no success between, that file the observation. */
40
+ export declare const ARM_REFUSAL_OBSERVATION_THRESHOLD = 5;
41
+ /** The cause-key kind every frontier arm-refusal observation carries. */
42
+ export declare const ARM_REFUSAL_CAUSE_KIND = "prd_frontier_arm_refused";
43
+ /** The code a refusal that carried none is counted under. */
44
+ export declare const UNCODED_REFUSAL = "uncoded";
45
+ /** One refused frontier arm, as the streak counts it. */
46
+ export interface RefusedArm {
47
+ focusId: string;
48
+ /** The overcome node whose focus this is. */
49
+ nodeId: string;
50
+ prdId: string;
51
+ prdTitle: string;
52
+ /** The PRD's product, stamped as the observation's provenance. */
53
+ productId: string | null;
54
+ failure: ArmFailure;
55
+ }
56
+ /** What the frontier reports about each arm it attempts. */
57
+ export interface ArmRefusalStreakReporter {
58
+ recordRefusal(arm: RefusedArm): Promise<void>;
59
+ recordSuccess(focusId: string): Promise<void>;
60
+ }
61
+ /** The tracker's I/O and bound, all required (production: composition/runtime-prd-context.ts). */
62
+ export interface ArmRefusalStreakDeps {
63
+ fileObservation: (params: FileEscalationIdempotentParams) => Promise<FileEscalationIdempotentResult>;
64
+ listOpenEscalations: () => Promise<IncidentRow[]>;
65
+ resolveEscalation: (escalationId: string, notes: string) => Promise<void>;
66
+ organizationId: () => string | Promise<string>;
67
+ /** The running daemon's version -- the fact an operator needs for a deploy-order refusal. */
68
+ daemonVersion: () => string;
69
+ threshold: number;
70
+ }
71
+ /** The refusal code a failure is counted under. */
72
+ export declare function refusalCodeOf(failure: ArmFailure): string;
73
+ /** Does a streak of this code ever file? The criteria refusal is the scoping agent's to fix. */
74
+ export declare function refusalCodeFiles(code: string): boolean;
75
+ /** The cause key of the observation for one (focus, refusal code). */
76
+ export declare function armRefusalCauseKey(focusId: string, code: string): string;
77
+ /**
78
+ * Did this filing leave the observation on record? A new row, a correlation
79
+ * onto an open incident row, or an open/dismissed row of the same cause key that
80
+ * suppressed it all do. A filing the server REFUSED did not -- whether or not its
81
+ * refusal record landed -- nor did one that reports nothing at all, so the
82
+ * streak keeps retrying it.
83
+ */
84
+ export declare function observationRecorded(result: FileEscalationIdempotentResult): boolean;
85
+ export declare class ArmRefusalStreakTracker implements ArmRefusalStreakReporter {
86
+ private readonly io;
87
+ private readonly streaks;
88
+ /** Cause keys this process recorded per focus, resolved on the focus's next successful arm. */
89
+ private readonly filedKeys;
90
+ constructor(io: ArmRefusalStreakDeps);
91
+ /** The current streak for a focus (read-only view, for tests and logs). */
92
+ streakOf(focusId: string): {
93
+ code: string;
94
+ consecutive: number;
95
+ recorded: boolean;
96
+ } | null;
97
+ recordRefusal(arm: RefusedArm): Promise<void>;
98
+ recordSuccess(focusId: string): Promise<void>;
99
+ }
100
+ /** The observation for one streak. PURE. */
101
+ export declare function buildObservation(arm: RefusedArm, code: string, causeKey: string, consecutive: number, daemonVersion: string, organizationId: string): FileEscalationIdempotentParams;
102
+ //# sourceMappingURL=arm-refusal-streak.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arm-refusal-streak.d.ts","sourceRoot":"","sources":["../../src/prd/arm-refusal-streak.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,136 @@
1
+ // PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
2
+ // Pinned by: packages/daemon/src/prd/prd-frontier-arm-refusal-streak.test.ts
3
+ // PINNED-BY-END
4
+ import { DISPOSITION_AGENT_RESOLVABLE } from '../queries/escalations/escalation-dispositions.js';
5
+ import { computeCauseKey } from '../queries/escalations/cause-key.js';
6
+ import { createLogger } from '../log/daemon-log.js';
7
+ import { ARM_CRITERIA_REQUIRED_CODE } from './arm-refusal.js';
8
+ const log = createLogger({ module: 'prd-controller' });
9
+ /** Consecutive refused arms of one code, with no success between, that file the observation. */
10
+ export const ARM_REFUSAL_OBSERVATION_THRESHOLD = 5;
11
+ /** The cause-key kind every frontier arm-refusal observation carries. */
12
+ export const ARM_REFUSAL_CAUSE_KIND = 'prd_frontier_arm_refused';
13
+ /** The code a refusal that carried none is counted under. */
14
+ export const UNCODED_REFUSAL = 'uncoded';
15
+ /** Longest refusal text carried into the observation. */
16
+ const MAX_REFUSAL_DETAIL = 1000;
17
+ /** The refusal code a failure is counted under. */
18
+ export function refusalCodeOf(failure) {
19
+ return failure.code ?? UNCODED_REFUSAL;
20
+ }
21
+ /** Does a streak of this code ever file? The criteria refusal is the scoping agent's to fix. */
22
+ export function refusalCodeFiles(code) {
23
+ return code !== ARM_CRITERIA_REQUIRED_CODE;
24
+ }
25
+ /** The cause key of the observation for one (focus, refusal code). */
26
+ export function armRefusalCauseKey(focusId, code) {
27
+ return computeCauseKey(ARM_REFUSAL_CAUSE_KIND, { focus_id: focusId, refusal_code: code });
28
+ }
29
+ /**
30
+ * Did this filing leave the observation on record? A new row, a correlation
31
+ * onto an open incident row, or an open/dismissed row of the same cause key that
32
+ * suppressed it all do. A filing the server REFUSED did not -- whether or not its
33
+ * refusal record landed -- nor did one that reports nothing at all, so the
34
+ * streak keeps retrying it.
35
+ */
36
+ export function observationRecorded(result) {
37
+ if (result.refused === true)
38
+ return false;
39
+ return result.filed || result.suppressed || result.correlated === true;
40
+ }
41
+ export class ArmRefusalStreakTracker {
42
+ io;
43
+ streaks = new Map();
44
+ /** Cause keys this process recorded per focus, resolved on the focus's next successful arm. */
45
+ filedKeys = new Map();
46
+ constructor(io) {
47
+ this.io = io;
48
+ }
49
+ /** The current streak for a focus (read-only view, for tests and logs). */
50
+ streakOf(focusId) {
51
+ const s = this.streaks.get(focusId);
52
+ return s ? { code: s.code, consecutive: s.consecutive, recorded: s.recorded } : null;
53
+ }
54
+ async recordRefusal(arm) {
55
+ const code = refusalCodeOf(arm.failure);
56
+ let streak = this.streaks.get(arm.focusId);
57
+ if (!streak || streak.code !== code) {
58
+ streak = { code, consecutive: 0, recorded: false, pending: null };
59
+ this.streaks.set(arm.focusId, streak);
60
+ }
61
+ streak.consecutive += 1;
62
+ if (!refusalCodeFiles(code) || streak.recorded || streak.consecutive < this.io.threshold)
63
+ return;
64
+ try {
65
+ const key = armRefusalCauseKey(arm.focusId, code);
66
+ streak.pending ??= buildObservation(arm, code, key, streak.consecutive, this.io.daemonVersion(), await this.io.organizationId());
67
+ const result = await this.io.fileObservation(streak.pending);
68
+ if (!observationRecorded(result)) {
69
+ log.warn(`[prd-controller] the refused-arm observation for focus ${arm.focusId} [${code}] was not recorded ` +
70
+ `(${result.refused === true ? 'the server refused the filing' : 'no row was written'}) -- ` +
71
+ 'retried on the next refusal');
72
+ return;
73
+ }
74
+ streak.recorded = true;
75
+ streak.pending = null;
76
+ const keys = this.filedKeys.get(arm.focusId) ?? new Set();
77
+ keys.add(key);
78
+ this.filedKeys.set(arm.focusId, keys);
79
+ }
80
+ catch (err) {
81
+ log.warn(`[prd-controller] could not file the refused-arm observation for focus ${arm.focusId} ` +
82
+ `[${code}]: ${err.message} -- retried on the next refusal`);
83
+ }
84
+ }
85
+ async recordSuccess(focusId) {
86
+ this.streaks.delete(focusId);
87
+ const keys = this.filedKeys.get(focusId);
88
+ if (!keys || keys.size === 0)
89
+ return;
90
+ try {
91
+ const open = (await this.io.listOpenEscalations()).filter((row) => keys.has(String(row.metadata?.cause_key ?? '')));
92
+ for (const row of open) {
93
+ await this.io.resolveEscalation(row.id, `Auto-resolved by the daemon: the PRD frontier armed focus ${focusId}.`);
94
+ }
95
+ this.filedKeys.delete(focusId);
96
+ }
97
+ catch (err) {
98
+ log.warn(`[prd-controller] could not resolve the refused-arm observation for focus ${focusId}: ` +
99
+ `${err.message} -- retried on the next successful arm`);
100
+ }
101
+ }
102
+ }
103
+ /** The observation for one streak. PURE. */
104
+ export function buildObservation(arm, code, causeKey, consecutive, daemonVersion, organizationId) {
105
+ const detail = arm.failure.detail.slice(0, MAX_REFUSAL_DETAIL);
106
+ return {
107
+ causeKey,
108
+ organizationId,
109
+ issueId: null,
110
+ focusId: arm.focusId,
111
+ ...(arm.productId ? { productId: arm.productId } : {}),
112
+ reasonType: 'error_encountered',
113
+ disposition: DISPOSITION_AGENT_RESOLVABLE,
114
+ description: `The PRD frontier of "${arm.prdTitle}" (${arm.prdId}) has been refused ${consecutive} consecutive times ` +
115
+ `arming focus ${arm.focusId} (overcome ${arm.nodeId}), every time with refusal code ${code}, by daemon ` +
116
+ `${daemonVersion}. A refusal with this code is not one the frontier's scoping agent can fix, so the focus ` +
117
+ `stays materialized and un-armed. Most recent refusal: ${detail}`,
118
+ whatWasTried: 'The frontier recorded each refusal on the focus Debug tab (section arm_refused) and re-attempted the arm ' +
119
+ 'every tick; nothing else acted on it.',
120
+ helpNeeded: `Find why the server refuses this arm (code ${code}) and fix the cause: a host below a refusal's floor ` +
121
+ `(daemon ${daemonVersion} here) is updated, a daemon credential that does not serve the PRD's product is ` +
122
+ 'fixed, a frontier-rule disagreement between the daemon and the product-api is reconciled. This observation ' +
123
+ 'closes itself when the frontier next arms the focus.',
124
+ metadata: {
125
+ focus_id: arm.focusId,
126
+ prd_id: arm.prdId,
127
+ prd_title: arm.prdTitle,
128
+ overcome_node_id: arm.nodeId,
129
+ refusal_code: code,
130
+ daemon_version: daemonVersion,
131
+ consecutive_refusals: consecutive,
132
+ last_refusal: detail,
133
+ },
134
+ };
135
+ }
136
+ //# sourceMappingURL=arm-refusal-streak.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arm-refusal-streak.js","sourceRoot":"","sources":["../../src/prd/arm-refusal-streak.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"arm-refusal.d.ts","sourceRoot":"","sources":["../../src/prd/arm-refusal.ts"],"names":[],"mappings":"AAsDA,gEAAgE;AAChE,eAAO,MAAM,0BAA0B,0BAA0B,CAAC;AAElE;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B,2BAA2B,CAAC;AAErE,8DAA8D;AAC9D,eAAO,MAAM,wBAAwB,gBAAgB,CAAC;AAEtD,wEAAwE;AACxE,eAAO,MAAM,oBAAoB,oBAAoB,CAAC;AAEtD,gDAAgD;AAChD,MAAM,WAAW,UAAU;IACzB;;;;;OAKG;IACH,IAAI,EAAE,mBAAmB,GAAG,cAAc,CAAC;IAC3C,uEAAuE;IACvE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB;;;;;OAKG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB;AAQD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,UAAU,CAc3D;AAQD,4CAA4C;AAC5C,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,+EAA+E;IAC/E,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,UAAU,CAAC;IACpB,0EAA0E;IAC1E,eAAe,EAAE,MAAM,CAAC;IACxB,yCAAyC;IACzC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,4EAA4E;AAC5E,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAS5E;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,gBAAgB,EACxB,KAAK,EAAE,MAAM,GACZ,MAAM,CA4BR;AASD;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAS9E;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE;IACJ,OAAO,EAAE,MAAM,CAAC;IAChB,6EAA6E;IAC7E,UAAU,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,MAAM,EAAE,MAAM,CAAC;IACf,wEAAwE;IACxE,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;CACnC,GACA,OAAO,CAAC,IAAI,CAAC,CAsBf;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAWpE"}
1
+ {"version":3,"file":"arm-refusal.d.ts","sourceRoot":"","sources":["../../src/prd/arm-refusal.ts"],"names":[],"mappings":"AAyDA,gEAAgE;AAChE,eAAO,MAAM,0BAA0B,0BAA0B,CAAC;AAElE;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B,2BAA2B,CAAC;AAErE,8DAA8D;AAC9D,eAAO,MAAM,wBAAwB,gBAAgB,CAAC;AAEtD,wEAAwE;AACxE,eAAO,MAAM,oBAAoB,oBAAoB,CAAC;AAEtD,gDAAgD;AAChD,MAAM,WAAW,UAAU;IACzB;;;;;OAKG;IACH,IAAI,EAAE,mBAAmB,GAAG,cAAc,CAAC;IAC3C,uEAAuE;IACvE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB;;;;;OAKG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB;AAQD;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,UAAU,CAc3D;AAQD,4CAA4C;AAC5C,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,+EAA+E;IAC/E,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,UAAU,CAAC;IACpB,0EAA0E;IAC1E,eAAe,EAAE,MAAM,CAAC;IACxB,yCAAyC;IACzC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,4EAA4E;AAC5E,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAS5E;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,gBAAgB,EACxB,KAAK,EAAE,MAAM,GACZ,MAAM,CA4BR;AASD;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAS9E;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE;IACJ,OAAO,EAAE,MAAM,CAAC;IAChB,6EAA6E;IAC7E,UAAU,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,MAAM,EAAE,MAAM,CAAC;IACf,wEAAwE;IACxE,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;CACnC,GACA,OAAO,CAAC,IAAI,CAAC,CAsBf;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAWpE"}
@@ -1,5 +1,6 @@
1
1
  // PINNED-BY-BEGIN (generated by gen:pinned-by -- do not hand-edit; checked by lint:pinned-by)
2
- // Pinned by: packages/daemon/src/prd/prd-frontier-arm-refused.test.ts
2
+ // Pinned by: packages/daemon/src/prd/prd-frontier-arm-refusal-streak.test.ts,
3
+ // packages/daemon/src/prd/prd-frontier-arm-refused.test.ts
3
4
  // PINNED-BY-END
4
5
  /**
5
6
  * A refused arm, SURVIVED: classify it, and record it where an operator reads it.
@@ -39,9 +40,11 @@
39
40
  * record degrades to.
40
41
  *
41
42
  * NOTHING HERE ESCALATES. A refused arm is a recoverable state the machine
42
- * re-tries, not a question for a human queue: the fix is a restatement on a
43
- * tree node, and the scoping agent the frontier re-spawns is the actor that
44
- * writes it.
43
+ * re-tries. For `arm_criteria_required` the fix is a restatement on a tree node,
44
+ * and the scoping agent the frontier re-spawns is the actor that writes it. For
45
+ * every other code no agent the frontier spawns can fix it, so the refusal
46
+ * streak (./arm-refusal-streak.ts) -- beside this record, not instead of it --
47
+ * files one agent_resolvable observation once such a refusal outlasts its bound.
45
48
  *
46
49
  * History: docs/daemon/history-platform.md (prd/arm-refusal.ts).
47
50
  */
@@ -1 +1 @@
1
- {"version":3,"file":"arm-refusal.js","sourceRoot":"","sources":["../../src/prd/arm-refusal.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"arm-refusal.js","sourceRoot":"","sources":["../../src/prd/arm-refusal.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,23 @@
1
+ /**
2
+ * Shared PRD-controller types + pure helpers.
3
+ *
4
+ * The PrdControllerDeps injection interface, the tick result shapes, the pure
5
+ * completion/arm-role helpers, and the done-sweep constants: the LEAF of the
6
+ * controller family, so
7
+ * prd/done-sweep.ts and prd/controller.ts can both depend on these without a
8
+ * cycle (this module imports neither).
9
+ *
10
+ * History: docs/daemon/history-platform.md (prd/controller-shared.ts).
11
+ */
12
+ import { type FocusQaStanding } from '../tower/focus-landed.js';
1
13
  import type { FocusBranchContainment } from '../git/focus-branch-containment.js';
2
14
  import type { Prd, PrtNode, PrtEdge, Pathway } from '../queries/prd/prd.js';
3
15
  import type { FileEscalationInput } from '../nexus/file-escalation.js';
4
16
  import type { StewardJudgmentInput, StewardDecision } from './steward.js';
5
17
  import type { FocusArmReadiness } from './arm-readiness.js';
18
+ import type { FocusQaStandingRead } from '../queries/qa-packets/focus-qa-failure.js';
6
19
  import type { ArmRefusalRecord } from './arm-refusal.js';
20
+ import type { ArmRefusalStreakReporter } from './arm-refusal-streak.js';
7
21
  /**
8
22
  * Steward cadence: the minimum interval between proactive steward monitoring
9
23
  * runs for a Played PRD -- the "runs on a cadence" path of the AC. 15 minutes
@@ -39,26 +53,29 @@ export declare const DONE_SWEEP_MAX_ATTEMPTS = 3;
39
53
  export declare function resolveArmRoleIdFromPrd(prd: Prd): string | null;
40
54
  /**
41
55
  * Compute the set of focus ids that have LANDED -- the completion bridge's
42
- * signal, and the SAME definition the tower holds a depends_on successor on
56
+ * signal, judged by the SAME rule the tower holds a depends_on successor on
43
57
  * (tower/focus-landed.ts judgeFocusLanded): at least one delivery, every
44
- * non-cancelled delivery done, and the focus branch contained in integration.
45
- * A focus with zero deliveries (freshly materialized, never run) is not landed;
46
- * a focus whose containment git could not answer is not counted this tick.
58
+ * non-cancelled delivery done, no failed or unreadable QA, and the focus branch
59
+ * contained in integration. A focus with zero deliveries (freshly materialized,
60
+ * never run) is not landed; a focus whose containment git could not answer is
61
+ * not counted this tick.
47
62
  *
48
- * `containment` is the focus's branch containment, read by the caller
49
- * (PrdControllerDeps.readFocusBranchContainment) for every focus it passes.
50
- * PURE.
63
+ * `containment` is the focus's branch containment and `qa` its QA standing,
64
+ * each read by the caller for every focus it passes; a focus missing from `qa`
65
+ * carries no QA report ('not_reported'). PURE.
51
66
  */
52
67
  export declare function computeCompletedFocusIds(deliveries: Array<{
53
68
  focusId: string;
54
69
  executionStatus: string;
55
- }>, containment: ReadonlyMap<string, FocusBranchContainment>): Set<string>;
70
+ }>, containment: ReadonlyMap<string, FocusBranchContainment>, qa: ReadonlyMap<string, FocusQaStanding>): Set<string>;
56
71
  /**
57
- * Load the deliveries and branch containment of each focus and return those
58
- * that have LANDED (computeCompletedFocusIds). Containment is read only for a
59
- * focus whose deliveries could have landed, so a running focus costs no git.
72
+ * Load the deliveries, QA standing and branch containment of each focus and
73
+ * return those that have LANDED (computeCompletedFocusIds). QA is read only for
74
+ * a focus whose deliveries could have landed, and containment only for one whose
75
+ * deliveries and QA could have, so a running focus costs no QA read and no git.
76
+ * With no QA reader bound the focus's QA is 'not_reported'.
60
77
  */
61
- export declare function loadLandedFocusIds(focusIds: readonly string[], deps: Pick<PrdControllerDeps, 'loadFocusDeliveries' | 'readFocusBranchContainment'>): Promise<Set<string>>;
78
+ export declare function loadLandedFocusIds(focusIds: readonly string[], deps: Pick<PrdControllerDeps, 'loadFocusDeliveries' | 'readFocusBranchContainment' | 'loadFocusQa'>): Promise<Set<string>>;
62
79
  /**
63
80
  * One PRD scoping run, as the controller's process-lifetime ledger holds it.
64
81
  *
@@ -188,6 +205,15 @@ export interface PrdControllerDeps {
188
205
  * frontier re-tries, and `fileEscalation` is deliberately not reached here.
189
206
  */
190
207
  recordArmRefusal: (record: ArmRefusalRecord) => Promise<void>;
208
+ /**
209
+ * Counts consecutive refused arms per focus and refusal code and, past its
210
+ * bound, files ONE agent_resolvable observation for any code but
211
+ * arm_criteria_required (`prd/arm-refusal-streak.ts`); told of every
212
+ * successful arm so the streak ends. Bound at the composition root to one
213
+ * process-lifetime tracker shared by every product. Never throws. Absent in a
214
+ * harness that does not exercise it: then nothing is counted.
215
+ */
216
+ armRefusalStreak?: ArmRefusalStreakReporter;
191
217
  /**
192
218
  * Clear that record once an arm lands. Bound at the composition root to the
193
219
  * live `clearArmRefusal`. Unconditional on a successful arm, exactly as a
@@ -246,6 +272,15 @@ export interface PrdControllerDeps {
246
272
  * When ABSENT no stop is known -- the binding is what makes it real.
247
273
  */
248
274
  loadFocusOperatorStop?: (focusId: string) => Promise<string | null>;
275
+ /**
276
+ * The focus's human QA standing (product-api focus_qa_get); never throws.
277
+ * A QA-failed focus is not landed (tower/focus-landed.ts), is armed by the
278
+ * frontier only once work has been scoped since the failed verdict, and its
279
+ * scoping run is handed the cases the person did not pass
280
+ * (prd/frontier-arming.ts). Optional; bound at the composition root. When
281
+ * ABSENT no QA is known and every focus is judged on its delivery facts.
282
+ */
283
+ loadFocusQa?: (focusId: string) => Promise<FocusQaStandingRead>;
249
284
  /**
250
285
  * Spawn the ONE-SHOT PRD scoping agent for a materialized frontier focus
251
286
  * (fire-and-forget: resolves on spawn, reports the exit via `onExit`).
@@ -1 +1 @@
1
- {"version":3,"file":"controller-shared.d.ts","sourceRoot":"","sources":["../../src/prd/controller-shared.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AACjF,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,KAAK,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,QAAiB,CAAC;AAEjD;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,6BAA6B,CAAC;AAEnE;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,IAAI,CAAC;AAEzC;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,GAAG,IAAI,CAE/D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,KAAK,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,CAAC,EAC/D,WAAW,EAAE,WAAW,CAAC,MAAM,EAAE,sBAAsB,CAAC,GACvD,GAAG,CAAC,MAAM,CAAC,CAiBb;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,SAAS,MAAM,EAAE,EAC3B,IAAI,EAAE,IAAI,CAAC,iBAAiB,EAAE,qBAAqB,GAAG,4BAA4B,CAAC,GAClF,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAWtB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,yDAAyD;IACzD,MAAM,EAAE,MAAM,CAAC;IACf;;;;;OAKG;IACH,MAAM,EAAE,WAAW,GAAG,cAAc,GAAG,eAAe,CAAC;IACvD,iGAAiG;IACjG,QAAQ,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,SAAS,EAAE,MAAM,CAAC;IAClB,oFAAoF;IACpF,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,8EAA8E;AAC9E,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,0DAA0D;IAC1D,MAAM,EAAE,MAAM,CAAC;IACf,8EAA8E;IAC9E,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CACvC;AAED,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,KAAK,EAAE,OAAO,EAAE,CAAC;QAAC,KAAK,EAAE,OAAO,EAAE,CAAA;KAAE,CAAC,CAAC;IACjF;;;;OAIG;IACH,mBAAmB,EAAE,CACnB,OAAO,EAAE,MAAM,KACZ,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IAClE;;;;OAIG;IACH,0BAA0B,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACjF,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD;;;;;;;OAOG;IACH,qBAAqB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D;;;;;OAKG;IACH,0BAA0B,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;IAC1D;;;;;;;OAOG;IACH,kBAAkB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACjC;;;;;OAKG;IACH,qBAAqB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACpC;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC;;;OAGG;IACH,cAAc,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACtD;;;OAGG;IACH,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACpD,mBAAmB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACtE,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE;;;;;;OAMG;IACH,gBAAgB,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D;;;;;;OAMG;IACH,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9C,gBAAgB,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACvD,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACpD,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnE,cAAc,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D;;;;;;;;;;;;;;OAcG;IACH,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACzE;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;IACtF;;;;;;;;;;;OAWG;IACH,qBAAqB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACxE;;;;;;;OAOG;IACH,qBAAqB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACpE;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtE;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClG;;;;OAIG;IACH,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC5C,iFAAiF;IACjF,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,oFAAoF;IACpF,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gFAAgF;IAChF,KAAK,CAAC,EAAE,MAAM,MAAM,CAAC;IACrB,iEAAiE;IACjE,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,uBAAuB;IACtC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB;;;;;;OAMG;IACH,qBAAqB,EAAE,OAAO,CAAC;IAC/B,mEAAmE;IACnE,QAAQ,EAAE,OAAO,CAAC;IAClB,uEAAuE;IACvE,YAAY,EAAE,OAAO,CAAC;IACtB,4EAA4E;IAC5E,SAAS,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB;;;;;;OAMG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,0BAA0B;IACzC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,sEAAsE;IACtE,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,iBAAiB,EAAE,MAAM,CAAC;IAC1B,+CAA+C;IAC/C,YAAY,EAAE,MAAM,CAAC;IACrB,gEAAgE;IAChE,gBAAgB,EAAE,MAAM,CAAC;IACzB,8DAA8D;IAC9D,aAAa,EAAE,MAAM,CAAC;CACvB"}
1
+ {"version":3,"file":"controller-shared.d.ts","sourceRoot":"","sources":["../../src/prd/controller-shared.ts"],"names":[],"mappings":"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"}