@cyanheads/ris-austria-mcp-server 0.1.5

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 (154) hide show
  1. package/AGENTS.md +401 -0
  2. package/CLAUDE.md +401 -0
  3. package/Dockerfile +125 -0
  4. package/LICENSE +201 -0
  5. package/README.md +309 -0
  6. package/changelog/0.1.x/0.1.0.md +25 -0
  7. package/changelog/0.1.x/0.1.1.md +24 -0
  8. package/changelog/0.1.x/0.1.2.md +16 -0
  9. package/changelog/0.1.x/0.1.3.md +11 -0
  10. package/changelog/0.1.x/0.1.4.md +11 -0
  11. package/changelog/0.1.x/0.1.5.md +18 -0
  12. package/changelog/template.md +129 -0
  13. package/dist/config/server-config.d.ts +19 -0
  14. package/dist/config/server-config.d.ts.map +1 -0
  15. package/dist/config/server-config.js +35 -0
  16. package/dist/config/server-config.js.map +1 -0
  17. package/dist/index.d.ts +7 -0
  18. package/dist/index.d.ts.map +1 -0
  19. package/dist/index.js +37 -0
  20. package/dist/index.js.map +1 -0
  21. package/dist/mcp-server/resources/definitions/ris-document.resource.d.ts +30 -0
  22. package/dist/mcp-server/resources/definitions/ris-document.resource.d.ts.map +1 -0
  23. package/dist/mcp-server/resources/definitions/ris-document.resource.js +75 -0
  24. package/dist/mcp-server/resources/definitions/ris-document.resource.js.map +1 -0
  25. package/dist/mcp-server/tools/definitions/_shared.d.ts +8 -0
  26. package/dist/mcp-server/tools/definitions/_shared.d.ts.map +1 -0
  27. package/dist/mcp-server/tools/definitions/_shared.js +10 -0
  28. package/dist/mcp-server/tools/definitions/_shared.js.map +1 -0
  29. package/dist/mcp-server/tools/definitions/ris-get-document.tool.d.ts +189 -0
  30. package/dist/mcp-server/tools/definitions/ris-get-document.tool.d.ts.map +1 -0
  31. package/dist/mcp-server/tools/definitions/ris-get-document.tool.js +504 -0
  32. package/dist/mcp-server/tools/definitions/ris-get-document.tool.js.map +1 -0
  33. package/dist/mcp-server/tools/definitions/ris-list-reference.tool.d.ts +42 -0
  34. package/dist/mcp-server/tools/definitions/ris-list-reference.tool.d.ts.map +1 -0
  35. package/dist/mcp-server/tools/definitions/ris-list-reference.tool.js +316 -0
  36. package/dist/mcp-server/tools/definitions/ris-list-reference.tool.js.map +1 -0
  37. package/dist/mcp-server/tools/definitions/ris-lookup-citation.tool.d.ts +80 -0
  38. package/dist/mcp-server/tools/definitions/ris-lookup-citation.tool.d.ts.map +1 -0
  39. package/dist/mcp-server/tools/definitions/ris-lookup-citation.tool.js +529 -0
  40. package/dist/mcp-server/tools/definitions/ris-lookup-citation.tool.js.map +1 -0
  41. package/dist/mcp-server/tools/definitions/ris-search-announcements.tool.d.ts +118 -0
  42. package/dist/mcp-server/tools/definitions/ris-search-announcements.tool.d.ts.map +1 -0
  43. package/dist/mcp-server/tools/definitions/ris-search-announcements.tool.js +389 -0
  44. package/dist/mcp-server/tools/definitions/ris-search-announcements.tool.js.map +1 -0
  45. package/dist/mcp-server/tools/definitions/ris-search-case-law.tool.d.ts +178 -0
  46. package/dist/mcp-server/tools/definitions/ris-search-case-law.tool.d.ts.map +1 -0
  47. package/dist/mcp-server/tools/definitions/ris-search-case-law.tool.js +495 -0
  48. package/dist/mcp-server/tools/definitions/ris-search-case-law.tool.js.map +1 -0
  49. package/dist/mcp-server/tools/definitions/ris-search-drafts.tool.d.ts +80 -0
  50. package/dist/mcp-server/tools/definitions/ris-search-drafts.tool.d.ts.map +1 -0
  51. package/dist/mcp-server/tools/definitions/ris-search-drafts.tool.js +264 -0
  52. package/dist/mcp-server/tools/definitions/ris-search-drafts.tool.js.map +1 -0
  53. package/dist/mcp-server/tools/definitions/ris-search-gazette.tool.d.ts +147 -0
  54. package/dist/mcp-server/tools/definitions/ris-search-gazette.tool.d.ts.map +1 -0
  55. package/dist/mcp-server/tools/definitions/ris-search-gazette.tool.js +509 -0
  56. package/dist/mcp-server/tools/definitions/ris-search-gazette.tool.js.map +1 -0
  57. package/dist/mcp-server/tools/definitions/ris-search-legislation.tool.d.ts +145 -0
  58. package/dist/mcp-server/tools/definitions/ris-search-legislation.tool.d.ts.map +1 -0
  59. package/dist/mcp-server/tools/definitions/ris-search-legislation.tool.js +466 -0
  60. package/dist/mcp-server/tools/definitions/ris-search-legislation.tool.js.map +1 -0
  61. package/dist/mcp-server/tools/definitions/ris-track-changes.tool.d.ts +73 -0
  62. package/dist/mcp-server/tools/definitions/ris-track-changes.tool.d.ts.map +1 -0
  63. package/dist/mcp-server/tools/definitions/ris-track-changes.tool.js +265 -0
  64. package/dist/mcp-server/tools/definitions/ris-track-changes.tool.js.map +1 -0
  65. package/dist/services/ris/normalizer.d.ts +40 -0
  66. package/dist/services/ris/normalizer.d.ts.map +1 -0
  67. package/dist/services/ris/normalizer.js +480 -0
  68. package/dist/services/ris/normalizer.js.map +1 -0
  69. package/dist/services/ris/reference/applications.d.ts +529 -0
  70. package/dist/services/ris/reference/applications.d.ts.map +1 -0
  71. package/dist/services/ris/reference/applications.js +520 -0
  72. package/dist/services/ris/reference/applications.js.map +1 -0
  73. package/dist/services/ris/reference/changed-since-intervals.d.ts +42 -0
  74. package/dist/services/ris/reference/changed-since-intervals.d.ts.map +1 -0
  75. package/dist/services/ris/reference/changed-since-intervals.js +16 -0
  76. package/dist/services/ris/reference/changed-since-intervals.js.map +1 -0
  77. package/dist/services/ris/reference/citation-formats.d.ts +39 -0
  78. package/dist/services/ris/reference/citation-formats.d.ts.map +1 -0
  79. package/dist/services/ris/reference/citation-formats.js +39 -0
  80. package/dist/services/ris/reference/citation-formats.js.map +1 -0
  81. package/dist/services/ris/reference/collections.d.ts +82 -0
  82. package/dist/services/ris/reference/collections.d.ts.map +1 -0
  83. package/dist/services/ris/reference/collections.js +102 -0
  84. package/dist/services/ris/reference/collections.js.map +1 -0
  85. package/dist/services/ris/reference/courts.d.ts +201 -0
  86. package/dist/services/ris/reference/courts.d.ts.map +1 -0
  87. package/dist/services/ris/reference/courts.js +198 -0
  88. package/dist/services/ris/reference/courts.js.map +1 -0
  89. package/dist/services/ris/reference/decision-kinds.d.ts +78 -0
  90. package/dist/services/ris/reference/decision-kinds.d.ts.map +1 -0
  91. package/dist/services/ris/reference/decision-kinds.js +117 -0
  92. package/dist/services/ris/reference/decision-kinds.js.map +1 -0
  93. package/dist/services/ris/reference/decision-types.d.ts +36 -0
  94. package/dist/services/ris/reference/decision-types.d.ts.map +1 -0
  95. package/dist/services/ris/reference/decision-types.js +29 -0
  96. package/dist/services/ris/reference/decision-types.js.map +1 -0
  97. package/dist/services/ris/reference/district-authorities.d.ts +314 -0
  98. package/dist/services/ris/reference/district-authorities.d.ts.map +1 -0
  99. package/dist/services/ris/reference/district-authorities.js +212 -0
  100. package/dist/services/ris/reference/district-authorities.js.map +1 -0
  101. package/dist/services/ris/reference/gazette-parts.d.ts +73 -0
  102. package/dist/services/ris/reference/gazette-parts.d.ts.map +1 -0
  103. package/dist/services/ris/reference/gazette-parts.js +58 -0
  104. package/dist/services/ris/reference/gazette-parts.js.map +1 -0
  105. package/dist/services/ris/reference/index.d.ts +23 -0
  106. package/dist/services/ris/reference/index.d.ts.map +1 -0
  107. package/dist/services/ris/reference/index.js +23 -0
  108. package/dist/services/ris/reference/index.js.map +1 -0
  109. package/dist/services/ris/reference/issuing-bodies.d.ts +642 -0
  110. package/dist/services/ris/reference/issuing-bodies.d.ts.map +1 -0
  111. package/dist/services/ris/reference/issuing-bodies.js +616 -0
  112. package/dist/services/ris/reference/issuing-bodies.js.map +1 -0
  113. package/dist/services/ris/reference/justiz-subject-areas.d.ts +133 -0
  114. package/dist/services/ris/reference/justiz-subject-areas.d.ts.map +1 -0
  115. package/dist/services/ris/reference/justiz-subject-areas.js +67 -0
  116. package/dist/services/ris/reference/justiz-subject-areas.js.map +1 -0
  117. package/dist/services/ris/reference/law-types.d.ts +46 -0
  118. package/dist/services/ris/reference/law-types.d.ts.map +1 -0
  119. package/dist/services/ris/reference/law-types.js +41 -0
  120. package/dist/services/ris/reference/law-types.js.map +1 -0
  121. package/dist/services/ris/reference/ministries.d.ts +360 -0
  122. package/dist/services/ris/reference/ministries.d.ts.map +1 -0
  123. package/dist/services/ris/reference/ministries.js +408 -0
  124. package/dist/services/ris/reference/ministries.js.map +1 -0
  125. package/dist/services/ris/reference/search-syntax.d.ts +66 -0
  126. package/dist/services/ris/reference/search-syntax.d.ts.map +1 -0
  127. package/dist/services/ris/reference/search-syntax.js +65 -0
  128. package/dist/services/ris/reference/search-syntax.js.map +1 -0
  129. package/dist/services/ris/reference/section-types.d.ts +33 -0
  130. package/dist/services/ris/reference/section-types.d.ts.map +1 -0
  131. package/dist/services/ris/reference/section-types.js +29 -0
  132. package/dist/services/ris/reference/section-types.js.map +1 -0
  133. package/dist/services/ris/reference/stages.d.ts +41 -0
  134. package/dist/services/ris/reference/stages.d.ts.map +1 -0
  135. package/dist/services/ris/reference/stages.js +27 -0
  136. package/dist/services/ris/reference/stages.js.map +1 -0
  137. package/dist/services/ris/reference/states.d.ts +90 -0
  138. package/dist/services/ris/reference/states.d.ts.map +1 -0
  139. package/dist/services/ris/reference/states.js +85 -0
  140. package/dist/services/ris/reference/states.js.map +1 -0
  141. package/dist/services/ris/request-builder.d.ts +195 -0
  142. package/dist/services/ris/request-builder.d.ts.map +1 -0
  143. package/dist/services/ris/request-builder.js +673 -0
  144. package/dist/services/ris/request-builder.js.map +1 -0
  145. package/dist/services/ris/ris-service.d.ts +65 -0
  146. package/dist/services/ris/ris-service.d.ts.map +1 -0
  147. package/dist/services/ris/ris-service.js +200 -0
  148. package/dist/services/ris/ris-service.js.map +1 -0
  149. package/dist/services/ris/types.d.ts +651 -0
  150. package/dist/services/ris/types.d.ts.map +1 -0
  151. package/dist/services/ris/types.js +11 -0
  152. package/dist/services/ris/types.js.map +1 -0
  153. package/package.json +108 -0
  154. package/server.json +111 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-builder.js","sourceRoot":"","sources":["../../../src/services/ris/request-builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * @fileoverview RisService — the single gateway to the RIS OGD REST API v2.6
3
+ * (`data.bka.gv.at`) and the document content host (`www.ris.bka.gv.at`). Tool handlers
4
+ * call the per-class search methods and never touch HTTP or the JSON-XML envelope.
5
+ *
6
+ * Resilience: `withRetry` (base delay 1.5s — rate-limited-API calibration) wraps the full
7
+ * fetch + parse pipeline; `fetchWithTimeout` maps HTTP statuses; HTML error pages and
8
+ * non-JSON bodies classify as transient `ServiceUnavailable`, never `SerializationError`.
9
+ * In-band RIS Client errors surface as `InvalidParams` (non-transient — not retried).
10
+ * Content fetches are allowlisted to the content host's `/Dokumente/` tree (SSRF guard).
11
+ * @module services/ris/ris-service
12
+ */
13
+ import type { Context } from '@cyanheads/mcp-ts-core';
14
+ import type { AppConfig } from '@cyanheads/mcp-ts-core/config';
15
+ import { type AnnouncementsSearchParams, type CaseLawSearchParams, type DraftsSearchParams, type GazetteSearchParams, type LegislationSearchParams, type TrackChangesParams } from './request-builder.js';
16
+ import type { RisChangeSet, RisDocumentContent, RisSearchResult } from './types.js';
17
+ /** Rendition formats a content URL can be constructed for. */
18
+ export declare const RIS_CONTENT_FORMATS: readonly ["html", "pdf", "rtf", "xml"];
19
+ export type RisContentFormat = (typeof RIS_CONTENT_FORMATS)[number];
20
+ /**
21
+ * Assert a caller-supplied document URL is fetchable: same origin as the configured
22
+ * content host and inside its `/Dokumente/` tree. Nothing else is ever fetched.
23
+ */
24
+ export declare function assertFetchableDocumentUrl(url: string, contentBaseUrl: string): URL;
25
+ /**
26
+ * Gateway service for RIS search controllers, the History change feed, and document
27
+ * content fetches.
28
+ */
29
+ export declare class RisService {
30
+ private readonly identity;
31
+ /** `name/version` identity used to build the descriptive User-Agent. */
32
+ constructor(identity: string);
33
+ private get config();
34
+ private userAgent;
35
+ /** Derive a correlated `RequestContext` for the network utilities from the handler ctx. */
36
+ private requestContext;
37
+ /** Search consolidated federal/state/municipal law and English translations. */
38
+ searchLegislation(params: LegislationSearchParams, ctx: Context): Promise<RisSearchResult>;
39
+ /** Search one court/tribunal application of the Judikatur surface (incl. Upts). */
40
+ searchCaseLaw(params: CaseLawSearchParams, ctx: Context): Promise<RisSearchResult>;
41
+ /** Browse the promulgation record — federal era tiers, state series, district, municipal. */
42
+ searchGazette(params: GazetteSearchParams, ctx: Context): Promise<RisSearchResult>;
43
+ /** Search the federal lawmaking pipeline (review drafts, government bills). */
44
+ searchDrafts(params: DraftsSearchParams, ctx: Context): Promise<RisSearchResult>;
45
+ /** Search the sectoral official gazettes and executive documents. */
46
+ searchAnnouncements(params: AnnouncementsSearchParams, ctx: Context): Promise<RisSearchResult>;
47
+ /** Exact-dated change feed per application; deletions included on request. */
48
+ trackChanges(params: TrackChangesParams, ctx: Context): Promise<RisChangeSet>;
49
+ /**
50
+ * Construct a content URL for a document number from the per-application path-segment
51
+ * map (`/Dokumente/{segment}/{DOKNR}/{DOKNR}.{format}`), harvested live 2026-07-05.
52
+ */
53
+ buildDocumentContentUrl(application: string, documentNumber: string, format: RisContentFormat): string;
54
+ /** Fetch one document rendition from the content host (allowlist-guarded). */
55
+ fetchDocumentContent(url: string, ctx: Context): Promise<RisDocumentContent>;
56
+ /** Run one search request with retry wrapping the full fetch + parse pipeline. */
57
+ private search;
58
+ /** GET one controller endpoint and return the parsed JSON body (single attempt). */
59
+ private fetchJson;
60
+ }
61
+ /** Initialize the singleton from `setup()` in the server entry point. */
62
+ export declare function initRisService(config: AppConfig): void;
63
+ /** Access the initialized service; throws when `initRisService()` was never called. */
64
+ export declare function getRisService(): RisService;
65
+ //# sourceMappingURL=ris-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ris-service.d.ts","sourceRoot":"","sources":["../../../src/services/ris/ris-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAa/D,OAAO,EACL,KAAK,yBAAyB,EAO9B,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAE5B,KAAK,kBAAkB,EACxB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAMpF,8DAA8D;AAC9D,eAAO,MAAM,mBAAmB,wCAAyC,CAAC;AAC1E,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AASpE;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,GAAG,CAenF;AAED;;;GAGG;AACH,qBAAa,UAAU;IAET,OAAO,CAAC,QAAQ,CAAC,QAAQ;IADrC,wEAAwE;gBAC3C,QAAQ,EAAE,MAAM;IAE7C,OAAO,KAAK,MAAM,GAEjB;IAED,OAAO,CAAC,SAAS;IAKjB,2FAA2F;IAC3F,OAAO,CAAC,cAAc;IAatB,gFAAgF;IAC1E,iBAAiB,CAAC,MAAM,EAAE,uBAAuB,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC;IAIhG,mFAAmF;IAC7E,aAAa,CAAC,MAAM,EAAE,mBAAmB,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC;IAIxF,6FAA6F;IACvF,aAAa,CAAC,MAAM,EAAE,mBAAmB,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC;IAIxF,+EAA+E;IACzE,YAAY,CAAC,MAAM,EAAE,kBAAkB,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC;IAItF,qEAAqE;IAC/D,mBAAmB,CACvB,MAAM,EAAE,yBAAyB,EACjC,GAAG,EAAE,OAAO,GACX,OAAO,CAAC,eAAe,CAAC;IAI3B,8EAA8E;IACxE,YAAY,CAAC,MAAM,EAAE,kBAAkB,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC;IAcnF;;;OAGG;IACH,uBAAuB,CACrB,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,EACtB,MAAM,EAAE,gBAAgB,GACvB,MAAM;IA0BT,8EAA8E;IACxE,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA4BlF,kFAAkF;YACpE,MAAM;IAcpB,oFAAoF;YACtE,SAAS;CA8BxB;AAMD,yEAAyE;AACzE,wBAAgB,cAAc,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAEtD;AAED,uFAAuF;AACvF,wBAAgB,aAAa,IAAI,UAAU,CAK1C"}
@@ -0,0 +1,200 @@
1
+ /**
2
+ * @fileoverview RisService — the single gateway to the RIS OGD REST API v2.6
3
+ * (`data.bka.gv.at`) and the document content host (`www.ris.bka.gv.at`). Tool handlers
4
+ * call the per-class search methods and never touch HTTP or the JSON-XML envelope.
5
+ *
6
+ * Resilience: `withRetry` (base delay 1.5s — rate-limited-API calibration) wraps the full
7
+ * fetch + parse pipeline; `fetchWithTimeout` maps HTTP statuses; HTML error pages and
8
+ * non-JSON bodies classify as transient `ServiceUnavailable`, never `SerializationError`.
9
+ * In-band RIS Client errors surface as `InvalidParams` (non-transient — not retried).
10
+ * Content fetches are allowlisted to the content host's `/Dokumente/` tree (SSRF guard).
11
+ * @module services/ris/ris-service
12
+ */
13
+ import { serviceUnavailable, validationError } from '@cyanheads/mcp-ts-core/errors';
14
+ import { fetchWithTimeout, requestContextService, withRetry, } from '@cyanheads/mcp-ts-core/utils';
15
+ import { getServerConfig } from '../../config/server-config.js';
16
+ import { isHtmlErrorPage, parseHistoryResponse, parseSearchResponse } from './normalizer.js';
17
+ import { RIS_APPLICATIONS } from './reference/index.js';
18
+ import { buildAnnouncementsRequest, buildCaseLawRequest, buildDraftsRequest, buildGazetteRequest, buildLegislationRequest, buildTrackChangesRequest, } from './request-builder.js';
19
+ const SEARCH_TIMEOUT_MS = 15_000;
20
+ const CONTENT_TIMEOUT_MS = 20_000;
21
+ const RETRY_BASE_DELAY_MS = 1_500;
22
+ /** Rendition formats a content URL can be constructed for. */
23
+ export const RIS_CONTENT_FORMATS = ['html', 'pdf', 'rtf', 'xml'];
24
+ /** Document numbers observed live use letters (incl. umlauts), digits, `_`, `.`, `~`, `-`. */
25
+ const DOCUMENT_NUMBER_PATTERN = /^[\p{L}\p{N}_.~-]+$/u;
26
+ const CONTENT_PATH_SEGMENTS = new Map(RIS_APPLICATIONS.map((app) => [app.code, app.contentPathSegment]));
27
+ /**
28
+ * Assert a caller-supplied document URL is fetchable: same origin as the configured
29
+ * content host and inside its `/Dokumente/` tree. Nothing else is ever fetched.
30
+ */
31
+ export function assertFetchableDocumentUrl(url, contentBaseUrl) {
32
+ let parsed;
33
+ try {
34
+ parsed = new URL(url);
35
+ }
36
+ catch (cause) {
37
+ throw validationError(`document_url is not a valid URL: "${url}"`, { url }, { cause });
38
+ }
39
+ const allowedOrigin = new URL(contentBaseUrl).origin;
40
+ if (parsed.origin !== allowedOrigin || !parsed.pathname.startsWith('/Dokumente/')) {
41
+ throw validationError(`Only ${allowedOrigin}/Dokumente/ URLs are fetchable — pass a URL exactly as returned in content_urls.`, { allowedOrigin, url });
42
+ }
43
+ return parsed;
44
+ }
45
+ /**
46
+ * Gateway service for RIS search controllers, the History change feed, and document
47
+ * content fetches.
48
+ */
49
+ export class RisService {
50
+ identity;
51
+ /** `name/version` identity used to build the descriptive User-Agent. */
52
+ constructor(identity) {
53
+ this.identity = identity;
54
+ }
55
+ get config() {
56
+ return getServerConfig();
57
+ }
58
+ userAgent() {
59
+ const contact = this.config.contact ?? 'https://github.com/cyanheads/ris-austria-mcp-server';
60
+ return `${this.identity} (${contact})`;
61
+ }
62
+ /** Derive a correlated `RequestContext` for the network utilities from the handler ctx. */
63
+ requestContext(operation, ctx) {
64
+ return requestContextService.createRequestContext({
65
+ operation,
66
+ parentContext: {
67
+ requestId: ctx.requestId,
68
+ spanId: ctx.spanId,
69
+ tenantId: ctx.tenantId,
70
+ timestamp: ctx.timestamp,
71
+ traceId: ctx.traceId,
72
+ },
73
+ });
74
+ }
75
+ /** Search consolidated federal/state/municipal law and English translations. */
76
+ async searchLegislation(params, ctx) {
77
+ return await this.search(buildLegislationRequest(params), ctx);
78
+ }
79
+ /** Search one court/tribunal application of the Judikatur surface (incl. Upts). */
80
+ async searchCaseLaw(params, ctx) {
81
+ return await this.search(buildCaseLawRequest(params), ctx);
82
+ }
83
+ /** Browse the promulgation record — federal era tiers, state series, district, municipal. */
84
+ async searchGazette(params, ctx) {
85
+ return await this.search(buildGazetteRequest(params), ctx);
86
+ }
87
+ /** Search the federal lawmaking pipeline (review drafts, government bills). */
88
+ async searchDrafts(params, ctx) {
89
+ return await this.search(buildDraftsRequest(params), ctx);
90
+ }
91
+ /** Search the sectoral official gazettes and executive documents. */
92
+ async searchAnnouncements(params, ctx) {
93
+ return await this.search(buildAnnouncementsRequest(params), ctx);
94
+ }
95
+ /** Exact-dated change feed per application; deletions included on request. */
96
+ async trackChanges(params, ctx) {
97
+ const request = buildTrackChangesRequest(params);
98
+ const requestContext = this.requestContext('RisService.trackChanges', ctx);
99
+ return await withRetry(async () => parseHistoryResponse(await this.fetchJson(request, requestContext, ctx)), {
100
+ baseDelayMs: RETRY_BASE_DELAY_MS,
101
+ context: requestContext,
102
+ operation: 'RisService.trackChanges',
103
+ signal: ctx.signal,
104
+ });
105
+ }
106
+ /**
107
+ * Construct a content URL for a document number from the per-application path-segment
108
+ * map (`/Dokumente/{segment}/{DOKNR}/{DOKNR}.{format}`), harvested live 2026-07-05.
109
+ */
110
+ buildDocumentContentUrl(application, documentNumber, format) {
111
+ const segment = CONTENT_PATH_SEGMENTS.get(application);
112
+ if (segment === undefined) {
113
+ throw validationError(`Unknown RIS application "${application}".`, {
114
+ application,
115
+ valid: [...CONTENT_PATH_SEGMENTS.keys()],
116
+ });
117
+ }
118
+ if (segment === null) {
119
+ throw validationError(`${application} documents carry no content URLs (metadata only — scans are hosted by the Austrian National Library).`, { application });
120
+ }
121
+ if (!DOCUMENT_NUMBER_PATTERN.test(documentNumber)) {
122
+ throw validationError(`document_number "${documentNumber}" is not a valid RIS document number.`, {
123
+ documentNumber,
124
+ });
125
+ }
126
+ const doknr = encodeURIComponent(documentNumber);
127
+ return `${this.config.contentBaseUrl}/Dokumente/${segment}/${doknr}/${doknr}.${format}`;
128
+ }
129
+ /** Fetch one document rendition from the content host (allowlist-guarded). */
130
+ async fetchDocumentContent(url, ctx) {
131
+ const target = assertFetchableDocumentUrl(url, this.config.contentBaseUrl);
132
+ const requestContext = this.requestContext('RisService.fetchDocumentContent', ctx);
133
+ return await withRetry(async () => {
134
+ const response = await fetchWithTimeout(target, CONTENT_TIMEOUT_MS, requestContext, {
135
+ headers: { 'User-Agent': this.userAgent() },
136
+ signal: ctx.signal,
137
+ });
138
+ const text = await response.text();
139
+ const contentType = response.headers.get('content-type');
140
+ ctx.log.debug('RIS content fetched', { byteSize: text.length, url: target.href });
141
+ return {
142
+ byteSize: new TextEncoder().encode(text).length,
143
+ ...(contentType !== null && { contentType }),
144
+ text,
145
+ url: target.href,
146
+ };
147
+ }, {
148
+ baseDelayMs: RETRY_BASE_DELAY_MS,
149
+ context: requestContext,
150
+ operation: 'RisService.fetchDocumentContent',
151
+ signal: ctx.signal,
152
+ });
153
+ }
154
+ /** Run one search request with retry wrapping the full fetch + parse pipeline. */
155
+ async search(request, ctx) {
156
+ const operation = `RisService.search:${request.controller}`;
157
+ const requestContext = this.requestContext(operation, ctx);
158
+ return await withRetry(async () => parseSearchResponse(await this.fetchJson(request, requestContext, ctx)), {
159
+ baseDelayMs: RETRY_BASE_DELAY_MS,
160
+ context: requestContext,
161
+ operation,
162
+ signal: ctx.signal,
163
+ });
164
+ }
165
+ /** GET one controller endpoint and return the parsed JSON body (single attempt). */
166
+ async fetchJson(request, requestContext, ctx) {
167
+ const query = new URLSearchParams(request.params).toString();
168
+ const url = `${this.config.apiBaseUrl}/${request.controller}${query === '' ? '' : `?${query}`}`;
169
+ const response = await fetchWithTimeout(url, SEARCH_TIMEOUT_MS, requestContext, {
170
+ headers: { Accept: 'application/json', 'User-Agent': this.userAgent() },
171
+ signal: ctx.signal,
172
+ });
173
+ const text = await response.text();
174
+ if (isHtmlErrorPage(text)) {
175
+ throw serviceUnavailable('RIS returned an HTML error page instead of JSON — likely throttled or degraded.', {
176
+ controller: request.controller,
177
+ });
178
+ }
179
+ try {
180
+ return JSON.parse(text);
181
+ }
182
+ catch (cause) {
183
+ throw serviceUnavailable('RIS returned a non-JSON response — likely a transient upstream failure.', { controller: request.controller }, { cause });
184
+ }
185
+ }
186
+ }
187
+ /* --- Init/accessor pattern --- */
188
+ let _service;
189
+ /** Initialize the singleton from `setup()` in the server entry point. */
190
+ export function initRisService(config) {
191
+ _service = new RisService(`${config.mcpServerName}/${config.mcpServerVersion}`);
192
+ }
193
+ /** Access the initialized service; throws when `initRisService()` was never called. */
194
+ export function getRisService() {
195
+ if (!_service) {
196
+ throw new Error('RisService not initialized — call initRisService() in setup()');
197
+ }
198
+ return _service;
199
+ }
200
+ //# sourceMappingURL=ris-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ris-service.js","sourceRoot":"","sources":["../../../src/services/ris/ris-service.ts"],"names":[],"mappings":"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"}