@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.
- package/AGENTS.md +401 -0
- package/CLAUDE.md +401 -0
- package/Dockerfile +125 -0
- package/LICENSE +201 -0
- package/README.md +309 -0
- package/changelog/0.1.x/0.1.0.md +25 -0
- package/changelog/0.1.x/0.1.1.md +24 -0
- package/changelog/0.1.x/0.1.2.md +16 -0
- package/changelog/0.1.x/0.1.3.md +11 -0
- package/changelog/0.1.x/0.1.4.md +11 -0
- package/changelog/0.1.x/0.1.5.md +18 -0
- package/changelog/template.md +129 -0
- package/dist/config/server-config.d.ts +19 -0
- package/dist/config/server-config.d.ts.map +1 -0
- package/dist/config/server-config.js +35 -0
- package/dist/config/server-config.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +37 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp-server/resources/definitions/ris-document.resource.d.ts +30 -0
- package/dist/mcp-server/resources/definitions/ris-document.resource.d.ts.map +1 -0
- package/dist/mcp-server/resources/definitions/ris-document.resource.js +75 -0
- package/dist/mcp-server/resources/definitions/ris-document.resource.js.map +1 -0
- package/dist/mcp-server/tools/definitions/_shared.d.ts +8 -0
- package/dist/mcp-server/tools/definitions/_shared.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/_shared.js +10 -0
- package/dist/mcp-server/tools/definitions/_shared.js.map +1 -0
- package/dist/mcp-server/tools/definitions/ris-get-document.tool.d.ts +189 -0
- package/dist/mcp-server/tools/definitions/ris-get-document.tool.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/ris-get-document.tool.js +504 -0
- package/dist/mcp-server/tools/definitions/ris-get-document.tool.js.map +1 -0
- package/dist/mcp-server/tools/definitions/ris-list-reference.tool.d.ts +42 -0
- package/dist/mcp-server/tools/definitions/ris-list-reference.tool.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/ris-list-reference.tool.js +316 -0
- package/dist/mcp-server/tools/definitions/ris-list-reference.tool.js.map +1 -0
- package/dist/mcp-server/tools/definitions/ris-lookup-citation.tool.d.ts +80 -0
- package/dist/mcp-server/tools/definitions/ris-lookup-citation.tool.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/ris-lookup-citation.tool.js +529 -0
- package/dist/mcp-server/tools/definitions/ris-lookup-citation.tool.js.map +1 -0
- package/dist/mcp-server/tools/definitions/ris-search-announcements.tool.d.ts +118 -0
- package/dist/mcp-server/tools/definitions/ris-search-announcements.tool.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/ris-search-announcements.tool.js +389 -0
- package/dist/mcp-server/tools/definitions/ris-search-announcements.tool.js.map +1 -0
- package/dist/mcp-server/tools/definitions/ris-search-case-law.tool.d.ts +178 -0
- package/dist/mcp-server/tools/definitions/ris-search-case-law.tool.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/ris-search-case-law.tool.js +495 -0
- package/dist/mcp-server/tools/definitions/ris-search-case-law.tool.js.map +1 -0
- package/dist/mcp-server/tools/definitions/ris-search-drafts.tool.d.ts +80 -0
- package/dist/mcp-server/tools/definitions/ris-search-drafts.tool.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/ris-search-drafts.tool.js +264 -0
- package/dist/mcp-server/tools/definitions/ris-search-drafts.tool.js.map +1 -0
- package/dist/mcp-server/tools/definitions/ris-search-gazette.tool.d.ts +147 -0
- package/dist/mcp-server/tools/definitions/ris-search-gazette.tool.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/ris-search-gazette.tool.js +509 -0
- package/dist/mcp-server/tools/definitions/ris-search-gazette.tool.js.map +1 -0
- package/dist/mcp-server/tools/definitions/ris-search-legislation.tool.d.ts +145 -0
- package/dist/mcp-server/tools/definitions/ris-search-legislation.tool.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/ris-search-legislation.tool.js +466 -0
- package/dist/mcp-server/tools/definitions/ris-search-legislation.tool.js.map +1 -0
- package/dist/mcp-server/tools/definitions/ris-track-changes.tool.d.ts +73 -0
- package/dist/mcp-server/tools/definitions/ris-track-changes.tool.d.ts.map +1 -0
- package/dist/mcp-server/tools/definitions/ris-track-changes.tool.js +265 -0
- package/dist/mcp-server/tools/definitions/ris-track-changes.tool.js.map +1 -0
- package/dist/services/ris/normalizer.d.ts +40 -0
- package/dist/services/ris/normalizer.d.ts.map +1 -0
- package/dist/services/ris/normalizer.js +480 -0
- package/dist/services/ris/normalizer.js.map +1 -0
- package/dist/services/ris/reference/applications.d.ts +529 -0
- package/dist/services/ris/reference/applications.d.ts.map +1 -0
- package/dist/services/ris/reference/applications.js +520 -0
- package/dist/services/ris/reference/applications.js.map +1 -0
- package/dist/services/ris/reference/changed-since-intervals.d.ts +42 -0
- package/dist/services/ris/reference/changed-since-intervals.d.ts.map +1 -0
- package/dist/services/ris/reference/changed-since-intervals.js +16 -0
- package/dist/services/ris/reference/changed-since-intervals.js.map +1 -0
- package/dist/services/ris/reference/citation-formats.d.ts +39 -0
- package/dist/services/ris/reference/citation-formats.d.ts.map +1 -0
- package/dist/services/ris/reference/citation-formats.js +39 -0
- package/dist/services/ris/reference/citation-formats.js.map +1 -0
- package/dist/services/ris/reference/collections.d.ts +82 -0
- package/dist/services/ris/reference/collections.d.ts.map +1 -0
- package/dist/services/ris/reference/collections.js +102 -0
- package/dist/services/ris/reference/collections.js.map +1 -0
- package/dist/services/ris/reference/courts.d.ts +201 -0
- package/dist/services/ris/reference/courts.d.ts.map +1 -0
- package/dist/services/ris/reference/courts.js +198 -0
- package/dist/services/ris/reference/courts.js.map +1 -0
- package/dist/services/ris/reference/decision-kinds.d.ts +78 -0
- package/dist/services/ris/reference/decision-kinds.d.ts.map +1 -0
- package/dist/services/ris/reference/decision-kinds.js +117 -0
- package/dist/services/ris/reference/decision-kinds.js.map +1 -0
- package/dist/services/ris/reference/decision-types.d.ts +36 -0
- package/dist/services/ris/reference/decision-types.d.ts.map +1 -0
- package/dist/services/ris/reference/decision-types.js +29 -0
- package/dist/services/ris/reference/decision-types.js.map +1 -0
- package/dist/services/ris/reference/district-authorities.d.ts +314 -0
- package/dist/services/ris/reference/district-authorities.d.ts.map +1 -0
- package/dist/services/ris/reference/district-authorities.js +212 -0
- package/dist/services/ris/reference/district-authorities.js.map +1 -0
- package/dist/services/ris/reference/gazette-parts.d.ts +73 -0
- package/dist/services/ris/reference/gazette-parts.d.ts.map +1 -0
- package/dist/services/ris/reference/gazette-parts.js +58 -0
- package/dist/services/ris/reference/gazette-parts.js.map +1 -0
- package/dist/services/ris/reference/index.d.ts +23 -0
- package/dist/services/ris/reference/index.d.ts.map +1 -0
- package/dist/services/ris/reference/index.js +23 -0
- package/dist/services/ris/reference/index.js.map +1 -0
- package/dist/services/ris/reference/issuing-bodies.d.ts +642 -0
- package/dist/services/ris/reference/issuing-bodies.d.ts.map +1 -0
- package/dist/services/ris/reference/issuing-bodies.js +616 -0
- package/dist/services/ris/reference/issuing-bodies.js.map +1 -0
- package/dist/services/ris/reference/justiz-subject-areas.d.ts +133 -0
- package/dist/services/ris/reference/justiz-subject-areas.d.ts.map +1 -0
- package/dist/services/ris/reference/justiz-subject-areas.js +67 -0
- package/dist/services/ris/reference/justiz-subject-areas.js.map +1 -0
- package/dist/services/ris/reference/law-types.d.ts +46 -0
- package/dist/services/ris/reference/law-types.d.ts.map +1 -0
- package/dist/services/ris/reference/law-types.js +41 -0
- package/dist/services/ris/reference/law-types.js.map +1 -0
- package/dist/services/ris/reference/ministries.d.ts +360 -0
- package/dist/services/ris/reference/ministries.d.ts.map +1 -0
- package/dist/services/ris/reference/ministries.js +408 -0
- package/dist/services/ris/reference/ministries.js.map +1 -0
- package/dist/services/ris/reference/search-syntax.d.ts +66 -0
- package/dist/services/ris/reference/search-syntax.d.ts.map +1 -0
- package/dist/services/ris/reference/search-syntax.js +65 -0
- package/dist/services/ris/reference/search-syntax.js.map +1 -0
- package/dist/services/ris/reference/section-types.d.ts +33 -0
- package/dist/services/ris/reference/section-types.d.ts.map +1 -0
- package/dist/services/ris/reference/section-types.js +29 -0
- package/dist/services/ris/reference/section-types.js.map +1 -0
- package/dist/services/ris/reference/stages.d.ts +41 -0
- package/dist/services/ris/reference/stages.d.ts.map +1 -0
- package/dist/services/ris/reference/stages.js +27 -0
- package/dist/services/ris/reference/stages.js.map +1 -0
- package/dist/services/ris/reference/states.d.ts +90 -0
- package/dist/services/ris/reference/states.d.ts.map +1 -0
- package/dist/services/ris/reference/states.js +85 -0
- package/dist/services/ris/reference/states.js.map +1 -0
- package/dist/services/ris/request-builder.d.ts +195 -0
- package/dist/services/ris/request-builder.d.ts.map +1 -0
- package/dist/services/ris/request-builder.js +673 -0
- package/dist/services/ris/request-builder.js.map +1 -0
- package/dist/services/ris/ris-service.d.ts +65 -0
- package/dist/services/ris/ris-service.d.ts.map +1 -0
- package/dist/services/ris/ris-service.js +200 -0
- package/dist/services/ris/ris-service.js.map +1 -0
- package/dist/services/ris/types.d.ts +651 -0
- package/dist/services/ris/types.d.ts.map +1 -0
- package/dist/services/ris/types.js +11 -0
- package/dist/services/ris/types.js.map +1 -0
- package/package.json +108 -0
- 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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"}
|