riksdagsmonitor 0.8.14 → 0.8.15

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 (779) hide show
  1. package/dist/lib/cia/dashboard-init.d.ts +26 -0
  2. package/dist/lib/cia/dashboard-init.d.ts.map +1 -0
  3. package/dist/lib/cia/dashboard-init.js +108 -0
  4. package/dist/lib/cia/dashboard-init.js.map +1 -0
  5. package/dist/lib/cia/data-loader.d.ts +408 -0
  6. package/dist/lib/cia/data-loader.d.ts.map +1 -0
  7. package/dist/lib/cia/data-loader.js +867 -0
  8. package/dist/lib/cia/data-loader.js.map +1 -0
  9. package/dist/lib/cia/election-predictions.d.ts +78 -0
  10. package/dist/lib/cia/election-predictions.d.ts.map +1 -0
  11. package/dist/lib/cia/election-predictions.js +259 -0
  12. package/dist/lib/cia/election-predictions.js.map +1 -0
  13. package/dist/lib/cia/i18n-translations.d.ts +111 -0
  14. package/dist/lib/cia/i18n-translations.d.ts.map +1 -0
  15. package/dist/lib/cia/i18n-translations.js +619 -0
  16. package/dist/lib/cia/i18n-translations.js.map +1 -0
  17. package/dist/lib/cia/visualizations.d.ts +64 -0
  18. package/dist/lib/cia/visualizations.d.ts.map +1 -0
  19. package/dist/lib/cia/visualizations.js +662 -0
  20. package/dist/lib/cia/visualizations.js.map +1 -0
  21. package/dist/lib/dashboards/anomaly-detection.d.ts +44 -0
  22. package/dist/lib/dashboards/anomaly-detection.d.ts.map +1 -0
  23. package/dist/lib/dashboards/anomaly-detection.js +1017 -0
  24. package/dist/lib/dashboards/anomaly-detection.js.map +1 -0
  25. package/dist/lib/dashboards/coalition-dashboard.d.ts +36 -0
  26. package/dist/lib/dashboards/coalition-dashboard.d.ts.map +1 -0
  27. package/dist/lib/dashboards/coalition-dashboard.js +629 -0
  28. package/dist/lib/dashboards/coalition-dashboard.js.map +1 -0
  29. package/dist/lib/dashboards/coalition-loader.d.ts +43 -0
  30. package/dist/lib/dashboards/coalition-loader.d.ts.map +1 -0
  31. package/dist/lib/dashboards/coalition-loader.js +665 -0
  32. package/dist/lib/dashboards/coalition-loader.js.map +1 -0
  33. package/dist/lib/dashboards/committees-dashboard.d.ts +23 -0
  34. package/dist/lib/dashboards/committees-dashboard.d.ts.map +1 -0
  35. package/dist/lib/dashboards/committees-dashboard.js +886 -0
  36. package/dist/lib/dashboards/committees-dashboard.js.map +1 -0
  37. package/dist/lib/dashboards/election-cycle.d.ts +62 -0
  38. package/dist/lib/dashboards/election-cycle.d.ts.map +1 -0
  39. package/dist/lib/dashboards/election-cycle.js +484 -0
  40. package/dist/lib/dashboards/election-cycle.js.map +1 -0
  41. package/dist/lib/dashboards/ministry-dashboard.d.ts +46 -0
  42. package/dist/lib/dashboards/ministry-dashboard.d.ts.map +1 -0
  43. package/dist/lib/dashboards/ministry-dashboard.js +1114 -0
  44. package/dist/lib/dashboards/ministry-dashboard.js.map +1 -0
  45. package/dist/lib/dashboards/party-dashboard.d.ts +56 -0
  46. package/dist/lib/dashboards/party-dashboard.d.ts.map +1 -0
  47. package/dist/lib/dashboards/party-dashboard.js +981 -0
  48. package/dist/lib/dashboards/party-dashboard.js.map +1 -0
  49. package/dist/lib/dashboards/politician-dashboard.d.ts +41 -0
  50. package/dist/lib/dashboards/politician-dashboard.d.ts.map +1 -0
  51. package/dist/lib/dashboards/politician-dashboard.js +611 -0
  52. package/dist/lib/dashboards/politician-dashboard.js.map +1 -0
  53. package/dist/lib/dashboards/pre-election.d.ts +64 -0
  54. package/dist/lib/dashboards/pre-election.d.ts.map +1 -0
  55. package/dist/lib/dashboards/pre-election.js +604 -0
  56. package/dist/lib/dashboards/pre-election.js.map +1 -0
  57. package/dist/lib/dashboards/risk-dashboard.d.ts +37 -0
  58. package/dist/lib/dashboards/risk-dashboard.d.ts.map +1 -0
  59. package/dist/lib/dashboards/risk-dashboard.js +863 -0
  60. package/dist/lib/dashboards/risk-dashboard.js.map +1 -0
  61. package/dist/lib/dashboards/seasonal-patterns.d.ts +24 -0
  62. package/dist/lib/dashboards/seasonal-patterns.d.ts.map +1 -0
  63. package/dist/lib/dashboards/seasonal-patterns.js +535 -0
  64. package/dist/lib/dashboards/seasonal-patterns.js.map +1 -0
  65. package/dist/lib/dashboards/stats-loader.d.ts +35 -0
  66. package/dist/lib/dashboards/stats-loader.d.ts.map +1 -0
  67. package/dist/lib/dashboards/stats-loader.js +145 -0
  68. package/dist/lib/dashboards/stats-loader.js.map +1 -0
  69. package/dist/lib/shared/chart-factory.d.ts.map +1 -0
  70. package/dist/lib/shared/chart-factory.js.map +1 -0
  71. package/dist/lib/shared/data-loader.d.ts.map +1 -0
  72. package/dist/lib/shared/data-loader.js.map +1 -0
  73. package/dist/lib/shared/dom-utils.d.ts.map +1 -0
  74. package/dist/lib/shared/dom-utils.js.map +1 -0
  75. package/dist/lib/shared/error-boundary.d.ts.map +1 -0
  76. package/dist/lib/shared/error-boundary.js.map +1 -0
  77. package/dist/lib/shared/fallback-ui.d.ts.map +1 -0
  78. package/dist/lib/shared/fallback-ui.js.map +1 -0
  79. package/dist/lib/shared/index.d.ts.map +1 -0
  80. package/dist/lib/shared/index.js.map +1 -0
  81. package/dist/lib/shared/logger.d.ts.map +1 -0
  82. package/dist/lib/shared/logger.js.map +1 -0
  83. package/dist/lib/shared/register-globals.d.ts +14 -0
  84. package/dist/lib/shared/register-globals.d.ts.map +1 -0
  85. package/dist/lib/shared/register-globals.js +21 -0
  86. package/dist/lib/shared/register-globals.js.map +1 -0
  87. package/dist/lib/shared/theme.d.ts.map +1 -0
  88. package/dist/lib/shared/theme.js.map +1 -0
  89. package/dist/lib/shared/types.d.ts.map +1 -0
  90. package/dist/lib/shared/types.js.map +1 -0
  91. package/dist/lib/ui/back-to-top.d.ts +13 -0
  92. package/dist/lib/ui/back-to-top.d.ts.map +1 -0
  93. package/dist/lib/ui/back-to-top.js +48 -0
  94. package/dist/lib/ui/back-to-top.js.map +1 -0
  95. package/dist/scripts/ai-analysis/coalition-detector.d.ts +28 -0
  96. package/dist/scripts/ai-analysis/coalition-detector.d.ts.map +1 -0
  97. package/dist/scripts/ai-analysis/coalition-detector.js +242 -0
  98. package/dist/scripts/ai-analysis/coalition-detector.js.map +1 -0
  99. package/dist/scripts/ai-analysis/dashboard-analyzer.d.ts +73 -0
  100. package/dist/scripts/ai-analysis/dashboard-analyzer.d.ts.map +1 -0
  101. package/dist/scripts/ai-analysis/dashboard-analyzer.js +511 -0
  102. package/dist/scripts/ai-analysis/dashboard-analyzer.js.map +1 -0
  103. package/dist/scripts/ai-analysis/document-analyzer.d.ts +196 -0
  104. package/dist/scripts/ai-analysis/document-analyzer.d.ts.map +1 -0
  105. package/dist/scripts/ai-analysis/document-analyzer.js +1001 -0
  106. package/dist/scripts/ai-analysis/document-analyzer.js.map +1 -0
  107. package/dist/scripts/ai-analysis/domains/index.d.ts +15 -0
  108. package/dist/scripts/ai-analysis/domains/index.d.ts.map +1 -0
  109. package/dist/scripts/ai-analysis/domains/index.js +494 -0
  110. package/dist/scripts/ai-analysis/domains/index.js.map +1 -0
  111. package/dist/scripts/ai-analysis/helpers.d.ts +43 -0
  112. package/dist/scripts/ai-analysis/helpers.d.ts.map +1 -0
  113. package/dist/scripts/ai-analysis/helpers.js +79 -0
  114. package/dist/scripts/ai-analysis/helpers.js.map +1 -0
  115. package/dist/scripts/ai-analysis/index.d.ts +15 -0
  116. package/dist/scripts/ai-analysis/index.d.ts.map +1 -0
  117. package/dist/scripts/ai-analysis/index.js +14 -0
  118. package/dist/scripts/ai-analysis/index.js.map +1 -0
  119. package/dist/scripts/ai-analysis/pipeline.d.ts +41 -0
  120. package/dist/scripts/ai-analysis/pipeline.d.ts.map +1 -0
  121. package/dist/scripts/ai-analysis/pipeline.js +208 -0
  122. package/dist/scripts/ai-analysis/pipeline.js.map +1 -0
  123. package/dist/scripts/ai-analysis/political-significance.d.ts +63 -0
  124. package/dist/scripts/ai-analysis/political-significance.d.ts.map +1 -0
  125. package/dist/scripts/ai-analysis/political-significance.js +227 -0
  126. package/dist/scripts/ai-analysis/political-significance.js.map +1 -0
  127. package/dist/scripts/ai-analysis/quality-assessor.d.ts +104 -0
  128. package/dist/scripts/ai-analysis/quality-assessor.d.ts.map +1 -0
  129. package/dist/scripts/ai-analysis/quality-assessor.js +554 -0
  130. package/dist/scripts/ai-analysis/quality-assessor.js.map +1 -0
  131. package/dist/scripts/ai-analysis/swot/index.d.ts +56 -0
  132. package/dist/scripts/ai-analysis/swot/index.d.ts.map +1 -0
  133. package/dist/scripts/ai-analysis/swot/index.js +360 -0
  134. package/dist/scripts/ai-analysis/swot/index.js.map +1 -0
  135. package/dist/scripts/ai-analysis/swot/placeholders.d.ts +30 -0
  136. package/dist/scripts/ai-analysis/swot/placeholders.d.ts.map +1 -0
  137. package/dist/scripts/ai-analysis/swot/placeholders.js +381 -0
  138. package/dist/scripts/ai-analysis/swot/placeholders.js.map +1 -0
  139. package/dist/scripts/ai-analysis/types.d.ts +333 -0
  140. package/dist/scripts/ai-analysis/types.d.ts.map +1 -0
  141. package/dist/scripts/ai-analysis/types.js +19 -0
  142. package/dist/scripts/ai-analysis/types.js.map +1 -0
  143. package/dist/scripts/ai-analysis/visualisation/index.d.ts +15 -0
  144. package/dist/scripts/ai-analysis/visualisation/index.d.ts.map +1 -0
  145. package/dist/scripts/ai-analysis/visualisation/index.js +179 -0
  146. package/dist/scripts/ai-analysis/visualisation/index.js.map +1 -0
  147. package/dist/scripts/analysis-framework/cross-reference.d.ts +35 -0
  148. package/dist/scripts/analysis-framework/cross-reference.d.ts.map +1 -0
  149. package/dist/scripts/analysis-framework/cross-reference.js +290 -0
  150. package/dist/scripts/analysis-framework/cross-reference.js.map +1 -0
  151. package/dist/scripts/analysis-framework/index.d.ts +79 -0
  152. package/dist/scripts/analysis-framework/index.d.ts.map +1 -0
  153. package/dist/scripts/analysis-framework/index.js +133 -0
  154. package/dist/scripts/analysis-framework/index.js.map +1 -0
  155. package/dist/scripts/analysis-framework/lenses/citizen.d.ts +29 -0
  156. package/dist/scripts/analysis-framework/lenses/citizen.d.ts.map +1 -0
  157. package/dist/scripts/analysis-framework/lenses/citizen.js +220 -0
  158. package/dist/scripts/analysis-framework/lenses/citizen.js.map +1 -0
  159. package/dist/scripts/analysis-framework/lenses/economic.d.ts +29 -0
  160. package/dist/scripts/analysis-framework/lenses/economic.d.ts.map +1 -0
  161. package/dist/scripts/analysis-framework/lenses/economic.js +227 -0
  162. package/dist/scripts/analysis-framework/lenses/economic.js.map +1 -0
  163. package/dist/scripts/analysis-framework/lenses/government.d.ts +32 -0
  164. package/dist/scripts/analysis-framework/lenses/government.d.ts.map +1 -0
  165. package/dist/scripts/analysis-framework/lenses/government.js +265 -0
  166. package/dist/scripts/analysis-framework/lenses/government.js.map +1 -0
  167. package/dist/scripts/analysis-framework/lenses/international.d.ts +29 -0
  168. package/dist/scripts/analysis-framework/lenses/international.d.ts.map +1 -0
  169. package/dist/scripts/analysis-framework/lenses/international.js +248 -0
  170. package/dist/scripts/analysis-framework/lenses/international.js.map +1 -0
  171. package/dist/scripts/analysis-framework/lenses/media.d.ts +29 -0
  172. package/dist/scripts/analysis-framework/lenses/media.d.ts.map +1 -0
  173. package/dist/scripts/analysis-framework/lenses/media.js +211 -0
  174. package/dist/scripts/analysis-framework/lenses/media.js.map +1 -0
  175. package/dist/scripts/analysis-framework/lenses/opposition.d.ts +29 -0
  176. package/dist/scripts/analysis-framework/lenses/opposition.d.ts.map +1 -0
  177. package/dist/scripts/analysis-framework/lenses/opposition.js +234 -0
  178. package/dist/scripts/analysis-framework/lenses/opposition.js.map +1 -0
  179. package/dist/scripts/analysis-framework/methodology-types.d.ts +309 -0
  180. package/dist/scripts/analysis-framework/methodology-types.d.ts.map +1 -0
  181. package/dist/scripts/analysis-framework/methodology-types.js +38 -0
  182. package/dist/scripts/analysis-framework/methodology-types.js.map +1 -0
  183. package/dist/scripts/analysis-framework/political-classification.d.ts +58 -0
  184. package/dist/scripts/analysis-framework/political-classification.d.ts.map +1 -0
  185. package/dist/scripts/analysis-framework/political-classification.js +414 -0
  186. package/dist/scripts/analysis-framework/political-classification.js.map +1 -0
  187. package/dist/scripts/analysis-framework/political-risk-assessment.d.ts +74 -0
  188. package/dist/scripts/analysis-framework/political-risk-assessment.d.ts.map +1 -0
  189. package/dist/scripts/analysis-framework/political-risk-assessment.js +656 -0
  190. package/dist/scripts/analysis-framework/political-risk-assessment.js.map +1 -0
  191. package/dist/scripts/analysis-framework/political-threat-analysis.d.ts +65 -0
  192. package/dist/scripts/analysis-framework/political-threat-analysis.d.ts.map +1 -0
  193. package/dist/scripts/analysis-framework/political-threat-analysis.js +553 -0
  194. package/dist/scripts/analysis-framework/political-threat-analysis.js.map +1 -0
  195. package/dist/scripts/analysis-framework/significance-scorer.d.ts +62 -0
  196. package/dist/scripts/analysis-framework/significance-scorer.d.ts.map +1 -0
  197. package/dist/scripts/analysis-framework/significance-scorer.js +196 -0
  198. package/dist/scripts/analysis-framework/significance-scorer.js.map +1 -0
  199. package/dist/scripts/analysis-framework/types.d.ts +138 -0
  200. package/dist/scripts/analysis-framework/types.d.ts.map +1 -0
  201. package/dist/scripts/analysis-framework/types.js +12 -0
  202. package/dist/scripts/analysis-framework/types.js.map +1 -0
  203. package/dist/scripts/analysis-reader.d.ts +240 -0
  204. package/dist/scripts/analysis-reader.d.ts.map +1 -0
  205. package/dist/scripts/analysis-reader.js +495 -0
  206. package/dist/scripts/analysis-reader.js.map +1 -0
  207. package/dist/scripts/article-quality-enhancer.d.ts +148 -0
  208. package/dist/scripts/article-quality-enhancer.d.ts.map +1 -0
  209. package/dist/scripts/article-quality-enhancer.js +430 -0
  210. package/dist/scripts/article-quality-enhancer.js.map +1 -0
  211. package/dist/scripts/article-template/constants.d.ts +104 -0
  212. package/dist/scripts/article-template/constants.d.ts.map +1 -0
  213. package/dist/scripts/article-template/constants.js +225 -0
  214. package/dist/scripts/article-template/constants.js.map +1 -0
  215. package/dist/scripts/article-template/helpers.d.ts +83 -0
  216. package/dist/scripts/article-template/helpers.d.ts.map +1 -0
  217. package/dist/scripts/article-template/helpers.js +236 -0
  218. package/dist/scripts/article-template/helpers.js.map +1 -0
  219. package/dist/scripts/article-template/index.d.ts +39 -0
  220. package/dist/scripts/article-template/index.d.ts.map +1 -0
  221. package/dist/scripts/article-template/index.js +37 -0
  222. package/dist/scripts/article-template/index.js.map +1 -0
  223. package/dist/scripts/article-template/registry.d.ts +64 -0
  224. package/dist/scripts/article-template/registry.d.ts.map +1 -0
  225. package/dist/scripts/article-template/registry.js +405 -0
  226. package/dist/scripts/article-template/registry.js.map +1 -0
  227. package/dist/scripts/article-template/template.d.ts +18 -0
  228. package/dist/scripts/article-template/template.d.ts.map +1 -0
  229. package/dist/scripts/article-template/template.js +359 -0
  230. package/dist/scripts/article-template/template.js.map +1 -0
  231. package/dist/scripts/article-template/types.d.ts +90 -0
  232. package/dist/scripts/article-template/types.d.ts.map +1 -0
  233. package/dist/scripts/article-template/types.js +96 -0
  234. package/dist/scripts/article-template/types.js.map +1 -0
  235. package/dist/scripts/article-template.d.ts +18 -0
  236. package/dist/scripts/article-template.d.ts.map +1 -0
  237. package/dist/scripts/article-template.js +18 -0
  238. package/dist/scripts/article-template.js.map +1 -0
  239. package/dist/scripts/catalog-downloaded-data.d.ts +66 -0
  240. package/dist/scripts/catalog-downloaded-data.d.ts.map +1 -0
  241. package/dist/scripts/catalog-downloaded-data.js +239 -0
  242. package/dist/scripts/catalog-downloaded-data.js.map +1 -0
  243. package/dist/scripts/check-cia-schema-updates.d.ts +186 -0
  244. package/dist/scripts/check-cia-schema-updates.d.ts.map +1 -0
  245. package/dist/scripts/check-cia-schema-updates.js +363 -0
  246. package/dist/scripts/check-cia-schema-updates.js.map +1 -0
  247. package/dist/scripts/data-transformers/calendar.d.ts +16 -0
  248. package/dist/scripts/data-transformers/calendar.d.ts.map +1 -0
  249. package/dist/scripts/data-transformers/calendar.js +137 -0
  250. package/dist/scripts/data-transformers/calendar.js.map +1 -0
  251. package/dist/scripts/data-transformers/constants/committee-names.d.ts +15 -0
  252. package/dist/scripts/data-transformers/constants/committee-names.d.ts.map +1 -0
  253. package/dist/scripts/data-transformers/constants/committee-names.js +30 -0
  254. package/dist/scripts/data-transformers/constants/committee-names.js.map +1 -0
  255. package/dist/scripts/data-transformers/constants/content-labels-part1.d.ts +11 -0
  256. package/dist/scripts/data-transformers/constants/content-labels-part1.d.ts.map +1 -0
  257. package/dist/scripts/data-transformers/constants/content-labels-part1.js +900 -0
  258. package/dist/scripts/data-transformers/constants/content-labels-part1.js.map +1 -0
  259. package/dist/scripts/data-transformers/constants/content-labels-part2.d.ts +11 -0
  260. package/dist/scripts/data-transformers/constants/content-labels-part2.d.ts.map +1 -0
  261. package/dist/scripts/data-transformers/constants/content-labels-part2.js +900 -0
  262. package/dist/scripts/data-transformers/constants/content-labels-part2.js.map +1 -0
  263. package/dist/scripts/data-transformers/constants/content-labels.d.ts +13 -0
  264. package/dist/scripts/data-transformers/constants/content-labels.d.ts.map +1 -0
  265. package/dist/scripts/data-transformers/constants/content-labels.js +18 -0
  266. package/dist/scripts/data-transformers/constants/content-labels.js.map +1 -0
  267. package/dist/scripts/data-transformers/constants/index.d.ts +15 -0
  268. package/dist/scripts/data-transformers/constants/index.d.ts.map +1 -0
  269. package/dist/scripts/data-transformers/constants/index.js +15 -0
  270. package/dist/scripts/data-transformers/constants/index.js.map +1 -0
  271. package/dist/scripts/data-transformers/constants/locale-map.d.ts +13 -0
  272. package/dist/scripts/data-transformers/constants/locale-map.d.ts.map +1 -0
  273. package/dist/scripts/data-transformers/constants/locale-map.js +17 -0
  274. package/dist/scripts/data-transformers/constants/locale-map.js.map +1 -0
  275. package/dist/scripts/data-transformers/constants.d.ts +14 -0
  276. package/dist/scripts/data-transformers/constants.d.ts.map +1 -0
  277. package/dist/scripts/data-transformers/constants.js +14 -0
  278. package/dist/scripts/data-transformers/constants.js.map +1 -0
  279. package/dist/scripts/data-transformers/content-generators/ai-mindmap-analyzer.d.ts +64 -0
  280. package/dist/scripts/data-transformers/content-generators/ai-mindmap-analyzer.d.ts.map +1 -0
  281. package/dist/scripts/data-transformers/content-generators/ai-mindmap-analyzer.js +805 -0
  282. package/dist/scripts/data-transformers/content-generators/ai-mindmap-analyzer.js.map +1 -0
  283. package/dist/scripts/data-transformers/content-generators/ai-swot-analyzer.d.ts +89 -0
  284. package/dist/scripts/data-transformers/content-generators/ai-swot-analyzer.d.ts.map +1 -0
  285. package/dist/scripts/data-transformers/content-generators/ai-swot-analyzer.js +667 -0
  286. package/dist/scripts/data-transformers/content-generators/ai-swot-analyzer.js.map +1 -0
  287. package/dist/scripts/data-transformers/content-generators/cia-overview-section.d.ts +50 -0
  288. package/dist/scripts/data-transformers/content-generators/cia-overview-section.d.ts.map +1 -0
  289. package/dist/scripts/data-transformers/content-generators/cia-overview-section.js +310 -0
  290. package/dist/scripts/data-transformers/content-generators/cia-overview-section.js.map +1 -0
  291. package/dist/scripts/data-transformers/content-generators/committee.d.ts +12 -0
  292. package/dist/scripts/data-transformers/content-generators/committee.d.ts.map +1 -0
  293. package/dist/scripts/data-transformers/content-generators/committee.js +247 -0
  294. package/dist/scripts/data-transformers/content-generators/committee.js.map +1 -0
  295. package/dist/scripts/data-transformers/content-generators/dashboard-section.d.ts +124 -0
  296. package/dist/scripts/data-transformers/content-generators/dashboard-section.d.ts.map +1 -0
  297. package/dist/scripts/data-transformers/content-generators/dashboard-section.js +564 -0
  298. package/dist/scripts/data-transformers/content-generators/dashboard-section.js.map +1 -0
  299. package/dist/scripts/data-transformers/content-generators/economic-dashboard-section.d.ts +82 -0
  300. package/dist/scripts/data-transformers/content-generators/economic-dashboard-section.d.ts.map +1 -0
  301. package/dist/scripts/data-transformers/content-generators/economic-dashboard-section.js +321 -0
  302. package/dist/scripts/data-transformers/content-generators/economic-dashboard-section.js.map +1 -0
  303. package/dist/scripts/data-transformers/content-generators/generic.d.ts +12 -0
  304. package/dist/scripts/data-transformers/content-generators/generic.d.ts.map +1 -0
  305. package/dist/scripts/data-transformers/content-generators/generic.js +295 -0
  306. package/dist/scripts/data-transformers/content-generators/generic.js.map +1 -0
  307. package/dist/scripts/data-transformers/content-generators/index.d.ts +56 -0
  308. package/dist/scripts/data-transformers/content-generators/index.d.ts.map +1 -0
  309. package/dist/scripts/data-transformers/content-generators/index.js +45 -0
  310. package/dist/scripts/data-transformers/content-generators/index.js.map +1 -0
  311. package/dist/scripts/data-transformers/content-generators/interpellations.d.ts +12 -0
  312. package/dist/scripts/data-transformers/content-generators/interpellations.d.ts.map +1 -0
  313. package/dist/scripts/data-transformers/content-generators/interpellations.js +124 -0
  314. package/dist/scripts/data-transformers/content-generators/interpellations.js.map +1 -0
  315. package/dist/scripts/data-transformers/content-generators/mindmap-section.d.ts +137 -0
  316. package/dist/scripts/data-transformers/content-generators/mindmap-section.d.ts.map +1 -0
  317. package/dist/scripts/data-transformers/content-generators/mindmap-section.js +286 -0
  318. package/dist/scripts/data-transformers/content-generators/mindmap-section.js.map +1 -0
  319. package/dist/scripts/data-transformers/content-generators/month-ahead.d.ts +17 -0
  320. package/dist/scripts/data-transformers/content-generators/month-ahead.d.ts.map +1 -0
  321. package/dist/scripts/data-transformers/content-generators/month-ahead.js +212 -0
  322. package/dist/scripts/data-transformers/content-generators/month-ahead.js.map +1 -0
  323. package/dist/scripts/data-transformers/content-generators/monthly-review.d.ts +17 -0
  324. package/dist/scripts/data-transformers/content-generators/monthly-review.d.ts.map +1 -0
  325. package/dist/scripts/data-transformers/content-generators/monthly-review.js +173 -0
  326. package/dist/scripts/data-transformers/content-generators/monthly-review.js.map +1 -0
  327. package/dist/scripts/data-transformers/content-generators/motions.d.ts +12 -0
  328. package/dist/scripts/data-transformers/content-generators/motions.d.ts.map +1 -0
  329. package/dist/scripts/data-transformers/content-generators/motions.js +158 -0
  330. package/dist/scripts/data-transformers/content-generators/motions.js.map +1 -0
  331. package/dist/scripts/data-transformers/content-generators/newsworthiness.d.ts +52 -0
  332. package/dist/scripts/data-transformers/content-generators/newsworthiness.d.ts.map +1 -0
  333. package/dist/scripts/data-transformers/content-generators/newsworthiness.js +244 -0
  334. package/dist/scripts/data-transformers/content-generators/newsworthiness.js.map +1 -0
  335. package/dist/scripts/data-transformers/content-generators/propositions.d.ts +12 -0
  336. package/dist/scripts/data-transformers/content-generators/propositions.d.ts.map +1 -0
  337. package/dist/scripts/data-transformers/content-generators/propositions.js +263 -0
  338. package/dist/scripts/data-transformers/content-generators/propositions.js.map +1 -0
  339. package/dist/scripts/data-transformers/content-generators/sankey-section.d.ts +92 -0
  340. package/dist/scripts/data-transformers/content-generators/sankey-section.d.ts.map +1 -0
  341. package/dist/scripts/data-transformers/content-generators/sankey-section.js +257 -0
  342. package/dist/scripts/data-transformers/content-generators/sankey-section.js.map +1 -0
  343. package/dist/scripts/data-transformers/content-generators/shared.d.ts +81 -0
  344. package/dist/scripts/data-transformers/content-generators/shared.d.ts.map +1 -0
  345. package/dist/scripts/data-transformers/content-generators/shared.js +913 -0
  346. package/dist/scripts/data-transformers/content-generators/shared.js.map +1 -0
  347. package/dist/scripts/data-transformers/content-generators/stakeholder-swot-section.d.ts +83 -0
  348. package/dist/scripts/data-transformers/content-generators/stakeholder-swot-section.d.ts.map +1 -0
  349. package/dist/scripts/data-transformers/content-generators/stakeholder-swot-section.js +219 -0
  350. package/dist/scripts/data-transformers/content-generators/stakeholder-swot-section.js.map +1 -0
  351. package/dist/scripts/data-transformers/content-generators/swot-section.d.ts +50 -0
  352. package/dist/scripts/data-transformers/content-generators/swot-section.d.ts.map +1 -0
  353. package/dist/scripts/data-transformers/content-generators/swot-section.js +177 -0
  354. package/dist/scripts/data-transformers/content-generators/swot-section.js.map +1 -0
  355. package/dist/scripts/data-transformers/content-generators/week-ahead.d.ts +12 -0
  356. package/dist/scripts/data-transformers/content-generators/week-ahead.d.ts.map +1 -0
  357. package/dist/scripts/data-transformers/content-generators/week-ahead.js +332 -0
  358. package/dist/scripts/data-transformers/content-generators/week-ahead.js.map +1 -0
  359. package/dist/scripts/data-transformers/content-generators.d.ts +15 -0
  360. package/dist/scripts/data-transformers/content-generators.d.ts.map +1 -0
  361. package/dist/scripts/data-transformers/content-generators.js +14 -0
  362. package/dist/scripts/data-transformers/content-generators.js.map +1 -0
  363. package/dist/scripts/data-transformers/document-analysis.d.ts +58 -0
  364. package/dist/scripts/data-transformers/document-analysis.d.ts.map +1 -0
  365. package/dist/scripts/data-transformers/document-analysis.js +396 -0
  366. package/dist/scripts/data-transformers/document-analysis.js.map +1 -0
  367. package/dist/scripts/data-transformers/helpers.d.ts +144 -0
  368. package/dist/scripts/data-transformers/helpers.d.ts.map +1 -0
  369. package/dist/scripts/data-transformers/helpers.js +408 -0
  370. package/dist/scripts/data-transformers/helpers.js.map +1 -0
  371. package/dist/scripts/data-transformers/index.d.ts +45 -0
  372. package/dist/scripts/data-transformers/index.d.ts.map +1 -0
  373. package/dist/scripts/data-transformers/index.js +66 -0
  374. package/dist/scripts/data-transformers/index.js.map +1 -0
  375. package/dist/scripts/data-transformers/metadata.d.ts +42 -0
  376. package/dist/scripts/data-transformers/metadata.d.ts.map +1 -0
  377. package/dist/scripts/data-transformers/metadata.js +385 -0
  378. package/dist/scripts/data-transformers/metadata.js.map +1 -0
  379. package/dist/scripts/data-transformers/policy-analysis.d.ts +105 -0
  380. package/dist/scripts/data-transformers/policy-analysis.d.ts.map +1 -0
  381. package/dist/scripts/data-transformers/policy-analysis.js +686 -0
  382. package/dist/scripts/data-transformers/policy-analysis.js.map +1 -0
  383. package/dist/scripts/data-transformers/risk-analysis.d.ts +104 -0
  384. package/dist/scripts/data-transformers/risk-analysis.d.ts.map +1 -0
  385. package/dist/scripts/data-transformers/risk-analysis.js +279 -0
  386. package/dist/scripts/data-transformers/risk-analysis.js.map +1 -0
  387. package/dist/scripts/data-transformers/types.d.ts +260 -0
  388. package/dist/scripts/data-transformers/types.d.ts.map +1 -0
  389. package/dist/scripts/data-transformers/types.js +11 -0
  390. package/dist/scripts/data-transformers/types.js.map +1 -0
  391. package/dist/scripts/data-transformers.d.ts +23 -0
  392. package/dist/scripts/data-transformers.d.ts.map +1 -0
  393. package/dist/scripts/data-transformers.js +35 -0
  394. package/dist/scripts/data-transformers.js.map +1 -0
  395. package/dist/scripts/deep-inspection/index.d.ts +55 -0
  396. package/dist/scripts/deep-inspection/index.d.ts.map +1 -0
  397. package/dist/scripts/deep-inspection/index.js +66 -0
  398. package/dist/scripts/deep-inspection/index.js.map +1 -0
  399. package/dist/scripts/detect-swedish-leakage.d.ts +69 -0
  400. package/dist/scripts/detect-swedish-leakage.d.ts.map +1 -0
  401. package/dist/scripts/detect-swedish-leakage.js +417 -0
  402. package/dist/scripts/detect-swedish-leakage.js.map +1 -0
  403. package/dist/scripts/editorial-framework.d.ts +121 -0
  404. package/dist/scripts/editorial-framework.d.ts.map +1 -0
  405. package/dist/scripts/editorial-framework.js +364 -0
  406. package/dist/scripts/editorial-framework.js.map +1 -0
  407. package/dist/scripts/editorial-pillars.d.ts +43 -0
  408. package/dist/scripts/editorial-pillars.d.ts.map +1 -0
  409. package/dist/scripts/editorial-pillars.js +215 -0
  410. package/dist/scripts/editorial-pillars.js.map +1 -0
  411. package/dist/scripts/extract-news-metadata.d.ts +12 -0
  412. package/dist/scripts/extract-news-metadata.d.ts.map +1 -0
  413. package/dist/scripts/extract-news-metadata.js +107 -0
  414. package/dist/scripts/extract-news-metadata.js.map +1 -0
  415. package/dist/scripts/extract-vocabulary.d.ts +15 -0
  416. package/dist/scripts/extract-vocabulary.d.ts.map +1 -0
  417. package/dist/scripts/extract-vocabulary.js +255 -0
  418. package/dist/scripts/extract-vocabulary.js.map +1 -0
  419. package/dist/scripts/fix-article-navigation.d.ts +37 -0
  420. package/dist/scripts/fix-article-navigation.d.ts.map +1 -0
  421. package/dist/scripts/fix-article-navigation.js +198 -0
  422. package/dist/scripts/fix-article-navigation.js.map +1 -0
  423. package/dist/scripts/fix-keywords-localization.d.ts +18 -0
  424. package/dist/scripts/fix-keywords-localization.d.ts.map +1 -0
  425. package/dist/scripts/fix-keywords-localization.js +270 -0
  426. package/dist/scripts/fix-keywords-localization.js.map +1 -0
  427. package/dist/scripts/fix-old-articles-branding.d.ts +17 -0
  428. package/dist/scripts/fix-old-articles-branding.d.ts.map +1 -0
  429. package/dist/scripts/fix-old-articles-branding.js +229 -0
  430. package/dist/scripts/fix-old-articles-branding.js.map +1 -0
  431. package/dist/scripts/generate-news-backport.d.ts +16 -0
  432. package/dist/scripts/generate-news-backport.d.ts.map +1 -0
  433. package/dist/scripts/generate-news-backport.js +379 -0
  434. package/dist/scripts/generate-news-backport.js.map +1 -0
  435. package/dist/scripts/generate-news-enhanced/ai-analysis-pipeline.d.ts +124 -0
  436. package/dist/scripts/generate-news-enhanced/ai-analysis-pipeline.d.ts.map +1 -0
  437. package/dist/scripts/generate-news-enhanced/ai-analysis-pipeline.js +529 -0
  438. package/dist/scripts/generate-news-enhanced/ai-analysis-pipeline.js.map +1 -0
  439. package/dist/scripts/generate-news-enhanced/analysis-cache.d.ts +59 -0
  440. package/dist/scripts/generate-news-enhanced/analysis-cache.d.ts.map +1 -0
  441. package/dist/scripts/generate-news-enhanced/analysis-cache.js +116 -0
  442. package/dist/scripts/generate-news-enhanced/analysis-cache.js.map +1 -0
  443. package/dist/scripts/generate-news-enhanced/analysis-labels.d.ts +58 -0
  444. package/dist/scripts/generate-news-enhanced/analysis-labels.d.ts.map +1 -0
  445. package/dist/scripts/generate-news-enhanced/analysis-labels.js +144 -0
  446. package/dist/scripts/generate-news-enhanced/analysis-labels.js.map +1 -0
  447. package/dist/scripts/generate-news-enhanced/config.d.ts +57 -0
  448. package/dist/scripts/generate-news-enhanced/config.d.ts.map +1 -0
  449. package/dist/scripts/generate-news-enhanced/config.js +286 -0
  450. package/dist/scripts/generate-news-enhanced/config.js.map +1 -0
  451. package/dist/scripts/generate-news-enhanced/generators.d.ts +119 -0
  452. package/dist/scripts/generate-news-enhanced/generators.d.ts.map +1 -0
  453. package/dist/scripts/generate-news-enhanced/generators.js +2108 -0
  454. package/dist/scripts/generate-news-enhanced/generators.js.map +1 -0
  455. package/dist/scripts/generate-news-enhanced/helpers.d.ts +123 -0
  456. package/dist/scripts/generate-news-enhanced/helpers.d.ts.map +1 -0
  457. package/dist/scripts/generate-news-enhanced/helpers.js +438 -0
  458. package/dist/scripts/generate-news-enhanced/helpers.js.map +1 -0
  459. package/dist/scripts/generate-news-enhanced/index.d.ts +19 -0
  460. package/dist/scripts/generate-news-enhanced/index.d.ts.map +1 -0
  461. package/dist/scripts/generate-news-enhanced/index.js +221 -0
  462. package/dist/scripts/generate-news-enhanced/index.js.map +1 -0
  463. package/dist/scripts/generate-news-enhanced/swot-analyzer.d.ts +35 -0
  464. package/dist/scripts/generate-news-enhanced/swot-analyzer.d.ts.map +1 -0
  465. package/dist/scripts/generate-news-enhanced/swot-analyzer.js +1179 -0
  466. package/dist/scripts/generate-news-enhanced/swot-analyzer.js.map +1 -0
  467. package/dist/scripts/generate-news-enhanced/types.d.ts +34 -0
  468. package/dist/scripts/generate-news-enhanced/types.d.ts.map +1 -0
  469. package/dist/scripts/generate-news-enhanced/types.js +9 -0
  470. package/dist/scripts/generate-news-enhanced/types.js.map +1 -0
  471. package/dist/scripts/generate-news-enhanced.d.ts +25 -0
  472. package/dist/scripts/generate-news-enhanced.d.ts.map +1 -0
  473. package/dist/scripts/generate-news-enhanced.js +37 -0
  474. package/dist/scripts/generate-news-enhanced.js.map +1 -0
  475. package/dist/scripts/generate-news-indexes/constants.d.ts +20 -0
  476. package/dist/scripts/generate-news-indexes/constants.d.ts.map +1 -0
  477. package/dist/scripts/generate-news-indexes/constants.js +308 -0
  478. package/dist/scripts/generate-news-indexes/constants.js.map +1 -0
  479. package/dist/scripts/generate-news-indexes/helpers.d.ts +73 -0
  480. package/dist/scripts/generate-news-indexes/helpers.d.ts.map +1 -0
  481. package/dist/scripts/generate-news-indexes/helpers.js +352 -0
  482. package/dist/scripts/generate-news-indexes/helpers.js.map +1 -0
  483. package/dist/scripts/generate-news-indexes/index.d.ts +20 -0
  484. package/dist/scripts/generate-news-indexes/index.d.ts.map +1 -0
  485. package/dist/scripts/generate-news-indexes/index.js +75 -0
  486. package/dist/scripts/generate-news-indexes/index.js.map +1 -0
  487. package/dist/scripts/generate-news-indexes/template.d.ts +25 -0
  488. package/dist/scripts/generate-news-indexes/template.d.ts.map +1 -0
  489. package/dist/scripts/generate-news-indexes/template.js +644 -0
  490. package/dist/scripts/generate-news-indexes/template.js.map +1 -0
  491. package/dist/scripts/generate-news-indexes/types.d.ts +96 -0
  492. package/dist/scripts/generate-news-indexes/types.d.ts.map +1 -0
  493. package/dist/scripts/generate-news-indexes/types.js +9 -0
  494. package/dist/scripts/generate-news-indexes/types.js.map +1 -0
  495. package/dist/scripts/generate-news-indexes.d.ts +20 -0
  496. package/dist/scripts/generate-news-indexes.d.ts.map +1 -0
  497. package/dist/scripts/generate-news-indexes.js +19 -0
  498. package/dist/scripts/generate-news-indexes.js.map +1 -0
  499. package/dist/scripts/generate-rss.d.ts +48 -0
  500. package/dist/scripts/generate-rss.d.ts.map +1 -0
  501. package/dist/scripts/generate-rss.js +299 -0
  502. package/dist/scripts/generate-rss.js.map +1 -0
  503. package/dist/scripts/generate-sitemap-html.d.ts +79 -0
  504. package/dist/scripts/generate-sitemap-html.d.ts.map +1 -0
  505. package/dist/scripts/generate-sitemap-html.js +878 -0
  506. package/dist/scripts/generate-sitemap-html.js.map +1 -0
  507. package/dist/scripts/generate-sitemap.d.ts +23 -0
  508. package/dist/scripts/generate-sitemap.d.ts.map +1 -0
  509. package/dist/scripts/generate-sitemap.js +476 -0
  510. package/dist/scripts/generate-sitemap.js.map +1 -0
  511. package/dist/scripts/generate-types-from-cia-schemas.d.ts +176 -0
  512. package/dist/scripts/generate-types-from-cia-schemas.d.ts.map +1 -0
  513. package/dist/scripts/generate-types-from-cia-schemas.js +318 -0
  514. package/dist/scripts/generate-types-from-cia-schemas.js.map +1 -0
  515. package/dist/scripts/government-role-validator.d.ts +65 -0
  516. package/dist/scripts/government-role-validator.d.ts.map +1 -0
  517. package/dist/scripts/government-role-validator.js +217 -0
  518. package/dist/scripts/government-role-validator.js.map +1 -0
  519. package/dist/scripts/html-utils.d.ts +17 -0
  520. package/dist/scripts/html-utils.d.ts.map +1 -0
  521. package/dist/scripts/html-utils.js +29 -0
  522. package/dist/scripts/html-utils.js.map +1 -0
  523. package/dist/scripts/load-cia-stats.d.ts +89 -0
  524. package/dist/scripts/load-cia-stats.d.ts.map +1 -0
  525. package/dist/scripts/load-cia-stats.js +400 -0
  526. package/dist/scripts/load-cia-stats.js.map +1 -0
  527. package/dist/scripts/mcp-client/client.d.ts +73 -0
  528. package/dist/scripts/mcp-client/client.d.ts.map +1 -0
  529. package/dist/scripts/mcp-client/client.js +526 -0
  530. package/dist/scripts/mcp-client/client.js.map +1 -0
  531. package/dist/scripts/mcp-client/document-types.d.ts +23 -0
  532. package/dist/scripts/mcp-client/document-types.d.ts.map +1 -0
  533. package/dist/scripts/mcp-client/document-types.js +62 -0
  534. package/dist/scripts/mcp-client/document-types.js.map +1 -0
  535. package/dist/scripts/mcp-client/index.d.ts +34 -0
  536. package/dist/scripts/mcp-client/index.d.ts.map +1 -0
  537. package/dist/scripts/mcp-client/index.js +67 -0
  538. package/dist/scripts/mcp-client/index.js.map +1 -0
  539. package/dist/scripts/mcp-client/transport.d.ts +32 -0
  540. package/dist/scripts/mcp-client/transport.d.ts.map +1 -0
  541. package/dist/scripts/mcp-client/transport.js +102 -0
  542. package/dist/scripts/mcp-client/transport.js.map +1 -0
  543. package/dist/scripts/mcp-client.d.ts +18 -0
  544. package/dist/scripts/mcp-client.d.ts.map +1 -0
  545. package/dist/scripts/mcp-client.js +18 -0
  546. package/dist/scripts/mcp-client.js.map +1 -0
  547. package/dist/scripts/mcp-query-cli.d.ts +25 -0
  548. package/dist/scripts/mcp-query-cli.d.ts.map +1 -0
  549. package/dist/scripts/mcp-query-cli.js +66 -0
  550. package/dist/scripts/mcp-query-cli.js.map +1 -0
  551. package/dist/scripts/news-types/breaking-news.d.ts +178 -0
  552. package/dist/scripts/news-types/breaking-news.d.ts.map +1 -0
  553. package/dist/scripts/news-types/breaking-news.js +428 -0
  554. package/dist/scripts/news-types/breaking-news.js.map +1 -0
  555. package/dist/scripts/news-types/committee-reports.d.ts +212 -0
  556. package/dist/scripts/news-types/committee-reports.d.ts.map +1 -0
  557. package/dist/scripts/news-types/committee-reports.js +404 -0
  558. package/dist/scripts/news-types/committee-reports.js.map +1 -0
  559. package/dist/scripts/news-types/month-ahead.d.ts +71 -0
  560. package/dist/scripts/news-types/month-ahead.d.ts.map +1 -0
  561. package/dist/scripts/news-types/month-ahead.js +392 -0
  562. package/dist/scripts/news-types/month-ahead.js.map +1 -0
  563. package/dist/scripts/news-types/monthly-review.d.ts +61 -0
  564. package/dist/scripts/news-types/monthly-review.d.ts.map +1 -0
  565. package/dist/scripts/news-types/monthly-review.js +417 -0
  566. package/dist/scripts/news-types/monthly-review.js.map +1 -0
  567. package/dist/scripts/news-types/motions.d.ts +214 -0
  568. package/dist/scripts/news-types/motions.d.ts.map +1 -0
  569. package/dist/scripts/news-types/motions.js +447 -0
  570. package/dist/scripts/news-types/motions.js.map +1 -0
  571. package/dist/scripts/news-types/propositions.d.ts +204 -0
  572. package/dist/scripts/news-types/propositions.d.ts.map +1 -0
  573. package/dist/scripts/news-types/propositions.js +401 -0
  574. package/dist/scripts/news-types/propositions.js.map +1 -0
  575. package/dist/scripts/news-types/week-ahead.d.ts +231 -0
  576. package/dist/scripts/news-types/week-ahead.d.ts.map +1 -0
  577. package/dist/scripts/news-types/week-ahead.js +441 -0
  578. package/dist/scripts/news-types/week-ahead.js.map +1 -0
  579. package/dist/scripts/news-types/weekly-review/analysis.d.ts +47 -0
  580. package/dist/scripts/news-types/weekly-review/analysis.d.ts.map +1 -0
  581. package/dist/scripts/news-types/weekly-review/analysis.js +276 -0
  582. package/dist/scripts/news-types/weekly-review/analysis.js.map +1 -0
  583. package/dist/scripts/news-types/weekly-review/data-loader.d.ts +51 -0
  584. package/dist/scripts/news-types/weekly-review/data-loader.d.ts.map +1 -0
  585. package/dist/scripts/news-types/weekly-review/data-loader.js +298 -0
  586. package/dist/scripts/news-types/weekly-review/data-loader.js.map +1 -0
  587. package/dist/scripts/news-types/weekly-review/generator.d.ts +18 -0
  588. package/dist/scripts/news-types/weekly-review/generator.d.ts.map +1 -0
  589. package/dist/scripts/news-types/weekly-review/generator.js +284 -0
  590. package/dist/scripts/news-types/weekly-review/generator.js.map +1 -0
  591. package/dist/scripts/news-types/weekly-review/index.d.ts +20 -0
  592. package/dist/scripts/news-types/weekly-review/index.d.ts.map +1 -0
  593. package/dist/scripts/news-types/weekly-review/index.js +23 -0
  594. package/dist/scripts/news-types/weekly-review/index.js.map +1 -0
  595. package/dist/scripts/news-types/weekly-review/types.d.ts +72 -0
  596. package/dist/scripts/news-types/weekly-review/types.d.ts.map +1 -0
  597. package/dist/scripts/news-types/weekly-review/types.js +20 -0
  598. package/dist/scripts/news-types/weekly-review/types.js.map +1 -0
  599. package/dist/scripts/news-types/weekly-review/validation.d.ts +10 -0
  600. package/dist/scripts/news-types/weekly-review/validation.d.ts.map +1 -0
  601. package/dist/scripts/news-types/weekly-review/validation.js +95 -0
  602. package/dist/scripts/news-types/weekly-review/validation.js.map +1 -0
  603. package/dist/scripts/news-types/weekly-review.d.ts +15 -0
  604. package/dist/scripts/news-types/weekly-review.d.ts.map +1 -0
  605. package/dist/scripts/news-types/weekly-review.js +14 -0
  606. package/dist/scripts/news-types/weekly-review.js.map +1 -0
  607. package/dist/scripts/party-variants.d.ts +23 -0
  608. package/dist/scripts/party-variants.d.ts.map +1 -0
  609. package/dist/scripts/party-variants.js +50 -0
  610. package/dist/scripts/party-variants.js.map +1 -0
  611. package/dist/scripts/pipeline/index.d.ts +19 -0
  612. package/dist/scripts/pipeline/index.d.ts.map +1 -0
  613. package/dist/scripts/pipeline/index.js +17 -0
  614. package/dist/scripts/pipeline/index.js.map +1 -0
  615. package/dist/scripts/pipeline/orchestrator.d.ts +56 -0
  616. package/dist/scripts/pipeline/orchestrator.d.ts.map +1 -0
  617. package/dist/scripts/pipeline/orchestrator.js +147 -0
  618. package/dist/scripts/pipeline/orchestrator.js.map +1 -0
  619. package/dist/scripts/pipeline/types.d.ts +117 -0
  620. package/dist/scripts/pipeline/types.d.ts.map +1 -0
  621. package/dist/scripts/pipeline/types.js +13 -0
  622. package/dist/scripts/pipeline/types.js.map +1 -0
  623. package/dist/scripts/pipeline/validation.d.ts +66 -0
  624. package/dist/scripts/pipeline/validation.d.ts.map +1 -0
  625. package/dist/scripts/pipeline/validation.js +129 -0
  626. package/dist/scripts/pipeline/validation.js.map +1 -0
  627. package/dist/scripts/populate-analysis-data.d.ts +41 -0
  628. package/dist/scripts/populate-analysis-data.d.ts.map +1 -0
  629. package/dist/scripts/populate-analysis-data.js +255 -0
  630. package/dist/scripts/populate-analysis-data.js.map +1 -0
  631. package/dist/scripts/pre-article-analysis/data-downloader.d.ts +80 -0
  632. package/dist/scripts/pre-article-analysis/data-downloader.d.ts.map +1 -0
  633. package/dist/scripts/pre-article-analysis/data-downloader.js +230 -0
  634. package/dist/scripts/pre-article-analysis/data-downloader.js.map +1 -0
  635. package/dist/scripts/pre-article-analysis/data-persistence.d.ts +141 -0
  636. package/dist/scripts/pre-article-analysis/data-persistence.d.ts.map +1 -0
  637. package/dist/scripts/pre-article-analysis/data-persistence.js +345 -0
  638. package/dist/scripts/pre-article-analysis/data-persistence.js.map +1 -0
  639. package/dist/scripts/pre-article-analysis/markdown-serializer.d.ts +95 -0
  640. package/dist/scripts/pre-article-analysis/markdown-serializer.d.ts.map +1 -0
  641. package/dist/scripts/pre-article-analysis/markdown-serializer.js +648 -0
  642. package/dist/scripts/pre-article-analysis/markdown-serializer.js.map +1 -0
  643. package/dist/scripts/pre-article-analysis/pdf-converter.d.ts +58 -0
  644. package/dist/scripts/pre-article-analysis/pdf-converter.d.ts.map +1 -0
  645. package/dist/scripts/pre-article-analysis/pdf-converter.js +142 -0
  646. package/dist/scripts/pre-article-analysis/pdf-converter.js.map +1 -0
  647. package/dist/scripts/pre-article-analysis.d.ts +41 -0
  648. package/dist/scripts/pre-article-analysis.d.ts.map +1 -0
  649. package/dist/scripts/pre-article-analysis.js +578 -0
  650. package/dist/scripts/pre-article-analysis.js.map +1 -0
  651. package/dist/scripts/scb-client.d.ts +104 -0
  652. package/dist/scripts/scb-client.d.ts.map +1 -0
  653. package/dist/scripts/scb-client.js +286 -0
  654. package/dist/scripts/scb-client.js.map +1 -0
  655. package/dist/scripts/scb-context.d.ts +88 -0
  656. package/dist/scripts/scb-context.d.ts.map +1 -0
  657. package/dist/scripts/scb-context.js +307 -0
  658. package/dist/scripts/scb-context.js.map +1 -0
  659. package/dist/scripts/shared/version.d.ts +9 -0
  660. package/dist/scripts/shared/version.d.ts.map +1 -0
  661. package/dist/scripts/shared/version.js +28 -0
  662. package/dist/scripts/shared/version.js.map +1 -0
  663. package/dist/scripts/statistical-claims-detector.d.ts +119 -0
  664. package/dist/scripts/statistical-claims-detector.d.ts.map +1 -0
  665. package/dist/scripts/statistical-claims-detector.js +391 -0
  666. package/dist/scripts/statistical-claims-detector.js.map +1 -0
  667. package/dist/scripts/sync-cia-schemas.d.ts +52 -0
  668. package/dist/scripts/sync-cia-schemas.d.ts.map +1 -0
  669. package/dist/scripts/sync-cia-schemas.js +195 -0
  670. package/dist/scripts/sync-cia-schemas.js.map +1 -0
  671. package/dist/scripts/translation-dictionary.d.ts +45 -0
  672. package/dist/scripts/translation-dictionary.d.ts.map +1 -0
  673. package/dist/scripts/translation-dictionary.js +3642 -0
  674. package/dist/scripts/translation-dictionary.js.map +1 -0
  675. package/dist/scripts/types/article.d.ts +362 -0
  676. package/dist/scripts/types/article.d.ts.map +1 -0
  677. package/dist/scripts/types/article.js +6 -0
  678. package/dist/scripts/types/article.js.map +1 -0
  679. package/dist/scripts/types/content.d.ts +167 -0
  680. package/dist/scripts/types/content.d.ts.map +1 -0
  681. package/dist/scripts/types/content.js +6 -0
  682. package/dist/scripts/types/content.js.map +1 -0
  683. package/dist/scripts/types/editorial.d.ts +17 -0
  684. package/dist/scripts/types/editorial.d.ts.map +1 -0
  685. package/dist/scripts/types/editorial.js +6 -0
  686. package/dist/scripts/types/editorial.js.map +1 -0
  687. package/dist/scripts/types/language.d.ts +7 -0
  688. package/dist/scripts/types/language.d.ts.map +1 -0
  689. package/dist/scripts/types/language.js +6 -0
  690. package/dist/scripts/types/language.js.map +1 -0
  691. package/dist/scripts/types/mcp.d.ts +117 -0
  692. package/dist/scripts/types/mcp.d.ts.map +1 -0
  693. package/dist/scripts/types/mcp.js +6 -0
  694. package/dist/scripts/types/mcp.js.map +1 -0
  695. package/dist/scripts/types/party.d.ts +9 -0
  696. package/dist/scripts/types/party.d.ts.map +1 -0
  697. package/dist/scripts/types/party.js +6 -0
  698. package/dist/scripts/types/party.js.map +1 -0
  699. package/dist/scripts/types/validation.d.ts +136 -0
  700. package/dist/scripts/types/validation.d.ts.map +1 -0
  701. package/dist/scripts/types/validation.js +6 -0
  702. package/dist/scripts/types/validation.js.map +1 -0
  703. package/dist/scripts/types/workflow.d.ts +78 -0
  704. package/dist/scripts/types/workflow.d.ts.map +1 -0
  705. package/dist/scripts/types/workflow.js +6 -0
  706. package/dist/scripts/types/workflow.js.map +1 -0
  707. package/dist/scripts/update-stats-from-cia.d.ts +44 -0
  708. package/dist/scripts/update-stats-from-cia.d.ts.map +1 -0
  709. package/dist/scripts/update-stats-from-cia.js +310 -0
  710. package/dist/scripts/update-stats-from-cia.js.map +1 -0
  711. package/dist/scripts/validate-against-cia-schemas.d.ts +126 -0
  712. package/dist/scripts/validate-against-cia-schemas.d.ts.map +1 -0
  713. package/dist/scripts/validate-against-cia-schemas.js +299 -0
  714. package/dist/scripts/validate-against-cia-schemas.js.map +1 -0
  715. package/dist/scripts/validate-cross-references.d.ts +49 -0
  716. package/dist/scripts/validate-cross-references.d.ts.map +1 -0
  717. package/dist/scripts/validate-cross-references.js +183 -0
  718. package/dist/scripts/validate-cross-references.js.map +1 -0
  719. package/dist/scripts/validate-file-ownership.d.ts +68 -0
  720. package/dist/scripts/validate-file-ownership.d.ts.map +1 -0
  721. package/dist/scripts/validate-file-ownership.js +135 -0
  722. package/dist/scripts/validate-file-ownership.js.map +1 -0
  723. package/dist/scripts/validate-news-translations.d.ts +27 -0
  724. package/dist/scripts/validate-news-translations.d.ts.map +1 -0
  725. package/dist/scripts/validate-news-translations.js +258 -0
  726. package/dist/scripts/validate-news-translations.js.map +1 -0
  727. package/dist/scripts/validate-translations.d.ts +162 -0
  728. package/dist/scripts/validate-translations.d.ts.map +1 -0
  729. package/dist/scripts/validate-translations.js +378 -0
  730. package/dist/scripts/validate-translations.js.map +1 -0
  731. package/dist/scripts/workflow-state-coordinator.d.ts +354 -0
  732. package/dist/scripts/workflow-state-coordinator.d.ts.map +1 -0
  733. package/dist/scripts/workflow-state-coordinator.js +876 -0
  734. package/dist/scripts/workflow-state-coordinator.js.map +1 -0
  735. package/dist/scripts/world-bank-client.d.ts +122 -0
  736. package/dist/scripts/world-bank-client.d.ts.map +1 -0
  737. package/dist/scripts/world-bank-client.js +192 -0
  738. package/dist/scripts/world-bank-client.js.map +1 -0
  739. package/dist/scripts/world-bank-context.d.ts +88 -0
  740. package/dist/scripts/world-bank-context.d.ts.map +1 -0
  741. package/dist/scripts/world-bank-context.js +331 -0
  742. package/dist/scripts/world-bank-context.js.map +1 -0
  743. package/package.json +31 -6
  744. package/dist/lib/chart-factory.d.ts.map +0 -1
  745. package/dist/lib/chart-factory.js.map +0 -1
  746. package/dist/lib/data-loader.d.ts.map +0 -1
  747. package/dist/lib/data-loader.js.map +0 -1
  748. package/dist/lib/dom-utils.d.ts.map +0 -1
  749. package/dist/lib/dom-utils.js.map +0 -1
  750. package/dist/lib/error-boundary.d.ts.map +0 -1
  751. package/dist/lib/error-boundary.js.map +0 -1
  752. package/dist/lib/fallback-ui.d.ts.map +0 -1
  753. package/dist/lib/fallback-ui.js.map +0 -1
  754. package/dist/lib/index.d.ts.map +0 -1
  755. package/dist/lib/index.js.map +0 -1
  756. package/dist/lib/logger.d.ts.map +0 -1
  757. package/dist/lib/logger.js.map +0 -1
  758. package/dist/lib/theme.d.ts.map +0 -1
  759. package/dist/lib/theme.js.map +0 -1
  760. package/dist/lib/types.d.ts.map +0 -1
  761. package/dist/lib/types.js.map +0 -1
  762. /package/dist/lib/{chart-factory.d.ts → shared/chart-factory.d.ts} +0 -0
  763. /package/dist/lib/{chart-factory.js → shared/chart-factory.js} +0 -0
  764. /package/dist/lib/{data-loader.d.ts → shared/data-loader.d.ts} +0 -0
  765. /package/dist/lib/{data-loader.js → shared/data-loader.js} +0 -0
  766. /package/dist/lib/{dom-utils.d.ts → shared/dom-utils.d.ts} +0 -0
  767. /package/dist/lib/{dom-utils.js → shared/dom-utils.js} +0 -0
  768. /package/dist/lib/{error-boundary.d.ts → shared/error-boundary.d.ts} +0 -0
  769. /package/dist/lib/{error-boundary.js → shared/error-boundary.js} +0 -0
  770. /package/dist/lib/{fallback-ui.d.ts → shared/fallback-ui.d.ts} +0 -0
  771. /package/dist/lib/{fallback-ui.js → shared/fallback-ui.js} +0 -0
  772. /package/dist/lib/{index.d.ts → shared/index.d.ts} +0 -0
  773. /package/dist/lib/{index.js → shared/index.js} +0 -0
  774. /package/dist/lib/{logger.d.ts → shared/logger.d.ts} +0 -0
  775. /package/dist/lib/{logger.js → shared/logger.js} +0 -0
  776. /package/dist/lib/{theme.d.ts → shared/theme.d.ts} +0 -0
  777. /package/dist/lib/{theme.js → shared/theme.js} +0 -0
  778. /package/dist/lib/{types.d.ts → shared/types.d.ts} +0 -0
  779. /package/dist/lib/{types.js → shared/types.js} +0 -0
@@ -0,0 +1,401 @@
1
+ /**
2
+ * @module ContentGeneration/GovernmentPolicy
3
+ * @category ContentGeneration
4
+ *
5
+ * @title Government Propositions Article Generator - Executive Policy Intelligence
6
+ *
7
+ * @description
8
+ * **INTELLIGENCE OPERATIVE PERSPECTIVE**
9
+ *
10
+ * This module generates analysis articles on government propositions (propositioner),
11
+ * which are formal legislative proposals submitted by the executive branch. Government
12
+ * propositions represent the official government agenda and serve as the primary
13
+ * mechanism for implementing government policy. Systematic tracking of propositions
14
+ * provides a forward-looking view of government priorities, policy direction, and
15
+ * coalition stability.
16
+ *
17
+ * **GOVERNMENT PROPOSITION ROLE IN SWEDISH PARLIAMENT:**
18
+ * Sweden's legislative process is government-driven, with ~80% of passed laws originating
19
+ * as government propositions. This makes propositions:
20
+ * 1. **Clearest Signal of Government Intent**: What coalition plans to actually do
21
+ * 2. **Most Likely to Pass**: Government usually has parliament majority
22
+ * 3. **Forward-Looking Agenda**: Signals coming policy debates and conflicts
23
+ * 4. **Coalition Stress Indicator**: Delayed/withdrawn propositions signal problems
24
+ * 5. **International Commitments**: EU directives implemented via propositions
25
+ *
26
+ * **PROPOSITION TYPES & CHARACTERISTICS:**
27
+ * - **Budget Propositions**: Annual government budget (largest single proposition)
28
+ * - **Legislation**: New laws or amendments to existing law
29
+ * - **Treaty Ratifications**: International agreements needing parliament approval
30
+ * - **Appropriations**: Changes to government spending allocations
31
+ * - **Constitutional Amendments**: Changes requiring supermajority (requires propositions)
32
+ *
33
+ * **ARTICLE STRUCTURE:**
34
+ * Each government proposition article includes:
35
+ * 1. **Proposition Summary**: Official government proposal and objectives
36
+ * 2. **Policy Problem**: What problem or commitment proposition addresses
37
+ * 3. **Proposed Solution**: Specific legislation and implementation approach
38
+ * 4. **Budget Impact**: Cost estimates and revenue implications (if applicable)
39
+ * 5. **Party Positions**: Stance from all major parties on proposition
40
+ * 6. **Implementation Timeline**: When policy takes effect, phased deployment
41
+ * 7. **International Context**: EU/international dimension if applicable
42
+ *
43
+ * **MCP DATA SOURCE:**
44
+ * Primary tool: get_propositioner
45
+ * - Retrieves government proposition records from riksdag platform
46
+ * - Includes full proposition text, budget impact, department information
47
+ * - Enables systematic government agenda tracking
48
+ *
49
+ * Additional tools for comprehensive analysis:
50
+ * - search_dokument_fulltext: Full policy analysis from proposition
51
+ * - analyze_g0v_by_department: Department-by-department impact
52
+ * - search_anforanden: Parliamentary debate on proposition
53
+ *
54
+ * **OPERATIONAL WORKFLOW:**
55
+ * 1. Query MCP: Fetch recent propositions (default: 10 most recent)
56
+ * 2. Importance Assessment: Identify major vs. routine propositions
57
+ * 3. Coalition Impact Analysis: Identify potential conflict points
58
+ * 4. Budget Analysis: Extract financial implications
59
+ * 5. Article Generation: Create narrative with context
60
+ * 6. Multilingual Creation: Generate 14-language editions
61
+ * 7. Publication: Deploy to news directory with calendar integration
62
+ *
63
+ * **BUDGET PROPOSITION SPECIAL HANDLING:**
64
+ * The annual budget proposition is the largest government document:
65
+ * - **Publication**: Typically mid-September
66
+ * - **Parliament Debate**: September-October
67
+ * - **Vote**: October/November
68
+ * - **Implementation**: January 1 following year
69
+ *
70
+ * Budget analysis includes:
71
+ * - Revenue and expenditure totals
72
+ * - Major spending areas (defense, healthcare, education, welfare)
73
+ * - Tax changes and revenue measures
74
+ * - Coalition compromise points (visible in allocations)
75
+ * - Economic assumptions and forecasts
76
+ *
77
+ * **PROPOSITION STATUS TRACKING:**
78
+ * Government propositions move through parliamentary stages:
79
+ * 1. **Submitted**: Government formally submits to parliament
80
+ * 2. **First Reading**: Parliament receives and initial debate
81
+ * 3. **Committee Review**: Specialized committee analyzes
82
+ * 4. **Second Reading**: General debate on committee recommendations
83
+ * 5. **Final Reading**: Amendment proposals and final vote
84
+ * 6. **Passed/Rejected**: Final outcome
85
+ *
86
+ * Articles track where propositions are in this process.
87
+ *
88
+ * **GOVERNMENT COALITION ANALYSIS:**
89
+ * Government propositions reveal coalition dynamics:
90
+ * - **Compromise Indicators**: Proposition content shows coalition deals
91
+ * - **Pressure Points**: Delayed propositions indicate coalition conflict
92
+ * - **Distribution of Wins**: Budget allocations show party influence
93
+ * - **Minority Support**: Some governments require opposition support
94
+ *
95
+ * **INTELLIGENCE APPLICATIONS:**
96
+ * 1. **Government Agenda Tracking**: What coalition prioritizes
97
+ * 2. **Coalition Stability**: Ability to pass propositions on schedule
98
+ * 3. **Policy Direction**: Where government moving country
99
+ * 4. **International Alignment**: Sweden's commitment to EU/international goals
100
+ * 5. **Timeline Prediction**: When major policy changes take effect
101
+ *
102
+ * **ECONOMIC IMPACT ANALYSIS:**
103
+ * Government propositions with fiscal impact are analyzed for:
104
+ * - **GDP Growth Impact**: Estimated effect on economic growth
105
+ * - **Employment Effects**: Job creation or losses by sector
106
+ * - **Inflation Impact**: Effect on price levels
107
+ * - **Debt Position**: Impact on government borrowing
108
+ * - **Sectoral Effects**: Winners and losers by industry
109
+ *
110
+ * **PERFORMANCE CHARACTERISTICS:**
111
+ * - MCP Query: ~500ms for 10 latest propositions
112
+ * - Article Generation: ~2.5 seconds per proposition
113
+ * - Translation: ~5 seconds per proposition (parallel)
114
+ * - Total: ~15 seconds for batch (10 propositions, 14 languages)
115
+ *
116
+ * **LANGUAGE CONSIDERATIONS:**
117
+ * Government propositions include:
118
+ * - Complex legal language (difficult to translate)
119
+ * - Technical policy terminology (domain-specific)
120
+ * - Budget figures and statistical data (language-neutral)
121
+ * - International commitments (standardized terminology)
122
+ *
123
+ * **FAILURE HANDLING:**
124
+ * - Missing Proposition Text: Generate article with summary only
125
+ * - Committee Report Unavailable: Continue with available data
126
+ * - Budget Analysis Failure: Note that analysis pending
127
+ * - MCP Service Down: Skip batch, retry on schedule
128
+ *
129
+ * **GDPR COMPLIANCE:**
130
+ * - Government propositions are public documents
131
+ * - Department official names published (public roles)
132
+ * - Data retention follows parliamentary archive standards
133
+ * - Supporting audit trail for democratic transparency
134
+ *
135
+ * @osint Government Strategy Intelligence
136
+ * - Maps government policy priorities through proposition agenda
137
+ * - Tracks coalition compatibility on major policy issues
138
+ * - Identifies emerging government challenges
139
+ * - Analyzes EU influence on Swedish policy
140
+ *
141
+ * @risk Government Stability Assessment
142
+ * - Proposition passage rates indicate coalition cohesion
143
+ * - Delayed propositions signal coalition stress
144
+ * - Controversial propositions show political divisions
145
+ * - Budget battles reveal party power distribution
146
+ *
147
+ * @gdpr Policy Documentation
148
+ * - Government propositions publicly documented
149
+ * - Data retention follows parliamentary standards
150
+ * - Supporting transparency in democratic process
151
+ * - Audit trail for regulatory compliance
152
+ *
153
+ * @security Executive Intent Verification
154
+ * - Propositions verified through official MCP source
155
+ * - Originating department verified
156
+ * - Budget figures validated against official documents
157
+ * - Timestamp prevents tampering
158
+ *
159
+ * @author Hack23 AB (Government Intelligence & Policy Analysis)
160
+ * @license Apache-2.0
161
+ * @version 2.0.0
162
+ * @since 2024-08-28
163
+ * @see scripts/data-transformers.js (Content Generation)
164
+ * @see scripts/article-template.js (HTML Rendering)
165
+ * @see Issue #140 (Government Proposition Tracking)
166
+ * @see https://www.riksdagen.se/ (Parliamentary Records)
167
+ * @see https://www.regeringen.se/ (Government Official Site)
168
+ */
169
+ import { MCPClient } from '../mcp-client.js';
170
+ import { getCurrentRiksmote } from './motions.js';
171
+ import { generateArticleContent, extractWatchPoints, generateMetadata, calculateReadTime, generateSources, generateContentTitle, filterFreshDocuments } from '../data-transformers.js';
172
+ import { generateArticleHTML } from '../article-template.js';
173
+ import { getAnalysisEnrichment } from '../generate-news-enhanced/helpers.js';
174
+ /**
175
+ * Required MCP tools for propositions articles
176
+ */
177
+ export const REQUIRED_TOOLS = [
178
+ 'get_propositioner',
179
+ 'search_dokument_fulltext',
180
+ 'analyze_g0v_by_department',
181
+ 'search_anforanden'
182
+ ];
183
+ /**
184
+ * Format date for article slug
185
+ */
186
+ export function formatDateForSlug(date = new Date()) {
187
+ return date.toISOString().split('T')[0] ?? '';
188
+ }
189
+ /**
190
+ * Generate Government Propositions article
191
+ */
192
+ export async function generatePropositions(options = {}) {
193
+ const { languages = ['en', 'sv'], limit = 10, writeArticle = null } = options;
194
+ console.log('📜 Generating Government Propositions article...');
195
+ const mcpCalls = [];
196
+ try {
197
+ const client = new MCPClient();
198
+ console.log(' 🔄 Fetching propositions from riksdag-regering-mcp...');
199
+ const propositions = filterFreshDocuments(await client.fetchPropositions(limit));
200
+ mcpCalls.push({ tool: 'get_propositioner', result: propositions });
201
+ console.log(` 📊 Found ${propositions.length} propositions`);
202
+ if (propositions.length === 0) {
203
+ console.log(' ℹ️ No new propositions found, skipping');
204
+ return { success: true, files: 0, mcpCalls };
205
+ }
206
+ // ── Step 2: Full-text policy analysis ─────────────────────────────────
207
+ const topPropTitle = (propositions[0]['titel'] ?? propositions[0]['title'] ?? '');
208
+ let fullTextResults = [];
209
+ if (topPropTitle) {
210
+ try {
211
+ console.log(' 🔄 Fetching full-text policy analysis...');
212
+ const ftResponse = await client.request('search_dokument_fulltext', { query: topPropTitle, limit: 3 });
213
+ fullTextResults = (ftResponse['dokument'] ?? ftResponse['results'] ?? []);
214
+ mcpCalls.push({ tool: 'search_dokument_fulltext', result: fullTextResults });
215
+ console.log(` 📄 Found ${fullTextResults.length} full-text matches`);
216
+ }
217
+ catch (err) {
218
+ console.warn(' ⚠ search_dokument_fulltext failed (non-fatal):', err.message);
219
+ }
220
+ }
221
+ // ── Step 3: Department impact analysis ────────────────────────────────
222
+ let departmentAnalysis = {};
223
+ try {
224
+ console.log(' 🔄 Fetching department impact analysis...');
225
+ const toDate = new Date();
226
+ const fromDate = new Date(toDate);
227
+ fromDate.setDate(fromDate.getDate() - 7);
228
+ departmentAnalysis = await client.request('analyze_g0v_by_department', {
229
+ dateFrom: formatDateForSlug(fromDate),
230
+ dateTo: formatDateForSlug(toDate)
231
+ });
232
+ mcpCalls.push({ tool: 'analyze_g0v_by_department', result: departmentAnalysis });
233
+ console.log(' 🏛 Department analysis retrieved');
234
+ }
235
+ catch (err) {
236
+ console.warn(' ⚠ analyze_g0v_by_department failed (non-fatal):', err.message);
237
+ }
238
+ // ── Step 4: Parliamentary debate context ──────────────────────────────
239
+ let speechDebates = [];
240
+ try {
241
+ console.log(' 🔄 Fetching parliamentary debate context...');
242
+ speechDebates = await client.searchSpeeches({ text: topPropTitle, rm: getCurrentRiksmote(), limit: 10 });
243
+ mcpCalls.push({ tool: 'search_anforanden', result: speechDebates });
244
+ console.log(` 🗣 Found ${speechDebates.length} debate speeches`);
245
+ }
246
+ catch (err) {
247
+ console.warn(' ⚠ search_anforanden failed (non-fatal):', err.message);
248
+ }
249
+ const today = new Date();
250
+ const slug = `${formatDateForSlug(today)}-government-propositions`;
251
+ const articles = [];
252
+ const enrichment = await getAnalysisEnrichment();
253
+ for (const lang of languages) {
254
+ console.log(` 🌐 Generating ${lang.toUpperCase()} version...`);
255
+ const content = generateArticleContent({ propositions, fullTextResults, departmentAnalysis, speechDebates }, 'propositions', lang);
256
+ const watchPoints = extractWatchPoints({ propositions, fullTextResults, departmentAnalysis, speechDebates }, lang);
257
+ const metadata = generateMetadata({ propositions, fullTextResults, departmentAnalysis, speechDebates }, 'propositions', lang);
258
+ const readTime = calculateReadTime(content);
259
+ const sources = generateSources(['get_propositioner', 'search_dokument_fulltext', 'analyze_g0v_by_department', 'search_anforanden']);
260
+ const titles = getTitles(lang, propositions.length, propositions);
261
+ const html = generateArticleHTML({
262
+ slug: `${slug}-${lang}.html`,
263
+ title: titles.title,
264
+ subtitle: titles.subtitle,
265
+ date: today.toISOString().split('T')[0] ?? '',
266
+ type: 'analysis',
267
+ readTime,
268
+ lang,
269
+ content,
270
+ watchPoints,
271
+ sources,
272
+ keywords: metadata.keywords,
273
+ topics: metadata.topics,
274
+ tags: metadata.tags,
275
+ ...(enrichment ?? {}),
276
+ });
277
+ articles.push({
278
+ lang,
279
+ html,
280
+ filename: `${slug}-${lang}.html`,
281
+ slug: `${slug}-${lang}`
282
+ });
283
+ if (writeArticle) {
284
+ await writeArticle(html, `${slug}-${lang}.html`);
285
+ console.log(` ✅ ${lang.toUpperCase()} version generated`);
286
+ }
287
+ }
288
+ return {
289
+ success: true,
290
+ files: languages.length,
291
+ slug,
292
+ articles,
293
+ mcpCalls,
294
+ crossReferences: {
295
+ event: `${propositions.length} propositions`,
296
+ sources: ['propositioner', 'dokument_fulltext', 'g0v_department', 'anforanden']
297
+ }
298
+ };
299
+ }
300
+ catch (error) {
301
+ console.error('❌ Error generating Propositions:', error.message);
302
+ return {
303
+ success: false,
304
+ error: error.message,
305
+ mcpCalls
306
+ };
307
+ }
308
+ }
309
+ function getTitles(lang, count, documents = []) {
310
+ const contentTitle = generateContentTitle(documents, lang, 'propositions');
311
+ if (contentTitle)
312
+ return contentTitle;
313
+ const titles = {
314
+ en: {
315
+ title: `Government Propositions: Policy Priorities This Week`,
316
+ subtitle: `Analysis of ${count} government propositions shaping the legislative agenda`
317
+ },
318
+ sv: {
319
+ title: `Regeringens propositioner: Veckans prioriteringar`,
320
+ subtitle: `Analys av ${count} propositioner som formar den lagstiftande agendan`
321
+ },
322
+ da: {
323
+ title: `Regeringsforslag: Politiske prioriteringer denne uge`,
324
+ subtitle: `Analyse af ${count} regeringsforslag`
325
+ },
326
+ no: {
327
+ title: `Regjeringens proposisjoner: Politiske prioriteringer denne uken`,
328
+ subtitle: `Analyse av ${count} regjeringsproposisjoner`
329
+ },
330
+ fi: {
331
+ title: `Hallituksen esitykset: Viikon poliittiset prioriteetit`,
332
+ subtitle: `Analyysi ${count} hallituksen esityksestä`
333
+ },
334
+ de: {
335
+ title: `Regierungsvorlagen: Politische Prioritäten diese Woche`,
336
+ subtitle: `Analyse von ${count} Regierungsvorlagen`
337
+ },
338
+ fr: {
339
+ title: `Propositions gouvernementales: Priorités politiques cette semaine`,
340
+ subtitle: `Analyse de ${count} propositions gouvernementales`
341
+ },
342
+ es: {
343
+ title: `Proposiciones gubernamentales: Prioridades políticas esta semana`,
344
+ subtitle: `Análisis de ${count} proposiciones gubernamentales`
345
+ },
346
+ nl: {
347
+ title: `Regeringsvoorstellen: Politieke prioriteiten deze week`,
348
+ subtitle: `Analyse van ${count} regeringsvoorstellen`
349
+ },
350
+ ar: {
351
+ title: `مقترحات الحكومة: الأولويات السياسية هذا الأسبوع`,
352
+ subtitle: `تحليل ${count} مقترحات حكومية`
353
+ },
354
+ he: {
355
+ title: `הצעות ממשלה: סדרי עדיפויות מדיניים השבוע`,
356
+ subtitle: `ניתוח ${count} הצעות ממשלה`
357
+ },
358
+ ja: {
359
+ title: `政府提案:今週の政策優先事項`,
360
+ subtitle: `${count}件の政府提案の分析`
361
+ },
362
+ ko: {
363
+ title: `정부 법안: 이번 주 정책 우선순위`,
364
+ subtitle: `${count}개 정부 법안 분석`
365
+ },
366
+ zh: {
367
+ title: `政府提案:本周政策优先事项`,
368
+ subtitle: `${count}份政府提案分析`
369
+ }
370
+ };
371
+ return titles[lang] || titles.en;
372
+ }
373
+ export function validatePropositions(article) {
374
+ const hasPropositions = checkPropositions(article);
375
+ const hasMinimumSources = countSources(article) >= 3;
376
+ const hasPolicyAnalysis = checkPolicyAnalysis(article);
377
+ return {
378
+ hasPropositions,
379
+ hasMinimumSources,
380
+ hasPolicyAnalysis,
381
+ passed: hasPropositions && hasMinimumSources && hasPolicyAnalysis
382
+ };
383
+ }
384
+ function checkPropositions(article) {
385
+ if (!article || !article.content)
386
+ return false;
387
+ return article.content.toLowerCase().includes('proposition') ||
388
+ article.content.toLowerCase().includes('government');
389
+ }
390
+ function countSources(article) {
391
+ if (!article || !article.sources)
392
+ return 0;
393
+ return Array.isArray(article.sources) ? article.sources.length : 0;
394
+ }
395
+ function checkPolicyAnalysis(article) {
396
+ if (!article || !article.content)
397
+ return false;
398
+ const keywords = ['policy', 'legislative', 'agenda', 'priorities'];
399
+ return keywords.some(keyword => article.content.toLowerCase().includes(keyword));
400
+ }
401
+ //# sourceMappingURL=propositions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"propositions.js","sourceRoot":"","sources":["../../../scripts/news-types/propositions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,231 @@
1
+ /**
2
+ * @module ContentGeneration/ProspectiveAnalysis
3
+ * @category ContentGeneration
4
+ *
5
+ * @title Week-Ahead Calendar Article Generator - Forward-Looking Intelligence
6
+ *
7
+ * @description
8
+ * **INTELLIGENCE OPERATIVE PERSPECTIVE**
9
+ *
10
+ * This module generates "Week Ahead" articles that provide prospective coverage
11
+ * of upcoming parliamentary activity. Unlike reactive news (breaking news, evening
12
+ * analysis), week-ahead articles are forward-looking intelligence briefings that
13
+ * help stakeholders prepare for expected developments and anticipate parliamentary
14
+ * agenda. This prospective focus represents a critical intelligence function:
15
+ * helping analysts prepare rather than merely react.
16
+ *
17
+ * **INTELLIGENCE VALUE OF PROSPECTIVE ANALYSIS:**
18
+ * Forward-looking coverage serves intelligence objectives:
19
+ * 1. **Situational Awareness**: Stakeholders know what to expect
20
+ * 2. **Preparation**: Organizations can prepare positions/responses
21
+ * 3. **Pattern Recognition**: Identifies patterns in parliamentary schedule
22
+ * 4. **Trend Analysis**: Connects planned activity to broader government agenda
23
+ * 5. **Risk Assessment**: Upcoming events flagged for potential controversy
24
+ *
25
+ * **COVERAGE SCOPE - 7-DAY CALENDAR:**
26
+ * Week-ahead articles cover the next 7 days of parliamentary activity:
27
+ * - **Parliamentary Plenum Sessions**: Full-house debates and votes
28
+ * - **Committee Meetings**: Specialized committee work and reviews
29
+ * - **Government Actions**: Announced government activities
30
+ * - **Scheduled Votes**: Pre-announced parliamentary voting sessions
31
+ * - **Public Hearings**: Committee hearings with expert testimony
32
+ * - **International Events**: EU parliament, Nordic cooperation meetings
33
+ *
34
+ * **ARTICLE STRUCTURE:**
35
+ * Each week-ahead article includes:
36
+ * 1. **Week Overview**: Summary of major upcoming events
37
+ * 2. **Day-by-Day Breakdown**: Specific activities and scheduled times
38
+ * 3. **Key Topics**: Policy areas being debated this week
39
+ * 4. **Watch Points**: Items likely to generate controversy or surprise
40
+ * 5. **Committee Focus**: Which committees have significant meetings
41
+ * 6. **Party Positioning**: Known party stances on upcoming votes
42
+ * 7. **International Context**: EU/Nordic cooperation dimensions
43
+ *
44
+ * **MCP DATA SOURCES (all five tools actively used):**
45
+ * - get_calendar_events: upcoming committee/chamber sessions (primary driver)
46
+ * - search_dokument: policy documents cross-referenced per calendar event (Policy Context boxes)
47
+ * - search_anforanden: recent speeches providing debate context
48
+ * - get_fragor: written questions linked to upcoming debates (Questions to Watch section)
49
+ * - get_interpellationer: interpellations enriched with minister response context (Interpellation Spotlight)
50
+ *
51
+ * **OPERATIONAL WORKFLOW:**
52
+ * 1. Calculate Date Range: Get calendar for next 7 calendar days
53
+ * 2. Query MCP: Fetch all scheduled parliamentary activity
54
+ * 3. Filter & Categorize: Group activities by type and importance
55
+ * 4. Context Gathering: Look up related documents and questions
56
+ * 5. Watch Point Analysis: Identify controversial or significant items
57
+ * 6. Article Generation: Create narrative structure with calendar
58
+ * 7. Multilingual Creation: Generate 14-language editions
59
+ * 8. Publication: Deploy immediately (updated daily)
60
+ *
61
+ * **CALENDAR STRUCTURE:**
62
+ * Swedish parliament operates on structured schedule:
63
+ *
64
+ * **Riksdag Plenum (Full Parliament):**
65
+ * - Typically: Tuesday-Thursday weekly
66
+ * - Time: 10:00-17:00 with lunch break
67
+ * - Activity: Government statements, main debates, votes
68
+ * - Advance Notice: Schedule released 3 weeks ahead
69
+ *
70
+ * **Committees:**
71
+ * - Schedule: Varies by committee
72
+ * - Timing: Mix of morning and afternoon meetings
73
+ * - Frequency: Weekly to monthly depending on workload
74
+ * - Public: Many meetings open to public observation
75
+ *
76
+ * **Special Sessions:**
77
+ * - Budget Process: September-November intensive schedule
78
+ * - Emergency Sessions: Called for crisis situations
79
+ * - International Meetings: Nordic and EU cooperation
80
+ *
81
+ * **WATCH POINT ANALYSIS:**
82
+ * Week-ahead articles highlight items likely to be contentious:
83
+ * - **Coalition Conflict**: Items dividing government coalition
84
+ * - **Opposition Challenges**: Strong opposition-sponsored motions
85
+ * - **Public Controversy**: Items with public/media attention
86
+ * - **International Pressure**: EU directives or international commitments
87
+ * - **Economic Impact**: Items affecting fiscal or monetary policy
88
+ * - **Rights & Freedoms**: Civil liberties and human rights votes
89
+ *
90
+ * **PARTY STRATEGY ANALYSIS:**
91
+ * Upcoming parliamentary schedule reveals party strategies:
92
+ * - Which issues parties prioritizing (based on speaker slots)
93
+ * - Which coalitions forming (based on motion sponsorship)
94
+ * - Which committees are battlegrounds
95
+ * - Which government ministers may face challenges
96
+ *
97
+ * **TIMING & PUBLICATION:**
98
+ * - Publication Time: Monday morning, 08:00 Swedish time
99
+ * - Refresh Schedule: Daily updates if new items added
100
+ * - Archive: Weeks archived for pattern analysis
101
+ * - Accuracy: Based on official riksdag calendar
102
+ *
103
+ * **INTERNATIONAL CONTEXT:**
104
+ * Week-ahead articles include international parliamentary activity:
105
+ * - **EU Parliament Sessions**: Relevant Swedish MEP activities
106
+ * - **Nordic Council**: Swedish participation in Nordic cooperation
107
+ * - **Bilateral Events**: International parliamentary delegations
108
+ * - **Treaty Ratifications**: International agreements for vote
109
+ *
110
+ * **INTELLIGENCE APPLICATIONS:**
111
+ * 1. **Agenda Tracking**: What parliament will debate
112
+ * 2. **Coalition Health**: Scheduled votes reveal coalition confidence
113
+ * 3. **Party Focus**: Which issues parties emphasizing
114
+ * 4. **Timeline Prediction**: When major votes will occur
115
+ * 5. **Crisis Preparation**: Advance notice of sensitive votes
116
+ *
117
+ * **PERFORMANCE CHARACTERISTICS:**
118
+ * - MCP Query: ~300ms for 7-day calendar
119
+ * - Article Generation: ~3 seconds (includes calendar formatting)
120
+ * - Translation: ~6 seconds (parallel)
121
+ * - Total: ~10 seconds for batch (all languages)
122
+ *
123
+ * **DATE RANGE HANDLING:**
124
+ * Week-ahead uses UTC-based date calculation to avoid timezone issues:
125
+ * - Tomorrow start: Tomorrow at 00:00 UTC
126
+ * - One week ahead: 7 days from tomorrow
127
+ * - Handles daylight saving transitions
128
+ * - Consistent across timezones
129
+ *
130
+ * **FAILURE HANDLING:**
131
+ * - Empty Calendar: Generate article noting light schedule
132
+ * - MCP Service Down: Use cached previous week's structure
133
+ * - Missing Committee Times: Exclude committees without times
134
+ * - Parse Error: Continue with available data
135
+ *
136
+ * **GDPR COMPLIANCE:**
137
+ * - Calendar events are public parliamentary records
138
+ * - No personal data beyond member names (public roles)
139
+ * - Data retention follows parliamentary archive standards
140
+ * - Supporting transparency in democratic process
141
+ *
142
+ * @osint Parliamentary Agenda Intelligence
143
+ * - Maps parliamentary priorities through calendar analysis
144
+ * - Tracks coalition scheduling strategy
145
+ * - Identifies emerging legislative priorities
146
+ * - Analyzes international cooperation through meeting calendar
147
+ *
148
+ * @risk Government Agenda Forecasting
149
+ * - Scheduled votes reveal government confidence
150
+ * - Postponed items signal coalition stress
151
+ * - Contentious votes allow advance preparation
152
+ * - International deadlines drive agenda timing
153
+ *
154
+ * @gdpr Democratic Transparency
155
+ * - Parliamentary calendar is public
156
+ * - Enables public participation in democracy
157
+ * - Data retention follows official standards
158
+ * - Supporting right-to-access-government-information
159
+ *
160
+ * @security Calendar Data Integrity
161
+ * - Calendar verified through official MCP source
162
+ * - Times validated against official riksdag records
163
+ * - Tampering detected through checksum validation
164
+ * - Source verification prevents false schedules
165
+ *
166
+ * @author Hack23 AB (Prospective Intelligence & Agenda Analysis)
167
+ * @license Apache-2.0
168
+ * @version 2.1.0
169
+ * @since 2024-09-05
170
+ * @see scripts/data-transformers.js (Calendar Transformation)
171
+ * @see scripts/article-template.js (HTML Rendering)
172
+ * @see Issue #151 (Week-Ahead Enhancement)
173
+ * @see https://www.riksdagen.se/sv/sa-funkar-riksdagen/ (Parliament Procedure)
174
+ */
175
+ import type { Language } from '../types/language.js';
176
+ import type { GenerationResult, DateRange } from '../types/article.js';
177
+ /**
178
+ * Required MCP tools for week-ahead articles.
179
+ * All tools are always invoked (not conditional on calendar scarcity):
180
+ * - get_calendar_events: upcoming committee/chamber events
181
+ * - search_dokument: recently-published documents
182
+ * - search_anforanden: recent chamber speeches for context
183
+ * - get_fragor: latest written questions to ministers
184
+ * - get_interpellationer: latest interpellations
185
+ */
186
+ export declare const REQUIRED_TOOLS: readonly string[];
187
+ export interface TitleSet {
188
+ title: string;
189
+ subtitle: string;
190
+ }
191
+ export interface WeekAheadValidationResult {
192
+ hasCalendarEvents: boolean;
193
+ hasMinimumSources: boolean;
194
+ hasProspectiveTone: boolean;
195
+ hasAllDaysOfWeek: boolean;
196
+ passed: boolean;
197
+ }
198
+ export interface ArticleInput {
199
+ content?: string;
200
+ sources?: string[];
201
+ [key: string]: unknown;
202
+ }
203
+ export interface GenerationOptions {
204
+ languages?: Language[];
205
+ dateRange?: DateRange | null;
206
+ writeArticle?: ((html: string, filename: string) => Promise<void>) | null;
207
+ }
208
+ /**
209
+ * Get date range for Week Ahead (next 7 days)
210
+ * Uses UTC to avoid timezone boundary issues with toISOString()
211
+ */
212
+ export declare function getWeekAheadDateRange(): DateRange;
213
+ /**
214
+ * Format date for article slug
215
+ */
216
+ export declare function formatDateForSlug(date?: Date): string;
217
+ /**
218
+ * Generate Week Ahead article in specified languages
219
+ *
220
+ * @param options - Generation options
221
+ * @returns Generation result with success, files, slug, mcpCalls
222
+ */
223
+ export declare function generateWeekAhead(options?: GenerationOptions): Promise<GenerationResult>;
224
+ /**
225
+ * Validate week-ahead article structure
226
+ *
227
+ * @param article - Article object with content and metadata
228
+ * @returns Validation result
229
+ */
230
+ export declare function validateWeekAhead(article: ArticleInput): WeekAheadValidationResult;
231
+ //# sourceMappingURL=week-ahead.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"week-ahead.d.ts","sourceRoot":"","sources":["../../../scripts/news-types/week-ahead.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6KG;AAeH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAqC,gBAAgB,EAAiB,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEzH;;;;;;;;GAQG;AACH,eAAO,MAAM,cAAc,EAAE,SAAS,MAAM,EAM3C,CAAC;AAEF,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,yBAAyB;IACxC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,SAAS,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IAC7B,YAAY,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;CAC3E;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,SAAS,CAYjD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,GAAE,IAAiB,GAAG,MAAM,CAEjE;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAkIlG;AAoED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,YAAY,GAAG,yBAAyB,CAalF"}