@telora/daemon 0.12.33

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 (473) hide show
  1. package/.env.example +64 -0
  2. package/README.md +229 -0
  3. package/build-info.json +4 -0
  4. package/dist/activity-tracker.d.ts +13 -0
  5. package/dist/activity-tracker.d.ts.map +1 -0
  6. package/dist/activity-tracker.js +19 -0
  7. package/dist/activity-tracker.js.map +1 -0
  8. package/dist/agent-state.d.ts +45 -0
  9. package/dist/agent-state.d.ts.map +1 -0
  10. package/dist/agent-state.js +61 -0
  11. package/dist/agent-state.js.map +1 -0
  12. package/dist/audit-hooks.d.ts +12 -0
  13. package/dist/audit-hooks.d.ts.map +1 -0
  14. package/dist/audit-hooks.js +45 -0
  15. package/dist/audit-hooks.js.map +1 -0
  16. package/dist/auto-update.d.ts +42 -0
  17. package/dist/auto-update.d.ts.map +1 -0
  18. package/dist/auto-update.js +96 -0
  19. package/dist/auto-update.js.map +1 -0
  20. package/dist/branch-status.d.ts +40 -0
  21. package/dist/branch-status.d.ts.map +1 -0
  22. package/dist/branch-status.js +107 -0
  23. package/dist/branch-status.js.map +1 -0
  24. package/dist/completion-detector.d.ts +87 -0
  25. package/dist/completion-detector.d.ts.map +1 -0
  26. package/dist/completion-detector.js +160 -0
  27. package/dist/completion-detector.js.map +1 -0
  28. package/dist/completion-handler.d.ts +48 -0
  29. package/dist/completion-handler.d.ts.map +1 -0
  30. package/dist/completion-handler.js +200 -0
  31. package/dist/completion-handler.js.map +1 -0
  32. package/dist/condition-evaluators.d.ts +31 -0
  33. package/dist/condition-evaluators.d.ts.map +1 -0
  34. package/dist/condition-evaluators.js +416 -0
  35. package/dist/condition-evaluators.js.map +1 -0
  36. package/dist/config.d.ts +55 -0
  37. package/dist/config.d.ts.map +1 -0
  38. package/dist/config.js +311 -0
  39. package/dist/config.js.map +1 -0
  40. package/dist/control-state.d.ts +41 -0
  41. package/dist/control-state.d.ts.map +1 -0
  42. package/dist/control-state.js +204 -0
  43. package/dist/control-state.js.map +1 -0
  44. package/dist/crash-recovery-cleanup.d.ts +21 -0
  45. package/dist/crash-recovery-cleanup.d.ts.map +1 -0
  46. package/dist/crash-recovery-cleanup.js +198 -0
  47. package/dist/crash-recovery-cleanup.js.map +1 -0
  48. package/dist/crash-recovery-scan.d.ts +19 -0
  49. package/dist/crash-recovery-scan.d.ts.map +1 -0
  50. package/dist/crash-recovery-scan.js +145 -0
  51. package/dist/crash-recovery-scan.js.map +1 -0
  52. package/dist/crash-recovery-types.d.ts +54 -0
  53. package/dist/crash-recovery-types.d.ts.map +1 -0
  54. package/dist/crash-recovery-types.js +13 -0
  55. package/dist/crash-recovery-types.js.map +1 -0
  56. package/dist/crash-recovery.d.ts +88 -0
  57. package/dist/crash-recovery.d.ts.map +1 -0
  58. package/dist/crash-recovery.js +448 -0
  59. package/dist/crash-recovery.js.map +1 -0
  60. package/dist/daemon-logs.d.ts +19 -0
  61. package/dist/daemon-logs.d.ts.map +1 -0
  62. package/dist/daemon-logs.js +81 -0
  63. package/dist/daemon-logs.js.map +1 -0
  64. package/dist/daemon-process.d.ts +154 -0
  65. package/dist/daemon-process.d.ts.map +1 -0
  66. package/dist/daemon-process.js +427 -0
  67. package/dist/daemon-process.js.map +1 -0
  68. package/dist/dag-validator.d.ts +52 -0
  69. package/dist/dag-validator.d.ts.map +1 -0
  70. package/dist/dag-validator.js +199 -0
  71. package/dist/dag-validator.js.map +1 -0
  72. package/dist/delivery-guards.d.ts +41 -0
  73. package/dist/delivery-guards.d.ts.map +1 -0
  74. package/dist/delivery-guards.js +195 -0
  75. package/dist/delivery-guards.js.map +1 -0
  76. package/dist/delivery-lifecycle.d.ts +110 -0
  77. package/dist/delivery-lifecycle.d.ts.map +1 -0
  78. package/dist/delivery-lifecycle.js +353 -0
  79. package/dist/delivery-lifecycle.js.map +1 -0
  80. package/dist/delivery-merge.d.ts +17 -0
  81. package/dist/delivery-merge.d.ts.map +1 -0
  82. package/dist/delivery-merge.js +89 -0
  83. package/dist/delivery-merge.js.map +1 -0
  84. package/dist/dependency-resolver.d.ts +77 -0
  85. package/dist/dependency-resolver.d.ts.map +1 -0
  86. package/dist/dependency-resolver.js +337 -0
  87. package/dist/dependency-resolver.js.map +1 -0
  88. package/dist/evaluation-context.d.ts +49 -0
  89. package/dist/evaluation-context.d.ts.map +1 -0
  90. package/dist/evaluation-context.js +98 -0
  91. package/dist/evaluation-context.js.map +1 -0
  92. package/dist/git-activity.d.ts +24 -0
  93. package/dist/git-activity.d.ts.map +1 -0
  94. package/dist/git-activity.js +97 -0
  95. package/dist/git-activity.js.map +1 -0
  96. package/dist/git-branch.d.ts +33 -0
  97. package/dist/git-branch.d.ts.map +1 -0
  98. package/dist/git-branch.js +88 -0
  99. package/dist/git-branch.js.map +1 -0
  100. package/dist/git-integration.d.ts +27 -0
  101. package/dist/git-integration.d.ts.map +1 -0
  102. package/dist/git-integration.js +82 -0
  103. package/dist/git-integration.js.map +1 -0
  104. package/dist/git-merge-helpers.d.ts +48 -0
  105. package/dist/git-merge-helpers.d.ts.map +1 -0
  106. package/dist/git-merge-helpers.js +105 -0
  107. package/dist/git-merge-helpers.js.map +1 -0
  108. package/dist/git-merge-lock.d.ts +67 -0
  109. package/dist/git-merge-lock.d.ts.map +1 -0
  110. package/dist/git-merge-lock.js +157 -0
  111. package/dist/git-merge-lock.js.map +1 -0
  112. package/dist/git-merge-strategies.d.ts +39 -0
  113. package/dist/git-merge-strategies.d.ts.map +1 -0
  114. package/dist/git-merge-strategies.js +127 -0
  115. package/dist/git-merge-strategies.js.map +1 -0
  116. package/dist/git-merge.d.ts +80 -0
  117. package/dist/git-merge.d.ts.map +1 -0
  118. package/dist/git-merge.js +373 -0
  119. package/dist/git-merge.js.map +1 -0
  120. package/dist/git-state-detector.d.ts +24 -0
  121. package/dist/git-state-detector.d.ts.map +1 -0
  122. package/dist/git-state-detector.js +122 -0
  123. package/dist/git-state-detector.js.map +1 -0
  124. package/dist/git-types.d.ts +40 -0
  125. package/dist/git-types.d.ts.map +1 -0
  126. package/dist/git-types.js +23 -0
  127. package/dist/git-types.js.map +1 -0
  128. package/dist/git-utils.d.ts +28 -0
  129. package/dist/git-utils.d.ts.map +1 -0
  130. package/dist/git-utils.js +57 -0
  131. package/dist/git-utils.js.map +1 -0
  132. package/dist/git.d.ts +24 -0
  133. package/dist/git.d.ts.map +1 -0
  134. package/dist/git.js +64 -0
  135. package/dist/git.js.map +1 -0
  136. package/dist/guard-engine.d.ts +19 -0
  137. package/dist/guard-engine.d.ts.map +1 -0
  138. package/dist/guard-engine.js +21 -0
  139. package/dist/guard-engine.js.map +1 -0
  140. package/dist/guard-evaluator.d.ts +47 -0
  141. package/dist/guard-evaluator.d.ts.map +1 -0
  142. package/dist/guard-evaluator.js +193 -0
  143. package/dist/guard-evaluator.js.map +1 -0
  144. package/dist/heartbeat.d.ts +73 -0
  145. package/dist/heartbeat.d.ts.map +1 -0
  146. package/dist/heartbeat.js +306 -0
  147. package/dist/heartbeat.js.map +1 -0
  148. package/dist/index.d.ts +32 -0
  149. package/dist/index.d.ts.map +1 -0
  150. package/dist/index.js +493 -0
  151. package/dist/index.js.map +1 -0
  152. package/dist/listener-auto-advance.d.ts +29 -0
  153. package/dist/listener-auto-advance.d.ts.map +1 -0
  154. package/dist/listener-auto-advance.js +172 -0
  155. package/dist/listener-auto-advance.js.map +1 -0
  156. package/dist/listener-review.d.ts +37 -0
  157. package/dist/listener-review.d.ts.map +1 -0
  158. package/dist/listener-review.js +217 -0
  159. package/dist/listener-review.js.map +1 -0
  160. package/dist/listener.d.ts +57 -0
  161. package/dist/listener.d.ts.map +1 -0
  162. package/dist/listener.js +361 -0
  163. package/dist/listener.js.map +1 -0
  164. package/dist/log-manager.d.ts +18 -0
  165. package/dist/log-manager.d.ts.map +1 -0
  166. package/dist/log-manager.js +18 -0
  167. package/dist/log-manager.js.map +1 -0
  168. package/dist/otlp-log-parser.d.ts +21 -0
  169. package/dist/otlp-log-parser.d.ts.map +1 -0
  170. package/dist/otlp-log-parser.js +143 -0
  171. package/dist/otlp-log-parser.js.map +1 -0
  172. package/dist/otlp-metric-parser.d.ts +20 -0
  173. package/dist/otlp-metric-parser.d.ts.map +1 -0
  174. package/dist/otlp-metric-parser.js +113 -0
  175. package/dist/otlp-metric-parser.js.map +1 -0
  176. package/dist/otlp-port-manager.d.ts +26 -0
  177. package/dist/otlp-port-manager.d.ts.map +1 -0
  178. package/dist/otlp-port-manager.js +130 -0
  179. package/dist/otlp-port-manager.js.map +1 -0
  180. package/dist/otlp-receiver.d.ts +51 -0
  181. package/dist/otlp-receiver.d.ts.map +1 -0
  182. package/dist/otlp-receiver.js +663 -0
  183. package/dist/otlp-receiver.js.map +1 -0
  184. package/dist/otlp-types.d.ts +92 -0
  185. package/dist/otlp-types.d.ts.map +1 -0
  186. package/dist/otlp-types.js +133 -0
  187. package/dist/otlp-types.js.map +1 -0
  188. package/dist/output-monitor.d.ts +33 -0
  189. package/dist/output-monitor.d.ts.map +1 -0
  190. package/dist/output-monitor.js +67 -0
  191. package/dist/output-monitor.js.map +1 -0
  192. package/dist/planning-prompt-builder.d.ts +67 -0
  193. package/dist/planning-prompt-builder.d.ts.map +1 -0
  194. package/dist/planning-prompt-builder.js +515 -0
  195. package/dist/planning-prompt-builder.js.map +1 -0
  196. package/dist/prompt-builder.d.ts +14 -0
  197. package/dist/prompt-builder.d.ts.map +1 -0
  198. package/dist/prompt-builder.js +174 -0
  199. package/dist/prompt-builder.js.map +1 -0
  200. package/dist/qa-crash-recovery.d.ts +77 -0
  201. package/dist/qa-crash-recovery.d.ts.map +1 -0
  202. package/dist/qa-crash-recovery.js +243 -0
  203. package/dist/qa-crash-recovery.js.map +1 -0
  204. package/dist/qa-dev-server.d.ts +73 -0
  205. package/dist/qa-dev-server.d.ts.map +1 -0
  206. package/dist/qa-dev-server.js +279 -0
  207. package/dist/qa-dev-server.js.map +1 -0
  208. package/dist/qa-orchestrator.d.ts +79 -0
  209. package/dist/qa-orchestrator.d.ts.map +1 -0
  210. package/dist/qa-orchestrator.js +349 -0
  211. package/dist/qa-orchestrator.js.map +1 -0
  212. package/dist/qa-port-allocator.d.ts +34 -0
  213. package/dist/qa-port-allocator.d.ts.map +1 -0
  214. package/dist/qa-port-allocator.js +75 -0
  215. package/dist/qa-port-allocator.js.map +1 -0
  216. package/dist/qa-provisioner.d.ts +33 -0
  217. package/dist/qa-provisioner.d.ts.map +1 -0
  218. package/dist/qa-provisioner.js +141 -0
  219. package/dist/qa-provisioner.js.map +1 -0
  220. package/dist/qa-state.d.ts +93 -0
  221. package/dist/qa-state.d.ts.map +1 -0
  222. package/dist/qa-state.js +74 -0
  223. package/dist/qa-state.js.map +1 -0
  224. package/dist/queries/control-state.d.ts +25 -0
  225. package/dist/queries/control-state.d.ts.map +1 -0
  226. package/dist/queries/control-state.js +34 -0
  227. package/dist/queries/control-state.js.map +1 -0
  228. package/dist/queries/daemon-connection.d.ts +25 -0
  229. package/dist/queries/daemon-connection.d.ts.map +1 -0
  230. package/dist/queries/daemon-connection.js +28 -0
  231. package/dist/queries/daemon-connection.js.map +1 -0
  232. package/dist/queries/deliveries.d.ts +100 -0
  233. package/dist/queries/deliveries.d.ts.map +1 -0
  234. package/dist/queries/deliveries.js +184 -0
  235. package/dist/queries/deliveries.js.map +1 -0
  236. package/dist/queries/git-activity.d.ts +20 -0
  237. package/dist/queries/git-activity.d.ts.map +1 -0
  238. package/dist/queries/git-activity.js +22 -0
  239. package/dist/queries/git-activity.js.map +1 -0
  240. package/dist/queries/guards.d.ts +47 -0
  241. package/dist/queries/guards.d.ts.map +1 -0
  242. package/dist/queries/guards.js +138 -0
  243. package/dist/queries/guards.js.map +1 -0
  244. package/dist/queries/index.d.ts +19 -0
  245. package/dist/queries/index.d.ts.map +1 -0
  246. package/dist/queries/index.js +17 -0
  247. package/dist/queries/index.js.map +1 -0
  248. package/dist/queries/issues.d.ts +41 -0
  249. package/dist/queries/issues.d.ts.map +1 -0
  250. package/dist/queries/issues.js +67 -0
  251. package/dist/queries/issues.js.map +1 -0
  252. package/dist/queries/qa.d.ts +79 -0
  253. package/dist/queries/qa.d.ts.map +1 -0
  254. package/dist/queries/qa.js +85 -0
  255. package/dist/queries/qa.js.map +1 -0
  256. package/dist/queries/roles.d.ts +13 -0
  257. package/dist/queries/roles.d.ts.map +1 -0
  258. package/dist/queries/roles.js +39 -0
  259. package/dist/queries/roles.js.map +1 -0
  260. package/dist/queries/schemas.d.ts +777 -0
  261. package/dist/queries/schemas.d.ts.map +1 -0
  262. package/dist/queries/schemas.js +391 -0
  263. package/dist/queries/schemas.js.map +1 -0
  264. package/dist/queries/sessions.d.ts +64 -0
  265. package/dist/queries/sessions.d.ts.map +1 -0
  266. package/dist/queries/sessions.js +100 -0
  267. package/dist/queries/sessions.js.map +1 -0
  268. package/dist/queries/shared.d.ts +61 -0
  269. package/dist/queries/shared.d.ts.map +1 -0
  270. package/dist/queries/shared.js +187 -0
  271. package/dist/queries/shared.js.map +1 -0
  272. package/dist/queries/strategies.d.ts +69 -0
  273. package/dist/queries/strategies.d.ts.map +1 -0
  274. package/dist/queries/strategies.js +80 -0
  275. package/dist/queries/strategies.js.map +1 -0
  276. package/dist/queries/workflows.d.ts +17 -0
  277. package/dist/queries/workflows.d.ts.map +1 -0
  278. package/dist/queries/workflows.js +49 -0
  279. package/dist/queries/workflows.js.map +1 -0
  280. package/dist/queries/worktrees.d.ts +38 -0
  281. package/dist/queries/worktrees.d.ts.map +1 -0
  282. package/dist/queries/worktrees.js +37 -0
  283. package/dist/queries/worktrees.js.map +1 -0
  284. package/dist/self-update.d.ts +94 -0
  285. package/dist/self-update.d.ts.map +1 -0
  286. package/dist/self-update.js +438 -0
  287. package/dist/self-update.js.map +1 -0
  288. package/dist/session-lifecycle.d.ts +77 -0
  289. package/dist/session-lifecycle.d.ts.map +1 -0
  290. package/dist/session-lifecycle.js +379 -0
  291. package/dist/session-lifecycle.js.map +1 -0
  292. package/dist/shutdown-state.d.ts +17 -0
  293. package/dist/shutdown-state.d.ts.map +1 -0
  294. package/dist/shutdown-state.js +22 -0
  295. package/dist/shutdown-state.js.map +1 -0
  296. package/dist/spawn-cooldown.d.ts +14 -0
  297. package/dist/spawn-cooldown.d.ts.map +1 -0
  298. package/dist/spawn-cooldown.js +34 -0
  299. package/dist/spawn-cooldown.js.map +1 -0
  300. package/dist/spawn-environment.d.ts +35 -0
  301. package/dist/spawn-environment.d.ts.map +1 -0
  302. package/dist/spawn-environment.js +48 -0
  303. package/dist/spawn-environment.js.map +1 -0
  304. package/dist/spawner-liveness.d.ts +23 -0
  305. package/dist/spawner-liveness.d.ts.map +1 -0
  306. package/dist/spawner-liveness.js +99 -0
  307. package/dist/spawner-liveness.js.map +1 -0
  308. package/dist/spawner-resolution.d.ts +27 -0
  309. package/dist/spawner-resolution.d.ts.map +1 -0
  310. package/dist/spawner-resolution.js +99 -0
  311. package/dist/spawner-resolution.js.map +1 -0
  312. package/dist/spawner-timeout.d.ts +32 -0
  313. package/dist/spawner-timeout.d.ts.map +1 -0
  314. package/dist/spawner-timeout.js +124 -0
  315. package/dist/spawner-timeout.js.map +1 -0
  316. package/dist/spawner.d.ts +77 -0
  317. package/dist/spawner.d.ts.map +1 -0
  318. package/dist/spawner.js +734 -0
  319. package/dist/spawner.js.map +1 -0
  320. package/dist/strategy-completion.d.ts +110 -0
  321. package/dist/strategy-completion.d.ts.map +1 -0
  322. package/dist/strategy-completion.js +434 -0
  323. package/dist/strategy-completion.js.map +1 -0
  324. package/dist/strategy-engine.d.ts +47 -0
  325. package/dist/strategy-engine.d.ts.map +1 -0
  326. package/dist/strategy-engine.js +419 -0
  327. package/dist/strategy-engine.js.map +1 -0
  328. package/dist/strategy-executor.d.ts +93 -0
  329. package/dist/strategy-executor.d.ts.map +1 -0
  330. package/dist/strategy-executor.js +775 -0
  331. package/dist/strategy-executor.js.map +1 -0
  332. package/dist/strategy-lifecycle.d.ts +61 -0
  333. package/dist/strategy-lifecycle.d.ts.map +1 -0
  334. package/dist/strategy-lifecycle.js +516 -0
  335. package/dist/strategy-lifecycle.js.map +1 -0
  336. package/dist/strategy-merge.d.ts +72 -0
  337. package/dist/strategy-merge.d.ts.map +1 -0
  338. package/dist/strategy-merge.js +371 -0
  339. package/dist/strategy-merge.js.map +1 -0
  340. package/dist/strategy-prompt-builder.d.ts +62 -0
  341. package/dist/strategy-prompt-builder.d.ts.map +1 -0
  342. package/dist/strategy-prompt-builder.js +538 -0
  343. package/dist/strategy-prompt-builder.js.map +1 -0
  344. package/dist/strategy-provisioning.d.ts +16 -0
  345. package/dist/strategy-provisioning.d.ts.map +1 -0
  346. package/dist/strategy-provisioning.js +119 -0
  347. package/dist/strategy-provisioning.js.map +1 -0
  348. package/dist/strategy-team-state.d.ts +24 -0
  349. package/dist/strategy-team-state.d.ts.map +1 -0
  350. package/dist/strategy-team-state.js +43 -0
  351. package/dist/strategy-team-state.js.map +1 -0
  352. package/dist/strategy-teardown.d.ts +24 -0
  353. package/dist/strategy-teardown.d.ts.map +1 -0
  354. package/dist/strategy-teardown.js +158 -0
  355. package/dist/strategy-teardown.js.map +1 -0
  356. package/dist/strategy-worktree-state.d.ts +47 -0
  357. package/dist/strategy-worktree-state.d.ts.map +1 -0
  358. package/dist/strategy-worktree-state.js +104 -0
  359. package/dist/strategy-worktree-state.js.map +1 -0
  360. package/dist/supabase.d.ts +36 -0
  361. package/dist/supabase.d.ts.map +1 -0
  362. package/dist/supabase.js +50 -0
  363. package/dist/supabase.js.map +1 -0
  364. package/dist/task-converter.d.ts +61 -0
  365. package/dist/task-converter.d.ts.map +1 -0
  366. package/dist/task-converter.js +286 -0
  367. package/dist/task-converter.js.map +1 -0
  368. package/dist/task-dag-builder.d.ts +14 -0
  369. package/dist/task-dag-builder.d.ts.map +1 -0
  370. package/dist/task-dag-builder.js +17 -0
  371. package/dist/task-dag-builder.js.map +1 -0
  372. package/dist/team-prompt-base.d.ts +114 -0
  373. package/dist/team-prompt-base.d.ts.map +1 -0
  374. package/dist/team-prompt-base.js +531 -0
  375. package/dist/team-prompt-base.js.map +1 -0
  376. package/dist/team-prompt-variants.d.ts +27 -0
  377. package/dist/team-prompt-variants.d.ts.map +1 -0
  378. package/dist/team-prompt-variants.js +134 -0
  379. package/dist/team-prompt-variants.js.map +1 -0
  380. package/dist/team-spawner.d.ts +50 -0
  381. package/dist/team-spawner.d.ts.map +1 -0
  382. package/dist/team-spawner.js +410 -0
  383. package/dist/team-spawner.js.map +1 -0
  384. package/dist/telemetry-writer.d.ts +66 -0
  385. package/dist/telemetry-writer.d.ts.map +1 -0
  386. package/dist/telemetry-writer.js +96 -0
  387. package/dist/telemetry-writer.js.map +1 -0
  388. package/dist/trigger-executor.d.ts +56 -0
  389. package/dist/trigger-executor.d.ts.map +1 -0
  390. package/dist/trigger-executor.js +313 -0
  391. package/dist/trigger-executor.js.map +1 -0
  392. package/dist/types/config.d.ts +60 -0
  393. package/dist/types/config.d.ts.map +1 -0
  394. package/dist/types/config.js +5 -0
  395. package/dist/types/config.js.map +1 -0
  396. package/dist/types/dag.d.ts +53 -0
  397. package/dist/types/dag.d.ts.map +1 -0
  398. package/dist/types/dag.js +5 -0
  399. package/dist/types/dag.js.map +1 -0
  400. package/dist/types/delivery.d.ts +71 -0
  401. package/dist/types/delivery.d.ts.map +1 -0
  402. package/dist/types/delivery.js +5 -0
  403. package/dist/types/delivery.js.map +1 -0
  404. package/dist/types/index.d.ts +15 -0
  405. package/dist/types/index.d.ts.map +1 -0
  406. package/dist/types/index.js +15 -0
  407. package/dist/types/index.js.map +1 -0
  408. package/dist/types/issue.d.ts +22 -0
  409. package/dist/types/issue.d.ts.map +1 -0
  410. package/dist/types/issue.js +5 -0
  411. package/dist/types/issue.js.map +1 -0
  412. package/dist/types/merge.d.ts +28 -0
  413. package/dist/types/merge.d.ts.map +1 -0
  414. package/dist/types/merge.js +5 -0
  415. package/dist/types/merge.js.map +1 -0
  416. package/dist/types/session.d.ts +98 -0
  417. package/dist/types/session.d.ts.map +1 -0
  418. package/dist/types/session.js +5 -0
  419. package/dist/types/session.js.map +1 -0
  420. package/dist/types/strategy.d.ts +175 -0
  421. package/dist/types/strategy.d.ts.map +1 -0
  422. package/dist/types/strategy.js +5 -0
  423. package/dist/types/strategy.js.map +1 -0
  424. package/dist/types/workflow.d.ts +34 -0
  425. package/dist/types/workflow.d.ts.map +1 -0
  426. package/dist/types/workflow.js +9 -0
  427. package/dist/types/workflow.js.map +1 -0
  428. package/dist/types.d.ts +9 -0
  429. package/dist/types.d.ts.map +1 -0
  430. package/dist/types.js +9 -0
  431. package/dist/types.js.map +1 -0
  432. package/dist/unified-init.d.ts +16 -0
  433. package/dist/unified-init.d.ts.map +1 -0
  434. package/dist/unified-init.js +183 -0
  435. package/dist/unified-init.js.map +1 -0
  436. package/dist/unified-shell-config.d.ts +34 -0
  437. package/dist/unified-shell-config.d.ts.map +1 -0
  438. package/dist/unified-shell-config.js +238 -0
  439. package/dist/unified-shell-config.js.map +1 -0
  440. package/dist/unified-shell-status.d.ts +15 -0
  441. package/dist/unified-shell-status.d.ts.map +1 -0
  442. package/dist/unified-shell-status.js +100 -0
  443. package/dist/unified-shell-status.js.map +1 -0
  444. package/dist/unified-shell.d.ts +50 -0
  445. package/dist/unified-shell.d.ts.map +1 -0
  446. package/dist/unified-shell.js +682 -0
  447. package/dist/unified-shell.js.map +1 -0
  448. package/dist/version-check.d.ts +19 -0
  449. package/dist/version-check.d.ts.map +1 -0
  450. package/dist/version-check.js +67 -0
  451. package/dist/version-check.js.map +1 -0
  452. package/dist/workflow-engine.d.ts +95 -0
  453. package/dist/workflow-engine.d.ts.map +1 -0
  454. package/dist/workflow-engine.js +165 -0
  455. package/dist/workflow-engine.js.map +1 -0
  456. package/dist/worktree-merge.d.ts +23 -0
  457. package/dist/worktree-merge.d.ts.map +1 -0
  458. package/dist/worktree-merge.js +57 -0
  459. package/dist/worktree-merge.js.map +1 -0
  460. package/dist/worktree-safety.d.ts +48 -0
  461. package/dist/worktree-safety.d.ts.map +1 -0
  462. package/dist/worktree-safety.js +113 -0
  463. package/dist/worktree-safety.js.map +1 -0
  464. package/dist/worktree-strategy.d.ts +69 -0
  465. package/dist/worktree-strategy.d.ts.map +1 -0
  466. package/dist/worktree-strategy.js +214 -0
  467. package/dist/worktree-strategy.js.map +1 -0
  468. package/dist/worktree.d.ts +159 -0
  469. package/dist/worktree.d.ts.map +1 -0
  470. package/dist/worktree.js +512 -0
  471. package/dist/worktree.js.map +1 -0
  472. package/package.json +76 -0
  473. package/scripts/telora-daemon-wrapper.sh +31 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daemon-process.js","sourceRoot":"","sources":["../src/daemon-process.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * DAG validation: cycle detection and delivery dependency graph validation.
3
+ *
4
+ * Extracted from task-dag-builder.ts. Contains functions for inferring
5
+ * delivery-level dependencies from cross-delivery CG annotations,
6
+ * detecting cycles in the dependency graph, and building validated
7
+ * delivery DAGs.
8
+ *
9
+ * Pure functions only (no side effects, no API calls).
10
+ */
11
+ import type { CrossDeliveryCGDependency, StrategyDeliveryInfo, StrategyIssueInfo } from './types.js';
12
+ /**
13
+ * Infer delivery-level dependency edges from cross-delivery CG dependencies.
14
+ *
15
+ * When a CG in Delivery B depends on a CG in Delivery A, this implies
16
+ * Delivery B depends on Delivery A. Multiple CG dependencies between
17
+ * the same two deliveries produce only one delivery-level edge.
18
+ *
19
+ * This is the low-level version that resolves CG names by title only
20
+ * (without delivery name verification). Prefer buildDeliveryDAGFromCGDeps
21
+ * which uses delivery name lookup for accurate resolution.
22
+ *
23
+ * @param crossDeliveryDeps - Array of cross-delivery CG dependency declarations
24
+ * @param issues - All issues (to resolve CG names to delivery IDs)
25
+ * @returns Map of deliveryId -> Set of deliveryIds it depends on
26
+ */
27
+ export declare function inferDeliveryDependencies(crossDeliveryDeps: CrossDeliveryCGDependency[], issues: StrategyIssueInfo[]): Map<string, Set<string>>;
28
+ /**
29
+ * Detect cycles in the delivery-level dependency graph.
30
+ * Uses DFS-based cycle detection.
31
+ *
32
+ * @throws Error with a descriptive message including delivery names if a cycle is found.
33
+ */
34
+ export declare function detectDeliveryCycles(deliveryDeps: Map<string, Set<string>>, deliveries: StrategyDeliveryInfo[]): void;
35
+ /**
36
+ * Build delivery-level dependencies from cross-delivery CG annotations.
37
+ * Returns the delivery dependency map, or throws if cycles are detected.
38
+ *
39
+ * This is used by the daemon to derive delivery ordering from planning output
40
+ * instead of relying solely on priorityRank.
41
+ *
42
+ * Resolution: delivery names in CrossDeliveryCGDependency are matched against
43
+ * StrategyDeliveryInfo.name. CG names are matched against issue titles
44
+ * (issueType === 'Context Group') within the resolved delivery.
45
+ *
46
+ * @param crossDeliveryDeps - Array of cross-delivery CG dependency declarations
47
+ * @param deliveries - All deliveries for the strategy
48
+ * @param issues - All issues across all deliveries
49
+ * @returns Map of deliveryId -> Set of deliveryIds it depends on
50
+ */
51
+ export declare function buildDeliveryDAGFromCGDeps(crossDeliveryDeps: CrossDeliveryCGDependency[], deliveries: StrategyDeliveryInfo[], issues: StrategyIssueInfo[]): Map<string, Set<string>>;
52
+ //# sourceMappingURL=dag-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dag-validator.d.ts","sourceRoot":"","sources":["../src/dag-validator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EACV,yBAAyB,EACzB,oBAAoB,EACpB,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAIpB;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,yBAAyB,CACvC,iBAAiB,EAAE,yBAAyB,EAAE,EAC9C,MAAM,EAAE,iBAAiB,EAAE,GAC1B,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAqC1B;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,EACtC,UAAU,EAAE,oBAAoB,EAAE,GACjC,IAAI,CA4BN;AA2DD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,0BAA0B,CACxC,iBAAiB,EAAE,yBAAyB,EAAE,EAC9C,UAAU,EAAE,oBAAoB,EAAE,EAClC,MAAM,EAAE,iBAAiB,EAAE,GAC1B,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAU1B"}
@@ -0,0 +1,199 @@
1
+ /**
2
+ * DAG validation: cycle detection and delivery dependency graph validation.
3
+ *
4
+ * Extracted from task-dag-builder.ts. Contains functions for inferring
5
+ * delivery-level dependencies from cross-delivery CG annotations,
6
+ * detecting cycles in the dependency graph, and building validated
7
+ * delivery DAGs.
8
+ *
9
+ * Pure functions only (no side effects, no API calls).
10
+ */
11
+ // ── Delivery-level DAG propagation from cross-delivery CG deps ───
12
+ /**
13
+ * Infer delivery-level dependency edges from cross-delivery CG dependencies.
14
+ *
15
+ * When a CG in Delivery B depends on a CG in Delivery A, this implies
16
+ * Delivery B depends on Delivery A. Multiple CG dependencies between
17
+ * the same two deliveries produce only one delivery-level edge.
18
+ *
19
+ * This is the low-level version that resolves CG names by title only
20
+ * (without delivery name verification). Prefer buildDeliveryDAGFromCGDeps
21
+ * which uses delivery name lookup for accurate resolution.
22
+ *
23
+ * @param crossDeliveryDeps - Array of cross-delivery CG dependency declarations
24
+ * @param issues - All issues (to resolve CG names to delivery IDs)
25
+ * @returns Map of deliveryId -> Set of deliveryIds it depends on
26
+ */
27
+ export function inferDeliveryDependencies(crossDeliveryDeps, issues) {
28
+ const deliveryDeps = new Map();
29
+ if (crossDeliveryDeps.length === 0)
30
+ return deliveryDeps;
31
+ // Build lookup: CG title (lowercased) -> CG issue (first match wins)
32
+ const cgByTitle = new Map();
33
+ for (const issue of issues) {
34
+ if (issue.issueType === 'Context Group') {
35
+ const key = issue.title.toLowerCase();
36
+ if (!cgByTitle.has(key)) {
37
+ cgByTitle.set(key, issue);
38
+ }
39
+ }
40
+ }
41
+ for (const dep of crossDeliveryDeps) {
42
+ const fromCG = cgByTitle.get(dep.fromCG.toLowerCase());
43
+ const depCG = cgByTitle.get(dep.dependsOnCG.toLowerCase());
44
+ if (!fromCG || !depCG)
45
+ continue;
46
+ const fromDeliveryId = fromCG.deliveryId;
47
+ const depDeliveryId = depCG.deliveryId;
48
+ // Skip self-dependencies (same delivery)
49
+ if (fromDeliveryId === depDeliveryId)
50
+ continue;
51
+ let deps = deliveryDeps.get(fromDeliveryId);
52
+ if (!deps) {
53
+ deps = new Set();
54
+ deliveryDeps.set(fromDeliveryId, deps);
55
+ }
56
+ deps.add(depDeliveryId);
57
+ }
58
+ return deliveryDeps;
59
+ }
60
+ /**
61
+ * Detect cycles in the delivery-level dependency graph.
62
+ * Uses DFS-based cycle detection.
63
+ *
64
+ * @throws Error with a descriptive message including delivery names if a cycle is found.
65
+ */
66
+ export function detectDeliveryCycles(deliveryDeps, deliveries) {
67
+ // Build delivery name lookup
68
+ const deliveryNameById = new Map();
69
+ for (const d of deliveries) {
70
+ deliveryNameById.set(d.id, d.name);
71
+ }
72
+ // Collect all delivery IDs referenced in the graph
73
+ const allIds = new Set();
74
+ for (const [id, deps] of deliveryDeps) {
75
+ allIds.add(id);
76
+ for (const depId of deps) {
77
+ allIds.add(depId);
78
+ }
79
+ }
80
+ // DFS-based cycle detection using three-color marking
81
+ const WHITE = 0; // Not visited
82
+ const color = new Map();
83
+ for (const id of allIds) {
84
+ color.set(id, WHITE);
85
+ }
86
+ for (const startId of allIds) {
87
+ if (color.get(startId) !== WHITE)
88
+ continue;
89
+ // dfsHasCycle throws with a descriptive error if a cycle is found
90
+ dfsHasCycle(startId, deliveryDeps, color, deliveryNameById);
91
+ }
92
+ }
93
+ /**
94
+ * DFS from a single start node, coloring nodes and detecting back edges.
95
+ * Throws with cycle description if a cycle is found.
96
+ */
97
+ function dfsHasCycle(startId, deliveryDeps, color, deliveryNameById) {
98
+ const WHITE = 0;
99
+ const GRAY = 1;
100
+ const BLACK = 2;
101
+ // Recursive DFS with path tracking
102
+ const path = [];
103
+ function visit(nodeId) {
104
+ color.set(nodeId, GRAY);
105
+ path.push(nodeId);
106
+ const deps = deliveryDeps.get(nodeId);
107
+ if (deps) {
108
+ for (const depId of deps) {
109
+ const depColor = color.get(depId) ?? WHITE;
110
+ if (depColor === GRAY) {
111
+ // Back edge found -- extract cycle from path
112
+ const cycleStartIdx = path.indexOf(depId);
113
+ const cyclePath = path.slice(cycleStartIdx);
114
+ cyclePath.push(depId); // Close the cycle
115
+ const cycleNames = cyclePath.map(id => deliveryNameById.get(id) ?? id);
116
+ throw new Error(`Cycle detected in delivery dependency graph: ${cycleNames.join(' -> ')}`);
117
+ }
118
+ if (depColor === WHITE) {
119
+ visit(depId);
120
+ }
121
+ }
122
+ }
123
+ path.pop();
124
+ color.set(nodeId, BLACK);
125
+ }
126
+ if (color.get(startId) === WHITE) {
127
+ visit(startId);
128
+ }
129
+ return false;
130
+ }
131
+ /**
132
+ * Build delivery-level dependencies from cross-delivery CG annotations.
133
+ * Returns the delivery dependency map, or throws if cycles are detected.
134
+ *
135
+ * This is used by the daemon to derive delivery ordering from planning output
136
+ * instead of relying solely on priorityRank.
137
+ *
138
+ * Resolution: delivery names in CrossDeliveryCGDependency are matched against
139
+ * StrategyDeliveryInfo.name. CG names are matched against issue titles
140
+ * (issueType === 'Context Group') within the resolved delivery.
141
+ *
142
+ * @param crossDeliveryDeps - Array of cross-delivery CG dependency declarations
143
+ * @param deliveries - All deliveries for the strategy
144
+ * @param issues - All issues across all deliveries
145
+ * @returns Map of deliveryId -> Set of deliveryIds it depends on
146
+ */
147
+ export function buildDeliveryDAGFromCGDeps(crossDeliveryDeps, deliveries, issues) {
148
+ // Resolve CG names to delivery IDs using delivery name lookup
149
+ const resolvedDeps = inferDeliveryDependenciesWithDeliveryNames(crossDeliveryDeps, deliveries, issues);
150
+ // Validate no cycles
151
+ detectDeliveryCycles(resolvedDeps, deliveries);
152
+ return resolvedDeps;
153
+ }
154
+ /**
155
+ * Enhanced version of inferDeliveryDependencies that uses delivery name lookup
156
+ * for accurate resolution when deliveries are available.
157
+ */
158
+ function inferDeliveryDependenciesWithDeliveryNames(crossDeliveryDeps, deliveries, issues) {
159
+ const deliveryDeps = new Map();
160
+ if (crossDeliveryDeps.length === 0)
161
+ return deliveryDeps;
162
+ // Build delivery name -> ID lookup (case-insensitive)
163
+ const deliveryIdByName = new Map();
164
+ for (const d of deliveries) {
165
+ deliveryIdByName.set(d.name.toLowerCase(), d.id);
166
+ }
167
+ // Build CG lookup: deliveryId + CG title (lowercased) -> CG issue
168
+ const cgLookup = new Map();
169
+ for (const issue of issues) {
170
+ if (issue.issueType === 'Context Group') {
171
+ const key = `${issue.deliveryId}::${issue.title.toLowerCase()}`;
172
+ cgLookup.set(key, issue);
173
+ }
174
+ }
175
+ for (const dep of crossDeliveryDeps) {
176
+ // Resolve delivery names to IDs
177
+ const fromDeliveryId = deliveryIdByName.get(dep.fromDelivery.toLowerCase());
178
+ const depDeliveryId = deliveryIdByName.get(dep.dependsOnDelivery.toLowerCase());
179
+ if (!fromDeliveryId || !depDeliveryId)
180
+ continue;
181
+ // Skip self-dependencies
182
+ if (fromDeliveryId === depDeliveryId)
183
+ continue;
184
+ // Verify CGs exist in the resolved deliveries
185
+ const fromCGKey = `${fromDeliveryId}::${dep.fromCG.toLowerCase()}`;
186
+ const depCGKey = `${depDeliveryId}::${dep.dependsOnCG.toLowerCase()}`;
187
+ if (!cgLookup.has(fromCGKey) || !cgLookup.has(depCGKey))
188
+ continue;
189
+ // Add delivery-level edge
190
+ let deps = deliveryDeps.get(fromDeliveryId);
191
+ if (!deps) {
192
+ deps = new Set();
193
+ deliveryDeps.set(fromDeliveryId, deps);
194
+ }
195
+ deps.add(depDeliveryId);
196
+ }
197
+ return deliveryDeps;
198
+ }
199
+ //# sourceMappingURL=dag-validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dag-validator.js","sourceRoot":"","sources":["../src/dag-validator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Guard evaluation for delivery stage transitions.
3
+ *
4
+ * Core guard evaluation logic, failure mode resolution, fail-closed
5
+ * handling, and audit trail recording.
6
+ */
7
+ import type { PolicyFailureMode } from './types.js';
8
+ import { GuardEvaluationError } from './guard-engine.js';
9
+ import type { GuardEvalOutcome, GuardEvalParams } from './delivery-lifecycle.js';
10
+ /**
11
+ * Evaluate guards at a stage transition for a delivery.
12
+ *
13
+ * This is the core guard evaluation logic extracted from completion-handler.ts.
14
+ * Can be called by:
15
+ * - The per-delivery completion handler (legacy)
16
+ * - The strategy team lead (after detecting delivery issue completion)
17
+ */
18
+ export declare function evaluateGuardsForDeliveryTransition(params: GuardEvalParams): Promise<GuardEvalOutcome>;
19
+ /**
20
+ * Resolve the effective failure mode for a guard evaluation error.
21
+ */
22
+ export declare function resolveGuardFailureMode(daemonMode: PolicyFailureMode, guardError: GuardEvaluationError | null): PolicyFailureMode;
23
+ interface GuardFailClosedParams {
24
+ err: Error;
25
+ guardError: GuardEvaluationError | null;
26
+ deliveryId: string;
27
+ deliveryName: string;
28
+ organizationId: string;
29
+ sessionId: string | null;
30
+ transitionId: string;
31
+ }
32
+ /**
33
+ * Handle fail-closed for guard evaluation errors.
34
+ */
35
+ export declare function handleGuardFailClosed(params: GuardFailClosedParams): Promise<GuardEvalOutcome>;
36
+ /**
37
+ * Record guard evaluation errors in the audit trail (best-effort).
38
+ */
39
+ export declare function recordGuardEvaluationError(err: Error, guardError: GuardEvaluationError | null, deliveryId: string, organizationId: string, transitionId: string, effectiveMode: PolicyFailureMode): Promise<void>;
40
+ export {};
41
+ //# sourceMappingURL=delivery-guards.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delivery-guards.d.ts","sourceRoot":"","sources":["../src/delivery-guards.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,OAAO,EAA+C,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEtG,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAIjF;;;;;;;GAOG;AACH,wBAAsB,mCAAmC,CACvD,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,gBAAgB,CAAC,CAoH3B;AAID;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,iBAAiB,EAC7B,UAAU,EAAE,oBAAoB,GAAG,IAAI,GACtC,iBAAiB,CAQnB;AAED,UAAU,qBAAqB;IAC7B,GAAG,EAAE,KAAK,CAAC;IACX,UAAU,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,qBAAqB,GAC5B,OAAO,CAAC,gBAAgB,CAAC,CAsD3B;AAED;;GAEG;AACH,wBAAsB,0BAA0B,CAC9C,GAAG,EAAE,KAAK,EACV,UAAU,EAAE,oBAAoB,GAAG,IAAI,EACvC,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,EACtB,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,iBAAiB,GAC/B,OAAO,CAAC,IAAI,CAAC,CA4Cf"}
@@ -0,0 +1,195 @@
1
+ /**
2
+ * Guard evaluation for delivery stage transitions.
3
+ *
4
+ * Core guard evaluation logic, failure mode resolution, fail-closed
5
+ * handling, and audit trail recording.
6
+ */
7
+ import { updateDeliveryStatus, createEscalation, createTransitionEvaluation } from './supabase.js';
8
+ import { evaluateGuardsAtTransition, executeTriggers, GuardEvaluationError } from './guard-engine.js';
9
+ import { withRetry, ESCALATION_REASONS } from '@telora/daemon-core';
10
+ // ── Guard evaluation (unified workflow system) ──────────────────────
11
+ /**
12
+ * Evaluate guards at a stage transition for a delivery.
13
+ *
14
+ * This is the core guard evaluation logic extracted from completion-handler.ts.
15
+ * Can be called by:
16
+ * - The per-delivery completion handler (legacy)
17
+ * - The strategy team lead (after detecting delivery issue completion)
18
+ */
19
+ export async function evaluateGuardsForDeliveryTransition(params) {
20
+ const { deliveryId, organizationId, workflowTransition, exitCode, policyFailureMode, deliveryName, sessionId, } = params;
21
+ const baseOutcome = {
22
+ blocked: false,
23
+ shouldMerge: false,
24
+ shouldTriggerRepoll: false,
25
+ sessionStatus: 'completed',
26
+ exitReason: '',
27
+ };
28
+ if (!workflowTransition) {
29
+ return baseOutcome;
30
+ }
31
+ try {
32
+ const guardResult = await evaluateGuardsAtTransition(deliveryId, organizationId, workflowTransition.id, exitCode);
33
+ // Log warnings (soft enforcement failures)
34
+ for (const warning of guardResult.warnings) {
35
+ console.warn(`[guard] Soft warning on "${deliveryName}": ` +
36
+ `guard "${warning.guard_name}" conditions not met`);
37
+ }
38
+ if (!guardResult.should_proceed) {
39
+ // Hard guard blocked the transition
40
+ console.log(`[guard] Transition blocked for "${deliveryName}": ` +
41
+ `${guardResult.blocks.length} hard guard(s) failed`);
42
+ // Execute blocking triggers
43
+ const triggerResult = await executeTriggers(deliveryId, organizationId, workflowTransition.id, guardResult.triggers_to_execute);
44
+ let exitReason = `Guard blocked: ${guardResult.blocks.map(b => b.guard_name).join(', ')}.`;
45
+ if (triggerResult.spawnedSessionIds.length > 0) {
46
+ exitReason += ` Spawned ${triggerResult.spawnedSessionIds.length} guard agent(s).`;
47
+ }
48
+ return {
49
+ blocked: true,
50
+ shouldMerge: false,
51
+ shouldTriggerRepoll: false,
52
+ sessionStatus: 'completed',
53
+ exitReason,
54
+ };
55
+ }
56
+ // All guards passed or only soft warnings -- execute pass/enter triggers
57
+ if (guardResult.triggers_to_execute.length > 0) {
58
+ await executeTriggers(deliveryId, organizationId, workflowTransition.id, guardResult.triggers_to_execute);
59
+ }
60
+ }
61
+ catch (err) {
62
+ const guardError = err instanceof GuardEvaluationError ? err : null;
63
+ const effectiveMode = resolveGuardFailureMode(policyFailureMode, guardError);
64
+ // Record evaluation error in audit trail
65
+ await recordGuardEvaluationError(err, guardError, deliveryId, organizationId, workflowTransition.id, effectiveMode);
66
+ if (effectiveMode === 'fail-closed') {
67
+ return await handleGuardFailClosed({
68
+ err: err,
69
+ guardError,
70
+ deliveryId,
71
+ deliveryName,
72
+ organizationId,
73
+ sessionId,
74
+ transitionId: workflowTransition.id,
75
+ });
76
+ }
77
+ // Fail-open: log and proceed
78
+ console.error(`[guard] GUARD EVALUATION FAILED for "${deliveryName}": ` +
79
+ `${err.message}. Proceeding without guard checks (fail-open).`);
80
+ return {
81
+ ...baseOutcome,
82
+ exitReason: `Warning: guard evaluation skipped due to error.`,
83
+ };
84
+ }
85
+ return baseOutcome;
86
+ }
87
+ // ── Guard failure helpers ───────────────────────────────────────────
88
+ /**
89
+ * Resolve the effective failure mode for a guard evaluation error.
90
+ */
91
+ export function resolveGuardFailureMode(daemonMode, guardError) {
92
+ if (guardError?.hasHardEnforcementGuards) {
93
+ return 'fail-closed';
94
+ }
95
+ if (guardError?.fetchedGuards !== null && guardError?.fetchedGuards !== undefined) {
96
+ return 'fail-open';
97
+ }
98
+ return daemonMode;
99
+ }
100
+ /**
101
+ * Handle fail-closed for guard evaluation errors.
102
+ */
103
+ export async function handleGuardFailClosed(params) {
104
+ const { err, guardError, deliveryId, deliveryName, organizationId, sessionId, transitionId } = params;
105
+ const guardNames = guardError?.guardNames ?? [];
106
+ const guardInfo = guardNames.length > 0
107
+ ? ` Guards: ${guardNames.join(', ')}.`
108
+ : '';
109
+ console.error(`[guard] GUARD EVALUATION FAILED for "${deliveryName}": ` +
110
+ `${err.message}. Transition blocked per fail-closed configuration.${guardInfo}`);
111
+ const exitReason = `Guard evaluation failed, transition blocked per fail-closed configuration.${guardInfo}`;
112
+ try {
113
+ await updateDeliveryStatus(deliveryId, 'paused');
114
+ }
115
+ catch (statusErr) {
116
+ console.error(`[guard] Failed to pause delivery "${deliveryName}":`, statusErr.message);
117
+ }
118
+ try {
119
+ await withRetry(() => createEscalation({
120
+ organizationId,
121
+ sessionId: sessionId ?? '',
122
+ issueId: null,
123
+ reasonType: ESCALATION_REASONS.ERROR_ENCOUNTERED,
124
+ description: `Guard evaluation failed (fail-closed). Transition blocked.\n\n` +
125
+ `**Delivery:** ${deliveryName}\n` +
126
+ `**Transition:** ${transitionId}\n` +
127
+ `**Error:** ${err.message}\n` +
128
+ (guardNames.length > 0 ? `**Affected guards:** ${guardNames.join(', ')}\n` : '') +
129
+ `\nThe delivery has been paused. Review the error and re-queue when resolved.`,
130
+ whatWasTried: `Guard evaluation at stage transition failed after retries. ` +
131
+ `Fail-closed mode is active${guardError?.hasHardEnforcementGuards ? ' (hard enforcement guards detected)' : ''}.`,
132
+ helpNeeded: `Investigate the guard evaluation failure, resolve the underlying issue, then re-queue the delivery.`,
133
+ }), { maxAttempts: 3, label: 'escalation-guard-fail-closed' });
134
+ console.log(`[guard] Created escalation for guard evaluation failure (fail-closed)`);
135
+ }
136
+ catch (escErr) {
137
+ console.error(`CRITICAL: Failed to create escalation for guard fail-closed after retries: ${escErr.message}. ` +
138
+ `Delivery: "${deliveryName}"`);
139
+ }
140
+ return {
141
+ blocked: true,
142
+ shouldMerge: false,
143
+ shouldTriggerRepoll: false,
144
+ sessionStatus: 'completed',
145
+ exitReason,
146
+ };
147
+ }
148
+ /**
149
+ * Record guard evaluation errors in the audit trail (best-effort).
150
+ */
151
+ export async function recordGuardEvaluationError(err, guardError, deliveryId, organizationId, transitionId, effectiveMode) {
152
+ const errorDetails = {
153
+ error: err.message,
154
+ failure_mode: effectiveMode,
155
+ };
156
+ if (guardError?.fetchedGuards && guardError.fetchedGuards.length > 0) {
157
+ for (const guard of guardError.fetchedGuards) {
158
+ try {
159
+ await createTransitionEvaluation({
160
+ organization_id: organizationId,
161
+ entity_type: 'delivery',
162
+ entity_id: deliveryId,
163
+ transition_id: transitionId,
164
+ guard_id: guard.id,
165
+ result: 'error',
166
+ blocked: effectiveMode === 'fail-closed',
167
+ enforcement_level: guard.enforcement,
168
+ evaluation_details: errorDetails,
169
+ });
170
+ }
171
+ catch (auditErr) {
172
+ console.warn(`[guard] Failed to record evaluation error for "${guard.name}":`, auditErr.message);
173
+ }
174
+ }
175
+ }
176
+ else {
177
+ try {
178
+ await createTransitionEvaluation({
179
+ organization_id: organizationId,
180
+ entity_type: 'delivery',
181
+ entity_id: deliveryId,
182
+ transition_id: transitionId,
183
+ guard_id: null,
184
+ result: 'error',
185
+ blocked: effectiveMode === 'fail-closed',
186
+ enforcement_level: null,
187
+ evaluation_details: errorDetails,
188
+ });
189
+ }
190
+ catch (auditErr) {
191
+ console.warn(`[guard] Failed to record evaluation error in audit trail:`, auditErr.message);
192
+ }
193
+ }
194
+ }
195
+ //# sourceMappingURL=delivery-guards.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delivery-guards.js","sourceRoot":"","sources":["../src/delivery-guards.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,110 @@
1
+ /**
2
+ * Delivery lifecycle - reusable functions for guard evaluation,
3
+ * stage transitions, and merge operations.
4
+ *
5
+ * Extracted from completion-handler.ts so that both the legacy
6
+ * per-delivery completion handler and the strategy team lead
7
+ * can use the same logic.
8
+ *
9
+ * Key functions:
10
+ * - evaluateAndTransition(): evaluate guards and determine next stage
11
+ * - mergeDeliveryBranch(): merge a branch to integration
12
+ * - advanceDeliveryStage(): update delivery to its next workflow stage
13
+ */
14
+ import type { DaemonConfig, Workflow, WorkflowTransition, PolicyFailureMode } from './types.js';
15
+ export interface GuardEvalOutcome {
16
+ /** Whether the transition was blocked by a guard. */
17
+ blocked: boolean;
18
+ /** Whether to merge the agent's branch to integration. */
19
+ shouldMerge: boolean;
20
+ /** Whether to trigger a re-poll for next work. */
21
+ shouldTriggerRepoll: boolean;
22
+ /** Session status to record. */
23
+ sessionStatus: 'completed' | 'failed';
24
+ /** Human-readable exit reason. */
25
+ exitReason: string;
26
+ }
27
+ export interface MergeOutcome {
28
+ /** Whether the merge to integration succeeded. */
29
+ mergeSucceeded: boolean;
30
+ /** Updated exit reason string. */
31
+ exitReason: string;
32
+ /** If set, override the delivery status (e.g., back to queued on conflict). */
33
+ overrideDeliveryStatus?: string;
34
+ /** If set, override the delivery stage ID. */
35
+ overrideDeliveryStageId?: string | null;
36
+ /** The squash merge commit SHA (set on successful merge). */
37
+ commitSha?: string;
38
+ }
39
+ export interface StageAdvanceResult {
40
+ /** Whether the stage was advanced successfully. */
41
+ advanced: boolean;
42
+ /** The new delivery status. */
43
+ deliveryStatus: string;
44
+ /** The new delivery stage ID. */
45
+ deliveryStageId: string | null | undefined;
46
+ /** Whether guards blocked the transition. */
47
+ guardBlocked: boolean;
48
+ /** Whether to merge. */
49
+ shouldMerge: boolean;
50
+ /** Human-readable reason. */
51
+ exitReason: string;
52
+ }
53
+ export interface GuardEvalParams {
54
+ deliveryId: string;
55
+ organizationId: string;
56
+ workflowTransition: WorkflowTransition | null;
57
+ exitCode: number;
58
+ policyFailureMode: PolicyFailureMode;
59
+ deliveryName: string;
60
+ sessionId: string | null;
61
+ }
62
+ /**
63
+ * Evaluate guards at a stage transition for a delivery.
64
+ *
65
+ * This is the core guard evaluation logic extracted from completion-handler.ts.
66
+ * Can be called by:
67
+ * - The per-delivery completion handler (legacy)
68
+ * - The strategy team lead (after detecting delivery issue completion)
69
+ */
70
+ export declare function evaluateGuardsForDeliveryTransition(params: GuardEvalParams): Promise<GuardEvalOutcome>;
71
+ export interface DeliveryStageAdvanceParams {
72
+ deliveryId: string;
73
+ deliveryName: string;
74
+ organizationId: string;
75
+ workflow: Workflow;
76
+ currentStageId: string;
77
+ exitCode: number;
78
+ openIssueCount: number;
79
+ sessionCount: number;
80
+ policyFailureMode: PolicyFailureMode;
81
+ sessionId: string | null;
82
+ }
83
+ /**
84
+ * Advance a delivery through its workflow stage.
85
+ *
86
+ * Given a delivery's current stage and workflow, determines the next stage,
87
+ * evaluates any guards on the transition, and updates the delivery status.
88
+ *
89
+ * Used by the strategy team lead when all issues in a delivery are completed.
90
+ */
91
+ export declare function advanceDeliveryStage(params: DeliveryStageAdvanceParams): Promise<StageAdvanceResult>;
92
+ export interface DeliveryBranchMergeParams {
93
+ config: DaemonConfig;
94
+ branchName: string;
95
+ deliveryId: string;
96
+ deliveryName: string;
97
+ organizationId: string;
98
+ sessionId: string | null;
99
+ workflow: Workflow;
100
+ }
101
+ /**
102
+ * Merge a delivery's branch to the integration branch.
103
+ *
104
+ * Handles:
105
+ * - Merge to integration
106
+ * - Conflict escalation
107
+ * - Git state reporting
108
+ */
109
+ export declare function mergeDeliveryBranch(params: DeliveryBranchMergeParams): Promise<MergeOutcome>;
110
+ //# sourceMappingURL=delivery-lifecycle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delivery-lifecycle.d.ts","sourceRoot":"","sources":["../src/delivery-lifecycle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAUhG,MAAM,WAAW,gBAAgB;IAC/B,qDAAqD;IACrD,OAAO,EAAE,OAAO,CAAC;IACjB,0DAA0D;IAC1D,WAAW,EAAE,OAAO,CAAC;IACrB,kDAAkD;IAClD,mBAAmB,EAAE,OAAO,CAAC;IAC7B,gCAAgC;IAChC,aAAa,EAAE,WAAW,GAAG,QAAQ,CAAC;IACtC,kCAAkC;IAClC,UAAU,EAAE,MAAM,CAAC;CACpB;AAID,MAAM,WAAW,YAAY;IAC3B,kDAAkD;IAClD,cAAc,EAAE,OAAO,CAAC;IACxB,kCAAkC;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,+EAA+E;IAC/E,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,8CAA8C;IAC9C,uBAAuB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAID,MAAM,WAAW,kBAAkB;IACjC,mDAAmD;IACnD,QAAQ,EAAE,OAAO,CAAC;IAClB,+BAA+B;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,iCAAiC;IACjC,eAAe,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC3C,6CAA6C;IAC7C,YAAY,EAAE,OAAO,CAAC;IACtB,wBAAwB;IACxB,WAAW,EAAE,OAAO,CAAC;IACrB,6BAA6B;IAC7B,UAAU,EAAE,MAAM,CAAC;CACpB;AAID,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAID;;;;;;;GAOG;AACH,wBAAsB,mCAAmC,CACvD,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,gBAAgB,CAAC,CAoH3B;AAID,MAAM,WAAW,0BAA0B;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,QAAQ,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAID;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,0BAA0B,GACjC,OAAO,CAAC,kBAAkB,CAAC,CA0E7B;AAID,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,YAAY,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAID;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,yBAAyB,GAChC,OAAO,CAAC,YAAY,CAAC,CAqFvB"}