@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,343 @@
1
+ import { z } from 'zod';
2
+ const FEATURE_REF_PATTERN = /^FEAT-\d{4}$/;
3
+ const ADAPTER_ID_PATTERN = /^codesdd-agent-[a-z0-9][a-z0-9-]*$/;
4
+ const agentProviderSchema = z.enum([
5
+ 'codex',
6
+ 'opencode',
7
+ 'claude-code',
8
+ 'cloudcode',
9
+ 'deepagents',
10
+ 'fake',
11
+ ]);
12
+ const agentTaskKindSchema = z.enum([
13
+ 'planning',
14
+ 'review',
15
+ 'validation',
16
+ 'implementation',
17
+ 'reverse-engineering',
18
+ 'plugin-execution',
19
+ 'adr-governance',
20
+ 'quality-witness',
21
+ 'documentation-sync',
22
+ ]);
23
+ const adapterStatusSchema = z.enum(['active', 'disabled', 'experimental']);
24
+ const trustTierSchema = z.enum(['enterprise-approved', 'local-dev', 'experimental', 'blocked']);
25
+ const riskTierSchema = z.enum(['low', 'medium', 'high', 'critical']);
26
+ const TRUST_RANK = {
27
+ 'enterprise-approved': 3,
28
+ 'local-dev': 2,
29
+ experimental: 1,
30
+ blocked: 0,
31
+ };
32
+ const RISK_RANK = {
33
+ low: 4,
34
+ medium: 3,
35
+ high: 2,
36
+ critical: 1,
37
+ };
38
+ export const agentBindingCapabilitySchema = z.object({
39
+ task_kind: agentTaskKindSchema,
40
+ description: z.string().min(20),
41
+ read_only: z.boolean(),
42
+ edits: z.boolean(),
43
+ background: z.boolean(),
44
+ worktree_isolation: z.boolean(),
45
+ mcp: z.boolean(),
46
+ skills: z.boolean(),
47
+ structured_evidence: z.boolean(),
48
+ risk_tier: riskTierSchema.default('medium'),
49
+ });
50
+ export const agentBindingAdapterSchema = z
51
+ .object({
52
+ schema_version: z.literal(1).default(1),
53
+ id: z.string().regex(ADAPTER_ID_PATTERN),
54
+ provider: agentProviderSchema,
55
+ label: z.string().min(2),
56
+ status: adapterStatusSchema.default('active'),
57
+ execution: z.object({
58
+ mode: z.enum(['local-cli', 'cloud', 'test-double']),
59
+ command: z.string().min(1).optional(),
60
+ args: z.array(z.string()).default([]),
61
+ network: z.enum(['disabled', 'restricted', 'enabled']).default('disabled'),
62
+ evidence_contract: z.string().min(1).default('agent-evidence/v1'),
63
+ }),
64
+ capabilities: z.array(agentBindingCapabilitySchema).min(1),
65
+ governance: z.object({
66
+ owner: z.string().min(2),
67
+ trust_tier: trustTierSchema,
68
+ approval: z.enum(['none', 'maintainer', 'architecture-board', 'security']).default('maintainer'),
69
+ notes: z.array(z.string()).default([]),
70
+ }),
71
+ })
72
+ .superRefine((adapter, context) => {
73
+ const seen = new Set();
74
+ for (const [index, capability] of adapter.capabilities.entries()) {
75
+ if (seen.has(capability.task_kind)) {
76
+ context.addIssue({
77
+ code: 'custom',
78
+ path: ['capabilities', index, 'task_kind'],
79
+ message: `Duplicate agent capability: ${capability.task_kind}.`,
80
+ });
81
+ }
82
+ seen.add(capability.task_kind);
83
+ }
84
+ if (adapter.execution.mode !== 'test-double' && !adapter.execution.command) {
85
+ context.addIssue({
86
+ code: 'custom',
87
+ path: ['execution', 'command'],
88
+ message: 'Non-test agent adapters must declare an execution command.',
89
+ });
90
+ }
91
+ });
92
+ export const agentBindingResolutionRequestSchema = z.object({
93
+ schema_version: z.literal(1).default(1),
94
+ feature_ref: z.string().regex(FEATURE_REF_PATTERN),
95
+ task_kind: agentTaskKindSchema,
96
+ provider: agentProviderSchema.optional(),
97
+ allowed_providers: z
98
+ .array(agentProviderSchema)
99
+ .default(['codex', 'opencode', 'claude-code', 'cloudcode', 'deepagents', 'fake']),
100
+ statuses: z.array(adapterStatusSchema).default(['active']),
101
+ trust_tiers: z.array(trustTierSchema).default(['enterprise-approved', 'local-dev', 'experimental']),
102
+ require_edits: z.boolean().default(false),
103
+ require_background: z.boolean().default(false),
104
+ require_worktree_isolation: z.boolean().default(false),
105
+ require_mcp: z.boolean().default(false),
106
+ require_skills: z.boolean().default(false),
107
+ require_structured_evidence: z.boolean().default(true),
108
+ created_at: z.string().datetime().optional(),
109
+ });
110
+ export const agentBindingCandidateSchema = z.object({
111
+ adapter_ref: z.object({
112
+ id: z.string().regex(ADAPTER_ID_PATTERN),
113
+ provider: agentProviderSchema,
114
+ label: z.string().min(2),
115
+ }),
116
+ task_kind: agentTaskKindSchema,
117
+ rank: z.number().int().nonnegative(),
118
+ reasons: z.array(z.string()).default([]),
119
+ });
120
+ export const agentBindingResolutionSchema = z.object({
121
+ schema_version: z.literal(1),
122
+ created_at: z.string().datetime(),
123
+ status: z.enum(['resolved', 'fallback']),
124
+ request: agentBindingResolutionRequestSchema,
125
+ selected: agentBindingCandidateSchema.optional(),
126
+ candidates: z.array(agentBindingCandidateSchema).default([]),
127
+ reasons: z.array(z.string()).default([]),
128
+ fallback: z
129
+ .object({
130
+ strategy: z.enum(['manual-agent-selection', 'local-human-execution', 'no-compatible-agent']),
131
+ message: z.string().min(1),
132
+ })
133
+ .optional(),
134
+ });
135
+ export function builtInAgentBindingAdapters() {
136
+ return [
137
+ createAdapter('codesdd-agent-codex-local', 'codex', 'Codex Local', 'local-cli', 'codex', {
138
+ background: true,
139
+ worktree_isolation: true,
140
+ mcp: true,
141
+ trust_tier: 'enterprise-approved',
142
+ }),
143
+ createAdapter('codesdd-agent-opencode-cli', 'opencode', 'OpenCode CLI', 'local-cli', 'opencode', {
144
+ background: false,
145
+ worktree_isolation: false,
146
+ mcp: false,
147
+ trust_tier: 'local-dev',
148
+ }),
149
+ createAdapter('codesdd-agent-claude-code-cli', 'claude-code', 'Claude Code CLI', 'local-cli', 'claude', {
150
+ background: false,
151
+ worktree_isolation: false,
152
+ mcp: true,
153
+ trust_tier: 'local-dev',
154
+ }),
155
+ createAdapter('codesdd-agent-cloudcode', 'cloudcode', 'Claude Code CloudCode', 'cloud', 'cloudcode', {
156
+ background: true,
157
+ worktree_isolation: true,
158
+ mcp: true,
159
+ trust_tier: 'enterprise-approved',
160
+ network: 'restricted',
161
+ }),
162
+ createAdapter('codesdd-agent-deepagents', 'deepagents', 'DeepAgents Governed Runtime', 'local-cli', 'codesdd-agent-run', {
163
+ background: true,
164
+ worktree_isolation: true,
165
+ mcp: true,
166
+ trust_tier: 'enterprise-approved',
167
+ network: 'restricted',
168
+ }),
169
+ createAdapter('codesdd-agent-fake-test', 'fake', 'Fake Deterministic Agent', 'test-double', undefined, {
170
+ background: false,
171
+ worktree_isolation: true,
172
+ mcp: false,
173
+ trust_tier: 'experimental',
174
+ }),
175
+ ];
176
+ }
177
+ export function resolveAgentBindingAdapter(adapters, request) {
178
+ const parsedAdapters = adapters.map((adapter) => agentBindingAdapterSchema.parse(adapter));
179
+ const parsedRequest = agentBindingResolutionRequestSchema.parse(request);
180
+ const createdAt = parsedRequest.created_at ?? new Date().toISOString();
181
+ const reasons = [];
182
+ const candidates = parsedAdapters.flatMap((adapter) => buildCandidate(adapter, parsedRequest, reasons));
183
+ const sortedCandidates = candidates.sort(compareCandidates);
184
+ const [selected] = sortedCandidates;
185
+ if (!selected) {
186
+ return agentBindingResolutionSchema.parse({
187
+ schema_version: 1,
188
+ created_at: createdAt,
189
+ status: 'fallback',
190
+ request: {
191
+ ...parsedRequest,
192
+ created_at: createdAt,
193
+ },
194
+ reasons: reasons.length > 0 ? reasons : ['No compatible agent adapter was found.'],
195
+ candidates: [],
196
+ fallback: {
197
+ strategy: 'no-compatible-agent',
198
+ message: 'Continue with manual execution or configure a compatible agent adapter before delegating work.',
199
+ },
200
+ });
201
+ }
202
+ return agentBindingResolutionSchema.parse({
203
+ schema_version: 1,
204
+ created_at: createdAt,
205
+ status: 'resolved',
206
+ request: {
207
+ ...parsedRequest,
208
+ created_at: createdAt,
209
+ },
210
+ selected,
211
+ candidates: sortedCandidates,
212
+ reasons: [
213
+ `Resolved ${parsedRequest.task_kind} to ${selected.adapter_ref.id} (${selected.adapter_ref.provider}).`,
214
+ ...selected.reasons,
215
+ ],
216
+ });
217
+ }
218
+ function createAdapter(id, provider, label, mode, command, options) {
219
+ return agentBindingAdapterSchema.parse({
220
+ schema_version: 1,
221
+ id,
222
+ provider,
223
+ label,
224
+ execution: {
225
+ mode,
226
+ command,
227
+ args: [],
228
+ network: options.network ?? 'disabled',
229
+ evidence_contract: 'agent-evidence/v1',
230
+ },
231
+ capabilities: [
232
+ capability('planning', true, false, options, 'low'),
233
+ capability('review', true, false, options, 'low'),
234
+ capability('validation', true, false, options, 'medium'),
235
+ capability('implementation', false, true, options, 'high'),
236
+ capability('reverse-engineering', true, false, options, 'medium'),
237
+ capability('plugin-execution', false, true, options, 'high'),
238
+ capability('adr-governance', false, true, options, 'medium'),
239
+ capability('quality-witness', true, false, options, 'medium'),
240
+ capability('documentation-sync', false, true, options, 'medium'),
241
+ ],
242
+ governance: {
243
+ owner: 'platform-engineering',
244
+ trust_tier: options.trust_tier,
245
+ approval: provider === 'fake' ? 'none' : 'maintainer',
246
+ notes: [`${label} adapter is declarative and non-executing in FEAT-0150.`],
247
+ },
248
+ });
249
+ }
250
+ function capability(taskKind, readOnly, edits, options, riskTier) {
251
+ return agentBindingCapabilitySchema.parse({
252
+ task_kind: taskKind,
253
+ description: `${taskKind} capability advertised by the agent binding adapter.`,
254
+ read_only: readOnly,
255
+ edits,
256
+ background: options.background,
257
+ worktree_isolation: options.worktree_isolation,
258
+ mcp: options.mcp,
259
+ skills: true,
260
+ structured_evidence: true,
261
+ risk_tier: riskTier,
262
+ });
263
+ }
264
+ function buildCandidate(adapter, request, reasons) {
265
+ const capability = adapter.capabilities.find((candidate) => candidate.task_kind === request.task_kind);
266
+ const rejectionReasons = collectRejectionReasons(adapter, capability, request);
267
+ if (rejectionReasons.length > 0) {
268
+ reasons.push(...rejectionReasons.map((reason) => `${adapter.id}/${request.task_kind}: ${reason}`));
269
+ return [];
270
+ }
271
+ const resolvedCapability = capability;
272
+ return [
273
+ agentBindingCandidateSchema.parse({
274
+ adapter_ref: {
275
+ id: adapter.id,
276
+ provider: adapter.provider,
277
+ label: adapter.label,
278
+ },
279
+ task_kind: resolvedCapability.task_kind,
280
+ rank: rankCandidate(adapter, resolvedCapability, request),
281
+ reasons: candidateReasons(adapter, resolvedCapability),
282
+ }),
283
+ ];
284
+ }
285
+ function collectRejectionReasons(adapter, capability, request) {
286
+ const reasons = [];
287
+ if (request.provider && adapter.provider !== request.provider) {
288
+ reasons.push(`provider ${adapter.provider} does not match requested provider ${request.provider}.`);
289
+ }
290
+ if (!request.allowed_providers.includes(adapter.provider)) {
291
+ reasons.push(`provider ${adapter.provider} is not allowed.`);
292
+ }
293
+ if (!request.statuses.includes(adapter.status)) {
294
+ reasons.push(`status ${adapter.status} is not eligible.`);
295
+ }
296
+ if (!request.trust_tiers.includes(adapter.governance.trust_tier)) {
297
+ reasons.push(`trust tier ${adapter.governance.trust_tier} is not eligible.`);
298
+ }
299
+ if (!capability) {
300
+ reasons.push(`task kind ${request.task_kind} is not advertised.`);
301
+ return reasons;
302
+ }
303
+ if (request.require_edits && !capability.edits) {
304
+ reasons.push('edits are required but not supported.');
305
+ }
306
+ if (request.require_background && !capability.background) {
307
+ reasons.push('background execution is required but not supported.');
308
+ }
309
+ if (request.require_worktree_isolation && !capability.worktree_isolation) {
310
+ reasons.push('worktree isolation is required but not supported.');
311
+ }
312
+ if (request.require_mcp && !capability.mcp) {
313
+ reasons.push('MCP support is required but not supported.');
314
+ }
315
+ if (request.require_skills && !capability.skills) {
316
+ reasons.push('skill support is required but not supported.');
317
+ }
318
+ if (request.require_structured_evidence && !capability.structured_evidence) {
319
+ reasons.push('structured evidence is required but not supported.');
320
+ }
321
+ return reasons;
322
+ }
323
+ function candidateReasons(adapter, capability) {
324
+ return [
325
+ `${adapter.label} supports ${capability.task_kind} with ${capability.edits ? 'edit' : 'read-only'} scope.`,
326
+ ];
327
+ }
328
+ function rankCandidate(adapter, capability, request) {
329
+ const providerRank = request.provider && adapter.provider === request.provider ? 100_000 : 0;
330
+ const trustRank = TRUST_RANK[adapter.governance.trust_tier] * 1_000;
331
+ const isolationRank = capability.worktree_isolation ? 200 : 0;
332
+ const backgroundRank = capability.background ? 100 : 0;
333
+ const mcpRank = capability.mcp ? 50 : 0;
334
+ const riskRank = RISK_RANK[capability.risk_tier] * 10;
335
+ return providerRank + trustRank + isolationRank + backgroundRank + mcpRank + riskRank;
336
+ }
337
+ function compareCandidates(left, right) {
338
+ if (right.rank !== left.rank) {
339
+ return right.rank - left.rank;
340
+ }
341
+ return left.adapter_ref.id.localeCompare(right.adapter_ref.id);
342
+ }
343
+ //# sourceMappingURL=agent-binding.js.map
@@ -0,0 +1,204 @@
1
+ import { z } from 'zod';
2
+ export declare const agentRuntimeProviderSchema: z.ZodEnum<{
3
+ codex: "codex";
4
+ opencode: "opencode";
5
+ deepagents: "deepagents";
6
+ }>;
7
+ export declare const agentRuntimeModeSchema: z.ZodEnum<{
8
+ validate: "validate";
9
+ "read-only": "read-only";
10
+ plan: "plan";
11
+ "apply-sandbox": "apply-sandbox";
12
+ "apply-approved": "apply-approved";
13
+ }>;
14
+ export declare const agentRuntimeSandboxSchema: z.ZodEnum<{
15
+ "read-only": "read-only";
16
+ "workspace-write": "workspace-write";
17
+ "danger-full-access": "danger-full-access";
18
+ }>;
19
+ export declare const agentRuntimeStatusSchema: z.ZodEnum<{
20
+ blocked: "blocked";
21
+ planned: "planned";
22
+ }>;
23
+ export declare const opencodeExecutionStatusSchema: z.ZodEnum<{
24
+ completed: "completed";
25
+ blocked: "blocked";
26
+ planned: "planned";
27
+ failed: "failed";
28
+ skipped: "skipped";
29
+ running: "running";
30
+ }>;
31
+ export declare const agentRuntimeCommandPlanRequestSchema: z.ZodObject<{
32
+ schema_version: z.ZodDefault<z.ZodLiteral<1>>;
33
+ feature_ref: z.ZodString;
34
+ provider: z.ZodEnum<{
35
+ codex: "codex";
36
+ opencode: "opencode";
37
+ deepagents: "deepagents";
38
+ }>;
39
+ mode: z.ZodDefault<z.ZodEnum<{
40
+ validate: "validate";
41
+ "read-only": "read-only";
42
+ plan: "plan";
43
+ "apply-sandbox": "apply-sandbox";
44
+ "apply-approved": "apply-approved";
45
+ }>>;
46
+ instruction: z.ZodString;
47
+ cwd: z.ZodDefault<z.ZodString>;
48
+ model: z.ZodOptional<z.ZodString>;
49
+ sandbox: z.ZodDefault<z.ZodEnum<{
50
+ "read-only": "read-only";
51
+ "workspace-write": "workspace-write";
52
+ "danger-full-access": "danger-full-access";
53
+ }>>;
54
+ output_schema: z.ZodOptional<z.ZodString>;
55
+ output_last_message: z.ZodOptional<z.ZodString>;
56
+ agent: z.ZodOptional<z.ZodString>;
57
+ session: z.ZodOptional<z.ZodString>;
58
+ files: z.ZodDefault<z.ZodArray<z.ZodString>>;
59
+ approval_grants: z.ZodDefault<z.ZodArray<z.ZodEnum<{
60
+ maintainer: "maintainer";
61
+ security: "security";
62
+ "architecture-board": "architecture-board";
63
+ }>>>;
64
+ }, z.core.$strip>;
65
+ export declare const agentRuntimeCommandPlanSchema: z.ZodObject<{
66
+ schema_version: z.ZodLiteral<1>;
67
+ created_at: z.ZodString;
68
+ status: z.ZodEnum<{
69
+ blocked: "blocked";
70
+ planned: "planned";
71
+ }>;
72
+ request: z.ZodObject<{
73
+ schema_version: z.ZodDefault<z.ZodLiteral<1>>;
74
+ feature_ref: z.ZodString;
75
+ provider: z.ZodEnum<{
76
+ codex: "codex";
77
+ opencode: "opencode";
78
+ deepagents: "deepagents";
79
+ }>;
80
+ mode: z.ZodDefault<z.ZodEnum<{
81
+ validate: "validate";
82
+ "read-only": "read-only";
83
+ plan: "plan";
84
+ "apply-sandbox": "apply-sandbox";
85
+ "apply-approved": "apply-approved";
86
+ }>>;
87
+ instruction: z.ZodString;
88
+ cwd: z.ZodDefault<z.ZodString>;
89
+ model: z.ZodOptional<z.ZodString>;
90
+ sandbox: z.ZodDefault<z.ZodEnum<{
91
+ "read-only": "read-only";
92
+ "workspace-write": "workspace-write";
93
+ "danger-full-access": "danger-full-access";
94
+ }>>;
95
+ output_schema: z.ZodOptional<z.ZodString>;
96
+ output_last_message: z.ZodOptional<z.ZodString>;
97
+ agent: z.ZodOptional<z.ZodString>;
98
+ session: z.ZodOptional<z.ZodString>;
99
+ files: z.ZodDefault<z.ZodArray<z.ZodString>>;
100
+ approval_grants: z.ZodDefault<z.ZodArray<z.ZodEnum<{
101
+ maintainer: "maintainer";
102
+ security: "security";
103
+ "architecture-board": "architecture-board";
104
+ }>>>;
105
+ }, z.core.$strip>;
106
+ provider: z.ZodEnum<{
107
+ codex: "codex";
108
+ opencode: "opencode";
109
+ deepagents: "deepagents";
110
+ }>;
111
+ command: z.ZodOptional<z.ZodObject<{
112
+ executable: z.ZodString;
113
+ args: z.ZodDefault<z.ZodArray<z.ZodString>>;
114
+ stdin: z.ZodOptional<z.ZodString>;
115
+ }, z.core.$strip>>;
116
+ evidence_contract: z.ZodEnum<{
117
+ "agent-runtime-v2/deepagents": "agent-runtime-v2/deepagents";
118
+ "agent-runtime-v2/codex-exec": "agent-runtime-v2/codex-exec";
119
+ "agent-runtime-v2/opencode-run": "agent-runtime-v2/opencode-run";
120
+ }>;
121
+ structured_output: z.ZodBoolean;
122
+ reasons: z.ZodDefault<z.ZodArray<z.ZodString>>;
123
+ policy: z.ZodObject<{
124
+ direct_state_write_allowed: z.ZodLiteral<false>;
125
+ requires_codesdd_finalize: z.ZodLiteral<true>;
126
+ mutating_modes_require_approval: z.ZodLiteral<true>;
127
+ }, z.core.$strip>;
128
+ }, z.core.$strip>;
129
+ export declare const opencodeExecutionEvidenceSchema: z.ZodObject<{
130
+ schema_version: z.ZodLiteral<1>;
131
+ contract: z.ZodLiteral<"agent-runtime-v2/opencode-run">;
132
+ provider: z.ZodLiteral<"opencode">;
133
+ feature_ref: z.ZodString;
134
+ run_id: z.ZodString;
135
+ created_at: z.ZodString;
136
+ mode: z.ZodEnum<{
137
+ validate: "validate";
138
+ "read-only": "read-only";
139
+ plan: "plan";
140
+ "apply-sandbox": "apply-sandbox";
141
+ "apply-approved": "apply-approved";
142
+ }>;
143
+ status: z.ZodEnum<{
144
+ completed: "completed";
145
+ blocked: "blocked";
146
+ planned: "planned";
147
+ failed: "failed";
148
+ skipped: "skipped";
149
+ running: "running";
150
+ }>;
151
+ command: z.ZodObject<{
152
+ args: z.ZodDefault<z.ZodArray<z.ZodString>>;
153
+ stdin: z.ZodOptional<z.ZodString>;
154
+ executable: z.ZodLiteral<"opencode">;
155
+ }, z.core.$strip>;
156
+ command_plan_ref: z.ZodOptional<z.ZodString>;
157
+ cwd: z.ZodDefault<z.ZodString>;
158
+ exit_code: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
159
+ started_at: z.ZodOptional<z.ZodString>;
160
+ completed_at: z.ZodOptional<z.ZodString>;
161
+ duration_ms: z.ZodOptional<z.ZodNumber>;
162
+ structured_output: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
163
+ stdout_excerpt: z.ZodOptional<z.ZodString>;
164
+ stderr_excerpt: z.ZodOptional<z.ZodString>;
165
+ artifacts: z.ZodDefault<z.ZodArray<z.ZodObject<{
166
+ kind: z.ZodString;
167
+ ref: z.ZodString;
168
+ path: z.ZodOptional<z.ZodString>;
169
+ sha256: z.ZodOptional<z.ZodString>;
170
+ }, z.core.$strip>>>;
171
+ validations: z.ZodDefault<z.ZodArray<z.ZodString>>;
172
+ redactions: z.ZodDefault<z.ZodArray<z.ZodString>>;
173
+ risks: z.ZodDefault<z.ZodArray<z.ZodObject<{
174
+ id: z.ZodString;
175
+ severity: z.ZodEnum<{
176
+ low: "low";
177
+ medium: "medium";
178
+ high: "high";
179
+ critical: "critical";
180
+ }>;
181
+ summary: z.ZodString;
182
+ mitigation: z.ZodOptional<z.ZodString>;
183
+ }, z.core.$strip>>>;
184
+ policy: z.ZodObject<{
185
+ direct_state_write_allowed: z.ZodLiteral<false>;
186
+ requires_codesdd_finalize: z.ZodLiteral<true>;
187
+ raw_secret_output_allowed: z.ZodLiteral<false>;
188
+ transcript_storage: z.ZodDefault<z.ZodEnum<{
189
+ forbidden: "forbidden";
190
+ "redacted-excerpts-only": "redacted-excerpts-only";
191
+ }>>;
192
+ }, z.core.$strip>;
193
+ finalize_intent: z.ZodDefault<z.ZodBoolean>;
194
+ }, z.core.$strip>;
195
+ export type AgentRuntimeProvider = z.infer<typeof agentRuntimeProviderSchema>;
196
+ export type AgentRuntimeMode = z.infer<typeof agentRuntimeModeSchema>;
197
+ export type AgentRuntimeCommandPlanRequest = z.infer<typeof agentRuntimeCommandPlanRequestSchema>;
198
+ export type AgentRuntimeCommandPlan = z.infer<typeof agentRuntimeCommandPlanSchema>;
199
+ export type OpenCodeExecutionEvidence = z.infer<typeof opencodeExecutionEvidenceSchema>;
200
+ export type OpenCodeExecutionEvidenceInput = z.input<typeof opencodeExecutionEvidenceSchema>;
201
+ export declare function buildAgentRuntimeCommandPlan(request: AgentRuntimeCommandPlanRequest, createdAt?: string): AgentRuntimeCommandPlan;
202
+ export declare function buildOpenCodeExecutionEvidence(evidence: OpenCodeExecutionEvidenceInput): OpenCodeExecutionEvidence;
203
+ export declare function buildAgentRuntimeJsonSchemas(): Record<string, unknown>;
204
+ //# sourceMappingURL=agent-runtime-contract.d.ts.map