@entelligentsia/forgecli 0.15.0 → 0.19.0
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.
- package/CHANGELOG.md +66 -0
- package/dist/CHANGELOG-pi.md +55 -0
- package/dist/bin/argv.d.ts +2 -0
- package/dist/bin/argv.js +3 -1
- package/dist/bin/argv.js.map +1 -1
- package/dist/bin/config.d.ts +5 -0
- package/dist/bin/config.js +25 -4
- package/dist/bin/config.js.map +1 -1
- package/dist/bin/forge.js +12 -56
- package/dist/bin/forge.js.map +1 -1
- package/dist/bin/shared-parser.d.ts +23 -0
- package/dist/bin/shared-parser.js +12 -0
- package/dist/bin/shared-parser.js.map +1 -0
- package/dist/bin/update-cli.js +5 -0
- package/dist/bin/update-cli.js.map +1 -1
- package/dist/extensions/forgecli/approve.d.ts +4 -6
- package/dist/extensions/forgecli/approve.js +8 -73
- package/dist/extensions/forgecli/approve.js.map +1 -1
- package/dist/extensions/forgecli/audience-gate.d.ts +1 -1
- package/dist/extensions/forgecli/calibrate.d.ts +4 -1
- package/dist/extensions/forgecli/calibrate.js +4 -12
- package/dist/extensions/forgecli/calibrate.js.map +1 -1
- package/dist/extensions/forgecli/collate.d.ts +4 -6
- package/dist/extensions/forgecli/collate.js +8 -73
- package/dist/extensions/forgecli/collate.js.map +1 -1
- package/dist/extensions/forgecli/commit.d.ts +4 -6
- package/dist/extensions/forgecli/commit.js +8 -73
- package/dist/extensions/forgecli/commit.js.map +1 -1
- package/dist/extensions/forgecli/config-tui/handler.js +1 -0
- package/dist/extensions/forgecli/config-tui/handler.js.map +1 -1
- package/dist/extensions/forgecli/config-tui/screens/tier-menu.js +8 -1
- package/dist/extensions/forgecli/config-tui/screens/tier-menu.js.map +1 -1
- package/dist/extensions/forgecli/config-tui/state/init.js +1 -0
- package/dist/extensions/forgecli/config-tui/state/init.js.map +1 -1
- package/dist/extensions/forgecli/config-tui/state/model.d.ts +4 -0
- package/dist/extensions/forgecli/enhance.d.ts +4 -6
- package/dist/extensions/forgecli/enhance.js +8 -73
- package/dist/extensions/forgecli/enhance.js.map +1 -1
- package/dist/extensions/forgecli/fix-bug.d.ts +3 -0
- package/dist/extensions/forgecli/fix-bug.js +58 -46
- package/dist/extensions/forgecli/fix-bug.js.map +1 -1
- package/dist/extensions/forgecli/forge-artifact-tool.d.ts +2 -0
- package/dist/extensions/forgecli/forge-artifact-tool.js +185 -0
- package/dist/extensions/forgecli/forge-artifact-tool.js.map +1 -0
- package/dist/extensions/forgecli/forge-init/phase-descriptors.d.ts +72 -0
- package/dist/extensions/forgecli/forge-init/phase-descriptors.js +350 -0
- package/dist/extensions/forgecli/forge-init/phase-descriptors.js.map +1 -0
- package/dist/extensions/forgecli/forge-init/phase4-register.d.ts +20 -0
- package/dist/extensions/forgecli/forge-init/phase4-register.js +353 -0
- package/dist/extensions/forgecli/forge-init/phase4-register.js.map +1 -0
- package/dist/extensions/forgecli/forge-init/prompts.d.ts +10 -0
- package/dist/extensions/forgecli/forge-init/prompts.js +91 -0
- package/dist/extensions/forgecli/forge-init/prompts.js.map +1 -0
- package/dist/extensions/forgecli/forge-init/verifiers.d.ts +20 -0
- package/dist/extensions/forgecli/forge-init/verifiers.js +81 -0
- package/dist/extensions/forgecli/forge-init/verifiers.js.map +1 -0
- package/dist/extensions/forgecli/forge-init.js +106 -748
- package/dist/extensions/forgecli/forge-init.js.map +1 -1
- package/dist/extensions/forgecli/forge-root.d.ts +0 -1
- package/dist/extensions/forgecli/forge-root.js +1 -11
- package/dist/extensions/forgecli/forge-root.js.map +1 -1
- package/dist/extensions/forgecli/forge-subagent.d.ts +11 -1
- package/dist/extensions/forgecli/forge-subagent.js +6 -1
- package/dist/extensions/forgecli/forge-subagent.js.map +1 -1
- package/dist/extensions/forgecli/forge-tools.d.ts +27 -7
- package/dist/extensions/forgecli/forge-tools.js +109 -70
- package/dist/extensions/forgecli/forge-tools.js.map +1 -1
- package/dist/extensions/forgecli/forge-update-command.js +5 -0
- package/dist/extensions/forgecli/forge-update-command.js.map +1 -1
- package/dist/extensions/forgecli/friction-emit.d.ts +4 -2
- package/dist/extensions/forgecli/friction-emit.js +13 -12
- package/dist/extensions/forgecli/friction-emit.js.map +1 -1
- package/dist/extensions/forgecli/health-check.js +1 -1
- package/dist/extensions/forgecli/health-check.js.map +1 -1
- package/dist/extensions/forgecli/hook-dispatcher.d.ts +1 -0
- package/dist/extensions/forgecli/hook-dispatcher.js +5 -0
- package/dist/extensions/forgecli/hook-dispatcher.js.map +1 -1
- package/dist/extensions/forgecli/hooks/post-init-hook.js +1 -1
- package/dist/extensions/forgecli/hooks/post-sprint-hook.js +1 -1
- package/dist/extensions/forgecli/hooks/write-guard.js +1 -1
- package/dist/extensions/forgecli/hooks/write-guard.js.map +1 -1
- package/dist/extensions/forgecli/implement.d.ts +4 -6
- package/dist/extensions/forgecli/implement.js +8 -73
- package/dist/extensions/forgecli/implement.js.map +1 -1
- package/dist/extensions/forgecli/index.js +15 -38
- package/dist/extensions/forgecli/index.js.map +1 -1
- package/dist/extensions/forgecli/lib/catalog-helpers.d.ts +13 -0
- package/dist/extensions/forgecli/lib/catalog-helpers.js +51 -0
- package/dist/extensions/forgecli/lib/catalog-helpers.js.map +1 -0
- package/dist/extensions/forgecli/lib/catalog-loader.d.ts +46 -0
- package/dist/extensions/forgecli/lib/catalog-loader.js +176 -0
- package/dist/extensions/forgecli/lib/catalog-loader.js.map +1 -0
- package/dist/extensions/forgecli/lib/catalog-types.d.ts +16 -0
- package/dist/extensions/forgecli/lib/catalog-types.js +161 -0
- package/dist/extensions/forgecli/lib/catalog-types.js.map +1 -0
- package/dist/extensions/forgecli/lib/exec-helpers.d.ts +25 -0
- package/dist/extensions/forgecli/lib/exec-helpers.js +52 -0
- package/dist/extensions/forgecli/lib/exec-helpers.js.map +1 -0
- package/dist/extensions/forgecli/lib/forge-config.d.ts +20 -0
- package/dist/extensions/forgecli/lib/forge-config.js +43 -0
- package/dist/extensions/forgecli/lib/forge-config.js.map +1 -0
- package/dist/extensions/forgecli/lib/frontmatter-parser.d.ts +13 -0
- package/dist/extensions/forgecli/lib/frontmatter-parser.js +56 -0
- package/dist/extensions/forgecli/lib/frontmatter-parser.js.map +1 -0
- package/dist/extensions/forgecli/lib/manifest-checker.d.ts +22 -0
- package/dist/extensions/forgecli/lib/manifest-checker.js +64 -0
- package/dist/extensions/forgecli/lib/manifest-checker.js.map +1 -0
- package/dist/extensions/forgecli/lib/orchestrator-preflight.d.ts +46 -0
- package/dist/extensions/forgecli/lib/orchestrator-preflight.js +64 -0
- package/dist/extensions/forgecli/lib/orchestrator-preflight.js.map +1 -0
- package/dist/extensions/forgecli/lib/orchestrator-types.d.ts +20 -0
- package/dist/extensions/forgecli/lib/orchestrator-types.js +14 -0
- package/dist/extensions/forgecli/lib/orchestrator-types.js.map +1 -0
- package/dist/extensions/forgecli/lib/parsers.d.ts +25 -0
- package/dist/extensions/forgecli/lib/parsers.js +164 -0
- package/dist/extensions/forgecli/lib/parsers.js.map +1 -0
- package/dist/extensions/forgecli/lib/shared-fs-utils.d.ts +12 -0
- package/dist/extensions/forgecli/lib/shared-fs-utils.js +37 -0
- package/dist/extensions/forgecli/lib/shared-fs-utils.js.map +1 -0
- package/dist/extensions/forgecli/lib/spawn-store-cli.d.ts +44 -0
- package/dist/extensions/forgecli/lib/spawn-store-cli.js +93 -0
- package/dist/extensions/forgecli/lib/spawn-store-cli.js.map +1 -0
- package/dist/extensions/forgecli/lib/state-helpers.d.ts +33 -0
- package/dist/extensions/forgecli/lib/state-helpers.js +69 -0
- package/dist/extensions/forgecli/lib/state-helpers.js.map +1 -0
- package/dist/extensions/forgecli/lib/store-cli-timeouts.d.ts +4 -0
- package/dist/extensions/forgecli/lib/store-cli-timeouts.js +10 -0
- package/dist/extensions/forgecli/lib/store-cli-timeouts.js.map +1 -0
- package/dist/extensions/forgecli/lib/versions.d.ts +56 -0
- package/dist/extensions/forgecli/lib/versions.js +116 -0
- package/dist/extensions/forgecli/lib/versions.js.map +1 -0
- package/dist/extensions/forgecli/loaders/persona-skill-loader.js +2 -2
- package/dist/extensions/forgecli/loaders/persona-skill-loader.js.map +1 -1
- package/dist/extensions/forgecli/migration-engine.d.ts +6 -0
- package/dist/extensions/forgecli/migration-engine.js +59 -39
- package/dist/extensions/forgecli/migration-engine.js.map +1 -1
- package/dist/extensions/forgecli/parsers/persona-skill-loader.d.ts +45 -0
- package/dist/extensions/forgecli/parsers/persona-skill-loader.js +201 -0
- package/dist/extensions/forgecli/parsers/persona-skill-loader.js.map +1 -0
- package/dist/extensions/forgecli/parsers/workflow-loader.d.ts +41 -0
- package/dist/extensions/forgecli/parsers/workflow-loader.js +87 -0
- package/dist/extensions/forgecli/parsers/workflow-loader.js.map +1 -0
- package/dist/extensions/forgecli/plan.d.ts +4 -6
- package/dist/extensions/forgecli/plan.js +9 -73
- package/dist/extensions/forgecli/plan.js.map +1 -1
- package/dist/extensions/forgecli/retrospective.d.ts +2 -1
- package/dist/extensions/forgecli/retrospective.js +6 -36
- package/dist/extensions/forgecli/retrospective.js.map +1 -1
- package/dist/extensions/forgecli/review-code.d.ts +4 -6
- package/dist/extensions/forgecli/review-code.js +8 -73
- package/dist/extensions/forgecli/review-code.js.map +1 -1
- package/dist/extensions/forgecli/review-plan.d.ts +4 -6
- package/dist/extensions/forgecli/review-plan.js +8 -73
- package/dist/extensions/forgecli/review-plan.js.map +1 -1
- package/dist/extensions/forgecli/run-sprint.d.ts +2 -0
- package/dist/extensions/forgecli/run-sprint.js +53 -52
- package/dist/extensions/forgecli/run-sprint.js.map +1 -1
- package/dist/extensions/forgecli/run-task.d.ts +3 -0
- package/dist/extensions/forgecli/run-task.js +39 -68
- package/dist/extensions/forgecli/run-task.js.map +1 -1
- package/dist/extensions/forgecli/skill-curation-flag.js +5 -5
- package/dist/extensions/forgecli/skill-curation-flag.js.map +1 -1
- package/dist/extensions/forgecli/skill-retriever.js +5 -5
- package/dist/extensions/forgecli/skill-retriever.js.map +1 -1
- package/dist/extensions/forgecli/skill-usage-tracker.js +5 -5
- package/dist/extensions/forgecli/skill-usage-tracker.js.map +1 -1
- package/dist/extensions/forgecli/store-error-remediation.d.ts +65 -0
- package/dist/extensions/forgecli/store-error-remediation.js +299 -0
- package/dist/extensions/forgecli/store-error-remediation.js.map +1 -0
- package/dist/extensions/forgecli/store-resolver.js +3 -12
- package/dist/extensions/forgecli/store-resolver.js.map +1 -1
- package/dist/extensions/forgecli/store-validator.js +6 -11
- package/dist/extensions/forgecli/store-validator.js.map +1 -1
- package/dist/extensions/forgecli/subagent/agents.d.ts +4 -0
- package/dist/extensions/forgecli/subagent/agents.js +5 -8
- package/dist/extensions/forgecli/subagent/agents.js.map +1 -1
- package/dist/extensions/forgecli/transition-guard.js +20 -61
- package/dist/extensions/forgecli/transition-guard.js.map +1 -1
- package/dist/extensions/forgecli/validate.d.ts +4 -6
- package/dist/extensions/forgecli/validate.js +8 -73
- package/dist/extensions/forgecli/validate.js.map +1 -1
- package/dist/extensions/forgecli/wf-engine/engine.js +2 -2
- package/dist/extensions/forgecli/wf-engine/engine.js.map +1 -1
- package/dist/extensions/forgecli/wf-engine/loader.d.ts +1 -1
- package/dist/extensions/forgecli/wf-engine/loader.js +1 -1
- package/dist/extensions/forgecli/wf-engine/loader.js.map +1 -1
- package/dist/forge-payload/.base-pack/skills/architect-skills.md +1 -0
- package/dist/forge-payload/.base-pack/skills/bug-fixer-skills.md +1 -0
- package/dist/forge-payload/.base-pack/skills/collator-skills.md +1 -0
- package/dist/forge-payload/.base-pack/skills/engineer-skills.md +1 -0
- package/dist/forge-payload/.base-pack/skills/generic-skills.md +1 -0
- package/dist/forge-payload/.base-pack/skills/qa-engineer-skills.md +1 -0
- package/dist/forge-payload/.base-pack/skills/supervisor-skills.md +1 -0
- package/dist/forge-payload/.base-pack/workflows/_fragments/generation-instructions.md +81 -0
- package/dist/forge-payload/.base-pack/workflows/_fragments/iron-laws.md +72 -0
- package/dist/forge-payload/.base-pack/workflows/_fragments/store-cli-verbs.md +11 -1
- package/dist/forge-payload/.base-pack/workflows/_fragments/store-write-verification.md +11 -0
- package/dist/forge-payload/.base-pack/workflows/architect_approve.md +11 -12
- package/dist/forge-payload/.base-pack/workflows/architect_review_sprint_completion.md +4 -1
- package/dist/forge-payload/.base-pack/workflows/architect_sprint_intake.md +10 -1
- package/dist/forge-payload/.base-pack/workflows/architect_sprint_plan.md +8 -1
- package/dist/forge-payload/.base-pack/workflows/collator_agent.md +18 -1
- package/dist/forge-payload/.base-pack/workflows/commit_task.md +5 -10
- package/dist/forge-payload/.base-pack/workflows/enhance.md +7 -0
- package/dist/forge-payload/.base-pack/workflows/fix_bug.md +9 -2
- package/dist/forge-payload/.base-pack/workflows/implement_plan.md +22 -35
- package/dist/forge-payload/.base-pack/workflows/migrate_structural.md +9 -0
- package/dist/forge-payload/.base-pack/workflows/orchestrate_task.md +4 -0
- package/dist/forge-payload/.base-pack/workflows/plan_task.md +17 -21
- package/dist/forge-payload/.base-pack/workflows/review_code.md +13 -20
- package/dist/forge-payload/.base-pack/workflows/review_plan.md +10 -21
- package/dist/forge-payload/.base-pack/workflows/sprint_retrospective.md +10 -1
- package/dist/forge-payload/.base-pack/workflows/update_implementation.md +5 -10
- package/dist/forge-payload/.base-pack/workflows/update_plan.md +5 -10
- package/dist/forge-payload/.base-pack/workflows/validate_task.md +11 -12
- package/dist/forge-payload/.claude-plugin/plugin.json +5 -5
- package/dist/forge-payload/.schemas/_defs/phaseSummary.schema.json +18 -0
- package/dist/forge-payload/.schemas/bug.schema.json +8 -24
- package/dist/forge-payload/.schemas/config.schema.json +165 -33
- package/dist/forge-payload/.schemas/enum-catalog.json +71 -0
- package/dist/forge-payload/.schemas/migrations.json +371 -149
- package/dist/forge-payload/.schemas/task.schema.json +6 -21
- package/dist/forge-payload/.schemas/transitions/bug.json +31 -0
- package/dist/forge-payload/.schemas/transitions/sprint.json +46 -0
- package/dist/forge-payload/.schemas/transitions/task.json +109 -0
- package/dist/forge-payload/commands/health.md +3 -3
- package/dist/forge-payload/hooks/check-update.cjs +255 -0
- package/dist/forge-payload/hooks/forge-permissions.cjs +171 -0
- package/dist/forge-payload/hooks/forge-permissions.js +6 -0
- package/dist/forge-payload/hooks/post-init.cjs +120 -0
- package/dist/forge-payload/hooks/post-sprint.cjs +108 -0
- package/dist/forge-payload/hooks/triage-error.cjs +104 -0
- package/dist/forge-payload/hooks/triage-error.js +6 -0
- package/dist/forge-payload/hooks/validate-write.cjs +250 -0
- package/dist/forge-payload/hooks/validate-write.js +25 -11
- package/dist/forge-payload/integrity.json +13 -7
- package/dist/forge-payload/meta/workflows/_fragments/generation-instructions.md +81 -0
- package/dist/forge-payload/meta/workflows/_fragments/iron-laws.md +72 -0
- package/dist/forge-payload/meta/workflows/_fragments/store-cli-verbs.md +11 -1
- package/dist/forge-payload/meta/workflows/_fragments/store-write-verification.md +11 -0
- package/dist/forge-payload/meta/workflows/meta-approve.md +9 -11
- package/dist/forge-payload/meta/workflows/meta-collate.md +16 -0
- package/dist/forge-payload/meta/workflows/meta-commit.md +3 -9
- package/dist/forge-payload/meta/workflows/meta-enhance.md +16 -1
- package/dist/forge-payload/meta/workflows/meta-fix-bug.md +8 -2
- package/dist/forge-payload/meta/workflows/meta-implement.md +20 -35
- package/dist/forge-payload/meta/workflows/meta-migrate.md +18 -0
- package/dist/forge-payload/meta/workflows/meta-orchestrate.md +2 -0
- package/dist/forge-payload/meta/workflows/meta-plan-task.md +15 -21
- package/dist/forge-payload/meta/workflows/meta-quiz-agent.md +4 -1
- package/dist/forge-payload/meta/workflows/meta-retrospective.md +8 -0
- package/dist/forge-payload/meta/workflows/meta-review-implementation.md +11 -19
- package/dist/forge-payload/meta/workflows/meta-review-plan.md +10 -16
- package/dist/forge-payload/meta/workflows/meta-review-sprint-completion.md +3 -0
- package/dist/forge-payload/meta/workflows/meta-sprint-intake.md +8 -0
- package/dist/forge-payload/meta/workflows/meta-sprint-plan.md +5 -0
- package/dist/forge-payload/meta/workflows/meta-update-implementation.md +3 -9
- package/dist/forge-payload/meta/workflows/meta-update-plan.md +3 -9
- package/dist/forge-payload/meta/workflows/meta-validate.md +9 -11
- package/dist/forge-payload/schemas/structure-manifest.json +8 -6
- package/dist/forge-payload/tools/build-context-pack.cjs +3 -2
- package/dist/forge-payload/tools/friction-emit.cjs +2 -1
- package/dist/forge-payload/tools/lib/frontmatter.cjs +62 -0
- package/dist/forge-payload/tools/lib/fsutil.cjs +61 -0
- package/dist/forge-payload/tools/lib/json-io.cjs +43 -0
- package/dist/forge-payload/tools/lib/schema-loader.cjs +139 -0
- package/dist/forge-payload/tools/lib/slug.cjs +39 -0
- package/dist/forge-payload/tools/lib/store-facade.cjs +6 -5
- package/dist/forge-payload/tools/preflight-gate.cjs +55 -7
- package/dist/forge-payload/tools/seed-store.cjs +1 -13
- package/dist/forge-payload/tools/store-cli.cjs +55 -108
- package/dist/forge-payload/tools/store.cjs +26 -37
- package/dist/forge-payload/tools/substitute-placeholders.cjs +74 -35
- package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.d.ts +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.js +23 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/agent.d.ts +2 -2
- package/node_modules/@earendil-works/pi-agent-core/dist/agent.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/agent.js +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/agent.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/agent-harness.d.ts +2 -2
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/agent-harness.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/agent-harness.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/branch-summarization.d.ts +5 -5
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/branch-summarization.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/branch-summarization.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/compaction.d.ts +4 -4
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/compaction.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/compaction.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/utils.d.ts +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/utils.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/utils.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/env/nodejs.d.ts +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/env/nodejs.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/env/nodejs.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/execution-env.d.ts +4 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/execution-env.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/execution-env.js +3 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/execution-env.js.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/messages.d.ts +2 -2
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/messages.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/messages.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/prompt-templates.d.ts +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/prompt-templates.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/prompt-templates.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl-repo.d.ts +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl-repo.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl-repo.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl-storage.d.ts +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl-storage.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl-storage.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/memory-repo.d.ts +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/memory-repo.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/memory-repo.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/memory-storage.d.ts +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/memory-storage.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/memory-storage.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo/jsonl.d.ts +20 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo/jsonl.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo/jsonl.js +92 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo/jsonl.js.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo/memory.d.ts +18 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo/memory.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo/memory.js +42 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo/memory.js.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo/shared.d.ts +10 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo/shared.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo/shared.js +31 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo/shared.js.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo-utils.d.ts +2 -2
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo-utils.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo-utils.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/session.d.ts +2 -2
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/session.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/session.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/storage/jsonl.d.ts +30 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/storage/jsonl.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/storage/jsonl.js +170 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/storage/jsonl.js.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/storage/memory.d.ts +26 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/storage/memory.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/storage/memory.js +90 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/storage/memory.js.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/skills.d.ts +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/skills.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/skills.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/system-prompt.d.ts +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/system-prompt.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/system-prompt.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/types.d.ts +10 -22
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/types.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/types.js +17 -23
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/types.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/utils/shell-output.d.ts +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/utils/shell-output.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/utils/shell-output.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/index.d.ts +19 -19
- package/node_modules/@earendil-works/pi-agent-core/dist/index.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/index.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/node.d.ts +2 -2
- package/node_modules/@earendil-works/pi-agent-core/dist/node.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/node.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/package.json +9 -10
- package/node_modules/@earendil-works/pi-ai/dist/api-registry.d.ts +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api-registry.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api-registry.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/bedrock-provider.d.ts +2 -2
- package/node_modules/@earendil-works/pi-ai/dist/bedrock-provider.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/bedrock-provider.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/cli.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/cli.js +14 -0
- package/node_modules/@earendil-works/pi-ai/dist/cli.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/env-api-keys.d.ts +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/env-api-keys.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/env-api-keys.js +10 -2
- package/node_modules/@earendil-works/pi-ai/dist/env-api-keys.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/image-models.d.ts +2 -2
- package/node_modules/@earendil-works/pi-ai/dist/image-models.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/image-models.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/images-api-registry.d.ts +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/images-api-registry.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/images-api-registry.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/images.d.ts +2 -2
- package/node_modules/@earendil-works/pi-ai/dist/images.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/images.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/index.d.ts +29 -29
- package/node_modules/@earendil-works/pi-ai/dist/index.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/index.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/models.d.ts +2 -2
- package/node_modules/@earendil-works/pi-ai/dist/models.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/models.generated.d.ts +317 -509
- package/node_modules/@earendil-works/pi-ai/dist/models.generated.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/models.generated.js +400 -620
- package/node_modules/@earendil-works/pi-ai/dist/models.generated.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/models.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/oauth.d.ts +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/oauth.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/oauth.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.d.ts +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.js +5 -2
- package/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/anthropic.d.ts +23 -6
- package/node_modules/@earendil-works/pi-ai/dist/providers/anthropic.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/anthropic.js +11 -23
- package/node_modules/@earendil-works/pi-ai/dist/providers/anthropic.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/azure-openai-responses.d.ts +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/azure-openai-responses.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/azure-openai-responses.js +2 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/azure-openai-responses.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare.d.ts +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/faux.d.ts +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/faux.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/faux.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/github-copilot-headers.d.ts +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/github-copilot-headers.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/github-copilot-headers.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/google-shared.d.ts +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/google-shared.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/google-shared.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/google-vertex.d.ts +2 -2
- package/node_modules/@earendil-works/pi-ai/dist/providers/google-vertex.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/google-vertex.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/google.d.ts +2 -2
- package/node_modules/@earendil-works/pi-ai/dist/providers/google.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/google.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/images/openrouter.d.ts +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/images/openrouter.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/images/openrouter.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/images/register-builtins.d.ts +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/images/register-builtins.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/images/register-builtins.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/mistral.d.ts +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/mistral.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/mistral.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex-responses.d.ts +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex-responses.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex-responses.js +12 -3
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex-responses.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-completions.d.ts +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-completions.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-completions.js +2 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-completions.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-prompt-cache.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-prompt-cache.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-prompt-cache.js +10 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-prompt-cache.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-responses-shared.d.ts +2 -2
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-responses-shared.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-responses-shared.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-responses.d.ts +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-responses.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-responses.js +2 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-responses.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/register-builtins.d.ts +10 -10
- package/node_modules/@earendil-works/pi-ai/dist/providers/register-builtins.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/register-builtins.js +13 -2
- package/node_modules/@earendil-works/pi-ai/dist/providers/register-builtins.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/simple-options.d.ts +3 -3
- package/node_modules/@earendil-works/pi-ai/dist/providers/simple-options.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/simple-options.js +6 -11
- package/node_modules/@earendil-works/pi-ai/dist/providers/simple-options.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/transform-messages.d.ts +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/transform-messages.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/transform-messages.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/stream.d.ts +3 -3
- package/node_modules/@earendil-works/pi-ai/dist/stream.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/stream.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/types.d.ts +13 -3
- package/node_modules/@earendil-works/pi-ai/dist/types.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/types.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/event-stream.d.ts +3 -3
- package/node_modules/@earendil-works/pi-ai/dist/utils/event-stream.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/event-stream.js +2 -2
- package/node_modules/@earendil-works/pi-ai/dist/utils/event-stream.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/anthropic.d.ts +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/anthropic.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/anthropic.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/device-code.d.ts +19 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/device-code.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/device-code.js +55 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/device-code.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/github-copilot.d.ts +3 -3
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/github-copilot.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/github-copilot.js +45 -69
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/github-copilot.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/index.d.ts +6 -5
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/index.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/index.js +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/index.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/openai-codex.d.ts +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/openai-codex.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/openai-codex.js +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/openai-codex.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/types.d.ts +9 -2
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/types.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/types.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/overflow.d.ts +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/overflow.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/overflow.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/validation.d.ts +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/validation.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/validation.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/package.json +15 -16
- package/node_modules/@earendil-works/pi-coding-agent/CHANGELOG.md +55 -0
- package/node_modules/@earendil-works/pi-coding-agent/README.md +6 -4
- package/node_modules/@earendil-works/pi-coding-agent/dist/bun/cli.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/bun/cli.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/args.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/args.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/args.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/config-selector.d.ts +2 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/config-selector.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/config-selector.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/file-processor.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/file-processor.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/initial-message.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/initial-message.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/initial-message.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/list-models.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/list-models.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/list-models.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/session-picker.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/session-picker.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/session-picker.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli.js +4 -10
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/config.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/config.js +13 -14
- package/node_modules/@earendil-works/pi-coding-agent/dist/config.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session-runtime.d.ts +9 -9
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session-runtime.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session-runtime.js +6 -6
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session-runtime.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session-services.d.ts +7 -7
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session-services.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session-services.js +3 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session-services.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session.d.ts +23 -21
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session.js +99 -137
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/auth-guidance.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/auth-guidance.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/auth-storage.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/auth-storage.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/auth-storage.js +3 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/auth-storage.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/bash-executor.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/bash-executor.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/bash-executor.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/compaction/branch-summarization.d.ts +3 -3
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/compaction/branch-summarization.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/compaction/branch-summarization.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/compaction/compaction.d.ts +2 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/compaction/compaction.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/compaction/compaction.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/compaction/index.d.ts +3 -3
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/compaction/index.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/compaction/index.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/exec.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/exec.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/index.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/index.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/index.js +8 -6
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/index.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/template.js +6 -3
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/tool-renderer.d.ts +2 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/tool-renderer.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/tool-renderer.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/index.d.ts +8 -8
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/index.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/index.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/loader.d.ts +2 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/loader.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/loader.js +12 -29
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/loader.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/runner.d.ts +6 -6
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/runner.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/runner.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/types.d.ts +19 -19
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/types.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/types.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/wrapper.d.ts +2 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/wrapper.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/wrapper.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/footer-data-provider.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/footer-data-provider.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/http-dispatcher.d.ts +21 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/http-dispatcher.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/http-dispatcher.js +48 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/http-dispatcher.js.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/index.d.ts +8 -8
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/index.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/index.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/keybindings.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/keybindings.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-registry.d.ts +4 -4
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-registry.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-registry.js +7 -3
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-registry.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-resolver.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-resolver.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-resolver.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/package-manager.d.ts +2 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/package-manager.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/package-manager.js +48 -32
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/package-manager.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/prompt-templates.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/prompt-templates.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/prompt-templates.js +6 -20
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/prompt-templates.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/resolve-config-value.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/resolve-config-value.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/resource-loader.d.ts +9 -9
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/resource-loader.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/resource-loader.js +38 -31
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/resource-loader.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/sdk.d.ts +13 -13
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/sdk.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/sdk.js +9 -4
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/sdk.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/session-manager.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/session-manager.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/session-manager.js +32 -24
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/session-manager.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/settings-manager.d.ts +3 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/settings-manager.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/settings-manager.js +26 -13
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/settings-manager.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/skills.d.ts +2 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/skills.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/skills.js +8 -22
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/skills.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/slash-commands.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/slash-commands.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/slash-commands.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/source-info.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/source-info.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/source-info.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/system-prompt.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/system-prompt.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/system-prompt.js +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/system-prompt.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/telemetry.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/telemetry.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/telemetry.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/bash.d.ts +2 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/bash.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/bash.js +9 -3
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/bash.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/edit-diff.d.ts +3 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/edit-diff.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/edit-diff.js +8 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/edit-diff.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/edit.d.ts +5 -3
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/edit.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/edit.js +3 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/edit.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/find.d.ts +2 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/find.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/find.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/grep.d.ts +2 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/grep.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/grep.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/index.d.ts +17 -17
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/index.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/index.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/ls.d.ts +2 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/ls.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/ls.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/output-accumulator.d.ts +3 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/output-accumulator.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/output-accumulator.js +9 -3
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/output-accumulator.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/path-utils.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/path-utils.js +3 -22
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/path-utils.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/read.d.ts +2 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/read.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/read.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/render-utils.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/render-utils.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/tool-definition-wrapper.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/tool-definition-wrapper.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/truncate.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/truncate.js +12 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/truncate.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/write.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/write.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/write.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/index.d.ts +30 -29
- package/node_modules/@earendil-works/pi-coding-agent/dist/index.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/index.js +2 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/index.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/main.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/main.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/main.js +7 -6
- package/node_modules/@earendil-works/pi-coding-agent/dist/main.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/migrations.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/migrations.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/index.d.ts +5 -5
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/index.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/index.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/armin.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/armin.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/assistant-message.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/bash-execution.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/bash-execution.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/bash-execution.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/bordered-loader.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/bordered-loader.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/branch-summary-message.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/branch-summary-message.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/compaction-summary-message.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/compaction-summary-message.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/config-selector.d.ts +2 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/config-selector.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/config-selector.js +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/config-selector.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/countdown-timer.d.ts +2 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/countdown-timer.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/countdown-timer.js +2 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/countdown-timer.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/custom-editor.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/custom-editor.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/custom-editor.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/custom-message.d.ts +2 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/custom-message.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/daxnuts.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/daxnuts.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/diff.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/diff.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/dynamic-border.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/dynamic-border.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/earendil-announcement.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/earendil-announcement.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/extension-editor.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/extension-editor.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/extension-editor.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/extension-input.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/extension-input.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/extension-selector.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/extension-selector.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/footer.d.ts +4 -3
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/footer.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/footer.js +16 -7
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/footer.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/index.d.ts +31 -31
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/index.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/index.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/keybinding-hints.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/login-dialog.d.ts +10 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/login-dialog.js +31 -6
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/login-dialog.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/model-selector.d.ts +2 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/model-selector.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/oauth-selector.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/oauth-selector.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/session-selector-search.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/session-selector-search.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/session-selector-search.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/session-selector.d.ts +3 -3
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/session-selector.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/settings-selector.d.ts +3 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/settings-selector.js +15 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/settings-selector.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/show-images-selector.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/show-images-selector.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/skill-invocation-message.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/skill-invocation-message.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/theme-selector.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/theme-selector.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/thinking-selector.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/tool-execution.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/tool-execution.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/tree-selector.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/tree-selector.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/tree-selector.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/user-message-selector.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/user-message.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/user-message.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts +4 -3
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/interactive-mode.js +37 -14
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/theme/theme.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/theme/theme.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/theme/theme.js +37 -28
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/theme/theme.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/print-mode.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/print-mode.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/print-mode.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-client.d.ts +5 -5
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-client.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-client.js +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-client.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-mode.d.ts +2 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-mode.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-types.d.ts +4 -4
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-types.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-types.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/package-manager-cli.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/package-manager-cli.js +40 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/package-manager-cli.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/changelog.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/changelog.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/changelog.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/clipboard-image.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/clipboard-image.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/clipboard.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/clipboard.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/exif-orientation.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/exif-orientation.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/exif-orientation.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/image-convert.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/image-convert.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/image-resize.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/image-resize.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/paths.d.ts +16 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/paths.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/paths.js +49 -7
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/paths.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/shell.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/shell.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/syntax-highlight.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/syntax-highlight.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/tools-manager.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/tools-manager.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/version-check.d.ts +2 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/version-check.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/version-check.js +9 -4
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/version-check.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/windows-self-update.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/windows-self-update.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/docs/custom-provider.md +44 -12
- package/node_modules/@earendil-works/pi-coding-agent/docs/index.md +6 -4
- package/node_modules/@earendil-works/pi-coding-agent/docs/models.md +8 -2
- package/node_modules/@earendil-works/pi-coding-agent/docs/packages.md +5 -4
- package/node_modules/@earendil-works/pi-coding-agent/docs/quickstart.md +3 -1
- package/node_modules/@earendil-works/pi-coding-agent/docs/sdk.md +2 -0
- package/node_modules/@earendil-works/pi-coding-agent/docs/termux.md +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/docs/usage.md +2 -2
- package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/custom-provider-anthropic/package.json +2 -2
- package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/custom-provider-gitlab-duo/test.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/doom-overlay/doom-component.ts +2 -2
- package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/doom-overlay/index.ts +3 -3
- package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/overlay-qa-tests.ts +97 -66
- package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/overlay-test.ts +7 -4
- package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/plan-mode/index.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/sandbox/package.json +2 -2
- package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/subagent/index.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/with-deps/package.json +3 -3
- package/node_modules/@earendil-works/pi-coding-agent/npm-shrinkwrap.json +1425 -0
- package/node_modules/@earendil-works/pi-coding-agent/package.json +32 -31
- package/node_modules/@earendil-works/pi-tui/dist/autocomplete.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/autocomplete.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/box.d.ts +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/box.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/box.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/cancellable-loader.d.ts +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/cancellable-loader.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/cancellable-loader.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/editor.d.ts +3 -3
- package/node_modules/@earendil-works/pi-tui/dist/components/editor.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/editor.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/image.d.ts +2 -2
- package/node_modules/@earendil-works/pi-tui/dist/components/image.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/image.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/input.d.ts +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/input.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/input.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/loader.d.ts +5 -5
- package/node_modules/@earendil-works/pi-tui/dist/components/loader.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/loader.js +4 -4
- package/node_modules/@earendil-works/pi-tui/dist/components/loader.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/markdown.d.ts +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/markdown.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/markdown.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/select-list.d.ts +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/select-list.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/select-list.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/settings-list.d.ts +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/settings-list.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/settings-list.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/spacer.d.ts +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/spacer.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/spacer.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/text.d.ts +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/text.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/text.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/truncated-text.d.ts +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/truncated-text.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/truncated-text.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/editor-component.d.ts +2 -2
- package/node_modules/@earendil-works/pi-tui/dist/editor-component.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/editor-component.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/index.d.ts +22 -22
- package/node_modules/@earendil-works/pi-tui/dist/index.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/index.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/keybindings.d.ts +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/keybindings.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/keybindings.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/terminal.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/terminal.js +25 -15
- package/node_modules/@earendil-works/pi-tui/dist/terminal.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/tui.d.ts +2 -2
- package/node_modules/@earendil-works/pi-tui/dist/tui.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/tui.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/native/win32/prebuilds/win32-arm64/win32-console-mode.node +0 -0
- package/node_modules/@earendil-works/pi-tui/native/win32/prebuilds/win32-x64/win32-console-mode.node +0 -0
- package/node_modules/@earendil-works/pi-tui/package.json +8 -11
- package/package.json +13 -8
- package/dist/bin/forgecli.d.ts +0 -2
- package/dist/bin/forgecli.js +0 -6
- package/dist/bin/forgecli.js.map +0 -1
- package/node_modules/koffi/CHANGELOG.md +0 -1093
- package/node_modules/koffi/LICENSE.txt +0 -22
- package/node_modules/koffi/README.md +0 -43
- package/node_modules/koffi/build/koffi/darwin_arm64/koffi.node +0 -0
- package/node_modules/koffi/build/koffi/darwin_x64/koffi.node +0 -0
- package/node_modules/koffi/build/koffi/freebsd_arm64/koffi.node +0 -0
- package/node_modules/koffi/build/koffi/freebsd_ia32/koffi.node +0 -0
- package/node_modules/koffi/build/koffi/freebsd_x64/koffi.node +0 -0
- package/node_modules/koffi/build/koffi/linux_arm64/koffi.node +0 -0
- package/node_modules/koffi/build/koffi/linux_armhf/koffi.node +0 -0
- package/node_modules/koffi/build/koffi/linux_ia32/koffi.node +0 -0
- package/node_modules/koffi/build/koffi/linux_loong64/koffi.node +0 -0
- package/node_modules/koffi/build/koffi/linux_riscv64d/koffi.node +0 -0
- package/node_modules/koffi/build/koffi/linux_x64/koffi.node +0 -0
- package/node_modules/koffi/build/koffi/musl_arm64/koffi.node +0 -0
- package/node_modules/koffi/build/koffi/musl_x64/koffi.node +0 -0
- package/node_modules/koffi/build/koffi/openbsd_ia32/koffi.node +0 -0
- package/node_modules/koffi/build/koffi/openbsd_x64/koffi.node +0 -0
- package/node_modules/koffi/build/koffi/win32_arm64/koffi.exp +0 -0
- package/node_modules/koffi/build/koffi/win32_arm64/koffi.lib +0 -0
- package/node_modules/koffi/build/koffi/win32_arm64/koffi.node +0 -0
- package/node_modules/koffi/build/koffi/win32_ia32/koffi.exp +0 -0
- package/node_modules/koffi/build/koffi/win32_ia32/koffi.lib +0 -0
- package/node_modules/koffi/build/koffi/win32_ia32/koffi.node +0 -0
- package/node_modules/koffi/build/koffi/win32_x64/koffi.exp +0 -0
- package/node_modules/koffi/build/koffi/win32_x64/koffi.lib +0 -0
- package/node_modules/koffi/build/koffi/win32_x64/koffi.node +0 -0
- package/node_modules/koffi/doc/benchmarks.md +0 -126
- package/node_modules/koffi/doc/callbacks.md +0 -210
- package/node_modules/koffi/doc/contribute.md +0 -148
- package/node_modules/koffi/doc/functions.md +0 -250
- package/node_modules/koffi/doc/index.md +0 -61
- package/node_modules/koffi/doc/input.md +0 -471
- package/node_modules/koffi/doc/migration.md +0 -159
- package/node_modules/koffi/doc/misc.md +0 -180
- package/node_modules/koffi/doc/output.md +0 -305
- package/node_modules/koffi/doc/packaging.md +0 -88
- package/node_modules/koffi/doc/platforms.md +0 -36
- package/node_modules/koffi/doc/pointers.md +0 -328
- package/node_modules/koffi/doc/start.md +0 -118
- package/node_modules/koffi/doc/unions.md +0 -186
- package/node_modules/koffi/doc/variables.md +0 -102
- package/node_modules/koffi/index.d.ts +0 -288
- package/node_modules/koffi/index.js +0 -634
- package/node_modules/koffi/indirect.js +0 -533
- package/node_modules/koffi/lib/native/base/base.cc +0 -11015
- package/node_modules/koffi/lib/native/base/base.hh +0 -6003
- package/node_modules/koffi/lib/native/base/crc.inc +0 -2214
- package/node_modules/koffi/lib/native/base/crc_gen.py +0 -72
- package/node_modules/koffi/lib/native/base/mimetypes.inc +0 -1248
- package/node_modules/koffi/lib/native/base/mimetypes_gen.py +0 -58
- package/node_modules/koffi/lib/native/base/tower.cc +0 -821
- package/node_modules/koffi/lib/native/base/tower.hh +0 -81
- package/node_modules/koffi/lib/native/base/unicode.inc +0 -408
- package/node_modules/koffi/lib/native/base/unicode_gen.py +0 -152
- package/node_modules/koffi/package.json +0 -38
- package/node_modules/koffi/src/cnoke/LICENSE.txt +0 -22
- package/node_modules/koffi/src/cnoke/README.md +0 -99
- package/node_modules/koffi/src/cnoke/assets/FindCNoke.cmake +0 -127
- package/node_modules/koffi/src/cnoke/assets/toolchains.json +0 -126
- package/node_modules/koffi/src/cnoke/assets/win_delay_hook.c +0 -36
- package/node_modules/koffi/src/cnoke/cnoke.js +0 -170
- package/node_modules/koffi/src/cnoke/package.json +0 -24
- package/node_modules/koffi/src/cnoke/src/builder.js +0 -511
- package/node_modules/koffi/src/cnoke/src/index.js +0 -10
- package/node_modules/koffi/src/cnoke/src/tools.js +0 -407
- package/node_modules/koffi/src/koffi/CMakeLists.txt +0 -182
- package/node_modules/koffi/src/koffi/src/abi_arm32.cc +0 -1018
- package/node_modules/koffi/src/koffi/src/abi_arm32_asm.S +0 -169
- package/node_modules/koffi/src/koffi/src/abi_arm64.cc +0 -1295
- package/node_modules/koffi/src/koffi/src/abi_arm64_asm.S +0 -195
- package/node_modules/koffi/src/koffi/src/abi_arm64_asm.asm +0 -174
- package/node_modules/koffi/src/koffi/src/abi_loong64.cc +0 -5
- package/node_modules/koffi/src/koffi/src/abi_loong64_asm.S +0 -204
- package/node_modules/koffi/src/koffi/src/abi_riscv64.cc +0 -915
- package/node_modules/koffi/src/koffi/src/abi_riscv64_asm.S +0 -203
- package/node_modules/koffi/src/koffi/src/abi_x64_sysv.cc +0 -939
- package/node_modules/koffi/src/koffi/src/abi_x64_sysv_asm.S +0 -231
- package/node_modules/koffi/src/koffi/src/abi_x64_win.cc +0 -715
- package/node_modules/koffi/src/koffi/src/abi_x64_win_asm.S +0 -166
- package/node_modules/koffi/src/koffi/src/abi_x64_win_asm.asm +0 -192
- package/node_modules/koffi/src/koffi/src/abi_x86.cc +0 -860
- package/node_modules/koffi/src/koffi/src/abi_x86_asm.S +0 -193
- package/node_modules/koffi/src/koffi/src/abi_x86_asm.asm +0 -177
- package/node_modules/koffi/src/koffi/src/call.cc +0 -1326
- package/node_modules/koffi/src/koffi/src/call.hh +0 -179
- package/node_modules/koffi/src/koffi/src/errno.inc +0 -462
- package/node_modules/koffi/src/koffi/src/ffi.cc +0 -2702
- package/node_modules/koffi/src/koffi/src/ffi.hh +0 -354
- package/node_modules/koffi/src/koffi/src/init.js +0 -105
- package/node_modules/koffi/src/koffi/src/parser.cc +0 -220
- package/node_modules/koffi/src/koffi/src/parser.hh +0 -54
- package/node_modules/koffi/src/koffi/src/util.cc +0 -1807
- package/node_modules/koffi/src/koffi/src/util.hh +0 -221
- package/node_modules/koffi/src/koffi/src/uv.cc +0 -193
- package/node_modules/koffi/src/koffi/src/uv.def +0 -10
- package/node_modules/koffi/src/koffi/src/uv.hh +0 -40
- package/node_modules/koffi/src/koffi/src/win32.cc +0 -198
- package/node_modules/koffi/src/koffi/src/win32.hh +0 -119
- package/node_modules/koffi/src/koffi/tools/write_trampolines.js +0 -77
- package/node_modules/koffi/vendor/node-addon-api/LICENSE.md +0 -9
- package/node_modules/koffi/vendor/node-addon-api/README.md +0 -95
- package/node_modules/koffi/vendor/node-addon-api/napi-inl.deprecated.h +0 -186
- package/node_modules/koffi/vendor/node-addon-api/napi-inl.h +0 -7033
- package/node_modules/koffi/vendor/node-addon-api/napi.h +0 -3309
- package/node_modules/koffi/vendor/node-api-headers/LICENSE +0 -21
- package/node_modules/koffi/vendor/node-api-headers/README.md +0 -95
- package/node_modules/koffi/vendor/node-api-headers/def/js_native_api.def +0 -125
- package/node_modules/koffi/vendor/node-api-headers/def/node_api.def +0 -157
- package/node_modules/koffi/vendor/node-api-headers/include/js_native_api.h +0 -591
- package/node_modules/koffi/vendor/node-api-headers/include/js_native_api_types.h +0 -210
- package/node_modules/koffi/vendor/node-api-headers/include/node_api.h +0 -265
- package/node_modules/koffi/vendor/node-api-headers/include/node_api_types.h +0 -58
- package/node_modules/koffi/vendor/node-api-headers/include/uv/aix.h +0 -32
- package/node_modules/koffi/vendor/node-api-headers/include/uv/bsd.h +0 -34
- package/node_modules/koffi/vendor/node-api-headers/include/uv/darwin.h +0 -61
- package/node_modules/koffi/vendor/node-api-headers/include/uv/errno.h +0 -483
- package/node_modules/koffi/vendor/node-api-headers/include/uv/linux.h +0 -34
- package/node_modules/koffi/vendor/node-api-headers/include/uv/os390.h +0 -33
- package/node_modules/koffi/vendor/node-api-headers/include/uv/posix.h +0 -31
- package/node_modules/koffi/vendor/node-api-headers/include/uv/sunos.h +0 -44
- package/node_modules/koffi/vendor/node-api-headers/include/uv/threadpool.h +0 -37
- package/node_modules/koffi/vendor/node-api-headers/include/uv/tree.h +0 -521
- package/node_modules/koffi/vendor/node-api-headers/include/uv/unix.h +0 -512
- package/node_modules/koffi/vendor/node-api-headers/include/uv/version.h +0 -43
- package/node_modules/koffi/vendor/node-api-headers/include/uv/win.h +0 -698
- package/node_modules/koffi/vendor/node-api-headers/include/uv.h +0 -1990
|
@@ -1,9 +1,198 @@
|
|
|
1
1
|
{
|
|
2
|
+
"0.51.2": {
|
|
3
|
+
"version": "0.51.3",
|
|
4
|
+
"date": "2026-05-23",
|
|
5
|
+
"notes": "Workflow prose updated to reference forge_artifact tool for all phase artifact reads/writes. Eliminates manual path construction — models use typed tool calls with entity ID resolution and JSON summary schema validation.",
|
|
6
|
+
"target": "workflows:all-phase-workflows,workflows:_fragments/store-cli-verbs",
|
|
7
|
+
"regenerate": [
|
|
8
|
+
"workflows:plan_task",
|
|
9
|
+
"workflows:review_plan",
|
|
10
|
+
"workflows:implement_plan",
|
|
11
|
+
"workflows:review_code",
|
|
12
|
+
"workflows:validate_task",
|
|
13
|
+
"workflows:architect_approve",
|
|
14
|
+
"workflows:fix_bug",
|
|
15
|
+
"workflows:collator_agent",
|
|
16
|
+
"workflows:_fragments/store-cli-verbs"
|
|
17
|
+
],
|
|
18
|
+
"breaking": false,
|
|
19
|
+
"manual": []
|
|
20
|
+
},
|
|
21
|
+
"0.51.1": {
|
|
22
|
+
"version": "0.51.2",
|
|
23
|
+
"date": "2026-05-23",
|
|
24
|
+
"notes": "S25 post-refactor regression fixes: (A) store-cli-verbs.md — explicit 4-arg update-status syntax; (B) implement workflow — two-step plan-approved→implementing→implemented transition; (C/D) collator workflow — no-set-summary Iron Law + WRITEBACK-SUMMARY.json Finalize step.",
|
|
25
|
+
"target": "workflows:implement_plan,workflows:collator_agent,workflows:_fragments/store-cli-verbs",
|
|
26
|
+
"regenerate": [
|
|
27
|
+
"workflows:implement_plan",
|
|
28
|
+
"workflows:collator_agent",
|
|
29
|
+
"workflows:_fragments/store-cli-verbs"
|
|
30
|
+
],
|
|
31
|
+
"breaking": false,
|
|
32
|
+
"manual": []
|
|
33
|
+
},
|
|
34
|
+
"0.51.0": {
|
|
35
|
+
"version": "0.51.1",
|
|
36
|
+
"date": "2026-05-23",
|
|
37
|
+
"notes": "FORGE-S25-T28 — Guardrails CI consolidation. Adds --check mode to build-manifest.cjs and build-enum-catalog.cjs (non-destructive drift detection; exits 1 when structure-manifest.json or enum-catalog.json/transitions/*.json are stale). Wires manifest-drift + enum-catalog-drift gates into plugin-ci.yml. Adds forge/forge/CLAUDE.md documenting the four CI gates.",
|
|
38
|
+
"target": "tools:build-manifest",
|
|
39
|
+
"regenerate": [
|
|
40
|
+
"tools:build-manifest",
|
|
41
|
+
"tools:build-enum-catalog"
|
|
42
|
+
],
|
|
43
|
+
"breaking": false,
|
|
44
|
+
"manual": []
|
|
45
|
+
},
|
|
46
|
+
"0.50.0": {
|
|
47
|
+
"version": "0.50.1",
|
|
48
|
+
"date": "2026-05-23",
|
|
49
|
+
"notes": "FORGE-S25-T26 — Catalog generator + plugin consumers. Adds build-enum-catalog.cjs emitting forge/schemas/enum-catalog.json + forge/schemas/transitions/{task,sprint,bug}.json from T25 ADR canonical FSM tables. Canonicalizes store-cli.cjs TASK_TRANSITIONS/SPRINT_TRANSITIONS/BUG_TRANSITIONS to T25 ADR (D-T-1..D-T-9, D-S-1..D-S-4, D-B-1). Narrows FAILED_STATES: removes blocked, plan-revision-required, code-revision-required (all transitions are now explicit in the tables). Extends substitute-placeholders.cjs with {{ENUM:entity.field}} placeholder support (resolves to comma-separated schema enum values). Adds @catalogSync annotation to hooks/lib/common.cjs:FORGE_COMMAND_PATTERNS + fills 15 missing command patterns; syncs inline copy in hooks/triage-error.cjs. build-manifest.cjs gains post-step to regenerate enum-catalog on every manifest rebuild. gen-integrity.cjs tracks new catalog + transition files. New tests: build-enum-catalog.test.cjs (14 cases), store-cli-transitions.test.cjs (9 regression cases, D-T-* / D-S-* / D-B-*). integrity.json regenerated.",
|
|
50
|
+
"target": "schemas:enum-catalog",
|
|
51
|
+
"regenerate": [
|
|
52
|
+
"schemas:enum-catalog",
|
|
53
|
+
"schemas:transitions",
|
|
54
|
+
"tools:build-enum-catalog",
|
|
55
|
+
"tools:store-cli",
|
|
56
|
+
"tools:substitute-placeholders",
|
|
57
|
+
"tools:build-manifest",
|
|
58
|
+
"tools:gen-integrity",
|
|
59
|
+
"hooks:triage-error",
|
|
60
|
+
"hooks:lib/common"
|
|
61
|
+
],
|
|
62
|
+
"breaking": false,
|
|
63
|
+
"manual": []
|
|
64
|
+
},
|
|
65
|
+
"0.49.0": {
|
|
66
|
+
"version": "0.50.0",
|
|
67
|
+
"date": "2026-05-23",
|
|
68
|
+
"notes": "FORGE-S25-T15 — hooks:h5-polish. Drop mtime sentinel in post-init.cjs (H-5c); add logSwallowedError helper to hooks/lib/common.cjs (H-5b); interpolate CLAUDE_PLUGIN_ROOT into forge-permissions.cjs node-tool rule (H-5d); reduce check-update.cjs HTTPS timeout 5s→2s (H-5a); complete hooks/README.md swallowed-error policy section. integrity.json regenerated.",
|
|
69
|
+
"target": "hooks:h5-polish",
|
|
70
|
+
"regenerate": [],
|
|
71
|
+
"breaking": false,
|
|
72
|
+
"manual": []
|
|
73
|
+
},
|
|
74
|
+
"0.48.2": {
|
|
75
|
+
"version": "0.49.0",
|
|
76
|
+
"date": "2026-05-23",
|
|
77
|
+
"notes": "FORGE-S25-T14 — hooks/*.js → *.cjs rename + extract hooks/lib/{plugin-detection,update-url,update-msg}.cjs + REGISTRY private. Closes H-2, H-3, H rename. gen-integrity.cjs updated to glob .cjs. integrity.json regenerated. forge-cli/scripts/build-payload.cjs hook filter updated from .js to .cjs (cross-repo).",
|
|
78
|
+
"regenerate": [],
|
|
79
|
+
"breaking": false,
|
|
80
|
+
"manual": []
|
|
81
|
+
},
|
|
82
|
+
"0.48.1": {
|
|
83
|
+
"version": "0.48.2",
|
|
84
|
+
"date": "2026-05-23",
|
|
85
|
+
"notes": "FORGE-S25-T13 — Release-time URL rewrite strategy for plugin.json (S-12), structure-manifest.json product-manager edge fix (S-7), additionalProperties CI gate (S-4/N-S-2), schema-evolution-policy ADR. Adds rewrite-plugin-urls.cjs tool (--target main|release) for release workflow automation. Fixes build-manifest.cjs parseMetaDeps to filter non-generated personas (product-manager, orchestrator) from workflow edges. Regenerates structure-manifest.json. Adds schema-additionalProperties.test.cjs CI gate asserting every *.schema.json has root additionalProperties:false. Sets plugin.json URLs to main-branch raw GitHub content.",
|
|
86
|
+
"regenerate": [
|
|
87
|
+
"schemas:structure-manifest"
|
|
88
|
+
],
|
|
89
|
+
"breaking": false,
|
|
90
|
+
"manual": []
|
|
91
|
+
},
|
|
92
|
+
"0.48.0": {
|
|
93
|
+
"version": "0.48.1",
|
|
94
|
+
"date": "2026-05-23",
|
|
95
|
+
"notes": "Fix preflight-gate sprint directory slug resolution. When a sprint directory has a slug suffix (e.g. 'FORGE-S25-foundation-refactor' for sprintId 'FORGE-S25'), the gate was using the bare sprintId as the directory path, causing artifact-not-found failures even when the artifact existed under the slugged directory. Adds resolveSprintArtifactDir() (exported) that scans engineering/sprints/ for an exact match then a '<sprintId>-*' prefix match, analogous to resolveTaskArtifactDir(). resolveTaskArtifactDir() gains an optional resolvedSprintDir parameter. CLI shim resolves the sprint dir before resolving the task dir and uses it for the {sprint} substitution.",
|
|
96
|
+
"regenerate": [],
|
|
97
|
+
"breaking": false,
|
|
98
|
+
"manual": []
|
|
99
|
+
},
|
|
100
|
+
"0.47.2": {
|
|
101
|
+
"version": "0.48.0",
|
|
102
|
+
"date": "2026-05-22",
|
|
103
|
+
"notes": "FORGE-S25-T10 — extract _fragments/{store-write-verification,iron-laws,generation-instructions}.md + backfills. Closes CM-1, CM-2, CM-3, CM-4, CM-6, N-CM-4, N-CM-5. Three new canonical fragment files added to meta/workflows/_fragments/ and mirrored to init/base-pack/workflows/_fragments/. The 9-line Store-Write Verification block (byte-identical across 9 workflows) replaced with a single comment marker; 3 variant workflows (sprint-plan, collate, enhance) retain inline text with inline note. iron-laws.md and generation-instructions.md are template-guide fragments (CM-2/CM-3/CM-6 closed-as-documented, not closed-as-deduplicated — duplication stays inline, fragments document the canonical structure; see doc/decisions/meta-fragment-includes.md). Iron Laws backfilled into 3 previously missing workflows (meta-migrate, meta-retrospective, meta-sprint-intake). Generation Instructions backfilled into 2 missing workflows (meta-enhance, meta-migrate). meta-review-plan: ## Generation Notes renamed to ## Generation Instructions. Intentional-omission comments added for meta-quiz-agent and meta-review-sprint-completion. FRAGMENT_MAP in build-manifest.cjs updated with 3 new entries (now 9 total). Byte budgets in phase-frontmatter.test.cjs lowered for files where SWV block was removed: meta-validate (5888→5376), meta-update-plan (3584→3072), meta-update-implementation (4096→3584); other 6 files remain within existing budgets. All 1513 plugin tests pass. Regeneration required: workflows and _fragments.",
|
|
104
|
+
"regenerate": [
|
|
105
|
+
"workflows:_fragments",
|
|
106
|
+
"workflows:commit_task",
|
|
107
|
+
"workflows:implement_plan",
|
|
108
|
+
"workflows:review_plan",
|
|
109
|
+
"workflows:update_implementation",
|
|
110
|
+
"workflows:approve_task",
|
|
111
|
+
"workflows:update_plan",
|
|
112
|
+
"workflows:review_implementation",
|
|
113
|
+
"workflows:validate_task",
|
|
114
|
+
"workflows:plan_task",
|
|
115
|
+
"workflows:architect_sprint_plan",
|
|
116
|
+
"workflows:collator_agent",
|
|
117
|
+
"workflows:enhance",
|
|
118
|
+
"workflows:fix_bug",
|
|
119
|
+
"workflows:orchestrate_task",
|
|
120
|
+
"workflows:migrate_structural",
|
|
121
|
+
"workflows:sprint_retrospective",
|
|
122
|
+
"workflows:architect_sprint_intake",
|
|
123
|
+
"workflows:quiz_agent"
|
|
124
|
+
],
|
|
125
|
+
"breaking": false,
|
|
126
|
+
"manual": [
|
|
127
|
+
"Run /forge:update to receive the 3 new _fragments/ files and updated workflow files that now carry fragment reference markers instead of verbatim Store-Write Verification blocks.",
|
|
128
|
+
"CM-2/CM-3/CM-6 (Iron Laws and Generation Instructions duplication) are closed-as-documented via the template-guide pattern — the prose remains inline in each workflow. No manual deduplication needed."
|
|
129
|
+
]
|
|
130
|
+
},
|
|
131
|
+
"0.47.1": {
|
|
132
|
+
"version": "0.47.2",
|
|
133
|
+
"date": "2026-05-22",
|
|
134
|
+
"notes": "FORGE-S25-T07 — extract lib/frontmatter.cjs (CRLF normalization), lib/slug.cjs (maxLen=30), lib/fsutil.cjs. Closes findings N-T-3, N-T-4, T-5. lib/frontmatter.cjs: canonical YAML frontmatter extractor normalizing all line endings (CRLF/CR/mixed) to LF on read — resolves silent divergence between build-base-pack.cjs and substitute-placeholders.cjs. lib/slug.cjs: deriveSlug(title, {maxLen=30}) with trailing-hyphen trim — closes slug truncation divergence between seed-store.cjs (truncated at 30) and store-facade.cjs (no truncation). lib/fsutil.cjs: ensureDir/isFile/isDirectory — consolidates 4 inline mkdirSync sites. One-shot migration script: tools/migrate-slug-maxlen.cjs (dry-run by default; --apply renames KB directories for any bug whose title exceeds 30 chars). forge-cli build-payload.cjs LIB_ALLOWLIST updated with frontmatter.cjs, slug.cjs, fsutil.cjs. Decision doc: doc/decisions/lib-extraction-contract.md.",
|
|
135
|
+
"regenerate": [
|
|
136
|
+
"tools:seed-store",
|
|
137
|
+
"tools:store-facade",
|
|
138
|
+
"tools:build-base-pack",
|
|
139
|
+
"tools:substitute-placeholders"
|
|
140
|
+
],
|
|
141
|
+
"breaking": false,
|
|
142
|
+
"manual": [
|
|
143
|
+
"Run `node forge/forge/tools/migrate-slug-maxlen.cjs` to check for long-title bug entities that may have slug changes under maxLen=30. If affected entities are reported, run with --apply to rename KB directories."
|
|
144
|
+
]
|
|
145
|
+
},
|
|
146
|
+
"0.47.0": {
|
|
147
|
+
"version": "0.47.1",
|
|
148
|
+
"date": "2026-05-22",
|
|
149
|
+
"notes": "FORGE-S25-T06 — extract lib/json-io.cjs + lib/schema-loader.cjs (memoized). Closes findings T-1, T-10, H-4d, N-T-2. Creates forge/forge/tools/lib/json-io.cjs (readJson/writeJson shared primitives extracted from FSImpl in store.cjs) and forge/forge/tools/lib/schema-loader.cjs (memoized 4-path search chain: project → in-tree → plugin-installed → forge-cli bundled .schemas/; extracted from _getSchemas() in store-cli.cjs). Migrates four consumers: tools/store.cjs (FSImpl._readJson/_writeJson now delegate to lib/json-io.cjs), tools/lib/store-facade.cjs (_loadDir, getEntity, loadForgeConfig inline JSON.parse calls replaced with readJson), tools/store-cli.cjs (_getSchemas() body replaced with loadSchemas() wrapper — memoization and 4-path chain live in schema-loader.cjs; dead _schemas variable removed), hooks/validate-write.js (inline loadSchema() replaced with resolveSchemaLoader()+loadSchemas() — gains the bundled .schemas/ path that the previous inline implementation was missing). Adds unit tests: json-io.test.cjs (7 cases), schema-loader.test.cjs (7 cases), store-facade.test.cjs (9 cases). Full plugin test suite 1516/1516 passing. forge-cli build-payload.cjs LIB_ALLOWLIST updated with json-io.cjs + schema-loader.cjs; npm run build passes; both files confirmed in dist/forge-payload/tools/lib/. MINIMAL_REQUIRED is now canonical in schema-loader.cjs (exported); store-cli.cjs retains its own copy for the exported symbol surface (backward-compat). resetSchemaCache() exported for test isolation only. Additive, non-breaking — no schema changes, no workflow regeneration needed.",
|
|
150
|
+
"regenerate": [
|
|
151
|
+
"tools:store-facade",
|
|
152
|
+
"tools:store-cli",
|
|
153
|
+
"hooks:validate-write"
|
|
154
|
+
],
|
|
155
|
+
"breaking": false,
|
|
156
|
+
"manual": [
|
|
157
|
+
"After /forge:update, the new lib/json-io.cjs and lib/schema-loader.cjs files will be installed alongside the updated tools. No manual steps needed for standard installs.",
|
|
158
|
+
"forge-cli users: rebuild the forge-cli bundle (npm run build in forge-cli/) to pick up the two new lib files in the forge-cli bundled payload."
|
|
159
|
+
]
|
|
160
|
+
},
|
|
161
|
+
"0.46.2": {
|
|
162
|
+
"version": "0.47.0",
|
|
163
|
+
"date": "2026-05-22",
|
|
164
|
+
"notes": "FORGE-S25-T12 schema hygiene — extract schemas/_defs/phaseSummary.schema.json (single-source for task + bug phase-summary shape; superset includes the bug-only `route` field used by meta-fix-bug.md triage). Refactor task.schema.json + bug.schema.json `summaries.*` slots to external $ref into the shared _defs file; drop inline $defs.phaseSummary from both (proven equivalent — bug `route` field now lives in the shared definition). Upgrade config.schema.json $schema to draft 2020-12 + HTTPS $id (https://github.com/Entelligentsia/agentic-skills/forge/config.schema.json) — body already 2020-12-compatible. Add root additionalProperties:false to config.schema.json — live dogfooded config validates clean, so no manual strip step is needed for known-good consumers. Port rich content from sdlc-config.schema.json into config.schema.json (pipelines definition, calibrationHistory, sprint.execution, pipeline.skipPhases + includeTokenDataInBugReports, commands.syntaxCheck object form, mode description) so config.schema.json becomes the single canonical source. DELETE forge/sdlc-config.schema.json outright (FORGE-S25-T12 / S-6) — three plugin consumers rewritten to schemas/config.schema.json in the same task: commands/health.md:57, init/sdlc-init.md:83, init/smoke-test.md:26+114. forge-cli's write-guard already loaded config.schema.json. Pre-commit grep across forge/forge/ + forge-cli/src/ confirmed zero live consumers of sdlc-config.schema.json (vision/*.md historical design docs only). Fix migrations.json typos schemas:events -> schemas:event at entries 0.43.12 and 0.43.11 (third occurrence at 0.45.0 was already correct). Remove stale schemas:update-check-cache target from 0.40.2 (FORGE-S25-T12 N-S-1; never resolvable — update-check-cache is a runtime cache, not a schema; documented via notes_addendum on the 0.40.2 entry). PREREQUISITE shared-surface change in forge-cli (paired same-commit): migration-engine.ts `schemas` branch in resolveCategory now walks .schemas/ recursively and preserves relative subdir structure under .forge/schemas/, so the new _defs/ subtree actually ships to user installs via /forge:update. forge-cli build-payload.cjs schema copy loop likewise recursive so the bundle carries _defs/phaseSummary.schema.json. Test surface: forge-cli adds migration-engine-defs.test.ts (5 cases, test-first) + migration-engine-dryrun.test.ts (2 cases, F-5 behavioural). Plugin tests stay 1492 green; forge-cli tests stay green (3 pre-existing unrelated doctor.test.ts failures from local auth env). Additive: no record field changes (phaseSummary $ref resolves to the same shape); store validation unchanged (validate-store.cjs validates top-level fields only, does not traverse $ref).",
|
|
165
|
+
"regenerate": [
|
|
166
|
+
"schemas",
|
|
167
|
+
"commands:health",
|
|
168
|
+
"init:sdlc-init",
|
|
169
|
+
"init:smoke-test"
|
|
170
|
+
],
|
|
171
|
+
"breaking": false,
|
|
172
|
+
"manual": [
|
|
173
|
+
"If any project carries non-canonical keys at the root of .forge/config.json, the tightened additionalProperties:false will fail validation under the new draft-2020-12 schema. Inspect the live config and remove unknown root keys before /forge:update completes. Live dogfooded configs validate clean — this step only applies to hand-edited installs.",
|
|
174
|
+
"After /forge:update, manually delete `.forge/sdlc-config.schema.json` if present — it is the now-removed sibling schema; the regenerate mechanism only writes, it does not prune. No tooling reads it post-migration."
|
|
175
|
+
]
|
|
176
|
+
},
|
|
177
|
+
"0.46.1": {
|
|
178
|
+
"version": "0.46.2",
|
|
179
|
+
"date": "2026-05-22",
|
|
180
|
+
"notes": "chore: FORGE-S25-T01 — plugin test baseline + no-skip CI gate. Adds `forge/tools/check-no-skipped-tests.cjs` (fails on committed it.skip / describe.skip / test.skip / it.only / describe.only / test.only / xit / xdescribe under forge/tools/__tests__ and forge/hooks/__tests__; warn-only secondary scan for FIXME:skip / TODO:re-enable so reminder comments cannot self-trip the gate; self-excludes its own paired test which carries literal marker fixtures). Expands `npm test` glob to `forge/tools/__tests__/*.test.cjs forge/hooks/__tests__/*.test.cjs` so hook failures can no longer hide outside CI. Lands `forge/.github/workflows/plugin-ci.yml` (Node 20, single job: skip-gate -> npm test -> manifest regen -> verify-integrity; no `npm ci` until T28 adds devDependencies + lockfile, marked with TODO(FORGE-S25-T28)). Deletes stale duplicate hook tests `check-update.test.js` and `forge-permissions.test.js` (canonical `.cjs` counterparts live in tools/__tests__/; grep proved zero callers outside docs/security/). Renames surviving hook tests post-init.test.js / post-sprint.test.js / validate-write.test.js to .test.cjs for layout uniformity (hook source `.js -> .cjs` rename deferred to T14). Adds `enhancement` to the store-cli emit RESERVED_GLOB so post-init/post-sprint hooks' enhancement-trigger events stop being silently dropped by the FK check — root-cause fix for the two pre-existing hook test failures. Adds `npm run lint:no-skip` script. Documents the no-skipped-tests policy in `forge/CLAUDE.md` Script Test Suite section. Full plugin suite now 1492/1492 (was 1437; +55 — hook suite + skip-gate + enhancement FK regression). Additive, non-breaking — no schema change, no workflow regeneration needed.",
|
|
181
|
+
"regenerate": [
|
|
182
|
+
"tools:check-no-skipped-tests",
|
|
183
|
+
"tools:store-cli",
|
|
184
|
+
"workflows:plugin-ci-tmp-smoke-job"
|
|
185
|
+
],
|
|
186
|
+
"breaking": false,
|
|
187
|
+
"manual": []
|
|
188
|
+
},
|
|
2
189
|
"0.46.0": {
|
|
3
190
|
"version": "0.46.1",
|
|
4
191
|
"date": "2026-05-22",
|
|
5
192
|
"notes": "build: regenerate base-pack/workflows/enhance.md from meta sources to ship the FORGE-S24 SKILL-CURATION Phase 2 pipeline. The 0.45.1–0.45.7 entries declared `workflows:enhance` in their `regenerate` lists, but the meta→base-pack derivation (node tools/build-base-pack.cjs) was not re-run during the sprint, so the installable workflow stayed at the pre-S24 algorithm and downstream projects migrating to 0.46.0 received a stale workflow that lacked queue-drain (step 1a), recurrence scoring, delete-candidate detection (step 5b), compression gate (step 5b.5), and the LLM-judge step (step 5c). This patch bump regenerates the base-pack copy (init/base-pack/workflows/enhance.md — 280→600 lines, 20 S24 markers landed) and forces a re-copy on any project sitting at 0.46.0 by declaring `workflows:enhance` here. No plugin source change beyond the regenerated workflow file. Additive, non-breaking.",
|
|
6
|
-
"regenerate": [
|
|
193
|
+
"regenerate": [
|
|
194
|
+
"workflows:enhance"
|
|
195
|
+
],
|
|
7
196
|
"breaking": false,
|
|
8
197
|
"manual": []
|
|
9
198
|
},
|
|
@@ -19,7 +208,10 @@
|
|
|
19
208
|
"version": "0.45.7",
|
|
20
209
|
"date": "2026-05-22",
|
|
21
210
|
"notes": "feat: queue drain at sprint close — per-task curator → batched review (FORGE-S24-T07). Adds `forge/tools/queue-drain.cjs` exporting `bodyHash(body)` (sha256 hex digest, UTF-8), `dedupeKey(proposal)` (`<op>|<target_path>|<sha256(diff_body)>` composite), `dedupeProposals(proposals)` (first-seen-wins, no-mutation), `queuePathFor({queueRoot, sprintId, taskId, ts})` (canonical `.forge/enhancement-proposals/queue/<sprintId>/<taskId>-<ts>.json` path), `appendToQueue({queueRoot, sprintId, taskId, ts, proposals})` (writes one file per curator run; throws if path exists — append-only invariant per AC1), and `drainQueue({queueRoot, sprintId})` (returns `{proposals, files, errors}` after deduping the sprint sub-dir; empty-safe when queue missing per AC5; skips malformed JSON and reports them via `errors`; deterministic lexicographic file ordering ⇒ chronological because of the ts suffix). Per-task curators (T10) append proposals to the queue throughout the sprint without collision (AC2 — distinct ts per call); Phase 2 reads the queue once at sprint close, dedupes by `{op, target_path, body-hash}` (AC3), and merges the queued proposals with the friction-synthesised ones, then feeds a SINGLE batched array through recurrence (T04) → delete-candidate detection (T05) → compression gate (T06) → judge (T03) — one prompt per sprint, not one per task (AC4, paper §3.2.1 grouped reward). `meta/workflows/meta-enhance.md` Phase 2 gains step 1a (drain queue) and step-5 merge sub-block; the zero-input guard now checks both friction events AND queued proposals before exiting cleanly with `frictionCount:0,queuedCount:0`. The drain is read-only — Phase 2 never deletes queue files; operators triage them during retrospective. Test-first per Iron Law 2: `queue-drain.test.cjs` (19 cases — exports surface, bodyHash sha256 contract + empty-body digest + collision contract, dedupeKey AC3 composite + field-sensitivity, dedupeProposals dedup + order-preservation + no-mutation + empty + non-array, queuePathFor AC1 canonical layout + input validation x3, appendToQueue AC1 fresh-file write + AC2 no-collision + append-only refusal, drainQueue AC5 empty/missing safety + AC3 multi-file dedup merge + AC4 single-batch output + sprint scoping + input validation x2 + malformed-JSON resilience) landed before the helper. Pure helpers; fs-touching helpers are `appendToQueue` and `drainQueue` only. Full suite 1437/1437 (was 1418; +19). Additive, non-breaking.",
|
|
22
|
-
"regenerate": [
|
|
211
|
+
"regenerate": [
|
|
212
|
+
"tools:queue-drain",
|
|
213
|
+
"workflows:enhance"
|
|
214
|
+
],
|
|
23
215
|
"breaking": false,
|
|
24
216
|
"manual": []
|
|
25
217
|
},
|
|
@@ -27,7 +219,10 @@
|
|
|
27
219
|
"version": "0.45.6",
|
|
28
220
|
"date": "2026-05-22",
|
|
29
221
|
"notes": "feat: compression gate — reject >20% growth without 3+ frictions (FORGE-S24-T06). Adds `forge/tools/compression-gate.cjs` exporting `GROWTH_THRESHOLD` (0.20), `MIN_SUPPORTING_FRICTIONS` (3), `evaluateGrowth({currentBody, newBody}) -> {currentBytes, newBytes, growthRatio}`, `evaluateProposal({proposal, currentBody, newBody, supportingFrictionCount}) -> {admit, reason, growthRatio, currentBytes, newBytes, supportingFrictionCount, threshold, minSupportingFrictions, op}`, and `filterProposals({proposals, currentBodyFor, newBodyFor, supportingFrictionCountFor}) -> {admitted, rejected}`. The gate runs in `meta/workflows/meta-enhance.md` Phase 2 as new step 5b.5 BEFORE the LLM judge (5c) — cheap deterministic filter first. Only `update_skill` proposals are gated; `insert_skill` and `delete_skill` pass through unconditionally (insert bloat is the judge's `body_under_2kb` axis; delete only shrinks). Growth is measured byte-wise via `Buffer.byteLength(body, 'utf8')` on the new body that would land after applying the proposal's diff. Threshold comparison is strict (>0.20) so ties at exactly 20% admit. Default supporting friction count = `proposal.sourceFrictionIds.length`; the caller may override via `supportingFrictionCountFor(proposal)` when the policy is to count frictions citing the same skill across the sprint. Updates on an empty current body yield `growthRatio: Infinity` and the friction-support rule still applies; shrinks (negative growth) admit unconditionally. Rejected proposals are persisted to the same `phase2-<timestamp>-rejections.json` sibling that the T03 judge writes, with reason `compression_gate_growth_unsupported` and the full evaluation record alongside the original proposal — every drop (gate or judge) stays traceable. Closes the unbounded-growth failure mode of SkillOS — pasting pages of trajectory copy-paste to 'patch' a friction now requires real recurrence evidence. Test-first per Iron Law 2: `compression-gate.test.cjs` (25 cases — GROWTH_THRESHOLD/MIN_SUPPORTING_FRICTIONS constants, evaluateGrowth shape, UTF-8 multibyte byte counting, empty-current-body Infinity ratio, AC1 0-friction rejection, AC2 3-friction admission, 2-friction insufficiency, AC5 exact-20% strict admission, under-threshold admission, sourceFrictionIds fallback, shrink admission, AC4 insert_skill/delete_skill pass-through, input validation x5, filterProposals AC6 ordering/partition, empty input, no-mutation invariant, callback contracts, supportingFrictionCountFor override) landed before the helper. Pure module; no fs access; no LLM call. Full suite 1418/1418 (was 1393; +25). Additive, non-breaking.",
|
|
30
|
-
"regenerate": [
|
|
222
|
+
"regenerate": [
|
|
223
|
+
"tools:compression-gate",
|
|
224
|
+
"workflows:enhance"
|
|
225
|
+
],
|
|
31
226
|
"breaking": false,
|
|
32
227
|
"manual": []
|
|
33
228
|
},
|
|
@@ -35,7 +230,10 @@
|
|
|
35
230
|
"version": "0.45.5",
|
|
36
231
|
"date": "2026-05-22",
|
|
37
232
|
"notes": "feat: LLM-judge step in Phase 2 — Sonnet rubric, drop <3/5 (FORGE-S24-T03). Adds `forge/tools/judge-proposal.cjs` exporting `RUBRIC_AXES` (frozen 5-axis tuple: specificity, when_not_to_use, no_trajectory_copy_paste, body_under_2kb, cites_friction), `scoreProposal(proposal) -> { axes, average }` (deterministic per-axis 0..5 scorer), and `decideJudgement({ axes }) -> { verdict, average, axes, reason }` (pure aggregator: verdict === 'drop' iff average < 3, strict; ties at 3.0 keep). The rubric is single-sourced in this helper — Sonnet's role is to apply the same axes and emit scores that the helper then validates and aggregates; in the absence of an LLM call the deterministic scorer is the fallback. `decideJudgement` fails loud on missing or out-of-range axes (RangeError) so a malformed score sheet never silently coerces into a verdict. `meta/workflows/meta-enhance.md` Phase 2 gains step 5c calling `scoreProposal` + `decideJudgement` for every proposal between delete-candidate detection (5b) and artifact write (6); kept proposals continue to step 6, dropped proposals are persisted to a sibling `phase2-<timestamp>-rejections.json` carrying the original proposal alongside `{ verdict, average, axes, reason }` so every rejection is traceable for retro review (AC3). Per-axis heuristics: specificity scores deep paths, named (non-generic) skill files, non-trivial rationales, and recurrence trails; when_not_to_use checks for the literal phrase; no_trajectory_copy_paste flags long verbatim runs or unbroken non-whitespace blocks >= 400 bytes; body_under_2kb gates on `Buffer.byteLength(diff_body,'utf8') <= 2048`; cites_friction rewards `sourceFrictionIds.length` >= 1, boosting for multi-citation and recurrence. Consumes recurrence data from T04 in the specificity and cites_friction axes — proposals that recurred across multiple tasks score higher. Test-first per Iron Law 2: `judge-proposal.test.cjs` (13 cases — rubric-axes shape, 5/5 keep fixture, 1/5 drop fixture, body byte boundary at exactly 2048, zero-citation suppression, phrase-presence binary, AC6 explicit 2.8/5 drop fixture, keep + drop end-to-end decisions, exact-3.0 boundary keeps, missing-axis RangeError, out-of-range RangeError) landed before the helper. Pure module; no fs access; no LLM call. Full suite 1393/1393 (was 1380; +13). Additive, non-breaking.",
|
|
38
|
-
"regenerate": [
|
|
233
|
+
"regenerate": [
|
|
234
|
+
"tools:judge-proposal",
|
|
235
|
+
"workflows:enhance"
|
|
236
|
+
],
|
|
39
237
|
"breaking": false,
|
|
40
238
|
"manual": []
|
|
41
239
|
},
|
|
@@ -43,7 +241,10 @@
|
|
|
43
241
|
"version": "0.45.4",
|
|
44
242
|
"date": "2026-05-22",
|
|
45
243
|
"notes": "feat: delete-candidate detection — 3-sprint zero-use (FORGE-S24-T05). Adds `forge/tools/delete-candidate-detector.cjs` exporting `scanZeroUse({events, sprintOrder, windowSize})` and `buildDeleteProposals({events, sprintOrder, windowSize, targetPathFor})`. The detector scans `skill_usage` events across the trailing `windowSize` (default 3) sprints; any skill with at least one in-window observation AND zero `retrieved` AND zero `used` qualifies as a delete candidate. Skills with zero in-window observations are explicitly NOT proposed — that case is indistinguishable from a newly-added skill that hasn't been loaded yet. `meta/workflows/meta-enhance.md` Phase 2 gains step 5b calling `buildDeleteProposals` between recurrence annotation (step 5a) and artifact write (step 6). Each delete proposal carries `op: 'delete_skill'`, `target_path` resolved via the supplied `targetPathFor(skillId)` callback, a diff body and rationale that name the cold skill and the observed sprints, `sourceFrictionIds: []` (usage-derived, not friction-derived), `window_size`, `window_sprint_ids`, plus neutral `recurrence_count: 1` and `recurrence_task_ids: []` so the proposal shape stays uniform with the rest of the Phase 2 array. Carry-over caveat documented in the workflow: the trailing-3-sprint window only becomes meaningful once 3 sprints have elapsed since `skill_usage` emission landed in T01 (0.45.1); short-history runs produce advisory rather than authoritative deletes. This is the only mechanism by which the skill repository shrinks, completing the three-op classification rollout from T02 (insert/update were already in play). Test-first per Iron Law 2: `delete-candidate-detector.test.cjs` (16 cases — three-sprint zero-use baseline, retrieved=true disqualification, used=true disqualification, trailing-window guard against pre-window usage, default windowSize 3, configurable windowSize, never-observed-in-window suppression, empty events, friction-event filtering, short-history carry-over case, no-mutation invariant, multi-skill output, deterministic ordering, callback contract, plus AC restatement cases) landed before the detector. Pure module; no fs access. Full suite 1380/1380 (was 1364; +16). Additive, non-breaking.",
|
|
46
|
-
"regenerate": [
|
|
244
|
+
"regenerate": [
|
|
245
|
+
"tools:delete-candidate-detector",
|
|
246
|
+
"workflows:enhance"
|
|
247
|
+
],
|
|
47
248
|
"breaking": false,
|
|
48
249
|
"manual": []
|
|
49
250
|
},
|
|
@@ -51,7 +252,11 @@
|
|
|
51
252
|
"version": "0.45.3",
|
|
52
253
|
"date": "2026-05-22",
|
|
53
254
|
"notes": "feat: cross-task replay scoring — recurrence boost (FORGE-S24-T04). Adds `forge/tools/replay-scoring.cjs` exporting `computeRecurrence({events, subkind, skillId, fromTaskId, taskOrder})` and `annotateProposals(proposals, frictionEvents, taskOrder)`. For each Phase 2 enrichment proposal synthesised from a friction event at task `t`, the annotator scans tasks `t+1..N` in the same sprint for friction events matching the same `(subkind, evidence.skillId)` pair and stamps `recurrence_count` (>= 1, includes the origin task) and `recurrence_task_ids` (taskOrder-sorted) onto the proposal. Forward-only scan: earlier tasks before `fromTaskId` are excluded. Proposals without resolvable `sourceFrictionIds` (eventId not in the friction set, or the resolved event lacks subkind/evidence.skillId) receive a neutral `recurrence_count: 1` and empty `recurrence_task_ids: []`. `meta/workflows/meta-enhance.md` Phase 2 gains step 5a calling `annotateProposals` between synthesis (step 5) and artifact write (step 6); the step 5 contract is tightened to require `sourceFrictionIds` to carry every contributing eventId so the recurrence scan can resolve provenance. `forge/schemas/proposal.schema.json` gains optional `recurrence_count` (integer minimum:1) and `recurrence_task_ids` (array of strings) properties — additive only, both fields are optional, `additionalProperties: false` continues to reject unknown keys. Feeds T03 (judge) so specificity scoring can boost frictions that recurred across multiple tasks. Test-first per Iron Law 2: `replay-scoring.test.cjs` (11 cases — AC3 three-task recurrence, single-task baseline, forward-only-direction guard, subkind mismatch rejection, skillId mismatch rejection, intra-task dedup, fromTaskId-outside-taskOrder fallback, missing-evidence guard, full annotateProposals happy path, unresolved-provenance neutral case, no-mutation invariant) landed before the helper. Full suite 1364/1364 (was 1353; +11). Additive, non-breaking.",
|
|
54
|
-
"regenerate": [
|
|
255
|
+
"regenerate": [
|
|
256
|
+
"tools:replay-scoring",
|
|
257
|
+
"schemas:proposal",
|
|
258
|
+
"workflows:enhance"
|
|
259
|
+
],
|
|
55
260
|
"breaking": false,
|
|
56
261
|
"manual": []
|
|
57
262
|
},
|
|
@@ -59,7 +264,9 @@
|
|
|
59
264
|
"version": "0.45.2",
|
|
60
265
|
"date": "2026-05-22",
|
|
61
266
|
"notes": "feat: Phase 2 proposal op classification (FORGE-S24-T02). Adds `forge/schemas/proposal.schema.json` and `forge/tools/proposal-normalize.cjs`. The new schema enumerates `op` ∈ {insert_skill, update_skill, delete_skill} with required `target_path` + `diff_body`; `additionalProperties: false` rejects unknown fields. `meta/workflows/meta-enhance.md` Phase 2 (steps 5–6) now requires every enrichment proposal to carry this triplet and writes a machine-readable `phase2-<timestamp>.json` alongside the existing markdown artifact. Back-compat: legacy proposals without `op` are normalised to `insert_skill` via `proposal-normalize.cjs:normaliseProposal()` — downstream consumers route through the helper explicitly so normalisation is auditable. Foundation for T03 (judge), T05 (delete-candidate detection), T06 (compression gate), T07 (queue drain). Test-first per Iron Law 2: `proposal-schema.test.cjs` (6 cases including missing-op rejection, unknown-op rejection, additionalProperties:false, and the legacy normalisation contract) landed before the schema. Full suite 1353/1353. Additive, non-breaking.",
|
|
62
|
-
"regenerate": [
|
|
267
|
+
"regenerate": [
|
|
268
|
+
"schemas:proposal"
|
|
269
|
+
],
|
|
63
270
|
"breaking": false,
|
|
64
271
|
"manual": []
|
|
65
272
|
},
|
|
@@ -67,7 +274,9 @@
|
|
|
67
274
|
"version": "0.45.1",
|
|
68
275
|
"date": "2026-05-22",
|
|
69
276
|
"notes": "feat: event.schema.json — new `skill_usage` event variant (FORGE-S24-T01, plan 08 Phase B). Adds `skill_usage` to the `type` enum and a conditional allOf branch requiring {skillId, retrieved, used, tool_call_success_rate, retrieval_score}. Top-level numeric properties (`tool_call_success_rate`, `retrieval_score`) carry [0,1] declarative bounds; `skillId` is `minLength: 1`. The root `additionalProperties: false` gate continues to reject unknown fields on every variant. Foundation for Sprint S24 SKILL-CURATION: T02 emits, T04 retrieval-score correlation, T05 delete-candidate detection, T08 replay scoring all consume records of this type. No code path change to validate-store.cjs — the existing validateRecord() handles the new allOf branch via the same machinery used for friction / sprint-complete / sprint-halted variants. Additive, non-breaking: existing event records remain valid. Note on target version: TASK_PROMPT requested v0.45.0 but that tag already shipped (snapshot-replay change); bumping to 0.45.1 is the minimum forward step.",
|
|
70
|
-
"regenerate": [
|
|
277
|
+
"regenerate": [
|
|
278
|
+
"schemas:event"
|
|
279
|
+
],
|
|
71
280
|
"breaking": false,
|
|
72
281
|
"manual": []
|
|
73
282
|
},
|
|
@@ -75,7 +284,10 @@
|
|
|
75
284
|
"version": "0.45.0",
|
|
76
285
|
"date": "2026-05-21",
|
|
77
286
|
"notes": "feat: Approach A — snapshot replay (forge#107). manage-versions gains a new replay subcommand that restores user-enhanced files captured by /forge:enhance Phase 2 snapshots after /forge:regenerate writes fresh base-pack content. Fulfills layer 3 of the composition contract (Working Artifact = base + snapshot + user_enhancements) declared at manage-versions.cjs:13. regenerate.md updated to invoke replay per category (personas, skills, workflows, templates) between subagent generation and manifest record. Overlay semantics: user-enhanced files retain captured content; later snapshots win on collision. Pairs with v0.44.10 (forge#108 archive-path fix) which made layer 2 functional in the first place.",
|
|
78
|
-
"regenerate": [
|
|
287
|
+
"regenerate": [
|
|
288
|
+
"commands:regenerate",
|
|
289
|
+
"tools:manage-versions"
|
|
290
|
+
],
|
|
79
291
|
"breaking": false,
|
|
80
292
|
"manual": []
|
|
81
293
|
},
|
|
@@ -83,7 +295,9 @@
|
|
|
83
295
|
"version": "0.44.10",
|
|
84
296
|
"date": "2026-05-21",
|
|
85
297
|
"notes": "fix: manage-versions add-snapshot now archives files correctly when --enhanced-elements paths include the .forge/ prefix (forge#108). Previously, every archive directory has been created empty since basePackVersion 0.43.3 — layer 2 of the composition contract was silently a no-op. Tool now strips a leading .forge/ from each element path before joining; both .forge/-relative (e.g. personas/X.md) and project-root-relative (.forge/personas/X.md) forms accepted. Unblocks forge#107 (Approach A — snapshot replay). Pure tool fix.",
|
|
86
|
-
"regenerate": [
|
|
298
|
+
"regenerate": [
|
|
299
|
+
"tools:manage-versions"
|
|
300
|
+
],
|
|
87
301
|
"breaking": false,
|
|
88
302
|
"manual": []
|
|
89
303
|
},
|
|
@@ -91,15 +305,9 @@
|
|
|
91
305
|
"version": "0.44.9",
|
|
92
306
|
"date": "2026-05-21",
|
|
93
307
|
"notes": "fix: /forge:regenerate personas + skills silently overwrote manual modifications (forge#106 / FORGE-BUG-037). Pre-write generation-manifest check added to both single-file and full-rebuild paths in commands/regenerate.md, mirroring the workflows + templates pattern. Closes asymmetric modification-detection across the four structural-element categories. Markdown-only fix.",
|
|
94
|
-
"regenerate": [
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
},
|
|
98
|
-
"0.44.7": {
|
|
99
|
-
"version": "0.44.8",
|
|
100
|
-
"date": "2026-05-21",
|
|
101
|
-
"notes": "fix: meta-enhance.md — add phase-routing guidance to command table; add zero-friction guard (skip steps 3-10; emit event with frictionCount=0); renumber Phase 2 steps 2-9 to 3-10 to align with zero-friction guard.",
|
|
102
|
-
"regenerate": ["workflows:enhance"],
|
|
308
|
+
"regenerate": [
|
|
309
|
+
"commands:regenerate"
|
|
310
|
+
],
|
|
103
311
|
"breaking": false,
|
|
104
312
|
"manual": []
|
|
105
313
|
},
|
|
@@ -107,7 +315,9 @@
|
|
|
107
315
|
"version": "0.44.7",
|
|
108
316
|
"date": "2026-05-21",
|
|
109
317
|
"notes": "fix: build-persona-pack.cjs schema mismatch — tool now accepts both base-pack (no frontmatter) and meta (YAML frontmatter) persona files; derives id/role/summary/responsibilities/outputs/file_ref from content for base-pack; derives file_ref from path for base-pack skills; throws (no empty-pack write) when both dirs are empty.",
|
|
110
|
-
"regenerate": [
|
|
318
|
+
"regenerate": [
|
|
319
|
+
"tools:build-persona-pack"
|
|
320
|
+
],
|
|
111
321
|
"breaking": false,
|
|
112
322
|
"manual": []
|
|
113
323
|
},
|
|
@@ -127,7 +337,10 @@
|
|
|
127
337
|
"version": "0.44.5",
|
|
128
338
|
"date": "2026-05-21",
|
|
129
339
|
"notes": "Migration apply path — runMigrations() deterministic engine + /forge:update integration (FORGE-S23-T01). Adds forge-cli migration-engine.ts: semver-range traversal [from, to) on keys, per-category resolver (84 unique category strings), idempotency ledger at .forge/applied-migrations.json, always-on schema refresh post-pass, fileOps forward-compat, path-traversal defense. The /forge:update command now prompts to apply migrations after npm upgrade; FORGE_NON_INTERACTIVE=1 auto-applies. update_plan and plan_task workflows reference migration application steps.",
|
|
130
|
-
"regenerate": [
|
|
340
|
+
"regenerate": [
|
|
341
|
+
"workflows:update_plan",
|
|
342
|
+
"workflows:plan_task"
|
|
343
|
+
],
|
|
131
344
|
"breaking": false,
|
|
132
345
|
"manual": []
|
|
133
346
|
},
|
|
@@ -135,7 +348,9 @@
|
|
|
135
348
|
"version": "0.44.4",
|
|
136
349
|
"date": "2026-05-19",
|
|
137
350
|
"notes": "Supervisor persona gains a top-level Iron Law forbidding `store-cli update-status` writes from any review phase. The workflow-level guard at meta-review-plan.md:76 and meta-review-implementation.md:82 (\"Bug mode — NO status write\") already existed; this is the persona-level reinforcement. Surfaced during FORGE-BUG-003 re-run testing of the forge-cli stale-ctx fix, where a supervisor subagent attempted `update-status bug FORGE-BUG-003 status plan-approved` against a bug already in terminal `fixed` state. store-cli correctly rejected the illegal transition; the persona update is defense-in-depth so the model stops attempting the write at all.",
|
|
138
|
-
"regenerate": [
|
|
351
|
+
"regenerate": [
|
|
352
|
+
"personas:supervisor"
|
|
353
|
+
],
|
|
139
354
|
"breaking": false,
|
|
140
355
|
"manual": []
|
|
141
356
|
},
|
|
@@ -143,7 +358,10 @@
|
|
|
143
358
|
"version": "0.44.3",
|
|
144
359
|
"date": "2026-05-19",
|
|
145
360
|
"notes": "Add `route` (enum [A, B]) to phaseSummary in bug.schema.json and the mirrored PHASE_SUMMARY_SCHEMA constant in store-cli.cjs. Required so triage subagents can record the fix-bug pipeline route decision via set-bug-summary. EMG-BUG-001 v0.44.2 first run failed with `route: undeclared field` because the schema's additionalProperties:false rejected the new field. Optional, triage-only by convention; non-triage phases ignore it.",
|
|
146
|
-
"regenerate": [
|
|
361
|
+
"regenerate": [
|
|
362
|
+
"tools:store-cli",
|
|
363
|
+
"schemas:bug"
|
|
364
|
+
],
|
|
147
365
|
"breaking": false,
|
|
148
366
|
"manual": []
|
|
149
367
|
},
|
|
@@ -151,7 +369,9 @@
|
|
|
151
369
|
"version": "0.44.2",
|
|
152
370
|
"date": "2026-05-19",
|
|
153
371
|
"notes": "parse-gates.cjs now accepts `n/a` as a valid `after <phase> = <verdict>` directive value, matching read-verdict.cjs § ALLOWED_VERDICTS. EMBERGLOW-BUG-001 (v0.44.1 second run) halted at preflight exit 2 (gate misconfigured) because the new fix-bug meta uses `after triage = n/a` (legitimate for setup phases that produce verdict: \"n/a\") and the parser hardcoded the verdict set to {approved, revision}. Test added covering n/a parsing.",
|
|
154
|
-
"regenerate": [
|
|
372
|
+
"regenerate": [
|
|
373
|
+
"tools:parse-gates"
|
|
374
|
+
],
|
|
155
375
|
"breaking": false,
|
|
156
376
|
"manual": []
|
|
157
377
|
},
|
|
@@ -159,7 +379,9 @@
|
|
|
159
379
|
"version": "0.44.1",
|
|
160
380
|
"date": "2026-05-19",
|
|
161
381
|
"notes": "Rename the triage route field from summaries.triage.path to summaries.triage.route to avoid collision with bug.path (artifact directory). Symptom from v0.44.0 first run on emberglow (EMBERGLOW-BUG-001): triage subagent wrote `\"path\": \"A\"` to the bug record, overwriting the artifact directory, causing TRIAGE.md to land under .forge/store/bugs/ instead of engineering/bugs/. Field is now `route`. The fix-bug meta carries a 'Field-naming caution' callout citing the regression so future readers understand why route is named route, not path.",
|
|
162
|
-
"regenerate": [
|
|
382
|
+
"regenerate": [
|
|
383
|
+
"workflows:fix_bug"
|
|
384
|
+
],
|
|
163
385
|
"breaking": false,
|
|
164
386
|
"manual": [
|
|
165
387
|
"If any bug at EMBERGLOW-BUG-001 vintage carries `path: \"A\"` or `path: \"B\"`, restore its real artifact directory before regeneration: FORGE_ALLOW_FORCE=1 node .forge/tools/store-cli.cjs write bug '{...corrected JSON with path: \"engineering/bugs/{slug}\"...}'"
|
|
@@ -225,7 +447,7 @@
|
|
|
225
447
|
"0.43.15": {
|
|
226
448
|
"version": "0.43.16",
|
|
227
449
|
"date": "2026-05-15",
|
|
228
|
-
"notes": "Sprint finalization ceremony (Plan 12). Add sprint-complete and sprint-halted event variants to event.schema.json with conditional requireds via allOf/if/then. Loosen top-level required (move taskId/phase/iteration into task-scoped allOf branch). Gate workflow finalize step-4 on verdict (Approved
|
|
450
|
+
"notes": "Sprint finalization ceremony (Plan 12). Add sprint-complete and sprint-halted event variants to event.schema.json with conditional requireds via allOf/if/then. Loosen top-level required (move taskId/phase/iteration into task-scoped allOf branch). Gate workflow finalize step-4 on verdict (Approved → completed; Revision Required + partial → partially-completed; Revision Required + complete → no transition). Update validate-store.cjs allOf if/then interpreter to support enum predicates alongside const. Pairs with forge-cli v0.6.6.",
|
|
229
451
|
"regenerate": [
|
|
230
452
|
"schemas:event",
|
|
231
453
|
"workflows:architect_review_sprint_completion"
|
|
@@ -236,7 +458,7 @@
|
|
|
236
458
|
"0.43.14": {
|
|
237
459
|
"version": "0.43.15",
|
|
238
460
|
"date": "2026-05-14",
|
|
239
|
-
"notes": "Slice-2 fragment-sweep completion. v0.43.14 introduced the orchestrator-emits-everything contract and surgically rewrote the five phase workflows (plan/review-plan/implement/validate/commit) plus their meta sources, but 16 other workflows
|
|
461
|
+
"notes": "Slice-2 fragment-sweep completion. v0.43.14 introduced the orchestrator-emits-everything contract and surgically rewrote the five phase workflows (plan/review-plan/implement/validate/commit) plus their meta sources, but 16 other workflows — every other base-pack workflow body — still carried the pre-Slice-2 'Emit the complete event ... via store-cli emit' instruction and 'Execute Token Reporting' step in their Finalize blocks. Any subagent reading those workflows would faithfully reproduce the exact hallucination class Slice 2 was built to kill (LLM-fabricated model/provider strings). This patch removes those two lines from every remaining workflow — meta sources (meta-approve, meta-update-implementation, meta-review-implementation, meta-review-sprint-completion, meta-sprint-intake, meta-sprint-plan, meta-collate, meta-update-plan, meta-fix-bug, meta-retrospective) and base-pack mirrors (architect_sprint_plan, sprint_retrospective, architect_approve, collator_agent, architect_review_sprint_completion, fix_bug, update_implementation, architect_sprint_intake, update_plan, review_code). Replaced with the canonical 'Do NOT emit a phase event yourself; the orchestrator (or kickoff handler) owns event emission' directive. Also swept the friction-emit code block in meta-fix-bug.md and base-pack/fix_bug.md to point at friction-emit.cjs (matches the pattern shipped for meta-orchestrate in v0.43.14). For workflows that are kickoff-only standalones today (sprint-intake, sprint-plan, collate, retrospective, review-sprint-completion), removing the hardcoded emit means honest-absence of event coverage until the corresponding forge-cli kickoff handlers learn to emit on the LLM's behalf — a follow-up item. Tests: 1202 pass.",
|
|
240
462
|
"regenerate": [
|
|
241
463
|
"workflows:fix_bug",
|
|
242
464
|
"workflows:update_plan",
|
|
@@ -256,7 +478,7 @@
|
|
|
256
478
|
"0.43.13": {
|
|
257
479
|
"version": "0.43.14",
|
|
258
480
|
"date": "2026-05-14",
|
|
259
|
-
"notes": "Telemetry contract Slice 2
|
|
481
|
+
"notes": "Telemetry contract Slice 2 — orchestrator-emits-everything. Slice 1 (v0.43.13) added `provider` as required and moved cost out of the schema, but subagents were still hand-building 14-field event JSON containing runtime facts (model, provider, eventId, timestamps, iteration) and hallucinating them (HLO-S01-T05 evidence: events carried `provider:\"anthropic\"`/`model:\"claude-sonnet-4-20250514\"` while the subagent actually ran on `glm-5.1:cloud`). Slice 2 makes runtime attribution the orchestrator's responsibility end-to-end. Plugin-side changes: (1) workflow fragments `_fragments/event-emission-schema.md` and `_fragments/friction-emit.md` rewritten in both meta/ and init/base-pack/ — replace 'build a 14-field event JSON' instructions with 'write {PHASE}-SUMMARY.json; the orchestrator emits the event'. ALL hardcoded example model strings removed (the source of pattern-copy hallucination). (2) Phase meta workflows (meta-plan-task, meta-review-plan, meta-implement, meta-validate, meta-commit) and their base-pack mirrors (plan_task, review_plan, implement_plan, validate_task, commit_task) drop the `Emit the complete event ... via store-cli emit` line and the `Execute Token Reporting` step — subagents now only write SUMMARY and return. (3) meta-orchestrate.md + base-pack/orchestrate_task.md Event Emission and Friction Emit sections rewritten: orchestrator owns emission; friction is recorded by subagents via the new `friction-emit.cjs` tool which appends judgement-only records to `.forge/cache/FRICTION-{workflow}.jsonl`, drained and stamped with runtime attribution by the orchestrator. (4) New tool `forge/forge/tools/friction-emit.cjs` — judgement-only CLI that refuses any runtime-attribution flag (--model, --provider, --eventId, timestamps, tokens). (5) New tool `forge/forge/tools/backfill-provider.cjs` — one-shot helper for the 0.43.13 manual[] item (stamps provider:\"unknown\" on legacy events missing the field; sidecars skipped). Both tools shipped test-first per Iron Law 2. Slice 2 runtime emit site lives in forge-cli (run-task.ts) — see forge-cli v0.6.5 changelog. Tests: 1202 pass.",
|
|
260
482
|
"regenerate": [
|
|
261
483
|
"fragments:event-emission-schema",
|
|
262
484
|
"fragments:friction-emit",
|
|
@@ -272,15 +494,15 @@
|
|
|
272
494
|
],
|
|
273
495
|
"breaking": false,
|
|
274
496
|
"manual": [
|
|
275
|
-
"Run `node $FORGE_ROOT/tools/backfill-provider.cjs` once on existing installs to stamp `provider:\"unknown\"` on legacy events missing the field
|
|
497
|
+
"Run `node $FORGE_ROOT/tools/backfill-provider.cjs` once on existing installs to stamp `provider:\"unknown\"` on legacy events missing the field — this is the helper promised in 0.43.13 manual[]. After backfill, all event reads should validate cleanly."
|
|
276
498
|
]
|
|
277
499
|
},
|
|
278
500
|
"0.43.12": {
|
|
279
501
|
"version": "0.43.13",
|
|
280
502
|
"date": "2026-05-14",
|
|
281
|
-
"notes": "Telemetry contract fix (Slice 1)
|
|
503
|
+
"notes": "Telemetry contract fix (Slice 1) — refactors the token-usage capture pipeline from a subagent self-probe (which never worked: pi runtime has no `/cost` probe, and the workflow's `tokenSource: \"missing\"` writes were rejected by the schema enum [reported, estimated] causing 8 schema_drift errors per HLO-S01-T04 run) to an orchestrator-owned model. Three changes: (1) event.schema.json adds `provider` as a required field — same model is priced differently across providers (Anthropic direct vs Bedrock vs Vertex; ZAI cloud vs self-host) and cost is unattributable without it; auto-populated via new discoverProvider() helper from FORGE_PROVIDER / CLAUDE_CODE_PROVIDER env vars, falling back to \"unknown\" rather than guessing. (2) Dropped `estimatedCostUSD` from event + event-sidecar schemas entirely — cost is derived at collate time from (provider, model, tokens) via tools/lib/pricing.cjs, keeping the dataset truthful when pricing changes. (3) Rewrote meta/workflows/_fragments/finalize.md AND init/base-pack/workflows/_fragments/finalize.md to delete the broken `/cost` probe + `\"missing\"` write instructions; new rule: subagents MUST NOT write token sidecars; orchestrator owns telemetry and emits the canonical event with provider-reported usage. If runtime doesn't surface usage, fields are omitted (honest absence beats placeholder zeros). collate.cjs drops the `missing` bucket from tokenSourceCounts — token-less events surface as husks instead. Tool changes: store-cli.cjs (CANONICAL_TOKEN_FIELDS + SIDECAR_ACCEPTED_FIELDS adjusted, --provider flag added on record-usage, --estimated-cost-usd flag explicitly rejected with helpful error, discoverProvider() exported); estimate-usage.cjs (removed PRICE_PER_1M heuristic table + DEFAULT_PRICE_PER_1M — returns only inputTokens/outputTokens/tokenSource); collate.cjs (cost recomputed via pricing.cjs is now the only source). Slice 2 (forge-cli runtime emit site) will wire the orchestrator emit path that consumes this contract — out of scope here. Tests: 1173 pass, 1 pre-existing FRAGMENT_MAP failure unrelated to this slice. No `.forge/` or `engineering/` edits.",
|
|
282
504
|
"regenerate": [
|
|
283
|
-
"schemas:
|
|
505
|
+
"schemas:event",
|
|
284
506
|
"schemas:event-sidecar",
|
|
285
507
|
"fragments:finalize",
|
|
286
508
|
"tools:store-cli",
|
|
@@ -290,14 +512,14 @@
|
|
|
290
512
|
],
|
|
291
513
|
"breaking": false,
|
|
292
514
|
"manual": [
|
|
293
|
-
"Existing event records on disk that lack `provider` will fail strict validation. On re-running collate or any read path that validates events, stamp legacy records with `provider: \"unknown\"`
|
|
515
|
+
"Existing event records on disk that lack `provider` will fail strict validation. On re-running collate or any read path that validates events, stamp legacy records with `provider: \"unknown\"` — a one-shot backfill helper will ship in a follow-up patch. New events emitted by `store-cli emit` auto-populate `provider` via FORGE_PROVIDER env var or fall back to \"unknown\".",
|
|
294
516
|
"`estimatedCostUSD` is no longer accepted on event or event-sidecar records. Existing records on disk that carry the field will fail strict validation; collate's recomputation path (lib/pricing.cjs) is now authoritative."
|
|
295
517
|
]
|
|
296
518
|
},
|
|
297
519
|
"0.43.11": {
|
|
298
520
|
"version": "0.43.12",
|
|
299
521
|
"date": "2026-05-14",
|
|
300
|
-
"notes": "build-base-pack.cjs + build-manifest.cjs allowlist bug
|
|
522
|
+
"notes": "build-base-pack.cjs + build-manifest.cjs allowlist bug — fragments added to meta/workflows/_fragments/ after the allowlists were last edited never reached init/base-pack/workflows/_fragments/, so the user-facing bundle silently dropped them. Discovered while debugging HLO-S01-T03 plan-phase friction in the testbench: store-cli verb fumble (#95) and event-shape iteration (#87) persisted after /forge:regenerate because store-cli-verbs.md and friction-emit.md were missing from the regenerated `.forge/workflows/_fragments/` even though the workflow body referenced them. Fix: both build-base-pack.cjs (fragment copy loop + expected-files validator) and build-manifest.cjs (FRAGMENT_MAP) now enumerate fragments dynamically from `meta/workflows/_fragments/*.md` instead of from hardcoded lists. Added parity assertion in build-base-pack.test.cjs that base-pack `_fragments/` must equal meta `_fragments/` exactly. Also bumped base-pack-byte-budget overrides for plan_task.md (5120→5632), implement_plan.md (5120→5888), validate_task.md (4096→4608) to absorb the now-included fragment references. Discovered blind spot: the replay-friction harness validates meta-source, not base-pack output — #95 PASSed in HLO-S01 without ever generating the user-facing fragment. Manifest fragment count 4 → 6 (store-cli-verbs.md + friction-emit.md now shipped).",
|
|
301
523
|
"regenerate": [
|
|
302
524
|
"tools:build-base-pack",
|
|
303
525
|
"tools:build-manifest",
|
|
@@ -311,7 +533,7 @@
|
|
|
311
533
|
"0.43.10": {
|
|
312
534
|
"version": "0.43.11",
|
|
313
535
|
"date": "2026-05-13",
|
|
314
|
-
"notes": "HLO-S01 friction-fix sweep
|
|
536
|
+
"notes": "HLO-S01 friction-fix sweep — batched migration covering 10 fixes surfaced by the 2026-05-13 dogfood run on /home/boni/src/forge-testbench/hello/ (umbrella forge#93). All non-breaking; each verified by the replay-friction harness (engineering/runbooks/hlo-s01/ in forge-engineering). Fixes: (a) #78/#76 meta-review-plan: `review-approved` → `plan-approved` so the review→plan-approved status flip matches the FSM; (b) #80 widen `event.type` enum to cover task-implemented, plan-complete, review-passed and the rest of the emitted set; (c) #79 task FSM permits `planned → implemented` (was illegal, breaking run-task phase 4 writeback); (d) #96 inline FSM transition table into plan_task / review_plan / implement_plan workflow prose so subagents read state machine inline, not from a sibling fragment; (e) #95 embed store-cli verb cheat-sheet into all run-task / fix-bug phase workflows via new shared `_fragments/store-cli-verbs.md` — eliminates `forge_store` invocation hallucinations; (f) #84 replace `/cost` slash-command pre-flight in implement/validate/update-implementation with a runtime-conditional probe ({{RUNTIME_COST_CMD}}) — fixes hard-fail when /cost is unavailable in the runtime; (g) #94 surface resolved `commands.test` (placeholder substitution) in workflow bodies, not just frontmatter — subagents now see the actual test command; (h) #87 gate `--force` behind `FORGE_ALLOW_FORCE` env in store-cli AND inline canonical event-shape into every workflow emit line (was two-bug pair: LLM-bypass + event mismatch); (i) #82 commit_task no longer hardcodes 'Claude' as Co-author — uses runtime principal; (j) forge-cli#5 forge-tools piece — native `--task-suffix` / `--sprint-suffix` flags on store-cli short-form resolution. Row 8 (forge#86 kickoff-shim markers in review_plan/review_code) was already covered by the 0.43.5 wave-2 migration — no new sub-target needed. forge#7 deferred (SKIPPED: needs live FORGE_DEBUG capture). Also bumped per-file byte budgets in phase-frontmatter.test.cjs across all nine subagent-targeted meta-workflow files (e.g. meta-plan-task 5500→6912, meta-implement 5500→7168, meta-update-plan 3072→3584) — same precedent as the 0.43.6 wave: legitimate friction-fix growth from #95 cheat-sheet + #96 FSM table + #87 event-shape + #84 cost probe + #94 commands.test inlined across phases. Budgets sized to current bytes + ~10% headroom, 512B-aligned.",
|
|
315
537
|
"regenerate": [
|
|
316
538
|
"workflows:plan_task",
|
|
317
539
|
"workflows:review_plan",
|
|
@@ -319,7 +541,7 @@
|
|
|
319
541
|
"workflows:validate_task",
|
|
320
542
|
"workflows:update_implementation",
|
|
321
543
|
"workflows:commit_task",
|
|
322
|
-
"schemas:
|
|
544
|
+
"schemas:event",
|
|
323
545
|
"tools:store-cli",
|
|
324
546
|
"fragments:store-cli-verbs",
|
|
325
547
|
"tools:integrity"
|
|
@@ -330,7 +552,7 @@
|
|
|
330
552
|
"0.43.9": {
|
|
331
553
|
"version": "0.43.10",
|
|
332
554
|
"date": "2026-05-13",
|
|
333
|
-
"notes": "Verdict-source refactor: preflight-gate `after <phase>` predicates now read structured verdicts from store.task.summaries.<canonical>.verdict (and task.status for approve), not regex-parse markdown. New module forge/tools/read-verdict.cjs centralises the phase.role
|
|
555
|
+
"notes": "Verdict-source refactor: preflight-gate `after <phase>` predicates now read structured verdicts from store.task.summaries.<canonical>.verdict (and task.status for approve), not regex-parse markdown. New module forge/tools/read-verdict.cjs centralises the phase.role → canonical-summary-key mapping (mirrors VALID_SUMMARY_PHASES) and the approve-via-status sentinel. Eliminates three classes of recurring bugs: (a) forge#91 (approve phase markdown-vs-store mismatch), (b) forge-cli#11 (review-code → code_review key reversal), (c) the underscore-swap defensive fallback dance in run-task.ts (still present, now redundant). Removed: forge/tools/parse-verdict.cjs and its test (no consumers remaining). preflight()'s `verdictSources` parameter and the `resolveVerdictSources` helper are gone — `after` reads live from state.task / state.bug directly. The `**Verdict:**` line in review markdown is now a human breadcrumb only; the byte-budget lint asserting its presence is retained but documented as advisory. meta-approve.md updated to clarify the markdown line is not load-bearing. Live testbench HLO-S01-T01 commit preflight: EXIT=0 via the new store path. +11 read-verdict unit tests, +2 preflight tests (approve via status; revision in store).",
|
|
334
556
|
"regenerate": [
|
|
335
557
|
"tools:preflight-gate",
|
|
336
558
|
"tools:read-verdict",
|
|
@@ -352,7 +574,7 @@
|
|
|
352
574
|
"0.43.7": {
|
|
353
575
|
"version": "0.43.8",
|
|
354
576
|
"date": "2026-05-13",
|
|
355
|
-
"notes": "preflight-gate.cjs: gate-less phases now pass through (exit 0) instead of escalating (exit 2). Some run-task phases are intentionally gate-less by design
|
|
577
|
+
"notes": "preflight-gate.cjs: gate-less phases now pass through (exit 0) instead of escalating (exit 2). Some run-task phases are intentionally gate-less by design — writeback (collator regen) has no predecessor verdict to check. The previous semantic conflated `phase not declared in any workflow` and `workflow declares no gate block for phase` with `misconfiguration` (exit 2), causing live regression at phase 7 (writeback) of /forge:run-task HLO-S01-T01: `× preflight gate escalated for phase writeback (exit 2); manual intervention required`. Both `no workflow declares phase` and `no gate block for declared phase` now exit 0 with an informational stderr note. Exit 2 stays reserved for real argument / parse errors (unchanged). +1 regression test (sibling case: workflow exists, no gate block).",
|
|
356
578
|
"regenerate": [
|
|
357
579
|
"tools:preflight-gate"
|
|
358
580
|
],
|
|
@@ -362,7 +584,7 @@
|
|
|
362
584
|
"0.43.6": {
|
|
363
585
|
"version": "0.43.7",
|
|
364
586
|
"date": "2026-05-13",
|
|
365
|
-
"notes": "Pack-06 materialization-marker regression fix, third (final) wave + structural lint. Adds Iron Laws + Store-Write Verification sections (plus persona-load step and `forge_store` token) to the remaining six meta workflows that subagent-target the run-task / fix-bug pipeline: meta-validate.md, meta-approve.md, meta-collate.md, meta-commit.md, meta-update-plan.md, meta-update-implementation.md. Live testbench surfaced the gap at phase 5 (validate) of /forge:run-task: kickoff shim hard-failed with
|
|
587
|
+
"notes": "Pack-06 materialization-marker regression fix, third (final) wave + structural lint. Adds Iron Laws + Store-Write Verification sections (plus persona-load step and `forge_store` token) to the remaining six meta workflows that subagent-target the run-task / fix-bug pipeline: meta-validate.md, meta-approve.md, meta-collate.md, meta-commit.md, meta-update-plan.md, meta-update-implementation.md. Live testbench surfaced the gap at phase 5 (validate) of /forge:run-task: kickoff shim hard-failed with `× workflow regression: Store-Write Verification not found in validate_task.md`. Three waves (0.43.2 plan/implement, 0.43.5 review-plan/review-code, 0.43.6 validate/approve/collate/commit/update-plan/update-impl) is the cost of discovering one phase at a time. Encoded a regression lint in base-pack-byte-budget.test.cjs (`phase files carry kickoff-shim markers`) that asserts all four markers across every PHASE_FILE — future drop-throughs fail the build, not the smoke test. Also bumped per-file byte budgets for meta-validate.md (4096→5120), meta-approve.md / meta-commit.md (3072→4096). See forge#? (this entry's GH issue).",
|
|
366
588
|
"regenerate": [
|
|
367
589
|
"workflows:validate_task",
|
|
368
590
|
"workflows:architect_approve",
|
|
@@ -377,7 +599,7 @@
|
|
|
377
599
|
"0.43.5": {
|
|
378
600
|
"version": "0.43.6",
|
|
379
601
|
"date": "2026-05-13",
|
|
380
|
-
"notes": "preflight-gate.cjs artifact-dir resolution fix. Two compounding bugs surfaced when a sprint dir contained an artifact directory named exactly `<taskId>` (no `-<slug>` suffix
|
|
602
|
+
"notes": "preflight-gate.cjs artifact-dir resolution fix. Two compounding bugs surfaced when a sprint dir contained an artifact directory named exactly `<taskId>` (no `-<slug>` suffix — modern convention). (1) resolveTaskArtifactDir Pass 1 required `entry.startsWith(taskId + '-')`, rejecting exact-match entries. Pass 2's `<sprintId>-` prefix matcher also didn't apply when taskId already embeds sprintId (e.g. taskId=`HLO-S01-T01`, sprintId=`S01`). resolveTaskArtifactDir returned null. (2) The fallback then set `taskArtifactPath = taskRecord.path` directly — but `taskRecord.path` is the primary source FILE (e.g. `TASK_PROMPT.md`), not a directory. Predecessor-review resolution then appended `PLAN_REVIEW.md` to the file path, producing bogus paths like `.../TASK_PROMPT.md/PLAN_REVIEW.md` (ENOTDIR), failing every `after <phase>` gate. Fix: Pass 1 now also accepts `entry === taskId`; fallback dirname()s task.path when it has a file extension. Live testbench regression: phase 3 (implement) of `/forge:run-task HLO-S01-T01` was hard-failing preflight. After patch, EXIT=0. See forge#?.",
|
|
381
603
|
"regenerate": [
|
|
382
604
|
"tools:preflight-gate"
|
|
383
605
|
],
|
|
@@ -387,7 +609,7 @@
|
|
|
387
609
|
"0.43.4": {
|
|
388
610
|
"version": "0.43.5",
|
|
389
611
|
"date": "2026-05-13",
|
|
390
|
-
"notes": "Pack-06 materialization-marker regression fix, second wave. Adds Iron Laws + Store-Write Verification sections (plus `.forge/personas/supervisor.md` persona-load step and `forge_store` tokens) to meta-review-plan.md and meta-review-implementation.md so generated review_plan.md and review_code.md carry the four markers required by forge-cli /forge:run-task's per-phase kickoff shim. Without these markers, every fresh init since 0.43.2 has shipped review-plan / review-code workflows that hard-fail phase 2 (and phase 4) of /forge:run-task with
|
|
612
|
+
"notes": "Pack-06 materialization-marker regression fix, second wave. Adds Iron Laws + Store-Write Verification sections (plus `.forge/personas/supervisor.md` persona-load step and `forge_store` tokens) to meta-review-plan.md and meta-review-implementation.md so generated review_plan.md and review_code.md carry the four markers required by forge-cli /forge:run-task's per-phase kickoff shim. Without these markers, every fresh init since 0.43.2 has shipped review-plan / review-code workflows that hard-fail phase 2 (and phase 4) of /forge:run-task with `× workflow regression: Store-Write Verification not found ...`. Root cause: 0.43.2 patched meta-plan-task.md and meta-implement.md, but the symmetric review metas were missed. Side-effect: per-file byte budgets bumped for review_plan.md / review_code.md (4096→5120) and meta-review-plan.md / meta-review-implementation.md (3200/4200→4500/5500) to fit the marker blocks. See forge#85.",
|
|
391
613
|
"regenerate": [
|
|
392
614
|
"workflows:review_plan",
|
|
393
615
|
"workflows:review_code"
|
|
@@ -408,7 +630,7 @@
|
|
|
408
630
|
"0.43.2": {
|
|
409
631
|
"version": "0.43.3",
|
|
410
632
|
"date": "2026-05-10",
|
|
411
|
-
"notes": "Adds workflows/enhance.md to base-pack (FORGE-S20-T04 sprint-completion gap fix). meta-enhance.md now generates init/base-pack/workflows/enhance.md via the standard transformWorkflow path; build-base-pack expects 20 workflow files (was 19); enhance.md ships with Iron Laws + Store-Write Verification + forge_store + engineer.md markers required by the forge-cli /forge:enhance kickoff shim. Without this file, /forge:enhance hard-failed every fresh init with
|
|
633
|
+
"notes": "Adds workflows/enhance.md to base-pack (FORGE-S20-T04 sprint-completion gap fix). meta-enhance.md now generates init/base-pack/workflows/enhance.md via the standard transformWorkflow path; build-base-pack expects 20 workflow files (was 19); enhance.md ships with Iron Laws + Store-Write Verification + forge_store + engineer.md markers required by the forge-cli /forge:enhance kickoff shim. Without this file, /forge:enhance hard-failed every fresh init with `× forge:enhance — workflow not found at .forge/workflows/enhance.md`. enhance.md is orchestrator-only audience and exempt from the 4KB phase-file byte budget. Pairs with forge-cli v0.5.7.",
|
|
412
634
|
"regenerate": [
|
|
413
635
|
"workflows:enhance"
|
|
414
636
|
],
|
|
@@ -418,7 +640,7 @@
|
|
|
418
640
|
"0.43.1": {
|
|
419
641
|
"version": "0.43.2",
|
|
420
642
|
"date": "2026-05-10",
|
|
421
|
-
"notes": "Pack-06 materialization-marker regression fix. Adds Iron Laws + Store-Write Verification sections (plus persona-load step and forge_store token) to meta-plan-task.md and meta-implement.md so generated plan_task.md and implement_plan.md carry the four markers required by forge-cli /forge:plan and /forge:implement kickoff shims. Without these markers, every fresh init produced workflows that hard-failed on dispatch with
|
|
643
|
+
"notes": "Pack-06 materialization-marker regression fix. Adds Iron Laws + Store-Write Verification sections (plus persona-load step and forge_store token) to meta-plan-task.md and meta-implement.md so generated plan_task.md and implement_plan.md carry the four markers required by forge-cli /forge:plan and /forge:implement kickoff shims. Without these markers, every fresh init produced workflows that hard-failed on dispatch with `× workflow regression: Store-Write Verification not found` (and three siblings: Iron Laws, forge_store, persona file path). Root cause: forge-cli FORGE-S20-T04/T05/T06 added kickoff-shim materialization preconditions but never updated the corresponding meta sources or base-pack regen. Side-effect: bumps base-pack byte budget for plan_task.md/implement_plan.md from 4096→5120 (per-file overrides) and meta-plan-task/meta-implement from 4096→5500 to fit the marker blocks. Pairs with forge-cli v0.5.6.",
|
|
422
644
|
"regenerate": [
|
|
423
645
|
"workflows:plan_task",
|
|
424
646
|
"workflows:implement_plan"
|
|
@@ -429,7 +651,7 @@
|
|
|
429
651
|
"0.43.0": {
|
|
430
652
|
"version": "0.43.1",
|
|
431
653
|
"date": "2026-05-10",
|
|
432
|
-
"notes": "Direct-exec contract patch. Replaces all `/forge:store ...` slash-command references in init/base-pack/workflows/*.md (and _fragments/) with the canonical `node \"$FORGE_ROOT/tools/store-cli.cjs\" ...` direct-cjs form already used by meta/workflows/*.md. Pairs with forge-cli v0.5.1 (system-prompt tool-discipline block, kickoff-prompt rewrites, and bin fast-path for `forge {store|collate|validate-store|store-query} ...`). Root cause: cartographer testbench observed haiku-4-5 burning 26-220s per `bash forge store ...` shell-out
|
|
654
|
+
"notes": "Direct-exec contract patch. Replaces all `/forge:store ...` slash-command references in init/base-pack/workflows/*.md (and _fragments/) with the canonical `node \"$FORGE_ROOT/tools/store-cli.cjs\" ...` direct-cjs form already used by meta/workflows/*.md. Pairs with forge-cli v0.5.1 (system-prompt tool-discipline block, kickoff-prompt rewrites, and bin fast-path for `forge {store|collate|validate-store|store-query} ...`). Root cause: cartographer testbench observed haiku-4-5 burning 26-220s per `bash forge store ...` shell-out — each invocation spawned a fresh pi/agent loop. Fix: prescriptive system prompt + canonical workflow text + bin fast-path. Existing `/forge:store` materialized workflows remain functional under the bin fast-path; no manual migration required for projects on v0.43.0.",
|
|
433
655
|
"regenerate": [
|
|
434
656
|
"workflows:base-pack-store-cli-form"
|
|
435
657
|
],
|
|
@@ -439,7 +661,7 @@
|
|
|
439
661
|
"0.42.0": {
|
|
440
662
|
"version": "0.43.0",
|
|
441
663
|
"date": "2026-05-10",
|
|
442
|
-
"notes": "FORGE-S20 Sprint A
|
|
664
|
+
"notes": "FORGE-S20 Sprint A — Friction emit channel + foundation. T00 lands the writer side of the friction channel: event.schema.json gains `type:\"friction\"` enum with conditional required {workflow, persona, issue} via a JSON-Schema `allOf if/then` block; validate-store.cjs gains a minimal `allOf if/then required` interpreter; five meta-workflows (implement, fix-bug, validate, plan-task, orchestrate) now carry an explicit Friction Emit section describing trigger conditions and the canonical flat-payload `node \"$FORGE_ROOT/tools/store-cli.cjs\" emit` shape. T01 narrows the optional slots reserved by T00: `subkind` is constrained to a frozen enum (skill_unused|skill_failed|skill_missing|skill_stale|skill_redundant) plus a reserved `^x_[a-z_]+$` experimental namespace (no migration required for x_*), encoded as a single combined regex pattern; `evidence` is shaped into a closed object (trajectory_excerpt:string, tool_errors:string[], retrieval_score:number 0..1, skillId:string ref); validate-store.cjs gains a minimal `pattern` interpreter on string fields. Unblocks Plan 08 Phase B (dynamic skill curation): /forge:enhance --phase 2 reader has been waiting for typed writers since S13-T08. Non-breaking: events without `type` continue to validate exactly as before, and T00-shaped friction events without subkind/evidence remain valid because those slots are not in the friction allOf then-required block.",
|
|
443
665
|
"regenerate": [
|
|
444
666
|
"events:friction-emit",
|
|
445
667
|
"events:friction-subkind",
|
|
@@ -458,7 +680,7 @@
|
|
|
458
680
|
"0.41.0": {
|
|
459
681
|
"version": "0.42.0",
|
|
460
682
|
"date": "2026-05-10",
|
|
461
|
-
"notes": "Release-routine catch-up bump. No code changes. Promotes v0.40.3 (substitute-placeholders --target pi) and v0.41.0 (store-cli describe/template + validate hint) cumulatively to skillforge marketplace under a single tag. Users on v0.40+
|
|
683
|
+
"notes": "Release-routine catch-up bump. No code changes. Promotes v0.40.3 (substitute-placeholders --target pi) and v0.41.0 (store-cli describe/template + validate hint) cumulatively to skillforge marketplace under a single tag. Users on v0.40+ → /forge:update is non-breaking. Users on <v0.40 still need the v0.40.0 manual migration path (run /forge:update then /forge:migrate per v0.40.0 entry).",
|
|
462
684
|
"regenerate": [],
|
|
463
685
|
"breaking": false,
|
|
464
686
|
"manual": []
|
|
@@ -466,7 +688,7 @@
|
|
|
466
688
|
"0.40.3": {
|
|
467
689
|
"version": "0.41.0",
|
|
468
690
|
"date": "2026-05-09",
|
|
469
|
-
"notes": "Add store-cli describe/template subcommands and validate.js error hint (FORGE-BUG-029-friction). describe <entity> prints raw JSON Schema; template <entity> prints canonical sample with required fields populated. validateRecord errors now include a hint pointing to template/describe when entity is known. Reduces write
|
|
691
|
+
"notes": "Add store-cli describe/template subcommands and validate.js error hint (FORGE-BUG-029-friction). describe <entity> prints raw JSON Schema; template <entity> prints canonical sample with required fields populated. validateRecord errors now include a hint pointing to template/describe when entity is known. Reduces write→reject→retry friction on weak/non-Anthropic models. No breaking changes.",
|
|
470
692
|
"regenerate": [
|
|
471
693
|
"tools:store-cli",
|
|
472
694
|
"tools:lib:validate"
|
|
@@ -505,11 +727,11 @@
|
|
|
505
727
|
"workflows:migrate_structural",
|
|
506
728
|
"workflows:_fragments",
|
|
507
729
|
"schemas:config",
|
|
508
|
-
"schemas:update-check-cache",
|
|
509
730
|
"schemas:structure-manifest"
|
|
510
731
|
],
|
|
511
732
|
"breaking": false,
|
|
512
|
-
"manual": []
|
|
733
|
+
"manual": [],
|
|
734
|
+
"notes_addendum": "removed schemas:update-check-cache target — not a schema (runtime cache only); the target was never resolvable. Removed by FORGE-S25-T12 (N-S-1)."
|
|
513
735
|
},
|
|
514
736
|
"0.40.0": {
|
|
515
737
|
"version": "0.40.1",
|
|
@@ -525,7 +747,7 @@
|
|
|
525
747
|
"0.32.0": {
|
|
526
748
|
"version": "0.40.0",
|
|
527
749
|
"date": "2026-05-02",
|
|
528
|
-
"notes": "Base-pack init with progressive enhancement (S13
|
|
750
|
+
"notes": "Base-pack init with progressive enhancement (S13 — T02–T06 + T08–T10 + T11 friction reconciliation). Replaces multi-minute LLM cold-start init with a deterministic 4-phase pipeline (Collect → Discover → Materialize → Register, ~30–45s). Working artefacts ship as a base-pack with {{KEY}} placeholders; init substitutes from config.json + project-context.json (no LLM in materialization). New project-context.json schema (T02), substitute-placeholders.cjs tool (T03), 4-phase sdlc-init.md (T04), versioned structural snapshots in structure-versions.json (T05), npm run build-base-pack regeneration script (T06), enhancement agent skill at meta/workflows/meta-enhance.md and commands/enhance.md (T08), post-init + post-sprint hooks (T09), migration agent at meta/workflows/meta-migrate.md (T10), and bucket-A friction fixes (T11) covering forge#71 (7 sub-bugs in /forge:update) and forge#72 (preflight-gate workflow shadowing). Breaking: --fast aliases to default; init-progress.json is now 4-phase; structure-versions.json + project-context.json are net-new files; manage-versions.cjs is now the gateway for snapshot writes.",
|
|
529
751
|
"regenerate": [
|
|
530
752
|
"workflows:orchestrate_task",
|
|
531
753
|
"workflows:fix_bug",
|
|
@@ -561,10 +783,10 @@
|
|
|
561
783
|
],
|
|
562
784
|
"breaking": true,
|
|
563
785
|
"manual": [
|
|
564
|
-
"Init flow is now 4 phases (Collect
|
|
786
|
+
"Init flow is now 4 phases (Collect → Discover → Materialize → Register). --fast and --full both run the same deterministic pipeline; existing init-progress.json checkpoints from 12-phase runs are deleted automatically on resume.",
|
|
565
787
|
"structure-versions.json and project-context.json are net-new files at .forge/. Existing installations without them are migrated by /forge:migrate (T10).",
|
|
566
|
-
"Existing users on v0.28
|
|
567
|
-
"After /forge:update, run /forge:update-tools to install the three new schemas (project-context.schema.json, structure-versions.schema.json, project-overlay.schema.json) into .forge/schemas/. /forge:update does not regenerate schemas
|
|
788
|
+
"Existing users on v0.28–v0.30.x: run /forge:update to install the new tools and workflows, then /forge:migrate to synthesise project-context.json from existing .forge/ artefacts. /forge:migrate archives the pre-migration .forge/ contents to .forge/archive/pre-migration/.",
|
|
789
|
+
"After /forge:update, run /forge:update-tools to install the three new schemas (project-context.schema.json, structure-versions.schema.json, project-overlay.schema.json) into .forge/schemas/. /forge:update does not regenerate schemas — this is by design (T11 forge#71-bug3); /forge:update-tools is the dedicated path for schema installation.",
|
|
568
790
|
"After /forge:update-tools, run /forge:health to verify integrity.json and snapshot v0 register cleanly.",
|
|
569
791
|
"T11 fixes: /forge:update Step 1 baseline derivation now uses localVersion ?? migratedFrom ?? LOCAL_VERSION; preflight-gate.cjs no longer requires --workflow workaround for orchestrate_task; integrity.json regenerated from current hashes (no false-positive on /forge:health post-update)."
|
|
570
792
|
]
|
|
@@ -572,7 +794,7 @@
|
|
|
572
794
|
"0.31.0": {
|
|
573
795
|
"version": "0.32.0",
|
|
574
796
|
"date": "2026-05-01",
|
|
575
|
-
"notes": "Init flow rewrite (T04): replace 12-phase init with 4-phase model (Collect
|
|
797
|
+
"notes": "Init flow rewrite (T04): replace 12-phase init with 4-phase model (Collect → Discover → Materialize → Register). forge/commands/init.md and forge/init/sdlc-init.md fully rewritten. Phase 3 calls substitute-placeholders.cjs to produce fully functional workflows (no stubs). Phase 4 writes structure-versions.json at .forge/structure-versions.json (T05 stub), generation-manifest.json, persona-pack.json, context-pack.md/json, init-context.json/md, store seed, update-check cache, and invokes refresh-kb-links. --fast and --full flags accepted as no-ops (both run identical 4-phase flow). Old 12-phase checkpoint files deleted automatically on resume.",
|
|
576
798
|
"regenerate": [],
|
|
577
799
|
"breaking": false,
|
|
578
800
|
"manual": []
|
|
@@ -588,7 +810,7 @@
|
|
|
588
810
|
"0.29.0": {
|
|
589
811
|
"version": "0.30.0",
|
|
590
812
|
"date": "2026-05-01",
|
|
591
|
-
"notes": "Prompt-efficiency structural cut (T01_6): (1) phase meta sources split by audience
|
|
813
|
+
"notes": "Prompt-efficiency structural cut (T01_6): (1) phase meta sources split by audience — orchestrate_task/fix_bug carry audience:orchestrator-only, all phase files carry audience:subagent with context: block; (2) PROJECT_OVERLAY replaces mandatory MASTER_INDEX.md reads — build-overlay.cjs materialises a ≤1kB task-scoped index slice injected by the orchestrator; architecture_block is now conditional on phase.context.architecture; (3) store-cli success-path stdout is now silent — pass --verbose for legacy JSON echo; (4) new _fragments/finalize.md carries the /cost sidecar contract; (5) review-code and validate phases default to diff-first read mode. Breaking: store-cli JSON stdout no longer emitted on success.",
|
|
592
814
|
"regenerate": [
|
|
593
815
|
"workflows:orchestrate_task",
|
|
594
816
|
"workflows:fix_bug",
|
|
@@ -614,7 +836,7 @@
|
|
|
614
836
|
"0.28.1": {
|
|
615
837
|
"version": "0.29.0",
|
|
616
838
|
"date": "2026-04-29",
|
|
617
|
-
"notes": "Security hardening (FORGE-BUG-016): fix 5 critical findings from security scan v0.28.0. (1) Bulk permission escalation: persist only matched rule instead of all 31 rules. (2) Remove node -e/p auto-approve
|
|
839
|
+
"notes": "Security hardening (FORGE-BUG-016): fix 5 critical findings from security scan v0.28.0. (1) Bulk permission escalation: persist only matched rule instead of all 31 rules. (2) Remove node -e/p auto-approve — arbitrary code execution requires explicit approval. (3) Add domain allowlist for update URLs. (4) Block prototype pollution (__proto__/constructor/prototype) in getByPath/setByPath. (5) Add path traversal guard to cmdProgress/cmdProgressClear. Also scopes broad wildcards (touch, rmdir, rm -f) and adds require.main guard to forge-permissions.js.",
|
|
618
840
|
"regenerate": [
|
|
619
841
|
"hooks:forge-permissions",
|
|
620
842
|
"hooks:check-update",
|
|
@@ -623,7 +845,7 @@
|
|
|
623
845
|
],
|
|
624
846
|
"breaking": true,
|
|
625
847
|
"manual": [
|
|
626
|
-
"node -e one-liners will now prompt for approval
|
|
848
|
+
"node -e one-liners will now prompt for approval — this is intentional. Run /forge:update to refresh hooks and tools."
|
|
627
849
|
]
|
|
628
850
|
},
|
|
629
851
|
"0.27.1": {
|
|
@@ -667,7 +889,7 @@
|
|
|
667
889
|
],
|
|
668
890
|
"breaking": false,
|
|
669
891
|
"manual": [
|
|
670
|
-
"Restart Claude Code after updating for the new hook to take effect. On first Forge command, approve each permission prompt once
|
|
892
|
+
"Restart Claude Code after updating for the new hook to take effect. On first Forge command, approve each permission prompt once — they will persist for future sessions."
|
|
671
893
|
]
|
|
672
894
|
},
|
|
673
895
|
"0.24.2": {
|
|
@@ -786,14 +1008,14 @@
|
|
|
786
1008
|
"0.17.1": {
|
|
787
1009
|
"version": "0.18.0",
|
|
788
1010
|
"date": "2026-04-19",
|
|
789
|
-
"notes": "Write-boundary schema enforcement. New PreToolUse hook (hooks/validate-write.js) intercepts Write/Edit/MultiEdit against Forge-owned paths under .forge/store/ and validates the proposed contents against the matching schema
|
|
1011
|
+
"notes": "Write-boundary schema enforcement. New PreToolUse hook (hooks/validate-write.js) intercepts Write/Edit/MultiEdit against Forge-owned paths under .forge/store/ and validates the proposed contents against the matching schema — task, sprint, bug, feature, event, event-sidecar, collation-state, and progress-log entries. Three new schemas added (event-sidecar, progress-entry, collation-state). store-cli gains schema enforcement on the four previously unvalidated write paths (sidecar emit, sidecar merge, progress append, collation-state write). Shared validator extracted to tools/lib/validate.js and reused by both the hook and store-cli. Emergency bypass via FORGE_SKIP_WRITE_VALIDATION=1, which also appends an audit line to the affected sprint's progress.log.",
|
|
790
1012
|
"regenerate": [
|
|
791
1013
|
"hooks",
|
|
792
1014
|
"schemas"
|
|
793
1015
|
],
|
|
794
1016
|
"breaking": false,
|
|
795
1017
|
"manual": [
|
|
796
|
-
"Run /forge:update to install the new write-boundary hook. Any existing tooling that writes malformed JSON to .forge/store/ will now be rejected at write time
|
|
1018
|
+
"Run /forge:update to install the new write-boundary hook. Any existing tooling that writes malformed JSON to .forge/store/ will now be rejected at write time — fix the data, don't bypass the hook."
|
|
797
1019
|
]
|
|
798
1020
|
},
|
|
799
1021
|
"0.17.0": {
|
|
@@ -846,7 +1068,7 @@
|
|
|
846
1068
|
"0.14.0": {
|
|
847
1069
|
"version": "0.14.1",
|
|
848
1070
|
"date": "2026-04-18",
|
|
849
|
-
"notes": "collate now generates Sprint, Task, and Bug INDEX.md files
|
|
1071
|
+
"notes": "collate now generates Sprint, Task, and Bug INDEX.md files — closes broken knowledge graph links from MASTER_INDEX.md. refresh-kb-links skill gains KB integrity check that warns when INDEX files are missing.",
|
|
850
1072
|
"regenerate": [],
|
|
851
1073
|
"breaking": false,
|
|
852
1074
|
"manual": []
|
|
@@ -862,7 +1084,7 @@
|
|
|
862
1084
|
"0.13.0": {
|
|
863
1085
|
"version": "0.13.1",
|
|
864
1086
|
"date": "2026-04-18",
|
|
865
|
-
"notes": "Tomoshibi Oracle warns before config changes that require regeneration
|
|
1087
|
+
"notes": "Tomoshibi Oracle warns before config changes that require regeneration — project.prefix change now shows impact and exact follow-up command before [Y/n] prompt.",
|
|
866
1088
|
"regenerate": [],
|
|
867
1089
|
"breaking": false,
|
|
868
1090
|
"manual": []
|
|
@@ -899,7 +1121,7 @@
|
|
|
899
1121
|
"0.12.3": {
|
|
900
1122
|
"version": "0.12.4",
|
|
901
1123
|
"date": "2026-04-17",
|
|
902
|
-
"notes": "Fast-mode capability announcement: every materialise round (per-workflow stub trigger or /forge:materialize --all) now emits a 2-line summary like '
|
|
1124
|
+
"notes": "Fast-mode capability announcement: every materialise round (per-workflow stub trigger or /forge:materialize --all) now emits a 2-line summary like '〇 Forge is currently in fast mode · 5% capabilities generated (2 of 41) — this round will lift capabilities to 29% (12 of 41, +10 artifact(s))'. Silent on full installs. New ensure-ready.cjs subcommands: --capabilities, --capabilities-after, --announce.",
|
|
903
1125
|
"regenerate": [],
|
|
904
1126
|
"breaking": false,
|
|
905
1127
|
"manual": []
|
|
@@ -907,7 +1129,7 @@
|
|
|
907
1129
|
"0.12.2": {
|
|
908
1130
|
"version": "0.12.3",
|
|
909
1131
|
"date": "2026-04-17",
|
|
910
|
-
"notes": "Visual onboarding character: hero banners and per-phase/step badges across /forge:init, /forge:update, /forge:regenerate, /forge:health (and light touch on /forge:config and /forge:materialize). banners.cjs gains progressBar, subtitle, phaseHeader, plain-mode (NO_COLOR / non-tty / --plain). Backwards-compatible
|
|
1132
|
+
"notes": "Visual onboarding character: hero banners and per-phase/step badges across /forge:init, /forge:update, /forge:regenerate, /forge:health (and light touch on /forge:config and /forge:materialize). banners.cjs gains progressBar, subtitle, phaseHeader, plain-mode (NO_COLOR / non-tty / --plain). Backwards-compatible — all existing API + emits still work; new visuals are additive.",
|
|
911
1133
|
"regenerate": [],
|
|
912
1134
|
"breaking": false,
|
|
913
1135
|
"manual": []
|
|
@@ -975,7 +1197,7 @@
|
|
|
975
1197
|
"0.10.0": {
|
|
976
1198
|
"version": "0.10.1",
|
|
977
1199
|
"date": "2026-04-16",
|
|
978
|
-
"notes": "Fix: quiz_agent.md was missing from new inits
|
|
1200
|
+
"notes": "Fix: quiz_agent.md was missing from new inits — add meta-quiz-agent.md so Phase 7 generates the KB knowledge-check workflow.",
|
|
979
1201
|
"regenerate": [
|
|
980
1202
|
"workflows"
|
|
981
1203
|
],
|
|
@@ -985,7 +1207,7 @@
|
|
|
985
1207
|
"0.9.18": {
|
|
986
1208
|
"version": "0.10.0",
|
|
987
1209
|
"date": "2026-04-16",
|
|
988
|
-
"notes": "0.9.x
|
|
1210
|
+
"notes": "0.9.x → 0.10.0 — Tomoshibi agent (灯): coding-agent instruction files linked to Forge KB and workflows; KB folder name configurable at init pre-flight (paths.engineering); forge:init Phase 12, forge:update Step 7, meta-collate Finalize. Full 0.9.x cycle: store custodian gateway, named-agent IPC with phase banners and Monitor streaming, orchestrator context compaction, banner library, calibrate command, add-task, health improvements, structure manifest, BUG-008/009 fixes.",
|
|
989
1211
|
"regenerate": [
|
|
990
1212
|
"workflows",
|
|
991
1213
|
"commands",
|
|
@@ -999,7 +1221,7 @@
|
|
|
999
1221
|
"0.9.17": {
|
|
1000
1222
|
"version": "0.10.0",
|
|
1001
1223
|
"date": "2026-04-16",
|
|
1002
|
-
"notes": "0.9.x
|
|
1224
|
+
"notes": "0.9.x → 0.10.0 — see 0.9.18 entry.",
|
|
1003
1225
|
"regenerate": [
|
|
1004
1226
|
"workflows",
|
|
1005
1227
|
"commands",
|
|
@@ -1013,7 +1235,7 @@
|
|
|
1013
1235
|
"0.9.16": {
|
|
1014
1236
|
"version": "0.10.0",
|
|
1015
1237
|
"date": "2026-04-16",
|
|
1016
|
-
"notes": "0.9.x
|
|
1238
|
+
"notes": "0.9.x → 0.10.0 — see 0.9.18 entry.",
|
|
1017
1239
|
"regenerate": [
|
|
1018
1240
|
"workflows",
|
|
1019
1241
|
"commands",
|
|
@@ -1027,7 +1249,7 @@
|
|
|
1027
1249
|
"0.9.15": {
|
|
1028
1250
|
"version": "0.10.0",
|
|
1029
1251
|
"date": "2026-04-16",
|
|
1030
|
-
"notes": "0.9.x
|
|
1252
|
+
"notes": "0.9.x → 0.10.0 — see 0.9.18 entry.",
|
|
1031
1253
|
"regenerate": [
|
|
1032
1254
|
"workflows",
|
|
1033
1255
|
"commands",
|
|
@@ -1041,7 +1263,7 @@
|
|
|
1041
1263
|
"0.9.14": {
|
|
1042
1264
|
"version": "0.10.0",
|
|
1043
1265
|
"date": "2026-04-16",
|
|
1044
|
-
"notes": "0.9.x
|
|
1266
|
+
"notes": "0.9.x → 0.10.0 — see 0.9.18 entry.",
|
|
1045
1267
|
"regenerate": [
|
|
1046
1268
|
"workflows",
|
|
1047
1269
|
"commands",
|
|
@@ -1055,7 +1277,7 @@
|
|
|
1055
1277
|
"0.9.13": {
|
|
1056
1278
|
"version": "0.10.0",
|
|
1057
1279
|
"date": "2026-04-16",
|
|
1058
|
-
"notes": "0.9.x
|
|
1280
|
+
"notes": "0.9.x → 0.10.0 — see 0.9.18 entry.",
|
|
1059
1281
|
"regenerate": [
|
|
1060
1282
|
"workflows",
|
|
1061
1283
|
"commands",
|
|
@@ -1069,7 +1291,7 @@
|
|
|
1069
1291
|
"0.9.12": {
|
|
1070
1292
|
"version": "0.10.0",
|
|
1071
1293
|
"date": "2026-04-16",
|
|
1072
|
-
"notes": "0.9.x
|
|
1294
|
+
"notes": "0.9.x → 0.10.0 — see 0.9.18 entry.",
|
|
1073
1295
|
"regenerate": [
|
|
1074
1296
|
"workflows",
|
|
1075
1297
|
"commands",
|
|
@@ -1083,7 +1305,7 @@
|
|
|
1083
1305
|
"0.9.11": {
|
|
1084
1306
|
"version": "0.10.0",
|
|
1085
1307
|
"date": "2026-04-16",
|
|
1086
|
-
"notes": "0.9.x
|
|
1308
|
+
"notes": "0.9.x → 0.10.0 — see 0.9.18 entry.",
|
|
1087
1309
|
"regenerate": [
|
|
1088
1310
|
"workflows",
|
|
1089
1311
|
"commands",
|
|
@@ -1097,7 +1319,7 @@
|
|
|
1097
1319
|
"0.9.10": {
|
|
1098
1320
|
"version": "0.10.0",
|
|
1099
1321
|
"date": "2026-04-16",
|
|
1100
|
-
"notes": "0.9.x
|
|
1322
|
+
"notes": "0.9.x → 0.10.0 — see 0.9.18 entry.",
|
|
1101
1323
|
"regenerate": [
|
|
1102
1324
|
"workflows",
|
|
1103
1325
|
"commands",
|
|
@@ -1111,7 +1333,7 @@
|
|
|
1111
1333
|
"0.9.9": {
|
|
1112
1334
|
"version": "0.10.0",
|
|
1113
1335
|
"date": "2026-04-16",
|
|
1114
|
-
"notes": "0.9.x
|
|
1336
|
+
"notes": "0.9.x → 0.10.0 — see 0.9.18 entry.",
|
|
1115
1337
|
"regenerate": [
|
|
1116
1338
|
"workflows",
|
|
1117
1339
|
"commands",
|
|
@@ -1125,7 +1347,7 @@
|
|
|
1125
1347
|
"0.9.8": {
|
|
1126
1348
|
"version": "0.10.0",
|
|
1127
1349
|
"date": "2026-04-16",
|
|
1128
|
-
"notes": "0.9.x
|
|
1350
|
+
"notes": "0.9.x → 0.10.0 — see 0.9.18 entry.",
|
|
1129
1351
|
"regenerate": [
|
|
1130
1352
|
"workflows",
|
|
1131
1353
|
"commands",
|
|
@@ -1139,7 +1361,7 @@
|
|
|
1139
1361
|
"0.9.7": {
|
|
1140
1362
|
"version": "0.10.0",
|
|
1141
1363
|
"date": "2026-04-16",
|
|
1142
|
-
"notes": "0.9.x
|
|
1364
|
+
"notes": "0.9.x → 0.10.0 — see 0.9.18 entry.",
|
|
1143
1365
|
"regenerate": [
|
|
1144
1366
|
"workflows",
|
|
1145
1367
|
"commands",
|
|
@@ -1153,7 +1375,7 @@
|
|
|
1153
1375
|
"0.9.6": {
|
|
1154
1376
|
"version": "0.10.0",
|
|
1155
1377
|
"date": "2026-04-16",
|
|
1156
|
-
"notes": "0.9.x
|
|
1378
|
+
"notes": "0.9.x → 0.10.0 — see 0.9.18 entry.",
|
|
1157
1379
|
"regenerate": [
|
|
1158
1380
|
"workflows",
|
|
1159
1381
|
"commands",
|
|
@@ -1167,7 +1389,7 @@
|
|
|
1167
1389
|
"0.9.5": {
|
|
1168
1390
|
"version": "0.10.0",
|
|
1169
1391
|
"date": "2026-04-16",
|
|
1170
|
-
"notes": "0.9.x
|
|
1392
|
+
"notes": "0.9.x → 0.10.0 — see 0.9.18 entry.",
|
|
1171
1393
|
"regenerate": [
|
|
1172
1394
|
"workflows",
|
|
1173
1395
|
"commands",
|
|
@@ -1181,7 +1403,7 @@
|
|
|
1181
1403
|
"0.9.4": {
|
|
1182
1404
|
"version": "0.10.0",
|
|
1183
1405
|
"date": "2026-04-16",
|
|
1184
|
-
"notes": "0.9.x
|
|
1406
|
+
"notes": "0.9.x → 0.10.0 — see 0.9.18 entry.",
|
|
1185
1407
|
"regenerate": [
|
|
1186
1408
|
"workflows",
|
|
1187
1409
|
"commands",
|
|
@@ -1195,7 +1417,7 @@
|
|
|
1195
1417
|
"0.9.3": {
|
|
1196
1418
|
"version": "0.10.0",
|
|
1197
1419
|
"date": "2026-04-16",
|
|
1198
|
-
"notes": "0.9.x
|
|
1420
|
+
"notes": "0.9.x → 0.10.0 — see 0.9.18 entry.",
|
|
1199
1421
|
"regenerate": [
|
|
1200
1422
|
"workflows",
|
|
1201
1423
|
"commands",
|
|
@@ -1209,7 +1431,7 @@
|
|
|
1209
1431
|
"0.9.2": {
|
|
1210
1432
|
"version": "0.10.0",
|
|
1211
1433
|
"date": "2026-04-16",
|
|
1212
|
-
"notes": "0.9.x
|
|
1434
|
+
"notes": "0.9.x → 0.10.0 — see 0.9.18 entry.",
|
|
1213
1435
|
"regenerate": [
|
|
1214
1436
|
"workflows",
|
|
1215
1437
|
"commands",
|
|
@@ -1223,7 +1445,7 @@
|
|
|
1223
1445
|
"0.9.1": {
|
|
1224
1446
|
"version": "0.10.0",
|
|
1225
1447
|
"date": "2026-04-16",
|
|
1226
|
-
"notes": "0.9.x
|
|
1448
|
+
"notes": "0.9.x → 0.10.0 — see 0.9.18 entry.",
|
|
1227
1449
|
"regenerate": [
|
|
1228
1450
|
"workflows",
|
|
1229
1451
|
"commands",
|
|
@@ -1237,7 +1459,7 @@
|
|
|
1237
1459
|
"0.9.0": {
|
|
1238
1460
|
"version": "0.10.0",
|
|
1239
1461
|
"date": "2026-04-16",
|
|
1240
|
-
"notes": "0.9.x
|
|
1462
|
+
"notes": "0.9.x → 0.10.0 — see 0.9.18 entry.",
|
|
1241
1463
|
"regenerate": [
|
|
1242
1464
|
"workflows",
|
|
1243
1465
|
"commands",
|
|
@@ -1251,7 +1473,7 @@
|
|
|
1251
1473
|
"0.8.10": {
|
|
1252
1474
|
"version": "0.9.0",
|
|
1253
1475
|
"date": "2026-04-15",
|
|
1254
|
-
"notes": "0.8.x
|
|
1476
|
+
"notes": "0.8.x → 0.9.0 — Store Custodian: deterministic store gateway (store-cli.cjs), 16 meta-workflows migrated from direct writes to custodian, sprint schema gains goal and features fields. Full 0.8.x cycle: Sprint S06 cap, slug-aware directory discovery, ghost event fix, collate purge-events, init migration baseline stamp, workflow canonical naming, effort: frontmatter, fix sprint-plan and forge:update Step 4.",
|
|
1255
1477
|
"regenerate": [
|
|
1256
1478
|
"workflows",
|
|
1257
1479
|
"commands",
|
|
@@ -1265,7 +1487,7 @@
|
|
|
1265
1487
|
"0.8.9": {
|
|
1266
1488
|
"version": "0.9.0",
|
|
1267
1489
|
"date": "2026-04-15",
|
|
1268
|
-
"notes": "0.8.x
|
|
1490
|
+
"notes": "0.8.x → 0.9.0 — see 0.8.10 entry.",
|
|
1269
1491
|
"regenerate": [
|
|
1270
1492
|
"workflows",
|
|
1271
1493
|
"commands",
|
|
@@ -1279,7 +1501,7 @@
|
|
|
1279
1501
|
"0.8.8": {
|
|
1280
1502
|
"version": "0.9.0",
|
|
1281
1503
|
"date": "2026-04-15",
|
|
1282
|
-
"notes": "0.8.x
|
|
1504
|
+
"notes": "0.8.x → 0.9.0 — see 0.8.10 entry.",
|
|
1283
1505
|
"regenerate": [
|
|
1284
1506
|
"workflows",
|
|
1285
1507
|
"commands",
|
|
@@ -1293,7 +1515,7 @@
|
|
|
1293
1515
|
"0.8.7": {
|
|
1294
1516
|
"version": "0.9.0",
|
|
1295
1517
|
"date": "2026-04-15",
|
|
1296
|
-
"notes": "0.8.x
|
|
1518
|
+
"notes": "0.8.x → 0.9.0 — see 0.8.10 entry.",
|
|
1297
1519
|
"regenerate": [
|
|
1298
1520
|
"workflows",
|
|
1299
1521
|
"commands",
|
|
@@ -1307,7 +1529,7 @@
|
|
|
1307
1529
|
"0.8.6": {
|
|
1308
1530
|
"version": "0.9.0",
|
|
1309
1531
|
"date": "2026-04-15",
|
|
1310
|
-
"notes": "0.8.x
|
|
1532
|
+
"notes": "0.8.x → 0.9.0 — see 0.8.10 entry.",
|
|
1311
1533
|
"regenerate": [
|
|
1312
1534
|
"workflows",
|
|
1313
1535
|
"commands",
|
|
@@ -1321,7 +1543,7 @@
|
|
|
1321
1543
|
"0.8.5": {
|
|
1322
1544
|
"version": "0.9.0",
|
|
1323
1545
|
"date": "2026-04-15",
|
|
1324
|
-
"notes": "0.8.x
|
|
1546
|
+
"notes": "0.8.x → 0.9.0 — see 0.8.10 entry.",
|
|
1325
1547
|
"regenerate": [
|
|
1326
1548
|
"workflows",
|
|
1327
1549
|
"commands",
|
|
@@ -1335,7 +1557,7 @@
|
|
|
1335
1557
|
"0.8.4": {
|
|
1336
1558
|
"version": "0.9.0",
|
|
1337
1559
|
"date": "2026-04-15",
|
|
1338
|
-
"notes": "0.8.x
|
|
1560
|
+
"notes": "0.8.x → 0.9.0 — see 0.8.10 entry.",
|
|
1339
1561
|
"regenerate": [
|
|
1340
1562
|
"workflows",
|
|
1341
1563
|
"commands",
|
|
@@ -1349,7 +1571,7 @@
|
|
|
1349
1571
|
"0.8.3": {
|
|
1350
1572
|
"version": "0.9.0",
|
|
1351
1573
|
"date": "2026-04-15",
|
|
1352
|
-
"notes": "0.8.x
|
|
1574
|
+
"notes": "0.8.x → 0.9.0 — see 0.8.10 entry.",
|
|
1353
1575
|
"regenerate": [
|
|
1354
1576
|
"workflows",
|
|
1355
1577
|
"commands",
|
|
@@ -1363,7 +1585,7 @@
|
|
|
1363
1585
|
"0.8.2": {
|
|
1364
1586
|
"version": "0.9.0",
|
|
1365
1587
|
"date": "2026-04-15",
|
|
1366
|
-
"notes": "0.8.x
|
|
1588
|
+
"notes": "0.8.x → 0.9.0 — see 0.8.10 entry.",
|
|
1367
1589
|
"regenerate": [
|
|
1368
1590
|
"workflows",
|
|
1369
1591
|
"commands",
|
|
@@ -1377,7 +1599,7 @@
|
|
|
1377
1599
|
"0.8.1": {
|
|
1378
1600
|
"version": "0.9.0",
|
|
1379
1601
|
"date": "2026-04-15",
|
|
1380
|
-
"notes": "0.8.x
|
|
1602
|
+
"notes": "0.8.x → 0.9.0 — see 0.8.10 entry.",
|
|
1381
1603
|
"regenerate": [
|
|
1382
1604
|
"workflows",
|
|
1383
1605
|
"commands",
|
|
@@ -1391,7 +1613,7 @@
|
|
|
1391
1613
|
"0.8.0": {
|
|
1392
1614
|
"version": "0.9.0",
|
|
1393
1615
|
"date": "2026-04-15",
|
|
1394
|
-
"notes": "0.8.x
|
|
1616
|
+
"notes": "0.8.x → 0.9.0 — see 0.8.10 entry.",
|
|
1395
1617
|
"regenerate": [
|
|
1396
1618
|
"workflows",
|
|
1397
1619
|
"commands",
|
|
@@ -1405,7 +1627,7 @@
|
|
|
1405
1627
|
"0.7.11": {
|
|
1406
1628
|
"version": "0.8.0",
|
|
1407
1629
|
"date": "2026-04-14",
|
|
1408
|
-
"notes": "0.7.x
|
|
1630
|
+
"notes": "0.7.x → 0.8.0 — Sprint S06: orchestrator persona noun-based lookup, meta-workflows purged of inline Persona sections, forge:regenerate includes personas, sprint schema path field, slug-aware seed-store/collate/validate-store. Full 0.7.x cycle: Japanese nature persona palette, orchestrator announcements, ghost event fix, false breaking-change suppression, validate-store slug and filesystem checks.",
|
|
1409
1631
|
"regenerate": [
|
|
1410
1632
|
"workflows",
|
|
1411
1633
|
"commands",
|
|
@@ -1418,7 +1640,7 @@
|
|
|
1418
1640
|
"0.7.10": {
|
|
1419
1641
|
"version": "0.8.0",
|
|
1420
1642
|
"date": "2026-04-14",
|
|
1421
|
-
"notes": "0.7.x
|
|
1643
|
+
"notes": "0.7.x → 0.8.0 — see 0.7.11 entry.",
|
|
1422
1644
|
"regenerate": [
|
|
1423
1645
|
"workflows",
|
|
1424
1646
|
"commands",
|
|
@@ -1431,7 +1653,7 @@
|
|
|
1431
1653
|
"0.7.9": {
|
|
1432
1654
|
"version": "0.8.0",
|
|
1433
1655
|
"date": "2026-04-14",
|
|
1434
|
-
"notes": "0.7.x
|
|
1656
|
+
"notes": "0.7.x → 0.8.0 — see 0.7.11 entry.",
|
|
1435
1657
|
"regenerate": [
|
|
1436
1658
|
"workflows",
|
|
1437
1659
|
"commands",
|
|
@@ -1444,7 +1666,7 @@
|
|
|
1444
1666
|
"0.7.8": {
|
|
1445
1667
|
"version": "0.8.0",
|
|
1446
1668
|
"date": "2026-04-14",
|
|
1447
|
-
"notes": "0.7.x
|
|
1669
|
+
"notes": "0.7.x → 0.8.0 — see 0.7.11 entry.",
|
|
1448
1670
|
"regenerate": [
|
|
1449
1671
|
"workflows",
|
|
1450
1672
|
"commands",
|
|
@@ -1457,7 +1679,7 @@
|
|
|
1457
1679
|
"0.7.7": {
|
|
1458
1680
|
"version": "0.8.0",
|
|
1459
1681
|
"date": "2026-04-14",
|
|
1460
|
-
"notes": "0.7.x
|
|
1682
|
+
"notes": "0.7.x → 0.8.0 — see 0.7.11 entry.",
|
|
1461
1683
|
"regenerate": [
|
|
1462
1684
|
"workflows",
|
|
1463
1685
|
"commands",
|
|
@@ -1470,7 +1692,7 @@
|
|
|
1470
1692
|
"0.7.6": {
|
|
1471
1693
|
"version": "0.8.0",
|
|
1472
1694
|
"date": "2026-04-14",
|
|
1473
|
-
"notes": "0.7.x
|
|
1695
|
+
"notes": "0.7.x → 0.8.0 — see 0.7.11 entry.",
|
|
1474
1696
|
"regenerate": [
|
|
1475
1697
|
"workflows",
|
|
1476
1698
|
"commands",
|
|
@@ -1483,7 +1705,7 @@
|
|
|
1483
1705
|
"0.7.5": {
|
|
1484
1706
|
"version": "0.8.0",
|
|
1485
1707
|
"date": "2026-04-14",
|
|
1486
|
-
"notes": "0.7.x
|
|
1708
|
+
"notes": "0.7.x → 0.8.0 — see 0.7.11 entry.",
|
|
1487
1709
|
"regenerate": [
|
|
1488
1710
|
"workflows",
|
|
1489
1711
|
"commands",
|
|
@@ -1496,7 +1718,7 @@
|
|
|
1496
1718
|
"0.7.4": {
|
|
1497
1719
|
"version": "0.8.0",
|
|
1498
1720
|
"date": "2026-04-14",
|
|
1499
|
-
"notes": "0.7.x
|
|
1721
|
+
"notes": "0.7.x → 0.8.0 — see 0.7.11 entry.",
|
|
1500
1722
|
"regenerate": [
|
|
1501
1723
|
"workflows",
|
|
1502
1724
|
"commands",
|
|
@@ -1509,7 +1731,7 @@
|
|
|
1509
1731
|
"0.7.3": {
|
|
1510
1732
|
"version": "0.8.0",
|
|
1511
1733
|
"date": "2026-04-14",
|
|
1512
|
-
"notes": "0.7.x
|
|
1734
|
+
"notes": "0.7.x → 0.8.0 — see 0.7.11 entry.",
|
|
1513
1735
|
"regenerate": [
|
|
1514
1736
|
"workflows",
|
|
1515
1737
|
"commands",
|
|
@@ -1522,7 +1744,7 @@
|
|
|
1522
1744
|
"0.7.2": {
|
|
1523
1745
|
"version": "0.8.0",
|
|
1524
1746
|
"date": "2026-04-14",
|
|
1525
|
-
"notes": "0.7.x
|
|
1747
|
+
"notes": "0.7.x → 0.8.0 — see 0.7.11 entry.",
|
|
1526
1748
|
"regenerate": [
|
|
1527
1749
|
"workflows",
|
|
1528
1750
|
"commands",
|
|
@@ -1535,7 +1757,7 @@
|
|
|
1535
1757
|
"0.7.1": {
|
|
1536
1758
|
"version": "0.8.0",
|
|
1537
1759
|
"date": "2026-04-14",
|
|
1538
|
-
"notes": "0.7.x
|
|
1760
|
+
"notes": "0.7.x → 0.8.0 — see 0.7.11 entry.",
|
|
1539
1761
|
"regenerate": [
|
|
1540
1762
|
"workflows",
|
|
1541
1763
|
"commands",
|
|
@@ -1548,7 +1770,7 @@
|
|
|
1548
1770
|
"0.7.0": {
|
|
1549
1771
|
"version": "0.8.0",
|
|
1550
1772
|
"date": "2026-04-14",
|
|
1551
|
-
"notes": "0.7.x
|
|
1773
|
+
"notes": "0.7.x → 0.8.0 — see 0.7.11 entry.",
|
|
1552
1774
|
"regenerate": [
|
|
1553
1775
|
"workflows",
|
|
1554
1776
|
"commands",
|
|
@@ -1561,7 +1783,7 @@
|
|
|
1561
1783
|
"0.6.13": {
|
|
1562
1784
|
"version": "0.7.0",
|
|
1563
1785
|
"date": "2026-04-13",
|
|
1564
|
-
"notes": "0.6.x
|
|
1786
|
+
"notes": "0.6.x → 0.7.0 △ Breaking — Portability migration: legacy model: fields → structured requirements blocks (3D Agent Model); grounding and descriptive pathing (ID-description folder naming, absolute path injection). Full 0.6.x cycle: distribution-aware update URLs, QA validate phase, store.cjs facade, collate fixes, skillforge git-subdir.",
|
|
1565
1787
|
"regenerate": [
|
|
1566
1788
|
"workflows",
|
|
1567
1789
|
"commands",
|
|
@@ -1577,7 +1799,7 @@
|
|
|
1577
1799
|
"0.6.12": {
|
|
1578
1800
|
"version": "0.7.0",
|
|
1579
1801
|
"date": "2026-04-13",
|
|
1580
|
-
"notes": "0.6.x
|
|
1802
|
+
"notes": "0.6.x → 0.7.0 — see 0.6.13 entry.",
|
|
1581
1803
|
"regenerate": [
|
|
1582
1804
|
"workflows",
|
|
1583
1805
|
"commands",
|
|
@@ -1593,7 +1815,7 @@
|
|
|
1593
1815
|
"0.6.11": {
|
|
1594
1816
|
"version": "0.7.0",
|
|
1595
1817
|
"date": "2026-04-13",
|
|
1596
|
-
"notes": "0.6.x
|
|
1818
|
+
"notes": "0.6.x → 0.7.0 — see 0.6.13 entry.",
|
|
1597
1819
|
"regenerate": [
|
|
1598
1820
|
"workflows",
|
|
1599
1821
|
"commands",
|
|
@@ -1609,7 +1831,7 @@
|
|
|
1609
1831
|
"0.6.10": {
|
|
1610
1832
|
"version": "0.7.0",
|
|
1611
1833
|
"date": "2026-04-13",
|
|
1612
|
-
"notes": "0.6.x
|
|
1834
|
+
"notes": "0.6.x → 0.7.0 — see 0.6.13 entry.",
|
|
1613
1835
|
"regenerate": [
|
|
1614
1836
|
"workflows",
|
|
1615
1837
|
"commands",
|
|
@@ -1625,7 +1847,7 @@
|
|
|
1625
1847
|
"0.6.9": {
|
|
1626
1848
|
"version": "0.7.0",
|
|
1627
1849
|
"date": "2026-04-13",
|
|
1628
|
-
"notes": "0.6.x
|
|
1850
|
+
"notes": "0.6.x → 0.7.0 — see 0.6.13 entry.",
|
|
1629
1851
|
"regenerate": [
|
|
1630
1852
|
"workflows",
|
|
1631
1853
|
"commands",
|
|
@@ -1641,7 +1863,7 @@
|
|
|
1641
1863
|
"0.6.8": {
|
|
1642
1864
|
"version": "0.7.0",
|
|
1643
1865
|
"date": "2026-04-13",
|
|
1644
|
-
"notes": "0.6.x
|
|
1866
|
+
"notes": "0.6.x → 0.7.0 — see 0.6.13 entry.",
|
|
1645
1867
|
"regenerate": [
|
|
1646
1868
|
"workflows",
|
|
1647
1869
|
"commands",
|
|
@@ -1657,7 +1879,7 @@
|
|
|
1657
1879
|
"0.6.7": {
|
|
1658
1880
|
"version": "0.7.0",
|
|
1659
1881
|
"date": "2026-04-13",
|
|
1660
|
-
"notes": "0.6.x
|
|
1882
|
+
"notes": "0.6.x → 0.7.0 — see 0.6.13 entry.",
|
|
1661
1883
|
"regenerate": [
|
|
1662
1884
|
"workflows",
|
|
1663
1885
|
"commands",
|
|
@@ -1673,7 +1895,7 @@
|
|
|
1673
1895
|
"0.6.6": {
|
|
1674
1896
|
"version": "0.7.0",
|
|
1675
1897
|
"date": "2026-04-13",
|
|
1676
|
-
"notes": "0.6.x
|
|
1898
|
+
"notes": "0.6.x → 0.7.0 — see 0.6.13 entry.",
|
|
1677
1899
|
"regenerate": [
|
|
1678
1900
|
"workflows",
|
|
1679
1901
|
"commands",
|
|
@@ -1689,7 +1911,7 @@
|
|
|
1689
1911
|
"0.6.5": {
|
|
1690
1912
|
"version": "0.7.0",
|
|
1691
1913
|
"date": "2026-04-13",
|
|
1692
|
-
"notes": "0.6.x
|
|
1914
|
+
"notes": "0.6.x → 0.7.0 — see 0.6.13 entry.",
|
|
1693
1915
|
"regenerate": [
|
|
1694
1916
|
"workflows",
|
|
1695
1917
|
"commands",
|
|
@@ -1705,7 +1927,7 @@
|
|
|
1705
1927
|
"0.6.4": {
|
|
1706
1928
|
"version": "0.7.0",
|
|
1707
1929
|
"date": "2026-04-13",
|
|
1708
|
-
"notes": "0.6.x
|
|
1930
|
+
"notes": "0.6.x → 0.7.0 — see 0.6.13 entry.",
|
|
1709
1931
|
"regenerate": [
|
|
1710
1932
|
"workflows",
|
|
1711
1933
|
"commands",
|
|
@@ -1721,7 +1943,7 @@
|
|
|
1721
1943
|
"0.6.3": {
|
|
1722
1944
|
"version": "0.7.0",
|
|
1723
1945
|
"date": "2026-04-13",
|
|
1724
|
-
"notes": "0.6.x
|
|
1946
|
+
"notes": "0.6.x → 0.7.0 — see 0.6.13 entry.",
|
|
1725
1947
|
"regenerate": [
|
|
1726
1948
|
"workflows",
|
|
1727
1949
|
"commands",
|
|
@@ -1737,7 +1959,7 @@
|
|
|
1737
1959
|
"0.6.2": {
|
|
1738
1960
|
"version": "0.7.0",
|
|
1739
1961
|
"date": "2026-04-13",
|
|
1740
|
-
"notes": "0.6.x
|
|
1962
|
+
"notes": "0.6.x → 0.7.0 — see 0.6.13 entry.",
|
|
1741
1963
|
"regenerate": [
|
|
1742
1964
|
"workflows",
|
|
1743
1965
|
"commands",
|
|
@@ -1753,7 +1975,7 @@
|
|
|
1753
1975
|
"0.6.1": {
|
|
1754
1976
|
"version": "0.7.0",
|
|
1755
1977
|
"date": "2026-04-13",
|
|
1756
|
-
"notes": "0.6.x
|
|
1978
|
+
"notes": "0.6.x → 0.7.0 — see 0.6.13 entry.",
|
|
1757
1979
|
"regenerate": [
|
|
1758
1980
|
"workflows",
|
|
1759
1981
|
"commands",
|
|
@@ -1769,7 +1991,7 @@
|
|
|
1769
1991
|
"0.6.0": {
|
|
1770
1992
|
"version": "0.7.0",
|
|
1771
1993
|
"date": "2026-04-13",
|
|
1772
|
-
"notes": "0.6.x
|
|
1994
|
+
"notes": "0.6.x → 0.7.0 — see 0.6.13 entry.",
|
|
1773
1995
|
"regenerate": [
|
|
1774
1996
|
"workflows",
|
|
1775
1997
|
"commands",
|
|
@@ -1785,7 +2007,7 @@
|
|
|
1785
2007
|
"0.5.9": {
|
|
1786
2008
|
"version": "0.6.0",
|
|
1787
2009
|
"date": "2026-04-09",
|
|
1788
|
-
"notes": "0.5.x
|
|
2010
|
+
"notes": "0.5.x → 0.6.0 — Feature tier: Feature entity (feature.schema.json, .forge/store/features/), feature_id in sprint/task schemas, collate generates features/ registry, health reports per-feature coverage, docs/concepts/ added. Full 0.5.x cycle: fix-bug as true orchestrator, validate-store null handling, collate FORGE_ROOT fix, update UX improvements, canary source detection.",
|
|
1789
2011
|
"regenerate": [
|
|
1790
2012
|
"workflows",
|
|
1791
2013
|
"commands",
|
|
@@ -1797,7 +2019,7 @@
|
|
|
1797
2019
|
"0.5.8": {
|
|
1798
2020
|
"version": "0.6.0",
|
|
1799
2021
|
"date": "2026-04-09",
|
|
1800
|
-
"notes": "0.5.x
|
|
2022
|
+
"notes": "0.5.x → 0.6.0 — see 0.5.9 entry.",
|
|
1801
2023
|
"regenerate": [
|
|
1802
2024
|
"workflows",
|
|
1803
2025
|
"commands",
|
|
@@ -1809,7 +2031,7 @@
|
|
|
1809
2031
|
"0.5.7": {
|
|
1810
2032
|
"version": "0.6.0",
|
|
1811
2033
|
"date": "2026-04-09",
|
|
1812
|
-
"notes": "0.5.x
|
|
2034
|
+
"notes": "0.5.x → 0.6.0 — see 0.5.9 entry.",
|
|
1813
2035
|
"regenerate": [
|
|
1814
2036
|
"workflows",
|
|
1815
2037
|
"commands",
|
|
@@ -1821,7 +2043,7 @@
|
|
|
1821
2043
|
"0.5.6": {
|
|
1822
2044
|
"version": "0.6.0",
|
|
1823
2045
|
"date": "2026-04-09",
|
|
1824
|
-
"notes": "0.5.x
|
|
2046
|
+
"notes": "0.5.x → 0.6.0 — see 0.5.9 entry.",
|
|
1825
2047
|
"regenerate": [
|
|
1826
2048
|
"workflows",
|
|
1827
2049
|
"commands",
|
|
@@ -1833,7 +2055,7 @@
|
|
|
1833
2055
|
"0.5.5": {
|
|
1834
2056
|
"version": "0.6.0",
|
|
1835
2057
|
"date": "2026-04-09",
|
|
1836
|
-
"notes": "0.5.x
|
|
2058
|
+
"notes": "0.5.x → 0.6.0 — see 0.5.9 entry.",
|
|
1837
2059
|
"regenerate": [
|
|
1838
2060
|
"workflows",
|
|
1839
2061
|
"commands",
|
|
@@ -1845,7 +2067,7 @@
|
|
|
1845
2067
|
"0.5.4": {
|
|
1846
2068
|
"version": "0.6.0",
|
|
1847
2069
|
"date": "2026-04-09",
|
|
1848
|
-
"notes": "0.5.x
|
|
2070
|
+
"notes": "0.5.x → 0.6.0 — see 0.5.9 entry.",
|
|
1849
2071
|
"regenerate": [
|
|
1850
2072
|
"workflows",
|
|
1851
2073
|
"commands",
|
|
@@ -1857,7 +2079,7 @@
|
|
|
1857
2079
|
"0.5.3": {
|
|
1858
2080
|
"version": "0.6.0",
|
|
1859
2081
|
"date": "2026-04-09",
|
|
1860
|
-
"notes": "0.5.x
|
|
2082
|
+
"notes": "0.5.x → 0.6.0 — see 0.5.9 entry.",
|
|
1861
2083
|
"regenerate": [
|
|
1862
2084
|
"workflows",
|
|
1863
2085
|
"commands",
|
|
@@ -1869,7 +2091,7 @@
|
|
|
1869
2091
|
"0.5.2": {
|
|
1870
2092
|
"version": "0.6.0",
|
|
1871
2093
|
"date": "2026-04-09",
|
|
1872
|
-
"notes": "0.5.x
|
|
2094
|
+
"notes": "0.5.x → 0.6.0 — see 0.5.9 entry.",
|
|
1873
2095
|
"regenerate": [
|
|
1874
2096
|
"workflows",
|
|
1875
2097
|
"commands",
|
|
@@ -1881,7 +2103,7 @@
|
|
|
1881
2103
|
"0.5.1": {
|
|
1882
2104
|
"version": "0.6.0",
|
|
1883
2105
|
"date": "2026-04-09",
|
|
1884
|
-
"notes": "0.5.x
|
|
2106
|
+
"notes": "0.5.x → 0.6.0 — see 0.5.9 entry.",
|
|
1885
2107
|
"regenerate": [
|
|
1886
2108
|
"workflows",
|
|
1887
2109
|
"commands",
|
|
@@ -1893,7 +2115,7 @@
|
|
|
1893
2115
|
"0.5.0": {
|
|
1894
2116
|
"version": "0.6.0",
|
|
1895
2117
|
"date": "2026-04-09",
|
|
1896
|
-
"notes": "0.5.x
|
|
2118
|
+
"notes": "0.5.x → 0.6.0 — see 0.5.9 entry.",
|
|
1897
2119
|
"regenerate": [
|
|
1898
2120
|
"workflows",
|
|
1899
2121
|
"commands",
|
|
@@ -1905,7 +2127,7 @@
|
|
|
1905
2127
|
"0.4.1": {
|
|
1906
2128
|
"version": "0.5.0",
|
|
1907
2129
|
"date": "2026-04-06",
|
|
1908
|
-
"notes": "0.4.x
|
|
2130
|
+
"notes": "0.4.x → 0.5.0 — Japanese-style marks (〇△×🌱🌿⛰️) across all output, agent personas with symbols, command renames (plan/review-plan/review-code), generation-manifest tool, engineering/tools/ eliminated (all tools from $FORGE_ROOT/tools/), paths.forgeRoot and paths.customCommands added to config schema.",
|
|
1909
2131
|
"regenerate": [
|
|
1910
2132
|
"workflows",
|
|
1911
2133
|
"commands"
|
|
@@ -1916,7 +2138,7 @@
|
|
|
1916
2138
|
"0.4.0": {
|
|
1917
2139
|
"version": "0.5.0",
|
|
1918
2140
|
"date": "2026-04-06",
|
|
1919
|
-
"notes": "0.4.x
|
|
2141
|
+
"notes": "0.4.x → 0.5.0 — see 0.4.1 entry. If upgrading from 0.4.0 directly, first run: node engineering/tools/manage-config.cjs pipeline backfill-models",
|
|
1920
2142
|
"regenerate": [
|
|
1921
2143
|
"workflows",
|
|
1922
2144
|
"commands"
|
|
@@ -1927,7 +2149,7 @@
|
|
|
1927
2149
|
"0.3.15": {
|
|
1928
2150
|
"version": "0.4.0",
|
|
1929
2151
|
"date": "2026-04-05",
|
|
1930
|
-
"notes": "0.3.x
|
|
2152
|
+
"notes": "0.3.x → 0.4.0 △ Breaking — Pre-built CJS tools shipped (collate, seed-store, validate-store, manage-config); revision loop fix; context accumulation fix (BUG-001); error triage hook; graceful error handling. Full 0.3.x cycle included.",
|
|
1931
2153
|
"regenerate": [
|
|
1932
2154
|
"workflows",
|
|
1933
2155
|
"commands",
|
|
@@ -1941,7 +2163,7 @@
|
|
|
1941
2163
|
"0.3.14": {
|
|
1942
2164
|
"version": "0.4.0",
|
|
1943
2165
|
"date": "2026-04-05",
|
|
1944
|
-
"notes": "0.3.x
|
|
2166
|
+
"notes": "0.3.x → 0.4.0 — see 0.3.15 entry.",
|
|
1945
2167
|
"regenerate": [
|
|
1946
2168
|
"workflows",
|
|
1947
2169
|
"commands",
|
|
@@ -1955,7 +2177,7 @@
|
|
|
1955
2177
|
"0.3.13": {
|
|
1956
2178
|
"version": "0.4.0",
|
|
1957
2179
|
"date": "2026-04-05",
|
|
1958
|
-
"notes": "0.3.x
|
|
2180
|
+
"notes": "0.3.x → 0.4.0 — see 0.3.15 entry.",
|
|
1959
2181
|
"regenerate": [
|
|
1960
2182
|
"workflows",
|
|
1961
2183
|
"commands",
|
|
@@ -1969,7 +2191,7 @@
|
|
|
1969
2191
|
"0.3.12": {
|
|
1970
2192
|
"version": "0.4.0",
|
|
1971
2193
|
"date": "2026-04-05",
|
|
1972
|
-
"notes": "0.3.x
|
|
2194
|
+
"notes": "0.3.x → 0.4.0 — see 0.3.15 entry.",
|
|
1973
2195
|
"regenerate": [
|
|
1974
2196
|
"workflows",
|
|
1975
2197
|
"commands",
|
|
@@ -1983,7 +2205,7 @@
|
|
|
1983
2205
|
"0.3.11": {
|
|
1984
2206
|
"version": "0.4.0",
|
|
1985
2207
|
"date": "2026-04-05",
|
|
1986
|
-
"notes": "0.3.x
|
|
2208
|
+
"notes": "0.3.x → 0.4.0 — see 0.3.15 entry.",
|
|
1987
2209
|
"regenerate": [
|
|
1988
2210
|
"workflows",
|
|
1989
2211
|
"commands",
|
|
@@ -1997,7 +2219,7 @@
|
|
|
1997
2219
|
"0.3.10": {
|
|
1998
2220
|
"version": "0.4.0",
|
|
1999
2221
|
"date": "2026-04-05",
|
|
2000
|
-
"notes": "0.3.x
|
|
2222
|
+
"notes": "0.3.x → 0.4.0 — see 0.3.15 entry.",
|
|
2001
2223
|
"regenerate": [
|
|
2002
2224
|
"workflows",
|
|
2003
2225
|
"commands",
|
|
@@ -2011,7 +2233,7 @@
|
|
|
2011
2233
|
"0.3.9": {
|
|
2012
2234
|
"version": "0.4.0",
|
|
2013
2235
|
"date": "2026-04-05",
|
|
2014
|
-
"notes": "0.3.x
|
|
2236
|
+
"notes": "0.3.x → 0.4.0 — see 0.3.15 entry.",
|
|
2015
2237
|
"regenerate": [
|
|
2016
2238
|
"workflows",
|
|
2017
2239
|
"commands",
|
|
@@ -2025,7 +2247,7 @@
|
|
|
2025
2247
|
"0.3.8": {
|
|
2026
2248
|
"version": "0.4.0",
|
|
2027
2249
|
"date": "2026-04-05",
|
|
2028
|
-
"notes": "0.3.x
|
|
2250
|
+
"notes": "0.3.x → 0.4.0 — see 0.3.15 entry.",
|
|
2029
2251
|
"regenerate": [
|
|
2030
2252
|
"workflows",
|
|
2031
2253
|
"commands",
|
|
@@ -2039,7 +2261,7 @@
|
|
|
2039
2261
|
"0.3.7": {
|
|
2040
2262
|
"version": "0.4.0",
|
|
2041
2263
|
"date": "2026-04-05",
|
|
2042
|
-
"notes": "0.3.x
|
|
2264
|
+
"notes": "0.3.x → 0.4.0 — see 0.3.15 entry.",
|
|
2043
2265
|
"regenerate": [
|
|
2044
2266
|
"workflows",
|
|
2045
2267
|
"commands",
|
|
@@ -2053,7 +2275,7 @@
|
|
|
2053
2275
|
"0.3.6": {
|
|
2054
2276
|
"version": "0.4.0",
|
|
2055
2277
|
"date": "2026-04-05",
|
|
2056
|
-
"notes": "0.3.x
|
|
2278
|
+
"notes": "0.3.x → 0.4.0 — see 0.3.15 entry.",
|
|
2057
2279
|
"regenerate": [
|
|
2058
2280
|
"workflows",
|
|
2059
2281
|
"commands",
|
|
@@ -2067,7 +2289,7 @@
|
|
|
2067
2289
|
"0.3.5": {
|
|
2068
2290
|
"version": "0.4.0",
|
|
2069
2291
|
"date": "2026-04-05",
|
|
2070
|
-
"notes": "0.3.x
|
|
2292
|
+
"notes": "0.3.x → 0.4.0 — see 0.3.15 entry.",
|
|
2071
2293
|
"regenerate": [
|
|
2072
2294
|
"workflows",
|
|
2073
2295
|
"commands",
|
|
@@ -2081,7 +2303,7 @@
|
|
|
2081
2303
|
"0.3.4": {
|
|
2082
2304
|
"version": "0.4.0",
|
|
2083
2305
|
"date": "2026-04-05",
|
|
2084
|
-
"notes": "0.3.x
|
|
2306
|
+
"notes": "0.3.x → 0.4.0 — see 0.3.15 entry.",
|
|
2085
2307
|
"regenerate": [
|
|
2086
2308
|
"workflows",
|
|
2087
2309
|
"commands",
|
|
@@ -2095,7 +2317,7 @@
|
|
|
2095
2317
|
"0.3.3": {
|
|
2096
2318
|
"version": "0.4.0",
|
|
2097
2319
|
"date": "2026-04-05",
|
|
2098
|
-
"notes": "0.3.x
|
|
2320
|
+
"notes": "0.3.x → 0.4.0 — see 0.3.15 entry.",
|
|
2099
2321
|
"regenerate": [
|
|
2100
2322
|
"workflows",
|
|
2101
2323
|
"commands",
|
|
@@ -2109,7 +2331,7 @@
|
|
|
2109
2331
|
"0.3.2": {
|
|
2110
2332
|
"version": "0.4.0",
|
|
2111
2333
|
"date": "2026-04-05",
|
|
2112
|
-
"notes": "0.3.x
|
|
2334
|
+
"notes": "0.3.x → 0.4.0 — see 0.3.15 entry.",
|
|
2113
2335
|
"regenerate": [
|
|
2114
2336
|
"workflows",
|
|
2115
2337
|
"commands",
|
|
@@ -2123,7 +2345,7 @@
|
|
|
2123
2345
|
"0.3.1": {
|
|
2124
2346
|
"version": "0.4.0",
|
|
2125
2347
|
"date": "2026-04-05",
|
|
2126
|
-
"notes": "0.3.x
|
|
2348
|
+
"notes": "0.3.x → 0.4.0 — see 0.3.15 entry.",
|
|
2127
2349
|
"regenerate": [
|
|
2128
2350
|
"workflows",
|
|
2129
2351
|
"commands",
|
|
@@ -2137,7 +2359,7 @@
|
|
|
2137
2359
|
"0.3.0": {
|
|
2138
2360
|
"version": "0.4.0",
|
|
2139
2361
|
"date": "2026-04-05",
|
|
2140
|
-
"notes": "0.3.x
|
|
2362
|
+
"notes": "0.3.x → 0.4.0 — see 0.3.15 entry.",
|
|
2141
2363
|
"regenerate": [
|
|
2142
2364
|
"workflows",
|
|
2143
2365
|
"commands",
|
|
@@ -2158,4 +2380,4 @@
|
|
|
2158
2380
|
"breaking": false,
|
|
2159
2381
|
"manual": []
|
|
2160
2382
|
}
|
|
2161
|
-
}
|
|
2383
|
+
}
|