riksdagsmonitor 0.8.12 → 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.
- package/dist/lib/cia/dashboard-init.d.ts +26 -0
- package/dist/lib/cia/dashboard-init.d.ts.map +1 -0
- package/dist/lib/cia/dashboard-init.js +108 -0
- package/dist/lib/cia/dashboard-init.js.map +1 -0
- package/dist/lib/cia/data-loader.d.ts +408 -0
- package/dist/lib/cia/data-loader.d.ts.map +1 -0
- package/dist/lib/cia/data-loader.js +867 -0
- package/dist/lib/cia/data-loader.js.map +1 -0
- package/dist/lib/cia/election-predictions.d.ts +78 -0
- package/dist/lib/cia/election-predictions.d.ts.map +1 -0
- package/dist/lib/cia/election-predictions.js +259 -0
- package/dist/lib/cia/election-predictions.js.map +1 -0
- package/dist/lib/cia/i18n-translations.d.ts +111 -0
- package/dist/lib/cia/i18n-translations.d.ts.map +1 -0
- package/dist/lib/cia/i18n-translations.js +619 -0
- package/dist/lib/cia/i18n-translations.js.map +1 -0
- package/dist/lib/cia/visualizations.d.ts +64 -0
- package/dist/lib/cia/visualizations.d.ts.map +1 -0
- package/dist/lib/cia/visualizations.js +662 -0
- package/dist/lib/cia/visualizations.js.map +1 -0
- package/dist/lib/dashboards/anomaly-detection.d.ts +44 -0
- package/dist/lib/dashboards/anomaly-detection.d.ts.map +1 -0
- package/dist/lib/dashboards/anomaly-detection.js +1017 -0
- package/dist/lib/dashboards/anomaly-detection.js.map +1 -0
- package/dist/lib/dashboards/coalition-dashboard.d.ts +36 -0
- package/dist/lib/dashboards/coalition-dashboard.d.ts.map +1 -0
- package/dist/lib/dashboards/coalition-dashboard.js +629 -0
- package/dist/lib/dashboards/coalition-dashboard.js.map +1 -0
- package/dist/lib/dashboards/coalition-loader.d.ts +43 -0
- package/dist/lib/dashboards/coalition-loader.d.ts.map +1 -0
- package/dist/lib/dashboards/coalition-loader.js +665 -0
- package/dist/lib/dashboards/coalition-loader.js.map +1 -0
- package/dist/lib/dashboards/committees-dashboard.d.ts +23 -0
- package/dist/lib/dashboards/committees-dashboard.d.ts.map +1 -0
- package/dist/lib/dashboards/committees-dashboard.js +886 -0
- package/dist/lib/dashboards/committees-dashboard.js.map +1 -0
- package/dist/lib/dashboards/election-cycle.d.ts +62 -0
- package/dist/lib/dashboards/election-cycle.d.ts.map +1 -0
- package/dist/lib/dashboards/election-cycle.js +484 -0
- package/dist/lib/dashboards/election-cycle.js.map +1 -0
- package/dist/lib/dashboards/ministry-dashboard.d.ts +46 -0
- package/dist/lib/dashboards/ministry-dashboard.d.ts.map +1 -0
- package/dist/lib/dashboards/ministry-dashboard.js +1114 -0
- package/dist/lib/dashboards/ministry-dashboard.js.map +1 -0
- package/dist/lib/dashboards/party-dashboard.d.ts +56 -0
- package/dist/lib/dashboards/party-dashboard.d.ts.map +1 -0
- package/dist/lib/dashboards/party-dashboard.js +981 -0
- package/dist/lib/dashboards/party-dashboard.js.map +1 -0
- package/dist/lib/dashboards/politician-dashboard.d.ts +41 -0
- package/dist/lib/dashboards/politician-dashboard.d.ts.map +1 -0
- package/dist/lib/dashboards/politician-dashboard.js +611 -0
- package/dist/lib/dashboards/politician-dashboard.js.map +1 -0
- package/dist/lib/dashboards/pre-election.d.ts +64 -0
- package/dist/lib/dashboards/pre-election.d.ts.map +1 -0
- package/dist/lib/dashboards/pre-election.js +604 -0
- package/dist/lib/dashboards/pre-election.js.map +1 -0
- package/dist/lib/dashboards/risk-dashboard.d.ts +37 -0
- package/dist/lib/dashboards/risk-dashboard.d.ts.map +1 -0
- package/dist/lib/dashboards/risk-dashboard.js +863 -0
- package/dist/lib/dashboards/risk-dashboard.js.map +1 -0
- package/dist/lib/dashboards/seasonal-patterns.d.ts +24 -0
- package/dist/lib/dashboards/seasonal-patterns.d.ts.map +1 -0
- package/dist/lib/dashboards/seasonal-patterns.js +535 -0
- package/dist/lib/dashboards/seasonal-patterns.js.map +1 -0
- package/dist/lib/dashboards/stats-loader.d.ts +35 -0
- package/dist/lib/dashboards/stats-loader.d.ts.map +1 -0
- package/dist/lib/dashboards/stats-loader.js +145 -0
- package/dist/lib/dashboards/stats-loader.js.map +1 -0
- package/dist/lib/shared/chart-factory.d.ts.map +1 -0
- package/dist/lib/shared/chart-factory.js.map +1 -0
- package/dist/lib/shared/data-loader.d.ts.map +1 -0
- package/dist/lib/shared/data-loader.js.map +1 -0
- package/dist/lib/shared/dom-utils.d.ts.map +1 -0
- package/dist/lib/shared/dom-utils.js.map +1 -0
- package/dist/lib/shared/error-boundary.d.ts.map +1 -0
- package/dist/lib/shared/error-boundary.js.map +1 -0
- package/dist/lib/shared/fallback-ui.d.ts.map +1 -0
- package/dist/lib/shared/fallback-ui.js.map +1 -0
- package/dist/lib/shared/index.d.ts.map +1 -0
- package/dist/lib/shared/index.js.map +1 -0
- package/dist/lib/shared/logger.d.ts.map +1 -0
- package/dist/lib/shared/logger.js.map +1 -0
- package/dist/lib/shared/register-globals.d.ts +14 -0
- package/dist/lib/shared/register-globals.d.ts.map +1 -0
- package/dist/lib/shared/register-globals.js +21 -0
- package/dist/lib/shared/register-globals.js.map +1 -0
- package/dist/lib/shared/theme.d.ts.map +1 -0
- package/dist/lib/shared/theme.js.map +1 -0
- package/dist/lib/shared/types.d.ts.map +1 -0
- package/dist/lib/shared/types.js.map +1 -0
- package/dist/lib/ui/back-to-top.d.ts +13 -0
- package/dist/lib/ui/back-to-top.d.ts.map +1 -0
- package/dist/lib/ui/back-to-top.js +48 -0
- package/dist/lib/ui/back-to-top.js.map +1 -0
- package/dist/scripts/ai-analysis/coalition-detector.d.ts +28 -0
- package/dist/scripts/ai-analysis/coalition-detector.d.ts.map +1 -0
- package/dist/scripts/ai-analysis/coalition-detector.js +242 -0
- package/dist/scripts/ai-analysis/coalition-detector.js.map +1 -0
- package/dist/scripts/ai-analysis/dashboard-analyzer.d.ts +73 -0
- package/dist/scripts/ai-analysis/dashboard-analyzer.d.ts.map +1 -0
- package/dist/scripts/ai-analysis/dashboard-analyzer.js +511 -0
- package/dist/scripts/ai-analysis/dashboard-analyzer.js.map +1 -0
- package/dist/scripts/ai-analysis/document-analyzer.d.ts +196 -0
- package/dist/scripts/ai-analysis/document-analyzer.d.ts.map +1 -0
- package/dist/scripts/ai-analysis/document-analyzer.js +1001 -0
- package/dist/scripts/ai-analysis/document-analyzer.js.map +1 -0
- package/dist/scripts/ai-analysis/domains/index.d.ts +15 -0
- package/dist/scripts/ai-analysis/domains/index.d.ts.map +1 -0
- package/dist/scripts/ai-analysis/domains/index.js +494 -0
- package/dist/scripts/ai-analysis/domains/index.js.map +1 -0
- package/dist/scripts/ai-analysis/helpers.d.ts +43 -0
- package/dist/scripts/ai-analysis/helpers.d.ts.map +1 -0
- package/dist/scripts/ai-analysis/helpers.js +79 -0
- package/dist/scripts/ai-analysis/helpers.js.map +1 -0
- package/dist/scripts/ai-analysis/index.d.ts +15 -0
- package/dist/scripts/ai-analysis/index.d.ts.map +1 -0
- package/dist/scripts/ai-analysis/index.js +14 -0
- package/dist/scripts/ai-analysis/index.js.map +1 -0
- package/dist/scripts/ai-analysis/pipeline.d.ts +41 -0
- package/dist/scripts/ai-analysis/pipeline.d.ts.map +1 -0
- package/dist/scripts/ai-analysis/pipeline.js +208 -0
- package/dist/scripts/ai-analysis/pipeline.js.map +1 -0
- package/dist/scripts/ai-analysis/political-significance.d.ts +63 -0
- package/dist/scripts/ai-analysis/political-significance.d.ts.map +1 -0
- package/dist/scripts/ai-analysis/political-significance.js +227 -0
- package/dist/scripts/ai-analysis/political-significance.js.map +1 -0
- package/dist/scripts/ai-analysis/quality-assessor.d.ts +104 -0
- package/dist/scripts/ai-analysis/quality-assessor.d.ts.map +1 -0
- package/dist/scripts/ai-analysis/quality-assessor.js +554 -0
- package/dist/scripts/ai-analysis/quality-assessor.js.map +1 -0
- package/dist/scripts/ai-analysis/swot/index.d.ts +56 -0
- package/dist/scripts/ai-analysis/swot/index.d.ts.map +1 -0
- package/dist/scripts/ai-analysis/swot/index.js +360 -0
- package/dist/scripts/ai-analysis/swot/index.js.map +1 -0
- package/dist/scripts/ai-analysis/swot/placeholders.d.ts +30 -0
- package/dist/scripts/ai-analysis/swot/placeholders.d.ts.map +1 -0
- package/dist/scripts/ai-analysis/swot/placeholders.js +381 -0
- package/dist/scripts/ai-analysis/swot/placeholders.js.map +1 -0
- package/dist/scripts/ai-analysis/types.d.ts +333 -0
- package/dist/scripts/ai-analysis/types.d.ts.map +1 -0
- package/dist/scripts/ai-analysis/types.js +19 -0
- package/dist/scripts/ai-analysis/types.js.map +1 -0
- package/dist/scripts/ai-analysis/visualisation/index.d.ts +15 -0
- package/dist/scripts/ai-analysis/visualisation/index.d.ts.map +1 -0
- package/dist/scripts/ai-analysis/visualisation/index.js +179 -0
- package/dist/scripts/ai-analysis/visualisation/index.js.map +1 -0
- package/dist/scripts/analysis-framework/cross-reference.d.ts +35 -0
- package/dist/scripts/analysis-framework/cross-reference.d.ts.map +1 -0
- package/dist/scripts/analysis-framework/cross-reference.js +290 -0
- package/dist/scripts/analysis-framework/cross-reference.js.map +1 -0
- package/dist/scripts/analysis-framework/index.d.ts +79 -0
- package/dist/scripts/analysis-framework/index.d.ts.map +1 -0
- package/dist/scripts/analysis-framework/index.js +133 -0
- package/dist/scripts/analysis-framework/index.js.map +1 -0
- package/dist/scripts/analysis-framework/lenses/citizen.d.ts +29 -0
- package/dist/scripts/analysis-framework/lenses/citizen.d.ts.map +1 -0
- package/dist/scripts/analysis-framework/lenses/citizen.js +220 -0
- package/dist/scripts/analysis-framework/lenses/citizen.js.map +1 -0
- package/dist/scripts/analysis-framework/lenses/economic.d.ts +29 -0
- package/dist/scripts/analysis-framework/lenses/economic.d.ts.map +1 -0
- package/dist/scripts/analysis-framework/lenses/economic.js +227 -0
- package/dist/scripts/analysis-framework/lenses/economic.js.map +1 -0
- package/dist/scripts/analysis-framework/lenses/government.d.ts +32 -0
- package/dist/scripts/analysis-framework/lenses/government.d.ts.map +1 -0
- package/dist/scripts/analysis-framework/lenses/government.js +265 -0
- package/dist/scripts/analysis-framework/lenses/government.js.map +1 -0
- package/dist/scripts/analysis-framework/lenses/international.d.ts +29 -0
- package/dist/scripts/analysis-framework/lenses/international.d.ts.map +1 -0
- package/dist/scripts/analysis-framework/lenses/international.js +248 -0
- package/dist/scripts/analysis-framework/lenses/international.js.map +1 -0
- package/dist/scripts/analysis-framework/lenses/media.d.ts +29 -0
- package/dist/scripts/analysis-framework/lenses/media.d.ts.map +1 -0
- package/dist/scripts/analysis-framework/lenses/media.js +211 -0
- package/dist/scripts/analysis-framework/lenses/media.js.map +1 -0
- package/dist/scripts/analysis-framework/lenses/opposition.d.ts +29 -0
- package/dist/scripts/analysis-framework/lenses/opposition.d.ts.map +1 -0
- package/dist/scripts/analysis-framework/lenses/opposition.js +234 -0
- package/dist/scripts/analysis-framework/lenses/opposition.js.map +1 -0
- package/dist/scripts/analysis-framework/methodology-types.d.ts +309 -0
- package/dist/scripts/analysis-framework/methodology-types.d.ts.map +1 -0
- package/dist/scripts/analysis-framework/methodology-types.js +38 -0
- package/dist/scripts/analysis-framework/methodology-types.js.map +1 -0
- package/dist/scripts/analysis-framework/political-classification.d.ts +58 -0
- package/dist/scripts/analysis-framework/political-classification.d.ts.map +1 -0
- package/dist/scripts/analysis-framework/political-classification.js +414 -0
- package/dist/scripts/analysis-framework/political-classification.js.map +1 -0
- package/dist/scripts/analysis-framework/political-risk-assessment.d.ts +74 -0
- package/dist/scripts/analysis-framework/political-risk-assessment.d.ts.map +1 -0
- package/dist/scripts/analysis-framework/political-risk-assessment.js +656 -0
- package/dist/scripts/analysis-framework/political-risk-assessment.js.map +1 -0
- package/dist/scripts/analysis-framework/political-threat-analysis.d.ts +65 -0
- package/dist/scripts/analysis-framework/political-threat-analysis.d.ts.map +1 -0
- package/dist/scripts/analysis-framework/political-threat-analysis.js +553 -0
- package/dist/scripts/analysis-framework/political-threat-analysis.js.map +1 -0
- package/dist/scripts/analysis-framework/significance-scorer.d.ts +62 -0
- package/dist/scripts/analysis-framework/significance-scorer.d.ts.map +1 -0
- package/dist/scripts/analysis-framework/significance-scorer.js +196 -0
- package/dist/scripts/analysis-framework/significance-scorer.js.map +1 -0
- package/dist/scripts/analysis-framework/types.d.ts +138 -0
- package/dist/scripts/analysis-framework/types.d.ts.map +1 -0
- package/dist/scripts/analysis-framework/types.js +12 -0
- package/dist/scripts/analysis-framework/types.js.map +1 -0
- package/dist/scripts/analysis-reader.d.ts +240 -0
- package/dist/scripts/analysis-reader.d.ts.map +1 -0
- package/dist/scripts/analysis-reader.js +495 -0
- package/dist/scripts/analysis-reader.js.map +1 -0
- package/dist/scripts/article-quality-enhancer.d.ts +148 -0
- package/dist/scripts/article-quality-enhancer.d.ts.map +1 -0
- package/dist/scripts/article-quality-enhancer.js +430 -0
- package/dist/scripts/article-quality-enhancer.js.map +1 -0
- package/dist/scripts/article-template/constants.d.ts +104 -0
- package/dist/scripts/article-template/constants.d.ts.map +1 -0
- package/dist/scripts/article-template/constants.js +225 -0
- package/dist/scripts/article-template/constants.js.map +1 -0
- package/dist/scripts/article-template/helpers.d.ts +83 -0
- package/dist/scripts/article-template/helpers.d.ts.map +1 -0
- package/dist/scripts/article-template/helpers.js +236 -0
- package/dist/scripts/article-template/helpers.js.map +1 -0
- package/dist/scripts/article-template/index.d.ts +39 -0
- package/dist/scripts/article-template/index.d.ts.map +1 -0
- package/dist/scripts/article-template/index.js +37 -0
- package/dist/scripts/article-template/index.js.map +1 -0
- package/dist/scripts/article-template/registry.d.ts +64 -0
- package/dist/scripts/article-template/registry.d.ts.map +1 -0
- package/dist/scripts/article-template/registry.js +405 -0
- package/dist/scripts/article-template/registry.js.map +1 -0
- package/dist/scripts/article-template/template.d.ts +18 -0
- package/dist/scripts/article-template/template.d.ts.map +1 -0
- package/dist/scripts/article-template/template.js +359 -0
- package/dist/scripts/article-template/template.js.map +1 -0
- package/dist/scripts/article-template/types.d.ts +90 -0
- package/dist/scripts/article-template/types.d.ts.map +1 -0
- package/dist/scripts/article-template/types.js +96 -0
- package/dist/scripts/article-template/types.js.map +1 -0
- package/dist/scripts/article-template.d.ts +18 -0
- package/dist/scripts/article-template.d.ts.map +1 -0
- package/dist/scripts/article-template.js +18 -0
- package/dist/scripts/article-template.js.map +1 -0
- package/dist/scripts/catalog-downloaded-data.d.ts +66 -0
- package/dist/scripts/catalog-downloaded-data.d.ts.map +1 -0
- package/dist/scripts/catalog-downloaded-data.js +239 -0
- package/dist/scripts/catalog-downloaded-data.js.map +1 -0
- package/dist/scripts/check-cia-schema-updates.d.ts +186 -0
- package/dist/scripts/check-cia-schema-updates.d.ts.map +1 -0
- package/dist/scripts/check-cia-schema-updates.js +363 -0
- package/dist/scripts/check-cia-schema-updates.js.map +1 -0
- package/dist/scripts/data-transformers/calendar.d.ts +16 -0
- package/dist/scripts/data-transformers/calendar.d.ts.map +1 -0
- package/dist/scripts/data-transformers/calendar.js +137 -0
- package/dist/scripts/data-transformers/calendar.js.map +1 -0
- package/dist/scripts/data-transformers/constants/committee-names.d.ts +15 -0
- package/dist/scripts/data-transformers/constants/committee-names.d.ts.map +1 -0
- package/dist/scripts/data-transformers/constants/committee-names.js +30 -0
- package/dist/scripts/data-transformers/constants/committee-names.js.map +1 -0
- package/dist/scripts/data-transformers/constants/content-labels-part1.d.ts +11 -0
- package/dist/scripts/data-transformers/constants/content-labels-part1.d.ts.map +1 -0
- package/dist/scripts/data-transformers/constants/content-labels-part1.js +900 -0
- package/dist/scripts/data-transformers/constants/content-labels-part1.js.map +1 -0
- package/dist/scripts/data-transformers/constants/content-labels-part2.d.ts +11 -0
- package/dist/scripts/data-transformers/constants/content-labels-part2.d.ts.map +1 -0
- package/dist/scripts/data-transformers/constants/content-labels-part2.js +900 -0
- package/dist/scripts/data-transformers/constants/content-labels-part2.js.map +1 -0
- package/dist/scripts/data-transformers/constants/content-labels.d.ts +13 -0
- package/dist/scripts/data-transformers/constants/content-labels.d.ts.map +1 -0
- package/dist/scripts/data-transformers/constants/content-labels.js +18 -0
- package/dist/scripts/data-transformers/constants/content-labels.js.map +1 -0
- package/dist/scripts/data-transformers/constants/index.d.ts +15 -0
- package/dist/scripts/data-transformers/constants/index.d.ts.map +1 -0
- package/dist/scripts/data-transformers/constants/index.js +15 -0
- package/dist/scripts/data-transformers/constants/index.js.map +1 -0
- package/dist/scripts/data-transformers/constants/locale-map.d.ts +13 -0
- package/dist/scripts/data-transformers/constants/locale-map.d.ts.map +1 -0
- package/dist/scripts/data-transformers/constants/locale-map.js +17 -0
- package/dist/scripts/data-transformers/constants/locale-map.js.map +1 -0
- package/dist/scripts/data-transformers/constants.d.ts +14 -0
- package/dist/scripts/data-transformers/constants.d.ts.map +1 -0
- package/dist/scripts/data-transformers/constants.js +14 -0
- package/dist/scripts/data-transformers/constants.js.map +1 -0
- package/dist/scripts/data-transformers/content-generators/ai-mindmap-analyzer.d.ts +64 -0
- package/dist/scripts/data-transformers/content-generators/ai-mindmap-analyzer.d.ts.map +1 -0
- package/dist/scripts/data-transformers/content-generators/ai-mindmap-analyzer.js +805 -0
- package/dist/scripts/data-transformers/content-generators/ai-mindmap-analyzer.js.map +1 -0
- package/dist/scripts/data-transformers/content-generators/ai-swot-analyzer.d.ts +89 -0
- package/dist/scripts/data-transformers/content-generators/ai-swot-analyzer.d.ts.map +1 -0
- package/dist/scripts/data-transformers/content-generators/ai-swot-analyzer.js +667 -0
- package/dist/scripts/data-transformers/content-generators/ai-swot-analyzer.js.map +1 -0
- package/dist/scripts/data-transformers/content-generators/cia-overview-section.d.ts +50 -0
- package/dist/scripts/data-transformers/content-generators/cia-overview-section.d.ts.map +1 -0
- package/dist/scripts/data-transformers/content-generators/cia-overview-section.js +310 -0
- package/dist/scripts/data-transformers/content-generators/cia-overview-section.js.map +1 -0
- package/dist/scripts/data-transformers/content-generators/committee.d.ts +12 -0
- package/dist/scripts/data-transformers/content-generators/committee.d.ts.map +1 -0
- package/dist/scripts/data-transformers/content-generators/committee.js +247 -0
- package/dist/scripts/data-transformers/content-generators/committee.js.map +1 -0
- package/dist/scripts/data-transformers/content-generators/dashboard-section.d.ts +124 -0
- package/dist/scripts/data-transformers/content-generators/dashboard-section.d.ts.map +1 -0
- package/dist/scripts/data-transformers/content-generators/dashboard-section.js +564 -0
- package/dist/scripts/data-transformers/content-generators/dashboard-section.js.map +1 -0
- package/dist/scripts/data-transformers/content-generators/economic-dashboard-section.d.ts +82 -0
- package/dist/scripts/data-transformers/content-generators/economic-dashboard-section.d.ts.map +1 -0
- package/dist/scripts/data-transformers/content-generators/economic-dashboard-section.js +321 -0
- package/dist/scripts/data-transformers/content-generators/economic-dashboard-section.js.map +1 -0
- package/dist/scripts/data-transformers/content-generators/generic.d.ts +12 -0
- package/dist/scripts/data-transformers/content-generators/generic.d.ts.map +1 -0
- package/dist/scripts/data-transformers/content-generators/generic.js +295 -0
- package/dist/scripts/data-transformers/content-generators/generic.js.map +1 -0
- package/dist/scripts/data-transformers/content-generators/index.d.ts +56 -0
- package/dist/scripts/data-transformers/content-generators/index.d.ts.map +1 -0
- package/dist/scripts/data-transformers/content-generators/index.js +45 -0
- package/dist/scripts/data-transformers/content-generators/index.js.map +1 -0
- package/dist/scripts/data-transformers/content-generators/interpellations.d.ts +12 -0
- package/dist/scripts/data-transformers/content-generators/interpellations.d.ts.map +1 -0
- package/dist/scripts/data-transformers/content-generators/interpellations.js +124 -0
- package/dist/scripts/data-transformers/content-generators/interpellations.js.map +1 -0
- package/dist/scripts/data-transformers/content-generators/mindmap-section.d.ts +137 -0
- package/dist/scripts/data-transformers/content-generators/mindmap-section.d.ts.map +1 -0
- package/dist/scripts/data-transformers/content-generators/mindmap-section.js +286 -0
- package/dist/scripts/data-transformers/content-generators/mindmap-section.js.map +1 -0
- package/dist/scripts/data-transformers/content-generators/month-ahead.d.ts +17 -0
- package/dist/scripts/data-transformers/content-generators/month-ahead.d.ts.map +1 -0
- package/dist/scripts/data-transformers/content-generators/month-ahead.js +212 -0
- package/dist/scripts/data-transformers/content-generators/month-ahead.js.map +1 -0
- package/dist/scripts/data-transformers/content-generators/monthly-review.d.ts +17 -0
- package/dist/scripts/data-transformers/content-generators/monthly-review.d.ts.map +1 -0
- package/dist/scripts/data-transformers/content-generators/monthly-review.js +173 -0
- package/dist/scripts/data-transformers/content-generators/monthly-review.js.map +1 -0
- package/dist/scripts/data-transformers/content-generators/motions.d.ts +12 -0
- package/dist/scripts/data-transformers/content-generators/motions.d.ts.map +1 -0
- package/dist/scripts/data-transformers/content-generators/motions.js +158 -0
- package/dist/scripts/data-transformers/content-generators/motions.js.map +1 -0
- package/dist/scripts/data-transformers/content-generators/newsworthiness.d.ts +52 -0
- package/dist/scripts/data-transformers/content-generators/newsworthiness.d.ts.map +1 -0
- package/dist/scripts/data-transformers/content-generators/newsworthiness.js +244 -0
- package/dist/scripts/data-transformers/content-generators/newsworthiness.js.map +1 -0
- package/dist/scripts/data-transformers/content-generators/propositions.d.ts +12 -0
- package/dist/scripts/data-transformers/content-generators/propositions.d.ts.map +1 -0
- package/dist/scripts/data-transformers/content-generators/propositions.js +263 -0
- package/dist/scripts/data-transformers/content-generators/propositions.js.map +1 -0
- package/dist/scripts/data-transformers/content-generators/sankey-section.d.ts +92 -0
- package/dist/scripts/data-transformers/content-generators/sankey-section.d.ts.map +1 -0
- package/dist/scripts/data-transformers/content-generators/sankey-section.js +257 -0
- package/dist/scripts/data-transformers/content-generators/sankey-section.js.map +1 -0
- package/dist/scripts/data-transformers/content-generators/shared.d.ts +81 -0
- package/dist/scripts/data-transformers/content-generators/shared.d.ts.map +1 -0
- package/dist/scripts/data-transformers/content-generators/shared.js +913 -0
- package/dist/scripts/data-transformers/content-generators/shared.js.map +1 -0
- package/dist/scripts/data-transformers/content-generators/stakeholder-swot-section.d.ts +83 -0
- package/dist/scripts/data-transformers/content-generators/stakeholder-swot-section.d.ts.map +1 -0
- package/dist/scripts/data-transformers/content-generators/stakeholder-swot-section.js +219 -0
- package/dist/scripts/data-transformers/content-generators/stakeholder-swot-section.js.map +1 -0
- package/dist/scripts/data-transformers/content-generators/swot-section.d.ts +50 -0
- package/dist/scripts/data-transformers/content-generators/swot-section.d.ts.map +1 -0
- package/dist/scripts/data-transformers/content-generators/swot-section.js +177 -0
- package/dist/scripts/data-transformers/content-generators/swot-section.js.map +1 -0
- package/dist/scripts/data-transformers/content-generators/week-ahead.d.ts +12 -0
- package/dist/scripts/data-transformers/content-generators/week-ahead.d.ts.map +1 -0
- package/dist/scripts/data-transformers/content-generators/week-ahead.js +332 -0
- package/dist/scripts/data-transformers/content-generators/week-ahead.js.map +1 -0
- package/dist/scripts/data-transformers/content-generators.d.ts +15 -0
- package/dist/scripts/data-transformers/content-generators.d.ts.map +1 -0
- package/dist/scripts/data-transformers/content-generators.js +14 -0
- package/dist/scripts/data-transformers/content-generators.js.map +1 -0
- package/dist/scripts/data-transformers/document-analysis.d.ts +58 -0
- package/dist/scripts/data-transformers/document-analysis.d.ts.map +1 -0
- package/dist/scripts/data-transformers/document-analysis.js +396 -0
- package/dist/scripts/data-transformers/document-analysis.js.map +1 -0
- package/dist/scripts/data-transformers/helpers.d.ts +144 -0
- package/dist/scripts/data-transformers/helpers.d.ts.map +1 -0
- package/dist/scripts/data-transformers/helpers.js +408 -0
- package/dist/scripts/data-transformers/helpers.js.map +1 -0
- package/dist/scripts/data-transformers/index.d.ts +45 -0
- package/dist/scripts/data-transformers/index.d.ts.map +1 -0
- package/dist/scripts/data-transformers/index.js +66 -0
- package/dist/scripts/data-transformers/index.js.map +1 -0
- package/dist/scripts/data-transformers/metadata.d.ts +42 -0
- package/dist/scripts/data-transformers/metadata.d.ts.map +1 -0
- package/dist/scripts/data-transformers/metadata.js +385 -0
- package/dist/scripts/data-transformers/metadata.js.map +1 -0
- package/dist/scripts/data-transformers/policy-analysis.d.ts +105 -0
- package/dist/scripts/data-transformers/policy-analysis.d.ts.map +1 -0
- package/dist/scripts/data-transformers/policy-analysis.js +686 -0
- package/dist/scripts/data-transformers/policy-analysis.js.map +1 -0
- package/dist/scripts/data-transformers/risk-analysis.d.ts +104 -0
- package/dist/scripts/data-transformers/risk-analysis.d.ts.map +1 -0
- package/dist/scripts/data-transformers/risk-analysis.js +279 -0
- package/dist/scripts/data-transformers/risk-analysis.js.map +1 -0
- package/dist/scripts/data-transformers/types.d.ts +260 -0
- package/dist/scripts/data-transformers/types.d.ts.map +1 -0
- package/dist/scripts/data-transformers/types.js +11 -0
- package/dist/scripts/data-transformers/types.js.map +1 -0
- package/dist/scripts/data-transformers.d.ts +23 -0
- package/dist/scripts/data-transformers.d.ts.map +1 -0
- package/dist/scripts/data-transformers.js +35 -0
- package/dist/scripts/data-transformers.js.map +1 -0
- package/dist/scripts/deep-inspection/index.d.ts +55 -0
- package/dist/scripts/deep-inspection/index.d.ts.map +1 -0
- package/dist/scripts/deep-inspection/index.js +66 -0
- package/dist/scripts/deep-inspection/index.js.map +1 -0
- package/dist/scripts/detect-swedish-leakage.d.ts +69 -0
- package/dist/scripts/detect-swedish-leakage.d.ts.map +1 -0
- package/dist/scripts/detect-swedish-leakage.js +417 -0
- package/dist/scripts/detect-swedish-leakage.js.map +1 -0
- package/dist/scripts/editorial-framework.d.ts +121 -0
- package/dist/scripts/editorial-framework.d.ts.map +1 -0
- package/dist/scripts/editorial-framework.js +364 -0
- package/dist/scripts/editorial-framework.js.map +1 -0
- package/dist/scripts/editorial-pillars.d.ts +43 -0
- package/dist/scripts/editorial-pillars.d.ts.map +1 -0
- package/dist/scripts/editorial-pillars.js +215 -0
- package/dist/scripts/editorial-pillars.js.map +1 -0
- package/dist/scripts/extract-news-metadata.d.ts +12 -0
- package/dist/scripts/extract-news-metadata.d.ts.map +1 -0
- package/dist/scripts/extract-news-metadata.js +107 -0
- package/dist/scripts/extract-news-metadata.js.map +1 -0
- package/dist/scripts/extract-vocabulary.d.ts +15 -0
- package/dist/scripts/extract-vocabulary.d.ts.map +1 -0
- package/dist/scripts/extract-vocabulary.js +255 -0
- package/dist/scripts/extract-vocabulary.js.map +1 -0
- package/dist/scripts/fix-article-navigation.d.ts +37 -0
- package/dist/scripts/fix-article-navigation.d.ts.map +1 -0
- package/dist/scripts/fix-article-navigation.js +198 -0
- package/dist/scripts/fix-article-navigation.js.map +1 -0
- package/dist/scripts/fix-keywords-localization.d.ts +18 -0
- package/dist/scripts/fix-keywords-localization.d.ts.map +1 -0
- package/dist/scripts/fix-keywords-localization.js +270 -0
- package/dist/scripts/fix-keywords-localization.js.map +1 -0
- package/dist/scripts/fix-old-articles-branding.d.ts +17 -0
- package/dist/scripts/fix-old-articles-branding.d.ts.map +1 -0
- package/dist/scripts/fix-old-articles-branding.js +229 -0
- package/dist/scripts/fix-old-articles-branding.js.map +1 -0
- package/dist/scripts/generate-news-backport.d.ts +16 -0
- package/dist/scripts/generate-news-backport.d.ts.map +1 -0
- package/dist/scripts/generate-news-backport.js +379 -0
- package/dist/scripts/generate-news-backport.js.map +1 -0
- package/dist/scripts/generate-news-enhanced/ai-analysis-pipeline.d.ts +124 -0
- package/dist/scripts/generate-news-enhanced/ai-analysis-pipeline.d.ts.map +1 -0
- package/dist/scripts/generate-news-enhanced/ai-analysis-pipeline.js +529 -0
- package/dist/scripts/generate-news-enhanced/ai-analysis-pipeline.js.map +1 -0
- package/dist/scripts/generate-news-enhanced/analysis-cache.d.ts +59 -0
- package/dist/scripts/generate-news-enhanced/analysis-cache.d.ts.map +1 -0
- package/dist/scripts/generate-news-enhanced/analysis-cache.js +116 -0
- package/dist/scripts/generate-news-enhanced/analysis-cache.js.map +1 -0
- package/dist/scripts/generate-news-enhanced/analysis-labels.d.ts +58 -0
- package/dist/scripts/generate-news-enhanced/analysis-labels.d.ts.map +1 -0
- package/dist/scripts/generate-news-enhanced/analysis-labels.js +144 -0
- package/dist/scripts/generate-news-enhanced/analysis-labels.js.map +1 -0
- package/dist/scripts/generate-news-enhanced/config.d.ts +57 -0
- package/dist/scripts/generate-news-enhanced/config.d.ts.map +1 -0
- package/dist/scripts/generate-news-enhanced/config.js +286 -0
- package/dist/scripts/generate-news-enhanced/config.js.map +1 -0
- package/dist/scripts/generate-news-enhanced/generators.d.ts +119 -0
- package/dist/scripts/generate-news-enhanced/generators.d.ts.map +1 -0
- package/dist/scripts/generate-news-enhanced/generators.js +2108 -0
- package/dist/scripts/generate-news-enhanced/generators.js.map +1 -0
- package/dist/scripts/generate-news-enhanced/helpers.d.ts +123 -0
- package/dist/scripts/generate-news-enhanced/helpers.d.ts.map +1 -0
- package/dist/scripts/generate-news-enhanced/helpers.js +438 -0
- package/dist/scripts/generate-news-enhanced/helpers.js.map +1 -0
- package/dist/scripts/generate-news-enhanced/index.d.ts +19 -0
- package/dist/scripts/generate-news-enhanced/index.d.ts.map +1 -0
- package/dist/scripts/generate-news-enhanced/index.js +221 -0
- package/dist/scripts/generate-news-enhanced/index.js.map +1 -0
- package/dist/scripts/generate-news-enhanced/swot-analyzer.d.ts +35 -0
- package/dist/scripts/generate-news-enhanced/swot-analyzer.d.ts.map +1 -0
- package/dist/scripts/generate-news-enhanced/swot-analyzer.js +1179 -0
- package/dist/scripts/generate-news-enhanced/swot-analyzer.js.map +1 -0
- package/dist/scripts/generate-news-enhanced/types.d.ts +34 -0
- package/dist/scripts/generate-news-enhanced/types.d.ts.map +1 -0
- package/dist/scripts/generate-news-enhanced/types.js +9 -0
- package/dist/scripts/generate-news-enhanced/types.js.map +1 -0
- package/dist/scripts/generate-news-enhanced.d.ts +25 -0
- package/dist/scripts/generate-news-enhanced.d.ts.map +1 -0
- package/dist/scripts/generate-news-enhanced.js +37 -0
- package/dist/scripts/generate-news-enhanced.js.map +1 -0
- package/dist/scripts/generate-news-indexes/constants.d.ts +20 -0
- package/dist/scripts/generate-news-indexes/constants.d.ts.map +1 -0
- package/dist/scripts/generate-news-indexes/constants.js +308 -0
- package/dist/scripts/generate-news-indexes/constants.js.map +1 -0
- package/dist/scripts/generate-news-indexes/helpers.d.ts +73 -0
- package/dist/scripts/generate-news-indexes/helpers.d.ts.map +1 -0
- package/dist/scripts/generate-news-indexes/helpers.js +352 -0
- package/dist/scripts/generate-news-indexes/helpers.js.map +1 -0
- package/dist/scripts/generate-news-indexes/index.d.ts +20 -0
- package/dist/scripts/generate-news-indexes/index.d.ts.map +1 -0
- package/dist/scripts/generate-news-indexes/index.js +75 -0
- package/dist/scripts/generate-news-indexes/index.js.map +1 -0
- package/dist/scripts/generate-news-indexes/template.d.ts +25 -0
- package/dist/scripts/generate-news-indexes/template.d.ts.map +1 -0
- package/dist/scripts/generate-news-indexes/template.js +644 -0
- package/dist/scripts/generate-news-indexes/template.js.map +1 -0
- package/dist/scripts/generate-news-indexes/types.d.ts +96 -0
- package/dist/scripts/generate-news-indexes/types.d.ts.map +1 -0
- package/dist/scripts/generate-news-indexes/types.js +9 -0
- package/dist/scripts/generate-news-indexes/types.js.map +1 -0
- package/dist/scripts/generate-news-indexes.d.ts +20 -0
- package/dist/scripts/generate-news-indexes.d.ts.map +1 -0
- package/dist/scripts/generate-news-indexes.js +19 -0
- package/dist/scripts/generate-news-indexes.js.map +1 -0
- package/dist/scripts/generate-rss.d.ts +48 -0
- package/dist/scripts/generate-rss.d.ts.map +1 -0
- package/dist/scripts/generate-rss.js +299 -0
- package/dist/scripts/generate-rss.js.map +1 -0
- package/dist/scripts/generate-sitemap-html.d.ts +79 -0
- package/dist/scripts/generate-sitemap-html.d.ts.map +1 -0
- package/dist/scripts/generate-sitemap-html.js +878 -0
- package/dist/scripts/generate-sitemap-html.js.map +1 -0
- package/dist/scripts/generate-sitemap.d.ts +23 -0
- package/dist/scripts/generate-sitemap.d.ts.map +1 -0
- package/dist/scripts/generate-sitemap.js +476 -0
- package/dist/scripts/generate-sitemap.js.map +1 -0
- package/dist/scripts/generate-types-from-cia-schemas.d.ts +176 -0
- package/dist/scripts/generate-types-from-cia-schemas.d.ts.map +1 -0
- package/dist/scripts/generate-types-from-cia-schemas.js +318 -0
- package/dist/scripts/generate-types-from-cia-schemas.js.map +1 -0
- package/dist/scripts/government-role-validator.d.ts +65 -0
- package/dist/scripts/government-role-validator.d.ts.map +1 -0
- package/dist/scripts/government-role-validator.js +217 -0
- package/dist/scripts/government-role-validator.js.map +1 -0
- package/dist/scripts/html-utils.d.ts +17 -0
- package/dist/scripts/html-utils.d.ts.map +1 -0
- package/dist/scripts/html-utils.js +29 -0
- package/dist/scripts/html-utils.js.map +1 -0
- package/dist/scripts/load-cia-stats.d.ts +89 -0
- package/dist/scripts/load-cia-stats.d.ts.map +1 -0
- package/dist/scripts/load-cia-stats.js +400 -0
- package/dist/scripts/load-cia-stats.js.map +1 -0
- package/dist/scripts/mcp-client/client.d.ts +73 -0
- package/dist/scripts/mcp-client/client.d.ts.map +1 -0
- package/dist/scripts/mcp-client/client.js +526 -0
- package/dist/scripts/mcp-client/client.js.map +1 -0
- package/dist/scripts/mcp-client/document-types.d.ts +23 -0
- package/dist/scripts/mcp-client/document-types.d.ts.map +1 -0
- package/dist/scripts/mcp-client/document-types.js +62 -0
- package/dist/scripts/mcp-client/document-types.js.map +1 -0
- package/dist/scripts/mcp-client/index.d.ts +34 -0
- package/dist/scripts/mcp-client/index.d.ts.map +1 -0
- package/dist/scripts/mcp-client/index.js +67 -0
- package/dist/scripts/mcp-client/index.js.map +1 -0
- package/dist/scripts/mcp-client/transport.d.ts +32 -0
- package/dist/scripts/mcp-client/transport.d.ts.map +1 -0
- package/dist/scripts/mcp-client/transport.js +102 -0
- package/dist/scripts/mcp-client/transport.js.map +1 -0
- package/dist/scripts/mcp-client.d.ts +18 -0
- package/dist/scripts/mcp-client.d.ts.map +1 -0
- package/dist/scripts/mcp-client.js +18 -0
- package/dist/scripts/mcp-client.js.map +1 -0
- package/dist/scripts/mcp-query-cli.d.ts +25 -0
- package/dist/scripts/mcp-query-cli.d.ts.map +1 -0
- package/dist/scripts/mcp-query-cli.js +66 -0
- package/dist/scripts/mcp-query-cli.js.map +1 -0
- package/dist/scripts/news-types/breaking-news.d.ts +178 -0
- package/dist/scripts/news-types/breaking-news.d.ts.map +1 -0
- package/dist/scripts/news-types/breaking-news.js +428 -0
- package/dist/scripts/news-types/breaking-news.js.map +1 -0
- package/dist/scripts/news-types/committee-reports.d.ts +212 -0
- package/dist/scripts/news-types/committee-reports.d.ts.map +1 -0
- package/dist/scripts/news-types/committee-reports.js +404 -0
- package/dist/scripts/news-types/committee-reports.js.map +1 -0
- package/dist/scripts/news-types/month-ahead.d.ts +71 -0
- package/dist/scripts/news-types/month-ahead.d.ts.map +1 -0
- package/dist/scripts/news-types/month-ahead.js +392 -0
- package/dist/scripts/news-types/month-ahead.js.map +1 -0
- package/dist/scripts/news-types/monthly-review.d.ts +61 -0
- package/dist/scripts/news-types/monthly-review.d.ts.map +1 -0
- package/dist/scripts/news-types/monthly-review.js +417 -0
- package/dist/scripts/news-types/monthly-review.js.map +1 -0
- package/dist/scripts/news-types/motions.d.ts +214 -0
- package/dist/scripts/news-types/motions.d.ts.map +1 -0
- package/dist/scripts/news-types/motions.js +447 -0
- package/dist/scripts/news-types/motions.js.map +1 -0
- package/dist/scripts/news-types/propositions.d.ts +204 -0
- package/dist/scripts/news-types/propositions.d.ts.map +1 -0
- package/dist/scripts/news-types/propositions.js +401 -0
- package/dist/scripts/news-types/propositions.js.map +1 -0
- package/dist/scripts/news-types/week-ahead.d.ts +231 -0
- package/dist/scripts/news-types/week-ahead.d.ts.map +1 -0
- package/dist/scripts/news-types/week-ahead.js +441 -0
- package/dist/scripts/news-types/week-ahead.js.map +1 -0
- package/dist/scripts/news-types/weekly-review/analysis.d.ts +47 -0
- package/dist/scripts/news-types/weekly-review/analysis.d.ts.map +1 -0
- package/dist/scripts/news-types/weekly-review/analysis.js +276 -0
- package/dist/scripts/news-types/weekly-review/analysis.js.map +1 -0
- package/dist/scripts/news-types/weekly-review/data-loader.d.ts +51 -0
- package/dist/scripts/news-types/weekly-review/data-loader.d.ts.map +1 -0
- package/dist/scripts/news-types/weekly-review/data-loader.js +298 -0
- package/dist/scripts/news-types/weekly-review/data-loader.js.map +1 -0
- package/dist/scripts/news-types/weekly-review/generator.d.ts +18 -0
- package/dist/scripts/news-types/weekly-review/generator.d.ts.map +1 -0
- package/dist/scripts/news-types/weekly-review/generator.js +284 -0
- package/dist/scripts/news-types/weekly-review/generator.js.map +1 -0
- package/dist/scripts/news-types/weekly-review/index.d.ts +20 -0
- package/dist/scripts/news-types/weekly-review/index.d.ts.map +1 -0
- package/dist/scripts/news-types/weekly-review/index.js +23 -0
- package/dist/scripts/news-types/weekly-review/index.js.map +1 -0
- package/dist/scripts/news-types/weekly-review/types.d.ts +72 -0
- package/dist/scripts/news-types/weekly-review/types.d.ts.map +1 -0
- package/dist/scripts/news-types/weekly-review/types.js +20 -0
- package/dist/scripts/news-types/weekly-review/types.js.map +1 -0
- package/dist/scripts/news-types/weekly-review/validation.d.ts +10 -0
- package/dist/scripts/news-types/weekly-review/validation.d.ts.map +1 -0
- package/dist/scripts/news-types/weekly-review/validation.js +95 -0
- package/dist/scripts/news-types/weekly-review/validation.js.map +1 -0
- package/dist/scripts/news-types/weekly-review.d.ts +15 -0
- package/dist/scripts/news-types/weekly-review.d.ts.map +1 -0
- package/dist/scripts/news-types/weekly-review.js +14 -0
- package/dist/scripts/news-types/weekly-review.js.map +1 -0
- package/dist/scripts/party-variants.d.ts +23 -0
- package/dist/scripts/party-variants.d.ts.map +1 -0
- package/dist/scripts/party-variants.js +50 -0
- package/dist/scripts/party-variants.js.map +1 -0
- package/dist/scripts/pipeline/index.d.ts +19 -0
- package/dist/scripts/pipeline/index.d.ts.map +1 -0
- package/dist/scripts/pipeline/index.js +17 -0
- package/dist/scripts/pipeline/index.js.map +1 -0
- package/dist/scripts/pipeline/orchestrator.d.ts +56 -0
- package/dist/scripts/pipeline/orchestrator.d.ts.map +1 -0
- package/dist/scripts/pipeline/orchestrator.js +147 -0
- package/dist/scripts/pipeline/orchestrator.js.map +1 -0
- package/dist/scripts/pipeline/types.d.ts +117 -0
- package/dist/scripts/pipeline/types.d.ts.map +1 -0
- package/dist/scripts/pipeline/types.js +13 -0
- package/dist/scripts/pipeline/types.js.map +1 -0
- package/dist/scripts/pipeline/validation.d.ts +66 -0
- package/dist/scripts/pipeline/validation.d.ts.map +1 -0
- package/dist/scripts/pipeline/validation.js +129 -0
- package/dist/scripts/pipeline/validation.js.map +1 -0
- package/dist/scripts/populate-analysis-data.d.ts +41 -0
- package/dist/scripts/populate-analysis-data.d.ts.map +1 -0
- package/dist/scripts/populate-analysis-data.js +255 -0
- package/dist/scripts/populate-analysis-data.js.map +1 -0
- package/dist/scripts/pre-article-analysis/data-downloader.d.ts +80 -0
- package/dist/scripts/pre-article-analysis/data-downloader.d.ts.map +1 -0
- package/dist/scripts/pre-article-analysis/data-downloader.js +230 -0
- package/dist/scripts/pre-article-analysis/data-downloader.js.map +1 -0
- package/dist/scripts/pre-article-analysis/data-persistence.d.ts +141 -0
- package/dist/scripts/pre-article-analysis/data-persistence.d.ts.map +1 -0
- package/dist/scripts/pre-article-analysis/data-persistence.js +345 -0
- package/dist/scripts/pre-article-analysis/data-persistence.js.map +1 -0
- package/dist/scripts/pre-article-analysis/markdown-serializer.d.ts +95 -0
- package/dist/scripts/pre-article-analysis/markdown-serializer.d.ts.map +1 -0
- package/dist/scripts/pre-article-analysis/markdown-serializer.js +648 -0
- package/dist/scripts/pre-article-analysis/markdown-serializer.js.map +1 -0
- package/dist/scripts/pre-article-analysis/pdf-converter.d.ts +58 -0
- package/dist/scripts/pre-article-analysis/pdf-converter.d.ts.map +1 -0
- package/dist/scripts/pre-article-analysis/pdf-converter.js +142 -0
- package/dist/scripts/pre-article-analysis/pdf-converter.js.map +1 -0
- package/dist/scripts/pre-article-analysis.d.ts +41 -0
- package/dist/scripts/pre-article-analysis.d.ts.map +1 -0
- package/dist/scripts/pre-article-analysis.js +578 -0
- package/dist/scripts/pre-article-analysis.js.map +1 -0
- package/dist/scripts/scb-client.d.ts +104 -0
- package/dist/scripts/scb-client.d.ts.map +1 -0
- package/dist/scripts/scb-client.js +286 -0
- package/dist/scripts/scb-client.js.map +1 -0
- package/dist/scripts/scb-context.d.ts +88 -0
- package/dist/scripts/scb-context.d.ts.map +1 -0
- package/dist/scripts/scb-context.js +307 -0
- package/dist/scripts/scb-context.js.map +1 -0
- package/dist/scripts/shared/version.d.ts +9 -0
- package/dist/scripts/shared/version.d.ts.map +1 -0
- package/dist/scripts/shared/version.js +28 -0
- package/dist/scripts/shared/version.js.map +1 -0
- package/dist/scripts/statistical-claims-detector.d.ts +119 -0
- package/dist/scripts/statistical-claims-detector.d.ts.map +1 -0
- package/dist/scripts/statistical-claims-detector.js +391 -0
- package/dist/scripts/statistical-claims-detector.js.map +1 -0
- package/dist/scripts/sync-cia-schemas.d.ts +52 -0
- package/dist/scripts/sync-cia-schemas.d.ts.map +1 -0
- package/dist/scripts/sync-cia-schemas.js +195 -0
- package/dist/scripts/sync-cia-schemas.js.map +1 -0
- package/dist/scripts/translation-dictionary.d.ts +45 -0
- package/dist/scripts/translation-dictionary.d.ts.map +1 -0
- package/dist/scripts/translation-dictionary.js +3642 -0
- package/dist/scripts/translation-dictionary.js.map +1 -0
- package/dist/scripts/types/article.d.ts +362 -0
- package/dist/scripts/types/article.d.ts.map +1 -0
- package/dist/scripts/types/article.js +6 -0
- package/dist/scripts/types/article.js.map +1 -0
- package/dist/scripts/types/content.d.ts +167 -0
- package/dist/scripts/types/content.d.ts.map +1 -0
- package/dist/scripts/types/content.js +6 -0
- package/dist/scripts/types/content.js.map +1 -0
- package/dist/scripts/types/editorial.d.ts +17 -0
- package/dist/scripts/types/editorial.d.ts.map +1 -0
- package/dist/scripts/types/editorial.js +6 -0
- package/dist/scripts/types/editorial.js.map +1 -0
- package/dist/scripts/types/language.d.ts +7 -0
- package/dist/scripts/types/language.d.ts.map +1 -0
- package/dist/scripts/types/language.js +6 -0
- package/dist/scripts/types/language.js.map +1 -0
- package/dist/scripts/types/mcp.d.ts +117 -0
- package/dist/scripts/types/mcp.d.ts.map +1 -0
- package/dist/scripts/types/mcp.js +6 -0
- package/dist/scripts/types/mcp.js.map +1 -0
- package/dist/scripts/types/party.d.ts +9 -0
- package/dist/scripts/types/party.d.ts.map +1 -0
- package/dist/scripts/types/party.js +6 -0
- package/dist/scripts/types/party.js.map +1 -0
- package/dist/scripts/types/validation.d.ts +136 -0
- package/dist/scripts/types/validation.d.ts.map +1 -0
- package/dist/scripts/types/validation.js +6 -0
- package/dist/scripts/types/validation.js.map +1 -0
- package/dist/scripts/types/workflow.d.ts +78 -0
- package/dist/scripts/types/workflow.d.ts.map +1 -0
- package/dist/scripts/types/workflow.js +6 -0
- package/dist/scripts/types/workflow.js.map +1 -0
- package/dist/scripts/update-stats-from-cia.d.ts +44 -0
- package/dist/scripts/update-stats-from-cia.d.ts.map +1 -0
- package/dist/scripts/update-stats-from-cia.js +310 -0
- package/dist/scripts/update-stats-from-cia.js.map +1 -0
- package/dist/scripts/validate-against-cia-schemas.d.ts +126 -0
- package/dist/scripts/validate-against-cia-schemas.d.ts.map +1 -0
- package/dist/scripts/validate-against-cia-schemas.js +299 -0
- package/dist/scripts/validate-against-cia-schemas.js.map +1 -0
- package/dist/scripts/validate-cross-references.d.ts +49 -0
- package/dist/scripts/validate-cross-references.d.ts.map +1 -0
- package/dist/scripts/validate-cross-references.js +183 -0
- package/dist/scripts/validate-cross-references.js.map +1 -0
- package/dist/scripts/validate-file-ownership.d.ts +68 -0
- package/dist/scripts/validate-file-ownership.d.ts.map +1 -0
- package/dist/scripts/validate-file-ownership.js +135 -0
- package/dist/scripts/validate-file-ownership.js.map +1 -0
- package/dist/scripts/validate-news-translations.d.ts +27 -0
- package/dist/scripts/validate-news-translations.d.ts.map +1 -0
- package/dist/scripts/validate-news-translations.js +258 -0
- package/dist/scripts/validate-news-translations.js.map +1 -0
- package/dist/scripts/validate-translations.d.ts +162 -0
- package/dist/scripts/validate-translations.d.ts.map +1 -0
- package/dist/scripts/validate-translations.js +378 -0
- package/dist/scripts/validate-translations.js.map +1 -0
- package/dist/scripts/workflow-state-coordinator.d.ts +354 -0
- package/dist/scripts/workflow-state-coordinator.d.ts.map +1 -0
- package/dist/scripts/workflow-state-coordinator.js +876 -0
- package/dist/scripts/workflow-state-coordinator.js.map +1 -0
- package/dist/scripts/world-bank-client.d.ts +122 -0
- package/dist/scripts/world-bank-client.d.ts.map +1 -0
- package/dist/scripts/world-bank-client.js +192 -0
- package/dist/scripts/world-bank-client.js.map +1 -0
- package/dist/scripts/world-bank-context.d.ts +88 -0
- package/dist/scripts/world-bank-context.d.ts.map +1 -0
- package/dist/scripts/world-bank-context.js +331 -0
- package/dist/scripts/world-bank-context.js.map +1 -0
- package/package.json +32 -7
- package/dist/lib/chart-factory.d.ts.map +0 -1
- package/dist/lib/chart-factory.js.map +0 -1
- package/dist/lib/data-loader.d.ts.map +0 -1
- package/dist/lib/data-loader.js.map +0 -1
- package/dist/lib/dom-utils.d.ts.map +0 -1
- package/dist/lib/dom-utils.js.map +0 -1
- package/dist/lib/error-boundary.d.ts.map +0 -1
- package/dist/lib/error-boundary.js.map +0 -1
- package/dist/lib/fallback-ui.d.ts.map +0 -1
- package/dist/lib/fallback-ui.js.map +0 -1
- package/dist/lib/index.d.ts.map +0 -1
- package/dist/lib/index.js.map +0 -1
- package/dist/lib/logger.d.ts.map +0 -1
- package/dist/lib/logger.js.map +0 -1
- package/dist/lib/theme.d.ts.map +0 -1
- package/dist/lib/theme.js.map +0 -1
- package/dist/lib/types.d.ts.map +0 -1
- package/dist/lib/types.js.map +0 -1
- /package/dist/lib/{chart-factory.d.ts → shared/chart-factory.d.ts} +0 -0
- /package/dist/lib/{chart-factory.js → shared/chart-factory.js} +0 -0
- /package/dist/lib/{data-loader.d.ts → shared/data-loader.d.ts} +0 -0
- /package/dist/lib/{data-loader.js → shared/data-loader.js} +0 -0
- /package/dist/lib/{dom-utils.d.ts → shared/dom-utils.d.ts} +0 -0
- /package/dist/lib/{dom-utils.js → shared/dom-utils.js} +0 -0
- /package/dist/lib/{error-boundary.d.ts → shared/error-boundary.d.ts} +0 -0
- /package/dist/lib/{error-boundary.js → shared/error-boundary.js} +0 -0
- /package/dist/lib/{fallback-ui.d.ts → shared/fallback-ui.d.ts} +0 -0
- /package/dist/lib/{fallback-ui.js → shared/fallback-ui.js} +0 -0
- /package/dist/lib/{index.d.ts → shared/index.d.ts} +0 -0
- /package/dist/lib/{index.js → shared/index.js} +0 -0
- /package/dist/lib/{logger.d.ts → shared/logger.d.ts} +0 -0
- /package/dist/lib/{logger.js → shared/logger.js} +0 -0
- /package/dist/lib/{theme.d.ts → shared/theme.d.ts} +0 -0
- /package/dist/lib/{theme.js → shared/theme.js} +0 -0
- /package/dist/lib/{types.d.ts → shared/types.d.ts} +0 -0
- /package/dist/lib/{types.js → shared/types.js} +0 -0
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module ai-analysis/coalition-detector
|
|
3
|
+
* @description Heuristic-based coalition tension estimator using document-type mix for the AI analysis pipeline.
|
|
4
|
+
*
|
|
5
|
+
* Analyses the composition of a document set by classifying documents into
|
|
6
|
+
* government-aligned types (e.g. propositions, laws, government communications)
|
|
7
|
+
* and opposition challenge types (e.g. motions, interpellations) based solely
|
|
8
|
+
* on their document type codes. Tension is derived from the ratio of
|
|
9
|
+
* opposition challenge documents to all political documents (government +
|
|
10
|
+
* opposition; committee reports excluded).
|
|
11
|
+
*
|
|
12
|
+
* This is a coarse document-type-based heuristic and does not use party or
|
|
13
|
+
* member-level metadata to model individual parties, coalitions, or detailed
|
|
14
|
+
* convergence/divergence patterns.
|
|
15
|
+
*
|
|
16
|
+
* Implements the `CoalitionTensionDetector` interface so it can be swapped
|
|
17
|
+
* for a higher-fidelity, possibly LLM-backed implementation in the future.
|
|
18
|
+
*
|
|
19
|
+
* @author Hack23 AB
|
|
20
|
+
* @license Apache-2.0
|
|
21
|
+
*/
|
|
22
|
+
// ---------------------------------------------------------------------------
|
|
23
|
+
// Document classification helpers
|
|
24
|
+
// ---------------------------------------------------------------------------
|
|
25
|
+
/**
|
|
26
|
+
* Normalise document type string for comparison.
|
|
27
|
+
*
|
|
28
|
+
* Precedence (aligned with pipeline.normalizedDocType / pipeline.docType):
|
|
29
|
+
* 1. `doktyp` — the primary Riksdag document-type code
|
|
30
|
+
* 2. `documentType` — alternative type string used in some data sources
|
|
31
|
+
* 3. SFS-by-name — inferred from `dokumentnamn`, `titel`, or `title`
|
|
32
|
+
* prefix when both type fields are empty
|
|
33
|
+
*
|
|
34
|
+
* Keeping the same order avoids classification divergence between the
|
|
35
|
+
* coalition detector and the main pipeline.
|
|
36
|
+
*/
|
|
37
|
+
function docType(d) {
|
|
38
|
+
// 1. Prefer explicit doktyp when present
|
|
39
|
+
if (d.doktyp && d.doktyp.trim() !== '') {
|
|
40
|
+
return d.doktyp.toLowerCase().trim();
|
|
41
|
+
}
|
|
42
|
+
// 2. Fall back to documentType (mirrors pipeline.docType precedence)
|
|
43
|
+
if (d.documentType && d.documentType.trim() !== '') {
|
|
44
|
+
return d.documentType.toLowerCase().trim();
|
|
45
|
+
}
|
|
46
|
+
// 3. Infer SFS from document name fields (mirrors pipeline.isSfsDoc)
|
|
47
|
+
const nameFallback = d.dokumentnamn ?? d.titel ?? d.title ?? '';
|
|
48
|
+
if (nameFallback.toUpperCase().startsWith('SFS')) {
|
|
49
|
+
return 'sfs';
|
|
50
|
+
}
|
|
51
|
+
return '';
|
|
52
|
+
}
|
|
53
|
+
/** Extract document ID, falling back to URL for documents without dok_id. */
|
|
54
|
+
function docId(d) {
|
|
55
|
+
return d.dok_id ?? d.url ?? '';
|
|
56
|
+
}
|
|
57
|
+
/** Government-aligned document types (propositions, laws, govt comms, press releases, SOU, departmental series, directives). */
|
|
58
|
+
const GOVERNMENT_DOC_TYPES = new Set(['prop', 'sfs', 'skr', 'pressm', 'ds', 'sou', 'dir']);
|
|
59
|
+
/** Opposition challenge document types (motions, interpellations). */
|
|
60
|
+
const OPPOSITION_DOC_TYPES = new Set(['mot', 'ip']);
|
|
61
|
+
const STRESS_NEUTRAL = {
|
|
62
|
+
en: 'The document set contains only neutral items (e.g. committee reports) — coalition tension cannot be assessed from this evidence.',
|
|
63
|
+
sv: 'Dokumentuppsättningen innehåller endast neutrala handlingar (t.ex. utskottsbetänkanden) — koalitionsspänning kan inte bedömas utifrån detta underlag.',
|
|
64
|
+
da: 'Dokumentsættet indeholder kun neutrale dokumenter (f.eks. udvalgsbetænkninger) — koalitionsspænding kan ikke vurderes ud fra dette materiale.',
|
|
65
|
+
no: 'Dokumentsettet inneholder bare nøytrale dokumenter (f.eks. komitéinnstillinger) — koalisjonsspenning kan ikke vurderes ut fra dette materialet.',
|
|
66
|
+
fi: 'Asiakirjajoukko sisältää vain neutraaleja asiakirjoja (esim. valiokuntamietintöjä) — koalition jännitteitä ei voida arvioida tämän aineiston perusteella.',
|
|
67
|
+
de: 'Der Dokumentensatz enthält nur neutrale Unterlagen (z.\u00A0B. Ausschussberichte) — die Koalitionsspannung lässt sich anhand dieses Materials nicht beurteilen.',
|
|
68
|
+
fr: 'L\'ensemble de documents ne contient que des documents neutres (par ex. rapports de commission) — la tension de coalition ne peut pas être évaluée à partir de ces éléments.',
|
|
69
|
+
es: 'El conjunto de documentos solo contiene elementos neutrales (p.\u00A0ej. informes de comisión) — la tensión de coalición no puede evaluarse a partir de esta evidencia.',
|
|
70
|
+
nl: 'De documentset bevat alleen neutrale stukken (bijv. commissierapporten) — coalitiespanning kan op basis hiervan niet worden beoordeeld.',
|
|
71
|
+
ar: 'تحتوي مجموعة الوثائق على عناصر محايدة فقط (مثل تقارير اللجان) — لا يمكن تقييم التوتر الائتلافي بناءً على هذا الدليل.',
|
|
72
|
+
he: 'קבוצת המסמכים מכילה פריטים ניטרליים בלבד (למשל דוחות ועדה) — לא ניתן להעריך מתח קואליציוני על סמך ראיות אלה.',
|
|
73
|
+
ja: '文書セットには中立的な項目(委員会報告書など)のみが含まれています — この証拠からは連立の緊張度を評価できません。',
|
|
74
|
+
ko: '문서 세트에 중립 항목(위원회 보고서 등)만 포함되어 있습니다 — 이 증거로는 연립 긴장도를 평가할 수 없습니다.',
|
|
75
|
+
zh: '文件集仅包含中立项目(如委员会报告)— 无法根据此证据评估联盟紧张度。',
|
|
76
|
+
};
|
|
77
|
+
const STRESS_LOW = {
|
|
78
|
+
en: 'Low coalition tension — government output dominates with limited opposition challenge.',
|
|
79
|
+
sv: 'Låg koalitionsspänning — regeringens produktion dominerar med begränsad oppositionsutmaning.',
|
|
80
|
+
da: 'Lav koalitionsspænding — regeringsproduktionen dominerer med begrænset oppositionsudfordring.',
|
|
81
|
+
no: 'Lav koalisjonsspenning — regjeringens produksjon dominerer med begrenset opposisjonsutfordring.',
|
|
82
|
+
fi: 'Matala koalitiojännite — hallituksen tuotanto hallitsee rajallisella opposition haasteella.',
|
|
83
|
+
de: 'Geringe Koalitionsspannung — die Regierungsproduktion dominiert bei begrenzter Oppositionsherausforderung.',
|
|
84
|
+
fr: 'Faible tension de coalition — la production gouvernementale domine avec un défi d\'opposition limité.',
|
|
85
|
+
es: 'Baja tensión de coalición — la producción gubernamental domina con desafío opositor limitado.',
|
|
86
|
+
nl: 'Lage coalitiespanning — de regeringsproductie domineert met beperkte oppositie-uitdaging.',
|
|
87
|
+
ar: 'توتر ائتلافي منخفض — إنتاج الحكومة يهيمن مع تحدٍ محدود من المعارضة.',
|
|
88
|
+
he: 'מתח קואליציוני נמוך — תפוקת הממשלה שולטת עם אתגר אופוזיציוני מוגבל.',
|
|
89
|
+
ja: '連立の緊張度 低 — 政府の生産が支配的で、野党の挑戦は限定的。',
|
|
90
|
+
ko: '연립 긴장도 낮음 — 정부 산출이 지배적이며 야당의 도전이 제한적.',
|
|
91
|
+
zh: '联盟紧张度低 — 政府产出占主导地位,反对派挑战有限。',
|
|
92
|
+
};
|
|
93
|
+
const STRESS_MEDIUM = {
|
|
94
|
+
en: 'Moderate coalition tension — significant opposition activity through motions and interpellations.',
|
|
95
|
+
sv: 'Måttlig koalitionsspänning — betydande oppositionsaktivitet genom motioner och interpellationer.',
|
|
96
|
+
da: 'Moderat koalitionsspænding — betydelig oppositionsaktivitet gennem beslutningsforslag og interpellationer.',
|
|
97
|
+
no: 'Moderat koalisjonsspenning — betydelig opposisjonsaktivitet gjennom forslag og interpellasjoner.',
|
|
98
|
+
fi: 'Kohtalainen koalitiojännite — merkittävää oppositioaktiviteettia aloitteiden ja välikysymysten kautta.',
|
|
99
|
+
de: 'Mäßige Koalitionsspannung — bedeutende Oppositionsaktivität durch Anträge und Interpellationen.',
|
|
100
|
+
fr: 'Tension de coalition modérée — activité d\'opposition significative par motions et interpellations.',
|
|
101
|
+
es: 'Tensión de coalición moderada — actividad opositora significativa mediante mociones e interpelaciones.',
|
|
102
|
+
nl: 'Matige coalitiespanning — aanzienlijke oppositieactiviteit door moties en interpellaties.',
|
|
103
|
+
ar: 'توتر ائتلافي معتدل — نشاط معارض كبير من خلال الاقتراحات والاستجوابات.',
|
|
104
|
+
he: 'מתח קואליציוני בינוני — פעילות אופוזיציונית משמעותית באמצעות הצעות ושאילתות.',
|
|
105
|
+
ja: '連立の緊張度 中 — 動議と質問を通じた野党の顕著な活動。',
|
|
106
|
+
ko: '연립 긴장도 보통 — 동의안과 질의를 통한 상당한 야당 활동.',
|
|
107
|
+
zh: '联盟紧张度中等 — 反对派通过动议和质询展开重大活动。',
|
|
108
|
+
};
|
|
109
|
+
const STRESS_HIGH = {
|
|
110
|
+
en: 'High coalition tension — opposition challenges outpace government output, signalling policy contestation.',
|
|
111
|
+
sv: 'Hög koalitionsspänning — oppositionens utmaningar överträffar regeringens produktion, vilket signalerar politisk konfrontation.',
|
|
112
|
+
da: 'Høj koalitionsspænding — oppositionens udfordringer overgår regeringsproduktionen, hvilket signalerer politisk konfrontation.',
|
|
113
|
+
no: 'Høy koalisjonsspenning — opposisjonens utfordringer overgår regjeringens produksjon, noe som signaliserer politisk konfrontasjon.',
|
|
114
|
+
fi: 'Korkea koalitiojännite — opposition haasteet ylittävät hallituksen tuotannon, mikä viestii poliittisesta kiistasta.',
|
|
115
|
+
de: 'Hohe Koalitionsspannung — die Herausforderungen der Opposition übersteigen die Regierungsproduktion und signalisieren politische Konfrontation.',
|
|
116
|
+
fr: 'Haute tension de coalition — les défis de l\'opposition dépassent la production gouvernementale, signalant une contestation politique.',
|
|
117
|
+
es: 'Alta tensión de coalición — los desafíos de la oposición superan la producción gubernamental, señalando contestación política.',
|
|
118
|
+
nl: 'Hoge coalitiespanning — oppositie-uitdagingen overtreffen de regeringsproductie, wat wijst op politieke confrontatie.',
|
|
119
|
+
ar: 'توتر ائتلافي مرتفع — تحديات المعارضة تفوق إنتاج الحكومة، مما يشير إلى مواجهة سياسية.',
|
|
120
|
+
he: 'מתח קואליציוני גבוה — אתגרי האופוזיציה עולים על תפוקת הממשלה, מה שמסמן עימות מדיני.',
|
|
121
|
+
ja: '連立の緊張度 高 — 野党の挑戦が政府の生産を上回り、政策上の争いを示唆。',
|
|
122
|
+
ko: '연립 긴장도 높음 — 야당의 도전이 정부 산출을 앞서며 정책 논쟁을 시사.',
|
|
123
|
+
zh: '联盟紧张度高 — 反对派挑战超越政府产出,表明政策争议。',
|
|
124
|
+
};
|
|
125
|
+
// ---------------------------------------------------------------------------
|
|
126
|
+
// Heuristic implementation
|
|
127
|
+
// ---------------------------------------------------------------------------
|
|
128
|
+
/**
|
|
129
|
+
* Determine coalition stress level from the challenge ratio.
|
|
130
|
+
* - low: challengeRatio < 0.3
|
|
131
|
+
* - medium: 0.3 ≤ challengeRatio < 0.6
|
|
132
|
+
* - high: challengeRatio ≥ 0.6
|
|
133
|
+
*
|
|
134
|
+
* When ≥5 interpellations are present, stress is bumped by one level
|
|
135
|
+
* (low→medium, medium→high) to reflect ministerial accountability pressure.
|
|
136
|
+
*/
|
|
137
|
+
function classifyStress(challengeRatio, ipCount) {
|
|
138
|
+
const ipBoost = ipCount >= 5;
|
|
139
|
+
// Base level from challenge ratio alone
|
|
140
|
+
let level;
|
|
141
|
+
if (challengeRatio >= 0.6) {
|
|
142
|
+
level = 'high';
|
|
143
|
+
}
|
|
144
|
+
else if (challengeRatio >= 0.3) {
|
|
145
|
+
level = 'medium';
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
level = 'low';
|
|
149
|
+
}
|
|
150
|
+
// Apply one-level bump if interpellations are high and we are below 'high'
|
|
151
|
+
if (ipBoost && level !== 'high') {
|
|
152
|
+
level = level === 'low' ? 'medium' : 'high';
|
|
153
|
+
}
|
|
154
|
+
return level;
|
|
155
|
+
}
|
|
156
|
+
function narrativeForStress(level, lang) {
|
|
157
|
+
switch (level) {
|
|
158
|
+
case 'high': return STRESS_HIGH[lang] ?? STRESS_HIGH.en;
|
|
159
|
+
case 'medium': return STRESS_MEDIUM[lang] ?? STRESS_MEDIUM.en;
|
|
160
|
+
default: return STRESS_LOW[lang] ?? STRESS_LOW.en;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Heuristic coalition tension detector.
|
|
165
|
+
*
|
|
166
|
+
* Classifies coalition stress from the distribution of government vs.
|
|
167
|
+
* opposition documents, using the challenge ratio (opposition docs / total)
|
|
168
|
+
* and interpellation count as primary signals.
|
|
169
|
+
*/
|
|
170
|
+
function detectCoalitionTension(docs, lang) {
|
|
171
|
+
if (docs.length === 0) {
|
|
172
|
+
return {
|
|
173
|
+
stressLevel: 'low',
|
|
174
|
+
narrative: narrativeForStress('low', lang),
|
|
175
|
+
governmentDocCount: 0,
|
|
176
|
+
oppositionDocCount: 0,
|
|
177
|
+
challengeRatio: 0,
|
|
178
|
+
sourceDocIds: [],
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
let governmentDocCount = 0;
|
|
182
|
+
let oppositionDocCount = 0;
|
|
183
|
+
let ipCount = 0;
|
|
184
|
+
const sourceDocIds = [];
|
|
185
|
+
for (const d of docs) {
|
|
186
|
+
const dt = docType(d);
|
|
187
|
+
const id = docId(d);
|
|
188
|
+
if (id)
|
|
189
|
+
sourceDocIds.push(id);
|
|
190
|
+
if (GOVERNMENT_DOC_TYPES.has(dt)) {
|
|
191
|
+
governmentDocCount++;
|
|
192
|
+
}
|
|
193
|
+
else if (OPPOSITION_DOC_TYPES.has(dt)) {
|
|
194
|
+
oppositionDocCount++;
|
|
195
|
+
if (dt === 'ip')
|
|
196
|
+
ipCount++;
|
|
197
|
+
}
|
|
198
|
+
// Committee reports (bet) are neutral and excluded from gov/opp counts
|
|
199
|
+
}
|
|
200
|
+
// Challenge ratio: opposition challenge documents divided by
|
|
201
|
+
// (government + opposition), with committee reports excluded from the denominator.
|
|
202
|
+
// Round to 2 decimals before classification so the returned ratio is always
|
|
203
|
+
// consistent with the stress level (avoids threshold ambiguity near 0.3/0.6).
|
|
204
|
+
const denominator = governmentDocCount + oppositionDocCount;
|
|
205
|
+
const challengeRatio = denominator > 0
|
|
206
|
+
? Math.round((oppositionDocCount / denominator) * 100) / 100
|
|
207
|
+
: 0;
|
|
208
|
+
// When no government/opposition documents are present (e.g. only committee
|
|
209
|
+
// reports), the set is neutral — use a dedicated narrative rather than the
|
|
210
|
+
// generic "government output dominates" low-stress text.
|
|
211
|
+
if (denominator === 0) {
|
|
212
|
+
return {
|
|
213
|
+
stressLevel: 'low',
|
|
214
|
+
narrative: STRESS_NEUTRAL[lang] ?? STRESS_NEUTRAL.en,
|
|
215
|
+
governmentDocCount,
|
|
216
|
+
oppositionDocCount,
|
|
217
|
+
challengeRatio,
|
|
218
|
+
sourceDocIds,
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
const stressLevel = classifyStress(challengeRatio, ipCount);
|
|
222
|
+
const narrative = narrativeForStress(stressLevel, lang);
|
|
223
|
+
return {
|
|
224
|
+
stressLevel,
|
|
225
|
+
narrative,
|
|
226
|
+
governmentDocCount,
|
|
227
|
+
oppositionDocCount,
|
|
228
|
+
challengeRatio,
|
|
229
|
+
sourceDocIds,
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
// ---------------------------------------------------------------------------
|
|
233
|
+
// Exported singleton implementing CoalitionTensionDetector
|
|
234
|
+
// ---------------------------------------------------------------------------
|
|
235
|
+
/**
|
|
236
|
+
* Default heuristic coalition tension detector.
|
|
237
|
+
* Swap this implementation for an LLM-backed one when ready.
|
|
238
|
+
*/
|
|
239
|
+
export const coalitionDetector = {
|
|
240
|
+
detect: detectCoalitionTension,
|
|
241
|
+
};
|
|
242
|
+
//# sourceMappingURL=coalition-detector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coalition-detector.js","sourceRoot":"","sources":["../../../scripts/ai-analysis/coalition-detector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module ai-analysis/dashboard-analyzer
|
|
3
|
+
* @description AI-powered dashboard analysis for deep-inspection articles.
|
|
4
|
+
* Analyzes document content to produce structured chart configurations for
|
|
5
|
+
* multiple chart types: risk radar, stakeholder alignment (scatter), and
|
|
6
|
+
* legislative pipeline (bar). Each chart ships with an accessible data table.
|
|
7
|
+
*
|
|
8
|
+
* The analysis is deterministic — scores are derived from document keyword
|
|
9
|
+
* matching, type classification, and structural metadata rather than an
|
|
10
|
+
* external ML service. This keeps the pipeline fully offline while still
|
|
11
|
+
* producing content-aware, multi-dimensional insights.
|
|
12
|
+
*
|
|
13
|
+
* Charts conform to Chart.js 4.x conventions and are embedded as
|
|
14
|
+
* `data-chart-config` attributes (no inline scripts), consistent with the
|
|
15
|
+
* dashboard-section.ts "no inline scripts" pattern.
|
|
16
|
+
*
|
|
17
|
+
* **Supported chart types produced**:
|
|
18
|
+
* - `radar` — Policy Risk Assessment (5 dimensions)
|
|
19
|
+
* - `scatter` — Stakeholder Alignment Matrix (influence vs. alignment)
|
|
20
|
+
* - `bar` — Legislative Pipeline (docs per stage)
|
|
21
|
+
*
|
|
22
|
+
* @author Hack23 AB
|
|
23
|
+
* @license Apache-2.0
|
|
24
|
+
*/
|
|
25
|
+
import type { Language } from '../types/language.js';
|
|
26
|
+
import type { DashboardChartConfig, DashboardTableConfig } from '../types/article.js';
|
|
27
|
+
import type { RawDocument } from '../data-transformers/types.js';
|
|
28
|
+
/** Extends DashboardChartConfig with AI-provenance metadata. */
|
|
29
|
+
export interface AIChartConfig extends DashboardChartConfig {
|
|
30
|
+
/** Human-readable explanation of what this chart shows and how it was derived. */
|
|
31
|
+
analysisNote: string;
|
|
32
|
+
/** Description of the documents / data that informed this chart. */
|
|
33
|
+
dataSource: string;
|
|
34
|
+
/** 0–1 confidence score for this analysis (1 = high confidence). */
|
|
35
|
+
confidence: number;
|
|
36
|
+
}
|
|
37
|
+
/** Data quality level for the overall dashboard analysis. */
|
|
38
|
+
export type DataQuality = 'high' | 'medium' | 'low';
|
|
39
|
+
/** Complete result from `analyzeDashboardData()`. */
|
|
40
|
+
export interface DashboardAnalysisResult {
|
|
41
|
+
/** AI-analyzed chart configurations (3 charts: radar, scatter, bar). */
|
|
42
|
+
charts: AIChartConfig[];
|
|
43
|
+
/** Accessible data tables — one per chart. */
|
|
44
|
+
tables: DashboardTableConfig[];
|
|
45
|
+
/** Human-readable narrative summary of the analysis. */
|
|
46
|
+
summary: string;
|
|
47
|
+
/** Data quality classification driven by document richness. */
|
|
48
|
+
dataQuality: DataQuality;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Analyze a set of parliamentary documents and produce AI-aware chart
|
|
52
|
+
* configurations for the deep-inspection dashboard.
|
|
53
|
+
*
|
|
54
|
+
* Returns exactly **three** chart + table pairs covering:
|
|
55
|
+
* 1. **Policy Risk Assessment** (radar) — five risk dimensions scored 1–10
|
|
56
|
+
* 2. **Stakeholder Alignment** (scatter) — three stakeholders on a 2D grid
|
|
57
|
+
* 3. **Legislative Pipeline** (bar) — document counts per legislative stage
|
|
58
|
+
*
|
|
59
|
+
* If `docs` is empty, all charts return minimal placeholder data so the
|
|
60
|
+
* dashboard still renders without errors.
|
|
61
|
+
*
|
|
62
|
+
* @example
|
|
63
|
+
* ```ts
|
|
64
|
+
* import { analyzeDashboardData } from './ai-analysis/dashboard-analyzer.js';
|
|
65
|
+
*
|
|
66
|
+
* const result = analyzeDashboardData(docs, 'defence policy', 'en');
|
|
67
|
+
* // result.charts — [AIChartConfig, AIChartConfig, AIChartConfig]
|
|
68
|
+
* // result.tables — [DashboardTableConfig × 3]
|
|
69
|
+
* // result.dataQuality — 'high' | 'medium' | 'low'
|
|
70
|
+
* ```
|
|
71
|
+
*/
|
|
72
|
+
export declare function analyzeDashboardData(docs: RawDocument[], topic: string | null, lang: Language | string): DashboardAnalysisResult;
|
|
73
|
+
//# sourceMappingURL=dashboard-analyzer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dashboard-analyzer.d.ts","sourceRoot":"","sources":["../../../scripts/ai-analysis/dashboard-analyzer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EACV,oBAAoB,EACpB,oBAAoB,EAGrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAMjE,gEAAgE;AAChE,MAAM,WAAW,aAAc,SAAQ,oBAAoB;IACzD,kFAAkF;IAClF,YAAY,EAAE,MAAM,CAAC;IACrB,oEAAoE;IACpE,UAAU,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,6DAA6D;AAC7D,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;AAEpD,qDAAqD;AACrD,MAAM,WAAW,uBAAuB;IACtC,wEAAwE;IACxE,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,8CAA8C;IAC9C,MAAM,EAAE,oBAAoB,EAAE,CAAC;IAC/B,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAC;IAChB,+DAA+D;IAC/D,WAAW,EAAE,WAAW,CAAC;CAC1B;AA+fD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,WAAW,EAAE,EACnB,KAAK,EAAE,MAAM,GAAG,IAAI,EACpB,IAAI,EAAE,QAAQ,GAAG,MAAM,GACtB,uBAAuB,CA6BzB"}
|