@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,149 +0,0 @@
1
- # IMPLEMENT Phase Prompt
2
-
3
- You are executing the **IMPLEMENT** phase of the SPIDER protocol.
4
-
5
- ## Your Goal
6
-
7
- Write clean, well-structured code that implements the current plan phase.
8
-
9
- ## Context
10
-
11
- - **Project ID**: {{project_id}}
12
- - **Project Title**: {{title}}
13
- - **Current State**: {{current_state}}
14
- - **Plan Phase**: {{plan_phase}} (if applicable)
15
- - **Spec File**: `codev/specs/{{project_id}}-{{title}}.md`
16
- - **Plan File**: `codev/plans/{{project_id}}-{{title}}.md`
17
-
18
- ## Consultation Context
19
-
20
- **Implementation does NOT require consultation checkpoints** - that happens after Defend.
21
-
22
- However, you should be aware:
23
- - Spec and Plan have already been reviewed by GPT-5 Codex and Gemini Pro
24
- - After you complete Implement + Defend, your work will be reviewed
25
- - Implementation must strictly follow the approved spec and plan
26
-
27
- ## Prerequisites
28
-
29
- Before implementing, verify:
30
- 1. Previous phase (if any) is committed to git
31
- 2. You've read the plan phase you're implementing
32
- 3. You understand the success criteria for this phase
33
- 4. Dependencies from earlier phases are available
34
-
35
- ## Process
36
-
37
- ### 1. Review the Plan Phase
38
-
39
- Read the current phase in the plan:
40
- - What is the objective?
41
- - What files need to be created/modified?
42
- - What are the success criteria?
43
- - What dependencies exist?
44
-
45
- ### 2. Set Up
46
-
47
- - Verify you're on the correct branch
48
- - Check that previous phase is committed: `git log --oneline -5`
49
- - Ensure build passes before starting: `npm run build` (or equivalent)
50
-
51
- ### 3. Implement
52
-
53
- Write the code following these principles:
54
-
55
- **Code Quality Standards**:
56
- - Self-documenting code (clear names, obvious structure)
57
- - No commented-out code
58
- - No debug prints in final code
59
- - Explicit error handling
60
- - Follow project style guide
61
-
62
- **Implementation Approach**:
63
- - Work on one file at a time
64
- - Make small, incremental changes
65
- - Test as you go (manual verification is fine here)
66
- - Document complex logic with comments
67
-
68
- ### 4. Self-Review
69
-
70
- Before signaling completion:
71
- - Read through all changes
72
- - Check for obvious bugs
73
- - Verify code matches the spec requirements
74
- - Ensure no accidental debug code
75
-
76
- ### 5. Build Verification
77
-
78
- Run build checks using **project-specific commands**:
79
-
80
- ```bash
81
- # Check package.json scripts or Makefile for actual commands
82
- # Common patterns:
83
- npm run build # Node.js/TypeScript projects
84
- npm run typecheck # TypeScript type checking
85
- npm run lint # Linting (ESLint, etc.)
86
- cargo build # Rust projects
87
- go build ./... # Go projects
88
- make build # Projects using Makefiles
89
- ```
90
-
91
- **Important**: Don't assume `npm run build` exists. Check `package.json` or equivalent first.
92
-
93
- Fix any errors before proceeding.
94
-
95
- ## Output
96
-
97
- - Modified/created source files as specified in the plan phase
98
- - All build checks passing
99
- - Code ready for the Defend (testing) phase
100
-
101
- ## Signals
102
-
103
- Emit appropriate signals based on your progress:
104
-
105
- - After implementation is complete and builds pass:
106
- ```
107
- <signal>PHASE_IMPLEMENTED</signal>
108
- ```
109
-
110
- - If you encounter a blocker:
111
- ```
112
- <signal>BLOCKED:reason goes here</signal>
113
- ```
114
-
115
- - If you need spec/plan clarification:
116
- ```
117
- <signal>NEEDS_CLARIFICATION:specific question</signal>
118
- ```
119
-
120
- ## Important Notes
121
-
122
- 1. **Follow the plan** - Implement what's specified, not more
123
- 2. **Don't over-engineer** - Simplest solution that works
124
- 3. **Don't skip error handling** - But don't go overboard either
125
- 4. **Keep changes focused** - Only touch files in this phase
126
- 5. **Build must pass** - Don't proceed if build fails
127
-
128
- ## What NOT to Do
129
-
130
- - Don't write tests yet (that's Defend phase)
131
- - Don't modify files outside this phase's scope
132
- - Don't add features not in the spec
133
- - Don't leave TODO comments for later (fix now or note as blocker)
134
- - Don't commit yet (that happens after Defend + Evaluate)
135
- - Don't use `git add .` or `git add -A` when you do commit (security risk)
136
-
137
- ## Handling Problems
138
-
139
- **If the plan is unclear**:
140
- Signal `NEEDS_CLARIFICATION` with your specific question.
141
-
142
- **If you discover the spec is wrong**:
143
- Signal `BLOCKED` and explain the issue. The Architect may need to update the spec.
144
-
145
- **If a dependency is missing**:
146
- Signal `BLOCKED` with details about what's missing.
147
-
148
- **If build fails and you can't fix it**:
149
- Signal `BLOCKED` with the error message.
@@ -1,210 +0,0 @@
1
- {
2
- "$schema": "../../protocol-schema.json",
3
- "name": "spider",
4
- "version": "1.0.0",
5
- "description": "Specification-driven development with multi-agent consultation",
6
- "phases": [
7
- {
8
- "id": "specify",
9
- "name": "Specify",
10
- "description": "Collaborative design exploration and specification",
11
- "type": "once",
12
- "prompt": "specify.md",
13
- "steps": [
14
- "clarifying_questions",
15
- "problem_analysis",
16
- "solution_exploration",
17
- "open_questions",
18
- "success_criteria",
19
- "spec_draft",
20
- "consultation_1",
21
- "human_review",
22
- "consultation_2",
23
- "spec_final"
24
- ],
25
- "consultation": {
26
- "on": "review",
27
- "models": ["gemini", "codex", "claude"],
28
- "type": "spec-review",
29
- "parallel": true,
30
- "max_rounds": 3
31
- },
32
- "gate": {
33
- "name": "spec-approval",
34
- "description": "Human approves specification before planning",
35
- "requires": ["spec_final", "consultation_2"],
36
- "next": "plan"
37
- }
38
- },
39
- {
40
- "id": "plan",
41
- "name": "Plan",
42
- "description": "Implementation planning with phased breakdown",
43
- "type": "once",
44
- "prompt": "plan.md",
45
- "steps": [
46
- "analyze_spec",
47
- "identify_phases",
48
- "define_steps",
49
- "plan_draft",
50
- "consultation",
51
- "human_review",
52
- "plan_final"
53
- ],
54
- "consultation": {
55
- "on": "review",
56
- "models": ["gemini", "codex", "claude"],
57
- "type": "plan-review",
58
- "parallel": true,
59
- "max_rounds": 2
60
- },
61
- "gate": {
62
- "name": "plan-approval",
63
- "description": "Human approves plan before implementation",
64
- "requires": ["plan_final", "consultation"],
65
- "next": "implement"
66
- }
67
- },
68
- {
69
- "id": "implement",
70
- "name": "Implement",
71
- "description": "Code implementation following the plan",
72
- "type": "per_plan_phase",
73
- "prompt": "implement.md",
74
- "steps": [
75
- "read_phase",
76
- "implement_code",
77
- "self_review",
78
- "commit"
79
- ],
80
- "checks": {
81
- "build": {
82
- "command": "npm run build",
83
- "on_fail": "retry",
84
- "max_retries": 2
85
- },
86
- "typecheck": {
87
- "command": "npm run typecheck",
88
- "on_fail": "retry",
89
- "max_retries": 2
90
- }
91
- },
92
- "transition": {
93
- "on_complete": "defend",
94
- "on_fail": "implement"
95
- }
96
- },
97
- {
98
- "id": "defend",
99
- "name": "Defend",
100
- "description": "Testing and verification",
101
- "type": "per_plan_phase",
102
- "prompt": "defend.md",
103
- "steps": [
104
- "write_tests",
105
- "run_tests",
106
- "fix_failures",
107
- "commit"
108
- ],
109
- "checks": {
110
- "tests": {
111
- "command": "npm test",
112
- "on_fail": "implement",
113
- "max_retries": 1
114
- },
115
- "lint": {
116
- "command": "npm run lint",
117
- "on_fail": "retry",
118
- "max_retries": 1
119
- }
120
- },
121
- "consultation": {
122
- "on": "complete",
123
- "models": ["gemini", "codex", "claude"],
124
- "type": "impl-review",
125
- "parallel": true,
126
- "max_rounds": 2
127
- },
128
- "transition": {
129
- "on_complete": "evaluate",
130
- "on_fail": "implement"
131
- }
132
- },
133
- {
134
- "id": "evaluate",
135
- "name": "Evaluate",
136
- "description": "Verify implementation against spec",
137
- "type": "per_plan_phase",
138
- "prompt": "evaluate.md",
139
- "steps": [
140
- "check_spec_compliance",
141
- "check_success_criteria",
142
- "document_deviations"
143
- ],
144
- "gate": {
145
- "name": "phase-complete",
146
- "description": "Plan phase implementation is verified",
147
- "requires": ["all_checks_pass", "spec_compliance"],
148
- "next": "implement"
149
- },
150
- "transition": {
151
- "on_complete": "implement",
152
- "on_all_phases_complete": "review"
153
- }
154
- },
155
- {
156
- "id": "review",
157
- "name": "Review",
158
- "description": "Final review and lessons learned",
159
- "type": "once",
160
- "prompt": "review.md",
161
- "steps": [
162
- "create_review_document",
163
- "document_lessons",
164
- "final_consultation",
165
- "create_pr"
166
- ],
167
- "consultation": {
168
- "on": "review",
169
- "models": ["gemini", "codex", "claude"],
170
- "type": "pr-ready",
171
- "parallel": true,
172
- "max_rounds": 1
173
- },
174
- "gate": {
175
- "name": "pr-ready",
176
- "description": "Implementation ready for PR",
177
- "requires": ["review_complete", "all_tests_pass", "consultation"],
178
- "next": null
179
- }
180
- }
181
- ],
182
- "signals": {
183
- "PHASE_COMPLETE": {
184
- "description": "Signal current phase is complete",
185
- "transitions_to": "next_phase"
186
- },
187
- "BLOCKED": {
188
- "description": "Signal implementation is blocked",
189
- "requires": "reason"
190
- },
191
- "REVISION_NEEDED": {
192
- "description": "Signal changes requested",
193
- "transitions_to": "current_phase"
194
- },
195
- "APPROVED": {
196
- "description": "Signal gate approval received"
197
- }
198
- },
199
- "defaults": {
200
- "consultation": {
201
- "enabled": true,
202
- "models": ["gemini", "codex", "claude"],
203
- "parallel": true
204
- },
205
- "checks": {
206
- "build": "npm run build",
207
- "test": "npm test"
208
- }
209
- }
210
- }
@@ -1,151 +0,0 @@
1
- /* Activity Summary Modal and Tab (Spec 0059) */
2
-
3
- /* Activity Summary Modal */
4
- .activity-dialog {
5
- width: 600px;
6
- max-width: 90vw;
7
- max-height: 80vh;
8
- display: flex;
9
- flex-direction: column;
10
- }
11
-
12
- .activity-dialog-header {
13
- display: flex;
14
- justify-content: space-between;
15
- align-items: center;
16
- margin-bottom: 16px;
17
- }
18
-
19
- .activity-dialog-header h3 {
20
- margin: 0;
21
- }
22
-
23
- .activity-close-btn {
24
- background: none;
25
- border: none;
26
- font-size: 24px;
27
- color: var(--text-muted);
28
- cursor: pointer;
29
- padding: 0 8px;
30
- line-height: 1;
31
- }
32
-
33
- .activity-close-btn:hover {
34
- color: var(--text-primary);
35
- }
36
-
37
- .activity-dialog-content {
38
- flex: 1;
39
- overflow-y: auto;
40
- max-height: 50vh;
41
- margin-bottom: 16px;
42
- }
43
-
44
- .activity-loading {
45
- display: flex;
46
- align-items: center;
47
- justify-content: center;
48
- gap: 12px;
49
- padding: 40px 20px;
50
- color: var(--text-muted);
51
- }
52
-
53
- .activity-spinner {
54
- width: 20px;
55
- height: 20px;
56
- border: 2px solid var(--border);
57
- border-top-color: var(--accent);
58
- border-radius: 50%;
59
- animation: spin 1s linear infinite;
60
- }
61
-
62
- @keyframes spin {
63
- to { transform: rotate(360deg); }
64
- }
65
-
66
- .activity-empty {
67
- text-align: center;
68
- padding: 40px 20px;
69
- color: var(--text-muted);
70
- }
71
-
72
- .activity-error {
73
- text-align: center;
74
- padding: 40px 20px;
75
- color: #ef4444;
76
- }
77
-
78
- .activity-summary {
79
- line-height: 1.6;
80
- }
81
-
82
- .activity-ai-summary {
83
- background: var(--bg-tertiary);
84
- border-left: 3px solid var(--accent);
85
- padding: 12px 16px;
86
- margin-bottom: 20px;
87
- font-style: italic;
88
- color: var(--text-secondary);
89
- }
90
-
91
- .activity-section {
92
- margin-bottom: 16px;
93
- }
94
-
95
- .activity-section h4 {
96
- font-size: 13px;
97
- text-transform: uppercase;
98
- color: var(--text-muted);
99
- margin: 0 0 8px 0;
100
- letter-spacing: 0.5px;
101
- }
102
-
103
- .activity-section ul {
104
- margin: 0;
105
- padding-left: 20px;
106
- color: var(--text-secondary);
107
- }
108
-
109
- .activity-section li {
110
- margin-bottom: 4px;
111
- }
112
-
113
- .activity-section p {
114
- margin: 4px 0;
115
- color: var(--text-secondary);
116
- }
117
-
118
- .activity-time-value {
119
- font-size: 18px;
120
- font-weight: 500;
121
- color: var(--text-primary);
122
- }
123
-
124
- .activity-dialog-footer {
125
- display: flex;
126
- justify-content: flex-end;
127
- gap: 8px;
128
- padding-top: 12px;
129
- border-top: 1px solid var(--border);
130
- }
131
-
132
- /* Activity Tab Styles */
133
- .activity-tab-container {
134
- padding: 24px;
135
- max-width: 700px;
136
- margin: 0 auto;
137
- }
138
-
139
- .activity-tab-container .activity-summary {
140
- background: var(--bg-secondary);
141
- border-radius: 8px;
142
- padding: 20px;
143
- }
144
-
145
- .activity-tab-container .activity-actions {
146
- margin-top: 20px;
147
- padding-top: 16px;
148
- border-top: 1px solid var(--border);
149
- display: flex;
150
- justify-content: flex-end;
151
- }
@@ -1,112 +0,0 @@
1
- // Activity Summary Functions (Spec 0059)
2
-
3
- // Show activity summary - creates tab if needed
4
- async function showActivitySummary() {
5
- let activityTab = tabs.find(t => t.type === 'activity');
6
-
7
- if (!activityTab) {
8
- activityTab = {
9
- id: 'activity-today',
10
- type: 'activity',
11
- name: 'Today'
12
- };
13
- tabs.push(activityTab);
14
- }
15
-
16
- activeTabId = activityTab.id;
17
- currentTabType = null;
18
- renderTabs();
19
- renderTabContent();
20
- }
21
-
22
- // Render the activity tab content
23
- async function renderActivityTab() {
24
- const content = document.getElementById('tab-content');
25
-
26
- content.innerHTML = `
27
- <div class="activity-tab-container">
28
- <div class="activity-loading">
29
- <span class="activity-spinner"></span>
30
- Loading activity...
31
- </div>
32
- </div>
33
- `;
34
-
35
- try {
36
- const response = await fetch('/api/activity-summary');
37
- if (!response.ok) {
38
- throw new Error(await response.text());
39
- }
40
- activityData = await response.json();
41
- renderActivityTabContent(activityData);
42
- } catch (err) {
43
- content.innerHTML = `
44
- <div class="activity-tab-container">
45
- <div class="activity-error">
46
- Failed to load activity: ${escapeHtml(err.message)}
47
- </div>
48
- </div>
49
- `;
50
- }
51
- }
52
-
53
- // Render activity tab content
54
- // Uses shared renderActivityContentHtml from utils.js (Maintenance Run 0004)
55
- function renderActivityTabContent(data) {
56
- const content = document.getElementById('tab-content');
57
- content.innerHTML = renderActivityContentHtml(data, { isTab: true });
58
- }
59
-
60
- // Render activity summary content (for modal)
61
- // Uses shared renderActivityContentHtml from utils.js (Maintenance Run 0004)
62
- function renderActivitySummary(data) {
63
- const content = document.getElementById('activity-content');
64
- content.innerHTML = renderActivityContentHtml(data, { isTab: false });
65
- }
66
-
67
- // Close activity modal
68
- function closeActivityModal() {
69
- document.getElementById('activity-modal').classList.add('hidden');
70
- }
71
-
72
- // Copy activity summary to clipboard (shared by tab and modal)
73
- function copyActivityToClipboard() {
74
- copyActivitySummary();
75
- }
76
-
77
- function copyActivitySummary() {
78
- if (!activityData) return;
79
-
80
- const hours = Math.floor(activityData.timeTracking.activeMinutes / 60);
81
- const mins = activityData.timeTracking.activeMinutes % 60;
82
- const uniqueBranches = new Set(activityData.commits.map(c => c.branch)).size;
83
- const mergedPrs = activityData.prs.filter(p => p.state === 'MERGED').length;
84
-
85
- let markdown = `## Today's Summary\n\n`;
86
-
87
- if (activityData.aiSummary) {
88
- markdown += `${activityData.aiSummary}\n\n`;
89
- }
90
-
91
- markdown += `### Activity\n`;
92
- markdown += `- ${activityData.commits.length} commits across ${uniqueBranches} branches\n`;
93
- markdown += `- ${activityData.files.length} files modified\n`;
94
- markdown += `- ${activityData.prs.length} PRs${mergedPrs > 0 ? ` (${mergedPrs} merged)` : ''}\n\n`;
95
-
96
- if (activityData.projectChanges && activityData.projectChanges.length > 0) {
97
- markdown += `### Projects Touched\n`;
98
- activityData.projectChanges.forEach(p => {
99
- markdown += `- ${p.id}: ${p.title} (${p.oldStatus} → ${p.newStatus})\n`;
100
- });
101
- markdown += '\n';
102
- }
103
-
104
- markdown += `### Time\n`;
105
- markdown += `Active time: ~${hours}h ${mins}m\n`;
106
-
107
- navigator.clipboard.writeText(markdown).then(() => {
108
- showToast('Copied to clipboard', 'success');
109
- }).catch(() => {
110
- showToast('Failed to copy', 'error');
111
- });
112
- }