agent-bober 0.12.0 → 0.17.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 (726) hide show
  1. package/.claude-plugin/marketplace.json +20 -0
  2. package/.claude-plugin/plugin.json +2 -2
  3. package/CHANGELOG.md +243 -0
  4. package/README.md +238 -5
  5. package/agents/bober-architect.md +72 -0
  6. package/agents/bober-code-reviewer.md +238 -0
  7. package/agents/bober-curator.md +49 -0
  8. package/agents/bober-deployer.md +267 -0
  9. package/agents/bober-diagnoser.md +289 -0
  10. package/agents/bober-documenter.md +129 -0
  11. package/agents/bober-evaluator.md +135 -1
  12. package/agents/bober-generator.md +80 -3
  13. package/agents/bober-planner.md +47 -1
  14. package/agents/bober-postmortemer.md +185 -0
  15. package/agents/bober-researcher.md +38 -0
  16. package/dist/cli/commands/approve.d.ts +17 -0
  17. package/dist/cli/commands/approve.d.ts.map +1 -0
  18. package/dist/cli/commands/approve.js +64 -0
  19. package/dist/cli/commands/approve.js.map +1 -0
  20. package/dist/cli/commands/audit-show.d.ts +14 -0
  21. package/dist/cli/commands/audit-show.d.ts.map +1 -0
  22. package/dist/cli/commands/audit-show.js +85 -0
  23. package/dist/cli/commands/audit-show.js.map +1 -0
  24. package/dist/cli/commands/config.d.ts +10 -0
  25. package/dist/cli/commands/config.d.ts.map +1 -0
  26. package/dist/cli/commands/config.js +73 -0
  27. package/dist/cli/commands/config.js.map +1 -0
  28. package/dist/cli/commands/graph.d.ts +8 -0
  29. package/dist/cli/commands/graph.d.ts.map +1 -0
  30. package/dist/cli/commands/graph.js +219 -0
  31. package/dist/cli/commands/graph.js.map +1 -0
  32. package/dist/cli/commands/impact.d.ts +19 -0
  33. package/dist/cli/commands/impact.d.ts.map +1 -0
  34. package/dist/cli/commands/impact.js +191 -0
  35. package/dist/cli/commands/impact.js.map +1 -0
  36. package/dist/cli/commands/incident.d.ts +19 -0
  37. package/dist/cli/commands/incident.d.ts.map +1 -0
  38. package/dist/cli/commands/incident.js +324 -0
  39. package/dist/cli/commands/incident.js.map +1 -0
  40. package/dist/cli/commands/init.js +40 -1
  41. package/dist/cli/commands/init.js.map +1 -1
  42. package/dist/cli/commands/list-approvals.d.ts +16 -0
  43. package/dist/cli/commands/list-approvals.d.ts.map +1 -0
  44. package/dist/cli/commands/list-approvals.js +57 -0
  45. package/dist/cli/commands/list-approvals.js.map +1 -0
  46. package/dist/cli/commands/memory.d.ts +14 -0
  47. package/dist/cli/commands/memory.d.ts.map +1 -0
  48. package/dist/cli/commands/memory.js +132 -0
  49. package/dist/cli/commands/memory.js.map +1 -0
  50. package/dist/cli/commands/onboard.d.ts +3 -0
  51. package/dist/cli/commands/onboard.d.ts.map +1 -0
  52. package/dist/cli/commands/onboard.js +190 -0
  53. package/dist/cli/commands/onboard.js.map +1 -0
  54. package/dist/cli/commands/playbook.d.ts +17 -0
  55. package/dist/cli/commands/playbook.d.ts.map +1 -0
  56. package/dist/cli/commands/playbook.js +123 -0
  57. package/dist/cli/commands/playbook.js.map +1 -0
  58. package/dist/cli/commands/postmortem.d.ts +12 -0
  59. package/dist/cli/commands/postmortem.d.ts.map +1 -0
  60. package/dist/cli/commands/postmortem.js +67 -0
  61. package/dist/cli/commands/postmortem.js.map +1 -0
  62. package/dist/cli/commands/reject.d.ts +17 -0
  63. package/dist/cli/commands/reject.d.ts.map +1 -0
  64. package/dist/cli/commands/reject.js +52 -0
  65. package/dist/cli/commands/reject.js.map +1 -0
  66. package/dist/cli/commands/rollback.d.ts +21 -0
  67. package/dist/cli/commands/rollback.d.ts.map +1 -0
  68. package/dist/cli/commands/rollback.js +90 -0
  69. package/dist/cli/commands/rollback.js.map +1 -0
  70. package/dist/cli/commands/run.d.ts +9 -0
  71. package/dist/cli/commands/run.d.ts.map +1 -1
  72. package/dist/cli/commands/run.js +29 -0
  73. package/dist/cli/commands/run.js.map +1 -1
  74. package/dist/cli/commands/telemetry.d.ts +16 -0
  75. package/dist/cli/commands/telemetry.d.ts.map +1 -0
  76. package/dist/cli/commands/telemetry.js +152 -0
  77. package/dist/cli/commands/telemetry.js.map +1 -0
  78. package/dist/cli/commands/worktree.d.ts +12 -0
  79. package/dist/cli/commands/worktree.d.ts.map +1 -0
  80. package/dist/cli/commands/worktree.js +57 -0
  81. package/dist/cli/commands/worktree.js.map +1 -0
  82. package/dist/cli/index.js +56 -0
  83. package/dist/cli/index.js.map +1 -1
  84. package/dist/config/defaults.d.ts.map +1 -1
  85. package/dist/config/defaults.js +41 -3
  86. package/dist/config/defaults.js.map +1 -1
  87. package/dist/config/index.d.ts +1 -1
  88. package/dist/config/index.d.ts.map +1 -1
  89. package/dist/config/index.js +4 -0
  90. package/dist/config/index.js.map +1 -1
  91. package/dist/config/loader.d.ts.map +1 -1
  92. package/dist/config/loader.js +25 -1
  93. package/dist/config/loader.js.map +1 -1
  94. package/dist/config/role-providers.d.ts +29 -0
  95. package/dist/config/role-providers.d.ts.map +1 -0
  96. package/dist/config/role-providers.js +115 -0
  97. package/dist/config/role-providers.js.map +1 -0
  98. package/dist/config/schema.d.ts +1350 -61
  99. package/dist/config/schema.d.ts.map +1 -1
  100. package/dist/config/schema.js +189 -0
  101. package/dist/config/schema.js.map +1 -1
  102. package/dist/contracts/eval-result.d.ts +112 -56
  103. package/dist/contracts/eval-result.d.ts.map +1 -1
  104. package/dist/contracts/eval-result.js +3 -0
  105. package/dist/contracts/eval-result.js.map +1 -1
  106. package/dist/contracts/sprint-contract.d.ts +30 -30
  107. package/dist/fleet/aggregator.d.ts +5 -0
  108. package/dist/fleet/aggregator.d.ts.map +1 -0
  109. package/dist/fleet/aggregator.js +39 -0
  110. package/dist/fleet/aggregator.js.map +1 -0
  111. package/dist/fleet/child-config.d.ts +12 -0
  112. package/dist/fleet/child-config.d.ts.map +1 -0
  113. package/dist/fleet/child-config.js +38 -0
  114. package/dist/fleet/child-config.js.map +1 -0
  115. package/dist/fleet/coordinator.d.ts +25 -0
  116. package/dist/fleet/coordinator.d.ts.map +1 -0
  117. package/dist/fleet/coordinator.js +40 -0
  118. package/dist/fleet/coordinator.js.map +1 -0
  119. package/dist/fleet/index.d.ts +40 -0
  120. package/dist/fleet/index.d.ts.map +1 -0
  121. package/dist/fleet/index.js +117 -0
  122. package/dist/fleet/index.js.map +1 -0
  123. package/dist/fleet/manifest.d.ts +51 -0
  124. package/dist/fleet/manifest.d.ts.map +1 -0
  125. package/dist/fleet/manifest.js +32 -0
  126. package/dist/fleet/manifest.js.map +1 -0
  127. package/dist/fleet/reporter.d.ts +32 -0
  128. package/dist/fleet/reporter.d.ts.map +1 -0
  129. package/dist/fleet/reporter.js +71 -0
  130. package/dist/fleet/reporter.js.map +1 -0
  131. package/dist/fleet/runner.d.ts +48 -0
  132. package/dist/fleet/runner.d.ts.map +1 -0
  133. package/dist/fleet/runner.js +104 -0
  134. package/dist/fleet/runner.js.map +1 -0
  135. package/dist/fleet/scaffolder.d.ts +12 -0
  136. package/dist/fleet/scaffolder.d.ts.map +1 -0
  137. package/dist/fleet/scaffolder.js +82 -0
  138. package/dist/fleet/scaffolder.js.map +1 -0
  139. package/dist/fleet/types.d.ts +21 -0
  140. package/dist/fleet/types.d.ts.map +1 -0
  141. package/dist/fleet/types.js +2 -0
  142. package/dist/fleet/types.js.map +1 -0
  143. package/dist/graph/artifact-store.d.ts +14 -0
  144. package/dist/graph/artifact-store.d.ts.map +1 -0
  145. package/dist/graph/artifact-store.js +100 -0
  146. package/dist/graph/artifact-store.js.map +1 -0
  147. package/dist/graph/cli.d.ts +53 -0
  148. package/dist/graph/cli.d.ts.map +1 -0
  149. package/dist/graph/cli.js +181 -0
  150. package/dist/graph/cli.js.map +1 -0
  151. package/dist/graph/client.d.ts +64 -0
  152. package/dist/graph/client.d.ts.map +1 -0
  153. package/dist/graph/client.js +216 -0
  154. package/dist/graph/client.js.map +1 -0
  155. package/dist/graph/fallback.d.ts +13 -0
  156. package/dist/graph/fallback.d.ts.map +1 -0
  157. package/dist/graph/fallback.js +57 -0
  158. package/dist/graph/fallback.js.map +1 -0
  159. package/dist/graph/hook-handler.d.ts +50 -0
  160. package/dist/graph/hook-handler.d.ts.map +1 -0
  161. package/dist/graph/hook-handler.js +217 -0
  162. package/dist/graph/hook-handler.js.map +1 -0
  163. package/dist/graph/incidents.d.ts +59 -0
  164. package/dist/graph/incidents.d.ts.map +1 -0
  165. package/dist/graph/incidents.js +22 -0
  166. package/dist/graph/incidents.js.map +1 -0
  167. package/dist/graph/mcp-client.d.ts +51 -0
  168. package/dist/graph/mcp-client.d.ts.map +1 -0
  169. package/dist/graph/mcp-client.js +285 -0
  170. package/dist/graph/mcp-client.js.map +1 -0
  171. package/dist/graph/onboarding-composer.d.ts +30 -0
  172. package/dist/graph/onboarding-composer.d.ts.map +1 -0
  173. package/dist/graph/onboarding-composer.js +275 -0
  174. package/dist/graph/onboarding-composer.js.map +1 -0
  175. package/dist/graph/pipeline-lifecycle.d.ts +95 -0
  176. package/dist/graph/pipeline-lifecycle.d.ts.map +1 -0
  177. package/dist/graph/pipeline-lifecycle.js +341 -0
  178. package/dist/graph/pipeline-lifecycle.js.map +1 -0
  179. package/dist/graph/preflight-budgets.d.ts +52 -0
  180. package/dist/graph/preflight-budgets.d.ts.map +1 -0
  181. package/dist/graph/preflight-budgets.js +78 -0
  182. package/dist/graph/preflight-budgets.js.map +1 -0
  183. package/dist/graph/preflight-injector.d.ts +130 -0
  184. package/dist/graph/preflight-injector.d.ts.map +1 -0
  185. package/dist/graph/preflight-injector.js +618 -0
  186. package/dist/graph/preflight-injector.js.map +1 -0
  187. package/dist/graph/prereq.d.ts +12 -0
  188. package/dist/graph/prereq.d.ts.map +1 -0
  189. package/dist/graph/prereq.js +61 -0
  190. package/dist/graph/prereq.js.map +1 -0
  191. package/dist/graph/prompts.d.ts +42 -0
  192. package/dist/graph/prompts.d.ts.map +1 -0
  193. package/dist/graph/prompts.js +80 -0
  194. package/dist/graph/prompts.js.map +1 -0
  195. package/dist/graph/sandbox.d.ts +19 -0
  196. package/dist/graph/sandbox.d.ts.map +1 -0
  197. package/dist/graph/sandbox.js +25 -0
  198. package/dist/graph/sandbox.js.map +1 -0
  199. package/dist/graph/token-usage.d.ts +21 -0
  200. package/dist/graph/token-usage.d.ts.map +1 -0
  201. package/dist/graph/token-usage.js +22 -0
  202. package/dist/graph/token-usage.js.map +1 -0
  203. package/dist/graph/types.d.ts +129 -0
  204. package/dist/graph/types.d.ts.map +1 -0
  205. package/dist/graph/types.js +12 -0
  206. package/dist/graph/types.js.map +1 -0
  207. package/dist/incident/orchestrator.d.ts +168 -0
  208. package/dist/incident/orchestrator.d.ts.map +1 -0
  209. package/dist/incident/orchestrator.js +279 -0
  210. package/dist/incident/orchestrator.js.map +1 -0
  211. package/dist/incident/playbook-search.d.ts +67 -0
  212. package/dist/incident/playbook-search.d.ts.map +1 -0
  213. package/dist/incident/playbook-search.js +288 -0
  214. package/dist/incident/playbook-search.js.map +1 -0
  215. package/dist/incident/postmortem.d.ts +44 -0
  216. package/dist/incident/postmortem.d.ts.map +1 -0
  217. package/dist/incident/postmortem.js +486 -0
  218. package/dist/incident/postmortem.js.map +1 -0
  219. package/dist/incident/resolution-verify.d.ts +186 -0
  220. package/dist/incident/resolution-verify.d.ts.map +1 -0
  221. package/dist/incident/resolution-verify.js +210 -0
  222. package/dist/incident/resolution-verify.js.map +1 -0
  223. package/dist/incident/rollback.d.ts +137 -0
  224. package/dist/incident/rollback.d.ts.map +1 -0
  225. package/dist/incident/rollback.js +328 -0
  226. package/dist/incident/rollback.js.map +1 -0
  227. package/dist/incident/timeline.d.ts +147 -0
  228. package/dist/incident/timeline.d.ts.map +1 -0
  229. package/dist/incident/timeline.js +452 -0
  230. package/dist/incident/timeline.js.map +1 -0
  231. package/dist/incident/types.d.ts +335 -0
  232. package/dist/incident/types.d.ts.map +1 -0
  233. package/dist/incident/types.js +158 -0
  234. package/dist/incident/types.js.map +1 -0
  235. package/dist/index.d.ts +1 -1
  236. package/dist/index.d.ts.map +1 -1
  237. package/dist/index.js +1 -1
  238. package/dist/index.js.map +1 -1
  239. package/dist/mcp/event-stream.d.ts +46 -0
  240. package/dist/mcp/event-stream.d.ts.map +1 -0
  241. package/dist/mcp/event-stream.js +421 -0
  242. package/dist/mcp/event-stream.js.map +1 -0
  243. package/dist/mcp/external-client.d.ts +38 -0
  244. package/dist/mcp/external-client.d.ts.map +1 -0
  245. package/dist/mcp/external-client.js +121 -0
  246. package/dist/mcp/external-client.js.map +1 -0
  247. package/dist/mcp/run-manager.d.ts +74 -9
  248. package/dist/mcp/run-manager.d.ts.map +1 -1
  249. package/dist/mcp/run-manager.js +127 -31
  250. package/dist/mcp/run-manager.js.map +1 -1
  251. package/dist/mcp/server.d.ts.map +1 -1
  252. package/dist/mcp/server.js +56 -0
  253. package/dist/mcp/server.js.map +1 -1
  254. package/dist/mcp/tools/abort-run.d.ts +2 -0
  255. package/dist/mcp/tools/abort-run.d.ts.map +1 -0
  256. package/dist/mcp/tools/abort-run.js +62 -0
  257. package/dist/mcp/tools/abort-run.js.map +1 -0
  258. package/dist/mcp/tools/anchor.js +1 -1
  259. package/dist/mcp/tools/anchor.js.map +1 -1
  260. package/dist/mcp/tools/approve-checkpoint.d.ts +2 -0
  261. package/dist/mcp/tools/approve-checkpoint.d.ts.map +1 -0
  262. package/dist/mcp/tools/approve-checkpoint.js +70 -0
  263. package/dist/mcp/tools/approve-checkpoint.js.map +1 -0
  264. package/dist/mcp/tools/brownfield.js +1 -1
  265. package/dist/mcp/tools/brownfield.js.map +1 -1
  266. package/dist/mcp/tools/get-project-state.d.ts +2 -0
  267. package/dist/mcp/tools/get-project-state.d.ts.map +1 -0
  268. package/dist/mcp/tools/get-project-state.js +107 -0
  269. package/dist/mcp/tools/get-project-state.js.map +1 -0
  270. package/dist/mcp/tools/get-run-status.d.ts +2 -0
  271. package/dist/mcp/tools/get-run-status.d.ts.map +1 -0
  272. package/dist/mcp/tools/get-run-status.js +40 -0
  273. package/dist/mcp/tools/get-run-status.js.map +1 -0
  274. package/dist/mcp/tools/graph-schemas.d.ts +100 -0
  275. package/dist/mcp/tools/graph-schemas.d.ts.map +1 -0
  276. package/dist/mcp/tools/graph-schemas.js +39 -0
  277. package/dist/mcp/tools/graph-schemas.js.map +1 -0
  278. package/dist/mcp/tools/graph.d.ts +19 -0
  279. package/dist/mcp/tools/graph.d.ts.map +1 -0
  280. package/dist/mcp/tools/graph.js +263 -0
  281. package/dist/mcp/tools/graph.js.map +1 -0
  282. package/dist/mcp/tools/incident.d.ts +2 -0
  283. package/dist/mcp/tools/incident.d.ts.map +1 -0
  284. package/dist/mcp/tools/incident.js +246 -0
  285. package/dist/mcp/tools/incident.js.map +1 -0
  286. package/dist/mcp/tools/index.d.ts +38 -18
  287. package/dist/mcp/tools/index.d.ts.map +1 -1
  288. package/dist/mcp/tools/index.js +74 -18
  289. package/dist/mcp/tools/index.js.map +1 -1
  290. package/dist/mcp/tools/init.d.ts.map +1 -1
  291. package/dist/mcp/tools/init.js +2 -0
  292. package/dist/mcp/tools/init.js.map +1 -1
  293. package/dist/mcp/tools/list-active-runs.d.ts +2 -0
  294. package/dist/mcp/tools/list-active-runs.d.ts.map +1 -0
  295. package/dist/mcp/tools/list-active-runs.js +35 -0
  296. package/dist/mcp/tools/list-active-runs.js.map +1 -0
  297. package/dist/mcp/tools/list-pending-approvals.d.ts +2 -0
  298. package/dist/mcp/tools/list-pending-approvals.d.ts.map +1 -0
  299. package/dist/mcp/tools/list-pending-approvals.js +40 -0
  300. package/dist/mcp/tools/list-pending-approvals.js.map +1 -0
  301. package/dist/mcp/tools/list-projects.d.ts +2 -0
  302. package/dist/mcp/tools/list-projects.d.ts.map +1 -0
  303. package/dist/mcp/tools/list-projects.js +101 -0
  304. package/dist/mcp/tools/list-projects.js.map +1 -0
  305. package/dist/mcp/tools/list-specs.d.ts +2 -0
  306. package/dist/mcp/tools/list-specs.d.ts.map +1 -0
  307. package/dist/mcp/tools/list-specs.js +48 -0
  308. package/dist/mcp/tools/list-specs.js.map +1 -0
  309. package/dist/mcp/tools/playbook.d.ts +2 -0
  310. package/dist/mcp/tools/playbook.d.ts.map +1 -0
  311. package/dist/mcp/tools/playbook.js +104 -0
  312. package/dist/mcp/tools/playbook.js.map +1 -0
  313. package/dist/mcp/tools/postmortem.d.ts +2 -0
  314. package/dist/mcp/tools/postmortem.d.ts.map +1 -0
  315. package/dist/mcp/tools/postmortem.js +75 -0
  316. package/dist/mcp/tools/postmortem.js.map +1 -0
  317. package/dist/mcp/tools/react.js +1 -1
  318. package/dist/mcp/tools/react.js.map +1 -1
  319. package/dist/mcp/tools/reject-checkpoint.d.ts +2 -0
  320. package/dist/mcp/tools/reject-checkpoint.d.ts.map +1 -0
  321. package/dist/mcp/tools/reject-checkpoint.js +79 -0
  322. package/dist/mcp/tools/reject-checkpoint.js.map +1 -0
  323. package/dist/mcp/tools/rollback.d.ts +2 -0
  324. package/dist/mcp/tools/rollback.d.ts.map +1 -0
  325. package/dist/mcp/tools/rollback.js +78 -0
  326. package/dist/mcp/tools/rollback.js.map +1 -0
  327. package/dist/mcp/tools/run-in-worktree.d.ts +2 -0
  328. package/dist/mcp/tools/run-in-worktree.d.ts.map +1 -0
  329. package/dist/mcp/tools/run-in-worktree.js +90 -0
  330. package/dist/mcp/tools/run-in-worktree.js.map +1 -0
  331. package/dist/mcp/tools/run.js +1 -1
  332. package/dist/mcp/tools/run.js.map +1 -1
  333. package/dist/mcp/tools/solidity.js +1 -1
  334. package/dist/mcp/tools/solidity.js.map +1 -1
  335. package/dist/mcp/tools/status.d.ts.map +1 -1
  336. package/dist/mcp/tools/status.js +11 -0
  337. package/dist/mcp/tools/status.js.map +1 -1
  338. package/dist/mcp/tools/subscribe-events.d.ts +2 -0
  339. package/dist/mcp/tools/subscribe-events.d.ts.map +1 -0
  340. package/dist/mcp/tools/subscribe-events.js +48 -0
  341. package/dist/mcp/tools/subscribe-events.js.map +1 -0
  342. package/dist/mcp/tools/unsubscribe-events.d.ts +2 -0
  343. package/dist/mcp/tools/unsubscribe-events.d.ts.map +1 -0
  344. package/dist/mcp/tools/unsubscribe-events.js +45 -0
  345. package/dist/mcp/tools/unsubscribe-events.js.map +1 -0
  346. package/dist/orchestrator/agent-loader.d.ts +16 -0
  347. package/dist/orchestrator/agent-loader.d.ts.map +1 -1
  348. package/dist/orchestrator/agent-loader.js +30 -0
  349. package/dist/orchestrator/agent-loader.js.map +1 -1
  350. package/dist/orchestrator/agentic-loop.d.ts +51 -0
  351. package/dist/orchestrator/agentic-loop.d.ts.map +1 -1
  352. package/dist/orchestrator/agentic-loop.js +123 -4
  353. package/dist/orchestrator/agentic-loop.js.map +1 -1
  354. package/dist/orchestrator/arch-lenses.d.ts +7 -0
  355. package/dist/orchestrator/arch-lenses.d.ts.map +1 -0
  356. package/dist/orchestrator/arch-lenses.js +22 -0
  357. package/dist/orchestrator/arch-lenses.js.map +1 -0
  358. package/dist/orchestrator/architect-agent.d.ts +16 -0
  359. package/dist/orchestrator/architect-agent.d.ts.map +1 -1
  360. package/dist/orchestrator/architect-agent.js +546 -9
  361. package/dist/orchestrator/architect-agent.js.map +1 -1
  362. package/dist/orchestrator/checkpoints/audit.d.ts +128 -0
  363. package/dist/orchestrator/checkpoints/audit.d.ts.map +1 -0
  364. package/dist/orchestrator/checkpoints/audit.js +272 -0
  365. package/dist/orchestrator/checkpoints/audit.js.map +1 -0
  366. package/dist/orchestrator/checkpoints/feedback-router.d.ts +213 -0
  367. package/dist/orchestrator/checkpoints/feedback-router.d.ts.map +1 -0
  368. package/dist/orchestrator/checkpoints/feedback-router.js +438 -0
  369. package/dist/orchestrator/checkpoints/feedback-router.js.map +1 -0
  370. package/dist/orchestrator/checkpoints/index.d.ts +11 -0
  371. package/dist/orchestrator/checkpoints/index.d.ts.map +1 -0
  372. package/dist/orchestrator/checkpoints/index.js +12 -0
  373. package/dist/orchestrator/checkpoints/index.js.map +1 -0
  374. package/dist/orchestrator/checkpoints/mechanisms/cli.d.ts +35 -0
  375. package/dist/orchestrator/checkpoints/mechanisms/cli.d.ts.map +1 -0
  376. package/dist/orchestrator/checkpoints/mechanisms/cli.js +153 -0
  377. package/dist/orchestrator/checkpoints/mechanisms/cli.js.map +1 -0
  378. package/dist/orchestrator/checkpoints/mechanisms/disk.d.ts +34 -0
  379. package/dist/orchestrator/checkpoints/mechanisms/disk.d.ts.map +1 -0
  380. package/dist/orchestrator/checkpoints/mechanisms/disk.js +139 -0
  381. package/dist/orchestrator/checkpoints/mechanisms/disk.js.map +1 -0
  382. package/dist/orchestrator/checkpoints/mechanisms/pr.d.ts +141 -0
  383. package/dist/orchestrator/checkpoints/mechanisms/pr.d.ts.map +1 -0
  384. package/dist/orchestrator/checkpoints/mechanisms/pr.js +445 -0
  385. package/dist/orchestrator/checkpoints/mechanisms/pr.js.map +1 -0
  386. package/dist/orchestrator/checkpoints/noop.d.ts +12 -0
  387. package/dist/orchestrator/checkpoints/noop.d.ts.map +1 -0
  388. package/dist/orchestrator/checkpoints/noop.js +13 -0
  389. package/dist/orchestrator/checkpoints/noop.js.map +1 -0
  390. package/dist/orchestrator/checkpoints/registry.d.ts +48 -0
  391. package/dist/orchestrator/checkpoints/registry.d.ts.map +1 -0
  392. package/dist/orchestrator/checkpoints/registry.js +89 -0
  393. package/dist/orchestrator/checkpoints/registry.js.map +1 -0
  394. package/dist/orchestrator/checkpoints/renderers/_util.d.ts +50 -0
  395. package/dist/orchestrator/checkpoints/renderers/_util.d.ts.map +1 -0
  396. package/dist/orchestrator/checkpoints/renderers/_util.js +137 -0
  397. package/dist/orchestrator/checkpoints/renderers/_util.js.map +1 -0
  398. package/dist/orchestrator/checkpoints/renderers/code-review.d.ts +15 -0
  399. package/dist/orchestrator/checkpoints/renderers/code-review.d.ts.map +1 -0
  400. package/dist/orchestrator/checkpoints/renderers/code-review.js +66 -0
  401. package/dist/orchestrator/checkpoints/renderers/code-review.js.map +1 -0
  402. package/dist/orchestrator/checkpoints/renderers/curator-briefing.d.ts +15 -0
  403. package/dist/orchestrator/checkpoints/renderers/curator-briefing.d.ts.map +1 -0
  404. package/dist/orchestrator/checkpoints/renderers/curator-briefing.js +40 -0
  405. package/dist/orchestrator/checkpoints/renderers/curator-briefing.js.map +1 -0
  406. package/dist/orchestrator/checkpoints/renderers/eval-result.d.ts +15 -0
  407. package/dist/orchestrator/checkpoints/renderers/eval-result.d.ts.map +1 -0
  408. package/dist/orchestrator/checkpoints/renderers/eval-result.js +54 -0
  409. package/dist/orchestrator/checkpoints/renderers/eval-result.js.map +1 -0
  410. package/dist/orchestrator/checkpoints/renderers/generator-diff.d.ts +49 -0
  411. package/dist/orchestrator/checkpoints/renderers/generator-diff.d.ts.map +1 -0
  412. package/dist/orchestrator/checkpoints/renderers/generator-diff.js +154 -0
  413. package/dist/orchestrator/checkpoints/renderers/generator-diff.js.map +1 -0
  414. package/dist/orchestrator/checkpoints/renderers/pipeline-summary.d.ts +15 -0
  415. package/dist/orchestrator/checkpoints/renderers/pipeline-summary.d.ts.map +1 -0
  416. package/dist/orchestrator/checkpoints/renderers/pipeline-summary.js +59 -0
  417. package/dist/orchestrator/checkpoints/renderers/pipeline-summary.js.map +1 -0
  418. package/dist/orchestrator/checkpoints/renderers/plan.d.ts +15 -0
  419. package/dist/orchestrator/checkpoints/renderers/plan.d.ts.map +1 -0
  420. package/dist/orchestrator/checkpoints/renderers/plan.js +34 -0
  421. package/dist/orchestrator/checkpoints/renderers/plan.js.map +1 -0
  422. package/dist/orchestrator/checkpoints/renderers/registry.d.ts +43 -0
  423. package/dist/orchestrator/checkpoints/renderers/registry.d.ts.map +1 -0
  424. package/dist/orchestrator/checkpoints/renderers/registry.js +83 -0
  425. package/dist/orchestrator/checkpoints/renderers/registry.js.map +1 -0
  426. package/dist/orchestrator/checkpoints/renderers/research.d.ts +15 -0
  427. package/dist/orchestrator/checkpoints/renderers/research.d.ts.map +1 -0
  428. package/dist/orchestrator/checkpoints/renderers/research.js +39 -0
  429. package/dist/orchestrator/checkpoints/renderers/research.js.map +1 -0
  430. package/dist/orchestrator/checkpoints/renderers/sprint-contract.d.ts +20 -0
  431. package/dist/orchestrator/checkpoints/renderers/sprint-contract.d.ts.map +1 -0
  432. package/dist/orchestrator/checkpoints/renderers/sprint-contract.js +57 -0
  433. package/dist/orchestrator/checkpoints/renderers/sprint-contract.js.map +1 -0
  434. package/dist/orchestrator/checkpoints/renderers/sprint-summary.d.ts +15 -0
  435. package/dist/orchestrator/checkpoints/renderers/sprint-summary.d.ts.map +1 -0
  436. package/dist/orchestrator/checkpoints/renderers/sprint-summary.js +38 -0
  437. package/dist/orchestrator/checkpoints/renderers/sprint-summary.js.map +1 -0
  438. package/dist/orchestrator/checkpoints/sites.d.ts +22 -0
  439. package/dist/orchestrator/checkpoints/sites.d.ts.map +1 -0
  440. package/dist/orchestrator/checkpoints/sites.js +57 -0
  441. package/dist/orchestrator/checkpoints/sites.js.map +1 -0
  442. package/dist/orchestrator/checkpoints/types.d.ts +51 -0
  443. package/dist/orchestrator/checkpoints/types.d.ts.map +1 -0
  444. package/dist/orchestrator/checkpoints/types.js +9 -0
  445. package/dist/orchestrator/checkpoints/types.js.map +1 -0
  446. package/dist/orchestrator/code-reviewer-agent.d.ts +50 -0
  447. package/dist/orchestrator/code-reviewer-agent.d.ts.map +1 -0
  448. package/dist/orchestrator/code-reviewer-agent.js +283 -0
  449. package/dist/orchestrator/code-reviewer-agent.js.map +1 -0
  450. package/dist/orchestrator/curator-agent.d.ts.map +1 -1
  451. package/dist/orchestrator/curator-agent.js +60 -9
  452. package/dist/orchestrator/curator-agent.js.map +1 -1
  453. package/dist/orchestrator/deploy/classify.d.ts +31 -0
  454. package/dist/orchestrator/deploy/classify.d.ts.map +1 -0
  455. package/dist/orchestrator/deploy/classify.js +109 -0
  456. package/dist/orchestrator/deploy/classify.js.map +1 -0
  457. package/dist/orchestrator/deploy/execute.d.ts +45 -0
  458. package/dist/orchestrator/deploy/execute.d.ts.map +1 -0
  459. package/dist/orchestrator/deploy/execute.js +146 -0
  460. package/dist/orchestrator/deploy/execute.js.map +1 -0
  461. package/dist/orchestrator/deploy/executor.d.ts +22 -0
  462. package/dist/orchestrator/deploy/executor.d.ts.map +1 -0
  463. package/dist/orchestrator/deploy/executor.js +31 -0
  464. package/dist/orchestrator/deploy/executor.js.map +1 -0
  465. package/dist/orchestrator/deploy/index.d.ts +21 -0
  466. package/dist/orchestrator/deploy/index.d.ts.map +1 -0
  467. package/dist/orchestrator/deploy/index.js +21 -0
  468. package/dist/orchestrator/deploy/index.js.map +1 -0
  469. package/dist/orchestrator/deploy/resolve.d.ts +51 -0
  470. package/dist/orchestrator/deploy/resolve.d.ts.map +1 -0
  471. package/dist/orchestrator/deploy/resolve.js +53 -0
  472. package/dist/orchestrator/deploy/resolve.js.map +1 -0
  473. package/dist/orchestrator/deploy/spawn.d.ts +60 -0
  474. package/dist/orchestrator/deploy/spawn.d.ts.map +1 -0
  475. package/dist/orchestrator/deploy/spawn.js +62 -0
  476. package/dist/orchestrator/deploy/spawn.js.map +1 -0
  477. package/dist/orchestrator/deploy/types.d.ts +98 -0
  478. package/dist/orchestrator/deploy/types.d.ts.map +1 -0
  479. package/dist/orchestrator/deploy/types.js +39 -0
  480. package/dist/orchestrator/deploy/types.js.map +1 -0
  481. package/dist/orchestrator/documenter-agent.d.ts +57 -0
  482. package/dist/orchestrator/documenter-agent.d.ts.map +1 -0
  483. package/dist/orchestrator/documenter-agent.js +195 -0
  484. package/dist/orchestrator/documenter-agent.js.map +1 -0
  485. package/dist/orchestrator/environment.d.ts +45 -0
  486. package/dist/orchestrator/environment.d.ts.map +1 -0
  487. package/dist/orchestrator/environment.js +151 -0
  488. package/dist/orchestrator/environment.js.map +1 -0
  489. package/dist/orchestrator/eval-lenses.d.ts +7 -0
  490. package/dist/orchestrator/eval-lenses.d.ts.map +1 -0
  491. package/dist/orchestrator/eval-lenses.js +19 -0
  492. package/dist/orchestrator/eval-lenses.js.map +1 -0
  493. package/dist/orchestrator/eval-persist.d.ts +25 -0
  494. package/dist/orchestrator/eval-persist.d.ts.map +1 -0
  495. package/dist/orchestrator/eval-persist.js +74 -0
  496. package/dist/orchestrator/eval-persist.js.map +1 -0
  497. package/dist/orchestrator/evaluator-agent.d.ts +23 -0
  498. package/dist/orchestrator/evaluator-agent.d.ts.map +1 -1
  499. package/dist/orchestrator/evaluator-agent.js +80 -10
  500. package/dist/orchestrator/evaluator-agent.js.map +1 -1
  501. package/dist/orchestrator/generator-agent.d.ts.map +1 -1
  502. package/dist/orchestrator/generator-agent.js +53 -8
  503. package/dist/orchestrator/generator-agent.js.map +1 -1
  504. package/dist/orchestrator/memory/distill.d.ts +60 -0
  505. package/dist/orchestrator/memory/distill.d.ts.map +1 -0
  506. package/dist/orchestrator/memory/distill.js +177 -0
  507. package/dist/orchestrator/memory/distill.js.map +1 -0
  508. package/dist/orchestrator/memory/eval-source.d.ts +20 -0
  509. package/dist/orchestrator/memory/eval-source.d.ts.map +1 -0
  510. package/dist/orchestrator/memory/eval-source.js +88 -0
  511. package/dist/orchestrator/memory/eval-source.js.map +1 -0
  512. package/dist/orchestrator/memory/retrieve.d.ts +45 -0
  513. package/dist/orchestrator/memory/retrieve.d.ts.map +1 -0
  514. package/dist/orchestrator/memory/retrieve.js +102 -0
  515. package/dist/orchestrator/memory/retrieve.js.map +1 -0
  516. package/dist/orchestrator/model-resolver.d.ts.map +1 -1
  517. package/dist/orchestrator/model-resolver.js +15 -1
  518. package/dist/orchestrator/model-resolver.js.map +1 -1
  519. package/dist/orchestrator/observability/index.d.ts +12 -0
  520. package/dist/orchestrator/observability/index.d.ts.map +1 -0
  521. package/dist/orchestrator/observability/index.js +12 -0
  522. package/dist/orchestrator/observability/index.js.map +1 -0
  523. package/dist/orchestrator/observability/merge.d.ts +73 -0
  524. package/dist/orchestrator/observability/merge.d.ts.map +1 -0
  525. package/dist/orchestrator/observability/merge.js +110 -0
  526. package/dist/orchestrator/observability/merge.js.map +1 -0
  527. package/dist/orchestrator/pipeline.d.ts +31 -0
  528. package/dist/orchestrator/pipeline.d.ts.map +1 -1
  529. package/dist/orchestrator/pipeline.js +267 -5
  530. package/dist/orchestrator/pipeline.js.map +1 -1
  531. package/dist/orchestrator/planner-agent.d.ts +22 -1
  532. package/dist/orchestrator/planner-agent.d.ts.map +1 -1
  533. package/dist/orchestrator/planner-agent.js +165 -8
  534. package/dist/orchestrator/planner-agent.js.map +1 -1
  535. package/dist/orchestrator/research-agent.d.ts.map +1 -1
  536. package/dist/orchestrator/research-agent.js +48 -11
  537. package/dist/orchestrator/research-agent.js.map +1 -1
  538. package/dist/orchestrator/tools/handlers.d.ts +16 -0
  539. package/dist/orchestrator/tools/handlers.d.ts.map +1 -1
  540. package/dist/orchestrator/tools/handlers.js +30 -5
  541. package/dist/orchestrator/tools/handlers.js.map +1 -1
  542. package/dist/orchestrator/tools/index.d.ts +84 -1
  543. package/dist/orchestrator/tools/index.d.ts.map +1 -1
  544. package/dist/orchestrator/tools/index.js +164 -1
  545. package/dist/orchestrator/tools/index.js.map +1 -1
  546. package/dist/orchestrator/tools/schemas.js +5 -5
  547. package/dist/orchestrator/tools/schemas.js.map +1 -1
  548. package/dist/orchestrator/workflow/args-builder.d.ts +35 -0
  549. package/dist/orchestrator/workflow/args-builder.d.ts.map +1 -0
  550. package/dist/orchestrator/workflow/args-builder.js +142 -0
  551. package/dist/orchestrator/workflow/args-builder.js.map +1 -0
  552. package/dist/orchestrator/workflow/budget.d.ts +57 -0
  553. package/dist/orchestrator/workflow/budget.d.ts.map +1 -0
  554. package/dist/orchestrator/workflow/budget.js +80 -0
  555. package/dist/orchestrator/workflow/budget.js.map +1 -0
  556. package/dist/orchestrator/workflow/conformance.d.ts +27 -0
  557. package/dist/orchestrator/workflow/conformance.d.ts.map +1 -0
  558. package/dist/orchestrator/workflow/conformance.js +111 -0
  559. package/dist/orchestrator/workflow/conformance.js.map +1 -0
  560. package/dist/orchestrator/workflow/eligibility.d.ts +8 -0
  561. package/dist/orchestrator/workflow/eligibility.d.ts.map +1 -0
  562. package/dist/orchestrator/workflow/eligibility.js +10 -0
  563. package/dist/orchestrator/workflow/eligibility.js.map +1 -0
  564. package/dist/orchestrator/workflow/engine.d.ts +10 -0
  565. package/dist/orchestrator/workflow/engine.d.ts.map +1 -0
  566. package/dist/orchestrator/workflow/engine.js +2 -0
  567. package/dist/orchestrator/workflow/engine.js.map +1 -0
  568. package/dist/orchestrator/workflow/errors.d.ts +13 -0
  569. package/dist/orchestrator/workflow/errors.d.ts.map +1 -0
  570. package/dist/orchestrator/workflow/errors.js +26 -0
  571. package/dist/orchestrator/workflow/errors.js.map +1 -0
  572. package/dist/orchestrator/workflow/flusher.d.ts +19 -0
  573. package/dist/orchestrator/workflow/flusher.d.ts.map +1 -0
  574. package/dist/orchestrator/workflow/flusher.js +81 -0
  575. package/dist/orchestrator/workflow/flusher.js.map +1 -0
  576. package/dist/orchestrator/workflow/interpreter.d.ts +48 -0
  577. package/dist/orchestrator/workflow/interpreter.d.ts.map +1 -0
  578. package/dist/orchestrator/workflow/interpreter.js +92 -0
  579. package/dist/orchestrator/workflow/interpreter.js.map +1 -0
  580. package/dist/orchestrator/workflow/pure-sprint.d.ts +65 -0
  581. package/dist/orchestrator/workflow/pure-sprint.d.ts.map +1 -0
  582. package/dist/orchestrator/workflow/pure-sprint.js +82 -0
  583. package/dist/orchestrator/workflow/pure-sprint.js.map +1 -0
  584. package/dist/orchestrator/workflow/reconciler.d.ts +15 -0
  585. package/dist/orchestrator/workflow/reconciler.d.ts.map +1 -0
  586. package/dist/orchestrator/workflow/reconciler.js +65 -0
  587. package/dist/orchestrator/workflow/reconciler.js.map +1 -0
  588. package/dist/orchestrator/workflow/resume-cursor.d.ts +10 -0
  589. package/dist/orchestrator/workflow/resume-cursor.d.ts.map +1 -0
  590. package/dist/orchestrator/workflow/resume-cursor.js +25 -0
  591. package/dist/orchestrator/workflow/resume-cursor.js.map +1 -0
  592. package/dist/orchestrator/workflow/retry.d.ts +50 -0
  593. package/dist/orchestrator/workflow/retry.d.ts.map +1 -0
  594. package/dist/orchestrator/workflow/retry.js +100 -0
  595. package/dist/orchestrator/workflow/retry.js.map +1 -0
  596. package/dist/orchestrator/workflow/scheduler.d.ts +87 -0
  597. package/dist/orchestrator/workflow/scheduler.d.ts.map +1 -0
  598. package/dist/orchestrator/workflow/scheduler.js +158 -0
  599. package/dist/orchestrator/workflow/scheduler.js.map +1 -0
  600. package/dist/orchestrator/workflow/selector.d.ts +26 -0
  601. package/dist/orchestrator/workflow/selector.d.ts.map +1 -0
  602. package/dist/orchestrator/workflow/selector.js +54 -0
  603. package/dist/orchestrator/workflow/selector.js.map +1 -0
  604. package/dist/orchestrator/workflow/synthesizer.d.ts +52 -0
  605. package/dist/orchestrator/workflow/synthesizer.d.ts.map +1 -0
  606. package/dist/orchestrator/workflow/synthesizer.js +75 -0
  607. package/dist/orchestrator/workflow/synthesizer.js.map +1 -0
  608. package/dist/orchestrator/workflow/ts-engine.d.ts +13 -0
  609. package/dist/orchestrator/workflow/ts-engine.d.ts.map +1 -0
  610. package/dist/orchestrator/workflow/ts-engine.js +14 -0
  611. package/dist/orchestrator/workflow/ts-engine.js.map +1 -0
  612. package/dist/orchestrator/workflow/types.d.ts +55 -0
  613. package/dist/orchestrator/workflow/types.d.ts.map +1 -0
  614. package/dist/orchestrator/workflow/types.js +3 -0
  615. package/dist/orchestrator/workflow/types.js.map +1 -0
  616. package/dist/orchestrator/workflow/workflow-engine.d.ts +31 -0
  617. package/dist/orchestrator/workflow/workflow-engine.d.ts.map +1 -0
  618. package/dist/orchestrator/workflow/workflow-engine.js +70 -0
  619. package/dist/orchestrator/workflow/workflow-engine.js.map +1 -0
  620. package/dist/orchestrator/worktree.d.ts +18 -0
  621. package/dist/orchestrator/worktree.d.ts.map +1 -0
  622. package/dist/orchestrator/worktree.js +129 -0
  623. package/dist/orchestrator/worktree.js.map +1 -0
  624. package/dist/providers/anthropic.d.ts +8 -1
  625. package/dist/providers/anthropic.d.ts.map +1 -1
  626. package/dist/providers/anthropic.js +135 -11
  627. package/dist/providers/anthropic.js.map +1 -1
  628. package/dist/providers/claude-code.d.ts +44 -0
  629. package/dist/providers/claude-code.d.ts.map +1 -0
  630. package/dist/providers/claude-code.js +143 -0
  631. package/dist/providers/claude-code.js.map +1 -0
  632. package/dist/providers/factory.d.ts +16 -2
  633. package/dist/providers/factory.d.ts.map +1 -1
  634. package/dist/providers/factory.js +101 -14
  635. package/dist/providers/factory.js.map +1 -1
  636. package/dist/providers/google.d.ts.map +1 -1
  637. package/dist/providers/google.js +32 -3
  638. package/dist/providers/google.js.map +1 -1
  639. package/dist/providers/index.d.ts +4 -2
  640. package/dist/providers/index.d.ts.map +1 -1
  641. package/dist/providers/index.js +3 -1
  642. package/dist/providers/index.js.map +1 -1
  643. package/dist/providers/openai.d.ts.map +1 -1
  644. package/dist/providers/openai.js +28 -3
  645. package/dist/providers/openai.js.map +1 -1
  646. package/dist/providers/preflight.d.ts +22 -0
  647. package/dist/providers/preflight.d.ts.map +1 -0
  648. package/dist/providers/preflight.js +54 -0
  649. package/dist/providers/preflight.js.map +1 -0
  650. package/dist/providers/structured.d.ts +130 -0
  651. package/dist/providers/structured.d.ts.map +1 -0
  652. package/dist/providers/structured.js +205 -0
  653. package/dist/providers/structured.js.map +1 -0
  654. package/dist/providers/types.d.ts +53 -2
  655. package/dist/providers/types.d.ts.map +1 -1
  656. package/dist/state/approval-state.d.ts +74 -0
  657. package/dist/state/approval-state.d.ts.map +1 -0
  658. package/dist/state/approval-state.js +127 -0
  659. package/dist/state/approval-state.js.map +1 -0
  660. package/dist/state/history-rotation.d.ts +17 -0
  661. package/dist/state/history-rotation.d.ts.map +1 -0
  662. package/dist/state/history-rotation.js +84 -0
  663. package/dist/state/history-rotation.js.map +1 -0
  664. package/dist/state/history.d.ts +16 -4
  665. package/dist/state/history.d.ts.map +1 -1
  666. package/dist/state/history.js +62 -20
  667. package/dist/state/history.js.map +1 -1
  668. package/dist/state/index.d.ts +4 -1
  669. package/dist/state/index.d.ts.map +1 -1
  670. package/dist/state/index.js +5 -2
  671. package/dist/state/index.js.map +1 -1
  672. package/dist/state/memory.d.ts +60 -0
  673. package/dist/state/memory.d.ts.map +1 -0
  674. package/dist/state/memory.js +242 -0
  675. package/dist/state/memory.js.map +1 -0
  676. package/dist/state/review-state.d.ts +15 -0
  677. package/dist/state/review-state.d.ts.map +1 -0
  678. package/dist/state/review-state.js +51 -0
  679. package/dist/state/review-state.js.map +1 -0
  680. package/dist/state/run-state.d.ts +39 -0
  681. package/dist/state/run-state.d.ts.map +1 -0
  682. package/dist/state/run-state.js +101 -0
  683. package/dist/state/run-state.js.map +1 -0
  684. package/dist/telemetry/emit.d.ts +41 -0
  685. package/dist/telemetry/emit.d.ts.map +1 -0
  686. package/dist/telemetry/emit.js +65 -0
  687. package/dist/telemetry/emit.js.map +1 -0
  688. package/dist/utils/git.d.ts +27 -0
  689. package/dist/utils/git.d.ts.map +1 -1
  690. package/dist/utils/git.js +50 -0
  691. package/dist/utils/git.js.map +1 -1
  692. package/hooks/hooks.json +27 -1
  693. package/hooks/session-start +42 -0
  694. package/package.json +13 -6
  695. package/scripts/check-prereqs.sh +12 -0
  696. package/scripts/e2e-graph-smoke.sh +167 -0
  697. package/scripts/graph-hook.mjs +151 -0
  698. package/scripts/run-kpi-gate.mjs +245 -0
  699. package/scripts/spike-claude-code-provider.mjs +66 -0
  700. package/scripts/spike-deepseek.mjs +63 -0
  701. package/scripts/sync-skills.mjs +4 -1
  702. package/scripts/sync-targets.json +12 -0
  703. package/scripts/update-all.mjs +255 -0
  704. package/skills/bober.architect/SKILL.md +13 -0
  705. package/skills/bober.architect/references/arch-lens-panel.md +126 -0
  706. package/skills/bober.code-review/SKILL.md +186 -0
  707. package/skills/bober.debug/SKILL.md +300 -0
  708. package/skills/bober.deploy/SKILL.md +262 -0
  709. package/skills/bober.diagnose/SKILL.md +254 -0
  710. package/skills/bober.eval/SKILL.md +9 -0
  711. package/skills/bober.eval/references/lens-panel.md +115 -0
  712. package/skills/bober.graph/SKILL.md +85 -0
  713. package/skills/bober.impact/SKILL.md +101 -0
  714. package/skills/bober.incident/SKILL.md +245 -0
  715. package/skills/bober.onboard/SKILL.md +84 -0
  716. package/skills/bober.plan/SKILL.md +16 -0
  717. package/skills/bober.postmortem/SKILL.md +231 -0
  718. package/skills/bober.run/SKILL.md +23 -4
  719. package/skills/bober.run/references/lens-panel.md +115 -0
  720. package/skills/bober.runbook/SKILL.md +335 -0
  721. package/skills/bober.sprint/SKILL.md +44 -2
  722. package/skills/bober.sprint/references/lens-panel.md +115 -0
  723. package/skills/bober.using-bober/SKILL.md +133 -0
  724. package/skills/bober.verify/SKILL.md +143 -0
  725. package/skills/shared/arch-lens-panel.md +126 -0
  726. package/skills/shared/lens-panel.md +115 -0
@@ -217,6 +217,19 @@ export declare const EvaluatorSectionSchema: z.ZodObject<{
217
217
  provider: z.ZodOptional<z.ZodString>;
218
218
  endpoint: z.ZodOptional<z.ZodNullable<z.ZodString>>;
219
219
  providerConfig: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
220
+ panel: z.ZodDefault<z.ZodObject<{
221
+ enabled: z.ZodDefault<z.ZodBoolean>;
222
+ lenses: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
223
+ maxConcurrent: z.ZodDefault<z.ZodNumber>;
224
+ }, "strip", z.ZodTypeAny, {
225
+ enabled: boolean;
226
+ lenses: string[];
227
+ maxConcurrent: number;
228
+ }, {
229
+ enabled?: boolean | undefined;
230
+ lenses?: string[] | undefined;
231
+ maxConcurrent?: number | undefined;
232
+ }>>;
220
233
  }, "strip", z.ZodTypeAny, {
221
234
  model: string;
222
235
  strategies: {
@@ -228,6 +241,11 @@ export declare const EvaluatorSectionSchema: z.ZodObject<{
228
241
  label?: string | undefined;
229
242
  }[];
230
243
  maxIterations: number;
244
+ panel: {
245
+ enabled: boolean;
246
+ lenses: string[];
247
+ maxConcurrent: number;
248
+ };
231
249
  provider?: string | undefined;
232
250
  endpoint?: string | null | undefined;
233
251
  providerConfig?: Record<string, unknown> | undefined;
@@ -247,8 +265,41 @@ export declare const EvaluatorSectionSchema: z.ZodObject<{
247
265
  providerConfig?: Record<string, unknown> | undefined;
248
266
  maxIterations?: number | undefined;
249
267
  plugins?: string[] | undefined;
268
+ panel?: {
269
+ enabled?: boolean | undefined;
270
+ lenses?: string[] | undefined;
271
+ maxConcurrent?: number | undefined;
272
+ } | undefined;
250
273
  }>;
251
274
  export type EvaluatorSection = z.infer<typeof EvaluatorSectionSchema>;
275
+ export declare const ArchitectSectionSchema: z.ZodObject<{
276
+ panel: z.ZodDefault<z.ZodObject<{
277
+ enabled: z.ZodDefault<z.ZodBoolean>;
278
+ lenses: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
279
+ maxConcurrent: z.ZodDefault<z.ZodNumber>;
280
+ }, "strip", z.ZodTypeAny, {
281
+ enabled: boolean;
282
+ lenses: string[];
283
+ maxConcurrent: number;
284
+ }, {
285
+ enabled?: boolean | undefined;
286
+ lenses?: string[] | undefined;
287
+ maxConcurrent?: number | undefined;
288
+ }>>;
289
+ }, "strip", z.ZodTypeAny, {
290
+ panel: {
291
+ enabled: boolean;
292
+ lenses: string[];
293
+ maxConcurrent: number;
294
+ };
295
+ }, {
296
+ panel?: {
297
+ enabled?: boolean | undefined;
298
+ lenses?: string[] | undefined;
299
+ maxConcurrent?: number | undefined;
300
+ } | undefined;
301
+ }>;
302
+ export type ArchitectSection = z.infer<typeof ArchitectSectionSchema>;
252
303
  export declare const SprintSectionSchema: z.ZodObject<{
253
304
  maxSprints: z.ZodDefault<z.ZodNumber>;
254
305
  requireContracts: z.ZodDefault<z.ZodBoolean>;
@@ -272,8 +323,33 @@ export declare const CuratorSectionSchema: z.ZodObject<{
272
323
  providerConfig: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
273
324
  }, "strip", z.ZodTypeAny, {
274
325
  model: string;
326
+ enabled: boolean;
275
327
  maxTurns: number;
328
+ provider?: string | undefined;
329
+ endpoint?: string | null | undefined;
330
+ providerConfig?: Record<string, unknown> | undefined;
331
+ }, {
332
+ model?: string | undefined;
333
+ provider?: string | undefined;
334
+ endpoint?: string | null | undefined;
335
+ providerConfig?: Record<string, unknown> | undefined;
336
+ enabled?: boolean | undefined;
337
+ maxTurns?: number | undefined;
338
+ }>;
339
+ export type CuratorSection = z.infer<typeof CuratorSectionSchema>;
340
+ export declare const CodeReviewSectionSchema: z.ZodObject<{
341
+ timeoutMs: z.ZodDefault<z.ZodNumber>;
342
+ enabled: z.ZodDefault<z.ZodBoolean>;
343
+ model: z.ZodDefault<z.ZodString>;
344
+ maxTurns: z.ZodDefault<z.ZodNumber>;
345
+ provider: z.ZodOptional<z.ZodString>;
346
+ endpoint: z.ZodOptional<z.ZodNullable<z.ZodString>>;
347
+ providerConfig: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
348
+ }, "strip", z.ZodTypeAny, {
349
+ model: string;
276
350
  enabled: boolean;
351
+ maxTurns: number;
352
+ timeoutMs: number;
277
353
  provider?: string | undefined;
278
354
  endpoint?: string | null | undefined;
279
355
  providerConfig?: Record<string, unknown> | undefined;
@@ -282,28 +358,121 @@ export declare const CuratorSectionSchema: z.ZodObject<{
282
358
  provider?: string | undefined;
283
359
  endpoint?: string | null | undefined;
284
360
  providerConfig?: Record<string, unknown> | undefined;
361
+ enabled?: boolean | undefined;
285
362
  maxTurns?: number | undefined;
363
+ timeoutMs?: number | undefined;
364
+ }>;
365
+ export type CodeReviewSection = z.infer<typeof CodeReviewSectionSchema>;
366
+ /**
367
+ * Per-sprint documenter — writes docs immediately after a sprint's evaluator
368
+ * passes (instead of batching all docs into a final sprint). Advisory: a
369
+ * documenter failure never downgrades the already-passed sprint.
370
+ */
371
+ export declare const DocumenterSectionSchema: z.ZodObject<{
372
+ timeoutMs: z.ZodDefault<z.ZodNumber>;
373
+ enabled: z.ZodDefault<z.ZodBoolean>;
374
+ model: z.ZodDefault<z.ZodString>;
375
+ maxTurns: z.ZodDefault<z.ZodNumber>;
376
+ provider: z.ZodOptional<z.ZodString>;
377
+ endpoint: z.ZodOptional<z.ZodNullable<z.ZodString>>;
378
+ providerConfig: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
379
+ }, "strip", z.ZodTypeAny, {
380
+ model: string;
381
+ enabled: boolean;
382
+ maxTurns: number;
383
+ timeoutMs: number;
384
+ provider?: string | undefined;
385
+ endpoint?: string | null | undefined;
386
+ providerConfig?: Record<string, unknown> | undefined;
387
+ }, {
388
+ model?: string | undefined;
389
+ provider?: string | undefined;
390
+ endpoint?: string | null | undefined;
391
+ providerConfig?: Record<string, unknown> | undefined;
286
392
  enabled?: boolean | undefined;
393
+ maxTurns?: number | undefined;
394
+ timeoutMs?: number | undefined;
287
395
  }>;
288
- export type CuratorSection = z.infer<typeof CuratorSectionSchema>;
396
+ export type DocumenterSection = z.infer<typeof DocumenterSectionSchema>;
397
+ /** Well-known checkpoint mechanism names. */
398
+ export declare const CheckpointMechanismSchema: z.ZodEnum<["noop", "cli", "disk", "pr"]>;
399
+ export type CheckpointMechanismName = z.infer<typeof CheckpointMechanismSchema>;
289
400
  export declare const PipelineSectionSchema: z.ZodObject<{
290
401
  maxIterations: z.ZodDefault<z.ZodNumber>;
402
+ /** Maximum times the router re-invokes a responsible agent after rejection. Default 3, min 1, max 10. */
403
+ maxCheckpointIterations: z.ZodDefault<z.ZodNumber>;
291
404
  requireApproval: z.ZodDefault<z.ZodBoolean>;
292
405
  contextReset: z.ZodDefault<z.ZodEnum<["always", "on-threshold", "never"]>>;
293
406
  researchPhase: z.ZodDefault<z.ZodBoolean>;
294
407
  architectPhase: z.ZodDefault<z.ZodBoolean>;
408
+ /** Pipeline execution mode. 'autopilot' auto-approves all checkpoints; 'careful' defaults to disk mechanism. Default: 'autopilot'. */
409
+ mode: z.ZodDefault<z.ZodEnum<["autopilot", "careful"]>>;
410
+ /** Global default checkpoint mechanism name. When unset, resolved at runtime from pipeline.mode. Optional — leave unset to use mode-based default. */
411
+ checkpointMechanism: z.ZodOptional<z.ZodEnum<["noop", "cli", "disk", "pr"]>>;
412
+ /** Per-checkpoint mechanism overrides. Keys are checkpoint IDs (e.g., 'post-research'); values are mechanism names. Default: {}. */
413
+ checkpointOverrides: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodEnum<["noop", "cli", "disk", "pr"]>>>;
414
+ /** How long (ms) the disk and CLI mechanisms wait for approval before timing out. Default: 86400000 (24 hours). */
415
+ approvalTimeoutMs: z.ZodDefault<z.ZodNumber>;
416
+ /** How often (ms) the PR mechanism polls for PR merge/close events. Default: 30000 (30 seconds). */
417
+ prPollMs: z.ZodDefault<z.ZodNumber>;
418
+ /** Sprint 20: escape hatch for fully-automated environments (CI, batch jobs)
419
+ * where no human is available. When false (default), risky actions trigger
420
+ * a non-noop mechanism floor (default 'disk') even in mode='autopilot' +
421
+ * checkpointMechanism='noop'. When true, risky actions are auto-approved
422
+ * with a STERN warning logged and the ChangeEntry STILL recorded with the
423
+ * required inverse. This is "skip the interactive approval" — NOT "skip
424
+ * the audit trail." Documented as a footgun in skills/bober.deploy/SKILL.md. */
425
+ allowAutopilotRiskyActions: z.ZodDefault<z.ZodBoolean>;
426
+ /** Sprint 3 (cockpit-integration): per-subscription bounded queue for the
427
+ * event-stream notification fan-out. Default 1000. When the queue overflows,
428
+ * the oldest events are dropped and a single `bober/events.dropped`
429
+ * notification with `{ subscriptionId, dropped: N }` is emitted per
430
+ * overflow window. */
431
+ eventQueueBound: z.ZodDefault<z.ZodNumber>;
432
+ /** Sprint 4 (cockpit-integration): root directory (relative to projectRoot) under
433
+ * which git worktrees are created. Default '.bober/worktrees'. The full worktree
434
+ * path is <projectRoot>/<worktreeRoot>/<runId>. */
435
+ worktreeRoot: z.ZodDefault<z.ZodString>;
436
+ /** Sprint 4 (cockpit-integration): when true (default), the worktree is removed
437
+ * via `git worktree remove` after a successful pipeline run. On failure the
438
+ * worktree is ALWAYS retained for debugging regardless of this flag. */
439
+ cleanupWorktreeOnSuccess: z.ZodDefault<z.ZodBoolean>;
440
+ /** Orchestration engine. 'ts' runs the built-in TypeScript pipeline (default). 'skill' and 'workflow' select alternative engines (sprint 6+). Default: 'ts'. */
441
+ engine: z.ZodDefault<z.ZodEnum<["ts", "skill", "workflow"]>>;
295
442
  }, "strip", z.ZodTypeAny, {
443
+ mode: "autopilot" | "careful";
296
444
  maxIterations: number;
445
+ maxCheckpointIterations: number;
297
446
  requireApproval: boolean;
298
447
  contextReset: "always" | "on-threshold" | "never";
299
448
  researchPhase: boolean;
300
449
  architectPhase: boolean;
450
+ checkpointOverrides: Record<string, "noop" | "cli" | "disk" | "pr">;
451
+ approvalTimeoutMs: number;
452
+ prPollMs: number;
453
+ allowAutopilotRiskyActions: boolean;
454
+ eventQueueBound: number;
455
+ worktreeRoot: string;
456
+ cleanupWorktreeOnSuccess: boolean;
457
+ engine: "ts" | "skill" | "workflow";
458
+ checkpointMechanism?: "noop" | "cli" | "disk" | "pr" | undefined;
301
459
  }, {
460
+ mode?: "autopilot" | "careful" | undefined;
302
461
  maxIterations?: number | undefined;
462
+ maxCheckpointIterations?: number | undefined;
303
463
  requireApproval?: boolean | undefined;
304
464
  contextReset?: "always" | "on-threshold" | "never" | undefined;
305
465
  researchPhase?: boolean | undefined;
306
466
  architectPhase?: boolean | undefined;
467
+ checkpointMechanism?: "noop" | "cli" | "disk" | "pr" | undefined;
468
+ checkpointOverrides?: Record<string, "noop" | "cli" | "disk" | "pr"> | undefined;
469
+ approvalTimeoutMs?: number | undefined;
470
+ prPollMs?: number | undefined;
471
+ allowAutopilotRiskyActions?: boolean | undefined;
472
+ eventQueueBound?: number | undefined;
473
+ worktreeRoot?: string | undefined;
474
+ cleanupWorktreeOnSuccess?: boolean | undefined;
475
+ engine?: "ts" | "skill" | "workflow" | undefined;
307
476
  }>;
308
477
  export type PipelineSection = z.infer<typeof PipelineSectionSchema>;
309
478
  export declare const CommandsSectionSchema: z.ZodObject<{
@@ -329,6 +498,226 @@ export declare const CommandsSectionSchema: z.ZodObject<{
329
498
  dev?: string | undefined;
330
499
  }>;
331
500
  export type CommandsSection = z.infer<typeof CommandsSectionSchema>;
501
+ export declare const GraphLanguageTierSchema: z.ZodEnum<["core", "extended", "all"]>;
502
+ export type GraphLanguageTier = z.infer<typeof GraphLanguageTierSchema>;
503
+ /**
504
+ * Per-role token budgets for pre-flight graph context injection (ADR-9).
505
+ * Budgets are enforced on the FORMATTED markdown output (not raw graph results).
506
+ * Token counting uses Math.ceil(text.length / 4) as a conservative estimate.
507
+ */
508
+ export declare const GraphPreflightBudgetsSchema: z.ZodObject<{
509
+ architect: z.ZodDefault<z.ZodNumber>;
510
+ curator: z.ZodDefault<z.ZodNumber>;
511
+ generator: z.ZodDefault<z.ZodNumber>;
512
+ evaluator: z.ZodDefault<z.ZodNumber>;
513
+ /** camelCase alias for the 'researcher-phase2' role. */
514
+ researcherPhase2: z.ZodDefault<z.ZodNumber>;
515
+ }, "strip", z.ZodTypeAny, {
516
+ architect: number;
517
+ curator: number;
518
+ generator: number;
519
+ evaluator: number;
520
+ researcherPhase2: number;
521
+ }, {
522
+ architect?: number | undefined;
523
+ curator?: number | undefined;
524
+ generator?: number | undefined;
525
+ evaluator?: number | undefined;
526
+ researcherPhase2?: number | undefined;
527
+ }>;
528
+ export type GraphPreflightBudgets = z.infer<typeof GraphPreflightBudgetsSchema>;
529
+ export declare const GraphSectionSchema: z.ZodObject<{
530
+ enabled: z.ZodDefault<z.ZodBoolean>;
531
+ tokensavePath: z.ZodOptional<z.ZodString>;
532
+ autoSync: z.ZodDefault<z.ZodBoolean>;
533
+ languageTier: z.ZodDefault<z.ZodEnum<["core", "extended", "all"]>>;
534
+ manifestPath: z.ZodDefault<z.ZodString>;
535
+ syncTimeoutMs: z.ZodDefault<z.ZodNumber>;
536
+ queryTimeoutMs: z.ZodDefault<z.ZodNumber>;
537
+ debounceMs: z.ZodDefault<z.ZodNumber>;
538
+ hookQueueMax: z.ZodDefault<z.ZodNumber>;
539
+ maxEngineRssMb: z.ZodDefault<z.ZodNumber>;
540
+ /** When true (default) and graph.enabled=true, graph_* tools are
541
+ * exposed on the external MCP server (Cursor/Windsurf). When false,
542
+ * graph tools remain available to the internal orchestrator only. */
543
+ exposeOnExternalMcp: z.ZodDefault<z.ZodBoolean>;
544
+ /** Per-role token budgets for pre-flight graph context injection (ADR-9). */
545
+ preflightBudgets: z.ZodDefault<z.ZodObject<{
546
+ architect: z.ZodDefault<z.ZodNumber>;
547
+ curator: z.ZodDefault<z.ZodNumber>;
548
+ generator: z.ZodDefault<z.ZodNumber>;
549
+ evaluator: z.ZodDefault<z.ZodNumber>;
550
+ /** camelCase alias for the 'researcher-phase2' role. */
551
+ researcherPhase2: z.ZodDefault<z.ZodNumber>;
552
+ }, "strip", z.ZodTypeAny, {
553
+ architect: number;
554
+ curator: number;
555
+ generator: number;
556
+ evaluator: number;
557
+ researcherPhase2: number;
558
+ }, {
559
+ architect?: number | undefined;
560
+ curator?: number | undefined;
561
+ generator?: number | undefined;
562
+ evaluator?: number | undefined;
563
+ researcherPhase2?: number | undefined;
564
+ }>>;
565
+ }, "strip", z.ZodTypeAny, {
566
+ enabled: boolean;
567
+ autoSync: boolean;
568
+ languageTier: "core" | "extended" | "all";
569
+ manifestPath: string;
570
+ syncTimeoutMs: number;
571
+ queryTimeoutMs: number;
572
+ debounceMs: number;
573
+ hookQueueMax: number;
574
+ maxEngineRssMb: number;
575
+ exposeOnExternalMcp: boolean;
576
+ preflightBudgets: {
577
+ architect: number;
578
+ curator: number;
579
+ generator: number;
580
+ evaluator: number;
581
+ researcherPhase2: number;
582
+ };
583
+ tokensavePath?: string | undefined;
584
+ }, {
585
+ enabled?: boolean | undefined;
586
+ tokensavePath?: string | undefined;
587
+ autoSync?: boolean | undefined;
588
+ languageTier?: "core" | "extended" | "all" | undefined;
589
+ manifestPath?: string | undefined;
590
+ syncTimeoutMs?: number | undefined;
591
+ queryTimeoutMs?: number | undefined;
592
+ debounceMs?: number | undefined;
593
+ hookQueueMax?: number | undefined;
594
+ maxEngineRssMb?: number | undefined;
595
+ exposeOnExternalMcp?: boolean | undefined;
596
+ preflightBudgets?: {
597
+ architect?: number | undefined;
598
+ curator?: number | undefined;
599
+ generator?: number | undefined;
600
+ evaluator?: number | undefined;
601
+ researcherPhase2?: number | undefined;
602
+ } | undefined;
603
+ }>;
604
+ export type GraphSection = z.infer<typeof GraphSectionSchema>;
605
+ /** Categories of observability data a provider can serve. */
606
+ export declare const ObservabilityProviderKindSchema: z.ZodEnum<["logs", "metrics", "traces", "errors", "custom"]>;
607
+ export type ObservabilityProviderKind = z.infer<typeof ObservabilityProviderKindSchema>;
608
+ /**
609
+ * One declared external MCP server providing observability tools.
610
+ * At diagnoser spawn time the orchestrator spawns mcpCommand with
611
+ * mcpArgs and mcpEnv, lists its tools, and merges them into the
612
+ * diagnoser's tool set under the prefix `obs__<name>__<tool>`.
613
+ */
614
+ export declare const ObservabilityProviderSchema: z.ZodObject<{
615
+ /** Unique name used in the obs__<name>__<tool> namespace prefix. */
616
+ name: z.ZodString;
617
+ kind: z.ZodEnum<["logs", "metrics", "traces", "errors", "custom"]>;
618
+ /** Executable to spawn (e.g., "node", "/usr/local/bin/mcp-grafana"). */
619
+ mcpCommand: z.ZodString;
620
+ mcpArgs: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
621
+ /** Env vars passed to the child — may contain SECRETS (treat as opaque). */
622
+ mcpEnv: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
623
+ enabled: z.ZodDefault<z.ZodBoolean>;
624
+ }, "strip", z.ZodTypeAny, {
625
+ name: string;
626
+ enabled: boolean;
627
+ kind: "custom" | "logs" | "metrics" | "traces" | "errors";
628
+ mcpCommand: string;
629
+ mcpArgs?: string[] | undefined;
630
+ mcpEnv?: Record<string, string> | undefined;
631
+ }, {
632
+ name: string;
633
+ kind: "custom" | "logs" | "metrics" | "traces" | "errors";
634
+ mcpCommand: string;
635
+ enabled?: boolean | undefined;
636
+ mcpArgs?: string[] | undefined;
637
+ mcpEnv?: Record<string, string> | undefined;
638
+ }>;
639
+ export type ObservabilityProvider = z.infer<typeof ObservabilityProviderSchema>;
640
+ export declare const ObservabilitySectionSchema: z.ZodObject<{
641
+ providers: z.ZodDefault<z.ZodArray<z.ZodObject<{
642
+ /** Unique name used in the obs__<name>__<tool> namespace prefix. */
643
+ name: z.ZodString;
644
+ kind: z.ZodEnum<["logs", "metrics", "traces", "errors", "custom"]>;
645
+ /** Executable to spawn (e.g., "node", "/usr/local/bin/mcp-grafana"). */
646
+ mcpCommand: z.ZodString;
647
+ mcpArgs: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
648
+ /** Env vars passed to the child — may contain SECRETS (treat as opaque). */
649
+ mcpEnv: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
650
+ enabled: z.ZodDefault<z.ZodBoolean>;
651
+ }, "strip", z.ZodTypeAny, {
652
+ name: string;
653
+ enabled: boolean;
654
+ kind: "custom" | "logs" | "metrics" | "traces" | "errors";
655
+ mcpCommand: string;
656
+ mcpArgs?: string[] | undefined;
657
+ mcpEnv?: Record<string, string> | undefined;
658
+ }, {
659
+ name: string;
660
+ kind: "custom" | "logs" | "metrics" | "traces" | "errors";
661
+ mcpCommand: string;
662
+ enabled?: boolean | undefined;
663
+ mcpArgs?: string[] | undefined;
664
+ mcpEnv?: Record<string, string> | undefined;
665
+ }>, "many">>;
666
+ }, "strip", z.ZodTypeAny, {
667
+ providers: {
668
+ name: string;
669
+ enabled: boolean;
670
+ kind: "custom" | "logs" | "metrics" | "traces" | "errors";
671
+ mcpCommand: string;
672
+ mcpArgs?: string[] | undefined;
673
+ mcpEnv?: Record<string, string> | undefined;
674
+ }[];
675
+ }, {
676
+ providers?: {
677
+ name: string;
678
+ kind: "custom" | "logs" | "metrics" | "traces" | "errors";
679
+ mcpCommand: string;
680
+ enabled?: boolean | undefined;
681
+ mcpArgs?: string[] | undefined;
682
+ mcpEnv?: Record<string, string> | undefined;
683
+ }[] | undefined;
684
+ }>;
685
+ export type ObservabilitySection = z.infer<typeof ObservabilitySectionSchema>;
686
+ export declare const IncidentSectionSchema: z.ZodObject<{
687
+ /** When true (default), an incident transition to status='resolved' triggers
688
+ * asynchronous postmortem generation. The status transition itself returns
689
+ * immediately — postmortem synthesis runs fire-and-forget and updates
690
+ * incident.json.postmortemPath when complete. Set false to disable auto-gen
691
+ * (e.g., for CI environments or read-only audits). Sprint 23. */
692
+ autoPostmortem: z.ZodDefault<z.ZodBoolean>;
693
+ }, "strip", z.ZodTypeAny, {
694
+ autoPostmortem: boolean;
695
+ }, {
696
+ autoPostmortem?: boolean | undefined;
697
+ }>;
698
+ export type IncidentSection = z.infer<typeof IncidentSectionSchema>;
699
+ export declare const TelemetrySectionSchema: z.ZodObject<{
700
+ /** When true, the orchestrator appends JSONL events to .bober/telemetry/<date>.jsonl
701
+ * for tracking checkpoint approval rates, incident resolution times, agent retry
702
+ * counts. Default false (no events written). No network egress under any condition
703
+ * — see ESLint no-restricted-imports rule in eslint.config.js for src/telemetry/. */
704
+ enabled: z.ZodDefault<z.ZodBoolean>;
705
+ }, "strip", z.ZodTypeAny, {
706
+ enabled: boolean;
707
+ }, {
708
+ enabled?: boolean | undefined;
709
+ }>;
710
+ export type TelemetrySection = z.infer<typeof TelemetrySectionSchema>;
711
+ export declare const HistorySectionSchema: z.ZodObject<{
712
+ /** Max entries kept in the active history.jsonl before rotation moves the
713
+ * oldest overflow to history.archive.jsonl. Positive integer, default 2000. */
714
+ maxActiveLines: z.ZodDefault<z.ZodNumber>;
715
+ }, "strip", z.ZodTypeAny, {
716
+ maxActiveLines: number;
717
+ }, {
718
+ maxActiveLines?: number | undefined;
719
+ }>;
720
+ export type HistorySection = z.infer<typeof HistorySectionSchema>;
332
721
  export declare const BoberConfigSchema: z.ZodObject<{
333
722
  project: z.ZodObject<{
334
723
  name: z.ZodString;
@@ -420,8 +809,8 @@ export declare const BoberConfigSchema: z.ZodObject<{
420
809
  providerConfig: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
421
810
  }, "strip", z.ZodTypeAny, {
422
811
  model: string;
423
- maxTurns: number;
424
812
  enabled: boolean;
813
+ maxTurns: number;
425
814
  provider?: string | undefined;
426
815
  endpoint?: string | null | undefined;
427
816
  providerConfig?: Record<string, unknown> | undefined;
@@ -430,8 +819,8 @@ export declare const BoberConfigSchema: z.ZodObject<{
430
819
  provider?: string | undefined;
431
820
  endpoint?: string | null | undefined;
432
821
  providerConfig?: Record<string, unknown> | undefined;
433
- maxTurns?: number | undefined;
434
822
  enabled?: boolean | undefined;
823
+ maxTurns?: number | undefined;
435
824
  }>>;
436
825
  generator: z.ZodObject<{
437
826
  model: z.ZodDefault<z.ZodString>;
@@ -493,6 +882,19 @@ export declare const BoberConfigSchema: z.ZodObject<{
493
882
  provider: z.ZodOptional<z.ZodString>;
494
883
  endpoint: z.ZodOptional<z.ZodNullable<z.ZodString>>;
495
884
  providerConfig: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
885
+ panel: z.ZodDefault<z.ZodObject<{
886
+ enabled: z.ZodDefault<z.ZodBoolean>;
887
+ lenses: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
888
+ maxConcurrent: z.ZodDefault<z.ZodNumber>;
889
+ }, "strip", z.ZodTypeAny, {
890
+ enabled: boolean;
891
+ lenses: string[];
892
+ maxConcurrent: number;
893
+ }, {
894
+ enabled?: boolean | undefined;
895
+ lenses?: string[] | undefined;
896
+ maxConcurrent?: number | undefined;
897
+ }>>;
496
898
  }, "strip", z.ZodTypeAny, {
497
899
  model: string;
498
900
  strategies: {
@@ -504,6 +906,11 @@ export declare const BoberConfigSchema: z.ZodObject<{
504
906
  label?: string | undefined;
505
907
  }[];
506
908
  maxIterations: number;
909
+ panel: {
910
+ enabled: boolean;
911
+ lenses: string[];
912
+ maxConcurrent: number;
913
+ };
507
914
  provider?: string | undefined;
508
915
  endpoint?: string | null | undefined;
509
916
  providerConfig?: Record<string, unknown> | undefined;
@@ -523,6 +930,11 @@ export declare const BoberConfigSchema: z.ZodObject<{
523
930
  providerConfig?: Record<string, unknown> | undefined;
524
931
  maxIterations?: number | undefined;
525
932
  plugins?: string[] | undefined;
933
+ panel?: {
934
+ enabled?: boolean | undefined;
935
+ lenses?: string[] | undefined;
936
+ maxConcurrent?: number | undefined;
937
+ } | undefined;
526
938
  }>;
527
939
  sprint: z.ZodObject<{
528
940
  maxSprints: z.ZodDefault<z.ZodNumber>;
@@ -539,22 +951,80 @@ export declare const BoberConfigSchema: z.ZodObject<{
539
951
  }>;
540
952
  pipeline: z.ZodObject<{
541
953
  maxIterations: z.ZodDefault<z.ZodNumber>;
954
+ /** Maximum times the router re-invokes a responsible agent after rejection. Default 3, min 1, max 10. */
955
+ maxCheckpointIterations: z.ZodDefault<z.ZodNumber>;
542
956
  requireApproval: z.ZodDefault<z.ZodBoolean>;
543
957
  contextReset: z.ZodDefault<z.ZodEnum<["always", "on-threshold", "never"]>>;
544
958
  researchPhase: z.ZodDefault<z.ZodBoolean>;
545
959
  architectPhase: z.ZodDefault<z.ZodBoolean>;
960
+ /** Pipeline execution mode. 'autopilot' auto-approves all checkpoints; 'careful' defaults to disk mechanism. Default: 'autopilot'. */
961
+ mode: z.ZodDefault<z.ZodEnum<["autopilot", "careful"]>>;
962
+ /** Global default checkpoint mechanism name. When unset, resolved at runtime from pipeline.mode. Optional — leave unset to use mode-based default. */
963
+ checkpointMechanism: z.ZodOptional<z.ZodEnum<["noop", "cli", "disk", "pr"]>>;
964
+ /** Per-checkpoint mechanism overrides. Keys are checkpoint IDs (e.g., 'post-research'); values are mechanism names. Default: {}. */
965
+ checkpointOverrides: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodEnum<["noop", "cli", "disk", "pr"]>>>;
966
+ /** How long (ms) the disk and CLI mechanisms wait for approval before timing out. Default: 86400000 (24 hours). */
967
+ approvalTimeoutMs: z.ZodDefault<z.ZodNumber>;
968
+ /** How often (ms) the PR mechanism polls for PR merge/close events. Default: 30000 (30 seconds). */
969
+ prPollMs: z.ZodDefault<z.ZodNumber>;
970
+ /** Sprint 20: escape hatch for fully-automated environments (CI, batch jobs)
971
+ * where no human is available. When false (default), risky actions trigger
972
+ * a non-noop mechanism floor (default 'disk') even in mode='autopilot' +
973
+ * checkpointMechanism='noop'. When true, risky actions are auto-approved
974
+ * with a STERN warning logged and the ChangeEntry STILL recorded with the
975
+ * required inverse. This is "skip the interactive approval" — NOT "skip
976
+ * the audit trail." Documented as a footgun in skills/bober.deploy/SKILL.md. */
977
+ allowAutopilotRiskyActions: z.ZodDefault<z.ZodBoolean>;
978
+ /** Sprint 3 (cockpit-integration): per-subscription bounded queue for the
979
+ * event-stream notification fan-out. Default 1000. When the queue overflows,
980
+ * the oldest events are dropped and a single `bober/events.dropped`
981
+ * notification with `{ subscriptionId, dropped: N }` is emitted per
982
+ * overflow window. */
983
+ eventQueueBound: z.ZodDefault<z.ZodNumber>;
984
+ /** Sprint 4 (cockpit-integration): root directory (relative to projectRoot) under
985
+ * which git worktrees are created. Default '.bober/worktrees'. The full worktree
986
+ * path is <projectRoot>/<worktreeRoot>/<runId>. */
987
+ worktreeRoot: z.ZodDefault<z.ZodString>;
988
+ /** Sprint 4 (cockpit-integration): when true (default), the worktree is removed
989
+ * via `git worktree remove` after a successful pipeline run. On failure the
990
+ * worktree is ALWAYS retained for debugging regardless of this flag. */
991
+ cleanupWorktreeOnSuccess: z.ZodDefault<z.ZodBoolean>;
992
+ /** Orchestration engine. 'ts' runs the built-in TypeScript pipeline (default). 'skill' and 'workflow' select alternative engines (sprint 6+). Default: 'ts'. */
993
+ engine: z.ZodDefault<z.ZodEnum<["ts", "skill", "workflow"]>>;
546
994
  }, "strip", z.ZodTypeAny, {
995
+ mode: "autopilot" | "careful";
547
996
  maxIterations: number;
997
+ maxCheckpointIterations: number;
548
998
  requireApproval: boolean;
549
999
  contextReset: "always" | "on-threshold" | "never";
550
1000
  researchPhase: boolean;
551
1001
  architectPhase: boolean;
1002
+ checkpointOverrides: Record<string, "noop" | "cli" | "disk" | "pr">;
1003
+ approvalTimeoutMs: number;
1004
+ prPollMs: number;
1005
+ allowAutopilotRiskyActions: boolean;
1006
+ eventQueueBound: number;
1007
+ worktreeRoot: string;
1008
+ cleanupWorktreeOnSuccess: boolean;
1009
+ engine: "ts" | "skill" | "workflow";
1010
+ checkpointMechanism?: "noop" | "cli" | "disk" | "pr" | undefined;
552
1011
  }, {
1012
+ mode?: "autopilot" | "careful" | undefined;
553
1013
  maxIterations?: number | undefined;
1014
+ maxCheckpointIterations?: number | undefined;
554
1015
  requireApproval?: boolean | undefined;
555
1016
  contextReset?: "always" | "on-threshold" | "never" | undefined;
556
1017
  researchPhase?: boolean | undefined;
557
1018
  architectPhase?: boolean | undefined;
1019
+ checkpointMechanism?: "noop" | "cli" | "disk" | "pr" | undefined;
1020
+ checkpointOverrides?: Record<string, "noop" | "cli" | "disk" | "pr"> | undefined;
1021
+ approvalTimeoutMs?: number | undefined;
1022
+ prPollMs?: number | undefined;
1023
+ allowAutopilotRiskyActions?: boolean | undefined;
1024
+ eventQueueBound?: number | undefined;
1025
+ worktreeRoot?: string | undefined;
1026
+ cleanupWorktreeOnSuccess?: boolean | undefined;
1027
+ engine?: "ts" | "skill" | "workflow" | undefined;
558
1028
  }>;
559
1029
  commands: z.ZodObject<{
560
1030
  install: z.ZodOptional<z.ZodString>;
@@ -578,30 +1048,236 @@ export declare const BoberConfigSchema: z.ZodObject<{
578
1048
  test?: string | undefined;
579
1049
  dev?: string | undefined;
580
1050
  }>;
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;
1051
+ graph: z.ZodOptional<z.ZodObject<{
1052
+ enabled: z.ZodDefault<z.ZodBoolean>;
1053
+ tokensavePath: z.ZodOptional<z.ZodString>;
1054
+ autoSync: z.ZodDefault<z.ZodBoolean>;
1055
+ languageTier: z.ZodDefault<z.ZodEnum<["core", "extended", "all"]>>;
1056
+ manifestPath: z.ZodDefault<z.ZodString>;
1057
+ syncTimeoutMs: z.ZodDefault<z.ZodNumber>;
1058
+ queryTimeoutMs: z.ZodDefault<z.ZodNumber>;
1059
+ debounceMs: z.ZodDefault<z.ZodNumber>;
1060
+ hookQueueMax: z.ZodDefault<z.ZodNumber>;
1061
+ maxEngineRssMb: z.ZodDefault<z.ZodNumber>;
1062
+ /** When true (default) and graph.enabled=true, graph_* tools are
1063
+ * exposed on the external MCP server (Cursor/Windsurf). When false,
1064
+ * graph tools remain available to the internal orchestrator only. */
1065
+ exposeOnExternalMcp: z.ZodDefault<z.ZodBoolean>;
1066
+ /** Per-role token budgets for pre-flight graph context injection (ADR-9). */
1067
+ preflightBudgets: z.ZodDefault<z.ZodObject<{
1068
+ architect: z.ZodDefault<z.ZodNumber>;
1069
+ curator: z.ZodDefault<z.ZodNumber>;
1070
+ generator: z.ZodDefault<z.ZodNumber>;
1071
+ evaluator: z.ZodDefault<z.ZodNumber>;
1072
+ /** camelCase alias for the 'researcher-phase2' role. */
1073
+ researcherPhase2: z.ZodDefault<z.ZodNumber>;
1074
+ }, "strip", z.ZodTypeAny, {
1075
+ architect: number;
1076
+ curator: number;
1077
+ generator: number;
1078
+ evaluator: number;
1079
+ researcherPhase2: number;
1080
+ }, {
1081
+ architect?: number | undefined;
1082
+ curator?: number | undefined;
1083
+ generator?: number | undefined;
1084
+ evaluator?: number | undefined;
1085
+ researcherPhase2?: number | undefined;
1086
+ }>>;
1087
+ }, "strip", z.ZodTypeAny, {
1088
+ enabled: boolean;
1089
+ autoSync: boolean;
1090
+ languageTier: "core" | "extended" | "all";
1091
+ manifestPath: string;
1092
+ syncTimeoutMs: number;
1093
+ queryTimeoutMs: number;
1094
+ debounceMs: number;
1095
+ hookQueueMax: number;
1096
+ maxEngineRssMb: number;
1097
+ exposeOnExternalMcp: boolean;
1098
+ preflightBudgets: {
1099
+ architect: number;
1100
+ curator: number;
1101
+ generator: number;
1102
+ evaluator: number;
1103
+ researcherPhase2: number;
1104
+ };
1105
+ tokensavePath?: string | undefined;
1106
+ }, {
1107
+ enabled?: boolean | undefined;
1108
+ tokensavePath?: string | undefined;
1109
+ autoSync?: boolean | undefined;
1110
+ languageTier?: "core" | "extended" | "all" | undefined;
1111
+ manifestPath?: string | undefined;
1112
+ syncTimeoutMs?: number | undefined;
1113
+ queryTimeoutMs?: number | undefined;
1114
+ debounceMs?: number | undefined;
1115
+ hookQueueMax?: number | undefined;
1116
+ maxEngineRssMb?: number | undefined;
1117
+ exposeOnExternalMcp?: boolean | undefined;
1118
+ preflightBudgets?: {
1119
+ architect?: number | undefined;
1120
+ curator?: number | undefined;
1121
+ generator?: number | undefined;
1122
+ evaluator?: number | undefined;
1123
+ researcherPhase2?: number | undefined;
594
1124
  } | undefined;
595
- description?: string | undefined;
596
- };
597
- planner: {
598
- maxClarifications: number;
1125
+ }>>;
1126
+ codeReview: z.ZodOptional<z.ZodObject<{
1127
+ timeoutMs: z.ZodDefault<z.ZodNumber>;
1128
+ enabled: z.ZodDefault<z.ZodBoolean>;
1129
+ model: z.ZodDefault<z.ZodString>;
1130
+ maxTurns: z.ZodDefault<z.ZodNumber>;
1131
+ provider: z.ZodOptional<z.ZodString>;
1132
+ endpoint: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1133
+ providerConfig: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1134
+ }, "strip", z.ZodTypeAny, {
599
1135
  model: string;
600
- contextFiles?: string[] | undefined;
1136
+ enabled: boolean;
1137
+ maxTurns: number;
1138
+ timeoutMs: number;
601
1139
  provider?: string | undefined;
602
1140
  endpoint?: string | null | undefined;
603
1141
  providerConfig?: Record<string, unknown> | undefined;
604
- };
1142
+ }, {
1143
+ model?: string | undefined;
1144
+ provider?: string | undefined;
1145
+ endpoint?: string | null | undefined;
1146
+ providerConfig?: Record<string, unknown> | undefined;
1147
+ enabled?: boolean | undefined;
1148
+ maxTurns?: number | undefined;
1149
+ timeoutMs?: number | undefined;
1150
+ }>>;
1151
+ documenter: z.ZodOptional<z.ZodObject<{
1152
+ timeoutMs: z.ZodDefault<z.ZodNumber>;
1153
+ enabled: z.ZodDefault<z.ZodBoolean>;
1154
+ model: z.ZodDefault<z.ZodString>;
1155
+ maxTurns: z.ZodDefault<z.ZodNumber>;
1156
+ provider: z.ZodOptional<z.ZodString>;
1157
+ endpoint: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1158
+ providerConfig: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1159
+ }, "strip", z.ZodTypeAny, {
1160
+ model: string;
1161
+ enabled: boolean;
1162
+ maxTurns: number;
1163
+ timeoutMs: number;
1164
+ provider?: string | undefined;
1165
+ endpoint?: string | null | undefined;
1166
+ providerConfig?: Record<string, unknown> | undefined;
1167
+ }, {
1168
+ model?: string | undefined;
1169
+ provider?: string | undefined;
1170
+ endpoint?: string | null | undefined;
1171
+ providerConfig?: Record<string, unknown> | undefined;
1172
+ enabled?: boolean | undefined;
1173
+ maxTurns?: number | undefined;
1174
+ timeoutMs?: number | undefined;
1175
+ }>>;
1176
+ observability: z.ZodOptional<z.ZodObject<{
1177
+ providers: z.ZodDefault<z.ZodArray<z.ZodObject<{
1178
+ /** Unique name used in the obs__<name>__<tool> namespace prefix. */
1179
+ name: z.ZodString;
1180
+ kind: z.ZodEnum<["logs", "metrics", "traces", "errors", "custom"]>;
1181
+ /** Executable to spawn (e.g., "node", "/usr/local/bin/mcp-grafana"). */
1182
+ mcpCommand: z.ZodString;
1183
+ mcpArgs: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1184
+ /** Env vars passed to the child — may contain SECRETS (treat as opaque). */
1185
+ mcpEnv: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1186
+ enabled: z.ZodDefault<z.ZodBoolean>;
1187
+ }, "strip", z.ZodTypeAny, {
1188
+ name: string;
1189
+ enabled: boolean;
1190
+ kind: "custom" | "logs" | "metrics" | "traces" | "errors";
1191
+ mcpCommand: string;
1192
+ mcpArgs?: string[] | undefined;
1193
+ mcpEnv?: Record<string, string> | undefined;
1194
+ }, {
1195
+ name: string;
1196
+ kind: "custom" | "logs" | "metrics" | "traces" | "errors";
1197
+ mcpCommand: string;
1198
+ enabled?: boolean | undefined;
1199
+ mcpArgs?: string[] | undefined;
1200
+ mcpEnv?: Record<string, string> | undefined;
1201
+ }>, "many">>;
1202
+ }, "strip", z.ZodTypeAny, {
1203
+ providers: {
1204
+ name: string;
1205
+ enabled: boolean;
1206
+ kind: "custom" | "logs" | "metrics" | "traces" | "errors";
1207
+ mcpCommand: string;
1208
+ mcpArgs?: string[] | undefined;
1209
+ mcpEnv?: Record<string, string> | undefined;
1210
+ }[];
1211
+ }, {
1212
+ providers?: {
1213
+ name: string;
1214
+ kind: "custom" | "logs" | "metrics" | "traces" | "errors";
1215
+ mcpCommand: string;
1216
+ enabled?: boolean | undefined;
1217
+ mcpArgs?: string[] | undefined;
1218
+ mcpEnv?: Record<string, string> | undefined;
1219
+ }[] | undefined;
1220
+ }>>;
1221
+ incident: z.ZodOptional<z.ZodObject<{
1222
+ /** When true (default), an incident transition to status='resolved' triggers
1223
+ * asynchronous postmortem generation. The status transition itself returns
1224
+ * immediately — postmortem synthesis runs fire-and-forget and updates
1225
+ * incident.json.postmortemPath when complete. Set false to disable auto-gen
1226
+ * (e.g., for CI environments or read-only audits). Sprint 23. */
1227
+ autoPostmortem: z.ZodDefault<z.ZodBoolean>;
1228
+ }, "strip", z.ZodTypeAny, {
1229
+ autoPostmortem: boolean;
1230
+ }, {
1231
+ autoPostmortem?: boolean | undefined;
1232
+ }>>;
1233
+ telemetry: z.ZodOptional<z.ZodObject<{
1234
+ /** When true, the orchestrator appends JSONL events to .bober/telemetry/<date>.jsonl
1235
+ * for tracking checkpoint approval rates, incident resolution times, agent retry
1236
+ * counts. Default false (no events written). No network egress under any condition
1237
+ * — see ESLint no-restricted-imports rule in eslint.config.js for src/telemetry/. */
1238
+ enabled: z.ZodDefault<z.ZodBoolean>;
1239
+ }, "strip", z.ZodTypeAny, {
1240
+ enabled: boolean;
1241
+ }, {
1242
+ enabled?: boolean | undefined;
1243
+ }>>;
1244
+ architect: z.ZodOptional<z.ZodObject<{
1245
+ panel: z.ZodDefault<z.ZodObject<{
1246
+ enabled: z.ZodDefault<z.ZodBoolean>;
1247
+ lenses: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1248
+ maxConcurrent: z.ZodDefault<z.ZodNumber>;
1249
+ }, "strip", z.ZodTypeAny, {
1250
+ enabled: boolean;
1251
+ lenses: string[];
1252
+ maxConcurrent: number;
1253
+ }, {
1254
+ enabled?: boolean | undefined;
1255
+ lenses?: string[] | undefined;
1256
+ maxConcurrent?: number | undefined;
1257
+ }>>;
1258
+ }, "strip", z.ZodTypeAny, {
1259
+ panel: {
1260
+ enabled: boolean;
1261
+ lenses: string[];
1262
+ maxConcurrent: number;
1263
+ };
1264
+ }, {
1265
+ panel?: {
1266
+ enabled?: boolean | undefined;
1267
+ lenses?: string[] | undefined;
1268
+ maxConcurrent?: number | undefined;
1269
+ } | undefined;
1270
+ }>>;
1271
+ history: z.ZodOptional<z.ZodObject<{
1272
+ /** Max entries kept in the active history.jsonl before rotation moves the
1273
+ * oldest overflow to history.archive.jsonl. Positive integer, default 2000. */
1274
+ maxActiveLines: z.ZodDefault<z.ZodNumber>;
1275
+ }, "strip", z.ZodTypeAny, {
1276
+ maxActiveLines: number;
1277
+ }, {
1278
+ maxActiveLines?: number | undefined;
1279
+ }>>;
1280
+ }, "strip", z.ZodTypeAny, {
605
1281
  generator: {
606
1282
  model: string;
607
1283
  maxTurnsPerSprint: number;
@@ -622,22 +1298,61 @@ export declare const BoberConfigSchema: z.ZodObject<{
622
1298
  label?: string | undefined;
623
1299
  }[];
624
1300
  maxIterations: number;
1301
+ panel: {
1302
+ enabled: boolean;
1303
+ lenses: string[];
1304
+ maxConcurrent: number;
1305
+ };
625
1306
  provider?: string | undefined;
626
1307
  endpoint?: string | null | undefined;
627
1308
  providerConfig?: Record<string, unknown> | undefined;
628
1309
  plugins?: string[] | undefined;
629
1310
  };
1311
+ project: {
1312
+ name: string;
1313
+ mode: "greenfield" | "brownfield";
1314
+ preset?: string | undefined;
1315
+ stack?: {
1316
+ frontend?: string | undefined;
1317
+ backend?: string | undefined;
1318
+ blockchain?: string | undefined;
1319
+ testing?: string | undefined;
1320
+ database?: string | undefined;
1321
+ language?: string | undefined;
1322
+ other?: string[] | undefined;
1323
+ } | undefined;
1324
+ description?: string | undefined;
1325
+ };
1326
+ planner: {
1327
+ maxClarifications: number;
1328
+ model: string;
1329
+ contextFiles?: string[] | undefined;
1330
+ provider?: string | undefined;
1331
+ endpoint?: string | null | undefined;
1332
+ providerConfig?: Record<string, unknown> | undefined;
1333
+ };
630
1334
  sprint: {
631
1335
  maxSprints: number;
632
1336
  requireContracts: boolean;
633
1337
  sprintSize: "small" | "medium" | "large";
634
1338
  };
635
1339
  pipeline: {
1340
+ mode: "autopilot" | "careful";
636
1341
  maxIterations: number;
1342
+ maxCheckpointIterations: number;
637
1343
  requireApproval: boolean;
638
1344
  contextReset: "always" | "on-threshold" | "never";
639
1345
  researchPhase: boolean;
640
1346
  architectPhase: boolean;
1347
+ checkpointOverrides: Record<string, "noop" | "cli" | "disk" | "pr">;
1348
+ approvalTimeoutMs: number;
1349
+ prPollMs: number;
1350
+ allowAutopilotRiskyActions: boolean;
1351
+ eventQueueBound: number;
1352
+ worktreeRoot: string;
1353
+ cleanupWorktreeOnSuccess: boolean;
1354
+ engine: "ts" | "skill" | "workflow";
1355
+ checkpointMechanism?: "noop" | "cli" | "disk" | "pr" | undefined;
641
1356
  };
642
1357
  commands: {
643
1358
  typecheck?: string | undefined;
@@ -647,38 +1362,79 @@ export declare const BoberConfigSchema: z.ZodObject<{
647
1362
  test?: string | undefined;
648
1363
  dev?: string | undefined;
649
1364
  };
1365
+ architect?: {
1366
+ panel: {
1367
+ enabled: boolean;
1368
+ lenses: string[];
1369
+ maxConcurrent: number;
1370
+ };
1371
+ } | undefined;
650
1372
  curator?: {
651
1373
  model: string;
1374
+ enabled: boolean;
652
1375
  maxTurns: number;
1376
+ provider?: string | undefined;
1377
+ endpoint?: string | null | undefined;
1378
+ providerConfig?: Record<string, unknown> | undefined;
1379
+ } | undefined;
1380
+ graph?: {
653
1381
  enabled: boolean;
1382
+ autoSync: boolean;
1383
+ languageTier: "core" | "extended" | "all";
1384
+ manifestPath: string;
1385
+ syncTimeoutMs: number;
1386
+ queryTimeoutMs: number;
1387
+ debounceMs: number;
1388
+ hookQueueMax: number;
1389
+ maxEngineRssMb: number;
1390
+ exposeOnExternalMcp: boolean;
1391
+ preflightBudgets: {
1392
+ architect: number;
1393
+ curator: number;
1394
+ generator: number;
1395
+ evaluator: number;
1396
+ researcherPhase2: number;
1397
+ };
1398
+ tokensavePath?: string | undefined;
1399
+ } | undefined;
1400
+ codeReview?: {
1401
+ model: string;
1402
+ enabled: boolean;
1403
+ maxTurns: number;
1404
+ timeoutMs: number;
654
1405
  provider?: string | undefined;
655
1406
  endpoint?: string | null | undefined;
656
1407
  providerConfig?: Record<string, unknown> | undefined;
657
1408
  } | 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;
1409
+ documenter?: {
1410
+ model: string;
1411
+ enabled: boolean;
1412
+ maxTurns: number;
1413
+ timeoutMs: number;
678
1414
  provider?: string | undefined;
679
1415
  endpoint?: string | null | undefined;
680
1416
  providerConfig?: Record<string, unknown> | undefined;
681
- };
1417
+ } | undefined;
1418
+ observability?: {
1419
+ providers: {
1420
+ name: string;
1421
+ enabled: boolean;
1422
+ kind: "custom" | "logs" | "metrics" | "traces" | "errors";
1423
+ mcpCommand: string;
1424
+ mcpArgs?: string[] | undefined;
1425
+ mcpEnv?: Record<string, string> | undefined;
1426
+ }[];
1427
+ } | undefined;
1428
+ incident?: {
1429
+ autoPostmortem: boolean;
1430
+ } | undefined;
1431
+ telemetry?: {
1432
+ enabled: boolean;
1433
+ } | undefined;
1434
+ history?: {
1435
+ maxActiveLines: number;
1436
+ } | undefined;
1437
+ }, {
682
1438
  generator: {
683
1439
  model?: string | undefined;
684
1440
  provider?: string | undefined;
@@ -703,6 +1459,34 @@ export declare const BoberConfigSchema: z.ZodObject<{
703
1459
  providerConfig?: Record<string, unknown> | undefined;
704
1460
  maxIterations?: number | undefined;
705
1461
  plugins?: string[] | undefined;
1462
+ panel?: {
1463
+ enabled?: boolean | undefined;
1464
+ lenses?: string[] | undefined;
1465
+ maxConcurrent?: number | undefined;
1466
+ } | undefined;
1467
+ };
1468
+ project: {
1469
+ name: string;
1470
+ mode: "greenfield" | "brownfield";
1471
+ preset?: string | undefined;
1472
+ stack?: {
1473
+ frontend?: string | undefined;
1474
+ backend?: string | undefined;
1475
+ blockchain?: string | undefined;
1476
+ testing?: string | undefined;
1477
+ database?: string | undefined;
1478
+ language?: string | undefined;
1479
+ other?: string[] | undefined;
1480
+ } | undefined;
1481
+ description?: string | undefined;
1482
+ };
1483
+ planner: {
1484
+ maxClarifications?: number | undefined;
1485
+ model?: string | undefined;
1486
+ contextFiles?: string[] | undefined;
1487
+ provider?: string | undefined;
1488
+ endpoint?: string | null | undefined;
1489
+ providerConfig?: Record<string, unknown> | undefined;
706
1490
  };
707
1491
  sprint: {
708
1492
  maxSprints?: number | undefined;
@@ -710,11 +1494,22 @@ export declare const BoberConfigSchema: z.ZodObject<{
710
1494
  sprintSize?: "small" | "medium" | "large" | undefined;
711
1495
  };
712
1496
  pipeline: {
1497
+ mode?: "autopilot" | "careful" | undefined;
713
1498
  maxIterations?: number | undefined;
1499
+ maxCheckpointIterations?: number | undefined;
714
1500
  requireApproval?: boolean | undefined;
715
1501
  contextReset?: "always" | "on-threshold" | "never" | undefined;
716
1502
  researchPhase?: boolean | undefined;
717
1503
  architectPhase?: boolean | undefined;
1504
+ checkpointMechanism?: "noop" | "cli" | "disk" | "pr" | undefined;
1505
+ checkpointOverrides?: Record<string, "noop" | "cli" | "disk" | "pr"> | undefined;
1506
+ approvalTimeoutMs?: number | undefined;
1507
+ prPollMs?: number | undefined;
1508
+ allowAutopilotRiskyActions?: boolean | undefined;
1509
+ eventQueueBound?: number | undefined;
1510
+ worktreeRoot?: string | undefined;
1511
+ cleanupWorktreeOnSuccess?: boolean | undefined;
1512
+ engine?: "ts" | "skill" | "workflow" | undefined;
718
1513
  };
719
1514
  commands: {
720
1515
  typecheck?: string | undefined;
@@ -724,14 +1519,78 @@ export declare const BoberConfigSchema: z.ZodObject<{
724
1519
  test?: string | undefined;
725
1520
  dev?: string | undefined;
726
1521
  };
1522
+ architect?: {
1523
+ panel?: {
1524
+ enabled?: boolean | undefined;
1525
+ lenses?: string[] | undefined;
1526
+ maxConcurrent?: number | undefined;
1527
+ } | undefined;
1528
+ } | undefined;
727
1529
  curator?: {
728
1530
  model?: string | undefined;
729
1531
  provider?: string | undefined;
730
1532
  endpoint?: string | null | undefined;
731
1533
  providerConfig?: Record<string, unknown> | undefined;
1534
+ enabled?: boolean | undefined;
1535
+ maxTurns?: number | undefined;
1536
+ } | undefined;
1537
+ graph?: {
1538
+ enabled?: boolean | undefined;
1539
+ tokensavePath?: string | undefined;
1540
+ autoSync?: boolean | undefined;
1541
+ languageTier?: "core" | "extended" | "all" | undefined;
1542
+ manifestPath?: string | undefined;
1543
+ syncTimeoutMs?: number | undefined;
1544
+ queryTimeoutMs?: number | undefined;
1545
+ debounceMs?: number | undefined;
1546
+ hookQueueMax?: number | undefined;
1547
+ maxEngineRssMb?: number | undefined;
1548
+ exposeOnExternalMcp?: boolean | undefined;
1549
+ preflightBudgets?: {
1550
+ architect?: number | undefined;
1551
+ curator?: number | undefined;
1552
+ generator?: number | undefined;
1553
+ evaluator?: number | undefined;
1554
+ researcherPhase2?: number | undefined;
1555
+ } | undefined;
1556
+ } | undefined;
1557
+ codeReview?: {
1558
+ model?: string | undefined;
1559
+ provider?: string | undefined;
1560
+ endpoint?: string | null | undefined;
1561
+ providerConfig?: Record<string, unknown> | undefined;
1562
+ enabled?: boolean | undefined;
1563
+ maxTurns?: number | undefined;
1564
+ timeoutMs?: number | undefined;
1565
+ } | undefined;
1566
+ documenter?: {
1567
+ model?: string | undefined;
1568
+ provider?: string | undefined;
1569
+ endpoint?: string | null | undefined;
1570
+ providerConfig?: Record<string, unknown> | undefined;
1571
+ enabled?: boolean | undefined;
732
1572
  maxTurns?: number | undefined;
1573
+ timeoutMs?: number | undefined;
1574
+ } | undefined;
1575
+ observability?: {
1576
+ providers?: {
1577
+ name: string;
1578
+ kind: "custom" | "logs" | "metrics" | "traces" | "errors";
1579
+ mcpCommand: string;
1580
+ enabled?: boolean | undefined;
1581
+ mcpArgs?: string[] | undefined;
1582
+ mcpEnv?: Record<string, string> | undefined;
1583
+ }[] | undefined;
1584
+ } | undefined;
1585
+ incident?: {
1586
+ autoPostmortem?: boolean | undefined;
1587
+ } | undefined;
1588
+ telemetry?: {
733
1589
  enabled?: boolean | undefined;
734
1590
  } | undefined;
1591
+ history?: {
1592
+ maxActiveLines?: number | undefined;
1593
+ } | undefined;
735
1594
  }>;
736
1595
  export type BoberConfig = z.infer<typeof BoberConfigSchema>;
737
1596
  /**
@@ -773,15 +1632,15 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
773
1632
  provider?: string | undefined;
774
1633
  endpoint?: string | null | undefined;
775
1634
  providerConfig?: Record<string, unknown> | undefined;
776
- maxTurns?: number | undefined;
777
1635
  enabled?: boolean | undefined;
1636
+ maxTurns?: number | undefined;
778
1637
  }, {
779
1638
  model?: string | undefined;
780
1639
  provider?: string | undefined;
781
1640
  endpoint?: string | null | undefined;
782
1641
  providerConfig?: Record<string, unknown> | undefined;
783
- maxTurns?: number | undefined;
784
1642
  enabled?: boolean | undefined;
1643
+ maxTurns?: number | undefined;
785
1644
  }>>>;
786
1645
  generator: z.ZodOptional<z.ZodObject<{
787
1646
  model: z.ZodOptional<z.ZodDefault<z.ZodString>>;
@@ -837,6 +1696,19 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
837
1696
  provider: z.ZodOptional<z.ZodOptional<z.ZodString>>;
838
1697
  endpoint: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
839
1698
  providerConfig: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
1699
+ panel: z.ZodOptional<z.ZodDefault<z.ZodObject<{
1700
+ enabled: z.ZodDefault<z.ZodBoolean>;
1701
+ lenses: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1702
+ maxConcurrent: z.ZodDefault<z.ZodNumber>;
1703
+ }, "strip", z.ZodTypeAny, {
1704
+ enabled: boolean;
1705
+ lenses: string[];
1706
+ maxConcurrent: number;
1707
+ }, {
1708
+ enabled?: boolean | undefined;
1709
+ lenses?: string[] | undefined;
1710
+ maxConcurrent?: number | undefined;
1711
+ }>>>;
840
1712
  }, "strip", z.ZodTypeAny, {
841
1713
  model?: string | undefined;
842
1714
  provider?: string | undefined;
@@ -852,6 +1724,11 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
852
1724
  }[] | undefined;
853
1725
  maxIterations?: number | undefined;
854
1726
  plugins?: string[] | undefined;
1727
+ panel?: {
1728
+ enabled: boolean;
1729
+ lenses: string[];
1730
+ maxConcurrent: number;
1731
+ } | undefined;
855
1732
  }, {
856
1733
  model?: string | undefined;
857
1734
  provider?: string | undefined;
@@ -867,6 +1744,11 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
867
1744
  }[] | undefined;
868
1745
  maxIterations?: number | undefined;
869
1746
  plugins?: string[] | undefined;
1747
+ panel?: {
1748
+ enabled?: boolean | undefined;
1749
+ lenses?: string[] | undefined;
1750
+ maxConcurrent?: number | undefined;
1751
+ } | undefined;
870
1752
  }>>;
871
1753
  sprint: z.ZodOptional<z.ZodObject<{
872
1754
  maxSprints: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
@@ -883,22 +1765,55 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
883
1765
  }>>;
884
1766
  pipeline: z.ZodOptional<z.ZodObject<{
885
1767
  maxIterations: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
1768
+ maxCheckpointIterations: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
886
1769
  requireApproval: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
887
1770
  contextReset: z.ZodOptional<z.ZodDefault<z.ZodEnum<["always", "on-threshold", "never"]>>>;
888
1771
  researchPhase: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
889
1772
  architectPhase: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
1773
+ mode: z.ZodOptional<z.ZodDefault<z.ZodEnum<["autopilot", "careful"]>>>;
1774
+ checkpointMechanism: z.ZodOptional<z.ZodOptional<z.ZodEnum<["noop", "cli", "disk", "pr"]>>>;
1775
+ checkpointOverrides: z.ZodOptional<z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodEnum<["noop", "cli", "disk", "pr"]>>>>;
1776
+ approvalTimeoutMs: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
1777
+ prPollMs: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
1778
+ allowAutopilotRiskyActions: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
1779
+ eventQueueBound: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
1780
+ worktreeRoot: z.ZodOptional<z.ZodDefault<z.ZodString>>;
1781
+ cleanupWorktreeOnSuccess: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
1782
+ engine: z.ZodOptional<z.ZodDefault<z.ZodEnum<["ts", "skill", "workflow"]>>>;
890
1783
  }, "strip", z.ZodTypeAny, {
1784
+ mode?: "autopilot" | "careful" | undefined;
891
1785
  maxIterations?: number | undefined;
1786
+ maxCheckpointIterations?: number | undefined;
892
1787
  requireApproval?: boolean | undefined;
893
1788
  contextReset?: "always" | "on-threshold" | "never" | undefined;
894
1789
  researchPhase?: boolean | undefined;
895
1790
  architectPhase?: boolean | undefined;
1791
+ checkpointMechanism?: "noop" | "cli" | "disk" | "pr" | undefined;
1792
+ checkpointOverrides?: Record<string, "noop" | "cli" | "disk" | "pr"> | undefined;
1793
+ approvalTimeoutMs?: number | undefined;
1794
+ prPollMs?: number | undefined;
1795
+ allowAutopilotRiskyActions?: boolean | undefined;
1796
+ eventQueueBound?: number | undefined;
1797
+ worktreeRoot?: string | undefined;
1798
+ cleanupWorktreeOnSuccess?: boolean | undefined;
1799
+ engine?: "ts" | "skill" | "workflow" | undefined;
896
1800
  }, {
1801
+ mode?: "autopilot" | "careful" | undefined;
897
1802
  maxIterations?: number | undefined;
1803
+ maxCheckpointIterations?: number | undefined;
898
1804
  requireApproval?: boolean | undefined;
899
1805
  contextReset?: "always" | "on-threshold" | "never" | undefined;
900
1806
  researchPhase?: boolean | undefined;
901
1807
  architectPhase?: boolean | undefined;
1808
+ checkpointMechanism?: "noop" | "cli" | "disk" | "pr" | undefined;
1809
+ checkpointOverrides?: Record<string, "noop" | "cli" | "disk" | "pr"> | undefined;
1810
+ approvalTimeoutMs?: number | undefined;
1811
+ prPollMs?: number | undefined;
1812
+ allowAutopilotRiskyActions?: boolean | undefined;
1813
+ eventQueueBound?: number | undefined;
1814
+ worktreeRoot?: string | undefined;
1815
+ cleanupWorktreeOnSuccess?: boolean | undefined;
1816
+ engine?: "ts" | "skill" | "workflow" | undefined;
902
1817
  }>>;
903
1818
  commands: z.ZodOptional<z.ZodObject<{
904
1819
  install: z.ZodOptional<z.ZodOptional<z.ZodString>>;
@@ -922,6 +1837,220 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
922
1837
  test?: string | undefined;
923
1838
  dev?: string | undefined;
924
1839
  }>>;
1840
+ graph: z.ZodOptional<z.ZodOptional<z.ZodObject<{
1841
+ enabled: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
1842
+ tokensavePath: z.ZodOptional<z.ZodOptional<z.ZodString>>;
1843
+ autoSync: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
1844
+ languageTier: z.ZodOptional<z.ZodDefault<z.ZodEnum<["core", "extended", "all"]>>>;
1845
+ manifestPath: z.ZodOptional<z.ZodDefault<z.ZodString>>;
1846
+ syncTimeoutMs: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
1847
+ queryTimeoutMs: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
1848
+ debounceMs: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
1849
+ hookQueueMax: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
1850
+ maxEngineRssMb: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
1851
+ exposeOnExternalMcp: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
1852
+ preflightBudgets: z.ZodOptional<z.ZodDefault<z.ZodObject<{
1853
+ architect: z.ZodDefault<z.ZodNumber>;
1854
+ curator: z.ZodDefault<z.ZodNumber>;
1855
+ generator: z.ZodDefault<z.ZodNumber>;
1856
+ evaluator: z.ZodDefault<z.ZodNumber>;
1857
+ /** camelCase alias for the 'researcher-phase2' role. */
1858
+ researcherPhase2: z.ZodDefault<z.ZodNumber>;
1859
+ }, "strip", z.ZodTypeAny, {
1860
+ architect: number;
1861
+ curator: number;
1862
+ generator: number;
1863
+ evaluator: number;
1864
+ researcherPhase2: number;
1865
+ }, {
1866
+ architect?: number | undefined;
1867
+ curator?: number | undefined;
1868
+ generator?: number | undefined;
1869
+ evaluator?: number | undefined;
1870
+ researcherPhase2?: number | undefined;
1871
+ }>>>;
1872
+ }, "strip", z.ZodTypeAny, {
1873
+ enabled?: boolean | undefined;
1874
+ tokensavePath?: string | undefined;
1875
+ autoSync?: boolean | undefined;
1876
+ languageTier?: "core" | "extended" | "all" | undefined;
1877
+ manifestPath?: string | undefined;
1878
+ syncTimeoutMs?: number | undefined;
1879
+ queryTimeoutMs?: number | undefined;
1880
+ debounceMs?: number | undefined;
1881
+ hookQueueMax?: number | undefined;
1882
+ maxEngineRssMb?: number | undefined;
1883
+ exposeOnExternalMcp?: boolean | undefined;
1884
+ preflightBudgets?: {
1885
+ architect: number;
1886
+ curator: number;
1887
+ generator: number;
1888
+ evaluator: number;
1889
+ researcherPhase2: number;
1890
+ } | undefined;
1891
+ }, {
1892
+ enabled?: boolean | undefined;
1893
+ tokensavePath?: string | undefined;
1894
+ autoSync?: boolean | undefined;
1895
+ languageTier?: "core" | "extended" | "all" | undefined;
1896
+ manifestPath?: string | undefined;
1897
+ syncTimeoutMs?: number | undefined;
1898
+ queryTimeoutMs?: number | undefined;
1899
+ debounceMs?: number | undefined;
1900
+ hookQueueMax?: number | undefined;
1901
+ maxEngineRssMb?: number | undefined;
1902
+ exposeOnExternalMcp?: boolean | undefined;
1903
+ preflightBudgets?: {
1904
+ architect?: number | undefined;
1905
+ curator?: number | undefined;
1906
+ generator?: number | undefined;
1907
+ evaluator?: number | undefined;
1908
+ researcherPhase2?: number | undefined;
1909
+ } | undefined;
1910
+ }>>>;
1911
+ codeReview: z.ZodOptional<z.ZodOptional<z.ZodObject<{
1912
+ timeoutMs: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
1913
+ enabled: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
1914
+ model: z.ZodOptional<z.ZodDefault<z.ZodString>>;
1915
+ maxTurns: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
1916
+ provider: z.ZodOptional<z.ZodOptional<z.ZodString>>;
1917
+ endpoint: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
1918
+ providerConfig: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
1919
+ }, "strip", z.ZodTypeAny, {
1920
+ model?: string | undefined;
1921
+ provider?: string | undefined;
1922
+ endpoint?: string | null | undefined;
1923
+ providerConfig?: Record<string, unknown> | undefined;
1924
+ enabled?: boolean | undefined;
1925
+ maxTurns?: number | undefined;
1926
+ timeoutMs?: number | undefined;
1927
+ }, {
1928
+ model?: string | undefined;
1929
+ provider?: string | undefined;
1930
+ endpoint?: string | null | undefined;
1931
+ providerConfig?: Record<string, unknown> | undefined;
1932
+ enabled?: boolean | undefined;
1933
+ maxTurns?: number | undefined;
1934
+ timeoutMs?: number | undefined;
1935
+ }>>>;
1936
+ documenter: z.ZodOptional<z.ZodOptional<z.ZodObject<{
1937
+ timeoutMs: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
1938
+ enabled: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
1939
+ model: z.ZodOptional<z.ZodDefault<z.ZodString>>;
1940
+ maxTurns: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
1941
+ provider: z.ZodOptional<z.ZodOptional<z.ZodString>>;
1942
+ endpoint: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
1943
+ providerConfig: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
1944
+ }, "strip", z.ZodTypeAny, {
1945
+ model?: string | undefined;
1946
+ provider?: string | undefined;
1947
+ endpoint?: string | null | undefined;
1948
+ providerConfig?: Record<string, unknown> | undefined;
1949
+ enabled?: boolean | undefined;
1950
+ maxTurns?: number | undefined;
1951
+ timeoutMs?: number | undefined;
1952
+ }, {
1953
+ model?: string | undefined;
1954
+ provider?: string | undefined;
1955
+ endpoint?: string | null | undefined;
1956
+ providerConfig?: Record<string, unknown> | undefined;
1957
+ enabled?: boolean | undefined;
1958
+ maxTurns?: number | undefined;
1959
+ timeoutMs?: number | undefined;
1960
+ }>>>;
1961
+ observability: z.ZodOptional<z.ZodOptional<z.ZodObject<{
1962
+ providers: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodObject<{
1963
+ /** Unique name used in the obs__<name>__<tool> namespace prefix. */
1964
+ name: z.ZodString;
1965
+ kind: z.ZodEnum<["logs", "metrics", "traces", "errors", "custom"]>;
1966
+ /** Executable to spawn (e.g., "node", "/usr/local/bin/mcp-grafana"). */
1967
+ mcpCommand: z.ZodString;
1968
+ mcpArgs: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1969
+ /** Env vars passed to the child — may contain SECRETS (treat as opaque). */
1970
+ mcpEnv: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1971
+ enabled: z.ZodDefault<z.ZodBoolean>;
1972
+ }, "strip", z.ZodTypeAny, {
1973
+ name: string;
1974
+ enabled: boolean;
1975
+ kind: "custom" | "logs" | "metrics" | "traces" | "errors";
1976
+ mcpCommand: string;
1977
+ mcpArgs?: string[] | undefined;
1978
+ mcpEnv?: Record<string, string> | undefined;
1979
+ }, {
1980
+ name: string;
1981
+ kind: "custom" | "logs" | "metrics" | "traces" | "errors";
1982
+ mcpCommand: string;
1983
+ enabled?: boolean | undefined;
1984
+ mcpArgs?: string[] | undefined;
1985
+ mcpEnv?: Record<string, string> | undefined;
1986
+ }>, "many">>>;
1987
+ }, "strip", z.ZodTypeAny, {
1988
+ providers?: {
1989
+ name: string;
1990
+ enabled: boolean;
1991
+ kind: "custom" | "logs" | "metrics" | "traces" | "errors";
1992
+ mcpCommand: string;
1993
+ mcpArgs?: string[] | undefined;
1994
+ mcpEnv?: Record<string, string> | undefined;
1995
+ }[] | undefined;
1996
+ }, {
1997
+ providers?: {
1998
+ name: string;
1999
+ kind: "custom" | "logs" | "metrics" | "traces" | "errors";
2000
+ mcpCommand: string;
2001
+ enabled?: boolean | undefined;
2002
+ mcpArgs?: string[] | undefined;
2003
+ mcpEnv?: Record<string, string> | undefined;
2004
+ }[] | undefined;
2005
+ }>>>;
2006
+ incident: z.ZodOptional<z.ZodOptional<z.ZodObject<{
2007
+ autoPostmortem: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
2008
+ }, "strip", z.ZodTypeAny, {
2009
+ autoPostmortem?: boolean | undefined;
2010
+ }, {
2011
+ autoPostmortem?: boolean | undefined;
2012
+ }>>>;
2013
+ telemetry: z.ZodOptional<z.ZodOptional<z.ZodObject<{
2014
+ enabled: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
2015
+ }, "strip", z.ZodTypeAny, {
2016
+ enabled?: boolean | undefined;
2017
+ }, {
2018
+ enabled?: boolean | undefined;
2019
+ }>>>;
2020
+ architect: z.ZodOptional<z.ZodOptional<z.ZodObject<{
2021
+ panel: z.ZodOptional<z.ZodDefault<z.ZodObject<{
2022
+ enabled: z.ZodDefault<z.ZodBoolean>;
2023
+ lenses: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
2024
+ maxConcurrent: z.ZodDefault<z.ZodNumber>;
2025
+ }, "strip", z.ZodTypeAny, {
2026
+ enabled: boolean;
2027
+ lenses: string[];
2028
+ maxConcurrent: number;
2029
+ }, {
2030
+ enabled?: boolean | undefined;
2031
+ lenses?: string[] | undefined;
2032
+ maxConcurrent?: number | undefined;
2033
+ }>>>;
2034
+ }, "strip", z.ZodTypeAny, {
2035
+ panel?: {
2036
+ enabled: boolean;
2037
+ lenses: string[];
2038
+ maxConcurrent: number;
2039
+ } | undefined;
2040
+ }, {
2041
+ panel?: {
2042
+ enabled?: boolean | undefined;
2043
+ lenses?: string[] | undefined;
2044
+ maxConcurrent?: number | undefined;
2045
+ } | undefined;
2046
+ }>>>;
2047
+ history: z.ZodOptional<z.ZodOptional<z.ZodObject<{
2048
+ maxActiveLines: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
2049
+ }, "strip", z.ZodTypeAny, {
2050
+ maxActiveLines?: number | undefined;
2051
+ }, {
2052
+ maxActiveLines?: number | undefined;
2053
+ }>>>;
925
2054
  } & {
926
2055
  project: z.ZodObject<{
927
2056
  name: z.ZodOptional<z.ZodString>;
@@ -998,21 +2127,20 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
998
2127
  } | undefined;
999
2128
  description?: string | undefined;
1000
2129
  };
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;
2130
+ architect?: {
2131
+ panel?: {
2132
+ enabled: boolean;
2133
+ lenses: string[];
2134
+ maxConcurrent: number;
2135
+ } | undefined;
1008
2136
  } | undefined;
1009
2137
  curator?: {
1010
2138
  model?: string | undefined;
1011
2139
  provider?: string | undefined;
1012
2140
  endpoint?: string | null | undefined;
1013
2141
  providerConfig?: Record<string, unknown> | undefined;
1014
- maxTurns?: number | undefined;
1015
2142
  enabled?: boolean | undefined;
2143
+ maxTurns?: number | undefined;
1016
2144
  } | undefined;
1017
2145
  generator?: {
1018
2146
  model?: string | undefined;
@@ -1038,6 +2166,19 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
1038
2166
  }[] | undefined;
1039
2167
  maxIterations?: number | undefined;
1040
2168
  plugins?: string[] | undefined;
2169
+ panel?: {
2170
+ enabled: boolean;
2171
+ lenses: string[];
2172
+ maxConcurrent: number;
2173
+ } | undefined;
2174
+ } | undefined;
2175
+ planner?: {
2176
+ maxClarifications?: number | undefined;
2177
+ model?: string | undefined;
2178
+ contextFiles?: string[] | undefined;
2179
+ provider?: string | undefined;
2180
+ endpoint?: string | null | undefined;
2181
+ providerConfig?: Record<string, unknown> | undefined;
1041
2182
  } | undefined;
1042
2183
  sprint?: {
1043
2184
  maxSprints?: number | undefined;
@@ -1045,11 +2186,22 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
1045
2186
  sprintSize?: "small" | "medium" | "large" | undefined;
1046
2187
  } | undefined;
1047
2188
  pipeline?: {
2189
+ mode?: "autopilot" | "careful" | undefined;
1048
2190
  maxIterations?: number | undefined;
2191
+ maxCheckpointIterations?: number | undefined;
1049
2192
  requireApproval?: boolean | undefined;
1050
2193
  contextReset?: "always" | "on-threshold" | "never" | undefined;
1051
2194
  researchPhase?: boolean | undefined;
1052
2195
  architectPhase?: boolean | undefined;
2196
+ checkpointMechanism?: "noop" | "cli" | "disk" | "pr" | undefined;
2197
+ checkpointOverrides?: Record<string, "noop" | "cli" | "disk" | "pr"> | undefined;
2198
+ approvalTimeoutMs?: number | undefined;
2199
+ prPollMs?: number | undefined;
2200
+ allowAutopilotRiskyActions?: boolean | undefined;
2201
+ eventQueueBound?: number | undefined;
2202
+ worktreeRoot?: string | undefined;
2203
+ cleanupWorktreeOnSuccess?: boolean | undefined;
2204
+ engine?: "ts" | "skill" | "workflow" | undefined;
1053
2205
  } | undefined;
1054
2206
  commands?: {
1055
2207
  typecheck?: string | undefined;
@@ -1059,6 +2211,63 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
1059
2211
  test?: string | undefined;
1060
2212
  dev?: string | undefined;
1061
2213
  } | undefined;
2214
+ graph?: {
2215
+ enabled?: boolean | undefined;
2216
+ tokensavePath?: string | undefined;
2217
+ autoSync?: boolean | undefined;
2218
+ languageTier?: "core" | "extended" | "all" | undefined;
2219
+ manifestPath?: string | undefined;
2220
+ syncTimeoutMs?: number | undefined;
2221
+ queryTimeoutMs?: number | undefined;
2222
+ debounceMs?: number | undefined;
2223
+ hookQueueMax?: number | undefined;
2224
+ maxEngineRssMb?: number | undefined;
2225
+ exposeOnExternalMcp?: boolean | undefined;
2226
+ preflightBudgets?: {
2227
+ architect: number;
2228
+ curator: number;
2229
+ generator: number;
2230
+ evaluator: number;
2231
+ researcherPhase2: number;
2232
+ } | undefined;
2233
+ } | undefined;
2234
+ codeReview?: {
2235
+ model?: string | undefined;
2236
+ provider?: string | undefined;
2237
+ endpoint?: string | null | undefined;
2238
+ providerConfig?: Record<string, unknown> | undefined;
2239
+ enabled?: boolean | undefined;
2240
+ maxTurns?: number | undefined;
2241
+ timeoutMs?: number | undefined;
2242
+ } | undefined;
2243
+ documenter?: {
2244
+ model?: string | undefined;
2245
+ provider?: string | undefined;
2246
+ endpoint?: string | null | undefined;
2247
+ providerConfig?: Record<string, unknown> | undefined;
2248
+ enabled?: boolean | undefined;
2249
+ maxTurns?: number | undefined;
2250
+ timeoutMs?: number | undefined;
2251
+ } | undefined;
2252
+ observability?: {
2253
+ providers?: {
2254
+ name: string;
2255
+ enabled: boolean;
2256
+ kind: "custom" | "logs" | "metrics" | "traces" | "errors";
2257
+ mcpCommand: string;
2258
+ mcpArgs?: string[] | undefined;
2259
+ mcpEnv?: Record<string, string> | undefined;
2260
+ }[] | undefined;
2261
+ } | undefined;
2262
+ incident?: {
2263
+ autoPostmortem?: boolean | undefined;
2264
+ } | undefined;
2265
+ telemetry?: {
2266
+ enabled?: boolean | undefined;
2267
+ } | undefined;
2268
+ history?: {
2269
+ maxActiveLines?: number | undefined;
2270
+ } | undefined;
1062
2271
  }, {
1063
2272
  project: {
1064
2273
  mode: "greenfield" | "brownfield";
@@ -1075,21 +2284,20 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
1075
2284
  } | undefined;
1076
2285
  description?: string | undefined;
1077
2286
  };
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;
2287
+ architect?: {
2288
+ panel?: {
2289
+ enabled?: boolean | undefined;
2290
+ lenses?: string[] | undefined;
2291
+ maxConcurrent?: number | undefined;
2292
+ } | undefined;
1085
2293
  } | undefined;
1086
2294
  curator?: {
1087
2295
  model?: string | undefined;
1088
2296
  provider?: string | undefined;
1089
2297
  endpoint?: string | null | undefined;
1090
2298
  providerConfig?: Record<string, unknown> | undefined;
1091
- maxTurns?: number | undefined;
1092
2299
  enabled?: boolean | undefined;
2300
+ maxTurns?: number | undefined;
1093
2301
  } | undefined;
1094
2302
  generator?: {
1095
2303
  model?: string | undefined;
@@ -1115,6 +2323,19 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
1115
2323
  }[] | undefined;
1116
2324
  maxIterations?: number | undefined;
1117
2325
  plugins?: string[] | undefined;
2326
+ panel?: {
2327
+ enabled?: boolean | undefined;
2328
+ lenses?: string[] | undefined;
2329
+ maxConcurrent?: number | undefined;
2330
+ } | undefined;
2331
+ } | undefined;
2332
+ planner?: {
2333
+ maxClarifications?: number | undefined;
2334
+ model?: string | undefined;
2335
+ contextFiles?: string[] | undefined;
2336
+ provider?: string | undefined;
2337
+ endpoint?: string | null | undefined;
2338
+ providerConfig?: Record<string, unknown> | undefined;
1118
2339
  } | undefined;
1119
2340
  sprint?: {
1120
2341
  maxSprints?: number | undefined;
@@ -1122,11 +2343,22 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
1122
2343
  sprintSize?: "small" | "medium" | "large" | undefined;
1123
2344
  } | undefined;
1124
2345
  pipeline?: {
2346
+ mode?: "autopilot" | "careful" | undefined;
1125
2347
  maxIterations?: number | undefined;
2348
+ maxCheckpointIterations?: number | undefined;
1126
2349
  requireApproval?: boolean | undefined;
1127
2350
  contextReset?: "always" | "on-threshold" | "never" | undefined;
1128
2351
  researchPhase?: boolean | undefined;
1129
2352
  architectPhase?: boolean | undefined;
2353
+ checkpointMechanism?: "noop" | "cli" | "disk" | "pr" | undefined;
2354
+ checkpointOverrides?: Record<string, "noop" | "cli" | "disk" | "pr"> | undefined;
2355
+ approvalTimeoutMs?: number | undefined;
2356
+ prPollMs?: number | undefined;
2357
+ allowAutopilotRiskyActions?: boolean | undefined;
2358
+ eventQueueBound?: number | undefined;
2359
+ worktreeRoot?: string | undefined;
2360
+ cleanupWorktreeOnSuccess?: boolean | undefined;
2361
+ engine?: "ts" | "skill" | "workflow" | undefined;
1130
2362
  } | undefined;
1131
2363
  commands?: {
1132
2364
  typecheck?: string | undefined;
@@ -1136,6 +2368,63 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
1136
2368
  test?: string | undefined;
1137
2369
  dev?: string | undefined;
1138
2370
  } | undefined;
2371
+ graph?: {
2372
+ enabled?: boolean | undefined;
2373
+ tokensavePath?: string | undefined;
2374
+ autoSync?: boolean | undefined;
2375
+ languageTier?: "core" | "extended" | "all" | undefined;
2376
+ manifestPath?: string | undefined;
2377
+ syncTimeoutMs?: number | undefined;
2378
+ queryTimeoutMs?: number | undefined;
2379
+ debounceMs?: number | undefined;
2380
+ hookQueueMax?: number | undefined;
2381
+ maxEngineRssMb?: number | undefined;
2382
+ exposeOnExternalMcp?: boolean | undefined;
2383
+ preflightBudgets?: {
2384
+ architect?: number | undefined;
2385
+ curator?: number | undefined;
2386
+ generator?: number | undefined;
2387
+ evaluator?: number | undefined;
2388
+ researcherPhase2?: number | undefined;
2389
+ } | undefined;
2390
+ } | undefined;
2391
+ codeReview?: {
2392
+ model?: string | undefined;
2393
+ provider?: string | undefined;
2394
+ endpoint?: string | null | undefined;
2395
+ providerConfig?: Record<string, unknown> | undefined;
2396
+ enabled?: boolean | undefined;
2397
+ maxTurns?: number | undefined;
2398
+ timeoutMs?: number | undefined;
2399
+ } | undefined;
2400
+ documenter?: {
2401
+ model?: string | undefined;
2402
+ provider?: string | undefined;
2403
+ endpoint?: string | null | undefined;
2404
+ providerConfig?: Record<string, unknown> | undefined;
2405
+ enabled?: boolean | undefined;
2406
+ maxTurns?: number | undefined;
2407
+ timeoutMs?: number | undefined;
2408
+ } | undefined;
2409
+ observability?: {
2410
+ providers?: {
2411
+ name: string;
2412
+ kind: "custom" | "logs" | "metrics" | "traces" | "errors";
2413
+ mcpCommand: string;
2414
+ enabled?: boolean | undefined;
2415
+ mcpArgs?: string[] | undefined;
2416
+ mcpEnv?: Record<string, string> | undefined;
2417
+ }[] | undefined;
2418
+ } | undefined;
2419
+ incident?: {
2420
+ autoPostmortem?: boolean | undefined;
2421
+ } | undefined;
2422
+ telemetry?: {
2423
+ enabled?: boolean | undefined;
2424
+ } | undefined;
2425
+ history?: {
2426
+ maxActiveLines?: number | undefined;
2427
+ } | undefined;
1139
2428
  }>;
1140
2429
  export type PartialBoberConfig = z.infer<typeof PartialBoberConfigSchema>;
1141
2430
  /**