@cluesmith/codev 2.0.0-rc.7 → 2.0.0-rc.71

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 (456) 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-C7FtNK6Y.css +32 -0
  5. package/dashboard/dist/assets/index-CDAINZKT.js +131 -0
  6. package/dashboard/dist/assets/index-CDAINZKT.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 +173 -118
  10. package/dist/agent-farm/cli.js.map +1 -1
  11. package/dist/agent-farm/commands/architect.d.ts +3 -3
  12. package/dist/agent-farm/commands/architect.d.ts.map +1 -1
  13. package/dist/agent-farm/commands/architect.js +20 -147
  14. package/dist/agent-farm/commands/architect.js.map +1 -1
  15. package/dist/agent-farm/commands/attach.d.ts +13 -0
  16. package/dist/agent-farm/commands/attach.d.ts.map +1 -0
  17. package/dist/agent-farm/commands/attach.js +144 -0
  18. package/dist/agent-farm/commands/attach.js.map +1 -0
  19. package/dist/agent-farm/commands/cleanup.d.ts.map +1 -1
  20. package/dist/agent-farm/commands/cleanup.js +35 -19
  21. package/dist/agent-farm/commands/cleanup.js.map +1 -1
  22. package/dist/agent-farm/commands/consult.d.ts +3 -4
  23. package/dist/agent-farm/commands/consult.d.ts.map +1 -1
  24. package/dist/agent-farm/commands/consult.js +27 -37
  25. package/dist/agent-farm/commands/consult.js.map +1 -1
  26. package/dist/agent-farm/commands/index.d.ts +2 -2
  27. package/dist/agent-farm/commands/index.d.ts.map +1 -1
  28. package/dist/agent-farm/commands/index.js +2 -2
  29. package/dist/agent-farm/commands/index.js.map +1 -1
  30. package/dist/agent-farm/commands/open.d.ts +4 -2
  31. package/dist/agent-farm/commands/open.d.ts.map +1 -1
  32. package/dist/agent-farm/commands/open.js +33 -83
  33. package/dist/agent-farm/commands/open.js.map +1 -1
  34. package/dist/agent-farm/commands/send.d.ts +1 -1
  35. package/dist/agent-farm/commands/send.d.ts.map +1 -1
  36. package/dist/agent-farm/commands/send.js +60 -79
  37. package/dist/agent-farm/commands/send.js.map +1 -1
  38. package/dist/agent-farm/commands/shell.d.ts +15 -0
  39. package/dist/agent-farm/commands/shell.d.ts.map +1 -0
  40. package/dist/agent-farm/commands/shell.js +50 -0
  41. package/dist/agent-farm/commands/shell.js.map +1 -0
  42. package/dist/agent-farm/commands/spawn.d.ts.map +1 -1
  43. package/dist/agent-farm/commands/spawn.js +597 -281
  44. package/dist/agent-farm/commands/spawn.js.map +1 -1
  45. package/dist/agent-farm/commands/start.d.ts +10 -20
  46. package/dist/agent-farm/commands/start.d.ts.map +1 -1
  47. package/dist/agent-farm/commands/start.js +45 -491
  48. package/dist/agent-farm/commands/start.js.map +1 -1
  49. package/dist/agent-farm/commands/status.d.ts +2 -0
  50. package/dist/agent-farm/commands/status.d.ts.map +1 -1
  51. package/dist/agent-farm/commands/status.js +75 -24
  52. package/dist/agent-farm/commands/status.js.map +1 -1
  53. package/dist/agent-farm/commands/stop.d.ts +6 -0
  54. package/dist/agent-farm/commands/stop.d.ts.map +1 -1
  55. package/dist/agent-farm/commands/stop.js +49 -109
  56. package/dist/agent-farm/commands/stop.js.map +1 -1
  57. package/dist/agent-farm/commands/tower-cloud.d.ts +48 -0
  58. package/dist/agent-farm/commands/tower-cloud.d.ts.map +1 -0
  59. package/dist/agent-farm/commands/tower-cloud.js +329 -0
  60. package/dist/agent-farm/commands/tower-cloud.js.map +1 -0
  61. package/dist/agent-farm/commands/tower.d.ts +9 -0
  62. package/dist/agent-farm/commands/tower.d.ts.map +1 -1
  63. package/dist/agent-farm/commands/tower.js +59 -19
  64. package/dist/agent-farm/commands/tower.js.map +1 -1
  65. package/dist/agent-farm/db/index.d.ts +6 -2
  66. package/dist/agent-farm/db/index.d.ts.map +1 -1
  67. package/dist/agent-farm/db/index.js +246 -18
  68. package/dist/agent-farm/db/index.js.map +1 -1
  69. package/dist/agent-farm/db/migrate.d.ts +0 -4
  70. package/dist/agent-farm/db/migrate.d.ts.map +1 -1
  71. package/dist/agent-farm/db/migrate.js +6 -55
  72. package/dist/agent-farm/db/migrate.js.map +1 -1
  73. package/dist/agent-farm/db/schema.d.ts +3 -3
  74. package/dist/agent-farm/db/schema.d.ts.map +1 -1
  75. package/dist/agent-farm/db/schema.js +25 -19
  76. package/dist/agent-farm/db/schema.js.map +1 -1
  77. package/dist/agent-farm/db/types.d.ts +3 -13
  78. package/dist/agent-farm/db/types.d.ts.map +1 -1
  79. package/dist/agent-farm/db/types.js +3 -11
  80. package/dist/agent-farm/db/types.js.map +1 -1
  81. package/dist/agent-farm/hq-connector.d.ts +2 -6
  82. package/dist/agent-farm/hq-connector.d.ts.map +1 -1
  83. package/dist/agent-farm/hq-connector.js +2 -17
  84. package/dist/agent-farm/hq-connector.js.map +1 -1
  85. package/dist/agent-farm/lib/cloud-config.d.ts +59 -0
  86. package/dist/agent-farm/lib/cloud-config.d.ts.map +1 -0
  87. package/dist/agent-farm/lib/cloud-config.js +143 -0
  88. package/dist/agent-farm/lib/cloud-config.js.map +1 -0
  89. package/dist/agent-farm/lib/tower-client.d.ts +163 -0
  90. package/dist/agent-farm/lib/tower-client.d.ts.map +1 -0
  91. package/dist/agent-farm/lib/tower-client.js +233 -0
  92. package/dist/agent-farm/lib/tower-client.js.map +1 -0
  93. package/dist/agent-farm/lib/tunnel-client.d.ts +117 -0
  94. package/dist/agent-farm/lib/tunnel-client.d.ts.map +1 -0
  95. package/dist/agent-farm/lib/tunnel-client.js +504 -0
  96. package/dist/agent-farm/lib/tunnel-client.js.map +1 -0
  97. package/dist/agent-farm/servers/tower-server.js +2653 -185
  98. package/dist/agent-farm/servers/tower-server.js.map +1 -1
  99. package/dist/agent-farm/state.d.ts +6 -12
  100. package/dist/agent-farm/state.d.ts.map +1 -1
  101. package/dist/agent-farm/state.js +34 -49
  102. package/dist/agent-farm/state.js.map +1 -1
  103. package/dist/agent-farm/types.d.ts +49 -26
  104. package/dist/agent-farm/types.d.ts.map +1 -1
  105. package/dist/agent-farm/utils/config.d.ts +0 -5
  106. package/dist/agent-farm/utils/config.d.ts.map +1 -1
  107. package/dist/agent-farm/utils/config.js +12 -44
  108. package/dist/agent-farm/utils/config.js.map +1 -1
  109. package/dist/agent-farm/utils/deps.d.ts.map +1 -1
  110. package/dist/agent-farm/utils/deps.js +0 -32
  111. package/dist/agent-farm/utils/deps.js.map +1 -1
  112. package/dist/agent-farm/utils/file-tabs.d.ts +27 -0
  113. package/dist/agent-farm/utils/file-tabs.d.ts.map +1 -0
  114. package/dist/agent-farm/utils/file-tabs.js +46 -0
  115. package/dist/agent-farm/utils/file-tabs.js.map +1 -0
  116. package/dist/agent-farm/utils/gate-status.d.ts +16 -0
  117. package/dist/agent-farm/utils/gate-status.d.ts.map +1 -0
  118. package/dist/agent-farm/utils/gate-status.js +79 -0
  119. package/dist/agent-farm/utils/gate-status.js.map +1 -0
  120. package/dist/agent-farm/utils/gate-watcher.d.ts +38 -0
  121. package/dist/agent-farm/utils/gate-watcher.d.ts.map +1 -0
  122. package/dist/agent-farm/utils/gate-watcher.js +122 -0
  123. package/dist/agent-farm/utils/gate-watcher.js.map +1 -0
  124. package/dist/agent-farm/utils/index.d.ts +0 -1
  125. package/dist/agent-farm/utils/index.d.ts.map +1 -1
  126. package/dist/agent-farm/utils/index.js +0 -1
  127. package/dist/agent-farm/utils/index.js.map +1 -1
  128. package/dist/agent-farm/utils/notifications.d.ts +30 -0
  129. package/dist/agent-farm/utils/notifications.d.ts.map +1 -0
  130. package/dist/agent-farm/utils/notifications.js +121 -0
  131. package/dist/agent-farm/utils/notifications.js.map +1 -0
  132. package/dist/agent-farm/utils/server-utils.d.ts +5 -5
  133. package/dist/agent-farm/utils/server-utils.d.ts.map +1 -1
  134. package/dist/agent-farm/utils/server-utils.js +5 -16
  135. package/dist/agent-farm/utils/server-utils.js.map +1 -1
  136. package/dist/agent-farm/utils/session.d.ts +32 -0
  137. package/dist/agent-farm/utils/session.d.ts.map +1 -0
  138. package/dist/agent-farm/utils/session.js +57 -0
  139. package/dist/agent-farm/utils/session.js.map +1 -0
  140. package/dist/agent-farm/utils/shell.d.ts +9 -22
  141. package/dist/agent-farm/utils/shell.d.ts.map +1 -1
  142. package/dist/agent-farm/utils/shell.js +34 -34
  143. package/dist/agent-farm/utils/shell.js.map +1 -1
  144. package/dist/cli.d.ts.map +1 -1
  145. package/dist/cli.js +11 -54
  146. package/dist/cli.js.map +1 -1
  147. package/dist/commands/adopt.d.ts.map +1 -1
  148. package/dist/commands/adopt.js +49 -4
  149. package/dist/commands/adopt.js.map +1 -1
  150. package/dist/commands/consult/index.d.ts +13 -2
  151. package/dist/commands/consult/index.d.ts.map +1 -1
  152. package/dist/commands/consult/index.js +245 -29
  153. package/dist/commands/consult/index.js.map +1 -1
  154. package/dist/commands/doctor.d.ts.map +1 -1
  155. package/dist/commands/doctor.js +96 -79
  156. package/dist/commands/doctor.js.map +1 -1
  157. package/dist/commands/init.d.ts.map +1 -1
  158. package/dist/commands/init.js +41 -2
  159. package/dist/commands/init.js.map +1 -1
  160. package/dist/commands/porch/build-counter.d.ts +5 -0
  161. package/dist/commands/porch/build-counter.d.ts.map +1 -0
  162. package/dist/commands/porch/build-counter.js +5 -0
  163. package/dist/commands/porch/build-counter.js.map +1 -0
  164. package/dist/commands/porch/checks.d.ts +17 -29
  165. package/dist/commands/porch/checks.d.ts.map +1 -1
  166. package/dist/commands/porch/checks.js +96 -144
  167. package/dist/commands/porch/checks.js.map +1 -1
  168. package/dist/commands/porch/index.d.ts +25 -43
  169. package/dist/commands/porch/index.d.ts.map +1 -1
  170. package/dist/commands/porch/index.js +463 -1116
  171. package/dist/commands/porch/index.js.map +1 -1
  172. package/dist/commands/porch/next.d.ts +22 -0
  173. package/dist/commands/porch/next.d.ts.map +1 -0
  174. package/dist/commands/porch/next.js +571 -0
  175. package/dist/commands/porch/next.js.map +1 -0
  176. package/dist/commands/porch/plan.d.ts +70 -0
  177. package/dist/commands/porch/plan.d.ts.map +1 -0
  178. package/dist/commands/porch/plan.js +190 -0
  179. package/dist/commands/porch/plan.js.map +1 -0
  180. package/dist/commands/porch/prompts.d.ts +19 -0
  181. package/dist/commands/porch/prompts.d.ts.map +1 -0
  182. package/dist/commands/porch/prompts.js +277 -0
  183. package/dist/commands/porch/prompts.js.map +1 -0
  184. package/dist/commands/porch/protocol.d.ts +59 -0
  185. package/dist/commands/porch/protocol.d.ts.map +1 -0
  186. package/dist/commands/porch/protocol.js +294 -0
  187. package/dist/commands/porch/protocol.js.map +1 -0
  188. package/dist/commands/porch/state.d.ts +36 -107
  189. package/dist/commands/porch/state.d.ts.map +1 -1
  190. package/dist/commands/porch/state.js +120 -699
  191. package/dist/commands/porch/state.js.map +1 -1
  192. package/dist/commands/porch/types.d.ts +99 -164
  193. package/dist/commands/porch/types.d.ts.map +1 -1
  194. package/dist/commands/porch/types.js +2 -1
  195. package/dist/commands/porch/types.js.map +1 -1
  196. package/dist/commands/porch/verdict.d.ts +31 -0
  197. package/dist/commands/porch/verdict.d.ts.map +1 -0
  198. package/dist/commands/porch/verdict.js +59 -0
  199. package/dist/commands/porch/verdict.js.map +1 -0
  200. package/dist/commands/update.d.ts.map +1 -1
  201. package/dist/commands/update.js +31 -0
  202. package/dist/commands/update.js.map +1 -1
  203. package/dist/lib/scaffold.d.ts +37 -0
  204. package/dist/lib/scaffold.d.ts.map +1 -1
  205. package/dist/lib/scaffold.js +114 -0
  206. package/dist/lib/scaffold.js.map +1 -1
  207. package/dist/terminal/index.d.ts +8 -0
  208. package/dist/terminal/index.d.ts.map +1 -0
  209. package/dist/terminal/index.js +5 -0
  210. package/dist/terminal/index.js.map +1 -0
  211. package/dist/terminal/pty-manager.d.ts +69 -0
  212. package/dist/terminal/pty-manager.d.ts.map +1 -0
  213. package/dist/terminal/pty-manager.js +377 -0
  214. package/dist/terminal/pty-manager.js.map +1 -0
  215. package/dist/terminal/pty-session.d.ts +104 -0
  216. package/dist/terminal/pty-session.d.ts.map +1 -0
  217. package/dist/terminal/pty-session.js +327 -0
  218. package/dist/terminal/pty-session.js.map +1 -0
  219. package/dist/terminal/ring-buffer.d.ts +34 -0
  220. package/dist/terminal/ring-buffer.d.ts.map +1 -0
  221. package/dist/terminal/ring-buffer.js +94 -0
  222. package/dist/terminal/ring-buffer.js.map +1 -0
  223. package/dist/terminal/session-manager.d.ts +115 -0
  224. package/dist/terminal/session-manager.d.ts.map +1 -0
  225. package/dist/terminal/session-manager.js +582 -0
  226. package/dist/terminal/session-manager.js.map +1 -0
  227. package/dist/terminal/shepherd-client.d.ts +66 -0
  228. package/dist/terminal/shepherd-client.d.ts.map +1 -0
  229. package/dist/terminal/shepherd-client.js +234 -0
  230. package/dist/terminal/shepherd-client.js.map +1 -0
  231. package/dist/terminal/shepherd-main.d.ts +19 -0
  232. package/dist/terminal/shepherd-main.d.ts.map +1 -0
  233. package/dist/terminal/shepherd-main.js +153 -0
  234. package/dist/terminal/shepherd-main.js.map +1 -0
  235. package/dist/terminal/shepherd-process.d.ts +75 -0
  236. package/dist/terminal/shepherd-process.d.ts.map +1 -0
  237. package/dist/terminal/shepherd-process.js +279 -0
  238. package/dist/terminal/shepherd-process.js.map +1 -0
  239. package/dist/terminal/shepherd-protocol.d.ts +115 -0
  240. package/dist/terminal/shepherd-protocol.d.ts.map +1 -0
  241. package/dist/terminal/shepherd-protocol.js +214 -0
  242. package/dist/terminal/shepherd-protocol.js.map +1 -0
  243. package/dist/terminal/shepherd-replay-buffer.d.ts +38 -0
  244. package/dist/terminal/shepherd-replay-buffer.d.ts.map +1 -0
  245. package/dist/terminal/shepherd-replay-buffer.js +94 -0
  246. package/dist/terminal/shepherd-replay-buffer.js.map +1 -0
  247. package/dist/terminal/ws-protocol.d.ts +27 -0
  248. package/dist/terminal/ws-protocol.d.ts.map +1 -0
  249. package/dist/terminal/ws-protocol.js +44 -0
  250. package/dist/terminal/ws-protocol.js.map +1 -0
  251. package/package.json +19 -5
  252. package/skeleton/.claude/skills/af/SKILL.md +89 -0
  253. package/skeleton/.claude/skills/codev/SKILL.md +41 -0
  254. package/skeleton/.claude/skills/consult/SKILL.md +81 -0
  255. package/skeleton/.claude/skills/generate-image/SKILL.md +56 -0
  256. package/skeleton/DEPENDENCIES.md +4 -62
  257. package/skeleton/builders.md +1 -1
  258. package/skeleton/consult-types/impl-review.md +18 -9
  259. package/skeleton/consult-types/integration-review.md +1 -1
  260. package/skeleton/consult-types/plan-review.md +1 -1
  261. package/skeleton/consult-types/pr-ready.md +1 -1
  262. package/skeleton/consult-types/spec-review.md +1 -1
  263. package/skeleton/porch/prompts/defend.md +1 -1
  264. package/skeleton/porch/prompts/evaluate.md +2 -2
  265. package/skeleton/porch/prompts/implement.md +1 -1
  266. package/skeleton/porch/prompts/plan.md +1 -1
  267. package/skeleton/porch/prompts/review.md +4 -4
  268. package/skeleton/porch/prompts/specify.md +1 -1
  269. package/skeleton/porch/prompts/understand.md +2 -2
  270. package/skeleton/protocol-schema.json +282 -0
  271. package/skeleton/protocols/bugfix/builder-prompt.md +54 -0
  272. package/skeleton/protocols/bugfix/prompts/fix.md +77 -0
  273. package/skeleton/protocols/bugfix/prompts/investigate.md +77 -0
  274. package/skeleton/protocols/bugfix/prompts/pr.md +84 -0
  275. package/skeleton/protocols/bugfix/protocol.json +20 -33
  276. package/skeleton/protocols/experiment/builder-prompt.md +52 -0
  277. package/skeleton/protocols/experiment/protocol.json +101 -0
  278. package/skeleton/protocols/experiment/protocol.md +3 -3
  279. package/skeleton/protocols/experiment/templates/notes.md +1 -1
  280. package/skeleton/protocols/maintain/builder-prompt.md +46 -0
  281. package/skeleton/protocols/maintain/prompts/audit.md +111 -0
  282. package/skeleton/protocols/maintain/prompts/clean.md +91 -0
  283. package/skeleton/protocols/maintain/prompts/sync.md +113 -0
  284. package/skeleton/protocols/maintain/prompts/verify.md +110 -0
  285. package/skeleton/protocols/maintain/protocol.json +141 -0
  286. package/skeleton/protocols/maintain/protocol.md +17 -11
  287. package/skeleton/protocols/protocol-schema.json +54 -1
  288. package/skeleton/protocols/spir/builder-prompt.md +59 -0
  289. package/skeleton/protocols/spir/prompts/implement.md +208 -0
  290. package/skeleton/protocols/{spider → spir}/prompts/plan.md +6 -70
  291. package/skeleton/protocols/{spider → spir}/prompts/review.md +20 -39
  292. package/skeleton/protocols/{spider → spir}/prompts/specify.md +33 -61
  293. package/skeleton/protocols/spir/protocol.json +156 -0
  294. package/skeleton/protocols/{spider → spir}/protocol.md +35 -21
  295. package/skeleton/protocols/{spider → spir}/templates/plan.md +14 -0
  296. package/skeleton/protocols/spir/templates/review.md +89 -0
  297. package/skeleton/protocols/tick/builder-prompt.md +56 -0
  298. package/skeleton/protocols/tick/protocol.json +7 -2
  299. package/skeleton/protocols/tick/protocol.md +18 -18
  300. package/skeleton/protocols/tick/templates/review.md +1 -1
  301. package/skeleton/resources/commands/agent-farm.md +63 -46
  302. package/skeleton/resources/commands/codev.md +0 -2
  303. package/skeleton/resources/commands/overview.md +7 -17
  304. package/skeleton/resources/workflow-reference.md +4 -4
  305. package/skeleton/roles/architect.md +152 -315
  306. package/skeleton/roles/builder.md +110 -218
  307. package/skeleton/roles/consultant.md +6 -6
  308. package/skeleton/templates/AGENTS.md +2 -2
  309. package/skeleton/templates/CLAUDE.md +2 -2
  310. package/skeleton/templates/cheatsheet.md +7 -5
  311. package/skeleton/templates/projectlist.md +1 -1
  312. package/templates/dashboard/index.html +17 -43
  313. package/templates/dashboard/js/dialogs.js +7 -7
  314. package/templates/dashboard/js/files.js +2 -2
  315. package/templates/dashboard/js/main.js +4 -4
  316. package/templates/dashboard/js/projects.js +3 -3
  317. package/templates/dashboard/js/tabs.js +1 -1
  318. package/templates/dashboard/js/utils.js +22 -87
  319. package/templates/open.html +26 -0
  320. package/templates/tower.html +642 -36
  321. package/dist/agent-farm/commands/kickoff.d.ts +0 -20
  322. package/dist/agent-farm/commands/kickoff.d.ts.map +0 -1
  323. package/dist/agent-farm/commands/kickoff.js +0 -337
  324. package/dist/agent-farm/commands/kickoff.js.map +0 -1
  325. package/dist/agent-farm/commands/rename.d.ts +0 -13
  326. package/dist/agent-farm/commands/rename.d.ts.map +0 -1
  327. package/dist/agent-farm/commands/rename.js +0 -33
  328. package/dist/agent-farm/commands/rename.js.map +0 -1
  329. package/dist/agent-farm/commands/tutorial.d.ts +0 -10
  330. package/dist/agent-farm/commands/tutorial.d.ts.map +0 -1
  331. package/dist/agent-farm/commands/tutorial.js +0 -49
  332. package/dist/agent-farm/commands/tutorial.js.map +0 -1
  333. package/dist/agent-farm/commands/util.d.ts +0 -15
  334. package/dist/agent-farm/commands/util.d.ts.map +0 -1
  335. package/dist/agent-farm/commands/util.js +0 -108
  336. package/dist/agent-farm/commands/util.js.map +0 -1
  337. package/dist/agent-farm/servers/dashboard-server.d.ts +0 -7
  338. package/dist/agent-farm/servers/dashboard-server.d.ts.map +0 -1
  339. package/dist/agent-farm/servers/dashboard-server.js +0 -1872
  340. package/dist/agent-farm/servers/dashboard-server.js.map +0 -1
  341. package/dist/agent-farm/servers/open-server.d.ts +0 -7
  342. package/dist/agent-farm/servers/open-server.d.ts.map +0 -1
  343. package/dist/agent-farm/servers/open-server.js +0 -315
  344. package/dist/agent-farm/servers/open-server.js.map +0 -1
  345. package/dist/agent-farm/tutorial/index.d.ts +0 -8
  346. package/dist/agent-farm/tutorial/index.d.ts.map +0 -1
  347. package/dist/agent-farm/tutorial/index.js +0 -8
  348. package/dist/agent-farm/tutorial/index.js.map +0 -1
  349. package/dist/agent-farm/tutorial/prompts.d.ts +0 -57
  350. package/dist/agent-farm/tutorial/prompts.d.ts.map +0 -1
  351. package/dist/agent-farm/tutorial/prompts.js +0 -147
  352. package/dist/agent-farm/tutorial/prompts.js.map +0 -1
  353. package/dist/agent-farm/tutorial/runner.d.ts +0 -52
  354. package/dist/agent-farm/tutorial/runner.d.ts.map +0 -1
  355. package/dist/agent-farm/tutorial/runner.js +0 -204
  356. package/dist/agent-farm/tutorial/runner.js.map +0 -1
  357. package/dist/agent-farm/tutorial/state.d.ts +0 -26
  358. package/dist/agent-farm/tutorial/state.d.ts.map +0 -1
  359. package/dist/agent-farm/tutorial/state.js +0 -89
  360. package/dist/agent-farm/tutorial/state.js.map +0 -1
  361. package/dist/agent-farm/tutorial/steps/first-spec.d.ts +0 -7
  362. package/dist/agent-farm/tutorial/steps/first-spec.d.ts.map +0 -1
  363. package/dist/agent-farm/tutorial/steps/first-spec.js +0 -136
  364. package/dist/agent-farm/tutorial/steps/first-spec.js.map +0 -1
  365. package/dist/agent-farm/tutorial/steps/implementation.d.ts +0 -7
  366. package/dist/agent-farm/tutorial/steps/implementation.d.ts.map +0 -1
  367. package/dist/agent-farm/tutorial/steps/implementation.js +0 -76
  368. package/dist/agent-farm/tutorial/steps/implementation.js.map +0 -1
  369. package/dist/agent-farm/tutorial/steps/index.d.ts +0 -10
  370. package/dist/agent-farm/tutorial/steps/index.d.ts.map +0 -1
  371. package/dist/agent-farm/tutorial/steps/index.js +0 -10
  372. package/dist/agent-farm/tutorial/steps/index.js.map +0 -1
  373. package/dist/agent-farm/tutorial/steps/planning.d.ts +0 -7
  374. package/dist/agent-farm/tutorial/steps/planning.d.ts.map +0 -1
  375. package/dist/agent-farm/tutorial/steps/planning.js +0 -143
  376. package/dist/agent-farm/tutorial/steps/planning.js.map +0 -1
  377. package/dist/agent-farm/tutorial/steps/review.d.ts +0 -7
  378. package/dist/agent-farm/tutorial/steps/review.d.ts.map +0 -1
  379. package/dist/agent-farm/tutorial/steps/review.js +0 -78
  380. package/dist/agent-farm/tutorial/steps/review.js.map +0 -1
  381. package/dist/agent-farm/tutorial/steps/setup.d.ts +0 -7
  382. package/dist/agent-farm/tutorial/steps/setup.d.ts.map +0 -1
  383. package/dist/agent-farm/tutorial/steps/setup.js +0 -126
  384. package/dist/agent-farm/tutorial/steps/setup.js.map +0 -1
  385. package/dist/agent-farm/tutorial/steps/welcome.d.ts +0 -7
  386. package/dist/agent-farm/tutorial/steps/welcome.d.ts.map +0 -1
  387. package/dist/agent-farm/tutorial/steps/welcome.js +0 -50
  388. package/dist/agent-farm/tutorial/steps/welcome.js.map +0 -1
  389. package/dist/agent-farm/utils/orphan-handler.d.ts +0 -27
  390. package/dist/agent-farm/utils/orphan-handler.d.ts.map +0 -1
  391. package/dist/agent-farm/utils/orphan-handler.js +0 -149
  392. package/dist/agent-farm/utils/orphan-handler.js.map +0 -1
  393. package/dist/agent-farm/utils/port-registry.d.ts +0 -58
  394. package/dist/agent-farm/utils/port-registry.d.ts.map +0 -1
  395. package/dist/agent-farm/utils/port-registry.js +0 -166
  396. package/dist/agent-farm/utils/port-registry.js.map +0 -1
  397. package/dist/agent-farm/utils/terminal-ports.d.ts +0 -18
  398. package/dist/agent-farm/utils/terminal-ports.d.ts.map +0 -1
  399. package/dist/agent-farm/utils/terminal-ports.js +0 -35
  400. package/dist/agent-farm/utils/terminal-ports.js.map +0 -1
  401. package/dist/commands/pcheck/cache.d.ts +0 -48
  402. package/dist/commands/pcheck/cache.d.ts.map +0 -1
  403. package/dist/commands/pcheck/cache.js +0 -170
  404. package/dist/commands/pcheck/cache.js.map +0 -1
  405. package/dist/commands/pcheck/evaluator.d.ts +0 -15
  406. package/dist/commands/pcheck/evaluator.d.ts.map +0 -1
  407. package/dist/commands/pcheck/evaluator.js +0 -246
  408. package/dist/commands/pcheck/evaluator.js.map +0 -1
  409. package/dist/commands/pcheck/index.d.ts +0 -12
  410. package/dist/commands/pcheck/index.d.ts.map +0 -1
  411. package/dist/commands/pcheck/index.js +0 -249
  412. package/dist/commands/pcheck/index.js.map +0 -1
  413. package/dist/commands/pcheck/parser.d.ts +0 -39
  414. package/dist/commands/pcheck/parser.d.ts.map +0 -1
  415. package/dist/commands/pcheck/parser.js +0 -155
  416. package/dist/commands/pcheck/parser.js.map +0 -1
  417. package/dist/commands/pcheck/types.d.ts +0 -82
  418. package/dist/commands/pcheck/types.d.ts.map +0 -1
  419. package/dist/commands/pcheck/types.js +0 -5
  420. package/dist/commands/pcheck/types.js.map +0 -1
  421. package/dist/commands/porch/consultation.d.ts +0 -56
  422. package/dist/commands/porch/consultation.d.ts.map +0 -1
  423. package/dist/commands/porch/consultation.js +0 -330
  424. package/dist/commands/porch/consultation.js.map +0 -1
  425. package/dist/commands/porch/notifications.d.ts +0 -99
  426. package/dist/commands/porch/notifications.d.ts.map +0 -1
  427. package/dist/commands/porch/notifications.js +0 -223
  428. package/dist/commands/porch/notifications.js.map +0 -1
  429. package/dist/commands/porch/plan-parser.d.ts +0 -38
  430. package/dist/commands/porch/plan-parser.d.ts.map +0 -1
  431. package/dist/commands/porch/plan-parser.js +0 -166
  432. package/dist/commands/porch/plan-parser.js.map +0 -1
  433. package/dist/commands/porch/protocol-loader.d.ts +0 -46
  434. package/dist/commands/porch/protocol-loader.d.ts.map +0 -1
  435. package/dist/commands/porch/protocol-loader.js +0 -253
  436. package/dist/commands/porch/protocol-loader.js.map +0 -1
  437. package/dist/commands/porch/signal-parser.d.ts +0 -88
  438. package/dist/commands/porch/signal-parser.d.ts.map +0 -1
  439. package/dist/commands/porch/signal-parser.js +0 -148
  440. package/dist/commands/porch/signal-parser.js.map +0 -1
  441. package/dist/commands/tower.d.ts +0 -16
  442. package/dist/commands/tower.d.ts.map +0 -1
  443. package/dist/commands/tower.js +0 -21
  444. package/dist/commands/tower.js.map +0 -1
  445. package/skeleton/config.json +0 -7
  446. package/skeleton/porch/protocols/bugfix.json +0 -85
  447. package/skeleton/porch/protocols/spider.json +0 -135
  448. package/skeleton/porch/protocols/tick.json +0 -76
  449. package/skeleton/protocols/spider/prompts/defend.md +0 -215
  450. package/skeleton/protocols/spider/prompts/evaluate.md +0 -241
  451. package/skeleton/protocols/spider/prompts/implement.md +0 -149
  452. package/skeleton/protocols/spider/protocol.json +0 -210
  453. package/skeleton/protocols/spider/templates/review.md +0 -207
  454. package/templates/dashboard/css/activity.css +0 -151
  455. package/templates/dashboard/js/activity.js +0 -112
  456. /package/skeleton/protocols/{spider → spir}/templates/spec.md +0 -0
@@ -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,207 +0,0 @@
1
- # Review: [Feature/Project Name]
2
-
3
- ## Metadata
4
- - **Date**: [YYYY-MM-DD]
5
- - **Specification**: [Link to codev/specs/spec-file.md]
6
- - **Plan**: [Link to codev/plans/plan-file.md]
7
-
8
- ## Executive Summary
9
- [Brief overview of what was built, how it went, and key outcomes]
10
-
11
- ## Specification Compliance
12
-
13
- ### Success Criteria Assessment
14
- | Criterion | Status | Evidence | Notes |
15
- |-----------|--------|----------|-------|
16
- | [Criterion 1] | ✅/❌/⚠️ | [Link/description] | [Any context] |
17
- | [Criterion 2] | ✅/❌/⚠️ | [Link/description] | [Any context] |
18
- | [All tests pass >90% coverage] | ✅/❌/⚠️ | [Coverage report] | [Details] |
19
- | [Performance benchmarks met] | ✅/❌/⚠️ | [Metrics] | [Details] |
20
-
21
- ### Deviations from Specification
22
- | Original Requirement | What Was Built | Reason for Deviation |
23
- |---------------------|----------------|---------------------|
24
- | [If any] | [Actual] | [Justification] |
25
-
26
- ## Plan Execution Review
27
-
28
- ### Phase Completion
29
- | Phase | Status | Notes |
30
- |-------|--------|-------|
31
- | Phase 1 | Complete | [Context] |
32
- | Phase 2 | Complete | [Context] |
33
-
34
- ### Deliverables Checklist
35
- - [x] All planned features implemented
36
- - [x] Test coverage achieved
37
- - [x] Documentation updated
38
- - [x] Performance requirements met
39
- - [ ] [Any incomplete items]
40
-
41
- ## Code Quality Assessment
42
-
43
- ### Architecture Impact
44
- - **Positive Changes**: [Improvements made to architecture]
45
- - **Technical Debt Incurred**: [Any shortcuts taken]
46
- - **Future Considerations**: [What should be refactored later]
47
-
48
- ### Code Metrics
49
- - **Lines of Code**: [Added/Modified/Removed]
50
- - **Test Coverage**: [Percentage and areas covered]
51
- - **Code Complexity**: [Cyclomatic complexity if measured]
52
- - **Documentation Coverage**: [Public APIs documented?]
53
-
54
- ### Security Review
55
- - **Vulnerabilities Found**: [None/List]
56
- - **Security Best Practices**: [Followed/Exceptions]
57
- - **Sensitive Data Handling**: [Properly secured?]
58
-
59
- ## Performance Analysis
60
-
61
- ### Benchmarks
62
- | Metric | Target | Achieved | Status |
63
- |--------|--------|----------|---------|
64
- | Response Time (p95) | <200ms | [Actual] | ✅/❌ |
65
- | Throughput | 1000 rps | [Actual] | ✅/❌ |
66
- | Memory Usage | <500MB | [Actual] | ✅/❌ |
67
-
68
- ### Load Testing Results
69
- [Summary of load testing outcomes, if performed]
70
-
71
- ## Testing Summary
72
-
73
- ### Test Execution
74
- - **Unit Tests**: [X passed, Y failed]
75
- - **Integration Tests**: [X passed, Y failed]
76
- - **E2E Tests**: [X passed, Y failed]
77
- - **Manual Testing**: [Scenarios tested]
78
-
79
- ### Issues Found During Testing
80
- | Issue | Severity | Resolution |
81
- |-------|----------|------------|
82
- | [Bug 1] | Critical/High/Medium/Low | [Fixed/Deferred] |
83
-
84
- ## Lessons Learned
85
-
86
- ### What Went Well
87
- 1. [Success point 1 - be specific]
88
- 2. [Success point 2 - include why it worked]
89
- 3. [Success point 3 - note for future replication]
90
-
91
- ### What Was Challenging
92
- 1. [Challenge 1 - describe the issue]
93
- - **Root Cause**: [Why it happened]
94
- - **Resolution**: [How it was addressed]
95
- - **Prevention**: [How to avoid in future]
96
-
97
- 2. [Challenge 2]
98
- - **Root Cause**:
99
- - **Resolution**:
100
- - **Prevention**:
101
-
102
- ### What Would You Do Differently
103
- 1. [Improvement 1 - be actionable]
104
- 2. [Improvement 2 - be specific]
105
- 3. [Improvement 3 - be realistic]
106
-
107
- ## Methodology Feedback
108
-
109
- ### SP(IDE)R Protocol Effectiveness
110
- - **Specification Phase**: [Was it thorough enough? Too detailed?]
111
- - **Planning Phase**: [Were estimates accurate? Phases well-sized?]
112
- - **Implementation Loop**: [Did IDE cycle work well?]
113
- - **Review Process**: [Is this review capturing the right information?]
114
-
115
- ### Suggested Improvements
116
- 1. **Template Updates**: [Any template improvements needed?]
117
- 2. **Process Changes**: [Any step modifications recommended?]
118
- 3. **Tool Needs**: [Any automation opportunities?]
119
-
120
- ## Resource Analysis
121
-
122
- ### Time Investment
123
- - **Planned**: [X person-days]
124
- - **Actual**: [Y person-days]
125
- - **Variance Explanation**: [Why different?]
126
-
127
- ### Team Feedback
128
- - [Feedback from team members]
129
- - [Collaboration insights]
130
- - [Communication effectiveness]
131
-
132
- ## Follow-Up Actions
133
-
134
- ### Immediate (This Week)
135
- - [ ] [Action 1 - owner]
136
- - [ ] [Action 2 - owner]
137
-
138
- ### Short-term (This Month)
139
- - [ ] [Action 1 - owner]
140
- - [ ] [Action 2 - owner]
141
-
142
- ### Long-term (Future Consideration)
143
- - [ ] [Improvement opportunity 1]
144
- - [ ] [Technical debt to address]
145
-
146
- ## Risk Retrospective
147
-
148
- ### Identified Risks That Materialized
149
- | Risk | Impact | How Handled | Prevention for Future |
150
- |------|--------|-------------|----------------------|
151
- | [Risk] | [What happened] | [Resolution] | [Learning] |
152
-
153
- ### Unforeseen Issues
154
- | Issue | Impact | How Handled | How to Predict |
155
- |-------|--------|-------------|----------------|
156
- | [Issue] | [Impact] | [Resolution] | [Detection method] |
157
-
158
- ## Documentation Updates
159
-
160
- ### Completed
161
- - [x] API documentation updated
162
- - [x] README updated
163
- - [x] Architecture diagrams revised
164
- - [ ] [Pending items]
165
-
166
- ### Knowledge Transfer
167
- - **Wiki/Confluence Updates**: [Links]
168
- - **Team Presentations**: [Scheduled/Completed]
169
- - **Runbooks Created**: [Links]
170
-
171
- ## Stakeholder Feedback
172
- - **Product Owner**: [Feedback]
173
- - **End Users**: [Feedback if available]
174
- - **Support Team**: [Readiness assessment]
175
-
176
- ## Final Recommendations
177
-
178
- ### For Future Similar Projects
179
- 1. [Recommendation 1]
180
- 2. [Recommendation 2]
181
-
182
- ### For Methodology Evolution
183
- 1. [Suggestion 1]
184
- 2. [Suggestion 2]
185
-
186
- ## Conclusion
187
- [Summary statement about the project success, key achievements, and main learnings]
188
-
189
- ## Appendix
190
-
191
- ### Links
192
- - **Code**: [Repository links, PRs]
193
- - **Documentation**: [All related docs]
194
- - **Metrics Dashboards**: [Monitoring links]
195
- - **Test Reports**: [CI/CD links]
196
-
197
- ### Expert Consultation Summary
198
- [If expert AI review was performed post-implementation]
199
- - **Model**: [Which model]
200
- - **Feedback**: [Key points]
201
- - **Incorporated Changes**: [What was acted upon]
202
-
203
- ## Sign-off
204
- - [ ] Technical Lead Review
205
- - [ ] Team Retrospective Completed
206
- - [ ] Lessons Documented
207
- - [ ] Methodology Updates Proposed
@@ -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
- }