@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/state.js
CHANGED
|
@@ -2,10 +2,11 @@ import path from 'node:path';
|
|
|
2
2
|
import { promises as fs } from 'node:fs';
|
|
3
3
|
import { fileURLToPath } from 'node:url';
|
|
4
4
|
import { parse as parseYaml, stringify as stringifyYaml } from 'yaml';
|
|
5
|
-
import {
|
|
5
|
+
import { resolveLegacySpecLiveSubpath } from './services/legacy-capability.service.js';
|
|
6
6
|
import { ArchitectureStateSchema, BacklogStateSchema, DiscoveryIndexStateSchema, FinalizeQueueStateSchema, IntegrationContractsStateSchema, FrontendDecisionsStateSchema, UnblockEventsStateSchema, TransitionLogStateSchema, AuditHistoryStateSchema, FrontendGapsStateSchema, FrontendMapStateSchema, RepoMapStateSchema, SourceIndexStateSchema, SkillCatalogStateSchema, SkillRoutingStateSchema, ServiceCatalogStateSchema, TechStackStateSchema, TechDebtStateSchema, NamingContractStateSchema, } from './types.js';
|
|
7
7
|
import { CLI_NAME } from '../branding.js';
|
|
8
|
-
import {
|
|
8
|
+
import { CURRENT_SDD_STATE_VERSION, buildSddContractConfig } from './contract.js';
|
|
9
|
+
import { DEFAULT_CURATED_SKILL_CATALOG, BUILT_IN_SDD_SKILLS, buildCuratedBundlesMarkdown, buildCuratedBundlesCurationData, } from './default-skills.js';
|
|
9
10
|
import { buildSddInternalReadme, PROMPT_00_COMECE_POR_AQUI_MD, PROMPT_01_INGESTAO_DEPOSITO_MD, PROMPT_02_NORMALIZAR_PLANEJAMENTO_MD, PROMPT_03_EXECUCAO_FEATURE_MD, PROMPT_04_CONSOLIDACAO_FINALIZE_MD, PROMPTS_README_MD, TEMPLATE_1_SPEC_MD, TEMPLATE_2_PLAN_MD, TEMPLATE_QUALITY_MD, TEMPLATE_3_TASKS_MD, TEMPLATE_4_CHANGELOG_MD, } from './default-bootstrap-files.js';
|
|
10
11
|
import { SddWriteTransaction } from './transaction.js';
|
|
11
12
|
const LEGACY_LAYOUT_FOLDERS = {
|
|
@@ -38,13 +39,13 @@ const PT_BR_LAYOUT_FOLDERS = {
|
|
|
38
39
|
active: 'execucao',
|
|
39
40
|
archived: 'arquivados',
|
|
40
41
|
};
|
|
41
|
-
function skillSubfoldersForLayout(layout) {
|
|
42
|
+
export function skillSubfoldersForLayout(layout) {
|
|
42
43
|
if (layout === 'pt-BR') {
|
|
43
44
|
return { curated: 'skills', bundles: 'pacotes' };
|
|
44
45
|
}
|
|
45
46
|
return { curated: 'curated', bundles: 'bundles' };
|
|
46
47
|
}
|
|
47
|
-
function defaultFoldersForLayout(layout) {
|
|
48
|
+
export function defaultFoldersForLayout(layout) {
|
|
48
49
|
if (layout === 'pt-BR') {
|
|
49
50
|
return { ...PT_BR_LAYOUT_FOLDERS };
|
|
50
51
|
}
|
|
@@ -95,10 +96,10 @@ const CANONICAL_FOLDER_OPTIONS = {
|
|
|
95
96
|
archived: ['arquivados'],
|
|
96
97
|
},
|
|
97
98
|
};
|
|
98
|
-
function isRecord(value) {
|
|
99
|
+
export function isRecord(value) {
|
|
99
100
|
return !!value && typeof value === 'object' && !Array.isArray(value);
|
|
100
101
|
}
|
|
101
|
-
function mergeRuntimeConfig(raw) {
|
|
102
|
+
export function mergeRuntimeConfig(raw) {
|
|
102
103
|
if (!isRecord(raw)) {
|
|
103
104
|
return {
|
|
104
105
|
...DEFAULT_SDD_CONFIG,
|
|
@@ -163,7 +164,7 @@ function mergeRuntimeConfig(raw) {
|
|
|
163
164
|
},
|
|
164
165
|
};
|
|
165
166
|
}
|
|
166
|
-
function validateRuntimeConfig(config) {
|
|
167
|
+
export function validateRuntimeConfig(config) {
|
|
167
168
|
const allowed = CANONICAL_FOLDER_OPTIONS[config.layout];
|
|
168
169
|
const invalidEntries = Object.entries(config.folders).flatMap(([key, value]) => {
|
|
169
170
|
const folderKey = key;
|
|
@@ -179,7 +180,7 @@ function validateRuntimeConfig(config) {
|
|
|
179
180
|
throw new Error(`Configuracao SDD invalida em .sdd/config.yaml: folders fora do canonico para layout ${config.layout}: ${invalidEntries.join('; ')}`);
|
|
180
181
|
}
|
|
181
182
|
}
|
|
182
|
-
function defaultRuntimeConfig() {
|
|
183
|
+
export function defaultRuntimeConfig() {
|
|
183
184
|
return {
|
|
184
185
|
...DEFAULT_SDD_CONFIG,
|
|
185
186
|
folders: { ...DEFAULT_SDD_CONFIG.folders },
|
|
@@ -187,7 +188,7 @@ function defaultRuntimeConfig() {
|
|
|
187
188
|
views: { autoRender: DEFAULT_SDD_CONFIG.views.autoRender },
|
|
188
189
|
};
|
|
189
190
|
}
|
|
190
|
-
async function fileExists(filePath) {
|
|
191
|
+
export async function fileExists(filePath) {
|
|
191
192
|
try {
|
|
192
193
|
await fs.access(filePath);
|
|
193
194
|
return true;
|
|
@@ -199,7 +200,7 @@ async function fileExists(filePath) {
|
|
|
199
200
|
async function ensureDir(dirPath) {
|
|
200
201
|
await fs.mkdir(dirPath, { recursive: true });
|
|
201
202
|
}
|
|
202
|
-
async function firstExistingFile(paths) {
|
|
203
|
+
export async function firstExistingFile(paths) {
|
|
203
204
|
for (const filePath of paths) {
|
|
204
205
|
if (await fileExists(filePath)) {
|
|
205
206
|
return filePath;
|
|
@@ -207,17 +208,27 @@ async function firstExistingFile(paths) {
|
|
|
207
208
|
}
|
|
208
209
|
return null;
|
|
209
210
|
}
|
|
210
|
-
async function readYamlObject(filePath) {
|
|
211
|
+
export async function readYamlObject(filePath) {
|
|
211
212
|
const parsed = parseYaml(await fs.readFile(filePath, 'utf-8'));
|
|
212
213
|
return isRecord(parsed) ? parsed : {};
|
|
213
214
|
}
|
|
214
|
-
|
|
215
|
+
const LEGACY_GENERATED_BY_PREFIXES = [`${'open'}sdd`, `${'open'}spec`];
|
|
216
|
+
export function isLegacyGeneratedBy(value) {
|
|
217
|
+
if (typeof value !== 'string')
|
|
218
|
+
return false;
|
|
219
|
+
return LEGACY_GENERATED_BY_PREFIXES.some((prefix) => new RegExp(`^${prefix}\\s`, 'i').test(value));
|
|
220
|
+
}
|
|
221
|
+
export function buildSddConfigDocument(existing, config) {
|
|
215
222
|
const next = { ...existing };
|
|
216
223
|
delete next.sdd;
|
|
217
224
|
next.version = typeof next.version === 'number' ? next.version : 1;
|
|
218
|
-
|
|
225
|
+
const stateVersion = typeof next.state_version === 'number' ? next.state_version : CURRENT_SDD_STATE_VERSION;
|
|
226
|
+
next.state_version = stateVersion;
|
|
227
|
+
if (stateVersion >= CURRENT_SDD_STATE_VERSION) {
|
|
228
|
+
next.sdd_contract = buildSddContractConfig();
|
|
229
|
+
}
|
|
219
230
|
next.generatedBy =
|
|
220
|
-
typeof next.generatedBy === 'string' && !next.generatedBy
|
|
231
|
+
typeof next.generatedBy === 'string' && !isLegacyGeneratedBy(next.generatedBy)
|
|
221
232
|
? next.generatedBy
|
|
222
233
|
: `${CLI_NAME} sdd init`;
|
|
223
234
|
next.meta_evolution = isRecord(next.meta_evolution)
|
|
@@ -237,10 +248,10 @@ function buildSddConfigDocument(existing, config) {
|
|
|
237
248
|
next.views = { autoRender: config.views.autoRender };
|
|
238
249
|
return next;
|
|
239
250
|
}
|
|
240
|
-
async function
|
|
251
|
+
export async function removeSddRuntimeConfigFromLegacySpecConfig(projectRoot) {
|
|
241
252
|
const legacyConfigPath = await firstExistingFile([
|
|
242
|
-
|
|
243
|
-
|
|
253
|
+
resolveLegacySpecLiveSubpath(projectRoot, 'config.yaml'),
|
|
254
|
+
resolveLegacySpecLiveSubpath(projectRoot, 'config.yml'),
|
|
244
255
|
]);
|
|
245
256
|
if (!legacyConfigPath) {
|
|
246
257
|
return;
|
|
@@ -263,8 +274,8 @@ export async function loadProjectSddConfig(projectRoot) {
|
|
|
263
274
|
return config;
|
|
264
275
|
}
|
|
265
276
|
const legacyConfigPath = await firstExistingFile([
|
|
266
|
-
|
|
267
|
-
|
|
277
|
+
resolveLegacySpecLiveSubpath(projectRoot, 'config.yaml'),
|
|
278
|
+
resolveLegacySpecLiveSubpath(projectRoot, 'config.yml'),
|
|
268
279
|
]);
|
|
269
280
|
if (legacyConfigPath) {
|
|
270
281
|
const legacyRoot = await readYamlObject(legacyConfigPath);
|
|
@@ -289,8 +300,8 @@ export async function upsertProjectSddConfig(projectRoot, overrides) {
|
|
|
289
300
|
}
|
|
290
301
|
else {
|
|
291
302
|
const legacyConfigPath = await firstExistingFile([
|
|
292
|
-
|
|
293
|
-
|
|
303
|
+
resolveLegacySpecLiveSubpath(projectRoot, 'config.yaml'),
|
|
304
|
+
resolveLegacySpecLiveSubpath(projectRoot, 'config.yml'),
|
|
294
305
|
]);
|
|
295
306
|
if (legacyConfigPath) {
|
|
296
307
|
const legacyRoot = await readYamlObject(legacyConfigPath);
|
|
@@ -310,7 +321,7 @@ export async function upsertProjectSddConfig(projectRoot, overrides) {
|
|
|
310
321
|
}
|
|
311
322
|
validateRuntimeConfig(mergedSdd);
|
|
312
323
|
await fs.writeFile(configPath, stringifyYaml(buildSddConfigDocument(rootConfig, mergedSdd)), 'utf-8');
|
|
313
|
-
await
|
|
324
|
+
await removeSddRuntimeConfigFromLegacySpecConfig(projectRoot);
|
|
314
325
|
return mergedSdd;
|
|
315
326
|
}
|
|
316
327
|
export function resolveSddPaths(projectRoot, config) {
|
|
@@ -431,13 +442,13 @@ async function writeFileIfMissing(filePath, content) {
|
|
|
431
442
|
await fs.mkdir(path.dirname(filePath), { recursive: true });
|
|
432
443
|
await fs.writeFile(filePath, content, 'utf-8');
|
|
433
444
|
}
|
|
434
|
-
function isBuiltInSkillSourceTree(definition) {
|
|
445
|
+
export function isBuiltInSkillSourceTree(definition) {
|
|
435
446
|
return (typeof definition === 'object' &&
|
|
436
447
|
definition !== null &&
|
|
437
448
|
'kind' in definition &&
|
|
438
449
|
definition.kind === 'source-tree');
|
|
439
450
|
}
|
|
440
|
-
function adaptSkillContentForLayout(content, paths, config) {
|
|
451
|
+
export function adaptSkillContentForLayout(content, paths, config) {
|
|
441
452
|
if (config.layout === 'en-US') {
|
|
442
453
|
return content;
|
|
443
454
|
}
|
|
@@ -450,7 +461,7 @@ function adaptSkillContentForLayout(content, paths, config) {
|
|
|
450
461
|
.replaceAll('/attachments/', '/anexos/')
|
|
451
462
|
.replaceAll('/legacy/', '/legado/');
|
|
452
463
|
}
|
|
453
|
-
async function listTreeFiles(rootDir) {
|
|
464
|
+
export async function listTreeFiles(rootDir) {
|
|
454
465
|
async function walk(currentDir, relativePrefix) {
|
|
455
466
|
const entries = await fs.readdir(currentDir, { withFileTypes: true });
|
|
456
467
|
const files = [];
|
|
@@ -474,7 +485,7 @@ async function listTreeFiles(rootDir) {
|
|
|
474
485
|
files.sort((a, b) => a.localeCompare(b));
|
|
475
486
|
return files;
|
|
476
487
|
}
|
|
477
|
-
async function resolveBuiltInSourceRoot(paths, sourceRoot) {
|
|
488
|
+
export async function resolveBuiltInSourceRoot(paths, sourceRoot) {
|
|
478
489
|
const normalized = sourceRoot.trim();
|
|
479
490
|
if (!normalized) {
|
|
480
491
|
return null;
|
|
@@ -495,7 +506,7 @@ async function resolveBuiltInSourceRoot(paths, sourceRoot) {
|
|
|
495
506
|
}
|
|
496
507
|
return null;
|
|
497
508
|
}
|
|
498
|
-
async function materializeBuiltInSkill(paths, config, skillId, definition) {
|
|
509
|
+
export async function materializeBuiltInSkill(paths, config, skillId, definition) {
|
|
499
510
|
if (typeof definition === 'string') {
|
|
500
511
|
const materializedContent = adaptSkillContentForLayout(definition, paths, config);
|
|
501
512
|
await writeFileIfMissing(path.join(paths.skillsCuratedDir, skillId, 'SKILL.md'), materializedContent);
|
|
@@ -523,7 +534,7 @@ async function materializeBuiltInSkill(paths, config, skillId, definition) {
|
|
|
523
534
|
await writeFileIfMissing(targetFile, adaptSkillContentForLayout(content, paths, config));
|
|
524
535
|
}
|
|
525
536
|
}
|
|
526
|
-
async function ensureCuratedSkillCatalog(filePath) {
|
|
537
|
+
export async function ensureCuratedSkillCatalog(filePath) {
|
|
527
538
|
if (!(await fileExists(filePath))) {
|
|
528
539
|
await fs.writeFile(filePath, stringifyYaml(DEFAULT_CURATED_SKILL_CATALOG), 'utf-8');
|
|
529
540
|
return;
|
|
@@ -573,7 +584,8 @@ async function ensureCuratedSkillCatalog(filePath) {
|
|
|
573
584
|
export async function ensureBaseFiles(paths, config) {
|
|
574
585
|
await writeYamlIfMissing(paths.configFile, {
|
|
575
586
|
version: 1,
|
|
576
|
-
state_version:
|
|
587
|
+
state_version: CURRENT_SDD_STATE_VERSION,
|
|
588
|
+
sdd_contract: buildSddContractConfig(),
|
|
577
589
|
generatedBy: `${CLI_NAME} sdd init`,
|
|
578
590
|
meta_evolution: {
|
|
579
591
|
enabled: true,
|
|
@@ -615,8 +627,8 @@ export async function ensureBaseFiles(paths, config) {
|
|
|
615
627
|
version: 1,
|
|
616
628
|
default_skills: ['architecture', 'concise-planning', 'context-window-management'],
|
|
617
629
|
routes: [
|
|
618
|
-
{ domain: 'backend', skills: ['architecture', 'api-design-principles'], bundles: [] },
|
|
619
|
-
{ domain: 'api', skills: ['api
|
|
630
|
+
{ domain: 'backend', skills: ['devtrack-api', 'architecture', 'api-design-principles'], bundles: ['architecture-backend'] },
|
|
631
|
+
{ domain: 'api', skills: ['devtrack-api', 'api-design-principles'], bundles: ['architecture-backend'] },
|
|
620
632
|
{ domain: 'python', skills: ['api-clean-flask-langgraph', 'architecture'], bundles: ['python-agentic-backend'] },
|
|
621
633
|
{ domain: 'flask', skills: ['api-clean-flask-langgraph'], bundles: ['python-agentic-backend'] },
|
|
622
634
|
{ domain: 'nestjs', skills: ['devtrack-api', 'architecture'], bundles: ['architecture-backend'] },
|
|
@@ -642,6 +654,11 @@ export async function ensureBaseFiles(paths, config) {
|
|
|
642
654
|
prompts: 'prompts',
|
|
643
655
|
}));
|
|
644
656
|
await writeFileIfMissing(path.join(paths.skillsBundlesDir, config.layout === 'en-US' ? 'curation-en-us.md' : 'curadoria-pt-br.md'), buildCuratedBundlesMarkdown());
|
|
657
|
+
// EPIC-0072 wave 1 (FEAT-0284) — emit a schema-validated YAML form alongside
|
|
658
|
+
// the Markdown view so consumers can read typed data without scraping headings.
|
|
659
|
+
// The .md remains the human-readable view; the .yaml is the structured contract.
|
|
660
|
+
const curationLayout = config.layout === 'pt-BR' ? 'pt-BR' : 'en-US';
|
|
661
|
+
await writeFileIfMissing(path.join(paths.skillsBundlesDir, config.layout === 'en-US' ? 'curation-en-us.yaml' : 'curadoria-pt-br.yaml'), stringifyYaml(buildCuratedBundlesCurationData(curationLayout)));
|
|
645
662
|
for (const [skillId, definition] of Object.entries(BUILT_IN_SDD_SKILLS)) {
|
|
646
663
|
await materializeBuiltInSkill(paths, config, skillId, definition);
|
|
647
664
|
}
|
|
@@ -711,8 +728,8 @@ export async function loadStateSnapshot(paths, config) {
|
|
|
711
728
|
version: 1,
|
|
712
729
|
default_skills: ['architecture', 'concise-planning', 'context-window-management'],
|
|
713
730
|
routes: [
|
|
714
|
-
{ domain: 'backend', skills: ['architecture', 'api-design-principles'], bundles: [] },
|
|
715
|
-
{ domain: 'api', skills: ['api
|
|
731
|
+
{ domain: 'backend', skills: ['devtrack-api', 'architecture', 'api-design-principles'], bundles: ['architecture-backend'] },
|
|
732
|
+
{ domain: 'api', skills: ['devtrack-api', 'api-design-principles'], bundles: ['architecture-backend'] },
|
|
716
733
|
{ domain: 'python', skills: ['api-clean-flask-langgraph', 'architecture'], bundles: ['python-agentic-backend'] },
|
|
717
734
|
{ domain: 'flask', skills: ['api-clean-flask-langgraph'], bundles: ['python-agentic-backend'] },
|
|
718
735
|
{ domain: 'nestjs', skills: ['devtrack-api', 'architecture'], bundles: ['architecture-backend'] },
|
|
@@ -814,6 +831,14 @@ export function defaultNamingContractState() {
|
|
|
814
831
|
'.sdd/discovery/**',
|
|
815
832
|
'test/core/sdd/fixtures/**',
|
|
816
833
|
];
|
|
834
|
+
const legacyPrefix = 'open';
|
|
835
|
+
const legacySpec = `${legacyPrefix}spec`;
|
|
836
|
+
const legacySdd = `${legacyPrefix}sdd`;
|
|
837
|
+
const legacyTitlePrefix = `${legacyPrefix[0].toUpperCase()}${legacyPrefix.slice(1)}`;
|
|
838
|
+
const legacySpecTitle = `${legacyTitlePrefix}Spec`;
|
|
839
|
+
const legacySddTitle = `${legacyTitlePrefix}SDD`;
|
|
840
|
+
const legacySpecCamel = `${legacyPrefix}Spec`;
|
|
841
|
+
const legacySddCamel = `${legacyPrefix}SDD`;
|
|
817
842
|
return {
|
|
818
843
|
version: 1,
|
|
819
844
|
product_name: 'CodeSDD',
|
|
@@ -830,13 +855,13 @@ export function defaultNamingContractState() {
|
|
|
830
855
|
package_name: '@devtrack-solution/codesdd',
|
|
831
856
|
},
|
|
832
857
|
forbidden_terms: [
|
|
833
|
-
{ term:
|
|
834
|
-
{ term:
|
|
835
|
-
{ term:
|
|
858
|
+
{ term: legacySpec, scope: 'all', severity: 'warning', allowlist_paths: [...sharedAllowlist] },
|
|
859
|
+
{ term: legacySpecTitle, scope: 'all', severity: 'warning', allowlist_paths: [...sharedAllowlist] },
|
|
860
|
+
{ term: legacySpecCamel, scope: 'all', severity: 'warning', allowlist_paths: [...sharedAllowlist] },
|
|
836
861
|
],
|
|
837
862
|
allowlist: [
|
|
838
863
|
{ path_pattern: '.sdd/archived/**', reason: 'Archived SDD artifacts retain legacy terminology', owner: 'sdd-core' },
|
|
839
|
-
{ path_pattern: '.sdd/sources/legacy/spec-corpus/**', reason: '
|
|
864
|
+
{ path_pattern: '.sdd/sources/legacy/spec-corpus/**', reason: 'Imported legacy corpus sources', owner: 'sdd-core' },
|
|
840
865
|
{ path_pattern: 'node_modules/**', reason: 'Third-party dependencies', owner: 'sdd-core' },
|
|
841
866
|
{ path_pattern: 'dist/**', reason: 'Build output', owner: 'sdd-core' },
|
|
842
867
|
{ path_pattern: 'coverage/**', reason: 'Test coverage artifacts', owner: 'sdd-core' },
|
|
@@ -844,7 +869,7 @@ export function defaultNamingContractState() {
|
|
|
844
869
|
],
|
|
845
870
|
rename_rules: [
|
|
846
871
|
{
|
|
847
|
-
from:
|
|
872
|
+
from: legacySddTitle,
|
|
848
873
|
to: 'CodeSDD',
|
|
849
874
|
scope: 'all',
|
|
850
875
|
phase: 'identity-introduction',
|
|
@@ -853,7 +878,7 @@ export function defaultNamingContractState() {
|
|
|
853
878
|
path_globs: ['README.md', 'docs/**', 'src/**', 'test/**', '.sdd/state/**'],
|
|
854
879
|
},
|
|
855
880
|
{
|
|
856
|
-
from:
|
|
881
|
+
from: legacySdd,
|
|
857
882
|
to: 'codesdd',
|
|
858
883
|
scope: 'all',
|
|
859
884
|
phase: 'identity-introduction',
|
|
@@ -862,7 +887,7 @@ export function defaultNamingContractState() {
|
|
|
862
887
|
path_globs: ['package.json', 'bin/**', 'src/**', 'test/**', 'docs/**'],
|
|
863
888
|
},
|
|
864
889
|
{
|
|
865
|
-
from:
|
|
890
|
+
from: `@devtrack-solution/${legacySdd}-cli`,
|
|
866
891
|
to: '@devtrack-solution/codesdd',
|
|
867
892
|
scope: 'all',
|
|
868
893
|
phase: 'package-identity',
|
|
@@ -874,7 +899,7 @@ export function defaultNamingContractState() {
|
|
|
874
899
|
zero_residue_gate: {
|
|
875
900
|
enabled: true,
|
|
876
901
|
enforcement: 'warning',
|
|
877
|
-
terms: [
|
|
902
|
+
terms: [legacySpec, legacySpecTitle, legacySpecCamel, legacySdd, legacySddTitle, legacySddCamel],
|
|
878
903
|
allowlist_paths: [...sharedAllowlist],
|
|
879
904
|
removal_phase: 'compatibility-shutdown',
|
|
880
905
|
},
|
|
@@ -34,26 +34,26 @@ export declare const StructuralFindingSeveritySchema: z.ZodEnum<{
|
|
|
34
34
|
}>;
|
|
35
35
|
export declare const StructuralFindingCategorySchema: z.ZodEnum<{
|
|
36
36
|
metadata: "metadata";
|
|
37
|
+
integrity: "integrity";
|
|
38
|
+
naming: "naming";
|
|
39
|
+
references: "references";
|
|
37
40
|
lifecycle: "lifecycle";
|
|
38
41
|
render: "render";
|
|
39
|
-
references: "references";
|
|
40
|
-
integrity: "integrity";
|
|
41
42
|
boundary: "boundary";
|
|
42
|
-
naming: "naming";
|
|
43
43
|
}>;
|
|
44
44
|
export declare const StructuralSanitizerDispositionSchema: z.ZodEnum<{
|
|
45
|
+
blocked: "blocked";
|
|
45
46
|
manual: "manual";
|
|
46
47
|
safe: "safe";
|
|
47
|
-
blocked: "blocked";
|
|
48
48
|
noop: "noop";
|
|
49
49
|
}>;
|
|
50
50
|
export declare const StructuralLifecycleStateTokenSchema: z.ZodEnum<{
|
|
51
51
|
done: "done";
|
|
52
|
+
ready: "ready";
|
|
53
|
+
blocked: "blocked";
|
|
52
54
|
planned: "planned";
|
|
53
55
|
in_progress: "in_progress";
|
|
54
56
|
archived: "archived";
|
|
55
|
-
blocked: "blocked";
|
|
56
|
-
ready: "ready";
|
|
57
57
|
}>;
|
|
58
58
|
export declare const StructuralNavigationNodeKindSchema: z.ZodEnum<{
|
|
59
59
|
epic: "epic";
|
|
@@ -102,17 +102,17 @@ export declare const StructuralTokenRegistrySchema: z.ZodObject<{
|
|
|
102
102
|
}>>;
|
|
103
103
|
finding_categories: z.ZodArray<z.ZodEnum<{
|
|
104
104
|
metadata: "metadata";
|
|
105
|
+
integrity: "integrity";
|
|
106
|
+
naming: "naming";
|
|
107
|
+
references: "references";
|
|
105
108
|
lifecycle: "lifecycle";
|
|
106
109
|
render: "render";
|
|
107
|
-
references: "references";
|
|
108
|
-
integrity: "integrity";
|
|
109
110
|
boundary: "boundary";
|
|
110
|
-
naming: "naming";
|
|
111
111
|
}>>;
|
|
112
112
|
sanitizer_dispositions: z.ZodArray<z.ZodEnum<{
|
|
113
|
+
blocked: "blocked";
|
|
113
114
|
manual: "manual";
|
|
114
115
|
safe: "safe";
|
|
115
|
-
blocked: "blocked";
|
|
116
116
|
noop: "noop";
|
|
117
117
|
}>>;
|
|
118
118
|
}, z.core.$strip>;
|
|
@@ -139,8 +139,8 @@ export declare const StructuralCommandInvocationSchema: z.ZodObject<{
|
|
|
139
139
|
}>;
|
|
140
140
|
mode: z.ZodEnum<{
|
|
141
141
|
apply: "apply";
|
|
142
|
-
dry_run: "dry_run";
|
|
143
142
|
read: "read";
|
|
143
|
+
dry_run: "dry_run";
|
|
144
144
|
}>;
|
|
145
145
|
args: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
146
146
|
}, z.core.$strip>;
|
|
@@ -149,12 +149,12 @@ export declare const StructuralFindingSchema: z.ZodObject<{
|
|
|
149
149
|
rule_id: z.ZodString;
|
|
150
150
|
category: z.ZodEnum<{
|
|
151
151
|
metadata: "metadata";
|
|
152
|
+
integrity: "integrity";
|
|
153
|
+
naming: "naming";
|
|
154
|
+
references: "references";
|
|
152
155
|
lifecycle: "lifecycle";
|
|
153
156
|
render: "render";
|
|
154
|
-
references: "references";
|
|
155
|
-
integrity: "integrity";
|
|
156
157
|
boundary: "boundary";
|
|
157
|
-
naming: "naming";
|
|
158
158
|
}>;
|
|
159
159
|
severity: z.ZodEnum<{
|
|
160
160
|
error: "error";
|
|
@@ -167,9 +167,9 @@ export declare const StructuralFindingSchema: z.ZodObject<{
|
|
|
167
167
|
location: z.ZodOptional<z.ZodString>;
|
|
168
168
|
sanitizer: z.ZodObject<{
|
|
169
169
|
disposition: z.ZodEnum<{
|
|
170
|
+
blocked: "blocked";
|
|
170
171
|
manual: "manual";
|
|
171
172
|
safe: "safe";
|
|
172
|
-
blocked: "blocked";
|
|
173
173
|
noop: "noop";
|
|
174
174
|
}>;
|
|
175
175
|
reason: z.ZodString;
|
|
@@ -186,12 +186,12 @@ export declare const StructuralDiagnosticReportSchema: z.ZodObject<{
|
|
|
186
186
|
rule_id: z.ZodString;
|
|
187
187
|
category: z.ZodEnum<{
|
|
188
188
|
metadata: "metadata";
|
|
189
|
+
integrity: "integrity";
|
|
190
|
+
naming: "naming";
|
|
191
|
+
references: "references";
|
|
189
192
|
lifecycle: "lifecycle";
|
|
190
193
|
render: "render";
|
|
191
|
-
references: "references";
|
|
192
|
-
integrity: "integrity";
|
|
193
194
|
boundary: "boundary";
|
|
194
|
-
naming: "naming";
|
|
195
195
|
}>;
|
|
196
196
|
severity: z.ZodEnum<{
|
|
197
197
|
error: "error";
|
|
@@ -204,9 +204,9 @@ export declare const StructuralDiagnosticReportSchema: z.ZodObject<{
|
|
|
204
204
|
location: z.ZodOptional<z.ZodString>;
|
|
205
205
|
sanitizer: z.ZodObject<{
|
|
206
206
|
disposition: z.ZodEnum<{
|
|
207
|
+
blocked: "blocked";
|
|
207
208
|
manual: "manual";
|
|
208
209
|
safe: "safe";
|
|
209
|
-
blocked: "blocked";
|
|
210
210
|
noop: "noop";
|
|
211
211
|
}>;
|
|
212
212
|
reason: z.ZodString;
|
|
@@ -223,12 +223,12 @@ export declare const StructuralDiagnosticReportSchema: z.ZodObject<{
|
|
|
223
223
|
}> & z.core.$partial, z.ZodNumber>>;
|
|
224
224
|
by_category: z.ZodDefault<z.ZodRecord<z.ZodEnum<{
|
|
225
225
|
metadata: "metadata";
|
|
226
|
+
integrity: "integrity";
|
|
227
|
+
naming: "naming";
|
|
228
|
+
references: "references";
|
|
226
229
|
lifecycle: "lifecycle";
|
|
227
230
|
render: "render";
|
|
228
|
-
references: "references";
|
|
229
|
-
integrity: "integrity";
|
|
230
231
|
boundary: "boundary";
|
|
231
|
-
naming: "naming";
|
|
232
232
|
}> & z.core.$partial, z.ZodNumber>>;
|
|
233
233
|
}, z.core.$strip>;
|
|
234
234
|
}, z.core.$strip>;
|
|
@@ -236,18 +236,18 @@ export declare const StructuralSanitizerActionSchema: z.ZodObject<{
|
|
|
236
236
|
action_id: z.ZodString;
|
|
237
237
|
finding_id: z.ZodString;
|
|
238
238
|
disposition: z.ZodEnum<{
|
|
239
|
+
blocked: "blocked";
|
|
239
240
|
manual: "manual";
|
|
240
241
|
safe: "safe";
|
|
241
|
-
blocked: "blocked";
|
|
242
242
|
noop: "noop";
|
|
243
243
|
}>;
|
|
244
244
|
operation: z.ZodEnum<{
|
|
245
|
+
skip: "skip";
|
|
245
246
|
mkdir: "mkdir";
|
|
246
247
|
render: "render";
|
|
247
248
|
move: "move";
|
|
248
249
|
register: "register";
|
|
249
250
|
manual_review: "manual_review";
|
|
250
|
-
skip: "skip";
|
|
251
251
|
}>;
|
|
252
252
|
from_path: z.ZodOptional<z.ZodString>;
|
|
253
253
|
to_path: z.ZodOptional<z.ZodString>;
|
|
@@ -270,24 +270,24 @@ export declare const StructuralSanitizerTransactionOperationSchema: z.ZodObject<
|
|
|
270
270
|
action_id: z.ZodString;
|
|
271
271
|
finding_id: z.ZodString;
|
|
272
272
|
disposition: z.ZodEnum<{
|
|
273
|
+
blocked: "blocked";
|
|
273
274
|
manual: "manual";
|
|
274
275
|
safe: "safe";
|
|
275
|
-
blocked: "blocked";
|
|
276
276
|
noop: "noop";
|
|
277
277
|
}>;
|
|
278
278
|
operation: z.ZodEnum<{
|
|
279
|
+
skip: "skip";
|
|
279
280
|
mkdir: "mkdir";
|
|
280
281
|
render: "render";
|
|
281
282
|
move: "move";
|
|
282
283
|
register: "register";
|
|
283
284
|
manual_review: "manual_review";
|
|
284
|
-
skip: "skip";
|
|
285
285
|
}>;
|
|
286
286
|
status: z.ZodEnum<{
|
|
287
|
-
skipped: "skipped";
|
|
288
|
-
failed: "failed";
|
|
289
287
|
applied: "applied";
|
|
290
288
|
rolled_back: "rolled_back";
|
|
289
|
+
failed: "failed";
|
|
290
|
+
skipped: "skipped";
|
|
291
291
|
}>;
|
|
292
292
|
from_path: z.ZodOptional<z.ZodString>;
|
|
293
293
|
to_path: z.ZodOptional<z.ZodString>;
|
|
@@ -325,24 +325,24 @@ export declare const StructuralSanitizerTransactionManifestSchema: z.ZodObject<{
|
|
|
325
325
|
action_id: z.ZodString;
|
|
326
326
|
finding_id: z.ZodString;
|
|
327
327
|
disposition: z.ZodEnum<{
|
|
328
|
+
blocked: "blocked";
|
|
328
329
|
manual: "manual";
|
|
329
330
|
safe: "safe";
|
|
330
|
-
blocked: "blocked";
|
|
331
331
|
noop: "noop";
|
|
332
332
|
}>;
|
|
333
333
|
operation: z.ZodEnum<{
|
|
334
|
+
skip: "skip";
|
|
334
335
|
mkdir: "mkdir";
|
|
335
336
|
render: "render";
|
|
336
337
|
move: "move";
|
|
337
338
|
register: "register";
|
|
338
339
|
manual_review: "manual_review";
|
|
339
|
-
skip: "skip";
|
|
340
340
|
}>;
|
|
341
341
|
status: z.ZodEnum<{
|
|
342
|
-
skipped: "skipped";
|
|
343
|
-
failed: "failed";
|
|
344
342
|
applied: "applied";
|
|
345
343
|
rolled_back: "rolled_back";
|
|
344
|
+
failed: "failed";
|
|
345
|
+
skipped: "skipped";
|
|
346
346
|
}>;
|
|
347
347
|
from_path: z.ZodOptional<z.ZodString>;
|
|
348
348
|
to_path: z.ZodOptional<z.ZodString>;
|
|
@@ -382,18 +382,18 @@ export declare const StructuralSanitizerReportSchema: z.ZodObject<{
|
|
|
382
382
|
action_id: z.ZodString;
|
|
383
383
|
finding_id: z.ZodString;
|
|
384
384
|
disposition: z.ZodEnum<{
|
|
385
|
+
blocked: "blocked";
|
|
385
386
|
manual: "manual";
|
|
386
387
|
safe: "safe";
|
|
387
|
-
blocked: "blocked";
|
|
388
388
|
noop: "noop";
|
|
389
389
|
}>;
|
|
390
390
|
operation: z.ZodEnum<{
|
|
391
|
+
skip: "skip";
|
|
391
392
|
mkdir: "mkdir";
|
|
392
393
|
render: "render";
|
|
393
394
|
move: "move";
|
|
394
395
|
register: "register";
|
|
395
396
|
manual_review: "manual_review";
|
|
396
|
-
skip: "skip";
|
|
397
397
|
}>;
|
|
398
398
|
from_path: z.ZodOptional<z.ZodString>;
|
|
399
399
|
to_path: z.ZodOptional<z.ZodString>;
|
|
@@ -403,18 +403,18 @@ export declare const StructuralSanitizerReportSchema: z.ZodObject<{
|
|
|
403
403
|
action_id: z.ZodString;
|
|
404
404
|
finding_id: z.ZodString;
|
|
405
405
|
disposition: z.ZodEnum<{
|
|
406
|
+
blocked: "blocked";
|
|
406
407
|
manual: "manual";
|
|
407
408
|
safe: "safe";
|
|
408
|
-
blocked: "blocked";
|
|
409
409
|
noop: "noop";
|
|
410
410
|
}>;
|
|
411
411
|
operation: z.ZodEnum<{
|
|
412
|
+
skip: "skip";
|
|
412
413
|
mkdir: "mkdir";
|
|
413
414
|
render: "render";
|
|
414
415
|
move: "move";
|
|
415
416
|
register: "register";
|
|
416
417
|
manual_review: "manual_review";
|
|
417
|
-
skip: "skip";
|
|
418
418
|
}>;
|
|
419
419
|
from_path: z.ZodOptional<z.ZodString>;
|
|
420
420
|
to_path: z.ZodOptional<z.ZodString>;
|
|
@@ -444,11 +444,11 @@ export declare const StructuralLifecycleEntrySchema: z.ZodObject<{
|
|
|
444
444
|
}>>;
|
|
445
445
|
state_token: z.ZodEnum<{
|
|
446
446
|
done: "done";
|
|
447
|
+
ready: "ready";
|
|
448
|
+
blocked: "blocked";
|
|
447
449
|
planned: "planned";
|
|
448
450
|
in_progress: "in_progress";
|
|
449
451
|
archived: "archived";
|
|
450
|
-
blocked: "blocked";
|
|
451
|
-
ready: "ready";
|
|
452
452
|
}>;
|
|
453
453
|
}, z.core.$strip>;
|
|
454
454
|
export declare const StructuralDirectoryStateMappingSchema: z.ZodObject<{
|
|
@@ -459,19 +459,19 @@ export declare const StructuralDirectoryStateMappingSchema: z.ZodObject<{
|
|
|
459
459
|
archived: "archived";
|
|
460
460
|
}>, z.ZodArray<z.ZodEnum<{
|
|
461
461
|
done: "done";
|
|
462
|
+
ready: "ready";
|
|
463
|
+
blocked: "blocked";
|
|
462
464
|
planned: "planned";
|
|
463
465
|
in_progress: "in_progress";
|
|
464
466
|
archived: "archived";
|
|
465
|
-
blocked: "blocked";
|
|
466
|
-
ready: "ready";
|
|
467
467
|
}>>>;
|
|
468
468
|
state_to_root: z.ZodRecord<z.ZodEnum<{
|
|
469
469
|
done: "done";
|
|
470
|
+
ready: "ready";
|
|
471
|
+
blocked: "blocked";
|
|
470
472
|
planned: "planned";
|
|
471
473
|
in_progress: "in_progress";
|
|
472
474
|
archived: "archived";
|
|
473
|
-
blocked: "blocked";
|
|
474
|
-
ready: "ready";
|
|
475
475
|
}>, z.ZodEnum<{
|
|
476
476
|
active: "active";
|
|
477
477
|
planned: "planned";
|