@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
|
@@ -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"}
|
|
@@ -25,10 +25,34 @@ export function buildNextSteps(input) {
|
|
|
25
25
|
const steps = [];
|
|
26
26
|
if (readyArtifact) {
|
|
27
27
|
steps.push(`Run tospec instructions ${readyArtifact.id} --change "${input.changeName}" --json before writing that artifact.`);
|
|
28
|
+
return steps;
|
|
28
29
|
}
|
|
29
|
-
|
|
30
|
+
if (input.allArtifactsComplete) {
|
|
30
31
|
steps.push('All planning artifacts are complete; review tasks before implementation.');
|
|
32
|
+
// Still offered: "complete" means every *required* artifact is written, so
|
|
33
|
+
// an unwritten optional one is worth naming here.
|
|
34
|
+
steps.push(...optionalSteps(input));
|
|
35
|
+
return steps;
|
|
31
36
|
}
|
|
37
|
+
// A stub is neither ready nor done, so without this it is the one state
|
|
38
|
+
// reporting `isComplete: false` with no next step — and the one that looks
|
|
39
|
+
// finished from a directory listing.
|
|
40
|
+
const stubs = input.artifactStatuses.filter((artifact) => artifact.status === 'stub');
|
|
41
|
+
for (const stub of stubs) {
|
|
42
|
+
steps.push(`Artifact ${stub.id} is still the unfilled template. Run tospec instructions ${stub.id} --change "${input.changeName}" --json, then replace the file's contents.`);
|
|
43
|
+
}
|
|
44
|
+
steps.push(...optionalSteps(input));
|
|
32
45
|
return steps;
|
|
33
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* Optional artifacts an author may still want to write. Nothing depends on them,
|
|
49
|
+
* so they never reach `ready` and would otherwise appear in no next step at any
|
|
50
|
+
* point in a change's life. Phrased as an offer, not an instruction: skipping
|
|
51
|
+
* an optional artifact is a legitimate outcome.
|
|
52
|
+
*/
|
|
53
|
+
function optionalSteps(input) {
|
|
54
|
+
return input.artifactStatuses
|
|
55
|
+
.filter((artifact) => artifact.status === 'optional')
|
|
56
|
+
.map((artifact) => `Optional: ${artifact.id} is not written. Run tospec instructions ${artifact.id} --change "${input.changeName}" --json if this change needs it.`);
|
|
57
|
+
}
|
|
34
58
|
//# sourceMappingURL=change-status-policy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"change-status-policy.js","sourceRoot":"","sources":["../../src/core/change-status-policy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"change-status-policy.js","sourceRoot":"","sources":["../../src/core/change-status-policy.ts"],"names":[],"mappings":"AA2CA,MAAM,UAAU,qBAAqB,CACnC,YAAsC;IAEtC,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO;QACL,IAAI,EAAE,YAAY,CAAC,IAAI;QACvB,IAAI,EAAE,YAAY,CAAC,IAAI;QACvB,UAAU,EAAE,YAAY,CAAC,UAAU;QACnC,aAAa,EAAE,YAAY,CAAC,aAAa;KAC1C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAyB;IAC1D,OAAO;QACL,IAAI,EAAE,YAAY;QAClB,aAAa,EAAE,MAAM;QACrB,iBAAiB,EAAE,KAAK,CAAC,WAAW;QACpC,aAAa,EAAE,EAAE;QACjB,gBAAgB,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC;QACrC,6BAA6B,EAAE,KAAK;QACpC,WAAW,EAAE,CAAC,kFAAkF,CAAC;KAClG,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAA2B;IACxD,MAAM,aAAa,GAAG,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC;IAC7F,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,IAAI,aAAa,EAAE,CAAC;QAClB,KAAK,CAAC,IAAI,CACR,2BAA2B,aAAa,CAAC,EAAE,cAAc,KAAK,CAAC,UAAU,wCAAwC,CAClH,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,KAAK,CAAC,oBAAoB,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,0EAA0E,CAAC,CAAC;QACvF,2EAA2E;QAC3E,kDAAkD;QAClD,KAAK,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QACpC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,wEAAwE;IACxE,2EAA2E;IAC3E,qCAAqC;IACrC,MAAM,KAAK,GAAG,KAAK,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;IACtF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,KAAK,CAAC,IAAI,CACR,YAAY,IAAI,CAAC,EAAE,4DAA4D,IAAI,CAAC,EAAE,cAAc,KAAK,CAAC,UAAU,6CAA6C,CAClK,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;IACpC,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,SAAS,aAAa,CAAC,KAA2B;IAChD,OAAO,KAAK,CAAC,gBAAgB;SAC1B,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,KAAK,UAAU,CAAC;SACpD,GAAG,CACF,CAAC,QAAQ,EAAE,EAAE,CACX,aAAa,QAAQ,CAAC,EAAE,4CAA4C,QAAQ,CAAC,EAAE,cAAc,KAAK,CAAC,UAAU,mCAAmC,CACnJ,CAAC;AACN,CAAC"}
|
|
@@ -3,22 +3,17 @@
|
|
|
3
3
|
* report `skill-metrics.ts` builds from Claude Code transcripts.
|
|
4
4
|
*
|
|
5
5
|
* Codex keeps one session tree shared by every project
|
|
6
|
-
* (`<CODEX_HOME or ~/.codex>/sessions/<yyyy>/<mm>/<dd>/rollout-*.jsonl`),
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* instead of resolving a path (see codex-metrics-source spec, "Codex sessions
|
|
11
|
-
* are scoped to a project by their recorded working directory").
|
|
6
|
+
* (`<CODEX_HOME or ~/.codex>/sessions/<yyyy>/<mm>/<dd>/rollout-*.jsonl`), with
|
|
7
|
+
* the working directory recorded once per session (`type: "session_meta"`,
|
|
8
|
+
* `payload.cwd`) rather than encoded into a directory name, so project scoping
|
|
9
|
+
* reads that field instead of resolving a path.
|
|
12
10
|
*
|
|
13
|
-
* Codex transcripts carry nothing like
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
* skill's instructions. Skill attribution here is therefore a heuristic, not a
|
|
20
|
-
* recorded fact, and undercounts by construction: a skill run that never
|
|
21
|
-
* re-reads its own instructions file is invisible to it.
|
|
11
|
+
* Codex transcripts carry nothing like `attributionSkill`, and the system prompt
|
|
12
|
+
* lists every installed skill whether used or not, so that listing is no signal.
|
|
13
|
+
* The one event that correlates with a skill being used is a tool-call command
|
|
14
|
+
* reading a path ending in `<skill-name>/SKILL.md`. Attribution here is
|
|
15
|
+
* therefore a heuristic that undercounts: a run that never re-reads its own
|
|
16
|
+
* instructions file is invisible.
|
|
22
17
|
*/
|
|
23
18
|
import { type RunGroupingOptions, type SkillMetrics, type TranscriptEntry } from './skill-metrics.js';
|
|
24
19
|
export interface CodexSessionsDirOptions {
|
|
@@ -26,16 +21,13 @@ export interface CodexSessionsDirOptions {
|
|
|
26
21
|
homedir?: string;
|
|
27
22
|
}
|
|
28
23
|
/**
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
* `~/.codex`. This is the directory to search, not a per-project one — Codex
|
|
32
|
-
* has no equivalent of Claude Code's per-project transcript directory.
|
|
24
|
+
* Codex's session tree (`CODEX_HOME`, else `~/.codex`). The whole directory has
|
|
25
|
+
* to be searched: Codex has no per-project transcript directory.
|
|
33
26
|
*/
|
|
34
27
|
export declare function resolveCodexSessionsDir(options?: CodexSessionsDirOptions): string;
|
|
35
28
|
/**
|
|
36
|
-
* Whether a session's recorded working directory names the given project.
|
|
37
|
-
*
|
|
38
|
-
* with nothing recorded cannot be attributed to any project.
|
|
29
|
+
* Whether a session's recorded working directory names the given project. `null`
|
|
30
|
+
* never matches: a session with nothing recorded belongs to no project.
|
|
39
31
|
*/
|
|
40
32
|
export declare function sessionBelongsToProject(cwd: string | null, rootPath: string): boolean;
|
|
41
33
|
export interface CodexSessionResult {
|
|
@@ -44,18 +36,13 @@ export interface CodexSessionResult {
|
|
|
44
36
|
entries: TranscriptEntry[];
|
|
45
37
|
}
|
|
46
38
|
/**
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
* apply unchanged (design.md D3). Malformed lines are skipped rather than
|
|
51
|
-
* fatal, for the same reason Claude Code transcripts are: an append-only log
|
|
52
|
-
* that can be torn at the tail while a session is live.
|
|
39
|
+
* Produces the same shape `parseTranscript` does for Claude Code, so
|
|
40
|
+
* `buildRuns`/`aggregateRuns` apply unchanged (D3). Malformed lines are skipped:
|
|
41
|
+
* an append-only log can be torn at the tail.
|
|
53
42
|
*
|
|
54
|
-
* Only `function_call`/`custom_tool_call` entries are
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
* (`skill: null`), exactly as an unattributed Claude Code entry is: it cannot
|
|
58
|
-
* end a run, but it is not evidence a skill became active either.
|
|
43
|
+
* Only `function_call`/`custom_tool_call` entries are inspected for a `SKILL.md`
|
|
44
|
+
* read. Everything else — including the fixed skill-listing text every session
|
|
45
|
+
* opens with — is folded in unattributed.
|
|
59
46
|
*/
|
|
60
47
|
export declare function parseCodexSession(text: string): CodexSessionResult;
|
|
61
48
|
export interface CodexProjectSession {
|
|
@@ -71,11 +58,8 @@ export interface CodexSessionScan {
|
|
|
71
58
|
sessions: CodexProjectSession[];
|
|
72
59
|
}
|
|
73
60
|
/**
|
|
74
|
-
* Finds and parses every Codex session belonging to one project.
|
|
75
|
-
*
|
|
76
|
-
* Shared by `collectCodexSkillMetrics` and the metrics server, which need
|
|
77
|
-
* exactly this and previously each carried their own copy of the walk — so the
|
|
78
|
-
* probe optimisation could otherwise have been applied to one and not the other.
|
|
61
|
+
* Finds and parses every Codex session belonging to one project. Shared by
|
|
62
|
+
* `collectCodexSkillMetrics` and the metrics server, so the probe reaches both.
|
|
79
63
|
*/
|
|
80
64
|
export declare function scanCodexSessions(rootPath: string, options?: CodexSessionsDirOptions): Promise<CodexSessionScan>;
|
|
81
65
|
export interface CollectCodexMetricsOptions extends RunGroupingOptions, CodexSessionsDirOptions {
|
|
@@ -83,13 +67,9 @@ export interface CollectCodexMetricsOptions extends RunGroupingOptions, CodexSes
|
|
|
83
67
|
sinceMs?: number;
|
|
84
68
|
}
|
|
85
69
|
/**
|
|
86
|
-
*
|
|
87
|
-
*
|
|
88
|
-
* `
|
|
89
|
-
*
|
|
90
|
-
* A missing sessions directory is a reportable state (`available: false`), not
|
|
91
|
-
* an error, for the same reason it is for Claude Code: the project may simply
|
|
92
|
-
* never have been opened in Codex.
|
|
70
|
+
* The Codex equivalent of `collectSkillMetrics`, over the `SKILL.md`-read
|
|
71
|
+
* heuristic. A missing sessions directory is a reportable state
|
|
72
|
+
* (`available: false`), not an error.
|
|
93
73
|
*/
|
|
94
74
|
export declare function collectCodexSkillMetrics(rootPath: string, options?: CollectCodexMetricsOptions): Promise<SkillMetrics>;
|
|
95
75
|
//# sourceMappingURL=codex-metrics.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex-metrics.d.ts","sourceRoot":"","sources":["../../src/core/codex-metrics.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"codex-metrics.d.ts","sourceRoot":"","sources":["../../src/core/codex-metrics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAOH,OAAO,EAQL,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,KAAK,eAAe,EACrB,MAAM,oBAAoB,CAAC;AAI5B,MAAM,WAAW,uBAAuB;IACtC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,GAAE,uBAA4B,GAAG,MAAM,CAMrF;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAKrF;AAED,MAAM,WAAW,kBAAkB;IACjC,uEAAuE;IACvE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B;AAqCD;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CA4ClE;AAwDD,MAAM,WAAW,mBAAmB;IAClC,iEAAiE;IACjE,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,mFAAmF;IACnF,SAAS,EAAE,OAAO,CAAC;IACnB,+DAA+D;IAC/D,QAAQ,EAAE,mBAAmB,EAAE,CAAC;CACjC;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,gBAAgB,CAAC,CA4B3B;AAED,MAAM,WAAW,0BAA2B,SAAQ,kBAAkB,EAAE,uBAAuB;IAC7F,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAsB,wBAAwB,CAC5C,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,0BAA+B,GACvC,OAAO,CAAC,YAAY,CAAC,CAqDvB"}
|