agent-bober 0.18.0 → 0.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (824) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/CHANGELOG.md +11 -0
  3. package/README.md +245 -6
  4. package/agents/bober-art-director.md +100 -0
  5. package/agents/bober-design-critic.md +114 -0
  6. package/agents/bober-frontend-builder.md +101 -0
  7. package/agents/bober-security-auditor.md +193 -0
  8. package/agents/bober-security-verifier.md +104 -0
  9. package/agents/bober-seo-strategist.md +144 -0
  10. package/agents/bober-seo-verifier.md +103 -0
  11. package/dist/calendar/calendar-egress.d.ts +26 -0
  12. package/dist/calendar/calendar-egress.d.ts.map +1 -0
  13. package/dist/calendar/calendar-egress.js +35 -0
  14. package/dist/calendar/calendar-egress.js.map +1 -0
  15. package/dist/calendar/calendar-token.d.ts +34 -0
  16. package/dist/calendar/calendar-token.d.ts.map +1 -0
  17. package/dist/calendar/calendar-token.js +56 -0
  18. package/dist/calendar/calendar-token.js.map +1 -0
  19. package/dist/calendar/connector.d.ts +22 -0
  20. package/dist/calendar/connector.d.ts.map +1 -0
  21. package/dist/calendar/connector.js +3 -0
  22. package/dist/calendar/connector.js.map +1 -0
  23. package/dist/calendar/finding-source.d.ts +20 -0
  24. package/dist/calendar/finding-source.d.ts.map +1 -0
  25. package/dist/calendar/finding-source.js +35 -0
  26. package/dist/calendar/finding-source.js.map +1 -0
  27. package/dist/calendar/google-connector.d.ts +65 -0
  28. package/dist/calendar/google-connector.d.ts.map +1 -0
  29. package/dist/calendar/google-connector.js +129 -0
  30. package/dist/calendar/google-connector.js.map +1 -0
  31. package/dist/calendar/ics-connector.d.ts +12 -0
  32. package/dist/calendar/ics-connector.d.ts.map +1 -0
  33. package/dist/calendar/ics-connector.js +48 -0
  34. package/dist/calendar/ics-connector.js.map +1 -0
  35. package/dist/calendar/proposal-gate.d.ts +84 -0
  36. package/dist/calendar/proposal-gate.d.ts.map +1 -0
  37. package/dist/calendar/proposal-gate.js +126 -0
  38. package/dist/calendar/proposal-gate.js.map +1 -0
  39. package/dist/calendar/slotter.d.ts +34 -0
  40. package/dist/calendar/slotter.d.ts.map +1 -0
  41. package/dist/calendar/slotter.js +196 -0
  42. package/dist/calendar/slotter.js.map +1 -0
  43. package/dist/calendar/types.d.ts +162 -0
  44. package/dist/calendar/types.d.ts.map +1 -0
  45. package/dist/calendar/types.js +28 -0
  46. package/dist/calendar/types.js.map +1 -0
  47. package/dist/chat/chat-session.d.ts +27 -0
  48. package/dist/chat/chat-session.d.ts.map +1 -1
  49. package/dist/chat/chat-session.js +101 -1
  50. package/dist/chat/chat-session.js.map +1 -1
  51. package/dist/chat/slash-commands.d.ts +6 -2
  52. package/dist/chat/slash-commands.d.ts.map +1 -1
  53. package/dist/chat/slash-commands.js +22 -2
  54. package/dist/chat/slash-commands.js.map +1 -1
  55. package/dist/chat/turn-classifier.d.ts +3 -0
  56. package/dist/chat/turn-classifier.d.ts.map +1 -1
  57. package/dist/chat/turn-classifier.js +7 -0
  58. package/dist/chat/turn-classifier.js.map +1 -1
  59. package/dist/cli/commands/calendar.d.ts +75 -0
  60. package/dist/cli/commands/calendar.d.ts.map +1 -0
  61. package/dist/cli/commands/calendar.js +203 -0
  62. package/dist/cli/commands/calendar.js.map +1 -0
  63. package/dist/cli/commands/do.d.ts +52 -0
  64. package/dist/cli/commands/do.d.ts.map +1 -0
  65. package/dist/cli/commands/do.js +216 -0
  66. package/dist/cli/commands/do.js.map +1 -0
  67. package/dist/cli/commands/hub.d.ts +29 -0
  68. package/dist/cli/commands/hub.d.ts.map +1 -0
  69. package/dist/cli/commands/hub.js +233 -0
  70. package/dist/cli/commands/hub.js.map +1 -0
  71. package/dist/cli/commands/medical.d.ts +25 -0
  72. package/dist/cli/commands/medical.d.ts.map +1 -1
  73. package/dist/cli/commands/medical.js +233 -0
  74. package/dist/cli/commands/medical.js.map +1 -1
  75. package/dist/cli/commands/research.d.ts +41 -0
  76. package/dist/cli/commands/research.d.ts.map +1 -0
  77. package/dist/cli/commands/research.js +313 -0
  78. package/dist/cli/commands/research.js.map +1 -0
  79. package/dist/cli/commands/security-audit.d.ts +89 -0
  80. package/dist/cli/commands/security-audit.d.ts.map +1 -0
  81. package/dist/cli/commands/security-audit.js +238 -0
  82. package/dist/cli/commands/security-audit.js.map +1 -0
  83. package/dist/cli/commands/task.d.ts +64 -0
  84. package/dist/cli/commands/task.d.ts.map +1 -0
  85. package/dist/cli/commands/task.js +422 -0
  86. package/dist/cli/commands/task.js.map +1 -0
  87. package/dist/cli/commands/telegram.d.ts +10 -0
  88. package/dist/cli/commands/telegram.d.ts.map +1 -0
  89. package/dist/cli/commands/telegram.js +44 -0
  90. package/dist/cli/commands/telegram.js.map +1 -0
  91. package/dist/cli/commands/vault.d.ts +40 -0
  92. package/dist/cli/commands/vault.d.ts.map +1 -0
  93. package/dist/cli/commands/vault.js +122 -0
  94. package/dist/cli/commands/vault.js.map +1 -0
  95. package/dist/cli/index.js +33 -0
  96. package/dist/cli/index.js.map +1 -1
  97. package/dist/config/role-providers.d.ts +15 -0
  98. package/dist/config/role-providers.d.ts.map +1 -1
  99. package/dist/config/role-providers.js +8 -1
  100. package/dist/config/role-providers.js.map +1 -1
  101. package/dist/config/schema.d.ts +3522 -171
  102. package/dist/config/schema.d.ts.map +1 -1
  103. package/dist/config/schema.js +405 -2
  104. package/dist/config/schema.js.map +1 -1
  105. package/dist/do-bridge/coding-promoter.d.ts +19 -0
  106. package/dist/do-bridge/coding-promoter.d.ts.map +1 -0
  107. package/dist/do-bridge/coding-promoter.js +43 -0
  108. package/dist/do-bridge/coding-promoter.js.map +1 -0
  109. package/dist/do-bridge/finding-port.d.ts +88 -0
  110. package/dist/do-bridge/finding-port.d.ts.map +1 -0
  111. package/dist/do-bridge/finding-port.js +95 -0
  112. package/dist/do-bridge/finding-port.js.map +1 -0
  113. package/dist/do-bridge/launcher.d.ts +55 -0
  114. package/dist/do-bridge/launcher.d.ts.map +1 -0
  115. package/dist/do-bridge/launcher.js +37 -0
  116. package/dist/do-bridge/launcher.js.map +1 -0
  117. package/dist/do-bridge/promote.d.ts +50 -0
  118. package/dist/do-bridge/promote.d.ts.map +1 -0
  119. package/dist/do-bridge/promote.js +116 -0
  120. package/dist/do-bridge/promote.js.map +1 -0
  121. package/dist/do-bridge/reconcile.d.ts +50 -0
  122. package/dist/do-bridge/reconcile.d.ts.map +1 -0
  123. package/dist/do-bridge/reconcile.js +70 -0
  124. package/dist/do-bridge/reconcile.js.map +1 -0
  125. package/dist/do-bridge/registry.d.ts +23 -0
  126. package/dist/do-bridge/registry.d.ts.map +1 -0
  127. package/dist/do-bridge/registry.js +42 -0
  128. package/dist/do-bridge/registry.js.map +1 -0
  129. package/dist/do-bridge/types.d.ts +50 -0
  130. package/dist/do-bridge/types.d.ts.map +1 -0
  131. package/dist/do-bridge/types.js +17 -0
  132. package/dist/do-bridge/types.js.map +1 -0
  133. package/dist/fleet/child-config.d.ts.map +1 -1
  134. package/dist/fleet/child-config.js +7 -0
  135. package/dist/fleet/child-config.js.map +1 -1
  136. package/dist/fleet/coordinator.d.ts +27 -1
  137. package/dist/fleet/coordinator.d.ts.map +1 -1
  138. package/dist/fleet/coordinator.js +70 -0
  139. package/dist/fleet/coordinator.js.map +1 -1
  140. package/dist/fleet/critic-deep.d.ts +9 -1
  141. package/dist/fleet/critic-deep.d.ts.map +1 -1
  142. package/dist/fleet/critic-deep.js +5 -2
  143. package/dist/fleet/critic-deep.js.map +1 -1
  144. package/dist/fleet/decomposer-deep.d.ts +4 -11
  145. package/dist/fleet/decomposer-deep.d.ts.map +1 -1
  146. package/dist/fleet/decomposer-deep.js +5 -5
  147. package/dist/fleet/decomposer-deep.js.map +1 -1
  148. package/dist/fleet/index.d.ts +9 -0
  149. package/dist/fleet/index.d.ts.map +1 -1
  150. package/dist/fleet/index.js +87 -8
  151. package/dist/fleet/index.js.map +1 -1
  152. package/dist/fleet/manifest.d.ts +26 -0
  153. package/dist/fleet/manifest.d.ts.map +1 -1
  154. package/dist/fleet/manifest.js +8 -0
  155. package/dist/fleet/manifest.js.map +1 -1
  156. package/dist/fleet/reporter.d.ts +4 -1
  157. package/dist/fleet/reporter.d.ts.map +1 -1
  158. package/dist/fleet/reporter.js +2 -1
  159. package/dist/fleet/reporter.js.map +1 -1
  160. package/dist/fleet/scaffolder.d.ts +5 -1
  161. package/dist/fleet/scaffolder.d.ts.map +1 -1
  162. package/dist/fleet/scaffolder.js +11 -2
  163. package/dist/fleet/scaffolder.js.map +1 -1
  164. package/dist/graph/client.d.ts.map +1 -1
  165. package/dist/graph/client.js +115 -23
  166. package/dist/graph/client.js.map +1 -1
  167. package/dist/graph/mcp-client.d.ts +1 -0
  168. package/dist/graph/mcp-client.d.ts.map +1 -1
  169. package/dist/graph/mcp-client.js +58 -7
  170. package/dist/graph/mcp-client.js.map +1 -1
  171. package/dist/hub/collector.d.ts +12 -0
  172. package/dist/hub/collector.d.ts.map +1 -0
  173. package/dist/hub/collector.js +36 -0
  174. package/dist/hub/collector.js.map +1 -0
  175. package/dist/hub/finding-source.d.ts +22 -0
  176. package/dist/hub/finding-source.d.ts.map +1 -0
  177. package/dist/hub/finding-source.js +41 -0
  178. package/dist/hub/finding-source.js.map +1 -0
  179. package/dist/hub/finding-store.d.ts +68 -0
  180. package/dist/hub/finding-store.d.ts.map +1 -0
  181. package/dist/hub/finding-store.js +122 -0
  182. package/dist/hub/finding-store.js.map +1 -0
  183. package/dist/hub/finding.d.ts +54 -0
  184. package/dist/hub/finding.d.ts.map +1 -0
  185. package/dist/hub/finding.js +24 -0
  186. package/dist/hub/finding.js.map +1 -0
  187. package/dist/hub/gmail-to-task.d.ts +69 -0
  188. package/dist/hub/gmail-to-task.d.ts.map +1 -0
  189. package/dist/hub/gmail-to-task.js +102 -0
  190. package/dist/hub/gmail-to-task.js.map +1 -0
  191. package/dist/hub/hub-config.d.ts +18 -0
  192. package/dist/hub/hub-config.d.ts.map +1 -0
  193. package/dist/hub/hub-config.js +40 -0
  194. package/dist/hub/hub-config.js.map +1 -0
  195. package/dist/hub/judge.d.ts +30 -0
  196. package/dist/hub/judge.d.ts.map +1 -0
  197. package/dist/hub/judge.js +177 -0
  198. package/dist/hub/judge.js.map +1 -0
  199. package/dist/hub/lenses.d.ts +60 -0
  200. package/dist/hub/lenses.d.ts.map +1 -0
  201. package/dist/hub/lenses.js +123 -0
  202. package/dist/hub/lenses.js.map +1 -0
  203. package/dist/hub/priority-md.d.ts +21 -0
  204. package/dist/hub/priority-md.d.ts.map +1 -0
  205. package/dist/hub/priority-md.js +64 -0
  206. package/dist/hub/priority-md.js.map +1 -0
  207. package/dist/hub/repo-resolver.d.ts +11 -0
  208. package/dist/hub/repo-resolver.d.ts.map +1 -0
  209. package/dist/hub/repo-resolver.js +39 -0
  210. package/dist/hub/repo-resolver.js.map +1 -0
  211. package/dist/hub/scope.d.ts +39 -0
  212. package/dist/hub/scope.d.ts.map +1 -0
  213. package/dist/hub/scope.js +62 -0
  214. package/dist/hub/scope.js.map +1 -0
  215. package/dist/hub/task-inbox.d.ts +16 -0
  216. package/dist/hub/task-inbox.d.ts.map +1 -0
  217. package/dist/hub/task-inbox.js +39 -0
  218. package/dist/hub/task-inbox.js.map +1 -0
  219. package/dist/incident/resolution-verify.d.ts +2 -2
  220. package/dist/index.d.ts +2 -1
  221. package/dist/index.d.ts.map +1 -1
  222. package/dist/index.js +2 -1
  223. package/dist/index.js.map +1 -1
  224. package/dist/medical/adapters/apple-health.js +1 -1
  225. package/dist/medical/adapters/apple-health.js.map +1 -1
  226. package/dist/medical/analysis/cadence.d.ts +32 -0
  227. package/dist/medical/analysis/cadence.d.ts.map +1 -0
  228. package/dist/medical/analysis/cadence.js +72 -0
  229. package/dist/medical/analysis/cadence.js.map +1 -0
  230. package/dist/medical/analysis/cross-marker.d.ts +33 -0
  231. package/dist/medical/analysis/cross-marker.d.ts.map +1 -0
  232. package/dist/medical/analysis/cross-marker.js +79 -0
  233. package/dist/medical/analysis/cross-marker.js.map +1 -0
  234. package/dist/medical/analysis/finding-writer.d.ts +26 -0
  235. package/dist/medical/analysis/finding-writer.d.ts.map +1 -0
  236. package/dist/medical/analysis/finding-writer.js +60 -0
  237. package/dist/medical/analysis/finding-writer.js.map +1 -0
  238. package/dist/medical/analysis/finding.d.ts +63 -0
  239. package/dist/medical/analysis/finding.d.ts.map +1 -0
  240. package/dist/medical/analysis/finding.js +70 -0
  241. package/dist/medical/analysis/finding.js.map +1 -0
  242. package/dist/medical/analysis/review-pass.d.ts +76 -0
  243. package/dist/medical/analysis/review-pass.d.ts.map +1 -0
  244. package/dist/medical/analysis/review-pass.js +119 -0
  245. package/dist/medical/analysis/review-pass.js.map +1 -0
  246. package/dist/medical/analysis/trends.d.ts +36 -0
  247. package/dist/medical/analysis/trends.d.ts.map +1 -0
  248. package/dist/medical/analysis/trends.js +157 -0
  249. package/dist/medical/analysis/trends.js.map +1 -0
  250. package/dist/medical/health-store.d.ts +5 -0
  251. package/dist/medical/health-store.d.ts.map +1 -1
  252. package/dist/medical/health-store.js +10 -0
  253. package/dist/medical/health-store.js.map +1 -1
  254. package/dist/medical/lab-note.d.ts +72 -0
  255. package/dist/medical/lab-note.d.ts.map +1 -0
  256. package/dist/medical/lab-note.js +161 -0
  257. package/dist/medical/lab-note.js.map +1 -0
  258. package/dist/medical/lab-pdf-parser.d.ts +19 -0
  259. package/dist/medical/lab-pdf-parser.d.ts.map +1 -0
  260. package/dist/medical/lab-pdf-parser.js +57 -0
  261. package/dist/medical/lab-pdf-parser.js.map +1 -0
  262. package/dist/medical/lab-reindex.d.ts +24 -0
  263. package/dist/medical/lab-reindex.d.ts.map +1 -0
  264. package/dist/medical/lab-reindex.js +45 -0
  265. package/dist/medical/lab-reindex.js.map +1 -0
  266. package/dist/medical/lab-types.d.ts +75 -0
  267. package/dist/medical/lab-types.d.ts.map +1 -0
  268. package/dist/medical/lab-types.js +17 -0
  269. package/dist/medical/lab-types.js.map +1 -0
  270. package/dist/medical/profile.d.ts +96 -0
  271. package/dist/medical/profile.d.ts.map +1 -0
  272. package/dist/medical/profile.js +273 -0
  273. package/dist/medical/profile.js.map +1 -0
  274. package/dist/medical/recommend/context.d.ts +48 -0
  275. package/dist/medical/recommend/context.d.ts.map +1 -0
  276. package/dist/medical/recommend/context.js +109 -0
  277. package/dist/medical/recommend/context.js.map +1 -0
  278. package/dist/medical/recommend/judge-panel.d.ts +49 -0
  279. package/dist/medical/recommend/judge-panel.d.ts.map +1 -0
  280. package/dist/medical/recommend/judge-panel.js +164 -0
  281. package/dist/medical/recommend/judge-panel.js.map +1 -0
  282. package/dist/medical/recommend/lenses.d.ts +72 -0
  283. package/dist/medical/recommend/lenses.d.ts.map +1 -0
  284. package/dist/medical/recommend/lenses.js +220 -0
  285. package/dist/medical/recommend/lenses.js.map +1 -0
  286. package/dist/medical/recommend/recommend.d.ts +86 -0
  287. package/dist/medical/recommend/recommend.d.ts.map +1 -0
  288. package/dist/medical/recommend/recommend.js +211 -0
  289. package/dist/medical/recommend/recommend.js.map +1 -0
  290. package/dist/medical/recommend/types.d.ts +98 -0
  291. package/dist/medical/recommend/types.d.ts.map +1 -0
  292. package/dist/medical/recommend/types.js +20 -0
  293. package/dist/medical/recommend/types.js.map +1 -0
  294. package/dist/medical/recommend/urgency.d.ts +26 -0
  295. package/dist/medical/recommend/urgency.d.ts.map +1 -0
  296. package/dist/medical/recommend/urgency.js +124 -0
  297. package/dist/medical/recommend/urgency.js.map +1 -0
  298. package/dist/medical/research/online-research.d.ts +65 -0
  299. package/dist/medical/research/online-research.d.ts.map +1 -0
  300. package/dist/medical/research/online-research.js +101 -0
  301. package/dist/medical/research/online-research.js.map +1 -0
  302. package/dist/medical/research/research-note.d.ts +32 -0
  303. package/dist/medical/research/research-note.d.ts.map +1 -0
  304. package/dist/medical/research/research-note.js +55 -0
  305. package/dist/medical/research/research-note.js.map +1 -0
  306. package/dist/medical/supplements.d.ts +82 -0
  307. package/dist/medical/supplements.d.ts.map +1 -0
  308. package/dist/medical/supplements.js +173 -0
  309. package/dist/medical/supplements.js.map +1 -0
  310. package/dist/orchestrator/agentic-loop.d.ts +160 -1
  311. package/dist/orchestrator/agentic-loop.d.ts.map +1 -1
  312. package/dist/orchestrator/agentic-loop.js +350 -41
  313. package/dist/orchestrator/agentic-loop.js.map +1 -1
  314. package/dist/orchestrator/compaction.d.ts +47 -0
  315. package/dist/orchestrator/compaction.d.ts.map +1 -0
  316. package/dist/orchestrator/compaction.js +75 -0
  317. package/dist/orchestrator/compaction.js.map +1 -0
  318. package/dist/orchestrator/generator-agent.d.ts +19 -0
  319. package/dist/orchestrator/generator-agent.d.ts.map +1 -1
  320. package/dist/orchestrator/generator-agent.js +27 -1
  321. package/dist/orchestrator/generator-agent.js.map +1 -1
  322. package/dist/orchestrator/loop-events.d.ts +98 -0
  323. package/dist/orchestrator/loop-events.d.ts.map +1 -0
  324. package/dist/orchestrator/loop-events.js +2 -0
  325. package/dist/orchestrator/loop-events.js.map +1 -0
  326. package/dist/orchestrator/model-resolver.d.ts.map +1 -1
  327. package/dist/orchestrator/model-resolver.js +10 -6
  328. package/dist/orchestrator/model-resolver.js.map +1 -1
  329. package/dist/orchestrator/pipeline.d.ts +10 -1
  330. package/dist/orchestrator/pipeline.d.ts.map +1 -1
  331. package/dist/orchestrator/pipeline.js +102 -4
  332. package/dist/orchestrator/pipeline.js.map +1 -1
  333. package/dist/orchestrator/security-audit-types.d.ts +53 -0
  334. package/dist/orchestrator/security-audit-types.d.ts.map +1 -0
  335. package/dist/orchestrator/security-audit-types.js +10 -0
  336. package/dist/orchestrator/security-audit-types.js.map +1 -0
  337. package/dist/orchestrator/security-auditor-agent.d.ts +68 -0
  338. package/dist/orchestrator/security-auditor-agent.d.ts.map +1 -0
  339. package/dist/orchestrator/security-auditor-agent.js +482 -0
  340. package/dist/orchestrator/security-auditor-agent.js.map +1 -0
  341. package/dist/orchestrator/security-gate.d.ts +73 -0
  342. package/dist/orchestrator/security-gate.d.ts.map +1 -0
  343. package/dist/orchestrator/security-gate.js +174 -0
  344. package/dist/orchestrator/security-gate.js.map +1 -0
  345. package/dist/orchestrator/security-hub.d.ts +45 -0
  346. package/dist/orchestrator/security-hub.d.ts.map +1 -0
  347. package/dist/orchestrator/security-hub.js +147 -0
  348. package/dist/orchestrator/security-hub.js.map +1 -0
  349. package/dist/orchestrator/security-knowledge/benchmark/harness.d.ts +43 -0
  350. package/dist/orchestrator/security-knowledge/benchmark/harness.d.ts.map +1 -0
  351. package/dist/orchestrator/security-knowledge/benchmark/harness.js +13 -0
  352. package/dist/orchestrator/security-knowledge/benchmark/harness.js.map +1 -0
  353. package/dist/orchestrator/security-knowledge/diff-provider.d.ts +79 -0
  354. package/dist/orchestrator/security-knowledge/diff-provider.d.ts.map +1 -0
  355. package/dist/orchestrator/security-knowledge/diff-provider.js +320 -0
  356. package/dist/orchestrator/security-knowledge/diff-provider.js.map +1 -0
  357. package/dist/orchestrator/security-knowledge/index.d.ts +22 -0
  358. package/dist/orchestrator/security-knowledge/index.d.ts.map +1 -0
  359. package/dist/orchestrator/security-knowledge/index.js +66 -0
  360. package/dist/orchestrator/security-knowledge/index.js.map +1 -0
  361. package/dist/orchestrator/security-knowledge/parser.d.ts +9 -0
  362. package/dist/orchestrator/security-knowledge/parser.d.ts.map +1 -0
  363. package/dist/orchestrator/security-knowledge/parser.js +137 -0
  364. package/dist/orchestrator/security-knowledge/parser.js.map +1 -0
  365. package/dist/orchestrator/security-knowledge/registry.d.ts +25 -0
  366. package/dist/orchestrator/security-knowledge/registry.d.ts.map +1 -0
  367. package/dist/orchestrator/security-knowledge/registry.js +114 -0
  368. package/dist/orchestrator/security-knowledge/registry.js.map +1 -0
  369. package/dist/orchestrator/security-knowledge/resolver.d.ts +48 -0
  370. package/dist/orchestrator/security-knowledge/resolver.d.ts.map +1 -0
  371. package/dist/orchestrator/security-knowledge/resolver.js +63 -0
  372. package/dist/orchestrator/security-knowledge/resolver.js.map +1 -0
  373. package/dist/orchestrator/security-knowledge/selector.d.ts +18 -0
  374. package/dist/orchestrator/security-knowledge/selector.d.ts.map +1 -0
  375. package/dist/orchestrator/security-knowledge/selector.js +46 -0
  376. package/dist/orchestrator/security-knowledge/selector.js.map +1 -0
  377. package/dist/orchestrator/security-knowledge/signature.d.ts +37 -0
  378. package/dist/orchestrator/security-knowledge/signature.d.ts.map +1 -0
  379. package/dist/orchestrator/security-knowledge/signature.js +2 -0
  380. package/dist/orchestrator/security-knowledge/signature.js.map +1 -0
  381. package/dist/orchestrator/security-knowledge/supply-chain-inspector.d.ts +29 -0
  382. package/dist/orchestrator/security-knowledge/supply-chain-inspector.d.ts.map +1 -0
  383. package/dist/orchestrator/security-knowledge/supply-chain-inspector.js +211 -0
  384. package/dist/orchestrator/security-knowledge/supply-chain-inspector.js.map +1 -0
  385. package/dist/orchestrator/security-scanners.d.ts +126 -0
  386. package/dist/orchestrator/security-scanners.d.ts.map +1 -0
  387. package/dist/orchestrator/security-scanners.js +501 -0
  388. package/dist/orchestrator/security-scanners.js.map +1 -0
  389. package/dist/orchestrator/security-verifier-agent.d.ts +62 -0
  390. package/dist/orchestrator/security-verifier-agent.d.ts.map +1 -0
  391. package/dist/orchestrator/security-verifier-agent.js +230 -0
  392. package/dist/orchestrator/security-verifier-agent.js.map +1 -0
  393. package/dist/orchestrator/session-store.d.ts +95 -0
  394. package/dist/orchestrator/session-store.d.ts.map +1 -0
  395. package/dist/orchestrator/session-store.js +186 -0
  396. package/dist/orchestrator/session-store.js.map +1 -0
  397. package/dist/orchestrator/stack-knowledge.d.ts +17 -0
  398. package/dist/orchestrator/stack-knowledge.d.ts.map +1 -0
  399. package/dist/orchestrator/stack-knowledge.js +35 -0
  400. package/dist/orchestrator/stack-knowledge.js.map +1 -0
  401. package/dist/orchestrator/subagents.d.ts +62 -0
  402. package/dist/orchestrator/subagents.d.ts.map +1 -0
  403. package/dist/orchestrator/subagents.js +143 -0
  404. package/dist/orchestrator/subagents.js.map +1 -0
  405. package/dist/orchestrator/tools/executor.d.ts +68 -0
  406. package/dist/orchestrator/tools/executor.d.ts.map +1 -0
  407. package/dist/orchestrator/tools/executor.js +104 -0
  408. package/dist/orchestrator/tools/executor.js.map +1 -0
  409. package/dist/orchestrator/tools/mcp-bridge.d.ts +76 -0
  410. package/dist/orchestrator/tools/mcp-bridge.d.ts.map +1 -0
  411. package/dist/orchestrator/tools/mcp-bridge.js +154 -0
  412. package/dist/orchestrator/tools/mcp-bridge.js.map +1 -0
  413. package/dist/orchestrator/tools/schemas.d.ts.map +1 -1
  414. package/dist/orchestrator/tools/schemas.js +3 -0
  415. package/dist/orchestrator/tools/schemas.js.map +1 -1
  416. package/dist/orchestrator/workflow/budget.d.ts +24 -2
  417. package/dist/orchestrator/workflow/budget.d.ts.map +1 -1
  418. package/dist/orchestrator/workflow/budget.js +39 -1
  419. package/dist/orchestrator/workflow/budget.js.map +1 -1
  420. package/dist/orchestrator/workflow/engine.d.ts +1 -1
  421. package/dist/orchestrator/workflow/engine.d.ts.map +1 -1
  422. package/dist/orchestrator/workflow/selector.d.ts.map +1 -1
  423. package/dist/orchestrator/workflow/selector.js +10 -0
  424. package/dist/orchestrator/workflow/selector.js.map +1 -1
  425. package/dist/providers/anthropic.d.ts.map +1 -1
  426. package/dist/providers/anthropic.js +116 -26
  427. package/dist/providers/anthropic.js.map +1 -1
  428. package/dist/providers/claude-code.d.ts.map +1 -1
  429. package/dist/providers/claude-code.js +17 -0
  430. package/dist/providers/claude-code.js.map +1 -1
  431. package/dist/providers/cost-meter.d.ts +52 -0
  432. package/dist/providers/cost-meter.d.ts.map +1 -0
  433. package/dist/providers/cost-meter.js +81 -0
  434. package/dist/providers/cost-meter.js.map +1 -0
  435. package/dist/providers/factory.d.ts +6 -1
  436. package/dist/providers/factory.d.ts.map +1 -1
  437. package/dist/providers/factory.js +24 -5
  438. package/dist/providers/factory.js.map +1 -1
  439. package/dist/providers/google.d.ts.map +1 -1
  440. package/dist/providers/google.js +29 -0
  441. package/dist/providers/google.js.map +1 -1
  442. package/dist/providers/grounded-search.d.ts +128 -0
  443. package/dist/providers/grounded-search.d.ts.map +1 -0
  444. package/dist/providers/grounded-search.js +160 -0
  445. package/dist/providers/grounded-search.js.map +1 -0
  446. package/dist/providers/openai-compat.d.ts +15 -1
  447. package/dist/providers/openai-compat.d.ts.map +1 -1
  448. package/dist/providers/openai-compat.js +24 -0
  449. package/dist/providers/openai-compat.js.map +1 -1
  450. package/dist/providers/openai.d.ts +7 -0
  451. package/dist/providers/openai.d.ts.map +1 -1
  452. package/dist/providers/openai.js +95 -4
  453. package/dist/providers/openai.js.map +1 -1
  454. package/dist/providers/types.d.ts +88 -0
  455. package/dist/providers/types.d.ts.map +1 -1
  456. package/dist/research/cadence.d.ts +33 -0
  457. package/dist/research/cadence.d.ts.map +1 -0
  458. package/dist/research/cadence.js +55 -0
  459. package/dist/research/cadence.js.map +1 -0
  460. package/dist/research/digest.d.ts +80 -0
  461. package/dist/research/digest.d.ts.map +1 -0
  462. package/dist/research/digest.js +119 -0
  463. package/dist/research/digest.js.map +1 -0
  464. package/dist/research/egress.d.ts +28 -0
  465. package/dist/research/egress.d.ts.map +1 -0
  466. package/dist/research/egress.js +41 -0
  467. package/dist/research/egress.js.map +1 -0
  468. package/dist/research/job-store.d.ts +30 -0
  469. package/dist/research/job-store.d.ts.map +1 -0
  470. package/dist/research/job-store.js +100 -0
  471. package/dist/research/job-store.js.map +1 -0
  472. package/dist/research/model-diversity.d.ts +27 -0
  473. package/dist/research/model-diversity.d.ts.map +1 -0
  474. package/dist/research/model-diversity.js +52 -0
  475. package/dist/research/model-diversity.js.map +1 -0
  476. package/dist/research/note-writer.d.ts +36 -0
  477. package/dist/research/note-writer.d.ts.map +1 -0
  478. package/dist/research/note-writer.js +53 -0
  479. package/dist/research/note-writer.js.map +1 -0
  480. package/dist/research/online-retrieval.d.ts +27 -0
  481. package/dist/research/online-retrieval.d.ts.map +1 -0
  482. package/dist/research/online-retrieval.js +22 -0
  483. package/dist/research/online-retrieval.js.map +1 -0
  484. package/dist/research/runner.d.ts +80 -0
  485. package/dist/research/runner.d.ts.map +1 -0
  486. package/dist/research/runner.js +115 -0
  487. package/dist/research/runner.js.map +1 -0
  488. package/dist/research/scheduler.d.ts +61 -0
  489. package/dist/research/scheduler.d.ts.map +1 -0
  490. package/dist/research/scheduler.js +58 -0
  491. package/dist/research/scheduler.js.map +1 -0
  492. package/dist/research/types.d.ts +81 -0
  493. package/dist/research/types.d.ts.map +1 -0
  494. package/dist/research/types.js +57 -0
  495. package/dist/research/types.js.map +1 -0
  496. package/dist/seo/adapters/http.d.ts +43 -0
  497. package/dist/seo/adapters/http.d.ts.map +1 -0
  498. package/dist/seo/adapters/http.js +35 -0
  499. package/dist/seo/adapters/http.js.map +1 -0
  500. package/dist/seo/ai-visibility-provider.d.ts +171 -0
  501. package/dist/seo/ai-visibility-provider.d.ts.map +1 -0
  502. package/dist/seo/ai-visibility-provider.js +165 -0
  503. package/dist/seo/ai-visibility-provider.js.map +1 -0
  504. package/dist/seo/ai-visibility-scorer.d.ts +43 -0
  505. package/dist/seo/ai-visibility-scorer.d.ts.map +1 -0
  506. package/dist/seo/ai-visibility-scorer.js +102 -0
  507. package/dist/seo/ai-visibility-scorer.js.map +1 -0
  508. package/dist/seo/analyzer.d.ts +58 -0
  509. package/dist/seo/analyzer.d.ts.map +1 -0
  510. package/dist/seo/analyzer.js +265 -0
  511. package/dist/seo/analyzer.js.map +1 -0
  512. package/dist/seo/benchmark/harness.d.ts +56 -0
  513. package/dist/seo/benchmark/harness.d.ts.map +1 -0
  514. package/dist/seo/benchmark/harness.js +172 -0
  515. package/dist/seo/benchmark/harness.js.map +1 -0
  516. package/dist/seo/builder/approved-finding.d.ts +115 -0
  517. package/dist/seo/builder/approved-finding.d.ts.map +1 -0
  518. package/dist/seo/builder/approved-finding.js +145 -0
  519. package/dist/seo/builder/approved-finding.js.map +1 -0
  520. package/dist/seo/builder/build-runner.d.ts +41 -0
  521. package/dist/seo/builder/build-runner.d.ts.map +1 -0
  522. package/dist/seo/builder/build-runner.js +156 -0
  523. package/dist/seo/builder/build-runner.js.map +1 -0
  524. package/dist/seo/builder/draft-generators.d.ts +32 -0
  525. package/dist/seo/builder/draft-generators.d.ts.map +1 -0
  526. package/dist/seo/builder/draft-generators.js +31 -0
  527. package/dist/seo/builder/draft-generators.js.map +1 -0
  528. package/dist/seo/builder/draft-store.d.ts +30 -0
  529. package/dist/seo/builder/draft-store.d.ts.map +1 -0
  530. package/dist/seo/builder/draft-store.js +76 -0
  531. package/dist/seo/builder/draft-store.js.map +1 -0
  532. package/dist/seo/builder/draft-types.d.ts +36 -0
  533. package/dist/seo/builder/draft-types.d.ts.map +1 -0
  534. package/dist/seo/builder/draft-types.js +14 -0
  535. package/dist/seo/builder/draft-types.js.map +1 -0
  536. package/dist/seo/builder/hub-approved-source.d.ts +11 -0
  537. package/dist/seo/builder/hub-approved-source.d.ts.map +1 -0
  538. package/dist/seo/builder/hub-approved-source.js +48 -0
  539. package/dist/seo/builder/hub-approved-source.js.map +1 -0
  540. package/dist/seo/builder/seo-builder.d.ts +72 -0
  541. package/dist/seo/builder/seo-builder.d.ts.map +1 -0
  542. package/dist/seo/builder/seo-builder.js +72 -0
  543. package/dist/seo/builder/seo-builder.js.map +1 -0
  544. package/dist/seo/citation-gate.d.ts +36 -0
  545. package/dist/seo/citation-gate.d.ts.map +1 -0
  546. package/dist/seo/citation-gate.js +59 -0
  547. package/dist/seo/citation-gate.js.map +1 -0
  548. package/dist/seo/command.d.ts +11 -0
  549. package/dist/seo/command.d.ts.map +1 -0
  550. package/dist/seo/command.js +90 -0
  551. package/dist/seo/command.js.map +1 -0
  552. package/dist/seo/content-sanitizer.d.ts +56 -0
  553. package/dist/seo/content-sanitizer.d.ts.map +1 -0
  554. package/dist/seo/content-sanitizer.js +55 -0
  555. package/dist/seo/content-sanitizer.js.map +1 -0
  556. package/dist/seo/crawl-engine.d.ts +35 -0
  557. package/dist/seo/crawl-engine.d.ts.map +1 -0
  558. package/dist/seo/crawl-engine.js +2 -0
  559. package/dist/seo/crawl-engine.js.map +1 -0
  560. package/dist/seo/data-source.d.ts +156 -0
  561. package/dist/seo/data-source.d.ts.map +1 -0
  562. package/dist/seo/data-source.js +2 -0
  563. package/dist/seo/data-source.js.map +1 -0
  564. package/dist/seo/egress.d.ts +39 -0
  565. package/dist/seo/egress.d.ts.map +1 -0
  566. package/dist/seo/egress.js +64 -0
  567. package/dist/seo/egress.js.map +1 -0
  568. package/dist/seo/hub-emitter.d.ts +28 -0
  569. package/dist/seo/hub-emitter.d.ts.map +1 -0
  570. package/dist/seo/hub-emitter.js +95 -0
  571. package/dist/seo/hub-emitter.js.map +1 -0
  572. package/dist/seo/index.d.ts +42 -0
  573. package/dist/seo/index.d.ts.map +1 -0
  574. package/dist/seo/index.js +19 -0
  575. package/dist/seo/index.js.map +1 -0
  576. package/dist/seo/never-encode-filter.d.ts +45 -0
  577. package/dist/seo/never-encode-filter.d.ts.map +1 -0
  578. package/dist/seo/never-encode-filter.js +51 -0
  579. package/dist/seo/never-encode-filter.js.map +1 -0
  580. package/dist/seo/parser.d.ts +46 -0
  581. package/dist/seo/parser.d.ts.map +1 -0
  582. package/dist/seo/parser.js +113 -0
  583. package/dist/seo/parser.js.map +1 -0
  584. package/dist/seo/playbook-index.d.ts +19 -0
  585. package/dist/seo/playbook-index.d.ts.map +1 -0
  586. package/dist/seo/playbook-index.js +74 -0
  587. package/dist/seo/playbook-index.js.map +1 -0
  588. package/dist/seo/quota-governor.d.ts +100 -0
  589. package/dist/seo/quota-governor.d.ts.map +1 -0
  590. package/dist/seo/quota-governor.js +199 -0
  591. package/dist/seo/quota-governor.js.map +1 -0
  592. package/dist/seo/quota-ledger.d.ts +50 -0
  593. package/dist/seo/quota-ledger.d.ts.map +1 -0
  594. package/dist/seo/quota-ledger.js +95 -0
  595. package/dist/seo/quota-ledger.js.map +1 -0
  596. package/dist/seo/report-store.d.ts +30 -0
  597. package/dist/seo/report-store.d.ts.map +1 -0
  598. package/dist/seo/report-store.js +94 -0
  599. package/dist/seo/report-store.js.map +1 -0
  600. package/dist/seo/retriever.d.ts +34 -0
  601. package/dist/seo/retriever.d.ts.map +1 -0
  602. package/dist/seo/retriever.js +95 -0
  603. package/dist/seo/retriever.js.map +1 -0
  604. package/dist/seo/runner.d.ts +108 -0
  605. package/dist/seo/runner.d.ts.map +1 -0
  606. package/dist/seo/runner.js +512 -0
  607. package/dist/seo/runner.js.map +1 -0
  608. package/dist/seo/scrape-throttle.d.ts +84 -0
  609. package/dist/seo/scrape-throttle.d.ts.map +1 -0
  610. package/dist/seo/scrape-throttle.js +149 -0
  611. package/dist/seo/scrape-throttle.js.map +1 -0
  612. package/dist/seo/serp-provider.d.ts +52 -0
  613. package/dist/seo/serp-provider.d.ts.map +1 -0
  614. package/dist/seo/serp-provider.js +17 -0
  615. package/dist/seo/serp-provider.js.map +1 -0
  616. package/dist/seo/sources/ai-visibility-adapter.d.ts +87 -0
  617. package/dist/seo/sources/ai-visibility-adapter.d.ts.map +1 -0
  618. package/dist/seo/sources/ai-visibility-adapter.js +85 -0
  619. package/dist/seo/sources/ai-visibility-adapter.js.map +1 -0
  620. package/dist/seo/sources/api-spine-provider.d.ts +66 -0
  621. package/dist/seo/sources/api-spine-provider.d.ts.map +1 -0
  622. package/dist/seo/sources/api-spine-provider.js +68 -0
  623. package/dist/seo/sources/api-spine-provider.js.map +1 -0
  624. package/dist/seo/sources/citation-verifier.d.ts +95 -0
  625. package/dist/seo/sources/citation-verifier.d.ts.map +1 -0
  626. package/dist/seo/sources/citation-verifier.js +106 -0
  627. package/dist/seo/sources/citation-verifier.js.map +1 -0
  628. package/dist/seo/sources/crawl-source.d.ts +62 -0
  629. package/dist/seo/sources/crawl-source.d.ts.map +1 -0
  630. package/dist/seo/sources/crawl-source.js +87 -0
  631. package/dist/seo/sources/crawl-source.js.map +1 -0
  632. package/dist/seo/sources/damcrawler-crawl-engine.d.ts +151 -0
  633. package/dist/seo/sources/damcrawler-crawl-engine.d.ts.map +1 -0
  634. package/dist/seo/sources/damcrawler-crawl-engine.js +154 -0
  635. package/dist/seo/sources/damcrawler-crawl-engine.js.map +1 -0
  636. package/dist/seo/sources/damcrawler-serp-provider.d.ts +75 -0
  637. package/dist/seo/sources/damcrawler-serp-provider.d.ts.map +1 -0
  638. package/dist/seo/sources/damcrawler-serp-provider.js +60 -0
  639. package/dist/seo/sources/damcrawler-serp-provider.js.map +1 -0
  640. package/dist/seo/sources/dataforseo-adapter.d.ts +46 -0
  641. package/dist/seo/sources/dataforseo-adapter.d.ts.map +1 -0
  642. package/dist/seo/sources/dataforseo-adapter.js +335 -0
  643. package/dist/seo/sources/dataforseo-adapter.js.map +1 -0
  644. package/dist/seo/sources/dataforseo-serp-provider.d.ts +30 -0
  645. package/dist/seo/sources/dataforseo-serp-provider.d.ts.map +1 -0
  646. package/dist/seo/sources/dataforseo-serp-provider.js +20 -0
  647. package/dist/seo/sources/dataforseo-serp-provider.js.map +1 -0
  648. package/dist/seo/sources/engine-scrape-parser-chatgpt.d.ts +62 -0
  649. package/dist/seo/sources/engine-scrape-parser-chatgpt.d.ts.map +1 -0
  650. package/dist/seo/sources/engine-scrape-parser-chatgpt.js +72 -0
  651. package/dist/seo/sources/engine-scrape-parser-chatgpt.js.map +1 -0
  652. package/dist/seo/sources/engine-scrape-parser-perplexity.d.ts +10 -0
  653. package/dist/seo/sources/engine-scrape-parser-perplexity.d.ts.map +1 -0
  654. package/dist/seo/sources/engine-scrape-parser-perplexity.js +72 -0
  655. package/dist/seo/sources/engine-scrape-parser-perplexity.js.map +1 -0
  656. package/dist/seo/sources/gsc-adapter.d.ts +64 -0
  657. package/dist/seo/sources/gsc-adapter.d.ts.map +1 -0
  658. package/dist/seo/sources/gsc-adapter.js +221 -0
  659. package/dist/seo/sources/gsc-adapter.js.map +1 -0
  660. package/dist/seo/sources/local-export.d.ts +53 -0
  661. package/dist/seo/sources/local-export.d.ts.map +1 -0
  662. package/dist/seo/sources/local-export.js +307 -0
  663. package/dist/seo/sources/local-export.js.map +1 -0
  664. package/dist/seo/sources/mention-citation-extractor.d.ts +136 -0
  665. package/dist/seo/sources/mention-citation-extractor.d.ts.map +1 -0
  666. package/dist/seo/sources/mention-citation-extractor.js +272 -0
  667. package/dist/seo/sources/mention-citation-extractor.js.map +1 -0
  668. package/dist/seo/sources/scrape-arm-provider.d.ts +109 -0
  669. package/dist/seo/sources/scrape-arm-provider.d.ts.map +1 -0
  670. package/dist/seo/sources/scrape-arm-provider.js +129 -0
  671. package/dist/seo/sources/scrape-arm-provider.js.map +1 -0
  672. package/dist/seo/tracked-prompt-store.d.ts +33 -0
  673. package/dist/seo/tracked-prompt-store.d.ts.map +1 -0
  674. package/dist/seo/tracked-prompt-store.js +68 -0
  675. package/dist/seo/tracked-prompt-store.js.map +1 -0
  676. package/dist/seo/types.d.ts +128 -0
  677. package/dist/seo/types.d.ts.map +1 -0
  678. package/dist/seo/types.js +14 -0
  679. package/dist/seo/types.js.map +1 -0
  680. package/dist/seo/verifier.d.ts +34 -0
  681. package/dist/seo/verifier.d.ts.map +1 -0
  682. package/dist/seo/verifier.js +204 -0
  683. package/dist/seo/verifier.js.map +1 -0
  684. package/dist/seo/workflow-capabilities.d.ts +26 -0
  685. package/dist/seo/workflow-capabilities.d.ts.map +1 -0
  686. package/dist/seo/workflow-capabilities.js +12 -0
  687. package/dist/seo/workflow-capabilities.js.map +1 -0
  688. package/dist/state/facts.d.ts +5 -1
  689. package/dist/state/facts.d.ts.map +1 -1
  690. package/dist/state/facts.js +29 -19
  691. package/dist/state/facts.js.map +1 -1
  692. package/dist/state/index.d.ts +1 -1
  693. package/dist/state/index.d.ts.map +1 -1
  694. package/dist/state/index.js +1 -1
  695. package/dist/state/index.js.map +1 -1
  696. package/dist/state/outline-state.d.ts +0 -12
  697. package/dist/state/outline-state.d.ts.map +1 -1
  698. package/dist/state/outline-state.js +1 -18
  699. package/dist/state/outline-state.js.map +1 -1
  700. package/dist/state/security-audit-state.d.ts +20 -0
  701. package/dist/state/security-audit-state.d.ts.map +1 -0
  702. package/dist/state/security-audit-state.js +59 -0
  703. package/dist/state/security-audit-state.js.map +1 -0
  704. package/dist/teams/registry.d.ts.map +1 -1
  705. package/dist/teams/registry.js +17 -0
  706. package/dist/teams/registry.js.map +1 -1
  707. package/dist/telegram/bot.d.ts +137 -0
  708. package/dist/telegram/bot.d.ts.map +1 -0
  709. package/dist/telegram/bot.js +323 -0
  710. package/dist/telegram/bot.js.map +1 -0
  711. package/dist/telegram/digest.d.ts +19 -0
  712. package/dist/telegram/digest.d.ts.map +1 -0
  713. package/dist/telegram/digest.js +23 -0
  714. package/dist/telegram/digest.js.map +1 -0
  715. package/dist/telegram/fleet-view.d.ts +38 -0
  716. package/dist/telegram/fleet-view.d.ts.map +1 -0
  717. package/dist/telegram/fleet-view.js +98 -0
  718. package/dist/telegram/fleet-view.js.map +1 -0
  719. package/dist/telegram/handlers/approvals.d.ts +61 -0
  720. package/dist/telegram/handlers/approvals.d.ts.map +1 -0
  721. package/dist/telegram/handlers/approvals.js +122 -0
  722. package/dist/telegram/handlers/approvals.js.map +1 -0
  723. package/dist/telegram/handlers/capture.d.ts +43 -0
  724. package/dist/telegram/handlers/capture.d.ts.map +1 -0
  725. package/dist/telegram/handlers/capture.js +51 -0
  726. package/dist/telegram/handlers/capture.js.map +1 -0
  727. package/dist/telegram/handlers/prioritize.d.ts +50 -0
  728. package/dist/telegram/handlers/prioritize.d.ts.map +1 -0
  729. package/dist/telegram/handlers/prioritize.js +99 -0
  730. package/dist/telegram/handlers/prioritize.js.map +1 -0
  731. package/dist/telegram/handlers/upload.d.ts +105 -0
  732. package/dist/telegram/handlers/upload.d.ts.map +1 -0
  733. package/dist/telegram/handlers/upload.js +149 -0
  734. package/dist/telegram/handlers/upload.js.map +1 -0
  735. package/dist/telegram/keyboard.d.ts +48 -0
  736. package/dist/telegram/keyboard.d.ts.map +1 -0
  737. package/dist/telegram/keyboard.js +81 -0
  738. package/dist/telegram/keyboard.js.map +1 -0
  739. package/dist/telegram/outbound.d.ts +77 -0
  740. package/dist/telegram/outbound.d.ts.map +1 -0
  741. package/dist/telegram/outbound.js +45 -0
  742. package/dist/telegram/outbound.js.map +1 -0
  743. package/dist/telegram/router.d.ts +46 -0
  744. package/dist/telegram/router.d.ts.map +1 -0
  745. package/dist/telegram/router.js +63 -0
  746. package/dist/telegram/router.js.map +1 -0
  747. package/dist/telegram/streaming.d.ts +36 -0
  748. package/dist/telegram/streaming.d.ts.map +1 -0
  749. package/dist/telegram/streaming.js +55 -0
  750. package/dist/telegram/streaming.js.map +1 -0
  751. package/dist/telegram/whitelist.d.ts +20 -0
  752. package/dist/telegram/whitelist.d.ts.map +1 -0
  753. package/dist/telegram/whitelist.js +34 -0
  754. package/dist/telegram/whitelist.js.map +1 -0
  755. package/dist/utils/git.d.ts +0 -6
  756. package/dist/utils/git.d.ts.map +1 -1
  757. package/dist/utils/git.js +0 -19
  758. package/dist/utils/git.js.map +1 -1
  759. package/dist/utils/index.d.ts +1 -1
  760. package/dist/utils/index.d.ts.map +1 -1
  761. package/dist/utils/index.js +1 -1
  762. package/dist/utils/index.js.map +1 -1
  763. package/dist/vault/conventions.d.ts +23 -0
  764. package/dist/vault/conventions.d.ts.map +1 -0
  765. package/dist/vault/conventions.js +22 -0
  766. package/dist/vault/conventions.js.map +1 -0
  767. package/dist/vault/frontmatter.d.ts +47 -0
  768. package/dist/vault/frontmatter.d.ts.map +1 -0
  769. package/dist/vault/frontmatter.js +149 -0
  770. package/dist/vault/frontmatter.js.map +1 -0
  771. package/dist/vault/index-map.d.ts +35 -0
  772. package/dist/vault/index-map.d.ts.map +1 -0
  773. package/dist/vault/index-map.js +67 -0
  774. package/dist/vault/index-map.js.map +1 -0
  775. package/dist/vault/mcp-adapter.d.ts +96 -0
  776. package/dist/vault/mcp-adapter.d.ts.map +1 -0
  777. package/dist/vault/mcp-adapter.js +176 -0
  778. package/dist/vault/mcp-adapter.js.map +1 -0
  779. package/dist/vault/note-io.d.ts +29 -0
  780. package/dist/vault/note-io.d.ts.map +1 -0
  781. package/dist/vault/note-io.js +44 -0
  782. package/dist/vault/note-io.js.map +1 -0
  783. package/dist/vault/profile.d.ts +35 -0
  784. package/dist/vault/profile.d.ts.map +1 -0
  785. package/dist/vault/profile.js +50 -0
  786. package/dist/vault/profile.js.map +1 -0
  787. package/dist/vault/reindex.d.ts +55 -0
  788. package/dist/vault/reindex.d.ts.map +1 -0
  789. package/dist/vault/reindex.js +69 -0
  790. package/dist/vault/reindex.js.map +1 -0
  791. package/dist/vault/types.d.ts +25 -0
  792. package/dist/vault/types.d.ts.map +1 -0
  793. package/dist/vault/types.js +9 -0
  794. package/dist/vault/types.js.map +1 -0
  795. package/package.json +20 -4
  796. package/scripts/sync-targets.json +2 -1
  797. package/skills/bober.design/SKILL.md +190 -0
  798. package/skills/bober.design/references/1-anti-slop.md +102 -0
  799. package/skills/bober.design/references/2-design-brief.md +84 -0
  800. package/skills/bober.design/references/3-critique-rubric.md +62 -0
  801. package/skills/bober.design/references/4-copy-guide.md +43 -0
  802. package/skills/bober.plan/SKILL.md +15 -1
  803. package/skills/bober.run/SKILL.md +7 -4
  804. package/skills/bober.security-anchor/SKILL.md +172 -0
  805. package/skills/bober.security-audit/SKILL.md +288 -0
  806. package/skills/bober.security-dex-backend/SKILL.md +306 -0
  807. package/skills/bober.security-generic/SKILL.md +295 -0
  808. package/skills/bober.security-igaming/SKILL.md +290 -0
  809. package/skills/bober.security-node/SKILL.md +267 -0
  810. package/skills/bober.security-payments/SKILL.md +249 -0
  811. package/skills/bober.security-react/SKILL.md +194 -0
  812. package/skills/bober.security-solidity/SKILL.md +306 -0
  813. package/skills/bober.seo/SKILL.md +132 -0
  814. package/skills/bober.seo-ai-visibility/SKILL.md +110 -0
  815. package/skills/bober.seo-content-decay/SKILL.md +99 -0
  816. package/skills/bober.seo-generic/SKILL.md +173 -0
  817. package/skills/bober.seo-internal-linking/SKILL.md +87 -0
  818. package/skills/bober.seo-parasite-watch/SKILL.md +121 -0
  819. package/skills/bober.seo-rank-track/SKILL.md +98 -0
  820. package/skills/bober.seo-schema-audit/SKILL.md +97 -0
  821. package/skills/bober.seo-technical-audit/SKILL.md +113 -0
  822. package/skills/bober.seo-topical-map/SKILL.md +100 -0
  823. package/skills/bober.seo-verticals/SKILL.md +133 -0
  824. package/skills/bober.using-bober/SKILL.md +1 -0
@@ -0,0 +1,190 @@
1
+ ---
2
+ name: bober.design
3
+ description: Frontend design team workflow — build premium, non-generic landing pages and UI through a five-role pipeline (intake → art direction → build → screenshot critique → polish). Use when building or redesigning any user-facing page where visual quality matters: landing pages, portfolios, marketing sites, product pages, dashboards with a public face. Triggers on "build a landing page", "make this look premium", "design a site", "this looks too AI".
4
+ argument-hint: <what-to-build-or-improve>
5
+ handoffs:
6
+ - label: "Plan Feature"
7
+ command: /bober-plan
8
+ prompt: "Plan the engineering work behind this designed page"
9
+ - label: "E2E Tests"
10
+ command: /bober-playwright
11
+ prompt: "Write Playwright E2E tests for the designed page"
12
+ ---
13
+
14
+ # bober.design — Frontend Design Team Workflow
15
+
16
+ You are running the **bober.design** skill: a five-role design team compressed into one
17
+ pipeline. Its single purpose is output that could not be mistaken for AI-generated — pages with
18
+ a point of view, built to a hard quality floor.
19
+
20
+ The pipeline exists because genericness is not a vague quality problem; it is a named,
21
+ enumerable, machine-detectable failure mode. The team designs against an explicit catalog of
22
+ AI tells (see the **Anti-Slop Catalog** reference), plans before building, critiques
23
+ screenshots instead of trusting code, and gates on deterministic checks.
24
+
25
+ **The Iron Law of this skill: no design decision happens outside DESIGN.md during the build.**
26
+ Plan first, then build the plan. A builder that improvises palette or type on the fly produces
27
+ the average of its training data — that average is the enemy.
28
+
29
+ ## The five roles
30
+
31
+ | Role | Who | Output |
32
+ |------|-----|--------|
33
+ | 1. Intake | You (orchestrator), interactive | Brief: subject, audience, job, references, constraints |
34
+ | 2. Art direction | `bober-art-director` subagent | `.bober/design/DESIGN.md` (the contract) |
35
+ | 3. Build | `bober-frontend-builder` subagent | Working code, DESIGN.md as law |
36
+ | 4. Critique | `bober-design-critic` subagent | Screenshot-verified findings + slop score + verdict |
37
+ | 5. Polish | builder again, one batch | Final pass: typography, motion, copy sweep |
38
+
39
+ Steps 3–4 loop (max 3 iterations) until the critic passes.
40
+
41
+ ## Step 0 — Applicability & survey
42
+
43
+ - If the task has no visual surface (backend, infra, pure logic), stop and use the right skill.
44
+ - Survey the project: greenfield or existing? Stack (plain HTML / Vite+React / Next.js /
45
+ Astro…)? If greenfield with no stack preference, default to a single static page first
46
+ (HTML + modern CSS + minimal JS) — design quality is stack-independent and a static page
47
+ iterates fastest; migrate into a framework after the design is approved.
48
+ - Check for installed substrate (all optional, never required):
49
+ - **ui-ux-pro-max** plugin (`~/.claude/plugins/marketplaces/ui-ux-pro-max-skill/.claude/skills/ui-ux-pro-max/scripts/search.py`):
50
+ a searchable database of styles, palettes, font pairings, and per-stack guidelines. Treat
51
+ it as a *candidate generator only* — its recommendations trend generic (it will happily
52
+ suggest Inter/Inter for a premium portfolio), so everything it returns must pass the
53
+ art director's anti-slop gate.
54
+ - **frontend-design** skill (Anthropic) — its philosophy is already absorbed into this
55
+ pipeline; don't invoke it redundantly inside this workflow.
56
+ - **impeccable** (`npx impeccable detect`) and **axe-core** — deterministic gates for the
57
+ critic, used if available.
58
+
59
+ ## Step 1 — Intake (interactive; you run this, not a subagent)
60
+
61
+ Subagents can't talk to the user. All discovery happens here, and its quality caps the quality
62
+ of everything downstream.
63
+
64
+ ### 1a. References (worth more than any description)
65
+
66
+ Ask the user for visual references before anything else:
67
+
68
+ - A `reference/` folder in the project (screenshots, section by section — hero, content
69
+ sections, footer, detail pages, loading states — named or annotated for which section each
70
+ file informs). Read every image.
71
+ - Or URLs of sites they admire (capture screenshots via Playwright if available).
72
+ - **Borrow from several references, never copy one site.** For each reference, record WHAT
73
+ specifically to take (the spacing? type contrast? mood? one interaction?) — one sentence per
74
+ image, confirmed with the user if ambiguous.
75
+ - No references? Proceed — the art director designs from the subject's own world — but say
76
+ that references would raise the ceiling and give the user a moment to add some.
77
+
78
+ ### 1b. Clarifying questions (one batch, 4–6 questions max)
79
+
80
+ Run two discovery tracks in the same batch:
81
+
82
+ **Vibe discovery:** subject and its world (materials, instruments, era, vernacular) ·
83
+ audience and the page's single job · 3-5 adjectives the user wants a stranger to feel ·
84
+ what competitors/peers look like (so we can NOT look like that) · any brand constraints
85
+ (existing colors/fonts/logo) · motion appetite (calm ↔ theatrical).
86
+
87
+ **Copy strategy:** what the thing actually does, in the user's own words · the one action a
88
+ visitor should take · proof available (real numbers, real names, real work).
89
+
90
+ Also: target stack, single-mode or light+dark, and any hard constraints (CMS, existing design
91
+ system, performance budget).
92
+
93
+ Use AskUserQuestion for the choice-shaped items; free text for the open ones. Do not proceed
94
+ until the subject, audience, and job are concrete. Real content only from here on — collect
95
+ actual copy inputs, names, numbers, and image assets now, not lorem ipsum later.
96
+
97
+ ### 1c. Write the brief
98
+
99
+ Distill intake into `.bober/design/BRIEF.md`: subject/audience/job, reference notes (per-image,
100
+ what-to-take), both discovery tracks' answers, constraints, assets inventory. This is the art
101
+ director's entire knowledge of the user's intent — write it like a handoff, not notes.
102
+
103
+ ## Step 2 — Art direction
104
+
105
+ Spawn **bober-art-director** with: the full text of BRIEF.md, the reference image paths (it can
106
+ Read them), the Anti-Slop Catalog and DESIGN.md template references (inlined below in this
107
+ command file — pass them verbatim), and `.bober/design/history.md` if it exists.
108
+
109
+ The art director returns DESIGN.md content after running its internal generic-twin self-critique.
110
+ Write it to `.bober/design/DESIGN.md`.
111
+
112
+ **Approval gate:** present to the user — the named vibe, the two influences and their collision,
113
+ the palette table, the type pairing, the signature element, the wildcard, and the Slop Ledger.
114
+ Ask: approve, or adjust? Iterate the art director (not the builder) until approved. This is the
115
+ cheapest point in the pipeline to change direction; after this, DESIGN.md is frozen for the
116
+ build. In a fully autonomous run (explicitly requested), apply the critic's brief-level review
117
+ instead and proceed.
118
+
119
+ Append the history ledger line to `.bober/design/history.md` once approved.
120
+
121
+ ## Step 3 — Build
122
+
123
+ Spawn **bober-frontend-builder** with: DESIGN.md verbatim, the stack decision, the asset paths,
124
+ the Anti-Slop Catalog, and (iteration ≥2) the critic's full findings batch.
125
+
126
+ Build order: tokens first (CSS variables / theme file generated from DESIGN.md §3–4 — the only
127
+ place hex values may live), then section by section per the §5 wireframes, then the signature
128
+ element, then the motion plan. The builder self-verifies (builds clean, renders, no console
129
+ errors) before returning.
130
+
131
+ ## Step 4 — Critique loop
132
+
133
+ Spawn **bober-design-critic** with: DESIGN.md, the Critique Rubric reference, how to run the
134
+ page (dev server command or file path), and the iteration number.
135
+
136
+ - Critic returns a verdict + findings (screenshot-verified, severity-ranked, slop score).
137
+ - `fail` → collect ALL findings into ONE batch (batched fixes beat drip-fed fixes; the builder
138
+ sees the full picture and fixes root causes, not symptoms), re-spawn the builder, re-critique.
139
+ Max 3 iterations; if still failing, stop and present the open findings honestly to the user
140
+ with the critic's screenshots — never silently ship a failing page.
141
+ - `design-brief` findings (page faithful to a weak DESIGN.md) → route to the art director,
142
+ not the builder, and re-run from Step 2 with the user's awareness.
143
+ - `pass` → Step 5.
144
+
145
+ ## Step 5 — Polish
146
+
147
+ One final builder pass, one batch, guided by the critic's MEDIUM/NIT findings plus:
148
+
149
+ - **Typography micro-pass:** optical alignment, widows/orphans in headings, tabular figures on
150
+ data, letter-spacing on all-caps labels.
151
+ - **Motion audit:** every animation earns its place per DESIGN.md §8; reduced-motion path
152
+ actually verified.
153
+ - **Copy sweep:** the anti-slop copy sweep from the Copy Guide, applied line by line.
154
+
155
+ Then a final critic smoke pass (phases 1, 3, 8 + slop lint only) to confirm the polish didn't
156
+ regress anything.
157
+
158
+ ## Step 6 — Report
159
+
160
+ Present to the user: the final 1440/768/375 screenshots, the named vibe and signature element
161
+ (one line each), the slop score and a11y result, how to run it, and what to iterate next.
162
+ Findings you chose not to fix stay listed — the user decides, not silence.
163
+
164
+ ## Working with the sprint pipeline
165
+
166
+ For larger builds, this skill composes with the standard bober pipeline: run Steps 0–2 here,
167
+ then hand DESIGN.md to `/bober-plan` as a context file so sprint contracts inherit the design
168
+ contract, with `bober-design-critic` added as an evaluation strategy alongside typecheck/tests.
169
+ The design contract and the engineering contract stay separate documents with separate
170
+ evaluators.
171
+
172
+ ## Error handling
173
+
174
+ - **Playwright unavailable to the critic** → critique falls back to static analysis of built
175
+ output + explicit note that visual verification was skipped; treat any such review as
176
+ provisional, never as a pass.
177
+ - **Fonts fail to load in review** (computed font-family shows a fallback) → CRITICAL: the
178
+ design was reviewed as a different design. Fix loading before judging anything visual.
179
+ - **User rejects the vibe late (during build/critique)** → back to Step 2; do not patch a
180
+ rejected direction section by section. Changing DESIGN.md mid-build without re-approval is
181
+ a pipeline violation.
182
+ - **Iteration budget exhausted** → present state honestly with screenshots and open findings.
183
+
184
+ ## Attribution
185
+
186
+ The taste layer of this pipeline adapts Anthropic's `frontend-design` skill (three default
187
+ looks, signature element, two-pass plan/critique, writing-as-design). The genericness catalog
188
+ synthesizes Impeccable (pbakaus), Krebs' Show HN slop audit, and 2389-research's landing-page
189
+ system (entropy rules, named vibes, litmus gates). The critique protocol adapts OneRedOak's
190
+ design-review workflow (Live Environment First, 8 phases, three viewports).
@@ -0,0 +1,102 @@
1
+ # Anti-Slop Catalog — AI-Generic Tells, Blocklist, and Entropy Rules
2
+
3
+ This is the shared genericness knowledge base for the bober design team. The art director designs
4
+ against it, the builder is constrained by it, and the critic scores against it.
5
+
6
+ **How to apply it:** every rule here is a **scored lint, not an absolute ban**. Any single tell can
7
+ be the right choice for a specific brief — the failure mode is *stacking defaults*. An empirical
8
+ Playwright audit of 1,590 Show HN landing pages (Krebs, 2026) scored 4+ tells as "heavy slop" (22%
9
+ of pages), 2–3 as mild (32%), 0–1 as clean (46%). Target: **0–1 tells, and any tell present must be
10
+ a justified, written choice in DESIGN.md** — the brief's own words always win, including when the
11
+ brief explicitly asks for a "banned" look.
12
+
13
+ ## The three whole-page default looks (never spend a free axis on these)
14
+
15
+ AI-generated design clusters around three complete looks that appear regardless of subject:
16
+
17
+ 1. **Warm cream** (~#F4F1EA) background + high-contrast serif display + terracotta accent
18
+ 2. **Near-black** background + single acid-green or vermilion accent
19
+ 3. **Broadsheet**: hairline rules, zero border-radius, dense newspaper columns
20
+
21
+ All three are legitimate *when the brief pins them down*. When the brief leaves the visual
22
+ direction free, arriving at any of them means the direction was defaulted, not designed.
23
+
24
+ ## Component & layout tells (each +1 slop score)
25
+
26
+ - Pill "badge" above the hero H1 ("✨ Now in beta", "Backed by…")
27
+ - Grid of identical icon-topped feature cards (3 or 6, same size, same radius)
28
+ - Numbered 1-2-3 "how it works" step sequence when the content is not truly sequential
29
+ - Stat banner row ("10k+ users · 99.9% uptime · 4.9★")
30
+ - Big number + small label + gradient accent as the hero (the template answer)
31
+ - Rounded-corner card grids as the answer to every layout question
32
+ - Dark mode with glowing box-shadows around cards
33
+ - Decorative gradient text on headlines
34
+ - Centered everything: every section a centered column with a centered heading
35
+
36
+ ## Typography tells
37
+
38
+ - One font family for the entire page (most commonly Inter)
39
+ - The overused pool: **Inter, Roboto, Arial, Helvetica, Space Grotesk, Lato, Open Sans,
40
+ Source Sans Pro** — and the "escape hatch" combos that became their own tell:
41
+ Geist, Instrument Serif (already flagged as "the newest reflex")
42
+ - No deliberate type scale: sizes that drift (17/19/22px) instead of a named scale
43
+
44
+ ## Color tells
45
+
46
+ - Purple/violet gradients ("VibeCode Purple"), generic blue-to-purple
47
+ - Cyan-on-dark "tech" scheme
48
+ - "The Stripe palette" — soft blurple gradients on white
49
+ - Remembered hex codes: reaching for #6366F1, #8B5CF6, #10B981 from muscle memory
50
+
51
+ ## Copy tells (probabilistic — these predate LLMs; enforce specificity, don't just ban phrases)
52
+
53
+ - Averaged SaaS headlines: "Build the future of work", "Your all-in-one platform",
54
+ "Scale without limits", "Supercharge your workflow"
55
+ - **Headline litmus test (hard gate):** if a visitor sees ONLY the headline and nothing else,
56
+ will they know exactly what this product/person/thing is? If not, rewrite.
57
+ - Em-dash-heavy triads, "It's not X, it's Y", benefit-benefit-benefit rhythm
58
+ - Feature names that describe the implementation ("AI-Powered Engine") instead of what the
59
+ user gets
60
+
61
+ ## Motion tells
62
+
63
+ - Bounce/elastic easing on UI elements
64
+ - Everything fades up on scroll, uniformly, at the same speed
65
+ - Scattered micro-animations instead of one orchestrated moment
66
+ - Animations >500ms, or animating width/height/top/left instead of transform/opacity
67
+
68
+ ## Replacement pools (rotate — never reuse the previous project's pick)
69
+
70
+ **Display faces** (pair with a distinct body face, never self-paired): Newsreader, Playfair
71
+ Display, Clash Display, Outfit, Manrope, Satoshi, Bricolage Grotesque, Fraunces, Zodiak,
72
+ General Sans, Cabinet Grotesk, Big Shoulders, Crimson Pro. For developer products, JetBrains
73
+ Mono / IBM Plex Mono as a *utility* face.
74
+ **Icons:** Phosphor, Heroicons, Iconify Solar — one set per project, one stroke weight.
75
+ Lucide is now overused; avoid unless the project already uses it. Never emoji as icons.
76
+
77
+ ⚠️ **This pool rots.** Everyone reading advice like this switches to the same replacements, which
78
+ is how Instrument Serif became a tell within months. The pools are a floor, not the method. The
79
+ method is the entropy rules below.
80
+
81
+ ## Entropy rules (anti-convergence — these beat any static list)
82
+
83
+ 1. **No hex-code memory.** Generate colors fresh from real-world references in the subject's
84
+ world (a material, a place, an era, a brand artifact) — never from remembered defaults.
85
+ Name each color after its source ("oxidized copper", not "green-500").
86
+ 2. **Rotate the display face.** Check `.bober/design/history.md` for faces used in previous
87
+ projects; never repeat the last three.
88
+ 3. **Two influences, visible collision.** Pick two unrelated influences discovered during
89
+ intake (e.g. "Swiss timetables × phosphor CRT terminals") and make the collision visible
90
+ in the design. One influence produces a theme; two produce an identity.
91
+ 4. **One wildcard.** Include one deliberate element that doesn't "fit" — a texture, an odd
92
+ alignment, a typographic quirk. Perfectly coherent = obviously generated.
93
+ 5. **Name the vibe.** Write down a 2–4 word name for the aesthetic direction ("brutalist
94
+ apothecary", "midnight radio"). Unnamed vibes become generic. Every subsequent decision
95
+ is tested against the name.
96
+
97
+ ## The AI Slop Test (final gate, applied by the critic)
98
+
99
+ > If someone saw this page and was told "AI made this", would they believe it immediately?
100
+
101
+ If yes — the design has failed, regardless of how many individual rules pass. Identify which
102
+ tells create that impression and redesign those. If no — ship it.
@@ -0,0 +1,84 @@
1
+ # DESIGN.md — the Design Brief Contract
2
+
3
+ The art director produces `.bober/design/DESIGN.md`. It is the **single source of truth** for the
4
+ build: no design decision may be made outside this file during the build phase. If the builder
5
+ needs a value that isn't in DESIGN.md, that is a DESIGN.md bug — the orchestrator routes the
6
+ question back to art direction, the builder never improvises one.
7
+
8
+ Pages may add scoped deviations in `.bober/design/pages/<page>.md` (same sections, overrides
9
+ only). When building a page, its override file — if present — wins over the master.
10
+
11
+ ## Required sections
12
+
13
+ ```markdown
14
+ # DESIGN — <project name>
15
+
16
+ ## 1. Subject & Job
17
+ One concrete subject, its audience, and the page's single job. If the user's brief didn't pin
18
+ these down, the intake answers did. Real content only — no lorem ipsum anywhere in the build.
19
+
20
+ ## 2. Vibe
21
+ **Name:** <2–4 word named direction, e.g. "brutalist apothecary">
22
+ **Influences (exactly two, unrelated):** <influence A> × <influence B> — and one sentence on
23
+ where their collision will be visible on the page.
24
+ **Freshness check:** how this direction differs from (a) the three default looks, (b) the last
25
+ entry in .bober/design/history.md, (c) what a generic competitor page looks like.
26
+
27
+ ## 3. Color Tokens (4–6, named after their real-world source)
28
+ | Token | Hex | Source | Role |
29
+ |-------|-----|--------|------|
30
+ | --color-ink | #1A1B18 | wet slate roof | foreground |
31
+ | ... | | | background / accent / surface / muted |
32
+ Include the fg/bg contrast ratios for every text-bearing pair (must meet 4.5:1 body, 3:1 large).
33
+ State light/dark behavior: single-mode (justify) or both (both fully specified).
34
+
35
+ ## 4. Type Roles
36
+ | Role | Face | Weights | Scale steps |
37
+ Display / Body / Utility (captions, data). Display and body are different families. State the
38
+ type scale as named steps (e.g. 13/16/20/28/44/72) and where each is used. State what makes
39
+ this pairing specific to the brief — "it looks nice" is not a reason.
40
+
41
+ ## 5. Layout Concept
42
+ One-sentence layout thesis, then ASCII wireframes per section (hero, each content section,
43
+ footer). Structural devices (numbering, eyebrows, dividers) listed with the information each
44
+ one encodes — a device that encodes nothing gets cut.
45
+
46
+ ## 6. Signature Element
47
+ The ONE thing this page will be remembered by (an interaction, a hero treatment, a typographic
48
+ move). One paragraph: what it is, why it embodies this subject, and its reduced-motion fallback.
49
+ Spend the boldness budget here; everything else stays quiet.
50
+
51
+ ## 7. Wildcard
52
+ One deliberate misfit detail and where it lives.
53
+
54
+ ## 8. Motion Plan
55
+ The one orchestrated moment (usually page load or first scroll), listed hover/press
56
+ micro-interactions, duration/easing tokens (150–300ms micro, ≤400ms transitions, ease-out in /
57
+ ease-in out, no bounce on UI), and the prefers-reduced-motion story. Fewer, better.
58
+
59
+ ## 9. Copy Deck
60
+ Final headline (must pass the litmus test), subhead, section headings, CTA labels (verbs that
61
+ say what happens: "Save changes", not "Submit"), and the empty/error-state voice. Copy is design
62
+ material: same intentionality as spacing and color.
63
+
64
+ ## 10. Slop Ledger
65
+ Every anti-slop rule this design consciously breaks, each with a one-line justification tied to
66
+ the brief. An empty ledger and a rule-breaking design = art direction failure. Unjustified
67
+ entries = the critic bounces it.
68
+
69
+ ## 11. Quality Floor (non-negotiable, inherited — restate, don't relitigate)
70
+ Responsive 375/768/1440. Visible keyboard focus. WCAG 2.2 AA contrast. Semantic HTML.
71
+ prefers-reduced-motion respected. No horizontal scroll on mobile. Touch targets ≥44px.
72
+ Real content, no placeholders.
73
+ ```
74
+
75
+ ## History ledger
76
+
77
+ After every accepted DESIGN.md, append one line to `.bober/design/history.md`:
78
+
79
+ ```
80
+ 2026-07-10 | <project> | vibe: <name> | display: <face> | body: <face> | palette: <3 main hex>
81
+ ```
82
+
83
+ The art director MUST read this file first and avoid repeating the last three display faces,
84
+ vibe names, and palettes. This is what keeps project #5 from converging with project #1.
@@ -0,0 +1,62 @@
1
+ # Design Critique Rubric — Live-Environment Review Protocol
2
+
3
+ Used by `bober-design-critic`. Principle: **Live Environment First** — assess the rendered,
4
+ interactive page before reading a line of source. Static code analysis alone is rejected as a
5
+ review method; a picture is worth 1000 tokens.
6
+
7
+ ## Setup
8
+
9
+ 1. Start the dev server (or open the built HTML) and navigate with Playwright.
10
+ 2. Capture the baseline screenshot set BEFORE judging anything:
11
+ - **1440px** (desktop), **768px** (tablet), **375px** (mobile) — full-page screenshot each
12
+ - Dark mode variants if DESIGN.md specifies dual-mode
13
+ 3. Read `.bober/design/DESIGN.md` (and the page override, if any). The review judges the page
14
+ against DESIGN.md and the anti-slop catalog — not against the critic's personal taste.
15
+ If the page is faithful to DESIGN.md but DESIGN.md itself is weak, file that as a
16
+ `design-brief` finding, not a build finding.
17
+
18
+ ## The eight phases (run in order, all mandatory)
19
+
20
+ | # | Phase | What to check |
21
+ |---|-------|---------------|
22
+ | 1 | Preparation | Page loads clean; no 404 assets; no console errors/warnings; fonts actually load (check computed font-family — a fallback serving Arial is a CRITICAL finding) |
23
+ | 2 | Interaction & user flow | Walk the primary user journey click-by-click. Every interactive element: hover, press, focus, disabled states present and on-style. CTAs do what their label says |
24
+ | 3 | Responsiveness | At each viewport: no horizontal scroll, no overlap/clipping, no orphaned layouts. Screenshot evidence for every finding |
25
+ | 4 | Visual polish | Spacing rhythm consistent with the scale; alignment true; type scale steps match DESIGN.md; images not stretched; visual hierarchy guides the eye to the one primary action |
26
+ | 5 | Accessibility (WCAG 2.2 AA) | Keyboard-only pass: tab order matches visual order, focus always visible, no traps, escape routes in modals. Contrast-check every text/bg pair. Alt text, labels, heading hierarchy, aria on icon-only buttons. Run axe if available (see gates) |
27
+ | 6 | Robustness | Long content, missing images, empty states, slow network (throttle), zoom 200%, prefers-reduced-motion actually reduces motion |
28
+ | 7 | Code health | ONLY now read source: token usage (no raw hex in components), CSS specificity sanity, semantic HTML, no dead selectors that cancel each other |
29
+ | 8 | Content & console | Copy against the copy deck: headline litmus, CTA verb rule, no lorem ipsum, no truncated text. Final console sweep after all interactions |
30
+
31
+ ## Deterministic gates (run after the eight phases)
32
+
33
+ - **Slop lint:** if `npx impeccable detect` is available (requires network on first run), run it
34
+ with `--json` and record the score. Otherwise run the built-in checks: computed font-family
35
+ vs the overused pool; count of hero badge / icon-card grid / stat row / numbered steps
36
+ patterns in the DOM; gradient usage on text; purple-family dominance. Score = number of
37
+ tells present. **0–1 pass · 2–3 warn · 4+ fail.** A tell justified in DESIGN.md's Slop
38
+ Ledger does not count toward the score.
39
+ - **Accessibility scan:** if axe-core is available (`npx @axe-core/cli <url>` or injected via
40
+ Playwright evaluate), run it. Serious/critical violations are BLOCKER findings. If axe is
41
+ unavailable, the manual phase-5 pass stands but note the gap in the report.
42
+ - **The AI Slop Test** (from the anti-slop catalog): one honest verdict, looking at the 1440px
43
+ screenshot cold: "would a stranger immediately believe AI made this?" Yes → FAIL with the
44
+ specific tells that create the impression.
45
+
46
+ ## Finding format & severities
47
+
48
+ ```
49
+ [BLOCKER] breaks function, accessibility, or DESIGN.md's quality floor — must fix
50
+ [HIGH] visibly cheapens the page or violates DESIGN.md — fix this iteration
51
+ [MEDIUM] polish item — fix if the iteration budget allows
52
+ [NIT] preference — note, prefixed "Nit:", never blocks
53
+ ```
54
+
55
+ Every finding: `severity | phase | viewport | what + where | evidence (screenshot ref) |
56
+ suggested fix direction`. Findings describe **problems, not prescriptions** — the builder owns
57
+ the how. Praise what works in one line first; it anchors what must not regress.
58
+
59
+ ## Verdict
60
+
61
+ `pass` — no BLOCKER/HIGH, slop score ≤1, AI Slop Test passed.
62
+ `fail` — anything else, with the full findings list for the next build iteration.
@@ -0,0 +1,43 @@
1
+ # Copy Guide — Writing as Design Material
2
+
3
+ Words appear in a design for one reason: to make it easier to understand, and therefore easier
4
+ to use. They are design material, not decoration — bring the same intentionality to copy that
5
+ you bring to spacing and color. Copy can make a design feel as templated as the visuals can.
6
+
7
+ ## Headline discipline
8
+
9
+ - **The litmus test (hard gate):** seeing ONLY the headline, does a visitor know exactly what
10
+ this is? "Build the future of work" fails. "Invoices your clients pay in one tap" passes.
11
+ - Specific beats clever, every time. Numbers, nouns from the subject's world, and verbs the
12
+ audience uses beat abstractions ("platform", "solution", "workflow", "supercharge").
13
+ - The headline is written from the visitor's side of the screen — what they get, not what the
14
+ system does.
15
+
16
+ ## Voice rules
17
+
18
+ - Write from the end user's side: name things by what people control and recognize, never by
19
+ how the system is built. A person manages *notifications*, not *webhook config*.
20
+ - Active voice by default. A control says exactly what happens when it's used: "Save changes",
21
+ not "Submit". An action keeps its name through the whole flow — the button that says
22
+ "Publish" produces a toast that says "Published".
23
+ - Plain verbs, sentence case, no filler. Tone matched to the brand and audience, then held
24
+ consistent — the vocabulary of an interface is its signposting.
25
+ - Let each element do exactly one job: a label labels, an example demonstrates, nothing quietly
26
+ does double duty.
27
+
28
+ ## Failure & emptiness are direction, not mood
29
+
30
+ - Errors state what went wrong and how to fix it, in the interface's voice. They never
31
+ apologize and are never vague ("Invalid input" is banned; "Card number is 15 digits — Amex
32
+ cards start with 34 or 37" passes).
33
+ - An empty screen is an invitation to act: what this space is for + the one action to fill it.
34
+
35
+ ## Anti-slop copy sweep (polish pass)
36
+
37
+ - Kill averaged-SaaS phrasing: "all-in-one", "seamless", "supercharge", "unlock", "empower",
38
+ "take X to the next level", "built for the modern Y".
39
+ - Kill rhythm tells: em-dash triads, "It's not X, it's Y", three-benefit drumbeats.
40
+ - Every feature name says what the user gets, not the implementation ("Search that reads
41
+ handwriting", not "AI-Powered OCR Engine").
42
+ - Read every sentence asking: could this appear on a competitor's page unchanged? If yes,
43
+ it isn't copy yet — it's filler.
@@ -42,7 +42,21 @@ Based on the user's answers, determine the appropriate `mode` and `preset`:
42
42
 
43
43
  The planner should be able to plan ANY type of project -- web apps, APIs, smart contracts, CLI tools, mobile apps, libraries, data pipelines, etc. Do not limit the user to predefined categories.
44
44
 
45
- Create `bober.config.json` using the appropriate defaults from the mode and preset. Use the schema defined in `src/config/schema.ts` and defaults from `src/config/defaults.ts` as reference. Auto-detect commands by examining `package.json`, `Cargo.toml`, `Anchor.toml`, `hardhat.config.*`, `foundry.toml`, or other project manifests if available.
45
+ **Write `bober.config.json` now do not wait for further confirmation, and do NOT try to read `src/config/*.ts` or `templates/*` (those source files are absent in a plugin or standalone install; only relative project paths resolve).** Use the self-contained default below as your starting point. Set `project.name`, `project.mode` (`"greenfield"` or `"brownfield"`), and `project.description` from the user's answers; add `project.preset` and/or `project.stack` when they apply. Auto-detect the `commands` by examining `package.json`, `Cargo.toml`, `Anchor.toml`, `hardhat.config.*`, `foundry.toml`, or other manifests omit any command you cannot detect rather than guessing.
46
+
47
+ ```json
48
+ {
49
+ "project": { "name": "<name>", "mode": "greenfield", "description": "<what they are building>" },
50
+ "planner": { "maxClarifications": 5, "model": "opus" },
51
+ "generator": { "model": "sonnet", "maxTurnsPerSprint": 50, "autoCommit": true, "branchPattern": "bober/{feature-name}" },
52
+ "evaluator": { "model": "sonnet", "strategies": [ { "type": "build", "required": true } ], "maxIterations": 3 },
53
+ "sprint": { "maxSprints": 10, "requireContracts": true, "sprintSize": "medium" },
54
+ "pipeline": { "maxIterations": 20, "requireApproval": false, "contextReset": "always" },
55
+ "commands": {}
56
+ }
57
+ ```
58
+
59
+ `project.preset` (optional) is one of `"nextjs"`, `"react-vite"`, `"solidity"`, `"anchor"`, `"api-node"`, `"python-api"`; `project.stack` (optional) is a free-form object such as `{ "frontend": "react", "backend": "express", "database": "postgresql" }`. For richer stacks, add the matching `evaluator.strategies` (e.g. `typecheck`, `lint`, `unit-test`, `playwright`) alongside their `commands`. After writing the file, verify it exists on disk, then continue — the config now exists, so the "does not exist" branch must not trigger again.
46
60
 
47
61
  Then create the `.bober/` directory structure:
48
62
  ```bash
@@ -74,8 +74,9 @@ ORCHESTRATOR (you — this session)
74
74
  Read `bober.config.json`. If it does not exist:
75
75
  - Ask the user the minimal initialization questions: project name, mode (greenfield vs brownfield), and what they are building.
76
76
  - Determine the appropriate `mode` and `preset` (if any) from the user's description.
77
- - Create `bober.config.json` with appropriate defaults.
78
- - Create the `.bober/` directory structure.
77
+ - **Write `bober.config.json` immediately** using the self-contained default config embedded in the `bober.plan` skill (Step 1) — do NOT wait for further confirmation, and do NOT try to read `src/config/*.ts` or `templates/*` (those source files are absent in a plugin or standalone install). Auto-detect `commands` from the project manifests; omit any you cannot detect.
78
+ - Create the `.bober/` directory structure: `mkdir -p .bober/specs .bober/contracts .bober/handoffs .bober/eval-results`.
79
+ - Verify `bober.config.json` now exists on disk before proceeding — every later step reads it.
79
80
 
80
81
  If `bober.config.json` exists, read the configuration.
81
82
 
@@ -83,11 +84,13 @@ Read `.bober/principles.md` if it exists. You will pass the principles text into
83
84
 
84
85
  ### 1b. Run Prerequisites Check
85
86
 
87
+ If `scripts/check-prereqs.sh` exists in the project, run it:
88
+
86
89
  ```bash
87
- bash scripts/check-prereqs.sh
90
+ [ -f scripts/check-prereqs.sh ] && bash scripts/check-prereqs.sh || echo "scripts/check-prereqs.sh not present (plugin/standalone install) — skipping prerequisites check"
88
91
  ```
89
92
 
90
- If it fails, report the missing prerequisites and stop.
93
+ If the script is present and fails, report the missing prerequisites and stop. If the script is absent — a plugin or standalone install where the agent-bober source tree is not in the project — skip this check and continue; it is not required.
91
94
 
92
95
  ### 1c. Check for Existing Plans
93
96