@warpgogol/forge 2.9.13 → 2.9.23
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/dist/bin/cli.d.ts +3 -0
- package/dist/bin/cli.d.ts.map +1 -0
- package/dist/bin/cli.js +291 -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 +146 -0
- package/dist/os/adr/adr.module.js.map +1 -0
- package/dist/os/adr/frontmatter-io.d.ts +12 -0
- package/dist/os/adr/frontmatter-io.d.ts.map +1 -0
- package/dist/os/adr/frontmatter-io.js +67 -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 +194 -0
- package/dist/os/adr/handlers/archive.js.map +1 -0
- package/dist/os/adr/handlers/implement-stamp.d.ts +4 -0
- package/dist/os/adr/handlers/implement-stamp.d.ts.map +1 -0
- package/dist/os/adr/handlers/implement-stamp.js +264 -0
- package/dist/os/adr/handlers/implement-stamp.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 +201 -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 +279 -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 +76 -0
- package/dist/os/adr/types.d.ts.map +1 -0
- package/dist/os/adr/types.js +56 -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 +45 -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 +71 -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 +207 -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 +183 -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 +260 -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 +222 -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 +377 -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 +462 -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 +57 -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 +836 -0
- package/dist/os/core/core.module.js.map +1 -0
- package/dist/os/core/handlers/assets-check.d.ts +19 -0
- package/dist/os/core/handlers/assets-check.d.ts.map +1 -0
- package/dist/os/core/handlers/assets-check.js +89 -0
- package/dist/os/core/handlers/assets-check.js.map +1 -0
- package/dist/os/core/handlers/assets-helpers.d.ts +28 -0
- package/dist/os/core/handlers/assets-helpers.d.ts.map +1 -0
- package/dist/os/core/handlers/assets-helpers.js +128 -0
- package/dist/os/core/handlers/assets-helpers.js.map +1 -0
- package/dist/os/core/handlers/assets-list.d.ts +9 -0
- package/dist/os/core/handlers/assets-list.d.ts.map +1 -0
- package/dist/os/core/handlers/assets-list.js +72 -0
- package/dist/os/core/handlers/assets-list.js.map +1 -0
- package/dist/os/core/handlers/build.d.ts +16 -0
- package/dist/os/core/handlers/build.d.ts.map +1 -0
- package/dist/os/core/handlers/build.js +123 -0
- package/dist/os/core/handlers/build.js.map +1 -0
- package/dist/os/core/handlers/determinism-check.d.ts +20 -0
- package/dist/os/core/handlers/determinism-check.d.ts.map +1 -0
- package/dist/os/core/handlers/determinism-check.js +289 -0
- package/dist/os/core/handlers/determinism-check.js.map +1 -0
- package/dist/os/core/handlers/dev.d.ts +10 -0
- package/dist/os/core/handlers/dev.d.ts.map +1 -0
- package/dist/os/core/handlers/dev.js +102 -0
- package/dist/os/core/handlers/dev.js.map +1 -0
- package/dist/os/core/handlers/forge-autonomy-validate.d.ts +18 -0
- package/dist/os/core/handlers/forge-autonomy-validate.d.ts.map +1 -0
- package/dist/os/core/handlers/forge-autonomy-validate.js +78 -0
- package/dist/os/core/handlers/forge-autonomy-validate.js.map +1 -0
- package/dist/os/core/handlers/knowledge-compact.d.ts +4 -0
- package/dist/os/core/handlers/knowledge-compact.d.ts.map +1 -0
- package/dist/os/core/handlers/knowledge-compact.js +204 -0
- package/dist/os/core/handlers/knowledge-compact.js.map +1 -0
- package/dist/os/core/handlers/package-health.d.ts +17 -0
- package/dist/os/core/handlers/package-health.d.ts.map +1 -0
- package/dist/os/core/handlers/package-health.js +196 -0
- package/dist/os/core/handlers/package-health.js.map +1 -0
- package/dist/os/core/handlers/pinned-check.d.ts +49 -0
- package/dist/os/core/handlers/pinned-check.d.ts.map +1 -0
- package/dist/os/core/handlers/pinned-check.js +159 -0
- package/dist/os/core/handlers/pinned-check.js.map +1 -0
- package/dist/os/core/handlers/pinned-init.d.ts +19 -0
- package/dist/os/core/handlers/pinned-init.d.ts.map +1 -0
- package/dist/os/core/handlers/pinned-init.js +283 -0
- package/dist/os/core/handlers/pinned-init.js.map +1 -0
- package/dist/os/core/handlers/pinned-types.d.ts +29 -0
- package/dist/os/core/handlers/pinned-types.d.ts.map +1 -0
- package/dist/os/core/handlers/pinned-types.js +16 -0
- package/dist/os/core/handlers/pinned-types.js.map +1 -0
- package/dist/os/core/handlers/pinned-validate.d.ts +4 -0
- package/dist/os/core/handlers/pinned-validate.d.ts.map +1 -0
- package/dist/os/core/handlers/pinned-validate.js +248 -0
- package/dist/os/core/handlers/pinned-validate.js.map +1 -0
- package/dist/os/core/handlers/profile-resolve.d.ts +13 -0
- package/dist/os/core/handlers/profile-resolve.d.ts.map +1 -0
- package/dist/os/core/handlers/profile-resolve.js +65 -0
- package/dist/os/core/handlers/profile-resolve.js.map +1 -0
- package/dist/os/core/handlers/release-prepare.d.ts +25 -0
- package/dist/os/core/handlers/release-prepare.d.ts.map +1 -0
- package/dist/os/core/handlers/release-prepare.js +228 -0
- package/dist/os/core/handlers/release-prepare.js.map +1 -0
- package/dist/os/core/handlers/release-publish.d.ts +13 -0
- package/dist/os/core/handlers/release-publish.d.ts.map +1 -0
- package/dist/os/core/handlers/release-publish.js +173 -0
- package/dist/os/core/handlers/release-publish.js.map +1 -0
- package/dist/os/core/handlers/validate.d.ts +26 -0
- package/dist/os/core/handlers/validate.d.ts.map +1 -0
- package/dist/os/core/handlers/validate.js +208 -0
- package/dist/os/core/handlers/validate.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/exploration/exploration.module.d.ts +3 -0
- package/dist/os/exploration/exploration.module.d.ts.map +1 -0
- package/dist/os/exploration/exploration.module.js +83 -0
- package/dist/os/exploration/exploration.module.js.map +1 -0
- package/dist/os/exploration/frontmatter-io.d.ts +13 -0
- package/dist/os/exploration/frontmatter-io.d.ts.map +1 -0
- package/dist/os/exploration/frontmatter-io.js +61 -0
- package/dist/os/exploration/frontmatter-io.js.map +1 -0
- package/dist/os/exploration/handlers/archive.d.ts +4 -0
- package/dist/os/exploration/handlers/archive.d.ts.map +1 -0
- package/dist/os/exploration/handlers/archive.js +141 -0
- package/dist/os/exploration/handlers/archive.js.map +1 -0
- package/dist/os/exploration/handlers/list.d.ts +4 -0
- package/dist/os/exploration/handlers/list.d.ts.map +1 -0
- package/dist/os/exploration/handlers/list.js +64 -0
- package/dist/os/exploration/handlers/list.js.map +1 -0
- package/dist/os/exploration/handlers/show.d.ts +4 -0
- package/dist/os/exploration/handlers/show.d.ts.map +1 -0
- package/dist/os/exploration/handlers/show.js +97 -0
- package/dist/os/exploration/handlers/show.js.map +1 -0
- package/dist/os/exploration/index.d.ts +7 -0
- package/dist/os/exploration/index.d.ts.map +1 -0
- package/dist/os/exploration/index.js +17 -0
- package/dist/os/exploration/index.js.map +1 -0
- package/dist/os/exploration/types.d.ts +38 -0
- package/dist/os/exploration/types.d.ts.map +1 -0
- package/dist/os/exploration/types.js +23 -0
- package/dist/os/exploration/types.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 +356 -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 +45 -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 +34 -0
- package/dist/os/naming/naming.module.js.map +1 -0
- package/dist/os/notes/index.d.ts +2 -0
- package/dist/os/notes/index.d.ts.map +1 -0
- package/dist/os/notes/index.js +10 -0
- package/dist/os/notes/index.js.map +1 -0
- package/dist/os/notes/notes.module.d.ts +3 -0
- package/dist/os/notes/notes.module.d.ts.map +1 -0
- package/dist/os/notes/notes.module.js +84 -0
- package/dist/os/notes/notes.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 +69 -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 +206 -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 +45 -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/plugin/plugin.module.d.ts +25 -0
- package/dist/os/plugin/plugin.module.d.ts.map +1 -0
- package/dist/os/plugin/plugin.module.js +208 -0
- package/dist/os/plugin/plugin.module.js.map +1 -0
- package/dist/os/program/discovery.d.ts +61 -0
- package/dist/os/program/discovery.d.ts.map +1 -0
- package/dist/os/program/discovery.js +236 -0
- package/dist/os/program/discovery.js.map +1 -0
- package/dist/os/program/handlers/complete.d.ts +12 -0
- package/dist/os/program/handlers/complete.d.ts.map +1 -0
- package/dist/os/program/handlers/complete.js +362 -0
- package/dist/os/program/handlers/complete.js.map +1 -0
- package/dist/os/program/handlers/lease.d.ts +13 -0
- package/dist/os/program/handlers/lease.d.ts.map +1 -0
- package/dist/os/program/handlers/lease.js +328 -0
- package/dist/os/program/handlers/lease.js.map +1 -0
- package/dist/os/program/handlers/seal.d.ts +12 -0
- package/dist/os/program/handlers/seal.d.ts.map +1 -0
- package/dist/os/program/handlers/seal.js +277 -0
- package/dist/os/program/handlers/seal.js.map +1 -0
- package/dist/os/program/handlers/validate.d.ts +14 -0
- package/dist/os/program/handlers/validate.d.ts.map +1 -0
- package/dist/os/program/handlers/validate.js +170 -0
- package/dist/os/program/handlers/validate.js.map +1 -0
- package/dist/os/program/lease.d.ts +39 -0
- package/dist/os/program/lease.d.ts.map +1 -0
- package/dist/os/program/lease.js +129 -0
- package/dist/os/program/lease.js.map +1 -0
- package/dist/os/program/program.module.d.ts +3 -0
- package/dist/os/program/program.module.d.ts.map +1 -0
- package/dist/os/program/program.module.js +202 -0
- package/dist/os/program/program.module.js.map +1 -0
- package/dist/os/program/schemas.d.ts +225 -0
- package/dist/os/program/schemas.d.ts.map +1 -0
- package/dist/os/program/schemas.js +174 -0
- package/dist/os/program/schemas.js.map +1 -0
- package/dist/os/program/state.d.ts +38 -0
- package/dist/os/program/state.d.ts.map +1 -0
- package/dist/os/program/state.js +189 -0
- package/dist/os/program/state.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 +318 -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 +18 -0
- package/dist/os/rfc/frontmatter-io.d.ts.map +1 -0
- package/dist/os/rfc/frontmatter-io.js +110 -0
- package/dist/os/rfc/frontmatter-io.js.map +1 -0
- package/dist/os/rfc/handlers/archive.d.ts +25 -0
- package/dist/os/rfc/handlers/archive.d.ts.map +1 -0
- package/dist/os/rfc/handlers/archive.js +247 -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 +203 -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 +426 -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 +192 -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 +155 -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 +260 -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 +105 -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 +203 -0
- package/dist/os/rfc/handlers/supersede-propose.js.map +1 -0
- package/dist/os/rfc/handlers/validate-rules.d.ts +32 -0
- package/dist/os/rfc/handlers/validate-rules.d.ts.map +1 -0
- package/dist/os/rfc/handlers/validate-rules.js +590 -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 +122 -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 +367 -0
- package/dist/os/rfc/rfc.module.js.map +1 -0
- package/dist/os/rfc/types.d.ts +483 -0
- package/dist/os/rfc/types.d.ts.map +1 -0
- package/dist/os/rfc/types.js +100 -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 +184 -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 +140 -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 +241 -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 +297 -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 +224 -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 +116 -0
- package/dist/os/session/session.module.js.map +1 -0
- package/dist/os/session/types.d.ts +131 -0
- package/dist/os/session/types.d.ts.map +1 -0
- package/dist/os/session/types.js +59 -0
- package/dist/os/session/types.js.map +1 -0
- package/dist/os/spec/live-spec-list.d.ts +4 -0
- package/dist/os/spec/live-spec-list.d.ts.map +1 -0
- package/dist/os/spec/live-spec-list.js +72 -0
- package/dist/os/spec/live-spec-list.js.map +1 -0
- package/dist/os/spec/live-spec-merge.d.ts +4 -0
- package/dist/os/spec/live-spec-merge.d.ts.map +1 -0
- package/dist/os/spec/live-spec-merge.js +345 -0
- package/dist/os/spec/live-spec-merge.js.map +1 -0
- package/dist/os/spec/live-spec-show.d.ts +4 -0
- package/dist/os/spec/live-spec-show.d.ts.map +1 -0
- package/dist/os/spec/live-spec-show.js +105 -0
- package/dist/os/spec/live-spec-show.js.map +1 -0
- package/dist/os/spec/live-spec-types.d.ts +71 -0
- package/dist/os/spec/live-spec-types.d.ts.map +1 -0
- package/dist/os/spec/live-spec-types.js +14 -0
- package/dist/os/spec/live-spec-types.js.map +1 -0
- package/dist/os/spec/live-spec-validate.d.ts +4 -0
- package/dist/os/spec/live-spec-validate.d.ts.map +1 -0
- package/dist/os/spec/live-spec-validate.js +140 -0
- package/dist/os/spec/live-spec-validate.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 +126 -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 +228 -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 +120 -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 +153 -0
- package/dist/os/werkstatt/handlers/lock.js.map +1 -0
- package/dist/os/werkstatt/handlers/schema.d.ts +33 -0
- package/dist/os/werkstatt/handlers/schema.d.ts.map +1 -0
- package/dist/os/werkstatt/handlers/schema.js +42 -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 +152 -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 +51 -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/handlers/workspace-deps.d.ts +12 -0
- package/dist/os/werkstatt/handlers/workspace-deps.d.ts.map +1 -0
- package/dist/os/werkstatt/handlers/workspace-deps.js +42 -0
- package/dist/os/werkstatt/handlers/workspace-deps.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 +59 -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 +262 -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 +49 -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 +53 -0
- package/dist/src/cli-output.js.map +1 -0
- package/dist/src/compass/contract-registry.d.ts +7 -0
- package/dist/src/compass/contract-registry.d.ts.map +1 -0
- package/dist/src/compass/contract-registry.js +93 -0
- package/dist/src/compass/contract-registry.js.map +1 -0
- package/dist/src/compass/types.d.ts +28 -0
- package/dist/src/compass/types.d.ts.map +1 -0
- package/dist/src/compass/types.js +14 -0
- package/dist/src/compass/types.js.map +1 -0
- package/dist/src/config/forge-config.d.ts +242 -0
- package/dist/src/config/forge-config.d.ts.map +1 -0
- package/dist/src/config/forge-config.js +363 -0
- package/dist/src/config/forge-config.js.map +1 -0
- package/dist/src/forge-module.d.ts +17 -0
- package/dist/src/forge-module.d.ts.map +1 -0
- package/dist/src/forge-module.js +16 -0
- package/dist/src/forge-module.js.map +1 -0
- package/dist/src/index.d.ts +39 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +59 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/knowledge/budgets.d.ts +38 -0
- package/dist/src/knowledge/budgets.d.ts.map +1 -0
- package/dist/src/knowledge/budgets.js +157 -0
- package/dist/src/knowledge/budgets.js.map +1 -0
- package/dist/src/knowledge/compact.d.ts +47 -0
- package/dist/src/knowledge/compact.d.ts.map +1 -0
- package/dist/src/knowledge/compact.js +320 -0
- package/dist/src/knowledge/compact.js.map +1 -0
- package/dist/src/knowledge/index.d.ts +7 -0
- package/dist/src/knowledge/index.d.ts.map +1 -0
- package/dist/src/knowledge/index.js +19 -0
- package/dist/src/knowledge/index.js.map +1 -0
- package/dist/src/knowledge/parse.d.ts +3 -0
- package/dist/src/knowledge/parse.d.ts.map +1 -0
- package/dist/src/knowledge/parse.js +205 -0
- package/dist/src/knowledge/parse.js.map +1 -0
- package/dist/src/knowledge/promote.d.ts +37 -0
- package/dist/src/knowledge/promote.d.ts.map +1 -0
- package/dist/src/knowledge/promote.js +120 -0
- package/dist/src/knowledge/promote.js.map +1 -0
- package/dist/src/knowledge/schema.d.ts +61 -0
- package/dist/src/knowledge/schema.d.ts.map +1 -0
- package/dist/src/knowledge/schema.js +64 -0
- package/dist/src/knowledge/schema.js.map +1 -0
- package/dist/src/knowledge/serialize.d.ts +3 -0
- package/dist/src/knowledge/serialize.d.ts.map +1 -0
- package/dist/src/knowledge/serialize.js +67 -0
- package/dist/src/knowledge/serialize.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 +64 -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 +55 -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 +31 -0
- package/dist/src/onboarding/agents-generate.d.ts.map +1 -0
- package/dist/src/onboarding/agents-generate.js +372 -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 +389 -0
- package/dist/src/onboarding/create.js.map +1 -0
- package/dist/src/onboarding/doctor.d.ts +45 -0
- package/dist/src/onboarding/doctor.d.ts.map +1 -0
- package/dist/src/onboarding/doctor.js +1190 -0
- package/dist/src/onboarding/doctor.js.map +1 -0
- package/dist/src/onboarding/init.d.ts +36 -0
- package/dist/src/onboarding/init.d.ts.map +1 -0
- package/dist/src/onboarding/init.js +362 -0
- package/dist/src/onboarding/init.js.map +1 -0
- package/dist/src/onboarding/invariant-engine.d.ts +17 -0
- package/dist/src/onboarding/invariant-engine.d.ts.map +1 -0
- package/dist/src/onboarding/invariant-engine.js +416 -0
- package/dist/src/onboarding/invariant-engine.js.map +1 -0
- package/dist/src/onboarding/memory-scaffold.d.ts +18 -0
- package/dist/src/onboarding/memory-scaffold.d.ts.map +1 -0
- package/dist/src/onboarding/memory-scaffold.js +151 -0
- package/dist/src/onboarding/memory-scaffold.js.map +1 -0
- package/dist/src/onboarding/nested-agents-generate.d.ts +18 -0
- package/dist/src/onboarding/nested-agents-generate.d.ts.map +1 -0
- package/dist/src/onboarding/nested-agents-generate.js +69 -0
- package/dist/src/onboarding/nested-agents-generate.js.map +1 -0
- package/dist/src/onboarding/nested-agents-templates.d.ts +26 -0
- package/dist/src/onboarding/nested-agents-templates.d.ts.map +1 -0
- package/dist/src/onboarding/nested-agents-templates.js +178 -0
- package/dist/src/onboarding/nested-agents-templates.js.map +1 -0
- package/dist/src/onboarding/profile-validate.d.ts +13 -0
- package/dist/src/onboarding/profile-validate.d.ts.map +1 -0
- package/dist/src/onboarding/profile-validate.js +109 -0
- package/dist/src/onboarding/profile-validate.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 +264 -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 +121 -0
- package/dist/src/onboarding/scaffold.js.map +1 -0
- package/dist/src/onboarding/upgrade.d.ts +27 -0
- package/dist/src/onboarding/upgrade.d.ts.map +1 -0
- package/dist/src/onboarding/upgrade.js +453 -0
- package/dist/src/onboarding/upgrade.js.map +1 -0
- package/dist/src/onboarding/workspace-discovery.d.ts +11 -0
- package/dist/src/onboarding/workspace-discovery.d.ts.map +1 -0
- package/dist/src/onboarding/workspace-discovery.js +138 -0
- package/dist/src/onboarding/workspace-discovery.js.map +1 -0
- package/dist/src/plugin/ForgePluginManifest.d.ts +38 -0
- package/dist/src/plugin/ForgePluginManifest.d.ts.map +1 -0
- package/dist/src/plugin/ForgePluginManifest.js +52 -0
- package/dist/src/plugin/ForgePluginManifest.js.map +1 -0
- package/dist/src/profiles/profile-schema.d.ts +361 -0
- package/dist/src/profiles/profile-schema.d.ts.map +1 -0
- package/dist/src/profiles/profile-schema.js +208 -0
- package/dist/src/profiles/profile-schema.js.map +1 -0
- package/dist/src/profiles/stack-profile.d.ts +173 -0
- package/dist/src/profiles/stack-profile.d.ts.map +1 -0
- package/dist/src/profiles/stack-profile.js +148 -0
- package/dist/src/profiles/stack-profile.js.map +1 -0
- package/dist/src/profiles/terminology-utils.d.ts +8 -0
- package/dist/src/profiles/terminology-utils.d.ts.map +1 -0
- package/dist/src/profiles/terminology-utils.js +31 -0
- package/dist/src/profiles/terminology-utils.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 +174 -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 +154 -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 +39 -0
- package/dist/src/utils/fs-idempotent.js.map +1 -0
- package/dist/src/utils/fs-trash-sync.d.ts +2 -0
- package/dist/src/utils/fs-trash-sync.d.ts.map +1 -0
- package/dist/src/utils/fs-trash-sync.js +34 -0
- package/dist/src/utils/fs-trash-sync.js.map +1 -0
- package/dist/src/utils/fs-trash.d.ts +2 -0
- package/dist/src/utils/fs-trash.d.ts.map +1 -0
- package/dist/src/utils/fs-trash.js +24 -0
- package/dist/src/utils/fs-trash.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 +9 -0
- package/dist/src/utils/index.d.ts.map +1 -0
- package/dist/src/utils/index.js +21 -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/note-frontmatter-validate.d.ts +20 -0
- package/dist/src/validators/note-frontmatter-validate.d.ts.map +1 -0
- package/dist/src/validators/note-frontmatter-validate.js +117 -0
- package/dist/src/validators/note-frontmatter-validate.js.map +1 -0
- package/dist/src/validators/note-link-validate.d.ts +21 -0
- package/dist/src/validators/note-link-validate.d.ts.map +1 -0
- package/dist/src/validators/note-link-validate.js +121 -0
- package/dist/src/validators/note-link-validate.js.map +1 -0
- package/dist/src/validators/note-orphan-detect.d.ts +19 -0
- package/dist/src/validators/note-orphan-detect.d.ts.map +1 -0
- package/dist/src/validators/note-orphan-detect.js +123 -0
- package/dist/src/validators/note-orphan-detect.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 +78 -0
- package/dist/src/validators/port-validate.js.map +1 -0
- package/dist/src/validators/skill-validate.d.ts +29 -0
- package/dist/src/validators/skill-validate.d.ts.map +1 -0
- package/dist/src/validators/skill-validate.js +689 -0
- package/dist/src/validators/skill-validate.js.map +1 -0
- package/os/adr/adr.module.ts +1 -0
- package/os/audit/audit.module.ts +1 -0
- package/os/compass/compass.module.ts +1 -0
- package/os/compass/handlers/compass-inventory-handler.ts +107 -1
- package/os/core/core.module.ts +18 -0
- package/os/core/handlers/assets-helpers.ts +1 -1
- package/os/core/handlers/determinism-check.ts +1 -1
- package/os/core/handlers/forge-autonomy-validate.ts +115 -0
- package/os/core/handlers/knowledge-compact.ts +6 -1
- package/os/core/handlers/release-prepare.ts +1 -1
- package/os/exploration/exploration.module.ts +1 -0
- package/os/mission/mission.module.ts +1 -0
- package/os/naming/naming.module.ts +1 -0
- package/os/notes/notes.module.ts +1 -0
- package/os/plan/plan.module.ts +1 -0
- package/os/plugin/plugin.module.ts +261 -0
- package/os/program/program.module.ts +1 -0
- package/os/rfc/rfc.module.ts +1 -0
- package/os/session/session.module.ts +1 -0
- package/os/spec/spec.module.ts +1 -0
- package/os/{core → werkstatt}/handlers/workspace-deps.ts +4 -3
- package/os/werkstatt/werkstatt.module.ts +1 -0
- package/os/workflow/workflow.module.ts +1 -0
- package/package.json +13 -3
- package/profiles/forge-shell.yaml +1 -1
- package/profiles/godot-csharp.yaml +13 -13
- package/profiles/knowledge-typescript-turborepo.yaml +1 -1
- package/profiles/phaser-turborepo.yaml +13 -13
- package/skills/fo/fo-add-tests/SKILL.md +54 -0
- package/skills/fo/fo-compass-annotate/SKILL.md +1 -0
- package/skills/fo/fo-idea-implement/SKILL.md +80 -0
- package/src/compass/contract-registry.ts +114 -0
- package/src/compass/types.ts +45 -0
- package/src/forge-module.ts +3 -1
- package/src/index.ts +17 -0
- package/src/onboarding/doctor.ts +89 -7
- package/src/onboarding/init.ts +20 -1
- package/src/onboarding/scaffold.ts +1 -0
- package/src/onboarding/templates/behavioral-layer-core.md +9 -0
- package/src/onboarding/upgrade.ts +6 -1
- package/src/plugin/ForgePluginManifest.ts +76 -0
- package/src/registry.ts +36 -0
- package/src/tests/contract-registry.test.ts +248 -0
- package/src/tests/discover-pack-skills.test.ts +112 -0
- package/src/tests/doctor-autonomy.test.ts +3 -3
- package/src/tests/fixtures/agents-generate-business-before.txt +9 -0
- package/src/tests/forge-autonomy-validate.test.ts +157 -0
- package/src/tests/plugin-manifest.test.ts +226 -0
- package/src/tests/upgrade.test.ts +5 -0
- package/src/validators/port-validate.ts +3 -3
- package/AGENTS.md +0 -397
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
/*
|
|
2
|
+
<MODULE_CONTRACT>
|
|
3
|
+
<purpose>forgePluginModule — registers forge.plugin.validate and forge.plugin.discover commands for pack manifest validation (RFC-0941).</purpose>
|
|
4
|
+
<non-goals>
|
|
5
|
+
<item>Do not implement skill discovery logic — delegate to discoverPackSkills in registry.ts.</item>
|
|
6
|
+
<item>Do not modify forge.yaml — this module reads config only.</item>
|
|
7
|
+
</non-goals>
|
|
8
|
+
</MODULE_CONTRACT>
|
|
9
|
+
<CHANGE_SUMMARY>
|
|
10
|
+
<item>RFC-0941: initial forgePluginModule with forge.plugin.validate and forge.plugin.discover commands.</item>
|
|
11
|
+
</CHANGE_SUMMARY>
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
import path from "node:path";
|
|
15
|
+
import fs from "node:fs";
|
|
16
|
+
import { parse as parseYaml } from "yaml";
|
|
17
|
+
import type { ForgeModule } from "../../src/forge-module.ts";
|
|
18
|
+
import type {
|
|
19
|
+
ForgeCommandInput,
|
|
20
|
+
ForgeCommandResult,
|
|
21
|
+
ForgeRuntimeContext,
|
|
22
|
+
} from "../../src/types.ts";
|
|
23
|
+
import { loadForgeConfig } from "../../src/config/forge-config.ts";
|
|
24
|
+
import { forgePluginManifestSchema } from "../../src/plugin/ForgePluginManifest.ts";
|
|
25
|
+
|
|
26
|
+
export interface PluginValidateResult {
|
|
27
|
+
command: "forge.plugin.validate";
|
|
28
|
+
status: "pass" | "fail";
|
|
29
|
+
packs: Array<{
|
|
30
|
+
prefix: string;
|
|
31
|
+
dir: string;
|
|
32
|
+
manifestPath: string;
|
|
33
|
+
valid: boolean;
|
|
34
|
+
errors: string[];
|
|
35
|
+
}>;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export interface PluginDiscoverResult {
|
|
39
|
+
command: "forge.plugin.discover";
|
|
40
|
+
packs: Array<{
|
|
41
|
+
prefix: string;
|
|
42
|
+
dir: string;
|
|
43
|
+
manifestPath: string;
|
|
44
|
+
id: string;
|
|
45
|
+
version: string;
|
|
46
|
+
}>;
|
|
47
|
+
count: number;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
function runPluginValidate(
|
|
51
|
+
_input: ForgeCommandInput,
|
|
52
|
+
context: ForgeRuntimeContext,
|
|
53
|
+
): ForgeCommandResult<PluginValidateResult> {
|
|
54
|
+
const workspaceRoot = context.workspaceRoot;
|
|
55
|
+
const packs: PluginValidateResult["packs"] = [];
|
|
56
|
+
let allValid = true;
|
|
57
|
+
|
|
58
|
+
try {
|
|
59
|
+
const config = loadForgeConfig(workspaceRoot);
|
|
60
|
+
|
|
61
|
+
if (!config.skillPacks || config.skillPacks.length === 0) {
|
|
62
|
+
return {
|
|
63
|
+
data: {
|
|
64
|
+
command: "forge.plugin.validate",
|
|
65
|
+
status: "pass",
|
|
66
|
+
packs: [],
|
|
67
|
+
},
|
|
68
|
+
summary: "[forge.plugin.validate] OK — 0 packs declared",
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
for (const pack of config.skillPacks) {
|
|
73
|
+
const packDir = path.resolve(workspaceRoot, pack.dir);
|
|
74
|
+
const manifestPath = path.join(packDir, "forge.plugin.yaml");
|
|
75
|
+
|
|
76
|
+
if (!fs.existsSync(manifestPath)) {
|
|
77
|
+
allValid = false;
|
|
78
|
+
packs.push({
|
|
79
|
+
prefix: pack.prefix,
|
|
80
|
+
dir: pack.dir,
|
|
81
|
+
manifestPath,
|
|
82
|
+
valid: false,
|
|
83
|
+
errors: ["forge.plugin.yaml not found at pack root"],
|
|
84
|
+
});
|
|
85
|
+
continue;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
let raw: string;
|
|
89
|
+
try {
|
|
90
|
+
raw = fs.readFileSync(manifestPath, "utf-8");
|
|
91
|
+
} catch (err) {
|
|
92
|
+
allValid = false;
|
|
93
|
+
packs.push({
|
|
94
|
+
prefix: pack.prefix,
|
|
95
|
+
dir: pack.dir,
|
|
96
|
+
manifestPath,
|
|
97
|
+
valid: false,
|
|
98
|
+
errors: [`Failed to read manifest: ${(err as Error).message}`],
|
|
99
|
+
});
|
|
100
|
+
continue;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
let parsed: unknown;
|
|
104
|
+
try {
|
|
105
|
+
parsed = parseYaml(raw);
|
|
106
|
+
} catch (err) {
|
|
107
|
+
allValid = false;
|
|
108
|
+
packs.push({
|
|
109
|
+
prefix: pack.prefix,
|
|
110
|
+
dir: pack.dir,
|
|
111
|
+
manifestPath,
|
|
112
|
+
valid: false,
|
|
113
|
+
errors: [`YAML parse error: ${(err as Error).message}`],
|
|
114
|
+
});
|
|
115
|
+
continue;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
const result = forgePluginManifestSchema.safeParse(parsed);
|
|
119
|
+
if (!result.success) {
|
|
120
|
+
allValid = false;
|
|
121
|
+
packs.push({
|
|
122
|
+
prefix: pack.prefix,
|
|
123
|
+
dir: pack.dir,
|
|
124
|
+
manifestPath,
|
|
125
|
+
valid: false,
|
|
126
|
+
errors: result.error.issues.map((issue) => `${issue.path.join(".")}: ${issue.message}`),
|
|
127
|
+
});
|
|
128
|
+
continue;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
packs.push({
|
|
132
|
+
prefix: pack.prefix,
|
|
133
|
+
dir: pack.dir,
|
|
134
|
+
manifestPath,
|
|
135
|
+
valid: true,
|
|
136
|
+
errors: [],
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
} catch (err) {
|
|
140
|
+
return {
|
|
141
|
+
data: {
|
|
142
|
+
command: "forge.plugin.validate",
|
|
143
|
+
status: "fail",
|
|
144
|
+
packs: [],
|
|
145
|
+
},
|
|
146
|
+
exitCode: 1,
|
|
147
|
+
summary: `[forge.plugin.validate] FAIL — ${(err as Error).message}`,
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
const status = allValid ? "pass" : "fail";
|
|
152
|
+
return {
|
|
153
|
+
data: {
|
|
154
|
+
command: "forge.plugin.validate",
|
|
155
|
+
status,
|
|
156
|
+
packs,
|
|
157
|
+
},
|
|
158
|
+
...(status === "fail" ? { exitCode: 1 } : {}),
|
|
159
|
+
summary:
|
|
160
|
+
status === "pass"
|
|
161
|
+
? `[forge.plugin.validate] OK — ${packs.length} pack(s) valid`
|
|
162
|
+
: `[forge.plugin.validate] FAIL — ${packs.filter((p) => !p.valid).length} pack(s) with errors`,
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
function runPluginDiscover(
|
|
167
|
+
_input: ForgeCommandInput,
|
|
168
|
+
context: ForgeRuntimeContext,
|
|
169
|
+
): ForgeCommandResult<PluginDiscoverResult> {
|
|
170
|
+
const workspaceRoot = context.workspaceRoot;
|
|
171
|
+
const packs: PluginDiscoverResult["packs"] = [];
|
|
172
|
+
|
|
173
|
+
try {
|
|
174
|
+
const config = loadForgeConfig(workspaceRoot);
|
|
175
|
+
|
|
176
|
+
if (!config.skillPacks || config.skillPacks.length === 0) {
|
|
177
|
+
return {
|
|
178
|
+
data: {
|
|
179
|
+
command: "forge.plugin.discover",
|
|
180
|
+
packs: [],
|
|
181
|
+
count: 0,
|
|
182
|
+
},
|
|
183
|
+
summary: "[forge.plugin.discover] 0 packs discovered",
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
for (const pack of config.skillPacks) {
|
|
188
|
+
const packDir = path.resolve(workspaceRoot, pack.dir);
|
|
189
|
+
const manifestPath = path.join(packDir, "forge.plugin.yaml");
|
|
190
|
+
|
|
191
|
+
if (!fs.existsSync(manifestPath)) continue;
|
|
192
|
+
|
|
193
|
+
let raw: string;
|
|
194
|
+
try {
|
|
195
|
+
raw = fs.readFileSync(manifestPath, "utf-8");
|
|
196
|
+
} catch {
|
|
197
|
+
continue;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
let parsed: unknown;
|
|
201
|
+
try {
|
|
202
|
+
parsed = parseYaml(raw);
|
|
203
|
+
} catch {
|
|
204
|
+
continue;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
const result = forgePluginManifestSchema.safeParse(parsed);
|
|
208
|
+
if (!result.success) continue;
|
|
209
|
+
|
|
210
|
+
packs.push({
|
|
211
|
+
prefix: pack.prefix,
|
|
212
|
+
dir: pack.dir,
|
|
213
|
+
manifestPath,
|
|
214
|
+
id: result.data.id,
|
|
215
|
+
version: result.data.version,
|
|
216
|
+
});
|
|
217
|
+
}
|
|
218
|
+
} catch {
|
|
219
|
+
// Config not found or invalid — return empty
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
return {
|
|
223
|
+
data: {
|
|
224
|
+
command: "forge.plugin.discover",
|
|
225
|
+
packs,
|
|
226
|
+
count: packs.length,
|
|
227
|
+
},
|
|
228
|
+
summary: `[forge.plugin.discover] ${packs.length} pack(s) discovered`,
|
|
229
|
+
};
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
export const forgePluginModule: ForgeModule = {
|
|
233
|
+
name: "forge-plugin",
|
|
234
|
+
version: "0.1.0",
|
|
235
|
+
runtime: "autonomous",
|
|
236
|
+
async register(registry) {
|
|
237
|
+
registry.registerCommand({
|
|
238
|
+
name: "forge.plugin.validate",
|
|
239
|
+
description:
|
|
240
|
+
"Validate forge.plugin.yaml manifests for all declared skill packs (RFC-0941). Checks manifest schema (id: kebab-case, version: semver) and reports missing or invalid manifests.",
|
|
241
|
+
scope: "workspace",
|
|
242
|
+
supportsAllSites: false,
|
|
243
|
+
flags: {},
|
|
244
|
+
reads: ["forge.yaml", "**/forge.plugin.yaml"],
|
|
245
|
+
cacheable: false,
|
|
246
|
+
execute: runPluginValidate,
|
|
247
|
+
});
|
|
248
|
+
|
|
249
|
+
registry.registerCommand({
|
|
250
|
+
name: "forge.plugin.discover",
|
|
251
|
+
description:
|
|
252
|
+
"Enumerate all project-declared skill packs with valid forge.plugin.yaml manifests (RFC-0941). Returns pack id, version, prefix, and directory.",
|
|
253
|
+
scope: "workspace",
|
|
254
|
+
supportsAllSites: false,
|
|
255
|
+
flags: {},
|
|
256
|
+
reads: ["forge.yaml", "**/forge.plugin.yaml"],
|
|
257
|
+
cacheable: false,
|
|
258
|
+
execute: runPluginDiscover,
|
|
259
|
+
});
|
|
260
|
+
},
|
|
261
|
+
};
|
|
@@ -16,6 +16,7 @@ import type { ForgeModule } from "../../src/forge-module.ts";
|
|
|
16
16
|
export const forgeProgramModule: ForgeModule = {
|
|
17
17
|
name: "forge-program",
|
|
18
18
|
version: "0.1.0",
|
|
19
|
+
runtime: "autonomous",
|
|
19
20
|
|
|
20
21
|
async register(registry) {
|
|
21
22
|
const { runValidate } = await import("./handlers/validate.ts");
|
package/os/rfc/rfc.module.ts
CHANGED
|
@@ -15,6 +15,7 @@ import type { ForgeModule } from "../../src/forge-module.ts";
|
|
|
15
15
|
export const forgeSessionModule: ForgeModule = {
|
|
16
16
|
name: "forge-session",
|
|
17
17
|
version: "0.1.0",
|
|
18
|
+
runtime: "autonomous",
|
|
18
19
|
async register(registry) {
|
|
19
20
|
const { runSessionSave } = await import("./handlers/save.ts");
|
|
20
21
|
const { runSessionArchive } = await import("./handlers/archive.ts");
|
package/os/spec/spec.module.ts
CHANGED
|
@@ -17,6 +17,7 @@ import type { ForgeModule } from "../../src/forge-module.ts";
|
|
|
17
17
|
export const forgeSpecModule: ForgeModule = {
|
|
18
18
|
name: "forge-spec",
|
|
19
19
|
version: "0.2.0",
|
|
20
|
+
runtime: "autonomous",
|
|
20
21
|
async register(registry) {
|
|
21
22
|
const { runSpecValidate } = await import("./spec-validate.ts");
|
|
22
23
|
const { runSpecStatus } = await import("./spec-status.ts");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*
|
|
2
2
|
<MODULE_CONTRACT>
|
|
3
|
-
<purpose>Lazy dynamic-import bridge for @warpgogol/werkstatt/fingerprint and @warpgogol/werkstatt-shared/share/fs. These workspace packages are not published to npm — when forge is installed standalone from npm, they are unavailable and handlers that depend on them must degrade gracefully.</purpose>
|
|
3
|
+
<purpose>Lazy dynamic-import bridge for @warpgogol/werkstatt-engine/fingerprint and @warpgogol/werkstatt-shared/share/fs. These workspace packages are not published to npm — when forge is installed standalone from npm, they are unavailable and handlers that depend on them must degrade gracefully.</purpose>
|
|
4
4
|
<non-goals>
|
|
5
5
|
<item>Do not re-export types from @warpgogol/* — only runtime functions.</item>
|
|
6
6
|
<item>Do not use static imports — that would break npm installs without workspace deps.</item>
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
</MODULE_CONTRACT>
|
|
9
9
|
<CHANGE_SUMMARY>
|
|
10
10
|
<item>RFC-0682: extract dynamic-import helper so forge publishes without workspace:* deps.</item>
|
|
11
|
+
<item>RFC-0940: moved from os/core/handlers/ to os/werkstatt/handlers/ — this module imports @warpgogol/werkstatt-engine and belongs in the adapter directory.</item>
|
|
11
12
|
</CHANGE_SUMMARY>
|
|
12
13
|
*/
|
|
13
14
|
|
|
@@ -39,7 +40,7 @@ export async function loadWorkspaceDeps(): Promise<WorkspaceDeps> {
|
|
|
39
40
|
const shareMod = await import("@warpgogol/werkstatt-shared/share/fs");
|
|
40
41
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
41
42
|
// @ts-ignore — workspace dep, may not be installed when forge is used standalone from npm
|
|
42
|
-
const fpMod = await import("@warpgogol/werkstatt/fingerprint");
|
|
43
|
+
const fpMod = await import("@warpgogol/werkstatt-engine/fingerprint");
|
|
43
44
|
cached = {
|
|
44
45
|
collectFiles: shareMod.collectFiles as CollectFilesFn,
|
|
45
46
|
byteHashFile: fpMod.byteHashFile as ByteHashFileFn,
|
|
@@ -47,7 +48,7 @@ export async function loadWorkspaceDeps(): Promise<WorkspaceDeps> {
|
|
|
47
48
|
return cached;
|
|
48
49
|
} catch (err) {
|
|
49
50
|
loadError =
|
|
50
|
-
`@warpgogol/werkstatt/fingerprint and @warpgogol/werkstatt-shared/share are required for this command but not installed. ` +
|
|
51
|
+
`@warpgogol/werkstatt-engine/fingerprint and @warpgogol/werkstatt-shared/share are required for this command but not installed. ` +
|
|
51
52
|
`When using forge standalone from npm, install them separately or use forge within the warpgogol workspace. ` +
|
|
52
53
|
`Error: ${(err as Error).message}`;
|
|
53
54
|
throw new Error(loadError);
|
|
@@ -19,6 +19,7 @@ import { runWerkstattOperationValidate } from "./handlers/werkstatt-operation-va
|
|
|
19
19
|
export const forgeWerkstattModule: ForgeModule = {
|
|
20
20
|
name: "forge-werkstatt",
|
|
21
21
|
version: "0.1.0",
|
|
22
|
+
runtime: "werkstatt-adapter",
|
|
22
23
|
async register(registry) {
|
|
23
24
|
registry.registerCommand({
|
|
24
25
|
name: "werkstatt.lock.status",
|
|
@@ -16,6 +16,7 @@ import type { ForgeModule } from "../../src/forge-module.ts";
|
|
|
16
16
|
export const forgeWorkflowModule: ForgeModule = {
|
|
17
17
|
name: "workflow",
|
|
18
18
|
version: "0.1.0",
|
|
19
|
+
runtime: "autonomous",
|
|
19
20
|
async register(registry) {
|
|
20
21
|
const { runWorkflowLint, runWorkflowList, runWorkflowAmendList } =
|
|
21
22
|
await import("./handlers.ts");
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@warpgogol/forge",
|
|
3
|
-
"version": "2.9.
|
|
3
|
+
"version": "2.9.23",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -140,6 +140,10 @@
|
|
|
140
140
|
"./os/program": {
|
|
141
141
|
"types": "./os/program/program.module.ts",
|
|
142
142
|
"default": "./os/program/program.module.ts"
|
|
143
|
+
},
|
|
144
|
+
"./os/plugin": {
|
|
145
|
+
"types": "./os/plugin/plugin.module.ts",
|
|
146
|
+
"default": "./os/plugin/plugin.module.ts"
|
|
143
147
|
}
|
|
144
148
|
},
|
|
145
149
|
"files": [
|
|
@@ -166,14 +170,16 @@
|
|
|
166
170
|
},
|
|
167
171
|
"dependencies": {
|
|
168
172
|
"@aws-sdk/client-s3": "^3.700.0",
|
|
173
|
+
"picomatch": "^4.0.5",
|
|
169
174
|
"trash": "^10.1.1",
|
|
170
175
|
"yaml": "^2.9.0",
|
|
171
176
|
"zod": "^4.4.3"
|
|
172
177
|
},
|
|
173
178
|
"devDependencies": {
|
|
174
179
|
"@types/node": "^24.0.0",
|
|
175
|
-
"@
|
|
176
|
-
"@warpgogol/werkstatt-
|
|
180
|
+
"@types/picomatch": "^4.0.2",
|
|
181
|
+
"@warpgogol/werkstatt-engine": "*",
|
|
182
|
+
"@warpgogol/werkstatt-shared": "^0.8.6",
|
|
177
183
|
"eslint": "^10.8.0",
|
|
178
184
|
"fast-check": "^4.9.0",
|
|
179
185
|
"typescript": "^6.0.3",
|
|
@@ -303,6 +309,10 @@
|
|
|
303
309
|
"./os/program": {
|
|
304
310
|
"types": "./dist/os/program/program.module.d.ts",
|
|
305
311
|
"default": "./dist/os/program/program.module.js"
|
|
312
|
+
},
|
|
313
|
+
"./os/plugin": {
|
|
314
|
+
"types": "./dist/os/plugin/plugin.module.d.ts",
|
|
315
|
+
"default": "./dist/os/plugin/plugin.module.js"
|
|
306
316
|
}
|
|
307
317
|
}
|
|
308
318
|
},
|
|
@@ -165,7 +165,7 @@ workspace:
|
|
|
165
165
|
console.log(`Cleaned ${toDelete.length} directories.`)
|
|
166
166
|
- path: tools/kernel.config.ts
|
|
167
167
|
content: |
|
|
168
|
-
import { defineKernelConfig } from "@warpgogol/werkstatt/kernel/types";
|
|
168
|
+
import { defineKernelConfig } from "@warpgogol/werkstatt-engine/kernel/types";
|
|
169
169
|
|
|
170
170
|
export default defineKernelConfig({
|
|
171
171
|
name: "__PROJECT_NAME__",
|
|
@@ -374,7 +374,7 @@ workspace:
|
|
|
374
374
|
"turbo": "^2.3.0",
|
|
375
375
|
"prettier": "^3.4.0",
|
|
376
376
|
"@warpgogol/forge": "^2.2.0",
|
|
377
|
-
"@warpgogol/werkstatt": "^1.2.0",
|
|
377
|
+
"@warpgogol/werkstatt-engine": "^1.2.0",
|
|
378
378
|
"@warpgogol/werkstatt-godot-game": "^0.6.0"
|
|
379
379
|
}
|
|
380
380
|
}
|
|
@@ -625,7 +625,7 @@ workspace:
|
|
|
625
625
|
console.log(`Cleaned ${toDelete.length} directories.`);
|
|
626
626
|
- path: tools/kernel.config.ts
|
|
627
627
|
content: |
|
|
628
|
-
import { defineKernelConfig } from "@warpgogol/werkstatt/kernel/types";
|
|
628
|
+
import { defineKernelConfig } from "@warpgogol/werkstatt-engine/kernel/types";
|
|
629
629
|
import { werkstattGodotPlugin } from "@warpgogol/werkstatt-godot-game";
|
|
630
630
|
|
|
631
631
|
export default defineKernelConfig({
|
|
@@ -646,16 +646,16 @@ workspace:
|
|
|
646
646
|
"forge-exploration": async () => (await import("@warpgogol/forge/os/exploration")).forgeExplorationModule,
|
|
647
647
|
"forge-program": async () => (await import("@warpgogol/forge/os/program")).forgeProgramModule,
|
|
648
648
|
"forge-werkstatt": async () => (await import("@warpgogol/forge/os/werkstatt")).forgeWerkstattModule,
|
|
649
|
-
mission: async () => (await import("@warpgogol/werkstatt/mission-module")).createMissionModule(),
|
|
650
|
-
sternsystem: async () => (await import("@warpgogol/werkstatt/sternsystem-module")).createSternsystemModule(),
|
|
651
|
-
bordbuch: async () => (await import("@warpgogol/werkstatt/bordbuch-module")).createBordbuchModule(),
|
|
652
|
-
"artifact-store": async () => (await import("@warpgogol/werkstatt/artifact-store-module")).createArtifactStoreModule(),
|
|
653
|
-
release: async () => (await import("@warpgogol/werkstatt/release-module")).createReleaseModule(),
|
|
654
|
-
leitstand: async () => (await import("@warpgogol/werkstatt/leitstand-module")).createLeitstandModule(),
|
|
655
|
-
notausgang: async () => (await import("@warpgogol/werkstatt/notausgang-module")).createNotausgangModule(),
|
|
656
|
-
evidence: async () => (await import("@warpgogol/werkstatt/evidence-module")).createEvidenceModule(),
|
|
657
|
-
"werkstatt-plugin": async () => (await import("@warpgogol/werkstatt/os/werkstatt-plugin-module")).forgeWerkstattPluginModule,
|
|
658
|
-
"werkstatt-autonomy": async () => (await import("@warpgogol/werkstatt/os/werkstatt-autonomy-module")).werkstattAutonomyModule,
|
|
649
|
+
mission: async () => (await import("@warpgogol/werkstatt-engine/mission-module")).createMissionModule(),
|
|
650
|
+
sternsystem: async () => (await import("@warpgogol/werkstatt-engine/sternsystem-module")).createSternsystemModule(),
|
|
651
|
+
bordbuch: async () => (await import("@warpgogol/werkstatt-engine/bordbuch-module")).createBordbuchModule(),
|
|
652
|
+
"artifact-store": async () => (await import("@warpgogol/werkstatt-engine/artifact-store-module")).createArtifactStoreModule(),
|
|
653
|
+
release: async () => (await import("@warpgogol/werkstatt-engine/release-module")).createReleaseModule(),
|
|
654
|
+
leitstand: async () => (await import("@warpgogol/werkstatt-engine/leitstand-module")).createLeitstandModule(),
|
|
655
|
+
notausgang: async () => (await import("@warpgogol/werkstatt-engine/notausgang-module")).createNotausgangModule(),
|
|
656
|
+
evidence: async () => (await import("@warpgogol/werkstatt-engine/evidence-module")).createEvidenceModule(),
|
|
657
|
+
"werkstatt-plugin": async () => (await import("@warpgogol/werkstatt-engine/os/werkstatt-plugin-module")).forgeWerkstattPluginModule,
|
|
658
|
+
"werkstatt-autonomy": async () => (await import("@warpgogol/werkstatt-engine/os/werkstatt-autonomy-module")).werkstattAutonomyModule,
|
|
659
659
|
"__PROJECT_NAME__-plugin": async () => werkstattGodotPlugin,
|
|
660
660
|
},
|
|
661
661
|
});
|
|
@@ -792,7 +792,7 @@ workspace:
|
|
|
792
792
|
|
|
793
793
|
## Stack
|
|
794
794
|
|
|
795
|
-
- Engine: @warpgogol/werkstatt
|
|
795
|
+
- Engine: @warpgogol/werkstatt-engine
|
|
796
796
|
- Plugin: @warpgogol/werkstatt-godot-game
|
|
797
797
|
- Stack profile: godot-csharp
|
|
798
798
|
install:
|
|
@@ -104,7 +104,7 @@ plugin:
|
|
|
104
104
|
id: werkstatt-knowledge
|
|
105
105
|
package: "@warpgogol/werkstatt-knowledge"
|
|
106
106
|
install:
|
|
107
|
-
- pnpm add -wD @warpgogol/forge @warpgogol/werkstatt @warpgogol/werkstatt-knowledge prettier
|
|
107
|
+
- pnpm add -wD @warpgogol/forge @warpgogol/werkstatt-engine @warpgogol/werkstatt-knowledge prettier
|
|
108
108
|
agents:
|
|
109
109
|
root: |
|
|
110
110
|
# Knowledge Base Workshop
|
|
@@ -228,7 +228,7 @@ workspace:
|
|
|
228
228
|
console.log(`Cleaned ${toDelete.length} directories.`);
|
|
229
229
|
- path: tools/kernel.config.ts
|
|
230
230
|
content: |
|
|
231
|
-
import { defineKernelConfig } from "@warpgogol/werkstatt/kernel/types";
|
|
231
|
+
import { defineKernelConfig } from "@warpgogol/werkstatt-engine/kernel/types";
|
|
232
232
|
import { werkstattPhaserPlugin } from "@warpgogol/werkstatt-phaser-game";
|
|
233
233
|
|
|
234
234
|
export default defineKernelConfig({
|
|
@@ -249,16 +249,16 @@ workspace:
|
|
|
249
249
|
"forge-exploration": async () => (await import("@warpgogol/forge/os/exploration")).forgeExplorationModule,
|
|
250
250
|
"forge-program": async () => (await import("@warpgogol/forge/os/program")).forgeProgramModule,
|
|
251
251
|
"forge-werkstatt": async () => (await import("@warpgogol/forge/os/werkstatt")).forgeWerkstattModule,
|
|
252
|
-
mission: async () => (await import("@warpgogol/werkstatt/mission-module")).createMissionModule(),
|
|
253
|
-
sternsystem: async () => (await import("@warpgogol/werkstatt/sternsystem-module")).createSternsystemModule(),
|
|
254
|
-
bordbuch: async () => (await import("@warpgogol/werkstatt/bordbuch-module")).createBordbuchModule(),
|
|
255
|
-
"artifact-store": async () => (await import("@warpgogol/werkstatt/artifact-store-module")).createArtifactStoreModule(),
|
|
256
|
-
release: async () => (await import("@warpgogol/werkstatt/release-module")).createReleaseModule(),
|
|
257
|
-
leitstand: async () => (await import("@warpgogol/werkstatt/leitstand-module")).createLeitstandModule(),
|
|
258
|
-
notausgang: async () => (await import("@warpgogol/werkstatt/notausgang-module")).createNotausgangModule(),
|
|
259
|
-
evidence: async () => (await import("@warpgogol/werkstatt/evidence-module")).createEvidenceModule(),
|
|
260
|
-
"werkstatt-plugin": async () => (await import("@warpgogol/werkstatt/os/werkstatt-plugin-module")).forgeWerkstattPluginModule,
|
|
261
|
-
"werkstatt-autonomy": async () => (await import("@warpgogol/werkstatt/os/werkstatt-autonomy-module")).werkstattAutonomyModule,
|
|
252
|
+
mission: async () => (await import("@warpgogol/werkstatt-engine/mission-module")).createMissionModule(),
|
|
253
|
+
sternsystem: async () => (await import("@warpgogol/werkstatt-engine/sternsystem-module")).createSternsystemModule(),
|
|
254
|
+
bordbuch: async () => (await import("@warpgogol/werkstatt-engine/bordbuch-module")).createBordbuchModule(),
|
|
255
|
+
"artifact-store": async () => (await import("@warpgogol/werkstatt-engine/artifact-store-module")).createArtifactStoreModule(),
|
|
256
|
+
release: async () => (await import("@warpgogol/werkstatt-engine/release-module")).createReleaseModule(),
|
|
257
|
+
leitstand: async () => (await import("@warpgogol/werkstatt-engine/leitstand-module")).createLeitstandModule(),
|
|
258
|
+
notausgang: async () => (await import("@warpgogol/werkstatt-engine/notausgang-module")).createNotausgangModule(),
|
|
259
|
+
evidence: async () => (await import("@warpgogol/werkstatt-engine/evidence-module")).createEvidenceModule(),
|
|
260
|
+
"werkstatt-plugin": async () => (await import("@warpgogol/werkstatt-engine/os/werkstatt-plugin-module")).forgeWerkstattPluginModule,
|
|
261
|
+
"werkstatt-autonomy": async () => (await import("@warpgogol/werkstatt-engine/os/werkstatt-autonomy-module")).werkstattAutonomyModule,
|
|
262
262
|
"__PROJECT_NAME__-plugin": async () => werkstattPhaserPlugin,
|
|
263
263
|
},
|
|
264
264
|
});
|
|
@@ -360,11 +360,11 @@ workspace:
|
|
|
360
360
|
|
|
361
361
|
## Stack
|
|
362
362
|
|
|
363
|
-
- Engine: @warpgogol/werkstatt
|
|
363
|
+
- Engine: @warpgogol/werkstatt-engine
|
|
364
364
|
- Plugin: @warpgogol/werkstatt-phaser-game
|
|
365
365
|
- Stack profile: phaser-turborepo
|
|
366
366
|
install:
|
|
367
|
-
- pnpm add -wD typescript turbo @warpgogol/forge @warpgogol/werkstatt @warpgogol/werkstatt-shared @warpgogol/werkstatt-phaser-game prettier
|
|
367
|
+
- pnpm add -wD typescript turbo @warpgogol/forge @warpgogol/werkstatt-engine @warpgogol/werkstatt-shared @warpgogol/werkstatt-phaser-game prettier
|
|
368
368
|
firstWorkspace:
|
|
369
369
|
path: apps/my-game
|
|
370
370
|
files:
|
|
@@ -15,6 +15,60 @@ Before starting, read `PREFERENCES.md` at the repository root. If the file is mi
|
|
|
15
15
|
|
|
16
16
|
Write tests for code that was produced in the current session, or for a file/module the operator points at. The skill decides per-function whether to write example-based tests, property based tests (PBT), or both — following the RFC-XXXX decision tree and the TDD discipline absorbed from the former `tdd` skill.
|
|
17
17
|
|
|
18
|
+
## Tests are written for agents, not humans
|
|
19
|
+
|
|
20
|
+
The primary reader of test output is an **AI agent** looking at a console — not a human reading a test file. This changes how tests should be written:
|
|
21
|
+
|
|
22
|
+
### Agent-readable failure messages
|
|
23
|
+
|
|
24
|
+
When a test fails, the agent reading the console output needs to know **what to fix and where**. Vitest's default output shows the assertion, the expected value, and the received value. For simple assertions this is enough — `expect(result).toBe(42)` failing with `received 41` makes the fix obvious.
|
|
25
|
+
|
|
26
|
+
For **non-obvious failures** — complex invariants, multi-step pipelines, domain-specific rules — add a failure message that tells the agent what went wrong and where to look:
|
|
27
|
+
|
|
28
|
+
```ts
|
|
29
|
+
// Good: obvious failure — no message needed
|
|
30
|
+
expect(normalized).toBe("hello world");
|
|
31
|
+
|
|
32
|
+
// Good: non-obvious failure — message guides the agent
|
|
33
|
+
expect(
|
|
34
|
+
result.deduplicatedCount,
|
|
35
|
+
"Pipeline must skip already-validated entries. If count > 0, check the dedup guard in validateEntry() — entries with a matching hash in the seen-set should be skipped, not re-processed.",
|
|
36
|
+
).toBe(0);
|
|
37
|
+
|
|
38
|
+
// Good: invariant failure — message explains the contract
|
|
39
|
+
expect(
|
|
40
|
+
manifest.entries.length,
|
|
41
|
+
"Every published Nachweis must produce exactly one manifest entry. Missing entries indicate nachweis-publish.ts skipped a record — check the bordbuch filter.",
|
|
42
|
+
).toBe(publishedCount);
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### When to add a message
|
|
46
|
+
|
|
47
|
+
- **Obvious from the assertion** (simple equality, type check, presence check) → no message needed. The assertion itself is the documentation.
|
|
48
|
+
- **Non-obvious invariant** (multi-step pipeline, domain rule, cross-module contract) → add a message explaining what the invariant is and where to look if it fails.
|
|
49
|
+
- **PBT property** → the comment above the property already explains the algebraic property. No additional failure message needed unless the property name is unclear.
|
|
50
|
+
|
|
51
|
+
### What makes a good failure message
|
|
52
|
+
|
|
53
|
+
A good failure message answers two questions for the agent:
|
|
54
|
+
|
|
55
|
+
1. **What is the invariant?** — state the contract in plain language.
|
|
56
|
+
2. **Where to look** — name the function, file, or logic branch that is likely wrong.
|
|
57
|
+
|
|
58
|
+
Bad: `"test failed"` — tells the agent nothing. Bad: `"count should be zero"` — restates the assertion, adds no information. Good: `"Pipeline must skip already-validated entries — check the dedup guard in validateEntry()"` — states the invariant and points to the likely fix location.
|
|
59
|
+
|
|
60
|
+
### Test naming
|
|
61
|
+
|
|
62
|
+
Test names are specifications — they describe behavior, not implementation. An agent scanning test names should understand what the system does without reading the test body.
|
|
63
|
+
|
|
64
|
+
```ts
|
|
65
|
+
// Bad — describes implementation
|
|
66
|
+
test("calls validateEntry with correct args", () => { ... });
|
|
67
|
+
|
|
68
|
+
// Good — describes behavior
|
|
69
|
+
test("pipeline skips entries that were already validated in a previous run", () => { ... });
|
|
70
|
+
```
|
|
71
|
+
|
|
18
72
|
## Preconditions
|
|
19
73
|
|
|
20
74
|
- The code to test must exist in the workspace — either produced earlier in this session, or at a path the operator provides.
|
|
@@ -123,6 +123,7 @@ Output a summary:
|
|
|
123
123
|
## Completion criteria
|
|
124
124
|
|
|
125
125
|
- All discovered files have `MODULE_CONTRACT` and `CHANGE_SUMMARY` blocks.
|
|
126
|
+
- Pack-declared Compass contract blocks (RFC-0943, if any are declared in `forge.plugin.yaml` `extensionPoints.compass.contract`) are present in matching files.
|
|
126
127
|
- `compass.validate` passes with zero errors.
|
|
127
128
|
- No `TODO(compass)` sentinels remain (if `--cleanup` was used).
|
|
128
129
|
- All changes are committed with message `compass: update headers for changed files`.
|