@kynetic-ai/spec 0.10.0 → 0.12.0

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 (487) hide show
  1. package/README.md +55 -455
  2. package/dist/agent-runtime/bootstrap.d.ts +31 -0
  3. package/dist/agent-runtime/bootstrap.d.ts.map +1 -0
  4. package/dist/agent-runtime/bootstrap.js +302 -0
  5. package/dist/agent-runtime/bootstrap.js.map +1 -0
  6. package/dist/agent-runtime/dispatch.d.ts +150 -10
  7. package/dist/agent-runtime/dispatch.d.ts.map +1 -1
  8. package/dist/agent-runtime/dispatch.js +1248 -244
  9. package/dist/agent-runtime/dispatch.js.map +1 -1
  10. package/dist/agent-runtime/invocation.d.ts +28 -1
  11. package/dist/agent-runtime/invocation.d.ts.map +1 -1
  12. package/dist/agent-runtime/invocation.js +172 -60
  13. package/dist/agent-runtime/invocation.js.map +1 -1
  14. package/dist/agent-runtime/prompts.d.ts +9 -0
  15. package/dist/agent-runtime/prompts.d.ts.map +1 -1
  16. package/dist/agent-runtime/prompts.js +42 -7
  17. package/dist/agent-runtime/prompts.js.map +1 -1
  18. package/dist/agent-runtime/session-event-accumulator.d.ts +83 -0
  19. package/dist/agent-runtime/session-event-accumulator.d.ts.map +1 -0
  20. package/dist/agent-runtime/session-event-accumulator.js +203 -0
  21. package/dist/agent-runtime/session-event-accumulator.js.map +1 -0
  22. package/dist/agent-runtime/session-event-types.d.ts +67 -0
  23. package/dist/agent-runtime/session-event-types.d.ts.map +1 -0
  24. package/dist/agent-runtime/session-event-types.js +13 -0
  25. package/dist/agent-runtime/session-event-types.js.map +1 -0
  26. package/dist/agent-runtime/workspace.d.ts +244 -0
  27. package/dist/agent-runtime/workspace.d.ts.map +1 -0
  28. package/dist/agent-runtime/workspace.js +2025 -0
  29. package/dist/agent-runtime/workspace.js.map +1 -0
  30. package/dist/agents/adapters.d.ts.map +1 -1
  31. package/dist/agents/adapters.js +58 -13
  32. package/dist/agents/adapters.js.map +1 -1
  33. package/dist/agents/spawner.d.ts +8 -0
  34. package/dist/agents/spawner.d.ts.map +1 -1
  35. package/dist/agents/spawner.js +25 -3
  36. package/dist/agents/spawner.js.map +1 -1
  37. package/dist/cli/batch-exec.js +1 -1
  38. package/dist/cli/batch-exec.js.map +1 -1
  39. package/dist/cli/command-annotations.d.ts +15 -3
  40. package/dist/cli/command-annotations.d.ts.map +1 -1
  41. package/dist/cli/command-annotations.js +23 -3
  42. package/dist/cli/command-annotations.js.map +1 -1
  43. package/dist/cli/commands/agent.d.ts +2 -0
  44. package/dist/cli/commands/agent.d.ts.map +1 -1
  45. package/dist/cli/commands/agent.js +144 -27
  46. package/dist/cli/commands/agent.js.map +1 -1
  47. package/dist/cli/commands/agents.d.ts.map +1 -1
  48. package/dist/cli/commands/agents.js +5 -5
  49. package/dist/cli/commands/agents.js.map +1 -1
  50. package/dist/cli/commands/derive.d.ts.map +1 -1
  51. package/dist/cli/commands/derive.js +118 -3
  52. package/dist/cli/commands/derive.js.map +1 -1
  53. package/dist/cli/commands/guard.d.ts.map +1 -1
  54. package/dist/cli/commands/guard.js +8 -6
  55. package/dist/cli/commands/guard.js.map +1 -1
  56. package/dist/cli/commands/index.d.ts +1 -0
  57. package/dist/cli/commands/index.d.ts.map +1 -1
  58. package/dist/cli/commands/index.js +1 -0
  59. package/dist/cli/commands/index.js.map +1 -1
  60. package/dist/cli/commands/init.d.ts.map +1 -1
  61. package/dist/cli/commands/init.js +20 -0
  62. package/dist/cli/commands/init.js.map +1 -1
  63. package/dist/cli/commands/item.d.ts.map +1 -1
  64. package/dist/cli/commands/item.js +205 -47
  65. package/dist/cli/commands/item.js.map +1 -1
  66. package/dist/cli/commands/log.d.ts.map +1 -1
  67. package/dist/cli/commands/log.js +24 -10
  68. package/dist/cli/commands/log.js.map +1 -1
  69. package/dist/cli/commands/meta.d.ts.map +1 -1
  70. package/dist/cli/commands/meta.js +10 -1
  71. package/dist/cli/commands/meta.js.map +1 -1
  72. package/dist/cli/commands/plan-import.d.ts +3 -3
  73. package/dist/cli/commands/plan-import.d.ts.map +1 -1
  74. package/dist/cli/commands/plan-import.js +213 -528
  75. package/dist/cli/commands/plan-import.js.map +1 -1
  76. package/dist/cli/commands/plan.d.ts.map +1 -1
  77. package/dist/cli/commands/plan.js +533 -83
  78. package/dist/cli/commands/plan.js.map +1 -1
  79. package/dist/cli/commands/review.d.ts +14 -0
  80. package/dist/cli/commands/review.d.ts.map +1 -0
  81. package/dist/cli/commands/review.js +1142 -0
  82. package/dist/cli/commands/review.js.map +1 -0
  83. package/dist/cli/commands/serve.d.ts +1 -0
  84. package/dist/cli/commands/serve.d.ts.map +1 -1
  85. package/dist/cli/commands/serve.js +33 -10
  86. package/dist/cli/commands/serve.js.map +1 -1
  87. package/dist/cli/commands/session/checkpoint.d.ts +2 -4
  88. package/dist/cli/commands/session/checkpoint.d.ts.map +1 -1
  89. package/dist/cli/commands/session/checkpoint.js +6 -107
  90. package/dist/cli/commands/session/checkpoint.js.map +1 -1
  91. package/dist/cli/commands/session/commands.d.ts.map +1 -1
  92. package/dist/cli/commands/session/commands.js +33 -23
  93. package/dist/cli/commands/session/commands.js.map +1 -1
  94. package/dist/cli/commands/session/compact.js +4 -4
  95. package/dist/cli/commands/session/compact.js.map +1 -1
  96. package/dist/cli/commands/session/create.js +2 -2
  97. package/dist/cli/commands/session/create.js.map +1 -1
  98. package/dist/cli/commands/session/format.d.ts.map +1 -1
  99. package/dist/cli/commands/session/format.js +1 -6
  100. package/dist/cli/commands/session/format.js.map +1 -1
  101. package/dist/cli/commands/session/log.d.ts +32 -7
  102. package/dist/cli/commands/session/log.d.ts.map +1 -1
  103. package/dist/cli/commands/session/log.js +166 -60
  104. package/dist/cli/commands/session/log.js.map +1 -1
  105. package/dist/cli/commands/session/migrate.d.ts +9 -0
  106. package/dist/cli/commands/session/migrate.d.ts.map +1 -0
  107. package/dist/cli/commands/session/migrate.js +46 -0
  108. package/dist/cli/commands/session/migrate.js.map +1 -0
  109. package/dist/cli/commands/session/stale-close.d.ts.map +1 -1
  110. package/dist/cli/commands/session/stale-close.js +5 -8
  111. package/dist/cli/commands/session/stale-close.js.map +1 -1
  112. package/dist/cli/commands/session/types.d.ts +1 -1
  113. package/dist/cli/commands/session/types.d.ts.map +1 -1
  114. package/dist/cli/commands/setup.d.ts +2 -2
  115. package/dist/cli/commands/setup.d.ts.map +1 -1
  116. package/dist/cli/commands/setup.js +287 -257
  117. package/dist/cli/commands/setup.js.map +1 -1
  118. package/dist/cli/commands/shadow.d.ts.map +1 -1
  119. package/dist/cli/commands/shadow.js +147 -31
  120. package/dist/cli/commands/shadow.js.map +1 -1
  121. package/dist/cli/commands/skill-crud.d.ts +7 -0
  122. package/dist/cli/commands/skill-crud.d.ts.map +1 -1
  123. package/dist/cli/commands/skill-crud.js +41 -18
  124. package/dist/cli/commands/skill-crud.js.map +1 -1
  125. package/dist/cli/commands/skill-diff.d.ts.map +1 -1
  126. package/dist/cli/commands/skill-diff.js +29 -3
  127. package/dist/cli/commands/skill-diff.js.map +1 -1
  128. package/dist/cli/commands/skill-install.d.ts.map +1 -1
  129. package/dist/cli/commands/skill-install.js +5 -4
  130. package/dist/cli/commands/skill-install.js.map +1 -1
  131. package/dist/cli/commands/task.d.ts.map +1 -1
  132. package/dist/cli/commands/task.js +359 -49
  133. package/dist/cli/commands/task.js.map +1 -1
  134. package/dist/cli/commands/trait.d.ts.map +1 -1
  135. package/dist/cli/commands/trait.js +5 -27
  136. package/dist/cli/commands/trait.js.map +1 -1
  137. package/dist/cli/commands/validate.d.ts.map +1 -1
  138. package/dist/cli/commands/validate.js +113 -52
  139. package/dist/cli/commands/validate.js.map +1 -1
  140. package/dist/cli/index.d.ts.map +1 -1
  141. package/dist/cli/index.js +69 -2
  142. package/dist/cli/index.js.map +1 -1
  143. package/dist/cli/output.d.ts +26 -0
  144. package/dist/cli/output.d.ts.map +1 -1
  145. package/dist/cli/output.js +108 -1
  146. package/dist/cli/output.js.map +1 -1
  147. package/dist/cli/sync-mode.d.ts +44 -0
  148. package/dist/cli/sync-mode.d.ts.map +1 -0
  149. package/dist/cli/sync-mode.js +64 -0
  150. package/dist/cli/sync-mode.js.map +1 -0
  151. package/dist/daemon/middleware/project-context.ts +25 -7
  152. package/dist/daemon/project-context.ts +18 -0
  153. package/dist/daemon/routes/agent-dispatch.ts +107 -23
  154. package/dist/daemon/routes/aggregation.ts +184 -0
  155. package/dist/daemon/routes/inbox.ts +5 -0
  156. package/dist/daemon/routes/items.ts +167 -0
  157. package/dist/daemon/routes/meta.ts +141 -1
  158. package/dist/daemon/routes/plans.ts +147 -0
  159. package/dist/daemon/routes/projects.ts +28 -6
  160. package/dist/daemon/routes/ref-resolution.ts +119 -0
  161. package/dist/daemon/routes/refs.ts +42 -0
  162. package/dist/daemon/routes/session-related.ts +140 -0
  163. package/dist/daemon/routes/sessions.ts +581 -0
  164. package/dist/daemon/routes/tasks.ts +257 -2
  165. package/dist/daemon/routes/triage.ts +40 -1
  166. package/dist/daemon/routes/validation.ts +1 -1
  167. package/dist/daemon/server.ts +165 -50
  168. package/dist/daemon/session-sync.ts +11 -0
  169. package/dist/daemon/shadow-sync.ts +11 -0
  170. package/dist/daemon/watcher.ts +56 -5
  171. package/dist/daemon/websocket/project-resolution.ts +77 -0
  172. package/dist/export/json.d.ts.map +1 -1
  173. package/dist/export/json.js +104 -1
  174. package/dist/export/json.js.map +1 -1
  175. package/dist/export/types.d.ts +52 -1
  176. package/dist/export/types.d.ts.map +1 -1
  177. package/dist/index.d.ts +1 -0
  178. package/dist/index.d.ts.map +1 -1
  179. package/dist/index.js +1 -0
  180. package/dist/index.js.map +1 -1
  181. package/dist/parser/agent-detection.d.ts +1 -1
  182. package/dist/parser/agent-detection.d.ts.map +1 -1
  183. package/dist/parser/agent-detection.js +10 -0
  184. package/dist/parser/agent-detection.js.map +1 -1
  185. package/dist/parser/alignment.d.ts.map +1 -1
  186. package/dist/parser/alignment.js +4 -2
  187. package/dist/parser/alignment.js.map +1 -1
  188. package/dist/parser/config.d.ts +397 -2
  189. package/dist/parser/config.d.ts.map +1 -1
  190. package/dist/parser/config.js +125 -3
  191. package/dist/parser/config.js.map +1 -1
  192. package/dist/parser/dispatch-workspaces.d.ts +18 -0
  193. package/dist/parser/dispatch-workspaces.d.ts.map +1 -0
  194. package/dist/parser/dispatch-workspaces.js +209 -0
  195. package/dist/parser/dispatch-workspaces.js.map +1 -0
  196. package/dist/parser/doctor.d.ts.map +1 -1
  197. package/dist/parser/doctor.js +27 -8
  198. package/dist/parser/doctor.js.map +1 -1
  199. package/dist/parser/file-lock.d.ts.map +1 -1
  200. package/dist/parser/file-lock.js +9 -2
  201. package/dist/parser/file-lock.js.map +1 -1
  202. package/dist/parser/index.d.ts +6 -0
  203. package/dist/parser/index.d.ts.map +1 -1
  204. package/dist/parser/index.js +6 -0
  205. package/dist/parser/index.js.map +1 -1
  206. package/dist/parser/plans.d.ts.map +1 -1
  207. package/dist/parser/plans.js +1 -0
  208. package/dist/parser/plans.js.map +1 -1
  209. package/dist/parser/refs.d.ts +8 -1
  210. package/dist/parser/refs.d.ts.map +1 -1
  211. package/dist/parser/refs.js +27 -1
  212. package/dist/parser/refs.js.map +1 -1
  213. package/dist/parser/review-operations.d.ts +72 -0
  214. package/dist/parser/review-operations.d.ts.map +1 -0
  215. package/dist/parser/review-operations.js +185 -0
  216. package/dist/parser/review-operations.js.map +1 -0
  217. package/dist/parser/review-task-integration.d.ts +78 -0
  218. package/dist/parser/review-task-integration.d.ts.map +1 -0
  219. package/dist/parser/review-task-integration.js +173 -0
  220. package/dist/parser/review-task-integration.js.map +1 -0
  221. package/dist/parser/review-threads.d.ts +101 -0
  222. package/dist/parser/review-threads.d.ts.map +1 -0
  223. package/dist/parser/review-threads.js +222 -0
  224. package/dist/parser/review-threads.js.map +1 -0
  225. package/dist/parser/review-validation.d.ts +69 -0
  226. package/dist/parser/review-validation.d.ts.map +1 -0
  227. package/dist/parser/review-validation.js +207 -0
  228. package/dist/parser/review-validation.js.map +1 -0
  229. package/dist/parser/reviews.d.ts +58 -0
  230. package/dist/parser/reviews.d.ts.map +1 -0
  231. package/dist/parser/reviews.js +230 -0
  232. package/dist/parser/reviews.js.map +1 -0
  233. package/dist/parser/session-branch.d.ts +91 -0
  234. package/dist/parser/session-branch.d.ts.map +1 -0
  235. package/dist/parser/session-branch.js +565 -0
  236. package/dist/parser/session-branch.js.map +1 -0
  237. package/dist/parser/session-sync-scheduler.d.ts +53 -0
  238. package/dist/parser/session-sync-scheduler.d.ts.map +1 -0
  239. package/dist/parser/session-sync-scheduler.js +100 -0
  240. package/dist/parser/session-sync-scheduler.js.map +1 -0
  241. package/dist/parser/setup-status.d.ts +7 -1
  242. package/dist/parser/setup-status.d.ts.map +1 -1
  243. package/dist/parser/setup-status.js +104 -39
  244. package/dist/parser/setup-status.js.map +1 -1
  245. package/dist/parser/shadow-sync-scheduler.d.ts +71 -0
  246. package/dist/parser/shadow-sync-scheduler.d.ts.map +1 -0
  247. package/dist/parser/shadow-sync-scheduler.js +139 -0
  248. package/dist/parser/shadow-sync-scheduler.js.map +1 -0
  249. package/dist/parser/shadow.d.ts +121 -14
  250. package/dist/parser/shadow.d.ts.map +1 -1
  251. package/dist/parser/shadow.js +752 -27
  252. package/dist/parser/shadow.js.map +1 -1
  253. package/dist/parser/skill-render.d.ts +24 -0
  254. package/dist/parser/skill-render.d.ts.map +1 -1
  255. package/dist/parser/skill-render.js +98 -26
  256. package/dist/parser/skill-render.js.map +1 -1
  257. package/dist/parser/validate.d.ts +43 -3
  258. package/dist/parser/validate.d.ts.map +1 -1
  259. package/dist/parser/validate.js +204 -30
  260. package/dist/parser/validate.js.map +1 -1
  261. package/dist/parser/yaml.d.ts +47 -11
  262. package/dist/parser/yaml.d.ts.map +1 -1
  263. package/dist/parser/yaml.js +329 -149
  264. package/dist/parser/yaml.js.map +1 -1
  265. package/dist/review/checks.d.ts +97 -0
  266. package/dist/review/checks.d.ts.map +1 -0
  267. package/dist/review/checks.js +175 -0
  268. package/dist/review/checks.js.map +1 -0
  269. package/dist/review/index.d.ts +3 -0
  270. package/dist/review/index.d.ts.map +1 -0
  271. package/dist/review/index.js +3 -0
  272. package/dist/review/index.js.map +1 -0
  273. package/dist/review/subject-bindings.d.ts +83 -0
  274. package/dist/review/subject-bindings.d.ts.map +1 -0
  275. package/dist/review/subject-bindings.js +175 -0
  276. package/dist/review/subject-bindings.js.map +1 -0
  277. package/dist/schema/common.d.ts +26 -0
  278. package/dist/schema/common.d.ts.map +1 -1
  279. package/dist/schema/common.js +13 -0
  280. package/dist/schema/common.js.map +1 -1
  281. package/dist/schema/dispatch-workspace.d.ts +2643 -0
  282. package/dist/schema/dispatch-workspace.d.ts.map +1 -0
  283. package/dist/schema/dispatch-workspace.js +187 -0
  284. package/dist/schema/dispatch-workspace.js.map +1 -0
  285. package/dist/schema/inbox.d.ts +8 -8
  286. package/dist/schema/index.d.ts +2 -0
  287. package/dist/schema/index.d.ts.map +1 -1
  288. package/dist/schema/index.js +2 -0
  289. package/dist/schema/index.js.map +1 -1
  290. package/dist/schema/meta.d.ts +663 -116
  291. package/dist/schema/meta.d.ts.map +1 -1
  292. package/dist/schema/meta.js +28 -0
  293. package/dist/schema/meta.js.map +1 -1
  294. package/dist/schema/plan.d.ts +30 -19
  295. package/dist/schema/plan.d.ts.map +1 -1
  296. package/dist/schema/plan.js +3 -1
  297. package/dist/schema/plan.js.map +1 -1
  298. package/dist/schema/review-records.d.ts +2676 -0
  299. package/dist/schema/review-records.d.ts.map +1 -0
  300. package/dist/schema/review-records.js +232 -0
  301. package/dist/schema/review-records.js.map +1 -0
  302. package/dist/schema/spec.d.ts +32 -14
  303. package/dist/schema/spec.d.ts.map +1 -1
  304. package/dist/schema/spec.js +5 -0
  305. package/dist/schema/spec.js.map +1 -1
  306. package/dist/schema/task.d.ts +187 -29
  307. package/dist/schema/task.d.ts.map +1 -1
  308. package/dist/schema/task.js +12 -2
  309. package/dist/schema/task.js.map +1 -1
  310. package/dist/schema/triage.d.ts +22 -22
  311. package/dist/sessions/cache.d.ts +119 -0
  312. package/dist/sessions/cache.d.ts.map +1 -0
  313. package/dist/sessions/cache.js +284 -0
  314. package/dist/sessions/cache.js.map +1 -0
  315. package/dist/sessions/index.d.ts +1 -0
  316. package/dist/sessions/index.d.ts.map +1 -1
  317. package/dist/sessions/index.js +2 -0
  318. package/dist/sessions/index.js.map +1 -1
  319. package/dist/sessions/legacy.d.ts +77 -0
  320. package/dist/sessions/legacy.d.ts.map +1 -0
  321. package/dist/sessions/legacy.js +146 -0
  322. package/dist/sessions/legacy.js.map +1 -0
  323. package/dist/sessions/store.d.ts +115 -71
  324. package/dist/sessions/store.d.ts.map +1 -1
  325. package/dist/sessions/store.js +357 -182
  326. package/dist/sessions/store.js.map +1 -1
  327. package/dist/sessions/types.d.ts +44 -16
  328. package/dist/sessions/types.d.ts.map +1 -1
  329. package/dist/sessions/types.js +11 -2
  330. package/dist/sessions/types.js.map +1 -1
  331. package/dist/strings/errors.d.ts +32 -0
  332. package/dist/strings/errors.d.ts.map +1 -1
  333. package/dist/strings/errors.js +17 -0
  334. package/dist/strings/errors.js.map +1 -1
  335. package/dist/strings/labels.d.ts +1 -0
  336. package/dist/strings/labels.d.ts.map +1 -1
  337. package/dist/strings/labels.js +1 -0
  338. package/dist/strings/labels.js.map +1 -1
  339. package/dist/utils/activity.d.ts +101 -0
  340. package/dist/utils/activity.d.ts.map +1 -0
  341. package/dist/utils/activity.js +408 -0
  342. package/dist/utils/activity.js.map +1 -0
  343. package/dist/utils/git.d.ts +31 -0
  344. package/dist/utils/git.d.ts.map +1 -1
  345. package/dist/utils/git.js +87 -0
  346. package/dist/utils/git.js.map +1 -1
  347. package/dist/utils/index.d.ts +2 -0
  348. package/dist/utils/index.d.ts.map +1 -1
  349. package/dist/utils/index.js +1 -0
  350. package/dist/utils/index.js.map +1 -1
  351. package/dist/web-ui/_app/immutable/assets/0.tmlwn-Ih.css +1 -0
  352. package/dist/web-ui/_app/immutable/assets/9.BwwJybWx.css +1 -0
  353. package/dist/web-ui/_app/immutable/chunks/2KqE8gtn.js +1 -0
  354. package/dist/web-ui/_app/immutable/chunks/70-t_QvE.js +1 -0
  355. package/dist/web-ui/_app/immutable/chunks/AiWQj974.js +1 -0
  356. package/dist/web-ui/_app/immutable/chunks/B25nWFyA.js +5 -0
  357. package/dist/web-ui/_app/immutable/chunks/B2bcA_Q_.js +1 -0
  358. package/dist/web-ui/_app/immutable/chunks/B5e5HYyB.js +1 -0
  359. package/dist/web-ui/_app/immutable/chunks/B7-5z6eA.js +1 -0
  360. package/dist/web-ui/_app/immutable/chunks/B7bGmhK0.js +1 -0
  361. package/dist/web-ui/_app/immutable/chunks/B8tYZKAE.js +1 -0
  362. package/dist/web-ui/_app/immutable/chunks/BFGAyJjD.js +1 -0
  363. package/dist/web-ui/_app/immutable/chunks/BG0850zf.js +1 -0
  364. package/dist/web-ui/_app/immutable/chunks/BG8eSzAd.js +1 -0
  365. package/dist/web-ui/_app/immutable/chunks/BIMxXS8I.js +1 -0
  366. package/dist/web-ui/_app/immutable/chunks/BSzL1fpU.js +1 -0
  367. package/dist/web-ui/_app/immutable/chunks/BYtjHfeq.js +1 -0
  368. package/dist/web-ui/_app/immutable/chunks/{D1ArdqNb.js → Bp5pFYXL.js} +1 -1
  369. package/dist/web-ui/_app/immutable/chunks/BsJFsuAT.js +1 -0
  370. package/dist/web-ui/_app/immutable/chunks/BvpNHcD6.js +1 -0
  371. package/dist/web-ui/_app/immutable/chunks/BypqA25-.js +1 -0
  372. package/dist/web-ui/_app/immutable/chunks/C0w6WDm5.js +1 -0
  373. package/dist/web-ui/_app/immutable/chunks/C5_PAZ0y.js +1 -0
  374. package/dist/web-ui/_app/immutable/chunks/CDRO15Iv.js +1 -0
  375. package/dist/web-ui/_app/immutable/chunks/CF1CoqD5.js +1 -0
  376. package/dist/web-ui/_app/immutable/chunks/CS2sa4_m.js +1 -0
  377. package/dist/web-ui/_app/immutable/chunks/CWUQwB9H.js +1 -0
  378. package/dist/web-ui/_app/immutable/chunks/CY5FDdSU.js +1 -0
  379. package/dist/web-ui/_app/immutable/chunks/C_7MTDoj.js +1 -0
  380. package/dist/web-ui/_app/immutable/chunks/CaAJD3dl.js +1 -0
  381. package/dist/web-ui/_app/immutable/chunks/{i-XnOIX0.js → ChB5iyEL.js} +1 -1
  382. package/dist/web-ui/_app/immutable/chunks/ChQD-6N8.js +1 -0
  383. package/dist/web-ui/_app/immutable/chunks/{BCkp8Hs8.js → CqbsoCwA.js} +1 -1
  384. package/dist/web-ui/_app/immutable/chunks/DCeJW50p.js +1 -0
  385. package/dist/web-ui/_app/immutable/chunks/DJtZNgcs.js +1 -0
  386. package/dist/web-ui/_app/immutable/chunks/DKIeaprD.js +1 -0
  387. package/dist/web-ui/_app/immutable/chunks/DLd2uVIA.js +1 -0
  388. package/dist/web-ui/_app/immutable/chunks/DW_subyT.js +2 -0
  389. package/dist/web-ui/_app/immutable/chunks/DbU6lVn0.js +1 -0
  390. package/dist/web-ui/_app/immutable/chunks/Dc7ZCC5m.js +1 -0
  391. package/dist/web-ui/_app/immutable/chunks/Dd5umPsk.js +2 -0
  392. package/dist/web-ui/_app/immutable/chunks/Dg_zDpDS.js +1 -0
  393. package/dist/web-ui/_app/immutable/chunks/Dgqu8Yuc.js +1 -0
  394. package/dist/web-ui/_app/immutable/chunks/DmxsPZTB.js +1 -0
  395. package/dist/web-ui/_app/immutable/chunks/DphTaFUB.js +1 -0
  396. package/dist/web-ui/_app/immutable/chunks/DqK4iHp0.js +1 -0
  397. package/dist/web-ui/_app/immutable/chunks/DqT6OH_u.js +2 -0
  398. package/dist/web-ui/_app/immutable/chunks/Ds9I9wQb.js +1 -0
  399. package/dist/web-ui/_app/immutable/chunks/Du5ng3u4.js +1 -0
  400. package/dist/web-ui/_app/immutable/chunks/DxJw79Wi.js +1 -0
  401. package/dist/web-ui/_app/immutable/chunks/GFTX8GgV.js +1 -0
  402. package/dist/web-ui/_app/immutable/chunks/HNjs76Zz.js +1 -0
  403. package/dist/web-ui/_app/immutable/chunks/HVMjDi4_.js +1 -0
  404. package/dist/web-ui/_app/immutable/chunks/P0A_fJvS.js +1 -0
  405. package/dist/web-ui/_app/immutable/chunks/T3vGWjIL.js +1 -0
  406. package/dist/web-ui/_app/immutable/chunks/VTmrX9Qu.js +1 -0
  407. package/dist/web-ui/_app/immutable/chunks/Xvwhx_F1.js +1 -0
  408. package/dist/web-ui/_app/immutable/chunks/Yyz1XMQA.js +1 -0
  409. package/dist/web-ui/_app/immutable/chunks/dh5HeqUr.js +1 -0
  410. package/dist/web-ui/_app/immutable/chunks/fZMteyca.js +62 -0
  411. package/dist/web-ui/_app/immutable/chunks/{D28BF5MJ.js → gPrj-hqC.js} +1 -1
  412. package/dist/web-ui/_app/immutable/chunks/htcWMiYN.js +1 -0
  413. package/dist/web-ui/_app/immutable/chunks/oTsvd9y4.js +1 -0
  414. package/dist/web-ui/_app/immutable/chunks/qJfLUwU4.js +1 -0
  415. package/dist/web-ui/_app/immutable/chunks/xCtiO_JE.js +1 -0
  416. package/dist/web-ui/_app/immutable/chunks/y4GeEH6k.js +1 -0
  417. package/dist/web-ui/_app/immutable/entry/app.C4h_eOn6.js +2 -0
  418. package/dist/web-ui/_app/immutable/entry/start.CQFTf9ep.js +1 -0
  419. package/dist/web-ui/_app/immutable/nodes/0.Dh1xO970.js +1 -0
  420. package/dist/web-ui/_app/immutable/nodes/1.l75D3Opx.js +1 -0
  421. package/dist/web-ui/_app/immutable/nodes/10.DBidBPc-.js +1 -0
  422. package/dist/web-ui/_app/immutable/nodes/11.Ab0gUKWe.js +1 -0
  423. package/dist/web-ui/_app/immutable/nodes/12.CMsnoxfs.js +1 -0
  424. package/dist/web-ui/_app/immutable/nodes/13.D8YKuknB.js +1 -0
  425. package/dist/web-ui/_app/immutable/nodes/14.DZ0aan7y.js +1 -0
  426. package/dist/web-ui/_app/immutable/nodes/15.CUIKreDL.js +2 -0
  427. package/dist/web-ui/_app/immutable/nodes/16.BWc8--BO.js +1 -0
  428. package/dist/web-ui/_app/immutable/nodes/2.CDUonbuh.js +1 -0
  429. package/dist/web-ui/_app/immutable/nodes/3.Ctg3M00i.js +1 -0
  430. package/dist/web-ui/_app/immutable/nodes/4.Ci-JDwbA.js +2 -0
  431. package/dist/web-ui/_app/immutable/nodes/5.CTyEDAq0.js +1 -0
  432. package/dist/web-ui/_app/immutable/nodes/6.BTZZqsAb.js +1 -0
  433. package/dist/web-ui/_app/immutable/nodes/7.BI52g_Jo.js +137 -0
  434. package/dist/web-ui/_app/immutable/nodes/8.3hZPaB9x.js +1 -0
  435. package/dist/web-ui/_app/immutable/nodes/9.DS49kvwl.js +29 -0
  436. package/dist/web-ui/_app/version.json +1 -1
  437. package/dist/web-ui/favicon-192.png +0 -0
  438. package/dist/web-ui/favicon-32.png +0 -0
  439. package/dist/web-ui/favicon.ico +0 -0
  440. package/dist/web-ui/index.html +14 -11
  441. package/package.json +14 -7
  442. package/plugin/.claude-plugin/marketplace.json +1 -1
  443. package/plugin/.claude-plugin/plugin.json +1 -1
  444. package/plugin/plugins/kspec/skills/merge/SKILL.md +127 -0
  445. package/plugin/plugins/kspec/skills/plan/SKILL.md +55 -26
  446. package/plugin/plugins/kspec/skills/review/SKILL.md +350 -133
  447. package/plugin/plugins/kspec/skills/task-work/SKILL.md +96 -106
  448. package/templates/agents-sections/04-pr-workflow.md +15 -12
  449. package/templates/agents-sections/06-ralph-loop.md +15 -10
  450. package/templates/skills/manifest.yaml +25 -7
  451. package/templates/skills/merge/SKILL.md +120 -0
  452. package/templates/skills/plan/SKILL.md +55 -26
  453. package/templates/skills/review/SKILL.md +346 -130
  454. package/templates/skills/task-work/SKILL.md +93 -103
  455. package/dist/web-ui/_app/immutable/assets/0.BxCxvrZR.css +0 -1
  456. package/dist/web-ui/_app/immutable/chunks/B-CZR0q8.js +0 -1
  457. package/dist/web-ui/_app/immutable/chunks/B1IR5Su5.js +0 -1
  458. package/dist/web-ui/_app/immutable/chunks/B_Cvvtc4.js +0 -1
  459. package/dist/web-ui/_app/immutable/chunks/BtFaGGII.js +0 -1
  460. package/dist/web-ui/_app/immutable/chunks/Bu8JVsCH.js +0 -1
  461. package/dist/web-ui/_app/immutable/chunks/C87u-CNA.js +0 -1
  462. package/dist/web-ui/_app/immutable/chunks/CrFkBTYp.js +0 -1
  463. package/dist/web-ui/_app/immutable/chunks/D6RtLpzL.js +0 -1
  464. package/dist/web-ui/_app/immutable/chunks/D7FHSgx2.js +0 -1
  465. package/dist/web-ui/_app/immutable/chunks/DBXrsxZQ.js +0 -2
  466. package/dist/web-ui/_app/immutable/chunks/Da_hHMuA.js +0 -1
  467. package/dist/web-ui/_app/immutable/chunks/Do6LchSF.js +0 -1
  468. package/dist/web-ui/_app/immutable/chunks/DoNPtcAw.js +0 -1
  469. package/dist/web-ui/_app/immutable/chunks/DtUbXRZz.js +0 -1
  470. package/dist/web-ui/_app/immutable/chunks/DyFPRlLl.js +0 -1
  471. package/dist/web-ui/_app/immutable/chunks/DzAP8lRM.js +0 -1
  472. package/dist/web-ui/_app/immutable/chunks/DzVXElzN.js +0 -2
  473. package/dist/web-ui/_app/immutable/chunks/aoPBFken.js +0 -1
  474. package/dist/web-ui/_app/immutable/chunks/laxtrUO3.js +0 -1
  475. package/dist/web-ui/_app/immutable/chunks/q1nIWgqB.js +0 -1
  476. package/dist/web-ui/_app/immutable/chunks/sTLbk5Nm.js +0 -1
  477. package/dist/web-ui/_app/immutable/chunks/vwKgQu5P.js +0 -5
  478. package/dist/web-ui/_app/immutable/entry/app.BCwMcqnT.js +0 -2
  479. package/dist/web-ui/_app/immutable/entry/start.wKCQH-tt.js +0 -1
  480. package/dist/web-ui/_app/immutable/nodes/0.CjGVMG74.js +0 -1
  481. package/dist/web-ui/_app/immutable/nodes/1.B6_AIPan.js +0 -1
  482. package/dist/web-ui/_app/immutable/nodes/2.q4oCS7Ws.js +0 -1
  483. package/dist/web-ui/_app/immutable/nodes/3.rTKZf9o2.js +0 -1
  484. package/dist/web-ui/_app/immutable/nodes/4.DVIDRu1d.js +0 -1
  485. package/dist/web-ui/_app/immutable/nodes/5.8PtPXIOd.js +0 -1
  486. package/dist/web-ui/_app/immutable/nodes/6.ZZrTemy_.js +0 -1
  487. package/dist/web-ui/_app/immutable/nodes/7.IP-gxCxi.js +0 -1
@@ -0,0 +1,302 @@
1
+ import { spawnSync } from "node:child_process";
2
+ import { createHash } from "node:crypto";
3
+ import { loadProjectConfig } from "../parser/config.js";
4
+ import { normalizeDispatchBootstrapState, persistDispatchWorkspaceMetadata, } from "./workspace.js";
5
+ export class DispatchBootstrapError extends Error {
6
+ suggestion;
7
+ constructor(message, suggestion) {
8
+ super(message);
9
+ this.name = "DispatchBootstrapError";
10
+ this.suggestion = suggestion;
11
+ }
12
+ }
13
+ function runShell(cwd, command, env) {
14
+ const result = spawnSync("bash", ["-lc", command], {
15
+ cwd,
16
+ env: {
17
+ ...process.env,
18
+ ...env,
19
+ },
20
+ encoding: "utf-8",
21
+ stdio: "pipe",
22
+ });
23
+ return {
24
+ status: result.status,
25
+ stdout: result.stdout ?? "",
26
+ stderr: result.stderr ?? "",
27
+ };
28
+ }
29
+ function trackedStatus(cwd) {
30
+ const result = spawnSync("git", ["status", "--porcelain", "--untracked-files=no"], {
31
+ cwd,
32
+ encoding: "utf-8",
33
+ stdio: "pipe",
34
+ });
35
+ return result.status === 0 ? (result.stdout ?? "").trim() : "";
36
+ }
37
+ function summarizeOutput(stdout, stderr) {
38
+ const combined = [stdout.trim(), stderr.trim()].filter(Boolean).join("\n");
39
+ if (!combined)
40
+ return null;
41
+ return combined.slice(0, 4000);
42
+ }
43
+ function hashConfig(steps) {
44
+ return createHash("sha256")
45
+ .update(JSON.stringify(steps.map((step) => ({
46
+ source: step.source,
47
+ name: step.name,
48
+ run: step.run,
49
+ roles: step.roles ?? null,
50
+ idempotent: step.idempotent,
51
+ allowTrackedChanges: step.allowTrackedChanges,
52
+ reviewerRerunAllowed: step.reviewerRerunAllowed,
53
+ }))))
54
+ .digest("hex");
55
+ }
56
+ function resolveBootstrapSteps(agent, dispatchSteps) {
57
+ const projectSteps = dispatchSteps.map((step, index) => ({
58
+ source: "dispatch",
59
+ name: step.name ?? `dispatch-step-${index + 1}`,
60
+ run: step.run,
61
+ ...(step.roles ? { roles: step.roles } : {}),
62
+ idempotent: step.idempotent,
63
+ allowTrackedChanges: step.allow_tracked_changes,
64
+ reviewerRerunAllowed: step.reviewer_rerun_allowed,
65
+ }));
66
+ const agentSteps = (agent.bootstrap?.steps ?? []).map((step, index) => ({
67
+ source: "agent",
68
+ name: step.name ?? `agent-step-${index + 1}`,
69
+ run: step.run,
70
+ ...(step.roles ? { roles: step.roles } : {}),
71
+ idempotent: step.idempotent ?? false,
72
+ allowTrackedChanges: step.allow_tracked_changes ?? false,
73
+ reviewerRerunAllowed: step.reviewer_rerun_allowed ?? false,
74
+ }));
75
+ return [...projectSteps, ...agentSteps];
76
+ }
77
+ function stepAppliesToRole(step, role) {
78
+ return !step.roles || step.roles.includes(role);
79
+ }
80
+ function computeInvalidationReasons(state, canonicalBranchHead, configHash) {
81
+ const reasons = [];
82
+ if (state.status === "failed") {
83
+ reasons.push("prior-bootstrap-failed");
84
+ }
85
+ if (state.configHash && state.configHash !== configHash) {
86
+ reasons.push("bootstrap-config-changed");
87
+ }
88
+ if (state.canonicalBranchHead && state.canonicalBranchHead !== canonicalBranchHead) {
89
+ reasons.push("canonical-branch-head-changed");
90
+ }
91
+ return reasons;
92
+ }
93
+ async function persistMetadata(projectDir, metadataPath, metadata) {
94
+ await persistDispatchWorkspaceMetadata(projectDir, metadata);
95
+ }
96
+ function describeTrackedChangeFailure(step) {
97
+ return [
98
+ `Bootstrap step "${step.name}" modified tracked files but allow_tracked_changes is false.`,
99
+ "Mark the step with allow_tracked_changes: true only if tracked source mutations are intentional.",
100
+ ].join(" ");
101
+ }
102
+ function updateBootstrapState(metadata, role, state) {
103
+ metadata.bootstrap = {
104
+ ...state,
105
+ lastRole: role,
106
+ roleStates: {
107
+ ...metadata.bootstrap.roleStates,
108
+ [role]: state,
109
+ },
110
+ };
111
+ metadata.bootstrapState = metadata.bootstrap;
112
+ }
113
+ export async function ensureWorkspaceBootstrap(options) {
114
+ const { projectDir, workspaceDir, metadataPath, role, agent, env, } = options;
115
+ const { config } = await loadProjectConfig(projectDir, projectDir);
116
+ const steps = resolveBootstrapSteps(agent, config.dispatch.bootstrap.steps);
117
+ const roleSteps = steps.filter((step) => stepAppliesToRole(step, role));
118
+ const configHash = hashConfig(steps);
119
+ const metadata = structuredClone(options.metadata);
120
+ metadata.bootstrap = normalizeDispatchBootstrapState(metadata.bootstrap);
121
+ metadata.bootstrapState = metadata.bootstrap;
122
+ const workerState = metadata.bootstrap.roleStates.worker;
123
+ const reviewerState = metadata.bootstrap.roleStates.reviewer;
124
+ const workerInvalidationReasons = computeInvalidationReasons(workerState, metadata.canonicalBranchHead, configHash);
125
+ const reviewerInvalidationReasons = computeInvalidationReasons(reviewerState, metadata.canonicalBranchHead, configHash);
126
+ const workerBootstrapSucceeded = workerState.status === "succeeded" &&
127
+ workerInvalidationReasons.length === 0;
128
+ const reviewerBootstrapSucceeded = reviewerState.status === "succeeded" &&
129
+ reviewerInvalidationReasons.length === 0;
130
+ const canReuseWorkerStateForReviewer = role === "reviewer" &&
131
+ roleSteps.length === 0 &&
132
+ workerBootstrapSucceeded;
133
+ const invalidationReasons = role === "reviewer" && !reviewerBootstrapSucceeded && canReuseWorkerStateForReviewer
134
+ ? workerInvalidationReasons
135
+ : role === "reviewer"
136
+ ? reviewerInvalidationReasons
137
+ : workerInvalidationReasons;
138
+ const bootstrapSucceeded = role === "worker" ? workerBootstrapSucceeded : reviewerBootstrapSucceeded;
139
+ if (bootstrapSucceeded) {
140
+ const state = role === "worker"
141
+ ? {
142
+ ...workerState,
143
+ invalidationReasons: [],
144
+ failureMessage: null,
145
+ }
146
+ : {
147
+ ...reviewerState,
148
+ invalidationReasons: [],
149
+ failureMessage: null,
150
+ };
151
+ updateBootstrapState(metadata, role, state);
152
+ metadata.healthStatus = "healthy";
153
+ metadata.healthReason = null;
154
+ metadata.updatedAt = new Date().toISOString();
155
+ await persistMetadata(projectDir, metadataPath, metadata);
156
+ return { metadata, reused: true, ranSteps: false };
157
+ }
158
+ if (canReuseWorkerStateForReviewer) {
159
+ const reusedReviewerState = {
160
+ status: "succeeded",
161
+ configHash,
162
+ canonicalBranchHead: metadata.canonicalBranchHead,
163
+ lastRunAt: new Date().toISOString(),
164
+ invalidationReasons: [],
165
+ steps: [],
166
+ failureMessage: null,
167
+ };
168
+ updateBootstrapState(metadata, role, reusedReviewerState);
169
+ metadata.healthStatus = "healthy";
170
+ metadata.healthReason = null;
171
+ metadata.updatedAt = new Date().toISOString();
172
+ await persistMetadata(projectDir, metadataPath, metadata);
173
+ return { metadata, reused: true, ranSteps: false };
174
+ }
175
+ const rerunnableSteps = role === "reviewer"
176
+ ? roleSteps.filter((step) => step.idempotent || step.reviewerRerunAllowed)
177
+ : roleSteps;
178
+ if (role === "reviewer" && !bootstrapSucceeded && rerunnableSteps.length !== roleSteps.length) {
179
+ const blockedSteps = roleSteps
180
+ .filter((step) => !rerunnableSteps.includes(step))
181
+ .map((step) => step.name)
182
+ .join(", ");
183
+ updateBootstrapState(metadata, role, {
184
+ status: "failed",
185
+ configHash,
186
+ canonicalBranchHead: metadata.canonicalBranchHead,
187
+ lastRunAt: new Date().toISOString(),
188
+ invalidationReasons,
189
+ steps: [],
190
+ failureMessage: `Reviewer bootstrap cannot safely rerun non-idempotent steps: ${blockedSteps}`,
191
+ });
192
+ metadata.healthStatus = "unhealthy";
193
+ metadata.healthReason = metadata.bootstrap.failureMessage ?? null;
194
+ metadata.updatedAt = new Date().toISOString();
195
+ await persistMetadata(projectDir, metadataPath, metadata);
196
+ const failureMessage = metadata.bootstrap.failureMessage ?? "Reviewer bootstrap rerun was rejected.";
197
+ throw new DispatchBootstrapError(failureMessage, "Run or repair bootstrap from the worker workspace, or mark the affected reviewer-safe steps as idempotent/reviewer_rerun_allowed.");
198
+ }
199
+ const executedSteps = [];
200
+ for (const step of rerunnableSteps) {
201
+ const beforeStatus = trackedStatus(workspaceDir);
202
+ const result = runShell(workspaceDir, step.run, {
203
+ ...env,
204
+ KSPEC_DISPATCH_BOOTSTRAP_ROLE: role,
205
+ KSPEC_DISPATCH_BOOTSTRAP_SOURCE: step.source,
206
+ KSPEC_DISPATCH_BOOTSTRAP_STEP: step.name,
207
+ });
208
+ const afterStatus = trackedStatus(workspaceDir);
209
+ const output = summarizeOutput(result.stdout, result.stderr);
210
+ if (result.status !== 0) {
211
+ const failureMessage = `Bootstrap step "${step.name}" failed with exit code ${result.status ?? "unknown"}.`;
212
+ updateBootstrapState(metadata, role, {
213
+ status: "failed",
214
+ configHash,
215
+ canonicalBranchHead: metadata.canonicalBranchHead,
216
+ lastRunAt: new Date().toISOString(),
217
+ invalidationReasons,
218
+ steps: [
219
+ ...executedSteps,
220
+ {
221
+ source: step.source,
222
+ name: step.name,
223
+ run: step.run,
224
+ idempotent: step.idempotent,
225
+ allowTrackedChanges: step.allowTrackedChanges,
226
+ reviewerRerunAllowed: step.reviewerRerunAllowed,
227
+ status: "failed",
228
+ role,
229
+ output,
230
+ },
231
+ ],
232
+ failureMessage: `${failureMessage}${output ? ` Output: ${output}` : ""}`,
233
+ });
234
+ metadata.healthStatus = "unhealthy";
235
+ metadata.healthReason = failureMessage;
236
+ metadata.updatedAt = new Date().toISOString();
237
+ await persistMetadata(projectDir, metadataPath, metadata);
238
+ const failureMessageWithOutput = metadata.bootstrap.failureMessage ?? failureMessage;
239
+ throw new DispatchBootstrapError(failureMessageWithOutput, "Inspect the failing bootstrap command, dependency prerequisites, and workspace health before retrying dispatch.");
240
+ }
241
+ if (!step.allowTrackedChanges && beforeStatus !== afterStatus) {
242
+ const failureMessage = describeTrackedChangeFailure(step);
243
+ updateBootstrapState(metadata, role, {
244
+ status: "failed",
245
+ configHash,
246
+ canonicalBranchHead: metadata.canonicalBranchHead,
247
+ lastRunAt: new Date().toISOString(),
248
+ invalidationReasons,
249
+ steps: [
250
+ ...executedSteps,
251
+ {
252
+ source: step.source,
253
+ name: step.name,
254
+ run: step.run,
255
+ idempotent: step.idempotent,
256
+ allowTrackedChanges: step.allowTrackedChanges,
257
+ reviewerRerunAllowed: step.reviewerRerunAllowed,
258
+ status: "failed",
259
+ role,
260
+ output: summarizeOutput(output ?? "", `Tracked status before:\n${beforeStatus}\nTracked status after:\n${afterStatus}`),
261
+ },
262
+ ],
263
+ failureMessage,
264
+ });
265
+ metadata.healthStatus = "unhealthy";
266
+ metadata.healthReason = failureMessage;
267
+ metadata.updatedAt = new Date().toISOString();
268
+ await persistMetadata(projectDir, metadataPath, metadata);
269
+ throw new DispatchBootstrapError(failureMessage, "Update bootstrap configuration to opt in to tracked changes explicitly, or make the bootstrap step avoid tracked source mutations.");
270
+ }
271
+ executedSteps.push({
272
+ source: step.source,
273
+ name: step.name,
274
+ run: step.run,
275
+ idempotent: step.idempotent,
276
+ allowTrackedChanges: step.allowTrackedChanges,
277
+ reviewerRerunAllowed: step.reviewerRerunAllowed,
278
+ status: "succeeded",
279
+ role,
280
+ output,
281
+ });
282
+ }
283
+ updateBootstrapState(metadata, role, {
284
+ status: "succeeded",
285
+ configHash,
286
+ canonicalBranchHead: metadata.canonicalBranchHead,
287
+ lastRunAt: new Date().toISOString(),
288
+ invalidationReasons,
289
+ steps: executedSteps,
290
+ failureMessage: null,
291
+ });
292
+ metadata.healthStatus = "healthy";
293
+ metadata.healthReason = null;
294
+ metadata.updatedAt = new Date().toISOString();
295
+ await persistMetadata(projectDir, metadataPath, metadata);
296
+ return {
297
+ metadata,
298
+ reused: false,
299
+ ranSteps: rerunnableSteps.length > 0,
300
+ };
301
+ }
302
+ //# sourceMappingURL=bootstrap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/agent-runtime/bootstrap.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,9 @@
10
10
  * AC: @agent-dispatch-engine ac-1 through ac-12
11
11
  */
12
12
  import { type LoadedTask } from "../parser/index.js";
13
+ import type { SessionEventData } from "./session-event-types.js";
14
+ import { interpolateTemplate } from "./prompts.js";
15
+ import { type DispatchWorkspaceMetadata, type DispatchWorkspaceRole, type ProvisionedDispatchWorkspace } from "./workspace.js";
13
16
  /**
14
17
  * A minimal promise-based mutex for serializing async operations.
15
18
  * AC: @agent-dispatch-engine ac-12
@@ -25,20 +28,53 @@ declare class Mutex {
25
28
  * Task state as used for dispatch tracking.
26
29
  */
27
30
  export type TaskStatus = "pending" | "in_progress" | "pending_review" | "needs_work" | "blocked" | "completed" | "cancelled";
31
+ export { interpolateTemplate };
28
32
  /**
29
- * Interpolate {{variable}} placeholders in a prompt template.
30
- * Unresolved variables pass through unchanged.
33
+ * Find the examined commit from the most recent closed review for a task.
34
+ * Returns null when no prior examined commit exists.
31
35
  *
32
- * AC: @agent-dispatch-engine ac-16
36
+ * AC: @review-fix-cycle-diff ac-2 — find prior review's examined commit
33
37
  */
34
- export declare function interpolateTemplate(template: string, vars: Record<string, string>): string;
38
+ export declare function findPriorExaminedCommit(reviews: Array<{
39
+ lifecycle_state: string;
40
+ examined_commit: string | null;
41
+ subject: {
42
+ type: string;
43
+ ref?: string;
44
+ };
45
+ related_refs: string[];
46
+ created_at: string | null;
47
+ }>, taskRef: string): string | null;
48
+ /**
49
+ * Compute a git diff --stat between two commits. Returns null on any error.
50
+ *
51
+ * AC: @review-fix-cycle-diff ac-3 — graceful omission on unreachable commits
52
+ */
53
+ export declare function computeDiffStat(fromCommit: string, toCommit: string, cwd: string): string | null;
54
+ /**
55
+ * Compute a diff summary between the prior review's examined commit and the
56
+ * current canonical branch head. Returns null when no prior examined commit
57
+ * exists or when the diff cannot be computed (unreachable commits, etc.).
58
+ *
59
+ * AC: @review-fix-cycle-diff ac-2 — diff summary for reviewer orientation
60
+ * AC: @review-fix-cycle-diff ac-3 — graceful omission on unreachable commits
61
+ */
62
+ export declare function getFixCycleDiffSummary(projectDir: string, taskRef: string, canonicalBranchHead: string | undefined, workspaceCwd?: string): Promise<string | null>;
35
63
  /**
36
64
  * Build orientation context block for a dispatch prompt.
37
65
  * Provides the agent with task title, trigger meaning, and relevant context.
38
66
  *
39
67
  * AC: @agent-dispatch-engine ac-13, ac-14, ac-15
40
68
  */
41
- export declare function buildOrientationContext(taskRef: string, trigger: string, task?: {
69
+ export declare function buildOrientationContext(taskRef: string, trigger: string, workspaceOrTask: ProvisionedDispatchWorkspace | {
70
+ title: string;
71
+ notes?: Array<{
72
+ created_at: string;
73
+ author?: string;
74
+ content: string;
75
+ }>;
76
+ review_url?: string;
77
+ }, taskOrMetadata?: {
42
78
  title: string;
43
79
  notes?: Array<{
44
80
  created_at: string;
@@ -46,6 +82,8 @@ export declare function buildOrientationContext(taskRef: string, trigger: string
46
82
  content: string;
47
83
  }>;
48
84
  review_url?: string;
85
+ } | DispatchWorkspaceMetadata, metadataOrRole?: DispatchWorkspaceMetadata | DispatchWorkspaceRole, explicitRole?: DispatchWorkspaceRole, options?: {
86
+ fixCycleDiffSummary?: string | null;
49
87
  }): string;
50
88
  /**
51
89
  * A state change event for a single task.
@@ -68,6 +106,7 @@ export interface InvocationEvent {
68
106
  session_id: string;
69
107
  agent_id: string;
70
108
  task_id: string | undefined;
109
+ task_title: string | null;
71
110
  status: "started" | "completed" | "failed";
72
111
  timestamp: number;
73
112
  }
@@ -86,6 +125,21 @@ export interface DispatchEngineOptions {
86
125
  cwd?: string;
87
126
  /** Deduplication window in milliseconds (default 2000) */
88
127
  dedupWindowMs?: number;
128
+ /**
129
+ * Periodic reconciliation interval in milliseconds (default 60000).
130
+ * Re-evaluates all task states against dispatch rules, enqueuing any that
131
+ * match but have no active or queued invocation. Set to 0 or null to disable.
132
+ * AC: @agent-dispatch-engine ac-20
133
+ */
134
+ reconcileIntervalMs?: number | null;
135
+ /**
136
+ * Per-task coalescing window in milliseconds (default 5000).
137
+ * When a state change event triggers a drain, the drain is deferred by this
138
+ * window. If another event arrives for the same task within the window, the
139
+ * timer resets. Set to 0 to disable coalescing (immediate drain behavior).
140
+ * AC: @per-task-dispatch-drain-coalescing ac-4
141
+ */
142
+ coalesceWindowMs?: number;
89
143
  /** Path to kspec CLI binary (for task notes) */
90
144
  kspecCliPath?: string;
91
145
  /**
@@ -94,11 +148,13 @@ export interface DispatchEngineOptions {
94
148
  */
95
149
  onInvocationEvent?: (event: InvocationEvent) => void;
96
150
  /**
97
- * Optional callback invoked for each text chunk produced by a running agent.
151
+ * Optional callback invoked for typed session lifecycle events.
152
+ * Replaces the old onTextChunk callback with structured event emission.
153
+ * AC: @session-event-broadcast ac-replaces-text-chunks
98
154
  * AC: @cli-agent-commands ac-13 (broadcast to watch subscribers)
99
155
  * AC: @daemon-agent-dispatch ac-8
100
156
  */
101
- onTextChunk?: (sessionId: string, agentId: string, taskId: string | null, text: string) => void;
157
+ onSessionEvent?: (event: SessionEventData) => void;
102
158
  }
103
159
  /**
104
160
  * The core dispatch runtime.
@@ -116,9 +172,14 @@ export declare class DispatchEngine {
116
172
  private specDir;
117
173
  private cwd;
118
174
  private dedupWindowMs;
175
+ private reconcileIntervalMs;
176
+ /** AC: @per-task-dispatch-drain-coalescing ac-4 */
177
+ private coalesceWindowMs;
119
178
  private kspecCliPath?;
120
179
  private onInvocationEvent?;
121
- private onTextChunk?;
180
+ private onSessionEvent?;
181
+ /** Per-session text accumulator for newline-boundary streaming. */
182
+ private accumulator;
122
183
  /** Queue of pending dispatch entries, per agent id */
123
184
  private queues;
124
185
  /** Count of active (running) invocations per agent id */
@@ -137,8 +198,22 @@ export declare class DispatchEngine {
137
198
  private invocationAbortControllers;
138
199
  /** Per-invocation tracking records for status display */
139
200
  private activeInvocationDetails;
201
+ /** Task refs currently between queue removal and active tracking registration */
202
+ private inFlightTaskKeys;
140
203
  /** Monotonic enqueue sequence for deterministic queue ordering */
141
204
  private nextQueueSequence;
205
+ /** Last task selected/completed, used as continuity affinity signal. */
206
+ private recentTaskAffinityRef;
207
+ /** Timer handle for periodic reconciliation. AC: @agent-dispatch-engine ac-20 */
208
+ private reconcileTimer;
209
+ /** All in-flight reconciliation promises so stop() can await every one. */
210
+ private inFlightReconciles;
211
+ /** Per-task coalescing timers. AC: @per-task-dispatch-drain-coalescing ac-1 */
212
+ private coalesceTimers;
213
+ /** Whether a drain is currently in progress. AC: @per-task-dispatch-drain-coalescing ac-8 */
214
+ private drainInProgress;
215
+ /** Whether another drain was requested while one is already running. AC: @per-task-dispatch-drain-coalescing ac-8 */
216
+ private drainPending;
142
217
  constructor(options: DispatchEngineOptions);
143
218
  /**
144
219
  * Start the dispatch engine.
@@ -171,6 +246,7 @@ export declare class DispatchEngine {
171
246
  * AC: @agent-dispatch-engine ac-12
172
247
  */
173
248
  getShadowMutex(): Mutex;
249
+ getCwd(): string;
174
250
  /**
175
251
  * Returns current engine status info including per-invocation details.
176
252
  * AC: @cli-agent-commands ac-6
@@ -199,13 +275,51 @@ export declare class DispatchEngine {
199
275
  * AC: @agent-dispatch-engine ac-8
200
276
  */
201
277
  private _bootstrap;
278
+ /**
279
+ * Periodic reconciliation: re-evaluate all task states against dispatch rules.
280
+ * Enqueues tasks that match but have no active or queued invocation.
281
+ * AC: @agent-dispatch-engine ac-19
282
+ */
283
+ private _reconcile;
284
+ /**
285
+ * Shared logic for bootstrap and reconciliation: load all tasks, seed
286
+ * prevTaskStates, and enqueue tasks matching agent dispatch rules.
287
+ *
288
+ * When skipIfActive is true (reconciliation), tasks with an existing
289
+ * active or queued invocation are skipped.
290
+ *
291
+ * AC: @agent-dispatch-engine ac-8, ac-19
292
+ */
293
+ private _evaluateAllTasks;
294
+ /**
295
+ * Check if an agent already has an active or queued invocation for a task.
296
+ * AC: @agent-dispatch-engine ac-19
297
+ */
298
+ private _hasActiveOrQueuedInvocation;
299
+ private _activeRoleByTaskRef;
300
+ private _activeTaskRefs;
301
+ /**
302
+ * Check whether any agent has an active or in-flight invocation for a task.
303
+ * Considers both registered active invocations (activeInvocationDetails) and
304
+ * tasks that are between queue removal and active registration (inFlightTaskKeys).
305
+ *
306
+ * AC: @agent-dispatch-engine ac-26
307
+ */
308
+ private _hasActiveInvocationForTask;
202
309
  /**
203
310
  * Load agent definitions from meta context.
204
311
  */
205
312
  private _loadAgents;
206
313
  /**
207
314
  * Check if a state change matches a dispatch rule's filters.
315
+ * Base readiness (deps, blocked_by) is checked before consumer filters
316
+ * per @trait-task-readiness ac-composable.
317
+ *
208
318
  * AC: @agent-dispatch-engine ac-6
319
+ * AC: @agent-dispatch-engine ac-21
320
+ * AC: @trait-task-readiness ac-deps
321
+ * AC: @trait-task-readiness ac-not-blocked
322
+ * AC: @trait-task-readiness ac-composable
209
323
  */
210
324
  private _matchesFilter;
211
325
  /**
@@ -234,10 +348,33 @@ export declare class DispatchEngine {
234
348
  */
235
349
  private _insertQueueEntry;
236
350
  /**
237
- * Compare queue entries by dispatch precedence, then by enqueue sequence.
351
+ * Compare queue entries by dispatch precedence, numeric task priority, then FIFO.
238
352
  * AC: @dispatch-in-progress-priority ac-1
239
353
  */
240
354
  private _compareQueueEntries;
355
+ private _taskPriorityForEntry;
356
+ private _hasContinuityAffinity;
357
+ private _compareSchedulerCandidates;
358
+ private _recordContinuityDeferrals;
359
+ private _workspaceCandidateHealth;
360
+ private _pruneIneligibleQueueEntries;
361
+ private _selectNextCandidate;
362
+ /**
363
+ * Schedule a per-task coalesced drain. If a timer already exists for this
364
+ * task, it is cleared and reset to the full coalescing window.
365
+ *
366
+ * AC: @per-task-dispatch-drain-coalescing ac-1, ac-3
367
+ */
368
+ private _scheduleCoalescedDrain;
369
+ /**
370
+ * Serialize drain execution: if a drain is already running, mark that another
371
+ * drain is pending and return. When the current drain finishes, it runs the
372
+ * follow-up drain. This prevents concurrent _drainQueues() calls from
373
+ * racing on queue state.
374
+ *
375
+ * AC: @per-task-dispatch-drain-coalescing ac-8
376
+ */
377
+ private _serializedDrain;
241
378
  /**
242
379
  * Drain queues, spawning invocations up to each agent's max_concurrent limit.
243
380
  * AC: @agent-dispatch-engine ac-3, ac-17
@@ -250,6 +387,10 @@ export declare class DispatchEngine {
250
387
  * AC: @agent-dispatch-engine ac-13, ac-14, ac-15, ac-16
251
388
  */
252
389
  private _buildDispatchPrompt;
390
+ private _runKspecCommand;
391
+ private _taskCommandError;
392
+ private _addTaskNote;
393
+ private _blockTask;
253
394
  /**
254
395
  * Spawn a single invocation for a queue entry.
255
396
  * Returns true if an invocation was actually started, false if skipped.
@@ -257,5 +398,4 @@ export declare class DispatchEngine {
257
398
  */
258
399
  private _spawnInvocation;
259
400
  }
260
- export {};
261
401
  //# sourceMappingURL=dispatch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../../src/agent-runtime/dispatch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dispatch.d.ts","sourceRoot":"","sources":["../../src/agent-runtime/dispatch.ts"],"names":[],"mappings":"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"}