@entelligentsia/forgecli 0.11.3 → 0.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +380 -0
- package/README.md +2 -1
- package/dist/CHANGELOG-forge-plugin.md +183 -0
- package/dist/CHANGELOG-pi.md +55 -0
- package/dist/bin/argv.d.ts +2 -0
- package/dist/bin/argv.js +3 -1
- package/dist/bin/argv.js.map +1 -1
- package/dist/bin/config.d.ts +5 -0
- package/dist/bin/config.js +25 -4
- package/dist/bin/config.js.map +1 -1
- package/dist/bin/forge.js +12 -37
- package/dist/bin/forge.js.map +1 -1
- package/dist/bin/shared-parser.d.ts +23 -0
- package/dist/bin/shared-parser.js +12 -0
- package/dist/bin/shared-parser.js.map +1 -0
- package/dist/bin/update-cli.js +5 -0
- package/dist/bin/update-cli.js.map +1 -1
- package/dist/extensions/forgecli/approve.d.ts +4 -6
- package/dist/extensions/forgecli/approve.js +8 -73
- package/dist/extensions/forgecli/approve.js.map +1 -1
- package/dist/extensions/forgecli/audience-gate.d.ts +1 -1
- package/dist/extensions/forgecli/calibrate.d.ts +4 -1
- package/dist/extensions/forgecli/calibrate.js +4 -12
- package/dist/extensions/forgecli/calibrate.js.map +1 -1
- package/dist/extensions/forgecli/collate.d.ts +4 -6
- package/dist/extensions/forgecli/collate.js +8 -73
- package/dist/extensions/forgecli/collate.js.map +1 -1
- package/dist/extensions/forgecli/commit.d.ts +4 -6
- package/dist/extensions/forgecli/commit.js +8 -73
- package/dist/extensions/forgecli/commit.js.map +1 -1
- package/dist/extensions/forgecli/config-layer.d.ts +15 -0
- package/dist/extensions/forgecli/config-layer.js.map +1 -1
- package/dist/extensions/forgecli/config-tui/handler.js +1 -0
- package/dist/extensions/forgecli/config-tui/handler.js.map +1 -1
- package/dist/extensions/forgecli/config-tui/screens/tier-menu.js +8 -1
- package/dist/extensions/forgecli/config-tui/screens/tier-menu.js.map +1 -1
- package/dist/extensions/forgecli/config-tui/state/init.js +1 -0
- package/dist/extensions/forgecli/config-tui/state/init.js.map +1 -1
- package/dist/extensions/forgecli/config-tui/state/model.d.ts +4 -0
- package/dist/extensions/forgecli/enhance.d.ts +4 -6
- package/dist/extensions/forgecli/enhance.js +9 -74
- package/dist/extensions/forgecli/enhance.js.map +1 -1
- package/dist/extensions/forgecli/fix-bug.d.ts +3 -0
- package/dist/extensions/forgecli/fix-bug.js +58 -46
- package/dist/extensions/forgecli/fix-bug.js.map +1 -1
- package/dist/extensions/forgecli/forge-artifact-tool.d.ts +2 -0
- package/dist/extensions/forgecli/forge-artifact-tool.js +185 -0
- package/dist/extensions/forgecli/forge-artifact-tool.js.map +1 -0
- package/dist/extensions/forgecli/forge-cli-schema.json +19 -0
- package/dist/extensions/forgecli/forge-init/phase-descriptors.d.ts +72 -0
- package/dist/extensions/forgecli/forge-init/phase-descriptors.js +350 -0
- package/dist/extensions/forgecli/forge-init/phase-descriptors.js.map +1 -0
- package/dist/extensions/forgecli/forge-init/phase4-register.d.ts +20 -0
- package/dist/extensions/forgecli/forge-init/phase4-register.js +353 -0
- package/dist/extensions/forgecli/forge-init/phase4-register.js.map +1 -0
- package/dist/extensions/forgecli/forge-init/prompts.d.ts +10 -0
- package/dist/extensions/forgecli/forge-init/prompts.js +91 -0
- package/dist/extensions/forgecli/forge-init/prompts.js.map +1 -0
- package/dist/extensions/forgecli/forge-init/verifiers.d.ts +20 -0
- package/dist/extensions/forgecli/forge-init/verifiers.js +81 -0
- package/dist/extensions/forgecli/forge-init/verifiers.js.map +1 -0
- package/dist/extensions/forgecli/forge-init.js +106 -748
- package/dist/extensions/forgecli/forge-init.js.map +1 -1
- package/dist/extensions/forgecli/forge-root.d.ts +0 -1
- package/dist/extensions/forgecli/forge-root.js +1 -11
- package/dist/extensions/forgecli/forge-root.js.map +1 -1
- package/dist/extensions/forgecli/forge-subagent.d.ts +11 -1
- package/dist/extensions/forgecli/forge-subagent.js +6 -1
- package/dist/extensions/forgecli/forge-subagent.js.map +1 -1
- package/dist/extensions/forgecli/forge-tools.d.ts +27 -7
- package/dist/extensions/forgecli/forge-tools.js +183 -64
- package/dist/extensions/forgecli/forge-tools.js.map +1 -1
- package/dist/extensions/forgecli/forge-update-command.js +29 -18
- package/dist/extensions/forgecli/forge-update-command.js.map +1 -1
- package/dist/extensions/forgecli/friction-emit.d.ts +99 -0
- package/dist/extensions/forgecli/friction-emit.js +247 -0
- package/dist/extensions/forgecli/friction-emit.js.map +1 -0
- package/dist/extensions/forgecli/health-check.js +1 -1
- package/dist/extensions/forgecli/health-check.js.map +1 -1
- package/dist/extensions/forgecli/hook-dispatcher.d.ts +1 -0
- package/dist/extensions/forgecli/hook-dispatcher.js +25 -0
- package/dist/extensions/forgecli/hook-dispatcher.js.map +1 -1
- package/dist/extensions/forgecli/hooks/post-init-hook.js +1 -1
- package/dist/extensions/forgecli/hooks/post-sprint-hook.js +1 -1
- package/dist/extensions/forgecli/hooks/write-guard.js +1 -1
- package/dist/extensions/forgecli/hooks/write-guard.js.map +1 -1
- package/dist/extensions/forgecli/implement.d.ts +4 -6
- package/dist/extensions/forgecli/implement.js +8 -73
- package/dist/extensions/forgecli/implement.js.map +1 -1
- package/dist/extensions/forgecli/index.js +27 -26
- package/dist/extensions/forgecli/index.js.map +1 -1
- package/dist/extensions/forgecli/lib/catalog-helpers.d.ts +13 -0
- package/dist/extensions/forgecli/lib/catalog-helpers.js +51 -0
- package/dist/extensions/forgecli/lib/catalog-helpers.js.map +1 -0
- package/dist/extensions/forgecli/lib/catalog-loader.d.ts +46 -0
- package/dist/extensions/forgecli/lib/catalog-loader.js +176 -0
- package/dist/extensions/forgecli/lib/catalog-loader.js.map +1 -0
- package/dist/extensions/forgecli/lib/catalog-types.d.ts +16 -0
- package/dist/extensions/forgecli/lib/catalog-types.js +161 -0
- package/dist/extensions/forgecli/lib/catalog-types.js.map +1 -0
- package/dist/extensions/forgecli/lib/exec-helpers.d.ts +25 -0
- package/dist/extensions/forgecli/lib/exec-helpers.js +52 -0
- package/dist/extensions/forgecli/lib/exec-helpers.js.map +1 -0
- package/dist/extensions/forgecli/lib/forge-config.d.ts +20 -0
- package/dist/extensions/forgecli/lib/forge-config.js +43 -0
- package/dist/extensions/forgecli/lib/forge-config.js.map +1 -0
- package/dist/extensions/forgecli/lib/frontmatter-parser.d.ts +13 -0
- package/dist/extensions/forgecli/lib/frontmatter-parser.js +56 -0
- package/dist/extensions/forgecli/lib/frontmatter-parser.js.map +1 -0
- package/dist/extensions/forgecli/lib/manifest-checker.d.ts +22 -0
- package/dist/extensions/forgecli/lib/manifest-checker.js +64 -0
- package/dist/extensions/forgecli/lib/manifest-checker.js.map +1 -0
- package/dist/extensions/forgecli/lib/orchestrator-preflight.d.ts +46 -0
- package/dist/extensions/forgecli/lib/orchestrator-preflight.js +64 -0
- package/dist/extensions/forgecli/lib/orchestrator-preflight.js.map +1 -0
- package/dist/extensions/forgecli/lib/orchestrator-types.d.ts +20 -0
- package/dist/extensions/forgecli/lib/orchestrator-types.js +14 -0
- package/dist/extensions/forgecli/lib/orchestrator-types.js.map +1 -0
- package/dist/extensions/forgecli/lib/parsers.d.ts +25 -0
- package/dist/extensions/forgecli/lib/parsers.js +164 -0
- package/dist/extensions/forgecli/lib/parsers.js.map +1 -0
- package/dist/extensions/forgecli/lib/shared-fs-utils.d.ts +12 -0
- package/dist/extensions/forgecli/lib/shared-fs-utils.js +37 -0
- package/dist/extensions/forgecli/lib/shared-fs-utils.js.map +1 -0
- package/dist/extensions/forgecli/lib/spawn-store-cli.d.ts +44 -0
- package/dist/extensions/forgecli/lib/spawn-store-cli.js +93 -0
- package/dist/extensions/forgecli/lib/spawn-store-cli.js.map +1 -0
- package/dist/extensions/forgecli/lib/state-helpers.d.ts +33 -0
- package/dist/extensions/forgecli/lib/state-helpers.js +69 -0
- package/dist/extensions/forgecli/lib/state-helpers.js.map +1 -0
- package/dist/extensions/forgecli/lib/store-cli-timeouts.d.ts +4 -0
- package/dist/extensions/forgecli/lib/store-cli-timeouts.js +10 -0
- package/dist/extensions/forgecli/lib/store-cli-timeouts.js.map +1 -0
- package/dist/extensions/forgecli/lib/versions.d.ts +56 -0
- package/dist/extensions/forgecli/lib/versions.js +116 -0
- package/dist/extensions/forgecli/lib/versions.js.map +1 -0
- package/dist/extensions/forgecli/loaders/persona-skill-loader.js +2 -2
- package/dist/extensions/forgecli/loaders/persona-skill-loader.js.map +1 -1
- package/dist/extensions/forgecli/migration-engine.d.ts +6 -0
- package/dist/extensions/forgecli/migration-engine.js +59 -39
- package/dist/extensions/forgecli/migration-engine.js.map +1 -1
- package/dist/extensions/forgecli/parsers/persona-skill-loader.d.ts +45 -0
- package/dist/extensions/forgecli/parsers/persona-skill-loader.js +201 -0
- package/dist/extensions/forgecli/parsers/persona-skill-loader.js.map +1 -0
- package/dist/extensions/forgecli/parsers/workflow-loader.d.ts +41 -0
- package/dist/extensions/forgecli/parsers/workflow-loader.js +87 -0
- package/dist/extensions/forgecli/parsers/workflow-loader.js.map +1 -0
- package/dist/extensions/forgecli/plan.d.ts +4 -6
- package/dist/extensions/forgecli/plan.js +9 -73
- package/dist/extensions/forgecli/plan.js.map +1 -1
- package/dist/extensions/forgecli/regenerate.d.ts +22 -0
- package/dist/extensions/forgecli/regenerate.js +133 -3
- package/dist/extensions/forgecli/regenerate.js.map +1 -1
- package/dist/extensions/forgecli/retrospective.d.ts +2 -1
- package/dist/extensions/forgecli/retrospective.js +6 -36
- package/dist/extensions/forgecli/retrospective.js.map +1 -1
- package/dist/extensions/forgecli/review-code.d.ts +4 -6
- package/dist/extensions/forgecli/review-code.js +8 -73
- package/dist/extensions/forgecli/review-code.js.map +1 -1
- package/dist/extensions/forgecli/review-plan.d.ts +4 -6
- package/dist/extensions/forgecli/review-plan.js +8 -73
- package/dist/extensions/forgecli/review-plan.js.map +1 -1
- package/dist/extensions/forgecli/run-sprint.d.ts +2 -0
- package/dist/extensions/forgecli/run-sprint.js +53 -52
- package/dist/extensions/forgecli/run-sprint.js.map +1 -1
- package/dist/extensions/forgecli/run-task.d.ts +3 -0
- package/dist/extensions/forgecli/run-task.js +39 -68
- package/dist/extensions/forgecli/run-task.js.map +1 -1
- package/dist/extensions/forgecli/skill-curation-flag.d.ts +21 -0
- package/dist/extensions/forgecli/skill-curation-flag.js +71 -0
- package/dist/extensions/forgecli/skill-curation-flag.js.map +1 -0
- package/dist/extensions/forgecli/skill-curator-subagent.d.ts +101 -0
- package/dist/extensions/forgecli/skill-curator-subagent.js +342 -0
- package/dist/extensions/forgecli/skill-curator-subagent.js.map +1 -0
- package/dist/extensions/forgecli/skill-retriever.d.ts +84 -0
- package/dist/extensions/forgecli/skill-retriever.js +246 -0
- package/dist/extensions/forgecli/skill-retriever.js.map +1 -0
- package/dist/extensions/forgecli/skill-usage-tracker.d.ts +91 -0
- package/dist/extensions/forgecli/skill-usage-tracker.js +224 -0
- package/dist/extensions/forgecli/skill-usage-tracker.js.map +1 -0
- package/dist/extensions/forgecli/store-error-remediation.d.ts +65 -0
- package/dist/extensions/forgecli/store-error-remediation.js +299 -0
- package/dist/extensions/forgecli/store-error-remediation.js.map +1 -0
- package/dist/extensions/forgecli/store-resolver.js +3 -12
- package/dist/extensions/forgecli/store-resolver.js.map +1 -1
- package/dist/extensions/forgecli/store-validator.js +6 -11
- package/dist/extensions/forgecli/store-validator.js.map +1 -1
- package/dist/extensions/forgecli/subagent/agents.d.ts +4 -0
- package/dist/extensions/forgecli/subagent/agents.js +5 -8
- package/dist/extensions/forgecli/subagent/agents.js.map +1 -1
- package/dist/extensions/forgecli/transition-guard.js +20 -61
- package/dist/extensions/forgecli/transition-guard.js.map +1 -1
- package/dist/extensions/forgecli/validate.d.ts +4 -6
- package/dist/extensions/forgecli/validate.js +8 -73
- package/dist/extensions/forgecli/validate.js.map +1 -1
- package/dist/extensions/forgecli/wf-engine/engine.js +2 -2
- package/dist/extensions/forgecli/wf-engine/engine.js.map +1 -1
- package/dist/extensions/forgecli/wf-engine/loader.d.ts +1 -1
- package/dist/extensions/forgecli/wf-engine/loader.js +1 -1
- package/dist/extensions/forgecli/wf-engine/loader.js.map +1 -1
- package/dist/forge-payload/.base-pack/skills/architect-skills.md +1 -0
- package/dist/forge-payload/.base-pack/skills/bug-fixer-skills.md +1 -0
- package/dist/forge-payload/.base-pack/skills/collator-skills.md +1 -0
- package/dist/forge-payload/.base-pack/skills/engineer-skills.md +1 -0
- package/dist/forge-payload/.base-pack/skills/generic-skills.md +1 -0
- package/dist/forge-payload/.base-pack/skills/qa-engineer-skills.md +1 -0
- package/dist/forge-payload/.base-pack/skills/supervisor-skills.md +1 -0
- package/dist/forge-payload/.base-pack/workflows/_fragments/generation-instructions.md +81 -0
- package/dist/forge-payload/.base-pack/workflows/_fragments/iron-laws.md +72 -0
- package/dist/forge-payload/.base-pack/workflows/_fragments/store-cli-verbs.md +11 -1
- package/dist/forge-payload/.base-pack/workflows/_fragments/store-write-verification.md +11 -0
- package/dist/forge-payload/.base-pack/workflows/architect_approve.md +11 -12
- package/dist/forge-payload/.base-pack/workflows/architect_review_sprint_completion.md +4 -1
- package/dist/forge-payload/.base-pack/workflows/architect_sprint_intake.md +10 -1
- package/dist/forge-payload/.base-pack/workflows/architect_sprint_plan.md +8 -1
- package/dist/forge-payload/.base-pack/workflows/collator_agent.md +18 -1
- package/dist/forge-payload/.base-pack/workflows/commit_task.md +5 -10
- package/dist/forge-payload/.base-pack/workflows/enhance.md +338 -11
- package/dist/forge-payload/.base-pack/workflows/fix_bug.md +9 -2
- package/dist/forge-payload/.base-pack/workflows/implement_plan.md +22 -35
- package/dist/forge-payload/.base-pack/workflows/migrate_structural.md +9 -0
- package/dist/forge-payload/.base-pack/workflows/orchestrate_task.md +4 -0
- package/dist/forge-payload/.base-pack/workflows/plan_task.md +17 -21
- package/dist/forge-payload/.base-pack/workflows/review_code.md +13 -20
- package/dist/forge-payload/.base-pack/workflows/review_plan.md +10 -21
- package/dist/forge-payload/.base-pack/workflows/sprint_retrospective.md +10 -1
- package/dist/forge-payload/.base-pack/workflows/update_implementation.md +5 -10
- package/dist/forge-payload/.base-pack/workflows/update_plan.md +5 -10
- package/dist/forge-payload/.base-pack/workflows/validate_task.md +11 -12
- package/dist/forge-payload/.claude-plugin/plugin.json +5 -5
- package/dist/forge-payload/.schemas/_defs/phaseSummary.schema.json +18 -0
- package/dist/forge-payload/.schemas/bug.schema.json +8 -24
- package/dist/forge-payload/.schemas/config.schema.json +165 -33
- package/dist/forge-payload/.schemas/enum-catalog.json +71 -0
- package/dist/forge-payload/.schemas/event.schema.json +20 -2
- package/dist/forge-payload/.schemas/migrations.json +452 -134
- package/dist/forge-payload/.schemas/proposal.schema.json +40 -0
- package/dist/forge-payload/.schemas/task.schema.json +6 -21
- package/dist/forge-payload/.schemas/transitions/bug.json +31 -0
- package/dist/forge-payload/.schemas/transitions/sprint.json +46 -0
- package/dist/forge-payload/.schemas/transitions/task.json +109 -0
- package/dist/forge-payload/agents/store-query-validator.md +103 -0
- package/dist/forge-payload/agents/tomoshibi.md +185 -0
- package/dist/forge-payload/commands/health.md +3 -3
- package/dist/forge-payload/commands/regenerate.md +109 -20
- package/dist/forge-payload/hooks/check-update.cjs +255 -0
- package/dist/forge-payload/hooks/check-update.js +378 -0
- package/dist/forge-payload/hooks/forge-permissions.cjs +171 -0
- package/dist/forge-payload/hooks/forge-permissions.js +164 -0
- package/dist/forge-payload/hooks/post-init.cjs +120 -0
- package/dist/forge-payload/hooks/post-sprint.cjs +108 -0
- package/dist/forge-payload/hooks/triage-error.cjs +104 -0
- package/dist/forge-payload/hooks/triage-error.js +77 -0
- package/dist/forge-payload/hooks/validate-write.cjs +250 -0
- package/dist/forge-payload/hooks/validate-write.js +250 -0
- package/dist/forge-payload/integrity.json +38 -0
- package/dist/forge-payload/meta/workflows/_fragments/generation-instructions.md +81 -0
- package/dist/forge-payload/meta/workflows/_fragments/iron-laws.md +72 -0
- package/dist/forge-payload/meta/workflows/_fragments/store-cli-verbs.md +11 -1
- package/dist/forge-payload/meta/workflows/_fragments/store-write-verification.md +11 -0
- package/dist/forge-payload/meta/workflows/meta-approve.md +9 -11
- package/dist/forge-payload/meta/workflows/meta-collate.md +16 -0
- package/dist/forge-payload/meta/workflows/meta-commit.md +3 -9
- package/dist/forge-payload/meta/workflows/meta-enhance.md +347 -12
- package/dist/forge-payload/meta/workflows/meta-fix-bug.md +8 -2
- package/dist/forge-payload/meta/workflows/meta-implement.md +20 -35
- package/dist/forge-payload/meta/workflows/meta-migrate.md +18 -0
- package/dist/forge-payload/meta/workflows/meta-orchestrate.md +2 -0
- package/dist/forge-payload/meta/workflows/meta-plan-task.md +15 -21
- package/dist/forge-payload/meta/workflows/meta-quiz-agent.md +4 -1
- package/dist/forge-payload/meta/workflows/meta-retrospective.md +8 -0
- package/dist/forge-payload/meta/workflows/meta-review-implementation.md +11 -19
- package/dist/forge-payload/meta/workflows/meta-review-plan.md +10 -16
- package/dist/forge-payload/meta/workflows/meta-review-sprint-completion.md +3 -0
- package/dist/forge-payload/meta/workflows/meta-sprint-intake.md +8 -0
- package/dist/forge-payload/meta/workflows/meta-sprint-plan.md +5 -0
- package/dist/forge-payload/meta/workflows/meta-update-implementation.md +3 -9
- package/dist/forge-payload/meta/workflows/meta-update-plan.md +3 -9
- package/dist/forge-payload/meta/workflows/meta-validate.md +9 -11
- package/dist/forge-payload/schemas/structure-manifest.json +513 -0
- package/dist/forge-payload/tools/build-context-pack.cjs +3 -2
- package/dist/forge-payload/tools/compression-gate.cjs +192 -0
- package/dist/forge-payload/tools/delete-candidate-detector.cjs +114 -0
- package/dist/forge-payload/tools/friction-emit.cjs +2 -1
- package/dist/forge-payload/tools/judge-proposal.cjs +177 -0
- package/dist/forge-payload/tools/lib/frontmatter.cjs +62 -0
- package/dist/forge-payload/tools/lib/fsutil.cjs +61 -0
- package/dist/forge-payload/tools/lib/json-io.cjs +43 -0
- package/dist/forge-payload/tools/lib/schema-loader.cjs +139 -0
- package/dist/forge-payload/tools/lib/slug.cjs +39 -0
- package/dist/forge-payload/tools/lib/store-facade.cjs +6 -5
- package/dist/forge-payload/tools/manage-versions.cjs +132 -4
- package/dist/forge-payload/tools/preflight-gate.cjs +55 -7
- package/dist/forge-payload/tools/queue-drain.cjs +152 -0
- package/dist/forge-payload/tools/replay-scoring.cjs +117 -0
- package/dist/forge-payload/tools/seed-store.cjs +1 -13
- package/dist/forge-payload/tools/store-cli.cjs +55 -108
- package/dist/forge-payload/tools/store.cjs +26 -37
- package/dist/forge-payload/tools/substitute-placeholders.cjs +74 -35
- package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.d.ts +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.js +23 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/agent-loop.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/agent.d.ts +2 -2
- package/node_modules/@earendil-works/pi-agent-core/dist/agent.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/agent.js +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/agent.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/agent-harness.d.ts +2 -2
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/agent-harness.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/agent-harness.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/branch-summarization.d.ts +5 -5
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/branch-summarization.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/branch-summarization.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/compaction.d.ts +4 -4
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/compaction.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/compaction.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/utils.d.ts +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/utils.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/compaction/utils.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/env/nodejs.d.ts +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/env/nodejs.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/env/nodejs.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/execution-env.d.ts +4 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/execution-env.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/execution-env.js +3 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/execution-env.js.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/messages.d.ts +2 -2
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/messages.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/messages.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/prompt-templates.d.ts +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/prompt-templates.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/prompt-templates.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl-repo.d.ts +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl-repo.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl-repo.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl-storage.d.ts +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl-storage.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/jsonl-storage.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/memory-repo.d.ts +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/memory-repo.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/memory-repo.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/memory-storage.d.ts +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/memory-storage.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/memory-storage.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo/jsonl.d.ts +20 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo/jsonl.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo/jsonl.js +92 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo/jsonl.js.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo/memory.d.ts +18 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo/memory.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo/memory.js +42 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo/memory.js.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo/shared.d.ts +10 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo/shared.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo/shared.js +31 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo/shared.js.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo-utils.d.ts +2 -2
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo-utils.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/repo-utils.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/session.d.ts +2 -2
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/session.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/session.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/storage/jsonl.d.ts +30 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/storage/jsonl.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/storage/jsonl.js +170 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/storage/jsonl.js.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/storage/memory.d.ts +26 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/storage/memory.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/storage/memory.js +90 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/session/storage/memory.js.map +1 -0
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/skills.d.ts +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/skills.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/skills.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/system-prompt.d.ts +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/system-prompt.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/system-prompt.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/types.d.ts +10 -22
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/types.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/types.js +17 -23
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/types.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/utils/shell-output.d.ts +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/utils/shell-output.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/harness/utils/shell-output.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/index.d.ts +19 -19
- package/node_modules/@earendil-works/pi-agent-core/dist/index.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/index.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/node.d.ts +2 -2
- package/node_modules/@earendil-works/pi-agent-core/dist/node.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/dist/node.js.map +1 -1
- package/node_modules/@earendil-works/pi-agent-core/package.json +9 -10
- package/node_modules/@earendil-works/pi-ai/dist/api-registry.d.ts +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api-registry.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/api-registry.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/bedrock-provider.d.ts +2 -2
- package/node_modules/@earendil-works/pi-ai/dist/bedrock-provider.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/bedrock-provider.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/cli.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/cli.js +14 -0
- package/node_modules/@earendil-works/pi-ai/dist/cli.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/env-api-keys.d.ts +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/env-api-keys.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/env-api-keys.js +10 -2
- package/node_modules/@earendil-works/pi-ai/dist/env-api-keys.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/image-models.d.ts +2 -2
- package/node_modules/@earendil-works/pi-ai/dist/image-models.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/image-models.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/images-api-registry.d.ts +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/images-api-registry.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/images-api-registry.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/images.d.ts +2 -2
- package/node_modules/@earendil-works/pi-ai/dist/images.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/images.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/index.d.ts +29 -29
- package/node_modules/@earendil-works/pi-ai/dist/index.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/index.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/models.d.ts +2 -2
- package/node_modules/@earendil-works/pi-ai/dist/models.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/models.generated.d.ts +317 -509
- package/node_modules/@earendil-works/pi-ai/dist/models.generated.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/models.generated.js +400 -620
- package/node_modules/@earendil-works/pi-ai/dist/models.generated.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/models.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/oauth.d.ts +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/oauth.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/oauth.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.d.ts +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.js +5 -2
- package/node_modules/@earendil-works/pi-ai/dist/providers/amazon-bedrock.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/anthropic.d.ts +23 -6
- package/node_modules/@earendil-works/pi-ai/dist/providers/anthropic.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/anthropic.js +11 -23
- package/node_modules/@earendil-works/pi-ai/dist/providers/anthropic.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/azure-openai-responses.d.ts +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/azure-openai-responses.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/azure-openai-responses.js +2 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/azure-openai-responses.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare.d.ts +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/cloudflare.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/faux.d.ts +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/faux.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/faux.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/github-copilot-headers.d.ts +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/github-copilot-headers.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/github-copilot-headers.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/google-shared.d.ts +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/google-shared.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/google-shared.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/google-vertex.d.ts +2 -2
- package/node_modules/@earendil-works/pi-ai/dist/providers/google-vertex.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/google-vertex.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/google.d.ts +2 -2
- package/node_modules/@earendil-works/pi-ai/dist/providers/google.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/google.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/images/openrouter.d.ts +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/images/openrouter.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/images/openrouter.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/images/register-builtins.d.ts +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/images/register-builtins.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/images/register-builtins.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/mistral.d.ts +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/mistral.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/mistral.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex-responses.d.ts +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex-responses.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex-responses.js +12 -3
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-codex-responses.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-completions.d.ts +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-completions.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-completions.js +2 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-completions.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-prompt-cache.d.ts +3 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-prompt-cache.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-prompt-cache.js +10 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-prompt-cache.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-responses-shared.d.ts +2 -2
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-responses-shared.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-responses-shared.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-responses.d.ts +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-responses.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-responses.js +2 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/openai-responses.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/register-builtins.d.ts +10 -10
- package/node_modules/@earendil-works/pi-ai/dist/providers/register-builtins.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/register-builtins.js +13 -2
- package/node_modules/@earendil-works/pi-ai/dist/providers/register-builtins.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/simple-options.d.ts +3 -3
- package/node_modules/@earendil-works/pi-ai/dist/providers/simple-options.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/simple-options.js +6 -11
- package/node_modules/@earendil-works/pi-ai/dist/providers/simple-options.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/transform-messages.d.ts +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/transform-messages.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/providers/transform-messages.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/stream.d.ts +3 -3
- package/node_modules/@earendil-works/pi-ai/dist/stream.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/stream.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/types.d.ts +13 -3
- package/node_modules/@earendil-works/pi-ai/dist/types.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/types.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/event-stream.d.ts +3 -3
- package/node_modules/@earendil-works/pi-ai/dist/utils/event-stream.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/event-stream.js +2 -2
- package/node_modules/@earendil-works/pi-ai/dist/utils/event-stream.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/anthropic.d.ts +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/anthropic.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/anthropic.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/device-code.d.ts +19 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/device-code.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/device-code.js +55 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/device-code.js.map +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/github-copilot.d.ts +3 -3
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/github-copilot.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/github-copilot.js +45 -69
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/github-copilot.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/index.d.ts +6 -5
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/index.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/index.js +1 -0
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/index.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/openai-codex.d.ts +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/openai-codex.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/openai-codex.js +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/openai-codex.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/types.d.ts +9 -2
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/types.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/oauth/types.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/overflow.d.ts +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/overflow.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/overflow.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/validation.d.ts +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/validation.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-ai/dist/utils/validation.js.map +1 -1
- package/node_modules/@earendil-works/pi-ai/package.json +15 -16
- package/node_modules/@earendil-works/pi-coding-agent/CHANGELOG.md +55 -0
- package/node_modules/@earendil-works/pi-coding-agent/README.md +6 -4
- package/node_modules/@earendil-works/pi-coding-agent/dist/bun/cli.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/bun/cli.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/args.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/args.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/args.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/config-selector.d.ts +2 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/config-selector.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/config-selector.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/file-processor.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/file-processor.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/initial-message.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/initial-message.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/initial-message.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/list-models.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/list-models.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/list-models.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/session-picker.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/session-picker.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli/session-picker.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli.js +4 -10
- package/node_modules/@earendil-works/pi-coding-agent/dist/cli.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/config.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/config.js +13 -14
- package/node_modules/@earendil-works/pi-coding-agent/dist/config.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session-runtime.d.ts +9 -9
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session-runtime.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session-runtime.js +6 -6
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session-runtime.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session-services.d.ts +7 -7
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session-services.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session-services.js +3 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session-services.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session.d.ts +23 -21
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session.js +99 -137
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/auth-guidance.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/auth-guidance.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/auth-storage.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/auth-storage.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/auth-storage.js +3 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/auth-storage.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/bash-executor.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/bash-executor.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/bash-executor.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/compaction/branch-summarization.d.ts +3 -3
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/compaction/branch-summarization.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/compaction/branch-summarization.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/compaction/compaction.d.ts +2 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/compaction/compaction.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/compaction/compaction.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/compaction/index.d.ts +3 -3
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/compaction/index.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/compaction/index.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/exec.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/exec.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/index.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/index.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/index.js +8 -6
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/index.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/template.js +6 -3
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/tool-renderer.d.ts +2 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/tool-renderer.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/export-html/tool-renderer.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/index.d.ts +8 -8
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/index.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/index.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/loader.d.ts +2 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/loader.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/loader.js +12 -29
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/loader.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/runner.d.ts +6 -6
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/runner.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/runner.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/types.d.ts +19 -19
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/types.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/types.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/wrapper.d.ts +2 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/wrapper.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/extensions/wrapper.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/footer-data-provider.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/footer-data-provider.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/http-dispatcher.d.ts +21 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/http-dispatcher.d.ts.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/http-dispatcher.js +48 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/http-dispatcher.js.map +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/index.d.ts +8 -8
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/index.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/index.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/keybindings.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/keybindings.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-registry.d.ts +4 -4
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-registry.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-registry.js +7 -3
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-registry.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-resolver.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-resolver.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/model-resolver.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/package-manager.d.ts +2 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/package-manager.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/package-manager.js +48 -32
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/package-manager.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/prompt-templates.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/prompt-templates.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/prompt-templates.js +6 -20
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/prompt-templates.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/resolve-config-value.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/resolve-config-value.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/resource-loader.d.ts +9 -9
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/resource-loader.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/resource-loader.js +38 -31
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/resource-loader.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/sdk.d.ts +13 -13
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/sdk.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/sdk.js +9 -4
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/sdk.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/session-manager.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/session-manager.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/session-manager.js +32 -24
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/session-manager.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/settings-manager.d.ts +3 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/settings-manager.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/settings-manager.js +26 -13
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/settings-manager.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/skills.d.ts +2 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/skills.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/skills.js +8 -22
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/skills.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/slash-commands.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/slash-commands.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/slash-commands.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/source-info.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/source-info.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/source-info.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/system-prompt.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/system-prompt.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/system-prompt.js +1 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/system-prompt.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/telemetry.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/telemetry.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/telemetry.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/bash.d.ts +2 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/bash.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/bash.js +9 -3
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/bash.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/edit-diff.d.ts +3 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/edit-diff.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/edit-diff.js +8 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/edit-diff.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/edit.d.ts +5 -3
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/edit.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/edit.js +3 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/edit.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/find.d.ts +2 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/find.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/find.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/grep.d.ts +2 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/grep.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/grep.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/index.d.ts +17 -17
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/index.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/index.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/ls.d.ts +2 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/ls.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/ls.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/output-accumulator.d.ts +3 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/output-accumulator.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/output-accumulator.js +9 -3
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/output-accumulator.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/path-utils.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/path-utils.js +3 -22
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/path-utils.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/read.d.ts +2 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/read.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/read.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/render-utils.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/render-utils.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/tool-definition-wrapper.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/tool-definition-wrapper.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/truncate.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/truncate.js +12 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/truncate.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/write.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/write.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/core/tools/write.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/index.d.ts +30 -29
- package/node_modules/@earendil-works/pi-coding-agent/dist/index.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/index.js +2 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/index.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/main.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/main.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/main.js +7 -6
- package/node_modules/@earendil-works/pi-coding-agent/dist/main.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/migrations.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/migrations.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/index.d.ts +5 -5
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/index.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/index.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/armin.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/armin.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/assistant-message.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/bash-execution.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/bash-execution.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/bash-execution.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/bordered-loader.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/bordered-loader.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/branch-summary-message.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/branch-summary-message.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/compaction-summary-message.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/compaction-summary-message.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/config-selector.d.ts +2 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/config-selector.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/config-selector.js +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/config-selector.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/countdown-timer.d.ts +2 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/countdown-timer.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/countdown-timer.js +2 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/countdown-timer.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/custom-editor.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/custom-editor.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/custom-editor.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/custom-message.d.ts +2 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/custom-message.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/daxnuts.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/daxnuts.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/diff.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/diff.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/dynamic-border.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/dynamic-border.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/earendil-announcement.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/earendil-announcement.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/extension-editor.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/extension-editor.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/extension-editor.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/extension-input.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/extension-input.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/extension-selector.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/extension-selector.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/footer.d.ts +4 -3
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/footer.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/footer.js +16 -7
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/footer.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/index.d.ts +31 -31
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/index.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/index.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/keybinding-hints.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/login-dialog.d.ts +10 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/login-dialog.js +31 -6
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/login-dialog.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/model-selector.d.ts +2 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/model-selector.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/oauth-selector.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/oauth-selector.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/session-selector-search.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/session-selector-search.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/session-selector-search.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/session-selector.d.ts +3 -3
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/session-selector.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/settings-selector.d.ts +3 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/settings-selector.js +15 -0
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/settings-selector.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/show-images-selector.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/show-images-selector.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/skill-invocation-message.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/skill-invocation-message.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/theme-selector.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/theme-selector.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/thinking-selector.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/tool-execution.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/tool-execution.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/tree-selector.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/tree-selector.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/tree-selector.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/user-message-selector.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/user-message.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/user-message.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts +4 -3
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/interactive-mode.js +37 -14
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/theme/theme.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/theme/theme.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/theme/theme.js +37 -28
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/theme/theme.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/print-mode.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/print-mode.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/print-mode.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-client.d.ts +5 -5
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-client.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-client.js +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-client.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-mode.d.ts +2 -2
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-mode.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-types.d.ts +4 -4
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-types.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-types.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/package-manager-cli.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/package-manager-cli.js +40 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/package-manager-cli.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/changelog.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/changelog.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/changelog.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/clipboard-image.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/clipboard-image.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/clipboard.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/clipboard.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/exif-orientation.d.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/exif-orientation.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/exif-orientation.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/image-convert.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/image-convert.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/image-resize.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/image-resize.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/paths.d.ts +16 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/paths.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/paths.js +49 -7
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/paths.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/shell.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/shell.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/syntax-highlight.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/syntax-highlight.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/tools-manager.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/tools-manager.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/version-check.d.ts +2 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/version-check.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/version-check.js +9 -4
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/version-check.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/windows-self-update.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/dist/utils/windows-self-update.js.map +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/docs/custom-provider.md +44 -12
- package/node_modules/@earendil-works/pi-coding-agent/docs/index.md +6 -4
- package/node_modules/@earendil-works/pi-coding-agent/docs/models.md +8 -2
- package/node_modules/@earendil-works/pi-coding-agent/docs/packages.md +5 -4
- package/node_modules/@earendil-works/pi-coding-agent/docs/quickstart.md +3 -1
- package/node_modules/@earendil-works/pi-coding-agent/docs/sdk.md +2 -0
- package/node_modules/@earendil-works/pi-coding-agent/docs/termux.md +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/docs/usage.md +2 -2
- package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/custom-provider-anthropic/package.json +2 -2
- package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/custom-provider-gitlab-duo/test.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/doom-overlay/doom-component.ts +2 -2
- package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/doom-overlay/index.ts +3 -3
- package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/overlay-qa-tests.ts +97 -66
- package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/overlay-test.ts +7 -4
- package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/plan-mode/index.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/sandbox/package.json +2 -2
- package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/subagent/index.ts +1 -1
- package/node_modules/@earendil-works/pi-coding-agent/examples/extensions/with-deps/package.json +3 -3
- package/node_modules/@earendil-works/pi-coding-agent/npm-shrinkwrap.json +1425 -0
- package/node_modules/@earendil-works/pi-coding-agent/package.json +32 -31
- package/node_modules/@earendil-works/pi-tui/dist/autocomplete.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/autocomplete.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/box.d.ts +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/box.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/box.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/cancellable-loader.d.ts +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/cancellable-loader.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/cancellable-loader.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/editor.d.ts +3 -3
- package/node_modules/@earendil-works/pi-tui/dist/components/editor.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/editor.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/image.d.ts +2 -2
- package/node_modules/@earendil-works/pi-tui/dist/components/image.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/image.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/input.d.ts +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/input.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/input.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/loader.d.ts +5 -5
- package/node_modules/@earendil-works/pi-tui/dist/components/loader.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/loader.js +4 -4
- package/node_modules/@earendil-works/pi-tui/dist/components/loader.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/markdown.d.ts +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/markdown.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/markdown.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/select-list.d.ts +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/select-list.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/select-list.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/settings-list.d.ts +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/settings-list.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/settings-list.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/spacer.d.ts +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/spacer.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/spacer.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/text.d.ts +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/text.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/text.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/truncated-text.d.ts +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/truncated-text.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/components/truncated-text.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/editor-component.d.ts +2 -2
- package/node_modules/@earendil-works/pi-tui/dist/editor-component.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/editor-component.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/index.d.ts +22 -22
- package/node_modules/@earendil-works/pi-tui/dist/index.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/index.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/keybindings.d.ts +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/keybindings.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/keybindings.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/terminal.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/terminal.js +25 -15
- package/node_modules/@earendil-works/pi-tui/dist/terminal.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/tui.d.ts +2 -2
- package/node_modules/@earendil-works/pi-tui/dist/tui.d.ts.map +1 -1
- package/node_modules/@earendil-works/pi-tui/dist/tui.js.map +1 -1
- package/node_modules/@earendil-works/pi-tui/native/win32/prebuilds/win32-arm64/win32-console-mode.node +0 -0
- package/node_modules/@earendil-works/pi-tui/native/win32/prebuilds/win32-x64/win32-console-mode.node +0 -0
- package/node_modules/@earendil-works/pi-tui/package.json +8 -11
- package/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/clipboard.linux-x64-musl.node +0 -0
- package/node_modules/@mariozechner/clipboard-linux-x64-musl/package.json +25 -0
- package/package.json +15 -8
- package/dist/bin/forgecli.d.ts +0 -2
- package/dist/bin/forgecli.js +0 -6
- package/dist/bin/forgecli.js.map +0 -1
- package/node_modules/koffi/CHANGELOG.md +0 -1093
- package/node_modules/koffi/LICENSE.txt +0 -22
- package/node_modules/koffi/README.md +0 -43
- package/node_modules/koffi/build/koffi/darwin_arm64/koffi.node +0 -0
- package/node_modules/koffi/build/koffi/darwin_x64/koffi.node +0 -0
- package/node_modules/koffi/build/koffi/freebsd_arm64/koffi.node +0 -0
- package/node_modules/koffi/build/koffi/freebsd_ia32/koffi.node +0 -0
- package/node_modules/koffi/build/koffi/freebsd_x64/koffi.node +0 -0
- package/node_modules/koffi/build/koffi/linux_arm64/koffi.node +0 -0
- package/node_modules/koffi/build/koffi/linux_armhf/koffi.node +0 -0
- package/node_modules/koffi/build/koffi/linux_ia32/koffi.node +0 -0
- package/node_modules/koffi/build/koffi/linux_loong64/koffi.node +0 -0
- package/node_modules/koffi/build/koffi/linux_riscv64d/koffi.node +0 -0
- package/node_modules/koffi/build/koffi/linux_x64/koffi.node +0 -0
- package/node_modules/koffi/build/koffi/musl_arm64/koffi.node +0 -0
- package/node_modules/koffi/build/koffi/musl_x64/koffi.node +0 -0
- package/node_modules/koffi/build/koffi/openbsd_ia32/koffi.node +0 -0
- package/node_modules/koffi/build/koffi/openbsd_x64/koffi.node +0 -0
- package/node_modules/koffi/build/koffi/win32_arm64/koffi.exp +0 -0
- package/node_modules/koffi/build/koffi/win32_arm64/koffi.lib +0 -0
- package/node_modules/koffi/build/koffi/win32_arm64/koffi.node +0 -0
- package/node_modules/koffi/build/koffi/win32_ia32/koffi.exp +0 -0
- package/node_modules/koffi/build/koffi/win32_ia32/koffi.lib +0 -0
- package/node_modules/koffi/build/koffi/win32_ia32/koffi.node +0 -0
- package/node_modules/koffi/build/koffi/win32_x64/koffi.exp +0 -0
- package/node_modules/koffi/build/koffi/win32_x64/koffi.lib +0 -0
- package/node_modules/koffi/build/koffi/win32_x64/koffi.node +0 -0
- package/node_modules/koffi/doc/benchmarks.md +0 -126
- package/node_modules/koffi/doc/callbacks.md +0 -210
- package/node_modules/koffi/doc/contribute.md +0 -148
- package/node_modules/koffi/doc/functions.md +0 -250
- package/node_modules/koffi/doc/index.md +0 -61
- package/node_modules/koffi/doc/input.md +0 -471
- package/node_modules/koffi/doc/migration.md +0 -159
- package/node_modules/koffi/doc/misc.md +0 -180
- package/node_modules/koffi/doc/output.md +0 -305
- package/node_modules/koffi/doc/packaging.md +0 -88
- package/node_modules/koffi/doc/platforms.md +0 -36
- package/node_modules/koffi/doc/pointers.md +0 -328
- package/node_modules/koffi/doc/start.md +0 -118
- package/node_modules/koffi/doc/unions.md +0 -186
- package/node_modules/koffi/doc/variables.md +0 -102
- package/node_modules/koffi/index.d.ts +0 -288
- package/node_modules/koffi/index.js +0 -634
- package/node_modules/koffi/indirect.js +0 -533
- package/node_modules/koffi/lib/native/base/base.cc +0 -11015
- package/node_modules/koffi/lib/native/base/base.hh +0 -6003
- package/node_modules/koffi/lib/native/base/crc.inc +0 -2214
- package/node_modules/koffi/lib/native/base/crc_gen.py +0 -72
- package/node_modules/koffi/lib/native/base/mimetypes.inc +0 -1248
- package/node_modules/koffi/lib/native/base/mimetypes_gen.py +0 -58
- package/node_modules/koffi/lib/native/base/tower.cc +0 -821
- package/node_modules/koffi/lib/native/base/tower.hh +0 -81
- package/node_modules/koffi/lib/native/base/unicode.inc +0 -408
- package/node_modules/koffi/lib/native/base/unicode_gen.py +0 -152
- package/node_modules/koffi/package.json +0 -38
- package/node_modules/koffi/src/cnoke/LICENSE.txt +0 -22
- package/node_modules/koffi/src/cnoke/README.md +0 -99
- package/node_modules/koffi/src/cnoke/assets/FindCNoke.cmake +0 -127
- package/node_modules/koffi/src/cnoke/assets/toolchains.json +0 -126
- package/node_modules/koffi/src/cnoke/assets/win_delay_hook.c +0 -36
- package/node_modules/koffi/src/cnoke/cnoke.js +0 -170
- package/node_modules/koffi/src/cnoke/package.json +0 -24
- package/node_modules/koffi/src/cnoke/src/builder.js +0 -511
- package/node_modules/koffi/src/cnoke/src/index.js +0 -10
- package/node_modules/koffi/src/cnoke/src/tools.js +0 -407
- package/node_modules/koffi/src/koffi/CMakeLists.txt +0 -182
- package/node_modules/koffi/src/koffi/src/abi_arm32.cc +0 -1018
- package/node_modules/koffi/src/koffi/src/abi_arm32_asm.S +0 -169
- package/node_modules/koffi/src/koffi/src/abi_arm64.cc +0 -1295
- package/node_modules/koffi/src/koffi/src/abi_arm64_asm.S +0 -195
- package/node_modules/koffi/src/koffi/src/abi_arm64_asm.asm +0 -174
- package/node_modules/koffi/src/koffi/src/abi_loong64.cc +0 -5
- package/node_modules/koffi/src/koffi/src/abi_loong64_asm.S +0 -204
- package/node_modules/koffi/src/koffi/src/abi_riscv64.cc +0 -915
- package/node_modules/koffi/src/koffi/src/abi_riscv64_asm.S +0 -203
- package/node_modules/koffi/src/koffi/src/abi_x64_sysv.cc +0 -939
- package/node_modules/koffi/src/koffi/src/abi_x64_sysv_asm.S +0 -231
- package/node_modules/koffi/src/koffi/src/abi_x64_win.cc +0 -715
- package/node_modules/koffi/src/koffi/src/abi_x64_win_asm.S +0 -166
- package/node_modules/koffi/src/koffi/src/abi_x64_win_asm.asm +0 -192
- package/node_modules/koffi/src/koffi/src/abi_x86.cc +0 -860
- package/node_modules/koffi/src/koffi/src/abi_x86_asm.S +0 -193
- package/node_modules/koffi/src/koffi/src/abi_x86_asm.asm +0 -177
- package/node_modules/koffi/src/koffi/src/call.cc +0 -1326
- package/node_modules/koffi/src/koffi/src/call.hh +0 -179
- package/node_modules/koffi/src/koffi/src/errno.inc +0 -462
- package/node_modules/koffi/src/koffi/src/ffi.cc +0 -2702
- package/node_modules/koffi/src/koffi/src/ffi.hh +0 -354
- package/node_modules/koffi/src/koffi/src/init.js +0 -105
- package/node_modules/koffi/src/koffi/src/parser.cc +0 -220
- package/node_modules/koffi/src/koffi/src/parser.hh +0 -54
- package/node_modules/koffi/src/koffi/src/util.cc +0 -1807
- package/node_modules/koffi/src/koffi/src/util.hh +0 -221
- package/node_modules/koffi/src/koffi/src/uv.cc +0 -193
- package/node_modules/koffi/src/koffi/src/uv.def +0 -10
- package/node_modules/koffi/src/koffi/src/uv.hh +0 -40
- package/node_modules/koffi/src/koffi/src/win32.cc +0 -198
- package/node_modules/koffi/src/koffi/src/win32.hh +0 -119
- package/node_modules/koffi/src/koffi/tools/write_trampolines.js +0 -77
- package/node_modules/koffi/vendor/node-addon-api/LICENSE.md +0 -9
- package/node_modules/koffi/vendor/node-addon-api/README.md +0 -95
- package/node_modules/koffi/vendor/node-addon-api/napi-inl.deprecated.h +0 -186
- package/node_modules/koffi/vendor/node-addon-api/napi-inl.h +0 -7033
- package/node_modules/koffi/vendor/node-addon-api/napi.h +0 -3309
- package/node_modules/koffi/vendor/node-api-headers/LICENSE +0 -21
- package/node_modules/koffi/vendor/node-api-headers/README.md +0 -95
- package/node_modules/koffi/vendor/node-api-headers/def/js_native_api.def +0 -125
- package/node_modules/koffi/vendor/node-api-headers/def/node_api.def +0 -157
- package/node_modules/koffi/vendor/node-api-headers/include/js_native_api.h +0 -591
- package/node_modules/koffi/vendor/node-api-headers/include/js_native_api_types.h +0 -210
- package/node_modules/koffi/vendor/node-api-headers/include/node_api.h +0 -265
- package/node_modules/koffi/vendor/node-api-headers/include/node_api_types.h +0 -58
- package/node_modules/koffi/vendor/node-api-headers/include/uv/aix.h +0 -32
- package/node_modules/koffi/vendor/node-api-headers/include/uv/bsd.h +0 -34
- package/node_modules/koffi/vendor/node-api-headers/include/uv/darwin.h +0 -61
- package/node_modules/koffi/vendor/node-api-headers/include/uv/errno.h +0 -483
- package/node_modules/koffi/vendor/node-api-headers/include/uv/linux.h +0 -34
- package/node_modules/koffi/vendor/node-api-headers/include/uv/os390.h +0 -33
- package/node_modules/koffi/vendor/node-api-headers/include/uv/posix.h +0 -31
- package/node_modules/koffi/vendor/node-api-headers/include/uv/sunos.h +0 -44
- package/node_modules/koffi/vendor/node-api-headers/include/uv/threadpool.h +0 -37
- package/node_modules/koffi/vendor/node-api-headers/include/uv/tree.h +0 -521
- package/node_modules/koffi/vendor/node-api-headers/include/uv/unix.h +0 -512
- package/node_modules/koffi/vendor/node-api-headers/include/uv/version.h +0 -43
- package/node_modules/koffi/vendor/node-api-headers/include/uv/win.h +0 -698
- package/node_modules/koffi/vendor/node-api-headers/include/uv.h +0 -1990
|
@@ -12,7 +12,14 @@ deps:
|
|
|
12
12
|
config_fields: [project.prefix, paths.engineering]
|
|
13
13
|
---
|
|
14
14
|
|
|
15
|
+
|
|
15
16
|
# Sprint Intake
|
|
17
|
+
## Iron Laws
|
|
18
|
+
|
|
19
|
+
- Capture requirements accurately; do not editorialize or pre-select options on the user's behalf. The product manager documents what the user says, not what the agent thinks is best.
|
|
20
|
+
- Read `.forge/personas/product-manager.md` first; print the persona identity line (emoji, name, tagline) to stdout before any other tool use.
|
|
21
|
+
- All store I/O via `forge_store` (or `node "$FORGE_ROOT/tools/store-cli.cjs"`). Never edit `.forge/store/*.json` directly.
|
|
22
|
+
|
|
16
23
|
## Algorithm
|
|
17
24
|
|
|
18
25
|
```
|
|
@@ -46,4 +53,6 @@ deps:
|
|
|
46
53
|
5. Finalize:
|
|
47
54
|
- Update sprint status via `node "$FORGE_ROOT/tools/store-cli.cjs" update-status sprint {sprintId} status planning`
|
|
48
55
|
- **Do NOT emit a phase event yourself.** The orchestrator (or kickoff handler) owns event emission — it composes the canonical event from runtime telemetry (model, provider, tokens, wall times) plus the SUMMARY you write in the next step. Subagents that call `store-cli emit` for phase events hallucinate runtime facts (see Plan 11 / Slice 2). Write the SUMMARY and return.
|
|
49
|
-
```
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
<!-- See _fragments/generation-instructions.md for Generation Instructions template -->
|
|
@@ -12,6 +12,7 @@ deps:
|
|
|
12
12
|
config_fields: [project.prefix, paths.engineering]
|
|
13
13
|
---
|
|
14
14
|
|
|
15
|
+
|
|
15
16
|
# Sprint Plan
|
|
16
17
|
## Algorithm
|
|
17
18
|
|
|
@@ -67,6 +68,7 @@ deps:
|
|
|
67
68
|
- **Do NOT emit a phase event yourself.** The orchestrator (or kickoff handler) owns event emission — it composes the canonical event from runtime telemetry (model, provider, tokens, wall times) plus the SUMMARY you write in the next step. Subagents that call `store-cli emit` for phase events hallucinate runtime facts (see Plan 11 / Slice 2). Write the SUMMARY and return.
|
|
68
69
|
```
|
|
69
70
|
|
|
71
|
+
<!-- See _fragments/iron-laws.md for Iron Laws section structure guidance (sprint-plan uses verbatim Anti-Pattern Guard pattern — orchestrator-special case) -->
|
|
70
72
|
## Anti-Pattern Guard
|
|
71
73
|
|
|
72
74
|
The generated workflow MUST include the following section verbatim, placed immediately
|
|
@@ -82,6 +84,9 @@ after the Purpose heading and before the Algorithm block:
|
|
|
82
84
|
stop. Return to step 1 of the Algorithm and proceed from there.
|
|
83
85
|
```
|
|
84
86
|
|
|
87
|
+
<!-- See _fragments/store-write-verification.md — NOTE: this file uses an intentionally expanded
|
|
88
|
+
Store-Write Verification variant that explains what counts as a store write in the sprint-plan
|
|
89
|
+
context (includes direct Write/Edit tool calls). Canonical fragment is reference only. -->
|
|
85
90
|
## Store-Write Verification
|
|
86
91
|
|
|
87
92
|
Every write to the Forge store MUST succeed before the agent proceeds to the next
|
|
@@ -110,4 +115,6 @@ halt and escalate to the human. Include the original payload, the corrected
|
|
|
110
115
|
payload, and all error messages in the escalation.
|
|
111
116
|
|
|
112
117
|
**Do NOT** set `FORGE_SKIP_WRITE_VALIDATION=1` to bypass a schema error. That
|
|
113
|
-
environment variable is reserved for emergency operator repair only.
|
|
118
|
+
environment variable is reserved for emergency operator repair only.
|
|
119
|
+
|
|
120
|
+
<!-- See _fragments/generation-instructions.md for Generation Instructions template -->
|
|
@@ -12,13 +12,18 @@ deps:
|
|
|
12
12
|
config_fields: [paths.engineering]
|
|
13
13
|
---
|
|
14
14
|
|
|
15
|
+
|
|
15
16
|
# Collate
|
|
16
17
|
## Iron Laws
|
|
17
18
|
|
|
18
19
|
- Collation is a read-and-rewrite of generated markdown. Do not mutate any JSON record under `.forge/store/`; the store is the source of truth and collation flows downstream from it.
|
|
19
20
|
- Read `.forge/personas/collator.md` first; print the persona identity line (emoji, name, tagline) to stdout before any other tool use.
|
|
20
21
|
- All store reads via `forge_store` (or `node "$FORGE_ROOT/tools/store-cli.cjs"`). Never edit `.forge/store/*.json` directly.
|
|
22
|
+
- Do NOT call `set-summary` or `set-bug-summary` from within collation. The collator writes markdown views and a `WRITEBACK-SUMMARY.json` disk file only. Calling `set-summary` mutates the JSON store and violates Iron Law 1 (the store is the source of truth; collation flows downstream from it, not into it). The orchestrator reads `WRITEBACK-SUMMARY.json` directly — no store write is needed.
|
|
21
23
|
|
|
24
|
+
<!-- See _fragments/store-write-verification.md — NOTE: this file uses an intentionally modified
|
|
25
|
+
Store-Write Verification variant: collation typically writes markdown views (not JSON records),
|
|
26
|
+
so the preamble explains when `forge_store` calls apply. Canonical fragment is reference only. -->
|
|
22
27
|
## Store-Write Verification
|
|
23
28
|
|
|
24
29
|
Collation typically writes markdown views, not JSON records. If a remediation
|
|
@@ -62,10 +67,22 @@ Never set `FORGE_SKIP_WRITE_VALIDATION=1` — operator-only emergency switch.
|
|
|
62
67
|
|
|
63
68
|
4. Finalize:
|
|
64
69
|
- **Do NOT emit a phase event yourself.** The orchestrator (or kickoff handler) owns event emission — it composes the canonical event from runtime telemetry (model, provider, tokens, wall times) plus the SUMMARY you write in the next step. Subagents that call `store-cli emit` for phase events hallucinate runtime facts (see Plan 11 / Slice 2). Write the SUMMARY and return.
|
|
70
|
+
- Write `WRITEBACK-SUMMARY.json` to the sprint directory (`engineering/sprints/{sprintId}/`) with the following shape:
|
|
71
|
+
```json
|
|
72
|
+
{
|
|
73
|
+
"objective": "<one sentence — what views were regenerated>",
|
|
74
|
+
"key_changes": ["<up to 6 bullets — which files were written>"],
|
|
75
|
+
"verdict": "n/a",
|
|
76
|
+
"written_at": "<current ISO 8601 timestamp>"
|
|
77
|
+
}
|
|
78
|
+
```
|
|
79
|
+
The orchestrator reads this file directly to compose the collation event narrative. Do NOT call `set-summary` to register it — that would mutate the store in violation of Iron Law 1.
|
|
65
80
|
- Invoke Tomoshibi via Skill tool to refresh KB and workflow links in agent
|
|
66
81
|
instruction files:
|
|
67
82
|
```
|
|
68
83
|
Use the Skill tool:
|
|
69
84
|
skill: "forge:refresh-kb-links"
|
|
70
85
|
```
|
|
71
|
-
```
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
<!-- See _fragments/generation-instructions.md for Generation Instructions template -->
|
|
@@ -20,6 +20,7 @@ deps:
|
|
|
20
20
|
config_fields: [commands.test, paths.engineering]
|
|
21
21
|
---
|
|
22
22
|
|
|
23
|
+
|
|
23
24
|
# Commit Task
|
|
24
25
|
## Iron Laws
|
|
25
26
|
|
|
@@ -29,15 +30,7 @@ deps:
|
|
|
29
30
|
|
|
30
31
|
## Store-Write Verification
|
|
31
32
|
|
|
32
|
-
|
|
33
|
-
non-zero or the `PreToolUse` write-boundary hook blocks the call (exit 2):
|
|
34
|
-
|
|
35
|
-
1. Parse the structured error (names the offending field + schema file).
|
|
36
|
-
2. Correct the JSON to satisfy the schema.
|
|
37
|
-
3. Retry. Repeat up to 3 times.
|
|
38
|
-
4. After 3 failures, halt and escalate with original payload, corrected payload, and all error messages.
|
|
39
|
-
|
|
40
|
-
Never set `FORGE_SKIP_WRITE_VALIDATION=1` — operator-only emergency switch.
|
|
33
|
+
<!-- See _fragments/store-write-verification.md for the canonical block content -->
|
|
41
34
|
|
|
42
35
|
## Algorithm
|
|
43
36
|
|
|
@@ -76,4 +69,6 @@ Never set `FORGE_SKIP_WRITE_VALIDATION=1` — operator-only emergency switch.
|
|
|
76
69
|
|
|
77
70
|
5. Finalize:
|
|
78
71
|
- **Do NOT emit a phase event yourself.** The orchestrator owns event emission — it composes the canonical event from runtime telemetry (model, provider, tokens, wall times) plus the SUMMARY you write in the next step. Subagents that call `store-cli emit` for phase events hallucinate runtime facts (see Plan 11 / Slice 2). Write the SUMMARY and return.
|
|
79
|
-
```
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
<!-- See _fragments/generation-instructions.md for Generation Instructions template -->
|
|
@@ -13,8 +13,10 @@ deps:
|
|
|
13
13
|
config_fields: [paths.engineering, paths.forgeRoot]
|
|
14
14
|
---
|
|
15
15
|
|
|
16
|
+
|
|
16
17
|
# Enhancement Agent
|
|
17
18
|
|
|
19
|
+
<!-- See _fragments/iron-laws.md for Iron Laws section structure guidance -->
|
|
18
20
|
## Iron Laws
|
|
19
21
|
|
|
20
22
|
- Orchestrator-only: this workflow runs with full tool access in the orchestrator session. NEVER delegate it to a subagent.
|
|
@@ -22,6 +24,9 @@ deps:
|
|
|
22
24
|
- All store I/O via `forge_store` (or `node "$FORGE_ROOT/tools/store-cli.cjs"`). Never edit `.forge/store/*.json` directly.
|
|
23
25
|
- Phase 1 only touches `{{KEY}}` token text; never rewrite persona prose, algorithm steps, or role definitions.
|
|
24
26
|
|
|
27
|
+
<!-- See _fragments/store-write-verification.md — NOTE: this file uses an intentionally abbreviated
|
|
28
|
+
Store-Write Verification variant (4-line condensed form for orchestrator-only workflow).
|
|
29
|
+
Canonical fragment is reference only. -->
|
|
25
30
|
## Store-Write Verification
|
|
26
31
|
|
|
27
32
|
Every `forge_store` write MUST succeed before advancing. If `store-cli` exits
|
|
@@ -38,6 +43,40 @@ Phases 2 and 3 write proposal artifacts to `.forge/enhancement-proposals/`. This
|
|
|
38
43
|
distinct from `.forge/enhancements/` (FR-007, S14 scope). This workflow uses `mkdir -p` before
|
|
39
44
|
writing the first proposal artifact to avoid assuming the directory exists. No conflict with S14.
|
|
40
45
|
|
|
46
|
+
### Sub-directory: `.forge/enhancement-proposals/queue/`
|
|
47
|
+
|
|
48
|
+
FORGE-S24-T07 introduces a project-local **enhancement queue** at
|
|
49
|
+
`.forge/enhancement-proposals/queue/<sprintId>/<taskId>-<ts>.json` — one file per
|
|
50
|
+
per-task curator run (T10). The queue is **append-only**: each curator run writes
|
|
51
|
+
a fresh file (the ISO compact `<ts>` suffix differentiates writes; nothing is
|
|
52
|
+
overwritten). Phase 2 drains the queue at sprint close, dedupes by
|
|
53
|
+
`{op, target_path, sha256(diff_body)}`, and feeds the merged batch into the
|
|
54
|
+
existing recurrence → delete-candidate → compression-gate → judge pipeline.
|
|
55
|
+
The result: **one batched review prompt per sprint, not one per task** (paper
|
|
56
|
+
§3.2.1 grouped reward). The drain is read-only — Phase 2 never deletes queue
|
|
57
|
+
files; operators triage them during retrospective if needed.
|
|
58
|
+
|
|
59
|
+
**Per-task curator (T10) write contract.** A curator MUST write via
|
|
60
|
+
`forge/tools/queue-drain.cjs` to preserve the append-only invariant:
|
|
61
|
+
|
|
62
|
+
```sh
|
|
63
|
+
node -e "
|
|
64
|
+
const { appendToQueue } = require('./forge/tools/queue-drain.cjs');
|
|
65
|
+
appendToQueue({
|
|
66
|
+
queueRoot: '.forge/enhancement-proposals/queue',
|
|
67
|
+
sprintId: process.env.FORGE_SPRINT_ID,
|
|
68
|
+
taskId: process.env.FORGE_TASK_ID,
|
|
69
|
+
ts: new Date().toISOString().replace(/[-:]|\\.\\d{3}/g, ''),
|
|
70
|
+
proposals: PROPOSALS_ARRAY,
|
|
71
|
+
});
|
|
72
|
+
"
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
`appendToQueue` throws if the exact file path already exists; curators MUST
|
|
76
|
+
choose a fresh `ts` per run rather than overwriting. The drain is empty-safe:
|
|
77
|
+
if no curator ever wrote (queue dir missing) or no files exist in the sprint
|
|
78
|
+
sub-dir, Phase 2 reports "no proposals" and exits cleanly (AC5).
|
|
79
|
+
|
|
41
80
|
## Confidence gating (Phase 1)
|
|
42
81
|
|
|
43
82
|
A key substitution is **high-confidence** when there is exactly one unambiguous signal source
|
|
@@ -179,11 +218,40 @@ Invoked by T09 post-sprint hook or manually via `/forge:enhance --phase 2`.
|
|
|
179
218
|
"
|
|
180
219
|
```
|
|
181
220
|
|
|
182
|
-
|
|
221
|
+
1a. **Drain enhancement queue** (FORGE-S24-T07) — read per-task curator
|
|
222
|
+
proposals from `.forge/enhancement-proposals/queue/<sprintId>/`, dedupe by
|
|
223
|
+
`{op, target_path, sha256(diff_body)}`, and produce a `queuedProposals`
|
|
224
|
+
array that joins the synthesised proposals from step 5. This is what makes
|
|
225
|
+
the review **batched** rather than per-task (paper §3.2.1):
|
|
226
|
+
|
|
227
|
+
```sh
|
|
228
|
+
node -e "
|
|
229
|
+
const { drainQueue } = require('./forge/tools/queue-drain.cjs');
|
|
230
|
+
const drained = drainQueue({
|
|
231
|
+
queueRoot: '.forge/enhancement-proposals/queue',
|
|
232
|
+
sprintId: process.env.FORGE_SPRINT_ID,
|
|
233
|
+
});
|
|
234
|
+
process.stdout.write(JSON.stringify(drained));
|
|
235
|
+
"
|
|
183
236
|
```
|
|
184
|
-
|
|
237
|
+
|
|
238
|
+
Contract (per `forge/tools/queue-drain.cjs`):
|
|
239
|
+
- Returns `{ proposals: [...], files: [...], errors: [...] }`. `proposals`
|
|
240
|
+
is the deduped union of every per-task curator file in the sprint
|
|
241
|
+
sub-dir. `files` is the lexicographic-sorted list of source paths (used
|
|
242
|
+
by step 6 to log provenance). `errors` carries any malformed JSON files
|
|
243
|
+
skipped during read — log them, do not abort.
|
|
244
|
+
- Empty / missing queue → empty result. The drain never throws on absent
|
|
245
|
+
queue dir (first-run or no curators registered yet, AC5).
|
|
246
|
+
- The drain is read-only. Operators are responsible for queue triage
|
|
247
|
+
after sprint close.
|
|
248
|
+
|
|
249
|
+
2. **Zero-input guard**: If both the friction event list AND `queuedProposals`
|
|
250
|
+
are empty, print:
|
|
185
251
|
```
|
|
186
|
-
|
|
252
|
+
No friction events or queued proposals for the active sprint — nothing to enhance.
|
|
253
|
+
```
|
|
254
|
+
and exit Phase 2 immediately (skip steps 3–9; emit the enhancement event with `"notes": "{\"phase\":2,\"frictionCount\":0,\"queuedCount\":0}"`). Do not create `.forge/enhancement-proposals/` when there are no proposals.
|
|
187
255
|
|
|
188
256
|
3. **Deduplicate** friction events by composite key `workflow + persona + issue`. Keep the most
|
|
189
257
|
recent occurrence of each composite key.
|
|
@@ -192,19 +260,276 @@ Invoked by T09 post-sprint hook or manually via `/forge:enhance --phase 2`.
|
|
|
192
260
|
`retrospective-done`), sorted by completion date. Read its task records from
|
|
193
261
|
`.forge/store/tasks/` filtered by the sprint ID.
|
|
194
262
|
|
|
195
|
-
5. **Synthesize enrichment proposals** — for each friction event
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
263
|
+
5. **Synthesize enrichment proposals** — for each friction event, classify the proposed
|
|
264
|
+
change into exactly one of three ops (see `forge/schemas/proposal.schema.json`):
|
|
265
|
+
|
|
266
|
+
| `op` | When to use |
|
|
267
|
+
|-----------------|-----------------------------------------------------------------------------|
|
|
268
|
+
| `insert_skill` | A new skill / persona / kb_docs reference is needed; target file does not yet carry the guidance. |
|
|
269
|
+
| `update_skill` | An existing skill or persona file needs revised guidance — e.g., add a routing pattern reference to `deps.kb_docs`, replace a stale instruction. |
|
|
270
|
+
| `delete_skill` | A skill is unused, redundant, or stale (`skill_unused` / `skill_redundant` / `skill_stale` friction subkinds); target file or section should be removed. |
|
|
271
|
+
|
|
272
|
+
For each proposal capture **at minimum** the schema-required triplet
|
|
273
|
+
`{op, target_path, diff_body}` plus optional `rationale` and `sourceFrictionIds`.
|
|
274
|
+
`sourceFrictionIds` MUST carry the `eventId` of every friction event that
|
|
275
|
+
contributed to the proposal — the next step depends on it to resolve the
|
|
276
|
+
originating task for the recurrence scan.
|
|
277
|
+
For large committed file sets (> 5 files in the sprint), also check whether
|
|
278
|
+
`engineer-skills.md` or `architect-skills.md` should be updated (`update_skill`).
|
|
279
|
+
The op classification is the foundation for the downstream judge (T03),
|
|
280
|
+
delete-candidate detection (T05), compression gate (T06), and queue drain (T07).
|
|
281
|
+
|
|
282
|
+
**Merge with queued proposals (T07).** Concatenate the synthesised
|
|
283
|
+
proposals built in this step with the `queuedProposals` array from
|
|
284
|
+
step 1a, then dedupe the combined array with the same key the drain
|
|
285
|
+
uses (`{op, target_path, sha256(diff_body)}`) so a friction-synthesised
|
|
286
|
+
proposal that happens to be byte-identical to a curator-queued one
|
|
287
|
+
collapses. Use:
|
|
288
|
+
|
|
289
|
+
```sh
|
|
290
|
+
node -e "
|
|
291
|
+
const { dedupeProposals } = require('./forge/tools/queue-drain.cjs');
|
|
292
|
+
// synthesised = proposals built above from friction events.
|
|
293
|
+
// queued = drained.proposals from step 1a.
|
|
294
|
+
const merged = dedupeProposals(synthesised.concat(queued));
|
|
295
|
+
process.stdout.write(JSON.stringify(merged));
|
|
296
|
+
"
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
The merged array is what feeds steps 5a (recurrence) → 5b (delete
|
|
300
|
+
candidates) → 5b.5 (compression gate) → 5c (judge) — a single batched
|
|
301
|
+
pipeline, never one per task (AC4).
|
|
302
|
+
|
|
303
|
+
5a. **Cross-task replay scoring (recurrence boost)** — before writing the
|
|
304
|
+
artifact, stamp each proposal with `recurrence_count` and
|
|
305
|
+
`recurrence_task_ids` so the T03 judge can score "this friction recurred
|
|
306
|
+
across N tasks" rather than treating every signal as a singleton:
|
|
307
|
+
|
|
308
|
+
```sh
|
|
309
|
+
node -e "
|
|
310
|
+
const { annotateProposals } = require('./forge/tools/replay-scoring.cjs');
|
|
311
|
+
// friction = deduped friction events from step 3, each carrying eventId,
|
|
312
|
+
// taskId, subkind, evidence.skillId (orchestrator-stamped).
|
|
313
|
+
// proposals = array built in step 5.
|
|
314
|
+
// taskOrder = task IDs of the most-recent sprint sorted by completion
|
|
315
|
+
// order — same source as step 4.
|
|
316
|
+
const annotated = annotateProposals(proposals, friction, taskOrder);
|
|
317
|
+
process.stdout.write(JSON.stringify(annotated));
|
|
318
|
+
"
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
Contract (per `forge/tools/replay-scoring.cjs`):
|
|
322
|
+
- `recurrence_count` is the number of distinct tasks (origin task + later
|
|
323
|
+
tasks in `taskOrder`) whose friction events match the proposal's
|
|
324
|
+
originating `(subkind, evidence.skillId)` pair. Always `>= 1`.
|
|
325
|
+
- `recurrence_task_ids` is the `taskOrder`-sorted list of those task IDs.
|
|
326
|
+
- Proposals whose `sourceFrictionIds` cannot be resolved (no matching
|
|
327
|
+
`eventId` in the friction set, or the resolved event lacks
|
|
328
|
+
`subkind`/`evidence.skillId`) receive `recurrence_count: 1` and an empty
|
|
329
|
+
`recurrence_task_ids: []` — neutral signal, not silent failure.
|
|
330
|
+
- The annotator returns new proposal objects; the input array is not
|
|
331
|
+
mutated.
|
|
332
|
+
|
|
333
|
+
5b. **Delete-candidate detection (3-sprint zero-use)** — scan `skill_usage`
|
|
334
|
+
events across the trailing 3 sprints and emit a `delete_skill` proposal
|
|
335
|
+
for every skill with zero retrieval AND zero invocation across the
|
|
336
|
+
window. This is the only mechanism by which the skill repository shrinks:
|
|
337
|
+
|
|
338
|
+
```sh
|
|
339
|
+
node -e "
|
|
340
|
+
const { buildDeleteProposals } = require('./forge/tools/delete-candidate-detector.cjs');
|
|
341
|
+
// skillUsageEvents = all events with type === 'skill_usage' across the
|
|
342
|
+
// sprints in scope (collected via the same Step 1
|
|
343
|
+
// walker, filtered by type instead of friction).
|
|
344
|
+
// sprintOrder = sprint IDs sorted by completion order (oldest →
|
|
345
|
+
// newest). The detector takes the trailing windowSize
|
|
346
|
+
// entries.
|
|
347
|
+
// windowSize = 3 by default; configurable. Defined as the trailing
|
|
348
|
+
// N sprints of sprintOrder.
|
|
349
|
+
// targetPathFor = (skillId) => the on-disk path of the skill file to
|
|
350
|
+
// delete. Workflow chooses the mapping convention.
|
|
351
|
+
const deletes = buildDeleteProposals({
|
|
352
|
+
events: skillUsageEvents,
|
|
353
|
+
sprintOrder,
|
|
354
|
+
windowSize: 3,
|
|
355
|
+
targetPathFor: (skillId) => 'forge/skills/' + skillId + '.md',
|
|
356
|
+
});
|
|
357
|
+
process.stdout.write(JSON.stringify(deletes));
|
|
358
|
+
"
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
Append the resulting `delete_skill` proposals to the proposal array from
|
|
362
|
+
step 5/5a before step 6. Each delete proposal already carries
|
|
363
|
+
`recurrence_count: 1` and `recurrence_task_ids: []` (the annotator from
|
|
364
|
+
step 5a is for friction-derived proposals; delete candidates come from
|
|
365
|
+
usage telemetry, not friction, so recurrence is neutral by construction).
|
|
366
|
+
|
|
367
|
+
5b.5. **Compression gate (reject >20% growth without 3+ frictions)** — a cheap
|
|
368
|
+
deterministic filter that runs BEFORE the LLM judge (step 5c). Any
|
|
369
|
+
`update_skill` proposal that would grow the target file by more than 20%
|
|
370
|
+
(byte-wise, UTF-8) must be backed by at least 3 supporting friction events;
|
|
371
|
+
otherwise it is rejected here and never reaches the judge. `insert_skill`
|
|
372
|
+
and `delete_skill` proposals pass through unconditionally — insert growth
|
|
373
|
+
is handled by the judge's `body_under_2kb` axis and delete only shrinks.
|
|
374
|
+
|
|
375
|
+
Why a pre-judge gate? Judging is expensive. Unbounded skill-body growth is
|
|
376
|
+
the classic SkillOS failure mode — pasting pages of trajectory copy-paste to
|
|
377
|
+
"patch" a friction. It is cheap to detect deterministically and wasteful to
|
|
378
|
+
ask the judge to rule on.
|
|
379
|
+
|
|
380
|
+
```sh
|
|
381
|
+
node -e "
|
|
382
|
+
const fs = require('node:fs');
|
|
383
|
+
const path = require('node:path');
|
|
384
|
+
const { filterProposals } = require('./forge/tools/compression-gate.cjs');
|
|
385
|
+
// proposals = post-5b array (synthesis + recurrence + delete-candidates).
|
|
386
|
+
// PROJECT_ROOT resolves the target_path; forge plugin source is the source
|
|
387
|
+
// of truth for current bodies. The workflow renders the diff via its own
|
|
388
|
+
// applyProposalDiff helper (left abstract here — the gate is body-agnostic).
|
|
389
|
+
const projectRoot = process.env.PROJECT_ROOT;
|
|
390
|
+
const result = filterProposals({
|
|
391
|
+
proposals,
|
|
392
|
+
currentBodyFor: (p) => {
|
|
393
|
+
const abs = path.join(projectRoot, p.target_path);
|
|
394
|
+
try { return fs.readFileSync(abs, 'utf8'); }
|
|
395
|
+
catch (e) { return ''; } // insert_skill or missing file → empty
|
|
396
|
+
},
|
|
397
|
+
newBodyFor: (p) => applyProposalDiff(currentBodyFor(p), p),
|
|
398
|
+
// Default supporting count = proposal.sourceFrictionIds.length. Override
|
|
399
|
+
// if the policy is 'count frictions citing the same skill across the
|
|
400
|
+
// sprint' rather than 'count citations on the proposal itself'.
|
|
401
|
+
});
|
|
402
|
+
const proposalsAfterGate = result.admitted;
|
|
403
|
+
const compressionRejections = result.rejected; // [{ proposal, ...evaluation }]
|
|
404
|
+
process.stdout.write(JSON.stringify({ kept: proposalsAfterGate, rejected: compressionRejections }));
|
|
405
|
+
"
|
|
406
|
+
```
|
|
407
|
+
|
|
408
|
+
**Logging gate rejections.** Append every rejection from this step to the
|
|
409
|
+
same `phase2-<timestamp>-rejections.json` sibling that step 5c uses, with
|
|
410
|
+
the rejection record carrying `{ proposal, admit: false,
|
|
411
|
+
reason: 'compression_gate_growth_unsupported', growthRatio, currentBytes,
|
|
412
|
+
newBytes, supportingFrictionCount, threshold, minSupportingFrictions }`.
|
|
413
|
+
This keeps every drop — gate or judge — traceable in one place.
|
|
414
|
+
|
|
415
|
+
Contract (per `forge/tools/compression-gate.cjs`):
|
|
416
|
+
- `GROWTH_THRESHOLD === 0.20`; comparison is **strict** (`> 0.20`). A
|
|
417
|
+
proposal at exactly 20% growth admits without friction support.
|
|
418
|
+
- `MIN_SUPPORTING_FRICTIONS === 3`. Two or fewer citations is not enough.
|
|
419
|
+
- An update on an empty current body yields `growthRatio: Infinity`; the
|
|
420
|
+
friction-support rule still applies.
|
|
421
|
+
- Negative growth (shrink) admits unconditionally.
|
|
422
|
+
- `filterProposals` partitions the input array preserving order; the
|
|
423
|
+
output `rejected` array carries the structured evaluation alongside the
|
|
424
|
+
original proposal.
|
|
425
|
+
|
|
426
|
+
5c. **LLM-judge gate (Sonnet rubric, drop <3/5)** — score every proposal
|
|
427
|
+
against the 5-axis rubric and drop low-signal proposals before
|
|
428
|
+
presentation. The rubric is single-sourced in
|
|
429
|
+
`forge/tools/judge-proposal.cjs`:
|
|
430
|
+
|
|
431
|
+
| Axis (0..5) | What it measures |
|
|
432
|
+
|---|---|
|
|
433
|
+
| `specificity` | Names a concrete target_path beyond `forge/skills/*` floor; carries a non-trivial rationale; recurrence trail boosts. |
|
|
434
|
+
| `when_not_to_use` | Body contains a literal "When NOT to use" section. |
|
|
435
|
+
| `no_trajectory_copy_paste` | No long verbatim runs or unbroken non-whitespace blocks (>= 400 bytes) that suggest pasted trajectory log. |
|
|
436
|
+
| `body_under_2kb` | `Buffer.byteLength(diff_body, 'utf8') <= 2048`. |
|
|
437
|
+
| `cites_friction` | Proposal carries at least one `sourceFrictionIds` entry; multiple citations or recurrence boost the score. |
|
|
438
|
+
|
|
439
|
+
For each proposal in the post-5b array, the workflow asks Sonnet to
|
|
440
|
+
apply the rubric and emit per-axis 0..5 scores; in the absence of an
|
|
441
|
+
LLM call, the deterministic `scoreProposal(proposal)` helper in
|
|
442
|
+
`judge-proposal.cjs` is used as both the fallback scorer and the
|
|
443
|
+
validation contract for Sonnet-produced scores (single source of truth
|
|
444
|
+
for the rubric definition).
|
|
445
|
+
|
|
446
|
+
```sh
|
|
447
|
+
node -e "
|
|
448
|
+
const {
|
|
449
|
+
scoreProposal,
|
|
450
|
+
decideJudgement,
|
|
451
|
+
} = require('./forge/tools/judge-proposal.cjs');
|
|
452
|
+
// proposals = post-5b array of proposal records.
|
|
453
|
+
const judged = proposals.map((p) => {
|
|
454
|
+
const scored = scoreProposal(p);
|
|
455
|
+
const decision = decideJudgement(scored);
|
|
456
|
+
return { proposal: p, ...decision };
|
|
457
|
+
});
|
|
458
|
+
const kept = judged.filter((j) => j.verdict === 'keep').map((j) => j.proposal);
|
|
459
|
+
const dropped = judged.filter((j) => j.verdict === 'drop');
|
|
460
|
+
process.stdout.write(JSON.stringify({ kept, dropped }));
|
|
461
|
+
"
|
|
462
|
+
```
|
|
463
|
+
|
|
464
|
+
Contract (per `forge/tools/judge-proposal.cjs`):
|
|
465
|
+
- `scoreProposal(proposal)` returns `{ axes, average }` with `axes`
|
|
466
|
+
keyed by every entry in `RUBRIC_AXES` and `average` rounded to one
|
|
467
|
+
decimal place.
|
|
468
|
+
- `decideJudgement({ axes })` returns
|
|
469
|
+
`{ verdict, average, axes, reason }`. `verdict === 'drop'` iff
|
|
470
|
+
`average < 3` (strictly less than); ties at exactly 3.0 keep.
|
|
471
|
+
- `decideJudgement` fails loud on missing or out-of-range axes — the
|
|
472
|
+
judge will NOT silently coerce a malformed score sheet into a verdict.
|
|
473
|
+
|
|
474
|
+
**Logging dropped proposals (AC3).** Every rejection MUST be persisted
|
|
475
|
+
for retro review. Replace the proposal array passed to step 6 with the
|
|
476
|
+
`kept` list, and append the `dropped` list to
|
|
477
|
+
`$PROJECT_ROOT/.forge/enhancement-proposals/phase2-<timestamp>-rejections.json`
|
|
478
|
+
as a sibling artifact. Each rejection record carries the original
|
|
479
|
+
proposal alongside `{ verdict: 'drop', average, axes, reason }`. The
|
|
480
|
+
markdown summary written in step 6 SHOULD include a "Dropped (N)" line
|
|
481
|
+
pointing at the rejections file when N > 0.
|
|
482
|
+
|
|
483
|
+
**Carry-over caveat** — the rubric is deterministic; Sonnet's role is
|
|
484
|
+
to add semantic judgement to axes that the heuristic scorer
|
|
485
|
+
approximates (specificity in particular). When Sonnet is invoked, its
|
|
486
|
+
per-axis scores MUST be validated against the 0..5 range via the same
|
|
487
|
+
`validateAxes` invariant `decideJudgement` enforces. Operators
|
|
488
|
+
investigating an unexpected drop should consult the per-axis trace in
|
|
489
|
+
`reason`.
|
|
490
|
+
|
|
491
|
+
Contract (per `forge/tools/delete-candidate-detector.cjs`):
|
|
492
|
+
- A skill qualifies for deletion iff it has at least one `skill_usage`
|
|
493
|
+
event inside the trailing window AND every in-window observation has
|
|
494
|
+
`retrieved === false` AND `used === false`. Any single `retrieved: true`
|
|
495
|
+
or `used: true` event disqualifies the skill.
|
|
496
|
+
- Skills with zero observations in the window are NOT proposed — this
|
|
497
|
+
case is indistinguishable from a newly-added skill that hasn't been
|
|
498
|
+
loaded yet, so silence is the safe default.
|
|
499
|
+
- Each proposal carries `window_size`, `window_sprint_ids`, and a
|
|
500
|
+
`sourceFrictionIds: []` (delete candidates derive from usage telemetry,
|
|
501
|
+
not friction).
|
|
502
|
+
|
|
503
|
+
**Carry-over caveat** — the trailing-3-sprint window is only meaningful
|
|
504
|
+
once 3 sprints have actually elapsed since `skill_usage` event emission
|
|
505
|
+
landed in FORGE-S24-T01 (forge 0.45.1). During the carry-over period the
|
|
506
|
+
detector still runs over whatever sprintOrder it receives, but the
|
|
507
|
+
signal is noisier: a skill flagged after only one or two sprints of
|
|
508
|
+
history may simply be new or temporarily idle. Operators should treat
|
|
509
|
+
delete proposals from short-history runs as advisory until the full
|
|
510
|
+
window is populated.
|
|
201
511
|
|
|
202
512
|
6. **Write proposal artifact**:
|
|
203
513
|
```sh
|
|
204
514
|
mkdir -p "$PROJECT_ROOT/.forge/enhancement-proposals"
|
|
205
515
|
```
|
|
206
|
-
Write
|
|
207
|
-
|
|
516
|
+
Write **two** outputs for each Phase 2 run (using the `kept` list from
|
|
517
|
+
step 5c — dropped proposals are persisted separately to the
|
|
518
|
+
`phase2-<timestamp>-rejections.json` sibling described in step 5c):
|
|
519
|
+
|
|
520
|
+
- `phase2-<timestamp>.md` — human-readable markdown, one section per proposal,
|
|
521
|
+
showing op + target_path + a fenced diff block.
|
|
522
|
+
- `phase2-<timestamp>.json` — machine-readable array of proposal records, each
|
|
523
|
+
conforming to `forge/schemas/proposal.schema.json` (required keys: `op`,
|
|
524
|
+
`target_path`, `diff_body`; `op` ∈ {insert_skill, update_skill, delete_skill};
|
|
525
|
+
optional `recurrence_count` ≥ 1 and `recurrence_task_ids` populated by step 5a).
|
|
526
|
+
|
|
527
|
+
**Back-compat on read** — pre-0.45.2 proposal records lack `op`. Downstream
|
|
528
|
+
consumers MUST route legacy records through
|
|
529
|
+
`forge/tools/proposal-normalize.cjs:normaliseProposal()` which defaults the
|
|
530
|
+
missing `op` to `insert_skill` (the only op the prior insert-biased flow
|
|
531
|
+
could produce). Do NOT silently coerce — call the helper explicitly so the
|
|
532
|
+
normalisation is auditable.
|
|
208
533
|
|
|
209
534
|
7. **Present to user**:
|
|
210
535
|
```
|
|
@@ -278,3 +603,5 @@ Invoked by `/forge:enhance --phase 3` (default when no phase given), or delegate
|
|
|
278
603
|
If any step fails unexpectedly, describe what went wrong and offer:
|
|
279
604
|
|
|
280
605
|
> "This looks like a Forge bug. Would you like to file a report? Run `/forge:report-bug`."
|
|
606
|
+
|
|
607
|
+
<!-- See _fragments/generation-instructions.md for Generation Instructions template -->
|
|
@@ -14,6 +14,7 @@ deps:
|
|
|
14
14
|
config_fields: [commands.test, paths.engineering]
|
|
15
15
|
---
|
|
16
16
|
|
|
17
|
+
|
|
17
18
|
# Fix Bug
|
|
18
19
|
## Pipeline Phases
|
|
19
20
|
|
|
@@ -159,8 +160,12 @@ Differences are confined to the **triage** step and the **path branch**.
|
|
|
159
160
|
• Reproduce the bug (failing test or reproduction script).
|
|
160
161
|
• Confirm the root cause via codebase research.
|
|
161
162
|
• Decide Path A vs Path B by the criteria above.
|
|
162
|
-
• Write
|
|
163
|
-
|
|
163
|
+
• Write triage artifact:
|
|
164
|
+
forge_artifact({ command:"write", entity:"bug", entityId:"{bugId}", artifact:"triage", content:"<markdown>" })
|
|
165
|
+
• Write triage-summary artifact (JSON shape documented in § Triage Judgement):
|
|
166
|
+
forge_artifact({ command:"write", entity:"bug", entityId:"{bugId}", artifact:"triage-summary", content:"<JSON>" })
|
|
167
|
+
• Call set-bug-summary {bugId} triage via forge_store:
|
|
168
|
+
forge_store({ command:"set-bug-summary", bugId:"{bugId}", phase:"triage", file:"TRIAGE-SUMMARY.json" })
|
|
164
169
|
- On return, orchestrator transitions status:
|
|
165
170
|
store-cli update-status bug {bugId} status triaged
|
|
166
171
|
store-cli update-status bug {bugId} status in-progress
|
|
@@ -386,6 +391,8 @@ Note: the `forbid bug.status == approved | verified` rows are defensive — no
|
|
|
386
391
|
phase in this workflow writes those values, and a follow-up cleanup should
|
|
387
392
|
drop them from `bug.schema.json` entirely. Until then, these gates halt any
|
|
388
393
|
LLM-improvised attempt to land in the run-task trap (see today's regression).
|
|
394
|
+
|
|
395
|
+
<!-- See _fragments/generation-instructions.md for Generation Instructions template (fix-bug uses orchestrator-special long-form prose — cannot be reduced to standard subsections) -->
|
|
389
396
|
## Iron Laws
|
|
390
397
|
|
|
391
398
|
<!-- Shared orchestrator laws live in generic-skills.md § Orchestrator Iron Laws. -->
|
|
@@ -20,6 +20,7 @@ deps:
|
|
|
20
20
|
config_fields: [commands.test, paths.engineering]
|
|
21
21
|
---
|
|
22
22
|
|
|
23
|
+
|
|
23
24
|
# Implement Plan
|
|
24
25
|
## Algorithm
|
|
25
26
|
|
|
@@ -50,10 +51,9 @@ deps:
|
|
|
50
51
|
- Run build if frontend assets modified: {BUILD_COMMAND}
|
|
51
52
|
|
|
52
53
|
4. Documentation:
|
|
53
|
-
- Write PROGRESS.md
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
- Files changed manifest
|
|
54
|
+
- Write PROGRESS.md via `forge_artifact`:
|
|
55
|
+
`forge_artifact({ command:"write", entity:"{entity_kind}", entityId:"{record_id}", artifact:"progress", content:"<markdown>" })`
|
|
56
|
+
Content must include: summary of changes, test evidence (copy of output), files changed manifest.
|
|
57
57
|
|
|
58
58
|
5. Knowledge Writeback:
|
|
59
59
|
- Update architecture/domain/stack-checklist if discoveries were made
|
|
@@ -65,34 +65,27 @@ deps:
|
|
|
65
65
|
- `planned` → `implemented` (workflow-prose path — direct)
|
|
66
66
|
- `plan-approved` → `implementing` → `implemented` (supervisor-review path)
|
|
67
67
|
- Out-of-band escapes (any state): `plan-revision-required`, `code-revision-required`, `blocked`, `escalated`, `abandoned`
|
|
68
|
-
Update status
|
|
68
|
+
Update status — check current state first:
|
|
69
|
+
- If predecessor is `planned` or `implementing`:
|
|
70
|
+
`node "$FORGE_ROOT/tools/store-cli.cjs" update-status task {taskId} status implemented`
|
|
71
|
+
- If predecessor is `plan-approved` (two-step mandatory — FSM forbids skipping `implementing`):
|
|
72
|
+
`node "$FORGE_ROOT/tools/store-cli.cjs" update-status task {taskId} status implementing`
|
|
73
|
+
`node "$FORGE_ROOT/tools/store-cli.cjs" update-status task {taskId} status implemented`
|
|
69
74
|
- **Bug mode** — NO status write. The bug remains `in-progress` until the commit phase transitions it to `fixed`. Writing `bug.status` here violates `meta-fix-bug.md § Iron Laws #2`.
|
|
70
75
|
- **Do NOT emit a phase event yourself.** The orchestrator owns event emission — it composes the canonical event from runtime telemetry (model, provider, tokens, wall times) plus the SUMMARY you write in the next step. Subagents that call `store-cli emit` for phase events hallucinate runtime facts (see Plan 11 / Slice 2). Write the SUMMARY and return.
|
|
71
76
|
|
|
72
77
|
7. Emit Summary Sidecar:
|
|
73
|
-
- Write `IMPLEMENTATION-SUMMARY.json`
|
|
74
|
-
|
|
75
|
-
{
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
"written_at": "<current ISO 8601 timestamp>",
|
|
80
|
-
"artifact_ref":"PROGRESS.md"
|
|
81
|
-
}
|
|
82
|
-
```
|
|
83
|
-
- Call (task mode):
|
|
84
|
-
```
|
|
85
|
-
node "$FORGE_ROOT/tools/store-cli.cjs" set-summary {taskId} implementation \
|
|
86
|
-
engineering/sprints/{sprint}/{task}/IMPLEMENTATION-SUMMARY.json
|
|
87
|
-
```
|
|
78
|
+
- Write `IMPLEMENTATION-SUMMARY.json` via `forge_artifact`:
|
|
79
|
+
`forge_artifact({ command:"write", entity:"{entity_kind}", entityId:"{record_id}", artifact:"implementation-summary", content:"<JSON>" })`
|
|
80
|
+
JSON shape: `{"objective":"<one sentence>", "key_changes":["<up to 12 bullets>"], "verdict":"n/a", "written_at":"<ISO 8601>", "artifact_ref":"PROGRESS.md"}`
|
|
81
|
+
The tool validates required fields automatically — fix and retry if it rejects.
|
|
82
|
+
- Then link sidecar to store (task mode):
|
|
83
|
+
`forge_store({ command:"set-summary", args:["{taskId}", "implementation", "engineering/sprints/{sprint}/{task}/IMPLEMENTATION-SUMMARY.json"] })`
|
|
88
84
|
Or (bug mode):
|
|
89
|
-
|
|
90
|
-
node "$FORGE_ROOT/tools/store-cli.cjs" set-bug-summary {bugId} implementation \
|
|
91
|
-
engineering/bugs/{bugDir}/IMPLEMENTATION-SUMMARY.json
|
|
92
|
-
```
|
|
93
|
-
- If the set-summary call exits non-zero, fix the sidecar JSON and retry. Do not proceed without a valid summary.
|
|
85
|
+
`forge_store({ command:"set-bug-summary", args:["{bugId}", "implementation", "engineering/bugs/{bugDir}/IMPLEMENTATION-SUMMARY.json"] })`
|
|
94
86
|
```
|
|
95
87
|
|
|
88
|
+
<!-- See _fragments/iron-laws.md for Iron Laws section structure guidance -->
|
|
96
89
|
## Iron Laws
|
|
97
90
|
|
|
98
91
|
- Follow the Algorithm step by step. Execute the approved PLAN.md exactly; do not invent scope or skip steps without updating the plan first.
|
|
@@ -102,15 +95,9 @@ deps:
|
|
|
102
95
|
|
|
103
96
|
## Store-Write Verification
|
|
104
97
|
|
|
105
|
-
|
|
106
|
-
non-zero or the `PreToolUse` write-boundary hook blocks the call (exit 2):
|
|
107
|
-
|
|
108
|
-
1. Parse the structured error (names the offending field + schema file).
|
|
109
|
-
2. Correct the JSON to satisfy the schema.
|
|
110
|
-
3. Retry. Repeat up to 3 times.
|
|
111
|
-
4. After 3 failures, halt and escalate with original payload, corrected payload, and all error messages.
|
|
112
|
-
|
|
113
|
-
Never set `FORGE_SKIP_WRITE_VALIDATION=1` — operator-only emergency switch.
|
|
98
|
+
<!-- See _fragments/store-write-verification.md for the canonical block content -->
|
|
114
99
|
|
|
115
100
|
## Friction Emit
|
|
116
|
-
Emit `type:friction` `{workflow:implement, persona:engineer, issue}` per `_fragments/friction-emit.md`.
|
|
101
|
+
Emit `type:friction` `{workflow:implement, persona:engineer, issue}` per `_fragments/friction-emit.md`.
|
|
102
|
+
|
|
103
|
+
<!-- See _fragments/generation-instructions.md for Generation Instructions template -->
|