youtube-knowledge-mcp 2.0.2 → 2.2.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 (390) hide show
  1. package/README.md +166 -33
  2. package/dist/brain-schemas.d.ts +502 -0
  3. package/dist/brain-schemas.d.ts.map +1 -0
  4. package/dist/brain-schemas.js +109 -0
  5. package/dist/brain-schemas.js.map +1 -0
  6. package/dist/http/app.d.ts +16 -0
  7. package/dist/http/app.d.ts.map +1 -0
  8. package/dist/http/app.js +176 -0
  9. package/dist/http/app.js.map +1 -0
  10. package/dist/http/auth.d.ts +38 -0
  11. package/dist/http/auth.d.ts.map +1 -0
  12. package/dist/http/auth.js +79 -0
  13. package/dist/http/auth.js.map +1 -0
  14. package/dist/http/config.d.ts +41 -0
  15. package/dist/http/config.d.ts.map +1 -0
  16. package/dist/http/config.js +65 -0
  17. package/dist/http/config.js.map +1 -0
  18. package/dist/http/rate-limiter.d.ts +24 -0
  19. package/dist/http/rate-limiter.d.ts.map +1 -0
  20. package/dist/http/rate-limiter.js +55 -0
  21. package/dist/http/rate-limiter.js.map +1 -0
  22. package/dist/http/sessions.d.ts +34 -0
  23. package/dist/http/sessions.d.ts.map +1 -0
  24. package/dist/http/sessions.js +62 -0
  25. package/dist/http/sessions.js.map +1 -0
  26. package/dist/http.d.ts +6 -48
  27. package/dist/http.d.ts.map +1 -1
  28. package/dist/http.js +35 -252
  29. package/dist/http.js.map +1 -1
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +11 -431
  32. package/dist/index.js.map +1 -1
  33. package/dist/prompts-brain.d.ts +4 -0
  34. package/dist/prompts-brain.d.ts.map +1 -0
  35. package/dist/prompts-brain.js +48 -0
  36. package/dist/prompts-brain.js.map +1 -0
  37. package/dist/prompts-research.d.ts +4 -0
  38. package/dist/prompts-research.d.ts.map +1 -0
  39. package/dist/prompts-research.js +74 -0
  40. package/dist/prompts-research.js.map +1 -0
  41. package/dist/prompts-shared.d.ts +13 -0
  42. package/dist/prompts-shared.d.ts.map +1 -0
  43. package/dist/prompts-shared.js +7 -0
  44. package/dist/prompts-shared.js.map +1 -0
  45. package/dist/prompts.d.ts.map +1 -1
  46. package/dist/prompts.js +5 -58
  47. package/dist/prompts.js.map +1 -1
  48. package/dist/registry/brain-tools.d.ts +4 -0
  49. package/dist/registry/brain-tools.d.ts.map +1 -0
  50. package/dist/registry/brain-tools.js +104 -0
  51. package/dist/registry/brain-tools.js.map +1 -0
  52. package/dist/registry/channel-tools.d.ts +4 -0
  53. package/dist/registry/channel-tools.d.ts.map +1 -0
  54. package/dist/registry/channel-tools.js +53 -0
  55. package/dist/registry/channel-tools.js.map +1 -0
  56. package/dist/registry/health-tools.d.ts +4 -0
  57. package/dist/registry/health-tools.d.ts.map +1 -0
  58. package/dist/registry/health-tools.js +21 -0
  59. package/dist/registry/health-tools.js.map +1 -0
  60. package/dist/registry/index.d.ts +8 -0
  61. package/dist/registry/index.d.ts.map +1 -0
  62. package/dist/registry/index.js +27 -0
  63. package/dist/registry/index.js.map +1 -0
  64. package/dist/registry/library-tools.d.ts +4 -0
  65. package/dist/registry/library-tools.d.ts.map +1 -0
  66. package/dist/registry/library-tools.js +116 -0
  67. package/dist/registry/library-tools.js.map +1 -0
  68. package/dist/registry/media-tools.d.ts +4 -0
  69. package/dist/registry/media-tools.d.ts.map +1 -0
  70. package/dist/registry/media-tools.js +100 -0
  71. package/dist/registry/media-tools.js.map +1 -0
  72. package/dist/registry/thumbnail-tools.d.ts +7 -0
  73. package/dist/registry/thumbnail-tools.d.ts.map +1 -0
  74. package/dist/registry/thumbnail-tools.js +72 -0
  75. package/dist/registry/thumbnail-tools.js.map +1 -0
  76. package/dist/registry/transcript-tools.d.ts +4 -0
  77. package/dist/registry/transcript-tools.d.ts.map +1 -0
  78. package/dist/registry/transcript-tools.js +68 -0
  79. package/dist/registry/transcript-tools.js.map +1 -0
  80. package/dist/registry/types.d.ts +41 -0
  81. package/dist/registry/types.d.ts.map +1 -0
  82. package/dist/registry/types.js +17 -0
  83. package/dist/registry/types.js.map +1 -0
  84. package/dist/registry/video-tools.d.ts +4 -0
  85. package/dist/registry/video-tools.d.ts.map +1 -0
  86. package/dist/registry/video-tools.js +101 -0
  87. package/dist/registry/video-tools.js.map +1 -0
  88. package/dist/resources.d.ts.map +1 -1
  89. package/dist/resources.js +75 -6
  90. package/dist/resources.js.map +1 -1
  91. package/dist/schemas.d.ts +74 -54
  92. package/dist/schemas.d.ts.map +1 -1
  93. package/dist/schemas.js +30 -4
  94. package/dist/schemas.js.map +1 -1
  95. package/dist/thumbnail-resource.d.ts +8 -0
  96. package/dist/thumbnail-resource.d.ts.map +1 -0
  97. package/dist/thumbnail-resource.js +38 -0
  98. package/dist/thumbnail-resource.js.map +1 -0
  99. package/dist/thumbnail-schemas.d.ts +512 -0
  100. package/dist/thumbnail-schemas.d.ts.map +1 -0
  101. package/dist/thumbnail-schemas.js +95 -0
  102. package/dist/thumbnail-schemas.js.map +1 -0
  103. package/dist/tools/ask-brain.d.ts +62 -0
  104. package/dist/tools/ask-brain.d.ts.map +1 -0
  105. package/dist/tools/ask-brain.js +70 -0
  106. package/dist/tools/ask-brain.js.map +1 -0
  107. package/dist/tools/batch.d.ts +10 -10
  108. package/dist/tools/batch.js +3 -3
  109. package/dist/tools/batch.js.map +1 -1
  110. package/dist/tools/brain-info.d.ts +180 -0
  111. package/dist/tools/brain-info.d.ts.map +1 -0
  112. package/dist/tools/brain-info.js +108 -0
  113. package/dist/tools/brain-info.js.map +1 -0
  114. package/dist/tools/build-brain.d.ts +120 -0
  115. package/dist/tools/build-brain.d.ts.map +1 -0
  116. package/dist/tools/build-brain.js +123 -0
  117. package/dist/tools/build-brain.js.map +1 -0
  118. package/dist/tools/check-health.d.ts +2 -0
  119. package/dist/tools/check-health.d.ts.map +1 -1
  120. package/dist/tools/check-health.js +9 -0
  121. package/dist/tools/check-health.js.map +1 -1
  122. package/dist/tools/clips.d.ts +13 -45
  123. package/dist/tools/clips.d.ts.map +1 -1
  124. package/dist/tools/clips.js +52 -128
  125. package/dist/tools/clips.js.map +1 -1
  126. package/dist/tools/fetch-channel-thumbnails.d.ts +179 -0
  127. package/dist/tools/fetch-channel-thumbnails.d.ts.map +1 -0
  128. package/dist/tools/fetch-channel-thumbnails.js +123 -0
  129. package/dist/tools/fetch-channel-thumbnails.js.map +1 -0
  130. package/dist/tools/fetch-videos.d.ts +11 -8
  131. package/dist/tools/fetch-videos.d.ts.map +1 -1
  132. package/dist/tools/fetch-videos.js +3 -0
  133. package/dist/tools/fetch-videos.js.map +1 -1
  134. package/dist/tools/frames-subtitles.d.ts +44 -0
  135. package/dist/tools/frames-subtitles.d.ts.map +1 -0
  136. package/dist/tools/frames-subtitles.js +104 -0
  137. package/dist/tools/frames-subtitles.js.map +1 -0
  138. package/dist/tools/get-channel-info.d.ts +2 -0
  139. package/dist/tools/get-channel-info.d.ts.map +1 -1
  140. package/dist/tools/get-channel-info.js +8 -1
  141. package/dist/tools/get-channel-info.js.map +1 -1
  142. package/dist/tools/get-chapters.d.ts +2 -2
  143. package/dist/tools/get-comments.d.ts +2 -2
  144. package/dist/tools/get-playlist-info.d.ts.map +1 -1
  145. package/dist/tools/get-playlist-info.js +1 -0
  146. package/dist/tools/get-playlist-info.js.map +1 -1
  147. package/dist/tools/get-thumbnail.d.ts +38 -0
  148. package/dist/tools/get-thumbnail.d.ts.map +1 -0
  149. package/dist/tools/get-thumbnail.js +152 -0
  150. package/dist/tools/get-thumbnail.js.map +1 -0
  151. package/dist/tools/get-transcript.d.ts +2 -2
  152. package/dist/tools/get-transcript.d.ts.map +1 -1
  153. package/dist/tools/get-transcript.js +2 -14
  154. package/dist/tools/get-transcript.js.map +1 -1
  155. package/dist/tools/library.d.ts +9 -7
  156. package/dist/tools/library.d.ts.map +1 -1
  157. package/dist/tools/library.js +23 -7
  158. package/dist/tools/library.js.map +1 -1
  159. package/dist/tools/list-channel-thumbnails.d.ts +235 -0
  160. package/dist/tools/list-channel-thumbnails.d.ts.map +1 -0
  161. package/dist/tools/list-channel-thumbnails.js +79 -0
  162. package/dist/tools/list-channel-thumbnails.js.map +1 -0
  163. package/dist/tools/list-library.d.ts +4 -4
  164. package/dist/tools/manage-brain.d.ts +39 -0
  165. package/dist/tools/manage-brain.d.ts.map +1 -0
  166. package/dist/tools/manage-brain.js +53 -0
  167. package/dist/tools/manage-brain.js.map +1 -0
  168. package/dist/tools/save-to-library.d.ts.map +1 -1
  169. package/dist/tools/save-to-library.js +5 -1
  170. package/dist/tools/save-to-library.js.map +1 -1
  171. package/dist/tools/search-channels.d.ts +10 -4
  172. package/dist/tools/search-channels.d.ts.map +1 -1
  173. package/dist/tools/search-transcript.d.ts +2 -2
  174. package/dist/tools/search-transcript.d.ts.map +1 -1
  175. package/dist/tools/search-transcript.js +6 -13
  176. package/dist/tools/search-transcript.js.map +1 -1
  177. package/dist/tools/search-videos.d.ts +11 -8
  178. package/dist/tools/search-videos.d.ts.map +1 -1
  179. package/dist/utils/batches.d.ts +15 -0
  180. package/dist/utils/batches.d.ts.map +1 -0
  181. package/dist/utils/batches.js +31 -0
  182. package/dist/utils/batches.js.map +1 -0
  183. package/dist/utils/brain-build.d.ts +40 -0
  184. package/dist/utils/brain-build.d.ts.map +1 -0
  185. package/dist/utils/brain-build.js +200 -0
  186. package/dist/utils/brain-build.js.map +1 -0
  187. package/dist/utils/brain-chunks.d.ts +33 -0
  188. package/dist/utils/brain-chunks.d.ts.map +1 -0
  189. package/dist/utils/brain-chunks.js +87 -0
  190. package/dist/utils/brain-chunks.js.map +1 -0
  191. package/dist/utils/brain-index.d.ts +27 -0
  192. package/dist/utils/brain-index.d.ts.map +1 -0
  193. package/dist/utils/brain-index.js +101 -0
  194. package/dist/utils/brain-index.js.map +1 -0
  195. package/dist/utils/brain-ingest.d.ts +57 -0
  196. package/dist/utils/brain-ingest.d.ts.map +1 -0
  197. package/dist/utils/brain-ingest.js +127 -0
  198. package/dist/utils/brain-ingest.js.map +1 -0
  199. package/dist/utils/brain-lock.d.ts +4 -0
  200. package/dist/utils/brain-lock.d.ts.map +1 -0
  201. package/dist/utils/brain-lock.js +17 -0
  202. package/dist/utils/brain-lock.js.map +1 -0
  203. package/dist/utils/brain-lookup.d.ts +11 -0
  204. package/dist/utils/brain-lookup.d.ts.map +1 -0
  205. package/dist/utils/brain-lookup.js +36 -0
  206. package/dist/utils/brain-lookup.js.map +1 -0
  207. package/dist/utils/brain-paths.d.ts +19 -0
  208. package/dist/utils/brain-paths.d.ts.map +1 -0
  209. package/dist/utils/brain-paths.js +34 -0
  210. package/dist/utils/brain-paths.js.map +1 -0
  211. package/dist/utils/brain-phrases.d.ts +31 -0
  212. package/dist/utils/brain-phrases.d.ts.map +1 -0
  213. package/dist/utils/brain-phrases.js +116 -0
  214. package/dist/utils/brain-phrases.js.map +1 -0
  215. package/dist/utils/brain-stats.d.ts +25 -0
  216. package/dist/utils/brain-stats.d.ts.map +1 -0
  217. package/dist/utils/brain-stats.js +64 -0
  218. package/dist/utils/brain-stats.js.map +1 -0
  219. package/dist/utils/brain-storage.d.ts +28 -0
  220. package/dist/utils/brain-storage.d.ts.map +1 -0
  221. package/dist/utils/brain-storage.js +87 -0
  222. package/dist/utils/brain-storage.js.map +1 -0
  223. package/dist/utils/caption-probe.d.ts +7 -0
  224. package/dist/utils/caption-probe.d.ts.map +1 -0
  225. package/dist/utils/caption-probe.js +36 -0
  226. package/dist/utils/caption-probe.js.map +1 -0
  227. package/dist/utils/channel-images.d.ts +16 -0
  228. package/dist/utils/channel-images.d.ts.map +1 -0
  229. package/dist/utils/channel-images.js +35 -0
  230. package/dist/utils/channel-images.js.map +1 -0
  231. package/dist/utils/channel-lookup.d.ts +5 -0
  232. package/dist/utils/channel-lookup.d.ts.map +1 -0
  233. package/dist/utils/channel-lookup.js +37 -0
  234. package/dist/utils/channel-lookup.js.map +1 -0
  235. package/dist/utils/chapters.d.ts +11 -0
  236. package/dist/utils/chapters.d.ts.map +1 -0
  237. package/dist/utils/chapters.js +24 -0
  238. package/dist/utils/chapters.js.map +1 -0
  239. package/dist/utils/clips.d.ts.map +1 -1
  240. package/dist/utils/clips.js +22 -30
  241. package/dist/utils/clips.js.map +1 -1
  242. package/dist/utils/env.d.ts +26 -0
  243. package/dist/utils/env.d.ts.map +1 -0
  244. package/dist/utils/env.js +72 -0
  245. package/dist/utils/env.js.map +1 -0
  246. package/dist/utils/errors.d.ts +1 -1
  247. package/dist/utils/errors.d.ts.map +1 -1
  248. package/dist/utils/errors.js +20 -2
  249. package/dist/utils/errors.js.map +1 -1
  250. package/dist/utils/file-lock.d.ts +34 -0
  251. package/dist/utils/file-lock.d.ts.map +1 -0
  252. package/dist/utils/file-lock.js +91 -0
  253. package/dist/utils/file-lock.js.map +1 -0
  254. package/dist/utils/flat-listing.d.ts +89 -0
  255. package/dist/utils/flat-listing.d.ts.map +1 -0
  256. package/dist/utils/flat-listing.js +68 -0
  257. package/dist/utils/flat-listing.js.map +1 -0
  258. package/dist/utils/format.d.ts +1 -3
  259. package/dist/utils/format.d.ts.map +1 -1
  260. package/dist/utils/format.js +1 -5
  261. package/dist/utils/format.js.map +1 -1
  262. package/dist/utils/guard.d.ts +21 -0
  263. package/dist/utils/guard.d.ts.map +1 -0
  264. package/dist/utils/guard.js +105 -0
  265. package/dist/utils/guard.js.map +1 -0
  266. package/dist/utils/image-dimensions.d.ts +19 -0
  267. package/dist/utils/image-dimensions.d.ts.map +1 -0
  268. package/dist/utils/image-dimensions.js +93 -0
  269. package/dist/utils/image-dimensions.js.map +1 -0
  270. package/dist/utils/image-fetch.d.ts +31 -0
  271. package/dist/utils/image-fetch.d.ts.map +1 -0
  272. package/dist/utils/image-fetch.js +141 -0
  273. package/dist/utils/image-fetch.js.map +1 -0
  274. package/dist/utils/json-file.d.ts +45 -0
  275. package/dist/utils/json-file.d.ts.map +1 -0
  276. package/dist/utils/json-file.js +60 -0
  277. package/dist/utils/json-file.js.map +1 -0
  278. package/dist/utils/paths.d.ts +19 -0
  279. package/dist/utils/paths.d.ts.map +1 -0
  280. package/dist/utils/paths.js +27 -0
  281. package/dist/utils/paths.js.map +1 -0
  282. package/dist/utils/pattern.d.ts +30 -0
  283. package/dist/utils/pattern.d.ts.map +1 -0
  284. package/dist/utils/pattern.js +130 -0
  285. package/dist/utils/pattern.js.map +1 -0
  286. package/dist/utils/search-index.d.ts +22 -7
  287. package/dist/utils/search-index.d.ts.map +1 -1
  288. package/dist/utils/search-index.js +26 -8
  289. package/dist/utils/search-index.js.map +1 -1
  290. package/dist/utils/storage.d.ts +14 -44
  291. package/dist/utils/storage.d.ts.map +1 -1
  292. package/dist/utils/storage.js +47 -84
  293. package/dist/utils/storage.js.map +1 -1
  294. package/dist/utils/subtitles.d.ts +7 -0
  295. package/dist/utils/subtitles.d.ts.map +1 -0
  296. package/dist/utils/subtitles.js +30 -0
  297. package/dist/utils/subtitles.js.map +1 -0
  298. package/dist/utils/thumbnail-entry.d.ts +19 -0
  299. package/dist/utils/thumbnail-entry.d.ts.map +1 -0
  300. package/dist/utils/thumbnail-entry.js +119 -0
  301. package/dist/utils/thumbnail-entry.js.map +1 -0
  302. package/dist/utils/thumbnail-fetch.d.ts +37 -0
  303. package/dist/utils/thumbnail-fetch.d.ts.map +1 -0
  304. package/dist/utils/thumbnail-fetch.js +89 -0
  305. package/dist/utils/thumbnail-fetch.js.map +1 -0
  306. package/dist/utils/thumbnail-ladder.d.ts +44 -0
  307. package/dist/utils/thumbnail-ladder.d.ts.map +1 -0
  308. package/dist/utils/thumbnail-ladder.js +68 -0
  309. package/dist/utils/thumbnail-ladder.js.map +1 -0
  310. package/dist/utils/thumbnail-listing.d.ts +16 -0
  311. package/dist/utils/thumbnail-listing.d.ts.map +1 -0
  312. package/dist/utils/thumbnail-listing.js +26 -0
  313. package/dist/utils/thumbnail-listing.js.map +1 -0
  314. package/dist/utils/thumbnail-paths.d.ts +20 -0
  315. package/dist/utils/thumbnail-paths.d.ts.map +1 -0
  316. package/dist/utils/thumbnail-paths.js +35 -0
  317. package/dist/utils/thumbnail-paths.js.map +1 -0
  318. package/dist/utils/thumbnail-store.d.ts +19 -0
  319. package/dist/utils/thumbnail-store.d.ts.map +1 -0
  320. package/dist/utils/thumbnail-store.js +125 -0
  321. package/dist/utils/thumbnail-store.js.map +1 -0
  322. package/dist/utils/transcript-cache.d.ts +20 -0
  323. package/dist/utils/transcript-cache.d.ts.map +1 -0
  324. package/dist/utils/transcript-cache.js +127 -0
  325. package/dist/utils/transcript-cache.js.map +1 -0
  326. package/dist/utils/transcript-search.d.ts +20 -0
  327. package/dist/utils/transcript-search.d.ts.map +1 -0
  328. package/dist/utils/transcript-search.js +35 -0
  329. package/dist/utils/transcript-search.js.map +1 -0
  330. package/dist/utils/transcript.d.ts +14 -34
  331. package/dist/utils/transcript.d.ts.map +1 -1
  332. package/dist/utils/transcript.js +5 -64
  333. package/dist/utils/transcript.js.map +1 -1
  334. package/dist/utils/validate-youtube.d.ts +35 -0
  335. package/dist/utils/validate-youtube.d.ts.map +1 -0
  336. package/dist/utils/validate-youtube.js +87 -0
  337. package/dist/utils/validate-youtube.js.map +1 -0
  338. package/dist/utils/validate.d.ts +11 -3
  339. package/dist/utils/validate.d.ts.map +1 -1
  340. package/dist/utils/validate.js +43 -18
  341. package/dist/utils/validate.js.map +1 -1
  342. package/dist/utils/version.d.ts +2 -0
  343. package/dist/utils/version.d.ts.map +1 -0
  344. package/dist/utils/version.js +19 -0
  345. package/dist/utils/version.js.map +1 -0
  346. package/dist/utils/youtube-channel.d.ts +44 -0
  347. package/dist/utils/youtube-channel.d.ts.map +1 -0
  348. package/dist/utils/youtube-channel.js +61 -0
  349. package/dist/utils/youtube-channel.js.map +1 -0
  350. package/dist/utils/youtube-download.d.ts +27 -0
  351. package/dist/utils/youtube-download.d.ts.map +1 -0
  352. package/dist/utils/youtube-download.js +118 -0
  353. package/dist/utils/youtube-download.js.map +1 -0
  354. package/dist/utils/youtube-schemas.d.ts +394 -0
  355. package/dist/utils/youtube-schemas.d.ts.map +1 -0
  356. package/dist/utils/youtube-schemas.js +118 -0
  357. package/dist/utils/youtube-schemas.js.map +1 -0
  358. package/dist/utils/youtube-search.d.ts +14 -0
  359. package/dist/utils/youtube-search.d.ts.map +1 -0
  360. package/dist/utils/youtube-search.js +39 -0
  361. package/dist/utils/youtube-search.js.map +1 -0
  362. package/dist/utils/youtube-url.d.ts +25 -0
  363. package/dist/utils/youtube-url.d.ts.map +1 -0
  364. package/dist/utils/youtube-url.js +75 -0
  365. package/dist/utils/youtube-url.js.map +1 -0
  366. package/dist/utils/youtube-video.d.ts +47 -0
  367. package/dist/utils/youtube-video.d.ts.map +1 -0
  368. package/dist/utils/youtube-video.js +98 -0
  369. package/dist/utils/youtube-video.js.map +1 -0
  370. package/dist/utils/youtube.d.ts +13 -111
  371. package/dist/utils/youtube.d.ts.map +1 -1
  372. package/dist/utils/youtube.js +11 -480
  373. package/dist/utils/youtube.js.map +1 -1
  374. package/dist/utils/ytdlp-env.d.ts +33 -0
  375. package/dist/utils/ytdlp-env.d.ts.map +1 -0
  376. package/dist/utils/ytdlp-env.js +121 -0
  377. package/dist/utils/ytdlp-env.js.map +1 -0
  378. package/dist/utils/ytdlp-limiter.d.ts +24 -0
  379. package/dist/utils/ytdlp-limiter.d.ts.map +1 -0
  380. package/dist/utils/ytdlp-limiter.js +69 -0
  381. package/dist/utils/ytdlp-limiter.js.map +1 -0
  382. package/dist/utils/ytdlp-parse.d.ts +13 -0
  383. package/dist/utils/ytdlp-parse.d.ts.map +1 -0
  384. package/dist/utils/ytdlp-parse.js +48 -0
  385. package/dist/utils/ytdlp-parse.js.map +1 -0
  386. package/dist/utils/ytdlp.d.ts +13 -18
  387. package/dist/utils/ytdlp.d.ts.map +1 -1
  388. package/dist/utils/ytdlp.js +21 -110
  389. package/dist/utils/ytdlp.js.map +1 -1
  390. package/package.json +2 -1
@@ -0,0 +1,70 @@
1
+ import { z } from 'zod';
2
+ import { brainPassageSchema } from '../brain-schemas.js';
3
+ import { searchBrain } from '../utils/brain-index.js';
4
+ import { resolveBrain } from '../utils/brain-lookup.js';
5
+ import { pageInfo, toolResult } from '../utils/format.js';
6
+ import { paginationShape } from '../schemas.js';
7
+ export const askBrainSchema = {
8
+ channel: z.string().describe('Channel URL, @handle, or name of a brain built with build_brain'),
9
+ query: z
10
+ .string()
11
+ .min(1)
12
+ .describe('What to look for. Matched against the words actually spoken, not a summary of them'),
13
+ limit: z
14
+ .number()
15
+ .int()
16
+ .min(1)
17
+ .max(25)
18
+ .default(8)
19
+ .describe('How many passages to return. Default: 8'),
20
+ offset: z
21
+ .number()
22
+ .int()
23
+ .min(0)
24
+ .default(0)
25
+ .describe('Skip this many of the ranked passages, for paging. Default: 0'),
26
+ };
27
+ export const askBrainOutputSchema = {
28
+ channelId: z.string(),
29
+ name: z.string(),
30
+ query: z.string(),
31
+ passages: z.array(brainPassageSchema),
32
+ ...paginationShape,
33
+ };
34
+ /**
35
+ * Search a brain and return the moments that answer the query.
36
+ *
37
+ * This is the only route from a corpus into a model's context: a few hundred
38
+ * videos is tens of megabytes of transcript, and no tool here will hand that
39
+ * over. Every passage comes back with the second it was said and a link that
40
+ * opens the video there, so an answer built from these can be checked rather
41
+ * than trusted.
42
+ */
43
+ export async function askBrainHandler({ channel, query, limit, offset, }) {
44
+ const manifest = await resolveBrain(channel);
45
+ const { channelId, name } = manifest.channel;
46
+ const { passages, total } = await searchBrain(channelId, query, limit, offset);
47
+ return toolResult(render(name, query, passages, total), {
48
+ channelId,
49
+ name,
50
+ query,
51
+ passages,
52
+ ...pageInfo(total, passages.length, offset),
53
+ });
54
+ }
55
+ function render(name, query, passages, total) {
56
+ if (passages.length === 0) {
57
+ return [
58
+ `Nothing in ${name}'s brain matches "${query}".`,
59
+ '',
60
+ 'The words are matched as spoken, so try the phrasing the creator would use.',
61
+ 'Call get_brain_info to see how much of the channel is actually indexed.',
62
+ ].join('\n');
63
+ }
64
+ const sections = passages.map((passage) => [`### ${passage.title} [${passage.startFormatted}]`, passage.url, '', passage.text].join('\n'));
65
+ const heading = passages.length === total
66
+ ? `${total} passages from ${name} matching "${query}"`
67
+ : `${passages.length} of ${total} passages from ${name} matching "${query}" — pass offset to see more`;
68
+ return [heading, '', ...sections].join('\n\n');
69
+ }
70
+ //# sourceMappingURL=ask-brain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ask-brain.js","sourceRoot":"","sources":["../../src/tools/ask-brain.ts"],"names":[],"mappings":"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"}
@@ -24,16 +24,16 @@ export declare const getTranscriptsOutputSchema: {
24
24
  }, "strip", z.ZodTypeAny, {
25
25
  video: string;
26
26
  text?: string | undefined;
27
- error?: string | undefined;
28
27
  videoId?: string | undefined;
28
+ error?: string | undefined;
29
29
  language?: string | undefined;
30
30
  truncated?: boolean | undefined;
31
31
  totalChars?: number | undefined;
32
32
  }, {
33
33
  video: string;
34
34
  text?: string | undefined;
35
- error?: string | undefined;
36
35
  videoId?: string | undefined;
36
+ error?: string | undefined;
37
37
  language?: string | undefined;
38
38
  truncated?: boolean | undefined;
39
39
  totalChars?: number | undefined;
@@ -74,29 +74,29 @@ export declare const digestPlaylistOutputSchema: {
74
74
  transcriptWords: z.ZodOptional<z.ZodNumber>;
75
75
  transcriptError: z.ZodOptional<z.ZodString>;
76
76
  }, "strip", z.ZodTypeAny, {
77
- url: string;
78
- title: string;
79
77
  id: string;
78
+ title: string;
80
79
  durationFormatted: string;
80
+ url: string;
81
+ viewCount?: number | undefined;
82
+ uploadDate?: string | undefined;
81
83
  chapters?: {
82
84
  title: string;
83
85
  startSeconds: number;
84
86
  }[] | undefined;
85
- uploadDate?: string | undefined;
86
- viewCount?: number | undefined;
87
87
  transcriptWords?: number | undefined;
88
88
  transcriptError?: string | undefined;
89
89
  }, {
90
- url: string;
91
- title: string;
92
90
  id: string;
91
+ title: string;
93
92
  durationFormatted: string;
93
+ url: string;
94
+ viewCount?: number | undefined;
95
+ uploadDate?: string | undefined;
94
96
  chapters?: {
95
97
  title: string;
96
98
  startSeconds: number;
97
99
  }[] | undefined;
98
- uploadDate?: string | undefined;
99
- viewCount?: number | undefined;
100
100
  transcriptWords?: number | undefined;
101
101
  transcriptError?: string | undefined;
102
102
  }>, "many">;
@@ -3,7 +3,7 @@ import { getChapters, getTranscript, getVideoInfo, listVideos } from '../utils/y
3
3
  import { toolResult } from '../utils/format.js';
4
4
  import { asYouTubeError } from '../utils/errors.js';
5
5
  import { reportProgress, throwIfAborted } from '../utils/context.js';
6
- import { formatTimestamp, segmentsToText, windowText } from '../utils/transcript.js';
6
+ import { countWords, formatTimestamp, segmentsToText, windowText } from '../utils/transcript.js';
7
7
  /**
8
8
  * Multi-video operations.
9
9
  *
@@ -82,7 +82,7 @@ export async function getTranscriptsHandler({ videos, language, maxCharsPerVideo
82
82
  }
83
83
  // -- digest_playlist -----------------------------------------------------
84
84
  export const digestPlaylistSchema = {
85
- url: z.string().describe('Playlist or channel URL'),
85
+ url: z.string().max(2048).describe('Playlist or channel URL'),
86
86
  limit: z
87
87
  .number()
88
88
  .int()
@@ -164,7 +164,7 @@ export async function digestPlaylistHandler({ url, limit, includeChapters, inclu
164
164
  if (includeTranscriptStats) {
165
165
  try {
166
166
  const transcript = await getTranscript(video.id);
167
- const words = segmentsToText(transcript.segments).split(/\s+/).filter(Boolean).length;
167
+ const words = countWords(segmentsToText(transcript.segments));
168
168
  lines.push(`transcript: ${words.toLocaleString()} words (${transcript.language})`);
169
169
  entry.transcriptWords = words;
170
170
  }
@@ -1 +1 @@
1
- {"version":3,"file":"batch.js","sourceRoot":"","sources":["../../src/tools/batch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"batch.js","sourceRoot":"","sources":["../../src/tools/batch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,180 @@
1
+ import { z } from 'zod';
2
+ import type { CallToolResult } from '@modelcontextprotocol/sdk/types.js';
3
+ /**
4
+ * Reading what a brain covers: which channels have one, and how much of each
5
+ * channel it actually reached.
6
+ */
7
+ export declare const listBrainsSchema: {};
8
+ export declare const listBrainsOutputSchema: {
9
+ total: z.ZodNumber;
10
+ count: z.ZodNumber;
11
+ offset: z.ZodNumber;
12
+ hasMore: z.ZodBoolean;
13
+ nextOffset: z.ZodOptional<z.ZodNumber>;
14
+ brains: z.ZodArray<z.ZodObject<{
15
+ channelId: z.ZodString;
16
+ name: z.ZodString;
17
+ handle: z.ZodString;
18
+ channelUrl: z.ZodString;
19
+ language: z.ZodString;
20
+ createdAt: z.ZodString;
21
+ updatedAt: z.ZodString;
22
+ hasProfile: z.ZodBoolean;
23
+ videoCount: z.ZodNumber;
24
+ indexedCount: z.ZodNumber;
25
+ chunkCount: z.ZodNumber;
26
+ }, "strip", z.ZodTypeAny, {
27
+ name: string;
28
+ channelId: string;
29
+ handle: string;
30
+ channelUrl: string;
31
+ videoCount: number;
32
+ chunkCount: number;
33
+ indexedCount: number;
34
+ language: string;
35
+ createdAt: string;
36
+ updatedAt: string;
37
+ hasProfile: boolean;
38
+ }, {
39
+ name: string;
40
+ channelId: string;
41
+ handle: string;
42
+ channelUrl: string;
43
+ videoCount: number;
44
+ chunkCount: number;
45
+ indexedCount: number;
46
+ language: string;
47
+ createdAt: string;
48
+ updatedAt: string;
49
+ hasProfile: boolean;
50
+ }>, "many">;
51
+ };
52
+ export declare function listBrainsHandler(): Promise<CallToolResult>;
53
+ export declare const getBrainInfoSchema: {
54
+ channel: z.ZodString;
55
+ includeVideos: z.ZodDefault<z.ZodBoolean>;
56
+ };
57
+ export declare const getBrainInfoOutputSchema: {
58
+ channelId: z.ZodString;
59
+ name: z.ZodString;
60
+ handle: z.ZodString;
61
+ channelUrl: z.ZodString;
62
+ language: z.ZodString;
63
+ createdAt: z.ZodString;
64
+ updatedAt: z.ZodString;
65
+ hasProfile: z.ZodBoolean;
66
+ stats: z.ZodObject<{
67
+ videoCount: z.ZodNumber;
68
+ excludedCount: z.ZodNumber;
69
+ indexedCount: z.ZodNumber;
70
+ noCaptionsCount: z.ZodNumber;
71
+ failedCount: z.ZodNumber;
72
+ pendingCount: z.ZodNumber;
73
+ chunkCount: z.ZodNumber;
74
+ totalWords: z.ZodNumber;
75
+ medianWordsPerMinute: z.ZodNumber;
76
+ firstUpload: z.ZodOptional<z.ZodString>;
77
+ lastUpload: z.ZodOptional<z.ZodString>;
78
+ uploadsPerMonth: z.ZodArray<z.ZodObject<{
79
+ month: z.ZodString;
80
+ videos: z.ZodNumber;
81
+ }, "strip", z.ZodTypeAny, {
82
+ month: string;
83
+ videos: number;
84
+ }, {
85
+ month: string;
86
+ videos: number;
87
+ }>, "many">;
88
+ recurringPhrases: z.ZodOptional<z.ZodArray<z.ZodObject<{
89
+ phrase: z.ZodString;
90
+ videoCount: z.ZodNumber;
91
+ occurrences: z.ZodNumber;
92
+ }, "strip", z.ZodTypeAny, {
93
+ videoCount: number;
94
+ phrase: string;
95
+ occurrences: number;
96
+ }, {
97
+ videoCount: number;
98
+ phrase: string;
99
+ occurrences: number;
100
+ }>, "many">>;
101
+ }, "strip", z.ZodTypeAny, {
102
+ videoCount: number;
103
+ chunkCount: number;
104
+ excludedCount: number;
105
+ indexedCount: number;
106
+ noCaptionsCount: number;
107
+ failedCount: number;
108
+ pendingCount: number;
109
+ totalWords: number;
110
+ medianWordsPerMinute: number;
111
+ uploadsPerMonth: {
112
+ month: string;
113
+ videos: number;
114
+ }[];
115
+ firstUpload?: string | undefined;
116
+ lastUpload?: string | undefined;
117
+ recurringPhrases?: {
118
+ videoCount: number;
119
+ phrase: string;
120
+ occurrences: number;
121
+ }[] | undefined;
122
+ }, {
123
+ videoCount: number;
124
+ chunkCount: number;
125
+ excludedCount: number;
126
+ indexedCount: number;
127
+ noCaptionsCount: number;
128
+ failedCount: number;
129
+ pendingCount: number;
130
+ totalWords: number;
131
+ medianWordsPerMinute: number;
132
+ uploadsPerMonth: {
133
+ month: string;
134
+ videos: number;
135
+ }[];
136
+ firstUpload?: string | undefined;
137
+ lastUpload?: string | undefined;
138
+ recurringPhrases?: {
139
+ videoCount: number;
140
+ phrase: string;
141
+ occurrences: number;
142
+ }[] | undefined;
143
+ }>;
144
+ videos: z.ZodOptional<z.ZodArray<z.ZodObject<{
145
+ videoId: z.ZodString;
146
+ title: z.ZodString;
147
+ url: z.ZodString;
148
+ uploadDate: z.ZodString;
149
+ durationSeconds: z.ZodNumber;
150
+ state: z.ZodEnum<["pending", "indexed", "no-captions", "failed", "excluded"]>;
151
+ chunkCount: z.ZodNumber;
152
+ wordCount: z.ZodNumber;
153
+ error: z.ZodOptional<z.ZodString>;
154
+ }, "strip", z.ZodTypeAny, {
155
+ title: string;
156
+ durationSeconds: number;
157
+ url: string;
158
+ uploadDate: string;
159
+ videoId: string;
160
+ state: "pending" | "indexed" | "no-captions" | "failed" | "excluded";
161
+ chunkCount: number;
162
+ wordCount: number;
163
+ error?: string | undefined;
164
+ }, {
165
+ title: string;
166
+ durationSeconds: number;
167
+ url: string;
168
+ uploadDate: string;
169
+ videoId: string;
170
+ state: "pending" | "indexed" | "no-captions" | "failed" | "excluded";
171
+ chunkCount: number;
172
+ wordCount: number;
173
+ error?: string | undefined;
174
+ }>, "many">>;
175
+ };
176
+ export declare function getBrainInfoHandler({ channel, includeVideos, }: {
177
+ channel: string;
178
+ includeVideos: boolean;
179
+ }): Promise<CallToolResult>;
180
+ //# sourceMappingURL=brain-info.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brain-info.d.ts","sourceRoot":"","sources":["../../src/tools/brain-info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAYzE;;;GAGG;AAIH,eAAO,MAAM,gBAAgB,IAAK,CAAC;AAEnC,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGlC,CAAC;AAEF,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,cAAc,CAAC,CAgBjE;AAsBD,eAAO,MAAM,kBAAkB;;;CAM9B,CAAC;AAEF,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAWpC,CAAC;AAEF,wBAAsB,mBAAmB,CAAC,EACxC,OAAO,EACP,aAAa,GACd,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,OAAO,CAAC;CACxB,GAAG,OAAO,CAAC,cAAc,CAAC,CA+D1B"}
@@ -0,0 +1,108 @@
1
+ import { z } from 'zod';
2
+ import { brainStatsSchema, brainSummarySchema, brainVideoStateSchema, } from '../brain-schemas.js';
3
+ import { resolveBrain } from '../utils/brain-lookup.js';
4
+ import { hasProfile, listManifests } from '../utils/brain-storage.js';
5
+ import { pageInfo, toolResult } from '../utils/format.js';
6
+ import { paginationShape } from '../schemas.js';
7
+ /**
8
+ * Reading what a brain covers: which channels have one, and how much of each
9
+ * channel it actually reached.
10
+ */
11
+ // -- list_brains ---------------------------------------------------------
12
+ export const listBrainsSchema = {};
13
+ export const listBrainsOutputSchema = {
14
+ brains: z.array(brainSummarySchema),
15
+ ...paginationShape,
16
+ };
17
+ export async function listBrainsHandler() {
18
+ const manifests = await listManifests();
19
+ const brains = manifests.map(summarize);
20
+ const lines = brains.length === 0
21
+ ? ['No brains have been built yet.', '', 'Call build_brain with a channel URL or handle.']
22
+ : brains.map((brain) => `${brain.name} (${brain.handle || brain.channelId}) — ${brain.indexedCount}/${brain.videoCount} videos, ${brain.chunkCount.toLocaleString()} passages, updated ${brain.updatedAt.slice(0, 10)}${brain.hasProfile ? ', has a profile' : ''}`);
23
+ return toolResult(lines.join('\n'), {
24
+ brains,
25
+ ...pageInfo(brains.length, brains.length),
26
+ });
27
+ }
28
+ function summarize(manifest) {
29
+ const { channelId, name, handle, channelUrl } = manifest.channel;
30
+ return {
31
+ channelId,
32
+ name,
33
+ handle,
34
+ channelUrl,
35
+ language: manifest.language,
36
+ createdAt: manifest.createdAt,
37
+ updatedAt: manifest.updatedAt,
38
+ hasProfile: hasProfile(channelId),
39
+ videoCount: manifest.stats.videoCount,
40
+ indexedCount: manifest.stats.indexedCount,
41
+ chunkCount: manifest.stats.chunkCount,
42
+ };
43
+ }
44
+ // -- get_brain_info ------------------------------------------------------
45
+ export const getBrainInfoSchema = {
46
+ channel: z.string().describe('Channel URL, @handle, name, or channel id of an existing brain'),
47
+ includeVideos: z
48
+ .boolean()
49
+ .default(false)
50
+ .describe('List every video and its state. Long for a large channel. Default: false'),
51
+ };
52
+ export const getBrainInfoOutputSchema = {
53
+ channelId: z.string(),
54
+ name: z.string(),
55
+ handle: z.string(),
56
+ channelUrl: z.string(),
57
+ language: z.string(),
58
+ createdAt: z.string(),
59
+ updatedAt: z.string(),
60
+ hasProfile: z.boolean(),
61
+ stats: brainStatsSchema,
62
+ videos: z.array(brainVideoStateSchema).optional(),
63
+ };
64
+ export async function getBrainInfoHandler({ channel, includeVideos, }) {
65
+ const manifest = await resolveBrain(channel);
66
+ const { channelId, name, handle, channelUrl } = manifest.channel;
67
+ const { stats } = manifest;
68
+ const videos = Object.values(manifest.videos);
69
+ const lines = [
70
+ `${name} (${handle || channelId})`,
71
+ `${stats.indexedCount} of ${stats.videoCount} videos indexed from ${manifest.language} captions · ${stats.chunkCount.toLocaleString()} passages · ${stats.totalWords.toLocaleString()} words`,
72
+ `${stats.medianWordsPerMinute} words per minute (median)`,
73
+ stats.firstUpload === undefined
74
+ ? 'No upload dates reported'
75
+ : `Uploads from ${stats.firstUpload} to ${stats.lastUpload ?? stats.firstUpload}`,
76
+ `Updated ${manifest.updatedAt}`,
77
+ ];
78
+ if (stats.noCaptionsCount > 0)
79
+ lines.push(`${stats.noCaptionsCount} videos have no captions`);
80
+ if (stats.excludedCount > 0) {
81
+ lines.push(`${stats.excludedCount} videos are outside the filters this brain was built with`);
82
+ }
83
+ if (stats.failedCount + stats.pendingCount > 0) {
84
+ lines.push(`${stats.failedCount + stats.pendingCount} videos still to read — call build_brain to continue`);
85
+ }
86
+ if (stats.recurringPhrases === undefined) {
87
+ lines.push('', 'Repeated phrases have not been measured yet — the last build did not finish. Call build_brain to complete it.');
88
+ }
89
+ else if (stats.recurringPhrases.length > 0) {
90
+ lines.push('', 'Phrases repeated across videos:', ...stats.recurringPhrases.map((entry) => ` "${entry.phrase}" — ${entry.videoCount} videos, ${entry.occurrences} times`));
91
+ }
92
+ if (includeVideos) {
93
+ lines.push('', ...videos.map((video) => `${video.state.padEnd(12)} ${video.uploadDate || ' '} ${video.title}${video.error === undefined ? '' : ` (${video.error})`}`));
94
+ }
95
+ return toolResult(lines.join('\n'), {
96
+ channelId,
97
+ name,
98
+ handle,
99
+ channelUrl,
100
+ language: manifest.language,
101
+ createdAt: manifest.createdAt,
102
+ updatedAt: manifest.updatedAt,
103
+ hasProfile: hasProfile(channelId),
104
+ stats,
105
+ ...(includeVideos ? { videos } : {}),
106
+ });
107
+ }
108
+ //# sourceMappingURL=brain-info.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brain-info.js","sourceRoot":"","sources":["../../src/tools/brain-info.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,120 @@
1
+ import { z } from 'zod';
2
+ import type { CallToolResult } from '@modelcontextprotocol/sdk/types.js';
3
+ export declare const buildBrainSchema: {
4
+ channel: z.ZodString;
5
+ maxVideos: z.ZodDefault<z.ZodNumber>;
6
+ language: z.ZodDefault<z.ZodString>;
7
+ since: z.ZodOptional<z.ZodString>;
8
+ minDurationSeconds: z.ZodDefault<z.ZodNumber>;
9
+ };
10
+ export declare const buildBrainOutputSchema: {
11
+ channelId: z.ZodString;
12
+ name: z.ZodString;
13
+ handle: z.ZodString;
14
+ channelUrl: z.ZodString;
15
+ language: z.ZodString;
16
+ considered: z.ZodNumber;
17
+ processed: z.ZodNumber;
18
+ skipped: z.ZodNumber;
19
+ excluded: z.ZodNumber;
20
+ stoppedEarly: z.ZodBoolean;
21
+ stopReason: z.ZodOptional<z.ZodString>;
22
+ stats: z.ZodObject<{
23
+ videoCount: z.ZodNumber;
24
+ excludedCount: z.ZodNumber;
25
+ indexedCount: z.ZodNumber;
26
+ noCaptionsCount: z.ZodNumber;
27
+ failedCount: z.ZodNumber;
28
+ pendingCount: z.ZodNumber;
29
+ chunkCount: z.ZodNumber;
30
+ totalWords: z.ZodNumber;
31
+ medianWordsPerMinute: z.ZodNumber;
32
+ firstUpload: z.ZodOptional<z.ZodString>;
33
+ lastUpload: z.ZodOptional<z.ZodString>;
34
+ uploadsPerMonth: z.ZodArray<z.ZodObject<{
35
+ month: z.ZodString;
36
+ videos: z.ZodNumber;
37
+ }, "strip", z.ZodTypeAny, {
38
+ month: string;
39
+ videos: number;
40
+ }, {
41
+ month: string;
42
+ videos: number;
43
+ }>, "many">;
44
+ recurringPhrases: z.ZodOptional<z.ZodArray<z.ZodObject<{
45
+ phrase: z.ZodString;
46
+ videoCount: z.ZodNumber;
47
+ occurrences: z.ZodNumber;
48
+ }, "strip", z.ZodTypeAny, {
49
+ videoCount: number;
50
+ phrase: string;
51
+ occurrences: number;
52
+ }, {
53
+ videoCount: number;
54
+ phrase: string;
55
+ occurrences: number;
56
+ }>, "many">>;
57
+ }, "strip", z.ZodTypeAny, {
58
+ videoCount: number;
59
+ chunkCount: number;
60
+ excludedCount: number;
61
+ indexedCount: number;
62
+ noCaptionsCount: number;
63
+ failedCount: number;
64
+ pendingCount: number;
65
+ totalWords: number;
66
+ medianWordsPerMinute: number;
67
+ uploadsPerMonth: {
68
+ month: string;
69
+ videos: number;
70
+ }[];
71
+ firstUpload?: string | undefined;
72
+ lastUpload?: string | undefined;
73
+ recurringPhrases?: {
74
+ videoCount: number;
75
+ phrase: string;
76
+ occurrences: number;
77
+ }[] | undefined;
78
+ }, {
79
+ videoCount: number;
80
+ chunkCount: number;
81
+ excludedCount: number;
82
+ indexedCount: number;
83
+ noCaptionsCount: number;
84
+ failedCount: number;
85
+ pendingCount: number;
86
+ totalWords: number;
87
+ medianWordsPerMinute: number;
88
+ uploadsPerMonth: {
89
+ month: string;
90
+ videos: number;
91
+ }[];
92
+ firstUpload?: string | undefined;
93
+ lastUpload?: string | undefined;
94
+ recurringPhrases?: {
95
+ videoCount: number;
96
+ phrase: string;
97
+ occurrences: number;
98
+ }[] | undefined;
99
+ }>;
100
+ };
101
+ /**
102
+ * Build or extend a channel brain.
103
+ *
104
+ * Idempotent by construction: it reads what is missing and leaves what is
105
+ * already there, so calling it again after an interruption continues, and
106
+ * calling it on a finished brain picks up new uploads. That is also why there
107
+ * is no separate refresh tool.
108
+ *
109
+ * The filters describe the brain rather than just this call, so a build makes
110
+ * the brain match them: narrowing one discards the passages of videos it now
111
+ * excludes, and widening it reads them again.
112
+ */
113
+ export declare function buildBrainHandler({ channel, maxVideos, language, since, minDurationSeconds, }: {
114
+ channel: string;
115
+ maxVideos: number;
116
+ language: string;
117
+ since?: string;
118
+ minDurationSeconds: number;
119
+ }): Promise<CallToolResult>;
120
+ //# sourceMappingURL=build-brain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-brain.d.ts","sourceRoot":"","sources":["../../src/tools/build-brain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AASzE,eAAO,MAAM,gBAAgB;;;;;;CA6B5B,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAalC,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,wBAAsB,iBAAiB,CAAC,EACtC,OAAO,EACP,SAAS,EACT,QAAQ,EACR,KAAK,EACL,kBAAkB,GACnB,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kBAAkB,EAAE,MAAM,CAAC;CAC5B,GAAG,OAAO,CAAC,cAAc,CAAC,CA+B1B"}