@amsterdamdatalabs/enact-operator 0.1.2

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 (377) hide show
  1. package/README.md +33 -0
  2. package/dist/index.d.ts +24 -0
  3. package/dist/index.d.ts.map +1 -0
  4. package/dist/index.js +24 -0
  5. package/dist/index.js.map +1 -0
  6. package/dist/lanes/autopilot/index.d.ts +95 -0
  7. package/dist/lanes/autopilot/index.d.ts.map +1 -0
  8. package/dist/lanes/autopilot/index.js +499 -0
  9. package/dist/lanes/autopilot/index.js.map +1 -0
  10. package/dist/lanes/ralph/index.d.ts +118 -0
  11. package/dist/lanes/ralph/index.d.ts.map +1 -0
  12. package/dist/lanes/ralph/index.js +680 -0
  13. package/dist/lanes/ralph/index.js.map +1 -0
  14. package/dist/lanes/team/index.d.ts +110 -0
  15. package/dist/lanes/team/index.d.ts.map +1 -0
  16. package/dist/lanes/team/index.js +748 -0
  17. package/dist/lanes/team/index.js.map +1 -0
  18. package/dist/lanes/team/roles.d.ts +15 -0
  19. package/dist/lanes/team/roles.d.ts.map +1 -0
  20. package/dist/lanes/team/roles.js +89 -0
  21. package/dist/lanes/team/roles.js.map +1 -0
  22. package/dist/lanes/ultrawork/burst.d.ts +69 -0
  23. package/dist/lanes/ultrawork/burst.d.ts.map +1 -0
  24. package/dist/lanes/ultrawork/burst.js +254 -0
  25. package/dist/lanes/ultrawork/burst.js.map +1 -0
  26. package/dist/lanes/ultrawork/index.d.ts +159 -0
  27. package/dist/lanes/ultrawork/index.d.ts.map +1 -0
  28. package/dist/lanes/ultrawork/index.js +919 -0
  29. package/dist/lanes/ultrawork/index.js.map +1 -0
  30. package/dist/lanes/ultrawork/phases.d.ts +57 -0
  31. package/dist/lanes/ultrawork/phases.d.ts.map +1 -0
  32. package/dist/lanes/ultrawork/phases.js +116 -0
  33. package/dist/lanes/ultrawork/phases.js.map +1 -0
  34. package/dist/mcp/activation.d.ts +5 -0
  35. package/dist/mcp/activation.d.ts.map +1 -0
  36. package/dist/mcp/activation.js +234 -0
  37. package/dist/mcp/activation.js.map +1 -0
  38. package/dist/mcp/cli.d.ts +11 -0
  39. package/dist/mcp/cli.d.ts.map +1 -0
  40. package/dist/mcp/cli.js +140 -0
  41. package/dist/mcp/cli.js.map +1 -0
  42. package/dist/mcp/continuation.d.ts +5 -0
  43. package/dist/mcp/continuation.d.ts.map +1 -0
  44. package/dist/mcp/continuation.js +360 -0
  45. package/dist/mcp/continuation.js.map +1 -0
  46. package/dist/mcp/jobs.d.ts +5 -0
  47. package/dist/mcp/jobs.d.ts.map +1 -0
  48. package/dist/mcp/jobs.js +212 -0
  49. package/dist/mcp/jobs.js.map +1 -0
  50. package/dist/mcp/laneSupport.d.ts +19 -0
  51. package/dist/mcp/laneSupport.d.ts.map +1 -0
  52. package/dist/mcp/laneSupport.js +21 -0
  53. package/dist/mcp/laneSupport.js.map +1 -0
  54. package/dist/mcp/lanes/autopilot.d.ts +5 -0
  55. package/dist/mcp/lanes/autopilot.d.ts.map +1 -0
  56. package/dist/mcp/lanes/autopilot.js +227 -0
  57. package/dist/mcp/lanes/autopilot.js.map +1 -0
  58. package/dist/mcp/lanes/ralph.d.ts +5 -0
  59. package/dist/mcp/lanes/ralph.d.ts.map +1 -0
  60. package/dist/mcp/lanes/ralph.js +392 -0
  61. package/dist/mcp/lanes/ralph.js.map +1 -0
  62. package/dist/mcp/lanes/team.d.ts +5 -0
  63. package/dist/mcp/lanes/team.d.ts.map +1 -0
  64. package/dist/mcp/lanes/team.js +413 -0
  65. package/dist/mcp/lanes/team.js.map +1 -0
  66. package/dist/mcp/lanes/ultrawork.d.ts +5 -0
  67. package/dist/mcp/lanes/ultrawork.d.ts.map +1 -0
  68. package/dist/mcp/lanes/ultrawork.js +497 -0
  69. package/dist/mcp/lanes/ultrawork.js.map +1 -0
  70. package/dist/mcp/linkage.d.ts +5 -0
  71. package/dist/mcp/linkage.d.ts.map +1 -0
  72. package/dist/mcp/linkage.js +126 -0
  73. package/dist/mcp/linkage.js.map +1 -0
  74. package/dist/mcp/planning.d.ts +5 -0
  75. package/dist/mcp/planning.d.ts.map +1 -0
  76. package/dist/mcp/planning.js +584 -0
  77. package/dist/mcp/planning.js.map +1 -0
  78. package/dist/mcp/rpcTransport.d.ts +17 -0
  79. package/dist/mcp/rpcTransport.d.ts.map +1 -0
  80. package/dist/mcp/rpcTransport.js +90 -0
  81. package/dist/mcp/rpcTransport.js.map +1 -0
  82. package/dist/mcp/schemas/ralphVerify.d.ts +32 -0
  83. package/dist/mcp/schemas/ralphVerify.d.ts.map +1 -0
  84. package/dist/mcp/schemas/ralphVerify.js +20 -0
  85. package/dist/mcp/schemas/ralphVerify.js.map +1 -0
  86. package/dist/mcp/server.d.ts +5 -0
  87. package/dist/mcp/server.d.ts.map +1 -0
  88. package/dist/mcp/server.js +176 -0
  89. package/dist/mcp/server.js.map +1 -0
  90. package/dist/mcp/system.d.ts +5 -0
  91. package/dist/mcp/system.d.ts.map +1 -0
  92. package/dist/mcp/system.js +445 -0
  93. package/dist/mcp/system.js.map +1 -0
  94. package/dist/mcp/toolFilter.d.ts +2 -0
  95. package/dist/mcp/toolFilter.d.ts.map +1 -0
  96. package/dist/mcp/toolFilter.js +2 -0
  97. package/dist/mcp/toolFilter.js.map +1 -0
  98. package/dist/mcp/toolPartitions.d.ts +20 -0
  99. package/dist/mcp/toolPartitions.d.ts.map +1 -0
  100. package/dist/mcp/toolPartitions.js +280 -0
  101. package/dist/mcp/toolPartitions.js.map +1 -0
  102. package/dist/mcp/toolRuntime.d.ts +9 -0
  103. package/dist/mcp/toolRuntime.d.ts.map +1 -0
  104. package/dist/mcp/toolRuntime.js +179 -0
  105. package/dist/mcp/toolRuntime.js.map +1 -0
  106. package/dist/mcp/workflow.d.ts +12 -0
  107. package/dist/mcp/workflow.d.ts.map +1 -0
  108. package/dist/mcp/workflow.js +723 -0
  109. package/dist/mcp/workflow.js.map +1 -0
  110. package/dist/operator/hooks/hookDispatcher.d.ts +39 -0
  111. package/dist/operator/hooks/hookDispatcher.d.ts.map +1 -0
  112. package/dist/operator/hooks/hookDispatcher.js +58 -0
  113. package/dist/operator/hooks/hookDispatcher.js.map +1 -0
  114. package/dist/operator/hooks/hookGating.d.ts +28 -0
  115. package/dist/operator/hooks/hookGating.d.ts.map +1 -0
  116. package/dist/operator/hooks/hookGating.js +61 -0
  117. package/dist/operator/hooks/hookGating.js.map +1 -0
  118. package/dist/operator/hooks/hooks.d.ts +20 -0
  119. package/dist/operator/hooks/hooks.d.ts.map +1 -0
  120. package/dist/operator/hooks/hooks.js +124 -0
  121. package/dist/operator/hooks/hooks.js.map +1 -0
  122. package/dist/operator/hooks/toolGuardHooks.d.ts +86 -0
  123. package/dist/operator/hooks/toolGuardHooks.d.ts.map +1 -0
  124. package/dist/operator/hooks/toolGuardHooks.js +163 -0
  125. package/dist/operator/hooks/toolGuardHooks.js.map +1 -0
  126. package/dist/operator/hud.d.ts +115 -0
  127. package/dist/operator/hud.d.ts.map +1 -0
  128. package/dist/operator/hud.js +229 -0
  129. package/dist/operator/hud.js.map +1 -0
  130. package/dist/operator/missions.d.ts +125 -0
  131. package/dist/operator/missions.d.ts.map +1 -0
  132. package/dist/operator/missions.js +304 -0
  133. package/dist/operator/missions.js.map +1 -0
  134. package/dist/operator/operatorCore.d.ts +11 -0
  135. package/dist/operator/operatorCore.d.ts.map +1 -0
  136. package/dist/operator/operatorCore.js +9 -0
  137. package/dist/operator/operatorCore.js.map +1 -0
  138. package/dist/operator/operatorRuntimeCore.d.ts +17 -0
  139. package/dist/operator/operatorRuntimeCore.d.ts.map +1 -0
  140. package/dist/operator/operatorRuntimeCore.js +17 -0
  141. package/dist/operator/operatorRuntimeCore.js.map +1 -0
  142. package/dist/operator/runtime.d.ts +74 -0
  143. package/dist/operator/runtime.d.ts.map +1 -0
  144. package/dist/operator/runtime.js +357 -0
  145. package/dist/operator/runtime.js.map +1 -0
  146. package/dist/shared/core/bootstrap.d.ts +16 -0
  147. package/dist/shared/core/bootstrap.d.ts.map +1 -0
  148. package/dist/shared/core/bootstrap.js +77 -0
  149. package/dist/shared/core/bootstrap.js.map +1 -0
  150. package/dist/shared/core/contract.d.ts +71 -0
  151. package/dist/shared/core/contract.d.ts.map +1 -0
  152. package/dist/shared/core/contract.js +452 -0
  153. package/dist/shared/core/contract.js.map +1 -0
  154. package/dist/shared/core/events.d.ts +57 -0
  155. package/dist/shared/core/events.d.ts.map +1 -0
  156. package/dist/shared/core/events.js +36 -0
  157. package/dist/shared/core/events.js.map +1 -0
  158. package/dist/shared/core/jobs.d.ts +46 -0
  159. package/dist/shared/core/jobs.d.ts.map +1 -0
  160. package/dist/shared/core/jobs.js +137 -0
  161. package/dist/shared/core/jobs.js.map +1 -0
  162. package/dist/shared/core/json.d.ts +12 -0
  163. package/dist/shared/core/json.d.ts.map +1 -0
  164. package/dist/shared/core/json.js +52 -0
  165. package/dist/shared/core/json.js.map +1 -0
  166. package/dist/shared/core/layoutMigration.d.ts +11 -0
  167. package/dist/shared/core/layoutMigration.d.ts.map +1 -0
  168. package/dist/shared/core/layoutMigration.js +56 -0
  169. package/dist/shared/core/layoutMigration.js.map +1 -0
  170. package/dist/shared/core/lifecycle.d.ts +61 -0
  171. package/dist/shared/core/lifecycle.d.ts.map +1 -0
  172. package/dist/shared/core/lifecycle.js +123 -0
  173. package/dist/shared/core/lifecycle.js.map +1 -0
  174. package/dist/shared/core/packagePaths.d.ts +2 -0
  175. package/dist/shared/core/packagePaths.d.ts.map +1 -0
  176. package/dist/shared/core/packagePaths.js +9 -0
  177. package/dist/shared/core/packagePaths.js.map +1 -0
  178. package/dist/shared/core/terminology.d.ts +38 -0
  179. package/dist/shared/core/terminology.d.ts.map +1 -0
  180. package/dist/shared/core/terminology.js +54 -0
  181. package/dist/shared/core/terminology.js.map +1 -0
  182. package/dist/shared/core/types.d.ts +30 -0
  183. package/dist/shared/core/types.d.ts.map +1 -0
  184. package/dist/shared/core/types.js +2 -0
  185. package/dist/shared/core/types.js.map +1 -0
  186. package/dist/shared/diagnostics/doctor.d.ts +19 -0
  187. package/dist/shared/diagnostics/doctor.d.ts.map +1 -0
  188. package/dist/shared/diagnostics/doctor.js +82 -0
  189. package/dist/shared/diagnostics/doctor.js.map +1 -0
  190. package/dist/shared/diagnostics/hostRollout.d.ts +16 -0
  191. package/dist/shared/diagnostics/hostRollout.d.ts.map +1 -0
  192. package/dist/shared/diagnostics/hostRollout.js +78 -0
  193. package/dist/shared/diagnostics/hostRollout.js.map +1 -0
  194. package/dist/shared/observability/emit.d.ts +3 -0
  195. package/dist/shared/observability/emit.d.ts.map +1 -0
  196. package/dist/shared/observability/emit.js +17 -0
  197. package/dist/shared/observability/emit.js.map +1 -0
  198. package/dist/shared/observability/testWorkspace.d.ts +4 -0
  199. package/dist/shared/observability/testWorkspace.d.ts.map +1 -0
  200. package/dist/shared/observability/testWorkspace.js +35 -0
  201. package/dist/shared/observability/testWorkspace.js.map +1 -0
  202. package/dist/shared/state/installRegistry.d.ts +22 -0
  203. package/dist/shared/state/installRegistry.d.ts.map +1 -0
  204. package/dist/shared/state/installRegistry.js +51 -0
  205. package/dist/shared/state/installRegistry.js.map +1 -0
  206. package/dist/shared/state/session.d.ts +18 -0
  207. package/dist/shared/state/session.d.ts.map +1 -0
  208. package/dist/shared/state/session.js +127 -0
  209. package/dist/shared/state/session.js.map +1 -0
  210. package/dist/shared/state/state.d.ts +16 -0
  211. package/dist/shared/state/state.d.ts.map +1 -0
  212. package/dist/shared/state/state.js +91 -0
  213. package/dist/shared/state/state.js.map +1 -0
  214. package/dist/shared/state/tasks.d.ts +113 -0
  215. package/dist/shared/state/tasks.d.ts.map +1 -0
  216. package/dist/shared/state/tasks.js +274 -0
  217. package/dist/shared/state/tasks.js.map +1 -0
  218. package/dist/shared/workflow/activation/activeSkill.d.ts +46 -0
  219. package/dist/shared/workflow/activation/activeSkill.d.ts.map +1 -0
  220. package/dist/shared/workflow/activation/activeSkill.js +158 -0
  221. package/dist/shared/workflow/activation/activeSkill.js.map +1 -0
  222. package/dist/shared/workflow/activation/gateProfiles.d.ts +26 -0
  223. package/dist/shared/workflow/activation/gateProfiles.d.ts.map +1 -0
  224. package/dist/shared/workflow/activation/gateProfiles.js +102 -0
  225. package/dist/shared/workflow/activation/gateProfiles.js.map +1 -0
  226. package/dist/shared/workflow/activation/modeMatrix.d.ts +28 -0
  227. package/dist/shared/workflow/activation/modeMatrix.d.ts.map +1 -0
  228. package/dist/shared/workflow/activation/modeMatrix.js +91 -0
  229. package/dist/shared/workflow/activation/modeMatrix.js.map +1 -0
  230. package/dist/shared/workflow/activation/skillActivation.d.ts +74 -0
  231. package/dist/shared/workflow/activation/skillActivation.d.ts.map +1 -0
  232. package/dist/shared/workflow/activation/skillActivation.js +485 -0
  233. package/dist/shared/workflow/activation/skillActivation.js.map +1 -0
  234. package/dist/shared/workflow/activation/skillVariant.d.ts +18 -0
  235. package/dist/shared/workflow/activation/skillVariant.d.ts.map +1 -0
  236. package/dist/shared/workflow/activation/skillVariant.js +44 -0
  237. package/dist/shared/workflow/activation/skillVariant.js.map +1 -0
  238. package/dist/shared/workflow/authority/authority.d.ts +34 -0
  239. package/dist/shared/workflow/authority/authority.d.ts.map +1 -0
  240. package/dist/shared/workflow/authority/authority.js +64 -0
  241. package/dist/shared/workflow/authority/authority.js.map +1 -0
  242. package/dist/shared/workflow/closure/closureManifest.d.ts +39 -0
  243. package/dist/shared/workflow/closure/closureManifest.d.ts.map +1 -0
  244. package/dist/shared/workflow/closure/closureManifest.js +62 -0
  245. package/dist/shared/workflow/closure/closureManifest.js.map +1 -0
  246. package/dist/shared/workflow/closure/closureRequirements.d.ts +12 -0
  247. package/dist/shared/workflow/closure/closureRequirements.d.ts.map +1 -0
  248. package/dist/shared/workflow/closure/closureRequirements.js +30 -0
  249. package/dist/shared/workflow/closure/closureRequirements.js.map +1 -0
  250. package/dist/shared/workflow/closure/contractParity.d.ts +24 -0
  251. package/dist/shared/workflow/closure/contractParity.d.ts.map +1 -0
  252. package/dist/shared/workflow/closure/contractParity.js +238 -0
  253. package/dist/shared/workflow/closure/contractParity.js.map +1 -0
  254. package/dist/shared/workflow/closure/contractParityContext.d.ts +8 -0
  255. package/dist/shared/workflow/closure/contractParityContext.d.ts.map +1 -0
  256. package/dist/shared/workflow/closure/contractParityContext.js +50 -0
  257. package/dist/shared/workflow/closure/contractParityContext.js.map +1 -0
  258. package/dist/shared/workflow/closure/scopeGuard.d.ts +11 -0
  259. package/dist/shared/workflow/closure/scopeGuard.d.ts.map +1 -0
  260. package/dist/shared/workflow/closure/scopeGuard.js +69 -0
  261. package/dist/shared/workflow/closure/scopeGuard.js.map +1 -0
  262. package/dist/shared/workflow/closure/ultragoalArtifact.d.ts +13 -0
  263. package/dist/shared/workflow/closure/ultragoalArtifact.d.ts.map +1 -0
  264. package/dist/shared/workflow/closure/ultragoalArtifact.js +31 -0
  265. package/dist/shared/workflow/closure/ultragoalArtifact.js.map +1 -0
  266. package/dist/shared/workflow/closure/workflowReconcile.d.ts +70 -0
  267. package/dist/shared/workflow/closure/workflowReconcile.d.ts.map +1 -0
  268. package/dist/shared/workflow/closure/workflowReconcile.js +267 -0
  269. package/dist/shared/workflow/closure/workflowReconcile.js.map +1 -0
  270. package/dist/shared/workflow/continuation/continuation.d.ts +109 -0
  271. package/dist/shared/workflow/continuation/continuation.d.ts.map +1 -0
  272. package/dist/shared/workflow/continuation/continuation.js +550 -0
  273. package/dist/shared/workflow/continuation/continuation.js.map +1 -0
  274. package/dist/shared/workflow/continuation/continuationEventReservations.d.ts +17 -0
  275. package/dist/shared/workflow/continuation/continuationEventReservations.d.ts.map +1 -0
  276. package/dist/shared/workflow/continuation/continuationEventReservations.js +88 -0
  277. package/dist/shared/workflow/continuation/continuationEventReservations.js.map +1 -0
  278. package/dist/shared/workflow/continuation/continuationFollowUp.d.ts +114 -0
  279. package/dist/shared/workflow/continuation/continuationFollowUp.d.ts.map +1 -0
  280. package/dist/shared/workflow/continuation/continuationFollowUp.js +330 -0
  281. package/dist/shared/workflow/continuation/continuationFollowUp.js.map +1 -0
  282. package/dist/shared/workflow/continuation/continuationOrchestrator.d.ts +66 -0
  283. package/dist/shared/workflow/continuation/continuationOrchestrator.d.ts.map +1 -0
  284. package/dist/shared/workflow/continuation/continuationOrchestrator.js +144 -0
  285. package/dist/shared/workflow/continuation/continuationOrchestrator.js.map +1 -0
  286. package/dist/shared/workflow/continuation/hookContinuation.d.ts +44 -0
  287. package/dist/shared/workflow/continuation/hookContinuation.d.ts.map +1 -0
  288. package/dist/shared/workflow/continuation/hookContinuation.js +85 -0
  289. package/dist/shared/workflow/continuation/hookContinuation.js.map +1 -0
  290. package/dist/shared/workflow/continuation/stopPolicy.d.ts +38 -0
  291. package/dist/shared/workflow/continuation/stopPolicy.d.ts.map +1 -0
  292. package/dist/shared/workflow/continuation/stopPolicy.js +435 -0
  293. package/dist/shared/workflow/continuation/stopPolicy.js.map +1 -0
  294. package/dist/shared/workflow/continuation/stopVerdict.d.ts +31 -0
  295. package/dist/shared/workflow/continuation/stopVerdict.d.ts.map +1 -0
  296. package/dist/shared/workflow/continuation/stopVerdict.js +98 -0
  297. package/dist/shared/workflow/continuation/stopVerdict.js.map +1 -0
  298. package/dist/shared/workflow/delegation/delegatedSession.d.ts +118 -0
  299. package/dist/shared/workflow/delegation/delegatedSession.d.ts.map +1 -0
  300. package/dist/shared/workflow/delegation/delegatedSession.js +496 -0
  301. package/dist/shared/workflow/delegation/delegatedSession.js.map +1 -0
  302. package/dist/shared/workflow/delegation/delegationPrompt.d.ts +3 -0
  303. package/dist/shared/workflow/delegation/delegationPrompt.d.ts.map +1 -0
  304. package/dist/shared/workflow/delegation/delegationPrompt.js +15 -0
  305. package/dist/shared/workflow/delegation/delegationPrompt.js.map +1 -0
  306. package/dist/shared/workflow/delegation/sessionTasks.d.ts +40 -0
  307. package/dist/shared/workflow/delegation/sessionTasks.d.ts.map +1 -0
  308. package/dist/shared/workflow/delegation/sessionTasks.js +73 -0
  309. package/dist/shared/workflow/delegation/sessionTasks.js.map +1 -0
  310. package/dist/shared/workflow/delegation/subagentRuntime.d.ts +26 -0
  311. package/dist/shared/workflow/delegation/subagentRuntime.d.ts.map +1 -0
  312. package/dist/shared/workflow/delegation/subagentRuntime.js +231 -0
  313. package/dist/shared/workflow/delegation/subagentRuntime.js.map +1 -0
  314. package/dist/shared/workflow/delivery/adoAuxiliaryRuntime.d.ts +79 -0
  315. package/dist/shared/workflow/delivery/adoAuxiliaryRuntime.d.ts.map +1 -0
  316. package/dist/shared/workflow/delivery/adoAuxiliaryRuntime.js +166 -0
  317. package/dist/shared/workflow/delivery/adoAuxiliaryRuntime.js.map +1 -0
  318. package/dist/shared/workflow/delivery/finalWave.d.ts +57 -0
  319. package/dist/shared/workflow/delivery/finalWave.d.ts.map +1 -0
  320. package/dist/shared/workflow/delivery/finalWave.js +123 -0
  321. package/dist/shared/workflow/delivery/finalWave.js.map +1 -0
  322. package/dist/shared/workflow/delivery/lifecyclePushMap.d.ts +68 -0
  323. package/dist/shared/workflow/delivery/lifecyclePushMap.d.ts.map +1 -0
  324. package/dist/shared/workflow/delivery/lifecyclePushMap.js +82 -0
  325. package/dist/shared/workflow/delivery/lifecyclePushMap.js.map +1 -0
  326. package/dist/shared/workflow/delivery/prSidecar.d.ts +7 -0
  327. package/dist/shared/workflow/delivery/prSidecar.d.ts.map +1 -0
  328. package/dist/shared/workflow/delivery/prSidecar.js +4 -0
  329. package/dist/shared/workflow/delivery/prSidecar.js.map +1 -0
  330. package/dist/shared/workflow/delivery/reviewStaleness.d.ts +37 -0
  331. package/dist/shared/workflow/delivery/reviewStaleness.d.ts.map +1 -0
  332. package/dist/shared/workflow/delivery/reviewStaleness.js +94 -0
  333. package/dist/shared/workflow/delivery/reviewStaleness.js.map +1 -0
  334. package/dist/shared/workflow/planning/hyperplan.d.ts +40 -0
  335. package/dist/shared/workflow/planning/hyperplan.d.ts.map +1 -0
  336. package/dist/shared/workflow/planning/hyperplan.js +133 -0
  337. package/dist/shared/workflow/planning/hyperplan.js.map +1 -0
  338. package/dist/shared/workflow/planning/notepad.d.ts +17 -0
  339. package/dist/shared/workflow/planning/notepad.d.ts.map +1 -0
  340. package/dist/shared/workflow/planning/notepad.js +84 -0
  341. package/dist/shared/workflow/planning/notepad.js.map +1 -0
  342. package/dist/shared/workflow/planning/planFormat.d.ts +3 -0
  343. package/dist/shared/workflow/planning/planFormat.d.ts.map +1 -0
  344. package/dist/shared/workflow/planning/planFormat.js +14 -0
  345. package/dist/shared/workflow/planning/planFormat.js.map +1 -0
  346. package/package.json +155 -0
  347. package/runtime/hooks/_continuation.mjs +2 -0
  348. package/runtime/hooks/_lib.mjs +2 -0
  349. package/runtime/hooks/_toolGuards.mjs +2 -0
  350. package/runtime/hooks/lanes/resolveSkillActivation.mjs +241 -0
  351. package/runtime/hooks/lanes/user-prompt-submit.mjs +326 -0
  352. package/runtime/hooks/layout-dir.mjs +2 -0
  353. package/runtime/hooks/lifecycle/pre-compact.mjs +121 -0
  354. package/runtime/hooks/lifecycle/session-start.mjs +356 -0
  355. package/runtime/hooks/lifecycle/stop.mjs +223 -0
  356. package/runtime/hooks/observability.mjs +2 -0
  357. package/runtime/hooks/post-tool-use-failure.mjs +5 -0
  358. package/runtime/hooks/post-tool-use.mjs +4 -0
  359. package/runtime/hooks/pre-compact.mjs +4 -0
  360. package/runtime/hooks/pre-tool-use.mjs +4 -0
  361. package/runtime/hooks/resolveSkillActivation.mjs +4 -0
  362. package/runtime/hooks/root-dir.mjs +2 -0
  363. package/runtime/hooks/session-start.mjs +4 -0
  364. package/runtime/hooks/shared/_continuation.mjs +341 -0
  365. package/runtime/hooks/shared/_lib.mjs +60 -0
  366. package/runtime/hooks/shared/_toolGuards.mjs +237 -0
  367. package/runtime/hooks/shared/config.mjs +143 -0
  368. package/runtime/hooks/shared/layout-dir.mjs +12 -0
  369. package/runtime/hooks/shared/observability.mjs +257 -0
  370. package/runtime/hooks/shared/root-dir.mjs +9 -0
  371. package/runtime/hooks/stop.mjs +4 -0
  372. package/runtime/hooks/subagent-tracker.mjs +4 -0
  373. package/runtime/hooks/subagents/subagent-tracker.mjs +106 -0
  374. package/runtime/hooks/tools/post-tool-use-failure.mjs +251 -0
  375. package/runtime/hooks/tools/post-tool-use.mjs +205 -0
  376. package/runtime/hooks/tools/pre-tool-use.mjs +268 -0
  377. package/runtime/hooks/user-prompt-submit.mjs +4 -0
@@ -0,0 +1,166 @@
1
+ import { writeFileSync } from 'node:fs';
2
+ import { join } from 'node:path';
3
+ import { z } from 'zod';
4
+ import { ensureLayout, layoutPath } from '../../../shared/core/contract.js';
5
+ import { ensureDir, writeJson } from '../../../shared/core/json.js';
6
+ const WorkItemSchema = z.object({
7
+ id: z.string().min(1),
8
+ title: z.string().min(1),
9
+ tags: z.array(z.string()).default([]),
10
+ });
11
+ const WorkWithWorkItemInputSchema = z.object({
12
+ workItem: WorkItemSchema,
13
+ lane: z.enum(['ultrawork', 'ralph']),
14
+ branchName: z.string().min(1),
15
+ worktreePath: z.string().min(1),
16
+ prTitle: z.string().min(1),
17
+ prUrl: z.string().url(),
18
+ commitSha: z.string().min(7),
19
+ });
20
+ const DeadcodeEvaluationInputSchema = z.object({
21
+ symbol: z.string().min(1),
22
+ references: z.array(z.string()).default([]),
23
+ entryPointGuards: z.array(z.string()).default([]),
24
+ });
25
+ const SecurityFindingSchema = z.object({
26
+ id: z.string().min(1),
27
+ title: z.string().min(1),
28
+ cwe: z.string().min(1),
29
+ cvssV4: z.number().min(0).max(10),
30
+ owaspCategory: z.string().min(1),
31
+ exploitability: z.string().min(1),
32
+ });
33
+ const SecurityResearchInputSchema = z.object({
34
+ sessionId: z.string().min(1),
35
+ autoCreateBugs: z.boolean().default(true),
36
+ findings: z.array(SecurityFindingSchema).min(1),
37
+ });
38
+ function workWithWorkItemDir(root, workItemId) {
39
+ return join(layoutPath(root, 'work-with-workitem'), workItemId);
40
+ }
41
+ function securityReportPath(root, sessionId) {
42
+ return layoutPath(root, 'security', sessionId, 'findings.md');
43
+ }
44
+ export function planWorkWithWorkItemDelivery(root, input) {
45
+ ensureLayout(root);
46
+ const parsed = WorkWithWorkItemInputSchema.parse(input);
47
+ const prCommand = [
48
+ 'az repos pr create',
49
+ `--work-items ${parsed.workItem.id}`,
50
+ `--source-branch ${parsed.branchName}`,
51
+ `--title "${parsed.prTitle}"`,
52
+ ].join(' ');
53
+ const note = [
54
+ `PR: ${parsed.prUrl}`,
55
+ `Commit: ${parsed.commitSha}`,
56
+ `Lane: ${parsed.lane}`,
57
+ `Worktree cleaned up via ExitWorktree from ${parsed.worktreePath}`,
58
+ ].join(' | ');
59
+ const handoffPath = join(workWithWorkItemDir(root, parsed.workItem.id), 'handoff.json');
60
+ const plan = {
61
+ handoffPath,
62
+ prCommand,
63
+ toolCalls: [
64
+ {
65
+ name: 'factory_workitem_get',
66
+ args: { id: parsed.workItem.id },
67
+ },
68
+ {
69
+ name: 'factory_assignment_record',
70
+ args: {
71
+ workItemId: parsed.workItem.id,
72
+ prUrl: parsed.prUrl,
73
+ commitSha: parsed.commitSha,
74
+ note,
75
+ },
76
+ },
77
+ ],
78
+ assignmentRecord: {
79
+ workItemId: parsed.workItem.id,
80
+ prUrl: parsed.prUrl,
81
+ commitSha: parsed.commitSha,
82
+ note,
83
+ },
84
+ cleanup: {
85
+ command: 'ExitWorktree',
86
+ branchName: parsed.branchName,
87
+ worktreePath: parsed.worktreePath,
88
+ },
89
+ waitsForCi: false,
90
+ usesGithubApis: false,
91
+ steps: [
92
+ `factory_workitem_get ${parsed.workItem.id}`,
93
+ 'EnterWorktree',
94
+ parsed.lane === 'ralph' ? '$ralph' : '$ultrawork',
95
+ 'atomic commits',
96
+ prCommand,
97
+ 'factory_assignment_record',
98
+ 'ExitWorktree',
99
+ ],
100
+ };
101
+ writeJson(handoffPath, plan);
102
+ return plan;
103
+ }
104
+ export function evaluateDeadcodeCandidate(input) {
105
+ const parsed = DeadcodeEvaluationInputSchema.parse(input);
106
+ if (parsed.entryPointGuards.includes(parsed.symbol)) {
107
+ return {
108
+ deletable: false,
109
+ reason: `Symbol "${parsed.symbol}" is protected by the entry-point guard list.`,
110
+ };
111
+ }
112
+ if (parsed.references.length > 0) {
113
+ return {
114
+ deletable: false,
115
+ reason: `Symbol "${parsed.symbol}" still has ${parsed.references.length} live references.`,
116
+ };
117
+ }
118
+ return {
119
+ deletable: true,
120
+ reason: `Symbol "${parsed.symbol}" has zero references and is not guarded.`,
121
+ };
122
+ }
123
+ export function writeSecurityResearchFindings(root, input) {
124
+ ensureLayout(root);
125
+ const parsed = SecurityResearchInputSchema.parse(input);
126
+ const findings = [...parsed.findings].sort((a, b) => b.cvssV4 - a.cvssV4);
127
+ const reportPath = securityReportPath(root, parsed.sessionId);
128
+ const reportMarkdown = [
129
+ '# Security Research Findings',
130
+ `Session: ${parsed.sessionId}`,
131
+ '',
132
+ ...findings.map((finding) => [
133
+ `## ${finding.title}`,
134
+ '### Classification',
135
+ `- CWE: ${finding.cwe}`,
136
+ `- CVSS v4: ${finding.cvssV4.toFixed(1)}`,
137
+ `- OWASP: ${finding.owaspCategory}`,
138
+ '### Evidence',
139
+ `- Exploitability: ${finding.exploitability}`,
140
+ '### Suggested Action',
141
+ `- Triage ${finding.id} for remediation.`,
142
+ '### Blockers',
143
+ '- None recorded.',
144
+ '',
145
+ ].join('\n')),
146
+ ].join('\n');
147
+ ensureDir(join(layoutPath(root, 'security'), parsed.sessionId));
148
+ writeFileSync(reportPath, reportMarkdown, 'utf8');
149
+ const bugSyncRequests = parsed.autoCreateBugs
150
+ ? findings
151
+ .filter((finding) => finding.cvssV4 >= 9.0)
152
+ .map((finding) => ({
153
+ method: 'factory_workitem_sync_once',
154
+ kind: 'Bug',
155
+ title: `[Critical] ${finding.title}`,
156
+ severity: finding.cvssV4,
157
+ findingId: finding.id,
158
+ }))
159
+ : [];
160
+ return {
161
+ reportPath,
162
+ reportMarkdown,
163
+ bugSyncRequests,
164
+ };
165
+ }
166
+ //# sourceMappingURL=adoAuxiliaryRuntime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adoAuxiliaryRuntime.js","sourceRoot":"","sources":["../../../../src/shared/workflow/delivery/adoAuxiliaryRuntime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ export type FinalWaveReviewerId = 'f1' | 'f2' | 'f3' | 'f4';
2
+ export type FinalWaveVerdict = 'GO' | 'NO-GO';
3
+ export interface FinalWaveReviewer {
4
+ id: FinalWaveReviewerId;
5
+ label: 'F1' | 'F2' | 'F3' | 'F4';
6
+ name: string;
7
+ reviewer: string;
8
+ }
9
+ export interface FinalWaveReviewerResult {
10
+ reviewerId: FinalWaveReviewerId;
11
+ verdict: FinalWaveVerdict;
12
+ summary: string;
13
+ evidencePointers?: string[];
14
+ scopeViolations?: string[];
15
+ }
16
+ export interface FinalWaveStep {
17
+ reviewerId: FinalWaveReviewerId;
18
+ label: string;
19
+ name: string;
20
+ reviewer: string;
21
+ verdict: FinalWaveVerdict;
22
+ passed: boolean;
23
+ summary: string;
24
+ evidencePointers: string[];
25
+ scopeViolations: string[];
26
+ }
27
+ export interface WaveResult {
28
+ sessionId: string;
29
+ artefactPath: string;
30
+ passed: boolean;
31
+ blockers: string[];
32
+ steps: FinalWaveStep[];
33
+ }
34
+ export interface FinalWaveDispatchInput {
35
+ sessionId: string;
36
+ artefactPath: string;
37
+ reviewer: FinalWaveReviewer;
38
+ }
39
+ export type FinalWaveDispatcher = (input: FinalWaveDispatchInput) => Promise<FinalWaveReviewerResult> | FinalWaveReviewerResult;
40
+ export interface FinalWaveDispatchArtifact {
41
+ reviewerId: FinalWaveReviewerId;
42
+ reviewer: string;
43
+ promptPath: string;
44
+ continuationId: string;
45
+ agentId: string;
46
+ }
47
+ export declare const FINAL_WAVE_REVIEWERS: readonly FinalWaveReviewer[];
48
+ export declare function dispatchFinalWaveReviewers(sessionId: string, artefactPath: string, options?: {
49
+ root?: string;
50
+ parentLane?: string | null;
51
+ parentLaneId?: string | null;
52
+ }): {
53
+ pendingResults: FinalWaveReviewerResult[];
54
+ dispatches: FinalWaveDispatchArtifact[];
55
+ };
56
+ export declare function runFinalWave(sessionId: string, artefactPath: string, source: FinalWaveReviewerResult[] | FinalWaveDispatcher): Promise<WaveResult>;
57
+ //# sourceMappingURL=finalWave.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"finalWave.d.ts","sourceRoot":"","sources":["../../../../src/shared/workflow/delivery/finalWave.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,mBAAmB,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAC5D,MAAM,MAAM,gBAAgB,GAAG,IAAI,GAAG,OAAO,CAAC;AAE9C,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,mBAAmB,CAAC;IACxB,KAAK,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,mBAAmB,CAAC;IAChC,OAAO,EAAE,gBAAgB,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,mBAAmB,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,EAAE,aAAa,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,iBAAiB,CAAC;CAC7B;AAED,MAAM,MAAM,mBAAmB,GAC7B,CAAC,KAAK,EAAE,sBAAsB,KAAK,OAAO,CAAC,uBAAuB,CAAC,GAAG,uBAAuB,CAAC;AAEhG,MAAM,WAAW,yBAAyB;IACxC,UAAU,EAAE,mBAAmB,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,oBAAoB,EAAE,SAAS,iBAAiB,EAKnD,CAAC;AA0BX,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE;IACP,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB,GACL;IACD,cAAc,EAAE,uBAAuB,EAAE,CAAC;IAC1C,UAAU,EAAE,yBAAyB,EAAE,CAAC;CACzC,CA4CA;AAkDD,wBAAsB,YAAY,CAChC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,uBAAuB,EAAE,GAAG,mBAAmB,GACtD,OAAO,CAAC,UAAU,CAAC,CASrB"}
@@ -0,0 +1,123 @@
1
+ import { join } from 'node:path';
2
+ import { writeFileSync } from 'node:fs';
3
+ import { layoutPath, resolveOperatorRoot } from '../../../shared/core/contract.js';
4
+ import { ensureDir } from '../../../shared/core/json.js';
5
+ import { registerDelegatedSession } from '../../../shared/workflow/delegation/delegatedSession.js';
6
+ import { recordSubagentHookStart } from '../../../shared/workflow/delegation/subagentRuntime.js';
7
+ export const FINAL_WAVE_REVIEWERS = [
8
+ { id: 'f1', label: 'F1', name: 'Plan Compliance Audit', reviewer: 'architect' },
9
+ { id: 'f2', label: 'F2', name: 'Code Quality Review', reviewer: 'code-reviewer' },
10
+ { id: 'f3', label: 'F3', name: 'Real-Surface QA', reviewer: 'verifier' },
11
+ { id: 'f4', label: 'F4', name: 'Scope Fidelity Check', reviewer: 'scope-guard' },
12
+ ];
13
+ function finalWaveDir(root, sessionId) {
14
+ return layoutPath(root, 'final-wave', sessionId);
15
+ }
16
+ function finalWavePromptPath(root, sessionId, reviewerId) {
17
+ return join(finalWaveDir(root, sessionId), `${reviewerId}.md`);
18
+ }
19
+ function finalWaveAgentId(sessionId, reviewerId) {
20
+ return `final-wave:${sessionId}:${reviewerId}`;
21
+ }
22
+ function buildFinalWavePrompt(input) {
23
+ return [
24
+ `# ${input.reviewer.label} ${input.reviewer.name}`,
25
+ '',
26
+ `Reviewer: ${input.reviewer.reviewer}`,
27
+ `Session: ${input.sessionId}`,
28
+ `Artefact: ${input.artefactPath}`,
29
+ '',
30
+ 'Produce a GO or NO-GO review for this closure surface and return concrete evidence pointers.',
31
+ ].join('\n');
32
+ }
33
+ export function dispatchFinalWaveReviewers(sessionId, artefactPath, options = {}) {
34
+ const root = options.root ?? resolveOperatorRoot();
35
+ ensureDir(finalWaveDir(root, sessionId));
36
+ const dispatches = FINAL_WAVE_REVIEWERS.map((reviewer) => {
37
+ const promptPath = finalWavePromptPath(root, sessionId, reviewer.id);
38
+ writeFileSync(promptPath, buildFinalWavePrompt({ sessionId, artefactPath, reviewer }), 'utf8');
39
+ const agentId = finalWaveAgentId(sessionId, reviewer.id);
40
+ const delegated = registerDelegatedSession(root, {
41
+ kind: 'subagent',
42
+ externalRef: agentId,
43
+ parentLane: options.parentLane ?? null,
44
+ parentLaneId: options.parentLaneId ?? null,
45
+ reuseActive: false,
46
+ metadata: {
47
+ reviewerId: reviewer.id,
48
+ artefactPath,
49
+ source: 'final-wave-dispatch',
50
+ },
51
+ });
52
+ recordSubagentHookStart(root, {
53
+ agent_id: agentId,
54
+ session_id: sessionId,
55
+ parent_lane: options.parentLane ?? null,
56
+ parent_lane_id: options.parentLaneId ?? null,
57
+ continuation_id: delegated.continuationId,
58
+ task: `Final-wave ${reviewer.label} review`,
59
+ });
60
+ return {
61
+ reviewerId: reviewer.id,
62
+ reviewer: reviewer.reviewer,
63
+ promptPath,
64
+ continuationId: delegated.continuationId,
65
+ agentId,
66
+ };
67
+ });
68
+ return {
69
+ pendingResults: dispatches.map((dispatch) => ({
70
+ reviewerId: dispatch.reviewerId,
71
+ verdict: 'NO-GO',
72
+ summary: `Pending dispatched reviewer output for ${dispatch.reviewerId}.`,
73
+ evidencePointers: [dispatch.promptPath],
74
+ })),
75
+ dispatches,
76
+ };
77
+ }
78
+ function buildWaveResult(sessionId, artefactPath, results) {
79
+ const resultByReviewer = new Map(results.map((result) => [result.reviewerId, result]));
80
+ for (const reviewer of FINAL_WAVE_REVIEWERS) {
81
+ if (!resultByReviewer.has(reviewer.id)) {
82
+ throw new Error(`Missing final-wave reviewer result: ${reviewer.label}`);
83
+ }
84
+ }
85
+ const steps = FINAL_WAVE_REVIEWERS.map((reviewer) => {
86
+ const result = resultByReviewer.get(reviewer.id);
87
+ const scopeViolations = result.scopeViolations ?? [];
88
+ const passed = result.verdict === 'GO' && scopeViolations.length === 0;
89
+ return {
90
+ reviewerId: reviewer.id,
91
+ label: reviewer.label,
92
+ name: reviewer.name,
93
+ reviewer: reviewer.reviewer,
94
+ verdict: passed ? 'GO' : 'NO-GO',
95
+ passed,
96
+ summary: result.summary,
97
+ evidencePointers: result.evidencePointers ?? [],
98
+ scopeViolations,
99
+ };
100
+ });
101
+ const blockers = steps
102
+ .filter((step) => !step.passed)
103
+ .map((step) => {
104
+ const scopeSuffix = step.scopeViolations.length > 0
105
+ ? ` Scope violations: ${step.scopeViolations.join(', ')}`
106
+ : '';
107
+ return `${step.label} ${step.name} failed: ${step.summary}${scopeSuffix}`;
108
+ });
109
+ return {
110
+ sessionId,
111
+ artefactPath,
112
+ passed: blockers.length === 0,
113
+ blockers,
114
+ steps,
115
+ };
116
+ }
117
+ export async function runFinalWave(sessionId, artefactPath, source) {
118
+ const results = Array.isArray(source)
119
+ ? source
120
+ : await Promise.all(FINAL_WAVE_REVIEWERS.map((reviewer) => Promise.resolve(source({ sessionId, artefactPath, reviewer }))));
121
+ return buildWaveResult(sessionId, artefactPath, results);
122
+ }
123
+ //# sourceMappingURL=finalWave.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"finalWave.js","sourceRoot":"","sources":["../../../../src/shared/workflow/delivery/finalWave.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Phase 8 — Conservative lifecycle boolean flip mapping for eager AzDo push.
3
+ *
4
+ * When Ralph or Ultrawork transitions between phases, this module derives which
5
+ * AzDo lifecycle boolean (if any) should be flipped and enqueued to the
6
+ * governance-push-queue. Only the three well-understood booleans are emitted:
7
+ * planWritten — a plan has been committed to
8
+ * implementationComplete — implementation is done, entering verification
9
+ * testsPassing — gates/verifications passed, session completing
10
+ *
11
+ * All other transitions return null (no push enqueued).
12
+ *
13
+ * Team lane lifecycle transitions are also mapped here:
14
+ * implementationComplete — task_completed (executor finishes work)
15
+ * reviewPassed — review_approved (reviewer approves, lane-local only)
16
+ *
17
+ * PR sidecar lifecycle transitions:
18
+ * mergedToDevelop — PR merged into the develop branch
19
+ */
20
+ import type { RalphPhase } from '../../../lanes/ralph/index.js';
21
+ import type { UltraworkPhase } from '../../../lanes/ultrawork/index.js';
22
+ /** Minimal PR sidecar shape for lifecycle push mapping (Governance package owns full prSidecar contract). */
23
+ export interface PrSidecarState {
24
+ status: 'none' | 'pending' | 'opened' | 'merged' | 'closed' | 'failed';
25
+ target?: 'develop' | 'main' | string;
26
+ }
27
+ export type LifecycleFlip = Record<string, boolean>;
28
+ /**
29
+ * Returns a partial lifecycle boolean map for a Ralph phase transition,
30
+ * or null if the transition carries no lifecycle signal.
31
+ */
32
+ export declare function deriveRalphLifecycleFlip(from: RalphPhase, to: RalphPhase): LifecycleFlip | null;
33
+ /**
34
+ * Returns a partial lifecycle boolean map for an Ultrawork phase transition,
35
+ * or null if the transition carries no lifecycle signal.
36
+ */
37
+ export declare function deriveUltraworkLifecycleFlip(from: UltraworkPhase, to: UltraworkPhase): LifecycleFlip | null;
38
+ /**
39
+ * Discriminated union for team-lane lifecycle transitions.
40
+ * task_completed: executor marks work done (status → 'review').
41
+ * review_approved: reviewer approves on lane-local path (canAutoClose=true).
42
+ */
43
+ export type TeamTransition = {
44
+ kind: 'task_completed';
45
+ previousStatus: string;
46
+ nextStatus: string;
47
+ } | {
48
+ kind: 'review_approved';
49
+ };
50
+ /**
51
+ * Returns a partial lifecycle boolean map for a Team-lane transition,
52
+ * or null if the transition carries no lifecycle signal.
53
+ *
54
+ * Conservative contract:
55
+ * - task_completed → implementationComplete: true (only when transitioning to 'review')
56
+ * - review_approved → reviewPassed: true (only on lane-local path; cross-repo Epic
57
+ * callers must NOT call this — they defer via task_close_deferred instead)
58
+ */
59
+ export declare function deriveTeamLifecycleFlip(transition: TeamTransition): LifecycleFlip | null;
60
+ /**
61
+ * Returns { mergedToDevelop: true } when a PR sidecar transitions to merged
62
+ * on the develop branch, null for all other states or targets.
63
+ *
64
+ * 'main' merges are operator-triggered promotions and carry a separate signal,
65
+ * so they intentionally return null here.
66
+ */
67
+ export declare function prMergeToLifecycleFlip(state: PrSidecarState): LifecycleFlip | null;
68
+ //# sourceMappingURL=lifecyclePushMap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecyclePushMap.d.ts","sourceRoot":"","sources":["../../../../src/shared/workflow/delivery/lifecyclePushMap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,6GAA6G;AAC7G,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACvE,MAAM,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;CACtC;AAED,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEpD;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,UAAU,EAChB,EAAE,EAAE,UAAU,GACb,aAAa,GAAG,IAAI,CAQtB;AAED;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,cAAc,EACpB,EAAE,EAAE,cAAc,GACjB,aAAa,GAAG,IAAI,CAWtB;AAED;;;;GAIG;AACH,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GACtE;IAAE,IAAI,EAAE,iBAAiB,CAAA;CAAE,CAAC;AAEhC;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,cAAc,GAAG,aAAa,GAAG,IAAI,CAYxF;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,cAAc,GAAG,aAAa,GAAG,IAAI,CAKlF"}
@@ -0,0 +1,82 @@
1
+ /**
2
+ * Phase 8 — Conservative lifecycle boolean flip mapping for eager AzDo push.
3
+ *
4
+ * When Ralph or Ultrawork transitions between phases, this module derives which
5
+ * AzDo lifecycle boolean (if any) should be flipped and enqueued to the
6
+ * governance-push-queue. Only the three well-understood booleans are emitted:
7
+ * planWritten — a plan has been committed to
8
+ * implementationComplete — implementation is done, entering verification
9
+ * testsPassing — gates/verifications passed, session completing
10
+ *
11
+ * All other transitions return null (no push enqueued).
12
+ *
13
+ * Team lane lifecycle transitions are also mapped here:
14
+ * implementationComplete — task_completed (executor finishes work)
15
+ * reviewPassed — review_approved (reviewer approves, lane-local only)
16
+ *
17
+ * PR sidecar lifecycle transitions:
18
+ * mergedToDevelop — PR merged into the develop branch
19
+ */
20
+ /**
21
+ * Returns a partial lifecycle boolean map for a Ralph phase transition,
22
+ * or null if the transition carries no lifecycle signal.
23
+ */
24
+ export function deriveRalphLifecycleFlip(from, to) {
25
+ if (from === 'running' && to === 'verifying') {
26
+ return { implementationComplete: true };
27
+ }
28
+ if (from === 'verifying' && to === 'completed') {
29
+ return { testsPassing: true };
30
+ }
31
+ return null;
32
+ }
33
+ /**
34
+ * Returns a partial lifecycle boolean map for an Ultrawork phase transition,
35
+ * or null if the transition carries no lifecycle signal.
36
+ */
37
+ export function deriveUltraworkLifecycleFlip(from, to) {
38
+ if (from === 'plan' && to === 'execute') {
39
+ return { planWritten: true };
40
+ }
41
+ if (from === 'execute' && to === 'verify') {
42
+ return { implementationComplete: true };
43
+ }
44
+ if (from === 'verify' && to === 'completed') {
45
+ return { testsPassing: true };
46
+ }
47
+ return null;
48
+ }
49
+ /**
50
+ * Returns a partial lifecycle boolean map for a Team-lane transition,
51
+ * or null if the transition carries no lifecycle signal.
52
+ *
53
+ * Conservative contract:
54
+ * - task_completed → implementationComplete: true (only when transitioning to 'review')
55
+ * - review_approved → reviewPassed: true (only on lane-local path; cross-repo Epic
56
+ * callers must NOT call this — they defer via task_close_deferred instead)
57
+ */
58
+ export function deriveTeamLifecycleFlip(transition) {
59
+ if (transition.kind === 'task_completed' &&
60
+ transition.nextStatus === 'review' &&
61
+ transition.previousStatus !== 'review') {
62
+ return { implementationComplete: true };
63
+ }
64
+ if (transition.kind === 'review_approved') {
65
+ return { reviewPassed: true };
66
+ }
67
+ return null;
68
+ }
69
+ /**
70
+ * Returns { mergedToDevelop: true } when a PR sidecar transitions to merged
71
+ * on the develop branch, null for all other states or targets.
72
+ *
73
+ * 'main' merges are operator-triggered promotions and carry a separate signal,
74
+ * so they intentionally return null here.
75
+ */
76
+ export function prMergeToLifecycleFlip(state) {
77
+ if (state.status === 'merged' && (state.target === 'develop' || !state.target)) {
78
+ return { mergedToDevelop: true };
79
+ }
80
+ return null;
81
+ }
82
+ //# sourceMappingURL=lifecyclePushMap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecyclePushMap.js","sourceRoot":"","sources":["../../../../src/shared/workflow/delivery/lifecyclePushMap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAYH;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CACtC,IAAgB,EAChB,EAAc;IAEd,IAAI,IAAI,KAAK,SAAS,IAAI,EAAE,KAAK,WAAW,EAAE,CAAC;QAC7C,OAAO,EAAE,sBAAsB,EAAE,IAAI,EAAE,CAAC;IAC1C,CAAC;IACD,IAAI,IAAI,KAAK,WAAW,IAAI,EAAE,KAAK,WAAW,EAAE,CAAC;QAC/C,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IAChC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,4BAA4B,CAC1C,IAAoB,EACpB,EAAkB;IAElB,IAAI,IAAI,KAAK,MAAM,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;QACxC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;IAC/B,CAAC;IACD,IAAI,IAAI,KAAK,SAAS,IAAI,EAAE,KAAK,QAAQ,EAAE,CAAC;QAC1C,OAAO,EAAE,sBAAsB,EAAE,IAAI,EAAE,CAAC;IAC1C,CAAC;IACD,IAAI,IAAI,KAAK,QAAQ,IAAI,EAAE,KAAK,WAAW,EAAE,CAAC;QAC5C,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IAChC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAWD;;;;;;;;GAQG;AACH,MAAM,UAAU,uBAAuB,CAAC,UAA0B;IAChE,IACE,UAAU,CAAC,IAAI,KAAK,gBAAgB;QACpC,UAAU,CAAC,UAAU,KAAK,QAAQ;QAClC,UAAU,CAAC,cAAc,KAAK,QAAQ,EACtC,CAAC;QACD,OAAO,EAAE,sBAAsB,EAAE,IAAI,EAAE,CAAC;IAC1C,CAAC;IACD,IAAI,UAAU,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;QAC1C,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;IAChC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAqB;IAC1D,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/E,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;IACnC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,7 @@
1
+ export interface PrSidecarState {
2
+ status: 'none' | 'pending' | 'opened' | 'merged' | 'closed' | 'failed';
3
+ target: 'develop' | 'main' | string;
4
+ prUrl?: string;
5
+ }
6
+ export declare function isPrActive(state: PrSidecarState): boolean;
7
+ //# sourceMappingURL=prSidecar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prSidecar.d.ts","sourceRoot":"","sources":["../../../../src/shared/workflow/delivery/prSidecar.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACvE,MAAM,EAAE,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAEzD"}
@@ -0,0 +1,4 @@
1
+ export function isPrActive(state) {
2
+ return state.status === 'opened' || state.status === 'pending';
3
+ }
4
+ //# sourceMappingURL=prSidecar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prSidecar.js","sourceRoot":"","sources":["../../../../src/shared/workflow/delivery/prSidecar.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,UAAU,CAAC,KAAqB;IAC9C,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC;AACjE,CAAC"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * D2 — Review convergence / staleness logic.
3
+ *
4
+ * computeReviewStaleState implements the three-predicate model from Phase 5 Q1:
5
+ * P1: newer run post-dates review evidenceHorizon.verificationRunTimestamp AND commit hash differs → stale
6
+ * P2: newer run on same OR different commit explicitly passes gates the review flagged failing → superseded
7
+ * P3: same commit, ≥2 newer runs all agree previously-failing gates now pass → stale (flake guard)
8
+ *
9
+ * Priority: P2 > P1 > P3 (first match wins in priority order).
10
+ */
11
+ import type { OperatorReviewItem } from '../../../operator/runtime.js';
12
+ /** A single verification run that can be compared against a review. */
13
+ export interface VerificationRun {
14
+ runId: string;
15
+ runTimestamp: string;
16
+ commitHash: string;
17
+ /** Gate results recorded in this run. */
18
+ gateResults: Array<{
19
+ gateId: string;
20
+ passed: boolean;
21
+ }>;
22
+ }
23
+ export interface StaleStateResult {
24
+ staleState: 'current' | 'stale' | 'superseded';
25
+ trigger: 'P1' | 'P2' | 'P3' | null;
26
+ }
27
+ /**
28
+ * Compute whether a review is current, stale, or superseded relative to
29
+ * a list of verification runs that happened after the review was created.
30
+ *
31
+ * @param review The review item to assess.
32
+ * @param runs All verification runs to compare against (order irrelevant).
33
+ * @param failingGateIds Optional explicit list of gate IDs the review flagged failing.
34
+ * If omitted, gate IDs are parsed from review.notes.
35
+ */
36
+ export declare function computeReviewStaleState(review: OperatorReviewItem, runs: VerificationRun[], failingGateIds?: string[]): StaleStateResult;
37
+ //# sourceMappingURL=reviewStaleness.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reviewStaleness.d.ts","sourceRoot":"","sources":["../../../../src/shared/workflow/delivery/reviewStaleness.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,uEAAuE;AACvE,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,yCAAyC;IACzC,WAAW,EAAE,KAAK,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,OAAO,CAAC;KACjB,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,SAAS,GAAG,OAAO,GAAG,YAAY,CAAC;IAC/C,OAAO,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;CACpC;AAqBD;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,kBAAkB,EAC1B,IAAI,EAAE,eAAe,EAAE,EACvB,cAAc,CAAC,EAAE,MAAM,EAAE,GACxB,gBAAgB,CA8DlB"}