@entelligentsia/forgecli 1.0.25 → 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 (590) hide show
  1. package/CHANGELOG.md +341 -0
  2. package/README.md +2 -0
  3. package/dist/CHANGELOG-forge-plugin.md +264 -0
  4. package/dist/CHANGELOG-pi.md +143 -0
  5. package/dist/bin/argv.d.ts +2 -2
  6. package/dist/bin/argv.js +37 -0
  7. package/dist/bin/argv.js.map +1 -1
  8. package/dist/bin/forge.js +30 -16
  9. package/dist/bin/forge.js.map +1 -1
  10. package/dist/bin/init.d.ts +23 -0
  11. package/dist/bin/init.js +123 -0
  12. package/dist/bin/init.js.map +1 -0
  13. package/dist/bin/reset.d.ts +39 -0
  14. package/dist/bin/reset.js +101 -0
  15. package/dist/bin/reset.js.map +1 -0
  16. package/dist/bin/uninstall.d.ts +20 -0
  17. package/dist/bin/uninstall.js +141 -0
  18. package/dist/bin/uninstall.js.map +1 -0
  19. package/dist/extensions/forgecli/claude-bootstrap/bootstrap.d.ts +40 -0
  20. package/dist/extensions/forgecli/claude-bootstrap/bootstrap.js +384 -0
  21. package/dist/extensions/forgecli/claude-bootstrap/bootstrap.js.map +1 -0
  22. package/dist/extensions/forgecli/claude-bootstrap/settings-merge.d.ts +46 -0
  23. package/dist/extensions/forgecli/claude-bootstrap/settings-merge.js +245 -0
  24. package/dist/extensions/forgecli/claude-bootstrap/settings-merge.js.map +1 -0
  25. package/dist/extensions/forgecli/claude-bootstrap/uninstall.d.ts +23 -0
  26. package/dist/extensions/forgecli/claude-bootstrap/uninstall.js +235 -0
  27. package/dist/extensions/forgecli/claude-bootstrap/uninstall.js.map +1 -0
  28. package/dist/extensions/forgecli/commands/reset.d.ts +16 -0
  29. package/dist/extensions/forgecli/commands/reset.js +83 -0
  30. package/dist/extensions/forgecli/commands/reset.js.map +1 -0
  31. package/dist/extensions/forgecli/dashboard/component.js +10 -7
  32. package/dist/extensions/forgecli/dashboard/component.js.map +1 -1
  33. package/dist/extensions/forgecli/forge-commands.d.ts +7 -2
  34. package/dist/extensions/forgecli/forge-commands.js +19 -5
  35. package/dist/extensions/forgecli/forge-commands.js.map +1 -1
  36. package/dist/extensions/forgecli/forge-subagent.d.ts +4 -4
  37. package/dist/extensions/forgecli/hooks/forge-permissions.js +20 -6
  38. package/dist/extensions/forgecli/hooks/forge-permissions.js.map +1 -1
  39. package/dist/extensions/forgecli/index.js +6 -3
  40. package/dist/extensions/forgecli/index.js.map +1 -1
  41. package/dist/extensions/forgecli/lib/forge-root.d.ts +6 -0
  42. package/dist/extensions/forgecli/lib/forge-root.js +52 -0
  43. package/dist/extensions/forgecli/lib/forge-root.js.map +1 -1
  44. package/dist/extensions/forgecli/lib/payload-manifest.d.ts +62 -0
  45. package/dist/extensions/forgecli/lib/payload-manifest.js +151 -0
  46. package/dist/extensions/forgecli/lib/payload-manifest.js.map +1 -0
  47. package/dist/extensions/forgecli/orchestrators/advisory-render.d.ts +9 -0
  48. package/dist/extensions/forgecli/orchestrators/advisory-render.js +107 -0
  49. package/dist/extensions/forgecli/orchestrators/advisory-render.js.map +1 -0
  50. package/dist/extensions/forgecli/orchestrators/bug/bug-body.d.ts +1 -0
  51. package/dist/extensions/forgecli/orchestrators/bug/bug-body.js +65 -0
  52. package/dist/extensions/forgecli/orchestrators/bug/bug-body.js.map +1 -0
  53. package/dist/extensions/forgecli/orchestrators/bug/bug-id.d.ts +23 -0
  54. package/dist/extensions/forgecli/orchestrators/bug/bug-id.js +140 -0
  55. package/dist/extensions/forgecli/orchestrators/bug/bug-id.js.map +1 -0
  56. package/dist/extensions/forgecli/orchestrators/bug/bug-phase-dispatch.d.ts +54 -0
  57. package/dist/extensions/forgecli/orchestrators/bug/bug-phase-dispatch.js +349 -0
  58. package/dist/extensions/forgecli/orchestrators/bug/bug-phase-dispatch.js.map +1 -0
  59. package/dist/extensions/forgecli/orchestrators/bug/bug-phases.d.ts +11 -0
  60. package/dist/extensions/forgecli/orchestrators/bug/bug-phases.js +82 -0
  61. package/dist/extensions/forgecli/orchestrators/bug/bug-phases.js.map +1 -0
  62. package/dist/extensions/forgecli/orchestrators/bug/bug-state.d.ts +14 -0
  63. package/dist/extensions/forgecli/orchestrators/bug/bug-state.js +100 -0
  64. package/dist/extensions/forgecli/orchestrators/bug/bug-state.js.map +1 -0
  65. package/dist/extensions/forgecli/orchestrators/bug/bug-triage-routing.d.ts +72 -0
  66. package/dist/extensions/forgecli/orchestrators/bug/bug-triage-routing.js +204 -0
  67. package/dist/extensions/forgecli/orchestrators/bug/bug-triage-routing.js.map +1 -0
  68. package/dist/extensions/forgecli/orchestrators/bug/bug-verdict-loop.d.ts +38 -0
  69. package/dist/extensions/forgecli/orchestrators/bug/bug-verdict-loop.js +198 -0
  70. package/dist/extensions/forgecli/orchestrators/bug/bug-verdict-loop.js.map +1 -0
  71. package/dist/extensions/forgecli/orchestrators/bug/bug-verdict.d.ts +3 -0
  72. package/dist/extensions/forgecli/orchestrators/bug/bug-verdict.js +55 -0
  73. package/dist/extensions/forgecli/orchestrators/bug/bug-verdict.js.map +1 -0
  74. package/dist/extensions/forgecli/orchestrators/bug/run-bug-command.d.ts +7 -0
  75. package/dist/extensions/forgecli/orchestrators/bug/run-bug-command.js +293 -0
  76. package/dist/extensions/forgecli/orchestrators/bug/run-bug-command.js.map +1 -0
  77. package/dist/extensions/forgecli/orchestrators/bug/run-bug-pipeline.d.ts +2 -0
  78. package/dist/extensions/forgecli/orchestrators/bug/run-bug-pipeline.js +501 -0
  79. package/dist/extensions/forgecli/orchestrators/bug/run-bug-pipeline.js.map +1 -0
  80. package/dist/extensions/forgecli/orchestrators/bug/run-bug-types.d.ts +41 -0
  81. package/dist/extensions/forgecli/orchestrators/bug/run-bug-types.js +5 -0
  82. package/dist/extensions/forgecli/orchestrators/bug/run-bug-types.js.map +1 -0
  83. package/dist/extensions/forgecli/orchestrators/common/orchestrator-entry.d.ts +43 -0
  84. package/dist/extensions/forgecli/orchestrators/common/orchestrator-entry.js +85 -0
  85. package/dist/extensions/forgecli/orchestrators/common/orchestrator-entry.js.map +1 -0
  86. package/dist/extensions/forgecli/orchestrators/common/orchestrator-misc.d.ts +8 -0
  87. package/dist/extensions/forgecli/orchestrators/common/orchestrator-misc.js +37 -0
  88. package/dist/extensions/forgecli/orchestrators/common/orchestrator-misc.js.map +1 -0
  89. package/dist/extensions/forgecli/orchestrators/common/orchestrator-notify.d.ts +28 -0
  90. package/dist/extensions/forgecli/orchestrators/common/orchestrator-notify.js +45 -0
  91. package/dist/extensions/forgecli/orchestrators/common/orchestrator-notify.js.map +1 -0
  92. package/dist/extensions/forgecli/orchestrators/common/orchestrator-transcript-session.d.ts +26 -0
  93. package/dist/extensions/forgecli/orchestrators/common/orchestrator-transcript-session.js +75 -0
  94. package/dist/extensions/forgecli/orchestrators/common/orchestrator-transcript-session.js.map +1 -0
  95. package/dist/extensions/forgecli/orchestrators/common/recovery-menu.d.ts +24 -0
  96. package/dist/extensions/forgecli/orchestrators/common/recovery-menu.js +58 -0
  97. package/dist/extensions/forgecli/orchestrators/common/recovery-menu.js.map +1 -0
  98. package/dist/extensions/forgecli/orchestrators/common/reset-pipeline.d.ts +53 -0
  99. package/dist/extensions/forgecli/orchestrators/common/reset-pipeline.js +131 -0
  100. package/dist/extensions/forgecli/orchestrators/common/reset-pipeline.js.map +1 -0
  101. package/dist/extensions/forgecli/orchestrators/common/summary-recovery.d.ts +24 -0
  102. package/dist/extensions/forgecli/orchestrators/common/summary-recovery.js +37 -0
  103. package/dist/extensions/forgecli/orchestrators/common/summary-recovery.js.map +1 -0
  104. package/dist/extensions/forgecli/orchestrators/fix-bug.d.ts +9 -93
  105. package/dist/extensions/forgecli/orchestrators/fix-bug.js +23 -1721
  106. package/dist/extensions/forgecli/orchestrators/fix-bug.js.map +1 -1
  107. package/dist/extensions/forgecli/orchestrators/halt-advisor.js +25 -3
  108. package/dist/extensions/forgecli/orchestrators/halt-advisor.js.map +1 -1
  109. package/dist/extensions/forgecli/orchestrators/run-sprint.d.ts +3 -12
  110. package/dist/extensions/forgecli/orchestrators/run-sprint.js +48 -270
  111. package/dist/extensions/forgecli/orchestrators/run-sprint.js.map +1 -1
  112. package/dist/extensions/forgecli/orchestrators/run-task.d.ts +10 -214
  113. package/dist/extensions/forgecli/orchestrators/run-task.js +31 -1481
  114. package/dist/extensions/forgecli/orchestrators/run-task.js.map +1 -1
  115. package/dist/extensions/forgecli/orchestrators/sprint/sprint-ceremony.d.ts +33 -0
  116. package/dist/extensions/forgecli/orchestrators/sprint/sprint-ceremony.js +135 -0
  117. package/dist/extensions/forgecli/orchestrators/sprint/sprint-ceremony.js.map +1 -0
  118. package/dist/extensions/forgecli/orchestrators/sprint/sprint-state.d.ts +18 -0
  119. package/dist/extensions/forgecli/orchestrators/sprint/sprint-state.js +55 -0
  120. package/dist/extensions/forgecli/orchestrators/sprint/sprint-state.js.map +1 -0
  121. package/dist/extensions/forgecli/orchestrators/task/run-task-command.d.ts +9 -0
  122. package/dist/extensions/forgecli/orchestrators/task/run-task-command.js +174 -0
  123. package/dist/extensions/forgecli/orchestrators/task/run-task-command.js.map +1 -0
  124. package/dist/extensions/forgecli/orchestrators/task/run-task-pipeline.d.ts +2 -0
  125. package/dist/extensions/forgecli/orchestrators/task/run-task-pipeline.js +494 -0
  126. package/dist/extensions/forgecli/orchestrators/task/run-task-pipeline.js.map +1 -0
  127. package/dist/extensions/forgecli/orchestrators/task/run-task-types.d.ts +62 -0
  128. package/dist/extensions/forgecli/orchestrators/task/run-task-types.js +5 -0
  129. package/dist/extensions/forgecli/orchestrators/task/run-task-types.js.map +1 -0
  130. package/dist/extensions/forgecli/orchestrators/task/task-body.d.ts +4 -0
  131. package/dist/extensions/forgecli/orchestrators/task/task-body.js +48 -0
  132. package/dist/extensions/forgecli/orchestrators/task/task-body.js.map +1 -0
  133. package/dist/extensions/forgecli/orchestrators/task/task-events.d.ts +63 -0
  134. package/dist/extensions/forgecli/orchestrators/task/task-events.js +185 -0
  135. package/dist/extensions/forgecli/orchestrators/task/task-events.js.map +1 -0
  136. package/dist/extensions/forgecli/orchestrators/task/task-gates.d.ts +34 -0
  137. package/dist/extensions/forgecli/orchestrators/task/task-gates.js +78 -0
  138. package/dist/extensions/forgecli/orchestrators/task/task-gates.js.map +1 -0
  139. package/dist/extensions/forgecli/orchestrators/task/task-phase-dispatch.d.ts +42 -0
  140. package/dist/extensions/forgecli/orchestrators/task/task-phase-dispatch.js +370 -0
  141. package/dist/extensions/forgecli/orchestrators/task/task-phase-dispatch.js.map +1 -0
  142. package/dist/extensions/forgecli/orchestrators/task/task-phases.d.ts +17 -0
  143. package/dist/extensions/forgecli/orchestrators/task/task-phases.js +48 -0
  144. package/dist/extensions/forgecli/orchestrators/task/task-phases.js.map +1 -0
  145. package/dist/extensions/forgecli/orchestrators/task/task-record.d.ts +9 -0
  146. package/dist/extensions/forgecli/orchestrators/task/task-record.js +58 -0
  147. package/dist/extensions/forgecli/orchestrators/task/task-record.js.map +1 -0
  148. package/dist/extensions/forgecli/orchestrators/task/task-state.d.ts +14 -0
  149. package/dist/extensions/forgecli/orchestrators/task/task-state.js +35 -0
  150. package/dist/extensions/forgecli/orchestrators/task/task-state.js.map +1 -0
  151. package/dist/extensions/forgecli/orchestrators/task/task-verdict-loop.d.ts +36 -0
  152. package/dist/extensions/forgecli/orchestrators/task/task-verdict-loop.js +187 -0
  153. package/dist/extensions/forgecli/orchestrators/task/task-verdict-loop.js.map +1 -0
  154. package/dist/extensions/forgecli/store/store-resolver.d.ts +15 -0
  155. package/dist/extensions/forgecli/store/store-resolver.js +118 -18
  156. package/dist/extensions/forgecli/store/store-resolver.js.map +1 -1
  157. package/dist/extensions/forgecli/update/forge-update-command.js +10 -7
  158. package/dist/extensions/forgecli/update/forge-update-command.js.map +1 -1
  159. package/dist/forge-payload/.base-pack/workflows/collator_agent.md +5 -6
  160. package/dist/forge-payload/.base-pack/workflows/migrate_structural.md +1 -1
  161. package/dist/forge-payload/.base-pack/workflows-js/wfl-init.js +449 -0
  162. package/dist/forge-payload/.claude-plugin/plugin.json +1 -1
  163. package/dist/forge-payload/.schemas/enum-catalog.json +2 -2
  164. package/dist/forge-payload/.schemas/migrations.json +170 -0
  165. package/dist/forge-payload/.schemas/payload-manifest.schema.json +100 -0
  166. package/dist/forge-payload/commands/add-pipeline.md +1 -1
  167. package/dist/forge-payload/commands/add-task.md +3 -3
  168. package/dist/forge-payload/{.base-pack/commands → commands}/approve.md +2 -2
  169. package/dist/forge-payload/commands/ask.md +1 -1
  170. package/dist/forge-payload/commands/check-agent.md +8 -24
  171. package/dist/forge-payload/{.base-pack/commands → commands}/collate.md +2 -2
  172. package/dist/forge-payload/{.base-pack/commands → commands}/commit.md +2 -2
  173. package/dist/forge-payload/commands/config.md +1 -1
  174. package/dist/forge-payload/commands/enhance.md +31 -5
  175. package/dist/forge-payload/{.base-pack/commands → commands}/fix-bug.md +2 -2
  176. package/dist/forge-payload/commands/health.md +1 -1
  177. package/dist/forge-payload/{.base-pack/commands → commands}/implement.md +2 -2
  178. package/dist/forge-payload/commands/init.md +186 -67
  179. package/dist/forge-payload/{.base-pack/commands → commands}/new-sprint.md +2 -2
  180. package/dist/forge-payload/{.base-pack/commands → commands}/plan-sprint.md +2 -2
  181. package/dist/forge-payload/{.base-pack/commands → commands}/plan.md +2 -2
  182. package/dist/forge-payload/commands/rebuild.md +3 -3
  183. package/dist/forge-payload/commands/remove.md +1 -1
  184. package/dist/forge-payload/commands/repair.md +1 -1
  185. package/dist/forge-payload/commands/report-bug.md +1 -1
  186. package/dist/forge-payload/commands/reset.md +117 -0
  187. package/dist/forge-payload/{.base-pack/commands → commands}/retro.md +2 -2
  188. package/dist/forge-payload/{.base-pack/commands → commands}/review-code.md +2 -2
  189. package/dist/forge-payload/{.base-pack/commands → commands}/review-plan.md +2 -2
  190. package/dist/forge-payload/{.base-pack/commands → commands}/run-sprint.md +2 -2
  191. package/dist/forge-payload/{.base-pack/commands → commands}/run-task.md +2 -2
  192. package/dist/forge-payload/commands/status.md +1 -1
  193. package/dist/forge-payload/commands/update.md +3 -3
  194. package/dist/forge-payload/{.base-pack/commands → commands}/validate.md +2 -2
  195. package/dist/forge-payload/hooks/forge-permissions.cjs +29 -6
  196. package/dist/forge-payload/hooks/lib/common.cjs +228 -0
  197. package/dist/forge-payload/hooks/lib/plugin-detection.cjs +106 -0
  198. package/dist/forge-payload/hooks/lib/update-msg.cjs +23 -0
  199. package/dist/forge-payload/hooks/lib/update-url.cjs +46 -0
  200. package/dist/forge-payload/hooks/lib/write-registry.js +53 -0
  201. package/dist/forge-payload/init/discovery/discover-database.md +32 -0
  202. package/dist/forge-payload/init/discovery/discover-processes.md +31 -0
  203. package/dist/forge-payload/init/discovery/discover-routing.md +31 -0
  204. package/dist/forge-payload/init/discovery/discover-stack.md +33 -0
  205. package/dist/forge-payload/init/discovery/discover-testing.md +34 -0
  206. package/dist/forge-payload/init/generation/generate-commands.md +171 -0
  207. package/dist/forge-payload/init/generation/generate-kb-doc.md +60 -0
  208. package/dist/forge-payload/init/generation/generate-persona.md +73 -0
  209. package/dist/forge-payload/init/generation/generate-skill.md +66 -0
  210. package/dist/forge-payload/init/generation/generate-template.md +60 -0
  211. package/dist/forge-payload/init/generation/generate-tools.md +133 -0
  212. package/dist/forge-payload/init/generation/generate-workflows.md +78 -0
  213. package/dist/forge-payload/init/phases/phase-1-collect.md +10 -2
  214. package/dist/forge-payload/init/phases/phase-3-materialize.md +5 -1
  215. package/dist/forge-payload/init/phases/phase-4-register.md +8 -0
  216. package/dist/forge-payload/init/workflow-gen-plan.json +17 -0
  217. package/dist/forge-payload/integrity.json +33 -18
  218. package/dist/forge-payload/meta/workflows/meta-collate.md +5 -6
  219. package/dist/forge-payload/meta/workflows/meta-migrate.md +1 -1
  220. package/dist/forge-payload/payload-manifest.json +314 -0
  221. package/dist/forge-payload/schemas/enum-catalog.json +2 -2
  222. package/dist/forge-payload/schemas/payload-manifest.schema.json +100 -0
  223. package/dist/forge-payload/schemas/structure-manifest.json +5 -12
  224. package/dist/forge-payload/tools/forge-preflight.cjs +268 -0
  225. package/dist/forge-payload/tools/lib/paths.cjs +12 -11
  226. package/dist/forge-payload/tools/lib/pricing.cjs +31 -11
  227. package/dist/forge-payload/tools/query-logger.cjs +34 -0
  228. package/dist/forge-payload/tools/reset-plan.cjs +210 -0
  229. package/dist/forge-payload/tools/store.cjs +4 -1
  230. package/dist/forge-payload/tools/substitute-placeholders.cjs +14 -7
  231. package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.d.ts.map +1 -1
  232. package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.js +8 -0
  233. package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.js.map +1 -1
  234. package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/compaction.d.ts +1 -1
  235. package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/compaction.d.ts.map +1 -1
  236. package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/compaction.js +1 -1
  237. package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/compaction.js.map +1 -1
  238. package/node_modules/@earendil-works/pi-agent-core/dist/harness/execution-env.d.ts +4 -0
  239. package/node_modules/@earendil-works/pi-agent-core/dist/harness/execution-env.d.ts.map +1 -0
  240. package/node_modules/@earendil-works/pi-agent-core/dist/harness/execution-env.js +3 -0
  241. package/node_modules/@earendil-works/pi-agent-core/dist/harness/execution-env.js.map +1 -0
  242. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo/jsonl.d.ts +20 -0
  243. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo/jsonl.d.ts.map +1 -0
  244. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo/jsonl.js +92 -0
  245. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo/jsonl.js.map +1 -0
  246. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo/memory.d.ts +18 -0
  247. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo/memory.d.ts.map +1 -0
  248. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo/memory.js +42 -0
  249. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo/memory.js.map +1 -0
  250. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo/shared.d.ts +10 -0
  251. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo/shared.d.ts.map +1 -0
  252. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo/shared.js +31 -0
  253. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo/shared.js.map +1 -0
  254. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/storage/jsonl.d.ts +30 -0
  255. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/storage/jsonl.d.ts.map +1 -0
  256. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/storage/jsonl.js +170 -0
  257. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/storage/jsonl.js.map +1 -0
  258. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/storage/memory.d.ts +26 -0
  259. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/storage/memory.d.ts.map +1 -0
  260. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/storage/memory.js +90 -0
  261. package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/storage/memory.js.map +1 -0
  262. package/node_modules/@earendil-works/pi-agent-core/dist/types.d.ts +6 -1
  263. package/node_modules/@earendil-works/pi-agent-core/dist/types.d.ts.map +1 -1
  264. package/node_modules/@earendil-works/pi-agent-core/dist/types.js.map +1 -1
  265. package/node_modules/@earendil-works/pi-agent-core/package.json +2 -2
  266. package/node_modules/@earendil-works/pi-ai/README.md +12 -4
  267. package/node_modules/@earendil-works/pi-ai/dist/env-api-keys.d.ts.map +1 -1
  268. package/node_modules/@earendil-works/pi-ai/dist/env-api-keys.js +3 -0
  269. package/node_modules/@earendil-works/pi-ai/dist/env-api-keys.js.map +1 -1
  270. package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.d.ts +45 -0
  271. package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.d.ts.map +1 -1
  272. package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.js +45 -0
  273. package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.js.map +1 -1
  274. package/node_modules/@earendil-works/pi-ai/dist/models.generated.d.ts +1804 -815
  275. package/node_modules/@earendil-works/pi-ai/dist/models.generated.d.ts.map +1 -1
  276. package/node_modules/@earendil-works/pi-ai/dist/models.generated.js +2031 -1384
  277. package/node_modules/@earendil-works/pi-ai/dist/models.generated.js.map +1 -1
  278. package/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.d.ts.map +1 -1
  279. package/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.js +71 -27
  280. package/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.js.map +1 -1
  281. package/node_modules/@earendil-works/pi-ai/dist/providers/anthropic.d.ts +1 -1
  282. package/node_modules/@earendil-works/pi-ai/dist/providers/anthropic.d.ts.map +1 -1
  283. package/node_modules/@earendil-works/pi-ai/dist/providers/anthropic.js +24 -16
  284. package/node_modules/@earendil-works/pi-ai/dist/providers/anthropic.js.map +1 -1
  285. package/node_modules/@earendil-works/pi-ai/dist/providers/azure-openai-responses.d.ts.map +1 -1
  286. package/node_modules/@earendil-works/pi-ai/dist/providers/azure-openai-responses.js +1 -0
  287. package/node_modules/@earendil-works/pi-ai/dist/providers/azure-openai-responses.js.map +1 -1
  288. package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex-responses.d.ts.map +1 -1
  289. package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex-responses.js +3 -1
  290. package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex-responses.js.map +1 -1
  291. package/node_modules/@earendil-works/pi-ai/dist/providers/openai-completions.d.ts.map +1 -1
  292. package/node_modules/@earendil-works/pi-ai/dist/providers/openai-completions.js +35 -13
  293. package/node_modules/@earendil-works/pi-ai/dist/providers/openai-completions.js.map +1 -1
  294. package/node_modules/@earendil-works/pi-ai/dist/providers/openai-responses-shared.d.ts.map +1 -1
  295. package/node_modules/@earendil-works/pi-ai/dist/providers/openai-responses-shared.js +2 -1
  296. package/node_modules/@earendil-works/pi-ai/dist/providers/openai-responses-shared.js.map +1 -1
  297. package/node_modules/@earendil-works/pi-ai/dist/providers/openai-responses.d.ts.map +1 -1
  298. package/node_modules/@earendil-works/pi-ai/dist/providers/openai-responses.js +1 -0
  299. package/node_modules/@earendil-works/pi-ai/dist/providers/openai-responses.js.map +1 -1
  300. package/node_modules/@earendil-works/pi-ai/dist/types.d.ts +12 -4
  301. package/node_modules/@earendil-works/pi-ai/dist/types.d.ts.map +1 -1
  302. package/node_modules/@earendil-works/pi-ai/dist/types.js.map +1 -1
  303. package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/github-copilot.d.ts.map +1 -1
  304. package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/github-copilot.js +13 -1
  305. package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/github-copilot.js.map +1 -1
  306. package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/openai-codex.d.ts.map +1 -1
  307. package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/openai-codex.js +4 -2
  308. package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/openai-codex.js.map +1 -1
  309. package/node_modules/@earendil-works/pi-ai/dist/utils/overflow.d.ts +1 -1
  310. package/node_modules/@earendil-works/pi-ai/dist/utils/overflow.d.ts.map +1 -1
  311. package/node_modules/@earendil-works/pi-ai/dist/utils/overflow.js +3 -2
  312. package/node_modules/@earendil-works/pi-ai/dist/utils/overflow.js.map +1 -1
  313. package/node_modules/@earendil-works/pi-ai/package.json +1 -1
  314. package/node_modules/@earendil-works/pi-coding-agent/CHANGELOG.md +143 -0
  315. package/node_modules/@earendil-works/pi-coding-agent/README.md +26 -4
  316. package/node_modules/@earendil-works/pi-coding-agent/dist/cli/args.d.ts +1 -0
  317. package/node_modules/@earendil-works/pi-coding-agent/dist/cli/args.d.ts.map +1 -1
  318. package/node_modules/@earendil-works/pi-coding-agent/dist/cli/args.js +11 -0
  319. package/node_modules/@earendil-works/pi-coding-agent/dist/cli/args.js.map +1 -1
  320. package/node_modules/@earendil-works/pi-coding-agent/dist/cli/project-trust.d.ts +10 -0
  321. package/node_modules/@earendil-works/pi-coding-agent/dist/cli/project-trust.d.ts.map +1 -0
  322. package/node_modules/@earendil-works/pi-coding-agent/dist/cli/project-trust.js +48 -0
  323. package/node_modules/@earendil-works/pi-coding-agent/dist/cli/project-trust.js.map +1 -0
  324. package/node_modules/@earendil-works/pi-coding-agent/dist/cli/startup-ui.d.ts +17 -0
  325. package/node_modules/@earendil-works/pi-coding-agent/dist/cli/startup-ui.d.ts.map +1 -0
  326. package/node_modules/@earendil-works/pi-coding-agent/dist/cli/startup-ui.js +128 -0
  327. package/node_modules/@earendil-works/pi-coding-agent/dist/cli/startup-ui.js.map +1 -0
  328. package/node_modules/@earendil-works/pi-coding-agent/dist/config.d.ts.map +1 -1
  329. package/node_modules/@earendil-works/pi-coding-agent/dist/config.js +9 -1
  330. package/node_modules/@earendil-works/pi-coding-agent/dist/config.js.map +1 -1
  331. package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session-runtime.d.ts +3 -1
  332. package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session-runtime.d.ts.map +1 -1
  333. package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session-runtime.js +4 -1
  334. package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session-runtime.js.map +1 -1
  335. package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session-services.d.ts +2 -1
  336. package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session-services.d.ts.map +1 -1
  337. package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session-services.js +2 -2
  338. package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session-services.js.map +1 -1
  339. package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session.d.ts +4 -1
  340. package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session.d.ts.map +1 -1
  341. package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session.js +16 -3
  342. package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session.js.map +1 -1
  343. package/node_modules/@earendil-works/pi-coding-agent/dist/core/auth-storage.d.ts.map +1 -1
  344. package/node_modules/@earendil-works/pi-coding-agent/dist/core/auth-storage.js +4 -3
  345. package/node_modules/@earendil-works/pi-coding-agent/dist/core/auth-storage.js.map +1 -1
  346. package/node_modules/@earendil-works/pi-coding-agent/dist/core/compaction/branch-summarization.d.ts +3 -1
  347. package/node_modules/@earendil-works/pi-coding-agent/dist/core/compaction/branch-summarization.d.ts.map +1 -1
  348. package/node_modules/@earendil-works/pi-coding-agent/dist/core/compaction/branch-summarization.js +9 -3
  349. package/node_modules/@earendil-works/pi-coding-agent/dist/core/compaction/branch-summarization.js.map +1 -1
  350. package/node_modules/@earendil-works/pi-coding-agent/dist/core/compaction/utils.d.ts +1 -1
  351. package/node_modules/@earendil-works/pi-coding-agent/dist/core/compaction/utils.d.ts.map +1 -1
  352. package/node_modules/@earendil-works/pi-coding-agent/dist/core/compaction/utils.js +1 -1
  353. package/node_modules/@earendil-works/pi-coding-agent/dist/core/compaction/utils.js.map +1 -1
  354. package/node_modules/@earendil-works/pi-coding-agent/dist/core/experimental.d.ts +2 -0
  355. package/node_modules/@earendil-works/pi-coding-agent/dist/core/experimental.d.ts.map +1 -0
  356. package/node_modules/@earendil-works/pi-coding-agent/dist/core/experimental.js +4 -0
  357. package/node_modules/@earendil-works/pi-coding-agent/dist/core/experimental.js.map +1 -0
  358. package/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/template.js +19 -6
  359. package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/index.d.ts +1 -1
  360. package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/index.d.ts.map +1 -1
  361. package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/index.js.map +1 -1
  362. package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/loader.d.ts +1 -1
  363. package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/loader.d.ts.map +1 -1
  364. package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/loader.js +4 -4
  365. package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/loader.js.map +1 -1
  366. package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/runner.d.ts +10 -3
  367. package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/runner.d.ts.map +1 -1
  368. package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/runner.js +47 -1
  369. package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/runner.js.map +1 -1
  370. package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/types.d.ts +28 -2
  371. package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/types.d.ts.map +1 -1
  372. package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/types.js.map +1 -1
  373. package/node_modules/@earendil-works/pi-coding-agent/dist/core/footer-data-provider.d.ts +2 -0
  374. package/node_modules/@earendil-works/pi-coding-agent/dist/core/footer-data-provider.d.ts.map +1 -1
  375. package/node_modules/@earendil-works/pi-coding-agent/dist/core/footer-data-provider.js +29 -1
  376. package/node_modules/@earendil-works/pi-coding-agent/dist/core/footer-data-provider.js.map +1 -1
  377. package/node_modules/@earendil-works/pi-coding-agent/dist/core/index.d.ts +1 -0
  378. package/node_modules/@earendil-works/pi-coding-agent/dist/core/index.d.ts.map +1 -1
  379. package/node_modules/@earendil-works/pi-coding-agent/dist/core/index.js +1 -0
  380. package/node_modules/@earendil-works/pi-coding-agent/dist/core/index.js.map +1 -1
  381. package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-registry.d.ts.map +1 -1
  382. package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-registry.js +1 -0
  383. package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-registry.js.map +1 -1
  384. package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-resolver.d.ts +1 -0
  385. package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-resolver.d.ts.map +1 -1
  386. package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-resolver.js +44 -5
  387. package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-resolver.js.map +1 -1
  388. package/node_modules/@earendil-works/pi-coding-agent/dist/core/package-manager.d.ts +3 -0
  389. package/node_modules/@earendil-works/pi-coding-agent/dist/core/package-manager.d.ts.map +1 -1
  390. package/node_modules/@earendil-works/pi-coding-agent/dist/core/package-manager.js +47 -13
  391. package/node_modules/@earendil-works/pi-coding-agent/dist/core/package-manager.js.map +1 -1
  392. package/node_modules/@earendil-works/pi-coding-agent/dist/core/project-trust.d.ts +15 -0
  393. package/node_modules/@earendil-works/pi-coding-agent/dist/core/project-trust.d.ts.map +1 -0
  394. package/node_modules/@earendil-works/pi-coding-agent/dist/core/project-trust.js +58 -0
  395. package/node_modules/@earendil-works/pi-coding-agent/dist/core/project-trust.js.map +1 -0
  396. package/node_modules/@earendil-works/pi-coding-agent/dist/core/prompt-templates.d.ts +2 -1
  397. package/node_modules/@earendil-works/pi-coding-agent/dist/core/prompt-templates.d.ts.map +1 -1
  398. package/node_modules/@earendil-works/pi-coding-agent/dist/core/prompt-templates.js +24 -26
  399. package/node_modules/@earendil-works/pi-coding-agent/dist/core/prompt-templates.js.map +1 -1
  400. package/node_modules/@earendil-works/pi-coding-agent/dist/core/provider-attribution.d.ts +4 -0
  401. package/node_modules/@earendil-works/pi-coding-agent/dist/core/provider-attribution.d.ts.map +1 -0
  402. package/node_modules/@earendil-works/pi-coding-agent/dist/core/provider-attribution.js +72 -0
  403. package/node_modules/@earendil-works/pi-coding-agent/dist/core/provider-attribution.js.map +1 -0
  404. package/node_modules/@earendil-works/pi-coding-agent/dist/core/provider-display-names.d.ts.map +1 -1
  405. package/node_modules/@earendil-works/pi-coding-agent/dist/core/provider-display-names.js +3 -0
  406. package/node_modules/@earendil-works/pi-coding-agent/dist/core/provider-display-names.js.map +1 -1
  407. package/node_modules/@earendil-works/pi-coding-agent/dist/core/resource-loader.d.ts +13 -2
  408. package/node_modules/@earendil-works/pi-coding-agent/dist/core/resource-loader.d.ts.map +1 -1
  409. package/node_modules/@earendil-works/pi-coding-agent/dist/core/resource-loader.js +112 -37
  410. package/node_modules/@earendil-works/pi-coding-agent/dist/core/resource-loader.js.map +1 -1
  411. package/node_modules/@earendil-works/pi-coding-agent/dist/core/sdk.d.ts.map +1 -1
  412. package/node_modules/@earendil-works/pi-coding-agent/dist/core/sdk.js +7 -33
  413. package/node_modules/@earendil-works/pi-coding-agent/dist/core/sdk.js.map +1 -1
  414. package/node_modules/@earendil-works/pi-coding-agent/dist/core/session-manager.d.ts.map +1 -1
  415. package/node_modules/@earendil-works/pi-coding-agent/dist/core/session-manager.js +103 -70
  416. package/node_modules/@earendil-works/pi-coding-agent/dist/core/session-manager.js.map +1 -1
  417. package/node_modules/@earendil-works/pi-coding-agent/dist/core/settings-manager.d.ts +20 -2
  418. package/node_modules/@earendil-works/pi-coding-agent/dist/core/settings-manager.d.ts.map +1 -1
  419. package/node_modules/@earendil-works/pi-coding-agent/dist/core/settings-manager.js +97 -30
  420. package/node_modules/@earendil-works/pi-coding-agent/dist/core/settings-manager.js.map +1 -1
  421. package/node_modules/@earendil-works/pi-coding-agent/dist/core/slash-commands.d.ts.map +1 -1
  422. package/node_modules/@earendil-works/pi-coding-agent/dist/core/slash-commands.js +1 -0
  423. package/node_modules/@earendil-works/pi-coding-agent/dist/core/slash-commands.js.map +1 -1
  424. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/bash.d.ts.map +1 -1
  425. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/bash.js +1 -1
  426. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/bash.js.map +1 -1
  427. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/find.d.ts.map +1 -1
  428. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/find.js +1 -1
  429. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/find.js.map +1 -1
  430. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/grep.d.ts.map +1 -1
  431. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/grep.js +1 -1
  432. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/grep.js.map +1 -1
  433. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/ls.d.ts.map +1 -1
  434. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/ls.js +1 -1
  435. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/ls.js.map +1 -1
  436. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/read.d.ts.map +1 -1
  437. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/read.js +1 -1
  438. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/read.js.map +1 -1
  439. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/write.d.ts.map +1 -1
  440. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/write.js +1 -1
  441. package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/write.js.map +1 -1
  442. package/node_modules/@earendil-works/pi-coding-agent/dist/core/trust-manager.d.ts +36 -0
  443. package/node_modules/@earendil-works/pi-coding-agent/dist/core/trust-manager.d.ts.map +1 -0
  444. package/node_modules/@earendil-works/pi-coding-agent/dist/core/trust-manager.js +202 -0
  445. package/node_modules/@earendil-works/pi-coding-agent/dist/core/trust-manager.js.map +1 -0
  446. package/node_modules/@earendil-works/pi-coding-agent/dist/index.d.ts +5 -4
  447. package/node_modules/@earendil-works/pi-coding-agent/dist/index.d.ts.map +1 -1
  448. package/node_modules/@earendil-works/pi-coding-agent/dist/index.js +2 -1
  449. package/node_modules/@earendil-works/pi-coding-agent/dist/index.js.map +1 -1
  450. package/node_modules/@earendil-works/pi-coding-agent/dist/main.d.ts.map +1 -1
  451. package/node_modules/@earendil-works/pi-coding-agent/dist/main.js +72 -32
  452. package/node_modules/@earendil-works/pi-coding-agent/dist/main.js.map +1 -1
  453. package/node_modules/@earendil-works/pi-coding-agent/dist/migrations.d.ts.map +1 -1
  454. package/node_modules/@earendil-works/pi-coding-agent/dist/migrations.js +39 -34
  455. package/node_modules/@earendil-works/pi-coding-agent/dist/migrations.js.map +1 -1
  456. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/index.d.ts +1 -1
  457. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/index.d.ts.map +1 -1
  458. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/index.js.map +1 -1
  459. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/bash-execution.d.ts.map +1 -1
  460. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/bash-execution.js +2 -2
  461. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/bash-execution.js.map +1 -1
  462. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/first-time-setup.d.ts +25 -0
  463. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/first-time-setup.d.ts.map +1 -0
  464. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/first-time-setup.js +103 -0
  465. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/first-time-setup.js.map +1 -0
  466. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/footer.d.ts.map +1 -1
  467. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/footer.js +7 -0
  468. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/footer.js.map +1 -1
  469. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/index.d.ts +2 -0
  470. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/index.d.ts.map +1 -1
  471. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/index.js +2 -0
  472. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/index.js.map +1 -1
  473. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/login-dialog.d.ts +1 -1
  474. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
  475. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/login-dialog.js +10 -13
  476. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/login-dialog.js.map +1 -1
  477. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/settings-selector.d.ts +3 -1
  478. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  479. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/settings-selector.js +20 -0
  480. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/settings-selector.js.map +1 -1
  481. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  482. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/tool-execution.js +22 -0
  483. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/tool-execution.js.map +1 -1
  484. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/trust-selector.d.ts +23 -0
  485. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/trust-selector.d.ts.map +1 -0
  486. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/trust-selector.js +91 -0
  487. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/trust-selector.js.map +1 -0
  488. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts +7 -0
  489. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  490. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/interactive-mode.js +101 -5
  491. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/interactive-mode.js.map +1 -1
  492. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/print-mode.d.ts.map +1 -1
  493. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/print-mode.js +1 -0
  494. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/print-mode.js.map +1 -1
  495. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  496. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-mode.js +1 -0
  497. package/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-mode.js.map +1 -1
  498. package/node_modules/@earendil-works/pi-coding-agent/dist/package-manager-cli.d.ts +6 -2
  499. package/node_modules/@earendil-works/pi-coding-agent/dist/package-manager-cli.d.ts.map +1 -1
  500. package/node_modules/@earendil-works/pi-coding-agent/dist/package-manager-cli.js +111 -10
  501. package/node_modules/@earendil-works/pi-coding-agent/dist/package-manager-cli.js.map +1 -1
  502. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/changelog.d.ts +1 -0
  503. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/changelog.d.ts.map +1 -1
  504. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/changelog.js +78 -0
  505. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/changelog.js.map +1 -1
  506. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/git.d.ts.map +1 -1
  507. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/git.js +54 -22
  508. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/git.js.map +1 -1
  509. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/open-browser.d.ts +9 -0
  510. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/open-browser.d.ts.map +1 -0
  511. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/open-browser.js +22 -0
  512. package/node_modules/@earendil-works/pi-coding-agent/dist/utils/open-browser.js.map +1 -0
  513. package/node_modules/@earendil-works/pi-coding-agent/docs/containerization.md +111 -0
  514. package/node_modules/@earendil-works/pi-coding-agent/docs/docs.json +8 -0
  515. package/node_modules/@earendil-works/pi-coding-agent/docs/extensions.md +67 -13
  516. package/node_modules/@earendil-works/pi-coding-agent/docs/index.md +2 -0
  517. package/node_modules/@earendil-works/pi-coding-agent/docs/models.md +4 -3
  518. package/node_modules/@earendil-works/pi-coding-agent/docs/packages.md +1 -1
  519. package/node_modules/@earendil-works/pi-coding-agent/docs/prompt-templates.md +9 -2
  520. package/node_modules/@earendil-works/pi-coding-agent/docs/providers.md +5 -0
  521. package/node_modules/@earendil-works/pi-coding-agent/docs/rpc.md +1 -1
  522. package/node_modules/@earendil-works/pi-coding-agent/docs/sdk.md +5 -0
  523. package/node_modules/@earendil-works/pi-coding-agent/docs/security.md +59 -0
  524. package/node_modules/@earendil-works/pi-coding-agent/docs/settings.md +15 -0
  525. package/node_modules/@earendil-works/pi-coding-agent/docs/skills.md +1 -1
  526. package/node_modules/@earendil-works/pi-coding-agent/docs/terminal-setup.md +36 -2
  527. package/node_modules/@earendil-works/pi-coding-agent/docs/themes.md +1 -1
  528. package/node_modules/@earendil-works/pi-coding-agent/docs/tmux.md +4 -2
  529. package/node_modules/@earendil-works/pi-coding-agent/docs/tui.md +10 -1
  530. package/node_modules/@earendil-works/pi-coding-agent/docs/usage.md +19 -2
  531. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/README.md +2 -0
  532. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/custom-header.ts +1 -1
  533. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/custom-provider-anthropic/package.json +1 -1
  534. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  535. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/doom-overlay/index.ts +1 -1
  536. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/gondolin/index.ts +531 -0
  537. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/gondolin/package-lock.json +185 -0
  538. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/gondolin/package.json +19 -0
  539. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/handoff.ts +1 -1
  540. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/interactive-shell.ts +1 -1
  541. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/overlay-qa-tests.ts +152 -81
  542. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/project-trust.ts +64 -0
  543. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/qna.ts +1 -1
  544. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/question.ts +1 -1
  545. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/questionnaire.ts +1 -1
  546. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/sandbox/package.json +1 -1
  547. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/snake.ts +1 -1
  548. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/space-invaders.ts +1 -1
  549. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/summarize.ts +1 -1
  550. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/tic-tac-toe.ts +1 -1
  551. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/todo.ts +1 -1
  552. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/tools.ts +5 -0
  553. package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/with-deps/package.json +1 -1
  554. package/node_modules/@earendil-works/pi-coding-agent/npm-shrinkwrap.json +12 -419
  555. package/node_modules/@earendil-works/pi-coding-agent/package.json +5 -8
  556. package/node_modules/@earendil-works/pi-tui/README.md +13 -1
  557. package/node_modules/@earendil-works/pi-tui/dist/autocomplete.d.ts +2 -0
  558. package/node_modules/@earendil-works/pi-tui/dist/autocomplete.d.ts.map +1 -1
  559. package/node_modules/@earendil-works/pi-tui/dist/autocomplete.js.map +1 -1
  560. package/node_modules/@earendil-works/pi-tui/dist/components/editor.d.ts +6 -1
  561. package/node_modules/@earendil-works/pi-tui/dist/components/editor.d.ts.map +1 -1
  562. package/node_modules/@earendil-works/pi-tui/dist/components/editor.js +102 -43
  563. package/node_modules/@earendil-works/pi-tui/dist/components/editor.js.map +1 -1
  564. package/node_modules/@earendil-works/pi-tui/dist/components/markdown.d.ts +2 -1
  565. package/node_modules/@earendil-works/pi-tui/dist/components/markdown.d.ts.map +1 -1
  566. package/node_modules/@earendil-works/pi-tui/dist/components/markdown.js +11 -1
  567. package/node_modules/@earendil-works/pi-tui/dist/components/markdown.js.map +1 -1
  568. package/node_modules/@earendil-works/pi-tui/dist/fuzzy.d.ts +1 -1
  569. package/node_modules/@earendil-works/pi-tui/dist/fuzzy.d.ts.map +1 -1
  570. package/node_modules/@earendil-works/pi-tui/dist/fuzzy.js +2 -2
  571. package/node_modules/@earendil-works/pi-tui/dist/fuzzy.js.map +1 -1
  572. package/node_modules/@earendil-works/pi-tui/dist/index.d.ts +1 -1
  573. package/node_modules/@earendil-works/pi-tui/dist/index.d.ts.map +1 -1
  574. package/node_modules/@earendil-works/pi-tui/dist/index.js.map +1 -1
  575. package/node_modules/@earendil-works/pi-tui/dist/terminal.d.ts +4 -7
  576. package/node_modules/@earendil-works/pi-tui/dist/terminal.d.ts.map +1 -1
  577. package/node_modules/@earendil-works/pi-tui/dist/terminal.js +38 -77
  578. package/node_modules/@earendil-works/pi-tui/dist/terminal.js.map +1 -1
  579. package/node_modules/@earendil-works/pi-tui/dist/tui.d.ts +20 -4
  580. package/node_modules/@earendil-works/pi-tui/dist/tui.d.ts.map +1 -1
  581. package/node_modules/@earendil-works/pi-tui/dist/tui.js +244 -42
  582. package/node_modules/@earendil-works/pi-tui/dist/tui.js.map +1 -1
  583. package/node_modules/@earendil-works/pi-tui/dist/utils.d.ts +1 -0
  584. package/node_modules/@earendil-works/pi-tui/dist/utils.d.ts.map +1 -1
  585. package/node_modules/@earendil-works/pi-tui/dist/utils.js +46 -15
  586. package/node_modules/@earendil-works/pi-tui/dist/utils.js.map +1 -1
  587. package/node_modules/@earendil-works/pi-tui/package.json +1 -1
  588. package/package.json +8 -7
  589. package/dist/forge-payload/.base-pack/commands/check-agent.md +0 -22
  590. package/dist/forge-payload/.base-pack/commands/enhance.md +0 -37
@@ -1,4 +1,100 @@
1
1
  {
2
+ "1.4.13": {
3
+ "version": "1.5.0",
4
+ "date": "2026-06-11",
5
+ "notes": "FORGE-S32-T07: plugin v1.5.0 — shim-only sunset release. The stable skillforge marketplace channel stops being a parallel distribution mechanism and becomes a one-way migration ramp to the CLI-first install (npm @entelligentsia/forgecli, the 4ge binary). NEW forge/forge/tools/apply-plugin-shim.cjs is a release-branch shim-overlay generator (sibling of rewrite-plugin-urls.cjs): it overwrites the release-branch forge/forge/commands/*.md with two template tiers — a FULL consent-gated migration shim for init/update/rebuild (migration explanation + node/npm preflight + prose-only consent-gated `npm i -g @entelligentsia/forgecli && 4ge init claude .` offer + print-only fallback) and a SHORT redirect notice ('run /forge:init to migrate') for every other command — then regenerates integrity.json so /forge:health verification still passes on plugin installs. CRITICAL: the shim is a RELEASE-BRANCH OVERLAY only; main's forge/forge/commands/ stays the real unified T06 tree because build-payload.cjs copies it verbatim into the CLI npm bundle — shimming main would poison the CLI payload. The tool refuses to apply without --target release (mirrors rewrite-plugin-urls --target discipline). README + skillforge marketplace listing are rewritten CLI-first; the marketplace appears only as a deprecation/migration note. The forge-releaser ritual wires apply-plugin-shim into Step 2 on the release branch and makes the build-payload-from-main + verify-publish gate explicit. The dual-path code strip and the retirement of apply-plugin-shim.cjs itself are deferred to S34 (mechanical). No store-record or schema migration; installed, already-bootstrapped projects keep their materialized .claude/commands/forge/ and converge on the next 4ge update / re-bootstrap (idempotent — preserves config/store/KB).",
6
+ "target": "tools:apply-plugin-shim,commands:release-shim-overlay,release:plugin-sunset",
7
+ "regenerate": [],
8
+ "breaking": false,
9
+ "manual": [
10
+ "The Forge marketplace plugin is being sunset. Migrate to the CLI-first install: `npm i -g @entelligentsia/forgecli` then `4ge init claude .` in your project. The migration is idempotent and preserves .forge/config.json, .forge/store/** and your knowledge-base folder. On the v1.5.0 plugin, running /forge:init (or /forge:update / /forge:rebuild) walks you through this migration with explicit consent."
11
+ ]
12
+ },
13
+ "1.4.12": {
14
+ "version": "1.4.13",
15
+ "date": "2026-06-11",
16
+ "notes": "FORGE-S32-T06: command-tree unification. The two payload command trees were collapsed into one. forge/forge/commands/ is now the single source of truth for ALL /forge:* commands: the 14 non-colliding base-pack sprint-workflow shims (approve, collate, commit, fix-bug, implement, new-sprint, plan, plan-sprint, retro, review-code, review-plan, run-sprint, run-task, validate) were folded in, and the three former-collision winners (init, check-agent, enhance) overwrite the plugin copies with the base-pack winner bytes. forge/forge/init/base-pack/commands/ was deleted AND build-base-pack.cjs no longer regenerates it (Section-5 command-generation loop + expectedFiles 'Commands (16)' block removed). The payload manifest drops its init/base-pack/commands entry; build-payload bundles one commands/ tree and base-pack/ no longer carries a commands/ subdir; bootstrap copies one directory with no union/collision ordering; registerAllForgeCommands enumerates dist/forge-payload/commands/ (forge:reset added to EXPLICITLY_REGISTERED_NAMES so the repoint introduces no new auto-stub). Installed .claude/commands/forge/ is byte-for-byte identical to the prior union output (AC3 parity preserved) and the frozen expected-install-set.json drops the 17 vendored .forge/.base-pack/commands/*.md entries. Plugin-channel semantic delta: the plugin-served init/check-agent/enhance bytes change to the base-pack winners; the plugin channel is retired at T07. See doc/decisions/command-model.md. No store-record migration; existing projects keep their installed commands and converge on the next 4ge update / re-bootstrap (idempotent).",
17
+ "target": "commands:*,init:base-pack:commands:*,payload-manifest:commands,tools:build-base-pack,tools:substitute-placeholders,tools:build-manifest",
18
+ "regenerate": [],
19
+ "breaking": false,
20
+ "manual": []
21
+ },
22
+ "1.4.11": {
23
+ "version": "1.4.12",
24
+ "date": "2026-06-11",
25
+ "notes": "FORGE-S32-T05: dead-payload trim via manifest. Removed the four superseded init/generation orchestrator placeholders (generate-knowledge-base.md, generate-personas.md, generate-skills.md, generate-templates.md) — each had zero live runtime citation (only historical vision/ docs + migration notes); the live per-subagent rulebooks generate-{commands,kb-doc,persona,skill,template,tools,workflows}.md are retained and the payload-manifest init/generation entry now carries an explicit curated include list. On the builder side (forge-cli) the dead build-payload Pass-1 substitute-placeholders bundle-root output (personas/skills/workflows/templates/) and its --include-full restore branch were removed; runtime re-substitutes from .base-pack/ at init Phase 3b, so that output was never consumed. DELIBERATELY RETAINED (audit verdicts refuted, reconciled): the non-dot schemas/ mirror (health.md/update.md read $FORGE_ROOT/schemas/ with no .schemas/ fallback in both plugin and fallback $FORGE_ROOT modes), schemas/structure-manifest.json (check-structure.cjs reads it via /forge:health step 8 with no --forge-root against installed projects), and the tools/lib store-{nlp,query-exec,facade}.cjs facades (required by store-query.cjs). No store-record migration; existing installs keep their generation copies until /forge:update narrows them.",
26
+ "target": "payload:init/generation-trim,build-payload:pass1-removed",
27
+ "regenerate": [],
28
+ "breaking": false,
29
+ "manual": []
30
+ },
31
+ "1.4.10": {
32
+ "version": "1.4.11",
33
+ "date": "2026-06-11",
34
+ "notes": "FEAT-009 T03: new /forge:reset command + reset-plan.cjs tool — a guardrailed, NLP-backed pipeline-state reset. reset-plan.cjs is a pure, read-only PLANNER: given a task/bug/sprint and a target phase it computes the status transition(s) plus cross-entity referential-integrity warnings (committed-work git divergence, parent-sprint incoherence, dependents resting on rewound work, and sprint cascade of transitive dependents) WITHOUT mutating the store. The /forge:reset command interprets a natural-language request, runs the planner, presents the transitions + integrity implications, requires explicit confirmation, then applies via store-cli update-status --force. Complements forge-cli's deterministic `4ge reset` (single-entity task/bug). New tool + command; structure-manifest/enum-catalog/integrity regenerated. No store-record migration.",
35
+ "target": "commands:reset,tools:reset-plan",
36
+ "regenerate": [],
37
+ "breaking": false,
38
+ "manual": []
39
+ },
40
+ "1.4.9": {
41
+ "version": "1.4.10",
42
+ "date": "2026-06-11",
43
+ "notes": "FORGE-BUG-047: store.cjs FSImpl.writeFeature() read data.feature_id, but feature records key on `id` (matching the schema, the store-cli template, and every FEAT-00x record; writeTask uses data.taskId and writeBug uses data.bugId correctly). data.feature_id was always undefined, so writes misfiled to features/undefined.json — features could not be created or updated through the sanctioned store-cli gateway at all, and store-cli reported exit 0 so the failure was silent. The pre-existing store.test.cjs round-trip used a mock store keyed on yet another name (data.featureId), so it never exercised the real FSImpl and never caught this. Fix: writeFeature now reads data.id; a new real-FSImpl round-trip test (write by id, read back, assert no features/undefined.json) locks it. Tool fix; no store-record migration.",
44
+ "target": "tools:store",
45
+ "regenerate": [],
46
+ "breaking": false,
47
+ "manual": []
48
+ },
49
+ "1.4.8": {
50
+ "version": "1.4.9",
51
+ "date": "2026-06-11",
52
+ "notes": "FORGE-BUG-045: payload-manifest.json's integrity.json entry declared install:'.forge/' but is never vendored into a bootstrapped project's .forge/ tree — the historical bootstrap only HASHES payloadRoot/integrity.json for the .bootstrap-manifest.json integrity field, never installs it. It is bundle-only (shipped to dist/forge-payload/integrity.json for verify-integrity.cjs forge-root resolution). This was the last over-broad-install entry missed by the FORGE-BUG-044 sweep; a manifest-driven bootstrap honouring install (FORGE-S32-T03) would install a phantom .forge/integrity.json, breaking AC4 byte-parity. Fix: the entry now declares bundleOnly:true and drops install (validating against the existing bundleOnly if/then/else contract from FORGE-BUG-044 — no schema or checker code change); a regression-lock test pins the corrected entry. Declarative data correction; no store-record migration.",
53
+ "target": "schemas:payload-manifest",
54
+ "regenerate": [],
55
+ "breaking": false,
56
+ "manual": []
57
+ },
58
+ "1.4.7": {
59
+ "version": "1.4.8",
60
+ "date": "2026-06-10",
61
+ "notes": "FORGE-BUG-044: payload-manifest.json declared install:'.forge/schemas/' for the schemas/transitions dir entry and the migrations.json file entry, but neither is ever vendored into a bootstrapped project's .forge/schemas/ (they are bundle-only — shipped to dist/forge-payload/.schemas/ for transition-guard.ts / migration-engine.ts resolution). A manifest-driven bootstrap honouring install (FORGE-S32-T03) would have installed >=4 phantom files, breaking AC4 byte-parity. Fix: NEW bundleOnly boolean in payload-manifest.schema.json with a draft-07 if/then/else contract (install forbidden when bundleOnly:true, else required; install dropped from base required[]); the two entries now declare bundleOnly:true and drop install; check-payload-manifest.cjs gains a bundle-only self-consistency pass (inconsistencies[] folded into ok + CLI exit) so the over-broad install field cannot recur. Declarative + tooling-enforced; no store-record migration.",
62
+ "target": "schemas:payload-manifest,tools:check-payload-manifest",
63
+ "regenerate": [],
64
+ "breaking": false,
65
+ "manual": []
66
+ },
67
+ "1.4.6": {
68
+ "version": "1.4.7",
69
+ "date": "2026-06-10",
70
+ "notes": "Declarative payload manifest + source-drift check (FORGE-S32-T02). NEW forge/forge/payload-manifest.json names every shipped artifact (source -> bundle -> install -> removal owner), spec'd by NEW forge/forge/schemas/payload-manifest.schema.json, replacing the implicit contract previously spread across build-payload.cjs / bootstrap.ts / uninstall.ts hand-maintained copy lists (the FORGE-BUG-030/036 MODULE_NOT_FOUND class). NEW forge/forge/tools/check-payload-manifest.cjs is a CI-only dev tool (not vendored to instances) that exits non-zero on a missing source or an orphan file under a recursive payload tree; wired into plugin-ci.yml. The three forge-cli consumers are rewired to read the manifest in FORGE-S32-T03. build-manifest.cjs DEV_ONLY_TOOLS now excludes check-payload-manifest.cjs; structure-manifest.json regenerated to list the newly-vendored payload-manifest.schema.json.",
71
+ "target": "tools:check-payload-manifest,schemas:payload-manifest,schemas:structure-manifest,tools:build-manifest",
72
+ "regenerate": [],
73
+ "breaking": false,
74
+ "manual": []
75
+ },
76
+ "1.4.5": {
77
+ "version": "1.4.6",
78
+ "date": "2026-06-09",
79
+ "notes": "Security hardening of the forge-permissions auto-approver (forge-engineering#42). The Bash auto-allow patterns were unanchored command prefixes (`cat *`, `cp *`, `gh issue *`, `git push *`, `node .../tools/*`), so a prompt-injected agent could read a secret and exfiltrate/execute it with no permission prompt. Patterns are now anchored to their argument shape: `cat`/`cp` only within `.forge/`/`engineering/`, `node` tools only from a trusted Forge root ($FORGE_ROOT/$CLAUDE_PLUGIN_ROOT, plugin cache, or a /.forge path), `gh issue` only against the current repo (no -R/--repo), `git push` only to a named remote (no explicit http(s)/ssh/git/file URL). A non-match falls through to Claude Code's normal permission flow (the human is asked) — it never blocks. Legit in-tree Forge workflow commands still auto-allow, so no new prompt storm. New test forge/hooks/__tests__/forge-permissions.test.cjs pins both directions.",
80
+ "target": "hooks:forge-permissions",
81
+ "regenerate": [],
82
+ "breaking": false,
83
+ "manual": [
84
+ "Run /forge:update to pick up the hardened forge-permissions hook. Interactive Claude Code sessions may now see a one-time permission prompt for commands outside the Forge working set (e.g. reading files outside .forge/, pushing to an explicit remote URL) — approve as normal. Autonomous forge-cli (pi) runs are unaffected (pi has no permission gate)."
85
+ ]
86
+ },
87
+ "1.2.21": {
88
+ "version": "1.3.0",
89
+ "date": "2026-06-07",
90
+ "notes": "CLI-first bootstrap: /forge:init now dispatches workflow('wfl:init') — the dynamic JS driver added in S31-T04. init.md command wrapper hoists interactive prompts (KB folder, CLAUDE.md offer, marketplace-skills offer). Phase-1 and Phase-4 rulebooks annotated with orchestrator-owned step markers. sdlc-init.md reduced to a spec pointer. New base-pack/commands/init.md project-local wrapper authored. No change to installed projects (init.md is a plugin command, not a materialized base-pack command).",
91
+ "target": "commands:init,init:wfl-init,init:phases:phase-1-collect,init:phases:phase-4-register,init:sdlc-init,init:base-pack:commands:init",
92
+ "regenerate": [],
93
+ "breaking": false,
94
+ "manual": [
95
+ "No action required for existing initialized projects. New inits use the dynamic wfl:init driver. The Workflow tool is required; upgrade Claude Code if not available."
96
+ ]
97
+ },
2
98
  "1.2.20": {
3
99
  "version": "1.2.21",
4
100
  "date": "2026-06-06",
@@ -2913,5 +3009,79 @@
2913
3009
  ],
2914
3010
  "breaking": false,
2915
3011
  "manual": []
3012
+ },
3013
+ "1.3.0": {
3014
+ "version": "1.4.0",
3015
+ "date": "2026-06-07",
3016
+ "notes": "Fixed /forge:* command namespace (CLI-first redesign). Project-prefix command namespaces (/acme:*, /hello:*) are retired: getCommandsSubdir() now returns 'forge' unconditionally, base-pack command templates carry literal /forge: headings ({{PREFIX}} removed), and substitute-placeholders materializes commands to .claude/commands/forge/. All command .md files (plugin commands/ + base-pack commands/) resolve FORGE_ROOT with a vendored fallback: ${CLAUDE_PLUGIN_ROOT:-$(pwd)/.forge} — full parity for plugin-less projects bootstrapped by '4ge init claude' where tools/schemas/hooks are vendored under .forge/. Rulebooks (generate-commands, phase-3-materialize, phase-1-collect, meta-migrate, migrate_structural) updated to the fixed namespace.",
3017
+ "target": "tools:lib:paths,tools:substitute-placeholders,commands:*,init:base-pack:commands:*,init:generation:generate-commands,init:phases:phase-1-collect,init:phases:phase-3-materialize,meta:workflows:meta-migrate,init:base-pack:workflows:migrate_structural",
3018
+ "regenerate": [
3019
+ "commands"
3020
+ ],
3021
+ "breaking": true,
3022
+ "manual": [
3023
+ "Existing projects with prefix-namespaced commands (.claude/commands/<prefix>/): re-run materialization (or /forge:rebuild) to produce .claude/commands/forge/, then delete the old .claude/commands/<prefix>/ directory. The old commands keep working until removed but will not receive updates."
3024
+ ]
3025
+ },
3026
+ "1.4.0": {
3027
+ "version": "1.4.1",
3028
+ "date": "2026-06-07",
3029
+ "notes": "wfl-init.js Workflow-harness parse fix: the driver shipped wrapped in 'export default async function wflInit(args)' — the Workflow tool permits exactly one export (the meta literal) and evaluates the rest as an async function body, so every /forge:init dispatch failed at launch with \"SyntaxError: Unexpected keyword 'export'\". Body now runs at top level reading the global args. New regression test (wfl-drivers-parse.test.cjs) parses all four base-pack drivers exactly the way the harness does.",
3030
+ "target": "init:base-pack:workflows-js:wfl-init",
3031
+ "regenerate": [
3032
+ "workflows"
3033
+ ],
3034
+ "breaking": false,
3035
+ "manual": [
3036
+ "Projects bootstrapped with the broken driver: re-run '4ge init claude .' (idempotent repair overwrites .claude/workflows/wfl-init.js)."
3037
+ ]
3038
+ },
3039
+ "1.4.1": {
3040
+ "version": "1.4.2",
3041
+ "date": "2026-06-07",
3042
+ "notes": "wfl-init.js Workflow-API rewrite (forge#112): the driver mis-used the harness API four ways — phase(title, callback) callbacks were silently discarded so init ran 0 agents while reporting fabricated ok:true; parallel() received promises instead of thunks; agent() had model as first arg instead of opts.model; structured results lacked opts.schema. Phase bodies now run inline at top level, fan-outs use thunks, all agents use agent(prompt, {model, label, phase, schema}), and the report reflects real phase results. Rulebook reads use vendored .forge/init/... paths with direct-analysis fallback. Contract enforced by wfl-drivers-parse.test.cjs (phase-callback, thunk, arg-order, referenced-rulebook-exists gates).",
3043
+ "target": "init:base-pack:workflows-js:wfl-init",
3044
+ "regenerate": [
3045
+ "workflows"
3046
+ ],
3047
+ "breaking": false,
3048
+ "manual": [
3049
+ "Projects bootstrapped with the broken driver: re-run '4ge init claude .' (idempotent repair overwrites .claude/workflows/wfl-init.js)."
3050
+ ]
3051
+ },
3052
+ "1.4.2": {
3053
+ "version": "1.4.3",
3054
+ "date": "2026-06-07",
3055
+ "notes": "wfl-init.js verify-phase CLI alignment (forge#112 follow-up): the Phase 2 verify prompts invoked 'verify-phase.cjs --phase 2' bare, but the tool requires '--phase 2 --kb-path <path>' (exit 2 without it). Both Phase 2 invocations now pass --kb-path \"${kbFolder}\". New contract gates in wfl-drivers-parse.test.cjs assert every driver verify-phase invocation uses a supported phase (1-3) and that --phase 2 always carries --kb-path.",
3056
+ "target": "init:base-pack:workflows-js:wfl-init",
3057
+ "regenerate": [
3058
+ "workflows"
3059
+ ],
3060
+ "breaking": false,
3061
+ "manual": []
3062
+ },
3063
+ "1.4.3": {
3064
+ "version": "1.4.4",
3065
+ "date": "2026-06-07",
3066
+ "notes": "First full CLI-first field-test gap fixes (config drift + manifest scope): (1) phase-1-collect.md no longer instructs the config-writer to derive paths.commands from the project prefix — it is ALWAYS '.claude/commands/forge' (the prefix-derived instruction survived the 1.4.0 namespace redesign and produced paths.commands='.claude/commands/git' -> check-structure 0/14). (2) generate-tools.md gains an explicit step writing paths.forgeRoot='.forge' — without it the register agent improvised an absolute npm-global payload path, which breaks on version upgrades and nvm switches. (3) build-manifest.cjs excludes 10 plugin-development tools from the tools namespace — the structure manifest describes instances, and expecting dev tools produced false 49/59 'missing tools' gaps in /forge:health.",
3067
+ "target": "init:phases:phase-1-collect,init:generation:generate-tools,tools:build-manifest,schemas:structure-manifest",
3068
+ "regenerate": [],
3069
+ "breaking": false,
3070
+ "manual": [
3071
+ "Existing CLI-first projects with drifted config: run node .forge/tools/manage-config.cjs set paths.commands '\".claude/commands/forge\"' and set paths.forgeRoot '\".forge\"', then re-run '4ge init claude .' to refresh .forge/schemas/structure-manifest.json."
3072
+ ]
3073
+ },
3074
+ "1.4.4": {
3075
+ "version": "1.4.5",
3076
+ "date": "2026-06-09",
3077
+ "notes": "Collate-workflow KB-link refresh is orchestrator-owned under forge-cli. collator_agent.md (base-pack) + meta-collate.md (meta source) no longer instruct the collator subagent to invoke the forge:refresh-kb-links Skill tool: forge-cli subagents run via the Pi runtime, which has no Skill tool, so the instruction triggered a multi-call bash-probe loop before falling back. The Claude Code TUI standalone path still uses the Skill tool; under forge-cli the run-task orchestrator owns the KB refresh (runRefreshKbLinks) after the writeback phase. Prose-only change to the generated collate workflow.",
3078
+ "target": "workflows:collator_agent,meta:meta-collate",
3079
+ "regenerate": [
3080
+ "workflows:collator_agent"
3081
+ ],
3082
+ "breaking": false,
3083
+ "manual": [
3084
+ "Run /forge:update (or /forge:rebuild) to regenerate the collate workflow (collator_agent.md) with the orchestrator-owned KB-refresh guidance."
3085
+ ]
2916
3086
  }
2917
3087
  }
@@ -0,0 +1,100 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://github.com/Entelligentsia/forge/schemas/payload-manifest.schema.json",
4
+ "title": "Forge Payload Manifest",
5
+ "description": "Declarative inventory of every artifact the Forge payload ships: source path (under forge/forge/) -> bundle path (dist/forge-payload/) -> install destination (bootstrapped project root) -> removal owner (uninstall grouping). Replaces the hand-maintained copy lists in build-payload.cjs / bootstrap.ts / uninstall.ts (FORGE-S32). The owner enum and select shape are provisional pending FORGE-S32-T03 consumer wiring.",
6
+ "type": "object",
7
+ "additionalProperties": false,
8
+ "required": ["entries"],
9
+ "properties": {
10
+ "$schema": { "type": "string" },
11
+ "_doc": { "type": "string" },
12
+ "entries": {
13
+ "type": "array",
14
+ "items": { "$ref": "#/definitions/entry" }
15
+ }
16
+ },
17
+ "definitions": {
18
+ "entry": {
19
+ "type": "object",
20
+ "additionalProperties": false,
21
+ "required": ["source", "bundle", "owner", "kind"],
22
+ "if": {
23
+ "properties": { "bundleOnly": { "const": true } },
24
+ "required": ["bundleOnly"]
25
+ },
26
+ "then": {
27
+ "not": { "required": ["install"] }
28
+ },
29
+ "else": {
30
+ "required": ["install"]
31
+ },
32
+ "properties": {
33
+ "source": {
34
+ "type": "string",
35
+ "description": "Repo-relative path under forge/forge/ (file or directory root)."
36
+ },
37
+ "bundle": {
38
+ "type": "string",
39
+ "description": "Destination path inside dist/forge-payload/ that build-payload.cjs emits."
40
+ },
41
+ "install": {
42
+ "type": "string",
43
+ "description": "Destination inside a bootstrapped project, relative to project root (e.g. .forge/tools/, .claude/commands/forge/). Required unless bundleOnly:true (the if/then/else contract); forbidden when bundleOnly:true."
44
+ },
45
+ "bundleOnly": {
46
+ "type": "boolean",
47
+ "description": "True when the artifact ships to dist/forge-payload/ for tool/migration-engine resolution but is NOT installed into a bootstrapped project's tree. Such entries MUST NOT declare install (enforced by the if/then/else contract and check-payload-manifest.cjs). FORGE-BUG-044."
48
+ },
49
+ "owner": {
50
+ "type": "string",
51
+ "description": "Removal owner consumed by uninstall.ts, encoding the per-subtree removal grouping.",
52
+ "enum": ["forge-scaffold", "claude-commands", "claude-assets", "workflows"]
53
+ },
54
+ "kind": {
55
+ "type": "string",
56
+ "enum": ["file", "dir"]
57
+ },
58
+ "synthesized": {
59
+ "type": "boolean",
60
+ "description": "True when build-payload.cjs generates this artifact rather than copying it from source (e.g. tools/package.json CJS scope marker). Source-drift checks skip the missing-source assertion for synthesized entries."
61
+ },
62
+ "select": {
63
+ "type": "object",
64
+ "additionalProperties": false,
65
+ "description": "Selection filter for dir entries, mirroring build-payload.cjs Pass-2 logic.",
66
+ "properties": {
67
+ "recursive": {
68
+ "type": "boolean",
69
+ "description": "When false, only top-level files are selected; subdirectories are not descended."
70
+ },
71
+ "ext": {
72
+ "type": "array",
73
+ "items": { "type": "string" },
74
+ "description": "Allowed file-name suffixes (e.g. .cjs, .schema.json)."
75
+ },
76
+ "include": {
77
+ "type": "array",
78
+ "items": { "type": "string" },
79
+ "description": "Explicit allowlist of names for curated subtrees (tools/, skills/). Curated entries are forward-checked only; unlisted siblings are NOT orphans."
80
+ },
81
+ "exclude": {
82
+ "type": "array",
83
+ "items": { "type": "string" },
84
+ "description": "Path segments or file names to skip (e.g. __tests__, README.md)."
85
+ },
86
+ "prefix": {
87
+ "type": "array",
88
+ "items": { "type": "string" },
89
+ "description": "Required file-name prefixes (e.g. discover-, wfl-, phase-)."
90
+ }
91
+ }
92
+ },
93
+ "note": {
94
+ "type": "string",
95
+ "description": "Free-text rationale, preserving the inline citation comments that today live in build-payload.cjs (FORGE-BUG-030 marker, forge-cli#25 defects, etc.)."
96
+ }
97
+ }
98
+ }
99
+ }
100
+ }
@@ -10,7 +10,7 @@ description: Conversational pipeline manager — add, customize, view, or remove
10
10
  ## Setup
11
11
 
12
12
  ```
13
- FORGE_ROOT: !`echo "${CLAUDE_PLUGIN_ROOT}"`
13
+ FORGE_ROOT: !`echo "${CLAUDE_PLUGIN_ROOT:-$(pwd)/.forge}"`
14
14
  ```
15
15
 
16
16
  Read project config values:
@@ -10,7 +10,7 @@ Add a task to an existing sprint without re-running the full sprint planner.
10
10
  ## Setup
11
11
 
12
12
  ```
13
- FORGE_ROOT: !`echo "${CLAUDE_PLUGIN_ROOT}"`
13
+ FORGE_ROOT: !`echo "${CLAUDE_PLUGIN_ROOT:-$(pwd)/.forge}"`
14
14
  ```
15
15
 
16
16
  Read project config values:
@@ -256,8 +256,8 @@ Display a summary (substitute `{PREFIX}` with `PROJECT_PREFIX.toLowerCase()`):
256
256
  Pipeline: {PIPELINE}
257
257
 
258
258
  ── Next steps:
259
- 1. Run /{PREFIX}:run-task {TASK_ID} to execute the full pipeline.
260
- 2. Or run /{PREFIX}:plan {TASK_ID} to plan it first.
259
+ 1. Run /forge:run-task {TASK_ID} to execute the full pipeline.
260
+ 2. Or run /forge:plan {TASK_ID} to plan it first.
261
261
  ```
262
262
 
263
263
  ---
@@ -3,14 +3,14 @@ name: approve
3
3
  description: Final architect approval gate for a completed task
4
4
  ---
5
5
 
6
- # /{{PREFIX}}:approve
6
+ # /forge:approve
7
7
 
8
8
  Read the approve workflow and follow it.
9
9
 
10
10
  ## Locate the Forge plugin
11
11
 
12
12
  ```
13
- FORGE_ROOT: !`echo "${CLAUDE_PLUGIN_ROOT}"`
13
+ FORGE_ROOT: !`echo "${CLAUDE_PLUGIN_ROOT:-$(pwd)/.forge}"`
14
14
  ```
15
15
 
16
16
  ## Execute
@@ -10,7 +10,7 @@ Single conversational entry point for all Forge intent.
10
10
  ## Locate plugin root
11
11
 
12
12
  ```
13
- FORGE_ROOT: !`echo "${CLAUDE_PLUGIN_ROOT}"`
13
+ FORGE_ROOT: !`echo "${CLAUDE_PLUGIN_ROOT:-$(pwd)/.forge}"`
14
14
  ```
15
15
 
16
16
  ## Open with oracle banner
@@ -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
- FORGE_ROOT: !`echo "${CLAUDE_PLUGIN_ROOT}"`
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
@@ -3,14 +3,14 @@ name: collate
3
3
  description: Regenerate KB documents from the JSON store
4
4
  ---
5
5
 
6
- # /{{PREFIX}}:collate
6
+ # /forge:collate
7
7
 
8
8
  Read the collate workflow and follow it.
9
9
 
10
10
  ## Locate the Forge plugin
11
11
 
12
12
  ```
13
- FORGE_ROOT: !`echo "${CLAUDE_PLUGIN_ROOT}"`
13
+ FORGE_ROOT: !`echo "${CLAUDE_PLUGIN_ROOT:-$(pwd)/.forge}"`
14
14
  ```
15
15
 
16
16
  ## Execute
@@ -3,14 +3,14 @@ name: commit
3
3
  description: Stage and commit completed task artifacts
4
4
  ---
5
5
 
6
- # /{{PREFIX}}:commit
6
+ # /forge:commit
7
7
 
8
8
  Read the commit workflow and follow it.
9
9
 
10
10
  ## Locate the Forge plugin
11
11
 
12
12
  ```
13
- FORGE_ROOT: !`echo "${CLAUDE_PLUGIN_ROOT}"`
13
+ FORGE_ROOT: !`echo "${CLAUDE_PLUGIN_ROOT:-$(pwd)/.forge}"`
14
14
  ```
15
15
 
16
16
  ## Execute
@@ -11,7 +11,7 @@ commands (e.g. `paths.forgeRoot` is refreshed by `/forge:update`).
11
11
  ## Locate the Forge plugin
12
12
 
13
13
  ```
14
- FORGE_ROOT: !`echo "${CLAUDE_PLUGIN_ROOT}"`
14
+ FORGE_ROOT: !`echo "${CLAUDE_PLUGIN_ROOT:-$(pwd)/.forge}"`
15
15
  ```
16
16
 
17
17
  Read `.forge/config.json`. If it does not exist, stop and emit:
@@ -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
@@ -3,14 +3,14 @@ name: fix-bug
3
3
  description: Triage, diagnose, and fix a bug
4
4
  ---
5
5
 
6
- # /{{PREFIX}}:fix-bug
6
+ # /forge:fix-bug
7
7
 
8
8
  Read the fix-bug workflow and follow it.
9
9
 
10
10
  ## Locate the Forge plugin
11
11
 
12
12
  ```
13
- FORGE_ROOT: !`echo "${CLAUDE_PLUGIN_ROOT}"`
13
+ FORGE_ROOT: !`echo "${CLAUDE_PLUGIN_ROOT:-$(pwd)/.forge}"`
14
14
  ```
15
15
 
16
16
  ## Execute
@@ -32,7 +32,7 @@ Assess the health and currency of the project's SDLC knowledge base.
32
32
 
33
33
  First, resolve the plugin root and project root:
34
34
  ```
35
- FORGE_ROOT: !`echo "${CLAUDE_PLUGIN_ROOT}"`
35
+ FORGE_ROOT: !`echo "${CLAUDE_PLUGIN_ROOT:-$(pwd)/.forge}"`
36
36
  ```
37
37
 
38
38
  Open the run with the oracle hero + subtitle:
@@ -3,14 +3,14 @@ name: implement
3
3
  description: Execute the approved implementation plan for a task
4
4
  ---
5
5
 
6
- # /{{PREFIX}}:implement
6
+ # /forge:implement
7
7
 
8
8
  Read the implement workflow and follow it.
9
9
 
10
10
  ## Locate the Forge plugin
11
11
 
12
12
  ```
13
- FORGE_ROOT: !`echo "${CLAUDE_PLUGIN_ROOT}"`
13
+ FORGE_ROOT: !`echo "${CLAUDE_PLUGIN_ROOT:-$(pwd)/.forge}"`
14
14
  ```
15
15
 
16
16
  ## Execute