@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
@@ -527,6 +527,19 @@ export declare const SkillCatalogEntrySchema: z.ZodObject<{
527
527
  tools: z.ZodDefault<z.ZodArray<z.ZodString>>;
528
528
  bundle_ids: z.ZodDefault<z.ZodArray<z.ZodString>>;
529
529
  priority: z.ZodDefault<z.ZodNumber>;
530
+ token_budget: z.ZodDefault<z.ZodObject<{
531
+ input_max: z.ZodNumber;
532
+ output_max: z.ZodNumber;
533
+ thinking_max: z.ZodNumber;
534
+ }, z.core.$strip>>;
535
+ integrity_hash: z.ZodDefault<z.ZodString>;
536
+ deterministic_pair: z.ZodOptional<z.ZodObject<{
537
+ plugin_id: z.ZodString;
538
+ capability: z.ZodOptional<z.ZodString>;
539
+ operation: z.ZodOptional<z.ZodString>;
540
+ }, z.core.$strip>>;
541
+ deprecated_at: z.ZodOptional<z.ZodString>;
542
+ superseded_by: z.ZodOptional<z.ZodString>;
530
543
  }, z.core.$strip>;
531
544
  export declare const SkillBundleSchema: z.ZodObject<{
532
545
  id: z.ZodString;
@@ -646,8 +659,8 @@ export declare const ControlCatalogItemSchema: z.ZodObject<{
646
659
  }>>;
647
660
  automatable: z.ZodDefault<z.ZodEnum<{
648
661
  yes: "yes";
649
- partial: "partial";
650
662
  no: "no";
663
+ partial: "partial";
651
664
  }>>;
652
665
  verification_types: z.ZodDefault<z.ZodArray<z.ZodString>>;
653
666
  jurisdiction_profile_ids: z.ZodDefault<z.ZodArray<z.ZodString>>;
@@ -1137,6 +1150,19 @@ export declare const SkillCatalogStateSchema: z.ZodObject<{
1137
1150
  tools: z.ZodDefault<z.ZodArray<z.ZodString>>;
1138
1151
  bundle_ids: z.ZodDefault<z.ZodArray<z.ZodString>>;
1139
1152
  priority: z.ZodDefault<z.ZodNumber>;
1153
+ token_budget: z.ZodDefault<z.ZodObject<{
1154
+ input_max: z.ZodNumber;
1155
+ output_max: z.ZodNumber;
1156
+ thinking_max: z.ZodNumber;
1157
+ }, z.core.$strip>>;
1158
+ integrity_hash: z.ZodDefault<z.ZodString>;
1159
+ deterministic_pair: z.ZodOptional<z.ZodObject<{
1160
+ plugin_id: z.ZodString;
1161
+ capability: z.ZodOptional<z.ZodString>;
1162
+ operation: z.ZodOptional<z.ZodString>;
1163
+ }, z.core.$strip>>;
1164
+ deprecated_at: z.ZodOptional<z.ZodString>;
1165
+ superseded_by: z.ZodOptional<z.ZodString>;
1140
1166
  }, z.core.$strip>>>;
1141
1167
  bundles: z.ZodDefault<z.ZodArray<z.ZodObject<{
1142
1168
  id: z.ZodString;
@@ -1245,8 +1271,8 @@ export declare const SourceIndexStateSchema: z.ZodObject<{
1245
1271
  }>>;
1246
1272
  automatable: z.ZodDefault<z.ZodEnum<{
1247
1273
  yes: "yes";
1248
- partial: "partial";
1249
1274
  no: "no";
1275
+ partial: "partial";
1250
1276
  }>>;
1251
1277
  verification_types: z.ZodDefault<z.ZodArray<z.ZodString>>;
1252
1278
  jurisdiction_profile_ids: z.ZodDefault<z.ZodArray<z.ZodString>>;
@@ -1375,10 +1401,10 @@ export declare const RepoMapStateSchema: z.ZodObject<{
1375
1401
  }, z.core.$strip>>>;
1376
1402
  }, z.core.$strip>;
1377
1403
  export declare const NamingContractTermScopeSchema: z.ZodEnum<{
1404
+ state: "state";
1378
1405
  all: "all";
1379
1406
  code: "code";
1380
1407
  docs: "docs";
1381
- state: "state";
1382
1408
  }>;
1383
1409
  export declare const NamingContractTermSeveritySchema: z.ZodEnum<{
1384
1410
  error: "error";
@@ -1387,10 +1413,10 @@ export declare const NamingContractTermSeveritySchema: z.ZodEnum<{
1387
1413
  export declare const NamingContractForbiddenTermSchema: z.ZodObject<{
1388
1414
  term: z.ZodString;
1389
1415
  scope: z.ZodDefault<z.ZodEnum<{
1416
+ state: "state";
1390
1417
  all: "all";
1391
1418
  code: "code";
1392
1419
  docs: "docs";
1393
- state: "state";
1394
1420
  }>>;
1395
1421
  severity: z.ZodDefault<z.ZodEnum<{
1396
1422
  error: "error";
@@ -1418,10 +1444,10 @@ export declare const NamingContractRenameRuleSchema: z.ZodObject<{
1418
1444
  from: z.ZodString;
1419
1445
  to: z.ZodString;
1420
1446
  scope: z.ZodDefault<z.ZodEnum<{
1447
+ state: "state";
1421
1448
  all: "all";
1422
1449
  code: "code";
1423
1450
  docs: "docs";
1424
- state: "state";
1425
1451
  }>>;
1426
1452
  phase: z.ZodString;
1427
1453
  owner: z.ZodString;
@@ -1460,10 +1486,10 @@ export declare const NamingContractStateSchema: z.ZodObject<{
1460
1486
  forbidden_terms: z.ZodDefault<z.ZodArray<z.ZodObject<{
1461
1487
  term: z.ZodString;
1462
1488
  scope: z.ZodDefault<z.ZodEnum<{
1489
+ state: "state";
1463
1490
  all: "all";
1464
1491
  code: "code";
1465
1492
  docs: "docs";
1466
- state: "state";
1467
1493
  }>>;
1468
1494
  severity: z.ZodDefault<z.ZodEnum<{
1469
1495
  error: "error";
@@ -1481,10 +1507,10 @@ export declare const NamingContractStateSchema: z.ZodObject<{
1481
1507
  from: z.ZodString;
1482
1508
  to: z.ZodString;
1483
1509
  scope: z.ZodDefault<z.ZodEnum<{
1510
+ state: "state";
1484
1511
  all: "all";
1485
1512
  code: "code";
1486
1513
  docs: "docs";
1487
- state: "state";
1488
1514
  }>>;
1489
1515
  phase: z.ZodString;
1490
1516
  owner: z.ZodString;
@@ -300,6 +300,23 @@ export const SkillCatalogEntrySchema = z.object({
300
300
  tools: StringArraySchema,
301
301
  bundle_ids: StringArraySchema,
302
302
  priority: z.number().int().nonnegative().default(0),
303
+ token_budget: z
304
+ .object({
305
+ input_max: z.number().int().positive(),
306
+ output_max: z.number().int().positive(),
307
+ thinking_max: z.number().int().nonnegative(),
308
+ })
309
+ .default({ input_max: 12000, output_max: 4000, thinking_max: 2000 }),
310
+ integrity_hash: z.string().regex(/^[a-f0-9]{64}$/).default('0000000000000000000000000000000000000000000000000000000000000000'),
311
+ deterministic_pair: z
312
+ .object({
313
+ plugin_id: z.string().min(1),
314
+ capability: z.string().min(1).optional(),
315
+ operation: z.string().min(1).optional(),
316
+ })
317
+ .optional(),
318
+ deprecated_at: z.string().datetime().optional(),
319
+ superseded_by: z.string().min(1).optional(),
303
320
  });
304
321
  export const SkillBundleSchema = z.object({
305
322
  id: z.string().min(1),
@@ -0,0 +1,45 @@
1
+ import { type SddMigrationAssessment } from './migrate.js';
2
+ import { buildSddContractConfig } from './contract.js';
3
+ export interface UpgradeToCodeSddReadinessReport {
4
+ status: 'ready' | 'needs-upgrade' | 'blocked';
5
+ assessment: SddMigrationAssessment;
6
+ blockers: string[];
7
+ warnings: string[];
8
+ planned_steps: string[];
9
+ }
10
+ export interface UpgradeToCodeSddManifest {
11
+ manifest_version: 1;
12
+ transaction_id: string;
13
+ mode: 'apply';
14
+ created_at: string;
15
+ readiness: UpgradeToCodeSddReadinessReport;
16
+ backup_root: string;
17
+ backed_up_paths: string[];
18
+ migration_messages: string[];
19
+ sdd_contract: ReturnType<typeof buildSddContractConfig>;
20
+ }
21
+ export interface UpgradeToCodeSddResult {
22
+ mode: 'dry-run' | 'apply';
23
+ readiness: UpgradeToCodeSddReadinessReport;
24
+ manifest?: UpgradeToCodeSddManifest;
25
+ manifest_path?: string;
26
+ }
27
+ export interface UpgradeToCodeSddRollbackResult {
28
+ transaction_id: string;
29
+ restored_paths: string[];
30
+ skipped_paths: string[];
31
+ manifest_path: string;
32
+ reason: string;
33
+ }
34
+ export declare class UpgradeToCodeSddCommand {
35
+ execute(projectRoot: string, options?: {
36
+ dryRun?: boolean;
37
+ apply?: boolean;
38
+ yes?: boolean;
39
+ }): Promise<UpgradeToCodeSddResult>;
40
+ rollback(projectRoot: string, transactionId: string, options?: {
41
+ reason?: string;
42
+ }): Promise<UpgradeToCodeSddRollbackResult>;
43
+ }
44
+ export declare function formatUpgradeToCodeSddReadiness(report: UpgradeToCodeSddReadinessReport): string;
45
+ //# sourceMappingURL=upgrade-to-codesdd.d.ts.map
@@ -0,0 +1,179 @@
1
+ import { createHash } from 'node:crypto';
2
+ import { constants as fsConstants } from 'node:fs';
3
+ import { access, cp, mkdir, readFile, rm, writeFile } from 'node:fs/promises';
4
+ import path from 'node:path';
5
+ import { assessSddMigration, SddMigrateCommand } from './migrate.js';
6
+ import { buildSddContractConfig } from './contract.js';
7
+ function timestampToken(value = new Date()) {
8
+ return value.toISOString().replace(/[-:]/g, '').replace(/\.\d{3}Z$/, 'Z');
9
+ }
10
+ function createTransactionId(projectRoot, value = new Date()) {
11
+ const suffix = createHash('sha1').update(`${projectRoot}:${value.toISOString()}`).digest('hex').slice(0, 8).toUpperCase();
12
+ return `UPG-${timestampToken(value)}-${suffix}`;
13
+ }
14
+ async function pathExists(targetPath) {
15
+ try {
16
+ await access(targetPath, fsConstants.F_OK);
17
+ return true;
18
+ }
19
+ catch {
20
+ return false;
21
+ }
22
+ }
23
+ function upgradeRoot(projectRoot) {
24
+ return path.join(projectRoot, '.sdd', 'reports', 'upgrade-to-codesdd');
25
+ }
26
+ function manifestPath(projectRoot, transactionId) {
27
+ return path.join(upgradeRoot(projectRoot), `${transactionId}-manifest.json`);
28
+ }
29
+ function backupRoot(projectRoot, transactionId) {
30
+ return path.join(upgradeRoot(projectRoot), transactionId, 'backups');
31
+ }
32
+ function backupCandidates(projectRoot) {
33
+ return [
34
+ '.sdd/config.yaml',
35
+ '.sdd/state',
36
+ '.sdd/active',
37
+ '.sdd/planned',
38
+ '.sdd/archived',
39
+ ].map((entry) => path.join(projectRoot, entry));
40
+ }
41
+ function toProjectRelative(projectRoot, targetPath) {
42
+ return path.relative(projectRoot, targetPath).replace(/\\/g, '/');
43
+ }
44
+ function backupDestination(projectRoot, root, targetPath) {
45
+ return path.join(root, toProjectRelative(projectRoot, targetPath));
46
+ }
47
+ async function writeJson(filePath, value) {
48
+ await mkdir(path.dirname(filePath), { recursive: true });
49
+ await writeFile(filePath, `${JSON.stringify(value, null, 2)}\n`, 'utf-8');
50
+ }
51
+ async function readJson(filePath) {
52
+ return JSON.parse(await readFile(filePath, 'utf-8'));
53
+ }
54
+ async function createBackups(projectRoot, transactionId) {
55
+ const root = backupRoot(projectRoot, transactionId);
56
+ const backedUp = [];
57
+ for (const candidate of backupCandidates(projectRoot)) {
58
+ if (!(await pathExists(candidate)))
59
+ continue;
60
+ const destination = backupDestination(projectRoot, root, candidate);
61
+ await mkdir(path.dirname(destination), { recursive: true });
62
+ await cp(candidate, destination, { recursive: true });
63
+ backedUp.push(toProjectRelative(projectRoot, candidate));
64
+ }
65
+ return backedUp;
66
+ }
67
+ function buildReadiness(assessment) {
68
+ const blockers = [];
69
+ if (assessment.currentVersion > assessment.targetVersion) {
70
+ blockers.push(`state_version=${assessment.currentVersion} is newer than supported target ${assessment.targetVersion}`);
71
+ }
72
+ const warnings = [...assessment.reasons];
73
+ const plannedSteps = [
74
+ 'create transaction backup under .sdd/reports/upgrade-to-codesdd',
75
+ 'run canonical SDD migration to CodeSDD state contract',
76
+ 'write upgrade manifest with readiness and migration messages',
77
+ 'allow rollback by transaction id while backup artifacts are present',
78
+ ];
79
+ return {
80
+ status: blockers.length > 0 ? 'blocked' : assessment.needsMigration ? 'needs-upgrade' : 'ready',
81
+ assessment,
82
+ blockers,
83
+ warnings,
84
+ planned_steps: plannedSteps,
85
+ };
86
+ }
87
+ export class UpgradeToCodeSddCommand {
88
+ async execute(projectRoot, options) {
89
+ const root = path.resolve(projectRoot);
90
+ const assessment = await assessSddMigration(root);
91
+ const readiness = buildReadiness(assessment);
92
+ if (!options?.apply || options.dryRun) {
93
+ return { mode: 'dry-run', readiness };
94
+ }
95
+ if (!options.yes) {
96
+ throw new Error('upgrade-to-codesdd apply requires --yes for transactional mutation.');
97
+ }
98
+ if (readiness.blockers.length > 0) {
99
+ throw new Error(`upgrade-to-codesdd blocked: ${readiness.blockers.join(' | ')}`);
100
+ }
101
+ const transactionId = createTransactionId(root);
102
+ const backedUpPaths = await createBackups(root, transactionId);
103
+ const migration = await new SddMigrateCommand().execute(root, { radToEpic: true });
104
+ const manifest = {
105
+ manifest_version: 1,
106
+ transaction_id: transactionId,
107
+ mode: 'apply',
108
+ created_at: new Date().toISOString(),
109
+ readiness,
110
+ backup_root: toProjectRelative(root, backupRoot(root, transactionId)),
111
+ backed_up_paths: backedUpPaths,
112
+ migration_messages: migration.messages,
113
+ sdd_contract: buildSddContractConfig(),
114
+ };
115
+ const manifestFile = manifestPath(root, transactionId);
116
+ await writeJson(manifestFile, manifest);
117
+ return {
118
+ mode: 'apply',
119
+ readiness,
120
+ manifest,
121
+ manifest_path: toProjectRelative(root, manifestFile),
122
+ };
123
+ }
124
+ async rollback(projectRoot, transactionId, options) {
125
+ const root = path.resolve(projectRoot);
126
+ if (!/^UPG-\d{8}T\d{6}Z-[A-F0-9]{8}$/.test(transactionId)) {
127
+ throw new Error('Invalid upgrade transaction id. Expected UPG-YYYYMMDDTHHMMSSZ-XXXXXXXX.');
128
+ }
129
+ const manifestFile = manifestPath(root, transactionId);
130
+ const manifest = await readJson(manifestFile);
131
+ const restoredPaths = [];
132
+ const skippedPaths = [];
133
+ for (const relativePath of manifest.backed_up_paths) {
134
+ const backupPath = path.join(root, manifest.backup_root, relativePath);
135
+ const targetPath = path.join(root, relativePath);
136
+ if (!(await pathExists(backupPath))) {
137
+ skippedPaths.push(relativePath);
138
+ continue;
139
+ }
140
+ await rm(targetPath, { recursive: true, force: true });
141
+ await mkdir(path.dirname(targetPath), { recursive: true });
142
+ await cp(backupPath, targetPath, { recursive: true });
143
+ restoredPaths.push(relativePath);
144
+ }
145
+ await writeJson(path.join(upgradeRoot(root), `${transactionId}-rollback.json`), {
146
+ transaction_id: transactionId,
147
+ rolled_back_at: new Date().toISOString(),
148
+ reason: options?.reason || 'Rollback requested.',
149
+ restored_paths: restoredPaths,
150
+ skipped_paths: skippedPaths,
151
+ });
152
+ return {
153
+ transaction_id: transactionId,
154
+ restored_paths: restoredPaths,
155
+ skipped_paths: skippedPaths,
156
+ manifest_path: toProjectRelative(root, manifestFile),
157
+ reason: options?.reason || 'Rollback requested.',
158
+ };
159
+ }
160
+ }
161
+ export function formatUpgradeToCodeSddReadiness(report) {
162
+ const lines = [
163
+ `Status: ${report.status}`,
164
+ `State version: ${report.assessment.currentVersion} -> ${report.assessment.targetVersion}`,
165
+ `Needs migration: ${report.assessment.needsMigration ? 'yes' : 'no'}`,
166
+ ];
167
+ if (report.blockers.length > 0) {
168
+ lines.push('Blockers:');
169
+ lines.push(...report.blockers.map((item) => `- ${item}`));
170
+ }
171
+ if (report.warnings.length > 0) {
172
+ lines.push('Warnings:');
173
+ lines.push(...report.warnings.map((item) => `- ${item}`));
174
+ }
175
+ lines.push('Planned steps:');
176
+ lines.push(...report.planned_steps.map((item) => `- ${item}`));
177
+ return lines.join('\n');
178
+ }
179
+ //# sourceMappingURL=upgrade-to-codesdd.js.map