@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,7 +1,7 @@
|
|
|
1
1
|
import * as fs from 'node:fs';
|
|
2
2
|
import * as path from 'node:path';
|
|
3
3
|
import * as os from 'node:os';
|
|
4
|
-
|
|
4
|
+
import { stripBom } from './parsers/requirement-text.js';
|
|
5
5
|
export const GLOBAL_CONFIG_DIR_NAME = 'tospec';
|
|
6
6
|
export const GLOBAL_CONFIG_FILE_NAME = 'config.json';
|
|
7
7
|
export const GLOBAL_DATA_DIR_NAME = 'tospec';
|
|
@@ -9,21 +9,17 @@ const DEFAULT_CONFIG = {
|
|
|
9
9
|
profile: 'core',
|
|
10
10
|
};
|
|
11
11
|
/**
|
|
12
|
-
* The single user-level tospec directory
|
|
12
|
+
* The single user-level tospec directory on every platform:
|
|
13
|
+
* `$XDG_CONFIG_HOME/tospec/`, else `~/.config/tospec/`.
|
|
13
14
|
*
|
|
14
|
-
* -
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
* Deliberately platform-uniform: %APPDATA% is not consulted, so config, schema
|
|
18
|
-
* overrides and the dashboard registry cannot end up in three different trees on
|
|
19
|
-
* Windows. Anyone who wants the roaming behaviour back — %APPDATA% is synced
|
|
20
|
-
* across domain-joined machines and the home directory is not — sets
|
|
21
|
-
* XDG_CONFIG_HOME to it.
|
|
15
|
+
* Platform-uniform on purpose: %APPDATA% is not consulted, so config, schema
|
|
16
|
+
* overrides and the dashboard registry cannot land in three different trees on
|
|
17
|
+
* Windows. Point XDG_CONFIG_HOME at %APPDATA% for the roaming behaviour.
|
|
22
18
|
*/
|
|
23
19
|
export function getGlobalConfigDir(options = {}) {
|
|
24
20
|
const env = options.env ?? process.env;
|
|
25
21
|
const platform = options.platform ?? os.platform();
|
|
26
|
-
// XDG_CONFIG_HOME
|
|
22
|
+
// XDG_CONFIG_HOME wins on every platform when explicitly set.
|
|
27
23
|
const xdgConfigHome = env.XDG_CONFIG_HOME;
|
|
28
24
|
if (xdgConfigHome) {
|
|
29
25
|
return joinGlobalPath(platform, xdgConfigHome, GLOBAL_CONFIG_DIR_NAME);
|
|
@@ -38,42 +34,34 @@ function joinGlobalPath(platform, ...segments) {
|
|
|
38
34
|
: path.posix.join(...segments);
|
|
39
35
|
}
|
|
40
36
|
/**
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
* - macOS/Linux: ~/.local/share/tospec/
|
|
45
|
-
* - Windows: %LOCALAPPDATA%/tospec/
|
|
37
|
+
* Where schema overrides lived before moving under the config directory:
|
|
38
|
+
* `~/.local/share/tospec/`, or `%LOCALAPPDATA%/tospec/` on Windows.
|
|
46
39
|
*
|
|
47
|
-
* XDG_DATA_HOME is
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
* move files out of a location we are still honouring.
|
|
40
|
+
* XDG_DATA_HOME is *not* consulted: it still names a live schema override (see
|
|
41
|
+
* getUserSchemasDir), so reading it as "legacy" would migrate files out of a
|
|
42
|
+
* location tospec still honours.
|
|
51
43
|
*/
|
|
52
44
|
export function getLegacyDataDir(options = {}) {
|
|
53
45
|
const env = options.env ?? process.env;
|
|
54
46
|
const platform = options.platform ?? os.platform();
|
|
55
47
|
const homedir = options.homedir ?? os.homedir();
|
|
56
48
|
if (platform === 'win32') {
|
|
57
|
-
// Windows:
|
|
49
|
+
// Windows: %LOCALAPPDATA%.
|
|
58
50
|
const localAppData = env.LOCALAPPDATA;
|
|
59
51
|
if (localAppData) {
|
|
60
52
|
return joinGlobalPath(platform, localAppData, GLOBAL_DATA_DIR_NAME);
|
|
61
53
|
}
|
|
62
|
-
//
|
|
54
|
+
// Windows without LOCALAPPDATA.
|
|
63
55
|
return joinGlobalPath(platform, homedir, 'AppData', 'Local', GLOBAL_DATA_DIR_NAME);
|
|
64
56
|
}
|
|
65
|
-
// Unix/macOS
|
|
57
|
+
// Unix/macOS: ~/.local/share.
|
|
66
58
|
return joinGlobalPath(platform, homedir, '.local', 'share', GLOBAL_DATA_DIR_NAME);
|
|
67
59
|
}
|
|
68
60
|
/**
|
|
69
|
-
* Where config lived before it moved under ~/.config
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
*
|
|
73
|
-
* On macOS/Linux — and on any platform with XDG_CONFIG_HOME set — the old
|
|
74
|
-
* resolver already produced today's answer, so "legacy" is the current
|
|
75
|
-
* directory and every caller degenerates into a no-op without needing to ask
|
|
76
|
-
* which platform it is on.
|
|
61
|
+
* Where config lived before it moved under ~/.config; only the migration and the
|
|
62
|
+
* read fallback consult it. On macOS/Linux, and anywhere XDG_CONFIG_HOME is set,
|
|
63
|
+
* the old resolver already produced today's answer, so every caller degenerates
|
|
64
|
+
* into a no-op.
|
|
77
65
|
*/
|
|
78
66
|
export function getLegacyConfigDir(options = {}) {
|
|
79
67
|
const env = options.env ?? process.env;
|
|
@@ -87,21 +75,29 @@ export function getLegacyConfigDir(options = {}) {
|
|
|
87
75
|
? joinGlobalPath(platform, appData, GLOBAL_CONFIG_DIR_NAME)
|
|
88
76
|
: joinGlobalPath(platform, homedir, 'AppData', 'Roaming', GLOBAL_CONFIG_DIR_NAME);
|
|
89
77
|
}
|
|
90
|
-
/**
|
|
91
|
-
* Gets the path to the global config file.
|
|
92
|
-
*/
|
|
93
78
|
export function getGlobalConfigPath() {
|
|
94
79
|
return path.join(getGlobalConfigDir(), GLOBAL_CONFIG_FILE_NAME);
|
|
95
80
|
}
|
|
96
81
|
function readConfigFile(configPath) {
|
|
97
82
|
try {
|
|
98
83
|
const content = fs.readFileSync(configPath, 'utf-8');
|
|
99
|
-
//
|
|
100
|
-
//
|
|
101
|
-
|
|
84
|
+
// A BOM is not JSON whitespace, so `JSON.parse` throws on it before reaching
|
|
85
|
+
// the opening brace and the file is reported as invalid when it is not. The
|
|
86
|
+
// yaml reader tolerates one natively, so without this the two config formats
|
|
87
|
+
// disagree about the same edit in the same Windows editor.
|
|
88
|
+
const parsed = JSON.parse(stripBom(content));
|
|
89
|
+
// Valid JSON is not usable config: `[1,2,3]` and `"hello"` parse without a
|
|
90
|
+
// SyntaxError, and spreading either yields an index-keyed object that would
|
|
91
|
+
// be returned as configuration.
|
|
92
|
+
if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed)) {
|
|
93
|
+
console.error(`Warning: ${configPath} is not a JSON object, using defaults`);
|
|
94
|
+
return { ...DEFAULT_CONFIG };
|
|
95
|
+
}
|
|
96
|
+
// Loaded values win; unknown keys from older versions pass through.
|
|
97
|
+
return { ...DEFAULT_CONFIG, ...parsed };
|
|
102
98
|
}
|
|
103
99
|
catch (error) {
|
|
104
|
-
//
|
|
100
|
+
// A missing file is the normal case and says nothing.
|
|
105
101
|
if (error instanceof SyntaxError) {
|
|
106
102
|
console.error(`Warning: Invalid JSON in ${configPath}, using defaults`);
|
|
107
103
|
}
|
|
@@ -109,20 +105,16 @@ function readConfigFile(configPath) {
|
|
|
109
105
|
}
|
|
110
106
|
}
|
|
111
107
|
/**
|
|
112
|
-
*
|
|
113
|
-
*
|
|
114
|
-
*
|
|
115
|
-
*
|
|
116
|
-
* stops firing as soon as anything saves.
|
|
117
|
-
*
|
|
118
|
-
* Takes resolved directories rather than reading them itself so the on-disk
|
|
119
|
-
* behaviour is testable without a platform whose legacy path differs.
|
|
108
|
+
* Falls back to `legacyConfigDir` while an install has not been migrated:
|
|
109
|
+
* migration only runs on init/update, so without this a user who upgrades and
|
|
110
|
+
* runs anything else silently drops to the default profile. Writes always go to
|
|
111
|
+
* `configDir`, so the fallback stops firing as soon as anything saves.
|
|
120
112
|
*/
|
|
121
113
|
export function loadGlobalConfigFrom(configDir, legacyConfigDir) {
|
|
122
114
|
const configPath = resolveConfigPath(configDir, legacyConfigDir);
|
|
123
115
|
return fs.existsSync(configPath) ? readConfigFile(configPath) : { ...DEFAULT_CONFIG };
|
|
124
116
|
}
|
|
125
|
-
/**
|
|
117
|
+
/** The single owner of the current-then-legacy precedence. */
|
|
126
118
|
function resolveConfigPath(configDir, legacyConfigDir) {
|
|
127
119
|
const configPath = path.join(configDir, GLOBAL_CONFIG_FILE_NAME);
|
|
128
120
|
if (fs.existsSync(configPath)) {
|
|
@@ -132,31 +124,20 @@ function resolveConfigPath(configDir, legacyConfigDir) {
|
|
|
132
124
|
return legacyPath !== configPath && fs.existsSync(legacyPath) ? legacyPath : configPath;
|
|
133
125
|
}
|
|
134
126
|
/**
|
|
135
|
-
* The config file a read actually lands on
|
|
136
|
-
*
|
|
137
|
-
*
|
|
138
|
-
* different files, and using the wrong one labels every explicit value
|
|
139
|
-
* "(default)".
|
|
127
|
+
* The config file a read actually lands on, as opposed to getGlobalConfigPath,
|
|
128
|
+
* which names where config is *written*. During the fallback window those are
|
|
129
|
+
* different files, and the wrong one labels every explicit value "(default)".
|
|
140
130
|
*/
|
|
141
131
|
export function getEffectiveConfigPath() {
|
|
142
132
|
return resolveConfigPath(getGlobalConfigDir(), getLegacyConfigDir());
|
|
143
133
|
}
|
|
144
|
-
/**
|
|
145
|
-
* Loads the global configuration from disk.
|
|
146
|
-
* Returns default configuration if file doesn't exist or is invalid.
|
|
147
|
-
* Merges loaded config with defaults to ensure new fields are available.
|
|
148
|
-
*/
|
|
134
|
+
/** Merged over the defaults; a missing or invalid file yields the defaults. */
|
|
149
135
|
export function getGlobalConfig() {
|
|
150
136
|
return loadGlobalConfigFrom(getGlobalConfigDir(), getLegacyConfigDir());
|
|
151
137
|
}
|
|
152
|
-
/**
|
|
153
|
-
* Saves the global configuration to disk.
|
|
154
|
-
* Creates the config directory if it doesn't exist.
|
|
155
|
-
*/
|
|
156
138
|
export function saveGlobalConfig(config) {
|
|
157
139
|
const configDir = getGlobalConfigDir();
|
|
158
140
|
const configPath = getGlobalConfigPath();
|
|
159
|
-
// Create directory if it doesn't exist
|
|
160
141
|
if (!fs.existsSync(configDir)) {
|
|
161
142
|
fs.mkdirSync(configDir, { recursive: true });
|
|
162
143
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global-config.js","sourceRoot":"","sources":["../../src/core/global-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"global-config.js","sourceRoot":"","sources":["../../src/core/global-config.ts"],"names":[],"mappings":"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"}
|
package/dist/core/init.d.ts
CHANGED
|
@@ -1,34 +1,52 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Init Command
|
|
3
|
-
*
|
|
4
|
-
* Sets up tospec Agent Skills for Claude Code and Codex.
|
|
5
|
-
*/
|
|
1
|
+
/** Sets up tospec Agent Skills for Claude Code and Codex. */
|
|
6
2
|
type InitCommandOptions = {
|
|
7
3
|
tools?: string;
|
|
8
4
|
force?: boolean;
|
|
9
5
|
interactive?: boolean;
|
|
10
6
|
profile?: string;
|
|
7
|
+
/** Emit one JSON document instead of progress prose. */
|
|
8
|
+
json?: boolean;
|
|
11
9
|
};
|
|
10
|
+
/** The `--json` null-shape; mirrors the success payload with `init` nulled. */
|
|
11
|
+
export declare const INIT_FAILURE_PAYLOAD: Record<string, unknown>;
|
|
12
12
|
export declare class InitCommand {
|
|
13
13
|
private readonly toolsArg?;
|
|
14
14
|
private readonly force;
|
|
15
15
|
private readonly interactiveOption?;
|
|
16
16
|
private readonly profileOverride?;
|
|
17
|
+
private readonly json;
|
|
17
18
|
constructor(options?: InitCommandOptions);
|
|
19
|
+
/**
|
|
20
|
+
* Progress prose, suppressed under `--json`: the envelope contract allows only
|
|
21
|
+
* one document on stdout.
|
|
22
|
+
*/
|
|
23
|
+
private say;
|
|
24
|
+
/**
|
|
25
|
+
* Unlike `say`, a warning has no other carrier — dropping it under `--json`
|
|
26
|
+
* would leave an agent caller less informed than a human.
|
|
27
|
+
*/
|
|
28
|
+
private warn;
|
|
29
|
+
/** Emitted alongside the success payload; empty means the key is omitted. */
|
|
30
|
+
private readonly jsonWarnings;
|
|
18
31
|
execute(targetPath: string): Promise<void>;
|
|
19
32
|
private validate;
|
|
33
|
+
/**
|
|
34
|
+
* A row can arrive uninvited by being required by another, which has to be
|
|
35
|
+
* said *before* the prompt to inform the answer. Derived from the table so a
|
|
36
|
+
* future dependency documents itself.
|
|
37
|
+
*
|
|
38
|
+
* Prompt path only: a `--tools` run has no answer to inform.
|
|
39
|
+
*/
|
|
40
|
+
private discloseToolDependencies;
|
|
20
41
|
private canPromptInteractively;
|
|
21
42
|
private resolveProfileOverride;
|
|
22
43
|
private getSelectedTools;
|
|
23
44
|
private resolveToolsArg;
|
|
24
45
|
private validateTools;
|
|
25
46
|
/**
|
|
26
|
-
* Anchoring runs on every init, not only the first
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
* extendMode differs only in staying quiet — the work itself is identical, so
|
|
31
|
-
* it is a pair of guards rather than a second copy of the loop.
|
|
47
|
+
* Anchoring runs on every init, not only the first, so a project predating the
|
|
48
|
+
* rule reaches the same state without a migration step. `extendMode` differs
|
|
49
|
+
* only in staying quiet.
|
|
32
50
|
*/
|
|
33
51
|
private createDirectoryStructure;
|
|
34
52
|
private generateSkillsAndCommands;
|
package/dist/core/init.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/core/init.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/core/init.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAiD7D,KAAK,kBAAkB,GAAG;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wDAAwD;IACxD,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,+EAA+E;AAC/E,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAA8B,CAAC;AAExF,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAU;IAChC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAU;IAC7C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAU;IAE/B,YAAY,OAAO,GAAE,kBAAuB,EAM3C;IAED;;;OAGG;IACH,OAAO,CAAC,GAAG;IAIX;;;OAGG;IACH,OAAO,CAAC,IAAI;IAQZ,6EAA6E;IAC7E,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA2B;IAElD,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA4G/C;YAEa,QAAQ;IAMtB;;;;;;OAMG;IACH,OAAO,CAAC,wBAAwB;IAiBhC,OAAO,CAAC,sBAAsB;IAM9B,OAAO,CAAC,sBAAsB;YAYhB,gBAAgB;IAoG9B,OAAO,CAAC,eAAe;IAyDvB,OAAO,CAAC,aAAa;IAkCrB;;;;OAIG;YACW,wBAAwB;YAcxB,yBAAyB;YAmFzB,YAAY;IAgB1B,OAAO,CAAC,qBAAqB;YA6Ff,oBAAoB;CAoBnC"}
|