@devtrack-solution/codesdd 1.2.2 → 1.2.4-rc3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (413) hide show
  1. package/.sdd/skills/curated/api-clean-flask-langgraph/SKILL.md +17 -17
  2. package/.sdd/skills/curated/devtrack-api/SKILL.md +170 -31
  3. package/.sdd/skills/curated/devtrack-api/agents/claude-code.yaml +8 -0
  4. package/.sdd/skills/curated/devtrack-api/agents/codex.yaml +8 -0
  5. package/.sdd/skills/curated/devtrack-api/agents/cursor.yaml +8 -0
  6. package/.sdd/skills/curated/devtrack-api/agents/gemini.yaml +8 -0
  7. package/.sdd/skills/curated/devtrack-api/agents/kimi.yaml +8 -0
  8. package/.sdd/skills/curated/devtrack-api/agents/openai.yaml +4 -2
  9. package/.sdd/skills/curated/devtrack-api/agents/opencode.yaml +10 -0
  10. package/.sdd/skills/curated/devtrack-api/references/application-presentation.md +2 -2
  11. package/.sdd/skills/curated/devtrack-api/references/architecture-governance.md +8 -7
  12. package/.sdd/skills/curated/devtrack-api/references/consumer-sync-policy.md +93 -0
  13. package/.sdd/skills/curated/devtrack-api/references/contract-pack.yaml +372 -0
  14. package/.sdd/skills/curated/devtrack-api/references/domain-modeling.md +13 -13
  15. package/.sdd/skills/curated/devtrack-api/references/field-validation-protocol.md +95 -0
  16. package/.sdd/skills/curated/devtrack-api/references/foundation-layout.md +294 -0
  17. package/.sdd/skills/curated/devtrack-api/references/implementation-checklist.md +5 -5
  18. package/.sdd/skills/curated/devtrack-api/references/imports-lint.md +4 -0
  19. package/.sdd/skills/curated/devtrack-api/references/portable-agent-contract.md +41 -0
  20. package/.sdd/skills/curated/devtrack-api/references/testing-validation.md +2 -2
  21. package/.sdd/skills/curated/devtrack-api/references/typeorm-infrastructure.md +7 -9
  22. package/LICENSE +1 -1
  23. package/README.md +399 -53
  24. package/bin/codesdd.js +3 -2
  25. package/dist/applications/sdd/index.d.ts +16 -0
  26. package/dist/applications/sdd/index.js +16 -0
  27. package/dist/cli/index.d.ts +2 -2
  28. package/dist/cli/index.js +11 -558
  29. package/dist/cli/program.d.ts +14 -0
  30. package/dist/cli/program.js +645 -0
  31. package/dist/commands/change.js +5 -5
  32. package/dist/commands/completion.d.ts +1 -1
  33. package/dist/commands/completion.js +9 -2
  34. package/dist/commands/config.js +320 -20
  35. package/dist/commands/feedback.js +1 -1
  36. package/dist/commands/schema.d.ts +63 -0
  37. package/dist/commands/schema.js +12 -12
  38. package/dist/commands/sdd/backlog.d.ts +3 -0
  39. package/dist/commands/sdd/backlog.js +54 -0
  40. package/dist/commands/sdd/execution.js +489 -28
  41. package/dist/commands/sdd/plugin.d.ts +3 -0
  42. package/dist/commands/sdd/plugin.js +158 -0
  43. package/dist/commands/sdd/shared.d.ts +1 -0
  44. package/dist/commands/sdd/shared.js +11 -22
  45. package/dist/commands/sdd/skills.js +7 -0
  46. package/dist/commands/sdd.js +107 -15
  47. package/dist/commands/spec.js +9 -9
  48. package/dist/commands/validate.js +6 -6
  49. package/dist/commands/workflow/instructions.js +6 -6
  50. package/dist/commands/workflow/new-change.js +3 -3
  51. package/dist/commands/workflow/shared.d.ts +1 -1
  52. package/dist/commands/workflow/shared.js +4 -4
  53. package/dist/core/archive.js +15 -5
  54. package/dist/core/artifact-graph/instruction-loader.d.ts +1 -1
  55. package/dist/core/artifact-graph/instruction-loader.js +3 -3
  56. package/dist/core/artifact-graph/resolver.d.ts +4 -4
  57. package/dist/core/artifact-graph/resolver.js +6 -6
  58. package/dist/core/branding.js +3 -3
  59. package/dist/core/cli/command-matrix.js +19 -1
  60. package/dist/core/cli-command-quality.d.ts +27 -0
  61. package/dist/core/cli-command-quality.js +180 -0
  62. package/dist/core/command-generation/adapters/costrict.d.ts +1 -1
  63. package/dist/core/command-generation/adapters/costrict.js +2 -2
  64. package/dist/core/command-generation/types.d.ts +1 -1
  65. package/dist/core/completions/command-registry.d.ts +1 -1
  66. package/dist/core/completions/command-registry.js +200 -12
  67. package/dist/core/completions/completion-provider.d.ts +14 -1
  68. package/dist/core/completions/completion-provider.js +29 -1
  69. package/dist/core/completions/generators/bash-generator.d.ts +1 -1
  70. package/dist/core/completions/generators/bash-generator.js +20 -12
  71. package/dist/core/completions/generators/fish-generator.d.ts +9 -1
  72. package/dist/core/completions/generators/fish-generator.js +39 -25
  73. package/dist/core/completions/generators/powershell-generator.d.ts +1 -1
  74. package/dist/core/completions/generators/powershell-generator.js +21 -11
  75. package/dist/core/completions/generators/zsh-generator.d.ts +3 -6
  76. package/dist/core/completions/generators/zsh-generator.js +21 -42
  77. package/dist/core/completions/installers/bash-installer.js +6 -6
  78. package/dist/core/completions/installers/fish-installer.js +1 -1
  79. package/dist/core/completions/installers/powershell-installer.js +14 -14
  80. package/dist/core/completions/installers/zsh-installer.d.ts +7 -1
  81. package/dist/core/completions/installers/zsh-installer.js +36 -8
  82. package/dist/core/completions/templates/bash-templates.d.ts +1 -1
  83. package/dist/core/completions/templates/bash-templates.js +12 -6
  84. package/dist/core/completions/templates/fish-templates.d.ts +2 -2
  85. package/dist/core/completions/templates/fish-templates.js +20 -9
  86. package/dist/core/completions/templates/powershell-templates.d.ts +1 -1
  87. package/dist/core/completions/templates/powershell-templates.js +13 -4
  88. package/dist/core/completions/templates/zsh-templates.d.ts +1 -1
  89. package/dist/core/completions/templates/zsh-templates.js +18 -9
  90. package/dist/core/config-schema.d.ts +20 -1
  91. package/dist/core/config-schema.js +70 -2
  92. package/dist/core/config.d.ts +3 -3
  93. package/dist/core/config.js +4 -4
  94. package/dist/core/global-config.d.ts +57 -12
  95. package/dist/core/global-config.js +344 -27
  96. package/dist/core/index.d.ts +1 -1
  97. package/dist/core/index.js +2 -2
  98. package/dist/core/init.d.ts +6 -1
  99. package/dist/core/init.js +99 -77
  100. package/dist/core/legacy-cleanup.d.ts +17 -17
  101. package/dist/core/legacy-cleanup.js +96 -79
  102. package/dist/core/list.js +18 -4
  103. package/dist/core/migration.d.ts +3 -1
  104. package/dist/core/migration.js +7 -8
  105. package/dist/core/parsers/change-parser.js +1 -1
  106. package/dist/core/parsers/markdown-parser.js +2 -2
  107. package/dist/core/profile-sync-drift.d.ts +1 -1
  108. package/dist/core/profile-sync-drift.js +13 -13
  109. package/dist/core/project-config.d.ts +4 -4
  110. package/dist/core/project-config.js +11 -11
  111. package/dist/core/schemas/change.schema.d.ts +1 -1
  112. package/dist/core/schemas/change.schema.js +1 -1
  113. package/dist/core/schemas/spec.schema.d.ts +1 -1
  114. package/dist/core/schemas/spec.schema.js +1 -1
  115. package/dist/core/sdd/adr.js +23 -1
  116. package/dist/core/sdd/agent-binding.d.ts +346 -0
  117. package/dist/core/sdd/agent-binding.js +343 -0
  118. package/dist/core/sdd/agent-runtime-contract.d.ts +204 -0
  119. package/dist/core/sdd/agent-runtime-contract.js +200 -0
  120. package/dist/core/sdd/backlog-cli.d.ts +16 -0
  121. package/dist/core/sdd/backlog-cli.js +146 -0
  122. package/dist/core/sdd/backlog-conflict-policy.d.ts +58 -0
  123. package/dist/core/sdd/backlog-conflict-policy.js +230 -0
  124. package/dist/core/sdd/backlog-projection.d.ts +8 -0
  125. package/dist/core/sdd/backlog-projection.js +89 -0
  126. package/dist/core/sdd/backlog-provider-contract.d.ts +252 -0
  127. package/dist/core/sdd/backlog-provider-contract.js +158 -0
  128. package/dist/core/sdd/bootstrap.js +2 -2
  129. package/dist/core/sdd/check.d.ts +44 -0
  130. package/dist/core/sdd/check.js +62 -24
  131. package/dist/core/sdd/contract.d.ts +13 -0
  132. package/dist/core/sdd/contract.js +36 -0
  133. package/dist/core/sdd/coordination/coordination-adapters.d.ts +53 -8
  134. package/dist/core/sdd/coordination/coordination-adapters.js +182 -16
  135. package/dist/core/sdd/coordination/index.d.ts +1 -0
  136. package/dist/core/sdd/coordination/index.js +1 -0
  137. package/dist/core/sdd/coordination/redis-runtime.d.ts +131 -0
  138. package/dist/core/sdd/coordination/redis-runtime.js +698 -0
  139. package/dist/core/sdd/deepagent-contracts.d.ts +370 -0
  140. package/dist/core/sdd/deepagent-contracts.js +235 -0
  141. package/dist/core/sdd/deepagents/adr-governor.d.ts +2 -0
  142. package/dist/core/sdd/deepagents/adr-governor.js +30 -0
  143. package/dist/core/sdd/deepagents/backend.d.ts +63 -0
  144. package/dist/core/sdd/deepagents/backend.js +174 -0
  145. package/dist/core/sdd/deepagents/codesdd-tools.d.ts +39 -0
  146. package/dist/core/sdd/deepagents/codesdd-tools.js +83 -0
  147. package/dist/core/sdd/deepagents/evidence-mapper.d.ts +86 -0
  148. package/dist/core/sdd/deepagents/evidence-mapper.js +178 -0
  149. package/dist/core/sdd/deepagents/model-provider.d.ts +53 -0
  150. package/dist/core/sdd/deepagents/model-provider.js +379 -0
  151. package/dist/core/sdd/deepagents/policy-enforcement.d.ts +30 -0
  152. package/dist/core/sdd/deepagents/policy-enforcement.js +90 -0
  153. package/dist/core/sdd/deepagents/policy.d.ts +75 -0
  154. package/dist/core/sdd/deepagents/policy.js +358 -0
  155. package/dist/core/sdd/deepagents/quality-witness.d.ts +3 -0
  156. package/dist/core/sdd/deepagents/quality-witness.js +77 -0
  157. package/dist/core/sdd/deepagents/reversa-subagents.d.ts +75 -0
  158. package/dist/core/sdd/deepagents/reversa-subagents.js +182 -0
  159. package/dist/core/sdd/deepagents/runtime-factory.d.ts +90 -0
  160. package/dist/core/sdd/deepagents/runtime-factory.js +231 -0
  161. package/dist/core/sdd/deepagents/runtime-loader.d.ts +16 -0
  162. package/dist/core/sdd/deepagents/runtime-loader.js +65 -0
  163. package/dist/core/sdd/default-bootstrap-files.d.ts +3 -3
  164. package/dist/core/sdd/default-bootstrap-files.js +50 -10
  165. package/dist/core/sdd/default-skills.d.ts +30 -0
  166. package/dist/core/sdd/default-skills.js +288 -8
  167. package/dist/core/sdd/devtrack-api-appliance.d.ts +91 -0
  168. package/dist/core/sdd/devtrack-api-appliance.js +280 -0
  169. package/dist/core/sdd/devtrack-api-architecture.d.ts +31 -0
  170. package/dist/core/sdd/devtrack-api-architecture.js +608 -0
  171. package/dist/core/sdd/devtrack-api-import-boundary.d.ts +19 -0
  172. package/dist/core/sdd/devtrack-api-import-boundary.js +32 -0
  173. package/dist/core/sdd/diagnose.d.ts +59 -0
  174. package/dist/core/sdd/diagnose.js +37 -37
  175. package/dist/core/sdd/docs-sync.js +54 -20
  176. package/dist/core/sdd/domain/capability-diff.d.ts +63 -0
  177. package/dist/core/sdd/domain/capability-diff.js +200 -0
  178. package/dist/core/sdd/domain/change-safety-guardrails.d.ts +74 -0
  179. package/dist/core/sdd/domain/change-safety-guardrails.js +333 -0
  180. package/dist/core/sdd/domain/post-active-validation.d.ts +7 -0
  181. package/dist/core/sdd/domain/post-active-validation.js +61 -0
  182. package/dist/core/sdd/domain/semantic-intent-classifier.d.ts +29 -0
  183. package/dist/core/sdd/domain/semantic-intent-classifier.js +117 -0
  184. package/dist/core/sdd/domain/transition-engine.js +1 -0
  185. package/dist/core/sdd/entity-reference.d.ts +5 -0
  186. package/dist/core/sdd/entity-reference.js +22 -0
  187. package/dist/core/sdd/foundation-artifact-map-validator.d.ts +16 -0
  188. package/dist/core/sdd/foundation-artifact-map-validator.js +71 -0
  189. package/dist/core/sdd/foundation-layer-manifest.d.ts +24 -0
  190. package/dist/core/sdd/foundation-layer-manifest.js +117 -0
  191. package/dist/core/sdd/governance-backfill.d.ts +31 -0
  192. package/dist/core/sdd/governance-backfill.js +359 -0
  193. package/dist/core/sdd/governance-parser.d.ts +21 -0
  194. package/dist/core/sdd/governance-parser.js +91 -0
  195. package/dist/core/sdd/governance-schemas.d.ts +245 -0
  196. package/dist/core/sdd/governance-schemas.js +143 -0
  197. package/dist/core/sdd/{import-openspec.d.ts → import-legacy-spec.d.ts} +7 -7
  198. package/dist/core/sdd/{import-openspec.js → import-legacy-spec.js} +21 -29
  199. package/dist/core/sdd/init.d.ts +3 -0
  200. package/dist/core/sdd/init.js +6 -3
  201. package/dist/core/sdd/intent-guard.d.ts +22 -0
  202. package/dist/core/sdd/intent-guard.js +67 -0
  203. package/dist/core/sdd/json-schema.js +108 -6
  204. package/dist/core/sdd/knowledge-graph.d.ts +45 -0
  205. package/dist/core/sdd/knowledge-graph.js +288 -0
  206. package/dist/core/sdd/legacy-operations.js +507 -44
  207. package/dist/core/sdd/lenses.d.ts +1 -0
  208. package/dist/core/sdd/lenses.js +29 -1
  209. package/dist/core/sdd/migrate-workspace.js +95 -2
  210. package/dist/core/sdd/migrate.d.ts +1 -1
  211. package/dist/core/sdd/migrate.js +36 -2
  212. package/dist/core/sdd/package-security-gates.d.ts +21 -0
  213. package/dist/core/sdd/package-security-gates.js +119 -0
  214. package/dist/core/sdd/package-structure-gate.d.ts +83 -0
  215. package/dist/core/sdd/package-structure-gate.js +357 -0
  216. package/dist/core/sdd/parallel-feat-automation.d.ts +330 -0
  217. package/dist/core/sdd/parallel-feat-automation.js +424 -0
  218. package/dist/core/sdd/plugin-broker.d.ts +777 -0
  219. package/dist/core/sdd/plugin-broker.js +492 -0
  220. package/dist/core/sdd/plugin-certification.d.ts +79 -0
  221. package/dist/core/sdd/plugin-certification.js +453 -0
  222. package/dist/core/sdd/plugin-cli.d.ts +139 -0
  223. package/dist/core/sdd/plugin-cli.js +265 -0
  224. package/dist/core/sdd/plugin-evidence.d.ts +348 -0
  225. package/dist/core/sdd/plugin-evidence.js +307 -0
  226. package/dist/core/sdd/plugin-manifest.d.ts +232 -0
  227. package/dist/core/sdd/plugin-manifest.js +225 -0
  228. package/dist/core/sdd/plugin-policy-pack.d.ts +88 -0
  229. package/dist/core/sdd/plugin-policy-pack.js +236 -0
  230. package/dist/core/sdd/plugin-policy.d.ts +68 -0
  231. package/dist/core/sdd/plugin-policy.js +212 -0
  232. package/dist/core/sdd/plugin-registry.d.ts +447 -0
  233. package/dist/core/sdd/plugin-registry.js +138 -0
  234. package/dist/core/sdd/plugin-sdk-contract.d.ts +363 -0
  235. package/dist/core/sdd/plugin-sdk-contract.js +268 -0
  236. package/dist/core/sdd/plugin-skill-binding.d.ts +151 -0
  237. package/dist/core/sdd/plugin-skill-binding.js +339 -0
  238. package/dist/core/sdd/quality-artifact-manifest-validator.d.ts +28 -0
  239. package/dist/core/sdd/quality-artifact-manifest-validator.js +167 -0
  240. package/dist/core/sdd/quality-evidence-renderer.d.ts +65 -0
  241. package/dist/core/sdd/quality-evidence-renderer.js +218 -0
  242. package/dist/core/sdd/quality-scenario-runner.d.ts +42 -0
  243. package/dist/core/sdd/quality-scenario-runner.js +613 -0
  244. package/dist/core/sdd/quality-validation.d.ts +620 -0
  245. package/dist/core/sdd/quality-validation.js +239 -0
  246. package/dist/core/sdd/release-readiness.d.ts +19 -0
  247. package/dist/core/sdd/release-readiness.js +472 -0
  248. package/dist/core/sdd/resolve-project-root.d.ts +2 -2
  249. package/dist/core/sdd/resolve-project-root.js +11 -5
  250. package/dist/core/sdd/runtime-boundary-contract.d.ts +45 -0
  251. package/dist/core/sdd/runtime-boundary-contract.js +90 -0
  252. package/dist/core/sdd/sanitize.d.ts +30 -1
  253. package/dist/core/sdd/sanitize.js +23 -23
  254. package/dist/core/sdd/sdk-agent-plugin-quality-gates.d.ts +150 -0
  255. package/dist/core/sdd/sdk-agent-plugin-quality-gates.js +258 -0
  256. package/dist/core/sdd/services/agent-run.service.d.ts +97 -0
  257. package/dist/core/sdd/services/agent-run.service.js +261 -0
  258. package/dist/core/sdd/services/breakdown.service.js +2 -1
  259. package/dist/core/sdd/services/capability-diff.service.d.ts +18 -0
  260. package/dist/core/sdd/services/capability-diff.service.js +26 -0
  261. package/dist/core/sdd/services/change-safety-preflight.service.d.ts +17 -0
  262. package/dist/core/sdd/services/change-safety-preflight.service.js +17 -0
  263. package/dist/core/sdd/services/context.service.d.ts +43 -340
  264. package/dist/core/sdd/services/context.service.js +341 -25
  265. package/dist/core/sdd/services/debate.service.js +15 -2
  266. package/dist/core/sdd/services/feature-lint.service.d.ts +22 -0
  267. package/dist/core/sdd/services/feature-lint.service.js +105 -5
  268. package/dist/core/sdd/services/finalize.service.d.ts +105 -0
  269. package/dist/core/sdd/services/finalize.service.js +499 -38
  270. package/dist/core/sdd/services/frontend-gap.service.js +22 -7
  271. package/dist/core/sdd/services/frontend-impact.service.d.ts +1 -1
  272. package/dist/core/sdd/services/governance-control-plane-runtime-adapters.d.ts +17 -0
  273. package/dist/core/sdd/services/governance-control-plane-runtime-adapters.js +38 -0
  274. package/dist/core/sdd/services/governance-control-plane.service.d.ts +66 -0
  275. package/dist/core/sdd/services/governance-control-plane.service.js +134 -0
  276. package/dist/core/sdd/services/ingest-deposito.service.js +1 -1
  277. package/dist/core/sdd/services/legacy-capability.service.d.ts +10 -7
  278. package/dist/core/sdd/services/legacy-capability.service.js +38 -21
  279. package/dist/core/sdd/services/mcp-runtime.service.d.ts +123 -8
  280. package/dist/core/sdd/services/mcp-runtime.service.js +1085 -33
  281. package/dist/core/sdd/services/onboard.service.js +2 -1
  282. package/dist/core/sdd/services/rebuild.service.js +6 -1
  283. package/dist/core/sdd/services/semantic-intent-classifier.service.d.ts +6 -0
  284. package/dist/core/sdd/services/semantic-intent-classifier.service.js +7 -0
  285. package/dist/core/sdd/services/skills-sync.service.d.ts +17 -5
  286. package/dist/core/sdd/services/skills-sync.service.js +55 -2
  287. package/dist/core/sdd/services/start.service.js +6 -4
  288. package/dist/core/sdd/skill-bundles-curation-schema.d.ts +66 -0
  289. package/dist/core/sdd/skill-bundles-curation-schema.js +52 -0
  290. package/dist/core/sdd/skill-evidence.d.ts +19 -0
  291. package/dist/core/sdd/skill-evidence.js +38 -0
  292. package/dist/core/sdd/skill-policy-pool.d.ts +46 -0
  293. package/dist/core/sdd/skill-policy-pool.js +185 -0
  294. package/dist/core/sdd/state.d.ts +23 -0
  295. package/dist/core/sdd/state.js +313 -66
  296. package/dist/core/sdd/store/sdd-stores.js +2 -2
  297. package/dist/core/sdd/structural-health.d.ts +55 -55
  298. package/dist/core/sdd/types.d.ts +60 -19
  299. package/dist/core/sdd/types.js +21 -0
  300. package/dist/core/sdd/upgrade-to-codesdd.d.ts +45 -0
  301. package/dist/core/sdd/upgrade-to-codesdd.js +179 -0
  302. package/dist/core/sdd/views.js +17 -0
  303. package/dist/core/sdd/workspace-schemas.d.ts +670 -19
  304. package/dist/core/sdd/workspace-schemas.js +285 -5
  305. package/dist/core/sdd/write-manifest.js +22 -4
  306. package/dist/core/shared/skill-generation.d.ts +1 -1
  307. package/dist/core/shared/skill-generation.js +15 -15
  308. package/dist/core/shared/tool-detection.d.ts +3 -3
  309. package/dist/core/shared/tool-detection.js +14 -14
  310. package/dist/core/specs-apply.js +6 -6
  311. package/dist/core/templates/index.d.ts +1 -1
  312. package/dist/core/templates/index.js +1 -1
  313. package/dist/core/templates/workflows/apply-change.js +14 -14
  314. package/dist/core/templates/workflows/archive-change.js +32 -32
  315. package/dist/core/templates/workflows/bulk-archive-change.js +25 -25
  316. package/dist/core/templates/workflows/continue-change.js +12 -12
  317. package/dist/core/templates/workflows/explore.js +29 -29
  318. package/dist/core/templates/workflows/feedback.js +6 -6
  319. package/dist/core/templates/workflows/ff-change.js +24 -24
  320. package/dist/core/templates/workflows/new-change.js +20 -20
  321. package/dist/core/templates/workflows/onboard.js +33 -33
  322. package/dist/core/templates/workflows/propose.js +23 -23
  323. package/dist/core/templates/workflows/sdd.js +8 -8
  324. package/dist/core/templates/workflows/sync-specs.js +19 -19
  325. package/dist/core/templates/workflows/verify-change.js +17 -17
  326. package/dist/core/update.d.ts +2 -2
  327. package/dist/core/update.js +16 -15
  328. package/dist/core/validation/constants.d.ts +1 -1
  329. package/dist/core/validation/constants.js +1 -1
  330. package/dist/core/view.js +11 -11
  331. package/dist/domains/sdd/index.d.ts +6 -0
  332. package/dist/domains/sdd/index.js +6 -0
  333. package/dist/infrastructures/sdd/index.d.ts +7 -0
  334. package/dist/infrastructures/sdd/index.js +6 -0
  335. package/dist/presentations/cli/sdd/index.d.ts +3 -0
  336. package/dist/presentations/cli/sdd/index.js +3 -0
  337. package/dist/shared/sdd/index.d.ts +3 -0
  338. package/dist/shared/sdd/index.js +2 -0
  339. package/dist/telemetry/config.d.ts +2 -1
  340. package/dist/telemetry/config.js +17 -8
  341. package/dist/telemetry/index.d.ts +10 -2
  342. package/dist/telemetry/index.js +40 -7
  343. package/dist/ui/ascii-patterns.d.ts +2 -2
  344. package/dist/ui/ascii-patterns.js +2 -2
  345. package/dist/ui/welcome-screen.js +2 -2
  346. package/dist/utils/change-metadata.d.ts +4 -4
  347. package/dist/utils/change-metadata.js +6 -6
  348. package/dist/utils/change-utils.d.ts +3 -3
  349. package/dist/utils/change-utils.js +5 -5
  350. package/dist/utils/file-system.js +1 -1
  351. package/dist/utils/interactive.js +1 -1
  352. package/dist/utils/item-discovery.js +4 -4
  353. package/dist/utils/legacy-spec-compat.d.ts +2 -0
  354. package/dist/utils/legacy-spec-compat.js +2 -0
  355. package/dist/utils/shell-detection.d.ts +1 -0
  356. package/dist/utils/shell-detection.js +16 -0
  357. package/package.json +34 -21
  358. package/schemas/sdd/1-spec.schema.json +1 -1
  359. package/schemas/sdd/2-plan.schema.json +280 -3
  360. package/schemas/sdd/3-tasks.schema.json +73 -1
  361. package/schemas/sdd/4-changelog.schema.json +1 -1
  362. package/schemas/sdd/5-quality.schema.json +701 -5
  363. package/schemas/sdd/adr.schema.json +148 -0
  364. package/schemas/sdd/agent-binding-adapter.schema.json +210 -0
  365. package/schemas/sdd/agent-binding-resolution.schema.json +338 -0
  366. package/schemas/sdd/agent-runtime-command-plan.schema.json +212 -0
  367. package/schemas/sdd/agent-runtime-opencode-run-evidence.schema.json +270 -0
  368. package/schemas/sdd/backlog-projection-plan.schema.json +180 -0
  369. package/schemas/sdd/backlog-provider-contract.schema.json +260 -0
  370. package/schemas/sdd/codesdd-plugin.schema.json +645 -0
  371. package/schemas/sdd/debate.schema.json +244 -0
  372. package/schemas/sdd/deepagent-decision-evidence.schema.json +58 -0
  373. package/schemas/sdd/deepagent-env-contract.schema.json +143 -0
  374. package/schemas/sdd/deepagent-quality-evidence.schema.json +108 -0
  375. package/schemas/sdd/deepagent-run-evidence.schema.json +192 -0
  376. package/schemas/sdd/deepagent-run-plan.schema.json +197 -0
  377. package/schemas/sdd/deepagent-run-request.schema.json +637 -0
  378. package/schemas/sdd/deepagent-subagent-evidence.schema.json +110 -0
  379. package/schemas/sdd/deepagent-tool-call-evidence.schema.json +78 -0
  380. package/schemas/sdd/discarded.schema.json +127 -0
  381. package/schemas/sdd/epic.schema.json +147 -0
  382. package/schemas/sdd/insight.schema.json +136 -0
  383. package/schemas/sdd/parallel-feat-automation-plan.schema.json +304 -0
  384. package/schemas/sdd/parallel-feat-automation-request.schema.json +109 -0
  385. package/schemas/sdd/parallel-feat-scheduler-request.schema.json +116 -0
  386. package/schemas/sdd/parallel-feat-scheduler-result.schema.json +404 -0
  387. package/schemas/sdd/plugin-artifact-manifest.schema.json +259 -0
  388. package/schemas/sdd/plugin-artifact-map.schema.json +223 -0
  389. package/schemas/sdd/plugin-compliance-index.schema.json +136 -0
  390. package/schemas/sdd/plugin-dry-run-plan.schema.json +260 -0
  391. package/schemas/sdd/plugin-evidence-manifest.schema.json +678 -0
  392. package/schemas/sdd/plugin-language-runtime.schema.json +103 -0
  393. package/schemas/sdd/plugin-package-governance.schema.json +74 -0
  394. package/schemas/sdd/plugin-policy-evaluation.schema.json +92 -0
  395. package/schemas/sdd/plugin-policy-pack-evaluation.schema.json +94 -0
  396. package/schemas/sdd/plugin-policy-pack.schema.json +196 -0
  397. package/schemas/sdd/plugin-registry.schema.json +729 -0
  398. package/schemas/sdd/plugin-rollback-manifest.schema.json +87 -0
  399. package/schemas/sdd/plugin-runtime-invocation-plan.schema.json +954 -0
  400. package/schemas/sdd/plugin-skill-binding-resolution.schema.json +305 -0
  401. package/schemas/sdd/plugin-skill-binding.schema.json +88 -0
  402. package/schemas/sdd/plugin-validation-manifest.schema.json +123 -0
  403. package/schemas/sdd/quality-architecture-schema.schema.json +216 -0
  404. package/schemas/sdd/quality-evidence-bundle.schema.json +1337 -0
  405. package/schemas/sdd/quality-run.schema.json +197 -0
  406. package/schemas/sdd/quality-scenario.schema.json +252 -0
  407. package/schemas/sdd/sdk-agent-plugin-quality-gate-input.schema.json +168 -0
  408. package/schemas/sdd/sdk-agent-plugin-quality-gate-report.schema.json +160 -0
  409. package/schemas/sdd/workspace-catalog.schema.json +13232 -35
  410. package/schemas/spec-driven/schema.yaml +4 -4
  411. package/schemas/spec-driven/templates/proposal.md +1 -1
  412. package/dist/utils/openspec-compat.d.ts +0 -2
  413. package/dist/utils/openspec-compat.js +0 -2
@@ -1,48 +1,310 @@
1
1
  import * as fs from 'node:fs';
2
2
  import * as path from 'node:path';
3
3
  import * as os from 'node:os';
4
+ import { createHash } from 'node:crypto';
4
5
  // Constants
5
- export const GLOBAL_CONFIG_DIR_NAME = 'openspec';
6
- export const GLOBAL_CONFIG_FILE_NAME = 'config.json';
7
- export const GLOBAL_DATA_DIR_NAME = 'openspec';
6
+ export const GLOBAL_CONFIG_DIR_NAME = '.codesdd';
7
+ export const GLOBAL_CONFIG_FILE_NAME = 'config.toml';
8
+ export const GLOBAL_DATA_DIR_NAME = 'codesdd';
9
+ export const GLOBAL_CACHE_DIR_NAME = 'cache';
10
+ export const GLOBAL_CACHE_TIERS = ['providers', 'projects', 'schemas', 'deepagents', 'plugins'];
11
+ export const LEGACY_GLOBAL_CONFIG_DIR_NAME = 'codesdd';
12
+ export const LEGACY_GLOBAL_CONFIG_FILE_NAME = 'config.json';
8
13
  const DEFAULT_CONFIG = {
9
14
  featureFlags: {},
10
15
  profile: 'core',
11
16
  delivery: 'both',
12
17
  };
18
+ function resolveHomeDir() {
19
+ return process.env.HOME || process.env.USERPROFILE || os.homedir();
20
+ }
21
+ function isTomlObject(value) {
22
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
23
+ }
24
+ function stripInlineComment(input) {
25
+ let inSingle = false;
26
+ let inDouble = false;
27
+ let escaped = false;
28
+ for (let i = 0; i < input.length; i++) {
29
+ const ch = input[i];
30
+ if (escaped) {
31
+ escaped = false;
32
+ continue;
33
+ }
34
+ if (ch === '\\' && inDouble) {
35
+ escaped = true;
36
+ continue;
37
+ }
38
+ if (ch === '\'' && !inDouble) {
39
+ inSingle = !inSingle;
40
+ continue;
41
+ }
42
+ if (ch === '"' && !inSingle) {
43
+ inDouble = !inDouble;
44
+ continue;
45
+ }
46
+ if (ch === '#' && !inSingle && !inDouble) {
47
+ return input.slice(0, i).trimEnd();
48
+ }
49
+ }
50
+ return input.trimEnd();
51
+ }
52
+ function parseTomlKeyPath(raw) {
53
+ const parts = [];
54
+ const trimmed = raw.trim();
55
+ if (trimmed.length === 0) {
56
+ throw new SyntaxError('Invalid TOML key: empty key');
57
+ }
58
+ let token = '';
59
+ let inSingle = false;
60
+ let inDouble = false;
61
+ let escaped = false;
62
+ for (let i = 0; i < trimmed.length; i++) {
63
+ const ch = trimmed[i];
64
+ if (escaped) {
65
+ token += ch;
66
+ escaped = false;
67
+ continue;
68
+ }
69
+ if (ch === '\\' && inDouble) {
70
+ token += ch;
71
+ escaped = true;
72
+ continue;
73
+ }
74
+ if (ch === '\'' && !inDouble) {
75
+ inSingle = !inSingle;
76
+ token += ch;
77
+ continue;
78
+ }
79
+ if (ch === '"' && !inSingle) {
80
+ inDouble = !inDouble;
81
+ token += ch;
82
+ continue;
83
+ }
84
+ if (ch === '.' && !inSingle && !inDouble) {
85
+ const piece = token.trim();
86
+ if (piece.length === 0) {
87
+ throw new SyntaxError(`Invalid TOML key: "${raw}"`);
88
+ }
89
+ parts.push(unquoteTomlKey(piece));
90
+ token = '';
91
+ continue;
92
+ }
93
+ token += ch;
94
+ }
95
+ if (inSingle || inDouble) {
96
+ throw new SyntaxError(`Invalid TOML key: unclosed quote in "${raw}"`);
97
+ }
98
+ const tail = token.trim();
99
+ if (tail.length === 0) {
100
+ throw new SyntaxError(`Invalid TOML key: "${raw}"`);
101
+ }
102
+ parts.push(unquoteTomlKey(tail));
103
+ return parts;
104
+ }
105
+ function unquoteTomlKey(raw) {
106
+ const trimmed = raw.trim();
107
+ if ((trimmed.startsWith('"') && trimmed.endsWith('"')) || (trimmed.startsWith('\'') && trimmed.endsWith('\''))) {
108
+ return trimmed.slice(1, -1);
109
+ }
110
+ return trimmed;
111
+ }
112
+ function setObjectPath(target, pathParts, value) {
113
+ let cursor = target;
114
+ for (let i = 0; i < pathParts.length - 1; i++) {
115
+ const key = pathParts[i];
116
+ const current = cursor[key];
117
+ if (!isTomlObject(current)) {
118
+ cursor[key] = {};
119
+ }
120
+ cursor = cursor[key];
121
+ }
122
+ cursor[pathParts[pathParts.length - 1]] = value;
123
+ }
124
+ function getObjectPath(target, pathParts) {
125
+ let cursor = target;
126
+ for (const part of pathParts) {
127
+ const value = cursor[part];
128
+ if (!isTomlObject(value)) {
129
+ cursor[part] = {};
130
+ }
131
+ cursor = cursor[part];
132
+ }
133
+ return cursor;
134
+ }
135
+ function parseTomlPrimitive(raw) {
136
+ const value = raw.trim();
137
+ if (value === 'true')
138
+ return true;
139
+ if (value === 'false')
140
+ return false;
141
+ if ((value.startsWith('"') && value.endsWith('"')) || (value.startsWith('\'') && value.endsWith('\''))) {
142
+ if (value.startsWith('"')) {
143
+ return JSON.parse(value);
144
+ }
145
+ return value.slice(1, -1);
146
+ }
147
+ if (value.startsWith('[') && value.endsWith(']')) {
148
+ const inner = value.slice(1, -1).trim();
149
+ if (!inner)
150
+ return [];
151
+ const tokens = [];
152
+ let token = '';
153
+ let inSingle = false;
154
+ let inDouble = false;
155
+ let escaped = false;
156
+ let depth = 0;
157
+ for (let i = 0; i < inner.length; i++) {
158
+ const ch = inner[i];
159
+ if (escaped) {
160
+ token += ch;
161
+ escaped = false;
162
+ continue;
163
+ }
164
+ if (ch === '\\' && inDouble) {
165
+ token += ch;
166
+ escaped = true;
167
+ continue;
168
+ }
169
+ if (ch === '\'' && !inDouble) {
170
+ inSingle = !inSingle;
171
+ token += ch;
172
+ continue;
173
+ }
174
+ if (ch === '"' && !inSingle) {
175
+ inDouble = !inDouble;
176
+ token += ch;
177
+ continue;
178
+ }
179
+ if (!inSingle && !inDouble) {
180
+ if (ch === '[')
181
+ depth++;
182
+ if (ch === ']')
183
+ depth--;
184
+ }
185
+ if (ch === ',' && !inSingle && !inDouble && depth === 0) {
186
+ tokens.push(token.trim());
187
+ token = '';
188
+ continue;
189
+ }
190
+ token += ch;
191
+ }
192
+ if (token.trim().length > 0) {
193
+ tokens.push(token.trim());
194
+ }
195
+ return tokens.map((entry) => parseTomlPrimitive(entry));
196
+ }
197
+ if (/^[+-]?\d+$/.test(value)) {
198
+ return Number.parseInt(value, 10);
199
+ }
200
+ if (/^[+-]?\d+\.\d+$/.test(value)) {
201
+ return Number.parseFloat(value);
202
+ }
203
+ throw new SyntaxError(`Invalid TOML value: ${value}`);
204
+ }
205
+ function formatTomlKey(key) {
206
+ if (/^[A-Za-z0-9_-]+$/.test(key)) {
207
+ return key;
208
+ }
209
+ return JSON.stringify(key);
210
+ }
211
+ function formatTomlValue(value) {
212
+ if (typeof value === 'string') {
213
+ return JSON.stringify(value);
214
+ }
215
+ if (typeof value === 'boolean' || typeof value === 'number') {
216
+ return String(value);
217
+ }
218
+ if (Array.isArray(value)) {
219
+ return `[${value.map((item) => formatTomlValue(item)).join(', ')}]`;
220
+ }
221
+ throw new TypeError('Unsupported TOML value type');
222
+ }
223
+ function appendTomlTable(lines, tablePath, tableValue) {
224
+ if (tablePath.length > 0) {
225
+ lines.push(`[${tablePath.map((part) => formatTomlKey(part)).join('.')}]`);
226
+ }
227
+ const childTables = [];
228
+ for (const [key, value] of Object.entries(tableValue)) {
229
+ if (value === undefined || value === null) {
230
+ continue;
231
+ }
232
+ if (typeof value === 'object' && !Array.isArray(value)) {
233
+ childTables.push({ path: [...tablePath, key], value: value });
234
+ continue;
235
+ }
236
+ lines.push(`${formatTomlKey(key)} = ${formatTomlValue(value)}`);
237
+ }
238
+ for (const child of childTables) {
239
+ lines.push('');
240
+ appendTomlTable(lines, child.path, child.value);
241
+ }
242
+ }
243
+ export function parseTomlContent(content) {
244
+ const result = {};
245
+ let activeTable = result;
246
+ const lines = content.split(/\r?\n/u);
247
+ for (const rawLine of lines) {
248
+ const line = stripInlineComment(rawLine).trim();
249
+ if (!line)
250
+ continue;
251
+ if (line.startsWith('[') && line.endsWith(']')) {
252
+ const tableName = line.slice(1, -1).trim();
253
+ if (!tableName) {
254
+ throw new SyntaxError('Invalid TOML table header: empty name');
255
+ }
256
+ activeTable = getObjectPath(result, parseTomlKeyPath(tableName));
257
+ continue;
258
+ }
259
+ const equalsIndex = line.indexOf('=');
260
+ if (equalsIndex <= 0) {
261
+ throw new SyntaxError(`Invalid TOML assignment: "${line}"`);
262
+ }
263
+ const keyRaw = line.slice(0, equalsIndex).trim();
264
+ const valueRaw = line.slice(equalsIndex + 1).trim();
265
+ const keyParts = parseTomlKeyPath(keyRaw);
266
+ setObjectPath(activeTable, keyParts, parseTomlPrimitive(valueRaw));
267
+ }
268
+ return result;
269
+ }
270
+ export function stringifyTomlContent(value) {
271
+ const lines = [];
272
+ appendTomlTable(lines, [], value);
273
+ return `${lines.join('\n').trim()}\n`;
274
+ }
13
275
  /**
14
- * Gets the global configuration directory path following XDG Base Directory Specification.
15
- *
16
- * - All platforms: $XDG_CONFIG_HOME/openspec/ if XDG_CONFIG_HOME is set
17
- * - Unix/macOS fallback: ~/.config/openspec/
18
- * - Windows fallback: %APPDATA%/openspec/
276
+ * Gets the canonical global runtime/configuration directory.
277
+ * This repository standardizes global runtime state under ~/.codesdd.
19
278
  */
20
279
  export function getGlobalConfigDir() {
21
- // XDG_CONFIG_HOME takes precedence on all platforms when explicitly set
280
+ return path.join(resolveHomeDir(), GLOBAL_CONFIG_DIR_NAME);
281
+ }
282
+ /**
283
+ * Gets the legacy XDG-compatible JSON config directory.
284
+ * This path is kept only for read compatibility with pre-~/.codesdd installs.
285
+ */
286
+ export function getLegacyGlobalConfigDir() {
22
287
  const xdgConfigHome = process.env.XDG_CONFIG_HOME;
23
288
  if (xdgConfigHome) {
24
- return path.join(xdgConfigHome, GLOBAL_CONFIG_DIR_NAME);
289
+ return path.join(xdgConfigHome, LEGACY_GLOBAL_CONFIG_DIR_NAME);
25
290
  }
26
291
  const platform = os.platform();
27
292
  if (platform === 'win32') {
28
- // Windows: use %APPDATA%
29
293
  const appData = process.env.APPDATA;
30
294
  if (appData) {
31
- return path.join(appData, GLOBAL_CONFIG_DIR_NAME);
295
+ return path.join(appData, LEGACY_GLOBAL_CONFIG_DIR_NAME);
32
296
  }
33
- // Fallback for Windows if APPDATA is not set
34
- return path.join(os.homedir(), 'AppData', 'Roaming', GLOBAL_CONFIG_DIR_NAME);
297
+ return path.join(resolveHomeDir(), 'AppData', 'Roaming', LEGACY_GLOBAL_CONFIG_DIR_NAME);
35
298
  }
36
- // Unix/macOS fallback: ~/.config
37
- return path.join(os.homedir(), '.config', GLOBAL_CONFIG_DIR_NAME);
299
+ return path.join(resolveHomeDir(), '.config', LEGACY_GLOBAL_CONFIG_DIR_NAME);
38
300
  }
39
301
  /**
40
302
  * Gets the global data directory path following XDG Base Directory Specification.
41
303
  * Used for user data like schema overrides.
42
304
  *
43
- * - All platforms: $XDG_DATA_HOME/openspec/ if XDG_DATA_HOME is set
44
- * - Unix/macOS fallback: ~/.local/share/openspec/
45
- * - Windows fallback: %LOCALAPPDATA%/openspec/
305
+ * - All platforms: $XDG_DATA_HOME/legacy-spec/ if XDG_DATA_HOME is set
306
+ * - Unix/macOS fallback: ~/.local/share/legacy-spec/
307
+ * - Windows fallback: %LOCALAPPDATA%/legacy-spec/
46
308
  */
47
309
  export function getGlobalDataDir() {
48
310
  // XDG_DATA_HOME takes precedence on all platforms when explicitly set
@@ -58,17 +320,73 @@ export function getGlobalDataDir() {
58
320
  return path.join(localAppData, GLOBAL_DATA_DIR_NAME);
59
321
  }
60
322
  // Fallback for Windows if LOCALAPPDATA is not set
61
- return path.join(os.homedir(), 'AppData', 'Local', GLOBAL_DATA_DIR_NAME);
323
+ return path.join(resolveHomeDir(), 'AppData', 'Local', GLOBAL_DATA_DIR_NAME);
62
324
  }
63
325
  // Unix/macOS fallback: ~/.local/share
64
- return path.join(os.homedir(), '.local', 'share', GLOBAL_DATA_DIR_NAME);
326
+ return path.join(resolveHomeDir(), '.local', 'share', GLOBAL_DATA_DIR_NAME);
65
327
  }
66
328
  /**
67
- * Gets the path to the global config file.
329
+ * Gets the path to the canonical global config TOML file.
68
330
  */
69
331
  export function getGlobalConfigPath() {
70
332
  return path.join(getGlobalConfigDir(), GLOBAL_CONFIG_FILE_NAME);
71
333
  }
334
+ /**
335
+ * Gets the global cache directory path under ~/.codesdd/cache.
336
+ */
337
+ export function getGlobalCacheDir() {
338
+ return path.join(getGlobalConfigDir(), GLOBAL_CACHE_DIR_NAME);
339
+ }
340
+ /**
341
+ * Gets all tier directory paths for the global cache layout.
342
+ */
343
+ export function getGlobalCacheTierDirs() {
344
+ return GLOBAL_CACHE_TIERS.reduce((acc, tier) => {
345
+ acc[tier] = path.join(getGlobalCacheDir(), tier);
346
+ return acc;
347
+ }, {});
348
+ }
349
+ /**
350
+ * Ensures ~/.codesdd/cache and all known tier directories exist.
351
+ */
352
+ export function ensureGlobalCacheLayout() {
353
+ const cacheRoot = getGlobalCacheDir();
354
+ if (!fs.existsSync(cacheRoot)) {
355
+ fs.mkdirSync(cacheRoot, { recursive: true });
356
+ }
357
+ const tiers = getGlobalCacheTierDirs();
358
+ for (const tierPath of Object.values(tiers)) {
359
+ if (!fs.existsSync(tierPath)) {
360
+ fs.mkdirSync(tierPath, { recursive: true });
361
+ }
362
+ }
363
+ return tiers;
364
+ }
365
+ /**
366
+ * Creates a stable project fingerprint for cache partitioning.
367
+ */
368
+ export function createProjectFingerprint(projectRoot) {
369
+ const normalizedRoot = path.resolve(projectRoot);
370
+ return createHash('sha256').update(normalizedRoot).digest('hex').slice(0, 16);
371
+ }
372
+ /**
373
+ * Gets the path to the legacy global config JSON file.
374
+ */
375
+ export function getLegacyGlobalConfigPath() {
376
+ return path.join(getLegacyGlobalConfigDir(), LEGACY_GLOBAL_CONFIG_FILE_NAME);
377
+ }
378
+ export function readGlobalConfigRaw() {
379
+ const primaryConfigPath = getGlobalConfigPath();
380
+ if (fs.existsSync(primaryConfigPath)) {
381
+ const content = fs.readFileSync(primaryConfigPath, 'utf-8');
382
+ return parseTomlContent(content);
383
+ }
384
+ const legacyConfigPath = getLegacyGlobalConfigPath();
385
+ if (fs.existsSync(legacyConfigPath)) {
386
+ return JSON.parse(fs.readFileSync(legacyConfigPath, 'utf-8'));
387
+ }
388
+ return {};
389
+ }
72
390
  /**
73
391
  * Loads the global configuration from disk.
74
392
  * Returns default configuration if file doesn't exist or is invalid.
@@ -77,11 +395,10 @@ export function getGlobalConfigPath() {
77
395
  export function getGlobalConfig() {
78
396
  const configPath = getGlobalConfigPath();
79
397
  try {
80
- if (!fs.existsSync(configPath)) {
398
+ const parsed = readGlobalConfigRaw();
399
+ if (Object.keys(parsed).length === 0 && !fs.existsSync(configPath) && !fs.existsSync(getLegacyGlobalConfigPath())) {
81
400
  return { ...DEFAULT_CONFIG };
82
401
  }
83
- const content = fs.readFileSync(configPath, 'utf-8');
84
- const parsed = JSON.parse(content);
85
402
  // Merge with defaults (loaded values take precedence)
86
403
  const merged = {
87
404
  ...DEFAULT_CONFIG,
@@ -104,7 +421,7 @@ export function getGlobalConfig() {
104
421
  catch (error) {
105
422
  // Log warning for parse errors, but not for missing files
106
423
  if (error instanceof SyntaxError) {
107
- console.error(`Warning: Invalid JSON in ${configPath}, using defaults`);
424
+ console.error(`Warning: Invalid config in ${configPath}, using defaults`);
108
425
  }
109
426
  return { ...DEFAULT_CONFIG };
110
427
  }
@@ -120,6 +437,6 @@ export function saveGlobalConfig(config) {
120
437
  if (!fs.existsSync(configDir)) {
121
438
  fs.mkdirSync(configDir, { recursive: true });
122
439
  }
123
- fs.writeFileSync(configPath, JSON.stringify(config, null, 2) + '\n', 'utf-8');
440
+ fs.writeFileSync(configPath, stringifyTomlContent(config), 'utf-8');
124
441
  }
125
442
  //# sourceMappingURL=global-config.js.map
@@ -1,2 +1,2 @@
1
- export { GLOBAL_CONFIG_DIR_NAME, GLOBAL_CONFIG_FILE_NAME, GLOBAL_DATA_DIR_NAME, type GlobalConfig, getGlobalConfigDir, getGlobalConfigPath, getGlobalConfig, saveGlobalConfig, getGlobalDataDir } from './global-config.js';
1
+ export { GLOBAL_CONFIG_DIR_NAME, GLOBAL_CONFIG_FILE_NAME, GLOBAL_DATA_DIR_NAME, GLOBAL_CACHE_DIR_NAME, GLOBAL_CACHE_TIERS, LEGACY_GLOBAL_CONFIG_DIR_NAME, LEGACY_GLOBAL_CONFIG_FILE_NAME, type GlobalConfig, getGlobalConfigDir, getGlobalCacheDir, getGlobalCacheTierDirs, ensureGlobalCacheLayout, createProjectFingerprint, getLegacyGlobalConfigDir, getGlobalConfigPath, getLegacyGlobalConfigPath, getGlobalConfig, readGlobalConfigRaw, parseTomlContent, stringifyTomlContent, saveGlobalConfig, getGlobalDataDir } from './global-config.js';
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -1,3 +1,3 @@
1
- // Core OpenSpec logic will be implemented here
2
- export { GLOBAL_CONFIG_DIR_NAME, GLOBAL_CONFIG_FILE_NAME, GLOBAL_DATA_DIR_NAME, getGlobalConfigDir, getGlobalConfigPath, getGlobalConfig, saveGlobalConfig, getGlobalDataDir } from './global-config.js';
1
+ // Core CodeSDD logic will be implemented here
2
+ export { GLOBAL_CONFIG_DIR_NAME, GLOBAL_CONFIG_FILE_NAME, GLOBAL_DATA_DIR_NAME, GLOBAL_CACHE_DIR_NAME, GLOBAL_CACHE_TIERS, LEGACY_GLOBAL_CONFIG_DIR_NAME, LEGACY_GLOBAL_CONFIG_FILE_NAME, getGlobalConfigDir, getGlobalCacheDir, getGlobalCacheTierDirs, ensureGlobalCacheLayout, createProjectFingerprint, getLegacyGlobalConfigDir, getGlobalConfigPath, getLegacyGlobalConfigPath, getGlobalConfig, readGlobalConfigRaw, parseTomlContent, stringifyTomlContent, saveGlobalConfig, getGlobalDataDir } from './global-config.js';
3
3
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Init Command
3
3
  *
4
- * Sets up OpenSpec with Agent Skills and /opsx:* slash commands.
4
+ * Sets up CodeSDD with Agent Skills and /opsx:* slash commands.
5
5
  * This is the unified setup command that replaces both the old init and experimental commands.
6
6
  */
7
7
  type InitCommandOptions = {
@@ -9,16 +9,21 @@ type InitCommandOptions = {
9
9
  force?: boolean;
10
10
  interactive?: boolean;
11
11
  profile?: string;
12
+ allowNoToolsFallback?: boolean;
13
+ silent?: boolean;
12
14
  };
13
15
  export declare class InitCommand {
14
16
  private readonly toolsArg?;
15
17
  private readonly force;
16
18
  private readonly interactiveOption?;
17
19
  private readonly profileOverride?;
20
+ private readonly allowNoToolsFallback;
21
+ private readonly silent;
18
22
  constructor(options?: InitCommandOptions);
19
23
  execute(targetPath: string): Promise<void>;
20
24
  private validate;
21
25
  private canPromptInteractively;
26
+ private log;
22
27
  private resolveProfileOverride;
23
28
  private handleLegacyCleanup;
24
29
  private performLegacyCleanup;