@entelligentsia/forgecli 1.0.14 → 1.0.21

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 (363) hide show
  1. package/CHANGELOG.md +185 -0
  2. package/README.md +7 -1
  3. package/dist/CHANGELOG-forge-plugin.md +61 -0
  4. package/dist/bin/config.js +4 -4
  5. package/dist/bin/config.js.map +1 -1
  6. package/dist/bin/update-cli.d.ts +1 -1
  7. package/dist/bin/update-cli.js +1 -1
  8. package/dist/bin/update-cli.js.map +1 -1
  9. package/dist/extensions/forgecli/ask-user-tool.js +1 -1
  10. package/dist/extensions/forgecli/ask-user-tool.js.map +1 -1
  11. package/dist/extensions/forgecli/commands/add-pipeline.d.ts +19 -0
  12. package/dist/extensions/forgecli/commands/add-pipeline.js +143 -0
  13. package/dist/extensions/forgecli/commands/add-pipeline.js.map +1 -0
  14. package/dist/extensions/forgecli/commands/add-task.d.ts +20 -0
  15. package/dist/extensions/forgecli/commands/add-task.js +154 -0
  16. package/dist/extensions/forgecli/commands/add-task.js.map +1 -0
  17. package/dist/extensions/forgecli/commands/approve.d.ts +22 -0
  18. package/dist/extensions/forgecli/commands/approve.js +152 -0
  19. package/dist/extensions/forgecli/commands/approve.js.map +1 -0
  20. package/dist/extensions/forgecli/commands/collate.d.ts +22 -0
  21. package/dist/extensions/forgecli/commands/collate.js +134 -0
  22. package/dist/extensions/forgecli/commands/collate.js.map +1 -0
  23. package/dist/extensions/forgecli/commands/commit.d.ts +22 -0
  24. package/dist/extensions/forgecli/commands/commit.js +152 -0
  25. package/dist/extensions/forgecli/commands/commit.js.map +1 -0
  26. package/dist/extensions/forgecli/commands/config-command.d.ts +8 -0
  27. package/dist/extensions/forgecli/commands/config-command.js +67 -0
  28. package/dist/extensions/forgecli/commands/config-command.js.map +1 -0
  29. package/dist/extensions/forgecli/commands/enhance.d.ts +45 -0
  30. package/dist/extensions/forgecli/commands/enhance.js +219 -0
  31. package/dist/extensions/forgecli/commands/enhance.js.map +1 -0
  32. package/dist/extensions/forgecli/commands/implement.d.ts +22 -0
  33. package/dist/extensions/forgecli/commands/implement.js +170 -0
  34. package/dist/extensions/forgecli/commands/implement.js.map +1 -0
  35. package/dist/extensions/forgecli/commands/plan.d.ts +22 -0
  36. package/dist/extensions/forgecli/commands/plan.js +167 -0
  37. package/dist/extensions/forgecli/commands/plan.js.map +1 -0
  38. package/dist/extensions/forgecli/commands/quiz-agent.d.ts +17 -0
  39. package/dist/extensions/forgecli/commands/quiz-agent.js +98 -0
  40. package/dist/extensions/forgecli/commands/quiz-agent.js.map +1 -0
  41. package/dist/extensions/forgecli/commands/read-command.d.ts +2 -0
  42. package/dist/extensions/forgecli/commands/read-command.js +100 -0
  43. package/dist/extensions/forgecli/commands/read-command.js.map +1 -0
  44. package/dist/extensions/forgecli/commands/regenerate.d.ts +40 -0
  45. package/dist/extensions/forgecli/commands/regenerate.js +426 -0
  46. package/dist/extensions/forgecli/commands/regenerate.js.map +1 -0
  47. package/dist/extensions/forgecli/commands/remove-command.d.ts +17 -0
  48. package/dist/extensions/forgecli/commands/remove-command.js +124 -0
  49. package/dist/extensions/forgecli/commands/remove-command.js.map +1 -0
  50. package/dist/extensions/forgecli/commands/report-bug.d.ts +25 -0
  51. package/dist/extensions/forgecli/commands/report-bug.js +159 -0
  52. package/dist/extensions/forgecli/commands/report-bug.js.map +1 -0
  53. package/dist/extensions/forgecli/commands/retrospective.d.ts +20 -0
  54. package/dist/extensions/forgecli/commands/retrospective.js +126 -0
  55. package/dist/extensions/forgecli/commands/retrospective.js.map +1 -0
  56. package/dist/extensions/forgecli/commands/review-code.d.ts +35 -0
  57. package/dist/extensions/forgecli/commands/review-code.js +196 -0
  58. package/dist/extensions/forgecli/commands/review-code.js.map +1 -0
  59. package/dist/extensions/forgecli/commands/review-plan.d.ts +35 -0
  60. package/dist/extensions/forgecli/commands/review-plan.js +200 -0
  61. package/dist/extensions/forgecli/commands/review-plan.js.map +1 -0
  62. package/dist/extensions/forgecli/commands/sprint-intake.d.ts +10 -0
  63. package/dist/extensions/forgecli/commands/sprint-intake.js +91 -0
  64. package/dist/extensions/forgecli/commands/sprint-intake.js.map +1 -0
  65. package/dist/extensions/forgecli/commands/sprint-plan.d.ts +14 -0
  66. package/dist/extensions/forgecli/commands/sprint-plan.js +122 -0
  67. package/dist/extensions/forgecli/commands/sprint-plan.js.map +1 -0
  68. package/dist/extensions/forgecli/commands/status-command.d.ts +19 -0
  69. package/dist/extensions/forgecli/commands/status-command.js +140 -0
  70. package/dist/extensions/forgecli/commands/status-command.js.map +1 -0
  71. package/dist/extensions/forgecli/commands/store-query.d.ts +22 -0
  72. package/dist/extensions/forgecli/commands/store-query.js +107 -0
  73. package/dist/extensions/forgecli/commands/store-query.js.map +1 -0
  74. package/dist/extensions/forgecli/commands/store-repair.d.ts +17 -0
  75. package/dist/extensions/forgecli/commands/store-repair.js +123 -0
  76. package/dist/extensions/forgecli/commands/store-repair.js.map +1 -0
  77. package/dist/extensions/forgecli/commands/test-orchestrate.d.ts +2 -0
  78. package/dist/extensions/forgecli/commands/test-orchestrate.js +182 -0
  79. package/dist/extensions/forgecli/commands/test-orchestrate.js.map +1 -0
  80. package/dist/extensions/forgecli/commands/transcripts-command.d.ts +87 -0
  81. package/dist/extensions/forgecli/commands/transcripts-command.js +418 -0
  82. package/dist/extensions/forgecli/commands/transcripts-command.js.map +1 -0
  83. package/dist/extensions/forgecli/commands/validate.d.ts +22 -0
  84. package/dist/extensions/forgecli/commands/validate.js +152 -0
  85. package/dist/extensions/forgecli/commands/validate.js.map +1 -0
  86. package/dist/extensions/forgecli/config/config-layer.d.ts +53 -0
  87. package/dist/extensions/forgecli/config/config-layer.js +72 -0
  88. package/dist/extensions/forgecli/config/config-layer.js.map +1 -0
  89. package/dist/extensions/forgecli/config/config-writer.d.ts +16 -0
  90. package/dist/extensions/forgecli/config/config-writer.js +69 -0
  91. package/dist/extensions/forgecli/config/config-writer.js.map +1 -0
  92. package/dist/extensions/forgecli/config/model-registry.d.ts +61 -0
  93. package/dist/extensions/forgecli/config/model-registry.js +127 -0
  94. package/dist/extensions/forgecli/config/model-registry.js.map +1 -0
  95. package/dist/extensions/forgecli/config/model-resolver.d.ts +32 -0
  96. package/dist/extensions/forgecli/config/model-resolver.js +65 -0
  97. package/dist/extensions/forgecli/config/model-resolver.js.map +1 -0
  98. package/dist/extensions/forgecli/config/model-validator.d.ts +29 -0
  99. package/dist/extensions/forgecli/config/model-validator.js +107 -0
  100. package/dist/extensions/forgecli/config/model-validator.js.map +1 -0
  101. package/dist/extensions/forgecli/config-layer.d.ts +0 -16
  102. package/dist/extensions/forgecli/config-layer.js +0 -5
  103. package/dist/extensions/forgecli/config-layer.js.map +1 -1
  104. package/dist/extensions/forgecli/config-tui/component.js +1 -1
  105. package/dist/extensions/forgecli/config-tui/component.js.map +1 -1
  106. package/dist/extensions/forgecli/config-tui/handler.js +1 -1
  107. package/dist/extensions/forgecli/config-tui/handler.js.map +1 -1
  108. package/dist/extensions/forgecli/config-tui/screens/override-editor.js +1 -1
  109. package/dist/extensions/forgecli/config-tui/screens/override-editor.js.map +1 -1
  110. package/dist/extensions/forgecli/config-tui/screens/overrides-list-phases.js +1 -1
  111. package/dist/extensions/forgecli/config-tui/screens/overrides-list-phases.js.map +1 -1
  112. package/dist/extensions/forgecli/config-tui/screens/show-resolved.js +1 -1
  113. package/dist/extensions/forgecli/config-tui/screens/show-resolved.js.map +1 -1
  114. package/dist/extensions/forgecli/config-tui/state/buffer.d.ts +2 -2
  115. package/dist/extensions/forgecli/config-tui/state/model.d.ts +1 -1
  116. package/dist/extensions/forgecli/config-tui/state/reducer.js.map +1 -1
  117. package/dist/extensions/forgecli/config-tui/state/selectors.d.ts +2 -2
  118. package/dist/extensions/forgecli/config-tui/state/selectors.js +1 -1
  119. package/dist/extensions/forgecli/config-tui/state/selectors.js.map +1 -1
  120. package/dist/extensions/forgecli/context-governor-compaction.d.ts +94 -0
  121. package/dist/extensions/forgecli/context-governor-compaction.js +327 -0
  122. package/dist/extensions/forgecli/context-governor-compaction.js.map +1 -0
  123. package/dist/extensions/forgecli/context-governor.d.ts +169 -0
  124. package/dist/extensions/forgecli/context-governor.js +592 -0
  125. package/dist/extensions/forgecli/context-governor.js.map +1 -0
  126. package/dist/extensions/forgecli/dashboard/component.d.ts +17 -5
  127. package/dist/extensions/forgecli/dashboard/component.js +160 -115
  128. package/dist/extensions/forgecli/dashboard/component.js.map +1 -1
  129. package/dist/extensions/forgecli/dashboard/register.js +7 -21
  130. package/dist/extensions/forgecli/dashboard/register.js.map +1 -1
  131. package/dist/extensions/forgecli/dashboard/theme.d.ts +27 -0
  132. package/dist/extensions/forgecli/dashboard/theme.js +91 -0
  133. package/dist/extensions/forgecli/dashboard/theme.js.map +1 -0
  134. package/dist/extensions/forgecli/fix-bug.js +59 -5
  135. package/dist/extensions/forgecli/fix-bug.js.map +1 -1
  136. package/dist/extensions/forgecli/forge-artifact-tool.js +3 -2
  137. package/dist/extensions/forgecli/forge-artifact-tool.js.map +1 -1
  138. package/dist/extensions/forgecli/forge-cli-schema.json +0 -4
  139. package/dist/extensions/forgecli/forge-commands.js +1 -1
  140. package/dist/extensions/forgecli/forge-commands.js.map +1 -1
  141. package/dist/extensions/forgecli/forge-init/forge-init.d.ts +26 -0
  142. package/dist/extensions/forgecli/forge-init/forge-init.js +514 -0
  143. package/dist/extensions/forgecli/forge-init/forge-init.js.map +1 -0
  144. package/dist/extensions/forgecli/forge-init/init-context.d.ts +99 -0
  145. package/dist/extensions/forgecli/forge-init/init-context.js +178 -0
  146. package/dist/extensions/forgecli/forge-init/init-context.js.map +1 -0
  147. package/dist/extensions/forgecli/forge-init/init-progress.d.ts +39 -0
  148. package/dist/extensions/forgecli/forge-init/init-progress.js +117 -0
  149. package/dist/extensions/forgecli/forge-init/init-progress.js.map +1 -0
  150. package/dist/extensions/forgecli/forge-init/phase4-register.js +1 -1
  151. package/dist/extensions/forgecli/forge-init/phase4-register.js.map +1 -1
  152. package/dist/extensions/forgecli/forge-init/run-phases.js +2 -2
  153. package/dist/extensions/forgecli/forge-init/run-phases.js.map +1 -1
  154. package/dist/extensions/forgecli/forge-subagent.d.ts +42 -1
  155. package/dist/extensions/forgecli/forge-subagent.js +59 -18
  156. package/dist/extensions/forgecli/forge-subagent.js.map +1 -1
  157. package/dist/extensions/forgecli/forge-tools.d.ts +0 -25
  158. package/dist/extensions/forgecli/forge-tools.js +8 -37
  159. package/dist/extensions/forgecli/forge-tools.js.map +1 -1
  160. package/dist/extensions/forgecli/governor-config.d.ts +19 -0
  161. package/dist/extensions/forgecli/governor-config.js +58 -0
  162. package/dist/extensions/forgecli/governor-config.js.map +1 -0
  163. package/dist/extensions/forgecli/health-check.js +1 -1
  164. package/dist/extensions/forgecli/health-check.js.map +1 -1
  165. package/dist/extensions/forgecli/hook-dispatcher.d.ts +3 -1
  166. package/dist/extensions/forgecli/hook-dispatcher.js +39 -5
  167. package/dist/extensions/forgecli/hook-dispatcher.js.map +1 -1
  168. package/dist/extensions/forgecli/hooks/post-init-hook.js +11 -6
  169. package/dist/extensions/forgecli/hooks/post-init-hook.js.map +1 -1
  170. package/dist/extensions/forgecli/hooks/post-sprint-hook.js +11 -6
  171. package/dist/extensions/forgecli/hooks/post-sprint-hook.js.map +1 -1
  172. package/dist/extensions/forgecli/hooks/write-guard.js +1 -1
  173. package/dist/extensions/forgecli/hooks/write-guard.js.map +1 -1
  174. package/dist/extensions/forgecli/index.js +70 -36
  175. package/dist/extensions/forgecli/index.js.map +1 -1
  176. package/dist/extensions/forgecli/kickoff.d.ts +9 -0
  177. package/dist/extensions/forgecli/kickoff.js +15 -0
  178. package/dist/extensions/forgecli/kickoff.js.map +1 -1
  179. package/dist/extensions/forgecli/lib/forge-config.d.ts +1 -1
  180. package/dist/extensions/forgecli/lib/forge-config.js +1 -1
  181. package/dist/extensions/forgecli/lib/forge-config.js.map +1 -1
  182. package/dist/extensions/forgecli/lib/forge-root.d.ts +10 -0
  183. package/dist/extensions/forgecli/lib/forge-root.js +62 -0
  184. package/dist/extensions/forgecli/lib/forge-root.js.map +1 -0
  185. package/dist/extensions/forgecli/lib/halt-advisor.d.ts +19 -14
  186. package/dist/extensions/forgecli/lib/halt-advisor.js +36 -13
  187. package/dist/extensions/forgecli/lib/halt-advisor.js.map +1 -1
  188. package/dist/extensions/forgecli/lib/run-cjs.d.ts +26 -0
  189. package/dist/extensions/forgecli/lib/run-cjs.js +42 -0
  190. package/dist/extensions/forgecli/lib/run-cjs.js.map +1 -0
  191. package/dist/extensions/forgecli/orchestrator-status-bar.d.ts +3 -2
  192. package/dist/extensions/forgecli/orchestrator-status-bar.js +90 -60
  193. package/dist/extensions/forgecli/orchestrator-status-bar.js.map +1 -1
  194. package/dist/extensions/forgecli/orchestrator-tree.d.ts +4 -0
  195. package/dist/extensions/forgecli/orchestrator-tree.js +21 -3
  196. package/dist/extensions/forgecli/orchestrator-tree.js.map +1 -1
  197. package/dist/extensions/forgecli/orchestrators/calibrate.d.ts +64 -0
  198. package/dist/extensions/forgecli/orchestrators/calibrate.js +481 -0
  199. package/dist/extensions/forgecli/orchestrators/calibrate.js.map +1 -0
  200. package/dist/extensions/forgecli/orchestrators/fix-bug.d.ts +93 -0
  201. package/dist/extensions/forgecli/orchestrators/fix-bug.js +1705 -0
  202. package/dist/extensions/forgecli/orchestrators/fix-bug.js.map +1 -0
  203. package/dist/extensions/forgecli/orchestrators/halt-advisor.d.ts +59 -0
  204. package/dist/extensions/forgecli/orchestrators/halt-advisor.js +113 -0
  205. package/dist/extensions/forgecli/orchestrators/halt-advisor.js.map +1 -0
  206. package/dist/extensions/forgecli/orchestrators/materialize.d.ts +16 -0
  207. package/dist/extensions/forgecli/orchestrators/materialize.js +195 -0
  208. package/dist/extensions/forgecli/orchestrators/materialize.js.map +1 -0
  209. package/dist/extensions/forgecli/orchestrators/migrate.d.ts +22 -0
  210. package/dist/extensions/forgecli/orchestrators/migrate.js +260 -0
  211. package/dist/extensions/forgecli/orchestrators/migrate.js.map +1 -0
  212. package/dist/extensions/forgecli/orchestrators/orchestrator-preflight.d.ts +46 -0
  213. package/dist/extensions/forgecli/orchestrators/orchestrator-preflight.js +64 -0
  214. package/dist/extensions/forgecli/orchestrators/orchestrator-preflight.js.map +1 -0
  215. package/dist/extensions/forgecli/orchestrators/run-sprint.d.ts +27 -0
  216. package/dist/extensions/forgecli/orchestrators/run-sprint.js +734 -0
  217. package/dist/extensions/forgecli/orchestrators/run-sprint.js.map +1 -0
  218. package/dist/extensions/forgecli/orchestrators/run-task.d.ts +215 -0
  219. package/dist/extensions/forgecli/orchestrators/run-task.js +1491 -0
  220. package/dist/extensions/forgecli/orchestrators/run-task.js.map +1 -0
  221. package/dist/extensions/forgecli/paths/paths.d.ts +8 -0
  222. package/dist/extensions/forgecli/paths/paths.js +17 -0
  223. package/dist/extensions/forgecli/paths/paths.js.map +1 -1
  224. package/dist/extensions/forgecli/phase-vocab.d.ts +31 -0
  225. package/dist/extensions/forgecli/phase-vocab.js +82 -0
  226. package/dist/extensions/forgecli/phase-vocab.js.map +1 -0
  227. package/dist/extensions/forgecli/run-sprint.d.ts +3 -1
  228. package/dist/extensions/forgecli/run-sprint.js +1 -0
  229. package/dist/extensions/forgecli/run-sprint.js.map +1 -1
  230. package/dist/extensions/forgecli/run-task.d.ts +34 -1
  231. package/dist/extensions/forgecli/run-task.js +144 -6
  232. package/dist/extensions/forgecli/run-task.js.map +1 -1
  233. package/dist/extensions/forgecli/session-registry.d.ts +2 -2
  234. package/dist/extensions/forgecli/session-registry.js +6 -2
  235. package/dist/extensions/forgecli/session-registry.js.map +1 -1
  236. package/dist/extensions/forgecli/skill-curation/friction-emit.d.ts +99 -0
  237. package/dist/extensions/forgecli/skill-curation/friction-emit.js +245 -0
  238. package/dist/extensions/forgecli/skill-curation/friction-emit.js.map +1 -0
  239. package/dist/extensions/forgecli/skill-curation/skill-curation-flag.d.ts +21 -0
  240. package/dist/extensions/forgecli/skill-curation/skill-curation-flag.js +71 -0
  241. package/dist/extensions/forgecli/skill-curation/skill-curation-flag.js.map +1 -0
  242. package/dist/extensions/forgecli/skill-curation/skill-curator-subagent.d.ts +102 -0
  243. package/dist/extensions/forgecli/skill-curation/skill-curator-subagent.js +339 -0
  244. package/dist/extensions/forgecli/skill-curation/skill-curator-subagent.js.map +1 -0
  245. package/dist/extensions/forgecli/skill-curation/skill-retriever.d.ts +84 -0
  246. package/dist/extensions/forgecli/skill-curation/skill-retriever.js +246 -0
  247. package/dist/extensions/forgecli/skill-curation/skill-retriever.js.map +1 -0
  248. package/dist/extensions/forgecli/skill-curation/skill-usage-tracker.d.ts +91 -0
  249. package/dist/extensions/forgecli/skill-curation/skill-usage-tracker.js +224 -0
  250. package/dist/extensions/forgecli/skill-curation/skill-usage-tracker.js.map +1 -0
  251. package/dist/extensions/forgecli/store/store-error-remediation.d.ts +65 -0
  252. package/dist/extensions/forgecli/store/store-error-remediation.js +307 -0
  253. package/dist/extensions/forgecli/store/store-error-remediation.js.map +1 -0
  254. package/dist/extensions/forgecli/store/store-resolver.d.ts +56 -0
  255. package/dist/extensions/forgecli/store/store-resolver.js +263 -0
  256. package/dist/extensions/forgecli/store/store-resolver.js.map +1 -0
  257. package/dist/extensions/forgecli/store/store-validator.d.ts +16 -0
  258. package/dist/extensions/forgecli/store/store-validator.js +32 -0
  259. package/dist/extensions/forgecli/store/store-validator.js.map +1 -0
  260. package/dist/extensions/forgecli/store/transition-guard.d.ts +20 -0
  261. package/dist/extensions/forgecli/store/transition-guard.js +89 -0
  262. package/dist/extensions/forgecli/store/transition-guard.js.map +1 -0
  263. package/dist/extensions/forgecli/subagent/orchestrator-transcript.js +5 -0
  264. package/dist/extensions/forgecli/subagent/orchestrator-transcript.js.map +1 -1
  265. package/dist/extensions/forgecli/thread-switcher.d.ts +4 -1
  266. package/dist/extensions/forgecli/thread-switcher.js +36 -21
  267. package/dist/extensions/forgecli/thread-switcher.js.map +1 -1
  268. package/dist/extensions/forgecli/transcript-archive-types.d.ts +171 -0
  269. package/dist/extensions/forgecli/transcript-archive-types.js +130 -0
  270. package/dist/extensions/forgecli/transcript-archive-types.js.map +1 -0
  271. package/dist/extensions/forgecli/transcript-archive.d.ts +127 -0
  272. package/dist/extensions/forgecli/transcript-archive.js +656 -0
  273. package/dist/extensions/forgecli/transcript-archive.js.map +1 -0
  274. package/dist/extensions/forgecli/transcript-replay.d.ts +28 -0
  275. package/dist/extensions/forgecli/transcript-replay.js +153 -0
  276. package/dist/extensions/forgecli/transcript-replay.js.map +1 -0
  277. package/dist/extensions/forgecli/transcripts-tui/component.d.ts +36 -0
  278. package/dist/extensions/forgecli/transcripts-tui/component.js +112 -0
  279. package/dist/extensions/forgecli/transcripts-tui/component.js.map +1 -0
  280. package/dist/extensions/forgecli/transcripts-tui/index.d.ts +4 -0
  281. package/dist/extensions/forgecli/transcripts-tui/index.js +5 -0
  282. package/dist/extensions/forgecli/transcripts-tui/index.js.map +1 -0
  283. package/dist/extensions/forgecli/transcripts-tui/screens/browse.d.ts +21 -0
  284. package/dist/extensions/forgecli/transcripts-tui/screens/browse.js +172 -0
  285. package/dist/extensions/forgecli/transcripts-tui/screens/browse.js.map +1 -0
  286. package/dist/extensions/forgecli/transcripts-tui/screens/types.d.ts +22 -0
  287. package/dist/extensions/forgecli/transcripts-tui/screens/types.js +4 -0
  288. package/dist/extensions/forgecli/transcripts-tui/screens/types.js.map +1 -0
  289. package/dist/extensions/forgecli/transcripts-tui/state/index.d.ts +4 -0
  290. package/dist/extensions/forgecli/transcripts-tui/state/index.js +5 -0
  291. package/dist/extensions/forgecli/transcripts-tui/state/index.js.map +1 -0
  292. package/dist/extensions/forgecli/transcripts-tui/state/init.d.ts +8 -0
  293. package/dist/extensions/forgecli/transcripts-tui/state/init.js +18 -0
  294. package/dist/extensions/forgecli/transcripts-tui/state/init.js.map +1 -0
  295. package/dist/extensions/forgecli/transcripts-tui/state/model.d.ts +56 -0
  296. package/dist/extensions/forgecli/transcripts-tui/state/model.js +6 -0
  297. package/dist/extensions/forgecli/transcripts-tui/state/model.js.map +1 -0
  298. package/dist/extensions/forgecli/transcripts-tui/state/reducer.d.ts +2 -0
  299. package/dist/extensions/forgecli/transcripts-tui/state/reducer.js +51 -0
  300. package/dist/extensions/forgecli/transcripts-tui/state/reducer.js.map +1 -0
  301. package/dist/extensions/forgecli/transcripts-tui/state/selectors.d.ts +10 -0
  302. package/dist/extensions/forgecli/transcripts-tui/state/selectors.js +62 -0
  303. package/dist/extensions/forgecli/transcripts-tui/state/selectors.js.map +1 -0
  304. package/dist/extensions/forgecli/transcripts-tui/theme.d.ts +20 -0
  305. package/dist/extensions/forgecli/transcripts-tui/theme.js +47 -0
  306. package/dist/extensions/forgecli/transcripts-tui/theme.js.map +1 -0
  307. package/dist/extensions/forgecli/tui/banner.d.ts +10 -0
  308. package/dist/extensions/forgecli/tui/banner.js +36 -0
  309. package/dist/extensions/forgecli/tui/banner.js.map +1 -0
  310. package/dist/extensions/forgecli/tui/forge-header.d.ts +12 -0
  311. package/dist/extensions/forgecli/tui/forge-header.js +114 -0
  312. package/dist/extensions/forgecli/tui/forge-header.js.map +1 -0
  313. package/dist/extensions/forgecli/tui/input-router.d.ts +33 -0
  314. package/dist/extensions/forgecli/tui/input-router.js +136 -0
  315. package/dist/extensions/forgecli/tui/input-router.js.map +1 -0
  316. package/dist/extensions/forgecli/tui/orchestrator-status-bar.d.ts +26 -0
  317. package/dist/extensions/forgecli/tui/orchestrator-status-bar.js +213 -0
  318. package/dist/extensions/forgecli/tui/orchestrator-status-bar.js.map +1 -0
  319. package/dist/extensions/forgecli/tui/thread-switcher.d.ts +18 -0
  320. package/dist/extensions/forgecli/tui/thread-switcher.js +194 -0
  321. package/dist/extensions/forgecli/tui/thread-switcher.js.map +1 -0
  322. package/dist/extensions/forgecli/update/forge-update-command.d.ts +100 -0
  323. package/dist/extensions/forgecli/update/forge-update-command.js +435 -0
  324. package/dist/extensions/forgecli/update/forge-update-command.js.map +1 -0
  325. package/dist/extensions/forgecli/update/migration-engine.d.ts +117 -0
  326. package/dist/extensions/forgecli/update/migration-engine.js +563 -0
  327. package/dist/extensions/forgecli/update/migration-engine.js.map +1 -0
  328. package/dist/extensions/forgecli/update/update-check.d.ts +37 -0
  329. package/dist/extensions/forgecli/update/update-check.js +185 -0
  330. package/dist/extensions/forgecli/update/update-check.js.map +1 -0
  331. package/dist/extensions/forgecli/update/update-tools.d.ts +23 -0
  332. package/dist/extensions/forgecli/update/update-tools.js +135 -0
  333. package/dist/extensions/forgecli/update/update-tools.js.map +1 -0
  334. package/dist/extensions/forgecli/update/whats-new-widget.d.ts +26 -0
  335. package/dist/extensions/forgecli/update/whats-new-widget.js +376 -0
  336. package/dist/extensions/forgecli/update/whats-new-widget.js.map +1 -0
  337. package/dist/extensions/forgecli/update/whats-new.d.ts +120 -0
  338. package/dist/extensions/forgecli/update/whats-new.js +470 -0
  339. package/dist/extensions/forgecli/update/whats-new.js.map +1 -0
  340. package/dist/extensions/forgecli/viewport/events.d.ts +113 -0
  341. package/dist/extensions/forgecli/viewport/events.js +290 -0
  342. package/dist/extensions/forgecli/viewport/events.js.map +1 -0
  343. package/dist/extensions/forgecli/viewport/renderer.d.ts +102 -0
  344. package/dist/extensions/forgecli/viewport/renderer.js +277 -0
  345. package/dist/extensions/forgecli/viewport/renderer.js.map +1 -0
  346. package/dist/extensions/forgecli/viewport/theme.d.ts +11 -0
  347. package/dist/extensions/forgecli/viewport/theme.js +131 -0
  348. package/dist/extensions/forgecli/viewport/theme.js.map +1 -0
  349. package/dist/extensions/forgecli/wf-engine/engine.js +1 -1
  350. package/dist/extensions/forgecli/wf-engine/engine.js.map +1 -1
  351. package/dist/forge-payload/.base-pack/workflows/implement_plan.md +9 -0
  352. package/dist/forge-payload/.base-pack/workflows/plan_task.md +7 -0
  353. package/dist/forge-payload/.base-pack/workflows/review_code.md +4 -3
  354. package/dist/forge-payload/.base-pack/workflows/review_plan.md +4 -3
  355. package/dist/forge-payload/.base-pack/workflows/validate_task.md +4 -3
  356. package/dist/forge-payload/.claude-plugin/plugin.json +1 -1
  357. package/dist/forge-payload/.schemas/migrations.json +132 -27
  358. package/dist/forge-payload/meta/workflows/meta-review-implementation.md +4 -3
  359. package/dist/forge-payload/meta/workflows/meta-review-plan.md +4 -3
  360. package/dist/forge-payload/meta/workflows/meta-validate.md +4 -3
  361. package/dist/forge-payload/tools/collate.cjs +32 -0
  362. package/dist/forge-payload/tools/postflight-gate.cjs +56 -10
  363. package/package.json +5 -3
@@ -0,0 +1,277 @@
1
+ // viewport/renderer.ts
2
+ //
3
+ // Pure-string helpers for the subagent viewport tail buffer.
4
+ // Centralises glyph selection, arg/result shape extraction, thinking one-liners,
5
+ // and running-usage formatting so run-task / run-sprint / fix-bug can share
6
+ // rendering without diverging.
7
+ import path from "node:path";
8
+ /** Per-tool glyph. Falls back to a generic arrow when unknown. */
9
+ const TOOL_GLYPHS = {
10
+ bash: "$",
11
+ read: "⌕",
12
+ write: "✎",
13
+ edit: "✎",
14
+ glob: "⌕",
15
+ grep: "⌕",
16
+ notebookedit: "✎",
17
+ };
18
+ /** Bash patterns we want users to see flagged even when auto-approved. */
19
+ const RISKY_BASH = /\b(rm\s+-rf|git\s+push\s+--force|chmod\s+777|sudo\s|curl\s+[^|]*\|\s*sh\b|npm\s+publish\b)/;
20
+ export const RISKY_TAG = "🔒";
21
+ export function toolGlyph(toolName, args) {
22
+ const a = (args && typeof args === "object" ? args : {});
23
+ const lower = toolName.toLowerCase();
24
+ let glyph = TOOL_GLYPHS[lower];
25
+ if (!glyph) {
26
+ if (/store[-_]?cli|forge[-_]?store/i.test(toolName))
27
+ glyph = "⚙";
28
+ else
29
+ glyph = "→";
30
+ }
31
+ let risky = false;
32
+ if (lower === "bash" && typeof a.command === "string" && RISKY_BASH.test(a.command)) {
33
+ risky = true;
34
+ }
35
+ return { glyph, risky };
36
+ }
37
+ export function argHint(toolName, args, maxLen = 60) {
38
+ if (!args || typeof args !== "object")
39
+ return "";
40
+ const a = args;
41
+ const fp = (a.file_path ?? a.path);
42
+ if (typeof fp === "string")
43
+ return path.basename(fp);
44
+ if (typeof a.command === "string")
45
+ return truncateAtBoundary(a.command, maxLen);
46
+ if (typeof a.pattern === "string")
47
+ return truncateAtBoundary(a.pattern, maxLen);
48
+ if (typeof a.query === "string")
49
+ return truncateAtBoundary(a.query, maxLen);
50
+ return "";
51
+ }
52
+ /**
53
+ * Full argument content for the activity log — the producer plays no display
54
+ * role: the log entry carries the complete command/pattern/query (newlines
55
+ * and all) and the VIEWS decide how to clamp, wrap, or expand it (dashboard:
56
+ * 2-row clamp + ctrl+o expand). Paths stay full (not basenamed) — same
57
+ * principle.
58
+ */
59
+ export function argContent(toolName, args) {
60
+ if (!args || typeof args !== "object")
61
+ return "";
62
+ const a = args;
63
+ const fp = (a.file_path ?? a.path);
64
+ if (typeof fp === "string")
65
+ return fp;
66
+ if (typeof a.command === "string")
67
+ return a.command;
68
+ if (typeof a.pattern === "string")
69
+ return a.pattern;
70
+ if (typeof a.query === "string")
71
+ return a.query;
72
+ return "";
73
+ }
74
+ /**
75
+ * View-side display normalization: split a raw log entry (stored verbatim in
76
+ * the tail buffers) into display-safe lines — split on any line-break flavour,
77
+ * expand tabs (tabs break visible-width column math), strip layout-breaking C0
78
+ * control characters while preserving ANSI styling (\x1b). Blank continuation
79
+ * segments are dropped; fully-empty input stays one empty line. Every view
80
+ * that renders tail entries into a row-based layout MUST route them through
81
+ * this (a raw \n inside a composed pane row resets the terminal cursor to
82
+ * column 0 and the remainder renders under the adjacent pane).
83
+ */
84
+ export function toDisplayLines(raw) {
85
+ const cleaned = raw
86
+ .replace(/\t/g, " ")
87
+ // C0 controls except \n (0x0a), \r (0x0d — consumed by the split) and
88
+ // \x1b (ANSI escape introducer), plus DEL (0x7f).
89
+ .replace(/[\x00-\x08\x0b\x0c\x0e-\x1a\x1c-\x1f\x7f]/g, "");
90
+ const segments = cleaned.split(/\r\n|\r|\n/);
91
+ if (segments.length === 1)
92
+ return segments;
93
+ const lines = segments.filter((s, i) => i === 0 || s.trim().length > 0);
94
+ return lines.length > 0 ? lines : [""];
95
+ }
96
+ /**
97
+ * Truncate at a whitespace boundary when possible so we don't slice mid-token
98
+ * (e.g. `FORGE_ROOT=$(node -e` cut at the open paren). Appends `…(+Nc)` so the
99
+ * user knows there's more.
100
+ */
101
+ export function truncateAtBoundary(s, max) {
102
+ if (s.length <= max)
103
+ return s;
104
+ const head = s.slice(0, max);
105
+ const lastSpace = head.lastIndexOf(" ");
106
+ const cut = lastSpace > Math.floor(max * 0.6) ? lastSpace : max;
107
+ const extra = s.length - cut;
108
+ // Strip trailing whitespace before the ellipsis so the body is visually
109
+ // clean and downstream string checks (`endsWith` / regex) behave predictably.
110
+ return `${s.slice(0, cut).replace(/\s+$/, "")}…(+${extra}c)`;
111
+ }
112
+ /**
113
+ * Extract a small "shape" hint from a tool result so users see `read ok 247L`
114
+ * instead of `read ok`. Defensive: result shapes vary across tools and providers.
115
+ */
116
+ export function resultShape(_toolName, result) {
117
+ try {
118
+ if (typeof result === "string") {
119
+ if (result.length === 0)
120
+ return "empty";
121
+ const lines = result.split(/\r?\n/).length;
122
+ return lines > 1 ? `${lines}L` : `${result.length}c`;
123
+ }
124
+ if (result && typeof result === "object") {
125
+ const r = result;
126
+ if (typeof r.stdout === "string") {
127
+ const out = r.stdout;
128
+ if (out.length === 0)
129
+ return "empty";
130
+ const lines = out.split(/\r?\n/).length;
131
+ return `${lines}L`;
132
+ }
133
+ if (typeof r.content === "string") {
134
+ const lines = r.content.split(/\r?\n/).length;
135
+ return `${lines}L`;
136
+ }
137
+ if (Array.isArray(r.content)) {
138
+ let total = 0;
139
+ for (const item of r.content) {
140
+ const t = item?.text;
141
+ if (typeof t === "string")
142
+ total += t.split(/\r?\n/).length;
143
+ }
144
+ if (total > 0)
145
+ return `${total}L`;
146
+ }
147
+ }
148
+ }
149
+ catch {
150
+ // fall through to no hint
151
+ }
152
+ return "";
153
+ }
154
+ /**
155
+ * Pull the first sentence (or first 100 chars) from any `thinking` block on an
156
+ * assistant message. Returns `undefined` if no thinking content present.
157
+ */
158
+ export function extractThinkingOneLiner(message) {
159
+ if (!message || message.role !== "assistant")
160
+ return undefined;
161
+ const content = message.content;
162
+ if (!Array.isArray(content))
163
+ return undefined;
164
+ for (const block of content) {
165
+ const b = block;
166
+ if (b?.type !== "thinking" || typeof b.thinking !== "string")
167
+ continue;
168
+ const text = b.thinking.trim();
169
+ if (!text)
170
+ continue;
171
+ const m = text.match(/^[^\n.!?]+/);
172
+ const first = (m ? m[0] : text).trim();
173
+ return first.length > 100 ? `${first.slice(0, 100)}…` : first;
174
+ }
175
+ return undefined;
176
+ }
177
+ /** Extract usage from an assistant message; returns zeros if missing. */
178
+ export function readUsage(message) {
179
+ const u = message?.usage;
180
+ return {
181
+ input: u?.input ?? 0,
182
+ output: u?.output ?? 0,
183
+ cacheRead: u?.cacheRead ?? 0,
184
+ };
185
+ }
186
+ /**
187
+ * Extract the last assistant-authored text from a turn_end message and
188
+ * collapse to a single-line preview (max 120 chars). Returns "" if the
189
+ * message has no text content (e.g. all-tool-call turn).
190
+ */
191
+ export function extractTurnPreview(message) {
192
+ if (!message || typeof message !== "object")
193
+ return "";
194
+ const msg = message;
195
+ if (msg.role !== "assistant")
196
+ return "";
197
+ const content = msg.content;
198
+ if (!Array.isArray(content))
199
+ return "";
200
+ for (const c of content) {
201
+ if (!c || typeof c !== "object")
202
+ continue;
203
+ const part = c;
204
+ if (part.type === "text" && typeof part.text === "string" && part.text.trim()) {
205
+ const flat = part.text.replace(/\s+/g, " ").trim();
206
+ return flat.length > 120 ? `${flat.slice(0, 117)}…` : flat;
207
+ }
208
+ }
209
+ return "";
210
+ }
211
+ export function fmtTokenMeter(u) {
212
+ return `↑${humanTokens(u.input)}↓${humanTokens(u.output)}`;
213
+ }
214
+ function humanTokens(n) {
215
+ if (n < 1000)
216
+ return String(n);
217
+ if (n < 10_000)
218
+ return `${(n / 1000).toFixed(1)}k`;
219
+ if (n < 1_000_000)
220
+ return `${Math.round(n / 1000)}k`;
221
+ return `${(n / 1_000_000).toFixed(2)}M`;
222
+ }
223
+ /** Format a one-shot phase-completion line for the tail buffer. */
224
+ export function fmtPhaseSummary(opts) {
225
+ const { role, turns, tools, errors, wallSeconds, usage, model, provider, compression } = opts;
226
+ const errPart = errors > 0 ? ` err=${errors}` : "";
227
+ const modelPart = model ? ` model=${model}${provider ? `/${provider}` : ""}` : "";
228
+ const compPart = compression && compression.tokensSaved > 0 ? ` ⇌${humanTokens(compression.tokensSaved)}` : "";
229
+ return `▣ ${role}: turns=${turns} tools=${tools}${errPart} ${fmtTokenMeter(usage)}${compPart} wall=${fmtWall(wallSeconds)}${modelPart}`;
230
+ }
231
+ /**
232
+ * Build the sticky footer line shown at the bottom of the tail view.
233
+ * Includes cacheRead only when nonzero — most non-Anthropic providers (ollama,
234
+ * glm, etc.) return 0 for cache fields and we don't want the noise.
235
+ */
236
+ export function fmtTokenFooter(usage, compression) {
237
+ if (!usage)
238
+ return "";
239
+ const cache = usage.cacheRead > 0 ? ` ⇪${humanTokens(usage.cacheRead)}` : "";
240
+ const comp = compression && compression.tokensSaved > 0 ? ` ⇌${humanTokens(compression.tokensSaved)}` : "";
241
+ return `↑${humanTokens(usage.input)} ↓${humanTokens(usage.output)}${cache}${comp}`;
242
+ }
243
+ /**
244
+ * Compact `(provider) model` label used to annotate token footers so users
245
+ * can see which model a phase ran with. Returns "" when neither field is
246
+ * populated.
247
+ */
248
+ export function fmtModelLabel(info) {
249
+ if (!info)
250
+ return "";
251
+ const { provider, model } = info;
252
+ if (!provider && !model)
253
+ return "";
254
+ if (provider && model)
255
+ return `(${provider}) ${model}`;
256
+ return provider ?? model ?? "";
257
+ }
258
+ /**
259
+ * Combine a model label with a token footer, separated by ` · `. Either
260
+ * half may be empty — the separator is only inserted when both halves are
261
+ * present. Returns "" when both are empty.
262
+ */
263
+ export function fmtModelAndTokenFooter(info, usage, compression) {
264
+ const left = fmtModelLabel(info);
265
+ const right = fmtTokenFooter(usage, compression);
266
+ if (left && right)
267
+ return `${left} · ${right}`;
268
+ return left || right;
269
+ }
270
+ function fmtWall(seconds) {
271
+ if (seconds < 60)
272
+ return `${seconds}s`;
273
+ const m = Math.floor(seconds / 60);
274
+ const s = seconds % 60;
275
+ return `${m}m${String(s).padStart(2, "0")}s`;
276
+ }
277
+ //# sourceMappingURL=renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../../../src/extensions/forgecli/viewport/renderer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { Theme } from "@earendil-works/pi-coding-agent";
2
+ /**
3
+ * Parse one tail line into prefix + body, then colour both halves.
4
+ * Returns the line unchanged if no theme is available.
5
+ */
6
+ export declare function paintTailLine(line: string, theme: Theme | undefined): string;
7
+ /**
8
+ * Build the sticky token-meter footer. Right-aligned to the viewport width,
9
+ * preceded by a thin separator line so it visually anchors to the prompt.
10
+ */
11
+ export declare function paintFooterLine(text: string, width: number, theme: Theme | undefined): string;
@@ -0,0 +1,131 @@
1
+ // viewport/theme.ts
2
+ //
3
+ // Paints subagent-tail lines using pi's Theme. The tail buffer (see
4
+ // viewport/renderer.ts) stores plain strings so transcripts and audit logs
5
+ // stay ANSI-clean; this module is the single place that maps line categories
6
+ // to theme colors at render time.
7
+ //
8
+ // Why parse at render time rather than colour at emit time:
9
+ // 1. Theme may change after a line is emitted (user toggles theme).
10
+ // 2. The tail buffer doubles as a fall-back trace; ANSI escapes there would
11
+ // bleed into any plaintext consumer (clipboard, transcript debugging).
12
+ // 3. Run-task.ts has no direct theme access — it runs as a command handler;
13
+ // Theme lives in the TUI widget callback. Painting at render keeps the
14
+ // emit path theme-agnostic and testable in isolation.
15
+ //
16
+ // Mapping (single source of truth for line category → ThemeColor):
17
+ //
18
+ // prefix `[role HH:MM:SS …]` → dim
19
+ // `$ bash …` → bashMode (glyph) + text (rest)
20
+ // `⌕ read/grep/glob …` → accent (glyph)
21
+ // `✎ write/edit …` → warning (glyph) -- mutation
22
+ // `⚙ store-cli …` → toolTitle (glyph)
23
+ // `→ …` fallback → muted (glyph)
24
+ // `← tool ok 247L` → success (glyph + "ok N L")
25
+ // `⚠ tool failed: …` → error
26
+ // `🔒 …` → error bold (glyph)
27
+ // `✱ thinking line` → thinkingText italic
28
+ // `» "preview"` → muted italic
29
+ // `⇉ batched N` → dim
30
+ // `▣ summary` → accent bold
31
+ // `─── phase X/Y …` → accent bold
32
+ import { visibleWidth } from "@earendil-works/pi-tui";
33
+ /**
34
+ * Parse one tail line into prefix + body, then colour both halves.
35
+ * Returns the line unchanged if no theme is available.
36
+ */
37
+ export function paintTailLine(line, theme) {
38
+ if (!theme)
39
+ return line;
40
+ // Structured prefix: an optional leading turn-bracket glyph followed by a
41
+ // `[T<turn>:HH:MM:SS]` stamp (legacy: `[role HH:MM:SS t<turn>]`). Only a
42
+ // LEADING stamp is dimmed — a `]` inside the body (JSON errors, arrays)
43
+ // must not be mistaken for a prefix.
44
+ const m = line.match(/^(?:[╭│╰─] )?\[[^\]]*\]/);
45
+ if (!m) {
46
+ // No structured prefix — bracket continuation lines (`│ ← bash ok`)
47
+ // and phase begin lines (`─── phase … ───`) theme via body matcher.
48
+ return paintBody(line, theme);
49
+ }
50
+ const prefix = m[0];
51
+ const body = line.slice(prefix.length);
52
+ const paintedPrefix = theme.fg("dim", prefix);
53
+ const paintedBody = paintBody(body, theme);
54
+ return `${paintedPrefix}${paintedBody}`;
55
+ }
56
+ /**
57
+ * Build the sticky token-meter footer. Right-aligned to the viewport width,
58
+ * preceded by a thin separator line so it visually anchors to the prompt.
59
+ */
60
+ export function paintFooterLine(text, width, theme) {
61
+ const w = Math.max(visibleWidth(text), 0);
62
+ const padLen = Math.max(0, width - w);
63
+ const pad = " ".repeat(padLen);
64
+ if (!theme)
65
+ return `${pad}${text}`;
66
+ return `${pad}${theme.bold(theme.fg("accent", text))}`;
67
+ }
68
+ function paintBody(body, theme) {
69
+ const trimmed = body.replace(/^\s+/, "");
70
+ if (trimmed.length === 0)
71
+ return body;
72
+ const leadingWs = body.slice(0, body.length - trimmed.length);
73
+ // Tree connector at the start (`╭`/`│`/`╰`/`─`): paint dim then recurse so
74
+ // the inner glyph still gets its category colour. `─` only when followed by
75
+ // whitespace and NOT another `─` — that disambiguates a single-line-turn
76
+ // connector from a phase-boundary line (`─── phase X/Y …`).
77
+ const conn = trimmed.match(/^([╭│╰]|─(?=\s))\s+(.*)$/);
78
+ if (conn) {
79
+ const connector = conn[1];
80
+ const rest = conn[2];
81
+ return `${leadingWs}${theme.fg("dim", connector)} ${paintInner(rest, theme)}`;
82
+ }
83
+ return `${leadingWs}${paintInner(trimmed, theme)}`;
84
+ }
85
+ function paintInner(trimmed, theme) {
86
+ if (trimmed.length === 0)
87
+ return trimmed;
88
+ // Use codePointAt so non-BMP emoji like 🔒 (U+1F512, surrogate pair in
89
+ // UTF-16) match correctly. `trimmed[0]` returns only the high surrogate.
90
+ const cp = trimmed.codePointAt(0);
91
+ const first = cp !== undefined ? String.fromCodePoint(cp) : "";
92
+ switch (first) {
93
+ case "$": // bash
94
+ return `${theme.fg("bashMode", "$")}${trimmed.slice(1)}`;
95
+ case "⌕": // read/grep/glob
96
+ return `${theme.fg("accent", "⌕")}${trimmed.slice(1)}`;
97
+ case "✎": // write/edit
98
+ return `${theme.fg("warning", "✎")}${trimmed.slice(1)}`;
99
+ case "⚙": // store-cli
100
+ return `${theme.fg("toolTitle", "⚙")}${trimmed.slice(1)}`;
101
+ case "→": // fallback tool
102
+ return `${theme.fg("muted", "→")}${trimmed.slice(1)}`;
103
+ case "←": // tool result OK
104
+ return theme.fg("success", trimmed);
105
+ case "⚠": // tool failed
106
+ return theme.fg("error", trimmed);
107
+ case "🔒": // risky bash
108
+ return theme.bold(theme.fg("error", trimmed));
109
+ case "✱": // thinking
110
+ return theme.italic(theme.fg("thinkingText", trimmed));
111
+ case "»": // model preview text
112
+ return theme.italic(theme.fg("muted", trimmed));
113
+ case "⇉": // batched
114
+ return theme.fg("dim", trimmed);
115
+ case "▣": // phase summary
116
+ return theme.bold(theme.fg("accent", trimmed));
117
+ case "─": // phase boundary line `─── phase X/Y begin · taskId ───`
118
+ return theme.bold(theme.fg("accent", trimmed));
119
+ case "↻": // auto retry
120
+ return theme.fg("warning", trimmed);
121
+ case "◌": // compaction
122
+ return theme.fg("muted", trimmed);
123
+ case "⊘": // cancelled
124
+ return theme.fg("muted", trimmed);
125
+ case "⏳": // cancelling
126
+ return theme.fg("warning", trimmed);
127
+ default:
128
+ return trimmed;
129
+ }
130
+ }
131
+ //# sourceMappingURL=theme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.js","sourceRoot":"","sources":["../../../../src/extensions/forgecli/viewport/theme.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import * as fs from "node:fs";
2
2
  import * as path from "node:path";
3
- import { extractTurnPreview } from "../run-task.js";
3
+ import { extractTurnPreview } from "../orchestrators/run-task.js";
4
4
  import { parseEventsBlock } from "./event-parser.js";
5
5
  import { makeEventId, makeInstanceId, makeNodeExecId } from "./id-gen.js";
6
6
  import { loadWorkflowDef } from "./loader.js";
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../../src/extensions/forgecli/wf-engine/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../../src/extensions/forgecli/wf-engine/engine.ts"],"names":[],"mappings":"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"}
@@ -95,6 +95,15 @@ deps:
95
95
  Or (bug mode):
96
96
  `forge_store({ command:"set-bug-summary", args:["{bugId}", "implementation"] })`
97
97
  The sidecar path is auto-resolved from the record's `path` — never pass it.
98
+
99
+ 8. Post-Phase Output Guard: the `outputs` block below is the authoritative enforcer.
100
+ You MUST satisfy it before returning. If PROGRESS.md is missing or too small,
101
+ re-run the relevant step before emitting the complete event.
102
+ ```
103
+
104
+ ```outputs phase=implement
105
+ artifact {engineering}/{sprint}/{task}/PROGRESS.md min=200
106
+ require summaries.implementation.verdict == n/a
98
107
  ```
99
108
 
100
109
  <!-- See _fragments/iron-laws.md for Iron Laws section structure guidance -->
@@ -105,6 +105,13 @@ deps:
105
105
  Or (bug mode):
106
106
  `forge_store({ command:"set-bug-summary", args:["{record_id}", "plan"] })`
107
107
  - If the set-summary call exits non-zero, fix the sidecar JSON and retry. Do not proceed without a valid summary.
108
+
109
+ 7. Post-Phase Output Guard: satisfy the `outputs` block before returning.
110
+ ```
111
+
112
+ ```outputs phase=plan
113
+ artifact {engineering}/{sprint}/{task}/PLAN.md min=200
114
+ require summaries.plan.verdict == n/a
108
115
  ```
109
116
 
110
117
  <!-- See _fragments/iron-laws.md for Iron Laws section structure guidance -->
@@ -59,9 +59,10 @@ deps:
59
59
  - If present, extract:
60
60
  - `Iteration: N of M` — current attempt number and the configured limit
61
61
  - `Is final iteration: true/false`
62
- - If absent (user-invoked, not orchestrated): treat as iteration 1 of M, where M is
63
- read from `.forge/config.json` `maxReviewIterations` (default 3 if field absent).
64
- - Include `(iteration N of M)` in the opening line of the `CODE_REVIEW.md` artifact.
62
+ - If absent (user-invoked, not orchestrated): treat as `iteration 1`, no limit do
63
+ NOT read any iteration cap from config. The orchestrator owns loop budgets; a human
64
+ standalone re-run is the escape hatch for stuck items (forge-engineering#34).
65
+ - Include `(iteration N of M)` (orchestrated) or `(standalone review)` in the opening line of the `CODE_REVIEW.md` artifact.
65
66
  - If this is the final iteration (`N == M`) and the verdict is `Revision Required`,
66
67
  append a `### Next Steps` section to the artifact showing:
67
68
  ```
@@ -61,9 +61,10 @@ deps:
61
61
  - If present, extract:
62
62
  - `Iteration: N of M` — current attempt number and the configured limit
63
63
  - `Is final iteration: true/false`
64
- - If absent (user-invoked, not orchestrated): treat as iteration 1 of M, where M is
65
- read from `.forge/config.json` `maxReviewIterations` (default 3 if field absent).
66
- - Include `(iteration N of M)` in the opening line of the `PLAN_REVIEW.md` artifact.
64
+ - If absent (user-invoked, not orchestrated): treat as `iteration 1`, no limit do
65
+ NOT read any iteration cap from config. The orchestrator owns loop budgets; a human
66
+ standalone re-run is the escape hatch for stuck items (forge-engineering#34).
67
+ - Include `(iteration N of M)` (orchestrated) or `(standalone review)` in the opening line of the `PLAN_REVIEW.md` artifact.
67
68
  - If this is the final iteration (`N == M`) and the verdict is `Revision Required`,
68
69
  append a `### Next Steps` section to the artifact showing:
69
70
  ```
@@ -59,9 +59,10 @@ deps:
59
59
  - If present, extract:
60
60
  - `Iteration: N of M` — current attempt number and the configured limit
61
61
  - `Is final iteration: true/false`
62
- - If absent (user-invoked, not orchestrated): treat as iteration 1 of M, where M is
63
- read from `.forge/config.json` `maxReviewIterations` (default 3 if field absent).
64
- - Include `(iteration N of M)` in the opening line of the `VALIDATION_REPORT.md` artifact.
62
+ - If absent (user-invoked, not orchestrated): treat as `iteration 1`, no limit do
63
+ NOT read any iteration cap from config. The orchestrator owns loop budgets; a human
64
+ standalone re-run is the escape hatch for stuck items (forge-engineering#34).
65
+ - Include `(iteration N of M)` (orchestrated) or `(standalone review)` in the opening line of the `VALIDATION_REPORT.md` artifact.
65
66
  - If this is the final iteration (`N == M`) and the verdict is `Revision Required`,
66
67
  append a `### Next Steps` section to the artifact showing:
67
68
  ```
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "forge",
3
- "version": "1.2.14",
3
+ "version": "1.2.17",
4
4
  "description": "Self-enhancing AI software development lifecycle — generates project-specific SDLC instances from meta-definitions",
5
5
  "license": "MIT",
6
6
  "author": {