@seanmars/tospec 0.19.0-beta.7 → 0.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +60 -231
- package/README.md +69 -82
- package/assets/dashboard/app.js +14 -3
- package/assets/dashboard/style.css +7 -0
- package/assets/rules/tospec/decision.md +3 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +227 -86
- 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 +366 -107
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/dashboard.d.ts +57 -99
- package/dist/commands/dashboard.d.ts.map +1 -1
- package/dist/commands/dashboard.js +224 -282
- 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 +385 -79
- package/dist/commands/decision.js.map +1 -1
- package/dist/commands/metrics.d.ts +28 -51
- package/dist/commands/metrics.d.ts.map +1 -1
- package/dist/commands/metrics.js +62 -93
- package/dist/commands/metrics.js.map +1 -1
- package/dist/commands/shared-output.d.ts +18 -21
- package/dist/commands/shared-output.d.ts.map +1 -1
- package/dist/commands/shared-output.js +49 -23
- 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 +29 -7
- package/dist/commands/show.js.map +1 -1
- package/dist/commands/validate.d.ts +43 -45
- package/dist/commands/validate.d.ts.map +1 -1
- package/dist/commands/validate.js +262 -129
- 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 +81 -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 +378 -235
- package/dist/core/archive.js.map +1 -1
- package/dist/core/artifact-graph/graph.d.ts +25 -42
- package/dist/core/artifact-graph/graph.d.ts.map +1 -1
- package/dist/core/artifact-graph/graph.js +45 -63
- package/dist/core/artifact-graph/graph.js.map +1 -1
- package/dist/core/artifact-graph/index.d.ts +1 -1
- package/dist/core/artifact-graph/index.d.ts.map +1 -1
- package/dist/core/artifact-graph/index.js +1 -1
- package/dist/core/artifact-graph/index.js.map +1 -1
- package/dist/core/artifact-graph/instruction-loader.d.ts +97 -103
- package/dist/core/artifact-graph/instruction-loader.d.ts.map +1 -1
- package/dist/core/artifact-graph/instruction-loader.js +146 -119
- package/dist/core/artifact-graph/instruction-loader.js.map +1 -1
- package/dist/core/artifact-graph/outputs.d.ts +9 -23
- package/dist/core/artifact-graph/outputs.d.ts.map +1 -1
- package/dist/core/artifact-graph/outputs.js +45 -38
- 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 +14 -15
- package/dist/core/codex-residue.d.ts.map +1 -1
- package/dist/core/codex-residue.js +18 -22
- package/dist/core/codex-residue.js.map +1 -1
- 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 +39 -26
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +36 -22
- package/dist/core/config.js.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 +62 -70
- 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 +38 -67
- package/dist/core/global-config.js.map +1 -1
- package/dist/core/init.d.ts +25 -19
- package/dist/core/init.d.ts.map +1 -1
- package/dist/core/init.js +168 -181
- 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 +41 -83
- package/dist/core/local-server.d.ts.map +1 -1
- package/dist/core/local-server.js +53 -98
- 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 +29 -14
- package/dist/core/migrate.d.ts.map +1 -1
- package/dist/core/migrate.js +184 -122
- 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 +43 -15
- package/dist/core/parsers/requirement-blocks.d.ts.map +1 -1
- package/dist/core/parsers/requirement-blocks.js +142 -70
- 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.map +1 -1
- package/dist/core/parsers/spec-structure.js +10 -6
- package/dist/core/parsers/spec-structure.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 +9 -17
- 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 +6 -1
- package/dist/core/rules.d.ts.map +1 -1
- package/dist/core/rules.js +23 -2
- package/dist/core/rules.js.map +1 -1
- 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 +19 -8
- package/dist/core/shared/rules-generation.d.ts.map +1 -1
- package/dist/core/shared/rules-generation.js +117 -50
- package/dist/core/shared/rules-generation.js.map +1 -1
- package/dist/core/shared/skill-generation.d.ts +28 -43
- 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 +39 -61
- 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.js +6 -6
- package/dist/core/spec-presenter.js.map +1 -1
- package/dist/core/specs-apply.d.ts +22 -23
- package/dist/core/specs-apply.d.ts.map +1 -1
- package/dist/core/specs-apply.js +166 -193
- 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/validate.d.ts +13 -0
- package/dist/core/templates/fragments/validate.d.ts.map +1 -0
- package/dist/core/templates/fragments/validate.js +13 -0
- package/dist/core/templates/fragments/validate.js.map +1 -0
- 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 +11 -13
- 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 +19 -6
- 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 -2
- 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 +2 -2
- 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 +4 -3
- 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 +9 -2
- package/dist/core/templates/workflows/update.js.map +1 -1
- package/dist/core/update.d.ts +23 -23
- package/dist/core/update.d.ts.map +1 -1
- package/dist/core/update.js +139 -118
- 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 +4 -10
- 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 +43 -63
- package/dist/core/validation/validator.d.ts.map +1 -1
- package/dist/core/validation/validator.js +500 -267
- 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 +30 -54
- package/dist/utils/change-utils.d.ts.map +1 -1
- package/dist/utils/change-utils.js +133 -91
- 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 +9 -18
- package/dist/utils/link.d.ts.map +1 -1
- package/dist/utils/link.js +9 -18
- package/dist/utils/link.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 +7 -20
- package/dist/utils/spec-files.d.ts.map +1 -1
- package/dist/utils/spec-files.js +26 -51
- 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 +2 -3
- package/schemas/decision/templates/decision.md +3 -1
- package/schemas/decision/templates/index.md +2 -2
- package/schemas/issue/schema.yaml +8 -1
- package/schemas/issue/templates/spec.md +27 -2
- package/schemas/sdd/schema.yaml +20 -1
- package/schemas/sdd/templates/spec.md +27 -2
- /package/assets/rules/tospec/{single-sourc-of-truth.md → single-source-of-truth.md} +0 -0
package/dist/cli/index.js
CHANGED
|
@@ -1,45 +1,79 @@
|
|
|
1
|
-
import { emitFailure, isCliAbort } from '../commands/shared-output.js';
|
|
2
|
-
import { Command, Option, InvalidArgumentError } from 'commander';
|
|
1
|
+
import { emitFailure, isCliAbort, emitFailureStatus, normalizeCommanderCode, } from '../commands/shared-output.js';
|
|
2
|
+
import { Command, CommanderError, Option, InvalidArgumentError } from 'commander';
|
|
3
3
|
import { createRequire } from 'module';
|
|
4
4
|
import path from 'path';
|
|
5
5
|
import { fileURLToPath } from 'url';
|
|
6
6
|
import { promises as fs } from 'fs';
|
|
7
7
|
import { AI_TOOLS } from '../core/config.js';
|
|
8
|
-
import { UpdateCommand } from '../core/update.js';
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import { MigrateCommand } from '../core/migrate.js';
|
|
8
|
+
import { UpdateCommand, UPDATE_FAILURE_PAYLOAD } from '../core/update.js';
|
|
9
|
+
import { INIT_FAILURE_PAYLOAD } from '../core/init.js';
|
|
10
|
+
import { RULES_FAILURE_PAYLOAD } from '../core/rules.js';
|
|
11
|
+
import { MigrateCommand, MIGRATE_FAILURE_PAYLOAD } from '../core/migrate.js';
|
|
12
12
|
import { resolveRootForCommand, resolveTospecRoot, isRootSelectionError, toRootOutput, } from '../core/root-selection.js';
|
|
13
|
-
import { ValidateCommand } from '../commands/validate.js';
|
|
14
|
-
import { ShowCommand } from '../commands/show.js';
|
|
13
|
+
import { ValidateCommand, VALIDATE_FAILURE_PAYLOAD } from '../commands/validate.js';
|
|
14
|
+
import { ShowCommand, SHOW_FAILURE_PAYLOAD } from '../commands/show.js';
|
|
15
15
|
import { isInteractive } from '../utils/interactive.js';
|
|
16
|
-
import { registerConfigCommand } from '../commands/config.js';
|
|
17
|
-
import { registerDecisionCommand } from '../commands/decision.js';
|
|
16
|
+
import { registerConfigCommand, CONFIG_FAILURE_PAYLOADS } from '../commands/config.js';
|
|
17
|
+
import { registerDecisionCommand, DECISION_NEW_FAILURE_PAYLOAD, DECISION_LIST_FAILURE_PAYLOAD, } from '../commands/decision.js';
|
|
18
18
|
import { registerMetricsCommand } from '../commands/metrics.js';
|
|
19
|
-
import { statusCommand, BATCH_STATUS_FAILURE_PAYLOAD, instructionsCommand, applyInstructionsCommand, templatesCommand, schemasCommand, newChangeCommand, DEFAULT_SCHEMA, } from '../commands/workflow/index.js';
|
|
19
|
+
import { statusCommand, BATCH_STATUS_FAILURE_PAYLOAD, STATUS_FAILURE_PAYLOAD, instructionsCommand, applyInstructionsCommand, INSTRUCTIONS_FAILURE_PAYLOAD, APPLY_ARGUMENT, templatesCommand, TEMPLATES_FAILURE_PAYLOAD, schemasCommand, SCHEMAS_FAILURE_PAYLOAD, newChangeCommand, NEW_CHANGE_FAILURE_PAYLOAD, DEFAULT_SCHEMA, } from '../commands/workflow/index.js';
|
|
20
20
|
/**
|
|
21
21
|
* The options the user actually typed.
|
|
22
22
|
*
|
|
23
|
-
* Commander materialises a negatable option's default
|
|
24
|
-
* `scenarios: true`
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
* ignored `scenarios` flag on every single run.
|
|
28
|
-
*
|
|
29
|
-
* Dropping the defaults here makes the two questions the same, rather than
|
|
30
|
-
* teaching each consumer a table of per-flag defaults to keep in sync. Safe
|
|
31
|
-
* because every consumer already treats a missing flag and its default
|
|
32
|
-
* identically (`options.scenarios !== false`, `options.interactive === false`).
|
|
23
|
+
* Commander materialises a negatable option's default (`--no-scenarios` puts
|
|
24
|
+
* `scenarios: true` in even when nobody typed it), so a body testing presence
|
|
25
|
+
* answers the wrong question. Safe to drop the defaults here because every
|
|
26
|
+
* consumer treats a missing flag and its default identically.
|
|
33
27
|
*/
|
|
34
28
|
function userSuppliedOptions(options, command) {
|
|
35
29
|
if (!options)
|
|
36
30
|
return {};
|
|
37
31
|
return Object.fromEntries(Object.entries(options).filter(([key]) => command.getOptionValueSource(key) !== 'default'));
|
|
38
32
|
}
|
|
33
|
+
/** `--concurrency` / `--port`: digits only, so `''`, `1.5` and `0x10` are all refused. */
|
|
34
|
+
function positiveIntegerArg(value) {
|
|
35
|
+
if (!/^\d+$/.test(value.trim()) || Number(value) <= 0) {
|
|
36
|
+
throw new InvalidArgumentError('Expected a positive integer.');
|
|
37
|
+
}
|
|
38
|
+
return value;
|
|
39
|
+
}
|
|
40
|
+
function portArg(value) {
|
|
41
|
+
if (!/^\d+$/.test(value.trim()) || Number(value) > 65535) {
|
|
42
|
+
throw new InvalidArgumentError('Expected an integer between 0 and 65535.');
|
|
43
|
+
}
|
|
44
|
+
return value;
|
|
45
|
+
}
|
|
46
|
+
const jsonFailureShapes = new WeakMap();
|
|
47
|
+
function withJsonFailureShape(command, shape) {
|
|
48
|
+
jsonFailureShapes.set(command, shape);
|
|
49
|
+
return command;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Makes commander throw instead of exiting, for the whole command tree. Applied
|
|
53
|
+
* after every subcommand is registered: commander copies `_exitCallback` into a
|
|
54
|
+
* subcommand at `.command()` time, so setting it on the root alone leaves every
|
|
55
|
+
* subcommand still calling `process.exit`.
|
|
56
|
+
*/
|
|
57
|
+
function throwOnCommanderExit(command) {
|
|
58
|
+
command.exitOverride((error) => {
|
|
59
|
+
// Attach the command so runCli can recover its null-shape; commander's
|
|
60
|
+
// error carries only a code and a message.
|
|
61
|
+
error.tospecCommand = command;
|
|
62
|
+
throw error;
|
|
63
|
+
});
|
|
64
|
+
for (const child of command.commands)
|
|
65
|
+
throwOnCommanderExit(child);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* The root output for a command that takes its root as a path argument rather
|
|
69
|
+
* than searching: `init`, `update`, `rules`, `migrate`. Their success payloads
|
|
70
|
+
* report `source: 'explicit'`, so their failures say the same.
|
|
71
|
+
*/
|
|
72
|
+
function explicitRootOutput(targetPath) {
|
|
73
|
+
return { path: path.resolve(targetPath), source: 'explicit' };
|
|
74
|
+
}
|
|
75
|
+
/** The agent contract: one JSON document on stdout per `--json` failure. */
|
|
39
76
|
function failWithError(error, json) {
|
|
40
|
-
// The agent contract: every --json failure leaves exactly one JSON
|
|
41
|
-
// document on stdout (the command's null-shape plus a status array).
|
|
42
|
-
// Delegates to the one shared failure sink (shared-output.emitFailure).
|
|
43
77
|
emitFailure(json?.enabled, json?.payload ?? {}, error, json?.fallbackCode ?? 'command_error');
|
|
44
78
|
}
|
|
45
79
|
const program = new Command();
|
|
@@ -49,16 +83,12 @@ program
|
|
|
49
83
|
.name('tospec')
|
|
50
84
|
.description('Spec-driven development CLI for requirements and issue workflows')
|
|
51
85
|
.version(version);
|
|
52
|
-
// Kept for backward compatibility
|
|
53
|
-
//
|
|
86
|
+
// Kept for backward compatibility; output has no color to disable, so this is a
|
|
87
|
+
// no-op.
|
|
54
88
|
program.option('--no-color', 'Disable color output (no-op: output is plain text)');
|
|
55
|
-
// -----------------------------------------------------------------------------
|
|
56
|
-
// Install layer
|
|
57
|
-
// -----------------------------------------------------------------------------
|
|
58
89
|
const availableToolIds = AI_TOOLS.filter((tool) => tool.skillsDir).map((tool) => tool.value);
|
|
59
|
-
//
|
|
60
|
-
//
|
|
61
|
-
// dependency documents itself.
|
|
90
|
+
// Derived from the same table so a future dependency documents itself: a value
|
|
91
|
+
// that drags another target in otherwise reads as "pick this or don't".
|
|
62
92
|
const toolDependencyNotes = AI_TOOLS
|
|
63
93
|
.filter((tool) => tool.requires?.length)
|
|
64
94
|
.map((tool) => `${tool.value} implies ${tool.requires.join(', ')}`)
|
|
@@ -70,6 +100,7 @@ program
|
|
|
70
100
|
.option('--tools <tools>', toolsOptionDescription)
|
|
71
101
|
.option('--force', 'Refresh existing generated files without prompting; does not bypass rule conflicts')
|
|
72
102
|
.option('--profile <profile>', 'Override global config profile (core or custom)')
|
|
103
|
+
.option('--json', 'Output as JSON (for programmatic use)')
|
|
73
104
|
.action(async (targetPath = '.', options) => {
|
|
74
105
|
try {
|
|
75
106
|
const resolvedPath = path.resolve(targetPath);
|
|
@@ -95,49 +126,70 @@ program
|
|
|
95
126
|
tools: options?.tools,
|
|
96
127
|
force: options?.force,
|
|
97
128
|
profile: options?.profile,
|
|
129
|
+
json: options?.json,
|
|
98
130
|
});
|
|
99
131
|
await initCommand.execute(targetPath);
|
|
100
132
|
}
|
|
101
133
|
catch (error) {
|
|
102
|
-
failWithError(error
|
|
134
|
+
failWithError(error, {
|
|
135
|
+
enabled: options?.json,
|
|
136
|
+
payload: { ...INIT_FAILURE_PAYLOAD, root: explicitRootOutput(targetPath) },
|
|
137
|
+
fallbackCode: 'init_error',
|
|
138
|
+
});
|
|
103
139
|
}
|
|
104
140
|
});
|
|
105
141
|
program
|
|
106
142
|
.command('update [path]')
|
|
107
143
|
.description('Update tospec instruction files')
|
|
108
144
|
.option('--force', 'Force update even when tools are up to date; does not bypass rule conflicts')
|
|
145
|
+
.option('--json', 'Output as JSON (for programmatic use)')
|
|
109
146
|
.action(async (targetPath = '.', options) => {
|
|
110
147
|
try {
|
|
111
|
-
const updateCommand = new UpdateCommand({ force: options?.force });
|
|
148
|
+
const updateCommand = new UpdateCommand({ force: options?.force, json: options?.json });
|
|
112
149
|
await updateCommand.execute(targetPath);
|
|
113
150
|
}
|
|
114
151
|
catch (error) {
|
|
115
|
-
failWithError(error
|
|
152
|
+
failWithError(error, {
|
|
153
|
+
enabled: options?.json,
|
|
154
|
+
payload: { ...UPDATE_FAILURE_PAYLOAD, root: explicitRootOutput(targetPath) },
|
|
155
|
+
fallbackCode: 'update_error',
|
|
156
|
+
});
|
|
116
157
|
}
|
|
117
158
|
});
|
|
118
159
|
program
|
|
119
160
|
.command('rules [path]')
|
|
120
161
|
.description('Refresh workflow rules for tools with installed tospec skills')
|
|
121
|
-
.
|
|
162
|
+
.option('--json', 'Output as JSON (for programmatic use)')
|
|
163
|
+
.action(async (targetPath = '.', options) => {
|
|
122
164
|
try {
|
|
123
165
|
const { RulesCommand } = await import('../core/rules.js');
|
|
124
|
-
await new RulesCommand().execute(targetPath);
|
|
166
|
+
await new RulesCommand().execute(targetPath, { json: options?.json });
|
|
125
167
|
}
|
|
126
168
|
catch (error) {
|
|
127
|
-
failWithError(error
|
|
169
|
+
failWithError(error, {
|
|
170
|
+
enabled: options?.json,
|
|
171
|
+
payload: { ...RULES_FAILURE_PAYLOAD, root: explicitRootOutput(targetPath) },
|
|
172
|
+
fallbackCode: 'rules_error',
|
|
173
|
+
});
|
|
128
174
|
}
|
|
129
175
|
});
|
|
130
176
|
program
|
|
131
177
|
.command('migrate [openspec-dir]')
|
|
132
178
|
.description('Migrate an OpenSpec project into tospec format (default source: ./openspec)')
|
|
133
179
|
.option('-f, --force', 'Skip confirmation prompt')
|
|
180
|
+
.option('--json', 'Output as JSON (non-interactive; requires --force)')
|
|
134
181
|
.action(async (openspecDir, options) => {
|
|
135
182
|
try {
|
|
136
183
|
const migrateCommand = new MigrateCommand();
|
|
137
184
|
await migrateCommand.execute(openspecDir, options);
|
|
138
185
|
}
|
|
139
186
|
catch (error) {
|
|
140
|
-
failWithError(error
|
|
187
|
+
failWithError(error, {
|
|
188
|
+
enabled: options?.json,
|
|
189
|
+
// migrate always writes `tospec/` into the cwd, so the root is known here.
|
|
190
|
+
payload: { ...MIGRATE_FAILURE_PAYLOAD, root: explicitRootOutput(process.cwd()) },
|
|
191
|
+
fallbackCode: 'migrate_error',
|
|
192
|
+
});
|
|
141
193
|
}
|
|
142
194
|
});
|
|
143
195
|
program
|
|
@@ -149,31 +201,53 @@ program
|
|
|
149
201
|
.option('--type <type>', 'Filter changes by type: "requirement" or "issue"')
|
|
150
202
|
.option('--json', 'Output as JSON (for programmatic use)')
|
|
151
203
|
.action(async (options) => {
|
|
204
|
+
// Resolve first so a failure can still report where the CLI was pointed.
|
|
205
|
+
// The data key is `null`, never `[]`: an empty array is indistinguishable
|
|
206
|
+
// from the successful "no active changes" answer.
|
|
207
|
+
let resolvedRoot = null;
|
|
208
|
+
const failurePayload = () => ({
|
|
209
|
+
...(options?.specs ? { specs: null } : { changes: null }),
|
|
210
|
+
root: resolvedRoot ? toRootOutput(resolvedRoot) : null,
|
|
211
|
+
});
|
|
152
212
|
try {
|
|
153
|
-
|
|
154
|
-
throw new Error(`Invalid --type '${options.type}'. Expected "requirement" or "issue".`);
|
|
155
|
-
}
|
|
156
|
-
const root = await resolveRootForCommand({}, {
|
|
213
|
+
resolvedRoot = await resolveRootForCommand({}, {
|
|
157
214
|
json: options?.json,
|
|
158
|
-
|
|
215
|
+
// An implicit root means no ancestor is a tospec project, and listing
|
|
216
|
+
// "no changes" there answers about a place that was never checked.
|
|
217
|
+
allowImplicitRoot: false,
|
|
218
|
+
failurePayload: failurePayload(),
|
|
159
219
|
});
|
|
160
|
-
if (!
|
|
220
|
+
if (!resolvedRoot) {
|
|
161
221
|
return;
|
|
162
222
|
}
|
|
223
|
+
if (options?.type && options.type !== 'requirement' && options.type !== 'issue') {
|
|
224
|
+
throw new Error(`Invalid --type '${options.type}'. Expected "requirement" or "issue".`);
|
|
225
|
+
}
|
|
226
|
+
// Two listings with no ordering between them; picking one silently
|
|
227
|
+
// answers a question the user did not ask.
|
|
228
|
+
if (options?.specs && options?.changes) {
|
|
229
|
+
throw new Error('Pass either --specs or --changes, not both: they select different listings and there is no ordering between them.');
|
|
230
|
+
}
|
|
231
|
+
// Specs have no type. A warning, not an error: the requested listing is
|
|
232
|
+
// still well-defined. On stderr, so `--json` stdout stays one document.
|
|
233
|
+
if (options?.specs && options?.type) {
|
|
234
|
+
console.error('Warning: Ignoring flags not applicable to --specs: type');
|
|
235
|
+
}
|
|
236
|
+
const { ListCommand } = await import('../core/list.js');
|
|
163
237
|
const listCommand = new ListCommand();
|
|
164
238
|
const mode = options?.specs ? 'specs' : 'changes';
|
|
165
239
|
const sort = options?.sort === 'name' ? 'name' : 'recent';
|
|
166
|
-
await listCommand.execute(
|
|
240
|
+
await listCommand.execute(resolvedRoot.path, mode, {
|
|
167
241
|
sort,
|
|
168
242
|
json: options?.json,
|
|
169
243
|
type: options?.type,
|
|
170
|
-
...(options?.json ? { root: toRootOutput(
|
|
244
|
+
...(options?.json ? { root: toRootOutput(resolvedRoot) } : {}),
|
|
171
245
|
});
|
|
172
246
|
}
|
|
173
247
|
catch (error) {
|
|
174
248
|
failWithError(error, {
|
|
175
249
|
enabled: options?.json,
|
|
176
|
-
payload:
|
|
250
|
+
payload: failurePayload(),
|
|
177
251
|
fallbackCode: 'list_error',
|
|
178
252
|
});
|
|
179
253
|
}
|
|
@@ -182,12 +256,13 @@ program
|
|
|
182
256
|
.command('archive [change-name]')
|
|
183
257
|
.description('Archive a completed change and update main specs')
|
|
184
258
|
.option('-y, --yes', 'Skip confirmation prompts')
|
|
185
|
-
.option('--skip-specs', 'Skip
|
|
259
|
+
.option('--skip-specs', 'Skip merging delta specs into the main specs for this run only; validation still applies, so an sdd change with no deltas also needs skip_specs: true in its .tospec.yaml (schemas whose specs are optional, such as issue, do not)')
|
|
186
260
|
.option('--no-validate', 'Skip validation (not recommended, requires confirmation)')
|
|
187
261
|
.option('--require-sync', 'Require a passing sync-report.md in the change directory before archiving')
|
|
188
262
|
.option('--json', 'Output as JSON (non-interactive)')
|
|
189
263
|
.action(async (changeName, options) => {
|
|
190
264
|
try {
|
|
265
|
+
const { ArchiveCommand } = await import('../core/archive.js');
|
|
191
266
|
const archiveCommand = new ArchiveCommand();
|
|
192
267
|
await archiveCommand.execute(changeName, options);
|
|
193
268
|
}
|
|
@@ -201,17 +276,13 @@ program
|
|
|
201
276
|
.option('--all', 'Validate all changes and specs')
|
|
202
277
|
.option('--changes', 'Validate all changes')
|
|
203
278
|
.option('--specs', 'Validate all specs')
|
|
204
|
-
|
|
279
|
+
// `.choices`, as `show --type` does: an unknown value used to fall through
|
|
280
|
+
// normalizeType as undefined and silently validate by auto-detection.
|
|
281
|
+
.addOption(new Option('--type <type>', 'Specify item type when ambiguous').choices(['change', 'spec']))
|
|
205
282
|
.option('--strict', 'Enable strict validation mode')
|
|
206
283
|
.option('--json', 'Output validation results as JSON')
|
|
207
284
|
.addOption(new Option('--concurrency <n>', 'Max concurrent validations (defaults to env TOSPEC_CONCURRENCY or 6)')
|
|
208
|
-
.argParser(
|
|
209
|
-
const n = parseInt(value, 10);
|
|
210
|
-
if (Number.isNaN(n) || n <= 0 || String(n) !== value.trim()) {
|
|
211
|
-
throw new InvalidArgumentError('Expected a positive integer.');
|
|
212
|
-
}
|
|
213
|
-
return value;
|
|
214
|
-
}))
|
|
285
|
+
.argParser(positiveIntegerArg))
|
|
215
286
|
.option('--no-interactive', 'Disable interactive prompts')
|
|
216
287
|
.action(async (itemName, options) => {
|
|
217
288
|
try {
|
|
@@ -219,7 +290,11 @@ program
|
|
|
219
290
|
await validateCommand.execute(itemName, options);
|
|
220
291
|
}
|
|
221
292
|
catch (error) {
|
|
222
|
-
failWithError(error, {
|
|
293
|
+
failWithError(error, {
|
|
294
|
+
enabled: options?.json,
|
|
295
|
+
payload: VALIDATE_FAILURE_PAYLOAD,
|
|
296
|
+
fallbackCode: 'validate_error',
|
|
297
|
+
});
|
|
223
298
|
}
|
|
224
299
|
});
|
|
225
300
|
program
|
|
@@ -231,8 +306,10 @@ program
|
|
|
231
306
|
'spec',
|
|
232
307
|
]))
|
|
233
308
|
.option('--no-interactive', 'Disable interactive prompts')
|
|
234
|
-
|
|
235
|
-
|
|
309
|
+
// No-ops kept for compatibility: a change's --json payload is always
|
|
310
|
+
// id/title/deltaCount/deltas, with no wider shape to narrow.
|
|
311
|
+
.option('--deltas-only', 'No-op: a change\'s JSON is always deltas (kept for compatibility)')
|
|
312
|
+
.option('--requirements-only', 'No-op: deprecated alias for --deltas-only')
|
|
236
313
|
.option('--diff', 'Show per-requirement diffs against the main specs (change)')
|
|
237
314
|
.option('--requirements', 'JSON only: Show only requirements (exclude scenarios)')
|
|
238
315
|
.option('--no-scenarios', 'JSON only: Exclude scenario content')
|
|
@@ -240,17 +317,16 @@ program
|
|
|
240
317
|
.action(async (itemName, options, command) => {
|
|
241
318
|
try {
|
|
242
319
|
const showCommand = new ShowCommand();
|
|
243
|
-
// Defaults stripped so warnIrrelevantFlags reports the flags the user
|
|
244
|
-
// typed, not the ones commander filled in.
|
|
245
320
|
await showCommand.execute(itemName, userSuppliedOptions(options, command));
|
|
246
321
|
}
|
|
247
322
|
catch (error) {
|
|
248
|
-
failWithError(error, {
|
|
323
|
+
failWithError(error, {
|
|
324
|
+
enabled: options?.json,
|
|
325
|
+
payload: SHOW_FAILURE_PAYLOAD,
|
|
326
|
+
fallbackCode: 'show_error',
|
|
327
|
+
});
|
|
249
328
|
}
|
|
250
329
|
});
|
|
251
|
-
// ═══════════════════════════════════════════════════════════
|
|
252
|
-
// Workflow / engine commands (agent contract)
|
|
253
|
-
// ═══════════════════════════════════════════════════════════
|
|
254
330
|
program
|
|
255
331
|
.command('status')
|
|
256
332
|
.description('Display artifact completion status for a change')
|
|
@@ -265,9 +341,7 @@ program
|
|
|
265
341
|
catch (error) {
|
|
266
342
|
failWithError(error, {
|
|
267
343
|
enabled: options.json,
|
|
268
|
-
|
|
269
|
-
// pre-existing contract and stays payload-free.
|
|
270
|
-
payload: options.all ? BATCH_STATUS_FAILURE_PAYLOAD : undefined,
|
|
344
|
+
payload: options.all ? BATCH_STATUS_FAILURE_PAYLOAD : STATUS_FAILURE_PAYLOAD,
|
|
271
345
|
fallbackCode: 'change_error',
|
|
272
346
|
});
|
|
273
347
|
}
|
|
@@ -280,7 +354,7 @@ program
|
|
|
280
354
|
.option('--json', 'Output as JSON')
|
|
281
355
|
.action(async (artifactId, options) => {
|
|
282
356
|
try {
|
|
283
|
-
if (artifactId ===
|
|
357
|
+
if (artifactId === APPLY_ARGUMENT) {
|
|
284
358
|
await applyInstructionsCommand(options);
|
|
285
359
|
}
|
|
286
360
|
else {
|
|
@@ -290,7 +364,7 @@ program
|
|
|
290
364
|
catch (error) {
|
|
291
365
|
failWithError(error, {
|
|
292
366
|
enabled: options.json,
|
|
293
|
-
payload:
|
|
367
|
+
payload: INSTRUCTIONS_FAILURE_PAYLOAD,
|
|
294
368
|
fallbackCode: 'change_error',
|
|
295
369
|
});
|
|
296
370
|
}
|
|
@@ -305,7 +379,7 @@ program
|
|
|
305
379
|
await templatesCommand(options);
|
|
306
380
|
}
|
|
307
381
|
catch (error) {
|
|
308
|
-
failWithError(error, { enabled: options.json, payload:
|
|
382
|
+
failWithError(error, { enabled: options.json, payload: TEMPLATES_FAILURE_PAYLOAD, fallbackCode: 'templates_error' });
|
|
309
383
|
}
|
|
310
384
|
});
|
|
311
385
|
program
|
|
@@ -317,7 +391,7 @@ program
|
|
|
317
391
|
await schemasCommand(options);
|
|
318
392
|
}
|
|
319
393
|
catch (error) {
|
|
320
|
-
failWithError(error, { enabled: options.json, payload:
|
|
394
|
+
failWithError(error, { enabled: options.json, payload: SCHEMAS_FAILURE_PAYLOAD, fallbackCode: 'schemas_error' });
|
|
321
395
|
}
|
|
322
396
|
});
|
|
323
397
|
const newCmd = program.command('new').description('Create new items');
|
|
@@ -342,7 +416,9 @@ newCmd
|
|
|
342
416
|
program
|
|
343
417
|
.command('dashboard [path]')
|
|
344
418
|
.description('Start a local dashboard; task checkbox updates are the only writes, confined to this tospec root and blocked for archived or sync-certified changes')
|
|
345
|
-
|
|
419
|
+
// Parsed like --concurrency: `Number('')` is 0, so a bare `--port ''` used to
|
|
420
|
+
// pass the range check and bind an OS-chosen port.
|
|
421
|
+
.addOption(new Option('-p, --port <n>', 'Port to listen on (0-65535)').default('5620').argParser(portArg))
|
|
346
422
|
.option('--host <addr>', 'Host to bind', '127.0.0.1')
|
|
347
423
|
.option('-o, --open', 'Open the dashboard in a browser after starting')
|
|
348
424
|
.option('-d, --detach', 'Run the dashboard in the background and return immediately')
|
|
@@ -352,10 +428,10 @@ program
|
|
|
352
428
|
.action(async (targetPath = '.', options) => {
|
|
353
429
|
try {
|
|
354
430
|
const dashboard = await import('../commands/dashboard.js');
|
|
355
|
-
// --list is global:
|
|
431
|
+
// --list is global: no tospec project required.
|
|
356
432
|
if (options?.list) {
|
|
357
|
-
// Same candidate set as --stop,
|
|
358
|
-
//
|
|
433
|
+
// Same candidate set as --stop, which points here when it cannot
|
|
434
|
+
// prompt, so the two never disagree about what is running.
|
|
359
435
|
const running = await dashboard.collectStoppableDashboards(null);
|
|
360
436
|
if (running.length === 0) {
|
|
361
437
|
console.log('No dashboards are running.');
|
|
@@ -371,7 +447,7 @@ program
|
|
|
371
447
|
const startPath = path.resolve(targetPath);
|
|
372
448
|
// --stop is project-independent, like --list: a path with no tospec root
|
|
373
449
|
// has no dashboard of its own, which is the cue to offer the full list
|
|
374
|
-
// rather than fail.
|
|
450
|
+
// rather than fail.
|
|
375
451
|
if (options?.stop) {
|
|
376
452
|
const stopRoot = await resolveTospecRoot({ startPath, allowImplicitRoot: false }).catch((err) => {
|
|
377
453
|
if (isRootSelectionError(err))
|
|
@@ -386,9 +462,8 @@ program
|
|
|
386
462
|
}
|
|
387
463
|
let targets = dashboard.selectStopTargets(candidates, stopRootPath);
|
|
388
464
|
if (targets.length === 0) {
|
|
389
|
-
// Nothing
|
|
390
|
-
//
|
|
391
|
-
// non-interactively, where there is nobody to answer the prompt.
|
|
465
|
+
// Nothing matches this path, so let the user pick. Reachable
|
|
466
|
+
// non-interactively too, where there is nobody to answer.
|
|
392
467
|
const listed = candidates.map((d) => ` ${dashboard.formatRunningDashboard(d, ' ')}`);
|
|
393
468
|
if (!isInteractive()) {
|
|
394
469
|
throw new dashboard.DashboardStopError(['No dashboard for this path, and no terminal to choose one from.', ...listed].join('\n'), 'Re-run from an interactive terminal, or see tospec dashboard --list.');
|
|
@@ -418,10 +493,8 @@ program
|
|
|
418
493
|
}
|
|
419
494
|
return;
|
|
420
495
|
}
|
|
496
|
+
// Already validated by portArg; the default is the only unparsed value.
|
|
421
497
|
const portValue = Number(options?.port ?? 5620);
|
|
422
|
-
if (!Number.isInteger(portValue) || portValue < 0 || portValue > 65535) {
|
|
423
|
-
throw new Error(`Invalid --port '${options?.port}'. Expected an integer between 0 and 65535.`);
|
|
424
|
-
}
|
|
425
498
|
// Starting a dashboard still requires a root — only --stop is lenient.
|
|
426
499
|
const root = await resolveTospecRoot({ startPath, allowImplicitRoot: false });
|
|
427
500
|
const runOpts = {
|
|
@@ -443,16 +516,84 @@ program
|
|
|
443
516
|
registerConfigCommand(program);
|
|
444
517
|
registerDecisionCommand(program);
|
|
445
518
|
registerMetricsCommand(program);
|
|
519
|
+
function commandAt(...names) {
|
|
520
|
+
let current = program;
|
|
521
|
+
for (const name of names) {
|
|
522
|
+
const next = current.commands.find((c) => c.name() === name);
|
|
523
|
+
if (!next)
|
|
524
|
+
throw new Error(`No such command to register a JSON failure shape for: ${names.join(' ')}`);
|
|
525
|
+
current = next;
|
|
526
|
+
}
|
|
527
|
+
return current;
|
|
528
|
+
}
|
|
529
|
+
// The `--json` null-shapes in one table, so the contract rule (a failure payload
|
|
530
|
+
// mirrors its success payload with the data keys nulled) is checkable in one
|
|
531
|
+
// place. Each entry reuses the object the command's own catch block passes to
|
|
532
|
+
// `failWithError`, never a literal: commander gives every command two failure
|
|
533
|
+
// layers, and copies drift.
|
|
534
|
+
withJsonFailureShape(commandAt('init'), () => INIT_FAILURE_PAYLOAD);
|
|
535
|
+
withJsonFailureShape(commandAt('update'), () => UPDATE_FAILURE_PAYLOAD);
|
|
536
|
+
withJsonFailureShape(commandAt('rules'), () => RULES_FAILURE_PAYLOAD);
|
|
537
|
+
withJsonFailureShape(commandAt('migrate'), () => MIGRATE_FAILURE_PAYLOAD);
|
|
538
|
+
withJsonFailureShape(commandAt('list'), (argv) => argv.includes('--specs') ? { specs: null, root: null } : { changes: null, root: null });
|
|
539
|
+
withJsonFailureShape(commandAt('archive'), () => ({ archive: null, root: null }));
|
|
540
|
+
withJsonFailureShape(commandAt('validate'), () => VALIDATE_FAILURE_PAYLOAD);
|
|
541
|
+
withJsonFailureShape(commandAt('show'), () => SHOW_FAILURE_PAYLOAD);
|
|
542
|
+
withJsonFailureShape(commandAt('status'), (argv) => argv.includes('--all') ? BATCH_STATUS_FAILURE_PAYLOAD : STATUS_FAILURE_PAYLOAD);
|
|
543
|
+
withJsonFailureShape(commandAt('instructions'), () => INSTRUCTIONS_FAILURE_PAYLOAD);
|
|
544
|
+
withJsonFailureShape(commandAt('templates'), () => TEMPLATES_FAILURE_PAYLOAD);
|
|
545
|
+
withJsonFailureShape(commandAt('schemas'), () => SCHEMAS_FAILURE_PAYLOAD);
|
|
546
|
+
withJsonFailureShape(commandAt('new', 'change'), () => NEW_CHANGE_FAILURE_PAYLOAD);
|
|
547
|
+
withJsonFailureShape(commandAt('decision', 'new'), () => DECISION_NEW_FAILURE_PAYLOAD);
|
|
548
|
+
withJsonFailureShape(commandAt('decision', 'list'), () => DECISION_LIST_FAILURE_PAYLOAD);
|
|
549
|
+
// `edit` speaks no --json and is deliberately absent.
|
|
550
|
+
for (const [subcommand, payload] of Object.entries(CONFIG_FAILURE_PAYLOADS)) {
|
|
551
|
+
withJsonFailureShape(commandAt('config', subcommand), () => payload);
|
|
552
|
+
}
|
|
446
553
|
export { program };
|
|
554
|
+
/**
|
|
555
|
+
* The command's full invocation path, not just its leaf name. `command.name()`
|
|
556
|
+
* is wrong for a nested command: `--help` advice naming the leaf of `new change`
|
|
557
|
+
* points at no command at all, and the leaf of `decision new` is a real command
|
|
558
|
+
* answering a different question.
|
|
559
|
+
*/
|
|
560
|
+
function commandPath(command) {
|
|
561
|
+
const names = [];
|
|
562
|
+
// Stops at the program itself, whose name the caller's template already has.
|
|
563
|
+
for (let node = command; node?.parent; node = node.parent) {
|
|
564
|
+
names.unshift(node.name());
|
|
565
|
+
}
|
|
566
|
+
return names.join(' ');
|
|
567
|
+
}
|
|
447
568
|
export function runCli(argv = process.argv) {
|
|
569
|
+
throwOnCommanderExit(program);
|
|
448
570
|
try {
|
|
449
571
|
program.parse(argv);
|
|
450
572
|
}
|
|
451
573
|
catch (error) {
|
|
574
|
+
if (error instanceof CommanderError) {
|
|
575
|
+
// `--help` and `--version` come through here having already printed what
|
|
576
|
+
// they were asked for, so only a non-zero exit is a failure.
|
|
577
|
+
if (error.exitCode === 0)
|
|
578
|
+
return;
|
|
579
|
+
const wantsJson = argv.includes('--json');
|
|
580
|
+
if (wantsJson) {
|
|
581
|
+
const command = error.tospecCommand;
|
|
582
|
+
const shape = command ? jsonFailureShapes.get(command) : undefined;
|
|
583
|
+
emitFailureStatus(shape ? shape(argv) : {}, {
|
|
584
|
+
severity: 'error',
|
|
585
|
+
code: normalizeCommanderCode(error.code),
|
|
586
|
+
message: error.message,
|
|
587
|
+
fix: `See tospec ${commandPath(command)} --help`.replace(/\s+/g, ' ').trim(),
|
|
588
|
+
});
|
|
589
|
+
return;
|
|
590
|
+
}
|
|
591
|
+
process.exitCode = error.exitCode || 1;
|
|
592
|
+
return;
|
|
593
|
+
}
|
|
452
594
|
// The one abort mechanism for places that cannot stop the run by returning
|
|
453
595
|
// (commander's preAction hooks). Setting the exit code and returning lets
|
|
454
|
-
// stdout
|
|
455
|
-
// and the --json contract requires the whole document to reach stdout.
|
|
596
|
+
// stdout flush, which `process.exit` does not guarantee.
|
|
456
597
|
if (isCliAbort(error)) {
|
|
457
598
|
process.exitCode = 1;
|
|
458
599
|
return;
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|