@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
@@ -16,18 +16,37 @@ import { ulid } from "ulid";
16
16
  import { buildPromptWithSkills } from "./prompts.js";
17
17
  import { resolveAdapter } from "../agents/adapters.js";
18
18
  import { spawnAndInitialize } from "../agents/spawner.js";
19
- import { createSession, closeSession, appendEvent, injectEnvForAdapter, removeEnvForAdapter, } from "../sessions/store.js";
19
+ import { createSession, closeSession, appendEvent, injectEnvForAdapter, getSession, listSessions, removeEnvForAdapter, } from "../sessions/store.js";
20
20
  // ─── Constants ────────────────────────────────────────────────────────────────
21
21
  export const DEFAULT_KSPEC_CLI_PATH = path.resolve(path.dirname(new URL(import.meta.url).pathname), "../../bin/kspec.cjs");
22
+ /**
23
+ * Default stall detection timeout in seconds.
24
+ * AC: @invocation-initial-activity-watchdog ac-1, ac-5
25
+ */
26
+ export const DEFAULT_INITIAL_RESPONSE_TIMEOUT_SECONDS = 120;
27
+ /**
28
+ * Session update types that count as meaningful agent activity.
29
+ * These prove the agent received the prompt and is processing it.
30
+ * AC: @invocation-initial-activity-watchdog ac-1, ac-3
31
+ */
32
+ const MEANINGFUL_UPDATE_TYPES = new Set([
33
+ "agent_message_chunk",
34
+ "agent_thought_chunk",
35
+ "tool_call",
36
+ "tool_call_update",
37
+ "plan",
38
+ "usage_update",
39
+ ]);
22
40
  // ─── Helpers ──────────────────────────────────────────────────────────────────
23
41
  /**
24
42
  * Run a kspec CLI command synchronously.
25
43
  */
26
- function runKspecCli(args, cwd, kspecCliPath) {
44
+ function runKspecCli(args, cwd, kspecCliPath, env) {
27
45
  const result = spawnSync(process.execPath, [kspecCliPath, ...args], {
28
46
  encoding: "utf-8",
29
47
  stdio: "pipe",
30
48
  cwd,
49
+ env: env ? { ...process.env, ...env } : process.env,
31
50
  });
32
51
  return {
33
52
  stdout: result.stdout ?? "",
@@ -38,41 +57,65 @@ function runKspecCli(args, cwd, kspecCliPath) {
38
57
  /**
39
58
  * Add a note to a task via kspec CLI.
40
59
  */
41
- function addTaskNote(taskRef, note, cwd, kspecCliPath) {
42
- runKspecCli(["task", "note", taskRef, note], cwd, kspecCliPath);
60
+ function addTaskNote(taskRef, note, cwd, kspecCliPath, env, strict = false) {
61
+ const result = runKspecCli(["task", "note", taskRef, note], cwd, kspecCliPath, env);
62
+ if (strict && result.status !== 0) {
63
+ throw new DispatchMutationError(`Dispatch mutation failed while writing task note for ${taskRef}: ${result.stderr || result.stdout || "kspec task note exited non-zero"}`);
64
+ }
43
65
  }
44
66
  /**
45
67
  * Block a task via kspec CLI.
46
68
  */
47
- function blockTask(taskRef, reason, cwd, kspecCliPath) {
48
- runKspecCli(["task", "block", taskRef, "--reason", reason], cwd, kspecCliPath);
69
+ function blockTask(taskRef, reason, cwd, kspecCliPath, env, strict = false) {
70
+ const result = runKspecCli(["task", "block", taskRef, "--reason", reason], cwd, kspecCliPath, env);
71
+ if (strict && result.status !== 0) {
72
+ throw new DispatchMutationError(`Dispatch mutation failed while blocking ${taskRef}: ${result.stderr || result.stdout || "kspec task block exited non-zero"}`);
73
+ }
74
+ }
75
+ function toInvocationOutcome(metadata) {
76
+ switch (metadata.status) {
77
+ case "completed":
78
+ return "success";
79
+ case "timed_out":
80
+ return "timed_out";
81
+ case "failed":
82
+ return "failed";
83
+ case "stalled":
84
+ // AC: @invocation-initial-activity-watchdog ac-4
85
+ // Stalled sessions are transient infrastructure issues, not agent logic failures.
86
+ // Excluded from consecutive failure count by returning null.
87
+ return null;
88
+ default:
89
+ return null;
90
+ }
49
91
  }
50
92
  /**
51
- * Get the consecutive failure count for a task from its notes.
52
- * Looks for AGENT-FAIL notes added by previous invocations.
93
+ * Get the current consecutive failure count for a task/agent from prior
94
+ * invocation outcomes recorded in session metadata.
53
95
  */
54
- function getConsecutiveFailureCount(taskRef, cwd, kspecCliPath) {
55
- const result = runKspecCli(["task", "get", taskRef, "--json"], cwd, kspecCliPath);
56
- if (result.status !== 0)
57
- return 0;
58
- try {
59
- const task = JSON.parse(result.stdout);
60
- const notes = task.notes ?? [];
61
- // Count consecutive AGENT-FAIL notes from the end
62
- let count = 0;
63
- for (let i = notes.length - 1; i >= 0; i--) {
64
- if (notes[i].content?.includes("[AGENT-FAIL]")) {
65
- count++;
66
- }
67
- else {
68
- break;
69
- }
96
+ async function getConsecutiveFailureCount(sessionsDir, taskRef, agentId) {
97
+ const sessionIds = await listSessions(sessionsDir);
98
+ const sessions = await Promise.all(sessionIds.map((sessionId) => getSession(sessionsDir, sessionId)));
99
+ const relevantSessions = sessions
100
+ .filter((session) => session !== null)
101
+ .filter((session) => session.task_id === taskRef &&
102
+ (session.agent_id ?? session.agent_type) === agentId)
103
+ .map((session) => ({
104
+ ...session,
105
+ invocationOutcome: toInvocationOutcome(session),
106
+ sortMs: new Date(session.ended_at ?? session.started_at).getTime(),
107
+ }))
108
+ .filter((session) => session.invocationOutcome !== null && Number.isFinite(session.sortMs))
109
+ .sort((a, b) => b.sortMs - a.sortMs);
110
+ let consecutiveFailures = 0;
111
+ for (const session of relevantSessions) {
112
+ if (session.invocationOutcome === "failed") {
113
+ consecutiveFailures++;
114
+ continue;
70
115
  }
71
- return count;
72
- }
73
- catch {
74
- return 0;
116
+ break;
75
117
  }
118
+ return consecutiveFailures;
76
119
  }
77
120
  /**
78
121
  * Dispose a spawned agent, terminating the process if running.
@@ -99,7 +142,10 @@ function disposeAgent(agent) {
99
142
  * AC: @agent-invocation-lifecycle ac-1 through ac-11
100
143
  */
101
144
  export async function runInvocation(options) {
102
- const { agent, specDir, cwd, taskRef, trigger, autoApprove = agent.auto_approve, env = {}, onUpdate, kspecCliPath = DEFAULT_KSPEC_CLI_PATH, abortSignal, } = options;
145
+ const { agent, specDir, cwd, taskRef, trigger, autoApprove = agent.auto_approve, env = {}, mutationLockFile, onUpdate, onEventAppended, kspecCliPath = DEFAULT_KSPEC_CLI_PATH, abortSignal, } = options;
146
+ // AC: @session-storage-path-resolution ac-resolver
147
+ // Sessions live in .kspec-sessions/ at project root, not inside .kspec/
148
+ const sessionsDir = options.sessionsDir ?? path.join(path.dirname(specDir), ".kspec-sessions");
103
149
  const startTime = Date.now();
104
150
  const sessionId = options.sessionId ?? ulid();
105
151
  // Resolve adapter
@@ -123,9 +169,6 @@ export async function runInvocation(options) {
123
169
  specDir,
124
170
  adapterId,
125
171
  });
126
- // Capture the pre-existing KSPEC_SESSION_ID so we can restore it in finally.
127
- // AC: @agent-invocation-lifecycle ac-8
128
- const previousKspecSessionId = process.env.KSPEC_SESSION_ID;
129
172
  const state = {
130
173
  sessionId,
131
174
  specDir,
@@ -145,16 +188,18 @@ export async function runInvocation(options) {
145
188
  return run;
146
189
  };
147
190
  const appendSessionEvent = async (input) => {
148
- const event = await queueEventWrite(() => appendEvent(specDir, {
191
+ const event = await queueEventWrite(() => appendEvent(sessionsDir, {
149
192
  ...input,
150
193
  session_id: sessionId,
151
194
  seq: nextEventSeq,
152
195
  }));
153
196
  nextEventSeq = event.seq + 1;
197
+ // AC: @session-summary-cache ac-live-counter — notify cache of new event
198
+ onEventAppended?.(sessionId);
154
199
  };
155
200
  // ─── Create session ───────────────────────────────────────────────────────
156
201
  // AC: @agent-invocation-lifecycle ac-1
157
- const session = await createSession(specDir, {
202
+ const session = await createSession(sessionsDir, {
158
203
  id: sessionId,
159
204
  agent_type: adapterId,
160
205
  agent_id: agent.id,
@@ -176,13 +221,15 @@ export async function runInvocation(options) {
176
221
  // AC: @agent-invocation-lifecycle ac-2
177
222
  const injectionResult = await injectEnvForAdapter(adapterId, sessionId);
178
223
  state.previousEnvValue = injectionResult?.previousValue;
179
- process.env.KSPEC_SESSION_ID = sessionId;
180
224
  // ─── Spawn agent ──────────────────────────────────────────────────────
181
225
  state.agent = await spawnAndInitialize(adapter, {
182
226
  cwd,
183
227
  env: {
184
228
  ...env,
185
229
  KSPEC_SESSION_ID: sessionId,
230
+ ...(mutationLockFile
231
+ ? { KSPEC_SHADOW_MUTATION_LOCK_FILE: mutationLockFile }
232
+ : {}),
186
233
  },
187
234
  extraArgs,
188
235
  clientOptions: {
@@ -205,11 +252,21 @@ export async function runInvocation(options) {
205
252
  acp_session_id: state.acpSessionId,
206
253
  },
207
254
  });
255
+ // ─── Stall watchdog state ──────────────────────────────────────────────
256
+ // AC: @invocation-initial-activity-watchdog ac-1, ac-3
257
+ let stallResolved = false;
258
+ let stallHandle;
208
259
  // ─── Register update handler ──────────────────────────────────────────
209
260
  // AC: @agent-invocation-lifecycle ac-6
210
261
  const updateHandler = async (acpSessionId, update) => {
211
262
  if (acpSessionId !== state.acpSessionId)
212
263
  return;
264
+ // AC: @invocation-initial-activity-watchdog ac-3
265
+ // Cancel stall timer on first meaningful activity
266
+ if (!stallResolved && MEANINGFUL_UPDATE_TYPES.has(update.sessionUpdate)) {
267
+ stallResolved = true;
268
+ clearTimeout(stallHandle);
269
+ }
213
270
  // Log event to JSONL (with blob externalization from store.ts)
214
271
  await appendSessionEvent({
215
272
  type: "session.update",
@@ -256,6 +313,16 @@ export async function runInvocation(options) {
256
313
  reject(new InvocationTimeoutError(timeoutMinutes));
257
314
  }, timeoutMs);
258
315
  });
316
+ // AC: @invocation-initial-activity-watchdog ac-1, ac-5
317
+ const stallTimeoutSeconds = agent.budget?.initial_response_timeout_seconds ??
318
+ DEFAULT_INITIAL_RESPONSE_TIMEOUT_SECONDS;
319
+ const stallPromise = new Promise((_, reject) => {
320
+ stallHandle = setTimeout(() => {
321
+ if (!stallResolved) {
322
+ reject(new InvocationStallError(stallTimeoutSeconds));
323
+ }
324
+ }, stallTimeoutSeconds * 1000);
325
+ });
259
326
  // AC: @agent-dispatch-engine ac-11 - Abort signal for graceful cancellation
260
327
  const abortPromise = abortSignal
261
328
  ? new Promise((_, reject) => {
@@ -273,15 +340,16 @@ export async function runInvocation(options) {
273
340
  });
274
341
  let promptResult;
275
342
  try {
276
- const racers = [promptPromise, timeoutPromise];
343
+ const racers = [promptPromise, timeoutPromise, stallPromise];
277
344
  if (abortPromise)
278
345
  racers.push(abortPromise);
279
346
  promptResult = await Promise.race(racers);
280
347
  }
281
348
  finally {
282
- // Clear the timeout handle to prevent timer leaks whether prompt
283
- // resolves normally or the timeout fires.
349
+ // Clear timer handles to prevent leaks whether prompt resolves
350
+ // normally or one of the race promises fires.
284
351
  clearTimeout(timeoutHandle);
352
+ clearTimeout(stallHandle);
285
353
  }
286
354
  // ─── Log agent.completed event ────────────────────────────────────────
287
355
  // AC: @agent-invocation-lifecycle ac-4
@@ -296,12 +364,7 @@ export async function runInvocation(options) {
296
364
  },
297
365
  });
298
366
  // ─── Close session as completed ───────────────────────────────────────
299
- const finalSession = await closeSession(specDir, sessionId, "completed", "Invocation completed normally");
300
- // Add success note to reset consecutive failure streak (only when a task is bound)
301
- // AC: @agent-invocation-lifecycle ac-9
302
- if (taskRef) {
303
- addTaskNote(taskRef, `[AGENT-SUCCESS] Invocation completed successfully`, cwd, kspecCliPath);
304
- }
367
+ const finalSession = await closeSession(sessionsDir, sessionId, "completed", "Invocation completed normally");
305
368
  return {
306
369
  session: finalSession ?? session,
307
370
  outcome: "success",
@@ -330,10 +393,12 @@ export async function runInvocation(options) {
330
393
  duration_ms: durationMs,
331
394
  },
332
395
  });
333
- const finalSession = await closeSession(specDir, sessionId, "timed_out", `Timeout after ${timeoutMinutes} minutes`);
396
+ const finalSession = await closeSession(sessionsDir, sessionId, "timed_out", `Timeout after ${timeoutMinutes} minutes`);
334
397
  // Add timeout note to task (only when a task is bound)
335
398
  if (taskRef) {
336
- addTaskNote(taskRef, `[AGENT-TIMEOUT] Invocation timed out after ${timeoutMinutes} minutes`, cwd, kspecCliPath);
399
+ addTaskNote(taskRef, `[AGENT-TIMEOUT] Invocation timed out after ${timeoutMinutes} minutes`, cwd, kspecCliPath, mutationLockFile
400
+ ? { KSPEC_SHADOW_MUTATION_LOCK_FILE: mutationLockFile }
401
+ : undefined, Boolean(mutationLockFile));
337
402
  }
338
403
  return {
339
404
  session: finalSession ?? session,
@@ -353,7 +418,7 @@ export async function runInvocation(options) {
353
418
  catch {
354
419
  // Best-effort cancel
355
420
  }
356
- const finalSession = await closeSession(specDir, sessionId, "failed", "Invocation aborted by shutdown");
421
+ const finalSession = await closeSession(sessionsDir, sessionId, "failed", "Invocation aborted by shutdown");
357
422
  return {
358
423
  session: finalSession ?? session,
359
424
  outcome: "failed",
@@ -361,6 +426,36 @@ export async function runInvocation(options) {
361
426
  durationMs,
362
427
  };
363
428
  }
429
+ if (err instanceof InvocationStallError) {
430
+ // ─── Handle stall (no initial response) ───────────────────────────
431
+ // AC: @invocation-initial-activity-watchdog ac-1, ac-2
432
+ try {
433
+ if (state.acpSessionId && state.agent) {
434
+ await state.agent.client.cancel(state.acpSessionId);
435
+ }
436
+ }
437
+ catch {
438
+ // Best-effort cancel
439
+ }
440
+ await appendSessionEvent({
441
+ type: "agent.stalled",
442
+ data: {
443
+ task_id: taskRef,
444
+ stall_timeout_seconds: err.stallTimeoutSeconds,
445
+ duration_ms: durationMs,
446
+ },
447
+ });
448
+ const finalSession = await closeSession(sessionsDir, sessionId, "stalled", `No initial response within ${err.stallTimeoutSeconds}s`);
449
+ // AC: @invocation-initial-activity-watchdog ac-2
450
+ // Do NOT add task note — stalls are transient infrastructure issues
451
+ // Do NOT call getConsecutiveFailureCount — stalls are excluded
452
+ return {
453
+ session: finalSession ?? session,
454
+ outcome: "stalled",
455
+ error: err.message,
456
+ durationMs,
457
+ };
458
+ }
364
459
  // ─── Handle failure ──────────────────────────────────────────────────
365
460
  // AC: @agent-invocation-lifecycle ac-5
366
461
  const errorMessage = err instanceof Error ? err.message : String(err);
@@ -368,20 +463,26 @@ export async function runInvocation(options) {
368
463
  type: "agent.failed",
369
464
  data: {
370
465
  task_id: taskRef,
466
+ outcome: "failed",
371
467
  error: errorMessage,
468
+ reason: errorMessage,
372
469
  duration_ms: durationMs,
373
470
  },
374
471
  });
375
- const finalSession = await closeSession(specDir, sessionId, "failed", `Invocation failed: ${errorMessage}`);
472
+ const finalSession = await closeSession(sessionsDir, sessionId, "failed", `Invocation failed: ${errorMessage}`);
376
473
  // Add failure note to task and check retry threshold (only when a task is bound)
377
474
  if (taskRef) {
378
- addTaskNote(taskRef, `[AGENT-FAIL] Invocation failed: ${errorMessage}`, cwd, kspecCliPath);
475
+ addTaskNote(taskRef, `[AGENT-FAIL] Invocation failed: ${errorMessage}`, cwd, kspecCliPath, mutationLockFile
476
+ ? { KSPEC_SHADOW_MUTATION_LOCK_FILE: mutationLockFile }
477
+ : undefined, Boolean(mutationLockFile));
379
478
  // ─── Check retry threshold ────────────────────────────────────────────
380
479
  // AC: @agent-invocation-lifecycle ac-9
381
- const retryLimit = agent.budget?.max_tasks ?? 3;
382
- const consecutiveFailures = getConsecutiveFailureCount(taskRef, cwd, kspecCliPath);
480
+ const retryLimit = agent.budget?.max_retries ?? 3;
481
+ const consecutiveFailures = await getConsecutiveFailureCount(sessionsDir, taskRef, agent.id);
383
482
  if (consecutiveFailures >= retryLimit) {
384
- blockTask(taskRef, `Agent ${agent.id} failed ${consecutiveFailures} consecutive times: ${errorMessage}`, cwd, kspecCliPath);
483
+ blockTask(taskRef, `Agent ${agent.id} failed ${consecutiveFailures} consecutive times: ${errorMessage}`, cwd, kspecCliPath, mutationLockFile
484
+ ? { KSPEC_SHADOW_MUTATION_LOCK_FILE: mutationLockFile }
485
+ : undefined, Boolean(mutationLockFile));
385
486
  }
386
487
  }
387
488
  return {
@@ -407,14 +508,6 @@ export async function runInvocation(options) {
407
508
  state.agent = disposeAgent(state.agent);
408
509
  // Restore env injection
409
510
  await removeEnvForAdapter(adapterId, state.previousEnvValue);
410
- // Restore process.env.KSPEC_SESSION_ID to its pre-invocation value.
411
- // AC: @agent-invocation-lifecycle ac-8
412
- if (previousKspecSessionId === undefined) {
413
- delete process.env.KSPEC_SESSION_ID;
414
- }
415
- else {
416
- process.env.KSPEC_SESSION_ID = previousKspecSessionId;
417
- }
418
511
  }
419
512
  }
420
513
  // ─── Error Types ──────────────────────────────────────────────────────────────
@@ -429,6 +522,19 @@ export class InvocationTimeoutError extends Error {
429
522
  this.name = "InvocationTimeoutError";
430
523
  }
431
524
  }
525
+ /**
526
+ * Thrown when an agent accepts a prompt but produces no meaningful output
527
+ * within the configured stall timeout.
528
+ * AC: @invocation-initial-activity-watchdog ac-1, ac-2
529
+ */
530
+ export class InvocationStallError extends Error {
531
+ stallTimeoutSeconds;
532
+ constructor(stallTimeoutSeconds) {
533
+ super(`Agent stalled: no initial response within ${stallTimeoutSeconds}s`);
534
+ this.stallTimeoutSeconds = stallTimeoutSeconds;
535
+ this.name = "InvocationStallError";
536
+ }
537
+ }
432
538
  /**
433
539
  * Thrown when an invocation is aborted via AbortSignal (graceful shutdown).
434
540
  * AC: @agent-dispatch-engine ac-11
@@ -439,4 +545,10 @@ export class InvocationAbortedError extends Error {
439
545
  this.name = "InvocationAbortedError";
440
546
  }
441
547
  }
548
+ export class DispatchMutationError extends Error {
549
+ constructor(message) {
550
+ super(message);
551
+ this.name = "DispatchMutationError";
552
+ }
553
+ }
442
554
  //# sourceMappingURL=invocation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"invocation.js","sourceRoot":"","sources":["../../src/agent-runtime/invocation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"invocation.js","sourceRoot":"","sources":["../../src/agent-runtime/invocation.ts"],"names":[],"mappings":"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"}
@@ -29,6 +29,15 @@ export interface BuildPromptOptions {
29
29
  /** Adapter identifier used to format cross-skill references */
30
30
  adapterId?: string;
31
31
  }
32
+ export declare function rewriteSkillReferencesForAdapter(text: string, specDir: string, adapterId?: string): Promise<string>;
33
+ /**
34
+ * Interpolate {{variable}} placeholders in a template string.
35
+ *
36
+ * Used by both dispatch mode and CLI one-shot mode to resolve
37
+ * agent prompt_template variables (e.g. {{task_ref}}, {{task_title}}).
38
+ * Unrecognized placeholders are left as-is.
39
+ */
40
+ export declare function interpolateTemplate(template: string, vars: Record<string, string>): string;
32
41
  /**
33
42
  * Resolve skill content from the skill registry.
34
43
  *
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/agent-runtime/prompts.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AASH;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,eAAe;IACf,EAAE,EAAE,MAAM,CAAC;IACX,yCAAyC;IACzC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,uBAAuB;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,uDAAuD;IACvD,OAAO,EAAE,MAAM,CAAC;IAChB,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA6DD;;;;;;;GAOG;AACH,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,EAAE,EAClB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,aAAa,EAAE,CAAC,CAc1B;AAED;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CA2BxF"}
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/agent-runtime/prompts.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAUH;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,eAAe;IACf,EAAE,EAAE,MAAM,CAAC;IACX,yCAAyC;IACzC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,uBAAuB;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,uDAAuD;IACvD,OAAO,EAAE,MAAM,CAAC;IAChB,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAmED,wBAAsB,gCAAgC,CACpD,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,CAAC,CASjB;AAID;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC3B,MAAM,CAKR;AAID;;;;;;;GAOG;AACH,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,EAAE,EAClB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,aAAa,EAAE,CAAC,CAc1B;AAED;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CA2BxF"}
@@ -10,6 +10,8 @@
10
10
  import * as path from "node:path";
11
11
  import * as fs from "node:fs/promises";
12
12
  import { resolveSkillReferenceTokensForPlatform } from "../parser/skill-render.js";
13
+ import { loadMetaContext } from "../parser/meta.js";
14
+ import { initContext } from "../parser/yaml.js";
13
15
  function getSkillReferencePlatform(adapterId) {
14
16
  switch (adapterId) {
15
17
  case "claude-agent-acp":
@@ -17,11 +19,15 @@ function getSkillReferencePlatform(adapterId) {
17
19
  return "claude-code";
18
20
  case "codex-acp":
19
21
  return "codex";
22
+ case "droid-acp":
23
+ return "droid";
20
24
  default:
21
25
  return null;
22
26
  }
23
27
  }
24
28
  function getProjectRootFromSpecDir(specDir) {
29
+ // .agents/skills is tracked at the project root, so resolving upward from
30
+ // .kspec/ stays correct in both the primary checkout and linked worktrees.
25
31
  return path.basename(specDir) === ".kspec" ? path.dirname(specDir) : specDir;
26
32
  }
27
33
  async function loadKspecSkillIds(specDir) {
@@ -45,18 +51,47 @@ async function loadKspecSkillIds(specDir) {
45
51
  return new Set();
46
52
  }
47
53
  }
48
- async function rewriteSkillReferences(text, specDir, adapterId) {
49
- const platform = getSkillReferencePlatform(adapterId);
50
- if (!platform) {
51
- return text;
54
+ async function loadSkillOrigins(specDir) {
55
+ try {
56
+ const ctx = await initContext(specDir);
57
+ const meta = await loadMetaContext(ctx);
58
+ if (meta.skills.length > 0) {
59
+ const origins = new Map();
60
+ for (const skill of meta.skills) {
61
+ origins.set(skill.id, skill.origin);
62
+ }
63
+ return origins;
64
+ }
65
+ }
66
+ catch {
67
+ // Fall back to rendered skill directory inference below.
52
68
  }
53
69
  const kspecSkillIds = await loadKspecSkillIds(specDir);
54
- const skillOrigins = new Map();
70
+ const origins = new Map();
55
71
  for (const skillId of kspecSkillIds) {
56
- skillOrigins.set(skillId, "core");
72
+ origins.set(skillId, "core");
57
73
  }
74
+ return origins;
75
+ }
76
+ export async function rewriteSkillReferencesForAdapter(text, specDir, adapterId) {
77
+ const platform = getSkillReferencePlatform(adapterId);
78
+ if (!platform) {
79
+ return text;
80
+ }
81
+ const skillOrigins = await loadSkillOrigins(specDir);
58
82
  return resolveSkillReferenceTokensForPlatform(text, platform, skillOrigins);
59
83
  }
84
+ // ─── Template Interpolation ──────────────────────────────────────────────────
85
+ /**
86
+ * Interpolate {{variable}} placeholders in a template string.
87
+ *
88
+ * Used by both dispatch mode and CLI one-shot mode to resolve
89
+ * agent prompt_template variables (e.g. {{task_ref}}, {{task_title}}).
90
+ * Unrecognized placeholders are left as-is.
91
+ */
92
+ export function interpolateTemplate(template, vars) {
93
+ return template.replace(/\{\{(\w+)\}\}/g, (match, key) => vars[key] ?? match);
94
+ }
60
95
  // ─── Skill Resolution ─────────────────────────────────────────────────────────
61
96
  /**
62
97
  * Resolve skill content from the skill registry.
@@ -103,6 +138,6 @@ export async function buildPromptWithSkills(options) {
103
138
  const promptWithSkills = `${basePrompt}\n\n## Skills\n\n${skillSections}`;
104
139
  // AC: @agent-invocation-lifecycle ac-10
105
140
  // Rewrite portable {skill:<id>} references to adapter-specific invocation syntax.
106
- return rewriteSkillReferences(promptWithSkills, specDir, adapterId);
141
+ return rewriteSkillReferencesForAdapter(promptWithSkills, specDir, adapterId);
107
142
  }
108
143
  //# sourceMappingURL=prompts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/agent-runtime/prompts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/agent-runtime/prompts.ts"],"names":[],"mappings":"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"}