@devtrack-solution/codesdd 1.2.2 → 1.2.4-rc3
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 +170 -31
- package/.sdd/skills/curated/devtrack-api/agents/claude-code.yaml +8 -0
- package/.sdd/skills/curated/devtrack-api/agents/codex.yaml +8 -0
- package/.sdd/skills/curated/devtrack-api/agents/cursor.yaml +8 -0
- package/.sdd/skills/curated/devtrack-api/agents/gemini.yaml +8 -0
- package/.sdd/skills/curated/devtrack-api/agents/kimi.yaml +8 -0
- package/.sdd/skills/curated/devtrack-api/agents/openai.yaml +4 -2
- package/.sdd/skills/curated/devtrack-api/agents/opencode.yaml +10 -0
- package/.sdd/skills/curated/devtrack-api/references/application-presentation.md +2 -2
- 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 +372 -0
- package/.sdd/skills/curated/devtrack-api/references/domain-modeling.md +13 -13
- package/.sdd/skills/curated/devtrack-api/references/field-validation-protocol.md +95 -0
- package/.sdd/skills/curated/devtrack-api/references/foundation-layout.md +294 -0
- package/.sdd/skills/curated/devtrack-api/references/implementation-checklist.md +5 -5
- package/.sdd/skills/curated/devtrack-api/references/imports-lint.md +4 -0
- package/.sdd/skills/curated/devtrack-api/references/portable-agent-contract.md +41 -0
- package/.sdd/skills/curated/devtrack-api/references/testing-validation.md +2 -2
- package/.sdd/skills/curated/devtrack-api/references/typeorm-infrastructure.md +7 -9
- package/LICENSE +1 -1
- package/README.md +399 -53
- package/bin/codesdd.js +3 -2
- package/dist/applications/sdd/index.d.ts +16 -0
- package/dist/applications/sdd/index.js +16 -0
- 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 +320 -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 +489 -28
- package/dist/commands/sdd/plugin.d.ts +3 -0
- package/dist/commands/sdd/plugin.js +158 -0
- package/dist/commands/sdd/shared.d.ts +1 -0
- package/dist/commands/sdd/shared.js +11 -22
- package/dist/commands/sdd/skills.js +7 -0
- package/dist/commands/sdd.js +107 -15
- 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 +19 -1
- package/dist/core/cli-command-quality.d.ts +27 -0
- package/dist/core/cli-command-quality.js +180 -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 +200 -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 +20 -1
- package/dist/core/config-schema.js +70 -2
- package/dist/core/config.d.ts +3 -3
- package/dist/core/config.js +4 -4
- package/dist/core/global-config.d.ts +57 -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/agent-runtime-contract.d.ts +204 -0
- package/dist/core/sdd/agent-runtime-contract.js +200 -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 +44 -0
- package/dist/core/sdd/check.js +62 -24
- 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 +53 -8
- package/dist/core/sdd/coordination/coordination-adapters.js +182 -16
- package/dist/core/sdd/coordination/index.d.ts +1 -0
- package/dist/core/sdd/coordination/index.js +1 -0
- package/dist/core/sdd/coordination/redis-runtime.d.ts +131 -0
- package/dist/core/sdd/coordination/redis-runtime.js +698 -0
- package/dist/core/sdd/deepagent-contracts.d.ts +370 -0
- package/dist/core/sdd/deepagent-contracts.js +235 -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 +3 -3
- package/dist/core/sdd/default-bootstrap-files.js +50 -10
- package/dist/core/sdd/default-skills.d.ts +30 -0
- package/dist/core/sdd/default-skills.js +288 -8
- package/dist/core/sdd/devtrack-api-appliance.d.ts +91 -0
- package/dist/core/sdd/devtrack-api-appliance.js +280 -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 +54 -20
- package/dist/core/sdd/domain/capability-diff.d.ts +63 -0
- package/dist/core/sdd/domain/capability-diff.js +200 -0
- package/dist/core/sdd/domain/change-safety-guardrails.d.ts +74 -0
- package/dist/core/sdd/domain/change-safety-guardrails.js +333 -0
- 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/semantic-intent-classifier.d.ts +29 -0
- package/dist/core/sdd/domain/semantic-intent-classifier.js +117 -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/foundation-artifact-map-validator.d.ts +16 -0
- package/dist/core/sdd/foundation-artifact-map-validator.js +71 -0
- package/dist/core/sdd/foundation-layer-manifest.d.ts +24 -0
- package/dist/core/sdd/foundation-layer-manifest.js +117 -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/intent-guard.d.ts +22 -0
- package/dist/core/sdd/intent-guard.js +67 -0
- package/dist/core/sdd/json-schema.js +108 -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 +507 -44
- package/dist/core/sdd/lenses.d.ts +1 -0
- package/dist/core/sdd/lenses.js +29 -1
- package/dist/core/sdd/migrate-workspace.js +95 -2
- package/dist/core/sdd/migrate.d.ts +1 -1
- package/dist/core/sdd/migrate.js +36 -2
- package/dist/core/sdd/package-security-gates.d.ts +21 -0
- package/dist/core/sdd/package-security-gates.js +119 -0
- package/dist/core/sdd/package-structure-gate.d.ts +83 -0
- package/dist/core/sdd/package-structure-gate.js +357 -0
- package/dist/core/sdd/parallel-feat-automation.d.ts +330 -0
- package/dist/core/sdd/parallel-feat-automation.js +424 -0
- package/dist/core/sdd/plugin-broker.d.ts +777 -0
- package/dist/core/sdd/plugin-broker.js +492 -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 +139 -0
- package/dist/core/sdd/plugin-cli.js +265 -0
- package/dist/core/sdd/plugin-evidence.d.ts +348 -0
- package/dist/core/sdd/plugin-evidence.js +307 -0
- package/dist/core/sdd/plugin-manifest.d.ts +232 -0
- package/dist/core/sdd/plugin-manifest.js +225 -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 +447 -0
- package/dist/core/sdd/plugin-registry.js +138 -0
- package/dist/core/sdd/plugin-sdk-contract.d.ts +363 -0
- package/dist/core/sdd/plugin-sdk-contract.js +268 -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 +620 -0
- package/dist/core/sdd/quality-validation.js +239 -0
- package/dist/core/sdd/release-readiness.d.ts +19 -0
- package/dist/core/sdd/release-readiness.js +472 -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/runtime-boundary-contract.d.ts +45 -0
- package/dist/core/sdd/runtime-boundary-contract.js +90 -0
- package/dist/core/sdd/sanitize.d.ts +30 -1
- package/dist/core/sdd/sanitize.js +23 -23
- package/dist/core/sdd/sdk-agent-plugin-quality-gates.d.ts +150 -0
- package/dist/core/sdd/sdk-agent-plugin-quality-gates.js +258 -0
- package/dist/core/sdd/services/agent-run.service.d.ts +97 -0
- package/dist/core/sdd/services/agent-run.service.js +261 -0
- package/dist/core/sdd/services/breakdown.service.js +2 -1
- package/dist/core/sdd/services/capability-diff.service.d.ts +18 -0
- package/dist/core/sdd/services/capability-diff.service.js +26 -0
- package/dist/core/sdd/services/change-safety-preflight.service.d.ts +17 -0
- package/dist/core/sdd/services/change-safety-preflight.service.js +17 -0
- package/dist/core/sdd/services/context.service.d.ts +43 -340
- package/dist/core/sdd/services/context.service.js +341 -25
- 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 +105 -0
- package/dist/core/sdd/services/finalize.service.js +499 -38
- package/dist/core/sdd/services/frontend-gap.service.js +22 -7
- package/dist/core/sdd/services/frontend-impact.service.d.ts +1 -1
- 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/semantic-intent-classifier.service.d.ts +6 -0
- package/dist/core/sdd/services/semantic-intent-classifier.service.js +7 -0
- 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 +23 -0
- package/dist/core/sdd/state.js +313 -66
- package/dist/core/sdd/store/sdd-stores.js +2 -2
- package/dist/core/sdd/structural-health.d.ts +55 -55
- package/dist/core/sdd/types.d.ts +60 -19
- package/dist/core/sdd/types.js +21 -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/views.js +17 -0
- package/dist/core/sdd/workspace-schemas.d.ts +670 -19
- package/dist/core/sdd/workspace-schemas.js +285 -5
- 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/domains/sdd/index.d.ts +6 -0
- package/dist/domains/sdd/index.js +6 -0
- package/dist/infrastructures/sdd/index.d.ts +7 -0
- package/dist/infrastructures/sdd/index.js +6 -0
- package/dist/presentations/cli/sdd/index.d.ts +3 -0
- package/dist/presentations/cli/sdd/index.js +3 -0
- package/dist/shared/sdd/index.d.ts +3 -0
- package/dist/shared/sdd/index.js +2 -0
- 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 +34 -21
- package/schemas/sdd/1-spec.schema.json +1 -1
- package/schemas/sdd/2-plan.schema.json +280 -3
- 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 +701 -5
- 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/agent-runtime-command-plan.schema.json +212 -0
- package/schemas/sdd/agent-runtime-opencode-run-evidence.schema.json +270 -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 +645 -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 +637 -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 +304 -0
- package/schemas/sdd/parallel-feat-automation-request.schema.json +109 -0
- package/schemas/sdd/parallel-feat-scheduler-request.schema.json +116 -0
- package/schemas/sdd/parallel-feat-scheduler-result.schema.json +404 -0
- package/schemas/sdd/plugin-artifact-manifest.schema.json +259 -0
- package/schemas/sdd/plugin-artifact-map.schema.json +223 -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 +678 -0
- package/schemas/sdd/plugin-language-runtime.schema.json +103 -0
- package/schemas/sdd/plugin-package-governance.schema.json +74 -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 +729 -0
- package/schemas/sdd/plugin-rollback-manifest.schema.json +87 -0
- package/schemas/sdd/plugin-runtime-invocation-plan.schema.json +954 -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 +1337 -0
- package/schemas/sdd/quality-run.schema.json +197 -0
- package/schemas/sdd/quality-scenario.schema.json +252 -0
- package/schemas/sdd/sdk-agent-plugin-quality-gate-input.schema.json +168 -0
- package/schemas/sdd/sdk-agent-plugin-quality-gate-report.schema.json +160 -0
- package/schemas/sdd/workspace-catalog.schema.json +13232 -35
- 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
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
export function getOpsxProposeSkillTemplate() {
|
|
2
2
|
return {
|
|
3
|
-
name: '
|
|
3
|
+
name: 'codesdd-propose',
|
|
4
4
|
description: 'Propose a new change with all artifacts generated in one step. Use when the user wants to quickly describe what they want to build and get a complete proposal with design, specs, and tasks ready for implementation.',
|
|
5
5
|
instructions: `Propose a new change - create the change and generate all artifacts in one step.
|
|
6
6
|
|
|
7
|
-
**
|
|
7
|
+
**CodeSDD-native guardrail**
|
|
8
8
|
|
|
9
|
-
If this repository has a \`.sdd/\` directory, do not create or recreate \`
|
|
10
|
-
Use the
|
|
11
|
-
\`
|
|
12
|
-
Use the OPSX/
|
|
13
|
-
the user explicitly asks for legacy
|
|
9
|
+
If this repository has a \`.sdd/\` directory, do not create or recreate \`legacy-spec/changes\`.
|
|
10
|
+
Use the CodeSDD lifecycle instead: \`codesdd sdd insight\`, \`codesdd sdd debate\`,
|
|
11
|
+
\`codesdd sdd decide\`, \`codesdd sdd breakdown\`, and \`codesdd sdd start\`.
|
|
12
|
+
Use the OPSX/CodeSDD change flow below only for explicitly legacy projects or when
|
|
13
|
+
the user explicitly asks for legacy CodeSDD compatibility artifacts.
|
|
14
14
|
|
|
15
15
|
I'll create a change with artifacts:
|
|
16
16
|
- proposal.md (what & why)
|
|
@@ -36,13 +36,13 @@ When ready to implement, run /opsx:apply
|
|
|
36
36
|
|
|
37
37
|
2. **Create the change directory**
|
|
38
38
|
\`\`\`bash
|
|
39
|
-
|
|
39
|
+
codesdd new change "<name>"
|
|
40
40
|
\`\`\`
|
|
41
|
-
This creates a scaffolded change at \`
|
|
41
|
+
This creates a scaffolded change at \`legacy-spec/changes/<name>/\` with \`.sdd.yaml\`.
|
|
42
42
|
|
|
43
43
|
3. **Get the artifact build order**
|
|
44
44
|
\`\`\`bash
|
|
45
|
-
|
|
45
|
+
codesdd status --change "<name>" --json
|
|
46
46
|
\`\`\`
|
|
47
47
|
Parse the JSON to get:
|
|
48
48
|
- \`applyRequires\`: array of artifact IDs needed before implementation (e.g., \`["tasks"]\`)
|
|
@@ -57,7 +57,7 @@ When ready to implement, run /opsx:apply
|
|
|
57
57
|
a. **For each artifact that is \`ready\` (dependencies satisfied)**:
|
|
58
58
|
- Get instructions:
|
|
59
59
|
\`\`\`bash
|
|
60
|
-
|
|
60
|
+
codesdd instructions <artifact-id> --change "<name>" --json
|
|
61
61
|
\`\`\`
|
|
62
62
|
- The instructions JSON includes:
|
|
63
63
|
- \`context\`: Project background (constraints for you - do NOT include in output)
|
|
@@ -72,7 +72,7 @@ When ready to implement, run /opsx:apply
|
|
|
72
72
|
- Show brief progress: "Created <artifact-id>"
|
|
73
73
|
|
|
74
74
|
b. **Continue until all \`applyRequires\` artifacts are complete**
|
|
75
|
-
- After creating each artifact, re-run \`
|
|
75
|
+
- After creating each artifact, re-run \`codesdd status --change "<name>" --json\`
|
|
76
76
|
- Check if every artifact ID in \`applyRequires\` has \`status: "done"\` in the artifacts array
|
|
77
77
|
- Stop when all \`applyRequires\` artifacts are done
|
|
78
78
|
|
|
@@ -82,7 +82,7 @@ When ready to implement, run /opsx:apply
|
|
|
82
82
|
|
|
83
83
|
5. **Show final status**
|
|
84
84
|
\`\`\`bash
|
|
85
|
-
|
|
85
|
+
codesdd status --change "<name>"
|
|
86
86
|
\`\`\`
|
|
87
87
|
|
|
88
88
|
**Output**
|
|
@@ -95,7 +95,7 @@ After completing all artifacts, summarize:
|
|
|
95
95
|
|
|
96
96
|
**Artifact Creation Guidelines**
|
|
97
97
|
|
|
98
|
-
- Follow the \`instruction\` field from \`
|
|
98
|
+
- Follow the \`instruction\` field from \`codesdd instructions\` for each artifact type
|
|
99
99
|
- The schema defines what each artifact should contain - follow it
|
|
100
100
|
- Read dependency artifacts for context before creating new ones
|
|
101
101
|
- Use \`template\` as the structure for your output file - fill in its sections
|
|
@@ -110,8 +110,8 @@ After completing all artifacts, summarize:
|
|
|
110
110
|
- If a change with that name already exists, ask if user wants to continue it or create a new one
|
|
111
111
|
- Verify each artifact file exists after writing before proceeding to next`,
|
|
112
112
|
license: 'MIT',
|
|
113
|
-
compatibility: 'Requires
|
|
114
|
-
metadata: { author: '
|
|
113
|
+
compatibility: 'Requires codesdd CLI.',
|
|
114
|
+
metadata: { author: 'codesdd', version: '1.0' },
|
|
115
115
|
};
|
|
116
116
|
}
|
|
117
117
|
export function getOpsxProposeCommandTemplate() {
|
|
@@ -146,13 +146,13 @@ When ready to implement, run /opsx:apply
|
|
|
146
146
|
|
|
147
147
|
2. **Create the change directory**
|
|
148
148
|
\`\`\`bash
|
|
149
|
-
|
|
149
|
+
codesdd new change "<name>"
|
|
150
150
|
\`\`\`
|
|
151
|
-
This creates a scaffolded change at \`
|
|
151
|
+
This creates a scaffolded change at \`legacy-spec/changes/<name>/\` with \`.sdd.yaml\`.
|
|
152
152
|
|
|
153
153
|
3. **Get the artifact build order**
|
|
154
154
|
\`\`\`bash
|
|
155
|
-
|
|
155
|
+
codesdd status --change "<name>" --json
|
|
156
156
|
\`\`\`
|
|
157
157
|
Parse the JSON to get:
|
|
158
158
|
- \`applyRequires\`: array of artifact IDs needed before implementation (e.g., \`["tasks"]\`)
|
|
@@ -167,7 +167,7 @@ When ready to implement, run /opsx:apply
|
|
|
167
167
|
a. **For each artifact that is \`ready\` (dependencies satisfied)**:
|
|
168
168
|
- Get instructions:
|
|
169
169
|
\`\`\`bash
|
|
170
|
-
|
|
170
|
+
codesdd instructions <artifact-id> --change "<name>" --json
|
|
171
171
|
\`\`\`
|
|
172
172
|
- The instructions JSON includes:
|
|
173
173
|
- \`context\`: Project background (constraints for you - do NOT include in output)
|
|
@@ -182,7 +182,7 @@ When ready to implement, run /opsx:apply
|
|
|
182
182
|
- Show brief progress: "Created <artifact-id>"
|
|
183
183
|
|
|
184
184
|
b. **Continue until all \`applyRequires\` artifacts are complete**
|
|
185
|
-
- After creating each artifact, re-run \`
|
|
185
|
+
- After creating each artifact, re-run \`codesdd status --change "<name>" --json\`
|
|
186
186
|
- Check if every artifact ID in \`applyRequires\` has \`status: "done"\` in the artifacts array
|
|
187
187
|
- Stop when all \`applyRequires\` artifacts are done
|
|
188
188
|
|
|
@@ -192,7 +192,7 @@ When ready to implement, run /opsx:apply
|
|
|
192
192
|
|
|
193
193
|
5. **Show final status**
|
|
194
194
|
\`\`\`bash
|
|
195
|
-
|
|
195
|
+
codesdd status --change "<name>"
|
|
196
196
|
\`\`\`
|
|
197
197
|
|
|
198
198
|
**Output**
|
|
@@ -205,7 +205,7 @@ After completing all artifacts, summarize:
|
|
|
205
205
|
|
|
206
206
|
**Artifact Creation Guidelines**
|
|
207
207
|
|
|
208
|
-
- Follow the \`instruction\` field from \`
|
|
208
|
+
- Follow the \`instruction\` field from \`codesdd instructions\` for each artifact type
|
|
209
209
|
- The schema defines what each artifact should contain - follow it
|
|
210
210
|
- Read dependency artifacts for context before creating new ones
|
|
211
211
|
- Use \`template\` as the structure for your output file - fill in its sections
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export function getSddSkillTemplate() {
|
|
2
2
|
return {
|
|
3
|
-
name: '
|
|
3
|
+
name: 'codesdd-sdd',
|
|
4
4
|
description: 'Atue como Arquiteto Principal para manter o Software Design Document (SDD) continuo.',
|
|
5
5
|
instructions: `Voce e o Arquiteto Principal de Software responsavel por manter o Software Design Document (SDD) continuo do sistema.
|
|
6
6
|
Seu foco principal e design de alto nivel, arquitetura, estrutura do projeto e consistencia documental, e NAO escrever codigo de aplicacao.
|
|
@@ -28,22 +28,22 @@ Voce pode ler arquivos, escrever Markdown e organizar estruturas de diretorios.
|
|
|
28
28
|
- Escrever novas especificacoes quando solicitado.
|
|
29
29
|
- Se o usuario pedir implementacao direta de codigo, orientar primeiro o planejamento e a documentacao da mudanca.
|
|
30
30
|
|
|
31
|
-
## Consciencia
|
|
31
|
+
## Consciencia CodeSDD
|
|
32
32
|
|
|
33
|
-
Voce tem contexto do sistema
|
|
33
|
+
Voce tem contexto do sistema CodeSDD. O estado operacional canonico vive em
|
|
34
34
|
\`.sdd/state/*.yaml\`; arquivos Markdown sao visoes, guias ou documentacao
|
|
35
|
-
curada. Material
|
|
35
|
+
curada. Material Legacy spec importado em \`.sdd/sources/legacy/spec-corpus\` e
|
|
36
36
|
somente contexto legado, nao fonte operacional de verdade.
|
|
37
37
|
|
|
38
38
|
### Checagem de contexto
|
|
39
39
|
|
|
40
|
-
No inicio, consulte \`
|
|
40
|
+
No inicio, consulte \`codesdd sdd next\`, \`codesdd sdd check --render\` e leia
|
|
41
41
|
\`README.md\`, \`.sdd/core/\`, \`.sdd/state/*.yaml\` e artefatos SDD relevantes.
|
|
42
42
|
|
|
43
43
|
### Atualizacao documental
|
|
44
44
|
|
|
45
45
|
Se houver divergencia entre codigo e documentacao, proponha ajuste nos documentos
|
|
46
|
-
e no estado
|
|
46
|
+
e no estado CodeSDD canonico quando aplicavel. Se o usuario anunciar uma decisao,
|
|
47
47
|
registre-a no artefato correto.
|
|
48
48
|
|
|
49
49
|
## Guardrails
|
|
@@ -53,8 +53,8 @@ registre-a no artefato correto.
|
|
|
53
53
|
- **Evitar suposicoes:** validar com o usuario quando houver incerteza de direcao arquitetural.
|
|
54
54
|
`,
|
|
55
55
|
license: 'MIT',
|
|
56
|
-
compatibility: 'Requires
|
|
57
|
-
metadata: { author: '
|
|
56
|
+
compatibility: 'Requires codesdd CLI.',
|
|
57
|
+
metadata: { author: 'codesdd', version: '1.0' },
|
|
58
58
|
};
|
|
59
59
|
}
|
|
60
60
|
export function getOpsxSddCommandTemplate() {
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
export function getSyncSpecsSkillTemplate() {
|
|
2
2
|
return {
|
|
3
|
-
name: '
|
|
3
|
+
name: 'codesdd-sync-specs',
|
|
4
4
|
description: 'Sync delta specs from a change to main specs. Use when the user wants to update main specs with changes from a delta spec, without archiving the change.',
|
|
5
5
|
instructions: `Sync delta specs from a change to main specs.
|
|
6
6
|
|
|
7
|
-
**
|
|
7
|
+
**CodeSDD-native guardrail**
|
|
8
8
|
|
|
9
|
-
If this repository has a \`.sdd/\` directory, do not create or recreate \`
|
|
10
|
-
or \`
|
|
9
|
+
If this repository has a \`.sdd/\` directory, do not create or recreate \`legacy-spec/specs\`
|
|
10
|
+
or \`legacy-spec/changes\`. Treat imported CodeSDD files under
|
|
11
11
|
\`.sdd/sources/legacy/spec-corpus\` as read-only legacy context unless the user explicitly
|
|
12
12
|
asks for legacy compatibility maintenance.
|
|
13
13
|
|
|
@@ -19,7 +19,7 @@ This is an **agent-driven** operation - you will read delta specs and directly e
|
|
|
19
19
|
|
|
20
20
|
1. **If no change name provided, prompt for selection**
|
|
21
21
|
|
|
22
|
-
Run \`
|
|
22
|
+
Run \`codesdd list --json\` to get available changes. Use the **AskUserQuestion tool** to let the user select.
|
|
23
23
|
|
|
24
24
|
Show changes that have delta specs (under \`specs/\` directory).
|
|
25
25
|
|
|
@@ -27,7 +27,7 @@ This is an **agent-driven** operation - you will read delta specs and directly e
|
|
|
27
27
|
|
|
28
28
|
2. **Find delta specs**
|
|
29
29
|
|
|
30
|
-
Look for delta spec files in \`
|
|
30
|
+
Look for delta spec files in \`legacy-spec/changes/<name>/specs/*/spec.md\`.
|
|
31
31
|
|
|
32
32
|
Each delta spec file contains sections like:
|
|
33
33
|
- \`## ADDED Requirements\` - New requirements to add
|
|
@@ -39,11 +39,11 @@ This is an **agent-driven** operation - you will read delta specs and directly e
|
|
|
39
39
|
|
|
40
40
|
3. **For each delta spec, apply changes to main specs**
|
|
41
41
|
|
|
42
|
-
For each capability with a delta spec at \`
|
|
42
|
+
For each capability with a delta spec at \`legacy-spec/changes/<name>/specs/<capability>/spec.md\`:
|
|
43
43
|
|
|
44
44
|
a. **Read the delta spec** to understand the intended changes
|
|
45
45
|
|
|
46
|
-
b. **Read the main spec** at \`
|
|
46
|
+
b. **Read the main spec** at \`legacy-spec/specs/<capability>/spec.md\` (may not exist yet)
|
|
47
47
|
|
|
48
48
|
c. **Apply changes intelligently**:
|
|
49
49
|
|
|
@@ -66,7 +66,7 @@ This is an **agent-driven** operation - you will read delta specs and directly e
|
|
|
66
66
|
- Find the FROM requirement, rename to TO
|
|
67
67
|
|
|
68
68
|
d. **Create new main spec** if capability doesn't exist yet:
|
|
69
|
-
- Create \`
|
|
69
|
+
- Create \`legacy-spec/specs/<capability>/spec.md\`
|
|
70
70
|
- Add Purpose section (can be brief, mark as TBD)
|
|
71
71
|
- Add Requirements section with the ADDED requirements
|
|
72
72
|
|
|
@@ -137,8 +137,8 @@ Main specs are now updated. The change remains active - archive when implementat
|
|
|
137
137
|
- Show what you're changing as you go
|
|
138
138
|
- The operation should be idempotent - running twice should give same result`,
|
|
139
139
|
license: 'MIT',
|
|
140
|
-
compatibility: 'Requires
|
|
141
|
-
metadata: { author: '
|
|
140
|
+
compatibility: 'Requires codesdd CLI.',
|
|
141
|
+
metadata: { author: 'codesdd', version: '1.0' },
|
|
142
142
|
};
|
|
143
143
|
}
|
|
144
144
|
export function getOpsxSyncCommandTemplate() {
|
|
@@ -149,10 +149,10 @@ export function getOpsxSyncCommandTemplate() {
|
|
|
149
149
|
tags: ['workflow', 'specs', 'experimental'],
|
|
150
150
|
content: `Sync delta specs from a change to main specs.
|
|
151
151
|
|
|
152
|
-
**
|
|
152
|
+
**CodeSDD-native guardrail**
|
|
153
153
|
|
|
154
|
-
If this repository has a \`.sdd/\` directory, do not create or recreate \`
|
|
155
|
-
or \`
|
|
154
|
+
If this repository has a \`.sdd/\` directory, do not create or recreate \`legacy-spec/specs\`
|
|
155
|
+
or \`legacy-spec/changes\`. Treat imported CodeSDD files under
|
|
156
156
|
\`.sdd/sources/legacy/spec-corpus\` as read-only legacy context unless the user explicitly
|
|
157
157
|
asks for legacy compatibility maintenance.
|
|
158
158
|
|
|
@@ -164,7 +164,7 @@ This is an **agent-driven** operation - you will read delta specs and directly e
|
|
|
164
164
|
|
|
165
165
|
1. **If no change name provided, prompt for selection**
|
|
166
166
|
|
|
167
|
-
Run \`
|
|
167
|
+
Run \`codesdd list --json\` to get available changes. Use the **AskUserQuestion tool** to let the user select.
|
|
168
168
|
|
|
169
169
|
Show changes that have delta specs (under \`specs/\` directory).
|
|
170
170
|
|
|
@@ -172,7 +172,7 @@ This is an **agent-driven** operation - you will read delta specs and directly e
|
|
|
172
172
|
|
|
173
173
|
2. **Find delta specs**
|
|
174
174
|
|
|
175
|
-
Look for delta spec files in \`
|
|
175
|
+
Look for delta spec files in \`legacy-spec/changes/<name>/specs/*/spec.md\`.
|
|
176
176
|
|
|
177
177
|
Each delta spec file contains sections like:
|
|
178
178
|
- \`## ADDED Requirements\` - New requirements to add
|
|
@@ -184,11 +184,11 @@ This is an **agent-driven** operation - you will read delta specs and directly e
|
|
|
184
184
|
|
|
185
185
|
3. **For each delta spec, apply changes to main specs**
|
|
186
186
|
|
|
187
|
-
For each capability with a delta spec at \`
|
|
187
|
+
For each capability with a delta spec at \`legacy-spec/changes/<name>/specs/<capability>/spec.md\`:
|
|
188
188
|
|
|
189
189
|
a. **Read the delta spec** to understand the intended changes
|
|
190
190
|
|
|
191
|
-
b. **Read the main spec** at \`
|
|
191
|
+
b. **Read the main spec** at \`legacy-spec/specs/<capability>/spec.md\` (may not exist yet)
|
|
192
192
|
|
|
193
193
|
c. **Apply changes intelligently**:
|
|
194
194
|
|
|
@@ -211,7 +211,7 @@ This is an **agent-driven** operation - you will read delta specs and directly e
|
|
|
211
211
|
- Find the FROM requirement, rename to TO
|
|
212
212
|
|
|
213
213
|
d. **Create new main spec** if capability doesn't exist yet:
|
|
214
|
-
- Create \`
|
|
214
|
+
- Create \`legacy-spec/specs/<capability>/spec.md\`
|
|
215
215
|
- Add Purpose section (can be brief, mark as TBD)
|
|
216
216
|
- Add Requirements section with the ADDED requirements
|
|
217
217
|
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
export function getVerifyChangeSkillTemplate() {
|
|
2
2
|
return {
|
|
3
|
-
name: '
|
|
3
|
+
name: 'codesdd-verify-change',
|
|
4
4
|
description: 'Verify implementation matches change artifacts. Use when the user wants to validate that implementation is complete, correct, and coherent before archiving.',
|
|
5
5
|
instructions: `Verify that an implementation matches the change artifacts (specs, tasks, design).
|
|
6
6
|
|
|
7
|
-
**
|
|
7
|
+
**CodeSDD-native guardrail**
|
|
8
8
|
|
|
9
|
-
If this repository has a \`.sdd/\` directory, verify against
|
|
9
|
+
If this repository has a \`.sdd/\` directory, verify against CodeSDD canonical state
|
|
10
10
|
first: \`.sdd/state/*.yaml\`, \`.sdd/active/<FEAT-ID>\`, and \`.sdd/planned/<FEAT-ID>\`.
|
|
11
|
-
Use
|
|
11
|
+
Use CodeSDD paths only as imported legacy context or when the user explicitly asks
|
|
12
12
|
for legacy compatibility validation.
|
|
13
13
|
|
|
14
14
|
**Input**: Optionally specify a change name. If omitted, check if it can be inferred from conversation context. If vague or ambiguous you MUST prompt for available changes.
|
|
@@ -17,7 +17,7 @@ for legacy compatibility validation.
|
|
|
17
17
|
|
|
18
18
|
1. **If no change name provided, prompt for selection**
|
|
19
19
|
|
|
20
|
-
Run \`
|
|
20
|
+
Run \`codesdd list --json\` to get available changes. Use the **AskUserQuestion tool** to let the user select.
|
|
21
21
|
|
|
22
22
|
Show changes that have implementation tasks (tasks artifact exists).
|
|
23
23
|
Include the schema used for each change if available.
|
|
@@ -27,7 +27,7 @@ for legacy compatibility validation.
|
|
|
27
27
|
|
|
28
28
|
2. **Check status to understand the schema**
|
|
29
29
|
\`\`\`bash
|
|
30
|
-
|
|
30
|
+
codesdd status --change "<name>" --json
|
|
31
31
|
\`\`\`
|
|
32
32
|
Parse the JSON to understand:
|
|
33
33
|
- \`schemaName\`: The workflow being used (e.g., "spec-driven")
|
|
@@ -36,7 +36,7 @@ for legacy compatibility validation.
|
|
|
36
36
|
3. **Get the change directory and load artifacts**
|
|
37
37
|
|
|
38
38
|
\`\`\`bash
|
|
39
|
-
|
|
39
|
+
codesdd instructions apply --change "<name>" --json
|
|
40
40
|
\`\`\`
|
|
41
41
|
|
|
42
42
|
This returns the change directory and context files. Read all available artifacts from \`contextFiles\`.
|
|
@@ -61,7 +61,7 @@ for legacy compatibility validation.
|
|
|
61
61
|
- Recommendation: "Complete task: <description>" or "Mark as done if already implemented"
|
|
62
62
|
|
|
63
63
|
**Spec Coverage**:
|
|
64
|
-
- If delta specs exist in \`
|
|
64
|
+
- If delta specs exist in \`legacy-spec/changes/<name>/specs/\`:
|
|
65
65
|
- Extract all requirements (marked with "### Requirement:")
|
|
66
66
|
- For each requirement:
|
|
67
67
|
- Search codebase for keywords related to the requirement
|
|
@@ -167,8 +167,8 @@ Use clear markdown with:
|
|
|
167
167
|
- Specific, actionable recommendations
|
|
168
168
|
- No vague suggestions like "consider reviewing"`,
|
|
169
169
|
license: 'MIT',
|
|
170
|
-
compatibility: 'Requires
|
|
171
|
-
metadata: { author: '
|
|
170
|
+
compatibility: 'Requires codesdd CLI.',
|
|
171
|
+
metadata: { author: 'codesdd', version: '1.0' },
|
|
172
172
|
};
|
|
173
173
|
}
|
|
174
174
|
export function getOpsxVerifyCommandTemplate() {
|
|
@@ -179,11 +179,11 @@ export function getOpsxVerifyCommandTemplate() {
|
|
|
179
179
|
tags: ['workflow', 'verify', 'experimental'],
|
|
180
180
|
content: `Verify that an implementation matches the change artifacts (specs, tasks, design).
|
|
181
181
|
|
|
182
|
-
**
|
|
182
|
+
**CodeSDD-native guardrail**
|
|
183
183
|
|
|
184
|
-
If this repository has a \`.sdd/\` directory, verify against
|
|
184
|
+
If this repository has a \`.sdd/\` directory, verify against CodeSDD canonical state
|
|
185
185
|
first: \`.sdd/state/*.yaml\`, \`.sdd/active/<FEAT-ID>\`, and \`.sdd/planned/<FEAT-ID>\`.
|
|
186
|
-
Use
|
|
186
|
+
Use CodeSDD paths only as imported legacy context or when the user explicitly asks
|
|
187
187
|
for legacy compatibility validation.
|
|
188
188
|
|
|
189
189
|
**Input**: Optionally specify a change name after \`/opsx:verify\` (e.g., \`/opsx:verify add-auth\`). If omitted, check if it can be inferred from conversation context. If vague or ambiguous you MUST prompt for available changes.
|
|
@@ -192,7 +192,7 @@ for legacy compatibility validation.
|
|
|
192
192
|
|
|
193
193
|
1. **If no change name provided, prompt for selection**
|
|
194
194
|
|
|
195
|
-
Run \`
|
|
195
|
+
Run \`codesdd list --json\` to get available changes. Use the **AskUserQuestion tool** to let the user select.
|
|
196
196
|
|
|
197
197
|
Show changes that have implementation tasks (tasks artifact exists).
|
|
198
198
|
Include the schema used for each change if available.
|
|
@@ -202,7 +202,7 @@ for legacy compatibility validation.
|
|
|
202
202
|
|
|
203
203
|
2. **Check status to understand the schema**
|
|
204
204
|
\`\`\`bash
|
|
205
|
-
|
|
205
|
+
codesdd status --change "<name>" --json
|
|
206
206
|
\`\`\`
|
|
207
207
|
Parse the JSON to understand:
|
|
208
208
|
- \`schemaName\`: The workflow being used (e.g., "spec-driven")
|
|
@@ -211,7 +211,7 @@ for legacy compatibility validation.
|
|
|
211
211
|
3. **Get the change directory and load artifacts**
|
|
212
212
|
|
|
213
213
|
\`\`\`bash
|
|
214
|
-
|
|
214
|
+
codesdd instructions apply --change "<name>" --json
|
|
215
215
|
\`\`\`
|
|
216
216
|
|
|
217
217
|
This returns the change directory and context files. Read all available artifacts from \`contextFiles\`.
|
|
@@ -236,7 +236,7 @@ for legacy compatibility validation.
|
|
|
236
236
|
- Recommendation: "Complete task: <description>" or "Mark as done if already implemented"
|
|
237
237
|
|
|
238
238
|
**Spec Coverage**:
|
|
239
|
-
- If delta specs exist in \`
|
|
239
|
+
- If delta specs exist in \`legacy-spec/changes/<name>/specs/\`:
|
|
240
240
|
- Extract all requirements (marked with "### Requirement:")
|
|
241
241
|
- For each requirement:
|
|
242
242
|
- Search codebase for keywords related to the requirement
|
package/dist/core/update.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Update Command
|
|
3
3
|
*
|
|
4
|
-
* Refreshes
|
|
4
|
+
* Refreshes CodeSDD skills and commands for configured tools.
|
|
5
5
|
* Supports profile-aware updates, delivery changes, migration, and smart update detection.
|
|
6
6
|
*/
|
|
7
7
|
/**
|
|
@@ -59,7 +59,7 @@ export declare class UpdateCommand {
|
|
|
59
59
|
*/
|
|
60
60
|
private removeUnselectedCommandFiles;
|
|
61
61
|
/**
|
|
62
|
-
* Detect and handle legacy
|
|
62
|
+
* Detect and handle legacy CodeSDD artifacts.
|
|
63
63
|
* Unlike init, update warns but continues if legacy files found in non-interactive mode.
|
|
64
64
|
* Returns array of tool IDs that were newly configured during legacy upgrade.
|
|
65
65
|
*/
|
package/dist/core/update.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Update Command
|
|
3
3
|
*
|
|
4
|
-
* Refreshes
|
|
4
|
+
* Refreshes CodeSDD skills and commands for configured tools.
|
|
5
5
|
* Supports profile-aware updates, delivery changes, migration, and smart update detection.
|
|
6
6
|
*/
|
|
7
7
|
import path from 'path';
|
|
@@ -11,7 +11,7 @@ import * as fs from 'fs';
|
|
|
11
11
|
import { createRequire } from 'module';
|
|
12
12
|
import { FileSystemUtils } from '../utils/file-system.js';
|
|
13
13
|
import { transformToHyphenCommands } from '../utils/command-references.js';
|
|
14
|
-
import { AI_TOOLS
|
|
14
|
+
import { AI_TOOLS } from './config.js';
|
|
15
15
|
import { generateCommands, CommandAdapterRegistry, } from './command-generation/index.js';
|
|
16
16
|
import { getToolVersionStatus, getSkillTemplates, getCommandContents, generateSkillContent, getToolsWithSkillsDir, } from './shared/index.js';
|
|
17
17
|
import { detectLegacyArtifacts, cleanupLegacyArtifacts, formatCleanupSummary, formatDetectionSummary, getToolsFromLegacyArtifacts, } from './legacy-cleanup.js';
|
|
@@ -22,8 +22,9 @@ import { getAvailableTools } from './available-tools.js';
|
|
|
22
22
|
import { WORKFLOW_TO_SKILL_DIR, getCommandConfiguredTools, getConfiguredToolsForProfileSync, getToolsNeedingProfileSync, } from './profile-sync-drift.js';
|
|
23
23
|
import { scanInstalledWorkflows as scanInstalledWorkflowsShared, migrateIfNeeded as migrateIfNeededShared, } from './migration.js';
|
|
24
24
|
import { CLI_NAME, CLI_REPOSITORY_URL } from './branding.js';
|
|
25
|
+
import { resolveLegacySpecLiveRoot } from './sdd/services/legacy-capability.service.js';
|
|
25
26
|
const require = createRequire(import.meta.url);
|
|
26
|
-
const { version:
|
|
27
|
+
const { version: CODESDD_VERSION } = require('../../package.json');
|
|
27
28
|
/**
|
|
28
29
|
* Scans installed workflow artifacts (skills and managed commands) across all configured tools.
|
|
29
30
|
* Returns the union of detected workflow IDs that match ALL_WORKFLOWS.
|
|
@@ -43,10 +44,10 @@ export class UpdateCommand {
|
|
|
43
44
|
}
|
|
44
45
|
async execute(projectPath) {
|
|
45
46
|
const resolvedProjectPath = path.resolve(projectPath);
|
|
46
|
-
const
|
|
47
|
-
// 1. Check
|
|
48
|
-
if (!await FileSystemUtils.directoryExists(
|
|
49
|
-
throw new Error(`No
|
|
47
|
+
const codesddPath = resolveLegacySpecLiveRoot(resolvedProjectPath);
|
|
48
|
+
// 1. Check codesdd directory exists
|
|
49
|
+
if (!await FileSystemUtils.directoryExists(codesddPath)) {
|
|
50
|
+
throw new Error(`No CodeSDD directory found. Run '${CLI_NAME} init' first.`);
|
|
50
51
|
}
|
|
51
52
|
// 2. Perform one-time migration if needed before any legacy upgrade generation.
|
|
52
53
|
// Use detected tool directories to preserve existing opsx skills/commands.
|
|
@@ -73,7 +74,7 @@ export class UpdateCommand {
|
|
|
73
74
|
const commandConfiguredTools = getCommandConfiguredTools(resolvedProjectPath);
|
|
74
75
|
const commandConfiguredSet = new Set(commandConfiguredTools);
|
|
75
76
|
const toolStatuses = configuredTools.map((toolId) => {
|
|
76
|
-
const status = getToolVersionStatus(resolvedProjectPath, toolId,
|
|
77
|
+
const status = getToolVersionStatus(resolvedProjectPath, toolId, CODESDD_VERSION);
|
|
77
78
|
if (!status.configured && commandConfiguredSet.has(toolId)) {
|
|
78
79
|
return { ...status, configured: true };
|
|
79
80
|
}
|
|
@@ -131,7 +132,7 @@ export class UpdateCommand {
|
|
|
131
132
|
const skillFile = path.join(skillDir, 'SKILL.md');
|
|
132
133
|
// Use hyphen-based command references for OpenCode
|
|
133
134
|
const transformer = tool.value === 'opencode' ? transformToHyphenCommands : undefined;
|
|
134
|
-
const skillContent = generateSkillContent(template,
|
|
135
|
+
const skillContent = generateSkillContent(template, CODESDD_VERSION, transformer);
|
|
135
136
|
await FileSystemUtils.writeFile(skillFile, skillContent);
|
|
136
137
|
}
|
|
137
138
|
removedDeselectedSkillCount += await this.removeUnselectedSkillDirs(skillsDir, desiredWorkflows);
|
|
@@ -170,7 +171,7 @@ export class UpdateCommand {
|
|
|
170
171
|
// 11. Summary
|
|
171
172
|
console.log();
|
|
172
173
|
if (updatedTools.length > 0) {
|
|
173
|
-
console.log(chalk.green(`✓ Updated: ${updatedTools.join(', ')} (v${
|
|
174
|
+
console.log(chalk.green(`✓ Updated: ${updatedTools.join(', ')} (v${CODESDD_VERSION})`));
|
|
174
175
|
}
|
|
175
176
|
if (failedTools.length > 0) {
|
|
176
177
|
console.log(chalk.red(`✗ Failed: ${failedTools.map(f => `${f.name} (${f.error})`).join(', ')}`));
|
|
@@ -215,7 +216,7 @@ export class UpdateCommand {
|
|
|
215
216
|
*/
|
|
216
217
|
displayUpToDateMessage(toolStatuses) {
|
|
217
218
|
const toolNames = toolStatuses.map((s) => s.toolId);
|
|
218
|
-
console.log(chalk.green(`✓ All ${toolStatuses.length} tool(s) up to date (v${
|
|
219
|
+
console.log(chalk.green(`✓ All ${toolStatuses.length} tool(s) up to date (v${CODESDD_VERSION})`));
|
|
219
220
|
console.log(chalk.dim(` Tools: ${toolNames.join(', ')}`));
|
|
220
221
|
console.log();
|
|
221
222
|
console.log(chalk.dim('Use --force to refresh files anyway.'));
|
|
@@ -228,7 +229,7 @@ export class UpdateCommand {
|
|
|
228
229
|
const status = statusByTool.get(toolId);
|
|
229
230
|
if (status?.needsUpdate) {
|
|
230
231
|
const fromVersion = status.generatedByVersion ?? 'unknown';
|
|
231
|
-
return `${status.toolId} (${fromVersion} → ${
|
|
232
|
+
return `${status.toolId} (${fromVersion} → ${CODESDD_VERSION})`;
|
|
232
233
|
}
|
|
233
234
|
return `${toolId} (config sync)`;
|
|
234
235
|
});
|
|
@@ -262,7 +263,7 @@ export class UpdateCommand {
|
|
|
262
263
|
const profileSet = new Set(profileWorkflows);
|
|
263
264
|
const extraWorkflows = installedWorkflows.filter((w) => !profileSet.has(w));
|
|
264
265
|
if (extraWorkflows.length > 0) {
|
|
265
|
-
console.log(chalk.dim(`Note: ${extraWorkflows.length} extra workflows not in profile (use \`
|
|
266
|
+
console.log(chalk.dim(`Note: ${extraWorkflows.length} extra workflows not in profile (use \`codesdd config profile\` to manage)`));
|
|
266
267
|
}
|
|
267
268
|
}
|
|
268
269
|
/**
|
|
@@ -366,7 +367,7 @@ export class UpdateCommand {
|
|
|
366
367
|
return removed;
|
|
367
368
|
}
|
|
368
369
|
/**
|
|
369
|
-
* Detect and handle legacy
|
|
370
|
+
* Detect and handle legacy CodeSDD artifacts.
|
|
370
371
|
* Unlike init, update warns but continues if legacy files found in non-interactive mode.
|
|
371
372
|
* Returns array of tool IDs that were newly configured during legacy upgrade.
|
|
372
373
|
*/
|
|
@@ -506,7 +507,7 @@ export class UpdateCommand {
|
|
|
506
507
|
const skillFile = path.join(skillDir, 'SKILL.md');
|
|
507
508
|
// Use hyphen-based command references for OpenCode
|
|
508
509
|
const transformer = tool.value === 'opencode' ? transformToHyphenCommands : undefined;
|
|
509
|
-
const skillContent = generateSkillContent(template,
|
|
510
|
+
const skillContent = generateSkillContent(template, CODESDD_VERSION, transformer);
|
|
510
511
|
await FileSystemUtils.writeFile(skillFile, skillContent);
|
|
511
512
|
}
|
|
512
513
|
}
|
|
@@ -26,7 +26,7 @@ export declare const VALIDATION_MESSAGES: {
|
|
|
26
26
|
readonly REQUIREMENT_TOO_LONG: "Requirement text is very long (>500 characters). Consider breaking it down.";
|
|
27
27
|
readonly DELTA_DESCRIPTION_TOO_BRIEF: "Delta description is too brief";
|
|
28
28
|
readonly DELTA_MISSING_REQUIREMENTS: "Delta should include requirements";
|
|
29
|
-
readonly GUIDE_NO_DELTAS: "No deltas found. Ensure your change has a specs/ directory with capability folders (e.g. specs/http-server/spec.md) containing .md files that use delta headers (## ADDED/MODIFIED/REMOVED/RENAMED Requirements) and that each requirement includes at least one \"#### Scenario:\" block. Tip: run \"
|
|
29
|
+
readonly GUIDE_NO_DELTAS: "No deltas found. Ensure your change has a specs/ directory with capability folders (e.g. specs/http-server/spec.md) containing .md files that use delta headers (## ADDED/MODIFIED/REMOVED/RENAMED Requirements) and that each requirement includes at least one \"#### Scenario:\" block. Tip: run \"codesdd change show <change-id> --json --deltas-only\" to inspect parsed deltas.";
|
|
30
30
|
readonly GUIDE_MISSING_SPEC_SECTIONS: "Missing required sections. Expected headers: \"## Purpose\" and \"## Requirements\". Example:\n## Purpose\n[brief purpose]\n\n## Requirements\n### Requirement: Clear requirement statement\nUsers SHALL ...\n\n#### Scenario: Descriptive name\n- **WHEN** ...\n- **THEN** ...";
|
|
31
31
|
readonly GUIDE_MISSING_CHANGE_SECTIONS: "Missing required sections. Expected headers: \"## Why\" and \"## What Changes\". Ensure deltas are documented in specs/ using delta headers.";
|
|
32
32
|
readonly GUIDE_SCENARIO_FORMAT: "Scenarios must use level-4 headers. Convert bullet lists into:\n#### Scenario: Short name\n- **WHEN** ...\n- **THEN** ...\n- **AND** ...";
|
|
@@ -32,7 +32,7 @@ export const VALIDATION_MESSAGES = {
|
|
|
32
32
|
DELTA_DESCRIPTION_TOO_BRIEF: 'Delta description is too brief',
|
|
33
33
|
DELTA_MISSING_REQUIREMENTS: 'Delta should include requirements',
|
|
34
34
|
// Guidance snippets (appended to primary messages for remediation)
|
|
35
|
-
GUIDE_NO_DELTAS: 'No deltas found. Ensure your change has a specs/ directory with capability folders (e.g. specs/http-server/spec.md) containing .md files that use delta headers (## ADDED/MODIFIED/REMOVED/RENAMED Requirements) and that each requirement includes at least one "#### Scenario:" block. Tip: run "
|
|
35
|
+
GUIDE_NO_DELTAS: 'No deltas found. Ensure your change has a specs/ directory with capability folders (e.g. specs/http-server/spec.md) containing .md files that use delta headers (## ADDED/MODIFIED/REMOVED/RENAMED Requirements) and that each requirement includes at least one "#### Scenario:" block. Tip: run "codesdd change show <change-id> --json --deltas-only" to inspect parsed deltas.',
|
|
36
36
|
GUIDE_MISSING_SPEC_SECTIONS: 'Missing required sections. Expected headers: "## Purpose" and "## Requirements". Example:\n## Purpose\n[brief purpose]\n\n## Requirements\n### Requirement: Clear requirement statement\nUsers SHALL ...\n\n#### Scenario: Descriptive name\n- **WHEN** ...\n- **THEN** ...',
|
|
37
37
|
GUIDE_MISSING_CHANGE_SECTIONS: 'Missing required sections. Expected headers: "## Why" and "## What Changes". Ensure deltas are documented in specs/ using delta headers.',
|
|
38
38
|
GUIDE_SCENARIO_FORMAT: 'Scenarios must use level-4 headers. Convert bullet lists into:\n#### Scenario: Short name\n- **WHEN** ...\n- **THEN** ...\n- **AND** ...',
|
package/dist/core/view.js
CHANGED
|
@@ -4,19 +4,19 @@ import chalk from 'chalk';
|
|
|
4
4
|
import { getTaskProgressForChange } from '../utils/task-progress.js';
|
|
5
5
|
import { MarkdownParser } from './parsers/markdown-parser.js';
|
|
6
6
|
import { CLI_NAME } from './branding.js';
|
|
7
|
-
import {
|
|
7
|
+
import { resolveLegacySpecSubpath } from './sdd/services/legacy-capability.service.js';
|
|
8
8
|
export class ViewCommand {
|
|
9
9
|
async execute(targetPath = '.') {
|
|
10
|
-
const
|
|
11
|
-
if (!fs.existsSync(
|
|
12
|
-
console.error(chalk.red('No
|
|
10
|
+
const codesddDir = resolveLegacySpecSubpath(targetPath);
|
|
11
|
+
if (!fs.existsSync(codesddDir)) {
|
|
12
|
+
console.error(chalk.red('No codesdd directory found'));
|
|
13
13
|
process.exit(1);
|
|
14
14
|
}
|
|
15
|
-
console.log(chalk.bold('\
|
|
15
|
+
console.log(chalk.bold('\nCodeSDD Dashboard\n'));
|
|
16
16
|
console.log('═'.repeat(60));
|
|
17
17
|
// Get changes and specs data
|
|
18
|
-
const changesData = await this.getChangesData(
|
|
19
|
-
const specsData = await this.getSpecsData(
|
|
18
|
+
const changesData = await this.getChangesData(codesddDir);
|
|
19
|
+
const specsData = await this.getSpecsData(codesddDir);
|
|
20
20
|
// Display summary metrics
|
|
21
21
|
this.displaySummary(changesData, specsData);
|
|
22
22
|
// Display draft changes
|
|
@@ -61,8 +61,8 @@ export class ViewCommand {
|
|
|
61
61
|
console.log('\n' + '═'.repeat(60));
|
|
62
62
|
console.log(chalk.dim(`\nUse ${chalk.white(`${CLI_NAME} list --changes`)} or ${chalk.white(`${CLI_NAME} list --specs`)} for detailed views`));
|
|
63
63
|
}
|
|
64
|
-
async getChangesData(
|
|
65
|
-
const changesDir = path.join(
|
|
64
|
+
async getChangesData(codesddDir) {
|
|
65
|
+
const changesDir = path.join(codesddDir, 'changes');
|
|
66
66
|
if (!fs.existsSync(changesDir)) {
|
|
67
67
|
return { draft: [], active: [], completed: [] };
|
|
68
68
|
}
|
|
@@ -102,8 +102,8 @@ export class ViewCommand {
|
|
|
102
102
|
completed.sort((a, b) => a.name.localeCompare(b.name));
|
|
103
103
|
return { draft, active, completed };
|
|
104
104
|
}
|
|
105
|
-
async getSpecsData(
|
|
106
|
-
const specsDir = path.join(
|
|
105
|
+
async getSpecsData(codesddDir) {
|
|
106
|
+
const specsDir = path.join(codesddDir, 'specs');
|
|
107
107
|
if (!fs.existsSync(specsDir)) {
|
|
108
108
|
return [];
|
|
109
109
|
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { buildFeatureTitle, computeCanonicalTitle, markdownInsightTemplate, slugify, stripFunctionalTitlePrefixes, } from '../../core/sdd/domain/helpers.js';
|
|
2
|
+
export { evaluateFeatureFinalizeGuardrails, evaluateFeatureStartGuardrails, type FeatureFinalizeGuardrails, type FeatureStartGuardrails, type LifecycleDependencyCheck, type LifecycleLockCheck, } from '../../core/sdd/domain/lifecycle-guardrails.js';
|
|
3
|
+
export { clearLifecycleHooks, registerLifecycleHook, runLifecycleHooks, unregisterLifecycleHook, type LifecycleHook, type LifecycleHookContext, type LifecycleHookEvent, } from '../../core/sdd/domain/lifecycle-hooks.js';
|
|
4
|
+
export { TransitionEngine, type EntityStatus } from '../../core/sdd/domain/transition-engine.js';
|
|
5
|
+
export { evaluateWorkspaceTraceability } from '../../core/sdd/domain/traceability.js';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { buildFeatureTitle, computeCanonicalTitle, markdownInsightTemplate, slugify, stripFunctionalTitlePrefixes, } from '../../core/sdd/domain/helpers.js';
|
|
2
|
+
export { evaluateFeatureFinalizeGuardrails, evaluateFeatureStartGuardrails, } from '../../core/sdd/domain/lifecycle-guardrails.js';
|
|
3
|
+
export { clearLifecycleHooks, registerLifecycleHook, runLifecycleHooks, unregisterLifecycleHook, } from '../../core/sdd/domain/lifecycle-hooks.js';
|
|
4
|
+
export { TransitionEngine } from '../../core/sdd/domain/transition-engine.js';
|
|
5
|
+
export { evaluateWorkspaceTraceability } from '../../core/sdd/domain/traceability.js';
|
|
6
|
+
//# sourceMappingURL=index.js.map
|