@cyanheads/ris-austria-mcp-server 0.4.4 → 0.5.1

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 (76) hide show
  1. package/AGENTS.md +16 -14
  2. package/CLAUDE.md +16 -14
  3. package/Dockerfile +92 -36
  4. package/README.md +57 -94
  5. package/changelog/0.5.x/0.5.0.md +29 -0
  6. package/changelog/0.5.x/0.5.1.md +33 -0
  7. package/dist/config/server-config.d.ts.map +1 -1
  8. package/dist/config/server-config.js +1 -1
  9. package/dist/config/server-config.js.map +1 -1
  10. package/dist/mcp-server/resources/definitions/ris-document.resource.d.ts.map +1 -1
  11. package/dist/mcp-server/resources/definitions/ris-document.resource.js +3 -7
  12. package/dist/mcp-server/resources/definitions/ris-document.resource.js.map +1 -1
  13. package/dist/mcp-server/tools/definitions/_shared.d.ts +31 -9
  14. package/dist/mcp-server/tools/definitions/_shared.d.ts.map +1 -1
  15. package/dist/mcp-server/tools/definitions/_shared.js +40 -7
  16. package/dist/mcp-server/tools/definitions/_shared.js.map +1 -1
  17. package/dist/mcp-server/tools/definitions/ris-get-document.tool.d.ts +19 -7
  18. package/dist/mcp-server/tools/definitions/ris-get-document.tool.d.ts.map +1 -1
  19. package/dist/mcp-server/tools/definitions/ris-get-document.tool.js +67 -39
  20. package/dist/mcp-server/tools/definitions/ris-get-document.tool.js.map +1 -1
  21. package/dist/mcp-server/tools/definitions/ris-list-reference.tool.d.ts.map +1 -1
  22. package/dist/mcp-server/tools/definitions/ris-list-reference.tool.js +12 -8
  23. package/dist/mcp-server/tools/definitions/ris-list-reference.tool.js.map +1 -1
  24. package/dist/mcp-server/tools/definitions/ris-lookup-citation.tool.d.ts.map +1 -1
  25. package/dist/mcp-server/tools/definitions/ris-lookup-citation.tool.js +3 -9
  26. package/dist/mcp-server/tools/definitions/ris-lookup-citation.tool.js.map +1 -1
  27. package/dist/mcp-server/tools/definitions/ris-search-announcements.tool.d.ts +9 -3
  28. package/dist/mcp-server/tools/definitions/ris-search-announcements.tool.d.ts.map +1 -1
  29. package/dist/mcp-server/tools/definitions/ris-search-announcements.tool.js +46 -62
  30. package/dist/mcp-server/tools/definitions/ris-search-announcements.tool.js.map +1 -1
  31. package/dist/mcp-server/tools/definitions/ris-search-case-law.tool.d.ts +1 -1
  32. package/dist/mcp-server/tools/definitions/ris-search-case-law.tool.d.ts.map +1 -1
  33. package/dist/mcp-server/tools/definitions/ris-search-case-law.tool.js +27 -55
  34. package/dist/mcp-server/tools/definitions/ris-search-case-law.tool.js.map +1 -1
  35. package/dist/mcp-server/tools/definitions/ris-search-drafts.tool.d.ts +9 -3
  36. package/dist/mcp-server/tools/definitions/ris-search-drafts.tool.d.ts.map +1 -1
  37. package/dist/mcp-server/tools/definitions/ris-search-drafts.tool.js +20 -29
  38. package/dist/mcp-server/tools/definitions/ris-search-drafts.tool.js.map +1 -1
  39. package/dist/mcp-server/tools/definitions/ris-search-gazette.tool.d.ts +7 -1
  40. package/dist/mcp-server/tools/definitions/ris-search-gazette.tool.d.ts.map +1 -1
  41. package/dist/mcp-server/tools/definitions/ris-search-gazette.tool.js +28 -44
  42. package/dist/mcp-server/tools/definitions/ris-search-gazette.tool.js.map +1 -1
  43. package/dist/mcp-server/tools/definitions/ris-search-legislation.tool.d.ts +1 -1
  44. package/dist/mcp-server/tools/definitions/ris-search-legislation.tool.d.ts.map +1 -1
  45. package/dist/mcp-server/tools/definitions/ris-search-legislation.tool.js +18 -44
  46. package/dist/mcp-server/tools/definitions/ris-search-legislation.tool.js.map +1 -1
  47. package/dist/mcp-server/tools/definitions/ris-track-changes.tool.d.ts +1 -1
  48. package/dist/mcp-server/tools/definitions/ris-track-changes.tool.d.ts.map +1 -1
  49. package/dist/mcp-server/tools/definitions/ris-track-changes.tool.js +3 -11
  50. package/dist/mcp-server/tools/definitions/ris-track-changes.tool.js.map +1 -1
  51. package/dist/services/ris/reference/changed-since-intervals.d.ts +5 -3
  52. package/dist/services/ris/reference/changed-since-intervals.d.ts.map +1 -1
  53. package/dist/services/ris/reference/changed-since-intervals.js +4 -2
  54. package/dist/services/ris/reference/changed-since-intervals.js.map +1 -1
  55. package/dist/services/ris/reference/collections.d.ts +10 -6
  56. package/dist/services/ris/reference/collections.d.ts.map +1 -1
  57. package/dist/services/ris/reference/collections.js +29 -3
  58. package/dist/services/ris/reference/collections.js.map +1 -1
  59. package/dist/services/ris/reference/issuing-bodies.d.ts +57 -22
  60. package/dist/services/ris/reference/issuing-bodies.d.ts.map +1 -1
  61. package/dist/services/ris/reference/issuing-bodies.js +58 -23
  62. package/dist/services/ris/reference/issuing-bodies.js.map +1 -1
  63. package/dist/services/ris/reference/ministries.d.ts +56 -2
  64. package/dist/services/ris/reference/ministries.d.ts.map +1 -1
  65. package/dist/services/ris/reference/ministries.js +65 -1
  66. package/dist/services/ris/reference/ministries.js.map +1 -1
  67. package/dist/services/ris/request-builder.d.ts +20 -3
  68. package/dist/services/ris/request-builder.d.ts.map +1 -1
  69. package/dist/services/ris/request-builder.js +69 -17
  70. package/dist/services/ris/request-builder.js.map +1 -1
  71. package/dist/services/ris/ris-service.d.ts +14 -5
  72. package/dist/services/ris/ris-service.d.ts.map +1 -1
  73. package/dist/services/ris/ris-service.js +43 -17
  74. package/dist/services/ris/ris-service.js.map +1 -1
  75. package/package.json +11 -10
  76. package/server.json +12 -26
@@ -5,6 +5,7 @@
5
5
  */
6
6
  import { z } from '@cyanheads/mcp-ts-core';
7
7
  import { JsonRpcErrorCode, McpError, validationError } from '@cyanheads/mcp-ts-core/errors';
8
+ import { UNRESOLVED_MINISTRY_REASON } from '../../../services/ris/request-builder.js';
8
9
  /** Months with 30 days — the only non-February lengths a day of 31 can overshoot. */
9
10
  const THIRTY_DAY_MONTHS = new Set([4, 6, 9, 11]);
10
11
  /**
@@ -36,6 +37,28 @@ export const isoDateString = z
36
37
  .string()
37
38
  .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
39
  .refine(isRealCalendarDate, 'No such calendar date — check the day against the month and year.');
40
+ /**
41
+ * A free-text search filter, validated client-side: a supplied value must carry a
42
+ * non-whitespace character. RIS reads an empty filter as no filter and ignores some
43
+ * whitespace-only ones, so a blank would answer the unfiltered query the caller meant to
44
+ * narrow; omitting the field is the one way to leave a filter unset. The pattern reaches the
45
+ * advertised JSON Schema, so a schema-validating client rejects a blank before the call.
46
+ */
47
+ export const filterText = z
48
+ .string()
49
+ .regex(/\S/u, 'Blank or whitespace-only — send a value, or omit the field to leave it unfiltered.');
50
+ /**
51
+ * Documents per page on every paginated tool. RIS pages by page number over a fixed page
52
+ * size, so `page` / `pageSize` / `totalCount` / `truncated` stay exact at either size here;
53
+ * the service still speaks all four RIS sizes, but pages of 50 or 100 records are too large
54
+ * to return on both response surfaces, so callers read further with `page` instead.
55
+ */
56
+ export const pageSizeParam = z
57
+ .literal([10, 20], {
58
+ error: 'Expected 10 or 20 (default 20) — larger pages are not served; raise page to read further results.',
59
+ })
60
+ .optional()
61
+ .describe('Documents per page: 10 or 20 (default 20). For more results, keep the size and raise page.');
39
62
  /**
40
63
  * Framework codes raised below the handler, mapped to the contract reason describing them.
41
64
  *
@@ -52,10 +75,10 @@ const REASON_BY_CODE = new Map([
52
75
  [JsonRpcErrorCode.Timeout, 'upstream_timeout'],
53
76
  ]);
54
77
  /**
55
- * Map a request-builder or service failure onto the declared contract, so `reason` and
56
- * `recovery` reach the wire — neither the builder's `validationError` nor the service's
57
- * framework errors carry either on their own. An unmapped code is returned untouched for
58
- * the framework to classify.
78
+ * Map a request-builder or service failure onto the declared contract, so `reason` reaches
79
+ * the wire and the framework fills the entry's `recovery` from it — neither the builder's
80
+ * `validationError` nor the service's framework errors carry a reason on their own. An
81
+ * unmapped code is returned untouched for the framework to classify.
59
82
  *
60
83
  * Returns the error for the caller to `throw`, keeping the throw visible at the call site.
61
84
  */
@@ -63,9 +86,19 @@ export function failSearchError(error, ctx) {
63
86
  if (!(error instanceof McpError))
64
87
  return error;
65
88
  const reason = REASON_BY_CODE.get(error.code);
66
- return reason === undefined
67
- ? error
68
- : ctx.fail(reason, error.message, { ...ctx.recoveryFor(reason) });
89
+ return reason === undefined ? error : ctx.fail(reason, error.message);
90
+ }
91
+ /**
92
+ * {@link failSearchError} for the tools that take a ministry. The request builder tags a
93
+ * ministry it cannot resolve with `data.reason: 'unresolved_ministry'`; that rejection maps to
94
+ * the tool's own `unresolved_ministry` contract entry, whose recovery points at the ministries
95
+ * table, instead of the generic `invalid_query` advice. Everything else maps as usual.
96
+ */
97
+ export function failMinistrySearchError(error, ctx) {
98
+ if (error instanceof McpError && error.data?.reason === UNRESOLVED_MINISTRY_REASON) {
99
+ return ctx.fail(UNRESOLVED_MINISTRY_REASON, error.message);
100
+ }
101
+ return failSearchError(error, ctx);
69
102
  }
70
103
  /**
71
104
  * Replace the request builder's unsupported-parameter message with one written in the
@@ -1 +1 @@
1
- {"version":3,"file":"_shared.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/_shared.ts"],"names":[],"mappings":"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"}
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,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAE5F,OAAO,EAAE,0BAA0B,EAAE,MAAM,mCAAmC,CAAC;AAE/E,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;AAEnG;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC;KACxB,MAAM,EAAE;KACR,KAAK,CACJ,KAAK,EACL,oFAAoF,CACrF,CAAC;AAEJ;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC;KAC3B,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE;IACjB,KAAK,EACH,mGAAmG;CACtG,CAAC;KACD,QAAQ,EAAE;KACV,QAAQ,CACP,4FAA4F,CAC7F,CAAC;AAeJ;;;;;;;;;GASG;AACH,MAAM,cAAc,GAAG,IAAI,GAAG,CAAwC;IACpE,CAAC,gBAAgB,CAAC,eAAe,EAAE,eAAe,CAAC;IACnD,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,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;AACxE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CACrC,KAAc,EACd,GAAkF;IAElF,IAAI,KAAK,YAAY,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,MAAM,KAAK,0BAA0B,EAAE,CAAC;QACnF,OAAO,GAAG,CAAC,IAAI,CAAC,0BAA0B,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACrC,CAAC;AAYD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,uBAAuB,CACrC,KAAc,EACd,OAA2D;IAE3D,IAAI,CAAC,CAAC,KAAK,YAAY,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IAC/C,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IACvB,IAAI,OAAO,IAAI,EAAE,KAAK,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC1F,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IAC5C,MAAM,OAAO,GAAG,OAAO,CAAC;QACtB,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAE,YAAyB,CAAC,CAAC,CAAC,EAAE;QAC3E,KAAK;QACL,GAAG,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,EAAE,KAAK,EAAE,CAAC;KAC5C,CAAC,CAAC;IACH,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACxE,CAAC"}
@@ -14,7 +14,10 @@
14
14
  * retrievable outline rather than a silent truncation — its §/Artikel/Anlage sections, or
15
15
  * `Part n of N` byte windows where it carries no such headings; a follow-up call with
16
16
  * `sections:[…]` returns just the chosen entries, and a selector matching nothing gets the
17
- * outline back with a notice rather than the whole document. The shared
17
+ * outline back with a notice rather than the whole document. Raw `html` and `xml` are never
18
+ * sliced: over the same budget they come back as a `kind: link` result that carries no text
19
+ * and points at `content_urls`, which fetches the whole artifact in one GET. Raw text that
20
+ * does return is fenced in `content[]`, so markup never renders there as markdown. The shared
18
21
  * {@link renderDocument} helper backs both this tool and the `ris://document/…` resource.
19
22
  * @module mcp-server/tools/definitions/ris-get-document
20
23
  */
@@ -43,6 +46,12 @@ export type DocumentFormat = 'markdown' | 'html' | 'xml' | 'urls_only';
43
46
  *
44
47
  * Handed to `outlineOnOverflow`, which measures `JSON.stringify` length (≈ UTF-8 bytes for
45
48
  * the mostly-Latin legal text); the exact `byte_size` is reported separately.
49
+ *
50
+ * The same number bounds raw `html` and `xml`, measured on `byte_size` — the figure the caller
51
+ * sees and the link notice cites. Those are never windowed (their bodies are typically one
52
+ * line, and a slice is not well-formed), so over the budget they return a `kind: link` result
53
+ * instead. Every HTML rendition opens with a 40–70 KB stylesheet header, so html practically
54
+ * never inlines; markdown is the reading format, and `content_urls.html` the authentic markup.
46
55
  */
47
56
  export declare const OUTLINE_BUDGET_BYTES = 40000;
48
57
  /** Constructed rendition URLs for a document, keyed by DataType. */
@@ -88,8 +97,10 @@ type ParsedDocumentUrl = {
88
97
  };
89
98
  /**
90
99
  * Parse a caller-supplied `document_url` into `(application, documentNumber)` — errors as
91
- * values (no throw). Enforces the same host + `/Dokumente/` allowlist as the service's
92
- * fetch guard, then reverse-maps the content-path segment to its application.
100
+ * values (no throw). Enforces the same origin + `/Dokumente/` allowlist as the service's
101
+ * fetch guard, then reverse-maps the content-path segment to its application. The origin a
102
+ * URL arrived on is not carried forward: the rendition is fetched from the URL the service
103
+ * constructs, which RIS serves identically on both content origins.
93
104
  */
94
105
  export declare function parseDocumentUrl(url: string, contentBaseUrl: string): ParsedDocumentUrl;
95
106
  /**
@@ -151,8 +162,8 @@ export declare function windowDocument(text: string, budget: number): DocumentSe
151
162
  * here, so every entry the outline advertises is retrievable by name.
152
163
  *
153
164
  * Markdown only. `html` and `xml` are byte-identical passthroughs of the published artifact
154
- * and a mid-document slice of either is not well-formed, so they stay whole at any size and
155
- * a caller who needs one has `content_urls`.
165
+ * and a mid-document slice of either is not well-formed, so they are never addressed in
166
+ * pieces: whole under the budget, a `kind: link` result pointing at `content_urls` over it.
156
167
  *
157
168
  * The two-entry floor matches `outlineOnOverflow`'s own short-circuit: an outline whose only
158
169
  * possible `sections` argument returns the same bytes costs a round-trip and buys nothing.
@@ -245,6 +256,7 @@ export declare const risGetDocument: import("@cyanheads/mcp-ts-core").ToolDefini
245
256
  truncated: z.ZodOptional<z.ZodBoolean>;
246
257
  kind: z.ZodEnum<{
247
258
  full: "full";
259
+ link: "link";
248
260
  outline: "outline";
249
261
  }>;
250
262
  sections: z.ZodOptional<z.ZodArray<z.ZodObject<{
@@ -277,8 +289,8 @@ export declare const risGetDocument: import("@cyanheads/mcp-ts-core").ToolDefini
277
289
  }, {
278
290
  readonly reason: "unsupported_url";
279
291
  readonly code: JsonRpcErrorCode.ValidationError;
280
- readonly when: "document_url fails the host + /Dokumente/ path-prefix allowlist, its path segment is not a recognized RIS application, or its trailing filename addresses neither the document’s own rendition nor one of its companion documents — thrown locally, nothing fetched.";
281
- readonly recovery: "Only ris.bka.gv.at /Dokumente/ URLs are fetchable, and only a document’s own rendition or a companion filed in the same folder — copy the URL verbatim from a result’s content_urls or a ris_search_drafts record’s materials, or switch to document_number + application.";
292
+ readonly when: "document_url fails the origin + /Dokumente/ path-prefix allowlist (exactly https://www.ris.bka.gv.at and https://ogd.ris.bka.gv.at), its path segment is not a recognized RIS application, or its trailing filename addresses neither the document’s own rendition nor one of its companion documents — thrown locally, nothing fetched.";
293
+ readonly recovery: "Only /Dokumente/ URLs on www.ris.bka.gv.at or ogd.ris.bka.gv.at are fetchable, and only a document’s own rendition or a companion filed in the same folder — copy the URL verbatim from a result’s content_urls or a ris_search_drafts record’s materials, or switch to document_number + application.";
282
294
  }, {
283
295
  readonly reason: "document_not_found";
284
296
  readonly code: JsonRpcErrorCode.NotFound;
@@ -1 +1 @@
1
- {"version":3,"file":"ris-get-document.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/ris-get-document.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ris-get-document.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/ris-get-document.tool.ts"],"names":[],"mappings":"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"}
@@ -14,17 +14,20 @@
14
14
  * retrievable outline rather than a silent truncation — its §/Artikel/Anlage sections, or
15
15
  * `Part n of N` byte windows where it carries no such headings; a follow-up call with
16
16
  * `sections:[…]` returns just the chosen entries, and a selector matching nothing gets the
17
- * outline back with a notice rather than the whole document. The shared
17
+ * outline back with a notice rather than the whole document. Raw `html` and `xml` are never
18
+ * sliced: over the same budget they come back as a `kind: link` result that carries no text
19
+ * and points at `content_urls`, which fetches the whole artifact in one GET. Raw text that
20
+ * does return is fenced in `content[]`, so markup never renders there as markdown. The shared
18
21
  * {@link renderDocument} helper backs both this tool and the `ris://document/…` resource.
19
22
  * @module mcp-server/tools/definitions/ris-get-document
20
23
  */
21
24
  import { tool, z } from '@cyanheads/mcp-ts-core';
22
25
  import { JsonRpcErrorCode, McpError, validationError } from '@cyanheads/mcp-ts-core/errors';
23
- import { OUTLINE_VARIANT, outlineOnOverflow, } from '@cyanheads/mcp-ts-core/utils';
26
+ import { markdown, OUTLINE_VARIANT, outlineOnOverflow, } from '@cyanheads/mcp-ts-core/utils';
24
27
  import { NodeHtmlMarkdown } from 'node-html-markdown';
25
28
  import { getServerConfig } from '../../../config/server-config.js';
26
29
  import { RIS_APPLICATIONS } from '../../../services/ris/reference/index.js';
27
- import { getRisService, RIS_CONTENT_FORMATS, } from '../../../services/ris/ris-service.js';
30
+ import { fetchableOrigins, getRisService, RIS_CONTENT_FORMATS, } from '../../../services/ris/ris-service.js';
28
31
  /** The seven canonical binding labels (Design Decisions › Binding status). */
29
32
  const BINDING_STATUSES = [
30
33
  'authentic',
@@ -53,6 +56,12 @@ const BINDING_STATUSES = [
53
56
  *
54
57
  * Handed to `outlineOnOverflow`, which measures `JSON.stringify` length (≈ UTF-8 bytes for
55
58
  * the mostly-Latin legal text); the exact `byte_size` is reported separately.
59
+ *
60
+ * The same number bounds raw `html` and `xml`, measured on `byte_size` — the figure the caller
61
+ * sees and the link notice cites. Those are never windowed (their bodies are typically one
62
+ * line, and a slice is not well-formed), so over the budget they return a `kind: link` result
63
+ * instead. Every HTML rendition opens with a 40–70 KB stylesheet header, so html practically
64
+ * never inlines; markdown is the reading format, and `content_urls.html` the authentic markup.
56
65
  */
57
66
  export const OUTLINE_BUDGET_BYTES = 40_000;
58
67
  const APPLICATION_CODES = RIS_APPLICATIONS.map((app) => app.code);
@@ -151,8 +160,10 @@ function decodePathSegment(segment) {
151
160
  }
152
161
  /**
153
162
  * Parse a caller-supplied `document_url` into `(application, documentNumber)` — errors as
154
- * values (no throw). Enforces the same host + `/Dokumente/` allowlist as the service's
155
- * fetch guard, then reverse-maps the content-path segment to its application.
163
+ * values (no throw). Enforces the same origin + `/Dokumente/` allowlist as the service's
164
+ * fetch guard, then reverse-maps the content-path segment to its application. The origin a
165
+ * URL arrived on is not carried forward: the rendition is fetched from the URL the service
166
+ * constructs, which RIS serves identically on both content origins.
156
167
  */
157
168
  export function parseDocumentUrl(url, contentBaseUrl) {
158
169
  let parsed;
@@ -162,8 +173,9 @@ export function parseDocumentUrl(url, contentBaseUrl) {
162
173
  catch {
163
174
  return { error: `"${url}" is not a valid URL` };
164
175
  }
165
- if (parsed.origin !== new URL(contentBaseUrl).origin) {
166
- return { error: `only ${new URL(contentBaseUrl).origin} URLs are fetchable` };
176
+ const origins = fetchableOrigins(contentBaseUrl);
177
+ if (!origins.includes(parsed.origin)) {
178
+ return { error: `only ${origins.join(' or ')} URLs are fetchable` };
167
179
  }
168
180
  if (!parsed.pathname.startsWith('/Dokumente/')) {
169
181
  return { error: 'the path is outside the /Dokumente/ tree' };
@@ -419,8 +431,8 @@ export function windowDocument(text, budget) {
419
431
  * here, so every entry the outline advertises is retrievable by name.
420
432
  *
421
433
  * Markdown only. `html` and `xml` are byte-identical passthroughs of the published artifact
422
- * and a mid-document slice of either is not well-formed, so they stay whole at any size and
423
- * a caller who needs one has `content_urls`.
434
+ * and a mid-document slice of either is not well-formed, so they are never addressed in
435
+ * pieces: whole under the budget, a `kind: link` result pointing at `content_urls` over it.
424
436
  *
425
437
  * The two-entry floor matches `outlineOnOverflow`'s own short-circuit: an outline whose only
426
438
  * possible `sections` argument returns the same bytes costs a round-trip and buys nothing.
@@ -575,7 +587,7 @@ const ContentUrlsSchema = z
575
587
  .describe('Constructed rendition URLs. Empty for authentic-PDF-only (Bvb/GrA/KmGer) and metadata-only (BgblAlt) applications — see authentic_pdf_url and the notice. For a companion document (a draft’s Erläuterungen, Textgegenüberstellung, WFA, cover letter, or annex) these are the companion’s own XML/HTML/PDF, not the parent document’s — constructed rather than read back from RIS, so for the roughly one companion in eight that RIS files as a PDF only, xml and html return 404 and pdf is the one that resolves.');
576
588
  export const risGetDocument = tool('ris_get_document', {
577
589
  title: 'Get RIS Document',
578
- description: 'Fetch one RIS document’s full text or its rendition URLs, with explicit binding status and the amtssigniert authentic PDF surfaced wherever it exists. Address the document exactly one of two ways: document_number plus application (both copied verbatim from a ris_search_* or ris_lookup_citation result), or a document_url from a result’s content_urls — or, for a draft’s companion documents (Erläuterungen, Textgegenüberstellung, WFA, cover letter, annexes), a ris_search_drafts record’s materials[].url, which is the only route to them. format: markdown (default — the HTML rendition converted to markdown), html (raw HTML rendition), xml (the RIS Nutzdaten XML), or urls_only (no fetch — every rendition URL, including the Authentisch PDF). Format availability varies by application and the tool degrades explicitly, never silently: consolidated law, gazettes, case law, drafts, and most sectoral collections carry full text; district and municipal promulgations and court rules (Bvb, GrA, KmGer) publish only the signed authentic PDF; party-transparency decisions and council minutes (Upts, Mrp) are PDF-only; the 1848–1940 imperial gazettes (BgblAlt) are metadata-only — for these a text-format request returns a format_unavailable notice with the usable URL, not an error. Every result carries binding_status; only authentic (amtssigniert) publications are legally binding. This tool returns content, not fresh metadata — the metadata rides the search/lookup step that produced the document number. When the markdown text overflows the 40,000-byte budget the tool returns an outline (kind: outline) instead of truncating: the document’s §/Artikel/Anlage sections where it carries at least two such headings, otherwise contiguous byte windows named Part 1 of N … Part N of N covering the whole text and listed in document order. Re-call with sections:[…] naming outline entries to retrieve just those; a name matching no entry returns the outline again with a notice rather than the whole document. Windows are cut at line breaks, not at sentence or § boundaries, so one can open mid-sentence — read them in order and pull the neighbour when a passage straddles a cut. Raw html and xml renditions are never sliced and return whole at any size. Markdown drops the screen-reader expansions RIS ships alongside each abbreviated citation, keeping the visible citation form; raw html/xml renditions are returned exactly as published.',
590
+ description: 'Fetch one RIS document’s full text or its rendition URLs, with explicit binding status and the amtssigniert authentic PDF surfaced wherever it exists. Address the document exactly one of two ways: document_number plus application (both copied verbatim from a ris_search_* or ris_lookup_citation result), or a document_url from a result’s content_urls — or, for a draft’s companion documents (Erläuterungen, Textgegenüberstellung, WFA, cover letter, annexes), a ris_search_drafts record’s materials[].url, which is the only route to them. format: markdown (default — the HTML rendition converted to markdown), html (raw HTML rendition), xml (the RIS Nutzdaten XML), or urls_only (no fetch — every rendition URL, including the Authentisch PDF). Format availability varies by application and the tool degrades explicitly, never silently: consolidated law, gazettes, case law, drafts, and most sectoral collections carry full text; district and municipal promulgations and court rules (Bvb, GrA, KmGer) publish only the signed authentic PDF; party-transparency decisions and council minutes (Upts, Mrp) are PDF-only; the 1848–1940 imperial gazettes (BgblAlt) are metadata-only — for these a text-format request returns a format_unavailable notice with the usable URL, not an error. Every result carries binding_status; only authentic (amtssigniert) publications are legally binding. This tool returns content, not fresh metadata — the metadata rides the search/lookup step that produced the document number. When the markdown text overflows the 40,000-byte budget the tool returns an outline (kind: outline) instead of truncating: the document’s §/Artikel/Anlage sections where it carries at least two such headings, otherwise contiguous byte windows named Part 1 of N … Part N of N covering the whole text and listed in document order. Re-call with sections:[…] naming outline entries to retrieve just those; a name matching no entry returns the outline again with a notice rather than the whole document. Windows are cut at line breaks, not at sentence or § boundaries, so one can open mid-sentence — read them in order and pull the neighbour when a passage straddles a cut. Raw html and xml renditions are never sliced: at or under the 40,000-byte budget they return whole; over it the result is kind: link — no text, truncated: true, the full byte_size, and content_urls, whose html or xml entry fetches the whole artifact in one GET. Every HTML rendition opens with a 40–70 KB stylesheet, so html practically always returns kind: link — read with markdown, parse with xml, and fetch content_urls.html for the authentic markup. Markdown drops the screen-reader expansions RIS ships alongside each abbreviated citation, keeping the visible citation form; raw html/xml renditions are returned exactly as published.',
579
591
  annotations: { readOnlyHint: true, idempotentHint: true, openWorldHint: true },
580
592
  input: z.object({
581
593
  document_number: z
@@ -589,35 +601,35 @@ export const risGetDocument = tool('ris_get_document', {
589
601
  document_url: z
590
602
  .string()
591
603
  .optional()
592
- .describe('A https://www.ris.bka.gv.at/Dokumente/… rendition URL as returned in a result’s content_urls — the alternative to document_number + application. Also the only way to read a draft’s companion documents: pass a ris_search_drafts record’s materials[].url (the Erläuterungen, Textgegenüberstellung, WFA, cover letter, or annex), whose filenames are opaque and per-record and so cannot be reached through document_number. Every companion filename RIS publishes is accepted, whichever shape it carries. The URL’s own extension is only checked against the rendition extensions RIS uses and is then discarded — format selects which rendition is returned, for a companion exactly as for a main document. A filename that is neither this document’s own rendition nor one of its companions is rejected; companion filenames cannot be composed by hand, so copy one verbatim.'),
604
+ .describe('A /Dokumente/… rendition URL on https://www.ris.bka.gv.at or https://ogd.ris.bka.gv.at, passed exactly as a result’s content_urls returned it — the alternative to document_number + application. Also the only way to read a draft’s companion documents: pass a ris_search_drafts record’s materials[].url (the Erläuterungen, Textgegenüberstellung, WFA, cover letter, or annex), whose filenames are opaque and per-record and so cannot be reached through document_number. Every companion filename RIS publishes is accepted, whichever shape it carries. The URL’s own extension is only checked against the rendition extensions RIS uses and is then discarded — format selects which rendition is returned, for a companion exactly as for a main document. A filename that is neither this document’s own rendition nor one of its companions is rejected; companion filenames cannot be composed by hand, so copy one verbatim.'),
593
605
  format: z
594
606
  .enum(['markdown', 'html', 'xml', 'urls_only'])
595
607
  .default('markdown')
596
- .describe('markdown (default — the HTML rendition converted to markdown), html (raw HTML rendition), xml (RIS Nutzdaten schema), or urls_only (no fetch — all rendition URLs incl. the authentic PDF).'),
608
+ .describe('markdown (default — the HTML rendition converted to markdown, and the format for reading), html (raw HTML rendition), xml (RIS Nutzdaten schema), or urls_only (no fetch — all rendition URLs incl. the authentic PDF). html and xml over 40,000 bytes return kind: link with no text — nearly every html rendition does, since each carries a 40–70 KB stylesheet — so fetch content_urls.html or content_urls.xml for the whole artifact.'),
597
609
  sections: z
598
610
  .array(z.string())
599
611
  .optional()
600
- .describe('Entry names to retrieve, each copied verbatim from a prior outline response (kind: outline) — §/Artikel/Anlage section names, or window names of the form "Part 2 of 6". Omit for the full document, which returns an outline instead when the markdown overflows the 40,000-byte budget. A name that matches no entry is never silently ignored: a total miss returns the outline (kind: outline) with a notice, a partial miss returns the matched entries with a notice naming others to pick from. Applies to markdown only — html, xml, and urls_only are never sliced and return in full.'),
612
+ .describe('Entry names to retrieve, each copied verbatim from a prior outline response (kind: outline) — §/Artikel/Anlage section names, or window names of the form "Part 2 of 6". Omit for the full document, which returns an outline instead when the markdown overflows the 40,000-byte budget. A name that matches no entry is never silently ignored: a total miss returns the outline (kind: outline) with a notice, a partial miss returns the matched entries with a notice naming others to pick from. Applies to markdown only. html and xml are never sliced — the selector is ignored with a notice, and they return whole under the 40,000-byte budget and as kind: link over it; urls_only carries no text to select from.'),
601
613
  }),
602
614
  output: z.object({
603
615
  text: z
604
616
  .string()
605
617
  .optional()
606
- .describe('The document text in the requested format. Absent for urls_only and when the application carries no text rendition (see the notice).'),
618
+ .describe('The document text in the requested format. Absent for urls_only, when the application carries no text rendition (see the notice), for an outline (kind: outline), and for an html or xml rendition over the 40,000-byte budget (kind: link).'),
607
619
  format: z
608
620
  .enum(['markdown', 'html', 'xml', 'urls_only'])
609
621
  .describe('The format served — echoes the requested format.'),
610
622
  byte_size: z
611
623
  .number()
612
624
  .optional()
613
- .describe('Full UTF-8 byte size of the document text. Present when text was fetched — for an overflowed document (kind: outline) this reports the full text’s size, not the outline payload’s.'),
625
+ .describe('Full UTF-8 byte size of the document text. Present when text was fetched — for an overflowed document (kind: outline) or an over-budget html/xml rendition (kind: link) this reports the full text’s size, not the returned payload’s.'),
614
626
  truncated: z
615
627
  .boolean()
616
628
  .optional()
617
- .describe('Present and true when the full text isn’t inline because an outline was returned instead (kind: outline) — either the document overflowed the byte budget, or a sections:[…] selector matched nothing. The notice names which. Retrieve entries via the sections input, or fetch content_urls for the whole artifact.'),
629
+ .describe('Present and true when the full text isn’t inline. kind: outline — the markdown overflowed the byte budget or a sections:[…] selector matched nothing (the notice names which); retrieve entries via the sections input. kind: link — an html or xml rendition overflowed the budget; fetch content_urls.html or content_urls.xml for the whole artifact, or re-call with format: markdown.'),
618
630
  kind: z
619
- .enum(['full', 'outline'])
620
- .describe('full — the complete response (document text, selected entries, or rendition URLs). outline — sections lists the retrievable entries instead of the text, either because the document overflowed the byte budget or because a sections:[…] selector matched nothing; re-call with sections:[…] naming entries from it.'),
631
+ .enum(['full', 'outline', 'link'])
632
+ .describe('full — the complete response (document text, selected entries, or rendition URLs). outline — sections lists the retrievable entries instead of the text, either because the markdown overflowed the byte budget or because a sections:[…] selector matched nothing; re-call with sections:[…] naming entries from it. link — an html or xml rendition over the 40,000-byte budget: no text, only byte_size and content_urls, whose entry for the requested format fetches the whole artifact in one GET; re-call with format: markdown to read it.'),
621
633
  sections: z
622
634
  .array(OUTLINE_VARIANT.shape.sections.element.describe('A retrievable entry — a §/Artikel/Anlage section or a Part n of N byte window, with its UTF-8 byte size.'))
623
635
  .optional()
@@ -637,7 +649,7 @@ export const risGetDocument = tool('ris_get_document', {
637
649
  notice: z
638
650
  .string()
639
651
  .optional()
640
- .describe('Present when the requested text format is unavailable for this application (names why and the usable URL), when the document overflowed to a section outline (names how to retrieve sections), or when a sections:[…] entry matched no section (names the unmatched entries).'),
652
+ .describe('Present when the requested text format is unavailable for this application (names why and the usable URL), when the document overflowed to a section outline (names how to retrieve sections), when an html or xml rendition overflowed to a link (names content_urls.<format> and format: markdown), or when a sections:[…] entry matched no section or was ignored (names the unmatched entries).'),
641
653
  },
642
654
  errors: [
643
655
  {
@@ -649,8 +661,8 @@ export const risGetDocument = tool('ris_get_document', {
649
661
  {
650
662
  reason: 'unsupported_url',
651
663
  code: JsonRpcErrorCode.ValidationError,
652
- when: 'document_url fails the host + /Dokumente/ path-prefix allowlist, its path segment is not a recognized RIS application, or its trailing filename addresses neither the document’s own rendition nor one of its companion documents — thrown locally, nothing fetched.',
653
- recovery: 'Only ris.bka.gv.at /Dokumente/ URLs are fetchable, and only a document’s own rendition or a companion filed in the same folder — copy the URL verbatim from a result’s content_urls or a ris_search_drafts record’s materials, or switch to document_number + application.',
664
+ when: 'document_url fails the origin + /Dokumente/ path-prefix allowlist (exactly https://www.ris.bka.gv.at and https://ogd.ris.bka.gv.at), its path segment is not a recognized RIS application, or its trailing filename addresses neither the document’s own rendition nor one of its companion documents — thrown locally, nothing fetched.',
665
+ recovery: 'Only /Dokumente/ URLs on www.ris.bka.gv.at or ogd.ris.bka.gv.at are fetchable, and only a document’s own rendition or a companion filed in the same folder — copy the URL verbatim from a result’s content_urls or a ris_search_drafts record’s materials, or switch to document_number + application.',
654
666
  },
655
667
  {
656
668
  reason: 'document_not_found',
@@ -675,10 +687,9 @@ export const risGetDocument = tool('ris_get_document', {
675
687
  ],
676
688
  async handler(input, ctx) {
677
689
  const documentNumber = meaningful(input.document_number);
678
- const application = meaningful(input.application);
679
690
  const documentUrl = meaningful(input.document_url);
680
- const { format } = input;
681
- const failAddressing = (message) => ctx.fail('invalid_addressing', message, { ...ctx.recoveryFor('invalid_addressing') });
691
+ const { application, format } = input;
692
+ const failAddressing = (message) => ctx.fail('invalid_addressing', message);
682
693
  let resolvedApplication;
683
694
  let resolvedDocumentNumber;
684
695
  let resolvedContentName;
@@ -688,9 +699,7 @@ export const risGetDocument = tool('ris_get_document', {
688
699
  }
689
700
  const parsed = parseDocumentUrl(documentUrl, getServerConfig().contentBaseUrl);
690
701
  if ('error' in parsed) {
691
- throw ctx.fail('unsupported_url', `document_url is not fetchable — ${parsed.error}.`, {
692
- ...ctx.recoveryFor('unsupported_url'),
693
- });
702
+ throw ctx.fail('unsupported_url', `document_url is not fetchable — ${parsed.error}.`);
694
703
  }
695
704
  resolvedApplication = parsed.application;
696
705
  resolvedDocumentNumber = parsed.documentNumber;
@@ -707,9 +716,7 @@ export const risGetDocument = tool('ris_get_document', {
707
716
  const rendition = await renderDocument(resolvedApplication, resolvedDocumentNumber, format, ctx, resolvedContentName).catch((err) => {
708
717
  if (err instanceof McpError) {
709
718
  if (err.code === JsonRpcErrorCode.ValidationError) {
710
- throw ctx.fail('invalid_addressing', err.message, {
711
- ...ctx.recoveryFor('invalid_addressing'),
712
- });
719
+ throw ctx.fail('invalid_addressing', err.message);
713
720
  }
714
721
  if (err.code === JsonRpcErrorCode.NotFound) {
715
722
  // The contract's recovery is written for the document_number + application mode.
@@ -718,7 +725,7 @@ export const risGetDocument = tool('ris_get_document', {
718
725
  // as PDF (or PDF and RTF) with no html or xml twin to render, nearly all of them
719
726
  // review-draft covering letters, and RIS 404s a rendition it does not list.
720
727
  throw ctx.fail('document_not_found', err.message, resolvedContentName === undefined
721
- ? { ...ctx.recoveryFor('document_not_found') }
728
+ ? undefined
722
729
  : {
723
730
  recovery: {
724
731
  hint: `This companion document has no ${format} rendition — about one in eight is filed as a PDF with no text rendition at all, and RIS returns 404 for a rendition it does not publish. Re-call with format: urls_only and fetch content_urls.pdf yourself. If the PDF 404s too, the URL itself is stale — take a fresh one from a ris_search_drafts record's materials.`,
@@ -726,15 +733,13 @@ export const risGetDocument = tool('ris_get_document', {
726
733
  });
727
734
  }
728
735
  if (err.code === JsonRpcErrorCode.ServiceUnavailable) {
729
- throw ctx.fail('upstream_error', err.message, { ...ctx.recoveryFor('upstream_error') });
736
+ throw ctx.fail('upstream_error', err.message);
730
737
  }
731
738
  // Its own reason, not a widened upstream_error guard: `ctx.fail` resolves the code
732
739
  // from the contract entry, so folding a deadline into upstream_error would report
733
740
  // -32000 for it — and the two want different recovery (degraded host vs. cold render).
734
741
  if (err.code === JsonRpcErrorCode.Timeout) {
735
- throw ctx.fail('upstream_timeout', err.message, {
736
- ...ctx.recoveryFor('upstream_timeout'),
737
- });
742
+ throw ctx.fail('upstream_timeout', err.message);
738
743
  }
739
744
  }
740
745
  throw err;
@@ -757,6 +762,18 @@ export const risGetDocument = tool('ris_get_document', {
757
762
  }
758
763
  const { byteSize } = rendition;
759
764
  const requestedSections = input.sections?.filter((name) => name.trim() !== '') ?? [];
765
+ // A raw rendition over the budget. Never sliced — its body is typically one line and a
766
+ // slice is not well-formed — so no text returns on either surface; content_urls fetches
767
+ // the whole artifact in one GET, and markdown is the bounded reading path.
768
+ if ((format === 'html' || format === 'xml') &&
769
+ byteSize !== undefined &&
770
+ byteSize > OUTLINE_BUDGET_BYTES) {
771
+ const ignored = requestedSections.length > 0
772
+ ? `sections:[…] was ignored — raw html and xml are never sliced, so ${quoteNames([...new Set(requestedSections)])} could not be resolved. `
773
+ : '';
774
+ ctx.enrich.notice(`${ignored}The ${format} rendition is ${byteSize} bytes, over the ${OUTLINE_BUDGET_BYTES}-byte budget for inline text, so no text is returned. Fetch the whole artifact in one GET from content_urls.${format} (${rendition.contentUrls[format]}), or re-call ris_get_document with the same addressing and format: "markdown" for readable text, which outlines a long document into retrievable sections.`);
775
+ return { ...base, kind: 'link', truncated: true, byte_size: byteSize };
776
+ }
760
777
  // Selective retrieval — the re-call after an outline. Every outcome is disclosed: a
761
778
  // partial match names the entries that were dropped, and a total miss returns the section
762
779
  // roster (driven by the no-match, not by the byte budget) so the caller can tell "your
@@ -826,12 +843,20 @@ export const risGetDocument = tool('ris_get_document', {
826
843
  // format() populates content[] — the markdown twin of structuredContent. Every output
827
844
  // field renders here; the notice rides the enrichment trailer. The full-text (`text`) and
828
845
  // outline (`sections`) arms render on field presence, independently — never branch on
829
- // `kind` (format-parity walks one sample with every optional field populated at once).
846
+ // `kind` (format-parity walks one sample with every optional field populated at once). A
847
+ // truncated result with no `sections` is the link arm, which has no outline to point at.
848
+ // Raw html/xml is fenced with a fence longer than any backtick run in it, so the markup
849
+ // reaches the client as literal text — never rendered, never able to close the block.
830
850
  format: (result) => {
831
851
  const lines = [`## ${result.document_number} (${result.application})`];
832
852
  lines.push(`**Binding:** ${result.binding_status} | **Format:** ${result.format} | **Kind:** ${result.kind}`);
833
853
  if (result.byte_size !== undefined) {
834
- lines.push(`**Size:** ${result.byte_size} bytes${result.truncated === true ? ' (truncated — retrieve sections from the outline below)' : ''}`);
854
+ const suffix = result.truncated !== true
855
+ ? ''
856
+ : result.sections !== undefined
857
+ ? ' (truncated — retrieve sections from the outline below)'
858
+ : ` (not inline — fetch content_urls.${result.format}, or re-call with format: markdown)`;
859
+ lines.push(`**Size:** ${result.byte_size} bytes${suffix}`);
835
860
  }
836
861
  if (result.authentic_pdf_url !== undefined) {
837
862
  lines.push(`**Authentic PDF:** ${result.authentic_pdf_url}`);
@@ -843,8 +868,11 @@ export const risGetDocument = tool('ris_get_document', {
843
868
  lines.push(`**Renditions:** ${urls.join(' · ')}`);
844
869
  if (result.sections !== undefined)
845
870
  lines.push('', renderOutlineSections(result.sections));
846
- if (result.text !== undefined)
847
- lines.push('', result.text);
871
+ if (result.text !== undefined) {
872
+ lines.push('', result.format === 'markdown'
873
+ ? result.text
874
+ : markdown().codeBlock(result.text, result.format).build());
875
+ }
848
876
  return [{ type: 'text', text: lines.join('\n') }];
849
877
  },
850
878
  });
@@ -1 +1 @@
1
- {"version":3,"file":"ris-get-document.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/ris-get-document.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ris-get-document.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/ris-get-document.tool.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ris-list-reference.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/ris-list-reference.tool.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAuVjD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wCA8E3B,CAAC"}
1
+ {"version":3,"file":"ris-list-reference.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/ris-list-reference.tool.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AA4VjD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wCA8E3B,CAAC"}