@shuji-bonji/rfcxml-mcp 0.3.0 → 0.4.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 (54) hide show
  1. package/README.ja.md +39 -33
  2. package/README.md +37 -29
  3. package/dist/config.d.ts +26 -26
  4. package/dist/config.d.ts.map +1 -1
  5. package/dist/config.js +28 -25
  6. package/dist/config.js.map +1 -1
  7. package/dist/constants.d.ts +30 -5
  8. package/dist/constants.d.ts.map +1 -1
  9. package/dist/constants.js +49 -7
  10. package/dist/constants.js.map +1 -1
  11. package/dist/index.d.ts +1 -1
  12. package/dist/index.js +18 -17
  13. package/dist/index.js.map +1 -1
  14. package/dist/services/checklist-generator.d.ts +43 -0
  15. package/dist/services/checklist-generator.d.ts.map +1 -0
  16. package/dist/services/checklist-generator.js +107 -0
  17. package/dist/services/checklist-generator.js.map +1 -0
  18. package/dist/services/rfc-fetcher.d.ts +11 -11
  19. package/dist/services/rfc-fetcher.d.ts.map +1 -1
  20. package/dist/services/rfc-fetcher.js +37 -31
  21. package/dist/services/rfc-fetcher.js.map +1 -1
  22. package/dist/services/rfc-text-parser.d.ts +4 -6
  23. package/dist/services/rfc-text-parser.d.ts.map +1 -1
  24. package/dist/services/rfc-text-parser.js +9 -40
  25. package/dist/services/rfc-text-parser.js.map +1 -1
  26. package/dist/services/rfcxml-parser.d.ts +5 -18
  27. package/dist/services/rfcxml-parser.d.ts.map +1 -1
  28. package/dist/services/rfcxml-parser.js +21 -95
  29. package/dist/services/rfcxml-parser.js.map +1 -1
  30. package/dist/tools/definitions.d.ts +1 -1
  31. package/dist/tools/definitions.js +27 -27
  32. package/dist/tools/definitions.js.map +1 -1
  33. package/dist/tools/handlers.d.ts +48 -21
  34. package/dist/tools/handlers.d.ts.map +1 -1
  35. package/dist/tools/handlers.js +72 -156
  36. package/dist/tools/handlers.js.map +1 -1
  37. package/dist/types/index.d.ts +17 -0
  38. package/dist/types/index.d.ts.map +1 -1
  39. package/dist/utils/requirement-extractor.d.ts +24 -0
  40. package/dist/utils/requirement-extractor.d.ts.map +1 -0
  41. package/dist/utils/requirement-extractor.js +100 -0
  42. package/dist/utils/requirement-extractor.js.map +1 -0
  43. package/dist/utils/section.d.ts +21 -0
  44. package/dist/utils/section.d.ts.map +1 -0
  45. package/dist/utils/section.js +53 -0
  46. package/dist/utils/section.js.map +1 -0
  47. package/dist/utils/text.d.ts.map +1 -1
  48. package/dist/utils/text.js +3 -2
  49. package/dist/utils/text.js.map +1 -1
  50. package/dist/utils/validation.d.ts +14 -0
  51. package/dist/utils/validation.d.ts.map +1 -0
  52. package/dist/utils/validation.js +30 -0
  53. package/dist/utils/validation.js.map +1 -0
  54. package/package.json +1 -1
@@ -1,13 +1,23 @@
1
1
  /**
2
- * MCP ツールハンドラー
2
+ * MCP Tool Handlers
3
3
  */
4
- import type { GetRFCStructureArgs, GetRequirementsArgs, GetDefinitionsArgs, GetDependenciesArgs, GenerateChecklistArgs, ValidateStatementArgs, Requirement } from '../types/index.js';
4
+ import type { GetRFCStructureArgs, GetRequirementsArgs, GetDefinitionsArgs, GetDependenciesArgs, GenerateChecklistArgs, ValidateStatementArgs, Requirement, ContentBlock } from '../types/index.js';
5
5
  /**
6
- * パースキャッシュをクリア(テスト用)
6
+ * Clear parse cache (for testing)
7
7
  */
8
8
  export declare function clearParseCache(): void;
9
9
  /**
10
- * get_rfc_structure ハンドラー
10
+ * Simplified section structure
11
+ */
12
+ interface SimplifiedSection {
13
+ number?: string;
14
+ title: string;
15
+ anchor?: string;
16
+ content?: ContentBlock[];
17
+ subsections?: SimplifiedSection[];
18
+ }
19
+ /**
20
+ * get_rfc_structure handler
11
21
  */
12
22
  export declare function handleGetRFCStructure(args: GetRFCStructureArgs): Promise<{
13
23
  metadata: {
@@ -15,7 +25,7 @@ export declare function handleGetRFCStructure(args: GetRFCStructureArgs): Promis
15
25
  docName?: string;
16
26
  number?: number;
17
27
  };
18
- sections: any[];
28
+ sections: SimplifiedSection[];
19
29
  referenceCount: {
20
30
  normative: number;
21
31
  informative: number;
@@ -24,7 +34,7 @@ export declare function handleGetRFCStructure(args: GetRFCStructureArgs): Promis
24
34
  _sourceNote: string | undefined;
25
35
  }>;
26
36
  /**
27
- * get_requirements ハンドラー
37
+ * get_requirements handler
28
38
  */
29
39
  export declare function handleGetRequirements(args: GetRequirementsArgs): Promise<{
30
40
  rfc: number;
@@ -41,7 +51,7 @@ export declare function handleGetRequirements(args: GetRequirementsArgs): Promis
41
51
  _sourceNote: string | undefined;
42
52
  }>;
43
53
  /**
44
- * get_definitions ハンドラー
54
+ * get_definitions handler
45
55
  */
46
56
  export declare function handleGetDefinitions(args: GetDefinitionsArgs): Promise<{
47
57
  rfc: number;
@@ -52,11 +62,31 @@ export declare function handleGetDefinitions(args: GetDefinitionsArgs): Promise<
52
62
  _sourceNote: string | undefined;
53
63
  }>;
54
64
  /**
55
- * get_rfc_dependencies ハンドラー
65
+ * Dependencies result type
56
66
  */
57
- export declare function handleGetDependencies(args: GetDependenciesArgs): Promise<any>;
67
+ interface DependencyResult {
68
+ rfc: number;
69
+ normative: Array<{
70
+ rfcNumber?: number;
71
+ title: string;
72
+ anchor: string;
73
+ }>;
74
+ informative: Array<{
75
+ rfcNumber?: number;
76
+ title: string;
77
+ anchor: string;
78
+ }>;
79
+ _source: 'xml' | 'text';
80
+ _sourceNote?: string;
81
+ referencedBy?: never[];
82
+ _note?: string;
83
+ }
58
84
  /**
59
- * get_related_sections ハンドラー
85
+ * get_rfc_dependencies handler
86
+ */
87
+ export declare function handleGetDependencies(args: GetDependenciesArgs): Promise<DependencyResult>;
88
+ /**
89
+ * get_related_sections handler
60
90
  */
61
91
  export declare function handleGetRelatedSections(args: {
62
92
  rfc: number;
@@ -72,33 +102,28 @@ export declare function handleGetRelatedSections(args: {
72
102
  } | {
73
103
  rfc: number;
74
104
  section: string;
75
- title: any;
105
+ title: string;
76
106
  relatedSections: {
77
107
  number: string;
78
- title: any;
108
+ title: string;
79
109
  }[];
80
110
  _source: "text" | "xml";
81
111
  _sourceNote: string | undefined;
82
112
  error?: undefined;
83
113
  }>;
84
114
  /**
85
- * generate_checklist ハンドラー
115
+ * generate_checklist handler
86
116
  */
87
117
  export declare function handleGenerateChecklist(args: GenerateChecklistArgs): Promise<{
88
118
  rfc: number;
89
119
  role: "client" | "server" | "both";
90
- stats: {
91
- must: number;
92
- should: number;
93
- may: number;
94
- total: number;
95
- };
120
+ stats: import("../services/checklist-generator.js").ChecklistStats;
96
121
  markdown: string;
97
122
  _source: "text" | "xml";
98
123
  _sourceNote: string | undefined;
99
124
  }>;
100
125
  /**
101
- * validate_statement ハンドラー
126
+ * validate_statement handler
102
127
  */
103
128
  export declare function handleValidateStatement(args: ValidateStatementArgs): Promise<{
104
129
  rfc: number;
@@ -111,7 +136,9 @@ export declare function handleValidateStatement(args: ValidateStatementArgs): Pr
111
136
  _sourceNote: string | undefined;
112
137
  }>;
113
138
  /**
114
- * ツールハンドラーのマップ
139
+ * Tool handlers map
140
+ * Note: Using 'unknown' for args type as each handler has specific type requirements
115
141
  */
116
142
  export declare const toolHandlers: Record<string, (args: any) => Promise<unknown>>;
143
+ export {};
117
144
  //# sourceMappingURL=handlers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/tools/handlers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACrB,WAAW,EAGZ,MAAM,mBAAmB,CAAC;AAgB3B;;GAEG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAEtC;AA0CD;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,mBAAmB;;;;;;;;;;;;;GAiCpE;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,mBAAmB;;;;;;;;iBAWlD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;;;;;GAqBxC;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,kBAAkB;;;;;;;GAyBlE;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,mBAAmB,gBA8BpE;AAmCD;;GAEG;AACH,wBAAsB,wBAAwB,CAAC,IAAI,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE;;;;;;;;;;;;;;;;;;;GAwCpF;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,qBAAqB;;;;;;;;;;;;GAsDxE;AAiDD;;GAEG;AACH,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,qBAAqB;;;;;;;;;GAiCxE;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,OAAO,CAAC,CAQxE,CAAC"}
1
+ {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/tools/handlers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAmBH,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACrB,WAAW,EAEX,YAAY,EACb,MAAM,mBAAmB,CAAC;AA4C3B;;GAEG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAEtC;AA0CD;;GAEG;AACH,UAAU,iBAAiB;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,iBAAiB,EAAE,CAAC;CACnC;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,mBAAmB;;;;;;;;;;;;;GAmCpE;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,mBAAmB;;;;;;;;iBAYlD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;;;;;GAkBxC;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,kBAAkB;;;;;;;GAuBlE;AAED;;GAEG;AACH,UAAU,gBAAgB;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,KAAK,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACxE,WAAW,EAAE,KAAK,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC1E,OAAO,EAAE,KAAK,GAAG,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,KAAK,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA+BhG;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAAC,IAAI,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE;;;;;;;;;;;;;;;;;;;GA4BpF;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,qBAAqB;;;;;;;GA2BxE;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAAC,IAAI,EAAE,qBAAqB;;;;;;;;;GA+BxE;AAED;;;GAGG;AAEH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,OAAO,CAAC,CAQxE,CAAC"}
@@ -1,31 +1,49 @@
1
1
  /**
2
- * MCP ツールハンドラー
2
+ * MCP Tool Handlers
3
3
  */
4
4
  import { fetchRFCXML, fetchRFCText, RFCXMLNotAvailableError } from '../services/rfc-fetcher.js';
5
- import { parseRFCXML, extractRequirements } from '../services/rfcxml-parser.js';
5
+ import { parseRFCXML, extractRequirements, } from '../services/rfcxml-parser.js';
6
6
  import { parseRFCText } from '../services/rfc-text-parser.js';
7
+ import { generateChecklist, generateChecklistMarkdown, getChecklistStats, } from '../services/checklist-generator.js';
7
8
  import { LRUCache } from '../utils/cache.js';
9
+ import { validateRFCNumber } from '../utils/validation.js';
10
+ import { findSection, collectCrossReferences } from '../utils/section.js';
8
11
  import { CACHE_CONFIG } from '../config.js';
9
12
  /**
10
- * パース済みRFCキャッシュ(メインキャッシュ)
11
- * パースはCPU集約的なので、パース結果をキャッシュする
13
+ * Get source note for text-based parsing
14
+ */
15
+ function getTextSourceNote(context) {
16
+ const notes = {
17
+ structure: 'Parsed from text format. Accuracy may be limited.',
18
+ requirements: 'Parsed from text format. Requirement extraction accuracy may be limited.',
19
+ definitions: 'Parsed from text format. Definition extraction accuracy may be limited.',
20
+ sections: 'Parsed from text format. Related section accuracy may be limited.',
21
+ checklist: 'Parsed from text format. Checklist accuracy may be limited.',
22
+ validation: 'Parsed from text format. Validation accuracy may be limited.',
23
+ dependencies: 'Parsed from text format. Reference information is not available.',
24
+ };
25
+ return `Warning: ${notes[context]}`;
26
+ }
27
+ /**
28
+ * Parsed RFC cache (main cache)
29
+ * Parsing is CPU-intensive, so we cache the results
12
30
  */
13
31
  const parseCache = new LRUCache(CACHE_CONFIG.parsed);
14
32
  /**
15
- * パースキャッシュをクリア(テスト用)
33
+ * Clear parse cache (for testing)
16
34
  */
17
35
  export function clearParseCache() {
18
36
  parseCache.clear();
19
37
  }
20
38
  /**
21
- * RFCXML を取得してパース(キャッシュ付き、フォールバック対応)
39
+ * Fetch and parse RFCXML (with cache and fallback support)
22
40
  */
23
41
  async function getParsedRFC(rfcNumber) {
24
42
  const cached = parseCache.get(rfcNumber);
25
43
  if (cached) {
26
44
  return cached;
27
45
  }
28
- // まず XML を試す
46
+ // Try XML first
29
47
  try {
30
48
  const xml = await fetchRFCXML(rfcNumber);
31
49
  const parsed = parseRFCXML(xml);
@@ -34,7 +52,7 @@ async function getParsedRFC(rfcNumber) {
34
52
  return result;
35
53
  }
36
54
  catch (xmlError) {
37
- // XML 取得失敗 テキストフォールバック
55
+ // XML fetch failed -> text fallback
38
56
  if (xmlError instanceof RFCXMLNotAvailableError && xmlError.isOldRFC) {
39
57
  console.error(`[RFC ${rfcNumber}] XML not available, trying text fallback...`);
40
58
  try {
@@ -45,22 +63,23 @@ async function getParsedRFC(rfcNumber) {
45
63
  return result;
46
64
  }
47
65
  catch (textError) {
48
- // テキストも失敗
49
- throw new Error(`RFC ${rfcNumber} の取得に失敗しました。\n` +
66
+ // Text also failed
67
+ throw new Error(`Failed to fetch RFC ${rfcNumber}.\n` +
50
68
  `XML: ${xmlError.message}\n` +
51
69
  `Text: ${textError instanceof Error ? textError.message : String(textError)}`);
52
70
  }
53
71
  }
54
- // 新しい RFC の場合はそのままエラーを伝播
72
+ // For newer RFCs, propagate the error as-is
55
73
  throw xmlError;
56
74
  }
57
75
  }
58
76
  /**
59
- * get_rfc_structure ハンドラー
77
+ * get_rfc_structure handler
60
78
  */
61
79
  export async function handleGetRFCStructure(args) {
80
+ validateRFCNumber(args.rfc);
62
81
  const { data: parsed, source } = await getParsedRFC(args.rfc);
63
- // セクション構造を簡略化
82
+ // Simplify section structure
64
83
  function simplifySection(section, includeContent) {
65
84
  const result = {
66
85
  number: section.number,
@@ -83,19 +102,20 @@ export async function handleGetRFCStructure(args) {
83
102
  informative: parsed.references.informative.length,
84
103
  },
85
104
  _source: source,
86
- _sourceNote: source === 'text' ? '⚠️ テキストからの解析結果です。精度が低い可能性があります。' : undefined,
105
+ _sourceNote: source === 'text' ? getTextSourceNote('structure') : undefined,
87
106
  };
88
107
  }
89
108
  /**
90
- * get_requirements ハンドラー
109
+ * get_requirements handler
91
110
  */
92
111
  export async function handleGetRequirements(args) {
112
+ validateRFCNumber(args.rfc);
93
113
  const { data: parsed, source } = await getParsedRFC(args.rfc);
94
114
  const requirements = extractRequirements(parsed.sections, {
95
115
  section: args.section,
96
116
  level: args.level,
97
117
  });
98
- // 統計情報
118
+ // Statistics
99
119
  const stats = {
100
120
  total: requirements.length,
101
121
  byLevel: {},
@@ -112,18 +132,17 @@ export async function handleGetRequirements(args) {
112
132
  stats,
113
133
  requirements,
114
134
  _source: source,
115
- _sourceNote: source === 'text'
116
- ? '⚠️ テキストからの解析結果です。要件の抽出精度が低い可能性があります。'
117
- : undefined,
135
+ _sourceNote: source === 'text' ? getTextSourceNote('requirements') : undefined,
118
136
  };
119
137
  }
120
138
  /**
121
- * get_definitions ハンドラー
139
+ * get_definitions handler
122
140
  */
123
141
  export async function handleGetDefinitions(args) {
142
+ validateRFCNumber(args.rfc);
124
143
  const { data: parsed, source } = await getParsedRFC(args.rfc);
125
144
  let definitions = parsed.definitions;
126
- // 用語でフィルタ
145
+ // Filter by term
127
146
  if (args.term) {
128
147
  const searchTerm = args.term.toLowerCase();
129
148
  definitions = definitions.filter((d) => d.term.toLowerCase().includes(searchTerm) || d.definition.toLowerCase().includes(searchTerm));
@@ -134,15 +153,14 @@ export async function handleGetDefinitions(args) {
134
153
  count: definitions.length,
135
154
  definitions,
136
155
  _source: source,
137
- _sourceNote: source === 'text'
138
- ? '⚠️ テキストからの解析結果です。定義の抽出精度が低い可能性があります。'
139
- : undefined,
156
+ _sourceNote: source === 'text' ? getTextSourceNote('definitions') : undefined,
140
157
  };
141
158
  }
142
159
  /**
143
- * get_rfc_dependencies ハンドラー
160
+ * get_rfc_dependencies handler
144
161
  */
145
162
  export async function handleGetDependencies(args) {
163
+ validateRFCNumber(args.rfc);
146
164
  const { data: parsed, source } = await getParsedRFC(args.rfc);
147
165
  const result = {
148
166
  rfc: args.rfc,
@@ -158,48 +176,22 @@ export async function handleGetDependencies(args) {
158
176
  })),
159
177
  _source: source,
160
178
  };
161
- // テキストソースの場合は参照情報が取得できない
179
+ // Text source cannot extract reference information
162
180
  if (source === 'text') {
163
- result._sourceNote = '⚠️ テキストからの解析のため、参照情報は取得できません。';
181
+ result._sourceNote = getTextSourceNote('dependencies');
164
182
  }
165
- // TODO: referencedBy IETF Datatracker API から取得
183
+ // TODO: Get referencedBy from IETF Datatracker API
166
184
  if (args.includeReferencedBy) {
167
185
  result.referencedBy = [];
168
- result._note = 'referencedBy は未実装(IETF Datatracker API 統合が必要)';
186
+ result._note = 'referencedBy is not implemented (requires IETF Datatracker API integration)';
169
187
  }
170
188
  return result;
171
189
  }
172
190
  /**
173
- * セクション番号を正規化(section-3.5 → 3.5)
174
- */
175
- function normalizeSectionNumber(sectionId) {
176
- return sectionId.replace(/^section-/, '');
177
- }
178
- /**
179
- * セクションを検索(複数の形式に対応)
180
- */
181
- function findSection(sections, target) {
182
- const normalizedTarget = normalizeSectionNumber(target);
183
- for (const sec of sections) {
184
- // 各形式でマッチを試みる
185
- const secNumber = sec.number ? normalizeSectionNumber(sec.number) : '';
186
- const secAnchor = sec.anchor ? normalizeSectionNumber(sec.anchor) : '';
187
- if (secNumber === normalizedTarget ||
188
- secAnchor === normalizedTarget ||
189
- sec.number === target ||
190
- sec.anchor === target) {
191
- return sec;
192
- }
193
- const found = findSection(sec.subsections || [], target);
194
- if (found)
195
- return found;
196
- }
197
- return null;
198
- }
199
- /**
200
- * get_related_sections ハンドラー
191
+ * get_related_sections handler
201
192
  */
202
193
  export async function handleGetRelatedSections(args) {
194
+ validateRFCNumber(args.rfc);
203
195
  const { data: parsed, source } = await getParsedRFC(args.rfc);
204
196
  const targetSection = findSection(parsed.sections, args.section);
205
197
  if (!targetSection) {
@@ -207,17 +199,8 @@ export async function handleGetRelatedSections(args) {
207
199
  error: `Section ${args.section} not found`,
208
200
  };
209
201
  }
210
- // クロスリファレンスを収集
211
- const relatedSections = new Set();
212
- for (const block of targetSection.content || []) {
213
- if (block.type === 'text' && block.crossReferences) {
214
- for (const ref of block.crossReferences) {
215
- if (ref.type === 'section' && ref.section) {
216
- relatedSections.add(ref.section);
217
- }
218
- }
219
- }
220
- }
202
+ // Collect cross-references using utility
203
+ const relatedSections = collectCrossReferences(targetSection);
221
204
  return {
222
205
  rfc: args.rfc,
223
206
  section: args.section,
@@ -230,134 +213,67 @@ export async function handleGetRelatedSections(args) {
230
213
  };
231
214
  }),
232
215
  _source: source,
233
- _sourceNote: source === 'text'
234
- ? '⚠️ テキストからの解析結果です。関連セクションの精度が低い可能性があります。'
235
- : undefined,
216
+ _sourceNote: source === 'text' ? getTextSourceNote('sections') : undefined,
236
217
  };
237
218
  }
238
219
  /**
239
- * generate_checklist ハンドラー
220
+ * generate_checklist handler
240
221
  */
241
222
  export async function handleGenerateChecklist(args) {
223
+ validateRFCNumber(args.rfc);
242
224
  const { data: parsed, source } = await getParsedRFC(args.rfc);
243
225
  const requirements = extractRequirements(parsed.sections, {
244
226
  section: args.sections?.[0],
245
227
  });
246
- // 役割でフィルタ(簡易実装:subject に基づく)
247
- const filteredReqs = args.role && args.role !== 'both'
248
- ? requirements.filter((r) => {
249
- const subject = r.subject?.toLowerCase() || '';
250
- if (args.role === 'client') {
251
- return subject.includes('client') || !subject.includes('server');
252
- }
253
- return subject.includes('server') || !subject.includes('client');
254
- })
255
- : requirements;
256
- // レベル別に分類
257
- const must = filteredReqs.filter((r) => ['MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL NOT'].includes(r.level));
258
- const should = filteredReqs.filter((r) => ['SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED'].includes(r.level));
259
- const may = filteredReqs.filter((r) => ['MAY', 'OPTIONAL'].includes(r.level));
260
- // Markdown 生成
261
- const markdown = generateChecklistMarkdown({
262
- rfc: args.rfc,
263
- title: parsed.metadata.title,
264
- role: args.role,
265
- must: must.map((r) => ({ id: r.id, requirement: r, checked: false })),
266
- should: should.map((r) => ({ id: r.id, requirement: r, checked: false })),
267
- may: may.map((r) => ({ id: r.id, requirement: r, checked: false })),
268
- generatedAt: new Date().toISOString(),
269
- });
228
+ // Generate checklist using service
229
+ const checklist = generateChecklist(args.rfc, parsed.metadata.title, requirements, args.role);
230
+ // Generate Markdown
231
+ const markdown = generateChecklistMarkdown(checklist);
232
+ const stats = getChecklistStats(checklist);
270
233
  return {
271
234
  rfc: args.rfc,
272
235
  role: args.role || 'both',
273
- stats: {
274
- must: must.length,
275
- should: should.length,
276
- may: may.length,
277
- total: filteredReqs.length,
278
- },
236
+ stats,
279
237
  markdown,
280
238
  _source: source,
281
- _sourceNote: source === 'text'
282
- ? '⚠️ テキストからの解析結果です。チェックリストの精度が低い可能性があります。'
283
- : undefined,
239
+ _sourceNote: source === 'text' ? getTextSourceNote('checklist') : undefined,
284
240
  };
285
241
  }
286
242
  /**
287
- * チェックリスト Markdown 生成
288
- */
289
- function generateChecklistMarkdown(checklist) {
290
- const lines = [];
291
- lines.push(`# RFC ${checklist.rfc} 実装チェックリスト`);
292
- lines.push('');
293
- lines.push(`**${checklist.title}**`);
294
- lines.push('');
295
- if (checklist.role && checklist.role !== 'both') {
296
- lines.push(`役割: ${checklist.role === 'client' ? 'クライアント' : 'サーバー'}`);
297
- lines.push('');
298
- }
299
- lines.push(`生成日時: ${checklist.generatedAt}`);
300
- lines.push('');
301
- if (checklist.must.length > 0) {
302
- lines.push('## 必須要件 (MUST / REQUIRED / SHALL)');
303
- lines.push('');
304
- for (const item of checklist.must) {
305
- lines.push(`- [ ] ${item.requirement.text} (${item.requirement.section})`);
306
- }
307
- lines.push('');
308
- }
309
- if (checklist.should.length > 0) {
310
- lines.push('## 推奨要件 (SHOULD / RECOMMENDED)');
311
- lines.push('');
312
- for (const item of checklist.should) {
313
- lines.push(`- [ ] ${item.requirement.text} (${item.requirement.section})`);
314
- }
315
- lines.push('');
316
- }
317
- if (checklist.may.length > 0) {
318
- lines.push('## 任意要件 (MAY / OPTIONAL)');
319
- lines.push('');
320
- for (const item of checklist.may) {
321
- lines.push(`- [ ] ${item.requirement.text} (${item.requirement.section})`);
322
- }
323
- lines.push('');
324
- }
325
- return lines.join('\n');
326
- }
327
- /**
328
- * validate_statement ハンドラー
243
+ * validate_statement handler
329
244
  */
330
245
  export async function handleValidateStatement(args) {
246
+ validateRFCNumber(args.rfc);
331
247
  const { data: parsed, source } = await getParsedRFC(args.rfc);
332
248
  const requirements = extractRequirements(parsed.sections);
333
- // 簡易的なキーワードマッチング
249
+ // Simple keyword matching
334
250
  const statementLower = args.statement.toLowerCase();
335
251
  const keywords = statementLower.split(/\s+/).filter((w) => w.length > 3);
336
252
  const matchingRequirements = requirements.filter((req) => {
337
253
  const reqText = (req.text + ' ' + req.fullContext).toLowerCase();
338
254
  return keywords.some((kw) => reqText.includes(kw));
339
255
  });
340
- // 矛盾検出(簡易版)
256
+ // Conflict detection (simple version)
341
257
  const conflicts = [];
342
- // TODO: より高度な矛盾検出ロジック
258
+ // TODO: More advanced conflict detection logic
343
259
  return {
344
260
  rfc: args.rfc,
345
261
  statement: args.statement,
346
262
  isValid: conflicts.length === 0,
347
- matchingRequirements: matchingRequirements.slice(0, 10), // 上位10
263
+ matchingRequirements: matchingRequirements.slice(0, 10), // Top 10
348
264
  conflicts,
349
265
  suggestions: matchingRequirements.length === 0
350
- ? ['該当する要件が見つかりませんでした。キーワードを変えて再検索してください。']
266
+ ? ['No matching requirements found. Try different keywords.']
351
267
  : undefined,
352
268
  _source: source,
353
- _sourceNote: source === 'text'
354
- ? '⚠️ テキストからの解析結果です。検証精度が低い可能性があります。'
355
- : undefined,
269
+ _sourceNote: source === 'text' ? getTextSourceNote('validation') : undefined,
356
270
  };
357
271
  }
358
272
  /**
359
- * ツールハンドラーのマップ
273
+ * Tool handlers map
274
+ * Note: Using 'unknown' for args type as each handler has specific type requirements
360
275
  */
276
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
361
277
  export const toolHandlers = {
362
278
  get_rfc_structure: handleGetRFCStructure,
363
279
  get_requirements: handleGetRequirements,
@@ -1 +1 @@
1
- {"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../src/tools/handlers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../src/tools/handlers.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,23 @@
1
1
  /**
2
2
  * RFCXML MCP 型定義
3
3
  */
4
+ /**
5
+ * パース済みRFCドキュメント構造
6
+ * XMLとテキストパーサー共通のインターフェース
7
+ */
8
+ export interface ParsedRFC {
9
+ metadata: {
10
+ title: string;
11
+ docName?: string;
12
+ number?: number;
13
+ };
14
+ sections: Section[];
15
+ references: {
16
+ normative: RFCReference[];
17
+ informative: RFCReference[];
18
+ };
19
+ definitions: Definition[];
20
+ }
4
21
  export interface RFCMetadata {
5
22
  number: number;
6
23
  title: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * 要件抽出の共通ユーティリティ
3
+ * XML/テキストパーサー共通で使用
4
+ */
5
+ import type { Section, Requirement, RequirementLevel } from '../types/index.js';
6
+ /**
7
+ * 要件抽出フィルタ
8
+ */
9
+ export interface RequirementFilter {
10
+ section?: string;
11
+ level?: RequirementLevel;
12
+ }
13
+ /**
14
+ * 要件構成要素の解析オプション
15
+ */
16
+ export interface ParseOptions {
17
+ /** 主語・アクション等の構成要素を解析するか */
18
+ parseComponents?: boolean;
19
+ }
20
+ /**
21
+ * セクションから要件を再帰的に抽出
22
+ */
23
+ export declare function extractRequirementsFromSections(sections: Section[], filter?: RequirementFilter, options?: ParseOptions): Requirement[];
24
+ //# sourceMappingURL=requirement-extractor.d.ts.map