@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,69 @@
1
+ import { readFileSync, readdirSync, statSync } from 'node:fs';
2
+ import { join } from 'node:path';
3
+ function collectMustNotHavePatterns(planPath) {
4
+ const content = readFileSync(planPath, 'utf8');
5
+ const inlineMatches = content.match(/Must NOT Have:\s*(.+)/i);
6
+ if (inlineMatches) {
7
+ return inlineMatches[1]
8
+ .split(',')
9
+ .map((pattern) => pattern.trim())
10
+ .filter(Boolean);
11
+ }
12
+ const lines = content.split(/\r?\n/);
13
+ const start = lines.findIndex((line) => /^#{1,6}\s+Must NOT Have\s*$/i.test(line.trim()));
14
+ if (start < 0) {
15
+ return [];
16
+ }
17
+ const patterns = [];
18
+ for (let i = start + 1; i < lines.length; i += 1) {
19
+ const line = lines[i];
20
+ if (/^#{1,6}\s+/.test(line.trim()))
21
+ break;
22
+ const match = line.match(/^\s*[-*]\s+(.+?)\s*$/);
23
+ if (match) {
24
+ patterns.push(match[1].trim());
25
+ }
26
+ else if (line.trim()) {
27
+ patterns.push(line.trim());
28
+ }
29
+ }
30
+ return patterns;
31
+ }
32
+ export function buildScopeGuard(planPath) {
33
+ return {
34
+ planPath,
35
+ patterns: collectMustNotHavePatterns(planPath),
36
+ };
37
+ }
38
+ function collectFiles(dir) {
39
+ const out = [];
40
+ for (const entry of readdirSync(dir, { withFileTypes: true })) {
41
+ const path = join(dir, entry.name);
42
+ if (entry.isDirectory()) {
43
+ out.push(...collectFiles(path));
44
+ }
45
+ else if (entry.isFile()) {
46
+ out.push(path);
47
+ }
48
+ }
49
+ return out;
50
+ }
51
+ export function runScopeGuard(guard, artefactDir) {
52
+ if (guard.patterns.length === 0) {
53
+ return [];
54
+ }
55
+ if (!statSync(artefactDir).isDirectory()) {
56
+ throw new Error(`scope guard artefactDir is not a directory: ${artefactDir}`);
57
+ }
58
+ const violations = [];
59
+ for (const filePath of collectFiles(artefactDir)) {
60
+ const content = readFileSync(filePath, 'utf8');
61
+ for (const pattern of guard.patterns) {
62
+ if (content.includes(pattern)) {
63
+ violations.push({ filePath, pattern });
64
+ }
65
+ }
66
+ }
67
+ return violations;
68
+ }
69
+ //# sourceMappingURL=scopeGuard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scopeGuard.js","sourceRoot":"","sources":["../../../../src/shared/workflow/closure/scopeGuard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAYjC,SAAS,0BAA0B,CAAC,QAAgB;IAClD,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC/C,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC9D,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,aAAa,CAAC,CAAC,CAAC;aACpB,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;aAChC,MAAM,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,8BAA8B,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAC1F,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACd,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACjD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAAE,MAAM;QAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACjD,IAAI,KAAK,EAAE,CAAC;YACV,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACjC,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;YACvB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,QAAgB;IAC9C,OAAO;QACL,QAAQ;QACR,QAAQ,EAAE,0BAA0B,CAAC,QAAQ,CAAC;KAC/C,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,GAAW;IAC/B,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QAC9D,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,GAAG,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;QAClC,CAAC;aAAM,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YAC1B,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAiB,EAAE,WAAmB;IAClE,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,+CAA+C,WAAW,EAAE,CAAC,CAAC;IAChF,CAAC;IAED,MAAM,UAAU,GAAqB,EAAE,CAAC;IACxC,KAAK,MAAM,QAAQ,IAAI,YAAY,CAAC,WAAW,CAAC,EAAE,CAAC;QACjD,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC/C,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACrC,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC9B,UAAU,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { z } from 'zod';
2
+ export declare const ULTRAGOAL_SCHEMA_VERSION: 1;
3
+ export declare const UltragoalArtifactSchema: z.ZodObject<{
4
+ schemaVersion: z.ZodLiteral<1>;
5
+ id: z.ZodString;
6
+ createdAt: z.ZodString;
7
+ updatedAt: z.ZodString;
8
+ payload: z.ZodRecord<z.ZodString, z.ZodUnknown>;
9
+ }, z.core.$strip>;
10
+ export type UltragoalArtifact = z.infer<typeof UltragoalArtifactSchema>;
11
+ export declare function parseUltragoalArtifact(raw: unknown, idHint: string): UltragoalArtifact;
12
+ export declare function parseUltragoalId(raw: unknown): string;
13
+ //# sourceMappingURL=ultragoalArtifact.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ultragoalArtifact.d.ts","sourceRoot":"","sources":["../../../../src/shared/workflow/closure/ultragoalArtifact.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,wBAAwB,EAAG,CAAU,CAAC;AAKnD,eAAO,MAAM,uBAAuB;;;;;;iBAMlC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAQxE,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,iBAAiB,CAMtF;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAMrD"}
@@ -0,0 +1,31 @@
1
+ import { z } from 'zod';
2
+ export const ULTRAGOAL_SCHEMA_VERSION = 1;
3
+ const ULTRAGOAL_ID_PATTERN = /^[A-Za-z0-9._-]+$/;
4
+ const UltragoalPayloadSchema = z.record(z.string(), z.unknown());
5
+ export const UltragoalArtifactSchema = z.object({
6
+ schemaVersion: z.literal(ULTRAGOAL_SCHEMA_VERSION),
7
+ id: z.string().min(1).regex(ULTRAGOAL_ID_PATTERN),
8
+ createdAt: z.string().min(1),
9
+ updatedAt: z.string().min(1),
10
+ payload: UltragoalPayloadSchema,
11
+ });
12
+ function formatSchemaError(error) {
13
+ return error.issues
14
+ .map((issue) => `${issue.path.join('.') || '(root)'} ${issue.message}`)
15
+ .join('; ');
16
+ }
17
+ export function parseUltragoalArtifact(raw, idHint) {
18
+ const parsed = UltragoalArtifactSchema.safeParse(raw);
19
+ if (!parsed.success) {
20
+ throw new Error(`Malformed ultragoal "${idHint}": ${formatSchemaError(parsed.error)}`);
21
+ }
22
+ return parsed.data;
23
+ }
24
+ export function parseUltragoalId(raw) {
25
+ const parsed = z.string().min(1).regex(ULTRAGOAL_ID_PATTERN).safeParse(raw);
26
+ if (!parsed.success) {
27
+ throw new Error('operator_ultragoal: id must be a non-empty slug using only letters, numbers, dot, underscore, or dash');
28
+ }
29
+ return parsed.data;
30
+ }
31
+ //# sourceMappingURL=ultragoalArtifact.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ultragoalArtifact.js","sourceRoot":"","sources":["../../../../src/shared/workflow/closure/ultragoalArtifact.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAU,CAAC;AACnD,MAAM,oBAAoB,GAAG,mBAAmB,CAAC;AAEjD,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AAEjE,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9C,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,wBAAwB,CAAC;IAClD,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC;IACjD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5B,OAAO,EAAE,sBAAsB;CAChC,CAAC,CAAC;AAIH,SAAS,iBAAiB,CAAC,KAAiB;IAC1C,OAAO,KAAK,CAAC,MAAM;SAChB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;SACtE,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,GAAY,EAAE,MAAc;IACjE,MAAM,MAAM,GAAG,uBAAuB,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACtD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,wBAAwB,MAAM,MAAM,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACzF,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,GAAY;IAC3C,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC5E,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,uGAAuG,CAAC,CAAC;IAC3H,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC"}
@@ -0,0 +1,70 @@
1
+ import { type OperatorReviewItem } from '../../../operator/runtime.js';
2
+ import { type OperatorTask } from '../../../shared/state/tasks.js';
3
+ import type { EvidenceHorizon } from '../../../shared/core/events.js';
4
+ import { type VerificationRun } from '../../../shared/workflow/delivery/reviewStaleness.js';
5
+ export declare const DEFAULT_REVIEW_STALE_MS: number;
6
+ export interface WorkflowReconcileTaskClassification {
7
+ taskId: string;
8
+ reviewId: string;
9
+ reason: 'missing-review-record' | 'review-stale';
10
+ ageMs?: number;
11
+ applied: boolean;
12
+ }
13
+ export interface WorkflowReconcileReviewClassification {
14
+ reviewId: string;
15
+ taskId: string;
16
+ reason: 'orphaned-review' | 'pending-no-review-state';
17
+ applied: boolean;
18
+ }
19
+ export interface WorkflowReconcileResult {
20
+ assessedAt: string;
21
+ staleThresholdMs: number;
22
+ summary: {
23
+ tasksReviewed: number;
24
+ staleTaskReviews: number;
25
+ orphanedReviews: number;
26
+ reviewInvalidations: number;
27
+ autoApplied: number;
28
+ status: 'reconciled' | 'unchanged';
29
+ };
30
+ staleTaskReviews: WorkflowReconcileTaskClassification[];
31
+ orphanedReviews: WorkflowReconcileReviewClassification[];
32
+ /** D6 — review convergence-state invalidations computed this reconcile pass. */
33
+ reviewInvalidations: ReviewInvalidationResult[];
34
+ }
35
+ export interface ReconcileOptions {
36
+ staleReviewAgeMs?: number;
37
+ apply?: boolean;
38
+ now?: string;
39
+ /** Optional evidence horizon for the ReconcileEvent persisted to ledger. */
40
+ evidenceHorizon?: EvidenceHorizon;
41
+ modeType?: 'ralph' | 'ultrawork' | 'autopilot';
42
+ modeId?: string;
43
+ /**
44
+ * D6 — verification runs to compare against review evidence horizons.
45
+ * When provided, computeReviewStaleState is run for every review and
46
+ * staleState / supersededBy are updated atomically with the verdict.
47
+ */
48
+ verificationRuns?: VerificationRun[];
49
+ /**
50
+ * D6 — optional map from reviewId → explicit failing gate IDs.
51
+ * Supplement or override gate IDs parsed from review.notes.
52
+ */
53
+ failingGateIds?: Map<string, string[]>;
54
+ }
55
+ /** Result of D6 review-invalidation for one review. */
56
+ export interface ReviewInvalidationResult {
57
+ reviewId: string;
58
+ taskId: string;
59
+ before: {
60
+ staleState: OperatorReviewItem['staleState'];
61
+ };
62
+ after: {
63
+ staleState: OperatorReviewItem['staleState'];
64
+ supersededBy?: string;
65
+ };
66
+ trigger: 'P1' | 'P2' | 'P3' | null;
67
+ applied: boolean;
68
+ }
69
+ export declare function reconcileWorkflowState(root: string, tasks: OperatorTask[], reviews: OperatorReviewItem[], options?: ReconcileOptions): WorkflowReconcileResult;
70
+ //# sourceMappingURL=workflowReconcile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflowReconcile.d.ts","sourceRoot":"","sources":["../../../../src/shared/workflow/closure/workflowReconcile.ts"],"names":[],"mappings":"AACA,OAAO,EAA8B,KAAK,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC5F,OAAO,EAAE,KAAK,YAAY,EAAc,MAAM,yBAAyB,CAAC;AAExE,OAAO,KAAK,EAAkB,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAA2B,KAAK,eAAe,EAAE,MAAM,+CAA+C,CAAC;AAG9G,eAAO,MAAM,uBAAuB,QAAsB,CAAC;AAE3D,MAAM,WAAW,mCAAmC;IAClD,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,uBAAuB,GAAG,cAAc,CAAC;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,qCAAqC;IACpD,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,iBAAiB,GAAG,yBAAyB,CAAC;IACtD,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,uBAAuB;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE;QACP,aAAa,EAAE,MAAM,CAAC;QACtB,gBAAgB,EAAE,MAAM,CAAC;QACzB,eAAe,EAAE,MAAM,CAAC;QACxB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,YAAY,GAAG,WAAW,CAAC;KACpC,CAAC;IACF,gBAAgB,EAAE,mCAAmC,EAAE,CAAC;IACxD,eAAe,EAAE,qCAAqC,EAAE,CAAC;IACzD,gFAAgF;IAChF,mBAAmB,EAAE,wBAAwB,EAAE,CAAC;CACjD;AAoBD,MAAM,WAAW,gBAAgB;IAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,4EAA4E;IAC5E,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,WAAW,CAAC;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAC;IACrC;;;OAGG;IACH,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CACxC;AAED,uDAAuD;AACvD,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE;QAAE,UAAU,EAAE,kBAAkB,CAAC,YAAY,CAAC,CAAA;KAAE,CAAC;IACzD,KAAK,EAAE;QAAE,UAAU,EAAE,kBAAkB,CAAC,YAAY,CAAC,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/E,OAAO,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACnC,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,YAAY,EAAE,EACrB,OAAO,EAAE,kBAAkB,EAAE,EAC7B,OAAO,GAAE,gBAAqB,GAC7B,uBAAuB,CAuQzB"}
@@ -0,0 +1,267 @@
1
+ import { randomUUID } from 'node:crypto';
2
+ import { appendLedger, updateReview } from '../../../operator/runtime.js';
3
+ import { updateTask } from '../../../shared/state/tasks.js';
4
+ import { createEvidenceHorizon } from '../../../shared/core/events.js';
5
+ import { computeReviewStaleState } from '../../../shared/workflow/delivery/reviewStaleness.js';
6
+ import { coalesceTaskId } from '../../../shared/core/terminology.js';
7
+ export const DEFAULT_REVIEW_STALE_MS = 24 * 60 * 60 * 1000;
8
+ function toReviewsByTaskId(reviews) {
9
+ const buckets = new Map();
10
+ for (const review of reviews) {
11
+ const taskId = coalesceTaskId(review);
12
+ if (!taskId)
13
+ continue;
14
+ const existing = buckets.get(taskId);
15
+ if (existing === undefined) {
16
+ buckets.set(taskId, [review]);
17
+ }
18
+ else {
19
+ existing.push(review);
20
+ }
21
+ }
22
+ for (const reviewList of buckets.values()) {
23
+ reviewList.sort((a, b) => b.updatedAt.localeCompare(a.updatedAt));
24
+ }
25
+ return buckets;
26
+ }
27
+ export function reconcileWorkflowState(root, tasks, reviews, options = {}) {
28
+ const now = options.now ?? new Date().toISOString();
29
+ const nowMs = Date.parse(now);
30
+ const staleThresholdMs = Math.max(options.staleReviewAgeMs ?? DEFAULT_REVIEW_STALE_MS, 0);
31
+ const apply = options.apply === true;
32
+ const reviewsByTaskId = toReviewsByTaskId(reviews);
33
+ const staleTaskReviews = [];
34
+ const orphanedReviews = [];
35
+ const tasksById = new Map(tasks.map((task) => [task.id, task]));
36
+ const reviewStateTasks = tasks.filter((task) => task.status === 'review');
37
+ const tasksReviewed = reviewStateTasks.length;
38
+ for (const task of reviewStateTasks) {
39
+ const taskReviews = reviewsByTaskId.get(task.id) ?? [];
40
+ if (taskReviews.length === 0) {
41
+ const classification = {
42
+ taskId: task.id,
43
+ reviewId: '',
44
+ reason: 'missing-review-record',
45
+ applied: false,
46
+ };
47
+ staleTaskReviews.push(classification);
48
+ continue;
49
+ }
50
+ if (task.reviewStatus !== 'pending') {
51
+ continue;
52
+ }
53
+ for (const review of taskReviews) {
54
+ if (review.status !== 'pending') {
55
+ continue;
56
+ }
57
+ const reviewAgeMs = nowMs - Date.parse(review.updatedAt);
58
+ if (reviewAgeMs < staleThresholdMs) {
59
+ continue;
60
+ }
61
+ const classification = {
62
+ taskId: task.id,
63
+ reviewId: review.id,
64
+ reason: 'review-stale',
65
+ ageMs: reviewAgeMs,
66
+ applied: false,
67
+ };
68
+ if (apply) {
69
+ updateTask(root, task.id, { reviewStale: true });
70
+ updateReview(root, review.id, { statusHint: 'stale' });
71
+ classification.applied = true;
72
+ }
73
+ staleTaskReviews.push(classification);
74
+ }
75
+ }
76
+ const reviewedTaskIds = new Set(tasksById.keys());
77
+ for (const review of reviews) {
78
+ const reviewTaskId = coalesceTaskId(review);
79
+ if (!reviewTaskId || !reviewedTaskIds.has(reviewTaskId)) {
80
+ const classification = {
81
+ reviewId: review.id,
82
+ taskId: reviewTaskId ?? '',
83
+ reason: 'orphaned-review',
84
+ applied: false,
85
+ };
86
+ if (apply && review.status === 'pending') {
87
+ updateReview(root, review.id, { statusHint: 'stale' });
88
+ classification.applied = true;
89
+ }
90
+ orphanedReviews.push(classification);
91
+ continue;
92
+ }
93
+ const task = reviewTaskId ? tasksById.get(reviewTaskId) : undefined;
94
+ if (task && task.status !== 'review' && review.status === 'pending') {
95
+ const classification = {
96
+ reviewId: review.id,
97
+ taskId: reviewTaskId,
98
+ reason: 'pending-no-review-state',
99
+ applied: false,
100
+ };
101
+ if (apply) {
102
+ updateReview(root, review.id, { statusHint: 'stale' });
103
+ classification.applied = true;
104
+ }
105
+ orphanedReviews.push(classification);
106
+ }
107
+ }
108
+ // ── D6: review invalidation rule ─────────────────────────────────────────────
109
+ // For every review, compute staleState via the three-predicate model and
110
+ // update staleState/supersededBy atomically with verdict (never rewriting it).
111
+ const reviewInvalidations = [];
112
+ if (options.verificationRuns && options.verificationRuns.length > 0) {
113
+ for (const review of reviews) {
114
+ const gateIds = options.failingGateIds?.get(review.id);
115
+ const { staleState: newStaleState, trigger } = computeReviewStaleState(review, options.verificationRuns, gateIds);
116
+ const oldStaleState = review.staleState;
117
+ const changed6 = newStaleState !== 'current' && newStaleState !== oldStaleState;
118
+ if (!changed6)
119
+ continue;
120
+ // Determine supersededBy: pick the newest run that drove the result.
121
+ const supersededBy = newStaleState === 'superseded'
122
+ ? options.verificationRuns
123
+ .filter((r) => r.runTimestamp > (review.evidenceHorizon?.verificationRunTimestamp ?? ''))
124
+ .sort((a, b) => b.runTimestamp.localeCompare(a.runTimestamp))[0]?.runId
125
+ : undefined;
126
+ const invalidation = {
127
+ reviewId: review.id,
128
+ taskId: coalesceTaskId(review) ?? '',
129
+ before: { staleState: oldStaleState },
130
+ after: { staleState: newStaleState, supersededBy },
131
+ trigger,
132
+ applied: false,
133
+ };
134
+ if (apply) {
135
+ updateReview(root, review.id, {
136
+ staleState: newStaleState,
137
+ supersededBy,
138
+ });
139
+ invalidation.applied = true;
140
+ // Mutate the in-memory copy so downstream staleEntities reflect reality.
141
+ review.staleState = newStaleState;
142
+ review.supersededBy = supersededBy;
143
+ }
144
+ reviewInvalidations.push(invalidation);
145
+ }
146
+ }
147
+ let autoApplied = 0;
148
+ for (const stale of staleTaskReviews) {
149
+ if (stale.applied)
150
+ autoApplied += 1;
151
+ }
152
+ for (const orphan of orphanedReviews) {
153
+ if (orphan.applied)
154
+ autoApplied += 1;
155
+ }
156
+ for (const inv of reviewInvalidations) {
157
+ if (inv.applied)
158
+ autoApplied += 1;
159
+ }
160
+ const changed = staleTaskReviews.some((entry) => entry.applied) ||
161
+ orphanedReviews.some((entry) => entry.applied) ||
162
+ reviewInvalidations.some((entry) => entry.applied);
163
+ // ── D11: emit ReconcileEvent to ledger ──────────────────────────────────────
164
+ const correlationId = `reconcile_${randomUUID().slice(0, 12)}`;
165
+ const evidenceHorizon = options.evidenceHorizon ?? createEvidenceHorizon(root);
166
+ const staleEntities = [
167
+ ...staleTaskReviews
168
+ .filter((s) => s.reason === 'review-stale' && s.reviewId !== '')
169
+ .map((s) => ({
170
+ entityType: 'review',
171
+ entityId: s.reviewId,
172
+ reason: 'evidence_outdated',
173
+ trigger: 'P1',
174
+ })),
175
+ ...staleTaskReviews
176
+ .filter((s) => s.reason === 'missing-review-record')
177
+ .map((s) => ({
178
+ entityType: 'task',
179
+ entityId: s.taskId,
180
+ reason: 'evidence_outdated',
181
+ trigger: 'P1',
182
+ })),
183
+ // D6 — map trigger to reason for ReconcileEvent
184
+ ...reviewInvalidations.map((inv) => ({
185
+ entityType: 'review',
186
+ entityId: inv.reviewId,
187
+ reason: (inv.trigger === 'P2'
188
+ ? 'result_flipped'
189
+ : inv.trigger === 'P1'
190
+ ? 'commit_advanced'
191
+ : 'evidence_outdated'),
192
+ trigger: (inv.trigger ?? 'P1'),
193
+ })),
194
+ ];
195
+ const autoAppliedEntities = [
196
+ ...staleTaskReviews
197
+ .filter((s) => s.applied && s.reviewId !== '')
198
+ .map((s) => ({
199
+ entityType: 'review',
200
+ entityId: s.reviewId,
201
+ change: 'statusHint=stale',
202
+ })),
203
+ ...staleTaskReviews
204
+ .filter((s) => s.applied && s.reason === 'missing-review-record')
205
+ .map((s) => ({
206
+ entityType: 'task',
207
+ entityId: s.taskId,
208
+ change: 'reviewStale=true',
209
+ })),
210
+ ...orphanedReviews
211
+ .filter((o) => o.applied)
212
+ .map((o) => ({
213
+ entityType: 'review',
214
+ entityId: o.reviewId,
215
+ change: 'statusHint=stale',
216
+ })),
217
+ // D6 — applied invalidation updates
218
+ ...reviewInvalidations
219
+ .filter((inv) => inv.applied)
220
+ .map((inv) => ({
221
+ entityType: 'review',
222
+ entityId: inv.reviewId,
223
+ change: `staleState=${inv.after.staleState}${inv.after.supersededBy ? `,supersededBy=${inv.after.supersededBy}` : ''}`,
224
+ })),
225
+ ];
226
+ const requiresOperatorDecision = orphanedReviews
227
+ .filter((o) => !o.applied && o.reason === 'orphaned-review')
228
+ .map((o) => ({
229
+ entityType: 'review',
230
+ entityId: o.reviewId,
231
+ description: `Review ${o.reviewId} references unknown task ${o.taskId}`,
232
+ }));
233
+ const reconcileEvent = {
234
+ kind: 'reconcile',
235
+ action: 'reconcile_complete',
236
+ schemaVersion: 1,
237
+ correlationId,
238
+ modeType: options.modeType,
239
+ modeId: options.modeId,
240
+ evidenceHorizon,
241
+ staleEntities,
242
+ autoApplied: autoAppliedEntities,
243
+ requiresOperatorDecision,
244
+ };
245
+ appendLedger(root, {
246
+ kind: 'reconcile',
247
+ action: reconcileEvent.action,
248
+ detail: `Reconcile complete: ${staleEntities.length} stale, ${autoAppliedEntities.length} auto-applied, ${requiresOperatorDecision.length} operator-decision`,
249
+ metadata: reconcileEvent,
250
+ });
251
+ return {
252
+ assessedAt: now,
253
+ staleThresholdMs,
254
+ summary: {
255
+ tasksReviewed,
256
+ staleTaskReviews: staleTaskReviews.length,
257
+ orphanedReviews: orphanedReviews.length,
258
+ reviewInvalidations: reviewInvalidations.length,
259
+ autoApplied,
260
+ status: changed ? 'reconciled' : 'unchanged',
261
+ },
262
+ staleTaskReviews,
263
+ orphanedReviews,
264
+ reviewInvalidations,
265
+ };
266
+ }
267
+ //# sourceMappingURL=workflowReconcile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflowReconcile.js","sourceRoot":"","sources":["../../../../src/shared/workflow/closure/workflowReconcile.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,109 @@
1
+ import { type OperatorAuthority, type StopVerdict, type OperatorTask } from '../../../operator/operatorCore.js';
2
+ export type ContinuationStatus = 'idle' | 'blocked' | 'cleared';
3
+ export type ContinuationLane = 'ralph' | 'ultrawork' | 'autopilot' | 'team' | 'none';
4
+ export interface ContinuationState {
5
+ schemaVersion: 1;
6
+ status: ContinuationStatus;
7
+ lane: ContinuationLane;
8
+ laneId: string | null;
9
+ blockedAt: string | null;
10
+ clearedAt: string | null;
11
+ updatedAt: string;
12
+ denyCount: number;
13
+ lastProgressAt: string | null;
14
+ lastProgressSource: string | null;
15
+ reason: string | null;
16
+ blockers: string[];
17
+ blockerCategories: string[];
18
+ recommendedTools: string[];
19
+ resumeHint: string | null;
20
+ lastSessionId: string | null;
21
+ lastTranscriptPath: string | null;
22
+ idleTurnCount: number;
23
+ reminderCount: number;
24
+ lastReminderAt: string | null;
25
+ lastReminderSource: string | null;
26
+ lastSessionEndAt: string | null;
27
+ lastActivityAt: string | null;
28
+ lastActivitySource: string | null;
29
+ idleThresholdMs: number;
30
+ pendingTaskIds: string[];
31
+ pendingTaskTitles: string[];
32
+ pendingReviewTaskIds: string[];
33
+ pendingMessageIds: string[];
34
+ consecutiveFailureCount: number;
35
+ laneSyncGatedAt: string | null;
36
+ /** Phase 2 — child agent ids currently running under the parent session (best-effort). */
37
+ activeSubagentIds?: string[];
38
+ lastSubagentLifecycleAt?: string | null;
39
+ lastSubagentLifecycleSource?: string | null;
40
+ }
41
+ export interface LogicalIdleStatus {
42
+ lastActivityAt: string | null;
43
+ lastActivitySource: string | null;
44
+ idleThresholdMs: number;
45
+ idleDurationMs: number | null;
46
+ isLogicalIdle: boolean;
47
+ }
48
+ export type { ContinuationEventReservationResult } from '../../../shared/workflow/continuation/continuationEventReservations.js';
49
+ export { reserveContinuationEvent, clearContinuationEventReservations } from '../../../shared/workflow/continuation/continuationEventReservations.js';
50
+ export declare const FAILURE_ESCALATION_THRESHOLD = 3;
51
+ export declare const LANE_SYNC_GATE_THRESHOLD = 8;
52
+ export declare function readContinuationState(root: string): ContinuationState;
53
+ export declare function writeContinuationState(root: string, state: ContinuationState): ContinuationState;
54
+ export declare function logicalIdleStatus(state: ContinuationState, nowMs?: number): LogicalIdleStatus;
55
+ export declare function readLogicalIdleStatus(root: string, nowMs?: number): LogicalIdleStatus;
56
+ export declare function touchContinuationActivity(root: string, source: string): ContinuationState;
57
+ export interface ContinuationGuidance {
58
+ lane: ContinuationLane;
59
+ laneId: string | null;
60
+ recommendedTools: string[];
61
+ resumeHint: string;
62
+ pendingTaskIds: string[];
63
+ pendingTaskTitles: string[];
64
+ pendingLocalTaskIds: string[];
65
+ pendingLocalTaskTitles: string[];
66
+ pendingReviewTaskIds: string[];
67
+ pendingMessageIds: string[];
68
+ }
69
+ export declare function hasPendingLocalTasks(input: Pick<ContinuationGuidance, 'pendingLocalTaskIds'>): boolean;
70
+ export declare function hasPendingReviewOrMessage(guidance: Pick<ContinuationGuidance, 'pendingReviewTaskIds' | 'pendingMessageIds'>): boolean;
71
+ export declare function formatMandatoryLocalContinuationContext(guidance: Pick<ContinuationGuidance, 'pendingLocalTaskIds' | 'resumeHint'>, before: string): string | null;
72
+ export declare function continuationReminderThresholdForGuidance(guidance: Pick<ContinuationGuidance, 'pendingLocalTaskIds'>, threshold?: number): number;
73
+ export declare function isLaneSyncGated(state: ContinuationState, guidance: Pick<ContinuationGuidance, 'pendingLocalTaskIds'>, threshold?: number): boolean;
74
+ export interface TeamContinuationPayload {
75
+ id: string;
76
+ active: boolean;
77
+ taskQueue: string[];
78
+ executors: Array<{
79
+ pendingInjectedMessageIds: string[];
80
+ assignedTaskIds: string[];
81
+ }>;
82
+ }
83
+ export declare function buildTeamContinuationGuidance(team: TeamContinuationPayload, tasks: OperatorTask[], inbox: Array<{
84
+ status: string;
85
+ }>): ContinuationGuidance;
86
+ export declare function refreshContinuationTeamSignals(root: string, team: TeamContinuationPayload | null, tasks: OperatorTask[], inbox: Array<{
87
+ status: string;
88
+ }>, source: string, progressNote: string): ContinuationState;
89
+ export declare function recordSubagentStartedOnContinuation(root: string, agentId: string, source: string): ContinuationState;
90
+ export declare function recordSubagentStoppedOnContinuation(root: string, agentId: string, source: string): ContinuationState;
91
+ export declare function buildContinuationGuidance(authority: OperatorAuthority): ContinuationGuidance;
92
+ export declare function markContinuationBlocked(root: string, authority: OperatorAuthority, verdict: StopVerdict, input?: {
93
+ sessionId?: string | null;
94
+ transcriptPath?: string | null;
95
+ }): ContinuationState;
96
+ export declare function clearContinuationState(root: string, reason: string, source: string): ContinuationState;
97
+ export declare function recordContinuationFailure(root: string, authority: OperatorAuthority, source: string): ContinuationState;
98
+ export declare function clearConsecutiveFailures(root: string, source: string): ContinuationState;
99
+ export declare function resetContinuationState(root: string, reason: string, source: string): ContinuationState;
100
+ export declare function recordContinuationObservation(root: string, authority: OperatorAuthority, source: string): ContinuationState;
101
+ export declare function maybeRecordContinuationReminder(root: string, authority: OperatorAuthority, source: string, threshold?: number): {
102
+ state: ContinuationState;
103
+ remind: boolean;
104
+ };
105
+ export declare function recordContinuationSessionEnd(root: string, authority: OperatorAuthority, input?: {
106
+ sessionId?: string | null;
107
+ transcriptPath?: string | null;
108
+ }): ContinuationState;
109
+ //# sourceMappingURL=continuation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"continuation.d.ts","sourceRoot":"","sources":["../../../../src/shared/workflow/continuation/continuation.ts"],"names":[],"mappings":"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"}