agent-bober 0.12.0 → 0.15.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 (518) hide show
  1. package/CHANGELOG.md +213 -0
  2. package/README.md +112 -3
  3. package/agents/bober-architect.md +38 -0
  4. package/agents/bober-code-reviewer.md +236 -0
  5. package/agents/bober-curator.md +37 -0
  6. package/agents/bober-deployer.md +267 -0
  7. package/agents/bober-diagnoser.md +289 -0
  8. package/agents/bober-evaluator.md +89 -1
  9. package/agents/bober-generator.md +68 -3
  10. package/agents/bober-planner.md +39 -0
  11. package/agents/bober-postmortemer.md +185 -0
  12. package/agents/bober-researcher.md +38 -0
  13. package/dist/cli/commands/approve.d.ts +17 -0
  14. package/dist/cli/commands/approve.d.ts.map +1 -0
  15. package/dist/cli/commands/approve.js +64 -0
  16. package/dist/cli/commands/approve.js.map +1 -0
  17. package/dist/cli/commands/audit-show.d.ts +14 -0
  18. package/dist/cli/commands/audit-show.d.ts.map +1 -0
  19. package/dist/cli/commands/audit-show.js +85 -0
  20. package/dist/cli/commands/audit-show.js.map +1 -0
  21. package/dist/cli/commands/config.d.ts +10 -0
  22. package/dist/cli/commands/config.d.ts.map +1 -0
  23. package/dist/cli/commands/config.js +73 -0
  24. package/dist/cli/commands/config.js.map +1 -0
  25. package/dist/cli/commands/graph.d.ts +8 -0
  26. package/dist/cli/commands/graph.d.ts.map +1 -0
  27. package/dist/cli/commands/graph.js +219 -0
  28. package/dist/cli/commands/graph.js.map +1 -0
  29. package/dist/cli/commands/impact.d.ts +19 -0
  30. package/dist/cli/commands/impact.d.ts.map +1 -0
  31. package/dist/cli/commands/impact.js +191 -0
  32. package/dist/cli/commands/impact.js.map +1 -0
  33. package/dist/cli/commands/incident.d.ts +19 -0
  34. package/dist/cli/commands/incident.d.ts.map +1 -0
  35. package/dist/cli/commands/incident.js +324 -0
  36. package/dist/cli/commands/incident.js.map +1 -0
  37. package/dist/cli/commands/init.js +36 -1
  38. package/dist/cli/commands/init.js.map +1 -1
  39. package/dist/cli/commands/list-approvals.d.ts +16 -0
  40. package/dist/cli/commands/list-approvals.d.ts.map +1 -0
  41. package/dist/cli/commands/list-approvals.js +57 -0
  42. package/dist/cli/commands/list-approvals.js.map +1 -0
  43. package/dist/cli/commands/onboard.d.ts +3 -0
  44. package/dist/cli/commands/onboard.d.ts.map +1 -0
  45. package/dist/cli/commands/onboard.js +190 -0
  46. package/dist/cli/commands/onboard.js.map +1 -0
  47. package/dist/cli/commands/playbook.d.ts +17 -0
  48. package/dist/cli/commands/playbook.d.ts.map +1 -0
  49. package/dist/cli/commands/playbook.js +123 -0
  50. package/dist/cli/commands/playbook.js.map +1 -0
  51. package/dist/cli/commands/postmortem.d.ts +12 -0
  52. package/dist/cli/commands/postmortem.d.ts.map +1 -0
  53. package/dist/cli/commands/postmortem.js +67 -0
  54. package/dist/cli/commands/postmortem.js.map +1 -0
  55. package/dist/cli/commands/reject.d.ts +17 -0
  56. package/dist/cli/commands/reject.d.ts.map +1 -0
  57. package/dist/cli/commands/reject.js +52 -0
  58. package/dist/cli/commands/reject.js.map +1 -0
  59. package/dist/cli/commands/rollback.d.ts +21 -0
  60. package/dist/cli/commands/rollback.d.ts.map +1 -0
  61. package/dist/cli/commands/rollback.js +90 -0
  62. package/dist/cli/commands/rollback.js.map +1 -0
  63. package/dist/cli/commands/run.d.ts +9 -0
  64. package/dist/cli/commands/run.d.ts.map +1 -1
  65. package/dist/cli/commands/run.js +29 -0
  66. package/dist/cli/commands/run.js.map +1 -1
  67. package/dist/cli/commands/telemetry.d.ts +16 -0
  68. package/dist/cli/commands/telemetry.d.ts.map +1 -0
  69. package/dist/cli/commands/telemetry.js +152 -0
  70. package/dist/cli/commands/telemetry.js.map +1 -0
  71. package/dist/cli/commands/worktree.d.ts +12 -0
  72. package/dist/cli/commands/worktree.d.ts.map +1 -0
  73. package/dist/cli/commands/worktree.js +57 -0
  74. package/dist/cli/commands/worktree.js.map +1 -0
  75. package/dist/cli/index.js +50 -0
  76. package/dist/cli/index.js.map +1 -1
  77. package/dist/config/defaults.d.ts.map +1 -1
  78. package/dist/config/defaults.js +27 -0
  79. package/dist/config/defaults.js.map +1 -1
  80. package/dist/config/index.d.ts +1 -1
  81. package/dist/config/index.d.ts.map +1 -1
  82. package/dist/config/index.js +4 -0
  83. package/dist/config/index.js.map +1 -1
  84. package/dist/config/loader.d.ts.map +1 -1
  85. package/dist/config/loader.js +18 -1
  86. package/dist/config/loader.js.map +1 -1
  87. package/dist/config/schema.d.ts +976 -56
  88. package/dist/config/schema.d.ts.map +1 -1
  89. package/dist/config/schema.js +147 -0
  90. package/dist/config/schema.js.map +1 -1
  91. package/dist/graph/artifact-store.d.ts +14 -0
  92. package/dist/graph/artifact-store.d.ts.map +1 -0
  93. package/dist/graph/artifact-store.js +100 -0
  94. package/dist/graph/artifact-store.js.map +1 -0
  95. package/dist/graph/cli.d.ts +49 -0
  96. package/dist/graph/cli.d.ts.map +1 -0
  97. package/dist/graph/cli.js +140 -0
  98. package/dist/graph/cli.js.map +1 -0
  99. package/dist/graph/client.d.ts +64 -0
  100. package/dist/graph/client.d.ts.map +1 -0
  101. package/dist/graph/client.js +216 -0
  102. package/dist/graph/client.js.map +1 -0
  103. package/dist/graph/fallback.d.ts +13 -0
  104. package/dist/graph/fallback.d.ts.map +1 -0
  105. package/dist/graph/fallback.js +57 -0
  106. package/dist/graph/fallback.js.map +1 -0
  107. package/dist/graph/hook-handler.d.ts +50 -0
  108. package/dist/graph/hook-handler.d.ts.map +1 -0
  109. package/dist/graph/hook-handler.js +217 -0
  110. package/dist/graph/hook-handler.js.map +1 -0
  111. package/dist/graph/incidents.d.ts +59 -0
  112. package/dist/graph/incidents.d.ts.map +1 -0
  113. package/dist/graph/incidents.js +22 -0
  114. package/dist/graph/incidents.js.map +1 -0
  115. package/dist/graph/mcp-client.d.ts +51 -0
  116. package/dist/graph/mcp-client.d.ts.map +1 -0
  117. package/dist/graph/mcp-client.js +285 -0
  118. package/dist/graph/mcp-client.js.map +1 -0
  119. package/dist/graph/onboarding-composer.d.ts +30 -0
  120. package/dist/graph/onboarding-composer.d.ts.map +1 -0
  121. package/dist/graph/onboarding-composer.js +275 -0
  122. package/dist/graph/onboarding-composer.js.map +1 -0
  123. package/dist/graph/pipeline-lifecycle.d.ts +86 -0
  124. package/dist/graph/pipeline-lifecycle.d.ts.map +1 -0
  125. package/dist/graph/pipeline-lifecycle.js +329 -0
  126. package/dist/graph/pipeline-lifecycle.js.map +1 -0
  127. package/dist/graph/preflight-budgets.d.ts +52 -0
  128. package/dist/graph/preflight-budgets.d.ts.map +1 -0
  129. package/dist/graph/preflight-budgets.js +78 -0
  130. package/dist/graph/preflight-budgets.js.map +1 -0
  131. package/dist/graph/preflight-injector.d.ts +116 -0
  132. package/dist/graph/preflight-injector.d.ts.map +1 -0
  133. package/dist/graph/preflight-injector.js +538 -0
  134. package/dist/graph/preflight-injector.js.map +1 -0
  135. package/dist/graph/prereq.d.ts +12 -0
  136. package/dist/graph/prereq.d.ts.map +1 -0
  137. package/dist/graph/prereq.js +61 -0
  138. package/dist/graph/prereq.js.map +1 -0
  139. package/dist/graph/prompts.d.ts +42 -0
  140. package/dist/graph/prompts.d.ts.map +1 -0
  141. package/dist/graph/prompts.js +80 -0
  142. package/dist/graph/prompts.js.map +1 -0
  143. package/dist/graph/sandbox.d.ts +19 -0
  144. package/dist/graph/sandbox.d.ts.map +1 -0
  145. package/dist/graph/sandbox.js +25 -0
  146. package/dist/graph/sandbox.js.map +1 -0
  147. package/dist/graph/token-usage.d.ts +21 -0
  148. package/dist/graph/token-usage.d.ts.map +1 -0
  149. package/dist/graph/token-usage.js +22 -0
  150. package/dist/graph/token-usage.js.map +1 -0
  151. package/dist/graph/types.d.ts +129 -0
  152. package/dist/graph/types.d.ts.map +1 -0
  153. package/dist/graph/types.js +12 -0
  154. package/dist/graph/types.js.map +1 -0
  155. package/dist/incident/orchestrator.d.ts +168 -0
  156. package/dist/incident/orchestrator.d.ts.map +1 -0
  157. package/dist/incident/orchestrator.js +279 -0
  158. package/dist/incident/orchestrator.js.map +1 -0
  159. package/dist/incident/playbook-search.d.ts +67 -0
  160. package/dist/incident/playbook-search.d.ts.map +1 -0
  161. package/dist/incident/playbook-search.js +288 -0
  162. package/dist/incident/playbook-search.js.map +1 -0
  163. package/dist/incident/postmortem.d.ts +44 -0
  164. package/dist/incident/postmortem.d.ts.map +1 -0
  165. package/dist/incident/postmortem.js +486 -0
  166. package/dist/incident/postmortem.js.map +1 -0
  167. package/dist/incident/resolution-verify.d.ts +186 -0
  168. package/dist/incident/resolution-verify.d.ts.map +1 -0
  169. package/dist/incident/resolution-verify.js +210 -0
  170. package/dist/incident/resolution-verify.js.map +1 -0
  171. package/dist/incident/rollback.d.ts +137 -0
  172. package/dist/incident/rollback.d.ts.map +1 -0
  173. package/dist/incident/rollback.js +328 -0
  174. package/dist/incident/rollback.js.map +1 -0
  175. package/dist/incident/timeline.d.ts +147 -0
  176. package/dist/incident/timeline.d.ts.map +1 -0
  177. package/dist/incident/timeline.js +452 -0
  178. package/dist/incident/timeline.js.map +1 -0
  179. package/dist/incident/types.d.ts +335 -0
  180. package/dist/incident/types.d.ts.map +1 -0
  181. package/dist/incident/types.js +158 -0
  182. package/dist/incident/types.js.map +1 -0
  183. package/dist/index.d.ts +1 -1
  184. package/dist/index.d.ts.map +1 -1
  185. package/dist/index.js +1 -1
  186. package/dist/index.js.map +1 -1
  187. package/dist/mcp/event-stream.d.ts +46 -0
  188. package/dist/mcp/event-stream.d.ts.map +1 -0
  189. package/dist/mcp/event-stream.js +421 -0
  190. package/dist/mcp/event-stream.js.map +1 -0
  191. package/dist/mcp/external-client.d.ts +38 -0
  192. package/dist/mcp/external-client.d.ts.map +1 -0
  193. package/dist/mcp/external-client.js +121 -0
  194. package/dist/mcp/external-client.js.map +1 -0
  195. package/dist/mcp/run-manager.d.ts +74 -9
  196. package/dist/mcp/run-manager.d.ts.map +1 -1
  197. package/dist/mcp/run-manager.js +127 -31
  198. package/dist/mcp/run-manager.js.map +1 -1
  199. package/dist/mcp/server.d.ts.map +1 -1
  200. package/dist/mcp/server.js +56 -0
  201. package/dist/mcp/server.js.map +1 -1
  202. package/dist/mcp/tools/abort-run.d.ts +2 -0
  203. package/dist/mcp/tools/abort-run.d.ts.map +1 -0
  204. package/dist/mcp/tools/abort-run.js +62 -0
  205. package/dist/mcp/tools/abort-run.js.map +1 -0
  206. package/dist/mcp/tools/anchor.js +1 -1
  207. package/dist/mcp/tools/anchor.js.map +1 -1
  208. package/dist/mcp/tools/approve-checkpoint.d.ts +2 -0
  209. package/dist/mcp/tools/approve-checkpoint.d.ts.map +1 -0
  210. package/dist/mcp/tools/approve-checkpoint.js +70 -0
  211. package/dist/mcp/tools/approve-checkpoint.js.map +1 -0
  212. package/dist/mcp/tools/brownfield.js +1 -1
  213. package/dist/mcp/tools/brownfield.js.map +1 -1
  214. package/dist/mcp/tools/get-project-state.d.ts +2 -0
  215. package/dist/mcp/tools/get-project-state.d.ts.map +1 -0
  216. package/dist/mcp/tools/get-project-state.js +107 -0
  217. package/dist/mcp/tools/get-project-state.js.map +1 -0
  218. package/dist/mcp/tools/get-run-status.d.ts +2 -0
  219. package/dist/mcp/tools/get-run-status.d.ts.map +1 -0
  220. package/dist/mcp/tools/get-run-status.js +40 -0
  221. package/dist/mcp/tools/get-run-status.js.map +1 -0
  222. package/dist/mcp/tools/graph-schemas.d.ts +100 -0
  223. package/dist/mcp/tools/graph-schemas.d.ts.map +1 -0
  224. package/dist/mcp/tools/graph-schemas.js +39 -0
  225. package/dist/mcp/tools/graph-schemas.js.map +1 -0
  226. package/dist/mcp/tools/graph.d.ts +19 -0
  227. package/dist/mcp/tools/graph.d.ts.map +1 -0
  228. package/dist/mcp/tools/graph.js +263 -0
  229. package/dist/mcp/tools/graph.js.map +1 -0
  230. package/dist/mcp/tools/incident.d.ts +2 -0
  231. package/dist/mcp/tools/incident.d.ts.map +1 -0
  232. package/dist/mcp/tools/incident.js +246 -0
  233. package/dist/mcp/tools/incident.js.map +1 -0
  234. package/dist/mcp/tools/index.d.ts +38 -18
  235. package/dist/mcp/tools/index.d.ts.map +1 -1
  236. package/dist/mcp/tools/index.js +74 -18
  237. package/dist/mcp/tools/index.js.map +1 -1
  238. package/dist/mcp/tools/list-active-runs.d.ts +2 -0
  239. package/dist/mcp/tools/list-active-runs.d.ts.map +1 -0
  240. package/dist/mcp/tools/list-active-runs.js +35 -0
  241. package/dist/mcp/tools/list-active-runs.js.map +1 -0
  242. package/dist/mcp/tools/list-pending-approvals.d.ts +2 -0
  243. package/dist/mcp/tools/list-pending-approvals.d.ts.map +1 -0
  244. package/dist/mcp/tools/list-pending-approvals.js +40 -0
  245. package/dist/mcp/tools/list-pending-approvals.js.map +1 -0
  246. package/dist/mcp/tools/list-projects.d.ts +2 -0
  247. package/dist/mcp/tools/list-projects.d.ts.map +1 -0
  248. package/dist/mcp/tools/list-projects.js +101 -0
  249. package/dist/mcp/tools/list-projects.js.map +1 -0
  250. package/dist/mcp/tools/list-specs.d.ts +2 -0
  251. package/dist/mcp/tools/list-specs.d.ts.map +1 -0
  252. package/dist/mcp/tools/list-specs.js +48 -0
  253. package/dist/mcp/tools/list-specs.js.map +1 -0
  254. package/dist/mcp/tools/playbook.d.ts +2 -0
  255. package/dist/mcp/tools/playbook.d.ts.map +1 -0
  256. package/dist/mcp/tools/playbook.js +104 -0
  257. package/dist/mcp/tools/playbook.js.map +1 -0
  258. package/dist/mcp/tools/postmortem.d.ts +2 -0
  259. package/dist/mcp/tools/postmortem.d.ts.map +1 -0
  260. package/dist/mcp/tools/postmortem.js +75 -0
  261. package/dist/mcp/tools/postmortem.js.map +1 -0
  262. package/dist/mcp/tools/react.js +1 -1
  263. package/dist/mcp/tools/react.js.map +1 -1
  264. package/dist/mcp/tools/reject-checkpoint.d.ts +2 -0
  265. package/dist/mcp/tools/reject-checkpoint.d.ts.map +1 -0
  266. package/dist/mcp/tools/reject-checkpoint.js +79 -0
  267. package/dist/mcp/tools/reject-checkpoint.js.map +1 -0
  268. package/dist/mcp/tools/rollback.d.ts +2 -0
  269. package/dist/mcp/tools/rollback.d.ts.map +1 -0
  270. package/dist/mcp/tools/rollback.js +78 -0
  271. package/dist/mcp/tools/rollback.js.map +1 -0
  272. package/dist/mcp/tools/run-in-worktree.d.ts +2 -0
  273. package/dist/mcp/tools/run-in-worktree.d.ts.map +1 -0
  274. package/dist/mcp/tools/run-in-worktree.js +90 -0
  275. package/dist/mcp/tools/run-in-worktree.js.map +1 -0
  276. package/dist/mcp/tools/run.js +1 -1
  277. package/dist/mcp/tools/run.js.map +1 -1
  278. package/dist/mcp/tools/solidity.js +1 -1
  279. package/dist/mcp/tools/solidity.js.map +1 -1
  280. package/dist/mcp/tools/status.d.ts.map +1 -1
  281. package/dist/mcp/tools/status.js +11 -0
  282. package/dist/mcp/tools/status.js.map +1 -1
  283. package/dist/mcp/tools/subscribe-events.d.ts +2 -0
  284. package/dist/mcp/tools/subscribe-events.d.ts.map +1 -0
  285. package/dist/mcp/tools/subscribe-events.js +48 -0
  286. package/dist/mcp/tools/subscribe-events.js.map +1 -0
  287. package/dist/mcp/tools/unsubscribe-events.d.ts +2 -0
  288. package/dist/mcp/tools/unsubscribe-events.d.ts.map +1 -0
  289. package/dist/mcp/tools/unsubscribe-events.js +45 -0
  290. package/dist/mcp/tools/unsubscribe-events.js.map +1 -0
  291. package/dist/orchestrator/agent-loader.d.ts +16 -0
  292. package/dist/orchestrator/agent-loader.d.ts.map +1 -1
  293. package/dist/orchestrator/agent-loader.js +16 -0
  294. package/dist/orchestrator/agent-loader.js.map +1 -1
  295. package/dist/orchestrator/architect-agent.d.ts.map +1 -1
  296. package/dist/orchestrator/architect-agent.js +37 -8
  297. package/dist/orchestrator/architect-agent.js.map +1 -1
  298. package/dist/orchestrator/checkpoints/audit.d.ts +128 -0
  299. package/dist/orchestrator/checkpoints/audit.d.ts.map +1 -0
  300. package/dist/orchestrator/checkpoints/audit.js +272 -0
  301. package/dist/orchestrator/checkpoints/audit.js.map +1 -0
  302. package/dist/orchestrator/checkpoints/feedback-router.d.ts +213 -0
  303. package/dist/orchestrator/checkpoints/feedback-router.d.ts.map +1 -0
  304. package/dist/orchestrator/checkpoints/feedback-router.js +438 -0
  305. package/dist/orchestrator/checkpoints/feedback-router.js.map +1 -0
  306. package/dist/orchestrator/checkpoints/index.d.ts +11 -0
  307. package/dist/orchestrator/checkpoints/index.d.ts.map +1 -0
  308. package/dist/orchestrator/checkpoints/index.js +12 -0
  309. package/dist/orchestrator/checkpoints/index.js.map +1 -0
  310. package/dist/orchestrator/checkpoints/mechanisms/cli.d.ts +35 -0
  311. package/dist/orchestrator/checkpoints/mechanisms/cli.d.ts.map +1 -0
  312. package/dist/orchestrator/checkpoints/mechanisms/cli.js +153 -0
  313. package/dist/orchestrator/checkpoints/mechanisms/cli.js.map +1 -0
  314. package/dist/orchestrator/checkpoints/mechanisms/disk.d.ts +34 -0
  315. package/dist/orchestrator/checkpoints/mechanisms/disk.d.ts.map +1 -0
  316. package/dist/orchestrator/checkpoints/mechanisms/disk.js +139 -0
  317. package/dist/orchestrator/checkpoints/mechanisms/disk.js.map +1 -0
  318. package/dist/orchestrator/checkpoints/mechanisms/pr.d.ts +141 -0
  319. package/dist/orchestrator/checkpoints/mechanisms/pr.d.ts.map +1 -0
  320. package/dist/orchestrator/checkpoints/mechanisms/pr.js +445 -0
  321. package/dist/orchestrator/checkpoints/mechanisms/pr.js.map +1 -0
  322. package/dist/orchestrator/checkpoints/noop.d.ts +12 -0
  323. package/dist/orchestrator/checkpoints/noop.d.ts.map +1 -0
  324. package/dist/orchestrator/checkpoints/noop.js +13 -0
  325. package/dist/orchestrator/checkpoints/noop.js.map +1 -0
  326. package/dist/orchestrator/checkpoints/registry.d.ts +48 -0
  327. package/dist/orchestrator/checkpoints/registry.d.ts.map +1 -0
  328. package/dist/orchestrator/checkpoints/registry.js +89 -0
  329. package/dist/orchestrator/checkpoints/registry.js.map +1 -0
  330. package/dist/orchestrator/checkpoints/renderers/_util.d.ts +50 -0
  331. package/dist/orchestrator/checkpoints/renderers/_util.d.ts.map +1 -0
  332. package/dist/orchestrator/checkpoints/renderers/_util.js +137 -0
  333. package/dist/orchestrator/checkpoints/renderers/_util.js.map +1 -0
  334. package/dist/orchestrator/checkpoints/renderers/code-review.d.ts +15 -0
  335. package/dist/orchestrator/checkpoints/renderers/code-review.d.ts.map +1 -0
  336. package/dist/orchestrator/checkpoints/renderers/code-review.js +66 -0
  337. package/dist/orchestrator/checkpoints/renderers/code-review.js.map +1 -0
  338. package/dist/orchestrator/checkpoints/renderers/curator-briefing.d.ts +15 -0
  339. package/dist/orchestrator/checkpoints/renderers/curator-briefing.d.ts.map +1 -0
  340. package/dist/orchestrator/checkpoints/renderers/curator-briefing.js +40 -0
  341. package/dist/orchestrator/checkpoints/renderers/curator-briefing.js.map +1 -0
  342. package/dist/orchestrator/checkpoints/renderers/eval-result.d.ts +15 -0
  343. package/dist/orchestrator/checkpoints/renderers/eval-result.d.ts.map +1 -0
  344. package/dist/orchestrator/checkpoints/renderers/eval-result.js +54 -0
  345. package/dist/orchestrator/checkpoints/renderers/eval-result.js.map +1 -0
  346. package/dist/orchestrator/checkpoints/renderers/generator-diff.d.ts +49 -0
  347. package/dist/orchestrator/checkpoints/renderers/generator-diff.d.ts.map +1 -0
  348. package/dist/orchestrator/checkpoints/renderers/generator-diff.js +154 -0
  349. package/dist/orchestrator/checkpoints/renderers/generator-diff.js.map +1 -0
  350. package/dist/orchestrator/checkpoints/renderers/pipeline-summary.d.ts +15 -0
  351. package/dist/orchestrator/checkpoints/renderers/pipeline-summary.d.ts.map +1 -0
  352. package/dist/orchestrator/checkpoints/renderers/pipeline-summary.js +59 -0
  353. package/dist/orchestrator/checkpoints/renderers/pipeline-summary.js.map +1 -0
  354. package/dist/orchestrator/checkpoints/renderers/plan.d.ts +15 -0
  355. package/dist/orchestrator/checkpoints/renderers/plan.d.ts.map +1 -0
  356. package/dist/orchestrator/checkpoints/renderers/plan.js +34 -0
  357. package/dist/orchestrator/checkpoints/renderers/plan.js.map +1 -0
  358. package/dist/orchestrator/checkpoints/renderers/registry.d.ts +43 -0
  359. package/dist/orchestrator/checkpoints/renderers/registry.d.ts.map +1 -0
  360. package/dist/orchestrator/checkpoints/renderers/registry.js +83 -0
  361. package/dist/orchestrator/checkpoints/renderers/registry.js.map +1 -0
  362. package/dist/orchestrator/checkpoints/renderers/research.d.ts +15 -0
  363. package/dist/orchestrator/checkpoints/renderers/research.d.ts.map +1 -0
  364. package/dist/orchestrator/checkpoints/renderers/research.js +39 -0
  365. package/dist/orchestrator/checkpoints/renderers/research.js.map +1 -0
  366. package/dist/orchestrator/checkpoints/renderers/sprint-contract.d.ts +20 -0
  367. package/dist/orchestrator/checkpoints/renderers/sprint-contract.d.ts.map +1 -0
  368. package/dist/orchestrator/checkpoints/renderers/sprint-contract.js +57 -0
  369. package/dist/orchestrator/checkpoints/renderers/sprint-contract.js.map +1 -0
  370. package/dist/orchestrator/checkpoints/renderers/sprint-summary.d.ts +15 -0
  371. package/dist/orchestrator/checkpoints/renderers/sprint-summary.d.ts.map +1 -0
  372. package/dist/orchestrator/checkpoints/renderers/sprint-summary.js +38 -0
  373. package/dist/orchestrator/checkpoints/renderers/sprint-summary.js.map +1 -0
  374. package/dist/orchestrator/checkpoints/sites.d.ts +22 -0
  375. package/dist/orchestrator/checkpoints/sites.d.ts.map +1 -0
  376. package/dist/orchestrator/checkpoints/sites.js +57 -0
  377. package/dist/orchestrator/checkpoints/sites.js.map +1 -0
  378. package/dist/orchestrator/checkpoints/types.d.ts +51 -0
  379. package/dist/orchestrator/checkpoints/types.d.ts.map +1 -0
  380. package/dist/orchestrator/checkpoints/types.js +9 -0
  381. package/dist/orchestrator/checkpoints/types.js.map +1 -0
  382. package/dist/orchestrator/code-reviewer-agent.d.ts +50 -0
  383. package/dist/orchestrator/code-reviewer-agent.d.ts.map +1 -0
  384. package/dist/orchestrator/code-reviewer-agent.js +283 -0
  385. package/dist/orchestrator/code-reviewer-agent.js.map +1 -0
  386. package/dist/orchestrator/curator-agent.d.ts.map +1 -1
  387. package/dist/orchestrator/curator-agent.js +59 -8
  388. package/dist/orchestrator/curator-agent.js.map +1 -1
  389. package/dist/orchestrator/deploy/classify.d.ts +31 -0
  390. package/dist/orchestrator/deploy/classify.d.ts.map +1 -0
  391. package/dist/orchestrator/deploy/classify.js +109 -0
  392. package/dist/orchestrator/deploy/classify.js.map +1 -0
  393. package/dist/orchestrator/deploy/execute.d.ts +45 -0
  394. package/dist/orchestrator/deploy/execute.d.ts.map +1 -0
  395. package/dist/orchestrator/deploy/execute.js +146 -0
  396. package/dist/orchestrator/deploy/execute.js.map +1 -0
  397. package/dist/orchestrator/deploy/executor.d.ts +22 -0
  398. package/dist/orchestrator/deploy/executor.d.ts.map +1 -0
  399. package/dist/orchestrator/deploy/executor.js +31 -0
  400. package/dist/orchestrator/deploy/executor.js.map +1 -0
  401. package/dist/orchestrator/deploy/index.d.ts +21 -0
  402. package/dist/orchestrator/deploy/index.d.ts.map +1 -0
  403. package/dist/orchestrator/deploy/index.js +21 -0
  404. package/dist/orchestrator/deploy/index.js.map +1 -0
  405. package/dist/orchestrator/deploy/resolve.d.ts +51 -0
  406. package/dist/orchestrator/deploy/resolve.d.ts.map +1 -0
  407. package/dist/orchestrator/deploy/resolve.js +53 -0
  408. package/dist/orchestrator/deploy/resolve.js.map +1 -0
  409. package/dist/orchestrator/deploy/spawn.d.ts +60 -0
  410. package/dist/orchestrator/deploy/spawn.d.ts.map +1 -0
  411. package/dist/orchestrator/deploy/spawn.js +62 -0
  412. package/dist/orchestrator/deploy/spawn.js.map +1 -0
  413. package/dist/orchestrator/deploy/types.d.ts +98 -0
  414. package/dist/orchestrator/deploy/types.d.ts.map +1 -0
  415. package/dist/orchestrator/deploy/types.js +39 -0
  416. package/dist/orchestrator/deploy/types.js.map +1 -0
  417. package/dist/orchestrator/evaluator-agent.d.ts.map +1 -1
  418. package/dist/orchestrator/evaluator-agent.js +21 -8
  419. package/dist/orchestrator/evaluator-agent.js.map +1 -1
  420. package/dist/orchestrator/generator-agent.d.ts.map +1 -1
  421. package/dist/orchestrator/generator-agent.js +21 -8
  422. package/dist/orchestrator/generator-agent.js.map +1 -1
  423. package/dist/orchestrator/model-resolver.d.ts.map +1 -1
  424. package/dist/orchestrator/model-resolver.js +3 -1
  425. package/dist/orchestrator/model-resolver.js.map +1 -1
  426. package/dist/orchestrator/observability/index.d.ts +12 -0
  427. package/dist/orchestrator/observability/index.d.ts.map +1 -0
  428. package/dist/orchestrator/observability/index.js +12 -0
  429. package/dist/orchestrator/observability/index.js.map +1 -0
  430. package/dist/orchestrator/observability/merge.d.ts +73 -0
  431. package/dist/orchestrator/observability/merge.d.ts.map +1 -0
  432. package/dist/orchestrator/observability/merge.js +110 -0
  433. package/dist/orchestrator/observability/merge.js.map +1 -0
  434. package/dist/orchestrator/pipeline.d.ts +21 -0
  435. package/dist/orchestrator/pipeline.d.ts.map +1 -1
  436. package/dist/orchestrator/pipeline.js +156 -2
  437. package/dist/orchestrator/pipeline.js.map +1 -1
  438. package/dist/orchestrator/planner-agent.d.ts.map +1 -1
  439. package/dist/orchestrator/planner-agent.js +5 -4
  440. package/dist/orchestrator/planner-agent.js.map +1 -1
  441. package/dist/orchestrator/research-agent.d.ts.map +1 -1
  442. package/dist/orchestrator/research-agent.js +46 -9
  443. package/dist/orchestrator/research-agent.js.map +1 -1
  444. package/dist/orchestrator/tools/handlers.d.ts +2 -0
  445. package/dist/orchestrator/tools/handlers.d.ts.map +1 -1
  446. package/dist/orchestrator/tools/handlers.js +1 -1
  447. package/dist/orchestrator/tools/handlers.js.map +1 -1
  448. package/dist/orchestrator/tools/index.d.ts +84 -1
  449. package/dist/orchestrator/tools/index.d.ts.map +1 -1
  450. package/dist/orchestrator/tools/index.js +164 -1
  451. package/dist/orchestrator/tools/index.js.map +1 -1
  452. package/dist/orchestrator/worktree.d.ts +18 -0
  453. package/dist/orchestrator/worktree.d.ts.map +1 -0
  454. package/dist/orchestrator/worktree.js +129 -0
  455. package/dist/orchestrator/worktree.js.map +1 -0
  456. package/dist/providers/anthropic.d.ts +8 -1
  457. package/dist/providers/anthropic.d.ts.map +1 -1
  458. package/dist/providers/anthropic.js +86 -5
  459. package/dist/providers/anthropic.js.map +1 -1
  460. package/dist/providers/factory.d.ts.map +1 -1
  461. package/dist/providers/factory.js +35 -2
  462. package/dist/providers/factory.js.map +1 -1
  463. package/dist/providers/google.d.ts.map +1 -1
  464. package/dist/providers/google.js +5 -0
  465. package/dist/providers/google.js.map +1 -1
  466. package/dist/providers/index.d.ts +1 -1
  467. package/dist/providers/index.d.ts.map +1 -1
  468. package/dist/providers/index.js.map +1 -1
  469. package/dist/providers/openai.d.ts.map +1 -1
  470. package/dist/providers/openai.js +4 -0
  471. package/dist/providers/openai.js.map +1 -1
  472. package/dist/providers/types.d.ts +25 -2
  473. package/dist/providers/types.d.ts.map +1 -1
  474. package/dist/state/approval-state.d.ts +74 -0
  475. package/dist/state/approval-state.d.ts.map +1 -0
  476. package/dist/state/approval-state.js +127 -0
  477. package/dist/state/approval-state.js.map +1 -0
  478. package/dist/state/index.d.ts +3 -0
  479. package/dist/state/index.d.ts.map +1 -1
  480. package/dist/state/index.js +4 -1
  481. package/dist/state/index.js.map +1 -1
  482. package/dist/state/review-state.d.ts +15 -0
  483. package/dist/state/review-state.d.ts.map +1 -0
  484. package/dist/state/review-state.js +51 -0
  485. package/dist/state/review-state.js.map +1 -0
  486. package/dist/state/run-state.d.ts +39 -0
  487. package/dist/state/run-state.d.ts.map +1 -0
  488. package/dist/state/run-state.js +101 -0
  489. package/dist/state/run-state.js.map +1 -0
  490. package/dist/telemetry/emit.d.ts +41 -0
  491. package/dist/telemetry/emit.d.ts.map +1 -0
  492. package/dist/telemetry/emit.js +65 -0
  493. package/dist/telemetry/emit.js.map +1 -0
  494. package/dist/utils/git.d.ts +27 -0
  495. package/dist/utils/git.d.ts.map +1 -1
  496. package/dist/utils/git.js +50 -0
  497. package/dist/utils/git.js.map +1 -1
  498. package/hooks/hooks.json +17 -1
  499. package/hooks/session-start +42 -0
  500. package/package.json +5 -2
  501. package/scripts/check-prereqs.sh +12 -0
  502. package/scripts/e2e-graph-smoke.sh +167 -0
  503. package/scripts/graph-hook.mjs +151 -0
  504. package/scripts/run-kpi-gate.mjs +245 -0
  505. package/scripts/sync-skills.mjs +4 -1
  506. package/skills/bober.code-review/SKILL.md +186 -0
  507. package/skills/bober.debug/SKILL.md +300 -0
  508. package/skills/bober.deploy/SKILL.md +262 -0
  509. package/skills/bober.diagnose/SKILL.md +254 -0
  510. package/skills/bober.graph/SKILL.md +85 -0
  511. package/skills/bober.impact/SKILL.md +101 -0
  512. package/skills/bober.incident/SKILL.md +245 -0
  513. package/skills/bober.onboard/SKILL.md +84 -0
  514. package/skills/bober.plan/SKILL.md +10 -0
  515. package/skills/bober.postmortem/SKILL.md +231 -0
  516. package/skills/bober.runbook/SKILL.md +335 -0
  517. package/skills/bober.using-bober/SKILL.md +133 -0
  518. package/skills/bober.verify/SKILL.md +143 -0
@@ -286,24 +286,107 @@ export declare const CuratorSectionSchema: z.ZodObject<{
286
286
  enabled?: boolean | undefined;
287
287
  }>;
288
288
  export type CuratorSection = z.infer<typeof CuratorSectionSchema>;
289
+ export declare const CodeReviewSectionSchema: z.ZodObject<{
290
+ timeoutMs: z.ZodDefault<z.ZodNumber>;
291
+ enabled: z.ZodDefault<z.ZodBoolean>;
292
+ model: z.ZodDefault<z.ZodString>;
293
+ maxTurns: z.ZodDefault<z.ZodNumber>;
294
+ provider: z.ZodOptional<z.ZodString>;
295
+ endpoint: z.ZodOptional<z.ZodNullable<z.ZodString>>;
296
+ providerConfig: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
297
+ }, "strip", z.ZodTypeAny, {
298
+ model: string;
299
+ maxTurns: number;
300
+ enabled: boolean;
301
+ timeoutMs: number;
302
+ provider?: string | undefined;
303
+ endpoint?: string | null | undefined;
304
+ providerConfig?: Record<string, unknown> | undefined;
305
+ }, {
306
+ model?: string | undefined;
307
+ provider?: string | undefined;
308
+ endpoint?: string | null | undefined;
309
+ providerConfig?: Record<string, unknown> | undefined;
310
+ maxTurns?: number | undefined;
311
+ enabled?: boolean | undefined;
312
+ timeoutMs?: number | undefined;
313
+ }>;
314
+ export type CodeReviewSection = z.infer<typeof CodeReviewSectionSchema>;
315
+ /** Well-known checkpoint mechanism names. */
316
+ export declare const CheckpointMechanismSchema: z.ZodEnum<["noop", "cli", "disk", "pr"]>;
317
+ export type CheckpointMechanismName = z.infer<typeof CheckpointMechanismSchema>;
289
318
  export declare const PipelineSectionSchema: z.ZodObject<{
290
319
  maxIterations: z.ZodDefault<z.ZodNumber>;
320
+ /** Maximum times the router re-invokes a responsible agent after rejection. Default 3, min 1, max 10. */
321
+ maxCheckpointIterations: z.ZodDefault<z.ZodNumber>;
291
322
  requireApproval: z.ZodDefault<z.ZodBoolean>;
292
323
  contextReset: z.ZodDefault<z.ZodEnum<["always", "on-threshold", "never"]>>;
293
324
  researchPhase: z.ZodDefault<z.ZodBoolean>;
294
325
  architectPhase: z.ZodDefault<z.ZodBoolean>;
326
+ /** Pipeline execution mode. 'autopilot' auto-approves all checkpoints; 'careful' defaults to disk mechanism. Default: 'autopilot'. */
327
+ mode: z.ZodDefault<z.ZodEnum<["autopilot", "careful"]>>;
328
+ /** Global default checkpoint mechanism name. When unset, resolved at runtime from pipeline.mode. Optional — leave unset to use mode-based default. */
329
+ checkpointMechanism: z.ZodOptional<z.ZodEnum<["noop", "cli", "disk", "pr"]>>;
330
+ /** Per-checkpoint mechanism overrides. Keys are checkpoint IDs (e.g., 'post-research'); values are mechanism names. Default: {}. */
331
+ checkpointOverrides: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodEnum<["noop", "cli", "disk", "pr"]>>>;
332
+ /** How long (ms) the disk and CLI mechanisms wait for approval before timing out. Default: 86400000 (24 hours). */
333
+ approvalTimeoutMs: z.ZodDefault<z.ZodNumber>;
334
+ /** How often (ms) the PR mechanism polls for PR merge/close events. Default: 30000 (30 seconds). */
335
+ prPollMs: z.ZodDefault<z.ZodNumber>;
336
+ /** Sprint 20: escape hatch for fully-automated environments (CI, batch jobs)
337
+ * where no human is available. When false (default), risky actions trigger
338
+ * a non-noop mechanism floor (default 'disk') even in mode='autopilot' +
339
+ * checkpointMechanism='noop'. When true, risky actions are auto-approved
340
+ * with a STERN warning logged and the ChangeEntry STILL recorded with the
341
+ * required inverse. This is "skip the interactive approval" — NOT "skip
342
+ * the audit trail." Documented as a footgun in skills/bober.deploy/SKILL.md. */
343
+ allowAutopilotRiskyActions: z.ZodDefault<z.ZodBoolean>;
344
+ /** Sprint 3 (cockpit-integration): per-subscription bounded queue for the
345
+ * event-stream notification fan-out. Default 1000. When the queue overflows,
346
+ * the oldest events are dropped and a single `bober/events.dropped`
347
+ * notification with `{ subscriptionId, dropped: N }` is emitted per
348
+ * overflow window. */
349
+ eventQueueBound: z.ZodDefault<z.ZodNumber>;
350
+ /** Sprint 4 (cockpit-integration): root directory (relative to projectRoot) under
351
+ * which git worktrees are created. Default '.bober/worktrees'. The full worktree
352
+ * path is <projectRoot>/<worktreeRoot>/<runId>. */
353
+ worktreeRoot: z.ZodDefault<z.ZodString>;
354
+ /** Sprint 4 (cockpit-integration): when true (default), the worktree is removed
355
+ * via `git worktree remove` after a successful pipeline run. On failure the
356
+ * worktree is ALWAYS retained for debugging regardless of this flag. */
357
+ cleanupWorktreeOnSuccess: z.ZodDefault<z.ZodBoolean>;
295
358
  }, "strip", z.ZodTypeAny, {
359
+ mode: "autopilot" | "careful";
296
360
  maxIterations: number;
361
+ maxCheckpointIterations: number;
297
362
  requireApproval: boolean;
298
363
  contextReset: "always" | "on-threshold" | "never";
299
364
  researchPhase: boolean;
300
365
  architectPhase: boolean;
366
+ checkpointOverrides: Record<string, "noop" | "cli" | "disk" | "pr">;
367
+ approvalTimeoutMs: number;
368
+ prPollMs: number;
369
+ allowAutopilotRiskyActions: boolean;
370
+ eventQueueBound: number;
371
+ worktreeRoot: string;
372
+ cleanupWorktreeOnSuccess: boolean;
373
+ checkpointMechanism?: "noop" | "cli" | "disk" | "pr" | undefined;
301
374
  }, {
375
+ mode?: "autopilot" | "careful" | undefined;
302
376
  maxIterations?: number | undefined;
377
+ maxCheckpointIterations?: number | undefined;
303
378
  requireApproval?: boolean | undefined;
304
379
  contextReset?: "always" | "on-threshold" | "never" | undefined;
305
380
  researchPhase?: boolean | undefined;
306
381
  architectPhase?: boolean | undefined;
382
+ checkpointMechanism?: "noop" | "cli" | "disk" | "pr" | undefined;
383
+ checkpointOverrides?: Record<string, "noop" | "cli" | "disk" | "pr"> | undefined;
384
+ approvalTimeoutMs?: number | undefined;
385
+ prPollMs?: number | undefined;
386
+ allowAutopilotRiskyActions?: boolean | undefined;
387
+ eventQueueBound?: number | undefined;
388
+ worktreeRoot?: string | undefined;
389
+ cleanupWorktreeOnSuccess?: boolean | undefined;
307
390
  }>;
308
391
  export type PipelineSection = z.infer<typeof PipelineSectionSchema>;
309
392
  export declare const CommandsSectionSchema: z.ZodObject<{
@@ -329,6 +412,216 @@ export declare const CommandsSectionSchema: z.ZodObject<{
329
412
  dev?: string | undefined;
330
413
  }>;
331
414
  export type CommandsSection = z.infer<typeof CommandsSectionSchema>;
415
+ export declare const GraphLanguageTierSchema: z.ZodEnum<["core", "extended", "all"]>;
416
+ export type GraphLanguageTier = z.infer<typeof GraphLanguageTierSchema>;
417
+ /**
418
+ * Per-role token budgets for pre-flight graph context injection (ADR-9).
419
+ * Budgets are enforced on the FORMATTED markdown output (not raw graph results).
420
+ * Token counting uses Math.ceil(text.length / 4) as a conservative estimate.
421
+ */
422
+ export declare const GraphPreflightBudgetsSchema: z.ZodObject<{
423
+ architect: z.ZodDefault<z.ZodNumber>;
424
+ curator: z.ZodDefault<z.ZodNumber>;
425
+ generator: z.ZodDefault<z.ZodNumber>;
426
+ evaluator: z.ZodDefault<z.ZodNumber>;
427
+ /** camelCase alias for the 'researcher-phase2' role. */
428
+ researcherPhase2: z.ZodDefault<z.ZodNumber>;
429
+ }, "strip", z.ZodTypeAny, {
430
+ architect: number;
431
+ curator: number;
432
+ generator: number;
433
+ evaluator: number;
434
+ researcherPhase2: number;
435
+ }, {
436
+ architect?: number | undefined;
437
+ curator?: number | undefined;
438
+ generator?: number | undefined;
439
+ evaluator?: number | undefined;
440
+ researcherPhase2?: number | undefined;
441
+ }>;
442
+ export type GraphPreflightBudgets = z.infer<typeof GraphPreflightBudgetsSchema>;
443
+ export declare const GraphSectionSchema: z.ZodObject<{
444
+ enabled: z.ZodDefault<z.ZodBoolean>;
445
+ tokensavePath: z.ZodOptional<z.ZodString>;
446
+ autoSync: z.ZodDefault<z.ZodBoolean>;
447
+ languageTier: z.ZodDefault<z.ZodEnum<["core", "extended", "all"]>>;
448
+ manifestPath: z.ZodDefault<z.ZodString>;
449
+ syncTimeoutMs: z.ZodDefault<z.ZodNumber>;
450
+ queryTimeoutMs: z.ZodDefault<z.ZodNumber>;
451
+ debounceMs: z.ZodDefault<z.ZodNumber>;
452
+ hookQueueMax: z.ZodDefault<z.ZodNumber>;
453
+ maxEngineRssMb: z.ZodDefault<z.ZodNumber>;
454
+ /** When true (default) and graph.enabled=true, graph_* tools are
455
+ * exposed on the external MCP server (Cursor/Windsurf). When false,
456
+ * graph tools remain available to the internal orchestrator only. */
457
+ exposeOnExternalMcp: z.ZodDefault<z.ZodBoolean>;
458
+ /** Per-role token budgets for pre-flight graph context injection (ADR-9). */
459
+ preflightBudgets: z.ZodDefault<z.ZodObject<{
460
+ architect: z.ZodDefault<z.ZodNumber>;
461
+ curator: z.ZodDefault<z.ZodNumber>;
462
+ generator: z.ZodDefault<z.ZodNumber>;
463
+ evaluator: z.ZodDefault<z.ZodNumber>;
464
+ /** camelCase alias for the 'researcher-phase2' role. */
465
+ researcherPhase2: z.ZodDefault<z.ZodNumber>;
466
+ }, "strip", z.ZodTypeAny, {
467
+ architect: number;
468
+ curator: number;
469
+ generator: number;
470
+ evaluator: number;
471
+ researcherPhase2: number;
472
+ }, {
473
+ architect?: number | undefined;
474
+ curator?: number | undefined;
475
+ generator?: number | undefined;
476
+ evaluator?: number | undefined;
477
+ researcherPhase2?: number | undefined;
478
+ }>>;
479
+ }, "strip", z.ZodTypeAny, {
480
+ enabled: boolean;
481
+ autoSync: boolean;
482
+ languageTier: "core" | "extended" | "all";
483
+ manifestPath: string;
484
+ syncTimeoutMs: number;
485
+ queryTimeoutMs: number;
486
+ debounceMs: number;
487
+ hookQueueMax: number;
488
+ maxEngineRssMb: number;
489
+ exposeOnExternalMcp: boolean;
490
+ preflightBudgets: {
491
+ architect: number;
492
+ curator: number;
493
+ generator: number;
494
+ evaluator: number;
495
+ researcherPhase2: number;
496
+ };
497
+ tokensavePath?: string | undefined;
498
+ }, {
499
+ enabled?: boolean | undefined;
500
+ tokensavePath?: string | undefined;
501
+ autoSync?: boolean | undefined;
502
+ languageTier?: "core" | "extended" | "all" | undefined;
503
+ manifestPath?: string | undefined;
504
+ syncTimeoutMs?: number | undefined;
505
+ queryTimeoutMs?: number | undefined;
506
+ debounceMs?: number | undefined;
507
+ hookQueueMax?: number | undefined;
508
+ maxEngineRssMb?: number | undefined;
509
+ exposeOnExternalMcp?: boolean | undefined;
510
+ preflightBudgets?: {
511
+ architect?: number | undefined;
512
+ curator?: number | undefined;
513
+ generator?: number | undefined;
514
+ evaluator?: number | undefined;
515
+ researcherPhase2?: number | undefined;
516
+ } | undefined;
517
+ }>;
518
+ export type GraphSection = z.infer<typeof GraphSectionSchema>;
519
+ /** Categories of observability data a provider can serve. */
520
+ export declare const ObservabilityProviderKindSchema: z.ZodEnum<["logs", "metrics", "traces", "errors", "custom"]>;
521
+ export type ObservabilityProviderKind = z.infer<typeof ObservabilityProviderKindSchema>;
522
+ /**
523
+ * One declared external MCP server providing observability tools.
524
+ * At diagnoser spawn time the orchestrator spawns mcpCommand with
525
+ * mcpArgs and mcpEnv, lists its tools, and merges them into the
526
+ * diagnoser's tool set under the prefix `obs__<name>__<tool>`.
527
+ */
528
+ export declare const ObservabilityProviderSchema: z.ZodObject<{
529
+ /** Unique name used in the obs__<name>__<tool> namespace prefix. */
530
+ name: z.ZodString;
531
+ kind: z.ZodEnum<["logs", "metrics", "traces", "errors", "custom"]>;
532
+ /** Executable to spawn (e.g., "node", "/usr/local/bin/mcp-grafana"). */
533
+ mcpCommand: z.ZodString;
534
+ mcpArgs: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
535
+ /** Env vars passed to the child — may contain SECRETS (treat as opaque). */
536
+ mcpEnv: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
537
+ enabled: z.ZodDefault<z.ZodBoolean>;
538
+ }, "strip", z.ZodTypeAny, {
539
+ name: string;
540
+ enabled: boolean;
541
+ kind: "custom" | "logs" | "metrics" | "traces" | "errors";
542
+ mcpCommand: string;
543
+ mcpArgs?: string[] | undefined;
544
+ mcpEnv?: Record<string, string> | undefined;
545
+ }, {
546
+ name: string;
547
+ kind: "custom" | "logs" | "metrics" | "traces" | "errors";
548
+ mcpCommand: string;
549
+ enabled?: boolean | undefined;
550
+ mcpArgs?: string[] | undefined;
551
+ mcpEnv?: Record<string, string> | undefined;
552
+ }>;
553
+ export type ObservabilityProvider = z.infer<typeof ObservabilityProviderSchema>;
554
+ export declare const ObservabilitySectionSchema: z.ZodObject<{
555
+ providers: z.ZodDefault<z.ZodArray<z.ZodObject<{
556
+ /** Unique name used in the obs__<name>__<tool> namespace prefix. */
557
+ name: z.ZodString;
558
+ kind: z.ZodEnum<["logs", "metrics", "traces", "errors", "custom"]>;
559
+ /** Executable to spawn (e.g., "node", "/usr/local/bin/mcp-grafana"). */
560
+ mcpCommand: z.ZodString;
561
+ mcpArgs: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
562
+ /** Env vars passed to the child — may contain SECRETS (treat as opaque). */
563
+ mcpEnv: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
564
+ enabled: z.ZodDefault<z.ZodBoolean>;
565
+ }, "strip", z.ZodTypeAny, {
566
+ name: string;
567
+ enabled: boolean;
568
+ kind: "custom" | "logs" | "metrics" | "traces" | "errors";
569
+ mcpCommand: string;
570
+ mcpArgs?: string[] | undefined;
571
+ mcpEnv?: Record<string, string> | undefined;
572
+ }, {
573
+ name: string;
574
+ kind: "custom" | "logs" | "metrics" | "traces" | "errors";
575
+ mcpCommand: string;
576
+ enabled?: boolean | undefined;
577
+ mcpArgs?: string[] | undefined;
578
+ mcpEnv?: Record<string, string> | undefined;
579
+ }>, "many">>;
580
+ }, "strip", z.ZodTypeAny, {
581
+ providers: {
582
+ name: string;
583
+ enabled: boolean;
584
+ kind: "custom" | "logs" | "metrics" | "traces" | "errors";
585
+ mcpCommand: string;
586
+ mcpArgs?: string[] | undefined;
587
+ mcpEnv?: Record<string, string> | undefined;
588
+ }[];
589
+ }, {
590
+ providers?: {
591
+ name: string;
592
+ kind: "custom" | "logs" | "metrics" | "traces" | "errors";
593
+ mcpCommand: string;
594
+ enabled?: boolean | undefined;
595
+ mcpArgs?: string[] | undefined;
596
+ mcpEnv?: Record<string, string> | undefined;
597
+ }[] | undefined;
598
+ }>;
599
+ export type ObservabilitySection = z.infer<typeof ObservabilitySectionSchema>;
600
+ export declare const IncidentSectionSchema: z.ZodObject<{
601
+ /** When true (default), an incident transition to status='resolved' triggers
602
+ * asynchronous postmortem generation. The status transition itself returns
603
+ * immediately — postmortem synthesis runs fire-and-forget and updates
604
+ * incident.json.postmortemPath when complete. Set false to disable auto-gen
605
+ * (e.g., for CI environments or read-only audits). Sprint 23. */
606
+ autoPostmortem: z.ZodDefault<z.ZodBoolean>;
607
+ }, "strip", z.ZodTypeAny, {
608
+ autoPostmortem: boolean;
609
+ }, {
610
+ autoPostmortem?: boolean | undefined;
611
+ }>;
612
+ export type IncidentSection = z.infer<typeof IncidentSectionSchema>;
613
+ export declare const TelemetrySectionSchema: z.ZodObject<{
614
+ /** When true, the orchestrator appends JSONL events to .bober/telemetry/<date>.jsonl
615
+ * for tracking checkpoint approval rates, incident resolution times, agent retry
616
+ * counts. Default false (no events written). No network egress under any condition
617
+ * — see ESLint no-restricted-imports rule in eslint.config.js for src/telemetry/. */
618
+ enabled: z.ZodDefault<z.ZodBoolean>;
619
+ }, "strip", z.ZodTypeAny, {
620
+ enabled: boolean;
621
+ }, {
622
+ enabled?: boolean | undefined;
623
+ }>;
624
+ export type TelemetrySection = z.infer<typeof TelemetrySectionSchema>;
332
625
  export declare const BoberConfigSchema: z.ZodObject<{
333
626
  project: z.ZodObject<{
334
627
  name: z.ZodString;
@@ -539,22 +832,76 @@ export declare const BoberConfigSchema: z.ZodObject<{
539
832
  }>;
540
833
  pipeline: z.ZodObject<{
541
834
  maxIterations: z.ZodDefault<z.ZodNumber>;
835
+ /** Maximum times the router re-invokes a responsible agent after rejection. Default 3, min 1, max 10. */
836
+ maxCheckpointIterations: z.ZodDefault<z.ZodNumber>;
542
837
  requireApproval: z.ZodDefault<z.ZodBoolean>;
543
838
  contextReset: z.ZodDefault<z.ZodEnum<["always", "on-threshold", "never"]>>;
544
839
  researchPhase: z.ZodDefault<z.ZodBoolean>;
545
840
  architectPhase: z.ZodDefault<z.ZodBoolean>;
841
+ /** Pipeline execution mode. 'autopilot' auto-approves all checkpoints; 'careful' defaults to disk mechanism. Default: 'autopilot'. */
842
+ mode: z.ZodDefault<z.ZodEnum<["autopilot", "careful"]>>;
843
+ /** Global default checkpoint mechanism name. When unset, resolved at runtime from pipeline.mode. Optional — leave unset to use mode-based default. */
844
+ checkpointMechanism: z.ZodOptional<z.ZodEnum<["noop", "cli", "disk", "pr"]>>;
845
+ /** Per-checkpoint mechanism overrides. Keys are checkpoint IDs (e.g., 'post-research'); values are mechanism names. Default: {}. */
846
+ checkpointOverrides: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodEnum<["noop", "cli", "disk", "pr"]>>>;
847
+ /** How long (ms) the disk and CLI mechanisms wait for approval before timing out. Default: 86400000 (24 hours). */
848
+ approvalTimeoutMs: z.ZodDefault<z.ZodNumber>;
849
+ /** How often (ms) the PR mechanism polls for PR merge/close events. Default: 30000 (30 seconds). */
850
+ prPollMs: z.ZodDefault<z.ZodNumber>;
851
+ /** Sprint 20: escape hatch for fully-automated environments (CI, batch jobs)
852
+ * where no human is available. When false (default), risky actions trigger
853
+ * a non-noop mechanism floor (default 'disk') even in mode='autopilot' +
854
+ * checkpointMechanism='noop'. When true, risky actions are auto-approved
855
+ * with a STERN warning logged and the ChangeEntry STILL recorded with the
856
+ * required inverse. This is "skip the interactive approval" — NOT "skip
857
+ * the audit trail." Documented as a footgun in skills/bober.deploy/SKILL.md. */
858
+ allowAutopilotRiskyActions: z.ZodDefault<z.ZodBoolean>;
859
+ /** Sprint 3 (cockpit-integration): per-subscription bounded queue for the
860
+ * event-stream notification fan-out. Default 1000. When the queue overflows,
861
+ * the oldest events are dropped and a single `bober/events.dropped`
862
+ * notification with `{ subscriptionId, dropped: N }` is emitted per
863
+ * overflow window. */
864
+ eventQueueBound: z.ZodDefault<z.ZodNumber>;
865
+ /** Sprint 4 (cockpit-integration): root directory (relative to projectRoot) under
866
+ * which git worktrees are created. Default '.bober/worktrees'. The full worktree
867
+ * path is <projectRoot>/<worktreeRoot>/<runId>. */
868
+ worktreeRoot: z.ZodDefault<z.ZodString>;
869
+ /** Sprint 4 (cockpit-integration): when true (default), the worktree is removed
870
+ * via `git worktree remove` after a successful pipeline run. On failure the
871
+ * worktree is ALWAYS retained for debugging regardless of this flag. */
872
+ cleanupWorktreeOnSuccess: z.ZodDefault<z.ZodBoolean>;
546
873
  }, "strip", z.ZodTypeAny, {
874
+ mode: "autopilot" | "careful";
547
875
  maxIterations: number;
876
+ maxCheckpointIterations: number;
548
877
  requireApproval: boolean;
549
878
  contextReset: "always" | "on-threshold" | "never";
550
879
  researchPhase: boolean;
551
880
  architectPhase: boolean;
881
+ checkpointOverrides: Record<string, "noop" | "cli" | "disk" | "pr">;
882
+ approvalTimeoutMs: number;
883
+ prPollMs: number;
884
+ allowAutopilotRiskyActions: boolean;
885
+ eventQueueBound: number;
886
+ worktreeRoot: string;
887
+ cleanupWorktreeOnSuccess: boolean;
888
+ checkpointMechanism?: "noop" | "cli" | "disk" | "pr" | undefined;
552
889
  }, {
890
+ mode?: "autopilot" | "careful" | undefined;
553
891
  maxIterations?: number | undefined;
892
+ maxCheckpointIterations?: number | undefined;
554
893
  requireApproval?: boolean | undefined;
555
894
  contextReset?: "always" | "on-threshold" | "never" | undefined;
556
895
  researchPhase?: boolean | undefined;
557
896
  architectPhase?: boolean | undefined;
897
+ checkpointMechanism?: "noop" | "cli" | "disk" | "pr" | undefined;
898
+ checkpointOverrides?: Record<string, "noop" | "cli" | "disk" | "pr"> | undefined;
899
+ approvalTimeoutMs?: number | undefined;
900
+ prPollMs?: number | undefined;
901
+ allowAutopilotRiskyActions?: boolean | undefined;
902
+ eventQueueBound?: number | undefined;
903
+ worktreeRoot?: string | undefined;
904
+ cleanupWorktreeOnSuccess?: boolean | undefined;
558
905
  }>;
559
906
  commands: z.ZodObject<{
560
907
  install: z.ZodOptional<z.ZodString>;
@@ -578,30 +925,175 @@ export declare const BoberConfigSchema: z.ZodObject<{
578
925
  test?: string | undefined;
579
926
  dev?: string | undefined;
580
927
  }>;
581
- }, "strip", z.ZodTypeAny, {
582
- project: {
583
- name: string;
584
- mode: "greenfield" | "brownfield";
585
- preset?: string | undefined;
586
- stack?: {
587
- frontend?: string | undefined;
588
- backend?: string | undefined;
589
- blockchain?: string | undefined;
590
- testing?: string | undefined;
591
- database?: string | undefined;
592
- language?: string | undefined;
593
- other?: string[] | undefined;
928
+ graph: z.ZodOptional<z.ZodObject<{
929
+ enabled: z.ZodDefault<z.ZodBoolean>;
930
+ tokensavePath: z.ZodOptional<z.ZodString>;
931
+ autoSync: z.ZodDefault<z.ZodBoolean>;
932
+ languageTier: z.ZodDefault<z.ZodEnum<["core", "extended", "all"]>>;
933
+ manifestPath: z.ZodDefault<z.ZodString>;
934
+ syncTimeoutMs: z.ZodDefault<z.ZodNumber>;
935
+ queryTimeoutMs: z.ZodDefault<z.ZodNumber>;
936
+ debounceMs: z.ZodDefault<z.ZodNumber>;
937
+ hookQueueMax: z.ZodDefault<z.ZodNumber>;
938
+ maxEngineRssMb: z.ZodDefault<z.ZodNumber>;
939
+ /** When true (default) and graph.enabled=true, graph_* tools are
940
+ * exposed on the external MCP server (Cursor/Windsurf). When false,
941
+ * graph tools remain available to the internal orchestrator only. */
942
+ exposeOnExternalMcp: z.ZodDefault<z.ZodBoolean>;
943
+ /** Per-role token budgets for pre-flight graph context injection (ADR-9). */
944
+ preflightBudgets: z.ZodDefault<z.ZodObject<{
945
+ architect: z.ZodDefault<z.ZodNumber>;
946
+ curator: z.ZodDefault<z.ZodNumber>;
947
+ generator: z.ZodDefault<z.ZodNumber>;
948
+ evaluator: z.ZodDefault<z.ZodNumber>;
949
+ /** camelCase alias for the 'researcher-phase2' role. */
950
+ researcherPhase2: z.ZodDefault<z.ZodNumber>;
951
+ }, "strip", z.ZodTypeAny, {
952
+ architect: number;
953
+ curator: number;
954
+ generator: number;
955
+ evaluator: number;
956
+ researcherPhase2: number;
957
+ }, {
958
+ architect?: number | undefined;
959
+ curator?: number | undefined;
960
+ generator?: number | undefined;
961
+ evaluator?: number | undefined;
962
+ researcherPhase2?: number | undefined;
963
+ }>>;
964
+ }, "strip", z.ZodTypeAny, {
965
+ enabled: boolean;
966
+ autoSync: boolean;
967
+ languageTier: "core" | "extended" | "all";
968
+ manifestPath: string;
969
+ syncTimeoutMs: number;
970
+ queryTimeoutMs: number;
971
+ debounceMs: number;
972
+ hookQueueMax: number;
973
+ maxEngineRssMb: number;
974
+ exposeOnExternalMcp: boolean;
975
+ preflightBudgets: {
976
+ architect: number;
977
+ curator: number;
978
+ generator: number;
979
+ evaluator: number;
980
+ researcherPhase2: number;
981
+ };
982
+ tokensavePath?: string | undefined;
983
+ }, {
984
+ enabled?: boolean | undefined;
985
+ tokensavePath?: string | undefined;
986
+ autoSync?: boolean | undefined;
987
+ languageTier?: "core" | "extended" | "all" | undefined;
988
+ manifestPath?: string | undefined;
989
+ syncTimeoutMs?: number | undefined;
990
+ queryTimeoutMs?: number | undefined;
991
+ debounceMs?: number | undefined;
992
+ hookQueueMax?: number | undefined;
993
+ maxEngineRssMb?: number | undefined;
994
+ exposeOnExternalMcp?: boolean | undefined;
995
+ preflightBudgets?: {
996
+ architect?: number | undefined;
997
+ curator?: number | undefined;
998
+ generator?: number | undefined;
999
+ evaluator?: number | undefined;
1000
+ researcherPhase2?: number | undefined;
594
1001
  } | undefined;
595
- description?: string | undefined;
596
- };
597
- planner: {
598
- maxClarifications: number;
1002
+ }>>;
1003
+ codeReview: z.ZodOptional<z.ZodObject<{
1004
+ timeoutMs: z.ZodDefault<z.ZodNumber>;
1005
+ enabled: z.ZodDefault<z.ZodBoolean>;
1006
+ model: z.ZodDefault<z.ZodString>;
1007
+ maxTurns: z.ZodDefault<z.ZodNumber>;
1008
+ provider: z.ZodOptional<z.ZodString>;
1009
+ endpoint: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1010
+ providerConfig: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1011
+ }, "strip", z.ZodTypeAny, {
599
1012
  model: string;
600
- contextFiles?: string[] | undefined;
1013
+ maxTurns: number;
1014
+ enabled: boolean;
1015
+ timeoutMs: number;
601
1016
  provider?: string | undefined;
602
1017
  endpoint?: string | null | undefined;
603
1018
  providerConfig?: Record<string, unknown> | undefined;
604
- };
1019
+ }, {
1020
+ model?: string | undefined;
1021
+ provider?: string | undefined;
1022
+ endpoint?: string | null | undefined;
1023
+ providerConfig?: Record<string, unknown> | undefined;
1024
+ maxTurns?: number | undefined;
1025
+ enabled?: boolean | undefined;
1026
+ timeoutMs?: number | undefined;
1027
+ }>>;
1028
+ observability: z.ZodOptional<z.ZodObject<{
1029
+ providers: z.ZodDefault<z.ZodArray<z.ZodObject<{
1030
+ /** Unique name used in the obs__<name>__<tool> namespace prefix. */
1031
+ name: z.ZodString;
1032
+ kind: z.ZodEnum<["logs", "metrics", "traces", "errors", "custom"]>;
1033
+ /** Executable to spawn (e.g., "node", "/usr/local/bin/mcp-grafana"). */
1034
+ mcpCommand: z.ZodString;
1035
+ mcpArgs: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1036
+ /** Env vars passed to the child — may contain SECRETS (treat as opaque). */
1037
+ mcpEnv: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1038
+ enabled: z.ZodDefault<z.ZodBoolean>;
1039
+ }, "strip", z.ZodTypeAny, {
1040
+ name: string;
1041
+ enabled: boolean;
1042
+ kind: "custom" | "logs" | "metrics" | "traces" | "errors";
1043
+ mcpCommand: string;
1044
+ mcpArgs?: string[] | undefined;
1045
+ mcpEnv?: Record<string, string> | undefined;
1046
+ }, {
1047
+ name: string;
1048
+ kind: "custom" | "logs" | "metrics" | "traces" | "errors";
1049
+ mcpCommand: string;
1050
+ enabled?: boolean | undefined;
1051
+ mcpArgs?: string[] | undefined;
1052
+ mcpEnv?: Record<string, string> | undefined;
1053
+ }>, "many">>;
1054
+ }, "strip", z.ZodTypeAny, {
1055
+ providers: {
1056
+ name: string;
1057
+ enabled: boolean;
1058
+ kind: "custom" | "logs" | "metrics" | "traces" | "errors";
1059
+ mcpCommand: string;
1060
+ mcpArgs?: string[] | undefined;
1061
+ mcpEnv?: Record<string, string> | undefined;
1062
+ }[];
1063
+ }, {
1064
+ providers?: {
1065
+ name: string;
1066
+ kind: "custom" | "logs" | "metrics" | "traces" | "errors";
1067
+ mcpCommand: string;
1068
+ enabled?: boolean | undefined;
1069
+ mcpArgs?: string[] | undefined;
1070
+ mcpEnv?: Record<string, string> | undefined;
1071
+ }[] | undefined;
1072
+ }>>;
1073
+ incident: z.ZodOptional<z.ZodObject<{
1074
+ /** When true (default), an incident transition to status='resolved' triggers
1075
+ * asynchronous postmortem generation. The status transition itself returns
1076
+ * immediately — postmortem synthesis runs fire-and-forget and updates
1077
+ * incident.json.postmortemPath when complete. Set false to disable auto-gen
1078
+ * (e.g., for CI environments or read-only audits). Sprint 23. */
1079
+ autoPostmortem: z.ZodDefault<z.ZodBoolean>;
1080
+ }, "strip", z.ZodTypeAny, {
1081
+ autoPostmortem: boolean;
1082
+ }, {
1083
+ autoPostmortem?: boolean | undefined;
1084
+ }>>;
1085
+ telemetry: z.ZodOptional<z.ZodObject<{
1086
+ /** When true, the orchestrator appends JSONL events to .bober/telemetry/<date>.jsonl
1087
+ * for tracking checkpoint approval rates, incident resolution times, agent retry
1088
+ * counts. Default false (no events written). No network egress under any condition
1089
+ * — see ESLint no-restricted-imports rule in eslint.config.js for src/telemetry/. */
1090
+ enabled: z.ZodDefault<z.ZodBoolean>;
1091
+ }, "strip", z.ZodTypeAny, {
1092
+ enabled: boolean;
1093
+ }, {
1094
+ enabled?: boolean | undefined;
1095
+ }>>;
1096
+ }, "strip", z.ZodTypeAny, {
605
1097
  generator: {
606
1098
  model: string;
607
1099
  maxTurnsPerSprint: number;
@@ -627,17 +1119,50 @@ export declare const BoberConfigSchema: z.ZodObject<{
627
1119
  providerConfig?: Record<string, unknown> | undefined;
628
1120
  plugins?: string[] | undefined;
629
1121
  };
1122
+ project: {
1123
+ name: string;
1124
+ mode: "greenfield" | "brownfield";
1125
+ preset?: string | undefined;
1126
+ stack?: {
1127
+ frontend?: string | undefined;
1128
+ backend?: string | undefined;
1129
+ blockchain?: string | undefined;
1130
+ testing?: string | undefined;
1131
+ database?: string | undefined;
1132
+ language?: string | undefined;
1133
+ other?: string[] | undefined;
1134
+ } | undefined;
1135
+ description?: string | undefined;
1136
+ };
1137
+ planner: {
1138
+ maxClarifications: number;
1139
+ model: string;
1140
+ contextFiles?: string[] | undefined;
1141
+ provider?: string | undefined;
1142
+ endpoint?: string | null | undefined;
1143
+ providerConfig?: Record<string, unknown> | undefined;
1144
+ };
630
1145
  sprint: {
631
1146
  maxSprints: number;
632
1147
  requireContracts: boolean;
633
1148
  sprintSize: "small" | "medium" | "large";
634
1149
  };
635
1150
  pipeline: {
1151
+ mode: "autopilot" | "careful";
636
1152
  maxIterations: number;
1153
+ maxCheckpointIterations: number;
637
1154
  requireApproval: boolean;
638
1155
  contextReset: "always" | "on-threshold" | "never";
639
1156
  researchPhase: boolean;
640
1157
  architectPhase: boolean;
1158
+ checkpointOverrides: Record<string, "noop" | "cli" | "disk" | "pr">;
1159
+ approvalTimeoutMs: number;
1160
+ prPollMs: number;
1161
+ allowAutopilotRiskyActions: boolean;
1162
+ eventQueueBound: number;
1163
+ worktreeRoot: string;
1164
+ cleanupWorktreeOnSuccess: boolean;
1165
+ checkpointMechanism?: "noop" | "cli" | "disk" | "pr" | undefined;
641
1166
  };
642
1167
  commands: {
643
1168
  typecheck?: string | undefined;
@@ -655,30 +1180,52 @@ export declare const BoberConfigSchema: z.ZodObject<{
655
1180
  endpoint?: string | null | undefined;
656
1181
  providerConfig?: Record<string, unknown> | undefined;
657
1182
  } | undefined;
658
- }, {
659
- project: {
660
- name: string;
661
- mode: "greenfield" | "brownfield";
662
- preset?: string | undefined;
663
- stack?: {
664
- frontend?: string | undefined;
665
- backend?: string | undefined;
666
- blockchain?: string | undefined;
667
- testing?: string | undefined;
668
- database?: string | undefined;
669
- language?: string | undefined;
670
- other?: string[] | undefined;
671
- } | undefined;
672
- description?: string | undefined;
673
- };
674
- planner: {
675
- maxClarifications?: number | undefined;
676
- model?: string | undefined;
677
- contextFiles?: string[] | undefined;
1183
+ graph?: {
1184
+ enabled: boolean;
1185
+ autoSync: boolean;
1186
+ languageTier: "core" | "extended" | "all";
1187
+ manifestPath: string;
1188
+ syncTimeoutMs: number;
1189
+ queryTimeoutMs: number;
1190
+ debounceMs: number;
1191
+ hookQueueMax: number;
1192
+ maxEngineRssMb: number;
1193
+ exposeOnExternalMcp: boolean;
1194
+ preflightBudgets: {
1195
+ architect: number;
1196
+ curator: number;
1197
+ generator: number;
1198
+ evaluator: number;
1199
+ researcherPhase2: number;
1200
+ };
1201
+ tokensavePath?: string | undefined;
1202
+ } | undefined;
1203
+ codeReview?: {
1204
+ model: string;
1205
+ maxTurns: number;
1206
+ enabled: boolean;
1207
+ timeoutMs: number;
678
1208
  provider?: string | undefined;
679
1209
  endpoint?: string | null | undefined;
680
1210
  providerConfig?: Record<string, unknown> | undefined;
681
- };
1211
+ } | undefined;
1212
+ observability?: {
1213
+ providers: {
1214
+ name: string;
1215
+ enabled: boolean;
1216
+ kind: "custom" | "logs" | "metrics" | "traces" | "errors";
1217
+ mcpCommand: string;
1218
+ mcpArgs?: string[] | undefined;
1219
+ mcpEnv?: Record<string, string> | undefined;
1220
+ }[];
1221
+ } | undefined;
1222
+ incident?: {
1223
+ autoPostmortem: boolean;
1224
+ } | undefined;
1225
+ telemetry?: {
1226
+ enabled: boolean;
1227
+ } | undefined;
1228
+ }, {
682
1229
  generator: {
683
1230
  model?: string | undefined;
684
1231
  provider?: string | undefined;
@@ -704,17 +1251,50 @@ export declare const BoberConfigSchema: z.ZodObject<{
704
1251
  maxIterations?: number | undefined;
705
1252
  plugins?: string[] | undefined;
706
1253
  };
1254
+ project: {
1255
+ name: string;
1256
+ mode: "greenfield" | "brownfield";
1257
+ preset?: string | undefined;
1258
+ stack?: {
1259
+ frontend?: string | undefined;
1260
+ backend?: string | undefined;
1261
+ blockchain?: string | undefined;
1262
+ testing?: string | undefined;
1263
+ database?: string | undefined;
1264
+ language?: string | undefined;
1265
+ other?: string[] | undefined;
1266
+ } | undefined;
1267
+ description?: string | undefined;
1268
+ };
1269
+ planner: {
1270
+ maxClarifications?: number | undefined;
1271
+ model?: string | undefined;
1272
+ contextFiles?: string[] | undefined;
1273
+ provider?: string | undefined;
1274
+ endpoint?: string | null | undefined;
1275
+ providerConfig?: Record<string, unknown> | undefined;
1276
+ };
707
1277
  sprint: {
708
1278
  maxSprints?: number | undefined;
709
1279
  requireContracts?: boolean | undefined;
710
1280
  sprintSize?: "small" | "medium" | "large" | undefined;
711
1281
  };
712
1282
  pipeline: {
1283
+ mode?: "autopilot" | "careful" | undefined;
713
1284
  maxIterations?: number | undefined;
1285
+ maxCheckpointIterations?: number | undefined;
714
1286
  requireApproval?: boolean | undefined;
715
1287
  contextReset?: "always" | "on-threshold" | "never" | undefined;
716
1288
  researchPhase?: boolean | undefined;
717
1289
  architectPhase?: boolean | undefined;
1290
+ checkpointMechanism?: "noop" | "cli" | "disk" | "pr" | undefined;
1291
+ checkpointOverrides?: Record<string, "noop" | "cli" | "disk" | "pr"> | undefined;
1292
+ approvalTimeoutMs?: number | undefined;
1293
+ prPollMs?: number | undefined;
1294
+ allowAutopilotRiskyActions?: boolean | undefined;
1295
+ eventQueueBound?: number | undefined;
1296
+ worktreeRoot?: string | undefined;
1297
+ cleanupWorktreeOnSuccess?: boolean | undefined;
718
1298
  };
719
1299
  commands: {
720
1300
  typecheck?: string | undefined;
@@ -732,6 +1312,51 @@ export declare const BoberConfigSchema: z.ZodObject<{
732
1312
  maxTurns?: number | undefined;
733
1313
  enabled?: boolean | undefined;
734
1314
  } | undefined;
1315
+ graph?: {
1316
+ enabled?: boolean | undefined;
1317
+ tokensavePath?: string | undefined;
1318
+ autoSync?: boolean | undefined;
1319
+ languageTier?: "core" | "extended" | "all" | undefined;
1320
+ manifestPath?: string | undefined;
1321
+ syncTimeoutMs?: number | undefined;
1322
+ queryTimeoutMs?: number | undefined;
1323
+ debounceMs?: number | undefined;
1324
+ hookQueueMax?: number | undefined;
1325
+ maxEngineRssMb?: number | undefined;
1326
+ exposeOnExternalMcp?: boolean | undefined;
1327
+ preflightBudgets?: {
1328
+ architect?: number | undefined;
1329
+ curator?: number | undefined;
1330
+ generator?: number | undefined;
1331
+ evaluator?: number | undefined;
1332
+ researcherPhase2?: number | undefined;
1333
+ } | undefined;
1334
+ } | undefined;
1335
+ codeReview?: {
1336
+ model?: string | undefined;
1337
+ provider?: string | undefined;
1338
+ endpoint?: string | null | undefined;
1339
+ providerConfig?: Record<string, unknown> | undefined;
1340
+ maxTurns?: number | undefined;
1341
+ enabled?: boolean | undefined;
1342
+ timeoutMs?: number | undefined;
1343
+ } | undefined;
1344
+ observability?: {
1345
+ providers?: {
1346
+ name: string;
1347
+ kind: "custom" | "logs" | "metrics" | "traces" | "errors";
1348
+ mcpCommand: string;
1349
+ enabled?: boolean | undefined;
1350
+ mcpArgs?: string[] | undefined;
1351
+ mcpEnv?: Record<string, string> | undefined;
1352
+ }[] | undefined;
1353
+ } | undefined;
1354
+ incident?: {
1355
+ autoPostmortem?: boolean | undefined;
1356
+ } | undefined;
1357
+ telemetry?: {
1358
+ enabled?: boolean | undefined;
1359
+ } | undefined;
735
1360
  }>;
736
1361
  export type BoberConfig = z.infer<typeof BoberConfigSchema>;
737
1362
  /**
@@ -883,22 +1508,52 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
883
1508
  }>>;
884
1509
  pipeline: z.ZodOptional<z.ZodObject<{
885
1510
  maxIterations: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
1511
+ maxCheckpointIterations: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
886
1512
  requireApproval: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
887
1513
  contextReset: z.ZodOptional<z.ZodDefault<z.ZodEnum<["always", "on-threshold", "never"]>>>;
888
1514
  researchPhase: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
889
1515
  architectPhase: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
1516
+ mode: z.ZodOptional<z.ZodDefault<z.ZodEnum<["autopilot", "careful"]>>>;
1517
+ checkpointMechanism: z.ZodOptional<z.ZodOptional<z.ZodEnum<["noop", "cli", "disk", "pr"]>>>;
1518
+ checkpointOverrides: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodEnum<["noop", "cli", "disk", "pr"]>>>>;
1519
+ approvalTimeoutMs: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
1520
+ prPollMs: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
1521
+ allowAutopilotRiskyActions: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
1522
+ eventQueueBound: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
1523
+ worktreeRoot: z.ZodOptional<z.ZodDefault<z.ZodString>>;
1524
+ cleanupWorktreeOnSuccess: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
890
1525
  }, "strip", z.ZodTypeAny, {
1526
+ mode?: "autopilot" | "careful" | undefined;
891
1527
  maxIterations?: number | undefined;
1528
+ maxCheckpointIterations?: number | undefined;
892
1529
  requireApproval?: boolean | undefined;
893
1530
  contextReset?: "always" | "on-threshold" | "never" | undefined;
894
1531
  researchPhase?: boolean | undefined;
895
1532
  architectPhase?: boolean | undefined;
1533
+ checkpointMechanism?: "noop" | "cli" | "disk" | "pr" | undefined;
1534
+ checkpointOverrides?: Record<string, "noop" | "cli" | "disk" | "pr"> | undefined;
1535
+ approvalTimeoutMs?: number | undefined;
1536
+ prPollMs?: number | undefined;
1537
+ allowAutopilotRiskyActions?: boolean | undefined;
1538
+ eventQueueBound?: number | undefined;
1539
+ worktreeRoot?: string | undefined;
1540
+ cleanupWorktreeOnSuccess?: boolean | undefined;
896
1541
  }, {
1542
+ mode?: "autopilot" | "careful" | undefined;
897
1543
  maxIterations?: number | undefined;
1544
+ maxCheckpointIterations?: number | undefined;
898
1545
  requireApproval?: boolean | undefined;
899
1546
  contextReset?: "always" | "on-threshold" | "never" | undefined;
900
1547
  researchPhase?: boolean | undefined;
901
1548
  architectPhase?: boolean | undefined;
1549
+ checkpointMechanism?: "noop" | "cli" | "disk" | "pr" | undefined;
1550
+ checkpointOverrides?: Record<string, "noop" | "cli" | "disk" | "pr"> | undefined;
1551
+ approvalTimeoutMs?: number | undefined;
1552
+ prPollMs?: number | undefined;
1553
+ allowAutopilotRiskyActions?: boolean | undefined;
1554
+ eventQueueBound?: number | undefined;
1555
+ worktreeRoot?: string | undefined;
1556
+ cleanupWorktreeOnSuccess?: boolean | undefined;
902
1557
  }>>;
903
1558
  commands: z.ZodOptional<z.ZodObject<{
904
1559
  install: z.ZodOptional<z.ZodOptional<z.ZodString>>;
@@ -922,6 +1577,161 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
922
1577
  test?: string | undefined;
923
1578
  dev?: string | undefined;
924
1579
  }>>;
1580
+ graph: z.ZodOptional<z.ZodOptional<z.ZodObject<{
1581
+ enabled: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
1582
+ tokensavePath: z.ZodOptional<z.ZodOptional<z.ZodString>>;
1583
+ autoSync: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
1584
+ languageTier: z.ZodOptional<z.ZodDefault<z.ZodEnum<["core", "extended", "all"]>>>;
1585
+ manifestPath: z.ZodOptional<z.ZodDefault<z.ZodString>>;
1586
+ syncTimeoutMs: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
1587
+ queryTimeoutMs: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
1588
+ debounceMs: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
1589
+ hookQueueMax: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
1590
+ maxEngineRssMb: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
1591
+ exposeOnExternalMcp: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
1592
+ preflightBudgets: z.ZodOptional<z.ZodDefault<z.ZodObject<{
1593
+ architect: z.ZodDefault<z.ZodNumber>;
1594
+ curator: z.ZodDefault<z.ZodNumber>;
1595
+ generator: z.ZodDefault<z.ZodNumber>;
1596
+ evaluator: z.ZodDefault<z.ZodNumber>;
1597
+ /** camelCase alias for the 'researcher-phase2' role. */
1598
+ researcherPhase2: z.ZodDefault<z.ZodNumber>;
1599
+ }, "strip", z.ZodTypeAny, {
1600
+ architect: number;
1601
+ curator: number;
1602
+ generator: number;
1603
+ evaluator: number;
1604
+ researcherPhase2: number;
1605
+ }, {
1606
+ architect?: number | undefined;
1607
+ curator?: number | undefined;
1608
+ generator?: number | undefined;
1609
+ evaluator?: number | undefined;
1610
+ researcherPhase2?: number | undefined;
1611
+ }>>>;
1612
+ }, "strip", z.ZodTypeAny, {
1613
+ enabled?: boolean | undefined;
1614
+ tokensavePath?: string | undefined;
1615
+ autoSync?: boolean | undefined;
1616
+ languageTier?: "core" | "extended" | "all" | undefined;
1617
+ manifestPath?: string | undefined;
1618
+ syncTimeoutMs?: number | undefined;
1619
+ queryTimeoutMs?: number | undefined;
1620
+ debounceMs?: number | undefined;
1621
+ hookQueueMax?: number | undefined;
1622
+ maxEngineRssMb?: number | undefined;
1623
+ exposeOnExternalMcp?: boolean | undefined;
1624
+ preflightBudgets?: {
1625
+ architect: number;
1626
+ curator: number;
1627
+ generator: number;
1628
+ evaluator: number;
1629
+ researcherPhase2: number;
1630
+ } | undefined;
1631
+ }, {
1632
+ enabled?: boolean | undefined;
1633
+ tokensavePath?: string | undefined;
1634
+ autoSync?: boolean | undefined;
1635
+ languageTier?: "core" | "extended" | "all" | undefined;
1636
+ manifestPath?: string | undefined;
1637
+ syncTimeoutMs?: number | undefined;
1638
+ queryTimeoutMs?: number | undefined;
1639
+ debounceMs?: number | undefined;
1640
+ hookQueueMax?: number | undefined;
1641
+ maxEngineRssMb?: number | undefined;
1642
+ exposeOnExternalMcp?: boolean | undefined;
1643
+ preflightBudgets?: {
1644
+ architect?: number | undefined;
1645
+ curator?: number | undefined;
1646
+ generator?: number | undefined;
1647
+ evaluator?: number | undefined;
1648
+ researcherPhase2?: number | undefined;
1649
+ } | undefined;
1650
+ }>>>;
1651
+ codeReview: z.ZodOptional<z.ZodOptional<z.ZodObject<{
1652
+ timeoutMs: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
1653
+ enabled: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
1654
+ model: z.ZodOptional<z.ZodDefault<z.ZodString>>;
1655
+ maxTurns: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
1656
+ provider: z.ZodOptional<z.ZodOptional<z.ZodString>>;
1657
+ endpoint: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
1658
+ providerConfig: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
1659
+ }, "strip", z.ZodTypeAny, {
1660
+ model?: string | undefined;
1661
+ provider?: string | undefined;
1662
+ endpoint?: string | null | undefined;
1663
+ providerConfig?: Record<string, unknown> | undefined;
1664
+ maxTurns?: number | undefined;
1665
+ enabled?: boolean | undefined;
1666
+ timeoutMs?: number | undefined;
1667
+ }, {
1668
+ model?: string | undefined;
1669
+ provider?: string | undefined;
1670
+ endpoint?: string | null | undefined;
1671
+ providerConfig?: Record<string, unknown> | undefined;
1672
+ maxTurns?: number | undefined;
1673
+ enabled?: boolean | undefined;
1674
+ timeoutMs?: number | undefined;
1675
+ }>>>;
1676
+ observability: z.ZodOptional<z.ZodOptional<z.ZodObject<{
1677
+ providers: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodObject<{
1678
+ /** Unique name used in the obs__<name>__<tool> namespace prefix. */
1679
+ name: z.ZodString;
1680
+ kind: z.ZodEnum<["logs", "metrics", "traces", "errors", "custom"]>;
1681
+ /** Executable to spawn (e.g., "node", "/usr/local/bin/mcp-grafana"). */
1682
+ mcpCommand: z.ZodString;
1683
+ mcpArgs: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1684
+ /** Env vars passed to the child — may contain SECRETS (treat as opaque). */
1685
+ mcpEnv: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1686
+ enabled: z.ZodDefault<z.ZodBoolean>;
1687
+ }, "strip", z.ZodTypeAny, {
1688
+ name: string;
1689
+ enabled: boolean;
1690
+ kind: "custom" | "logs" | "metrics" | "traces" | "errors";
1691
+ mcpCommand: string;
1692
+ mcpArgs?: string[] | undefined;
1693
+ mcpEnv?: Record<string, string> | undefined;
1694
+ }, {
1695
+ name: string;
1696
+ kind: "custom" | "logs" | "metrics" | "traces" | "errors";
1697
+ mcpCommand: string;
1698
+ enabled?: boolean | undefined;
1699
+ mcpArgs?: string[] | undefined;
1700
+ mcpEnv?: Record<string, string> | undefined;
1701
+ }>, "many">>>;
1702
+ }, "strip", z.ZodTypeAny, {
1703
+ providers?: {
1704
+ name: string;
1705
+ enabled: boolean;
1706
+ kind: "custom" | "logs" | "metrics" | "traces" | "errors";
1707
+ mcpCommand: string;
1708
+ mcpArgs?: string[] | undefined;
1709
+ mcpEnv?: Record<string, string> | undefined;
1710
+ }[] | undefined;
1711
+ }, {
1712
+ providers?: {
1713
+ name: string;
1714
+ kind: "custom" | "logs" | "metrics" | "traces" | "errors";
1715
+ mcpCommand: string;
1716
+ enabled?: boolean | undefined;
1717
+ mcpArgs?: string[] | undefined;
1718
+ mcpEnv?: Record<string, string> | undefined;
1719
+ }[] | undefined;
1720
+ }>>>;
1721
+ incident: z.ZodOptional<z.ZodOptional<z.ZodObject<{
1722
+ autoPostmortem: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
1723
+ }, "strip", z.ZodTypeAny, {
1724
+ autoPostmortem?: boolean | undefined;
1725
+ }, {
1726
+ autoPostmortem?: boolean | undefined;
1727
+ }>>>;
1728
+ telemetry: z.ZodOptional<z.ZodOptional<z.ZodObject<{
1729
+ enabled: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
1730
+ }, "strip", z.ZodTypeAny, {
1731
+ enabled?: boolean | undefined;
1732
+ }, {
1733
+ enabled?: boolean | undefined;
1734
+ }>>>;
925
1735
  } & {
926
1736
  project: z.ZodObject<{
927
1737
  name: z.ZodOptional<z.ZodString>;
@@ -998,14 +1808,6 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
998
1808
  } | undefined;
999
1809
  description?: string | undefined;
1000
1810
  };
1001
- planner?: {
1002
- maxClarifications?: number | undefined;
1003
- model?: string | undefined;
1004
- contextFiles?: string[] | undefined;
1005
- provider?: string | undefined;
1006
- endpoint?: string | null | undefined;
1007
- providerConfig?: Record<string, unknown> | undefined;
1008
- } | undefined;
1009
1811
  curator?: {
1010
1812
  model?: string | undefined;
1011
1813
  provider?: string | undefined;
@@ -1039,17 +1841,35 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
1039
1841
  maxIterations?: number | undefined;
1040
1842
  plugins?: string[] | undefined;
1041
1843
  } | undefined;
1844
+ planner?: {
1845
+ maxClarifications?: number | undefined;
1846
+ model?: string | undefined;
1847
+ contextFiles?: string[] | undefined;
1848
+ provider?: string | undefined;
1849
+ endpoint?: string | null | undefined;
1850
+ providerConfig?: Record<string, unknown> | undefined;
1851
+ } | undefined;
1042
1852
  sprint?: {
1043
1853
  maxSprints?: number | undefined;
1044
1854
  requireContracts?: boolean | undefined;
1045
1855
  sprintSize?: "small" | "medium" | "large" | undefined;
1046
1856
  } | undefined;
1047
1857
  pipeline?: {
1858
+ mode?: "autopilot" | "careful" | undefined;
1048
1859
  maxIterations?: number | undefined;
1860
+ maxCheckpointIterations?: number | undefined;
1049
1861
  requireApproval?: boolean | undefined;
1050
1862
  contextReset?: "always" | "on-threshold" | "never" | undefined;
1051
1863
  researchPhase?: boolean | undefined;
1052
1864
  architectPhase?: boolean | undefined;
1865
+ checkpointMechanism?: "noop" | "cli" | "disk" | "pr" | undefined;
1866
+ checkpointOverrides?: Record<string, "noop" | "cli" | "disk" | "pr"> | undefined;
1867
+ approvalTimeoutMs?: number | undefined;
1868
+ prPollMs?: number | undefined;
1869
+ allowAutopilotRiskyActions?: boolean | undefined;
1870
+ eventQueueBound?: number | undefined;
1871
+ worktreeRoot?: string | undefined;
1872
+ cleanupWorktreeOnSuccess?: boolean | undefined;
1053
1873
  } | undefined;
1054
1874
  commands?: {
1055
1875
  typecheck?: string | undefined;
@@ -1059,6 +1879,51 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
1059
1879
  test?: string | undefined;
1060
1880
  dev?: string | undefined;
1061
1881
  } | undefined;
1882
+ graph?: {
1883
+ enabled?: boolean | undefined;
1884
+ tokensavePath?: string | undefined;
1885
+ autoSync?: boolean | undefined;
1886
+ languageTier?: "core" | "extended" | "all" | undefined;
1887
+ manifestPath?: string | undefined;
1888
+ syncTimeoutMs?: number | undefined;
1889
+ queryTimeoutMs?: number | undefined;
1890
+ debounceMs?: number | undefined;
1891
+ hookQueueMax?: number | undefined;
1892
+ maxEngineRssMb?: number | undefined;
1893
+ exposeOnExternalMcp?: boolean | undefined;
1894
+ preflightBudgets?: {
1895
+ architect: number;
1896
+ curator: number;
1897
+ generator: number;
1898
+ evaluator: number;
1899
+ researcherPhase2: number;
1900
+ } | undefined;
1901
+ } | undefined;
1902
+ codeReview?: {
1903
+ model?: string | undefined;
1904
+ provider?: string | undefined;
1905
+ endpoint?: string | null | undefined;
1906
+ providerConfig?: Record<string, unknown> | undefined;
1907
+ maxTurns?: number | undefined;
1908
+ enabled?: boolean | undefined;
1909
+ timeoutMs?: number | undefined;
1910
+ } | undefined;
1911
+ observability?: {
1912
+ providers?: {
1913
+ name: string;
1914
+ enabled: boolean;
1915
+ kind: "custom" | "logs" | "metrics" | "traces" | "errors";
1916
+ mcpCommand: string;
1917
+ mcpArgs?: string[] | undefined;
1918
+ mcpEnv?: Record<string, string> | undefined;
1919
+ }[] | undefined;
1920
+ } | undefined;
1921
+ incident?: {
1922
+ autoPostmortem?: boolean | undefined;
1923
+ } | undefined;
1924
+ telemetry?: {
1925
+ enabled?: boolean | undefined;
1926
+ } | undefined;
1062
1927
  }, {
1063
1928
  project: {
1064
1929
  mode: "greenfield" | "brownfield";
@@ -1075,14 +1940,6 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
1075
1940
  } | undefined;
1076
1941
  description?: string | undefined;
1077
1942
  };
1078
- planner?: {
1079
- maxClarifications?: number | undefined;
1080
- model?: string | undefined;
1081
- contextFiles?: string[] | undefined;
1082
- provider?: string | undefined;
1083
- endpoint?: string | null | undefined;
1084
- providerConfig?: Record<string, unknown> | undefined;
1085
- } | undefined;
1086
1943
  curator?: {
1087
1944
  model?: string | undefined;
1088
1945
  provider?: string | undefined;
@@ -1116,17 +1973,35 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
1116
1973
  maxIterations?: number | undefined;
1117
1974
  plugins?: string[] | undefined;
1118
1975
  } | undefined;
1976
+ planner?: {
1977
+ maxClarifications?: number | undefined;
1978
+ model?: string | undefined;
1979
+ contextFiles?: string[] | undefined;
1980
+ provider?: string | undefined;
1981
+ endpoint?: string | null | undefined;
1982
+ providerConfig?: Record<string, unknown> | undefined;
1983
+ } | undefined;
1119
1984
  sprint?: {
1120
1985
  maxSprints?: number | undefined;
1121
1986
  requireContracts?: boolean | undefined;
1122
1987
  sprintSize?: "small" | "medium" | "large" | undefined;
1123
1988
  } | undefined;
1124
1989
  pipeline?: {
1990
+ mode?: "autopilot" | "careful" | undefined;
1125
1991
  maxIterations?: number | undefined;
1992
+ maxCheckpointIterations?: number | undefined;
1126
1993
  requireApproval?: boolean | undefined;
1127
1994
  contextReset?: "always" | "on-threshold" | "never" | undefined;
1128
1995
  researchPhase?: boolean | undefined;
1129
1996
  architectPhase?: boolean | undefined;
1997
+ checkpointMechanism?: "noop" | "cli" | "disk" | "pr" | undefined;
1998
+ checkpointOverrides?: Record<string, "noop" | "cli" | "disk" | "pr"> | undefined;
1999
+ approvalTimeoutMs?: number | undefined;
2000
+ prPollMs?: number | undefined;
2001
+ allowAutopilotRiskyActions?: boolean | undefined;
2002
+ eventQueueBound?: number | undefined;
2003
+ worktreeRoot?: string | undefined;
2004
+ cleanupWorktreeOnSuccess?: boolean | undefined;
1130
2005
  } | undefined;
1131
2006
  commands?: {
1132
2007
  typecheck?: string | undefined;
@@ -1136,6 +2011,51 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
1136
2011
  test?: string | undefined;
1137
2012
  dev?: string | undefined;
1138
2013
  } | undefined;
2014
+ graph?: {
2015
+ enabled?: boolean | undefined;
2016
+ tokensavePath?: string | undefined;
2017
+ autoSync?: boolean | undefined;
2018
+ languageTier?: "core" | "extended" | "all" | undefined;
2019
+ manifestPath?: string | undefined;
2020
+ syncTimeoutMs?: number | undefined;
2021
+ queryTimeoutMs?: number | undefined;
2022
+ debounceMs?: number | undefined;
2023
+ hookQueueMax?: number | undefined;
2024
+ maxEngineRssMb?: number | undefined;
2025
+ exposeOnExternalMcp?: boolean | undefined;
2026
+ preflightBudgets?: {
2027
+ architect?: number | undefined;
2028
+ curator?: number | undefined;
2029
+ generator?: number | undefined;
2030
+ evaluator?: number | undefined;
2031
+ researcherPhase2?: number | undefined;
2032
+ } | undefined;
2033
+ } | undefined;
2034
+ codeReview?: {
2035
+ model?: string | undefined;
2036
+ provider?: string | undefined;
2037
+ endpoint?: string | null | undefined;
2038
+ providerConfig?: Record<string, unknown> | undefined;
2039
+ maxTurns?: number | undefined;
2040
+ enabled?: boolean | undefined;
2041
+ timeoutMs?: number | undefined;
2042
+ } | undefined;
2043
+ observability?: {
2044
+ providers?: {
2045
+ name: string;
2046
+ kind: "custom" | "logs" | "metrics" | "traces" | "errors";
2047
+ mcpCommand: string;
2048
+ enabled?: boolean | undefined;
2049
+ mcpArgs?: string[] | undefined;
2050
+ mcpEnv?: Record<string, string> | undefined;
2051
+ }[] | undefined;
2052
+ } | undefined;
2053
+ incident?: {
2054
+ autoPostmortem?: boolean | undefined;
2055
+ } | undefined;
2056
+ telemetry?: {
2057
+ enabled?: boolean | undefined;
2058
+ } | undefined;
1139
2059
  }>;
1140
2060
  export type PartialBoberConfig = z.infer<typeof PartialBoberConfigSchema>;
1141
2061
  /**