@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,212 @@
1
+ import path from 'node:path';
2
+ import { z } from 'zod';
3
+ import { pluginManifestSchema } from './plugin-manifest.js';
4
+ const APPROVAL_ORDER = ['none', 'maintainer', 'security', 'architecture-board'];
5
+ const SENSITIVE_ENV_NAME_PATTERN = /(SECRET|TOKEN|PASSWORD|PRIVATE|KEY|CREDENTIAL)/;
6
+ const SECRET_PATH_SEGMENTS = ['.env', 'secret', 'secrets', 'credential', 'credentials', 'token', '.aws', '.ssh', 'id_rsa'];
7
+ export const pluginPolicyEvaluationRequestSchema = z.object({
8
+ capability: z.string().min(1),
9
+ mode: z.enum(['dry-run', 'apply', 'rollback']).default('dry-run'),
10
+ approval_grants: z.array(z.enum(['maintainer', 'security', 'architecture-board'])).default([]),
11
+ source_checksum: z.string().optional(),
12
+ requested_write_scope: z.array(z.string().min(1)).default([]),
13
+ planned_writes: z.array(z.string().min(1)).default([]),
14
+ requested_env: z.array(z.string().min(1)).default([]),
15
+ network_domains: z.array(z.string().min(1)).default([]),
16
+ process_spawn_requested: z.boolean().default(false),
17
+ filesystem_checks: z
18
+ .array(z.object({
19
+ path: z.string().min(1),
20
+ real_path: z.string().min(1),
21
+ project_root: z.string().min(1),
22
+ is_symlink: z.boolean().default(false),
23
+ }))
24
+ .default([]),
25
+ });
26
+ export const pluginPolicyIssueSchema = z.object({
27
+ code: z.string().min(1),
28
+ severity: z.enum(['deny', 'warn']),
29
+ message: z.string().min(1),
30
+ path: z.string().optional(),
31
+ });
32
+ export const pluginPolicyEvaluationSchema = z.object({
33
+ schema_version: z.literal(1),
34
+ plugin_ref: z.object({
35
+ id: z.string().min(1),
36
+ version: z.string().min(1),
37
+ }),
38
+ capability: z.string().min(1),
39
+ mode: z.enum(['dry-run', 'apply', 'rollback']),
40
+ decision: z.enum(['allow', 'warn', 'deny']),
41
+ issues: z.array(pluginPolicyIssueSchema).default([]),
42
+ });
43
+ export function evaluatePluginTrustPolicy(manifest, request) {
44
+ const parsedManifest = pluginManifestSchema.parse(manifest);
45
+ const parsedRequest = pluginPolicyEvaluationRequestSchema.parse(request);
46
+ const issues = [];
47
+ const capability = parsedManifest.capabilities.find((candidate) => candidate.name === parsedRequest.capability);
48
+ if (!capability) {
49
+ issues.push(deny('CAPABILITY_NOT_FOUND', `Capability ${parsedRequest.capability} is not declared by the plugin.`));
50
+ }
51
+ else {
52
+ issues.push(...evaluateCapabilityPolicy(parsedManifest, capability, parsedRequest));
53
+ }
54
+ issues.push(...evaluateManifestPolicy(parsedManifest, parsedRequest));
55
+ return pluginPolicyEvaluationSchema.parse({
56
+ schema_version: 1,
57
+ plugin_ref: {
58
+ id: parsedManifest.id,
59
+ version: parsedManifest.version,
60
+ },
61
+ capability: parsedRequest.capability,
62
+ mode: parsedRequest.mode,
63
+ decision: issues.some((issue) => issue.severity === 'deny')
64
+ ? 'deny'
65
+ : issues.some((issue) => issue.severity === 'warn')
66
+ ? 'warn'
67
+ : 'allow',
68
+ issues,
69
+ });
70
+ }
71
+ function evaluateCapabilityPolicy(manifest, capability, request) {
72
+ const issues = [];
73
+ if (request.mode === 'apply') {
74
+ if (!capability.supports_apply) {
75
+ issues.push(deny('APPLY_NOT_SUPPORTED', `Capability ${capability.name} does not support apply mode.`));
76
+ }
77
+ if (!capability.supports_dry_run) {
78
+ issues.push(deny('APPLY_WITHOUT_DRY_RUN', `Capability ${capability.name} cannot apply without dry-run support.`));
79
+ }
80
+ if (!hasApprovalGrant(capability.approval, request.approval_grants)) {
81
+ issues.push(deny('APPROVAL_REQUIRED', `Capability ${capability.name} requires ${capability.approval} approval before apply.`));
82
+ }
83
+ }
84
+ if (request.mode === 'rollback' && !capability.supports_rollback) {
85
+ issues.push(deny('ROLLBACK_NOT_SUPPORTED', `Capability ${capability.name} does not support rollback mode.`));
86
+ }
87
+ for (const writePath of [...request.requested_write_scope, ...request.planned_writes]) {
88
+ if (!isSafeRelativePath(writePath)) {
89
+ issues.push(deny('UNSAFE_WRITE_PATH', `Write path ${writePath} must be project-root relative.`, writePath));
90
+ continue;
91
+ }
92
+ if (isProtectedStatePath(writePath)) {
93
+ issues.push(deny('STATE_WRITE_FORBIDDEN', `Write path ${writePath} cannot mutate canonical state files.`, writePath));
94
+ }
95
+ if (isSecretPath(writePath)) {
96
+ issues.push(deny('SECRET_PATH_BLOCKED', `Write path ${writePath} was blocked by secret-path policy.`, writePath));
97
+ }
98
+ if (!isWithinDeclaredScopes(writePath, capability.write_scope)) {
99
+ issues.push(deny('UNDECLARED_CAPABILITY_WRITE', `Write path ${writePath} is outside capability write scope.`, writePath));
100
+ }
101
+ if (!isWithinDeclaredScopes(writePath, manifest.artifacts.writes)) {
102
+ issues.push(deny('UNDECLARED_ARTIFACT_WRITE', `Write path ${writePath} is outside manifest artifact writes.`, writePath));
103
+ }
104
+ if (isWithinDeclaredScopes(writePath, manifest.artifacts.forbidden_writes)) {
105
+ issues.push(deny('FORBIDDEN_ARTIFACT_WRITE', `Write path ${writePath} is explicitly forbidden.`, writePath));
106
+ }
107
+ }
108
+ return issues;
109
+ }
110
+ function evaluateManifestPolicy(manifest, request) {
111
+ const issues = [];
112
+ if (manifest.governance.trust_tier === 'blocked') {
113
+ issues.push(deny('PLUGIN_BLOCKED', `Plugin ${manifest.id} is blocked by governance trust tier.`));
114
+ }
115
+ else if (manifest.governance.trust_tier === 'experimental') {
116
+ issues.push(warn('PLUGIN_EXPERIMENTAL', `Plugin ${manifest.id} is marked experimental by governance trust tier.`));
117
+ }
118
+ if (manifest.supply_chain.checksum) {
119
+ if (!request.source_checksum) {
120
+ issues.push(deny('SOURCE_CHECKSUM_REQUIRED', `Plugin ${manifest.id} requires source checksum verification.`));
121
+ }
122
+ else if (request.source_checksum !== manifest.supply_chain.checksum) {
123
+ issues.push(deny('SOURCE_CHECKSUM_MISMATCH', `Plugin ${manifest.id} source checksum does not match manifest.`));
124
+ }
125
+ }
126
+ for (const envName of request.requested_env) {
127
+ if (isSensitiveEnvironmentVariable(envName)) {
128
+ issues.push(deny('SECRET_ENV_NOT_ALLOWED', `Environment variable ${envName} is classified as sensitive for plugin execution.`));
129
+ }
130
+ if (!manifest.execution.env_allowlist.includes(envName)) {
131
+ issues.push(deny('ENV_NOT_ALLOWED', `Environment variable ${envName} is not allowed by the plugin manifest.`));
132
+ }
133
+ }
134
+ issues.push(...evaluateNetworkPolicy(manifest, request));
135
+ if (request.process_spawn_requested && manifest.execution.process_spawn === 'forbidden') {
136
+ issues.push(deny('PROCESS_SPAWN_FORBIDDEN', `Plugin ${manifest.id} does not allow process spawning.`));
137
+ }
138
+ for (const check of request.filesystem_checks) {
139
+ if (!isSafeRelativePath(check.path)) {
140
+ issues.push(deny('UNSAFE_FILESYSTEM_PATH', `Filesystem check path ${check.path} is not project-root relative.`, check.path));
141
+ continue;
142
+ }
143
+ if (!isWithinRoot(check.real_path, check.project_root)) {
144
+ issues.push(deny('SYMLINK_ESCAPE', `Path ${check.path} resolves outside project root${check.is_symlink ? ' through a symlink' : ''}.`, check.path));
145
+ }
146
+ }
147
+ return issues;
148
+ }
149
+ function evaluateNetworkPolicy(manifest, request) {
150
+ if (request.network_domains.length === 0) {
151
+ return [];
152
+ }
153
+ if (manifest.execution.network === 'disabled') {
154
+ return request.network_domains.map((domain) => deny('NETWORK_DISABLED', `Network access to ${domain} is denied because plugin network is disabled.`));
155
+ }
156
+ if (manifest.execution.network !== 'restricted') {
157
+ return [];
158
+ }
159
+ return request.network_domains
160
+ .filter((domain) => !isAllowedDomain(domain, manifest.governance.allowed_domains))
161
+ .map((domain) => deny('NETWORK_DOMAIN_NOT_ALLOWED', `Network domain ${domain} is not allowed by governance policy.`));
162
+ }
163
+ function hasApprovalGrant(required, grants) {
164
+ if (required === 'none') {
165
+ return true;
166
+ }
167
+ const requiredRank = APPROVAL_ORDER.indexOf(required);
168
+ return grants.some((grant) => APPROVAL_ORDER.indexOf(grant) >= requiredRank);
169
+ }
170
+ function isAllowedDomain(domain, allowedDomains) {
171
+ return allowedDomains.some((allowedDomain) => domain === allowedDomain || domain.endsWith(`.${allowedDomain}`));
172
+ }
173
+ function isSafeRelativePath(value) {
174
+ if (value.startsWith('/') || /^[A-Za-z]:[\\/]/.test(value)) {
175
+ return false;
176
+ }
177
+ return !value.split(/[\\/]+/).some((segment) => segment === '..');
178
+ }
179
+ function isWithinDeclaredScopes(value, scopes) {
180
+ return scopes.some((scope) => value === scope || value.startsWith(`${scope}/`));
181
+ }
182
+ function isWithinRoot(realPath, projectRoot) {
183
+ const relative = path.relative(projectRoot, realPath);
184
+ return relative === '' || (!relative.startsWith('..') && !path.isAbsolute(relative));
185
+ }
186
+ function isSensitiveEnvironmentVariable(envName) {
187
+ return SENSITIVE_ENV_NAME_PATTERN.test(envName);
188
+ }
189
+ function isProtectedStatePath(value) {
190
+ return value === '.sdd/state' || value.startsWith('.sdd/state/');
191
+ }
192
+ function isSecretPath(value) {
193
+ const lowerValue = value.toLowerCase();
194
+ return lowerValue.split(/[\\/]+/).some((segment) => SECRET_PATH_SEGMENTS.some((token) => segment.includes(token)));
195
+ }
196
+ function deny(code, message, issuePath) {
197
+ return {
198
+ code,
199
+ severity: 'deny',
200
+ message,
201
+ path: issuePath,
202
+ };
203
+ }
204
+ function warn(code, message, issuePath) {
205
+ return {
206
+ code,
207
+ severity: 'warn',
208
+ message,
209
+ path: issuePath,
210
+ };
211
+ }
212
+ //# sourceMappingURL=plugin-policy.js.map
@@ -0,0 +1,447 @@
1
+ import { z } from 'zod';
2
+ import { type PluginCapability, type PluginManifest } from './plugin-manifest.js';
3
+ export declare const pluginRegistrySourceSchema: z.ZodObject<{
4
+ type: z.ZodEnum<{
5
+ workspace: "workspace";
6
+ local: "local";
7
+ "enterprise-catalog": "enterprise-catalog";
8
+ }>;
9
+ uri: z.ZodString;
10
+ checksum: z.ZodOptional<z.ZodString>;
11
+ }, z.core.$strip>;
12
+ export declare const pluginRegistryEntrySchema: z.ZodObject<{
13
+ manifest: z.ZodObject<{
14
+ id: z.ZodString;
15
+ name: z.ZodString;
16
+ version: z.ZodString;
17
+ contract_version: z.ZodLiteral<1>;
18
+ vendor: z.ZodString;
19
+ codesdd_compat: z.ZodObject<{
20
+ versions: z.ZodString;
21
+ sdd_contract_versions: z.ZodArray<z.ZodNumber>;
22
+ }, z.core.$strip>;
23
+ technology: z.ZodObject<{
24
+ language: z.ZodString;
25
+ framework: z.ZodOptional<z.ZodString>;
26
+ runtime: z.ZodOptional<z.ZodString>;
27
+ package_manager: z.ZodOptional<z.ZodString>;
28
+ min_versions: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
29
+ }, z.core.$strip>;
30
+ package_governance: z.ZodOptional<z.ZodObject<{
31
+ package_name: z.ZodString;
32
+ sdk_package: z.ZodDefault<z.ZodString>;
33
+ sdk_version: z.ZodDefault<z.ZodString>;
34
+ package_kind: z.ZodEnum<{
35
+ frontend: "frontend";
36
+ backend: "backend";
37
+ "full-stack": "full-stack";
38
+ generator: "generator";
39
+ validator: "validator";
40
+ evidence: "evidence";
41
+ "agent-adapter": "agent-adapter";
42
+ "policy-pack": "policy-pack";
43
+ }>;
44
+ versioning: z.ZodDefault<z.ZodLiteral<"semver">>;
45
+ registry: z.ZodDefault<z.ZodEnum<{
46
+ custom: "custom";
47
+ workspace: "workspace";
48
+ npm: "npm";
49
+ "private-npm": "private-npm";
50
+ "artifact-registry": "artifact-registry";
51
+ }>>;
52
+ keywords: z.ZodDefault<z.ZodArray<z.ZodString>>;
53
+ internal_package: z.ZodDefault<z.ZodBoolean>;
54
+ }, z.core.$strip>>;
55
+ language_runtime: z.ZodOptional<z.ZodObject<{
56
+ language: z.ZodEnum<{
57
+ shell: "shell";
58
+ other: "other";
59
+ typescript: "typescript";
60
+ javascript: "javascript";
61
+ python: "python";
62
+ java: "java";
63
+ go: "go";
64
+ rust: "rust";
65
+ csharp: "csharp";
66
+ php: "php";
67
+ ruby: "ruby";
68
+ }>;
69
+ runtime: z.ZodString;
70
+ bridge: z.ZodEnum<{
71
+ "node-library": "node-library";
72
+ "stdio-json": "stdio-json";
73
+ "process-cli": "process-cli";
74
+ "http-local": "http-local";
75
+ container: "container";
76
+ wasm: "wasm";
77
+ }>;
78
+ input_transport: z.ZodEnum<{
79
+ "sdk-call": "sdk-call";
80
+ "stdin-json": "stdin-json";
81
+ "stdout-json": "stdout-json";
82
+ "file-envelope": "file-envelope";
83
+ "http-json": "http-json";
84
+ }>;
85
+ output_transport: z.ZodEnum<{
86
+ "sdk-call": "sdk-call";
87
+ "stdin-json": "stdin-json";
88
+ "stdout-json": "stdout-json";
89
+ "file-envelope": "file-envelope";
90
+ "http-json": "http-json";
91
+ }>;
92
+ command: z.ZodOptional<z.ZodString>;
93
+ args: z.ZodDefault<z.ZodArray<z.ZodString>>;
94
+ package_manager: z.ZodOptional<z.ZodString>;
95
+ min_versions: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
96
+ env_allowlist: z.ZodDefault<z.ZodArray<z.ZodString>>;
97
+ }, z.core.$strip>>;
98
+ capabilities: z.ZodArray<z.ZodObject<{
99
+ name: z.ZodString;
100
+ description: z.ZodString;
101
+ input_schema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
102
+ output_schema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
103
+ deterministic: z.ZodBoolean;
104
+ idempotent: z.ZodBoolean;
105
+ supports_dry_run: z.ZodBoolean;
106
+ supports_apply: z.ZodBoolean;
107
+ supports_rollback: z.ZodDefault<z.ZodBoolean>;
108
+ write_scope: z.ZodDefault<z.ZodArray<z.ZodString>>;
109
+ risk_tier: z.ZodDefault<z.ZodEnum<{
110
+ low: "low";
111
+ medium: "medium";
112
+ high: "high";
113
+ critical: "critical";
114
+ }>>;
115
+ approval: z.ZodDefault<z.ZodEnum<{
116
+ none: "none";
117
+ maintainer: "maintainer";
118
+ security: "security";
119
+ "architecture-board": "architecture-board";
120
+ }>>;
121
+ }, z.core.$strip>>;
122
+ execution: z.ZodObject<{
123
+ command: z.ZodString;
124
+ args: z.ZodDefault<z.ZodArray<z.ZodString>>;
125
+ timeout_seconds: z.ZodDefault<z.ZodNumber>;
126
+ env_allowlist: z.ZodDefault<z.ZodArray<z.ZodString>>;
127
+ network: z.ZodDefault<z.ZodEnum<{
128
+ disabled: "disabled";
129
+ enabled: "enabled";
130
+ restricted: "restricted";
131
+ }>>;
132
+ process_spawn: z.ZodDefault<z.ZodEnum<{
133
+ forbidden: "forbidden";
134
+ declared: "declared";
135
+ }>>;
136
+ working_directory: z.ZodDefault<z.ZodString>;
137
+ }, z.core.$strip>;
138
+ artifacts: z.ZodObject<{
139
+ writes: z.ZodDefault<z.ZodArray<z.ZodString>>;
140
+ forbidden_writes: z.ZodDefault<z.ZodArray<z.ZodString>>;
141
+ naming_conventions: z.ZodDefault<z.ZodArray<z.ZodString>>;
142
+ }, z.core.$strip>;
143
+ supply_chain: z.ZodObject<{
144
+ checksum: z.ZodOptional<z.ZodString>;
145
+ signature: z.ZodOptional<z.ZodString>;
146
+ provenance: z.ZodOptional<z.ZodString>;
147
+ sbom: z.ZodOptional<z.ZodString>;
148
+ }, z.core.$strip>;
149
+ governance: z.ZodObject<{
150
+ owner: z.ZodString;
151
+ support_sla: z.ZodString;
152
+ deprecation_window: z.ZodString;
153
+ policy_packs: z.ZodDefault<z.ZodArray<z.ZodString>>;
154
+ trust_tier: z.ZodEnum<{
155
+ experimental: "experimental";
156
+ blocked: "blocked";
157
+ "local-dev": "local-dev";
158
+ "enterprise-approved": "enterprise-approved";
159
+ }>;
160
+ allowed_domains: z.ZodDefault<z.ZodArray<z.ZodString>>;
161
+ risk_tier: z.ZodDefault<z.ZodEnum<{
162
+ low: "low";
163
+ medium: "medium";
164
+ high: "high";
165
+ critical: "critical";
166
+ }>>;
167
+ }, z.core.$strip>;
168
+ validation: z.ZodObject<{
169
+ commands: z.ZodArray<z.ZodString>;
170
+ coverage_target: z.ZodDefault<z.ZodNumber>;
171
+ security_checks: z.ZodDefault<z.ZodArray<z.ZodString>>;
172
+ dependency_checks: z.ZodDefault<z.ZodArray<z.ZodString>>;
173
+ }, z.core.$strip>;
174
+ compression: z.ZodDefault<z.ZodObject<{
175
+ enabled: z.ZodDefault<z.ZodBoolean>;
176
+ engine: z.ZodDefault<z.ZodEnum<{
177
+ none: "none";
178
+ rtk: "rtk";
179
+ headroom: "headroom";
180
+ builtin: "builtin";
181
+ }>>;
182
+ mode: z.ZodDefault<z.ZodLiteral<"pretooluse">>;
183
+ exclude_commands: z.ZodDefault<z.ZodArray<z.ZodString>>;
184
+ tee: z.ZodDefault<z.ZodEnum<{
185
+ never: "never";
186
+ failures: "failures";
187
+ always: "always";
188
+ }>>;
189
+ max_output_tokens: z.ZodDefault<z.ZodNumber>;
190
+ }, z.core.$strip>>;
191
+ }, z.core.$strip>;
192
+ source: z.ZodObject<{
193
+ type: z.ZodEnum<{
194
+ workspace: "workspace";
195
+ local: "local";
196
+ "enterprise-catalog": "enterprise-catalog";
197
+ }>;
198
+ uri: z.ZodString;
199
+ checksum: z.ZodOptional<z.ZodString>;
200
+ }, z.core.$strip>;
201
+ status: z.ZodDefault<z.ZodEnum<{
202
+ disabled: "disabled";
203
+ active: "active";
204
+ blocked: "blocked";
205
+ deprecated: "deprecated";
206
+ }>>;
207
+ registered_at: z.ZodString;
208
+ notes: z.ZodDefault<z.ZodArray<z.ZodString>>;
209
+ }, z.core.$strip>;
210
+ export declare const pluginRegistryStateSchema: z.ZodObject<{
211
+ schema_version: z.ZodLiteral<1>;
212
+ generated_at: z.ZodString;
213
+ entries: z.ZodDefault<z.ZodArray<z.ZodObject<{
214
+ manifest: z.ZodObject<{
215
+ id: z.ZodString;
216
+ name: z.ZodString;
217
+ version: z.ZodString;
218
+ contract_version: z.ZodLiteral<1>;
219
+ vendor: z.ZodString;
220
+ codesdd_compat: z.ZodObject<{
221
+ versions: z.ZodString;
222
+ sdd_contract_versions: z.ZodArray<z.ZodNumber>;
223
+ }, z.core.$strip>;
224
+ technology: z.ZodObject<{
225
+ language: z.ZodString;
226
+ framework: z.ZodOptional<z.ZodString>;
227
+ runtime: z.ZodOptional<z.ZodString>;
228
+ package_manager: z.ZodOptional<z.ZodString>;
229
+ min_versions: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
230
+ }, z.core.$strip>;
231
+ package_governance: z.ZodOptional<z.ZodObject<{
232
+ package_name: z.ZodString;
233
+ sdk_package: z.ZodDefault<z.ZodString>;
234
+ sdk_version: z.ZodDefault<z.ZodString>;
235
+ package_kind: z.ZodEnum<{
236
+ frontend: "frontend";
237
+ backend: "backend";
238
+ "full-stack": "full-stack";
239
+ generator: "generator";
240
+ validator: "validator";
241
+ evidence: "evidence";
242
+ "agent-adapter": "agent-adapter";
243
+ "policy-pack": "policy-pack";
244
+ }>;
245
+ versioning: z.ZodDefault<z.ZodLiteral<"semver">>;
246
+ registry: z.ZodDefault<z.ZodEnum<{
247
+ custom: "custom";
248
+ workspace: "workspace";
249
+ npm: "npm";
250
+ "private-npm": "private-npm";
251
+ "artifact-registry": "artifact-registry";
252
+ }>>;
253
+ keywords: z.ZodDefault<z.ZodArray<z.ZodString>>;
254
+ internal_package: z.ZodDefault<z.ZodBoolean>;
255
+ }, z.core.$strip>>;
256
+ language_runtime: z.ZodOptional<z.ZodObject<{
257
+ language: z.ZodEnum<{
258
+ shell: "shell";
259
+ other: "other";
260
+ typescript: "typescript";
261
+ javascript: "javascript";
262
+ python: "python";
263
+ java: "java";
264
+ go: "go";
265
+ rust: "rust";
266
+ csharp: "csharp";
267
+ php: "php";
268
+ ruby: "ruby";
269
+ }>;
270
+ runtime: z.ZodString;
271
+ bridge: z.ZodEnum<{
272
+ "node-library": "node-library";
273
+ "stdio-json": "stdio-json";
274
+ "process-cli": "process-cli";
275
+ "http-local": "http-local";
276
+ container: "container";
277
+ wasm: "wasm";
278
+ }>;
279
+ input_transport: z.ZodEnum<{
280
+ "sdk-call": "sdk-call";
281
+ "stdin-json": "stdin-json";
282
+ "stdout-json": "stdout-json";
283
+ "file-envelope": "file-envelope";
284
+ "http-json": "http-json";
285
+ }>;
286
+ output_transport: z.ZodEnum<{
287
+ "sdk-call": "sdk-call";
288
+ "stdin-json": "stdin-json";
289
+ "stdout-json": "stdout-json";
290
+ "file-envelope": "file-envelope";
291
+ "http-json": "http-json";
292
+ }>;
293
+ command: z.ZodOptional<z.ZodString>;
294
+ args: z.ZodDefault<z.ZodArray<z.ZodString>>;
295
+ package_manager: z.ZodOptional<z.ZodString>;
296
+ min_versions: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
297
+ env_allowlist: z.ZodDefault<z.ZodArray<z.ZodString>>;
298
+ }, z.core.$strip>>;
299
+ capabilities: z.ZodArray<z.ZodObject<{
300
+ name: z.ZodString;
301
+ description: z.ZodString;
302
+ input_schema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
303
+ output_schema: z.ZodRecord<z.ZodString, z.ZodUnknown>;
304
+ deterministic: z.ZodBoolean;
305
+ idempotent: z.ZodBoolean;
306
+ supports_dry_run: z.ZodBoolean;
307
+ supports_apply: z.ZodBoolean;
308
+ supports_rollback: z.ZodDefault<z.ZodBoolean>;
309
+ write_scope: z.ZodDefault<z.ZodArray<z.ZodString>>;
310
+ risk_tier: z.ZodDefault<z.ZodEnum<{
311
+ low: "low";
312
+ medium: "medium";
313
+ high: "high";
314
+ critical: "critical";
315
+ }>>;
316
+ approval: z.ZodDefault<z.ZodEnum<{
317
+ none: "none";
318
+ maintainer: "maintainer";
319
+ security: "security";
320
+ "architecture-board": "architecture-board";
321
+ }>>;
322
+ }, z.core.$strip>>;
323
+ execution: z.ZodObject<{
324
+ command: z.ZodString;
325
+ args: z.ZodDefault<z.ZodArray<z.ZodString>>;
326
+ timeout_seconds: z.ZodDefault<z.ZodNumber>;
327
+ env_allowlist: z.ZodDefault<z.ZodArray<z.ZodString>>;
328
+ network: z.ZodDefault<z.ZodEnum<{
329
+ disabled: "disabled";
330
+ enabled: "enabled";
331
+ restricted: "restricted";
332
+ }>>;
333
+ process_spawn: z.ZodDefault<z.ZodEnum<{
334
+ forbidden: "forbidden";
335
+ declared: "declared";
336
+ }>>;
337
+ working_directory: z.ZodDefault<z.ZodString>;
338
+ }, z.core.$strip>;
339
+ artifacts: z.ZodObject<{
340
+ writes: z.ZodDefault<z.ZodArray<z.ZodString>>;
341
+ forbidden_writes: z.ZodDefault<z.ZodArray<z.ZodString>>;
342
+ naming_conventions: z.ZodDefault<z.ZodArray<z.ZodString>>;
343
+ }, z.core.$strip>;
344
+ supply_chain: z.ZodObject<{
345
+ checksum: z.ZodOptional<z.ZodString>;
346
+ signature: z.ZodOptional<z.ZodString>;
347
+ provenance: z.ZodOptional<z.ZodString>;
348
+ sbom: z.ZodOptional<z.ZodString>;
349
+ }, z.core.$strip>;
350
+ governance: z.ZodObject<{
351
+ owner: z.ZodString;
352
+ support_sla: z.ZodString;
353
+ deprecation_window: z.ZodString;
354
+ policy_packs: z.ZodDefault<z.ZodArray<z.ZodString>>;
355
+ trust_tier: z.ZodEnum<{
356
+ experimental: "experimental";
357
+ blocked: "blocked";
358
+ "local-dev": "local-dev";
359
+ "enterprise-approved": "enterprise-approved";
360
+ }>;
361
+ allowed_domains: z.ZodDefault<z.ZodArray<z.ZodString>>;
362
+ risk_tier: z.ZodDefault<z.ZodEnum<{
363
+ low: "low";
364
+ medium: "medium";
365
+ high: "high";
366
+ critical: "critical";
367
+ }>>;
368
+ }, z.core.$strip>;
369
+ validation: z.ZodObject<{
370
+ commands: z.ZodArray<z.ZodString>;
371
+ coverage_target: z.ZodDefault<z.ZodNumber>;
372
+ security_checks: z.ZodDefault<z.ZodArray<z.ZodString>>;
373
+ dependency_checks: z.ZodDefault<z.ZodArray<z.ZodString>>;
374
+ }, z.core.$strip>;
375
+ compression: z.ZodDefault<z.ZodObject<{
376
+ enabled: z.ZodDefault<z.ZodBoolean>;
377
+ engine: z.ZodDefault<z.ZodEnum<{
378
+ none: "none";
379
+ rtk: "rtk";
380
+ headroom: "headroom";
381
+ builtin: "builtin";
382
+ }>>;
383
+ mode: z.ZodDefault<z.ZodLiteral<"pretooluse">>;
384
+ exclude_commands: z.ZodDefault<z.ZodArray<z.ZodString>>;
385
+ tee: z.ZodDefault<z.ZodEnum<{
386
+ never: "never";
387
+ failures: "failures";
388
+ always: "always";
389
+ }>>;
390
+ max_output_tokens: z.ZodDefault<z.ZodNumber>;
391
+ }, z.core.$strip>>;
392
+ }, z.core.$strip>;
393
+ source: z.ZodObject<{
394
+ type: z.ZodEnum<{
395
+ workspace: "workspace";
396
+ local: "local";
397
+ "enterprise-catalog": "enterprise-catalog";
398
+ }>;
399
+ uri: z.ZodString;
400
+ checksum: z.ZodOptional<z.ZodString>;
401
+ }, z.core.$strip>;
402
+ status: z.ZodDefault<z.ZodEnum<{
403
+ disabled: "disabled";
404
+ active: "active";
405
+ blocked: "blocked";
406
+ deprecated: "deprecated";
407
+ }>>;
408
+ registered_at: z.ZodString;
409
+ notes: z.ZodDefault<z.ZodArray<z.ZodString>>;
410
+ }, z.core.$strip>>>;
411
+ }, z.core.$strip>;
412
+ export type PluginRegistrySource = z.infer<typeof pluginRegistrySourceSchema>;
413
+ export type PluginRegistryEntry = z.infer<typeof pluginRegistryEntrySchema>;
414
+ export type PluginRegistryState = z.infer<typeof pluginRegistryStateSchema>;
415
+ export type PluginTrustTier = PluginManifest['governance']['trust_tier'];
416
+ export type PluginRiskTier = PluginManifest['governance']['risk_tier'];
417
+ export type PluginRegistryStatus = PluginRegistryEntry['status'];
418
+ export interface RegisterPluginInput {
419
+ manifest: PluginManifest;
420
+ source: PluginRegistrySource;
421
+ status?: PluginRegistryStatus;
422
+ registered_at?: string;
423
+ notes?: string[];
424
+ }
425
+ export interface PluginCapabilityResolutionRequest {
426
+ capability: string;
427
+ trust_tiers?: PluginTrustTier[];
428
+ statuses?: PluginRegistryStatus[];
429
+ technology?: {
430
+ language?: string;
431
+ framework?: string;
432
+ };
433
+ require_apply?: boolean;
434
+ require_dry_run?: boolean;
435
+ }
436
+ export type PluginCapabilityResolution = {
437
+ status: 'resolved';
438
+ entry: PluginRegistryEntry;
439
+ capability: PluginCapability;
440
+ reasons: string[];
441
+ } | {
442
+ status: 'unresolved';
443
+ reasons: string[];
444
+ };
445
+ export declare function createPluginRegistryState(plugins: RegisterPluginInput[], generatedAt?: string): PluginRegistryState;
446
+ export declare function resolvePluginCapability(registryState: PluginRegistryState, request: PluginCapabilityResolutionRequest): PluginCapabilityResolution;
447
+ //# sourceMappingURL=plugin-registry.d.ts.map