@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,178 @@
1
+ /**
2
+ * @fileoverview ris_search_case_law — search Austrian case law (Judikatur) in one
3
+ * court/tribunal application per call across the 17 court codes, including the
4
+ * Parteien-Transparenz-Senat (upts), which the service routes to the Sonstige controller.
5
+ * The full court-conditional filter matrix is guarded locally before any upstream call,
6
+ * and decision_kind / subject_area values are validated against the static reference
7
+ * tables — RIS silently ignores unknown params, so local strictness is the only safety.
8
+ * @module mcp-server/tools/definitions/ris-search-case-law
9
+ */
10
+ import { z } from '@cyanheads/mcp-ts-core';
11
+ import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
12
+ import type { RisHit } from '../../../services/ris/types.js';
13
+ export declare const CaseLawRecordSchema: z.ZodObject<{
14
+ document_number: z.ZodString;
15
+ court: z.ZodString;
16
+ organ: z.ZodOptional<z.ZodString>;
17
+ case_numbers: z.ZodArray<z.ZodString>;
18
+ decision_date: z.ZodOptional<z.ZodString>;
19
+ decision_type: z.ZodOptional<z.ZodString>;
20
+ decision_kind: z.ZodOptional<z.ZodString>;
21
+ party: z.ZodOptional<z.ZodString>;
22
+ summary: z.ZodOptional<z.ZodString>;
23
+ guiding_principle: z.ZodOptional<z.ZodString>;
24
+ norms_cited: z.ZodArray<z.ZodString>;
25
+ keywords: z.ZodOptional<z.ZodString>;
26
+ collection_number: z.ZodOptional<z.ZodString>;
27
+ ecli: z.ZodOptional<z.ZodString>;
28
+ decision_url: z.ZodOptional<z.ZodString>;
29
+ headnotes_url: z.ZodOptional<z.ZodString>;
30
+ legal_force_note: z.ZodOptional<z.ZodString>;
31
+ content_urls: z.ZodObject<{
32
+ xml: z.ZodOptional<z.ZodString>;
33
+ html: z.ZodOptional<z.ZodString>;
34
+ pdf: z.ZodOptional<z.ZodString>;
35
+ rtf: z.ZodOptional<z.ZodString>;
36
+ }, z.core.$strip>;
37
+ }, z.core.$strip>;
38
+ export type CaseLawRecord = z.infer<typeof CaseLawRecordSchema>;
39
+ /** Map a normalized RIS hit (Judikatur, or Sonstige for upts) to the tool's record shape. */
40
+ export declare function toRecord(hit: RisHit, fallbackApplication: string): CaseLawRecord;
41
+ export declare const risSearchCaseLaw: import("@cyanheads/mcp-ts-core").ToolDefinition<z.ZodObject<{
42
+ court: z.ZodEnum<{
43
+ vfgh: "vfgh";
44
+ vwgh: "vwgh";
45
+ justiz: "justiz";
46
+ bvwg: "bvwg";
47
+ lvwg: "lvwg";
48
+ dsk: "dsk";
49
+ normenliste: "normenliste";
50
+ dok: "dok";
51
+ pvak: "pvak";
52
+ gbk: "gbk";
53
+ uvs: "uvs";
54
+ asylgh: "asylgh";
55
+ ubas: "ubas";
56
+ umse: "umse";
57
+ bks: "bks";
58
+ verg: "verg";
59
+ upts: "upts";
60
+ }>;
61
+ query: z.ZodOptional<z.ZodString>;
62
+ norm: z.ZodOptional<z.ZodString>;
63
+ case_number: z.ZodOptional<z.ZodString>;
64
+ decision_type: z.ZodDefault<z.ZodEnum<{
65
+ headnote: "headnote";
66
+ full_text: "full_text";
67
+ all: "all";
68
+ }>>;
69
+ decided_from: z.ZodOptional<z.ZodString>;
70
+ decided_to: z.ZodOptional<z.ZodString>;
71
+ decision_kind: z.ZodOptional<z.ZodString>;
72
+ collection_number: z.ZodOptional<z.ZodString>;
73
+ issuing_body: z.ZodOptional<z.ZodString>;
74
+ court_name: z.ZodOptional<z.ZodString>;
75
+ legal_area: z.ZodOptional<z.ZodEnum<{
76
+ civil: "civil";
77
+ criminal: "criminal";
78
+ }>>;
79
+ subject_area: z.ZodOptional<z.ZodString>;
80
+ state: z.ZodOptional<z.ZodEnum<{
81
+ burgenland: "burgenland";
82
+ kaernten: "kaernten";
83
+ niederoesterreich: "niederoesterreich";
84
+ oberoesterreich: "oberoesterreich";
85
+ salzburg: "salzburg";
86
+ steiermark: "steiermark";
87
+ tirol: "tirol";
88
+ vorarlberg: "vorarlberg";
89
+ wien: "wien";
90
+ }>>;
91
+ party: z.ZodOptional<z.ZodString>;
92
+ commission: z.ZodOptional<z.ZodEnum<{
93
+ federal: "federal";
94
+ general: "general";
95
+ }>>;
96
+ senate: z.ZodOptional<z.ZodEnum<{
97
+ I: "I";
98
+ II: "II";
99
+ III: "III";
100
+ }>>;
101
+ discrimination_ground: z.ZodOptional<z.ZodEnum<{
102
+ Alter: "Alter";
103
+ EthnischeZugehoerigkeit: "EthnischeZugehoerigkeit";
104
+ Geschlecht: "Geschlecht";
105
+ Mehrfachdiskriminierung: "Mehrfachdiskriminierung";
106
+ Religion: "Religion";
107
+ SexuelleOrientierung: "SexuelleOrientierung";
108
+ Weltanschauung: "Weltanschauung";
109
+ }>>;
110
+ subject_law: z.ZodOptional<z.ZodString>;
111
+ changed_since: z.ZodOptional<z.ZodEnum<{
112
+ one_week: "one_week";
113
+ two_weeks: "two_weeks";
114
+ one_month: "one_month";
115
+ three_months: "three_months";
116
+ six_months: "six_months";
117
+ one_year: "one_year";
118
+ }>>;
119
+ sort_by: z.ZodOptional<z.ZodEnum<{
120
+ case_number: "case_number";
121
+ decision_date: "decision_date";
122
+ }>>;
123
+ sort_direction: z.ZodOptional<z.ZodEnum<{
124
+ ascending: "ascending";
125
+ descending: "descending";
126
+ }>>;
127
+ page: z.ZodOptional<z.ZodNumber>;
128
+ page_size: z.ZodOptional<z.ZodUnion<readonly [z.ZodLiteral<10>, z.ZodLiteral<20>, z.ZodLiteral<50>, z.ZodLiteral<100>]>>;
129
+ }, z.core.$strip>, z.ZodObject<{
130
+ results: z.ZodArray<z.ZodObject<{
131
+ document_number: z.ZodString;
132
+ court: z.ZodString;
133
+ organ: z.ZodOptional<z.ZodString>;
134
+ case_numbers: z.ZodArray<z.ZodString>;
135
+ decision_date: z.ZodOptional<z.ZodString>;
136
+ decision_type: z.ZodOptional<z.ZodString>;
137
+ decision_kind: z.ZodOptional<z.ZodString>;
138
+ party: z.ZodOptional<z.ZodString>;
139
+ summary: z.ZodOptional<z.ZodString>;
140
+ guiding_principle: z.ZodOptional<z.ZodString>;
141
+ norms_cited: z.ZodArray<z.ZodString>;
142
+ keywords: z.ZodOptional<z.ZodString>;
143
+ collection_number: z.ZodOptional<z.ZodString>;
144
+ ecli: z.ZodOptional<z.ZodString>;
145
+ decision_url: z.ZodOptional<z.ZodString>;
146
+ headnotes_url: z.ZodOptional<z.ZodString>;
147
+ legal_force_note: z.ZodOptional<z.ZodString>;
148
+ content_urls: z.ZodObject<{
149
+ xml: z.ZodOptional<z.ZodString>;
150
+ html: z.ZodOptional<z.ZodString>;
151
+ pdf: z.ZodOptional<z.ZodString>;
152
+ rtf: z.ZodOptional<z.ZodString>;
153
+ }, z.core.$strip>;
154
+ }, z.core.$strip>>;
155
+ }, z.core.$strip>, readonly [{
156
+ readonly reason: "court_filter_mismatch";
157
+ readonly code: JsonRpcErrorCode.ValidationError;
158
+ readonly when: "A court-conditional filter was sent with the wrong court, or case_number/dates/decision_type were sent with normenliste (a norm index, not decisions) — rejected locally before any upstream call; the message names the offending pair.";
159
+ readonly recovery: "Drop the filter or switch court: issuing_body → dsk/dok/pvak/verg, court_name/legal_area/subject_area → justiz, state → lvwg/uvs, party → upts, commission/senate/discrimination_ground → gbk, subject_law → bks, collection_number → vfgh/vwgh/uvs. Court codes: ris_list_reference topic courts.";
160
+ }, {
161
+ readonly reason: "invalid_query";
162
+ readonly code: JsonRpcErrorCode.ValidationError;
163
+ readonly when: "A parameter value failed validation — decision_kind/subject_area checked locally against the reference tables, or RIS rejected the value in-band (message passed through verbatim).";
164
+ readonly recovery: "Correct the parameter RIS names in the message. Valid court codes, decision types/kinds, and syntax: ris_list_reference (topic: courts, decision_types, decision_kinds, or search_syntax).";
165
+ }, {
166
+ readonly reason: "upstream_error";
167
+ readonly code: JsonRpcErrorCode.ServiceUnavailable;
168
+ readonly when: "RIS is unreachable, returned a server error, or served an HTML error page.";
169
+ readonly retryable: true;
170
+ readonly recovery: "RIS is temporarily unavailable — retry after a short delay. If it persists, reduce page_size or narrow the query.";
171
+ }], {
172
+ readonly totalCount: z.ZodNumber;
173
+ readonly page: z.ZodNumber;
174
+ readonly pageSize: z.ZodNumber;
175
+ readonly truncated: z.ZodOptional<z.ZodBoolean>;
176
+ readonly notice: z.ZodOptional<z.ZodString>;
177
+ }>;
178
+ //# sourceMappingURL=ris-search-case-law.tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ris-search-case-law.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/ris-search-case-law.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAY,MAAM,+BAA+B,CAAC;AAkB3E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAkCtD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;iBAkEqD,CAAC;AAEtF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAahE,6FAA6F;AAC7F,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,GAAG,aAAa,CAwChF;AAED,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsa3B,CAAC"}