@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
@@ -0,0 +1,307 @@
1
+ import { z } from 'zod';
2
+ import { pluginArtifactManifestSchema, } from './plugin-broker.js';
3
+ import { pluginManifestSchema } from './plugin-manifest.js';
4
+ import { pluginPolicyEvaluationSchema } from './plugin-policy.js';
5
+ import { pluginPolicyPackEvaluationSchema, } from './plugin-policy-pack.js';
6
+ const FEATURE_REF_PATTERN = /^FEAT-\d{4}$/;
7
+ const OPERATION_ID_PATTERN = /^[a-z0-9][a-z0-9-]*$/;
8
+ const jsonObjectSchema = z.record(z.string(), z.unknown());
9
+ export const pluginValidationEvidenceSchema = z.object({
10
+ command: z.string().min(1),
11
+ status: z.enum(['pending', 'passed', 'failed', 'skipped']),
12
+ evidence_ref: z.string().optional(),
13
+ coverage: z
14
+ .object({
15
+ statements: z.number().min(0).max(100).optional(),
16
+ branches: z.number().min(0).max(100).optional(),
17
+ functions: z.number().min(0).max(100).optional(),
18
+ lines: z.number().min(0).max(100).optional(),
19
+ })
20
+ .optional(),
21
+ });
22
+ export const pluginValidationManifestSchema = z.object({
23
+ schema_version: z.literal(1),
24
+ operation_id: z.string().regex(OPERATION_ID_PATTERN),
25
+ generated_at: z.string().datetime(),
26
+ feature_ref: z.string().regex(FEATURE_REF_PATTERN),
27
+ plugin_ref: z.object({
28
+ id: z.string().min(1),
29
+ version: z.string().min(1),
30
+ }),
31
+ capability: z.string().min(1),
32
+ status: z.enum(['pending', 'passed', 'failed', 'partial']),
33
+ validations: z.array(pluginValidationEvidenceSchema).default([]),
34
+ });
35
+ export const pluginEvidenceManifestSchema = z.object({
36
+ schema_version: z.literal(1),
37
+ operation_id: z.string().regex(OPERATION_ID_PATTERN),
38
+ generated_at: z.string().datetime(),
39
+ feature_ref: z.string().regex(FEATURE_REF_PATTERN),
40
+ plugin_ref: z.object({
41
+ id: z.string().min(1),
42
+ version: z.string().min(1),
43
+ }),
44
+ capability: z.string().min(1),
45
+ artifact_manifest: pluginArtifactManifestSchema,
46
+ validation_manifest: pluginValidationManifestSchema,
47
+ policy_evaluation: pluginPolicyEvaluationSchema.optional(),
48
+ policy_pack_evaluation: pluginPolicyPackEvaluationSchema.optional(),
49
+ traceability_refs: z.array(z.string().min(1)).default([]),
50
+ quality_refs: z.array(z.string().min(1)).default([]),
51
+ residual_risks: z
52
+ .array(z.object({
53
+ code: z.string().min(1),
54
+ severity: z.enum(['low', 'medium', 'high', 'critical']),
55
+ description: z.string().min(1),
56
+ mitigation: z.string().min(1).optional(),
57
+ }))
58
+ .default([]),
59
+ metadata: jsonObjectSchema.default({}),
60
+ });
61
+ export const pluginComplianceCriterionSchema = z.object({
62
+ id: z.string().min(1),
63
+ label: z.string().min(1),
64
+ status: z.enum(['pass', 'warn', 'fail']),
65
+ score: z.number().min(0),
66
+ max_score: z.number().positive(),
67
+ evidence: z.string().min(1),
68
+ issues: z.array(z.string().min(1)).default([]),
69
+ });
70
+ export const pluginComplianceIndexSchema = z.object({
71
+ schema_version: z.literal(1),
72
+ generated_at: z.string().datetime(),
73
+ feature_ref: z.string().regex(FEATURE_REF_PATTERN),
74
+ operation_id: z.string().regex(OPERATION_ID_PATTERN),
75
+ plugin_ref: z.object({
76
+ id: z.string().min(1),
77
+ version: z.string().min(1),
78
+ }),
79
+ capability: z.string().min(1),
80
+ score: z.number().min(0).max(100),
81
+ decision: z.enum(['compliant', 'warning', 'non-compliant']),
82
+ criteria: z.array(pluginComplianceCriterionSchema).min(1),
83
+ evidence_refs: z.array(z.string().min(1)).default([]),
84
+ });
85
+ export function buildPluginEvidenceManifest(input) {
86
+ const artifactManifest = pluginArtifactManifestSchema.parse(input.artifact_manifest);
87
+ const validationManifest = input.validation_manifest ??
88
+ buildDefaultValidationManifestFromArtifact(artifactManifest, artifactManifest.generated_at);
89
+ return pluginEvidenceManifestSchema.parse({
90
+ schema_version: 1,
91
+ operation_id: artifactManifest.operation_id,
92
+ generated_at: artifactManifest.generated_at,
93
+ feature_ref: artifactManifest.feature_ref,
94
+ plugin_ref: artifactManifest.plugin_ref,
95
+ capability: artifactManifest.capability,
96
+ artifact_manifest: artifactManifest,
97
+ validation_manifest: validationManifest,
98
+ policy_evaluation: input.policy_evaluation,
99
+ policy_pack_evaluation: input.policy_pack_evaluation,
100
+ traceability_refs: input.traceability_refs ?? [],
101
+ quality_refs: input.quality_refs ?? [],
102
+ residual_risks: input.residual_risks ?? [],
103
+ metadata: input.metadata ?? {},
104
+ });
105
+ }
106
+ export function buildPluginComplianceIndex(input) {
107
+ const manifest = pluginManifestSchema.parse(input.manifest);
108
+ const evidence = pluginEvidenceManifestSchema.parse(input.evidence_manifest);
109
+ assertEvidenceMatchesManifest(manifest, evidence);
110
+ const criteria = [
111
+ manifestValidityCriterion(manifest),
112
+ policyGateCriterion(evidence.policy_evaluation),
113
+ policyPackCriterion(evidence.policy_pack_evaluation),
114
+ trustTierCriterion(manifest),
115
+ dryRunApplyCoverageCriterion(manifest),
116
+ artifactTraceabilityCriterion(evidence.artifact_manifest),
117
+ validationEvidenceCriterion(evidence.validation_manifest),
118
+ supplyChainDependencyCriterion(manifest),
119
+ residualRiskCriterion(evidence),
120
+ ];
121
+ const score = roundScore(criteria.reduce((total, criterion) => total + criterion.score, 0));
122
+ return pluginComplianceIndexSchema.parse({
123
+ schema_version: 1,
124
+ generated_at: input.generated_at ?? evidence.generated_at,
125
+ feature_ref: evidence.feature_ref,
126
+ operation_id: evidence.operation_id,
127
+ plugin_ref: evidence.plugin_ref,
128
+ capability: evidence.capability,
129
+ score,
130
+ decision: score >= 90 && criteria.every((criterion) => criterion.status === 'pass')
131
+ ? 'compliant'
132
+ : score >= 70 && !criteria.some((criterion) => criterion.status === 'fail')
133
+ ? 'warning'
134
+ : 'non-compliant',
135
+ criteria,
136
+ evidence_refs: [
137
+ `artifact:${evidence.operation_id}`,
138
+ `validation:${evidence.operation_id}`,
139
+ ...evidence.quality_refs,
140
+ ...evidence.traceability_refs,
141
+ ],
142
+ });
143
+ }
144
+ function buildDefaultValidationManifestFromArtifact(artifactManifest, generatedAt) {
145
+ return pluginValidationManifestSchema.parse({
146
+ schema_version: 1,
147
+ operation_id: artifactManifest.operation_id,
148
+ generated_at: generatedAt,
149
+ feature_ref: artifactManifest.feature_ref,
150
+ plugin_ref: artifactManifest.plugin_ref,
151
+ capability: artifactManifest.capability,
152
+ status: resolveValidationStatus(artifactManifest.validation_evidence),
153
+ validations: artifactManifest.validation_evidence.map((validation) => ({
154
+ command: validation.command,
155
+ status: validation.status,
156
+ evidence_ref: validation.evidence_ref,
157
+ })),
158
+ });
159
+ }
160
+ function assertEvidenceMatchesManifest(manifest, evidence) {
161
+ const expectedPluginRef = `${manifest.id}@${manifest.version}`;
162
+ const evidencePluginRef = `${evidence.plugin_ref.id}@${evidence.plugin_ref.version}`;
163
+ if (expectedPluginRef !== evidencePluginRef) {
164
+ throw new Error(`Evidence plugin reference ${evidencePluginRef} does not match manifest ${expectedPluginRef}.`);
165
+ }
166
+ if (!manifest.capabilities.some((capability) => capability.name === evidence.capability)) {
167
+ throw new Error(`Evidence capability ${evidence.capability} is not declared by ${expectedPluginRef}.`);
168
+ }
169
+ }
170
+ function manifestValidityCriterion(manifest) {
171
+ return criterion('manifest-validity', 'Manifest validity', 10, 10, 'pass', `${manifest.id}@${manifest.version} is schema-valid.`);
172
+ }
173
+ function policyGateCriterion(policy) {
174
+ if (!policy) {
175
+ return criterion('policy-gate', 'Runtime policy gate', 0, 15, 'fail', 'No runtime policy evaluation was attached.', [
176
+ 'POLICY_EVALUATION_MISSING',
177
+ ]);
178
+ }
179
+ if (policy.decision === 'allow') {
180
+ return criterion('policy-gate', 'Runtime policy gate', 15, 15, 'pass', 'Runtime policy decision is allow.');
181
+ }
182
+ if (policy.decision === 'warn') {
183
+ return criterion('policy-gate', 'Runtime policy gate', 9, 15, 'warn', 'Runtime policy decision is warn.', issueCodes(policy.issues));
184
+ }
185
+ return criterion('policy-gate', 'Runtime policy gate', 0, 15, 'fail', 'Runtime policy decision is deny.', issueCodes(policy.issues));
186
+ }
187
+ function policyPackCriterion(evaluation) {
188
+ if (!evaluation) {
189
+ return criterion('policy-pack', 'Policy pack evaluation', 0, 15, 'fail', 'No policy pack evaluation was attached.', [
190
+ 'POLICY_PACK_EVALUATION_MISSING',
191
+ ]);
192
+ }
193
+ if (evaluation.decision === 'allow') {
194
+ return criterion('policy-pack', 'Policy pack evaluation', 15, 15, 'pass', 'Policy pack decision is allow.');
195
+ }
196
+ if (evaluation.decision === 'warn') {
197
+ return criterion('policy-pack', 'Policy pack evaluation', 9, 15, 'warn', 'Policy pack decision is warn.', issueCodes(evaluation.issues));
198
+ }
199
+ return criterion('policy-pack', 'Policy pack evaluation', 0, 15, 'fail', 'Policy pack decision is deny.', issueCodes(evaluation.issues));
200
+ }
201
+ function trustTierCriterion(manifest) {
202
+ const scoreByTrustTier = {
203
+ 'enterprise-approved': 10,
204
+ 'local-dev': 6,
205
+ experimental: 3,
206
+ blocked: 0,
207
+ };
208
+ const score = scoreByTrustTier[manifest.governance.trust_tier];
209
+ return criterion('trust-tier', 'Trust tier', score, 10, score >= 10 ? 'pass' : score > 0 ? 'warn' : 'fail', `Trust tier is ${manifest.governance.trust_tier}.`);
210
+ }
211
+ function dryRunApplyCoverageCriterion(manifest) {
212
+ const mutatingCapabilities = manifest.capabilities.filter((capability) => capability.write_scope.length > 0);
213
+ const missingDryRun = mutatingCapabilities.filter((capability) => !capability.supports_dry_run).map((capability) => capability.name);
214
+ const applyWithoutRollback = mutatingCapabilities
215
+ .filter((capability) => capability.supports_apply && !capability.supports_rollback)
216
+ .map((capability) => capability.name);
217
+ const issues = [
218
+ ...missingDryRun.map((name) => `MISSING_DRY_RUN:${name}`),
219
+ ...applyWithoutRollback.map((name) => `APPLY_WITHOUT_ROLLBACK:${name}`),
220
+ ];
221
+ if (issues.length === 0) {
222
+ return criterion('dry-run-apply-coverage', 'Dry-run and apply coverage', 10, 10, 'pass', 'All mutating capabilities support dry-run and apply-capable capabilities declare rollback.');
223
+ }
224
+ return criterion('dry-run-apply-coverage', 'Dry-run and apply coverage', 4, 10, 'warn', 'Some mutating capabilities have incomplete mode coverage.', issues);
225
+ }
226
+ function artifactTraceabilityCriterion(artifactManifest) {
227
+ const missingReasons = artifactManifest.artifacts.filter((artifact) => artifact.reason.trim().length === 0);
228
+ if (artifactManifest.artifacts.length === 0) {
229
+ return criterion('artifact-traceability', 'Artifact traceability', 0, 15, 'fail', 'Artifact manifest contains no artifacts.', [
230
+ 'ARTIFACTS_MISSING',
231
+ ]);
232
+ }
233
+ if (missingReasons.length > 0) {
234
+ return criterion('artifact-traceability', 'Artifact traceability', 8, 15, 'warn', 'Some artifacts are missing reasons.', [
235
+ 'ARTIFACT_REASON_MISSING',
236
+ ]);
237
+ }
238
+ return criterion('artifact-traceability', 'Artifact traceability', 15, 15, 'pass', `${artifactManifest.artifacts.length} artifacts are traceable.`);
239
+ }
240
+ function validationEvidenceCriterion(validationManifest) {
241
+ if (validationManifest.validations.length === 0) {
242
+ return criterion('validation-evidence', 'Validation evidence', 0, 10, 'fail', 'No validation evidence was attached.', [
243
+ 'VALIDATION_EVIDENCE_MISSING',
244
+ ]);
245
+ }
246
+ if (validationManifest.status === 'passed') {
247
+ return criterion('validation-evidence', 'Validation evidence', 10, 10, 'pass', 'All validations passed.');
248
+ }
249
+ if (validationManifest.status === 'pending' || validationManifest.status === 'partial') {
250
+ return criterion('validation-evidence', 'Validation evidence', 6, 10, 'warn', `Validation status is ${validationManifest.status}.`);
251
+ }
252
+ return criterion('validation-evidence', 'Validation evidence', 0, 10, 'fail', 'One or more validations failed.', [
253
+ 'VALIDATION_FAILED',
254
+ ]);
255
+ }
256
+ function supplyChainDependencyCriterion(manifest) {
257
+ const missing = [
258
+ ...(manifest.supply_chain.checksum ? [] : ['CHECKSUM_MISSING']),
259
+ ...(manifest.supply_chain.signature || manifest.supply_chain.provenance ? [] : ['SIGNATURE_OR_PROVENANCE_MISSING']),
260
+ ...(manifest.supply_chain.sbom ? [] : ['SBOM_MISSING']),
261
+ ...(manifest.validation.security_checks.length > 0 ? [] : ['SECURITY_CHECKS_MISSING']),
262
+ ...(manifest.validation.dependency_checks.length > 0 ? [] : ['DEPENDENCY_CHECKS_MISSING']),
263
+ ];
264
+ if (missing.length === 0) {
265
+ return criterion('supply-chain-dependencies', 'Supply-chain and dependency evidence', 10, 10, 'pass', 'Supply-chain, security, and dependency evidence is declared.');
266
+ }
267
+ return criterion('supply-chain-dependencies', 'Supply-chain and dependency evidence', 4, 10, 'warn', 'Supply-chain or dependency evidence is incomplete.', missing);
268
+ }
269
+ function residualRiskCriterion(evidence) {
270
+ const criticalOrHigh = evidence.residual_risks.filter((risk) => risk.severity === 'critical' || risk.severity === 'high');
271
+ if (criticalOrHigh.length > 0) {
272
+ return criterion('residual-risks', 'Residual risks', 0, 5, 'fail', 'High or critical residual risks remain.', criticalOrHigh.map((risk) => risk.code));
273
+ }
274
+ if (evidence.residual_risks.length > 0) {
275
+ return criterion('residual-risks', 'Residual risks', 3, 5, 'warn', 'Low or medium residual risks remain.', evidence.residual_risks.map((risk) => risk.code));
276
+ }
277
+ return criterion('residual-risks', 'Residual risks', 5, 5, 'pass', 'No residual risks were reported.');
278
+ }
279
+ function criterion(id, label, score, maxScore, status, evidence, issues = []) {
280
+ return pluginComplianceCriterionSchema.parse({
281
+ id,
282
+ label,
283
+ score,
284
+ max_score: maxScore,
285
+ status,
286
+ evidence,
287
+ issues,
288
+ });
289
+ }
290
+ function resolveValidationStatus(validations) {
291
+ if (validations.length === 0)
292
+ return 'pending';
293
+ if (validations.some((validation) => validation.status === 'failed'))
294
+ return 'failed';
295
+ if (validations.every((validation) => validation.status === 'passed'))
296
+ return 'passed';
297
+ if (validations.every((validation) => validation.status === 'pending'))
298
+ return 'pending';
299
+ return 'partial';
300
+ }
301
+ function issueCodes(issues) {
302
+ return issues.map((issue) => issue.code);
303
+ }
304
+ function roundScore(value) {
305
+ return Math.round(value * 100) / 100;
306
+ }
307
+ //# sourceMappingURL=plugin-evidence.js.map
@@ -0,0 +1,232 @@
1
+ import { z } from 'zod';
2
+ export declare const pluginCapabilitySchema: z.ZodObject<{
3
+ name: z.ZodString;
4
+ description: z.ZodString;
5
+ input_schema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
6
+ output_schema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
7
+ deterministic: z.ZodBoolean;
8
+ idempotent: z.ZodBoolean;
9
+ supports_dry_run: z.ZodBoolean;
10
+ supports_apply: z.ZodBoolean;
11
+ supports_rollback: z.ZodDefault<z.ZodBoolean>;
12
+ write_scope: z.ZodDefault<z.ZodArray<z.ZodString>>;
13
+ risk_tier: z.ZodDefault<z.ZodEnum<{
14
+ low: "low";
15
+ medium: "medium";
16
+ high: "high";
17
+ critical: "critical";
18
+ }>>;
19
+ approval: z.ZodDefault<z.ZodEnum<{
20
+ none: "none";
21
+ maintainer: "maintainer";
22
+ security: "security";
23
+ "architecture-board": "architecture-board";
24
+ }>>;
25
+ }, z.core.$strip>;
26
+ export declare const pluginCompressionConfigSchema: z.ZodObject<{
27
+ enabled: z.ZodDefault<z.ZodBoolean>;
28
+ engine: z.ZodDefault<z.ZodEnum<{
29
+ none: "none";
30
+ rtk: "rtk";
31
+ headroom: "headroom";
32
+ builtin: "builtin";
33
+ }>>;
34
+ mode: z.ZodDefault<z.ZodLiteral<"pretooluse">>;
35
+ exclude_commands: z.ZodDefault<z.ZodArray<z.ZodString>>;
36
+ tee: z.ZodDefault<z.ZodEnum<{
37
+ never: "never";
38
+ failures: "failures";
39
+ always: "always";
40
+ }>>;
41
+ max_output_tokens: z.ZodDefault<z.ZodNumber>;
42
+ }, z.core.$strip>;
43
+ export declare const pluginManifestSchema: z.ZodObject<{
44
+ id: z.ZodString;
45
+ name: z.ZodString;
46
+ version: z.ZodString;
47
+ contract_version: z.ZodLiteral<1>;
48
+ vendor: z.ZodString;
49
+ codesdd_compat: z.ZodObject<{
50
+ versions: z.ZodString;
51
+ sdd_contract_versions: z.ZodArray<z.ZodNumber>;
52
+ }, z.core.$strip>;
53
+ technology: z.ZodObject<{
54
+ language: z.ZodString;
55
+ framework: z.ZodOptional<z.ZodString>;
56
+ runtime: z.ZodOptional<z.ZodString>;
57
+ package_manager: z.ZodOptional<z.ZodString>;
58
+ min_versions: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
59
+ }, z.core.$strip>;
60
+ package_governance: z.ZodOptional<z.ZodObject<{
61
+ package_name: z.ZodString;
62
+ sdk_package: z.ZodDefault<z.ZodString>;
63
+ sdk_version: z.ZodDefault<z.ZodString>;
64
+ package_kind: z.ZodEnum<{
65
+ frontend: "frontend";
66
+ backend: "backend";
67
+ "full-stack": "full-stack";
68
+ generator: "generator";
69
+ validator: "validator";
70
+ evidence: "evidence";
71
+ "agent-adapter": "agent-adapter";
72
+ "policy-pack": "policy-pack";
73
+ }>;
74
+ versioning: z.ZodDefault<z.ZodLiteral<"semver">>;
75
+ registry: z.ZodDefault<z.ZodEnum<{
76
+ custom: "custom";
77
+ workspace: "workspace";
78
+ npm: "npm";
79
+ "private-npm": "private-npm";
80
+ "artifact-registry": "artifact-registry";
81
+ }>>;
82
+ keywords: z.ZodDefault<z.ZodArray<z.ZodString>>;
83
+ internal_package: z.ZodDefault<z.ZodBoolean>;
84
+ }, z.core.$strip>>;
85
+ language_runtime: z.ZodOptional<z.ZodObject<{
86
+ language: z.ZodEnum<{
87
+ shell: "shell";
88
+ other: "other";
89
+ typescript: "typescript";
90
+ javascript: "javascript";
91
+ python: "python";
92
+ java: "java";
93
+ go: "go";
94
+ rust: "rust";
95
+ csharp: "csharp";
96
+ php: "php";
97
+ ruby: "ruby";
98
+ }>;
99
+ runtime: z.ZodString;
100
+ bridge: z.ZodEnum<{
101
+ "node-library": "node-library";
102
+ "stdio-json": "stdio-json";
103
+ "process-cli": "process-cli";
104
+ "http-local": "http-local";
105
+ container: "container";
106
+ wasm: "wasm";
107
+ }>;
108
+ input_transport: z.ZodEnum<{
109
+ "sdk-call": "sdk-call";
110
+ "stdin-json": "stdin-json";
111
+ "stdout-json": "stdout-json";
112
+ "file-envelope": "file-envelope";
113
+ "http-json": "http-json";
114
+ }>;
115
+ output_transport: z.ZodEnum<{
116
+ "sdk-call": "sdk-call";
117
+ "stdin-json": "stdin-json";
118
+ "stdout-json": "stdout-json";
119
+ "file-envelope": "file-envelope";
120
+ "http-json": "http-json";
121
+ }>;
122
+ command: z.ZodOptional<z.ZodString>;
123
+ args: z.ZodDefault<z.ZodArray<z.ZodString>>;
124
+ package_manager: z.ZodOptional<z.ZodString>;
125
+ min_versions: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
126
+ env_allowlist: z.ZodDefault<z.ZodArray<z.ZodString>>;
127
+ }, z.core.$strip>>;
128
+ capabilities: z.ZodArray<z.ZodObject<{
129
+ name: z.ZodString;
130
+ description: z.ZodString;
131
+ input_schema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
132
+ output_schema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
133
+ deterministic: z.ZodBoolean;
134
+ idempotent: z.ZodBoolean;
135
+ supports_dry_run: z.ZodBoolean;
136
+ supports_apply: z.ZodBoolean;
137
+ supports_rollback: z.ZodDefault<z.ZodBoolean>;
138
+ write_scope: z.ZodDefault<z.ZodArray<z.ZodString>>;
139
+ risk_tier: z.ZodDefault<z.ZodEnum<{
140
+ low: "low";
141
+ medium: "medium";
142
+ high: "high";
143
+ critical: "critical";
144
+ }>>;
145
+ approval: z.ZodDefault<z.ZodEnum<{
146
+ none: "none";
147
+ maintainer: "maintainer";
148
+ security: "security";
149
+ "architecture-board": "architecture-board";
150
+ }>>;
151
+ }, z.core.$strip>>;
152
+ execution: z.ZodObject<{
153
+ command: z.ZodString;
154
+ args: z.ZodDefault<z.ZodArray<z.ZodString>>;
155
+ timeout_seconds: z.ZodDefault<z.ZodNumber>;
156
+ env_allowlist: z.ZodDefault<z.ZodArray<z.ZodString>>;
157
+ network: z.ZodDefault<z.ZodEnum<{
158
+ disabled: "disabled";
159
+ enabled: "enabled";
160
+ restricted: "restricted";
161
+ }>>;
162
+ process_spawn: z.ZodDefault<z.ZodEnum<{
163
+ forbidden: "forbidden";
164
+ declared: "declared";
165
+ }>>;
166
+ working_directory: z.ZodDefault<z.ZodString>;
167
+ }, z.core.$strip>;
168
+ artifacts: z.ZodObject<{
169
+ writes: z.ZodDefault<z.ZodArray<z.ZodString>>;
170
+ forbidden_writes: z.ZodDefault<z.ZodArray<z.ZodString>>;
171
+ naming_conventions: z.ZodDefault<z.ZodArray<z.ZodString>>;
172
+ }, z.core.$strip>;
173
+ supply_chain: z.ZodObject<{
174
+ checksum: z.ZodOptional<z.ZodString>;
175
+ signature: z.ZodOptional<z.ZodString>;
176
+ provenance: z.ZodOptional<z.ZodString>;
177
+ sbom: z.ZodOptional<z.ZodString>;
178
+ }, z.core.$strip>;
179
+ governance: z.ZodObject<{
180
+ owner: z.ZodString;
181
+ support_sla: z.ZodString;
182
+ deprecation_window: z.ZodString;
183
+ policy_packs: z.ZodDefault<z.ZodArray<z.ZodString>>;
184
+ trust_tier: z.ZodEnum<{
185
+ experimental: "experimental";
186
+ blocked: "blocked";
187
+ "local-dev": "local-dev";
188
+ "enterprise-approved": "enterprise-approved";
189
+ }>;
190
+ allowed_domains: z.ZodDefault<z.ZodArray<z.ZodString>>;
191
+ risk_tier: z.ZodDefault<z.ZodEnum<{
192
+ low: "low";
193
+ medium: "medium";
194
+ high: "high";
195
+ critical: "critical";
196
+ }>>;
197
+ }, z.core.$strip>;
198
+ validation: z.ZodObject<{
199
+ commands: z.ZodArray<z.ZodString>;
200
+ coverage_target: z.ZodDefault<z.ZodNumber>;
201
+ security_checks: z.ZodDefault<z.ZodArray<z.ZodString>>;
202
+ dependency_checks: z.ZodDefault<z.ZodArray<z.ZodString>>;
203
+ }, z.core.$strip>;
204
+ compression: z.ZodDefault<z.ZodObject<{
205
+ enabled: z.ZodDefault<z.ZodBoolean>;
206
+ engine: z.ZodDefault<z.ZodEnum<{
207
+ none: "none";
208
+ rtk: "rtk";
209
+ headroom: "headroom";
210
+ builtin: "builtin";
211
+ }>>;
212
+ mode: z.ZodDefault<z.ZodLiteral<"pretooluse">>;
213
+ exclude_commands: z.ZodDefault<z.ZodArray<z.ZodString>>;
214
+ tee: z.ZodDefault<z.ZodEnum<{
215
+ never: "never";
216
+ failures: "failures";
217
+ always: "always";
218
+ }>>;
219
+ max_output_tokens: z.ZodDefault<z.ZodNumber>;
220
+ }, z.core.$strip>>;
221
+ }, z.core.$strip>;
222
+ export type PluginCapability = z.infer<typeof pluginCapabilitySchema>;
223
+ export type PluginManifest = z.infer<typeof pluginManifestSchema>;
224
+ export declare class PluginManifestValidationError extends Error {
225
+ readonly issues: string[];
226
+ constructor(sourceLabel: string, issues: string[]);
227
+ }
228
+ export declare function parsePluginManifest(content: string, sourceLabel?: string): PluginManifest;
229
+ export declare function loadPluginManifest(filePath: string): Promise<PluginManifest>;
230
+ export declare function validatePluginManifest(value: unknown, sourceLabel?: string): PluginManifest;
231
+ export declare function buildPluginManifestJsonSchema(): Record<string, unknown>;
232
+ //# sourceMappingURL=plugin-manifest.d.ts.map