forgecraft-mcp 1.4.0 → 1.7.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/LICENSE +67 -0
- package/README.md +527 -525
- package/dist/analyzers/anchors/anchor-loader.d.ts +47 -0
- package/dist/analyzers/anchors/anchor-loader.d.ts.map +1 -0
- package/dist/analyzers/anchors/anchor-loader.js +113 -0
- package/dist/analyzers/anchors/anchor-loader.js.map +1 -0
- package/dist/analyzers/anti-pattern.d.ts.map +1 -1
- package/dist/analyzers/anti-pattern.js +38 -26
- package/dist/analyzers/anti-pattern.js.map +1 -1
- package/dist/analyzers/completeness-helpers.d.ts +5 -0
- package/dist/analyzers/completeness-helpers.d.ts.map +1 -1
- package/dist/analyzers/completeness-helpers.js +17 -0
- package/dist/analyzers/completeness-helpers.js.map +1 -1
- package/dist/analyzers/completeness.d.ts.map +1 -1
- package/dist/analyzers/completeness.js +4 -4
- package/dist/analyzers/completeness.js.map +1 -1
- package/dist/analyzers/gs-scorer.d.ts +3 -1
- package/dist/analyzers/gs-scorer.d.ts.map +1 -1
- package/dist/analyzers/gs-scorer.js +5 -2
- package/dist/analyzers/gs-scorer.js.map +1 -1
- package/dist/analyzers/package-json.d.ts.map +1 -1
- package/dist/analyzers/package-json.js +194 -34
- package/dist/analyzers/package-json.js.map +1 -1
- package/dist/analyzers/scorers/composable-scorer.d.ts +4 -2
- package/dist/analyzers/scorers/composable-scorer.d.ts.map +1 -1
- package/dist/analyzers/scorers/composable-scorer.js +50 -2
- package/dist/analyzers/scorers/composable-scorer.js.map +1 -1
- package/dist/analyzers/scorers/executable-scorer.d.ts +3 -2
- package/dist/analyzers/scorers/executable-scorer.d.ts.map +1 -1
- package/dist/analyzers/scorers/executable-scorer.js +64 -4
- package/dist/analyzers/scorers/executable-scorer.js.map +1 -1
- package/dist/analyzers/scorers/scorer-utils.d.ts +5 -3
- package/dist/analyzers/scorers/scorer-utils.d.ts.map +1 -1
- package/dist/analyzers/scorers/scorer-utils.js +34 -9
- package/dist/analyzers/scorers/scorer-utils.js.map +1 -1
- package/dist/analyzers/scorers/self-describing-scorer.d.ts +7 -4
- package/dist/analyzers/scorers/self-describing-scorer.d.ts.map +1 -1
- package/dist/analyzers/scorers/self-describing-scorer.js +17 -18
- package/dist/analyzers/scorers/self-describing-scorer.js.map +1 -1
- package/dist/cli/help.js +51 -51
- package/dist/disciplines/catalog.d.ts +16 -0
- package/dist/disciplines/catalog.d.ts.map +1 -0
- package/dist/disciplines/catalog.js +196 -0
- package/dist/disciplines/catalog.js.map +1 -0
- package/dist/disciplines/runner.d.ts +13 -0
- package/dist/disciplines/runner.d.ts.map +1 -0
- package/dist/disciplines/runner.js +35 -0
- package/dist/disciplines/runner.js.map +1 -0
- package/dist/registry/composer.d.ts.map +1 -1
- package/dist/registry/composer.js +9 -4
- package/dist/registry/composer.js.map +1 -1
- package/dist/registry/loader-tag.d.ts.map +1 -1
- package/dist/registry/loader-tag.js +1 -0
- package/dist/registry/loader-tag.js.map +1 -1
- package/dist/registry/remote-gates.js +1 -1
- package/dist/registry/remote-gates.js.map +1 -1
- package/dist/registry/renderer-skeletons.js +92 -92
- package/dist/registry/sentinel-renderer.js +299 -20
- package/dist/registry/sentinel-renderer.js.map +1 -1
- package/dist/sentinel/detect.d.ts +41 -0
- package/dist/sentinel/detect.d.ts.map +1 -0
- package/dist/sentinel/detect.js +122 -0
- package/dist/sentinel/detect.js.map +1 -0
- package/dist/sentinel/write.d.ts +54 -0
- package/dist/sentinel/write.d.ts.map +1 -0
- package/dist/sentinel/write.js +75 -0
- package/dist/sentinel/write.js.map +1 -0
- package/dist/shared/cnt-health.d.ts +16 -0
- package/dist/shared/cnt-health.d.ts.map +1 -1
- package/dist/shared/cnt-health.js +55 -8
- package/dist/shared/cnt-health.js.map +1 -1
- package/dist/shared/config.d.ts +14 -0
- package/dist/shared/config.d.ts.map +1 -1
- package/dist/shared/config.js +45 -0
- package/dist/shared/config.js.map +1 -1
- package/dist/shared/gs-score-logger.js +6 -6
- package/dist/shared/hook-installer.d.ts +58 -0
- package/dist/shared/hook-installer.d.ts.map +1 -0
- package/dist/shared/hook-installer.js +316 -0
- package/dist/shared/hook-installer.js.map +1 -0
- package/dist/shared/project-gates-helpers.d.ts +9 -0
- package/dist/shared/project-gates-helpers.d.ts.map +1 -1
- package/dist/shared/project-gates-helpers.js +35 -0
- package/dist/shared/project-gates-helpers.js.map +1 -1
- package/dist/shared/types/config.d.ts +7 -1
- package/dist/shared/types/config.d.ts.map +1 -1
- package/dist/shared/types/gates.d.ts +34 -0
- package/dist/shared/types/gates.d.ts.map +1 -1
- package/dist/shared/types/project.d.ts +68 -2
- package/dist/shared/types/project.d.ts.map +1 -1
- package/dist/shared/types/project.js +1 -0
- package/dist/shared/types/project.js.map +1 -1
- package/dist/shared/types/templates.d.ts +8 -1
- package/dist/shared/types/templates.d.ts.map +1 -1
- package/dist/shared/types/verify.d.ts +51 -1
- package/dist/shared/types/verify.d.ts.map +1 -1
- package/dist/shared/types/verify.js +37 -1
- package/dist/shared/types/verify.js.map +1 -1
- package/dist/tools/add-hook.d.ts.map +1 -1
- package/dist/tools/add-hook.js +8 -1
- package/dist/tools/add-hook.js.map +1 -1
- package/dist/tools/add-module.js +123 -123
- package/dist/tools/advice-registry.d.ts.map +1 -1
- package/dist/tools/advice-registry.js +108 -18
- package/dist/tools/advice-registry.js.map +1 -1
- package/dist/tools/advise-session-advisor.d.ts +16 -0
- package/dist/tools/advise-session-advisor.d.ts.map +1 -0
- package/dist/tools/advise-session-advisor.js +89 -0
- package/dist/tools/advise-session-advisor.js.map +1 -0
- package/dist/tools/advise-session-signals.d.ts +21 -0
- package/dist/tools/advise-session-signals.d.ts.map +1 -0
- package/dist/tools/advise-session-signals.js +113 -0
- package/dist/tools/advise-session-signals.js.map +1 -0
- package/dist/tools/advise-session.d.ts +22 -0
- package/dist/tools/advise-session.d.ts.map +1 -0
- package/dist/tools/advise-session.js +31 -0
- package/dist/tools/advise-session.js.map +1 -0
- package/dist/tools/analyze-harness.d.ts +18 -0
- package/dist/tools/analyze-harness.d.ts.map +1 -0
- package/dist/tools/analyze-harness.js +298 -0
- package/dist/tools/analyze-harness.js.map +1 -0
- package/dist/tools/audit.d.ts.map +1 -1
- package/dist/tools/audit.js +19 -0
- package/dist/tools/audit.js.map +1 -1
- package/dist/tools/change-request.d.ts +53 -0
- package/dist/tools/change-request.d.ts.map +1 -0
- package/dist/tools/change-request.js +395 -0
- package/dist/tools/change-request.js.map +1 -0
- package/dist/tools/check-cascade-contracts.d.ts +13 -0
- package/dist/tools/check-cascade-contracts.d.ts.map +1 -1
- package/dist/tools/check-cascade-contracts.js +73 -2
- package/dist/tools/check-cascade-contracts.js.map +1 -1
- package/dist/tools/check-cascade-report.js +64 -64
- package/dist/tools/check-cascade-steps.d.ts +3 -0
- package/dist/tools/check-cascade-steps.d.ts.map +1 -1
- package/dist/tools/check-cascade-steps.js +104 -15
- package/dist/tools/check-cascade-steps.js.map +1 -1
- package/dist/tools/check-cascade.d.ts +4 -3
- package/dist/tools/check-cascade.d.ts.map +1 -1
- package/dist/tools/check-cascade.js +30 -12
- package/dist/tools/check-cascade.js.map +1 -1
- package/dist/tools/check-derivation-chain.d.ts +37 -0
- package/dist/tools/check-derivation-chain.d.ts.map +1 -0
- package/dist/tools/check-derivation-chain.js +418 -0
- package/dist/tools/check-derivation-chain.js.map +1 -0
- package/dist/tools/check-spec-consistency.d.ts +25 -0
- package/dist/tools/check-spec-consistency.d.ts.map +1 -0
- package/dist/tools/check-spec-consistency.js +339 -0
- package/dist/tools/check-spec-consistency.js.map +1 -0
- package/dist/tools/check-t4.d.ts +54 -0
- package/dist/tools/check-t4.d.ts.map +1 -0
- package/dist/tools/check-t4.js +305 -0
- package/dist/tools/check-t4.js.map +1 -0
- package/dist/tools/close-cycle.d.ts +11 -0
- package/dist/tools/close-cycle.d.ts.map +1 -1
- package/dist/tools/close-cycle.js +364 -4
- package/dist/tools/close-cycle.js.map +1 -1
- package/dist/tools/cnt-add-routing.d.ts +31 -0
- package/dist/tools/cnt-add-routing.d.ts.map +1 -0
- package/dist/tools/cnt-add-routing.js +99 -0
- package/dist/tools/cnt-add-routing.js.map +1 -0
- package/dist/tools/configure-mcp.d.ts.map +1 -1
- package/dist/tools/configure-mcp.js +52 -2
- package/dist/tools/configure-mcp.js.map +1 -1
- package/dist/tools/consolidate-status.d.ts +31 -0
- package/dist/tools/consolidate-status.d.ts.map +1 -1
- package/dist/tools/consolidate-status.js +105 -0
- package/dist/tools/consolidate-status.js.map +1 -1
- package/dist/tools/executable-gates.d.ts +52 -0
- package/dist/tools/executable-gates.d.ts.map +1 -0
- package/dist/tools/executable-gates.js +333 -0
- package/dist/tools/executable-gates.js.map +1 -0
- package/dist/tools/extract-adrs-from-spec.d.ts +33 -0
- package/dist/tools/extract-adrs-from-spec.d.ts.map +1 -0
- package/dist/tools/extract-adrs-from-spec.js +410 -0
- package/dist/tools/extract-adrs-from-spec.js.map +1 -0
- package/dist/tools/extract-adrs-history.d.ts +47 -0
- package/dist/tools/extract-adrs-history.d.ts.map +1 -0
- package/dist/tools/extract-adrs-history.js +265 -0
- package/dist/tools/extract-adrs-history.js.map +1 -0
- package/dist/tools/forgecraft-dispatch-extended.d.ts.map +1 -1
- package/dist/tools/forgecraft-dispatch-extended.js +137 -0
- package/dist/tools/forgecraft-dispatch-extended.js.map +1 -1
- package/dist/tools/forgecraft-dispatch.d.ts.map +1 -1
- package/dist/tools/forgecraft-dispatch.js +16 -0
- package/dist/tools/forgecraft-dispatch.js.map +1 -1
- package/dist/tools/forgecraft-schema-params.d.ts +174 -2
- package/dist/tools/forgecraft-schema-params.d.ts.map +1 -1
- package/dist/tools/forgecraft-schema-params.js +197 -0
- package/dist/tools/forgecraft-schema-params.js.map +1 -1
- package/dist/tools/forgecraft-schema.d.ts +179 -7
- package/dist/tools/forgecraft-schema.d.ts.map +1 -1
- package/dist/tools/forgecraft-schema.js +37 -0
- package/dist/tools/forgecraft-schema.js.map +1 -1
- package/dist/tools/generate-adr.js +6 -6
- package/dist/tools/generate-adr.js.map +1 -1
- package/dist/tools/generate-decision.d.ts +77 -0
- package/dist/tools/generate-decision.d.ts.map +1 -0
- package/dist/tools/generate-decision.js +162 -0
- package/dist/tools/generate-decision.js.map +1 -0
- package/dist/tools/generate-env-probe.d.ts +49 -0
- package/dist/tools/generate-env-probe.d.ts.map +1 -0
- package/dist/tools/generate-env-probe.js +365 -0
- package/dist/tools/generate-env-probe.js.map +1 -0
- package/dist/tools/generate-harness.d.ts +53 -0
- package/dist/tools/generate-harness.d.ts.map +1 -0
- package/dist/tools/generate-harness.js +395 -0
- package/dist/tools/generate-harness.js.map +1 -0
- package/dist/tools/generate-roadmap.d.ts +1 -1
- package/dist/tools/generate-roadmap.d.ts.map +1 -1
- package/dist/tools/generate-roadmap.js +38 -4
- package/dist/tools/generate-roadmap.js.map +1 -1
- package/dist/tools/generate-session-prompt.d.ts +3 -3
- package/dist/tools/generate-session-prompt.d.ts.map +1 -1
- package/dist/tools/generate-session-prompt.js +9 -1
- package/dist/tools/generate-session-prompt.js.map +1 -1
- package/dist/tools/generate-slo-probe.d.ts +53 -0
- package/dist/tools/generate-slo-probe.d.ts.map +1 -0
- package/dist/tools/generate-slo-probe.js +366 -0
- package/dist/tools/generate-slo-probe.js.map +1 -0
- package/dist/tools/layer-status-gates.d.ts +24 -0
- package/dist/tools/layer-status-gates.d.ts.map +1 -0
- package/dist/tools/layer-status-gates.js +151 -0
- package/dist/tools/layer-status-gates.js.map +1 -0
- package/dist/tools/layer-status.d.ts +126 -0
- package/dist/tools/layer-status.d.ts.map +1 -0
- package/dist/tools/layer-status.js +647 -0
- package/dist/tools/layer-status.js.map +1 -0
- package/dist/tools/list.d.ts.map +1 -1
- package/dist/tools/list.js +9 -5
- package/dist/tools/list.js.map +1 -1
- package/dist/tools/postcondition-coverage.d.ts +57 -0
- package/dist/tools/postcondition-coverage.d.ts.map +1 -0
- package/dist/tools/postcondition-coverage.js +256 -0
- package/dist/tools/postcondition-coverage.js.map +1 -0
- package/dist/tools/probe-runners.d.ts +21 -0
- package/dist/tools/probe-runners.d.ts.map +1 -0
- package/dist/tools/probe-runners.js +246 -0
- package/dist/tools/probe-runners.js.map +1 -0
- package/dist/tools/probe-templates.d.ts +27 -0
- package/dist/tools/probe-templates.d.ts.map +1 -0
- package/dist/tools/probe-templates.js +279 -0
- package/dist/tools/probe-templates.js.map +1 -0
- package/dist/tools/propose-session.d.ts +28 -0
- package/dist/tools/propose-session.d.ts.map +1 -0
- package/dist/tools/propose-session.js +333 -0
- package/dist/tools/propose-session.js.map +1 -0
- package/dist/tools/refresh-output.js +14 -14
- package/dist/tools/review-stubs.d.ts +29 -0
- package/dist/tools/review-stubs.d.ts.map +1 -0
- package/dist/tools/review-stubs.js +173 -0
- package/dist/tools/review-stubs.js.map +1 -0
- package/dist/tools/roadmap-builder.d.ts +49 -1
- package/dist/tools/roadmap-builder.d.ts.map +1 -1
- package/dist/tools/roadmap-builder.js +210 -5
- package/dist/tools/roadmap-builder.js.map +1 -1
- package/dist/tools/run-env-probe.d.ts +57 -0
- package/dist/tools/run-env-probe.d.ts.map +1 -0
- package/dist/tools/run-env-probe.js +270 -0
- package/dist/tools/run-env-probe.js.map +1 -0
- package/dist/tools/run-harness.d.ts +52 -0
- package/dist/tools/run-harness.d.ts.map +1 -0
- package/dist/tools/run-harness.js +279 -0
- package/dist/tools/run-harness.js.map +1 -0
- package/dist/tools/run-slo-probe.d.ts +50 -0
- package/dist/tools/run-slo-probe.d.ts.map +1 -0
- package/dist/tools/run-slo-probe.js +281 -0
- package/dist/tools/run-slo-probe.js.map +1 -0
- package/dist/tools/scaffold-spec-stubs.js +115 -115
- package/dist/tools/scaffold-templates.js +62 -62
- package/dist/tools/scaffold-writer.d.ts.map +1 -1
- package/dist/tools/scaffold-writer.js +9 -0
- package/dist/tools/scaffold-writer.js.map +1 -1
- package/dist/tools/score-rubric.d.ts +19 -0
- package/dist/tools/score-rubric.d.ts.map +1 -0
- package/dist/tools/score-rubric.js +411 -0
- package/dist/tools/score-rubric.js.map +1 -0
- package/dist/tools/session-prompt-builders.d.ts +20 -0
- package/dist/tools/session-prompt-builders.d.ts.map +1 -1
- package/dist/tools/session-prompt-builders.js +78 -5
- package/dist/tools/session-prompt-builders.js.map +1 -1
- package/dist/tools/session-prompt-sections.d.ts +4 -2
- package/dist/tools/session-prompt-sections.d.ts.map +1 -1
- package/dist/tools/session-prompt-sections.js +22 -10
- package/dist/tools/session-prompt-sections.js.map +1 -1
- package/dist/tools/setup-artifact-writers.d.ts +69 -4
- package/dist/tools/setup-artifact-writers.d.ts.map +1 -1
- package/dist/tools/setup-artifact-writers.js +681 -5
- package/dist/tools/setup-artifact-writers.js.map +1 -1
- package/dist/tools/setup-cnt-builders.d.ts.map +1 -1
- package/dist/tools/setup-cnt-builders.js +162 -34
- package/dist/tools/setup-cnt-builders.js.map +1 -1
- package/dist/tools/setup-monitoring.d.ts +41 -0
- package/dist/tools/setup-monitoring.d.ts.map +1 -0
- package/dist/tools/setup-monitoring.js +364 -0
- package/dist/tools/setup-monitoring.js.map +1 -0
- package/dist/tools/setup-phase1.d.ts.map +1 -1
- package/dist/tools/setup-phase1.js +14 -1
- package/dist/tools/setup-phase1.js.map +1 -1
- package/dist/tools/setup-phase2.d.ts +14 -0
- package/dist/tools/setup-phase2.d.ts.map +1 -1
- package/dist/tools/setup-phase2.js +130 -3
- package/dist/tools/setup-phase2.js.map +1 -1
- package/dist/tools/setup-project.d.ts +8 -0
- package/dist/tools/setup-project.d.ts.map +1 -1
- package/dist/tools/setup-project.js +52 -2
- package/dist/tools/setup-project.js.map +1 -1
- package/dist/tools/spec-parser-tags.d.ts.map +1 -1
- package/dist/tools/spec-parser-tags.js +1 -0
- package/dist/tools/spec-parser-tags.js.map +1 -1
- package/dist/tools/verify-formatter.d.ts.map +1 -1
- package/dist/tools/verify-formatter.js +15 -1
- package/dist/tools/verify-formatter.js.map +1 -1
- package/dist/tools/verify.d.ts.map +1 -1
- package/dist/tools/verify.js +3 -0
- package/dist/tools/verify.js.map +1 -1
- package/package.json +98 -89
- package/templates/analytics/instructions.yaml +37 -37
- package/templates/analytics/mcp-servers.yaml +11 -11
- package/templates/analytics/structure.yaml +25 -25
- package/templates/api/harness/uc-template.hurl +20 -0
- package/templates/api/instructions.yaml +231 -231
- package/templates/api/mcp-servers.yaml +22 -22
- package/templates/api/nfr.yaml +23 -23
- package/templates/api/review.yaml +103 -103
- package/templates/api/structure.yaml +34 -34
- package/templates/api/verification.yaml +132 -132
- package/templates/cli/instructions.yaml +31 -31
- package/templates/cli/mcp-servers.yaml +11 -11
- package/templates/cli/review.yaml +53 -53
- package/templates/cli/structure.yaml +16 -16
- package/templates/data-lineage/instructions.yaml +28 -28
- package/templates/data-lineage/mcp-servers.yaml +22 -22
- package/templates/data-pipeline/instructions.yaml +84 -84
- package/templates/data-pipeline/mcp-servers.yaml +13 -13
- package/templates/data-pipeline/nfr.yaml +39 -39
- package/templates/data-pipeline/structure.yaml +23 -23
- package/templates/docs-manifest.yaml +227 -0
- package/templates/fintech/hooks.yaml +55 -55
- package/templates/fintech/instructions.yaml +112 -112
- package/templates/fintech/mcp-servers.yaml +13 -13
- package/templates/fintech/nfr.yaml +46 -46
- package/templates/fintech/playbook.yaml +210 -210
- package/templates/fintech/verification.yaml +239 -239
- package/templates/game/harness/uc-template.sim.ts +29 -0
- package/templates/game/instructions.yaml +289 -289
- package/templates/game/mcp-servers.yaml +38 -38
- package/templates/game/nfr.yaml +64 -64
- package/templates/game/playbook.yaml +214 -214
- package/templates/game/review.yaml +97 -97
- package/templates/game/structure.yaml +67 -67
- package/templates/game/verification.yaml +174 -174
- package/templates/healthcare/instructions.yaml +42 -42
- package/templates/healthcare/mcp-servers.yaml +13 -13
- package/templates/healthcare/nfr.yaml +47 -47
- package/templates/hipaa/instructions.yaml +41 -41
- package/templates/hipaa/mcp-servers.yaml +13 -13
- package/templates/infra/instructions.yaml +104 -104
- package/templates/infra/mcp-servers.yaml +20 -20
- package/templates/infra/nfr.yaml +46 -46
- package/templates/infra/review.yaml +65 -65
- package/templates/infra/structure.yaml +25 -25
- package/templates/library/instructions.yaml +36 -36
- package/templates/library/mcp-servers.yaml +20 -20
- package/templates/library/review.yaml +56 -56
- package/templates/library/structure.yaml +19 -19
- package/templates/medallion-architecture/instructions.yaml +41 -41
- package/templates/medallion-architecture/mcp-servers.yaml +22 -22
- package/templates/ml/instructions.yaml +85 -85
- package/templates/ml/mcp-servers.yaml +11 -11
- package/templates/ml/nfr.yaml +39 -39
- package/templates/ml/structure.yaml +25 -25
- package/templates/ml/verification.yaml +156 -156
- package/templates/mobile/instructions.yaml +44 -44
- package/templates/mobile/mcp-servers.yaml +11 -11
- package/templates/mobile/nfr.yaml +49 -49
- package/templates/mobile/structure.yaml +27 -27
- package/templates/mobile/verification.yaml +121 -121
- package/templates/observability-xray/instructions.yaml +40 -40
- package/templates/observability-xray/mcp-servers.yaml +15 -15
- package/templates/realtime/instructions.yaml +42 -42
- package/templates/realtime/mcp-servers.yaml +13 -13
- package/templates/soc2/instructions.yaml +41 -41
- package/templates/soc2/mcp-servers.yaml +24 -24
- package/templates/social/instructions.yaml +43 -43
- package/templates/social/mcp-servers.yaml +24 -24
- package/templates/state-machine/instructions.yaml +42 -42
- package/templates/state-machine/mcp-servers.yaml +11 -11
- package/templates/tools-registry.yaml +164 -164
- package/templates/universal/claude-md-blocks/layer-navigation.md +20 -0
- package/templates/universal/claude-md-blocks/nfr-contracts.md +22 -0
- package/templates/universal/hooks.yaml +879 -723
- package/templates/universal/instructions.yaml +1692 -1692
- package/templates/universal/mcp-servers.yaml +50 -50
- package/templates/universal/nfr.yaml +197 -197
- package/templates/universal/reference.yaml +326 -326
- package/templates/universal/review.yaml +204 -204
- package/templates/universal/skills.yaml +262 -262
- package/templates/universal/structure.yaml +67 -67
- package/templates/universal/verification.yaml +416 -416
- package/templates/web-next/hooks.yaml +114 -0
- package/templates/web-next/instructions.yaml +106 -0
- package/templates/web-react/harness/uc-template.spec.ts +35 -0
- package/templates/web-react/hooks.yaml +156 -44
- package/templates/web-react/instructions.yaml +296 -207
- package/templates/web-react/mcp-servers.yaml +20 -20
- package/templates/web-react/nfr.yaml +27 -27
- package/templates/web-react/review.yaml +94 -94
- package/templates/web-react/structure.yaml +46 -46
- package/templates/web-react/verification.yaml +126 -126
- package/templates/web-static/hooks.yaml +85 -0
- package/templates/web-static/instructions.yaml +204 -115
- package/templates/web-static/mcp-servers.yaml +20 -20
- package/templates/web3/instructions.yaml +44 -44
- package/templates/web3/mcp-servers.yaml +11 -11
- package/templates/web3/verification.yaml +159 -159
- package/templates/zero-trust/instructions.yaml +41 -41
- package/templates/zero-trust/mcp-servers.yaml +15 -15
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* extract_adrs_from_history tool handler.
|
|
3
|
+
*
|
|
4
|
+
* Scans git log for architectural decision candidates and emits
|
|
5
|
+
* retroactive ADR stubs into docs/adrs/active/.
|
|
6
|
+
*
|
|
7
|
+
* Uses heuristics:
|
|
8
|
+
* - Commit message keywords: "switch to", "replace", "adopt", "migrate",
|
|
9
|
+
* "chose", "use X instead", "move from", "change from", "refactor to"
|
|
10
|
+
* - Large feat/refactor commits (≥ threshold files changed)
|
|
11
|
+
* - Merge commit PR titles that describe architectural choices
|
|
12
|
+
*
|
|
13
|
+
* Each stub has Status: Retroactive and the commit date/message pre-filled.
|
|
14
|
+
* Practitioners resolve [NEEDS CLARIFICATION] sections after review.
|
|
15
|
+
*
|
|
16
|
+
* Idempotent: skips commits whose slug already exists in docs/adrs/active/.
|
|
17
|
+
*/
|
|
18
|
+
import { existsSync, mkdirSync, readdirSync, writeFileSync } from "node:fs";
|
|
19
|
+
import { join } from "node:path";
|
|
20
|
+
import { execSync } from "node:child_process";
|
|
21
|
+
// ── Architecture decision keywords ───────────────────────────────────
|
|
22
|
+
const ARCH_KEYWORDS = [
|
|
23
|
+
"switch to",
|
|
24
|
+
"switched to",
|
|
25
|
+
"replace",
|
|
26
|
+
"replaced",
|
|
27
|
+
"adopt",
|
|
28
|
+
"adopted",
|
|
29
|
+
"migrate",
|
|
30
|
+
"migrated",
|
|
31
|
+
"migration",
|
|
32
|
+
"chose",
|
|
33
|
+
"choose",
|
|
34
|
+
"move from",
|
|
35
|
+
"moved from",
|
|
36
|
+
"change from",
|
|
37
|
+
"changed from",
|
|
38
|
+
"refactor to",
|
|
39
|
+
"extract",
|
|
40
|
+
"introduce",
|
|
41
|
+
"introduced",
|
|
42
|
+
"use X instead",
|
|
43
|
+
"restructure",
|
|
44
|
+
"redesign",
|
|
45
|
+
"drop",
|
|
46
|
+
"remove and replace",
|
|
47
|
+
"consolidate",
|
|
48
|
+
"split into",
|
|
49
|
+
"breaking change",
|
|
50
|
+
"breaking:",
|
|
51
|
+
"upgrade",
|
|
52
|
+
"downgrade",
|
|
53
|
+
];
|
|
54
|
+
// ── Git helpers ───────────────────────────────────────────────────────
|
|
55
|
+
/**
|
|
56
|
+
* Run git log and return candidates for architectural decisions.
|
|
57
|
+
* Non-throwing — returns empty array when not a git repo or git unavailable.
|
|
58
|
+
*/
|
|
59
|
+
export function findArchDecisionCandidates(projectDir, maxCandidates, largeCommitThreshold, ref) {
|
|
60
|
+
if (!existsSync(join(projectDir, ".git")))
|
|
61
|
+
return [];
|
|
62
|
+
let logOutput;
|
|
63
|
+
try {
|
|
64
|
+
// --no-merges skips merge commits (they're usually redundant with the PR title)
|
|
65
|
+
// We do a second pass with --merges for PR title candidates
|
|
66
|
+
logOutput = execSync(`git log --no-merges --format="%H|%as|%s|%ad" --date=short --shortstat ${ref}`, { cwd: projectDir, encoding: "utf-8", timeout: 15000 });
|
|
67
|
+
}
|
|
68
|
+
catch {
|
|
69
|
+
return [];
|
|
70
|
+
}
|
|
71
|
+
const candidates = [];
|
|
72
|
+
const blocks = logOutput.trim().split(/\n(?=[0-9a-f]{40}\|)/);
|
|
73
|
+
for (const block of blocks) {
|
|
74
|
+
const lines = block.split("\n");
|
|
75
|
+
const headerLine = lines[0];
|
|
76
|
+
if (!headerLine)
|
|
77
|
+
continue;
|
|
78
|
+
const parts = headerLine.split("|");
|
|
79
|
+
const hash = parts[0] ?? "";
|
|
80
|
+
const date = parts[1] ?? "";
|
|
81
|
+
const subject = parts[2] ?? "";
|
|
82
|
+
if (!hash || !date || !subject)
|
|
83
|
+
continue;
|
|
84
|
+
const statsLine = lines.find((l) => l.includes("changed"));
|
|
85
|
+
const filesChanged = statsLine
|
|
86
|
+
? parseInt(/(\d+) files? changed/.exec(statsLine)?.[1] ?? "0", 10)
|
|
87
|
+
: 0;
|
|
88
|
+
const lowerSubject = subject.toLowerCase();
|
|
89
|
+
const matchedKeyword = ARCH_KEYWORDS.find((kw) => lowerSubject.includes(kw.toLowerCase()));
|
|
90
|
+
let reason = "";
|
|
91
|
+
if (matchedKeyword) {
|
|
92
|
+
reason = `keyword: "${matchedKeyword}"`;
|
|
93
|
+
}
|
|
94
|
+
else if (filesChanged >= largeCommitThreshold) {
|
|
95
|
+
reason = `large commit: ${filesChanged} files changed`;
|
|
96
|
+
}
|
|
97
|
+
if (!reason)
|
|
98
|
+
continue;
|
|
99
|
+
candidates.push({ hash, date, subject, filesChanged, reason });
|
|
100
|
+
if (candidates.length >= maxCandidates)
|
|
101
|
+
break;
|
|
102
|
+
}
|
|
103
|
+
return candidates;
|
|
104
|
+
}
|
|
105
|
+
// ── ADR directory helpers ─────────────────────────────────────────────
|
|
106
|
+
function resolveAdrDir(projectDir) {
|
|
107
|
+
const canonical = join(projectDir, "docs", "adrs", "active");
|
|
108
|
+
const legacy = join(projectDir, "docs", "adrs");
|
|
109
|
+
return existsSync(canonical) ? canonical : legacy;
|
|
110
|
+
}
|
|
111
|
+
function nextAdrNumber(adrDir) {
|
|
112
|
+
if (!existsSync(adrDir))
|
|
113
|
+
return 1;
|
|
114
|
+
const existing = readdirSync(adrDir)
|
|
115
|
+
.map((f) => /^(\d{4})-/.exec(f)?.[1])
|
|
116
|
+
.filter((n) => n !== undefined)
|
|
117
|
+
.map((n) => parseInt(n, 10));
|
|
118
|
+
return existing.length > 0 ? Math.max(...existing) + 1 : 1;
|
|
119
|
+
}
|
|
120
|
+
function subjectToSlug(subject) {
|
|
121
|
+
return subject
|
|
122
|
+
.toLowerCase()
|
|
123
|
+
.replace(/[^a-z0-9\s-]/g, "")
|
|
124
|
+
.trim()
|
|
125
|
+
.replace(/[\s_]+/g, "-")
|
|
126
|
+
.replace(/-{2,}/g, "-")
|
|
127
|
+
.slice(0, 55);
|
|
128
|
+
}
|
|
129
|
+
function slugExists(adrDir, slug) {
|
|
130
|
+
if (!existsSync(adrDir))
|
|
131
|
+
return false;
|
|
132
|
+
return readdirSync(adrDir).some((f) => f.includes(slug));
|
|
133
|
+
}
|
|
134
|
+
// ── ADR content builder ───────────────────────────────────────────────
|
|
135
|
+
function renderRetroactiveAdr(number, subject, date, hash, reason) {
|
|
136
|
+
const id = `ADR-${String(number).padStart(4, "0")}`;
|
|
137
|
+
const shortHash = hash.slice(0, 8);
|
|
138
|
+
return [
|
|
139
|
+
`# ${id}: ${subject}`,
|
|
140
|
+
``,
|
|
141
|
+
`**Date:** ${date}`,
|
|
142
|
+
`**Status:** Retroactive`,
|
|
143
|
+
`**Commit:** \`${shortHash}\` — extracted by forgecraft from git history (${reason})`,
|
|
144
|
+
``,
|
|
145
|
+
`## Status`,
|
|
146
|
+
``,
|
|
147
|
+
`Retroactive — decision was made implicitly. Practitioner should:`,
|
|
148
|
+
`1. Verify this is actually a recorded architectural decision (not just a refactor).`,
|
|
149
|
+
`2. Fill in Context / Decision / Alternatives from memory, PR description, or Slack history.`,
|
|
150
|
+
`3. Change status to \`Accepted\` once filled in.`,
|
|
151
|
+
`4. Delete this file if the commit does not represent a real decision.`,
|
|
152
|
+
``,
|
|
153
|
+
`## Context`,
|
|
154
|
+
``,
|
|
155
|
+
`[NEEDS CLARIFICATION: what problem or constraint forced this change? What was the situation before?]`,
|
|
156
|
+
``,
|
|
157
|
+
`**Original commit message:** ${subject}`,
|
|
158
|
+
``,
|
|
159
|
+
`## Decision`,
|
|
160
|
+
``,
|
|
161
|
+
`[NEEDS CLARIFICATION: what was decided and why was this option chosen over alternatives?]`,
|
|
162
|
+
``,
|
|
163
|
+
`## Alternatives Considered`,
|
|
164
|
+
``,
|
|
165
|
+
`- [NEEDS CLARIFICATION: what was the status quo before this change?]`,
|
|
166
|
+
`- [NEEDS CLARIFICATION: what other options were evaluated?]`,
|
|
167
|
+
``,
|
|
168
|
+
`## Consequences`,
|
|
169
|
+
``,
|
|
170
|
+
`[NEEDS CLARIFICATION: what became easier, harder, or newly constrained as a result?]`,
|
|
171
|
+
``,
|
|
172
|
+
`---`,
|
|
173
|
+
``,
|
|
174
|
+
`_This ADR was generated retroactively by ForgeCraft from git history. Resolve all [NEEDS CLARIFICATION] sections before accepting._`,
|
|
175
|
+
].join("\n");
|
|
176
|
+
}
|
|
177
|
+
// ── Handler ───────────────────────────────────────────────────────────
|
|
178
|
+
/**
|
|
179
|
+
* Scan git history for architectural decisions and emit retroactive ADR stubs.
|
|
180
|
+
*
|
|
181
|
+
* @param args - Input with project_dir and optional config
|
|
182
|
+
* @returns MCP tool result with written/skipped counts and candidate list
|
|
183
|
+
*/
|
|
184
|
+
export async function extractAdrsFromHistoryHandler(args) {
|
|
185
|
+
const projectDir = args.project_dir;
|
|
186
|
+
const maxCandidates = args.max_candidates ?? 10;
|
|
187
|
+
const largeCommitThreshold = args.large_commit_threshold ?? 5;
|
|
188
|
+
const ref = args.ref ?? "HEAD";
|
|
189
|
+
if (!existsSync(join(projectDir, ".git"))) {
|
|
190
|
+
return {
|
|
191
|
+
content: [
|
|
192
|
+
{
|
|
193
|
+
type: "text",
|
|
194
|
+
text: "Not a git repository — cannot extract ADR candidates from history.",
|
|
195
|
+
},
|
|
196
|
+
],
|
|
197
|
+
};
|
|
198
|
+
}
|
|
199
|
+
const candidates = findArchDecisionCandidates(projectDir, maxCandidates, largeCommitThreshold, ref);
|
|
200
|
+
if (candidates.length === 0) {
|
|
201
|
+
return {
|
|
202
|
+
content: [
|
|
203
|
+
{
|
|
204
|
+
type: "text",
|
|
205
|
+
text: [
|
|
206
|
+
"## No ADR candidates found",
|
|
207
|
+
"",
|
|
208
|
+
"No commits matching architectural decision keywords were found in recent history.",
|
|
209
|
+
"",
|
|
210
|
+
"You can:",
|
|
211
|
+
`- Lower the large_commit_threshold (current: ${largeCommitThreshold} files) to catch smaller refactors`,
|
|
212
|
+
"- Run with a specific ref: `extract_adrs_from_history --ref main`",
|
|
213
|
+
'- Write ADRs manually: `generate_adr --title "..." --context "..." --decision "..."`',
|
|
214
|
+
].join("\n"),
|
|
215
|
+
},
|
|
216
|
+
],
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
const adrDir = resolveAdrDir(projectDir);
|
|
220
|
+
mkdirSync(adrDir, { recursive: true });
|
|
221
|
+
const written = [];
|
|
222
|
+
const skipped = [];
|
|
223
|
+
for (const candidate of candidates) {
|
|
224
|
+
const slug = subjectToSlug(candidate.subject);
|
|
225
|
+
if (slugExists(adrDir, slug)) {
|
|
226
|
+
skipped.push(candidate.subject);
|
|
227
|
+
continue;
|
|
228
|
+
}
|
|
229
|
+
const number = nextAdrNumber(adrDir);
|
|
230
|
+
const filename = `${String(number).padStart(4, "0")}-${slug}.md`;
|
|
231
|
+
const filePath = join(adrDir, filename);
|
|
232
|
+
const content = renderRetroactiveAdr(number, candidate.subject, candidate.date, candidate.hash, candidate.reason);
|
|
233
|
+
writeFileSync(filePath, content, "utf-8");
|
|
234
|
+
written.push(filename);
|
|
235
|
+
}
|
|
236
|
+
const relativeAdrDir = adrDir.replace(projectDir, "").replace(/^[\\/]/, "");
|
|
237
|
+
const lines = [
|
|
238
|
+
`## Retroactive ADR Extraction`,
|
|
239
|
+
``,
|
|
240
|
+
`Scanned git history (${ref}). Found **${candidates.length}** candidate(s).`,
|
|
241
|
+
``,
|
|
242
|
+
`**Written:** ${written.length}`,
|
|
243
|
+
`**Skipped (already exist):** ${skipped.length}`,
|
|
244
|
+
`**Directory:** \`${relativeAdrDir}\``,
|
|
245
|
+
``,
|
|
246
|
+
];
|
|
247
|
+
if (written.length > 0) {
|
|
248
|
+
lines.push(`### Written ADR stubs`, ``);
|
|
249
|
+
for (const f of written) {
|
|
250
|
+
lines.push(`- \`${relativeAdrDir}/${f}\``);
|
|
251
|
+
}
|
|
252
|
+
lines.push(``);
|
|
253
|
+
lines.push(`> All stubs have **Status: Retroactive** and \`[NEEDS CLARIFICATION]\` markers.`, `> Review each file: fill in Context / Decision / Alternatives / Consequences from memory or PR history, then change status to \`Accepted\`.`, `> Delete any stub that doesn't represent a real architectural decision.`, ``);
|
|
254
|
+
}
|
|
255
|
+
if (skipped.length > 0) {
|
|
256
|
+
lines.push(`### Skipped (slug already in ADR dir)`, ``);
|
|
257
|
+
for (const s of skipped) {
|
|
258
|
+
lines.push(`- ${s}`);
|
|
259
|
+
}
|
|
260
|
+
lines.push(``);
|
|
261
|
+
}
|
|
262
|
+
lines.push(`### How to prioritize`, ``, `1. Decisions that are **still in force** — fill in and accept these first`, `2. Decisions that have since been **superseded** — record briefly, mark \`Superseded\``, `3. Commits that turned out **not** to be decisions — delete the stub`, ``, `Once all retroactive ADRs are processed, \`Auditable\` moves to 2/2.`);
|
|
263
|
+
return { content: [{ type: "text", text: lines.join("\n") }] };
|
|
264
|
+
}
|
|
265
|
+
//# sourceMappingURL=extract-adrs-history.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extract-adrs-history.js","sourceRoot":"","sources":["../../src/tools/extract-adrs-history.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC5E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAuB9C,wEAAwE;AAExE,MAAM,aAAa,GAAG;IACpB,WAAW;IACX,aAAa;IACb,SAAS;IACT,UAAU;IACV,OAAO;IACP,SAAS;IACT,SAAS;IACT,UAAU;IACV,WAAW;IACX,OAAO;IACP,QAAQ;IACR,WAAW;IACX,YAAY;IACZ,aAAa;IACb,cAAc;IACd,aAAa;IACb,SAAS;IACT,WAAW;IACX,YAAY;IACZ,eAAe;IACf,aAAa;IACb,UAAU;IACV,MAAM;IACN,oBAAoB;IACpB,aAAa;IACb,YAAY;IACZ,iBAAiB;IACjB,WAAW;IACX,SAAS;IACT,WAAW;CACZ,CAAC;AAEF,yEAAyE;AAEzE;;;GAGG;AACH,MAAM,UAAU,0BAA0B,CACxC,UAAkB,EAClB,aAAqB,EACrB,oBAA4B,EAC5B,GAAW;IAEX,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IAErD,IAAI,SAAiB,CAAC;IACtB,IAAI,CAAC;QACH,gFAAgF;QAChF,4DAA4D;QAC5D,SAAS,GAAG,QAAQ,CAClB,yEAAyE,GAAG,EAAE,EAC9E,EAAE,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CACvD,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,UAAU,GAAsB,EAAE,CAAC;IACzC,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAE9D,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,CAAC,UAAU;YAAE,SAAS;QAE1B,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACpC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAE/B,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO;YAAE,SAAS;QAEzC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;QAC3D,MAAM,YAAY,GAAG,SAAS;YAC5B,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC;YAClE,CAAC,CAAC,CAAC,CAAC;QAEN,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QAC3C,MAAM,cAAc,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAC/C,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CACxC,CAAC;QAEF,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,GAAG,aAAa,cAAc,GAAG,CAAC;QAC1C,CAAC;aAAM,IAAI,YAAY,IAAI,oBAAoB,EAAE,CAAC;YAChD,MAAM,GAAG,iBAAiB,YAAY,gBAAgB,CAAC;QACzD,CAAC;QAED,IAAI,CAAC,MAAM;YAAE,SAAS;QAEtB,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC;QAC/D,IAAI,UAAU,CAAC,MAAM,IAAI,aAAa;YAAE,MAAM;IAChD,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,yEAAyE;AAEzE,SAAS,aAAa,CAAC,UAAkB;IACvC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAChD,OAAO,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;AACpD,CAAC;AAED,SAAS,aAAa,CAAC,MAAc;IACnC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,CAAC,CAAC;IAClC,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC;SACjC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;SACpC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC;SAC3C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAC/B,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,aAAa,CAAC,OAAe;IACpC,OAAO,OAAO;SACX,WAAW,EAAE;SACb,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;SAC5B,IAAI,EAAE;SACN,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;SACvB,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;SACtB,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,UAAU,CAAC,MAAc,EAAE,IAAY;IAC9C,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IACtC,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,yEAAyE;AAEzE,SAAS,oBAAoB,CAC3B,MAAc,EACd,OAAe,EACf,IAAY,EACZ,IAAY,EACZ,MAAc;IAEd,MAAM,EAAE,GAAG,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;IACpD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEnC,OAAO;QACL,KAAK,EAAE,KAAK,OAAO,EAAE;QACrB,EAAE;QACF,aAAa,IAAI,EAAE;QACnB,yBAAyB;QACzB,iBAAiB,SAAS,kDAAkD,MAAM,GAAG;QACrF,EAAE;QACF,WAAW;QACX,EAAE;QACF,kEAAkE;QAClE,qFAAqF;QACrF,6FAA6F;QAC7F,kDAAkD;QAClD,uEAAuE;QACvE,EAAE;QACF,YAAY;QACZ,EAAE;QACF,sGAAsG;QACtG,EAAE;QACF,gCAAgC,OAAO,EAAE;QACzC,EAAE;QACF,aAAa;QACb,EAAE;QACF,2FAA2F;QAC3F,EAAE;QACF,4BAA4B;QAC5B,EAAE;QACF,sEAAsE;QACtE,6DAA6D;QAC7D,EAAE;QACF,iBAAiB;QACjB,EAAE;QACF,sFAAsF;QACtF,EAAE;QACF,KAAK;QACL,EAAE;QACF,qIAAqI;KACtI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,yEAAyE;AAEzE;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,IAA6B;IAE7B,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC;IACpC,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,IAAI,EAAE,CAAC;IAChD,MAAM,oBAAoB,GAAG,IAAI,CAAC,sBAAsB,IAAI,CAAC,CAAC;IAC9D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,MAAM,CAAC;IAE/B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;QAC1C,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,oEAAoE;iBAC3E;aACF;SACF,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,0BAA0B,CAC3C,UAAU,EACV,aAAa,EACb,oBAAoB,EACpB,GAAG,CACJ,CAAC;IAEF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE;wBACJ,4BAA4B;wBAC5B,EAAE;wBACF,mFAAmF;wBACnF,EAAE;wBACF,UAAU;wBACV,gDAAgD,oBAAoB,oCAAoC;wBACxG,mEAAmE;wBACnE,sFAAsF;qBACvF,CAAC,IAAI,CAAC,IAAI,CAAC;iBACb;aACF;SACF,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IACzC,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEvC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QAE9C,IAAI,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAChC,SAAS;QACX,CAAC;QAED,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;QACrC,MAAM,QAAQ,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,IAAI,KAAK,CAAC;QACjE,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACxC,MAAM,OAAO,GAAG,oBAAoB,CAClC,MAAM,EACN,SAAS,CAAC,OAAO,EACjB,SAAS,CAAC,IAAI,EACd,SAAS,CAAC,IAAI,EACd,SAAS,CAAC,MAAM,CACjB,CAAC;QAEF,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC1C,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzB,CAAC;IAED,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAE5E,MAAM,KAAK,GAAG;QACZ,+BAA+B;QAC/B,EAAE;QACF,wBAAwB,GAAG,cAAc,UAAU,CAAC,MAAM,kBAAkB;QAC5E,EAAE;QACF,gBAAgB,OAAO,CAAC,MAAM,EAAE;QAChC,gCAAgC,OAAO,CAAC,MAAM,EAAE;QAChD,oBAAoB,cAAc,IAAI;QACtC,EAAE;KACH,CAAC;IAEF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAC;QACxC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,OAAO,cAAc,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CACR,iFAAiF,EACjF,6IAA6I,EAC7I,yEAAyE,EACzE,EAAE,CACH,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,uCAAuC,EAAE,EAAE,CAAC,CAAC;QACxD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACvB,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,IAAI,CACR,uBAAuB,EACvB,EAAE,EACF,2EAA2E,EAC3E,wFAAwF,EACxF,sEAAsE,EACtE,EAAE,EACF,sEAAsE,CACvE,CAAC;IAEF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;AACjE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forgecraft-dispatch-extended.d.ts","sourceRoot":"","sources":["../../src/tools/forgecraft-dispatch-extended.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"forgecraft-dispatch-extended.d.ts","sourceRoot":"","sources":["../../src/tools/forgecraft-dispatch-extended.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAiB7D,OAAO,EAEL,WAAW,EAEZ,MAAM,kCAAkC,CAAC;AAI1C;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,UAAU,CAAC,CAgVrB;AAED,YAAY,EAAE,GAAG,EAAE,CAAC;AACpB,OAAO,EAAE,WAAW,EAAE,CAAC"}
|
|
@@ -12,6 +12,8 @@ import { generateRoadmapHandler } from "./generate-roadmap.js";
|
|
|
12
12
|
import { cntAddNodeHandler } from "./cnt-add-node.js";
|
|
13
13
|
import { startHardeningHandler } from "./start-hardening.js";
|
|
14
14
|
import { requireParam, errorResult, unknownActionResult, } from "./forgecraft-dispatch-helpers.js";
|
|
15
|
+
import { generateHarnessHandler } from "./generate-harness.js";
|
|
16
|
+
import { runHarnessHandler } from "./run-harness.js";
|
|
15
17
|
/**
|
|
16
18
|
* Dispatch governance, generation, and hardening actions.
|
|
17
19
|
* Returns an error result for unrecognized actions.
|
|
@@ -31,6 +33,25 @@ export async function dispatchExtendedAction(action, args) {
|
|
|
31
33
|
alternatives: args.adr_alternatives,
|
|
32
34
|
consequences: args.adr_consequences,
|
|
33
35
|
});
|
|
36
|
+
case "cnt_add_routing": {
|
|
37
|
+
const { cntAddRoutingHandler } = await import("./cnt-add-routing.js");
|
|
38
|
+
return cntAddRoutingHandler({
|
|
39
|
+
project_dir: requireParam(args.project_dir, "project_dir", "cnt_add_routing"),
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
case "generate_decision": {
|
|
43
|
+
const { generateDecisionHandler } = await import("./generate-decision.js");
|
|
44
|
+
return generateDecisionHandler({
|
|
45
|
+
project_dir: requireParam(args.project_dir, "project_dir", "generate_decision"),
|
|
46
|
+
title: requireParam(args.decision_title, "decision_title", "generate_decision"),
|
|
47
|
+
trigger: args.decision_trigger,
|
|
48
|
+
root_cause: args.decision_root_cause,
|
|
49
|
+
fix: args.decision_fix,
|
|
50
|
+
regression_test: args.decision_regression_test,
|
|
51
|
+
chronicle_session_id: args.decision_chronicle_session_id,
|
|
52
|
+
related_adr: args.decision_related_adr,
|
|
53
|
+
});
|
|
54
|
+
}
|
|
34
55
|
case "contribute_gate": {
|
|
35
56
|
const result = await contributeGates({
|
|
36
57
|
projectRoot: requireParam(args.project_dir, "project_dir", "contribute_gate"),
|
|
@@ -77,6 +98,122 @@ export async function dispatchExtendedAction(action, args) {
|
|
|
77
98
|
});
|
|
78
99
|
case "start_hardening":
|
|
79
100
|
return startHardeningHandler(args);
|
|
101
|
+
case "generate_harness":
|
|
102
|
+
return generateHarnessHandler({
|
|
103
|
+
project_dir: requireParam(args.project_dir, "project_dir", "generate_harness"),
|
|
104
|
+
uc_ids: args.harness_uc_ids,
|
|
105
|
+
force: args.force,
|
|
106
|
+
});
|
|
107
|
+
case "run_harness":
|
|
108
|
+
return runHarnessHandler({
|
|
109
|
+
project_dir: requireParam(args.project_dir, "project_dir", "run_harness"),
|
|
110
|
+
uc_ids: args.harness_uc_ids,
|
|
111
|
+
timeout_ms: args.harness_timeout_ms,
|
|
112
|
+
});
|
|
113
|
+
case "generate_env_probe": {
|
|
114
|
+
const { generateEnvProbeHandler } = await import("./generate-env-probe.js");
|
|
115
|
+
return generateEnvProbeHandler(args);
|
|
116
|
+
}
|
|
117
|
+
case "run_env_probe": {
|
|
118
|
+
const { runEnvProbeHandler } = await import("./run-env-probe.js");
|
|
119
|
+
return runEnvProbeHandler(args);
|
|
120
|
+
}
|
|
121
|
+
case "generate_slo_probe": {
|
|
122
|
+
const { generateSloProbeHandler } = await import("./generate-slo-probe.js");
|
|
123
|
+
return generateSloProbeHandler(args);
|
|
124
|
+
}
|
|
125
|
+
case "run_slo_probe": {
|
|
126
|
+
const { runSloProbeHandler } = await import("./run-slo-probe.js");
|
|
127
|
+
return runSloProbeHandler(args);
|
|
128
|
+
}
|
|
129
|
+
case "propose_session": {
|
|
130
|
+
const { proposeSessionHandler } = await import("./propose-session.js");
|
|
131
|
+
return proposeSessionHandler(args);
|
|
132
|
+
}
|
|
133
|
+
case "check_spec_consistency": {
|
|
134
|
+
const { checkSpecConsistencyHandler } = await import("./check-spec-consistency.js");
|
|
135
|
+
return checkSpecConsistencyHandler(args);
|
|
136
|
+
}
|
|
137
|
+
case "change_request": {
|
|
138
|
+
const { changeRequestHandler } = await import("./change-request.js");
|
|
139
|
+
return changeRequestHandler({
|
|
140
|
+
project_dir: requireParam(args.project_dir, "project_dir", "change_request"),
|
|
141
|
+
title: requireParam(args.change_title, "change_title", "change_request"),
|
|
142
|
+
description: requireParam(args.change_description, "change_description", "change_request"),
|
|
143
|
+
type: requireParam(args.change_type, "change_type", "change_request"),
|
|
144
|
+
breaking: args.change_breaking,
|
|
145
|
+
breaking_details: args.change_breaking_details,
|
|
146
|
+
supersedes_adr: args.change_supersedes_adr,
|
|
147
|
+
affected_artifacts: args.change_affected_artifacts,
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
case "list_changes": {
|
|
151
|
+
const { listChangesHandler } = await import("./change-request.js");
|
|
152
|
+
return listChangesHandler({
|
|
153
|
+
project_dir: requireParam(args.project_dir, "project_dir", "list_changes"),
|
|
154
|
+
status: args.changes_status_filter,
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
case "setup_monitoring": {
|
|
158
|
+
const { setupMonitoringHandler } = await import("./setup-monitoring.js");
|
|
159
|
+
return setupMonitoringHandler({
|
|
160
|
+
project_dir: requireParam(args.project_dir, "project_dir", "setup_monitoring"),
|
|
161
|
+
project_name: args.project_name,
|
|
162
|
+
force: args.monitoring_force,
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
case "check_t4": {
|
|
166
|
+
const { checkT4Handler } = await import("./check-t4.js");
|
|
167
|
+
return checkT4Handler({
|
|
168
|
+
project_dir: requireParam(args.project_dir, "project_dir", "check_t4"),
|
|
169
|
+
acknowledge: args.t4_acknowledge,
|
|
170
|
+
resolve: args.t4_resolve,
|
|
171
|
+
show_resolved: args.t4_show_resolved,
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
case "extract_adrs_from_history": {
|
|
175
|
+
const { extractAdrsFromHistoryHandler } = await import("./extract-adrs-history.js");
|
|
176
|
+
return extractAdrsFromHistoryHandler({
|
|
177
|
+
project_dir: requireParam(args.project_dir, "project_dir", "extract_adrs_from_history"),
|
|
178
|
+
max_candidates: args.adrs_max_candidates,
|
|
179
|
+
large_commit_threshold: args.adrs_large_commit_threshold,
|
|
180
|
+
ref: args.adrs_ref,
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
case "extract_adrs_from_spec": {
|
|
184
|
+
const { extractAdrsFromSpecHandler } = await import("./extract-adrs-from-spec.js");
|
|
185
|
+
return extractAdrsFromSpecHandler({
|
|
186
|
+
project_dir: requireParam(args.project_dir, "project_dir", "extract_adrs_from_spec"),
|
|
187
|
+
spec_path: args.spec_path,
|
|
188
|
+
max_adrs: args.adrs_from_spec_max,
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
case "review_stubs": {
|
|
192
|
+
const { reviewStubsHandler } = await import("./review-stubs.js");
|
|
193
|
+
return reviewStubsHandler({
|
|
194
|
+
project_dir: requireParam(args.project_dir, "project_dir", "review_stubs"),
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
case "check_derivation_chain": {
|
|
198
|
+
const { checkDerivationChainHandler } = await import("./check-derivation-chain.js");
|
|
199
|
+
return checkDerivationChainHandler({
|
|
200
|
+
project_dir: requireParam(args.project_dir, "project_dir", "check_derivation_chain"),
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
case "score_rubric": {
|
|
204
|
+
const { scoreRubricHandler } = await import("./score-rubric.js");
|
|
205
|
+
return scoreRubricHandler({
|
|
206
|
+
project_dir: requireParam(args.project_dir, "project_dir", "score_rubric"),
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
case "analyze_harness": {
|
|
210
|
+
const { analyzeHarnessHandler } = await import("./analyze-harness.js");
|
|
211
|
+
return analyzeHarnessHandler({
|
|
212
|
+
project_dir: requireParam(args.project_dir, "project_dir", "analyze_harness"),
|
|
213
|
+
submit_issues: args.analyze_submit_issues,
|
|
214
|
+
force_fetch: args.analyze_force_fetch,
|
|
215
|
+
});
|
|
216
|
+
}
|
|
80
217
|
default:
|
|
81
218
|
return unknownActionResult(action);
|
|
82
219
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forgecraft-dispatch-extended.js","sourceRoot":"","sources":["../../src/tools/forgecraft-dispatch-extended.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"forgecraft-dispatch-extended.js","sourceRoot":"","sources":["../../src/tools/forgecraft-dispatch-extended.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forgecraft-dispatch.d.ts","sourceRoot":"","sources":["../../src/tools/forgecraft-dispatch.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAO,UAAU,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"forgecraft-dispatch.d.ts","sourceRoot":"","sources":["../../src/tools/forgecraft-dispatch.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAO,UAAU,EAAE,MAAM,oBAAoB,CAAC;AA4B1D,OAAO,KAAK,EAAE,cAAc,EAAU,MAAM,wBAAwB,CAAC;AAQrE,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,cAAc,GACnB,OAAO,CAAC,UAAU,CAAC,CAqRrB"}
|
|
@@ -26,6 +26,8 @@ import { generateSessionPromptHandler } from "./generate-session-prompt.js";
|
|
|
26
26
|
import { getVerificationStrategyHandler } from "./get-verification-strategy.js";
|
|
27
27
|
import { recordVerificationHandler, getVerificationStatusHandler, } from "./verification-state.js";
|
|
28
28
|
import { setupProjectHandler } from "./setup-project.js";
|
|
29
|
+
import { layerStatusHandler } from "./layer-status.js";
|
|
30
|
+
import { adviseSessionHandler } from "./advise-session.js";
|
|
29
31
|
import { requireParam, dispatchList, dispatchGetReference, } from "./forgecraft-dispatch-helpers.js";
|
|
30
32
|
import { dispatchExtendedAction } from "./forgecraft-dispatch-extended.js";
|
|
31
33
|
export async function dispatchForgecraft(args) {
|
|
@@ -43,6 +45,11 @@ export async function dispatchForgecraft(args) {
|
|
|
43
45
|
use_playwright: args.use_playwright,
|
|
44
46
|
tool_sample_split: args.tool_sample_split,
|
|
45
47
|
project_type_override: args.project_type_override,
|
|
48
|
+
problem_statement: args.problem_statement,
|
|
49
|
+
primary_users: args.primary_users,
|
|
50
|
+
success_criteria: args.success_criteria,
|
|
51
|
+
spec_file_confirmed: args.spec_file_confirmed,
|
|
52
|
+
use_cases: args.use_cases,
|
|
46
53
|
tags: args.tags,
|
|
47
54
|
});
|
|
48
55
|
case "list":
|
|
@@ -194,6 +201,15 @@ export async function dispatchForgecraft(args) {
|
|
|
194
201
|
tags: args.tags,
|
|
195
202
|
show_pending_only: args.show_pending_only ?? false,
|
|
196
203
|
});
|
|
204
|
+
case "layer_status":
|
|
205
|
+
return layerStatusHandler({
|
|
206
|
+
project_dir: requireParam(args.project_dir, "project_dir", "layer_status"),
|
|
207
|
+
});
|
|
208
|
+
case "advise_session":
|
|
209
|
+
return adviseSessionHandler({
|
|
210
|
+
project_dir: requireParam(args.project_dir, "project_dir", "advise_session"),
|
|
211
|
+
max_items: typeof args.max_items === "number" ? args.max_items : undefined,
|
|
212
|
+
});
|
|
197
213
|
default:
|
|
198
214
|
return dispatchExtendedAction(action, args);
|
|
199
215
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forgecraft-dispatch.js","sourceRoot":"","sources":["../../src/tools/forgecraft-dispatch.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,2BAA2B,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,EAAE,8BAA8B,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,EACL,yBAAyB,EACzB,4BAA4B,GAC7B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"forgecraft-dispatch.js","sourceRoot":"","sources":["../../src/tools/forgecraft-dispatch.ts"],"names":[],"mappings":"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"}
|