@warpgogol/forge 4.1.6 → 4.2.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 +2 -1
- package/CHANGELOG.md +33 -0
- package/CONTRIBUTING.md +36 -0
- package/README.md +129 -535
- package/README.uk.md +145 -554
- package/SECURITY.md +17 -0
- package/dist/bin/cli.d.ts +3 -0
- package/dist/bin/cli.d.ts.map +1 -0
- package/dist/bin/cli.js +296 -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 +153 -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 +304 -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 +81 -0
- package/dist/os/adr/types.d.ts.map +1 -0
- package/dist/os/adr/types.js +62 -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 +50 -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 +191 -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 +387 -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 +472 -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 +855 -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 +115 -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 +217 -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/public-surface.d.ts +13 -0
- package/dist/os/core/handlers/public-surface.d.ts.map +1 -0
- package/dist/os/core/handlers/public-surface.js +148 -0
- package/dist/os/core/handlers/public-surface.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 +39 -0
- package/dist/os/core/handlers/validate.d.ts.map +1 -0
- package/dist/os/core/handlers/validate.js +241 -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 +88 -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 +454 -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 +55 -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 +19 -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 +334 -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 +41 -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 +93 -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 +50 -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 +212 -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 +209 -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 +438 -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 +452 -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 +80 -0
- package/dist/os/rfc/handlers/validate-rules.d.ts.map +1 -0
- package/dist/os/rfc/handlers/validate-rules.js +907 -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 +134 -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 +390 -0
- package/dist/os/rfc/rfc.module.js.map +1 -0
- package/dist/os/rfc/types.d.ts +559 -0
- package/dist/os/rfc/types.d.ts.map +1 -0
- package/dist/os/rfc/types.js +118 -0
- package/dist/os/rfc/types.js.map +1 -0
- package/dist/os/rfc/verification-evidence.d.ts +15 -0
- package/dist/os/rfc/verification-evidence.d.ts.map +1 -0
- package/dist/os/rfc/verification-evidence.js +185 -0
- package/dist/os/rfc/verification-evidence.js.map +1 -0
- package/dist/os/rfc/verification-refresh.d.ts +4 -0
- package/dist/os/rfc/verification-refresh.d.ts.map +1 -0
- package/dist/os/rfc/verification-refresh.js +160 -0
- package/dist/os/rfc/verification-refresh.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/metrics-aggregate.d.ts +4 -0
- package/dist/os/session/handlers/metrics-aggregate.d.ts.map +1 -0
- package/dist/os/session/handlers/metrics-aggregate.js +183 -0
- package/dist/os/session/handlers/metrics-aggregate.js.map +1 -0
- package/dist/os/session/handlers/metrics-rfc.d.ts +4 -0
- package/dist/os/session/handlers/metrics-rfc.d.ts.map +1 -0
- package/dist/os/session/handlers/metrics-rfc.js +272 -0
- package/dist/os/session/handlers/metrics-rfc.js.map +1 -0
- package/dist/os/session/handlers/metrics-session.d.ts +9 -0
- package/dist/os/session/handlers/metrics-session.d.ts.map +1 -0
- package/dist/os/session/handlers/metrics-session.js +167 -0
- package/dist/os/session/handlers/metrics-session.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 +319 -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 +21 -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 +147 -0
- package/dist/os/session/session.module.js.map +1 -0
- package/dist/os/session/types.d.ts +214 -0
- package/dist/os/session/types.d.ts.map +1 -0
- package/dist/os/session/types.js +61 -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 +316 -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 +438 -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 +129 -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 +63 -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 +56 -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 +112 -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 +29 -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 +65 -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 +373 -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 +408 -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 +1222 -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 +412 -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 +179 -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 +123 -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/forge-plugin-manifest.d.ts +38 -0
- package/dist/src/plugin/forge-plugin-manifest.d.ts.map +1 -0
- package/dist/src/plugin/forge-plugin-manifest.js +52 -0
- package/dist/src/plugin/forge-plugin-manifest.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 +158 -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 +28 -0
- package/dist/src/utils/generated-marker.d.ts.map +1 -0
- package/dist/src/utils/generated-marker.js +138 -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/docs/concepts/governance-model.md +33 -0
- package/docs/concepts/project-contract.md +61 -0
- package/docs/concepts/why-forge.md +46 -0
- package/docs/getting-started.md +44 -0
- package/docs/guides/existing-project.md +38 -0
- package/docs/guides/rfc-adr.md +61 -0
- package/docs/guides/skills.md +60 -0
- package/docs/guides/upgrading.md +35 -0
- package/docs/maintainers/publishing.md +34 -0
- package/docs/reference/cli.md +140 -0
- package/docs/reference/forge-yaml.md +114 -0
- package/docs/reference/profiles.md +37 -0
- package/docs/reference/programmatic-api.md +79 -0
- package/os/core/core.module.ts +15 -0
- package/os/core/handlers/public-surface.ts +189 -0
- package/os/rfc/handlers/validate-rules.ts +0 -1
- package/os/rfc/verification-refresh.test.ts +15 -14
- package/os/rfc/verification-refresh.ts +1 -7
- package/os/session/handlers/metrics-session.ts +10 -9
- package/package.json +15 -7
- package/src/tests/metrics-rfc-1053.test.ts +14 -4
- package/src/tests/public-surface.test.ts +247 -0
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
/*
|
|
2
|
+
<MODULE_CONTRACT>
|
|
3
|
+
<purpose>
|
|
4
|
+
session.validate handler — checks session frontmatter schema (SES-01),
|
|
5
|
+
id-filename match (SES-02), RFC-id existence (SES-03), raw file hygiene
|
|
6
|
+
(SES-04), non-markdown file detection (SES-05), and missing checkpoint
|
|
7
|
+
fields in implementation/mission sessions (SES-06, RFC-0884).
|
|
8
|
+
</purpose>
|
|
9
|
+
<non-goals>
|
|
10
|
+
<item>Does not move or modify files — that is session.archive.</item>
|
|
11
|
+
<item>Does not check transcript content quality — that is the fo-session-save skill.</item>
|
|
12
|
+
</non-goals>
|
|
13
|
+
</MODULE_CONTRACT>
|
|
14
|
+
<CHANGE_SUMMARY>
|
|
15
|
+
<item>RFC-0537: implement session.validate command handler.</item>
|
|
16
|
+
<item>RFC-0884: add SES-06 warning for missing checkpoint fields in implementation/mission sessions.</item>
|
|
17
|
+
</CHANGE_SUMMARY>
|
|
18
|
+
*/
|
|
19
|
+
import path from "node:path";
|
|
20
|
+
import { listSessionFiles, listNonMarkdownSessionFiles, listRawFiles, readAndParseSession, } from "../frontmatter-io.js";
|
|
21
|
+
import { listRfcFiles, readAndParseRfc } from "../../rfc/frontmatter-io.js";
|
|
22
|
+
import { SESSION_DIR, SESSION_KNOWN_KEYS, SESSION_REQUIRED_KEYS, SESSION_TYPES, SES_RULES, } from "../types.js";
|
|
23
|
+
const RFC_DIR = "docs/rfcs";
|
|
24
|
+
async function loadRfcIds(workspaceRoot) {
|
|
25
|
+
const rfcIds = new Set();
|
|
26
|
+
const rfcDirPath = path.join(workspaceRoot, RFC_DIR);
|
|
27
|
+
const files = await listRfcFiles(rfcDirPath);
|
|
28
|
+
for (const fileName of files) {
|
|
29
|
+
const result = await readAndParseRfc(rfcDirPath, fileName);
|
|
30
|
+
const id = result && "parsed" in result ? String(result.parsed.frontmatter["id"] ?? "") : "";
|
|
31
|
+
if (id)
|
|
32
|
+
rfcIds.add(id);
|
|
33
|
+
}
|
|
34
|
+
return rfcIds;
|
|
35
|
+
}
|
|
36
|
+
export async function runSessionValidate(input, context) {
|
|
37
|
+
const { workspaceRoot, logger, outputFormat } = context;
|
|
38
|
+
const sessionDirPath = path.join(workspaceRoot, SESSION_DIR);
|
|
39
|
+
const targetId = input.flags["id"];
|
|
40
|
+
const allFiles = await listSessionFiles(sessionDirPath);
|
|
41
|
+
const filesToValidate = targetId
|
|
42
|
+
? allFiles.filter((f) => path.basename(f).toLowerCase().startsWith(targetId.toLowerCase()))
|
|
43
|
+
: allFiles;
|
|
44
|
+
if (filesToValidate.length === 0) {
|
|
45
|
+
if (outputFormat === "pretty") {
|
|
46
|
+
logger.info("No session files found to validate.");
|
|
47
|
+
}
|
|
48
|
+
return {
|
|
49
|
+
data: {
|
|
50
|
+
command: "session.validate",
|
|
51
|
+
status: "pass",
|
|
52
|
+
violations: [],
|
|
53
|
+
checked: 0,
|
|
54
|
+
},
|
|
55
|
+
summary: "No session files found to validate",
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
const knownRfcIds = await loadRfcIds(workspaceRoot);
|
|
59
|
+
const knownKeys = new Set(SESSION_KNOWN_KEYS);
|
|
60
|
+
const violations = [];
|
|
61
|
+
for (const fileName of filesToValidate) {
|
|
62
|
+
const result = await readAndParseSession(sessionDirPath, fileName);
|
|
63
|
+
if (!result)
|
|
64
|
+
continue;
|
|
65
|
+
const fm = result.parsed.frontmatter;
|
|
66
|
+
const id = String(fm["id"] ?? "");
|
|
67
|
+
const relFile = path.join(SESSION_DIR, fileName);
|
|
68
|
+
const basename = path.basename(fileName, ".md");
|
|
69
|
+
// SES-01: Required frontmatter fields
|
|
70
|
+
for (const key of SESSION_REQUIRED_KEYS) {
|
|
71
|
+
if (!(key in fm) || fm[key] === undefined || fm[key] === null) {
|
|
72
|
+
violations.push({
|
|
73
|
+
rule: SES_RULES.SES_01,
|
|
74
|
+
file: relFile,
|
|
75
|
+
message: `Required field "${key}" is missing`,
|
|
76
|
+
severity: "error",
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
// SES-01: Check types is a valid array
|
|
81
|
+
// typesArray is also used by SES-06 below — hoisted here to make the coupling explicit.
|
|
82
|
+
const typesValue = fm["types"];
|
|
83
|
+
const typesArray = Array.isArray(typesValue) ? typesValue : [];
|
|
84
|
+
if (Array.isArray(typesValue)) {
|
|
85
|
+
for (const t of typesValue) {
|
|
86
|
+
if (!SESSION_TYPES.includes(t)) {
|
|
87
|
+
violations.push({
|
|
88
|
+
rule: SES_RULES.SES_01,
|
|
89
|
+
file: relFile,
|
|
90
|
+
message: `Invalid session type "${t}". Must be one of: ${SESSION_TYPES.join(", ")}`,
|
|
91
|
+
severity: "error",
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
else if (typesValue !== undefined) {
|
|
97
|
+
violations.push({
|
|
98
|
+
rule: SES_RULES.SES_01,
|
|
99
|
+
file: relFile,
|
|
100
|
+
message: `Field "types" must be an array`,
|
|
101
|
+
severity: "error",
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
// SES-01: Warn on unknown keys
|
|
105
|
+
for (const key of Object.keys(fm)) {
|
|
106
|
+
if (!knownKeys.has(key)) {
|
|
107
|
+
violations.push({
|
|
108
|
+
rule: SES_RULES.SES_01,
|
|
109
|
+
file: relFile,
|
|
110
|
+
message: `Unknown frontmatter key "${key}"`,
|
|
111
|
+
severity: "warning",
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
// SES-02: id matches filename
|
|
116
|
+
if (id && id !== basename) {
|
|
117
|
+
violations.push({
|
|
118
|
+
rule: SES_RULES.SES_02,
|
|
119
|
+
file: relFile,
|
|
120
|
+
message: `id "${id}" does not match filename "${basename}"`,
|
|
121
|
+
severity: "error",
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
// SES-03: relatedRfcs reference existing RFCs
|
|
125
|
+
const relatedRfcs = Array.isArray(fm["relatedRfcs"]) ? fm["relatedRfcs"] : [];
|
|
126
|
+
for (const rfcId of relatedRfcs) {
|
|
127
|
+
if (!knownRfcIds.has(rfcId)) {
|
|
128
|
+
violations.push({
|
|
129
|
+
rule: SES_RULES.SES_03,
|
|
130
|
+
file: relFile,
|
|
131
|
+
message: `relatedRfcs references non-existent RFC "${rfcId}"`,
|
|
132
|
+
severity: "error",
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
// SES-06: Missing checkpoint fields in implementation/mission sessions
|
|
137
|
+
// typesArray is extracted by SES-01 above.
|
|
138
|
+
const isImplOrMission = typesArray.includes("implementation") || typesArray.includes("mission");
|
|
139
|
+
if (isImplOrMission) {
|
|
140
|
+
const hasCheckpointFields = "systemDelta" in fm ||
|
|
141
|
+
"diagrams" in fm ||
|
|
142
|
+
"evidence" in fm ||
|
|
143
|
+
"remainingIssues" in fm ||
|
|
144
|
+
"checkpoint" in fm;
|
|
145
|
+
if (!hasCheckpointFields) {
|
|
146
|
+
violations.push({
|
|
147
|
+
rule: SES_RULES.SES_06,
|
|
148
|
+
file: relFile,
|
|
149
|
+
message: "Implementation/mission session missing checkpoint frontmatter fields (systemDelta, diagrams, evidence, remainingIssues, checkpoint). Agent should populate these during fo-session-save.",
|
|
150
|
+
severity: "warning",
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
// SES-04: Raw files in .raw/ that haven't been processed (warning)
|
|
156
|
+
const rawFiles = await listRawFiles(sessionDirPath);
|
|
157
|
+
for (const rawFile of rawFiles) {
|
|
158
|
+
violations.push({
|
|
159
|
+
rule: SES_RULES.SES_04,
|
|
160
|
+
file: path.join(SESSION_DIR, ".raw", rawFile),
|
|
161
|
+
message: `Unprocessed raw file in .raw/ — run session.save to convert`,
|
|
162
|
+
severity: "warning",
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
// SES-05: Non-markdown files in docs/sessions/ (excluding .raw/ and archive/)
|
|
166
|
+
const nonMdFiles = await listNonMarkdownSessionFiles(sessionDirPath);
|
|
167
|
+
for (const nonMdFile of nonMdFiles) {
|
|
168
|
+
violations.push({
|
|
169
|
+
rule: SES_RULES.SES_05,
|
|
170
|
+
file: path.join(SESSION_DIR, nonMdFile),
|
|
171
|
+
message: `Non-markdown file in docs/sessions/ — only .md files are allowed (excluding .raw/ and archive/)`,
|
|
172
|
+
severity: "error",
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
const hasErrors = violations.some((v) => v.severity === "error");
|
|
176
|
+
const resultStatus = hasErrors ? "fail" : "pass";
|
|
177
|
+
if (outputFormat === "pretty") {
|
|
178
|
+
if (violations.length === 0) {
|
|
179
|
+
logger.success(`All ${filesToValidate.length} session file(s) passed validation.`);
|
|
180
|
+
}
|
|
181
|
+
else {
|
|
182
|
+
logger.section(`Session Validation (${filesToValidate.length} file(s))`);
|
|
183
|
+
for (const v of violations) {
|
|
184
|
+
const prefix = v.severity === "error" ? "ERROR" : "WARN";
|
|
185
|
+
logger[v.severity === "error" ? "error" : "warn"](`[${prefix}] ${v.rule}: ${v.file}: ${v.message}`);
|
|
186
|
+
}
|
|
187
|
+
const errorCount = violations.filter((v) => v.severity === "error").length;
|
|
188
|
+
const warnCount = violations.filter((v) => v.severity === "warning").length;
|
|
189
|
+
const parts = [];
|
|
190
|
+
if (errorCount > 0)
|
|
191
|
+
parts.push(`${errorCount} error${errorCount === 1 ? "" : "s"}`);
|
|
192
|
+
if (warnCount > 0)
|
|
193
|
+
parts.push(`${warnCount} warning${warnCount === 1 ? "" : "s"}`);
|
|
194
|
+
const counts = parts.join(", ");
|
|
195
|
+
if (errorCount > 0) {
|
|
196
|
+
logger.error(counts);
|
|
197
|
+
}
|
|
198
|
+
else {
|
|
199
|
+
logger.warn(`${counts} — passed`);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
return {
|
|
204
|
+
data: {
|
|
205
|
+
command: "session.validate",
|
|
206
|
+
status: resultStatus,
|
|
207
|
+
violations,
|
|
208
|
+
checked: filesToValidate.length,
|
|
209
|
+
},
|
|
210
|
+
exitCode: hasErrors ? 1 : 0,
|
|
211
|
+
summary: hasErrors
|
|
212
|
+
? `${violations.filter((v) => v.severity === "error").length} error${violations.filter((v) => v.severity === "error").length === 1 ? "" : "s"} found`
|
|
213
|
+
: `All ${filesToValidate.length} session file(s) passed validation`,
|
|
214
|
+
nextSteps: hasErrors
|
|
215
|
+
? [
|
|
216
|
+
{
|
|
217
|
+
action: `Fix the ${violations.filter((v) => v.severity === "error").length} error${violations.filter((v) => v.severity === "error").length === 1 ? "" : "s"} above, then re-run: pnpm exec forge run session.validate`,
|
|
218
|
+
kind: "required",
|
|
219
|
+
},
|
|
220
|
+
]
|
|
221
|
+
: undefined,
|
|
222
|
+
};
|
|
223
|
+
}
|
|
224
|
+
//# sourceMappingURL=validate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../../os/session/handlers/validate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { createForgeSessionModule } from "./session.module.ts";
|
|
2
|
+
export { runSessionSave } from "./handlers/save.ts";
|
|
3
|
+
export { runSessionArchive } from "./handlers/archive.ts";
|
|
4
|
+
export { runSessionValidate } from "./handlers/validate.ts";
|
|
5
|
+
export { runSessionList } from "./handlers/list.ts";
|
|
6
|
+
export { parseSessionFile, listSessionFiles, listArchivedSessionFiles, readAndParseSession, listNonMarkdownSessionFiles, listRawFiles, type ParsedSession, } from "./frontmatter-io.ts";
|
|
7
|
+
export { parseAtif, messagesToTranscriptMarkdown, type AtifMessage, type AtifParseResult, } from "./atif-parser.ts";
|
|
8
|
+
export { SESSION_DIR, SESSION_RAW_SUBDIR, SESSION_ARCHIVE_SUBDIR, METRICS_DIR, SESSION_TYPES, SES_RULES, type SessionType, type SessionFrontmatter, type SessionSaveResult, type SessionArchiveResult, type SessionArchiveMove, type SessionArchiveSkip, type SessionValidationResult, type SessionValidationViolation, type SessionListResult, type SessionListEntry, type SesRule, type RfcMetrics, type RfcPipelineStep, type ReviewMetrics, type FixMetrics, type VerificationMetrics, type ResultMetrics, type RfcTimings, type SessionMetrics, type SessionDocumentRef, type SessionSkillInvocation, type InsightSummary, type SkillAggregate, type MetricsAggregateResult, } from "./types.ts";
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../os/session/index.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,wBAAwB,EACxB,mBAAmB,EACnB,2BAA2B,EAC3B,YAAY,EACZ,KAAK,aAAa,GACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,SAAS,EACT,4BAA4B,EAC5B,KAAK,WAAW,EAChB,KAAK,eAAe,GACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,sBAAsB,EACtB,WAAW,EACX,aAAa,EACb,SAAS,EACT,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,0BAA0B,EAC/B,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,OAAO,EACZ,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC3B,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,sBAAsB,GAC5B,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/*
|
|
2
|
+
<MODULE_CONTRACT>
|
|
3
|
+
<purpose>Barrel export for the session domain — types, module, and handlers.</purpose>
|
|
4
|
+
<non-goals>
|
|
5
|
+
<item>Do not implement session logic here; delegate to handlers/ and session.module.ts.</item>
|
|
6
|
+
</non-goals>
|
|
7
|
+
</MODULE_CONTRACT>
|
|
8
|
+
<CHANGE_SUMMARY>
|
|
9
|
+
<item>RFC-0537: initial session module barrel.</item>
|
|
10
|
+
<item>RFC-1053: export metrics types and METRICS_DIR constant.</item>
|
|
11
|
+
</CHANGE_SUMMARY>
|
|
12
|
+
*/
|
|
13
|
+
export { createForgeSessionModule } from "./session.module.js";
|
|
14
|
+
export { runSessionSave } from "./handlers/save.js";
|
|
15
|
+
export { runSessionArchive } from "./handlers/archive.js";
|
|
16
|
+
export { runSessionValidate } from "./handlers/validate.js";
|
|
17
|
+
export { runSessionList } from "./handlers/list.js";
|
|
18
|
+
export { parseSessionFile, listSessionFiles, listArchivedSessionFiles, readAndParseSession, listNonMarkdownSessionFiles, listRawFiles, } from "./frontmatter-io.js";
|
|
19
|
+
export { parseAtif, messagesToTranscriptMarkdown, } from "./atif-parser.js";
|
|
20
|
+
export { SESSION_DIR, SESSION_RAW_SUBDIR, SESSION_ARCHIVE_SUBDIR, METRICS_DIR, SESSION_TYPES, SES_RULES, } from "./types.js";
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../os/session/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;EAWE;AAEF,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,wBAAwB,EACxB,mBAAmB,EACnB,2BAA2B,EAC3B,YAAY,GAEb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,SAAS,EACT,4BAA4B,GAG7B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,sBAAsB,EACtB,WAAW,EACX,aAAa,EACb,SAAS,GAyBV,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.module.d.ts","sourceRoot":"","sources":["../../../os/session/session.module.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAE7D,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,WAAW,CAAC,CA2IrE"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
/*
|
|
2
|
+
<MODULE_CONTRACT>
|
|
3
|
+
<purpose>Register the session documentation domain commands with the forge kernel registry.</purpose>
|
|
4
|
+
<non-goals>
|
|
5
|
+
<item>Do not implement handler logic here — delegate to handlers/*.ts.</item>
|
|
6
|
+
</non-goals>
|
|
7
|
+
</MODULE_CONTRACT>
|
|
8
|
+
<CHANGE_SUMMARY>
|
|
9
|
+
<item>RFC-0537: initial forgeSessionModule registering session.save, session.archive, session.validate, session.list commands.</item>
|
|
10
|
+
<item>RFC-1053: register metrics.aggregate command for skill effectiveness metrics aggregation.</item>
|
|
11
|
+
</CHANGE_SUMMARY>
|
|
12
|
+
*/
|
|
13
|
+
export async function createForgeSessionModule() {
|
|
14
|
+
const { runSessionSave } = await import("./handlers/save.js");
|
|
15
|
+
const { runSessionArchive } = await import("./handlers/archive.js");
|
|
16
|
+
const { runSessionValidate } = await import("./handlers/validate.js");
|
|
17
|
+
const { runSessionList } = await import("./handlers/list.js");
|
|
18
|
+
const { runMetricsAggregate } = await import("./handlers/metrics-aggregate.js");
|
|
19
|
+
return {
|
|
20
|
+
name: "forge-session",
|
|
21
|
+
version: "0.1.0",
|
|
22
|
+
runtime: "autonomous",
|
|
23
|
+
declarations: [],
|
|
24
|
+
commands: [
|
|
25
|
+
{
|
|
26
|
+
name: "session.save",
|
|
27
|
+
description: "Convert raw ATIF files from docs/sessions/.raw/ to structured markdown " +
|
|
28
|
+
"in docs/sessions/ with auto-extracted metadata. Idempotent — same raw " +
|
|
29
|
+
"file always produces the same output filename. Deletes raw file after " +
|
|
30
|
+
"conversion unless --keep-raw. Use --raw-file to process a specific file.",
|
|
31
|
+
scope: "workspace",
|
|
32
|
+
mutatesState: true,
|
|
33
|
+
writes: ["docs/sessions/*.md"],
|
|
34
|
+
reads: ["docs/sessions/.raw/*"],
|
|
35
|
+
cacheable: false,
|
|
36
|
+
flags: {
|
|
37
|
+
"raw-file": {
|
|
38
|
+
kind: "string",
|
|
39
|
+
description: "Process a specific raw file instead of scanning .raw/.",
|
|
40
|
+
},
|
|
41
|
+
"keep-raw": {
|
|
42
|
+
kind: "boolean",
|
|
43
|
+
description: "Do not delete raw file after conversion.",
|
|
44
|
+
},
|
|
45
|
+
"dry-run": {
|
|
46
|
+
kind: "boolean",
|
|
47
|
+
description: "Preview without writing files.",
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
execute: runSessionSave,
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
name: "session.archive",
|
|
54
|
+
description: "Move session files older than --max-age-days (default 7) from " +
|
|
55
|
+
"docs/sessions/ to docs/sessions/archive/. Bidirectional: files in " +
|
|
56
|
+
"archive/ younger than threshold are moved back to docs/sessions/. " +
|
|
57
|
+
"Use --dry-run to preview. Age is computed from frontmatter date, " +
|
|
58
|
+
"not filesystem mtime. Prefer the docs.archive umbrella command " +
|
|
59
|
+
"unless you need to archive only sessions.",
|
|
60
|
+
scope: "workspace",
|
|
61
|
+
mutatesState: true,
|
|
62
|
+
writes: ["docs/sessions/*.md", "docs/sessions/archive/**"],
|
|
63
|
+
reads: ["docs/sessions/**/*.md"],
|
|
64
|
+
cacheable: false,
|
|
65
|
+
flags: {
|
|
66
|
+
"max-age-days": {
|
|
67
|
+
kind: "string",
|
|
68
|
+
description: "Age threshold in days (default 7).",
|
|
69
|
+
},
|
|
70
|
+
"dry-run": {
|
|
71
|
+
kind: "boolean",
|
|
72
|
+
description: "Preview what would be moved without touching the filesystem.",
|
|
73
|
+
},
|
|
74
|
+
},
|
|
75
|
+
execute: runSessionArchive,
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
name: "session.validate",
|
|
79
|
+
contract: "session",
|
|
80
|
+
rules: [],
|
|
81
|
+
description: "Validate session frontmatter schema (SES-01), id-filename match (SES-02), " +
|
|
82
|
+
"RFC-id existence (SES-03), raw file hygiene (SES-04), and non-markdown " +
|
|
83
|
+
"file detection (SES-05). Pass --id to validate a single file, " +
|
|
84
|
+
"or run without arguments for all. On-demand only — not integrated into " +
|
|
85
|
+
"build.check.",
|
|
86
|
+
scope: "workspace",
|
|
87
|
+
flags: {
|
|
88
|
+
id: { kind: "string", description: "Target a single session by id." },
|
|
89
|
+
},
|
|
90
|
+
reads: ["docs/sessions/**/*.md", "docs/rfcs/**/*.md"],
|
|
91
|
+
execute: runSessionValidate,
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
name: "session.list",
|
|
95
|
+
description: "List all sessions. Filter with --date-from, --date-to, --rfc, --type flags. " +
|
|
96
|
+
"Use --json for machine-readable output. Parses frontmatter on the fly. " +
|
|
97
|
+
"Includes archived sessions (marked with archived: true).",
|
|
98
|
+
scope: "workspace",
|
|
99
|
+
flags: {
|
|
100
|
+
"date-from": {
|
|
101
|
+
kind: "string",
|
|
102
|
+
description: "Filter sessions from this date (YYYY-MM-DD, inclusive).",
|
|
103
|
+
},
|
|
104
|
+
"date-to": {
|
|
105
|
+
kind: "string",
|
|
106
|
+
description: "Filter sessions up to this date (YYYY-MM-DD, inclusive).",
|
|
107
|
+
},
|
|
108
|
+
rfc: {
|
|
109
|
+
kind: "string",
|
|
110
|
+
description: "Filter by related RFC id (e.g. RFC-0537).",
|
|
111
|
+
},
|
|
112
|
+
type: {
|
|
113
|
+
kind: "string",
|
|
114
|
+
description: "Filter by session type (mission, grilling, implementation, review, fix, freeform).",
|
|
115
|
+
},
|
|
116
|
+
},
|
|
117
|
+
reads: ["docs/sessions/**/*.md"],
|
|
118
|
+
execute: runSessionList,
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
name: "metrics.aggregate",
|
|
122
|
+
description: "Query and aggregate skill effectiveness metrics from docs/metrics/ files. " +
|
|
123
|
+
"Returns per-skill statistics (invocations, avgFindings, avgFixIterations, avgDurationMs). " +
|
|
124
|
+
"Use --skill to filter by skill name, --since/--until for date range.",
|
|
125
|
+
scope: "workspace",
|
|
126
|
+
flags: {
|
|
127
|
+
skill: {
|
|
128
|
+
kind: "string",
|
|
129
|
+
description: "Filter by skill name (e.g. fo-review).",
|
|
130
|
+
},
|
|
131
|
+
since: {
|
|
132
|
+
kind: "string",
|
|
133
|
+
description: "Only include metrics generated since this date (YYYY-MM-DD).",
|
|
134
|
+
},
|
|
135
|
+
until: {
|
|
136
|
+
kind: "string",
|
|
137
|
+
description: "Only include metrics generated until this date (YYYY-MM-DD).",
|
|
138
|
+
},
|
|
139
|
+
},
|
|
140
|
+
reads: ["docs/metrics/**/*.yaml"],
|
|
141
|
+
execute: runMetricsAggregate,
|
|
142
|
+
},
|
|
143
|
+
],
|
|
144
|
+
pipelines: [],
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=session.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.module.js","sourceRoot":"","sources":["../../../os/session/session.module.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
export declare const SESSION_DIR = "docs/sessions";
|
|
2
|
+
export declare const SESSION_RAW_SUBDIR = ".raw";
|
|
3
|
+
export declare const SESSION_ARCHIVE_SUBDIR = "archive";
|
|
4
|
+
export declare const METRICS_DIR = "docs/metrics";
|
|
5
|
+
export declare const SESSION_ID_PATTERN: RegExp;
|
|
6
|
+
export declare const SESSION_FILE_PATTERN: RegExp;
|
|
7
|
+
export declare const SESSION_TYPES: readonly ["mission", "grilling", "implementation", "review", "fix", "freeform"];
|
|
8
|
+
export type SessionType = (typeof SESSION_TYPES)[number];
|
|
9
|
+
export declare const SESSION_KNOWN_KEYS: readonly ["id", "date", "duration", "types", "summary", "relatedRfcs", "relatedArtifacts", "decisions", "commits", "files", "commands", "systemDelta", "diagrams", "evidence", "remainingIssues", "checkpoint"];
|
|
10
|
+
export declare const SESSION_REQUIRED_KEYS: readonly ["id", "date", "types"];
|
|
11
|
+
export declare const SESSION_REQUIRED_SECTIONS: readonly ["## Transcript"];
|
|
12
|
+
export declare const SES_RULES: {
|
|
13
|
+
readonly SES_01: "SES-01";
|
|
14
|
+
readonly SES_02: "SES-02";
|
|
15
|
+
readonly SES_03: "SES-03";
|
|
16
|
+
readonly SES_04: "SES-04";
|
|
17
|
+
readonly SES_05: "SES-05";
|
|
18
|
+
readonly SES_06: "SES-06";
|
|
19
|
+
};
|
|
20
|
+
export type SesRule = (typeof SES_RULES)[keyof typeof SES_RULES];
|
|
21
|
+
export interface SessionCheckpoint {
|
|
22
|
+
before: string;
|
|
23
|
+
change: string;
|
|
24
|
+
after: string;
|
|
25
|
+
}
|
|
26
|
+
export interface SessionDiagram {
|
|
27
|
+
type: "flowchart" | "sequenceDiagram" | "stateDiagram-v2" | "erDiagram" | "none";
|
|
28
|
+
scope: "current-system" | "session-delta";
|
|
29
|
+
caption: string;
|
|
30
|
+
mermaid: string;
|
|
31
|
+
}
|
|
32
|
+
export interface SessionEvidenceEntry {
|
|
33
|
+
claim: string;
|
|
34
|
+
source?: string;
|
|
35
|
+
test?: string;
|
|
36
|
+
command?: string;
|
|
37
|
+
}
|
|
38
|
+
export interface SessionSystemDelta {
|
|
39
|
+
changedContracts: string[];
|
|
40
|
+
changedSchemas: string[];
|
|
41
|
+
changedStateMachines: string[];
|
|
42
|
+
changedInvariants: string[];
|
|
43
|
+
changedPersistence: string[];
|
|
44
|
+
}
|
|
45
|
+
export interface SessionFrontmatter {
|
|
46
|
+
id: string;
|
|
47
|
+
date: string;
|
|
48
|
+
duration: string | null;
|
|
49
|
+
types: SessionType[];
|
|
50
|
+
summary: string;
|
|
51
|
+
relatedRfcs: string[];
|
|
52
|
+
relatedArtifacts: string[];
|
|
53
|
+
decisions: string[];
|
|
54
|
+
commits: string[];
|
|
55
|
+
files: string[];
|
|
56
|
+
commands: string[];
|
|
57
|
+
systemDelta?: SessionSystemDelta;
|
|
58
|
+
diagrams?: SessionDiagram[];
|
|
59
|
+
evidence?: SessionEvidenceEntry[];
|
|
60
|
+
remainingIssues?: string[];
|
|
61
|
+
checkpoint?: SessionCheckpoint;
|
|
62
|
+
}
|
|
63
|
+
export interface SessionSaveResult {
|
|
64
|
+
command: "session.save";
|
|
65
|
+
status: "ok";
|
|
66
|
+
file: string;
|
|
67
|
+
rawFile: string;
|
|
68
|
+
rawDeleted: boolean;
|
|
69
|
+
id: string;
|
|
70
|
+
types: SessionType[];
|
|
71
|
+
extractedMetadata: {
|
|
72
|
+
relatedRfcs: string[];
|
|
73
|
+
relatedArtifacts: string[];
|
|
74
|
+
commits: string[];
|
|
75
|
+
files: string[];
|
|
76
|
+
commands: string[];
|
|
77
|
+
};
|
|
78
|
+
metricsPath?: string;
|
|
79
|
+
dryRun: boolean;
|
|
80
|
+
}
|
|
81
|
+
export interface SessionSaveSkip {
|
|
82
|
+
rawFile: string;
|
|
83
|
+
reason: string;
|
|
84
|
+
}
|
|
85
|
+
export interface SessionArchiveMove {
|
|
86
|
+
id: string;
|
|
87
|
+
file: string;
|
|
88
|
+
from: string;
|
|
89
|
+
to: string;
|
|
90
|
+
ageDays: number;
|
|
91
|
+
direction: "into-archive" | "out-of-archive";
|
|
92
|
+
}
|
|
93
|
+
export interface SessionArchiveSkip {
|
|
94
|
+
id: string;
|
|
95
|
+
file: string;
|
|
96
|
+
reason: string;
|
|
97
|
+
}
|
|
98
|
+
export interface SessionArchiveResult {
|
|
99
|
+
command: "session.archive";
|
|
100
|
+
status: "ok";
|
|
101
|
+
moved: SessionArchiveMove[];
|
|
102
|
+
skipped: SessionArchiveSkip[];
|
|
103
|
+
maxAgeDays: number;
|
|
104
|
+
dryRun: boolean;
|
|
105
|
+
}
|
|
106
|
+
export interface SessionValidationViolation {
|
|
107
|
+
rule: SesRule;
|
|
108
|
+
file: string;
|
|
109
|
+
message: string;
|
|
110
|
+
severity: "error" | "warning";
|
|
111
|
+
}
|
|
112
|
+
export interface SessionValidationResult {
|
|
113
|
+
command: "session.validate";
|
|
114
|
+
status: "pass" | "fail";
|
|
115
|
+
violations: SessionValidationViolation[];
|
|
116
|
+
checked: number;
|
|
117
|
+
}
|
|
118
|
+
export interface SessionListEntry {
|
|
119
|
+
id: string;
|
|
120
|
+
date: string;
|
|
121
|
+
types: SessionType[];
|
|
122
|
+
summary: string;
|
|
123
|
+
relatedRfcs: string[];
|
|
124
|
+
file: string;
|
|
125
|
+
archived: boolean;
|
|
126
|
+
}
|
|
127
|
+
export interface SessionListResult {
|
|
128
|
+
command: "session.list";
|
|
129
|
+
status: "ok";
|
|
130
|
+
sessions: SessionListEntry[];
|
|
131
|
+
count: number;
|
|
132
|
+
}
|
|
133
|
+
export interface RfcPipelineStep {
|
|
134
|
+
step: string;
|
|
135
|
+
skill: string | null;
|
|
136
|
+
commitSha: string | null;
|
|
137
|
+
timestamp: string | null;
|
|
138
|
+
}
|
|
139
|
+
export interface ReviewMetrics {
|
|
140
|
+
findingsCount: number;
|
|
141
|
+
findingsByAxis: Record<string, number>;
|
|
142
|
+
verdict: string | null;
|
|
143
|
+
}
|
|
144
|
+
export interface FixMetrics {
|
|
145
|
+
fixesApplied: number;
|
|
146
|
+
commitSha: string | null;
|
|
147
|
+
iterations: number;
|
|
148
|
+
}
|
|
149
|
+
export interface VerificationMetrics {
|
|
150
|
+
probesTotal: number;
|
|
151
|
+
probesPassed: number;
|
|
152
|
+
evidencePath: string | null;
|
|
153
|
+
}
|
|
154
|
+
export interface ResultMetrics {
|
|
155
|
+
acceptanceCriteriaTotal: number;
|
|
156
|
+
acceptanceCriteriaMet: number;
|
|
157
|
+
}
|
|
158
|
+
export interface RfcTimings {
|
|
159
|
+
firstCommitAt: string | null;
|
|
160
|
+
lastCommitAt: string | null;
|
|
161
|
+
totalDurationMs: number | null;
|
|
162
|
+
}
|
|
163
|
+
export interface RfcMetrics {
|
|
164
|
+
rfcId: string;
|
|
165
|
+
generatedAt: string;
|
|
166
|
+
pipeline: RfcPipelineStep[];
|
|
167
|
+
review: ReviewMetrics | null;
|
|
168
|
+
fix: FixMetrics | null;
|
|
169
|
+
verification: VerificationMetrics | null;
|
|
170
|
+
result: ResultMetrics;
|
|
171
|
+
timings: RfcTimings;
|
|
172
|
+
}
|
|
173
|
+
export interface SessionDocumentRef {
|
|
174
|
+
rfcId: string;
|
|
175
|
+
status: string;
|
|
176
|
+
metricsFile: string | null;
|
|
177
|
+
}
|
|
178
|
+
export interface SessionSkillInvocation {
|
|
179
|
+
skill: string;
|
|
180
|
+
approximateDurationMs: number | null;
|
|
181
|
+
}
|
|
182
|
+
export interface InsightSummary {
|
|
183
|
+
total: number;
|
|
184
|
+
byCategory: Record<string, number>;
|
|
185
|
+
}
|
|
186
|
+
export interface SessionMetrics {
|
|
187
|
+
sessionId: string;
|
|
188
|
+
generatedAt: string;
|
|
189
|
+
date: string;
|
|
190
|
+
durationMs: number;
|
|
191
|
+
approximateDurations: true;
|
|
192
|
+
documents: SessionDocumentRef[];
|
|
193
|
+
skills: SessionSkillInvocation[];
|
|
194
|
+
insights: InsightSummary | null;
|
|
195
|
+
commits: string[];
|
|
196
|
+
}
|
|
197
|
+
export interface SkillAggregate {
|
|
198
|
+
skill: string;
|
|
199
|
+
invocations: number;
|
|
200
|
+
avgFindings: number | null;
|
|
201
|
+
avgFixIterations: number | null;
|
|
202
|
+
avgDurationMs: number | null;
|
|
203
|
+
}
|
|
204
|
+
export interface MetricsAggregateResult {
|
|
205
|
+
command: "metrics.aggregate";
|
|
206
|
+
status: "ok";
|
|
207
|
+
skill: string | "all";
|
|
208
|
+
since: string | null;
|
|
209
|
+
until: string | null;
|
|
210
|
+
perSkill: SkillAggregate[];
|
|
211
|
+
totalRfcs: number;
|
|
212
|
+
totalSessions: number;
|
|
213
|
+
}
|
|
214
|
+
//# sourceMappingURL=types.d.ts.map
|