building-standards-act-mcp 1.9.0 → 1.9.2

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/README.md CHANGED
@@ -138,13 +138,13 @@ npm run build
138
138
 
139
139
  | ツール | 説明 |
140
140
  | ------------------- | --------------------------------------------------------------------------------------------------------------- |
141
- | `get_law` | 条番号を指定して法令の条文を取得する。略称・正式名称のいずれでも指定可能 |
141
+ | `get_law` | 条番号を指定して条文を取得する。`format=text` は本文と参照一覧(`references`)を合わせて `max_chars`(既定 100,000)で制限し、本文の続きは `offset` で取得 |
142
142
  | `get_full_law` | 法令の全文を取得する。`max_chars`(既定 100,000)で区切り、続きは `offset` で取る |
143
143
  | `search_law` | 法令名(タイトル)で建築関連法令を検索する。略称マップと e-Gov API の両方を検索。条文本文の検索は `search_articles` |
144
- | `search_articles` | 条文本文をキーワードで全文検索する(e-Gov `/keyword`)。法令名で絞り込み可。条番号は返らないので `get_law` で確定する |
144
+ | `search_articles` | 条文本文をキーワードで全文検索する(e-Gov `/keyword`)。半角スペース区切りで AND 検索。AND・OR・NOT は演算子ではなく検索語として扱われる。全角スペースは半角に直して送る。法令名で絞り込み可。条番号は `get_law` で確定する |
145
145
  | `get_kokuji` | 建築基準法が技術基準を委任している告示の全文を取得する(省エネ告示は国交省 PDF から直接取得) |
146
146
  | `check_law_updates` | 法令の改正状況を e-Gov API で確認する。`since`(既定は 12 か月前)より後の改正だけを「改正あり」にする |
147
- | `get_laws_batch` | 複数の法令・条文を一括取得する(最大20件、1 条ごとに条単位で取得) |
147
+ | `get_laws_batch` | 複数条文を一括取得(最大20件)。`max_chars_per_item`(最大 30,000、既定 8,000)で切り詰め、`max_total_chars`(既定 40,000)を超える後続本文は省略。長い条(例: 建築基準法施行規則 第1条の3)は `get_law` で個別に取得 |
148
148
  | `verify_citation` | AIの回答に含まれる法令引用を検証する(条文存在確認・テキスト照合、最大10件) |
149
149
  | `suggest_related` | 指定した条文の関連法令・委任先・同法令内参照を自動抽出して提案する |
150
150
  | `analyze_article` | 条文の構造解析メタデータ(項数・号数・参照統計・プレビュー)をJSON形式で返す |
@@ -159,6 +159,12 @@ npm run build
159
159
  | `law_name` | 法令名(正式名称または略称) | `建築基準法`, `建基法` |
160
160
  | `article_number` | 条文番号(附則・別表にも対応) | `第20条`, `附則`, `別表第一` |
161
161
  | `format` | 出力形式(`text` または `structured`、省略時は `text`) | `structured` |
162
+ | `max_chars` | 本文と参照一覧(`references`)を合わせた最大文字数(1,000〜500,000、既定 100,000)。`format=text` のみ | `8000` |
163
+ | `offset` | 本文内の開始位置(既定 0)。`format=text` のみ。続きは `next_offset` を指定 | `8000` |
164
+
165
+ `offset` は見出し・参照・出典を含まない本文内の文字位置です。`get_laws_batch` の `next_offset` をそのまま指定できます。
166
+
167
+ 参照一覧はページ内の本文に現れる参照に絞ったうえで、本文と参照のJSONの長さの合計が `max_chars` に収まる順序どおりの先頭部分だけを表示し、表示が0件なら `article` の `references` キーを省略します。参照を省略した場合は `references_total` と `references_truncated: true`、表示件数の案内を返し、関連法令の一覧は `suggest_related` でも確認できます。
162
168
 
163
169
  #### `get_full_law`
164
170
 
@@ -178,11 +184,13 @@ npm run build
178
184
 
179
185
  | パラメータ | 説明 | 例 |
180
186
  | ----------- | ------------------------------------------------------------ | ---------------------- |
181
- | `keyword` | 条文本文に含まれる語。AND / OR / NOT と `*` `?` が使える | `耐火構造`, `壁量` |
187
+ | `keyword` | 条文本文に含まれる語。半角スペース区切りで AND 検索。AND・OR・NOT は演算子ではなく検索語として扱われる。全角スペースは半角に直して送る。`*` `?` のワイルドカードが使える | `準耐火構造 外壁`, `壁量` |
182
188
  | `law_title` | 法令名または略称で絞り込み(省略時は e-Gov の全法令) | `建築基準法` |
183
189
  | `limit` | 返す該当文の数(既定 10、最大 50) | `20` |
184
190
  | `offset` | 続きを取るときの開始位置(応答の `next_offset` を渡す) | `10` |
185
191
 
192
+ 連続する空白は半角スペース1つにまとめ、前後の空白を除いて検索します。正規化後に検索語が空の場合は入力エラーを返し、検索結果が0件の場合は通信エラーと区別して「該当する条文はありませんでした。」と返します。
193
+
186
194
  #### `get_kokuji`
187
195
 
188
196
  | パラメータ | 説明 | 例 |
@@ -205,6 +213,12 @@ npm run build
205
213
  | パラメータ | 説明 | 例 |
206
214
  | ---------- | ---------------------------------------------------------------------- | --- |
207
215
  | `requests` | 取得対象の配列。各要素に `law_name`, `article_number`, `format` を指定 | — |
216
+ | `max_chars_per_item` | 条文ごとの最大文字数(1,000〜30,000、既定 8,000)。構造化形式はJSONの長さを基準に項単位で切り詰め | `8000` |
217
+ | `max_total_chars` | 応答全体のJSONの最大文字数(10,000〜500,000、既定 40,000)。超過する後続本文は省略 | `40000` |
218
+
219
+ 切り詰めたテキストの続きは、案内された `offset` を `get_law` に指定して取得します。本文を省略した結果は `omitted: true` と省略一覧で示します。取得の成功・失敗件数は本文の省略によって変わりません。
220
+
221
+ 長い条(例: 建築基準法施行規則 第1条の3)は `get_law` で個別に取得してください。
208
222
 
209
223
  #### `verify_citation`
210
224
 
@@ -17,6 +17,7 @@ export declare function getLawData(lawId: string): Promise<EgovLawDataResponse>;
17
17
  export declare function getLawArticle(lawId: string, elm: string): Promise<EgovLawDataResponse | null>;
18
18
  /** Revision IDs use the same endpoint and cache as law IDs. */
19
19
  export declare function getLawDataByRevision(revisionId: string): Promise<EgovLawDataResponse>;
20
+ export declare function normalizeKeyword(keyword: string): string;
20
21
  /** Search article text, with pagination measured in sentences. */
21
22
  export declare function searchKeyword(params: {
22
23
  keyword: string;
@@ -35,7 +35,7 @@ async function fetchJsonRaw(url) {
35
35
  });
36
36
  if (!response.ok) {
37
37
  let egovCode;
38
- if (response.status === 400) {
38
+ if (response.status === 400 || response.status === 404) {
39
39
  try {
40
40
  const body = await response.json();
41
41
  if (body && typeof body === "object" &&
@@ -144,10 +144,13 @@ export async function getLawArticle(lawId, elm) {
144
144
  export function getLawDataByRevision(revisionId) {
145
145
  return getLawData(revisionId);
146
146
  }
147
+ export function normalizeKeyword(keyword) {
148
+ return keyword.replace(/\s+/g, " ").trim();
149
+ }
147
150
  /** Search article text, with pagination measured in sentences. */
148
151
  export async function searchKeyword(params) {
149
152
  const query = new URLSearchParams({
150
- keyword: params.keyword,
153
+ keyword: normalizeKeyword(params.keyword),
151
154
  limit: String(params.limit),
152
155
  offset: String(params.offset),
153
156
  sentence_text_size: String(params.sentenceTextSize ?? 200),
@@ -160,7 +163,16 @@ export async function searchKeyword(params) {
160
163
  recordCacheHit("keyword", !!cached);
161
164
  if (cached)
162
165
  return cached;
163
- const result = await fetchJson(`${BASE_URL}/keyword?${cacheKey}`);
166
+ let result;
167
+ try {
168
+ result = await fetchJson(`${BASE_URL}/keyword?${cacheKey}`);
169
+ }
170
+ catch (error) {
171
+ if (!(error instanceof EgovApiError && error.statusCode === 404 && error.egovCode === "404001")) {
172
+ throw error;
173
+ }
174
+ result = { total_count: 0, sentence_count: 0, next_offset: null, items: [] };
175
+ }
164
176
  result.next_offset = result.next_offset ?? null;
165
177
  keywordCache.set(cacheKey, result);
166
178
  return result;
@@ -1 +1 @@
1
- {"version":3,"file":"egov-client.js","sourceRoot":"","sources":["../../src/lib/egov-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"egov-client.js","sourceRoot":"","sources":["../../src/lib/egov-client.ts"],"names":[],"mappings":"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"}
@@ -85,7 +85,7 @@ export class CircuitBreaker {
85
85
  return result;
86
86
  }
87
87
  catch (error) {
88
- if (!(error instanceof EgovApiError && error.statusCode === 400)) {
88
+ if (!(error instanceof EgovApiError && (error.statusCode === 400 || (error.statusCode === 404 && error.egovCode)))) {
89
89
  this.onFailure();
90
90
  }
91
91
  throw error;
@@ -1 +1 @@
1
- {"version":3,"file":"resilience.js","sourceRoot":"","sources":["../../src/lib/resilience.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resilience.js","sourceRoot":"","sources":["../../src/lib/resilience.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,13 @@ export declare function paginateText(text: string, offset: number, maxChars: num
11
11
  offset: number;
12
12
  next_offset: number | null;
13
13
  };
14
+ /** Prefer a line boundary in the second half of the page, without adding a note. */
15
+ export declare function paginateAtLineBoundary(text: string, offset: number, maxChars: number): {
16
+ text: string;
17
+ total_chars: number;
18
+ offset: number;
19
+ next_offset: number | null;
20
+ };
14
21
  export declare const TOOL_ANNOTATIONS: {
15
22
  readonly readOnlyHint: true;
16
23
  readonly destructiveHint: false;
@@ -8,8 +8,7 @@ import { recordToolCall } from "./metrics.js";
8
8
  import { LawNotFoundError, ArticleNotFoundError, KokujiNotFoundError, } from "./errors.js";
9
9
  import { EgovApiError } from "./errors.js";
10
10
  export const DEFAULT_MAX_CHARS = 100_000;
11
- /** Paginate UTF-16 text without cutting a surrogate pair. */
12
- export function paginateText(text, offset, maxChars) {
11
+ function paginate(text, offset, maxChars, atLineBoundary) {
13
12
  const total_chars = text.length;
14
13
  if (offset >= total_chars && total_chars > 0) {
15
14
  return {
@@ -32,11 +31,25 @@ export function paginateText(text, offset, maxChars) {
32
31
  // A one-unit page must still advance past a complete pair.
33
32
  end += end - offset === 1 ? 1 : -1;
34
33
  }
34
+ if (atLineBoundary && end < total_chars) {
35
+ const newline = text.lastIndexOf("\n", end - 1);
36
+ if (newline > offset + maxChars / 2)
37
+ end = newline + 1;
38
+ }
35
39
  const next_offset = end < total_chars ? end : null;
36
- const note = next_offset === null
40
+ return { text: text.slice(offset, end), total_chars, offset, next_offset };
41
+ }
42
+ /** Paginate UTF-16 text without cutting a surrogate pair. */
43
+ export function paginateText(text, offset, maxChars) {
44
+ const page = paginate(text, offset, maxChars, false);
45
+ const note = page.next_offset === null
37
46
  ? ""
38
- : `\n\n(続きがあります。offset=${next_offset} を指定して続きを取得してください。全体 ${total_chars} 文字)`;
39
- return { text: text.slice(offset, end) + note, total_chars, offset, next_offset };
47
+ : `\n\n(続きがあります。offset=${page.next_offset} を指定して続きを取得してください。全体 ${page.total_chars} 文字)`;
48
+ return { ...page, text: page.text + note };
49
+ }
50
+ /** Prefer a line boundary in the second half of the page, without adding a note. */
51
+ export function paginateAtLineBoundary(text, offset, maxChars) {
52
+ return paginate(text, offset, maxChars, true);
40
53
  }
41
54
  export const TOOL_ANNOTATIONS = {
42
55
  readOnlyHint: true,
@@ -1 +1 @@
1
- {"version":3,"file":"tool-helpers.js","sourceRoot":"","sources":["../../src/lib/tool-helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-helpers.js","sourceRoot":"","sources":["../../src/lib/tool-helpers.ts"],"names":[],"mappings":"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"}
@@ -135,12 +135,22 @@ export interface BatchFetchItem {
135
135
  structured?: StructuredArticle;
136
136
  revision_note?: string;
137
137
  error_message?: string;
138
+ truncated?: boolean;
139
+ next_offset?: number | null;
140
+ total_chars?: number;
141
+ omitted?: boolean;
142
+ note?: string;
138
143
  }
139
144
  export interface BatchFetchResult {
140
145
  total: number;
141
146
  success: number;
142
147
  failed: number;
143
148
  results: BatchFetchItem[];
149
+ omitted?: Array<{
150
+ law_name: string;
151
+ article_number: string;
152
+ }>;
153
+ note?: string;
144
154
  }
145
155
  export interface CitationVerification {
146
156
  law_name: string;
@@ -1,2 +1,2 @@
1
1
  /** Must match package.json `version`; a unit test enforces this. */
2
- export declare const SERVER_VERSION = "1.9.0";
2
+ export declare const SERVER_VERSION = "1.9.2";
@@ -1,3 +1,3 @@
1
1
  /** Must match package.json `version`; a unit test enforces this. */
2
- export const SERVER_VERSION = "1.9.0";
2
+ export const SERVER_VERSION = "1.9.2";
3
3
  //# sourceMappingURL=version.js.map
package/dist/server.js CHANGED
@@ -15,16 +15,16 @@ const SERVER_NAME = "building-standards-act-mcp";
15
15
  const INSTRUCTIONS = `あなたは建築確認申請の法規照合アシスタントです。
16
16
 
17
17
  ## 利用可能なツール
18
- - get_law: 条番号を指定して条文を取得(例: 建築基準法 第20条、附則、別表第一)
18
+ - get_law: 条番号を指定して条文を取得(例: 建築基準法 第20条、附則、別表第一)。format=text は本文と参照一覧(references)を合わせて max_chars(既定100,000)で制限し、本文の続きは offset で取得。参照の省略時は references_total と references_truncated で通知
19
19
  - 別表: 「別表第一」「別表第二」等で数値基準を含む別表を取得可能
20
20
  - 改正附則: 「附則(令和○年政令第○号)」で特定改正の経過措置を取得可能。法令番号は check_law_updates で確認
21
21
  - get_full_law: 法令全文を取得(例: 建築基準法施行令)
22
22
  - search_law: 法令名(タイトル)を検索する。条文本文の検索には search_articles を使う
23
- - search_articles: 条文本文を検索する。keyword 必須、law_title で法令名・略称による絞り込みが可能。条番号は返らないので get_law で確定する
23
+ - search_articles: 条文本文を検索する。半角スペース区切りで AND 検索。AND・OR・NOT は演算子ではなく検索語として扱われる。全角スペースは半角に直して送る。keyword 必須、law_title で法令名・略称による絞り込みが可能。条番号は返らないので get_law で確定する
24
24
  - get_kokuji: 告示の全文を国土交通省の告示データベース(PDF)から動的に取得する。正式名称またはキーワードで指定可能(例: 耐火構造の構造方法を定める件)。
25
25
  ※ 国交省データベースに未収録の告示は取得できません。取得失敗時は類似告示を提案します
26
26
  - check_law_updates: 法令の改正状況を確認する(法令名指定で単体チェック、グループ指定でバッチチェック、show_historyで改正履歴表示)
27
- - get_laws_batch: 複数の法令・条文を一括取得する(最大20件、e-Govから条単位取得)
27
+ - get_laws_batch: 複数の法令・条文を一括取得する(最大20件、e-Govから条単位取得)。max_chars_per_item(1,000〜30,000、既定8,000)と max_total_chars(既定40,000)で応答量を制限。長い条(例: 建築基準法施行規則 第1条の3)は get_law で個別に取得
28
28
  - verify_citation: AIの回答に含まれる法令引用を検証する(条文存在確認・テキスト照合、最大10件)
29
29
  - suggest_related: 指定した条文の関連法令・委任先・同法令内参照を自動抽出して提案する
30
30
  - analyze_article: 条文の構造解析メタデータ(項数・号数・参照統計・プレビュー)をJSON形式で返す
@@ -2,7 +2,7 @@ import { z } from "zod";
2
2
  import { resolveLawId } from "../lib/law-resolver.js";
3
3
  import { fetchParsedArticle } from "../lib/article-fetcher.js";
4
4
  import { LawNotFoundError, ArticleNotFoundError } from "../lib/errors.js";
5
- import { TOOL_ANNOTATIONS, wrapToolHandler } from "../lib/tool-helpers.js";
5
+ import { DEFAULT_MAX_CHARS, paginateAtLineBoundary, TOOL_ANNOTATIONS, wrapToolHandler, } from "../lib/tool-helpers.js";
6
6
  import { parsedArticleSchema, structuredArticleSchema, } from "../lib/article-schemas.js";
7
7
  const schema = {
8
8
  law_name: z
@@ -17,6 +17,19 @@ const schema = {
17
17
  .enum(["text", "structured"])
18
18
  .default("text")
19
19
  .describe("出力形式。text: 従来のテキスト形式、structured: 条→項→号の階層を持つJSON構造化形式"),
20
+ max_chars: z
21
+ .number()
22
+ .int()
23
+ .min(1_000)
24
+ .max(500_000)
25
+ .default(DEFAULT_MAX_CHARS)
26
+ .describe("本文と参照一覧(references)を合わせた最大文字数(1,000〜500,000)。省略時は100,000文字。format=text のみ適用。"),
27
+ offset: z
28
+ .number()
29
+ .int()
30
+ .min(0)
31
+ .default(0)
32
+ .describe("本文の取得開始位置(0から始まる文字位置)。続きは案内された offset を指定。format=text のみ適用。"),
20
33
  };
21
34
  const outputSchema = {
22
35
  law_title: z.string(),
@@ -24,6 +37,12 @@ const outputSchema = {
24
37
  source: z.literal("e-Gov法令検索"),
25
38
  format: z.enum(["text", "structured"]),
26
39
  article: z.union([parsedArticleSchema, structuredArticleSchema]),
40
+ total_chars: z.number().optional(),
41
+ offset: z.number().optional(),
42
+ next_offset: z.number().nullable().optional(),
43
+ truncated: z.boolean().optional(),
44
+ references_total: z.number().optional(),
45
+ references_truncated: z.boolean().optional(),
27
46
  note: z.string().optional(),
28
47
  revision_note: z.string().optional(),
29
48
  revision: z.object({
@@ -39,7 +58,7 @@ export function registerGetLawTool(server) {
39
58
  inputSchema: schema,
40
59
  annotations: TOOL_ANNOTATIONS,
41
60
  outputSchema,
42
- }, wrapToolHandler("get_law", async ({ law_name, article_number, format }) => {
61
+ }, wrapToolHandler("get_law", async ({ law_name, article_number, format, max_chars = DEFAULT_MAX_CHARS, offset = 0, }) => {
43
62
  const resolved = await resolveLawId(law_name);
44
63
  if (!resolved) {
45
64
  throw new LawNotFoundError(law_name);
@@ -73,19 +92,42 @@ export function registerGetLawTool(server) {
73
92
  ],
74
93
  };
75
94
  }
76
- // Default: text format (backward compatible)
95
+ // Offsets address only the article body, matching get_laws_batch.
77
96
  const fetched = await fetchParsedArticle(resolved.law_id, article_number, "text");
78
97
  const article = fetched?.article;
79
98
  if (!article) {
80
99
  throw new ArticleNotFoundError(article_number, resolved.title);
81
100
  }
101
+ const { references: articleReferences, ...articleWithoutReferences } = article;
102
+ const page = paginateAtLineBoundary(article.text, offset, max_chars);
103
+ const pageReferences = offset > 0 || page.next_offset !== null
104
+ ? articleReferences?.filter((ref) => page.text.includes(ref.raw_text))
105
+ : articleReferences;
106
+ let references = pageReferences;
107
+ if (pageReferences) {
108
+ let referenceChars = 2;
109
+ let keep = 0;
110
+ for (const ref of pageReferences) {
111
+ const candidateChars = referenceChars + JSON.stringify(ref).length + (keep > 0 ? 1 : 0);
112
+ if (page.text.length + candidateChars > max_chars)
113
+ break;
114
+ referenceChars = candidateChars;
115
+ keep++;
116
+ }
117
+ references = pageReferences.slice(0, keep);
118
+ }
119
+ const referencesTotal = pageReferences?.length ?? 0;
120
+ const referencesTruncated = (references?.length ?? 0) < referencesTotal;
82
121
  const lines = [
83
122
  `【${resolved.title}】${article.article_title}`,
84
123
  article.article_caption ? article.article_caption : "",
85
124
  "",
86
- article.text,
125
+ page.text,
87
126
  ].filter((line) => line !== undefined);
88
- if (article.references && article.references.length > 0) {
127
+ if (page.next_offset !== null) {
128
+ lines.push(`(続きがあります。offset=${page.next_offset} を指定して続きを取得してください。本文全体 ${page.total_chars} 文字)`);
129
+ }
130
+ if (references && references.length > 0) {
89
131
  const refLabels = {
90
132
  cross_law: "他法令",
91
133
  same_law: "同法令",
@@ -95,11 +137,14 @@ export function registerGetLawTool(server) {
95
137
  };
96
138
  lines.push("");
97
139
  lines.push("■ 検出された参照:");
98
- for (const ref of article.references) {
140
+ for (const ref of references) {
99
141
  const label = refLabels[ref.ref_type] ?? ref.ref_type;
100
142
  lines.push(` - [${label}] ${ref.raw_text}`);
101
143
  }
102
144
  }
145
+ if (referencesTruncated) {
146
+ lines.push(`(参照 ${referencesTotal} 件のうち ${references?.length ?? 0} 件を表示。本文と合わせて max_chars を超える分は省略しました。参照は本文中の記述から抽出したもので、関連法令の一覧は suggest_related でも確認できます)`);
147
+ }
103
148
  lines.push("");
104
149
  lines.push(`出典: e-Gov法令検索(法令番号: ${resolved.law_num})`);
105
150
  if (resolved.source === "egov_search") {
@@ -115,7 +160,15 @@ export function registerGetLawTool(server) {
115
160
  law_num: resolved.law_num,
116
161
  source: "e-Gov法令検索",
117
162
  format: "text",
118
- article,
163
+ article: { ...articleWithoutReferences, text: page.text, ...(references?.length ? { references } : {}) },
164
+ total_chars: page.total_chars,
165
+ offset: page.offset,
166
+ next_offset: page.next_offset,
167
+ truncated: page.next_offset !== null,
168
+ ...(referencesTruncated ? {
169
+ references_total: referencesTotal,
170
+ references_truncated: true,
171
+ } : {}),
119
172
  ...(fetched?.revision
120
173
  ? { revision: fetched.revision, revision_note: fetched.revisionNote }
121
174
  : {}),
@@ -1 +1 @@
1
- {"version":3,"file":"get-law.js","sourceRoot":"","sources":["../../src/tools/get-law.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,EACL,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,2BAA2B,CAAC;AAEnC,MAAM,MAAM,GAAG;IACb,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,GAAG,CAAC,GAAG,CAAC;SACR,QAAQ,CAAC,gCAAgC,CAAC;IAC7C,cAAc,EAAE,CAAC;SACd,MAAM,EAAE;SACR,GAAG,CAAC,GAAG,CAAC;SACR,QAAQ,CACP,sCAAsC,CACvC;IACH,MAAM,EAAE,CAAC;SACN,IAAI,CAAC,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;SAC5B,OAAO,CAAC,MAAM,CAAC;SACf,QAAQ,CACP,uDAAuD,CACxD;CACJ,CAAC;AAEF,MAAM,YAAY,GAAG;IACnB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;IACrB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;IAC9B,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACtC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,mBAAmB,EAAE,uBAAuB,CAAC,CAAC;IAChE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACpC,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC;QACjB,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE;QAC3B,0BAA0B,EAAE,CAAC,CAAC,MAAM,EAAE;QACtC,uBAAuB,EAAE,CAAC,CAAC,MAAM,EAAE;KACpC,CAAC,CAAC,QAAQ,EAAE;CACU,CAAC;AAE1B,MAAM,UAAU,kBAAkB,CAAC,MAAiB;IAClD,MAAM,CAAC,YAAY,CACjB,SAAS,EACT;QACE,KAAK,EAAE,MAAM;QACb,WAAW,EAAE,2FAA2F;QACxG,WAAW,EAAE,MAAM;QACnB,WAAW,EAAE,gBAAgB;QAC7B,YAAY;KACb,EACD,eAAe,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,EAAE;QACxE,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC9C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC;QAED,IAAI,MAAM,KAAK,YAAY,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,MAAM,kBAAkB,CACtC,QAAQ,CAAC,MAAM,EACf,cAAc,EACd,YAAY,CACb,CAAC;YACF,MAAM,UAAU,GAAG,OAAO,EAAE,OAAO,CAAC;YAEpC,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,MAAM,IAAI,oBAAoB,CAAC,cAAc,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;YACjE,CAAC;YAED,MAAM,QAAQ,GAA4B;gBACxC,SAAS,EAAE,QAAQ,CAAC,KAAK;gBACzB,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,MAAM,EAAE,WAAW;gBACnB,OAAO,EAAE,UAAU;gBACnB,GAAG,CAAC,OAAO,EAAE,QAAQ;oBACnB,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,CAAC,YAAY,EAAE;oBACrE,CAAC,CAAC,EAAE,CAAC;aACR,CAAC;YACF,IAAI,QAAQ,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;gBACtC,QAAQ,CAAC,IAAI;oBACX,0CAA0C,CAAC;YAC/C,CAAC;YAED,OAAO;gBACL,iBAAiB,EAAE,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE;gBACxD,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;qBACxC;iBACF;aACF,CAAC;QACJ,CAAC;QAED,6CAA6C;QAC7C,MAAM,OAAO,GAAG,MAAM,kBAAkB,CACtC,QAAQ,CAAC,MAAM,EACf,cAAc,EACd,MAAM,CACP,CAAC;QACF,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,CAAC;QAEjC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,oBAAoB,CAAC,cAAc,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;QACjE,CAAC;QAED,MAAM,KAAK,GAAG;YACZ,IAAI,QAAQ,CAAC,KAAK,IAAI,OAAO,CAAC,aAAa,EAAE;YAC7C,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE;YACtD,EAAE;YACF,OAAO,CAAC,IAAI;SACb,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;QAEvC,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxD,MAAM,SAAS,GAA2B;gBACxC,SAAS,EAAE,KAAK;gBAChB,QAAQ,EAAE,KAAK;gBACf,QAAQ,EAAE,MAAM;gBAChB,UAAU,EAAE,IAAI;gBAChB,OAAO,EAAE,KAAK;aACf,CAAC;YACF,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACf,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACzB,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBACrC,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC;gBACtD,KAAK,CAAC,IAAI,CAAC,QAAQ,KAAK,KAAK,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,uBAAuB,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC;QACvD,IAAI,QAAQ,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;YACtC,KAAK,CAAC,IAAI,CACR,4CAA4C,CAC7C,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,EAAE,YAAY;YAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QAC5D,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE9B,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,CAAC;YAC1C,iBAAiB,EAAE;gBACjB,SAAS,EAAE,QAAQ,CAAC,KAAK;gBACzB,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,MAAM,EAAE,WAAW;gBACnB,MAAM,EAAE,MAAM;gBACd,OAAO;gBACP,GAAG,CAAC,OAAO,EAAE,QAAQ;oBACnB,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,aAAa,EAAE,OAAO,CAAC,YAAY,EAAE;oBACrE,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,CAAC,QAAQ,CAAC,MAAM,KAAK,aAAa;oBACnC,CAAC,CAAC;wBACE,IAAI,EAAE,0CAA0C;qBACjD;oBACH,CAAC,CAAC,EAAE,CAAC;aACR;SACF,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"get-law.js","sourceRoot":"","sources":["../../src/tools/get-law.ts"],"names":[],"mappings":"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"}
@@ -2,9 +2,11 @@ import { z } from "zod";
2
2
  import { resolveLawId } from "../lib/law-resolver.js";
3
3
  import { fetchParsedArticle } from "../lib/article-fetcher.js";
4
4
  import { ArticleNotFoundError, formatArticleRef } from "../lib/errors.js";
5
- import { TOOL_ANNOTATIONS, wrapToolHandler } from "../lib/tool-helpers.js";
5
+ import { paginateAtLineBoundary, TOOL_ANNOTATIONS, wrapToolHandler, } from "../lib/tool-helpers.js";
6
6
  import { structuredArticleSchema } from "../lib/article-schemas.js";
7
7
  const MAX_REQUESTS = 20;
8
+ const DEFAULT_MAX_CHARS_PER_ITEM = 8_000;
9
+ const DEFAULT_MAX_TOTAL_CHARS = 40_000;
8
10
  const schema = {
9
11
  requests: z
10
12
  .array(z.object({
@@ -20,6 +22,20 @@ const schema = {
20
22
  }))
21
23
  .max(20)
22
24
  .describe("取得対象の条文リスト(最大20件)"),
25
+ max_chars_per_item: z
26
+ .number()
27
+ .int()
28
+ .min(1_000)
29
+ .max(30_000)
30
+ .default(DEFAULT_MAX_CHARS_PER_ITEM)
31
+ .describe("条文ごとの最大文字数(1,000〜30,000)。省略時は8,000文字。"),
32
+ max_total_chars: z
33
+ .number()
34
+ .int()
35
+ .min(10_000)
36
+ .max(500_000)
37
+ .default(DEFAULT_MAX_TOTAL_CHARS)
38
+ .describe("応答全体のJSONの最大文字数(10,000〜500,000)。省略時は40,000文字。超過分の本文は省略。"),
23
39
  };
24
40
  const outputSchema = {
25
41
  total: z.number(),
@@ -38,16 +54,26 @@ const outputSchema = {
38
54
  structured: structuredArticleSchema.optional(),
39
55
  error_message: z.string().optional(),
40
56
  revision_note: z.string().optional(),
57
+ truncated: z.boolean().optional(),
58
+ next_offset: z.number().nullable().optional(),
59
+ total_chars: z.number().optional(),
60
+ omitted: z.boolean().optional(),
61
+ note: z.string().optional(),
41
62
  })),
63
+ omitted: z.array(z.object({
64
+ law_name: z.string(),
65
+ article_number: z.string(),
66
+ })).optional(),
67
+ note: z.string().optional(),
42
68
  };
43
69
  export function registerGetLawsBatchTool(server) {
44
70
  server.registerTool("get_laws_batch", {
45
71
  title: "条文一括取得",
46
- description: "複数の法令・条文を一括取得する。各条文をe-Govから個別に条単位取得する。最大20件。",
72
+ description: "複数の法令・条文を一括取得する。各条文をe-Govから個別に条単位取得する。最大20件。長い条(例: 建築基準法施行規則 第1条の3)は get_law で個別に取得。",
47
73
  inputSchema: schema,
48
74
  annotations: TOOL_ANNOTATIONS,
49
75
  outputSchema,
50
- }, wrapToolHandler("get_laws_batch", async ({ requests }) => {
76
+ }, wrapToolHandler("get_laws_batch", async ({ requests, max_chars_per_item = DEFAULT_MAX_CHARS_PER_ITEM, max_total_chars = DEFAULT_MAX_TOTAL_CHARS, }) => {
51
77
  if (requests.length > MAX_REQUESTS) {
52
78
  return {
53
79
  content: [
@@ -103,11 +129,26 @@ export function registerGetLawsBatchTool(server) {
103
129
  });
104
130
  }
105
131
  else {
132
+ const truncated = JSON.stringify(structured).length > max_chars_per_item;
133
+ const limited = truncated ? { ...structured, paragraphs: [] } : structured;
134
+ if (truncated) {
135
+ for (const paragraph of structured.paragraphs) {
136
+ const candidate = { ...limited, paragraphs: [...limited.paragraphs, paragraph] };
137
+ if (JSON.stringify(candidate).length > max_chars_per_item)
138
+ break;
139
+ limited.paragraphs = candidate.paragraphs;
140
+ }
141
+ }
106
142
  results.push({
107
143
  law_name: resolvedInfo.title,
108
144
  article_number: req.article_number,
109
145
  status: "success",
110
- structured,
146
+ structured: limited,
147
+ ...(truncated ? {
148
+ truncated: true,
149
+ next_offset: null,
150
+ note: `構造化形式は項単位で切り詰めました。全文は get_law("${resolvedInfo.title}", "${req.article_number}", format="text", offset=0) から offset で順に取得してください。`,
151
+ } : {}),
111
152
  ...(fetched?.revisionNote ? { revision_note: fetched.revisionNote } : {}),
112
153
  });
113
154
  }
@@ -124,11 +165,24 @@ export function registerGetLawsBatchTool(server) {
124
165
  });
125
166
  }
126
167
  else {
168
+ const page = paginateAtLineBoundary(article.text, 0, max_chars_per_item);
169
+ const truncated = page.next_offset !== null;
170
+ let text = page.text;
171
+ if (truncated) {
172
+ text += `\n\n(続きは get_law("${resolvedInfo.title}", "${req.article_number}", offset=${page.next_offset}, max_chars=${max_chars_per_item}) で取得。本文全体 ${page.total_chars} 文字)`;
173
+ }
174
+ if (fetched?.revisionNote)
175
+ text += `\n\n${fetched.revisionNote}`;
127
176
  results.push({
128
177
  law_name: resolvedInfo.title,
129
178
  article_number: req.article_number,
130
179
  status: "success",
131
- text: fetched?.revisionNote ? `${article.text}\n\n${fetched.revisionNote}` : article.text,
180
+ text,
181
+ ...(truncated ? {
182
+ truncated: true,
183
+ next_offset: page.next_offset,
184
+ total_chars: page.total_chars,
185
+ } : {}),
132
186
  });
133
187
  }
134
188
  }
@@ -145,18 +199,48 @@ export function registerGetLawsBatchTool(server) {
145
199
  }
146
200
  }
147
201
  const successCount = results.filter((r) => r.status === "success").length;
148
- const response = {
202
+ let response = {
149
203
  total: results.length,
150
204
  success: successCount,
151
205
  failed: results.length - successCount,
152
206
  results,
153
207
  };
208
+ // Measure the final JSON, including omission metadata, for each prefix.
209
+ let text = JSON.stringify(response, null, 2);
210
+ if (text.length > max_total_chars) {
211
+ for (let keep = results.length - 1; keep >= 0; keep--) {
212
+ const omitted = results.slice(keep).map(({ law_name, article_number }) => ({
213
+ law_name, article_number,
214
+ }));
215
+ response = {
216
+ ...response,
217
+ results: results.map((item, index) => {
218
+ if (index < keep)
219
+ return item;
220
+ const omittedItem = { ...item, omitted: true };
221
+ delete omittedItem.text;
222
+ delete omittedItem.structured;
223
+ delete omittedItem.revision_note;
224
+ delete omittedItem.truncated;
225
+ delete omittedItem.next_offset;
226
+ delete omittedItem.total_chars;
227
+ delete omittedItem.note;
228
+ return omittedItem;
229
+ }),
230
+ omitted,
231
+ note: `応答全体の上限(max_total_chars=${max_total_chars})に達したため、次の ${omitted.length} 件は本文を省略しました。未取得: ${omitted.map((item) => `${item.law_name} ${item.article_number}`).join(", ")} 。get_law で個別に取得するか、件数を減らして再実行してください。`,
232
+ };
233
+ text = JSON.stringify(response, null, 2);
234
+ if (text.length <= max_total_chars)
235
+ break;
236
+ }
237
+ }
154
238
  return {
155
239
  structuredContent: { ...response },
156
240
  content: [
157
241
  {
158
242
  type: "text",
159
- text: JSON.stringify(response, null, 2),
243
+ text,
160
244
  },
161
245
  ],
162
246
  };
@@ -1 +1 @@
1
- {"version":3,"file":"get-laws-batch.js","sourceRoot":"","sources":["../../src/tools/get-laws-batch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get-laws-batch.js","sourceRoot":"","sources":["../../src/tools/get-laws-batch.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  import { z } from "zod";
2
- import { searchKeyword } from "../lib/egov-client.js";
2
+ import { normalizeKeyword, searchKeyword } from "../lib/egov-client.js";
3
3
  import { resolveLawId } from "../lib/law-resolver.js";
4
4
  import { LawNotFoundError } from "../lib/errors.js";
5
5
  import { TOOL_ANNOTATIONS, wrapToolHandler } from "../lib/tool-helpers.js";
6
6
  const inputSchema = {
7
- keyword: z.string().max(200).describe("本文の検索語。AND/OR/NOT と *・? のワイルドカードが使用可能"),
7
+ keyword: z.string().max(200).describe("本文の検索語。半角スペース区切りで AND 検索。AND・OR・NOT は演算子ではなく検索語として扱われる。全角スペースは半角に直して送る。*・? のワイルドカードが使用可能"),
8
8
  law_title: z.string().max(200).optional().describe("法令名または略称で絞り込み"),
9
9
  limit: z.number().int().min(1).max(50).default(10).describe("取得する文の数(最大50)"),
10
10
  offset: z.number().int().min(0).default(0).describe("検索開始位置(文単位)"),
@@ -27,11 +27,18 @@ const outputSchema = {
27
27
  export function registerSearchArticlesTool(server) {
28
28
  server.registerTool("search_articles", {
29
29
  title: "条文本文検索",
30
- description: "条文本文をキーワードで検索する。AND/OR/NOT と *・? に対応。法令名・略称で絞り込み可能。検索結果は節名と抜粋のみで条番号は返らないため、正確な条文は get_law で確認してください。",
30
+ description: "条文本文をキーワードで検索する。半角スペース区切りで AND 検索。AND・OR・NOT は演算子ではなく検索語として扱われる。全角スペースは半角に直して送る。*・? のワイルドカードに対応。法令名・略称で絞り込み可能。検索結果は節名と抜粋のみで条番号は返らないため、正確な条文は get_law で確認してください。",
31
31
  inputSchema,
32
32
  outputSchema,
33
33
  annotations: TOOL_ANNOTATIONS,
34
34
  }, wrapToolHandler("search_articles", async ({ keyword, law_title, limit, offset }) => {
35
+ keyword = normalizeKeyword(keyword);
36
+ if (!keyword) {
37
+ return {
38
+ isError: true,
39
+ content: [{ type: "text", text: "検索語が空です。半角スペース区切りで語を指定してください。" }],
40
+ };
41
+ }
35
42
  const resolved = law_title !== undefined
36
43
  ? await resolveLawId(law_title)
37
44
  : undefined;
@@ -71,7 +78,7 @@ export function registerSearchArticlesTool(server) {
71
78
  lines.push(`次の offset: ${result.next_offset}`);
72
79
  }
73
80
  if (hits.length === 0) {
74
- lines.push("該当する条文本文は見つかりませんでした。");
81
+ lines.push("該当する条文はありませんでした。", "検索語は半角スペース区切りで AND 検索します。AND・OR・NOT は演算子ではなく検索語として扱われます。");
75
82
  }
76
83
  for (const hit of hits) {
77
84
  lines.push(`- **${hit.law_title}** [${hit.position}] ${hit.text}`);
@@ -1 +1 @@
1
- {"version":3,"file":"search-articles.js","sourceRoot":"","sources":["../../src/tools/search-articles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE3E,MAAM,WAAW,GAAG;IAClB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CACnC,uCAAuC,CACxC;IACD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;IACnE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC;IAC5E,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC;CACnE,CAAC;AAEF,MAAM,YAAY,GAAG;IACnB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;IAC1B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;QACrB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;QACrB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;QAClB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;QACnB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;QACpB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAChB,yBAAyB,EAAE,CAAC,CAAC,MAAM,EAAE;KACtC,CAAC,CAAC;CACoB,CAAC;AAE1B,MAAM,UAAU,0BAA0B,CAAC,MAAiB;IAC1D,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,KAAK,EAAE,QAAQ;QACf,WAAW,EAAE,sGAAsG;QACnH,WAAW;QACX,YAAY;QACZ,WAAW,EAAE,gBAAgB;KAC9B,EACD,eAAe,CAAC,iBAAiB,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE;QACjF,MAAM,QAAQ,GAAG,SAAS,KAAK,SAAS;YACtC,CAAC,CAAC,MAAM,YAAY,CAAC,SAAS,CAAC;YAC/B,CAAC,CAAC,SAAS,CAAC;QACd,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,QAAQ,EAAE,CAAC;YACzC,MAAM,IAAI,gBAAgB,CAAC,SAAS,CAAC,CAAC;QACxC,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC;YACjC,OAAO;YACP,MAAM,EAAE,QAAQ,EAAE,OAAO;YACzB,KAAK;YACL,MAAM;SACP,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CACzC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAChC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS;YACvC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM;YAC5B,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO;YAC9B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,IAAI,EAAE,QAAQ,CAAC,IAAI;iBAChB,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC;iBAC/B,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC;iBAC7B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;YAC1B,yBAAyB,EAAE,IAAI,CAAC,aAAa,CAAC,yBAAyB;SACxE,CAAC,CAAC,CACJ,CAAC;QACF,MAAM,iBAAiB,GAAG;YACxB,OAAO;YACP,SAAS,EAAE,QAAQ,EAAE,KAAK;YAC1B,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,IAAI;YACvC,IAAI;SACL,CAAC;QACF,MAAM,KAAK,GAAG;YACZ,eAAe,OAAO,GAAG;YACzB,SAAS,MAAM,CAAC,WAAW,WAAW,MAAM,CAAC,cAAc,IAAI;SAChE,CAAC;QACF,IAAI,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;YAC3C,KAAK,CAAC,IAAI,CAAC,cAAc,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACrC,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,SAAS,OAAO,GAAG,CAAC,QAAQ,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QACrE,CAAC;QACD,KAAK,CAAC,IAAI,CACR,EAAE,EACF,4DAA4D,CAC7D,CAAC;QACF,OAAO;YACL,iBAAiB;YACjB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;SACpD,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"search-articles.js","sourceRoot":"","sources":["../../src/tools/search-articles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE3E,MAAM,WAAW,GAAG;IAClB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CACnC,0FAA0F,CAC3F;IACD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;IACnE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC;IAC5E,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC;CACnE,CAAC;AAEF,MAAM,YAAY,GAAG;IACnB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE;IAC1B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;QACrB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;QACrB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;QAClB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;QACnB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;QACpB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAChB,yBAAyB,EAAE,CAAC,CAAC,MAAM,EAAE;KACtC,CAAC,CAAC;CACoB,CAAC;AAE1B,MAAM,UAAU,0BAA0B,CAAC,MAAiB;IAC1D,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,KAAK,EAAE,QAAQ;QACf,WAAW,EAAE,iKAAiK;QAC9K,WAAW;QACX,YAAY;QACZ,WAAW,EAAE,gBAAgB;KAC9B,EACD,eAAe,CAAC,iBAAiB,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE;QACjF,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACpC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,+BAA+B,EAAE,CAAC;aACnE,CAAC;QACJ,CAAC;QACD,MAAM,QAAQ,GAAG,SAAS,KAAK,SAAS;YACtC,CAAC,CAAC,MAAM,YAAY,CAAC,SAAS,CAAC;YAC/B,CAAC,CAAC,SAAS,CAAC;QACd,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,QAAQ,EAAE,CAAC;YACzC,MAAM,IAAI,gBAAgB,CAAC,SAAS,CAAC,CAAC;QACxC,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC;YACjC,OAAO;YACP,MAAM,EAAE,QAAQ,EAAE,OAAO;YACzB,KAAK;YACL,MAAM;SACP,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CACzC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAChC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS;YACvC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM;YAC5B,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO;YAC9B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,IAAI,EAAE,QAAQ,CAAC,IAAI;iBAChB,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC;iBAC/B,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC;iBAC7B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;YAC1B,yBAAyB,EAAE,IAAI,CAAC,aAAa,CAAC,yBAAyB;SACxE,CAAC,CAAC,CACJ,CAAC;QACF,MAAM,iBAAiB,GAAG;YACxB,OAAO;YACP,SAAS,EAAE,QAAQ,EAAE,KAAK;YAC1B,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,IAAI;YACvC,IAAI;SACL,CAAC;QACF,MAAM,KAAK,GAAG;YACZ,eAAe,OAAO,GAAG;YACzB,SAAS,MAAM,CAAC,WAAW,WAAW,MAAM,CAAC,cAAc,IAAI;SAChE,CAAC;QACF,IAAI,OAAO,MAAM,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;YAC3C,KAAK,CAAC,IAAI,CAAC,cAAc,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,CACR,kBAAkB,EAClB,0DAA0D,CAC3D,CAAC;QACJ,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,SAAS,OAAO,GAAG,CAAC,QAAQ,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QACrE,CAAC;QACD,KAAK,CAAC,IAAI,CACR,EAAE,EACF,4DAA4D,CAC7D,CAAC;QACF,OAAO;YACL,iBAAiB;YACjB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;SACpD,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "building-standards-act-mcp",
3
- "version": "1.9.0",
3
+ "version": "1.9.2",
4
4
  "description": "MCP server for Japanese building regulations — fetches law text from e-Gov API v2 to prevent AI hallucination in building permit reviews",
5
5
  "repository": {
6
6
  "type": "git",