riksdagsmonitor 0.8.23 → 0.8.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +53 -1
- package/dist/lib/dashboards/party-dashboard.js +2 -1
- package/dist/lib/dashboards/party-dashboard.js.map +1 -1
- package/dist/lib/dashboards/risk-dashboard.js +2 -1
- package/dist/lib/dashboards/risk-dashboard.js.map +1 -1
- package/dist/lib/shared/index.d.ts +0 -1
- package/dist/lib/shared/index.d.ts.map +1 -1
- package/dist/lib/shared/index.js +3 -1
- package/dist/lib/shared/index.js.map +1 -1
- package/dist/lib/shared/register-globals.d.ts +1 -1
- package/dist/lib/shared/register-globals.d.ts.map +1 -1
- package/dist/lib/shared/register-globals.js +7 -1
- package/dist/lib/shared/register-globals.js.map +1 -1
- package/package.json +54 -22
- package/dist/scripts/analysis-reader.d.ts +0 -241
- package/dist/scripts/analysis-reader.d.ts.map +0 -1
- package/dist/scripts/analysis-reader.js +0 -531
- package/dist/scripts/analysis-reader.js.map +0 -1
- package/dist/scripts/article-quality-enhancer.d.ts +0 -148
- package/dist/scripts/article-quality-enhancer.d.ts.map +0 -1
- package/dist/scripts/article-quality-enhancer.js +0 -430
- package/dist/scripts/article-quality-enhancer.js.map +0 -1
- package/dist/scripts/article-template/constants.d.ts +0 -104
- package/dist/scripts/article-template/constants.d.ts.map +0 -1
- package/dist/scripts/article-template/constants.js +0 -225
- package/dist/scripts/article-template/constants.js.map +0 -1
- package/dist/scripts/article-template/helpers.d.ts +0 -83
- package/dist/scripts/article-template/helpers.d.ts.map +0 -1
- package/dist/scripts/article-template/helpers.js +0 -236
- package/dist/scripts/article-template/helpers.js.map +0 -1
- package/dist/scripts/article-template/index.d.ts +0 -39
- package/dist/scripts/article-template/index.d.ts.map +0 -1
- package/dist/scripts/article-template/index.js +0 -37
- package/dist/scripts/article-template/index.js.map +0 -1
- package/dist/scripts/article-template/registry.d.ts +0 -64
- package/dist/scripts/article-template/registry.d.ts.map +0 -1
- package/dist/scripts/article-template/registry.js +0 -405
- package/dist/scripts/article-template/registry.js.map +0 -1
- package/dist/scripts/article-template/template.d.ts +0 -18
- package/dist/scripts/article-template/template.d.ts.map +0 -1
- package/dist/scripts/article-template/template.js +0 -359
- package/dist/scripts/article-template/template.js.map +0 -1
- package/dist/scripts/article-template/types.d.ts +0 -90
- package/dist/scripts/article-template/types.d.ts.map +0 -1
- package/dist/scripts/article-template/types.js +0 -96
- package/dist/scripts/article-template/types.js.map +0 -1
- package/dist/scripts/article-template.d.ts +0 -18
- package/dist/scripts/article-template.d.ts.map +0 -1
- package/dist/scripts/article-template.js +0 -18
- package/dist/scripts/article-template.js.map +0 -1
- package/dist/scripts/catalog-downloaded-data.d.ts +0 -66
- package/dist/scripts/catalog-downloaded-data.d.ts.map +0 -1
- package/dist/scripts/catalog-downloaded-data.js +0 -239
- package/dist/scripts/catalog-downloaded-data.js.map +0 -1
- package/dist/scripts/check-cia-schema-updates.d.ts +0 -186
- package/dist/scripts/check-cia-schema-updates.d.ts.map +0 -1
- package/dist/scripts/check-cia-schema-updates.js +0 -363
- package/dist/scripts/check-cia-schema-updates.js.map +0 -1
- package/dist/scripts/data-transformers/calendar.d.ts +0 -16
- package/dist/scripts/data-transformers/calendar.d.ts.map +0 -1
- package/dist/scripts/data-transformers/calendar.js +0 -137
- package/dist/scripts/data-transformers/calendar.js.map +0 -1
- package/dist/scripts/data-transformers/constants/committee-names.d.ts +0 -15
- package/dist/scripts/data-transformers/constants/committee-names.d.ts.map +0 -1
- package/dist/scripts/data-transformers/constants/committee-names.js +0 -30
- package/dist/scripts/data-transformers/constants/committee-names.js.map +0 -1
- package/dist/scripts/data-transformers/constants/content-labels-part1.d.ts +0 -11
- package/dist/scripts/data-transformers/constants/content-labels-part1.d.ts.map +0 -1
- package/dist/scripts/data-transformers/constants/content-labels-part1.js +0 -900
- package/dist/scripts/data-transformers/constants/content-labels-part1.js.map +0 -1
- package/dist/scripts/data-transformers/constants/content-labels-part2.d.ts +0 -11
- package/dist/scripts/data-transformers/constants/content-labels-part2.d.ts.map +0 -1
- package/dist/scripts/data-transformers/constants/content-labels-part2.js +0 -900
- package/dist/scripts/data-transformers/constants/content-labels-part2.js.map +0 -1
- package/dist/scripts/data-transformers/constants/content-labels.d.ts +0 -13
- package/dist/scripts/data-transformers/constants/content-labels.d.ts.map +0 -1
- package/dist/scripts/data-transformers/constants/content-labels.js +0 -18
- package/dist/scripts/data-transformers/constants/content-labels.js.map +0 -1
- package/dist/scripts/data-transformers/constants/index.d.ts +0 -15
- package/dist/scripts/data-transformers/constants/index.d.ts.map +0 -1
- package/dist/scripts/data-transformers/constants/index.js +0 -15
- package/dist/scripts/data-transformers/constants/index.js.map +0 -1
- package/dist/scripts/data-transformers/constants/locale-map.d.ts +0 -13
- package/dist/scripts/data-transformers/constants/locale-map.d.ts.map +0 -1
- package/dist/scripts/data-transformers/constants/locale-map.js +0 -17
- package/dist/scripts/data-transformers/constants/locale-map.js.map +0 -1
- package/dist/scripts/data-transformers/constants.d.ts +0 -14
- package/dist/scripts/data-transformers/constants.d.ts.map +0 -1
- package/dist/scripts/data-transformers/constants.js +0 -14
- package/dist/scripts/data-transformers/constants.js.map +0 -1
- package/dist/scripts/data-transformers/content-generators/ai-mindmap-analyzer.d.ts +0 -64
- package/dist/scripts/data-transformers/content-generators/ai-mindmap-analyzer.d.ts.map +0 -1
- package/dist/scripts/data-transformers/content-generators/ai-mindmap-analyzer.js +0 -805
- package/dist/scripts/data-transformers/content-generators/ai-mindmap-analyzer.js.map +0 -1
- package/dist/scripts/data-transformers/content-generators/cia-overview-section.d.ts +0 -50
- package/dist/scripts/data-transformers/content-generators/cia-overview-section.d.ts.map +0 -1
- package/dist/scripts/data-transformers/content-generators/cia-overview-section.js +0 -310
- package/dist/scripts/data-transformers/content-generators/cia-overview-section.js.map +0 -1
- package/dist/scripts/data-transformers/content-generators/committee.d.ts +0 -12
- package/dist/scripts/data-transformers/content-generators/committee.d.ts.map +0 -1
- package/dist/scripts/data-transformers/content-generators/committee.js +0 -247
- package/dist/scripts/data-transformers/content-generators/committee.js.map +0 -1
- package/dist/scripts/data-transformers/content-generators/dashboard-section.d.ts +0 -124
- package/dist/scripts/data-transformers/content-generators/dashboard-section.d.ts.map +0 -1
- package/dist/scripts/data-transformers/content-generators/dashboard-section.js +0 -564
- package/dist/scripts/data-transformers/content-generators/dashboard-section.js.map +0 -1
- package/dist/scripts/data-transformers/content-generators/economic-dashboard-section.d.ts +0 -82
- package/dist/scripts/data-transformers/content-generators/economic-dashboard-section.d.ts.map +0 -1
- package/dist/scripts/data-transformers/content-generators/economic-dashboard-section.js +0 -321
- package/dist/scripts/data-transformers/content-generators/economic-dashboard-section.js.map +0 -1
- package/dist/scripts/data-transformers/content-generators/generic.d.ts +0 -12
- package/dist/scripts/data-transformers/content-generators/generic.d.ts.map +0 -1
- package/dist/scripts/data-transformers/content-generators/generic.js +0 -295
- package/dist/scripts/data-transformers/content-generators/generic.js.map +0 -1
- package/dist/scripts/data-transformers/content-generators/index.d.ts +0 -84
- package/dist/scripts/data-transformers/content-generators/index.d.ts.map +0 -1
- package/dist/scripts/data-transformers/content-generators/index.js +0 -47
- package/dist/scripts/data-transformers/content-generators/index.js.map +0 -1
- package/dist/scripts/data-transformers/content-generators/interpellations.d.ts +0 -12
- package/dist/scripts/data-transformers/content-generators/interpellations.d.ts.map +0 -1
- package/dist/scripts/data-transformers/content-generators/interpellations.js +0 -124
- package/dist/scripts/data-transformers/content-generators/interpellations.js.map +0 -1
- package/dist/scripts/data-transformers/content-generators/mindmap-section.d.ts +0 -137
- package/dist/scripts/data-transformers/content-generators/mindmap-section.d.ts.map +0 -1
- package/dist/scripts/data-transformers/content-generators/mindmap-section.js +0 -286
- package/dist/scripts/data-transformers/content-generators/mindmap-section.js.map +0 -1
- package/dist/scripts/data-transformers/content-generators/month-ahead.d.ts +0 -17
- package/dist/scripts/data-transformers/content-generators/month-ahead.d.ts.map +0 -1
- package/dist/scripts/data-transformers/content-generators/month-ahead.js +0 -212
- package/dist/scripts/data-transformers/content-generators/month-ahead.js.map +0 -1
- package/dist/scripts/data-transformers/content-generators/monthly-review.d.ts +0 -17
- package/dist/scripts/data-transformers/content-generators/monthly-review.d.ts.map +0 -1
- package/dist/scripts/data-transformers/content-generators/monthly-review.js +0 -173
- package/dist/scripts/data-transformers/content-generators/monthly-review.js.map +0 -1
- package/dist/scripts/data-transformers/content-generators/motions.d.ts +0 -12
- package/dist/scripts/data-transformers/content-generators/motions.d.ts.map +0 -1
- package/dist/scripts/data-transformers/content-generators/motions.js +0 -158
- package/dist/scripts/data-transformers/content-generators/motions.js.map +0 -1
- package/dist/scripts/data-transformers/content-generators/newsworthiness.d.ts +0 -62
- package/dist/scripts/data-transformers/content-generators/newsworthiness.d.ts.map +0 -1
- package/dist/scripts/data-transformers/content-generators/newsworthiness.js +0 -254
- package/dist/scripts/data-transformers/content-generators/newsworthiness.js.map +0 -1
- package/dist/scripts/data-transformers/content-generators/propositions.d.ts +0 -12
- package/dist/scripts/data-transformers/content-generators/propositions.d.ts.map +0 -1
- package/dist/scripts/data-transformers/content-generators/propositions.js +0 -263
- package/dist/scripts/data-transformers/content-generators/propositions.js.map +0 -1
- package/dist/scripts/data-transformers/content-generators/sankey-section.d.ts +0 -92
- package/dist/scripts/data-transformers/content-generators/sankey-section.d.ts.map +0 -1
- package/dist/scripts/data-transformers/content-generators/sankey-section.js +0 -257
- package/dist/scripts/data-transformers/content-generators/sankey-section.js.map +0 -1
- package/dist/scripts/data-transformers/content-generators/shared.d.ts +0 -139
- package/dist/scripts/data-transformers/content-generators/shared.d.ts.map +0 -1
- package/dist/scripts/data-transformers/content-generators/shared.js +0 -935
- package/dist/scripts/data-transformers/content-generators/shared.js.map +0 -1
- package/dist/scripts/data-transformers/content-generators/swot-section.d.ts +0 -50
- package/dist/scripts/data-transformers/content-generators/swot-section.d.ts.map +0 -1
- package/dist/scripts/data-transformers/content-generators/swot-section.js +0 -177
- package/dist/scripts/data-transformers/content-generators/swot-section.js.map +0 -1
- package/dist/scripts/data-transformers/content-generators/week-ahead.d.ts +0 -12
- package/dist/scripts/data-transformers/content-generators/week-ahead.d.ts.map +0 -1
- package/dist/scripts/data-transformers/content-generators/week-ahead.js +0 -332
- package/dist/scripts/data-transformers/content-generators/week-ahead.js.map +0 -1
- package/dist/scripts/data-transformers/content-generators.d.ts +0 -15
- package/dist/scripts/data-transformers/content-generators.d.ts.map +0 -1
- package/dist/scripts/data-transformers/content-generators.js +0 -14
- package/dist/scripts/data-transformers/content-generators.js.map +0 -1
- package/dist/scripts/data-transformers/document-analysis.d.ts +0 -58
- package/dist/scripts/data-transformers/document-analysis.d.ts.map +0 -1
- package/dist/scripts/data-transformers/document-analysis.js +0 -396
- package/dist/scripts/data-transformers/document-analysis.js.map +0 -1
- package/dist/scripts/data-transformers/helpers.d.ts +0 -144
- package/dist/scripts/data-transformers/helpers.d.ts.map +0 -1
- package/dist/scripts/data-transformers/helpers.js +0 -408
- package/dist/scripts/data-transformers/helpers.js.map +0 -1
- package/dist/scripts/data-transformers/index.d.ts +0 -45
- package/dist/scripts/data-transformers/index.d.ts.map +0 -1
- package/dist/scripts/data-transformers/index.js +0 -66
- package/dist/scripts/data-transformers/index.js.map +0 -1
- package/dist/scripts/data-transformers/metadata.d.ts +0 -42
- package/dist/scripts/data-transformers/metadata.d.ts.map +0 -1
- package/dist/scripts/data-transformers/metadata.js +0 -385
- package/dist/scripts/data-transformers/metadata.js.map +0 -1
- package/dist/scripts/data-transformers/policy-analysis.d.ts +0 -105
- package/dist/scripts/data-transformers/policy-analysis.d.ts.map +0 -1
- package/dist/scripts/data-transformers/policy-analysis.js +0 -686
- package/dist/scripts/data-transformers/policy-analysis.js.map +0 -1
- package/dist/scripts/data-transformers/risk-analysis.d.ts +0 -104
- package/dist/scripts/data-transformers/risk-analysis.d.ts.map +0 -1
- package/dist/scripts/data-transformers/risk-analysis.js +0 -279
- package/dist/scripts/data-transformers/risk-analysis.js.map +0 -1
- package/dist/scripts/data-transformers/types.d.ts +0 -260
- package/dist/scripts/data-transformers/types.d.ts.map +0 -1
- package/dist/scripts/data-transformers/types.js +0 -11
- package/dist/scripts/data-transformers/types.js.map +0 -1
- package/dist/scripts/data-transformers.d.ts +0 -23
- package/dist/scripts/data-transformers.d.ts.map +0 -1
- package/dist/scripts/data-transformers.js +0 -35
- package/dist/scripts/data-transformers.js.map +0 -1
- package/dist/scripts/deep-inspection/index.d.ts +0 -55
- package/dist/scripts/deep-inspection/index.d.ts.map +0 -1
- package/dist/scripts/deep-inspection/index.js +0 -66
- package/dist/scripts/deep-inspection/index.js.map +0 -1
- package/dist/scripts/detect-swedish-leakage.d.ts +0 -69
- package/dist/scripts/detect-swedish-leakage.d.ts.map +0 -1
- package/dist/scripts/detect-swedish-leakage.js +0 -417
- package/dist/scripts/detect-swedish-leakage.js.map +0 -1
- package/dist/scripts/editorial-framework.d.ts +0 -121
- package/dist/scripts/editorial-framework.d.ts.map +0 -1
- package/dist/scripts/editorial-framework.js +0 -364
- package/dist/scripts/editorial-framework.js.map +0 -1
- package/dist/scripts/editorial-pillars.d.ts +0 -43
- package/dist/scripts/editorial-pillars.d.ts.map +0 -1
- package/dist/scripts/editorial-pillars.js +0 -215
- package/dist/scripts/editorial-pillars.js.map +0 -1
- package/dist/scripts/extract-news-metadata.d.ts +0 -12
- package/dist/scripts/extract-news-metadata.d.ts.map +0 -1
- package/dist/scripts/extract-news-metadata.js +0 -107
- package/dist/scripts/extract-news-metadata.js.map +0 -1
- package/dist/scripts/extract-vocabulary.d.ts +0 -15
- package/dist/scripts/extract-vocabulary.d.ts.map +0 -1
- package/dist/scripts/extract-vocabulary.js +0 -255
- package/dist/scripts/extract-vocabulary.js.map +0 -1
- package/dist/scripts/fix-article-navigation.d.ts +0 -37
- package/dist/scripts/fix-article-navigation.d.ts.map +0 -1
- package/dist/scripts/fix-article-navigation.js +0 -198
- package/dist/scripts/fix-article-navigation.js.map +0 -1
- package/dist/scripts/fix-keywords-localization.d.ts +0 -18
- package/dist/scripts/fix-keywords-localization.d.ts.map +0 -1
- package/dist/scripts/fix-keywords-localization.js +0 -270
- package/dist/scripts/fix-keywords-localization.js.map +0 -1
- package/dist/scripts/fix-old-articles-branding.d.ts +0 -17
- package/dist/scripts/fix-old-articles-branding.d.ts.map +0 -1
- package/dist/scripts/fix-old-articles-branding.js +0 -229
- package/dist/scripts/fix-old-articles-branding.js.map +0 -1
- package/dist/scripts/generate-news-backport.d.ts +0 -16
- package/dist/scripts/generate-news-backport.d.ts.map +0 -1
- package/dist/scripts/generate-news-backport.js +0 -379
- package/dist/scripts/generate-news-backport.js.map +0 -1
- package/dist/scripts/generate-news-enhanced/ai-analysis-pipeline.d.ts +0 -141
- package/dist/scripts/generate-news-enhanced/ai-analysis-pipeline.d.ts.map +0 -1
- package/dist/scripts/generate-news-enhanced/ai-analysis-pipeline.js +0 -546
- package/dist/scripts/generate-news-enhanced/ai-analysis-pipeline.js.map +0 -1
- package/dist/scripts/generate-news-enhanced/analysis-cache.d.ts +0 -59
- package/dist/scripts/generate-news-enhanced/analysis-cache.d.ts.map +0 -1
- package/dist/scripts/generate-news-enhanced/analysis-cache.js +0 -116
- package/dist/scripts/generate-news-enhanced/analysis-cache.js.map +0 -1
- package/dist/scripts/generate-news-enhanced/analysis-labels.d.ts +0 -58
- package/dist/scripts/generate-news-enhanced/analysis-labels.d.ts.map +0 -1
- package/dist/scripts/generate-news-enhanced/analysis-labels.js +0 -144
- package/dist/scripts/generate-news-enhanced/analysis-labels.js.map +0 -1
- package/dist/scripts/generate-news-enhanced/config.d.ts +0 -58
- package/dist/scripts/generate-news-enhanced/config.d.ts.map +0 -1
- package/dist/scripts/generate-news-enhanced/config.js +0 -286
- package/dist/scripts/generate-news-enhanced/config.js.map +0 -1
- package/dist/scripts/generate-news-enhanced/generators.d.ts +0 -119
- package/dist/scripts/generate-news-enhanced/generators.d.ts.map +0 -1
- package/dist/scripts/generate-news-enhanced/generators.js +0 -2131
- package/dist/scripts/generate-news-enhanced/generators.js.map +0 -1
- package/dist/scripts/generate-news-enhanced/helpers.d.ts +0 -122
- package/dist/scripts/generate-news-enhanced/helpers.d.ts.map +0 -1
- package/dist/scripts/generate-news-enhanced/helpers.js +0 -468
- package/dist/scripts/generate-news-enhanced/helpers.js.map +0 -1
- package/dist/scripts/generate-news-enhanced/index.d.ts +0 -19
- package/dist/scripts/generate-news-enhanced/index.d.ts.map +0 -1
- package/dist/scripts/generate-news-enhanced/index.js +0 -221
- package/dist/scripts/generate-news-enhanced/index.js.map +0 -1
- package/dist/scripts/generate-news-enhanced/swot-analyzer.d.ts +0 -46
- package/dist/scripts/generate-news-enhanced/swot-analyzer.d.ts.map +0 -1
- package/dist/scripts/generate-news-enhanced/swot-analyzer.js +0 -1227
- package/dist/scripts/generate-news-enhanced/swot-analyzer.js.map +0 -1
- package/dist/scripts/generate-news-enhanced/types.d.ts +0 -34
- package/dist/scripts/generate-news-enhanced/types.d.ts.map +0 -1
- package/dist/scripts/generate-news-enhanced/types.js +0 -9
- package/dist/scripts/generate-news-enhanced/types.js.map +0 -1
- package/dist/scripts/generate-news-enhanced.d.ts +0 -25
- package/dist/scripts/generate-news-enhanced.d.ts.map +0 -1
- package/dist/scripts/generate-news-enhanced.js +0 -37
- package/dist/scripts/generate-news-enhanced.js.map +0 -1
- package/dist/scripts/generate-news-indexes/constants.d.ts +0 -20
- package/dist/scripts/generate-news-indexes/constants.d.ts.map +0 -1
- package/dist/scripts/generate-news-indexes/constants.js +0 -308
- package/dist/scripts/generate-news-indexes/constants.js.map +0 -1
- package/dist/scripts/generate-news-indexes/helpers.d.ts +0 -73
- package/dist/scripts/generate-news-indexes/helpers.d.ts.map +0 -1
- package/dist/scripts/generate-news-indexes/helpers.js +0 -352
- package/dist/scripts/generate-news-indexes/helpers.js.map +0 -1
- package/dist/scripts/generate-news-indexes/index.d.ts +0 -20
- package/dist/scripts/generate-news-indexes/index.d.ts.map +0 -1
- package/dist/scripts/generate-news-indexes/index.js +0 -75
- package/dist/scripts/generate-news-indexes/index.js.map +0 -1
- package/dist/scripts/generate-news-indexes/template.d.ts +0 -25
- package/dist/scripts/generate-news-indexes/template.d.ts.map +0 -1
- package/dist/scripts/generate-news-indexes/template.js +0 -644
- package/dist/scripts/generate-news-indexes/template.js.map +0 -1
- package/dist/scripts/generate-news-indexes/types.d.ts +0 -96
- package/dist/scripts/generate-news-indexes/types.d.ts.map +0 -1
- package/dist/scripts/generate-news-indexes/types.js +0 -9
- package/dist/scripts/generate-news-indexes/types.js.map +0 -1
- package/dist/scripts/generate-news-indexes.d.ts +0 -20
- package/dist/scripts/generate-news-indexes.d.ts.map +0 -1
- package/dist/scripts/generate-news-indexes.js +0 -19
- package/dist/scripts/generate-news-indexes.js.map +0 -1
- package/dist/scripts/generate-rss.d.ts +0 -48
- package/dist/scripts/generate-rss.d.ts.map +0 -1
- package/dist/scripts/generate-rss.js +0 -299
- package/dist/scripts/generate-rss.js.map +0 -1
- package/dist/scripts/generate-sitemap-html.d.ts +0 -79
- package/dist/scripts/generate-sitemap-html.d.ts.map +0 -1
- package/dist/scripts/generate-sitemap-html.js +0 -878
- package/dist/scripts/generate-sitemap-html.js.map +0 -1
- package/dist/scripts/generate-sitemap.d.ts +0 -23
- package/dist/scripts/generate-sitemap.d.ts.map +0 -1
- package/dist/scripts/generate-sitemap.js +0 -476
- package/dist/scripts/generate-sitemap.js.map +0 -1
- package/dist/scripts/generate-types-from-cia-schemas.d.ts +0 -176
- package/dist/scripts/generate-types-from-cia-schemas.d.ts.map +0 -1
- package/dist/scripts/generate-types-from-cia-schemas.js +0 -318
- package/dist/scripts/generate-types-from-cia-schemas.js.map +0 -1
- package/dist/scripts/government-role-validator.d.ts +0 -65
- package/dist/scripts/government-role-validator.d.ts.map +0 -1
- package/dist/scripts/government-role-validator.js +0 -217
- package/dist/scripts/government-role-validator.js.map +0 -1
- package/dist/scripts/html-utils.d.ts +0 -17
- package/dist/scripts/html-utils.d.ts.map +0 -1
- package/dist/scripts/html-utils.js +0 -29
- package/dist/scripts/html-utils.js.map +0 -1
- package/dist/scripts/load-cia-stats.d.ts +0 -89
- package/dist/scripts/load-cia-stats.d.ts.map +0 -1
- package/dist/scripts/load-cia-stats.js +0 -400
- package/dist/scripts/load-cia-stats.js.map +0 -1
- package/dist/scripts/mcp-client/client.d.ts +0 -73
- package/dist/scripts/mcp-client/client.d.ts.map +0 -1
- package/dist/scripts/mcp-client/client.js +0 -526
- package/dist/scripts/mcp-client/client.js.map +0 -1
- package/dist/scripts/mcp-client/document-types.d.ts +0 -23
- package/dist/scripts/mcp-client/document-types.d.ts.map +0 -1
- package/dist/scripts/mcp-client/document-types.js +0 -62
- package/dist/scripts/mcp-client/document-types.js.map +0 -1
- package/dist/scripts/mcp-client/index.d.ts +0 -34
- package/dist/scripts/mcp-client/index.d.ts.map +0 -1
- package/dist/scripts/mcp-client/index.js +0 -67
- package/dist/scripts/mcp-client/index.js.map +0 -1
- package/dist/scripts/mcp-client/transport.d.ts +0 -32
- package/dist/scripts/mcp-client/transport.d.ts.map +0 -1
- package/dist/scripts/mcp-client/transport.js +0 -102
- package/dist/scripts/mcp-client/transport.js.map +0 -1
- package/dist/scripts/mcp-client.d.ts +0 -18
- package/dist/scripts/mcp-client.d.ts.map +0 -1
- package/dist/scripts/mcp-client.js +0 -18
- package/dist/scripts/mcp-client.js.map +0 -1
- package/dist/scripts/mcp-query-cli.d.ts +0 -25
- package/dist/scripts/mcp-query-cli.d.ts.map +0 -1
- package/dist/scripts/mcp-query-cli.js +0 -66
- package/dist/scripts/mcp-query-cli.js.map +0 -1
- package/dist/scripts/news-types/breaking-news.d.ts +0 -178
- package/dist/scripts/news-types/breaking-news.d.ts.map +0 -1
- package/dist/scripts/news-types/breaking-news.js +0 -432
- package/dist/scripts/news-types/breaking-news.js.map +0 -1
- package/dist/scripts/news-types/committee-reports.d.ts +0 -212
- package/dist/scripts/news-types/committee-reports.d.ts.map +0 -1
- package/dist/scripts/news-types/committee-reports.js +0 -404
- package/dist/scripts/news-types/committee-reports.js.map +0 -1
- package/dist/scripts/news-types/month-ahead.d.ts +0 -71
- package/dist/scripts/news-types/month-ahead.d.ts.map +0 -1
- package/dist/scripts/news-types/month-ahead.js +0 -392
- package/dist/scripts/news-types/month-ahead.js.map +0 -1
- package/dist/scripts/news-types/monthly-review.d.ts +0 -61
- package/dist/scripts/news-types/monthly-review.d.ts.map +0 -1
- package/dist/scripts/news-types/monthly-review.js +0 -417
- package/dist/scripts/news-types/monthly-review.js.map +0 -1
- package/dist/scripts/news-types/motions.d.ts +0 -214
- package/dist/scripts/news-types/motions.d.ts.map +0 -1
- package/dist/scripts/news-types/motions.js +0 -447
- package/dist/scripts/news-types/motions.js.map +0 -1
- package/dist/scripts/news-types/propositions.d.ts +0 -204
- package/dist/scripts/news-types/propositions.d.ts.map +0 -1
- package/dist/scripts/news-types/propositions.js +0 -401
- package/dist/scripts/news-types/propositions.js.map +0 -1
- package/dist/scripts/news-types/week-ahead.d.ts +0 -231
- package/dist/scripts/news-types/week-ahead.d.ts.map +0 -1
- package/dist/scripts/news-types/week-ahead.js +0 -441
- package/dist/scripts/news-types/week-ahead.js.map +0 -1
- package/dist/scripts/news-types/weekly-review/analysis.d.ts +0 -47
- package/dist/scripts/news-types/weekly-review/analysis.d.ts.map +0 -1
- package/dist/scripts/news-types/weekly-review/analysis.js +0 -276
- package/dist/scripts/news-types/weekly-review/analysis.js.map +0 -1
- package/dist/scripts/news-types/weekly-review/data-loader.d.ts +0 -51
- package/dist/scripts/news-types/weekly-review/data-loader.d.ts.map +0 -1
- package/dist/scripts/news-types/weekly-review/data-loader.js +0 -298
- package/dist/scripts/news-types/weekly-review/data-loader.js.map +0 -1
- package/dist/scripts/news-types/weekly-review/generator.d.ts +0 -18
- package/dist/scripts/news-types/weekly-review/generator.d.ts.map +0 -1
- package/dist/scripts/news-types/weekly-review/generator.js +0 -284
- package/dist/scripts/news-types/weekly-review/generator.js.map +0 -1
- package/dist/scripts/news-types/weekly-review/index.d.ts +0 -20
- package/dist/scripts/news-types/weekly-review/index.d.ts.map +0 -1
- package/dist/scripts/news-types/weekly-review/index.js +0 -23
- package/dist/scripts/news-types/weekly-review/index.js.map +0 -1
- package/dist/scripts/news-types/weekly-review/types.d.ts +0 -72
- package/dist/scripts/news-types/weekly-review/types.d.ts.map +0 -1
- package/dist/scripts/news-types/weekly-review/types.js +0 -20
- package/dist/scripts/news-types/weekly-review/types.js.map +0 -1
- package/dist/scripts/news-types/weekly-review/validation.d.ts +0 -10
- package/dist/scripts/news-types/weekly-review/validation.d.ts.map +0 -1
- package/dist/scripts/news-types/weekly-review/validation.js +0 -95
- package/dist/scripts/news-types/weekly-review/validation.js.map +0 -1
- package/dist/scripts/news-types/weekly-review.d.ts +0 -15
- package/dist/scripts/news-types/weekly-review.d.ts.map +0 -1
- package/dist/scripts/news-types/weekly-review.js +0 -14
- package/dist/scripts/news-types/weekly-review.js.map +0 -1
- package/dist/scripts/party-variants.d.ts +0 -23
- package/dist/scripts/party-variants.d.ts.map +0 -1
- package/dist/scripts/party-variants.js +0 -50
- package/dist/scripts/party-variants.js.map +0 -1
- package/dist/scripts/pipeline/index.d.ts +0 -19
- package/dist/scripts/pipeline/index.d.ts.map +0 -1
- package/dist/scripts/pipeline/index.js +0 -17
- package/dist/scripts/pipeline/index.js.map +0 -1
- package/dist/scripts/pipeline/orchestrator.d.ts +0 -56
- package/dist/scripts/pipeline/orchestrator.d.ts.map +0 -1
- package/dist/scripts/pipeline/orchestrator.js +0 -147
- package/dist/scripts/pipeline/orchestrator.js.map +0 -1
- package/dist/scripts/pipeline/types.d.ts +0 -117
- package/dist/scripts/pipeline/types.d.ts.map +0 -1
- package/dist/scripts/pipeline/types.js +0 -13
- package/dist/scripts/pipeline/types.js.map +0 -1
- package/dist/scripts/pipeline/validation.d.ts +0 -66
- package/dist/scripts/pipeline/validation.d.ts.map +0 -1
- package/dist/scripts/pipeline/validation.js +0 -129
- package/dist/scripts/pipeline/validation.js.map +0 -1
- package/dist/scripts/populate-analysis-data.d.ts +0 -41
- package/dist/scripts/populate-analysis-data.d.ts.map +0 -1
- package/dist/scripts/populate-analysis-data.js +0 -255
- package/dist/scripts/populate-analysis-data.js.map +0 -1
- package/dist/scripts/pre-article-analysis/data-downloader.d.ts +0 -80
- package/dist/scripts/pre-article-analysis/data-downloader.d.ts.map +0 -1
- package/dist/scripts/pre-article-analysis/data-downloader.js +0 -230
- package/dist/scripts/pre-article-analysis/data-downloader.js.map +0 -1
- package/dist/scripts/pre-article-analysis/data-persistence.d.ts +0 -141
- package/dist/scripts/pre-article-analysis/data-persistence.d.ts.map +0 -1
- package/dist/scripts/pre-article-analysis/data-persistence.js +0 -345
- package/dist/scripts/pre-article-analysis/data-persistence.js.map +0 -1
- package/dist/scripts/pre-article-analysis/markdown-serializer.d.ts +0 -158
- package/dist/scripts/pre-article-analysis/markdown-serializer.d.ts.map +0 -1
- package/dist/scripts/pre-article-analysis/markdown-serializer.js +0 -648
- package/dist/scripts/pre-article-analysis/markdown-serializer.js.map +0 -1
- package/dist/scripts/pre-article-analysis/pdf-converter.d.ts +0 -58
- package/dist/scripts/pre-article-analysis/pdf-converter.d.ts.map +0 -1
- package/dist/scripts/pre-article-analysis/pdf-converter.js +0 -142
- package/dist/scripts/pre-article-analysis/pdf-converter.js.map +0 -1
- package/dist/scripts/pre-article-analysis.d.ts +0 -42
- package/dist/scripts/pre-article-analysis.d.ts.map +0 -1
- package/dist/scripts/pre-article-analysis.js +0 -642
- package/dist/scripts/pre-article-analysis.js.map +0 -1
- package/dist/scripts/scb-client.d.ts +0 -104
- package/dist/scripts/scb-client.d.ts.map +0 -1
- package/dist/scripts/scb-client.js +0 -286
- package/dist/scripts/scb-client.js.map +0 -1
- package/dist/scripts/scb-context.d.ts +0 -88
- package/dist/scripts/scb-context.d.ts.map +0 -1
- package/dist/scripts/scb-context.js +0 -307
- package/dist/scripts/scb-context.js.map +0 -1
- package/dist/scripts/shared/version.d.ts +0 -9
- package/dist/scripts/shared/version.d.ts.map +0 -1
- package/dist/scripts/shared/version.js +0 -28
- package/dist/scripts/shared/version.js.map +0 -1
- package/dist/scripts/statistical-claims-detector.d.ts +0 -119
- package/dist/scripts/statistical-claims-detector.d.ts.map +0 -1
- package/dist/scripts/statistical-claims-detector.js +0 -391
- package/dist/scripts/statistical-claims-detector.js.map +0 -1
- package/dist/scripts/sync-cia-schemas.d.ts +0 -52
- package/dist/scripts/sync-cia-schemas.d.ts.map +0 -1
- package/dist/scripts/sync-cia-schemas.js +0 -195
- package/dist/scripts/sync-cia-schemas.js.map +0 -1
- package/dist/scripts/translation-dictionary.d.ts +0 -45
- package/dist/scripts/translation-dictionary.d.ts.map +0 -1
- package/dist/scripts/translation-dictionary.js +0 -3642
- package/dist/scripts/translation-dictionary.js.map +0 -1
- package/dist/scripts/types/article.d.ts +0 -392
- package/dist/scripts/types/article.d.ts.map +0 -1
- package/dist/scripts/types/article.js +0 -6
- package/dist/scripts/types/article.js.map +0 -1
- package/dist/scripts/types/content.d.ts +0 -167
- package/dist/scripts/types/content.d.ts.map +0 -1
- package/dist/scripts/types/content.js +0 -6
- package/dist/scripts/types/content.js.map +0 -1
- package/dist/scripts/types/editorial.d.ts +0 -17
- package/dist/scripts/types/editorial.d.ts.map +0 -1
- package/dist/scripts/types/editorial.js +0 -6
- package/dist/scripts/types/editorial.js.map +0 -1
- package/dist/scripts/types/language.d.ts +0 -7
- package/dist/scripts/types/language.d.ts.map +0 -1
- package/dist/scripts/types/language.js +0 -6
- package/dist/scripts/types/language.js.map +0 -1
- package/dist/scripts/types/mcp.d.ts +0 -117
- package/dist/scripts/types/mcp.d.ts.map +0 -1
- package/dist/scripts/types/mcp.js +0 -6
- package/dist/scripts/types/mcp.js.map +0 -1
- package/dist/scripts/types/party.d.ts +0 -9
- package/dist/scripts/types/party.d.ts.map +0 -1
- package/dist/scripts/types/party.js +0 -6
- package/dist/scripts/types/party.js.map +0 -1
- package/dist/scripts/types/validation.d.ts +0 -136
- package/dist/scripts/types/validation.d.ts.map +0 -1
- package/dist/scripts/types/validation.js +0 -6
- package/dist/scripts/types/validation.js.map +0 -1
- package/dist/scripts/types/workflow.d.ts +0 -78
- package/dist/scripts/types/workflow.d.ts.map +0 -1
- package/dist/scripts/types/workflow.js +0 -6
- package/dist/scripts/types/workflow.js.map +0 -1
- package/dist/scripts/update-stats-from-cia.d.ts +0 -44
- package/dist/scripts/update-stats-from-cia.d.ts.map +0 -1
- package/dist/scripts/update-stats-from-cia.js +0 -310
- package/dist/scripts/update-stats-from-cia.js.map +0 -1
- package/dist/scripts/validate-against-cia-schemas.d.ts +0 -126
- package/dist/scripts/validate-against-cia-schemas.d.ts.map +0 -1
- package/dist/scripts/validate-against-cia-schemas.js +0 -299
- package/dist/scripts/validate-against-cia-schemas.js.map +0 -1
- package/dist/scripts/validate-cross-references.d.ts +0 -49
- package/dist/scripts/validate-cross-references.d.ts.map +0 -1
- package/dist/scripts/validate-cross-references.js +0 -183
- package/dist/scripts/validate-cross-references.js.map +0 -1
- package/dist/scripts/validate-file-ownership.d.ts +0 -68
- package/dist/scripts/validate-file-ownership.d.ts.map +0 -1
- package/dist/scripts/validate-file-ownership.js +0 -135
- package/dist/scripts/validate-file-ownership.js.map +0 -1
- package/dist/scripts/validate-news-translations.d.ts +0 -27
- package/dist/scripts/validate-news-translations.d.ts.map +0 -1
- package/dist/scripts/validate-news-translations.js +0 -258
- package/dist/scripts/validate-news-translations.js.map +0 -1
- package/dist/scripts/validate-translations.d.ts +0 -162
- package/dist/scripts/validate-translations.d.ts.map +0 -1
- package/dist/scripts/validate-translations.js +0 -378
- package/dist/scripts/validate-translations.js.map +0 -1
- package/dist/scripts/workflow-state-coordinator.d.ts +0 -354
- package/dist/scripts/workflow-state-coordinator.d.ts.map +0 -1
- package/dist/scripts/workflow-state-coordinator.js +0 -876
- package/dist/scripts/workflow-state-coordinator.js.map +0 -1
- package/dist/scripts/world-bank-client.d.ts +0 -122
- package/dist/scripts/world-bank-client.d.ts.map +0 -1
- package/dist/scripts/world-bank-client.js +0 -192
- package/dist/scripts/world-bank-client.js.map +0 -1
- package/dist/scripts/world-bank-context.d.ts +0 -88
- package/dist/scripts/world-bank-context.d.ts.map +0 -1
- package/dist/scripts/world-bank-context.js +0 -331
- package/dist/scripts/world-bank-context.js.map +0 -1
|
@@ -1,432 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module ContentGeneration/BreakingNews
|
|
3
|
-
* @category ContentGeneration
|
|
4
|
-
*
|
|
5
|
-
* @title Breaking News Article Generator - Event-Driven Intelligence Module
|
|
6
|
-
*
|
|
7
|
-
* @description
|
|
8
|
-
* **INTELLIGENCE OPERATIVE PERSPECTIVE**
|
|
9
|
-
*
|
|
10
|
-
* This module generates breaking news articles for significant parliamentary events,
|
|
11
|
-
* operating as the real-time intelligence alert layer of the platform. Breaking news
|
|
12
|
-
* covers voting surprises, unexpected statements, coalition developments, and crisis
|
|
13
|
-
* situations that demand immediate notification to stakeholders. In intelligence
|
|
14
|
-
* operations, breaking news serves the critical function of alerting analysts to
|
|
15
|
-
* developments that may change strategic assessments.
|
|
16
|
-
*
|
|
17
|
-
* **ARTICLE SCOPE & TRIGGERS:**
|
|
18
|
-
* Breaking news articles are generated when:
|
|
19
|
-
* - Unexpected or significant parliamentary votes occur
|
|
20
|
-
* - Surprise announcements from government or opposition
|
|
21
|
-
* - Coalition realignment or party conflict erupts
|
|
22
|
-
* - Procedural surprises or rule violations
|
|
23
|
-
* - International incident affects Swedish politics
|
|
24
|
-
* - Crisis response requiring immediate parliamentary action
|
|
25
|
-
*
|
|
26
|
-
* **CONTENT STRUCTURE:**
|
|
27
|
-
* Each breaking news article follows a standardized intelligence format:
|
|
28
|
-
* 1. **What Happened**: Factual description of event in first 100 words
|
|
29
|
-
* 2. **Why It Matters**: Political implications and stakeholder impact
|
|
30
|
-
* 3. **Party Reactions**: Documented positions from major parties
|
|
31
|
-
* 4. **Coalition Impact**: How development affects government stability
|
|
32
|
-
* 5. **Next Steps**: Predicted follow-up actions or timeline
|
|
33
|
-
*
|
|
34
|
-
* **MCP DATA SOURCES:**
|
|
35
|
-
* Required tools for article validation (validation layer):
|
|
36
|
-
* - search_voteringar: Vote records for parliamentary actions
|
|
37
|
-
* - get_voting_group: Group voting patterns showing party consensus/splits
|
|
38
|
-
* - search_anforanden: Member speeches providing context and reactions
|
|
39
|
-
* - search_ledamoter: Member information for quote attribution
|
|
40
|
-
*
|
|
41
|
-
* **IMPLEMENTATION STATUS:**
|
|
42
|
-
* - All four MCP tools implemented: search_voteringar, get_voting_group,
|
|
43
|
-
* search_anforanden, search_ledamoter (all called unconditionally;
|
|
44
|
-
* parameters are enriched when voteId is present for voting tools, and
|
|
45
|
-
* when a speaker name is found in speech results for search_ledamoter)
|
|
46
|
-
*
|
|
47
|
-
* **INTELLIGENCE ANALYSIS FRAMEWORK:**
|
|
48
|
-
* Breaking news articles incorporate:
|
|
49
|
-
* - Vote tallies showing coalition positions
|
|
50
|
-
* - Historical voting pattern changes (anomaly detection)
|
|
51
|
-
* - Statement analysis from parliamentary speeches
|
|
52
|
-
* - Member career progression (political weight analysis)
|
|
53
|
-
* - Timeline reconstruction of surprising developments
|
|
54
|
-
*
|
|
55
|
-
* **LANGUAGE SUPPORT (14 Languages):**
|
|
56
|
-
* - Swedish (SV): Source language, immediate publication
|
|
57
|
-
* - English (EN): Primary international audience
|
|
58
|
-
* - Nordic (DA, NO, FI): Regional distribution
|
|
59
|
-
* - European (DE, FR, ES, NL): Continental coverage
|
|
60
|
-
* - Middle Eastern (AR, HE): Diplomatic audience
|
|
61
|
-
* - Asian (JA, KO, ZH): Economic audience
|
|
62
|
-
*
|
|
63
|
-
* **OPERATIONAL WORKFLOW:**
|
|
64
|
-
* 1. Event Detection: Monitor voting patterns for anomalies
|
|
65
|
-
* 2. Context Gathering: Retrieve vote details, speeches, member info
|
|
66
|
-
* 3. Analysis: Assess political significance and implications
|
|
67
|
-
* 4. Article Generation: Create structure with MCP data citations
|
|
68
|
-
* 5. Translation: Generate non-Swedish language versions
|
|
69
|
-
* 6. Publication: Deploy to news directory with metadata
|
|
70
|
-
*
|
|
71
|
-
* **TIMING CONSIDERATIONS:**
|
|
72
|
-
* - Trigger: Within 15 minutes of vote conclusion
|
|
73
|
-
* - Generation: 5-10 minutes including MCP calls and translation
|
|
74
|
-
* - Publication: Immediate upon completion (no editorial delay)
|
|
75
|
-
* - Update Cycle: Revisits article if new votes/statements within 1 hour
|
|
76
|
-
*
|
|
77
|
-
* **INTELLIGENCE QUALITY METRICS:**
|
|
78
|
-
* - Quote Count: Minimum 3+ party perspectives represented
|
|
79
|
-
* - Source Density: At least 4 distinct MCP tool calls
|
|
80
|
-
* - Temporal Accuracy: Timestamp synchronization with actual vote
|
|
81
|
-
* - Political Neutrality: Balanced presentation across ideological spectrum
|
|
82
|
-
*
|
|
83
|
-
* **RISK ASSESSMENT INTEGRATION:**
|
|
84
|
-
* Breaking news articles feed into risk assessment models:
|
|
85
|
-
* - Coalition Stability: Changes in government support indicators
|
|
86
|
-
* - Political Volatility: Frequency and magnitude of unexpected votes
|
|
87
|
-
* - Member Realignment: Crossing party lines signals cooperation changes
|
|
88
|
-
* - Crisis Indicators: Sudden procedural or security-related developments
|
|
89
|
-
*
|
|
90
|
-
* **MULTILINGUAL CONTENT CHALLENGES:**
|
|
91
|
-
* - Idiom Translation: Political terminology varies across languages
|
|
92
|
-
* - Cultural Context: Swedish political references need international explanation
|
|
93
|
-
* - Urgency Signaling: Different languages emphasize breaking news differently
|
|
94
|
-
* - Member Names: Proper name formatting rules vary by target language
|
|
95
|
-
*
|
|
96
|
-
* **PERFORMANCE OPTIMIZATION:**
|
|
97
|
-
* - MCP Query Caching: 2-hour cache for frequently-requested data
|
|
98
|
-
* - Parallel Translation: All 14 languages generated simultaneously
|
|
99
|
-
* - Incremental Parsing: Stream vote data to prevent full loads
|
|
100
|
-
* - Smart Updates: Only regenerate articles with new/changed data
|
|
101
|
-
*
|
|
102
|
-
* **FAILURE SCENARIOS:**
|
|
103
|
-
* - MCP Service Down: Graceful degradation with cached data
|
|
104
|
-
* - Translation Failure: Fall back to machine translation + manual review queue
|
|
105
|
-
* - Missing Member Data: Generate article with available quotes
|
|
106
|
-
* - Parsing Error: Alert editorial team, skip problematic article
|
|
107
|
-
*
|
|
108
|
-
* **GDPR COMPLIANCE:**
|
|
109
|
-
* - Member quotes sourced to specific votes (transparency)
|
|
110
|
-
* - Personal data handling follows DPA requirements
|
|
111
|
-
* - Data retention integrated with article archive policy
|
|
112
|
-
* - Member consent tracking for non-public statements
|
|
113
|
-
*
|
|
114
|
-
* @osint Real-Time Intelligence Alerting
|
|
115
|
-
* - Detects parliamentary surprises through pattern matching
|
|
116
|
-
* - Monitors voting behavior changes (anomalies = story potential)
|
|
117
|
-
* - Tracks member alliances through cross-party voting patterns
|
|
118
|
-
* - Enables rapid response to developing situations
|
|
119
|
-
*
|
|
120
|
-
* @risk Coalition Stability Monitoring
|
|
121
|
-
* - Unexpected votes indicate coalition stress or realignment
|
|
122
|
-
* - Tracks frequency of cross-party voting as stability indicator
|
|
123
|
-
* - Alerts to procedural surprises that may signal conflict
|
|
124
|
-
* - Monitors government support metrics in real-time
|
|
125
|
-
*
|
|
126
|
-
* @gdpr Personal Data in Political Context
|
|
127
|
-
* - Member quotes tied to specific parliamentary records
|
|
128
|
-
* - Public statements treated as legitimate news sources
|
|
129
|
-
* - Personal data minimized to what's necessary for context
|
|
130
|
-
* - Audit trail connects claims to source documents
|
|
131
|
-
*
|
|
132
|
-
* @security Real-Time Content Integrity
|
|
133
|
-
* - Validates vote data before article publication
|
|
134
|
-
* - Prevents publication of unconfirmed votes
|
|
135
|
-
* - Timestamp synchronization detects tampering
|
|
136
|
-
* - Quote attribution verification through MCP records
|
|
137
|
-
*
|
|
138
|
-
* @author Hack23 AB (Real-Time Intelligence & News Operations)
|
|
139
|
-
* @license Apache-2.0
|
|
140
|
-
* @version 2.1.0
|
|
141
|
-
* @since 2024-09-10
|
|
142
|
-
* @see scripts/data-transformers.js (Content Generation Utilities)
|
|
143
|
-
* @see scripts/article-template.js (HTML Generation)
|
|
144
|
-
* @see Issue #144 (Breaking News Enhancement)
|
|
145
|
-
* @see Issue #145 (Voting Anomaly Detection)
|
|
146
|
-
*/
|
|
147
|
-
import { MCPClient } from '../mcp-client.js';
|
|
148
|
-
import { generateArticleContent, extractWatchPoints, generateMetadata, calculateReadTime, generateSources } from '../data-transformers.js';
|
|
149
|
-
import { generateArticleHTML } from '../article-template.js';
|
|
150
|
-
import { BREAKING_NEWS_THRESHOLD } from '../generate-news-enhanced/config.js';
|
|
151
|
-
/** Stub: returns a default significance score. Real scoring is AI-driven in workflows. */
|
|
152
|
-
function scoreDocuments(_docs) {
|
|
153
|
-
return { score: BREAKING_NEWS_THRESHOLD + 1, urgency: 'standard', signals: [] };
|
|
154
|
-
}
|
|
155
|
-
import { generateDynamicTitle, getAnalysisEnrichment } from '../generate-news-enhanced/helpers.js';
|
|
156
|
-
import { buildArticleVisualizationSections } from '../generate-news-enhanced/generators.js';
|
|
157
|
-
/**
|
|
158
|
-
* Required MCP tools for breaking news articles
|
|
159
|
-
*
|
|
160
|
-
* IMPLEMENTATION STATUS:
|
|
161
|
-
* - search_voteringar: ✅ Implemented (always called; parameters enriched when voteId is present)
|
|
162
|
-
* - get_voting_group: ✅ Implemented (always called; parameters enriched when voteId is present)
|
|
163
|
-
* - search_anforanden: ✅ Implemented (always called; parameters enriched when topic is present)
|
|
164
|
-
* - search_ledamoter: ✅ Implemented (always called; parameters enriched when a speaker name is found in search_anforanden results)
|
|
165
|
-
*/
|
|
166
|
-
export const REQUIRED_TOOLS = [
|
|
167
|
-
'search_voteringar',
|
|
168
|
-
'get_voting_group',
|
|
169
|
-
'search_anforanden',
|
|
170
|
-
'search_ledamoter'
|
|
171
|
-
];
|
|
172
|
-
/**
|
|
173
|
-
* Format date for article slug
|
|
174
|
-
*/
|
|
175
|
-
export function formatDateForSlug(date = new Date()) {
|
|
176
|
-
return date.toISOString().split('T')[0] ?? '';
|
|
177
|
-
}
|
|
178
|
-
/**
|
|
179
|
-
* Generate Breaking News article
|
|
180
|
-
*
|
|
181
|
-
* @param options - Generation options
|
|
182
|
-
*/
|
|
183
|
-
export async function generateBreakingNews(options = {}) {
|
|
184
|
-
const { languages = ['en', 'sv'], eventContext = 'Breaking parliamentary development', eventData = null, writeArticle = null } = options;
|
|
185
|
-
console.log('⚡ Generating Breaking News article...');
|
|
186
|
-
const mcpCalls = [];
|
|
187
|
-
try {
|
|
188
|
-
const client = new MCPClient();
|
|
189
|
-
// If no event data provided, this is a placeholder
|
|
190
|
-
if (!eventData) {
|
|
191
|
-
console.log(' ⚠️ No event data provided - breaking news requires manual trigger with context');
|
|
192
|
-
return {
|
|
193
|
-
success: false,
|
|
194
|
-
error: 'Breaking news requires event context and data',
|
|
195
|
-
mcpCalls
|
|
196
|
-
};
|
|
197
|
-
}
|
|
198
|
-
// Tool 1: search_voteringar — vote records (enriched with voteId when available)
|
|
199
|
-
try {
|
|
200
|
-
console.log(' 🔄 Fetching voting details...');
|
|
201
|
-
const votes = await client.fetchVotingRecords(eventData.voteId ? { punkt: eventData.voteId } : { limit: 5 });
|
|
202
|
-
mcpCalls.push({ tool: 'search_voteringar', result: votes });
|
|
203
|
-
}
|
|
204
|
-
catch (err) {
|
|
205
|
-
console.warn(' ⚠ search_voteringar unavailable:', err.message);
|
|
206
|
-
mcpCalls.push({ tool: 'search_voteringar', result: [] });
|
|
207
|
-
}
|
|
208
|
-
// Tool 2: get_voting_group — party-level voting breakdown
|
|
209
|
-
try {
|
|
210
|
-
console.log(' 🔄 Fetching party voting breakdown...');
|
|
211
|
-
const votingGroup = await client.fetchVotingGroup(eventData.voteId ? { punkt: eventData.voteId, groupBy: 'parti' } : { groupBy: 'parti', limit: 5 });
|
|
212
|
-
mcpCalls.push({ tool: 'get_voting_group', result: votingGroup });
|
|
213
|
-
}
|
|
214
|
-
catch (err) {
|
|
215
|
-
console.warn(' ⚠ get_voting_group unavailable:', err.message);
|
|
216
|
-
mcpCalls.push({ tool: 'get_voting_group', result: [] });
|
|
217
|
-
}
|
|
218
|
-
// Tool 3: search_anforanden — speeches providing context and reactions
|
|
219
|
-
let speechList = [];
|
|
220
|
-
try {
|
|
221
|
-
console.log(' 🔄 Fetching related speeches...');
|
|
222
|
-
const speeches = await client.searchSpeeches(eventData.topic ? { text: eventData.topic, limit: 10 } : { limit: 5 });
|
|
223
|
-
speechList = Array.isArray(speeches) ? speeches : [];
|
|
224
|
-
mcpCalls.push({ tool: 'search_anforanden', result: speechList });
|
|
225
|
-
}
|
|
226
|
-
catch (err) {
|
|
227
|
-
console.warn(' ⚠ search_anforanden unavailable:', err.message);
|
|
228
|
-
mcpCalls.push({ tool: 'search_anforanden', result: [] });
|
|
229
|
-
}
|
|
230
|
-
// Tool 4: search_ledamoter — MP profiles for speaker context
|
|
231
|
-
try {
|
|
232
|
-
console.log(' 🔄 Fetching MP profiles for speaker context...');
|
|
233
|
-
const speakerName = speechList[0]?.['talare'];
|
|
234
|
-
const mps = await client.fetchMPs(speakerName ? { namn: speakerName, limit: 1 } : { limit: 5 });
|
|
235
|
-
mcpCalls.push({ tool: 'search_ledamoter', result: mps });
|
|
236
|
-
}
|
|
237
|
-
catch (err) {
|
|
238
|
-
console.warn(' ⚠ search_ledamoter unavailable:', err.message);
|
|
239
|
-
mcpCalls.push({ tool: 'search_ledamoter', result: [] });
|
|
240
|
-
}
|
|
241
|
-
// Compute political significance score when event documents are available.
|
|
242
|
-
// When no documents are provided (e.g., manually triggered breaking news),
|
|
243
|
-
// the significance gate is skipped — the caller is assumed to have already
|
|
244
|
-
// made the editorial decision to generate.
|
|
245
|
-
const eventDocs = eventData.documents ?? [];
|
|
246
|
-
let significance = null;
|
|
247
|
-
if (eventDocs.length > 0) {
|
|
248
|
-
significance = scoreDocuments(eventDocs);
|
|
249
|
-
console.log(` 📊 Political significance: ${significance.score}/100 (${significance.urgency})`);
|
|
250
|
-
// Gate: skip generation if significance is below threshold
|
|
251
|
-
if (significance.score < BREAKING_NEWS_THRESHOLD) {
|
|
252
|
-
console.log(` ⏭️ Significance ${significance.score} < ${BREAKING_NEWS_THRESHOLD} — skipping generation (not newsworthy)`);
|
|
253
|
-
return {
|
|
254
|
-
success: true,
|
|
255
|
-
files: 0,
|
|
256
|
-
mcpCalls,
|
|
257
|
-
};
|
|
258
|
-
}
|
|
259
|
-
}
|
|
260
|
-
const today = new Date();
|
|
261
|
-
const slug = `${formatDateForSlug(today)}-breaking-${eventData.slug || 'news'}`;
|
|
262
|
-
const articles = [];
|
|
263
|
-
const enrichment = await getAnalysisEnrichment();
|
|
264
|
-
for (const lang of languages) {
|
|
265
|
-
console.log(` 🌐 Generating ${lang.toUpperCase()} version...`);
|
|
266
|
-
const contentData = { context: eventContext };
|
|
267
|
-
const content = generateArticleContent(contentData, 'breaking', lang);
|
|
268
|
-
const watchPointData = { context: eventContext };
|
|
269
|
-
const watchPoints = extractWatchPoints(watchPointData, lang);
|
|
270
|
-
const metadata = generateMetadata(watchPointData, 'breaking', lang);
|
|
271
|
-
const readTime = calculateReadTime(content);
|
|
272
|
-
const sources = generateSources(mcpCalls.map((call) => call.tool));
|
|
273
|
-
const titles = getTitles(lang, eventContext);
|
|
274
|
-
// Enrich English title/subtitle with content-based highlights
|
|
275
|
-
const enriched = lang === 'en' ? generateDynamicTitle(titles.title, content, eventDocs.length) : titles;
|
|
276
|
-
// Build visualization sections (SWOT, dashboard)
|
|
277
|
-
const sections = buildArticleVisualizationSections(eventDocs, null, lang);
|
|
278
|
-
const html = generateArticleHTML({
|
|
279
|
-
slug: `${slug}-${lang}.html`,
|
|
280
|
-
title: enriched.title,
|
|
281
|
-
subtitle: enriched.subtitle,
|
|
282
|
-
date: today.toISOString().split('T')[0] ?? '',
|
|
283
|
-
type: 'breaking',
|
|
284
|
-
readTime,
|
|
285
|
-
lang,
|
|
286
|
-
content,
|
|
287
|
-
watchPoints,
|
|
288
|
-
sources,
|
|
289
|
-
keywords: metadata.keywords,
|
|
290
|
-
topics: metadata.topics,
|
|
291
|
-
tags: metadata.tags,
|
|
292
|
-
// Spread analysis enrichment first, then override significance/urgency
|
|
293
|
-
// with breaking-news-specific scores only when actually computed.
|
|
294
|
-
...(enrichment ?? {}),
|
|
295
|
-
...(significance != null
|
|
296
|
-
? {
|
|
297
|
-
significance: significance.score,
|
|
298
|
-
urgency: significance.urgency,
|
|
299
|
-
}
|
|
300
|
-
: {}),
|
|
301
|
-
sections,
|
|
302
|
-
});
|
|
303
|
-
articles.push({
|
|
304
|
-
lang,
|
|
305
|
-
html,
|
|
306
|
-
filename: `${slug}-${lang}.html`,
|
|
307
|
-
slug: `${slug}-${lang}`
|
|
308
|
-
});
|
|
309
|
-
if (writeArticle) {
|
|
310
|
-
await writeArticle(html, `${slug}-${lang}.html`);
|
|
311
|
-
console.log(` ✅ ${lang.toUpperCase()} version generated`);
|
|
312
|
-
}
|
|
313
|
-
}
|
|
314
|
-
return {
|
|
315
|
-
success: true,
|
|
316
|
-
files: languages.length,
|
|
317
|
-
slug,
|
|
318
|
-
articles,
|
|
319
|
-
mcpCalls,
|
|
320
|
-
crossReferences: {
|
|
321
|
-
event: eventContext,
|
|
322
|
-
sources: mcpCalls.map((call) => call.tool)
|
|
323
|
-
}
|
|
324
|
-
};
|
|
325
|
-
}
|
|
326
|
-
catch (error) {
|
|
327
|
-
console.error('❌ Error generating Breaking News:', error.message);
|
|
328
|
-
return {
|
|
329
|
-
success: false,
|
|
330
|
-
error: error.message,
|
|
331
|
-
mcpCalls
|
|
332
|
-
};
|
|
333
|
-
}
|
|
334
|
-
}
|
|
335
|
-
function getTitles(lang, eventContext) {
|
|
336
|
-
const titles = {
|
|
337
|
-
en: {
|
|
338
|
-
title: `Breaking: ${eventContext}`,
|
|
339
|
-
subtitle: `Live coverage of major parliamentary development`
|
|
340
|
-
},
|
|
341
|
-
sv: {
|
|
342
|
-
title: `Senaste nytt: ${eventContext}`,
|
|
343
|
-
subtitle: `Direktrapportering från riksdagen`
|
|
344
|
-
},
|
|
345
|
-
da: {
|
|
346
|
-
title: `Seneste nyt: ${eventContext}`,
|
|
347
|
-
subtitle: `Direkte dækning af parlamentarisk udvikling`
|
|
348
|
-
},
|
|
349
|
-
no: {
|
|
350
|
-
title: `Siste nytt: ${eventContext}`,
|
|
351
|
-
subtitle: `Direkte dekning av parlamentarisk utvikling`
|
|
352
|
-
},
|
|
353
|
-
fi: {
|
|
354
|
-
title: `Viimeisimmät uutiset: ${eventContext}`,
|
|
355
|
-
subtitle: `Suora raportointi parlamentaarisesta kehityksestä`
|
|
356
|
-
},
|
|
357
|
-
de: {
|
|
358
|
-
title: `Eilmeldung: ${eventContext}`,
|
|
359
|
-
subtitle: `Live-Berichterstattung über parlamentarische Entwicklung`
|
|
360
|
-
},
|
|
361
|
-
fr: {
|
|
362
|
-
title: `Dernière minute: ${eventContext}`,
|
|
363
|
-
subtitle: `Couverture en direct du développement parlementaire`
|
|
364
|
-
},
|
|
365
|
-
es: {
|
|
366
|
-
title: `Última hora: ${eventContext}`,
|
|
367
|
-
subtitle: `Cobertura en vivo del desarrollo parlamentario`
|
|
368
|
-
},
|
|
369
|
-
nl: {
|
|
370
|
-
title: `Laatste nieuws: ${eventContext}`,
|
|
371
|
-
subtitle: `Live verslag van parlementaire ontwikkeling`
|
|
372
|
-
},
|
|
373
|
-
ar: {
|
|
374
|
-
title: `عاجل: ${eventContext}`,
|
|
375
|
-
subtitle: `تغطية مباشرة للتطورات البرلمانية`
|
|
376
|
-
},
|
|
377
|
-
he: {
|
|
378
|
-
title: `חדשות אחרונות: ${eventContext}`,
|
|
379
|
-
subtitle: `סיקור חי של התפתחות פרלמנטרית`
|
|
380
|
-
},
|
|
381
|
-
ja: {
|
|
382
|
-
title: `速報:${eventContext}`,
|
|
383
|
-
subtitle: `議会の重要な展開のライブカバレッジ`
|
|
384
|
-
},
|
|
385
|
-
ko: {
|
|
386
|
-
title: `속보: ${eventContext}`,
|
|
387
|
-
subtitle: `의회 주요 발전 실시간 보도`
|
|
388
|
-
},
|
|
389
|
-
zh: {
|
|
390
|
-
title: `快讯:${eventContext}`,
|
|
391
|
-
subtitle: `议会重大发展实时报道`
|
|
392
|
-
}
|
|
393
|
-
};
|
|
394
|
-
return titles[lang] || titles.en;
|
|
395
|
-
}
|
|
396
|
-
export function validateBreakingNews(article) {
|
|
397
|
-
const hasBreakingEvent = checkBreakingEvent(article);
|
|
398
|
-
const hasMinimumSources = countSources(article) >= 3;
|
|
399
|
-
const hasTimeliness = checkTimeliness(article);
|
|
400
|
-
const hasImpactAnalysis = checkImpactAnalysis(article);
|
|
401
|
-
return {
|
|
402
|
-
hasBreakingEvent,
|
|
403
|
-
hasMinimumSources,
|
|
404
|
-
hasTimeliness,
|
|
405
|
-
hasImpactAnalysis,
|
|
406
|
-
passed: hasBreakingEvent && hasMinimumSources && hasTimeliness && hasImpactAnalysis
|
|
407
|
-
};
|
|
408
|
-
}
|
|
409
|
-
function checkBreakingEvent(article) {
|
|
410
|
-
if (!article || !article.content)
|
|
411
|
-
return false;
|
|
412
|
-
return article.content.toLowerCase().includes('breaking') ||
|
|
413
|
-
article.content.toLowerCase().includes('development');
|
|
414
|
-
}
|
|
415
|
-
function countSources(article) {
|
|
416
|
-
if (!article || !article.sources)
|
|
417
|
-
return 0;
|
|
418
|
-
return Array.isArray(article.sources) ? article.sources.length : 0;
|
|
419
|
-
}
|
|
420
|
-
function checkTimeliness(article) {
|
|
421
|
-
if (!article || !article.content)
|
|
422
|
-
return false;
|
|
423
|
-
const timeKeywords = ['today', 'just now', 'breaking', 'latest'];
|
|
424
|
-
return timeKeywords.some(keyword => article.content.toLowerCase().includes(keyword));
|
|
425
|
-
}
|
|
426
|
-
function checkImpactAnalysis(article) {
|
|
427
|
-
if (!article || !article.content)
|
|
428
|
-
return false;
|
|
429
|
-
const impactKeywords = ['impact', 'significance', 'implications', 'consequences'];
|
|
430
|
-
return impactKeywords.some(keyword => article.content.toLowerCase().includes(keyword));
|
|
431
|
-
}
|
|
432
|
-
//# sourceMappingURL=breaking-news.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"breaking-news.js","sourceRoot":"","sources":["../../../scripts/news-types/breaking-news.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,212 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module ContentGeneration/CommitteeAnalysis
|
|
3
|
-
* @category ContentGeneration
|
|
4
|
-
*
|
|
5
|
-
* @title Committee Reports Article Generator - Organizational Intelligence Module
|
|
6
|
-
*
|
|
7
|
-
* @description
|
|
8
|
-
* **INTELLIGENCE OPERATIVE PERSPECTIVE**
|
|
9
|
-
*
|
|
10
|
-
* This module generates analysis of Swedish Riksdag committee reports (betänkanden),
|
|
11
|
-
* serving as the organizational intelligence layer. Committees are where legislative
|
|
12
|
-
* power actually accumulates and policy details get determined, making committee
|
|
13
|
-
* analysis essential for understanding parliamentary strategy and identifying emerging
|
|
14
|
-
* policy trends before they reach full-house debate.
|
|
15
|
-
*
|
|
16
|
-
* **RIKSDAG COMMITTEE STRUCTURE (15 Committees):**
|
|
17
|
-
* Swedish parliament divides work among specialized committees, each with distinct
|
|
18
|
-
* intelligence value:
|
|
19
|
-
*
|
|
20
|
-
* **Security & Foreign Policy:**
|
|
21
|
-
* - Utrikesutskottet (Foreign Affairs Committee)
|
|
22
|
-
* Intelligence value: International relations, diplomatic initiatives
|
|
23
|
-
* - Försvarsutskottet (Defense Committee)
|
|
24
|
-
* Intelligence value: National security, military policy, NATO integration
|
|
25
|
-
* - Konstitutionsutskottet (Constitutional Committee)
|
|
26
|
-
* Intelligence value: Governmental powers, constitutional amendments
|
|
27
|
-
*
|
|
28
|
-
* **Economic & Fiscal Policy:**
|
|
29
|
-
* - Finansutskottet (Finance Committee)
|
|
30
|
-
* Intelligence value: Budget priorities, taxation, government spending
|
|
31
|
-
* - Näringsutskottet (Industry Committee)
|
|
32
|
-
* Intelligence value: Business regulation, competition policy
|
|
33
|
-
* - Trafikutskottet (Transport Committee)
|
|
34
|
-
* Intelligence value: Infrastructure investment, transportation policy
|
|
35
|
-
*
|
|
36
|
-
* **Social Policy:**
|
|
37
|
-
* - Socialutskottet (Social Affairs Committee)
|
|
38
|
-
* Intelligence value: Welfare policy, labor relations, pensions
|
|
39
|
-
* - Miljöutskottet (Environment Committee)
|
|
40
|
-
* Intelligence value: Climate policy, environmental regulation
|
|
41
|
-
* - Kulturutskottet (Cultural Affairs Committee)
|
|
42
|
-
* Intelligence value: Media policy, cultural subsidy allocation
|
|
43
|
-
*
|
|
44
|
-
* **Justice & Administration:**
|
|
45
|
-
* - Justitieutskottet (Justice Committee)
|
|
46
|
-
* Intelligence value: Criminal justice, court system, legal reform
|
|
47
|
-
* - Civilutskottet (Civil Affairs Committee)
|
|
48
|
-
* Intelligence value: Civil law, administrative procedure
|
|
49
|
-
*
|
|
50
|
-
* **Healthcare & Education:**
|
|
51
|
-
* - Hälso- och sjukvårdsutskottet (Health & Welfare Committee)
|
|
52
|
-
* Intelligence value: Healthcare policy, pharmaceutical regulation
|
|
53
|
-
* - Utbildningsutskottet (Education Committee)
|
|
54
|
-
* Intelligence value: Education policy, research funding
|
|
55
|
-
*
|
|
56
|
-
* **COMMITTEE REPORT INTELLIGENCE VALUE:**
|
|
57
|
-
* Committee reports (betänkanden) are detailed policy analyses that:
|
|
58
|
-
* 1. **Reveal Policy Priorities**: Which issues get sustained committee attention
|
|
59
|
-
* 2. **Show Consensus Building**: Which proposals achieve cross-party support
|
|
60
|
-
* 3. **Expose Disagreements**: Minority reports indicate party positions
|
|
61
|
-
* 4. **Foreshadow Future Votes**: Committee report often precedes parliamentary vote
|
|
62
|
-
* 5. **Document Expert Input**: Committee work includes civil society consultation
|
|
63
|
-
*
|
|
64
|
-
* **ARTICLE STRUCTURE:**
|
|
65
|
-
* Each committee report article includes:
|
|
66
|
-
* 1. Report Summary: Policy proposal and committee conclusions
|
|
67
|
-
* 2. Committee Composition: Party breakdown and balance analysis
|
|
68
|
-
* 3. Recommended Actions: What parliament should do with proposal
|
|
69
|
-
* 4. Party Positions: Explicit support/opposition from each party
|
|
70
|
-
* 5. Implementation Timeline: When policy would take effect if passed
|
|
71
|
-
*
|
|
72
|
-
* **MCP DATA SOURCE:**
|
|
73
|
-
* Primary tool: get_betankanden
|
|
74
|
-
* - Retrieves latest committee reports from riksdag data platform
|
|
75
|
-
* - Includes report metadata, summaries, full text
|
|
76
|
-
* - Enables systematic committee coverage
|
|
77
|
-
*
|
|
78
|
-
* **MCP TOOLS IMPLEMENTED:**
|
|
79
|
-
* - get_betankanden: Committee report metadata and full text
|
|
80
|
-
* - search_voteringar: Committee voting patterns
|
|
81
|
-
* - search_anforanden: Committee member statements
|
|
82
|
-
* - get_propositioner: Related government proposals
|
|
83
|
-
*
|
|
84
|
-
* **OPERATIONAL WORKFLOW:**
|
|
85
|
-
* 1. Query MCP: Fetch latest committee reports (default: 10 most recent)
|
|
86
|
-
* 2. Content Generation: Transform report data into article structure
|
|
87
|
-
* 3. Metadata Creation: Generate article metadata (tags, summary, etc.)
|
|
88
|
-
* 4. HTML Rendering: Apply article template for web publication
|
|
89
|
-
* 5. Multilingual Generation: Create 14-language edition set
|
|
90
|
-
* 6. File Writing: Save to news directory with timestamp
|
|
91
|
-
*
|
|
92
|
-
* **PUBLICATION SCHEDULE:**
|
|
93
|
-
* - Trigger: Weekly batch processing of new committee reports
|
|
94
|
-
* - Latency: 1-2 hours after MCP data update
|
|
95
|
-
* - Frequency: All new reports processed on same day
|
|
96
|
-
* - Archive: Reports indexed for historical analysis
|
|
97
|
-
*
|
|
98
|
-
* **INTELLIGENCE APPLICATIONS:**
|
|
99
|
-
* 1. **Policy Tracking**: Follow specific policy proposals through committee process
|
|
100
|
-
* 2. **Coalition Analysis**: Identify which parties cooperate on specific issues
|
|
101
|
-
* 3. **Committee Power Analysis**: Determine which committees drive agenda
|
|
102
|
-
* 4. **Early Warning**: Detect emerging policy directions
|
|
103
|
-
* 5. **Timeline Prediction**: Forecast when policies will reach parliament floor
|
|
104
|
-
*
|
|
105
|
-
* **LANGUAGE CONSIDERATIONS:**
|
|
106
|
-
* Committee terminology is highly technical and translates imperfectly:
|
|
107
|
-
* - Swedish: Detailed policy language with parliamentary terminology
|
|
108
|
-
* - English: Standard policy terminology, some concepts foreigners unfamiliar with
|
|
109
|
-
* - Nordic: Similar policy traditions, closer translations possible
|
|
110
|
-
* - Other Languages: Require significant contextual explanation
|
|
111
|
-
*
|
|
112
|
-
* **RISK ASSESSMENT FRAMEWORK:**
|
|
113
|
-
* Committee reports feed into risk analysis:
|
|
114
|
-
* - **Fiscal Risk**: Budget committee reports reveal spending concerns
|
|
115
|
-
* - **Security Risk**: Defense committee reports indicate threat perception
|
|
116
|
-
* - **Health Risk**: Health committee reports reveal pandemic/disease concerns
|
|
117
|
-
* - **Environmental Risk**: Environment committee reports highlight climate action
|
|
118
|
-
*
|
|
119
|
-
* **PERFORMANCE CHARACTERISTICS:**
|
|
120
|
-
* - MCP Query: ~500ms for 10 latest reports
|
|
121
|
-
* - Article Generation: ~2 seconds per report
|
|
122
|
-
* - Translation: ~5 seconds per report (parallel)
|
|
123
|
-
* - Total: ~15 seconds for full batch (10 reports, 14 languages)
|
|
124
|
-
*
|
|
125
|
-
* **FAILURE HANDLING:**
|
|
126
|
-
* - Missing Report Text: Generate article with metadata only
|
|
127
|
-
* - Translation Failure: Queue for manual translation review
|
|
128
|
-
* - MCP Service Down: Skip batch, retry on next schedule
|
|
129
|
-
* - Empty Result Set: Log as informational, no articles generated
|
|
130
|
-
*
|
|
131
|
-
* **GDPR COMPLIANCE:**
|
|
132
|
-
* - Committee member names published (public parliamentary records)
|
|
133
|
-
* - Personal statements tracked to source documents
|
|
134
|
-
* - Data retention tied to parliamentary archive policy
|
|
135
|
-
* - Right-to-be-forgotten handled through archive management
|
|
136
|
-
*
|
|
137
|
-
* @osint Committee Power Intelligence
|
|
138
|
-
* - Maps committee influence through report frequency and impact
|
|
139
|
-
* - Tracks coalition cooperation patterns at committee level
|
|
140
|
-
* - Identifies committee chairs as power brokers
|
|
141
|
-
* - Analyzes committee expertise and specialization
|
|
142
|
-
*
|
|
143
|
-
* @risk Policy Change Detection
|
|
144
|
-
* - Committee reports signal emerging policy directions
|
|
145
|
-
* - Tracks consensus-building across political spectrum
|
|
146
|
-
* - Detects unprecedented policy proposals
|
|
147
|
-
* - Monitors implementation timeline predictions
|
|
148
|
-
*
|
|
149
|
-
* @gdpr Public Record Documentation
|
|
150
|
-
* - Committee reports are public documents
|
|
151
|
-
* - Member statements in reports are public
|
|
152
|
-
* - Data retention follows parliamentary archive standards
|
|
153
|
-
* - Supporting audit trail for regulatory compliance
|
|
154
|
-
*
|
|
155
|
-
* @security Report Authenticity
|
|
156
|
-
* - Validates committee reports from official MCP source
|
|
157
|
-
* - Detects report modification or tampering
|
|
158
|
-
* - Timestamp synchronization prevents fraud
|
|
159
|
-
* - Source verification through official riksdag records
|
|
160
|
-
*
|
|
161
|
-
* @author Hack23 AB (Committee Intelligence & Policy Analysis)
|
|
162
|
-
* @license Apache-2.0
|
|
163
|
-
* @version 2.0.0
|
|
164
|
-
* @since 2024-08-25
|
|
165
|
-
* @see scripts/data-transformers.js (Content Generation)
|
|
166
|
-
* @see scripts/article-template.js (HTML Rendering)
|
|
167
|
-
* @see Issue #128 (Committee Analysis Enhancement)
|
|
168
|
-
* @see https://www.riksdagen.se/ (Riksdag Official Site)
|
|
169
|
-
*/
|
|
170
|
-
import type { Language } from '../types/language.js';
|
|
171
|
-
import type { GenerationResult } from '../types/article.js';
|
|
172
|
-
/**
|
|
173
|
-
* Required MCP tools for committee-reports articles
|
|
174
|
-
*/
|
|
175
|
-
export declare const REQUIRED_TOOLS: readonly string[];
|
|
176
|
-
export interface TitleSet {
|
|
177
|
-
title: string;
|
|
178
|
-
subtitle: string;
|
|
179
|
-
}
|
|
180
|
-
export interface CommitteeReportsValidationResult {
|
|
181
|
-
hasCommitteeReports: boolean;
|
|
182
|
-
hasMinimumSources: boolean;
|
|
183
|
-
hasAnalysisTone: boolean;
|
|
184
|
-
hasPartyPositions: boolean;
|
|
185
|
-
passed: boolean;
|
|
186
|
-
}
|
|
187
|
-
export interface ArticleInput {
|
|
188
|
-
content?: string;
|
|
189
|
-
sources?: string[];
|
|
190
|
-
[key: string]: unknown;
|
|
191
|
-
}
|
|
192
|
-
export interface GenerationOptions {
|
|
193
|
-
languages?: Language[];
|
|
194
|
-
limit?: number;
|
|
195
|
-
writeArticle?: ((html: string, filename: string) => Promise<void>) | null;
|
|
196
|
-
}
|
|
197
|
-
/**
|
|
198
|
-
* Format date for article slug
|
|
199
|
-
*/
|
|
200
|
-
export declare function formatDateForSlug(date?: Date): string;
|
|
201
|
-
/**
|
|
202
|
-
* Generate Committee Reports article in specified languages
|
|
203
|
-
*
|
|
204
|
-
* @param options - Generation options
|
|
205
|
-
* @returns Generation result
|
|
206
|
-
*/
|
|
207
|
-
export declare function generateCommitteeReports(options?: GenerationOptions): Promise<GenerationResult>;
|
|
208
|
-
/**
|
|
209
|
-
* Validate committee reports article structure
|
|
210
|
-
*/
|
|
211
|
-
export declare function validateCommitteeReports(article: ArticleInput): CommitteeReportsValidationResult;
|
|
212
|
-
//# sourceMappingURL=committee-reports.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"committee-reports.d.ts","sourceRoot":"","sources":["../../../scripts/news-types/committee-reports.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwKG;AAeH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAqC,gBAAgB,EAAiB,MAAM,qBAAqB,CAAC;AAE9G;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,SAAS,MAAM,EAK3C,CAAC;AAEF,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gCAAgC;IAC/C,mBAAmB,EAAE,OAAO,CAAC;IAC7B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,eAAe,EAAE,OAAO,CAAC;IACzB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,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,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;CAC3E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,GAAE,IAAiB,GAAG,MAAM,CAEjE;AAED;;;;;GAKG;AACH,wBAAsB,wBAAwB,CAAC,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA2HzG;AAuED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,YAAY,GAAG,gCAAgC,CAahG"}
|