@entelligentsia/forgecli 1.0.36 → 1.0.40

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 (654) hide show
  1. package/CHANGELOG.md +83 -0
  2. package/dist/CHANGELOG-forge-plugin.md +101 -0
  3. package/dist/CHANGELOG-pi.md +143 -0
  4. package/dist/bin/argv.d.ts +1 -1
  5. package/dist/bin/argv.js +12 -0
  6. package/dist/bin/argv.js.map +1 -1
  7. package/dist/bin/forge.js +18 -16
  8. package/dist/bin/forge.js.map +1 -1
  9. package/dist/bin/reset.d.ts +39 -0
  10. package/dist/bin/reset.js +101 -0
  11. package/dist/bin/reset.js.map +1 -0
  12. package/dist/extensions/forgecli/claude-bootstrap/bootstrap.js +56 -265
  13. package/dist/extensions/forgecli/claude-bootstrap/bootstrap.js.map +1 -1
  14. package/dist/extensions/forgecli/claude-bootstrap/uninstall.js +52 -32
  15. package/dist/extensions/forgecli/claude-bootstrap/uninstall.js.map +1 -1
  16. package/dist/extensions/forgecli/commands/reset.d.ts +16 -0
  17. package/dist/extensions/forgecli/commands/reset.js +83 -0
  18. package/dist/extensions/forgecli/commands/reset.js.map +1 -0
  19. package/dist/extensions/forgecli/forge-commands.d.ts +7 -2
  20. package/dist/extensions/forgecli/forge-commands.js +19 -5
  21. package/dist/extensions/forgecli/forge-commands.js.map +1 -1
  22. package/dist/extensions/forgecli/forge-subagent.d.ts +4 -4
  23. package/dist/extensions/forgecli/hooks/forge-permissions.js +20 -6
  24. package/dist/extensions/forgecli/hooks/forge-permissions.js.map +1 -1
  25. package/dist/extensions/forgecli/index.js +6 -3
  26. package/dist/extensions/forgecli/index.js.map +1 -1
  27. package/dist/extensions/forgecli/lib/forge-root.d.ts +6 -0
  28. package/dist/extensions/forgecli/lib/forge-root.js +52 -0
  29. package/dist/extensions/forgecli/lib/forge-root.js.map +1 -1
  30. package/dist/extensions/forgecli/lib/payload-manifest.d.ts +62 -0
  31. package/dist/extensions/forgecli/lib/payload-manifest.js +151 -0
  32. package/dist/extensions/forgecli/lib/payload-manifest.js.map +1 -0
  33. package/dist/extensions/forgecli/orchestrators/advisory-render.d.ts +9 -0
  34. package/dist/extensions/forgecli/orchestrators/advisory-render.js +107 -0
  35. package/dist/extensions/forgecli/orchestrators/advisory-render.js.map +1 -0
  36. package/dist/extensions/forgecli/orchestrators/bug/bug-phases.d.ts +3 -0
  37. package/dist/extensions/forgecli/orchestrators/bug/bug-phases.js +22 -0
  38. package/dist/extensions/forgecli/orchestrators/bug/bug-phases.js.map +1 -1
  39. package/dist/extensions/forgecli/orchestrators/bug/bug-verdict-loop.d.ts +1 -1
  40. package/dist/extensions/forgecli/orchestrators/bug/bug-verdict-loop.js +34 -2
  41. package/dist/extensions/forgecli/orchestrators/bug/bug-verdict-loop.js.map +1 -1
  42. package/dist/extensions/forgecli/orchestrators/bug/run-bug-pipeline.js +2 -2
  43. package/dist/extensions/forgecli/orchestrators/bug/run-bug-pipeline.js.map +1 -1
  44. package/dist/extensions/forgecli/orchestrators/common/recovery-menu.d.ts +24 -0
  45. package/dist/extensions/forgecli/orchestrators/common/recovery-menu.js +58 -0
  46. package/dist/extensions/forgecli/orchestrators/common/recovery-menu.js.map +1 -0
  47. package/dist/extensions/forgecli/orchestrators/common/reset-pipeline.d.ts +53 -0
  48. package/dist/extensions/forgecli/orchestrators/common/reset-pipeline.js +131 -0
  49. package/dist/extensions/forgecli/orchestrators/common/reset-pipeline.js.map +1 -0
  50. package/dist/extensions/forgecli/orchestrators/halt-advisor.js +25 -3
  51. package/dist/extensions/forgecli/orchestrators/halt-advisor.js.map +1 -1
  52. package/dist/extensions/forgecli/orchestrators/task/run-task-pipeline.js +3 -3
  53. package/dist/extensions/forgecli/orchestrators/task/run-task-pipeline.js.map +1 -1
  54. package/dist/extensions/forgecli/orchestrators/task/task-phases.d.ts +3 -0
  55. package/dist/extensions/forgecli/orchestrators/task/task-phases.js +22 -0
  56. package/dist/extensions/forgecli/orchestrators/task/task-phases.js.map +1 -1
  57. package/dist/extensions/forgecli/orchestrators/task/task-verdict-loop.d.ts +1 -1
  58. package/dist/extensions/forgecli/orchestrators/task/task-verdict-loop.js +37 -2
  59. package/dist/extensions/forgecli/orchestrators/task/task-verdict-loop.js.map +1 -1
  60. package/dist/extensions/forgecli/store/store-resolver.d.ts +15 -0
  61. package/dist/extensions/forgecli/store/store-resolver.js +118 -18
  62. package/dist/extensions/forgecli/store/store-resolver.js.map +1 -1
  63. package/dist/forge-payload/.claude-plugin/plugin.json +1 -1
  64. package/dist/forge-payload/.schemas/enum-catalog.json +2 -2
  65. package/dist/forge-payload/.schemas/migrations.json +85 -0
  66. package/dist/forge-payload/.schemas/payload-manifest.schema.json +100 -0
  67. package/dist/forge-payload/commands/check-agent.md +7 -23
  68. package/dist/forge-payload/commands/enhance.md +31 -5
  69. package/dist/forge-payload/commands/init.md +161 -97
  70. package/dist/forge-payload/commands/reset.md +117 -0
  71. package/dist/forge-payload/hooks/forge-permissions.cjs +29 -6
  72. package/dist/forge-payload/init/phases/phase-3-materialize.md +5 -1
  73. package/dist/forge-payload/integrity.json +22 -7
  74. package/dist/forge-payload/payload-manifest.json +314 -0
  75. package/dist/forge-payload/schemas/enum-catalog.json +2 -2
  76. package/dist/forge-payload/schemas/payload-manifest.schema.json +100 -0
  77. package/dist/forge-payload/schemas/structure-manifest.json +4 -2
  78. package/dist/forge-payload/tools/reset-plan.cjs +210 -0
  79. package/dist/forge-payload/tools/store.cjs +4 -1
  80. package/dist/forge-payload/tools/substitute-placeholders.cjs +10 -2
  81. package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.d.ts.map +1 -1
  82. package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.js +8 -0
  83. package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.js.map +1 -1
  84. package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/compaction.d.ts +1 -1
  85. package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/compaction.d.ts.map +1 -1
  86. package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/compaction.js +1 -1
  87. package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/compaction.js.map +1 -1
  88. package/node_modules/@earendil-works/pi-agent-core/dist/harness/execution-env.d.ts +4 -0
  89. package/node_modules/@earendil-works/pi-agent-core/dist/harness/execution-env.d.ts.map +1 -0
  90. package/node_modules/@earendil-works/pi-agent-core/dist/harness/execution-env.js +3 -0
  91. package/node_modules/@earendil-works/pi-agent-core/dist/harness/execution-env.js.map +1 -0
  92. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo/jsonl.d.ts +20 -0
  93. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo/jsonl.d.ts.map +1 -0
  94. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo/jsonl.js +92 -0
  95. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo/jsonl.js.map +1 -0
  96. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo/memory.d.ts +18 -0
  97. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo/memory.d.ts.map +1 -0
  98. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo/memory.js +42 -0
  99. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo/memory.js.map +1 -0
  100. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo/shared.d.ts +10 -0
  101. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo/shared.d.ts.map +1 -0
  102. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo/shared.js +31 -0
  103. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo/shared.js.map +1 -0
  104. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/storage/jsonl.d.ts +30 -0
  105. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/storage/jsonl.d.ts.map +1 -0
  106. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/storage/jsonl.js +170 -0
  107. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/storage/jsonl.js.map +1 -0
  108. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/storage/memory.d.ts +26 -0
  109. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/storage/memory.d.ts.map +1 -0
  110. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/storage/memory.js +90 -0
  111. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/storage/memory.js.map +1 -0
  112. package/node_modules/@earendil-works/pi-agent-core/dist/types.d.ts +6 -1
  113. package/node_modules/@earendil-works/pi-agent-core/dist/types.d.ts.map +1 -1
  114. package/node_modules/@earendil-works/pi-agent-core/dist/types.js.map +1 -1
  115. package/node_modules/@earendil-works/pi-agent-core/package.json +2 -2
  116. package/node_modules/@earendil-works/pi-ai/README.md +12 -4
  117. package/node_modules/@earendil-works/pi-ai/dist/env-api-keys.d.ts.map +1 -1
  118. package/node_modules/@earendil-works/pi-ai/dist/env-api-keys.js +3 -0
  119. package/node_modules/@earendil-works/pi-ai/dist/env-api-keys.js.map +1 -1
  120. package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.d.ts +45 -0
  121. package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.d.ts.map +1 -1
  122. package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.js +45 -0
  123. package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.js.map +1 -1
  124. package/node_modules/@earendil-works/pi-ai/dist/models.generated.d.ts +1804 -815
  125. package/node_modules/@earendil-works/pi-ai/dist/models.generated.d.ts.map +1 -1
  126. package/node_modules/@earendil-works/pi-ai/dist/models.generated.js +2031 -1384
  127. package/node_modules/@earendil-works/pi-ai/dist/models.generated.js.map +1 -1
  128. package/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.d.ts.map +1 -1
  129. package/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.js +71 -27
  130. package/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.js.map +1 -1
  131. package/node_modules/@earendil-works/pi-ai/dist/providers/anthropic.d.ts +1 -1
  132. package/node_modules/@earendil-works/pi-ai/dist/providers/anthropic.d.ts.map +1 -1
  133. package/node_modules/@earendil-works/pi-ai/dist/providers/anthropic.js +24 -16
  134. package/node_modules/@earendil-works/pi-ai/dist/providers/anthropic.js.map +1 -1
  135. package/node_modules/@earendil-works/pi-ai/dist/providers/azure-openai-responses.d.ts.map +1 -1
  136. package/node_modules/@earendil-works/pi-ai/dist/providers/azure-openai-responses.js +1 -0
  137. package/node_modules/@earendil-works/pi-ai/dist/providers/azure-openai-responses.js.map +1 -1
  138. package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex-responses.d.ts.map +1 -1
  139. package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex-responses.js +3 -1
  140. package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex-responses.js.map +1 -1
  141. package/node_modules/@earendil-works/pi-ai/dist/providers/openai-completions.d.ts.map +1 -1
  142. package/node_modules/@earendil-works/pi-ai/dist/providers/openai-completions.js +35 -13
  143. package/node_modules/@earendil-works/pi-ai/dist/providers/openai-completions.js.map +1 -1
  144. package/node_modules/@earendil-works/pi-ai/dist/providers/openai-responses-shared.d.ts.map +1 -1
  145. package/node_modules/@earendil-works/pi-ai/dist/providers/openai-responses-shared.js +2 -1
  146. package/node_modules/@earendil-works/pi-ai/dist/providers/openai-responses-shared.js.map +1 -1
  147. package/node_modules/@earendil-works/pi-ai/dist/providers/openai-responses.d.ts.map +1 -1
  148. package/node_modules/@earendil-works/pi-ai/dist/providers/openai-responses.js +1 -0
  149. package/node_modules/@earendil-works/pi-ai/dist/providers/openai-responses.js.map +1 -1
  150. package/node_modules/@earendil-works/pi-ai/dist/types.d.ts +12 -4
  151. package/node_modules/@earendil-works/pi-ai/dist/types.d.ts.map +1 -1
  152. package/node_modules/@earendil-works/pi-ai/dist/types.js.map +1 -1
  153. package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/github-copilot.d.ts.map +1 -1
  154. package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/github-copilot.js +13 -1
  155. package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/github-copilot.js.map +1 -1
  156. package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/openai-codex.d.ts.map +1 -1
  157. package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/openai-codex.js +4 -2
  158. package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/openai-codex.js.map +1 -1
  159. package/node_modules/@earendil-works/pi-ai/dist/utils/overflow.d.ts +1 -1
  160. package/node_modules/@earendil-works/pi-ai/dist/utils/overflow.d.ts.map +1 -1
  161. package/node_modules/@earendil-works/pi-ai/dist/utils/overflow.js +3 -2
  162. package/node_modules/@earendil-works/pi-ai/dist/utils/overflow.js.map +1 -1
  163. package/node_modules/@earendil-works/pi-ai/package.json +1 -1
  164. package/node_modules/@earendil-works/pi-coding-agent/CHANGELOG.md +143 -0
  165. package/node_modules/@earendil-works/pi-coding-agent/README.md +26 -4
  166. package/node_modules/@earendil-works/pi-coding-agent/dist/cli/args.d.ts +1 -0
  167. package/node_modules/@earendil-works/pi-coding-agent/dist/cli/args.d.ts.map +1 -1
  168. package/node_modules/@earendil-works/pi-coding-agent/dist/cli/args.js +11 -0
  169. package/node_modules/@earendil-works/pi-coding-agent/dist/cli/args.js.map +1 -1
  170. package/node_modules/@earendil-works/pi-coding-agent/dist/cli/project-trust.d.ts +10 -0
  171. package/node_modules/@earendil-works/pi-coding-agent/dist/cli/project-trust.d.ts.map +1 -0
  172. package/node_modules/@earendil-works/pi-coding-agent/dist/cli/project-trust.js +48 -0
  173. package/node_modules/@earendil-works/pi-coding-agent/dist/cli/project-trust.js.map +1 -0
  174. package/node_modules/@earendil-works/pi-coding-agent/dist/cli/startup-ui.d.ts +17 -0
  175. package/node_modules/@earendil-works/pi-coding-agent/dist/cli/startup-ui.d.ts.map +1 -0
  176. package/node_modules/@earendil-works/pi-coding-agent/dist/cli/startup-ui.js +128 -0
  177. package/node_modules/@earendil-works/pi-coding-agent/dist/cli/startup-ui.js.map +1 -0
  178. package/node_modules/@earendil-works/pi-coding-agent/dist/config.d.ts.map +1 -1
  179. package/node_modules/@earendil-works/pi-coding-agent/dist/config.js +9 -1
  180. package/node_modules/@earendil-works/pi-coding-agent/dist/config.js.map +1 -1
  181. package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session-runtime.d.ts +3 -1
  182. package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session-runtime.d.ts.map +1 -1
  183. package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session-runtime.js +4 -1
  184. package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session-runtime.js.map +1 -1
  185. package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session-services.d.ts +2 -1
  186. package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session-services.d.ts.map +1 -1
  187. package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session-services.js +2 -2
  188. package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session-services.js.map +1 -1
  189. package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session.d.ts +4 -1
  190. package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session.d.ts.map +1 -1
  191. package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session.js +16 -3
  192. package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session.js.map +1 -1
  193. package/node_modules/@earendil-works/pi-coding-agent/dist/core/auth-storage.d.ts.map +1 -1
  194. package/node_modules/@earendil-works/pi-coding-agent/dist/core/auth-storage.js +4 -3
  195. package/node_modules/@earendil-works/pi-coding-agent/dist/core/auth-storage.js.map +1 -1
  196. package/node_modules/@earendil-works/pi-coding-agent/dist/core/compaction/branch-summarization.d.ts +3 -1
  197. package/node_modules/@earendil-works/pi-coding-agent/dist/core/compaction/branch-summarization.d.ts.map +1 -1
  198. package/node_modules/@earendil-works/pi-coding-agent/dist/core/compaction/branch-summarization.js +9 -3
  199. package/node_modules/@earendil-works/pi-coding-agent/dist/core/compaction/branch-summarization.js.map +1 -1
  200. package/node_modules/@earendil-works/pi-coding-agent/dist/core/compaction/utils.d.ts +1 -1
  201. package/node_modules/@earendil-works/pi-coding-agent/dist/core/compaction/utils.d.ts.map +1 -1
  202. package/node_modules/@earendil-works/pi-coding-agent/dist/core/compaction/utils.js +1 -1
  203. package/node_modules/@earendil-works/pi-coding-agent/dist/core/compaction/utils.js.map +1 -1
  204. package/node_modules/@earendil-works/pi-coding-agent/dist/core/experimental.d.ts +2 -0
  205. package/node_modules/@earendil-works/pi-coding-agent/dist/core/experimental.d.ts.map +1 -0
  206. package/node_modules/@earendil-works/pi-coding-agent/dist/core/experimental.js +4 -0
  207. package/node_modules/@earendil-works/pi-coding-agent/dist/core/experimental.js.map +1 -0
  208. package/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/template.js +19 -6
  209. package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/index.d.ts +1 -1
  210. package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/index.d.ts.map +1 -1
  211. package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/index.js.map +1 -1
  212. package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/loader.d.ts +1 -1
  213. package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/loader.d.ts.map +1 -1
  214. package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/loader.js +4 -4
  215. package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/loader.js.map +1 -1
  216. package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/runner.d.ts +10 -3
  217. package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/runner.d.ts.map +1 -1
  218. package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/runner.js +47 -1
  219. package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/runner.js.map +1 -1
  220. package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/types.d.ts +28 -2
  221. package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/types.d.ts.map +1 -1
  222. package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/types.js.map +1 -1
  223. package/node_modules/@earendil-works/pi-coding-agent/dist/core/footer-data-provider.d.ts +2 -0
  224. package/node_modules/@earendil-works/pi-coding-agent/dist/core/footer-data-provider.d.ts.map +1 -1
  225. package/node_modules/@earendil-works/pi-coding-agent/dist/core/footer-data-provider.js +29 -1
  226. package/node_modules/@earendil-works/pi-coding-agent/dist/core/footer-data-provider.js.map +1 -1
  227. package/node_modules/@earendil-works/pi-coding-agent/dist/core/index.d.ts +1 -0
  228. package/node_modules/@earendil-works/pi-coding-agent/dist/core/index.d.ts.map +1 -1
  229. package/node_modules/@earendil-works/pi-coding-agent/dist/core/index.js +1 -0
  230. package/node_modules/@earendil-works/pi-coding-agent/dist/core/index.js.map +1 -1
  231. package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-registry.d.ts.map +1 -1
  232. package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-registry.js +1 -0
  233. package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-registry.js.map +1 -1
  234. package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-resolver.d.ts +1 -0
  235. package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-resolver.d.ts.map +1 -1
  236. package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-resolver.js +44 -5
  237. package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-resolver.js.map +1 -1
  238. package/node_modules/@earendil-works/pi-coding-agent/dist/core/package-manager.d.ts +3 -0
  239. package/node_modules/@earendil-works/pi-coding-agent/dist/core/package-manager.d.ts.map +1 -1
  240. package/node_modules/@earendil-works/pi-coding-agent/dist/core/package-manager.js +47 -13
  241. package/node_modules/@earendil-works/pi-coding-agent/dist/core/package-manager.js.map +1 -1
  242. package/node_modules/@earendil-works/pi-coding-agent/dist/core/project-trust.d.ts +15 -0
  243. package/node_modules/@earendil-works/pi-coding-agent/dist/core/project-trust.d.ts.map +1 -0
  244. package/node_modules/@earendil-works/pi-coding-agent/dist/core/project-trust.js +58 -0
  245. package/node_modules/@earendil-works/pi-coding-agent/dist/core/project-trust.js.map +1 -0
  246. package/node_modules/@earendil-works/pi-coding-agent/dist/core/prompt-templates.d.ts +2 -1
  247. package/node_modules/@earendil-works/pi-coding-agent/dist/core/prompt-templates.d.ts.map +1 -1
  248. package/node_modules/@earendil-works/pi-coding-agent/dist/core/prompt-templates.js +24 -26
  249. package/node_modules/@earendil-works/pi-coding-agent/dist/core/prompt-templates.js.map +1 -1
  250. package/node_modules/@earendil-works/pi-coding-agent/dist/core/provider-attribution.d.ts +4 -0
  251. package/node_modules/@earendil-works/pi-coding-agent/dist/core/provider-attribution.d.ts.map +1 -0
  252. package/node_modules/@earendil-works/pi-coding-agent/dist/core/provider-attribution.js +72 -0
  253. package/node_modules/@earendil-works/pi-coding-agent/dist/core/provider-attribution.js.map +1 -0
  254. package/node_modules/@earendil-works/pi-coding-agent/dist/core/provider-display-names.d.ts.map +1 -1
  255. package/node_modules/@earendil-works/pi-coding-agent/dist/core/provider-display-names.js +3 -0
  256. package/node_modules/@earendil-works/pi-coding-agent/dist/core/provider-display-names.js.map +1 -1
  257. package/node_modules/@earendil-works/pi-coding-agent/dist/core/resource-loader.d.ts +13 -2
  258. package/node_modules/@earendil-works/pi-coding-agent/dist/core/resource-loader.d.ts.map +1 -1
  259. package/node_modules/@earendil-works/pi-coding-agent/dist/core/resource-loader.js +112 -37
  260. package/node_modules/@earendil-works/pi-coding-agent/dist/core/resource-loader.js.map +1 -1
  261. package/node_modules/@earendil-works/pi-coding-agent/dist/core/sdk.d.ts.map +1 -1
  262. package/node_modules/@earendil-works/pi-coding-agent/dist/core/sdk.js +7 -33
  263. package/node_modules/@earendil-works/pi-coding-agent/dist/core/sdk.js.map +1 -1
  264. package/node_modules/@earendil-works/pi-coding-agent/dist/core/session-manager.d.ts.map +1 -1
  265. package/node_modules/@earendil-works/pi-coding-agent/dist/core/session-manager.js +103 -70
  266. package/node_modules/@earendil-works/pi-coding-agent/dist/core/session-manager.js.map +1 -1
  267. package/node_modules/@earendil-works/pi-coding-agent/dist/core/settings-manager.d.ts +20 -2
  268. package/node_modules/@earendil-works/pi-coding-agent/dist/core/settings-manager.d.ts.map +1 -1
  269. package/node_modules/@earendil-works/pi-coding-agent/dist/core/settings-manager.js +97 -30
  270. package/node_modules/@earendil-works/pi-coding-agent/dist/core/settings-manager.js.map +1 -1
  271. package/node_modules/@earendil-works/pi-coding-agent/dist/core/slash-commands.d.ts.map +1 -1
  272. package/node_modules/@earendil-works/pi-coding-agent/dist/core/slash-commands.js +1 -0
  273. package/node_modules/@earendil-works/pi-coding-agent/dist/core/slash-commands.js.map +1 -1
  274. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/bash.d.ts.map +1 -1
  275. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/bash.js +1 -1
  276. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/bash.js.map +1 -1
  277. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/find.d.ts.map +1 -1
  278. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/find.js +1 -1
  279. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/find.js.map +1 -1
  280. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/grep.d.ts.map +1 -1
  281. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/grep.js +1 -1
  282. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/grep.js.map +1 -1
  283. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/ls.d.ts.map +1 -1
  284. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/ls.js +1 -1
  285. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/ls.js.map +1 -1
  286. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/read.d.ts.map +1 -1
  287. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/read.js +1 -1
  288. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/read.js.map +1 -1
  289. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/write.d.ts.map +1 -1
  290. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/write.js +1 -1
  291. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/write.js.map +1 -1
  292. package/node_modules/@earendil-works/pi-coding-agent/dist/core/trust-manager.d.ts +36 -0
  293. package/node_modules/@earendil-works/pi-coding-agent/dist/core/trust-manager.d.ts.map +1 -0
  294. package/node_modules/@earendil-works/pi-coding-agent/dist/core/trust-manager.js +202 -0
  295. package/node_modules/@earendil-works/pi-coding-agent/dist/core/trust-manager.js.map +1 -0
  296. package/node_modules/@earendil-works/pi-coding-agent/dist/index.d.ts +5 -4
  297. package/node_modules/@earendil-works/pi-coding-agent/dist/index.d.ts.map +1 -1
  298. package/node_modules/@earendil-works/pi-coding-agent/dist/index.js +2 -1
  299. package/node_modules/@earendil-works/pi-coding-agent/dist/index.js.map +1 -1
  300. package/node_modules/@earendil-works/pi-coding-agent/dist/main.d.ts.map +1 -1
  301. package/node_modules/@earendil-works/pi-coding-agent/dist/main.js +72 -32
  302. package/node_modules/@earendil-works/pi-coding-agent/dist/main.js.map +1 -1
  303. package/node_modules/@earendil-works/pi-coding-agent/dist/migrations.d.ts.map +1 -1
  304. package/node_modules/@earendil-works/pi-coding-agent/dist/migrations.js +39 -34
  305. package/node_modules/@earendil-works/pi-coding-agent/dist/migrations.js.map +1 -1
  306. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/index.d.ts +1 -1
  307. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/index.d.ts.map +1 -1
  308. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/index.js.map +1 -1
  309. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/bash-execution.d.ts.map +1 -1
  310. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/bash-execution.js +2 -2
  311. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/bash-execution.js.map +1 -1
  312. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/first-time-setup.d.ts +25 -0
  313. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/first-time-setup.d.ts.map +1 -0
  314. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/first-time-setup.js +103 -0
  315. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/first-time-setup.js.map +1 -0
  316. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/footer.d.ts.map +1 -1
  317. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/footer.js +7 -0
  318. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/footer.js.map +1 -1
  319. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/index.d.ts +2 -0
  320. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/index.d.ts.map +1 -1
  321. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/index.js +2 -0
  322. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/index.js.map +1 -1
  323. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/login-dialog.d.ts +1 -1
  324. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
  325. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/login-dialog.js +10 -13
  326. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/login-dialog.js.map +1 -1
  327. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/settings-selector.d.ts +3 -1
  328. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  329. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/settings-selector.js +20 -0
  330. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/settings-selector.js.map +1 -1
  331. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  332. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/tool-execution.js +22 -0
  333. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/tool-execution.js.map +1 -1
  334. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/trust-selector.d.ts +23 -0
  335. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/trust-selector.d.ts.map +1 -0
  336. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/trust-selector.js +91 -0
  337. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/trust-selector.js.map +1 -0
  338. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts +7 -0
  339. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  340. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/interactive-mode.js +101 -5
  341. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/interactive-mode.js.map +1 -1
  342. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/print-mode.d.ts.map +1 -1
  343. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/print-mode.js +1 -0
  344. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/print-mode.js.map +1 -1
  345. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  346. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-mode.js +1 -0
  347. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-mode.js.map +1 -1
  348. package/node_modules/@earendil-works/pi-coding-agent/dist/package-manager-cli.d.ts +6 -2
  349. package/node_modules/@earendil-works/pi-coding-agent/dist/package-manager-cli.d.ts.map +1 -1
  350. package/node_modules/@earendil-works/pi-coding-agent/dist/package-manager-cli.js +111 -10
  351. package/node_modules/@earendil-works/pi-coding-agent/dist/package-manager-cli.js.map +1 -1
  352. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/changelog.d.ts +1 -0
  353. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/changelog.d.ts.map +1 -1
  354. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/changelog.js +78 -0
  355. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/changelog.js.map +1 -1
  356. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/git.d.ts.map +1 -1
  357. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/git.js +54 -22
  358. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/git.js.map +1 -1
  359. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/open-browser.d.ts +9 -0
  360. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/open-browser.d.ts.map +1 -0
  361. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/open-browser.js +22 -0
  362. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/open-browser.js.map +1 -0
  363. package/node_modules/@earendil-works/pi-coding-agent/docs/containerization.md +111 -0
  364. package/node_modules/@earendil-works/pi-coding-agent/docs/docs.json +8 -0
  365. package/node_modules/@earendil-works/pi-coding-agent/docs/extensions.md +67 -13
  366. package/node_modules/@earendil-works/pi-coding-agent/docs/index.md +2 -0
  367. package/node_modules/@earendil-works/pi-coding-agent/docs/models.md +4 -3
  368. package/node_modules/@earendil-works/pi-coding-agent/docs/packages.md +1 -1
  369. package/node_modules/@earendil-works/pi-coding-agent/docs/prompt-templates.md +9 -2
  370. package/node_modules/@earendil-works/pi-coding-agent/docs/providers.md +5 -0
  371. package/node_modules/@earendil-works/pi-coding-agent/docs/rpc.md +1 -1
  372. package/node_modules/@earendil-works/pi-coding-agent/docs/sdk.md +5 -0
  373. package/node_modules/@earendil-works/pi-coding-agent/docs/security.md +59 -0
  374. package/node_modules/@earendil-works/pi-coding-agent/docs/settings.md +15 -0
  375. package/node_modules/@earendil-works/pi-coding-agent/docs/skills.md +1 -1
  376. package/node_modules/@earendil-works/pi-coding-agent/docs/terminal-setup.md +36 -2
  377. package/node_modules/@earendil-works/pi-coding-agent/docs/themes.md +1 -1
  378. package/node_modules/@earendil-works/pi-coding-agent/docs/tmux.md +4 -2
  379. package/node_modules/@earendil-works/pi-coding-agent/docs/tui.md +10 -1
  380. package/node_modules/@earendil-works/pi-coding-agent/docs/usage.md +19 -2
  381. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/README.md +2 -0
  382. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/custom-header.ts +1 -1
  383. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/custom-provider-anthropic/package.json +1 -1
  384. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  385. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/doom-overlay/index.ts +1 -1
  386. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/gondolin/index.ts +531 -0
  387. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/gondolin/package-lock.json +185 -0
  388. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/gondolin/package.json +19 -0
  389. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/handoff.ts +1 -1
  390. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/interactive-shell.ts +1 -1
  391. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/overlay-qa-tests.ts +152 -81
  392. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/project-trust.ts +64 -0
  393. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/qna.ts +1 -1
  394. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/question.ts +1 -1
  395. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/questionnaire.ts +1 -1
  396. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/sandbox/package.json +1 -1
  397. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/snake.ts +1 -1
  398. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/space-invaders.ts +1 -1
  399. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/summarize.ts +1 -1
  400. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/tic-tac-toe.ts +1 -1
  401. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/todo.ts +1 -1
  402. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/tools.ts +5 -0
  403. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/with-deps/package.json +1 -1
  404. package/node_modules/@earendil-works/pi-coding-agent/npm-shrinkwrap.json +12 -419
  405. package/node_modules/@earendil-works/pi-coding-agent/package.json +5 -8
  406. package/node_modules/@earendil-works/pi-tui/README.md +13 -1
  407. package/node_modules/@earendil-works/pi-tui/dist/autocomplete.d.ts +2 -0
  408. package/node_modules/@earendil-works/pi-tui/dist/autocomplete.d.ts.map +1 -1
  409. package/node_modules/@earendil-works/pi-tui/dist/autocomplete.js.map +1 -1
  410. package/node_modules/@earendil-works/pi-tui/dist/components/editor.d.ts +6 -1
  411. package/node_modules/@earendil-works/pi-tui/dist/components/editor.d.ts.map +1 -1
  412. package/node_modules/@earendil-works/pi-tui/dist/components/editor.js +102 -43
  413. package/node_modules/@earendil-works/pi-tui/dist/components/editor.js.map +1 -1
  414. package/node_modules/@earendil-works/pi-tui/dist/components/markdown.d.ts +2 -1
  415. package/node_modules/@earendil-works/pi-tui/dist/components/markdown.d.ts.map +1 -1
  416. package/node_modules/@earendil-works/pi-tui/dist/components/markdown.js +11 -1
  417. package/node_modules/@earendil-works/pi-tui/dist/components/markdown.js.map +1 -1
  418. package/node_modules/@earendil-works/pi-tui/dist/fuzzy.d.ts +1 -1
  419. package/node_modules/@earendil-works/pi-tui/dist/fuzzy.d.ts.map +1 -1
  420. package/node_modules/@earendil-works/pi-tui/dist/fuzzy.js +2 -2
  421. package/node_modules/@earendil-works/pi-tui/dist/fuzzy.js.map +1 -1
  422. package/node_modules/@earendil-works/pi-tui/dist/index.d.ts +1 -1
  423. package/node_modules/@earendil-works/pi-tui/dist/index.d.ts.map +1 -1
  424. package/node_modules/@earendil-works/pi-tui/dist/index.js.map +1 -1
  425. package/node_modules/@earendil-works/pi-tui/dist/terminal.d.ts +4 -7
  426. package/node_modules/@earendil-works/pi-tui/dist/terminal.d.ts.map +1 -1
  427. package/node_modules/@earendil-works/pi-tui/dist/terminal.js +38 -77
  428. package/node_modules/@earendil-works/pi-tui/dist/terminal.js.map +1 -1
  429. package/node_modules/@earendil-works/pi-tui/dist/tui.d.ts +20 -4
  430. package/node_modules/@earendil-works/pi-tui/dist/tui.d.ts.map +1 -1
  431. package/node_modules/@earendil-works/pi-tui/dist/tui.js +244 -42
  432. package/node_modules/@earendil-works/pi-tui/dist/tui.js.map +1 -1
  433. package/node_modules/@earendil-works/pi-tui/dist/utils.d.ts +1 -0
  434. package/node_modules/@earendil-works/pi-tui/dist/utils.d.ts.map +1 -1
  435. package/node_modules/@earendil-works/pi-tui/dist/utils.js +46 -15
  436. package/node_modules/@earendil-works/pi-tui/dist/utils.js.map +1 -1
  437. package/node_modules/@earendil-works/pi-tui/package.json +1 -1
  438. package/node_modules/@mariozechner/clipboard/package.json +2 -1
  439. package/node_modules/@mariozechner/clipboard-linux-x64-musl/README.md +3 -0
  440. package/node_modules/@mariozechner/clipboard-linux-x64-musl/package.json +25 -0
  441. package/package.json +7 -6
  442. package/dist/extensions/forgecli/add-pipeline.d.ts +0 -19
  443. package/dist/extensions/forgecli/add-pipeline.js +0 -143
  444. package/dist/extensions/forgecli/add-pipeline.js.map +0 -1
  445. package/dist/extensions/forgecli/add-task.d.ts +0 -20
  446. package/dist/extensions/forgecli/add-task.js +0 -154
  447. package/dist/extensions/forgecli/add-task.js.map +0 -1
  448. package/dist/extensions/forgecli/approve.d.ts +0 -22
  449. package/dist/extensions/forgecli/approve.js +0 -152
  450. package/dist/extensions/forgecli/approve.js.map +0 -1
  451. package/dist/extensions/forgecli/banner.d.ts +0 -10
  452. package/dist/extensions/forgecli/banner.js +0 -36
  453. package/dist/extensions/forgecli/banner.js.map +0 -1
  454. package/dist/extensions/forgecli/calibrate.d.ts +0 -64
  455. package/dist/extensions/forgecli/calibrate.js +0 -481
  456. package/dist/extensions/forgecli/calibrate.js.map +0 -1
  457. package/dist/extensions/forgecli/collate.d.ts +0 -22
  458. package/dist/extensions/forgecli/collate.js +0 -134
  459. package/dist/extensions/forgecli/collate.js.map +0 -1
  460. package/dist/extensions/forgecli/commit.d.ts +0 -22
  461. package/dist/extensions/forgecli/commit.js +0 -152
  462. package/dist/extensions/forgecli/commit.js.map +0 -1
  463. package/dist/extensions/forgecli/config-command.d.ts +0 -8
  464. package/dist/extensions/forgecli/config-command.js +0 -67
  465. package/dist/extensions/forgecli/config-command.js.map +0 -1
  466. package/dist/extensions/forgecli/config-layer.d.ts +0 -53
  467. package/dist/extensions/forgecli/config-layer.js +0 -72
  468. package/dist/extensions/forgecli/config-layer.js.map +0 -1
  469. package/dist/extensions/forgecli/config-writer.d.ts +0 -16
  470. package/dist/extensions/forgecli/config-writer.js +0 -69
  471. package/dist/extensions/forgecli/config-writer.js.map +0 -1
  472. package/dist/extensions/forgecli/enhance.d.ts +0 -27
  473. package/dist/extensions/forgecli/enhance.js +0 -199
  474. package/dist/extensions/forgecli/enhance.js.map +0 -1
  475. package/dist/extensions/forgecli/fix-bug.d.ts +0 -85
  476. package/dist/extensions/forgecli/fix-bug.js +0 -1580
  477. package/dist/extensions/forgecli/fix-bug.js.map +0 -1
  478. package/dist/extensions/forgecli/forge-header.d.ts +0 -12
  479. package/dist/extensions/forgecli/forge-header.js +0 -114
  480. package/dist/extensions/forgecli/forge-header.js.map +0 -1
  481. package/dist/extensions/forgecli/forge-init.d.ts +0 -26
  482. package/dist/extensions/forgecli/forge-init.js +0 -514
  483. package/dist/extensions/forgecli/forge-init.js.map +0 -1
  484. package/dist/extensions/forgecli/forge-root.d.ts +0 -10
  485. package/dist/extensions/forgecli/forge-root.js +0 -62
  486. package/dist/extensions/forgecli/forge-root.js.map +0 -1
  487. package/dist/extensions/forgecli/forge-update-command.d.ts +0 -100
  488. package/dist/extensions/forgecli/forge-update-command.js +0 -435
  489. package/dist/extensions/forgecli/forge-update-command.js.map +0 -1
  490. package/dist/extensions/forgecli/friction-emit.d.ts +0 -99
  491. package/dist/extensions/forgecli/friction-emit.js +0 -245
  492. package/dist/extensions/forgecli/friction-emit.js.map +0 -1
  493. package/dist/extensions/forgecli/implement.d.ts +0 -22
  494. package/dist/extensions/forgecli/implement.js +0 -170
  495. package/dist/extensions/forgecli/implement.js.map +0 -1
  496. package/dist/extensions/forgecli/init-context.d.ts +0 -99
  497. package/dist/extensions/forgecli/init-context.js +0 -178
  498. package/dist/extensions/forgecli/init-context.js.map +0 -1
  499. package/dist/extensions/forgecli/init-progress.d.ts +0 -39
  500. package/dist/extensions/forgecli/init-progress.js +0 -117
  501. package/dist/extensions/forgecli/init-progress.js.map +0 -1
  502. package/dist/extensions/forgecli/input-router.d.ts +0 -33
  503. package/dist/extensions/forgecli/input-router.js +0 -136
  504. package/dist/extensions/forgecli/input-router.js.map +0 -1
  505. package/dist/extensions/forgecli/lib/halt-advisor.d.ts +0 -59
  506. package/dist/extensions/forgecli/lib/halt-advisor.js +0 -113
  507. package/dist/extensions/forgecli/lib/halt-advisor.js.map +0 -1
  508. package/dist/extensions/forgecli/lib/orchestrator-preflight.d.ts +0 -46
  509. package/dist/extensions/forgecli/lib/orchestrator-preflight.js +0 -64
  510. package/dist/extensions/forgecli/lib/orchestrator-preflight.js.map +0 -1
  511. package/dist/extensions/forgecli/materialize.d.ts +0 -16
  512. package/dist/extensions/forgecli/materialize.js +0 -195
  513. package/dist/extensions/forgecli/materialize.js.map +0 -1
  514. package/dist/extensions/forgecli/migrate.d.ts +0 -22
  515. package/dist/extensions/forgecli/migrate.js +0 -260
  516. package/dist/extensions/forgecli/migrate.js.map +0 -1
  517. package/dist/extensions/forgecli/migration-engine.d.ts +0 -117
  518. package/dist/extensions/forgecli/migration-engine.js +0 -563
  519. package/dist/extensions/forgecli/migration-engine.js.map +0 -1
  520. package/dist/extensions/forgecli/model-registry.d.ts +0 -61
  521. package/dist/extensions/forgecli/model-registry.js +0 -127
  522. package/dist/extensions/forgecli/model-registry.js.map +0 -1
  523. package/dist/extensions/forgecli/model-resolver.d.ts +0 -32
  524. package/dist/extensions/forgecli/model-resolver.js +0 -65
  525. package/dist/extensions/forgecli/model-resolver.js.map +0 -1
  526. package/dist/extensions/forgecli/model-validator.d.ts +0 -29
  527. package/dist/extensions/forgecli/model-validator.js +0 -107
  528. package/dist/extensions/forgecli/model-validator.js.map +0 -1
  529. package/dist/extensions/forgecli/orchestrator-status-bar.d.ts +0 -26
  530. package/dist/extensions/forgecli/orchestrator-status-bar.js +0 -213
  531. package/dist/extensions/forgecli/orchestrator-status-bar.js.map +0 -1
  532. package/dist/extensions/forgecli/plan.d.ts +0 -22
  533. package/dist/extensions/forgecli/plan.js +0 -167
  534. package/dist/extensions/forgecli/plan.js.map +0 -1
  535. package/dist/extensions/forgecli/quiz-agent.d.ts +0 -17
  536. package/dist/extensions/forgecli/quiz-agent.js +0 -98
  537. package/dist/extensions/forgecli/quiz-agent.js.map +0 -1
  538. package/dist/extensions/forgecli/read-command.d.ts +0 -2
  539. package/dist/extensions/forgecli/read-command.js +0 -100
  540. package/dist/extensions/forgecli/read-command.js.map +0 -1
  541. package/dist/extensions/forgecli/regenerate.d.ts +0 -40
  542. package/dist/extensions/forgecli/regenerate.js +0 -438
  543. package/dist/extensions/forgecli/regenerate.js.map +0 -1
  544. package/dist/extensions/forgecli/remove-command.d.ts +0 -17
  545. package/dist/extensions/forgecli/remove-command.js +0 -124
  546. package/dist/extensions/forgecli/remove-command.js.map +0 -1
  547. package/dist/extensions/forgecli/report-bug.d.ts +0 -25
  548. package/dist/extensions/forgecli/report-bug.js +0 -159
  549. package/dist/extensions/forgecli/report-bug.js.map +0 -1
  550. package/dist/extensions/forgecli/retrospective.d.ts +0 -20
  551. package/dist/extensions/forgecli/retrospective.js +0 -126
  552. package/dist/extensions/forgecli/retrospective.js.map +0 -1
  553. package/dist/extensions/forgecli/review-code.d.ts +0 -35
  554. package/dist/extensions/forgecli/review-code.js +0 -196
  555. package/dist/extensions/forgecli/review-code.js.map +0 -1
  556. package/dist/extensions/forgecli/review-plan.d.ts +0 -35
  557. package/dist/extensions/forgecli/review-plan.js +0 -200
  558. package/dist/extensions/forgecli/review-plan.js.map +0 -1
  559. package/dist/extensions/forgecli/run-sprint.d.ts +0 -27
  560. package/dist/extensions/forgecli/run-sprint.js +0 -716
  561. package/dist/extensions/forgecli/run-sprint.js.map +0 -1
  562. package/dist/extensions/forgecli/run-task.d.ts +0 -204
  563. package/dist/extensions/forgecli/run-task.js +0 -1403
  564. package/dist/extensions/forgecli/run-task.js.map +0 -1
  565. package/dist/extensions/forgecli/skill-curation-flag.d.ts +0 -21
  566. package/dist/extensions/forgecli/skill-curation-flag.js +0 -71
  567. package/dist/extensions/forgecli/skill-curation-flag.js.map +0 -1
  568. package/dist/extensions/forgecli/skill-curator-subagent.d.ts +0 -102
  569. package/dist/extensions/forgecli/skill-curator-subagent.js +0 -339
  570. package/dist/extensions/forgecli/skill-curator-subagent.js.map +0 -1
  571. package/dist/extensions/forgecli/skill-retriever.d.ts +0 -84
  572. package/dist/extensions/forgecli/skill-retriever.js +0 -246
  573. package/dist/extensions/forgecli/skill-retriever.js.map +0 -1
  574. package/dist/extensions/forgecli/skill-usage-tracker.d.ts +0 -91
  575. package/dist/extensions/forgecli/skill-usage-tracker.js +0 -224
  576. package/dist/extensions/forgecli/skill-usage-tracker.js.map +0 -1
  577. package/dist/extensions/forgecli/sprint-intake.d.ts +0 -10
  578. package/dist/extensions/forgecli/sprint-intake.js +0 -91
  579. package/dist/extensions/forgecli/sprint-intake.js.map +0 -1
  580. package/dist/extensions/forgecli/sprint-plan.d.ts +0 -14
  581. package/dist/extensions/forgecli/sprint-plan.js +0 -122
  582. package/dist/extensions/forgecli/sprint-plan.js.map +0 -1
  583. package/dist/extensions/forgecli/status-command.d.ts +0 -19
  584. package/dist/extensions/forgecli/status-command.js +0 -140
  585. package/dist/extensions/forgecli/status-command.js.map +0 -1
  586. package/dist/extensions/forgecli/store-error-remediation.d.ts +0 -65
  587. package/dist/extensions/forgecli/store-error-remediation.js +0 -307
  588. package/dist/extensions/forgecli/store-error-remediation.js.map +0 -1
  589. package/dist/extensions/forgecli/store-query.d.ts +0 -22
  590. package/dist/extensions/forgecli/store-query.js +0 -107
  591. package/dist/extensions/forgecli/store-query.js.map +0 -1
  592. package/dist/extensions/forgecli/store-repair.d.ts +0 -17
  593. package/dist/extensions/forgecli/store-repair.js +0 -123
  594. package/dist/extensions/forgecli/store-repair.js.map +0 -1
  595. package/dist/extensions/forgecli/store-resolver.d.ts +0 -56
  596. package/dist/extensions/forgecli/store-resolver.js +0 -263
  597. package/dist/extensions/forgecli/store-resolver.js.map +0 -1
  598. package/dist/extensions/forgecli/store-validator.d.ts +0 -16
  599. package/dist/extensions/forgecli/store-validator.js +0 -32
  600. package/dist/extensions/forgecli/store-validator.js.map +0 -1
  601. package/dist/extensions/forgecli/test-orchestrate.d.ts +0 -2
  602. package/dist/extensions/forgecli/test-orchestrate.js +0 -182
  603. package/dist/extensions/forgecli/test-orchestrate.js.map +0 -1
  604. package/dist/extensions/forgecli/thread-switcher.d.ts +0 -5
  605. package/dist/extensions/forgecli/thread-switcher.js +0 -189
  606. package/dist/extensions/forgecli/thread-switcher.js.map +0 -1
  607. package/dist/extensions/forgecli/transition-guard.d.ts +0 -20
  608. package/dist/extensions/forgecli/transition-guard.js +0 -89
  609. package/dist/extensions/forgecli/transition-guard.js.map +0 -1
  610. package/dist/extensions/forgecli/update-check.d.ts +0 -37
  611. package/dist/extensions/forgecli/update-check.js +0 -185
  612. package/dist/extensions/forgecli/update-check.js.map +0 -1
  613. package/dist/extensions/forgecli/update-tools.d.ts +0 -23
  614. package/dist/extensions/forgecli/update-tools.js +0 -135
  615. package/dist/extensions/forgecli/update-tools.js.map +0 -1
  616. package/dist/extensions/forgecli/validate.d.ts +0 -22
  617. package/dist/extensions/forgecli/validate.js +0 -152
  618. package/dist/extensions/forgecli/validate.js.map +0 -1
  619. package/dist/extensions/forgecli/viewport-events.d.ts +0 -78
  620. package/dist/extensions/forgecli/viewport-events.js +0 -243
  621. package/dist/extensions/forgecli/viewport-events.js.map +0 -1
  622. package/dist/extensions/forgecli/viewport-renderer.d.ts +0 -83
  623. package/dist/extensions/forgecli/viewport-renderer.js +0 -233
  624. package/dist/extensions/forgecli/viewport-renderer.js.map +0 -1
  625. package/dist/extensions/forgecli/viewport-theme.d.ts +0 -11
  626. package/dist/extensions/forgecli/viewport-theme.js +0 -128
  627. package/dist/extensions/forgecli/viewport-theme.js.map +0 -1
  628. package/dist/extensions/forgecli/whats-new-widget.d.ts +0 -26
  629. package/dist/extensions/forgecli/whats-new-widget.js +0 -376
  630. package/dist/extensions/forgecli/whats-new-widget.js.map +0 -1
  631. package/dist/extensions/forgecli/whats-new.d.ts +0 -120
  632. package/dist/extensions/forgecli/whats-new.js +0 -470
  633. package/dist/extensions/forgecli/whats-new.js.map +0 -1
  634. package/dist/forge-payload/.base-pack/commands/check-agent.md +0 -22
  635. package/dist/forge-payload/.base-pack/commands/enhance.md +0 -37
  636. package/dist/forge-payload/.base-pack/commands/init.md +0 -278
  637. package/dist/forge-payload/init/generation/generate-knowledge-base.md +0 -56
  638. package/dist/forge-payload/init/generation/generate-personas.md +0 -54
  639. package/dist/forge-payload/init/generation/generate-skills.md +0 -36
  640. package/dist/forge-payload/init/generation/generate-templates.md +0 -39
  641. /package/dist/forge-payload/{.base-pack/commands → commands}/approve.md +0 -0
  642. /package/dist/forge-payload/{.base-pack/commands → commands}/collate.md +0 -0
  643. /package/dist/forge-payload/{.base-pack/commands → commands}/commit.md +0 -0
  644. /package/dist/forge-payload/{.base-pack/commands → commands}/fix-bug.md +0 -0
  645. /package/dist/forge-payload/{.base-pack/commands → commands}/implement.md +0 -0
  646. /package/dist/forge-payload/{.base-pack/commands → commands}/new-sprint.md +0 -0
  647. /package/dist/forge-payload/{.base-pack/commands → commands}/plan-sprint.md +0 -0
  648. /package/dist/forge-payload/{.base-pack/commands → commands}/plan.md +0 -0
  649. /package/dist/forge-payload/{.base-pack/commands → commands}/retro.md +0 -0
  650. /package/dist/forge-payload/{.base-pack/commands → commands}/review-code.md +0 -0
  651. /package/dist/forge-payload/{.base-pack/commands → commands}/review-plan.md +0 -0
  652. /package/dist/forge-payload/{.base-pack/commands → commands}/run-sprint.md +0 -0
  653. /package/dist/forge-payload/{.base-pack/commands → commands}/run-task.md +0 -0
  654. /package/dist/forge-payload/{.base-pack/commands → commands}/validate.md +0 -0
@@ -1,38 +1,22 @@
1
1
  ---
2
2
  name: check-agent
3
- description: Verify an agent has loaded and understood the project knowledge base — run a short factual quiz before starting high-stakes tasks
3
+ description: Verify an agent has loaded and understood the project knowledge base
4
4
  ---
5
5
 
6
6
  # /forge:check-agent
7
7
 
8
- Verify that the active agent has correctly read and understood this project's
9
- knowledge base before beginning a high-stakes task (schema changes, migrations,
10
- release engineering, significant refactors).
8
+ Read the check-agent workflow and follow it.
11
9
 
12
- ## Locate plugin root
10
+ ## Locate the Forge plugin
13
11
 
14
12
  ```
15
13
  FORGE_ROOT: !`echo "${CLAUDE_PLUGIN_ROOT:-$(pwd)/.forge}"`
16
14
  ```
17
15
 
18
- ## Arguments
19
-
20
- $ARGUMENTS
21
-
22
- ## How to Run
23
-
24
- Read `.forge/workflows/quiz_agent.md` and follow it exactly.
16
+ ## Execute
25
17
 
26
- Pass `$ARGUMENTS` to the workflow so the agent can include task context in its
27
- responses if provided.
18
+ Read `.forge/workflows/quiz_agent.md` and follow it.
28
19
 
29
- ## On error
30
-
31
- If `.forge/workflows/quiz_agent.md` does not exist, tell the user:
32
-
33
- > △ The quiz_agent workflow is missing. Run `/forge:rebuild workflows` to
34
- > regenerate it, then retry.
35
-
36
- If any other step fails unexpectedly, describe what went wrong and ask:
20
+ ## Arguments
37
21
 
38
- > "This looks like a Forge bug. Would you like to file a report to help improve it? Run `/forge:report-bug` — I'll pre-fill the report from this conversation."
22
+ $ARGUMENTS
@@ -1,11 +1,37 @@
1
1
  ---
2
2
  name: enhance
3
- description: REMOVED in v1.0 use /forge:rebuild --enrich instead
3
+ description: Progressive project-specific enrichment of structural elements
4
4
  ---
5
5
 
6
- # /forge:enhance — Removed
6
+ # /forge:enhance
7
7
 
8
- × `/forge:enhance` was removed in v1.0. Enhancement is now a flag on `/forge:rebuild`:
8
+ Run the enhancement agent to enrich structural elements with project-specific knowledge.
9
9
 
10
- - `/forge:rebuild --enrich` — runs the full enhancement workflow (Phase 2 KB enrichment + Phase 3 drift detection)
11
- - Enhancement hooks (post-init `--auto`, post-sprint `--phase 2`) continue to fire automatically — no action needed
10
+ ## Locate the Forge plugin
11
+
12
+ ```
13
+ FORGE_ROOT: !`echo "${CLAUDE_PLUGIN_ROOT:-$(pwd)/.forge}"`
14
+ ```
15
+
16
+ ## Purpose
17
+
18
+ The enhancement agent observes the project and enriches structural elements
19
+ over time. It makes absolutely essential minimal modifications, preferring
20
+ runtime mix-in (KB references, `{{placeholder}}` substitution, `project-context.json`)
21
+ over modifying base artifacts.
22
+
23
+ ## Behavior
24
+
25
+ 1. Read `structure-versions.json` to determine current overlay level
26
+ 2. Read `project-context.json` for current project specifics
27
+ 3. Read KB changes since last enhancement
28
+ 4. Scan codebase for patterns discovered since last enhancement
29
+ 5. Compare current `.forge/` artifacts against base-pack baseline
30
+ 6. For each artifact, determine what project-specific enrichment is warranted
31
+ 7. Apply the minimal modification principle
32
+ 8. Propose diffs (Phase 2+) or auto-apply (Phase 1)
33
+ 9. Create new overlay version in `structure-versions.json` if needed
34
+
35
+ ## Arguments
36
+
37
+ $ARGUMENTS
@@ -1,26 +1,17 @@
1
1
  ---
2
2
  name: init
3
- description: Use when the current project has no Forge SDLC instance and you need to bootstrap one from scratch. Use --migrate to migrate an existing store to Forge format (replaces the removed /forge:migrate command).
3
+ description: Bootstrap Forge's LLM half KB discovery, config generation, and artifact registration. Run once after `4ge init claude .` has scaffolded the project structure.
4
4
  ---
5
5
 
6
6
  # /forge:init
7
7
 
8
- You are the Forge init orchestrator. Your job is to generate a complete, project-specific
9
- AI software development lifecycle for the codebase in the current working directory.
8
+ You are the Forge init orchestrator. Your job is to run the LLM half of the
9
+ Forge bootstrap knowledge-base discovery, config generation, and artifact
10
+ registration — in the current working directory. The CLI half (`4ge init claude .`)
11
+ has already scaffolded the project structure, installed the wfl-init.js driver,
12
+ and installed this command wrapper.
10
13
 
11
- ## Locate the Forge plugin
12
-
13
- Set `$FORGE_ROOT` to the plugin root provided by Claude Code:
14
-
15
- ```
16
- FORGE_ROOT: !`echo "${CLAUDE_PLUGIN_ROOT:-$(pwd)/.forge}"`
17
- ```
18
-
19
- `$FORGE_ROOT` is the directory containing `meta/`, `init/`, `hooks/`, and `commands/`.
20
-
21
- ## Execute
22
-
23
- ### Resume Detection
14
+ ## Resume Detection
24
15
 
25
16
  Before showing the pre-flight plan, check for an existing checkpoint:
26
17
 
@@ -36,7 +27,8 @@ If the file exists and contains valid JSON, inspect it:
36
27
  ```sh
37
28
  rm -f .forge/init-progress.json
38
29
  ```
39
- Then proceed to the **Pre-flight Plan** (new 4-phase flow, no mode prompt).
30
+ Then proceed to the **Pre-flight interactive prompts** (new 4-phase flow, no mode prompt).
31
+ Set `startPhase = 1`.
40
32
 
41
33
  - If the file contains valid JSON with `lastPhase` in range 1–4 and a `timestamp`
42
34
  field, emit the resume banner:
@@ -55,124 +47,117 @@ Use the following mapping:
55
47
  | 2 | Phase 3 |
56
48
  | 3 | Phase 4 |
57
49
 
58
- If the user chooses to resume: jump to the mapped resume phase.
59
-
50
+ If the user chooses to resume: set `startPhase = nextPhase`.
60
51
  If the user chooses to start over: delete `.forge/init-progress.json`
61
- (`rm -f .forge/init-progress.json`) and proceed to the **Pre-flight Plan**.
52
+ (`rm -f .forge/init-progress.json`) and set `startPhase = 1`.
62
53
 
63
54
  If the file does not exist, or contains invalid JSON, or contains an
64
55
  unrecognised `lastPhase` value outside 1–4: delete any corrupt file and
65
- proceed to the **Pre-flight Plan**.
56
+ set `startPhase = 1`.
66
57
 
67
58
  If parsing the file throws (malformed JSON): log a one-line warning
68
59
  `△ init-progress.json is malformed — deleting and starting fresh.`, delete
69
- the file, and proceed to the **Pre-flight Plan**.
60
+ the file, and set `startPhase = 1`.
70
61
 
71
- ### Hero
62
+ ## Hero
72
63
 
73
64
  Render the Forge hero block once per session:
74
65
 
75
66
  ```sh
76
- node "$FORGE_ROOT/tools/banners.cjs" forge
77
- node "$FORGE_ROOT/tools/banners.cjs" --subtitle "AI SDLC bootstrapper · forge:init v$(node -p "require('$FORGE_ROOT/.claude-plugin/plugin.json').version")"
67
+ node .forge/tools/banners.cjs forge
68
+ node .forge/tools/banners.cjs --subtitle "AI SDLC bootstrapper · forge:init"
78
69
  ```
79
70
 
80
71
  The hero runs once. If the user resumes mid-init, do NOT re-render the hero —
81
72
  just emit the phase banner for the resume target phase.
82
73
 
83
- ### Flag handling
74
+ ## Flag Handling
84
75
 
85
76
  `--fast` and `--full` are accepted as no-ops for backwards compatibility with
86
- scripts and CI pipelines. Both flags proceed with the standard 4-phase base-pack
87
- init. The fast/full distinction was removed in v0.40.0.
88
-
89
- **`--migrate` flag:** When `$ARGUMENTS` contains `--migrate`, run the store migration
90
- workflow instead of the standard init. This is the v1.0 replacement for the removed
91
- `/forge:migrate` command.
77
+ scripts and CI pipelines. Both flags proceed with the standard 4-phase flow.
92
78
 
93
- 1. Check that `.forge/config.json` exists. If it does not, stop and tell the user:
94
- > "Forge has not been initialised in this project. Run `/forge:init` first, then come back to `/forge:init --migrate`."
79
+ **`--migrate` flag:** When `$ARGUMENTS` contains `--migrate`, redirect to the
80
+ store migration workflow. Read `.forge/config.json` to locate `paths.forgeRoot`,
81
+ then read `{forgeRoot}/meta/workflows/meta-migrate.md` and follow it.
82
+ Do NOT proceed to the pre-flight prompts when `--migrate` is present.
95
83
 
96
- 2. Check for `--structural` sub-flag in `$ARGUMENTS`:
97
- - If present, load and run the structural migration workflow:
98
- Read `"$FORGE_ROOT/meta/workflows/meta-migrate.md"` and follow it.
99
- - If absent, run the standard store schema migration (Steps 1–7 of the former `migrate.md`):
100
- Read `"$FORGE_ROOT/meta/workflows/meta-migrate.md"` and follow it, passing
101
- `--store-schema` so it runs the schema migration path (Steps 2–7).
84
+ ## Pre-flight Interactive Prompts
102
85
 
103
- 3. If `--dry-run` is also present, pass it through so the migration runs Steps 1–4
104
- only (no writes).
86
+ Gather these values before dispatching the workflow:
105
87
 
106
- 4. Do NOT proceed to the Pre-flight Plan when `--migrate` is present.
88
+ ### a. KB Folder Prompt
107
89
 
108
- **Proceed directly to Pre-flight Plan** for all other invocations. There is no interactive mode prompt —
109
- the 4-phase flow is the only flow.
90
+ ```
91
+ What should your engineering knowledge base folder be named?
92
+ Default: engineering
93
+ (This is where Forge writes sprint artifacts, docs, and KB files.)
110
94
 
111
- ### Pre-flight Plan
95
+ KB folder name [engineering]: ___
96
+ ```
112
97
 
113
- Before executing Phase 1, emit a summary block and wait for the user to confirm
114
- or specify a start phase.
98
+ If the user provides a custom name (non-empty, not "engineering"), write it now:
115
99
 
100
+ ```sh
101
+ node .forge/tools/manage-config.cjs set paths.engineering "{name}"
116
102
  ```
117
- ## Forge Init — <project-name if discoverable, otherwise current directory name>
118
103
 
119
- 4 phases will run in this session (~45 seconds non-interactive):
104
+ Set `kbFolder` to the chosen name (default: `"engineering"`).
120
105
 
121
- 1 Collect — 5 parallel discovery scans → config.json
122
- KB folder prompt (interactive)
123
- 2 Discover — KB doc generation (LLM fan-out) + project-context.json
124
- 3 Materialize — substitute-placeholders.cjs → fully functional workflows
125
- 4 Register — versioning, manifest, cache, store entries, Tomoshibi
106
+ ### b. CLAUDE.md Offer
126
107
 
127
- Phase 1 is interactive (KB folder name prompt). Phases 2–4 are non-interactive
128
- and complete in under 45 seconds.
108
+ Check whether any agent instruction file exists:
129
109
 
130
- Start from Phase 1? [Y] or specify phase (1–4): ___
110
+ ```sh
111
+ ls CLAUDE.md AGENTS.md CLAUDE.local.md .cursorrules 2>/dev/null
131
112
  ```
132
113
 
133
- If the user specifies a valid phase (1–4), jump there directly.
134
- Any other input (including 0, 5+, or non-numeric text) re-prompts with the same table.
114
+ If NONE of those files exists, ask:
135
115
 
136
- If a `$ARGUMENTS` phase number is provided (e.g. `3`), skip the pre-flight
137
- table and go straight to the specified phase.
116
+ ```
117
+ No CLAUDE.md / AGENTS.md found in this project.
118
+ Create a minimal CLAUDE.md with Forge KB links? [Y/n]: ___
119
+ ```
138
120
 
139
- Before dispatching, gather the following values interactively:
121
+ Set `createClaudeMd = true` if user answers Y (or presses Enter); `false` otherwise.
122
+ If any of those files already exists, set `createClaudeMd = false` (silently skip the offer).
140
123
 
141
- **KB Folder Prompt:**
124
+ ### c. Timestamp
142
125
 
143
- ```
144
- What should your engineering knowledge base folder be named?
145
- Default: engineering
126
+ Mint the ISO timestamp now (before workflow dispatch, in this command wrapper context):
146
127
 
147
- KB folder name [engineering]: ___
128
+ ```js
129
+ isoTimestamp = new Date().toISOString()
148
130
  ```
149
131
 
150
- If the user provides a custom name, write it:
151
- ```sh
152
- node "$FORGE_ROOT/tools/manage-config.cjs" set paths.engineering "{name}"
153
- ```
154
- Set `kbFolder` to the chosen name (default: `"engineering"`).
132
+ ## Pre-flight Plan
155
133
 
156
- **CLAUDE.md Offer:**
134
+ Before dispatching, emit a summary and wait for confirmation:
157
135
 
158
- ```sh
159
- ls CLAUDE.md AGENTS.md CLAUDE.local.md .cursorrules 2>/dev/null
160
136
  ```
137
+ ## Forge Init — <project-name if discoverable, otherwise current directory name>
161
138
 
162
- If NONE of those files exist, ask:
163
- ```
164
- No CLAUDE.md / AGENTS.md found. Create a minimal CLAUDE.md with Forge KB links? [Y/n]: ___
139
+ 4 phases will run via the wfl:init workflow:
140
+
141
+ 1 Collect — 5 parallel discovery scans config.json
142
+ KB folder prompt already answered above
143
+ 2 Discover — KB doc generation (LLM fan-out) + project-context.json
144
+ 3 Materialize — substitute-placeholders.cjs → fully functional workflows
145
+ 4 Register — versioning, manifest, cache, store entries, Tomoshibi
146
+
147
+ Starting from Phase {startPhase}.
148
+
149
+ Proceed? [Y/n]: ___
165
150
  ```
166
- Set `createClaudeMd = true` (default Y) or `false`.
167
- If any file exists, set `createClaudeMd = false` (skip silently).
168
151
 
169
- **Timestamp:** `isoTimestamp = new Date().toISOString()`
152
+ If the user declines, stop and advise them to run `/forge:init` again when ready.
153
+
154
+ ## Workflow Dispatch
170
155
 
171
156
  Execute the workflow:
172
157
 
173
158
  ```
174
159
  workflow('wfl:init', {
175
- forgeRoot: FORGE_ROOT,
160
+ forgeRoot,
176
161
  kbFolder,
177
162
  startPhase,
178
163
  createClaudeMd,
@@ -181,34 +166,113 @@ workflow('wfl:init', {
181
166
  })
182
167
  ```
183
168
 
184
- If the Workflow tool is unavailable, halt immediately with the following message:
169
+ Where `forgeRoot` is resolved from `.forge/config.json`'s `paths.forgeRoot` field.
170
+
171
+ **Workflow-tool-missing error** — if the Workflow tool is unavailable, halt immediately
172
+ with this message:
185
173
 
186
174
  > The Workflow tool is required to run `/forge:init`. This Claude Code build does not
187
175
  > support the Workflow tool. Upgrade Claude Code and try again.
188
176
  >
189
177
  > (Alternatively, run `4ge init claude .` again to re-scaffold, then upgrade Claude Code.)
190
178
 
191
- Do NOT fall back to reading `sdlc-init.md` or any other document — Iron Law 5.
179
+ Do NOT fall back to reading any other document — halt with the above message only.
180
+
181
+ ## Post-Workflow (on success)
182
+
183
+ When `workflow('wfl:init', ...)` returns with `result.ok === true`:
184
+
185
+ ### Closing Banner
186
+
187
+ ```sh
188
+ node .forge/tools/banners.cjs forge
189
+ node .forge/tools/banners.cjs --subtitle "灯 SDLC ready — welcome to your Forge SDLC"
190
+ ```
191
+
192
+ ### Welcome Block
193
+
194
+ Emit the welcome summary:
195
+
196
+ ```
197
+ ✓ Forge SDLC initialised
198
+
199
+ Your project is now configured with:
200
+ · Knowledge base in {kbFolder}/
201
+ · Workflows, personas, and skills in .forge/
202
+ · Sprint-ready store in .forge/store/
203
+
204
+ Next steps:
205
+ · /forge:new-sprint — plan your first sprint
206
+ · /forge:health — verify store health
207
+ · /forge:plan — plan a single task
208
+ ```
209
+
210
+ ### Marketplace Skills Offer
211
+
212
+ If `result.skillMatches` is present and non-empty, present skill buckets by
213
+ confidence (High → Medium → Low). For each bucket, list skill IDs and descriptions.
214
+ Ask: `Install recommended skills? [Y/n]` (per bucket or all at once — your call).
215
+
216
+ For each skill the user accepts:
217
+
218
+ ```sh
219
+ node .forge/tools/manage-config.cjs set installedSkills.{skillId} true
220
+ ```
221
+
222
+ Track accepted/skipped counts for the final report. **If the user skips the
223
+ entire offer, proceed without blocking.**
224
+
225
+ ### KB Links Refresh
192
226
 
193
- **Post-workflow:** on `result.ok === true`, render closing banners (use `banners.cjs forge`
194
- and `--subtitle "灯 SDLC ready…"`), emit the welcome block, present the marketplace-skills
195
- offer from `result.skillMatches` (install accepted skills via `manage-config.cjs set
196
- installedSkills.{id} true`), invoke `forge:refresh-kb-links` via the Skill tool, and
197
- print the final report (KB doc count, workflow count, command count, accepted/skipped skills).
227
+ Invoke the `forge:refresh-kb-links` skill via the Skill tool:
228
+
229
+ ```
230
+ Skill('forge:refresh-kb-links')
231
+ ```
198
232
 
199
- On `result.ok === false`: surface `result.failure` as formatted JSON and offer
200
- `/forge:report-bug`.
233
+ If the Skill tool is unavailable or the skill fails, emit:
201
234
 
202
- The current working directory is the target project. All generated artifacts go into
203
- `.forge/`, the configured KB folder (default: `engineering/`), and `.claude/commands/`
204
- in the project.
235
+ ```
236
+ Could not auto-refresh KB links run /forge:refresh-kb-links manually
237
+ to wire your CLAUDE.md to your new KB docs.
238
+ ```
239
+
240
+ ### Final Report
241
+
242
+ ```
243
+ Forge init complete.
244
+
245
+ KB docs generated: {count from result.kbDocCount or "see .forge/"}
246
+ Workflows installed: {count from result.workflowCount or "see .forge/workflows/"}
247
+ Commands installed: {count from result.commandCount or "see .claude/commands/"}
248
+ Skills accepted: {acceptedCount}
249
+ Skills skipped: {skippedCount}
250
+
251
+ Run `/forge:health` to verify the installation.
252
+ ```
253
+
254
+ ## Post-Workflow (on failure)
255
+
256
+ When `workflow('wfl:init', ...)` returns with `result.ok === false`, surface the
257
+ failure as structured JSON and offer a bug report:
258
+
259
+ ```
260
+ ✗ Forge init failed.
261
+
262
+ Failure details:
263
+ {result.failure as formatted JSON}
264
+
265
+ This looks like a Forge bug. Would you like to file a report?
266
+ Run `/forge:report-bug` — I'll pre-fill the report from this conversation.
267
+ ```
205
268
 
206
269
  ## Arguments
207
270
 
208
271
  $ARGUMENTS
209
272
 
210
- ## On error
273
+ ## On Error
211
274
 
212
275
  If any step above fails unexpectedly, describe what went wrong and ask:
213
276
 
214
- > "This looks like a Forge bug. Would you like to file a report to help improve it? Run `/forge:report-bug` — I'll pre-fill the report from this conversation."
277
+ > "This looks like a Forge bug. Would you like to file a report to help improve it?
278
+ > Run `/forge:report-bug` — I'll pre-fill the report from this conversation."
@@ -0,0 +1,117 @@
1
+ ---
2
+ name: reset
3
+ description: Rewind a halted/blocked task, bug, or sprint to an earlier pipeline phase — a guardrailed, integrity-checked state reset. Use when a pipeline halted and you need to resume from a chosen phase, or to reopen committed work for rework.
4
+ allowed-tools:
5
+ - Bash
6
+ ---
7
+
8
+ # /forge:reset
9
+
10
+ Guardrailed, natural-language **pipeline-state reset**. Rewinds a task, bug, or
11
+ sprint to an earlier phase so its pipeline can be resumed — after computing and
12
+ **confirming the cross-entity referential-integrity implications**. This never
13
+ mutates the store until you explicitly confirm the proposed plan.
14
+
15
+ > Deterministic counterpart: `4ge reset <id> --to <phase>` (forge-cli) does a
16
+ > single-entity task/bug reset without the NLP/integrity layer. This command
17
+ > adds intent parsing, sprint cascades, and the integrity gate.
18
+
19
+ ## Arguments
20
+
21
+ `$ARGUMENTS` is a free-text request, e.g.:
22
+ - "put FORGE-S32-T03 back to implement"
23
+ - "redo the fix for FORGE-BUG-046 from triage"
24
+ - "reopen sprint FORGE-S32 from task T03"
25
+
26
+ ## Resolve plugin root
27
+
28
+ ```
29
+ FORGE_ROOT: !`node -e "console.log(require('./.forge/config.json').paths.forgeRoot)"`
30
+ ```
31
+
32
+ ## Step 1 — Interpret the request
33
+
34
+ From `$ARGUMENTS`, determine:
35
+ - **entity kind**: `task` (`*-S##-T##`), `bug` (`*-BUG-###`), or `sprint`
36
+ (`*-S##`). A `-BUG-` segment ⇒ bug.
37
+ - **id**: the canonical record id. If the id is partial or ambiguous, resolve it
38
+ first with `node "$FORGE_ROOT/tools/store-cli.cjs" query <text>` (or
39
+ `store-query-nlp`) and pick the unambiguous match; if ambiguous, ask the user.
40
+ - **target phase** (`--to`):
41
+ - task: `plan | review-plan | implement | review-code | validate | approve | writeback | commit`
42
+ - bug: `triage | plan-fix | review-plan | implement | review-code | approve | commit`
43
+ - sprint: requires a **from-task** (the member task to rewind from); the
44
+ cascade is computed for you.
45
+
46
+ If the target phase is missing or not valid for the entity kind, ask the user
47
+ rather than guessing.
48
+
49
+ ## Step 2 — Compute the plan + integrity implications (READ-ONLY)
50
+
51
+ ```sh
52
+ # task / bug
53
+ node "$FORGE_ROOT/tools/reset-plan.cjs" --entity <kind> --id <id> --to <phase> --json
54
+ # sprint
55
+ node "$FORGE_ROOT/tools/reset-plan.cjs" --entity sprint --id <sprintId> --from-task <taskId> --json
56
+ ```
57
+
58
+ `reset-plan.cjs` is a **pure planner** — it reads the store and computes the
59
+ transitions + warnings, and writes nothing. Parse its JSON:
60
+
61
+ - `entity` — kind, id, currentStatus, targetStatus/targetPhase.
62
+ - `rewind` / `forceRequired` — whether this is a backward transition (needs
63
+ `--force`).
64
+ - `transitions[]` — the exact `{id, kind, from, to}` status changes a confirmed
65
+ reset would apply (for a sprint: the sprint reopen + each cascade task).
66
+ - `cascade[]` — (sprint) the member task ids that rewind.
67
+ - `warnings[]` — referential-integrity implications, each with a `code`:
68
+ - `committed-work` — the entity is committed/fixed; **its git commit is NOT
69
+ reverted** by the reset. The working tree may diverge.
70
+ - `sprint-incoherent` / `sprint-reopen` — the parent sprint is completed; it
71
+ must reopen to `active` (sprint resets do this automatically).
72
+ - `dependents-affected` — other tasks depend on this id and are past planning;
73
+ they now rest on rewound work and may need re-validation. (`ids` lists them.)
74
+
75
+ If `reset-plan.cjs` exits non-zero, surface its `error` and stop.
76
+
77
+ ## Step 3 — Present the plan and REQUIRE confirmation
78
+
79
+ Show the user, in plain language:
80
+ 1. The transition(s) that will be applied (`from → to` for each id).
81
+ 2. Every warning, especially `committed-work` and `dependents-affected` — these
82
+ are the referential-integrity risks they are accepting.
83
+ 3. The note that this does **not** revert git commits or re-run anything; it
84
+ only rewinds store status + (for `4ge` users) the resume-state cache.
85
+
86
+ **Do not proceed without an explicit "yes".** This is a destructive,
87
+ hard-to-reverse store mutation. If the user hesitates, stop.
88
+
89
+ ## Step 4 — Apply (only after confirmation)
90
+
91
+ Apply each transition in `transitions[]` in order, via store-cli. Backward
92
+ transitions and terminal states (`blocked`, `committed`, `fixed`) require the
93
+ operator-gated force flag:
94
+
95
+ ```sh
96
+ FORGE_ALLOW_FORCE=1 node "$FORGE_ROOT/tools/store-cli.cjs" \
97
+ update-status <kind> <id> status <to> --force
98
+ ```
99
+
100
+ For a **sprint** reset, apply the sprint reopen first, then each cascade task.
101
+
102
+ After the status transitions land:
103
+ - Tell the user the reset is complete and how to resume:
104
+ - task → `/forge:run-task <id>` (or `/forge:implement <id>`)
105
+ - bug → `/forge:fix-bug <id>`
106
+ - sprint → `/forge:run-sprint <id>`
107
+ - If they drive Forge through **forge-cli** (`4ge`), the resume-state cache
108
+ (`.forge/cache/*-state.json`) is rewound by `4ge reset <id> --to <phase>` —
109
+ the LLM route here only owns the store side. Mention this so a `4ge` user runs
110
+ `4ge reset` (or deletes the stale cache) before resuming.
111
+
112
+ ## Iron rule
113
+
114
+ Never apply a transition `reset-plan.cjs` did not propose, and never skip the
115
+ confirmation gate. The planner is the single source of truth for what a reset
116
+ touches; this command's only job is to explain it and, on a clear yes, apply
117
+ exactly that.
@@ -41,19 +41,38 @@ const _nodeToolRule = process.env.CLAUDE_PLUGIN_ROOT
41
41
  ? `node ${process.env.CLAUDE_PLUGIN_ROOT}/tools/*`
42
42
  : 'node ~/.claude/plugins/cache/forge/forge/*/tools/*';
43
43
 
44
+ // SECURITY (issue #43 / forge-engineering #42): these patterns auto-approve a
45
+ // Bash command with NO prompt. A non-match falls through to Claude Code's normal
46
+ // permission flow (the human is asked) — it does NOT block. So the rule is:
47
+ // auto-allow ONLY shapes that are unambiguously in-tree Forge workflow steps,
48
+ // and let anything that could read a secret, exfiltrate, or execute foreign code
49
+ // fall through to a prompt. Patterns are anchored to their argument shape, not a
50
+ // bare command prefix, precisely so `cat ~/.ssh/id_rsa`, `cp <secret> /tmp/x`,
51
+ // `gh issue create -R attacker/repo`, `git push https://attacker/…`, and
52
+ // `node /tmp/evil/tools/x.cjs` are NOT auto-approved.
44
53
  const BASH_PATTERNS = [
45
- // Node tool invocations — covers $FORGE_ROOT/tools/*.cjs and $CLAUDE_PLUGIN_ROOT
54
+ // Node tool invocations — only when the directory before /tools/ is a trusted
55
+ // Forge root: $FORGE_ROOT / $CLAUDE_PLUGIN_ROOT, the plugin cache, or a path
56
+ // ending in /.forge. `node /tmp/evil/tools/x.cjs` does NOT match.
46
57
  // (H-5d: rule is dynamically built from CLAUDE_PLUGIN_ROOT when set)
47
- { pattern: /^node\s+.*\/tools\/[\w-]+\.(cjs|js)\b/, rule: _nodeToolRule },
58
+ {
59
+ pattern:
60
+ /^node\s+(?:"?\$(?:CLAUDE_PLUGIN_ROOT|FORGE_ROOT)"?|\S*\/\.claude\/plugins\/cache\/forge\/\S*|\S*\/\.forge)\/tools\/[\w-]+\.(?:cjs|js)\b/,
61
+ rule: _nodeToolRule,
62
+ },
48
63
  // NOTE: node -e and node -p removed — arbitrary code execution must not be auto-approved.
49
64
  // Forge workflows use node .../tools/*.cjs for tool invocations; inline node -e/p requires
50
65
  // explicit user approval each time.
51
66
  // Shell commands used by Forge workflows
52
67
  { pattern: /^mkdir\s+-p\s+/, rule: 'mkdir -p .forge/*' },
53
68
  { pattern: /^mkdir\s+-p\s+\S+/, rule: 'mkdir -p .forge/*' },
54
- { pattern: /^cp\s+/, rule: 'cp */schemas/*.schema.json .forge/schemas/' },
69
+ // cp only when the destination (last arg) is under .forge/ — copying a secret
70
+ // out to an arbitrary location is not auto-approved.
71
+ { pattern: /^cp\s+\S.*\s\.?\/?\.forge\/\S*\s*$/, rule: 'cp */schemas/*.schema.json .forge/schemas/' },
55
72
  { pattern: /^ls\s+/, rule: 'ls *' },
56
- { pattern: /^cat\s+/, rule: 'cat .forge/*' },
73
+ // cat only within .forge/ or engineering/ — reading arbitrary files (e.g.
74
+ // ~/.ssh/id_rsa, /etc/passwd) falls through to a prompt.
75
+ { pattern: /^cat\s+(?:-\S+\s+)*\.?\/?(?:\.forge|engineering)\//, rule: 'cat .forge/*' },
57
76
  { pattern: /^date\s+-u\s+/, rule: 'date -u *' },
58
77
  { pattern: /^date\s+/, rule: 'date -u *' },
59
78
  { pattern: /^jq\s+/, rule: 'jq *' },
@@ -63,14 +82,18 @@ const BASH_PATTERNS = [
63
82
  { pattern: /^rm\s+-rf\s+\.forge/, rule: 'rm -rf .forge/*' },
64
83
  { pattern: /^rmdir\s+/, rule: 'rmdir .forge/*' },
65
84
  { pattern: /^gh\s+auth\s+/, rule: 'gh auth status *' },
66
- { pattern: /^gh\s+issue\s+/, rule: 'gh issue create *' },
85
+ // gh issue only against the current repo — a -R/--repo pointing at a foreign
86
+ // repo (cross-repo exfiltration) is not auto-approved.
87
+ { pattern: /^gh\s+issue\s+(?!.*(?:\s-R\b|\s--repo\b))/, rule: 'gh issue create *' },
67
88
  // git read-only commands (already auto-approved by Claude Code, but belt-and-suspenders)
68
89
  { pattern: /^git\s+status\b/, rule: 'git status *' },
69
90
  { pattern: /^git\s+log\b/, rule: 'git log *' },
70
91
  { pattern: /^git\s+diff\b/, rule: 'git diff *' },
71
92
  { pattern: /^git\s+add\s+/, rule: 'git add *' },
72
93
  { pattern: /^git\s+commit\s+-m\s+/, rule: 'git commit -m *' },
73
- { pattern: /^git\s+push\b/, rule: 'git push *' },
94
+ // git push only to a named remote — pushing to an explicit attacker URL
95
+ // (http(s)/ssh/git/file) is not auto-approved.
96
+ { pattern: /^git\s+push\b(?!.*(?:https?:\/\/|git@|ssh:\/\/|file:\/\/))/, rule: 'git push *' },
74
97
  { pattern: /^git\s+checkout\s+/, rule: 'git checkout *' },
75
98
  { pattern: /^git\s+branch\s+/, rule: 'git branch *' },
76
99
  { pattern: /^git\s+stash\b/, rule: 'git stash *' },
@@ -63,13 +63,17 @@ node "$FORGE_ROOT/tools/substitute-placeholders.cjs" \
63
63
  ```
64
64
 
65
65
  Output directories (managed by the tool's `SUBDIR_OUTPUT_MAP`):
66
- - `base-pack/commands/` → `.claude/commands/forge/` (fixed namespace — CLI-first redesign)
67
66
  - `base-pack/personas/` → `.forge/personas/`
68
67
  - `base-pack/skills/` → `.forge/skills/`
69
68
  - `base-pack/workflows/` → `.forge/workflows/`
70
69
  - `base-pack/templates/` → `.forge/templates/`
71
70
  - `base-pack/workflows-js/` → `.claude/workflows/` (JS orchestration workflows — FORGE-S28-T01)
72
71
 
72
+ > Commands are no longer materialised here. Since FORGE-S32-T06 the unified
73
+ > slash-command tree (`forge/forge/commands/`) is installed verbatim to
74
+ > `.claude/commands/forge/` by the bootstrap manifest's single `commands` entry —
75
+ > base-pack no longer carries a `commands/` subdir.
76
+
73
77
  ### Step 3a — Record generated JS workflows in the generation manifest
74
78
 
75
79
  After `substitute-placeholders.cjs` writes the JS workflows, record them in the generation