riksdagsmonitor 0.8.23 → 0.8.26

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 (546) hide show
  1. package/README.md +53 -1
  2. package/dist/lib/dashboards/party-dashboard.js +2 -1
  3. package/dist/lib/dashboards/party-dashboard.js.map +1 -1
  4. package/dist/lib/dashboards/risk-dashboard.js +2 -1
  5. package/dist/lib/dashboards/risk-dashboard.js.map +1 -1
  6. package/dist/lib/shared/index.d.ts +0 -1
  7. package/dist/lib/shared/index.d.ts.map +1 -1
  8. package/dist/lib/shared/index.js +3 -1
  9. package/dist/lib/shared/index.js.map +1 -1
  10. package/dist/lib/shared/register-globals.d.ts +1 -1
  11. package/dist/lib/shared/register-globals.d.ts.map +1 -1
  12. package/dist/lib/shared/register-globals.js +7 -1
  13. package/dist/lib/shared/register-globals.js.map +1 -1
  14. package/package.json +54 -22
  15. package/dist/scripts/analysis-reader.d.ts +0 -241
  16. package/dist/scripts/analysis-reader.d.ts.map +0 -1
  17. package/dist/scripts/analysis-reader.js +0 -531
  18. package/dist/scripts/analysis-reader.js.map +0 -1
  19. package/dist/scripts/article-quality-enhancer.d.ts +0 -148
  20. package/dist/scripts/article-quality-enhancer.d.ts.map +0 -1
  21. package/dist/scripts/article-quality-enhancer.js +0 -430
  22. package/dist/scripts/article-quality-enhancer.js.map +0 -1
  23. package/dist/scripts/article-template/constants.d.ts +0 -104
  24. package/dist/scripts/article-template/constants.d.ts.map +0 -1
  25. package/dist/scripts/article-template/constants.js +0 -225
  26. package/dist/scripts/article-template/constants.js.map +0 -1
  27. package/dist/scripts/article-template/helpers.d.ts +0 -83
  28. package/dist/scripts/article-template/helpers.d.ts.map +0 -1
  29. package/dist/scripts/article-template/helpers.js +0 -236
  30. package/dist/scripts/article-template/helpers.js.map +0 -1
  31. package/dist/scripts/article-template/index.d.ts +0 -39
  32. package/dist/scripts/article-template/index.d.ts.map +0 -1
  33. package/dist/scripts/article-template/index.js +0 -37
  34. package/dist/scripts/article-template/index.js.map +0 -1
  35. package/dist/scripts/article-template/registry.d.ts +0 -64
  36. package/dist/scripts/article-template/registry.d.ts.map +0 -1
  37. package/dist/scripts/article-template/registry.js +0 -405
  38. package/dist/scripts/article-template/registry.js.map +0 -1
  39. package/dist/scripts/article-template/template.d.ts +0 -18
  40. package/dist/scripts/article-template/template.d.ts.map +0 -1
  41. package/dist/scripts/article-template/template.js +0 -359
  42. package/dist/scripts/article-template/template.js.map +0 -1
  43. package/dist/scripts/article-template/types.d.ts +0 -90
  44. package/dist/scripts/article-template/types.d.ts.map +0 -1
  45. package/dist/scripts/article-template/types.js +0 -96
  46. package/dist/scripts/article-template/types.js.map +0 -1
  47. package/dist/scripts/article-template.d.ts +0 -18
  48. package/dist/scripts/article-template.d.ts.map +0 -1
  49. package/dist/scripts/article-template.js +0 -18
  50. package/dist/scripts/article-template.js.map +0 -1
  51. package/dist/scripts/catalog-downloaded-data.d.ts +0 -66
  52. package/dist/scripts/catalog-downloaded-data.d.ts.map +0 -1
  53. package/dist/scripts/catalog-downloaded-data.js +0 -239
  54. package/dist/scripts/catalog-downloaded-data.js.map +0 -1
  55. package/dist/scripts/check-cia-schema-updates.d.ts +0 -186
  56. package/dist/scripts/check-cia-schema-updates.d.ts.map +0 -1
  57. package/dist/scripts/check-cia-schema-updates.js +0 -363
  58. package/dist/scripts/check-cia-schema-updates.js.map +0 -1
  59. package/dist/scripts/data-transformers/calendar.d.ts +0 -16
  60. package/dist/scripts/data-transformers/calendar.d.ts.map +0 -1
  61. package/dist/scripts/data-transformers/calendar.js +0 -137
  62. package/dist/scripts/data-transformers/calendar.js.map +0 -1
  63. package/dist/scripts/data-transformers/constants/committee-names.d.ts +0 -15
  64. package/dist/scripts/data-transformers/constants/committee-names.d.ts.map +0 -1
  65. package/dist/scripts/data-transformers/constants/committee-names.js +0 -30
  66. package/dist/scripts/data-transformers/constants/committee-names.js.map +0 -1
  67. package/dist/scripts/data-transformers/constants/content-labels-part1.d.ts +0 -11
  68. package/dist/scripts/data-transformers/constants/content-labels-part1.d.ts.map +0 -1
  69. package/dist/scripts/data-transformers/constants/content-labels-part1.js +0 -900
  70. package/dist/scripts/data-transformers/constants/content-labels-part1.js.map +0 -1
  71. package/dist/scripts/data-transformers/constants/content-labels-part2.d.ts +0 -11
  72. package/dist/scripts/data-transformers/constants/content-labels-part2.d.ts.map +0 -1
  73. package/dist/scripts/data-transformers/constants/content-labels-part2.js +0 -900
  74. package/dist/scripts/data-transformers/constants/content-labels-part2.js.map +0 -1
  75. package/dist/scripts/data-transformers/constants/content-labels.d.ts +0 -13
  76. package/dist/scripts/data-transformers/constants/content-labels.d.ts.map +0 -1
  77. package/dist/scripts/data-transformers/constants/content-labels.js +0 -18
  78. package/dist/scripts/data-transformers/constants/content-labels.js.map +0 -1
  79. package/dist/scripts/data-transformers/constants/index.d.ts +0 -15
  80. package/dist/scripts/data-transformers/constants/index.d.ts.map +0 -1
  81. package/dist/scripts/data-transformers/constants/index.js +0 -15
  82. package/dist/scripts/data-transformers/constants/index.js.map +0 -1
  83. package/dist/scripts/data-transformers/constants/locale-map.d.ts +0 -13
  84. package/dist/scripts/data-transformers/constants/locale-map.d.ts.map +0 -1
  85. package/dist/scripts/data-transformers/constants/locale-map.js +0 -17
  86. package/dist/scripts/data-transformers/constants/locale-map.js.map +0 -1
  87. package/dist/scripts/data-transformers/constants.d.ts +0 -14
  88. package/dist/scripts/data-transformers/constants.d.ts.map +0 -1
  89. package/dist/scripts/data-transformers/constants.js +0 -14
  90. package/dist/scripts/data-transformers/constants.js.map +0 -1
  91. package/dist/scripts/data-transformers/content-generators/ai-mindmap-analyzer.d.ts +0 -64
  92. package/dist/scripts/data-transformers/content-generators/ai-mindmap-analyzer.d.ts.map +0 -1
  93. package/dist/scripts/data-transformers/content-generators/ai-mindmap-analyzer.js +0 -805
  94. package/dist/scripts/data-transformers/content-generators/ai-mindmap-analyzer.js.map +0 -1
  95. package/dist/scripts/data-transformers/content-generators/cia-overview-section.d.ts +0 -50
  96. package/dist/scripts/data-transformers/content-generators/cia-overview-section.d.ts.map +0 -1
  97. package/dist/scripts/data-transformers/content-generators/cia-overview-section.js +0 -310
  98. package/dist/scripts/data-transformers/content-generators/cia-overview-section.js.map +0 -1
  99. package/dist/scripts/data-transformers/content-generators/committee.d.ts +0 -12
  100. package/dist/scripts/data-transformers/content-generators/committee.d.ts.map +0 -1
  101. package/dist/scripts/data-transformers/content-generators/committee.js +0 -247
  102. package/dist/scripts/data-transformers/content-generators/committee.js.map +0 -1
  103. package/dist/scripts/data-transformers/content-generators/dashboard-section.d.ts +0 -124
  104. package/dist/scripts/data-transformers/content-generators/dashboard-section.d.ts.map +0 -1
  105. package/dist/scripts/data-transformers/content-generators/dashboard-section.js +0 -564
  106. package/dist/scripts/data-transformers/content-generators/dashboard-section.js.map +0 -1
  107. package/dist/scripts/data-transformers/content-generators/economic-dashboard-section.d.ts +0 -82
  108. package/dist/scripts/data-transformers/content-generators/economic-dashboard-section.d.ts.map +0 -1
  109. package/dist/scripts/data-transformers/content-generators/economic-dashboard-section.js +0 -321
  110. package/dist/scripts/data-transformers/content-generators/economic-dashboard-section.js.map +0 -1
  111. package/dist/scripts/data-transformers/content-generators/generic.d.ts +0 -12
  112. package/dist/scripts/data-transformers/content-generators/generic.d.ts.map +0 -1
  113. package/dist/scripts/data-transformers/content-generators/generic.js +0 -295
  114. package/dist/scripts/data-transformers/content-generators/generic.js.map +0 -1
  115. package/dist/scripts/data-transformers/content-generators/index.d.ts +0 -84
  116. package/dist/scripts/data-transformers/content-generators/index.d.ts.map +0 -1
  117. package/dist/scripts/data-transformers/content-generators/index.js +0 -47
  118. package/dist/scripts/data-transformers/content-generators/index.js.map +0 -1
  119. package/dist/scripts/data-transformers/content-generators/interpellations.d.ts +0 -12
  120. package/dist/scripts/data-transformers/content-generators/interpellations.d.ts.map +0 -1
  121. package/dist/scripts/data-transformers/content-generators/interpellations.js +0 -124
  122. package/dist/scripts/data-transformers/content-generators/interpellations.js.map +0 -1
  123. package/dist/scripts/data-transformers/content-generators/mindmap-section.d.ts +0 -137
  124. package/dist/scripts/data-transformers/content-generators/mindmap-section.d.ts.map +0 -1
  125. package/dist/scripts/data-transformers/content-generators/mindmap-section.js +0 -286
  126. package/dist/scripts/data-transformers/content-generators/mindmap-section.js.map +0 -1
  127. package/dist/scripts/data-transformers/content-generators/month-ahead.d.ts +0 -17
  128. package/dist/scripts/data-transformers/content-generators/month-ahead.d.ts.map +0 -1
  129. package/dist/scripts/data-transformers/content-generators/month-ahead.js +0 -212
  130. package/dist/scripts/data-transformers/content-generators/month-ahead.js.map +0 -1
  131. package/dist/scripts/data-transformers/content-generators/monthly-review.d.ts +0 -17
  132. package/dist/scripts/data-transformers/content-generators/monthly-review.d.ts.map +0 -1
  133. package/dist/scripts/data-transformers/content-generators/monthly-review.js +0 -173
  134. package/dist/scripts/data-transformers/content-generators/monthly-review.js.map +0 -1
  135. package/dist/scripts/data-transformers/content-generators/motions.d.ts +0 -12
  136. package/dist/scripts/data-transformers/content-generators/motions.d.ts.map +0 -1
  137. package/dist/scripts/data-transformers/content-generators/motions.js +0 -158
  138. package/dist/scripts/data-transformers/content-generators/motions.js.map +0 -1
  139. package/dist/scripts/data-transformers/content-generators/newsworthiness.d.ts +0 -62
  140. package/dist/scripts/data-transformers/content-generators/newsworthiness.d.ts.map +0 -1
  141. package/dist/scripts/data-transformers/content-generators/newsworthiness.js +0 -254
  142. package/dist/scripts/data-transformers/content-generators/newsworthiness.js.map +0 -1
  143. package/dist/scripts/data-transformers/content-generators/propositions.d.ts +0 -12
  144. package/dist/scripts/data-transformers/content-generators/propositions.d.ts.map +0 -1
  145. package/dist/scripts/data-transformers/content-generators/propositions.js +0 -263
  146. package/dist/scripts/data-transformers/content-generators/propositions.js.map +0 -1
  147. package/dist/scripts/data-transformers/content-generators/sankey-section.d.ts +0 -92
  148. package/dist/scripts/data-transformers/content-generators/sankey-section.d.ts.map +0 -1
  149. package/dist/scripts/data-transformers/content-generators/sankey-section.js +0 -257
  150. package/dist/scripts/data-transformers/content-generators/sankey-section.js.map +0 -1
  151. package/dist/scripts/data-transformers/content-generators/shared.d.ts +0 -139
  152. package/dist/scripts/data-transformers/content-generators/shared.d.ts.map +0 -1
  153. package/dist/scripts/data-transformers/content-generators/shared.js +0 -935
  154. package/dist/scripts/data-transformers/content-generators/shared.js.map +0 -1
  155. package/dist/scripts/data-transformers/content-generators/swot-section.d.ts +0 -50
  156. package/dist/scripts/data-transformers/content-generators/swot-section.d.ts.map +0 -1
  157. package/dist/scripts/data-transformers/content-generators/swot-section.js +0 -177
  158. package/dist/scripts/data-transformers/content-generators/swot-section.js.map +0 -1
  159. package/dist/scripts/data-transformers/content-generators/week-ahead.d.ts +0 -12
  160. package/dist/scripts/data-transformers/content-generators/week-ahead.d.ts.map +0 -1
  161. package/dist/scripts/data-transformers/content-generators/week-ahead.js +0 -332
  162. package/dist/scripts/data-transformers/content-generators/week-ahead.js.map +0 -1
  163. package/dist/scripts/data-transformers/content-generators.d.ts +0 -15
  164. package/dist/scripts/data-transformers/content-generators.d.ts.map +0 -1
  165. package/dist/scripts/data-transformers/content-generators.js +0 -14
  166. package/dist/scripts/data-transformers/content-generators.js.map +0 -1
  167. package/dist/scripts/data-transformers/document-analysis.d.ts +0 -58
  168. package/dist/scripts/data-transformers/document-analysis.d.ts.map +0 -1
  169. package/dist/scripts/data-transformers/document-analysis.js +0 -396
  170. package/dist/scripts/data-transformers/document-analysis.js.map +0 -1
  171. package/dist/scripts/data-transformers/helpers.d.ts +0 -144
  172. package/dist/scripts/data-transformers/helpers.d.ts.map +0 -1
  173. package/dist/scripts/data-transformers/helpers.js +0 -408
  174. package/dist/scripts/data-transformers/helpers.js.map +0 -1
  175. package/dist/scripts/data-transformers/index.d.ts +0 -45
  176. package/dist/scripts/data-transformers/index.d.ts.map +0 -1
  177. package/dist/scripts/data-transformers/index.js +0 -66
  178. package/dist/scripts/data-transformers/index.js.map +0 -1
  179. package/dist/scripts/data-transformers/metadata.d.ts +0 -42
  180. package/dist/scripts/data-transformers/metadata.d.ts.map +0 -1
  181. package/dist/scripts/data-transformers/metadata.js +0 -385
  182. package/dist/scripts/data-transformers/metadata.js.map +0 -1
  183. package/dist/scripts/data-transformers/policy-analysis.d.ts +0 -105
  184. package/dist/scripts/data-transformers/policy-analysis.d.ts.map +0 -1
  185. package/dist/scripts/data-transformers/policy-analysis.js +0 -686
  186. package/dist/scripts/data-transformers/policy-analysis.js.map +0 -1
  187. package/dist/scripts/data-transformers/risk-analysis.d.ts +0 -104
  188. package/dist/scripts/data-transformers/risk-analysis.d.ts.map +0 -1
  189. package/dist/scripts/data-transformers/risk-analysis.js +0 -279
  190. package/dist/scripts/data-transformers/risk-analysis.js.map +0 -1
  191. package/dist/scripts/data-transformers/types.d.ts +0 -260
  192. package/dist/scripts/data-transformers/types.d.ts.map +0 -1
  193. package/dist/scripts/data-transformers/types.js +0 -11
  194. package/dist/scripts/data-transformers/types.js.map +0 -1
  195. package/dist/scripts/data-transformers.d.ts +0 -23
  196. package/dist/scripts/data-transformers.d.ts.map +0 -1
  197. package/dist/scripts/data-transformers.js +0 -35
  198. package/dist/scripts/data-transformers.js.map +0 -1
  199. package/dist/scripts/deep-inspection/index.d.ts +0 -55
  200. package/dist/scripts/deep-inspection/index.d.ts.map +0 -1
  201. package/dist/scripts/deep-inspection/index.js +0 -66
  202. package/dist/scripts/deep-inspection/index.js.map +0 -1
  203. package/dist/scripts/detect-swedish-leakage.d.ts +0 -69
  204. package/dist/scripts/detect-swedish-leakage.d.ts.map +0 -1
  205. package/dist/scripts/detect-swedish-leakage.js +0 -417
  206. package/dist/scripts/detect-swedish-leakage.js.map +0 -1
  207. package/dist/scripts/editorial-framework.d.ts +0 -121
  208. package/dist/scripts/editorial-framework.d.ts.map +0 -1
  209. package/dist/scripts/editorial-framework.js +0 -364
  210. package/dist/scripts/editorial-framework.js.map +0 -1
  211. package/dist/scripts/editorial-pillars.d.ts +0 -43
  212. package/dist/scripts/editorial-pillars.d.ts.map +0 -1
  213. package/dist/scripts/editorial-pillars.js +0 -215
  214. package/dist/scripts/editorial-pillars.js.map +0 -1
  215. package/dist/scripts/extract-news-metadata.d.ts +0 -12
  216. package/dist/scripts/extract-news-metadata.d.ts.map +0 -1
  217. package/dist/scripts/extract-news-metadata.js +0 -107
  218. package/dist/scripts/extract-news-metadata.js.map +0 -1
  219. package/dist/scripts/extract-vocabulary.d.ts +0 -15
  220. package/dist/scripts/extract-vocabulary.d.ts.map +0 -1
  221. package/dist/scripts/extract-vocabulary.js +0 -255
  222. package/dist/scripts/extract-vocabulary.js.map +0 -1
  223. package/dist/scripts/fix-article-navigation.d.ts +0 -37
  224. package/dist/scripts/fix-article-navigation.d.ts.map +0 -1
  225. package/dist/scripts/fix-article-navigation.js +0 -198
  226. package/dist/scripts/fix-article-navigation.js.map +0 -1
  227. package/dist/scripts/fix-keywords-localization.d.ts +0 -18
  228. package/dist/scripts/fix-keywords-localization.d.ts.map +0 -1
  229. package/dist/scripts/fix-keywords-localization.js +0 -270
  230. package/dist/scripts/fix-keywords-localization.js.map +0 -1
  231. package/dist/scripts/fix-old-articles-branding.d.ts +0 -17
  232. package/dist/scripts/fix-old-articles-branding.d.ts.map +0 -1
  233. package/dist/scripts/fix-old-articles-branding.js +0 -229
  234. package/dist/scripts/fix-old-articles-branding.js.map +0 -1
  235. package/dist/scripts/generate-news-backport.d.ts +0 -16
  236. package/dist/scripts/generate-news-backport.d.ts.map +0 -1
  237. package/dist/scripts/generate-news-backport.js +0 -379
  238. package/dist/scripts/generate-news-backport.js.map +0 -1
  239. package/dist/scripts/generate-news-enhanced/ai-analysis-pipeline.d.ts +0 -141
  240. package/dist/scripts/generate-news-enhanced/ai-analysis-pipeline.d.ts.map +0 -1
  241. package/dist/scripts/generate-news-enhanced/ai-analysis-pipeline.js +0 -546
  242. package/dist/scripts/generate-news-enhanced/ai-analysis-pipeline.js.map +0 -1
  243. package/dist/scripts/generate-news-enhanced/analysis-cache.d.ts +0 -59
  244. package/dist/scripts/generate-news-enhanced/analysis-cache.d.ts.map +0 -1
  245. package/dist/scripts/generate-news-enhanced/analysis-cache.js +0 -116
  246. package/dist/scripts/generate-news-enhanced/analysis-cache.js.map +0 -1
  247. package/dist/scripts/generate-news-enhanced/analysis-labels.d.ts +0 -58
  248. package/dist/scripts/generate-news-enhanced/analysis-labels.d.ts.map +0 -1
  249. package/dist/scripts/generate-news-enhanced/analysis-labels.js +0 -144
  250. package/dist/scripts/generate-news-enhanced/analysis-labels.js.map +0 -1
  251. package/dist/scripts/generate-news-enhanced/config.d.ts +0 -58
  252. package/dist/scripts/generate-news-enhanced/config.d.ts.map +0 -1
  253. package/dist/scripts/generate-news-enhanced/config.js +0 -286
  254. package/dist/scripts/generate-news-enhanced/config.js.map +0 -1
  255. package/dist/scripts/generate-news-enhanced/generators.d.ts +0 -119
  256. package/dist/scripts/generate-news-enhanced/generators.d.ts.map +0 -1
  257. package/dist/scripts/generate-news-enhanced/generators.js +0 -2131
  258. package/dist/scripts/generate-news-enhanced/generators.js.map +0 -1
  259. package/dist/scripts/generate-news-enhanced/helpers.d.ts +0 -122
  260. package/dist/scripts/generate-news-enhanced/helpers.d.ts.map +0 -1
  261. package/dist/scripts/generate-news-enhanced/helpers.js +0 -468
  262. package/dist/scripts/generate-news-enhanced/helpers.js.map +0 -1
  263. package/dist/scripts/generate-news-enhanced/index.d.ts +0 -19
  264. package/dist/scripts/generate-news-enhanced/index.d.ts.map +0 -1
  265. package/dist/scripts/generate-news-enhanced/index.js +0 -221
  266. package/dist/scripts/generate-news-enhanced/index.js.map +0 -1
  267. package/dist/scripts/generate-news-enhanced/swot-analyzer.d.ts +0 -46
  268. package/dist/scripts/generate-news-enhanced/swot-analyzer.d.ts.map +0 -1
  269. package/dist/scripts/generate-news-enhanced/swot-analyzer.js +0 -1227
  270. package/dist/scripts/generate-news-enhanced/swot-analyzer.js.map +0 -1
  271. package/dist/scripts/generate-news-enhanced/types.d.ts +0 -34
  272. package/dist/scripts/generate-news-enhanced/types.d.ts.map +0 -1
  273. package/dist/scripts/generate-news-enhanced/types.js +0 -9
  274. package/dist/scripts/generate-news-enhanced/types.js.map +0 -1
  275. package/dist/scripts/generate-news-enhanced.d.ts +0 -25
  276. package/dist/scripts/generate-news-enhanced.d.ts.map +0 -1
  277. package/dist/scripts/generate-news-enhanced.js +0 -37
  278. package/dist/scripts/generate-news-enhanced.js.map +0 -1
  279. package/dist/scripts/generate-news-indexes/constants.d.ts +0 -20
  280. package/dist/scripts/generate-news-indexes/constants.d.ts.map +0 -1
  281. package/dist/scripts/generate-news-indexes/constants.js +0 -308
  282. package/dist/scripts/generate-news-indexes/constants.js.map +0 -1
  283. package/dist/scripts/generate-news-indexes/helpers.d.ts +0 -73
  284. package/dist/scripts/generate-news-indexes/helpers.d.ts.map +0 -1
  285. package/dist/scripts/generate-news-indexes/helpers.js +0 -352
  286. package/dist/scripts/generate-news-indexes/helpers.js.map +0 -1
  287. package/dist/scripts/generate-news-indexes/index.d.ts +0 -20
  288. package/dist/scripts/generate-news-indexes/index.d.ts.map +0 -1
  289. package/dist/scripts/generate-news-indexes/index.js +0 -75
  290. package/dist/scripts/generate-news-indexes/index.js.map +0 -1
  291. package/dist/scripts/generate-news-indexes/template.d.ts +0 -25
  292. package/dist/scripts/generate-news-indexes/template.d.ts.map +0 -1
  293. package/dist/scripts/generate-news-indexes/template.js +0 -644
  294. package/dist/scripts/generate-news-indexes/template.js.map +0 -1
  295. package/dist/scripts/generate-news-indexes/types.d.ts +0 -96
  296. package/dist/scripts/generate-news-indexes/types.d.ts.map +0 -1
  297. package/dist/scripts/generate-news-indexes/types.js +0 -9
  298. package/dist/scripts/generate-news-indexes/types.js.map +0 -1
  299. package/dist/scripts/generate-news-indexes.d.ts +0 -20
  300. package/dist/scripts/generate-news-indexes.d.ts.map +0 -1
  301. package/dist/scripts/generate-news-indexes.js +0 -19
  302. package/dist/scripts/generate-news-indexes.js.map +0 -1
  303. package/dist/scripts/generate-rss.d.ts +0 -48
  304. package/dist/scripts/generate-rss.d.ts.map +0 -1
  305. package/dist/scripts/generate-rss.js +0 -299
  306. package/dist/scripts/generate-rss.js.map +0 -1
  307. package/dist/scripts/generate-sitemap-html.d.ts +0 -79
  308. package/dist/scripts/generate-sitemap-html.d.ts.map +0 -1
  309. package/dist/scripts/generate-sitemap-html.js +0 -878
  310. package/dist/scripts/generate-sitemap-html.js.map +0 -1
  311. package/dist/scripts/generate-sitemap.d.ts +0 -23
  312. package/dist/scripts/generate-sitemap.d.ts.map +0 -1
  313. package/dist/scripts/generate-sitemap.js +0 -476
  314. package/dist/scripts/generate-sitemap.js.map +0 -1
  315. package/dist/scripts/generate-types-from-cia-schemas.d.ts +0 -176
  316. package/dist/scripts/generate-types-from-cia-schemas.d.ts.map +0 -1
  317. package/dist/scripts/generate-types-from-cia-schemas.js +0 -318
  318. package/dist/scripts/generate-types-from-cia-schemas.js.map +0 -1
  319. package/dist/scripts/government-role-validator.d.ts +0 -65
  320. package/dist/scripts/government-role-validator.d.ts.map +0 -1
  321. package/dist/scripts/government-role-validator.js +0 -217
  322. package/dist/scripts/government-role-validator.js.map +0 -1
  323. package/dist/scripts/html-utils.d.ts +0 -17
  324. package/dist/scripts/html-utils.d.ts.map +0 -1
  325. package/dist/scripts/html-utils.js +0 -29
  326. package/dist/scripts/html-utils.js.map +0 -1
  327. package/dist/scripts/load-cia-stats.d.ts +0 -89
  328. package/dist/scripts/load-cia-stats.d.ts.map +0 -1
  329. package/dist/scripts/load-cia-stats.js +0 -400
  330. package/dist/scripts/load-cia-stats.js.map +0 -1
  331. package/dist/scripts/mcp-client/client.d.ts +0 -73
  332. package/dist/scripts/mcp-client/client.d.ts.map +0 -1
  333. package/dist/scripts/mcp-client/client.js +0 -526
  334. package/dist/scripts/mcp-client/client.js.map +0 -1
  335. package/dist/scripts/mcp-client/document-types.d.ts +0 -23
  336. package/dist/scripts/mcp-client/document-types.d.ts.map +0 -1
  337. package/dist/scripts/mcp-client/document-types.js +0 -62
  338. package/dist/scripts/mcp-client/document-types.js.map +0 -1
  339. package/dist/scripts/mcp-client/index.d.ts +0 -34
  340. package/dist/scripts/mcp-client/index.d.ts.map +0 -1
  341. package/dist/scripts/mcp-client/index.js +0 -67
  342. package/dist/scripts/mcp-client/index.js.map +0 -1
  343. package/dist/scripts/mcp-client/transport.d.ts +0 -32
  344. package/dist/scripts/mcp-client/transport.d.ts.map +0 -1
  345. package/dist/scripts/mcp-client/transport.js +0 -102
  346. package/dist/scripts/mcp-client/transport.js.map +0 -1
  347. package/dist/scripts/mcp-client.d.ts +0 -18
  348. package/dist/scripts/mcp-client.d.ts.map +0 -1
  349. package/dist/scripts/mcp-client.js +0 -18
  350. package/dist/scripts/mcp-client.js.map +0 -1
  351. package/dist/scripts/mcp-query-cli.d.ts +0 -25
  352. package/dist/scripts/mcp-query-cli.d.ts.map +0 -1
  353. package/dist/scripts/mcp-query-cli.js +0 -66
  354. package/dist/scripts/mcp-query-cli.js.map +0 -1
  355. package/dist/scripts/news-types/breaking-news.d.ts +0 -178
  356. package/dist/scripts/news-types/breaking-news.d.ts.map +0 -1
  357. package/dist/scripts/news-types/breaking-news.js +0 -432
  358. package/dist/scripts/news-types/breaking-news.js.map +0 -1
  359. package/dist/scripts/news-types/committee-reports.d.ts +0 -212
  360. package/dist/scripts/news-types/committee-reports.d.ts.map +0 -1
  361. package/dist/scripts/news-types/committee-reports.js +0 -404
  362. package/dist/scripts/news-types/committee-reports.js.map +0 -1
  363. package/dist/scripts/news-types/month-ahead.d.ts +0 -71
  364. package/dist/scripts/news-types/month-ahead.d.ts.map +0 -1
  365. package/dist/scripts/news-types/month-ahead.js +0 -392
  366. package/dist/scripts/news-types/month-ahead.js.map +0 -1
  367. package/dist/scripts/news-types/monthly-review.d.ts +0 -61
  368. package/dist/scripts/news-types/monthly-review.d.ts.map +0 -1
  369. package/dist/scripts/news-types/monthly-review.js +0 -417
  370. package/dist/scripts/news-types/monthly-review.js.map +0 -1
  371. package/dist/scripts/news-types/motions.d.ts +0 -214
  372. package/dist/scripts/news-types/motions.d.ts.map +0 -1
  373. package/dist/scripts/news-types/motions.js +0 -447
  374. package/dist/scripts/news-types/motions.js.map +0 -1
  375. package/dist/scripts/news-types/propositions.d.ts +0 -204
  376. package/dist/scripts/news-types/propositions.d.ts.map +0 -1
  377. package/dist/scripts/news-types/propositions.js +0 -401
  378. package/dist/scripts/news-types/propositions.js.map +0 -1
  379. package/dist/scripts/news-types/week-ahead.d.ts +0 -231
  380. package/dist/scripts/news-types/week-ahead.d.ts.map +0 -1
  381. package/dist/scripts/news-types/week-ahead.js +0 -441
  382. package/dist/scripts/news-types/week-ahead.js.map +0 -1
  383. package/dist/scripts/news-types/weekly-review/analysis.d.ts +0 -47
  384. package/dist/scripts/news-types/weekly-review/analysis.d.ts.map +0 -1
  385. package/dist/scripts/news-types/weekly-review/analysis.js +0 -276
  386. package/dist/scripts/news-types/weekly-review/analysis.js.map +0 -1
  387. package/dist/scripts/news-types/weekly-review/data-loader.d.ts +0 -51
  388. package/dist/scripts/news-types/weekly-review/data-loader.d.ts.map +0 -1
  389. package/dist/scripts/news-types/weekly-review/data-loader.js +0 -298
  390. package/dist/scripts/news-types/weekly-review/data-loader.js.map +0 -1
  391. package/dist/scripts/news-types/weekly-review/generator.d.ts +0 -18
  392. package/dist/scripts/news-types/weekly-review/generator.d.ts.map +0 -1
  393. package/dist/scripts/news-types/weekly-review/generator.js +0 -284
  394. package/dist/scripts/news-types/weekly-review/generator.js.map +0 -1
  395. package/dist/scripts/news-types/weekly-review/index.d.ts +0 -20
  396. package/dist/scripts/news-types/weekly-review/index.d.ts.map +0 -1
  397. package/dist/scripts/news-types/weekly-review/index.js +0 -23
  398. package/dist/scripts/news-types/weekly-review/index.js.map +0 -1
  399. package/dist/scripts/news-types/weekly-review/types.d.ts +0 -72
  400. package/dist/scripts/news-types/weekly-review/types.d.ts.map +0 -1
  401. package/dist/scripts/news-types/weekly-review/types.js +0 -20
  402. package/dist/scripts/news-types/weekly-review/types.js.map +0 -1
  403. package/dist/scripts/news-types/weekly-review/validation.d.ts +0 -10
  404. package/dist/scripts/news-types/weekly-review/validation.d.ts.map +0 -1
  405. package/dist/scripts/news-types/weekly-review/validation.js +0 -95
  406. package/dist/scripts/news-types/weekly-review/validation.js.map +0 -1
  407. package/dist/scripts/news-types/weekly-review.d.ts +0 -15
  408. package/dist/scripts/news-types/weekly-review.d.ts.map +0 -1
  409. package/dist/scripts/news-types/weekly-review.js +0 -14
  410. package/dist/scripts/news-types/weekly-review.js.map +0 -1
  411. package/dist/scripts/party-variants.d.ts +0 -23
  412. package/dist/scripts/party-variants.d.ts.map +0 -1
  413. package/dist/scripts/party-variants.js +0 -50
  414. package/dist/scripts/party-variants.js.map +0 -1
  415. package/dist/scripts/pipeline/index.d.ts +0 -19
  416. package/dist/scripts/pipeline/index.d.ts.map +0 -1
  417. package/dist/scripts/pipeline/index.js +0 -17
  418. package/dist/scripts/pipeline/index.js.map +0 -1
  419. package/dist/scripts/pipeline/orchestrator.d.ts +0 -56
  420. package/dist/scripts/pipeline/orchestrator.d.ts.map +0 -1
  421. package/dist/scripts/pipeline/orchestrator.js +0 -147
  422. package/dist/scripts/pipeline/orchestrator.js.map +0 -1
  423. package/dist/scripts/pipeline/types.d.ts +0 -117
  424. package/dist/scripts/pipeline/types.d.ts.map +0 -1
  425. package/dist/scripts/pipeline/types.js +0 -13
  426. package/dist/scripts/pipeline/types.js.map +0 -1
  427. package/dist/scripts/pipeline/validation.d.ts +0 -66
  428. package/dist/scripts/pipeline/validation.d.ts.map +0 -1
  429. package/dist/scripts/pipeline/validation.js +0 -129
  430. package/dist/scripts/pipeline/validation.js.map +0 -1
  431. package/dist/scripts/populate-analysis-data.d.ts +0 -41
  432. package/dist/scripts/populate-analysis-data.d.ts.map +0 -1
  433. package/dist/scripts/populate-analysis-data.js +0 -255
  434. package/dist/scripts/populate-analysis-data.js.map +0 -1
  435. package/dist/scripts/pre-article-analysis/data-downloader.d.ts +0 -80
  436. package/dist/scripts/pre-article-analysis/data-downloader.d.ts.map +0 -1
  437. package/dist/scripts/pre-article-analysis/data-downloader.js +0 -230
  438. package/dist/scripts/pre-article-analysis/data-downloader.js.map +0 -1
  439. package/dist/scripts/pre-article-analysis/data-persistence.d.ts +0 -141
  440. package/dist/scripts/pre-article-analysis/data-persistence.d.ts.map +0 -1
  441. package/dist/scripts/pre-article-analysis/data-persistence.js +0 -345
  442. package/dist/scripts/pre-article-analysis/data-persistence.js.map +0 -1
  443. package/dist/scripts/pre-article-analysis/markdown-serializer.d.ts +0 -158
  444. package/dist/scripts/pre-article-analysis/markdown-serializer.d.ts.map +0 -1
  445. package/dist/scripts/pre-article-analysis/markdown-serializer.js +0 -648
  446. package/dist/scripts/pre-article-analysis/markdown-serializer.js.map +0 -1
  447. package/dist/scripts/pre-article-analysis/pdf-converter.d.ts +0 -58
  448. package/dist/scripts/pre-article-analysis/pdf-converter.d.ts.map +0 -1
  449. package/dist/scripts/pre-article-analysis/pdf-converter.js +0 -142
  450. package/dist/scripts/pre-article-analysis/pdf-converter.js.map +0 -1
  451. package/dist/scripts/pre-article-analysis.d.ts +0 -42
  452. package/dist/scripts/pre-article-analysis.d.ts.map +0 -1
  453. package/dist/scripts/pre-article-analysis.js +0 -642
  454. package/dist/scripts/pre-article-analysis.js.map +0 -1
  455. package/dist/scripts/scb-client.d.ts +0 -104
  456. package/dist/scripts/scb-client.d.ts.map +0 -1
  457. package/dist/scripts/scb-client.js +0 -286
  458. package/dist/scripts/scb-client.js.map +0 -1
  459. package/dist/scripts/scb-context.d.ts +0 -88
  460. package/dist/scripts/scb-context.d.ts.map +0 -1
  461. package/dist/scripts/scb-context.js +0 -307
  462. package/dist/scripts/scb-context.js.map +0 -1
  463. package/dist/scripts/shared/version.d.ts +0 -9
  464. package/dist/scripts/shared/version.d.ts.map +0 -1
  465. package/dist/scripts/shared/version.js +0 -28
  466. package/dist/scripts/shared/version.js.map +0 -1
  467. package/dist/scripts/statistical-claims-detector.d.ts +0 -119
  468. package/dist/scripts/statistical-claims-detector.d.ts.map +0 -1
  469. package/dist/scripts/statistical-claims-detector.js +0 -391
  470. package/dist/scripts/statistical-claims-detector.js.map +0 -1
  471. package/dist/scripts/sync-cia-schemas.d.ts +0 -52
  472. package/dist/scripts/sync-cia-schemas.d.ts.map +0 -1
  473. package/dist/scripts/sync-cia-schemas.js +0 -195
  474. package/dist/scripts/sync-cia-schemas.js.map +0 -1
  475. package/dist/scripts/translation-dictionary.d.ts +0 -45
  476. package/dist/scripts/translation-dictionary.d.ts.map +0 -1
  477. package/dist/scripts/translation-dictionary.js +0 -3642
  478. package/dist/scripts/translation-dictionary.js.map +0 -1
  479. package/dist/scripts/types/article.d.ts +0 -392
  480. package/dist/scripts/types/article.d.ts.map +0 -1
  481. package/dist/scripts/types/article.js +0 -6
  482. package/dist/scripts/types/article.js.map +0 -1
  483. package/dist/scripts/types/content.d.ts +0 -167
  484. package/dist/scripts/types/content.d.ts.map +0 -1
  485. package/dist/scripts/types/content.js +0 -6
  486. package/dist/scripts/types/content.js.map +0 -1
  487. package/dist/scripts/types/editorial.d.ts +0 -17
  488. package/dist/scripts/types/editorial.d.ts.map +0 -1
  489. package/dist/scripts/types/editorial.js +0 -6
  490. package/dist/scripts/types/editorial.js.map +0 -1
  491. package/dist/scripts/types/language.d.ts +0 -7
  492. package/dist/scripts/types/language.d.ts.map +0 -1
  493. package/dist/scripts/types/language.js +0 -6
  494. package/dist/scripts/types/language.js.map +0 -1
  495. package/dist/scripts/types/mcp.d.ts +0 -117
  496. package/dist/scripts/types/mcp.d.ts.map +0 -1
  497. package/dist/scripts/types/mcp.js +0 -6
  498. package/dist/scripts/types/mcp.js.map +0 -1
  499. package/dist/scripts/types/party.d.ts +0 -9
  500. package/dist/scripts/types/party.d.ts.map +0 -1
  501. package/dist/scripts/types/party.js +0 -6
  502. package/dist/scripts/types/party.js.map +0 -1
  503. package/dist/scripts/types/validation.d.ts +0 -136
  504. package/dist/scripts/types/validation.d.ts.map +0 -1
  505. package/dist/scripts/types/validation.js +0 -6
  506. package/dist/scripts/types/validation.js.map +0 -1
  507. package/dist/scripts/types/workflow.d.ts +0 -78
  508. package/dist/scripts/types/workflow.d.ts.map +0 -1
  509. package/dist/scripts/types/workflow.js +0 -6
  510. package/dist/scripts/types/workflow.js.map +0 -1
  511. package/dist/scripts/update-stats-from-cia.d.ts +0 -44
  512. package/dist/scripts/update-stats-from-cia.d.ts.map +0 -1
  513. package/dist/scripts/update-stats-from-cia.js +0 -310
  514. package/dist/scripts/update-stats-from-cia.js.map +0 -1
  515. package/dist/scripts/validate-against-cia-schemas.d.ts +0 -126
  516. package/dist/scripts/validate-against-cia-schemas.d.ts.map +0 -1
  517. package/dist/scripts/validate-against-cia-schemas.js +0 -299
  518. package/dist/scripts/validate-against-cia-schemas.js.map +0 -1
  519. package/dist/scripts/validate-cross-references.d.ts +0 -49
  520. package/dist/scripts/validate-cross-references.d.ts.map +0 -1
  521. package/dist/scripts/validate-cross-references.js +0 -183
  522. package/dist/scripts/validate-cross-references.js.map +0 -1
  523. package/dist/scripts/validate-file-ownership.d.ts +0 -68
  524. package/dist/scripts/validate-file-ownership.d.ts.map +0 -1
  525. package/dist/scripts/validate-file-ownership.js +0 -135
  526. package/dist/scripts/validate-file-ownership.js.map +0 -1
  527. package/dist/scripts/validate-news-translations.d.ts +0 -27
  528. package/dist/scripts/validate-news-translations.d.ts.map +0 -1
  529. package/dist/scripts/validate-news-translations.js +0 -258
  530. package/dist/scripts/validate-news-translations.js.map +0 -1
  531. package/dist/scripts/validate-translations.d.ts +0 -162
  532. package/dist/scripts/validate-translations.d.ts.map +0 -1
  533. package/dist/scripts/validate-translations.js +0 -378
  534. package/dist/scripts/validate-translations.js.map +0 -1
  535. package/dist/scripts/workflow-state-coordinator.d.ts +0 -354
  536. package/dist/scripts/workflow-state-coordinator.d.ts.map +0 -1
  537. package/dist/scripts/workflow-state-coordinator.js +0 -876
  538. package/dist/scripts/workflow-state-coordinator.js.map +0 -1
  539. package/dist/scripts/world-bank-client.d.ts +0 -122
  540. package/dist/scripts/world-bank-client.d.ts.map +0 -1
  541. package/dist/scripts/world-bank-client.js +0 -192
  542. package/dist/scripts/world-bank-client.js.map +0 -1
  543. package/dist/scripts/world-bank-context.d.ts +0 -88
  544. package/dist/scripts/world-bank-context.d.ts.map +0 -1
  545. package/dist/scripts/world-bank-context.js +0 -331
  546. package/dist/scripts/world-bank-context.js.map +0 -1
@@ -1,526 +0,0 @@
1
- /**
2
- * @module mcp-client/client
3
- * @description MCPClient class providing typed access to 32 riksdag-regering
4
- * intelligence tools via JSON-RPC 2.0.
5
- *
6
- * @author Hack23 AB
7
- * @license Apache-2.0
8
- */
9
- import fs from 'fs';
10
- import { performPost } from './transport.js';
11
- import { annotateDocumentTypes } from './document-types.js';
12
- // ---------------------------------------------------------------------------
13
- // Constants
14
- // ---------------------------------------------------------------------------
15
- const DEFAULT_MCP_SERVER_URL = process.env['MCP_SERVER_URL'] ?? 'https://riksdag-regering-ai.onrender.com/mcp';
16
- const DEFAULT_MAX_RETRIES = 3;
17
- const RETRY_DELAY = 2000;
18
- /** Timeout in milliseconds for fetching external URLs (GitHub, etc.) */
19
- const EXTERNAL_URL_FETCH_TIMEOUT_MS = 15_000;
20
- function getDefaultTimeout() {
21
- const envVal = process.env['MCP_CLIENT_TIMEOUT_MS'];
22
- return envVal ? (Number.parseInt(envVal, 10) || 30_000) : 30_000;
23
- }
24
- /**
25
- * Resolve the default MCP auth token.
26
- * Priority:
27
- * 1. MCP_AUTH_TOKEN env var (strips "Bearer " prefix if present)
28
- * 2. MCP_GATEWAY_API_KEY env var (raw API key)
29
- * 3. gateway.apiKey from MCP config file (legacy — raw API key)
30
- * 4. mcpServers['riksdag-regering'].headers.Authorization from MCP config file
31
- * (raw API key — used as-is)
32
- *
33
- * The MCP gateway expects a raw API key (no "Bearer " prefix). If a legacy
34
- * "Bearer <key>" value is stored in the config, the prefix is stripped
35
- * automatically.
36
- */
37
- function getDefaultAuthToken() {
38
- if (process.env['MCP_AUTH_TOKEN'])
39
- return process.env['MCP_AUTH_TOKEN'].replace(/^Bearer\s+/i, '');
40
- if (process.env['MCP_GATEWAY_API_KEY'])
41
- return process.env['MCP_GATEWAY_API_KEY'];
42
- // Try reading from MCP config file
43
- const configPath = process.env['GH_AW_MCP_CONFIG'] ?? '/home/runner/.copilot/mcp-config.json';
44
- try {
45
- if (fs.existsSync(configPath)) {
46
- const raw = JSON.parse(fs.readFileSync(configPath, 'utf8'));
47
- // Priority 3: legacy gateway.apiKey
48
- const gateway = raw['gateway'];
49
- const apiKey = gateway?.['apiKey'];
50
- if (apiKey)
51
- return apiKey.replace(/^Bearer\s+/i, '');
52
- // Priority 4: mcpServers['riksdag-regering'].headers.Authorization
53
- // Strip legacy "Bearer " prefix if present — gateway expects raw API key
54
- const mcpServers = raw['mcpServers'];
55
- const rrServer = mcpServers?.['riksdag-regering'];
56
- const headers = rrServer?.['headers'];
57
- const authHeader = headers?.['Authorization'];
58
- if (authHeader)
59
- return authHeader.replace(/^Bearer\s+/i, '');
60
- }
61
- }
62
- catch {
63
- // Config file read is best-effort — fall through to empty token
64
- }
65
- return '';
66
- }
67
- const DEFAULT_MCP_AUTH_TOKEN = getDefaultAuthToken();
68
- let jsonRpcId = 1;
69
- // ---------------------------------------------------------------------------
70
- // MCPClient class
71
- // ---------------------------------------------------------------------------
72
- /**
73
- * MCP (Model Context Protocol) client providing typed access to
74
- * 32 riksdag-regering intelligence tools via JSON-RPC 2.0.
75
- */
76
- export class MCPClient {
77
- baseURL;
78
- timeout;
79
- maxRetries;
80
- customHeaders;
81
- authToken;
82
- requestCount;
83
- errorCount;
84
- sessionId;
85
- constructor(config = {}) {
86
- if (typeof config === 'string') {
87
- this.baseURL = config;
88
- this.timeout = getDefaultTimeout();
89
- this.maxRetries = DEFAULT_MAX_RETRIES;
90
- this.customHeaders = {};
91
- this.authToken = DEFAULT_MCP_AUTH_TOKEN;
92
- }
93
- else {
94
- this.baseURL = config.baseURL ?? config.serverUrl ?? DEFAULT_MCP_SERVER_URL;
95
- this.timeout = config.timeout ?? getDefaultTimeout();
96
- this.maxRetries = config.maxRetries ?? DEFAULT_MAX_RETRIES;
97
- this.customHeaders = config.headers ?? {};
98
- this.authToken = config.authToken ?? DEFAULT_MCP_AUTH_TOKEN;
99
- }
100
- this.requestCount = 0;
101
- this.errorCount = 0;
102
- this.sessionId = null;
103
- }
104
- // -----------------------------------------------------------------------
105
- // Core request
106
- // -----------------------------------------------------------------------
107
- async request(tool, params = {}, retryCount = 0, skipPrefix = false) {
108
- if (!tool || typeof tool !== 'string' || !/^[a-zA-Z0-9_-]+$/.test(tool)) {
109
- throw new Error(`Invalid tool name: ${tool}. Tool names must contain only alphanumeric characters, hyphens, and underscores.`);
110
- }
111
- if (retryCount === 0 && !skipPrefix) {
112
- this.requestCount++;
113
- }
114
- const controller = new AbortController();
115
- const timeoutId = setTimeout(() => controller.abort(), this.timeout);
116
- try {
117
- const isGateway = this.baseURL.includes('host.docker.internal') ||
118
- this.baseURL.includes('/mcp/riksdag-regering');
119
- const shouldPrefix = isGateway && !skipPrefix && !tool.includes('--');
120
- const toolName = shouldPrefix ? `riksdag-regering--${tool}` : tool;
121
- const jsonRpcRequest = {
122
- jsonrpc: '2.0',
123
- id: jsonRpcId++,
124
- method: 'tools/call',
125
- params: { name: toolName, arguments: params },
126
- };
127
- if (this.authToken && !this.sessionId) {
128
- try {
129
- await this.initializeSession();
130
- }
131
- catch {
132
- // Session init is optional
133
- }
134
- }
135
- const headers = {
136
- 'Content-Type': 'application/json',
137
- Accept: 'application/json, text/event-stream',
138
- ...this.customHeaders,
139
- };
140
- if (this.authToken)
141
- headers['Authorization'] = this.authToken;
142
- if (this.sessionId)
143
- headers['Mcp-Session-Id'] = this.sessionId;
144
- const response = await performPost(this.baseURL, headers, JSON.stringify(jsonRpcRequest), controller.signal);
145
- if (!response.ok) {
146
- let errorBody = '';
147
- try {
148
- errorBody = await response.text();
149
- }
150
- catch {
151
- // ignore
152
- }
153
- throw new Error(`MCP server error: ${response.status} ${response.statusText}${errorBody ? ' - ' + errorBody : ''}`);
154
- }
155
- const contentType = response.headers && typeof response.headers.get === 'function'
156
- ? (response.headers.get('content-type') ?? '')
157
- : '';
158
- let jsonRpcResponse;
159
- if (contentType.includes('text/event-stream')) {
160
- const text = await response.text();
161
- jsonRpcResponse = this.parseSSEResponse(text);
162
- }
163
- else {
164
- jsonRpcResponse = (await response.json());
165
- }
166
- if (jsonRpcResponse.error) {
167
- const errorMsg = jsonRpcResponse.error.message || JSON.stringify(jsonRpcResponse.error);
168
- const isToolLookupError = errorMsg.includes('not found') ||
169
- errorMsg.includes('Internal error') ||
170
- errorMsg.includes('Unknown tool') ||
171
- errorMsg.includes('unknown tool');
172
- if (isToolLookupError && toolName.startsWith('riksdag-regering--') && !skipPrefix) {
173
- const bareTool = toolName.replace(/^riksdag-regering--/, '');
174
- console.warn(`⚠️ Tool '${toolName}' not found, retrying as '${bareTool}'...`);
175
- return this.request(bareTool, params, retryCount, true);
176
- }
177
- if (errorMsg.includes('session initialization') || errorMsg.includes('Too Many Requests')) {
178
- this.sessionId = null;
179
- if (retryCount < 2) {
180
- const delay = (retryCount + 1) * 2000;
181
- console.warn(`⚠️ Session error, re-initializing after ${delay}ms...`);
182
- await new Promise((r) => setTimeout(r, delay));
183
- await this.initializeSession();
184
- return this.request(tool, params, retryCount + 1, skipPrefix);
185
- }
186
- }
187
- throw new Error(`MCP tool error: ${errorMsg}`);
188
- }
189
- const result = (jsonRpcResponse.result ?? {});
190
- const content = result['content'];
191
- if (Array.isArray(content) && content[0]?.text) {
192
- try {
193
- const parsed = JSON.parse(content[0].text);
194
- if (parsed['payloadPath']) {
195
- const fs = await import('fs');
196
- const payloadRaw = JSON.parse(fs.readFileSync(parsed['payloadPath'], 'utf8'));
197
- const payloadContent = payloadRaw['content'];
198
- const payloadText = payloadContent?.[0]?.text;
199
- if (payloadText) {
200
- try {
201
- return JSON.parse(payloadText);
202
- }
203
- catch {
204
- return { text: payloadText };
205
- }
206
- }
207
- return payloadRaw;
208
- }
209
- return parsed;
210
- }
211
- catch {
212
- return { text: content[0].text };
213
- }
214
- }
215
- return result;
216
- }
217
- catch (error) {
218
- const err = error;
219
- const errorMsg = (err.message ?? '').toLowerCase();
220
- if (retryCount < this.maxRetries - 1 &&
221
- (err.name === 'AbortError' ||
222
- errorMsg.includes('network') ||
223
- errorMsg.includes('econnrefused') ||
224
- errorMsg.includes('connection closed') ||
225
- errorMsg.includes('too many requests'))) {
226
- const delay = RETRY_DELAY * Math.pow(2, retryCount);
227
- console.warn(`⚠️ Request failed (${err.message.substring(0, 60)}), retrying after ${delay}ms (${retryCount + 1}/${this.maxRetries - 1})...`);
228
- this.sessionId = null;
229
- await this.sleep(delay);
230
- return this.request(tool, params, retryCount + 1, skipPrefix);
231
- }
232
- this.errorCount++;
233
- let errorMessage = `MCP request failed: ${err.message}`;
234
- if (err.name === 'AbortError' || errorMsg.includes('timeout')) {
235
- errorMessage += `\n\n💡 Troubleshooting tips:
236
- - The MCP server may be cold starting (Render.com free tier)
237
- - Try increasing timeout or waiting a few minutes
238
- - Server URL: ${this.baseURL}
239
- - Consider running workflow again in 5-10 minutes`;
240
- }
241
- else if (errorMsg.includes('network') ||
242
- errorMsg.includes('econnrefused') ||
243
- errorMsg.includes('fetch failed')) {
244
- errorMessage += `\n\n💡 Troubleshooting tips:
245
- - Check if MCP server is accessible: ${this.baseURL}
246
- - Verify network connectivity
247
- - The server may be temporarily unavailable
248
- - Try manual workflow dispatch with force_generation=true`;
249
- }
250
- throw new Error(errorMessage, { cause: error });
251
- }
252
- finally {
253
- clearTimeout(timeoutId);
254
- }
255
- }
256
- // -----------------------------------------------------------------------
257
- // Utilities
258
- // -----------------------------------------------------------------------
259
- async sleep(ms) {
260
- return new Promise((resolve) => setTimeout(resolve, ms));
261
- }
262
- parseSSEResponse(text) {
263
- const lines = text.split('\n');
264
- for (const line of lines) {
265
- if (line.startsWith('data: ')) {
266
- return JSON.parse(line.substring(6));
267
- }
268
- }
269
- return JSON.parse(text);
270
- }
271
- async initializeSession() {
272
- if (this.sessionId || !this.authToken)
273
- return;
274
- const controller = new AbortController();
275
- const timeoutId = setTimeout(() => controller.abort(), this.timeout);
276
- try {
277
- const headers = {
278
- 'Content-Type': 'application/json',
279
- Accept: 'application/json, text/event-stream',
280
- ...this.customHeaders,
281
- };
282
- if (this.authToken)
283
- headers['Authorization'] = this.authToken;
284
- const response = await performPost(this.baseURL, headers, JSON.stringify({
285
- jsonrpc: '2.0',
286
- id: jsonRpcId++,
287
- method: 'initialize',
288
- params: {
289
- protocolVersion: '2024-11-05',
290
- capabilities: {},
291
- clientInfo: { name: 'riksdagsmonitor-news', version: '1.0.0' },
292
- },
293
- }), controller.signal);
294
- if (!response.ok) {
295
- throw new Error(`Session init failed: ${response.status} ${response.statusText}`);
296
- }
297
- const sessionId = response.headers && typeof response.headers.get === 'function'
298
- ? response.headers.get('Mcp-Session-Id')
299
- : null;
300
- if (sessionId) {
301
- this.sessionId = sessionId;
302
- console.log(` 🔗 MCP session initialized: ${sessionId.substring(0, 8)}...`);
303
- }
304
- await performPost(this.baseURL, {
305
- ...headers,
306
- ...(this.sessionId ? { 'Mcp-Session-Id': this.sessionId } : {}),
307
- }, JSON.stringify({
308
- jsonrpc: '2.0',
309
- method: 'notifications/initialized',
310
- }), controller.signal);
311
- }
312
- finally {
313
- clearTimeout(timeoutId);
314
- }
315
- }
316
- // -----------------------------------------------------------------------
317
- // Data-fetching methods
318
- // -----------------------------------------------------------------------
319
- async fetchCalendarEvents(from, tom, org = null, akt = null) {
320
- const params = { from, tom };
321
- if (org)
322
- params['org'] = org;
323
- if (akt)
324
- params['akt'] = akt;
325
- const response = await this.request('get_calendar_events', params);
326
- return (response['kalender'] ?? response['events'] ?? []);
327
- }
328
- async fetchCommitteeReports(limit = 10, rm = null, organ = null) {
329
- const params = { limit };
330
- if (rm)
331
- params['rm'] = rm;
332
- if (organ)
333
- params['organ'] = organ;
334
- const response = await this.request('get_betankanden', params);
335
- return (response['dokument'] ?? response['reports'] ?? []);
336
- }
337
- async fetchPropositions(limit = 10, rm = null) {
338
- const params = { limit };
339
- if (rm)
340
- params['rm'] = rm;
341
- const response = await this.request('get_propositioner', params);
342
- return (response['dokument'] ?? response['propositions'] ?? []);
343
- }
344
- async fetchMotions(limit = 10, rm = null) {
345
- const params = { limit };
346
- if (rm)
347
- params['rm'] = rm;
348
- const response = await this.request('get_motioner', params);
349
- return (response['dokument'] ?? response['motions'] ?? []);
350
- }
351
- async fetchWrittenQuestions(params = {}) {
352
- const reqParams = { limit: params.limit ?? 20 };
353
- if (params.rm)
354
- reqParams['rm'] = params.rm;
355
- const response = await this.request('get_fragor', reqParams);
356
- return (response['dokument'] ?? response['questions'] ?? []);
357
- }
358
- async fetchInterpellations(params = {}) {
359
- const reqParams = { limit: params.limit ?? 15 };
360
- if (params.rm)
361
- reqParams['rm'] = params.rm;
362
- const response = await this.request('get_interpellationer', reqParams);
363
- return (response['dokument'] ?? response['interpellations'] ?? []);
364
- }
365
- async searchDocuments(searchParams) {
366
- const response = await this.request('search_dokument', searchParams);
367
- const raw = (response['dokument'] ?? response['documents'] ?? []);
368
- return raw.map(d => annotateDocumentTypes(d));
369
- }
370
- async searchSpeeches(searchParams) {
371
- const response = await this.request('search_anforanden', searchParams);
372
- return (response['anforanden'] ?? response['speeches'] ?? []);
373
- }
374
- async fetchMPs(filters = {}) {
375
- const response = await this.request('search_ledamoter', filters);
376
- return (response['mps'] ?? []);
377
- }
378
- async fetchVotingRecords(filters) {
379
- const response = await this.request('search_voteringar', filters);
380
- return (response['votes'] ?? []);
381
- }
382
- async fetchVotingGroup(params = {}) {
383
- const response = await this.request('get_voting_group', params);
384
- // MCP server returns 'groups' when groupBy is provided (grouped results),
385
- // or 'votes' when no grouping is applied (flat voting list fallback)
386
- return (response['groups'] ?? response['votes'] ?? []);
387
- }
388
- async fetchGovernmentDocuments(searchParams) {
389
- const response = await this.request('search_regering', searchParams);
390
- return (response['documents'] ?? []);
391
- }
392
- async fetchDocumentDetails(dok_id, include_full_text = true) {
393
- const response = await this.request('get_dokument_innehall', {
394
- dok_id,
395
- include_full_text,
396
- });
397
- return response;
398
- }
399
- async enrichDocumentsWithContent(documents, concurrency = 3) {
400
- const safeConcurrency = Math.max(1, Math.floor(concurrency));
401
- const enriched = [];
402
- for (let i = 0; i < documents.length; i += safeConcurrency) {
403
- const batch = documents.slice(i, i + safeConcurrency);
404
- const batchResults = await Promise.allSettled(batch.map(async (doc) => {
405
- const dok_id = doc.dokumentnamn ?? doc.dok_id ?? doc.id;
406
- if (!dok_id) {
407
- console.warn('⚠️ Document missing ID:', doc);
408
- return { ...doc, contentFetchError: 'No document ID' };
409
- }
410
- try {
411
- const details = await this.fetchDocumentDetails(dok_id, false);
412
- const intressent = (details['intressent'] ?? {});
413
- const author = intressent['tilltalsnamn']
414
- ? `${intressent['tilltalsnamn']} ${intressent['efternamn']}`.trim()
415
- : doc.intressent_namn ?? intressent['namn'] ?? 'Unknown';
416
- const party = intressent['parti'] ?? doc.parti ?? 'Unknown';
417
- const summary = details['summary'] ??
418
- doc.summary ??
419
- details['notis'] ??
420
- doc.notis ??
421
- '';
422
- return {
423
- ...doc,
424
- ...details,
425
- author,
426
- parti: party,
427
- intressent_namn: author,
428
- summary,
429
- contentFetched: true,
430
- };
431
- }
432
- catch (error) {
433
- const errMsg = error.message;
434
- console.error(`❌ Failed to enrich document ${dok_id}:`, errMsg);
435
- return { ...doc, contentFetchError: errMsg };
436
- }
437
- }));
438
- for (let idx = 0; idx < batchResults.length; idx++) {
439
- const result = batchResults[idx];
440
- if (result.status === 'fulfilled') {
441
- enriched.push(result.value);
442
- }
443
- else {
444
- const failedDoc = batch[idx];
445
- const failedDokId = failedDoc.dokumentnamn ?? failedDoc.dok_id ?? failedDoc.id ?? 'unknown';
446
- console.error(`❌ Batch enrichment failed for document ${failedDokId}:`, result.reason);
447
- enriched.push({ ...failedDoc, contentFetchError: result.reason.message });
448
- }
449
- }
450
- if (i + safeConcurrency < documents.length) {
451
- await new Promise((resolve) => setTimeout(resolve, 200));
452
- }
453
- }
454
- return enriched;
455
- }
456
- /**
457
- * Fetch government document content from regeringen.se via g0v.se.
458
- * Uses the get_g0v_document_content MCP tool to retrieve Markdown content.
459
- *
460
- * The g0v MCP tool response typically contains:
461
- * - `content` (primary): Markdown content of the document
462
- * - `markdown` (fallback): Alias used by some g0v API versions
463
- * - `text` (fallback): Plain text content when Markdown is unavailable
464
- *
465
- * @param regeringenUrl - Full URL to a document on regeringen.se
466
- * @returns Markdown content of the document, or null if unavailable
467
- */
468
- async fetchGovernmentDocumentContent(regeringenUrl) {
469
- try {
470
- const response = await this.request('get_g0v_document_content', {
471
- regeringenUrl,
472
- });
473
- // g0v API returns content in 'content' field; 'markdown'/'text' are fallbacks
474
- return (response['content'] ?? response['markdown'] ?? response['text'] ?? null);
475
- }
476
- catch (error) {
477
- console.warn(`⚠️ Could not fetch government document content for ${regeringenUrl}: ${error.message}`);
478
- return null;
479
- }
480
- }
481
- /**
482
- * Fetch raw text content from an external URL (e.g. GitHub raw, other public URLs).
483
- * Performs a simple HTTP GET and returns the response body as text.
484
- * Uses a 15-second timeout to avoid hanging on slow external resources.
485
- *
486
- * @param rawUrl - Full URL to fetch (must be publicly accessible)
487
- * @returns Text content of the resource, or null if unavailable
488
- */
489
- async fetchExternalUrlContent(rawUrl) {
490
- try {
491
- const controller = new AbortController();
492
- const timeout = setTimeout(() => controller.abort(), EXTERNAL_URL_FETCH_TIMEOUT_MS);
493
- const response = await fetch(rawUrl, {
494
- signal: controller.signal,
495
- headers: { 'Accept': 'text/plain, text/markdown, text/html, */*' },
496
- });
497
- clearTimeout(timeout);
498
- if (!response.ok) {
499
- console.warn(`⚠️ HTTP ${response.status} fetching external URL: ${rawUrl}`);
500
- return null;
501
- }
502
- return await response.text();
503
- }
504
- catch (error) {
505
- console.warn(`⚠️ Could not fetch external URL ${rawUrl}: ${error.message}`);
506
- return null;
507
- }
508
- }
509
- // -----------------------------------------------------------------------
510
- // Statistics
511
- // -----------------------------------------------------------------------
512
- getStats() {
513
- return {
514
- requests: this.requestCount,
515
- errors: this.errorCount,
516
- successRate: this.requestCount > 0
517
- ? Math.round(((this.requestCount - this.errorCount) / this.requestCount) * 100) + '%'
518
- : '0%',
519
- };
520
- }
521
- resetStats() {
522
- this.requestCount = 0;
523
- this.errorCount = 0;
524
- }
525
- }
526
- //# sourceMappingURL=client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../scripts/mcp-client/client.ts"],"names":[],"mappings":"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"}
@@ -1,23 +0,0 @@
1
- /**
2
- * @module mcp-client/document-types
3
- * @description Riksdag document type normalisation. Maps raw Swedish
4
- * `doktyp` API codes to human-readable English type strings and stamps
5
- * documents with normalised `type`/`subtype` fields.
6
- *
7
- * @author Hack23 AB
8
- * @license Apache-2.0
9
- */
10
- /**
11
- * Normalize a raw `doktyp` API code to a human-readable `type` string.
12
- * Returns the code unchanged when not recognised, so unknown types remain
13
- * discoverable rather than silently dropping to 'unknown'.
14
- */
15
- export declare function normalizeDocumentType(doktyp: string | undefined): string;
16
- /**
17
- * Stamp `type` and `subtype` fields onto a raw API document record in place.
18
- * - `type` = normalised English label derived from `doktyp`
19
- * - `subtype` = mirrors the raw `subtyp` field (kept as-is; Swedish codes)
20
- * The raw `doktyp` field is preserved untouched for backward compatibility.
21
- */
22
- export declare function annotateDocumentTypes(doc: Record<string, unknown>): Record<string, unknown>;
23
- //# sourceMappingURL=document-types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"document-types.d.ts","sourceRoot":"","sources":["../../../scripts/mcp-client/document-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA6BH;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAIxE;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAM3F"}
@@ -1,62 +0,0 @@
1
- /**
2
- * @module mcp-client/document-types
3
- * @description Riksdag document type normalisation. Maps raw Swedish
4
- * `doktyp` API codes to human-readable English type strings and stamps
5
- * documents with normalised `type`/`subtype` fields.
6
- *
7
- * @author Hack23 AB
8
- * @license Apache-2.0
9
- */
10
- /**
11
- * Map of Swedish riksdag API `doktyp` codes to normalized English type strings.
12
- *
13
- * Source: https://data.riksdagen.se/dokumentlista/dokumenttyper/
14
- */
15
- const DOKTYP_TO_TYPE = {
16
- mot: 'motion',
17
- bet: 'committee-report',
18
- prop: 'proposition',
19
- skr: 'government-communication',
20
- ip: 'interpellation',
21
- fr: 'written-question',
22
- kammakt: 'chamber-action',
23
- prot: 'minutes',
24
- sfs: 'statute',
25
- sfst: 'statute-consolidated',
26
- ds: 'departmental-report',
27
- sou: 'government-inquiry',
28
- dir: 'committee-directive',
29
- yttr: 'external-opinion',
30
- fpm: 'eu-factsheet',
31
- utl: 'referral',
32
- redog: 'government-account',
33
- rskr: 'riksdag-communication',
34
- samtr: 'joint-committee-report',
35
- };
36
- /**
37
- * Normalize a raw `doktyp` API code to a human-readable `type` string.
38
- * Returns the code unchanged when not recognised, so unknown types remain
39
- * discoverable rather than silently dropping to 'unknown'.
40
- */
41
- export function normalizeDocumentType(doktyp) {
42
- if (!doktyp)
43
- return 'document';
44
- const lower = doktyp.toLowerCase().trim();
45
- return DOKTYP_TO_TYPE[lower] ?? lower;
46
- }
47
- /**
48
- * Stamp `type` and `subtype` fields onto a raw API document record in place.
49
- * - `type` = normalised English label derived from `doktyp`
50
- * - `subtype` = mirrors the raw `subtyp` field (kept as-is; Swedish codes)
51
- * The raw `doktyp` field is preserved untouched for backward compatibility.
52
- */
53
- export function annotateDocumentTypes(doc) {
54
- const doktyp = typeof doc['doktyp'] === 'string' ? doc['doktyp'] : undefined;
55
- const subtyp = typeof doc['subtyp'] === 'string' ? doc['subtyp'] : undefined;
56
- if (!doc['type'])
57
- doc['type'] = normalizeDocumentType(doktyp);
58
- if (!doc['subtype'] && subtyp)
59
- doc['subtype'] = subtyp;
60
- return doc;
61
- }
62
- //# sourceMappingURL=document-types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"document-types.js","sourceRoot":"","sources":["../../../scripts/mcp-client/document-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;GAIG;AACH,MAAM,cAAc,GAAqC;IACvD,GAAG,EAAO,QAAQ;IAClB,GAAG,EAAO,kBAAkB;IAC5B,IAAI,EAAM,aAAa;IACvB,GAAG,EAAO,0BAA0B;IACpC,EAAE,EAAQ,gBAAgB;IAC1B,EAAE,EAAQ,kBAAkB;IAC5B,OAAO,EAAG,gBAAgB;IAC1B,IAAI,EAAM,SAAS;IACnB,GAAG,EAAO,SAAS;IACnB,IAAI,EAAM,sBAAsB;IAChC,EAAE,EAAQ,qBAAqB;IAC/B,GAAG,EAAO,oBAAoB;IAC9B,GAAG,EAAO,qBAAqB;IAC/B,IAAI,EAAM,kBAAkB;IAC5B,GAAG,EAAO,cAAc;IACxB,GAAG,EAAO,UAAU;IACpB,KAAK,EAAK,oBAAoB;IAC9B,IAAI,EAAM,uBAAuB;IACjC,KAAK,EAAK,wBAAwB;CACnC,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAA0B;IAC9D,IAAI,CAAC,MAAM;QAAE,OAAO,UAAU,CAAC;IAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;IAC1C,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;AACxC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAA4B;IAChE,MAAM,MAAM,GAAG,OAAO,GAAG,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7E,MAAM,MAAM,GAAG,OAAO,GAAG,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7E,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;QAAK,GAAG,CAAC,MAAM,CAAC,GAAM,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACpE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,MAAM;QAAE,GAAG,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC;IACvD,OAAO,GAAG,CAAC;AACb,CAAC"}