@cluesmith/codev 2.0.0-rc.6 → 2.0.0-rc.60

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 (374) hide show
  1. package/bin/af.js +2 -2
  2. package/bin/consult.js +1 -1
  3. package/bin/porch.js +6 -35
  4. package/dashboard/dist/assets/index-CXloFYpB.css +32 -0
  5. package/dashboard/dist/assets/index-Ca2fjOJf.js +131 -0
  6. package/dashboard/dist/assets/index-Ca2fjOJf.js.map +1 -0
  7. package/dashboard/dist/index.html +14 -0
  8. package/dist/agent-farm/cli.d.ts.map +1 -1
  9. package/dist/agent-farm/cli.js +94 -65
  10. package/dist/agent-farm/cli.js.map +1 -1
  11. package/dist/agent-farm/commands/architect.d.ts.map +1 -1
  12. package/dist/agent-farm/commands/architect.js +13 -6
  13. package/dist/agent-farm/commands/architect.js.map +1 -1
  14. package/dist/agent-farm/commands/attach.d.ts +13 -0
  15. package/dist/agent-farm/commands/attach.d.ts.map +1 -0
  16. package/dist/agent-farm/commands/attach.js +202 -0
  17. package/dist/agent-farm/commands/attach.js.map +1 -0
  18. package/dist/agent-farm/commands/cleanup.d.ts.map +1 -1
  19. package/dist/agent-farm/commands/cleanup.js +30 -3
  20. package/dist/agent-farm/commands/cleanup.js.map +1 -1
  21. package/dist/agent-farm/commands/consult.js +1 -1
  22. package/dist/agent-farm/commands/consult.js.map +1 -1
  23. package/dist/agent-farm/commands/index.d.ts +2 -2
  24. package/dist/agent-farm/commands/index.d.ts.map +1 -1
  25. package/dist/agent-farm/commands/index.js +2 -2
  26. package/dist/agent-farm/commands/index.js.map +1 -1
  27. package/dist/agent-farm/commands/open.d.ts +4 -2
  28. package/dist/agent-farm/commands/open.d.ts.map +1 -1
  29. package/dist/agent-farm/commands/open.js +37 -70
  30. package/dist/agent-farm/commands/open.js.map +1 -1
  31. package/dist/agent-farm/commands/send.d.ts.map +1 -1
  32. package/dist/agent-farm/commands/send.js +55 -17
  33. package/dist/agent-farm/commands/send.js.map +1 -1
  34. package/dist/agent-farm/commands/{util.d.ts → shell.d.ts} +5 -5
  35. package/dist/agent-farm/commands/shell.d.ts.map +1 -0
  36. package/dist/agent-farm/commands/{util.js → shell.js} +23 -36
  37. package/dist/agent-farm/commands/shell.js.map +1 -0
  38. package/dist/agent-farm/commands/spawn.d.ts.map +1 -1
  39. package/dist/agent-farm/commands/spawn.js +503 -226
  40. package/dist/agent-farm/commands/spawn.js.map +1 -1
  41. package/dist/agent-farm/commands/start.d.ts +3 -0
  42. package/dist/agent-farm/commands/start.d.ts.map +1 -1
  43. package/dist/agent-farm/commands/start.js +55 -265
  44. package/dist/agent-farm/commands/start.js.map +1 -1
  45. package/dist/agent-farm/commands/status.d.ts +2 -0
  46. package/dist/agent-farm/commands/status.d.ts.map +1 -1
  47. package/dist/agent-farm/commands/status.js +61 -3
  48. package/dist/agent-farm/commands/status.js.map +1 -1
  49. package/dist/agent-farm/commands/stop.d.ts +6 -0
  50. package/dist/agent-farm/commands/stop.d.ts.map +1 -1
  51. package/dist/agent-farm/commands/stop.js +116 -12
  52. package/dist/agent-farm/commands/stop.js.map +1 -1
  53. package/dist/agent-farm/commands/tower.d.ts +9 -0
  54. package/dist/agent-farm/commands/tower.d.ts.map +1 -1
  55. package/dist/agent-farm/commands/tower.js +59 -19
  56. package/dist/agent-farm/commands/tower.js.map +1 -1
  57. package/dist/agent-farm/db/index.d.ts.map +1 -1
  58. package/dist/agent-farm/db/index.js +124 -0
  59. package/dist/agent-farm/db/index.js.map +1 -1
  60. package/dist/agent-farm/db/schema.d.ts +2 -2
  61. package/dist/agent-farm/db/schema.d.ts.map +1 -1
  62. package/dist/agent-farm/db/schema.js +26 -5
  63. package/dist/agent-farm/db/schema.js.map +1 -1
  64. package/dist/agent-farm/db/types.d.ts +3 -0
  65. package/dist/agent-farm/db/types.d.ts.map +1 -1
  66. package/dist/agent-farm/db/types.js +3 -0
  67. package/dist/agent-farm/db/types.js.map +1 -1
  68. package/dist/agent-farm/hq-connector.d.ts +2 -6
  69. package/dist/agent-farm/hq-connector.d.ts.map +1 -1
  70. package/dist/agent-farm/hq-connector.js +2 -17
  71. package/dist/agent-farm/hq-connector.js.map +1 -1
  72. package/dist/agent-farm/lib/tower-client.d.ts +157 -0
  73. package/dist/agent-farm/lib/tower-client.d.ts.map +1 -0
  74. package/dist/agent-farm/lib/tower-client.js +223 -0
  75. package/dist/agent-farm/lib/tower-client.js.map +1 -0
  76. package/dist/agent-farm/servers/tower-server.js +2137 -112
  77. package/dist/agent-farm/servers/tower-server.js.map +1 -1
  78. package/dist/agent-farm/state.d.ts +4 -10
  79. package/dist/agent-farm/state.d.ts.map +1 -1
  80. package/dist/agent-farm/state.js +30 -31
  81. package/dist/agent-farm/state.js.map +1 -1
  82. package/dist/agent-farm/types.d.ts +48 -1
  83. package/dist/agent-farm/types.d.ts.map +1 -1
  84. package/dist/agent-farm/utils/config.d.ts.map +1 -1
  85. package/dist/agent-farm/utils/config.js +13 -14
  86. package/dist/agent-farm/utils/config.js.map +1 -1
  87. package/dist/agent-farm/utils/deps.d.ts.map +1 -1
  88. package/dist/agent-farm/utils/deps.js +0 -16
  89. package/dist/agent-farm/utils/deps.js.map +1 -1
  90. package/dist/agent-farm/utils/notifications.d.ts +30 -0
  91. package/dist/agent-farm/utils/notifications.d.ts.map +1 -0
  92. package/dist/agent-farm/utils/notifications.js +121 -0
  93. package/dist/agent-farm/utils/notifications.js.map +1 -0
  94. package/dist/agent-farm/utils/port-registry.d.ts +0 -1
  95. package/dist/agent-farm/utils/port-registry.d.ts.map +1 -1
  96. package/dist/agent-farm/utils/port-registry.js +1 -1
  97. package/dist/agent-farm/utils/port-registry.js.map +1 -1
  98. package/dist/agent-farm/utils/server-utils.d.ts +4 -4
  99. package/dist/agent-farm/utils/server-utils.d.ts.map +1 -1
  100. package/dist/agent-farm/utils/server-utils.js +4 -15
  101. package/dist/agent-farm/utils/server-utils.js.map +1 -1
  102. package/dist/agent-farm/utils/shell.d.ts +9 -22
  103. package/dist/agent-farm/utils/shell.d.ts.map +1 -1
  104. package/dist/agent-farm/utils/shell.js +34 -34
  105. package/dist/agent-farm/utils/shell.js.map +1 -1
  106. package/dist/agent-farm/utils/terminal-ports.d.ts +1 -1
  107. package/dist/agent-farm/utils/terminal-ports.js +1 -1
  108. package/dist/cli.d.ts.map +1 -1
  109. package/dist/cli.js +7 -54
  110. package/dist/cli.js.map +1 -1
  111. package/dist/commands/adopt.d.ts.map +1 -1
  112. package/dist/commands/adopt.js +49 -4
  113. package/dist/commands/adopt.js.map +1 -1
  114. package/dist/commands/consult/index.d.ts +1 -0
  115. package/dist/commands/consult/index.d.ts.map +1 -1
  116. package/dist/commands/consult/index.js +85 -6
  117. package/dist/commands/consult/index.js.map +1 -1
  118. package/dist/commands/doctor.d.ts.map +1 -1
  119. package/dist/commands/doctor.js +0 -15
  120. package/dist/commands/doctor.js.map +1 -1
  121. package/dist/commands/init.d.ts.map +1 -1
  122. package/dist/commands/init.js +41 -2
  123. package/dist/commands/init.js.map +1 -1
  124. package/dist/commands/porch/build-counter.d.ts +5 -0
  125. package/dist/commands/porch/build-counter.d.ts.map +1 -0
  126. package/dist/commands/porch/build-counter.js +5 -0
  127. package/dist/commands/porch/build-counter.js.map +1 -0
  128. package/dist/commands/porch/checks.d.ts +17 -29
  129. package/dist/commands/porch/checks.d.ts.map +1 -1
  130. package/dist/commands/porch/checks.js +96 -144
  131. package/dist/commands/porch/checks.js.map +1 -1
  132. package/dist/commands/porch/index.d.ts +21 -43
  133. package/dist/commands/porch/index.d.ts.map +1 -1
  134. package/dist/commands/porch/index.js +418 -1123
  135. package/dist/commands/porch/index.js.map +1 -1
  136. package/dist/commands/porch/next.d.ts +22 -0
  137. package/dist/commands/porch/next.d.ts.map +1 -0
  138. package/dist/commands/porch/next.js +479 -0
  139. package/dist/commands/porch/next.js.map +1 -0
  140. package/dist/commands/porch/plan.d.ts +70 -0
  141. package/dist/commands/porch/plan.d.ts.map +1 -0
  142. package/dist/commands/porch/plan.js +190 -0
  143. package/dist/commands/porch/plan.js.map +1 -0
  144. package/dist/commands/porch/prompts.d.ts +19 -0
  145. package/dist/commands/porch/prompts.d.ts.map +1 -0
  146. package/dist/commands/porch/prompts.js +255 -0
  147. package/dist/commands/porch/prompts.js.map +1 -0
  148. package/dist/commands/porch/protocol.d.ts +59 -0
  149. package/dist/commands/porch/protocol.d.ts.map +1 -0
  150. package/dist/commands/porch/protocol.js +294 -0
  151. package/dist/commands/porch/protocol.js.map +1 -0
  152. package/dist/commands/porch/state.d.ts +23 -112
  153. package/dist/commands/porch/state.d.ts.map +1 -1
  154. package/dist/commands/porch/state.js +81 -699
  155. package/dist/commands/porch/state.js.map +1 -1
  156. package/dist/commands/porch/types.d.ts +99 -164
  157. package/dist/commands/porch/types.d.ts.map +1 -1
  158. package/dist/commands/porch/types.js +2 -1
  159. package/dist/commands/porch/types.js.map +1 -1
  160. package/dist/commands/porch/verdict.d.ts +31 -0
  161. package/dist/commands/porch/verdict.d.ts.map +1 -0
  162. package/dist/commands/porch/verdict.js +59 -0
  163. package/dist/commands/porch/verdict.js.map +1 -0
  164. package/dist/commands/update.d.ts.map +1 -1
  165. package/dist/commands/update.js +31 -0
  166. package/dist/commands/update.js.map +1 -1
  167. package/dist/lib/scaffold.d.ts +37 -0
  168. package/dist/lib/scaffold.d.ts.map +1 -1
  169. package/dist/lib/scaffold.js +114 -0
  170. package/dist/lib/scaffold.js.map +1 -1
  171. package/dist/terminal/index.d.ts +8 -0
  172. package/dist/terminal/index.d.ts.map +1 -0
  173. package/dist/terminal/index.js +5 -0
  174. package/dist/terminal/index.js.map +1 -0
  175. package/dist/terminal/pty-manager.d.ts +60 -0
  176. package/dist/terminal/pty-manager.d.ts.map +1 -0
  177. package/dist/terminal/pty-manager.js +334 -0
  178. package/dist/terminal/pty-manager.js.map +1 -0
  179. package/dist/terminal/pty-session.d.ts +79 -0
  180. package/dist/terminal/pty-session.d.ts.map +1 -0
  181. package/dist/terminal/pty-session.js +215 -0
  182. package/dist/terminal/pty-session.js.map +1 -0
  183. package/dist/terminal/ring-buffer.d.ts +27 -0
  184. package/dist/terminal/ring-buffer.d.ts.map +1 -0
  185. package/dist/terminal/ring-buffer.js +74 -0
  186. package/dist/terminal/ring-buffer.js.map +1 -0
  187. package/dist/terminal/ws-protocol.d.ts +27 -0
  188. package/dist/terminal/ws-protocol.d.ts.map +1 -0
  189. package/dist/terminal/ws-protocol.js +44 -0
  190. package/dist/terminal/ws-protocol.js.map +1 -0
  191. package/package.json +18 -5
  192. package/skeleton/.claude/skills/af/SKILL.md +74 -0
  193. package/skeleton/.claude/skills/codev/SKILL.md +41 -0
  194. package/skeleton/.claude/skills/consult/SKILL.md +81 -0
  195. package/skeleton/.claude/skills/generate-image/SKILL.md +56 -0
  196. package/skeleton/DEPENDENCIES.md +3 -29
  197. package/skeleton/builders.md +1 -1
  198. package/skeleton/porch/prompts/defend.md +1 -1
  199. package/skeleton/porch/prompts/evaluate.md +2 -2
  200. package/skeleton/porch/prompts/implement.md +1 -1
  201. package/skeleton/porch/prompts/plan.md +1 -1
  202. package/skeleton/porch/prompts/review.md +4 -4
  203. package/skeleton/porch/prompts/specify.md +1 -1
  204. package/skeleton/porch/prompts/understand.md +2 -2
  205. package/skeleton/protocol-schema.json +282 -0
  206. package/skeleton/protocols/bugfix/builder-prompt.md +54 -0
  207. package/skeleton/protocols/bugfix/prompts/fix.md +77 -0
  208. package/skeleton/protocols/bugfix/prompts/investigate.md +77 -0
  209. package/skeleton/protocols/bugfix/prompts/pr.md +61 -0
  210. package/skeleton/protocols/bugfix/protocol.json +19 -2
  211. package/skeleton/protocols/experiment/builder-prompt.md +52 -0
  212. package/skeleton/protocols/experiment/protocol.json +101 -0
  213. package/skeleton/protocols/experiment/protocol.md +3 -3
  214. package/skeleton/protocols/experiment/templates/notes.md +1 -1
  215. package/skeleton/protocols/maintain/builder-prompt.md +46 -0
  216. package/skeleton/protocols/maintain/prompts/audit.md +111 -0
  217. package/skeleton/protocols/maintain/prompts/clean.md +91 -0
  218. package/skeleton/protocols/maintain/prompts/sync.md +113 -0
  219. package/skeleton/protocols/maintain/prompts/verify.md +110 -0
  220. package/skeleton/protocols/maintain/protocol.json +141 -0
  221. package/skeleton/protocols/maintain/protocol.md +14 -8
  222. package/skeleton/protocols/protocol-schema.json +54 -1
  223. package/skeleton/protocols/spir/builder-prompt.md +59 -0
  224. package/skeleton/protocols/spir/prompts/implement.md +208 -0
  225. package/skeleton/protocols/{spider → spir}/prompts/plan.md +6 -70
  226. package/skeleton/protocols/{spider → spir}/prompts/review.md +7 -25
  227. package/skeleton/protocols/{spider → spir}/prompts/specify.md +33 -61
  228. package/skeleton/protocols/spir/protocol.json +152 -0
  229. package/skeleton/protocols/{spider → spir}/protocol.md +35 -21
  230. package/skeleton/protocols/{spider → spir}/templates/plan.md +14 -0
  231. package/skeleton/protocols/{spider → spir}/templates/review.md +1 -1
  232. package/skeleton/protocols/tick/builder-prompt.md +56 -0
  233. package/skeleton/protocols/tick/protocol.json +7 -2
  234. package/skeleton/protocols/tick/protocol.md +18 -18
  235. package/skeleton/protocols/tick/templates/review.md +1 -1
  236. package/skeleton/resources/commands/agent-farm.md +25 -43
  237. package/skeleton/resources/commands/overview.md +7 -17
  238. package/skeleton/resources/workflow-reference.md +4 -4
  239. package/skeleton/roles/architect.md +152 -315
  240. package/skeleton/roles/builder.md +109 -218
  241. package/skeleton/templates/AGENTS.md +2 -2
  242. package/skeleton/templates/CLAUDE.md +2 -2
  243. package/skeleton/templates/cheatsheet.md +7 -5
  244. package/skeleton/templates/projectlist.md +1 -1
  245. package/templates/dashboard/index.html +17 -43
  246. package/templates/dashboard/js/dialogs.js +7 -7
  247. package/templates/dashboard/js/files.js +2 -2
  248. package/templates/dashboard/js/main.js +4 -4
  249. package/templates/dashboard/js/projects.js +3 -3
  250. package/templates/dashboard/js/tabs.js +1 -1
  251. package/templates/dashboard/js/utils.js +22 -87
  252. package/templates/open.html +26 -0
  253. package/templates/tower.html +542 -27
  254. package/dist/agent-farm/commands/kickoff.d.ts +0 -19
  255. package/dist/agent-farm/commands/kickoff.d.ts.map +0 -1
  256. package/dist/agent-farm/commands/kickoff.js +0 -331
  257. package/dist/agent-farm/commands/kickoff.js.map +0 -1
  258. package/dist/agent-farm/commands/rename.d.ts +0 -13
  259. package/dist/agent-farm/commands/rename.d.ts.map +0 -1
  260. package/dist/agent-farm/commands/rename.js +0 -33
  261. package/dist/agent-farm/commands/rename.js.map +0 -1
  262. package/dist/agent-farm/commands/tutorial.d.ts +0 -10
  263. package/dist/agent-farm/commands/tutorial.d.ts.map +0 -1
  264. package/dist/agent-farm/commands/tutorial.js +0 -49
  265. package/dist/agent-farm/commands/tutorial.js.map +0 -1
  266. package/dist/agent-farm/commands/util.d.ts.map +0 -1
  267. package/dist/agent-farm/commands/util.js.map +0 -1
  268. package/dist/agent-farm/servers/dashboard-server.d.ts +0 -7
  269. package/dist/agent-farm/servers/dashboard-server.d.ts.map +0 -1
  270. package/dist/agent-farm/servers/dashboard-server.js +0 -1872
  271. package/dist/agent-farm/servers/dashboard-server.js.map +0 -1
  272. package/dist/agent-farm/servers/open-server.d.ts +0 -7
  273. package/dist/agent-farm/servers/open-server.d.ts.map +0 -1
  274. package/dist/agent-farm/servers/open-server.js +0 -315
  275. package/dist/agent-farm/servers/open-server.js.map +0 -1
  276. package/dist/agent-farm/tutorial/index.d.ts +0 -8
  277. package/dist/agent-farm/tutorial/index.d.ts.map +0 -1
  278. package/dist/agent-farm/tutorial/index.js +0 -8
  279. package/dist/agent-farm/tutorial/index.js.map +0 -1
  280. package/dist/agent-farm/tutorial/prompts.d.ts +0 -57
  281. package/dist/agent-farm/tutorial/prompts.d.ts.map +0 -1
  282. package/dist/agent-farm/tutorial/prompts.js +0 -147
  283. package/dist/agent-farm/tutorial/prompts.js.map +0 -1
  284. package/dist/agent-farm/tutorial/runner.d.ts +0 -52
  285. package/dist/agent-farm/tutorial/runner.d.ts.map +0 -1
  286. package/dist/agent-farm/tutorial/runner.js +0 -204
  287. package/dist/agent-farm/tutorial/runner.js.map +0 -1
  288. package/dist/agent-farm/tutorial/state.d.ts +0 -26
  289. package/dist/agent-farm/tutorial/state.d.ts.map +0 -1
  290. package/dist/agent-farm/tutorial/state.js +0 -89
  291. package/dist/agent-farm/tutorial/state.js.map +0 -1
  292. package/dist/agent-farm/tutorial/steps/first-spec.d.ts +0 -7
  293. package/dist/agent-farm/tutorial/steps/first-spec.d.ts.map +0 -1
  294. package/dist/agent-farm/tutorial/steps/first-spec.js +0 -136
  295. package/dist/agent-farm/tutorial/steps/first-spec.js.map +0 -1
  296. package/dist/agent-farm/tutorial/steps/implementation.d.ts +0 -7
  297. package/dist/agent-farm/tutorial/steps/implementation.d.ts.map +0 -1
  298. package/dist/agent-farm/tutorial/steps/implementation.js +0 -76
  299. package/dist/agent-farm/tutorial/steps/implementation.js.map +0 -1
  300. package/dist/agent-farm/tutorial/steps/index.d.ts +0 -10
  301. package/dist/agent-farm/tutorial/steps/index.d.ts.map +0 -1
  302. package/dist/agent-farm/tutorial/steps/index.js +0 -10
  303. package/dist/agent-farm/tutorial/steps/index.js.map +0 -1
  304. package/dist/agent-farm/tutorial/steps/planning.d.ts +0 -7
  305. package/dist/agent-farm/tutorial/steps/planning.d.ts.map +0 -1
  306. package/dist/agent-farm/tutorial/steps/planning.js +0 -143
  307. package/dist/agent-farm/tutorial/steps/planning.js.map +0 -1
  308. package/dist/agent-farm/tutorial/steps/review.d.ts +0 -7
  309. package/dist/agent-farm/tutorial/steps/review.d.ts.map +0 -1
  310. package/dist/agent-farm/tutorial/steps/review.js +0 -78
  311. package/dist/agent-farm/tutorial/steps/review.js.map +0 -1
  312. package/dist/agent-farm/tutorial/steps/setup.d.ts +0 -7
  313. package/dist/agent-farm/tutorial/steps/setup.d.ts.map +0 -1
  314. package/dist/agent-farm/tutorial/steps/setup.js +0 -126
  315. package/dist/agent-farm/tutorial/steps/setup.js.map +0 -1
  316. package/dist/agent-farm/tutorial/steps/welcome.d.ts +0 -7
  317. package/dist/agent-farm/tutorial/steps/welcome.d.ts.map +0 -1
  318. package/dist/agent-farm/tutorial/steps/welcome.js +0 -50
  319. package/dist/agent-farm/tutorial/steps/welcome.js.map +0 -1
  320. package/dist/commands/pcheck/cache.d.ts +0 -48
  321. package/dist/commands/pcheck/cache.d.ts.map +0 -1
  322. package/dist/commands/pcheck/cache.js +0 -170
  323. package/dist/commands/pcheck/cache.js.map +0 -1
  324. package/dist/commands/pcheck/evaluator.d.ts +0 -15
  325. package/dist/commands/pcheck/evaluator.d.ts.map +0 -1
  326. package/dist/commands/pcheck/evaluator.js +0 -246
  327. package/dist/commands/pcheck/evaluator.js.map +0 -1
  328. package/dist/commands/pcheck/index.d.ts +0 -12
  329. package/dist/commands/pcheck/index.d.ts.map +0 -1
  330. package/dist/commands/pcheck/index.js +0 -249
  331. package/dist/commands/pcheck/index.js.map +0 -1
  332. package/dist/commands/pcheck/parser.d.ts +0 -39
  333. package/dist/commands/pcheck/parser.d.ts.map +0 -1
  334. package/dist/commands/pcheck/parser.js +0 -155
  335. package/dist/commands/pcheck/parser.js.map +0 -1
  336. package/dist/commands/pcheck/types.d.ts +0 -82
  337. package/dist/commands/pcheck/types.d.ts.map +0 -1
  338. package/dist/commands/pcheck/types.js +0 -5
  339. package/dist/commands/pcheck/types.js.map +0 -1
  340. package/dist/commands/porch/consultation.d.ts +0 -56
  341. package/dist/commands/porch/consultation.d.ts.map +0 -1
  342. package/dist/commands/porch/consultation.js +0 -330
  343. package/dist/commands/porch/consultation.js.map +0 -1
  344. package/dist/commands/porch/notifications.d.ts +0 -99
  345. package/dist/commands/porch/notifications.d.ts.map +0 -1
  346. package/dist/commands/porch/notifications.js +0 -223
  347. package/dist/commands/porch/notifications.js.map +0 -1
  348. package/dist/commands/porch/plan-parser.d.ts +0 -38
  349. package/dist/commands/porch/plan-parser.d.ts.map +0 -1
  350. package/dist/commands/porch/plan-parser.js +0 -166
  351. package/dist/commands/porch/plan-parser.js.map +0 -1
  352. package/dist/commands/porch/protocol-loader.d.ts +0 -46
  353. package/dist/commands/porch/protocol-loader.d.ts.map +0 -1
  354. package/dist/commands/porch/protocol-loader.js +0 -253
  355. package/dist/commands/porch/protocol-loader.js.map +0 -1
  356. package/dist/commands/porch/signal-parser.d.ts +0 -88
  357. package/dist/commands/porch/signal-parser.d.ts.map +0 -1
  358. package/dist/commands/porch/signal-parser.js +0 -148
  359. package/dist/commands/porch/signal-parser.js.map +0 -1
  360. package/dist/commands/tower.d.ts +0 -16
  361. package/dist/commands/tower.d.ts.map +0 -1
  362. package/dist/commands/tower.js +0 -21
  363. package/dist/commands/tower.js.map +0 -1
  364. package/skeleton/config.json +0 -7
  365. package/skeleton/porch/protocols/bugfix.json +0 -85
  366. package/skeleton/porch/protocols/spider.json +0 -135
  367. package/skeleton/porch/protocols/tick.json +0 -76
  368. package/skeleton/protocols/spider/prompts/defend.md +0 -215
  369. package/skeleton/protocols/spider/prompts/evaluate.md +0 -241
  370. package/skeleton/protocols/spider/prompts/implement.md +0 -149
  371. package/skeleton/protocols/spider/protocol.json +0 -210
  372. package/templates/dashboard/css/activity.css +0 -151
  373. package/templates/dashboard/js/activity.js +0 -112
  374. /package/skeleton/protocols/{spider → spir}/templates/spec.md +0 -0
@@ -1,253 +0,0 @@
1
- /**
2
- * Protocol Loader
3
- *
4
- * Loads and validates protocol definitions from JSON files.
5
- */
6
- import { existsSync, readFileSync, readdirSync } from 'node:fs';
7
- import { resolve, join } from 'node:path';
8
- /**
9
- * Known protocol locations (relative to project root)
10
- */
11
- const PROTOCOL_PATHS = [
12
- 'codev/protocols',
13
- 'codev-skeleton/protocols',
14
- ];
15
- /**
16
- * Find protocol JSON file
17
- */
18
- export function findProtocolFile(projectRoot, protocolName) {
19
- for (const basePath of PROTOCOL_PATHS) {
20
- const fullPath = resolve(projectRoot, basePath, protocolName, 'protocol.json');
21
- if (existsSync(fullPath)) {
22
- return fullPath;
23
- }
24
- }
25
- return null;
26
- }
27
- /**
28
- * Load protocol from JSON file
29
- */
30
- export function loadProtocol(projectRoot, protocolName) {
31
- const filePath = findProtocolFile(projectRoot, protocolName);
32
- if (!filePath) {
33
- return null;
34
- }
35
- try {
36
- const content = readFileSync(filePath, 'utf-8');
37
- const json = JSON.parse(content);
38
- return convertJsonToProtocol(json);
39
- }
40
- catch (error) {
41
- console.error(`Failed to load protocol ${protocolName}: ${error}`);
42
- return null;
43
- }
44
- }
45
- /**
46
- * Convert JSON representation to Protocol type
47
- */
48
- function convertJsonToProtocol(json) {
49
- const phases = [];
50
- for (const phaseJson of json.phases) {
51
- phases.push(convertPhase(phaseJson, json.defaults));
52
- }
53
- // Determine initial state - first phase with first substate or just phase id
54
- const firstPhase = phases[0];
55
- const initialState = firstPhase.substates && firstPhase.substates.length > 0
56
- ? `${firstPhase.id}:${firstPhase.substates[0]}`
57
- : firstPhase.id;
58
- return {
59
- name: json.name,
60
- version: json.version,
61
- description: json.description,
62
- phases,
63
- initial: initialState,
64
- };
65
- }
66
- /**
67
- * Convert phase JSON to Phase type
68
- */
69
- function convertPhase(json, defaults) {
70
- const phase = {
71
- id: json.id,
72
- name: json.name,
73
- phased: json.type === 'per_plan_phase',
74
- };
75
- // Add prompt file reference
76
- if (json.prompt) {
77
- phase.prompt = json.prompt;
78
- }
79
- // Add substates from steps
80
- if (json.steps && json.steps.length > 0) {
81
- phase.substates = json.steps;
82
- }
83
- // Add checks
84
- if (json.checks) {
85
- phase.checks = {};
86
- for (const [name, checkJson] of Object.entries(json.checks)) {
87
- phase.checks[name] = convertCheck(checkJson);
88
- }
89
- }
90
- // Add consultation
91
- if (json.consultation) {
92
- phase.consultation = convertConsultation(json.consultation, defaults?.consultation);
93
- }
94
- // Add gate - determine when gate triggers based on requires or last step
95
- if (json.gate) {
96
- // Gate triggers after the last required substate, or after the last step
97
- const gateAfter = json.gate.requires?.length
98
- ? json.gate.requires[json.gate.requires.length - 1]
99
- : json.steps?.length
100
- ? json.steps[json.steps.length - 1]
101
- : null;
102
- phase.gate = convertGate(json.gate, gateAfter);
103
- }
104
- // Build signals from transitions
105
- if (json.transition) {
106
- phase.signals = {};
107
- if (json.transition.on_complete) {
108
- phase.signals['PHASE_COMPLETE'] = json.transition.on_complete;
109
- }
110
- if (json.transition.on_fail) {
111
- phase.signals['PHASE_FAILED'] = json.transition.on_fail;
112
- }
113
- if (json.transition.on_all_phases_complete) {
114
- phase.signals['ALL_PHASES_COMPLETE'] = json.transition.on_all_phases_complete;
115
- }
116
- }
117
- // Mark as terminal if gate has no next
118
- if (json.gate && json.gate.next === null) {
119
- phase.terminal = true;
120
- }
121
- return phase;
122
- }
123
- /**
124
- * Convert check JSON to Check type
125
- */
126
- function convertCheck(json) {
127
- return {
128
- command: json.command,
129
- on_fail: json.on_fail || 'retry',
130
- max_retries: json.max_retries ?? 3,
131
- retry_delay: json.retry_delay ?? 5,
132
- };
133
- }
134
- /**
135
- * Convert consultation JSON to ConsultationConfig type
136
- */
137
- function convertConsultation(json, defaults) {
138
- return {
139
- on: json.on || 'review',
140
- models: json.models || defaults?.models || ['gemini', 'codex', 'claude'],
141
- type: json.type || 'impl-review',
142
- parallel: json.parallel ?? defaults?.parallel ?? true,
143
- max_rounds: json.max_rounds ?? 3,
144
- next: json.next || '',
145
- };
146
- }
147
- /**
148
- * Convert gate JSON to GateConfig type
149
- * @param json - Gate configuration from protocol JSON
150
- * @param gateAfter - Substate after which the gate triggers (from requires or last step)
151
- */
152
- function convertGate(json, gateAfter) {
153
- return {
154
- after: gateAfter || json.name, // Use computed trigger point, fallback to gate name
155
- type: 'human',
156
- next: json.next || '',
157
- };
158
- }
159
- /**
160
- * Get all available protocols
161
- */
162
- export function listProtocols(projectRoot) {
163
- const protocols = [];
164
- for (const basePath of PROTOCOL_PATHS) {
165
- const fullPath = resolve(projectRoot, basePath);
166
- if (existsSync(fullPath)) {
167
- try {
168
- const entries = readdirSync(fullPath, { withFileTypes: true });
169
- for (const entry of entries) {
170
- if (entry.isDirectory()) {
171
- const protocolFile = join(fullPath, entry.name, 'protocol.json');
172
- if (existsSync(protocolFile)) {
173
- protocols.push(entry.name);
174
- }
175
- }
176
- }
177
- }
178
- catch {
179
- // Ignore errors
180
- }
181
- }
182
- }
183
- return [...new Set(protocols)];
184
- }
185
- /**
186
- * Get default protocol (spider)
187
- */
188
- export function getDefaultProtocol(projectRoot) {
189
- return loadProtocol(projectRoot, 'spider');
190
- }
191
- /**
192
- * Validate a protocol has required phases
193
- */
194
- export function validateProtocol(protocol) {
195
- const errors = [];
196
- if (!protocol.name) {
197
- errors.push('Protocol name is required');
198
- }
199
- if (!protocol.phases || protocol.phases.length === 0) {
200
- errors.push('Protocol must have at least one phase');
201
- }
202
- if (!protocol.initial) {
203
- errors.push('Protocol must specify an initial state');
204
- }
205
- // Build phase ID lookup
206
- const phaseIds = new Set(protocol.phases.map(p => p.id));
207
- // Check phase signals reference valid phases
208
- for (const phase of protocol.phases) {
209
- if (phase.signals) {
210
- for (const [signal, targetPhase] of Object.entries(phase.signals)) {
211
- // Target might be "phaseId" or "phaseId:substate"
212
- const targetPhaseId = targetPhase.split(':')[0];
213
- if (!phaseIds.has(targetPhaseId)) {
214
- errors.push(`Phase '${phase.id}' signal '${signal}' references unknown phase '${targetPhaseId}'`);
215
- }
216
- }
217
- }
218
- }
219
- return {
220
- valid: errors.length === 0,
221
- errors,
222
- };
223
- }
224
- /**
225
- * Get phase by ID
226
- */
227
- export function getPhase(protocol, phaseId) {
228
- return protocol.phases.find(p => p.id === phaseId) || null;
229
- }
230
- /**
231
- * Get the next phase after a given phase
232
- */
233
- export function getNextPhase(protocol, currentPhaseId) {
234
- const currentIndex = protocol.phases.findIndex(p => p.id === currentPhaseId);
235
- if (currentIndex === -1 || currentIndex >= protocol.phases.length - 1) {
236
- return null;
237
- }
238
- return protocol.phases[currentIndex + 1];
239
- }
240
- /**
241
- * Check if a phase is a terminal phase (no next phase)
242
- */
243
- export function isTerminalPhase(protocol, phaseId) {
244
- const phase = getPhase(protocol, phaseId);
245
- return phase?.terminal ?? false;
246
- }
247
- /**
248
- * Get phased phases (phases that run per plan phase)
249
- */
250
- export function getPhasedPhases(protocol) {
251
- return protocol.phases.filter(p => p.phased);
252
- }
253
- //# sourceMappingURL=protocol-loader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"protocol-loader.js","sourceRoot":"","sources":["../../../src/commands/porch/protocol-loader.ts"],"names":[],"mappings":"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"}
@@ -1,88 +0,0 @@
1
- /**
2
- * Signal Parser
3
- *
4
- * Extracts signals from Claude output and validates them against protocol definitions.
5
- * Signals use XML-style tags: <signal>SIGNAL_NAME</signal>
6
- */
7
- import type { Protocol } from './types.js';
8
- /**
9
- * Signal extraction result
10
- */
11
- export interface SignalResult {
12
- signal: string | null;
13
- allSignals: string[];
14
- isValid: boolean;
15
- error?: string;
16
- }
17
- /**
18
- * Extract signal from Claude output
19
- *
20
- * Rules:
21
- * - Scan for <signal>...</signal> patterns
22
- * - Return the LAST signal found (multiple signals → last wins)
23
- * - Return null if no signal found
24
- */
25
- export declare function extractSignal(output: string): string | null;
26
- /**
27
- * Extract all signals from output
28
- */
29
- export declare function extractAllSignals(output: string): string[];
30
- /**
31
- * Validate a signal against the protocol definition
32
- *
33
- * Returns true if the signal is valid for the current phase.
34
- * Unknown signals are logged but considered valid (lenient mode).
35
- */
36
- export declare function validateSignal(signal: string, protocol: Protocol, currentState: string): {
37
- valid: boolean;
38
- nextState?: string;
39
- warning?: string;
40
- };
41
- /**
42
- * Extract and validate signal from output
43
- */
44
- export declare function parseSignal(output: string, protocol: Protocol, currentState: string): SignalResult;
45
- /**
46
- * Get valid signals for a phase
47
- */
48
- export declare function getValidSignals(protocol: Protocol, phaseId: string): string[];
49
- /**
50
- * Common signals used across protocols
51
- */
52
- export declare const CommonSignals: {
53
- readonly SPEC_DRAFTED: "SPEC_DRAFTED";
54
- readonly SPEC_READY: "SPEC_READY";
55
- readonly REVISION_COMPLETE: "REVISION_COMPLETE";
56
- readonly PLAN_DRAFTED: "PLAN_DRAFTED";
57
- readonly PLAN_READY: "PLAN_READY";
58
- readonly PHASE_IMPLEMENTED: "PHASE_IMPLEMENTED";
59
- readonly IMPLEMENTATION_COMPLETE: "IMPLEMENTATION_COMPLETE";
60
- readonly TESTS_WRITTEN: "TESTS_WRITTEN";
61
- readonly TESTS_PASSING: "TESTS_PASSING";
62
- readonly EVALUATION_COMPLETE: "EVALUATION_COMPLETE";
63
- readonly PHASE_COMPLETE: "PHASE_COMPLETE";
64
- readonly REVIEW_COMPLETE: "REVIEW_COMPLETE";
65
- readonly UNDERSTOOD: "UNDERSTOOD";
66
- readonly IMPLEMENTED: "IMPLEMENTED";
67
- readonly VERIFIED: "VERIFIED";
68
- readonly DIAGNOSED: "DIAGNOSED";
69
- readonly FIXED: "FIXED";
70
- readonly TESTED: "TESTED";
71
- readonly PR_CREATED: "PR_CREATED";
72
- readonly COMPLETE: "COMPLETE";
73
- readonly BLOCKED: "BLOCKED";
74
- readonly NEEDS_CLARIFICATION: "NEEDS_CLARIFICATION";
75
- };
76
- /**
77
- * Format a signal for output
78
- */
79
- export declare function formatSignal(signal: string): string;
80
- /**
81
- * Check if output contains any signal
82
- */
83
- export declare function hasSignal(output: string): boolean;
84
- /**
85
- * Strip all signals from output (for clean display)
86
- */
87
- export declare function stripSignals(output: string): string;
88
- //# sourceMappingURL=signal-parser.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"signal-parser.d.ts","sourceRoot":"","sources":["../../../src/commands/porch/signal-parser.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAS,MAAM,YAAY,CAAC;AAElD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQ3D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAQ1D;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,MAAM,GACnB;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAwB1D;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,MAAM,GACnB,YAAY,CAoBd;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAI7E;AAED;;GAEG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;CAwChB,CAAC;AAEX;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEjD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEnD"}
@@ -1,148 +0,0 @@
1
- /**
2
- * Signal Parser
3
- *
4
- * Extracts signals from Claude output and validates them against protocol definitions.
5
- * Signals use XML-style tags: <signal>SIGNAL_NAME</signal>
6
- */
7
- /**
8
- * Extract signal from Claude output
9
- *
10
- * Rules:
11
- * - Scan for <signal>...</signal> patterns
12
- * - Return the LAST signal found (multiple signals → last wins)
13
- * - Return null if no signal found
14
- */
15
- export function extractSignal(output) {
16
- const matches = output.match(/<signal>([^<]+)<\/signal>/gi);
17
- if (!matches || matches.length === 0)
18
- return null;
19
- // Get the last match
20
- const lastMatch = matches[matches.length - 1];
21
- const signalMatch = lastMatch.match(/<signal>([^<]+)<\/signal>/i);
22
- return signalMatch ? signalMatch[1].trim() : null;
23
- }
24
- /**
25
- * Extract all signals from output
26
- */
27
- export function extractAllSignals(output) {
28
- const matches = output.match(/<signal>([^<]+)<\/signal>/gi);
29
- if (!matches)
30
- return [];
31
- return matches.map(match => {
32
- const signalMatch = match.match(/<signal>([^<]+)<\/signal>/i);
33
- return signalMatch ? signalMatch[1].trim() : '';
34
- }).filter(Boolean);
35
- }
36
- /**
37
- * Validate a signal against the protocol definition
38
- *
39
- * Returns true if the signal is valid for the current phase.
40
- * Unknown signals are logged but considered valid (lenient mode).
41
- */
42
- export function validateSignal(signal, protocol, currentState) {
43
- const [phaseId, substate] = currentState.split(':');
44
- const phase = protocol.phases.find(p => p.id === phaseId);
45
- if (!phase) {
46
- return {
47
- valid: false,
48
- warning: `Unknown phase: ${phaseId}`,
49
- };
50
- }
51
- // Check if signal is defined for this phase
52
- if (phase.signals && phase.signals[signal]) {
53
- return {
54
- valid: true,
55
- nextState: phase.signals[signal],
56
- };
57
- }
58
- // Signal not defined - lenient mode: allow but warn
59
- return {
60
- valid: true, // Allow unknown signals to prevent blocking
61
- warning: `Signal "${signal}" not defined in protocol for phase ${phaseId}`,
62
- };
63
- }
64
- /**
65
- * Extract and validate signal from output
66
- */
67
- export function parseSignal(output, protocol, currentState) {
68
- const signal = extractSignal(output);
69
- const allSignals = extractAllSignals(output);
70
- if (!signal) {
71
- return {
72
- signal: null,
73
- allSignals: [],
74
- isValid: true, // No signal is valid (use default transition)
75
- };
76
- }
77
- const validation = validateSignal(signal, protocol, currentState);
78
- return {
79
- signal,
80
- allSignals,
81
- isValid: validation.valid,
82
- error: validation.warning,
83
- };
84
- }
85
- /**
86
- * Get valid signals for a phase
87
- */
88
- export function getValidSignals(protocol, phaseId) {
89
- const phase = protocol.phases.find(p => p.id === phaseId);
90
- if (!phase?.signals)
91
- return [];
92
- return Object.keys(phase.signals);
93
- }
94
- /**
95
- * Common signals used across protocols
96
- */
97
- export const CommonSignals = {
98
- // Specify phase
99
- SPEC_DRAFTED: 'SPEC_DRAFTED',
100
- SPEC_READY: 'SPEC_READY',
101
- REVISION_COMPLETE: 'REVISION_COMPLETE',
102
- // Plan phase
103
- PLAN_DRAFTED: 'PLAN_DRAFTED',
104
- PLAN_READY: 'PLAN_READY',
105
- // Implement phase
106
- PHASE_IMPLEMENTED: 'PHASE_IMPLEMENTED',
107
- IMPLEMENTATION_COMPLETE: 'IMPLEMENTATION_COMPLETE',
108
- // Defend phase
109
- TESTS_WRITTEN: 'TESTS_WRITTEN',
110
- TESTS_PASSING: 'TESTS_PASSING',
111
- // Evaluate phase
112
- EVALUATION_COMPLETE: 'EVALUATION_COMPLETE',
113
- PHASE_COMPLETE: 'PHASE_COMPLETE',
114
- // Review phase
115
- REVIEW_COMPLETE: 'REVIEW_COMPLETE',
116
- // TICK protocol
117
- UNDERSTOOD: 'UNDERSTOOD',
118
- IMPLEMENTED: 'IMPLEMENTED',
119
- VERIFIED: 'VERIFIED',
120
- // BUGFIX protocol
121
- DIAGNOSED: 'DIAGNOSED',
122
- FIXED: 'FIXED',
123
- TESTED: 'TESTED',
124
- PR_CREATED: 'PR_CREATED',
125
- // General
126
- COMPLETE: 'COMPLETE',
127
- BLOCKED: 'BLOCKED',
128
- NEEDS_CLARIFICATION: 'NEEDS_CLARIFICATION',
129
- };
130
- /**
131
- * Format a signal for output
132
- */
133
- export function formatSignal(signal) {
134
- return `<signal>${signal}</signal>`;
135
- }
136
- /**
137
- * Check if output contains any signal
138
- */
139
- export function hasSignal(output) {
140
- return /<signal>[^<]+<\/signal>/i.test(output);
141
- }
142
- /**
143
- * Strip all signals from output (for clean display)
144
- */
145
- export function stripSignals(output) {
146
- return output.replace(/<signal>[^<]+<\/signal>/gi, '').trim();
147
- }
148
- //# sourceMappingURL=signal-parser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"signal-parser.js","sourceRoot":"","sources":["../../../src/commands/porch/signal-parser.ts"],"names":[],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- /**
2
- * codev tower - Cross-project dashboard
3
- *
4
- * Shows all running agent-farm instances across projects.
5
- * This is a framework-level command (not project-level like af).
6
- */
7
- interface TowerOptions {
8
- port?: number;
9
- stop?: boolean;
10
- }
11
- /**
12
- * Start or stop the tower dashboard
13
- */
14
- export declare function tower(options?: TowerOptions): Promise<void>;
15
- export {};
16
- //# sourceMappingURL=tower.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tower.d.ts","sourceRoot":"","sources":["../../src/commands/tower.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,UAAU,YAAY;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,wBAAsB,KAAK,CAAC,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAWrE"}
@@ -1,21 +0,0 @@
1
- /**
2
- * codev tower - Cross-project dashboard
3
- *
4
- * Shows all running agent-farm instances across projects.
5
- * This is a framework-level command (not project-level like af).
6
- */
7
- /**
8
- * Start or stop the tower dashboard
9
- */
10
- export async function tower(options = {}) {
11
- // Import dynamically to avoid circular dependency with agent-farm
12
- const { towerStart, towerStop } = await import('../agent-farm/commands/tower.js');
13
- const port = options.port ?? 4100;
14
- if (options.stop) {
15
- await towerStop({ port });
16
- }
17
- else {
18
- await towerStart({ port });
19
- }
20
- }
21
- //# sourceMappingURL=tower.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tower.js","sourceRoot":"","sources":["../../src/commands/tower.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,UAAwB,EAAE;IACpD,kEAAkE;IAClE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC;IAElF,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC;IAElC,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,MAAM,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5B,CAAC;SAAM,CAAC;QACN,MAAM,UAAU,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC"}
@@ -1,7 +0,0 @@
1
- {
2
- "shell": {
3
- "architect": "claude",
4
- "builder": "claude",
5
- "shell": "bash"
6
- }
7
- }
@@ -1,85 +0,0 @@
1
- {
2
- "$schema": "./protocol-schema.json",
3
- "name": "bugfix",
4
- "version": "1.0.0",
5
- "description": "BUGFIX: Fast bug fixing from GitHub issues",
6
-
7
- "phases": [
8
- {
9
- "id": "diagnose",
10
- "name": "Diagnose",
11
- "prompt": "diagnose.md",
12
- "substates": null,
13
- "signals": {
14
- "ROOT_CAUSE_FOUND": "fix",
15
- "NEEDS_MORE_INFO": "diagnose"
16
- }
17
- },
18
- {
19
- "id": "fix",
20
- "name": "Fix",
21
- "prompt": "fix.md",
22
- "substates": null,
23
- "signals": {
24
- "FIX_APPLIED": "test",
25
- "FIX_FAILED": "diagnose"
26
- }
27
- },
28
- {
29
- "id": "test",
30
- "name": "Test",
31
- "prompt": "test.md",
32
- "substates": null,
33
- "signals": {
34
- "TESTS_PASS": "pr",
35
- "TESTS_FAIL": "fix"
36
- },
37
- "backpressure": {
38
- "tests_pass": {
39
- "command": "npm test",
40
- "on_fail": "fix"
41
- }
42
- }
43
- },
44
- {
45
- "id": "pr",
46
- "name": "Pull Request",
47
- "prompt": "pr.md",
48
- "substates": null,
49
- "signals": {
50
- "PR_CREATED": "complete"
51
- }
52
- },
53
- {
54
- "id": "complete",
55
- "name": "Complete",
56
- "terminal": true
57
- }
58
- ],
59
-
60
- "gates": [],
61
-
62
- "transitions": {
63
- "diagnose": {
64
- "default": "fix"
65
- },
66
- "fix": {
67
- "default": "test"
68
- },
69
- "test": {
70
- "on_backpressure_pass": "pr",
71
- "on_backpressure_fail": "fix"
72
- },
73
- "pr": {
74
- "default": "complete"
75
- }
76
- },
77
-
78
- "initial_state": "diagnose",
79
-
80
- "config": {
81
- "poll_interval": 5,
82
- "max_iterations": 30,
83
- "prompts_dir": "prompts"
84
- }
85
- }