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

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 (377) 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 +34 -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/shell.d.ts +15 -0
  35. package/dist/agent-farm/commands/shell.d.ts.map +1 -0
  36. package/dist/agent-farm/commands/shell.js +61 -0
  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 +58 -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 +2340 -109
  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 +9 -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 +2 -0
  115. package/dist/commands/consult/index.d.ts.map +1 -1
  116. package/dist/commands/consult/index.js +103 -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 +481 -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/consult-types/impl-review.md +9 -0
  199. package/skeleton/porch/prompts/defend.md +1 -1
  200. package/skeleton/porch/prompts/evaluate.md +2 -2
  201. package/skeleton/porch/prompts/implement.md +1 -1
  202. package/skeleton/porch/prompts/plan.md +1 -1
  203. package/skeleton/porch/prompts/review.md +4 -4
  204. package/skeleton/porch/prompts/specify.md +1 -1
  205. package/skeleton/porch/prompts/understand.md +2 -2
  206. package/skeleton/protocol-schema.json +282 -0
  207. package/skeleton/protocols/bugfix/builder-prompt.md +54 -0
  208. package/skeleton/protocols/bugfix/prompts/fix.md +77 -0
  209. package/skeleton/protocols/bugfix/prompts/investigate.md +77 -0
  210. package/skeleton/protocols/bugfix/prompts/pr.md +61 -0
  211. package/skeleton/protocols/bugfix/protocol.json +19 -2
  212. package/skeleton/protocols/experiment/builder-prompt.md +52 -0
  213. package/skeleton/protocols/experiment/protocol.json +101 -0
  214. package/skeleton/protocols/experiment/protocol.md +3 -3
  215. package/skeleton/protocols/experiment/templates/notes.md +1 -1
  216. package/skeleton/protocols/maintain/builder-prompt.md +46 -0
  217. package/skeleton/protocols/maintain/prompts/audit.md +111 -0
  218. package/skeleton/protocols/maintain/prompts/clean.md +91 -0
  219. package/skeleton/protocols/maintain/prompts/sync.md +113 -0
  220. package/skeleton/protocols/maintain/prompts/verify.md +110 -0
  221. package/skeleton/protocols/maintain/protocol.json +141 -0
  222. package/skeleton/protocols/maintain/protocol.md +14 -8
  223. package/skeleton/protocols/protocol-schema.json +54 -1
  224. package/skeleton/protocols/spir/builder-prompt.md +59 -0
  225. package/skeleton/protocols/spir/prompts/implement.md +208 -0
  226. package/skeleton/protocols/{spider → spir}/prompts/plan.md +6 -70
  227. package/skeleton/protocols/{spider → spir}/prompts/review.md +7 -25
  228. package/skeleton/protocols/{spider → spir}/prompts/specify.md +33 -61
  229. package/skeleton/protocols/spir/protocol.json +152 -0
  230. package/skeleton/protocols/{spider → spir}/protocol.md +35 -21
  231. package/skeleton/protocols/{spider → spir}/templates/plan.md +14 -0
  232. package/skeleton/protocols/{spider → spir}/templates/review.md +1 -1
  233. package/skeleton/protocols/tick/builder-prompt.md +56 -0
  234. package/skeleton/protocols/tick/protocol.json +7 -2
  235. package/skeleton/protocols/tick/protocol.md +18 -18
  236. package/skeleton/protocols/tick/templates/review.md +1 -1
  237. package/skeleton/resources/commands/agent-farm.md +25 -43
  238. package/skeleton/resources/commands/overview.md +7 -17
  239. package/skeleton/resources/workflow-reference.md +4 -4
  240. package/skeleton/roles/architect.md +152 -315
  241. package/skeleton/roles/builder.md +109 -218
  242. package/skeleton/templates/AGENTS.md +2 -2
  243. package/skeleton/templates/CLAUDE.md +2 -2
  244. package/skeleton/templates/cheatsheet.md +7 -5
  245. package/skeleton/templates/projectlist.md +1 -1
  246. package/templates/dashboard/index.html +17 -43
  247. package/templates/dashboard/js/dialogs.js +7 -7
  248. package/templates/dashboard/js/files.js +2 -2
  249. package/templates/dashboard/js/main.js +4 -4
  250. package/templates/dashboard/js/projects.js +3 -3
  251. package/templates/dashboard/js/tabs.js +1 -1
  252. package/templates/dashboard/js/utils.js +22 -87
  253. package/templates/open.html +26 -0
  254. package/templates/tower.html +542 -27
  255. package/dist/agent-farm/commands/kickoff.d.ts +0 -19
  256. package/dist/agent-farm/commands/kickoff.d.ts.map +0 -1
  257. package/dist/agent-farm/commands/kickoff.js +0 -331
  258. package/dist/agent-farm/commands/kickoff.js.map +0 -1
  259. package/dist/agent-farm/commands/rename.d.ts +0 -13
  260. package/dist/agent-farm/commands/rename.d.ts.map +0 -1
  261. package/dist/agent-farm/commands/rename.js +0 -33
  262. package/dist/agent-farm/commands/rename.js.map +0 -1
  263. package/dist/agent-farm/commands/tutorial.d.ts +0 -10
  264. package/dist/agent-farm/commands/tutorial.d.ts.map +0 -1
  265. package/dist/agent-farm/commands/tutorial.js +0 -49
  266. package/dist/agent-farm/commands/tutorial.js.map +0 -1
  267. package/dist/agent-farm/commands/util.d.ts +0 -15
  268. package/dist/agent-farm/commands/util.d.ts.map +0 -1
  269. package/dist/agent-farm/commands/util.js +0 -108
  270. package/dist/agent-farm/commands/util.js.map +0 -1
  271. package/dist/agent-farm/servers/dashboard-server.d.ts +0 -7
  272. package/dist/agent-farm/servers/dashboard-server.d.ts.map +0 -1
  273. package/dist/agent-farm/servers/dashboard-server.js +0 -1872
  274. package/dist/agent-farm/servers/dashboard-server.js.map +0 -1
  275. package/dist/agent-farm/servers/open-server.d.ts +0 -7
  276. package/dist/agent-farm/servers/open-server.d.ts.map +0 -1
  277. package/dist/agent-farm/servers/open-server.js +0 -315
  278. package/dist/agent-farm/servers/open-server.js.map +0 -1
  279. package/dist/agent-farm/tutorial/index.d.ts +0 -8
  280. package/dist/agent-farm/tutorial/index.d.ts.map +0 -1
  281. package/dist/agent-farm/tutorial/index.js +0 -8
  282. package/dist/agent-farm/tutorial/index.js.map +0 -1
  283. package/dist/agent-farm/tutorial/prompts.d.ts +0 -57
  284. package/dist/agent-farm/tutorial/prompts.d.ts.map +0 -1
  285. package/dist/agent-farm/tutorial/prompts.js +0 -147
  286. package/dist/agent-farm/tutorial/prompts.js.map +0 -1
  287. package/dist/agent-farm/tutorial/runner.d.ts +0 -52
  288. package/dist/agent-farm/tutorial/runner.d.ts.map +0 -1
  289. package/dist/agent-farm/tutorial/runner.js +0 -204
  290. package/dist/agent-farm/tutorial/runner.js.map +0 -1
  291. package/dist/agent-farm/tutorial/state.d.ts +0 -26
  292. package/dist/agent-farm/tutorial/state.d.ts.map +0 -1
  293. package/dist/agent-farm/tutorial/state.js +0 -89
  294. package/dist/agent-farm/tutorial/state.js.map +0 -1
  295. package/dist/agent-farm/tutorial/steps/first-spec.d.ts +0 -7
  296. package/dist/agent-farm/tutorial/steps/first-spec.d.ts.map +0 -1
  297. package/dist/agent-farm/tutorial/steps/first-spec.js +0 -136
  298. package/dist/agent-farm/tutorial/steps/first-spec.js.map +0 -1
  299. package/dist/agent-farm/tutorial/steps/implementation.d.ts +0 -7
  300. package/dist/agent-farm/tutorial/steps/implementation.d.ts.map +0 -1
  301. package/dist/agent-farm/tutorial/steps/implementation.js +0 -76
  302. package/dist/agent-farm/tutorial/steps/implementation.js.map +0 -1
  303. package/dist/agent-farm/tutorial/steps/index.d.ts +0 -10
  304. package/dist/agent-farm/tutorial/steps/index.d.ts.map +0 -1
  305. package/dist/agent-farm/tutorial/steps/index.js +0 -10
  306. package/dist/agent-farm/tutorial/steps/index.js.map +0 -1
  307. package/dist/agent-farm/tutorial/steps/planning.d.ts +0 -7
  308. package/dist/agent-farm/tutorial/steps/planning.d.ts.map +0 -1
  309. package/dist/agent-farm/tutorial/steps/planning.js +0 -143
  310. package/dist/agent-farm/tutorial/steps/planning.js.map +0 -1
  311. package/dist/agent-farm/tutorial/steps/review.d.ts +0 -7
  312. package/dist/agent-farm/tutorial/steps/review.d.ts.map +0 -1
  313. package/dist/agent-farm/tutorial/steps/review.js +0 -78
  314. package/dist/agent-farm/tutorial/steps/review.js.map +0 -1
  315. package/dist/agent-farm/tutorial/steps/setup.d.ts +0 -7
  316. package/dist/agent-farm/tutorial/steps/setup.d.ts.map +0 -1
  317. package/dist/agent-farm/tutorial/steps/setup.js +0 -126
  318. package/dist/agent-farm/tutorial/steps/setup.js.map +0 -1
  319. package/dist/agent-farm/tutorial/steps/welcome.d.ts +0 -7
  320. package/dist/agent-farm/tutorial/steps/welcome.d.ts.map +0 -1
  321. package/dist/agent-farm/tutorial/steps/welcome.js +0 -50
  322. package/dist/agent-farm/tutorial/steps/welcome.js.map +0 -1
  323. package/dist/commands/pcheck/cache.d.ts +0 -48
  324. package/dist/commands/pcheck/cache.d.ts.map +0 -1
  325. package/dist/commands/pcheck/cache.js +0 -170
  326. package/dist/commands/pcheck/cache.js.map +0 -1
  327. package/dist/commands/pcheck/evaluator.d.ts +0 -15
  328. package/dist/commands/pcheck/evaluator.d.ts.map +0 -1
  329. package/dist/commands/pcheck/evaluator.js +0 -246
  330. package/dist/commands/pcheck/evaluator.js.map +0 -1
  331. package/dist/commands/pcheck/index.d.ts +0 -12
  332. package/dist/commands/pcheck/index.d.ts.map +0 -1
  333. package/dist/commands/pcheck/index.js +0 -249
  334. package/dist/commands/pcheck/index.js.map +0 -1
  335. package/dist/commands/pcheck/parser.d.ts +0 -39
  336. package/dist/commands/pcheck/parser.d.ts.map +0 -1
  337. package/dist/commands/pcheck/parser.js +0 -155
  338. package/dist/commands/pcheck/parser.js.map +0 -1
  339. package/dist/commands/pcheck/types.d.ts +0 -82
  340. package/dist/commands/pcheck/types.d.ts.map +0 -1
  341. package/dist/commands/pcheck/types.js +0 -5
  342. package/dist/commands/pcheck/types.js.map +0 -1
  343. package/dist/commands/porch/consultation.d.ts +0 -56
  344. package/dist/commands/porch/consultation.d.ts.map +0 -1
  345. package/dist/commands/porch/consultation.js +0 -330
  346. package/dist/commands/porch/consultation.js.map +0 -1
  347. package/dist/commands/porch/notifications.d.ts +0 -99
  348. package/dist/commands/porch/notifications.d.ts.map +0 -1
  349. package/dist/commands/porch/notifications.js +0 -223
  350. package/dist/commands/porch/notifications.js.map +0 -1
  351. package/dist/commands/porch/plan-parser.d.ts +0 -38
  352. package/dist/commands/porch/plan-parser.d.ts.map +0 -1
  353. package/dist/commands/porch/plan-parser.js +0 -166
  354. package/dist/commands/porch/plan-parser.js.map +0 -1
  355. package/dist/commands/porch/protocol-loader.d.ts +0 -46
  356. package/dist/commands/porch/protocol-loader.d.ts.map +0 -1
  357. package/dist/commands/porch/protocol-loader.js +0 -253
  358. package/dist/commands/porch/protocol-loader.js.map +0 -1
  359. package/dist/commands/porch/signal-parser.d.ts +0 -88
  360. package/dist/commands/porch/signal-parser.d.ts.map +0 -1
  361. package/dist/commands/porch/signal-parser.js +0 -148
  362. package/dist/commands/porch/signal-parser.js.map +0 -1
  363. package/dist/commands/tower.d.ts +0 -16
  364. package/dist/commands/tower.d.ts.map +0 -1
  365. package/dist/commands/tower.js +0 -21
  366. package/dist/commands/tower.js.map +0 -1
  367. package/skeleton/config.json +0 -7
  368. package/skeleton/porch/protocols/bugfix.json +0 -85
  369. package/skeleton/porch/protocols/spider.json +0 -135
  370. package/skeleton/porch/protocols/tick.json +0 -76
  371. package/skeleton/protocols/spider/prompts/defend.md +0 -215
  372. package/skeleton/protocols/spider/prompts/evaluate.md +0 -241
  373. package/skeleton/protocols/spider/prompts/implement.md +0 -149
  374. package/skeleton/protocols/spider/protocol.json +0 -210
  375. package/templates/dashboard/css/activity.css +0 -151
  376. package/templates/dashboard/js/activity.js +0 -112
  377. /package/skeleton/protocols/{spider → spir}/templates/spec.md +0 -0
@@ -1,99 +0,0 @@
1
- /**
2
- * Porch Notifications
3
- *
4
- * Simple notification system for porch events.
5
- * Supports console logging and optional desktop notifications.
6
- */
7
- import type { ConsultationFeedback } from './types.js';
8
- /**
9
- * Notification event types
10
- */
11
- export type NotificationEvent = 'phase-start' | 'phase-complete' | 'gate-pending' | 'gate-approved' | 'consultation-start' | 'consultation-complete' | 'check-failed' | 'blocked' | 'error';
12
- /**
13
- * Notification payload
14
- */
15
- export interface NotificationPayload {
16
- event: NotificationEvent;
17
- projectId: string;
18
- phase?: string;
19
- message: string;
20
- details?: string;
21
- }
22
- /**
23
- * Send a notification
24
- */
25
- export declare function notify(payload: NotificationPayload, options?: {
26
- desktop?: boolean;
27
- }): Promise<void>;
28
- /**
29
- * Notify phase start
30
- */
31
- export declare function notifyPhaseStart(projectId: string, phase: string, options?: {
32
- desktop?: boolean;
33
- }): Promise<void>;
34
- /**
35
- * Notify phase complete
36
- */
37
- export declare function notifyPhaseComplete(projectId: string, phase: string, options?: {
38
- desktop?: boolean;
39
- }): Promise<void>;
40
- /**
41
- * Notify gate pending approval
42
- */
43
- export declare function notifyGatePending(projectId: string, phase: string, gateName: string, options?: {
44
- desktop?: boolean;
45
- }): Promise<void>;
46
- /**
47
- * Notify gate approved
48
- */
49
- export declare function notifyGateApproved(projectId: string, gateName: string, options?: {
50
- desktop?: boolean;
51
- }): Promise<void>;
52
- /**
53
- * Notify consultation start
54
- */
55
- export declare function notifyConsultationStart(projectId: string, phase: string, models: string[], options?: {
56
- desktop?: boolean;
57
- }): Promise<void>;
58
- /**
59
- * Notify consultation complete
60
- */
61
- export declare function notifyConsultationComplete(projectId: string, phase: string, feedback: ConsultationFeedback[], allApproved: boolean, options?: {
62
- desktop?: boolean;
63
- }): Promise<void>;
64
- /**
65
- * Notify check failed
66
- */
67
- export declare function notifyCheckFailed(projectId: string, phase: string, checkName: string, error: string, options?: {
68
- desktop?: boolean;
69
- }): Promise<void>;
70
- /**
71
- * Notify blocked
72
- */
73
- export declare function notifyBlocked(projectId: string, reason: string, options?: {
74
- desktop?: boolean;
75
- }): Promise<void>;
76
- /**
77
- * Notify error
78
- */
79
- export declare function notifyError(projectId: string, error: string, options?: {
80
- desktop?: boolean;
81
- }): Promise<void>;
82
- /**
83
- * Create a notification context for a project
84
- * Returns bound notification functions
85
- */
86
- export declare function createNotifier(projectId: string, options?: {
87
- desktop?: boolean;
88
- }): {
89
- phaseStart: (phase: string) => Promise<void>;
90
- phaseComplete: (phase: string) => Promise<void>;
91
- gatePending: (phase: string, gateName: string) => Promise<void>;
92
- gateApproved: (gateName: string) => Promise<void>;
93
- consultationStart: (phase: string, models: string[]) => Promise<void>;
94
- consultationComplete: (phase: string, feedback: ConsultationFeedback[], allApproved: boolean) => Promise<void>;
95
- checkFailed: (phase: string, checkName: string, error: string) => Promise<void>;
96
- blocked: (reason: string) => Promise<void>;
97
- error: (error: string) => Promise<void>;
98
- };
99
- //# sourceMappingURL=notifications.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../../../src/commands/porch/notifications.ts"],"names":[],"mappings":"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"}
@@ -1,223 +0,0 @@
1
- /**
2
- * Porch Notifications
3
- *
4
- * Simple notification system for porch events.
5
- * Supports console logging and optional desktop notifications.
6
- */
7
- import { spawn } from 'node:child_process';
8
- import chalk from 'chalk';
9
- /**
10
- * Send a desktop notification (macOS only)
11
- * Fails silently if osascript is not available
12
- */
13
- async function sendDesktopNotification(title, message) {
14
- if (process.platform !== 'darwin') {
15
- return;
16
- }
17
- return new Promise((resolve) => {
18
- const script = `display notification "${message.replace(/"/g, '\\"')}" with title "${title.replace(/"/g, '\\"')}"`;
19
- const proc = spawn('osascript', ['-e', script], { stdio: 'ignore' });
20
- proc.on('close', () => resolve());
21
- proc.on('error', () => resolve());
22
- // Don't wait forever
23
- setTimeout(() => resolve(), 2000);
24
- });
25
- }
26
- /**
27
- * Format and log a notification to console
28
- */
29
- function logNotification(payload) {
30
- const { event, projectId, phase, message, details } = payload;
31
- let icon;
32
- let color;
33
- switch (event) {
34
- case 'phase-start':
35
- icon = '>';
36
- color = chalk.blue;
37
- break;
38
- case 'phase-complete':
39
- icon = '✓';
40
- color = chalk.green;
41
- break;
42
- case 'gate-pending':
43
- icon = '◉';
44
- color = chalk.yellow;
45
- break;
46
- case 'gate-approved':
47
- icon = '✓';
48
- color = chalk.green;
49
- break;
50
- case 'consultation-start':
51
- icon = '⟳';
52
- color = chalk.blue;
53
- break;
54
- case 'consultation-complete':
55
- icon = '✓';
56
- color = chalk.green;
57
- break;
58
- case 'check-failed':
59
- icon = '✗';
60
- color = chalk.red;
61
- break;
62
- case 'blocked':
63
- icon = '!';
64
- color = chalk.yellow;
65
- break;
66
- case 'error':
67
- icon = '✗';
68
- color = chalk.red;
69
- break;
70
- default:
71
- icon = '•';
72
- color = chalk.gray;
73
- }
74
- const prefix = phase
75
- ? `[porch:${projectId}:${phase}]`
76
- : `[porch:${projectId}]`;
77
- console.log(color(`${icon} ${prefix} ${message}`));
78
- if (details) {
79
- console.log(chalk.gray(` ${details}`));
80
- }
81
- }
82
- /**
83
- * Send a notification
84
- */
85
- export async function notify(payload, options = {}) {
86
- // Always log to console
87
- logNotification(payload);
88
- // Desktop notification for important events
89
- if (options.desktop) {
90
- const shouldNotify = payload.event === 'gate-pending' ||
91
- payload.event === 'consultation-complete' ||
92
- payload.event === 'check-failed' ||
93
- payload.event === 'blocked' ||
94
- payload.event === 'error';
95
- if (shouldNotify) {
96
- const title = `Porch: ${payload.projectId}`;
97
- await sendDesktopNotification(title, payload.message);
98
- }
99
- }
100
- }
101
- /**
102
- * Notify phase start
103
- */
104
- export async function notifyPhaseStart(projectId, phase, options = {}) {
105
- await notify({
106
- event: 'phase-start',
107
- projectId,
108
- phase,
109
- message: `Starting phase: ${phase}`,
110
- }, options);
111
- }
112
- /**
113
- * Notify phase complete
114
- */
115
- export async function notifyPhaseComplete(projectId, phase, options = {}) {
116
- await notify({
117
- event: 'phase-complete',
118
- projectId,
119
- phase,
120
- message: `Completed phase: ${phase}`,
121
- }, options);
122
- }
123
- /**
124
- * Notify gate pending approval
125
- */
126
- export async function notifyGatePending(projectId, phase, gateName, options = {}) {
127
- await notify({
128
- event: 'gate-pending',
129
- projectId,
130
- phase,
131
- message: `Gate pending: ${gateName}`,
132
- details: `Run: porch approve ${projectId} ${gateName}`,
133
- }, options);
134
- }
135
- /**
136
- * Notify gate approved
137
- */
138
- export async function notifyGateApproved(projectId, gateName, options = {}) {
139
- await notify({
140
- event: 'gate-approved',
141
- projectId,
142
- message: `Gate approved: ${gateName}`,
143
- }, options);
144
- }
145
- /**
146
- * Notify consultation start
147
- */
148
- export async function notifyConsultationStart(projectId, phase, models, options = {}) {
149
- await notify({
150
- event: 'consultation-start',
151
- projectId,
152
- phase,
153
- message: `Starting ${models.length}-way consultation`,
154
- details: `Models: ${models.join(', ')}`,
155
- }, options);
156
- }
157
- /**
158
- * Notify consultation complete
159
- */
160
- export async function notifyConsultationComplete(projectId, phase, feedback, allApproved, options = {}) {
161
- const approveCount = feedback.filter((f) => f.verdict === 'APPROVE').length;
162
- const changeCount = feedback.filter((f) => f.verdict === 'REQUEST_CHANGES').length;
163
- const message = allApproved
164
- ? `Consultation complete: All ${approveCount} models approved`
165
- : `Consultation complete: ${approveCount} approved, ${changeCount} requested changes`;
166
- await notify({
167
- event: 'consultation-complete',
168
- projectId,
169
- phase,
170
- message,
171
- details: feedback.map((f) => `${f.model}: ${f.verdict}`).join(', '),
172
- }, options);
173
- }
174
- /**
175
- * Notify check failed
176
- */
177
- export async function notifyCheckFailed(projectId, phase, checkName, error, options = {}) {
178
- await notify({
179
- event: 'check-failed',
180
- projectId,
181
- phase,
182
- message: `Check failed: ${checkName}`,
183
- details: error,
184
- }, options);
185
- }
186
- /**
187
- * Notify blocked
188
- */
189
- export async function notifyBlocked(projectId, reason, options = {}) {
190
- await notify({
191
- event: 'blocked',
192
- projectId,
193
- message: `Blocked: ${reason}`,
194
- }, options);
195
- }
196
- /**
197
- * Notify error
198
- */
199
- export async function notifyError(projectId, error, options = {}) {
200
- await notify({
201
- event: 'error',
202
- projectId,
203
- message: `Error: ${error}`,
204
- }, options);
205
- }
206
- /**
207
- * Create a notification context for a project
208
- * Returns bound notification functions
209
- */
210
- export function createNotifier(projectId, options = {}) {
211
- return {
212
- phaseStart: (phase) => notifyPhaseStart(projectId, phase, options),
213
- phaseComplete: (phase) => notifyPhaseComplete(projectId, phase, options),
214
- gatePending: (phase, gateName) => notifyGatePending(projectId, phase, gateName, options),
215
- gateApproved: (gateName) => notifyGateApproved(projectId, gateName, options),
216
- consultationStart: (phase, models) => notifyConsultationStart(projectId, phase, models, options),
217
- consultationComplete: (phase, feedback, allApproved) => notifyConsultationComplete(projectId, phase, feedback, allApproved, options),
218
- checkFailed: (phase, checkName, error) => notifyCheckFailed(projectId, phase, checkName, error, options),
219
- blocked: (reason) => notifyBlocked(projectId, reason, options),
220
- error: (error) => notifyError(projectId, error, options),
221
- };
222
- }
223
- //# sourceMappingURL=notifications.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"notifications.js","sourceRoot":"","sources":["../../../src/commands/porch/notifications.ts"],"names":[],"mappings":"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"}
@@ -1,38 +0,0 @@
1
- /**
2
- * Plan Parser
3
- *
4
- * Extracts implementation phases from plan.md files.
5
- * Supports the standard codev plan format with `### Phase N: <title>` headers.
6
- */
7
- import type { PlanPhase } from './types.js';
8
- /**
9
- * Extract phases from a plan markdown file
10
- *
11
- * Looks for either:
12
- * - `## Implementation Phases` or `## Phases` section
13
- * - `### Phase N: <title>` headers within that section
14
- *
15
- * Falls back to treating entire implementation as single phase if no structured phases found.
16
- */
17
- export declare function extractPhasesFromPlan(planContent: string): PlanPhase[];
18
- /**
19
- * Extract phases from a plan file path
20
- */
21
- export declare function extractPhasesFromPlanFile(planFilePath: string): PlanPhase[];
22
- /**
23
- * Find the plan file for a project
24
- */
25
- export declare function findPlanFile(projectRoot: string, projectId: string, projectName?: string): string | null;
26
- /**
27
- * Get the current phase ID based on completed phases
28
- */
29
- export declare function getCurrentPhase(phases: PlanPhase[], completedPhases: Set<string>): PlanPhase | null;
30
- /**
31
- * Get the next phase after a given phase
32
- */
33
- export declare function getNextPhase(phases: PlanPhase[], currentPhaseId: string): PlanPhase | null;
34
- /**
35
- * Check if all phases are complete
36
- */
37
- export declare function allPhasesComplete(phases: PlanPhase[], completedPhases: Set<string>): boolean;
38
- //# sourceMappingURL=plan-parser.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plan-parser.d.ts","sourceRoot":"","sources":["../../../src/commands/porch/plan-parser.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,EAAE,CAwEtE;AAkCD;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,EAAE,CAO3E;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA0BxG;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,SAAS,EAAE,EACnB,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,GAC3B,SAAS,GAAG,IAAI,CAOlB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,SAAS,EAAE,EACnB,cAAc,EAAE,MAAM,GACrB,SAAS,GAAG,IAAI,CAMlB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,SAAS,EAAE,EACnB,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,GAC3B,OAAO,CAET"}
@@ -1,166 +0,0 @@
1
- /**
2
- * Plan Parser
3
- *
4
- * Extracts implementation phases from plan.md files.
5
- * Supports the standard codev plan format with `### Phase N: <title>` headers.
6
- */
7
- import * as fs from 'node:fs';
8
- /**
9
- * Extract phases from a plan markdown file
10
- *
11
- * Looks for either:
12
- * - `## Implementation Phases` or `## Phases` section
13
- * - `### Phase N: <title>` headers within that section
14
- *
15
- * Falls back to treating entire implementation as single phase if no structured phases found.
16
- */
17
- export function extractPhasesFromPlan(planContent) {
18
- const phases = [];
19
- // Look for the phases section
20
- const phaseSectionMatch = planContent.match(/##\s*(?:Implementation\s+)?Phases\s*\n([\s\S]*?)(?=\n##\s|$)/i);
21
- if (!phaseSectionMatch) {
22
- // No phases section found, return single default phase
23
- return [{
24
- id: 'phase_1',
25
- title: 'Implementation',
26
- description: 'Single implementation phase (no structured phases in plan)',
27
- }];
28
- }
29
- const phasesSection = phaseSectionMatch[1];
30
- // Extract individual phases with ### Phase N: <title> format
31
- const phaseRegex = /###\s*Phase\s+(\d+):\s*([^\n]+)\n([\s\S]*?)(?=\n###\s*Phase|\n##\s|$)/gi;
32
- let match;
33
- while ((match = phaseRegex.exec(phasesSection)) !== null) {
34
- const [, number, title, content] = match;
35
- const phaseId = `phase_${number}`;
36
- // Extract description from content (bullet points or first paragraph)
37
- const description = extractPhaseDescription(content);
38
- phases.push({
39
- id: phaseId,
40
- title: title.trim(),
41
- description,
42
- });
43
- }
44
- // If no phases found with numbered format, try alternative format
45
- if (phases.length === 0) {
46
- // Try format: ### <title> (without Phase N prefix)
47
- const altRegex = /###\s*([^\n]+)\n([\s\S]*?)(?=\n###|\n##\s|$)/gi;
48
- let phaseNum = 1;
49
- while ((match = altRegex.exec(phasesSection)) !== null) {
50
- const [, title, content] = match;
51
- // Skip if this looks like a non-phase section
52
- if (title.toLowerCase().includes('dependencies') ||
53
- title.toLowerCase().includes('acceptance') ||
54
- title.toLowerCase().includes('test')) {
55
- continue;
56
- }
57
- phases.push({
58
- id: `phase_${phaseNum}`,
59
- title: title.trim(),
60
- description: extractPhaseDescription(content),
61
- });
62
- phaseNum++;
63
- }
64
- }
65
- // If still no phases, return single default
66
- if (phases.length === 0) {
67
- return [{
68
- id: 'phase_1',
69
- title: 'Implementation',
70
- description: 'Single implementation phase (could not parse plan phases)',
71
- }];
72
- }
73
- return phases;
74
- }
75
- /**
76
- * Extract a description from phase content
77
- * Takes the first few bullet points or the first paragraph
78
- */
79
- function extractPhaseDescription(content) {
80
- const lines = content.trim().split('\n');
81
- const descLines = [];
82
- for (const line of lines) {
83
- const trimmed = line.trim();
84
- // Stop at subheadings
85
- if (trimmed.startsWith('###') || trimmed.startsWith('####')) {
86
- break;
87
- }
88
- // Collect bullet points
89
- if (trimmed.startsWith('- ') || trimmed.startsWith('* ')) {
90
- const bulletContent = trimmed.slice(2).trim();
91
- // Skip long bullets
92
- if (bulletContent.length < 100) {
93
- descLines.push(bulletContent);
94
- }
95
- }
96
- // Limit to first 5 items
97
- if (descLines.length >= 5)
98
- break;
99
- }
100
- return descLines.join(', ');
101
- }
102
- /**
103
- * Extract phases from a plan file path
104
- */
105
- export function extractPhasesFromPlanFile(planFilePath) {
106
- if (!fs.existsSync(planFilePath)) {
107
- throw new Error(`Plan file not found: ${planFilePath}`);
108
- }
109
- const content = fs.readFileSync(planFilePath, 'utf-8');
110
- return extractPhasesFromPlan(content);
111
- }
112
- /**
113
- * Find the plan file for a project
114
- */
115
- export function findPlanFile(projectRoot, projectId, projectName) {
116
- const possiblePaths = [
117
- // New structure: codev/projects/<id>-<name>/plan.md
118
- `${projectRoot}/codev/projects/${projectId}-${projectName}/plan.md`,
119
- `${projectRoot}/codev/projects/${projectId}/plan.md`,
120
- // Legacy structure: codev/plans/<id>-<name>.md
121
- `${projectRoot}/codev/plans/${projectId}-${projectName}.md`,
122
- ];
123
- // Also try to find by ID prefix in legacy structure
124
- const plansDir = `${projectRoot}/codev/plans`;
125
- if (fs.existsSync(plansDir)) {
126
- const files = fs.readdirSync(plansDir);
127
- const match = files.find(f => f.startsWith(`${projectId}-`) && f.endsWith('.md'));
128
- if (match) {
129
- possiblePaths.push(`${plansDir}/${match}`);
130
- }
131
- }
132
- for (const planPath of possiblePaths) {
133
- if (fs.existsSync(planPath)) {
134
- return planPath;
135
- }
136
- }
137
- return null;
138
- }
139
- /**
140
- * Get the current phase ID based on completed phases
141
- */
142
- export function getCurrentPhase(phases, completedPhases) {
143
- for (const phase of phases) {
144
- if (!completedPhases.has(phase.id)) {
145
- return phase;
146
- }
147
- }
148
- return null; // All phases complete
149
- }
150
- /**
151
- * Get the next phase after a given phase
152
- */
153
- export function getNextPhase(phases, currentPhaseId) {
154
- const currentIndex = phases.findIndex(p => p.id === currentPhaseId);
155
- if (currentIndex >= 0 && currentIndex < phases.length - 1) {
156
- return phases[currentIndex + 1];
157
- }
158
- return null;
159
- }
160
- /**
161
- * Check if all phases are complete
162
- */
163
- export function allPhasesComplete(phases, completedPhases) {
164
- return phases.every(p => completedPhases.has(p.id));
165
- }
166
- //# sourceMappingURL=plan-parser.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plan-parser.js","sourceRoot":"","sources":["../../../src/commands/porch/plan-parser.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAG9B;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CAAC,WAAmB;IACvD,MAAM,MAAM,GAAgB,EAAE,CAAC;IAE/B,8BAA8B;IAC9B,MAAM,iBAAiB,GAAG,WAAW,CAAC,KAAK,CACzC,+DAA+D,CAChE,CAAC;IAEF,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,uDAAuD;QACvD,OAAO,CAAC;gBACN,EAAE,EAAE,SAAS;gBACb,KAAK,EAAE,gBAAgB;gBACvB,WAAW,EAAE,4DAA4D;aAC1E,CAAC,CAAC;IACL,CAAC;IAED,MAAM,aAAa,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAE3C,6DAA6D;IAC7D,MAAM,UAAU,GAAG,yEAAyE,CAAC;IAC7F,IAAI,KAAK,CAAC;IAEV,OAAO,CAAC,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QACzD,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC;QACzC,MAAM,OAAO,GAAG,SAAS,MAAM,EAAE,CAAC;QAElC,sEAAsE;QACtE,MAAM,WAAW,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;QAErD,MAAM,CAAC,IAAI,CAAC;YACV,EAAE,EAAE,OAAO;YACX,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE;YACnB,WAAW;SACZ,CAAC,CAAC;IACL,CAAC;IAED,kEAAkE;IAClE,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,mDAAmD;QACnD,MAAM,QAAQ,GAAG,gDAAgD,CAAC;QAElE,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACvD,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC;YAEjC,8CAA8C;YAC9C,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;gBAC5C,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;gBAC1C,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACzC,SAAS;YACX,CAAC;YAED,MAAM,CAAC,IAAI,CAAC;gBACV,EAAE,EAAE,SAAS,QAAQ,EAAE;gBACvB,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE;gBACnB,WAAW,EAAE,uBAAuB,CAAC,OAAO,CAAC;aAC9C,CAAC,CAAC;YACH,QAAQ,EAAE,CAAC;QACb,CAAC;IACH,CAAC;IAED,4CAA4C;IAC5C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC;gBACN,EAAE,EAAE,SAAS;gBACb,KAAK,EAAE,gBAAgB;gBACvB,WAAW,EAAE,2DAA2D;aACzE,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,SAAS,uBAAuB,CAAC,OAAe;IAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,SAAS,GAAa,EAAE,CAAC;IAE/B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAE5B,sBAAsB;QACtB,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5D,MAAM;QACR,CAAC;QAED,wBAAwB;QACxB,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACzD,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC9C,oBAAoB;YACpB,IAAI,aAAa,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;gBAC/B,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;QAED,yBAAyB;QACzB,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC;YAAE,MAAM;IACnC,CAAC;IAED,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB,CAAC,YAAoB;IAC5D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,wBAAwB,YAAY,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACvD,OAAO,qBAAqB,CAAC,OAAO,CAAC,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,WAAmB,EAAE,SAAiB,EAAE,WAAoB;IACvF,MAAM,aAAa,GAAG;QACpB,oDAAoD;QACpD,GAAG,WAAW,mBAAmB,SAAS,IAAI,WAAW,UAAU;QACnE,GAAG,WAAW,mBAAmB,SAAS,UAAU;QACpD,+CAA+C;QAC/C,GAAG,WAAW,gBAAgB,SAAS,IAAI,WAAW,KAAK;KAC5D,CAAC;IAEF,oDAAoD;IACpD,MAAM,QAAQ,GAAG,GAAG,WAAW,cAAc,CAAC;IAC9C,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QACvC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,SAAS,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QAClF,IAAI,KAAK,EAAE,CAAC;YACV,aAAa,CAAC,IAAI,CAAC,GAAG,QAAQ,IAAI,KAAK,EAAE,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,KAAK,MAAM,QAAQ,IAAI,aAAa,EAAE,CAAC;QACrC,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,OAAO,QAAQ,CAAC;QAClB,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAC7B,MAAmB,EACnB,eAA4B;IAE5B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;YACnC,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC,CAAC,sBAAsB;AACrC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAC1B,MAAmB,EACnB,cAAsB;IAEtB,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,cAAc,CAAC,CAAC;IACpE,IAAI,YAAY,IAAI,CAAC,IAAI,YAAY,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1D,OAAO,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAAmB,EACnB,eAA4B;IAE5B,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACtD,CAAC"}
@@ -1,46 +0,0 @@
1
- /**
2
- * Protocol Loader
3
- *
4
- * Loads and validates protocol definitions from JSON files.
5
- */
6
- import type { Protocol, Phase } from './types.js';
7
- /**
8
- * Find protocol JSON file
9
- */
10
- export declare function findProtocolFile(projectRoot: string, protocolName: string): string | null;
11
- /**
12
- * Load protocol from JSON file
13
- */
14
- export declare function loadProtocol(projectRoot: string, protocolName: string): Protocol | null;
15
- /**
16
- * Get all available protocols
17
- */
18
- export declare function listProtocols(projectRoot: string): string[];
19
- /**
20
- * Get default protocol (spider)
21
- */
22
- export declare function getDefaultProtocol(projectRoot: string): Protocol | null;
23
- /**
24
- * Validate a protocol has required phases
25
- */
26
- export declare function validateProtocol(protocol: Protocol): {
27
- valid: boolean;
28
- errors: string[];
29
- };
30
- /**
31
- * Get phase by ID
32
- */
33
- export declare function getPhase(protocol: Protocol, phaseId: string): Phase | null;
34
- /**
35
- * Get the next phase after a given phase
36
- */
37
- export declare function getNextPhase(protocol: Protocol, currentPhaseId: string): Phase | null;
38
- /**
39
- * Check if a phase is a terminal phase (no next phase)
40
- */
41
- export declare function isTerminalPhase(protocol: Protocol, phaseId: string): boolean;
42
- /**
43
- * Get phased phases (phases that run per plan phase)
44
- */
45
- export declare function getPhasedPhases(protocol: Protocol): Phase[];
46
- //# sourceMappingURL=protocol-loader.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"protocol-loader.d.ts","sourceRoot":"","sources":["../../../src/commands/porch/protocol-loader.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAyC,MAAM,YAAY,CAAC;AA8EzF;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQzF;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAevF;AAuID;;GAEG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAuB3D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAEvE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAmCzF;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI,CAE1E;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI,CAMrF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAG5E;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,QAAQ,GAAG,KAAK,EAAE,CAE3D"}