@entelligentsia/forgecli 1.0.36 → 1.0.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +83 -0
- package/dist/CHANGELOG-forge-plugin.md +101 -0
- package/dist/CHANGELOG-pi.md +143 -0
- package/dist/bin/argv.d.ts +1 -1
- package/dist/bin/argv.js +12 -0
- package/dist/bin/argv.js.map +1 -1
- package/dist/bin/forge.js +18 -16
- package/dist/bin/forge.js.map +1 -1
- package/dist/bin/reset.d.ts +39 -0
- package/dist/bin/reset.js +101 -0
- package/dist/bin/reset.js.map +1 -0
- package/dist/extensions/forgecli/claude-bootstrap/bootstrap.js +56 -265
- package/dist/extensions/forgecli/claude-bootstrap/bootstrap.js.map +1 -1
- package/dist/extensions/forgecli/claude-bootstrap/uninstall.js +52 -32
- package/dist/extensions/forgecli/claude-bootstrap/uninstall.js.map +1 -1
- package/dist/extensions/forgecli/commands/reset.d.ts +16 -0
- package/dist/extensions/forgecli/commands/reset.js +83 -0
- package/dist/extensions/forgecli/commands/reset.js.map +1 -0
- package/dist/extensions/forgecli/forge-commands.d.ts +7 -2
- package/dist/extensions/forgecli/forge-commands.js +19 -5
- package/dist/extensions/forgecli/forge-commands.js.map +1 -1
- package/dist/extensions/forgecli/forge-subagent.d.ts +4 -4
- package/dist/extensions/forgecli/hooks/forge-permissions.js +20 -6
- package/dist/extensions/forgecli/hooks/forge-permissions.js.map +1 -1
- package/dist/extensions/forgecli/index.js +6 -3
- package/dist/extensions/forgecli/index.js.map +1 -1
- package/dist/extensions/forgecli/lib/forge-root.d.ts +6 -0
- package/dist/extensions/forgecli/lib/forge-root.js +52 -0
- package/dist/extensions/forgecli/lib/forge-root.js.map +1 -1
- package/dist/extensions/forgecli/lib/payload-manifest.d.ts +62 -0
- package/dist/extensions/forgecli/lib/payload-manifest.js +151 -0
- package/dist/extensions/forgecli/lib/payload-manifest.js.map +1 -0
- package/dist/extensions/forgecli/orchestrators/advisory-render.d.ts +9 -0
- package/dist/extensions/forgecli/orchestrators/advisory-render.js +107 -0
- package/dist/extensions/forgecli/orchestrators/advisory-render.js.map +1 -0
- package/dist/extensions/forgecli/orchestrators/bug/bug-phases.d.ts +3 -0
- package/dist/extensions/forgecli/orchestrators/bug/bug-phases.js +22 -0
- package/dist/extensions/forgecli/orchestrators/bug/bug-phases.js.map +1 -1
- package/dist/extensions/forgecli/orchestrators/bug/bug-verdict-loop.d.ts +1 -1
- package/dist/extensions/forgecli/orchestrators/bug/bug-verdict-loop.js +34 -2
- package/dist/extensions/forgecli/orchestrators/bug/bug-verdict-loop.js.map +1 -1
- package/dist/extensions/forgecli/orchestrators/bug/run-bug-pipeline.js +2 -2
- package/dist/extensions/forgecli/orchestrators/bug/run-bug-pipeline.js.map +1 -1
- package/dist/extensions/forgecli/orchestrators/common/recovery-menu.d.ts +24 -0
- package/dist/extensions/forgecli/orchestrators/common/recovery-menu.js +58 -0
- package/dist/extensions/forgecli/orchestrators/common/recovery-menu.js.map +1 -0
- package/dist/extensions/forgecli/orchestrators/common/reset-pipeline.d.ts +53 -0
- package/dist/extensions/forgecli/orchestrators/common/reset-pipeline.js +131 -0
- package/dist/extensions/forgecli/orchestrators/common/reset-pipeline.js.map +1 -0
- package/dist/extensions/forgecli/orchestrators/halt-advisor.js +25 -3
- package/dist/extensions/forgecli/orchestrators/halt-advisor.js.map +1 -1
- package/dist/extensions/forgecli/orchestrators/task/run-task-pipeline.js +3 -3
- package/dist/extensions/forgecli/orchestrators/task/run-task-pipeline.js.map +1 -1
- package/dist/extensions/forgecli/orchestrators/task/task-phases.d.ts +3 -0
- package/dist/extensions/forgecli/orchestrators/task/task-phases.js +22 -0
- package/dist/extensions/forgecli/orchestrators/task/task-phases.js.map +1 -1
- package/dist/extensions/forgecli/orchestrators/task/task-verdict-loop.d.ts +1 -1
- package/dist/extensions/forgecli/orchestrators/task/task-verdict-loop.js +37 -2
- package/dist/extensions/forgecli/orchestrators/task/task-verdict-loop.js.map +1 -1
- package/dist/extensions/forgecli/store/store-resolver.d.ts +15 -0
- package/dist/extensions/forgecli/store/store-resolver.js +118 -18
- package/dist/extensions/forgecli/store/store-resolver.js.map +1 -1
- package/dist/forge-payload/.claude-plugin/plugin.json +1 -1
- package/dist/forge-payload/.schemas/enum-catalog.json +2 -2
- package/dist/forge-payload/.schemas/migrations.json +85 -0
- package/dist/forge-payload/.schemas/payload-manifest.schema.json +100 -0
- package/dist/forge-payload/commands/check-agent.md +7 -23
- package/dist/forge-payload/commands/enhance.md +31 -5
- package/dist/forge-payload/commands/init.md +161 -97
- package/dist/forge-payload/commands/reset.md +117 -0
- package/dist/forge-payload/hooks/forge-permissions.cjs +29 -6
- package/dist/forge-payload/init/phases/phase-3-materialize.md +5 -1
- package/dist/forge-payload/integrity.json +22 -7
- package/dist/forge-payload/payload-manifest.json +314 -0
- package/dist/forge-payload/schemas/enum-catalog.json +2 -2
- package/dist/forge-payload/schemas/payload-manifest.schema.json +100 -0
- package/dist/forge-payload/schemas/structure-manifest.json +4 -2
- package/dist/forge-payload/tools/reset-plan.cjs +210 -0
- package/dist/forge-payload/tools/store.cjs +4 -1
- package/dist/forge-payload/tools/substitute-placeholders.cjs +10 -2
- 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 +8 -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/harness/compaction/compaction.d.ts +1 -1
- 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 +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/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/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/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/types.d.ts +6 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/types.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/types.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/package.json +2 -2
- package/node_modules/@earendil-works/pi-ai/README.md +12 -4
- 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 +3 -0
- 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.generated.d.ts +45 -0
- 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 +45 -0
- package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/models.generated.d.ts +1804 -815
- 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 +2031 -1384
- package/node_modules/@earendil-works/pi-ai/dist/models.generated.js.map +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 +71 -27
- 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 +1 -1
- 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 +24 -16
- 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.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/azure-openai-responses.js +1 -0
- 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/openai-codex-responses.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex-responses.js +3 -1
- 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.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-completions.js +35 -13
- 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-responses-shared.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-responses-shared.js +2 -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.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-responses.js +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-responses.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/types.d.ts +12 -4
- 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/oauth/github-copilot.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/github-copilot.js +13 -1
- 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/openai-codex.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/openai-codex.js +4 -2
- 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/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 +3 -2
- package/node_modules/@earendil-works/pi-ai/dist/utils/overflow.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/package.json +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/CHANGELOG.md +143 -0
- package/node_modules/@earendil-works/pi-coding-agent/README.md +26 -4
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/args.d.ts +1 -0
- 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 +11 -0
- 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/project-trust.d.ts +10 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/project-trust.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/project-trust.js +48 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/project-trust.js.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/startup-ui.d.ts +17 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/startup-ui.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/startup-ui.js +128 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/startup-ui.js.map +1 -0
- 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 +9 -1
- 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 +3 -1
- 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 +4 -1
- 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 +2 -1
- 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 +2 -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 +4 -1
- 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 +16 -3
- 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-storage.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/auth-storage.js +4 -3
- 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/compaction/branch-summarization.d.ts +3 -1
- 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 +9 -3
- 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/utils.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/compaction/utils.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/compaction/utils.js +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/compaction/utils.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/experimental.d.ts +2 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/experimental.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/experimental.js +4 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/experimental.js.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/template.js +19 -6
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/index.d.ts +1 -1
- 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 +1 -1
- 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 +4 -4
- 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 +10 -3
- 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 +47 -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 +28 -2
- 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/footer-data-provider.d.ts +2 -0
- 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 +29 -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/index.d.ts +1 -0
- 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 +1 -0
- 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/model-registry.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-registry.js +1 -0
- 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 -0
- 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 +44 -5
- 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 +3 -0
- 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 +47 -13
- 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/project-trust.d.ts +15 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/project-trust.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/project-trust.js +58 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/project-trust.js.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/prompt-templates.d.ts +2 -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 +24 -26
- 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/provider-attribution.d.ts +4 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/provider-attribution.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/provider-attribution.js +72 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/provider-attribution.js.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/provider-display-names.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/provider-display-names.js +3 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/provider-display-names.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/resource-loader.d.ts +13 -2
- 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 +112 -37
- 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.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/sdk.js +7 -33
- 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.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/session-manager.js +103 -70
- 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 +20 -2
- 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 +97 -30
- 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/slash-commands.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/slash-commands.js +1 -0
- 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/tools/bash.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/bash.js +1 -1
- 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/find.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/find.js +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.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/grep.js +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/ls.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/ls.js +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/read.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/read.js +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/write.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/write.js +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/core/trust-manager.d.ts +36 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/trust-manager.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/trust-manager.js +202 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/trust-manager.js.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/index.d.ts +5 -4
- 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.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/main.js +72 -32
- 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 +39 -34
- 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 +1 -1
- 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/bash-execution.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/bash-execution.js +2 -2
- 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/first-time-setup.d.ts +25 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/first-time-setup.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/first-time-setup.js +103 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/first-time-setup.js.map +1 -0
- 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 +7 -0
- 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 +2 -0
- 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 +2 -0
- 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/login-dialog.d.ts +1 -1
- 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 +10 -13
- 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/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 +20 -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/tool-execution.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/tool-execution.js +22 -0
- 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/trust-selector.d.ts +23 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/trust-selector.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/trust-selector.js +91 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/trust-selector.js.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts +7 -0
- 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 +101 -5
- 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/print-mode.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/print-mode.js +1 -0
- 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-mode.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-mode.js +1 -0
- 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/package-manager-cli.d.ts +6 -2
- 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 +111 -10
- 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 -0
- 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 +78 -0
- 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/git.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/git.js +54 -22
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/git.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/open-browser.d.ts +9 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/open-browser.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/open-browser.js +22 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/open-browser.js.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/docs/containerization.md +111 -0
- package/node_modules/@earendil-works/pi-coding-agent/docs/docs.json +8 -0
- package/node_modules/@earendil-works/pi-coding-agent/docs/extensions.md +67 -13
- package/node_modules/@earendil-works/pi-coding-agent/docs/index.md +2 -0
- package/node_modules/@earendil-works/pi-coding-agent/docs/models.md +4 -3
- package/node_modules/@earendil-works/pi-coding-agent/docs/packages.md +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/docs/prompt-templates.md +9 -2
- package/node_modules/@earendil-works/pi-coding-agent/docs/providers.md +5 -0
- package/node_modules/@earendil-works/pi-coding-agent/docs/rpc.md +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/docs/sdk.md +5 -0
- package/node_modules/@earendil-works/pi-coding-agent/docs/security.md +59 -0
- package/node_modules/@earendil-works/pi-coding-agent/docs/settings.md +15 -0
- package/node_modules/@earendil-works/pi-coding-agent/docs/skills.md +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/docs/terminal-setup.md +36 -2
- package/node_modules/@earendil-works/pi-coding-agent/docs/themes.md +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/docs/tmux.md +4 -2
- package/node_modules/@earendil-works/pi-coding-agent/docs/tui.md +10 -1
- package/node_modules/@earendil-works/pi-coding-agent/docs/usage.md +19 -2
- package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/README.md +2 -0
- package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/custom-header.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/custom-provider-anthropic/package.json +1 -1
- 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/doom-overlay/index.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/gondolin/index.ts +531 -0
- package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/gondolin/package-lock.json +185 -0
- package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/gondolin/package.json +19 -0
- package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/handoff.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/interactive-shell.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/overlay-qa-tests.ts +152 -81
- package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/project-trust.ts +64 -0
- package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/qna.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/question.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/questionnaire.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/sandbox/package.json +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/snake.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/space-invaders.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/summarize.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/tic-tac-toe.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/todo.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/tools.ts +5 -0
- package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/with-deps/package.json +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/npm-shrinkwrap.json +12 -419
- package/node_modules/@earendil-works/pi-coding-agent/package.json +5 -8
- package/node_modules/@earendil-works/pi-tui/README.md +13 -1
- package/node_modules/@earendil-works/pi-tui/dist/autocomplete.d.ts +2 -0
- 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/editor.d.ts +6 -1
- 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 +102 -43
- package/node_modules/@earendil-works/pi-tui/dist/components/editor.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/markdown.d.ts +2 -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 +11 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/markdown.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/fuzzy.d.ts +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/fuzzy.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/fuzzy.js +2 -2
- package/node_modules/@earendil-works/pi-tui/dist/fuzzy.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/index.d.ts +1 -1
- 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/terminal.d.ts +4 -7
- package/node_modules/@earendil-works/pi-tui/dist/terminal.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/terminal.js +38 -77
- package/node_modules/@earendil-works/pi-tui/dist/terminal.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/tui.d.ts +20 -4
- package/node_modules/@earendil-works/pi-tui/dist/tui.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/tui.js +244 -42
- package/node_modules/@earendil-works/pi-tui/dist/tui.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/utils.d.ts +1 -0
- package/node_modules/@earendil-works/pi-tui/dist/utils.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/utils.js +46 -15
- package/node_modules/@earendil-works/pi-tui/dist/utils.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/package.json +1 -1
- package/node_modules/@mariozechner/clipboard/package.json +2 -1
- package/node_modules/@mariozechner/clipboard-linux-x64-musl/README.md +3 -0
- package/node_modules/@mariozechner/clipboard-linux-x64-musl/package.json +25 -0
- package/package.json +7 -6
- package/dist/extensions/forgecli/add-pipeline.d.ts +0 -19
- package/dist/extensions/forgecli/add-pipeline.js +0 -143
- package/dist/extensions/forgecli/add-pipeline.js.map +0 -1
- package/dist/extensions/forgecli/add-task.d.ts +0 -20
- package/dist/extensions/forgecli/add-task.js +0 -154
- package/dist/extensions/forgecli/add-task.js.map +0 -1
- package/dist/extensions/forgecli/approve.d.ts +0 -22
- package/dist/extensions/forgecli/approve.js +0 -152
- package/dist/extensions/forgecli/approve.js.map +0 -1
- package/dist/extensions/forgecli/banner.d.ts +0 -10
- package/dist/extensions/forgecli/banner.js +0 -36
- package/dist/extensions/forgecli/banner.js.map +0 -1
- package/dist/extensions/forgecli/calibrate.d.ts +0 -64
- package/dist/extensions/forgecli/calibrate.js +0 -481
- package/dist/extensions/forgecli/calibrate.js.map +0 -1
- package/dist/extensions/forgecli/collate.d.ts +0 -22
- package/dist/extensions/forgecli/collate.js +0 -134
- package/dist/extensions/forgecli/collate.js.map +0 -1
- package/dist/extensions/forgecli/commit.d.ts +0 -22
- package/dist/extensions/forgecli/commit.js +0 -152
- package/dist/extensions/forgecli/commit.js.map +0 -1
- package/dist/extensions/forgecli/config-command.d.ts +0 -8
- package/dist/extensions/forgecli/config-command.js +0 -67
- package/dist/extensions/forgecli/config-command.js.map +0 -1
- package/dist/extensions/forgecli/config-layer.d.ts +0 -53
- package/dist/extensions/forgecli/config-layer.js +0 -72
- package/dist/extensions/forgecli/config-layer.js.map +0 -1
- package/dist/extensions/forgecli/config-writer.d.ts +0 -16
- package/dist/extensions/forgecli/config-writer.js +0 -69
- package/dist/extensions/forgecli/config-writer.js.map +0 -1
- package/dist/extensions/forgecli/enhance.d.ts +0 -27
- package/dist/extensions/forgecli/enhance.js +0 -199
- package/dist/extensions/forgecli/enhance.js.map +0 -1
- package/dist/extensions/forgecli/fix-bug.d.ts +0 -85
- package/dist/extensions/forgecli/fix-bug.js +0 -1580
- package/dist/extensions/forgecli/fix-bug.js.map +0 -1
- package/dist/extensions/forgecli/forge-header.d.ts +0 -12
- package/dist/extensions/forgecli/forge-header.js +0 -114
- package/dist/extensions/forgecli/forge-header.js.map +0 -1
- package/dist/extensions/forgecli/forge-init.d.ts +0 -26
- package/dist/extensions/forgecli/forge-init.js +0 -514
- package/dist/extensions/forgecli/forge-init.js.map +0 -1
- package/dist/extensions/forgecli/forge-root.d.ts +0 -10
- package/dist/extensions/forgecli/forge-root.js +0 -62
- package/dist/extensions/forgecli/forge-root.js.map +0 -1
- package/dist/extensions/forgecli/forge-update-command.d.ts +0 -100
- package/dist/extensions/forgecli/forge-update-command.js +0 -435
- package/dist/extensions/forgecli/forge-update-command.js.map +0 -1
- package/dist/extensions/forgecli/friction-emit.d.ts +0 -99
- package/dist/extensions/forgecli/friction-emit.js +0 -245
- package/dist/extensions/forgecli/friction-emit.js.map +0 -1
- package/dist/extensions/forgecli/implement.d.ts +0 -22
- package/dist/extensions/forgecli/implement.js +0 -170
- package/dist/extensions/forgecli/implement.js.map +0 -1
- package/dist/extensions/forgecli/init-context.d.ts +0 -99
- package/dist/extensions/forgecli/init-context.js +0 -178
- package/dist/extensions/forgecli/init-context.js.map +0 -1
- package/dist/extensions/forgecli/init-progress.d.ts +0 -39
- package/dist/extensions/forgecli/init-progress.js +0 -117
- package/dist/extensions/forgecli/init-progress.js.map +0 -1
- package/dist/extensions/forgecli/input-router.d.ts +0 -33
- package/dist/extensions/forgecli/input-router.js +0 -136
- package/dist/extensions/forgecli/input-router.js.map +0 -1
- package/dist/extensions/forgecli/lib/halt-advisor.d.ts +0 -59
- package/dist/extensions/forgecli/lib/halt-advisor.js +0 -113
- package/dist/extensions/forgecli/lib/halt-advisor.js.map +0 -1
- package/dist/extensions/forgecli/lib/orchestrator-preflight.d.ts +0 -46
- package/dist/extensions/forgecli/lib/orchestrator-preflight.js +0 -64
- package/dist/extensions/forgecli/lib/orchestrator-preflight.js.map +0 -1
- package/dist/extensions/forgecli/materialize.d.ts +0 -16
- package/dist/extensions/forgecli/materialize.js +0 -195
- package/dist/extensions/forgecli/materialize.js.map +0 -1
- package/dist/extensions/forgecli/migrate.d.ts +0 -22
- package/dist/extensions/forgecli/migrate.js +0 -260
- package/dist/extensions/forgecli/migrate.js.map +0 -1
- package/dist/extensions/forgecli/migration-engine.d.ts +0 -117
- package/dist/extensions/forgecli/migration-engine.js +0 -563
- package/dist/extensions/forgecli/migration-engine.js.map +0 -1
- package/dist/extensions/forgecli/model-registry.d.ts +0 -61
- package/dist/extensions/forgecli/model-registry.js +0 -127
- package/dist/extensions/forgecli/model-registry.js.map +0 -1
- package/dist/extensions/forgecli/model-resolver.d.ts +0 -32
- package/dist/extensions/forgecli/model-resolver.js +0 -65
- package/dist/extensions/forgecli/model-resolver.js.map +0 -1
- package/dist/extensions/forgecli/model-validator.d.ts +0 -29
- package/dist/extensions/forgecli/model-validator.js +0 -107
- package/dist/extensions/forgecli/model-validator.js.map +0 -1
- package/dist/extensions/forgecli/orchestrator-status-bar.d.ts +0 -26
- package/dist/extensions/forgecli/orchestrator-status-bar.js +0 -213
- package/dist/extensions/forgecli/orchestrator-status-bar.js.map +0 -1
- package/dist/extensions/forgecli/plan.d.ts +0 -22
- package/dist/extensions/forgecli/plan.js +0 -167
- package/dist/extensions/forgecli/plan.js.map +0 -1
- package/dist/extensions/forgecli/quiz-agent.d.ts +0 -17
- package/dist/extensions/forgecli/quiz-agent.js +0 -98
- package/dist/extensions/forgecli/quiz-agent.js.map +0 -1
- package/dist/extensions/forgecli/read-command.d.ts +0 -2
- package/dist/extensions/forgecli/read-command.js +0 -100
- package/dist/extensions/forgecli/read-command.js.map +0 -1
- package/dist/extensions/forgecli/regenerate.d.ts +0 -40
- package/dist/extensions/forgecli/regenerate.js +0 -438
- package/dist/extensions/forgecli/regenerate.js.map +0 -1
- package/dist/extensions/forgecli/remove-command.d.ts +0 -17
- package/dist/extensions/forgecli/remove-command.js +0 -124
- package/dist/extensions/forgecli/remove-command.js.map +0 -1
- package/dist/extensions/forgecli/report-bug.d.ts +0 -25
- package/dist/extensions/forgecli/report-bug.js +0 -159
- package/dist/extensions/forgecli/report-bug.js.map +0 -1
- package/dist/extensions/forgecli/retrospective.d.ts +0 -20
- package/dist/extensions/forgecli/retrospective.js +0 -126
- package/dist/extensions/forgecli/retrospective.js.map +0 -1
- package/dist/extensions/forgecli/review-code.d.ts +0 -35
- package/dist/extensions/forgecli/review-code.js +0 -196
- package/dist/extensions/forgecli/review-code.js.map +0 -1
- package/dist/extensions/forgecli/review-plan.d.ts +0 -35
- package/dist/extensions/forgecli/review-plan.js +0 -200
- package/dist/extensions/forgecli/review-plan.js.map +0 -1
- package/dist/extensions/forgecli/run-sprint.d.ts +0 -27
- package/dist/extensions/forgecli/run-sprint.js +0 -716
- package/dist/extensions/forgecli/run-sprint.js.map +0 -1
- package/dist/extensions/forgecli/run-task.d.ts +0 -204
- package/dist/extensions/forgecli/run-task.js +0 -1403
- package/dist/extensions/forgecli/run-task.js.map +0 -1
- package/dist/extensions/forgecli/skill-curation-flag.d.ts +0 -21
- package/dist/extensions/forgecli/skill-curation-flag.js +0 -71
- package/dist/extensions/forgecli/skill-curation-flag.js.map +0 -1
- package/dist/extensions/forgecli/skill-curator-subagent.d.ts +0 -102
- package/dist/extensions/forgecli/skill-curator-subagent.js +0 -339
- package/dist/extensions/forgecli/skill-curator-subagent.js.map +0 -1
- package/dist/extensions/forgecli/skill-retriever.d.ts +0 -84
- package/dist/extensions/forgecli/skill-retriever.js +0 -246
- package/dist/extensions/forgecli/skill-retriever.js.map +0 -1
- package/dist/extensions/forgecli/skill-usage-tracker.d.ts +0 -91
- package/dist/extensions/forgecli/skill-usage-tracker.js +0 -224
- package/dist/extensions/forgecli/skill-usage-tracker.js.map +0 -1
- package/dist/extensions/forgecli/sprint-intake.d.ts +0 -10
- package/dist/extensions/forgecli/sprint-intake.js +0 -91
- package/dist/extensions/forgecli/sprint-intake.js.map +0 -1
- package/dist/extensions/forgecli/sprint-plan.d.ts +0 -14
- package/dist/extensions/forgecli/sprint-plan.js +0 -122
- package/dist/extensions/forgecli/sprint-plan.js.map +0 -1
- package/dist/extensions/forgecli/status-command.d.ts +0 -19
- package/dist/extensions/forgecli/status-command.js +0 -140
- package/dist/extensions/forgecli/status-command.js.map +0 -1
- package/dist/extensions/forgecli/store-error-remediation.d.ts +0 -65
- package/dist/extensions/forgecli/store-error-remediation.js +0 -307
- package/dist/extensions/forgecli/store-error-remediation.js.map +0 -1
- package/dist/extensions/forgecli/store-query.d.ts +0 -22
- package/dist/extensions/forgecli/store-query.js +0 -107
- package/dist/extensions/forgecli/store-query.js.map +0 -1
- package/dist/extensions/forgecli/store-repair.d.ts +0 -17
- package/dist/extensions/forgecli/store-repair.js +0 -123
- package/dist/extensions/forgecli/store-repair.js.map +0 -1
- package/dist/extensions/forgecli/store-resolver.d.ts +0 -56
- package/dist/extensions/forgecli/store-resolver.js +0 -263
- package/dist/extensions/forgecli/store-resolver.js.map +0 -1
- package/dist/extensions/forgecli/store-validator.d.ts +0 -16
- package/dist/extensions/forgecli/store-validator.js +0 -32
- package/dist/extensions/forgecli/store-validator.js.map +0 -1
- package/dist/extensions/forgecli/test-orchestrate.d.ts +0 -2
- package/dist/extensions/forgecli/test-orchestrate.js +0 -182
- package/dist/extensions/forgecli/test-orchestrate.js.map +0 -1
- package/dist/extensions/forgecli/thread-switcher.d.ts +0 -5
- package/dist/extensions/forgecli/thread-switcher.js +0 -189
- package/dist/extensions/forgecli/thread-switcher.js.map +0 -1
- package/dist/extensions/forgecli/transition-guard.d.ts +0 -20
- package/dist/extensions/forgecli/transition-guard.js +0 -89
- package/dist/extensions/forgecli/transition-guard.js.map +0 -1
- package/dist/extensions/forgecli/update-check.d.ts +0 -37
- package/dist/extensions/forgecli/update-check.js +0 -185
- package/dist/extensions/forgecli/update-check.js.map +0 -1
- package/dist/extensions/forgecli/update-tools.d.ts +0 -23
- package/dist/extensions/forgecli/update-tools.js +0 -135
- package/dist/extensions/forgecli/update-tools.js.map +0 -1
- package/dist/extensions/forgecli/validate.d.ts +0 -22
- package/dist/extensions/forgecli/validate.js +0 -152
- package/dist/extensions/forgecli/validate.js.map +0 -1
- package/dist/extensions/forgecli/viewport-events.d.ts +0 -78
- package/dist/extensions/forgecli/viewport-events.js +0 -243
- package/dist/extensions/forgecli/viewport-events.js.map +0 -1
- package/dist/extensions/forgecli/viewport-renderer.d.ts +0 -83
- package/dist/extensions/forgecli/viewport-renderer.js +0 -233
- package/dist/extensions/forgecli/viewport-renderer.js.map +0 -1
- package/dist/extensions/forgecli/viewport-theme.d.ts +0 -11
- package/dist/extensions/forgecli/viewport-theme.js +0 -128
- package/dist/extensions/forgecli/viewport-theme.js.map +0 -1
- package/dist/extensions/forgecli/whats-new-widget.d.ts +0 -26
- package/dist/extensions/forgecli/whats-new-widget.js +0 -376
- package/dist/extensions/forgecli/whats-new-widget.js.map +0 -1
- package/dist/extensions/forgecli/whats-new.d.ts +0 -120
- package/dist/extensions/forgecli/whats-new.js +0 -470
- package/dist/extensions/forgecli/whats-new.js.map +0 -1
- package/dist/forge-payload/.base-pack/commands/check-agent.md +0 -22
- package/dist/forge-payload/.base-pack/commands/enhance.md +0 -37
- package/dist/forge-payload/.base-pack/commands/init.md +0 -278
- package/dist/forge-payload/init/generation/generate-knowledge-base.md +0 -56
- package/dist/forge-payload/init/generation/generate-personas.md +0 -54
- package/dist/forge-payload/init/generation/generate-skills.md +0 -36
- package/dist/forge-payload/init/generation/generate-templates.md +0 -39
- /package/dist/forge-payload/{.base-pack/commands → commands}/approve.md +0 -0
- /package/dist/forge-payload/{.base-pack/commands → commands}/collate.md +0 -0
- /package/dist/forge-payload/{.base-pack/commands → commands}/commit.md +0 -0
- /package/dist/forge-payload/{.base-pack/commands → commands}/fix-bug.md +0 -0
- /package/dist/forge-payload/{.base-pack/commands → commands}/implement.md +0 -0
- /package/dist/forge-payload/{.base-pack/commands → commands}/new-sprint.md +0 -0
- /package/dist/forge-payload/{.base-pack/commands → commands}/plan-sprint.md +0 -0
- /package/dist/forge-payload/{.base-pack/commands → commands}/plan.md +0 -0
- /package/dist/forge-payload/{.base-pack/commands → commands}/retro.md +0 -0
- /package/dist/forge-payload/{.base-pack/commands → commands}/review-code.md +0 -0
- /package/dist/forge-payload/{.base-pack/commands → commands}/review-plan.md +0 -0
- /package/dist/forge-payload/{.base-pack/commands → commands}/run-sprint.md +0 -0
- /package/dist/forge-payload/{.base-pack/commands → commands}/run-task.md +0 -0
- /package/dist/forge-payload/{.base-pack/commands → commands}/validate.md +0 -0
|
@@ -1,38 +1,22 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: check-agent
|
|
3
|
-
description: Verify an agent has loaded and understood the project knowledge base
|
|
3
|
+
description: Verify an agent has loaded and understood the project knowledge base
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# /forge:check-agent
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
knowledge base before beginning a high-stakes task (schema changes, migrations,
|
|
10
|
-
release engineering, significant refactors).
|
|
8
|
+
Read the check-agent workflow and follow it.
|
|
11
9
|
|
|
12
|
-
## Locate plugin
|
|
10
|
+
## Locate the Forge plugin
|
|
13
11
|
|
|
14
12
|
```
|
|
15
13
|
FORGE_ROOT: !`echo "${CLAUDE_PLUGIN_ROOT:-$(pwd)/.forge}"`
|
|
16
14
|
```
|
|
17
15
|
|
|
18
|
-
##
|
|
19
|
-
|
|
20
|
-
$ARGUMENTS
|
|
21
|
-
|
|
22
|
-
## How to Run
|
|
23
|
-
|
|
24
|
-
Read `.forge/workflows/quiz_agent.md` and follow it exactly.
|
|
16
|
+
## Execute
|
|
25
17
|
|
|
26
|
-
|
|
27
|
-
responses if provided.
|
|
18
|
+
Read `.forge/workflows/quiz_agent.md` and follow it.
|
|
28
19
|
|
|
29
|
-
##
|
|
30
|
-
|
|
31
|
-
If `.forge/workflows/quiz_agent.md` does not exist, tell the user:
|
|
32
|
-
|
|
33
|
-
> △ The quiz_agent workflow is missing. Run `/forge:rebuild workflows` to
|
|
34
|
-
> regenerate it, then retry.
|
|
35
|
-
|
|
36
|
-
If any other step fails unexpectedly, describe what went wrong and ask:
|
|
20
|
+
## Arguments
|
|
37
21
|
|
|
38
|
-
|
|
22
|
+
$ARGUMENTS
|
|
@@ -1,11 +1,37 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: enhance
|
|
3
|
-
description:
|
|
3
|
+
description: Progressive project-specific enrichment of structural elements
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# /forge:enhance
|
|
6
|
+
# /forge:enhance
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
Run the enhancement agent to enrich structural elements with project-specific knowledge.
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
## Locate the Forge plugin
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
FORGE_ROOT: !`echo "${CLAUDE_PLUGIN_ROOT:-$(pwd)/.forge}"`
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
## Purpose
|
|
17
|
+
|
|
18
|
+
The enhancement agent observes the project and enriches structural elements
|
|
19
|
+
over time. It makes absolutely essential minimal modifications, preferring
|
|
20
|
+
runtime mix-in (KB references, `{{placeholder}}` substitution, `project-context.json`)
|
|
21
|
+
over modifying base artifacts.
|
|
22
|
+
|
|
23
|
+
## Behavior
|
|
24
|
+
|
|
25
|
+
1. Read `structure-versions.json` to determine current overlay level
|
|
26
|
+
2. Read `project-context.json` for current project specifics
|
|
27
|
+
3. Read KB changes since last enhancement
|
|
28
|
+
4. Scan codebase for patterns discovered since last enhancement
|
|
29
|
+
5. Compare current `.forge/` artifacts against base-pack baseline
|
|
30
|
+
6. For each artifact, determine what project-specific enrichment is warranted
|
|
31
|
+
7. Apply the minimal modification principle
|
|
32
|
+
8. Propose diffs (Phase 2+) or auto-apply (Phase 1)
|
|
33
|
+
9. Create new overlay version in `structure-versions.json` if needed
|
|
34
|
+
|
|
35
|
+
## Arguments
|
|
36
|
+
|
|
37
|
+
$ARGUMENTS
|
|
@@ -1,26 +1,17 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: init
|
|
3
|
-
description:
|
|
3
|
+
description: Bootstrap Forge's LLM half — KB discovery, config generation, and artifact registration. Run once after `4ge init claude .` has scaffolded the project structure.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# /forge:init
|
|
7
7
|
|
|
8
|
-
You are the Forge init orchestrator. Your job is to
|
|
9
|
-
|
|
8
|
+
You are the Forge init orchestrator. Your job is to run the LLM half of the
|
|
9
|
+
Forge bootstrap — knowledge-base discovery, config generation, and artifact
|
|
10
|
+
registration — in the current working directory. The CLI half (`4ge init claude .`)
|
|
11
|
+
has already scaffolded the project structure, installed the wfl-init.js driver,
|
|
12
|
+
and installed this command wrapper.
|
|
10
13
|
|
|
11
|
-
##
|
|
12
|
-
|
|
13
|
-
Set `$FORGE_ROOT` to the plugin root provided by Claude Code:
|
|
14
|
-
|
|
15
|
-
```
|
|
16
|
-
FORGE_ROOT: !`echo "${CLAUDE_PLUGIN_ROOT:-$(pwd)/.forge}"`
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
`$FORGE_ROOT` is the directory containing `meta/`, `init/`, `hooks/`, and `commands/`.
|
|
20
|
-
|
|
21
|
-
## Execute
|
|
22
|
-
|
|
23
|
-
### Resume Detection
|
|
14
|
+
## Resume Detection
|
|
24
15
|
|
|
25
16
|
Before showing the pre-flight plan, check for an existing checkpoint:
|
|
26
17
|
|
|
@@ -36,7 +27,8 @@ If the file exists and contains valid JSON, inspect it:
|
|
|
36
27
|
```sh
|
|
37
28
|
rm -f .forge/init-progress.json
|
|
38
29
|
```
|
|
39
|
-
Then proceed to the **Pre-flight
|
|
30
|
+
Then proceed to the **Pre-flight interactive prompts** (new 4-phase flow, no mode prompt).
|
|
31
|
+
Set `startPhase = 1`.
|
|
40
32
|
|
|
41
33
|
- If the file contains valid JSON with `lastPhase` in range 1–4 and a `timestamp`
|
|
42
34
|
field, emit the resume banner:
|
|
@@ -55,124 +47,117 @@ Use the following mapping:
|
|
|
55
47
|
| 2 | Phase 3 |
|
|
56
48
|
| 3 | Phase 4 |
|
|
57
49
|
|
|
58
|
-
If the user chooses to resume:
|
|
59
|
-
|
|
50
|
+
If the user chooses to resume: set `startPhase = nextPhase`.
|
|
60
51
|
If the user chooses to start over: delete `.forge/init-progress.json`
|
|
61
|
-
(`rm -f .forge/init-progress.json`) and
|
|
52
|
+
(`rm -f .forge/init-progress.json`) and set `startPhase = 1`.
|
|
62
53
|
|
|
63
54
|
If the file does not exist, or contains invalid JSON, or contains an
|
|
64
55
|
unrecognised `lastPhase` value outside 1–4: delete any corrupt file and
|
|
65
|
-
|
|
56
|
+
set `startPhase = 1`.
|
|
66
57
|
|
|
67
58
|
If parsing the file throws (malformed JSON): log a one-line warning
|
|
68
59
|
`△ init-progress.json is malformed — deleting and starting fresh.`, delete
|
|
69
|
-
the file, and
|
|
60
|
+
the file, and set `startPhase = 1`.
|
|
70
61
|
|
|
71
|
-
|
|
62
|
+
## Hero
|
|
72
63
|
|
|
73
64
|
Render the Forge hero block once per session:
|
|
74
65
|
|
|
75
66
|
```sh
|
|
76
|
-
node
|
|
77
|
-
node
|
|
67
|
+
node .forge/tools/banners.cjs forge
|
|
68
|
+
node .forge/tools/banners.cjs --subtitle "AI SDLC bootstrapper · forge:init"
|
|
78
69
|
```
|
|
79
70
|
|
|
80
71
|
The hero runs once. If the user resumes mid-init, do NOT re-render the hero —
|
|
81
72
|
just emit the phase banner for the resume target phase.
|
|
82
73
|
|
|
83
|
-
|
|
74
|
+
## Flag Handling
|
|
84
75
|
|
|
85
76
|
`--fast` and `--full` are accepted as no-ops for backwards compatibility with
|
|
86
|
-
scripts and CI pipelines. Both flags proceed with the standard 4-phase
|
|
87
|
-
init. The fast/full distinction was removed in v0.40.0.
|
|
88
|
-
|
|
89
|
-
**`--migrate` flag:** When `$ARGUMENTS` contains `--migrate`, run the store migration
|
|
90
|
-
workflow instead of the standard init. This is the v1.0 replacement for the removed
|
|
91
|
-
`/forge:migrate` command.
|
|
77
|
+
scripts and CI pipelines. Both flags proceed with the standard 4-phase flow.
|
|
92
78
|
|
|
93
|
-
|
|
94
|
-
|
|
79
|
+
**`--migrate` flag:** When `$ARGUMENTS` contains `--migrate`, redirect to the
|
|
80
|
+
store migration workflow. Read `.forge/config.json` to locate `paths.forgeRoot`,
|
|
81
|
+
then read `{forgeRoot}/meta/workflows/meta-migrate.md` and follow it.
|
|
82
|
+
Do NOT proceed to the pre-flight prompts when `--migrate` is present.
|
|
95
83
|
|
|
96
|
-
|
|
97
|
-
- If present, load and run the structural migration workflow:
|
|
98
|
-
Read `"$FORGE_ROOT/meta/workflows/meta-migrate.md"` and follow it.
|
|
99
|
-
- If absent, run the standard store schema migration (Steps 1–7 of the former `migrate.md`):
|
|
100
|
-
Read `"$FORGE_ROOT/meta/workflows/meta-migrate.md"` and follow it, passing
|
|
101
|
-
`--store-schema` so it runs the schema migration path (Steps 2–7).
|
|
84
|
+
## Pre-flight Interactive Prompts
|
|
102
85
|
|
|
103
|
-
|
|
104
|
-
only (no writes).
|
|
86
|
+
Gather these values before dispatching the workflow:
|
|
105
87
|
|
|
106
|
-
|
|
88
|
+
### a. KB Folder Prompt
|
|
107
89
|
|
|
108
|
-
|
|
109
|
-
|
|
90
|
+
```
|
|
91
|
+
What should your engineering knowledge base folder be named?
|
|
92
|
+
Default: engineering
|
|
93
|
+
(This is where Forge writes sprint artifacts, docs, and KB files.)
|
|
110
94
|
|
|
111
|
-
|
|
95
|
+
KB folder name [engineering]: ___
|
|
96
|
+
```
|
|
112
97
|
|
|
113
|
-
|
|
114
|
-
or specify a start phase.
|
|
98
|
+
If the user provides a custom name (non-empty, not "engineering"), write it now:
|
|
115
99
|
|
|
100
|
+
```sh
|
|
101
|
+
node .forge/tools/manage-config.cjs set paths.engineering "{name}"
|
|
116
102
|
```
|
|
117
|
-
## Forge Init — <project-name if discoverable, otherwise current directory name>
|
|
118
103
|
|
|
119
|
-
|
|
104
|
+
Set `kbFolder` to the chosen name (default: `"engineering"`).
|
|
120
105
|
|
|
121
|
-
|
|
122
|
-
KB folder prompt (interactive)
|
|
123
|
-
2 Discover — KB doc generation (LLM fan-out) + project-context.json
|
|
124
|
-
3 Materialize — substitute-placeholders.cjs → fully functional workflows
|
|
125
|
-
4 Register — versioning, manifest, cache, store entries, Tomoshibi
|
|
106
|
+
### b. CLAUDE.md Offer
|
|
126
107
|
|
|
127
|
-
|
|
128
|
-
and complete in under 45 seconds.
|
|
108
|
+
Check whether any agent instruction file exists:
|
|
129
109
|
|
|
130
|
-
|
|
110
|
+
```sh
|
|
111
|
+
ls CLAUDE.md AGENTS.md CLAUDE.local.md .cursorrules 2>/dev/null
|
|
131
112
|
```
|
|
132
113
|
|
|
133
|
-
If
|
|
134
|
-
Any other input (including 0, 5+, or non-numeric text) re-prompts with the same table.
|
|
114
|
+
If NONE of those files exists, ask:
|
|
135
115
|
|
|
136
|
-
|
|
137
|
-
|
|
116
|
+
```
|
|
117
|
+
No CLAUDE.md / AGENTS.md found in this project.
|
|
118
|
+
Create a minimal CLAUDE.md with Forge KB links? [Y/n]: ___
|
|
119
|
+
```
|
|
138
120
|
|
|
139
|
-
|
|
121
|
+
Set `createClaudeMd = true` if user answers Y (or presses Enter); `false` otherwise.
|
|
122
|
+
If any of those files already exists, set `createClaudeMd = false` (silently skip the offer).
|
|
140
123
|
|
|
141
|
-
|
|
124
|
+
### c. Timestamp
|
|
142
125
|
|
|
143
|
-
|
|
144
|
-
What should your engineering knowledge base folder be named?
|
|
145
|
-
Default: engineering
|
|
126
|
+
Mint the ISO timestamp now (before workflow dispatch, in this command wrapper context):
|
|
146
127
|
|
|
147
|
-
|
|
128
|
+
```js
|
|
129
|
+
isoTimestamp = new Date().toISOString()
|
|
148
130
|
```
|
|
149
131
|
|
|
150
|
-
|
|
151
|
-
```sh
|
|
152
|
-
node "$FORGE_ROOT/tools/manage-config.cjs" set paths.engineering "{name}"
|
|
153
|
-
```
|
|
154
|
-
Set `kbFolder` to the chosen name (default: `"engineering"`).
|
|
132
|
+
## Pre-flight Plan
|
|
155
133
|
|
|
156
|
-
|
|
134
|
+
Before dispatching, emit a summary and wait for confirmation:
|
|
157
135
|
|
|
158
|
-
```sh
|
|
159
|
-
ls CLAUDE.md AGENTS.md CLAUDE.local.md .cursorrules 2>/dev/null
|
|
160
136
|
```
|
|
137
|
+
## Forge Init — <project-name if discoverable, otherwise current directory name>
|
|
161
138
|
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
139
|
+
4 phases will run via the wfl:init workflow:
|
|
140
|
+
|
|
141
|
+
1 Collect — 5 parallel discovery scans → config.json
|
|
142
|
+
KB folder prompt already answered above
|
|
143
|
+
2 Discover — KB doc generation (LLM fan-out) + project-context.json
|
|
144
|
+
3 Materialize — substitute-placeholders.cjs → fully functional workflows
|
|
145
|
+
4 Register — versioning, manifest, cache, store entries, Tomoshibi
|
|
146
|
+
|
|
147
|
+
Starting from Phase {startPhase}.
|
|
148
|
+
|
|
149
|
+
Proceed? [Y/n]: ___
|
|
165
150
|
```
|
|
166
|
-
Set `createClaudeMd = true` (default Y) or `false`.
|
|
167
|
-
If any file exists, set `createClaudeMd = false` (skip silently).
|
|
168
151
|
|
|
169
|
-
|
|
152
|
+
If the user declines, stop and advise them to run `/forge:init` again when ready.
|
|
153
|
+
|
|
154
|
+
## Workflow Dispatch
|
|
170
155
|
|
|
171
156
|
Execute the workflow:
|
|
172
157
|
|
|
173
158
|
```
|
|
174
159
|
workflow('wfl:init', {
|
|
175
|
-
forgeRoot
|
|
160
|
+
forgeRoot,
|
|
176
161
|
kbFolder,
|
|
177
162
|
startPhase,
|
|
178
163
|
createClaudeMd,
|
|
@@ -181,34 +166,113 @@ workflow('wfl:init', {
|
|
|
181
166
|
})
|
|
182
167
|
```
|
|
183
168
|
|
|
184
|
-
|
|
169
|
+
Where `forgeRoot` is resolved from `.forge/config.json`'s `paths.forgeRoot` field.
|
|
170
|
+
|
|
171
|
+
**Workflow-tool-missing error** — if the Workflow tool is unavailable, halt immediately
|
|
172
|
+
with this message:
|
|
185
173
|
|
|
186
174
|
> The Workflow tool is required to run `/forge:init`. This Claude Code build does not
|
|
187
175
|
> support the Workflow tool. Upgrade Claude Code and try again.
|
|
188
176
|
>
|
|
189
177
|
> (Alternatively, run `4ge init claude .` again to re-scaffold, then upgrade Claude Code.)
|
|
190
178
|
|
|
191
|
-
Do NOT fall back to reading
|
|
179
|
+
Do NOT fall back to reading any other document — halt with the above message only.
|
|
180
|
+
|
|
181
|
+
## Post-Workflow (on success)
|
|
182
|
+
|
|
183
|
+
When `workflow('wfl:init', ...)` returns with `result.ok === true`:
|
|
184
|
+
|
|
185
|
+
### Closing Banner
|
|
186
|
+
|
|
187
|
+
```sh
|
|
188
|
+
node .forge/tools/banners.cjs forge
|
|
189
|
+
node .forge/tools/banners.cjs --subtitle "灯 SDLC ready — welcome to your Forge SDLC"
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
### Welcome Block
|
|
193
|
+
|
|
194
|
+
Emit the welcome summary:
|
|
195
|
+
|
|
196
|
+
```
|
|
197
|
+
✓ Forge SDLC initialised
|
|
198
|
+
|
|
199
|
+
Your project is now configured with:
|
|
200
|
+
· Knowledge base in {kbFolder}/
|
|
201
|
+
· Workflows, personas, and skills in .forge/
|
|
202
|
+
· Sprint-ready store in .forge/store/
|
|
203
|
+
|
|
204
|
+
Next steps:
|
|
205
|
+
· /forge:new-sprint — plan your first sprint
|
|
206
|
+
· /forge:health — verify store health
|
|
207
|
+
· /forge:plan — plan a single task
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
### Marketplace Skills Offer
|
|
211
|
+
|
|
212
|
+
If `result.skillMatches` is present and non-empty, present skill buckets by
|
|
213
|
+
confidence (High → Medium → Low). For each bucket, list skill IDs and descriptions.
|
|
214
|
+
Ask: `Install recommended skills? [Y/n]` (per bucket or all at once — your call).
|
|
215
|
+
|
|
216
|
+
For each skill the user accepts:
|
|
217
|
+
|
|
218
|
+
```sh
|
|
219
|
+
node .forge/tools/manage-config.cjs set installedSkills.{skillId} true
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
Track accepted/skipped counts for the final report. **If the user skips the
|
|
223
|
+
entire offer, proceed without blocking.**
|
|
224
|
+
|
|
225
|
+
### KB Links Refresh
|
|
192
226
|
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
227
|
+
Invoke the `forge:refresh-kb-links` skill via the Skill tool:
|
|
228
|
+
|
|
229
|
+
```
|
|
230
|
+
Skill('forge:refresh-kb-links')
|
|
231
|
+
```
|
|
198
232
|
|
|
199
|
-
|
|
200
|
-
`/forge:report-bug`.
|
|
233
|
+
If the Skill tool is unavailable or the skill fails, emit:
|
|
201
234
|
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
235
|
+
```
|
|
236
|
+
△ Could not auto-refresh KB links — run /forge:refresh-kb-links manually
|
|
237
|
+
to wire your CLAUDE.md to your new KB docs.
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
### Final Report
|
|
241
|
+
|
|
242
|
+
```
|
|
243
|
+
Forge init complete.
|
|
244
|
+
|
|
245
|
+
KB docs generated: {count from result.kbDocCount or "see .forge/"}
|
|
246
|
+
Workflows installed: {count from result.workflowCount or "see .forge/workflows/"}
|
|
247
|
+
Commands installed: {count from result.commandCount or "see .claude/commands/"}
|
|
248
|
+
Skills accepted: {acceptedCount}
|
|
249
|
+
Skills skipped: {skippedCount}
|
|
250
|
+
|
|
251
|
+
Run `/forge:health` to verify the installation.
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
## Post-Workflow (on failure)
|
|
255
|
+
|
|
256
|
+
When `workflow('wfl:init', ...)` returns with `result.ok === false`, surface the
|
|
257
|
+
failure as structured JSON and offer a bug report:
|
|
258
|
+
|
|
259
|
+
```
|
|
260
|
+
✗ Forge init failed.
|
|
261
|
+
|
|
262
|
+
Failure details:
|
|
263
|
+
{result.failure as formatted JSON}
|
|
264
|
+
|
|
265
|
+
This looks like a Forge bug. Would you like to file a report?
|
|
266
|
+
Run `/forge:report-bug` — I'll pre-fill the report from this conversation.
|
|
267
|
+
```
|
|
205
268
|
|
|
206
269
|
## Arguments
|
|
207
270
|
|
|
208
271
|
$ARGUMENTS
|
|
209
272
|
|
|
210
|
-
## On
|
|
273
|
+
## On Error
|
|
211
274
|
|
|
212
275
|
If any step above fails unexpectedly, describe what went wrong and ask:
|
|
213
276
|
|
|
214
|
-
> "This looks like a Forge bug. Would you like to file a report to help improve it?
|
|
277
|
+
> "This looks like a Forge bug. Would you like to file a report to help improve it?
|
|
278
|
+
> Run `/forge:report-bug` — I'll pre-fill the report from this conversation."
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: reset
|
|
3
|
+
description: Rewind a halted/blocked task, bug, or sprint to an earlier pipeline phase — a guardrailed, integrity-checked state reset. Use when a pipeline halted and you need to resume from a chosen phase, or to reopen committed work for rework.
|
|
4
|
+
allowed-tools:
|
|
5
|
+
- Bash
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# /forge:reset
|
|
9
|
+
|
|
10
|
+
Guardrailed, natural-language **pipeline-state reset**. Rewinds a task, bug, or
|
|
11
|
+
sprint to an earlier phase so its pipeline can be resumed — after computing and
|
|
12
|
+
**confirming the cross-entity referential-integrity implications**. This never
|
|
13
|
+
mutates the store until you explicitly confirm the proposed plan.
|
|
14
|
+
|
|
15
|
+
> Deterministic counterpart: `4ge reset <id> --to <phase>` (forge-cli) does a
|
|
16
|
+
> single-entity task/bug reset without the NLP/integrity layer. This command
|
|
17
|
+
> adds intent parsing, sprint cascades, and the integrity gate.
|
|
18
|
+
|
|
19
|
+
## Arguments
|
|
20
|
+
|
|
21
|
+
`$ARGUMENTS` is a free-text request, e.g.:
|
|
22
|
+
- "put FORGE-S32-T03 back to implement"
|
|
23
|
+
- "redo the fix for FORGE-BUG-046 from triage"
|
|
24
|
+
- "reopen sprint FORGE-S32 from task T03"
|
|
25
|
+
|
|
26
|
+
## Resolve plugin root
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
FORGE_ROOT: !`node -e "console.log(require('./.forge/config.json').paths.forgeRoot)"`
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Step 1 — Interpret the request
|
|
33
|
+
|
|
34
|
+
From `$ARGUMENTS`, determine:
|
|
35
|
+
- **entity kind**: `task` (`*-S##-T##`), `bug` (`*-BUG-###`), or `sprint`
|
|
36
|
+
(`*-S##`). A `-BUG-` segment ⇒ bug.
|
|
37
|
+
- **id**: the canonical record id. If the id is partial or ambiguous, resolve it
|
|
38
|
+
first with `node "$FORGE_ROOT/tools/store-cli.cjs" query <text>` (or
|
|
39
|
+
`store-query-nlp`) and pick the unambiguous match; if ambiguous, ask the user.
|
|
40
|
+
- **target phase** (`--to`):
|
|
41
|
+
- task: `plan | review-plan | implement | review-code | validate | approve | writeback | commit`
|
|
42
|
+
- bug: `triage | plan-fix | review-plan | implement | review-code | approve | commit`
|
|
43
|
+
- sprint: requires a **from-task** (the member task to rewind from); the
|
|
44
|
+
cascade is computed for you.
|
|
45
|
+
|
|
46
|
+
If the target phase is missing or not valid for the entity kind, ask the user
|
|
47
|
+
rather than guessing.
|
|
48
|
+
|
|
49
|
+
## Step 2 — Compute the plan + integrity implications (READ-ONLY)
|
|
50
|
+
|
|
51
|
+
```sh
|
|
52
|
+
# task / bug
|
|
53
|
+
node "$FORGE_ROOT/tools/reset-plan.cjs" --entity <kind> --id <id> --to <phase> --json
|
|
54
|
+
# sprint
|
|
55
|
+
node "$FORGE_ROOT/tools/reset-plan.cjs" --entity sprint --id <sprintId> --from-task <taskId> --json
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
`reset-plan.cjs` is a **pure planner** — it reads the store and computes the
|
|
59
|
+
transitions + warnings, and writes nothing. Parse its JSON:
|
|
60
|
+
|
|
61
|
+
- `entity` — kind, id, currentStatus, targetStatus/targetPhase.
|
|
62
|
+
- `rewind` / `forceRequired` — whether this is a backward transition (needs
|
|
63
|
+
`--force`).
|
|
64
|
+
- `transitions[]` — the exact `{id, kind, from, to}` status changes a confirmed
|
|
65
|
+
reset would apply (for a sprint: the sprint reopen + each cascade task).
|
|
66
|
+
- `cascade[]` — (sprint) the member task ids that rewind.
|
|
67
|
+
- `warnings[]` — referential-integrity implications, each with a `code`:
|
|
68
|
+
- `committed-work` — the entity is committed/fixed; **its git commit is NOT
|
|
69
|
+
reverted** by the reset. The working tree may diverge.
|
|
70
|
+
- `sprint-incoherent` / `sprint-reopen` — the parent sprint is completed; it
|
|
71
|
+
must reopen to `active` (sprint resets do this automatically).
|
|
72
|
+
- `dependents-affected` — other tasks depend on this id and are past planning;
|
|
73
|
+
they now rest on rewound work and may need re-validation. (`ids` lists them.)
|
|
74
|
+
|
|
75
|
+
If `reset-plan.cjs` exits non-zero, surface its `error` and stop.
|
|
76
|
+
|
|
77
|
+
## Step 3 — Present the plan and REQUIRE confirmation
|
|
78
|
+
|
|
79
|
+
Show the user, in plain language:
|
|
80
|
+
1. The transition(s) that will be applied (`from → to` for each id).
|
|
81
|
+
2. Every warning, especially `committed-work` and `dependents-affected` — these
|
|
82
|
+
are the referential-integrity risks they are accepting.
|
|
83
|
+
3. The note that this does **not** revert git commits or re-run anything; it
|
|
84
|
+
only rewinds store status + (for `4ge` users) the resume-state cache.
|
|
85
|
+
|
|
86
|
+
**Do not proceed without an explicit "yes".** This is a destructive,
|
|
87
|
+
hard-to-reverse store mutation. If the user hesitates, stop.
|
|
88
|
+
|
|
89
|
+
## Step 4 — Apply (only after confirmation)
|
|
90
|
+
|
|
91
|
+
Apply each transition in `transitions[]` in order, via store-cli. Backward
|
|
92
|
+
transitions and terminal states (`blocked`, `committed`, `fixed`) require the
|
|
93
|
+
operator-gated force flag:
|
|
94
|
+
|
|
95
|
+
```sh
|
|
96
|
+
FORGE_ALLOW_FORCE=1 node "$FORGE_ROOT/tools/store-cli.cjs" \
|
|
97
|
+
update-status <kind> <id> status <to> --force
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
For a **sprint** reset, apply the sprint reopen first, then each cascade task.
|
|
101
|
+
|
|
102
|
+
After the status transitions land:
|
|
103
|
+
- Tell the user the reset is complete and how to resume:
|
|
104
|
+
- task → `/forge:run-task <id>` (or `/forge:implement <id>`)
|
|
105
|
+
- bug → `/forge:fix-bug <id>`
|
|
106
|
+
- sprint → `/forge:run-sprint <id>`
|
|
107
|
+
- If they drive Forge through **forge-cli** (`4ge`), the resume-state cache
|
|
108
|
+
(`.forge/cache/*-state.json`) is rewound by `4ge reset <id> --to <phase>` —
|
|
109
|
+
the LLM route here only owns the store side. Mention this so a `4ge` user runs
|
|
110
|
+
`4ge reset` (or deletes the stale cache) before resuming.
|
|
111
|
+
|
|
112
|
+
## Iron rule
|
|
113
|
+
|
|
114
|
+
Never apply a transition `reset-plan.cjs` did not propose, and never skip the
|
|
115
|
+
confirmation gate. The planner is the single source of truth for what a reset
|
|
116
|
+
touches; this command's only job is to explain it and, on a clear yes, apply
|
|
117
|
+
exactly that.
|
|
@@ -41,19 +41,38 @@ const _nodeToolRule = process.env.CLAUDE_PLUGIN_ROOT
|
|
|
41
41
|
? `node ${process.env.CLAUDE_PLUGIN_ROOT}/tools/*`
|
|
42
42
|
: 'node ~/.claude/plugins/cache/forge/forge/*/tools/*';
|
|
43
43
|
|
|
44
|
+
// SECURITY (issue #43 / forge-engineering #42): these patterns auto-approve a
|
|
45
|
+
// Bash command with NO prompt. A non-match falls through to Claude Code's normal
|
|
46
|
+
// permission flow (the human is asked) — it does NOT block. So the rule is:
|
|
47
|
+
// auto-allow ONLY shapes that are unambiguously in-tree Forge workflow steps,
|
|
48
|
+
// and let anything that could read a secret, exfiltrate, or execute foreign code
|
|
49
|
+
// fall through to a prompt. Patterns are anchored to their argument shape, not a
|
|
50
|
+
// bare command prefix, precisely so `cat ~/.ssh/id_rsa`, `cp <secret> /tmp/x`,
|
|
51
|
+
// `gh issue create -R attacker/repo`, `git push https://attacker/…`, and
|
|
52
|
+
// `node /tmp/evil/tools/x.cjs` are NOT auto-approved.
|
|
44
53
|
const BASH_PATTERNS = [
|
|
45
|
-
// Node tool invocations —
|
|
54
|
+
// Node tool invocations — only when the directory before /tools/ is a trusted
|
|
55
|
+
// Forge root: $FORGE_ROOT / $CLAUDE_PLUGIN_ROOT, the plugin cache, or a path
|
|
56
|
+
// ending in /.forge. `node /tmp/evil/tools/x.cjs` does NOT match.
|
|
46
57
|
// (H-5d: rule is dynamically built from CLAUDE_PLUGIN_ROOT when set)
|
|
47
|
-
{
|
|
58
|
+
{
|
|
59
|
+
pattern:
|
|
60
|
+
/^node\s+(?:"?\$(?:CLAUDE_PLUGIN_ROOT|FORGE_ROOT)"?|\S*\/\.claude\/plugins\/cache\/forge\/\S*|\S*\/\.forge)\/tools\/[\w-]+\.(?:cjs|js)\b/,
|
|
61
|
+
rule: _nodeToolRule,
|
|
62
|
+
},
|
|
48
63
|
// NOTE: node -e and node -p removed — arbitrary code execution must not be auto-approved.
|
|
49
64
|
// Forge workflows use node .../tools/*.cjs for tool invocations; inline node -e/p requires
|
|
50
65
|
// explicit user approval each time.
|
|
51
66
|
// Shell commands used by Forge workflows
|
|
52
67
|
{ pattern: /^mkdir\s+-p\s+/, rule: 'mkdir -p .forge/*' },
|
|
53
68
|
{ pattern: /^mkdir\s+-p\s+\S+/, rule: 'mkdir -p .forge/*' },
|
|
54
|
-
|
|
69
|
+
// cp only when the destination (last arg) is under .forge/ — copying a secret
|
|
70
|
+
// out to an arbitrary location is not auto-approved.
|
|
71
|
+
{ pattern: /^cp\s+\S.*\s\.?\/?\.forge\/\S*\s*$/, rule: 'cp */schemas/*.schema.json .forge/schemas/' },
|
|
55
72
|
{ pattern: /^ls\s+/, rule: 'ls *' },
|
|
56
|
-
|
|
73
|
+
// cat only within .forge/ or engineering/ — reading arbitrary files (e.g.
|
|
74
|
+
// ~/.ssh/id_rsa, /etc/passwd) falls through to a prompt.
|
|
75
|
+
{ pattern: /^cat\s+(?:-\S+\s+)*\.?\/?(?:\.forge|engineering)\//, rule: 'cat .forge/*' },
|
|
57
76
|
{ pattern: /^date\s+-u\s+/, rule: 'date -u *' },
|
|
58
77
|
{ pattern: /^date\s+/, rule: 'date -u *' },
|
|
59
78
|
{ pattern: /^jq\s+/, rule: 'jq *' },
|
|
@@ -63,14 +82,18 @@ const BASH_PATTERNS = [
|
|
|
63
82
|
{ pattern: /^rm\s+-rf\s+\.forge/, rule: 'rm -rf .forge/*' },
|
|
64
83
|
{ pattern: /^rmdir\s+/, rule: 'rmdir .forge/*' },
|
|
65
84
|
{ pattern: /^gh\s+auth\s+/, rule: 'gh auth status *' },
|
|
66
|
-
|
|
85
|
+
// gh issue only against the current repo — a -R/--repo pointing at a foreign
|
|
86
|
+
// repo (cross-repo exfiltration) is not auto-approved.
|
|
87
|
+
{ pattern: /^gh\s+issue\s+(?!.*(?:\s-R\b|\s--repo\b))/, rule: 'gh issue create *' },
|
|
67
88
|
// git read-only commands (already auto-approved by Claude Code, but belt-and-suspenders)
|
|
68
89
|
{ pattern: /^git\s+status\b/, rule: 'git status *' },
|
|
69
90
|
{ pattern: /^git\s+log\b/, rule: 'git log *' },
|
|
70
91
|
{ pattern: /^git\s+diff\b/, rule: 'git diff *' },
|
|
71
92
|
{ pattern: /^git\s+add\s+/, rule: 'git add *' },
|
|
72
93
|
{ pattern: /^git\s+commit\s+-m\s+/, rule: 'git commit -m *' },
|
|
73
|
-
|
|
94
|
+
// git push only to a named remote — pushing to an explicit attacker URL
|
|
95
|
+
// (http(s)/ssh/git/file) is not auto-approved.
|
|
96
|
+
{ pattern: /^git\s+push\b(?!.*(?:https?:\/\/|git@|ssh:\/\/|file:\/\/))/, rule: 'git push *' },
|
|
74
97
|
{ pattern: /^git\s+checkout\s+/, rule: 'git checkout *' },
|
|
75
98
|
{ pattern: /^git\s+branch\s+/, rule: 'git branch *' },
|
|
76
99
|
{ pattern: /^git\s+stash\b/, rule: 'git stash *' },
|
|
@@ -63,13 +63,17 @@ node "$FORGE_ROOT/tools/substitute-placeholders.cjs" \
|
|
|
63
63
|
```
|
|
64
64
|
|
|
65
65
|
Output directories (managed by the tool's `SUBDIR_OUTPUT_MAP`):
|
|
66
|
-
- `base-pack/commands/` → `.claude/commands/forge/` (fixed namespace — CLI-first redesign)
|
|
67
66
|
- `base-pack/personas/` → `.forge/personas/`
|
|
68
67
|
- `base-pack/skills/` → `.forge/skills/`
|
|
69
68
|
- `base-pack/workflows/` → `.forge/workflows/`
|
|
70
69
|
- `base-pack/templates/` → `.forge/templates/`
|
|
71
70
|
- `base-pack/workflows-js/` → `.claude/workflows/` (JS orchestration workflows — FORGE-S28-T01)
|
|
72
71
|
|
|
72
|
+
> Commands are no longer materialised here. Since FORGE-S32-T06 the unified
|
|
73
|
+
> slash-command tree (`forge/forge/commands/`) is installed verbatim to
|
|
74
|
+
> `.claude/commands/forge/` by the bootstrap manifest's single `commands` entry —
|
|
75
|
+
> base-pack no longer carries a `commands/` subdir.
|
|
76
|
+
|
|
73
77
|
### Step 3a — Record generated JS workflows in the generation manifest
|
|
74
78
|
|
|
75
79
|
After `substitute-placeholders.cjs` writes the JS workflows, record them in the generation
|