@entelligentsia/forgecli 0.20.3 → 1.0.2
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 +40 -0
- package/README.md +31 -33
- package/dist/CHANGELOG-forge-plugin.md +118 -0
- package/dist/CHANGELOG-pi.md +24 -1
- package/dist/bin/forgecli.d.ts +2 -0
- package/dist/bin/forgecli.js +6 -0
- package/dist/bin/forgecli.js.map +1 -0
- package/dist/extensions/forgecli/add-pipeline.js +1 -1
- package/dist/extensions/forgecli/add-pipeline.js.map +1 -1
- package/dist/extensions/forgecli/add-task.js +1 -1
- package/dist/extensions/forgecli/add-task.js.map +1 -1
- package/dist/extensions/forgecli/approve.js +17 -2
- package/dist/extensions/forgecli/approve.js.map +1 -1
- package/dist/extensions/forgecli/calibrate.js +11 -8
- package/dist/extensions/forgecli/calibrate.js.map +1 -1
- package/dist/extensions/forgecli/collate.js +1 -1
- package/dist/extensions/forgecli/collate.js.map +1 -1
- package/dist/extensions/forgecli/commit.js +17 -2
- package/dist/extensions/forgecli/commit.js.map +1 -1
- package/dist/extensions/forgecli/enhance.js +1 -1
- package/dist/extensions/forgecli/enhance.js.map +1 -1
- package/dist/extensions/forgecli/fix-bug.d.ts +1 -1
- package/dist/extensions/forgecli/fix-bug.js +14 -6
- package/dist/extensions/forgecli/fix-bug.js.map +1 -1
- package/dist/extensions/forgecli/forge-artifact-tool.d.ts +6 -8
- package/dist/extensions/forgecli/forge-artifact-tool.js +80 -195
- package/dist/extensions/forgecli/forge-artifact-tool.js.map +1 -1
- package/dist/extensions/forgecli/forge-commands.js +57 -18
- package/dist/extensions/forgecli/forge-commands.js.map +1 -1
- package/dist/extensions/forgecli/forge-init/phase4-register.js +6 -7
- package/dist/extensions/forgecli/forge-init/phase4-register.js.map +1 -1
- package/dist/extensions/forgecli/forge-init/run-phases.d.ts +4 -0
- package/dist/extensions/forgecli/forge-init/run-phases.js +304 -0
- package/dist/extensions/forgecli/forge-init/run-phases.js.map +1 -0
- package/dist/extensions/forgecli/forge-init/verifiers.d.ts +14 -5
- package/dist/extensions/forgecli/forge-init/verifiers.js +79 -62
- package/dist/extensions/forgecli/forge-init/verifiers.js.map +1 -1
- package/dist/extensions/forgecli/forge-init.js +131 -76
- package/dist/extensions/forgecli/forge-init.js.map +1 -1
- package/dist/extensions/forgecli/forge-subagent.d.ts +9 -0
- package/dist/extensions/forgecli/forge-subagent.js +11 -6
- package/dist/extensions/forgecli/forge-subagent.js.map +1 -1
- package/dist/extensions/forgecli/forge-tools.d.ts +28 -4
- package/dist/extensions/forgecli/forge-tools.js +122 -73
- package/dist/extensions/forgecli/forge-tools.js.map +1 -1
- package/dist/extensions/forgecli/health-check.js +3 -3
- package/dist/extensions/forgecli/health-check.js.map +1 -1
- package/dist/extensions/forgecli/hook-dispatcher.d.ts +1 -1
- package/dist/extensions/forgecli/hooks/check-update.d.ts +8 -0
- package/dist/extensions/forgecli/hooks/check-update.js +29 -1
- package/dist/extensions/forgecli/hooks/check-update.js.map +1 -1
- package/dist/extensions/forgecli/hooks/post-init-hook.js +6 -6
- package/dist/extensions/forgecli/hooks/post-init-hook.js.map +1 -1
- package/dist/extensions/forgecli/hooks/post-sprint-hook.js +6 -6
- package/dist/extensions/forgecli/hooks/post-sprint-hook.js.map +1 -1
- package/dist/extensions/forgecli/hooks/triage-error.js +1 -0
- package/dist/extensions/forgecli/hooks/triage-error.js.map +1 -1
- package/dist/extensions/forgecli/implement.js +20 -2
- package/dist/extensions/forgecli/implement.js.map +1 -1
- package/dist/extensions/forgecli/index.js +39 -32
- package/dist/extensions/forgecli/index.js.map +1 -1
- package/dist/extensions/forgecli/lib/pipeline-guard.d.ts +41 -0
- package/dist/extensions/forgecli/lib/pipeline-guard.js +100 -0
- package/dist/extensions/forgecli/lib/pipeline-guard.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/migrate.d.ts +3 -0
- package/dist/extensions/forgecli/migrate.js +4 -2
- package/dist/extensions/forgecli/migrate.js.map +1 -1
- package/dist/extensions/forgecli/plan.js +21 -2
- package/dist/extensions/forgecli/plan.js.map +1 -1
- package/dist/extensions/forgecli/quiz-agent.js +7 -7
- package/dist/extensions/forgecli/quiz-agent.js.map +1 -1
- package/dist/extensions/forgecli/regenerate.js +49 -18
- package/dist/extensions/forgecli/regenerate.js.map +1 -1
- package/dist/extensions/forgecli/remove-command.js +1 -1
- package/dist/extensions/forgecli/remove-command.js.map +1 -1
- package/dist/extensions/forgecli/report-bug.js +1 -1
- package/dist/extensions/forgecli/report-bug.js.map +1 -1
- package/dist/extensions/forgecli/retrospective.js +9 -9
- package/dist/extensions/forgecli/retrospective.js.map +1 -1
- package/dist/extensions/forgecli/review-code.d.ts +13 -0
- package/dist/extensions/forgecli/review-code.js +62 -3
- package/dist/extensions/forgecli/review-code.js.map +1 -1
- package/dist/extensions/forgecli/review-plan.d.ts +13 -0
- package/dist/extensions/forgecli/review-plan.js +65 -3
- package/dist/extensions/forgecli/review-plan.js.map +1 -1
- package/dist/extensions/forgecli/run-task.d.ts +2 -1
- package/dist/extensions/forgecli/run-task.js +48 -4
- package/dist/extensions/forgecli/run-task.js.map +1 -1
- package/dist/extensions/forgecli/skill-curator-subagent.d.ts +2 -1
- package/dist/extensions/forgecli/skill-curator-subagent.js +2 -1
- package/dist/extensions/forgecli/skill-curator-subagent.js.map +1 -1
- package/dist/extensions/forgecli/sprint-intake.js +6 -6
- package/dist/extensions/forgecli/sprint-intake.js.map +1 -1
- package/dist/extensions/forgecli/sprint-plan.js +9 -9
- package/dist/extensions/forgecli/sprint-plan.js.map +1 -1
- package/dist/extensions/forgecli/status-command.js +1 -1
- package/dist/extensions/forgecli/status-command.js.map +1 -1
- package/dist/extensions/forgecli/store-query.js +11 -11
- package/dist/extensions/forgecli/store-query.js.map +1 -1
- package/dist/extensions/forgecli/store-repair.js +7 -7
- package/dist/extensions/forgecli/store-repair.js.map +1 -1
- package/dist/extensions/forgecli/validate.js +17 -2
- package/dist/extensions/forgecli/validate.js.map +1 -1
- package/dist/forge-payload/.base-pack/commands/check-agent.md +22 -0
- package/dist/forge-payload/.base-pack/commands/new-sprint.md +22 -0
- package/dist/forge-payload/.base-pack/commands/plan-sprint.md +22 -0
- package/dist/forge-payload/.base-pack/commands/quiz-agent.md +2 -18
- package/dist/forge-payload/.base-pack/commands/retro.md +22 -0
- package/dist/forge-payload/.base-pack/commands/retrospective.md +2 -18
- package/dist/forge-payload/.base-pack/commands/sprint-intake.md +2 -18
- package/dist/forge-payload/.base-pack/commands/sprint-plan.md +2 -18
- package/dist/forge-payload/.base-pack/workflows/_fragments/friction-emit.md +2 -2
- package/dist/forge-payload/.base-pack/workflows/_fragments/generation-instructions.md +4 -4
- package/dist/forge-payload/.base-pack/workflows/_fragments/iron-laws.md +1 -1
- package/dist/forge-payload/.base-pack/workflows/architect_approve.md +13 -1
- package/dist/forge-payload/.base-pack/workflows/commit_task.md +12 -1
- package/dist/forge-payload/.base-pack/workflows/enhance.md +40 -10
- package/dist/forge-payload/.base-pack/workflows/fix_bug.md +1 -1
- package/dist/forge-payload/.base-pack/workflows/implement_plan.md +14 -2
- package/dist/forge-payload/.base-pack/workflows/migrate_structural.md +2 -2
- package/dist/forge-payload/.base-pack/workflows/orchestrate_task.md +20 -4
- package/dist/forge-payload/.base-pack/workflows/plan_task.md +14 -2
- package/dist/forge-payload/.base-pack/workflows/review_code.md +37 -7
- package/dist/forge-payload/.base-pack/workflows/review_plan.md +36 -6
- package/dist/forge-payload/.base-pack/workflows/run_sprint.md +2 -2
- package/dist/forge-payload/.base-pack/workflows/validate_task.md +37 -7
- package/dist/forge-payload/.claude-plugin/plugin.json +1 -1
- package/dist/forge-payload/.schemas/config.schema.json +0 -5
- package/dist/forge-payload/.schemas/enum-catalog.json +9 -13
- package/dist/forge-payload/.schemas/migrations.json +65 -0
- package/dist/forge-payload/agents/tomoshibi.md +150 -6
- package/dist/forge-payload/commands/add-pipeline.md +1 -1
- package/dist/forge-payload/commands/add-task.md +1 -1
- package/dist/forge-payload/commands/calibrate.md +4 -350
- package/dist/forge-payload/commands/check-agent.md +38 -0
- package/dist/forge-payload/commands/config.md +3 -113
- package/dist/forge-payload/commands/enhance.md +5 -32
- package/dist/forge-payload/commands/health.md +155 -13
- package/dist/forge-payload/commands/init.md +25 -31
- package/dist/forge-payload/commands/migrate.md +6 -154
- package/dist/forge-payload/commands/quiz-agent.md +2 -34
- package/dist/forge-payload/commands/rebuild.md +664 -0
- package/dist/forge-payload/commands/regenerate.md +2 -774
- package/dist/forge-payload/commands/remove.md +10 -13
- package/dist/forge-payload/commands/repair.md +187 -0
- package/dist/forge-payload/commands/search.md +73 -0
- package/dist/forge-payload/commands/status.md +105 -0
- package/dist/forge-payload/commands/store-query.md +2 -69
- package/dist/forge-payload/commands/store-repair.md +2 -183
- package/dist/forge-payload/commands/update-tools.md +4 -50
- package/dist/forge-payload/commands/update.md +64 -58
- package/dist/forge-payload/hooks/check-update.cjs +1 -1
- package/dist/forge-payload/hooks/post-init.cjs +2 -2
- package/dist/forge-payload/hooks/post-sprint.cjs +2 -2
- package/dist/forge-payload/hooks/triage-error.cjs +11 -10
- package/dist/forge-payload/init/phases/phase-1-collect.md +138 -0
- package/dist/forge-payload/init/phases/phase-2-discover.md +127 -0
- package/dist/forge-payload/init/phases/phase-3-materialize.md +113 -0
- package/dist/forge-payload/init/phases/phase-4-register.md +159 -0
- package/dist/forge-payload/integrity.json +21 -24
- package/dist/forge-payload/meta/fragments/tool-discipline.md +22 -0
- package/dist/forge-payload/meta/templates/meta-retro.md +28 -0
- package/dist/forge-payload/meta/workflows/_fragments/friction-emit.md +2 -2
- package/dist/forge-payload/meta/workflows/_fragments/generation-instructions.md +4 -4
- package/dist/forge-payload/meta/workflows/_fragments/iron-laws.md +1 -1
- package/dist/forge-payload/meta/workflows/meta-approve.md +13 -1
- package/dist/forge-payload/meta/workflows/meta-check-agent.md +138 -0
- package/dist/forge-payload/meta/workflows/meta-commit.md +12 -1
- package/dist/forge-payload/meta/workflows/meta-enhance.md +39 -9
- package/dist/forge-payload/meta/workflows/meta-fix-bug.md +1 -1
- package/dist/forge-payload/meta/workflows/meta-implement.md +13 -1
- package/dist/forge-payload/meta/workflows/meta-migrate.md +3 -3
- package/dist/forge-payload/meta/workflows/meta-new-sprint.md +84 -0
- package/dist/forge-payload/meta/workflows/meta-orchestrate.md +20 -4
- package/dist/forge-payload/meta/workflows/meta-plan-sprint.md +152 -0
- package/dist/forge-payload/meta/workflows/meta-plan-task.md +13 -1
- package/dist/forge-payload/meta/workflows/meta-retro.md +73 -0
- package/dist/forge-payload/meta/workflows/meta-review-implementation.md +37 -7
- package/dist/forge-payload/meta/workflows/meta-review-plan.md +36 -6
- package/dist/forge-payload/meta/workflows/meta-validate.md +37 -7
- package/dist/forge-payload/schemas/config.schema.json +0 -5
- package/dist/forge-payload/schemas/enum-catalog.json +9 -13
- package/dist/forge-payload/schemas/structure-manifest.json +6 -8
- package/dist/forge-payload/tools/artifact.cjs +295 -0
- package/dist/forge-payload/tools/banners.cjs +3 -4
- package/dist/forge-payload/tools/build-context-pack.cjs +1 -1
- package/dist/forge-payload/tools/check-structure.cjs +8 -3
- package/dist/forge-payload/tools/store-cli.cjs +67 -7
- package/dist/forge-payload/tools/substitute-placeholders.cjs +1 -1
- package/dist/forge-payload/tools/verify-apply.cjs +75 -0
- package/dist/forge-payload/tools/verify-phase.cjs +259 -0
- package/node_modules/@earendil-works/pi-agent-core/package.json +2 -2
- package/node_modules/@earendil-works/pi-ai/dist/models.generated.d.ts +0 -17
- 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 +21 -38
- package/node_modules/@earendil-works/pi-ai/dist/models.generated.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 +5 -4
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex-responses.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/overflow.d.ts +2 -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 +5 -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 +24 -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 +2 -3
- 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/core/output-guard.d.ts +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/output-guard.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/output-guard.js +52 -22
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/output-guard.js.map +1 -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 +16 -4
- 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/tools/bash.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/bash.js +45 -50
- 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.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/edit.js +43 -81
- 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/file-mutation-queue.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/file-mutation-queue.js +27 -12
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/file-mutation-queue.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 +2 -3
- 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 +3 -3
- 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 +5 -5
- 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/path-utils.d.ts +2 -0
- 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 +37 -0
- 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.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/read.js +9 -8
- 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 +20 -35
- 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/modes/rpc/rpc-client.d.ts +3 -0
- 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 +64 -7
- 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.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-mode.js +15 -3
- 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/utils/clipboard-native.d.ts +3 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/clipboard-native.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/clipboard-native.js +14 -8
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/clipboard-native.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/image-resize-core.d.ts +30 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/image-resize-core.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/image-resize-core.js +124 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/image-resize-core.js.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/image-resize-worker.d.ts +2 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/image-resize-worker.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/image-resize-worker.js +31 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/image-resize-worker.js.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/image-resize.d.ts +7 -27
- 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 +75 -115
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/image-resize.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/docs/terminal-setup.md +6 -0
- 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/sandbox/package.json +1 -1
- 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 -14
- package/node_modules/@earendil-works/pi-coding-agent/package.json +5 -5
- package/node_modules/@earendil-works/pi-tui/dist/native-modifiers.d.ts +3 -0
- package/node_modules/@earendil-works/pi-tui/dist/native-modifiers.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-tui/dist/native-modifiers.js +53 -0
- package/node_modules/@earendil-works/pi-tui/dist/native-modifiers.js.map +1 -0
- package/node_modules/@earendil-works/pi-tui/dist/terminal-image.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/terminal-image.js +4 -1
- package/node_modules/@earendil-works/pi-tui/dist/terminal-image.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/terminal.d.ts +2 -0
- package/node_modules/@earendil-works/pi-tui/dist/terminal.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/terminal.js +13 -1
- package/node_modules/@earendil-works/pi-tui/dist/terminal.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/native/darwin/prebuilds/darwin-arm64/darwin-modifiers.node +0 -0
- package/node_modules/@earendil-works/pi-tui/native/darwin/prebuilds/darwin-x64/darwin-modifiers.node +0 -0
- package/node_modules/@earendil-works/pi-tui/package.json +2 -2
- package/package.json +6 -6
- package/dist/extensions/forgecli/forge-init/phase-descriptors.d.ts +0 -72
- package/dist/extensions/forgecli/forge-init/phase-descriptors.js +0 -359
- package/dist/extensions/forgecli/forge-init/phase-descriptors.js.map +0 -1
- package/dist/extensions/forgecli/forge-init/prompts.d.ts +0 -10
- package/dist/extensions/forgecli/forge-init/prompts.js +0 -91
- package/dist/extensions/forgecli/forge-init/prompts.js.map +0 -1
- package/dist/extensions/forgecli/lib/store-error-remediation.d.ts +0 -65
- package/dist/extensions/forgecli/lib/store-error-remediation.js +0 -298
- package/dist/extensions/forgecli/lib/store-error-remediation.js.map +0 -1
- package/dist/forge-payload/hooks/check-update.js +0 -378
- package/dist/forge-payload/hooks/forge-permissions.js +0 -164
- package/dist/forge-payload/hooks/triage-error.js +0 -77
- package/dist/forge-payload/hooks/validate-write.js +0 -250
|
@@ -1,22 +1,21 @@
|
|
|
1
1
|
// forge-init.ts — /forge:init command handler — FORGE-S17-T02
|
|
2
2
|
//
|
|
3
3
|
// Full 4-phase init flow:
|
|
4
|
-
// Phase 1 — Collect:
|
|
5
|
-
// Phase 2 — Discover:
|
|
4
|
+
// Phase 1 — Collect: multi-step discovery + config.json synthesis → .forge/config.json
|
|
5
|
+
// Phase 2 — Discover: phase gate + KB doc generation + index files → engineering/
|
|
6
6
|
// Phase 3 — Materialize: substitute-placeholders → .forge/{personas,skills,workflows,templates}
|
|
7
7
|
// Phase 4 — Register: 11 deterministic steps → versioning, packs, store, Tomoshibi
|
|
8
8
|
//
|
|
9
9
|
// Per INIT_PARITY_SPEC.md and PLAN.md (rev 2) phases A–G.
|
|
10
10
|
//
|
|
11
|
-
// ──
|
|
11
|
+
// ── Phase model (FORGE-S26-T17) ──────────────────────────────────────────
|
|
12
12
|
//
|
|
13
|
-
// Phases 1–3 are
|
|
14
|
-
//
|
|
15
|
-
//
|
|
16
|
-
//
|
|
13
|
+
// Phases 1–3 are standalone async functions in forge-init/run-phases.ts.
|
|
14
|
+
// Each reads its phase prompt from the bundled init/phases/phase-N-*.md file,
|
|
15
|
+
// dispatches via sendToAgent + waitForIdle (phases 1-2) or runs tools directly
|
|
16
|
+
// (phase 3), then verifies deliverables via verify-phase.cjs.
|
|
17
17
|
//
|
|
18
|
-
// Phase 4
|
|
19
|
-
// extracted into forge-init/phase4-register.ts → runPhase4().
|
|
18
|
+
// Phase 4 is in forge-init/phase4-register.ts → runPhase4().
|
|
20
19
|
//
|
|
21
20
|
// This file is the orchestrator: flag parsing, resume detection, configCache population
|
|
22
21
|
// (between Phase 1 and Phase 2), phase loop, post-init report.
|
|
@@ -33,21 +32,28 @@
|
|
|
33
32
|
// #5: Tomoshibi — runRefreshKbLinks() native TS port; no shell-out
|
|
34
33
|
// #9: Health check — runHealthCheck() direct call; NOT via sendUserMessage
|
|
35
34
|
//
|
|
36
|
-
// ── Async/sync contract (N-B-C)
|
|
35
|
+
// ── Async/sync contract (N-B-C, revised 2026-05-26) ──────────────────────────
|
|
37
36
|
//
|
|
38
|
-
// `sendToAgent(text)`
|
|
39
|
-
//
|
|
40
|
-
// until the current handler yields (awaits).
|
|
37
|
+
// `await sendToAgent(text)` sends a prompt to the agent and resolves when the agent
|
|
38
|
+
// has finished processing it. It wraps `pi.sendUserMessage(text, { deliverAs: "steer" })`.
|
|
41
39
|
//
|
|
42
|
-
//
|
|
43
|
-
//
|
|
44
|
-
//
|
|
45
|
-
//
|
|
40
|
+
// When the agent is IDLE (the common case at init start): sendUserMessage calls
|
|
41
|
+
// session.prompt(), which starts a full agent turn via agent.prompt(). Awaiting it
|
|
42
|
+
// blocks until that turn completes, including all tool calls and follow-ups.
|
|
43
|
+
//
|
|
44
|
+
// When the agent is STREAMING (mid-turn): sendUserMessage enqueues a steer message
|
|
45
|
+
// and resolves quickly — the steer is picked up by the running turn's steering poll.
|
|
46
|
+
// In this case `await ctx.waitForIdle()` IS needed afterwards to wait for the turn
|
|
47
|
+
// (including the steer) to finish.
|
|
48
|
+
//
|
|
49
|
+
// Both awaits are always issued: `await sendToAgent` covers the idle-agent path;
|
|
50
|
+
// `await waitForIdle` covers the streaming-agent path and is a harmless no-op when
|
|
51
|
+
// the agent already completed its turn via sendToAgent.
|
|
46
52
|
//
|
|
47
53
|
// Pattern for every phase:
|
|
48
|
-
// sendToAgent(promptText);
|
|
49
|
-
// await
|
|
50
|
-
// const result = verifyPhaseN();
|
|
54
|
+
// await sendToAgent(promptText); // dispatch + wait for completion when idle
|
|
55
|
+
// await waitForIdle(); // wait for current turn when streaming; no-op when idle
|
|
56
|
+
// const result = verifyPhaseN(); // read deliverable — agent is done
|
|
51
57
|
//
|
|
52
58
|
// ── Config cache boundary (B-4, N-B-A) ──────────────────────────────────────
|
|
53
59
|
//
|
|
@@ -62,14 +68,17 @@
|
|
|
62
68
|
import * as fs from "node:fs";
|
|
63
69
|
import * as path from "node:path";
|
|
64
70
|
import { fileURLToPath } from "node:url";
|
|
65
|
-
import { PHASE_1, PHASE_2, PHASE_3, runLlmPhase } from "./forge-init/phase-descriptors.js";
|
|
66
71
|
import { runPhase4 } from "./forge-init/phase4-register.js";
|
|
72
|
+
import { runPhase1, runPhase2, runPhase3 } from "./forge-init/run-phases.js";
|
|
67
73
|
import { verifyPhase1, verifyPhase3 } from "./forge-init/verifiers.js";
|
|
68
74
|
import { runHealthCheck } from "./health-check.js";
|
|
69
75
|
import { emitSyntheticEvent } from "./hook-dispatcher.js";
|
|
70
76
|
import { discoverProjectName } from "./init-context.js";
|
|
71
77
|
import { deleteInitProgress, readInitProgress } from "./init-progress.js";
|
|
72
78
|
import { execFileAsync } from "./lib/exec-helpers.js";
|
|
79
|
+
import { clearForgeConfigCache } from "./lib/forge-config.js";
|
|
80
|
+
// FORGE-S26-T11: registerMigrate imported to power `forge:init --migrate`
|
|
81
|
+
import { registerMigrate } from "./migrate.js";
|
|
73
82
|
// ── Bundle path resolution ─────────────────────────────────────────────────
|
|
74
83
|
const _EXTENSION_DIR = path.dirname(fileURLToPath(import.meta.url));
|
|
75
84
|
// dist/extensions/forgecli/ → dist/ → <pkg-root>/
|
|
@@ -149,12 +158,13 @@ function parseInitFlags(args) {
|
|
|
149
158
|
const parts = args.trim().split(/\s+/).filter(Boolean);
|
|
150
159
|
const hasFast = parts.includes("--fast");
|
|
151
160
|
const hasFull = parts.includes("--full");
|
|
161
|
+
const hasMigrate = parts.includes("--migrate");
|
|
152
162
|
// Find trailing numeric phase arg
|
|
153
163
|
let startPhase = null;
|
|
154
164
|
let invalidPhase = false;
|
|
155
165
|
for (let i = 0; i < parts.length; i++) {
|
|
156
166
|
const p = parts[i];
|
|
157
|
-
if (p === "--fast" || p === "--full")
|
|
167
|
+
if (p === "--fast" || p === "--full" || p === "--migrate")
|
|
158
168
|
continue;
|
|
159
169
|
const n = parseInt(p, 10);
|
|
160
170
|
if (!Number.isNaN(n)) {
|
|
@@ -169,6 +179,7 @@ function parseInitFlags(args) {
|
|
|
169
179
|
return {
|
|
170
180
|
fast: hasFast,
|
|
171
181
|
full: hasFull,
|
|
182
|
+
migrate: hasMigrate,
|
|
172
183
|
startPhase,
|
|
173
184
|
conflict: hasFast && hasFull,
|
|
174
185
|
invalidPhase,
|
|
@@ -179,11 +190,19 @@ export function registerForgeInit(pi) {
|
|
|
179
190
|
// Capture pi.sendUserMessage in closure — ExtensionCommandContext does not
|
|
180
191
|
// have sendUserMessage; it is on ExtensionAPI per pi types.ts:1187.
|
|
181
192
|
//
|
|
182
|
-
//
|
|
183
|
-
//
|
|
184
|
-
//
|
|
185
|
-
//
|
|
186
|
-
|
|
193
|
+
// sendToAgent MUST be awaited. When the agent is idle (the typical case for
|
|
194
|
+
// /forge:init), sendUserMessage starts a full agent turn and resolves when it
|
|
195
|
+
// completes. When the agent is streaming, sendUserMessage enqueues a steer and
|
|
196
|
+
// resolves quickly — waitForIdle is then needed to wait for the turn to finish.
|
|
197
|
+
//
|
|
198
|
+
// Previous bug (BUG-017/BUG-023 workaround was incomplete): sendToAgent was
|
|
199
|
+
// fire-and-forget (no await), and waitForIdle was the sole sync primitive.
|
|
200
|
+
// But waitForIdle() returns Promise.resolve() when agent.activeRun is null
|
|
201
|
+
// (no active turn), which is the state at init start — the steer hadn't been
|
|
202
|
+
// picked up yet, so everything after waitForIdle fired instantly.
|
|
203
|
+
const sendToAgent = async (text) => {
|
|
204
|
+
await pi.sendUserMessage(text, { deliverAs: "steer" });
|
|
205
|
+
};
|
|
187
206
|
pi.registerCommand("forge:init", {
|
|
188
207
|
description: "Bootstrap a new Forge SDLC project at the current working directory",
|
|
189
208
|
async handler(args, ctx) {
|
|
@@ -196,6 +215,28 @@ export function registerForgeInit(pi) {
|
|
|
196
215
|
let kbPathFinal = "engineering";
|
|
197
216
|
// ── 1. Flag parsing ────────────────────────────────────────────────
|
|
198
217
|
const flags = parseInitFlags(args);
|
|
218
|
+
// FORGE-S26-T11: --migrate flag dispatches to store migration instead of init.
|
|
219
|
+
if (flags.migrate) {
|
|
220
|
+
// Strip --migrate, pass remaining args to migrate handler.
|
|
221
|
+
const migrateParts = (args ?? "").trim().split(/\s+/).filter((p) => p !== "--migrate");
|
|
222
|
+
const migrateArgs = migrateParts.join(" ");
|
|
223
|
+
let migrateHandler;
|
|
224
|
+
const syntheticPi = {
|
|
225
|
+
...pi,
|
|
226
|
+
registerCommand: (name, def) => {
|
|
227
|
+
if (name === "forge:migrate")
|
|
228
|
+
migrateHandler = def.handler;
|
|
229
|
+
},
|
|
230
|
+
};
|
|
231
|
+
registerMigrate(syntheticPi);
|
|
232
|
+
if (migrateHandler) {
|
|
233
|
+
await migrateHandler(migrateArgs, ctx);
|
|
234
|
+
}
|
|
235
|
+
else {
|
|
236
|
+
ctx.ui.notify("× forge:init --migrate — migrate handler unavailable", "error");
|
|
237
|
+
}
|
|
238
|
+
return;
|
|
239
|
+
}
|
|
199
240
|
if (flags.conflict) {
|
|
200
241
|
ctx.ui.notify("× Conflicting flags: --fast and --full cannot be combined.", "error");
|
|
201
242
|
return;
|
|
@@ -262,13 +303,12 @@ export function registerForgeInit(pi) {
|
|
|
262
303
|
if (flags.startPhase === null || flags.invalidPhase) {
|
|
263
304
|
const preflightSummary = `Forge Init — ${projectName}\n\n` +
|
|
264
305
|
`4 phases will run in this session (~45 seconds non-interactive):\n\n` +
|
|
265
|
-
` 1 Collect —
|
|
306
|
+
` 1 Collect — codebase discovery → config.json\n` +
|
|
266
307
|
` KB folder prompt (interactive)\n` +
|
|
267
|
-
` 2 Discover — KB doc generation
|
|
308
|
+
` 2 Discover — KB doc generation + project-context.json\n` +
|
|
268
309
|
` 3 Materialize — substitute-placeholders.cjs → fully functional workflows\n` +
|
|
269
310
|
` 4 Register — versioning, manifest, cache, store entries, Tomoshibi\n\n` +
|
|
270
|
-
`Phase 1 is interactive (KB folder name prompt). Phases 2–4 are non-interactive
|
|
271
|
-
`and complete in under 45 seconds.`;
|
|
311
|
+
`Phase 1 is interactive (KB folder name prompt). Phases 2–4 are non-interactive.`;
|
|
272
312
|
// G2: skip pre-flight confirm in non-interactive mode (proceed directly to Phase 1)
|
|
273
313
|
if (!isNonInteractive()) {
|
|
274
314
|
const proceed = await ctx.ui.confirm("Start /forge:init?", preflightSummary);
|
|
@@ -292,32 +332,50 @@ export function registerForgeInit(pi) {
|
|
|
292
332
|
catch {
|
|
293
333
|
// File not yet present — Phase 1 will create it
|
|
294
334
|
}
|
|
295
|
-
// ── Phases 1–3:
|
|
296
|
-
// Each phase is
|
|
297
|
-
//
|
|
298
|
-
//
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
if (
|
|
302
|
-
// Resume path: skip phases already completed
|
|
303
|
-
continue;
|
|
304
|
-
}
|
|
305
|
-
const phaseResult = await runLlmPhase(desc, ctx, cwd, bundleRoot, toolsRoot, projectName, configCache, sendToAgent, () => ctx.waitForIdle(), isNonInteractive);
|
|
306
|
-
if (phaseResult === "abort") {
|
|
335
|
+
// ── Phases 1–3: linear phase calls ──────────────────────────────────
|
|
336
|
+
// Each phase is a standalone async function in forge-init/run-phases.ts.
|
|
337
|
+
// (FORGE-S26-T17: replaced descriptor-driven loop with explicit calls.)
|
|
338
|
+
// Phase 1 — Collect
|
|
339
|
+
if (startPhase <= 1) {
|
|
340
|
+
const phase1Result = await runPhase1(cwd, bundleRoot, toolsRoot, configCache, ctx, sendToAgent, () => ctx.waitForIdle(), isNonInteractive);
|
|
341
|
+
if (phase1Result === "abort")
|
|
307
342
|
return;
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
configCache = JSON.parse(fs.readFileSync(path.join(cwd, ".forge", "config.json"), "utf8"));
|
|
343
|
+
// Inter-phase gate: let user review before Phase 2
|
|
344
|
+
if (!isNonInteractive()) {
|
|
345
|
+
const proceed = await ctx.ui.confirm("Phase 1 complete — proceed?", "Phase 1 deliverables verified. Continue to Phase 2: Discover (KB generation)?");
|
|
346
|
+
if (!proceed) {
|
|
347
|
+
ctx.ui.notify("〇 /forge:init paused after Phase 1. Re-run /forge:init to resume.", "info");
|
|
348
|
+
return;
|
|
315
349
|
}
|
|
316
|
-
|
|
317
|
-
|
|
350
|
+
}
|
|
351
|
+
// Refresh configCache after Phase 1 writes .forge/config.json
|
|
352
|
+
try {
|
|
353
|
+
configCache = JSON.parse(fs.readFileSync(path.join(cwd, ".forge", "config.json"), "utf8"));
|
|
354
|
+
}
|
|
355
|
+
catch {
|
|
356
|
+
// Fall back to existing cache — all downstream reads have their own defaults
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
// Phase 2 — Discover
|
|
360
|
+
if (startPhase <= 2) {
|
|
361
|
+
const phase2Result = await runPhase2(cwd, bundleRoot, toolsRoot, projectName, configCache, ctx, sendToAgent, () => ctx.waitForIdle(), isNonInteractive);
|
|
362
|
+
if (phase2Result === "abort")
|
|
363
|
+
return;
|
|
364
|
+
// Inter-phase gate: let user review before Phase 3
|
|
365
|
+
if (!isNonInteractive()) {
|
|
366
|
+
const proceed = await ctx.ui.confirm("Phase 2 complete — proceed?", "Phase 2 deliverables verified. Continue to Phase 3: Materialize (workflow generation)?");
|
|
367
|
+
if (!proceed) {
|
|
368
|
+
ctx.ui.notify("〇 /forge:init paused after Phase 2. Re-run /forge:init to resume.", "info");
|
|
369
|
+
return;
|
|
318
370
|
}
|
|
319
371
|
}
|
|
320
372
|
}
|
|
373
|
+
// Phase 3 — Materialize
|
|
374
|
+
if (startPhase <= 3) {
|
|
375
|
+
const phase3Result = await runPhase3(cwd, bundleRoot, toolsRoot, ctx);
|
|
376
|
+
if (phase3Result === "abort")
|
|
377
|
+
return;
|
|
378
|
+
}
|
|
321
379
|
// ── Phase 4 — Register (runPhase4) ────────────────────────────────
|
|
322
380
|
if (startPhase <= 4) {
|
|
323
381
|
const phase4Result = await runPhase4({
|
|
@@ -336,6 +394,8 @@ export function registerForgeInit(pi) {
|
|
|
336
394
|
// phase4Result.kbPathFinal is used in the post-init report below
|
|
337
395
|
kbPathFinal = phase4Result.kbPathFinal;
|
|
338
396
|
}
|
|
397
|
+
// ── Invalidate forge-config cache so same-session commands find the new project
|
|
398
|
+
clearForgeConfigCache();
|
|
339
399
|
// ── Post-Phase-4: health check ────────────────────────────────────
|
|
340
400
|
ctx.ui.setStatus?.("forge:init", "Post-init: health check");
|
|
341
401
|
const healthResult = await runHealthCheck(cwd, bundleRoot);
|
|
@@ -348,23 +408,6 @@ export function registerForgeInit(pi) {
|
|
|
348
408
|
ctx.ui.notify(` · ${gap.check}: ${gap.message}`, "info");
|
|
349
409
|
}
|
|
350
410
|
}
|
|
351
|
-
// ── post-init: emit synthetic event for registered hooks (FORGE-S21-T04) ──
|
|
352
|
-
// Replaces the old sentinel-writing stub. The init-complete event is
|
|
353
|
-
// consumed by hooks/post-init-hook.ts which handles idempotency,
|
|
354
|
-
// materialization-marker checks, audience gates, and dispatch.
|
|
355
|
-
// Errors inside hooks are caught by emitSyntheticEvent — fail-open.
|
|
356
|
-
{
|
|
357
|
-
// Use configCache — valid for both full-run and resumed-init paths.
|
|
358
|
-
// configCache is populated once (after Phase 1 completes or from pre-existing
|
|
359
|
-
// config.json for resumed inits). Non-fatal if cache is empty (empty prefix
|
|
360
|
-
// causes hook to write sentinel under post-init-fired-.json).
|
|
361
|
-
let projectPrefixForHook = "";
|
|
362
|
-
const projForHook = configCache.project;
|
|
363
|
-
if (projForHook && typeof projForHook.prefix === "string") {
|
|
364
|
-
projectPrefixForHook = projForHook.prefix;
|
|
365
|
-
}
|
|
366
|
-
await emitSyntheticEvent({ type: "init-complete", projectPrefix: projectPrefixForHook, cwd }, ctx);
|
|
367
|
-
}
|
|
368
411
|
// ── Report ────────────────────────────────────────────────────────
|
|
369
412
|
// FIX BUG-020: use configCache here (populated from config.json after Phase 1
|
|
370
413
|
// or from pre-existing config.json for resumed inits starting at Phase 2+).
|
|
@@ -404,8 +447,8 @@ export function registerForgeInit(pi) {
|
|
|
404
447
|
ctx.ui.notify(`× /forge:init: ${criticalGaps.length} critical gap(s) require attention — see Report.`, "error");
|
|
405
448
|
}
|
|
406
449
|
// Final cross-phase verification — banner reflects real disk state.
|
|
407
|
-
const finalP1 = verifyPhase1(cwd);
|
|
408
|
-
const finalP3 = verifyPhase3(cwd);
|
|
450
|
+
const finalP1 = await verifyPhase1(cwd);
|
|
451
|
+
const finalP3 = await verifyPhase3(cwd);
|
|
409
452
|
const fullyComplete = finalP1.ok && finalP3.ok;
|
|
410
453
|
const bannerLabel = fullyComplete
|
|
411
454
|
? `║ /forge:init complete ║`
|
|
@@ -416,7 +459,7 @@ export function registerForgeInit(pi) {
|
|
|
416
459
|
}
|
|
417
460
|
if (!finalP3.ok) {
|
|
418
461
|
incompleteDetail.push(`× Phase 3: ${finalP3.missing.join(", ")} (materialization missing)`);
|
|
419
|
-
incompleteDetail.push(` → Recover: \`/forge:
|
|
462
|
+
incompleteDetail.push(` → Recover: \`/forge:rebuild\` (re-runs substitute-placeholders against current config), or delete .forge/init-progress.json and re-run /forge:init.`);
|
|
420
463
|
}
|
|
421
464
|
const report = [
|
|
422
465
|
``,
|
|
@@ -437,9 +480,9 @@ export function registerForgeInit(pi) {
|
|
|
437
480
|
healthSection,
|
|
438
481
|
``,
|
|
439
482
|
`Next steps:`,
|
|
440
|
-
` 1. Run /forge:sprint
|
|
441
|
-
` 2. Run /forge:
|
|
442
|
-
` 3. Run /forge:
|
|
483
|
+
` 1. Run /forge:new-sprint to start your first sprint`,
|
|
484
|
+
` 2. Run /forge:status to see sprint and task summary`,
|
|
485
|
+
` 3. Run /forge:health anytime to check project health`,
|
|
443
486
|
``,
|
|
444
487
|
`Note: Marketplace skills auto-recommendation is Claude-Code-only.`,
|
|
445
488
|
`Pi users install extensions manually.`,
|
|
@@ -452,7 +495,19 @@ export function registerForgeInit(pi) {
|
|
|
452
495
|
]
|
|
453
496
|
: []),
|
|
454
497
|
].join("\n");
|
|
455
|
-
sendToAgent(report);
|
|
498
|
+
await sendToAgent(report);
|
|
499
|
+
// ── post-init: emit synthetic event for registered hooks (FORGE-S21-T04) ──
|
|
500
|
+
// Fires AFTER the report so the user sees the summary before enhancement
|
|
501
|
+
// or other hook-triggered workflows begin.
|
|
502
|
+
// Errors inside hooks are caught by emitSyntheticEvent — fail-open.
|
|
503
|
+
{
|
|
504
|
+
let projectPrefixForHook = "";
|
|
505
|
+
const projForHook = configCache.project;
|
|
506
|
+
if (projForHook && typeof projForHook.prefix === "string") {
|
|
507
|
+
projectPrefixForHook = projForHook.prefix;
|
|
508
|
+
}
|
|
509
|
+
await emitSyntheticEvent({ type: "init-complete", projectPrefix: projectPrefixForHook, cwd }, ctx);
|
|
510
|
+
}
|
|
456
511
|
},
|
|
457
512
|
});
|
|
458
513
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forge-init.js","sourceRoot":"","sources":["../../../src/extensions/forgecli/forge-init.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"forge-init.js","sourceRoot":"","sources":["../../../src/extensions/forgecli/forge-init.ts"],"names":[],"mappings":"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"}
|
|
@@ -112,6 +112,15 @@ export interface RunSubagentOptions {
|
|
|
112
112
|
* to build the appropriate subset for each persona.
|
|
113
113
|
*/
|
|
114
114
|
customTools?: ToolDefinition[];
|
|
115
|
+
/**
|
|
116
|
+
* When true, suppress extension and skill discovery in the subagent session.
|
|
117
|
+
* Default false — subagents inherit the parent's extensions (lean-ctx,
|
|
118
|
+
* ollama-cloud, etc.) so they get the same tool surface.
|
|
119
|
+
*
|
|
120
|
+
* Test harnesses should set this to true to avoid loading globally-installed
|
|
121
|
+
* extensions (which adds latency and creates environment-dependent behavior).
|
|
122
|
+
*/
|
|
123
|
+
noExtensions?: boolean;
|
|
115
124
|
}
|
|
116
125
|
/**
|
|
117
126
|
* Load a Forge persona from `.forge/personas/<name>.md`.
|
|
@@ -88,13 +88,18 @@ export async function runForgeSubagent(opts) {
|
|
|
88
88
|
cwd: cwdAbs,
|
|
89
89
|
agentDir: getAgentDir(),
|
|
90
90
|
systemPromptOverride: () => {
|
|
91
|
-
|
|
92
|
-
return `${orientation}\n${persona.systemPrompt}${discipline}`;
|
|
91
|
+
return `${orientation}\n${persona.systemPrompt}${FORGE_TOOL_DISCIPLINE}`;
|
|
93
92
|
},
|
|
94
|
-
//
|
|
95
|
-
//
|
|
96
|
-
|
|
97
|
-
|
|
93
|
+
// By default, inherit the parent's extensions (lean-ctx, ollama-cloud,
|
|
94
|
+
// web-search, etc.) so subagents get the same tool surface. Extensions
|
|
95
|
+
// activate in-process — no heavy subprocess spawning. Context files and
|
|
96
|
+
// prompt templates are suppressed to avoid injecting CLAUDE.md /
|
|
97
|
+
// post-init tour bloat into phase prompts where persona + orientation
|
|
98
|
+
// suffice. When streamFn is set (test-only seam) or noExtensions is
|
|
99
|
+
// explicitly true, suppress discovery to avoid loading globally-installed
|
|
100
|
+
// extensions (latency + environment-dependence in test harnesses).
|
|
101
|
+
noExtensions: opts.noExtensions ?? !!opts.streamFn,
|
|
102
|
+
noSkills: opts.noExtensions ?? !!opts.streamFn,
|
|
98
103
|
noPromptTemplates: true,
|
|
99
104
|
noContextFiles: true,
|
|
100
105
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forge-subagent.js","sourceRoot":"","sources":["../../../src/extensions/forgecli/forge-subagent.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,EAAE;AACF,0CAA0C;AAC1C,4DAA4D;AAC5D,oFAAoF;AACpF,uDAAuD;AACvD,EAAE;AACF,8EAA8E;AAC9E,6EAA6E;AAC7E,oCAAoC;AACpC,EAAE;AACF,iFAAiF;AACjF,mFAAmF;AACnF,EAAE;AACF,aAAa;AACb,6DAA6D;AAC7D,4EAA4E;AAE5E,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAGlC,OAAO,EAEN,WAAW,EACX,kBAAkB,EAClB,qBAAqB,EACrB,WAAW,EACX,aAAa,EAEb,gBAAgB,EAChB,cAAc,GAEd,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"forge-subagent.js","sourceRoot":"","sources":["../../../src/extensions/forgecli/forge-subagent.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,23 @@
|
|
|
1
1
|
import type { ExtensionAPI, ToolDefinition } from "@earendil-works/pi-coding-agent";
|
|
2
|
+
/**
|
|
3
|
+
* runCjs — shared execFileAsync wrapper for all four .cjs tool invocations.
|
|
4
|
+
*
|
|
5
|
+
* Implements DRY: AbortSignal propagation, timeout, cwd binding, and
|
|
6
|
+
* stdout/stderr capture are applied consistently across all tools.
|
|
7
|
+
*
|
|
8
|
+
* Timeout guidance: collate 30s (large stores); store/validate 10s; config 5s.
|
|
9
|
+
*
|
|
10
|
+
* @param toolPath Absolute path to the .cjs tool.
|
|
11
|
+
* @param argv Arguments to pass after "node <toolPath>".
|
|
12
|
+
* @param signal AbortSignal from tool execute — propagated to subprocess.
|
|
13
|
+
* @param timeoutMs Subprocess timeout in milliseconds.
|
|
14
|
+
* @param projectRoot Directory containing .forge/ — cwd for the subprocess so
|
|
15
|
+
* findProjectRoot() in the .cjs tool resolves correctly.
|
|
16
|
+
*/
|
|
17
|
+
export declare function runCjs(toolPath: string, argv: string[], signal: AbortSignal | undefined, timeoutMs: number, projectRoot: string): Promise<{
|
|
18
|
+
stdout: string;
|
|
19
|
+
stderr: string;
|
|
20
|
+
}>;
|
|
2
21
|
export interface ForgeToolDefs {
|
|
3
22
|
store: ToolDefinition;
|
|
4
23
|
collate: ToolDefinition;
|
|
@@ -9,18 +28,23 @@ export interface ForgeToolDefs {
|
|
|
9
28
|
storeQuery: ToolDefinition;
|
|
10
29
|
verifyApply: ToolDefinition;
|
|
11
30
|
artifact: ToolDefinition;
|
|
31
|
+
preflight: ToolDefinition;
|
|
32
|
+
banner: ToolDefinition;
|
|
12
33
|
}
|
|
13
34
|
/**
|
|
14
|
-
* Return
|
|
15
|
-
*
|
|
35
|
+
* Return all forge tool definitions for subagent injection.
|
|
36
|
+
*
|
|
37
|
+
* Every subagent gets the full tool surface (~2K tokens, <4% of session cost).
|
|
38
|
+
* Transcript analysis showed per-persona filtering provided no benefit — models
|
|
39
|
+
* never picked the wrong tool, and withholding tools forced bash workarounds.
|
|
16
40
|
*/
|
|
17
|
-
export declare function getSubagentTools(defs: ForgeToolDefs,
|
|
41
|
+
export declare function getSubagentTools(defs: ForgeToolDefs, _personaName?: string): ToolDefinition[];
|
|
18
42
|
/**
|
|
19
43
|
* The tool-discipline system prompt block appended to subagent prompts when
|
|
20
44
|
* forge tools are injected. Exported so forge-subagent.ts can include it
|
|
21
45
|
* without duplicating the text.
|
|
22
46
|
*/
|
|
23
|
-
export declare const FORGE_TOOL_DISCIPLINE = "\n## Forge Tool Discipline\n\nAll forge_* tools wrap local .cjs scripts via direct exec \u2014 deterministic, no LLM,\nno agent loop. Prefer them over shelling out.\n\n- Store CRUD: call `forge_store` (named tool). Canonical write is 2-positional:\n `{command:\"write\", args:[\"<entity>\",\"<json>\"]}`. The id lives INSIDE the json\n (e.g. `{\"sprintId\":\"X-S01\",\"title\":\"...\",\"status\":\"planning\",\"taskIds\":[],\"createdAt\":\"...\"}`).\n DO NOT pass id as a separate arg \u2014 `[\"sprint\",\"X-S01\",\"<json>\"]` (3-arg) FAILS.\n- Before writing any record, call `forge_store_template` for the canonical shape and\n `forge_store_describe` for required fields, status enums, and FK constraints.\n- Use `forge_store_query` (nlp/query/schema) for lookups instead of grepping `.forge/store/`.\n- Use `forge_collate` to refresh the KB; `forge_validate_store` for integrity checks;\n `forge_config` for project config reads/writes.\n- Never `bash node \"$FORGE_ROOT/tools/store-cli.cjs\" ...` \u2014 use the named MCP tool instead.\n The tool is schema-validated and shorter.\n- Workflow text saying `forge_store write sprint '<json>'` means: call the MCP tool\n `forge_store` with that 2-positional shape. Not a shell command.\n";
|
|
47
|
+
export declare const FORGE_TOOL_DISCIPLINE = "\n## Forge Tool Discipline\n\nAll forge_* tools wrap local .cjs scripts via direct exec \u2014 deterministic, no LLM,\nno agent loop. Prefer them over shelling out.\n\n- Store CRUD: call `forge_store` (named tool). Canonical write is 2-positional:\n `{command:\"write\", args:[\"<entity>\",\"<json>\"]}`. The id lives INSIDE the json\n (e.g. `{\"sprintId\":\"X-S01\",\"title\":\"...\",\"status\":\"planning\",\"taskIds\":[],\"createdAt\":\"...\"}`).\n DO NOT pass id as a separate arg \u2014 `[\"sprint\",\"X-S01\",\"<json>\"]` (3-arg) FAILS.\n- Before writing any record, call `forge_store_template` for the canonical shape and\n `forge_store_describe` for required fields, status enums, and FK constraints.\n- Use `forge_store_query` (nlp/query/schema) for lookups instead of grepping `.forge/store/`.\n- Use `forge_collate` to refresh the KB; `forge_validate_store` for integrity checks;\n `forge_config` for project config reads/writes.\n- Use `forge_artifact` to read/write/list phase artifacts (PLAN.md, PROGRESS.md, *-SUMMARY.json).\n Never construct artifact paths manually \u2014 the tool resolves them from entity IDs.\n- Use `forge_verify_apply` after applying edits to confirm changes landed on disk.\n If `unchanged` is non-empty, re-apply those edits.\n- Use `forge_preflight` for pre-flight gate checks \u2014 do NOT shell out to preflight-gate.cjs.\n- Use `forge_banner` for phase banners \u2014 do NOT shell out to banners.cjs.\n- `$FORGE_ROOT` is already set in your environment. If you must use bash, reference\n `$FORGE_ROOT` directly \u2014 do NOT resolve it via `node -e \"console.log(require(...)...)\"`.\n- Never `bash node \"$FORGE_ROOT/tools/store-cli.cjs\" ...` \u2014 use the named MCP tool instead.\n The tool is schema-validated and shorter.\n- Workflow text saying `forge_store write sprint '<json>'` means: call the MCP tool\n `forge_store` with that 2-positional shape. Not a shell command.\n";
|
|
24
48
|
/**
|
|
25
49
|
* Build all Forge .cjs tool definitions, register them with pi, and return
|
|
26
50
|
* the definitions so callers can inject them into subagent sessions via
|