@warpgogol/forge 0.3.1
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/AGENTS.md +149 -0
- package/README.md +164 -0
- package/bin/cli.js +16 -0
- package/dist/bin/cli.d.ts +3 -0
- package/dist/bin/cli.d.ts.map +1 -0
- package/dist/bin/cli.js +265 -0
- package/dist/bin/cli.js.map +1 -0
- package/dist/os/adr/adr.module.d.ts +3 -0
- package/dist/os/adr/adr.module.d.ts.map +1 -0
- package/dist/os/adr/adr.module.js +112 -0
- package/dist/os/adr/adr.module.js.map +1 -0
- package/dist/os/adr/frontmatter-io.d.ts +11 -0
- package/dist/os/adr/frontmatter-io.d.ts.map +1 -0
- package/dist/os/adr/frontmatter-io.js +64 -0
- package/dist/os/adr/frontmatter-io.js.map +1 -0
- package/dist/os/adr/handlers/archive.d.ts +24 -0
- package/dist/os/adr/handlers/archive.d.ts.map +1 -0
- package/dist/os/adr/handlers/archive.js +162 -0
- package/dist/os/adr/handlers/archive.js.map +1 -0
- package/dist/os/adr/handlers/list-create.d.ts +5 -0
- package/dist/os/adr/handlers/list-create.d.ts.map +1 -0
- package/dist/os/adr/handlers/list-create.js +165 -0
- package/dist/os/adr/handlers/list-create.js.map +1 -0
- package/dist/os/adr/handlers/validate.d.ts +4 -0
- package/dist/os/adr/handlers/validate.d.ts.map +1 -0
- package/dist/os/adr/handlers/validate.js +219 -0
- package/dist/os/adr/handlers/validate.js.map +1 -0
- package/dist/os/adr/index.d.ts +8 -0
- package/dist/os/adr/index.d.ts.map +1 -0
- package/dist/os/adr/index.js +18 -0
- package/dist/os/adr/index.js.map +1 -0
- package/dist/os/adr/types.d.ts +59 -0
- package/dist/os/adr/types.d.ts.map +1 -0
- package/dist/os/adr/types.js +54 -0
- package/dist/os/adr/types.js.map +1 -0
- package/dist/os/audit/audit.module.d.ts +3 -0
- package/dist/os/audit/audit.module.d.ts.map +1 -0
- package/dist/os/audit/audit.module.js +44 -0
- package/dist/os/audit/audit.module.js.map +1 -0
- package/dist/os/audit/frontmatter-io.d.ts +12 -0
- package/dist/os/audit/frontmatter-io.d.ts.map +1 -0
- package/dist/os/audit/frontmatter-io.js +73 -0
- package/dist/os/audit/frontmatter-io.js.map +1 -0
- package/dist/os/audit/handlers/archive.d.ts +4 -0
- package/dist/os/audit/handlers/archive.d.ts.map +1 -0
- package/dist/os/audit/handlers/archive.js +167 -0
- package/dist/os/audit/handlers/archive.js.map +1 -0
- package/dist/os/audit/index.d.ts +6 -0
- package/dist/os/audit/index.d.ts.map +1 -0
- package/dist/os/audit/index.js +16 -0
- package/dist/os/audit/index.js.map +1 -0
- package/dist/os/audit/types.d.ts +12 -0
- package/dist/os/audit/types.d.ts.map +1 -0
- package/dist/os/audit/types.js +17 -0
- package/dist/os/audit/types.js.map +1 -0
- package/dist/os/compass/compass.module.d.ts +3 -0
- package/dist/os/compass/compass.module.d.ts.map +1 -0
- package/dist/os/compass/compass.module.js +162 -0
- package/dist/os/compass/compass.module.js.map +1 -0
- package/dist/os/compass/handlers/compass-audit-handler.d.ts +36 -0
- package/dist/os/compass/handlers/compass-audit-handler.d.ts.map +1 -0
- package/dist/os/compass/handlers/compass-audit-handler.js +238 -0
- package/dist/os/compass/handlers/compass-audit-handler.js.map +1 -0
- package/dist/os/compass/handlers/compass-change-summary-handler.d.ts +19 -0
- package/dist/os/compass/handlers/compass-change-summary-handler.d.ts.map +1 -0
- package/dist/os/compass/handlers/compass-change-summary-handler.js +205 -0
- package/dist/os/compass/handlers/compass-change-summary-handler.js.map +1 -0
- package/dist/os/compass/handlers/compass-inventory-handler.d.ts +28 -0
- package/dist/os/compass/handlers/compass-inventory-handler.d.ts.map +1 -0
- package/dist/os/compass/handlers/compass-inventory-handler.js +213 -0
- package/dist/os/compass/handlers/compass-inventory-handler.js.map +1 -0
- package/dist/os/compass/handlers/compass-inventory.d.ts +30 -0
- package/dist/os/compass/handlers/compass-inventory.d.ts.map +1 -0
- package/dist/os/compass/handlers/compass-inventory.js +418 -0
- package/dist/os/compass/handlers/compass-inventory.js.map +1 -0
- package/dist/os/compass/handlers/git-revision.d.ts +8 -0
- package/dist/os/compass/handlers/git-revision.d.ts.map +1 -0
- package/dist/os/compass/handlers/git-revision.js +99 -0
- package/dist/os/compass/handlers/git-revision.js.map +1 -0
- package/dist/os/compass/handlers/resolve-scan-root.d.ts +3 -0
- package/dist/os/compass/handlers/resolve-scan-root.d.ts.map +1 -0
- package/dist/os/compass/handlers/resolve-scan-root.js +41 -0
- package/dist/os/compass/handlers/resolve-scan-root.js.map +1 -0
- package/dist/os/compass/index.d.ts +8 -0
- package/dist/os/compass/index.d.ts.map +1 -0
- package/dist/os/compass/index.js +19 -0
- package/dist/os/compass/index.js.map +1 -0
- package/dist/os/core/core.module.d.ts +3 -0
- package/dist/os/core/core.module.d.ts.map +1 -0
- package/dist/os/core/core.module.js +318 -0
- package/dist/os/core/core.module.js.map +1 -0
- package/dist/os/core/index.d.ts +2 -0
- package/dist/os/core/index.d.ts.map +1 -0
- package/dist/os/core/index.js +13 -0
- package/dist/os/core/index.js.map +1 -0
- package/dist/os/mission/handlers/archive.d.ts +4 -0
- package/dist/os/mission/handlers/archive.d.ts.map +1 -0
- package/dist/os/mission/handlers/archive.js +209 -0
- package/dist/os/mission/handlers/archive.js.map +1 -0
- package/dist/os/mission/index.d.ts +2 -0
- package/dist/os/mission/index.d.ts.map +1 -0
- package/dist/os/mission/index.js +2 -0
- package/dist/os/mission/index.js.map +1 -0
- package/dist/os/mission/mission.module.d.ts +3 -0
- package/dist/os/mission/mission.module.d.ts.map +1 -0
- package/dist/os/mission/mission.module.js +44 -0
- package/dist/os/mission/mission.module.js.map +1 -0
- package/dist/os/mission/types.d.ts +23 -0
- package/dist/os/mission/types.d.ts.map +1 -0
- package/dist/os/mission/types.js +18 -0
- package/dist/os/mission/types.js.map +1 -0
- package/dist/os/naming/index.d.ts +3 -0
- package/dist/os/naming/index.d.ts.map +1 -0
- package/dist/os/naming/index.js +14 -0
- package/dist/os/naming/index.js.map +1 -0
- package/dist/os/naming/naming-convention.d.ts +25 -0
- package/dist/os/naming/naming-convention.d.ts.map +1 -0
- package/dist/os/naming/naming-convention.js +324 -0
- package/dist/os/naming/naming-convention.js.map +1 -0
- package/dist/os/naming/naming.module.d.ts +3 -0
- package/dist/os/naming/naming.module.d.ts.map +1 -0
- package/dist/os/naming/naming.module.js +33 -0
- package/dist/os/naming/naming.module.js.map +1 -0
- package/dist/os/plan/frontmatter-io.d.ts +12 -0
- package/dist/os/plan/frontmatter-io.d.ts.map +1 -0
- package/dist/os/plan/frontmatter-io.js +71 -0
- package/dist/os/plan/frontmatter-io.js.map +1 -0
- package/dist/os/plan/handlers/archive.d.ts +4 -0
- package/dist/os/plan/handlers/archive.d.ts.map +1 -0
- package/dist/os/plan/handlers/archive.js +166 -0
- package/dist/os/plan/handlers/archive.js.map +1 -0
- package/dist/os/plan/index.d.ts +6 -0
- package/dist/os/plan/index.d.ts.map +1 -0
- package/dist/os/plan/index.js +16 -0
- package/dist/os/plan/index.js.map +1 -0
- package/dist/os/plan/plan.module.d.ts +3 -0
- package/dist/os/plan/plan.module.d.ts.map +1 -0
- package/dist/os/plan/plan.module.js +44 -0
- package/dist/os/plan/plan.module.js.map +1 -0
- package/dist/os/plan/types.d.ts +12 -0
- package/dist/os/plan/types.d.ts.map +1 -0
- package/dist/os/plan/types.js +17 -0
- package/dist/os/plan/types.js.map +1 -0
- package/dist/os/rfc/acceptance.d.ts +15 -0
- package/dist/os/rfc/acceptance.d.ts.map +1 -0
- package/dist/os/rfc/acceptance.js +290 -0
- package/dist/os/rfc/acceptance.js.map +1 -0
- package/dist/os/rfc/decision-log.d.ts +6 -0
- package/dist/os/rfc/decision-log.d.ts.map +1 -0
- package/dist/os/rfc/decision-log.js +269 -0
- package/dist/os/rfc/decision-log.js.map +1 -0
- package/dist/os/rfc/dna-trace.d.ts +27 -0
- package/dist/os/rfc/dna-trace.d.ts.map +1 -0
- package/dist/os/rfc/dna-trace.js +214 -0
- package/dist/os/rfc/dna-trace.js.map +1 -0
- package/dist/os/rfc/frontmatter-io.d.ts +14 -0
- package/dist/os/rfc/frontmatter-io.d.ts.map +1 -0
- package/dist/os/rfc/frontmatter-io.js +98 -0
- package/dist/os/rfc/frontmatter-io.js.map +1 -0
- package/dist/os/rfc/handlers/archive.d.ts +24 -0
- package/dist/os/rfc/handlers/archive.d.ts.map +1 -0
- package/dist/os/rfc/handlers/archive.js +161 -0
- package/dist/os/rfc/handlers/archive.js.map +1 -0
- package/dist/os/rfc/handlers/check.d.ts +4 -0
- package/dist/os/rfc/handlers/check.d.ts.map +1 -0
- package/dist/os/rfc/handlers/check.js +195 -0
- package/dist/os/rfc/handlers/check.js.map +1 -0
- package/dist/os/rfc/handlers/implement-stamp.d.ts +4 -0
- package/dist/os/rfc/handlers/implement-stamp.d.ts.map +1 -0
- package/dist/os/rfc/handlers/implement-stamp.js +334 -0
- package/dist/os/rfc/handlers/implement-stamp.js.map +1 -0
- package/dist/os/rfc/handlers/index-graph.d.ts +13 -0
- package/dist/os/rfc/handlers/index-graph.d.ts.map +1 -0
- package/dist/os/rfc/handlers/index-graph.js +189 -0
- package/dist/os/rfc/handlers/index-graph.js.map +1 -0
- package/dist/os/rfc/handlers/lifecycle.d.ts +13 -0
- package/dist/os/rfc/handlers/lifecycle.d.ts.map +1 -0
- package/dist/os/rfc/handlers/lifecycle.js +150 -0
- package/dist/os/rfc/handlers/lifecycle.js.map +1 -0
- package/dist/os/rfc/handlers/list-create.d.ts +6 -0
- package/dist/os/rfc/handlers/list-create.d.ts.map +1 -0
- package/dist/os/rfc/handlers/list-create.js +235 -0
- package/dist/os/rfc/handlers/list-create.js.map +1 -0
- package/dist/os/rfc/handlers/pipeline-status.d.ts +26 -0
- package/dist/os/rfc/handlers/pipeline-status.d.ts.map +1 -0
- package/dist/os/rfc/handlers/pipeline-status.js +124 -0
- package/dist/os/rfc/handlers/pipeline-status.js.map +1 -0
- package/dist/os/rfc/handlers/shared.d.ts +22 -0
- package/dist/os/rfc/handlers/shared.d.ts.map +1 -0
- package/dist/os/rfc/handlers/shared.js +99 -0
- package/dist/os/rfc/handlers/shared.js.map +1 -0
- package/dist/os/rfc/handlers/supersede-propose.d.ts +4 -0
- package/dist/os/rfc/handlers/supersede-propose.d.ts.map +1 -0
- package/dist/os/rfc/handlers/supersede-propose.js +200 -0
- package/dist/os/rfc/handlers/supersede-propose.js.map +1 -0
- package/dist/os/rfc/handlers/validate-rules.d.ts +29 -0
- package/dist/os/rfc/handlers/validate-rules.d.ts.map +1 -0
- package/dist/os/rfc/handlers/validate-rules.js +461 -0
- package/dist/os/rfc/handlers/validate-rules.js.map +1 -0
- package/dist/os/rfc/handlers/validate.d.ts +4 -0
- package/dist/os/rfc/handlers/validate.d.ts.map +1 -0
- package/dist/os/rfc/handlers/validate.js +101 -0
- package/dist/os/rfc/handlers/validate.js.map +1 -0
- package/dist/os/rfc/handlers.d.ts +7 -0
- package/dist/os/rfc/handlers.d.ts.map +1 -0
- package/dist/os/rfc/handlers.js +19 -0
- package/dist/os/rfc/handlers.js.map +1 -0
- package/dist/os/rfc/index.d.ts +18 -0
- package/dist/os/rfc/index.d.ts.map +1 -0
- package/dist/os/rfc/index.js +24 -0
- package/dist/os/rfc/index.js.map +1 -0
- package/dist/os/rfc/rfc.module.d.ts +3 -0
- package/dist/os/rfc/rfc.module.d.ts.map +1 -0
- package/dist/os/rfc/rfc.module.js +355 -0
- package/dist/os/rfc/rfc.module.js.map +1 -0
- package/dist/os/rfc/types.d.ts +448 -0
- package/dist/os/rfc/types.d.ts.map +1 -0
- package/dist/os/rfc/types.js +95 -0
- package/dist/os/rfc/types.js.map +1 -0
- package/dist/os/rfc/verification-evidence.d.ts +8 -0
- package/dist/os/rfc/verification-evidence.d.ts.map +1 -0
- package/dist/os/rfc/verification-evidence.js +182 -0
- package/dist/os/rfc/verification-evidence.js.map +1 -0
- package/dist/os/session/atif-parser.d.ts +29 -0
- package/dist/os/session/atif-parser.d.ts.map +1 -0
- package/dist/os/session/atif-parser.js +138 -0
- package/dist/os/session/atif-parser.js.map +1 -0
- package/dist/os/session/frontmatter-io.d.ts +31 -0
- package/dist/os/session/frontmatter-io.d.ts.map +1 -0
- package/dist/os/session/frontmatter-io.js +146 -0
- package/dist/os/session/frontmatter-io.js.map +1 -0
- package/dist/os/session/handlers/archive.d.ts +4 -0
- package/dist/os/session/handlers/archive.d.ts.map +1 -0
- package/dist/os/session/handlers/archive.js +209 -0
- package/dist/os/session/handlers/archive.js.map +1 -0
- package/dist/os/session/handlers/list.d.ts +4 -0
- package/dist/os/session/handlers/list.d.ts.map +1 -0
- package/dist/os/session/handlers/list.js +147 -0
- package/dist/os/session/handlers/list.js.map +1 -0
- package/dist/os/session/handlers/save.d.ts +6 -0
- package/dist/os/session/handlers/save.d.ts.map +1 -0
- package/dist/os/session/handlers/save.js +285 -0
- package/dist/os/session/handlers/save.js.map +1 -0
- package/dist/os/session/handlers/validate.d.ts +4 -0
- package/dist/os/session/handlers/validate.d.ts.map +1 -0
- package/dist/os/session/handlers/validate.js +188 -0
- package/dist/os/session/handlers/validate.js.map +1 -0
- package/dist/os/session/index.d.ts +9 -0
- package/dist/os/session/index.d.ts.map +1 -0
- package/dist/os/session/index.js +20 -0
- package/dist/os/session/index.js.map +1 -0
- package/dist/os/session/session.module.d.ts +3 -0
- package/dist/os/session/session.module.d.ts.map +1 -0
- package/dist/os/session/session.module.js +113 -0
- package/dist/os/session/session.module.js.map +1 -0
- package/dist/os/session/types.d.ts +101 -0
- package/dist/os/session/types.d.ts.map +1 -0
- package/dist/os/session/types.js +52 -0
- package/dist/os/session/types.js.map +1 -0
- package/dist/os/spec/spec-materialize.d.ts +21 -0
- package/dist/os/spec/spec-materialize.d.ts.map +1 -0
- package/dist/os/spec/spec-materialize.js +342 -0
- package/dist/os/spec/spec-materialize.js.map +1 -0
- package/dist/os/spec/spec-schema.d.ts +132 -0
- package/dist/os/spec/spec-schema.d.ts.map +1 -0
- package/dist/os/spec/spec-schema.js +118 -0
- package/dist/os/spec/spec-schema.js.map +1 -0
- package/dist/os/spec/spec-status.d.ts +33 -0
- package/dist/os/spec/spec-status.d.ts.map +1 -0
- package/dist/os/spec/spec-status.js +222 -0
- package/dist/os/spec/spec-status.js.map +1 -0
- package/dist/os/spec/spec-validate.d.ts +4 -0
- package/dist/os/spec/spec-validate.d.ts.map +1 -0
- package/dist/os/spec/spec-validate.js +435 -0
- package/dist/os/spec/spec-validate.js.map +1 -0
- package/dist/os/spec/spec.module.d.ts +3 -0
- package/dist/os/spec/spec.module.d.ts.map +1 -0
- package/dist/os/spec/spec.module.js +67 -0
- package/dist/os/spec/spec.module.js.map +1 -0
- package/dist/os/werkstatt/handlers/lock.d.ts +10 -0
- package/dist/os/werkstatt/handlers/lock.d.ts.map +1 -0
- package/dist/os/werkstatt/handlers/lock.js +127 -0
- package/dist/os/werkstatt/handlers/lock.js.map +1 -0
- package/dist/os/werkstatt/handlers/schema.d.ts +32 -0
- package/dist/os/werkstatt/handlers/schema.d.ts.map +1 -0
- package/dist/os/werkstatt/handlers/schema.js +41 -0
- package/dist/os/werkstatt/handlers/schema.js.map +1 -0
- package/dist/os/werkstatt/handlers/werkstatt-lock-recover.d.ts +15 -0
- package/dist/os/werkstatt/handlers/werkstatt-lock-recover.d.ts.map +1 -0
- package/dist/os/werkstatt/handlers/werkstatt-lock-recover.js +142 -0
- package/dist/os/werkstatt/handlers/werkstatt-lock-recover.js.map +1 -0
- package/dist/os/werkstatt/handlers/werkstatt-lock-status.d.ts +18 -0
- package/dist/os/werkstatt/handlers/werkstatt-lock-status.d.ts.map +1 -0
- package/dist/os/werkstatt/handlers/werkstatt-lock-status.js +43 -0
- package/dist/os/werkstatt/handlers/werkstatt-lock-status.js.map +1 -0
- package/dist/os/werkstatt/handlers/werkstatt-operation-validate.d.ts +11 -0
- package/dist/os/werkstatt/handlers/werkstatt-operation-validate.d.ts.map +1 -0
- package/dist/os/werkstatt/handlers/werkstatt-operation-validate.js +79 -0
- package/dist/os/werkstatt/handlers/werkstatt-operation-validate.js.map +1 -0
- package/dist/os/werkstatt/index.d.ts +7 -0
- package/dist/os/werkstatt/index.d.ts.map +1 -0
- package/dist/os/werkstatt/index.js +18 -0
- package/dist/os/werkstatt/index.js.map +1 -0
- package/dist/os/werkstatt/werkstatt.module.d.ts +3 -0
- package/dist/os/werkstatt/werkstatt.module.d.ts.map +1 -0
- package/dist/os/werkstatt/werkstatt.module.js +58 -0
- package/dist/os/werkstatt/werkstatt.module.js.map +1 -0
- package/dist/os/workflow/handlers.d.ts +12 -0
- package/dist/os/workflow/handlers.d.ts.map +1 -0
- package/dist/os/workflow/handlers.js +254 -0
- package/dist/os/workflow/handlers.js.map +1 -0
- package/dist/os/workflow/index.d.ts +4 -0
- package/dist/os/workflow/index.d.ts.map +1 -0
- package/dist/os/workflow/index.js +18 -0
- package/dist/os/workflow/index.js.map +1 -0
- package/dist/os/workflow/types.d.ts +69 -0
- package/dist/os/workflow/types.d.ts.map +1 -0
- package/dist/os/workflow/types.js +23 -0
- package/dist/os/workflow/types.js.map +1 -0
- package/dist/os/workflow/workflow.module.d.ts +3 -0
- package/dist/os/workflow/workflow.module.d.ts.map +1 -0
- package/dist/os/workflow/workflow.module.js +48 -0
- package/dist/os/workflow/workflow.module.js.map +1 -0
- package/dist/src/cli-output.d.ts +5 -0
- package/dist/src/cli-output.d.ts.map +1 -0
- package/dist/src/cli-output.js +52 -0
- package/dist/src/cli-output.js.map +1 -0
- package/dist/src/config/forge-config.d.ts +170 -0
- package/dist/src/config/forge-config.d.ts.map +1 -0
- package/dist/src/config/forge-config.js +259 -0
- package/dist/src/config/forge-config.js.map +1 -0
- package/dist/src/forge-module.d.ts +16 -0
- package/dist/src/forge-module.d.ts.map +1 -0
- package/dist/src/forge-module.js +15 -0
- package/dist/src/forge-module.js.map +1 -0
- package/dist/src/index.d.ts +30 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +48 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/migration-adapters/git-utils.d.ts +3 -0
- package/dist/src/migration-adapters/git-utils.d.ts.map +1 -0
- package/dist/src/migration-adapters/git-utils.js +46 -0
- package/dist/src/migration-adapters/git-utils.js.map +1 -0
- package/dist/src/migration-adapters/ignored-files.d.ts +12 -0
- package/dist/src/migration-adapters/ignored-files.d.ts.map +1 -0
- package/dist/src/migration-adapters/ignored-files.js +190 -0
- package/dist/src/migration-adapters/ignored-files.js.map +1 -0
- package/dist/src/migration-adapters/index.d.ts +8 -0
- package/dist/src/migration-adapters/index.d.ts.map +1 -0
- package/dist/src/migration-adapters/index.js +17 -0
- package/dist/src/migration-adapters/index.js.map +1 -0
- package/dist/src/migration-adapters/node-typescript-pnpm/index.d.ts +3 -0
- package/dist/src/migration-adapters/node-typescript-pnpm/index.d.ts.map +1 -0
- package/dist/src/migration-adapters/node-typescript-pnpm/index.js +141 -0
- package/dist/src/migration-adapters/node-typescript-pnpm/index.js.map +1 -0
- package/dist/src/migration-adapters/phaser-pnpm/index.d.ts +3 -0
- package/dist/src/migration-adapters/phaser-pnpm/index.d.ts.map +1 -0
- package/dist/src/migration-adapters/phaser-pnpm/index.js +142 -0
- package/dist/src/migration-adapters/phaser-pnpm/index.js.map +1 -0
- package/dist/src/migration-adapters/registry.d.ts +6 -0
- package/dist/src/migration-adapters/registry.d.ts.map +1 -0
- package/dist/src/migration-adapters/registry.js +58 -0
- package/dist/src/migration-adapters/registry.js.map +1 -0
- package/dist/src/migration-adapters/types.d.ts +35 -0
- package/dist/src/migration-adapters/types.d.ts.map +1 -0
- package/dist/src/migration-adapters/types.js +31 -0
- package/dist/src/migration-adapters/types.js.map +1 -0
- package/dist/src/onboarding/agents-generate.d.ts +11 -0
- package/dist/src/onboarding/agents-generate.d.ts.map +1 -0
- package/dist/src/onboarding/agents-generate.js +415 -0
- package/dist/src/onboarding/agents-generate.js.map +1 -0
- package/dist/src/onboarding/create.d.ts +12 -0
- package/dist/src/onboarding/create.d.ts.map +1 -0
- package/dist/src/onboarding/create.js +232 -0
- package/dist/src/onboarding/create.js.map +1 -0
- package/dist/src/onboarding/doctor.d.ts +30 -0
- package/dist/src/onboarding/doctor.d.ts.map +1 -0
- package/dist/src/onboarding/doctor.js +380 -0
- package/dist/src/onboarding/doctor.js.map +1 -0
- package/dist/src/onboarding/extended-behavioral-layer.d.ts +10 -0
- package/dist/src/onboarding/extended-behavioral-layer.d.ts.map +1 -0
- package/dist/src/onboarding/extended-behavioral-layer.js +82 -0
- package/dist/src/onboarding/extended-behavioral-layer.js.map +1 -0
- package/dist/src/onboarding/init.d.ts +25 -0
- package/dist/src/onboarding/init.d.ts.map +1 -0
- package/dist/src/onboarding/init.js +260 -0
- package/dist/src/onboarding/init.js.map +1 -0
- package/dist/src/onboarding/scaffold-project.d.ts +12 -0
- package/dist/src/onboarding/scaffold-project.d.ts.map +1 -0
- package/dist/src/onboarding/scaffold-project.js +167 -0
- package/dist/src/onboarding/scaffold-project.js.map +1 -0
- package/dist/src/onboarding/scaffold.d.ts +15 -0
- package/dist/src/onboarding/scaffold.d.ts.map +1 -0
- package/dist/src/onboarding/scaffold.js +120 -0
- package/dist/src/onboarding/scaffold.js.map +1 -0
- package/dist/src/onboarding/upgrade.d.ts +17 -0
- package/dist/src/onboarding/upgrade.d.ts.map +1 -0
- package/dist/src/onboarding/upgrade.js +293 -0
- package/dist/src/onboarding/upgrade.js.map +1 -0
- package/dist/src/profiles/stack-profile.d.ts +51 -0
- package/dist/src/profiles/stack-profile.d.ts.map +1 -0
- package/dist/src/profiles/stack-profile.js +119 -0
- package/dist/src/profiles/stack-profile.js.map +1 -0
- package/dist/src/registry.d.ts +38 -0
- package/dist/src/registry.d.ts.map +1 -0
- package/dist/src/registry.js +135 -0
- package/dist/src/registry.js.map +1 -0
- package/dist/src/skill-schema.d.ts +30 -0
- package/dist/src/skill-schema.d.ts.map +1 -0
- package/dist/src/skill-schema.js +34 -0
- package/dist/src/skill-schema.js.map +1 -0
- package/dist/src/types.d.ts +153 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/types.js +17 -0
- package/dist/src/types.js.map +1 -0
- package/dist/src/utils/fs-atomic.d.ts +7 -0
- package/dist/src/utils/fs-atomic.d.ts.map +1 -0
- package/dist/src/utils/fs-atomic.js +81 -0
- package/dist/src/utils/fs-atomic.js.map +1 -0
- package/dist/src/utils/fs-idempotent.d.ts +2 -0
- package/dist/src/utils/fs-idempotent.d.ts.map +1 -0
- package/dist/src/utils/fs-idempotent.js +30 -0
- package/dist/src/utils/fs-idempotent.js.map +1 -0
- package/dist/src/utils/fs.d.ts +8 -0
- package/dist/src/utils/fs.d.ts.map +1 -0
- package/dist/src/utils/fs.js +60 -0
- package/dist/src/utils/fs.js.map +1 -0
- package/dist/src/utils/generated-marker.d.ts +21 -0
- package/dist/src/utils/generated-marker.d.ts.map +1 -0
- package/dist/src/utils/generated-marker.js +128 -0
- package/dist/src/utils/generated-marker.js.map +1 -0
- package/dist/src/utils/hash.d.ts +2 -0
- package/dist/src/utils/hash.d.ts.map +1 -0
- package/dist/src/utils/hash.js +18 -0
- package/dist/src/utils/hash.js.map +1 -0
- package/dist/src/utils/index.d.ts +7 -0
- package/dist/src/utils/index.d.ts.map +1 -0
- package/dist/src/utils/index.js +19 -0
- package/dist/src/utils/index.js.map +1 -0
- package/dist/src/utils/string-utils.d.ts +2 -0
- package/dist/src/utils/string-utils.d.ts.map +1 -0
- package/dist/src/utils/string-utils.js +19 -0
- package/dist/src/utils/string-utils.js.map +1 -0
- package/dist/src/validators/port-validate.d.ts +12 -0
- package/dist/src/validators/port-validate.d.ts.map +1 -0
- package/dist/src/validators/port-validate.js +73 -0
- package/dist/src/validators/port-validate.js.map +1 -0
- package/dist/src/validators/skill-validate.d.ts +14 -0
- package/dist/src/validators/skill-validate.d.ts.map +1 -0
- package/dist/src/validators/skill-validate.js +487 -0
- package/dist/src/validators/skill-validate.js.map +1 -0
- package/os/rfc/rfc-0000-template.md +222 -0
- package/package.json +262 -0
- package/profiles/astro-typescript-turborepo.yaml +144 -0
- package/profiles/forge-shell.yaml +77 -0
- package/profiles/phaser-turborepo.yaml +144 -0
- package/skills/_shared/fo-pipeline-conventions.md +119 -0
- package/skills/_shared/fo-session-summary.md +95 -0
- package/skills/fo/fo-add-tests/SKILL.md +166 -0
- package/skills/fo/fo-add-tests/mocking.md +60 -0
- package/skills/fo/fo-add-tests/pbt-guide.md +193 -0
- package/skills/fo/fo-add-tests/tests-reference.md +92 -0
- package/skills/fo/fo-architecture/SKILL.md +83 -0
- package/skills/fo/fo-architecture/architecture-vocabulary.md +104 -0
- package/skills/fo/fo-architecture/deepening.md +37 -0
- package/skills/fo/fo-architecture/design-it-twice.md +44 -0
- package/skills/fo/fo-architecture/html-report.md +104 -0
- package/skills/fo/fo-compass-annotate/SKILL.md +128 -0
- package/skills/fo/fo-compass-annotate/reference/comment-styles.md +25 -0
- package/skills/fo/fo-compass-annotate/reference/learned-principles.md +12 -0
- package/skills/fo/fo-compass-annotate/reference/risk-patterns.md +23 -0
- package/skills/fo/fo-compass-annotate/templates/audit-prompt.md +36 -0
- package/skills/fo/fo-compass-annotate/templates/header-format.md +57 -0
- package/skills/fo/fo-compass-annotate/templates/header-prompt.md +35 -0
- package/skills/fo/fo-doc-audit/SKILL.md +264 -0
- package/skills/fo/fo-extract-dna/SKILL.md +248 -0
- package/skills/fo/fo-fix/SKILL.md +152 -0
- package/skills/fo/fo-fix/bug-diagnosis.md +128 -0
- package/skills/fo/fo-handoff/SKILL.md +58 -0
- package/skills/fo/fo-harvest/SKILL.md +80 -0
- package/skills/fo/fo-idea/SKILL.md +242 -0
- package/skills/fo/fo-idea-audit/SKILL.md +248 -0
- package/skills/fo/fo-idea-create-adr/SKILL.md +130 -0
- package/skills/fo/fo-idea-create-rfc/SKILL.md +130 -0
- package/skills/fo/fo-idea-enhance/SKILL.md +218 -0
- package/skills/fo/fo-idea-i-just-want-to-see-the-plan/SKILL.md +36 -0
- package/skills/fo/fo-idea-i-just-want-to-see-the-result/SKILL.md +167 -0
- package/skills/fo/fo-idea-implement/SKILL.md +463 -0
- package/skills/fo/fo-idea-plan/SKILL.md +230 -0
- package/skills/fo/fo-idea-status/SKILL.md +103 -0
- package/skills/fo/fo-memory-sync/SKILL.md +204 -0
- package/skills/fo/fo-memory-sync/fix-patterns.md +24 -0
- package/skills/fo/fo-memory-sync/learned-principles.md +6 -0
- package/skills/fo/fo-memory-sync/qa-log.md +5 -0
- package/skills/fo/fo-qa/SKILL.md +142 -0
- package/skills/fo/fo-review/SKILL.md +273 -0
- package/skills/fo/fo-session-retro/SKILL.md +276 -0
- package/skills/fo/fo-session-save/SKILL.md +71 -0
- package/skills/fo/fo-session-save/fix-patterns.md +33 -0
- package/skills/fo/fo-session-save/learned-principles.md +19 -0
- package/skills/fo/fo-session-save/qa-log.md +11 -0
- package/skills/fo/fo-spec-ingest/SKILL.md +127 -0
- package/skills/fo/fo-triage/SKILL.md +97 -0
- package/skills/meta/forge-bootstrap/SKILL.md +335 -0
- package/skills/meta/forge-bootstrap/forge-about.md +35 -0
- package/skills/meta/forge-bootstrap/milestone-gallery/.gitkeep +0 -0
- package/skills/meta/forge-bootstrap/operator-profile-template.md +53 -0
- package/skills/meta/forge-bootstrap/project-narrative-template.md +31 -0
- package/skills/meta/port-to-forge/SKILL.md +65 -0
- package/skills/meta/skill-create/SKILL.md +73 -0
- package/skills/shared/grilling/SKILL.md +28 -0
- package/skills/shared/grilling/learned-principles.md +12 -0
- package/skills/shared/grilling/qa-log.md +10 -0
- package/skills/shared/my-preferences/SKILL.md +77 -0
- package/skills/shared/windows-ai-tooling/SKILL.md +200 -0
- package/skills/shared/writing-great-skills/SKILL.md +132 -0
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const forgeBindingsSchema: z.ZodObject<{
|
|
3
|
+
schema: z.ZodLiteral<"forge/bindings@1">;
|
|
4
|
+
commands: z.ZodObject<{
|
|
5
|
+
validateRfc: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
6
|
+
validateAdr: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
7
|
+
implementStamp: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
8
|
+
typecheck: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
9
|
+
test: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
10
|
+
scopedBuild: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
11
|
+
specValidate: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
12
|
+
}, z.core.$strip>;
|
|
13
|
+
paths: z.ZodObject<{
|
|
14
|
+
invariantsFile: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
15
|
+
compassDocs: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
16
|
+
reviewsDir: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
17
|
+
handoffsDir: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
18
|
+
sessionsDir: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
19
|
+
}, z.core.$strip>;
|
|
20
|
+
terminology: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
21
|
+
compass: z.ZodOptional<z.ZodObject<{
|
|
22
|
+
fileExtensions: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
23
|
+
testPatterns: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
24
|
+
}, z.core.$strip>>;
|
|
25
|
+
}, z.core.$strip>;
|
|
26
|
+
export interface ForgeBindings {
|
|
27
|
+
schema: "forge/bindings@1";
|
|
28
|
+
commands: {
|
|
29
|
+
validateRfc: string | null;
|
|
30
|
+
validateAdr: string | null;
|
|
31
|
+
implementStamp: string | null;
|
|
32
|
+
typecheck: string | null;
|
|
33
|
+
test: string | null;
|
|
34
|
+
scopedBuild: string | null;
|
|
35
|
+
specValidate: string | null;
|
|
36
|
+
};
|
|
37
|
+
paths: {
|
|
38
|
+
invariantsFile: string | null;
|
|
39
|
+
compassDocs: string[];
|
|
40
|
+
reviewsDir: string | null;
|
|
41
|
+
handoffsDir: string | null;
|
|
42
|
+
sessionsDir: string | null;
|
|
43
|
+
};
|
|
44
|
+
terminology?: Record<string, string>;
|
|
45
|
+
compass?: {
|
|
46
|
+
fileExtensions?: string[];
|
|
47
|
+
testPatterns?: string[];
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
export declare const forgeSkillPackSchema: z.ZodObject<{
|
|
51
|
+
prefix: z.ZodString;
|
|
52
|
+
dir: z.ZodString;
|
|
53
|
+
}, z.core.$strip>;
|
|
54
|
+
export interface ForgeSkillPack {
|
|
55
|
+
prefix: string;
|
|
56
|
+
dir: string;
|
|
57
|
+
}
|
|
58
|
+
export declare const forgeMigrationAdapterSchema: z.ZodObject<{
|
|
59
|
+
id: z.ZodString;
|
|
60
|
+
module: z.ZodOptional<z.ZodString>;
|
|
61
|
+
}, z.core.$strip>;
|
|
62
|
+
export interface ForgeMigrationAdapter {
|
|
63
|
+
id: string;
|
|
64
|
+
module?: string;
|
|
65
|
+
}
|
|
66
|
+
export declare const forgeConfigSchema: z.ZodObject<{
|
|
67
|
+
schema: z.ZodLiteral<"forge/config@1">;
|
|
68
|
+
project: z.ZodObject<{
|
|
69
|
+
name: z.ZodString;
|
|
70
|
+
stack: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
71
|
+
packageManager: z.ZodDefault<z.ZodEnum<{
|
|
72
|
+
pnpm: "pnpm";
|
|
73
|
+
npm: "npm";
|
|
74
|
+
yarn: "yarn";
|
|
75
|
+
bun: "bun";
|
|
76
|
+
none: "none";
|
|
77
|
+
}>>;
|
|
78
|
+
}, z.core.$strip>;
|
|
79
|
+
paths: z.ZodObject<{
|
|
80
|
+
rfcsDir: z.ZodDefault<z.ZodString>;
|
|
81
|
+
adrsDir: z.ZodDefault<z.ZodString>;
|
|
82
|
+
plansDir: z.ZodDefault<z.ZodString>;
|
|
83
|
+
auditsDir: z.ZodDefault<z.ZodString>;
|
|
84
|
+
specsDir: z.ZodDefault<z.ZodString>;
|
|
85
|
+
skillsDir: z.ZodDefault<z.ZodString>;
|
|
86
|
+
sessionsDir: z.ZodDefault<z.ZodString>;
|
|
87
|
+
}, z.core.$strip>;
|
|
88
|
+
bindings: z.ZodOptional<z.ZodObject<{
|
|
89
|
+
schema: z.ZodLiteral<"forge/bindings@1">;
|
|
90
|
+
commands: z.ZodObject<{
|
|
91
|
+
validateRfc: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
92
|
+
validateAdr: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
93
|
+
implementStamp: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
94
|
+
typecheck: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
95
|
+
test: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
96
|
+
scopedBuild: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
97
|
+
specValidate: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
98
|
+
}, z.core.$strip>;
|
|
99
|
+
paths: z.ZodObject<{
|
|
100
|
+
invariantsFile: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
101
|
+
compassDocs: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
102
|
+
reviewsDir: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
103
|
+
handoffsDir: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
104
|
+
sessionsDir: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
105
|
+
}, z.core.$strip>;
|
|
106
|
+
terminology: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
107
|
+
compass: z.ZodOptional<z.ZodObject<{
|
|
108
|
+
fileExtensions: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
109
|
+
testPatterns: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
110
|
+
}, z.core.$strip>>;
|
|
111
|
+
}, z.core.$strip>>;
|
|
112
|
+
skillPacks: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
113
|
+
prefix: z.ZodString;
|
|
114
|
+
dir: z.ZodString;
|
|
115
|
+
}, z.core.$strip>>>;
|
|
116
|
+
migrationAdapters: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
117
|
+
id: z.ZodString;
|
|
118
|
+
module: z.ZodOptional<z.ZodString>;
|
|
119
|
+
}, z.core.$strip>>>;
|
|
120
|
+
forge: z.ZodOptional<z.ZodObject<{
|
|
121
|
+
syncedVersion: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
122
|
+
}, z.core.$strip>>;
|
|
123
|
+
}, z.core.$strip>;
|
|
124
|
+
export interface ForgeConfig {
|
|
125
|
+
schema: "forge/config@1";
|
|
126
|
+
project: {
|
|
127
|
+
name: string;
|
|
128
|
+
stack: string[];
|
|
129
|
+
packageManager: "pnpm" | "npm" | "yarn" | "bun" | "none";
|
|
130
|
+
};
|
|
131
|
+
paths: {
|
|
132
|
+
rfcsDir: string;
|
|
133
|
+
adrsDir: string;
|
|
134
|
+
plansDir: string;
|
|
135
|
+
auditsDir: string;
|
|
136
|
+
specsDir: string;
|
|
137
|
+
skillsDir: string;
|
|
138
|
+
sessionsDir: string;
|
|
139
|
+
};
|
|
140
|
+
/** Bindings contract (RFC-0393). Optional — absent means no bindings. */
|
|
141
|
+
bindings?: ForgeBindings;
|
|
142
|
+
/** Skill packs (RFC-0539). Optional — absent means no project-local packs. */
|
|
143
|
+
skillPacks?: ForgeSkillPack[];
|
|
144
|
+
/** Migration adapters (RFC-0546). Optional — absent means built-in adapters only. */
|
|
145
|
+
migrationAdapters?: ForgeMigrationAdapter[];
|
|
146
|
+
/** Forge sync metadata (RFC-0543). Optional — absent means never synced. */
|
|
147
|
+
forge?: {
|
|
148
|
+
syncedVersion: string | null;
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
export interface ForgeCliBindingDefault {
|
|
152
|
+
key: string;
|
|
153
|
+
template: string;
|
|
154
|
+
}
|
|
155
|
+
export declare const FORGE_CLI_BINDING_DEFAULTS: ForgeCliBindingDefault[];
|
|
156
|
+
export declare const PM_RUNNER_MAP: Record<string, string>;
|
|
157
|
+
export declare function resolvePmRunner(pm: string): string;
|
|
158
|
+
export declare function applyCliBindingDefaults(pm: string): ForgeBindings["commands"];
|
|
159
|
+
export type ForgePackageManager = ForgeConfig["project"]["packageManager"];
|
|
160
|
+
export declare function resolvePackageManager(pm: string): ForgePackageManager;
|
|
161
|
+
export declare function defaultForgeConfig(projectName: string, packageManager?: string): ForgeConfig;
|
|
162
|
+
export declare function loadForgeConfig(workspaceRoot: string): ForgeConfig;
|
|
163
|
+
export declare function resolveForgeRoot(workspaceRoot: string): string;
|
|
164
|
+
/**
|
|
165
|
+
* Resolve a binding key (e.g. "commands.validateRfc") from the config.
|
|
166
|
+
* Returns the resolved string/array, or null if the binding is absent or explicitly null.
|
|
167
|
+
* Supports placeholder substitution: {id}, {workspace}, {file}.
|
|
168
|
+
*/
|
|
169
|
+
export declare function resolveBinding(config: ForgeConfig, key: string, placeholders?: Record<string, string>): string | string[] | null;
|
|
170
|
+
//# sourceMappingURL=forge-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"forge-config.d.ts","sourceRoot":"","sources":["../../../src/config/forge-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
/*
|
|
2
|
+
<MODULE_CONTRACT>
|
|
3
|
+
<purpose>Forge project configuration — forge.yaml schema, loader, forge root resolver, and bindings contract. Single source of truth for how forge is deployed in a project.</purpose>
|
|
4
|
+
<non-goals>
|
|
5
|
+
<item>Do not import from @warpgogol/* — this module is portable.</item>
|
|
6
|
+
</non-goals>
|
|
7
|
+
</MODULE_CONTRACT>
|
|
8
|
+
<CHANGE_SUMMARY>
|
|
9
|
+
<item>RFC-0391: initial forge-config module with zod schema, loadForgeConfig, resolveForgeRoot.</item>
|
|
10
|
+
<item>RFC-0393: added ForgeBindings schema, resolveBinding with placeholder substitution.</item>
|
|
11
|
+
<item>RFC-0538: added optional compass binding section (fileExtensions, testPatterns).</item>
|
|
12
|
+
<item>RFC-0537: added sessionsDir to paths and bindings.paths schemas.</item>
|
|
13
|
+
<item>RFC-0539: added ForgeSkillPack schema and skillPacks to forge config for project-declared skill packs.</item>
|
|
14
|
+
<item>RFC-0540: added implementStamp to bindings schema, FORGE_CLI_BINDING_DEFAULTS, PM_RUNNER_MAP, resolvePmRunner, applyCliBindingDefaults.</item>
|
|
15
|
+
<item>RFC-0540 fix: eliminated type casts — applyCliBindingDefaults returns ForgeBindings["commands"] directly, resolvePackageManager validates pm against enum.</item>
|
|
16
|
+
<item>RFC-0543: added optional forge.syncedVersion field to forgeConfigSchema and defaultForgeConfig for consumer upgrade tracking.</item>
|
|
17
|
+
<item>RFC-0546: added optional migrationAdapters field to forgeConfigSchema for migration-adapter registry discovery.</item>
|
|
18
|
+
</CHANGE_SUMMARY>
|
|
19
|
+
*/
|
|
20
|
+
import fs from "node:fs";
|
|
21
|
+
import path from "node:path";
|
|
22
|
+
import { z } from "zod";
|
|
23
|
+
import { parse as parseYaml } from "yaml";
|
|
24
|
+
// ---------------------------------------------------------------------------
|
|
25
|
+
// Bindings schema (forge/bindings@1) — RFC-0393
|
|
26
|
+
// ---------------------------------------------------------------------------
|
|
27
|
+
export const forgeBindingsSchema = z.object({
|
|
28
|
+
schema: z.literal("forge/bindings@1"),
|
|
29
|
+
commands: z.object({
|
|
30
|
+
validateRfc: z.string().nullable().default(null),
|
|
31
|
+
validateAdr: z.string().nullable().default(null),
|
|
32
|
+
implementStamp: z.string().nullable().default(null),
|
|
33
|
+
typecheck: z.string().nullable().default(null),
|
|
34
|
+
test: z.string().nullable().default(null),
|
|
35
|
+
scopedBuild: z.string().nullable().default(null),
|
|
36
|
+
specValidate: z.string().nullable().default(null),
|
|
37
|
+
}),
|
|
38
|
+
paths: z.object({
|
|
39
|
+
invariantsFile: z.string().nullable().default(null),
|
|
40
|
+
compassDocs: z.array(z.string()).default([]),
|
|
41
|
+
reviewsDir: z.string().nullable().default(null),
|
|
42
|
+
handoffsDir: z.string().nullable().default(null),
|
|
43
|
+
sessionsDir: z.string().nullable().default(null),
|
|
44
|
+
}),
|
|
45
|
+
terminology: z.record(z.string(), z.string()).optional(),
|
|
46
|
+
compass: z
|
|
47
|
+
.object({
|
|
48
|
+
fileExtensions: z.array(z.string()).optional(),
|
|
49
|
+
testPatterns: z.array(z.string()).optional(),
|
|
50
|
+
})
|
|
51
|
+
.optional(),
|
|
52
|
+
});
|
|
53
|
+
// ---------------------------------------------------------------------------
|
|
54
|
+
// Skill packs schema (RFC-0539)
|
|
55
|
+
// ---------------------------------------------------------------------------
|
|
56
|
+
export const forgeSkillPackSchema = z.object({
|
|
57
|
+
prefix: z
|
|
58
|
+
.string()
|
|
59
|
+
.regex(/^[a-z][a-z0-9]{1,7}$/, "prefix must be 2-8 chars: lowercase letter followed by lowercase alphanumeric")
|
|
60
|
+
.refine((v) => v !== "fo", "fo prefix is reserved for forge"),
|
|
61
|
+
dir: z.string().min(1),
|
|
62
|
+
});
|
|
63
|
+
// ---------------------------------------------------------------------------
|
|
64
|
+
// Migration adapters schema (RFC-0546)
|
|
65
|
+
// ---------------------------------------------------------------------------
|
|
66
|
+
export const forgeMigrationAdapterSchema = z.object({
|
|
67
|
+
id: z.string().min(1),
|
|
68
|
+
module: z.string().optional(),
|
|
69
|
+
});
|
|
70
|
+
// ---------------------------------------------------------------------------
|
|
71
|
+
// Schema (forge/config@1)
|
|
72
|
+
// ---------------------------------------------------------------------------
|
|
73
|
+
export const forgeConfigSchema = z.object({
|
|
74
|
+
schema: z.literal("forge/config@1"),
|
|
75
|
+
project: z.object({
|
|
76
|
+
name: z.string().min(1),
|
|
77
|
+
stack: z.array(z.string()).default([]),
|
|
78
|
+
packageManager: z.enum(["pnpm", "npm", "yarn", "bun", "none"]).default("pnpm"),
|
|
79
|
+
}),
|
|
80
|
+
paths: z.object({
|
|
81
|
+
rfcsDir: z.string().default("docs/rfcs"),
|
|
82
|
+
adrsDir: z.string().default("docs/adrs"),
|
|
83
|
+
plansDir: z.string().default("docs/plans"),
|
|
84
|
+
auditsDir: z.string().default("docs/audits"),
|
|
85
|
+
specsDir: z.string().default("docs/specs"),
|
|
86
|
+
skillsDir: z.string().default(".agents/skills"),
|
|
87
|
+
sessionsDir: z.string().default("docs/sessions"),
|
|
88
|
+
}),
|
|
89
|
+
/** Bindings contract (RFC-0393). Optional — absent means no bindings. */
|
|
90
|
+
bindings: forgeBindingsSchema.optional(),
|
|
91
|
+
/** Skill packs (RFC-0539). Optional — absent means no project-local packs. */
|
|
92
|
+
skillPacks: z.array(forgeSkillPackSchema).optional(),
|
|
93
|
+
/** Migration adapters (RFC-0546). Optional — absent means built-in adapters only. */
|
|
94
|
+
migrationAdapters: z.array(forgeMigrationAdapterSchema).optional(),
|
|
95
|
+
/** Forge sync metadata (RFC-0543). Optional — absent means never synced. */
|
|
96
|
+
forge: z
|
|
97
|
+
.object({
|
|
98
|
+
syncedVersion: z.string().nullable().default(null),
|
|
99
|
+
})
|
|
100
|
+
.optional(),
|
|
101
|
+
});
|
|
102
|
+
export const FORGE_CLI_BINDING_DEFAULTS = [
|
|
103
|
+
{ key: "commands.validateRfc", template: "forge rfc.validate {id} --json" },
|
|
104
|
+
{ key: "commands.validateAdr", template: "forge adr.validate {id} --json" },
|
|
105
|
+
{
|
|
106
|
+
key: "commands.implementStamp",
|
|
107
|
+
template: "forge rfc.implement.stamp --id {id} --implementation-commit {commit}",
|
|
108
|
+
},
|
|
109
|
+
{ key: "commands.specValidate", template: "forge spec.validate --spec={id} --json" },
|
|
110
|
+
];
|
|
111
|
+
export const PM_RUNNER_MAP = {
|
|
112
|
+
pnpm: "pnpm exec",
|
|
113
|
+
npm: "npx",
|
|
114
|
+
yarn: "yarn exec",
|
|
115
|
+
bun: "bunx",
|
|
116
|
+
none: "npx",
|
|
117
|
+
};
|
|
118
|
+
export function resolvePmRunner(pm) {
|
|
119
|
+
return PM_RUNNER_MAP[pm] ?? "npx";
|
|
120
|
+
}
|
|
121
|
+
export function applyCliBindingDefaults(pm) {
|
|
122
|
+
const runner = resolvePmRunner(pm);
|
|
123
|
+
const commands = {
|
|
124
|
+
validateRfc: null,
|
|
125
|
+
validateAdr: null,
|
|
126
|
+
implementStamp: null,
|
|
127
|
+
typecheck: null,
|
|
128
|
+
test: null,
|
|
129
|
+
scopedBuild: null,
|
|
130
|
+
specValidate: null,
|
|
131
|
+
};
|
|
132
|
+
for (const entry of FORGE_CLI_BINDING_DEFAULTS) {
|
|
133
|
+
const bareKey = entry.key.replace("commands.", "");
|
|
134
|
+
commands[bareKey] = `${runner} ${entry.template}`;
|
|
135
|
+
}
|
|
136
|
+
return commands;
|
|
137
|
+
}
|
|
138
|
+
const VALID_PACKAGE_MANAGERS = ["pnpm", "npm", "yarn", "bun", "none"];
|
|
139
|
+
export function resolvePackageManager(pm) {
|
|
140
|
+
return VALID_PACKAGE_MANAGERS.includes(pm) ? pm : "pnpm";
|
|
141
|
+
}
|
|
142
|
+
export function defaultForgeConfig(projectName, packageManager) {
|
|
143
|
+
const pm = resolvePackageManager(packageManager ?? "pnpm");
|
|
144
|
+
return {
|
|
145
|
+
schema: "forge/config@1",
|
|
146
|
+
project: {
|
|
147
|
+
name: projectName,
|
|
148
|
+
stack: [],
|
|
149
|
+
packageManager: pm,
|
|
150
|
+
},
|
|
151
|
+
paths: {
|
|
152
|
+
rfcsDir: "docs/rfcs",
|
|
153
|
+
adrsDir: "docs/adrs",
|
|
154
|
+
plansDir: "docs/plans",
|
|
155
|
+
auditsDir: "docs/audits",
|
|
156
|
+
specsDir: "docs/specs",
|
|
157
|
+
skillsDir: ".agents/skills",
|
|
158
|
+
sessionsDir: "docs/sessions",
|
|
159
|
+
},
|
|
160
|
+
bindings: {
|
|
161
|
+
schema: "forge/bindings@1",
|
|
162
|
+
commands: applyCliBindingDefaults(pm),
|
|
163
|
+
paths: {
|
|
164
|
+
invariantsFile: null,
|
|
165
|
+
compassDocs: [],
|
|
166
|
+
reviewsDir: "docs/reviews",
|
|
167
|
+
handoffsDir: "docs/handoffs",
|
|
168
|
+
sessionsDir: "docs/sessions",
|
|
169
|
+
},
|
|
170
|
+
terminology: {},
|
|
171
|
+
compass: {},
|
|
172
|
+
},
|
|
173
|
+
forge: { syncedVersion: null },
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
// ---------------------------------------------------------------------------
|
|
177
|
+
// Loader
|
|
178
|
+
// ---------------------------------------------------------------------------
|
|
179
|
+
export function loadForgeConfig(workspaceRoot) {
|
|
180
|
+
const configPath = path.join(workspaceRoot, "forge.yaml");
|
|
181
|
+
if (!fs.existsSync(configPath)) {
|
|
182
|
+
throw new Error(`forge.yaml not found at ${configPath}. Run 'forge create' to create project configuration.`);
|
|
183
|
+
}
|
|
184
|
+
const raw = fs.readFileSync(configPath, "utf8");
|
|
185
|
+
let parsed;
|
|
186
|
+
try {
|
|
187
|
+
parsed = parseYaml(raw);
|
|
188
|
+
}
|
|
189
|
+
catch (err) {
|
|
190
|
+
throw new Error(`forge.yaml at ${configPath} is not valid YAML: ${err.message}`);
|
|
191
|
+
}
|
|
192
|
+
const result = forgeConfigSchema.safeParse(parsed);
|
|
193
|
+
if (!result.success) {
|
|
194
|
+
const issues = result.error.issues
|
|
195
|
+
.map((i) => ` - ${i.path.join(".")}: ${i.message}`)
|
|
196
|
+
.join("\n");
|
|
197
|
+
throw new Error(`forge.yaml at ${configPath} failed schema validation:\n${issues}\nFix the listed fields or run 'forge create' to regenerate defaults.`);
|
|
198
|
+
}
|
|
199
|
+
return result.data;
|
|
200
|
+
}
|
|
201
|
+
// ---------------------------------------------------------------------------
|
|
202
|
+
// Forge root resolver — the single place that decides monorepo vs npm-installed
|
|
203
|
+
// ---------------------------------------------------------------------------
|
|
204
|
+
export function resolveForgeRoot(workspaceRoot) {
|
|
205
|
+
const monorepoPath = path.join(workspaceRoot, "packages", "forge");
|
|
206
|
+
if (fs.existsSync(path.join(monorepoPath, "package.json"))) {
|
|
207
|
+
return monorepoPath;
|
|
208
|
+
}
|
|
209
|
+
const npmPath = path.join(workspaceRoot, "node_modules", "@warpgogol", "forge");
|
|
210
|
+
if (fs.existsSync(path.join(npmPath, "package.json"))) {
|
|
211
|
+
return npmPath;
|
|
212
|
+
}
|
|
213
|
+
throw new Error(`Could not resolve forge root. Checked:\n ${monorepoPath}\n ${npmPath}\nEnsure @warpgogol/forge is installed or packages/forge exists.`);
|
|
214
|
+
}
|
|
215
|
+
// ---------------------------------------------------------------------------
|
|
216
|
+
// Binding resolver — RFC-0393
|
|
217
|
+
// ---------------------------------------------------------------------------
|
|
218
|
+
/**
|
|
219
|
+
* Resolve a binding key (e.g. "commands.validateRfc") from the config.
|
|
220
|
+
* Returns the resolved string/array, or null if the binding is absent or explicitly null.
|
|
221
|
+
* Supports placeholder substitution: {id}, {workspace}, {file}.
|
|
222
|
+
*/
|
|
223
|
+
export function resolveBinding(config, key, placeholders) {
|
|
224
|
+
if (!config.bindings) {
|
|
225
|
+
return null;
|
|
226
|
+
}
|
|
227
|
+
const parts = key.split(".");
|
|
228
|
+
let current = config.bindings;
|
|
229
|
+
for (const part of parts) {
|
|
230
|
+
if (current === null || current === undefined) {
|
|
231
|
+
return null;
|
|
232
|
+
}
|
|
233
|
+
if (typeof current !== "object" || !(part in current)) {
|
|
234
|
+
return null;
|
|
235
|
+
}
|
|
236
|
+
current = current[part];
|
|
237
|
+
}
|
|
238
|
+
if (current === null || current === undefined) {
|
|
239
|
+
return null;
|
|
240
|
+
}
|
|
241
|
+
if (Array.isArray(current)) {
|
|
242
|
+
return current;
|
|
243
|
+
}
|
|
244
|
+
if (typeof current === "string") {
|
|
245
|
+
if (placeholders) {
|
|
246
|
+
return substitutePlaceholders(current, placeholders);
|
|
247
|
+
}
|
|
248
|
+
return current;
|
|
249
|
+
}
|
|
250
|
+
return null;
|
|
251
|
+
}
|
|
252
|
+
function substitutePlaceholders(template, placeholders) {
|
|
253
|
+
let result = template;
|
|
254
|
+
for (const [key, value] of Object.entries(placeholders)) {
|
|
255
|
+
result = result.replaceAll(`{${key}}`, value);
|
|
256
|
+
}
|
|
257
|
+
return result;
|
|
258
|
+
}
|
|
259
|
+
//# sourceMappingURL=forge-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"forge-config.js","sourceRoot":"","sources":["../../../src/config/forge-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { ForgeCommandDefinition } from "./types.ts";
|
|
2
|
+
export interface ForgeModuleRegistry {
|
|
3
|
+
registerCommand(command: ForgeCommandDefinition): void;
|
|
4
|
+
registerPipeline(name: string, steps: ForgePipelineStep[]): void;
|
|
5
|
+
}
|
|
6
|
+
export interface ForgeModule {
|
|
7
|
+
name: string;
|
|
8
|
+
version: string;
|
|
9
|
+
register(registry: ForgeModuleRegistry): void | Promise<void>;
|
|
10
|
+
}
|
|
11
|
+
export type { ForgeCommandDefinition, ForgeCommandResult, ForgeFlagSpec } from "./types.ts";
|
|
12
|
+
export interface ForgePipelineStep {
|
|
13
|
+
command: string;
|
|
14
|
+
args?: string[];
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=forge-module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"forge-module.d.ts","sourceRoot":"","sources":["../../src/forge-module.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAOzD,MAAM,WAAW,mBAAmB;IAClC,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,IAAI,CAAC;IACvD,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,GAAG,IAAI,CAAC;CAClE;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/D;AAGD,YAAY,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE5F,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/*
|
|
2
|
+
<MODULE_CONTRACT>
|
|
3
|
+
<purpose>ForgeModule interfaces — structurally compatible with KernelModule from @warpgogol/site-kernel. Forge does NOT import from site-kernel.</purpose>
|
|
4
|
+
<non-goals>
|
|
5
|
+
<item>Do not import from @warpgogol/site-kernel — forge must be installable without it.</item>
|
|
6
|
+
<item>Do not add project-specific fields to ForgeModule — keep it minimal and portable.</item>
|
|
7
|
+
</non-goals>
|
|
8
|
+
</MODULE_CONTRACT>
|
|
9
|
+
<CHANGE_SUMMARY>
|
|
10
|
+
<item>RFC-0374: initial ForgeModule, ForgeModuleRegistry, ForgeCommandDefinition, ForgePipelineStep interfaces.</item>
|
|
11
|
+
<item>Forge autonomy refactor: ForgeCommandDefinition and ForgeCommandResult now reference canonical types from types.ts.</item>
|
|
12
|
+
</CHANGE_SUMMARY>
|
|
13
|
+
*/
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=forge-module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"forge-module.js","sourceRoot":"","sources":["../../src/forge-module.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;EAYE"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export type { ForgeCommandInput, ForgeCommandResult, ForgeCommandTiming, ForgeNextStep, ForgeFlagValue, ForgeFlagSpec, ForgeCommandMetadata, ForgeRegisteredCommandInfo, ForgeCommandDefinition, ForgeCommandScope, Diagnostic, DiagnosticSeverity, DiagnosticEvidence, CheckResult, ForgeLogger, CommandRegistry, ForgeRuntimeContext, ForgeSiteContext, ForgeOutputFormat, GateMetadata, GateSeverity, GatePhase, GateConditional, } from "./types.ts";
|
|
2
|
+
export { writeFileAtomic, type WriteFileAtomicOptions, GENERATED_MARKER, hasGeneratedMarker, stripGeneratedMarker, buildGeneratedHeader, isGeneratedMarkerTextCandidate, type GeneratedHeaderInput, type StripGeneratedMarkerResult, toKebabCase, collectFiles, fileExists, type CollectFilesOptions, byteHash, } from "./utils/index.ts";
|
|
3
|
+
export type { ForgeModule, ForgeModuleRegistry, ForgePipelineStep } from "./forge-module.ts";
|
|
4
|
+
export { skillFrontmatterSchema, type SkillFrontmatter } from "./skill-schema.ts";
|
|
5
|
+
export { FORGE_SKILLS, type ForgeSkillEntry } from "./registry.ts";
|
|
6
|
+
export { forgeConfigSchema, forgeBindingsSchema, defaultForgeConfig, loadForgeConfig, resolveForgeRoot, resolveBinding, FORGE_CLI_BINDING_DEFAULTS, PM_RUNNER_MAP, resolvePmRunner, applyCliBindingDefaults, resolvePackageManager, type ForgeConfig, type ForgeBindings, type ForgeCliBindingDefault, type ForgePackageManager, type ForgeMigrationAdapter, } from "./config/forge-config.ts";
|
|
7
|
+
export { stackProfileSchema, loadStackProfile, listStackProfiles, detectStack, type StackProfile, type ProfileFile, } from "./profiles/stack-profile.ts";
|
|
8
|
+
export { runSkillValidate } from "./validators/skill-validate.ts";
|
|
9
|
+
export { runPortValidate } from "./validators/port-validate.ts";
|
|
10
|
+
export { renderNextSteps, renderIdeRecommendation, generateHelp } from "./cli-output.ts";
|
|
11
|
+
export { runInit } from "./onboarding/init.ts";
|
|
12
|
+
export { runScaffold } from "./onboarding/scaffold.ts";
|
|
13
|
+
export { runDoctor } from "./onboarding/doctor.ts";
|
|
14
|
+
export { runAgentsGenerate } from "./onboarding/agents-generate.ts";
|
|
15
|
+
export { runScaffoldProject } from "./onboarding/scaffold-project.ts";
|
|
16
|
+
export type { MigrationAdapter, AdapterAnalysis, MigrationResult, Conflict, } from "./migration-adapters/types.ts";
|
|
17
|
+
export { FORGE_PROTECTED_PATHS, DEFAULT_EXCLUDE_PATTERNS } from "./migration-adapters/types.ts";
|
|
18
|
+
export { nodeTypescriptPnpmAdapter, phaserPnpmAdapter, getAdapters, detectAdapter, detectAdapters, } from "./migration-adapters/index.ts";
|
|
19
|
+
export { forgeCoreModule } from "../os/core/core.module.ts";
|
|
20
|
+
export { forgeRfcModule } from "../os/rfc/rfc.module.ts";
|
|
21
|
+
export { forgeWorkflowModule } from "../os/workflow/workflow.module.ts";
|
|
22
|
+
export { forgeNamingModule } from "../os/naming/naming.module.ts";
|
|
23
|
+
export { forgeCompassModule } from "../os/compass/compass.module.ts";
|
|
24
|
+
export { forgeWerkstattModule } from "../os/werkstatt/werkstatt.module.ts";
|
|
25
|
+
export { forgeSpecModule } from "../os/spec/spec.module.ts";
|
|
26
|
+
export { forgeAdrModule } from "../os/adr/adr.module.ts";
|
|
27
|
+
export { forgePlanModule } from "../os/plan/plan.module.ts";
|
|
28
|
+
export { forgeAuditModule } from "../os/audit/audit.module.ts";
|
|
29
|
+
export { forgeMissionModule } from "../os/mission/mission.module.ts";
|
|
30
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/*
|
|
2
|
+
<MODULE_CONTRACT>
|
|
3
|
+
<purpose>Public entrypoint for @warpgogol/forge — exports ForgeModule types, canonical types, utilities, skill schema, registry, validators, onboarding, and OS modules.</purpose>
|
|
4
|
+
<non-goals>
|
|
5
|
+
<item>Do not export internal implementation details — only public API.</item>
|
|
6
|
+
</non-goals>
|
|
7
|
+
</MODULE_CONTRACT>
|
|
8
|
+
<CHANGE_SUMMARY>
|
|
9
|
+
<item>RFC-0374: initial public exports for forge package.</item>
|
|
10
|
+
<item>Forge autonomy refactor: add canonical types and utils exports.</item>
|
|
11
|
+
</CHANGE_SUMMARY>
|
|
12
|
+
*/
|
|
13
|
+
// Canonical utilities
|
|
14
|
+
export { writeFileAtomic, GENERATED_MARKER, hasGeneratedMarker, stripGeneratedMarker, buildGeneratedHeader, isGeneratedMarkerTextCandidate, toKebabCase, collectFiles, fileExists, byteHash, } from "./utils/index.js";
|
|
15
|
+
// Skill schema
|
|
16
|
+
export { skillFrontmatterSchema } from "./skill-schema.js";
|
|
17
|
+
// Skill registry
|
|
18
|
+
export { FORGE_SKILLS } from "./registry.js";
|
|
19
|
+
// Forge config (RFC-0391)
|
|
20
|
+
export { forgeConfigSchema, forgeBindingsSchema, defaultForgeConfig, loadForgeConfig, resolveForgeRoot, resolveBinding, FORGE_CLI_BINDING_DEFAULTS, PM_RUNNER_MAP, resolvePmRunner, applyCliBindingDefaults, resolvePackageManager, } from "./config/forge-config.js";
|
|
21
|
+
// Stack profiles (RFC-0392)
|
|
22
|
+
export { stackProfileSchema, loadStackProfile, listStackProfiles, detectStack, } from "./profiles/stack-profile.js";
|
|
23
|
+
// Validators
|
|
24
|
+
export { runSkillValidate } from "./validators/skill-validate.js";
|
|
25
|
+
export { runPortValidate } from "./validators/port-validate.js";
|
|
26
|
+
// CLI output rendering (RFC-0542)
|
|
27
|
+
export { renderNextSteps, renderIdeRecommendation, generateHelp } from "./cli-output.js";
|
|
28
|
+
// Onboarding
|
|
29
|
+
export { runInit } from "./onboarding/init.js";
|
|
30
|
+
export { runScaffold } from "./onboarding/scaffold.js";
|
|
31
|
+
export { runDoctor } from "./onboarding/doctor.js";
|
|
32
|
+
export { runAgentsGenerate } from "./onboarding/agents-generate.js";
|
|
33
|
+
export { runScaffoldProject } from "./onboarding/scaffold-project.js";
|
|
34
|
+
export { FORGE_PROTECTED_PATHS, DEFAULT_EXCLUDE_PATTERNS } from "./migration-adapters/types.js";
|
|
35
|
+
export { nodeTypescriptPnpmAdapter, phaserPnpmAdapter, getAdapters, detectAdapter, detectAdapters, } from "./migration-adapters/index.js";
|
|
36
|
+
// OS modules
|
|
37
|
+
export { forgeCoreModule } from "../os/core/core.module.js";
|
|
38
|
+
export { forgeRfcModule } from "../os/rfc/rfc.module.js";
|
|
39
|
+
export { forgeWorkflowModule } from "../os/workflow/workflow.module.js";
|
|
40
|
+
export { forgeNamingModule } from "../os/naming/naming.module.js";
|
|
41
|
+
export { forgeCompassModule } from "../os/compass/compass.module.js";
|
|
42
|
+
export { forgeWerkstattModule } from "../os/werkstatt/werkstatt.module.js";
|
|
43
|
+
export { forgeSpecModule } from "../os/spec/spec.module.js";
|
|
44
|
+
export { forgeAdrModule } from "../os/adr/adr.module.js";
|
|
45
|
+
export { forgePlanModule } from "../os/plan/plan.module.js";
|
|
46
|
+
export { forgeAuditModule } from "../os/audit/audit.module.js";
|
|
47
|
+
export { forgeMissionModule } from "../os/mission/mission.module.js";
|
|
48
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;EAWE;AA6BF,sBAAsB;AACtB,OAAO,EACL,eAAe,EAEf,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,8BAA8B,EAG9B,WAAW,EACX,YAAY,EACZ,UAAU,EAEV,QAAQ,GACT,MAAM,kBAAkB,CAAC;AAK1B,eAAe;AACf,OAAO,EAAE,sBAAsB,EAAyB,MAAM,mBAAmB,CAAC;AAElF,iBAAiB;AACjB,OAAO,EAAE,YAAY,EAAwB,MAAM,eAAe,CAAC;AAEnE,0BAA0B;AAC1B,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,0BAA0B,EAC1B,aAAa,EACb,eAAe,EACf,uBAAuB,EACvB,qBAAqB,GAMtB,MAAM,0BAA0B,CAAC;AAElC,4BAA4B;AAC5B,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,GAGZ,MAAM,6BAA6B,CAAC;AAErC,aAAa;AACb,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,kCAAkC;AAClC,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEzF,aAAa;AACb,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAStE,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAChG,OAAO,EACL,yBAAyB,EACzB,iBAAiB,EACjB,WAAW,EACX,aAAa,EACb,cAAc,GACf,MAAM,+BAA+B,CAAC;AAEvC,aAAa;AACb,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-utils.d.ts","sourceRoot":"","sources":["../../../src/migration-adapters/git-utils.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,GAAG,IAAI,CA4BlG"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/*
|
|
2
|
+
<MODULE_CONTRACT>
|
|
3
|
+
<purpose>Shared git utilities for migration adapters — git init and git history transfer via format-patch + git am (RFC-0547).</purpose>
|
|
4
|
+
<non-goals>
|
|
5
|
+
<item>Do not import from @warpgogol/* — this module is portable.</item>
|
|
6
|
+
<item>Do not implement adapter-specific logic — only shared git operations.</item>
|
|
7
|
+
</non-goals>
|
|
8
|
+
</MODULE_CONTRACT>
|
|
9
|
+
<CHANGE_SUMMARY>
|
|
10
|
+
<item>RFC-0547: extract shared postSetup git logic from duplicated adapter implementations.</item>
|
|
11
|
+
</CHANGE_SUMMARY>
|
|
12
|
+
*/
|
|
13
|
+
import fs from "node:fs";
|
|
14
|
+
import path from "node:path";
|
|
15
|
+
import { execFileSync } from "node:child_process";
|
|
16
|
+
export function runPostSetup(sourceDir, targetDir, analysis) {
|
|
17
|
+
const gitDir = path.join(targetDir, ".git");
|
|
18
|
+
if (analysis.gitHistory) {
|
|
19
|
+
try {
|
|
20
|
+
const patchDir = path.join(targetDir, ".forge-migration-patches");
|
|
21
|
+
fs.mkdirSync(patchDir, { recursive: true });
|
|
22
|
+
execFileSync("git", ["-C", sourceDir, "format-patch", "--all", "-o", patchDir], { stdio: "pipe" });
|
|
23
|
+
execFileSync("git", ["init"], { cwd: targetDir, stdio: "pipe" });
|
|
24
|
+
const patches = fs.readdirSync(patchDir).filter((f) => f.endsWith(".patch")).sort();
|
|
25
|
+
if (patches.length > 0) {
|
|
26
|
+
for (const patch of patches) {
|
|
27
|
+
execFileSync("git", ["am", path.join(patchDir, patch)], { cwd: targetDir, stdio: "pipe" });
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
fs.rmSync(patchDir, { recursive: true, force: true });
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
catch (err) {
|
|
34
|
+
console.warn(`forge: git history transfer failed, falling back to clean git init: ${err instanceof Error ? err.message : String(err)}`);
|
|
35
|
+
if (!fs.existsSync(gitDir)) {
|
|
36
|
+
execFileSync("git", ["init"], { cwd: targetDir, stdio: "pipe" });
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
if (!fs.existsSync(gitDir)) {
|
|
42
|
+
execFileSync("git", ["init"], { cwd: targetDir, stdio: "pipe" });
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=git-utils.js.map
|