@seanmars/tospec 0.19.0-beta.0 → 0.19.0-beta.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +578 -0
- package/README.md +71 -77
- package/assets/dashboard/app.js +14 -3
- package/assets/dashboard/style.css +7 -0
- package/assets/metrics/app.js +22 -0
- package/assets/metrics/style.css +8 -0
- package/assets/rules/tospec/decision.md +3 -0
- package/assets/rules/tospec/single-source-of-truth.md +19 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +266 -82
- package/dist/cli/index.js.map +1 -1
- package/dist/commands/config.d.ts +9 -17
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +374 -95
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/dashboard.d.ts +64 -81
- package/dist/commands/dashboard.d.ts.map +1 -1
- package/dist/commands/dashboard.js +350 -218
- package/dist/commands/dashboard.js.map +1 -1
- package/dist/commands/decision.d.ts +41 -19
- package/dist/commands/decision.d.ts.map +1 -1
- package/dist/commands/decision.js +400 -70
- package/dist/commands/decision.js.map +1 -1
- package/dist/commands/metrics.d.ts +34 -48
- package/dist/commands/metrics.d.ts.map +1 -1
- package/dist/commands/metrics.js +74 -84
- package/dist/commands/metrics.js.map +1 -1
- package/dist/commands/shared-output.d.ts +24 -10
- package/dist/commands/shared-output.d.ts.map +1 -1
- package/dist/commands/shared-output.js +62 -11
- package/dist/commands/shared-output.js.map +1 -1
- package/dist/commands/show.d.ts +7 -0
- package/dist/commands/show.d.ts.map +1 -1
- package/dist/commands/show.js +39 -8
- package/dist/commands/show.js.map +1 -1
- package/dist/commands/validate.d.ts +47 -30
- package/dist/commands/validate.d.ts.map +1 -1
- package/dist/commands/validate.js +282 -108
- package/dist/commands/validate.js.map +1 -1
- package/dist/commands/workflow/index.d.ts +6 -10
- package/dist/commands/workflow/index.d.ts.map +1 -1
- package/dist/commands/workflow/index.js +6 -10
- package/dist/commands/workflow/index.js.map +1 -1
- package/dist/commands/workflow/instructions.d.ts +21 -8
- package/dist/commands/workflow/instructions.d.ts.map +1 -1
- package/dist/commands/workflow/instructions.js +254 -95
- package/dist/commands/workflow/instructions.js.map +1 -1
- package/dist/commands/workflow/new-change.d.ts +4 -5
- package/dist/commands/workflow/new-change.d.ts.map +1 -1
- package/dist/commands/workflow/new-change.js +90 -25
- package/dist/commands/workflow/new-change.js.map +1 -1
- package/dist/commands/workflow/schemas.d.ts +3 -5
- package/dist/commands/workflow/schemas.d.ts.map +1 -1
- package/dist/commands/workflow/schemas.js +37 -11
- package/dist/commands/workflow/schemas.js.map +1 -1
- package/dist/commands/workflow/shared.d.ts +48 -21
- package/dist/commands/workflow/shared.d.ts.map +1 -1
- package/dist/commands/workflow/shared.js +36 -33
- package/dist/commands/workflow/shared.js.map +1 -1
- package/dist/commands/workflow/status.d.ts +10 -6
- package/dist/commands/workflow/status.d.ts.map +1 -1
- package/dist/commands/workflow/status.js +84 -42
- package/dist/commands/workflow/status.js.map +1 -1
- package/dist/commands/workflow/templates.d.ts +10 -3
- package/dist/commands/workflow/templates.d.ts.map +1 -1
- package/dist/commands/workflow/templates.js +39 -40
- package/dist/commands/workflow/templates.js.map +1 -1
- package/dist/core/archive.d.ts +26 -21
- package/dist/core/archive.d.ts.map +1 -1
- package/dist/core/archive.js +415 -201
- package/dist/core/archive.js.map +1 -1
- package/dist/core/artifact-graph/graph.d.ts +29 -36
- package/dist/core/artifact-graph/graph.d.ts.map +1 -1
- package/dist/core/artifact-graph/graph.js +50 -58
- package/dist/core/artifact-graph/graph.js.map +1 -1
- package/dist/core/artifact-graph/index.d.ts +2 -2
- package/dist/core/artifact-graph/index.d.ts.map +1 -1
- package/dist/core/artifact-graph/index.js +2 -2
- package/dist/core/artifact-graph/index.js.map +1 -1
- package/dist/core/artifact-graph/instruction-loader.d.ts +105 -100
- package/dist/core/artifact-graph/instruction-loader.d.ts.map +1 -1
- package/dist/core/artifact-graph/instruction-loader.js +176 -110
- package/dist/core/artifact-graph/instruction-loader.js.map +1 -1
- package/dist/core/artifact-graph/outputs.d.ts +13 -6
- package/dist/core/artifact-graph/outputs.d.ts.map +1 -1
- package/dist/core/artifact-graph/outputs.js +146 -8
- package/dist/core/artifact-graph/outputs.js.map +1 -1
- package/dist/core/artifact-graph/resolver.d.ts +44 -63
- package/dist/core/artifact-graph/resolver.d.ts.map +1 -1
- package/dist/core/artifact-graph/resolver.js +85 -86
- package/dist/core/artifact-graph/resolver.js.map +1 -1
- package/dist/core/artifact-graph/schema.d.ts +0 -6
- package/dist/core/artifact-graph/schema.d.ts.map +1 -1
- package/dist/core/artifact-graph/schema.js +7 -32
- package/dist/core/artifact-graph/schema.js.map +1 -1
- package/dist/core/artifact-graph/state.d.ts +1 -8
- package/dist/core/artifact-graph/state.d.ts.map +1 -1
- package/dist/core/artifact-graph/state.js +2 -17
- package/dist/core/artifact-graph/state.js.map +1 -1
- package/dist/core/artifact-graph/stub-detection.d.ts +12 -0
- package/dist/core/artifact-graph/stub-detection.d.ts.map +1 -0
- package/dist/core/artifact-graph/stub-detection.js +39 -0
- package/dist/core/artifact-graph/stub-detection.js.map +1 -0
- package/dist/core/artifact-graph/types.d.ts +4 -0
- package/dist/core/artifact-graph/types.d.ts.map +1 -1
- package/dist/core/artifact-graph/types.js +30 -10
- package/dist/core/artifact-graph/types.js.map +1 -1
- package/dist/core/available-tools.d.ts +3 -12
- package/dist/core/available-tools.d.ts.map +1 -1
- package/dist/core/available-tools.js +4 -13
- package/dist/core/available-tools.js.map +1 -1
- package/dist/core/change-metadata/schema.d.ts +1 -1
- package/dist/core/change-metadata/schema.d.ts.map +1 -1
- package/dist/core/change-metadata/schema.js +10 -7
- package/dist/core/change-metadata/schema.js.map +1 -1
- package/dist/core/change-presenter.d.ts +23 -18
- package/dist/core/change-presenter.d.ts.map +1 -1
- package/dist/core/change-presenter.js +102 -43
- package/dist/core/change-presenter.js.map +1 -1
- package/dist/core/change-status-policy.d.ts +8 -1
- package/dist/core/change-status-policy.d.ts.map +1 -1
- package/dist/core/change-status-policy.js +25 -1
- package/dist/core/change-status-policy.js.map +1 -1
- package/dist/core/codex-metrics.d.ts +25 -45
- package/dist/core/codex-metrics.d.ts.map +1 -1
- package/dist/core/codex-metrics.js +44 -88
- package/dist/core/codex-metrics.js.map +1 -1
- package/dist/core/codex-residue.d.ts +22 -0
- package/dist/core/codex-residue.d.ts.map +1 -0
- package/dist/core/codex-residue.js +61 -0
- package/dist/core/codex-residue.js.map +1 -0
- package/dist/core/command-generation/adapters/claude.d.ts +2 -9
- package/dist/core/command-generation/adapters/claude.d.ts.map +1 -1
- package/dist/core/command-generation/adapters/claude.js +2 -12
- package/dist/core/command-generation/adapters/claude.js.map +1 -1
- package/dist/core/command-generation/adapters/index.d.ts +1 -9
- package/dist/core/command-generation/adapters/index.d.ts.map +1 -1
- package/dist/core/command-generation/adapters/index.js +1 -9
- package/dist/core/command-generation/adapters/index.js.map +1 -1
- package/dist/core/command-generation/generator.d.ts +0 -17
- package/dist/core/command-generation/generator.d.ts.map +1 -1
- package/dist/core/command-generation/generator.js +0 -17
- package/dist/core/command-generation/generator.js.map +1 -1
- package/dist/core/command-generation/index.d.ts +2 -5
- package/dist/core/command-generation/index.d.ts.map +1 -1
- package/dist/core/command-generation/index.js +0 -9
- package/dist/core/command-generation/index.js.map +1 -1
- package/dist/core/command-generation/types.d.ts +10 -36
- package/dist/core/command-generation/types.d.ts.map +1 -1
- package/dist/core/command-generation/types.js +0 -6
- package/dist/core/command-generation/types.js.map +1 -1
- package/dist/core/command-generation/yaml.d.ts +3 -18
- package/dist/core/command-generation/yaml.d.ts.map +1 -1
- package/dist/core/command-generation/yaml.js +5 -23
- package/dist/core/command-generation/yaml.js.map +1 -1
- package/dist/core/config-prompts.d.ts +2 -4
- package/dist/core/config-prompts.d.ts.map +1 -1
- package/dist/core/config-prompts.js +2 -7
- package/dist/core/config-prompts.js.map +1 -1
- package/dist/core/config-schema.d.ts +8 -53
- package/dist/core/config-schema.d.ts.map +1 -1
- package/dist/core/config-schema.js +49 -62
- package/dist/core/config-schema.js.map +1 -1
- package/dist/core/config.d.ts +56 -0
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +73 -2
- package/dist/core/config.js.map +1 -1
- package/dist/core/converters/json-converter.d.ts.map +1 -1
- package/dist/core/dashboard-activity.d.ts +7 -9
- package/dist/core/dashboard-activity.d.ts.map +1 -1
- package/dist/core/dashboard-activity.js +26 -24
- package/dist/core/dashboard-activity.js.map +1 -1
- package/dist/core/dashboard-data.d.ts +40 -22
- package/dist/core/dashboard-data.d.ts.map +1 -1
- package/dist/core/dashboard-data.js +84 -68
- package/dist/core/dashboard-data.js.map +1 -1
- package/dist/core/global-config.d.ts +24 -53
- package/dist/core/global-config.d.ts.map +1 -1
- package/dist/core/global-config.js +43 -62
- package/dist/core/global-config.js.map +1 -1
- package/dist/core/init.d.ts +29 -11
- package/dist/core/init.d.ts.map +1 -1
- package/dist/core/init.js +232 -164
- package/dist/core/init.js.map +1 -1
- package/dist/core/list.d.ts +1 -1
- package/dist/core/list.d.ts.map +1 -1
- package/dist/core/list.js +121 -28
- package/dist/core/list.js.map +1 -1
- package/dist/core/local-server.d.ts +63 -39
- package/dist/core/local-server.d.ts.map +1 -1
- package/dist/core/local-server.js +99 -53
- package/dist/core/local-server.js.map +1 -1
- package/dist/core/markdown-render.d.ts +25 -0
- package/dist/core/markdown-render.d.ts.map +1 -0
- package/dist/core/markdown-render.js +94 -0
- package/dist/core/markdown-render.js.map +1 -0
- package/dist/core/migrate.d.ts +32 -15
- package/dist/core/migrate.d.ts.map +1 -1
- package/dist/core/migrate.js +220 -108
- package/dist/core/migrate.js.map +1 -1
- package/dist/core/parsers/change-parser.d.ts +7 -10
- package/dist/core/parsers/change-parser.d.ts.map +1 -1
- package/dist/core/parsers/change-parser.js +48 -56
- package/dist/core/parsers/change-parser.js.map +1 -1
- package/dist/core/parsers/markdown-parser.d.ts +8 -9
- package/dist/core/parsers/markdown-parser.d.ts.map +1 -1
- package/dist/core/parsers/markdown-parser.js +31 -22
- package/dist/core/parsers/markdown-parser.js.map +1 -1
- package/dist/core/parsers/requirement-blocks.d.ts +53 -11
- package/dist/core/parsers/requirement-blocks.d.ts.map +1 -1
- package/dist/core/parsers/requirement-blocks.js +200 -60
- package/dist/core/parsers/requirement-blocks.js.map +1 -1
- package/dist/core/parsers/requirement-text.d.ts +73 -79
- package/dist/core/parsers/requirement-text.d.ts.map +1 -1
- package/dist/core/parsers/requirement-text.js +137 -79
- package/dist/core/parsers/requirement-text.js.map +1 -1
- package/dist/core/parsers/spec-structure.d.ts +1 -1
- package/dist/core/parsers/spec-structure.d.ts.map +1 -1
- package/dist/core/parsers/spec-structure.js +30 -3
- package/dist/core/parsers/spec-structure.js.map +1 -1
- package/dist/core/planning-home.js.map +1 -1
- package/dist/core/profiles.d.ts +3 -10
- package/dist/core/profiles.d.ts.map +1 -1
- package/dist/core/profiles.js +5 -12
- package/dist/core/profiles.js.map +1 -1
- package/dist/core/project-config.d.ts +43 -44
- package/dist/core/project-config.d.ts.map +1 -1
- package/dist/core/project-config.js +107 -82
- package/dist/core/project-config.js.map +1 -1
- package/dist/core/project-layout.d.ts +10 -18
- package/dist/core/project-layout.d.ts.map +1 -1
- package/dist/core/project-layout.js +16 -26
- package/dist/core/project-layout.js.map +1 -1
- package/dist/core/root-selection.d.ts +11 -7
- package/dist/core/root-selection.d.ts.map +1 -1
- package/dist/core/root-selection.js +7 -8
- package/dist/core/root-selection.js.map +1 -1
- package/dist/core/rules.d.ts +10 -0
- package/dist/core/rules.d.ts.map +1 -0
- package/dist/core/rules.js +43 -0
- package/dist/core/rules.js.map +1 -0
- package/dist/core/schema-names.d.ts +16 -0
- package/dist/core/schema-names.d.ts.map +1 -0
- package/dist/core/schema-names.js +16 -0
- package/dist/core/schema-names.js.map +1 -0
- package/dist/core/schemas/base.schema.d.ts +3 -0
- package/dist/core/schemas/base.schema.d.ts.map +1 -1
- package/dist/core/schemas/base.schema.js +22 -6
- package/dist/core/schemas/base.schema.js.map +1 -1
- package/dist/core/schemas/change.schema.d.ts +16 -0
- package/dist/core/schemas/change.schema.d.ts.map +1 -1
- package/dist/core/schemas/change.schema.js +41 -10
- package/dist/core/schemas/change.schema.js.map +1 -1
- package/dist/core/schemas/spec.schema.d.ts +2 -0
- package/dist/core/schemas/spec.schema.d.ts.map +1 -1
- package/dist/core/shared/index.d.ts +3 -8
- package/dist/core/shared/index.d.ts.map +1 -1
- package/dist/core/shared/index.js +3 -8
- package/dist/core/shared/index.js.map +1 -1
- package/dist/core/shared/rules-generation.d.ts +27 -8
- package/dist/core/shared/rules-generation.d.ts.map +1 -1
- package/dist/core/shared/rules-generation.js +151 -16
- package/dist/core/shared/rules-generation.js.map +1 -1
- package/dist/core/shared/skill-generation.d.ts +38 -53
- package/dist/core/shared/skill-generation.d.ts.map +1 -1
- package/dist/core/shared/skill-generation.js +82 -51
- package/dist/core/shared/skill-generation.js.map +1 -1
- package/dist/core/shared/tool-detection.d.ts +40 -62
- package/dist/core/shared/tool-detection.d.ts.map +1 -1
- package/dist/core/shared/tool-detection.js +88 -80
- package/dist/core/shared/tool-detection.js.map +1 -1
- package/dist/core/skill-metrics.d.ts +36 -63
- package/dist/core/skill-metrics.d.ts.map +1 -1
- package/dist/core/skill-metrics.js +34 -73
- package/dist/core/skill-metrics.js.map +1 -1
- package/dist/core/spec-presenter.d.ts.map +1 -1
- package/dist/core/spec-presenter.js +6 -6
- package/dist/core/spec-presenter.js.map +1 -1
- package/dist/core/specs-apply.d.ts +24 -23
- package/dist/core/specs-apply.d.ts.map +1 -1
- package/dist/core/specs-apply.js +188 -173
- package/dist/core/specs-apply.js.map +1 -1
- package/dist/core/templates/fragments/interview.d.ts +2 -6
- package/dist/core/templates/fragments/interview.d.ts.map +1 -1
- package/dist/core/templates/fragments/interview.js +2 -6
- package/dist/core/templates/fragments/interview.js.map +1 -1
- package/dist/core/templates/fragments/next-step.d.ts +4 -8
- package/dist/core/templates/fragments/next-step.d.ts.map +1 -1
- package/dist/core/templates/fragments/next-step.js +4 -8
- package/dist/core/templates/fragments/next-step.js.map +1 -1
- package/dist/core/templates/fragments/verify.d.ts +9 -12
- package/dist/core/templates/fragments/verify.d.ts.map +1 -1
- package/dist/core/templates/fragments/verify.js +9 -12
- package/dist/core/templates/fragments/verify.js.map +1 -1
- package/dist/core/templates/index.d.ts +0 -6
- package/dist/core/templates/index.d.ts.map +1 -1
- package/dist/core/templates/index.js +0 -7
- package/dist/core/templates/index.js.map +1 -1
- package/dist/core/templates/skill-templates.d.ts +1 -5
- package/dist/core/templates/skill-templates.d.ts.map +1 -1
- package/dist/core/templates/skill-templates.js +0 -5
- package/dist/core/templates/skill-templates.js.map +1 -1
- package/dist/core/templates/types.d.ts +3 -7
- package/dist/core/templates/types.d.ts.map +1 -1
- package/dist/core/templates/types.js +0 -3
- package/dist/core/templates/types.js.map +1 -1
- package/dist/core/templates/workflows/apply.d.ts +3 -9
- package/dist/core/templates/workflows/apply.d.ts.map +1 -1
- package/dist/core/templates/workflows/apply.js +9 -12
- package/dist/core/templates/workflows/apply.js.map +1 -1
- package/dist/core/templates/workflows/archive.d.ts +0 -6
- package/dist/core/templates/workflows/archive.d.ts.map +1 -1
- package/dist/core/templates/workflows/archive.js +7 -5
- package/dist/core/templates/workflows/archive.js.map +1 -1
- package/dist/core/templates/workflows/decision.js +4 -4
- package/dist/core/templates/workflows/decision.js.map +1 -1
- package/dist/core/templates/workflows/explore.js +1 -1
- package/dist/core/templates/workflows/grill.d.ts.map +1 -1
- package/dist/core/templates/workflows/grill.js +0 -2
- package/dist/core/templates/workflows/grill.js.map +1 -1
- package/dist/core/templates/workflows/issue.d.ts +0 -6
- package/dist/core/templates/workflows/issue.d.ts.map +1 -1
- package/dist/core/templates/workflows/issue.js +3 -0
- package/dist/core/templates/workflows/issue.js.map +1 -1
- package/dist/core/templates/workflows/propose.d.ts +0 -6
- package/dist/core/templates/workflows/propose.d.ts.map +1 -1
- package/dist/core/templates/workflows/propose.js +0 -1
- package/dist/core/templates/workflows/propose.js.map +1 -1
- package/dist/core/templates/workflows/sync.d.ts +2 -8
- package/dist/core/templates/workflows/sync.d.ts.map +1 -1
- package/dist/core/templates/workflows/sync.js +2 -2
- package/dist/core/templates/workflows/sync.js.map +1 -1
- package/dist/core/templates/workflows/update.d.ts +0 -6
- package/dist/core/templates/workflows/update.d.ts.map +1 -1
- package/dist/core/templates/workflows/update.js.map +1 -1
- package/dist/core/update.d.ts +26 -21
- package/dist/core/update.d.ts.map +1 -1
- package/dist/core/update.js +165 -116
- package/dist/core/update.js.map +1 -1
- package/dist/core/user-state-migration.d.ts +13 -15
- package/dist/core/user-state-migration.d.ts.map +1 -1
- package/dist/core/user-state-migration.js +16 -20
- package/dist/core/user-state-migration.js.map +1 -1
- package/dist/core/validation/constants.d.ts +19 -25
- package/dist/core/validation/constants.d.ts.map +1 -1
- package/dist/core/validation/constants.js +25 -20
- package/dist/core/validation/constants.js.map +1 -1
- package/dist/core/validation/prose-length.d.ts +15 -0
- package/dist/core/validation/prose-length.d.ts.map +1 -0
- package/dist/core/validation/prose-length.js +29 -0
- package/dist/core/validation/prose-length.js.map +1 -0
- package/dist/core/validation/purpose-placeholder.d.ts +9 -16
- package/dist/core/validation/purpose-placeholder.d.ts.map +1 -1
- package/dist/core/validation/purpose-placeholder.js +30 -44
- package/dist/core/validation/purpose-placeholder.js.map +1 -1
- package/dist/core/validation/section-validator.d.ts +4 -4
- package/dist/core/validation/section-validator.d.ts.map +1 -1
- package/dist/core/validation/section-validator.js +43 -7
- package/dist/core/validation/section-validator.js.map +1 -1
- package/dist/core/validation/task-numbering.d.ts +6 -3
- package/dist/core/validation/task-numbering.d.ts.map +1 -1
- package/dist/core/validation/task-numbering.js +23 -11
- package/dist/core/validation/task-numbering.js.map +1 -1
- package/dist/core/validation/types.d.ts +18 -0
- package/dist/core/validation/types.d.ts.map +1 -1
- package/dist/core/validation/types.js +12 -1
- package/dist/core/validation/types.js.map +1 -1
- package/dist/core/validation/validator.d.ts +50 -51
- package/dist/core/validation/validator.d.ts.map +1 -1
- package/dist/core/validation/validator.js +486 -263
- package/dist/core/validation/validator.js.map +1 -1
- package/dist/prompts/searchable-multi-select.d.ts +3 -8
- package/dist/prompts/searchable-multi-select.d.ts.map +1 -1
- package/dist/prompts/searchable-multi-select.js +16 -39
- package/dist/prompts/searchable-multi-select.js.map +1 -1
- package/dist/utils/change-metadata.d.ts +11 -50
- package/dist/utils/change-metadata.d.ts.map +1 -1
- package/dist/utils/change-metadata.js +48 -67
- package/dist/utils/change-metadata.js.map +1 -1
- package/dist/utils/change-utils.d.ts +31 -54
- package/dist/utils/change-utils.d.ts.map +1 -1
- package/dist/utils/change-utils.js +143 -100
- package/dist/utils/change-utils.js.map +1 -1
- package/dist/utils/file-lock.d.ts +39 -0
- package/dist/utils/file-lock.d.ts.map +1 -0
- package/dist/utils/file-lock.js +149 -0
- package/dist/utils/file-lock.js.map +1 -0
- package/dist/utils/file-system.d.ts +12 -32
- package/dist/utils/file-system.d.ts.map +1 -1
- package/dist/utils/file-system.js +16 -40
- package/dist/utils/file-system.js.map +1 -1
- package/dist/utils/frontmatter.d.ts +7 -11
- package/dist/utils/frontmatter.d.ts.map +1 -1
- package/dist/utils/frontmatter.js +11 -11
- package/dist/utils/frontmatter.js.map +1 -1
- package/dist/utils/interactive.d.ts +4 -9
- package/dist/utils/interactive.d.ts.map +1 -1
- package/dist/utils/interactive.js +2 -4
- package/dist/utils/interactive.js.map +1 -1
- package/dist/utils/item-discovery.d.ts +15 -10
- package/dist/utils/item-discovery.d.ts.map +1 -1
- package/dist/utils/item-discovery.js +42 -47
- package/dist/utils/item-discovery.js.map +1 -1
- package/dist/utils/link.d.ts +13 -4
- package/dist/utils/link.d.ts.map +1 -1
- package/dist/utils/link.js +13 -4
- package/dist/utils/link.js.map +1 -1
- package/dist/utils/match.js.map +1 -1
- package/dist/utils/requirement-diff.d.ts +13 -23
- package/dist/utils/requirement-diff.d.ts.map +1 -1
- package/dist/utils/requirement-diff.js +13 -23
- package/dist/utils/requirement-diff.js.map +1 -1
- package/dist/utils/spec-files.d.ts +10 -11
- package/dist/utils/spec-files.d.ts.map +1 -1
- package/dist/utils/spec-files.js +31 -22
- package/dist/utils/spec-files.js.map +1 -1
- package/dist/utils/task-progress.d.ts +11 -9
- package/dist/utils/task-progress.d.ts.map +1 -1
- package/dist/utils/task-progress.js +53 -32
- package/dist/utils/task-progress.js.map +1 -1
- package/dist/utils/timestamp.d.ts +5 -8
- package/dist/utils/timestamp.d.ts.map +1 -1
- package/dist/utils/timestamp.js +5 -8
- package/dist/utils/timestamp.js.map +1 -1
- package/package.json +9 -10
- package/schemas/decision/templates/decision.md +3 -1
- package/schemas/decision/templates/index.md +2 -2
- package/schemas/issue/schema.yaml +11 -2
- package/schemas/issue/templates/spec.md +37 -3
- package/schemas/sdd/schema.yaml +24 -1
- package/schemas/sdd/templates/spec.md +37 -3
|
@@ -1,15 +1,39 @@
|
|
|
1
|
+
import path from 'path';
|
|
1
2
|
import { z } from 'zod';
|
|
2
3
|
// Structural validation rules for artifacts without Requirement grammar
|
|
3
|
-
// (ticket.md, design.md, task.md
|
|
4
|
-
//
|
|
4
|
+
// (ticket.md, design.md, task.md). Declared in schema.yaml, so a new document
|
|
5
|
+
// type needs no validator code.
|
|
5
6
|
export const ArtifactValidationSchema = z.object({
|
|
6
7
|
requiredSections: z.array(z.string()).default([]),
|
|
7
8
|
minSectionLength: z.record(z.string(), z.number()).default({}),
|
|
9
|
+
// The ceiling half of the same rule. Declared here rather than in
|
|
10
|
+
// `ChangeSchema`, which no command reaches, so the limit is enforced.
|
|
11
|
+
maxSectionLength: z.record(z.string(), z.number()).default({}),
|
|
8
12
|
});
|
|
9
|
-
|
|
13
|
+
/**
|
|
14
|
+
* A `generates` path must stay inside the change directory.
|
|
15
|
+
*
|
|
16
|
+
* Schemas resolve `<project>/tospec/schemas/` first, so cloning a repository
|
|
17
|
+
* brings its schemas with it. Without this, `generates: ../../../../ESCAPED.md`
|
|
18
|
+
* resolves outside the project and `instructions` hands that path to an agent
|
|
19
|
+
* as its output target.
|
|
20
|
+
*
|
|
21
|
+
* Checked lexically rather than against a change directory: the schema is
|
|
22
|
+
* validated at load time with no change to resolve against, and a relative,
|
|
23
|
+
* non-ascending path is safe under every change directory by construction.
|
|
24
|
+
*/
|
|
25
|
+
const relativeWithinChangeDir = z
|
|
26
|
+
.string()
|
|
27
|
+
.min(1, { error: 'generates field is required' })
|
|
28
|
+
.refine((value) => !path.isAbsolute(value) && !/^[a-zA-Z]:/.test(value), {
|
|
29
|
+
error: 'generates must be a relative path inside the change directory, not an absolute path',
|
|
30
|
+
})
|
|
31
|
+
.refine((value) => !value
|
|
32
|
+
.split(/[\\/]/)
|
|
33
|
+
.some((segment) => segment === '..'), { error: 'generates must stay inside the change directory: a ".." segment escapes it' });
|
|
10
34
|
export const ArtifactSchema = z.object({
|
|
11
35
|
id: z.string().min(1, { error: 'Artifact ID is required' }),
|
|
12
|
-
generates:
|
|
36
|
+
generates: relativeWithinChangeDir,
|
|
13
37
|
description: z.string(),
|
|
14
38
|
template: z.string().min(1, { error: 'template field is required' }),
|
|
15
39
|
instruction: z.string().optional(),
|
|
@@ -17,22 +41,18 @@ export const ArtifactSchema = z.object({
|
|
|
17
41
|
optional: z.boolean().default(false),
|
|
18
42
|
validation: ArtifactValidationSchema.optional(),
|
|
19
43
|
});
|
|
20
|
-
// Apply phase configuration for schema-aware apply instructions
|
|
21
44
|
export const ApplyPhaseSchema = z.object({
|
|
22
|
-
|
|
45
|
+
/** Artifact IDs that must exist before apply is available. */
|
|
23
46
|
requires: z.array(z.string()).min(1, { error: 'At least one required artifact' }),
|
|
24
|
-
|
|
47
|
+
/** Change-relative path to the file holding progress checkboxes; null for none. */
|
|
25
48
|
tracks: z.string().nullable().optional(),
|
|
26
|
-
// Custom guidance for the apply phase
|
|
27
49
|
instruction: z.string().optional(),
|
|
28
50
|
});
|
|
29
|
-
// Full schema YAML structure
|
|
30
51
|
export const SchemaYamlSchema = z.object({
|
|
31
52
|
name: z.string().min(1, { error: 'Schema name is required' }),
|
|
32
53
|
version: z.number().int().positive({ error: 'Version must be a positive integer' }),
|
|
33
54
|
description: z.string().optional(),
|
|
34
55
|
artifacts: z.array(ArtifactSchema).min(1, { error: 'At least one artifact required' }),
|
|
35
|
-
// Optional apply phase configuration (for schema-aware apply instructions)
|
|
36
56
|
apply: ApplyPhaseSchema.optional(),
|
|
37
57
|
});
|
|
38
58
|
//# sourceMappingURL=types.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/core/artifact-graph/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,wEAAwE;AACxE,
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/core/artifact-graph/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,8 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Available Tools Detection
|
|
3
|
-
*
|
|
4
|
-
* Detects which AI tools are available in a project by scanning
|
|
5
|
-
* for their configuration directories.
|
|
6
|
-
*/
|
|
1
|
+
/** Detects which AI tools a project holds, by their configuration directories. */
|
|
7
2
|
import { type AIToolOption } from './config.js';
|
|
8
3
|
/**
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
* For tools with `detectionPaths`, checks those specific paths (files or
|
|
13
|
-
* directories). Otherwise checks for the tool's `skillsDir` directory at
|
|
14
|
-
* the project root. Only tools with a `skillsDir` property are considered.
|
|
4
|
+
* A tool with `detectionPaths` is probed at those paths, otherwise at its
|
|
5
|
+
* `skillsDir`. Tools without a `skillsDir` are never considered.
|
|
15
6
|
*/
|
|
16
7
|
export declare function getAvailableTools(projectPath: string): AIToolOption[];
|
|
17
8
|
//# sourceMappingURL=available-tools.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"available-tools.d.ts","sourceRoot":"","sources":["../../src/core/available-tools.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"available-tools.d.ts","sourceRoot":"","sources":["../../src/core/available-tools.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAIlF,OAAO,EAAY,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAE1D;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,YAAY,EAAE,CAuBrE"}
|
|
@@ -1,26 +1,17 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Available Tools Detection
|
|
3
|
-
*
|
|
4
|
-
* Detects which AI tools are available in a project by scanning
|
|
5
|
-
* for their configuration directories.
|
|
6
|
-
*/
|
|
1
|
+
/** Detects which AI tools a project holds, by their configuration directories. */
|
|
7
2
|
import path from 'path';
|
|
8
3
|
import * as fs from 'fs';
|
|
9
4
|
import { AI_TOOLS } from './config.js';
|
|
10
5
|
/**
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* For tools with `detectionPaths`, checks those specific paths (files or
|
|
15
|
-
* directories). Otherwise checks for the tool's `skillsDir` directory at
|
|
16
|
-
* the project root. Only tools with a `skillsDir` property are considered.
|
|
6
|
+
* A tool with `detectionPaths` is probed at those paths, otherwise at its
|
|
7
|
+
* `skillsDir`. Tools without a `skillsDir` are never considered.
|
|
17
8
|
*/
|
|
18
9
|
export function getAvailableTools(projectPath) {
|
|
19
10
|
return AI_TOOLS.filter((tool) => {
|
|
20
11
|
if (!tool.skillsDir)
|
|
21
12
|
return false;
|
|
22
13
|
if (tool.detectionPaths && tool.detectionPaths.length > 0) {
|
|
23
|
-
//
|
|
14
|
+
// No .isDirectory(): a detection path can be a file or a directory.
|
|
24
15
|
return tool.detectionPaths.some((p) => {
|
|
25
16
|
try {
|
|
26
17
|
fs.statSync(path.join(projectPath, p));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"available-tools.js","sourceRoot":"","sources":["../../src/core/available-tools.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"available-tools.js","sourceRoot":"","sources":["../../src/core/available-tools.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAElF,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAqB,MAAM,aAAa,CAAC;AAE1D;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,WAAmB;IACnD,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;QAC9B,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO,KAAK,CAAC;QAElC,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1D,oEAAoE;YACpE,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;gBACpC,IAAI,CAAC;oBACH,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;oBACvC,OAAO,IAAI,CAAC;gBACd,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACvD,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;QAC5C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/core/change-metadata/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,oBAAoB;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/core/change-metadata/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,oBAAoB;;;;;;;;;;iBAwB/B,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
|
|
@@ -2,7 +2,11 @@ import { z } from 'zod';
|
|
|
2
2
|
// Per-change metadata schema. The schema field is validated against available
|
|
3
3
|
// workflow schemas when metadata is read or written.
|
|
4
4
|
export const ChangeMetadataSchema = z.object({
|
|
5
|
-
|
|
5
|
+
// Optional, because `resolveSchemaForChange` has a fallback chain (metadata →
|
|
6
|
+
// tospec/config.yaml → `sdd`) that a required field here could only run when
|
|
7
|
+
// the file was absent entirely. Saying nothing means the same thing whether
|
|
8
|
+
// the file exists or not: take the project default.
|
|
9
|
+
schema: z.string().min(1, { message: 'schema must be a non-empty string' }).optional(),
|
|
6
10
|
type: z.enum(['requirement', 'issue']).optional(),
|
|
7
11
|
created: z
|
|
8
12
|
.string()
|
|
@@ -15,12 +19,11 @@ export const ChangeMetadataSchema = z.object({
|
|
|
15
19
|
// "20260722_161825-topic.md" under tospec/decisions/. Optional so existing
|
|
16
20
|
// metadata files without the field stay valid; absent means none.
|
|
17
21
|
decisions: z.array(z.string().min(1)).optional(),
|
|
18
|
-
// Declares that this change intentionally has no behavioral effect,
|
|
19
|
-
// "at least one delta" rule
|
|
20
|
-
//
|
|
21
|
-
//
|
|
22
|
-
//
|
|
23
|
-
// non-boolean value as a validation error instead of silently ignoring it.
|
|
22
|
+
// Declares that this change intentionally has no behavioral effect, waiving
|
|
23
|
+
// the "at least one delta" rule. A property of the change, not archive's
|
|
24
|
+
// one-shot --skip-specs flag: letting the flag imply this would make
|
|
25
|
+
// `tospec validate` answer differently depending on how archive was last run.
|
|
26
|
+
// Read via readSkipSpecsMarker, which reports a non-boolean value as an error.
|
|
24
27
|
skip_specs: z.boolean().optional(),
|
|
25
28
|
});
|
|
26
29
|
//# sourceMappingURL=schema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/core/change-metadata/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,8EAA8E;AAC9E,qDAAqD;AACrD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/core/change-metadata/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,8EAA8E;AAC9E,qDAAqD;AACrD,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,8EAA8E;IAC9E,6EAA6E;IAC7E,4EAA4E;IAC5E,oDAAoD;IACpD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,mCAAmC,EAAE,CAAC,CAAC,QAAQ,EAAE;IACtF,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE;IACjD,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,KAAK,CAAC,qBAAqB,EAAE;QAC5B,OAAO,EAAE,mCAAmC;KAC7C,CAAC;SACD,QAAQ,EAAE;IACb,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAClC,qDAAqD;IACrD,2EAA2E;IAC3E,kEAAkE;IAClE,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAChD,4EAA4E;IAC5E,yEAAyE;IACzE,qEAAqE;IACrE,8EAA8E;IAC9E,+EAA+E;IAC/E,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CACnC,CAAC,CAAC"}
|
|
@@ -6,12 +6,10 @@ export declare class ChangePresenter {
|
|
|
6
6
|
private getChangesPath;
|
|
7
7
|
private getSpecsPath;
|
|
8
8
|
/**
|
|
9
|
-
*
|
|
10
|
-
* -
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* - --diff: per-requirement diffs of the delta specs against the main specs,
|
|
14
|
-
* appended in text mode and attached to MODIFIED deltas in JSON mode
|
|
9
|
+
* Text mode passes the markdown through unfiltered; JSON mode returns the
|
|
10
|
+
* deltas. `--requirements-only` is a deprecated alias for `--deltas-only`.
|
|
11
|
+
* `--diff` appends per-requirement diffs against the main specs in text mode,
|
|
12
|
+
* and attaches them to MODIFIED deltas in JSON mode.
|
|
15
13
|
*/
|
|
16
14
|
show(changeName?: string, options?: {
|
|
17
15
|
json?: boolean;
|
|
@@ -22,22 +20,29 @@ export declare class ChangePresenter {
|
|
|
22
20
|
rootOutput?: RootOutput;
|
|
23
21
|
}): Promise<void>;
|
|
24
22
|
/**
|
|
25
|
-
*
|
|
26
|
-
* counterpart in the main spec. Text mode and JSON mode both render from this
|
|
27
|
-
* one pass, so the two surfaces cannot drift apart.
|
|
23
|
+
* A ticket rendered for a human: its title as a heading, then its body.
|
|
28
24
|
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
|
|
25
|
+
* Falls back to the file as-is when the header does not parse — a display
|
|
26
|
+
* path degrades rather than fails.
|
|
27
|
+
*/
|
|
28
|
+
private renderTicketStub;
|
|
29
|
+
/**
|
|
30
|
+
* The change's main prose document, per its schema. Schema-driven rather than
|
|
31
|
+
* hardcoded to `proposal.md`, which the issue schema does not have. Taken in
|
|
32
|
+
* the schema's own order, skipping glob-generated artifacts
|
|
33
|
+
* (`specs/*/ private findMainArtifact;
|
|
34
|
+
/**
|
|
35
|
+
* Pairs each delta requirement with its main-spec counterpart. Text and JSON
|
|
36
|
+
* mode both render from this one pass, and enumeration goes through
|
|
37
|
+
* findSpecUpdates — the walk archive merges with — so `--diff` shows what
|
|
38
|
+
* archive will apply.
|
|
32
39
|
*/
|
|
33
40
|
private collectSpecDiffs;
|
|
34
41
|
/**
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
* the header name, so they are matched to parsed blocks by capability and
|
|
40
|
-
* source order: ChangeParser emits one Delta per MODIFIED block in that order.
|
|
42
|
+
* Attaches `diff` (or `warning`) to every MODIFIED delta, in place. A Delta
|
|
43
|
+
* carries the requirement body in `description`, not the header name, so
|
|
44
|
+
* matching is by capability and source order — ChangeParser emits one Delta
|
|
45
|
+
* per MODIFIED block in that order.
|
|
41
46
|
*/
|
|
42
47
|
private enrichDeltasWithDiffs;
|
|
43
48
|
/** Text mode: per-requirement diffs of the delta specs against main specs. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"change-presenter.d.ts","sourceRoot":"","sources":["../../src/core/change-presenter.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"change-presenter.d.ts","sourceRoot":"","sources":["../../src/core/change-presenter.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AA6BtD,qBAAa,eAAe;IAC1B,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,CAAS;IAI1B,YAAY,QAAQ,CAAC,EAAE,MAAM,EAG5B;IAED,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,YAAY;IAIpB;;;;;OAKG;IACG,IAAI,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,OAAO,CAAC;QAAC,aAAa,CAAC,EAAE,OAAO,CAAC;QAAC,UAAU,CAAC,EAAE,UAAU,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAiF/L;IAED;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IAaxB;;;;iBAIa,SAKC,gBAAgB;IAkB9B;;;;;OAKG;YACW,gBAAgB;IA2F9B;;;;;OAKG;YACW,qBAAqB;IAiCnC,8EAA8E;YAChE,aAAa;IAe3B,OAAO,CAAC,aAAa;YAsDP,UAAU;IASxB,OAAO,CAAC,YAAY;CASrB"}
|
|
@@ -1,19 +1,22 @@
|
|
|
1
1
|
import { promises as fs } from 'fs';
|
|
2
2
|
import path from 'path';
|
|
3
|
-
import { frontmatterString } from '../utils/frontmatter.js';
|
|
3
|
+
import { frontmatterString, splitFrontmatter } from '../utils/frontmatter.js';
|
|
4
4
|
import { JsonConverter } from './converters/json-converter.js';
|
|
5
5
|
import { ChangeParser } from './parsers/change-parser.js';
|
|
6
6
|
import { emitSuccess } from '../commands/shared-output.js';
|
|
7
7
|
import { isInteractive } from '../utils/interactive.js';
|
|
8
8
|
import { getActiveChangeIds, findTicketPath } from '../utils/item-discovery.js';
|
|
9
9
|
import { findSpecUpdates } from './specs-apply.js';
|
|
10
|
+
import { resolveSchemaForChange } from '../utils/change-metadata.js';
|
|
11
|
+
import { resolveSchema } from './artifact-graph/index.js';
|
|
10
12
|
import { foldRequirementName, parseDeltaSpec } from './parsers/requirement-blocks.js';
|
|
13
|
+
import { stripBom } from './parsers/requirement-text.js';
|
|
11
14
|
import { buildRenameMap, diffRequirementBlock, extractRequirementBlock, } from '../utils/requirement-diff.js';
|
|
12
15
|
export class ChangePresenter {
|
|
13
16
|
converter;
|
|
14
17
|
rootPath;
|
|
15
|
-
//
|
|
16
|
-
//
|
|
18
|
+
// Set only by root-aware callers (top-level `show`); the deprecated noun-form
|
|
19
|
+
// commands stay cwd-based.
|
|
17
20
|
constructor(rootPath) {
|
|
18
21
|
this.converter = new JsonConverter();
|
|
19
22
|
this.rootPath = rootPath;
|
|
@@ -27,12 +30,10 @@ export class ChangePresenter {
|
|
|
27
30
|
return path.join(this.rootPath ?? process.cwd(), 'tospec', 'specs');
|
|
28
31
|
}
|
|
29
32
|
/**
|
|
30
|
-
*
|
|
31
|
-
* -
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
* - --diff: per-requirement diffs of the delta specs against the main specs,
|
|
35
|
-
* appended in text mode and attached to MODIFIED deltas in JSON mode
|
|
33
|
+
* Text mode passes the markdown through unfiltered; JSON mode returns the
|
|
34
|
+
* deltas. `--requirements-only` is a deprecated alias for `--deltas-only`.
|
|
35
|
+
* `--diff` appends per-requirement diffs against the main specs in text mode,
|
|
36
|
+
* and attaches them to MODIFIED deltas in JSON mode.
|
|
36
37
|
*/
|
|
37
38
|
async show(changeName, options) {
|
|
38
39
|
const changesPath = this.getChangesPath();
|
|
@@ -60,18 +61,17 @@ export class ChangePresenter {
|
|
|
60
61
|
}
|
|
61
62
|
}
|
|
62
63
|
const changeDir = path.join(changesPath, changeName);
|
|
63
|
-
// The ticket stub lives in the global tospec/tickets/ index (matched
|
|
64
|
-
//
|
|
65
|
-
//
|
|
66
|
-
//
|
|
67
|
-
//
|
|
64
|
+
// The ticket stub lives in the global tospec/tickets/ index (matched by its
|
|
65
|
+
// `change:` frontmatter) and carries the title/metadata header; the change's
|
|
66
|
+
// prose lives in its main artifact and its deltas in specs/. A legacy
|
|
67
|
+
// monolithic proposal.md may embed deltas inline — the fallback when specs/
|
|
68
|
+
// has none.
|
|
68
69
|
const proposalPath = path.join(changeDir, 'proposal.md');
|
|
69
70
|
const ticketPath = await findTicketPath(this.rootPath ?? process.cwd(), changeName);
|
|
70
|
-
const
|
|
71
|
-
|
|
72
|
-
: ticketPath;
|
|
71
|
+
const mainArtifactPath = await this.findMainArtifact(changeDir);
|
|
72
|
+
const primaryPath = mainArtifactPath ?? ticketPath;
|
|
73
73
|
if (!primaryPath || !(await this.fileExists(primaryPath))) {
|
|
74
|
-
throw new Error(`Change "${changeName}" not found (no
|
|
74
|
+
throw new Error(`Change "${changeName}" not found (no main artifact in ${changeDir}, no ticket in tospec/tickets/)`);
|
|
75
75
|
}
|
|
76
76
|
if (options?.json) {
|
|
77
77
|
const parser = new ChangeParser('', changeDir);
|
|
@@ -92,8 +92,8 @@ export class ChangePresenter {
|
|
|
92
92
|
if (options.diff) {
|
|
93
93
|
await this.enrichDeltasWithDiffs(deltas, changeDir);
|
|
94
94
|
}
|
|
95
|
-
//
|
|
96
|
-
//
|
|
95
|
+
// The ticket's yaml header when present, else the primary doc's H1, else
|
|
96
|
+
// the change name.
|
|
97
97
|
const titleSource = ticketPath && (await this.fileExists(ticketPath)) ? ticketPath : primaryPath;
|
|
98
98
|
const contentForTitle = await fs.readFile(titleSource, 'utf-8');
|
|
99
99
|
const title = this.extractTitle(contentForTitle, changeName);
|
|
@@ -101,20 +101,67 @@ export class ChangePresenter {
|
|
|
101
101
|
}
|
|
102
102
|
else {
|
|
103
103
|
const content = await fs.readFile(primaryPath, 'utf-8');
|
|
104
|
-
|
|
104
|
+
// A ticket's yaml header is machine bookkeeping, but its `title` is not,
|
|
105
|
+
// so that one field is promoted to a heading rather than dropped.
|
|
106
|
+
console.log(primaryPath === ticketPath ? this.renderTicketStub(content, changeName) : content);
|
|
105
107
|
if (options?.diff) {
|
|
106
108
|
await this.showSpecDiffs(changeName, changeDir);
|
|
107
109
|
}
|
|
108
110
|
}
|
|
109
111
|
}
|
|
110
112
|
/**
|
|
111
|
-
*
|
|
112
|
-
* counterpart in the main spec. Text mode and JSON mode both render from this
|
|
113
|
-
* one pass, so the two surfaces cannot drift apart.
|
|
113
|
+
* A ticket rendered for a human: its title as a heading, then its body.
|
|
114
114
|
*
|
|
115
|
-
*
|
|
116
|
-
*
|
|
117
|
-
|
|
115
|
+
* Falls back to the file as-is when the header does not parse — a display
|
|
116
|
+
* path degrades rather than fails.
|
|
117
|
+
*/
|
|
118
|
+
renderTicketStub(content, changeName) {
|
|
119
|
+
let body;
|
|
120
|
+
try {
|
|
121
|
+
body = splitFrontmatter(content).body;
|
|
122
|
+
}
|
|
123
|
+
catch {
|
|
124
|
+
return content;
|
|
125
|
+
}
|
|
126
|
+
const title = this.extractTitle(content, changeName);
|
|
127
|
+
return `# ${title}
|
|
128
|
+
|
|
129
|
+
${body}`;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* The change's main prose document, per its schema. Schema-driven rather than
|
|
133
|
+
* hardcoded to `proposal.md`, which the issue schema does not have. Taken in
|
|
134
|
+
* the schema's own order, skipping glob-generated artifacts
|
|
135
|
+
* (`specs/*/ /*spec.md`) — a set of documents, not the change's narrative.
|
|
136
|
+
*
|
|
137
|
+
* Falls back to proposal.md when the schema cannot be resolved, so an
|
|
138
|
+
* unreadable .tospec.yaml degrades rather than losing the command.
|
|
139
|
+
*/
|
|
140
|
+
async findMainArtifact(changeDir) {
|
|
141
|
+
const projectRoot = this.rootPath ?? process.cwd();
|
|
142
|
+
let artifacts = [];
|
|
143
|
+
try {
|
|
144
|
+
const schemaName = resolveSchemaForChange(changeDir, undefined, projectRoot);
|
|
145
|
+
artifacts = resolveSchema(schemaName, projectRoot).artifacts;
|
|
146
|
+
}
|
|
147
|
+
catch {
|
|
148
|
+
artifacts = [];
|
|
149
|
+
}
|
|
150
|
+
for (const artifact of artifacts) {
|
|
151
|
+
if (artifact.generates.includes('*'))
|
|
152
|
+
continue;
|
|
153
|
+
const candidate = path.join(changeDir, artifact.generates);
|
|
154
|
+
if (await this.fileExists(candidate))
|
|
155
|
+
return candidate;
|
|
156
|
+
}
|
|
157
|
+
const proposalPath = path.join(changeDir, 'proposal.md');
|
|
158
|
+
return (await this.fileExists(proposalPath)) ? proposalPath : undefined;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Pairs each delta requirement with its main-spec counterpart. Text and JSON
|
|
162
|
+
* mode both render from this one pass, and enumeration goes through
|
|
163
|
+
* findSpecUpdates — the walk archive merges with — so `--diff` shows what
|
|
164
|
+
* archive will apply.
|
|
118
165
|
*/
|
|
119
166
|
async collectSpecDiffs(changeDir) {
|
|
120
167
|
const updates = await findSpecUpdates(changeDir, this.getSpecsPath());
|
|
@@ -130,15 +177,25 @@ export class ChangePresenter {
|
|
|
130
177
|
for (const block of plan.added) {
|
|
131
178
|
results.push({ capability, operation: 'ADDED', requirementName: block.name, raw: block.raw });
|
|
132
179
|
}
|
|
133
|
-
//
|
|
134
|
-
//
|
|
180
|
+
// What a REMOVED deletes is the main spec's block, so that is what the
|
|
181
|
+
// reader reviews; the bullet-list form carries only a name, and the
|
|
182
|
+
// header alone said nothing about which scenarios go with it. The
|
|
183
|
+
// authored block (header form) follows, for its Reason/Migration text.
|
|
135
184
|
const removedBlocks = new Map(plan.removedBlocks.map((block) => [foldRequirementName(block.name), block.raw]));
|
|
136
185
|
for (const name of plan.removed) {
|
|
186
|
+
const authored = removedBlocks.get(foldRequirementName(name));
|
|
187
|
+
const current = mainContent ? extractRequirementBlock(mainContent, name)?.raw : undefined;
|
|
188
|
+
const raw = current && authored
|
|
189
|
+
? `${current}\n\n${authored}`
|
|
190
|
+
: current ?? authored ?? `### Requirement: ${name}`;
|
|
137
191
|
results.push({
|
|
138
192
|
capability,
|
|
139
193
|
operation: 'REMOVED',
|
|
140
194
|
requirementName: name,
|
|
141
|
-
raw
|
|
195
|
+
raw,
|
|
196
|
+
...(mainContent && !current
|
|
197
|
+
? { warning: `No matching main requirement found for "${name}" in ${capability}` }
|
|
198
|
+
: {}),
|
|
142
199
|
});
|
|
143
200
|
}
|
|
144
201
|
for (const rename of plan.renamed) {
|
|
@@ -159,8 +216,8 @@ export class ChangePresenter {
|
|
|
159
216
|
entry.diff = diffRequirementBlock(match.raw, block.raw, `${capability}/${block.name}`);
|
|
160
217
|
if (!match.exact) {
|
|
161
218
|
// Archive matches requirement names exactly, so a header differing
|
|
162
|
-
// only in case or spacing will not merge. Show the diff
|
|
163
|
-
//
|
|
219
|
+
// only in case or spacing will not merge. Show the intended diff and
|
|
220
|
+
// name the mismatch while it is cheap to fix.
|
|
164
221
|
entry.warning =
|
|
165
222
|
`Header differs from the main spec's "${match.name}" only in case or spacing; ` +
|
|
166
223
|
'archive matches names exactly, so reconcile them before archiving';
|
|
@@ -171,8 +228,8 @@ export class ChangePresenter {
|
|
|
171
228
|
}
|
|
172
229
|
else {
|
|
173
230
|
// MODIFIED names a block that should already exist, so a missing main
|
|
174
|
-
// spec is an authoring error, not a new capability
|
|
175
|
-
// all-additions would hide what archive
|
|
231
|
+
// spec is an authoring error, not a new capability; rendering it as
|
|
232
|
+
// all-additions would hide what archive will reject.
|
|
176
233
|
entry.warning =
|
|
177
234
|
`No main spec at tospec/specs/${capability}/spec.md, ` +
|
|
178
235
|
`so MODIFIED requirement "${block.name}" has nothing to diff against`;
|
|
@@ -183,12 +240,10 @@ export class ChangePresenter {
|
|
|
183
240
|
return { capabilities, results };
|
|
184
241
|
}
|
|
185
242
|
/**
|
|
186
|
-
*
|
|
187
|
-
*
|
|
188
|
-
*
|
|
189
|
-
*
|
|
190
|
-
* the header name, so they are matched to parsed blocks by capability and
|
|
191
|
-
* source order: ChangeParser emits one Delta per MODIFIED block in that order.
|
|
243
|
+
* Attaches `diff` (or `warning`) to every MODIFIED delta, in place. A Delta
|
|
244
|
+
* carries the requirement body in `description`, not the header name, so
|
|
245
|
+
* matching is by capability and source order — ChangeParser emits one Delta
|
|
246
|
+
* per MODIFIED block in that order.
|
|
192
247
|
*/
|
|
193
248
|
async enrichDeltasWithDiffs(deltas, changeDir) {
|
|
194
249
|
const modifiedDeltasBySpec = new Map();
|
|
@@ -228,8 +283,7 @@ export class ChangePresenter {
|
|
|
228
283
|
const { capabilities, results } = await this.collectSpecDiffs(changeDir);
|
|
229
284
|
console.log();
|
|
230
285
|
if (capabilities.length === 0 || results.length === 0) {
|
|
231
|
-
// Not an error: a change can be proposal-only.
|
|
232
|
-
// heading with nothing under it.
|
|
286
|
+
// Not an error: a change can be proposal-only.
|
|
233
287
|
console.log(`No delta specs to diff for change "${changeName}".`);
|
|
234
288
|
return;
|
|
235
289
|
}
|
|
@@ -252,6 +306,9 @@ export class ChangePresenter {
|
|
|
252
306
|
case 'ADDED':
|
|
253
307
|
case 'REMOVED':
|
|
254
308
|
console.log(` ${result.operation}: ${result.requirementName}`);
|
|
309
|
+
if (result.warning) {
|
|
310
|
+
console.log(` ! ${result.warning}`);
|
|
311
|
+
}
|
|
255
312
|
for (const line of result.raw.split('\n')) {
|
|
256
313
|
console.log(` ${line}`);
|
|
257
314
|
}
|
|
@@ -300,7 +357,9 @@ export class ChangePresenter {
|
|
|
300
357
|
const fmTitle = frontmatterString(content, 'title')?.trim();
|
|
301
358
|
if (fmTitle)
|
|
302
359
|
return fmTitle;
|
|
303
|
-
|
|
360
|
+
// `frontmatterString` strips the BOM itself; this fallback reads the raw
|
|
361
|
+
// text, where a BOM sits between `^` and the `#` of a first-line H1.
|
|
362
|
+
const match = stripBom(content).match(/^#\s+(?:Change:\s+)?(.+)$/im);
|
|
304
363
|
return match ? match[1].trim() : changeName;
|
|
305
364
|
}
|
|
306
365
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"change-presenter.js","sourceRoot":"","sources":["../../src/core/change-presenter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"change-presenter.js","sourceRoot":"","sources":["../../src/core/change-presenter.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,8 +18,15 @@ export interface ActionContext {
|
|
|
18
18
|
}
|
|
19
19
|
export interface ChangeStatusPolicyArtifact {
|
|
20
20
|
id: string;
|
|
21
|
-
status:
|
|
21
|
+
status: ArtifactStatusValue;
|
|
22
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* `optional` and `skipped` are separate values: collapsed into one, a caller
|
|
25
|
+
* cannot tell "you may still write this" from "this change says there is
|
|
26
|
+
* nothing to write". The issue schema's delta specs are the case that matters —
|
|
27
|
+
* its instruction asks for them whenever the fix changes observable behaviour.
|
|
28
|
+
*/
|
|
29
|
+
export type ArtifactStatusValue = 'done' | 'ready' | 'blocked' | 'skipped' | 'optional' | 'stub';
|
|
23
30
|
export interface ChangeNextStepsInput {
|
|
24
31
|
changeName: string;
|
|
25
32
|
artifactStatuses: ChangeStatusPolicyArtifact[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"change-status-policy.d.ts","sourceRoot":"","sources":["../../src/core/change-status-policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,YAAY,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,aAAa,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvC,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,6BAA6B,EAAE,OAAO,CAAC;IACvC,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,0BAA0B;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"change-status-policy.d.ts","sourceRoot":"","sources":["../../src/core/change-status-policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,YAAY,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,aAAa,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACvC,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,6BAA6B,EAAE,OAAO,CAAC;IACvC,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,0BAA0B;IACzC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,mBAAmB,CAAC;CAC7B;AAED;;;;;GAKG;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;AAEjG,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,0BAA0B,EAAE,CAAC;IAC/C,oBAAoB,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,YAAY,GAAG,SAAS,GACrC,mBAAmB,GAAG,SAAS,CAWjC;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,kBAAkB,GAAG,aAAa,CAU3E;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,oBAAoB,GAAG,MAAM,EAAE,CA+BpE"}
|