euparliamentmonitor 0.8.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (276) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +1005 -0
  3. package/SECURITY.md +151 -0
  4. package/package.json +131 -0
  5. package/scripts/constants/committee-indicator-map.d.ts +199 -0
  6. package/scripts/constants/committee-indicator-map.d.ts.map +1 -0
  7. package/scripts/constants/committee-indicator-map.js +1224 -0
  8. package/scripts/constants/committee-indicator-map.js.map +1 -0
  9. package/scripts/constants/config.d.ts +38 -0
  10. package/scripts/constants/config.d.ts.map +1 -0
  11. package/scripts/constants/config.js +66 -0
  12. package/scripts/constants/config.js.map +1 -0
  13. package/scripts/constants/language-articles.d.ts +84 -0
  14. package/scripts/constants/language-articles.d.ts.map +1 -0
  15. package/scripts/constants/language-articles.js +6771 -0
  16. package/scripts/constants/language-articles.js.map +1 -0
  17. package/scripts/constants/language-core.d.ts +38 -0
  18. package/scripts/constants/language-core.d.ts.map +1 -0
  19. package/scripts/constants/language-core.js +90 -0
  20. package/scripts/constants/language-core.js.map +1 -0
  21. package/scripts/constants/language-ui.d.ts +82 -0
  22. package/scripts/constants/language-ui.d.ts.map +1 -0
  23. package/scripts/constants/language-ui.js +889 -0
  24. package/scripts/constants/language-ui.js.map +1 -0
  25. package/scripts/constants/languages.d.ts +14 -0
  26. package/scripts/constants/languages.d.ts.map +1 -0
  27. package/scripts/constants/languages.js +15 -0
  28. package/scripts/constants/languages.js.map +1 -0
  29. package/scripts/generators/analysis-builders.d.ts +266 -0
  30. package/scripts/generators/analysis-builders.d.ts.map +1 -0
  31. package/scripts/generators/analysis-builders.js +2903 -0
  32. package/scripts/generators/analysis-builders.js.map +1 -0
  33. package/scripts/generators/breaking-content.d.ts +45 -0
  34. package/scripts/generators/breaking-content.d.ts.map +1 -0
  35. package/scripts/generators/breaking-content.js +530 -0
  36. package/scripts/generators/breaking-content.js.map +1 -0
  37. package/scripts/generators/committee-helpers.d.ts +54 -0
  38. package/scripts/generators/committee-helpers.d.ts.map +1 -0
  39. package/scripts/generators/committee-helpers.js +154 -0
  40. package/scripts/generators/committee-helpers.js.map +1 -0
  41. package/scripts/generators/dashboard-content.d.ts +95 -0
  42. package/scripts/generators/dashboard-content.d.ts.map +1 -0
  43. package/scripts/generators/dashboard-content.js +630 -0
  44. package/scripts/generators/dashboard-content.js.map +1 -0
  45. package/scripts/generators/deep-analysis-content.d.ts +23 -0
  46. package/scripts/generators/deep-analysis-content.d.ts.map +1 -0
  47. package/scripts/generators/deep-analysis-content.js +831 -0
  48. package/scripts/generators/deep-analysis-content.js.map +1 -0
  49. package/scripts/generators/mindmap-content.d.ts +55 -0
  50. package/scripts/generators/mindmap-content.d.ts.map +1 -0
  51. package/scripts/generators/mindmap-content.js +512 -0
  52. package/scripts/generators/mindmap-content.js.map +1 -0
  53. package/scripts/generators/motions-content.d.ts +50 -0
  54. package/scripts/generators/motions-content.d.ts.map +1 -0
  55. package/scripts/generators/motions-content.js +391 -0
  56. package/scripts/generators/motions-content.js.map +1 -0
  57. package/scripts/generators/news-enhanced.d.ts +14 -0
  58. package/scripts/generators/news-enhanced.d.ts.map +1 -0
  59. package/scripts/generators/news-enhanced.js +169 -0
  60. package/scripts/generators/news-enhanced.js.map +1 -0
  61. package/scripts/generators/news-indexes.d.ts +31 -0
  62. package/scripts/generators/news-indexes.d.ts.map +1 -0
  63. package/scripts/generators/news-indexes.js +410 -0
  64. package/scripts/generators/news-indexes.js.map +1 -0
  65. package/scripts/generators/pipeline/fetch-stage.d.ts +352 -0
  66. package/scripts/generators/pipeline/fetch-stage.d.ts.map +1 -0
  67. package/scripts/generators/pipeline/fetch-stage.js +1522 -0
  68. package/scripts/generators/pipeline/fetch-stage.js.map +1 -0
  69. package/scripts/generators/pipeline/generate-stage.d.ts +43 -0
  70. package/scripts/generators/pipeline/generate-stage.d.ts.map +1 -0
  71. package/scripts/generators/pipeline/generate-stage.js +204 -0
  72. package/scripts/generators/pipeline/generate-stage.js.map +1 -0
  73. package/scripts/generators/pipeline/output-stage.d.ts +48 -0
  74. package/scripts/generators/pipeline/output-stage.d.ts.map +1 -0
  75. package/scripts/generators/pipeline/output-stage.js +145 -0
  76. package/scripts/generators/pipeline/output-stage.js.map +1 -0
  77. package/scripts/generators/pipeline/transform-stage.d.ts +57 -0
  78. package/scripts/generators/pipeline/transform-stage.d.ts.map +1 -0
  79. package/scripts/generators/pipeline/transform-stage.js +111 -0
  80. package/scripts/generators/pipeline/transform-stage.js.map +1 -0
  81. package/scripts/generators/propositions-content.d.ts +29 -0
  82. package/scripts/generators/propositions-content.d.ts.map +1 -0
  83. package/scripts/generators/propositions-content.js +90 -0
  84. package/scripts/generators/propositions-content.js.map +1 -0
  85. package/scripts/generators/sankey-content.d.ts +45 -0
  86. package/scripts/generators/sankey-content.d.ts.map +1 -0
  87. package/scripts/generators/sankey-content.js +227 -0
  88. package/scripts/generators/sankey-content.js.map +1 -0
  89. package/scripts/generators/sitemap.d.ts +66 -0
  90. package/scripts/generators/sitemap.d.ts.map +1 -0
  91. package/scripts/generators/sitemap.js +562 -0
  92. package/scripts/generators/sitemap.js.map +1 -0
  93. package/scripts/generators/strategies/article-strategy.d.ts +146 -0
  94. package/scripts/generators/strategies/article-strategy.d.ts.map +1 -0
  95. package/scripts/generators/strategies/article-strategy.js +4 -0
  96. package/scripts/generators/strategies/article-strategy.js.map +1 -0
  97. package/scripts/generators/strategies/breaking-news-strategy.d.ts +64 -0
  98. package/scripts/generators/strategies/breaking-news-strategy.d.ts.map +1 -0
  99. package/scripts/generators/strategies/breaking-news-strategy.js +246 -0
  100. package/scripts/generators/strategies/breaking-news-strategy.js.map +1 -0
  101. package/scripts/generators/strategies/committee-reports-strategy.d.ts +93 -0
  102. package/scripts/generators/strategies/committee-reports-strategy.d.ts.map +1 -0
  103. package/scripts/generators/strategies/committee-reports-strategy.js +447 -0
  104. package/scripts/generators/strategies/committee-reports-strategy.js.map +1 -0
  105. package/scripts/generators/strategies/month-ahead-strategy.d.ts +60 -0
  106. package/scripts/generators/strategies/month-ahead-strategy.d.ts.map +1 -0
  107. package/scripts/generators/strategies/month-ahead-strategy.js +175 -0
  108. package/scripts/generators/strategies/month-ahead-strategy.js.map +1 -0
  109. package/scripts/generators/strategies/monthly-review-strategy.d.ts +66 -0
  110. package/scripts/generators/strategies/monthly-review-strategy.d.ts.map +1 -0
  111. package/scripts/generators/strategies/monthly-review-strategy.js +204 -0
  112. package/scripts/generators/strategies/monthly-review-strategy.js.map +1 -0
  113. package/scripts/generators/strategies/motions-strategy.d.ts +61 -0
  114. package/scripts/generators/strategies/motions-strategy.d.ts.map +1 -0
  115. package/scripts/generators/strategies/motions-strategy.js +215 -0
  116. package/scripts/generators/strategies/motions-strategy.js.map +1 -0
  117. package/scripts/generators/strategies/propositions-strategy.d.ts +60 -0
  118. package/scripts/generators/strategies/propositions-strategy.d.ts.map +1 -0
  119. package/scripts/generators/strategies/propositions-strategy.js +257 -0
  120. package/scripts/generators/strategies/propositions-strategy.js.map +1 -0
  121. package/scripts/generators/strategies/week-ahead-strategy.d.ts +57 -0
  122. package/scripts/generators/strategies/week-ahead-strategy.d.ts.map +1 -0
  123. package/scripts/generators/strategies/week-ahead-strategy.js +178 -0
  124. package/scripts/generators/strategies/week-ahead-strategy.js.map +1 -0
  125. package/scripts/generators/strategies/weekly-review-strategy.d.ts +63 -0
  126. package/scripts/generators/strategies/weekly-review-strategy.d.ts.map +1 -0
  127. package/scripts/generators/strategies/weekly-review-strategy.js +211 -0
  128. package/scripts/generators/strategies/weekly-review-strategy.js.map +1 -0
  129. package/scripts/generators/swot-content.d.ts +42 -0
  130. package/scripts/generators/swot-content.d.ts.map +1 -0
  131. package/scripts/generators/swot-content.js +366 -0
  132. package/scripts/generators/swot-content.js.map +1 -0
  133. package/scripts/generators/week-ahead-content.d.ts +103 -0
  134. package/scripts/generators/week-ahead-content.d.ts.map +1 -0
  135. package/scripts/generators/week-ahead-content.js +610 -0
  136. package/scripts/generators/week-ahead-content.js.map +1 -0
  137. package/scripts/index.d.ts +40 -0
  138. package/scripts/index.d.ts.map +1 -0
  139. package/scripts/index.js +53 -0
  140. package/scripts/index.js.map +1 -0
  141. package/scripts/mcp/ep-mcp-client.d.ts +471 -0
  142. package/scripts/mcp/ep-mcp-client.d.ts.map +1 -0
  143. package/scripts/mcp/ep-mcp-client.js +734 -0
  144. package/scripts/mcp/ep-mcp-client.js.map +1 -0
  145. package/scripts/mcp/mcp-connection.d.ts +264 -0
  146. package/scripts/mcp/mcp-connection.d.ts.map +1 -0
  147. package/scripts/mcp/mcp-connection.js +790 -0
  148. package/scripts/mcp/mcp-connection.js.map +1 -0
  149. package/scripts/mcp/mcp-health.d.ts +75 -0
  150. package/scripts/mcp/mcp-health.d.ts.map +1 -0
  151. package/scripts/mcp/mcp-health.js +78 -0
  152. package/scripts/mcp/mcp-health.js.map +1 -0
  153. package/scripts/mcp/mcp-retry.d.ts +94 -0
  154. package/scripts/mcp/mcp-retry.d.ts.map +1 -0
  155. package/scripts/mcp/mcp-retry.js +127 -0
  156. package/scripts/mcp/mcp-retry.js.map +1 -0
  157. package/scripts/mcp/wb-mcp-client.d.ts +38 -0
  158. package/scripts/mcp/wb-mcp-client.d.ts.map +1 -0
  159. package/scripts/mcp/wb-mcp-client.js +112 -0
  160. package/scripts/mcp/wb-mcp-client.js.map +1 -0
  161. package/scripts/templates/article-template.d.ts +9 -0
  162. package/scripts/templates/article-template.d.ts.map +1 -0
  163. package/scripts/templates/article-template.js +378 -0
  164. package/scripts/templates/article-template.js.map +1 -0
  165. package/scripts/templates/section-builders.d.ts +28 -0
  166. package/scripts/templates/section-builders.d.ts.map +1 -0
  167. package/scripts/templates/section-builders.js +142 -0
  168. package/scripts/templates/section-builders.js.map +1 -0
  169. package/scripts/types/analysis.d.ts +115 -0
  170. package/scripts/types/analysis.d.ts.map +1 -0
  171. package/scripts/types/analysis.js +4 -0
  172. package/scripts/types/analysis.js.map +1 -0
  173. package/scripts/types/common.d.ts +584 -0
  174. package/scripts/types/common.d.ts.map +1 -0
  175. package/scripts/types/common.js +96 -0
  176. package/scripts/types/common.js.map +1 -0
  177. package/scripts/types/generation.d.ts +104 -0
  178. package/scripts/types/generation.d.ts.map +1 -0
  179. package/scripts/types/generation.js +4 -0
  180. package/scripts/types/generation.js.map +1 -0
  181. package/scripts/types/index.d.ts +24 -0
  182. package/scripts/types/index.d.ts.map +1 -0
  183. package/scripts/types/index.js +16 -0
  184. package/scripts/types/index.js.map +1 -0
  185. package/scripts/types/intelligence.d.ts +129 -0
  186. package/scripts/types/intelligence.d.ts.map +1 -0
  187. package/scripts/types/intelligence.js +4 -0
  188. package/scripts/types/intelligence.js.map +1 -0
  189. package/scripts/types/mcp.d.ts +418 -0
  190. package/scripts/types/mcp.d.ts.map +1 -0
  191. package/scripts/types/mcp.js +4 -0
  192. package/scripts/types/mcp.js.map +1 -0
  193. package/scripts/types/parliament.d.ts +388 -0
  194. package/scripts/types/parliament.d.ts.map +1 -0
  195. package/scripts/types/parliament.js +4 -0
  196. package/scripts/types/parliament.js.map +1 -0
  197. package/scripts/types/quality.d.ts +114 -0
  198. package/scripts/types/quality.d.ts.map +1 -0
  199. package/scripts/types/quality.js +4 -0
  200. package/scripts/types/quality.js.map +1 -0
  201. package/scripts/types/stakeholder.d.ts +88 -0
  202. package/scripts/types/stakeholder.d.ts.map +1 -0
  203. package/scripts/types/stakeholder.js +16 -0
  204. package/scripts/types/stakeholder.js.map +1 -0
  205. package/scripts/types/visualization.d.ts +708 -0
  206. package/scripts/types/visualization.d.ts.map +1 -0
  207. package/scripts/types/visualization.js +4 -0
  208. package/scripts/types/visualization.js.map +1 -0
  209. package/scripts/types/world-bank.d.ts +85 -0
  210. package/scripts/types/world-bank.d.ts.map +1 -0
  211. package/scripts/types/world-bank.js +4 -0
  212. package/scripts/types/world-bank.js.map +1 -0
  213. package/scripts/utils/article-category.d.ts +18 -0
  214. package/scripts/utils/article-category.d.ts.map +1 -0
  215. package/scripts/utils/article-category.js +49 -0
  216. package/scripts/utils/article-category.js.map +1 -0
  217. package/scripts/utils/article-quality-scorer.d.ts +87 -0
  218. package/scripts/utils/article-quality-scorer.d.ts.map +1 -0
  219. package/scripts/utils/article-quality-scorer.js +1048 -0
  220. package/scripts/utils/article-quality-scorer.js.map +1 -0
  221. package/scripts/utils/content-metadata.d.ts +34 -0
  222. package/scripts/utils/content-metadata.d.ts.map +1 -0
  223. package/scripts/utils/content-metadata.js +249 -0
  224. package/scripts/utils/content-metadata.js.map +1 -0
  225. package/scripts/utils/content-validator.d.ts +94 -0
  226. package/scripts/utils/content-validator.d.ts.map +1 -0
  227. package/scripts/utils/content-validator.js +489 -0
  228. package/scripts/utils/content-validator.js.map +1 -0
  229. package/scripts/utils/copy-test-reports.d.ts +9 -0
  230. package/scripts/utils/copy-test-reports.d.ts.map +1 -0
  231. package/scripts/utils/copy-test-reports.js +508 -0
  232. package/scripts/utils/copy-test-reports.js.map +1 -0
  233. package/scripts/utils/file-utils.d.ts +144 -0
  234. package/scripts/utils/file-utils.d.ts.map +1 -0
  235. package/scripts/utils/file-utils.js +374 -0
  236. package/scripts/utils/file-utils.js.map +1 -0
  237. package/scripts/utils/fix-articles.d.ts +27 -0
  238. package/scripts/utils/fix-articles.d.ts.map +1 -0
  239. package/scripts/utils/fix-articles.js +510 -0
  240. package/scripts/utils/fix-articles.js.map +1 -0
  241. package/scripts/utils/generate-docs-index.d.ts +8 -0
  242. package/scripts/utils/generate-docs-index.d.ts.map +1 -0
  243. package/scripts/utils/generate-docs-index.js +275 -0
  244. package/scripts/utils/generate-docs-index.js.map +1 -0
  245. package/scripts/utils/html-sanitize.d.ts +18 -0
  246. package/scripts/utils/html-sanitize.d.ts.map +1 -0
  247. package/scripts/utils/html-sanitize.js +57 -0
  248. package/scripts/utils/html-sanitize.js.map +1 -0
  249. package/scripts/utils/intelligence-analysis.d.ts +173 -0
  250. package/scripts/utils/intelligence-analysis.d.ts.map +1 -0
  251. package/scripts/utils/intelligence-analysis.js +936 -0
  252. package/scripts/utils/intelligence-analysis.js.map +1 -0
  253. package/scripts/utils/intelligence-index.d.ts +126 -0
  254. package/scripts/utils/intelligence-index.d.ts.map +1 -0
  255. package/scripts/utils/intelligence-index.js +731 -0
  256. package/scripts/utils/intelligence-index.js.map +1 -0
  257. package/scripts/utils/metadata-utils.d.ts +14 -0
  258. package/scripts/utils/metadata-utils.d.ts.map +1 -0
  259. package/scripts/utils/metadata-utils.js +18 -0
  260. package/scripts/utils/metadata-utils.js.map +1 -0
  261. package/scripts/utils/news-metadata.d.ts +47 -0
  262. package/scripts/utils/news-metadata.d.ts.map +1 -0
  263. package/scripts/utils/news-metadata.js +259 -0
  264. package/scripts/utils/news-metadata.js.map +1 -0
  265. package/scripts/utils/validate-articles.d.ts +2 -0
  266. package/scripts/utils/validate-articles.d.ts.map +1 -0
  267. package/scripts/utils/validate-articles.js +284 -0
  268. package/scripts/utils/validate-articles.js.map +1 -0
  269. package/scripts/utils/validate-ep-api.d.ts +51 -0
  270. package/scripts/utils/validate-ep-api.d.ts.map +1 -0
  271. package/scripts/utils/validate-ep-api.js +160 -0
  272. package/scripts/utils/validate-ep-api.js.map +1 -0
  273. package/scripts/utils/world-bank-data.d.ts +84 -0
  274. package/scripts/utils/world-bank-data.d.ts.map +1 -0
  275. package/scripts/utils/world-bank-data.js +311 -0
  276. package/scripts/utils/world-bank-data.js.map +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch-stage.js","sourceRoot":"","sources":["../../../src/generators/pipeline/fetch-stage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * @module Generators/Pipeline/GenerateStage
3
+ * @description Article content generation orchestration pipeline stage.
4
+ *
5
+ * Provides a {@link StrategyRegistry} that maps each {@link ArticleCategory}
6
+ * to its concrete {@link ArticleStrategy} implementation, and a single
7
+ * {@link generateArticleForStrategy} function that runs the full fetch →
8
+ * build → write cycle for one article type across all requested languages.
9
+ */
10
+ import type { EuropeanParliamentMCPClient } from '../../mcp/ep-mcp-client.js';
11
+ import { ArticleCategory } from '../../types/index.js';
12
+ import type { LanguageCode, GenerationStats, GenerationResult } from '../../types/index.js';
13
+ import type { ArticleStrategyBase } from '../strategies/article-strategy.js';
14
+ import type { OutputOptions } from './output-stage.js';
15
+ /** Map from {@link ArticleCategory} to its registered strategy */
16
+ export type StrategyRegistry = Map<ArticleCategory, ArticleStrategyBase>;
17
+ /**
18
+ * Build the default strategy registry containing all built-in strategies.
19
+ *
20
+ * Each concrete strategy implements `ArticleStrategy<ConcreteData>` which
21
+ * extends `ArticleStrategyBase`. Because TypeScript's method-parameter
22
+ * checking is bivariant, a strategy whose methods accept a narrower `TData`
23
+ * is structurally assignable to `ArticleStrategyBase` without any cast.
24
+ *
25
+ * @returns A populated registry ready for use by {@link generateArticleForStrategy}
26
+ */
27
+ export declare function createStrategyRegistry(): StrategyRegistry;
28
+ /**
29
+ * Run the complete fetch → build → write cycle for one article type.
30
+ *
31
+ * Iterates over `languages`, calls the strategy for content and metadata,
32
+ * generates the full HTML wrapper and writes each file through the output
33
+ * stage. Catches all errors so the caller can continue with other types.
34
+ *
35
+ * @param strategy - Concrete strategy for the target article category
36
+ * @param client - Connected MCP client or null
37
+ * @param languages - Target language codes
38
+ * @param outputOptions - Dry-run, skip-existing and directory flags
39
+ * @param stats - Mutable stats object to increment counters on
40
+ * @returns Generation result with success flag, file count and slug
41
+ */
42
+ export declare function generateArticleForStrategy(strategy: ArticleStrategyBase, client: EuropeanParliamentMCPClient | null, languages: ReadonlyArray<LanguageCode>, outputOptions: OutputOptions, stats: GenerationStats): Promise<GenerationResult>;
43
+ //# sourceMappingURL=generate-stage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-stage.d.ts","sourceRoot":"","sources":["../../../src/generators/pipeline/generate-stage.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAO5F,OAAO,KAAK,EAAE,mBAAmB,EAAe,MAAM,mCAAmC,CAAC;AAe1F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAKvD,kEAAkE;AAClE,MAAM,MAAM,gBAAgB,GAAG,GAAG,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAC;AAEzE;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,IAAI,gBAAgB,CAWzD;AA+ID;;;;;;;;;;;;;GAaG;AACH,wBAAsB,0BAA0B,CAC9C,QAAQ,EAAE,mBAAmB,EAC7B,MAAM,EAAE,2BAA2B,GAAG,IAAI,EAC1C,SAAS,EAAE,aAAa,CAAC,YAAY,CAAC,EACtC,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAE,eAAe,GACrB,OAAO,CAAC,gBAAgB,CAAC,CA4D3B"}
@@ -0,0 +1,204 @@
1
+ // SPDX-FileCopyrightText: 2024-2026 Hack23 AB
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ import { ArticleCategory } from '../../types/index.js';
4
+ import { generateArticleHTML } from '../../templates/article-template.js';
5
+ import { calculateReadTime, formatDateForSlug, validateArticleHTML, } from '../../utils/file-utils.js';
6
+ import { validateArticleContent, validateTranslationCompleteness, } from '../../utils/content-validator.js';
7
+ import { scoreArticleQuality } from '../../utils/article-quality-scorer.js';
8
+ import { enrichMetadataFromContent } from '../../utils/content-metadata.js';
9
+ import { weekAheadStrategy } from '../strategies/week-ahead-strategy.js';
10
+ import { breakingNewsStrategy } from '../strategies/breaking-news-strategy.js';
11
+ import { committeeReportsStrategy } from '../strategies/committee-reports-strategy.js';
12
+ import { propositionsStrategy } from '../strategies/propositions-strategy.js';
13
+ import { motionsStrategy } from '../strategies/motions-strategy.js';
14
+ import { monthAheadStrategy } from '../strategies/month-ahead-strategy.js';
15
+ import { weeklyReviewStrategy } from '../strategies/weekly-review-strategy.js';
16
+ import { monthlyReviewStrategy } from '../strategies/monthly-review-strategy.js';
17
+ import { writeSingleArticle } from './output-stage.js';
18
+ /**
19
+ * Build the default strategy registry containing all built-in strategies.
20
+ *
21
+ * Each concrete strategy implements `ArticleStrategy<ConcreteData>` which
22
+ * extends `ArticleStrategyBase`. Because TypeScript's method-parameter
23
+ * checking is bivariant, a strategy whose methods accept a narrower `TData`
24
+ * is structurally assignable to `ArticleStrategyBase` without any cast.
25
+ *
26
+ * @returns A populated registry ready for use by {@link generateArticleForStrategy}
27
+ */
28
+ export function createStrategyRegistry() {
29
+ const registry = new Map();
30
+ registry.set(ArticleCategory.WEEK_AHEAD, weekAheadStrategy);
31
+ registry.set(ArticleCategory.BREAKING_NEWS, breakingNewsStrategy);
32
+ registry.set(ArticleCategory.COMMITTEE_REPORTS, committeeReportsStrategy);
33
+ registry.set(ArticleCategory.PROPOSITIONS, propositionsStrategy);
34
+ registry.set(ArticleCategory.MOTIONS, motionsStrategy);
35
+ registry.set(ArticleCategory.MONTH_AHEAD, monthAheadStrategy);
36
+ registry.set(ArticleCategory.WEEK_IN_REVIEW, weeklyReviewStrategy);
37
+ registry.set(ArticleCategory.MONTH_IN_REVIEW, monthlyReviewStrategy);
38
+ return registry;
39
+ }
40
+ // ─── Emoji map ────────────────────────────────────────────────────────────────
41
+ /** Display emoji for each article category */
42
+ const ARTICLE_EMOJIS = {
43
+ [ArticleCategory.WEEK_AHEAD]: '📅',
44
+ [ArticleCategory.MONTH_AHEAD]: '📅',
45
+ [ArticleCategory.BREAKING_NEWS]: '🚨',
46
+ [ArticleCategory.COMMITTEE_REPORTS]: '🏛️',
47
+ [ArticleCategory.PROPOSITIONS]: '📜',
48
+ [ArticleCategory.MOTIONS]: '🗳️',
49
+ [ArticleCategory.WEEK_IN_REVIEW]: '📊',
50
+ [ArticleCategory.MONTH_IN_REVIEW]: '📊',
51
+ };
52
+ // ─── Date helper ──────────────────────────────────────────────────────────────
53
+ /**
54
+ * Extract the YYYY-MM-DD portion of a Date object's ISO string.
55
+ * Throws explicitly instead of relying on non-null assertion.
56
+ *
57
+ * @param date - Date to extract from
58
+ * @returns ISO date string (YYYY-MM-DD)
59
+ */
60
+ function getIsoDatePart(date) {
61
+ const parts = date.toISOString().split('T');
62
+ if (!parts[0])
63
+ throw new Error('Failed to extract date part from ISO string');
64
+ return parts[0];
65
+ }
66
+ /**
67
+ * Generate, validate and write a single language version of an article.
68
+ *
69
+ * @param strategy - Article strategy providing content and metadata
70
+ * @param data - Fetched article data
71
+ * @param lang - Target language code
72
+ * @param dateStr - ISO date string
73
+ * @param slug - File slug (date-type)
74
+ * @param outputOptions - Output configuration
75
+ * @param stats - Mutable generation stats
76
+ * @param availableLanguages - Languages for which the article exists; used to restrict language switcher links
77
+ * @returns true if a file was written
78
+ */
79
+ function generateSingleLanguageArticle(strategy, data, lang, dateStr, slug, outputOptions, stats, availableLanguages) {
80
+ console.log(` 🌐 Generating ${lang.toUpperCase()} version...`);
81
+ const content = strategy.buildContent(data, lang);
82
+ const baseMetadata = strategy.getMetadata(data, lang);
83
+ // Enrich metadata by analysing the actual rendered content.
84
+ // This produces insightful titles, descriptions, and keywords
85
+ // that reflect the article's coverage — not generic template text.
86
+ // Title/description enrichment is English-only because the heuristics
87
+ // (statistic extraction, generic-heading filter) use English keywords.
88
+ // Language-agnostic keyword additions (committee abbreviations, etc.)
89
+ // are preserved for all languages.
90
+ const enrichedMetadata = enrichMetadataFromContent(content, baseMetadata);
91
+ const metadata = lang === 'en'
92
+ ? enrichedMetadata
93
+ : {
94
+ ...baseMetadata,
95
+ keywords: enrichedMetadata.keywords ?? baseMetadata.keywords,
96
+ sources: enrichedMetadata.sources ?? baseMetadata.sources,
97
+ };
98
+ const html = generateArticleHTML({
99
+ slug: strategy.type,
100
+ title: metadata.title,
101
+ subtitle: metadata.subtitle,
102
+ date: dateStr,
103
+ category: metadata.category,
104
+ readTime: calculateReadTime(content),
105
+ lang,
106
+ content,
107
+ keywords: [...metadata.keywords],
108
+ sources: metadata.sources ? [...metadata.sources] : [],
109
+ availableLanguages,
110
+ });
111
+ // Validate generated HTML has all required structural elements
112
+ const validation = validateArticleHTML(html);
113
+ if (!validation.valid) {
114
+ console.error(` ❌ ${lang.toUpperCase()} article failed validation: ${validation.errors.join('; ')}`);
115
+ stats.errors++;
116
+ return false;
117
+ }
118
+ // Validate content quality (word count, placeholders, required elements)
119
+ const contentValidation = validateArticleContent(html, lang, strategy.type);
120
+ if (!contentValidation.valid) {
121
+ console.error(` ❌ ${lang.toUpperCase()} article failed content validation: ${contentValidation.errors.join('; ')}`);
122
+ stats.errors++;
123
+ return false;
124
+ }
125
+ for (const warning of contentValidation.warnings) {
126
+ console.warn(` ⚠️ ${lang.toUpperCase()} content warning: ${warning}`);
127
+ }
128
+ // Translation completeness — informational only, never blocks generation
129
+ const translationValidation = validateTranslationCompleteness(html, lang);
130
+ for (const warning of translationValidation.warnings) {
131
+ console.warn(` 🌐 ${lang.toUpperCase()} ${warning}`);
132
+ stats.translationWarnings = (stats.translationWarnings ?? 0) + 1;
133
+ }
134
+ // Quality scoring — informational only, never blocks generation
135
+ const qualityReport = scoreArticleQuality(html, slug, lang, strategy.type);
136
+ console.log(` 📊 ${lang.toUpperCase()} quality: Grade ${qualityReport.grade} (${qualityReport.overallScore}/100)`);
137
+ if (!qualityReport.passesQualityGate) {
138
+ console.warn(` ⚠️ ${lang.toUpperCase()} article did not pass quality gate (score ${qualityReport.overallScore} < 40). Recommendations:`);
139
+ for (const rec of qualityReport.recommendations.slice(0, 3)) {
140
+ console.warn(` 💡 ${rec}`);
141
+ }
142
+ }
143
+ if (writeSingleArticle(html, slug, lang, outputOptions, stats)) {
144
+ console.log(` ✅ ${lang.toUpperCase()} version generated`);
145
+ return true;
146
+ }
147
+ return false;
148
+ }
149
+ // ─── Generation orchestrator ──────────────────────────────────────────────────
150
+ /**
151
+ * Run the complete fetch → build → write cycle for one article type.
152
+ *
153
+ * Iterates over `languages`, calls the strategy for content and metadata,
154
+ * generates the full HTML wrapper and writes each file through the output
155
+ * stage. Catches all errors so the caller can continue with other types.
156
+ *
157
+ * @param strategy - Concrete strategy for the target article category
158
+ * @param client - Connected MCP client or null
159
+ * @param languages - Target language codes
160
+ * @param outputOptions - Dry-run, skip-existing and directory flags
161
+ * @param stats - Mutable stats object to increment counters on
162
+ * @returns Generation result with success flag, file count and slug
163
+ */
164
+ export async function generateArticleForStrategy(strategy, client, languages, outputOptions, stats) {
165
+ const emoji = ARTICLE_EMOJIS[strategy.type] ?? '📄';
166
+ console.log(`${emoji} Generating ${strategy.type} article...`);
167
+ try {
168
+ const today = new Date();
169
+ const dateStr = getIsoDatePart(today);
170
+ const slug = `${formatDateForSlug(today)}-${strategy.type}`;
171
+ const data = await strategy.fetchData(client, dateStr);
172
+ // Check if the strategy wants to skip generation (e.g. all data is placeholder)
173
+ if (strategy.shouldSkip?.(data)) {
174
+ console.log(` ⚠️ ${strategy.type} article skipped: all fetched data is placeholder (MCP unavailable or API gap). No files written.`);
175
+ stats.skipped += languages.length;
176
+ return { success: true, files: 0, slug };
177
+ }
178
+ let writtenCount = 0;
179
+ for (const lang of languages) {
180
+ if (generateSingleLanguageArticle(strategy, data, lang, dateStr, slug, outputOptions, stats, languages)) {
181
+ writtenCount++;
182
+ }
183
+ }
184
+ const totalLangs = languages.length;
185
+ if (writtenCount === 0) {
186
+ console.log(` ✅ ${strategy.type} article generation completed: 0 files written (dry-run or all files skipped)`);
187
+ }
188
+ else {
189
+ console.log(` ✅ ${strategy.type} article generated: ${writtenCount}/${totalLangs} language(s) written`);
190
+ }
191
+ return { success: true, files: writtenCount, slug };
192
+ }
193
+ catch (error) {
194
+ const message = error instanceof Error ? error.message : String(error);
195
+ const stack = error instanceof Error ? error.stack : undefined;
196
+ console.error(`❌ Error generating ${strategy.type}:`, message);
197
+ if (stack && process.env['DEBUG'] === 'true') {
198
+ console.error(' Stack:', stack);
199
+ }
200
+ stats.errors++;
201
+ return { success: false, error: message };
202
+ }
203
+ }
204
+ //# sourceMappingURL=generate-stage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-stage.js","sourceRoot":"","sources":["../../../src/generators/pipeline/generate-stage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ import type { GenerationStats, GenerationResult } from '../../types/index.js';
2
+ /** Runtime flags that control how articles are written to disk */
3
+ export interface OutputOptions {
4
+ /** When true no files are written (dry run mode) */
5
+ dryRun: boolean;
6
+ /** When true skip articles that already exist on disk */
7
+ skipExisting: boolean;
8
+ /** Absolute path to the news output directory */
9
+ newsDir: string;
10
+ }
11
+ /**
12
+ * Write a single HTML file to the news directory.
13
+ *
14
+ * Respects `dryRun` and `skipExisting` flags: returns `false` without writing
15
+ * in either case.
16
+ *
17
+ * @param html - Full HTML content to write
18
+ * @param filename - Target filename (relative to `options.newsDir`)
19
+ * @param options - Output flags and directory path
20
+ * @returns `true` when the file was actually written
21
+ */
22
+ export declare function writeArticleFile(html: string, filename: string, options: OutputOptions): boolean;
23
+ /**
24
+ * Write a language-specific article file and update the generation stats.
25
+ *
26
+ * @param html - Full HTML content to write
27
+ * @param slug - Article slug (e.g. `"2025-01-15-week-ahead"`)
28
+ * @param lang - Language code suffix (e.g. `"en"`)
29
+ * @param options - Output flags and directory path
30
+ * @param stats - Mutable stats object to increment counters on
31
+ * @returns `true` when the file was actually written
32
+ */
33
+ export declare function writeSingleArticle(html: string, slug: string, lang: string, options: OutputOptions, stats: GenerationStats): boolean;
34
+ /**
35
+ * Persist a generation metadata JSON file to the metadata directory.
36
+ * If a metadata file already exists for today, merges the current run's stats
37
+ * and results with the existing ones so multiple workflow runs on the same day
38
+ * do not overwrite each other's data.
39
+ * Skips writing when `dryRun` is true.
40
+ *
41
+ * @param stats - Final generation statistics
42
+ * @param results - Per-article-type generation results
43
+ * @param usedMCP - Whether the MCP client was connected during this run
44
+ * @param metadataDir - Absolute path to the metadata output directory
45
+ * @param dryRun - When true the file is not written
46
+ */
47
+ export declare function writeGenerationMetadata(stats: GenerationStats, results: GenerationResult[], usedMCP: boolean, metadataDir: string, dryRun: boolean): void;
48
+ //# sourceMappingURL=output-stage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output-stage.d.ts","sourceRoot":"","sources":["../../../src/generators/pipeline/output-stage.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAK9E,kEAAkE;AAClE,MAAM,WAAW,aAAa;IAC5B,oDAAoD;IACpD,MAAM,EAAE,OAAO,CAAC;IAChB,yDAAyD;IACzD,YAAY,EAAE,OAAO,CAAC;IACtB,iDAAiD;IACjD,OAAO,EAAE,MAAM,CAAC;CACjB;AAOD;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAoBhG;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,aAAa,EACtB,KAAK,EAAE,eAAe,GACrB,OAAO,CAcT;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,eAAe,EACtB,OAAO,EAAE,gBAAgB,EAAE,EAC3B,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,OAAO,GACd,IAAI,CA0EN"}
@@ -0,0 +1,145 @@
1
+ // SPDX-FileCopyrightText: 2024-2026 Hack23 AB
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ /**
4
+ * @module Generators/Pipeline/OutputStage
5
+ * @description File writing and metadata update pipeline stage.
6
+ *
7
+ * All functions accept explicit options/path arguments rather than reading
8
+ * module-level state, so they are trivial to test in isolation.
9
+ */
10
+ import fs from 'fs';
11
+ import path from 'path';
12
+ import { formatDateForSlug, atomicWrite } from '../../utils/file-utils.js';
13
+ // ─── File-write helpers ───────────────────────────────────────────────────────
14
+ /** Log prefix for write operations */
15
+ const DRY_RUN_PREFIX = ' [DRY RUN]';
16
+ /**
17
+ * Write a single HTML file to the news directory.
18
+ *
19
+ * Respects `dryRun` and `skipExisting` flags: returns `false` without writing
20
+ * in either case.
21
+ *
22
+ * @param html - Full HTML content to write
23
+ * @param filename - Target filename (relative to `options.newsDir`)
24
+ * @param options - Output flags and directory path
25
+ * @returns `true` when the file was actually written
26
+ */
27
+ export function writeArticleFile(html, filename, options) {
28
+ const filepath = path.join(options.newsDir, filename);
29
+ if (options.skipExisting && fs.existsSync(filepath)) {
30
+ if (options.dryRun) {
31
+ console.log(`${DRY_RUN_PREFIX} Would skip (already exists): ${filename}`);
32
+ }
33
+ else {
34
+ console.log(` ⏭️ Skipped (already exists): ${filename}`);
35
+ }
36
+ return false;
37
+ }
38
+ if (options.dryRun) {
39
+ console.log(`${DRY_RUN_PREFIX} Would write: ${filename}`);
40
+ return false;
41
+ }
42
+ atomicWrite(filepath, html);
43
+ console.log(` ✅ Wrote: ${filename}`);
44
+ return true;
45
+ }
46
+ /**
47
+ * Write a language-specific article file and update the generation stats.
48
+ *
49
+ * @param html - Full HTML content to write
50
+ * @param slug - Article slug (e.g. `"2025-01-15-week-ahead"`)
51
+ * @param lang - Language code suffix (e.g. `"en"`)
52
+ * @param options - Output flags and directory path
53
+ * @param stats - Mutable stats object to increment counters on
54
+ * @returns `true` when the file was actually written
55
+ */
56
+ export function writeSingleArticle(html, slug, lang, options, stats) {
57
+ const filename = `${slug}-${lang}.html`;
58
+ const written = writeArticleFile(html, filename, options);
59
+ if (written) {
60
+ stats.generated += 1;
61
+ stats.articles.push(filename);
62
+ }
63
+ else if (options.skipExisting && fs.existsSync(path.join(options.newsDir, filename))) {
64
+ stats.skipped += 1;
65
+ }
66
+ else if (options.dryRun) {
67
+ stats.dryRun += 1;
68
+ }
69
+ return written;
70
+ }
71
+ /**
72
+ * Persist a generation metadata JSON file to the metadata directory.
73
+ * If a metadata file already exists for today, merges the current run's stats
74
+ * and results with the existing ones so multiple workflow runs on the same day
75
+ * do not overwrite each other's data.
76
+ * Skips writing when `dryRun` is true.
77
+ *
78
+ * @param stats - Final generation statistics
79
+ * @param results - Per-article-type generation results
80
+ * @param usedMCP - Whether the MCP client was connected during this run
81
+ * @param metadataDir - Absolute path to the metadata output directory
82
+ * @param dryRun - When true the file is not written
83
+ */
84
+ export function writeGenerationMetadata(stats, results, usedMCP, metadataDir, dryRun) {
85
+ if (dryRun)
86
+ return;
87
+ const metadataPath = path.join(metadataDir, `generation-${formatDateForSlug()}.json`);
88
+ // Merge with existing metadata when another workflow already ran today
89
+ let mergedStats = { ...stats };
90
+ let mergedResults = [...results];
91
+ let mergedUsedMCP = usedMCP;
92
+ if (fs.existsSync(metadataPath)) {
93
+ try {
94
+ const existing = JSON.parse(fs.readFileSync(metadataPath, 'utf-8'));
95
+ // Accumulate counters from both runs
96
+ mergedStats = {
97
+ ...mergedStats,
98
+ generated: (existing.generated ?? 0) + stats.generated,
99
+ skipped: (existing.skipped ?? 0) + stats.skipped,
100
+ dryRun: (existing.dryRun ?? 0) + stats.dryRun,
101
+ errors: (existing.errors ?? 0) + stats.errors,
102
+ // Merge article lists, removing any duplicates
103
+ articles: [...new Set([...(existing.articles ?? []), ...stats.articles])],
104
+ };
105
+ // Keep prior results; append new ones (dedup by slug if present)
106
+ const existingResults = existing.results ?? [];
107
+ const newSlugs = new Set(results.map((r) => r.slug).filter(Boolean));
108
+ const priorResults = existingResults.filter((r) => !newSlugs.has(r.slug));
109
+ const combinedResults = [...priorResults, ...results];
110
+ // Additionally de-duplicate entries that do not have a slug by using a
111
+ // stable structural key (JSON representation). This prevents repeated
112
+ // same-day runs from accumulating duplicate slug-less error entries.
113
+ const seenAnonymousKeys = new Set();
114
+ mergedResults = combinedResults.filter((result) => {
115
+ if (result.slug) {
116
+ return true;
117
+ }
118
+ const key = JSON.stringify(result);
119
+ if (seenAnonymousKeys.has(key)) {
120
+ return false;
121
+ }
122
+ seenAnonymousKeys.add(key);
123
+ return true;
124
+ });
125
+ // usedMCP is true if either run connected to MCP
126
+ mergedUsedMCP = mergedUsedMCP || (existing.usedMCP ?? false);
127
+ }
128
+ catch {
129
+ // If the existing file is malformed, proceed with current run's data only
130
+ }
131
+ }
132
+ const metadata = {
133
+ timestamp: mergedStats.timestamp,
134
+ generated: mergedStats.generated,
135
+ skipped: mergedStats.skipped,
136
+ dryRun: mergedStats.dryRun,
137
+ errors: mergedStats.errors,
138
+ articles: mergedStats.articles,
139
+ results: mergedResults,
140
+ usedMCP: mergedUsedMCP,
141
+ };
142
+ atomicWrite(metadataPath, JSON.stringify(metadata, null, 2));
143
+ console.log(`📝 Metadata written to: ${metadataPath}`);
144
+ }
145
+ //# sourceMappingURL=output-stage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output-stage.js","sourceRoot":"","sources":["../../../src/generators/pipeline/output-stage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * @module Generators/Pipeline/TransformStage
3
+ * @description Data normalisation and schema validation for MCP responses.
4
+ *
5
+ * All functions are pure and side-effect-free (except structured logging).
6
+ * Validation failures are logged but never thrown — callers should check the
7
+ * returned {@link ValidationResult} and fall back gracefully.
8
+ */
9
+ /** Result of a schema validation check */
10
+ export interface ValidationResult {
11
+ /** Whether the response passed all checks */
12
+ valid: boolean;
13
+ /** Human-readable list of validation failures (empty when `valid` is true) */
14
+ errors: string[];
15
+ }
16
+ /**
17
+ * Validate that an MCP tool response has the standard envelope shape:
18
+ * `{ content: [{ text: string }] }`.
19
+ *
20
+ * Does **not** throw — returns a {@link ValidationResult} so callers can
21
+ * choose their own degradation strategy.
22
+ *
23
+ * @param toolName - Tool name used in warning messages
24
+ * @param data - Raw response to validate
25
+ * @returns Validation result with any error descriptions
26
+ */
27
+ export declare function validateMCPResponse(toolName: string, data: unknown): ValidationResult;
28
+ /**
29
+ * Normalise a date string to YYYY-MM-DD ISO 8601 format.
30
+ * Returns the input unchanged when parsing fails.
31
+ *
32
+ * @param date - Raw date string
33
+ * @returns Normalised ISO 8601 date string
34
+ */
35
+ export declare function normalizeISO8601Date(date: string): string;
36
+ /**
37
+ * Sanitise a text string by collapsing internal whitespace and trimming edges.
38
+ *
39
+ * @param text - Raw text string
40
+ * @returns Sanitised text string
41
+ */
42
+ export declare function sanitizeText(text: string): string;
43
+ /**
44
+ * Validate that a country code matches the ISO 3166-1 alpha-2 pattern.
45
+ *
46
+ * @param code - Two-letter country code
47
+ * @returns `true` when the code matches `[A-Z]{2}`
48
+ */
49
+ export declare function isValidCountryCode(code: string): boolean;
50
+ /**
51
+ * Validate that a language code matches the ISO 639-1 alpha-2 pattern.
52
+ *
53
+ * @param code - Two-letter language code
54
+ * @returns `true` when the code matches `[a-z]{2}`
55
+ */
56
+ export declare function isValidLanguageCode(code: string): boolean;
57
+ //# sourceMappingURL=transform-stage.d.ts.map