@specpow/framework 0.2.0

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 (362) hide show
  1. package/CHANGELOG.md +307 -0
  2. package/LICENSE +21 -0
  3. package/README.md +557 -0
  4. package/agents/controller/sdd-controller.md +55 -0
  5. package/agents/execution/java-codegen-agent.md +39 -0
  6. package/agents/execution/ui-codegen-agent.md +32 -0
  7. package/agents/ops/deploy-agent.md +181 -0
  8. package/agents/planning/db-designer-agent.md +30 -0
  9. package/agents/planning/prd-agent.md +31 -0
  10. package/agents/quality/review-agent.md +36 -0
  11. package/agents/quality/test-agent.md +33 -0
  12. package/bin/specpow.js +10 -0
  13. package/dist/cli/index.d.ts +7 -0
  14. package/dist/cli/index.d.ts.map +1 -0
  15. package/dist/cli/index.js +444 -0
  16. package/dist/cli/index.js.map +1 -0
  17. package/dist/commands/apply.d.ts +14 -0
  18. package/dist/commands/apply.d.ts.map +1 -0
  19. package/dist/commands/apply.js +195 -0
  20. package/dist/commands/apply.js.map +1 -0
  21. package/dist/commands/archive.d.ts +30 -0
  22. package/dist/commands/archive.d.ts.map +1 -0
  23. package/dist/commands/archive.js +141 -0
  24. package/dist/commands/archive.js.map +1 -0
  25. package/dist/commands/channel.d.ts +61 -0
  26. package/dist/commands/channel.d.ts.map +1 -0
  27. package/dist/commands/channel.js +613 -0
  28. package/dist/commands/channel.js.map +1 -0
  29. package/dist/commands/config.d.ts +40 -0
  30. package/dist/commands/config.d.ts.map +1 -0
  31. package/dist/commands/config.js +130 -0
  32. package/dist/commands/config.js.map +1 -0
  33. package/dist/commands/debug.d.ts +45 -0
  34. package/dist/commands/debug.d.ts.map +1 -0
  35. package/dist/commands/debug.js +167 -0
  36. package/dist/commands/debug.js.map +1 -0
  37. package/dist/commands/doctor.d.ts +20 -0
  38. package/dist/commands/doctor.d.ts.map +1 -0
  39. package/dist/commands/doctor.js +121 -0
  40. package/dist/commands/doctor.js.map +1 -0
  41. package/dist/commands/execute.d.ts +25 -0
  42. package/dist/commands/execute.d.ts.map +1 -0
  43. package/dist/commands/execute.js +120 -0
  44. package/dist/commands/execute.js.map +1 -0
  45. package/dist/commands/explore.d.ts +71 -0
  46. package/dist/commands/explore.d.ts.map +1 -0
  47. package/dist/commands/explore.js +481 -0
  48. package/dist/commands/explore.js.map +1 -0
  49. package/dist/commands/init.d.ts +20 -0
  50. package/dist/commands/init.d.ts.map +1 -0
  51. package/dist/commands/init.js +146 -0
  52. package/dist/commands/init.js.map +1 -0
  53. package/dist/commands/memory.d.ts +32 -0
  54. package/dist/commands/memory.d.ts.map +1 -0
  55. package/dist/commands/memory.js +455 -0
  56. package/dist/commands/memory.js.map +1 -0
  57. package/dist/commands/propose.d.ts +13 -0
  58. package/dist/commands/propose.d.ts.map +1 -0
  59. package/dist/commands/propose.js +193 -0
  60. package/dist/commands/propose.js.map +1 -0
  61. package/dist/commands/review.d.ts +50 -0
  62. package/dist/commands/review.d.ts.map +1 -0
  63. package/dist/commands/review.js +198 -0
  64. package/dist/commands/review.js.map +1 -0
  65. package/dist/commands/schema.d.ts +22 -0
  66. package/dist/commands/schema.d.ts.map +1 -0
  67. package/dist/commands/schema.js +79 -0
  68. package/dist/commands/schema.js.map +1 -0
  69. package/dist/commands/status.d.ts +11 -0
  70. package/dist/commands/status.d.ts.map +1 -0
  71. package/dist/commands/status.js +130 -0
  72. package/dist/commands/status.js.map +1 -0
  73. package/dist/commands/store.d.ts +31 -0
  74. package/dist/commands/store.d.ts.map +1 -0
  75. package/dist/commands/store.js +109 -0
  76. package/dist/commands/store.js.map +1 -0
  77. package/dist/commands/update.d.ts +42 -0
  78. package/dist/commands/update.d.ts.map +1 -0
  79. package/dist/commands/update.js +239 -0
  80. package/dist/commands/update.js.map +1 -0
  81. package/dist/commands/verify.d.ts +39 -0
  82. package/dist/commands/verify.d.ts.map +1 -0
  83. package/dist/commands/verify.js +386 -0
  84. package/dist/commands/verify.js.map +1 -0
  85. package/dist/commands/workflow/index.d.ts +12 -0
  86. package/dist/commands/workflow/index.d.ts.map +1 -0
  87. package/dist/commands/workflow/index.js +435 -0
  88. package/dist/commands/workflow/index.js.map +1 -0
  89. package/dist/core/agent-contract.d.ts +133 -0
  90. package/dist/core/agent-contract.d.ts.map +1 -0
  91. package/dist/core/agent-contract.js +71 -0
  92. package/dist/core/agent-contract.js.map +1 -0
  93. package/dist/core/archive/delta-merger.d.ts +101 -0
  94. package/dist/core/archive/delta-merger.d.ts.map +1 -0
  95. package/dist/core/archive/delta-merger.js +398 -0
  96. package/dist/core/archive/delta-merger.js.map +1 -0
  97. package/dist/core/archive/delta-parser.d.ts +48 -0
  98. package/dist/core/archive/delta-parser.d.ts.map +1 -0
  99. package/dist/core/archive/delta-parser.js +193 -0
  100. package/dist/core/archive/delta-parser.js.map +1 -0
  101. package/dist/core/archive/engine.d.ts +136 -0
  102. package/dist/core/archive/engine.d.ts.map +1 -0
  103. package/dist/core/archive/engine.js +506 -0
  104. package/dist/core/archive/engine.js.map +1 -0
  105. package/dist/core/archive/index.d.ts +11 -0
  106. package/dist/core/archive/index.d.ts.map +1 -0
  107. package/dist/core/archive/index.js +9 -0
  108. package/dist/core/archive/index.js.map +1 -0
  109. package/dist/core/artifact-graph/graph.d.ts +48 -0
  110. package/dist/core/artifact-graph/graph.d.ts.map +1 -0
  111. package/dist/core/artifact-graph/graph.js +170 -0
  112. package/dist/core/artifact-graph/graph.js.map +1 -0
  113. package/dist/core/artifact-graph/index.d.ts +13 -0
  114. package/dist/core/artifact-graph/index.d.ts.map +1 -0
  115. package/dist/core/artifact-graph/index.js +12 -0
  116. package/dist/core/artifact-graph/index.js.map +1 -0
  117. package/dist/core/artifact-graph/instruction-loader.d.ts +60 -0
  118. package/dist/core/artifact-graph/instruction-loader.d.ts.map +1 -0
  119. package/dist/core/artifact-graph/instruction-loader.js +166 -0
  120. package/dist/core/artifact-graph/instruction-loader.js.map +1 -0
  121. package/dist/core/artifact-graph/outputs.d.ts +17 -0
  122. package/dist/core/artifact-graph/outputs.d.ts.map +1 -0
  123. package/dist/core/artifact-graph/outputs.js +27 -0
  124. package/dist/core/artifact-graph/outputs.js.map +1 -0
  125. package/dist/core/artifact-graph/resolver.d.ts +34 -0
  126. package/dist/core/artifact-graph/resolver.d.ts.map +1 -0
  127. package/dist/core/artifact-graph/resolver.js +99 -0
  128. package/dist/core/artifact-graph/resolver.js.map +1 -0
  129. package/dist/core/artifact-graph/state.d.ts +54 -0
  130. package/dist/core/artifact-graph/state.d.ts.map +1 -0
  131. package/dist/core/artifact-graph/state.js +149 -0
  132. package/dist/core/artifact-graph/state.js.map +1 -0
  133. package/dist/core/artifact-graph/types.d.ts +151 -0
  134. package/dist/core/artifact-graph/types.d.ts.map +1 -0
  135. package/dist/core/artifact-graph/types.js +44 -0
  136. package/dist/core/artifact-graph/types.js.map +1 -0
  137. package/dist/core/channel/channel-event-log.d.ts +81 -0
  138. package/dist/core/channel/channel-event-log.d.ts.map +1 -0
  139. package/dist/core/channel/channel-event-log.js +177 -0
  140. package/dist/core/channel/channel-event-log.js.map +1 -0
  141. package/dist/core/channel/channel-inbox.d.ts +70 -0
  142. package/dist/core/channel/channel-inbox.d.ts.map +1 -0
  143. package/dist/core/channel/channel-inbox.js +122 -0
  144. package/dist/core/channel/channel-inbox.js.map +1 -0
  145. package/dist/core/channel/channel-runtime.d.ts +81 -0
  146. package/dist/core/channel/channel-runtime.d.ts.map +1 -0
  147. package/dist/core/channel/channel-runtime.js +291 -0
  148. package/dist/core/channel/channel-runtime.js.map +1 -0
  149. package/dist/core/channel/channel-supervisor.d.ts +72 -0
  150. package/dist/core/channel/channel-supervisor.d.ts.map +1 -0
  151. package/dist/core/channel/channel-supervisor.js +189 -0
  152. package/dist/core/channel/channel-supervisor.js.map +1 -0
  153. package/dist/core/channel/channel-types.d.ts +169 -0
  154. package/dist/core/channel/channel-types.d.ts.map +1 -0
  155. package/dist/core/channel/channel-types.js +26 -0
  156. package/dist/core/channel/channel-types.js.map +1 -0
  157. package/dist/core/channel/index.d.ts +21 -0
  158. package/dist/core/channel/index.d.ts.map +1 -0
  159. package/dist/core/channel/index.js +23 -0
  160. package/dist/core/channel/index.js.map +1 -0
  161. package/dist/core/command-generation/index.d.ts +225 -0
  162. package/dist/core/command-generation/index.d.ts.map +1 -0
  163. package/dist/core/command-generation/index.js +462 -0
  164. package/dist/core/command-generation/index.js.map +1 -0
  165. package/dist/core/config/config-schema.d.ts +745 -0
  166. package/dist/core/config/config-schema.d.ts.map +1 -0
  167. package/dist/core/config/config-schema.js +108 -0
  168. package/dist/core/config/config-schema.js.map +1 -0
  169. package/dist/core/config/global-config.d.ts +73 -0
  170. package/dist/core/config/global-config.d.ts.map +1 -0
  171. package/dist/core/config/global-config.js +225 -0
  172. package/dist/core/config/global-config.js.map +1 -0
  173. package/dist/core/config/index.d.ts +8 -0
  174. package/dist/core/config/index.d.ts.map +1 -0
  175. package/dist/core/config/index.js +8 -0
  176. package/dist/core/config/index.js.map +1 -0
  177. package/dist/core/hooks/hook-registry.d.ts +55 -0
  178. package/dist/core/hooks/hook-registry.d.ts.map +1 -0
  179. package/dist/core/hooks/hook-registry.js +172 -0
  180. package/dist/core/hooks/hook-registry.js.map +1 -0
  181. package/dist/core/hooks/hook-types.d.ts +87 -0
  182. package/dist/core/hooks/hook-types.d.ts.map +1 -0
  183. package/dist/core/hooks/hook-types.js +11 -0
  184. package/dist/core/hooks/hook-types.js.map +1 -0
  185. package/dist/core/hooks/index.d.ts +28 -0
  186. package/dist/core/hooks/index.d.ts.map +1 -0
  187. package/dist/core/hooks/index.js +28 -0
  188. package/dist/core/hooks/index.js.map +1 -0
  189. package/dist/core/hooks/post-tool-call-hook.d.ts +21 -0
  190. package/dist/core/hooks/post-tool-call-hook.d.ts.map +1 -0
  191. package/dist/core/hooks/post-tool-call-hook.js +191 -0
  192. package/dist/core/hooks/post-tool-call-hook.js.map +1 -0
  193. package/dist/core/hooks/pre-tool-call-hook.d.ts +31 -0
  194. package/dist/core/hooks/pre-tool-call-hook.d.ts.map +1 -0
  195. package/dist/core/hooks/pre-tool-call-hook.js +122 -0
  196. package/dist/core/hooks/pre-tool-call-hook.js.map +1 -0
  197. package/dist/core/hooks/session-start-hook.d.ts +25 -0
  198. package/dist/core/hooks/session-start-hook.d.ts.map +1 -0
  199. package/dist/core/hooks/session-start-hook.js +226 -0
  200. package/dist/core/hooks/session-start-hook.js.map +1 -0
  201. package/dist/core/hooks/workflow-state-hook.d.ts +18 -0
  202. package/dist/core/hooks/workflow-state-hook.d.ts.map +1 -0
  203. package/dist/core/hooks/workflow-state-hook.js +181 -0
  204. package/dist/core/hooks/workflow-state-hook.js.map +1 -0
  205. package/dist/core/init/engine.d.ts +69 -0
  206. package/dist/core/init/engine.d.ts.map +1 -0
  207. package/dist/core/init/engine.js +211 -0
  208. package/dist/core/init/engine.js.map +1 -0
  209. package/dist/core/init/template-hash.d.ts +86 -0
  210. package/dist/core/init/template-hash.d.ts.map +1 -0
  211. package/dist/core/init/template-hash.js +228 -0
  212. package/dist/core/init/template-hash.js.map +1 -0
  213. package/dist/core/memory/adapters/json-adapter.d.ts +50 -0
  214. package/dist/core/memory/adapters/json-adapter.d.ts.map +1 -0
  215. package/dist/core/memory/adapters/json-adapter.js +273 -0
  216. package/dist/core/memory/adapters/json-adapter.js.map +1 -0
  217. package/dist/core/memory/adapters/sqlite-adapter.d.ts +26 -0
  218. package/dist/core/memory/adapters/sqlite-adapter.d.ts.map +1 -0
  219. package/dist/core/memory/adapters/sqlite-adapter.js +230 -0
  220. package/dist/core/memory/adapters/sqlite-adapter.js.map +1 -0
  221. package/dist/core/memory/index.d.ts +38 -0
  222. package/dist/core/memory/index.d.ts.map +1 -0
  223. package/dist/core/memory/index.js +40 -0
  224. package/dist/core/memory/index.js.map +1 -0
  225. package/dist/core/memory/memory-indexer.d.ts +39 -0
  226. package/dist/core/memory/memory-indexer.d.ts.map +1 -0
  227. package/dist/core/memory/memory-indexer.js +213 -0
  228. package/dist/core/memory/memory-indexer.js.map +1 -0
  229. package/dist/core/memory/memory-manager.d.ts +59 -0
  230. package/dist/core/memory/memory-manager.d.ts.map +1 -0
  231. package/dist/core/memory/memory-manager.js +194 -0
  232. package/dist/core/memory/memory-manager.js.map +1 -0
  233. package/dist/core/memory/memory-store.d.ts +31 -0
  234. package/dist/core/memory/memory-store.d.ts.map +1 -0
  235. package/dist/core/memory/memory-store.js +148 -0
  236. package/dist/core/memory/memory-store.js.map +1 -0
  237. package/dist/core/memory/memory-types.d.ts +154 -0
  238. package/dist/core/memory/memory-types.d.ts.map +1 -0
  239. package/dist/core/memory/memory-types.js +13 -0
  240. package/dist/core/memory/memory-types.js.map +1 -0
  241. package/dist/core/migration/index.d.ts +80 -0
  242. package/dist/core/migration/index.d.ts.map +1 -0
  243. package/dist/core/migration/index.js +361 -0
  244. package/dist/core/migration/index.js.map +1 -0
  245. package/dist/core/parsers/index.d.ts +95 -0
  246. package/dist/core/parsers/index.d.ts.map +1 -0
  247. package/dist/core/parsers/index.js +367 -0
  248. package/dist/core/parsers/index.js.map +1 -0
  249. package/dist/core/sdd-engine/ai-caller.d.ts +118 -0
  250. package/dist/core/sdd-engine/ai-caller.d.ts.map +1 -0
  251. package/dist/core/sdd-engine/ai-caller.js +624 -0
  252. package/dist/core/sdd-engine/ai-caller.js.map +1 -0
  253. package/dist/core/sdd-engine/controller.d.ts +107 -0
  254. package/dist/core/sdd-engine/controller.d.ts.map +1 -0
  255. package/dist/core/sdd-engine/controller.js +357 -0
  256. package/dist/core/sdd-engine/controller.js.map +1 -0
  257. package/dist/core/sdd-engine/dispatcher.d.ts +69 -0
  258. package/dist/core/sdd-engine/dispatcher.d.ts.map +1 -0
  259. package/dist/core/sdd-engine/dispatcher.js +146 -0
  260. package/dist/core/sdd-engine/dispatcher.js.map +1 -0
  261. package/dist/core/sdd-engine/git-ops.d.ts +73 -0
  262. package/dist/core/sdd-engine/git-ops.d.ts.map +1 -0
  263. package/dist/core/sdd-engine/git-ops.js +326 -0
  264. package/dist/core/sdd-engine/git-ops.js.map +1 -0
  265. package/dist/core/sdd-engine/index.d.ts +17 -0
  266. package/dist/core/sdd-engine/index.d.ts.map +1 -0
  267. package/dist/core/sdd-engine/index.js +15 -0
  268. package/dist/core/sdd-engine/index.js.map +1 -0
  269. package/dist/core/sdd-engine/ledger.d.ts +92 -0
  270. package/dist/core/sdd-engine/ledger.d.ts.map +1 -0
  271. package/dist/core/sdd-engine/ledger.js +273 -0
  272. package/dist/core/sdd-engine/ledger.js.map +1 -0
  273. package/dist/core/sdd-engine/model-selector.d.ts +49 -0
  274. package/dist/core/sdd-engine/model-selector.d.ts.map +1 -0
  275. package/dist/core/sdd-engine/model-selector.js +76 -0
  276. package/dist/core/sdd-engine/model-selector.js.map +1 -0
  277. package/dist/core/sdd-engine/parallel-dispatcher.d.ts +99 -0
  278. package/dist/core/sdd-engine/parallel-dispatcher.d.ts.map +1 -0
  279. package/dist/core/sdd-engine/parallel-dispatcher.js +350 -0
  280. package/dist/core/sdd-engine/parallel-dispatcher.js.map +1 -0
  281. package/dist/core/sdd-engine/review-loop.d.ts +61 -0
  282. package/dist/core/sdd-engine/review-loop.d.ts.map +1 -0
  283. package/dist/core/sdd-engine/review-loop.js +139 -0
  284. package/dist/core/sdd-engine/review-loop.js.map +1 -0
  285. package/dist/core/sdd-engine/types.d.ts +104 -0
  286. package/dist/core/sdd-engine/types.d.ts.map +1 -0
  287. package/dist/core/sdd-engine/types.js +7 -0
  288. package/dist/core/sdd-engine/types.js.map +1 -0
  289. package/dist/core/store/index.d.ts +78 -0
  290. package/dist/core/store/index.d.ts.map +1 -0
  291. package/dist/core/store/index.js +182 -0
  292. package/dist/core/store/index.js.map +1 -0
  293. package/dist/core/templates/index.d.ts +58 -0
  294. package/dist/core/templates/index.d.ts.map +1 -0
  295. package/dist/core/templates/index.js +158 -0
  296. package/dist/core/templates/index.js.map +1 -0
  297. package/dist/core/validation/index.d.ts +34 -0
  298. package/dist/core/validation/index.d.ts.map +1 -0
  299. package/dist/core/validation/index.js +153 -0
  300. package/dist/core/validation/index.js.map +1 -0
  301. package/dist/core/workflow-state.d.ts +96 -0
  302. package/dist/core/workflow-state.d.ts.map +1 -0
  303. package/dist/core/workflow-state.js +284 -0
  304. package/dist/core/workflow-state.js.map +1 -0
  305. package/dist/index.d.ts +18 -0
  306. package/dist/index.d.ts.map +1 -0
  307. package/dist/index.js +21 -0
  308. package/dist/index.js.map +1 -0
  309. package/dist/utils/index.d.ts +48 -0
  310. package/dist/utils/index.d.ts.map +1 -0
  311. package/dist/utils/index.js +119 -0
  312. package/dist/utils/index.js.map +1 -0
  313. package/hooks/hooks.json +30 -0
  314. package/hooks/run-hook.cmd +19 -0
  315. package/hooks/session-start +62 -0
  316. package/hooks/workflow-state +150 -0
  317. package/package.json +122 -0
  318. package/schemas/bug-fix/schema.yaml +64 -0
  319. package/schemas/bug-fix/templates/analysis.md +43 -0
  320. package/schemas/bug-fix/templates/fix-plan.md +19 -0
  321. package/schemas/bug-fix/templates/proposal.md +30 -0
  322. package/schemas/crud-module/schema.yaml +65 -0
  323. package/schemas/crud-module/templates/design.md +36 -0
  324. package/schemas/crud-module/templates/proposal.md +30 -0
  325. package/schemas/crud-module/templates/spec.md +33 -0
  326. package/schemas/crud-module/templates/tasks.md +57 -0
  327. package/schemas/spec-driven/schema.yaml +87 -0
  328. package/schemas/spec-driven/templates/design.md +54 -0
  329. package/schemas/spec-driven/templates/proposal.md +31 -0
  330. package/schemas/spec-driven/templates/spec.md +44 -0
  331. package/schemas/spec-driven/templates/tasks.md +98 -0
  332. package/skills/business-code-review/SKILL.md +78 -0
  333. package/skills/business-db-design/SKILL.md +74 -0
  334. package/skills/business-deploy-check/SKILL.md +72 -0
  335. package/skills/business-doc-sync/SKILL.md +72 -0
  336. package/skills/business-java-codegen/SKILL.md +97 -0
  337. package/skills/business-menu-register/SKILL.md +63 -0
  338. package/skills/business-prd-writer/SKILL.md +80 -0
  339. package/skills/business-test-gen/SKILL.md +82 -0
  340. package/skills/business-ui-codegen/SKILL.md +104 -0
  341. package/skills/execution-finish-branch/SKILL.md +58 -0
  342. package/skills/execution-git-worktrees/SKILL.md +48 -0
  343. package/skills/execution-parallel-agents/SKILL.md +51 -0
  344. package/skills/execution-receiving-review/SKILL.md +47 -0
  345. package/skills/execution-requesting-review/SKILL.md +51 -0
  346. package/skills/execution-subagent-driven-dev/SKILL.md +148 -0
  347. package/skills/execution-systematic-debugging/SKILL.md +95 -0
  348. package/skills/execution-tdd/SKILL.md +74 -0
  349. package/skills/execution-verification-before-completion/SKILL.md +75 -0
  350. package/skills/meta-create-skill/SKILL.md +374 -0
  351. package/skills/meta-using-skills/SKILL.md +97 -0
  352. package/skills/meta-writing-skills/SKILL.md +66 -0
  353. package/skills/planning-apply-change/SKILL.md +199 -0
  354. package/skills/planning-archive-change/SKILL.md +43 -0
  355. package/skills/planning-explore/SKILL.md +108 -0
  356. package/skills/planning-onboard/SKILL.md +60 -0
  357. package/skills/planning-propose/SKILL.md +145 -0
  358. package/skills/planning-update-change/SKILL.md +45 -0
  359. package/skills/planning-verify-change/SKILL.md +58 -0
  360. package/skills/planning-write-design/SKILL.md +59 -0
  361. package/skills/planning-write-plans/SKILL.md +55 -0
  362. package/skills/planning-write-specs/SKILL.md +73 -0
@@ -0,0 +1,745 @@
1
+ /**
2
+ * Config Schema — 移植自 OpenSpec config-schema.ts
3
+ *
4
+ * Zod 配置验证模式,定义 SpecPow 全局配置的数据结构
5
+ */
6
+ import { z } from 'zod';
7
+ export declare const ProfileSchema: z.ZodDefault<z.ZodEnum<["core", "custom"]>>;
8
+ export type Profile = z.infer<typeof ProfileSchema>;
9
+ export declare const DeliverySchema: z.ZodDefault<z.ZodEnum<["both", "skills", "commands"]>>;
10
+ export type Delivery = z.infer<typeof DeliverySchema>;
11
+ export declare const AIToolConfigSchema: z.ZodObject<{
12
+ /** 工具名称 */
13
+ name: z.ZodString;
14
+ /** 工具 ID(用于命令匹配) */
15
+ toolId: z.ZodString;
16
+ /** 是否启用 */
17
+ enabled: z.ZodDefault<z.ZodBoolean>;
18
+ /** 技能目录路径(相对于项目根) */
19
+ skillsDir: z.ZodOptional<z.ZodString>;
20
+ /** 命令目录路径 */
21
+ commandsDir: z.ZodOptional<z.ZodString>;
22
+ /** 模型配置 */
23
+ models: z.ZodOptional<z.ZodObject<{
24
+ cheap: z.ZodDefault<z.ZodString>;
25
+ standard: z.ZodDefault<z.ZodString>;
26
+ capable: z.ZodDefault<z.ZodString>;
27
+ }, "strip", z.ZodTypeAny, {
28
+ cheap: string;
29
+ standard: string;
30
+ capable: string;
31
+ }, {
32
+ cheap?: string | undefined;
33
+ standard?: string | undefined;
34
+ capable?: string | undefined;
35
+ }>>;
36
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
37
+ /** 工具名称 */
38
+ name: z.ZodString;
39
+ /** 工具 ID(用于命令匹配) */
40
+ toolId: z.ZodString;
41
+ /** 是否启用 */
42
+ enabled: z.ZodDefault<z.ZodBoolean>;
43
+ /** 技能目录路径(相对于项目根) */
44
+ skillsDir: z.ZodOptional<z.ZodString>;
45
+ /** 命令目录路径 */
46
+ commandsDir: z.ZodOptional<z.ZodString>;
47
+ /** 模型配置 */
48
+ models: z.ZodOptional<z.ZodObject<{
49
+ cheap: z.ZodDefault<z.ZodString>;
50
+ standard: z.ZodDefault<z.ZodString>;
51
+ capable: z.ZodDefault<z.ZodString>;
52
+ }, "strip", z.ZodTypeAny, {
53
+ cheap: string;
54
+ standard: string;
55
+ capable: string;
56
+ }, {
57
+ cheap?: string | undefined;
58
+ standard?: string | undefined;
59
+ capable?: string | undefined;
60
+ }>>;
61
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
62
+ /** 工具名称 */
63
+ name: z.ZodString;
64
+ /** 工具 ID(用于命令匹配) */
65
+ toolId: z.ZodString;
66
+ /** 是否启用 */
67
+ enabled: z.ZodDefault<z.ZodBoolean>;
68
+ /** 技能目录路径(相对于项目根) */
69
+ skillsDir: z.ZodOptional<z.ZodString>;
70
+ /** 命令目录路径 */
71
+ commandsDir: z.ZodOptional<z.ZodString>;
72
+ /** 模型配置 */
73
+ models: z.ZodOptional<z.ZodObject<{
74
+ cheap: z.ZodDefault<z.ZodString>;
75
+ standard: z.ZodDefault<z.ZodString>;
76
+ capable: z.ZodDefault<z.ZodString>;
77
+ }, "strip", z.ZodTypeAny, {
78
+ cheap: string;
79
+ standard: string;
80
+ capable: string;
81
+ }, {
82
+ cheap?: string | undefined;
83
+ standard?: string | undefined;
84
+ capable?: string | undefined;
85
+ }>>;
86
+ }, z.ZodTypeAny, "passthrough">>;
87
+ export type AIToolConfig = z.infer<typeof AIToolConfigSchema>;
88
+ export declare const SDDEngineConfigSchema: z.ZodObject<{
89
+ maxFixRounds: z.ZodDefault<z.ZodNumber>;
90
+ workspaceDir: z.ZodDefault<z.ZodString>;
91
+ modelTier: z.ZodDefault<z.ZodEnum<["cheap", "standard", "capable"]>>;
92
+ /** Model tier overrides — map tier names to specific model IDs */
93
+ models: z.ZodOptional<z.ZodObject<{
94
+ cheap: z.ZodDefault<z.ZodString>;
95
+ standard: z.ZodDefault<z.ZodString>;
96
+ capable: z.ZodDefault<z.ZodString>;
97
+ }, "strip", z.ZodTypeAny, {
98
+ cheap: string;
99
+ standard: string;
100
+ capable: string;
101
+ }, {
102
+ cheap?: string | undefined;
103
+ standard?: string | undefined;
104
+ capable?: string | undefined;
105
+ }>>;
106
+ /** Per-role model overrides — take precedence over modelTier/model defaults */
107
+ implementerModel: z.ZodOptional<z.ZodString>;
108
+ reviewerModel: z.ZodOptional<z.ZodString>;
109
+ finalReviewModel: z.ZodOptional<z.ZodString>;
110
+ reviewEnabled: z.ZodDefault<z.ZodBoolean>;
111
+ parallelEnabled: z.ZodDefault<z.ZodBoolean>;
112
+ gitWorktreeEnabled: z.ZodDefault<z.ZodBoolean>;
113
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
114
+ maxFixRounds: z.ZodDefault<z.ZodNumber>;
115
+ workspaceDir: z.ZodDefault<z.ZodString>;
116
+ modelTier: z.ZodDefault<z.ZodEnum<["cheap", "standard", "capable"]>>;
117
+ /** Model tier overrides — map tier names to specific model IDs */
118
+ models: z.ZodOptional<z.ZodObject<{
119
+ cheap: z.ZodDefault<z.ZodString>;
120
+ standard: z.ZodDefault<z.ZodString>;
121
+ capable: z.ZodDefault<z.ZodString>;
122
+ }, "strip", z.ZodTypeAny, {
123
+ cheap: string;
124
+ standard: string;
125
+ capable: string;
126
+ }, {
127
+ cheap?: string | undefined;
128
+ standard?: string | undefined;
129
+ capable?: string | undefined;
130
+ }>>;
131
+ /** Per-role model overrides — take precedence over modelTier/model defaults */
132
+ implementerModel: z.ZodOptional<z.ZodString>;
133
+ reviewerModel: z.ZodOptional<z.ZodString>;
134
+ finalReviewModel: z.ZodOptional<z.ZodString>;
135
+ reviewEnabled: z.ZodDefault<z.ZodBoolean>;
136
+ parallelEnabled: z.ZodDefault<z.ZodBoolean>;
137
+ gitWorktreeEnabled: z.ZodDefault<z.ZodBoolean>;
138
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
139
+ maxFixRounds: z.ZodDefault<z.ZodNumber>;
140
+ workspaceDir: z.ZodDefault<z.ZodString>;
141
+ modelTier: z.ZodDefault<z.ZodEnum<["cheap", "standard", "capable"]>>;
142
+ /** Model tier overrides — map tier names to specific model IDs */
143
+ models: z.ZodOptional<z.ZodObject<{
144
+ cheap: z.ZodDefault<z.ZodString>;
145
+ standard: z.ZodDefault<z.ZodString>;
146
+ capable: z.ZodDefault<z.ZodString>;
147
+ }, "strip", z.ZodTypeAny, {
148
+ cheap: string;
149
+ standard: string;
150
+ capable: string;
151
+ }, {
152
+ cheap?: string | undefined;
153
+ standard?: string | undefined;
154
+ capable?: string | undefined;
155
+ }>>;
156
+ /** Per-role model overrides — take precedence over modelTier/model defaults */
157
+ implementerModel: z.ZodOptional<z.ZodString>;
158
+ reviewerModel: z.ZodOptional<z.ZodString>;
159
+ finalReviewModel: z.ZodOptional<z.ZodString>;
160
+ reviewEnabled: z.ZodDefault<z.ZodBoolean>;
161
+ parallelEnabled: z.ZodDefault<z.ZodBoolean>;
162
+ gitWorktreeEnabled: z.ZodDefault<z.ZodBoolean>;
163
+ }, z.ZodTypeAny, "passthrough">>;
164
+ export type SDDEngineConfig = z.infer<typeof SDDEngineConfigSchema>;
165
+ export declare const ArtifactGraphConfigSchema: z.ZodObject<{
166
+ schema: z.ZodDefault<z.ZodString>;
167
+ schemasDir: z.ZodDefault<z.ZodString>;
168
+ autoValidate: z.ZodDefault<z.ZodBoolean>;
169
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
170
+ schema: z.ZodDefault<z.ZodString>;
171
+ schemasDir: z.ZodDefault<z.ZodString>;
172
+ autoValidate: z.ZodDefault<z.ZodBoolean>;
173
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
174
+ schema: z.ZodDefault<z.ZodString>;
175
+ schemasDir: z.ZodDefault<z.ZodString>;
176
+ autoValidate: z.ZodDefault<z.ZodBoolean>;
177
+ }, z.ZodTypeAny, "passthrough">>;
178
+ export type ArtifactGraphConfig = z.infer<typeof ArtifactGraphConfigSchema>;
179
+ export declare const FeatureFlagsSchema: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
180
+ export type FeatureFlags = z.infer<typeof FeatureFlagsSchema>;
181
+ export declare const GlobalConfigSchema: z.ZodObject<{
182
+ /** 配置格式版本 */
183
+ version: z.ZodDefault<z.ZodString>;
184
+ /** 配置文件 */
185
+ profile: z.ZodDefault<z.ZodEnum<["core", "custom"]>>;
186
+ /** 交付模式 */
187
+ delivery: z.ZodDefault<z.ZodEnum<["both", "skills", "commands"]>>;
188
+ /** AI 工具列表 */
189
+ tools: z.ZodDefault<z.ZodArray<z.ZodObject<{
190
+ /** 工具名称 */
191
+ name: z.ZodString;
192
+ /** 工具 ID(用于命令匹配) */
193
+ toolId: z.ZodString;
194
+ /** 是否启用 */
195
+ enabled: z.ZodDefault<z.ZodBoolean>;
196
+ /** 技能目录路径(相对于项目根) */
197
+ skillsDir: z.ZodOptional<z.ZodString>;
198
+ /** 命令目录路径 */
199
+ commandsDir: z.ZodOptional<z.ZodString>;
200
+ /** 模型配置 */
201
+ models: z.ZodOptional<z.ZodObject<{
202
+ cheap: z.ZodDefault<z.ZodString>;
203
+ standard: z.ZodDefault<z.ZodString>;
204
+ capable: z.ZodDefault<z.ZodString>;
205
+ }, "strip", z.ZodTypeAny, {
206
+ cheap: string;
207
+ standard: string;
208
+ capable: string;
209
+ }, {
210
+ cheap?: string | undefined;
211
+ standard?: string | undefined;
212
+ capable?: string | undefined;
213
+ }>>;
214
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
215
+ /** 工具名称 */
216
+ name: z.ZodString;
217
+ /** 工具 ID(用于命令匹配) */
218
+ toolId: z.ZodString;
219
+ /** 是否启用 */
220
+ enabled: z.ZodDefault<z.ZodBoolean>;
221
+ /** 技能目录路径(相对于项目根) */
222
+ skillsDir: z.ZodOptional<z.ZodString>;
223
+ /** 命令目录路径 */
224
+ commandsDir: z.ZodOptional<z.ZodString>;
225
+ /** 模型配置 */
226
+ models: z.ZodOptional<z.ZodObject<{
227
+ cheap: z.ZodDefault<z.ZodString>;
228
+ standard: z.ZodDefault<z.ZodString>;
229
+ capable: z.ZodDefault<z.ZodString>;
230
+ }, "strip", z.ZodTypeAny, {
231
+ cheap: string;
232
+ standard: string;
233
+ capable: string;
234
+ }, {
235
+ cheap?: string | undefined;
236
+ standard?: string | undefined;
237
+ capable?: string | undefined;
238
+ }>>;
239
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
240
+ /** 工具名称 */
241
+ name: z.ZodString;
242
+ /** 工具 ID(用于命令匹配) */
243
+ toolId: z.ZodString;
244
+ /** 是否启用 */
245
+ enabled: z.ZodDefault<z.ZodBoolean>;
246
+ /** 技能目录路径(相对于项目根) */
247
+ skillsDir: z.ZodOptional<z.ZodString>;
248
+ /** 命令目录路径 */
249
+ commandsDir: z.ZodOptional<z.ZodString>;
250
+ /** 模型配置 */
251
+ models: z.ZodOptional<z.ZodObject<{
252
+ cheap: z.ZodDefault<z.ZodString>;
253
+ standard: z.ZodDefault<z.ZodString>;
254
+ capable: z.ZodDefault<z.ZodString>;
255
+ }, "strip", z.ZodTypeAny, {
256
+ cheap: string;
257
+ standard: string;
258
+ capable: string;
259
+ }, {
260
+ cheap?: string | undefined;
261
+ standard?: string | undefined;
262
+ capable?: string | undefined;
263
+ }>>;
264
+ }, z.ZodTypeAny, "passthrough">>, "many">>;
265
+ /** SDD 引擎配置 */
266
+ sdd: z.ZodDefault<z.ZodObject<{
267
+ maxFixRounds: z.ZodDefault<z.ZodNumber>;
268
+ workspaceDir: z.ZodDefault<z.ZodString>;
269
+ modelTier: z.ZodDefault<z.ZodEnum<["cheap", "standard", "capable"]>>;
270
+ /** Model tier overrides — map tier names to specific model IDs */
271
+ models: z.ZodOptional<z.ZodObject<{
272
+ cheap: z.ZodDefault<z.ZodString>;
273
+ standard: z.ZodDefault<z.ZodString>;
274
+ capable: z.ZodDefault<z.ZodString>;
275
+ }, "strip", z.ZodTypeAny, {
276
+ cheap: string;
277
+ standard: string;
278
+ capable: string;
279
+ }, {
280
+ cheap?: string | undefined;
281
+ standard?: string | undefined;
282
+ capable?: string | undefined;
283
+ }>>;
284
+ /** Per-role model overrides — take precedence over modelTier/model defaults */
285
+ implementerModel: z.ZodOptional<z.ZodString>;
286
+ reviewerModel: z.ZodOptional<z.ZodString>;
287
+ finalReviewModel: z.ZodOptional<z.ZodString>;
288
+ reviewEnabled: z.ZodDefault<z.ZodBoolean>;
289
+ parallelEnabled: z.ZodDefault<z.ZodBoolean>;
290
+ gitWorktreeEnabled: z.ZodDefault<z.ZodBoolean>;
291
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
292
+ maxFixRounds: z.ZodDefault<z.ZodNumber>;
293
+ workspaceDir: z.ZodDefault<z.ZodString>;
294
+ modelTier: z.ZodDefault<z.ZodEnum<["cheap", "standard", "capable"]>>;
295
+ /** Model tier overrides — map tier names to specific model IDs */
296
+ models: z.ZodOptional<z.ZodObject<{
297
+ cheap: z.ZodDefault<z.ZodString>;
298
+ standard: z.ZodDefault<z.ZodString>;
299
+ capable: z.ZodDefault<z.ZodString>;
300
+ }, "strip", z.ZodTypeAny, {
301
+ cheap: string;
302
+ standard: string;
303
+ capable: string;
304
+ }, {
305
+ cheap?: string | undefined;
306
+ standard?: string | undefined;
307
+ capable?: string | undefined;
308
+ }>>;
309
+ /** Per-role model overrides — take precedence over modelTier/model defaults */
310
+ implementerModel: z.ZodOptional<z.ZodString>;
311
+ reviewerModel: z.ZodOptional<z.ZodString>;
312
+ finalReviewModel: z.ZodOptional<z.ZodString>;
313
+ reviewEnabled: z.ZodDefault<z.ZodBoolean>;
314
+ parallelEnabled: z.ZodDefault<z.ZodBoolean>;
315
+ gitWorktreeEnabled: z.ZodDefault<z.ZodBoolean>;
316
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
317
+ maxFixRounds: z.ZodDefault<z.ZodNumber>;
318
+ workspaceDir: z.ZodDefault<z.ZodString>;
319
+ modelTier: z.ZodDefault<z.ZodEnum<["cheap", "standard", "capable"]>>;
320
+ /** Model tier overrides — map tier names to specific model IDs */
321
+ models: z.ZodOptional<z.ZodObject<{
322
+ cheap: z.ZodDefault<z.ZodString>;
323
+ standard: z.ZodDefault<z.ZodString>;
324
+ capable: z.ZodDefault<z.ZodString>;
325
+ }, "strip", z.ZodTypeAny, {
326
+ cheap: string;
327
+ standard: string;
328
+ capable: string;
329
+ }, {
330
+ cheap?: string | undefined;
331
+ standard?: string | undefined;
332
+ capable?: string | undefined;
333
+ }>>;
334
+ /** Per-role model overrides — take precedence over modelTier/model defaults */
335
+ implementerModel: z.ZodOptional<z.ZodString>;
336
+ reviewerModel: z.ZodOptional<z.ZodString>;
337
+ finalReviewModel: z.ZodOptional<z.ZodString>;
338
+ reviewEnabled: z.ZodDefault<z.ZodBoolean>;
339
+ parallelEnabled: z.ZodDefault<z.ZodBoolean>;
340
+ gitWorktreeEnabled: z.ZodDefault<z.ZodBoolean>;
341
+ }, z.ZodTypeAny, "passthrough">>>;
342
+ /** 工件图配置 */
343
+ artifactGraph: z.ZodDefault<z.ZodObject<{
344
+ schema: z.ZodDefault<z.ZodString>;
345
+ schemasDir: z.ZodDefault<z.ZodString>;
346
+ autoValidate: z.ZodDefault<z.ZodBoolean>;
347
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
348
+ schema: z.ZodDefault<z.ZodString>;
349
+ schemasDir: z.ZodDefault<z.ZodString>;
350
+ autoValidate: z.ZodDefault<z.ZodBoolean>;
351
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
352
+ schema: z.ZodDefault<z.ZodString>;
353
+ schemasDir: z.ZodDefault<z.ZodString>;
354
+ autoValidate: z.ZodDefault<z.ZodBoolean>;
355
+ }, z.ZodTypeAny, "passthrough">>>;
356
+ /** 工作流启用列表 */
357
+ workflows: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
358
+ /** 默认存储 */
359
+ defaultStore: z.ZodOptional<z.ZodString>;
360
+ /** 全局编码约束 */
361
+ globalConstraints: z.ZodOptional<z.ZodString>;
362
+ /** 项目级上下文描述(注入到 AI 指令中,帮助 AI 理解项目背景) */
363
+ context: z.ZodOptional<z.ZodString>;
364
+ /** 每个工件的定制规则(key 为工件 ID,value 为规则字符串数组) */
365
+ rules: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>>;
366
+ /** 功能开关 */
367
+ featureFlags: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
368
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
369
+ /** 配置格式版本 */
370
+ version: z.ZodDefault<z.ZodString>;
371
+ /** 配置文件 */
372
+ profile: z.ZodDefault<z.ZodEnum<["core", "custom"]>>;
373
+ /** 交付模式 */
374
+ delivery: z.ZodDefault<z.ZodEnum<["both", "skills", "commands"]>>;
375
+ /** AI 工具列表 */
376
+ tools: z.ZodDefault<z.ZodArray<z.ZodObject<{
377
+ /** 工具名称 */
378
+ name: z.ZodString;
379
+ /** 工具 ID(用于命令匹配) */
380
+ toolId: z.ZodString;
381
+ /** 是否启用 */
382
+ enabled: z.ZodDefault<z.ZodBoolean>;
383
+ /** 技能目录路径(相对于项目根) */
384
+ skillsDir: z.ZodOptional<z.ZodString>;
385
+ /** 命令目录路径 */
386
+ commandsDir: z.ZodOptional<z.ZodString>;
387
+ /** 模型配置 */
388
+ models: z.ZodOptional<z.ZodObject<{
389
+ cheap: z.ZodDefault<z.ZodString>;
390
+ standard: z.ZodDefault<z.ZodString>;
391
+ capable: z.ZodDefault<z.ZodString>;
392
+ }, "strip", z.ZodTypeAny, {
393
+ cheap: string;
394
+ standard: string;
395
+ capable: string;
396
+ }, {
397
+ cheap?: string | undefined;
398
+ standard?: string | undefined;
399
+ capable?: string | undefined;
400
+ }>>;
401
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
402
+ /** 工具名称 */
403
+ name: z.ZodString;
404
+ /** 工具 ID(用于命令匹配) */
405
+ toolId: z.ZodString;
406
+ /** 是否启用 */
407
+ enabled: z.ZodDefault<z.ZodBoolean>;
408
+ /** 技能目录路径(相对于项目根) */
409
+ skillsDir: z.ZodOptional<z.ZodString>;
410
+ /** 命令目录路径 */
411
+ commandsDir: z.ZodOptional<z.ZodString>;
412
+ /** 模型配置 */
413
+ models: z.ZodOptional<z.ZodObject<{
414
+ cheap: z.ZodDefault<z.ZodString>;
415
+ standard: z.ZodDefault<z.ZodString>;
416
+ capable: z.ZodDefault<z.ZodString>;
417
+ }, "strip", z.ZodTypeAny, {
418
+ cheap: string;
419
+ standard: string;
420
+ capable: string;
421
+ }, {
422
+ cheap?: string | undefined;
423
+ standard?: string | undefined;
424
+ capable?: string | undefined;
425
+ }>>;
426
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
427
+ /** 工具名称 */
428
+ name: z.ZodString;
429
+ /** 工具 ID(用于命令匹配) */
430
+ toolId: z.ZodString;
431
+ /** 是否启用 */
432
+ enabled: z.ZodDefault<z.ZodBoolean>;
433
+ /** 技能目录路径(相对于项目根) */
434
+ skillsDir: z.ZodOptional<z.ZodString>;
435
+ /** 命令目录路径 */
436
+ commandsDir: z.ZodOptional<z.ZodString>;
437
+ /** 模型配置 */
438
+ models: z.ZodOptional<z.ZodObject<{
439
+ cheap: z.ZodDefault<z.ZodString>;
440
+ standard: z.ZodDefault<z.ZodString>;
441
+ capable: z.ZodDefault<z.ZodString>;
442
+ }, "strip", z.ZodTypeAny, {
443
+ cheap: string;
444
+ standard: string;
445
+ capable: string;
446
+ }, {
447
+ cheap?: string | undefined;
448
+ standard?: string | undefined;
449
+ capable?: string | undefined;
450
+ }>>;
451
+ }, z.ZodTypeAny, "passthrough">>, "many">>;
452
+ /** SDD 引擎配置 */
453
+ sdd: z.ZodDefault<z.ZodObject<{
454
+ maxFixRounds: z.ZodDefault<z.ZodNumber>;
455
+ workspaceDir: z.ZodDefault<z.ZodString>;
456
+ modelTier: z.ZodDefault<z.ZodEnum<["cheap", "standard", "capable"]>>;
457
+ /** Model tier overrides — map tier names to specific model IDs */
458
+ models: z.ZodOptional<z.ZodObject<{
459
+ cheap: z.ZodDefault<z.ZodString>;
460
+ standard: z.ZodDefault<z.ZodString>;
461
+ capable: z.ZodDefault<z.ZodString>;
462
+ }, "strip", z.ZodTypeAny, {
463
+ cheap: string;
464
+ standard: string;
465
+ capable: string;
466
+ }, {
467
+ cheap?: string | undefined;
468
+ standard?: string | undefined;
469
+ capable?: string | undefined;
470
+ }>>;
471
+ /** Per-role model overrides — take precedence over modelTier/model defaults */
472
+ implementerModel: z.ZodOptional<z.ZodString>;
473
+ reviewerModel: z.ZodOptional<z.ZodString>;
474
+ finalReviewModel: z.ZodOptional<z.ZodString>;
475
+ reviewEnabled: z.ZodDefault<z.ZodBoolean>;
476
+ parallelEnabled: z.ZodDefault<z.ZodBoolean>;
477
+ gitWorktreeEnabled: z.ZodDefault<z.ZodBoolean>;
478
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
479
+ maxFixRounds: z.ZodDefault<z.ZodNumber>;
480
+ workspaceDir: z.ZodDefault<z.ZodString>;
481
+ modelTier: z.ZodDefault<z.ZodEnum<["cheap", "standard", "capable"]>>;
482
+ /** Model tier overrides — map tier names to specific model IDs */
483
+ models: z.ZodOptional<z.ZodObject<{
484
+ cheap: z.ZodDefault<z.ZodString>;
485
+ standard: z.ZodDefault<z.ZodString>;
486
+ capable: z.ZodDefault<z.ZodString>;
487
+ }, "strip", z.ZodTypeAny, {
488
+ cheap: string;
489
+ standard: string;
490
+ capable: string;
491
+ }, {
492
+ cheap?: string | undefined;
493
+ standard?: string | undefined;
494
+ capable?: string | undefined;
495
+ }>>;
496
+ /** Per-role model overrides — take precedence over modelTier/model defaults */
497
+ implementerModel: z.ZodOptional<z.ZodString>;
498
+ reviewerModel: z.ZodOptional<z.ZodString>;
499
+ finalReviewModel: z.ZodOptional<z.ZodString>;
500
+ reviewEnabled: z.ZodDefault<z.ZodBoolean>;
501
+ parallelEnabled: z.ZodDefault<z.ZodBoolean>;
502
+ gitWorktreeEnabled: z.ZodDefault<z.ZodBoolean>;
503
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
504
+ maxFixRounds: z.ZodDefault<z.ZodNumber>;
505
+ workspaceDir: z.ZodDefault<z.ZodString>;
506
+ modelTier: z.ZodDefault<z.ZodEnum<["cheap", "standard", "capable"]>>;
507
+ /** Model tier overrides — map tier names to specific model IDs */
508
+ models: z.ZodOptional<z.ZodObject<{
509
+ cheap: z.ZodDefault<z.ZodString>;
510
+ standard: z.ZodDefault<z.ZodString>;
511
+ capable: z.ZodDefault<z.ZodString>;
512
+ }, "strip", z.ZodTypeAny, {
513
+ cheap: string;
514
+ standard: string;
515
+ capable: string;
516
+ }, {
517
+ cheap?: string | undefined;
518
+ standard?: string | undefined;
519
+ capable?: string | undefined;
520
+ }>>;
521
+ /** Per-role model overrides — take precedence over modelTier/model defaults */
522
+ implementerModel: z.ZodOptional<z.ZodString>;
523
+ reviewerModel: z.ZodOptional<z.ZodString>;
524
+ finalReviewModel: z.ZodOptional<z.ZodString>;
525
+ reviewEnabled: z.ZodDefault<z.ZodBoolean>;
526
+ parallelEnabled: z.ZodDefault<z.ZodBoolean>;
527
+ gitWorktreeEnabled: z.ZodDefault<z.ZodBoolean>;
528
+ }, z.ZodTypeAny, "passthrough">>>;
529
+ /** 工件图配置 */
530
+ artifactGraph: z.ZodDefault<z.ZodObject<{
531
+ schema: z.ZodDefault<z.ZodString>;
532
+ schemasDir: z.ZodDefault<z.ZodString>;
533
+ autoValidate: z.ZodDefault<z.ZodBoolean>;
534
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
535
+ schema: z.ZodDefault<z.ZodString>;
536
+ schemasDir: z.ZodDefault<z.ZodString>;
537
+ autoValidate: z.ZodDefault<z.ZodBoolean>;
538
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
539
+ schema: z.ZodDefault<z.ZodString>;
540
+ schemasDir: z.ZodDefault<z.ZodString>;
541
+ autoValidate: z.ZodDefault<z.ZodBoolean>;
542
+ }, z.ZodTypeAny, "passthrough">>>;
543
+ /** 工作流启用列表 */
544
+ workflows: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
545
+ /** 默认存储 */
546
+ defaultStore: z.ZodOptional<z.ZodString>;
547
+ /** 全局编码约束 */
548
+ globalConstraints: z.ZodOptional<z.ZodString>;
549
+ /** 项目级上下文描述(注入到 AI 指令中,帮助 AI 理解项目背景) */
550
+ context: z.ZodOptional<z.ZodString>;
551
+ /** 每个工件的定制规则(key 为工件 ID,value 为规则字符串数组) */
552
+ rules: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>>;
553
+ /** 功能开关 */
554
+ featureFlags: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
555
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
556
+ /** 配置格式版本 */
557
+ version: z.ZodDefault<z.ZodString>;
558
+ /** 配置文件 */
559
+ profile: z.ZodDefault<z.ZodEnum<["core", "custom"]>>;
560
+ /** 交付模式 */
561
+ delivery: z.ZodDefault<z.ZodEnum<["both", "skills", "commands"]>>;
562
+ /** AI 工具列表 */
563
+ tools: z.ZodDefault<z.ZodArray<z.ZodObject<{
564
+ /** 工具名称 */
565
+ name: z.ZodString;
566
+ /** 工具 ID(用于命令匹配) */
567
+ toolId: z.ZodString;
568
+ /** 是否启用 */
569
+ enabled: z.ZodDefault<z.ZodBoolean>;
570
+ /** 技能目录路径(相对于项目根) */
571
+ skillsDir: z.ZodOptional<z.ZodString>;
572
+ /** 命令目录路径 */
573
+ commandsDir: z.ZodOptional<z.ZodString>;
574
+ /** 模型配置 */
575
+ models: z.ZodOptional<z.ZodObject<{
576
+ cheap: z.ZodDefault<z.ZodString>;
577
+ standard: z.ZodDefault<z.ZodString>;
578
+ capable: z.ZodDefault<z.ZodString>;
579
+ }, "strip", z.ZodTypeAny, {
580
+ cheap: string;
581
+ standard: string;
582
+ capable: string;
583
+ }, {
584
+ cheap?: string | undefined;
585
+ standard?: string | undefined;
586
+ capable?: string | undefined;
587
+ }>>;
588
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
589
+ /** 工具名称 */
590
+ name: z.ZodString;
591
+ /** 工具 ID(用于命令匹配) */
592
+ toolId: z.ZodString;
593
+ /** 是否启用 */
594
+ enabled: z.ZodDefault<z.ZodBoolean>;
595
+ /** 技能目录路径(相对于项目根) */
596
+ skillsDir: z.ZodOptional<z.ZodString>;
597
+ /** 命令目录路径 */
598
+ commandsDir: z.ZodOptional<z.ZodString>;
599
+ /** 模型配置 */
600
+ models: z.ZodOptional<z.ZodObject<{
601
+ cheap: z.ZodDefault<z.ZodString>;
602
+ standard: z.ZodDefault<z.ZodString>;
603
+ capable: z.ZodDefault<z.ZodString>;
604
+ }, "strip", z.ZodTypeAny, {
605
+ cheap: string;
606
+ standard: string;
607
+ capable: string;
608
+ }, {
609
+ cheap?: string | undefined;
610
+ standard?: string | undefined;
611
+ capable?: string | undefined;
612
+ }>>;
613
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
614
+ /** 工具名称 */
615
+ name: z.ZodString;
616
+ /** 工具 ID(用于命令匹配) */
617
+ toolId: z.ZodString;
618
+ /** 是否启用 */
619
+ enabled: z.ZodDefault<z.ZodBoolean>;
620
+ /** 技能目录路径(相对于项目根) */
621
+ skillsDir: z.ZodOptional<z.ZodString>;
622
+ /** 命令目录路径 */
623
+ commandsDir: z.ZodOptional<z.ZodString>;
624
+ /** 模型配置 */
625
+ models: z.ZodOptional<z.ZodObject<{
626
+ cheap: z.ZodDefault<z.ZodString>;
627
+ standard: z.ZodDefault<z.ZodString>;
628
+ capable: z.ZodDefault<z.ZodString>;
629
+ }, "strip", z.ZodTypeAny, {
630
+ cheap: string;
631
+ standard: string;
632
+ capable: string;
633
+ }, {
634
+ cheap?: string | undefined;
635
+ standard?: string | undefined;
636
+ capable?: string | undefined;
637
+ }>>;
638
+ }, z.ZodTypeAny, "passthrough">>, "many">>;
639
+ /** SDD 引擎配置 */
640
+ sdd: z.ZodDefault<z.ZodObject<{
641
+ maxFixRounds: z.ZodDefault<z.ZodNumber>;
642
+ workspaceDir: z.ZodDefault<z.ZodString>;
643
+ modelTier: z.ZodDefault<z.ZodEnum<["cheap", "standard", "capable"]>>;
644
+ /** Model tier overrides — map tier names to specific model IDs */
645
+ models: z.ZodOptional<z.ZodObject<{
646
+ cheap: z.ZodDefault<z.ZodString>;
647
+ standard: z.ZodDefault<z.ZodString>;
648
+ capable: z.ZodDefault<z.ZodString>;
649
+ }, "strip", z.ZodTypeAny, {
650
+ cheap: string;
651
+ standard: string;
652
+ capable: string;
653
+ }, {
654
+ cheap?: string | undefined;
655
+ standard?: string | undefined;
656
+ capable?: string | undefined;
657
+ }>>;
658
+ /** Per-role model overrides — take precedence over modelTier/model defaults */
659
+ implementerModel: z.ZodOptional<z.ZodString>;
660
+ reviewerModel: z.ZodOptional<z.ZodString>;
661
+ finalReviewModel: z.ZodOptional<z.ZodString>;
662
+ reviewEnabled: z.ZodDefault<z.ZodBoolean>;
663
+ parallelEnabled: z.ZodDefault<z.ZodBoolean>;
664
+ gitWorktreeEnabled: z.ZodDefault<z.ZodBoolean>;
665
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
666
+ maxFixRounds: z.ZodDefault<z.ZodNumber>;
667
+ workspaceDir: z.ZodDefault<z.ZodString>;
668
+ modelTier: z.ZodDefault<z.ZodEnum<["cheap", "standard", "capable"]>>;
669
+ /** Model tier overrides — map tier names to specific model IDs */
670
+ models: z.ZodOptional<z.ZodObject<{
671
+ cheap: z.ZodDefault<z.ZodString>;
672
+ standard: z.ZodDefault<z.ZodString>;
673
+ capable: z.ZodDefault<z.ZodString>;
674
+ }, "strip", z.ZodTypeAny, {
675
+ cheap: string;
676
+ standard: string;
677
+ capable: string;
678
+ }, {
679
+ cheap?: string | undefined;
680
+ standard?: string | undefined;
681
+ capable?: string | undefined;
682
+ }>>;
683
+ /** Per-role model overrides — take precedence over modelTier/model defaults */
684
+ implementerModel: z.ZodOptional<z.ZodString>;
685
+ reviewerModel: z.ZodOptional<z.ZodString>;
686
+ finalReviewModel: z.ZodOptional<z.ZodString>;
687
+ reviewEnabled: z.ZodDefault<z.ZodBoolean>;
688
+ parallelEnabled: z.ZodDefault<z.ZodBoolean>;
689
+ gitWorktreeEnabled: z.ZodDefault<z.ZodBoolean>;
690
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
691
+ maxFixRounds: z.ZodDefault<z.ZodNumber>;
692
+ workspaceDir: z.ZodDefault<z.ZodString>;
693
+ modelTier: z.ZodDefault<z.ZodEnum<["cheap", "standard", "capable"]>>;
694
+ /** Model tier overrides — map tier names to specific model IDs */
695
+ models: z.ZodOptional<z.ZodObject<{
696
+ cheap: z.ZodDefault<z.ZodString>;
697
+ standard: z.ZodDefault<z.ZodString>;
698
+ capable: z.ZodDefault<z.ZodString>;
699
+ }, "strip", z.ZodTypeAny, {
700
+ cheap: string;
701
+ standard: string;
702
+ capable: string;
703
+ }, {
704
+ cheap?: string | undefined;
705
+ standard?: string | undefined;
706
+ capable?: string | undefined;
707
+ }>>;
708
+ /** Per-role model overrides — take precedence over modelTier/model defaults */
709
+ implementerModel: z.ZodOptional<z.ZodString>;
710
+ reviewerModel: z.ZodOptional<z.ZodString>;
711
+ finalReviewModel: z.ZodOptional<z.ZodString>;
712
+ reviewEnabled: z.ZodDefault<z.ZodBoolean>;
713
+ parallelEnabled: z.ZodDefault<z.ZodBoolean>;
714
+ gitWorktreeEnabled: z.ZodDefault<z.ZodBoolean>;
715
+ }, z.ZodTypeAny, "passthrough">>>;
716
+ /** 工件图配置 */
717
+ artifactGraph: z.ZodDefault<z.ZodObject<{
718
+ schema: z.ZodDefault<z.ZodString>;
719
+ schemasDir: z.ZodDefault<z.ZodString>;
720
+ autoValidate: z.ZodDefault<z.ZodBoolean>;
721
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
722
+ schema: z.ZodDefault<z.ZodString>;
723
+ schemasDir: z.ZodDefault<z.ZodString>;
724
+ autoValidate: z.ZodDefault<z.ZodBoolean>;
725
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
726
+ schema: z.ZodDefault<z.ZodString>;
727
+ schemasDir: z.ZodDefault<z.ZodString>;
728
+ autoValidate: z.ZodDefault<z.ZodBoolean>;
729
+ }, z.ZodTypeAny, "passthrough">>>;
730
+ /** 工作流启用列表 */
731
+ workflows: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
732
+ /** 默认存储 */
733
+ defaultStore: z.ZodOptional<z.ZodString>;
734
+ /** 全局编码约束 */
735
+ globalConstraints: z.ZodOptional<z.ZodString>;
736
+ /** 项目级上下文描述(注入到 AI 指令中,帮助 AI 理解项目背景) */
737
+ context: z.ZodOptional<z.ZodString>;
738
+ /** 每个工件的定制规则(key 为工件 ID,value 为规则字符串数组) */
739
+ rules: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>>;
740
+ /** 功能开关 */
741
+ featureFlags: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
742
+ }, z.ZodTypeAny, "passthrough">>;
743
+ export type GlobalConfig = z.infer<typeof GlobalConfigSchema>;
744
+ export declare const DEFAULT_CONFIG: GlobalConfig;
745
+ //# sourceMappingURL=config-schema.d.ts.map