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,414 @@
1
+ /**
2
+ * @module analysis-framework/political-classification
3
+ * @description Political classification engine implementing 7-dimension scoring
4
+ * for parliamentary documents.
5
+ *
6
+ * Inspired by ISMS CLASSIFICATION.md (Impact Analysis Matrix — Confidentiality,
7
+ * Integrity, Availability levels), adapted for political intelligence analysis.
8
+ *
9
+ * ## Dimensions
10
+ * | ISMS Dimension | Political Dimension |
11
+ * |-------------------------|----------------------------------|
12
+ * | Confidentiality | Public Interest Sensitivity |
13
+ * | Integrity | Democratic Integrity Impact |
14
+ * | Availability | Policy Urgency |
15
+ * | Financial Impact | Economic Impact |
16
+ * | Operational Impact | Governance Impact |
17
+ * | Reputational Impact | Political Capital Impact |
18
+ * | Regulatory Impact | Legislative Impact |
19
+ *
20
+ * The engine is **pure** — deterministic for the same input, no side effects.
21
+ *
22
+ * @author Hack23 AB
23
+ * @license Apache-2.0
24
+ */
25
+ // ---------------------------------------------------------------------------
26
+ // Keyword banks
27
+ // ---------------------------------------------------------------------------
28
+ /** Keywords indicating explosive public interest / political controversy */
29
+ const EXPLOSIVE_KEYWORDS = [
30
+ 'tidöavtal', 'misstroende', 'misstroendevotum', 'regeringskris',
31
+ 'koalitionskris', 'oenighet', 'spricka', 'uteslutning', 'partiledare',
32
+ 'skandal', 'korruption', 'mutor', 'fusk', 'avgå', 'avgångskrav',
33
+ 'riksrätt', 'konstitutionsbrott', 'olaglig', 'brottslig',
34
+ 'crisis', 'scandal', 'corruption', 'resignation', 'impeachment',
35
+ ];
36
+ /** Keywords indicating politically sensitive content */
37
+ const SENSITIVE_KEYWORDS = [
38
+ 'invandring', 'migration', 'flyktingar', 'asyl', 'integration',
39
+ 'skattehöjning', 'skattesänkning', 'välfärdsreform', 'sjukvård',
40
+ 'NATO', 'försvar', 'militär', 'beredskap', 'säkerhetspolitik',
41
+ 'klimat', 'energi', 'kärnkraft', 'abort', 'dödshjälp',
42
+ 'kriminalitet', 'gängkriminalitet', 'polisen', 'rättsstat',
43
+ 'immigration', 'defense', 'security', 'climate', 'nuclear', 'crime',
44
+ ];
45
+ /** Keywords signalling immediate constitutional or democratic urgency */
46
+ const CONSTITUTIONAL_KEYWORDS = [
47
+ 'grundlag', 'regeringsform', 'riksdagsordning', 'vallag', 'folkomröstning',
48
+ 'konstitution', 'konstitutionell', 'grundlagsskyddad', 'fri- och rättigheter',
49
+ 'constitutional', 'fundamental law', 'referendum', 'rights',
50
+ ];
51
+ /** Keywords indicating legislative (riksdag-level) impact */
52
+ const LEGISLATIVE_KEYWORDS = [
53
+ 'riksdagen beslutar', 'proposition', 'lagstiftning', 'lag om',
54
+ 'ändring i lagen', 'lagändring', 'ny lag', 'lagens tillämpning',
55
+ 'parliament decides', 'legislation', 'law amendment', 'new law',
56
+ ];
57
+ /** Keywords indicating regulatory/ordinance level impact */
58
+ const REGULATORY_KEYWORDS = [
59
+ 'förordning', 'föreskrift', 'myndighetsföreskrift', 'reglering',
60
+ 'regulation', 'ordinance', 'regulatory', 'rule change',
61
+ ];
62
+ /** Keywords for economic/fiscal significance */
63
+ const ECONOMIC_HIGH_KEYWORDS = [
64
+ 'statsbudget', 'budgetproposition', 'ramproposition', 'statsskuld',
65
+ 'BNP', 'konjunktur', 'inflation', 'ränta', 'riksbanken',
66
+ 'skatteintäkter', 'skatteuttag', 'anslag', 'miljarder',
67
+ 'GDP', 'budget', 'fiscal', 'monetary', 'inflation', 'interest rate', 'billions',
68
+ ];
69
+ /** Committees with systemic governance impact */
70
+ const SYSTEMIC_GOVERNANCE_COMMITTEES = new Set(['FiU', 'KU', 'FöU', 'UU']);
71
+ /** Document types that are at least standard public-interest sensitivity */
72
+ const STANDARD_SENSITIVITY_TYPES = new Set(['prop', 'bet', 'sou', 'prot']);
73
+ /** Committees with significant governance impact */
74
+ const SIGNIFICANT_GOVERNANCE_COMMITTEES = new Set(['JuU', 'SoU', 'SfU', 'AU', 'MJU', 'UbU', 'SkU']);
75
+ /** Document types with immediate policy urgency */
76
+ const IMMEDIATE_URGENCY_TYPES = new Set(['bet', 'prot']);
77
+ /** Document types with short-term policy urgency */
78
+ const SHORT_TERM_URGENCY_TYPES = new Set(['prop', 'ip', 'sou']);
79
+ /** Document types with medium-term policy urgency */
80
+ const MEDIUM_TERM_URGENCY_TYPES = new Set(['skr', 'ds', 'dir', 'mot']);
81
+ // ---------------------------------------------------------------------------
82
+ // Numeric dimension value maps (for score computation)
83
+ // ---------------------------------------------------------------------------
84
+ const SENSITIVITY_SCORES = {
85
+ explosive: 100, sensitive: 70, standard: 40, routine: 10,
86
+ };
87
+ const DEMOCRATIC_SCORES = {
88
+ critical: 100, significant: 70, moderate: 40, minor: 10,
89
+ };
90
+ const URGENCY_SCORES = {
91
+ immediate: 100, 'short-term': 70, 'medium-term': 40, 'long-term': 10,
92
+ };
93
+ const ECONOMIC_SCORES = {
94
+ transformative: 100, major: 70, moderate: 40, minimal: 10,
95
+ };
96
+ const GOVERNANCE_SCORES = {
97
+ systemic: 100, significant: 70, procedural: 40, routine: 10,
98
+ };
99
+ const POLITICAL_CAPITAL_SCORES = {
100
+ 'career-defining': 100, significant: 70, notable: 40, negligible: 10,
101
+ };
102
+ const LEGISLATIVE_SCORES = {
103
+ constitutional: 100, legislative: 70, regulatory: 40, administrative: 10,
104
+ };
105
+ // ---------------------------------------------------------------------------
106
+ // Dimension weights (must sum to 1.0)
107
+ // ---------------------------------------------------------------------------
108
+ const DIMENSION_WEIGHTS = {
109
+ publicInterestSensitivity: 0.20,
110
+ democraticIntegrityImpact: 0.20,
111
+ policyUrgency: 0.10,
112
+ economicImpact: 0.15,
113
+ governanceImpact: 0.15,
114
+ politicalCapitalImpact: 0.10,
115
+ legislativeImpact: 0.10,
116
+ };
117
+ // ---------------------------------------------------------------------------
118
+ // Dimension scorers
119
+ // ---------------------------------------------------------------------------
120
+ function containsAny(text, keywords) {
121
+ const lower = text.toLowerCase();
122
+ return keywords.some(kw => lower.includes(kw.toLowerCase()));
123
+ }
124
+ function getDocText(doc) {
125
+ const fullContentText = doc.fullContent
126
+ ? doc.fullContent.replace(/<[^>]+>/g, ' ')
127
+ : undefined;
128
+ const primaryText = doc.fullText ?? fullContentText;
129
+ return [
130
+ doc.titel, doc.rubrik, doc.undertitel, doc.title,
131
+ doc.summary, doc.notis, primaryText,
132
+ ].filter(Boolean).join(' ');
133
+ }
134
+ /**
135
+ * Derive normalized document type from RawDocument.
136
+ * Falls back from `doktyp` to `documentType`, lowercased and trimmed.
137
+ */
138
+ function getDocType(doc) {
139
+ return String(doc.doktyp ?? doc.documentType ?? '').toLowerCase().trim();
140
+ }
141
+ function classifyPublicInterestSensitivity(doc, cia) {
142
+ const text = getDocText(doc);
143
+ if (containsAny(text, EXPLOSIVE_KEYWORDS))
144
+ return 'explosive';
145
+ // Unstable coalition elevates sensitivity of policy documents
146
+ if (cia?.coalitionStability?.stabilityScore !== undefined && cia.coalitionStability.stabilityScore < 30) {
147
+ if (containsAny(text, SENSITIVE_KEYWORDS))
148
+ return 'explosive';
149
+ }
150
+ if (containsAny(text, SENSITIVE_KEYWORDS))
151
+ return 'sensitive';
152
+ // Government propositions and committee reports are always at least standard
153
+ if (STANDARD_SENSITIVITY_TYPES.has(getDocType(doc)))
154
+ return 'standard';
155
+ return 'routine';
156
+ }
157
+ function classifyDemocraticIntegrityImpact(doc) {
158
+ const text = getDocText(doc);
159
+ if (containsAny(text, CONSTITUTIONAL_KEYWORDS))
160
+ return 'critical';
161
+ // Constitutional/oversight committee involvement is significant
162
+ if (doc.organ === 'KU' || doc.organ === 'FiU')
163
+ return 'significant';
164
+ // Propositions always have at least moderate democratic integrity impact
165
+ const docType = getDocType(doc);
166
+ if (docType === 'prop' || docType === 'bet')
167
+ return 'moderate';
168
+ return 'minor';
169
+ }
170
+ function classifyPolicyUrgency(doc) {
171
+ const docType = getDocType(doc);
172
+ if (IMMEDIATE_URGENCY_TYPES.has(docType))
173
+ return 'immediate';
174
+ if (SHORT_TERM_URGENCY_TYPES.has(docType))
175
+ return 'short-term';
176
+ if (MEDIUM_TERM_URGENCY_TYPES.has(docType))
177
+ return 'medium-term';
178
+ return 'long-term';
179
+ }
180
+ function classifyEconomicImpact(doc, cia) {
181
+ const text = getDocText(doc);
182
+ if (containsAny(text, ECONOMIC_HIGH_KEYWORDS)) {
183
+ // Budget propositions or finance committee documents are transformative
184
+ if (doc.organ === 'FiU' || getDocType(doc) === 'prop')
185
+ return 'transformative';
186
+ return 'major';
187
+ }
188
+ // Fiscal instability amplifies economic impact
189
+ if (cia?.coalitionStability?.stabilityScore !== undefined && cia.coalitionStability.stabilityScore < 40) {
190
+ return 'major';
191
+ }
192
+ if (getDocType(doc) === 'prop' || getDocType(doc) === 'bet')
193
+ return 'moderate';
194
+ return 'minimal';
195
+ }
196
+ function classifyGovernanceImpact(doc) {
197
+ const committee = doc.organ ?? doc.committee ?? '';
198
+ if (SYSTEMIC_GOVERNANCE_COMMITTEES.has(committee))
199
+ return 'systemic';
200
+ if (SIGNIFICANT_GOVERNANCE_COMMITTEES.has(committee))
201
+ return 'significant';
202
+ if (getDocType(doc) === 'prop' || getDocType(doc) === 'bet')
203
+ return 'procedural';
204
+ return 'routine';
205
+ }
206
+ function classifyPoliticalCapitalImpact(doc, cia) {
207
+ const text = getDocText(doc);
208
+ // Crisis keywords or coalition instability → career-defining
209
+ if (containsAny(text, EXPLOSIVE_KEYWORDS))
210
+ return 'career-defining';
211
+ // Interpellations targeting ministers are notable at minimum
212
+ const docType = getDocType(doc);
213
+ if (docType === 'ip' || docType === 'fr') {
214
+ if (doc.mottagare && doc.mottagare.length > 0)
215
+ return 'significant';
216
+ return 'notable';
217
+ }
218
+ // Unstable coalition elevates political capital stakes
219
+ if (cia?.coalitionStability?.stabilityScore !== undefined && cia.coalitionStability.stabilityScore < 50) {
220
+ return 'significant';
221
+ }
222
+ if (docType === 'prop' || docType === 'bet')
223
+ return 'notable';
224
+ return 'negligible';
225
+ }
226
+ function classifyLegislativeImpact(doc) {
227
+ const text = getDocText(doc);
228
+ if (containsAny(text, CONSTITUTIONAL_KEYWORDS))
229
+ return 'constitutional';
230
+ if (containsAny(text, LEGISLATIVE_KEYWORDS))
231
+ return 'legislative';
232
+ if (containsAny(text, REGULATORY_KEYWORDS))
233
+ return 'regulatory';
234
+ // Committee reports and propositions change legislation by default
235
+ if (getDocType(doc) === 'bet' || getDocType(doc) === 'prop')
236
+ return 'legislative';
237
+ return 'administrative';
238
+ }
239
+ // ---------------------------------------------------------------------------
240
+ // Overall classification derivation
241
+ // ---------------------------------------------------------------------------
242
+ /**
243
+ * Derive the overall classification from the composite numeric score.
244
+ *
245
+ * Thresholds:
246
+ * - ≥70 → critical
247
+ * - ≥50 → high
248
+ * - ≥30 → medium
249
+ * - <30 → low
250
+ */
251
+ function deriveOverallClassification(score) {
252
+ if (score >= 70)
253
+ return 'critical';
254
+ if (score >= 50)
255
+ return 'high';
256
+ if (score >= 30)
257
+ return 'medium';
258
+ return 'low';
259
+ }
260
+ // ---------------------------------------------------------------------------
261
+ // Score computation
262
+ // ---------------------------------------------------------------------------
263
+ /**
264
+ * Compute the weighted composite classification score (0–100).
265
+ */
266
+ function computeClassificationScore(dimensions) {
267
+ const weighted = SENSITIVITY_SCORES[dimensions.publicInterestSensitivity] * DIMENSION_WEIGHTS.publicInterestSensitivity +
268
+ DEMOCRATIC_SCORES[dimensions.democraticIntegrityImpact] * DIMENSION_WEIGHTS.democraticIntegrityImpact +
269
+ URGENCY_SCORES[dimensions.policyUrgency] * DIMENSION_WEIGHTS.policyUrgency +
270
+ ECONOMIC_SCORES[dimensions.economicImpact] * DIMENSION_WEIGHTS.economicImpact +
271
+ GOVERNANCE_SCORES[dimensions.governanceImpact] * DIMENSION_WEIGHTS.governanceImpact +
272
+ POLITICAL_CAPITAL_SCORES[dimensions.politicalCapitalImpact] * DIMENSION_WEIGHTS.politicalCapitalImpact +
273
+ LEGISLATIVE_SCORES[dimensions.legislativeImpact] * DIMENSION_WEIGHTS.legislativeImpact;
274
+ return Math.min(100, Math.max(0, Math.round(weighted)));
275
+ }
276
+ // ---------------------------------------------------------------------------
277
+ // Rationale builder
278
+ // ---------------------------------------------------------------------------
279
+ function buildRationale(doc, dimensions) {
280
+ const rationale = [];
281
+ const docType = getDocType(doc) || 'unknown';
282
+ const committee = doc.organ ?? doc.committee ?? 'unknown';
283
+ // Public interest sensitivity
284
+ if (dimensions.publicInterestSensitivity === 'explosive') {
285
+ rationale.push('Explosive public interest: Keywords indicate scandal, crisis, or coalition threat');
286
+ }
287
+ else if (dimensions.publicInterestSensitivity === 'sensitive') {
288
+ rationale.push('Sensitive topic: immigration, defence, climate, or tax policy detected');
289
+ }
290
+ else {
291
+ rationale.push(`Public interest sensitivity rated as "${dimensions.publicInterestSensitivity}": no explosive or highly sensitive triggers detected`);
292
+ }
293
+ // Democratic integrity impact
294
+ if (dimensions.democraticIntegrityImpact === 'critical') {
295
+ rationale.push('Critical democratic integrity: Constitutional law or fundamental rights involved');
296
+ }
297
+ else if (dimensions.democraticIntegrityImpact === 'significant') {
298
+ rationale.push(`Significant democratic impact: Committee ${committee} has oversight/constitutional role`);
299
+ }
300
+ else {
301
+ rationale.push(`Democratic integrity impact rated as "${dimensions.democraticIntegrityImpact}": limited or routine implications for democratic processes`);
302
+ }
303
+ // Economic impact
304
+ if (dimensions.economicImpact === 'transformative') {
305
+ rationale.push('Transformative economic impact: Budget or macro-level fiscal content detected');
306
+ }
307
+ else if (dimensions.economicImpact === 'major') {
308
+ rationale.push('Major economic impact: Significant fiscal or monetary policy implications');
309
+ }
310
+ else {
311
+ rationale.push(`Economic impact rated as "${dimensions.economicImpact}": no major fiscal or monetary signals detected`);
312
+ }
313
+ // Governance impact
314
+ if (dimensions.governanceImpact === 'systemic') {
315
+ rationale.push(`Systemic governance impact: Committee ${committee} drives cross-government policy`);
316
+ }
317
+ else {
318
+ rationale.push(`Governance impact rated as "${dimensions.governanceImpact}": ${committee} committee scope`);
319
+ }
320
+ // Legislative impact
321
+ if (dimensions.legislativeImpact === 'constitutional') {
322
+ rationale.push('Constitutional legislative impact: Affects fundamental law or constitutional order');
323
+ }
324
+ else if (dimensions.legislativeImpact === 'legislative') {
325
+ rationale.push(`Legislative impact: Document type ${docType} typically creates or amends statutes`);
326
+ }
327
+ else {
328
+ rationale.push(`Legislative impact rated as "${dimensions.legislativeImpact}": no statutory or constitutional changes detected`);
329
+ }
330
+ // Policy urgency
331
+ if (dimensions.policyUrgency === 'immediate') {
332
+ rationale.push('Immediate policy urgency: Time-critical document requiring prompt attention');
333
+ }
334
+ else if (dimensions.policyUrgency === 'short-term') {
335
+ rationale.push('Short-term policy urgency: Active legislative or committee timeline');
336
+ }
337
+ else {
338
+ rationale.push(`Policy urgency rated as "${dimensions.policyUrgency}": standard parliamentary timeline`);
339
+ }
340
+ // Political capital impact
341
+ if (dimensions.politicalCapitalImpact === 'career-defining') {
342
+ rationale.push('Career-defining political capital impact: Major reputational stakes for actors involved');
343
+ }
344
+ else if (dimensions.politicalCapitalImpact === 'significant') {
345
+ rationale.push('Significant political capital impact: Notable reputational consequences');
346
+ }
347
+ else {
348
+ rationale.push(`Political capital impact rated as "${dimensions.politicalCapitalImpact}": limited reputational stakes`);
349
+ }
350
+ return rationale;
351
+ }
352
+ // ---------------------------------------------------------------------------
353
+ // Public API
354
+ // ---------------------------------------------------------------------------
355
+ /**
356
+ * Classify a parliamentary document across 7 political dimensions.
357
+ *
358
+ * Applies the ISMS-inspired Political Classification Framework to produce
359
+ * a multi-dimensional classification with an aggregated score and rationale.
360
+ *
361
+ * The function is **pure** — deterministic for the same input, no side effects.
362
+ *
363
+ * @param doc - The parliamentary document to classify
364
+ * @param cia - Optional CIA context (coalition stability influences several dimensions)
365
+ * @returns Complete 7-dimension political classification
366
+ *
367
+ * @example
368
+ * ```typescript
369
+ * const classification = classifyPoliticalDocument(doc, ciaContext);
370
+ * console.log(classification.overallClassification); // 'critical' | 'high' | 'medium' | 'low'
371
+ * console.log(classification.classificationScore); // 0-100
372
+ * ```
373
+ */
374
+ export function classifyPoliticalDocument(doc, cia) {
375
+ const publicInterestSensitivity = classifyPublicInterestSensitivity(doc, cia);
376
+ const democraticIntegrityImpact = classifyDemocraticIntegrityImpact(doc);
377
+ const policyUrgency = classifyPolicyUrgency(doc);
378
+ const economicImpact = classifyEconomicImpact(doc, cia);
379
+ const governanceImpact = classifyGovernanceImpact(doc);
380
+ const politicalCapitalImpact = classifyPoliticalCapitalImpact(doc, cia);
381
+ const legislativeImpact = classifyLegislativeImpact(doc);
382
+ const dimensions = {
383
+ publicInterestSensitivity,
384
+ democraticIntegrityImpact,
385
+ policyUrgency,
386
+ economicImpact,
387
+ governanceImpact,
388
+ politicalCapitalImpact,
389
+ legislativeImpact,
390
+ };
391
+ const classificationScore = computeClassificationScore(dimensions);
392
+ const overallClassification = deriveOverallClassification(classificationScore);
393
+ const rationale = buildRationale(doc, dimensions);
394
+ return {
395
+ ...dimensions,
396
+ overallClassification,
397
+ classificationScore,
398
+ rationale,
399
+ };
400
+ }
401
+ /**
402
+ * Classify a batch of parliamentary documents.
403
+ *
404
+ * Applies `classifyPoliticalDocument` to each document independently.
405
+ * Useful for batch processing in the news generation pipeline.
406
+ *
407
+ * @param docs - Array of documents to classify
408
+ * @param cia - Optional shared CIA context for all documents
409
+ * @returns Array of classifications, one per input document
410
+ */
411
+ export function classifyPoliticalDocuments(docs, cia) {
412
+ return docs.map(doc => classifyPoliticalDocument(doc, cia));
413
+ }
414
+ //# sourceMappingURL=political-classification.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"political-classification.js","sourceRoot":"","sources":["../../../scripts/analysis-framework/political-classification.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * @module analysis-framework/political-risk-assessment
3
+ * @description Political risk scoring engine implementing Likelihood × Impact
4
+ * risk assessment for parliamentary documents.
5
+ *
6
+ * Inspired by ISMS Risk_Assessment_Methodology.md (Quantitative risk scoring),
7
+ * adapted for political intelligence analysis of Swedish parliamentary context.
8
+ *
9
+ * ## Risk Categories
10
+ * - Coalition Stability — Government collapse or realignment risk
11
+ * - Policy Implementation — Policy failure or stalling risk
12
+ * - Democratic Process — Threat to democratic norms and institutions
13
+ * - Economic Policy — Fiscal/monetary policy decision risk
14
+ * - Social Cohesion — Societal division or unrest risk
15
+ * - International Standing — Sweden's international position risk
16
+ *
17
+ * ## Scoring Formula
18
+ * Risk Score = likelihood_probability × impact_weight × 10
19
+ * With current scales (almost-certain=0.90, transformative=10), the
20
+ * practical maximum is 90. Values are clamped to [0, 100] for safety.
21
+ *
22
+ * The engine is **pure** — deterministic for the same input, no side effects.
23
+ *
24
+ * @author Hack23 AB
25
+ * @license Apache-2.0
26
+ */
27
+ import type { RawDocument, CIAContext } from '../data-transformers/types.js';
28
+ import type { PoliticalRiskAssessment, PoliticalRiskProfile, PoliticalRiskCategory, LikelihoodLevel, RiskImpactLevel } from './methodology-types.js';
29
+ /**
30
+ * Compute a risk score from likelihood and impact.
31
+ *
32
+ * Formula: likelihood_probability × impact_weight × 10
33
+ * With current scales (almost-certain=0.90, transformative=10), the
34
+ * practical maximum is 90. Values are clamped to [0, 100] for safety.
35
+ */
36
+ export declare function computeRiskScore(likelihood: LikelihoodLevel, impact: RiskImpactLevel): number;
37
+ /**
38
+ * Derive priority tier from risk score.
39
+ */
40
+ export declare function deriveRiskPriority(score: number): 'critical' | 'high' | 'medium' | 'low';
41
+ /**
42
+ * Assess political risk for a parliamentary document across all 6 risk categories.
43
+ *
44
+ * Applies the ISMS-inspired Likelihood × Impact methodology to each category
45
+ * and returns a complete risk profile with composite scoring and priority ranking.
46
+ *
47
+ * The function is **pure** — deterministic for the same input, no side effects.
48
+ *
49
+ * @param doc - The parliamentary document to assess
50
+ * @param cia - Optional CIA context (coalition stability data improves accuracy)
51
+ * @returns Complete political risk profile with per-category assessments
52
+ *
53
+ * @example
54
+ * ```typescript
55
+ * const profile = assessPoliticalRisk(doc, ciaContext);
56
+ * console.log(profile.overallRiskLevel); // 'critical' | 'high' | 'medium' | 'low'
57
+ * console.log(profile.compositeRiskScore); // 0–100
58
+ * console.log(profile.dominantRisk); // highest-priority category
59
+ * ```
60
+ */
61
+ export declare function assessPoliticalRisk(doc: RawDocument, cia?: CIAContext): PoliticalRiskProfile;
62
+ /**
63
+ * Assess political risk for a specific category only.
64
+ *
65
+ * Use when you need a targeted assessment for a single risk dimension
66
+ * rather than the full 6-category profile.
67
+ *
68
+ * @param doc - The parliamentary document to assess
69
+ * @param category - The specific risk category to assess
70
+ * @param cia - Optional CIA context
71
+ * @returns Risk assessment for the specified category
72
+ */
73
+ export declare function assessSingleRiskCategory(doc: RawDocument, category: PoliticalRiskCategory, cia?: CIAContext): PoliticalRiskAssessment;
74
+ //# sourceMappingURL=political-risk-assessment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"political-risk-assessment.d.ts","sourceRoot":"","sources":["../../../scripts/analysis-framework/political-risk-assessment.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,KAAK,EACV,uBAAuB,EACvB,oBAAoB,EACpB,qBAAqB,EACrB,eAAe,EACf,eAAe,EAChB,MAAM,wBAAwB,CAAC;AA4ehC;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,eAAe,EAC3B,MAAM,EAAE,eAAe,GACtB,MAAM,CAIR;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAKxF;AAgGD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,WAAW,EAChB,GAAG,CAAC,EAAE,UAAU,GACf,oBAAoB,CAkBtB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,WAAW,EAChB,QAAQ,EAAE,qBAAqB,EAC/B,GAAG,CAAC,EAAE,UAAU,GACf,uBAAuB,CAEzB"}