@cyanheads/ris-austria-mcp-server 0.2.2 → 0.2.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.
- package/AGENTS.md +1 -1
- package/CLAUDE.md +1 -1
- package/README.md +2 -2
- package/changelog/0.2.x/0.2.3.md +19 -0
- package/changelog/0.2.x/0.2.4.md +15 -0
- package/dist/mcp-server/tools/definitions/_shared.d.ts +10 -1
- package/dist/mcp-server/tools/definitions/_shared.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/_shared.js +29 -2
- package/dist/mcp-server/tools/definitions/_shared.js.map +1 -1
- package/dist/mcp-server/tools/definitions/ris-lookup-citation.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/ris-lookup-citation.tool.js +35 -16
- package/dist/mcp-server/tools/definitions/ris-lookup-citation.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/ris-search-case-law.tool.d.ts +18 -0
- package/dist/mcp-server/tools/definitions/ris-search-case-law.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/ris-search-case-law.tool.js +82 -3
- package/dist/mcp-server/tools/definitions/ris-search-case-law.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/ris-search-legislation.tool.d.ts +8 -0
- package/dist/mcp-server/tools/definitions/ris-search-legislation.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/ris-search-legislation.tool.js +41 -0
- package/dist/mcp-server/tools/definitions/ris-search-legislation.tool.js.map +1 -1
- package/dist/services/ris/normalizer.d.ts +1 -1
- package/dist/services/ris/normalizer.d.ts.map +1 -1
- package/dist/services/ris/normalizer.js +13 -6
- package/dist/services/ris/normalizer.js.map +1 -1
- package/dist/services/ris/reference/citation-formats.d.ts +1 -1
- package/dist/services/ris/reference/citation-formats.js +1 -1
- package/dist/services/ris/reference/citation-formats.js.map +1 -1
- package/dist/services/ris/reference/courts.d.ts +7 -3
- package/dist/services/ris/reference/courts.d.ts.map +1 -1
- package/dist/services/ris/reference/courts.js +7 -3
- package/dist/services/ris/reference/courts.js.map +1 -1
- package/dist/services/ris/ris-service.d.ts +9 -1
- package/dist/services/ris/ris-service.d.ts.map +1 -1
- package/dist/services/ris/ris-service.js +58 -15
- package/dist/services/ris/ris-service.js.map +1 -1
- package/dist/services/ris/types.d.ts +7 -1
- package/dist/services/ris/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/server.json +3 -3
package/AGENTS.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Developer Protocol
|
|
2
2
|
|
|
3
3
|
**Server:** ris-austria-mcp-server
|
|
4
|
-
**Version:** 0.2.
|
|
4
|
+
**Version:** 0.2.4
|
|
5
5
|
**Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.11.0`
|
|
6
6
|
**Engines:** Bun ≥1.3.0, Node ≥24.0.0
|
|
7
7
|
**MCP SDK:** `@modelcontextprotocol/sdk` ^1.29.0
|
package/CLAUDE.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Developer Protocol
|
|
2
2
|
|
|
3
3
|
**Server:** ris-austria-mcp-server
|
|
4
|
-
**Version:** 0.2.
|
|
4
|
+
**Version:** 0.2.4
|
|
5
5
|
**Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.11.0`
|
|
6
6
|
**Engines:** Bun ≥1.3.0, Node ≥24.0.0
|
|
7
7
|
**MCP SDK:** `@modelcontextprotocol/sdk` ^1.29.0
|
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
<div align="center">
|
|
9
9
|
|
|
10
|
-
[](./CHANGELOG.md) [](./LICENSE) [](https://github.com/users/cyanheads/packages/container/package/ris-austria-mcp-server) [](https://modelcontextprotocol.io/) [](https://www.npmjs.com/package/@cyanheads/ris-austria-mcp-server) [](https://www.typescriptlang.org/) [](https://bun.sh/)
|
|
11
11
|
|
|
12
12
|
</div>
|
|
13
13
|
|
|
@@ -108,7 +108,7 @@ Sectoral official gazettes and executive documents — seven collections, five o
|
|
|
108
108
|
|
|
109
109
|
Citation-first resolution — how Austrian legal work actually starts.
|
|
110
110
|
|
|
111
|
-
- Parses and routes four citation kinds: norm cites ("§ 6 DSG", "Art 10 B-VG"), gazette numbers across all three federal eras plus LGBl ("BGBl. I Nr. 165/1999", "BGBl. Nr. 194/1961", "RGBl. Nr. 189/1902"), case numbers ("
|
|
111
|
+
- Parses and routes four citation kinds: norm cites ("§ 6 DSG", "Art 10 B-VG"), gazette numbers across all three federal eras plus LGBl ("BGBl. I Nr. 165/1999", "BGBl. Nr. 194/1961", "RGBl. Nr. 189/1902"), case numbers ("Ro 2026/03/0016", "2025-0.934.677", "14Os49/26a"), and collection numbers ("VfSlg 19.632/2012")
|
|
112
112
|
- Deterministic upstream filters (section + title, per-era number params, Geschäftszahl, Sammlungsnummer) — no keyword-search fuzziness
|
|
113
113
|
- Returns `found: false` with structured guidance instead of throwing when nothing resolves
|
|
114
114
|
- `court` and `state` hints short-circuit ambiguous formats
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "ris_search_case_law surfaces normenliste law identity plus cross-court indexes/state/note, ris_search_legislation surfaces English-translation provenance, and the search retry budget no longer exceeds the client's request deadline on a slow upstream."
|
|
3
|
+
breaking: false
|
|
4
|
+
security: false
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# 0.2.3 — 2026-07-26
|
|
8
|
+
|
|
9
|
+
## Added
|
|
10
|
+
|
|
11
|
+
- **`ris_search_case_law` `norm_index`** — optional object (`title`, `abbreviation`, `type`, `reference`) naming the law a `court: normenliste` record indexes; absent on the sixteen deciding courts. `abbreviation` prefers `AbkuerzungDesVerwaltungsgerichtshofes` over `Abkuerzung` — the citable form (`DSG 2000`, `HlG 1989`) rather than the often-repeated full title. ([#19](https://github.com/cyanheads/ris-austria-mcp-server/issues/19))
|
|
12
|
+
- **`ris_search_case_law` `indexes` / `state` / `note`** — flat fields on `CaseLawRecordSchema`: Systematik classification entries (vfgh, vwgh, lvwg, uvs, umse, normenliste), the deciding Bundesland (lvwg, uvs), and an Anmerkung (normenliste, justiz, dsk). ([#22](https://github.com/cyanheads/ris-austria-mcp-server/issues/22))
|
|
13
|
+
- **`ris_search_legislation` `translation`** — optional object (`source`, `author`) giving English-translation provenance on `Erv` records, which otherwise carry no `in_force_from`, `promulgation`, or `eli` to say which German version they correspond to. ([#22](https://github.com/cyanheads/ris-austria-mcp-server/issues/22))
|
|
14
|
+
|
|
15
|
+
## Fixed
|
|
16
|
+
|
|
17
|
+
- **`stripHtmlRemnants`** — normalizes CRLF line endings before stripping `<br/>` markers. Normenliste `Titel`/`Fundstelle` are CRLF-delimited upstream and previously reached callers as escape noise. ([#19](https://github.com/cyanheads/ris-austria-mcp-server/issues/19))
|
|
18
|
+
- **`mapBundesrecht`** — `Erv.Author`/`Erv.Source` now run through the same HTML-stripping path as every other text field; both are `<br/>`-separated prose upstream (18 of 100 sampled `Author` values name an amending body). ([#22](https://github.com/cyanheads/ris-austria-mcp-server/issues/22))
|
|
19
|
+
- **`RisService` search retry budget** — `SEARCH_TIMEOUT_MS` 15s → 40s: a filtered search answers in 0.6–3s, but an unfiltered `bvwg` page costs 14.6–43s at `page_size` 50–100, which the old deadline could never complete. A new `SEARCH_BUDGET_MS` (48s) caps the whole retry sequence — each attempt gets whatever budget remains — so a slow-failing upstream can't multiply the deadline by the attempt count. A search deadline (`errorSource: 'FetchTimeout'`) is no longer retried, since a request that can't finish in 40s is an expensive scan, not a blip; an upstream 504 stays retryable. Worst case is now ≈55s, inside the MCP SDK's 60s default request timeout (previously ≈73s). `trackChanges()` shares the new budget via one `request()` helper. ([#23](https://github.com/cyanheads/ris-austria-mcp-server/issues/23))
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
---
|
|
2
|
+
summary: "ris_lookup_citation rejects impossible calendar dates and the normenliste court hint as input errors instead of reporting them as citation misses, Artikel miss guidance now carries section_type into the retry recipe, and the vwgh/justiz Geschäftszahl reference examples are replaced with citations that resolve."
|
|
3
|
+
breaking: false
|
|
4
|
+
security: false
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# 0.2.4 — 2026-07-26
|
|
8
|
+
|
|
9
|
+
## Fixed
|
|
10
|
+
|
|
11
|
+
- **`isoDateString`** — validates a real calendar date, not just the `YYYY-MM-DD` shape. The tightened pattern (`^\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])$`) reaches the advertised JSON Schema, so a schema-validating client rejects an impossible date like `2026-99-99` without a round trip; a `.refine()` catches the shape-valid impossibilities the pattern can't express (31 April, 29 February outside a leap year). Backs all 20 date parameters across 7 tools. `ris_lookup_citation` previously converted RIS's upstream rejection of an impossible date into `found: false`, misreporting bad input as an unresolved citation. ([#14](https://github.com/cyanheads/ris-austria-mcp-server/issues/14))
|
|
12
|
+
- **`ris_lookup_citation` `court`** — the enum drops `normenliste` (a norm index that carries no case numbers); the request builder rejected a Geschäftszahl filter there, and `runSearch()` turned that local rejection into the same `found: false` miss as an unresolved citation. ([#14](https://github.com/cyanheads/ris-austria-mcp-server/issues/14))
|
|
13
|
+
- **`normGuidance()`** — takes the full parsed citation instead of a loose abbreviation/section pair, so an Artikel miss labels the section `Art N` (not `§ N`) and carries `section_type: 'Artikel'` into the `ris_search_legislation` retry recipe. The prior recipe omitted it, defaulted to `Paragraph`, and returned zero hits for an Artikel that exists. ([#17](https://github.com/cyanheads/ris-austria-mcp-server/issues/17))
|
|
14
|
+
- **`RIS_COURTS` `gzExample`** — vwgh (`Ra 2019/22/0184` → `Ro 2026/03/0016`) and justiz (`6Ob56/25k` → `14Os49/26a`) replaced with citations confirmed against the live RIS corpus; the originals resolved zero hits. Updated across all six prose copies: the `ris_lookup_citation` tool and `citation` field descriptions, `unknownGuidance()`, the `ris_search_case_law` zero-hit notice, `RIS_CITATION_FORMATS`, and the README feature bullet. ([#18](https://github.com/cyanheads/ris-austria-mcp-server/issues/18))
|
|
15
|
+
- **`docs/design.md`** — the errors table now documents `upstream_timeout` (Timeout, retryable) alongside `upstream_error`; `ris_lookup_citation` has declared the distinct reason since before this release, but the doc still described only one.
|
|
@@ -5,7 +5,16 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import type { TypedFail, TypedRecoveryFor } from '@cyanheads/mcp-ts-core';
|
|
7
7
|
import { z } from '@cyanheads/mcp-ts-core';
|
|
8
|
-
/**
|
|
8
|
+
/**
|
|
9
|
+
* An ISO calendar date (YYYY-MM-DD), validated client-side before any upstream call — an
|
|
10
|
+
* impossible date is an input error at every tool that takes one, never a silent upstream
|
|
11
|
+
* rejection reinterpreted downstream.
|
|
12
|
+
*
|
|
13
|
+
* The pattern bounds month and day because it is what reaches the advertised JSON Schema
|
|
14
|
+
* (`pattern`), so a schema-validating client rejects `2026-99-99` without a round trip; the
|
|
15
|
+
* refinement then catches the shape-valid impossibilities a pattern cannot express (31 April,
|
|
16
|
+
* 29 February outside a leap year) and does not serialize.
|
|
17
|
+
*/
|
|
9
18
|
export declare const isoDateString: z.ZodString;
|
|
10
19
|
/**
|
|
11
20
|
* The three reasons every search-family tool declares for a failure raised below the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_shared.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/_shared.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"_shared.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/_shared.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAsB3C;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,aAMwE,CAAC;AAEnG;;;;;GAKG;AACH,KAAK,mBAAmB,GAAG,eAAe,GAAG,gBAAgB,GAAG,kBAAkB,CAAC;AAEnF,kEAAkE;AAClE,UAAU,oBAAoB;IAC5B,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,mBAAmB,CAAC,CAAC;IAC9C,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAC,mBAAmB,CAAC,CAAC;CAC7D;AAoBD;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAMlF"}
|
|
@@ -5,10 +5,37 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { z } from '@cyanheads/mcp-ts-core';
|
|
7
7
|
import { JsonRpcErrorCode, McpError } from '@cyanheads/mcp-ts-core/errors';
|
|
8
|
-
/**
|
|
8
|
+
/** Months with 30 days — the only non-February lengths a day of 31 can overshoot. */
|
|
9
|
+
const THIRTY_DAY_MONTHS = new Set([4, 6, 9, 11]);
|
|
10
|
+
/**
|
|
11
|
+
* True when a shape-valid `YYYY-MM-DD` names a day the month actually has. {@link isoDateString}'s
|
|
12
|
+
* pattern already bounds month to 01–12 and day to 01–31, so only over-long months remain: the
|
|
13
|
+
* four 30-day months, and February's 28/29-day split by leap year.
|
|
14
|
+
*/
|
|
15
|
+
function isRealCalendarDate(value) {
|
|
16
|
+
const year = Number(value.slice(0, 4));
|
|
17
|
+
const month = Number(value.slice(5, 7));
|
|
18
|
+
const day = Number(value.slice(8, 10));
|
|
19
|
+
if (month === 2) {
|
|
20
|
+
const leapYear = year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);
|
|
21
|
+
return day <= (leapYear ? 29 : 28);
|
|
22
|
+
}
|
|
23
|
+
return day <= (THIRTY_DAY_MONTHS.has(month) ? 30 : 31);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* An ISO calendar date (YYYY-MM-DD), validated client-side before any upstream call — an
|
|
27
|
+
* impossible date is an input error at every tool that takes one, never a silent upstream
|
|
28
|
+
* rejection reinterpreted downstream.
|
|
29
|
+
*
|
|
30
|
+
* The pattern bounds month and day because it is what reaches the advertised JSON Schema
|
|
31
|
+
* (`pattern`), so a schema-validating client rejects `2026-99-99` without a round trip; the
|
|
32
|
+
* refinement then catches the shape-valid impossibilities a pattern cannot express (31 April,
|
|
33
|
+
* 29 February outside a leap year) and does not serialize.
|
|
34
|
+
*/
|
|
9
35
|
export const isoDateString = z
|
|
10
36
|
.string()
|
|
11
|
-
.regex(/^\d{4}
|
|
37
|
+
.regex(/^\d{4}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\d|3[01])$/u, 'Expected an ISO calendar date in YYYY-MM-DD form.')
|
|
38
|
+
.refine(isRealCalendarDate, 'No such calendar date — check the day against the month and year.');
|
|
12
39
|
/**
|
|
13
40
|
* Framework codes raised below the handler, mapped to the contract reason describing them.
|
|
14
41
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_shared.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/_shared.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAE3E,
|
|
1
|
+
{"version":3,"file":"_shared.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/_shared.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAE3E,qFAAqF;AACrF,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;AAEjD;;;;GAIG;AACH,SAAS,kBAAkB,CAAC,KAAa;IACvC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACvC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxC,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACvC,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;QAChB,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,KAAK,CAAC,IAAI,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC;QAC1E,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACzD,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC;KAC3B,MAAM,EAAE;KACR,KAAK,CACJ,oDAAoD,EACpD,mDAAmD,CACpD;KACA,MAAM,CAAC,kBAAkB,EAAE,mEAAmE,CAAC,CAAC;AAgBnG;;;;;;;;;;GAUG;AACH,MAAM,cAAc,GAAG,IAAI,GAAG,CAAwC;IACpE,CAAC,gBAAgB,CAAC,eAAe,EAAE,eAAe,CAAC;IACnD,CAAC,gBAAgB,CAAC,aAAa,EAAE,eAAe,CAAC;IACjD,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;IACvD,CAAC,gBAAgB,CAAC,OAAO,EAAE,kBAAkB,CAAC;CAC/C,CAAC,CAAC;AAEH;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,KAAc,EAAE,GAAyB;IACvE,IAAI,CAAC,CAAC,KAAK,YAAY,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IAC/C,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9C,OAAO,MAAM,KAAK,SAAS;QACzB,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,GAAG,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AACtE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ris-lookup-citation.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/ris-lookup-citation.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAY,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"ris-lookup-citation.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/ris-lookup-citation.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAY,MAAM,+BAA+B,CAAC;AAiX3E,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAgR5B,CAAC"}
|
|
@@ -24,7 +24,14 @@ import { isoDateString } from './_shared.js';
|
|
|
24
24
|
import { toRecord as toCaseLawRecord } from './ris-search-case-law.tool.js';
|
|
25
25
|
import { toRecord as toGazetteRecord } from './ris-search-gazette.tool.js';
|
|
26
26
|
import { toRecord as toLegislationRecord } from './ris-search-legislation.tool.js';
|
|
27
|
-
|
|
27
|
+
/**
|
|
28
|
+
* Courts a Geschäftszahl can be looked up in. `normenliste` indexes norms rather than
|
|
29
|
+
* decisions, so the request builder rejects a case-number filter there — and that local
|
|
30
|
+
* rejection is one `runSearch` maps to a not-resolved `null`, which would report an
|
|
31
|
+
* impossible court hint as a citation miss. Rejecting it at the input schema instead keeps
|
|
32
|
+
* `found: false` meaning only "valid citation, no document".
|
|
33
|
+
*/
|
|
34
|
+
const CASE_NUMBER_COURT_CODES = RIS_COURTS.filter((c) => c.code !== 'normenliste').map((c) => c.code);
|
|
28
35
|
const STATE_CODES = RIS_STATES.map((s) => s.code);
|
|
29
36
|
const COURT_APPLICATION = new Map(RIS_COURTS.map((c) => [c.code, c.application]));
|
|
30
37
|
/** Resolve a court code to its RIS `Applikation` value (falls back to the code). */
|
|
@@ -37,6 +44,10 @@ const GAZETTE_PREFIX = /\b(?:BGBl|RGBl|StGBl|LGBl)\b|GBl[ÖO]/i;
|
|
|
37
44
|
const NORM_EXPLICIT = /§|\bart(?:ikel)?\.?\s*\d/i;
|
|
38
45
|
/** A bare law abbreviation (whole-law reference) — letters/hyphens, an optional trailing year. */
|
|
39
46
|
const BARE_ABBREVIATION = /^[A-Za-zÄÖÜäöüß][A-Za-zÄÖÜäöüß.]*(?:[-\s][A-Za-zÄÖÜäöüß0-9]+)*$/;
|
|
47
|
+
/** The marker RIS cites a section with — "Art" for an Artikel, "§" otherwise. */
|
|
48
|
+
function sectionMarker(sectionType) {
|
|
49
|
+
return sectionType === 'Artikel' ? 'Art' : '§';
|
|
50
|
+
}
|
|
40
51
|
/**
|
|
41
52
|
* Parse a norm citation into an abbreviation and optional §/Artikel number. Handles both
|
|
42
53
|
* orders: section-first ("§ 6 DSG", "Art 10 B-VG") and abbreviation-first ("DSG §1",
|
|
@@ -213,14 +224,22 @@ function classify(input, courtHint) {
|
|
|
213
224
|
/* found: false guidance (verbatim per parse outcome — design.md) */
|
|
214
225
|
/* ------------------------------------------------------------------------------------ */
|
|
215
226
|
function unknownGuidance(input) {
|
|
216
|
-
return `Could not classify '${input}'. Expected forms — norm: '§ 6 DSG' / 'Art 10 B-VG'; gazette: 'BGBl. I Nr. 165/1999' (also pre-2004 and RGBl/StGBl forms, and LGBl with a state hint); case number: '
|
|
227
|
+
return `Could not classify '${input}'. Expected forms — norm: '§ 6 DSG' / 'Art 10 B-VG'; gazette: 'BGBl. I Nr. 165/1999' (also pre-2004 and RGBl/StGBl forms, and LGBl with a state hint); case number: 'Ro 2026/03/0016'; collection: 'VfSlg 19.632/2012'. Formats: ris_list_reference topic citation_formats. Or set kind explicitly; for keyword search use ris_search_legislation / ris_search_case_law.`;
|
|
217
228
|
}
|
|
218
|
-
|
|
229
|
+
/**
|
|
230
|
+
* Guidance for an unresolved norm citation. Takes the whole parse so the section type reaches
|
|
231
|
+
* both the label and the retry recipe: `section_type` defaults to Paragraph once a section range
|
|
232
|
+
* is set, so an Artikel recipe that omits it searches § N and returns zero even when the Artikel
|
|
233
|
+
* exists. It is emitted for both types — the recipe is meant to be run verbatim, so it states the
|
|
234
|
+
* filter rather than leaning on the default.
|
|
235
|
+
*/
|
|
236
|
+
function normGuidance(parsed, date) {
|
|
237
|
+
const { abbreviation, section, sectionType } = parsed;
|
|
219
238
|
const head = section !== undefined
|
|
220
|
-
? `No document for ${abbreviation}
|
|
239
|
+
? `No document for ${abbreviation} ${sectionMarker(sectionType)} ${section} in force on ${date}.`
|
|
221
240
|
: `No document for ${abbreviation} in force on ${date}.`;
|
|
222
241
|
const retry = section !== undefined
|
|
223
|
-
? `retry ris_search_legislation with title: '${abbreviation}', section_from/to: '${section}', include_all_versions: true.`
|
|
242
|
+
? `retry ris_search_legislation with title: '${abbreviation}', section_from/to: '${section}', section_type: '${sectionType ?? 'Paragraph'}', include_all_versions: true.`
|
|
224
243
|
: `retry ris_search_legislation with title: '${abbreviation}', include_all_versions: true.`;
|
|
225
244
|
return `${head} If the provision existed at another time, ${retry} If the abbreviation is uncertain, search ris_search_legislation title: '${abbreviation}*'. State law resolves only with an explicit state hint.`;
|
|
226
245
|
}
|
|
@@ -305,20 +324,20 @@ function meaningful(value) {
|
|
|
305
324
|
}
|
|
306
325
|
export const risLookupCitation = tool('ris_lookup_citation', {
|
|
307
326
|
title: 'Resolve Austrian Legal Citation',
|
|
308
|
-
description: 'Resolve a single Austrian legal citation to its canonical RIS document deterministically — no keyword search. Four routes are auto-detected from the citation shape (or forced with kind): a norm citation — section-first ("§ 6 DSG", "Art 10 B-VG"), abbreviation-first ("DSG §1", "DSGVO Art32", the shape ris_search_case_law returns in norms_cited), or a bare abbreviation like "ABGB" — resolves through consolidated federal law, or a Bundesland with a state hint, as in force today or on in_force_as_of; a gazette citation ("BGBl. I Nr. 165/1999", pre-2004 "BGBl. Nr. 194/1961", imperial "RGBl. Nr. 189/1902", or "LGBl. Nr. 61/2026" with a state hint) routes to the right federal era tier by year or to a state Landesgesetzblatt; a case number ("
|
|
327
|
+
description: 'Resolve a single Austrian legal citation to its canonical RIS document deterministically — no keyword search. Four routes are auto-detected from the citation shape (or forced with kind): a norm citation — section-first ("§ 6 DSG", "Art 10 B-VG"), abbreviation-first ("DSG §1", "DSGVO Art32", the shape ris_search_case_law returns in norms_cited), or a bare abbreviation like "ABGB" — resolves through consolidated federal law, or a Bundesland with a state hint, as in force today or on in_force_as_of; a gazette citation ("BGBl. I Nr. 165/1999", pre-2004 "BGBl. Nr. 194/1961", imperial "RGBl. Nr. 189/1902", or "LGBl. Nr. 61/2026" with a state hint) routes to the right federal era tier by year or to a state Landesgesetzblatt; a case number ("Ro 2026/03/0016", "G 287/2022", "14Os49/26a", "2025-0.934.677", "W256 …") is matched to its court — pass court to skip detection, and ambiguous formats probe up to two courts; a collection number ("VfSlg 19.632/2012", "VwSlg 18.000 A/2010") resolves through the VfGH/VwGH collection. Returns the single best-matching document in the same shape as the corresponding search tool, with alternatives_count when more than one matched. A citation that cannot be classified or resolved returns found: false with next-step guidance — it never throws for a miss; only an upstream RIS outage is an error. For keyword rather than citation lookup, use ris_search_legislation or ris_search_case_law.',
|
|
309
328
|
annotations: { readOnlyHint: true, idempotentHint: true, openWorldHint: true },
|
|
310
329
|
input: z.object({
|
|
311
330
|
citation: z
|
|
312
331
|
.string()
|
|
313
|
-
.describe('The legal citation to resolve, e.g. "§ 6 DSG" or "DSG §1", "Art 10 B-VG", "BGBl. I Nr. 165/1999", "
|
|
332
|
+
.describe('The legal citation to resolve, e.g. "§ 6 DSG" or "DSG §1", "Art 10 B-VG", "BGBl. I Nr. 165/1999", "Ro 2026/03/0016", or "VfSlg 19.632/2012".'),
|
|
314
333
|
kind: z
|
|
315
334
|
.enum(['auto', 'norm', 'gazette', 'case_number', 'collection_number'])
|
|
316
335
|
.default('auto')
|
|
317
336
|
.describe('Force a route, or auto (default) to classify by shape. Set explicitly when the citation shape is ambiguous.'),
|
|
318
337
|
court: z
|
|
319
|
-
.enum(
|
|
338
|
+
.enum(CASE_NUMBER_COURT_CODES)
|
|
320
339
|
.optional()
|
|
321
|
-
.describe('Court hint for a case number — short-circuits court detection to this court. Codes: ris_list_reference topic courts.'),
|
|
340
|
+
.describe('Court hint for a case number — short-circuits court detection to this court. Codes: ris_list_reference topic courts, minus normenliste (a norm index, which carries no case numbers).'),
|
|
322
341
|
state: z
|
|
323
342
|
.enum(STATE_CODES)
|
|
324
343
|
.optional()
|
|
@@ -413,7 +432,11 @@ export const risLookupCitation = tool('ris_lookup_citation', {
|
|
|
413
432
|
if (route === 'norm') {
|
|
414
433
|
const parsed = parseNorm(citation);
|
|
415
434
|
if (!parsed) {
|
|
416
|
-
return {
|
|
435
|
+
return {
|
|
436
|
+
found: false,
|
|
437
|
+
kind: 'norm',
|
|
438
|
+
guidance: normGuidance({ abbreviation: citation }, asOf),
|
|
439
|
+
};
|
|
417
440
|
}
|
|
418
441
|
const application = stateHint !== undefined ? 'LrKons' : 'BrKons';
|
|
419
442
|
const params = {
|
|
@@ -430,15 +453,11 @@ export const risLookupCitation = tool('ris_lookup_citation', {
|
|
|
430
453
|
const result = await runSearch(() => getRisService().searchLegislation(params, ctx));
|
|
431
454
|
const hit = result?.hits[0];
|
|
432
455
|
if (!result || hit === undefined) {
|
|
433
|
-
return {
|
|
434
|
-
found: false,
|
|
435
|
-
kind: 'norm',
|
|
436
|
-
guidance: normGuidance(parsed.abbreviation, parsed.section, asOf),
|
|
437
|
-
};
|
|
456
|
+
return { found: false, kind: 'norm', guidance: normGuidance(parsed, asOf) };
|
|
438
457
|
}
|
|
439
458
|
const alternatives = result.total > 1 ? result.total - 1 : undefined;
|
|
440
459
|
const sectionPhrase = parsed.section !== undefined
|
|
441
|
-
? `, ${parsed.sectionType
|
|
460
|
+
? `, ${sectionMarker(parsed.sectionType)} ${parsed.section}`
|
|
442
461
|
: '';
|
|
443
462
|
ctx.log.info('Citation resolved', { kind: route, application, total: result.total });
|
|
444
463
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ris-lookup-citation.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/ris-lookup-citation.tool.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ris-lookup-citation.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/ris-lookup-citation.tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAE3E,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAS3E,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAG9D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,QAAQ,IAAI,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,EAAE,QAAQ,IAAI,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAEnF;;;;;;GAMG;AACH,MAAM,uBAAuB,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC,GAAG,CACpF,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CACuB,CAAC;AACvC,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAsC,CAAC;AACvF,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAiB,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAElG,oFAAoF;AACpF,SAAS,gBAAgB,CAAC,IAAkB;IAC1C,OAAO,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;AAC7C,CAAC;AASD,0FAA0F;AAC1F,MAAM,cAAc,GAAG,uCAAuC,CAAC;AAC/D,8FAA8F;AAC9F,MAAM,aAAa,GAAG,2BAA2B,CAAC;AAClD,kGAAkG;AAClG,MAAM,iBAAiB,GAAG,iEAAiE,CAAC;AAS5F,iFAAiF;AACjF,SAAS,aAAa,CAAC,WAAqC;IAC1D,OAAO,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC;AACjD,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,SAAS,CAAC,KAAa;IAC9B,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IACvB,MAAM,YAAY,GAAG,CAAC,IAAY,EAAU,EAAE,CAC5C,IAAI,CAAC,OAAO,CAAC,oEAAoE,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAEhG;;;;;;;;;;OAUG;IACH,MAAM,eAAe,GAAG,gEAAgE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjG,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,GAAG,eAAe,CAAC;QAClD,IAAI,YAAY,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YACxD,OAAO;gBACL,YAAY,EAAE,YAAY,CAAC,IAAI,EAAE;gBACjC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;gBACpC,WAAW,EAAE,WAAW;aACzB,CAAC;QACJ,CAAC;IACH,CAAC;IACD,MAAM,aAAa,GACjB,2EAA2E,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACtF,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,GAAG,aAAa,CAAC;QAChD,IAAI,YAAY,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YACxD,OAAO;gBACL,YAAY,EAAE,YAAY,CAAC,IAAI,EAAE;gBACjC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;gBACpC,WAAW,EAAE,SAAS;aACvB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAG,kCAAkC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7D,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,SAAS,CAAC;QACpC,IAAI,OAAO,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YAChD,OAAO;gBACL,YAAY,EAAE,YAAY,CAAC,IAAI,CAAC;gBAChC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;gBACpC,WAAW,EAAE,WAAW;aACzB,CAAC;QACJ,CAAC;IACH,CAAC;IACD,MAAM,OAAO,GAAG,kDAAkD,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC3E,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC;QAClC,IAAI,OAAO,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YAChD,OAAO;gBACL,YAAY,EAAE,YAAY,CAAC,IAAI,CAAC;gBAChC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;gBACpC,WAAW,EAAE,SAAS;aACvB,CAAC;QACJ,CAAC;IACH,CAAC;IACD,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC;IAC9E,OAAO,IAAI,CAAC;AACd,CAAC;AASD;;;;GAIG;AACH,SAAS,eAAe,CAAC,KAAa;IACpC,MAAM,CAAC,GAAG,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClD,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,MAAM,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAC5D,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3B,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC;IAC7C,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;QAC/B,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO;QACjC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;KACpB,CAAC;AACJ,CAAC;AAWD;;;;GAIG;AACH,SAAS,YAAY,CAAC,KAAa,EAAE,SAAmC;IACtE,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IACvB,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpC,MAAM,UAAU,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACvE,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACtC,IAAI,CAAC,OAAO,IAAI,CAAC,UAAU,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAEvD,MAAM,OAAO,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/C,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,MAAM,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,GAAG,OAAO,CAAC;IACzC,IAAI,UAAU,KAAK,SAAS,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACpE,MAAM,MAAM,GAAG,GAAG,UAAU,IAAI,QAAQ,EAAE,CAAC;IAC3C,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAE3C,IAAI,IAA0B,CAAC;IAC/B,MAAM,SAAS,GAAG,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpD,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACxC,IAAI,GAAG,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IAC7E,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,KAAK,SAAS,EAAE,MAAM,EAAE,CAAC;IAClF,CAAC;IACD,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAC/D,CAAC;IACD,MAAM,WAAW,GACf,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IACnE,2EAA2E;IAC3E,OAAO;QACL,WAAW;QACX,UAAU,EAAE,KAAK;QACjB,MAAM;QACN,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,WAAW,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,CAAC;KACjE,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAS,eAAe,CAAC,KAAa;IACpC,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IACvB,MAAM,QAAQ,GAAiD;QAC7D,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC;QACrB,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC;QACpB,CAAC,kBAAkB,EAAE,CAAC,MAAM,CAAC,CAAC;QAC9B,CAAC,oBAAoB,EAAE,CAAC,MAAM,CAAC,CAAC;QAChC,CAAC,2BAA2B,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC7C,CAAC,iCAAiC,EAAE,CAAC,MAAM,CAAC,CAAC;QAC7C,CAAC,kDAAkD,EAAE,CAAC,QAAQ,CAAC,CAAC;KACjE,CAAC;IACF,KAAK,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACpC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,yFAAyF;AACzF,SAAS,QAAQ,CAAC,KAAa,EAAE,SAAmC;IAClE,IAAI,eAAe,CAAC,KAAK,CAAC;QAAE,OAAO,mBAAmB,CAAC;IACvD,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACjD,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IAC7C,IAAI,SAAS,KAAK,SAAS,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,aAAa,CAAC;IACvF,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC;IAChF,OAAO,IAAI,CAAC;AACd,CAAC;AAED,0FAA0F;AAC1F,2FAA2F;AAC3F,0FAA0F;AAE1F,SAAS,eAAe,CAAC,KAAa;IACpC,OAAO,uBAAuB,KAAK,0WAA0W,CAAC;AAChZ,CAAC;AAED;;;;;;GAMG;AACH,SAAS,YAAY,CAAC,MAAiB,EAAE,IAAY;IACnD,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;IACtD,MAAM,IAAI,GACR,OAAO,KAAK,SAAS;QACnB,CAAC,CAAC,mBAAmB,YAAY,IAAI,aAAa,CAAC,WAAW,CAAC,IAAI,OAAO,gBAAgB,IAAI,GAAG;QACjG,CAAC,CAAC,mBAAmB,YAAY,gBAAgB,IAAI,GAAG,CAAC;IAC7D,MAAM,KAAK,GACT,OAAO,KAAK,SAAS;QACnB,CAAC,CAAC,6CAA6C,YAAY,wBAAwB,OAAO,qBAAqB,WAAW,IAAI,WAAW,gCAAgC;QACzK,CAAC,CAAC,6CAA6C,YAAY,gCAAgC,CAAC;IAChG,OAAO,GAAG,IAAI,8CAA8C,KAAK,4EAA4E,YAAY,0DAA0D,CAAC;AACtN,CAAC;AAED,SAAS,eAAe,CAAC,MAAc,EAAE,IAAY;IACnD,OAAO,wBAAwB,MAAM,OAAO,IAAI,uMAAuM,CAAC;AAC1P,CAAC;AAED,SAAS,YAAY,CAAC,EAAU,EAAE,UAAmC;IACnE,MAAM,MAAM,GACV,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC;IAC5F,OAAO,oBAAoB,EAAE,QAAQ,MAAM,6MAA6M,CAAC;AAC3P,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAa,EAAE,MAAc,EAAE,KAAsB;IAC/E,OAAO,mBAAmB,KAAK,IAAI,MAAM,8EAA8E,KAAK,cAAc,CAAC;AAC7I,CAAC;AAED,0FAA0F;AAC1F,2FAA2F;AAC3F,0FAA0F;AAE1F;;;;GAIG;AACH,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,KAAK,EAAE,CAAC;SACL,OAAO,EAAE;SACT,QAAQ,CAAC,qEAAqE,CAAC;IAClF,IAAI,EAAE,CAAC;SACJ,IAAI,CAAC,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,mBAAmB,CAAC,CAAC;SACxE,QAAQ,CAAC,kFAAkF,CAAC;IAC/F,eAAe,EAAE,CAAC;SACf,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,iFAAiF,CAAC;IAC9F,MAAM,EAAE,CAAC;SACN,MAAM,CAAC,EAAE,CAAC;SACV,WAAW,EAAE;SACb,QAAQ,EAAE;SACV,QAAQ,CACP,mPAAmP,CACpP;IACH,kBAAkB,EAAE,CAAC;SAClB,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CACP,6JAA6J,CAC9J;IACH,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,yEAAyE,CAAC;CACvF,CAAC,CAAC;AAKH,0FAA0F;AAC1F,SAAS,YAAY,CAAC,MAAyC;IAC7D,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;YAAE,SAAS;QACpD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtE,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACrC,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,KAAgC,CAAC;iBAC3D,MAAM,CAAC,CAAC,KAAK,EAA6B,EAAE,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;iBAC1E,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,MAAM,IAAI,QAAQ,EAAE,CAAC,CAAC;YACxD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACvE,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,OAAO,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,iEAAiE;AACjE,SAAS,cAAc;IACrB,OAAO,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;QACtC,GAAG,EAAE,SAAS;QACd,KAAK,EAAE,SAAS;QAChB,QAAQ,EAAE,eAAe;QACzB,IAAI,EAAE,SAAS;KAChB,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;AACxB,CAAC;AAED,mEAAmE;AACnE,SAAS,UAAU,CAAC,KAAyB;IAC3C,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACjE,CAAC;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC,qBAAqB,EAAE;IAC3D,KAAK,EAAE,iCAAiC;IACxC,WAAW,EACT,w5CAAw5C;IAC15C,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE;IAC9E,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,QAAQ,EAAE,CAAC;aACR,MAAM,EAAE;aACR,QAAQ,CACP,8IAA8I,CAC/I;QACH,IAAI,EAAE,CAAC;aACJ,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,mBAAmB,CAAC,CAAC;aACrE,OAAO,CAAC,MAAM,CAAC;aACf,QAAQ,CACP,6GAA6G,CAC9G;QACH,KAAK,EAAE,CAAC;aACL,IAAI,CAAC,uBAAuB,CAAC;aAC7B,QAAQ,EAAE;aACV,QAAQ,CACP,uLAAuL,CACxL;QACH,KAAK,EAAE,CAAC;aACL,IAAI,CAAC,WAAW,CAAC;aACjB,QAAQ,EAAE;aACV,QAAQ,CACP,8IAA8I,CAC/I;QACH,cAAc,EAAE,aAAa;aAC1B,QAAQ,EAAE;aACV,QAAQ,CACP,mGAAmG,CACpG;KACJ,CAAC;IACF,MAAM,EAAE,kBAAkB;IAC1B,MAAM,EAAE;QACN;YACE,MAAM,EAAE,gBAAgB;YACxB,IAAI,EAAE,gBAAgB,CAAC,kBAAkB;YACzC,IAAI,EAAE,kLAAkL;YACxL,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,+EAA+E;SAC1F;QACD;YACE,MAAM,EAAE,kBAAkB;YAC1B,IAAI,EAAE,gBAAgB,CAAC,OAAO;YAC9B,IAAI,EAAE,iEAAiE;YACvE,SAAS,EAAE,IAAI;YACf,QAAQ,EACN,kIAAkI;SACrI;KACF;IAED,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG;QACtB,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACvC,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC;QAC9B,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC;QAC9B,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC,IAAI,cAAc,EAAE,CAAC;QAElE;;;;;WAKG;QACH,MAAM,SAAS,GAAG,KAAK,EACrB,GAAmC,EACF,EAAE;YACnC,IAAI,CAAC;gBACH,OAAO,MAAM,GAAG,EAAE,CAAC;YACrB,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,IAAI,CAAC,CAAC,GAAG,YAAY,QAAQ,CAAC;oBAAE,MAAM,GAAG,CAAC;gBAC1C,IAAI,GAAG,CAAC,IAAI,KAAK,gBAAgB,CAAC,kBAAkB,EAAE,CAAC;oBACrD,MAAM,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,GAAG,GAAG,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;gBAC1F,CAAC;gBACD,IAAI,GAAG,CAAC,IAAI,KAAK,gBAAgB,CAAC,OAAO,EAAE,CAAC;oBAC1C,MAAM,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,GAAG,CAAC,OAAO,EAAE;wBAC9C,GAAG,GAAG,CAAC,WAAW,CAAC,kBAAkB,CAAC;qBACvC,CAAC,CAAC;gBACL,CAAC;gBACD,IACE,GAAG,CAAC,IAAI,KAAK,gBAAgB,CAAC,aAAa;oBAC3C,GAAG,CAAC,IAAI,KAAK,gBAAgB,CAAC,eAAe,EAC7C,CAAC;oBACD,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;QAEjF,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;QAChF,CAAC;QAED,IAAI,KAAK,KAAK,mBAAmB,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;YACzC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO;oBACL,KAAK,EAAE,KAAK;oBACZ,IAAI,EAAE,mBAAmB;oBACzB,QAAQ,EAAE,4CAA4C,QAAQ,wHAAwH;iBACvL,CAAC;YACJ,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,CAClC,aAAa,EAAE,CAAC,aAAa,CAC3B,EAAE,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,EACxD,GAAG,CACJ,CACF,CAAC;YACF,MAAM,GAAG,GAAG,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,CAAC,MAAM,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACjC,OAAO;oBACL,KAAK,EAAE,KAAK;oBACZ,IAAI,EAAE,mBAAmB;oBACzB,QAAQ,EAAE,kBAAkB,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC;iBACxE,CAAC;YACJ,CAAC;YACD,MAAM,WAAW,GAAG,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACnD,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACrE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YACrF,OAAO;gBACL,KAAK,EAAE,IAAI;gBACX,IAAI,EAAE,mBAAmB;gBACzB,MAAM,EAAE,eAAe,CAAC,GAAG,EAAE,WAAW,CAAC;gBACzC,eAAe,EAAE,qCAAqC,WAAW,wBAAwB,MAAM,CAAC,MAAM,KAAK,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,YAAY,6DAA6D,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC3O,GAAG,CAAC,YAAY,KAAK,SAAS,IAAI,EAAE,kBAAkB,EAAE,YAAY,EAAE,CAAC;aACxE,CAAC;QACJ,CAAC;QAED,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YACrB,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;YACnC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO;oBACL,KAAK,EAAE,KAAK;oBACZ,IAAI,EAAE,MAAM;oBACZ,QAAQ,EAAE,YAAY,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,IAAI,CAAC;iBACzD,CAAC;YACJ,CAAC;YACD,MAAM,WAAW,GAA2B,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC1F,MAAM,MAAM,GAA4B;gBACtC,WAAW;gBACX,WAAW,EAAE,IAAI;gBACjB,KAAK,EAAE,MAAM,CAAC,YAAY;gBAC1B,GAAG,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI;oBAClC,WAAW,EAAE,MAAM,CAAC,OAAO;oBAC3B,SAAS,EAAE,MAAM,CAAC,OAAO;oBACzB,WAAW,EAAE,MAAM,CAAC,WAAW;iBAChC,CAAC;gBACF,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;aACrD,CAAC;YACF,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,CAAC,aAAa,EAAE,CAAC,iBAAiB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;YACrF,MAAM,GAAG,GAAG,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,CAAC,MAAM,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACjC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC;YAC9E,CAAC;YACD,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACrE,MAAM,aAAa,GACjB,MAAM,CAAC,OAAO,KAAK,SAAS;gBAC1B,CAAC,CAAC,KAAK,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE;gBAC5D,CAAC,CAAC,EAAE,CAAC;YACT,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YACrF,OAAO;gBACL,KAAK,EAAE,IAAI;gBACX,IAAI,EAAE,MAAM;gBACZ,MAAM,EAAE,mBAAmB,CAAC,GAAG,EAAE,WAAW,CAAC;gBAC7C,eAAe,EAAE,wCAAwC,WAAW,cAAc,MAAM,CAAC,YAAY,IAAI,aAAa,cAAc,IAAI,IAAI,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,YAAY,wDAAwD,CAAC,CAAC,CAAC,EAAE,EAAE;gBACxP,GAAG,CAAC,YAAY,KAAK,SAAS,IAAI,EAAE,kBAAkB,EAAE,YAAY,EAAE,CAAC;aACxE,CAAC;QACJ,CAAC;QAED,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YACjD,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,OAAO;oBACL,KAAK,EAAE,KAAK;oBACZ,IAAI,EAAE,SAAS;oBACf,QAAQ,EAAE,eAAe,CAAC,QAAQ,EAAE,4BAA4B,CAAC;iBAClE,CAAC;YACJ,CAAC;YACD,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;gBACtB,OAAO;oBACL,KAAK,EAAE,KAAK;oBACZ,IAAI,EAAE,SAAS;oBACf,QAAQ,EAAE,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,2BAA2B,CAAC;iBACtE,CAAC;YACJ,CAAC;YACD,MAAM,MAAM,GAAwB;gBAClC,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;gBACvD,GAAG,CAAC,SAAS,KAAK,SAAS,IAAI,MAAM,CAAC,WAAW,KAAK,UAAU,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;aAC1F,CAAC;YACF,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,CAAC,aAAa,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;YACjF,MAAM,GAAG,GAAG,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,CAAC,MAAM,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBACjC,OAAO;oBACL,KAAK,EAAE,KAAK;oBACZ,IAAI,EAAE,SAAS;oBACf,QAAQ,EAAE,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC;iBAC7D,CAAC;YACJ,CAAC;YACD,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACrE,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACtF,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,EAAE;gBAChC,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,IAAI,EAAE,KAAK;gBACX,KAAK,EAAE,MAAM,CAAC,KAAK;aACpB,CAAC,CAAC;YACH,OAAO;gBACL,KAAK,EAAE,IAAI;gBACX,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,WAAW,CAAC;gBAChD,eAAe,EAAE,oCAAoC,MAAM,CAAC,WAAW,eAAe,MAAM,CAAC,MAAM,IAAI,UAAU,IAAI,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,YAAY,oDAAoD,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC7N,GAAG,CAAC,YAAY,KAAK,SAAS,IAAI,EAAE,kBAAkB,EAAE,YAAY,EAAE,CAAC;aACxE,CAAC;QACJ,CAAC;QAED,0BAA0B;QAC1B,MAAM,UAAU,GAAG,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QACrF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,CAAC;QAC7F,CAAC;QACD,IAAI,QAAyE,CAAC;QAC9E,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,CAClC,aAAa,EAAE,CAAC,aAAa,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,GAAG,CAAC,CACpE,CAAC;YACF,MAAM,GAAG,GAAG,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAI,MAAM,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBAChC,QAAQ,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;gBAC/C,MAAM;YACR,CAAC;QACH,CAAC;QACD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,YAAY,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,CAAC;QAC7F,CAAC;QACD,MAAM,WAAW,GAAG,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACrD,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACzE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;QACvF,OAAO;YACL,KAAK,EAAE,IAAI;YACX,IAAI,EAAE,aAAa;YACnB,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC;YAClD,eAAe,EAAE,qCAAqC,WAAW,sBAAsB,QAAQ,KAAK,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,YAAY,6DAA6D,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACtO,GAAG,CAAC,YAAY,KAAK,SAAS,IAAI,EAAE,kBAAkB,EAAE,YAAY,EAAE,CAAC;SACxE,CAAC;IACJ,CAAC;IAED,uFAAuF;IACvF,yFAAyF;IACzF,6BAA6B;IAC7B,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;QACjB,MAAM,KAAK,GAAa,CAAC,cAAc,MAAM,CAAC,KAAK,EAAE,EAAE,aAAa,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QACnF,IAAI,MAAM,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;YACzC,KAAK,CAAC,IAAI,CAAC,wBAAwB,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAChC,KAAK,CAAC,IAAI,CACR,EAAE,EACF,uBAAuB,EACvB,YAAY,CAAC,MAAM,CAAC,MAA2C,CAAC,CACjE,CAAC;QACJ,CAAC;QACD,IAAI,MAAM,CAAC,kBAAkB,KAAK,SAAS,EAAE,CAAC;YAC5C,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,2BAA2B,MAAM,CAAC,kBAAkB,EAAE,CAAC,CAAC;QACzE,CAAC;QACD,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS;YAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QACnE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpD,CAAC;CACF,CAAC,CAAC"}
|
|
@@ -23,6 +23,15 @@ export declare const CaseLawRecordSchema: z.ZodObject<{
|
|
|
23
23
|
guiding_principle: z.ZodOptional<z.ZodString>;
|
|
24
24
|
norms_cited: z.ZodArray<z.ZodString>;
|
|
25
25
|
keywords: z.ZodOptional<z.ZodString>;
|
|
26
|
+
indexes: z.ZodArray<z.ZodString>;
|
|
27
|
+
state: z.ZodOptional<z.ZodString>;
|
|
28
|
+
note: z.ZodOptional<z.ZodString>;
|
|
29
|
+
norm_index: z.ZodOptional<z.ZodObject<{
|
|
30
|
+
title: z.ZodOptional<z.ZodString>;
|
|
31
|
+
abbreviation: z.ZodOptional<z.ZodString>;
|
|
32
|
+
type: z.ZodOptional<z.ZodString>;
|
|
33
|
+
reference: z.ZodOptional<z.ZodString>;
|
|
34
|
+
}, z.core.$strip>>;
|
|
26
35
|
collection_number: z.ZodOptional<z.ZodString>;
|
|
27
36
|
ecli: z.ZodOptional<z.ZodString>;
|
|
28
37
|
decision_url: z.ZodOptional<z.ZodString>;
|
|
@@ -140,6 +149,15 @@ export declare const risSearchCaseLaw: import("@cyanheads/mcp-ts-core").ToolDefi
|
|
|
140
149
|
guiding_principle: z.ZodOptional<z.ZodString>;
|
|
141
150
|
norms_cited: z.ZodArray<z.ZodString>;
|
|
142
151
|
keywords: z.ZodOptional<z.ZodString>;
|
|
152
|
+
indexes: z.ZodArray<z.ZodString>;
|
|
153
|
+
state: z.ZodOptional<z.ZodString>;
|
|
154
|
+
note: z.ZodOptional<z.ZodString>;
|
|
155
|
+
norm_index: z.ZodOptional<z.ZodObject<{
|
|
156
|
+
title: z.ZodOptional<z.ZodString>;
|
|
157
|
+
abbreviation: z.ZodOptional<z.ZodString>;
|
|
158
|
+
type: z.ZodOptional<z.ZodString>;
|
|
159
|
+
reference: z.ZodOptional<z.ZodString>;
|
|
160
|
+
}, z.core.$strip>>;
|
|
143
161
|
collection_number: z.ZodOptional<z.ZodString>;
|
|
144
162
|
ecli: z.ZodOptional<z.ZodString>;
|
|
145
163
|
decision_url: z.ZodOptional<z.ZodString>;
|
|
@@ -1 +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,EAAE,MAAM,+BAA+B,CAAC;AAkBjE,OAAO,KAAK,EAAE,MAAM,
|
|
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,EAAE,MAAM,+BAA+B,CAAC;AAkBjE,OAAO,KAAK,EAAE,MAAM,EAAwB,MAAM,yBAAyB,CAAC;AAsE5E,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAsF7B,CAAC;AAEJ,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AA2BhE,6FAA6F;AAC7F,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,GAAG,aAAa,CA8ChF;AAED,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAub3B,CAAC"}
|
|
@@ -34,6 +34,33 @@ const ContentUrlsSchema = z
|
|
|
34
34
|
rtf: z.string().optional().describe('RTF rendition URL.'),
|
|
35
35
|
})
|
|
36
36
|
.describe('Rendition URLs of the main document.');
|
|
37
|
+
/**
|
|
38
|
+
* The identity of a law, for the one court code that indexes laws rather than deciding
|
|
39
|
+
* cases. Grouped rather than flattened onto the record: these four fields exist only under
|
|
40
|
+
* `court: normenliste`, they would need a `norm_` prefix each to avoid reading as decision
|
|
41
|
+
* attributes (`type` beside `decision_type`, a `title` no decision has), and the object's
|
|
42
|
+
* presence is a single check that tells a caller which kind of record it holds.
|
|
43
|
+
*/
|
|
44
|
+
const NormIndexSchema = z
|
|
45
|
+
.object({
|
|
46
|
+
title: z
|
|
47
|
+
.string()
|
|
48
|
+
.optional()
|
|
49
|
+
.describe('Full title of the law as the index records it (Titel) — often several lines, carrying the parliamentary references and originating gazette.'),
|
|
50
|
+
abbreviation: z
|
|
51
|
+
.string()
|
|
52
|
+
.optional()
|
|
53
|
+
.describe('Citable short form the VwGH uses for the law, e.g. "DSG 2000", "HlG 1989", "KFGNov 21te".'),
|
|
54
|
+
type: z
|
|
55
|
+
.string()
|
|
56
|
+
.optional()
|
|
57
|
+
.describe('Norm type code (BG, V, K, …) — glossary: ris_list_reference topic law_types.'),
|
|
58
|
+
reference: z
|
|
59
|
+
.string()
|
|
60
|
+
.optional()
|
|
61
|
+
.describe('Promulgation reference of the law (Fundstelle), e.g. "BGBl I 165/1999" — resolve it with ris_search_gazette or ris_lookup_citation.'),
|
|
62
|
+
})
|
|
63
|
+
.describe('The law this record indexes. Present only for court normenliste (the VwGH norm index); absent for the sixteen deciding courts, whose records describe a decision instead.');
|
|
37
64
|
export const CaseLawRecordSchema = z
|
|
38
65
|
.object({
|
|
39
66
|
document_number: z
|
|
@@ -71,6 +98,18 @@ export const CaseLawRecordSchema = z
|
|
|
71
98
|
.array(z.string().describe('One cited norm in RIS format, e.g. "DSG §1".'))
|
|
72
99
|
.describe('Norms the decision cites — copy an entry verbatim into the norm filter to find sibling case law.'),
|
|
73
100
|
keywords: z.string().optional().describe('Keywords (Schlagworte), where present.'),
|
|
101
|
+
indexes: z
|
|
102
|
+
.array(z.string().describe('One Systematik index entry, e.g. "10/10 Datenschutz".'))
|
|
103
|
+
.describe('Systematik classification entries (Indizes) — the same taxonomy ris_search_legislation filters on, so an entry copied here finds the consolidated law around the decision. Carried by vfgh, vwgh, lvwg, uvs, umse, and normenliste; empty for the rest.'),
|
|
104
|
+
state: z
|
|
105
|
+
.string()
|
|
106
|
+
.optional()
|
|
107
|
+
.describe('Bundesland whose administrative court decided (lvwg and uvs records) — the German name, e.g. "Tirol".'),
|
|
108
|
+
note: z
|
|
109
|
+
.string()
|
|
110
|
+
.optional()
|
|
111
|
+
.describe('Annotation (Anmerkung) — a renaming or lifecycle note on a normenliste law, an editorial note on a justiz or dsk decision.'),
|
|
112
|
+
norm_index: NormIndexSchema.optional(),
|
|
74
113
|
collection_number: z
|
|
75
114
|
.string()
|
|
76
115
|
.optional()
|
|
@@ -90,7 +129,7 @@ export const CaseLawRecordSchema = z
|
|
|
90
129
|
.describe('Challenge / legal-force note (Anfechtung), where present.'),
|
|
91
130
|
content_urls: ContentUrlsSchema,
|
|
92
131
|
})
|
|
93
|
-
.describe('One decision
|
|
132
|
+
.describe('One document from the selected court — a decision (headnote or full text), or, under court normenliste, one law of the VwGH norm index (see norm_index).');
|
|
94
133
|
/** Pick the four core rendition URLs off a normalized hit. */
|
|
95
134
|
function pickContentUrls(hit) {
|
|
96
135
|
const { html, pdf, rtf, xml } = hit.contentUrls;
|
|
@@ -101,6 +140,19 @@ function pickContentUrls(hit) {
|
|
|
101
140
|
...(rtf !== undefined && { rtf }),
|
|
102
141
|
};
|
|
103
142
|
}
|
|
143
|
+
/**
|
|
144
|
+
* The law a Judikatur hit indexes, or `undefined` when the hit is a decision. Only the
|
|
145
|
+
* Normenliste node carries these four; every other court leaves all of them absent.
|
|
146
|
+
*/
|
|
147
|
+
function pickNormIndex(md) {
|
|
148
|
+
const normIndex = {
|
|
149
|
+
...(md.title !== undefined && { title: md.title }),
|
|
150
|
+
...(md.abbreviation !== undefined && { abbreviation: md.abbreviation }),
|
|
151
|
+
...(md.normType !== undefined && { type: md.normType }),
|
|
152
|
+
...(md.reference !== undefined && { reference: md.reference }),
|
|
153
|
+
};
|
|
154
|
+
return Object.keys(normIndex).length > 0 ? normIndex : undefined;
|
|
155
|
+
}
|
|
104
156
|
/** Map a normalized RIS hit (Judikatur, or Sonstige for upts) to the tool's record shape. */
|
|
105
157
|
export function toRecord(hit, fallbackApplication) {
|
|
106
158
|
const base = {
|
|
@@ -108,11 +160,13 @@ export function toRecord(hit, fallbackApplication) {
|
|
|
108
160
|
content_urls: pickContentUrls(hit),
|
|
109
161
|
court: hit.application ?? fallbackApplication,
|
|
110
162
|
document_number: hit.documentNumber,
|
|
163
|
+
indexes: [],
|
|
111
164
|
norms_cited: [],
|
|
112
165
|
...(hit.organ !== undefined && { organ: hit.organ }),
|
|
113
166
|
};
|
|
114
167
|
const md = hit.metadata;
|
|
115
168
|
if (md.controller === 'Judikatur') {
|
|
169
|
+
const normIndex = pickNormIndex(md);
|
|
116
170
|
return {
|
|
117
171
|
...base,
|
|
118
172
|
case_numbers: [...md.caseNumbers],
|
|
@@ -123,9 +177,13 @@ export function toRecord(hit, fallbackApplication) {
|
|
|
123
177
|
...(md.decisionUrl !== undefined && { decision_url: md.decisionUrl }),
|
|
124
178
|
...(md.ecli !== undefined && { ecli: md.ecli }),
|
|
125
179
|
...(md.headnotesUrl !== undefined && { headnotes_url: md.headnotesUrl }),
|
|
180
|
+
indexes: [...md.indexes],
|
|
126
181
|
...(md.keywords !== undefined && { keywords: md.keywords }),
|
|
127
182
|
...(md.legalForceNote !== undefined && { legal_force_note: md.legalForceNote }),
|
|
183
|
+
...(md.note !== undefined && { note: md.note }),
|
|
184
|
+
...(normIndex !== undefined && { norm_index: normIndex }),
|
|
128
185
|
norms_cited: [...md.normsCited],
|
|
186
|
+
...(md.state !== undefined && { state: md.state }),
|
|
129
187
|
...(md.summary !== undefined && { summary: md.summary }),
|
|
130
188
|
...(md.guidingPrinciple !== undefined && { guiding_principle: md.guidingPrinciple }),
|
|
131
189
|
};
|
|
@@ -245,7 +303,7 @@ export const risSearchCaseLaw = tool('ris_search_case_law', {
|
|
|
245
303
|
output: z.object({
|
|
246
304
|
results: z
|
|
247
305
|
.array(CaseLawRecordSchema)
|
|
248
|
-
.describe('Matching
|
|
306
|
+
.describe('Matching documents for the requested page — decisions, or indexed laws under court normenliste. Totals and paging in enrichment.'),
|
|
249
307
|
}),
|
|
250
308
|
enrichment: {
|
|
251
309
|
totalCount: z.number().describe('Total matching documents across all pages.'),
|
|
@@ -407,7 +465,7 @@ export const risSearchCaseLaw = tool('ris_search_case_law', {
|
|
|
407
465
|
`0 decisions in ${court}. Other courts are separate calls — repeat per court.`,
|
|
408
466
|
];
|
|
409
467
|
if (caseNumber !== undefined) {
|
|
410
|
-
fragments.push("Geschäftszahl formats differ per court ('
|
|
468
|
+
fragments.push("Geschäftszahl formats differ per court ('Ro 2026/03/0016' = VwGH, 'G 287/2022' = VfGH, '14Os49/26a' = OGH/justiz) — ris_lookup_citation auto-detects the court from the format; examples per court: ris_list_reference topic courts.");
|
|
411
469
|
}
|
|
412
470
|
if (norm !== undefined) {
|
|
413
471
|
fragments.push("norm must match RIS's cited-norm format ('DSG §1', 'DSGVO Art32' style as returned in norms_cited) — run a broader search first and copy the exact string from a result's norms_cited.");
|
|
@@ -446,6 +504,8 @@ export const risSearchCaseLaw = tool('ris_search_case_law', {
|
|
|
446
504
|
const facts = [];
|
|
447
505
|
if (r.organ !== undefined)
|
|
448
506
|
facts.push(`**Organ:** ${r.organ}`);
|
|
507
|
+
if (r.state !== undefined)
|
|
508
|
+
facts.push(`**State:** ${r.state}`);
|
|
449
509
|
if (r.decision_date !== undefined)
|
|
450
510
|
facts.push(`**Decided:** ${r.decision_date}`);
|
|
451
511
|
if (r.decision_type !== undefined)
|
|
@@ -454,6 +514,21 @@ export const risSearchCaseLaw = tool('ris_search_case_law', {
|
|
|
454
514
|
facts.push(`**Kind:** ${r.decision_kind}`);
|
|
455
515
|
if (facts.length > 0)
|
|
456
516
|
lines.push(facts.join(' | '));
|
|
517
|
+
if (r.norm_index !== undefined) {
|
|
518
|
+
const norm = [];
|
|
519
|
+
if (r.norm_index.abbreviation !== undefined) {
|
|
520
|
+
norm.push(`**Norm:** ${r.norm_index.abbreviation}`);
|
|
521
|
+
}
|
|
522
|
+
if (r.norm_index.type !== undefined)
|
|
523
|
+
norm.push(`**Norm type:** ${r.norm_index.type}`);
|
|
524
|
+
if (r.norm_index.reference !== undefined) {
|
|
525
|
+
norm.push(`**Promulgated:** ${r.norm_index.reference}`);
|
|
526
|
+
}
|
|
527
|
+
if (norm.length > 0)
|
|
528
|
+
lines.push(norm.join(' | '));
|
|
529
|
+
if (r.norm_index.title !== undefined)
|
|
530
|
+
lines.push(`**Law:** ${r.norm_index.title}`);
|
|
531
|
+
}
|
|
457
532
|
const identifiers = [];
|
|
458
533
|
if (r.collection_number !== undefined) {
|
|
459
534
|
identifiers.push(`**Collection:** ${r.collection_number}`);
|
|
@@ -471,8 +546,12 @@ export const risSearchCaseLaw = tool('ris_search_case_law', {
|
|
|
471
546
|
}
|
|
472
547
|
if (r.norms_cited.length > 0)
|
|
473
548
|
lines.push(`**Norms:** ${r.norms_cited.join('; ')}`);
|
|
549
|
+
if (r.indexes.length > 0)
|
|
550
|
+
lines.push(`**Index:** ${r.indexes.join('; ')}`);
|
|
474
551
|
if (r.keywords !== undefined)
|
|
475
552
|
lines.push(`**Keywords:** ${r.keywords}`);
|
|
553
|
+
if (r.note !== undefined)
|
|
554
|
+
lines.push(`**Note:** ${r.note}`);
|
|
476
555
|
if (r.legal_force_note !== undefined) {
|
|
477
556
|
lines.push(`**Legal force:** ${r.legal_force_note}`);
|
|
478
557
|
}
|