@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.
Files changed (345) hide show
  1. package/.sdd/skills/curated/api-clean-flask-langgraph/SKILL.md +17 -17
  2. package/.sdd/skills/curated/devtrack-api/SKILL.md +160 -28
  3. package/.sdd/skills/curated/devtrack-api/agents/openai.yaml +1 -1
  4. package/.sdd/skills/curated/devtrack-api/references/architecture-governance.md +8 -7
  5. package/.sdd/skills/curated/devtrack-api/references/consumer-sync-policy.md +93 -0
  6. package/.sdd/skills/curated/devtrack-api/references/contract-pack.yaml +317 -0
  7. package/.sdd/skills/curated/devtrack-api/references/field-validation-protocol.md +95 -0
  8. package/.sdd/skills/curated/devtrack-api/references/foundation-layout.md +295 -0
  9. package/.sdd/skills/curated/devtrack-api/references/implementation-checklist.md +4 -4
  10. package/.sdd/skills/curated/devtrack-api/references/imports-lint.md +4 -0
  11. package/.sdd/skills/curated/devtrack-api/references/testing-validation.md +2 -2
  12. package/LICENSE +1 -1
  13. package/README.md +243 -51
  14. package/bin/codesdd.js +3 -2
  15. package/dist/cli/index.d.ts +2 -2
  16. package/dist/cli/index.js +11 -558
  17. package/dist/cli/program.d.ts +14 -0
  18. package/dist/cli/program.js +645 -0
  19. package/dist/commands/change.js +5 -5
  20. package/dist/commands/completion.d.ts +1 -1
  21. package/dist/commands/completion.js +9 -2
  22. package/dist/commands/config.js +159 -20
  23. package/dist/commands/feedback.js +1 -1
  24. package/dist/commands/schema.d.ts +63 -0
  25. package/dist/commands/schema.js +12 -12
  26. package/dist/commands/sdd/backlog.d.ts +3 -0
  27. package/dist/commands/sdd/backlog.js +54 -0
  28. package/dist/commands/sdd/execution.js +147 -16
  29. package/dist/commands/sdd/plugin.d.ts +3 -0
  30. package/dist/commands/sdd/plugin.js +153 -0
  31. package/dist/commands/sdd/shared.js +2 -23
  32. package/dist/commands/sdd/skills.js +7 -0
  33. package/dist/commands/sdd.js +69 -12
  34. package/dist/commands/spec.js +9 -9
  35. package/dist/commands/validate.js +6 -6
  36. package/dist/commands/workflow/instructions.js +6 -6
  37. package/dist/commands/workflow/new-change.js +3 -3
  38. package/dist/commands/workflow/shared.d.ts +1 -1
  39. package/dist/commands/workflow/shared.js +4 -4
  40. package/dist/core/archive.js +15 -5
  41. package/dist/core/artifact-graph/instruction-loader.d.ts +1 -1
  42. package/dist/core/artifact-graph/instruction-loader.js +3 -3
  43. package/dist/core/artifact-graph/resolver.d.ts +4 -4
  44. package/dist/core/artifact-graph/resolver.js +6 -6
  45. package/dist/core/branding.js +3 -3
  46. package/dist/core/cli/command-matrix.js +10 -1
  47. package/dist/core/cli-command-quality.d.ts +27 -0
  48. package/dist/core/cli-command-quality.js +171 -0
  49. package/dist/core/command-generation/adapters/costrict.d.ts +1 -1
  50. package/dist/core/command-generation/adapters/costrict.js +2 -2
  51. package/dist/core/command-generation/types.d.ts +1 -1
  52. package/dist/core/completions/command-registry.d.ts +1 -1
  53. package/dist/core/completions/command-registry.js +155 -12
  54. package/dist/core/completions/completion-provider.d.ts +14 -1
  55. package/dist/core/completions/completion-provider.js +29 -1
  56. package/dist/core/completions/generators/bash-generator.d.ts +1 -1
  57. package/dist/core/completions/generators/bash-generator.js +20 -12
  58. package/dist/core/completions/generators/fish-generator.d.ts +9 -1
  59. package/dist/core/completions/generators/fish-generator.js +39 -25
  60. package/dist/core/completions/generators/powershell-generator.d.ts +1 -1
  61. package/dist/core/completions/generators/powershell-generator.js +21 -11
  62. package/dist/core/completions/generators/zsh-generator.d.ts +3 -6
  63. package/dist/core/completions/generators/zsh-generator.js +21 -42
  64. package/dist/core/completions/installers/bash-installer.js +6 -6
  65. package/dist/core/completions/installers/fish-installer.js +1 -1
  66. package/dist/core/completions/installers/powershell-installer.js +14 -14
  67. package/dist/core/completions/installers/zsh-installer.d.ts +7 -1
  68. package/dist/core/completions/installers/zsh-installer.js +36 -8
  69. package/dist/core/completions/templates/bash-templates.d.ts +1 -1
  70. package/dist/core/completions/templates/bash-templates.js +12 -6
  71. package/dist/core/completions/templates/fish-templates.d.ts +2 -2
  72. package/dist/core/completions/templates/fish-templates.js +20 -9
  73. package/dist/core/completions/templates/powershell-templates.d.ts +1 -1
  74. package/dist/core/completions/templates/powershell-templates.js +13 -4
  75. package/dist/core/completions/templates/zsh-templates.d.ts +1 -1
  76. package/dist/core/completions/templates/zsh-templates.js +18 -9
  77. package/dist/core/config-schema.d.ts +3 -1
  78. package/dist/core/config-schema.js +26 -1
  79. package/dist/core/config.d.ts +3 -3
  80. package/dist/core/config.js +4 -4
  81. package/dist/core/global-config.d.ts +41 -12
  82. package/dist/core/global-config.js +344 -27
  83. package/dist/core/index.d.ts +1 -1
  84. package/dist/core/index.js +2 -2
  85. package/dist/core/init.d.ts +6 -1
  86. package/dist/core/init.js +99 -77
  87. package/dist/core/legacy-cleanup.d.ts +17 -17
  88. package/dist/core/legacy-cleanup.js +96 -79
  89. package/dist/core/list.js +18 -4
  90. package/dist/core/migration.d.ts +3 -1
  91. package/dist/core/migration.js +7 -8
  92. package/dist/core/parsers/change-parser.js +1 -1
  93. package/dist/core/parsers/markdown-parser.js +2 -2
  94. package/dist/core/profile-sync-drift.d.ts +1 -1
  95. package/dist/core/profile-sync-drift.js +13 -13
  96. package/dist/core/project-config.d.ts +4 -4
  97. package/dist/core/project-config.js +11 -11
  98. package/dist/core/schemas/change.schema.d.ts +1 -1
  99. package/dist/core/schemas/change.schema.js +1 -1
  100. package/dist/core/schemas/spec.schema.d.ts +1 -1
  101. package/dist/core/schemas/spec.schema.js +1 -1
  102. package/dist/core/sdd/adr.js +23 -1
  103. package/dist/core/sdd/agent-binding.d.ts +346 -0
  104. package/dist/core/sdd/agent-binding.js +343 -0
  105. package/dist/core/sdd/backlog-cli.d.ts +16 -0
  106. package/dist/core/sdd/backlog-cli.js +146 -0
  107. package/dist/core/sdd/backlog-conflict-policy.d.ts +58 -0
  108. package/dist/core/sdd/backlog-conflict-policy.js +230 -0
  109. package/dist/core/sdd/backlog-projection.d.ts +8 -0
  110. package/dist/core/sdd/backlog-projection.js +89 -0
  111. package/dist/core/sdd/backlog-provider-contract.d.ts +252 -0
  112. package/dist/core/sdd/backlog-provider-contract.js +158 -0
  113. package/dist/core/sdd/bootstrap.js +2 -2
  114. package/dist/core/sdd/check.d.ts +42 -0
  115. package/dist/core/sdd/check.js +22 -22
  116. package/dist/core/sdd/contract.d.ts +13 -0
  117. package/dist/core/sdd/contract.js +36 -0
  118. package/dist/core/sdd/coordination/coordination-adapters.d.ts +38 -0
  119. package/dist/core/sdd/coordination/coordination-adapters.js +139 -1
  120. package/dist/core/sdd/deepagent-contracts.d.ts +276 -0
  121. package/dist/core/sdd/deepagent-contracts.js +173 -0
  122. package/dist/core/sdd/deepagents/adr-governor.d.ts +2 -0
  123. package/dist/core/sdd/deepagents/adr-governor.js +30 -0
  124. package/dist/core/sdd/deepagents/backend.d.ts +63 -0
  125. package/dist/core/sdd/deepagents/backend.js +174 -0
  126. package/dist/core/sdd/deepagents/codesdd-tools.d.ts +39 -0
  127. package/dist/core/sdd/deepagents/codesdd-tools.js +83 -0
  128. package/dist/core/sdd/deepagents/evidence-mapper.d.ts +86 -0
  129. package/dist/core/sdd/deepagents/evidence-mapper.js +178 -0
  130. package/dist/core/sdd/deepagents/model-provider.d.ts +53 -0
  131. package/dist/core/sdd/deepagents/model-provider.js +379 -0
  132. package/dist/core/sdd/deepagents/policy-enforcement.d.ts +30 -0
  133. package/dist/core/sdd/deepagents/policy-enforcement.js +90 -0
  134. package/dist/core/sdd/deepagents/policy.d.ts +75 -0
  135. package/dist/core/sdd/deepagents/policy.js +358 -0
  136. package/dist/core/sdd/deepagents/quality-witness.d.ts +3 -0
  137. package/dist/core/sdd/deepagents/quality-witness.js +77 -0
  138. package/dist/core/sdd/deepagents/reversa-subagents.d.ts +75 -0
  139. package/dist/core/sdd/deepagents/reversa-subagents.js +182 -0
  140. package/dist/core/sdd/deepagents/runtime-factory.d.ts +90 -0
  141. package/dist/core/sdd/deepagents/runtime-factory.js +231 -0
  142. package/dist/core/sdd/deepagents/runtime-loader.d.ts +16 -0
  143. package/dist/core/sdd/deepagents/runtime-loader.js +65 -0
  144. package/dist/core/sdd/default-bootstrap-files.d.ts +2 -2
  145. package/dist/core/sdd/default-bootstrap-files.js +36 -2
  146. package/dist/core/sdd/default-skills.d.ts +30 -0
  147. package/dist/core/sdd/default-skills.js +181 -5
  148. package/dist/core/sdd/devtrack-api-appliance.d.ts +84 -0
  149. package/dist/core/sdd/devtrack-api-appliance.js +257 -0
  150. package/dist/core/sdd/devtrack-api-architecture.d.ts +31 -0
  151. package/dist/core/sdd/devtrack-api-architecture.js +608 -0
  152. package/dist/core/sdd/devtrack-api-import-boundary.d.ts +19 -0
  153. package/dist/core/sdd/devtrack-api-import-boundary.js +32 -0
  154. package/dist/core/sdd/diagnose.d.ts +59 -0
  155. package/dist/core/sdd/diagnose.js +37 -37
  156. package/dist/core/sdd/docs-sync.js +33 -5
  157. package/dist/core/sdd/domain/post-active-validation.d.ts +7 -0
  158. package/dist/core/sdd/domain/post-active-validation.js +61 -0
  159. package/dist/core/sdd/domain/transition-engine.js +1 -0
  160. package/dist/core/sdd/entity-reference.d.ts +5 -0
  161. package/dist/core/sdd/entity-reference.js +22 -0
  162. package/dist/core/sdd/governance-backfill.d.ts +31 -0
  163. package/dist/core/sdd/governance-backfill.js +359 -0
  164. package/dist/core/sdd/governance-parser.d.ts +21 -0
  165. package/dist/core/sdd/governance-parser.js +91 -0
  166. package/dist/core/sdd/governance-schemas.d.ts +245 -0
  167. package/dist/core/sdd/governance-schemas.js +143 -0
  168. package/dist/core/sdd/{import-openspec.d.ts → import-legacy-spec.d.ts} +7 -7
  169. package/dist/core/sdd/{import-openspec.js → import-legacy-spec.js} +21 -29
  170. package/dist/core/sdd/init.d.ts +3 -0
  171. package/dist/core/sdd/init.js +6 -3
  172. package/dist/core/sdd/json-schema.js +100 -6
  173. package/dist/core/sdd/knowledge-graph.d.ts +45 -0
  174. package/dist/core/sdd/knowledge-graph.js +288 -0
  175. package/dist/core/sdd/legacy-operations.js +431 -43
  176. package/dist/core/sdd/lenses.d.ts +1 -0
  177. package/dist/core/sdd/lenses.js +29 -1
  178. package/dist/core/sdd/migrate-workspace.js +56 -2
  179. package/dist/core/sdd/migrate.d.ts +1 -1
  180. package/dist/core/sdd/migrate.js +36 -2
  181. package/dist/core/sdd/package-structure-gate.d.ts +83 -0
  182. package/dist/core/sdd/package-structure-gate.js +362 -0
  183. package/dist/core/sdd/parallel-feat-automation.d.ts +152 -0
  184. package/dist/core/sdd/parallel-feat-automation.js +212 -0
  185. package/dist/core/sdd/plugin-broker.d.ts +558 -0
  186. package/dist/core/sdd/plugin-broker.js +482 -0
  187. package/dist/core/sdd/plugin-certification.d.ts +79 -0
  188. package/dist/core/sdd/plugin-certification.js +453 -0
  189. package/dist/core/sdd/plugin-cli.d.ts +109 -0
  190. package/dist/core/sdd/plugin-cli.js +198 -0
  191. package/dist/core/sdd/plugin-evidence.d.ts +275 -0
  192. package/dist/core/sdd/plugin-evidence.js +307 -0
  193. package/dist/core/sdd/plugin-manifest.d.ts +164 -0
  194. package/dist/core/sdd/plugin-manifest.js +215 -0
  195. package/dist/core/sdd/plugin-policy-pack.d.ts +88 -0
  196. package/dist/core/sdd/plugin-policy-pack.js +236 -0
  197. package/dist/core/sdd/plugin-policy.d.ts +68 -0
  198. package/dist/core/sdd/plugin-policy.js +212 -0
  199. package/dist/core/sdd/plugin-registry.d.ts +311 -0
  200. package/dist/core/sdd/plugin-registry.js +138 -0
  201. package/dist/core/sdd/plugin-skill-binding.d.ts +151 -0
  202. package/dist/core/sdd/plugin-skill-binding.js +339 -0
  203. package/dist/core/sdd/quality-artifact-manifest-validator.d.ts +28 -0
  204. package/dist/core/sdd/quality-artifact-manifest-validator.js +167 -0
  205. package/dist/core/sdd/quality-evidence-renderer.d.ts +65 -0
  206. package/dist/core/sdd/quality-evidence-renderer.js +218 -0
  207. package/dist/core/sdd/quality-scenario-runner.d.ts +42 -0
  208. package/dist/core/sdd/quality-scenario-runner.js +613 -0
  209. package/dist/core/sdd/quality-validation.d.ts +547 -0
  210. package/dist/core/sdd/quality-validation.js +239 -0
  211. package/dist/core/sdd/resolve-project-root.d.ts +2 -2
  212. package/dist/core/sdd/resolve-project-root.js +11 -5
  213. package/dist/core/sdd/sanitize.d.ts +30 -1
  214. package/dist/core/sdd/sanitize.js +23 -23
  215. package/dist/core/sdd/services/agent-run.service.d.ts +65 -0
  216. package/dist/core/sdd/services/agent-run.service.js +189 -0
  217. package/dist/core/sdd/services/breakdown.service.js +2 -1
  218. package/dist/core/sdd/services/context.service.js +18 -16
  219. package/dist/core/sdd/services/debate.service.js +15 -2
  220. package/dist/core/sdd/services/feature-lint.service.d.ts +22 -0
  221. package/dist/core/sdd/services/feature-lint.service.js +105 -5
  222. package/dist/core/sdd/services/finalize.service.d.ts +80 -0
  223. package/dist/core/sdd/services/finalize.service.js +323 -24
  224. package/dist/core/sdd/services/frontend-gap.service.js +22 -7
  225. package/dist/core/sdd/services/governance-control-plane-runtime-adapters.d.ts +17 -0
  226. package/dist/core/sdd/services/governance-control-plane-runtime-adapters.js +38 -0
  227. package/dist/core/sdd/services/governance-control-plane.service.d.ts +66 -0
  228. package/dist/core/sdd/services/governance-control-plane.service.js +134 -0
  229. package/dist/core/sdd/services/ingest-deposito.service.js +1 -1
  230. package/dist/core/sdd/services/legacy-capability.service.d.ts +10 -7
  231. package/dist/core/sdd/services/legacy-capability.service.js +38 -21
  232. package/dist/core/sdd/services/mcp-runtime.service.d.ts +123 -8
  233. package/dist/core/sdd/services/mcp-runtime.service.js +1085 -33
  234. package/dist/core/sdd/services/onboard.service.js +2 -1
  235. package/dist/core/sdd/services/rebuild.service.js +6 -1
  236. package/dist/core/sdd/services/skills-sync.service.d.ts +17 -5
  237. package/dist/core/sdd/services/skills-sync.service.js +55 -2
  238. package/dist/core/sdd/services/start.service.js +6 -4
  239. package/dist/core/sdd/skill-bundles-curation-schema.d.ts +66 -0
  240. package/dist/core/sdd/skill-bundles-curation-schema.js +52 -0
  241. package/dist/core/sdd/skill-evidence.d.ts +19 -0
  242. package/dist/core/sdd/skill-evidence.js +38 -0
  243. package/dist/core/sdd/skill-policy-pool.d.ts +46 -0
  244. package/dist/core/sdd/skill-policy-pool.js +185 -0
  245. package/dist/core/sdd/state.d.ts +22 -0
  246. package/dist/core/sdd/state.js +66 -41
  247. package/dist/core/sdd/structural-health.d.ts +42 -42
  248. package/dist/core/sdd/types.d.ts +33 -7
  249. package/dist/core/sdd/types.js +17 -0
  250. package/dist/core/sdd/upgrade-to-codesdd.d.ts +45 -0
  251. package/dist/core/sdd/upgrade-to-codesdd.js +179 -0
  252. package/dist/core/sdd/workspace-schemas.d.ts +285 -14
  253. package/dist/core/sdd/workspace-schemas.js +148 -0
  254. package/dist/core/sdd/write-manifest.js +22 -4
  255. package/dist/core/shared/skill-generation.d.ts +1 -1
  256. package/dist/core/shared/skill-generation.js +15 -15
  257. package/dist/core/shared/tool-detection.d.ts +3 -3
  258. package/dist/core/shared/tool-detection.js +14 -14
  259. package/dist/core/specs-apply.js +6 -6
  260. package/dist/core/templates/index.d.ts +1 -1
  261. package/dist/core/templates/index.js +1 -1
  262. package/dist/core/templates/workflows/apply-change.js +14 -14
  263. package/dist/core/templates/workflows/archive-change.js +32 -32
  264. package/dist/core/templates/workflows/bulk-archive-change.js +25 -25
  265. package/dist/core/templates/workflows/continue-change.js +12 -12
  266. package/dist/core/templates/workflows/explore.js +29 -29
  267. package/dist/core/templates/workflows/feedback.js +6 -6
  268. package/dist/core/templates/workflows/ff-change.js +24 -24
  269. package/dist/core/templates/workflows/new-change.js +20 -20
  270. package/dist/core/templates/workflows/onboard.js +33 -33
  271. package/dist/core/templates/workflows/propose.js +23 -23
  272. package/dist/core/templates/workflows/sdd.js +8 -8
  273. package/dist/core/templates/workflows/sync-specs.js +19 -19
  274. package/dist/core/templates/workflows/verify-change.js +17 -17
  275. package/dist/core/update.d.ts +2 -2
  276. package/dist/core/update.js +16 -15
  277. package/dist/core/validation/constants.d.ts +1 -1
  278. package/dist/core/validation/constants.js +1 -1
  279. package/dist/core/view.js +11 -11
  280. package/dist/telemetry/config.d.ts +2 -1
  281. package/dist/telemetry/config.js +17 -8
  282. package/dist/telemetry/index.d.ts +10 -2
  283. package/dist/telemetry/index.js +40 -7
  284. package/dist/ui/ascii-patterns.d.ts +2 -2
  285. package/dist/ui/ascii-patterns.js +2 -2
  286. package/dist/ui/welcome-screen.js +2 -2
  287. package/dist/utils/change-metadata.d.ts +4 -4
  288. package/dist/utils/change-metadata.js +6 -6
  289. package/dist/utils/change-utils.d.ts +3 -3
  290. package/dist/utils/change-utils.js +5 -5
  291. package/dist/utils/file-system.js +1 -1
  292. package/dist/utils/interactive.js +1 -1
  293. package/dist/utils/item-discovery.js +4 -4
  294. package/dist/utils/legacy-spec-compat.d.ts +2 -0
  295. package/dist/utils/legacy-spec-compat.js +2 -0
  296. package/dist/utils/shell-detection.d.ts +1 -0
  297. package/dist/utils/shell-detection.js +16 -0
  298. package/package.json +27 -17
  299. package/schemas/sdd/1-spec.schema.json +1 -1
  300. package/schemas/sdd/2-plan.schema.json +73 -1
  301. package/schemas/sdd/3-tasks.schema.json +73 -1
  302. package/schemas/sdd/4-changelog.schema.json +1 -1
  303. package/schemas/sdd/5-quality.schema.json +442 -2
  304. package/schemas/sdd/adr.schema.json +148 -0
  305. package/schemas/sdd/agent-binding-adapter.schema.json +210 -0
  306. package/schemas/sdd/agent-binding-resolution.schema.json +338 -0
  307. package/schemas/sdd/backlog-projection-plan.schema.json +180 -0
  308. package/schemas/sdd/backlog-provider-contract.schema.json +260 -0
  309. package/schemas/sdd/codesdd-plugin.schema.json +474 -0
  310. package/schemas/sdd/debate.schema.json +244 -0
  311. package/schemas/sdd/deepagent-decision-evidence.schema.json +58 -0
  312. package/schemas/sdd/deepagent-env-contract.schema.json +143 -0
  313. package/schemas/sdd/deepagent-quality-evidence.schema.json +108 -0
  314. package/schemas/sdd/deepagent-run-evidence.schema.json +192 -0
  315. package/schemas/sdd/deepagent-run-plan.schema.json +197 -0
  316. package/schemas/sdd/deepagent-run-request.schema.json +321 -0
  317. package/schemas/sdd/deepagent-subagent-evidence.schema.json +110 -0
  318. package/schemas/sdd/deepagent-tool-call-evidence.schema.json +78 -0
  319. package/schemas/sdd/discarded.schema.json +127 -0
  320. package/schemas/sdd/epic.schema.json +147 -0
  321. package/schemas/sdd/insight.schema.json +136 -0
  322. package/schemas/sdd/parallel-feat-automation-plan.schema.json +215 -0
  323. package/schemas/sdd/parallel-feat-automation-request.schema.json +109 -0
  324. package/schemas/sdd/plugin-artifact-manifest.schema.json +150 -0
  325. package/schemas/sdd/plugin-compliance-index.schema.json +136 -0
  326. package/schemas/sdd/plugin-dry-run-plan.schema.json +260 -0
  327. package/schemas/sdd/plugin-evidence-manifest.schema.json +569 -0
  328. package/schemas/sdd/plugin-policy-evaluation.schema.json +92 -0
  329. package/schemas/sdd/plugin-policy-pack-evaluation.schema.json +94 -0
  330. package/schemas/sdd/plugin-policy-pack.schema.json +196 -0
  331. package/schemas/sdd/plugin-registry.schema.json +558 -0
  332. package/schemas/sdd/plugin-rollback-manifest.schema.json +87 -0
  333. package/schemas/sdd/plugin-runtime-invocation-plan.schema.json +845 -0
  334. package/schemas/sdd/plugin-skill-binding-resolution.schema.json +305 -0
  335. package/schemas/sdd/plugin-skill-binding.schema.json +88 -0
  336. package/schemas/sdd/plugin-validation-manifest.schema.json +123 -0
  337. package/schemas/sdd/quality-architecture-schema.schema.json +216 -0
  338. package/schemas/sdd/quality-evidence-bundle.schema.json +1228 -0
  339. package/schemas/sdd/quality-run.schema.json +197 -0
  340. package/schemas/sdd/quality-scenario.schema.json +252 -0
  341. package/schemas/sdd/workspace-catalog.schema.json +9841 -22
  342. package/schemas/spec-driven/schema.yaml +4 -4
  343. package/schemas/spec-driven/templates/proposal.md +1 -1
  344. package/dist/utils/openspec-compat.d.ts +0 -2
  345. 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: '# OPENSPEC:START',
15
- end: '# OPENSPEC: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, 'OpenSpecCompletion.ps1');
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
- '# OpenSpec shell completions configuration',
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 OpenSpec completion configuration with markers
135
- const openspecBlock = [
134
+ // Add CodeSDD completion configuration with markers
135
+ const codesddBlock = [
136
136
  '',
137
- '# OPENSPEC:START - OpenSpec completion (managed block, do not edit manually)',
137
+ '# CODESDD:START - CodeSDD completion (managed block, do not edit manually)',
138
138
  scriptLine,
139
- '# OPENSPEC:END',
139
+ '# CODESDD:END',
140
140
  '',
141
141
  ].join('\n');
142
- const newContent = profileContent + openspecBlock;
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 OPENSPEC:START -> OPENSPEC:END block
173
- const startMarker = '# OPENSPEC:START';
174
- const endMarker = '# OPENSPEC:END';
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 OpenSpec block found
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 OpenSpec completions',
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
- * Check if .zshrc has OpenSpec configuration markers
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: '# OPENSPEC:START',
16
- end: '# OPENSPEC: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', '_openspec'),
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', '_openspec'),
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
- '# OpenSpec shell completions configuration',
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.OPENSPEC_NO_AUTO_CONFIG === '1') {
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
- * Check if .zshrc has OpenSpec configuration markers
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 OpenSpec configuration from ~/.zshrc');
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\n_openspec_complete_changes() {\n local changes\n changes=$(opensdd __complete changes 2>/dev/null | cut -f1)\n COMPREPLY=($(compgen -W \"$changes\" -- \"$cur\"))\n}\n\n_openspec_complete_specs() {\n local specs\n specs=$(opensdd __complete specs 2>/dev/null | cut -f1)\n COMPREPLY=($(compgen -W \"$specs\" -- \"$cur\"))\n}\n\n_openspec_complete_items() {\n local items\n items=$(opensdd __complete changes 2>/dev/null | cut -f1; opensdd __complete specs 2>/dev/null | cut -f1)\n COMPREPLY=($(compgen -W \"$items\" -- \"$cur\"))\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
- _openspec_complete_changes() {
7
+ _codesdd_complete_changes() {
8
8
  local changes
9
- changes=$(opensdd __complete changes 2>/dev/null | cut -f1)
9
+ changes=$(codesdd __complete changes 2>/dev/null | cut -f1)
10
10
  COMPREPLY=($(compgen -W "$changes" -- "$cur"))
11
11
  }
12
12
 
13
- _openspec_complete_specs() {
13
+ _codesdd_complete_specs() {
14
14
  local specs
15
- specs=$(opensdd __complete specs 2>/dev/null | cut -f1)
15
+ specs=$(codesdd __complete specs 2>/dev/null | cut -f1)
16
16
  COMPREPLY=($(compgen -W "$specs" -- "$cur"))
17
17
  }
18
18
 
19
- _openspec_complete_items() {
19
+ _codesdd_complete_items() {
20
20
  local items
21
- items=$(opensdd __complete changes 2>/dev/null | cut -f1; opensdd __complete specs 2>/dev/null | cut -f1)
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 __fish_openspec_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_openspec_no_subcommand\n set -l cmd (commandline -opc)\n test (count $cmd) -eq 1\nend";
6
- export declare const FISH_DYNAMIC_HELPERS = "# Dynamic completion helpers\n\nfunction __fish_openspec_changes\n opensdd __complete changes 2>/dev/null | while read -l id desc\n printf '%s\\t%s\\n' \"$id\" \"$desc\"\n end\nend\n\nfunction __fish_openspec_specs\n opensdd __complete specs 2>/dev/null | while read -l id desc\n printf '%s\\t%s\\n' \"$id\" \"$desc\"\n end\nend\n\nfunction __fish_openspec_items\n __fish_openspec_changes\n __fish_openspec_specs\nend";
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 __fish_openspec_using_subcommand
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 __fish_openspec_no_subcommand
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 __fish_openspec_changes
24
- opensdd __complete changes 2>/dev/null | while read -l id desc
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 __fish_openspec_specs
30
- opensdd __complete specs 2>/dev/null | while read -l id desc
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 __fish_openspec_items
36
- __fish_openspec_changes
37
- __fish_openspec_specs
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-OpenSpecChanges {\n $output = opensdd __complete changes 2>$null\n if ($output) {\n $output | ForEach-Object {\n ($_ -split \"\\t\")[0]\n }\n }\n}\n\nfunction Get-OpenSpecSpecs {\n $output = opensdd __complete specs 2>$null\n if ($output) {\n $output | ForEach-Object {\n ($_ -split \"\\t\")[0]\n }\n }\n}\n";
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-OpenSpecChanges {
8
- $output = opensdd __complete changes 2>$null
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-OpenSpecSpecs {
17
- $output = opensdd __complete specs 2>$null
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 opensdd __complete to get available changes\n_openspec_complete_changes() {\n local -a changes\n while IFS=$'\\t' read -r id desc; do\n changes+=(\"$id:$desc\")\n done < <(opensdd __complete changes 2>/dev/null)\n _describe \"change\" changes\n}\n\n# Use opensdd __complete to get available specs\n_openspec_complete_specs() {\n local -a specs\n while IFS=$'\\t' read -r id desc; do\n specs+=(\"$id:$desc\")\n done < <(opensdd __complete specs 2>/dev/null)\n _describe \"spec\" specs\n}\n\n# Get both changes and specs\n_openspec_complete_items() {\n local -a items\n while IFS=$'\\t' read -r id desc; do\n items+=(\"$id:$desc\")\n done < <(opensdd __complete changes 2>/dev/null)\n while IFS=$'\\t' read -r id desc; do\n items+=(\"$id:$desc\")\n done < <(opensdd __complete specs 2>/dev/null)\n _describe \"item\" items\n}";
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 opensdd __complete to get available changes
8
- _openspec_complete_changes() {
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 < <(opensdd __complete changes 2>/dev/null)
12
+ done < <(codesdd __complete changes 2>/dev/null)
13
13
  _describe "change" changes
14
14
  }
15
15
 
16
- # Use opensdd __complete to get available specs
17
- _openspec_complete_specs() {
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 < <(opensdd __complete specs 2>/dev/null)
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
- _openspec_complete_items() {
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 < <(opensdd __complete changes 2>/dev/null)
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 < <(opensdd __complete specs 2>/dev/null)
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 OpenSpec configuration.
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 OpenSpec configuration.
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
@@ -1,9 +1,9 @@
1
- export declare const OPENSPEC_DIR_NAME = "openspec";
2
- export declare const OPENSPEC_MARKERS: {
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 OpenSpecConfig {
6
+ export interface LegacySpecConfig {
7
7
  aiTools: string[];
8
8
  }
9
9
  export interface AIToolOption {
@@ -1,7 +1,7 @@
1
- export const OPENSPEC_DIR_NAME = 'openspec';
2
- export const OPENSPEC_MARKERS = {
3
- start: '<!-- OPENSPEC:START -->',
4
- end: '<!-- OPENSPEC: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 = "openspec";
2
- export declare const GLOBAL_CONFIG_FILE_NAME = "config.json";
3
- export declare const GLOBAL_DATA_DIR_NAME = "openspec";
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 path following XDG Base Directory Specification.
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/openspec/ if XDG_DATA_HOME is set
25
- * - Unix/macOS fallback: ~/.local/share/openspec/
26
- * - Windows fallback: %LOCALAPPDATA%/openspec/
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.