@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
|
@@ -11,8 +11,8 @@ export class PowerShellInstaller {
|
|
|
11
11
|
* Markers for PowerShell profile configuration management
|
|
12
12
|
*/
|
|
13
13
|
PROFILE_MARKERS = {
|
|
14
|
-
start: '#
|
|
15
|
-
end: '#
|
|
14
|
+
start: '# CODESDD:START',
|
|
15
|
+
end: '# CODESDD:END',
|
|
16
16
|
};
|
|
17
17
|
constructor(homeDir = os.homedir()) {
|
|
18
18
|
this.homeDir = homeDir;
|
|
@@ -69,7 +69,7 @@ export class PowerShellInstaller {
|
|
|
69
69
|
getInstallationPath() {
|
|
70
70
|
const profilePath = this.getProfilePath();
|
|
71
71
|
const profileDir = path.dirname(profilePath);
|
|
72
|
-
return path.join(profileDir, '
|
|
72
|
+
return path.join(profileDir, 'CodeSDDCompletion.ps1');
|
|
73
73
|
}
|
|
74
74
|
/**
|
|
75
75
|
* Backup an existing completion file if it exists
|
|
@@ -99,7 +99,7 @@ export class PowerShellInstaller {
|
|
|
99
99
|
*/
|
|
100
100
|
generateProfileConfig(scriptPath) {
|
|
101
101
|
return [
|
|
102
|
-
'#
|
|
102
|
+
'# CodeSDD shell completions configuration',
|
|
103
103
|
`if (Test-Path "${scriptPath}") {`,
|
|
104
104
|
` . "${scriptPath}"`,
|
|
105
105
|
'}',
|
|
@@ -131,15 +131,15 @@ export class PowerShellInstaller {
|
|
|
131
131
|
if (profileContent.includes(scriptLine)) {
|
|
132
132
|
continue; // Already configured, skip
|
|
133
133
|
}
|
|
134
|
-
// Add
|
|
135
|
-
const
|
|
134
|
+
// Add CodeSDD completion configuration with markers
|
|
135
|
+
const codesddBlock = [
|
|
136
136
|
'',
|
|
137
|
-
'#
|
|
137
|
+
'# CODESDD:START - CodeSDD completion (managed block, do not edit manually)',
|
|
138
138
|
scriptLine,
|
|
139
|
-
'#
|
|
139
|
+
'# CODESDD:END',
|
|
140
140
|
'',
|
|
141
141
|
].join('\n');
|
|
142
|
-
const newContent = profileContent +
|
|
142
|
+
const newContent = profileContent + codesddBlock;
|
|
143
143
|
await fs.writeFile(profilePath, newContent, 'utf-8');
|
|
144
144
|
anyConfigured = true;
|
|
145
145
|
}
|
|
@@ -169,12 +169,12 @@ export class PowerShellInstaller {
|
|
|
169
169
|
catch {
|
|
170
170
|
continue; // Profile doesn't exist, nothing to remove
|
|
171
171
|
}
|
|
172
|
-
// Remove
|
|
173
|
-
const startMarker = '#
|
|
174
|
-
const endMarker = '#
|
|
172
|
+
// Remove CODESDD:START -> CODESDD:END block
|
|
173
|
+
const startMarker = '# CODESDD:START';
|
|
174
|
+
const endMarker = '# CODESDD:END';
|
|
175
175
|
const startIndex = profileContent.indexOf(startMarker);
|
|
176
176
|
if (startIndex === -1) {
|
|
177
|
-
continue; // No
|
|
177
|
+
continue; // No CodeSDD block found
|
|
178
178
|
}
|
|
179
179
|
const endIndex = profileContent.indexOf(endMarker, startIndex);
|
|
180
180
|
if (endIndex === -1) {
|
|
@@ -279,7 +279,7 @@ export class PowerShellInstaller {
|
|
|
279
279
|
'',
|
|
280
280
|
`To enable completions, add the following to your PowerShell profile (${profilePath}):`,
|
|
281
281
|
'',
|
|
282
|
-
' # Source
|
|
282
|
+
' # Source CodeSDD completions',
|
|
283
283
|
` if (Test-Path "${installedPath}") {`,
|
|
284
284
|
` . "${installedPath}"`,
|
|
285
285
|
' }',
|
|
@@ -9,6 +9,7 @@ export declare class ZshInstaller {
|
|
|
9
9
|
* Markers for .zshrc configuration management
|
|
10
10
|
*/
|
|
11
11
|
private readonly ZSHRC_MARKERS;
|
|
12
|
+
private readonly ENV_SOURCE_MARKERS;
|
|
12
13
|
constructor(homeDir?: string);
|
|
13
14
|
/**
|
|
14
15
|
* Check if Oh My Zsh is installed
|
|
@@ -54,7 +55,12 @@ export declare class ZshInstaller {
|
|
|
54
55
|
*/
|
|
55
56
|
configureZshrc(completionsDir: string): Promise<boolean>;
|
|
56
57
|
/**
|
|
57
|
-
*
|
|
58
|
+
* Ensure ~/.zshrc sources ~/.codesdd/env.zsh through an idempotent marker block.
|
|
59
|
+
* This block contains only non-secret shell wiring.
|
|
60
|
+
*/
|
|
61
|
+
ensureCodesddEnvSource(envFilePath?: string): Promise<boolean>;
|
|
62
|
+
/**
|
|
63
|
+
* Check if .zshrc has CodeSDD configuration markers
|
|
58
64
|
*
|
|
59
65
|
* @returns true if .zshrc exists and has markers
|
|
60
66
|
*/
|
|
@@ -12,8 +12,12 @@ export class ZshInstaller {
|
|
|
12
12
|
* Markers for .zshrc configuration management
|
|
13
13
|
*/
|
|
14
14
|
ZSHRC_MARKERS = {
|
|
15
|
-
start: '#
|
|
16
|
-
end: '#
|
|
15
|
+
start: '# CODESDD:START',
|
|
16
|
+
end: '# CODESDD:END',
|
|
17
|
+
};
|
|
18
|
+
ENV_SOURCE_MARKERS = {
|
|
19
|
+
start: '# CODESDD:ENV:START',
|
|
20
|
+
end: '# CODESDD:ENV:END',
|
|
17
21
|
};
|
|
18
22
|
constructor(homeDir = os.homedir()) {
|
|
19
23
|
this.homeDir = homeDir;
|
|
@@ -51,14 +55,14 @@ export class ZshInstaller {
|
|
|
51
55
|
if (isOhMyZsh) {
|
|
52
56
|
// Oh My Zsh custom completions directory
|
|
53
57
|
return {
|
|
54
|
-
path: path.join(this.homeDir, '.oh-my-zsh', 'custom', 'completions', '
|
|
58
|
+
path: path.join(this.homeDir, '.oh-my-zsh', 'custom', 'completions', '_codesdd'),
|
|
55
59
|
isOhMyZsh: true,
|
|
56
60
|
};
|
|
57
61
|
}
|
|
58
62
|
else {
|
|
59
63
|
// Standard Zsh completions directory
|
|
60
64
|
return {
|
|
61
|
-
path: path.join(this.homeDir, '.zsh', 'completions', '
|
|
65
|
+
path: path.join(this.homeDir, '.zsh', 'completions', '_codesdd'),
|
|
62
66
|
isOhMyZsh: false,
|
|
63
67
|
};
|
|
64
68
|
}
|
|
@@ -99,7 +103,7 @@ export class ZshInstaller {
|
|
|
99
103
|
*/
|
|
100
104
|
generateZshrcConfig(completionsDir) {
|
|
101
105
|
return [
|
|
102
|
-
'#
|
|
106
|
+
'# CodeSDD shell completions configuration',
|
|
103
107
|
`fpath=("${completionsDir}" $fpath)`,
|
|
104
108
|
'autoload -Uz compinit',
|
|
105
109
|
'compinit',
|
|
@@ -114,7 +118,7 @@ export class ZshInstaller {
|
|
|
114
118
|
*/
|
|
115
119
|
async configureZshrc(completionsDir) {
|
|
116
120
|
// Check if auto-configuration is disabled
|
|
117
|
-
if (process.env.
|
|
121
|
+
if (process.env.CODESDD_NO_AUTO_CONFIG === '1') {
|
|
118
122
|
return false;
|
|
119
123
|
}
|
|
120
124
|
try {
|
|
@@ -136,7 +140,31 @@ export class ZshInstaller {
|
|
|
136
140
|
}
|
|
137
141
|
}
|
|
138
142
|
/**
|
|
139
|
-
*
|
|
143
|
+
* Ensure ~/.zshrc sources ~/.codesdd/env.zsh through an idempotent marker block.
|
|
144
|
+
* This block contains only non-secret shell wiring.
|
|
145
|
+
*/
|
|
146
|
+
async ensureCodesddEnvSource(envFilePath) {
|
|
147
|
+
if (process.env.CODESDD_NO_AUTO_CONFIG === '1') {
|
|
148
|
+
return false;
|
|
149
|
+
}
|
|
150
|
+
const targetEnvPath = envFilePath ?? path.join(this.homeDir, '.codesdd', 'env.zsh');
|
|
151
|
+
const zshrcPath = this.getZshrcPath();
|
|
152
|
+
const canWrite = await FileSystemUtils.canWriteFile(zshrcPath);
|
|
153
|
+
if (!canWrite) {
|
|
154
|
+
return false;
|
|
155
|
+
}
|
|
156
|
+
const sourceLine = `[[ -f "${targetEnvPath}" ]] && source "${targetEnvPath}"`;
|
|
157
|
+
try {
|
|
158
|
+
await FileSystemUtils.updateFileWithMarkers(zshrcPath, sourceLine, this.ENV_SOURCE_MARKERS.start, this.ENV_SOURCE_MARKERS.end);
|
|
159
|
+
return true;
|
|
160
|
+
}
|
|
161
|
+
catch (error) {
|
|
162
|
+
console.debug(`Unable to configure .zshrc env source block: ${error.message}`);
|
|
163
|
+
return false;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Check if .zshrc has CodeSDD configuration markers
|
|
140
168
|
*
|
|
141
169
|
* @returns true if .zshrc exists and has markers
|
|
142
170
|
*/
|
|
@@ -402,7 +430,7 @@ export class ZshInstaller {
|
|
|
402
430
|
messages.push(`Completion script removed from ${targetPath}`);
|
|
403
431
|
}
|
|
404
432
|
if (zshrcCleaned && !isOhMyZsh) {
|
|
405
|
-
messages.push('Removed
|
|
433
|
+
messages.push('Removed CodeSDD configuration from ~/.zshrc');
|
|
406
434
|
}
|
|
407
435
|
return {
|
|
408
436
|
success: true,
|
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
* Static template strings for Bash completion scripts.
|
|
3
3
|
* These are Bash-specific helper functions that never change.
|
|
4
4
|
*/
|
|
5
|
-
export declare const BASH_DYNAMIC_HELPERS = "# Dynamic completion helpers\n\
|
|
5
|
+
export declare const BASH_DYNAMIC_HELPERS = "# Dynamic completion helpers\n\n_codesdd_complete_changes() {\n local changes\n changes=$(codesdd __complete changes 2>/dev/null | cut -f1)\n COMPREPLY=($(compgen -W \"$changes\" -- \"$cur\"))\n}\n\n_codesdd_complete_specs() {\n local specs\n specs=$(codesdd __complete specs 2>/dev/null | cut -f1)\n COMPREPLY=($(compgen -W \"$specs\" -- \"$cur\"))\n}\n\n_codesdd_complete_items() {\n local items\n items=$(codesdd __complete changes 2>/dev/null | cut -f1; codesdd __complete specs 2>/dev/null | cut -f1)\n COMPREPLY=($(compgen -W \"$items\" -- \"$cur\"))\n}\n\n_codesdd_complete_schemas() {\n local schemas\n schemas=$(codesdd __complete schemas 2>/dev/null | cut -f1)\n COMPREPLY=($(compgen -W \"$schemas\" -- \"$cur\"))\n}";
|
|
6
6
|
//# sourceMappingURL=bash-templates.d.ts.map
|
|
@@ -4,21 +4,27 @@
|
|
|
4
4
|
*/
|
|
5
5
|
export const BASH_DYNAMIC_HELPERS = `# Dynamic completion helpers
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
_codesdd_complete_changes() {
|
|
8
8
|
local changes
|
|
9
|
-
changes=$(
|
|
9
|
+
changes=$(codesdd __complete changes 2>/dev/null | cut -f1)
|
|
10
10
|
COMPREPLY=($(compgen -W "$changes" -- "$cur"))
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
_codesdd_complete_specs() {
|
|
14
14
|
local specs
|
|
15
|
-
specs=$(
|
|
15
|
+
specs=$(codesdd __complete specs 2>/dev/null | cut -f1)
|
|
16
16
|
COMPREPLY=($(compgen -W "$specs" -- "$cur"))
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
_codesdd_complete_items() {
|
|
20
20
|
local items
|
|
21
|
-
items=$(
|
|
21
|
+
items=$(codesdd __complete changes 2>/dev/null | cut -f1; codesdd __complete specs 2>/dev/null | cut -f1)
|
|
22
22
|
COMPREPLY=($(compgen -W "$items" -- "$cur"))
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
_codesdd_complete_schemas() {
|
|
26
|
+
local schemas
|
|
27
|
+
schemas=$(codesdd __complete schemas 2>/dev/null | cut -f1)
|
|
28
|
+
COMPREPLY=($(compgen -W "$schemas" -- "$cur"))
|
|
23
29
|
}`;
|
|
24
30
|
//# sourceMappingURL=bash-templates.js.map
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
* Static template strings for Fish completion scripts.
|
|
3
3
|
* These are Fish-specific helper functions that never change.
|
|
4
4
|
*/
|
|
5
|
-
export declare const FISH_STATIC_HELPERS = "# Helper function to check if a subcommand is present\nfunction
|
|
6
|
-
export declare const FISH_DYNAMIC_HELPERS = "# Dynamic completion helpers\n\nfunction
|
|
5
|
+
export declare const FISH_STATIC_HELPERS = "# Helper function to check if a subcommand is present\nfunction __fish_codesdd_using_subcommand\n set -l cmd (commandline -opc)\n set -e cmd[1]\n for i in $argv\n if contains -- $i $cmd\n return 0\n end\n end\n return 1\nend\n\nfunction __fish_codesdd_no_subcommand\n set -l cmd (commandline -opc)\n test (count $cmd) -eq 1\nend\n\nfunction __fish_codesdd_command_count\n set -l cmd (commandline -opc)\n count $cmd\nend";
|
|
6
|
+
export declare const FISH_DYNAMIC_HELPERS = "# Dynamic completion helpers\n\nfunction __fish_codesdd_changes\n codesdd __complete changes 2>/dev/null | while read -l id desc\n printf '%s\\t%s\\n' \"$id\" \"$desc\"\n end\nend\n\nfunction __fish_codesdd_specs\n codesdd __complete specs 2>/dev/null | while read -l id desc\n printf '%s\\t%s\\n' \"$id\" \"$desc\"\n end\nend\n\nfunction __fish_codesdd_items\n __fish_codesdd_changes\n __fish_codesdd_specs\nend\n\nfunction __fish_codesdd_schemas\n codesdd __complete schemas 2>/dev/null | while read -l id desc\n printf '%s\\t%s\\n' \"$id\" \"$desc\"\n end\nend";
|
|
7
7
|
//# sourceMappingURL=fish-templates.d.ts.map
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* These are Fish-specific helper functions that never change.
|
|
4
4
|
*/
|
|
5
5
|
export const FISH_STATIC_HELPERS = `# Helper function to check if a subcommand is present
|
|
6
|
-
function
|
|
6
|
+
function __fish_codesdd_using_subcommand
|
|
7
7
|
set -l cmd (commandline -opc)
|
|
8
8
|
set -e cmd[1]
|
|
9
9
|
for i in $argv
|
|
@@ -14,26 +14,37 @@ function __fish_openspec_using_subcommand
|
|
|
14
14
|
return 1
|
|
15
15
|
end
|
|
16
16
|
|
|
17
|
-
function
|
|
17
|
+
function __fish_codesdd_no_subcommand
|
|
18
18
|
set -l cmd (commandline -opc)
|
|
19
19
|
test (count $cmd) -eq 1
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
function __fish_codesdd_command_count
|
|
23
|
+
set -l cmd (commandline -opc)
|
|
24
|
+
count $cmd
|
|
20
25
|
end`;
|
|
21
26
|
export const FISH_DYNAMIC_HELPERS = `# Dynamic completion helpers
|
|
22
27
|
|
|
23
|
-
function
|
|
24
|
-
|
|
28
|
+
function __fish_codesdd_changes
|
|
29
|
+
codesdd __complete changes 2>/dev/null | while read -l id desc
|
|
25
30
|
printf '%s\\t%s\\n' "$id" "$desc"
|
|
26
31
|
end
|
|
27
32
|
end
|
|
28
33
|
|
|
29
|
-
function
|
|
30
|
-
|
|
34
|
+
function __fish_codesdd_specs
|
|
35
|
+
codesdd __complete specs 2>/dev/null | while read -l id desc
|
|
31
36
|
printf '%s\\t%s\\n' "$id" "$desc"
|
|
32
37
|
end
|
|
33
38
|
end
|
|
34
39
|
|
|
35
|
-
function
|
|
36
|
-
|
|
37
|
-
|
|
40
|
+
function __fish_codesdd_items
|
|
41
|
+
__fish_codesdd_changes
|
|
42
|
+
__fish_codesdd_specs
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
function __fish_codesdd_schemas
|
|
46
|
+
codesdd __complete schemas 2>/dev/null | while read -l id desc
|
|
47
|
+
printf '%s\\t%s\\n' "$id" "$desc"
|
|
48
|
+
end
|
|
38
49
|
end`;
|
|
39
50
|
//# sourceMappingURL=fish-templates.js.map
|
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
* Static template strings for PowerShell completion scripts.
|
|
3
3
|
* These are PowerShell-specific helper functions that never change.
|
|
4
4
|
*/
|
|
5
|
-
export declare const POWERSHELL_DYNAMIC_HELPERS = "# Dynamic completion helpers\n\nfunction Get-
|
|
5
|
+
export declare const POWERSHELL_DYNAMIC_HELPERS = "# Dynamic completion helpers\n\nfunction Get-CodeSDDChanges {\n $output = codesdd __complete changes 2>$null\n if ($output) {\n $output | ForEach-Object {\n ($_ -split \"\\t\")[0]\n }\n }\n}\n\nfunction Get-CodeSDDSpecs {\n $output = codesdd __complete specs 2>$null\n if ($output) {\n $output | ForEach-Object {\n ($_ -split \"\\t\")[0]\n }\n }\n}\n\nfunction Get-CodeSDDSchemas {\n $output = codesdd __complete schemas 2>$null\n if ($output) {\n $output | ForEach-Object {\n ($_ -split \"\\t\")[0]\n }\n }\n}\n";
|
|
6
6
|
//# sourceMappingURL=powershell-templates.d.ts.map
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
*/
|
|
5
5
|
export const POWERSHELL_DYNAMIC_HELPERS = `# Dynamic completion helpers
|
|
6
6
|
|
|
7
|
-
function Get-
|
|
8
|
-
$output =
|
|
7
|
+
function Get-CodeSDDChanges {
|
|
8
|
+
$output = codesdd __complete changes 2>$null
|
|
9
9
|
if ($output) {
|
|
10
10
|
$output | ForEach-Object {
|
|
11
11
|
($_ -split "\\t")[0]
|
|
@@ -13,8 +13,17 @@ function Get-OpenSpecChanges {
|
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
function Get-
|
|
17
|
-
$output =
|
|
16
|
+
function Get-CodeSDDSpecs {
|
|
17
|
+
$output = codesdd __complete specs 2>$null
|
|
18
|
+
if ($output) {
|
|
19
|
+
$output | ForEach-Object {
|
|
20
|
+
($_ -split "\\t")[0]
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
function Get-CodeSDDSchemas {
|
|
26
|
+
$output = codesdd __complete schemas 2>$null
|
|
18
27
|
if ($output) {
|
|
19
28
|
$output | ForEach-Object {
|
|
20
29
|
($_ -split "\\t")[0]
|
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
* Static template strings for Zsh completion scripts.
|
|
3
3
|
* These are Zsh-specific helper functions that never change.
|
|
4
4
|
*/
|
|
5
|
-
export declare const ZSH_DYNAMIC_HELPERS = "# Dynamic completion helpers\n\n# Use
|
|
5
|
+
export declare const ZSH_DYNAMIC_HELPERS = "# Dynamic completion helpers\n\n# Use codesdd __complete to get available changes\n_codesdd_complete_changes() {\n local -a changes\n while IFS=$'\\t' read -r id desc; do\n changes+=(\"$id:$desc\")\n done < <(codesdd __complete changes 2>/dev/null)\n _describe \"change\" changes\n}\n\n# Use codesdd __complete to get available specs\n_codesdd_complete_specs() {\n local -a specs\n while IFS=$'\\t' read -r id desc; do\n specs+=(\"$id:$desc\")\n done < <(codesdd __complete specs 2>/dev/null)\n _describe \"spec\" specs\n}\n\n# Get both changes and specs\n_codesdd_complete_items() {\n local -a items\n while IFS=$'\\t' read -r id desc; do\n items+=(\"$id:$desc\")\n done < <(codesdd __complete changes 2>/dev/null)\n while IFS=$'\\t' read -r id desc; do\n items+=(\"$id:$desc\")\n done < <(codesdd __complete specs 2>/dev/null)\n _describe \"item\" items\n}\n\n# Use codesdd __complete to get available workflow schemas\n_codesdd_complete_schemas() {\n local -a schemas\n while IFS=$'\\t' read -r id desc; do\n schemas+=(\"$id:$desc\")\n done < <(codesdd __complete schemas 2>/dev/null)\n _describe \"schema\" schemas\n}";
|
|
6
6
|
//# sourceMappingURL=zsh-templates.d.ts.map
|
|
@@ -4,33 +4,42 @@
|
|
|
4
4
|
*/
|
|
5
5
|
export const ZSH_DYNAMIC_HELPERS = `# Dynamic completion helpers
|
|
6
6
|
|
|
7
|
-
# Use
|
|
8
|
-
|
|
7
|
+
# Use codesdd __complete to get available changes
|
|
8
|
+
_codesdd_complete_changes() {
|
|
9
9
|
local -a changes
|
|
10
10
|
while IFS=$'\\t' read -r id desc; do
|
|
11
11
|
changes+=("$id:$desc")
|
|
12
|
-
done < <(
|
|
12
|
+
done < <(codesdd __complete changes 2>/dev/null)
|
|
13
13
|
_describe "change" changes
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
# Use
|
|
17
|
-
|
|
16
|
+
# Use codesdd __complete to get available specs
|
|
17
|
+
_codesdd_complete_specs() {
|
|
18
18
|
local -a specs
|
|
19
19
|
while IFS=$'\\t' read -r id desc; do
|
|
20
20
|
specs+=("$id:$desc")
|
|
21
|
-
done < <(
|
|
21
|
+
done < <(codesdd __complete specs 2>/dev/null)
|
|
22
22
|
_describe "spec" specs
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
# Get both changes and specs
|
|
26
|
-
|
|
26
|
+
_codesdd_complete_items() {
|
|
27
27
|
local -a items
|
|
28
28
|
while IFS=$'\\t' read -r id desc; do
|
|
29
29
|
items+=("$id:$desc")
|
|
30
|
-
done < <(
|
|
30
|
+
done < <(codesdd __complete changes 2>/dev/null)
|
|
31
31
|
while IFS=$'\\t' read -r id desc; do
|
|
32
32
|
items+=("$id:$desc")
|
|
33
|
-
done < <(
|
|
33
|
+
done < <(codesdd __complete specs 2>/dev/null)
|
|
34
34
|
_describe "item" items
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
# Use codesdd __complete to get available workflow schemas
|
|
38
|
+
_codesdd_complete_schemas() {
|
|
39
|
+
local -a schemas
|
|
40
|
+
while IFS=$'\\t' read -r id desc; do
|
|
41
|
+
schemas+=("$id:$desc")
|
|
42
|
+
done < <(codesdd __complete schemas 2>/dev/null)
|
|
43
|
+
_describe "schema" schemas
|
|
35
44
|
}`;
|
|
36
45
|
//# sourceMappingURL=zsh-templates.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
/**
|
|
3
|
-
* Zod schema for global
|
|
3
|
+
* Zod schema for global CodeSDD configuration.
|
|
4
4
|
* Uses passthrough() to preserve unknown fields for forward compatibility.
|
|
5
5
|
*/
|
|
6
6
|
export declare const GlobalConfigSchema: z.ZodObject<{
|
|
@@ -83,4 +83,6 @@ export declare function validateConfig(config: unknown): {
|
|
|
83
83
|
success: boolean;
|
|
84
84
|
error?: string;
|
|
85
85
|
};
|
|
86
|
+
export declare function isSensitiveConfigPath(path: string): boolean;
|
|
87
|
+
export declare function redactConfigSecrets(value: unknown): unknown;
|
|
86
88
|
//# sourceMappingURL=config-schema.d.ts.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
/**
|
|
3
|
-
* Zod schema for global
|
|
3
|
+
* Zod schema for global CodeSDD configuration.
|
|
4
4
|
* Uses passthrough() to preserve unknown fields for forward compatibility.
|
|
5
5
|
*/
|
|
6
6
|
export const GlobalConfigSchema = z
|
|
@@ -31,6 +31,7 @@ export const DEFAULT_CONFIG = {
|
|
|
31
31
|
delivery: 'both',
|
|
32
32
|
};
|
|
33
33
|
const KNOWN_TOP_LEVEL_KEYS = new Set([...Object.keys(DEFAULT_CONFIG), 'workflows']);
|
|
34
|
+
const SENSITIVE_KEY_TOKENS = ['key', 'secret', 'token', 'password', 'credential', 'private', 'auth'];
|
|
34
35
|
/**
|
|
35
36
|
* Validate a config key path for CLI set operations.
|
|
36
37
|
* Unknown top-level keys are rejected unless explicitly allowed by the caller.
|
|
@@ -210,4 +211,28 @@ export function validateConfig(config) {
|
|
|
210
211
|
return { success: false, error: 'Unknown validation error' };
|
|
211
212
|
}
|
|
212
213
|
}
|
|
214
|
+
export function isSensitiveConfigPath(path) {
|
|
215
|
+
const segments = path
|
|
216
|
+
.split('.')
|
|
217
|
+
.map((segment) => segment.trim().toLowerCase())
|
|
218
|
+
.filter(Boolean);
|
|
219
|
+
return segments.some((segment) => SENSITIVE_KEY_TOKENS.some((token) => segment.includes(token)));
|
|
220
|
+
}
|
|
221
|
+
export function redactConfigSecrets(value) {
|
|
222
|
+
if (Array.isArray(value)) {
|
|
223
|
+
return value.map((entry) => redactConfigSecrets(entry));
|
|
224
|
+
}
|
|
225
|
+
if (!value || typeof value !== 'object') {
|
|
226
|
+
return value;
|
|
227
|
+
}
|
|
228
|
+
const redacted = {};
|
|
229
|
+
for (const [key, entryValue] of Object.entries(value)) {
|
|
230
|
+
if (isSensitiveConfigPath(key)) {
|
|
231
|
+
redacted[key] = '[REDACTED]';
|
|
232
|
+
continue;
|
|
233
|
+
}
|
|
234
|
+
redacted[key] = redactConfigSecrets(entryValue);
|
|
235
|
+
}
|
|
236
|
+
return redacted;
|
|
237
|
+
}
|
|
213
238
|
//# sourceMappingURL=config-schema.js.map
|
package/dist/core/config.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
export declare const
|
|
2
|
-
export declare const
|
|
1
|
+
export declare const LEGACY_SPEC_DIR_NAME = "legacy-spec";
|
|
2
|
+
export declare const CODESDD_MARKERS: {
|
|
3
3
|
start: string;
|
|
4
4
|
end: string;
|
|
5
5
|
};
|
|
6
|
-
export interface
|
|
6
|
+
export interface LegacySpecConfig {
|
|
7
7
|
aiTools: string[];
|
|
8
8
|
}
|
|
9
9
|
export interface AIToolOption {
|
package/dist/core/config.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export const
|
|
2
|
-
export const
|
|
3
|
-
start: '<!--
|
|
4
|
-
end: '<!--
|
|
1
|
+
export const LEGACY_SPEC_DIR_NAME = 'legacy-spec';
|
|
2
|
+
export const CODESDD_MARKERS = {
|
|
3
|
+
start: '<!-- CODESDD:START -->',
|
|
4
|
+
end: '<!-- CODESDD:END -->'
|
|
5
5
|
};
|
|
6
6
|
export const AI_TOOLS = [
|
|
7
7
|
{ name: 'Amazon Q Developer', value: 'amazon-q', available: true, successLabel: 'Amazon Q Developer', skillsDir: '.amazonq' },
|
|
@@ -1,6 +1,10 @@
|
|
|
1
|
-
export declare const GLOBAL_CONFIG_DIR_NAME = "
|
|
2
|
-
export declare const GLOBAL_CONFIG_FILE_NAME = "config.
|
|
3
|
-
export declare const GLOBAL_DATA_DIR_NAME = "
|
|
1
|
+
export declare const GLOBAL_CONFIG_DIR_NAME = ".codesdd";
|
|
2
|
+
export declare const GLOBAL_CONFIG_FILE_NAME = "config.toml";
|
|
3
|
+
export declare const GLOBAL_DATA_DIR_NAME = "codesdd";
|
|
4
|
+
export declare const GLOBAL_CACHE_DIR_NAME = "cache";
|
|
5
|
+
export declare const GLOBAL_CACHE_TIERS: readonly ["providers", "projects", "schemas", "deepagents", "plugins"];
|
|
6
|
+
export declare const LEGACY_GLOBAL_CONFIG_DIR_NAME = "codesdd";
|
|
7
|
+
export declare const LEGACY_GLOBAL_CONFIG_FILE_NAME = "config.json";
|
|
4
8
|
export type Profile = 'core' | 'custom';
|
|
5
9
|
export type Delivery = 'both' | 'skills' | 'commands';
|
|
6
10
|
export interface GlobalConfig {
|
|
@@ -9,27 +13,52 @@ export interface GlobalConfig {
|
|
|
9
13
|
delivery?: Delivery;
|
|
10
14
|
workflows?: string[];
|
|
11
15
|
}
|
|
16
|
+
export declare function parseTomlContent(content: string): Record<string, unknown>;
|
|
17
|
+
export declare function stringifyTomlContent(value: Record<string, unknown>): string;
|
|
12
18
|
/**
|
|
13
|
-
* Gets the global configuration directory
|
|
14
|
-
*
|
|
15
|
-
* - All platforms: $XDG_CONFIG_HOME/openspec/ if XDG_CONFIG_HOME is set
|
|
16
|
-
* - Unix/macOS fallback: ~/.config/openspec/
|
|
17
|
-
* - Windows fallback: %APPDATA%/openspec/
|
|
19
|
+
* Gets the canonical global runtime/configuration directory.
|
|
20
|
+
* This repository standardizes global runtime state under ~/.codesdd.
|
|
18
21
|
*/
|
|
19
22
|
export declare function getGlobalConfigDir(): string;
|
|
23
|
+
/**
|
|
24
|
+
* Gets the legacy XDG-compatible JSON config directory.
|
|
25
|
+
* This path is kept only for read compatibility with pre-~/.codesdd installs.
|
|
26
|
+
*/
|
|
27
|
+
export declare function getLegacyGlobalConfigDir(): string;
|
|
20
28
|
/**
|
|
21
29
|
* Gets the global data directory path following XDG Base Directory Specification.
|
|
22
30
|
* Used for user data like schema overrides.
|
|
23
31
|
*
|
|
24
|
-
* - All platforms: $XDG_DATA_HOME/
|
|
25
|
-
* - Unix/macOS fallback: ~/.local/share/
|
|
26
|
-
* - Windows fallback: %LOCALAPPDATA%/
|
|
32
|
+
* - All platforms: $XDG_DATA_HOME/legacy-spec/ if XDG_DATA_HOME is set
|
|
33
|
+
* - Unix/macOS fallback: ~/.local/share/legacy-spec/
|
|
34
|
+
* - Windows fallback: %LOCALAPPDATA%/legacy-spec/
|
|
27
35
|
*/
|
|
28
36
|
export declare function getGlobalDataDir(): string;
|
|
29
37
|
/**
|
|
30
|
-
* Gets the path to the global config file.
|
|
38
|
+
* Gets the path to the canonical global config TOML file.
|
|
31
39
|
*/
|
|
32
40
|
export declare function getGlobalConfigPath(): string;
|
|
41
|
+
/**
|
|
42
|
+
* Gets the global cache directory path under ~/.codesdd/cache.
|
|
43
|
+
*/
|
|
44
|
+
export declare function getGlobalCacheDir(): string;
|
|
45
|
+
/**
|
|
46
|
+
* Gets all tier directory paths for the global cache layout.
|
|
47
|
+
*/
|
|
48
|
+
export declare function getGlobalCacheTierDirs(): Record<(typeof GLOBAL_CACHE_TIERS)[number], string>;
|
|
49
|
+
/**
|
|
50
|
+
* Ensures ~/.codesdd/cache and all known tier directories exist.
|
|
51
|
+
*/
|
|
52
|
+
export declare function ensureGlobalCacheLayout(): Record<(typeof GLOBAL_CACHE_TIERS)[number], string>;
|
|
53
|
+
/**
|
|
54
|
+
* Creates a stable project fingerprint for cache partitioning.
|
|
55
|
+
*/
|
|
56
|
+
export declare function createProjectFingerprint(projectRoot: string): string;
|
|
57
|
+
/**
|
|
58
|
+
* Gets the path to the legacy global config JSON file.
|
|
59
|
+
*/
|
|
60
|
+
export declare function getLegacyGlobalConfigPath(): string;
|
|
61
|
+
export declare function readGlobalConfigRaw(): Record<string, unknown>;
|
|
33
62
|
/**
|
|
34
63
|
* Loads the global configuration from disk.
|
|
35
64
|
* Returns default configuration if file doesn't exist or is invalid.
|