agent-bober 0.18.0 → 0.19.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 (824) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/CHANGELOG.md +11 -0
  3. package/README.md +245 -6
  4. package/agents/bober-art-director.md +100 -0
  5. package/agents/bober-design-critic.md +114 -0
  6. package/agents/bober-frontend-builder.md +101 -0
  7. package/agents/bober-security-auditor.md +193 -0
  8. package/agents/bober-security-verifier.md +104 -0
  9. package/agents/bober-seo-strategist.md +144 -0
  10. package/agents/bober-seo-verifier.md +103 -0
  11. package/dist/calendar/calendar-egress.d.ts +26 -0
  12. package/dist/calendar/calendar-egress.d.ts.map +1 -0
  13. package/dist/calendar/calendar-egress.js +35 -0
  14. package/dist/calendar/calendar-egress.js.map +1 -0
  15. package/dist/calendar/calendar-token.d.ts +34 -0
  16. package/dist/calendar/calendar-token.d.ts.map +1 -0
  17. package/dist/calendar/calendar-token.js +56 -0
  18. package/dist/calendar/calendar-token.js.map +1 -0
  19. package/dist/calendar/connector.d.ts +22 -0
  20. package/dist/calendar/connector.d.ts.map +1 -0
  21. package/dist/calendar/connector.js +3 -0
  22. package/dist/calendar/connector.js.map +1 -0
  23. package/dist/calendar/finding-source.d.ts +20 -0
  24. package/dist/calendar/finding-source.d.ts.map +1 -0
  25. package/dist/calendar/finding-source.js +35 -0
  26. package/dist/calendar/finding-source.js.map +1 -0
  27. package/dist/calendar/google-connector.d.ts +65 -0
  28. package/dist/calendar/google-connector.d.ts.map +1 -0
  29. package/dist/calendar/google-connector.js +129 -0
  30. package/dist/calendar/google-connector.js.map +1 -0
  31. package/dist/calendar/ics-connector.d.ts +12 -0
  32. package/dist/calendar/ics-connector.d.ts.map +1 -0
  33. package/dist/calendar/ics-connector.js +48 -0
  34. package/dist/calendar/ics-connector.js.map +1 -0
  35. package/dist/calendar/proposal-gate.d.ts +84 -0
  36. package/dist/calendar/proposal-gate.d.ts.map +1 -0
  37. package/dist/calendar/proposal-gate.js +126 -0
  38. package/dist/calendar/proposal-gate.js.map +1 -0
  39. package/dist/calendar/slotter.d.ts +34 -0
  40. package/dist/calendar/slotter.d.ts.map +1 -0
  41. package/dist/calendar/slotter.js +196 -0
  42. package/dist/calendar/slotter.js.map +1 -0
  43. package/dist/calendar/types.d.ts +162 -0
  44. package/dist/calendar/types.d.ts.map +1 -0
  45. package/dist/calendar/types.js +28 -0
  46. package/dist/calendar/types.js.map +1 -0
  47. package/dist/chat/chat-session.d.ts +27 -0
  48. package/dist/chat/chat-session.d.ts.map +1 -1
  49. package/dist/chat/chat-session.js +101 -1
  50. package/dist/chat/chat-session.js.map +1 -1
  51. package/dist/chat/slash-commands.d.ts +6 -2
  52. package/dist/chat/slash-commands.d.ts.map +1 -1
  53. package/dist/chat/slash-commands.js +22 -2
  54. package/dist/chat/slash-commands.js.map +1 -1
  55. package/dist/chat/turn-classifier.d.ts +3 -0
  56. package/dist/chat/turn-classifier.d.ts.map +1 -1
  57. package/dist/chat/turn-classifier.js +7 -0
  58. package/dist/chat/turn-classifier.js.map +1 -1
  59. package/dist/cli/commands/calendar.d.ts +75 -0
  60. package/dist/cli/commands/calendar.d.ts.map +1 -0
  61. package/dist/cli/commands/calendar.js +203 -0
  62. package/dist/cli/commands/calendar.js.map +1 -0
  63. package/dist/cli/commands/do.d.ts +52 -0
  64. package/dist/cli/commands/do.d.ts.map +1 -0
  65. package/dist/cli/commands/do.js +216 -0
  66. package/dist/cli/commands/do.js.map +1 -0
  67. package/dist/cli/commands/hub.d.ts +29 -0
  68. package/dist/cli/commands/hub.d.ts.map +1 -0
  69. package/dist/cli/commands/hub.js +233 -0
  70. package/dist/cli/commands/hub.js.map +1 -0
  71. package/dist/cli/commands/medical.d.ts +25 -0
  72. package/dist/cli/commands/medical.d.ts.map +1 -1
  73. package/dist/cli/commands/medical.js +233 -0
  74. package/dist/cli/commands/medical.js.map +1 -1
  75. package/dist/cli/commands/research.d.ts +41 -0
  76. package/dist/cli/commands/research.d.ts.map +1 -0
  77. package/dist/cli/commands/research.js +313 -0
  78. package/dist/cli/commands/research.js.map +1 -0
  79. package/dist/cli/commands/security-audit.d.ts +89 -0
  80. package/dist/cli/commands/security-audit.d.ts.map +1 -0
  81. package/dist/cli/commands/security-audit.js +238 -0
  82. package/dist/cli/commands/security-audit.js.map +1 -0
  83. package/dist/cli/commands/task.d.ts +64 -0
  84. package/dist/cli/commands/task.d.ts.map +1 -0
  85. package/dist/cli/commands/task.js +422 -0
  86. package/dist/cli/commands/task.js.map +1 -0
  87. package/dist/cli/commands/telegram.d.ts +10 -0
  88. package/dist/cli/commands/telegram.d.ts.map +1 -0
  89. package/dist/cli/commands/telegram.js +44 -0
  90. package/dist/cli/commands/telegram.js.map +1 -0
  91. package/dist/cli/commands/vault.d.ts +40 -0
  92. package/dist/cli/commands/vault.d.ts.map +1 -0
  93. package/dist/cli/commands/vault.js +122 -0
  94. package/dist/cli/commands/vault.js.map +1 -0
  95. package/dist/cli/index.js +33 -0
  96. package/dist/cli/index.js.map +1 -1
  97. package/dist/config/role-providers.d.ts +15 -0
  98. package/dist/config/role-providers.d.ts.map +1 -1
  99. package/dist/config/role-providers.js +8 -1
  100. package/dist/config/role-providers.js.map +1 -1
  101. package/dist/config/schema.d.ts +3522 -171
  102. package/dist/config/schema.d.ts.map +1 -1
  103. package/dist/config/schema.js +405 -2
  104. package/dist/config/schema.js.map +1 -1
  105. package/dist/do-bridge/coding-promoter.d.ts +19 -0
  106. package/dist/do-bridge/coding-promoter.d.ts.map +1 -0
  107. package/dist/do-bridge/coding-promoter.js +43 -0
  108. package/dist/do-bridge/coding-promoter.js.map +1 -0
  109. package/dist/do-bridge/finding-port.d.ts +88 -0
  110. package/dist/do-bridge/finding-port.d.ts.map +1 -0
  111. package/dist/do-bridge/finding-port.js +95 -0
  112. package/dist/do-bridge/finding-port.js.map +1 -0
  113. package/dist/do-bridge/launcher.d.ts +55 -0
  114. package/dist/do-bridge/launcher.d.ts.map +1 -0
  115. package/dist/do-bridge/launcher.js +37 -0
  116. package/dist/do-bridge/launcher.js.map +1 -0
  117. package/dist/do-bridge/promote.d.ts +50 -0
  118. package/dist/do-bridge/promote.d.ts.map +1 -0
  119. package/dist/do-bridge/promote.js +116 -0
  120. package/dist/do-bridge/promote.js.map +1 -0
  121. package/dist/do-bridge/reconcile.d.ts +50 -0
  122. package/dist/do-bridge/reconcile.d.ts.map +1 -0
  123. package/dist/do-bridge/reconcile.js +70 -0
  124. package/dist/do-bridge/reconcile.js.map +1 -0
  125. package/dist/do-bridge/registry.d.ts +23 -0
  126. package/dist/do-bridge/registry.d.ts.map +1 -0
  127. package/dist/do-bridge/registry.js +42 -0
  128. package/dist/do-bridge/registry.js.map +1 -0
  129. package/dist/do-bridge/types.d.ts +50 -0
  130. package/dist/do-bridge/types.d.ts.map +1 -0
  131. package/dist/do-bridge/types.js +17 -0
  132. package/dist/do-bridge/types.js.map +1 -0
  133. package/dist/fleet/child-config.d.ts.map +1 -1
  134. package/dist/fleet/child-config.js +7 -0
  135. package/dist/fleet/child-config.js.map +1 -1
  136. package/dist/fleet/coordinator.d.ts +27 -1
  137. package/dist/fleet/coordinator.d.ts.map +1 -1
  138. package/dist/fleet/coordinator.js +70 -0
  139. package/dist/fleet/coordinator.js.map +1 -1
  140. package/dist/fleet/critic-deep.d.ts +9 -1
  141. package/dist/fleet/critic-deep.d.ts.map +1 -1
  142. package/dist/fleet/critic-deep.js +5 -2
  143. package/dist/fleet/critic-deep.js.map +1 -1
  144. package/dist/fleet/decomposer-deep.d.ts +4 -11
  145. package/dist/fleet/decomposer-deep.d.ts.map +1 -1
  146. package/dist/fleet/decomposer-deep.js +5 -5
  147. package/dist/fleet/decomposer-deep.js.map +1 -1
  148. package/dist/fleet/index.d.ts +9 -0
  149. package/dist/fleet/index.d.ts.map +1 -1
  150. package/dist/fleet/index.js +87 -8
  151. package/dist/fleet/index.js.map +1 -1
  152. package/dist/fleet/manifest.d.ts +26 -0
  153. package/dist/fleet/manifest.d.ts.map +1 -1
  154. package/dist/fleet/manifest.js +8 -0
  155. package/dist/fleet/manifest.js.map +1 -1
  156. package/dist/fleet/reporter.d.ts +4 -1
  157. package/dist/fleet/reporter.d.ts.map +1 -1
  158. package/dist/fleet/reporter.js +2 -1
  159. package/dist/fleet/reporter.js.map +1 -1
  160. package/dist/fleet/scaffolder.d.ts +5 -1
  161. package/dist/fleet/scaffolder.d.ts.map +1 -1
  162. package/dist/fleet/scaffolder.js +11 -2
  163. package/dist/fleet/scaffolder.js.map +1 -1
  164. package/dist/graph/client.d.ts.map +1 -1
  165. package/dist/graph/client.js +115 -23
  166. package/dist/graph/client.js.map +1 -1
  167. package/dist/graph/mcp-client.d.ts +1 -0
  168. package/dist/graph/mcp-client.d.ts.map +1 -1
  169. package/dist/graph/mcp-client.js +58 -7
  170. package/dist/graph/mcp-client.js.map +1 -1
  171. package/dist/hub/collector.d.ts +12 -0
  172. package/dist/hub/collector.d.ts.map +1 -0
  173. package/dist/hub/collector.js +36 -0
  174. package/dist/hub/collector.js.map +1 -0
  175. package/dist/hub/finding-source.d.ts +22 -0
  176. package/dist/hub/finding-source.d.ts.map +1 -0
  177. package/dist/hub/finding-source.js +41 -0
  178. package/dist/hub/finding-source.js.map +1 -0
  179. package/dist/hub/finding-store.d.ts +68 -0
  180. package/dist/hub/finding-store.d.ts.map +1 -0
  181. package/dist/hub/finding-store.js +122 -0
  182. package/dist/hub/finding-store.js.map +1 -0
  183. package/dist/hub/finding.d.ts +54 -0
  184. package/dist/hub/finding.d.ts.map +1 -0
  185. package/dist/hub/finding.js +24 -0
  186. package/dist/hub/finding.js.map +1 -0
  187. package/dist/hub/gmail-to-task.d.ts +69 -0
  188. package/dist/hub/gmail-to-task.d.ts.map +1 -0
  189. package/dist/hub/gmail-to-task.js +102 -0
  190. package/dist/hub/gmail-to-task.js.map +1 -0
  191. package/dist/hub/hub-config.d.ts +18 -0
  192. package/dist/hub/hub-config.d.ts.map +1 -0
  193. package/dist/hub/hub-config.js +40 -0
  194. package/dist/hub/hub-config.js.map +1 -0
  195. package/dist/hub/judge.d.ts +30 -0
  196. package/dist/hub/judge.d.ts.map +1 -0
  197. package/dist/hub/judge.js +177 -0
  198. package/dist/hub/judge.js.map +1 -0
  199. package/dist/hub/lenses.d.ts +60 -0
  200. package/dist/hub/lenses.d.ts.map +1 -0
  201. package/dist/hub/lenses.js +123 -0
  202. package/dist/hub/lenses.js.map +1 -0
  203. package/dist/hub/priority-md.d.ts +21 -0
  204. package/dist/hub/priority-md.d.ts.map +1 -0
  205. package/dist/hub/priority-md.js +64 -0
  206. package/dist/hub/priority-md.js.map +1 -0
  207. package/dist/hub/repo-resolver.d.ts +11 -0
  208. package/dist/hub/repo-resolver.d.ts.map +1 -0
  209. package/dist/hub/repo-resolver.js +39 -0
  210. package/dist/hub/repo-resolver.js.map +1 -0
  211. package/dist/hub/scope.d.ts +39 -0
  212. package/dist/hub/scope.d.ts.map +1 -0
  213. package/dist/hub/scope.js +62 -0
  214. package/dist/hub/scope.js.map +1 -0
  215. package/dist/hub/task-inbox.d.ts +16 -0
  216. package/dist/hub/task-inbox.d.ts.map +1 -0
  217. package/dist/hub/task-inbox.js +39 -0
  218. package/dist/hub/task-inbox.js.map +1 -0
  219. package/dist/incident/resolution-verify.d.ts +2 -2
  220. package/dist/index.d.ts +2 -1
  221. package/dist/index.d.ts.map +1 -1
  222. package/dist/index.js +2 -1
  223. package/dist/index.js.map +1 -1
  224. package/dist/medical/adapters/apple-health.js +1 -1
  225. package/dist/medical/adapters/apple-health.js.map +1 -1
  226. package/dist/medical/analysis/cadence.d.ts +32 -0
  227. package/dist/medical/analysis/cadence.d.ts.map +1 -0
  228. package/dist/medical/analysis/cadence.js +72 -0
  229. package/dist/medical/analysis/cadence.js.map +1 -0
  230. package/dist/medical/analysis/cross-marker.d.ts +33 -0
  231. package/dist/medical/analysis/cross-marker.d.ts.map +1 -0
  232. package/dist/medical/analysis/cross-marker.js +79 -0
  233. package/dist/medical/analysis/cross-marker.js.map +1 -0
  234. package/dist/medical/analysis/finding-writer.d.ts +26 -0
  235. package/dist/medical/analysis/finding-writer.d.ts.map +1 -0
  236. package/dist/medical/analysis/finding-writer.js +60 -0
  237. package/dist/medical/analysis/finding-writer.js.map +1 -0
  238. package/dist/medical/analysis/finding.d.ts +63 -0
  239. package/dist/medical/analysis/finding.d.ts.map +1 -0
  240. package/dist/medical/analysis/finding.js +70 -0
  241. package/dist/medical/analysis/finding.js.map +1 -0
  242. package/dist/medical/analysis/review-pass.d.ts +76 -0
  243. package/dist/medical/analysis/review-pass.d.ts.map +1 -0
  244. package/dist/medical/analysis/review-pass.js +119 -0
  245. package/dist/medical/analysis/review-pass.js.map +1 -0
  246. package/dist/medical/analysis/trends.d.ts +36 -0
  247. package/dist/medical/analysis/trends.d.ts.map +1 -0
  248. package/dist/medical/analysis/trends.js +157 -0
  249. package/dist/medical/analysis/trends.js.map +1 -0
  250. package/dist/medical/health-store.d.ts +5 -0
  251. package/dist/medical/health-store.d.ts.map +1 -1
  252. package/dist/medical/health-store.js +10 -0
  253. package/dist/medical/health-store.js.map +1 -1
  254. package/dist/medical/lab-note.d.ts +72 -0
  255. package/dist/medical/lab-note.d.ts.map +1 -0
  256. package/dist/medical/lab-note.js +161 -0
  257. package/dist/medical/lab-note.js.map +1 -0
  258. package/dist/medical/lab-pdf-parser.d.ts +19 -0
  259. package/dist/medical/lab-pdf-parser.d.ts.map +1 -0
  260. package/dist/medical/lab-pdf-parser.js +57 -0
  261. package/dist/medical/lab-pdf-parser.js.map +1 -0
  262. package/dist/medical/lab-reindex.d.ts +24 -0
  263. package/dist/medical/lab-reindex.d.ts.map +1 -0
  264. package/dist/medical/lab-reindex.js +45 -0
  265. package/dist/medical/lab-reindex.js.map +1 -0
  266. package/dist/medical/lab-types.d.ts +75 -0
  267. package/dist/medical/lab-types.d.ts.map +1 -0
  268. package/dist/medical/lab-types.js +17 -0
  269. package/dist/medical/lab-types.js.map +1 -0
  270. package/dist/medical/profile.d.ts +96 -0
  271. package/dist/medical/profile.d.ts.map +1 -0
  272. package/dist/medical/profile.js +273 -0
  273. package/dist/medical/profile.js.map +1 -0
  274. package/dist/medical/recommend/context.d.ts +48 -0
  275. package/dist/medical/recommend/context.d.ts.map +1 -0
  276. package/dist/medical/recommend/context.js +109 -0
  277. package/dist/medical/recommend/context.js.map +1 -0
  278. package/dist/medical/recommend/judge-panel.d.ts +49 -0
  279. package/dist/medical/recommend/judge-panel.d.ts.map +1 -0
  280. package/dist/medical/recommend/judge-panel.js +164 -0
  281. package/dist/medical/recommend/judge-panel.js.map +1 -0
  282. package/dist/medical/recommend/lenses.d.ts +72 -0
  283. package/dist/medical/recommend/lenses.d.ts.map +1 -0
  284. package/dist/medical/recommend/lenses.js +220 -0
  285. package/dist/medical/recommend/lenses.js.map +1 -0
  286. package/dist/medical/recommend/recommend.d.ts +86 -0
  287. package/dist/medical/recommend/recommend.d.ts.map +1 -0
  288. package/dist/medical/recommend/recommend.js +211 -0
  289. package/dist/medical/recommend/recommend.js.map +1 -0
  290. package/dist/medical/recommend/types.d.ts +98 -0
  291. package/dist/medical/recommend/types.d.ts.map +1 -0
  292. package/dist/medical/recommend/types.js +20 -0
  293. package/dist/medical/recommend/types.js.map +1 -0
  294. package/dist/medical/recommend/urgency.d.ts +26 -0
  295. package/dist/medical/recommend/urgency.d.ts.map +1 -0
  296. package/dist/medical/recommend/urgency.js +124 -0
  297. package/dist/medical/recommend/urgency.js.map +1 -0
  298. package/dist/medical/research/online-research.d.ts +65 -0
  299. package/dist/medical/research/online-research.d.ts.map +1 -0
  300. package/dist/medical/research/online-research.js +101 -0
  301. package/dist/medical/research/online-research.js.map +1 -0
  302. package/dist/medical/research/research-note.d.ts +32 -0
  303. package/dist/medical/research/research-note.d.ts.map +1 -0
  304. package/dist/medical/research/research-note.js +55 -0
  305. package/dist/medical/research/research-note.js.map +1 -0
  306. package/dist/medical/supplements.d.ts +82 -0
  307. package/dist/medical/supplements.d.ts.map +1 -0
  308. package/dist/medical/supplements.js +173 -0
  309. package/dist/medical/supplements.js.map +1 -0
  310. package/dist/orchestrator/agentic-loop.d.ts +160 -1
  311. package/dist/orchestrator/agentic-loop.d.ts.map +1 -1
  312. package/dist/orchestrator/agentic-loop.js +350 -41
  313. package/dist/orchestrator/agentic-loop.js.map +1 -1
  314. package/dist/orchestrator/compaction.d.ts +47 -0
  315. package/dist/orchestrator/compaction.d.ts.map +1 -0
  316. package/dist/orchestrator/compaction.js +75 -0
  317. package/dist/orchestrator/compaction.js.map +1 -0
  318. package/dist/orchestrator/generator-agent.d.ts +19 -0
  319. package/dist/orchestrator/generator-agent.d.ts.map +1 -1
  320. package/dist/orchestrator/generator-agent.js +27 -1
  321. package/dist/orchestrator/generator-agent.js.map +1 -1
  322. package/dist/orchestrator/loop-events.d.ts +98 -0
  323. package/dist/orchestrator/loop-events.d.ts.map +1 -0
  324. package/dist/orchestrator/loop-events.js +2 -0
  325. package/dist/orchestrator/loop-events.js.map +1 -0
  326. package/dist/orchestrator/model-resolver.d.ts.map +1 -1
  327. package/dist/orchestrator/model-resolver.js +10 -6
  328. package/dist/orchestrator/model-resolver.js.map +1 -1
  329. package/dist/orchestrator/pipeline.d.ts +10 -1
  330. package/dist/orchestrator/pipeline.d.ts.map +1 -1
  331. package/dist/orchestrator/pipeline.js +102 -4
  332. package/dist/orchestrator/pipeline.js.map +1 -1
  333. package/dist/orchestrator/security-audit-types.d.ts +53 -0
  334. package/dist/orchestrator/security-audit-types.d.ts.map +1 -0
  335. package/dist/orchestrator/security-audit-types.js +10 -0
  336. package/dist/orchestrator/security-audit-types.js.map +1 -0
  337. package/dist/orchestrator/security-auditor-agent.d.ts +68 -0
  338. package/dist/orchestrator/security-auditor-agent.d.ts.map +1 -0
  339. package/dist/orchestrator/security-auditor-agent.js +482 -0
  340. package/dist/orchestrator/security-auditor-agent.js.map +1 -0
  341. package/dist/orchestrator/security-gate.d.ts +73 -0
  342. package/dist/orchestrator/security-gate.d.ts.map +1 -0
  343. package/dist/orchestrator/security-gate.js +174 -0
  344. package/dist/orchestrator/security-gate.js.map +1 -0
  345. package/dist/orchestrator/security-hub.d.ts +45 -0
  346. package/dist/orchestrator/security-hub.d.ts.map +1 -0
  347. package/dist/orchestrator/security-hub.js +147 -0
  348. package/dist/orchestrator/security-hub.js.map +1 -0
  349. package/dist/orchestrator/security-knowledge/benchmark/harness.d.ts +43 -0
  350. package/dist/orchestrator/security-knowledge/benchmark/harness.d.ts.map +1 -0
  351. package/dist/orchestrator/security-knowledge/benchmark/harness.js +13 -0
  352. package/dist/orchestrator/security-knowledge/benchmark/harness.js.map +1 -0
  353. package/dist/orchestrator/security-knowledge/diff-provider.d.ts +79 -0
  354. package/dist/orchestrator/security-knowledge/diff-provider.d.ts.map +1 -0
  355. package/dist/orchestrator/security-knowledge/diff-provider.js +320 -0
  356. package/dist/orchestrator/security-knowledge/diff-provider.js.map +1 -0
  357. package/dist/orchestrator/security-knowledge/index.d.ts +22 -0
  358. package/dist/orchestrator/security-knowledge/index.d.ts.map +1 -0
  359. package/dist/orchestrator/security-knowledge/index.js +66 -0
  360. package/dist/orchestrator/security-knowledge/index.js.map +1 -0
  361. package/dist/orchestrator/security-knowledge/parser.d.ts +9 -0
  362. package/dist/orchestrator/security-knowledge/parser.d.ts.map +1 -0
  363. package/dist/orchestrator/security-knowledge/parser.js +137 -0
  364. package/dist/orchestrator/security-knowledge/parser.js.map +1 -0
  365. package/dist/orchestrator/security-knowledge/registry.d.ts +25 -0
  366. package/dist/orchestrator/security-knowledge/registry.d.ts.map +1 -0
  367. package/dist/orchestrator/security-knowledge/registry.js +114 -0
  368. package/dist/orchestrator/security-knowledge/registry.js.map +1 -0
  369. package/dist/orchestrator/security-knowledge/resolver.d.ts +48 -0
  370. package/dist/orchestrator/security-knowledge/resolver.d.ts.map +1 -0
  371. package/dist/orchestrator/security-knowledge/resolver.js +63 -0
  372. package/dist/orchestrator/security-knowledge/resolver.js.map +1 -0
  373. package/dist/orchestrator/security-knowledge/selector.d.ts +18 -0
  374. package/dist/orchestrator/security-knowledge/selector.d.ts.map +1 -0
  375. package/dist/orchestrator/security-knowledge/selector.js +46 -0
  376. package/dist/orchestrator/security-knowledge/selector.js.map +1 -0
  377. package/dist/orchestrator/security-knowledge/signature.d.ts +37 -0
  378. package/dist/orchestrator/security-knowledge/signature.d.ts.map +1 -0
  379. package/dist/orchestrator/security-knowledge/signature.js +2 -0
  380. package/dist/orchestrator/security-knowledge/signature.js.map +1 -0
  381. package/dist/orchestrator/security-knowledge/supply-chain-inspector.d.ts +29 -0
  382. package/dist/orchestrator/security-knowledge/supply-chain-inspector.d.ts.map +1 -0
  383. package/dist/orchestrator/security-knowledge/supply-chain-inspector.js +211 -0
  384. package/dist/orchestrator/security-knowledge/supply-chain-inspector.js.map +1 -0
  385. package/dist/orchestrator/security-scanners.d.ts +126 -0
  386. package/dist/orchestrator/security-scanners.d.ts.map +1 -0
  387. package/dist/orchestrator/security-scanners.js +501 -0
  388. package/dist/orchestrator/security-scanners.js.map +1 -0
  389. package/dist/orchestrator/security-verifier-agent.d.ts +62 -0
  390. package/dist/orchestrator/security-verifier-agent.d.ts.map +1 -0
  391. package/dist/orchestrator/security-verifier-agent.js +230 -0
  392. package/dist/orchestrator/security-verifier-agent.js.map +1 -0
  393. package/dist/orchestrator/session-store.d.ts +95 -0
  394. package/dist/orchestrator/session-store.d.ts.map +1 -0
  395. package/dist/orchestrator/session-store.js +186 -0
  396. package/dist/orchestrator/session-store.js.map +1 -0
  397. package/dist/orchestrator/stack-knowledge.d.ts +17 -0
  398. package/dist/orchestrator/stack-knowledge.d.ts.map +1 -0
  399. package/dist/orchestrator/stack-knowledge.js +35 -0
  400. package/dist/orchestrator/stack-knowledge.js.map +1 -0
  401. package/dist/orchestrator/subagents.d.ts +62 -0
  402. package/dist/orchestrator/subagents.d.ts.map +1 -0
  403. package/dist/orchestrator/subagents.js +143 -0
  404. package/dist/orchestrator/subagents.js.map +1 -0
  405. package/dist/orchestrator/tools/executor.d.ts +68 -0
  406. package/dist/orchestrator/tools/executor.d.ts.map +1 -0
  407. package/dist/orchestrator/tools/executor.js +104 -0
  408. package/dist/orchestrator/tools/executor.js.map +1 -0
  409. package/dist/orchestrator/tools/mcp-bridge.d.ts +76 -0
  410. package/dist/orchestrator/tools/mcp-bridge.d.ts.map +1 -0
  411. package/dist/orchestrator/tools/mcp-bridge.js +154 -0
  412. package/dist/orchestrator/tools/mcp-bridge.js.map +1 -0
  413. package/dist/orchestrator/tools/schemas.d.ts.map +1 -1
  414. package/dist/orchestrator/tools/schemas.js +3 -0
  415. package/dist/orchestrator/tools/schemas.js.map +1 -1
  416. package/dist/orchestrator/workflow/budget.d.ts +24 -2
  417. package/dist/orchestrator/workflow/budget.d.ts.map +1 -1
  418. package/dist/orchestrator/workflow/budget.js +39 -1
  419. package/dist/orchestrator/workflow/budget.js.map +1 -1
  420. package/dist/orchestrator/workflow/engine.d.ts +1 -1
  421. package/dist/orchestrator/workflow/engine.d.ts.map +1 -1
  422. package/dist/orchestrator/workflow/selector.d.ts.map +1 -1
  423. package/dist/orchestrator/workflow/selector.js +10 -0
  424. package/dist/orchestrator/workflow/selector.js.map +1 -1
  425. package/dist/providers/anthropic.d.ts.map +1 -1
  426. package/dist/providers/anthropic.js +116 -26
  427. package/dist/providers/anthropic.js.map +1 -1
  428. package/dist/providers/claude-code.d.ts.map +1 -1
  429. package/dist/providers/claude-code.js +17 -0
  430. package/dist/providers/claude-code.js.map +1 -1
  431. package/dist/providers/cost-meter.d.ts +52 -0
  432. package/dist/providers/cost-meter.d.ts.map +1 -0
  433. package/dist/providers/cost-meter.js +81 -0
  434. package/dist/providers/cost-meter.js.map +1 -0
  435. package/dist/providers/factory.d.ts +6 -1
  436. package/dist/providers/factory.d.ts.map +1 -1
  437. package/dist/providers/factory.js +24 -5
  438. package/dist/providers/factory.js.map +1 -1
  439. package/dist/providers/google.d.ts.map +1 -1
  440. package/dist/providers/google.js +29 -0
  441. package/dist/providers/google.js.map +1 -1
  442. package/dist/providers/grounded-search.d.ts +128 -0
  443. package/dist/providers/grounded-search.d.ts.map +1 -0
  444. package/dist/providers/grounded-search.js +160 -0
  445. package/dist/providers/grounded-search.js.map +1 -0
  446. package/dist/providers/openai-compat.d.ts +15 -1
  447. package/dist/providers/openai-compat.d.ts.map +1 -1
  448. package/dist/providers/openai-compat.js +24 -0
  449. package/dist/providers/openai-compat.js.map +1 -1
  450. package/dist/providers/openai.d.ts +7 -0
  451. package/dist/providers/openai.d.ts.map +1 -1
  452. package/dist/providers/openai.js +95 -4
  453. package/dist/providers/openai.js.map +1 -1
  454. package/dist/providers/types.d.ts +88 -0
  455. package/dist/providers/types.d.ts.map +1 -1
  456. package/dist/research/cadence.d.ts +33 -0
  457. package/dist/research/cadence.d.ts.map +1 -0
  458. package/dist/research/cadence.js +55 -0
  459. package/dist/research/cadence.js.map +1 -0
  460. package/dist/research/digest.d.ts +80 -0
  461. package/dist/research/digest.d.ts.map +1 -0
  462. package/dist/research/digest.js +119 -0
  463. package/dist/research/digest.js.map +1 -0
  464. package/dist/research/egress.d.ts +28 -0
  465. package/dist/research/egress.d.ts.map +1 -0
  466. package/dist/research/egress.js +41 -0
  467. package/dist/research/egress.js.map +1 -0
  468. package/dist/research/job-store.d.ts +30 -0
  469. package/dist/research/job-store.d.ts.map +1 -0
  470. package/dist/research/job-store.js +100 -0
  471. package/dist/research/job-store.js.map +1 -0
  472. package/dist/research/model-diversity.d.ts +27 -0
  473. package/dist/research/model-diversity.d.ts.map +1 -0
  474. package/dist/research/model-diversity.js +52 -0
  475. package/dist/research/model-diversity.js.map +1 -0
  476. package/dist/research/note-writer.d.ts +36 -0
  477. package/dist/research/note-writer.d.ts.map +1 -0
  478. package/dist/research/note-writer.js +53 -0
  479. package/dist/research/note-writer.js.map +1 -0
  480. package/dist/research/online-retrieval.d.ts +27 -0
  481. package/dist/research/online-retrieval.d.ts.map +1 -0
  482. package/dist/research/online-retrieval.js +22 -0
  483. package/dist/research/online-retrieval.js.map +1 -0
  484. package/dist/research/runner.d.ts +80 -0
  485. package/dist/research/runner.d.ts.map +1 -0
  486. package/dist/research/runner.js +115 -0
  487. package/dist/research/runner.js.map +1 -0
  488. package/dist/research/scheduler.d.ts +61 -0
  489. package/dist/research/scheduler.d.ts.map +1 -0
  490. package/dist/research/scheduler.js +58 -0
  491. package/dist/research/scheduler.js.map +1 -0
  492. package/dist/research/types.d.ts +81 -0
  493. package/dist/research/types.d.ts.map +1 -0
  494. package/dist/research/types.js +57 -0
  495. package/dist/research/types.js.map +1 -0
  496. package/dist/seo/adapters/http.d.ts +43 -0
  497. package/dist/seo/adapters/http.d.ts.map +1 -0
  498. package/dist/seo/adapters/http.js +35 -0
  499. package/dist/seo/adapters/http.js.map +1 -0
  500. package/dist/seo/ai-visibility-provider.d.ts +171 -0
  501. package/dist/seo/ai-visibility-provider.d.ts.map +1 -0
  502. package/dist/seo/ai-visibility-provider.js +165 -0
  503. package/dist/seo/ai-visibility-provider.js.map +1 -0
  504. package/dist/seo/ai-visibility-scorer.d.ts +43 -0
  505. package/dist/seo/ai-visibility-scorer.d.ts.map +1 -0
  506. package/dist/seo/ai-visibility-scorer.js +102 -0
  507. package/dist/seo/ai-visibility-scorer.js.map +1 -0
  508. package/dist/seo/analyzer.d.ts +58 -0
  509. package/dist/seo/analyzer.d.ts.map +1 -0
  510. package/dist/seo/analyzer.js +265 -0
  511. package/dist/seo/analyzer.js.map +1 -0
  512. package/dist/seo/benchmark/harness.d.ts +56 -0
  513. package/dist/seo/benchmark/harness.d.ts.map +1 -0
  514. package/dist/seo/benchmark/harness.js +172 -0
  515. package/dist/seo/benchmark/harness.js.map +1 -0
  516. package/dist/seo/builder/approved-finding.d.ts +115 -0
  517. package/dist/seo/builder/approved-finding.d.ts.map +1 -0
  518. package/dist/seo/builder/approved-finding.js +145 -0
  519. package/dist/seo/builder/approved-finding.js.map +1 -0
  520. package/dist/seo/builder/build-runner.d.ts +41 -0
  521. package/dist/seo/builder/build-runner.d.ts.map +1 -0
  522. package/dist/seo/builder/build-runner.js +156 -0
  523. package/dist/seo/builder/build-runner.js.map +1 -0
  524. package/dist/seo/builder/draft-generators.d.ts +32 -0
  525. package/dist/seo/builder/draft-generators.d.ts.map +1 -0
  526. package/dist/seo/builder/draft-generators.js +31 -0
  527. package/dist/seo/builder/draft-generators.js.map +1 -0
  528. package/dist/seo/builder/draft-store.d.ts +30 -0
  529. package/dist/seo/builder/draft-store.d.ts.map +1 -0
  530. package/dist/seo/builder/draft-store.js +76 -0
  531. package/dist/seo/builder/draft-store.js.map +1 -0
  532. package/dist/seo/builder/draft-types.d.ts +36 -0
  533. package/dist/seo/builder/draft-types.d.ts.map +1 -0
  534. package/dist/seo/builder/draft-types.js +14 -0
  535. package/dist/seo/builder/draft-types.js.map +1 -0
  536. package/dist/seo/builder/hub-approved-source.d.ts +11 -0
  537. package/dist/seo/builder/hub-approved-source.d.ts.map +1 -0
  538. package/dist/seo/builder/hub-approved-source.js +48 -0
  539. package/dist/seo/builder/hub-approved-source.js.map +1 -0
  540. package/dist/seo/builder/seo-builder.d.ts +72 -0
  541. package/dist/seo/builder/seo-builder.d.ts.map +1 -0
  542. package/dist/seo/builder/seo-builder.js +72 -0
  543. package/dist/seo/builder/seo-builder.js.map +1 -0
  544. package/dist/seo/citation-gate.d.ts +36 -0
  545. package/dist/seo/citation-gate.d.ts.map +1 -0
  546. package/dist/seo/citation-gate.js +59 -0
  547. package/dist/seo/citation-gate.js.map +1 -0
  548. package/dist/seo/command.d.ts +11 -0
  549. package/dist/seo/command.d.ts.map +1 -0
  550. package/dist/seo/command.js +90 -0
  551. package/dist/seo/command.js.map +1 -0
  552. package/dist/seo/content-sanitizer.d.ts +56 -0
  553. package/dist/seo/content-sanitizer.d.ts.map +1 -0
  554. package/dist/seo/content-sanitizer.js +55 -0
  555. package/dist/seo/content-sanitizer.js.map +1 -0
  556. package/dist/seo/crawl-engine.d.ts +35 -0
  557. package/dist/seo/crawl-engine.d.ts.map +1 -0
  558. package/dist/seo/crawl-engine.js +2 -0
  559. package/dist/seo/crawl-engine.js.map +1 -0
  560. package/dist/seo/data-source.d.ts +156 -0
  561. package/dist/seo/data-source.d.ts.map +1 -0
  562. package/dist/seo/data-source.js +2 -0
  563. package/dist/seo/data-source.js.map +1 -0
  564. package/dist/seo/egress.d.ts +39 -0
  565. package/dist/seo/egress.d.ts.map +1 -0
  566. package/dist/seo/egress.js +64 -0
  567. package/dist/seo/egress.js.map +1 -0
  568. package/dist/seo/hub-emitter.d.ts +28 -0
  569. package/dist/seo/hub-emitter.d.ts.map +1 -0
  570. package/dist/seo/hub-emitter.js +95 -0
  571. package/dist/seo/hub-emitter.js.map +1 -0
  572. package/dist/seo/index.d.ts +42 -0
  573. package/dist/seo/index.d.ts.map +1 -0
  574. package/dist/seo/index.js +19 -0
  575. package/dist/seo/index.js.map +1 -0
  576. package/dist/seo/never-encode-filter.d.ts +45 -0
  577. package/dist/seo/never-encode-filter.d.ts.map +1 -0
  578. package/dist/seo/never-encode-filter.js +51 -0
  579. package/dist/seo/never-encode-filter.js.map +1 -0
  580. package/dist/seo/parser.d.ts +46 -0
  581. package/dist/seo/parser.d.ts.map +1 -0
  582. package/dist/seo/parser.js +113 -0
  583. package/dist/seo/parser.js.map +1 -0
  584. package/dist/seo/playbook-index.d.ts +19 -0
  585. package/dist/seo/playbook-index.d.ts.map +1 -0
  586. package/dist/seo/playbook-index.js +74 -0
  587. package/dist/seo/playbook-index.js.map +1 -0
  588. package/dist/seo/quota-governor.d.ts +100 -0
  589. package/dist/seo/quota-governor.d.ts.map +1 -0
  590. package/dist/seo/quota-governor.js +199 -0
  591. package/dist/seo/quota-governor.js.map +1 -0
  592. package/dist/seo/quota-ledger.d.ts +50 -0
  593. package/dist/seo/quota-ledger.d.ts.map +1 -0
  594. package/dist/seo/quota-ledger.js +95 -0
  595. package/dist/seo/quota-ledger.js.map +1 -0
  596. package/dist/seo/report-store.d.ts +30 -0
  597. package/dist/seo/report-store.d.ts.map +1 -0
  598. package/dist/seo/report-store.js +94 -0
  599. package/dist/seo/report-store.js.map +1 -0
  600. package/dist/seo/retriever.d.ts +34 -0
  601. package/dist/seo/retriever.d.ts.map +1 -0
  602. package/dist/seo/retriever.js +95 -0
  603. package/dist/seo/retriever.js.map +1 -0
  604. package/dist/seo/runner.d.ts +108 -0
  605. package/dist/seo/runner.d.ts.map +1 -0
  606. package/dist/seo/runner.js +512 -0
  607. package/dist/seo/runner.js.map +1 -0
  608. package/dist/seo/scrape-throttle.d.ts +84 -0
  609. package/dist/seo/scrape-throttle.d.ts.map +1 -0
  610. package/dist/seo/scrape-throttle.js +149 -0
  611. package/dist/seo/scrape-throttle.js.map +1 -0
  612. package/dist/seo/serp-provider.d.ts +52 -0
  613. package/dist/seo/serp-provider.d.ts.map +1 -0
  614. package/dist/seo/serp-provider.js +17 -0
  615. package/dist/seo/serp-provider.js.map +1 -0
  616. package/dist/seo/sources/ai-visibility-adapter.d.ts +87 -0
  617. package/dist/seo/sources/ai-visibility-adapter.d.ts.map +1 -0
  618. package/dist/seo/sources/ai-visibility-adapter.js +85 -0
  619. package/dist/seo/sources/ai-visibility-adapter.js.map +1 -0
  620. package/dist/seo/sources/api-spine-provider.d.ts +66 -0
  621. package/dist/seo/sources/api-spine-provider.d.ts.map +1 -0
  622. package/dist/seo/sources/api-spine-provider.js +68 -0
  623. package/dist/seo/sources/api-spine-provider.js.map +1 -0
  624. package/dist/seo/sources/citation-verifier.d.ts +95 -0
  625. package/dist/seo/sources/citation-verifier.d.ts.map +1 -0
  626. package/dist/seo/sources/citation-verifier.js +106 -0
  627. package/dist/seo/sources/citation-verifier.js.map +1 -0
  628. package/dist/seo/sources/crawl-source.d.ts +62 -0
  629. package/dist/seo/sources/crawl-source.d.ts.map +1 -0
  630. package/dist/seo/sources/crawl-source.js +87 -0
  631. package/dist/seo/sources/crawl-source.js.map +1 -0
  632. package/dist/seo/sources/damcrawler-crawl-engine.d.ts +151 -0
  633. package/dist/seo/sources/damcrawler-crawl-engine.d.ts.map +1 -0
  634. package/dist/seo/sources/damcrawler-crawl-engine.js +154 -0
  635. package/dist/seo/sources/damcrawler-crawl-engine.js.map +1 -0
  636. package/dist/seo/sources/damcrawler-serp-provider.d.ts +75 -0
  637. package/dist/seo/sources/damcrawler-serp-provider.d.ts.map +1 -0
  638. package/dist/seo/sources/damcrawler-serp-provider.js +60 -0
  639. package/dist/seo/sources/damcrawler-serp-provider.js.map +1 -0
  640. package/dist/seo/sources/dataforseo-adapter.d.ts +46 -0
  641. package/dist/seo/sources/dataforseo-adapter.d.ts.map +1 -0
  642. package/dist/seo/sources/dataforseo-adapter.js +335 -0
  643. package/dist/seo/sources/dataforseo-adapter.js.map +1 -0
  644. package/dist/seo/sources/dataforseo-serp-provider.d.ts +30 -0
  645. package/dist/seo/sources/dataforseo-serp-provider.d.ts.map +1 -0
  646. package/dist/seo/sources/dataforseo-serp-provider.js +20 -0
  647. package/dist/seo/sources/dataforseo-serp-provider.js.map +1 -0
  648. package/dist/seo/sources/engine-scrape-parser-chatgpt.d.ts +62 -0
  649. package/dist/seo/sources/engine-scrape-parser-chatgpt.d.ts.map +1 -0
  650. package/dist/seo/sources/engine-scrape-parser-chatgpt.js +72 -0
  651. package/dist/seo/sources/engine-scrape-parser-chatgpt.js.map +1 -0
  652. package/dist/seo/sources/engine-scrape-parser-perplexity.d.ts +10 -0
  653. package/dist/seo/sources/engine-scrape-parser-perplexity.d.ts.map +1 -0
  654. package/dist/seo/sources/engine-scrape-parser-perplexity.js +72 -0
  655. package/dist/seo/sources/engine-scrape-parser-perplexity.js.map +1 -0
  656. package/dist/seo/sources/gsc-adapter.d.ts +64 -0
  657. package/dist/seo/sources/gsc-adapter.d.ts.map +1 -0
  658. package/dist/seo/sources/gsc-adapter.js +221 -0
  659. package/dist/seo/sources/gsc-adapter.js.map +1 -0
  660. package/dist/seo/sources/local-export.d.ts +53 -0
  661. package/dist/seo/sources/local-export.d.ts.map +1 -0
  662. package/dist/seo/sources/local-export.js +307 -0
  663. package/dist/seo/sources/local-export.js.map +1 -0
  664. package/dist/seo/sources/mention-citation-extractor.d.ts +136 -0
  665. package/dist/seo/sources/mention-citation-extractor.d.ts.map +1 -0
  666. package/dist/seo/sources/mention-citation-extractor.js +272 -0
  667. package/dist/seo/sources/mention-citation-extractor.js.map +1 -0
  668. package/dist/seo/sources/scrape-arm-provider.d.ts +109 -0
  669. package/dist/seo/sources/scrape-arm-provider.d.ts.map +1 -0
  670. package/dist/seo/sources/scrape-arm-provider.js +129 -0
  671. package/dist/seo/sources/scrape-arm-provider.js.map +1 -0
  672. package/dist/seo/tracked-prompt-store.d.ts +33 -0
  673. package/dist/seo/tracked-prompt-store.d.ts.map +1 -0
  674. package/dist/seo/tracked-prompt-store.js +68 -0
  675. package/dist/seo/tracked-prompt-store.js.map +1 -0
  676. package/dist/seo/types.d.ts +128 -0
  677. package/dist/seo/types.d.ts.map +1 -0
  678. package/dist/seo/types.js +14 -0
  679. package/dist/seo/types.js.map +1 -0
  680. package/dist/seo/verifier.d.ts +34 -0
  681. package/dist/seo/verifier.d.ts.map +1 -0
  682. package/dist/seo/verifier.js +204 -0
  683. package/dist/seo/verifier.js.map +1 -0
  684. package/dist/seo/workflow-capabilities.d.ts +26 -0
  685. package/dist/seo/workflow-capabilities.d.ts.map +1 -0
  686. package/dist/seo/workflow-capabilities.js +12 -0
  687. package/dist/seo/workflow-capabilities.js.map +1 -0
  688. package/dist/state/facts.d.ts +5 -1
  689. package/dist/state/facts.d.ts.map +1 -1
  690. package/dist/state/facts.js +29 -19
  691. package/dist/state/facts.js.map +1 -1
  692. package/dist/state/index.d.ts +1 -1
  693. package/dist/state/index.d.ts.map +1 -1
  694. package/dist/state/index.js +1 -1
  695. package/dist/state/index.js.map +1 -1
  696. package/dist/state/outline-state.d.ts +0 -12
  697. package/dist/state/outline-state.d.ts.map +1 -1
  698. package/dist/state/outline-state.js +1 -18
  699. package/dist/state/outline-state.js.map +1 -1
  700. package/dist/state/security-audit-state.d.ts +20 -0
  701. package/dist/state/security-audit-state.d.ts.map +1 -0
  702. package/dist/state/security-audit-state.js +59 -0
  703. package/dist/state/security-audit-state.js.map +1 -0
  704. package/dist/teams/registry.d.ts.map +1 -1
  705. package/dist/teams/registry.js +17 -0
  706. package/dist/teams/registry.js.map +1 -1
  707. package/dist/telegram/bot.d.ts +137 -0
  708. package/dist/telegram/bot.d.ts.map +1 -0
  709. package/dist/telegram/bot.js +323 -0
  710. package/dist/telegram/bot.js.map +1 -0
  711. package/dist/telegram/digest.d.ts +19 -0
  712. package/dist/telegram/digest.d.ts.map +1 -0
  713. package/dist/telegram/digest.js +23 -0
  714. package/dist/telegram/digest.js.map +1 -0
  715. package/dist/telegram/fleet-view.d.ts +38 -0
  716. package/dist/telegram/fleet-view.d.ts.map +1 -0
  717. package/dist/telegram/fleet-view.js +98 -0
  718. package/dist/telegram/fleet-view.js.map +1 -0
  719. package/dist/telegram/handlers/approvals.d.ts +61 -0
  720. package/dist/telegram/handlers/approvals.d.ts.map +1 -0
  721. package/dist/telegram/handlers/approvals.js +122 -0
  722. package/dist/telegram/handlers/approvals.js.map +1 -0
  723. package/dist/telegram/handlers/capture.d.ts +43 -0
  724. package/dist/telegram/handlers/capture.d.ts.map +1 -0
  725. package/dist/telegram/handlers/capture.js +51 -0
  726. package/dist/telegram/handlers/capture.js.map +1 -0
  727. package/dist/telegram/handlers/prioritize.d.ts +50 -0
  728. package/dist/telegram/handlers/prioritize.d.ts.map +1 -0
  729. package/dist/telegram/handlers/prioritize.js +99 -0
  730. package/dist/telegram/handlers/prioritize.js.map +1 -0
  731. package/dist/telegram/handlers/upload.d.ts +105 -0
  732. package/dist/telegram/handlers/upload.d.ts.map +1 -0
  733. package/dist/telegram/handlers/upload.js +149 -0
  734. package/dist/telegram/handlers/upload.js.map +1 -0
  735. package/dist/telegram/keyboard.d.ts +48 -0
  736. package/dist/telegram/keyboard.d.ts.map +1 -0
  737. package/dist/telegram/keyboard.js +81 -0
  738. package/dist/telegram/keyboard.js.map +1 -0
  739. package/dist/telegram/outbound.d.ts +77 -0
  740. package/dist/telegram/outbound.d.ts.map +1 -0
  741. package/dist/telegram/outbound.js +45 -0
  742. package/dist/telegram/outbound.js.map +1 -0
  743. package/dist/telegram/router.d.ts +46 -0
  744. package/dist/telegram/router.d.ts.map +1 -0
  745. package/dist/telegram/router.js +63 -0
  746. package/dist/telegram/router.js.map +1 -0
  747. package/dist/telegram/streaming.d.ts +36 -0
  748. package/dist/telegram/streaming.d.ts.map +1 -0
  749. package/dist/telegram/streaming.js +55 -0
  750. package/dist/telegram/streaming.js.map +1 -0
  751. package/dist/telegram/whitelist.d.ts +20 -0
  752. package/dist/telegram/whitelist.d.ts.map +1 -0
  753. package/dist/telegram/whitelist.js +34 -0
  754. package/dist/telegram/whitelist.js.map +1 -0
  755. package/dist/utils/git.d.ts +0 -6
  756. package/dist/utils/git.d.ts.map +1 -1
  757. package/dist/utils/git.js +0 -19
  758. package/dist/utils/git.js.map +1 -1
  759. package/dist/utils/index.d.ts +1 -1
  760. package/dist/utils/index.d.ts.map +1 -1
  761. package/dist/utils/index.js +1 -1
  762. package/dist/utils/index.js.map +1 -1
  763. package/dist/vault/conventions.d.ts +23 -0
  764. package/dist/vault/conventions.d.ts.map +1 -0
  765. package/dist/vault/conventions.js +22 -0
  766. package/dist/vault/conventions.js.map +1 -0
  767. package/dist/vault/frontmatter.d.ts +47 -0
  768. package/dist/vault/frontmatter.d.ts.map +1 -0
  769. package/dist/vault/frontmatter.js +149 -0
  770. package/dist/vault/frontmatter.js.map +1 -0
  771. package/dist/vault/index-map.d.ts +35 -0
  772. package/dist/vault/index-map.d.ts.map +1 -0
  773. package/dist/vault/index-map.js +67 -0
  774. package/dist/vault/index-map.js.map +1 -0
  775. package/dist/vault/mcp-adapter.d.ts +96 -0
  776. package/dist/vault/mcp-adapter.d.ts.map +1 -0
  777. package/dist/vault/mcp-adapter.js +176 -0
  778. package/dist/vault/mcp-adapter.js.map +1 -0
  779. package/dist/vault/note-io.d.ts +29 -0
  780. package/dist/vault/note-io.d.ts.map +1 -0
  781. package/dist/vault/note-io.js +44 -0
  782. package/dist/vault/note-io.js.map +1 -0
  783. package/dist/vault/profile.d.ts +35 -0
  784. package/dist/vault/profile.d.ts.map +1 -0
  785. package/dist/vault/profile.js +50 -0
  786. package/dist/vault/profile.js.map +1 -0
  787. package/dist/vault/reindex.d.ts +55 -0
  788. package/dist/vault/reindex.d.ts.map +1 -0
  789. package/dist/vault/reindex.js +69 -0
  790. package/dist/vault/reindex.js.map +1 -0
  791. package/dist/vault/types.d.ts +25 -0
  792. package/dist/vault/types.d.ts.map +1 -0
  793. package/dist/vault/types.js +9 -0
  794. package/dist/vault/types.js.map +1 -0
  795. package/package.json +20 -4
  796. package/scripts/sync-targets.json +2 -1
  797. package/skills/bober.design/SKILL.md +190 -0
  798. package/skills/bober.design/references/1-anti-slop.md +102 -0
  799. package/skills/bober.design/references/2-design-brief.md +84 -0
  800. package/skills/bober.design/references/3-critique-rubric.md +62 -0
  801. package/skills/bober.design/references/4-copy-guide.md +43 -0
  802. package/skills/bober.plan/SKILL.md +15 -1
  803. package/skills/bober.run/SKILL.md +7 -4
  804. package/skills/bober.security-anchor/SKILL.md +172 -0
  805. package/skills/bober.security-audit/SKILL.md +288 -0
  806. package/skills/bober.security-dex-backend/SKILL.md +306 -0
  807. package/skills/bober.security-generic/SKILL.md +295 -0
  808. package/skills/bober.security-igaming/SKILL.md +290 -0
  809. package/skills/bober.security-node/SKILL.md +267 -0
  810. package/skills/bober.security-payments/SKILL.md +249 -0
  811. package/skills/bober.security-react/SKILL.md +194 -0
  812. package/skills/bober.security-solidity/SKILL.md +306 -0
  813. package/skills/bober.seo/SKILL.md +132 -0
  814. package/skills/bober.seo-ai-visibility/SKILL.md +110 -0
  815. package/skills/bober.seo-content-decay/SKILL.md +99 -0
  816. package/skills/bober.seo-generic/SKILL.md +173 -0
  817. package/skills/bober.seo-internal-linking/SKILL.md +87 -0
  818. package/skills/bober.seo-parasite-watch/SKILL.md +121 -0
  819. package/skills/bober.seo-rank-track/SKILL.md +98 -0
  820. package/skills/bober.seo-schema-audit/SKILL.md +97 -0
  821. package/skills/bober.seo-technical-audit/SKILL.md +113 -0
  822. package/skills/bober.seo-topical-map/SKILL.md +100 -0
  823. package/skills/bober.seo-verticals/SKILL.md +133 -0
  824. package/skills/bober.using-bober/SKILL.md +1 -0
@@ -35,6 +35,26 @@ export declare const SprintSizeSchema: z.ZodEnum<["small", "medium", "large"]>;
35
35
  export type SprintSize = z.infer<typeof SprintSizeSchema>;
36
36
  export declare const ContextResetSchema: z.ZodEnum<["always", "on-threshold", "never"]>;
37
37
  export type ContextReset = z.infer<typeof ContextResetSchema>;
38
+ /**
39
+ * Reasoning/output effort level (Sprint 3 — agent-loop capability port).
40
+ * Mirrors `ChatParams.effort` (`src/providers/types.ts`) value-for-value;
41
+ * only the Anthropic adapter forwards it (as `output_config.effort`).
42
+ */
43
+ export declare const EffortSchema: z.ZodEnum<["low", "medium", "high", "xhigh", "max"]>;
44
+ export type Effort = z.infer<typeof EffortSchema>;
45
+ /**
46
+ * Optional per-run USD spend ceiling (Sprint 3 — agent-loop capability port).
47
+ * `maxUsd: null` (or omitted) means uncapped — mirrors `Budget`'s own
48
+ * null-means-unlimited convention (`src/orchestrator/workflow/budget.ts`).
49
+ */
50
+ export declare const BudgetSectionSchema: z.ZodObject<{
51
+ maxUsd: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
52
+ }, "strip", z.ZodTypeAny, {
53
+ maxUsd?: number | null | undefined;
54
+ }, {
55
+ maxUsd?: number | null | undefined;
56
+ }>;
57
+ export type BudgetSection = z.infer<typeof BudgetSectionSchema>;
38
58
  /**
39
59
  * Well-known built-in evaluator strategy types.
40
60
  * The type field also accepts ANY string — unknown types are resolved
@@ -106,6 +126,7 @@ export declare const ProjectSectionSchema: z.ZodObject<{
106
126
  }, "strip", z.ZodTypeAny, {
107
127
  name: string;
108
128
  mode: "greenfield" | "brownfield";
129
+ preset?: string | undefined;
109
130
  stack?: {
110
131
  frontend?: string | undefined;
111
132
  backend?: string | undefined;
@@ -115,11 +136,11 @@ export declare const ProjectSectionSchema: z.ZodObject<{
115
136
  language?: string | undefined;
116
137
  other?: string[] | undefined;
117
138
  } | undefined;
118
- preset?: string | undefined;
119
139
  description?: string | undefined;
120
140
  }, {
121
141
  name: string;
122
142
  mode: "greenfield" | "brownfield";
143
+ preset?: string | undefined;
123
144
  stack?: {
124
145
  frontend?: string | undefined;
125
146
  backend?: string | undefined;
@@ -129,7 +150,6 @@ export declare const ProjectSectionSchema: z.ZodObject<{
129
150
  language?: string | undefined;
130
151
  other?: string[] | undefined;
131
152
  } | undefined;
132
- preset?: string | undefined;
133
153
  description?: string | undefined;
134
154
  }>;
135
155
  export type ProjectSection = z.infer<typeof ProjectSectionSchema>;
@@ -140,6 +160,16 @@ export declare const PlannerSectionSchema: z.ZodObject<{
140
160
  provider: z.ZodOptional<z.ZodString>;
141
161
  endpoint: z.ZodOptional<z.ZodNullable<z.ZodString>>;
142
162
  providerConfig: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
163
+ /** Reasoning/output effort forwarded to ChatParams.effort (Anthropic only). */
164
+ effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh", "max"]>>;
165
+ /** Optional per-run USD spend ceiling. */
166
+ budget: z.ZodOptional<z.ZodObject<{
167
+ maxUsd: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
168
+ }, "strip", z.ZodTypeAny, {
169
+ maxUsd?: number | null | undefined;
170
+ }, {
171
+ maxUsd?: number | null | undefined;
172
+ }>>;
143
173
  }, "strip", z.ZodTypeAny, {
144
174
  maxClarifications: number;
145
175
  model: string;
@@ -147,6 +177,10 @@ export declare const PlannerSectionSchema: z.ZodObject<{
147
177
  provider?: string | undefined;
148
178
  endpoint?: string | null | undefined;
149
179
  providerConfig?: Record<string, unknown> | undefined;
180
+ effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined;
181
+ budget?: {
182
+ maxUsd?: number | null | undefined;
183
+ } | undefined;
150
184
  }, {
151
185
  maxClarifications?: number | undefined;
152
186
  model?: string | undefined;
@@ -154,6 +188,10 @@ export declare const PlannerSectionSchema: z.ZodObject<{
154
188
  provider?: string | undefined;
155
189
  endpoint?: string | null | undefined;
156
190
  providerConfig?: Record<string, unknown> | undefined;
191
+ effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined;
192
+ budget?: {
193
+ maxUsd?: number | null | undefined;
194
+ } | undefined;
157
195
  }>;
158
196
  export type PlannerSection = z.infer<typeof PlannerSectionSchema>;
159
197
  export declare const GeneratorSectionSchema: z.ZodObject<{
@@ -164,6 +202,23 @@ export declare const GeneratorSectionSchema: z.ZodObject<{
164
202
  provider: z.ZodOptional<z.ZodString>;
165
203
  endpoint: z.ZodOptional<z.ZodNullable<z.ZodString>>;
166
204
  providerConfig: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
205
+ /** Reasoning/output effort forwarded to ChatParams.effort (Anthropic only). */
206
+ effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh", "max"]>>;
207
+ /** Optional per-run USD spend ceiling. */
208
+ budget: z.ZodOptional<z.ZodObject<{
209
+ maxUsd: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
210
+ }, "strip", z.ZodTypeAny, {
211
+ maxUsd?: number | null | undefined;
212
+ }, {
213
+ maxUsd?: number | null | undefined;
214
+ }>>;
215
+ /**
216
+ * When true, contiguous read-only tool calls (read_file/glob/grep) within a
217
+ * turn execute concurrently instead of strictly serially (ADR-2, agent-loop
218
+ * capability port sprint 4). Optional, no default — absent/false is
219
+ * byte-identical to the pre-change serial loop.
220
+ */
221
+ parallelReadOnlyTools: z.ZodOptional<z.ZodBoolean>;
167
222
  }, "strip", z.ZodTypeAny, {
168
223
  model: string;
169
224
  maxTurnsPerSprint: number;
@@ -172,14 +227,24 @@ export declare const GeneratorSectionSchema: z.ZodObject<{
172
227
  provider?: string | undefined;
173
228
  endpoint?: string | null | undefined;
174
229
  providerConfig?: Record<string, unknown> | undefined;
230
+ effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined;
231
+ budget?: {
232
+ maxUsd?: number | null | undefined;
233
+ } | undefined;
234
+ parallelReadOnlyTools?: boolean | undefined;
175
235
  }, {
176
236
  model?: string | undefined;
177
237
  provider?: string | undefined;
178
238
  endpoint?: string | null | undefined;
179
239
  providerConfig?: Record<string, unknown> | undefined;
240
+ effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined;
241
+ budget?: {
242
+ maxUsd?: number | null | undefined;
243
+ } | undefined;
180
244
  maxTurnsPerSprint?: number | undefined;
181
245
  autoCommit?: boolean | undefined;
182
246
  branchPattern?: string | undefined;
247
+ parallelReadOnlyTools?: boolean | undefined;
183
248
  }>;
184
249
  export type GeneratorSection = z.infer<typeof GeneratorSectionSchema>;
185
250
  export declare const EvaluatorSectionSchema: z.ZodObject<{
@@ -230,6 +295,16 @@ export declare const EvaluatorSectionSchema: z.ZodObject<{
230
295
  lenses?: string[] | undefined;
231
296
  maxConcurrent?: number | undefined;
232
297
  }>>;
298
+ /** Reasoning/output effort forwarded to ChatParams.effort (Anthropic only). */
299
+ effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh", "max"]>>;
300
+ /** Optional per-run USD spend ceiling. */
301
+ budget: z.ZodOptional<z.ZodObject<{
302
+ maxUsd: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
303
+ }, "strip", z.ZodTypeAny, {
304
+ maxUsd?: number | null | undefined;
305
+ }, {
306
+ maxUsd?: number | null | undefined;
307
+ }>>;
233
308
  }, "strip", z.ZodTypeAny, {
234
309
  model: string;
235
310
  strategies: {
@@ -249,6 +324,10 @@ export declare const EvaluatorSectionSchema: z.ZodObject<{
249
324
  provider?: string | undefined;
250
325
  endpoint?: string | null | undefined;
251
326
  providerConfig?: Record<string, unknown> | undefined;
327
+ effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined;
328
+ budget?: {
329
+ maxUsd?: number | null | undefined;
330
+ } | undefined;
252
331
  plugins?: string[] | undefined;
253
332
  }, {
254
333
  strategies: {
@@ -263,6 +342,10 @@ export declare const EvaluatorSectionSchema: z.ZodObject<{
263
342
  provider?: string | undefined;
264
343
  endpoint?: string | null | undefined;
265
344
  providerConfig?: Record<string, unknown> | undefined;
345
+ effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined;
346
+ budget?: {
347
+ maxUsd?: number | null | undefined;
348
+ } | undefined;
266
349
  maxIterations?: number | undefined;
267
350
  plugins?: string[] | undefined;
268
351
  panel?: {
@@ -307,11 +390,11 @@ export declare const SprintSectionSchema: z.ZodObject<{
307
390
  }, "strip", z.ZodTypeAny, {
308
391
  maxSprints: number;
309
392
  requireContracts: boolean;
310
- sprintSize: "small" | "medium" | "large";
393
+ sprintSize: "medium" | "small" | "large";
311
394
  }, {
312
395
  maxSprints?: number | undefined;
313
396
  requireContracts?: boolean | undefined;
314
- sprintSize?: "small" | "medium" | "large" | undefined;
397
+ sprintSize?: "medium" | "small" | "large" | undefined;
315
398
  }>;
316
399
  export type SprintSection = z.infer<typeof SprintSectionSchema>;
317
400
  export declare const CuratorSectionSchema: z.ZodObject<{
@@ -321,6 +404,16 @@ export declare const CuratorSectionSchema: z.ZodObject<{
321
404
  provider: z.ZodOptional<z.ZodString>;
322
405
  endpoint: z.ZodOptional<z.ZodNullable<z.ZodString>>;
323
406
  providerConfig: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
407
+ /** Reasoning/output effort forwarded to ChatParams.effort (Anthropic only). */
408
+ effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh", "max"]>>;
409
+ /** Optional per-run USD spend ceiling. */
410
+ budget: z.ZodOptional<z.ZodObject<{
411
+ maxUsd: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
412
+ }, "strip", z.ZodTypeAny, {
413
+ maxUsd?: number | null | undefined;
414
+ }, {
415
+ maxUsd?: number | null | undefined;
416
+ }>>;
324
417
  }, "strip", z.ZodTypeAny, {
325
418
  model: string;
326
419
  maxTurns: number;
@@ -328,11 +421,19 @@ export declare const CuratorSectionSchema: z.ZodObject<{
328
421
  provider?: string | undefined;
329
422
  endpoint?: string | null | undefined;
330
423
  providerConfig?: Record<string, unknown> | undefined;
424
+ effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined;
425
+ budget?: {
426
+ maxUsd?: number | null | undefined;
427
+ } | undefined;
331
428
  }, {
332
429
  model?: string | undefined;
333
430
  provider?: string | undefined;
334
431
  endpoint?: string | null | undefined;
335
432
  providerConfig?: Record<string, unknown> | undefined;
433
+ effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined;
434
+ budget?: {
435
+ maxUsd?: number | null | undefined;
436
+ } | undefined;
336
437
  maxTurns?: number | undefined;
337
438
  enabled?: boolean | undefined;
338
439
  }>;
@@ -364,54 +465,405 @@ export declare const CodeReviewSectionSchema: z.ZodObject<{
364
465
  }>;
365
466
  export type CodeReviewSection = z.infer<typeof CodeReviewSectionSchema>;
366
467
  /**
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.
468
+ * Configuration for the bober-security-auditor role (spec-20260712).
469
+ * Opt-in and default-off: `enabled: false` and the section itself is wired
470
+ * `.optional()` on BoberConfigSchema with no top-level default, so a config
471
+ * that omits `security` entirely stays byte-identical (no defaults leak in).
472
+ * `standaloneBlockOn`/`hub` are consumed by later sprints (gate + hub
473
+ * emission) but are declared here now to avoid re-touching this schema.
370
474
  */
371
- export declare const DocumenterSectionSchema: z.ZodObject<{
372
- timeoutMs: z.ZodDefault<z.ZodNumber>;
475
+ /**
476
+ * Sprint-6: opt-in real-diff configuration (ADR-5 — the orchestrator, not
477
+ * the auditor, owns the diff). `mode` defaults to `"estimated-files"`,
478
+ * today's exact behavior; `git-diff` is never the default (fail-safe
479
+ * opt-in, nonGoals[1]).
480
+ */
481
+ export declare const SecurityDiffConfigSchema: z.ZodObject<{
482
+ mode: z.ZodDefault<z.ZodEnum<["estimated-files", "git-diff"]>>;
483
+ baseRef: z.ZodOptional<z.ZodString>;
484
+ expandWithGraph: z.ZodDefault<z.ZodBoolean>;
485
+ }, "strip", z.ZodTypeAny, {
486
+ mode: "estimated-files" | "git-diff";
487
+ expandWithGraph: boolean;
488
+ baseRef?: string | undefined;
489
+ }, {
490
+ mode?: "estimated-files" | "git-diff" | undefined;
491
+ baseRef?: string | undefined;
492
+ expandWithGraph?: boolean | undefined;
493
+ }>;
494
+ export type SecurityDiffConfig = z.infer<typeof SecurityDiffConfigSchema>;
495
+ /**
496
+ * Sprint-7: opt-in supply-chain/dependency/secret scanner axis. `enabled`
497
+ * defaults false and `scanners` reuses `EvalStrategySchema` (the same shape
498
+ * `security.scanners` uses) — the supply-chain parser kinds (npm-audit,
499
+ * osv-scanner, gitleaks) are detected the same way as any other scanner.
500
+ */
501
+ export declare const SecuritySupplyChainConfigSchema: z.ZodObject<{
502
+ enabled: z.ZodDefault<z.ZodBoolean>;
503
+ scanners: z.ZodDefault<z.ZodArray<z.ZodObject<{
504
+ /** Strategy type — built-in name OR any custom name (e.g. "k6", "anchor-verify", "slither"). */
505
+ type: z.ZodString;
506
+ /** Path to a custom plugin module (for type "custom" or any non-built-in type). */
507
+ plugin: z.ZodOptional<z.ZodString>;
508
+ /** Shell command to run directly — shorthand alternative to writing a plugin file. */
509
+ command: z.ZodOptional<z.ZodString>;
510
+ /** Whether this strategy must pass for the sprint to pass. */
511
+ required: z.ZodBoolean;
512
+ /** Arbitrary config passed to the evaluator plugin. */
513
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
514
+ /** Human-readable label (defaults to type if not set). */
515
+ label: z.ZodOptional<z.ZodString>;
516
+ }, "strip", z.ZodTypeAny, {
517
+ type: string;
518
+ required: boolean;
519
+ plugin?: string | undefined;
520
+ command?: string | undefined;
521
+ config?: Record<string, unknown> | undefined;
522
+ label?: string | undefined;
523
+ }, {
524
+ type: string;
525
+ required: boolean;
526
+ plugin?: string | undefined;
527
+ command?: string | undefined;
528
+ config?: Record<string, unknown> | undefined;
529
+ label?: string | undefined;
530
+ }>, "many">>;
531
+ }, "strip", z.ZodTypeAny, {
532
+ enabled: boolean;
533
+ scanners: {
534
+ type: string;
535
+ required: boolean;
536
+ plugin?: string | undefined;
537
+ command?: string | undefined;
538
+ config?: Record<string, unknown> | undefined;
539
+ label?: string | undefined;
540
+ }[];
541
+ }, {
542
+ enabled?: boolean | undefined;
543
+ scanners?: {
544
+ type: string;
545
+ required: boolean;
546
+ plugin?: string | undefined;
547
+ command?: string | undefined;
548
+ config?: Record<string, unknown> | undefined;
549
+ label?: string | undefined;
550
+ }[] | undefined;
551
+ }>;
552
+ export type SecuritySupplyChainConfig = z.infer<typeof SecuritySupplyChainConfigSchema>;
553
+ /**
554
+ * Sprint-7: egress axis gating network-capable supply-chain scanners
555
+ * (npm-audit/osv-scanner hit a remote registry/vulnerability DB).
556
+ * `onlineResearch` defaults false (fail-safe opt-in), mirroring the
557
+ * research/medical online-research egress precedent.
558
+ */
559
+ export declare const SecurityEgressConfigSchema: z.ZodObject<{
560
+ onlineResearch: z.ZodDefault<z.ZodBoolean>;
561
+ }, "strip", z.ZodTypeAny, {
562
+ onlineResearch: boolean;
563
+ }, {
564
+ onlineResearch?: boolean | undefined;
565
+ }>;
566
+ export type SecurityEgressConfig = z.infer<typeof SecurityEgressConfigSchema>;
567
+ export declare const SecuritySectionSchema: z.ZodObject<{
373
568
  enabled: z.ZodDefault<z.ZodBoolean>;
569
+ /** Fail-closed: unparseable auditor output or a timeout blocks. Default true. */
570
+ failClosed: z.ZodDefault<z.ZodBoolean>;
571
+ timeoutMs: z.ZodDefault<z.ZodNumber>;
374
572
  model: z.ZodDefault<z.ZodString>;
375
573
  maxTurns: z.ZodDefault<z.ZodNumber>;
376
574
  provider: z.ZodOptional<z.ZodString>;
377
575
  endpoint: z.ZodOptional<z.ZodNullable<z.ZodString>>;
378
576
  providerConfig: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
577
+ /** Optional per-run USD spend ceiling. */
578
+ budget: z.ZodOptional<z.ZodObject<{
579
+ maxUsd: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
580
+ }, "strip", z.ZodTypeAny, {
581
+ maxUsd?: number | null | undefined;
582
+ }, {
583
+ maxUsd?: number | null | undefined;
584
+ }>>;
585
+ /** Opt-in deterministic scanner pre-filter strategies (e.g. slither, semgrep). */
586
+ scanners: z.ZodDefault<z.ZodArray<z.ZodObject<{
587
+ /** Strategy type — built-in name OR any custom name (e.g. "k6", "anchor-verify", "slither"). */
588
+ type: z.ZodString;
589
+ /** Path to a custom plugin module (for type "custom" or any non-built-in type). */
590
+ plugin: z.ZodOptional<z.ZodString>;
591
+ /** Shell command to run directly — shorthand alternative to writing a plugin file. */
592
+ command: z.ZodOptional<z.ZodString>;
593
+ /** Whether this strategy must pass for the sprint to pass. */
594
+ required: z.ZodBoolean;
595
+ /** Arbitrary config passed to the evaluator plugin. */
596
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
597
+ /** Human-readable label (defaults to type if not set). */
598
+ label: z.ZodOptional<z.ZodString>;
599
+ }, "strip", z.ZodTypeAny, {
600
+ type: string;
601
+ required: boolean;
602
+ plugin?: string | undefined;
603
+ command?: string | undefined;
604
+ config?: Record<string, unknown> | undefined;
605
+ label?: string | undefined;
606
+ }, {
607
+ type: string;
608
+ required: boolean;
609
+ plugin?: string | undefined;
610
+ command?: string | undefined;
611
+ config?: Record<string, unknown> | undefined;
612
+ label?: string | undefined;
613
+ }>, "many">>;
614
+ /** Blocking threshold for the standalone `bober security-audit` CLI (sprint 4). */
615
+ standaloneBlockOn: z.ZodDefault<z.ZodEnum<["critical", "important"]>>;
616
+ /** Whether findings are emitted to the priority hub (sprint 6). Default true. */
617
+ hub: z.ZodDefault<z.ZodBoolean>;
618
+ /**
619
+ * Opt-in real-diff provider config (sprint 6). OPTIONAL with no outer
620
+ * default — a config that omits `diff` entirely stays byte-identical
621
+ * (no defaults leak in), same guarantee as `security` itself (sc-6-3).
622
+ */
623
+ diff: z.ZodOptional<z.ZodObject<{
624
+ mode: z.ZodDefault<z.ZodEnum<["estimated-files", "git-diff"]>>;
625
+ baseRef: z.ZodOptional<z.ZodString>;
626
+ expandWithGraph: z.ZodDefault<z.ZodBoolean>;
627
+ }, "strip", z.ZodTypeAny, {
628
+ mode: "estimated-files" | "git-diff";
629
+ expandWithGraph: boolean;
630
+ baseRef?: string | undefined;
631
+ }, {
632
+ mode?: "estimated-files" | "git-diff" | undefined;
633
+ baseRef?: string | undefined;
634
+ expandWithGraph?: boolean | undefined;
635
+ }>>;
636
+ /**
637
+ * Sprint-7: opt-in supply-chain axis config. OPTIONAL with no outer
638
+ * default — a config that omits `supplyChain` entirely stays
639
+ * byte-identical (no defaults leak in), same guarantee as `diff` (sc-7-3).
640
+ */
641
+ supplyChain: z.ZodOptional<z.ZodObject<{
642
+ enabled: z.ZodDefault<z.ZodBoolean>;
643
+ scanners: z.ZodDefault<z.ZodArray<z.ZodObject<{
644
+ /** Strategy type — built-in name OR any custom name (e.g. "k6", "anchor-verify", "slither"). */
645
+ type: z.ZodString;
646
+ /** Path to a custom plugin module (for type "custom" or any non-built-in type). */
647
+ plugin: z.ZodOptional<z.ZodString>;
648
+ /** Shell command to run directly — shorthand alternative to writing a plugin file. */
649
+ command: z.ZodOptional<z.ZodString>;
650
+ /** Whether this strategy must pass for the sprint to pass. */
651
+ required: z.ZodBoolean;
652
+ /** Arbitrary config passed to the evaluator plugin. */
653
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
654
+ /** Human-readable label (defaults to type if not set). */
655
+ label: z.ZodOptional<z.ZodString>;
656
+ }, "strip", z.ZodTypeAny, {
657
+ type: string;
658
+ required: boolean;
659
+ plugin?: string | undefined;
660
+ command?: string | undefined;
661
+ config?: Record<string, unknown> | undefined;
662
+ label?: string | undefined;
663
+ }, {
664
+ type: string;
665
+ required: boolean;
666
+ plugin?: string | undefined;
667
+ command?: string | undefined;
668
+ config?: Record<string, unknown> | undefined;
669
+ label?: string | undefined;
670
+ }>, "many">>;
671
+ }, "strip", z.ZodTypeAny, {
672
+ enabled: boolean;
673
+ scanners: {
674
+ type: string;
675
+ required: boolean;
676
+ plugin?: string | undefined;
677
+ command?: string | undefined;
678
+ config?: Record<string, unknown> | undefined;
679
+ label?: string | undefined;
680
+ }[];
681
+ }, {
682
+ enabled?: boolean | undefined;
683
+ scanners?: {
684
+ type: string;
685
+ required: boolean;
686
+ plugin?: string | undefined;
687
+ command?: string | undefined;
688
+ config?: Record<string, unknown> | undefined;
689
+ label?: string | undefined;
690
+ }[] | undefined;
691
+ }>>;
692
+ /**
693
+ * Sprint-7: egress axis gating network-capable supply-chain scanners.
694
+ * OPTIONAL with no outer default (same byte-identical guarantee as above).
695
+ */
696
+ egress: z.ZodOptional<z.ZodObject<{
697
+ onlineResearch: z.ZodDefault<z.ZodBoolean>;
698
+ }, "strip", z.ZodTypeAny, {
699
+ onlineResearch: boolean;
700
+ }, {
701
+ onlineResearch?: boolean | undefined;
702
+ }>>;
703
+ /**
704
+ * Sprint-8: opt-in adversarial finder->verifier stage config. OPTIONAL
705
+ * with no outer default — a config that omits `verifier` entirely stays
706
+ * byte-identical (no defaults leak in), same guarantee as `diff` /
707
+ * `supplyChain` / `egress` above (sc-8-5). `maxTurns` defaults lower than
708
+ * the finder's (10 vs 20) — refutation needs fewer turns than the
709
+ * original audit.
710
+ */
711
+ verifier: z.ZodOptional<z.ZodObject<{
712
+ enabled: z.ZodDefault<z.ZodBoolean>;
713
+ model: z.ZodDefault<z.ZodString>;
714
+ maxTurns: z.ZodDefault<z.ZodNumber>;
715
+ }, "strip", z.ZodTypeAny, {
716
+ model: string;
717
+ maxTurns: number;
718
+ enabled: boolean;
719
+ }, {
720
+ model?: string | undefined;
721
+ maxTurns?: number | undefined;
722
+ enabled?: boolean | undefined;
723
+ }>>;
379
724
  }, "strip", z.ZodTypeAny, {
380
725
  model: string;
381
726
  maxTurns: number;
382
727
  enabled: boolean;
383
728
  timeoutMs: number;
729
+ failClosed: boolean;
730
+ scanners: {
731
+ type: string;
732
+ required: boolean;
733
+ plugin?: string | undefined;
734
+ command?: string | undefined;
735
+ config?: Record<string, unknown> | undefined;
736
+ label?: string | undefined;
737
+ }[];
738
+ standaloneBlockOn: "critical" | "important";
739
+ hub: boolean;
384
740
  provider?: string | undefined;
385
741
  endpoint?: string | null | undefined;
386
742
  providerConfig?: Record<string, unknown> | undefined;
743
+ budget?: {
744
+ maxUsd?: number | null | undefined;
745
+ } | undefined;
746
+ egress?: {
747
+ onlineResearch: boolean;
748
+ } | undefined;
749
+ diff?: {
750
+ mode: "estimated-files" | "git-diff";
751
+ expandWithGraph: boolean;
752
+ baseRef?: string | undefined;
753
+ } | undefined;
754
+ supplyChain?: {
755
+ enabled: boolean;
756
+ scanners: {
757
+ type: string;
758
+ required: boolean;
759
+ plugin?: string | undefined;
760
+ command?: string | undefined;
761
+ config?: Record<string, unknown> | undefined;
762
+ label?: string | undefined;
763
+ }[];
764
+ } | undefined;
765
+ verifier?: {
766
+ model: string;
767
+ maxTurns: number;
768
+ enabled: boolean;
769
+ } | undefined;
387
770
  }, {
388
771
  model?: string | undefined;
389
772
  provider?: string | undefined;
390
773
  endpoint?: string | null | undefined;
391
774
  providerConfig?: Record<string, unknown> | undefined;
775
+ budget?: {
776
+ maxUsd?: number | null | undefined;
777
+ } | undefined;
392
778
  maxTurns?: number | undefined;
393
779
  enabled?: boolean | undefined;
394
780
  timeoutMs?: number | undefined;
781
+ egress?: {
782
+ onlineResearch?: boolean | undefined;
783
+ } | undefined;
784
+ failClosed?: boolean | undefined;
785
+ scanners?: {
786
+ type: string;
787
+ required: boolean;
788
+ plugin?: string | undefined;
789
+ command?: string | undefined;
790
+ config?: Record<string, unknown> | undefined;
791
+ label?: string | undefined;
792
+ }[] | undefined;
793
+ standaloneBlockOn?: "critical" | "important" | undefined;
794
+ hub?: boolean | undefined;
795
+ diff?: {
796
+ mode?: "estimated-files" | "git-diff" | undefined;
797
+ baseRef?: string | undefined;
798
+ expandWithGraph?: boolean | undefined;
799
+ } | undefined;
800
+ supplyChain?: {
801
+ enabled?: boolean | undefined;
802
+ scanners?: {
803
+ type: string;
804
+ required: boolean;
805
+ plugin?: string | undefined;
806
+ command?: string | undefined;
807
+ config?: Record<string, unknown> | undefined;
808
+ label?: string | undefined;
809
+ }[] | undefined;
810
+ } | undefined;
811
+ verifier?: {
812
+ model?: string | undefined;
813
+ maxTurns?: number | undefined;
814
+ enabled?: boolean | undefined;
815
+ } | undefined;
395
816
  }>;
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>;
400
- export declare const PipelineSectionSchema: z.ZodObject<{
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>;
404
- requireApproval: z.ZodDefault<z.ZodBoolean>;
405
- contextReset: z.ZodDefault<z.ZodEnum<["always", "on-threshold", "never"]>>;
406
- researchPhase: z.ZodDefault<z.ZodBoolean>;
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). */
817
+ export type SecuritySection = z.infer<typeof SecuritySectionSchema>;
818
+ /**
819
+ * Per-sprint documenter writes docs immediately after a sprint's evaluator
820
+ * passes (instead of batching all docs into a final sprint). Advisory: a
821
+ * documenter failure never downgrades the already-passed sprint.
822
+ */
823
+ export declare const DocumenterSectionSchema: z.ZodObject<{
824
+ timeoutMs: z.ZodDefault<z.ZodNumber>;
825
+ enabled: z.ZodDefault<z.ZodBoolean>;
826
+ model: z.ZodDefault<z.ZodString>;
827
+ maxTurns: z.ZodDefault<z.ZodNumber>;
828
+ provider: z.ZodOptional<z.ZodString>;
829
+ endpoint: z.ZodOptional<z.ZodNullable<z.ZodString>>;
830
+ providerConfig: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
831
+ }, "strip", z.ZodTypeAny, {
832
+ model: string;
833
+ maxTurns: number;
834
+ enabled: boolean;
835
+ timeoutMs: number;
836
+ provider?: string | undefined;
837
+ endpoint?: string | null | undefined;
838
+ providerConfig?: Record<string, unknown> | undefined;
839
+ }, {
840
+ model?: string | undefined;
841
+ provider?: string | undefined;
842
+ endpoint?: string | null | undefined;
843
+ providerConfig?: Record<string, unknown> | undefined;
844
+ maxTurns?: number | undefined;
845
+ enabled?: boolean | undefined;
846
+ timeoutMs?: number | undefined;
847
+ }>;
848
+ export type DocumenterSection = z.infer<typeof DocumenterSectionSchema>;
849
+ /** Well-known checkpoint mechanism names. */
850
+ export declare const CheckpointMechanismSchema: z.ZodEnum<["noop", "cli", "disk", "pr"]>;
851
+ export type CheckpointMechanismName = z.infer<typeof CheckpointMechanismSchema>;
852
+ export declare const PipelineSectionSchema: z.ZodObject<{
853
+ maxIterations: z.ZodDefault<z.ZodNumber>;
854
+ /** Maximum times the router re-invokes a responsible agent after rejection. Default 3, min 1, max 10. */
855
+ maxCheckpointIterations: z.ZodDefault<z.ZodNumber>;
856
+ requireApproval: z.ZodDefault<z.ZodBoolean>;
857
+ contextReset: z.ZodDefault<z.ZodEnum<["always", "on-threshold", "never"]>>;
858
+ researchPhase: z.ZodDefault<z.ZodBoolean>;
859
+ architectPhase: z.ZodDefault<z.ZodBoolean>;
860
+ /** Pipeline execution mode. 'autopilot' auto-approves all checkpoints; 'careful' defaults to disk mechanism. Default: 'autopilot'. */
861
+ mode: z.ZodDefault<z.ZodEnum<["autopilot", "careful"]>>;
862
+ /** Global default checkpoint mechanism name. When unset, resolved at runtime from pipeline.mode. Optional — leave unset to use mode-based default. */
863
+ checkpointMechanism: z.ZodOptional<z.ZodEnum<["noop", "cli", "disk", "pr"]>>;
864
+ /** Per-checkpoint mechanism overrides. Keys are checkpoint IDs (e.g., 'post-research'); values are mechanism names. Default: {}. */
865
+ checkpointOverrides: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodEnum<["noop", "cli", "disk", "pr"]>>>;
866
+ /** How long (ms) the disk and CLI mechanisms wait for approval before timing out. Default: 86400000 (24 hours). */
415
867
  approvalTimeoutMs: z.ZodDefault<z.ZodNumber>;
416
868
  /** How often (ms) the PR mechanism polls for PR merge/close events. Default: 30000 (30 seconds). */
417
869
  prPollMs: z.ZodDefault<z.ZodNumber>;
@@ -438,9 +890,9 @@ export declare const PipelineSectionSchema: z.ZodObject<{
438
890
  * worktree is ALWAYS retained for debugging regardless of this flag. */
439
891
  cleanupWorktreeOnSuccess: z.ZodDefault<z.ZodBoolean>;
440
892
  /** 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"]>>;
893
+ engine: z.ZodDefault<z.ZodEnum<["ts", "skill", "workflow", "medical-sop"]>>;
442
894
  }, "strip", z.ZodTypeAny, {
443
- mode: "careful" | "autopilot";
895
+ mode: "autopilot" | "careful";
444
896
  maxIterations: number;
445
897
  maxCheckpointIterations: number;
446
898
  requireApproval: boolean;
@@ -454,10 +906,10 @@ export declare const PipelineSectionSchema: z.ZodObject<{
454
906
  eventQueueBound: number;
455
907
  worktreeRoot: string;
456
908
  cleanupWorktreeOnSuccess: boolean;
457
- engine: "ts" | "skill" | "workflow";
909
+ engine: "ts" | "skill" | "workflow" | "medical-sop";
458
910
  checkpointMechanism?: "noop" | "cli" | "disk" | "pr" | undefined;
459
911
  }, {
460
- mode?: "careful" | "autopilot" | undefined;
912
+ mode?: "autopilot" | "careful" | undefined;
461
913
  maxIterations?: number | undefined;
462
914
  maxCheckpointIterations?: number | undefined;
463
915
  requireApproval?: boolean | undefined;
@@ -472,7 +924,7 @@ export declare const PipelineSectionSchema: z.ZodObject<{
472
924
  eventQueueBound?: number | undefined;
473
925
  worktreeRoot?: string | undefined;
474
926
  cleanupWorktreeOnSuccess?: boolean | undefined;
475
- engine?: "ts" | "skill" | "workflow" | undefined;
927
+ engine?: "ts" | "skill" | "workflow" | "medical-sop" | undefined;
476
928
  }>;
477
929
  export type PipelineSection = z.infer<typeof PipelineSectionSchema>;
478
930
  export declare const CommandsSectionSchema: z.ZodObject<{
@@ -565,7 +1017,7 @@ export declare const GraphSectionSchema: z.ZodObject<{
565
1017
  }, "strip", z.ZodTypeAny, {
566
1018
  enabled: boolean;
567
1019
  autoSync: boolean;
568
- languageTier: "all" | "core" | "extended";
1020
+ languageTier: "core" | "extended" | "all";
569
1021
  manifestPath: string;
570
1022
  syncTimeoutMs: number;
571
1023
  queryTimeoutMs: number;
@@ -585,7 +1037,7 @@ export declare const GraphSectionSchema: z.ZodObject<{
585
1037
  enabled?: boolean | undefined;
586
1038
  tokensavePath?: string | undefined;
587
1039
  autoSync?: boolean | undefined;
588
- languageTier?: "all" | "core" | "extended" | undefined;
1040
+ languageTier?: "core" | "extended" | "all" | undefined;
589
1041
  manifestPath?: string | undefined;
590
1042
  syncTimeoutMs?: number | undefined;
591
1043
  queryTimeoutMs?: number | undefined;
@@ -622,15 +1074,15 @@ export declare const ObservabilityProviderSchema: z.ZodObject<{
622
1074
  mcpEnv: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
623
1075
  enabled: z.ZodDefault<z.ZodBoolean>;
624
1076
  }, "strip", z.ZodTypeAny, {
625
- kind: "custom" | "logs" | "metrics" | "traces" | "errors";
626
1077
  name: string;
627
1078
  enabled: boolean;
1079
+ kind: "custom" | "logs" | "metrics" | "traces" | "errors";
628
1080
  mcpCommand: string;
629
1081
  mcpArgs?: string[] | undefined;
630
1082
  mcpEnv?: Record<string, string> | undefined;
631
1083
  }, {
632
- kind: "custom" | "logs" | "metrics" | "traces" | "errors";
633
1084
  name: string;
1085
+ kind: "custom" | "logs" | "metrics" | "traces" | "errors";
634
1086
  mcpCommand: string;
635
1087
  enabled?: boolean | undefined;
636
1088
  mcpArgs?: string[] | undefined;
@@ -649,15 +1101,15 @@ export declare const ObservabilitySectionSchema: z.ZodObject<{
649
1101
  mcpEnv: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
650
1102
  enabled: z.ZodDefault<z.ZodBoolean>;
651
1103
  }, "strip", z.ZodTypeAny, {
652
- kind: "custom" | "logs" | "metrics" | "traces" | "errors";
653
1104
  name: string;
654
1105
  enabled: boolean;
1106
+ kind: "custom" | "logs" | "metrics" | "traces" | "errors";
655
1107
  mcpCommand: string;
656
1108
  mcpArgs?: string[] | undefined;
657
1109
  mcpEnv?: Record<string, string> | undefined;
658
1110
  }, {
659
- kind: "custom" | "logs" | "metrics" | "traces" | "errors";
660
1111
  name: string;
1112
+ kind: "custom" | "logs" | "metrics" | "traces" | "errors";
661
1113
  mcpCommand: string;
662
1114
  enabled?: boolean | undefined;
663
1115
  mcpArgs?: string[] | undefined;
@@ -665,17 +1117,17 @@ export declare const ObservabilitySectionSchema: z.ZodObject<{
665
1117
  }>, "many">>;
666
1118
  }, "strip", z.ZodTypeAny, {
667
1119
  providers: {
668
- kind: "custom" | "logs" | "metrics" | "traces" | "errors";
669
1120
  name: string;
670
1121
  enabled: boolean;
1122
+ kind: "custom" | "logs" | "metrics" | "traces" | "errors";
671
1123
  mcpCommand: string;
672
1124
  mcpArgs?: string[] | undefined;
673
1125
  mcpEnv?: Record<string, string> | undefined;
674
1126
  }[];
675
1127
  }, {
676
1128
  providers?: {
677
- kind: "custom" | "logs" | "metrics" | "traces" | "errors";
678
1129
  name: string;
1130
+ kind: "custom" | "logs" | "metrics" | "traces" | "errors";
679
1131
  mcpCommand: string;
680
1132
  enabled?: boolean | undefined;
681
1133
  mcpArgs?: string[] | undefined;
@@ -708,6 +1160,16 @@ export declare const TelemetrySectionSchema: z.ZodObject<{
708
1160
  enabled?: boolean | undefined;
709
1161
  }>;
710
1162
  export type TelemetrySection = z.infer<typeof TelemetrySectionSchema>;
1163
+ export declare const TaskInboxSectionSchema: z.ZodObject<{
1164
+ /** When true, `bober task from-gmail` may read a Gmail thread via the MCP
1165
+ * connector. Default false — zero Gmail egress unless explicitly opted in. */
1166
+ gmailEgress: z.ZodDefault<z.ZodBoolean>;
1167
+ }, "strip", z.ZodTypeAny, {
1168
+ gmailEgress: boolean;
1169
+ }, {
1170
+ gmailEgress?: boolean | undefined;
1171
+ }>;
1172
+ export type TaskInboxSection = z.infer<typeof TaskInboxSectionSchema>;
711
1173
  export declare const HistorySectionSchema: z.ZodObject<{
712
1174
  /** Max entries kept in the active history.jsonl before rotation moves the
713
1175
  * oldest overflow to history.archive.jsonl. Positive integer, default 2000. */
@@ -741,7 +1203,7 @@ export declare const TeamConfigSchema: z.ZodObject<{
741
1203
  /** Memory namespace segment — restricted to a safe path segment. */
742
1204
  memoryNamespace: z.ZodOptional<z.ZodString>;
743
1205
  /** Orchestration engine shape for this team. Mirrors the z.enum in PipelineSectionSchema. */
744
- pipelineShape: z.ZodOptional<z.ZodEnum<["ts", "skill", "workflow"]>>;
1206
+ pipelineShape: z.ZodOptional<z.ZodEnum<["ts", "skill", "workflow", "medical-sop"]>>;
745
1207
  /** Partial role -> provider override. Keys SHOULD be RoleName values. */
746
1208
  providers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
747
1209
  roles: z.ZodOptional<z.ZodArray<z.ZodObject<{
@@ -759,7 +1221,7 @@ export declare const TeamConfigSchema: z.ZodObject<{
759
1221
  providers?: Record<string, string> | undefined;
760
1222
  displayName?: string | undefined;
761
1223
  memoryNamespace?: string | undefined;
762
- pipelineShape?: "ts" | "skill" | "workflow" | undefined;
1224
+ pipelineShape?: "ts" | "skill" | "workflow" | "medical-sop" | undefined;
763
1225
  roles?: {
764
1226
  name: string;
765
1227
  displayName: string;
@@ -769,7 +1231,7 @@ export declare const TeamConfigSchema: z.ZodObject<{
769
1231
  providers?: Record<string, string> | undefined;
770
1232
  displayName?: string | undefined;
771
1233
  memoryNamespace?: string | undefined;
772
- pipelineShape?: "ts" | "skill" | "workflow" | undefined;
1234
+ pipelineShape?: "ts" | "skill" | "workflow" | "medical-sop" | undefined;
773
1235
  roles?: {
774
1236
  name: string;
775
1237
  displayName: string;
@@ -777,6 +1239,637 @@ export declare const TeamConfigSchema: z.ZodObject<{
777
1239
  guardrails?: unknown;
778
1240
  }>;
779
1241
  export type TeamConfig = z.infer<typeof TeamConfigSchema>;
1242
+ export declare const MedicalSectionSchema: z.ZodObject<{
1243
+ /** Egress opt-in axes (ADR-6). Both default false — zero outbound bytes by default. */
1244
+ egress: z.ZodOptional<z.ZodObject<{
1245
+ /** When true, cloud inference synthesis is permitted. Default false. */
1246
+ cloudInference: z.ZodDefault<z.ZodBoolean>;
1247
+ /** When true, literature retrieval (MedlinePlus) is permitted. Default false. */
1248
+ literatureRetrieval: z.ZodDefault<z.ZodBoolean>;
1249
+ /** When true, WHOOP device-connection egress is permitted (ADR-1). Default false. */
1250
+ deviceConnection: z.ZodDefault<z.ZodBoolean>;
1251
+ }, "strip", z.ZodTypeAny, {
1252
+ cloudInference: boolean;
1253
+ literatureRetrieval: boolean;
1254
+ deviceConnection: boolean;
1255
+ }, {
1256
+ cloudInference?: boolean | undefined;
1257
+ literatureRetrieval?: boolean | undefined;
1258
+ deviceConnection?: boolean | undefined;
1259
+ }>>;
1260
+ /**
1261
+ * Optional synthesis/critic model override (Sprint 3 — grounding-critic).
1262
+ * Absent => local Ollama default (openai-compat http://localhost:11434/v1, llama3).
1263
+ * A CLOUD provider here is only honoured when egress.cloudInference is true (fail-closed otherwise).
1264
+ */
1265
+ inference: z.ZodOptional<z.ZodObject<{
1266
+ provider: z.ZodOptional<z.ZodString>;
1267
+ endpoint: z.ZodOptional<z.ZodString>;
1268
+ model: z.ZodOptional<z.ZodString>;
1269
+ }, "strip", z.ZodTypeAny, {
1270
+ model?: string | undefined;
1271
+ provider?: string | undefined;
1272
+ endpoint?: string | undefined;
1273
+ }, {
1274
+ model?: string | undefined;
1275
+ provider?: string | undefined;
1276
+ endpoint?: string | undefined;
1277
+ }>>;
1278
+ /** Optional vault dir for medical Findings/notes. Default: <projectRoot>/.bober/medical/vault. */
1279
+ vaultDir: z.ZodOptional<z.ZodString>;
1280
+ }, "strip", z.ZodTypeAny, {
1281
+ egress?: {
1282
+ cloudInference: boolean;
1283
+ literatureRetrieval: boolean;
1284
+ deviceConnection: boolean;
1285
+ } | undefined;
1286
+ inference?: {
1287
+ model?: string | undefined;
1288
+ provider?: string | undefined;
1289
+ endpoint?: string | undefined;
1290
+ } | undefined;
1291
+ vaultDir?: string | undefined;
1292
+ }, {
1293
+ egress?: {
1294
+ cloudInference?: boolean | undefined;
1295
+ literatureRetrieval?: boolean | undefined;
1296
+ deviceConnection?: boolean | undefined;
1297
+ } | undefined;
1298
+ inference?: {
1299
+ model?: string | undefined;
1300
+ provider?: string | undefined;
1301
+ endpoint?: string | undefined;
1302
+ } | undefined;
1303
+ vaultDir?: string | undefined;
1304
+ }>;
1305
+ export type MedicalSection = z.infer<typeof MedicalSectionSchema>;
1306
+ export declare const FleetSectionSchema: z.ZodObject<{
1307
+ /** Absolute path to the shared WAL facts.db file. */
1308
+ blackboardDbPath: z.ZodString;
1309
+ /** Namespace scoping all findings for this fleet run. */
1310
+ blackboardNamespace: z.ZodString;
1311
+ /** This child's own subject identifier (equals the child folder name). */
1312
+ blackboardSubject: z.ZodString;
1313
+ /** Maximum number of exchange rounds (1–3). */
1314
+ maxRounds: z.ZodNumber;
1315
+ }, "strip", z.ZodTypeAny, {
1316
+ blackboardDbPath: string;
1317
+ blackboardNamespace: string;
1318
+ blackboardSubject: string;
1319
+ maxRounds: number;
1320
+ }, {
1321
+ blackboardDbPath: string;
1322
+ blackboardNamespace: string;
1323
+ blackboardSubject: string;
1324
+ maxRounds: number;
1325
+ }>;
1326
+ export type FleetSection = z.infer<typeof FleetSectionSchema>;
1327
+ /**
1328
+ * Configuration for one on-device Obsidian MCP server.
1329
+ * Mirrors ObservabilityProviderSchema but drops `kind` and adds `toolNames`.
1330
+ * mcpEnv may contain secrets — treat as opaque (never log, never stringify).
1331
+ */
1332
+ export declare const VaultObsidianSchema: z.ZodObject<{
1333
+ /** Unique server name (used in error messages — never secrets). */
1334
+ name: z.ZodString;
1335
+ /** Executable to spawn (e.g., "npx", "/usr/local/bin/obsidian-mcp"). */
1336
+ mcpCommand: z.ZodString;
1337
+ mcpArgs: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1338
+ /** Env vars passed to the child — may contain SECRETS (treat as opaque, never log). */
1339
+ mcpEnv: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1340
+ enabled: z.ZodDefault<z.ZodBoolean>;
1341
+ /**
1342
+ * Override the server tool names per logical operation.
1343
+ * When absent, cyanheads/obsidian-mcp-server defaults are used (see DEFAULT_VAULT_TOOL_NAMES).
1344
+ * Provide overrides when using a different MCP server (e.g., Obsidian Local REST API).
1345
+ */
1346
+ toolNames: z.ZodOptional<z.ZodObject<{
1347
+ readNote: z.ZodOptional<z.ZodString>;
1348
+ writeNote: z.ZodOptional<z.ZodString>;
1349
+ listNotes: z.ZodOptional<z.ZodString>;
1350
+ }, "strip", z.ZodTypeAny, {
1351
+ readNote?: string | undefined;
1352
+ writeNote?: string | undefined;
1353
+ listNotes?: string | undefined;
1354
+ }, {
1355
+ readNote?: string | undefined;
1356
+ writeNote?: string | undefined;
1357
+ listNotes?: string | undefined;
1358
+ }>>;
1359
+ }, "strip", z.ZodTypeAny, {
1360
+ name: string;
1361
+ enabled: boolean;
1362
+ mcpCommand: string;
1363
+ mcpArgs?: string[] | undefined;
1364
+ mcpEnv?: Record<string, string> | undefined;
1365
+ toolNames?: {
1366
+ readNote?: string | undefined;
1367
+ writeNote?: string | undefined;
1368
+ listNotes?: string | undefined;
1369
+ } | undefined;
1370
+ }, {
1371
+ name: string;
1372
+ mcpCommand: string;
1373
+ enabled?: boolean | undefined;
1374
+ mcpArgs?: string[] | undefined;
1375
+ mcpEnv?: Record<string, string> | undefined;
1376
+ toolNames?: {
1377
+ readNote?: string | undefined;
1378
+ writeNote?: string | undefined;
1379
+ listNotes?: string | undefined;
1380
+ } | undefined;
1381
+ }>;
1382
+ export type VaultObsidian = z.infer<typeof VaultObsidianSchema>;
1383
+ export declare const VaultSectionSchema: z.ZodObject<{
1384
+ obsidian: z.ZodOptional<z.ZodObject<{
1385
+ /** Unique server name (used in error messages — never secrets). */
1386
+ name: z.ZodString;
1387
+ /** Executable to spawn (e.g., "npx", "/usr/local/bin/obsidian-mcp"). */
1388
+ mcpCommand: z.ZodString;
1389
+ mcpArgs: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
1390
+ /** Env vars passed to the child — may contain SECRETS (treat as opaque, never log). */
1391
+ mcpEnv: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1392
+ enabled: z.ZodDefault<z.ZodBoolean>;
1393
+ /**
1394
+ * Override the server tool names per logical operation.
1395
+ * When absent, cyanheads/obsidian-mcp-server defaults are used (see DEFAULT_VAULT_TOOL_NAMES).
1396
+ * Provide overrides when using a different MCP server (e.g., Obsidian Local REST API).
1397
+ */
1398
+ toolNames: z.ZodOptional<z.ZodObject<{
1399
+ readNote: z.ZodOptional<z.ZodString>;
1400
+ writeNote: z.ZodOptional<z.ZodString>;
1401
+ listNotes: z.ZodOptional<z.ZodString>;
1402
+ }, "strip", z.ZodTypeAny, {
1403
+ readNote?: string | undefined;
1404
+ writeNote?: string | undefined;
1405
+ listNotes?: string | undefined;
1406
+ }, {
1407
+ readNote?: string | undefined;
1408
+ writeNote?: string | undefined;
1409
+ listNotes?: string | undefined;
1410
+ }>>;
1411
+ }, "strip", z.ZodTypeAny, {
1412
+ name: string;
1413
+ enabled: boolean;
1414
+ mcpCommand: string;
1415
+ mcpArgs?: string[] | undefined;
1416
+ mcpEnv?: Record<string, string> | undefined;
1417
+ toolNames?: {
1418
+ readNote?: string | undefined;
1419
+ writeNote?: string | undefined;
1420
+ listNotes?: string | undefined;
1421
+ } | undefined;
1422
+ }, {
1423
+ name: string;
1424
+ mcpCommand: string;
1425
+ enabled?: boolean | undefined;
1426
+ mcpArgs?: string[] | undefined;
1427
+ mcpEnv?: Record<string, string> | undefined;
1428
+ toolNames?: {
1429
+ readNote?: string | undefined;
1430
+ writeNote?: string | undefined;
1431
+ listNotes?: string | undefined;
1432
+ } | undefined;
1433
+ }>>;
1434
+ }, "strip", z.ZodTypeAny, {
1435
+ obsidian?: {
1436
+ name: string;
1437
+ enabled: boolean;
1438
+ mcpCommand: string;
1439
+ mcpArgs?: string[] | undefined;
1440
+ mcpEnv?: Record<string, string> | undefined;
1441
+ toolNames?: {
1442
+ readNote?: string | undefined;
1443
+ writeNote?: string | undefined;
1444
+ listNotes?: string | undefined;
1445
+ } | undefined;
1446
+ } | undefined;
1447
+ }, {
1448
+ obsidian?: {
1449
+ name: string;
1450
+ mcpCommand: string;
1451
+ enabled?: boolean | undefined;
1452
+ mcpArgs?: string[] | undefined;
1453
+ mcpEnv?: Record<string, string> | undefined;
1454
+ toolNames?: {
1455
+ readNote?: string | undefined;
1456
+ writeNote?: string | undefined;
1457
+ listNotes?: string | undefined;
1458
+ } | undefined;
1459
+ } | undefined;
1460
+ }>;
1461
+ export type VaultSection = z.infer<typeof VaultSectionSchema>;
1462
+ export declare const CalendarSectionSchema: z.ZodObject<{
1463
+ /** Egress opt-in axis (Sprint 3). Default false — zero cloud egress by default. */
1464
+ egress: z.ZodOptional<z.ZodObject<{
1465
+ /** When true, Google Calendar (cloud) egress is permitted. Default false (fail-closed). */
1466
+ cloudCalendar: z.ZodDefault<z.ZodBoolean>;
1467
+ }, "strip", z.ZodTypeAny, {
1468
+ cloudCalendar: boolean;
1469
+ }, {
1470
+ cloudCalendar?: boolean | undefined;
1471
+ }>>;
1472
+ /** Which connector to use. Default 'ics' (local, zero-egress). */
1473
+ connector: z.ZodDefault<z.ZodEnum<["ics", "google"]>>;
1474
+ /** Optional IANA timezone (informational only; not used in epoch-ms math). */
1475
+ timezone: z.ZodOptional<z.ZodString>;
1476
+ }, "strip", z.ZodTypeAny, {
1477
+ connector: "ics" | "google";
1478
+ egress?: {
1479
+ cloudCalendar: boolean;
1480
+ } | undefined;
1481
+ timezone?: string | undefined;
1482
+ }, {
1483
+ egress?: {
1484
+ cloudCalendar?: boolean | undefined;
1485
+ } | undefined;
1486
+ connector?: "ics" | "google" | undefined;
1487
+ timezone?: string | undefined;
1488
+ }>;
1489
+ export type CalendarSection = z.infer<typeof CalendarSectionSchema>;
1490
+ export declare const ResearchSectionSchema: z.ZodObject<{
1491
+ /** Egress opt-in axis. Default false — zero outbound bytes by default (fail-closed, ADR-6 lineage). */
1492
+ egress: z.ZodOptional<z.ZodObject<{
1493
+ /** When true, online/web research retrieval is permitted. Default false. */
1494
+ onlineResearch: z.ZodDefault<z.ZodBoolean>;
1495
+ }, "strip", z.ZodTypeAny, {
1496
+ onlineResearch: boolean;
1497
+ }, {
1498
+ onlineResearch?: boolean | undefined;
1499
+ }>>;
1500
+ }, "strip", z.ZodTypeAny, {
1501
+ egress?: {
1502
+ onlineResearch: boolean;
1503
+ } | undefined;
1504
+ }, {
1505
+ egress?: {
1506
+ onlineResearch?: boolean | undefined;
1507
+ } | undefined;
1508
+ }>;
1509
+ export type ResearchSection = z.infer<typeof ResearchSectionSchema>;
1510
+ /** One configured MCP server the opt-in bridge spawns to expose its tools as loop ToolDefs. */
1511
+ export declare const McpBridgeServerSchema: z.ZodObject<{
1512
+ /** Executable to spawn (e.g., "node", "npx", "/usr/local/bin/some-mcp-server"). */
1513
+ command: z.ZodString;
1514
+ args: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1515
+ }, "strip", z.ZodTypeAny, {
1516
+ command: string;
1517
+ args: string[];
1518
+ }, {
1519
+ command: string;
1520
+ args?: string[] | undefined;
1521
+ }>;
1522
+ export type McpBridgeServer = z.infer<typeof McpBridgeServerSchema>;
1523
+ export declare const ToolsSectionSchema: z.ZodObject<{
1524
+ /** Opt-in bridge exposing a configured MCP server's tools as agentic-loop
1525
+ * ToolDefs (agent-loop-capability-port sprint 10). Default false —
1526
+ * disabled means no MCP process/transport is ever created and the loop's
1527
+ * tool list is unchanged. Only constructed by a consumer that reads
1528
+ * `enabled === true` at the call site (never at config parse time). */
1529
+ mcpBridge: z.ZodOptional<z.ZodObject<{
1530
+ enabled: z.ZodDefault<z.ZodBoolean>;
1531
+ server: z.ZodObject<{
1532
+ /** Executable to spawn (e.g., "node", "npx", "/usr/local/bin/some-mcp-server"). */
1533
+ command: z.ZodString;
1534
+ args: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
1535
+ }, "strip", z.ZodTypeAny, {
1536
+ command: string;
1537
+ args: string[];
1538
+ }, {
1539
+ command: string;
1540
+ args?: string[] | undefined;
1541
+ }>;
1542
+ }, "strip", z.ZodTypeAny, {
1543
+ enabled: boolean;
1544
+ server: {
1545
+ command: string;
1546
+ args: string[];
1547
+ };
1548
+ }, {
1549
+ server: {
1550
+ command: string;
1551
+ args?: string[] | undefined;
1552
+ };
1553
+ enabled?: boolean | undefined;
1554
+ }>>;
1555
+ }, "strip", z.ZodTypeAny, {
1556
+ mcpBridge?: {
1557
+ enabled: boolean;
1558
+ server: {
1559
+ command: string;
1560
+ args: string[];
1561
+ };
1562
+ } | undefined;
1563
+ }, {
1564
+ mcpBridge?: {
1565
+ server: {
1566
+ command: string;
1567
+ args?: string[] | undefined;
1568
+ };
1569
+ enabled?: boolean | undefined;
1570
+ } | undefined;
1571
+ }>;
1572
+ export type ToolsSection = z.infer<typeof ToolsSectionSchema>;
1573
+ /**
1574
+ * Configuration for the bober-seo capability (spec-20260715). Opt-in and
1575
+ * default-off: the two live-data egress axes (`search-console`,
1576
+ * `serp-provider`) each default false, and the whole `seo` section is wired
1577
+ * `.optional()` on BoberConfigSchema with no top-level default, so a config
1578
+ * that omits `seo` entirely stays byte-identical (no defaults leak in) —
1579
+ * mirrors the security-section idiom (schema.ts:246-296) and the medical
1580
+ * nested-egress idiom (schema.ts:525-536).
1581
+ */
1582
+ export declare const SeoConfigSchema: z.ZodObject<{
1583
+ /**
1584
+ * Two live-data egress axes (search-console, serp-provider). Both default
1585
+ * false — the offline LocalExportSource path needs neither. OPTIONAL with
1586
+ * no outer default — a config that omits `egress` entirely stays
1587
+ * byte-identical, same guarantee as `security.egress` (schema.ts:280).
1588
+ */
1589
+ egress: z.ZodOptional<z.ZodObject<{
1590
+ /** When true, Google Search Console API egress is permitted. Default false. */
1591
+ "search-console": z.ZodDefault<z.ZodBoolean>;
1592
+ /** When true, DataForSEO SERP/keywords/backlinks egress is permitted. Default false. */
1593
+ "serp-provider": z.ZodDefault<z.ZodBoolean>;
1594
+ /** When true, live AI-visibility/GEO provider egress (BYOK grounded-LLM API spine) is permitted. Default false. */
1595
+ "ai-visibility": z.ZodDefault<z.ZodBoolean>;
1596
+ /** When true, damcrawler-backed site crawling (crawl/url-coverage/link-graph/SERP-scrape) is permitted. Default false. */
1597
+ "site-crawl": z.ZodDefault<z.ZodBoolean>;
1598
+ /**
1599
+ * When true, the AI-visibility UI-scrape arm's egress is permitted.
1600
+ * SEPARATE axis from `ai-visibility` (ADR-5, in-house-ai-visibility
1601
+ * architecture line 44) — default false and, as of Sprint 3, composes
1602
+ * NO provider yet (axis-only; the scrape arm lands Sprint 10).
1603
+ */
1604
+ "ai-visibility-scrape": z.ZodDefault<z.ZodBoolean>;
1605
+ }, "strip", z.ZodTypeAny, {
1606
+ "search-console": boolean;
1607
+ "serp-provider": boolean;
1608
+ "ai-visibility": boolean;
1609
+ "site-crawl": boolean;
1610
+ "ai-visibility-scrape": boolean;
1611
+ }, {
1612
+ "search-console"?: boolean | undefined;
1613
+ "serp-provider"?: boolean | undefined;
1614
+ "ai-visibility"?: boolean | undefined;
1615
+ "site-crawl"?: boolean | undefined;
1616
+ "ai-visibility-scrape"?: boolean | undefined;
1617
+ }>>;
1618
+ /**
1619
+ * Opt-in adversarial downgrade-only verifier stage (mirrors
1620
+ * `security.verifier`, schema.ts:289-295). OPTIONAL with no outer
1621
+ * default — omitting `verifier` entirely stays byte-identical.
1622
+ */
1623
+ verifier: z.ZodOptional<z.ZodObject<{
1624
+ enabled: z.ZodDefault<z.ZodBoolean>;
1625
+ }, "strip", z.ZodTypeAny, {
1626
+ enabled: boolean;
1627
+ }, {
1628
+ enabled?: boolean | undefined;
1629
+ }>>;
1630
+ /**
1631
+ * Per-run USD spend ceiling for PAYG DataForSEO calls. Reuses
1632
+ * `BudgetSectionSchema` (schema.ts:48-51) verbatim; null/absent = uncapped.
1633
+ */
1634
+ budget: z.ZodOptional<z.ZodObject<{
1635
+ maxUsd: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
1636
+ }, "strip", z.ZodTypeAny, {
1637
+ maxUsd?: number | null | undefined;
1638
+ }, {
1639
+ maxUsd?: number | null | undefined;
1640
+ }>>;
1641
+ /** Default domain/URL/local path used when the CLI omits [target]. */
1642
+ defaultTarget: z.ZodOptional<z.ZodString>;
1643
+ /** Citation-gate blocking threshold for the CI exit code. Default 'critical-uncited'. */
1644
+ blockThreshold: z.ZodDefault<z.ZodEnum<["never", "any-uncited", "critical-uncited"]>>;
1645
+ /**
1646
+ * Which SERP provider implementation serves the `serp` capability. OPTIONAL
1647
+ * with an INNER default on `provider` (not an outer default on the whole
1648
+ * object) — a config omitting `serp` entirely stays byte-identical
1649
+ * (`SeoConfigSchema.parse({})` leaks only `blockThreshold`, schema.test.ts:978-985).
1650
+ */
1651
+ serp: z.ZodOptional<z.ZodObject<{
1652
+ provider: z.ZodDefault<z.ZodEnum<["dataforseo", "damcrawler"]>>;
1653
+ }, "strip", z.ZodTypeAny, {
1654
+ provider: "dataforseo" | "damcrawler";
1655
+ }, {
1656
+ provider?: "dataforseo" | "damcrawler" | undefined;
1657
+ }>>;
1658
+ /**
1659
+ * In-house AI-visibility API-spine configuration (in-house-ai-visibility,
1660
+ * Sprint 3). OPTIONAL with NO outer default — a config that omits
1661
+ * `aiVisibility` entirely stays byte-identical (mirrors the `serp` idiom
1662
+ * above). Inner fields carry their own `.default(...)` and only
1663
+ * materialize when the object is present. `resolveAiVisibilityProvider`
1664
+ * (`../seo/ai-visibility-provider.js`) reads this to compose per-engine
1665
+ * arms; an engine with no matching API key is skipped (no-key-safe).
1666
+ */
1667
+ aiVisibility: z.ZodOptional<z.ZodObject<{
1668
+ /** Grounded-search samples per prompt per engine (N in the ADR-3 N-baked cost formula). Default 5. */
1669
+ samplesPerPrompt: z.ZodDefault<z.ZodNumber>;
1670
+ /**
1671
+ * Which engines to probe. `"perplexity"` is a valid value but has no
1672
+ * live provider mapper yet (Sprint 7 nonGoal) — configuring it yields
1673
+ * zero rows from that arm, not an error. Default `[]` (no engines
1674
+ * configured => `resolveAiVisibilityProvider` returns `undefined`).
1675
+ */
1676
+ engines: z.ZodDefault<z.ZodArray<z.ZodObject<{
1677
+ engine: z.ZodEnum<["anthropic", "openai", "perplexity"]>;
1678
+ /** Fixed USD price per grounded-search call for this engine. Default 0. */
1679
+ perCallUsd: z.ZodDefault<z.ZodNumber>;
1680
+ }, "strip", z.ZodTypeAny, {
1681
+ engine: "anthropic" | "openai" | "perplexity";
1682
+ perCallUsd: number;
1683
+ }, {
1684
+ engine: "anthropic" | "openai" | "perplexity";
1685
+ perCallUsd?: number | undefined;
1686
+ }>, "many">>;
1687
+ /**
1688
+ * Optional LLM-as-judge fuzzy-mention path (in-house-ai-visibility,
1689
+ * Sprint 8). OPTIONAL with NO outer default — mirrors `serp`/
1690
+ * `aiVisibility` above — a config that omits `judge` entirely stays
1691
+ * byte-identical (`SeoConfigSchema.parse({ aiVisibility: {} })` leaks
1692
+ * only `samplesPerPrompt`/`engines`, schema.test.ts:1089-1096). Only
1693
+ * the inner `enabled` flag carries a `.default(false)`. The judge is
1694
+ * OFF by default even when this object is present but `enabled` is
1695
+ * omitted.
1696
+ */
1697
+ judge: z.ZodOptional<z.ZodObject<{
1698
+ enabled: z.ZodDefault<z.ZodBoolean>;
1699
+ /** Optional model override for the judge call; falls back to the injected default when absent. */
1700
+ model: z.ZodOptional<z.ZodString>;
1701
+ }, "strip", z.ZodTypeAny, {
1702
+ enabled: boolean;
1703
+ model?: string | undefined;
1704
+ }, {
1705
+ model?: string | undefined;
1706
+ enabled?: boolean | undefined;
1707
+ }>>;
1708
+ /**
1709
+ * Gated damcrawler UI-scrape arm configuration (in-house-ai-
1710
+ * visibility, Sprint 9/10). OPTIONAL with NO outer default — mirrors
1711
+ * `serp`/`judge` above — a config that omits `scrape` entirely stays
1712
+ * byte-identical (`SeoConfigSchema.parse({ aiVisibility: {} })` leaks
1713
+ * only `samplesPerPrompt`/`engines`). Only the inner fields carry
1714
+ * `.default(...)`. Gated separately by the `ai-visibility-scrape`
1715
+ * egress axis (`../seo/egress.js`) — this object being present does
1716
+ * NOT itself enable scraping. `authSession`/`proxy` are operator-
1717
+ * supplied (nonGoal: no auth harvesting, no proxy sourcing); the rate/
1718
+ * proxy-budget caps are consumed by a follow-up sprint's
1719
+ * `ScrapeThrottle` runner wiring (Sprint 9 built the throttle itself
1720
+ * in isolation; Sprint 10 composes the arm behind an injected dep).
1721
+ */
1722
+ scrape: z.ZodOptional<z.ZodObject<{
1723
+ /** Which scrape-arm engines to compose. This sprint composes ONLY "chatgpt-ui"; "perplexity-ui" is a valid config value with no live parser yet (Sprint 11 nonGoal). Default []. */
1724
+ engines: z.ZodDefault<z.ZodArray<z.ZodEnum<["chatgpt-ui", "perplexity-ui"]>, "many">>;
1725
+ /** Operator-supplied auth session (storageState path / profile name / cookie blob) passed opaquely to damcrawler's scrape options. */
1726
+ authSession: z.ZodOptional<z.ZodString>;
1727
+ /** Operator-supplied proxy passed opaquely to damcrawler's scrape options. */
1728
+ proxy: z.ZodOptional<z.ZodString>;
1729
+ /** Fixed USD cost booked to the ScrapeThrottle proxy ledger per successful scrape. Default 0. */
1730
+ proxyUsdPerScrape: z.ZodDefault<z.ZodNumber>;
1731
+ /** ScrapeThrottle rate-window cap: max acquire() grants per engine per window. Default 10. */
1732
+ maxPerWindow: z.ZodDefault<z.ZodNumber>;
1733
+ /** ScrapeThrottle rate-window length in milliseconds. Default 60000 (1 minute). */
1734
+ windowMs: z.ZodDefault<z.ZodNumber>;
1735
+ /** ScrapeThrottle cumulative proxy-USD cap per engine. Default 0 (no proxy spend permitted until explicitly raised). */
1736
+ maxProxyUsd: z.ZodDefault<z.ZodNumber>;
1737
+ }, "strip", z.ZodTypeAny, {
1738
+ engines: ("chatgpt-ui" | "perplexity-ui")[];
1739
+ proxyUsdPerScrape: number;
1740
+ maxPerWindow: number;
1741
+ windowMs: number;
1742
+ maxProxyUsd: number;
1743
+ authSession?: string | undefined;
1744
+ proxy?: string | undefined;
1745
+ }, {
1746
+ engines?: ("chatgpt-ui" | "perplexity-ui")[] | undefined;
1747
+ authSession?: string | undefined;
1748
+ proxy?: string | undefined;
1749
+ proxyUsdPerScrape?: number | undefined;
1750
+ maxPerWindow?: number | undefined;
1751
+ windowMs?: number | undefined;
1752
+ maxProxyUsd?: number | undefined;
1753
+ }>>;
1754
+ }, "strip", z.ZodTypeAny, {
1755
+ samplesPerPrompt: number;
1756
+ engines: {
1757
+ engine: "anthropic" | "openai" | "perplexity";
1758
+ perCallUsd: number;
1759
+ }[];
1760
+ judge?: {
1761
+ enabled: boolean;
1762
+ model?: string | undefined;
1763
+ } | undefined;
1764
+ scrape?: {
1765
+ engines: ("chatgpt-ui" | "perplexity-ui")[];
1766
+ proxyUsdPerScrape: number;
1767
+ maxPerWindow: number;
1768
+ windowMs: number;
1769
+ maxProxyUsd: number;
1770
+ authSession?: string | undefined;
1771
+ proxy?: string | undefined;
1772
+ } | undefined;
1773
+ }, {
1774
+ samplesPerPrompt?: number | undefined;
1775
+ engines?: {
1776
+ engine: "anthropic" | "openai" | "perplexity";
1777
+ perCallUsd?: number | undefined;
1778
+ }[] | undefined;
1779
+ judge?: {
1780
+ model?: string | undefined;
1781
+ enabled?: boolean | undefined;
1782
+ } | undefined;
1783
+ scrape?: {
1784
+ engines?: ("chatgpt-ui" | "perplexity-ui")[] | undefined;
1785
+ authSession?: string | undefined;
1786
+ proxy?: string | undefined;
1787
+ proxyUsdPerScrape?: number | undefined;
1788
+ maxPerWindow?: number | undefined;
1789
+ windowMs?: number | undefined;
1790
+ maxProxyUsd?: number | undefined;
1791
+ } | undefined;
1792
+ }>>;
1793
+ }, "strip", z.ZodTypeAny, {
1794
+ blockThreshold: "never" | "any-uncited" | "critical-uncited";
1795
+ budget?: {
1796
+ maxUsd?: number | null | undefined;
1797
+ } | undefined;
1798
+ egress?: {
1799
+ "search-console": boolean;
1800
+ "serp-provider": boolean;
1801
+ "ai-visibility": boolean;
1802
+ "site-crawl": boolean;
1803
+ "ai-visibility-scrape": boolean;
1804
+ } | undefined;
1805
+ verifier?: {
1806
+ enabled: boolean;
1807
+ } | undefined;
1808
+ defaultTarget?: string | undefined;
1809
+ serp?: {
1810
+ provider: "dataforseo" | "damcrawler";
1811
+ } | undefined;
1812
+ aiVisibility?: {
1813
+ samplesPerPrompt: number;
1814
+ engines: {
1815
+ engine: "anthropic" | "openai" | "perplexity";
1816
+ perCallUsd: number;
1817
+ }[];
1818
+ judge?: {
1819
+ enabled: boolean;
1820
+ model?: string | undefined;
1821
+ } | undefined;
1822
+ scrape?: {
1823
+ engines: ("chatgpt-ui" | "perplexity-ui")[];
1824
+ proxyUsdPerScrape: number;
1825
+ maxPerWindow: number;
1826
+ windowMs: number;
1827
+ maxProxyUsd: number;
1828
+ authSession?: string | undefined;
1829
+ proxy?: string | undefined;
1830
+ } | undefined;
1831
+ } | undefined;
1832
+ }, {
1833
+ budget?: {
1834
+ maxUsd?: number | null | undefined;
1835
+ } | undefined;
1836
+ egress?: {
1837
+ "search-console"?: boolean | undefined;
1838
+ "serp-provider"?: boolean | undefined;
1839
+ "ai-visibility"?: boolean | undefined;
1840
+ "site-crawl"?: boolean | undefined;
1841
+ "ai-visibility-scrape"?: boolean | undefined;
1842
+ } | undefined;
1843
+ verifier?: {
1844
+ enabled?: boolean | undefined;
1845
+ } | undefined;
1846
+ defaultTarget?: string | undefined;
1847
+ blockThreshold?: "never" | "any-uncited" | "critical-uncited" | undefined;
1848
+ serp?: {
1849
+ provider?: "dataforseo" | "damcrawler" | undefined;
1850
+ } | undefined;
1851
+ aiVisibility?: {
1852
+ samplesPerPrompt?: number | undefined;
1853
+ engines?: {
1854
+ engine: "anthropic" | "openai" | "perplexity";
1855
+ perCallUsd?: number | undefined;
1856
+ }[] | undefined;
1857
+ judge?: {
1858
+ model?: string | undefined;
1859
+ enabled?: boolean | undefined;
1860
+ } | undefined;
1861
+ scrape?: {
1862
+ engines?: ("chatgpt-ui" | "perplexity-ui")[] | undefined;
1863
+ authSession?: string | undefined;
1864
+ proxy?: string | undefined;
1865
+ proxyUsdPerScrape?: number | undefined;
1866
+ maxPerWindow?: number | undefined;
1867
+ windowMs?: number | undefined;
1868
+ maxProxyUsd?: number | undefined;
1869
+ } | undefined;
1870
+ } | undefined;
1871
+ }>;
1872
+ export type SeoConfig = z.infer<typeof SeoConfigSchema>;
780
1873
  export declare const BoberConfigSchema: z.ZodObject<{
781
1874
  project: z.ZodObject<{
782
1875
  name: z.ZodString;
@@ -811,6 +1904,7 @@ export declare const BoberConfigSchema: z.ZodObject<{
811
1904
  }, "strip", z.ZodTypeAny, {
812
1905
  name: string;
813
1906
  mode: "greenfield" | "brownfield";
1907
+ preset?: string | undefined;
814
1908
  stack?: {
815
1909
  frontend?: string | undefined;
816
1910
  backend?: string | undefined;
@@ -820,11 +1914,11 @@ export declare const BoberConfigSchema: z.ZodObject<{
820
1914
  language?: string | undefined;
821
1915
  other?: string[] | undefined;
822
1916
  } | undefined;
823
- preset?: string | undefined;
824
1917
  description?: string | undefined;
825
1918
  }, {
826
1919
  name: string;
827
1920
  mode: "greenfield" | "brownfield";
1921
+ preset?: string | undefined;
828
1922
  stack?: {
829
1923
  frontend?: string | undefined;
830
1924
  backend?: string | undefined;
@@ -834,7 +1928,6 @@ export declare const BoberConfigSchema: z.ZodObject<{
834
1928
  language?: string | undefined;
835
1929
  other?: string[] | undefined;
836
1930
  } | undefined;
837
- preset?: string | undefined;
838
1931
  description?: string | undefined;
839
1932
  }>;
840
1933
  planner: z.ZodObject<{
@@ -844,6 +1937,16 @@ export declare const BoberConfigSchema: z.ZodObject<{
844
1937
  provider: z.ZodOptional<z.ZodString>;
845
1938
  endpoint: z.ZodOptional<z.ZodNullable<z.ZodString>>;
846
1939
  providerConfig: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1940
+ /** Reasoning/output effort forwarded to ChatParams.effort (Anthropic only). */
1941
+ effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh", "max"]>>;
1942
+ /** Optional per-run USD spend ceiling. */
1943
+ budget: z.ZodOptional<z.ZodObject<{
1944
+ maxUsd: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
1945
+ }, "strip", z.ZodTypeAny, {
1946
+ maxUsd?: number | null | undefined;
1947
+ }, {
1948
+ maxUsd?: number | null | undefined;
1949
+ }>>;
847
1950
  }, "strip", z.ZodTypeAny, {
848
1951
  maxClarifications: number;
849
1952
  model: string;
@@ -851,6 +1954,10 @@ export declare const BoberConfigSchema: z.ZodObject<{
851
1954
  provider?: string | undefined;
852
1955
  endpoint?: string | null | undefined;
853
1956
  providerConfig?: Record<string, unknown> | undefined;
1957
+ effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined;
1958
+ budget?: {
1959
+ maxUsd?: number | null | undefined;
1960
+ } | undefined;
854
1961
  }, {
855
1962
  maxClarifications?: number | undefined;
856
1963
  model?: string | undefined;
@@ -858,6 +1965,10 @@ export declare const BoberConfigSchema: z.ZodObject<{
858
1965
  provider?: string | undefined;
859
1966
  endpoint?: string | null | undefined;
860
1967
  providerConfig?: Record<string, unknown> | undefined;
1968
+ effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined;
1969
+ budget?: {
1970
+ maxUsd?: number | null | undefined;
1971
+ } | undefined;
861
1972
  }>;
862
1973
  curator: z.ZodOptional<z.ZodObject<{
863
1974
  model: z.ZodDefault<z.ZodString>;
@@ -866,6 +1977,16 @@ export declare const BoberConfigSchema: z.ZodObject<{
866
1977
  provider: z.ZodOptional<z.ZodString>;
867
1978
  endpoint: z.ZodOptional<z.ZodNullable<z.ZodString>>;
868
1979
  providerConfig: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1980
+ /** Reasoning/output effort forwarded to ChatParams.effort (Anthropic only). */
1981
+ effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh", "max"]>>;
1982
+ /** Optional per-run USD spend ceiling. */
1983
+ budget: z.ZodOptional<z.ZodObject<{
1984
+ maxUsd: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
1985
+ }, "strip", z.ZodTypeAny, {
1986
+ maxUsd?: number | null | undefined;
1987
+ }, {
1988
+ maxUsd?: number | null | undefined;
1989
+ }>>;
869
1990
  }, "strip", z.ZodTypeAny, {
870
1991
  model: string;
871
1992
  maxTurns: number;
@@ -873,11 +1994,19 @@ export declare const BoberConfigSchema: z.ZodObject<{
873
1994
  provider?: string | undefined;
874
1995
  endpoint?: string | null | undefined;
875
1996
  providerConfig?: Record<string, unknown> | undefined;
1997
+ effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined;
1998
+ budget?: {
1999
+ maxUsd?: number | null | undefined;
2000
+ } | undefined;
876
2001
  }, {
877
2002
  model?: string | undefined;
878
2003
  provider?: string | undefined;
879
2004
  endpoint?: string | null | undefined;
880
2005
  providerConfig?: Record<string, unknown> | undefined;
2006
+ effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined;
2007
+ budget?: {
2008
+ maxUsd?: number | null | undefined;
2009
+ } | undefined;
881
2010
  maxTurns?: number | undefined;
882
2011
  enabled?: boolean | undefined;
883
2012
  }>>;
@@ -889,6 +2018,23 @@ export declare const BoberConfigSchema: z.ZodObject<{
889
2018
  provider: z.ZodOptional<z.ZodString>;
890
2019
  endpoint: z.ZodOptional<z.ZodNullable<z.ZodString>>;
891
2020
  providerConfig: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
2021
+ /** Reasoning/output effort forwarded to ChatParams.effort (Anthropic only). */
2022
+ effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh", "max"]>>;
2023
+ /** Optional per-run USD spend ceiling. */
2024
+ budget: z.ZodOptional<z.ZodObject<{
2025
+ maxUsd: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
2026
+ }, "strip", z.ZodTypeAny, {
2027
+ maxUsd?: number | null | undefined;
2028
+ }, {
2029
+ maxUsd?: number | null | undefined;
2030
+ }>>;
2031
+ /**
2032
+ * When true, contiguous read-only tool calls (read_file/glob/grep) within a
2033
+ * turn execute concurrently instead of strictly serially (ADR-2, agent-loop
2034
+ * capability port sprint 4). Optional, no default — absent/false is
2035
+ * byte-identical to the pre-change serial loop.
2036
+ */
2037
+ parallelReadOnlyTools: z.ZodOptional<z.ZodBoolean>;
892
2038
  }, "strip", z.ZodTypeAny, {
893
2039
  model: string;
894
2040
  maxTurnsPerSprint: number;
@@ -897,14 +2043,24 @@ export declare const BoberConfigSchema: z.ZodObject<{
897
2043
  provider?: string | undefined;
898
2044
  endpoint?: string | null | undefined;
899
2045
  providerConfig?: Record<string, unknown> | undefined;
2046
+ effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined;
2047
+ budget?: {
2048
+ maxUsd?: number | null | undefined;
2049
+ } | undefined;
2050
+ parallelReadOnlyTools?: boolean | undefined;
900
2051
  }, {
901
2052
  model?: string | undefined;
902
2053
  provider?: string | undefined;
903
2054
  endpoint?: string | null | undefined;
904
2055
  providerConfig?: Record<string, unknown> | undefined;
2056
+ effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined;
2057
+ budget?: {
2058
+ maxUsd?: number | null | undefined;
2059
+ } | undefined;
905
2060
  maxTurnsPerSprint?: number | undefined;
906
2061
  autoCommit?: boolean | undefined;
907
2062
  branchPattern?: string | undefined;
2063
+ parallelReadOnlyTools?: boolean | undefined;
908
2064
  }>;
909
2065
  evaluator: z.ZodObject<{
910
2066
  model: z.ZodDefault<z.ZodString>;
@@ -954,6 +2110,16 @@ export declare const BoberConfigSchema: z.ZodObject<{
954
2110
  lenses?: string[] | undefined;
955
2111
  maxConcurrent?: number | undefined;
956
2112
  }>>;
2113
+ /** Reasoning/output effort forwarded to ChatParams.effort (Anthropic only). */
2114
+ effort: z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh", "max"]>>;
2115
+ /** Optional per-run USD spend ceiling. */
2116
+ budget: z.ZodOptional<z.ZodObject<{
2117
+ maxUsd: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
2118
+ }, "strip", z.ZodTypeAny, {
2119
+ maxUsd?: number | null | undefined;
2120
+ }, {
2121
+ maxUsd?: number | null | undefined;
2122
+ }>>;
957
2123
  }, "strip", z.ZodTypeAny, {
958
2124
  model: string;
959
2125
  strategies: {
@@ -973,6 +2139,10 @@ export declare const BoberConfigSchema: z.ZodObject<{
973
2139
  provider?: string | undefined;
974
2140
  endpoint?: string | null | undefined;
975
2141
  providerConfig?: Record<string, unknown> | undefined;
2142
+ effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined;
2143
+ budget?: {
2144
+ maxUsd?: number | null | undefined;
2145
+ } | undefined;
976
2146
  plugins?: string[] | undefined;
977
2147
  }, {
978
2148
  strategies: {
@@ -987,6 +2157,10 @@ export declare const BoberConfigSchema: z.ZodObject<{
987
2157
  provider?: string | undefined;
988
2158
  endpoint?: string | null | undefined;
989
2159
  providerConfig?: Record<string, unknown> | undefined;
2160
+ effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined;
2161
+ budget?: {
2162
+ maxUsd?: number | null | undefined;
2163
+ } | undefined;
990
2164
  maxIterations?: number | undefined;
991
2165
  plugins?: string[] | undefined;
992
2166
  panel?: {
@@ -1002,11 +2176,11 @@ export declare const BoberConfigSchema: z.ZodObject<{
1002
2176
  }, "strip", z.ZodTypeAny, {
1003
2177
  maxSprints: number;
1004
2178
  requireContracts: boolean;
1005
- sprintSize: "small" | "medium" | "large";
2179
+ sprintSize: "medium" | "small" | "large";
1006
2180
  }, {
1007
2181
  maxSprints?: number | undefined;
1008
2182
  requireContracts?: boolean | undefined;
1009
- sprintSize?: "small" | "medium" | "large" | undefined;
2183
+ sprintSize?: "medium" | "small" | "large" | undefined;
1010
2184
  }>;
1011
2185
  pipeline: z.ZodObject<{
1012
2186
  maxIterations: z.ZodDefault<z.ZodNumber>;
@@ -1049,9 +2223,9 @@ export declare const BoberConfigSchema: z.ZodObject<{
1049
2223
  * worktree is ALWAYS retained for debugging regardless of this flag. */
1050
2224
  cleanupWorktreeOnSuccess: z.ZodDefault<z.ZodBoolean>;
1051
2225
  /** Orchestration engine. 'ts' runs the built-in TypeScript pipeline (default). 'skill' and 'workflow' select alternative engines (sprint 6+). Default: 'ts'. */
1052
- engine: z.ZodDefault<z.ZodEnum<["ts", "skill", "workflow"]>>;
2226
+ engine: z.ZodDefault<z.ZodEnum<["ts", "skill", "workflow", "medical-sop"]>>;
1053
2227
  }, "strip", z.ZodTypeAny, {
1054
- mode: "careful" | "autopilot";
2228
+ mode: "autopilot" | "careful";
1055
2229
  maxIterations: number;
1056
2230
  maxCheckpointIterations: number;
1057
2231
  requireApproval: boolean;
@@ -1065,10 +2239,10 @@ export declare const BoberConfigSchema: z.ZodObject<{
1065
2239
  eventQueueBound: number;
1066
2240
  worktreeRoot: string;
1067
2241
  cleanupWorktreeOnSuccess: boolean;
1068
- engine: "ts" | "skill" | "workflow";
2242
+ engine: "ts" | "skill" | "workflow" | "medical-sop";
1069
2243
  checkpointMechanism?: "noop" | "cli" | "disk" | "pr" | undefined;
1070
2244
  }, {
1071
- mode?: "careful" | "autopilot" | undefined;
2245
+ mode?: "autopilot" | "careful" | undefined;
1072
2246
  maxIterations?: number | undefined;
1073
2247
  maxCheckpointIterations?: number | undefined;
1074
2248
  requireApproval?: boolean | undefined;
@@ -1083,7 +2257,7 @@ export declare const BoberConfigSchema: z.ZodObject<{
1083
2257
  eventQueueBound?: number | undefined;
1084
2258
  worktreeRoot?: string | undefined;
1085
2259
  cleanupWorktreeOnSuccess?: boolean | undefined;
1086
- engine?: "ts" | "skill" | "workflow" | undefined;
2260
+ engine?: "ts" | "skill" | "workflow" | "medical-sop" | undefined;
1087
2261
  }>;
1088
2262
  commands: z.ZodObject<{
1089
2263
  install: z.ZodOptional<z.ZodString>;
@@ -1146,7 +2320,7 @@ export declare const BoberConfigSchema: z.ZodObject<{
1146
2320
  }, "strip", z.ZodTypeAny, {
1147
2321
  enabled: boolean;
1148
2322
  autoSync: boolean;
1149
- languageTier: "all" | "core" | "extended";
2323
+ languageTier: "core" | "extended" | "all";
1150
2324
  manifestPath: string;
1151
2325
  syncTimeoutMs: number;
1152
2326
  queryTimeoutMs: number;
@@ -1166,7 +2340,7 @@ export declare const BoberConfigSchema: z.ZodObject<{
1166
2340
  enabled?: boolean | undefined;
1167
2341
  tokensavePath?: string | undefined;
1168
2342
  autoSync?: boolean | undefined;
1169
- languageTier?: "all" | "core" | "extended" | undefined;
2343
+ languageTier?: "core" | "extended" | "all" | undefined;
1170
2344
  manifestPath?: string | undefined;
1171
2345
  syncTimeoutMs?: number | undefined;
1172
2346
  queryTimeoutMs?: number | undefined;
@@ -1244,15 +2418,15 @@ export declare const BoberConfigSchema: z.ZodObject<{
1244
2418
  mcpEnv: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1245
2419
  enabled: z.ZodDefault<z.ZodBoolean>;
1246
2420
  }, "strip", z.ZodTypeAny, {
1247
- kind: "custom" | "logs" | "metrics" | "traces" | "errors";
1248
2421
  name: string;
1249
2422
  enabled: boolean;
2423
+ kind: "custom" | "logs" | "metrics" | "traces" | "errors";
1250
2424
  mcpCommand: string;
1251
2425
  mcpArgs?: string[] | undefined;
1252
2426
  mcpEnv?: Record<string, string> | undefined;
1253
2427
  }, {
1254
- kind: "custom" | "logs" | "metrics" | "traces" | "errors";
1255
2428
  name: string;
2429
+ kind: "custom" | "logs" | "metrics" | "traces" | "errors";
1256
2430
  mcpCommand: string;
1257
2431
  enabled?: boolean | undefined;
1258
2432
  mcpArgs?: string[] | undefined;
@@ -1260,17 +2434,17 @@ export declare const BoberConfigSchema: z.ZodObject<{
1260
2434
  }>, "many">>;
1261
2435
  }, "strip", z.ZodTypeAny, {
1262
2436
  providers: {
1263
- kind: "custom" | "logs" | "metrics" | "traces" | "errors";
1264
2437
  name: string;
1265
2438
  enabled: boolean;
2439
+ kind: "custom" | "logs" | "metrics" | "traces" | "errors";
1266
2440
  mcpCommand: string;
1267
2441
  mcpArgs?: string[] | undefined;
1268
2442
  mcpEnv?: Record<string, string> | undefined;
1269
2443
  }[];
1270
2444
  }, {
1271
2445
  providers?: {
1272
- kind: "custom" | "logs" | "metrics" | "traces" | "errors";
1273
2446
  name: string;
2447
+ kind: "custom" | "logs" | "metrics" | "traces" | "errors";
1274
2448
  mcpCommand: string;
1275
2449
  enabled?: boolean | undefined;
1276
2450
  mcpArgs?: string[] | undefined;
@@ -1357,7 +2531,7 @@ export declare const BoberConfigSchema: z.ZodObject<{
1357
2531
  /** Memory namespace segment — restricted to a safe path segment. */
1358
2532
  memoryNamespace: z.ZodOptional<z.ZodString>;
1359
2533
  /** Orchestration engine shape for this team. Mirrors the z.enum in PipelineSectionSchema. */
1360
- pipelineShape: z.ZodOptional<z.ZodEnum<["ts", "skill", "workflow"]>>;
2534
+ pipelineShape: z.ZodOptional<z.ZodEnum<["ts", "skill", "workflow", "medical-sop"]>>;
1361
2535
  /** Partial role -> provider override. Keys SHOULD be RoleName values. */
1362
2536
  providers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1363
2537
  roles: z.ZodOptional<z.ZodArray<z.ZodObject<{
@@ -1375,7 +2549,7 @@ export declare const BoberConfigSchema: z.ZodObject<{
1375
2549
  providers?: Record<string, string> | undefined;
1376
2550
  displayName?: string | undefined;
1377
2551
  memoryNamespace?: string | undefined;
1378
- pipelineShape?: "ts" | "skill" | "workflow" | undefined;
2552
+ pipelineShape?: "ts" | "skill" | "workflow" | "medical-sop" | undefined;
1379
2553
  roles?: {
1380
2554
  name: string;
1381
2555
  displayName: string;
@@ -1385,7 +2559,7 @@ export declare const BoberConfigSchema: z.ZodObject<{
1385
2559
  providers?: Record<string, string> | undefined;
1386
2560
  displayName?: string | undefined;
1387
2561
  memoryNamespace?: string | undefined;
1388
- pipelineShape?: "ts" | "skill" | "workflow" | undefined;
2562
+ pipelineShape?: "ts" | "skill" | "workflow" | "medical-sop" | undefined;
1389
2563
  roles?: {
1390
2564
  name: string;
1391
2565
  displayName: string;
@@ -1393,10 +2567,816 @@ export declare const BoberConfigSchema: z.ZodObject<{
1393
2567
  guardrails?: unknown;
1394
2568
  }>>>;
1395
2569
  defaultTeam: z.ZodOptional<z.ZodString>;
2570
+ medical: z.ZodOptional<z.ZodObject<{
2571
+ /** Egress opt-in axes (ADR-6). Both default false — zero outbound bytes by default. */
2572
+ egress: z.ZodOptional<z.ZodObject<{
2573
+ /** When true, cloud inference synthesis is permitted. Default false. */
2574
+ cloudInference: z.ZodDefault<z.ZodBoolean>;
2575
+ /** When true, literature retrieval (MedlinePlus) is permitted. Default false. */
2576
+ literatureRetrieval: z.ZodDefault<z.ZodBoolean>;
2577
+ /** When true, WHOOP device-connection egress is permitted (ADR-1). Default false. */
2578
+ deviceConnection: z.ZodDefault<z.ZodBoolean>;
2579
+ }, "strip", z.ZodTypeAny, {
2580
+ cloudInference: boolean;
2581
+ literatureRetrieval: boolean;
2582
+ deviceConnection: boolean;
2583
+ }, {
2584
+ cloudInference?: boolean | undefined;
2585
+ literatureRetrieval?: boolean | undefined;
2586
+ deviceConnection?: boolean | undefined;
2587
+ }>>;
2588
+ /**
2589
+ * Optional synthesis/critic model override (Sprint 3 — grounding-critic).
2590
+ * Absent => local Ollama default (openai-compat http://localhost:11434/v1, llama3).
2591
+ * A CLOUD provider here is only honoured when egress.cloudInference is true (fail-closed otherwise).
2592
+ */
2593
+ inference: z.ZodOptional<z.ZodObject<{
2594
+ provider: z.ZodOptional<z.ZodString>;
2595
+ endpoint: z.ZodOptional<z.ZodString>;
2596
+ model: z.ZodOptional<z.ZodString>;
2597
+ }, "strip", z.ZodTypeAny, {
2598
+ model?: string | undefined;
2599
+ provider?: string | undefined;
2600
+ endpoint?: string | undefined;
2601
+ }, {
2602
+ model?: string | undefined;
2603
+ provider?: string | undefined;
2604
+ endpoint?: string | undefined;
2605
+ }>>;
2606
+ /** Optional vault dir for medical Findings/notes. Default: <projectRoot>/.bober/medical/vault. */
2607
+ vaultDir: z.ZodOptional<z.ZodString>;
2608
+ }, "strip", z.ZodTypeAny, {
2609
+ egress?: {
2610
+ cloudInference: boolean;
2611
+ literatureRetrieval: boolean;
2612
+ deviceConnection: boolean;
2613
+ } | undefined;
2614
+ inference?: {
2615
+ model?: string | undefined;
2616
+ provider?: string | undefined;
2617
+ endpoint?: string | undefined;
2618
+ } | undefined;
2619
+ vaultDir?: string | undefined;
2620
+ }, {
2621
+ egress?: {
2622
+ cloudInference?: boolean | undefined;
2623
+ literatureRetrieval?: boolean | undefined;
2624
+ deviceConnection?: boolean | undefined;
2625
+ } | undefined;
2626
+ inference?: {
2627
+ model?: string | undefined;
2628
+ provider?: string | undefined;
2629
+ endpoint?: string | undefined;
2630
+ } | undefined;
2631
+ vaultDir?: string | undefined;
2632
+ }>>;
2633
+ fleet: z.ZodOptional<z.ZodObject<{
2634
+ /** Absolute path to the shared WAL facts.db file. */
2635
+ blackboardDbPath: z.ZodString;
2636
+ /** Namespace scoping all findings for this fleet run. */
2637
+ blackboardNamespace: z.ZodString;
2638
+ /** This child's own subject identifier (equals the child folder name). */
2639
+ blackboardSubject: z.ZodString;
2640
+ /** Maximum number of exchange rounds (1–3). */
2641
+ maxRounds: z.ZodNumber;
2642
+ }, "strip", z.ZodTypeAny, {
2643
+ blackboardDbPath: string;
2644
+ blackboardNamespace: string;
2645
+ blackboardSubject: string;
2646
+ maxRounds: number;
2647
+ }, {
2648
+ blackboardDbPath: string;
2649
+ blackboardNamespace: string;
2650
+ blackboardSubject: string;
2651
+ maxRounds: number;
2652
+ }>>;
2653
+ vault: z.ZodOptional<z.ZodObject<{
2654
+ obsidian: z.ZodOptional<z.ZodObject<{
2655
+ /** Unique server name (used in error messages — never secrets). */
2656
+ name: z.ZodString;
2657
+ /** Executable to spawn (e.g., "npx", "/usr/local/bin/obsidian-mcp"). */
2658
+ mcpCommand: z.ZodString;
2659
+ mcpArgs: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
2660
+ /** Env vars passed to the child — may contain SECRETS (treat as opaque, never log). */
2661
+ mcpEnv: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
2662
+ enabled: z.ZodDefault<z.ZodBoolean>;
2663
+ /**
2664
+ * Override the server tool names per logical operation.
2665
+ * When absent, cyanheads/obsidian-mcp-server defaults are used (see DEFAULT_VAULT_TOOL_NAMES).
2666
+ * Provide overrides when using a different MCP server (e.g., Obsidian Local REST API).
2667
+ */
2668
+ toolNames: z.ZodOptional<z.ZodObject<{
2669
+ readNote: z.ZodOptional<z.ZodString>;
2670
+ writeNote: z.ZodOptional<z.ZodString>;
2671
+ listNotes: z.ZodOptional<z.ZodString>;
2672
+ }, "strip", z.ZodTypeAny, {
2673
+ readNote?: string | undefined;
2674
+ writeNote?: string | undefined;
2675
+ listNotes?: string | undefined;
2676
+ }, {
2677
+ readNote?: string | undefined;
2678
+ writeNote?: string | undefined;
2679
+ listNotes?: string | undefined;
2680
+ }>>;
2681
+ }, "strip", z.ZodTypeAny, {
2682
+ name: string;
2683
+ enabled: boolean;
2684
+ mcpCommand: string;
2685
+ mcpArgs?: string[] | undefined;
2686
+ mcpEnv?: Record<string, string> | undefined;
2687
+ toolNames?: {
2688
+ readNote?: string | undefined;
2689
+ writeNote?: string | undefined;
2690
+ listNotes?: string | undefined;
2691
+ } | undefined;
2692
+ }, {
2693
+ name: string;
2694
+ mcpCommand: string;
2695
+ enabled?: boolean | undefined;
2696
+ mcpArgs?: string[] | undefined;
2697
+ mcpEnv?: Record<string, string> | undefined;
2698
+ toolNames?: {
2699
+ readNote?: string | undefined;
2700
+ writeNote?: string | undefined;
2701
+ listNotes?: string | undefined;
2702
+ } | undefined;
2703
+ }>>;
2704
+ }, "strip", z.ZodTypeAny, {
2705
+ obsidian?: {
2706
+ name: string;
2707
+ enabled: boolean;
2708
+ mcpCommand: string;
2709
+ mcpArgs?: string[] | undefined;
2710
+ mcpEnv?: Record<string, string> | undefined;
2711
+ toolNames?: {
2712
+ readNote?: string | undefined;
2713
+ writeNote?: string | undefined;
2714
+ listNotes?: string | undefined;
2715
+ } | undefined;
2716
+ } | undefined;
2717
+ }, {
2718
+ obsidian?: {
2719
+ name: string;
2720
+ mcpCommand: string;
2721
+ enabled?: boolean | undefined;
2722
+ mcpArgs?: string[] | undefined;
2723
+ mcpEnv?: Record<string, string> | undefined;
2724
+ toolNames?: {
2725
+ readNote?: string | undefined;
2726
+ writeNote?: string | undefined;
2727
+ listNotes?: string | undefined;
2728
+ } | undefined;
2729
+ } | undefined;
2730
+ }>>;
2731
+ taskInbox: z.ZodOptional<z.ZodObject<{
2732
+ /** When true, `bober task from-gmail` may read a Gmail thread via the MCP
2733
+ * connector. Default false — zero Gmail egress unless explicitly opted in. */
2734
+ gmailEgress: z.ZodDefault<z.ZodBoolean>;
2735
+ }, "strip", z.ZodTypeAny, {
2736
+ gmailEgress: boolean;
2737
+ }, {
2738
+ gmailEgress?: boolean | undefined;
2739
+ }>>;
2740
+ calendar: z.ZodOptional<z.ZodObject<{
2741
+ /** Egress opt-in axis (Sprint 3). Default false — zero cloud egress by default. */
2742
+ egress: z.ZodOptional<z.ZodObject<{
2743
+ /** When true, Google Calendar (cloud) egress is permitted. Default false (fail-closed). */
2744
+ cloudCalendar: z.ZodDefault<z.ZodBoolean>;
2745
+ }, "strip", z.ZodTypeAny, {
2746
+ cloudCalendar: boolean;
2747
+ }, {
2748
+ cloudCalendar?: boolean | undefined;
2749
+ }>>;
2750
+ /** Which connector to use. Default 'ics' (local, zero-egress). */
2751
+ connector: z.ZodDefault<z.ZodEnum<["ics", "google"]>>;
2752
+ /** Optional IANA timezone (informational only; not used in epoch-ms math). */
2753
+ timezone: z.ZodOptional<z.ZodString>;
2754
+ }, "strip", z.ZodTypeAny, {
2755
+ connector: "ics" | "google";
2756
+ egress?: {
2757
+ cloudCalendar: boolean;
2758
+ } | undefined;
2759
+ timezone?: string | undefined;
2760
+ }, {
2761
+ egress?: {
2762
+ cloudCalendar?: boolean | undefined;
2763
+ } | undefined;
2764
+ connector?: "ics" | "google" | undefined;
2765
+ timezone?: string | undefined;
2766
+ }>>;
2767
+ research: z.ZodOptional<z.ZodObject<{
2768
+ /** Egress opt-in axis. Default false — zero outbound bytes by default (fail-closed, ADR-6 lineage). */
2769
+ egress: z.ZodOptional<z.ZodObject<{
2770
+ /** When true, online/web research retrieval is permitted. Default false. */
2771
+ onlineResearch: z.ZodDefault<z.ZodBoolean>;
2772
+ }, "strip", z.ZodTypeAny, {
2773
+ onlineResearch: boolean;
2774
+ }, {
2775
+ onlineResearch?: boolean | undefined;
2776
+ }>>;
2777
+ }, "strip", z.ZodTypeAny, {
2778
+ egress?: {
2779
+ onlineResearch: boolean;
2780
+ } | undefined;
2781
+ }, {
2782
+ egress?: {
2783
+ onlineResearch?: boolean | undefined;
2784
+ } | undefined;
2785
+ }>>;
2786
+ tools: z.ZodOptional<z.ZodObject<{
2787
+ /** Opt-in bridge exposing a configured MCP server's tools as agentic-loop
2788
+ * ToolDefs (agent-loop-capability-port sprint 10). Default false —
2789
+ * disabled means no MCP process/transport is ever created and the loop's
2790
+ * tool list is unchanged. Only constructed by a consumer that reads
2791
+ * `enabled === true` at the call site (never at config parse time). */
2792
+ mcpBridge: z.ZodOptional<z.ZodObject<{
2793
+ enabled: z.ZodDefault<z.ZodBoolean>;
2794
+ server: z.ZodObject<{
2795
+ /** Executable to spawn (e.g., "node", "npx", "/usr/local/bin/some-mcp-server"). */
2796
+ command: z.ZodString;
2797
+ args: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
2798
+ }, "strip", z.ZodTypeAny, {
2799
+ command: string;
2800
+ args: string[];
2801
+ }, {
2802
+ command: string;
2803
+ args?: string[] | undefined;
2804
+ }>;
2805
+ }, "strip", z.ZodTypeAny, {
2806
+ enabled: boolean;
2807
+ server: {
2808
+ command: string;
2809
+ args: string[];
2810
+ };
2811
+ }, {
2812
+ server: {
2813
+ command: string;
2814
+ args?: string[] | undefined;
2815
+ };
2816
+ enabled?: boolean | undefined;
2817
+ }>>;
2818
+ }, "strip", z.ZodTypeAny, {
2819
+ mcpBridge?: {
2820
+ enabled: boolean;
2821
+ server: {
2822
+ command: string;
2823
+ args: string[];
2824
+ };
2825
+ } | undefined;
2826
+ }, {
2827
+ mcpBridge?: {
2828
+ server: {
2829
+ command: string;
2830
+ args?: string[] | undefined;
2831
+ };
2832
+ enabled?: boolean | undefined;
2833
+ } | undefined;
2834
+ }>>;
2835
+ security: z.ZodOptional<z.ZodObject<{
2836
+ enabled: z.ZodDefault<z.ZodBoolean>;
2837
+ /** Fail-closed: unparseable auditor output or a timeout blocks. Default true. */
2838
+ failClosed: z.ZodDefault<z.ZodBoolean>;
2839
+ timeoutMs: z.ZodDefault<z.ZodNumber>;
2840
+ model: z.ZodDefault<z.ZodString>;
2841
+ maxTurns: z.ZodDefault<z.ZodNumber>;
2842
+ provider: z.ZodOptional<z.ZodString>;
2843
+ endpoint: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2844
+ providerConfig: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
2845
+ /** Optional per-run USD spend ceiling. */
2846
+ budget: z.ZodOptional<z.ZodObject<{
2847
+ maxUsd: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
2848
+ }, "strip", z.ZodTypeAny, {
2849
+ maxUsd?: number | null | undefined;
2850
+ }, {
2851
+ maxUsd?: number | null | undefined;
2852
+ }>>;
2853
+ /** Opt-in deterministic scanner pre-filter strategies (e.g. slither, semgrep). */
2854
+ scanners: z.ZodDefault<z.ZodArray<z.ZodObject<{
2855
+ /** Strategy type — built-in name OR any custom name (e.g. "k6", "anchor-verify", "slither"). */
2856
+ type: z.ZodString;
2857
+ /** Path to a custom plugin module (for type "custom" or any non-built-in type). */
2858
+ plugin: z.ZodOptional<z.ZodString>;
2859
+ /** Shell command to run directly — shorthand alternative to writing a plugin file. */
2860
+ command: z.ZodOptional<z.ZodString>;
2861
+ /** Whether this strategy must pass for the sprint to pass. */
2862
+ required: z.ZodBoolean;
2863
+ /** Arbitrary config passed to the evaluator plugin. */
2864
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
2865
+ /** Human-readable label (defaults to type if not set). */
2866
+ label: z.ZodOptional<z.ZodString>;
2867
+ }, "strip", z.ZodTypeAny, {
2868
+ type: string;
2869
+ required: boolean;
2870
+ plugin?: string | undefined;
2871
+ command?: string | undefined;
2872
+ config?: Record<string, unknown> | undefined;
2873
+ label?: string | undefined;
2874
+ }, {
2875
+ type: string;
2876
+ required: boolean;
2877
+ plugin?: string | undefined;
2878
+ command?: string | undefined;
2879
+ config?: Record<string, unknown> | undefined;
2880
+ label?: string | undefined;
2881
+ }>, "many">>;
2882
+ /** Blocking threshold for the standalone `bober security-audit` CLI (sprint 4). */
2883
+ standaloneBlockOn: z.ZodDefault<z.ZodEnum<["critical", "important"]>>;
2884
+ /** Whether findings are emitted to the priority hub (sprint 6). Default true. */
2885
+ hub: z.ZodDefault<z.ZodBoolean>;
2886
+ /**
2887
+ * Opt-in real-diff provider config (sprint 6). OPTIONAL with no outer
2888
+ * default — a config that omits `diff` entirely stays byte-identical
2889
+ * (no defaults leak in), same guarantee as `security` itself (sc-6-3).
2890
+ */
2891
+ diff: z.ZodOptional<z.ZodObject<{
2892
+ mode: z.ZodDefault<z.ZodEnum<["estimated-files", "git-diff"]>>;
2893
+ baseRef: z.ZodOptional<z.ZodString>;
2894
+ expandWithGraph: z.ZodDefault<z.ZodBoolean>;
2895
+ }, "strip", z.ZodTypeAny, {
2896
+ mode: "estimated-files" | "git-diff";
2897
+ expandWithGraph: boolean;
2898
+ baseRef?: string | undefined;
2899
+ }, {
2900
+ mode?: "estimated-files" | "git-diff" | undefined;
2901
+ baseRef?: string | undefined;
2902
+ expandWithGraph?: boolean | undefined;
2903
+ }>>;
2904
+ /**
2905
+ * Sprint-7: opt-in supply-chain axis config. OPTIONAL with no outer
2906
+ * default — a config that omits `supplyChain` entirely stays
2907
+ * byte-identical (no defaults leak in), same guarantee as `diff` (sc-7-3).
2908
+ */
2909
+ supplyChain: z.ZodOptional<z.ZodObject<{
2910
+ enabled: z.ZodDefault<z.ZodBoolean>;
2911
+ scanners: z.ZodDefault<z.ZodArray<z.ZodObject<{
2912
+ /** Strategy type — built-in name OR any custom name (e.g. "k6", "anchor-verify", "slither"). */
2913
+ type: z.ZodString;
2914
+ /** Path to a custom plugin module (for type "custom" or any non-built-in type). */
2915
+ plugin: z.ZodOptional<z.ZodString>;
2916
+ /** Shell command to run directly — shorthand alternative to writing a plugin file. */
2917
+ command: z.ZodOptional<z.ZodString>;
2918
+ /** Whether this strategy must pass for the sprint to pass. */
2919
+ required: z.ZodBoolean;
2920
+ /** Arbitrary config passed to the evaluator plugin. */
2921
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
2922
+ /** Human-readable label (defaults to type if not set). */
2923
+ label: z.ZodOptional<z.ZodString>;
2924
+ }, "strip", z.ZodTypeAny, {
2925
+ type: string;
2926
+ required: boolean;
2927
+ plugin?: string | undefined;
2928
+ command?: string | undefined;
2929
+ config?: Record<string, unknown> | undefined;
2930
+ label?: string | undefined;
2931
+ }, {
2932
+ type: string;
2933
+ required: boolean;
2934
+ plugin?: string | undefined;
2935
+ command?: string | undefined;
2936
+ config?: Record<string, unknown> | undefined;
2937
+ label?: string | undefined;
2938
+ }>, "many">>;
2939
+ }, "strip", z.ZodTypeAny, {
2940
+ enabled: boolean;
2941
+ scanners: {
2942
+ type: string;
2943
+ required: boolean;
2944
+ plugin?: string | undefined;
2945
+ command?: string | undefined;
2946
+ config?: Record<string, unknown> | undefined;
2947
+ label?: string | undefined;
2948
+ }[];
2949
+ }, {
2950
+ enabled?: boolean | undefined;
2951
+ scanners?: {
2952
+ type: string;
2953
+ required: boolean;
2954
+ plugin?: string | undefined;
2955
+ command?: string | undefined;
2956
+ config?: Record<string, unknown> | undefined;
2957
+ label?: string | undefined;
2958
+ }[] | undefined;
2959
+ }>>;
2960
+ /**
2961
+ * Sprint-7: egress axis gating network-capable supply-chain scanners.
2962
+ * OPTIONAL with no outer default (same byte-identical guarantee as above).
2963
+ */
2964
+ egress: z.ZodOptional<z.ZodObject<{
2965
+ onlineResearch: z.ZodDefault<z.ZodBoolean>;
2966
+ }, "strip", z.ZodTypeAny, {
2967
+ onlineResearch: boolean;
2968
+ }, {
2969
+ onlineResearch?: boolean | undefined;
2970
+ }>>;
2971
+ /**
2972
+ * Sprint-8: opt-in adversarial finder->verifier stage config. OPTIONAL
2973
+ * with no outer default — a config that omits `verifier` entirely stays
2974
+ * byte-identical (no defaults leak in), same guarantee as `diff` /
2975
+ * `supplyChain` / `egress` above (sc-8-5). `maxTurns` defaults lower than
2976
+ * the finder's (10 vs 20) — refutation needs fewer turns than the
2977
+ * original audit.
2978
+ */
2979
+ verifier: z.ZodOptional<z.ZodObject<{
2980
+ enabled: z.ZodDefault<z.ZodBoolean>;
2981
+ model: z.ZodDefault<z.ZodString>;
2982
+ maxTurns: z.ZodDefault<z.ZodNumber>;
2983
+ }, "strip", z.ZodTypeAny, {
2984
+ model: string;
2985
+ maxTurns: number;
2986
+ enabled: boolean;
2987
+ }, {
2988
+ model?: string | undefined;
2989
+ maxTurns?: number | undefined;
2990
+ enabled?: boolean | undefined;
2991
+ }>>;
2992
+ }, "strip", z.ZodTypeAny, {
2993
+ model: string;
2994
+ maxTurns: number;
2995
+ enabled: boolean;
2996
+ timeoutMs: number;
2997
+ failClosed: boolean;
2998
+ scanners: {
2999
+ type: string;
3000
+ required: boolean;
3001
+ plugin?: string | undefined;
3002
+ command?: string | undefined;
3003
+ config?: Record<string, unknown> | undefined;
3004
+ label?: string | undefined;
3005
+ }[];
3006
+ standaloneBlockOn: "critical" | "important";
3007
+ hub: boolean;
3008
+ provider?: string | undefined;
3009
+ endpoint?: string | null | undefined;
3010
+ providerConfig?: Record<string, unknown> | undefined;
3011
+ budget?: {
3012
+ maxUsd?: number | null | undefined;
3013
+ } | undefined;
3014
+ egress?: {
3015
+ onlineResearch: boolean;
3016
+ } | undefined;
3017
+ diff?: {
3018
+ mode: "estimated-files" | "git-diff";
3019
+ expandWithGraph: boolean;
3020
+ baseRef?: string | undefined;
3021
+ } | undefined;
3022
+ supplyChain?: {
3023
+ enabled: boolean;
3024
+ scanners: {
3025
+ type: string;
3026
+ required: boolean;
3027
+ plugin?: string | undefined;
3028
+ command?: string | undefined;
3029
+ config?: Record<string, unknown> | undefined;
3030
+ label?: string | undefined;
3031
+ }[];
3032
+ } | undefined;
3033
+ verifier?: {
3034
+ model: string;
3035
+ maxTurns: number;
3036
+ enabled: boolean;
3037
+ } | undefined;
3038
+ }, {
3039
+ model?: string | undefined;
3040
+ provider?: string | undefined;
3041
+ endpoint?: string | null | undefined;
3042
+ providerConfig?: Record<string, unknown> | undefined;
3043
+ budget?: {
3044
+ maxUsd?: number | null | undefined;
3045
+ } | undefined;
3046
+ maxTurns?: number | undefined;
3047
+ enabled?: boolean | undefined;
3048
+ timeoutMs?: number | undefined;
3049
+ egress?: {
3050
+ onlineResearch?: boolean | undefined;
3051
+ } | undefined;
3052
+ failClosed?: boolean | undefined;
3053
+ scanners?: {
3054
+ type: string;
3055
+ required: boolean;
3056
+ plugin?: string | undefined;
3057
+ command?: string | undefined;
3058
+ config?: Record<string, unknown> | undefined;
3059
+ label?: string | undefined;
3060
+ }[] | undefined;
3061
+ standaloneBlockOn?: "critical" | "important" | undefined;
3062
+ hub?: boolean | undefined;
3063
+ diff?: {
3064
+ mode?: "estimated-files" | "git-diff" | undefined;
3065
+ baseRef?: string | undefined;
3066
+ expandWithGraph?: boolean | undefined;
3067
+ } | undefined;
3068
+ supplyChain?: {
3069
+ enabled?: boolean | undefined;
3070
+ scanners?: {
3071
+ type: string;
3072
+ required: boolean;
3073
+ plugin?: string | undefined;
3074
+ command?: string | undefined;
3075
+ config?: Record<string, unknown> | undefined;
3076
+ label?: string | undefined;
3077
+ }[] | undefined;
3078
+ } | undefined;
3079
+ verifier?: {
3080
+ model?: string | undefined;
3081
+ maxTurns?: number | undefined;
3082
+ enabled?: boolean | undefined;
3083
+ } | undefined;
3084
+ }>>;
3085
+ seo: z.ZodOptional<z.ZodObject<{
3086
+ /**
3087
+ * Two live-data egress axes (search-console, serp-provider). Both default
3088
+ * false — the offline LocalExportSource path needs neither. OPTIONAL with
3089
+ * no outer default — a config that omits `egress` entirely stays
3090
+ * byte-identical, same guarantee as `security.egress` (schema.ts:280).
3091
+ */
3092
+ egress: z.ZodOptional<z.ZodObject<{
3093
+ /** When true, Google Search Console API egress is permitted. Default false. */
3094
+ "search-console": z.ZodDefault<z.ZodBoolean>;
3095
+ /** When true, DataForSEO SERP/keywords/backlinks egress is permitted. Default false. */
3096
+ "serp-provider": z.ZodDefault<z.ZodBoolean>;
3097
+ /** When true, live AI-visibility/GEO provider egress (BYOK grounded-LLM API spine) is permitted. Default false. */
3098
+ "ai-visibility": z.ZodDefault<z.ZodBoolean>;
3099
+ /** When true, damcrawler-backed site crawling (crawl/url-coverage/link-graph/SERP-scrape) is permitted. Default false. */
3100
+ "site-crawl": z.ZodDefault<z.ZodBoolean>;
3101
+ /**
3102
+ * When true, the AI-visibility UI-scrape arm's egress is permitted.
3103
+ * SEPARATE axis from `ai-visibility` (ADR-5, in-house-ai-visibility
3104
+ * architecture line 44) — default false and, as of Sprint 3, composes
3105
+ * NO provider yet (axis-only; the scrape arm lands Sprint 10).
3106
+ */
3107
+ "ai-visibility-scrape": z.ZodDefault<z.ZodBoolean>;
3108
+ }, "strip", z.ZodTypeAny, {
3109
+ "search-console": boolean;
3110
+ "serp-provider": boolean;
3111
+ "ai-visibility": boolean;
3112
+ "site-crawl": boolean;
3113
+ "ai-visibility-scrape": boolean;
3114
+ }, {
3115
+ "search-console"?: boolean | undefined;
3116
+ "serp-provider"?: boolean | undefined;
3117
+ "ai-visibility"?: boolean | undefined;
3118
+ "site-crawl"?: boolean | undefined;
3119
+ "ai-visibility-scrape"?: boolean | undefined;
3120
+ }>>;
3121
+ /**
3122
+ * Opt-in adversarial downgrade-only verifier stage (mirrors
3123
+ * `security.verifier`, schema.ts:289-295). OPTIONAL with no outer
3124
+ * default — omitting `verifier` entirely stays byte-identical.
3125
+ */
3126
+ verifier: z.ZodOptional<z.ZodObject<{
3127
+ enabled: z.ZodDefault<z.ZodBoolean>;
3128
+ }, "strip", z.ZodTypeAny, {
3129
+ enabled: boolean;
3130
+ }, {
3131
+ enabled?: boolean | undefined;
3132
+ }>>;
3133
+ /**
3134
+ * Per-run USD spend ceiling for PAYG DataForSEO calls. Reuses
3135
+ * `BudgetSectionSchema` (schema.ts:48-51) verbatim; null/absent = uncapped.
3136
+ */
3137
+ budget: z.ZodOptional<z.ZodObject<{
3138
+ maxUsd: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
3139
+ }, "strip", z.ZodTypeAny, {
3140
+ maxUsd?: number | null | undefined;
3141
+ }, {
3142
+ maxUsd?: number | null | undefined;
3143
+ }>>;
3144
+ /** Default domain/URL/local path used when the CLI omits [target]. */
3145
+ defaultTarget: z.ZodOptional<z.ZodString>;
3146
+ /** Citation-gate blocking threshold for the CI exit code. Default 'critical-uncited'. */
3147
+ blockThreshold: z.ZodDefault<z.ZodEnum<["never", "any-uncited", "critical-uncited"]>>;
3148
+ /**
3149
+ * Which SERP provider implementation serves the `serp` capability. OPTIONAL
3150
+ * with an INNER default on `provider` (not an outer default on the whole
3151
+ * object) — a config omitting `serp` entirely stays byte-identical
3152
+ * (`SeoConfigSchema.parse({})` leaks only `blockThreshold`, schema.test.ts:978-985).
3153
+ */
3154
+ serp: z.ZodOptional<z.ZodObject<{
3155
+ provider: z.ZodDefault<z.ZodEnum<["dataforseo", "damcrawler"]>>;
3156
+ }, "strip", z.ZodTypeAny, {
3157
+ provider: "dataforseo" | "damcrawler";
3158
+ }, {
3159
+ provider?: "dataforseo" | "damcrawler" | undefined;
3160
+ }>>;
3161
+ /**
3162
+ * In-house AI-visibility API-spine configuration (in-house-ai-visibility,
3163
+ * Sprint 3). OPTIONAL with NO outer default — a config that omits
3164
+ * `aiVisibility` entirely stays byte-identical (mirrors the `serp` idiom
3165
+ * above). Inner fields carry their own `.default(...)` and only
3166
+ * materialize when the object is present. `resolveAiVisibilityProvider`
3167
+ * (`../seo/ai-visibility-provider.js`) reads this to compose per-engine
3168
+ * arms; an engine with no matching API key is skipped (no-key-safe).
3169
+ */
3170
+ aiVisibility: z.ZodOptional<z.ZodObject<{
3171
+ /** Grounded-search samples per prompt per engine (N in the ADR-3 N-baked cost formula). Default 5. */
3172
+ samplesPerPrompt: z.ZodDefault<z.ZodNumber>;
3173
+ /**
3174
+ * Which engines to probe. `"perplexity"` is a valid value but has no
3175
+ * live provider mapper yet (Sprint 7 nonGoal) — configuring it yields
3176
+ * zero rows from that arm, not an error. Default `[]` (no engines
3177
+ * configured => `resolveAiVisibilityProvider` returns `undefined`).
3178
+ */
3179
+ engines: z.ZodDefault<z.ZodArray<z.ZodObject<{
3180
+ engine: z.ZodEnum<["anthropic", "openai", "perplexity"]>;
3181
+ /** Fixed USD price per grounded-search call for this engine. Default 0. */
3182
+ perCallUsd: z.ZodDefault<z.ZodNumber>;
3183
+ }, "strip", z.ZodTypeAny, {
3184
+ engine: "anthropic" | "openai" | "perplexity";
3185
+ perCallUsd: number;
3186
+ }, {
3187
+ engine: "anthropic" | "openai" | "perplexity";
3188
+ perCallUsd?: number | undefined;
3189
+ }>, "many">>;
3190
+ /**
3191
+ * Optional LLM-as-judge fuzzy-mention path (in-house-ai-visibility,
3192
+ * Sprint 8). OPTIONAL with NO outer default — mirrors `serp`/
3193
+ * `aiVisibility` above — a config that omits `judge` entirely stays
3194
+ * byte-identical (`SeoConfigSchema.parse({ aiVisibility: {} })` leaks
3195
+ * only `samplesPerPrompt`/`engines`, schema.test.ts:1089-1096). Only
3196
+ * the inner `enabled` flag carries a `.default(false)`. The judge is
3197
+ * OFF by default even when this object is present but `enabled` is
3198
+ * omitted.
3199
+ */
3200
+ judge: z.ZodOptional<z.ZodObject<{
3201
+ enabled: z.ZodDefault<z.ZodBoolean>;
3202
+ /** Optional model override for the judge call; falls back to the injected default when absent. */
3203
+ model: z.ZodOptional<z.ZodString>;
3204
+ }, "strip", z.ZodTypeAny, {
3205
+ enabled: boolean;
3206
+ model?: string | undefined;
3207
+ }, {
3208
+ model?: string | undefined;
3209
+ enabled?: boolean | undefined;
3210
+ }>>;
3211
+ /**
3212
+ * Gated damcrawler UI-scrape arm configuration (in-house-ai-
3213
+ * visibility, Sprint 9/10). OPTIONAL with NO outer default — mirrors
3214
+ * `serp`/`judge` above — a config that omits `scrape` entirely stays
3215
+ * byte-identical (`SeoConfigSchema.parse({ aiVisibility: {} })` leaks
3216
+ * only `samplesPerPrompt`/`engines`). Only the inner fields carry
3217
+ * `.default(...)`. Gated separately by the `ai-visibility-scrape`
3218
+ * egress axis (`../seo/egress.js`) — this object being present does
3219
+ * NOT itself enable scraping. `authSession`/`proxy` are operator-
3220
+ * supplied (nonGoal: no auth harvesting, no proxy sourcing); the rate/
3221
+ * proxy-budget caps are consumed by a follow-up sprint's
3222
+ * `ScrapeThrottle` runner wiring (Sprint 9 built the throttle itself
3223
+ * in isolation; Sprint 10 composes the arm behind an injected dep).
3224
+ */
3225
+ scrape: z.ZodOptional<z.ZodObject<{
3226
+ /** Which scrape-arm engines to compose. This sprint composes ONLY "chatgpt-ui"; "perplexity-ui" is a valid config value with no live parser yet (Sprint 11 nonGoal). Default []. */
3227
+ engines: z.ZodDefault<z.ZodArray<z.ZodEnum<["chatgpt-ui", "perplexity-ui"]>, "many">>;
3228
+ /** Operator-supplied auth session (storageState path / profile name / cookie blob) passed opaquely to damcrawler's scrape options. */
3229
+ authSession: z.ZodOptional<z.ZodString>;
3230
+ /** Operator-supplied proxy passed opaquely to damcrawler's scrape options. */
3231
+ proxy: z.ZodOptional<z.ZodString>;
3232
+ /** Fixed USD cost booked to the ScrapeThrottle proxy ledger per successful scrape. Default 0. */
3233
+ proxyUsdPerScrape: z.ZodDefault<z.ZodNumber>;
3234
+ /** ScrapeThrottle rate-window cap: max acquire() grants per engine per window. Default 10. */
3235
+ maxPerWindow: z.ZodDefault<z.ZodNumber>;
3236
+ /** ScrapeThrottle rate-window length in milliseconds. Default 60000 (1 minute). */
3237
+ windowMs: z.ZodDefault<z.ZodNumber>;
3238
+ /** ScrapeThrottle cumulative proxy-USD cap per engine. Default 0 (no proxy spend permitted until explicitly raised). */
3239
+ maxProxyUsd: z.ZodDefault<z.ZodNumber>;
3240
+ }, "strip", z.ZodTypeAny, {
3241
+ engines: ("chatgpt-ui" | "perplexity-ui")[];
3242
+ proxyUsdPerScrape: number;
3243
+ maxPerWindow: number;
3244
+ windowMs: number;
3245
+ maxProxyUsd: number;
3246
+ authSession?: string | undefined;
3247
+ proxy?: string | undefined;
3248
+ }, {
3249
+ engines?: ("chatgpt-ui" | "perplexity-ui")[] | undefined;
3250
+ authSession?: string | undefined;
3251
+ proxy?: string | undefined;
3252
+ proxyUsdPerScrape?: number | undefined;
3253
+ maxPerWindow?: number | undefined;
3254
+ windowMs?: number | undefined;
3255
+ maxProxyUsd?: number | undefined;
3256
+ }>>;
3257
+ }, "strip", z.ZodTypeAny, {
3258
+ samplesPerPrompt: number;
3259
+ engines: {
3260
+ engine: "anthropic" | "openai" | "perplexity";
3261
+ perCallUsd: number;
3262
+ }[];
3263
+ judge?: {
3264
+ enabled: boolean;
3265
+ model?: string | undefined;
3266
+ } | undefined;
3267
+ scrape?: {
3268
+ engines: ("chatgpt-ui" | "perplexity-ui")[];
3269
+ proxyUsdPerScrape: number;
3270
+ maxPerWindow: number;
3271
+ windowMs: number;
3272
+ maxProxyUsd: number;
3273
+ authSession?: string | undefined;
3274
+ proxy?: string | undefined;
3275
+ } | undefined;
3276
+ }, {
3277
+ samplesPerPrompt?: number | undefined;
3278
+ engines?: {
3279
+ engine: "anthropic" | "openai" | "perplexity";
3280
+ perCallUsd?: number | undefined;
3281
+ }[] | undefined;
3282
+ judge?: {
3283
+ model?: string | undefined;
3284
+ enabled?: boolean | undefined;
3285
+ } | undefined;
3286
+ scrape?: {
3287
+ engines?: ("chatgpt-ui" | "perplexity-ui")[] | undefined;
3288
+ authSession?: string | undefined;
3289
+ proxy?: string | undefined;
3290
+ proxyUsdPerScrape?: number | undefined;
3291
+ maxPerWindow?: number | undefined;
3292
+ windowMs?: number | undefined;
3293
+ maxProxyUsd?: number | undefined;
3294
+ } | undefined;
3295
+ }>>;
3296
+ }, "strip", z.ZodTypeAny, {
3297
+ blockThreshold: "never" | "any-uncited" | "critical-uncited";
3298
+ budget?: {
3299
+ maxUsd?: number | null | undefined;
3300
+ } | undefined;
3301
+ egress?: {
3302
+ "search-console": boolean;
3303
+ "serp-provider": boolean;
3304
+ "ai-visibility": boolean;
3305
+ "site-crawl": boolean;
3306
+ "ai-visibility-scrape": boolean;
3307
+ } | undefined;
3308
+ verifier?: {
3309
+ enabled: boolean;
3310
+ } | undefined;
3311
+ defaultTarget?: string | undefined;
3312
+ serp?: {
3313
+ provider: "dataforseo" | "damcrawler";
3314
+ } | undefined;
3315
+ aiVisibility?: {
3316
+ samplesPerPrompt: number;
3317
+ engines: {
3318
+ engine: "anthropic" | "openai" | "perplexity";
3319
+ perCallUsd: number;
3320
+ }[];
3321
+ judge?: {
3322
+ enabled: boolean;
3323
+ model?: string | undefined;
3324
+ } | undefined;
3325
+ scrape?: {
3326
+ engines: ("chatgpt-ui" | "perplexity-ui")[];
3327
+ proxyUsdPerScrape: number;
3328
+ maxPerWindow: number;
3329
+ windowMs: number;
3330
+ maxProxyUsd: number;
3331
+ authSession?: string | undefined;
3332
+ proxy?: string | undefined;
3333
+ } | undefined;
3334
+ } | undefined;
3335
+ }, {
3336
+ budget?: {
3337
+ maxUsd?: number | null | undefined;
3338
+ } | undefined;
3339
+ egress?: {
3340
+ "search-console"?: boolean | undefined;
3341
+ "serp-provider"?: boolean | undefined;
3342
+ "ai-visibility"?: boolean | undefined;
3343
+ "site-crawl"?: boolean | undefined;
3344
+ "ai-visibility-scrape"?: boolean | undefined;
3345
+ } | undefined;
3346
+ verifier?: {
3347
+ enabled?: boolean | undefined;
3348
+ } | undefined;
3349
+ defaultTarget?: string | undefined;
3350
+ blockThreshold?: "never" | "any-uncited" | "critical-uncited" | undefined;
3351
+ serp?: {
3352
+ provider?: "dataforseo" | "damcrawler" | undefined;
3353
+ } | undefined;
3354
+ aiVisibility?: {
3355
+ samplesPerPrompt?: number | undefined;
3356
+ engines?: {
3357
+ engine: "anthropic" | "openai" | "perplexity";
3358
+ perCallUsd?: number | undefined;
3359
+ }[] | undefined;
3360
+ judge?: {
3361
+ model?: string | undefined;
3362
+ enabled?: boolean | undefined;
3363
+ } | undefined;
3364
+ scrape?: {
3365
+ engines?: ("chatgpt-ui" | "perplexity-ui")[] | undefined;
3366
+ authSession?: string | undefined;
3367
+ proxy?: string | undefined;
3368
+ proxyUsdPerScrape?: number | undefined;
3369
+ maxPerWindow?: number | undefined;
3370
+ windowMs?: number | undefined;
3371
+ maxProxyUsd?: number | undefined;
3372
+ } | undefined;
3373
+ } | undefined;
3374
+ }>>;
1396
3375
  }, "strip", z.ZodTypeAny, {
1397
3376
  project: {
1398
3377
  name: string;
1399
3378
  mode: "greenfield" | "brownfield";
3379
+ preset?: string | undefined;
1400
3380
  stack?: {
1401
3381
  frontend?: string | undefined;
1402
3382
  backend?: string | undefined;
@@ -1406,7 +3386,6 @@ export declare const BoberConfigSchema: z.ZodObject<{
1406
3386
  language?: string | undefined;
1407
3387
  other?: string[] | undefined;
1408
3388
  } | undefined;
1409
- preset?: string | undefined;
1410
3389
  description?: string | undefined;
1411
3390
  };
1412
3391
  planner: {
@@ -1416,6 +3395,10 @@ export declare const BoberConfigSchema: z.ZodObject<{
1416
3395
  provider?: string | undefined;
1417
3396
  endpoint?: string | null | undefined;
1418
3397
  providerConfig?: Record<string, unknown> | undefined;
3398
+ effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined;
3399
+ budget?: {
3400
+ maxUsd?: number | null | undefined;
3401
+ } | undefined;
1419
3402
  };
1420
3403
  generator: {
1421
3404
  model: string;
@@ -1425,6 +3408,11 @@ export declare const BoberConfigSchema: z.ZodObject<{
1425
3408
  provider?: string | undefined;
1426
3409
  endpoint?: string | null | undefined;
1427
3410
  providerConfig?: Record<string, unknown> | undefined;
3411
+ effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined;
3412
+ budget?: {
3413
+ maxUsd?: number | null | undefined;
3414
+ } | undefined;
3415
+ parallelReadOnlyTools?: boolean | undefined;
1428
3416
  };
1429
3417
  evaluator: {
1430
3418
  model: string;
@@ -1445,15 +3433,19 @@ export declare const BoberConfigSchema: z.ZodObject<{
1445
3433
  provider?: string | undefined;
1446
3434
  endpoint?: string | null | undefined;
1447
3435
  providerConfig?: Record<string, unknown> | undefined;
3436
+ effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined;
3437
+ budget?: {
3438
+ maxUsd?: number | null | undefined;
3439
+ } | undefined;
1448
3440
  plugins?: string[] | undefined;
1449
3441
  };
1450
3442
  sprint: {
1451
3443
  maxSprints: number;
1452
3444
  requireContracts: boolean;
1453
- sprintSize: "small" | "medium" | "large";
3445
+ sprintSize: "medium" | "small" | "large";
1454
3446
  };
1455
3447
  pipeline: {
1456
- mode: "careful" | "autopilot";
3448
+ mode: "autopilot" | "careful";
1457
3449
  maxIterations: number;
1458
3450
  maxCheckpointIterations: number;
1459
3451
  requireApproval: boolean;
@@ -1467,7 +3459,7 @@ export declare const BoberConfigSchema: z.ZodObject<{
1467
3459
  eventQueueBound: number;
1468
3460
  worktreeRoot: string;
1469
3461
  cleanupWorktreeOnSuccess: boolean;
1470
- engine: "ts" | "skill" | "workflow";
3462
+ engine: "ts" | "skill" | "workflow" | "medical-sop";
1471
3463
  checkpointMechanism?: "noop" | "cli" | "disk" | "pr" | undefined;
1472
3464
  };
1473
3465
  commands: {
@@ -1485,6 +3477,10 @@ export declare const BoberConfigSchema: z.ZodObject<{
1485
3477
  provider?: string | undefined;
1486
3478
  endpoint?: string | null | undefined;
1487
3479
  providerConfig?: Record<string, unknown> | undefined;
3480
+ effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined;
3481
+ budget?: {
3482
+ maxUsd?: number | null | undefined;
3483
+ } | undefined;
1488
3484
  } | undefined;
1489
3485
  architect?: {
1490
3486
  panel: {
@@ -1496,7 +3492,7 @@ export declare const BoberConfigSchema: z.ZodObject<{
1496
3492
  graph?: {
1497
3493
  enabled: boolean;
1498
3494
  autoSync: boolean;
1499
- languageTier: "all" | "core" | "extended";
3495
+ languageTier: "core" | "extended" | "all";
1500
3496
  manifestPath: string;
1501
3497
  syncTimeoutMs: number;
1502
3498
  queryTimeoutMs: number;
@@ -1533,9 +3529,9 @@ export declare const BoberConfigSchema: z.ZodObject<{
1533
3529
  } | undefined;
1534
3530
  observability?: {
1535
3531
  providers: {
1536
- kind: "custom" | "logs" | "metrics" | "traces" | "errors";
1537
3532
  name: string;
1538
3533
  enabled: boolean;
3534
+ kind: "custom" | "logs" | "metrics" | "traces" | "errors";
1539
3535
  mcpCommand: string;
1540
3536
  mcpArgs?: string[] | undefined;
1541
3537
  mcpEnv?: Record<string, string> | undefined;
@@ -1560,7 +3556,7 @@ export declare const BoberConfigSchema: z.ZodObject<{
1560
3556
  providers?: Record<string, string> | undefined;
1561
3557
  displayName?: string | undefined;
1562
3558
  memoryNamespace?: string | undefined;
1563
- pipelineShape?: "ts" | "skill" | "workflow" | undefined;
3559
+ pipelineShape?: "ts" | "skill" | "workflow" | "medical-sop" | undefined;
1564
3560
  roles?: {
1565
3561
  name: string;
1566
3562
  displayName: string;
@@ -1568,10 +3564,155 @@ export declare const BoberConfigSchema: z.ZodObject<{
1568
3564
  guardrails?: unknown;
1569
3565
  }> | undefined;
1570
3566
  defaultTeam?: string | undefined;
3567
+ medical?: {
3568
+ egress?: {
3569
+ cloudInference: boolean;
3570
+ literatureRetrieval: boolean;
3571
+ deviceConnection: boolean;
3572
+ } | undefined;
3573
+ inference?: {
3574
+ model?: string | undefined;
3575
+ provider?: string | undefined;
3576
+ endpoint?: string | undefined;
3577
+ } | undefined;
3578
+ vaultDir?: string | undefined;
3579
+ } | undefined;
3580
+ fleet?: {
3581
+ blackboardDbPath: string;
3582
+ blackboardNamespace: string;
3583
+ blackboardSubject: string;
3584
+ maxRounds: number;
3585
+ } | undefined;
3586
+ vault?: {
3587
+ obsidian?: {
3588
+ name: string;
3589
+ enabled: boolean;
3590
+ mcpCommand: string;
3591
+ mcpArgs?: string[] | undefined;
3592
+ mcpEnv?: Record<string, string> | undefined;
3593
+ toolNames?: {
3594
+ readNote?: string | undefined;
3595
+ writeNote?: string | undefined;
3596
+ listNotes?: string | undefined;
3597
+ } | undefined;
3598
+ } | undefined;
3599
+ } | undefined;
3600
+ taskInbox?: {
3601
+ gmailEgress: boolean;
3602
+ } | undefined;
3603
+ calendar?: {
3604
+ connector: "ics" | "google";
3605
+ egress?: {
3606
+ cloudCalendar: boolean;
3607
+ } | undefined;
3608
+ timezone?: string | undefined;
3609
+ } | undefined;
3610
+ research?: {
3611
+ egress?: {
3612
+ onlineResearch: boolean;
3613
+ } | undefined;
3614
+ } | undefined;
3615
+ tools?: {
3616
+ mcpBridge?: {
3617
+ enabled: boolean;
3618
+ server: {
3619
+ command: string;
3620
+ args: string[];
3621
+ };
3622
+ } | undefined;
3623
+ } | undefined;
3624
+ security?: {
3625
+ model: string;
3626
+ maxTurns: number;
3627
+ enabled: boolean;
3628
+ timeoutMs: number;
3629
+ failClosed: boolean;
3630
+ scanners: {
3631
+ type: string;
3632
+ required: boolean;
3633
+ plugin?: string | undefined;
3634
+ command?: string | undefined;
3635
+ config?: Record<string, unknown> | undefined;
3636
+ label?: string | undefined;
3637
+ }[];
3638
+ standaloneBlockOn: "critical" | "important";
3639
+ hub: boolean;
3640
+ provider?: string | undefined;
3641
+ endpoint?: string | null | undefined;
3642
+ providerConfig?: Record<string, unknown> | undefined;
3643
+ budget?: {
3644
+ maxUsd?: number | null | undefined;
3645
+ } | undefined;
3646
+ egress?: {
3647
+ onlineResearch: boolean;
3648
+ } | undefined;
3649
+ diff?: {
3650
+ mode: "estimated-files" | "git-diff";
3651
+ expandWithGraph: boolean;
3652
+ baseRef?: string | undefined;
3653
+ } | undefined;
3654
+ supplyChain?: {
3655
+ enabled: boolean;
3656
+ scanners: {
3657
+ type: string;
3658
+ required: boolean;
3659
+ plugin?: string | undefined;
3660
+ command?: string | undefined;
3661
+ config?: Record<string, unknown> | undefined;
3662
+ label?: string | undefined;
3663
+ }[];
3664
+ } | undefined;
3665
+ verifier?: {
3666
+ model: string;
3667
+ maxTurns: number;
3668
+ enabled: boolean;
3669
+ } | undefined;
3670
+ } | undefined;
3671
+ seo?: {
3672
+ blockThreshold: "never" | "any-uncited" | "critical-uncited";
3673
+ budget?: {
3674
+ maxUsd?: number | null | undefined;
3675
+ } | undefined;
3676
+ egress?: {
3677
+ "search-console": boolean;
3678
+ "serp-provider": boolean;
3679
+ "ai-visibility": boolean;
3680
+ "site-crawl": boolean;
3681
+ "ai-visibility-scrape": boolean;
3682
+ } | undefined;
3683
+ verifier?: {
3684
+ enabled: boolean;
3685
+ } | undefined;
3686
+ defaultTarget?: string | undefined;
3687
+ serp?: {
3688
+ provider: "dataforseo" | "damcrawler";
3689
+ } | undefined;
3690
+ aiVisibility?: {
3691
+ samplesPerPrompt: number;
3692
+ engines: {
3693
+ engine: "anthropic" | "openai" | "perplexity";
3694
+ perCallUsd: number;
3695
+ }[];
3696
+ judge?: {
3697
+ enabled: boolean;
3698
+ model?: string | undefined;
3699
+ } | undefined;
3700
+ scrape?: {
3701
+ engines: ("chatgpt-ui" | "perplexity-ui")[];
3702
+ proxyUsdPerScrape: number;
3703
+ maxPerWindow: number;
3704
+ windowMs: number;
3705
+ maxProxyUsd: number;
3706
+ authSession?: string | undefined;
3707
+ proxy?: string | undefined;
3708
+ } | undefined;
3709
+ } | undefined;
3710
+ } | undefined;
1571
3711
  }, {
1572
3712
  project: {
1573
3713
  name: string;
1574
3714
  mode: "greenfield" | "brownfield";
3715
+ preset?: string | undefined;
1575
3716
  stack?: {
1576
3717
  frontend?: string | undefined;
1577
3718
  backend?: string | undefined;
@@ -1581,7 +3722,6 @@ export declare const BoberConfigSchema: z.ZodObject<{
1581
3722
  language?: string | undefined;
1582
3723
  other?: string[] | undefined;
1583
3724
  } | undefined;
1584
- preset?: string | undefined;
1585
3725
  description?: string | undefined;
1586
3726
  };
1587
3727
  planner: {
@@ -1591,15 +3731,24 @@ export declare const BoberConfigSchema: z.ZodObject<{
1591
3731
  provider?: string | undefined;
1592
3732
  endpoint?: string | null | undefined;
1593
3733
  providerConfig?: Record<string, unknown> | undefined;
3734
+ effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined;
3735
+ budget?: {
3736
+ maxUsd?: number | null | undefined;
3737
+ } | undefined;
1594
3738
  };
1595
3739
  generator: {
1596
3740
  model?: string | undefined;
1597
3741
  provider?: string | undefined;
1598
3742
  endpoint?: string | null | undefined;
1599
3743
  providerConfig?: Record<string, unknown> | undefined;
3744
+ effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined;
3745
+ budget?: {
3746
+ maxUsd?: number | null | undefined;
3747
+ } | undefined;
1600
3748
  maxTurnsPerSprint?: number | undefined;
1601
3749
  autoCommit?: boolean | undefined;
1602
3750
  branchPattern?: string | undefined;
3751
+ parallelReadOnlyTools?: boolean | undefined;
1603
3752
  };
1604
3753
  evaluator: {
1605
3754
  strategies: {
@@ -1614,6 +3763,10 @@ export declare const BoberConfigSchema: z.ZodObject<{
1614
3763
  provider?: string | undefined;
1615
3764
  endpoint?: string | null | undefined;
1616
3765
  providerConfig?: Record<string, unknown> | undefined;
3766
+ effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined;
3767
+ budget?: {
3768
+ maxUsd?: number | null | undefined;
3769
+ } | undefined;
1617
3770
  maxIterations?: number | undefined;
1618
3771
  plugins?: string[] | undefined;
1619
3772
  panel?: {
@@ -1625,10 +3778,10 @@ export declare const BoberConfigSchema: z.ZodObject<{
1625
3778
  sprint: {
1626
3779
  maxSprints?: number | undefined;
1627
3780
  requireContracts?: boolean | undefined;
1628
- sprintSize?: "small" | "medium" | "large" | undefined;
3781
+ sprintSize?: "medium" | "small" | "large" | undefined;
1629
3782
  };
1630
3783
  pipeline: {
1631
- mode?: "careful" | "autopilot" | undefined;
3784
+ mode?: "autopilot" | "careful" | undefined;
1632
3785
  maxIterations?: number | undefined;
1633
3786
  maxCheckpointIterations?: number | undefined;
1634
3787
  requireApproval?: boolean | undefined;
@@ -1643,7 +3796,7 @@ export declare const BoberConfigSchema: z.ZodObject<{
1643
3796
  eventQueueBound?: number | undefined;
1644
3797
  worktreeRoot?: string | undefined;
1645
3798
  cleanupWorktreeOnSuccess?: boolean | undefined;
1646
- engine?: "ts" | "skill" | "workflow" | undefined;
3799
+ engine?: "ts" | "skill" | "workflow" | "medical-sop" | undefined;
1647
3800
  };
1648
3801
  commands: {
1649
3802
  install?: string | undefined;
@@ -1658,6 +3811,10 @@ export declare const BoberConfigSchema: z.ZodObject<{
1658
3811
  provider?: string | undefined;
1659
3812
  endpoint?: string | null | undefined;
1660
3813
  providerConfig?: Record<string, unknown> | undefined;
3814
+ effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined;
3815
+ budget?: {
3816
+ maxUsd?: number | null | undefined;
3817
+ } | undefined;
1661
3818
  maxTurns?: number | undefined;
1662
3819
  enabled?: boolean | undefined;
1663
3820
  } | undefined;
@@ -1672,7 +3829,7 @@ export declare const BoberConfigSchema: z.ZodObject<{
1672
3829
  enabled?: boolean | undefined;
1673
3830
  tokensavePath?: string | undefined;
1674
3831
  autoSync?: boolean | undefined;
1675
- languageTier?: "all" | "core" | "extended" | undefined;
3832
+ languageTier?: "core" | "extended" | "all" | undefined;
1676
3833
  manifestPath?: string | undefined;
1677
3834
  syncTimeoutMs?: number | undefined;
1678
3835
  queryTimeoutMs?: number | undefined;
@@ -1708,8 +3865,8 @@ export declare const BoberConfigSchema: z.ZodObject<{
1708
3865
  } | undefined;
1709
3866
  observability?: {
1710
3867
  providers?: {
1711
- kind: "custom" | "logs" | "metrics" | "traces" | "errors";
1712
3868
  name: string;
3869
+ kind: "custom" | "logs" | "metrics" | "traces" | "errors";
1713
3870
  mcpCommand: string;
1714
3871
  enabled?: boolean | undefined;
1715
3872
  mcpArgs?: string[] | undefined;
@@ -1735,7 +3892,7 @@ export declare const BoberConfigSchema: z.ZodObject<{
1735
3892
  providers?: Record<string, string> | undefined;
1736
3893
  displayName?: string | undefined;
1737
3894
  memoryNamespace?: string | undefined;
1738
- pipelineShape?: "ts" | "skill" | "workflow" | undefined;
3895
+ pipelineShape?: "ts" | "skill" | "workflow" | "medical-sop" | undefined;
1739
3896
  roles?: {
1740
3897
  name: string;
1741
3898
  displayName: string;
@@ -1743,6 +3900,150 @@ export declare const BoberConfigSchema: z.ZodObject<{
1743
3900
  guardrails?: unknown;
1744
3901
  }> | undefined;
1745
3902
  defaultTeam?: string | undefined;
3903
+ medical?: {
3904
+ egress?: {
3905
+ cloudInference?: boolean | undefined;
3906
+ literatureRetrieval?: boolean | undefined;
3907
+ deviceConnection?: boolean | undefined;
3908
+ } | undefined;
3909
+ inference?: {
3910
+ model?: string | undefined;
3911
+ provider?: string | undefined;
3912
+ endpoint?: string | undefined;
3913
+ } | undefined;
3914
+ vaultDir?: string | undefined;
3915
+ } | undefined;
3916
+ fleet?: {
3917
+ blackboardDbPath: string;
3918
+ blackboardNamespace: string;
3919
+ blackboardSubject: string;
3920
+ maxRounds: number;
3921
+ } | undefined;
3922
+ vault?: {
3923
+ obsidian?: {
3924
+ name: string;
3925
+ mcpCommand: string;
3926
+ enabled?: boolean | undefined;
3927
+ mcpArgs?: string[] | undefined;
3928
+ mcpEnv?: Record<string, string> | undefined;
3929
+ toolNames?: {
3930
+ readNote?: string | undefined;
3931
+ writeNote?: string | undefined;
3932
+ listNotes?: string | undefined;
3933
+ } | undefined;
3934
+ } | undefined;
3935
+ } | undefined;
3936
+ taskInbox?: {
3937
+ gmailEgress?: boolean | undefined;
3938
+ } | undefined;
3939
+ calendar?: {
3940
+ egress?: {
3941
+ cloudCalendar?: boolean | undefined;
3942
+ } | undefined;
3943
+ connector?: "ics" | "google" | undefined;
3944
+ timezone?: string | undefined;
3945
+ } | undefined;
3946
+ research?: {
3947
+ egress?: {
3948
+ onlineResearch?: boolean | undefined;
3949
+ } | undefined;
3950
+ } | undefined;
3951
+ tools?: {
3952
+ mcpBridge?: {
3953
+ server: {
3954
+ command: string;
3955
+ args?: string[] | undefined;
3956
+ };
3957
+ enabled?: boolean | undefined;
3958
+ } | undefined;
3959
+ } | undefined;
3960
+ security?: {
3961
+ model?: string | undefined;
3962
+ provider?: string | undefined;
3963
+ endpoint?: string | null | undefined;
3964
+ providerConfig?: Record<string, unknown> | undefined;
3965
+ budget?: {
3966
+ maxUsd?: number | null | undefined;
3967
+ } | undefined;
3968
+ maxTurns?: number | undefined;
3969
+ enabled?: boolean | undefined;
3970
+ timeoutMs?: number | undefined;
3971
+ egress?: {
3972
+ onlineResearch?: boolean | undefined;
3973
+ } | undefined;
3974
+ failClosed?: boolean | undefined;
3975
+ scanners?: {
3976
+ type: string;
3977
+ required: boolean;
3978
+ plugin?: string | undefined;
3979
+ command?: string | undefined;
3980
+ config?: Record<string, unknown> | undefined;
3981
+ label?: string | undefined;
3982
+ }[] | undefined;
3983
+ standaloneBlockOn?: "critical" | "important" | undefined;
3984
+ hub?: boolean | undefined;
3985
+ diff?: {
3986
+ mode?: "estimated-files" | "git-diff" | undefined;
3987
+ baseRef?: string | undefined;
3988
+ expandWithGraph?: boolean | undefined;
3989
+ } | undefined;
3990
+ supplyChain?: {
3991
+ enabled?: boolean | undefined;
3992
+ scanners?: {
3993
+ type: string;
3994
+ required: boolean;
3995
+ plugin?: string | undefined;
3996
+ command?: string | undefined;
3997
+ config?: Record<string, unknown> | undefined;
3998
+ label?: string | undefined;
3999
+ }[] | undefined;
4000
+ } | undefined;
4001
+ verifier?: {
4002
+ model?: string | undefined;
4003
+ maxTurns?: number | undefined;
4004
+ enabled?: boolean | undefined;
4005
+ } | undefined;
4006
+ } | undefined;
4007
+ seo?: {
4008
+ budget?: {
4009
+ maxUsd?: number | null | undefined;
4010
+ } | undefined;
4011
+ egress?: {
4012
+ "search-console"?: boolean | undefined;
4013
+ "serp-provider"?: boolean | undefined;
4014
+ "ai-visibility"?: boolean | undefined;
4015
+ "site-crawl"?: boolean | undefined;
4016
+ "ai-visibility-scrape"?: boolean | undefined;
4017
+ } | undefined;
4018
+ verifier?: {
4019
+ enabled?: boolean | undefined;
4020
+ } | undefined;
4021
+ defaultTarget?: string | undefined;
4022
+ blockThreshold?: "never" | "any-uncited" | "critical-uncited" | undefined;
4023
+ serp?: {
4024
+ provider?: "dataforseo" | "damcrawler" | undefined;
4025
+ } | undefined;
4026
+ aiVisibility?: {
4027
+ samplesPerPrompt?: number | undefined;
4028
+ engines?: {
4029
+ engine: "anthropic" | "openai" | "perplexity";
4030
+ perCallUsd?: number | undefined;
4031
+ }[] | undefined;
4032
+ judge?: {
4033
+ model?: string | undefined;
4034
+ enabled?: boolean | undefined;
4035
+ } | undefined;
4036
+ scrape?: {
4037
+ engines?: ("chatgpt-ui" | "perplexity-ui")[] | undefined;
4038
+ authSession?: string | undefined;
4039
+ proxy?: string | undefined;
4040
+ proxyUsdPerScrape?: number | undefined;
4041
+ maxPerWindow?: number | undefined;
4042
+ windowMs?: number | undefined;
4043
+ maxProxyUsd?: number | undefined;
4044
+ } | undefined;
4045
+ } | undefined;
4046
+ } | undefined;
1746
4047
  }>;
1747
4048
  export type BoberConfig = z.infer<typeof BoberConfigSchema>;
1748
4049
  /**
@@ -1757,6 +4058,14 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
1757
4058
  provider: z.ZodOptional<z.ZodOptional<z.ZodString>>;
1758
4059
  endpoint: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
1759
4060
  providerConfig: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
4061
+ effort: z.ZodOptional<z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh", "max"]>>>;
4062
+ budget: z.ZodOptional<z.ZodOptional<z.ZodObject<{
4063
+ maxUsd: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodNumber>>>;
4064
+ }, "strip", z.ZodTypeAny, {
4065
+ maxUsd?: number | null | undefined;
4066
+ }, {
4067
+ maxUsd?: number | null | undefined;
4068
+ }>>>;
1760
4069
  }, "strip", z.ZodTypeAny, {
1761
4070
  maxClarifications?: number | undefined;
1762
4071
  model?: string | undefined;
@@ -1764,6 +4073,10 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
1764
4073
  provider?: string | undefined;
1765
4074
  endpoint?: string | null | undefined;
1766
4075
  providerConfig?: Record<string, unknown> | undefined;
4076
+ effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined;
4077
+ budget?: {
4078
+ maxUsd?: number | null | undefined;
4079
+ } | undefined;
1767
4080
  }, {
1768
4081
  maxClarifications?: number | undefined;
1769
4082
  model?: string | undefined;
@@ -1771,6 +4084,10 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
1771
4084
  provider?: string | undefined;
1772
4085
  endpoint?: string | null | undefined;
1773
4086
  providerConfig?: Record<string, unknown> | undefined;
4087
+ effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined;
4088
+ budget?: {
4089
+ maxUsd?: number | null | undefined;
4090
+ } | undefined;
1774
4091
  }>>;
1775
4092
  curator: z.ZodOptional<z.ZodOptional<z.ZodObject<{
1776
4093
  model: z.ZodOptional<z.ZodDefault<z.ZodString>>;
@@ -1779,11 +4096,23 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
1779
4096
  provider: z.ZodOptional<z.ZodOptional<z.ZodString>>;
1780
4097
  endpoint: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
1781
4098
  providerConfig: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
4099
+ effort: z.ZodOptional<z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh", "max"]>>>;
4100
+ budget: z.ZodOptional<z.ZodOptional<z.ZodObject<{
4101
+ maxUsd: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodNumber>>>;
4102
+ }, "strip", z.ZodTypeAny, {
4103
+ maxUsd?: number | null | undefined;
4104
+ }, {
4105
+ maxUsd?: number | null | undefined;
4106
+ }>>>;
1782
4107
  }, "strip", z.ZodTypeAny, {
1783
4108
  model?: string | undefined;
1784
4109
  provider?: string | undefined;
1785
4110
  endpoint?: string | null | undefined;
1786
4111
  providerConfig?: Record<string, unknown> | undefined;
4112
+ effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined;
4113
+ budget?: {
4114
+ maxUsd?: number | null | undefined;
4115
+ } | undefined;
1787
4116
  maxTurns?: number | undefined;
1788
4117
  enabled?: boolean | undefined;
1789
4118
  }, {
@@ -1791,6 +4120,10 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
1791
4120
  provider?: string | undefined;
1792
4121
  endpoint?: string | null | undefined;
1793
4122
  providerConfig?: Record<string, unknown> | undefined;
4123
+ effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined;
4124
+ budget?: {
4125
+ maxUsd?: number | null | undefined;
4126
+ } | undefined;
1794
4127
  maxTurns?: number | undefined;
1795
4128
  enabled?: boolean | undefined;
1796
4129
  }>>>;
@@ -1802,22 +4135,41 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
1802
4135
  provider: z.ZodOptional<z.ZodOptional<z.ZodString>>;
1803
4136
  endpoint: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
1804
4137
  providerConfig: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
4138
+ effort: z.ZodOptional<z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh", "max"]>>>;
4139
+ budget: z.ZodOptional<z.ZodOptional<z.ZodObject<{
4140
+ maxUsd: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodNumber>>>;
4141
+ }, "strip", z.ZodTypeAny, {
4142
+ maxUsd?: number | null | undefined;
4143
+ }, {
4144
+ maxUsd?: number | null | undefined;
4145
+ }>>>;
4146
+ parallelReadOnlyTools: z.ZodOptional<z.ZodOptional<z.ZodBoolean>>;
1805
4147
  }, "strip", z.ZodTypeAny, {
1806
4148
  model?: string | undefined;
1807
4149
  provider?: string | undefined;
1808
4150
  endpoint?: string | null | undefined;
1809
4151
  providerConfig?: Record<string, unknown> | undefined;
4152
+ effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined;
4153
+ budget?: {
4154
+ maxUsd?: number | null | undefined;
4155
+ } | undefined;
1810
4156
  maxTurnsPerSprint?: number | undefined;
1811
4157
  autoCommit?: boolean | undefined;
1812
4158
  branchPattern?: string | undefined;
4159
+ parallelReadOnlyTools?: boolean | undefined;
1813
4160
  }, {
1814
4161
  model?: string | undefined;
1815
4162
  provider?: string | undefined;
1816
4163
  endpoint?: string | null | undefined;
1817
4164
  providerConfig?: Record<string, unknown> | undefined;
4165
+ effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined;
4166
+ budget?: {
4167
+ maxUsd?: number | null | undefined;
4168
+ } | undefined;
1818
4169
  maxTurnsPerSprint?: number | undefined;
1819
4170
  autoCommit?: boolean | undefined;
1820
4171
  branchPattern?: string | undefined;
4172
+ parallelReadOnlyTools?: boolean | undefined;
1821
4173
  }>>;
1822
4174
  evaluator: z.ZodOptional<z.ZodObject<{
1823
4175
  model: z.ZodOptional<z.ZodDefault<z.ZodString>>;
@@ -1861,11 +4213,23 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
1861
4213
  lenses?: string[] | undefined;
1862
4214
  maxConcurrent?: number | undefined;
1863
4215
  }>>>;
4216
+ effort: z.ZodOptional<z.ZodOptional<z.ZodEnum<["low", "medium", "high", "xhigh", "max"]>>>;
4217
+ budget: z.ZodOptional<z.ZodOptional<z.ZodObject<{
4218
+ maxUsd: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodNumber>>>;
4219
+ }, "strip", z.ZodTypeAny, {
4220
+ maxUsd?: number | null | undefined;
4221
+ }, {
4222
+ maxUsd?: number | null | undefined;
4223
+ }>>>;
1864
4224
  }, "strip", z.ZodTypeAny, {
1865
4225
  model?: string | undefined;
1866
4226
  provider?: string | undefined;
1867
4227
  endpoint?: string | null | undefined;
1868
4228
  providerConfig?: Record<string, unknown> | undefined;
4229
+ effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined;
4230
+ budget?: {
4231
+ maxUsd?: number | null | undefined;
4232
+ } | undefined;
1869
4233
  strategies?: {
1870
4234
  type?: string | undefined;
1871
4235
  plugin?: string | undefined;
@@ -1886,6 +4250,10 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
1886
4250
  provider?: string | undefined;
1887
4251
  endpoint?: string | null | undefined;
1888
4252
  providerConfig?: Record<string, unknown> | undefined;
4253
+ effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined;
4254
+ budget?: {
4255
+ maxUsd?: number | null | undefined;
4256
+ } | undefined;
1889
4257
  strategies?: {
1890
4258
  type?: string | undefined;
1891
4259
  plugin?: string | undefined;
@@ -1909,11 +4277,11 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
1909
4277
  }, "strip", z.ZodTypeAny, {
1910
4278
  maxSprints?: number | undefined;
1911
4279
  requireContracts?: boolean | undefined;
1912
- sprintSize?: "small" | "medium" | "large" | undefined;
4280
+ sprintSize?: "medium" | "small" | "large" | undefined;
1913
4281
  }, {
1914
4282
  maxSprints?: number | undefined;
1915
4283
  requireContracts?: boolean | undefined;
1916
- sprintSize?: "small" | "medium" | "large" | undefined;
4284
+ sprintSize?: "medium" | "small" | "large" | undefined;
1917
4285
  }>>;
1918
4286
  pipeline: z.ZodOptional<z.ZodObject<{
1919
4287
  maxIterations: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
@@ -1931,9 +4299,9 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
1931
4299
  eventQueueBound: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
1932
4300
  worktreeRoot: z.ZodOptional<z.ZodDefault<z.ZodString>>;
1933
4301
  cleanupWorktreeOnSuccess: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
1934
- engine: z.ZodOptional<z.ZodDefault<z.ZodEnum<["ts", "skill", "workflow"]>>>;
4302
+ engine: z.ZodOptional<z.ZodDefault<z.ZodEnum<["ts", "skill", "workflow", "medical-sop"]>>>;
1935
4303
  }, "strip", z.ZodTypeAny, {
1936
- mode?: "careful" | "autopilot" | undefined;
4304
+ mode?: "autopilot" | "careful" | undefined;
1937
4305
  maxIterations?: number | undefined;
1938
4306
  maxCheckpointIterations?: number | undefined;
1939
4307
  requireApproval?: boolean | undefined;
@@ -1948,9 +4316,9 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
1948
4316
  eventQueueBound?: number | undefined;
1949
4317
  worktreeRoot?: string | undefined;
1950
4318
  cleanupWorktreeOnSuccess?: boolean | undefined;
1951
- engine?: "ts" | "skill" | "workflow" | undefined;
4319
+ engine?: "ts" | "skill" | "workflow" | "medical-sop" | undefined;
1952
4320
  }, {
1953
- mode?: "careful" | "autopilot" | undefined;
4321
+ mode?: "autopilot" | "careful" | undefined;
1954
4322
  maxIterations?: number | undefined;
1955
4323
  maxCheckpointIterations?: number | undefined;
1956
4324
  requireApproval?: boolean | undefined;
@@ -1965,7 +4333,7 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
1965
4333
  eventQueueBound?: number | undefined;
1966
4334
  worktreeRoot?: string | undefined;
1967
4335
  cleanupWorktreeOnSuccess?: boolean | undefined;
1968
- engine?: "ts" | "skill" | "workflow" | undefined;
4336
+ engine?: "ts" | "skill" | "workflow" | "medical-sop" | undefined;
1969
4337
  }>>;
1970
4338
  commands: z.ZodOptional<z.ZodObject<{
1971
4339
  install: z.ZodOptional<z.ZodOptional<z.ZodString>>;
@@ -2025,7 +4393,7 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
2025
4393
  enabled?: boolean | undefined;
2026
4394
  tokensavePath?: string | undefined;
2027
4395
  autoSync?: boolean | undefined;
2028
- languageTier?: "all" | "core" | "extended" | undefined;
4396
+ languageTier?: "core" | "extended" | "all" | undefined;
2029
4397
  manifestPath?: string | undefined;
2030
4398
  syncTimeoutMs?: number | undefined;
2031
4399
  queryTimeoutMs?: number | undefined;
@@ -2044,7 +4412,7 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
2044
4412
  enabled?: boolean | undefined;
2045
4413
  tokensavePath?: string | undefined;
2046
4414
  autoSync?: boolean | undefined;
2047
- languageTier?: "all" | "core" | "extended" | undefined;
4415
+ languageTier?: "core" | "extended" | "all" | undefined;
2048
4416
  manifestPath?: string | undefined;
2049
4417
  syncTimeoutMs?: number | undefined;
2050
4418
  queryTimeoutMs?: number | undefined;
@@ -2122,15 +4490,15 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
2122
4490
  mcpEnv: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
2123
4491
  enabled: z.ZodDefault<z.ZodBoolean>;
2124
4492
  }, "strip", z.ZodTypeAny, {
2125
- kind: "custom" | "logs" | "metrics" | "traces" | "errors";
2126
4493
  name: string;
2127
4494
  enabled: boolean;
4495
+ kind: "custom" | "logs" | "metrics" | "traces" | "errors";
2128
4496
  mcpCommand: string;
2129
4497
  mcpArgs?: string[] | undefined;
2130
4498
  mcpEnv?: Record<string, string> | undefined;
2131
4499
  }, {
2132
- kind: "custom" | "logs" | "metrics" | "traces" | "errors";
2133
4500
  name: string;
4501
+ kind: "custom" | "logs" | "metrics" | "traces" | "errors";
2134
4502
  mcpCommand: string;
2135
4503
  enabled?: boolean | undefined;
2136
4504
  mcpArgs?: string[] | undefined;
@@ -2138,17 +4506,17 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
2138
4506
  }>, "many">>>;
2139
4507
  }, "strip", z.ZodTypeAny, {
2140
4508
  providers?: {
2141
- kind: "custom" | "logs" | "metrics" | "traces" | "errors";
2142
4509
  name: string;
2143
4510
  enabled: boolean;
4511
+ kind: "custom" | "logs" | "metrics" | "traces" | "errors";
2144
4512
  mcpCommand: string;
2145
4513
  mcpArgs?: string[] | undefined;
2146
4514
  mcpEnv?: Record<string, string> | undefined;
2147
4515
  }[] | undefined;
2148
4516
  }, {
2149
4517
  providers?: {
2150
- kind: "custom" | "logs" | "metrics" | "traces" | "errors";
2151
4518
  name: string;
4519
+ kind: "custom" | "logs" | "metrics" | "traces" | "errors";
2152
4520
  mcpCommand: string;
2153
4521
  enabled?: boolean | undefined;
2154
4522
  mcpArgs?: string[] | undefined;
@@ -2175,91 +4543,752 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
2175
4543
  lenses: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
2176
4544
  maxConcurrent: z.ZodDefault<z.ZodNumber>;
2177
4545
  }, "strip", z.ZodTypeAny, {
2178
- enabled: boolean;
2179
- lenses: string[];
2180
- maxConcurrent: number;
4546
+ enabled: boolean;
4547
+ lenses: string[];
4548
+ maxConcurrent: number;
4549
+ }, {
4550
+ enabled?: boolean | undefined;
4551
+ lenses?: string[] | undefined;
4552
+ maxConcurrent?: number | undefined;
4553
+ }>>>;
4554
+ }, "strip", z.ZodTypeAny, {
4555
+ panel?: {
4556
+ enabled: boolean;
4557
+ lenses: string[];
4558
+ maxConcurrent: number;
4559
+ } | undefined;
4560
+ }, {
4561
+ panel?: {
4562
+ enabled?: boolean | undefined;
4563
+ lenses?: string[] | undefined;
4564
+ maxConcurrent?: number | undefined;
4565
+ } | undefined;
4566
+ }>>>;
4567
+ history: z.ZodOptional<z.ZodOptional<z.ZodObject<{
4568
+ maxActiveLines: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
4569
+ }, "strip", z.ZodTypeAny, {
4570
+ maxActiveLines?: number | undefined;
4571
+ }, {
4572
+ maxActiveLines?: number | undefined;
4573
+ }>>>;
4574
+ chat: z.ZodOptional<z.ZodOptional<z.ZodObject<{
4575
+ model: z.ZodOptional<z.ZodDefault<z.ZodString>>;
4576
+ provider: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4577
+ endpoint: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
4578
+ providerConfig: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
4579
+ }, "strip", z.ZodTypeAny, {
4580
+ model?: string | undefined;
4581
+ provider?: string | undefined;
4582
+ endpoint?: string | null | undefined;
4583
+ providerConfig?: Record<string, unknown> | undefined;
4584
+ }, {
4585
+ model?: string | undefined;
4586
+ provider?: string | undefined;
4587
+ endpoint?: string | null | undefined;
4588
+ providerConfig?: Record<string, unknown> | undefined;
4589
+ }>>>;
4590
+ teams: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
4591
+ displayName: z.ZodOptional<z.ZodString>;
4592
+ /** Memory namespace segment — restricted to a safe path segment. */
4593
+ memoryNamespace: z.ZodOptional<z.ZodString>;
4594
+ /** Orchestration engine shape for this team. Mirrors the z.enum in PipelineSectionSchema. */
4595
+ pipelineShape: z.ZodOptional<z.ZodEnum<["ts", "skill", "workflow", "medical-sop"]>>;
4596
+ /** Partial role -> provider override. Keys SHOULD be RoleName values. */
4597
+ providers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
4598
+ roles: z.ZodOptional<z.ZodArray<z.ZodObject<{
4599
+ name: z.ZodString;
4600
+ displayName: z.ZodString;
4601
+ }, "strip", z.ZodTypeAny, {
4602
+ name: string;
4603
+ displayName: string;
4604
+ }, {
4605
+ name: string;
4606
+ displayName: string;
4607
+ }>, "many">>;
4608
+ guardrails: z.ZodOptional<z.ZodUnknown>;
4609
+ }, "strip", z.ZodTypeAny, {
4610
+ providers?: Record<string, string> | undefined;
4611
+ displayName?: string | undefined;
4612
+ memoryNamespace?: string | undefined;
4613
+ pipelineShape?: "ts" | "skill" | "workflow" | "medical-sop" | undefined;
4614
+ roles?: {
4615
+ name: string;
4616
+ displayName: string;
4617
+ }[] | undefined;
4618
+ guardrails?: unknown;
4619
+ }, {
4620
+ providers?: Record<string, string> | undefined;
4621
+ displayName?: string | undefined;
4622
+ memoryNamespace?: string | undefined;
4623
+ pipelineShape?: "ts" | "skill" | "workflow" | "medical-sop" | undefined;
4624
+ roles?: {
4625
+ name: string;
4626
+ displayName: string;
4627
+ }[] | undefined;
4628
+ guardrails?: unknown;
4629
+ }>>>>;
4630
+ defaultTeam: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4631
+ medical: z.ZodOptional<z.ZodOptional<z.ZodObject<{
4632
+ egress: z.ZodOptional<z.ZodOptional<z.ZodObject<{
4633
+ cloudInference: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
4634
+ literatureRetrieval: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
4635
+ deviceConnection: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
4636
+ }, "strip", z.ZodTypeAny, {
4637
+ cloudInference?: boolean | undefined;
4638
+ literatureRetrieval?: boolean | undefined;
4639
+ deviceConnection?: boolean | undefined;
4640
+ }, {
4641
+ cloudInference?: boolean | undefined;
4642
+ literatureRetrieval?: boolean | undefined;
4643
+ deviceConnection?: boolean | undefined;
4644
+ }>>>;
4645
+ inference: z.ZodOptional<z.ZodOptional<z.ZodObject<{
4646
+ provider: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4647
+ endpoint: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4648
+ model: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4649
+ }, "strip", z.ZodTypeAny, {
4650
+ model?: string | undefined;
4651
+ provider?: string | undefined;
4652
+ endpoint?: string | undefined;
4653
+ }, {
4654
+ model?: string | undefined;
4655
+ provider?: string | undefined;
4656
+ endpoint?: string | undefined;
4657
+ }>>>;
4658
+ vaultDir: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4659
+ }, "strip", z.ZodTypeAny, {
4660
+ egress?: {
4661
+ cloudInference?: boolean | undefined;
4662
+ literatureRetrieval?: boolean | undefined;
4663
+ deviceConnection?: boolean | undefined;
4664
+ } | undefined;
4665
+ inference?: {
4666
+ model?: string | undefined;
4667
+ provider?: string | undefined;
4668
+ endpoint?: string | undefined;
4669
+ } | undefined;
4670
+ vaultDir?: string | undefined;
4671
+ }, {
4672
+ egress?: {
4673
+ cloudInference?: boolean | undefined;
4674
+ literatureRetrieval?: boolean | undefined;
4675
+ deviceConnection?: boolean | undefined;
4676
+ } | undefined;
4677
+ inference?: {
4678
+ model?: string | undefined;
4679
+ provider?: string | undefined;
4680
+ endpoint?: string | undefined;
4681
+ } | undefined;
4682
+ vaultDir?: string | undefined;
4683
+ }>>>;
4684
+ fleet: z.ZodOptional<z.ZodOptional<z.ZodObject<{
4685
+ blackboardDbPath: z.ZodOptional<z.ZodString>;
4686
+ blackboardNamespace: z.ZodOptional<z.ZodString>;
4687
+ blackboardSubject: z.ZodOptional<z.ZodString>;
4688
+ maxRounds: z.ZodOptional<z.ZodNumber>;
4689
+ }, "strip", z.ZodTypeAny, {
4690
+ blackboardDbPath?: string | undefined;
4691
+ blackboardNamespace?: string | undefined;
4692
+ blackboardSubject?: string | undefined;
4693
+ maxRounds?: number | undefined;
4694
+ }, {
4695
+ blackboardDbPath?: string | undefined;
4696
+ blackboardNamespace?: string | undefined;
4697
+ blackboardSubject?: string | undefined;
4698
+ maxRounds?: number | undefined;
4699
+ }>>>;
4700
+ vault: z.ZodOptional<z.ZodOptional<z.ZodObject<{
4701
+ obsidian: z.ZodOptional<z.ZodOptional<z.ZodObject<{
4702
+ name: z.ZodOptional<z.ZodString>;
4703
+ mcpCommand: z.ZodOptional<z.ZodString>;
4704
+ mcpArgs: z.ZodOptional<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
4705
+ mcpEnv: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>>;
4706
+ enabled: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
4707
+ toolNames: z.ZodOptional<z.ZodOptional<z.ZodObject<{
4708
+ readNote: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4709
+ writeNote: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4710
+ listNotes: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4711
+ }, "strip", z.ZodTypeAny, {
4712
+ readNote?: string | undefined;
4713
+ writeNote?: string | undefined;
4714
+ listNotes?: string | undefined;
4715
+ }, {
4716
+ readNote?: string | undefined;
4717
+ writeNote?: string | undefined;
4718
+ listNotes?: string | undefined;
4719
+ }>>>;
4720
+ }, "strip", z.ZodTypeAny, {
4721
+ name?: string | undefined;
4722
+ enabled?: boolean | undefined;
4723
+ mcpCommand?: string | undefined;
4724
+ mcpArgs?: string[] | undefined;
4725
+ mcpEnv?: Record<string, string> | undefined;
4726
+ toolNames?: {
4727
+ readNote?: string | undefined;
4728
+ writeNote?: string | undefined;
4729
+ listNotes?: string | undefined;
4730
+ } | undefined;
4731
+ }, {
4732
+ name?: string | undefined;
4733
+ enabled?: boolean | undefined;
4734
+ mcpCommand?: string | undefined;
4735
+ mcpArgs?: string[] | undefined;
4736
+ mcpEnv?: Record<string, string> | undefined;
4737
+ toolNames?: {
4738
+ readNote?: string | undefined;
4739
+ writeNote?: string | undefined;
4740
+ listNotes?: string | undefined;
4741
+ } | undefined;
4742
+ }>>>;
4743
+ }, "strip", z.ZodTypeAny, {
4744
+ obsidian?: {
4745
+ name?: string | undefined;
4746
+ enabled?: boolean | undefined;
4747
+ mcpCommand?: string | undefined;
4748
+ mcpArgs?: string[] | undefined;
4749
+ mcpEnv?: Record<string, string> | undefined;
4750
+ toolNames?: {
4751
+ readNote?: string | undefined;
4752
+ writeNote?: string | undefined;
4753
+ listNotes?: string | undefined;
4754
+ } | undefined;
4755
+ } | undefined;
4756
+ }, {
4757
+ obsidian?: {
4758
+ name?: string | undefined;
4759
+ enabled?: boolean | undefined;
4760
+ mcpCommand?: string | undefined;
4761
+ mcpArgs?: string[] | undefined;
4762
+ mcpEnv?: Record<string, string> | undefined;
4763
+ toolNames?: {
4764
+ readNote?: string | undefined;
4765
+ writeNote?: string | undefined;
4766
+ listNotes?: string | undefined;
4767
+ } | undefined;
4768
+ } | undefined;
4769
+ }>>>;
4770
+ taskInbox: z.ZodOptional<z.ZodOptional<z.ZodObject<{
4771
+ gmailEgress: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
4772
+ }, "strip", z.ZodTypeAny, {
4773
+ gmailEgress?: boolean | undefined;
4774
+ }, {
4775
+ gmailEgress?: boolean | undefined;
4776
+ }>>>;
4777
+ calendar: z.ZodOptional<z.ZodOptional<z.ZodObject<{
4778
+ egress: z.ZodOptional<z.ZodOptional<z.ZodObject<{
4779
+ cloudCalendar: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
4780
+ }, "strip", z.ZodTypeAny, {
4781
+ cloudCalendar?: boolean | undefined;
4782
+ }, {
4783
+ cloudCalendar?: boolean | undefined;
4784
+ }>>>;
4785
+ connector: z.ZodOptional<z.ZodDefault<z.ZodEnum<["ics", "google"]>>>;
4786
+ timezone: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4787
+ }, "strip", z.ZodTypeAny, {
4788
+ egress?: {
4789
+ cloudCalendar?: boolean | undefined;
4790
+ } | undefined;
4791
+ connector?: "ics" | "google" | undefined;
4792
+ timezone?: string | undefined;
4793
+ }, {
4794
+ egress?: {
4795
+ cloudCalendar?: boolean | undefined;
4796
+ } | undefined;
4797
+ connector?: "ics" | "google" | undefined;
4798
+ timezone?: string | undefined;
4799
+ }>>>;
4800
+ research: z.ZodOptional<z.ZodOptional<z.ZodObject<{
4801
+ egress: z.ZodOptional<z.ZodOptional<z.ZodObject<{
4802
+ onlineResearch: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
4803
+ }, "strip", z.ZodTypeAny, {
4804
+ onlineResearch?: boolean | undefined;
4805
+ }, {
4806
+ onlineResearch?: boolean | undefined;
4807
+ }>>>;
4808
+ }, "strip", z.ZodTypeAny, {
4809
+ egress?: {
4810
+ onlineResearch?: boolean | undefined;
4811
+ } | undefined;
4812
+ }, {
4813
+ egress?: {
4814
+ onlineResearch?: boolean | undefined;
4815
+ } | undefined;
4816
+ }>>>;
4817
+ tools: z.ZodOptional<z.ZodOptional<z.ZodObject<{
4818
+ mcpBridge: z.ZodOptional<z.ZodOptional<z.ZodObject<{
4819
+ enabled: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
4820
+ server: z.ZodOptional<z.ZodObject<{
4821
+ command: z.ZodOptional<z.ZodString>;
4822
+ args: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodString, "many">>>;
4823
+ }, "strip", z.ZodTypeAny, {
4824
+ command?: string | undefined;
4825
+ args?: string[] | undefined;
4826
+ }, {
4827
+ command?: string | undefined;
4828
+ args?: string[] | undefined;
4829
+ }>>;
4830
+ }, "strip", z.ZodTypeAny, {
4831
+ enabled?: boolean | undefined;
4832
+ server?: {
4833
+ command?: string | undefined;
4834
+ args?: string[] | undefined;
4835
+ } | undefined;
4836
+ }, {
4837
+ enabled?: boolean | undefined;
4838
+ server?: {
4839
+ command?: string | undefined;
4840
+ args?: string[] | undefined;
4841
+ } | undefined;
4842
+ }>>>;
4843
+ }, "strip", z.ZodTypeAny, {
4844
+ mcpBridge?: {
4845
+ enabled?: boolean | undefined;
4846
+ server?: {
4847
+ command?: string | undefined;
4848
+ args?: string[] | undefined;
4849
+ } | undefined;
4850
+ } | undefined;
4851
+ }, {
4852
+ mcpBridge?: {
4853
+ enabled?: boolean | undefined;
4854
+ server?: {
4855
+ command?: string | undefined;
4856
+ args?: string[] | undefined;
4857
+ } | undefined;
4858
+ } | undefined;
4859
+ }>>>;
4860
+ security: z.ZodOptional<z.ZodOptional<z.ZodObject<{
4861
+ enabled: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
4862
+ failClosed: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
4863
+ timeoutMs: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
4864
+ model: z.ZodOptional<z.ZodDefault<z.ZodString>>;
4865
+ maxTurns: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
4866
+ provider: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4867
+ endpoint: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
4868
+ providerConfig: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
4869
+ budget: z.ZodOptional<z.ZodOptional<z.ZodObject<{
4870
+ maxUsd: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodNumber>>>;
4871
+ }, "strip", z.ZodTypeAny, {
4872
+ maxUsd?: number | null | undefined;
4873
+ }, {
4874
+ maxUsd?: number | null | undefined;
4875
+ }>>>;
4876
+ scanners: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodObject<{
4877
+ /** Strategy type — built-in name OR any custom name (e.g. "k6", "anchor-verify", "slither"). */
4878
+ type: z.ZodString;
4879
+ /** Path to a custom plugin module (for type "custom" or any non-built-in type). */
4880
+ plugin: z.ZodOptional<z.ZodString>;
4881
+ /** Shell command to run directly — shorthand alternative to writing a plugin file. */
4882
+ command: z.ZodOptional<z.ZodString>;
4883
+ /** Whether this strategy must pass for the sprint to pass. */
4884
+ required: z.ZodBoolean;
4885
+ /** Arbitrary config passed to the evaluator plugin. */
4886
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
4887
+ /** Human-readable label (defaults to type if not set). */
4888
+ label: z.ZodOptional<z.ZodString>;
4889
+ }, "strip", z.ZodTypeAny, {
4890
+ type: string;
4891
+ required: boolean;
4892
+ plugin?: string | undefined;
4893
+ command?: string | undefined;
4894
+ config?: Record<string, unknown> | undefined;
4895
+ label?: string | undefined;
4896
+ }, {
4897
+ type: string;
4898
+ required: boolean;
4899
+ plugin?: string | undefined;
4900
+ command?: string | undefined;
4901
+ config?: Record<string, unknown> | undefined;
4902
+ label?: string | undefined;
4903
+ }>, "many">>>;
4904
+ standaloneBlockOn: z.ZodOptional<z.ZodDefault<z.ZodEnum<["critical", "important"]>>>;
4905
+ hub: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
4906
+ diff: z.ZodOptional<z.ZodOptional<z.ZodObject<{
4907
+ mode: z.ZodOptional<z.ZodDefault<z.ZodEnum<["estimated-files", "git-diff"]>>>;
4908
+ baseRef: z.ZodOptional<z.ZodOptional<z.ZodString>>;
4909
+ expandWithGraph: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
4910
+ }, "strip", z.ZodTypeAny, {
4911
+ mode?: "estimated-files" | "git-diff" | undefined;
4912
+ baseRef?: string | undefined;
4913
+ expandWithGraph?: boolean | undefined;
2181
4914
  }, {
4915
+ mode?: "estimated-files" | "git-diff" | undefined;
4916
+ baseRef?: string | undefined;
4917
+ expandWithGraph?: boolean | undefined;
4918
+ }>>>;
4919
+ supplyChain: z.ZodOptional<z.ZodOptional<z.ZodObject<{
4920
+ enabled: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
4921
+ scanners: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodObject<{
4922
+ /** Strategy type — built-in name OR any custom name (e.g. "k6", "anchor-verify", "slither"). */
4923
+ type: z.ZodString;
4924
+ /** Path to a custom plugin module (for type "custom" or any non-built-in type). */
4925
+ plugin: z.ZodOptional<z.ZodString>;
4926
+ /** Shell command to run directly — shorthand alternative to writing a plugin file. */
4927
+ command: z.ZodOptional<z.ZodString>;
4928
+ /** Whether this strategy must pass for the sprint to pass. */
4929
+ required: z.ZodBoolean;
4930
+ /** Arbitrary config passed to the evaluator plugin. */
4931
+ config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
4932
+ /** Human-readable label (defaults to type if not set). */
4933
+ label: z.ZodOptional<z.ZodString>;
4934
+ }, "strip", z.ZodTypeAny, {
4935
+ type: string;
4936
+ required: boolean;
4937
+ plugin?: string | undefined;
4938
+ command?: string | undefined;
4939
+ config?: Record<string, unknown> | undefined;
4940
+ label?: string | undefined;
4941
+ }, {
4942
+ type: string;
4943
+ required: boolean;
4944
+ plugin?: string | undefined;
4945
+ command?: string | undefined;
4946
+ config?: Record<string, unknown> | undefined;
4947
+ label?: string | undefined;
4948
+ }>, "many">>>;
4949
+ }, "strip", z.ZodTypeAny, {
2182
4950
  enabled?: boolean | undefined;
2183
- lenses?: string[] | undefined;
2184
- maxConcurrent?: number | undefined;
4951
+ scanners?: {
4952
+ type: string;
4953
+ required: boolean;
4954
+ plugin?: string | undefined;
4955
+ command?: string | undefined;
4956
+ config?: Record<string, unknown> | undefined;
4957
+ label?: string | undefined;
4958
+ }[] | undefined;
4959
+ }, {
4960
+ enabled?: boolean | undefined;
4961
+ scanners?: {
4962
+ type: string;
4963
+ required: boolean;
4964
+ plugin?: string | undefined;
4965
+ command?: string | undefined;
4966
+ config?: Record<string, unknown> | undefined;
4967
+ label?: string | undefined;
4968
+ }[] | undefined;
2185
4969
  }>>>;
2186
- }, "strip", z.ZodTypeAny, {
2187
- panel?: {
2188
- enabled: boolean;
2189
- lenses: string[];
2190
- maxConcurrent: number;
2191
- } | undefined;
2192
- }, {
2193
- panel?: {
4970
+ egress: z.ZodOptional<z.ZodOptional<z.ZodObject<{
4971
+ onlineResearch: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
4972
+ }, "strip", z.ZodTypeAny, {
4973
+ onlineResearch?: boolean | undefined;
4974
+ }, {
4975
+ onlineResearch?: boolean | undefined;
4976
+ }>>>;
4977
+ verifier: z.ZodOptional<z.ZodOptional<z.ZodObject<{
4978
+ enabled: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
4979
+ model: z.ZodOptional<z.ZodDefault<z.ZodString>>;
4980
+ maxTurns: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
4981
+ }, "strip", z.ZodTypeAny, {
4982
+ model?: string | undefined;
4983
+ maxTurns?: number | undefined;
2194
4984
  enabled?: boolean | undefined;
2195
- lenses?: string[] | undefined;
2196
- maxConcurrent?: number | undefined;
2197
- } | undefined;
2198
- }>>>;
2199
- history: z.ZodOptional<z.ZodOptional<z.ZodObject<{
2200
- maxActiveLines: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
2201
- }, "strip", z.ZodTypeAny, {
2202
- maxActiveLines?: number | undefined;
2203
- }, {
2204
- maxActiveLines?: number | undefined;
2205
- }>>>;
2206
- chat: z.ZodOptional<z.ZodOptional<z.ZodObject<{
2207
- model: z.ZodOptional<z.ZodDefault<z.ZodString>>;
2208
- provider: z.ZodOptional<z.ZodOptional<z.ZodString>>;
2209
- endpoint: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodString>>>;
2210
- providerConfig: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
4985
+ }, {
4986
+ model?: string | undefined;
4987
+ maxTurns?: number | undefined;
4988
+ enabled?: boolean | undefined;
4989
+ }>>>;
2211
4990
  }, "strip", z.ZodTypeAny, {
2212
4991
  model?: string | undefined;
2213
4992
  provider?: string | undefined;
2214
4993
  endpoint?: string | null | undefined;
2215
4994
  providerConfig?: Record<string, unknown> | undefined;
4995
+ budget?: {
4996
+ maxUsd?: number | null | undefined;
4997
+ } | undefined;
4998
+ maxTurns?: number | undefined;
4999
+ enabled?: boolean | undefined;
5000
+ timeoutMs?: number | undefined;
5001
+ egress?: {
5002
+ onlineResearch?: boolean | undefined;
5003
+ } | undefined;
5004
+ failClosed?: boolean | undefined;
5005
+ scanners?: {
5006
+ type: string;
5007
+ required: boolean;
5008
+ plugin?: string | undefined;
5009
+ command?: string | undefined;
5010
+ config?: Record<string, unknown> | undefined;
5011
+ label?: string | undefined;
5012
+ }[] | undefined;
5013
+ standaloneBlockOn?: "critical" | "important" | undefined;
5014
+ hub?: boolean | undefined;
5015
+ diff?: {
5016
+ mode?: "estimated-files" | "git-diff" | undefined;
5017
+ baseRef?: string | undefined;
5018
+ expandWithGraph?: boolean | undefined;
5019
+ } | undefined;
5020
+ supplyChain?: {
5021
+ enabled?: boolean | undefined;
5022
+ scanners?: {
5023
+ type: string;
5024
+ required: boolean;
5025
+ plugin?: string | undefined;
5026
+ command?: string | undefined;
5027
+ config?: Record<string, unknown> | undefined;
5028
+ label?: string | undefined;
5029
+ }[] | undefined;
5030
+ } | undefined;
5031
+ verifier?: {
5032
+ model?: string | undefined;
5033
+ maxTurns?: number | undefined;
5034
+ enabled?: boolean | undefined;
5035
+ } | undefined;
2216
5036
  }, {
2217
5037
  model?: string | undefined;
2218
5038
  provider?: string | undefined;
2219
5039
  endpoint?: string | null | undefined;
2220
5040
  providerConfig?: Record<string, unknown> | undefined;
5041
+ budget?: {
5042
+ maxUsd?: number | null | undefined;
5043
+ } | undefined;
5044
+ maxTurns?: number | undefined;
5045
+ enabled?: boolean | undefined;
5046
+ timeoutMs?: number | undefined;
5047
+ egress?: {
5048
+ onlineResearch?: boolean | undefined;
5049
+ } | undefined;
5050
+ failClosed?: boolean | undefined;
5051
+ scanners?: {
5052
+ type: string;
5053
+ required: boolean;
5054
+ plugin?: string | undefined;
5055
+ command?: string | undefined;
5056
+ config?: Record<string, unknown> | undefined;
5057
+ label?: string | undefined;
5058
+ }[] | undefined;
5059
+ standaloneBlockOn?: "critical" | "important" | undefined;
5060
+ hub?: boolean | undefined;
5061
+ diff?: {
5062
+ mode?: "estimated-files" | "git-diff" | undefined;
5063
+ baseRef?: string | undefined;
5064
+ expandWithGraph?: boolean | undefined;
5065
+ } | undefined;
5066
+ supplyChain?: {
5067
+ enabled?: boolean | undefined;
5068
+ scanners?: {
5069
+ type: string;
5070
+ required: boolean;
5071
+ plugin?: string | undefined;
5072
+ command?: string | undefined;
5073
+ config?: Record<string, unknown> | undefined;
5074
+ label?: string | undefined;
5075
+ }[] | undefined;
5076
+ } | undefined;
5077
+ verifier?: {
5078
+ model?: string | undefined;
5079
+ maxTurns?: number | undefined;
5080
+ enabled?: boolean | undefined;
5081
+ } | undefined;
2221
5082
  }>>>;
2222
- teams: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
2223
- displayName: z.ZodOptional<z.ZodString>;
2224
- /** Memory namespace segment — restricted to a safe path segment. */
2225
- memoryNamespace: z.ZodOptional<z.ZodString>;
2226
- /** Orchestration engine shape for this team. Mirrors the z.enum in PipelineSectionSchema. */
2227
- pipelineShape: z.ZodOptional<z.ZodEnum<["ts", "skill", "workflow"]>>;
2228
- /** Partial role -> provider override. Keys SHOULD be RoleName values. */
2229
- providers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
2230
- roles: z.ZodOptional<z.ZodArray<z.ZodObject<{
2231
- name: z.ZodString;
2232
- displayName: z.ZodString;
5083
+ seo: z.ZodOptional<z.ZodOptional<z.ZodObject<{
5084
+ egress: z.ZodOptional<z.ZodOptional<z.ZodObject<{
5085
+ "search-console": z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
5086
+ "serp-provider": z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
5087
+ "ai-visibility": z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
5088
+ "site-crawl": z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
5089
+ "ai-visibility-scrape": z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
2233
5090
  }, "strip", z.ZodTypeAny, {
2234
- name: string;
2235
- displayName: string;
5091
+ "search-console"?: boolean | undefined;
5092
+ "serp-provider"?: boolean | undefined;
5093
+ "ai-visibility"?: boolean | undefined;
5094
+ "site-crawl"?: boolean | undefined;
5095
+ "ai-visibility-scrape"?: boolean | undefined;
2236
5096
  }, {
2237
- name: string;
2238
- displayName: string;
2239
- }>, "many">>;
2240
- guardrails: z.ZodOptional<z.ZodUnknown>;
5097
+ "search-console"?: boolean | undefined;
5098
+ "serp-provider"?: boolean | undefined;
5099
+ "ai-visibility"?: boolean | undefined;
5100
+ "site-crawl"?: boolean | undefined;
5101
+ "ai-visibility-scrape"?: boolean | undefined;
5102
+ }>>>;
5103
+ verifier: z.ZodOptional<z.ZodOptional<z.ZodObject<{
5104
+ enabled: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
5105
+ }, "strip", z.ZodTypeAny, {
5106
+ enabled?: boolean | undefined;
5107
+ }, {
5108
+ enabled?: boolean | undefined;
5109
+ }>>>;
5110
+ budget: z.ZodOptional<z.ZodOptional<z.ZodObject<{
5111
+ maxUsd: z.ZodOptional<z.ZodOptional<z.ZodNullable<z.ZodNumber>>>;
5112
+ }, "strip", z.ZodTypeAny, {
5113
+ maxUsd?: number | null | undefined;
5114
+ }, {
5115
+ maxUsd?: number | null | undefined;
5116
+ }>>>;
5117
+ defaultTarget: z.ZodOptional<z.ZodOptional<z.ZodString>>;
5118
+ blockThreshold: z.ZodOptional<z.ZodDefault<z.ZodEnum<["never", "any-uncited", "critical-uncited"]>>>;
5119
+ serp: z.ZodOptional<z.ZodOptional<z.ZodObject<{
5120
+ provider: z.ZodOptional<z.ZodDefault<z.ZodEnum<["dataforseo", "damcrawler"]>>>;
5121
+ }, "strip", z.ZodTypeAny, {
5122
+ provider?: "dataforseo" | "damcrawler" | undefined;
5123
+ }, {
5124
+ provider?: "dataforseo" | "damcrawler" | undefined;
5125
+ }>>>;
5126
+ aiVisibility: z.ZodOptional<z.ZodOptional<z.ZodObject<{
5127
+ samplesPerPrompt: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
5128
+ engines: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodObject<{
5129
+ engine: z.ZodEnum<["anthropic", "openai", "perplexity"]>;
5130
+ /** Fixed USD price per grounded-search call for this engine. Default 0. */
5131
+ perCallUsd: z.ZodDefault<z.ZodNumber>;
5132
+ }, "strip", z.ZodTypeAny, {
5133
+ engine: "anthropic" | "openai" | "perplexity";
5134
+ perCallUsd: number;
5135
+ }, {
5136
+ engine: "anthropic" | "openai" | "perplexity";
5137
+ perCallUsd?: number | undefined;
5138
+ }>, "many">>>;
5139
+ judge: z.ZodOptional<z.ZodOptional<z.ZodObject<{
5140
+ enabled: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
5141
+ model: z.ZodOptional<z.ZodOptional<z.ZodString>>;
5142
+ }, "strip", z.ZodTypeAny, {
5143
+ model?: string | undefined;
5144
+ enabled?: boolean | undefined;
5145
+ }, {
5146
+ model?: string | undefined;
5147
+ enabled?: boolean | undefined;
5148
+ }>>>;
5149
+ scrape: z.ZodOptional<z.ZodOptional<z.ZodObject<{
5150
+ engines: z.ZodOptional<z.ZodDefault<z.ZodArray<z.ZodEnum<["chatgpt-ui", "perplexity-ui"]>, "many">>>;
5151
+ authSession: z.ZodOptional<z.ZodOptional<z.ZodString>>;
5152
+ proxy: z.ZodOptional<z.ZodOptional<z.ZodString>>;
5153
+ proxyUsdPerScrape: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
5154
+ maxPerWindow: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
5155
+ windowMs: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
5156
+ maxProxyUsd: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
5157
+ }, "strip", z.ZodTypeAny, {
5158
+ engines?: ("chatgpt-ui" | "perplexity-ui")[] | undefined;
5159
+ authSession?: string | undefined;
5160
+ proxy?: string | undefined;
5161
+ proxyUsdPerScrape?: number | undefined;
5162
+ maxPerWindow?: number | undefined;
5163
+ windowMs?: number | undefined;
5164
+ maxProxyUsd?: number | undefined;
5165
+ }, {
5166
+ engines?: ("chatgpt-ui" | "perplexity-ui")[] | undefined;
5167
+ authSession?: string | undefined;
5168
+ proxy?: string | undefined;
5169
+ proxyUsdPerScrape?: number | undefined;
5170
+ maxPerWindow?: number | undefined;
5171
+ windowMs?: number | undefined;
5172
+ maxProxyUsd?: number | undefined;
5173
+ }>>>;
5174
+ }, "strip", z.ZodTypeAny, {
5175
+ samplesPerPrompt?: number | undefined;
5176
+ engines?: {
5177
+ engine: "anthropic" | "openai" | "perplexity";
5178
+ perCallUsd: number;
5179
+ }[] | undefined;
5180
+ judge?: {
5181
+ model?: string | undefined;
5182
+ enabled?: boolean | undefined;
5183
+ } | undefined;
5184
+ scrape?: {
5185
+ engines?: ("chatgpt-ui" | "perplexity-ui")[] | undefined;
5186
+ authSession?: string | undefined;
5187
+ proxy?: string | undefined;
5188
+ proxyUsdPerScrape?: number | undefined;
5189
+ maxPerWindow?: number | undefined;
5190
+ windowMs?: number | undefined;
5191
+ maxProxyUsd?: number | undefined;
5192
+ } | undefined;
5193
+ }, {
5194
+ samplesPerPrompt?: number | undefined;
5195
+ engines?: {
5196
+ engine: "anthropic" | "openai" | "perplexity";
5197
+ perCallUsd?: number | undefined;
5198
+ }[] | undefined;
5199
+ judge?: {
5200
+ model?: string | undefined;
5201
+ enabled?: boolean | undefined;
5202
+ } | undefined;
5203
+ scrape?: {
5204
+ engines?: ("chatgpt-ui" | "perplexity-ui")[] | undefined;
5205
+ authSession?: string | undefined;
5206
+ proxy?: string | undefined;
5207
+ proxyUsdPerScrape?: number | undefined;
5208
+ maxPerWindow?: number | undefined;
5209
+ windowMs?: number | undefined;
5210
+ maxProxyUsd?: number | undefined;
5211
+ } | undefined;
5212
+ }>>>;
2241
5213
  }, "strip", z.ZodTypeAny, {
2242
- providers?: Record<string, string> | undefined;
2243
- displayName?: string | undefined;
2244
- memoryNamespace?: string | undefined;
2245
- pipelineShape?: "ts" | "skill" | "workflow" | undefined;
2246
- roles?: {
2247
- name: string;
2248
- displayName: string;
2249
- }[] | undefined;
2250
- guardrails?: unknown;
5214
+ budget?: {
5215
+ maxUsd?: number | null | undefined;
5216
+ } | undefined;
5217
+ egress?: {
5218
+ "search-console"?: boolean | undefined;
5219
+ "serp-provider"?: boolean | undefined;
5220
+ "ai-visibility"?: boolean | undefined;
5221
+ "site-crawl"?: boolean | undefined;
5222
+ "ai-visibility-scrape"?: boolean | undefined;
5223
+ } | undefined;
5224
+ verifier?: {
5225
+ enabled?: boolean | undefined;
5226
+ } | undefined;
5227
+ defaultTarget?: string | undefined;
5228
+ blockThreshold?: "never" | "any-uncited" | "critical-uncited" | undefined;
5229
+ serp?: {
5230
+ provider?: "dataforseo" | "damcrawler" | undefined;
5231
+ } | undefined;
5232
+ aiVisibility?: {
5233
+ samplesPerPrompt?: number | undefined;
5234
+ engines?: {
5235
+ engine: "anthropic" | "openai" | "perplexity";
5236
+ perCallUsd: number;
5237
+ }[] | undefined;
5238
+ judge?: {
5239
+ model?: string | undefined;
5240
+ enabled?: boolean | undefined;
5241
+ } | undefined;
5242
+ scrape?: {
5243
+ engines?: ("chatgpt-ui" | "perplexity-ui")[] | undefined;
5244
+ authSession?: string | undefined;
5245
+ proxy?: string | undefined;
5246
+ proxyUsdPerScrape?: number | undefined;
5247
+ maxPerWindow?: number | undefined;
5248
+ windowMs?: number | undefined;
5249
+ maxProxyUsd?: number | undefined;
5250
+ } | undefined;
5251
+ } | undefined;
2251
5252
  }, {
2252
- providers?: Record<string, string> | undefined;
2253
- displayName?: string | undefined;
2254
- memoryNamespace?: string | undefined;
2255
- pipelineShape?: "ts" | "skill" | "workflow" | undefined;
2256
- roles?: {
2257
- name: string;
2258
- displayName: string;
2259
- }[] | undefined;
2260
- guardrails?: unknown;
2261
- }>>>>;
2262
- defaultTeam: z.ZodOptional<z.ZodOptional<z.ZodString>>;
5253
+ budget?: {
5254
+ maxUsd?: number | null | undefined;
5255
+ } | undefined;
5256
+ egress?: {
5257
+ "search-console"?: boolean | undefined;
5258
+ "serp-provider"?: boolean | undefined;
5259
+ "ai-visibility"?: boolean | undefined;
5260
+ "site-crawl"?: boolean | undefined;
5261
+ "ai-visibility-scrape"?: boolean | undefined;
5262
+ } | undefined;
5263
+ verifier?: {
5264
+ enabled?: boolean | undefined;
5265
+ } | undefined;
5266
+ defaultTarget?: string | undefined;
5267
+ blockThreshold?: "never" | "any-uncited" | "critical-uncited" | undefined;
5268
+ serp?: {
5269
+ provider?: "dataforseo" | "damcrawler" | undefined;
5270
+ } | undefined;
5271
+ aiVisibility?: {
5272
+ samplesPerPrompt?: number | undefined;
5273
+ engines?: {
5274
+ engine: "anthropic" | "openai" | "perplexity";
5275
+ perCallUsd?: number | undefined;
5276
+ }[] | undefined;
5277
+ judge?: {
5278
+ model?: string | undefined;
5279
+ enabled?: boolean | undefined;
5280
+ } | undefined;
5281
+ scrape?: {
5282
+ engines?: ("chatgpt-ui" | "perplexity-ui")[] | undefined;
5283
+ authSession?: string | undefined;
5284
+ proxy?: string | undefined;
5285
+ proxyUsdPerScrape?: number | undefined;
5286
+ maxPerWindow?: number | undefined;
5287
+ windowMs?: number | undefined;
5288
+ maxProxyUsd?: number | undefined;
5289
+ } | undefined;
5290
+ } | undefined;
5291
+ }>>>;
2263
5292
  } & {
2264
5293
  project: z.ZodObject<{
2265
5294
  name: z.ZodOptional<z.ZodString>;
@@ -2294,6 +5323,7 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
2294
5323
  }, "strip", z.ZodTypeAny, {
2295
5324
  mode: "greenfield" | "brownfield";
2296
5325
  name?: string | undefined;
5326
+ preset?: string | undefined;
2297
5327
  stack?: {
2298
5328
  frontend?: string | undefined;
2299
5329
  backend?: string | undefined;
@@ -2303,11 +5333,11 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
2303
5333
  language?: string | undefined;
2304
5334
  other?: string[] | undefined;
2305
5335
  } | undefined;
2306
- preset?: string | undefined;
2307
5336
  description?: string | undefined;
2308
5337
  }, {
2309
5338
  mode: "greenfield" | "brownfield";
2310
5339
  name?: string | undefined;
5340
+ preset?: string | undefined;
2311
5341
  stack?: {
2312
5342
  frontend?: string | undefined;
2313
5343
  backend?: string | undefined;
@@ -2317,13 +5347,13 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
2317
5347
  language?: string | undefined;
2318
5348
  other?: string[] | undefined;
2319
5349
  } | undefined;
2320
- preset?: string | undefined;
2321
5350
  description?: string | undefined;
2322
5351
  }>;
2323
5352
  }, "strip", z.ZodTypeAny, {
2324
5353
  project: {
2325
5354
  mode: "greenfield" | "brownfield";
2326
5355
  name?: string | undefined;
5356
+ preset?: string | undefined;
2327
5357
  stack?: {
2328
5358
  frontend?: string | undefined;
2329
5359
  backend?: string | undefined;
@@ -2333,7 +5363,6 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
2333
5363
  language?: string | undefined;
2334
5364
  other?: string[] | undefined;
2335
5365
  } | undefined;
2336
- preset?: string | undefined;
2337
5366
  description?: string | undefined;
2338
5367
  };
2339
5368
  planner?: {
@@ -2343,12 +5372,20 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
2343
5372
  provider?: string | undefined;
2344
5373
  endpoint?: string | null | undefined;
2345
5374
  providerConfig?: Record<string, unknown> | undefined;
5375
+ effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined;
5376
+ budget?: {
5377
+ maxUsd?: number | null | undefined;
5378
+ } | undefined;
2346
5379
  } | undefined;
2347
5380
  curator?: {
2348
5381
  model?: string | undefined;
2349
5382
  provider?: string | undefined;
2350
5383
  endpoint?: string | null | undefined;
2351
5384
  providerConfig?: Record<string, unknown> | undefined;
5385
+ effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined;
5386
+ budget?: {
5387
+ maxUsd?: number | null | undefined;
5388
+ } | undefined;
2352
5389
  maxTurns?: number | undefined;
2353
5390
  enabled?: boolean | undefined;
2354
5391
  } | undefined;
@@ -2357,15 +5394,24 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
2357
5394
  provider?: string | undefined;
2358
5395
  endpoint?: string | null | undefined;
2359
5396
  providerConfig?: Record<string, unknown> | undefined;
5397
+ effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined;
5398
+ budget?: {
5399
+ maxUsd?: number | null | undefined;
5400
+ } | undefined;
2360
5401
  maxTurnsPerSprint?: number | undefined;
2361
5402
  autoCommit?: boolean | undefined;
2362
5403
  branchPattern?: string | undefined;
5404
+ parallelReadOnlyTools?: boolean | undefined;
2363
5405
  } | undefined;
2364
5406
  evaluator?: {
2365
5407
  model?: string | undefined;
2366
5408
  provider?: string | undefined;
2367
5409
  endpoint?: string | null | undefined;
2368
5410
  providerConfig?: Record<string, unknown> | undefined;
5411
+ effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined;
5412
+ budget?: {
5413
+ maxUsd?: number | null | undefined;
5414
+ } | undefined;
2369
5415
  strategies?: {
2370
5416
  type?: string | undefined;
2371
5417
  plugin?: string | undefined;
@@ -2385,10 +5431,10 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
2385
5431
  sprint?: {
2386
5432
  maxSprints?: number | undefined;
2387
5433
  requireContracts?: boolean | undefined;
2388
- sprintSize?: "small" | "medium" | "large" | undefined;
5434
+ sprintSize?: "medium" | "small" | "large" | undefined;
2389
5435
  } | undefined;
2390
5436
  pipeline?: {
2391
- mode?: "careful" | "autopilot" | undefined;
5437
+ mode?: "autopilot" | "careful" | undefined;
2392
5438
  maxIterations?: number | undefined;
2393
5439
  maxCheckpointIterations?: number | undefined;
2394
5440
  requireApproval?: boolean | undefined;
@@ -2403,7 +5449,7 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
2403
5449
  eventQueueBound?: number | undefined;
2404
5450
  worktreeRoot?: string | undefined;
2405
5451
  cleanupWorktreeOnSuccess?: boolean | undefined;
2406
- engine?: "ts" | "skill" | "workflow" | undefined;
5452
+ engine?: "ts" | "skill" | "workflow" | "medical-sop" | undefined;
2407
5453
  } | undefined;
2408
5454
  commands?: {
2409
5455
  install?: string | undefined;
@@ -2424,7 +5470,7 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
2424
5470
  enabled?: boolean | undefined;
2425
5471
  tokensavePath?: string | undefined;
2426
5472
  autoSync?: boolean | undefined;
2427
- languageTier?: "all" | "core" | "extended" | undefined;
5473
+ languageTier?: "core" | "extended" | "all" | undefined;
2428
5474
  manifestPath?: string | undefined;
2429
5475
  syncTimeoutMs?: number | undefined;
2430
5476
  queryTimeoutMs?: number | undefined;
@@ -2460,9 +5506,9 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
2460
5506
  } | undefined;
2461
5507
  observability?: {
2462
5508
  providers?: {
2463
- kind: "custom" | "logs" | "metrics" | "traces" | "errors";
2464
5509
  name: string;
2465
5510
  enabled: boolean;
5511
+ kind: "custom" | "logs" | "metrics" | "traces" | "errors";
2466
5512
  mcpCommand: string;
2467
5513
  mcpArgs?: string[] | undefined;
2468
5514
  mcpEnv?: Record<string, string> | undefined;
@@ -2487,7 +5533,7 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
2487
5533
  providers?: Record<string, string> | undefined;
2488
5534
  displayName?: string | undefined;
2489
5535
  memoryNamespace?: string | undefined;
2490
- pipelineShape?: "ts" | "skill" | "workflow" | undefined;
5536
+ pipelineShape?: "ts" | "skill" | "workflow" | "medical-sop" | undefined;
2491
5537
  roles?: {
2492
5538
  name: string;
2493
5539
  displayName: string;
@@ -2495,10 +5541,155 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
2495
5541
  guardrails?: unknown;
2496
5542
  }> | undefined;
2497
5543
  defaultTeam?: string | undefined;
5544
+ medical?: {
5545
+ egress?: {
5546
+ cloudInference?: boolean | undefined;
5547
+ literatureRetrieval?: boolean | undefined;
5548
+ deviceConnection?: boolean | undefined;
5549
+ } | undefined;
5550
+ inference?: {
5551
+ model?: string | undefined;
5552
+ provider?: string | undefined;
5553
+ endpoint?: string | undefined;
5554
+ } | undefined;
5555
+ vaultDir?: string | undefined;
5556
+ } | undefined;
5557
+ fleet?: {
5558
+ blackboardDbPath?: string | undefined;
5559
+ blackboardNamespace?: string | undefined;
5560
+ blackboardSubject?: string | undefined;
5561
+ maxRounds?: number | undefined;
5562
+ } | undefined;
5563
+ vault?: {
5564
+ obsidian?: {
5565
+ name?: string | undefined;
5566
+ enabled?: boolean | undefined;
5567
+ mcpCommand?: string | undefined;
5568
+ mcpArgs?: string[] | undefined;
5569
+ mcpEnv?: Record<string, string> | undefined;
5570
+ toolNames?: {
5571
+ readNote?: string | undefined;
5572
+ writeNote?: string | undefined;
5573
+ listNotes?: string | undefined;
5574
+ } | undefined;
5575
+ } | undefined;
5576
+ } | undefined;
5577
+ taskInbox?: {
5578
+ gmailEgress?: boolean | undefined;
5579
+ } | undefined;
5580
+ calendar?: {
5581
+ egress?: {
5582
+ cloudCalendar?: boolean | undefined;
5583
+ } | undefined;
5584
+ connector?: "ics" | "google" | undefined;
5585
+ timezone?: string | undefined;
5586
+ } | undefined;
5587
+ research?: {
5588
+ egress?: {
5589
+ onlineResearch?: boolean | undefined;
5590
+ } | undefined;
5591
+ } | undefined;
5592
+ tools?: {
5593
+ mcpBridge?: {
5594
+ enabled?: boolean | undefined;
5595
+ server?: {
5596
+ command?: string | undefined;
5597
+ args?: string[] | undefined;
5598
+ } | undefined;
5599
+ } | undefined;
5600
+ } | undefined;
5601
+ security?: {
5602
+ model?: string | undefined;
5603
+ provider?: string | undefined;
5604
+ endpoint?: string | null | undefined;
5605
+ providerConfig?: Record<string, unknown> | undefined;
5606
+ budget?: {
5607
+ maxUsd?: number | null | undefined;
5608
+ } | undefined;
5609
+ maxTurns?: number | undefined;
5610
+ enabled?: boolean | undefined;
5611
+ timeoutMs?: number | undefined;
5612
+ egress?: {
5613
+ onlineResearch?: boolean | undefined;
5614
+ } | undefined;
5615
+ failClosed?: boolean | undefined;
5616
+ scanners?: {
5617
+ type: string;
5618
+ required: boolean;
5619
+ plugin?: string | undefined;
5620
+ command?: string | undefined;
5621
+ config?: Record<string, unknown> | undefined;
5622
+ label?: string | undefined;
5623
+ }[] | undefined;
5624
+ standaloneBlockOn?: "critical" | "important" | undefined;
5625
+ hub?: boolean | undefined;
5626
+ diff?: {
5627
+ mode?: "estimated-files" | "git-diff" | undefined;
5628
+ baseRef?: string | undefined;
5629
+ expandWithGraph?: boolean | undefined;
5630
+ } | undefined;
5631
+ supplyChain?: {
5632
+ enabled?: boolean | undefined;
5633
+ scanners?: {
5634
+ type: string;
5635
+ required: boolean;
5636
+ plugin?: string | undefined;
5637
+ command?: string | undefined;
5638
+ config?: Record<string, unknown> | undefined;
5639
+ label?: string | undefined;
5640
+ }[] | undefined;
5641
+ } | undefined;
5642
+ verifier?: {
5643
+ model?: string | undefined;
5644
+ maxTurns?: number | undefined;
5645
+ enabled?: boolean | undefined;
5646
+ } | undefined;
5647
+ } | undefined;
5648
+ seo?: {
5649
+ budget?: {
5650
+ maxUsd?: number | null | undefined;
5651
+ } | undefined;
5652
+ egress?: {
5653
+ "search-console"?: boolean | undefined;
5654
+ "serp-provider"?: boolean | undefined;
5655
+ "ai-visibility"?: boolean | undefined;
5656
+ "site-crawl"?: boolean | undefined;
5657
+ "ai-visibility-scrape"?: boolean | undefined;
5658
+ } | undefined;
5659
+ verifier?: {
5660
+ enabled?: boolean | undefined;
5661
+ } | undefined;
5662
+ defaultTarget?: string | undefined;
5663
+ blockThreshold?: "never" | "any-uncited" | "critical-uncited" | undefined;
5664
+ serp?: {
5665
+ provider?: "dataforseo" | "damcrawler" | undefined;
5666
+ } | undefined;
5667
+ aiVisibility?: {
5668
+ samplesPerPrompt?: number | undefined;
5669
+ engines?: {
5670
+ engine: "anthropic" | "openai" | "perplexity";
5671
+ perCallUsd: number;
5672
+ }[] | undefined;
5673
+ judge?: {
5674
+ model?: string | undefined;
5675
+ enabled?: boolean | undefined;
5676
+ } | undefined;
5677
+ scrape?: {
5678
+ engines?: ("chatgpt-ui" | "perplexity-ui")[] | undefined;
5679
+ authSession?: string | undefined;
5680
+ proxy?: string | undefined;
5681
+ proxyUsdPerScrape?: number | undefined;
5682
+ maxPerWindow?: number | undefined;
5683
+ windowMs?: number | undefined;
5684
+ maxProxyUsd?: number | undefined;
5685
+ } | undefined;
5686
+ } | undefined;
5687
+ } | undefined;
2498
5688
  }, {
2499
5689
  project: {
2500
5690
  mode: "greenfield" | "brownfield";
2501
5691
  name?: string | undefined;
5692
+ preset?: string | undefined;
2502
5693
  stack?: {
2503
5694
  frontend?: string | undefined;
2504
5695
  backend?: string | undefined;
@@ -2508,7 +5699,6 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
2508
5699
  language?: string | undefined;
2509
5700
  other?: string[] | undefined;
2510
5701
  } | undefined;
2511
- preset?: string | undefined;
2512
5702
  description?: string | undefined;
2513
5703
  };
2514
5704
  planner?: {
@@ -2518,12 +5708,20 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
2518
5708
  provider?: string | undefined;
2519
5709
  endpoint?: string | null | undefined;
2520
5710
  providerConfig?: Record<string, unknown> | undefined;
5711
+ effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined;
5712
+ budget?: {
5713
+ maxUsd?: number | null | undefined;
5714
+ } | undefined;
2521
5715
  } | undefined;
2522
5716
  curator?: {
2523
5717
  model?: string | undefined;
2524
5718
  provider?: string | undefined;
2525
5719
  endpoint?: string | null | undefined;
2526
5720
  providerConfig?: Record<string, unknown> | undefined;
5721
+ effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined;
5722
+ budget?: {
5723
+ maxUsd?: number | null | undefined;
5724
+ } | undefined;
2527
5725
  maxTurns?: number | undefined;
2528
5726
  enabled?: boolean | undefined;
2529
5727
  } | undefined;
@@ -2532,15 +5730,24 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
2532
5730
  provider?: string | undefined;
2533
5731
  endpoint?: string | null | undefined;
2534
5732
  providerConfig?: Record<string, unknown> | undefined;
5733
+ effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined;
5734
+ budget?: {
5735
+ maxUsd?: number | null | undefined;
5736
+ } | undefined;
2535
5737
  maxTurnsPerSprint?: number | undefined;
2536
5738
  autoCommit?: boolean | undefined;
2537
5739
  branchPattern?: string | undefined;
5740
+ parallelReadOnlyTools?: boolean | undefined;
2538
5741
  } | undefined;
2539
5742
  evaluator?: {
2540
5743
  model?: string | undefined;
2541
5744
  provider?: string | undefined;
2542
5745
  endpoint?: string | null | undefined;
2543
5746
  providerConfig?: Record<string, unknown> | undefined;
5747
+ effort?: "low" | "medium" | "high" | "xhigh" | "max" | undefined;
5748
+ budget?: {
5749
+ maxUsd?: number | null | undefined;
5750
+ } | undefined;
2544
5751
  strategies?: {
2545
5752
  type?: string | undefined;
2546
5753
  plugin?: string | undefined;
@@ -2560,10 +5767,10 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
2560
5767
  sprint?: {
2561
5768
  maxSprints?: number | undefined;
2562
5769
  requireContracts?: boolean | undefined;
2563
- sprintSize?: "small" | "medium" | "large" | undefined;
5770
+ sprintSize?: "medium" | "small" | "large" | undefined;
2564
5771
  } | undefined;
2565
5772
  pipeline?: {
2566
- mode?: "careful" | "autopilot" | undefined;
5773
+ mode?: "autopilot" | "careful" | undefined;
2567
5774
  maxIterations?: number | undefined;
2568
5775
  maxCheckpointIterations?: number | undefined;
2569
5776
  requireApproval?: boolean | undefined;
@@ -2578,7 +5785,7 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
2578
5785
  eventQueueBound?: number | undefined;
2579
5786
  worktreeRoot?: string | undefined;
2580
5787
  cleanupWorktreeOnSuccess?: boolean | undefined;
2581
- engine?: "ts" | "skill" | "workflow" | undefined;
5788
+ engine?: "ts" | "skill" | "workflow" | "medical-sop" | undefined;
2582
5789
  } | undefined;
2583
5790
  commands?: {
2584
5791
  install?: string | undefined;
@@ -2599,7 +5806,7 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
2599
5806
  enabled?: boolean | undefined;
2600
5807
  tokensavePath?: string | undefined;
2601
5808
  autoSync?: boolean | undefined;
2602
- languageTier?: "all" | "core" | "extended" | undefined;
5809
+ languageTier?: "core" | "extended" | "all" | undefined;
2603
5810
  manifestPath?: string | undefined;
2604
5811
  syncTimeoutMs?: number | undefined;
2605
5812
  queryTimeoutMs?: number | undefined;
@@ -2635,8 +5842,8 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
2635
5842
  } | undefined;
2636
5843
  observability?: {
2637
5844
  providers?: {
2638
- kind: "custom" | "logs" | "metrics" | "traces" | "errors";
2639
5845
  name: string;
5846
+ kind: "custom" | "logs" | "metrics" | "traces" | "errors";
2640
5847
  mcpCommand: string;
2641
5848
  enabled?: boolean | undefined;
2642
5849
  mcpArgs?: string[] | undefined;
@@ -2662,7 +5869,7 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
2662
5869
  providers?: Record<string, string> | undefined;
2663
5870
  displayName?: string | undefined;
2664
5871
  memoryNamespace?: string | undefined;
2665
- pipelineShape?: "ts" | "skill" | "workflow" | undefined;
5872
+ pipelineShape?: "ts" | "skill" | "workflow" | "medical-sop" | undefined;
2666
5873
  roles?: {
2667
5874
  name: string;
2668
5875
  displayName: string;
@@ -2670,6 +5877,150 @@ export declare const PartialBoberConfigSchema: z.ZodObject<{
2670
5877
  guardrails?: unknown;
2671
5878
  }> | undefined;
2672
5879
  defaultTeam?: string | undefined;
5880
+ medical?: {
5881
+ egress?: {
5882
+ cloudInference?: boolean | undefined;
5883
+ literatureRetrieval?: boolean | undefined;
5884
+ deviceConnection?: boolean | undefined;
5885
+ } | undefined;
5886
+ inference?: {
5887
+ model?: string | undefined;
5888
+ provider?: string | undefined;
5889
+ endpoint?: string | undefined;
5890
+ } | undefined;
5891
+ vaultDir?: string | undefined;
5892
+ } | undefined;
5893
+ fleet?: {
5894
+ blackboardDbPath?: string | undefined;
5895
+ blackboardNamespace?: string | undefined;
5896
+ blackboardSubject?: string | undefined;
5897
+ maxRounds?: number | undefined;
5898
+ } | undefined;
5899
+ vault?: {
5900
+ obsidian?: {
5901
+ name?: string | undefined;
5902
+ enabled?: boolean | undefined;
5903
+ mcpCommand?: string | undefined;
5904
+ mcpArgs?: string[] | undefined;
5905
+ mcpEnv?: Record<string, string> | undefined;
5906
+ toolNames?: {
5907
+ readNote?: string | undefined;
5908
+ writeNote?: string | undefined;
5909
+ listNotes?: string | undefined;
5910
+ } | undefined;
5911
+ } | undefined;
5912
+ } | undefined;
5913
+ taskInbox?: {
5914
+ gmailEgress?: boolean | undefined;
5915
+ } | undefined;
5916
+ calendar?: {
5917
+ egress?: {
5918
+ cloudCalendar?: boolean | undefined;
5919
+ } | undefined;
5920
+ connector?: "ics" | "google" | undefined;
5921
+ timezone?: string | undefined;
5922
+ } | undefined;
5923
+ research?: {
5924
+ egress?: {
5925
+ onlineResearch?: boolean | undefined;
5926
+ } | undefined;
5927
+ } | undefined;
5928
+ tools?: {
5929
+ mcpBridge?: {
5930
+ enabled?: boolean | undefined;
5931
+ server?: {
5932
+ command?: string | undefined;
5933
+ args?: string[] | undefined;
5934
+ } | undefined;
5935
+ } | undefined;
5936
+ } | undefined;
5937
+ security?: {
5938
+ model?: string | undefined;
5939
+ provider?: string | undefined;
5940
+ endpoint?: string | null | undefined;
5941
+ providerConfig?: Record<string, unknown> | undefined;
5942
+ budget?: {
5943
+ maxUsd?: number | null | undefined;
5944
+ } | undefined;
5945
+ maxTurns?: number | undefined;
5946
+ enabled?: boolean | undefined;
5947
+ timeoutMs?: number | undefined;
5948
+ egress?: {
5949
+ onlineResearch?: boolean | undefined;
5950
+ } | undefined;
5951
+ failClosed?: boolean | undefined;
5952
+ scanners?: {
5953
+ type: string;
5954
+ required: boolean;
5955
+ plugin?: string | undefined;
5956
+ command?: string | undefined;
5957
+ config?: Record<string, unknown> | undefined;
5958
+ label?: string | undefined;
5959
+ }[] | undefined;
5960
+ standaloneBlockOn?: "critical" | "important" | undefined;
5961
+ hub?: boolean | undefined;
5962
+ diff?: {
5963
+ mode?: "estimated-files" | "git-diff" | undefined;
5964
+ baseRef?: string | undefined;
5965
+ expandWithGraph?: boolean | undefined;
5966
+ } | undefined;
5967
+ supplyChain?: {
5968
+ enabled?: boolean | undefined;
5969
+ scanners?: {
5970
+ type: string;
5971
+ required: boolean;
5972
+ plugin?: string | undefined;
5973
+ command?: string | undefined;
5974
+ config?: Record<string, unknown> | undefined;
5975
+ label?: string | undefined;
5976
+ }[] | undefined;
5977
+ } | undefined;
5978
+ verifier?: {
5979
+ model?: string | undefined;
5980
+ maxTurns?: number | undefined;
5981
+ enabled?: boolean | undefined;
5982
+ } | undefined;
5983
+ } | undefined;
5984
+ seo?: {
5985
+ budget?: {
5986
+ maxUsd?: number | null | undefined;
5987
+ } | undefined;
5988
+ egress?: {
5989
+ "search-console"?: boolean | undefined;
5990
+ "serp-provider"?: boolean | undefined;
5991
+ "ai-visibility"?: boolean | undefined;
5992
+ "site-crawl"?: boolean | undefined;
5993
+ "ai-visibility-scrape"?: boolean | undefined;
5994
+ } | undefined;
5995
+ verifier?: {
5996
+ enabled?: boolean | undefined;
5997
+ } | undefined;
5998
+ defaultTarget?: string | undefined;
5999
+ blockThreshold?: "never" | "any-uncited" | "critical-uncited" | undefined;
6000
+ serp?: {
6001
+ provider?: "dataforseo" | "damcrawler" | undefined;
6002
+ } | undefined;
6003
+ aiVisibility?: {
6004
+ samplesPerPrompt?: number | undefined;
6005
+ engines?: {
6006
+ engine: "anthropic" | "openai" | "perplexity";
6007
+ perCallUsd?: number | undefined;
6008
+ }[] | undefined;
6009
+ judge?: {
6010
+ model?: string | undefined;
6011
+ enabled?: boolean | undefined;
6012
+ } | undefined;
6013
+ scrape?: {
6014
+ engines?: ("chatgpt-ui" | "perplexity-ui")[] | undefined;
6015
+ authSession?: string | undefined;
6016
+ proxy?: string | undefined;
6017
+ proxyUsdPerScrape?: number | undefined;
6018
+ maxPerWindow?: number | undefined;
6019
+ windowMs?: number | undefined;
6020
+ maxProxyUsd?: number | undefined;
6021
+ } | undefined;
6022
+ } | undefined;
6023
+ } | undefined;
2673
6024
  }>;
2674
6025
  export type PartialBoberConfig = z.infer<typeof PartialBoberConfigSchema>;
2675
6026
  /**