agent-bober 0.17.1 → 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 (1109) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/CHANGELOG.md +26 -0
  3. package/README.md +402 -10
  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/answerer.d.ts +17 -0
  48. package/dist/chat/answerer.d.ts.map +1 -0
  49. package/dist/chat/answerer.js +52 -0
  50. package/dist/chat/answerer.js.map +1 -0
  51. package/dist/chat/approval-cursor.d.ts +25 -0
  52. package/dist/chat/approval-cursor.d.ts.map +1 -0
  53. package/dist/chat/approval-cursor.js +61 -0
  54. package/dist/chat/approval-cursor.js.map +1 -0
  55. package/dist/chat/approval-reader.d.ts +11 -0
  56. package/dist/chat/approval-reader.d.ts.map +1 -0
  57. package/dist/chat/approval-reader.js +20 -0
  58. package/dist/chat/approval-reader.js.map +1 -0
  59. package/dist/chat/careful-sidecar.d.ts +15 -0
  60. package/dist/chat/careful-sidecar.d.ts.map +1 -0
  61. package/dist/chat/careful-sidecar.js +39 -0
  62. package/dist/chat/careful-sidecar.js.map +1 -0
  63. package/dist/chat/chat-session.d.ts +156 -0
  64. package/dist/chat/chat-session.d.ts.map +1 -0
  65. package/dist/chat/chat-session.js +570 -0
  66. package/dist/chat/chat-session.js.map +1 -0
  67. package/dist/chat/completion-tailer.d.ts +27 -0
  68. package/dist/chat/completion-tailer.d.ts.map +1 -0
  69. package/dist/chat/completion-tailer.js +187 -0
  70. package/dist/chat/completion-tailer.js.map +1 -0
  71. package/dist/chat/conversation-store.d.ts +22 -0
  72. package/dist/chat/conversation-store.d.ts.map +1 -0
  73. package/dist/chat/conversation-store.js +66 -0
  74. package/dist/chat/conversation-store.js.map +1 -0
  75. package/dist/chat/cursor-store.d.ts +23 -0
  76. package/dist/chat/cursor-store.d.ts.map +1 -0
  77. package/dist/chat/cursor-store.js +42 -0
  78. package/dist/chat/cursor-store.js.map +1 -0
  79. package/dist/chat/pid-sidecar.d.ts +22 -0
  80. package/dist/chat/pid-sidecar.d.ts.map +1 -0
  81. package/dist/chat/pid-sidecar.js +42 -0
  82. package/dist/chat/pid-sidecar.js.map +1 -0
  83. package/dist/chat/roster-reader.d.ts +16 -0
  84. package/dist/chat/roster-reader.d.ts.map +1 -0
  85. package/dist/chat/roster-reader.js +39 -0
  86. package/dist/chat/roster-reader.js.map +1 -0
  87. package/dist/chat/run-spawner.d.ts +71 -0
  88. package/dist/chat/run-spawner.d.ts.map +1 -0
  89. package/dist/chat/run-spawner.js +121 -0
  90. package/dist/chat/run-spawner.js.map +1 -0
  91. package/dist/chat/slash-commands.d.ts +40 -0
  92. package/dist/chat/slash-commands.d.ts.map +1 -0
  93. package/dist/chat/slash-commands.js +153 -0
  94. package/dist/chat/slash-commands.js.map +1 -0
  95. package/dist/chat/steer-cleanup.d.ts +12 -0
  96. package/dist/chat/steer-cleanup.d.ts.map +1 -0
  97. package/dist/chat/steer-cleanup.js +60 -0
  98. package/dist/chat/steer-cleanup.js.map +1 -0
  99. package/dist/chat/turn-classifier.d.ts +46 -0
  100. package/dist/chat/turn-classifier.d.ts.map +1 -0
  101. package/dist/chat/turn-classifier.js +157 -0
  102. package/dist/chat/turn-classifier.js.map +1 -0
  103. package/dist/cli/commands/blackboard.d.ts +33 -0
  104. package/dist/cli/commands/blackboard.d.ts.map +1 -0
  105. package/dist/cli/commands/blackboard.js +114 -0
  106. package/dist/cli/commands/blackboard.js.map +1 -0
  107. package/dist/cli/commands/calendar.d.ts +75 -0
  108. package/dist/cli/commands/calendar.d.ts.map +1 -0
  109. package/dist/cli/commands/calendar.js +203 -0
  110. package/dist/cli/commands/calendar.js.map +1 -0
  111. package/dist/cli/commands/chat.d.ts +13 -0
  112. package/dist/cli/commands/chat.d.ts.map +1 -0
  113. package/dist/cli/commands/chat.js +43 -0
  114. package/dist/cli/commands/chat.js.map +1 -0
  115. package/dist/cli/commands/do.d.ts +52 -0
  116. package/dist/cli/commands/do.d.ts.map +1 -0
  117. package/dist/cli/commands/do.js +216 -0
  118. package/dist/cli/commands/do.js.map +1 -0
  119. package/dist/cli/commands/evolve.d.ts +18 -0
  120. package/dist/cli/commands/evolve.d.ts.map +1 -0
  121. package/dist/cli/commands/evolve.js +72 -0
  122. package/dist/cli/commands/evolve.js.map +1 -0
  123. package/dist/cli/commands/facts.d.ts +15 -0
  124. package/dist/cli/commands/facts.d.ts.map +1 -0
  125. package/dist/cli/commands/facts.js +213 -0
  126. package/dist/cli/commands/facts.js.map +1 -0
  127. package/dist/cli/commands/hub.d.ts +29 -0
  128. package/dist/cli/commands/hub.d.ts.map +1 -0
  129. package/dist/cli/commands/hub.js +233 -0
  130. package/dist/cli/commands/hub.js.map +1 -0
  131. package/dist/cli/commands/medical.d.ts +49 -0
  132. package/dist/cli/commands/medical.d.ts.map +1 -0
  133. package/dist/cli/commands/medical.js +365 -0
  134. package/dist/cli/commands/medical.js.map +1 -0
  135. package/dist/cli/commands/memory.d.ts +2 -1
  136. package/dist/cli/commands/memory.d.ts.map +1 -1
  137. package/dist/cli/commands/memory.js +94 -7
  138. package/dist/cli/commands/memory.js.map +1 -1
  139. package/dist/cli/commands/plan.d.ts.map +1 -1
  140. package/dist/cli/commands/plan.js +29 -3
  141. package/dist/cli/commands/plan.js.map +1 -1
  142. package/dist/cli/commands/replay.d.ts +17 -0
  143. package/dist/cli/commands/replay.d.ts.map +1 -0
  144. package/dist/cli/commands/replay.js +261 -0
  145. package/dist/cli/commands/replay.js.map +1 -0
  146. package/dist/cli/commands/research.d.ts +41 -0
  147. package/dist/cli/commands/research.d.ts.map +1 -0
  148. package/dist/cli/commands/research.js +313 -0
  149. package/dist/cli/commands/research.js.map +1 -0
  150. package/dist/cli/commands/run.d.ts +9 -0
  151. package/dist/cli/commands/run.d.ts.map +1 -1
  152. package/dist/cli/commands/run.js +27 -1
  153. package/dist/cli/commands/run.js.map +1 -1
  154. package/dist/cli/commands/security-audit.d.ts +89 -0
  155. package/dist/cli/commands/security-audit.d.ts.map +1 -0
  156. package/dist/cli/commands/security-audit.js +238 -0
  157. package/dist/cli/commands/security-audit.js.map +1 -0
  158. package/dist/cli/commands/sprint.d.ts.map +1 -1
  159. package/dist/cli/commands/sprint.js +17 -3
  160. package/dist/cli/commands/sprint.js.map +1 -1
  161. package/dist/cli/commands/task.d.ts +64 -0
  162. package/dist/cli/commands/task.d.ts.map +1 -0
  163. package/dist/cli/commands/task.js +422 -0
  164. package/dist/cli/commands/task.js.map +1 -0
  165. package/dist/cli/commands/telegram.d.ts +10 -0
  166. package/dist/cli/commands/telegram.d.ts.map +1 -0
  167. package/dist/cli/commands/telegram.js +44 -0
  168. package/dist/cli/commands/telegram.js.map +1 -0
  169. package/dist/cli/commands/vault.d.ts +40 -0
  170. package/dist/cli/commands/vault.d.ts.map +1 -0
  171. package/dist/cli/commands/vault.js +122 -0
  172. package/dist/cli/commands/vault.js.map +1 -0
  173. package/dist/cli/index.js +45 -0
  174. package/dist/cli/index.js.map +1 -1
  175. package/dist/config/defaults.d.ts.map +1 -1
  176. package/dist/config/defaults.js +8 -0
  177. package/dist/config/defaults.js.map +1 -1
  178. package/dist/config/role-providers.d.ts +16 -1
  179. package/dist/config/role-providers.d.ts.map +1 -1
  180. package/dist/config/role-providers.js +14 -2
  181. package/dist/config/role-providers.js.map +1 -1
  182. package/dist/config/schema.d.ts +4050 -454
  183. package/dist/config/schema.d.ts.map +1 -1
  184. package/dist/config/schema.js +429 -1
  185. package/dist/config/schema.js.map +1 -1
  186. package/dist/contracts/eval-result.d.ts +84 -84
  187. package/dist/contracts/spec.d.ts +28 -28
  188. package/dist/contracts/sprint-contract.d.ts +4 -4
  189. package/dist/do-bridge/coding-promoter.d.ts +19 -0
  190. package/dist/do-bridge/coding-promoter.d.ts.map +1 -0
  191. package/dist/do-bridge/coding-promoter.js +43 -0
  192. package/dist/do-bridge/coding-promoter.js.map +1 -0
  193. package/dist/do-bridge/finding-port.d.ts +88 -0
  194. package/dist/do-bridge/finding-port.d.ts.map +1 -0
  195. package/dist/do-bridge/finding-port.js +95 -0
  196. package/dist/do-bridge/finding-port.js.map +1 -0
  197. package/dist/do-bridge/launcher.d.ts +55 -0
  198. package/dist/do-bridge/launcher.d.ts.map +1 -0
  199. package/dist/do-bridge/launcher.js +37 -0
  200. package/dist/do-bridge/launcher.js.map +1 -0
  201. package/dist/do-bridge/promote.d.ts +50 -0
  202. package/dist/do-bridge/promote.d.ts.map +1 -0
  203. package/dist/do-bridge/promote.js +116 -0
  204. package/dist/do-bridge/promote.js.map +1 -0
  205. package/dist/do-bridge/reconcile.d.ts +50 -0
  206. package/dist/do-bridge/reconcile.d.ts.map +1 -0
  207. package/dist/do-bridge/reconcile.js +70 -0
  208. package/dist/do-bridge/reconcile.js.map +1 -0
  209. package/dist/do-bridge/registry.d.ts +23 -0
  210. package/dist/do-bridge/registry.d.ts.map +1 -0
  211. package/dist/do-bridge/registry.js +42 -0
  212. package/dist/do-bridge/registry.js.map +1 -0
  213. package/dist/do-bridge/types.d.ts +50 -0
  214. package/dist/do-bridge/types.d.ts.map +1 -0
  215. package/dist/do-bridge/types.js +17 -0
  216. package/dist/do-bridge/types.js.map +1 -0
  217. package/dist/fleet/child-config.d.ts.map +1 -1
  218. package/dist/fleet/child-config.js +7 -0
  219. package/dist/fleet/child-config.js.map +1 -1
  220. package/dist/fleet/coordinator.d.ts +27 -1
  221. package/dist/fleet/coordinator.d.ts.map +1 -1
  222. package/dist/fleet/coordinator.js +70 -0
  223. package/dist/fleet/coordinator.js.map +1 -1
  224. package/dist/fleet/critic-deep.d.ts +61 -0
  225. package/dist/fleet/critic-deep.d.ts.map +1 -0
  226. package/dist/fleet/critic-deep.js +202 -0
  227. package/dist/fleet/critic-deep.js.map +1 -0
  228. package/dist/fleet/decomposer-deep-constants.d.ts +4 -0
  229. package/dist/fleet/decomposer-deep-constants.d.ts.map +1 -0
  230. package/dist/fleet/decomposer-deep-constants.js +14 -0
  231. package/dist/fleet/decomposer-deep-constants.js.map +1 -0
  232. package/dist/fleet/decomposer-deep-types.d.ts +8 -0
  233. package/dist/fleet/decomposer-deep-types.d.ts.map +1 -0
  234. package/dist/fleet/decomposer-deep-types.js +9 -0
  235. package/dist/fleet/decomposer-deep-types.js.map +1 -0
  236. package/dist/fleet/decomposer-deep.d.ts +44 -0
  237. package/dist/fleet/decomposer-deep.d.ts.map +1 -0
  238. package/dist/fleet/decomposer-deep.js +261 -0
  239. package/dist/fleet/decomposer-deep.js.map +1 -0
  240. package/dist/fleet/decomposer.d.ts +22 -0
  241. package/dist/fleet/decomposer.d.ts.map +1 -0
  242. package/dist/fleet/decomposer.js +144 -0
  243. package/dist/fleet/decomposer.js.map +1 -0
  244. package/dist/fleet/index.d.ts +102 -0
  245. package/dist/fleet/index.d.ts.map +1 -1
  246. package/dist/fleet/index.js +316 -9
  247. package/dist/fleet/index.js.map +1 -1
  248. package/dist/fleet/manifest-write.d.ts +30 -0
  249. package/dist/fleet/manifest-write.d.ts.map +1 -0
  250. package/dist/fleet/manifest-write.js +90 -0
  251. package/dist/fleet/manifest-write.js.map +1 -0
  252. package/dist/fleet/manifest.d.ts +32 -6
  253. package/dist/fleet/manifest.d.ts.map +1 -1
  254. package/dist/fleet/manifest.js +8 -0
  255. package/dist/fleet/manifest.js.map +1 -1
  256. package/dist/fleet/reporter.d.ts +4 -1
  257. package/dist/fleet/reporter.d.ts.map +1 -1
  258. package/dist/fleet/reporter.js +2 -1
  259. package/dist/fleet/reporter.js.map +1 -1
  260. package/dist/fleet/scaffolder.d.ts +5 -1
  261. package/dist/fleet/scaffolder.d.ts.map +1 -1
  262. package/dist/fleet/scaffolder.js +11 -2
  263. package/dist/fleet/scaffolder.js.map +1 -1
  264. package/dist/fleet/shared-blackboard.d.ts +51 -0
  265. package/dist/fleet/shared-blackboard.d.ts.map +1 -0
  266. package/dist/fleet/shared-blackboard.js +79 -0
  267. package/dist/fleet/shared-blackboard.js.map +1 -0
  268. package/dist/fleet/synthesis.d.ts +16 -0
  269. package/dist/fleet/synthesis.d.ts.map +1 -0
  270. package/dist/fleet/synthesis.js +22 -0
  271. package/dist/fleet/synthesis.js.map +1 -0
  272. package/dist/fleet/tier-policy.d.ts +18 -0
  273. package/dist/fleet/tier-policy.d.ts.map +1 -0
  274. package/dist/fleet/tier-policy.js +53 -0
  275. package/dist/fleet/tier-policy.js.map +1 -0
  276. package/dist/fleet/tool-role-guard.d.ts +24 -0
  277. package/dist/fleet/tool-role-guard.d.ts.map +1 -0
  278. package/dist/fleet/tool-role-guard.js +55 -0
  279. package/dist/fleet/tool-role-guard.js.map +1 -0
  280. package/dist/graph/client.d.ts.map +1 -1
  281. package/dist/graph/client.js +115 -23
  282. package/dist/graph/client.js.map +1 -1
  283. package/dist/graph/mcp-client.d.ts +1 -0
  284. package/dist/graph/mcp-client.d.ts.map +1 -1
  285. package/dist/graph/mcp-client.js +58 -7
  286. package/dist/graph/mcp-client.js.map +1 -1
  287. package/dist/hub/collector.d.ts +12 -0
  288. package/dist/hub/collector.d.ts.map +1 -0
  289. package/dist/hub/collector.js +36 -0
  290. package/dist/hub/collector.js.map +1 -0
  291. package/dist/hub/finding-source.d.ts +22 -0
  292. package/dist/hub/finding-source.d.ts.map +1 -0
  293. package/dist/hub/finding-source.js +41 -0
  294. package/dist/hub/finding-source.js.map +1 -0
  295. package/dist/hub/finding-store.d.ts +68 -0
  296. package/dist/hub/finding-store.d.ts.map +1 -0
  297. package/dist/hub/finding-store.js +122 -0
  298. package/dist/hub/finding-store.js.map +1 -0
  299. package/dist/hub/finding.d.ts +54 -0
  300. package/dist/hub/finding.d.ts.map +1 -0
  301. package/dist/hub/finding.js +24 -0
  302. package/dist/hub/finding.js.map +1 -0
  303. package/dist/hub/gmail-to-task.d.ts +69 -0
  304. package/dist/hub/gmail-to-task.d.ts.map +1 -0
  305. package/dist/hub/gmail-to-task.js +102 -0
  306. package/dist/hub/gmail-to-task.js.map +1 -0
  307. package/dist/hub/hub-config.d.ts +18 -0
  308. package/dist/hub/hub-config.d.ts.map +1 -0
  309. package/dist/hub/hub-config.js +40 -0
  310. package/dist/hub/hub-config.js.map +1 -0
  311. package/dist/hub/judge.d.ts +30 -0
  312. package/dist/hub/judge.d.ts.map +1 -0
  313. package/dist/hub/judge.js +177 -0
  314. package/dist/hub/judge.js.map +1 -0
  315. package/dist/hub/lenses.d.ts +60 -0
  316. package/dist/hub/lenses.d.ts.map +1 -0
  317. package/dist/hub/lenses.js +123 -0
  318. package/dist/hub/lenses.js.map +1 -0
  319. package/dist/hub/priority-md.d.ts +21 -0
  320. package/dist/hub/priority-md.d.ts.map +1 -0
  321. package/dist/hub/priority-md.js +64 -0
  322. package/dist/hub/priority-md.js.map +1 -0
  323. package/dist/hub/repo-resolver.d.ts +11 -0
  324. package/dist/hub/repo-resolver.d.ts.map +1 -0
  325. package/dist/hub/repo-resolver.js +39 -0
  326. package/dist/hub/repo-resolver.js.map +1 -0
  327. package/dist/hub/scope.d.ts +39 -0
  328. package/dist/hub/scope.d.ts.map +1 -0
  329. package/dist/hub/scope.js +62 -0
  330. package/dist/hub/scope.js.map +1 -0
  331. package/dist/hub/task-inbox.d.ts +16 -0
  332. package/dist/hub/task-inbox.d.ts.map +1 -0
  333. package/dist/hub/task-inbox.js +39 -0
  334. package/dist/hub/task-inbox.js.map +1 -0
  335. package/dist/incident/resolution-verify.d.ts +2 -2
  336. package/dist/incident/types.d.ts +8 -8
  337. package/dist/index.d.ts +2 -1
  338. package/dist/index.d.ts.map +1 -1
  339. package/dist/index.js +2 -1
  340. package/dist/index.js.map +1 -1
  341. package/dist/mcp/run-manager.d.ts +9 -1
  342. package/dist/mcp/run-manager.d.ts.map +1 -1
  343. package/dist/mcp/run-manager.js.map +1 -1
  344. package/dist/medical/adapters/apple-health.d.ts +32 -0
  345. package/dist/medical/adapters/apple-health.d.ts.map +1 -0
  346. package/dist/medical/adapters/apple-health.js +100 -0
  347. package/dist/medical/adapters/apple-health.js.map +1 -0
  348. package/dist/medical/analysis/cadence.d.ts +32 -0
  349. package/dist/medical/analysis/cadence.d.ts.map +1 -0
  350. package/dist/medical/analysis/cadence.js +72 -0
  351. package/dist/medical/analysis/cadence.js.map +1 -0
  352. package/dist/medical/analysis/cross-marker.d.ts +33 -0
  353. package/dist/medical/analysis/cross-marker.d.ts.map +1 -0
  354. package/dist/medical/analysis/cross-marker.js +79 -0
  355. package/dist/medical/analysis/cross-marker.js.map +1 -0
  356. package/dist/medical/analysis/finding-writer.d.ts +26 -0
  357. package/dist/medical/analysis/finding-writer.d.ts.map +1 -0
  358. package/dist/medical/analysis/finding-writer.js +60 -0
  359. package/dist/medical/analysis/finding-writer.js.map +1 -0
  360. package/dist/medical/analysis/finding.d.ts +63 -0
  361. package/dist/medical/analysis/finding.d.ts.map +1 -0
  362. package/dist/medical/analysis/finding.js +70 -0
  363. package/dist/medical/analysis/finding.js.map +1 -0
  364. package/dist/medical/analysis/review-pass.d.ts +76 -0
  365. package/dist/medical/analysis/review-pass.d.ts.map +1 -0
  366. package/dist/medical/analysis/review-pass.js +119 -0
  367. package/dist/medical/analysis/review-pass.js.map +1 -0
  368. package/dist/medical/analysis/trends.d.ts +36 -0
  369. package/dist/medical/analysis/trends.d.ts.map +1 -0
  370. package/dist/medical/analysis/trends.js +157 -0
  371. package/dist/medical/analysis/trends.js.map +1 -0
  372. package/dist/medical/audit.d.ts +31 -0
  373. package/dist/medical/audit.d.ts.map +1 -0
  374. package/dist/medical/audit.js +56 -0
  375. package/dist/medical/audit.js.map +1 -0
  376. package/dist/medical/consent.d.ts +37 -0
  377. package/dist/medical/consent.d.ts.map +1 -0
  378. package/dist/medical/consent.js +73 -0
  379. package/dist/medical/consent.js.map +1 -0
  380. package/dist/medical/disclaimer.d.ts +11 -0
  381. package/dist/medical/disclaimer.d.ts.map +1 -0
  382. package/dist/medical/disclaimer.js +21 -0
  383. package/dist/medical/disclaimer.js.map +1 -0
  384. package/dist/medical/egress.d.ts +30 -0
  385. package/dist/medical/egress.d.ts.map +1 -0
  386. package/dist/medical/egress.js +50 -0
  387. package/dist/medical/egress.js.map +1 -0
  388. package/dist/medical/engine.d.ts +73 -0
  389. package/dist/medical/engine.d.ts.map +1 -0
  390. package/dist/medical/engine.js +333 -0
  391. package/dist/medical/engine.js.map +1 -0
  392. package/dist/medical/guardrails.d.ts +47 -0
  393. package/dist/medical/guardrails.d.ts.map +1 -0
  394. package/dist/medical/guardrails.js +92 -0
  395. package/dist/medical/guardrails.js.map +1 -0
  396. package/dist/medical/health-store.d.ts +85 -0
  397. package/dist/medical/health-store.d.ts.map +1 -0
  398. package/dist/medical/health-store.js +214 -0
  399. package/dist/medical/health-store.js.map +1 -0
  400. package/dist/medical/inference.d.ts +22 -0
  401. package/dist/medical/inference.d.ts.map +1 -0
  402. package/dist/medical/inference.js +39 -0
  403. package/dist/medical/inference.js.map +1 -0
  404. package/dist/medical/ingestion.d.ts +33 -0
  405. package/dist/medical/ingestion.d.ts.map +1 -0
  406. package/dist/medical/ingestion.js +52 -0
  407. package/dist/medical/ingestion.js.map +1 -0
  408. package/dist/medical/lab-note.d.ts +72 -0
  409. package/dist/medical/lab-note.d.ts.map +1 -0
  410. package/dist/medical/lab-note.js +161 -0
  411. package/dist/medical/lab-note.js.map +1 -0
  412. package/dist/medical/lab-pdf-parser.d.ts +19 -0
  413. package/dist/medical/lab-pdf-parser.d.ts.map +1 -0
  414. package/dist/medical/lab-pdf-parser.js +57 -0
  415. package/dist/medical/lab-pdf-parser.js.map +1 -0
  416. package/dist/medical/lab-reindex.d.ts +24 -0
  417. package/dist/medical/lab-reindex.d.ts.map +1 -0
  418. package/dist/medical/lab-reindex.js +45 -0
  419. package/dist/medical/lab-reindex.js.map +1 -0
  420. package/dist/medical/lab-types.d.ts +75 -0
  421. package/dist/medical/lab-types.d.ts.map +1 -0
  422. package/dist/medical/lab-types.js +17 -0
  423. package/dist/medical/lab-types.js.map +1 -0
  424. package/dist/medical/numerics.d.ts +66 -0
  425. package/dist/medical/numerics.d.ts.map +1 -0
  426. package/dist/medical/numerics.js +216 -0
  427. package/dist/medical/numerics.js.map +1 -0
  428. package/dist/medical/profile.d.ts +96 -0
  429. package/dist/medical/profile.d.ts.map +1 -0
  430. package/dist/medical/profile.js +273 -0
  431. package/dist/medical/profile.js.map +1 -0
  432. package/dist/medical/recommend/context.d.ts +48 -0
  433. package/dist/medical/recommend/context.d.ts.map +1 -0
  434. package/dist/medical/recommend/context.js +109 -0
  435. package/dist/medical/recommend/context.js.map +1 -0
  436. package/dist/medical/recommend/judge-panel.d.ts +49 -0
  437. package/dist/medical/recommend/judge-panel.d.ts.map +1 -0
  438. package/dist/medical/recommend/judge-panel.js +164 -0
  439. package/dist/medical/recommend/judge-panel.js.map +1 -0
  440. package/dist/medical/recommend/lenses.d.ts +72 -0
  441. package/dist/medical/recommend/lenses.d.ts.map +1 -0
  442. package/dist/medical/recommend/lenses.js +220 -0
  443. package/dist/medical/recommend/lenses.js.map +1 -0
  444. package/dist/medical/recommend/recommend.d.ts +86 -0
  445. package/dist/medical/recommend/recommend.d.ts.map +1 -0
  446. package/dist/medical/recommend/recommend.js +211 -0
  447. package/dist/medical/recommend/recommend.js.map +1 -0
  448. package/dist/medical/recommend/types.d.ts +98 -0
  449. package/dist/medical/recommend/types.d.ts.map +1 -0
  450. package/dist/medical/recommend/types.js +20 -0
  451. package/dist/medical/recommend/types.js.map +1 -0
  452. package/dist/medical/recommend/urgency.d.ts +26 -0
  453. package/dist/medical/recommend/urgency.d.ts.map +1 -0
  454. package/dist/medical/recommend/urgency.js +124 -0
  455. package/dist/medical/recommend/urgency.js.map +1 -0
  456. package/dist/medical/red-flag.d.ts +42 -0
  457. package/dist/medical/red-flag.d.ts.map +1 -0
  458. package/dist/medical/red-flag.js +161 -0
  459. package/dist/medical/red-flag.js.map +1 -0
  460. package/dist/medical/refusal.d.ts +46 -0
  461. package/dist/medical/refusal.d.ts.map +1 -0
  462. package/dist/medical/refusal.js +131 -0
  463. package/dist/medical/refusal.js.map +1 -0
  464. package/dist/medical/research/online-research.d.ts +65 -0
  465. package/dist/medical/research/online-research.d.ts.map +1 -0
  466. package/dist/medical/research/online-research.js +101 -0
  467. package/dist/medical/research/online-research.js.map +1 -0
  468. package/dist/medical/research/research-note.d.ts +32 -0
  469. package/dist/medical/research/research-note.d.ts.map +1 -0
  470. package/dist/medical/research/research-note.js +55 -0
  471. package/dist/medical/research/research-note.js.map +1 -0
  472. package/dist/medical/retrieval/grounding-critic.d.ts +34 -0
  473. package/dist/medical/retrieval/grounding-critic.d.ts.map +1 -0
  474. package/dist/medical/retrieval/grounding-critic.js +153 -0
  475. package/dist/medical/retrieval/grounding-critic.js.map +1 -0
  476. package/dist/medical/retrieval/literature.d.ts +78 -0
  477. package/dist/medical/retrieval/literature.d.ts.map +1 -0
  478. package/dist/medical/retrieval/literature.js +292 -0
  479. package/dist/medical/retrieval/literature.js.map +1 -0
  480. package/dist/medical/retrieval/medline-source.d.ts +72 -0
  481. package/dist/medical/retrieval/medline-source.d.ts.map +1 -0
  482. package/dist/medical/retrieval/medline-source.js +120 -0
  483. package/dist/medical/retrieval/medline-source.js.map +1 -0
  484. package/dist/medical/supplements.d.ts +82 -0
  485. package/dist/medical/supplements.d.ts.map +1 -0
  486. package/dist/medical/supplements.js +173 -0
  487. package/dist/medical/supplements.js.map +1 -0
  488. package/dist/medical/team.d.ts +15 -0
  489. package/dist/medical/team.d.ts.map +1 -0
  490. package/dist/medical/team.js +44 -0
  491. package/dist/medical/team.js.map +1 -0
  492. package/dist/medical/types.d.ts +175 -0
  493. package/dist/medical/types.d.ts.map +1 -0
  494. package/dist/medical/types.js +8 -0
  495. package/dist/medical/types.js.map +1 -0
  496. package/dist/medical/whoop/whoop-client.d.ts +114 -0
  497. package/dist/medical/whoop/whoop-client.d.ts.map +1 -0
  498. package/dist/medical/whoop/whoop-client.js +226 -0
  499. package/dist/medical/whoop/whoop-client.js.map +1 -0
  500. package/dist/medical/whoop/whoop-sync.d.ts +25 -0
  501. package/dist/medical/whoop/whoop-sync.d.ts.map +1 -0
  502. package/dist/medical/whoop/whoop-sync.js +97 -0
  503. package/dist/medical/whoop/whoop-sync.js.map +1 -0
  504. package/dist/medical/whoop/whoop-token.d.ts +44 -0
  505. package/dist/medical/whoop/whoop-token.d.ts.map +1 -0
  506. package/dist/medical/whoop/whoop-token.js +66 -0
  507. package/dist/medical/whoop/whoop-token.js.map +1 -0
  508. package/dist/orchestrator/agentic-loop.d.ts +160 -1
  509. package/dist/orchestrator/agentic-loop.d.ts.map +1 -1
  510. package/dist/orchestrator/agentic-loop.js +350 -41
  511. package/dist/orchestrator/agentic-loop.js.map +1 -1
  512. package/dist/orchestrator/compaction.d.ts +47 -0
  513. package/dist/orchestrator/compaction.d.ts.map +1 -0
  514. package/dist/orchestrator/compaction.js +75 -0
  515. package/dist/orchestrator/compaction.js.map +1 -0
  516. package/dist/orchestrator/context-handoff.d.ts +60 -60
  517. package/dist/orchestrator/contract-materialization.d.ts +33 -0
  518. package/dist/orchestrator/contract-materialization.d.ts.map +1 -0
  519. package/dist/orchestrator/contract-materialization.js +113 -0
  520. package/dist/orchestrator/contract-materialization.js.map +1 -0
  521. package/dist/orchestrator/generator-agent.d.ts +19 -0
  522. package/dist/orchestrator/generator-agent.d.ts.map +1 -1
  523. package/dist/orchestrator/generator-agent.js +27 -1
  524. package/dist/orchestrator/generator-agent.js.map +1 -1
  525. package/dist/orchestrator/loop-events.d.ts +98 -0
  526. package/dist/orchestrator/loop-events.d.ts.map +1 -0
  527. package/dist/orchestrator/loop-events.js +2 -0
  528. package/dist/orchestrator/loop-events.js.map +1 -0
  529. package/dist/orchestrator/memory/distill.d.ts +4 -1
  530. package/dist/orchestrator/memory/distill.d.ts.map +1 -1
  531. package/dist/orchestrator/memory/distill.js +41 -1
  532. package/dist/orchestrator/memory/distill.js.map +1 -1
  533. package/dist/orchestrator/memory/fact-detector.d.ts +61 -0
  534. package/dist/orchestrator/memory/fact-detector.d.ts.map +1 -0
  535. package/dist/orchestrator/memory/fact-detector.js +153 -0
  536. package/dist/orchestrator/memory/fact-detector.js.map +1 -0
  537. package/dist/orchestrator/memory/fact-judge.d.ts +19 -0
  538. package/dist/orchestrator/memory/fact-judge.d.ts.map +1 -0
  539. package/dist/orchestrator/memory/fact-judge.js +121 -0
  540. package/dist/orchestrator/memory/fact-judge.js.map +1 -0
  541. package/dist/orchestrator/memory/fact-retrieve.d.ts +52 -0
  542. package/dist/orchestrator/memory/fact-retrieve.d.ts.map +1 -0
  543. package/dist/orchestrator/memory/fact-retrieve.js +117 -0
  544. package/dist/orchestrator/memory/fact-retrieve.js.map +1 -0
  545. package/dist/orchestrator/memory/hygiene.d.ts +66 -0
  546. package/dist/orchestrator/memory/hygiene.d.ts.map +1 -0
  547. package/dist/orchestrator/memory/hygiene.js +153 -0
  548. package/dist/orchestrator/memory/hygiene.js.map +1 -0
  549. package/dist/orchestrator/memory/reconcile.d.ts +47 -0
  550. package/dist/orchestrator/memory/reconcile.d.ts.map +1 -0
  551. package/dist/orchestrator/memory/reconcile.js +116 -0
  552. package/dist/orchestrator/memory/reconcile.js.map +1 -0
  553. package/dist/orchestrator/memory/retrieve.d.ts +5 -3
  554. package/dist/orchestrator/memory/retrieve.d.ts.map +1 -1
  555. package/dist/orchestrator/memory/retrieve.js +9 -6
  556. package/dist/orchestrator/memory/retrieve.js.map +1 -1
  557. package/dist/orchestrator/model-resolver.d.ts.map +1 -1
  558. package/dist/orchestrator/model-resolver.js +10 -6
  559. package/dist/orchestrator/model-resolver.js.map +1 -1
  560. package/dist/orchestrator/pipeline.d.ts +29 -4
  561. package/dist/orchestrator/pipeline.d.ts.map +1 -1
  562. package/dist/orchestrator/pipeline.js +165 -56
  563. package/dist/orchestrator/pipeline.js.map +1 -1
  564. package/dist/orchestrator/planner-agent.d.ts.map +1 -1
  565. package/dist/orchestrator/planner-agent.js +16 -1
  566. package/dist/orchestrator/planner-agent.js.map +1 -1
  567. package/dist/orchestrator/security-audit-types.d.ts +53 -0
  568. package/dist/orchestrator/security-audit-types.d.ts.map +1 -0
  569. package/dist/orchestrator/security-audit-types.js +10 -0
  570. package/dist/orchestrator/security-audit-types.js.map +1 -0
  571. package/dist/orchestrator/security-auditor-agent.d.ts +68 -0
  572. package/dist/orchestrator/security-auditor-agent.d.ts.map +1 -0
  573. package/dist/orchestrator/security-auditor-agent.js +482 -0
  574. package/dist/orchestrator/security-auditor-agent.js.map +1 -0
  575. package/dist/orchestrator/security-gate.d.ts +73 -0
  576. package/dist/orchestrator/security-gate.d.ts.map +1 -0
  577. package/dist/orchestrator/security-gate.js +174 -0
  578. package/dist/orchestrator/security-gate.js.map +1 -0
  579. package/dist/orchestrator/security-hub.d.ts +45 -0
  580. package/dist/orchestrator/security-hub.d.ts.map +1 -0
  581. package/dist/orchestrator/security-hub.js +147 -0
  582. package/dist/orchestrator/security-hub.js.map +1 -0
  583. package/dist/orchestrator/security-knowledge/benchmark/harness.d.ts +43 -0
  584. package/dist/orchestrator/security-knowledge/benchmark/harness.d.ts.map +1 -0
  585. package/dist/orchestrator/security-knowledge/benchmark/harness.js +13 -0
  586. package/dist/orchestrator/security-knowledge/benchmark/harness.js.map +1 -0
  587. package/dist/orchestrator/security-knowledge/diff-provider.d.ts +79 -0
  588. package/dist/orchestrator/security-knowledge/diff-provider.d.ts.map +1 -0
  589. package/dist/orchestrator/security-knowledge/diff-provider.js +320 -0
  590. package/dist/orchestrator/security-knowledge/diff-provider.js.map +1 -0
  591. package/dist/orchestrator/security-knowledge/index.d.ts +22 -0
  592. package/dist/orchestrator/security-knowledge/index.d.ts.map +1 -0
  593. package/dist/orchestrator/security-knowledge/index.js +66 -0
  594. package/dist/orchestrator/security-knowledge/index.js.map +1 -0
  595. package/dist/orchestrator/security-knowledge/parser.d.ts +9 -0
  596. package/dist/orchestrator/security-knowledge/parser.d.ts.map +1 -0
  597. package/dist/orchestrator/security-knowledge/parser.js +137 -0
  598. package/dist/orchestrator/security-knowledge/parser.js.map +1 -0
  599. package/dist/orchestrator/security-knowledge/registry.d.ts +25 -0
  600. package/dist/orchestrator/security-knowledge/registry.d.ts.map +1 -0
  601. package/dist/orchestrator/security-knowledge/registry.js +114 -0
  602. package/dist/orchestrator/security-knowledge/registry.js.map +1 -0
  603. package/dist/orchestrator/security-knowledge/resolver.d.ts +48 -0
  604. package/dist/orchestrator/security-knowledge/resolver.d.ts.map +1 -0
  605. package/dist/orchestrator/security-knowledge/resolver.js +63 -0
  606. package/dist/orchestrator/security-knowledge/resolver.js.map +1 -0
  607. package/dist/orchestrator/security-knowledge/selector.d.ts +18 -0
  608. package/dist/orchestrator/security-knowledge/selector.d.ts.map +1 -0
  609. package/dist/orchestrator/security-knowledge/selector.js +46 -0
  610. package/dist/orchestrator/security-knowledge/selector.js.map +1 -0
  611. package/dist/orchestrator/security-knowledge/signature.d.ts +37 -0
  612. package/dist/orchestrator/security-knowledge/signature.d.ts.map +1 -0
  613. package/dist/orchestrator/security-knowledge/signature.js +2 -0
  614. package/dist/orchestrator/security-knowledge/signature.js.map +1 -0
  615. package/dist/orchestrator/security-knowledge/supply-chain-inspector.d.ts +29 -0
  616. package/dist/orchestrator/security-knowledge/supply-chain-inspector.d.ts.map +1 -0
  617. package/dist/orchestrator/security-knowledge/supply-chain-inspector.js +211 -0
  618. package/dist/orchestrator/security-knowledge/supply-chain-inspector.js.map +1 -0
  619. package/dist/orchestrator/security-scanners.d.ts +126 -0
  620. package/dist/orchestrator/security-scanners.d.ts.map +1 -0
  621. package/dist/orchestrator/security-scanners.js +501 -0
  622. package/dist/orchestrator/security-scanners.js.map +1 -0
  623. package/dist/orchestrator/security-verifier-agent.d.ts +62 -0
  624. package/dist/orchestrator/security-verifier-agent.d.ts.map +1 -0
  625. package/dist/orchestrator/security-verifier-agent.js +230 -0
  626. package/dist/orchestrator/security-verifier-agent.js.map +1 -0
  627. package/dist/orchestrator/selfimprove/eval-guards.d.ts +51 -0
  628. package/dist/orchestrator/selfimprove/eval-guards.d.ts.map +1 -0
  629. package/dist/orchestrator/selfimprove/eval-guards.js +120 -0
  630. package/dist/orchestrator/selfimprove/eval-guards.js.map +1 -0
  631. package/dist/orchestrator/selfimprove/gepa.d.ts +74 -0
  632. package/dist/orchestrator/selfimprove/gepa.d.ts.map +1 -0
  633. package/dist/orchestrator/selfimprove/gepa.js +227 -0
  634. package/dist/orchestrator/selfimprove/gepa.js.map +1 -0
  635. package/dist/orchestrator/selfimprove/replay-harness.d.ts +65 -0
  636. package/dist/orchestrator/selfimprove/replay-harness.d.ts.map +1 -0
  637. package/dist/orchestrator/selfimprove/replay-harness.js +134 -0
  638. package/dist/orchestrator/selfimprove/replay-harness.js.map +1 -0
  639. package/dist/orchestrator/selfimprove/replay-store.d.ts +45 -0
  640. package/dist/orchestrator/selfimprove/replay-store.d.ts.map +1 -0
  641. package/dist/orchestrator/selfimprove/replay-store.js +119 -0
  642. package/dist/orchestrator/selfimprove/replay-store.js.map +1 -0
  643. package/dist/orchestrator/selfimprove/replay-types.d.ts +32 -0
  644. package/dist/orchestrator/selfimprove/replay-types.d.ts.map +1 -0
  645. package/dist/orchestrator/selfimprove/replay-types.js +15 -0
  646. package/dist/orchestrator/selfimprove/replay-types.js.map +1 -0
  647. package/dist/orchestrator/session-store.d.ts +95 -0
  648. package/dist/orchestrator/session-store.d.ts.map +1 -0
  649. package/dist/orchestrator/session-store.js +186 -0
  650. package/dist/orchestrator/session-store.js.map +1 -0
  651. package/dist/orchestrator/stack-knowledge.d.ts +17 -0
  652. package/dist/orchestrator/stack-knowledge.d.ts.map +1 -0
  653. package/dist/orchestrator/stack-knowledge.js +35 -0
  654. package/dist/orchestrator/stack-knowledge.js.map +1 -0
  655. package/dist/orchestrator/subagents.d.ts +62 -0
  656. package/dist/orchestrator/subagents.d.ts.map +1 -0
  657. package/dist/orchestrator/subagents.js +143 -0
  658. package/dist/orchestrator/subagents.js.map +1 -0
  659. package/dist/orchestrator/tools/executor.d.ts +68 -0
  660. package/dist/orchestrator/tools/executor.d.ts.map +1 -0
  661. package/dist/orchestrator/tools/executor.js +104 -0
  662. package/dist/orchestrator/tools/executor.js.map +1 -0
  663. package/dist/orchestrator/tools/mcp-bridge.d.ts +76 -0
  664. package/dist/orchestrator/tools/mcp-bridge.d.ts.map +1 -0
  665. package/dist/orchestrator/tools/mcp-bridge.js +154 -0
  666. package/dist/orchestrator/tools/mcp-bridge.js.map +1 -0
  667. package/dist/orchestrator/tools/schemas.d.ts.map +1 -1
  668. package/dist/orchestrator/tools/schemas.js +3 -0
  669. package/dist/orchestrator/tools/schemas.js.map +1 -1
  670. package/dist/orchestrator/workflow/budget.d.ts +24 -2
  671. package/dist/orchestrator/workflow/budget.d.ts.map +1 -1
  672. package/dist/orchestrator/workflow/budget.js +39 -1
  673. package/dist/orchestrator/workflow/budget.js.map +1 -1
  674. package/dist/orchestrator/workflow/engine.d.ts +4 -2
  675. package/dist/orchestrator/workflow/engine.d.ts.map +1 -1
  676. package/dist/orchestrator/workflow/selector.d.ts +18 -0
  677. package/dist/orchestrator/workflow/selector.d.ts.map +1 -1
  678. package/dist/orchestrator/workflow/selector.js +51 -0
  679. package/dist/orchestrator/workflow/selector.js.map +1 -1
  680. package/dist/orchestrator/workflow/ts-engine.d.ts +3 -1
  681. package/dist/orchestrator/workflow/ts-engine.d.ts.map +1 -1
  682. package/dist/orchestrator/workflow/ts-engine.js +2 -2
  683. package/dist/orchestrator/workflow/ts-engine.js.map +1 -1
  684. package/dist/orchestrator/workflow/workflow-engine.d.ts +3 -1
  685. package/dist/orchestrator/workflow/workflow-engine.d.ts.map +1 -1
  686. package/dist/orchestrator/workflow/workflow-engine.js +3 -3
  687. package/dist/orchestrator/workflow/workflow-engine.js.map +1 -1
  688. package/dist/providers/anthropic.d.ts.map +1 -1
  689. package/dist/providers/anthropic.js +116 -26
  690. package/dist/providers/anthropic.js.map +1 -1
  691. package/dist/providers/claude-code.d.ts.map +1 -1
  692. package/dist/providers/claude-code.js +17 -0
  693. package/dist/providers/claude-code.js.map +1 -1
  694. package/dist/providers/cost-meter.d.ts +52 -0
  695. package/dist/providers/cost-meter.d.ts.map +1 -0
  696. package/dist/providers/cost-meter.js +81 -0
  697. package/dist/providers/cost-meter.js.map +1 -0
  698. package/dist/providers/factory.d.ts +6 -1
  699. package/dist/providers/factory.d.ts.map +1 -1
  700. package/dist/providers/factory.js +24 -5
  701. package/dist/providers/factory.js.map +1 -1
  702. package/dist/providers/google.d.ts.map +1 -1
  703. package/dist/providers/google.js +29 -0
  704. package/dist/providers/google.js.map +1 -1
  705. package/dist/providers/grounded-search.d.ts +128 -0
  706. package/dist/providers/grounded-search.d.ts.map +1 -0
  707. package/dist/providers/grounded-search.js +160 -0
  708. package/dist/providers/grounded-search.js.map +1 -0
  709. package/dist/providers/openai-compat.d.ts +15 -1
  710. package/dist/providers/openai-compat.d.ts.map +1 -1
  711. package/dist/providers/openai-compat.js +24 -0
  712. package/dist/providers/openai-compat.js.map +1 -1
  713. package/dist/providers/openai.d.ts +7 -0
  714. package/dist/providers/openai.d.ts.map +1 -1
  715. package/dist/providers/openai.js +95 -4
  716. package/dist/providers/openai.js.map +1 -1
  717. package/dist/providers/types.d.ts +88 -0
  718. package/dist/providers/types.d.ts.map +1 -1
  719. package/dist/research/cadence.d.ts +33 -0
  720. package/dist/research/cadence.d.ts.map +1 -0
  721. package/dist/research/cadence.js +55 -0
  722. package/dist/research/cadence.js.map +1 -0
  723. package/dist/research/digest.d.ts +80 -0
  724. package/dist/research/digest.d.ts.map +1 -0
  725. package/dist/research/digest.js +119 -0
  726. package/dist/research/digest.js.map +1 -0
  727. package/dist/research/egress.d.ts +28 -0
  728. package/dist/research/egress.d.ts.map +1 -0
  729. package/dist/research/egress.js +41 -0
  730. package/dist/research/egress.js.map +1 -0
  731. package/dist/research/job-store.d.ts +30 -0
  732. package/dist/research/job-store.d.ts.map +1 -0
  733. package/dist/research/job-store.js +100 -0
  734. package/dist/research/job-store.js.map +1 -0
  735. package/dist/research/model-diversity.d.ts +27 -0
  736. package/dist/research/model-diversity.d.ts.map +1 -0
  737. package/dist/research/model-diversity.js +52 -0
  738. package/dist/research/model-diversity.js.map +1 -0
  739. package/dist/research/note-writer.d.ts +36 -0
  740. package/dist/research/note-writer.d.ts.map +1 -0
  741. package/dist/research/note-writer.js +53 -0
  742. package/dist/research/note-writer.js.map +1 -0
  743. package/dist/research/online-retrieval.d.ts +27 -0
  744. package/dist/research/online-retrieval.d.ts.map +1 -0
  745. package/dist/research/online-retrieval.js +22 -0
  746. package/dist/research/online-retrieval.js.map +1 -0
  747. package/dist/research/runner.d.ts +80 -0
  748. package/dist/research/runner.d.ts.map +1 -0
  749. package/dist/research/runner.js +115 -0
  750. package/dist/research/runner.js.map +1 -0
  751. package/dist/research/scheduler.d.ts +61 -0
  752. package/dist/research/scheduler.d.ts.map +1 -0
  753. package/dist/research/scheduler.js +58 -0
  754. package/dist/research/scheduler.js.map +1 -0
  755. package/dist/research/types.d.ts +81 -0
  756. package/dist/research/types.d.ts.map +1 -0
  757. package/dist/research/types.js +57 -0
  758. package/dist/research/types.js.map +1 -0
  759. package/dist/seo/adapters/http.d.ts +43 -0
  760. package/dist/seo/adapters/http.d.ts.map +1 -0
  761. package/dist/seo/adapters/http.js +35 -0
  762. package/dist/seo/adapters/http.js.map +1 -0
  763. package/dist/seo/ai-visibility-provider.d.ts +171 -0
  764. package/dist/seo/ai-visibility-provider.d.ts.map +1 -0
  765. package/dist/seo/ai-visibility-provider.js +165 -0
  766. package/dist/seo/ai-visibility-provider.js.map +1 -0
  767. package/dist/seo/ai-visibility-scorer.d.ts +43 -0
  768. package/dist/seo/ai-visibility-scorer.d.ts.map +1 -0
  769. package/dist/seo/ai-visibility-scorer.js +102 -0
  770. package/dist/seo/ai-visibility-scorer.js.map +1 -0
  771. package/dist/seo/analyzer.d.ts +58 -0
  772. package/dist/seo/analyzer.d.ts.map +1 -0
  773. package/dist/seo/analyzer.js +265 -0
  774. package/dist/seo/analyzer.js.map +1 -0
  775. package/dist/seo/benchmark/harness.d.ts +56 -0
  776. package/dist/seo/benchmark/harness.d.ts.map +1 -0
  777. package/dist/seo/benchmark/harness.js +172 -0
  778. package/dist/seo/benchmark/harness.js.map +1 -0
  779. package/dist/seo/builder/approved-finding.d.ts +115 -0
  780. package/dist/seo/builder/approved-finding.d.ts.map +1 -0
  781. package/dist/seo/builder/approved-finding.js +145 -0
  782. package/dist/seo/builder/approved-finding.js.map +1 -0
  783. package/dist/seo/builder/build-runner.d.ts +41 -0
  784. package/dist/seo/builder/build-runner.d.ts.map +1 -0
  785. package/dist/seo/builder/build-runner.js +156 -0
  786. package/dist/seo/builder/build-runner.js.map +1 -0
  787. package/dist/seo/builder/draft-generators.d.ts +32 -0
  788. package/dist/seo/builder/draft-generators.d.ts.map +1 -0
  789. package/dist/seo/builder/draft-generators.js +31 -0
  790. package/dist/seo/builder/draft-generators.js.map +1 -0
  791. package/dist/seo/builder/draft-store.d.ts +30 -0
  792. package/dist/seo/builder/draft-store.d.ts.map +1 -0
  793. package/dist/seo/builder/draft-store.js +76 -0
  794. package/dist/seo/builder/draft-store.js.map +1 -0
  795. package/dist/seo/builder/draft-types.d.ts +36 -0
  796. package/dist/seo/builder/draft-types.d.ts.map +1 -0
  797. package/dist/seo/builder/draft-types.js +14 -0
  798. package/dist/seo/builder/draft-types.js.map +1 -0
  799. package/dist/seo/builder/hub-approved-source.d.ts +11 -0
  800. package/dist/seo/builder/hub-approved-source.d.ts.map +1 -0
  801. package/dist/seo/builder/hub-approved-source.js +48 -0
  802. package/dist/seo/builder/hub-approved-source.js.map +1 -0
  803. package/dist/seo/builder/seo-builder.d.ts +72 -0
  804. package/dist/seo/builder/seo-builder.d.ts.map +1 -0
  805. package/dist/seo/builder/seo-builder.js +72 -0
  806. package/dist/seo/builder/seo-builder.js.map +1 -0
  807. package/dist/seo/citation-gate.d.ts +36 -0
  808. package/dist/seo/citation-gate.d.ts.map +1 -0
  809. package/dist/seo/citation-gate.js +59 -0
  810. package/dist/seo/citation-gate.js.map +1 -0
  811. package/dist/seo/command.d.ts +11 -0
  812. package/dist/seo/command.d.ts.map +1 -0
  813. package/dist/seo/command.js +90 -0
  814. package/dist/seo/command.js.map +1 -0
  815. package/dist/seo/content-sanitizer.d.ts +56 -0
  816. package/dist/seo/content-sanitizer.d.ts.map +1 -0
  817. package/dist/seo/content-sanitizer.js +55 -0
  818. package/dist/seo/content-sanitizer.js.map +1 -0
  819. package/dist/seo/crawl-engine.d.ts +35 -0
  820. package/dist/seo/crawl-engine.d.ts.map +1 -0
  821. package/dist/seo/crawl-engine.js +2 -0
  822. package/dist/seo/crawl-engine.js.map +1 -0
  823. package/dist/seo/data-source.d.ts +156 -0
  824. package/dist/seo/data-source.d.ts.map +1 -0
  825. package/dist/seo/data-source.js +2 -0
  826. package/dist/seo/data-source.js.map +1 -0
  827. package/dist/seo/egress.d.ts +39 -0
  828. package/dist/seo/egress.d.ts.map +1 -0
  829. package/dist/seo/egress.js +64 -0
  830. package/dist/seo/egress.js.map +1 -0
  831. package/dist/seo/hub-emitter.d.ts +28 -0
  832. package/dist/seo/hub-emitter.d.ts.map +1 -0
  833. package/dist/seo/hub-emitter.js +95 -0
  834. package/dist/seo/hub-emitter.js.map +1 -0
  835. package/dist/seo/index.d.ts +42 -0
  836. package/dist/seo/index.d.ts.map +1 -0
  837. package/dist/seo/index.js +19 -0
  838. package/dist/seo/index.js.map +1 -0
  839. package/dist/seo/never-encode-filter.d.ts +45 -0
  840. package/dist/seo/never-encode-filter.d.ts.map +1 -0
  841. package/dist/seo/never-encode-filter.js +51 -0
  842. package/dist/seo/never-encode-filter.js.map +1 -0
  843. package/dist/seo/parser.d.ts +46 -0
  844. package/dist/seo/parser.d.ts.map +1 -0
  845. package/dist/seo/parser.js +113 -0
  846. package/dist/seo/parser.js.map +1 -0
  847. package/dist/seo/playbook-index.d.ts +19 -0
  848. package/dist/seo/playbook-index.d.ts.map +1 -0
  849. package/dist/seo/playbook-index.js +74 -0
  850. package/dist/seo/playbook-index.js.map +1 -0
  851. package/dist/seo/quota-governor.d.ts +100 -0
  852. package/dist/seo/quota-governor.d.ts.map +1 -0
  853. package/dist/seo/quota-governor.js +199 -0
  854. package/dist/seo/quota-governor.js.map +1 -0
  855. package/dist/seo/quota-ledger.d.ts +50 -0
  856. package/dist/seo/quota-ledger.d.ts.map +1 -0
  857. package/dist/seo/quota-ledger.js +95 -0
  858. package/dist/seo/quota-ledger.js.map +1 -0
  859. package/dist/seo/report-store.d.ts +30 -0
  860. package/dist/seo/report-store.d.ts.map +1 -0
  861. package/dist/seo/report-store.js +94 -0
  862. package/dist/seo/report-store.js.map +1 -0
  863. package/dist/seo/retriever.d.ts +34 -0
  864. package/dist/seo/retriever.d.ts.map +1 -0
  865. package/dist/seo/retriever.js +95 -0
  866. package/dist/seo/retriever.js.map +1 -0
  867. package/dist/seo/runner.d.ts +108 -0
  868. package/dist/seo/runner.d.ts.map +1 -0
  869. package/dist/seo/runner.js +512 -0
  870. package/dist/seo/runner.js.map +1 -0
  871. package/dist/seo/scrape-throttle.d.ts +84 -0
  872. package/dist/seo/scrape-throttle.d.ts.map +1 -0
  873. package/dist/seo/scrape-throttle.js +149 -0
  874. package/dist/seo/scrape-throttle.js.map +1 -0
  875. package/dist/seo/serp-provider.d.ts +52 -0
  876. package/dist/seo/serp-provider.d.ts.map +1 -0
  877. package/dist/seo/serp-provider.js +17 -0
  878. package/dist/seo/serp-provider.js.map +1 -0
  879. package/dist/seo/sources/ai-visibility-adapter.d.ts +87 -0
  880. package/dist/seo/sources/ai-visibility-adapter.d.ts.map +1 -0
  881. package/dist/seo/sources/ai-visibility-adapter.js +85 -0
  882. package/dist/seo/sources/ai-visibility-adapter.js.map +1 -0
  883. package/dist/seo/sources/api-spine-provider.d.ts +66 -0
  884. package/dist/seo/sources/api-spine-provider.d.ts.map +1 -0
  885. package/dist/seo/sources/api-spine-provider.js +68 -0
  886. package/dist/seo/sources/api-spine-provider.js.map +1 -0
  887. package/dist/seo/sources/citation-verifier.d.ts +95 -0
  888. package/dist/seo/sources/citation-verifier.d.ts.map +1 -0
  889. package/dist/seo/sources/citation-verifier.js +106 -0
  890. package/dist/seo/sources/citation-verifier.js.map +1 -0
  891. package/dist/seo/sources/crawl-source.d.ts +62 -0
  892. package/dist/seo/sources/crawl-source.d.ts.map +1 -0
  893. package/dist/seo/sources/crawl-source.js +87 -0
  894. package/dist/seo/sources/crawl-source.js.map +1 -0
  895. package/dist/seo/sources/damcrawler-crawl-engine.d.ts +151 -0
  896. package/dist/seo/sources/damcrawler-crawl-engine.d.ts.map +1 -0
  897. package/dist/seo/sources/damcrawler-crawl-engine.js +154 -0
  898. package/dist/seo/sources/damcrawler-crawl-engine.js.map +1 -0
  899. package/dist/seo/sources/damcrawler-serp-provider.d.ts +75 -0
  900. package/dist/seo/sources/damcrawler-serp-provider.d.ts.map +1 -0
  901. package/dist/seo/sources/damcrawler-serp-provider.js +60 -0
  902. package/dist/seo/sources/damcrawler-serp-provider.js.map +1 -0
  903. package/dist/seo/sources/dataforseo-adapter.d.ts +46 -0
  904. package/dist/seo/sources/dataforseo-adapter.d.ts.map +1 -0
  905. package/dist/seo/sources/dataforseo-adapter.js +335 -0
  906. package/dist/seo/sources/dataforseo-adapter.js.map +1 -0
  907. package/dist/seo/sources/dataforseo-serp-provider.d.ts +30 -0
  908. package/dist/seo/sources/dataforseo-serp-provider.d.ts.map +1 -0
  909. package/dist/seo/sources/dataforseo-serp-provider.js +20 -0
  910. package/dist/seo/sources/dataforseo-serp-provider.js.map +1 -0
  911. package/dist/seo/sources/engine-scrape-parser-chatgpt.d.ts +62 -0
  912. package/dist/seo/sources/engine-scrape-parser-chatgpt.d.ts.map +1 -0
  913. package/dist/seo/sources/engine-scrape-parser-chatgpt.js +72 -0
  914. package/dist/seo/sources/engine-scrape-parser-chatgpt.js.map +1 -0
  915. package/dist/seo/sources/engine-scrape-parser-perplexity.d.ts +10 -0
  916. package/dist/seo/sources/engine-scrape-parser-perplexity.d.ts.map +1 -0
  917. package/dist/seo/sources/engine-scrape-parser-perplexity.js +72 -0
  918. package/dist/seo/sources/engine-scrape-parser-perplexity.js.map +1 -0
  919. package/dist/seo/sources/gsc-adapter.d.ts +64 -0
  920. package/dist/seo/sources/gsc-adapter.d.ts.map +1 -0
  921. package/dist/seo/sources/gsc-adapter.js +221 -0
  922. package/dist/seo/sources/gsc-adapter.js.map +1 -0
  923. package/dist/seo/sources/local-export.d.ts +53 -0
  924. package/dist/seo/sources/local-export.d.ts.map +1 -0
  925. package/dist/seo/sources/local-export.js +307 -0
  926. package/dist/seo/sources/local-export.js.map +1 -0
  927. package/dist/seo/sources/mention-citation-extractor.d.ts +136 -0
  928. package/dist/seo/sources/mention-citation-extractor.d.ts.map +1 -0
  929. package/dist/seo/sources/mention-citation-extractor.js +272 -0
  930. package/dist/seo/sources/mention-citation-extractor.js.map +1 -0
  931. package/dist/seo/sources/scrape-arm-provider.d.ts +109 -0
  932. package/dist/seo/sources/scrape-arm-provider.d.ts.map +1 -0
  933. package/dist/seo/sources/scrape-arm-provider.js +129 -0
  934. package/dist/seo/sources/scrape-arm-provider.js.map +1 -0
  935. package/dist/seo/tracked-prompt-store.d.ts +33 -0
  936. package/dist/seo/tracked-prompt-store.d.ts.map +1 -0
  937. package/dist/seo/tracked-prompt-store.js +68 -0
  938. package/dist/seo/tracked-prompt-store.js.map +1 -0
  939. package/dist/seo/types.d.ts +128 -0
  940. package/dist/seo/types.d.ts.map +1 -0
  941. package/dist/seo/types.js +14 -0
  942. package/dist/seo/types.js.map +1 -0
  943. package/dist/seo/verifier.d.ts +34 -0
  944. package/dist/seo/verifier.d.ts.map +1 -0
  945. package/dist/seo/verifier.js +204 -0
  946. package/dist/seo/verifier.js.map +1 -0
  947. package/dist/seo/workflow-capabilities.d.ts +26 -0
  948. package/dist/seo/workflow-capabilities.d.ts.map +1 -0
  949. package/dist/seo/workflow-capabilities.js +12 -0
  950. package/dist/seo/workflow-capabilities.js.map +1 -0
  951. package/dist/state/facts.d.ts +114 -0
  952. package/dist/state/facts.d.ts.map +1 -0
  953. package/dist/state/facts.js +218 -0
  954. package/dist/state/facts.js.map +1 -0
  955. package/dist/state/guidance.d.ts +37 -0
  956. package/dist/state/guidance.d.ts.map +1 -0
  957. package/dist/state/guidance.js +144 -0
  958. package/dist/state/guidance.js.map +1 -0
  959. package/dist/state/history.d.ts +2 -2
  960. package/dist/state/index.d.ts +2 -2
  961. package/dist/state/index.d.ts.map +1 -1
  962. package/dist/state/index.js +2 -2
  963. package/dist/state/index.js.map +1 -1
  964. package/dist/state/memory.d.ts +43 -11
  965. package/dist/state/memory.d.ts.map +1 -1
  966. package/dist/state/memory.js +93 -15
  967. package/dist/state/memory.js.map +1 -1
  968. package/dist/state/outline-state.d.ts +0 -12
  969. package/dist/state/outline-state.d.ts.map +1 -1
  970. package/dist/state/outline-state.js +1 -18
  971. package/dist/state/outline-state.js.map +1 -1
  972. package/dist/state/pause.d.ts +47 -0
  973. package/dist/state/pause.d.ts.map +1 -0
  974. package/dist/state/pause.js +146 -0
  975. package/dist/state/pause.js.map +1 -0
  976. package/dist/state/security-audit-state.d.ts +20 -0
  977. package/dist/state/security-audit-state.d.ts.map +1 -0
  978. package/dist/state/security-audit-state.js +59 -0
  979. package/dist/state/security-audit-state.js.map +1 -0
  980. package/dist/state/sprint-state.d.ts +8 -0
  981. package/dist/state/sprint-state.d.ts.map +1 -1
  982. package/dist/state/sprint-state.js +32 -1
  983. package/dist/state/sprint-state.js.map +1 -1
  984. package/dist/teams/registry.d.ts +16 -0
  985. package/dist/teams/registry.d.ts.map +1 -0
  986. package/dist/teams/registry.js +70 -0
  987. package/dist/teams/registry.js.map +1 -0
  988. package/dist/teams/types.d.ts +25 -0
  989. package/dist/teams/types.d.ts.map +1 -0
  990. package/dist/teams/types.js +2 -0
  991. package/dist/teams/types.js.map +1 -0
  992. package/dist/telegram/bot.d.ts +137 -0
  993. package/dist/telegram/bot.d.ts.map +1 -0
  994. package/dist/telegram/bot.js +323 -0
  995. package/dist/telegram/bot.js.map +1 -0
  996. package/dist/telegram/digest.d.ts +19 -0
  997. package/dist/telegram/digest.d.ts.map +1 -0
  998. package/dist/telegram/digest.js +23 -0
  999. package/dist/telegram/digest.js.map +1 -0
  1000. package/dist/telegram/fleet-view.d.ts +38 -0
  1001. package/dist/telegram/fleet-view.d.ts.map +1 -0
  1002. package/dist/telegram/fleet-view.js +98 -0
  1003. package/dist/telegram/fleet-view.js.map +1 -0
  1004. package/dist/telegram/handlers/approvals.d.ts +61 -0
  1005. package/dist/telegram/handlers/approvals.d.ts.map +1 -0
  1006. package/dist/telegram/handlers/approvals.js +122 -0
  1007. package/dist/telegram/handlers/approvals.js.map +1 -0
  1008. package/dist/telegram/handlers/capture.d.ts +43 -0
  1009. package/dist/telegram/handlers/capture.d.ts.map +1 -0
  1010. package/dist/telegram/handlers/capture.js +51 -0
  1011. package/dist/telegram/handlers/capture.js.map +1 -0
  1012. package/dist/telegram/handlers/prioritize.d.ts +50 -0
  1013. package/dist/telegram/handlers/prioritize.d.ts.map +1 -0
  1014. package/dist/telegram/handlers/prioritize.js +99 -0
  1015. package/dist/telegram/handlers/prioritize.js.map +1 -0
  1016. package/dist/telegram/handlers/upload.d.ts +105 -0
  1017. package/dist/telegram/handlers/upload.d.ts.map +1 -0
  1018. package/dist/telegram/handlers/upload.js +149 -0
  1019. package/dist/telegram/handlers/upload.js.map +1 -0
  1020. package/dist/telegram/keyboard.d.ts +48 -0
  1021. package/dist/telegram/keyboard.d.ts.map +1 -0
  1022. package/dist/telegram/keyboard.js +81 -0
  1023. package/dist/telegram/keyboard.js.map +1 -0
  1024. package/dist/telegram/outbound.d.ts +77 -0
  1025. package/dist/telegram/outbound.d.ts.map +1 -0
  1026. package/dist/telegram/outbound.js +45 -0
  1027. package/dist/telegram/outbound.js.map +1 -0
  1028. package/dist/telegram/router.d.ts +46 -0
  1029. package/dist/telegram/router.d.ts.map +1 -0
  1030. package/dist/telegram/router.js +63 -0
  1031. package/dist/telegram/router.js.map +1 -0
  1032. package/dist/telegram/streaming.d.ts +36 -0
  1033. package/dist/telegram/streaming.d.ts.map +1 -0
  1034. package/dist/telegram/streaming.js +55 -0
  1035. package/dist/telegram/streaming.js.map +1 -0
  1036. package/dist/telegram/whitelist.d.ts +20 -0
  1037. package/dist/telegram/whitelist.d.ts.map +1 -0
  1038. package/dist/telegram/whitelist.js +34 -0
  1039. package/dist/telegram/whitelist.js.map +1 -0
  1040. package/dist/utils/git.d.ts +0 -6
  1041. package/dist/utils/git.d.ts.map +1 -1
  1042. package/dist/utils/git.js +0 -19
  1043. package/dist/utils/git.js.map +1 -1
  1044. package/dist/utils/index.d.ts +1 -1
  1045. package/dist/utils/index.d.ts.map +1 -1
  1046. package/dist/utils/index.js +1 -1
  1047. package/dist/utils/index.js.map +1 -1
  1048. package/dist/vault/conventions.d.ts +23 -0
  1049. package/dist/vault/conventions.d.ts.map +1 -0
  1050. package/dist/vault/conventions.js +22 -0
  1051. package/dist/vault/conventions.js.map +1 -0
  1052. package/dist/vault/frontmatter.d.ts +47 -0
  1053. package/dist/vault/frontmatter.d.ts.map +1 -0
  1054. package/dist/vault/frontmatter.js +149 -0
  1055. package/dist/vault/frontmatter.js.map +1 -0
  1056. package/dist/vault/index-map.d.ts +35 -0
  1057. package/dist/vault/index-map.d.ts.map +1 -0
  1058. package/dist/vault/index-map.js +67 -0
  1059. package/dist/vault/index-map.js.map +1 -0
  1060. package/dist/vault/mcp-adapter.d.ts +96 -0
  1061. package/dist/vault/mcp-adapter.d.ts.map +1 -0
  1062. package/dist/vault/mcp-adapter.js +176 -0
  1063. package/dist/vault/mcp-adapter.js.map +1 -0
  1064. package/dist/vault/note-io.d.ts +29 -0
  1065. package/dist/vault/note-io.d.ts.map +1 -0
  1066. package/dist/vault/note-io.js +44 -0
  1067. package/dist/vault/note-io.js.map +1 -0
  1068. package/dist/vault/profile.d.ts +35 -0
  1069. package/dist/vault/profile.d.ts.map +1 -0
  1070. package/dist/vault/profile.js +50 -0
  1071. package/dist/vault/profile.js.map +1 -0
  1072. package/dist/vault/reindex.d.ts +55 -0
  1073. package/dist/vault/reindex.d.ts.map +1 -0
  1074. package/dist/vault/reindex.js +69 -0
  1075. package/dist/vault/reindex.js.map +1 -0
  1076. package/dist/vault/types.d.ts +25 -0
  1077. package/dist/vault/types.d.ts.map +1 -0
  1078. package/dist/vault/types.js +9 -0
  1079. package/dist/vault/types.js.map +1 -0
  1080. package/package.json +22 -4
  1081. package/scripts/sync-targets.json +2 -1
  1082. package/skills/bober.design/SKILL.md +190 -0
  1083. package/skills/bober.design/references/1-anti-slop.md +102 -0
  1084. package/skills/bober.design/references/2-design-brief.md +84 -0
  1085. package/skills/bober.design/references/3-critique-rubric.md +62 -0
  1086. package/skills/bober.design/references/4-copy-guide.md +43 -0
  1087. package/skills/bober.plan/SKILL.md +15 -1
  1088. package/skills/bober.run/SKILL.md +7 -4
  1089. package/skills/bober.security-anchor/SKILL.md +172 -0
  1090. package/skills/bober.security-audit/SKILL.md +288 -0
  1091. package/skills/bober.security-dex-backend/SKILL.md +306 -0
  1092. package/skills/bober.security-generic/SKILL.md +295 -0
  1093. package/skills/bober.security-igaming/SKILL.md +290 -0
  1094. package/skills/bober.security-node/SKILL.md +267 -0
  1095. package/skills/bober.security-payments/SKILL.md +249 -0
  1096. package/skills/bober.security-react/SKILL.md +194 -0
  1097. package/skills/bober.security-solidity/SKILL.md +306 -0
  1098. package/skills/bober.seo/SKILL.md +132 -0
  1099. package/skills/bober.seo-ai-visibility/SKILL.md +110 -0
  1100. package/skills/bober.seo-content-decay/SKILL.md +99 -0
  1101. package/skills/bober.seo-generic/SKILL.md +173 -0
  1102. package/skills/bober.seo-internal-linking/SKILL.md +87 -0
  1103. package/skills/bober.seo-parasite-watch/SKILL.md +121 -0
  1104. package/skills/bober.seo-rank-track/SKILL.md +98 -0
  1105. package/skills/bober.seo-schema-audit/SKILL.md +97 -0
  1106. package/skills/bober.seo-technical-audit/SKILL.md +113 -0
  1107. package/skills/bober.seo-topical-map/SKILL.md +100 -0
  1108. package/skills/bober.seo-verticals/SKILL.md +133 -0
  1109. package/skills/bober.using-bober/SKILL.md +1 -0
@@ -0,0 +1,61 @@
1
+ import { z } from "zod";
2
+ import type { LLMClient } from "../providers/types.js";
3
+ import type { FleetManifest } from "./manifest.js";
4
+ import type { Outline } from "./decomposer-deep-types.js";
5
+ export declare const CRITIQUE_MAX_ROUNDS = 1;
6
+ export declare const CRITIQUE_PARSE_MAX_RETRIES = 1;
7
+ export declare const DEEP_CRITIQUE_MAX_TOTAL_CALLS: number;
8
+ export declare const CRITIQUE_SYSTEM_PROMPT = "You are an independent tech-lead reviewer evaluating a proposed fleet manifest for adequacy.\n\nA fleet manifest is a list of sub-project children, each with a folder name and a build task.\nYou did NOT author this manifest \u2014 it was produced by another agent. Review it as a third-party critic.\n\nOutput ONLY a single JSON object (no prose, no markdown fences, no tool calls) with EXACTLY this shape:\n{\n \"verdict\": \"approve\" | \"reject\",\n \"feedback\": \"<concise free-text feedback; empty string if approving>\"\n}\n\nRules:\n- \"verdict\" must be exactly \"approve\" or \"reject\" (no other values).\n- \"feedback\" must be a string (empty string is fine for an approval).\n- Approve if: the manifest has enough children to plausibly cover the outlined areas, each child has a clear folder and self-contained task, and there are no obvious duplicates or missing critical areas.\n- Reject if: the manifest is under-expanded (too few children for the number of outlined areas), children are vague or not self-contained, or critical areas from the outline are missing.\n- Output the JSON object and nothing else.";
9
+ export declare const CRITIQUE_COERCION_INSTRUCTION = "Your previous response was not a valid critique verdict.\nOutput ONLY a single JSON object (no prose, no markdown fences, no tool calls) with EXACTLY this shape:\n{\n \"verdict\": \"approve\" | \"reject\",\n \"feedback\": \"<concise free-text feedback; empty string if approving>\"\n}\n\nRules:\n- \"verdict\" must be exactly \"approve\" or \"reject\".\n- \"feedback\" must be a string.\n- Output the JSON object and nothing else.";
10
+ export declare const CritiqueVerdictSchema: z.ZodObject<{
11
+ verdict: z.ZodEnum<["approve", "reject"]>;
12
+ feedback: z.ZodString;
13
+ }, "strip", z.ZodTypeAny, {
14
+ feedback: string;
15
+ verdict: "approve" | "reject";
16
+ }, {
17
+ feedback: string;
18
+ verdict: "approve" | "reject";
19
+ }>;
20
+ export type CritiqueVerdict = z.infer<typeof CritiqueVerdictSchema>;
21
+ export type ValidateVerdictResult = {
22
+ ok: true;
23
+ verdict: CritiqueVerdict;
24
+ } | {
25
+ ok: false;
26
+ error: string;
27
+ };
28
+ export declare function validateVerdict(rawText: string): ValidateVerdictResult;
29
+ export declare function callCritic(input: {
30
+ client: LLMClient;
31
+ model: string;
32
+ goal: string;
33
+ outline: Outline;
34
+ candidate: FleetManifest;
35
+ priorText?: string;
36
+ formattedError?: string;
37
+ }): Promise<string>;
38
+ export declare function getCriticVerdict(input: {
39
+ client: LLMClient;
40
+ model: string;
41
+ goal: string;
42
+ outline: Outline;
43
+ candidate: FleetManifest;
44
+ }): Promise<CritiqueVerdict>;
45
+ export declare function runCritiqueLoop(input: {
46
+ client: LLMClient;
47
+ model: string;
48
+ goal: string;
49
+ outline: Outline;
50
+ baseline: FleetManifest;
51
+ expandMaxRetries: number;
52
+ expand: (input: {
53
+ client: LLMClient;
54
+ model: string;
55
+ outline: Outline;
56
+ goal: string;
57
+ maxRetries: number;
58
+ critiqueFeedback?: string;
59
+ }) => Promise<FleetManifest>;
60
+ }): Promise<FleetManifest>;
61
+ //# sourceMappingURL=critic-deep.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"critic-deep.d.ts","sourceRoot":"","sources":["../../src/fleet/critic-deep.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAW,MAAM,uBAAuB,CAAC;AAChE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAInD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAW1D,eAAO,MAAM,mBAAmB,IAAI,CAAC;AACrC,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAE5C,eAAO,MAAM,6BAA6B,QAEgD,CAAC;AAI3F,eAAO,MAAM,sBAAsB,4mCAgBQ,CAAC;AAE5C,eAAO,MAAM,6BAA6B,qbAUC,CAAC;AAI5C,eAAO,MAAM,qBAAqB;;;;;;;;;EAGhC,CAAC;AAEH,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,MAAM,MAAM,qBAAqB,GAC7B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,eAAe,CAAA;CAAE,GACtC;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAIjC,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,qBAAqB,CAgDtE;AAID,wBAAsB,UAAU,CAAC,KAAK,EAAE;IACtC,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,aAAa,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,GAAG,OAAO,CAAC,MAAM,CAAC,CAmClB;AAID,wBAAsB,gBAAgB,CAAC,KAAK,EAAE;IAC5C,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,aAAa,CAAC;CAC1B,GAAG,OAAO,CAAC,eAAe,CAAC,CA8B3B;AAID,wBAAsB,eAAe,CAAC,KAAK,EAAE;IAC3C,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,aAAa,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,CAAC,KAAK,EAAE;QACd,MAAM,EAAE,SAAS,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,OAAO,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;CAC9B,GAAG,OAAO,CAAC,aAAa,CAAC,CAoDzB"}
@@ -0,0 +1,202 @@
1
+ import { z } from "zod";
2
+ // bober: read budget constants from the dependency-free leaf, NOT from ./decomposer-deep.js.
3
+ // These are used at module-evaluation time (DEEP_CRITIQUE_MAX_TOTAL_CALLS below); importing them
4
+ // from the leaf avoids the circular-import TDZ that killed the CLI (inc-20260620-cli-tdz-crash).
5
+ import { DEEP_MAX_TOTAL_CALLS, DEEP_EXPAND_MAX_RETRIES, } from "./decomposer-deep-constants.js";
6
+ // ── Constants ────────────────────────────────────────────────────────
7
+ export const CRITIQUE_MAX_ROUNDS = 1;
8
+ export const CRITIQUE_PARSE_MAX_RETRIES = 1;
9
+ // bober: fixed budget = DEEP_MAX_TOTAL_CALLS + CRITIQUE_MAX_ROUNDS*((1+CRITIQUE_PARSE_MAX_RETRIES)+(1+DEEP_EXPAND_MAX_RETRIES)); raise CRITIQUE_MAX_ROUNDS if 1 round proves too few
10
+ export const DEEP_CRITIQUE_MAX_TOTAL_CALLS = DEEP_MAX_TOTAL_CALLS +
11
+ CRITIQUE_MAX_ROUNDS * ((1 + CRITIQUE_PARSE_MAX_RETRIES) + (1 + DEEP_EXPAND_MAX_RETRIES));
12
+ // ── Prompts ──────────────────────────────────────────────────────────
13
+ export const CRITIQUE_SYSTEM_PROMPT = `You are an independent tech-lead reviewer evaluating a proposed fleet manifest for adequacy.
14
+
15
+ A fleet manifest is a list of sub-project children, each with a folder name and a build task.
16
+ You did NOT author this manifest — it was produced by another agent. Review it as a third-party critic.
17
+
18
+ Output ONLY a single JSON object (no prose, no markdown fences, no tool calls) with EXACTLY this shape:
19
+ {
20
+ "verdict": "approve" | "reject",
21
+ "feedback": "<concise free-text feedback; empty string if approving>"
22
+ }
23
+
24
+ Rules:
25
+ - "verdict" must be exactly "approve" or "reject" (no other values).
26
+ - "feedback" must be a string (empty string is fine for an approval).
27
+ - Approve if: the manifest has enough children to plausibly cover the outlined areas, each child has a clear folder and self-contained task, and there are no obvious duplicates or missing critical areas.
28
+ - Reject if: the manifest is under-expanded (too few children for the number of outlined areas), children are vague or not self-contained, or critical areas from the outline are missing.
29
+ - Output the JSON object and nothing else.`;
30
+ export const CRITIQUE_COERCION_INSTRUCTION = `Your previous response was not a valid critique verdict.
31
+ Output ONLY a single JSON object (no prose, no markdown fences, no tool calls) with EXACTLY this shape:
32
+ {
33
+ "verdict": "approve" | "reject",
34
+ "feedback": "<concise free-text feedback; empty string if approving>"
35
+ }
36
+
37
+ Rules:
38
+ - "verdict" must be exactly "approve" or "reject".
39
+ - "feedback" must be a string.
40
+ - Output the JSON object and nothing else.`;
41
+ // ── Schema + types ───────────────────────────────────────────────────
42
+ export const CritiqueVerdictSchema = z.object({
43
+ verdict: z.enum(["approve", "reject"]),
44
+ feedback: z.string(),
45
+ });
46
+ // ── validateVerdict (NEVER throws) ───────────────────────────────────
47
+ export function validateVerdict(rawText) {
48
+ let parsed;
49
+ // Try direct parse first
50
+ try {
51
+ parsed = JSON.parse(rawText.trim());
52
+ }
53
+ catch {
54
+ // Try extracting JSON from markdown code fences
55
+ const fenceMatch = /```(?:json)?\s*\n?([\s\S]*?)\n?\s*```/.exec(rawText);
56
+ if (fenceMatch) {
57
+ try {
58
+ parsed = JSON.parse(fenceMatch[1].trim());
59
+ }
60
+ catch {
61
+ // Fall through
62
+ }
63
+ }
64
+ // Try finding the first { ... } block
65
+ if (!parsed) {
66
+ const braceStart = rawText.indexOf("{");
67
+ const braceEnd = rawText.lastIndexOf("}");
68
+ if (braceStart !== -1 && braceEnd > braceStart) {
69
+ try {
70
+ parsed = JSON.parse(rawText.slice(braceStart, braceEnd + 1));
71
+ }
72
+ catch {
73
+ return {
74
+ ok: false,
75
+ error: `No valid JSON object found in response. Raw: ${rawText.slice(0, 200)}`,
76
+ };
77
+ }
78
+ }
79
+ else {
80
+ return {
81
+ ok: false,
82
+ error: `No JSON object found in response. Raw: ${rawText.slice(0, 200)}`,
83
+ };
84
+ }
85
+ }
86
+ }
87
+ const result = CritiqueVerdictSchema.safeParse(parsed);
88
+ if (!result.success) {
89
+ const issues = result.error.issues
90
+ .map((i) => ` - ${i.path.join(".")}: ${i.message}`)
91
+ .join("\n");
92
+ return { ok: false, error: issues };
93
+ }
94
+ return { ok: true, verdict: result.data };
95
+ }
96
+ // ── Internal: one CRITIC call ────────────────────────────────────────
97
+ export async function callCritic(input) {
98
+ const { client, model, goal, outline, candidate, priorText, formattedError } = input;
99
+ // Fresh message array — NEVER extends the EXPAND conversation (LOCK1)
100
+ const firstUserContent = `Review this proposed fleet manifest as a third-party critic.\n\n` +
101
+ `Goal: ${goal}\n\n` +
102
+ `Outline:\n${JSON.stringify(outline)}\n\n` +
103
+ `Proposed manifest:\n${JSON.stringify(candidate)}`;
104
+ let messages;
105
+ if (priorText !== undefined && formattedError !== undefined) {
106
+ // Coercion retry: 3-message shape [user, assistant, user]
107
+ messages = [
108
+ { role: "user", content: firstUserContent },
109
+ { role: "assistant", content: priorText },
110
+ {
111
+ role: "user",
112
+ content: `${CRITIQUE_COERCION_INSTRUCTION}\n\nPrevious validation error:\n${formattedError}`,
113
+ },
114
+ ];
115
+ }
116
+ else {
117
+ // First turn: single user message
118
+ messages = [{ role: "user", content: firstUserContent }];
119
+ }
120
+ const response = await client.chat({
121
+ model,
122
+ system: CRITIQUE_SYSTEM_PROMPT,
123
+ messages,
124
+ jsonObjectMode: true,
125
+ });
126
+ return response.text;
127
+ }
128
+ // ── getCriticVerdict (fail-open on parse exhaustion) ─────────────────
129
+ export async function getCriticVerdict(input) {
130
+ const { client, model, goal, outline, candidate } = input;
131
+ const maxAttempts = 1 + CRITIQUE_PARSE_MAX_RETRIES;
132
+ let lastError = "Unknown error";
133
+ let priorText;
134
+ for (let attempt = 0; attempt < maxAttempts; attempt++) {
135
+ const rawText = await callCritic({
136
+ client,
137
+ model,
138
+ goal,
139
+ outline,
140
+ candidate,
141
+ priorText: attempt > 0 ? priorText : undefined,
142
+ formattedError: attempt > 0 ? lastError : undefined,
143
+ });
144
+ const validated = validateVerdict(rawText);
145
+ if (validated.ok) {
146
+ return validated.verdict;
147
+ }
148
+ lastError = validated.error;
149
+ priorText = rawText;
150
+ }
151
+ // Fail-open: degrade to Phase-3 rather than blocking (ADR-3)
152
+ // bober: approve on parse exhaustion; upgrade path — add structured schema if model drift worsens
153
+ return { verdict: "approve", feedback: "" };
154
+ }
155
+ // ── runCritiqueLoop (never throws, accept-best on exhaustion) ─────────
156
+ export async function runCritiqueLoop(input) {
157
+ const { client, model, goal, outline, baseline, expandMaxRetries } = input;
158
+ // Track all structurally-valid candidates for accept-best on exhaustion
159
+ const candidates = [baseline];
160
+ let current = baseline;
161
+ // totalCriticRounds = CRITIQUE_MAX_ROUNDS re-expands means CRITIQUE_MAX_ROUNDS+1 critic calls
162
+ let reExpandsLeft = CRITIQUE_MAX_ROUNDS;
163
+ let continueLoop = true;
164
+ while (continueLoop) {
165
+ let verdict;
166
+ try {
167
+ verdict = await getCriticVerdict({ client, model, goal, outline, candidate: current });
168
+ }
169
+ catch {
170
+ // Transport failure — accept best, never throw (ADR-1)
171
+ break;
172
+ }
173
+ if (verdict.verdict === "approve") {
174
+ return current;
175
+ }
176
+ // Reject: re-expand with critique feedback if rounds remain
177
+ if (reExpandsLeft <= 0) {
178
+ // Round budget exhausted after critiquing re-expanded manifest — accept best
179
+ break;
180
+ }
181
+ reExpandsLeft -= 1;
182
+ try {
183
+ const reExpanded = await input.expand({
184
+ client,
185
+ model,
186
+ outline,
187
+ goal,
188
+ maxRetries: expandMaxRetries,
189
+ critiqueFeedback: verdict.feedback,
190
+ });
191
+ candidates.push(reExpanded);
192
+ current = reExpanded;
193
+ }
194
+ catch {
195
+ // Expand failure — accept best so far, never throw
196
+ break;
197
+ }
198
+ }
199
+ // Accept best: tiebreak by most children, then first-seen (baseline)
200
+ return candidates.reduce((best, c) => c.children.length > best.children.length ? c : best);
201
+ }
202
+ //# sourceMappingURL=critic-deep.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"critic-deep.js","sourceRoot":"","sources":["../../src/fleet/critic-deep.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare const DEEP_PLAN_MAX_RETRIES = 1;
2
+ export declare const DEEP_EXPAND_MAX_RETRIES = 1;
3
+ export declare const DEEP_MAX_TOTAL_CALLS = 4;
4
+ //# sourceMappingURL=decomposer-deep-constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decomposer-deep-constants.d.ts","sourceRoot":"","sources":["../../src/fleet/decomposer-deep-constants.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,qBAAqB,IAAI,CAAC;AACvC,eAAO,MAAM,uBAAuB,IAAI,CAAC;AAEzC,eAAO,MAAM,oBAAoB,IAAI,CAAC"}
@@ -0,0 +1,14 @@
1
+ // bober: Leaf constants module — INTENTIONALLY has no imports.
2
+ //
3
+ // It exists to break the `decomposer-deep` <-> `critic-deep` module-init circular-import
4
+ // temporal-dead-zone crash (incident inc-20260620-cli-tdz-crash). `critic-deep.ts` reads
5
+ // DEEP_MAX_TOTAL_CALLS + DEEP_EXPAND_MAX_RETRIES at module-evaluation time to derive
6
+ // DEEP_CRITIQUE_MAX_TOTAL_CALLS; when those bindings lived in `decomposer-deep.ts` (which
7
+ // imports `runCritiqueLoop` back from `critic-deep.ts`), entering the graph via
8
+ // `decomposer-deep` first left them in their TDZ → ReferenceError, killing the whole CLI.
9
+ // Sourcing them from this dependency-free leaf makes the init-time reads order-independent.
10
+ export const DEEP_PLAN_MAX_RETRIES = 1;
11
+ export const DEEP_EXPAND_MAX_RETRIES = 1;
12
+ // bober: fixed budget = (1+DEEP_PLAN_MAX_RETRIES)+(1+DEEP_EXPAND_MAX_RETRIES); upgrade path: increase retries constants
13
+ export const DEEP_MAX_TOTAL_CALLS = 4;
14
+ //# sourceMappingURL=decomposer-deep-constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decomposer-deep-constants.js","sourceRoot":"","sources":["../../src/fleet/decomposer-deep-constants.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,EAAE;AACF,yFAAyF;AACzF,yFAAyF;AACzF,qFAAqF;AACrF,0FAA0F;AAC1F,gFAAgF;AAChF,0FAA0F;AAC1F,4FAA4F;AAC5F,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC;AACvC,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC;AACzC,wHAAwH;AACxH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ export type OutlineArea = {
2
+ name: string;
3
+ intent: string;
4
+ };
5
+ export type Outline = {
6
+ areas: OutlineArea[];
7
+ };
8
+ //# sourceMappingURL=decomposer-deep-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decomposer-deep-types.d.ts","sourceRoot":"","sources":["../../src/fleet/decomposer-deep-types.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,WAAW,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAC3D,MAAM,MAAM,OAAO,GAAG;IAAE,KAAK,EAAE,WAAW,EAAE,CAAA;CAAE,CAAC"}
@@ -0,0 +1,9 @@
1
+ // bober: Leaf types module — INTENTIONALLY has no relative imports.
2
+ //
3
+ // It exists to break the `critic-deep` <-> `decomposer-deep` import cycle: critic-deep needs the
4
+ // `Outline` type but must NOT depend on decomposer-deep.ts (the cycle node). Hosting Outline here —
5
+ // a dependency-free leaf both modules can import — removes critic-deep's last edge to decomposer-deep
6
+ // (mirrors the ./decomposer-deep-constants.ts precedent that broke the init-time TDZ cycle,
7
+ // inc-20260620-cli-tdz-crash). decomposer-deep.ts re-exports these so its public surface is unchanged.
8
+ export {};
9
+ //# sourceMappingURL=decomposer-deep-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decomposer-deep-types.js","sourceRoot":"","sources":["../../src/fleet/decomposer-deep-types.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,EAAE;AACF,iGAAiG;AACjG,oGAAoG;AACpG,sGAAsG;AACtG,4FAA4F;AAC5F,uGAAuG"}
@@ -0,0 +1,44 @@
1
+ import type { FleetManifest } from "./manifest.js";
2
+ import type { LLMClient } from "../providers/types.js";
3
+ import { DEEP_PLAN_MAX_RETRIES, DEEP_EXPAND_MAX_RETRIES, DEEP_MAX_TOTAL_CALLS } from "./decomposer-deep-constants.js";
4
+ export { DEEP_PLAN_MAX_RETRIES, DEEP_EXPAND_MAX_RETRIES, DEEP_MAX_TOTAL_CALLS };
5
+ export declare const DEEP_PLAN_SYSTEM_PROMPT = "You are a tech-lead creating a coarse outline of independent sub-project areas for a high-level goal.\n\nOutput ONLY a single JSON object (no prose, no markdown fences, no tool calls) with EXACTLY this shape:\n{\n \"areas\": [\n { \"name\": \"<free-form area name>\", \"intent\": \"<what this sub-project area covers>\" }\n ]\n}\n\nRules:\n- \"name\" is a free-form label describing a major concern of the goal (e.g. \"Authentication\", \"Data Layer\", \"Web Frontend\").\n- \"intent\" is a concise description of what this area covers and why it is independent.\n- You MUST include at least 1 area.\n- Do NOT include folder names, kebab-case slugs, or implementation details \u2014 this is a coarse planning outline only.\n- Output the JSON object and nothing else.";
6
+ export declare const DEEP_PLAN_COERCION_INSTRUCTION = "Your previous response was not a valid outline.\nOutput ONLY a single JSON object (no prose, no markdown fences, no tool calls) with EXACTLY this shape:\n{\n \"areas\": [\n { \"name\": \"<free-form area name>\", \"intent\": \"<what this sub-project area covers>\" }\n ]\n}\n\nRules:\n- \"name\" must be a non-empty string describing a major concern of the goal.\n- \"intent\" must be a non-empty string describing what the area covers.\n- You MUST include at least 1 area.\n- Output the JSON object and nothing else.";
7
+ export declare const DEEP_EXPAND_SYSTEM_PROMPT = "You are a tech-lead expanding a coarse outline into independent, buildable sub-projects.\n\nOutput ONLY a single JSON object (no prose, no markdown fences, no tool calls) with EXACTLY this shape:\n{\n \"children\": [\n { \"folder\": \"<short-kebab-case-dir-name>\", \"task\": \"<self-contained build instruction>\" }\n ]\n}\n\nRules:\n- \"folder\" must be a short kebab-case directory name (e.g. \"api-server\", \"web-frontend\", \"cli-tool\").\n- \"task\" must be a complete, self-contained instruction that a code-generation agent can execute independently.\n- You MUST include at least 1 child.\n- Do NOT include \"config\", \"concurrency\", \"rootDir\", or \"provider\" keys anywhere in the output.\n- Each child carries ONLY \"folder\" and \"task\" \u2014 no other keys.\n- Output the JSON object and nothing else.";
8
+ export declare const DEEP_EXPAND_COERCION_INSTRUCTION = "Your previous response was not a valid fleet manifest.\nOutput ONLY a single JSON object (no prose, no markdown fences, no tool calls) with EXACTLY this shape:\n{\n \"children\": [\n { \"folder\": \"<short-kebab-case-dir-name>\", \"task\": \"<self-contained build instruction>\" }\n ]\n}\n\nRules:\n- \"folder\" must be a short kebab-case directory name.\n- \"task\" must be a complete, self-contained build instruction.\n- You MUST include at least 1 child.\n- Do NOT include \"config\", \"concurrency\", \"rootDir\", or \"provider\" keys anywhere in the output.\n- Each child carries ONLY \"folder\" and \"task\" \u2014 no other keys.\n- Output the JSON object and nothing else.";
9
+ import type { Outline, OutlineArea } from "./decomposer-deep-types.js";
10
+ export type { Outline, OutlineArea };
11
+ export interface DecomposeDeepInput {
12
+ goal: string;
13
+ client: LLMClient;
14
+ model: string;
15
+ count?: string;
16
+ planMaxRetries?: number;
17
+ expandMaxRetries?: number;
18
+ critique?: boolean;
19
+ }
20
+ type ValidateOutlineResult = {
21
+ ok: true;
22
+ outline: Outline;
23
+ } | {
24
+ ok: false;
25
+ error: string;
26
+ };
27
+ export declare function validateOutline(rawText: string): ValidateOutlineResult;
28
+ export declare function runPlanStage(input: {
29
+ client: LLMClient;
30
+ model: string;
31
+ goal: string;
32
+ count?: string;
33
+ maxRetries: number;
34
+ }): Promise<Outline>;
35
+ export declare function runExpandStage(input: {
36
+ client: LLMClient;
37
+ model: string;
38
+ outline: Outline;
39
+ goal: string;
40
+ maxRetries: number;
41
+ critiqueFeedback?: string;
42
+ }): Promise<FleetManifest>;
43
+ export declare function decomposeGoalDeep(input: DecomposeDeepInput): Promise<FleetManifest>;
44
+ //# sourceMappingURL=decomposer-deep.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decomposer-deep.d.ts","sourceRoot":"","sources":["../../src/fleet/decomposer-deep.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,KAAK,EAAE,SAAS,EAAW,MAAM,uBAAuB,CAAC;AAEhE,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACrB,MAAM,gCAAgC,CAAC;AAGxC,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,CAAC;AAIhF,eAAO,MAAM,uBAAuB,wwBAcO,CAAC;AAE5C,eAAO,MAAM,8BAA8B,8gBAYA,CAAC;AAE5C,eAAO,MAAM,yBAAyB,6zBAeK,CAAC;AAE5C,eAAO,MAAM,gCAAgC,krBAcF,CAAC;AAW5C,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACvE,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;AAErC,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,KAAK,qBAAqB,GACtB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GAC9B;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAejC,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,qBAAqB,CAgDtE;AA+FD,wBAAsB,YAAY,CAAC,KAAK,EAAE;IACxC,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB,GAAG,OAAO,CAAC,OAAO,CAAC,CA6BnB;AAED,wBAAsB,cAAc,CAAC,KAAK,EAAE;IAC1C,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,GAAG,OAAO,CAAC,aAAa,CAAC,CA+BzB;AAID,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,aAAa,CAAC,CAgCxB"}
@@ -0,0 +1,261 @@
1
+ import { z } from "zod";
2
+ import { validateManifest } from "./decomposer.js";
3
+ import { runCritiqueLoop } from "./critic-deep.js";
4
+ import { DEEP_PLAN_MAX_RETRIES, DEEP_EXPAND_MAX_RETRIES, DEEP_MAX_TOTAL_CALLS, } from "./decomposer-deep-constants.js";
5
+ // bober: re-exported so existing importers of these from ./decomposer-deep.js keep working.
6
+ // Defined in the dependency-free leaf to avoid the critic-deep module-init TDZ cycle.
7
+ export { DEEP_PLAN_MAX_RETRIES, DEEP_EXPAND_MAX_RETRIES, DEEP_MAX_TOTAL_CALLS };
8
+ // ── Constants ────────────────────────────────────────────────────────
9
+ export const DEEP_PLAN_SYSTEM_PROMPT = `You are a tech-lead creating a coarse outline of independent sub-project areas for a high-level goal.
10
+
11
+ Output ONLY a single JSON object (no prose, no markdown fences, no tool calls) with EXACTLY this shape:
12
+ {
13
+ "areas": [
14
+ { "name": "<free-form area name>", "intent": "<what this sub-project area covers>" }
15
+ ]
16
+ }
17
+
18
+ Rules:
19
+ - "name" is a free-form label describing a major concern of the goal (e.g. "Authentication", "Data Layer", "Web Frontend").
20
+ - "intent" is a concise description of what this area covers and why it is independent.
21
+ - You MUST include at least 1 area.
22
+ - Do NOT include folder names, kebab-case slugs, or implementation details — this is a coarse planning outline only.
23
+ - Output the JSON object and nothing else.`;
24
+ export const DEEP_PLAN_COERCION_INSTRUCTION = `Your previous response was not a valid outline.
25
+ Output ONLY a single JSON object (no prose, no markdown fences, no tool calls) with EXACTLY this shape:
26
+ {
27
+ "areas": [
28
+ { "name": "<free-form area name>", "intent": "<what this sub-project area covers>" }
29
+ ]
30
+ }
31
+
32
+ Rules:
33
+ - "name" must be a non-empty string describing a major concern of the goal.
34
+ - "intent" must be a non-empty string describing what the area covers.
35
+ - You MUST include at least 1 area.
36
+ - Output the JSON object and nothing else.`;
37
+ export const DEEP_EXPAND_SYSTEM_PROMPT = `You are a tech-lead expanding a coarse outline into independent, buildable sub-projects.
38
+
39
+ Output ONLY a single JSON object (no prose, no markdown fences, no tool calls) with EXACTLY this shape:
40
+ {
41
+ "children": [
42
+ { "folder": "<short-kebab-case-dir-name>", "task": "<self-contained build instruction>" }
43
+ ]
44
+ }
45
+
46
+ Rules:
47
+ - "folder" must be a short kebab-case directory name (e.g. "api-server", "web-frontend", "cli-tool").
48
+ - "task" must be a complete, self-contained instruction that a code-generation agent can execute independently.
49
+ - You MUST include at least 1 child.
50
+ - Do NOT include "config", "concurrency", "rootDir", or "provider" keys anywhere in the output.
51
+ - Each child carries ONLY "folder" and "task" — no other keys.
52
+ - Output the JSON object and nothing else.`;
53
+ export const DEEP_EXPAND_COERCION_INSTRUCTION = `Your previous response was not a valid fleet manifest.
54
+ Output ONLY a single JSON object (no prose, no markdown fences, no tool calls) with EXACTLY this shape:
55
+ {
56
+ "children": [
57
+ { "folder": "<short-kebab-case-dir-name>", "task": "<self-contained build instruction>" }
58
+ ]
59
+ }
60
+
61
+ Rules:
62
+ - "folder" must be a short kebab-case directory name.
63
+ - "task" must be a complete, self-contained build instruction.
64
+ - You MUST include at least 1 child.
65
+ - Do NOT include "config", "concurrency", "rootDir", or "provider" keys anywhere in the output.
66
+ - Each child carries ONLY "folder" and "task" — no other keys.
67
+ - Output the JSON object and nothing else.`;
68
+ // ── Local Outline schema ─────────────────────────────────────────────
69
+ const OutlineAreaSchema = z.object({
70
+ name: z.string().min(1),
71
+ intent: z.string(),
72
+ });
73
+ const OutlineSchema = z.object({
74
+ areas: z.array(OutlineAreaSchema).min(1),
75
+ });
76
+ // ── validateOutline (NEVER throws) ───────────────────────────────────
77
+ export function validateOutline(rawText) {
78
+ let parsed;
79
+ // Try direct parse first
80
+ try {
81
+ parsed = JSON.parse(rawText.trim());
82
+ }
83
+ catch {
84
+ // Try extracting JSON from markdown code fences
85
+ const fenceMatch = /```(?:json)?\s*\n?([\s\S]*?)\n?\s*```/.exec(rawText);
86
+ if (fenceMatch) {
87
+ try {
88
+ parsed = JSON.parse(fenceMatch[1].trim());
89
+ }
90
+ catch {
91
+ // Fall through
92
+ }
93
+ }
94
+ // Try finding the first { ... } block
95
+ if (!parsed) {
96
+ const braceStart = rawText.indexOf("{");
97
+ const braceEnd = rawText.lastIndexOf("}");
98
+ if (braceStart !== -1 && braceEnd > braceStart) {
99
+ try {
100
+ parsed = JSON.parse(rawText.slice(braceStart, braceEnd + 1));
101
+ }
102
+ catch {
103
+ return {
104
+ ok: false,
105
+ error: `No valid JSON object found in response. Raw: ${rawText.slice(0, 200)}`,
106
+ };
107
+ }
108
+ }
109
+ else {
110
+ return {
111
+ ok: false,
112
+ error: `No JSON object found in response. Raw: ${rawText.slice(0, 200)}`,
113
+ };
114
+ }
115
+ }
116
+ }
117
+ const result = OutlineSchema.safeParse(parsed);
118
+ if (!result.success) {
119
+ const issues = result.error.issues
120
+ .map((i) => ` - ${i.path.join(".")}: ${i.message}`)
121
+ .join("\n");
122
+ return { ok: false, error: issues };
123
+ }
124
+ return { ok: true, outline: result.data };
125
+ }
126
+ // ── Internal: one PLAN call ──────────────────────────────────────────
127
+ async function callPlan(input) {
128
+ const { client, model, goal, count, priorText, formattedError } = input;
129
+ const firstUserContent = count
130
+ ? `${goal}\n\n(Outline into approximately ${count} areas.)`
131
+ : goal;
132
+ let messages;
133
+ if (priorText !== undefined && formattedError !== undefined) {
134
+ // Coercion retry: 3-message shape [user, assistant, user]
135
+ messages = [
136
+ { role: "user", content: firstUserContent },
137
+ { role: "assistant", content: priorText },
138
+ {
139
+ role: "user",
140
+ content: `${DEEP_PLAN_COERCION_INSTRUCTION}\n\nPrevious validation error:\n${formattedError}`,
141
+ },
142
+ ];
143
+ }
144
+ else {
145
+ // First turn: single user message
146
+ messages = [{ role: "user", content: firstUserContent }];
147
+ }
148
+ const response = await client.chat({
149
+ model,
150
+ system: DEEP_PLAN_SYSTEM_PROMPT,
151
+ messages,
152
+ jsonObjectMode: true,
153
+ });
154
+ return response.text;
155
+ }
156
+ // ── Internal: one EXPAND call ────────────────────────────────────────
157
+ async function callExpand(input) {
158
+ const { client, model, outline, goal, priorText, formattedError } = input;
159
+ const firstUserContent = `Goal: ${goal}\n\nOutline:\n${JSON.stringify(outline)}`;
160
+ let messages;
161
+ if (priorText !== undefined && formattedError !== undefined) {
162
+ // Coercion retry: 3-message shape [user, assistant, user]
163
+ messages = [
164
+ { role: "user", content: firstUserContent },
165
+ { role: "assistant", content: priorText },
166
+ {
167
+ role: "user",
168
+ content: `${DEEP_EXPAND_COERCION_INSTRUCTION}\n\nPrevious validation error:\n${formattedError}`,
169
+ },
170
+ ];
171
+ }
172
+ else {
173
+ // First turn: single user message
174
+ messages = [{ role: "user", content: firstUserContent }];
175
+ }
176
+ // NEW: append critique feedback to the first user turn only when present
177
+ const { critiqueFeedback } = input;
178
+ if (critiqueFeedback && messages.length === 1) {
179
+ messages = [{ role: "user", content: firstUserContent + `\n\nPrior reviewer feedback to address:\n${critiqueFeedback}` }];
180
+ }
181
+ const response = await client.chat({
182
+ model,
183
+ system: DEEP_EXPAND_SYSTEM_PROMPT,
184
+ messages,
185
+ jsonObjectMode: true,
186
+ });
187
+ return response.text;
188
+ }
189
+ // ── Stages ───────────────────────────────────────────────────────────
190
+ export async function runPlanStage(input) {
191
+ const { client, model, goal, count, maxRetries } = input;
192
+ const maxAttempts = 1 + maxRetries;
193
+ let lastError = "Unknown error";
194
+ let priorText;
195
+ for (let attempt = 0; attempt < maxAttempts; attempt++) {
196
+ const rawText = await callPlan({
197
+ client,
198
+ model,
199
+ goal,
200
+ count,
201
+ priorText: attempt > 0 ? priorText : undefined,
202
+ formattedError: attempt > 0 ? lastError : undefined,
203
+ });
204
+ const validated = validateOutline(rawText);
205
+ if (validated.ok) {
206
+ return validated.outline;
207
+ }
208
+ lastError = validated.error;
209
+ priorText = rawText;
210
+ }
211
+ throw new Error(`deep plan failed after ${maxAttempts} attempt${maxAttempts === 1 ? "" : "s"}:\n${lastError}`);
212
+ }
213
+ export async function runExpandStage(input) {
214
+ const { client, model, outline, goal, maxRetries } = input;
215
+ const { critiqueFeedback } = input; // NEW
216
+ const maxAttempts = 1 + maxRetries;
217
+ let lastError = "Unknown error";
218
+ let priorText;
219
+ for (let attempt = 0; attempt < maxAttempts; attempt++) {
220
+ const rawText = await callExpand({
221
+ client,
222
+ model,
223
+ outline,
224
+ goal,
225
+ priorText: attempt > 0 ? priorText : undefined,
226
+ formattedError: attempt > 0 ? lastError : undefined,
227
+ critiqueFeedback: attempt === 0 ? critiqueFeedback : undefined,
228
+ });
229
+ const validated = validateManifest(rawText);
230
+ if (validated.ok) {
231
+ return validated.manifest;
232
+ }
233
+ lastError = validated.error;
234
+ priorText = rawText;
235
+ }
236
+ throw new Error(`deep expand failed after ${maxAttempts} attempt${maxAttempts === 1 ? "" : "s"}:\n${lastError}`);
237
+ }
238
+ // ── Public entrypoint ────────────────────────────────────────────────
239
+ export async function decomposeGoalDeep(input) {
240
+ const { goal, client, model, count, planMaxRetries = DEEP_PLAN_MAX_RETRIES, expandMaxRetries = DEEP_EXPAND_MAX_RETRIES, } = input;
241
+ // PLAN strictly precedes EXPAND — never parallel
242
+ const outline = await runPlanStage({
243
+ client,
244
+ model,
245
+ goal,
246
+ count,
247
+ maxRetries: planMaxRetries,
248
+ });
249
+ const manifest = await runExpandStage({
250
+ client,
251
+ model,
252
+ outline,
253
+ goal,
254
+ maxRetries: expandMaxRetries,
255
+ });
256
+ if (input.critique === true) {
257
+ return runCritiqueLoop({ client, model, goal, outline, baseline: manifest, expandMaxRetries, expand: runExpandStage });
258
+ }
259
+ return manifest;
260
+ }
261
+ //# sourceMappingURL=decomposer-deep.js.map