@kynetic-ai/spec 0.9.1 → 0.11.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 (310) hide show
  1. package/README.md +2 -1
  2. package/dist/acp/client.d.ts +6 -1
  3. package/dist/acp/client.d.ts.map +1 -1
  4. package/dist/acp/client.js +7 -2
  5. package/dist/acp/client.js.map +1 -1
  6. package/dist/acp/framing.d.ts +12 -1
  7. package/dist/acp/framing.d.ts.map +1 -1
  8. package/dist/acp/framing.js +27 -4
  9. package/dist/acp/framing.js.map +1 -1
  10. package/dist/agent-runtime/dispatch.d.ts +292 -0
  11. package/dist/agent-runtime/dispatch.d.ts.map +1 -0
  12. package/dist/agent-runtime/dispatch.js +860 -0
  13. package/dist/agent-runtime/dispatch.js.map +1 -0
  14. package/dist/agent-runtime/index.d.ts +11 -0
  15. package/dist/agent-runtime/index.d.ts.map +1 -0
  16. package/dist/agent-runtime/index.js +11 -0
  17. package/dist/agent-runtime/index.js.map +1 -0
  18. package/dist/agent-runtime/invocation.d.ts +86 -0
  19. package/dist/agent-runtime/invocation.d.ts.map +1 -0
  20. package/dist/agent-runtime/invocation.js +442 -0
  21. package/dist/agent-runtime/invocation.js.map +1 -0
  22. package/dist/agent-runtime/prompts.d.ts +50 -0
  23. package/dist/agent-runtime/prompts.d.ts.map +1 -0
  24. package/dist/agent-runtime/prompts.js +108 -0
  25. package/dist/agent-runtime/prompts.js.map +1 -0
  26. package/dist/agents/spawner.d.ts.map +1 -1
  27. package/dist/agents/spawner.js +60 -4
  28. package/dist/agents/spawner.js.map +1 -1
  29. package/dist/cli/batch-exec.d.ts.map +1 -1
  30. package/dist/cli/batch-exec.js +140 -62
  31. package/dist/cli/batch-exec.js.map +1 -1
  32. package/dist/cli/batch-write-buffer.d.ts +141 -0
  33. package/dist/cli/batch-write-buffer.d.ts.map +1 -0
  34. package/dist/cli/batch-write-buffer.js +400 -0
  35. package/dist/cli/batch-write-buffer.js.map +1 -0
  36. package/dist/cli/commands/agent.d.ts +20 -0
  37. package/dist/cli/commands/agent.d.ts.map +1 -0
  38. package/dist/cli/commands/agent.js +831 -0
  39. package/dist/cli/commands/agent.js.map +1 -0
  40. package/dist/cli/commands/inbox.d.ts.map +1 -1
  41. package/dist/cli/commands/inbox.js +46 -22
  42. package/dist/cli/commands/inbox.js.map +1 -1
  43. package/dist/cli/commands/index.d.ts +1 -0
  44. package/dist/cli/commands/index.d.ts.map +1 -1
  45. package/dist/cli/commands/index.js +1 -0
  46. package/dist/cli/commands/index.js.map +1 -1
  47. package/dist/cli/commands/item.d.ts.map +1 -1
  48. package/dist/cli/commands/item.js +22 -16
  49. package/dist/cli/commands/item.js.map +1 -1
  50. package/dist/cli/commands/log.js +1 -1
  51. package/dist/cli/commands/log.js.map +1 -1
  52. package/dist/cli/commands/meta.d.ts.map +1 -1
  53. package/dist/cli/commands/meta.js +168 -6
  54. package/dist/cli/commands/meta.js.map +1 -1
  55. package/dist/cli/commands/module.d.ts.map +1 -1
  56. package/dist/cli/commands/module.js +2 -1
  57. package/dist/cli/commands/module.js.map +1 -1
  58. package/dist/cli/commands/plan-import.js +19 -3
  59. package/dist/cli/commands/plan-import.js.map +1 -1
  60. package/dist/cli/commands/plan.d.ts.map +1 -1
  61. package/dist/cli/commands/plan.js +87 -43
  62. package/dist/cli/commands/plan.js.map +1 -1
  63. package/dist/cli/commands/ralph.d.ts +5 -56
  64. package/dist/cli/commands/ralph.d.ts.map +1 -1
  65. package/dist/cli/commands/ralph.js +52 -1502
  66. package/dist/cli/commands/ralph.js.map +1 -1
  67. package/dist/cli/commands/search.d.ts.map +1 -1
  68. package/dist/cli/commands/search.js +22 -13
  69. package/dist/cli/commands/search.js.map +1 -1
  70. package/dist/cli/commands/serve.d.ts.map +1 -1
  71. package/dist/cli/commands/serve.js +70 -11
  72. package/dist/cli/commands/serve.js.map +1 -1
  73. package/dist/cli/commands/session/checkpoint.d.ts.map +1 -1
  74. package/dist/cli/commands/session/checkpoint.js +7 -2
  75. package/dist/cli/commands/session/checkpoint.js.map +1 -1
  76. package/dist/cli/commands/session/commands.d.ts.map +1 -1
  77. package/dist/cli/commands/session/commands.js +15 -0
  78. package/dist/cli/commands/session/commands.js.map +1 -1
  79. package/dist/cli/commands/session/context.d.ts.map +1 -1
  80. package/dist/cli/commands/session/context.js +10 -5
  81. package/dist/cli/commands/session/context.js.map +1 -1
  82. package/dist/cli/commands/session/log.d.ts +1 -0
  83. package/dist/cli/commands/session/log.d.ts.map +1 -1
  84. package/dist/cli/commands/session/log.js +124 -8
  85. package/dist/cli/commands/session/log.js.map +1 -1
  86. package/dist/cli/commands/session/stale-close.d.ts +17 -0
  87. package/dist/cli/commands/session/stale-close.d.ts.map +1 -0
  88. package/dist/cli/commands/session/stale-close.js +378 -0
  89. package/dist/cli/commands/session/stale-close.js.map +1 -0
  90. package/dist/cli/commands/setup.d.ts.map +1 -1
  91. package/dist/cli/commands/setup.js +95 -0
  92. package/dist/cli/commands/setup.js.map +1 -1
  93. package/dist/cli/commands/skill-crud.d.ts.map +1 -1
  94. package/dist/cli/commands/skill-crud.js +4 -3
  95. package/dist/cli/commands/skill-crud.js.map +1 -1
  96. package/dist/cli/commands/skill-diff.d.ts.map +1 -1
  97. package/dist/cli/commands/skill-diff.js +15 -0
  98. package/dist/cli/commands/skill-diff.js.map +1 -1
  99. package/dist/cli/commands/skill-install.d.ts.map +1 -1
  100. package/dist/cli/commands/skill-install.js +50 -18
  101. package/dist/cli/commands/skill-install.js.map +1 -1
  102. package/dist/cli/commands/task.d.ts.map +1 -1
  103. package/dist/cli/commands/task.js +536 -310
  104. package/dist/cli/commands/task.js.map +1 -1
  105. package/dist/cli/commands/tasks.js +1 -1
  106. package/dist/cli/commands/tasks.js.map +1 -1
  107. package/dist/cli/commands/triage.d.ts.map +1 -1
  108. package/dist/cli/commands/triage.js +37 -13
  109. package/dist/cli/commands/triage.js.map +1 -1
  110. package/dist/cli/commands/validate.d.ts.map +1 -1
  111. package/dist/cli/commands/validate.js +65 -25
  112. package/dist/cli/commands/validate.js.map +1 -1
  113. package/dist/cli/help/content.d.ts.map +1 -1
  114. package/dist/cli/help/content.js +5 -0
  115. package/dist/cli/help/content.js.map +1 -1
  116. package/dist/cli/index.d.ts.map +1 -1
  117. package/dist/cli/index.js +2 -1
  118. package/dist/cli/index.js.map +1 -1
  119. package/dist/cli/output.d.ts.map +1 -1
  120. package/dist/cli/output.js +5 -1
  121. package/dist/cli/output.js.map +1 -1
  122. package/dist/daemon/project-context.ts +22 -0
  123. package/dist/daemon/routes/agent-dispatch.ts +279 -0
  124. package/dist/daemon/routes/items.ts +22 -0
  125. package/dist/daemon/routes/meta.ts +141 -1
  126. package/dist/daemon/routes/plans.ts +147 -0
  127. package/dist/daemon/routes/sessions.ts +180 -0
  128. package/dist/daemon/routes/tasks.ts +198 -0
  129. package/dist/daemon/routes/validation.ts +1 -1
  130. package/dist/daemon/server.ts +77 -21
  131. package/dist/daemon/websocket/handler.ts +67 -6
  132. package/dist/daemon/websocket/lifecycle.ts +19 -0
  133. package/dist/daemon/websocket/pubsub.ts +74 -3
  134. package/dist/export/html.d.ts.map +1 -1
  135. package/dist/export/html.js +5 -2
  136. package/dist/export/html.js.map +1 -1
  137. package/dist/export/triage.d.ts +1 -1
  138. package/dist/export/triage.d.ts.map +1 -1
  139. package/dist/export/triage.js +5 -3
  140. package/dist/export/triage.js.map +1 -1
  141. package/dist/parser/alignment.d.ts.map +1 -1
  142. package/dist/parser/alignment.js +10 -5
  143. package/dist/parser/alignment.js.map +1 -1
  144. package/dist/parser/assess.js +1 -1
  145. package/dist/parser/assess.js.map +1 -1
  146. package/dist/parser/config.d.ts +6 -6
  147. package/dist/parser/meta.d.ts.map +1 -1
  148. package/dist/parser/meta.js +9 -8
  149. package/dist/parser/meta.js.map +1 -1
  150. package/dist/parser/plan-document.d.ts +12 -12
  151. package/dist/parser/plans.d.ts +7 -0
  152. package/dist/parser/plans.d.ts.map +1 -1
  153. package/dist/parser/plans.js +100 -15
  154. package/dist/parser/plans.js.map +1 -1
  155. package/dist/parser/refs.d.ts +5 -0
  156. package/dist/parser/refs.d.ts.map +1 -1
  157. package/dist/parser/refs.js +17 -12
  158. package/dist/parser/refs.js.map +1 -1
  159. package/dist/parser/shadow.d.ts +1 -1
  160. package/dist/parser/shadow.d.ts.map +1 -1
  161. package/dist/parser/shadow.js +71 -4
  162. package/dist/parser/shadow.js.map +1 -1
  163. package/dist/parser/skill-render.d.ts.map +1 -1
  164. package/dist/parser/skill-render.js +6 -3
  165. package/dist/parser/skill-render.js.map +1 -1
  166. package/dist/parser/validate.d.ts.map +1 -1
  167. package/dist/parser/validate.js +35 -76
  168. package/dist/parser/validate.js.map +1 -1
  169. package/dist/parser/yaml.d.ts +24 -5
  170. package/dist/parser/yaml.d.ts.map +1 -1
  171. package/dist/parser/yaml.js +224 -64
  172. package/dist/parser/yaml.js.map +1 -1
  173. package/dist/schema/meta.d.ts +457 -119
  174. package/dist/schema/meta.d.ts.map +1 -1
  175. package/dist/schema/meta.js +56 -0
  176. package/dist/schema/meta.js.map +1 -1
  177. package/dist/schema/plan.d.ts +22 -22
  178. package/dist/schema/spec.d.ts +39 -39
  179. package/dist/schema/task.d.ts +43 -32
  180. package/dist/schema/task.d.ts.map +1 -1
  181. package/dist/schema/task.js +5 -0
  182. package/dist/schema/task.js.map +1 -1
  183. package/dist/sessions/store.d.ts +126 -0
  184. package/dist/sessions/store.d.ts.map +1 -1
  185. package/dist/sessions/store.js +440 -22
  186. package/dist/sessions/store.js.map +1 -1
  187. package/dist/sessions/types.d.ts +75 -17
  188. package/dist/sessions/types.d.ts.map +1 -1
  189. package/dist/sessions/types.js +51 -1
  190. package/dist/sessions/types.js.map +1 -1
  191. package/dist/triage/actions.d.ts +1 -0
  192. package/dist/triage/actions.d.ts.map +1 -1
  193. package/dist/triage/actions.js +34 -7
  194. package/dist/triage/actions.js.map +1 -1
  195. package/dist/utils/commit.js +1 -1
  196. package/dist/utils/commit.js.map +1 -1
  197. package/dist/web-ui/_app/env.js +1 -0
  198. package/dist/web-ui/_app/immutable/assets/0.BJaYkGW2.css +1 -0
  199. package/dist/web-ui/_app/immutable/assets/9.SzGLxi4x.css +1 -0
  200. package/dist/web-ui/_app/immutable/assets/select-trigger.CV-KWLNP.css +1 -0
  201. package/dist/web-ui/_app/immutable/chunks/-lc0BifF.js +1 -0
  202. package/dist/web-ui/_app/immutable/chunks/62JVKtnb.js +1 -0
  203. package/dist/web-ui/_app/immutable/chunks/8RBjHMN1.js +1 -0
  204. package/dist/web-ui/_app/immutable/chunks/B5LJFxqa.js +1 -0
  205. package/dist/web-ui/_app/immutable/chunks/B5wTVqxm.js +1 -0
  206. package/dist/web-ui/_app/immutable/chunks/B6VSmczZ.js +1 -0
  207. package/dist/web-ui/_app/immutable/chunks/B8a0xDxR.js +1 -0
  208. package/dist/web-ui/_app/immutable/chunks/BEOQc37C.js +1 -0
  209. package/dist/web-ui/_app/immutable/chunks/BHtYorjv.js +1 -0
  210. package/dist/web-ui/_app/immutable/chunks/BJ0JX3ea.js +1 -0
  211. package/dist/web-ui/_app/immutable/chunks/BMuCqDX8.js +1 -0
  212. package/dist/web-ui/_app/immutable/chunks/BP352uRn.js +1 -0
  213. package/dist/web-ui/_app/immutable/chunks/BUZujXJ2.js +1 -0
  214. package/dist/web-ui/_app/immutable/chunks/BVA9Exy-.js +1 -0
  215. package/dist/web-ui/_app/immutable/chunks/BWET-efb.js +1 -0
  216. package/dist/web-ui/_app/immutable/chunks/BXkNecpt.js +1 -0
  217. package/dist/web-ui/_app/immutable/chunks/BYzrIfX8.js +1 -0
  218. package/dist/web-ui/_app/immutable/chunks/BkOJ8DkV.js +1 -0
  219. package/dist/web-ui/_app/immutable/chunks/BpuwufMc.js +1 -0
  220. package/dist/web-ui/_app/immutable/chunks/BwMO4RrG.js +1 -0
  221. package/dist/web-ui/_app/immutable/chunks/BysXJlZb.js +1 -0
  222. package/dist/web-ui/_app/immutable/chunks/C076q4JN.js +1 -0
  223. package/dist/web-ui/_app/immutable/chunks/C33JaVbg.js +1 -0
  224. package/dist/web-ui/_app/immutable/chunks/CGtqifKp.js +1 -0
  225. package/dist/web-ui/_app/immutable/chunks/CHDZZ7OG.js +1 -0
  226. package/dist/web-ui/_app/immutable/chunks/CPPfDSei.js +5 -0
  227. package/dist/web-ui/_app/immutable/chunks/CUir3f4J.js +60 -0
  228. package/dist/web-ui/_app/immutable/chunks/Cncwi6fQ.js +1 -0
  229. package/dist/web-ui/_app/immutable/chunks/CrCIbn0C.js +1 -0
  230. package/dist/web-ui/_app/immutable/chunks/CwELQvbx.js +1 -0
  231. package/dist/web-ui/_app/immutable/chunks/D3vxvonu.js +1 -0
  232. package/dist/web-ui/_app/immutable/chunks/D6TVmR9T.js +1 -0
  233. package/dist/web-ui/_app/immutable/chunks/D7LTux4W.js +1 -0
  234. package/dist/web-ui/_app/immutable/chunks/D82RulSH.js +1 -0
  235. package/dist/web-ui/_app/immutable/chunks/D9QNBZM2.js +2 -0
  236. package/dist/web-ui/_app/immutable/chunks/DAMmvwn4.js +1 -0
  237. package/dist/web-ui/_app/immutable/chunks/DAh4Wfku.js +1 -0
  238. package/dist/web-ui/_app/immutable/chunks/DAx07bEQ.js +1 -0
  239. package/dist/web-ui/_app/immutable/chunks/DBYE9jOd.js +1 -0
  240. package/dist/web-ui/_app/immutable/chunks/DOno4cA2.js +1 -0
  241. package/dist/web-ui/_app/immutable/chunks/DQA8NZIH.js +2 -0
  242. package/dist/web-ui/_app/immutable/chunks/DRfPm2bo.js +1 -0
  243. package/dist/web-ui/_app/immutable/chunks/DhQhksaB.js +1 -0
  244. package/dist/web-ui/_app/immutable/chunks/DjG7s6hm.js +1 -0
  245. package/dist/web-ui/_app/immutable/chunks/DjcCz-PU.js +2 -0
  246. package/dist/web-ui/_app/immutable/chunks/DkltRNvh.js +1 -0
  247. package/dist/web-ui/_app/immutable/chunks/DlaTnPKL.js +1 -0
  248. package/dist/web-ui/_app/immutable/chunks/DvA-KON-.js +1 -0
  249. package/dist/web-ui/_app/immutable/chunks/DxCk-KHc.js +1 -0
  250. package/dist/web-ui/_app/immutable/chunks/DzO4hlg9.js +1 -0
  251. package/dist/web-ui/_app/immutable/chunks/Eo4gF7ih.js +1 -0
  252. package/dist/web-ui/_app/immutable/chunks/ExCq5swK.js +1 -0
  253. package/dist/web-ui/_app/immutable/chunks/T3zZGv51.js +1 -0
  254. package/dist/web-ui/_app/immutable/chunks/XZumBYeP.js +1 -0
  255. package/dist/web-ui/_app/immutable/chunks/_ySfNjkF.js +1 -0
  256. package/dist/web-ui/_app/immutable/chunks/iEtR5cV6.js +1 -0
  257. package/dist/web-ui/_app/immutable/chunks/k_Qegko0.js +1 -0
  258. package/dist/web-ui/_app/immutable/chunks/pE6cYWlS.js +1 -0
  259. package/dist/web-ui/_app/immutable/entry/app.Cgu6uKeS.js +2 -0
  260. package/dist/web-ui/_app/immutable/entry/start.9XifnLoB.js +1 -0
  261. package/dist/web-ui/_app/immutable/nodes/0.DISwcKSK.js +1 -0
  262. package/dist/web-ui/_app/immutable/nodes/1.Cx2Ufqp1.js +1 -0
  263. package/dist/web-ui/_app/immutable/nodes/10.C3z8ijXL.js +1 -0
  264. package/dist/web-ui/_app/immutable/nodes/11.DZdIjZmM.js +1 -0
  265. package/dist/web-ui/_app/immutable/nodes/12.FsIGfAOa.js +1 -0
  266. package/dist/web-ui/_app/immutable/nodes/13.DZoFwagf.js +1 -0
  267. package/dist/web-ui/_app/immutable/nodes/14.DaIzDKbQ.js +1 -0
  268. package/dist/web-ui/_app/immutable/nodes/15.BYyt4XWF.js +2 -0
  269. package/dist/web-ui/_app/immutable/nodes/16.CQkSqpOe.js +1 -0
  270. package/dist/web-ui/_app/immutable/nodes/2.Bkf_j2UJ.js +1 -0
  271. package/dist/web-ui/_app/immutable/nodes/3.kaMCurJG.js +1 -0
  272. package/dist/web-ui/_app/immutable/nodes/4.BSsFPTHG.js +2 -0
  273. package/dist/web-ui/_app/immutable/nodes/5.CpPlcCEZ.js +1 -0
  274. package/dist/web-ui/_app/immutable/nodes/6.BN4FqQmY.js +1 -0
  275. package/dist/web-ui/_app/immutable/nodes/7.9kBYIZik.js +1 -0
  276. package/dist/web-ui/_app/immutable/nodes/8.BuijtZ6B.js +1 -0
  277. package/dist/web-ui/_app/immutable/nodes/9.C-Weba8R.js +1 -0
  278. package/dist/web-ui/_app/version.json +1 -0
  279. package/dist/web-ui/index.html +39 -0
  280. package/dist/web-ui/robots.txt +3 -0
  281. package/package.json +4 -2
  282. package/plugin/.claude-plugin/marketplace.json +1 -1
  283. package/plugin/.claude-plugin/plugin.json +1 -1
  284. package/plugin/plugins/kspec/skills/task-work/SKILL.md +25 -2
  285. package/templates/agents-sections/06-ralph-loop.md +64 -11
  286. package/templates/skills/task-work/SKILL.md +25 -2
  287. package/dist/ralph/cli-renderer.d.ts +0 -27
  288. package/dist/ralph/cli-renderer.d.ts.map +0 -1
  289. package/dist/ralph/cli-renderer.js +0 -250
  290. package/dist/ralph/cli-renderer.js.map +0 -1
  291. package/dist/ralph/events.d.ts +0 -65
  292. package/dist/ralph/events.d.ts.map +0 -1
  293. package/dist/ralph/events.js +0 -600
  294. package/dist/ralph/events.js.map +0 -1
  295. package/dist/ralph/index.d.ts +0 -11
  296. package/dist/ralph/index.d.ts.map +0 -1
  297. package/dist/ralph/index.js +0 -16
  298. package/dist/ralph/index.js.map +0 -1
  299. package/dist/ralph/loop-errors.d.ts +0 -83
  300. package/dist/ralph/loop-errors.d.ts.map +0 -1
  301. package/dist/ralph/loop-errors.js +0 -150
  302. package/dist/ralph/loop-errors.js.map +0 -1
  303. package/dist/ralph/subagent.d.ts +0 -127
  304. package/dist/ralph/subagent.d.ts.map +0 -1
  305. package/dist/ralph/subagent.js +0 -268
  306. package/dist/ralph/subagent.js.map +0 -1
  307. package/dist/ralph/wrap-up.d.ts +0 -127
  308. package/dist/ralph/wrap-up.d.ts.map +0 -1
  309. package/dist/ralph/wrap-up.js +0 -271
  310. package/dist/ralph/wrap-up.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/sessions/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/sessions/store.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,7 @@ import * as path from "node:path";
17
17
  import { createHash, randomUUID } from "node:crypto";
18
18
  import { parse as parseTOML, stringify as stringifyTOML } from "smol-toml";
19
19
  import * as YAML from "yaml";
20
+ import { shadowAutoCommit } from "../parser/shadow.js";
20
21
  import { SessionEventSchema, SessionMetadataSchema, TaskBudgetSchema, } from "./types.js";
21
22
  // ─── Constants ───────────────────────────────────────────────────────────────
22
23
  const SESSIONS_DIR = "sessions";
@@ -29,6 +30,7 @@ const BLOBS_DIR = "blobs";
29
30
  const EVENT_LINE_MAX_BYTES = 256 * 1024;
30
31
  const EVENT_FIELD_EXTERNALIZE_BYTES = 16 * 1024;
31
32
  const EVENT_PREVIEW_MAX_BYTES = 512;
33
+ const EVENT_SEQ_TAIL_READ_BYTES = EVENT_LINE_MAX_BYTES + 1024;
32
34
  // ─── Path Helpers ────────────────────────────────────────────────────────────
33
35
  /**
34
36
  * Get the sessions directory path within a spec directory.
@@ -90,10 +92,13 @@ export async function createSession(specDir, input) {
90
92
  // Create session directory
91
93
  await fsPromises.mkdir(sessionDir, { recursive: true });
92
94
  // Build full metadata
95
+ // AC: @session-model-evolution ac-1 — include trigger and agent_id when provided
93
96
  const metadata = {
94
97
  id: input.id,
95
98
  task_id: input.task_id,
96
99
  agent_type: input.agent_type,
100
+ agent_id: input.agent_id,
101
+ trigger: input.trigger,
97
102
  status: input.status ?? "active",
98
103
  started_at: input.started_at ?? new Date().toISOString(),
99
104
  ended_at: undefined,
@@ -120,7 +125,13 @@ export async function getSession(specDir, sessionId) {
120
125
  try {
121
126
  const content = await fsPromises.readFile(metadataPath, "utf-8");
122
127
  const raw = YAML.parse(content);
123
- return SessionMetadataSchema.parse(raw);
128
+ const parsed = SessionMetadataSchema.parse(raw);
129
+ // AC: @session-model-evolution ac-2 — materialize defaults for legacy sessions
130
+ return {
131
+ ...parsed,
132
+ trigger: parsed.trigger ?? "legacy",
133
+ agent_id: parsed.agent_id ?? parsed.agent_type,
134
+ };
124
135
  }
125
136
  catch {
126
137
  return null;
@@ -174,6 +185,30 @@ export async function listSessions(specDir) {
174
185
  return [];
175
186
  }
176
187
  }
188
+ /**
189
+ * Count completed sessions grouped by agent_id.
190
+ *
191
+ * Reads only session metadata (not events.jsonl) for performance.
192
+ * A session counts as "completed" if its status is "completed".
193
+ *
194
+ * @param specDir - The .kspec directory path
195
+ * @returns Map of agent_id to completed session count
196
+ */
197
+ export async function getCompletedSessionCountsByAgent(specDir) {
198
+ const sessionIds = await listSessions(specDir);
199
+ const counts = {};
200
+ // Read metadata in parallel for performance
201
+ const metadataResults = await Promise.all(sessionIds.map((id) => getSession(specDir, id)));
202
+ for (const metadata of metadataResults) {
203
+ if (!metadata)
204
+ continue;
205
+ if (metadata.status !== "completed")
206
+ continue;
207
+ const agentId = metadata.agent_id ?? metadata.agent_type;
208
+ counts[agentId] = (counts[agentId] || 0) + 1;
209
+ }
210
+ return counts;
211
+ }
177
212
  /**
178
213
  * Check if a session exists.
179
214
  */
@@ -443,22 +478,70 @@ export async function resolveSessionBlobPointers(specDir, sessionId, value) {
443
478
  }
444
479
  return value;
445
480
  }
481
+ function extractLastEventSeq(content) {
482
+ const lines = content.split("\n");
483
+ for (let i = lines.length - 1; i >= 0; i -= 1) {
484
+ const line = lines[i].trim();
485
+ if (line.length === 0) {
486
+ continue;
487
+ }
488
+ try {
489
+ const parsed = JSON.parse(line);
490
+ if (isRecord(parsed) &&
491
+ typeof parsed.seq === "number" &&
492
+ Number.isInteger(parsed.seq) &&
493
+ parsed.seq >= 0) {
494
+ return parsed.seq;
495
+ }
496
+ }
497
+ catch {
498
+ // Ignore malformed lines and continue scanning backward.
499
+ }
500
+ }
501
+ return null;
502
+ }
446
503
  /**
447
- * Get the current event count for a session (for seq assignment).
504
+ * Get next sequence number from the last stored event.
448
505
  *
449
- * @param specDir - The .kspec directory path
450
- * @param sessionId - Session ID
451
- * @returns Number of events in the session
506
+ * Reads a bounded tail slice for O(1) seq lookup; falls back to full scan only
507
+ * if the tail slice cannot be parsed (for example, partial line boundary).
452
508
  */
453
- async function getEventCount(specDir, sessionId) {
509
+ async function getNextEventSeq(specDir, sessionId) {
454
510
  const eventsPath = getSessionEventsPath(specDir, sessionId);
511
+ let fileHandle = null;
455
512
  try {
456
- const content = await fsPromises.readFile(eventsPath, "utf-8");
457
- const lines = content
458
- .trim()
459
- .split("\n")
460
- .filter((line) => line.length > 0);
461
- return lines.length;
513
+ fileHandle = await fsPromises.open(eventsPath, "r");
514
+ const stats = await fileHandle.stat();
515
+ if (stats.size === 0) {
516
+ return 0;
517
+ }
518
+ const readBytes = Math.min(stats.size, EVENT_SEQ_TAIL_READ_BYTES);
519
+ const startOffset = stats.size - readBytes;
520
+ const buffer = Buffer.alloc(readBytes);
521
+ await fileHandle.read(buffer, 0, readBytes, startOffset);
522
+ let tailContent = buffer.toString("utf-8");
523
+ if (startOffset > 0) {
524
+ // Drop potential partial first line from tail slice.
525
+ const firstNewline = tailContent.indexOf("\n");
526
+ tailContent = firstNewline === -1 ? "" : tailContent.slice(firstNewline + 1);
527
+ }
528
+ const tailSeq = extractLastEventSeq(tailContent);
529
+ if (tailSeq !== null) {
530
+ return tailSeq + 1;
531
+ }
532
+ }
533
+ catch (error) {
534
+ if (error.code === "ENOENT") {
535
+ return 0;
536
+ }
537
+ }
538
+ finally {
539
+ await fileHandle?.close().catch(() => undefined);
540
+ }
541
+ try {
542
+ const fullContent = await fsPromises.readFile(eventsPath, "utf-8");
543
+ const fullSeq = extractLastEventSeq(fullContent);
544
+ return fullSeq === null ? 0 : fullSeq + 1;
462
545
  }
463
546
  catch {
464
547
  return 0;
@@ -487,8 +570,8 @@ export async function appendEvent(specDir, input) {
487
570
  const eventsPath = getSessionEventsPath(specDir, input.session_id);
488
571
  // Ensure session directory exists (lazy creation)
489
572
  await fsPromises.mkdir(sessionDir, { recursive: true });
490
- // Get current event count for seq assignment
491
- const seq = input.seq ?? (await getEventCount(specDir, input.session_id));
573
+ // Derive next sequence number from the last stored event.
574
+ const seq = input.seq ?? (await getNextEventSeq(specDir, input.session_id));
492
575
  // Build full event
493
576
  const event = {
494
577
  ts: input.ts ?? Date.now(),
@@ -765,6 +848,321 @@ export async function getLastEvent(specDir, sessionId) {
765
848
  }
766
849
  return events[events.length - 1];
767
850
  }
851
+ // ─── Stale Session Candidate Selection ──────────────────────────────────────
852
+ const RELATIVE_DURATION_PATTERN = /^(\d+)([hdwm])$/i;
853
+ const STALE_DEFAULTS = {
854
+ olderThan: "24h",
855
+ inactiveFor: "6h",
856
+ livenessGuard: "5m",
857
+ };
858
+ function durationGuidance(flag) {
859
+ return `--${flag} accepts relative durations only (h, d, w, m), for example 6h, 7d, 2w, 1m`;
860
+ }
861
+ function parseRelativeDurationMs(rawValue) {
862
+ const match = rawValue.match(RELATIVE_DURATION_PATTERN);
863
+ if (!match)
864
+ return null;
865
+ const amount = parseInt(match[1], 10);
866
+ const unit = match[2].toLowerCase();
867
+ if (Number.isNaN(amount))
868
+ return null;
869
+ switch (unit) {
870
+ case "h":
871
+ return amount * 60 * 60 * 1000;
872
+ case "d":
873
+ return amount * 24 * 60 * 60 * 1000;
874
+ case "w":
875
+ return amount * 7 * 24 * 60 * 60 * 1000;
876
+ case "m":
877
+ return amount * 60 * 1000;
878
+ default:
879
+ return null;
880
+ }
881
+ }
882
+ function parseCriteriaDuration(field, value) {
883
+ const parsed = parseRelativeDurationMs(value);
884
+ if (parsed !== null) {
885
+ return { ok: true, ms: parsed };
886
+ }
887
+ const parsedDate = new Date(value);
888
+ const appearsAbsolute = !Number.isNaN(parsedDate.getTime());
889
+ return {
890
+ ok: false,
891
+ field,
892
+ value,
893
+ message: appearsAbsolute
894
+ ? `Invalid value for --${field}: "${value}" (absolute timestamps are not supported)`
895
+ : `Invalid value for --${field}: "${value}"`,
896
+ guidance: durationGuidance(field),
897
+ };
898
+ }
899
+ export function resolveStaleSessionCriteria(input) {
900
+ const olderThan = input.olderThan ?? STALE_DEFAULTS.olderThan;
901
+ const inactiveFor = input.inactiveFor ?? STALE_DEFAULTS.inactiveFor;
902
+ const livenessGuard = input.livenessGuard ?? STALE_DEFAULTS.livenessGuard;
903
+ const olderThanParsed = parseCriteriaDuration("older-than", olderThan);
904
+ if (!olderThanParsed.ok)
905
+ return olderThanParsed;
906
+ const olderThanMs = olderThanParsed.ms;
907
+ const inactiveForParsed = parseCriteriaDuration("inactive-for", inactiveFor);
908
+ if (!inactiveForParsed.ok)
909
+ return inactiveForParsed;
910
+ const inactiveForMs = inactiveForParsed.ms;
911
+ const livenessGuardParsed = parseCriteriaDuration("liveness-guard", livenessGuard);
912
+ if (!livenessGuardParsed.ok)
913
+ return livenessGuardParsed;
914
+ const livenessGuardMs = livenessGuardParsed.ms;
915
+ return {
916
+ ok: true,
917
+ criteria: {
918
+ olderThan,
919
+ olderThanMs,
920
+ inactiveFor,
921
+ inactiveForMs,
922
+ livenessGuard,
923
+ livenessGuardMs,
924
+ },
925
+ };
926
+ }
927
+ /**
928
+ * Resolve most recent activity timestamp for stale-session candidate checks.
929
+ *
930
+ * Unlike readEvents(), this is strict: corrupt events are surfaced as failures
931
+ * so stale auto-close can skip unsafe sessions.
932
+ */
933
+ export async function getSessionActivityForStaleCheck(specDir, sessionId) {
934
+ const metadata = await getSession(specDir, sessionId);
935
+ if (!metadata) {
936
+ return {
937
+ ok: false,
938
+ reason: "invalid_started_at",
939
+ detail: `Session metadata missing or unreadable for ${sessionId}`,
940
+ };
941
+ }
942
+ const startedAtTs = new Date(metadata.started_at).getTime();
943
+ if (Number.isNaN(startedAtTs)) {
944
+ return {
945
+ ok: false,
946
+ reason: "invalid_started_at",
947
+ detail: `Session ${sessionId} has invalid started_at timestamp`,
948
+ };
949
+ }
950
+ const eventsPath = getSessionEventsPath(specDir, sessionId);
951
+ let content;
952
+ try {
953
+ content = await fsPromises.readFile(eventsPath, "utf-8");
954
+ }
955
+ catch (err) {
956
+ if (err instanceof Error && "code" in err && err.code === "ENOENT") {
957
+ return {
958
+ ok: true,
959
+ activity: {
960
+ lastActivityAt: metadata.started_at,
961
+ lastActivityTs: startedAtTs,
962
+ source: "started_at",
963
+ },
964
+ };
965
+ }
966
+ const message = err instanceof Error ? err.message : String(err);
967
+ return {
968
+ ok: false,
969
+ reason: "events_unreadable",
970
+ detail: `Unable to read events.jsonl for ${sessionId}: ${message}`,
971
+ };
972
+ }
973
+ const lines = content
974
+ .split("\n")
975
+ .map((line) => line.trim())
976
+ .filter((line) => line.length > 0);
977
+ if (lines.length === 0) {
978
+ return {
979
+ ok: true,
980
+ activity: {
981
+ lastActivityAt: metadata.started_at,
982
+ lastActivityTs: startedAtTs,
983
+ source: "started_at",
984
+ },
985
+ };
986
+ }
987
+ let latestTs = null;
988
+ for (let i = 0; i < lines.length; i++) {
989
+ const line = lines[i];
990
+ try {
991
+ const parsed = JSON.parse(line);
992
+ const event = SessionEventSchema.parse(parsed);
993
+ if (latestTs === null || event.ts > latestTs) {
994
+ latestTs = event.ts;
995
+ }
996
+ }
997
+ catch {
998
+ return {
999
+ ok: false,
1000
+ reason: "events_corrupt",
1001
+ detail: `Corrupt events.jsonl for ${sessionId}: invalid line ${i + 1}`,
1002
+ };
1003
+ }
1004
+ }
1005
+ if (latestTs === null) {
1006
+ return {
1007
+ ok: true,
1008
+ activity: {
1009
+ lastActivityAt: metadata.started_at,
1010
+ lastActivityTs: startedAtTs,
1011
+ source: "started_at",
1012
+ },
1013
+ };
1014
+ }
1015
+ return {
1016
+ ok: true,
1017
+ activity: {
1018
+ lastActivityAt: new Date(latestTs).toISOString(),
1019
+ lastActivityTs: latestTs,
1020
+ source: "event",
1021
+ },
1022
+ };
1023
+ }
1024
+ export function evaluateStaleSession(startedAt, activity, criteria, nowMs = Date.now()) {
1025
+ const startedAtMs = new Date(startedAt).getTime();
1026
+ const ageMs = nowMs - startedAtMs;
1027
+ const inactivityMs = nowMs - activity.lastActivityTs;
1028
+ const meetsAgeThreshold = ageMs >= criteria.olderThanMs;
1029
+ const meetsInactivityThreshold = inactivityMs >= criteria.inactiveForMs;
1030
+ const blockedByLivenessGuard = inactivityMs < criteria.livenessGuardMs;
1031
+ const eligible = meetsAgeThreshold &&
1032
+ meetsInactivityThreshold &&
1033
+ !blockedByLivenessGuard;
1034
+ return {
1035
+ startedAt,
1036
+ lastActivityAt: activity.lastActivityAt,
1037
+ lastActivitySource: activity.source,
1038
+ ageMs,
1039
+ inactivityMs,
1040
+ meetsAgeThreshold,
1041
+ meetsInactivityThreshold,
1042
+ blockedByLivenessGuard,
1043
+ eligible,
1044
+ };
1045
+ }
1046
+ export async function selectStaleActiveSessions(specDir, criteriaInput = {}, nowMs = Date.now()) {
1047
+ const criteriaResolved = resolveStaleSessionCriteria(criteriaInput);
1048
+ if (!criteriaResolved.ok) {
1049
+ throw new Error(`${criteriaResolved.message}. ${criteriaResolved.guidance}`);
1050
+ }
1051
+ const criteria = criteriaResolved.criteria;
1052
+ const sessionIds = await listSessions(specDir);
1053
+ const evaluations = [];
1054
+ const candidates = [];
1055
+ const skipped = [];
1056
+ for (const sessionId of sessionIds) {
1057
+ const metadata = await getSession(specDir, sessionId);
1058
+ if (!metadata || metadata.status !== "active")
1059
+ continue;
1060
+ const activityResult = await getSessionActivityForStaleCheck(specDir, sessionId);
1061
+ if (!activityResult.ok) {
1062
+ skipped.push({
1063
+ sessionId,
1064
+ reason: activityResult.reason,
1065
+ detail: activityResult.detail,
1066
+ });
1067
+ continue;
1068
+ }
1069
+ const evaluation = evaluateStaleSession(metadata.started_at, activityResult.activity, criteria, nowMs);
1070
+ const withSessionId = {
1071
+ sessionId,
1072
+ ...evaluation,
1073
+ };
1074
+ evaluations.push(withSessionId);
1075
+ if (withSessionId.eligible) {
1076
+ candidates.push(withSessionId);
1077
+ }
1078
+ }
1079
+ return {
1080
+ criteria,
1081
+ totalActiveSessions: evaluations.length + skipped.length,
1082
+ evaluations,
1083
+ candidates,
1084
+ skipped,
1085
+ skippedCount: skipped.length,
1086
+ failureCount: skipped.length,
1087
+ };
1088
+ }
1089
+ /**
1090
+ * Build canonical close_reason for stale auto-abandon updates.
1091
+ *
1092
+ * Canonical format:
1093
+ * auto-abandoned:older-than=<duration>,inactive-for=<duration>,liveness-guard=<duration>,last-activity=<iso>
1094
+ */
1095
+ export function buildAutoAbandonedCloseReason(criteria, evaluation) {
1096
+ const segments = [
1097
+ `older-than=${criteria.olderThan}`,
1098
+ `inactive-for=${criteria.inactiveFor}`,
1099
+ `liveness-guard=${criteria.livenessGuard}`,
1100
+ `last-activity=${evaluation.lastActivityAt}`,
1101
+ ];
1102
+ return `auto-abandoned:${segments.join(",")}`;
1103
+ }
1104
+ /**
1105
+ * Apply abandoned metadata to stale session candidates.
1106
+ *
1107
+ * All updates in a single invocation share one ended_at timestamp, which lets
1108
+ * the caller persist and commit the batch atomically with one shadow commit.
1109
+ */
1110
+ export async function applyAutoAbandonMetadata(specDir, selection, options) {
1111
+ const dryRun = options?.dryRun === true;
1112
+ const endedAt = new Date(options?.nowMs ?? Date.now()).toISOString();
1113
+ const updates = [];
1114
+ for (const candidate of selection.candidates) {
1115
+ const closeReason = buildAutoAbandonedCloseReason(selection.criteria, candidate);
1116
+ updates.push({
1117
+ sessionId: candidate.sessionId,
1118
+ status: "abandoned",
1119
+ endedAt,
1120
+ closeReason,
1121
+ });
1122
+ if (dryRun)
1123
+ continue;
1124
+ const metadata = await getSession(specDir, candidate.sessionId);
1125
+ if (!metadata)
1126
+ continue;
1127
+ const updated = {
1128
+ ...metadata,
1129
+ status: "abandoned",
1130
+ ended_at: endedAt,
1131
+ close_reason: closeReason,
1132
+ };
1133
+ const metadataPath = getSessionMetadataPath(specDir, candidate.sessionId);
1134
+ const content = YAML.stringify(updated, {
1135
+ indent: 2,
1136
+ lineWidth: 100,
1137
+ sortMapEntries: false,
1138
+ });
1139
+ await fsPromises.writeFile(metadataPath, content, "utf-8");
1140
+ }
1141
+ let shadowCommitted;
1142
+ if (!dryRun && updates.length > 0 && options?.shadowCommitMessage) {
1143
+ shadowCommitted = await shadowAutoCommit(specDir, options.shadowCommitMessage);
1144
+ }
1145
+ return {
1146
+ dryRun,
1147
+ updatedCount: updates.length,
1148
+ updates,
1149
+ shadowCommitted,
1150
+ };
1151
+ }
1152
+ // ─── Session Log Summaries ───────────────────────────────────────────────────
1153
+ /**
1154
+ * Determine session type from metadata for display.
1155
+ * - "invocation": New agent runtime session (has trigger != "legacy" or agent_id)
1156
+ * - "loop": Legacy ralph loop session (no trigger, or trigger === "legacy")
1157
+ *
1158
+ * AC: @session-model-evolution ac-6
1159
+ */
1160
+ function resolveSessionType(metadata) {
1161
+ if (metadata.trigger && metadata.trigger !== "legacy") {
1162
+ return "invocation";
1163
+ }
1164
+ return "loop";
1165
+ }
768
1166
  /**
769
1167
  * Count lines in events.jsonl without parsing JSON.
770
1168
  * Much faster than readEvents() for large files.
@@ -798,8 +1196,13 @@ async function countIterations(specDir, sessionId) {
798
1196
  * Count task completions by scanning events for tool calls that invoke
799
1197
  * `kspec task complete` or `npm run dev -- task complete`.
800
1198
  *
801
- * Real sessions record task completions as session.update events with
802
- * sessionUpdate: "tool_call" and rawInput.command containing the complete command.
1199
+ * Handles multiple adapter formats:
1200
+ * - claude-code-acp: rawInput.command is a string in tool_call_update events
1201
+ * - claude-agent-acp: rawInput.command is a string in tool_call_update events
1202
+ * (initial tool_call event has empty rawInput {})
1203
+ * - codex-acp: rawInput.command is an array ['/usr/bin/bash', '-lc', 'kspec task complete @ref']
1204
+ * in tool_call events; actual command is at index 2
1205
+ *
803
1206
  * We use a fast substring check before JSON parsing for performance.
804
1207
  */
805
1208
  async function countTaskCompletions(specDir, sessionId) {
@@ -814,12 +1217,15 @@ async function countTaskCompletions(specDir, sessionId) {
814
1217
  // Quick substring pre-filter: only parse lines that might contain task complete commands
815
1218
  if (!line.includes("task complete"))
816
1219
  continue;
817
- // Must be a tool_call event (session.update with sessionUpdate: "tool_call")
818
- if (!line.includes('"tool_call"'))
819
- continue;
820
1220
  try {
821
1221
  const event = JSON.parse(line);
822
- const command = event?.data?.update?.rawInput?.command;
1222
+ const rawCommand = event?.data?.update?.rawInput?.command;
1223
+ // Normalize: string (claude-*-acp) or array like [bash, -lc, cmd] (codex-acp)
1224
+ const command = typeof rawCommand === "string"
1225
+ ? rawCommand
1226
+ : Array.isArray(rawCommand) && rawCommand.length > 0
1227
+ ? rawCommand[rawCommand.length - 1]
1228
+ : undefined;
823
1229
  if (typeof command === "string" && /\btask complete\b/.test(command)) {
824
1230
  count++;
825
1231
  }
@@ -861,6 +1267,9 @@ export async function getSessionLogSummary(specDir, sessionId) {
861
1267
  id: metadata.id,
862
1268
  status: metadata.status,
863
1269
  agent_type: metadata.agent_type,
1270
+ session_type: resolveSessionType(metadata),
1271
+ trigger: metadata.trigger,
1272
+ task_id: metadata.task_id,
864
1273
  started_at: metadata.started_at,
865
1274
  ended_at: metadata.ended_at,
866
1275
  duration_ms: durationMs,
@@ -1015,7 +1424,13 @@ function extractTaskTransitions(events) {
1015
1424
  for (const event of events) {
1016
1425
  if (event.type === "session.update") {
1017
1426
  const data = event.data;
1018
- const command = data?.update?.rawInput?.command;
1427
+ const rawCommand = data?.update?.rawInput?.command;
1428
+ // Normalize: string (claude-*-acp) or array like [bash, -lc, cmd] (codex-acp)
1429
+ const command = typeof rawCommand === "string"
1430
+ ? rawCommand
1431
+ : Array.isArray(rawCommand) && rawCommand.length > 0
1432
+ ? rawCommand[rawCommand.length - 1]
1433
+ : undefined;
1019
1434
  if (typeof command === "string") {
1020
1435
  if (/\btask start\b/.test(command)) {
1021
1436
  const ref = extractTaskRef(command);
@@ -1194,6 +1609,7 @@ export async function getSessionLogDetail(specDir, sessionId) {
1194
1609
  id: metadata.id,
1195
1610
  status: metadata.status,
1196
1611
  agent_type: metadata.agent_type,
1612
+ session_type: resolveSessionType(metadata),
1197
1613
  task_id: metadata.task_id,
1198
1614
  started_at: metadata.started_at,
1199
1615
  ended_at: metadata.ended_at,
@@ -1232,6 +1648,8 @@ export function computeSessionLogStats(summaries) {
1232
1648
  active: 0,
1233
1649
  completed: 0,
1234
1650
  abandoned: 0,
1651
+ timed_out: 0,
1652
+ failed: 0,
1235
1653
  };
1236
1654
  for (const s of summaries) {
1237
1655
  totalEvents += s.event_count;
@@ -1243,7 +1661,7 @@ export function computeSessionLogStats(summaries) {
1243
1661
  const n = summaries.length;
1244
1662
  // Build status breakdown
1245
1663
  const statusBreakdown = [];
1246
- for (const status of ["completed", "active", "abandoned"]) {
1664
+ for (const status of ["completed", "active", "abandoned", "timed_out", "failed"]) {
1247
1665
  const count = statusCounts[status] || 0;
1248
1666
  if (count > 0) {
1249
1667
  statusBreakdown.push({