@devtrack-solution/codesdd 1.2.2 → 1.2.3
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/.sdd/skills/curated/api-clean-flask-langgraph/SKILL.md +17 -17
- package/.sdd/skills/curated/devtrack-api/SKILL.md +160 -28
- package/.sdd/skills/curated/devtrack-api/agents/openai.yaml +1 -1
- package/.sdd/skills/curated/devtrack-api/references/architecture-governance.md +8 -7
- package/.sdd/skills/curated/devtrack-api/references/consumer-sync-policy.md +93 -0
- package/.sdd/skills/curated/devtrack-api/references/contract-pack.yaml +317 -0
- package/.sdd/skills/curated/devtrack-api/references/field-validation-protocol.md +95 -0
- package/.sdd/skills/curated/devtrack-api/references/foundation-layout.md +295 -0
- package/.sdd/skills/curated/devtrack-api/references/implementation-checklist.md +4 -4
- package/.sdd/skills/curated/devtrack-api/references/imports-lint.md +4 -0
- package/.sdd/skills/curated/devtrack-api/references/testing-validation.md +2 -2
- package/LICENSE +1 -1
- package/README.md +243 -51
- package/bin/codesdd.js +3 -2
- package/dist/cli/index.d.ts +2 -2
- package/dist/cli/index.js +11 -558
- package/dist/cli/program.d.ts +14 -0
- package/dist/cli/program.js +645 -0
- package/dist/commands/change.js +5 -5
- package/dist/commands/completion.d.ts +1 -1
- package/dist/commands/completion.js +9 -2
- package/dist/commands/config.js +159 -20
- package/dist/commands/feedback.js +1 -1
- package/dist/commands/schema.d.ts +63 -0
- package/dist/commands/schema.js +12 -12
- package/dist/commands/sdd/backlog.d.ts +3 -0
- package/dist/commands/sdd/backlog.js +54 -0
- package/dist/commands/sdd/execution.js +147 -16
- package/dist/commands/sdd/plugin.d.ts +3 -0
- package/dist/commands/sdd/plugin.js +153 -0
- package/dist/commands/sdd/shared.js +2 -23
- package/dist/commands/sdd/skills.js +7 -0
- package/dist/commands/sdd.js +69 -12
- package/dist/commands/spec.js +9 -9
- package/dist/commands/validate.js +6 -6
- package/dist/commands/workflow/instructions.js +6 -6
- package/dist/commands/workflow/new-change.js +3 -3
- package/dist/commands/workflow/shared.d.ts +1 -1
- package/dist/commands/workflow/shared.js +4 -4
- package/dist/core/archive.js +15 -5
- package/dist/core/artifact-graph/instruction-loader.d.ts +1 -1
- package/dist/core/artifact-graph/instruction-loader.js +3 -3
- package/dist/core/artifact-graph/resolver.d.ts +4 -4
- package/dist/core/artifact-graph/resolver.js +6 -6
- package/dist/core/branding.js +3 -3
- package/dist/core/cli/command-matrix.js +10 -1
- package/dist/core/cli-command-quality.d.ts +27 -0
- package/dist/core/cli-command-quality.js +171 -0
- package/dist/core/command-generation/adapters/costrict.d.ts +1 -1
- package/dist/core/command-generation/adapters/costrict.js +2 -2
- package/dist/core/command-generation/types.d.ts +1 -1
- package/dist/core/completions/command-registry.d.ts +1 -1
- package/dist/core/completions/command-registry.js +155 -12
- package/dist/core/completions/completion-provider.d.ts +14 -1
- package/dist/core/completions/completion-provider.js +29 -1
- package/dist/core/completions/generators/bash-generator.d.ts +1 -1
- package/dist/core/completions/generators/bash-generator.js +20 -12
- package/dist/core/completions/generators/fish-generator.d.ts +9 -1
- package/dist/core/completions/generators/fish-generator.js +39 -25
- package/dist/core/completions/generators/powershell-generator.d.ts +1 -1
- package/dist/core/completions/generators/powershell-generator.js +21 -11
- package/dist/core/completions/generators/zsh-generator.d.ts +3 -6
- package/dist/core/completions/generators/zsh-generator.js +21 -42
- package/dist/core/completions/installers/bash-installer.js +6 -6
- package/dist/core/completions/installers/fish-installer.js +1 -1
- package/dist/core/completions/installers/powershell-installer.js +14 -14
- package/dist/core/completions/installers/zsh-installer.d.ts +7 -1
- package/dist/core/completions/installers/zsh-installer.js +36 -8
- package/dist/core/completions/templates/bash-templates.d.ts +1 -1
- package/dist/core/completions/templates/bash-templates.js +12 -6
- package/dist/core/completions/templates/fish-templates.d.ts +2 -2
- package/dist/core/completions/templates/fish-templates.js +20 -9
- package/dist/core/completions/templates/powershell-templates.d.ts +1 -1
- package/dist/core/completions/templates/powershell-templates.js +13 -4
- package/dist/core/completions/templates/zsh-templates.d.ts +1 -1
- package/dist/core/completions/templates/zsh-templates.js +18 -9
- package/dist/core/config-schema.d.ts +3 -1
- package/dist/core/config-schema.js +26 -1
- package/dist/core/config.d.ts +3 -3
- package/dist/core/config.js +4 -4
- package/dist/core/global-config.d.ts +41 -12
- package/dist/core/global-config.js +344 -27
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.js +2 -2
- package/dist/core/init.d.ts +6 -1
- package/dist/core/init.js +99 -77
- package/dist/core/legacy-cleanup.d.ts +17 -17
- package/dist/core/legacy-cleanup.js +96 -79
- package/dist/core/list.js +18 -4
- package/dist/core/migration.d.ts +3 -1
- package/dist/core/migration.js +7 -8
- package/dist/core/parsers/change-parser.js +1 -1
- package/dist/core/parsers/markdown-parser.js +2 -2
- package/dist/core/profile-sync-drift.d.ts +1 -1
- package/dist/core/profile-sync-drift.js +13 -13
- package/dist/core/project-config.d.ts +4 -4
- package/dist/core/project-config.js +11 -11
- package/dist/core/schemas/change.schema.d.ts +1 -1
- package/dist/core/schemas/change.schema.js +1 -1
- package/dist/core/schemas/spec.schema.d.ts +1 -1
- package/dist/core/schemas/spec.schema.js +1 -1
- package/dist/core/sdd/adr.js +23 -1
- package/dist/core/sdd/agent-binding.d.ts +346 -0
- package/dist/core/sdd/agent-binding.js +343 -0
- package/dist/core/sdd/backlog-cli.d.ts +16 -0
- package/dist/core/sdd/backlog-cli.js +146 -0
- package/dist/core/sdd/backlog-conflict-policy.d.ts +58 -0
- package/dist/core/sdd/backlog-conflict-policy.js +230 -0
- package/dist/core/sdd/backlog-projection.d.ts +8 -0
- package/dist/core/sdd/backlog-projection.js +89 -0
- package/dist/core/sdd/backlog-provider-contract.d.ts +252 -0
- package/dist/core/sdd/backlog-provider-contract.js +158 -0
- package/dist/core/sdd/bootstrap.js +2 -2
- package/dist/core/sdd/check.d.ts +42 -0
- package/dist/core/sdd/check.js +22 -22
- package/dist/core/sdd/contract.d.ts +13 -0
- package/dist/core/sdd/contract.js +36 -0
- package/dist/core/sdd/coordination/coordination-adapters.d.ts +38 -0
- package/dist/core/sdd/coordination/coordination-adapters.js +139 -1
- package/dist/core/sdd/deepagent-contracts.d.ts +276 -0
- package/dist/core/sdd/deepagent-contracts.js +173 -0
- package/dist/core/sdd/deepagents/adr-governor.d.ts +2 -0
- package/dist/core/sdd/deepagents/adr-governor.js +30 -0
- package/dist/core/sdd/deepagents/backend.d.ts +63 -0
- package/dist/core/sdd/deepagents/backend.js +174 -0
- package/dist/core/sdd/deepagents/codesdd-tools.d.ts +39 -0
- package/dist/core/sdd/deepagents/codesdd-tools.js +83 -0
- package/dist/core/sdd/deepagents/evidence-mapper.d.ts +86 -0
- package/dist/core/sdd/deepagents/evidence-mapper.js +178 -0
- package/dist/core/sdd/deepagents/model-provider.d.ts +53 -0
- package/dist/core/sdd/deepagents/model-provider.js +379 -0
- package/dist/core/sdd/deepagents/policy-enforcement.d.ts +30 -0
- package/dist/core/sdd/deepagents/policy-enforcement.js +90 -0
- package/dist/core/sdd/deepagents/policy.d.ts +75 -0
- package/dist/core/sdd/deepagents/policy.js +358 -0
- package/dist/core/sdd/deepagents/quality-witness.d.ts +3 -0
- package/dist/core/sdd/deepagents/quality-witness.js +77 -0
- package/dist/core/sdd/deepagents/reversa-subagents.d.ts +75 -0
- package/dist/core/sdd/deepagents/reversa-subagents.js +182 -0
- package/dist/core/sdd/deepagents/runtime-factory.d.ts +90 -0
- package/dist/core/sdd/deepagents/runtime-factory.js +231 -0
- package/dist/core/sdd/deepagents/runtime-loader.d.ts +16 -0
- package/dist/core/sdd/deepagents/runtime-loader.js +65 -0
- package/dist/core/sdd/default-bootstrap-files.d.ts +2 -2
- package/dist/core/sdd/default-bootstrap-files.js +36 -2
- package/dist/core/sdd/default-skills.d.ts +30 -0
- package/dist/core/sdd/default-skills.js +181 -5
- package/dist/core/sdd/devtrack-api-appliance.d.ts +84 -0
- package/dist/core/sdd/devtrack-api-appliance.js +257 -0
- package/dist/core/sdd/devtrack-api-architecture.d.ts +31 -0
- package/dist/core/sdd/devtrack-api-architecture.js +608 -0
- package/dist/core/sdd/devtrack-api-import-boundary.d.ts +19 -0
- package/dist/core/sdd/devtrack-api-import-boundary.js +32 -0
- package/dist/core/sdd/diagnose.d.ts +59 -0
- package/dist/core/sdd/diagnose.js +37 -37
- package/dist/core/sdd/docs-sync.js +33 -5
- package/dist/core/sdd/domain/post-active-validation.d.ts +7 -0
- package/dist/core/sdd/domain/post-active-validation.js +61 -0
- package/dist/core/sdd/domain/transition-engine.js +1 -0
- package/dist/core/sdd/entity-reference.d.ts +5 -0
- package/dist/core/sdd/entity-reference.js +22 -0
- package/dist/core/sdd/governance-backfill.d.ts +31 -0
- package/dist/core/sdd/governance-backfill.js +359 -0
- package/dist/core/sdd/governance-parser.d.ts +21 -0
- package/dist/core/sdd/governance-parser.js +91 -0
- package/dist/core/sdd/governance-schemas.d.ts +245 -0
- package/dist/core/sdd/governance-schemas.js +143 -0
- package/dist/core/sdd/{import-openspec.d.ts → import-legacy-spec.d.ts} +7 -7
- package/dist/core/sdd/{import-openspec.js → import-legacy-spec.js} +21 -29
- package/dist/core/sdd/init.d.ts +3 -0
- package/dist/core/sdd/init.js +6 -3
- package/dist/core/sdd/json-schema.js +100 -6
- package/dist/core/sdd/knowledge-graph.d.ts +45 -0
- package/dist/core/sdd/knowledge-graph.js +288 -0
- package/dist/core/sdd/legacy-operations.js +431 -43
- package/dist/core/sdd/lenses.d.ts +1 -0
- package/dist/core/sdd/lenses.js +29 -1
- package/dist/core/sdd/migrate-workspace.js +56 -2
- package/dist/core/sdd/migrate.d.ts +1 -1
- package/dist/core/sdd/migrate.js +36 -2
- package/dist/core/sdd/package-structure-gate.d.ts +83 -0
- package/dist/core/sdd/package-structure-gate.js +362 -0
- package/dist/core/sdd/parallel-feat-automation.d.ts +152 -0
- package/dist/core/sdd/parallel-feat-automation.js +212 -0
- package/dist/core/sdd/plugin-broker.d.ts +558 -0
- package/dist/core/sdd/plugin-broker.js +482 -0
- package/dist/core/sdd/plugin-certification.d.ts +79 -0
- package/dist/core/sdd/plugin-certification.js +453 -0
- package/dist/core/sdd/plugin-cli.d.ts +109 -0
- package/dist/core/sdd/plugin-cli.js +198 -0
- package/dist/core/sdd/plugin-evidence.d.ts +275 -0
- package/dist/core/sdd/plugin-evidence.js +307 -0
- package/dist/core/sdd/plugin-manifest.d.ts +164 -0
- package/dist/core/sdd/plugin-manifest.js +215 -0
- package/dist/core/sdd/plugin-policy-pack.d.ts +88 -0
- package/dist/core/sdd/plugin-policy-pack.js +236 -0
- package/dist/core/sdd/plugin-policy.d.ts +68 -0
- package/dist/core/sdd/plugin-policy.js +212 -0
- package/dist/core/sdd/plugin-registry.d.ts +311 -0
- package/dist/core/sdd/plugin-registry.js +138 -0
- package/dist/core/sdd/plugin-skill-binding.d.ts +151 -0
- package/dist/core/sdd/plugin-skill-binding.js +339 -0
- package/dist/core/sdd/quality-artifact-manifest-validator.d.ts +28 -0
- package/dist/core/sdd/quality-artifact-manifest-validator.js +167 -0
- package/dist/core/sdd/quality-evidence-renderer.d.ts +65 -0
- package/dist/core/sdd/quality-evidence-renderer.js +218 -0
- package/dist/core/sdd/quality-scenario-runner.d.ts +42 -0
- package/dist/core/sdd/quality-scenario-runner.js +613 -0
- package/dist/core/sdd/quality-validation.d.ts +547 -0
- package/dist/core/sdd/quality-validation.js +239 -0
- package/dist/core/sdd/resolve-project-root.d.ts +2 -2
- package/dist/core/sdd/resolve-project-root.js +11 -5
- package/dist/core/sdd/sanitize.d.ts +30 -1
- package/dist/core/sdd/sanitize.js +23 -23
- package/dist/core/sdd/services/agent-run.service.d.ts +65 -0
- package/dist/core/sdd/services/agent-run.service.js +189 -0
- package/dist/core/sdd/services/breakdown.service.js +2 -1
- package/dist/core/sdd/services/context.service.js +18 -16
- package/dist/core/sdd/services/debate.service.js +15 -2
- package/dist/core/sdd/services/feature-lint.service.d.ts +22 -0
- package/dist/core/sdd/services/feature-lint.service.js +105 -5
- package/dist/core/sdd/services/finalize.service.d.ts +80 -0
- package/dist/core/sdd/services/finalize.service.js +323 -24
- package/dist/core/sdd/services/frontend-gap.service.js +22 -7
- package/dist/core/sdd/services/governance-control-plane-runtime-adapters.d.ts +17 -0
- package/dist/core/sdd/services/governance-control-plane-runtime-adapters.js +38 -0
- package/dist/core/sdd/services/governance-control-plane.service.d.ts +66 -0
- package/dist/core/sdd/services/governance-control-plane.service.js +134 -0
- package/dist/core/sdd/services/ingest-deposito.service.js +1 -1
- package/dist/core/sdd/services/legacy-capability.service.d.ts +10 -7
- package/dist/core/sdd/services/legacy-capability.service.js +38 -21
- package/dist/core/sdd/services/mcp-runtime.service.d.ts +123 -8
- package/dist/core/sdd/services/mcp-runtime.service.js +1085 -33
- package/dist/core/sdd/services/onboard.service.js +2 -1
- package/dist/core/sdd/services/rebuild.service.js +6 -1
- package/dist/core/sdd/services/skills-sync.service.d.ts +17 -5
- package/dist/core/sdd/services/skills-sync.service.js +55 -2
- package/dist/core/sdd/services/start.service.js +6 -4
- package/dist/core/sdd/skill-bundles-curation-schema.d.ts +66 -0
- package/dist/core/sdd/skill-bundles-curation-schema.js +52 -0
- package/dist/core/sdd/skill-evidence.d.ts +19 -0
- package/dist/core/sdd/skill-evidence.js +38 -0
- package/dist/core/sdd/skill-policy-pool.d.ts +46 -0
- package/dist/core/sdd/skill-policy-pool.js +185 -0
- package/dist/core/sdd/state.d.ts +22 -0
- package/dist/core/sdd/state.js +66 -41
- package/dist/core/sdd/structural-health.d.ts +42 -42
- package/dist/core/sdd/types.d.ts +33 -7
- package/dist/core/sdd/types.js +17 -0
- package/dist/core/sdd/upgrade-to-codesdd.d.ts +45 -0
- package/dist/core/sdd/upgrade-to-codesdd.js +179 -0
- package/dist/core/sdd/workspace-schemas.d.ts +285 -14
- package/dist/core/sdd/workspace-schemas.js +148 -0
- package/dist/core/sdd/write-manifest.js +22 -4
- package/dist/core/shared/skill-generation.d.ts +1 -1
- package/dist/core/shared/skill-generation.js +15 -15
- package/dist/core/shared/tool-detection.d.ts +3 -3
- package/dist/core/shared/tool-detection.js +14 -14
- package/dist/core/specs-apply.js +6 -6
- package/dist/core/templates/index.d.ts +1 -1
- package/dist/core/templates/index.js +1 -1
- package/dist/core/templates/workflows/apply-change.js +14 -14
- package/dist/core/templates/workflows/archive-change.js +32 -32
- package/dist/core/templates/workflows/bulk-archive-change.js +25 -25
- package/dist/core/templates/workflows/continue-change.js +12 -12
- package/dist/core/templates/workflows/explore.js +29 -29
- package/dist/core/templates/workflows/feedback.js +6 -6
- package/dist/core/templates/workflows/ff-change.js +24 -24
- package/dist/core/templates/workflows/new-change.js +20 -20
- package/dist/core/templates/workflows/onboard.js +33 -33
- package/dist/core/templates/workflows/propose.js +23 -23
- package/dist/core/templates/workflows/sdd.js +8 -8
- package/dist/core/templates/workflows/sync-specs.js +19 -19
- package/dist/core/templates/workflows/verify-change.js +17 -17
- package/dist/core/update.d.ts +2 -2
- package/dist/core/update.js +16 -15
- package/dist/core/validation/constants.d.ts +1 -1
- package/dist/core/validation/constants.js +1 -1
- package/dist/core/view.js +11 -11
- package/dist/telemetry/config.d.ts +2 -1
- package/dist/telemetry/config.js +17 -8
- package/dist/telemetry/index.d.ts +10 -2
- package/dist/telemetry/index.js +40 -7
- package/dist/ui/ascii-patterns.d.ts +2 -2
- package/dist/ui/ascii-patterns.js +2 -2
- package/dist/ui/welcome-screen.js +2 -2
- package/dist/utils/change-metadata.d.ts +4 -4
- package/dist/utils/change-metadata.js +6 -6
- package/dist/utils/change-utils.d.ts +3 -3
- package/dist/utils/change-utils.js +5 -5
- package/dist/utils/file-system.js +1 -1
- package/dist/utils/interactive.js +1 -1
- package/dist/utils/item-discovery.js +4 -4
- package/dist/utils/legacy-spec-compat.d.ts +2 -0
- package/dist/utils/legacy-spec-compat.js +2 -0
- package/dist/utils/shell-detection.d.ts +1 -0
- package/dist/utils/shell-detection.js +16 -0
- package/package.json +27 -17
- package/schemas/sdd/1-spec.schema.json +1 -1
- package/schemas/sdd/2-plan.schema.json +73 -1
- package/schemas/sdd/3-tasks.schema.json +73 -1
- package/schemas/sdd/4-changelog.schema.json +1 -1
- package/schemas/sdd/5-quality.schema.json +442 -2
- package/schemas/sdd/adr.schema.json +148 -0
- package/schemas/sdd/agent-binding-adapter.schema.json +210 -0
- package/schemas/sdd/agent-binding-resolution.schema.json +338 -0
- package/schemas/sdd/backlog-projection-plan.schema.json +180 -0
- package/schemas/sdd/backlog-provider-contract.schema.json +260 -0
- package/schemas/sdd/codesdd-plugin.schema.json +474 -0
- package/schemas/sdd/debate.schema.json +244 -0
- package/schemas/sdd/deepagent-decision-evidence.schema.json +58 -0
- package/schemas/sdd/deepagent-env-contract.schema.json +143 -0
- package/schemas/sdd/deepagent-quality-evidence.schema.json +108 -0
- package/schemas/sdd/deepagent-run-evidence.schema.json +192 -0
- package/schemas/sdd/deepagent-run-plan.schema.json +197 -0
- package/schemas/sdd/deepagent-run-request.schema.json +321 -0
- package/schemas/sdd/deepagent-subagent-evidence.schema.json +110 -0
- package/schemas/sdd/deepagent-tool-call-evidence.schema.json +78 -0
- package/schemas/sdd/discarded.schema.json +127 -0
- package/schemas/sdd/epic.schema.json +147 -0
- package/schemas/sdd/insight.schema.json +136 -0
- package/schemas/sdd/parallel-feat-automation-plan.schema.json +215 -0
- package/schemas/sdd/parallel-feat-automation-request.schema.json +109 -0
- package/schemas/sdd/plugin-artifact-manifest.schema.json +150 -0
- package/schemas/sdd/plugin-compliance-index.schema.json +136 -0
- package/schemas/sdd/plugin-dry-run-plan.schema.json +260 -0
- package/schemas/sdd/plugin-evidence-manifest.schema.json +569 -0
- package/schemas/sdd/plugin-policy-evaluation.schema.json +92 -0
- package/schemas/sdd/plugin-policy-pack-evaluation.schema.json +94 -0
- package/schemas/sdd/plugin-policy-pack.schema.json +196 -0
- package/schemas/sdd/plugin-registry.schema.json +558 -0
- package/schemas/sdd/plugin-rollback-manifest.schema.json +87 -0
- package/schemas/sdd/plugin-runtime-invocation-plan.schema.json +845 -0
- package/schemas/sdd/plugin-skill-binding-resolution.schema.json +305 -0
- package/schemas/sdd/plugin-skill-binding.schema.json +88 -0
- package/schemas/sdd/plugin-validation-manifest.schema.json +123 -0
- package/schemas/sdd/quality-architecture-schema.schema.json +216 -0
- package/schemas/sdd/quality-evidence-bundle.schema.json +1228 -0
- package/schemas/sdd/quality-run.schema.json +197 -0
- package/schemas/sdd/quality-scenario.schema.json +252 -0
- package/schemas/sdd/workspace-catalog.schema.json +9841 -22
- package/schemas/spec-driven/schema.yaml +4 -4
- package/schemas/spec-driven/templates/proposal.md +1 -1
- package/dist/utils/openspec-compat.d.ts +0 -2
- package/dist/utils/openspec-compat.js +0 -2
package/dist/core/sdd/types.d.ts
CHANGED
|
@@ -527,6 +527,19 @@ export declare const SkillCatalogEntrySchema: z.ZodObject<{
|
|
|
527
527
|
tools: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
528
528
|
bundle_ids: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
529
529
|
priority: z.ZodDefault<z.ZodNumber>;
|
|
530
|
+
token_budget: z.ZodDefault<z.ZodObject<{
|
|
531
|
+
input_max: z.ZodNumber;
|
|
532
|
+
output_max: z.ZodNumber;
|
|
533
|
+
thinking_max: z.ZodNumber;
|
|
534
|
+
}, z.core.$strip>>;
|
|
535
|
+
integrity_hash: z.ZodDefault<z.ZodString>;
|
|
536
|
+
deterministic_pair: z.ZodOptional<z.ZodObject<{
|
|
537
|
+
plugin_id: z.ZodString;
|
|
538
|
+
capability: z.ZodOptional<z.ZodString>;
|
|
539
|
+
operation: z.ZodOptional<z.ZodString>;
|
|
540
|
+
}, z.core.$strip>>;
|
|
541
|
+
deprecated_at: z.ZodOptional<z.ZodString>;
|
|
542
|
+
superseded_by: z.ZodOptional<z.ZodString>;
|
|
530
543
|
}, z.core.$strip>;
|
|
531
544
|
export declare const SkillBundleSchema: z.ZodObject<{
|
|
532
545
|
id: z.ZodString;
|
|
@@ -646,8 +659,8 @@ export declare const ControlCatalogItemSchema: z.ZodObject<{
|
|
|
646
659
|
}>>;
|
|
647
660
|
automatable: z.ZodDefault<z.ZodEnum<{
|
|
648
661
|
yes: "yes";
|
|
649
|
-
partial: "partial";
|
|
650
662
|
no: "no";
|
|
663
|
+
partial: "partial";
|
|
651
664
|
}>>;
|
|
652
665
|
verification_types: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
653
666
|
jurisdiction_profile_ids: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
@@ -1137,6 +1150,19 @@ export declare const SkillCatalogStateSchema: z.ZodObject<{
|
|
|
1137
1150
|
tools: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
1138
1151
|
bundle_ids: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
1139
1152
|
priority: z.ZodDefault<z.ZodNumber>;
|
|
1153
|
+
token_budget: z.ZodDefault<z.ZodObject<{
|
|
1154
|
+
input_max: z.ZodNumber;
|
|
1155
|
+
output_max: z.ZodNumber;
|
|
1156
|
+
thinking_max: z.ZodNumber;
|
|
1157
|
+
}, z.core.$strip>>;
|
|
1158
|
+
integrity_hash: z.ZodDefault<z.ZodString>;
|
|
1159
|
+
deterministic_pair: z.ZodOptional<z.ZodObject<{
|
|
1160
|
+
plugin_id: z.ZodString;
|
|
1161
|
+
capability: z.ZodOptional<z.ZodString>;
|
|
1162
|
+
operation: z.ZodOptional<z.ZodString>;
|
|
1163
|
+
}, z.core.$strip>>;
|
|
1164
|
+
deprecated_at: z.ZodOptional<z.ZodString>;
|
|
1165
|
+
superseded_by: z.ZodOptional<z.ZodString>;
|
|
1140
1166
|
}, z.core.$strip>>>;
|
|
1141
1167
|
bundles: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
1142
1168
|
id: z.ZodString;
|
|
@@ -1245,8 +1271,8 @@ export declare const SourceIndexStateSchema: z.ZodObject<{
|
|
|
1245
1271
|
}>>;
|
|
1246
1272
|
automatable: z.ZodDefault<z.ZodEnum<{
|
|
1247
1273
|
yes: "yes";
|
|
1248
|
-
partial: "partial";
|
|
1249
1274
|
no: "no";
|
|
1275
|
+
partial: "partial";
|
|
1250
1276
|
}>>;
|
|
1251
1277
|
verification_types: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
1252
1278
|
jurisdiction_profile_ids: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
@@ -1375,10 +1401,10 @@ export declare const RepoMapStateSchema: z.ZodObject<{
|
|
|
1375
1401
|
}, z.core.$strip>>>;
|
|
1376
1402
|
}, z.core.$strip>;
|
|
1377
1403
|
export declare const NamingContractTermScopeSchema: z.ZodEnum<{
|
|
1404
|
+
state: "state";
|
|
1378
1405
|
all: "all";
|
|
1379
1406
|
code: "code";
|
|
1380
1407
|
docs: "docs";
|
|
1381
|
-
state: "state";
|
|
1382
1408
|
}>;
|
|
1383
1409
|
export declare const NamingContractTermSeveritySchema: z.ZodEnum<{
|
|
1384
1410
|
error: "error";
|
|
@@ -1387,10 +1413,10 @@ export declare const NamingContractTermSeveritySchema: z.ZodEnum<{
|
|
|
1387
1413
|
export declare const NamingContractForbiddenTermSchema: z.ZodObject<{
|
|
1388
1414
|
term: z.ZodString;
|
|
1389
1415
|
scope: z.ZodDefault<z.ZodEnum<{
|
|
1416
|
+
state: "state";
|
|
1390
1417
|
all: "all";
|
|
1391
1418
|
code: "code";
|
|
1392
1419
|
docs: "docs";
|
|
1393
|
-
state: "state";
|
|
1394
1420
|
}>>;
|
|
1395
1421
|
severity: z.ZodDefault<z.ZodEnum<{
|
|
1396
1422
|
error: "error";
|
|
@@ -1418,10 +1444,10 @@ export declare const NamingContractRenameRuleSchema: z.ZodObject<{
|
|
|
1418
1444
|
from: z.ZodString;
|
|
1419
1445
|
to: z.ZodString;
|
|
1420
1446
|
scope: z.ZodDefault<z.ZodEnum<{
|
|
1447
|
+
state: "state";
|
|
1421
1448
|
all: "all";
|
|
1422
1449
|
code: "code";
|
|
1423
1450
|
docs: "docs";
|
|
1424
|
-
state: "state";
|
|
1425
1451
|
}>>;
|
|
1426
1452
|
phase: z.ZodString;
|
|
1427
1453
|
owner: z.ZodString;
|
|
@@ -1460,10 +1486,10 @@ export declare const NamingContractStateSchema: z.ZodObject<{
|
|
|
1460
1486
|
forbidden_terms: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
1461
1487
|
term: z.ZodString;
|
|
1462
1488
|
scope: z.ZodDefault<z.ZodEnum<{
|
|
1489
|
+
state: "state";
|
|
1463
1490
|
all: "all";
|
|
1464
1491
|
code: "code";
|
|
1465
1492
|
docs: "docs";
|
|
1466
|
-
state: "state";
|
|
1467
1493
|
}>>;
|
|
1468
1494
|
severity: z.ZodDefault<z.ZodEnum<{
|
|
1469
1495
|
error: "error";
|
|
@@ -1481,10 +1507,10 @@ export declare const NamingContractStateSchema: z.ZodObject<{
|
|
|
1481
1507
|
from: z.ZodString;
|
|
1482
1508
|
to: z.ZodString;
|
|
1483
1509
|
scope: z.ZodDefault<z.ZodEnum<{
|
|
1510
|
+
state: "state";
|
|
1484
1511
|
all: "all";
|
|
1485
1512
|
code: "code";
|
|
1486
1513
|
docs: "docs";
|
|
1487
|
-
state: "state";
|
|
1488
1514
|
}>>;
|
|
1489
1515
|
phase: z.ZodString;
|
|
1490
1516
|
owner: z.ZodString;
|
package/dist/core/sdd/types.js
CHANGED
|
@@ -300,6 +300,23 @@ export const SkillCatalogEntrySchema = z.object({
|
|
|
300
300
|
tools: StringArraySchema,
|
|
301
301
|
bundle_ids: StringArraySchema,
|
|
302
302
|
priority: z.number().int().nonnegative().default(0),
|
|
303
|
+
token_budget: z
|
|
304
|
+
.object({
|
|
305
|
+
input_max: z.number().int().positive(),
|
|
306
|
+
output_max: z.number().int().positive(),
|
|
307
|
+
thinking_max: z.number().int().nonnegative(),
|
|
308
|
+
})
|
|
309
|
+
.default({ input_max: 12000, output_max: 4000, thinking_max: 2000 }),
|
|
310
|
+
integrity_hash: z.string().regex(/^[a-f0-9]{64}$/).default('0000000000000000000000000000000000000000000000000000000000000000'),
|
|
311
|
+
deterministic_pair: z
|
|
312
|
+
.object({
|
|
313
|
+
plugin_id: z.string().min(1),
|
|
314
|
+
capability: z.string().min(1).optional(),
|
|
315
|
+
operation: z.string().min(1).optional(),
|
|
316
|
+
})
|
|
317
|
+
.optional(),
|
|
318
|
+
deprecated_at: z.string().datetime().optional(),
|
|
319
|
+
superseded_by: z.string().min(1).optional(),
|
|
303
320
|
});
|
|
304
321
|
export const SkillBundleSchema = z.object({
|
|
305
322
|
id: z.string().min(1),
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { type SddMigrationAssessment } from './migrate.js';
|
|
2
|
+
import { buildSddContractConfig } from './contract.js';
|
|
3
|
+
export interface UpgradeToCodeSddReadinessReport {
|
|
4
|
+
status: 'ready' | 'needs-upgrade' | 'blocked';
|
|
5
|
+
assessment: SddMigrationAssessment;
|
|
6
|
+
blockers: string[];
|
|
7
|
+
warnings: string[];
|
|
8
|
+
planned_steps: string[];
|
|
9
|
+
}
|
|
10
|
+
export interface UpgradeToCodeSddManifest {
|
|
11
|
+
manifest_version: 1;
|
|
12
|
+
transaction_id: string;
|
|
13
|
+
mode: 'apply';
|
|
14
|
+
created_at: string;
|
|
15
|
+
readiness: UpgradeToCodeSddReadinessReport;
|
|
16
|
+
backup_root: string;
|
|
17
|
+
backed_up_paths: string[];
|
|
18
|
+
migration_messages: string[];
|
|
19
|
+
sdd_contract: ReturnType<typeof buildSddContractConfig>;
|
|
20
|
+
}
|
|
21
|
+
export interface UpgradeToCodeSddResult {
|
|
22
|
+
mode: 'dry-run' | 'apply';
|
|
23
|
+
readiness: UpgradeToCodeSddReadinessReport;
|
|
24
|
+
manifest?: UpgradeToCodeSddManifest;
|
|
25
|
+
manifest_path?: string;
|
|
26
|
+
}
|
|
27
|
+
export interface UpgradeToCodeSddRollbackResult {
|
|
28
|
+
transaction_id: string;
|
|
29
|
+
restored_paths: string[];
|
|
30
|
+
skipped_paths: string[];
|
|
31
|
+
manifest_path: string;
|
|
32
|
+
reason: string;
|
|
33
|
+
}
|
|
34
|
+
export declare class UpgradeToCodeSddCommand {
|
|
35
|
+
execute(projectRoot: string, options?: {
|
|
36
|
+
dryRun?: boolean;
|
|
37
|
+
apply?: boolean;
|
|
38
|
+
yes?: boolean;
|
|
39
|
+
}): Promise<UpgradeToCodeSddResult>;
|
|
40
|
+
rollback(projectRoot: string, transactionId: string, options?: {
|
|
41
|
+
reason?: string;
|
|
42
|
+
}): Promise<UpgradeToCodeSddRollbackResult>;
|
|
43
|
+
}
|
|
44
|
+
export declare function formatUpgradeToCodeSddReadiness(report: UpgradeToCodeSddReadinessReport): string;
|
|
45
|
+
//# sourceMappingURL=upgrade-to-codesdd.d.ts.map
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
import { constants as fsConstants } from 'node:fs';
|
|
3
|
+
import { access, cp, mkdir, readFile, rm, writeFile } from 'node:fs/promises';
|
|
4
|
+
import path from 'node:path';
|
|
5
|
+
import { assessSddMigration, SddMigrateCommand } from './migrate.js';
|
|
6
|
+
import { buildSddContractConfig } from './contract.js';
|
|
7
|
+
function timestampToken(value = new Date()) {
|
|
8
|
+
return value.toISOString().replace(/[-:]/g, '').replace(/\.\d{3}Z$/, 'Z');
|
|
9
|
+
}
|
|
10
|
+
function createTransactionId(projectRoot, value = new Date()) {
|
|
11
|
+
const suffix = createHash('sha1').update(`${projectRoot}:${value.toISOString()}`).digest('hex').slice(0, 8).toUpperCase();
|
|
12
|
+
return `UPG-${timestampToken(value)}-${suffix}`;
|
|
13
|
+
}
|
|
14
|
+
async function pathExists(targetPath) {
|
|
15
|
+
try {
|
|
16
|
+
await access(targetPath, fsConstants.F_OK);
|
|
17
|
+
return true;
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
20
|
+
return false;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
function upgradeRoot(projectRoot) {
|
|
24
|
+
return path.join(projectRoot, '.sdd', 'reports', 'upgrade-to-codesdd');
|
|
25
|
+
}
|
|
26
|
+
function manifestPath(projectRoot, transactionId) {
|
|
27
|
+
return path.join(upgradeRoot(projectRoot), `${transactionId}-manifest.json`);
|
|
28
|
+
}
|
|
29
|
+
function backupRoot(projectRoot, transactionId) {
|
|
30
|
+
return path.join(upgradeRoot(projectRoot), transactionId, 'backups');
|
|
31
|
+
}
|
|
32
|
+
function backupCandidates(projectRoot) {
|
|
33
|
+
return [
|
|
34
|
+
'.sdd/config.yaml',
|
|
35
|
+
'.sdd/state',
|
|
36
|
+
'.sdd/active',
|
|
37
|
+
'.sdd/planned',
|
|
38
|
+
'.sdd/archived',
|
|
39
|
+
].map((entry) => path.join(projectRoot, entry));
|
|
40
|
+
}
|
|
41
|
+
function toProjectRelative(projectRoot, targetPath) {
|
|
42
|
+
return path.relative(projectRoot, targetPath).replace(/\\/g, '/');
|
|
43
|
+
}
|
|
44
|
+
function backupDestination(projectRoot, root, targetPath) {
|
|
45
|
+
return path.join(root, toProjectRelative(projectRoot, targetPath));
|
|
46
|
+
}
|
|
47
|
+
async function writeJson(filePath, value) {
|
|
48
|
+
await mkdir(path.dirname(filePath), { recursive: true });
|
|
49
|
+
await writeFile(filePath, `${JSON.stringify(value, null, 2)}\n`, 'utf-8');
|
|
50
|
+
}
|
|
51
|
+
async function readJson(filePath) {
|
|
52
|
+
return JSON.parse(await readFile(filePath, 'utf-8'));
|
|
53
|
+
}
|
|
54
|
+
async function createBackups(projectRoot, transactionId) {
|
|
55
|
+
const root = backupRoot(projectRoot, transactionId);
|
|
56
|
+
const backedUp = [];
|
|
57
|
+
for (const candidate of backupCandidates(projectRoot)) {
|
|
58
|
+
if (!(await pathExists(candidate)))
|
|
59
|
+
continue;
|
|
60
|
+
const destination = backupDestination(projectRoot, root, candidate);
|
|
61
|
+
await mkdir(path.dirname(destination), { recursive: true });
|
|
62
|
+
await cp(candidate, destination, { recursive: true });
|
|
63
|
+
backedUp.push(toProjectRelative(projectRoot, candidate));
|
|
64
|
+
}
|
|
65
|
+
return backedUp;
|
|
66
|
+
}
|
|
67
|
+
function buildReadiness(assessment) {
|
|
68
|
+
const blockers = [];
|
|
69
|
+
if (assessment.currentVersion > assessment.targetVersion) {
|
|
70
|
+
blockers.push(`state_version=${assessment.currentVersion} is newer than supported target ${assessment.targetVersion}`);
|
|
71
|
+
}
|
|
72
|
+
const warnings = [...assessment.reasons];
|
|
73
|
+
const plannedSteps = [
|
|
74
|
+
'create transaction backup under .sdd/reports/upgrade-to-codesdd',
|
|
75
|
+
'run canonical SDD migration to CodeSDD state contract',
|
|
76
|
+
'write upgrade manifest with readiness and migration messages',
|
|
77
|
+
'allow rollback by transaction id while backup artifacts are present',
|
|
78
|
+
];
|
|
79
|
+
return {
|
|
80
|
+
status: blockers.length > 0 ? 'blocked' : assessment.needsMigration ? 'needs-upgrade' : 'ready',
|
|
81
|
+
assessment,
|
|
82
|
+
blockers,
|
|
83
|
+
warnings,
|
|
84
|
+
planned_steps: plannedSteps,
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
export class UpgradeToCodeSddCommand {
|
|
88
|
+
async execute(projectRoot, options) {
|
|
89
|
+
const root = path.resolve(projectRoot);
|
|
90
|
+
const assessment = await assessSddMigration(root);
|
|
91
|
+
const readiness = buildReadiness(assessment);
|
|
92
|
+
if (!options?.apply || options.dryRun) {
|
|
93
|
+
return { mode: 'dry-run', readiness };
|
|
94
|
+
}
|
|
95
|
+
if (!options.yes) {
|
|
96
|
+
throw new Error('upgrade-to-codesdd apply requires --yes for transactional mutation.');
|
|
97
|
+
}
|
|
98
|
+
if (readiness.blockers.length > 0) {
|
|
99
|
+
throw new Error(`upgrade-to-codesdd blocked: ${readiness.blockers.join(' | ')}`);
|
|
100
|
+
}
|
|
101
|
+
const transactionId = createTransactionId(root);
|
|
102
|
+
const backedUpPaths = await createBackups(root, transactionId);
|
|
103
|
+
const migration = await new SddMigrateCommand().execute(root, { radToEpic: true });
|
|
104
|
+
const manifest = {
|
|
105
|
+
manifest_version: 1,
|
|
106
|
+
transaction_id: transactionId,
|
|
107
|
+
mode: 'apply',
|
|
108
|
+
created_at: new Date().toISOString(),
|
|
109
|
+
readiness,
|
|
110
|
+
backup_root: toProjectRelative(root, backupRoot(root, transactionId)),
|
|
111
|
+
backed_up_paths: backedUpPaths,
|
|
112
|
+
migration_messages: migration.messages,
|
|
113
|
+
sdd_contract: buildSddContractConfig(),
|
|
114
|
+
};
|
|
115
|
+
const manifestFile = manifestPath(root, transactionId);
|
|
116
|
+
await writeJson(manifestFile, manifest);
|
|
117
|
+
return {
|
|
118
|
+
mode: 'apply',
|
|
119
|
+
readiness,
|
|
120
|
+
manifest,
|
|
121
|
+
manifest_path: toProjectRelative(root, manifestFile),
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
async rollback(projectRoot, transactionId, options) {
|
|
125
|
+
const root = path.resolve(projectRoot);
|
|
126
|
+
if (!/^UPG-\d{8}T\d{6}Z-[A-F0-9]{8}$/.test(transactionId)) {
|
|
127
|
+
throw new Error('Invalid upgrade transaction id. Expected UPG-YYYYMMDDTHHMMSSZ-XXXXXXXX.');
|
|
128
|
+
}
|
|
129
|
+
const manifestFile = manifestPath(root, transactionId);
|
|
130
|
+
const manifest = await readJson(manifestFile);
|
|
131
|
+
const restoredPaths = [];
|
|
132
|
+
const skippedPaths = [];
|
|
133
|
+
for (const relativePath of manifest.backed_up_paths) {
|
|
134
|
+
const backupPath = path.join(root, manifest.backup_root, relativePath);
|
|
135
|
+
const targetPath = path.join(root, relativePath);
|
|
136
|
+
if (!(await pathExists(backupPath))) {
|
|
137
|
+
skippedPaths.push(relativePath);
|
|
138
|
+
continue;
|
|
139
|
+
}
|
|
140
|
+
await rm(targetPath, { recursive: true, force: true });
|
|
141
|
+
await mkdir(path.dirname(targetPath), { recursive: true });
|
|
142
|
+
await cp(backupPath, targetPath, { recursive: true });
|
|
143
|
+
restoredPaths.push(relativePath);
|
|
144
|
+
}
|
|
145
|
+
await writeJson(path.join(upgradeRoot(root), `${transactionId}-rollback.json`), {
|
|
146
|
+
transaction_id: transactionId,
|
|
147
|
+
rolled_back_at: new Date().toISOString(),
|
|
148
|
+
reason: options?.reason || 'Rollback requested.',
|
|
149
|
+
restored_paths: restoredPaths,
|
|
150
|
+
skipped_paths: skippedPaths,
|
|
151
|
+
});
|
|
152
|
+
return {
|
|
153
|
+
transaction_id: transactionId,
|
|
154
|
+
restored_paths: restoredPaths,
|
|
155
|
+
skipped_paths: skippedPaths,
|
|
156
|
+
manifest_path: toProjectRelative(root, manifestFile),
|
|
157
|
+
reason: options?.reason || 'Rollback requested.',
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
export function formatUpgradeToCodeSddReadiness(report) {
|
|
162
|
+
const lines = [
|
|
163
|
+
`Status: ${report.status}`,
|
|
164
|
+
`State version: ${report.assessment.currentVersion} -> ${report.assessment.targetVersion}`,
|
|
165
|
+
`Needs migration: ${report.assessment.needsMigration ? 'yes' : 'no'}`,
|
|
166
|
+
];
|
|
167
|
+
if (report.blockers.length > 0) {
|
|
168
|
+
lines.push('Blockers:');
|
|
169
|
+
lines.push(...report.blockers.map((item) => `- ${item}`));
|
|
170
|
+
}
|
|
171
|
+
if (report.warnings.length > 0) {
|
|
172
|
+
lines.push('Warnings:');
|
|
173
|
+
lines.push(...report.warnings.map((item) => `- ${item}`));
|
|
174
|
+
}
|
|
175
|
+
lines.push('Planned steps:');
|
|
176
|
+
lines.push(...report.planned_steps.map((item) => `- ${item}`));
|
|
177
|
+
return lines.join('\n');
|
|
178
|
+
}
|
|
179
|
+
//# sourceMappingURL=upgrade-to-codesdd.js.map
|