@littlebearapps/australian-history-mcp 0.6.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 (467) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +502 -0
  3. package/dist/clients/datagovau_client.d.ts +61 -0
  4. package/dist/clients/datagovau_client.d.ts.map +1 -0
  5. package/dist/clients/datagovau_client.js +421 -0
  6. package/dist/clients/datagovau_client.js.map +1 -0
  7. package/dist/clients/prov_client.d.ts +64 -0
  8. package/dist/clients/prov_client.d.ts.map +1 -0
  9. package/dist/clients/prov_client.js +393 -0
  10. package/dist/clients/prov_client.js.map +1 -0
  11. package/dist/clients/trove_client.d.ts +77 -0
  12. package/dist/clients/trove_client.d.ts.map +1 -0
  13. package/dist/clients/trove_client.js +374 -0
  14. package/dist/clients/trove_client.js.map +1 -0
  15. package/dist/core/base-client.d.ts +49 -0
  16. package/dist/core/base-client.d.ts.map +1 -0
  17. package/dist/core/base-client.js +116 -0
  18. package/dist/core/base-client.js.map +1 -0
  19. package/dist/core/base-source.d.ts +45 -0
  20. package/dist/core/base-source.d.ts.map +1 -0
  21. package/dist/core/base-source.js +19 -0
  22. package/dist/core/base-source.js.map +1 -0
  23. package/dist/core/harvest-runner.d.ts +26 -0
  24. package/dist/core/harvest-runner.d.ts.map +1 -0
  25. package/dist/core/harvest-runner.js +82 -0
  26. package/dist/core/harvest-runner.js.map +1 -0
  27. package/dist/core/index.d.ts +10 -0
  28. package/dist/core/index.d.ts.map +1 -0
  29. package/dist/core/index.js +14 -0
  30. package/dist/core/index.js.map +1 -0
  31. package/dist/core/types.d.ts +80 -0
  32. package/dist/core/types.d.ts.map +1 -0
  33. package/dist/core/types.js +52 -0
  34. package/dist/core/types.js.map +1 -0
  35. package/dist/index.d.ts +21 -0
  36. package/dist/index.d.ts.map +1 -0
  37. package/dist/index.js +103 -0
  38. package/dist/index.js.map +1 -0
  39. package/dist/registry.d.ts +65 -0
  40. package/dist/registry.d.ts.map +1 -0
  41. package/dist/registry.js +112 -0
  42. package/dist/registry.js.map +1 -0
  43. package/dist/sources/acmi/client.d.ts +47 -0
  44. package/dist/sources/acmi/client.d.ts.map +1 -0
  45. package/dist/sources/acmi/client.js +131 -0
  46. package/dist/sources/acmi/client.js.map +1 -0
  47. package/dist/sources/acmi/index.d.ts +12 -0
  48. package/dist/sources/acmi/index.d.ts.map +1 -0
  49. package/dist/sources/acmi/index.js +35 -0
  50. package/dist/sources/acmi/index.js.map +1 -0
  51. package/dist/sources/acmi/tools/get-constellation.d.ts +6 -0
  52. package/dist/sources/acmi/tools/get-constellation.d.ts.map +1 -0
  53. package/dist/sources/acmi/tools/get-constellation.js +53 -0
  54. package/dist/sources/acmi/tools/get-constellation.js.map +1 -0
  55. package/dist/sources/acmi/tools/get-creator.d.ts +6 -0
  56. package/dist/sources/acmi/tools/get-creator.d.ts.map +1 -0
  57. package/dist/sources/acmi/tools/get-creator.js +52 -0
  58. package/dist/sources/acmi/tools/get-creator.js.map +1 -0
  59. package/dist/sources/acmi/tools/get-work.d.ts +6 -0
  60. package/dist/sources/acmi/tools/get-work.d.ts.map +1 -0
  61. package/dist/sources/acmi/tools/get-work.js +103 -0
  62. package/dist/sources/acmi/tools/get-work.js.map +1 -0
  63. package/dist/sources/acmi/tools/harvest.d.ts +6 -0
  64. package/dist/sources/acmi/tools/harvest.d.ts.map +1 -0
  65. package/dist/sources/acmi/tools/harvest.js +95 -0
  66. package/dist/sources/acmi/tools/harvest.js.map +1 -0
  67. package/dist/sources/acmi/tools/list-constellations.d.ts +6 -0
  68. package/dist/sources/acmi/tools/list-constellations.d.ts.map +1 -0
  69. package/dist/sources/acmi/tools/list-constellations.js +44 -0
  70. package/dist/sources/acmi/tools/list-constellations.js.map +1 -0
  71. package/dist/sources/acmi/tools/list-creators.d.ts +6 -0
  72. package/dist/sources/acmi/tools/list-creators.d.ts.map +1 -0
  73. package/dist/sources/acmi/tools/list-creators.js +46 -0
  74. package/dist/sources/acmi/tools/list-creators.js.map +1 -0
  75. package/dist/sources/acmi/tools/search-works.d.ts +6 -0
  76. package/dist/sources/acmi/tools/search-works.d.ts.map +1 -0
  77. package/dist/sources/acmi/tools/search-works.js +73 -0
  78. package/dist/sources/acmi/tools/search-works.js.map +1 -0
  79. package/dist/sources/acmi/types.d.ts +135 -0
  80. package/dist/sources/acmi/types.d.ts.map +1 -0
  81. package/dist/sources/acmi/types.js +5 -0
  82. package/dist/sources/acmi/types.js.map +1 -0
  83. package/dist/sources/ala/client.d.ts +79 -0
  84. package/dist/sources/ala/client.d.ts.map +1 -0
  85. package/dist/sources/ala/client.js +556 -0
  86. package/dist/sources/ala/client.js.map +1 -0
  87. package/dist/sources/ala/index.d.ts +12 -0
  88. package/dist/sources/ala/index.d.ts.map +1 -0
  89. package/dist/sources/ala/index.js +37 -0
  90. package/dist/sources/ala/index.js.map +1 -0
  91. package/dist/sources/ala/tools/get-species-list.d.ts +6 -0
  92. package/dist/sources/ala/tools/get-species-list.d.ts.map +1 -0
  93. package/dist/sources/ala/tools/get-species-list.js +56 -0
  94. package/dist/sources/ala/tools/get-species-list.js.map +1 -0
  95. package/dist/sources/ala/tools/get-species.d.ts +6 -0
  96. package/dist/sources/ala/tools/get-species.d.ts.map +1 -0
  97. package/dist/sources/ala/tools/get-species.js +81 -0
  98. package/dist/sources/ala/tools/get-species.js.map +1 -0
  99. package/dist/sources/ala/tools/harvest.d.ts +6 -0
  100. package/dist/sources/ala/tools/harvest.d.ts.map +1 -0
  101. package/dist/sources/ala/tools/harvest.js +133 -0
  102. package/dist/sources/ala/tools/harvest.js.map +1 -0
  103. package/dist/sources/ala/tools/list-species-lists.d.ts +6 -0
  104. package/dist/sources/ala/tools/list-species-lists.d.ts.map +1 -0
  105. package/dist/sources/ala/tools/list-species-lists.js +60 -0
  106. package/dist/sources/ala/tools/list-species-lists.js.map +1 -0
  107. package/dist/sources/ala/tools/match-name.d.ts +6 -0
  108. package/dist/sources/ala/tools/match-name.d.ts.map +1 -0
  109. package/dist/sources/ala/tools/match-name.js +66 -0
  110. package/dist/sources/ala/tools/match-name.js.map +1 -0
  111. package/dist/sources/ala/tools/search-images.d.ts +6 -0
  112. package/dist/sources/ala/tools/search-images.d.ts.map +1 -0
  113. package/dist/sources/ala/tools/search-images.js +64 -0
  114. package/dist/sources/ala/tools/search-images.js.map +1 -0
  115. package/dist/sources/ala/tools/search-occurrences.d.ts +6 -0
  116. package/dist/sources/ala/tools/search-occurrences.d.ts.map +1 -0
  117. package/dist/sources/ala/tools/search-occurrences.js +134 -0
  118. package/dist/sources/ala/tools/search-occurrences.js.map +1 -0
  119. package/dist/sources/ala/tools/search-species.d.ts +6 -0
  120. package/dist/sources/ala/tools/search-species.d.ts.map +1 -0
  121. package/dist/sources/ala/tools/search-species.js +68 -0
  122. package/dist/sources/ala/tools/search-species.js.map +1 -0
  123. package/dist/sources/ala/types.d.ts +255 -0
  124. package/dist/sources/ala/types.d.ts.map +1 -0
  125. package/dist/sources/ala/types.js +7 -0
  126. package/dist/sources/ala/types.js.map +1 -0
  127. package/dist/sources/datagovau/client.d.ts +68 -0
  128. package/dist/sources/datagovau/client.d.ts.map +1 -0
  129. package/dist/sources/datagovau/client.js +344 -0
  130. package/dist/sources/datagovau/client.js.map +1 -0
  131. package/dist/sources/datagovau/index.d.ts +12 -0
  132. package/dist/sources/datagovau/index.d.ts.map +1 -0
  133. package/dist/sources/datagovau/index.js +37 -0
  134. package/dist/sources/datagovau/index.js.map +1 -0
  135. package/dist/sources/datagovau/tools/autocomplete.d.ts +6 -0
  136. package/dist/sources/datagovau/tools/autocomplete.d.ts.map +1 -0
  137. package/dist/sources/datagovau/tools/autocomplete.js +49 -0
  138. package/dist/sources/datagovau/tools/autocomplete.js.map +1 -0
  139. package/dist/sources/datagovau/tools/browse.d.ts +25 -0
  140. package/dist/sources/datagovau/tools/browse.d.ts.map +1 -0
  141. package/dist/sources/datagovau/tools/browse.js +205 -0
  142. package/dist/sources/datagovau/tools/browse.js.map +1 -0
  143. package/dist/sources/datagovau/tools/dataset.d.ts +17 -0
  144. package/dist/sources/datagovau/tools/dataset.d.ts.map +1 -0
  145. package/dist/sources/datagovau/tools/dataset.js +177 -0
  146. package/dist/sources/datagovau/tools/dataset.js.map +1 -0
  147. package/dist/sources/datagovau/tools/harvest.d.ts +6 -0
  148. package/dist/sources/datagovau/tools/harvest.d.ts.map +1 -0
  149. package/dist/sources/datagovau/tools/harvest.js +99 -0
  150. package/dist/sources/datagovau/tools/harvest.js.map +1 -0
  151. package/dist/sources/datagovau/tools/search.d.ts +6 -0
  152. package/dist/sources/datagovau/tools/search.d.ts.map +1 -0
  153. package/dist/sources/datagovau/tools/search.js +85 -0
  154. package/dist/sources/datagovau/tools/search.js.map +1 -0
  155. package/dist/sources/datagovau/types.d.ts +81 -0
  156. package/dist/sources/datagovau/types.d.ts.map +1 -0
  157. package/dist/sources/datagovau/types.js +5 -0
  158. package/dist/sources/datagovau/types.js.map +1 -0
  159. package/dist/sources/ga-hap/client.d.ts +65 -0
  160. package/dist/sources/ga-hap/client.d.ts.map +1 -0
  161. package/dist/sources/ga-hap/client.js +247 -0
  162. package/dist/sources/ga-hap/client.js.map +1 -0
  163. package/dist/sources/ga-hap/index.d.ts +12 -0
  164. package/dist/sources/ga-hap/index.d.ts.map +1 -0
  165. package/dist/sources/ga-hap/index.js +23 -0
  166. package/dist/sources/ga-hap/index.js.map +1 -0
  167. package/dist/sources/ga-hap/tools/get-photo.d.ts +6 -0
  168. package/dist/sources/ga-hap/tools/get-photo.d.ts.map +1 -0
  169. package/dist/sources/ga-hap/tools/get-photo.js +89 -0
  170. package/dist/sources/ga-hap/tools/get-photo.js.map +1 -0
  171. package/dist/sources/ga-hap/tools/harvest.d.ts +6 -0
  172. package/dist/sources/ga-hap/tools/harvest.d.ts.map +1 -0
  173. package/dist/sources/ga-hap/tools/harvest.js +87 -0
  174. package/dist/sources/ga-hap/tools/harvest.js.map +1 -0
  175. package/dist/sources/ga-hap/tools/search.d.ts +6 -0
  176. package/dist/sources/ga-hap/tools/search.d.ts.map +1 -0
  177. package/dist/sources/ga-hap/tools/search.js +97 -0
  178. package/dist/sources/ga-hap/tools/search.js.map +1 -0
  179. package/dist/sources/ga-hap/types.d.ts +178 -0
  180. package/dist/sources/ga-hap/types.d.ts.map +1 -0
  181. package/dist/sources/ga-hap/types.js +30 -0
  182. package/dist/sources/ga-hap/types.js.map +1 -0
  183. package/dist/sources/iiif/client.d.ts +37 -0
  184. package/dist/sources/iiif/client.d.ts.map +1 -0
  185. package/dist/sources/iiif/client.js +142 -0
  186. package/dist/sources/iiif/client.js.map +1 -0
  187. package/dist/sources/iiif/index.d.ts +18 -0
  188. package/dist/sources/iiif/index.d.ts.map +1 -0
  189. package/dist/sources/iiif/index.js +31 -0
  190. package/dist/sources/iiif/index.js.map +1 -0
  191. package/dist/sources/iiif/tools/get-image-url.d.ts +9 -0
  192. package/dist/sources/iiif/tools/get-image-url.d.ts.map +1 -0
  193. package/dist/sources/iiif/tools/get-image-url.js +101 -0
  194. package/dist/sources/iiif/tools/get-image-url.js.map +1 -0
  195. package/dist/sources/iiif/tools/get-manifest.d.ts +9 -0
  196. package/dist/sources/iiif/tools/get-manifest.d.ts.map +1 -0
  197. package/dist/sources/iiif/tools/get-manifest.js +87 -0
  198. package/dist/sources/iiif/tools/get-manifest.js.map +1 -0
  199. package/dist/sources/iiif/types.d.ts +123 -0
  200. package/dist/sources/iiif/types.d.ts.map +1 -0
  201. package/dist/sources/iiif/types.js +26 -0
  202. package/dist/sources/iiif/types.js.map +1 -0
  203. package/dist/sources/museums-victoria/client.d.ts +64 -0
  204. package/dist/sources/museums-victoria/client.d.ts.map +1 -0
  205. package/dist/sources/museums-victoria/client.js +358 -0
  206. package/dist/sources/museums-victoria/client.js.map +1 -0
  207. package/dist/sources/museums-victoria/index.d.ts +12 -0
  208. package/dist/sources/museums-victoria/index.d.ts.map +1 -0
  209. package/dist/sources/museums-victoria/index.js +30 -0
  210. package/dist/sources/museums-victoria/index.js.map +1 -0
  211. package/dist/sources/museums-victoria/tools/harvest.d.ts +6 -0
  212. package/dist/sources/museums-victoria/tools/harvest.d.ts.map +1 -0
  213. package/dist/sources/museums-victoria/tools/harvest.js +120 -0
  214. package/dist/sources/museums-victoria/tools/harvest.js.map +1 -0
  215. package/dist/sources/museums-victoria/tools/records.d.ts +21 -0
  216. package/dist/sources/museums-victoria/tools/records.d.ts.map +1 -0
  217. package/dist/sources/museums-victoria/tools/records.js +225 -0
  218. package/dist/sources/museums-victoria/tools/records.js.map +1 -0
  219. package/dist/sources/museums-victoria/tools/search.d.ts +6 -0
  220. package/dist/sources/museums-victoria/tools/search.d.ts.map +1 -0
  221. package/dist/sources/museums-victoria/tools/search.js +147 -0
  222. package/dist/sources/museums-victoria/tools/search.js.map +1 -0
  223. package/dist/sources/museums-victoria/types.d.ts +153 -0
  224. package/dist/sources/museums-victoria/types.d.ts.map +1 -0
  225. package/dist/sources/museums-victoria/types.js +5 -0
  226. package/dist/sources/museums-victoria/types.js.map +1 -0
  227. package/dist/sources/nma/client.d.ts +52 -0
  228. package/dist/sources/nma/client.d.ts.map +1 -0
  229. package/dist/sources/nma/client.js +175 -0
  230. package/dist/sources/nma/client.js.map +1 -0
  231. package/dist/sources/nma/index.d.ts +12 -0
  232. package/dist/sources/nma/index.d.ts.map +1 -0
  233. package/dist/sources/nma/index.js +39 -0
  234. package/dist/sources/nma/index.js.map +1 -0
  235. package/dist/sources/nma/tools/get-media.d.ts +6 -0
  236. package/dist/sources/nma/tools/get-media.d.ts.map +1 -0
  237. package/dist/sources/nma/tools/get-media.js +58 -0
  238. package/dist/sources/nma/tools/get-media.js.map +1 -0
  239. package/dist/sources/nma/tools/get-object.d.ts +6 -0
  240. package/dist/sources/nma/tools/get-object.d.ts.map +1 -0
  241. package/dist/sources/nma/tools/get-object.js +83 -0
  242. package/dist/sources/nma/tools/get-object.js.map +1 -0
  243. package/dist/sources/nma/tools/get-party.d.ts +6 -0
  244. package/dist/sources/nma/tools/get-party.d.ts.map +1 -0
  245. package/dist/sources/nma/tools/get-party.js +63 -0
  246. package/dist/sources/nma/tools/get-party.js.map +1 -0
  247. package/dist/sources/nma/tools/get-place.d.ts +6 -0
  248. package/dist/sources/nma/tools/get-place.d.ts.map +1 -0
  249. package/dist/sources/nma/tools/get-place.js +50 -0
  250. package/dist/sources/nma/tools/get-place.js.map +1 -0
  251. package/dist/sources/nma/tools/harvest.d.ts +6 -0
  252. package/dist/sources/nma/tools/harvest.d.ts.map +1 -0
  253. package/dist/sources/nma/tools/harvest.js +91 -0
  254. package/dist/sources/nma/tools/harvest.js.map +1 -0
  255. package/dist/sources/nma/tools/search-media.d.ts +6 -0
  256. package/dist/sources/nma/tools/search-media.d.ts.map +1 -0
  257. package/dist/sources/nma/tools/search-media.js +66 -0
  258. package/dist/sources/nma/tools/search-media.js.map +1 -0
  259. package/dist/sources/nma/tools/search-objects.d.ts +6 -0
  260. package/dist/sources/nma/tools/search-objects.d.ts.map +1 -0
  261. package/dist/sources/nma/tools/search-objects.js +70 -0
  262. package/dist/sources/nma/tools/search-objects.js.map +1 -0
  263. package/dist/sources/nma/tools/search-parties.d.ts +6 -0
  264. package/dist/sources/nma/tools/search-parties.d.ts.map +1 -0
  265. package/dist/sources/nma/tools/search-parties.js +64 -0
  266. package/dist/sources/nma/tools/search-parties.js.map +1 -0
  267. package/dist/sources/nma/tools/search-places.d.ts +6 -0
  268. package/dist/sources/nma/tools/search-places.d.ts.map +1 -0
  269. package/dist/sources/nma/tools/search-places.js +53 -0
  270. package/dist/sources/nma/tools/search-places.js.map +1 -0
  271. package/dist/sources/nma/types.d.ts +135 -0
  272. package/dist/sources/nma/types.d.ts.map +1 -0
  273. package/dist/sources/nma/types.js +5 -0
  274. package/dist/sources/nma/types.js.map +1 -0
  275. package/dist/sources/pm-transcripts/client.d.ts +39 -0
  276. package/dist/sources/pm-transcripts/client.d.ts.map +1 -0
  277. package/dist/sources/pm-transcripts/client.js +192 -0
  278. package/dist/sources/pm-transcripts/client.js.map +1 -0
  279. package/dist/sources/pm-transcripts/index.d.ts +13 -0
  280. package/dist/sources/pm-transcripts/index.d.ts.map +1 -0
  281. package/dist/sources/pm-transcripts/index.js +23 -0
  282. package/dist/sources/pm-transcripts/index.js.map +1 -0
  283. package/dist/sources/pm-transcripts/tools/get-transcript.d.ts +6 -0
  284. package/dist/sources/pm-transcripts/tools/get-transcript.d.ts.map +1 -0
  285. package/dist/sources/pm-transcripts/tools/get-transcript.js +52 -0
  286. package/dist/sources/pm-transcripts/tools/get-transcript.js.map +1 -0
  287. package/dist/sources/pm-transcripts/tools/harvest.d.ts +9 -0
  288. package/dist/sources/pm-transcripts/tools/harvest.d.ts.map +1 -0
  289. package/dist/sources/pm-transcripts/tools/harvest.js +213 -0
  290. package/dist/sources/pm-transcripts/tools/harvest.js.map +1 -0
  291. package/dist/sources/pm-transcripts/types.d.ts +54 -0
  292. package/dist/sources/pm-transcripts/types.d.ts.map +1 -0
  293. package/dist/sources/pm-transcripts/types.js +8 -0
  294. package/dist/sources/pm-transcripts/types.js.map +1 -0
  295. package/dist/sources/prov/client.d.ts +46 -0
  296. package/dist/sources/prov/client.d.ts.map +1 -0
  297. package/dist/sources/prov/client.js +297 -0
  298. package/dist/sources/prov/client.js.map +1 -0
  299. package/dist/sources/prov/index.d.ts +12 -0
  300. package/dist/sources/prov/index.d.ts.map +1 -0
  301. package/dist/sources/prov/index.js +31 -0
  302. package/dist/sources/prov/index.js.map +1 -0
  303. package/dist/sources/prov/tools/get-agency.d.ts +6 -0
  304. package/dist/sources/prov/tools/get-agency.d.ts.map +1 -0
  305. package/dist/sources/prov/tools/get-agency.js +49 -0
  306. package/dist/sources/prov/tools/get-agency.js.map +1 -0
  307. package/dist/sources/prov/tools/get-series.d.ts +6 -0
  308. package/dist/sources/prov/tools/get-series.d.ts.map +1 -0
  309. package/dist/sources/prov/tools/get-series.js +51 -0
  310. package/dist/sources/prov/tools/get-series.js.map +1 -0
  311. package/dist/sources/prov/tools/harvest.d.ts +6 -0
  312. package/dist/sources/prov/tools/harvest.d.ts.map +1 -0
  313. package/dist/sources/prov/tools/harvest.js +112 -0
  314. package/dist/sources/prov/tools/harvest.js.map +1 -0
  315. package/dist/sources/prov/tools/images.d.ts +9 -0
  316. package/dist/sources/prov/tools/images.d.ts.map +1 -0
  317. package/dist/sources/prov/tools/images.js +67 -0
  318. package/dist/sources/prov/tools/images.js.map +1 -0
  319. package/dist/sources/prov/tools/search.d.ts +6 -0
  320. package/dist/sources/prov/tools/search.d.ts.map +1 -0
  321. package/dist/sources/prov/tools/search.js +103 -0
  322. package/dist/sources/prov/tools/search.js.map +1 -0
  323. package/dist/sources/prov/types.d.ts +75 -0
  324. package/dist/sources/prov/types.d.ts.map +1 -0
  325. package/dist/sources/prov/types.js +31 -0
  326. package/dist/sources/prov/types.js.map +1 -0
  327. package/dist/sources/trove/client.d.ts +128 -0
  328. package/dist/sources/trove/client.d.ts.map +1 -0
  329. package/dist/sources/trove/client.js +1008 -0
  330. package/dist/sources/trove/client.js.map +1 -0
  331. package/dist/sources/trove/index.d.ts +12 -0
  332. package/dist/sources/trove/index.d.ts.map +1 -0
  333. package/dist/sources/trove/index.js +53 -0
  334. package/dist/sources/trove/index.js.map +1 -0
  335. package/dist/sources/trove/tools/get-contributor.d.ts +6 -0
  336. package/dist/sources/trove/tools/get-contributor.d.ts.map +1 -0
  337. package/dist/sources/trove/tools/get-contributor.js +54 -0
  338. package/dist/sources/trove/tools/get-contributor.js.map +1 -0
  339. package/dist/sources/trove/tools/get-list.d.ts +6 -0
  340. package/dist/sources/trove/tools/get-list.d.ts.map +1 -0
  341. package/dist/sources/trove/tools/get-list.js +95 -0
  342. package/dist/sources/trove/tools/get-list.js.map +1 -0
  343. package/dist/sources/trove/tools/get-magazine-title.d.ts +6 -0
  344. package/dist/sources/trove/tools/get-magazine-title.d.ts.map +1 -0
  345. package/dist/sources/trove/tools/get-magazine-title.js +96 -0
  346. package/dist/sources/trove/tools/get-magazine-title.js.map +1 -0
  347. package/dist/sources/trove/tools/get-person.d.ts +6 -0
  348. package/dist/sources/trove/tools/get-person.d.ts.map +1 -0
  349. package/dist/sources/trove/tools/get-person.js +64 -0
  350. package/dist/sources/trove/tools/get-person.js.map +1 -0
  351. package/dist/sources/trove/tools/get-work.d.ts +6 -0
  352. package/dist/sources/trove/tools/get-work.d.ts.map +1 -0
  353. package/dist/sources/trove/tools/get-work.js +104 -0
  354. package/dist/sources/trove/tools/get-work.js.map +1 -0
  355. package/dist/sources/trove/tools/harvest.d.ts +6 -0
  356. package/dist/sources/trove/tools/harvest.d.ts.map +1 -0
  357. package/dist/sources/trove/tools/harvest.js +127 -0
  358. package/dist/sources/trove/tools/harvest.js.map +1 -0
  359. package/dist/sources/trove/tools/list-contributors.d.ts +6 -0
  360. package/dist/sources/trove/tools/list-contributors.d.ts.map +1 -0
  361. package/dist/sources/trove/tools/list-contributors.js +59 -0
  362. package/dist/sources/trove/tools/list-contributors.js.map +1 -0
  363. package/dist/sources/trove/tools/list-magazine-titles.d.ts +6 -0
  364. package/dist/sources/trove/tools/list-magazine-titles.d.ts.map +1 -0
  365. package/dist/sources/trove/tools/list-magazine-titles.js +42 -0
  366. package/dist/sources/trove/tools/list-magazine-titles.js.map +1 -0
  367. package/dist/sources/trove/tools/newspaper.d.ts +17 -0
  368. package/dist/sources/trove/tools/newspaper.d.ts.map +1 -0
  369. package/dist/sources/trove/tools/newspaper.js +210 -0
  370. package/dist/sources/trove/tools/newspaper.js.map +1 -0
  371. package/dist/sources/trove/tools/search-people.d.ts +6 -0
  372. package/dist/sources/trove/tools/search-people.d.ts.map +1 -0
  373. package/dist/sources/trove/tools/search-people.js +72 -0
  374. package/dist/sources/trove/tools/search-people.js.map +1 -0
  375. package/dist/sources/trove/tools/search.d.ts +6 -0
  376. package/dist/sources/trove/tools/search.d.ts.map +1 -0
  377. package/dist/sources/trove/tools/search.js +219 -0
  378. package/dist/sources/trove/tools/search.js.map +1 -0
  379. package/dist/sources/trove/types.d.ts +257 -0
  380. package/dist/sources/trove/types.d.ts.map +1 -0
  381. package/dist/sources/trove/types.js +38 -0
  382. package/dist/sources/trove/types.js.map +1 -0
  383. package/dist/sources/vhd/client.d.ts +47 -0
  384. package/dist/sources/vhd/client.d.ts.map +1 -0
  385. package/dist/sources/vhd/client.js +158 -0
  386. package/dist/sources/vhd/client.js.map +1 -0
  387. package/dist/sources/vhd/index.d.ts +12 -0
  388. package/dist/sources/vhd/index.d.ts.map +1 -0
  389. package/dist/sources/vhd/index.js +39 -0
  390. package/dist/sources/vhd/index.js.map +1 -0
  391. package/dist/sources/vhd/tools/get-place.d.ts +6 -0
  392. package/dist/sources/vhd/tools/get-place.d.ts.map +1 -0
  393. package/dist/sources/vhd/tools/get-place.js +71 -0
  394. package/dist/sources/vhd/tools/get-place.js.map +1 -0
  395. package/dist/sources/vhd/tools/get-shipwreck.d.ts +6 -0
  396. package/dist/sources/vhd/tools/get-shipwreck.d.ts.map +1 -0
  397. package/dist/sources/vhd/tools/get-shipwreck.js +60 -0
  398. package/dist/sources/vhd/tools/get-shipwreck.js.map +1 -0
  399. package/dist/sources/vhd/tools/harvest.d.ts +6 -0
  400. package/dist/sources/vhd/tools/harvest.d.ts.map +1 -0
  401. package/dist/sources/vhd/tools/harvest.js +109 -0
  402. package/dist/sources/vhd/tools/harvest.js.map +1 -0
  403. package/dist/sources/vhd/tools/list-architectural-styles.d.ts +6 -0
  404. package/dist/sources/vhd/tools/list-architectural-styles.d.ts.map +1 -0
  405. package/dist/sources/vhd/tools/list-architectural-styles.js +33 -0
  406. package/dist/sources/vhd/tools/list-architectural-styles.js.map +1 -0
  407. package/dist/sources/vhd/tools/list-municipalities.d.ts +6 -0
  408. package/dist/sources/vhd/tools/list-municipalities.d.ts.map +1 -0
  409. package/dist/sources/vhd/tools/list-municipalities.js +33 -0
  410. package/dist/sources/vhd/tools/list-municipalities.js.map +1 -0
  411. package/dist/sources/vhd/tools/list-periods.d.ts +6 -0
  412. package/dist/sources/vhd/tools/list-periods.d.ts.map +1 -0
  413. package/dist/sources/vhd/tools/list-periods.js +33 -0
  414. package/dist/sources/vhd/tools/list-periods.js.map +1 -0
  415. package/dist/sources/vhd/tools/list-themes.d.ts +6 -0
  416. package/dist/sources/vhd/tools/list-themes.d.ts.map +1 -0
  417. package/dist/sources/vhd/tools/list-themes.js +34 -0
  418. package/dist/sources/vhd/tools/list-themes.js.map +1 -0
  419. package/dist/sources/vhd/tools/search-places.d.ts +6 -0
  420. package/dist/sources/vhd/tools/search-places.d.ts.map +1 -0
  421. package/dist/sources/vhd/tools/search-places.js +71 -0
  422. package/dist/sources/vhd/tools/search-places.js.map +1 -0
  423. package/dist/sources/vhd/tools/search-shipwrecks.d.ts +6 -0
  424. package/dist/sources/vhd/tools/search-shipwrecks.d.ts.map +1 -0
  425. package/dist/sources/vhd/tools/search-shipwrecks.js +52 -0
  426. package/dist/sources/vhd/tools/search-shipwrecks.js.map +1 -0
  427. package/dist/sources/vhd/types.d.ts +179 -0
  428. package/dist/sources/vhd/types.d.ts.map +1 -0
  429. package/dist/sources/vhd/types.js +5 -0
  430. package/dist/sources/vhd/types.js.map +1 -0
  431. package/dist/tools/datagovau_browse.d.ts +96 -0
  432. package/dist/tools/datagovau_browse.d.ts.map +1 -0
  433. package/dist/tools/datagovau_browse.js +297 -0
  434. package/dist/tools/datagovau_browse.js.map +1 -0
  435. package/dist/tools/datagovau_dataset.d.ts +79 -0
  436. package/dist/tools/datagovau_dataset.d.ts.map +1 -0
  437. package/dist/tools/datagovau_dataset.js +246 -0
  438. package/dist/tools/datagovau_dataset.js.map +1 -0
  439. package/dist/tools/datagovau_search.d.ts +58 -0
  440. package/dist/tools/datagovau_search.d.ts.map +1 -0
  441. package/dist/tools/datagovau_search.js +112 -0
  442. package/dist/tools/datagovau_search.js.map +1 -0
  443. package/dist/tools/harvest.d.ts +175 -0
  444. package/dist/tools/harvest.d.ts.map +1 -0
  445. package/dist/tools/harvest.js +426 -0
  446. package/dist/tools/harvest.js.map +1 -0
  447. package/dist/tools/prov_images.d.ts +38 -0
  448. package/dist/tools/prov_images.d.ts.map +1 -0
  449. package/dist/tools/prov_images.js +87 -0
  450. package/dist/tools/prov_images.js.map +1 -0
  451. package/dist/tools/prov_search.d.ts +60 -0
  452. package/dist/tools/prov_search.d.ts.map +1 -0
  453. package/dist/tools/prov_search.js +131 -0
  454. package/dist/tools/prov_search.js.map +1 -0
  455. package/dist/tools/trove_newspaper.d.ts +100 -0
  456. package/dist/tools/trove_newspaper.d.ts.map +1 -0
  457. package/dist/tools/trove_newspaper.js +282 -0
  458. package/dist/tools/trove_newspaper.js.map +1 -0
  459. package/dist/tools/trove_search.d.ts +62 -0
  460. package/dist/tools/trove_search.d.ts.map +1 -0
  461. package/dist/tools/trove_search.js +143 -0
  462. package/dist/tools/trove_search.js.map +1 -0
  463. package/dist/types.d.ts +231 -0
  464. package/dist/types.d.ts.map +1 -0
  465. package/dist/types.js +5 -0
  466. package/dist/types.js.map +1 -0
  467. package/package.json +73 -0
@@ -0,0 +1,192 @@
1
+ /**
2
+ * Prime Ministerial Transcripts API Client
3
+ *
4
+ * Provides access to transcripts of Australian Prime Ministers' speeches,
5
+ * media releases, and interviews.
6
+ *
7
+ * API Documentation: https://pmtranscripts.pmc.gov.au/developers
8
+ * No API key required.
9
+ */
10
+ import { BaseClient } from '../../core/base-client.js';
11
+ const PM_TRANSCRIPTS_BASE = 'https://pmtranscripts.pmc.gov.au';
12
+ /**
13
+ * Simple XML text extractor - gets content between tags
14
+ */
15
+ function extractXmlText(xml, tagName) {
16
+ const regex = new RegExp(`<${tagName}>([\\s\\S]*?)</${tagName}>`, 'i');
17
+ const match = xml.match(regex);
18
+ return match ? match[1].trim() : '';
19
+ }
20
+ /**
21
+ * Extract multiple values from repeated tags
22
+ */
23
+ function extractXmlArray(xml, tagName) {
24
+ const regex = new RegExp(`<${tagName}>([\\s\\S]*?)</${tagName}>`, 'gi');
25
+ const matches = [...xml.matchAll(regex)];
26
+ return matches.map((m) => m[1].trim()).filter((s) => s.length > 0);
27
+ }
28
+ /**
29
+ * Parse a transcript XML response into PMTranscript object
30
+ * API returns: <response><item key="0">...fields...</item></response>
31
+ */
32
+ function parseTranscriptXml(xml) {
33
+ // Find the item element (API returns <response><item key="0">...</item></response>)
34
+ const itemMatch = xml.match(/<item[^>]*>([\s\S]*?)<\/item>/i);
35
+ if (!itemMatch) {
36
+ return null;
37
+ }
38
+ const itemXml = itemMatch[1];
39
+ const transcriptId = parseInt(extractXmlText(itemXml, 'transcript-id'), 10);
40
+ if (isNaN(transcriptId)) {
41
+ return null;
42
+ }
43
+ // Handle content which may be in CDATA
44
+ let content = extractXmlText(itemXml, 'content');
45
+ // Extract from CDATA if present
46
+ const cdataMatch = content.match(/<!\[CDATA\[([\s\S]*?)\]\]>/);
47
+ if (cdataMatch) {
48
+ content = cdataMatch[1];
49
+ }
50
+ // API uses field_date instead of release-date
51
+ const releaseDate = extractXmlText(itemXml, 'field_date') || extractXmlText(itemXml, 'release-date');
52
+ return {
53
+ transcriptId,
54
+ title: extractXmlText(itemXml, 'title'),
55
+ primeMinister: extractXmlText(itemXml, 'prime-minister'),
56
+ periodOfService: extractXmlText(itemXml, 'period-of-service'),
57
+ releaseDate,
58
+ releaseType: extractXmlText(itemXml, 'release-type'),
59
+ documentUrl: extractXmlText(itemXml, 'document') || null,
60
+ subjects: extractXmlArray(itemXml, 'subject'),
61
+ content,
62
+ };
63
+ }
64
+ /**
65
+ * Parse sitemap XML to extract transcript references
66
+ */
67
+ function parseSitemapXml(xml) {
68
+ const refs = [];
69
+ // Extract all <url> elements
70
+ const urlMatches = xml.matchAll(/<url>([\s\S]*?)<\/url>/gi);
71
+ for (const match of urlMatches) {
72
+ const urlXml = match[1];
73
+ const loc = extractXmlText(urlXml, 'loc');
74
+ // Extract ID from URL like /release/transcript-12345
75
+ const idMatch = loc.match(/transcript-(\d+)/i);
76
+ if (idMatch) {
77
+ refs.push({
78
+ id: parseInt(idMatch[1], 10),
79
+ url: loc,
80
+ });
81
+ }
82
+ }
83
+ return refs;
84
+ }
85
+ export class PMTranscriptsClient extends BaseClient {
86
+ constructor() {
87
+ super(PM_TRANSCRIPTS_BASE, { userAgent: 'australian-history-mcp/0.6.0' });
88
+ }
89
+ /**
90
+ * Get a single transcript by ID
91
+ */
92
+ async getTranscript(id) {
93
+ const url = this.buildUrl('/query', { transcript: id.toString() });
94
+ try {
95
+ const response = await fetch(url, {
96
+ headers: {
97
+ Accept: 'application/xml, text/xml',
98
+ 'User-Agent': 'australian-history-mcp/0.6.0',
99
+ },
100
+ });
101
+ if (!response.ok) {
102
+ if (response.status === 404) {
103
+ return null;
104
+ }
105
+ throw new Error(`HTTP ${response.status}: ${response.statusText}`);
106
+ }
107
+ const xml = await response.text();
108
+ return parseTranscriptXml(xml);
109
+ }
110
+ catch (error) {
111
+ if (error instanceof Error && error.message.includes('404')) {
112
+ return null;
113
+ }
114
+ throw error;
115
+ }
116
+ }
117
+ /**
118
+ * Get all transcript IDs from sitemap
119
+ * Note: This is a large request (~26,000 entries)
120
+ */
121
+ async getSitemapIds() {
122
+ const url = `${PM_TRANSCRIPTS_BASE}/transcripts.xml`;
123
+ const response = await fetch(url, {
124
+ headers: {
125
+ Accept: 'application/xml, text/xml',
126
+ 'User-Agent': 'australian-history-mcp/0.6.0',
127
+ },
128
+ });
129
+ if (!response.ok) {
130
+ throw new Error(`HTTP ${response.status}: ${response.statusText}`);
131
+ }
132
+ const xml = await response.text();
133
+ return parseSitemapXml(xml);
134
+ }
135
+ /**
136
+ * Get a range of transcripts by ID
137
+ * Fetches sequentially to avoid overwhelming the server
138
+ */
139
+ async getTranscriptRange(startId, endId, options) {
140
+ const transcripts = [];
141
+ const total = endId - startId + 1;
142
+ for (let id = startId; id <= endId; id++) {
143
+ try {
144
+ const transcript = await this.getTranscript(id);
145
+ if (transcript) {
146
+ // Apply filters
147
+ if (options?.primeMinister) {
148
+ const pmFilter = options.primeMinister.toLowerCase();
149
+ if (!transcript.primeMinister.toLowerCase().includes(pmFilter)) {
150
+ continue;
151
+ }
152
+ }
153
+ if (options?.dateFrom || options?.dateTo) {
154
+ const releaseDate = this.parseReleaseDate(transcript.releaseDate);
155
+ if (releaseDate) {
156
+ if (options.dateFrom && releaseDate < options.dateFrom) {
157
+ continue;
158
+ }
159
+ if (options.dateTo && releaseDate > options.dateTo) {
160
+ continue;
161
+ }
162
+ }
163
+ }
164
+ transcripts.push(transcript);
165
+ }
166
+ if (options?.onProgress) {
167
+ options.onProgress(id - startId + 1, total);
168
+ }
169
+ // Small delay to be respectful to the server
170
+ await new Promise((resolve) => setTimeout(resolve, 100));
171
+ }
172
+ catch {
173
+ // Skip failed transcripts silently
174
+ continue;
175
+ }
176
+ }
177
+ return transcripts;
178
+ }
179
+ /**
180
+ * Parse release date from DD/MM/YYYY to YYYY-MM-DD
181
+ */
182
+ parseReleaseDate(dateStr) {
183
+ const match = dateStr.match(/(\d{1,2})\/(\d{1,2})\/(\d{4})/);
184
+ if (!match)
185
+ return null;
186
+ const [, day, month, year] = match;
187
+ return `${year}-${month.padStart(2, '0')}-${day.padStart(2, '0')}`;
188
+ }
189
+ }
190
+ // Export singleton instance
191
+ export const pmTranscriptsClient = new PMTranscriptsClient();
192
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/sources/pm-transcripts/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Prime Ministerial Transcripts Source Module
3
+ *
4
+ * Provides access to transcripts of Australian Prime Ministers' speeches,
5
+ * media releases, and interviews from 1945 onwards.
6
+ * No API key required.
7
+ *
8
+ * API Documentation: https://pmtranscripts.pmc.gov.au/developers
9
+ */
10
+ export declare const pmTranscriptsSource: import("../../core/base-source.js").Source;
11
+ export * from './types.js';
12
+ export { pmTranscriptsClient } from './client.js';
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/sources/pm-transcripts/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,eAAO,MAAM,mBAAmB,4CAO9B,CAAC;AAGH,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Prime Ministerial Transcripts Source Module
3
+ *
4
+ * Provides access to transcripts of Australian Prime Ministers' speeches,
5
+ * media releases, and interviews from 1945 onwards.
6
+ * No API key required.
7
+ *
8
+ * API Documentation: https://pmtranscripts.pmc.gov.au/developers
9
+ */
10
+ import { defineSource } from '../../core/base-source.js';
11
+ import { pmTranscriptsGetTranscriptTool } from './tools/get-transcript.js';
12
+ import { pmTranscriptsHarvestTool } from './tools/harvest.js';
13
+ export const pmTranscriptsSource = defineSource({
14
+ name: 'pm-transcripts',
15
+ displayName: 'Prime Ministerial Transcripts',
16
+ description: 'Australian Prime Ministerial transcripts including speeches, media releases, and interviews.',
17
+ requiresAuth: false,
18
+ tools: [pmTranscriptsGetTranscriptTool, pmTranscriptsHarvestTool],
19
+ });
20
+ // Re-export types and client for external use
21
+ export * from './types.js';
22
+ export { pmTranscriptsClient } from './client.js';
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/sources/pm-transcripts/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,MAAM,CAAC,MAAM,mBAAmB,GAAG,YAAY,CAAC;IAC9C,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE,+BAA+B;IAC5C,WAAW,EACT,8FAA8F;IAChG,YAAY,EAAE,KAAK;IACnB,KAAK,EAAE,CAAC,8BAA8B,EAAE,wBAAwB,CAAC;CAClE,CAAC,CAAC;AAEH,8CAA8C;AAC9C,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * PM Transcripts Get Transcript Tool - Get a transcript by ID
3
+ */
4
+ import type { SourceTool } from '../../../core/base-source.js';
5
+ export declare const pmTranscriptsGetTranscriptTool: SourceTool;
6
+ //# sourceMappingURL=get-transcript.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-transcript.d.ts","sourceRoot":"","sources":["../../../../src/sources/pm-transcripts/tools/get-transcript.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAI/D,eAAO,MAAM,8BAA8B,EAAE,UAkD5C,CAAC"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * PM Transcripts Get Transcript Tool - Get a transcript by ID
3
+ */
4
+ import { successResponse, errorResponse } from '../../../core/types.js';
5
+ import { pmTranscriptsClient } from '../client.js';
6
+ export const pmTranscriptsGetTranscriptTool = {
7
+ schema: {
8
+ name: 'pm_transcripts_get_transcript',
9
+ description: 'Get a Prime Ministerial transcript by ID. Returns speeches, media releases, and interviews from Australian PMs.',
10
+ inputSchema: {
11
+ type: 'object',
12
+ properties: {
13
+ id: {
14
+ type: 'number',
15
+ description: 'Transcript ID (1 to ~26000)',
16
+ },
17
+ },
18
+ required: ['id'],
19
+ },
20
+ },
21
+ async execute(args) {
22
+ const input = args;
23
+ if (!input.id) {
24
+ return errorResponse('id is required');
25
+ }
26
+ try {
27
+ const transcript = await pmTranscriptsClient.getTranscript(input.id);
28
+ if (!transcript) {
29
+ return errorResponse(`Transcript ${input.id} not found`);
30
+ }
31
+ return successResponse({
32
+ source: 'pm-transcripts',
33
+ transcript: {
34
+ id: transcript.transcriptId,
35
+ title: transcript.title,
36
+ primeMinister: transcript.primeMinister,
37
+ periodOfService: transcript.periodOfService,
38
+ releaseDate: transcript.releaseDate,
39
+ releaseType: transcript.releaseType,
40
+ documentUrl: transcript.documentUrl,
41
+ subjects: transcript.subjects,
42
+ content: transcript.content,
43
+ webUrl: `https://pmtranscripts.pmc.gov.au/release/transcript-${transcript.transcriptId}`,
44
+ },
45
+ });
46
+ }
47
+ catch (error) {
48
+ return errorResponse(error);
49
+ }
50
+ },
51
+ };
52
+ //# sourceMappingURL=get-transcript.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-transcript.js","sourceRoot":"","sources":["../../../../src/sources/pm-transcripts/tools/get-transcript.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEnD,MAAM,CAAC,MAAM,8BAA8B,GAAe;IACxD,MAAM,EAAE;QACN,IAAI,EAAE,+BAA+B;QACrC,WAAW,EACT,iHAAiH;QACnH,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,EAAE,EAAE;oBACF,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,6BAA6B;iBAC3C;aACF;YACD,QAAQ,EAAE,CAAC,IAAI,CAAC;SACjB;KACF;IAED,KAAK,CAAC,OAAO,CAAC,IAA6B;QACzC,MAAM,KAAK,GAAG,IAAuB,CAAC;QAEtC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;YACd,OAAO,aAAa,CAAC,gBAAgB,CAAC,CAAC;QACzC,CAAC;QAED,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAErE,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,OAAO,aAAa,CAAC,cAAc,KAAK,CAAC,EAAE,YAAY,CAAC,CAAC;YAC3D,CAAC;YAED,OAAO,eAAe,CAAC;gBACrB,MAAM,EAAE,gBAAgB;gBACxB,UAAU,EAAE;oBACV,EAAE,EAAE,UAAU,CAAC,YAAY;oBAC3B,KAAK,EAAE,UAAU,CAAC,KAAK;oBACvB,aAAa,EAAE,UAAU,CAAC,aAAa;oBACvC,eAAe,EAAE,UAAU,CAAC,eAAe;oBAC3C,WAAW,EAAE,UAAU,CAAC,WAAW;oBACnC,WAAW,EAAE,UAAU,CAAC,WAAW;oBACnC,WAAW,EAAE,UAAU,CAAC,WAAW;oBACnC,QAAQ,EAAE,UAAU,CAAC,QAAQ;oBAC7B,OAAO,EAAE,UAAU,CAAC,OAAO;oBAC3B,MAAM,EAAE,uDAAuD,UAAU,CAAC,YAAY,EAAE;iBACzF;aACF,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;CACF,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * PM Transcripts Harvest Tool - Bulk download transcripts
3
+ *
4
+ * When filtering by PM name, uses sitemap for faster lookups instead of
5
+ * sequential scanning. This reduces harvest time from minutes to seconds.
6
+ */
7
+ import type { SourceTool } from '../../../core/base-source.js';
8
+ export declare const pmTranscriptsHarvestTool: SourceTool;
9
+ //# sourceMappingURL=harvest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"harvest.d.ts","sourceRoot":"","sources":["../../../../src/sources/pm-transcripts/tools/harvest.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAK/D,eAAO,MAAM,wBAAwB,EAAE,UA4NtC,CAAC"}
@@ -0,0 +1,213 @@
1
+ /**
2
+ * PM Transcripts Harvest Tool - Bulk download transcripts
3
+ *
4
+ * When filtering by PM name, uses sitemap for faster lookups instead of
5
+ * sequential scanning. This reduces harvest time from minutes to seconds.
6
+ */
7
+ import { successResponse, errorResponse } from '../../../core/types.js';
8
+ import { pmTranscriptsClient } from '../client.js';
9
+ export const pmTranscriptsHarvestTool = {
10
+ schema: {
11
+ name: 'pm_transcripts_harvest',
12
+ description: 'Bulk download Prime Ministerial transcripts. Fetches sequentially by ID with optional filters. ' +
13
+ 'When filtering by PM name, uses sitemap for faster lookups. ' +
14
+ 'PM era approximate ID ranges: Curtin ~1-2000, Menzies ~2000-4000, Hawke ~5000-8000, ' +
15
+ 'Keating ~8000-10000, Howard ~10000-18000, Rudd/Gillard ~18000-22000, Abbott+ ~22000+.',
16
+ inputSchema: {
17
+ type: 'object',
18
+ properties: {
19
+ primeMinister: {
20
+ type: 'string',
21
+ description: 'Filter by PM name (partial match, e.g., "Hawke", "Keating")',
22
+ },
23
+ dateFrom: {
24
+ type: 'string',
25
+ description: 'Filter from date (YYYY-MM-DD)',
26
+ },
27
+ dateTo: {
28
+ type: 'string',
29
+ description: 'Filter to date (YYYY-MM-DD)',
30
+ },
31
+ startFrom: {
32
+ type: 'number',
33
+ description: 'Starting transcript ID (default: 1). For faster PM filtering, use approximate era: ' +
34
+ 'Hawke ~5000, Keating ~8000, Howard ~10000, Rudd ~18000, Abbott ~22000',
35
+ default: 1,
36
+ },
37
+ maxRecords: {
38
+ type: 'number',
39
+ description: 'Maximum records to harvest (1-500, default: 100)',
40
+ default: 100,
41
+ },
42
+ useSitemap: {
43
+ type: 'boolean',
44
+ description: 'Use sitemap for faster PM-filtered harvesting (default: true when primeMinister filter used). ' +
45
+ 'Sitemap fetches all ~26,000 transcript IDs at once, then filters locally.',
46
+ default: true,
47
+ },
48
+ },
49
+ required: [],
50
+ },
51
+ },
52
+ async execute(args) {
53
+ const input = args;
54
+ try {
55
+ const startFrom = input.startFrom ?? 1;
56
+ const maxRecords = Math.min(input.maxRecords ?? 100, 500);
57
+ const useSitemap = input.useSitemap !== false; // Default true
58
+ const transcripts = [];
59
+ // Use sitemap-based harvesting when PM filter is provided (much faster)
60
+ if (input.primeMinister && useSitemap) {
61
+ // Fetch sitemap once - contains all ~26,000 transcript IDs
62
+ const allRefs = await pmTranscriptsClient.getSitemapIds();
63
+ // Filter to IDs >= startFrom and sort
64
+ const candidateIds = allRefs
65
+ .map((ref) => ref.id)
66
+ .filter((id) => id >= startFrom)
67
+ .sort((a, b) => a - b);
68
+ let lastId = startFrom;
69
+ // Iterate through candidate IDs (much faster than sequential scan)
70
+ for (const id of candidateIds) {
71
+ if (transcripts.length >= maxRecords)
72
+ break;
73
+ try {
74
+ const transcript = await pmTranscriptsClient.getTranscript(id);
75
+ lastId = id;
76
+ if (transcript) {
77
+ // Apply PM filter
78
+ const pmFilter = input.primeMinister.toLowerCase();
79
+ if (!transcript.primeMinister.toLowerCase().includes(pmFilter)) {
80
+ continue;
81
+ }
82
+ // Apply date filters
83
+ if (input.dateFrom || input.dateTo) {
84
+ const releaseDate = parseReleaseDate(transcript.releaseDate);
85
+ if (releaseDate) {
86
+ if (input.dateFrom && releaseDate < input.dateFrom)
87
+ continue;
88
+ if (input.dateTo && releaseDate > input.dateTo)
89
+ continue;
90
+ }
91
+ }
92
+ transcripts.push(transcript);
93
+ }
94
+ // Small delay to be respectful to the server
95
+ await new Promise((resolve) => setTimeout(resolve, 100));
96
+ }
97
+ catch {
98
+ // Skip failed transcripts
99
+ continue;
100
+ }
101
+ }
102
+ return successResponse({
103
+ source: 'pm-transcripts',
104
+ mode: 'sitemap',
105
+ harvested: transcripts.length,
106
+ startedAt: startFrom,
107
+ endedAt: lastId,
108
+ totalIdsInSitemap: allRefs.length,
109
+ hasMore: transcripts.length >= maxRecords,
110
+ filters: {
111
+ primeMinister: input.primeMinister || null,
112
+ dateFrom: input.dateFrom || null,
113
+ dateTo: input.dateTo || null,
114
+ },
115
+ records: transcripts.map((t) => ({
116
+ id: t.transcriptId,
117
+ title: t.title,
118
+ primeMinister: t.primeMinister,
119
+ releaseDate: t.releaseDate,
120
+ releaseType: t.releaseType,
121
+ documentUrl: t.documentUrl,
122
+ subjects: t.subjects,
123
+ contentPreview: t.content.substring(0, 500),
124
+ webUrl: `https://pmtranscripts.pmc.gov.au/release/transcript-${t.transcriptId}`,
125
+ })),
126
+ });
127
+ }
128
+ // Sequential harvesting (original behavior for non-PM-filtered harvests)
129
+ let currentId = startFrom;
130
+ let consecutiveNotFound = 0;
131
+ const maxConsecutiveNotFound = 50; // Stop if 50 in a row not found (gap detection)
132
+ while (transcripts.length < maxRecords && consecutiveNotFound < maxConsecutiveNotFound) {
133
+ try {
134
+ const transcript = await pmTranscriptsClient.getTranscript(currentId);
135
+ if (transcript) {
136
+ consecutiveNotFound = 0;
137
+ // Apply filters
138
+ let include = true;
139
+ if (input.primeMinister) {
140
+ const pmFilter = input.primeMinister.toLowerCase();
141
+ if (!transcript.primeMinister.toLowerCase().includes(pmFilter)) {
142
+ include = false;
143
+ }
144
+ }
145
+ if (include && (input.dateFrom || input.dateTo)) {
146
+ const releaseDate = parseReleaseDate(transcript.releaseDate);
147
+ if (releaseDate) {
148
+ if (input.dateFrom && releaseDate < input.dateFrom) {
149
+ include = false;
150
+ }
151
+ if (input.dateTo && releaseDate > input.dateTo) {
152
+ include = false;
153
+ }
154
+ }
155
+ }
156
+ if (include) {
157
+ transcripts.push(transcript);
158
+ }
159
+ }
160
+ else {
161
+ consecutiveNotFound++;
162
+ }
163
+ }
164
+ catch {
165
+ consecutiveNotFound++;
166
+ }
167
+ currentId++;
168
+ // Small delay to be respectful to the server
169
+ await new Promise((resolve) => setTimeout(resolve, 100));
170
+ }
171
+ const hasMore = consecutiveNotFound < maxConsecutiveNotFound;
172
+ return successResponse({
173
+ source: 'pm-transcripts',
174
+ mode: 'sequential',
175
+ harvested: transcripts.length,
176
+ startedAt: startFrom,
177
+ endedAt: currentId - 1,
178
+ hasMore,
179
+ nextId: hasMore ? currentId : null,
180
+ filters: {
181
+ primeMinister: input.primeMinister || null,
182
+ dateFrom: input.dateFrom || null,
183
+ dateTo: input.dateTo || null,
184
+ },
185
+ records: transcripts.map((t) => ({
186
+ id: t.transcriptId,
187
+ title: t.title,
188
+ primeMinister: t.primeMinister,
189
+ releaseDate: t.releaseDate,
190
+ releaseType: t.releaseType,
191
+ documentUrl: t.documentUrl,
192
+ subjects: t.subjects,
193
+ contentPreview: t.content.substring(0, 500),
194
+ webUrl: `https://pmtranscripts.pmc.gov.au/release/transcript-${t.transcriptId}`,
195
+ })),
196
+ });
197
+ }
198
+ catch (error) {
199
+ return errorResponse(error);
200
+ }
201
+ },
202
+ };
203
+ /**
204
+ * Parse release date from DD/MM/YYYY to YYYY-MM-DD
205
+ */
206
+ function parseReleaseDate(dateStr) {
207
+ const match = dateStr.match(/(\d{1,2})\/(\d{1,2})\/(\d{4})/);
208
+ if (!match)
209
+ return null;
210
+ const [, day, month, year] = match;
211
+ return `${year}-${month.padStart(2, '0')}-${day.padStart(2, '0')}`;
212
+ }
213
+ //# sourceMappingURL=harvest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"harvest.js","sourceRoot":"","sources":["../../../../src/sources/pm-transcripts/tools/harvest.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAGnD,MAAM,CAAC,MAAM,wBAAwB,GAAe;IAClD,MAAM,EAAE;QACN,IAAI,EAAE,wBAAwB;QAC9B,WAAW,EACT,iGAAiG;YACjG,8DAA8D;YAC9D,sFAAsF;YACtF,uFAAuF;QACzF,WAAW,EAAE;YACX,IAAI,EAAE,QAAiB;YACvB,UAAU,EAAE;gBACV,aAAa,EAAE;oBACb,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,6DAA6D;iBAC3E;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,+BAA+B;iBAC7C;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,6BAA6B;iBAC3C;gBACD,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,qFAAqF;wBACrF,uEAAuE;oBACzE,OAAO,EAAE,CAAC;iBACX;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,kDAAkD;oBAC/D,OAAO,EAAE,GAAG;iBACb;gBACD,UAAU,EAAE;oBACV,IAAI,EAAE,SAAS;oBACf,WAAW,EACT,gGAAgG;wBAChG,2EAA2E;oBAC7E,OAAO,EAAE,IAAI;iBACd;aACF;YACD,QAAQ,EAAE,EAAE;SACb;KACF;IAED,KAAK,CAAC,OAAO,CAAC,IAA6B;QACzC,MAAM,KAAK,GAAG,IAOb,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC;YACvC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC;YAC1D,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,CAAC,eAAe;YAE9D,MAAM,WAAW,GAAmB,EAAE,CAAC;YAEvC,wEAAwE;YACxE,IAAI,KAAK,CAAC,aAAa,IAAI,UAAU,EAAE,CAAC;gBACtC,2DAA2D;gBAC3D,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC,aAAa,EAAE,CAAC;gBAE1D,sCAAsC;gBACtC,MAAM,YAAY,GAAG,OAAO;qBACzB,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;qBACpB,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,SAAS,CAAC;qBAC/B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAEzB,IAAI,MAAM,GAAG,SAAS,CAAC;gBAEvB,mEAAmE;gBACnE,KAAK,MAAM,EAAE,IAAI,YAAY,EAAE,CAAC;oBAC9B,IAAI,WAAW,CAAC,MAAM,IAAI,UAAU;wBAAE,MAAM;oBAE5C,IAAI,CAAC;wBACH,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;wBAC/D,MAAM,GAAG,EAAE,CAAC;wBAEZ,IAAI,UAAU,EAAE,CAAC;4BACf,kBAAkB;4BAClB,MAAM,QAAQ,GAAG,KAAK,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;4BACnD,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gCAC/D,SAAS;4BACX,CAAC;4BAED,qBAAqB;4BACrB,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gCACnC,MAAM,WAAW,GAAG,gBAAgB,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;gCAC7D,IAAI,WAAW,EAAE,CAAC;oCAChB,IAAI,KAAK,CAAC,QAAQ,IAAI,WAAW,GAAG,KAAK,CAAC,QAAQ;wCAAE,SAAS;oCAC7D,IAAI,KAAK,CAAC,MAAM,IAAI,WAAW,GAAG,KAAK,CAAC,MAAM;wCAAE,SAAS;gCAC3D,CAAC;4BACH,CAAC;4BAED,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;wBAC/B,CAAC;wBAED,6CAA6C;wBAC7C,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;oBAC3D,CAAC;oBAAC,MAAM,CAAC;wBACP,0BAA0B;wBAC1B,SAAS;oBACX,CAAC;gBACH,CAAC;gBAED,OAAO,eAAe,CAAC;oBACrB,MAAM,EAAE,gBAAgB;oBACxB,IAAI,EAAE,SAAS;oBACf,SAAS,EAAE,WAAW,CAAC,MAAM;oBAC7B,SAAS,EAAE,SAAS;oBACpB,OAAO,EAAE,MAAM;oBACf,iBAAiB,EAAE,OAAO,CAAC,MAAM;oBACjC,OAAO,EAAE,WAAW,CAAC,MAAM,IAAI,UAAU;oBACzC,OAAO,EAAE;wBACP,aAAa,EAAE,KAAK,CAAC,aAAa,IAAI,IAAI;wBAC1C,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,IAAI;wBAChC,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,IAAI;qBAC7B;oBACD,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBAC/B,EAAE,EAAE,CAAC,CAAC,YAAY;wBAClB,KAAK,EAAE,CAAC,CAAC,KAAK;wBACd,aAAa,EAAE,CAAC,CAAC,aAAa;wBAC9B,WAAW,EAAE,CAAC,CAAC,WAAW;wBAC1B,WAAW,EAAE,CAAC,CAAC,WAAW;wBAC1B,WAAW,EAAE,CAAC,CAAC,WAAW;wBAC1B,QAAQ,EAAE,CAAC,CAAC,QAAQ;wBACpB,cAAc,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC;wBAC3C,MAAM,EAAE,uDAAuD,CAAC,CAAC,YAAY,EAAE;qBAChF,CAAC,CAAC;iBACJ,CAAC,CAAC;YACL,CAAC;YAED,yEAAyE;YACzE,IAAI,SAAS,GAAG,SAAS,CAAC;YAC1B,IAAI,mBAAmB,GAAG,CAAC,CAAC;YAC5B,MAAM,sBAAsB,GAAG,EAAE,CAAC,CAAC,gDAAgD;YAEnF,OAAO,WAAW,CAAC,MAAM,GAAG,UAAU,IAAI,mBAAmB,GAAG,sBAAsB,EAAE,CAAC;gBACvF,IAAI,CAAC;oBACH,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;oBAEtE,IAAI,UAAU,EAAE,CAAC;wBACf,mBAAmB,GAAG,CAAC,CAAC;wBAExB,gBAAgB;wBAChB,IAAI,OAAO,GAAG,IAAI,CAAC;wBAEnB,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;4BACxB,MAAM,QAAQ,GAAG,KAAK,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;4BACnD,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gCAC/D,OAAO,GAAG,KAAK,CAAC;4BAClB,CAAC;wBACH,CAAC;wBAED,IAAI,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;4BAChD,MAAM,WAAW,GAAG,gBAAgB,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;4BAC7D,IAAI,WAAW,EAAE,CAAC;gCAChB,IAAI,KAAK,CAAC,QAAQ,IAAI,WAAW,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;oCACnD,OAAO,GAAG,KAAK,CAAC;gCAClB,CAAC;gCACD,IAAI,KAAK,CAAC,MAAM,IAAI,WAAW,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;oCAC/C,OAAO,GAAG,KAAK,CAAC;gCAClB,CAAC;4BACH,CAAC;wBACH,CAAC;wBAED,IAAI,OAAO,EAAE,CAAC;4BACZ,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;wBAC/B,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,mBAAmB,EAAE,CAAC;oBACxB,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,mBAAmB,EAAE,CAAC;gBACxB,CAAC;gBAED,SAAS,EAAE,CAAC;gBAEZ,6CAA6C;gBAC7C,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;YAC3D,CAAC;YAED,MAAM,OAAO,GAAG,mBAAmB,GAAG,sBAAsB,CAAC;YAE7D,OAAO,eAAe,CAAC;gBACrB,MAAM,EAAE,gBAAgB;gBACxB,IAAI,EAAE,YAAY;gBAClB,SAAS,EAAE,WAAW,CAAC,MAAM;gBAC7B,SAAS,EAAE,SAAS;gBACpB,OAAO,EAAE,SAAS,GAAG,CAAC;gBACtB,OAAO;gBACP,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;gBAClC,OAAO,EAAE;oBACP,aAAa,EAAE,KAAK,CAAC,aAAa,IAAI,IAAI;oBAC1C,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,IAAI;oBAChC,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,IAAI;iBAC7B;gBACD,OAAO,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC/B,EAAE,EAAE,CAAC,CAAC,YAAY;oBAClB,KAAK,EAAE,CAAC,CAAC,KAAK;oBACd,aAAa,EAAE,CAAC,CAAC,aAAa;oBAC9B,WAAW,EAAE,CAAC,CAAC,WAAW;oBAC1B,WAAW,EAAE,CAAC,CAAC,WAAW;oBAC1B,WAAW,EAAE,CAAC,CAAC,WAAW;oBAC1B,QAAQ,EAAE,CAAC,CAAC,QAAQ;oBACpB,cAAc,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC;oBAC3C,MAAM,EAAE,uDAAuD,CAAC,CAAC,YAAY,EAAE;iBAChF,CAAC,CAAC;aACJ,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;CACF,CAAC;AAEF;;GAEG;AACH,SAAS,gBAAgB,CAAC,OAAe;IACvC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAC7D,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAExB,MAAM,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC;IACnC,OAAO,GAAG,IAAI,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;AACrE,CAAC"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * PM Transcripts Type Definitions
3
+ *
4
+ * Types for the Prime Ministerial Transcripts API.
5
+ * API returns XML responses.
6
+ */
7
+ /**
8
+ * A transcript from the PM Transcripts archive
9
+ */
10
+ export interface PMTranscript {
11
+ /** Unique transcript ID */
12
+ transcriptId: number;
13
+ /** Title of the transcript */
14
+ title: string;
15
+ /** Prime Minister name */
16
+ primeMinister: string;
17
+ /** Period of service (format: YYYYMMDD - YYYYMMDD) */
18
+ periodOfService: string;
19
+ /** Release date (format: DD/MM/YYYY) */
20
+ releaseDate: string;
21
+ /** Type of release (e.g., "Media Release", "Speech", "Interview") */
22
+ releaseType: string;
23
+ /** URL to PDF document */
24
+ documentUrl: string | null;
25
+ /** Subject tags */
26
+ subjects: string[];
27
+ /** Full text content */
28
+ content: string;
29
+ }
30
+ /**
31
+ * Minimal transcript info from sitemap
32
+ */
33
+ export interface PMTranscriptRef {
34
+ /** Transcript ID */
35
+ id: number;
36
+ /** URL to transcript page */
37
+ url: string;
38
+ }
39
+ /**
40
+ * Filter options for harvest
41
+ */
42
+ export interface PMTranscriptsHarvestParams {
43
+ /** Filter by Prime Minister name */
44
+ primeMinister?: string;
45
+ /** Start date (YYYY-MM-DD) */
46
+ dateFrom?: string;
47
+ /** End date (YYYY-MM-DD) */
48
+ dateTo?: string;
49
+ /** Maximum records to harvest */
50
+ maxRecords?: number;
51
+ /** Starting transcript ID for pagination */
52
+ startFrom?: number;
53
+ }
54
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/sources/pm-transcripts/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,2BAA2B;IAC3B,YAAY,EAAE,MAAM,CAAC;IAErB,8BAA8B;IAC9B,KAAK,EAAE,MAAM,CAAC;IAEd,0BAA0B;IAC1B,aAAa,EAAE,MAAM,CAAC;IAEtB,sDAAsD;IACtD,eAAe,EAAE,MAAM,CAAC;IAExB,wCAAwC;IACxC,WAAW,EAAE,MAAM,CAAC;IAEpB,qEAAqE;IACrE,WAAW,EAAE,MAAM,CAAC;IAEpB,0BAA0B;IAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B,mBAAmB;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAC;IAEnB,wBAAwB;IACxB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,oBAAoB;IACpB,EAAE,EAAE,MAAM,CAAC;IAEX,6BAA6B;IAC7B,GAAG,EAAE,MAAM,CAAC;CACb;AAMD;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,oCAAoC;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,4BAA4B;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,iCAAiC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * PM Transcripts Type Definitions
3
+ *
4
+ * Types for the Prime Ministerial Transcripts API.
5
+ * API returns XML responses.
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/sources/pm-transcripts/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}