@kynetic-ai/spec 0.1.2 → 0.3.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 (510) hide show
  1. package/README.md +250 -17
  2. package/dist/acp/client.d.ts +18 -4
  3. package/dist/acp/client.d.ts.map +1 -1
  4. package/dist/acp/client.js +44 -26
  5. package/dist/acp/client.js.map +1 -1
  6. package/dist/acp/framing.d.ts +2 -2
  7. package/dist/acp/framing.d.ts.map +1 -1
  8. package/dist/acp/framing.js +37 -29
  9. package/dist/acp/framing.js.map +1 -1
  10. package/dist/acp/index.d.ts +6 -7
  11. package/dist/acp/index.d.ts.map +1 -1
  12. package/dist/acp/index.js +3 -3
  13. package/dist/acp/index.js.map +1 -1
  14. package/dist/acp/types.d.ts +5 -5
  15. package/dist/acp/types.d.ts.map +1 -1
  16. package/dist/acp/types.js +18 -18
  17. package/dist/acp/types.js.map +1 -1
  18. package/dist/agents/adapters.d.ts.map +1 -1
  19. package/dist/agents/adapters.js +24 -13
  20. package/dist/agents/adapters.js.map +1 -1
  21. package/dist/agents/index.d.ts +2 -2
  22. package/dist/agents/index.js +2 -2
  23. package/dist/agents/spawner.d.ts +4 -4
  24. package/dist/agents/spawner.d.ts.map +1 -1
  25. package/dist/agents/spawner.js +6 -6
  26. package/dist/agents/spawner.js.map +1 -1
  27. package/dist/cli/batch-context.d.ts +43 -0
  28. package/dist/cli/batch-context.d.ts.map +1 -0
  29. package/dist/cli/batch-context.js +93 -0
  30. package/dist/cli/batch-context.js.map +1 -0
  31. package/dist/cli/batch-exec.d.ts +116 -0
  32. package/dist/cli/batch-exec.d.ts.map +1 -0
  33. package/dist/cli/batch-exec.js +694 -0
  34. package/dist/cli/batch-exec.js.map +1 -0
  35. package/dist/cli/batch.d.ts +4 -2
  36. package/dist/cli/batch.d.ts.map +1 -1
  37. package/dist/cli/batch.js +15 -14
  38. package/dist/cli/batch.js.map +1 -1
  39. package/dist/cli/command-annotations.d.ts +23 -0
  40. package/dist/cli/command-annotations.d.ts.map +1 -0
  41. package/dist/cli/command-annotations.js +27 -0
  42. package/dist/cli/command-annotations.js.map +1 -0
  43. package/dist/cli/commands/agents.d.ts +46 -0
  44. package/dist/cli/commands/agents.d.ts.map +1 -0
  45. package/dist/cli/commands/agents.js +377 -0
  46. package/dist/cli/commands/agents.js.map +1 -0
  47. package/dist/cli/commands/batch.d.ts +20 -0
  48. package/dist/cli/commands/batch.d.ts.map +1 -0
  49. package/dist/cli/commands/batch.js +214 -0
  50. package/dist/cli/commands/batch.js.map +1 -0
  51. package/dist/cli/commands/clone-for-testing.d.ts +1 -1
  52. package/dist/cli/commands/clone-for-testing.d.ts.map +1 -1
  53. package/dist/cli/commands/clone-for-testing.js +37 -47
  54. package/dist/cli/commands/clone-for-testing.js.map +1 -1
  55. package/dist/cli/commands/derive.d.ts +1 -1
  56. package/dist/cli/commands/derive.d.ts.map +1 -1
  57. package/dist/cli/commands/derive.js +140 -88
  58. package/dist/cli/commands/derive.js.map +1 -1
  59. package/dist/cli/commands/doctor.d.ts +11 -0
  60. package/dist/cli/commands/doctor.d.ts.map +1 -0
  61. package/dist/cli/commands/doctor.js +152 -0
  62. package/dist/cli/commands/doctor.js.map +1 -0
  63. package/dist/cli/commands/export.d.ts +12 -0
  64. package/dist/cli/commands/export.d.ts.map +1 -0
  65. package/dist/cli/commands/export.js +134 -0
  66. package/dist/cli/commands/export.js.map +1 -0
  67. package/dist/cli/commands/help.d.ts +1 -1
  68. package/dist/cli/commands/help.d.ts.map +1 -1
  69. package/dist/cli/commands/help.js +163 -37
  70. package/dist/cli/commands/help.js.map +1 -1
  71. package/dist/cli/commands/inbox.d.ts +1 -1
  72. package/dist/cli/commands/inbox.d.ts.map +1 -1
  73. package/dist/cli/commands/inbox.js +178 -56
  74. package/dist/cli/commands/inbox.js.map +1 -1
  75. package/dist/cli/commands/index.d.ts +31 -19
  76. package/dist/cli/commands/index.d.ts.map +1 -1
  77. package/dist/cli/commands/index.js +31 -19
  78. package/dist/cli/commands/index.js.map +1 -1
  79. package/dist/cli/commands/init.d.ts +5 -1
  80. package/dist/cli/commands/init.d.ts.map +1 -1
  81. package/dist/cli/commands/init.js +108 -57
  82. package/dist/cli/commands/init.js.map +1 -1
  83. package/dist/cli/commands/item.d.ts +1 -1
  84. package/dist/cli/commands/item.d.ts.map +1 -1
  85. package/dist/cli/commands/item.js +557 -274
  86. package/dist/cli/commands/item.js.map +1 -1
  87. package/dist/cli/commands/link.d.ts +1 -1
  88. package/dist/cli/commands/link.d.ts.map +1 -1
  89. package/dist/cli/commands/link.js +55 -46
  90. package/dist/cli/commands/link.js.map +1 -1
  91. package/dist/cli/commands/log.d.ts +1 -1
  92. package/dist/cli/commands/log.d.ts.map +1 -1
  93. package/dist/cli/commands/log.js +57 -51
  94. package/dist/cli/commands/log.js.map +1 -1
  95. package/dist/cli/commands/merge-driver.d.ts +19 -0
  96. package/dist/cli/commands/merge-driver.d.ts.map +1 -0
  97. package/dist/cli/commands/merge-driver.js +398 -0
  98. package/dist/cli/commands/merge-driver.js.map +1 -0
  99. package/dist/cli/commands/meta.d.ts +1 -1
  100. package/dist/cli/commands/meta.d.ts.map +1 -1
  101. package/dist/cli/commands/meta.js +533 -399
  102. package/dist/cli/commands/meta.js.map +1 -1
  103. package/dist/cli/commands/module.d.ts +1 -1
  104. package/dist/cli/commands/module.d.ts.map +1 -1
  105. package/dist/cli/commands/module.js +30 -25
  106. package/dist/cli/commands/module.js.map +1 -1
  107. package/dist/cli/commands/plan-import.d.ts +11 -0
  108. package/dist/cli/commands/plan-import.d.ts.map +1 -0
  109. package/dist/cli/commands/plan-import.js +516 -0
  110. package/dist/cli/commands/plan-import.js.map +1 -0
  111. package/dist/cli/commands/plan.d.ts +10 -0
  112. package/dist/cli/commands/plan.d.ts.map +1 -0
  113. package/dist/cli/commands/plan.js +421 -0
  114. package/dist/cli/commands/plan.js.map +1 -0
  115. package/dist/cli/commands/ralph.d.ts +1 -1
  116. package/dist/cli/commands/ralph.d.ts.map +1 -1
  117. package/dist/cli/commands/ralph.js +1097 -169
  118. package/dist/cli/commands/ralph.js.map +1 -1
  119. package/dist/cli/commands/refs.d.ts +13 -0
  120. package/dist/cli/commands/refs.d.ts.map +1 -0
  121. package/dist/cli/commands/refs.js +283 -0
  122. package/dist/cli/commands/refs.js.map +1 -0
  123. package/dist/cli/commands/search.d.ts +1 -1
  124. package/dist/cli/commands/search.d.ts.map +1 -1
  125. package/dist/cli/commands/search.js +199 -37
  126. package/dist/cli/commands/search.js.map +1 -1
  127. package/dist/cli/commands/serve.d.ts +10 -0
  128. package/dist/cli/commands/serve.d.ts.map +1 -0
  129. package/dist/cli/commands/serve.js +491 -0
  130. package/dist/cli/commands/serve.js.map +1 -0
  131. package/dist/cli/commands/session.d.ts +25 -6
  132. package/dist/cli/commands/session.d.ts.map +1 -1
  133. package/dist/cli/commands/session.js +811 -127
  134. package/dist/cli/commands/session.js.map +1 -1
  135. package/dist/cli/commands/setup-seeding.d.ts +81 -0
  136. package/dist/cli/commands/setup-seeding.d.ts.map +1 -0
  137. package/dist/cli/commands/setup-seeding.js +292 -0
  138. package/dist/cli/commands/setup-seeding.js.map +1 -0
  139. package/dist/cli/commands/setup.d.ts +77 -3
  140. package/dist/cli/commands/setup.d.ts.map +1 -1
  141. package/dist/cli/commands/setup.js +1233 -274
  142. package/dist/cli/commands/setup.js.map +1 -1
  143. package/dist/cli/commands/shadow.d.ts +1 -1
  144. package/dist/cli/commands/shadow.d.ts.map +1 -1
  145. package/dist/cli/commands/shadow.js +70 -50
  146. package/dist/cli/commands/shadow.js.map +1 -1
  147. package/dist/cli/commands/skill-crud.d.ts +58 -0
  148. package/dist/cli/commands/skill-crud.d.ts.map +1 -0
  149. package/dist/cli/commands/skill-crud.js +753 -0
  150. package/dist/cli/commands/skill-crud.js.map +1 -0
  151. package/dist/cli/commands/skill-diff.d.ts +27 -0
  152. package/dist/cli/commands/skill-diff.d.ts.map +1 -0
  153. package/dist/cli/commands/skill-diff.js +840 -0
  154. package/dist/cli/commands/skill-diff.js.map +1 -0
  155. package/dist/cli/commands/skill-install.d.ts +53 -0
  156. package/dist/cli/commands/skill-install.d.ts.map +1 -0
  157. package/dist/cli/commands/skill-install.js +452 -0
  158. package/dist/cli/commands/skill-install.js.map +1 -0
  159. package/dist/cli/commands/skill.d.ts +20 -0
  160. package/dist/cli/commands/skill.d.ts.map +1 -0
  161. package/dist/cli/commands/skill.js +36 -0
  162. package/dist/cli/commands/skill.js.map +1 -0
  163. package/dist/cli/commands/task.d.ts +1 -1
  164. package/dist/cli/commands/task.d.ts.map +1 -1
  165. package/dist/cli/commands/task.js +569 -346
  166. package/dist/cli/commands/task.js.map +1 -1
  167. package/dist/cli/commands/tasks.d.ts +26 -1
  168. package/dist/cli/commands/tasks.d.ts.map +1 -1
  169. package/dist/cli/commands/tasks.js +227 -122
  170. package/dist/cli/commands/tasks.js.map +1 -1
  171. package/dist/cli/commands/trait.d.ts +1 -1
  172. package/dist/cli/commands/trait.d.ts.map +1 -1
  173. package/dist/cli/commands/trait.js +166 -101
  174. package/dist/cli/commands/trait.js.map +1 -1
  175. package/dist/cli/commands/triage.d.ts +7 -0
  176. package/dist/cli/commands/triage.d.ts.map +1 -0
  177. package/dist/cli/commands/triage.js +569 -0
  178. package/dist/cli/commands/triage.js.map +1 -0
  179. package/dist/cli/commands/util.d.ts +7 -0
  180. package/dist/cli/commands/util.d.ts.map +1 -0
  181. package/dist/cli/commands/util.js +30 -0
  182. package/dist/cli/commands/util.js.map +1 -0
  183. package/dist/cli/commands/validate.d.ts +1 -1
  184. package/dist/cli/commands/validate.d.ts.map +1 -1
  185. package/dist/cli/commands/validate.js +264 -83
  186. package/dist/cli/commands/validate.js.map +1 -1
  187. package/dist/cli/commands/workflow.d.ts +16 -0
  188. package/dist/cli/commands/workflow.d.ts.map +1 -0
  189. package/dist/cli/commands/workflow.js +851 -0
  190. package/dist/cli/commands/workflow.js.map +1 -0
  191. package/dist/cli/exit-codes.d.ts +7 -0
  192. package/dist/cli/exit-codes.d.ts.map +1 -1
  193. package/dist/cli/exit-codes.js +26 -18
  194. package/dist/cli/exit-codes.js.map +1 -1
  195. package/dist/cli/help/content.d.ts.map +1 -1
  196. package/dist/cli/help/content.js +86 -71
  197. package/dist/cli/help/content.js.map +1 -1
  198. package/dist/cli/index.d.ts +1 -1
  199. package/dist/cli/index.d.ts.map +1 -1
  200. package/dist/cli/index.js +131 -19
  201. package/dist/cli/index.js.map +1 -1
  202. package/dist/cli/introspection.d.ts +6 -2
  203. package/dist/cli/introspection.d.ts.map +1 -1
  204. package/dist/cli/introspection.js +11 -8
  205. package/dist/cli/introspection.js.map +1 -1
  206. package/dist/cli/output.d.ts +64 -4
  207. package/dist/cli/output.d.ts.map +1 -1
  208. package/dist/cli/output.js +235 -85
  209. package/dist/cli/output.js.map +1 -1
  210. package/dist/cli/parse-utils.d.ts +21 -0
  211. package/dist/cli/parse-utils.d.ts.map +1 -0
  212. package/dist/cli/parse-utils.js +32 -0
  213. package/dist/cli/parse-utils.js.map +1 -0
  214. package/dist/cli/pid-utils.d.ts +72 -0
  215. package/dist/cli/pid-utils.d.ts.map +1 -0
  216. package/dist/cli/pid-utils.js +174 -0
  217. package/dist/cli/pid-utils.js.map +1 -0
  218. package/dist/cli/suggest.d.ts.map +1 -1
  219. package/dist/cli/suggest.js +1 -2
  220. package/dist/cli/suggest.js.map +1 -1
  221. package/dist/cli/validators.d.ts +43 -0
  222. package/dist/cli/validators.d.ts.map +1 -0
  223. package/dist/cli/validators.js +84 -0
  224. package/dist/cli/validators.js.map +1 -0
  225. package/dist/daemon/index.ts +52 -0
  226. package/dist/daemon/middleware/project-context.ts +126 -0
  227. package/dist/daemon/pid.ts +179 -0
  228. package/dist/daemon/project-context.ts +343 -0
  229. package/dist/daemon/routes/inbox.ts +164 -0
  230. package/dist/daemon/routes/items.ts +322 -0
  231. package/dist/daemon/routes/meta.ts +118 -0
  232. package/dist/daemon/routes/projects.ts +162 -0
  233. package/dist/daemon/routes/tasks.ts +327 -0
  234. package/dist/daemon/routes/triage.ts +468 -0
  235. package/dist/daemon/routes/validation.ts +248 -0
  236. package/dist/daemon/server.ts +408 -0
  237. package/dist/daemon/watcher.ts +195 -0
  238. package/dist/daemon/websocket/handler.ts +138 -0
  239. package/dist/daemon/websocket/heartbeat.ts +71 -0
  240. package/dist/daemon/websocket/pubsub.ts +125 -0
  241. package/dist/daemon/websocket/types.ts +66 -0
  242. package/dist/export/html.d.ts +19 -0
  243. package/dist/export/html.d.ts.map +1 -0
  244. package/dist/export/html.js +239 -0
  245. package/dist/export/html.js.map +1 -0
  246. package/dist/export/index.d.ts +10 -0
  247. package/dist/export/index.d.ts.map +1 -0
  248. package/dist/export/index.js +10 -0
  249. package/dist/export/index.js.map +1 -0
  250. package/dist/export/json.d.ts +24 -0
  251. package/dist/export/json.d.ts.map +1 -0
  252. package/dist/export/json.js +198 -0
  253. package/dist/export/json.js.map +1 -0
  254. package/dist/export/triage.d.ts +51 -0
  255. package/dist/export/triage.d.ts.map +1 -0
  256. package/dist/export/triage.js +83 -0
  257. package/dist/export/triage.js.map +1 -0
  258. package/dist/export/types.d.ts +122 -0
  259. package/dist/export/types.d.ts.map +1 -0
  260. package/dist/export/types.js +9 -0
  261. package/dist/export/types.js.map +1 -0
  262. package/dist/index.d.ts +2 -2
  263. package/dist/index.js +2 -2
  264. package/dist/lib/claude-plugin-registry.d.ts +66 -0
  265. package/dist/lib/claude-plugin-registry.d.ts.map +1 -0
  266. package/dist/lib/claude-plugin-registry.js +318 -0
  267. package/dist/lib/claude-plugin-registry.js.map +1 -0
  268. package/dist/merge/arrays.d.ts +87 -0
  269. package/dist/merge/arrays.d.ts.map +1 -0
  270. package/dist/merge/arrays.js +164 -0
  271. package/dist/merge/arrays.js.map +1 -0
  272. package/dist/merge/file-type.d.ts +32 -0
  273. package/dist/merge/file-type.d.ts.map +1 -0
  274. package/dist/merge/file-type.js +70 -0
  275. package/dist/merge/file-type.js.map +1 -0
  276. package/dist/merge/index.d.ts +14 -0
  277. package/dist/merge/index.d.ts.map +1 -0
  278. package/dist/merge/index.js +11 -0
  279. package/dist/merge/index.js.map +1 -0
  280. package/dist/merge/objects.d.ts +46 -0
  281. package/dist/merge/objects.d.ts.map +1 -0
  282. package/dist/merge/objects.js +193 -0
  283. package/dist/merge/objects.js.map +1 -0
  284. package/dist/merge/parse.d.ts +23 -0
  285. package/dist/merge/parse.d.ts.map +1 -0
  286. package/dist/merge/parse.js +78 -0
  287. package/dist/merge/parse.js.map +1 -0
  288. package/dist/merge/resolve.d.ts +66 -0
  289. package/dist/merge/resolve.d.ts.map +1 -0
  290. package/dist/merge/resolve.js +189 -0
  291. package/dist/merge/resolve.js.map +1 -0
  292. package/dist/merge/types.d.ts +82 -0
  293. package/dist/merge/types.d.ts.map +1 -0
  294. package/dist/merge/types.js +8 -0
  295. package/dist/merge/types.js.map +1 -0
  296. package/dist/parser/agent-data-sections.d.ts +53 -0
  297. package/dist/parser/agent-data-sections.d.ts.map +1 -0
  298. package/dist/parser/agent-data-sections.js +118 -0
  299. package/dist/parser/agent-data-sections.js.map +1 -0
  300. package/dist/parser/alignment.d.ts +4 -4
  301. package/dist/parser/alignment.d.ts.map +1 -1
  302. package/dist/parser/alignment.js +27 -22
  303. package/dist/parser/alignment.js.map +1 -1
  304. package/dist/parser/assess.d.ts +5 -5
  305. package/dist/parser/assess.d.ts.map +1 -1
  306. package/dist/parser/assess.js +36 -32
  307. package/dist/parser/assess.js.map +1 -1
  308. package/dist/parser/config.d.ts +351 -0
  309. package/dist/parser/config.d.ts.map +1 -0
  310. package/dist/parser/config.js +326 -0
  311. package/dist/parser/config.js.map +1 -0
  312. package/dist/parser/convention-validation.d.ts +1 -1
  313. package/dist/parser/convention-validation.d.ts.map +1 -1
  314. package/dist/parser/convention-validation.js +21 -16
  315. package/dist/parser/convention-validation.js.map +1 -1
  316. package/dist/parser/coverage-cache.d.ts +49 -0
  317. package/dist/parser/coverage-cache.d.ts.map +1 -0
  318. package/dist/parser/coverage-cache.js +123 -0
  319. package/dist/parser/coverage-cache.js.map +1 -0
  320. package/dist/parser/daemon-status.d.ts +37 -0
  321. package/dist/parser/daemon-status.d.ts.map +1 -0
  322. package/dist/parser/daemon-status.js +67 -0
  323. package/dist/parser/daemon-status.js.map +1 -0
  324. package/dist/parser/doctor.d.ts +107 -0
  325. package/dist/parser/doctor.d.ts.map +1 -0
  326. package/dist/parser/doctor.js +366 -0
  327. package/dist/parser/doctor.js.map +1 -0
  328. package/dist/parser/fix.d.ts +1 -1
  329. package/dist/parser/fix.d.ts.map +1 -1
  330. package/dist/parser/fix.js +31 -27
  331. package/dist/parser/fix.js.map +1 -1
  332. package/dist/parser/index.d.ts +16 -11
  333. package/dist/parser/index.d.ts.map +1 -1
  334. package/dist/parser/index.js +16 -11
  335. package/dist/parser/index.js.map +1 -1
  336. package/dist/parser/items.d.ts +8 -2
  337. package/dist/parser/items.d.ts.map +1 -1
  338. package/dist/parser/items.js +71 -35
  339. package/dist/parser/items.js.map +1 -1
  340. package/dist/parser/meta.d.ts +167 -9
  341. package/dist/parser/meta.d.ts.map +1 -1
  342. package/dist/parser/meta.js +379 -46
  343. package/dist/parser/meta.js.map +1 -1
  344. package/dist/parser/plan-document.d.ts +189 -0
  345. package/dist/parser/plan-document.d.ts.map +1 -0
  346. package/dist/parser/plan-document.js +340 -0
  347. package/dist/parser/plan-document.js.map +1 -0
  348. package/dist/parser/plans.d.ts +59 -0
  349. package/dist/parser/plans.d.ts.map +1 -0
  350. package/dist/parser/plans.js +239 -0
  351. package/dist/parser/plans.js.map +1 -0
  352. package/dist/parser/refs.d.ts +22 -9
  353. package/dist/parser/refs.d.ts.map +1 -1
  354. package/dist/parser/refs.js +102 -50
  355. package/dist/parser/refs.js.map +1 -1
  356. package/dist/parser/setup-status.d.ts +71 -0
  357. package/dist/parser/setup-status.d.ts.map +1 -0
  358. package/dist/parser/setup-status.js +269 -0
  359. package/dist/parser/setup-status.js.map +1 -0
  360. package/dist/parser/shadow.d.ts +150 -19
  361. package/dist/parser/shadow.d.ts.map +1 -1
  362. package/dist/parser/shadow.js +548 -187
  363. package/dist/parser/shadow.js.map +1 -1
  364. package/dist/parser/skill-render.d.ts +317 -0
  365. package/dist/parser/skill-render.d.ts.map +1 -0
  366. package/dist/parser/skill-render.js +943 -0
  367. package/dist/parser/skill-render.js.map +1 -0
  368. package/dist/parser/traits.d.ts +3 -3
  369. package/dist/parser/traits.d.ts.map +1 -1
  370. package/dist/parser/traits.js +2 -2
  371. package/dist/parser/traits.js.map +1 -1
  372. package/dist/parser/validate-skills.d.ts +32 -0
  373. package/dist/parser/validate-skills.d.ts.map +1 -0
  374. package/dist/parser/validate-skills.js +202 -0
  375. package/dist/parser/validate-skills.js.map +1 -0
  376. package/dist/parser/validate.d.ts +45 -3
  377. package/dist/parser/validate.d.ts.map +1 -1
  378. package/dist/parser/validate.js +622 -105
  379. package/dist/parser/validate.js.map +1 -1
  380. package/dist/parser/yaml.d.ts +83 -19
  381. package/dist/parser/yaml.d.ts.map +1 -1
  382. package/dist/parser/yaml.js +478 -173
  383. package/dist/parser/yaml.js.map +1 -1
  384. package/dist/ralph/cli-renderer.d.ts +8 -1
  385. package/dist/ralph/cli-renderer.d.ts.map +1 -1
  386. package/dist/ralph/cli-renderer.js +105 -34
  387. package/dist/ralph/cli-renderer.js.map +1 -1
  388. package/dist/ralph/events.d.ts +10 -10
  389. package/dist/ralph/events.d.ts.map +1 -1
  390. package/dist/ralph/events.js +277 -98
  391. package/dist/ralph/events.js.map +1 -1
  392. package/dist/ralph/index.d.ts +5 -2
  393. package/dist/ralph/index.d.ts.map +1 -1
  394. package/dist/ralph/index.js +9 -3
  395. package/dist/ralph/index.js.map +1 -1
  396. package/dist/ralph/loop-errors.d.ts +83 -0
  397. package/dist/ralph/loop-errors.d.ts.map +1 -0
  398. package/dist/ralph/loop-errors.js +150 -0
  399. package/dist/ralph/loop-errors.js.map +1 -0
  400. package/dist/ralph/subagent.d.ts +83 -0
  401. package/dist/ralph/subagent.d.ts.map +1 -0
  402. package/dist/ralph/subagent.js +174 -0
  403. package/dist/ralph/subagent.js.map +1 -0
  404. package/dist/ralph/wrap-up.d.ts +125 -0
  405. package/dist/ralph/wrap-up.d.ts.map +1 -0
  406. package/dist/ralph/wrap-up.js +270 -0
  407. package/dist/ralph/wrap-up.js.map +1 -0
  408. package/dist/schema/batch.d.ts +95 -0
  409. package/dist/schema/batch.d.ts.map +1 -0
  410. package/dist/schema/batch.js +24 -0
  411. package/dist/schema/batch.js.map +1 -0
  412. package/dist/schema/common.d.ts +2 -2
  413. package/dist/schema/common.d.ts.map +1 -1
  414. package/dist/schema/common.js +34 -31
  415. package/dist/schema/common.js.map +1 -1
  416. package/dist/schema/inbox.d.ts +12 -12
  417. package/dist/schema/inbox.js +4 -4
  418. package/dist/schema/inbox.js.map +1 -1
  419. package/dist/schema/index.d.ts +8 -5
  420. package/dist/schema/index.d.ts.map +1 -1
  421. package/dist/schema/index.js +8 -5
  422. package/dist/schema/index.js.map +1 -1
  423. package/dist/schema/meta.d.ts +1454 -27
  424. package/dist/schema/meta.d.ts.map +1 -1
  425. package/dist/schema/meta.js +198 -21
  426. package/dist/schema/meta.js.map +1 -1
  427. package/dist/schema/plan.d.ts +285 -0
  428. package/dist/schema/plan.d.ts.map +1 -0
  429. package/dist/schema/plan.js +81 -0
  430. package/dist/schema/plan.js.map +1 -0
  431. package/dist/schema/spec.d.ts +72 -33
  432. package/dist/schema/spec.d.ts.map +1 -1
  433. package/dist/schema/spec.js +22 -9
  434. package/dist/schema/spec.js.map +1 -1
  435. package/dist/schema/task.d.ts +172 -161
  436. package/dist/schema/task.d.ts.map +1 -1
  437. package/dist/schema/task.js +21 -12
  438. package/dist/schema/task.js.map +1 -1
  439. package/dist/schema/triage.d.ts +266 -0
  440. package/dist/schema/triage.d.ts.map +1 -0
  441. package/dist/schema/triage.js +134 -0
  442. package/dist/schema/triage.js.map +1 -0
  443. package/dist/sessions/index.d.ts +2 -2
  444. package/dist/sessions/index.d.ts.map +1 -1
  445. package/dist/sessions/index.js +3 -3
  446. package/dist/sessions/index.js.map +1 -1
  447. package/dist/sessions/store.d.ts +233 -1
  448. package/dist/sessions/store.d.ts.map +1 -1
  449. package/dist/sessions/store.js +628 -31
  450. package/dist/sessions/store.js.map +1 -1
  451. package/dist/sessions/types.d.ts +10 -10
  452. package/dist/sessions/types.d.ts.map +1 -1
  453. package/dist/sessions/types.js +10 -9
  454. package/dist/sessions/types.js.map +1 -1
  455. package/dist/strings/errors.d.ts +51 -0
  456. package/dist/strings/errors.d.ts.map +1 -1
  457. package/dist/strings/errors.js +136 -106
  458. package/dist/strings/errors.js.map +1 -1
  459. package/dist/strings/guidance.d.ts.map +1 -1
  460. package/dist/strings/guidance.js +16 -16
  461. package/dist/strings/guidance.js.map +1 -1
  462. package/dist/strings/index.d.ts +4 -4
  463. package/dist/strings/index.d.ts.map +1 -1
  464. package/dist/strings/index.js +4 -4
  465. package/dist/strings/index.js.map +1 -1
  466. package/dist/strings/labels.d.ts +4 -0
  467. package/dist/strings/labels.d.ts.map +1 -1
  468. package/dist/strings/labels.js +45 -41
  469. package/dist/strings/labels.js.map +1 -1
  470. package/dist/strings/validation.d.ts.map +1 -1
  471. package/dist/strings/validation.js +71 -71
  472. package/dist/strings/validation.js.map +1 -1
  473. package/dist/utils/commit.d.ts +1 -1
  474. package/dist/utils/commit.d.ts.map +1 -1
  475. package/dist/utils/commit.js +28 -26
  476. package/dist/utils/commit.js.map +1 -1
  477. package/dist/utils/git.d.ts +1 -1
  478. package/dist/utils/git.d.ts.map +1 -1
  479. package/dist/utils/git.js +40 -38
  480. package/dist/utils/git.js.map +1 -1
  481. package/dist/utils/grep.js +11 -11
  482. package/dist/utils/grep.js.map +1 -1
  483. package/dist/utils/index.d.ts +7 -7
  484. package/dist/utils/index.d.ts.map +1 -1
  485. package/dist/utils/index.js +4 -4
  486. package/dist/utils/index.js.map +1 -1
  487. package/dist/utils/time.d.ts.map +1 -1
  488. package/dist/utils/time.js +10 -10
  489. package/dist/utils/time.js.map +1 -1
  490. package/package.json +28 -5
  491. package/plugin/.claude-plugin/marketplace.json +17 -0
  492. package/plugin/.claude-plugin/plugin.json +5 -0
  493. package/plugin/plugins/kspec/skills/help/SKILL.md +42 -0
  494. package/plugin/plugins/kspec/skills/triage/SKILL.md +206 -0
  495. package/plugin/plugins/kspec/skills/triage/docs/automation.md +120 -0
  496. package/plugin/plugins/kspec/skills/triage/docs/inbox.md +144 -0
  497. package/plugin/plugins/kspec/skills/triage/docs/observations.md +85 -0
  498. package/templates/agents-sections/01-quick-start.md +22 -0
  499. package/templates/agents-sections/02-shadow-branch.md +34 -0
  500. package/templates/agents-sections/03-task-lifecycle.md +48 -0
  501. package/templates/agents-sections/04-pr-workflow.md +17 -0
  502. package/templates/agents-sections/05-commit-convention.md +27 -0
  503. package/templates/agents-sections/06-ralph-loop.md +45 -0
  504. package/templates/hooks/pre-commit +34 -0
  505. package/templates/skills/help/SKILL.md +37 -0
  506. package/templates/skills/manifest.yaml +15 -0
  507. package/templates/skills/triage/SKILL.md +199 -0
  508. package/templates/skills/triage/docs/automation.md +120 -0
  509. package/templates/skills/triage/docs/inbox.md +144 -0
  510. package/templates/skills/triage/docs/observations.md +85 -0
@@ -0,0 +1,491 @@
1
+ /**
2
+ * kspec serve commands - daemon server lifecycle management
3
+ * AC: @cli-serve-commands
4
+ */
5
+ import { spawn, execSync } from 'child_process';
6
+ import { existsSync, readdirSync, statSync } from 'fs';
7
+ import { join, dirname } from 'path';
8
+ import { fileURLToPath } from 'url';
9
+ import { error, info, output, success, warn, isJsonMode } from '../output.js';
10
+ import { EXIT_CODES } from '../exit-codes.js';
11
+ import { PidFileManager } from '../pid-utils.js';
12
+ import { loadProjectConfig } from '../../parser/config.js';
13
+ /**
14
+ * Check if Bun runtime is available.
15
+ * Daemon requires Bun to run TypeScript directly.
16
+ */
17
+ function isBunAvailable() {
18
+ try {
19
+ execSync('bun --version', { stdio: 'pipe' });
20
+ return true;
21
+ }
22
+ catch {
23
+ return false;
24
+ }
25
+ }
26
+ const __filename = fileURLToPath(import.meta.url);
27
+ const __dirname = dirname(__filename);
28
+ /**
29
+ * Check if daemon dist files are stale (source newer than dist)
30
+ * Returns true if rebuild is recommended
31
+ */
32
+ function checkDaemonStaleness() {
33
+ // __dirname is dist/cli/commands, go up 3 levels to package root, then into packages/daemon/src
34
+ const sourceDir = join(__dirname, '../../../packages/daemon/src');
35
+ // dist/daemon is 2 levels up from __dirname
36
+ const distDir = join(__dirname, '../../daemon');
37
+ if (!existsSync(sourceDir) || !existsSync(distDir))
38
+ return false;
39
+ try {
40
+ const getNewestMtime = (dir) => {
41
+ const files = readdirSync(dir, { withFileTypes: true });
42
+ let newest = 0;
43
+ for (const f of files) {
44
+ const fullPath = join(dir, f.name);
45
+ if (f.isDirectory()) {
46
+ newest = Math.max(newest, getNewestMtime(fullPath));
47
+ }
48
+ else if (f.name.endsWith('.ts')) {
49
+ newest = Math.max(newest, statSync(fullPath).mtimeMs);
50
+ }
51
+ }
52
+ return newest;
53
+ };
54
+ const newestSource = getNewestMtime(sourceDir);
55
+ const newestDist = getNewestMtime(distDir);
56
+ return newestSource > newestDist;
57
+ }
58
+ catch {
59
+ return false; // Don't warn if check fails
60
+ }
61
+ }
62
+ /**
63
+ * Register serve commands
64
+ */
65
+ export function registerServeCommands(program) {
66
+ const serve = program
67
+ .command('serve')
68
+ .description('Manage the kspec daemon server');
69
+ // AC: @cli-serve-commands ac-1, ac-2, ac-3
70
+ // AC: @config-daemon ac-1, ac-2 — port from config, CLI flag overrides
71
+ serve
72
+ .command('start', { isDefault: true })
73
+ .description('Start the daemon server')
74
+ .option('-d, --daemon', 'Run in background (detached mode)')
75
+ .option('-p, --port <port>', 'Server port (uses config daemon.port if not specified)')
76
+ .option('--kspec-dir <dir>', 'Path to .kspec directory', join(process.cwd(), '.kspec'))
77
+ .option('--json', 'Output as JSON')
78
+ .action(async (opts) => {
79
+ try {
80
+ await startServer(opts);
81
+ }
82
+ catch (err) {
83
+ if (isJsonMode()) {
84
+ output({ error: err instanceof Error ? err.message : String(err) });
85
+ }
86
+ else {
87
+ error(`Failed to start server: ${err instanceof Error ? err.message : String(err)}`);
88
+ }
89
+ process.exit(EXIT_CODES.ERROR);
90
+ }
91
+ });
92
+ // AC: @cli-serve-commands ac-4, ac-5
93
+ serve
94
+ .command('stop')
95
+ .description('Stop the daemon server')
96
+ .option('--kspec-dir <dir>', 'Path to .kspec directory', join(process.cwd(), '.kspec'))
97
+ .option('--json', 'Output as JSON')
98
+ .action(async (opts) => {
99
+ try {
100
+ await stopServer(opts);
101
+ }
102
+ catch (err) {
103
+ if (isJsonMode()) {
104
+ output({ error: err instanceof Error ? err.message : String(err) });
105
+ }
106
+ else {
107
+ error(`Failed to stop server: ${err instanceof Error ? err.message : String(err)}`);
108
+ }
109
+ process.exit(EXIT_CODES.ERROR);
110
+ }
111
+ });
112
+ // AC: @cli-serve-commands ac-6
113
+ serve
114
+ .command('status')
115
+ .description('Check daemon server status')
116
+ .option('--kspec-dir <dir>', 'Path to .kspec directory', join(process.cwd(), '.kspec'))
117
+ .option('--json', 'Output as JSON')
118
+ .action(async (opts) => {
119
+ try {
120
+ await statusServer(opts);
121
+ }
122
+ catch (err) {
123
+ if (isJsonMode()) {
124
+ output({ error: err instanceof Error ? err.message : String(err) });
125
+ }
126
+ else {
127
+ error(`Failed to check status: ${err instanceof Error ? err.message : String(err)}`);
128
+ }
129
+ process.exit(EXIT_CODES.ERROR);
130
+ }
131
+ });
132
+ // AC: @cli-serve-commands ac-7
133
+ serve
134
+ .command('restart')
135
+ .description('Restart the daemon server')
136
+ .option('--kspec-dir <dir>', 'Path to .kspec directory', join(process.cwd(), '.kspec'))
137
+ .option('--json', 'Output as JSON')
138
+ .action(async (opts) => {
139
+ try {
140
+ await restartServer(opts);
141
+ }
142
+ catch (err) {
143
+ if (isJsonMode()) {
144
+ output({ error: err instanceof Error ? err.message : String(err) });
145
+ }
146
+ else {
147
+ error(`Failed to restart server: ${err instanceof Error ? err.message : String(err)}`);
148
+ }
149
+ process.exit(EXIT_CODES.ERROR);
150
+ }
151
+ });
152
+ }
153
+ /**
154
+ * Start the daemon server
155
+ * AC: @cli-serve-commands ac-1 (foreground), ac-2 (daemon), ac-3 (port), ac-10 (port error)
156
+ * AC: @config-daemon ac-1 — port from config, ac-2 — CLI flag overrides config
157
+ */
158
+ async function startServer(opts) {
159
+ const jsonMode = isJsonMode();
160
+ // AC: @config-daemon ac-1, ac-2 — load config for default port, CLI flag overrides
161
+ const { config } = await loadProjectConfig();
162
+ const configPort = config.daemon.port;
163
+ // AC: @config-daemon ac-2 — CLI flag takes precedence over config
164
+ const port = opts.port ? parseInt(opts.port, 10) : configPort;
165
+ // AC: @cli-serve-commands ac-10
166
+ if (isNaN(port) || port < 1 || port > 65535) {
167
+ if (jsonMode) {
168
+ output({
169
+ error: 'Invalid port number. Must be between 1 and 65535.',
170
+ hint: 'Try: kspec serve --port <PORT>',
171
+ });
172
+ }
173
+ else {
174
+ error('Invalid port number. Must be between 1 and 65535.');
175
+ error('Try: kspec serve --port <PORT>');
176
+ }
177
+ process.exit(EXIT_CODES.VALIDATION_FAILED);
178
+ }
179
+ const pidManager = new PidFileManager();
180
+ // Check if already running
181
+ if (pidManager.isDaemonRunning()) {
182
+ const pid = pidManager.readPid();
183
+ const existingPort = pidManager.readPort();
184
+ if (isJsonMode()) {
185
+ output({ running: true, pid, port: existingPort, message: 'Daemon already running' });
186
+ }
187
+ else {
188
+ warn(`Daemon already running on port ${existingPort}`);
189
+ }
190
+ process.exit(EXIT_CODES.SUCCESS);
191
+ }
192
+ // Get path to daemon entry point
193
+ // Daemon source is bundled at dist/daemon/index.ts (relative to package root)
194
+ // __dirname is dist/cli/commands, so go up 2 levels to dist/, then into daemon/
195
+ // Note: Daemon is TypeScript source - requires Bun runtime
196
+ const daemonBinary = join(__dirname, '../../daemon/index.ts');
197
+ if (!existsSync(daemonBinary)) {
198
+ if (isJsonMode()) {
199
+ output({ error: `Daemon binary not found at ${daemonBinary}`, hint: 'Ensure the kspec package is properly installed' });
200
+ }
201
+ else {
202
+ error(`Daemon binary not found at: ${daemonBinary}`);
203
+ error('Ensure the kspec package is properly installed');
204
+ }
205
+ process.exit(EXIT_CODES.ERROR);
206
+ }
207
+ // Daemon requires Bun to run TypeScript directly
208
+ if (!isBunAvailable()) {
209
+ if (isJsonMode()) {
210
+ output({ error: 'Bun runtime not found', hint: 'Install Bun: https://bun.sh/docs/installation' });
211
+ }
212
+ else {
213
+ error('Bun runtime is required for the daemon server');
214
+ error('Install Bun: https://bun.sh/docs/installation');
215
+ }
216
+ process.exit(EXIT_CODES.ERROR);
217
+ }
218
+ // Check for stale daemon build (dev experience improvement)
219
+ if (checkDaemonStaleness() && !jsonMode) {
220
+ warn('Warning: dist/daemon/ may be stale (source files are newer).');
221
+ warn(' Run "npm run build:daemon" to update.');
222
+ }
223
+ // AC: @cli-serve-commands ac-2 - background mode
224
+ if (opts.daemon) {
225
+ const runtime = 'bun';
226
+ // Spawn detached process
227
+ // Set BUN_ENV=production to prevent Bun dev mode HTML transformation
228
+ // which can cause asset hash mismatches in the web UI
229
+ const child = spawn(runtime, [daemonBinary, '--port', String(port), '--kspec-dir', opts.kspecDir], {
230
+ detached: true,
231
+ stdio: 'ignore', // TODO: redirect to log file when logging implemented
232
+ cwd: process.cwd(),
233
+ env: { ...process.env, BUN_ENV: 'production' },
234
+ });
235
+ // Detach from parent
236
+ child.unref();
237
+ // Poll for PID file with timeout (max 5 seconds)
238
+ const maxWait = 5000;
239
+ const startTime = Date.now();
240
+ let pid = null;
241
+ while (Date.now() - startTime < maxWait) {
242
+ pid = pidManager.readPid();
243
+ if (pid && pidManager.isDaemonRunning()) {
244
+ break;
245
+ }
246
+ await new Promise(resolve => setTimeout(resolve, 100));
247
+ }
248
+ if (pid && pidManager.isDaemonRunning()) {
249
+ if (isJsonMode()) {
250
+ output({ running: true, pid, port });
251
+ }
252
+ else {
253
+ success(`Daemon started with PID ${pid} on port ${port}`);
254
+ output({ running: true, pid, port });
255
+ }
256
+ }
257
+ else {
258
+ if (isJsonMode()) {
259
+ output({ error: 'Daemon failed to start within 5 seconds' });
260
+ }
261
+ else {
262
+ error('Daemon failed to start within 5 seconds');
263
+ }
264
+ process.exit(EXIT_CODES.ERROR);
265
+ }
266
+ }
267
+ else {
268
+ // AC: @cli-serve-commands ac-1 - foreground mode
269
+ if (!isJsonMode()) {
270
+ info(`Starting server in foreground on port ${port}...`);
271
+ info('Press Ctrl+C to stop');
272
+ }
273
+ const runtime = 'bun';
274
+ // Set BUN_ENV=production to prevent Bun dev mode HTML transformation
275
+ const child = spawn(runtime, [daemonBinary, '--port', String(port), '--kspec-dir', opts.kspecDir], {
276
+ stdio: 'inherit',
277
+ cwd: process.cwd(),
278
+ env: { ...process.env, BUN_ENV: 'production' },
279
+ });
280
+ // Handle Ctrl+C - forward SIGTERM to child for graceful shutdown
281
+ process.on('SIGINT', () => {
282
+ if (!isJsonMode()) {
283
+ info('\nStopping server...');
284
+ }
285
+ child.kill('SIGTERM');
286
+ // Wait for graceful shutdown (max 5 seconds)
287
+ const shutdownTimeout = setTimeout(() => {
288
+ child.kill('SIGKILL'); // Force kill if not stopped
289
+ }, 5000);
290
+ child.on('exit', () => {
291
+ clearTimeout(shutdownTimeout);
292
+ });
293
+ });
294
+ // Wait for process to exit
295
+ child.on('exit', (code) => {
296
+ process.exit(code ?? 0);
297
+ });
298
+ }
299
+ }
300
+ /**
301
+ * Stop the daemon server
302
+ * AC: @cli-serve-commands ac-4 (stop), ac-5 (idempotent)
303
+ */
304
+ async function stopServer(opts) {
305
+ if (isJsonMode()) {
306
+ }
307
+ const pidManager = new PidFileManager();
308
+ if (!pidManager.isDaemonRunning()) {
309
+ // AC: @cli-serve-commands ac-5
310
+ if (isJsonMode()) {
311
+ output({ running: false });
312
+ }
313
+ else {
314
+ info('Daemon not running');
315
+ output({ running: false });
316
+ }
317
+ process.exit(EXIT_CODES.SUCCESS);
318
+ }
319
+ const pid = pidManager.readPid();
320
+ if (!pid) {
321
+ if (isJsonMode()) {
322
+ output({ error: 'Failed to read PID file' });
323
+ }
324
+ else {
325
+ error('Failed to read PID file');
326
+ }
327
+ process.exit(EXIT_CODES.ERROR);
328
+ }
329
+ // AC: @cli-serve-commands ac-4
330
+ if (!isJsonMode()) {
331
+ info(`Stopping daemon (PID ${pid})...`);
332
+ }
333
+ try {
334
+ // Send SIGTERM
335
+ process.kill(pid, 'SIGTERM');
336
+ // Wait for clean shutdown (max 5 seconds)
337
+ const maxWait = 5000;
338
+ const startTime = Date.now();
339
+ while (Date.now() - startTime < maxWait) {
340
+ if (!pidManager.isDaemonRunning()) {
341
+ break;
342
+ }
343
+ await new Promise(resolve => setTimeout(resolve, 100));
344
+ }
345
+ if (pidManager.isDaemonRunning()) {
346
+ if (!isJsonMode()) {
347
+ warn(`Daemon did not stop gracefully, forcing...`);
348
+ }
349
+ process.kill(pid, 'SIGKILL');
350
+ await new Promise(resolve => setTimeout(resolve, 500));
351
+ }
352
+ if (isJsonMode()) {
353
+ output({ stopped: true, pid });
354
+ }
355
+ else {
356
+ success('Daemon stopped');
357
+ output({ stopped: true, pid });
358
+ }
359
+ }
360
+ catch (err) {
361
+ if (isJsonMode()) {
362
+ output({ error: err instanceof Error ? err.message : String(err) });
363
+ }
364
+ else {
365
+ error(`Failed to stop daemon: ${err instanceof Error ? err.message : String(err)}`);
366
+ }
367
+ process.exit(EXIT_CODES.ERROR);
368
+ }
369
+ }
370
+ /**
371
+ * Check daemon server status
372
+ * AC: @cli-serve-commands ac-6, @multi-directory-daemon ac-12
373
+ */
374
+ async function statusServer(opts) {
375
+ if (isJsonMode()) {
376
+ }
377
+ const pidManager = new PidFileManager();
378
+ const running = pidManager.isDaemonRunning();
379
+ const pid = pidManager.readPid();
380
+ // Read port from global config (AC: @multi-directory-daemon ac-13)
381
+ let port = null;
382
+ if (running) {
383
+ try {
384
+ port = pidManager.readPort();
385
+ }
386
+ catch {
387
+ // Port file might not exist or be invalid
388
+ port = null;
389
+ }
390
+ }
391
+ // AC: @multi-directory-daemon ac-12 - Fetch list of registered projects and uptime
392
+ let projects = [];
393
+ let uptime = null;
394
+ if (running && port) {
395
+ try {
396
+ const response = await fetch(`http://localhost:${port}/api/projects`);
397
+ if (response.ok) {
398
+ const data = await response.json();
399
+ projects = data.projects || [];
400
+ }
401
+ }
402
+ catch {
403
+ // If daemon is not responding, continue without projects list
404
+ // This can happen if daemon is still starting up or network issues
405
+ }
406
+ // Fetch uptime from health endpoint
407
+ try {
408
+ const healthResponse = await fetch(`http://localhost:${port}/api/health`);
409
+ if (healthResponse.ok) {
410
+ const healthData = await healthResponse.json();
411
+ uptime = healthData.uptime;
412
+ }
413
+ }
414
+ catch {
415
+ // If health endpoint fails, continue without uptime
416
+ }
417
+ }
418
+ const status = {
419
+ running,
420
+ pid: pid ?? null,
421
+ port,
422
+ uptime,
423
+ projects,
424
+ };
425
+ if (isJsonMode()) {
426
+ output(status);
427
+ }
428
+ else {
429
+ if (running) {
430
+ output(`Daemon running (PID: ${pid})`);
431
+ if (port) {
432
+ output(` Port: ${port}`);
433
+ }
434
+ // AC: @multi-directory-daemon ac-12 - Show uptime
435
+ if (uptime !== null) {
436
+ const hours = Math.floor(uptime / 3600);
437
+ const minutes = Math.floor((uptime % 3600) / 60);
438
+ const seconds = Math.floor(uptime % 60);
439
+ if (hours > 0) {
440
+ output(` Uptime: ${hours}h ${minutes}m ${seconds}s`);
441
+ }
442
+ else if (minutes > 0) {
443
+ output(` Uptime: ${minutes}m ${seconds}s`);
444
+ }
445
+ else {
446
+ output(` Uptime: ${seconds}s`);
447
+ }
448
+ }
449
+ // AC: @multi-directory-daemon ac-12 - Show registered projects
450
+ if (projects.length > 0) {
451
+ output(`\nRegistered projects (${projects.length}):`);
452
+ for (const project of projects) {
453
+ output(` ${project.path} (watcher: ${project.watcherStatus})`);
454
+ }
455
+ }
456
+ else {
457
+ output(`\nNo projects registered`);
458
+ }
459
+ }
460
+ else {
461
+ output('Daemon not running');
462
+ }
463
+ }
464
+ }
465
+ /**
466
+ * Restart the daemon server
467
+ * AC: @cli-serve-commands ac-7
468
+ */
469
+ async function restartServer(opts) {
470
+ const pidManager = new PidFileManager();
471
+ // AC: @cli-serve-commands ac-7 - preserve port across restarts
472
+ // Try to read port from existing daemon, otherwise startServer will use config default
473
+ let port;
474
+ try {
475
+ port = pidManager.readPort().toString();
476
+ }
477
+ catch {
478
+ // Port file doesn't exist or is invalid, let startServer use config
479
+ }
480
+ if (pidManager.isDaemonRunning()) {
481
+ if (!isJsonMode()) {
482
+ info('Stopping daemon...');
483
+ }
484
+ await stopServer(opts);
485
+ }
486
+ if (!isJsonMode()) {
487
+ info('Starting daemon...');
488
+ }
489
+ await startServer({ daemon: true, port, kspecDir: opts.kspecDir });
490
+ }
491
+ //# sourceMappingURL=serve.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serve.js","sourceRoot":"","sources":["../../../src/cli/commands/serve.ts"],"names":[],"mappings":"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"}
@@ -3,10 +3,10 @@
3
3
  *
4
4
  * Provides context for starting/resuming work sessions.
5
5
  */
6
- import { Command } from 'commander';
7
- import { type KspecContext } from '../../parser/index.js';
8
- import type { SessionContext as StoredSessionContext } from '../../schema/index.js';
9
- import { type GitWorkingTree } from '../../utils/index.js';
6
+ import type { Command } from "commander";
7
+ import { type KspecContext } from "../../parser/index.js";
8
+ import type { SessionContext as StoredSessionContext } from "../../schema/index.js";
9
+ import { type GitWorkingTree } from "../../utils/index.js";
10
10
  export interface CheckpointResult {
11
11
  /** Whether session can end cleanly */
12
12
  ok: boolean;
@@ -18,7 +18,7 @@ export interface CheckpointResult {
18
18
  instructions: string[];
19
19
  }
20
20
  export interface CheckpointIssue {
21
- type: 'uncommitted_changes' | 'in_progress_task' | 'incomplete_todo';
21
+ type: "uncommitted_changes" | "in_progress_task" | "incomplete_todo";
22
22
  description: string;
23
23
  details?: Record<string, unknown>;
24
24
  }
@@ -66,6 +66,7 @@ export interface ActiveTaskSummary {
66
66
  export interface NoteSummary {
67
67
  task_ref: string;
68
68
  task_title: string;
69
+ task_status: "in_progress" | "pending_review" | "needs_work" | "completed";
69
70
  note_ulid: string;
70
71
  created_at: string;
71
72
  author: string | null;
@@ -97,7 +98,7 @@ export interface CompletedTaskSummary {
97
98
  title: string;
98
99
  completed_at: string;
99
100
  closed_reason: string | null;
100
- origin?: 'manual' | 'derived' | 'observation_promotion';
101
+ origin?: "manual" | "derived" | "observation_promotion";
101
102
  }
102
103
  export interface CommitSummary {
103
104
  hash: string;
@@ -109,6 +110,7 @@ export interface CommitSummary {
109
110
  export interface SessionStats {
110
111
  total_tasks: number;
111
112
  in_progress: number;
113
+ needs_work: number;
112
114
  pending_review: number;
113
115
  ready: number;
114
116
  blocked: number;
@@ -134,6 +136,23 @@ export interface SessionOptions {
134
136
  * Gather session context data
135
137
  */
136
138
  export declare function gatherSessionContext(ctx: KspecContext, options: SessionOptions): Promise<SessionContext>;
139
+ /**
140
+ * Stats for tasks completed/started within a time window.
141
+ * Used by ralph to track task completions per iteration.
142
+ */
143
+ export interface IterationStats {
144
+ /** Number of tasks completed since the given time */
145
+ tasks_completed: number;
146
+ /** Number of tasks started since the given time */
147
+ tasks_started: number;
148
+ /** References of completed tasks */
149
+ completed_refs: string[];
150
+ }
151
+ /**
152
+ * Get iteration stats - tasks completed/started since a given time.
153
+ * AC: @ralph-task-limit ac-detection
154
+ */
155
+ export declare function getIterationStats(ctx: KspecContext, since: Date): Promise<IterationStats>;
137
156
  export interface CheckpointOptions {
138
157
  force?: boolean;
139
158
  /** Set when stop hook is already active (retry after previous block) */
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/session.ts"],"names":[],"mappings":"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"}