@shuji-bonji/pdf-spec-mcp 0.3.2 → 0.4.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.
Files changed (77) hide show
  1. package/README.ja.md +11 -4
  2. package/README.md +11 -4
  3. package/dist/config.d.ts +22 -0
  4. package/dist/config.d.ts.map +1 -1
  5. package/dist/config.js +32 -1
  6. package/dist/config.js.map +1 -1
  7. package/dist/errors.d.ts +69 -5
  8. package/dist/errors.d.ts.map +1 -1
  9. package/dist/errors.js +70 -9
  10. package/dist/errors.js.map +1 -1
  11. package/dist/index.d.ts +1 -1
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +5 -42
  14. package/dist/index.js.map +1 -1
  15. package/dist/server.d.ts +18 -0
  16. package/dist/server.d.ts.map +1 -0
  17. package/dist/server.js +59 -0
  18. package/dist/server.js.map +1 -0
  19. package/dist/services/compare-service.d.ts +1 -1
  20. package/dist/services/compare-service.d.ts.map +1 -1
  21. package/dist/services/compare-service.js +2 -2
  22. package/dist/services/compare-service.js.map +1 -1
  23. package/dist/services/content-extractor.d.ts +65 -0
  24. package/dist/services/content-extractor.d.ts.map +1 -1
  25. package/dist/services/content-extractor.js +142 -10
  26. package/dist/services/content-extractor.js.map +1 -1
  27. package/dist/services/outline-resolver.d.ts +1 -1
  28. package/dist/services/outline-resolver.d.ts.map +1 -1
  29. package/dist/services/pdf-loader.d.ts +12 -2
  30. package/dist/services/pdf-loader.d.ts.map +1 -1
  31. package/dist/services/pdf-loader.js +21 -13
  32. package/dist/services/pdf-loader.js.map +1 -1
  33. package/dist/services/pdf-registry.d.ts.map +1 -1
  34. package/dist/services/pdf-registry.js +16 -8
  35. package/dist/services/pdf-registry.js.map +1 -1
  36. package/dist/services/pdf-service.d.ts +13 -1
  37. package/dist/services/pdf-service.d.ts.map +1 -1
  38. package/dist/services/pdf-service.js +79 -72
  39. package/dist/services/pdf-service.js.map +1 -1
  40. package/dist/services/requirement-extractor.d.ts +1 -1
  41. package/dist/services/requirement-extractor.d.ts.map +1 -1
  42. package/dist/services/requirement-extractor.js +40 -4
  43. package/dist/services/requirement-extractor.js.map +1 -1
  44. package/dist/services/search-index.d.ts +8 -1
  45. package/dist/services/search-index.d.ts.map +1 -1
  46. package/dist/services/search-index.js +48 -18
  47. package/dist/services/search-index.js.map +1 -1
  48. package/dist/services/table-collector.d.ts +19 -0
  49. package/dist/services/table-collector.d.ts.map +1 -0
  50. package/dist/services/table-collector.js +106 -0
  51. package/dist/services/table-collector.js.map +1 -0
  52. package/dist/tools/definitions.d.ts +26 -3
  53. package/dist/tools/definitions.d.ts.map +1 -1
  54. package/dist/tools/definitions.js +47 -114
  55. package/dist/tools/definitions.js.map +1 -1
  56. package/dist/tools/handlers.d.ts +18 -9
  57. package/dist/tools/handlers.d.ts.map +1 -1
  58. package/dist/tools/handlers.js +57 -38
  59. package/dist/tools/handlers.js.map +1 -1
  60. package/dist/types/index.d.ts +28 -33
  61. package/dist/types/index.d.ts.map +1 -1
  62. package/dist/utils/cache.d.ts.map +1 -1
  63. package/dist/utils/cache.js +4 -0
  64. package/dist/utils/cache.js.map +1 -1
  65. package/dist/utils/stdout-guard.d.ts +24 -0
  66. package/dist/utils/stdout-guard.d.ts.map +1 -0
  67. package/dist/utils/stdout-guard.js +27 -0
  68. package/dist/utils/stdout-guard.js.map +1 -0
  69. package/dist/utils/validation.d.ts +96 -14
  70. package/dist/utils/validation.d.ts.map +1 -1
  71. package/dist/utils/validation.js +152 -94
  72. package/dist/utils/validation.js.map +1 -1
  73. package/package.json +14 -11
  74. package/dist/container.d.ts +0 -25
  75. package/dist/container.d.ts.map +0 -1
  76. package/dist/container.js +0 -25
  77. package/dist/container.js.map +0 -1
@@ -11,9 +11,9 @@
11
11
  *
12
12
  * Results are cached — full comparison runs once, then filtered per request.
13
13
  */
14
- import { getSectionIndex } from './pdf-service.js';
15
14
  import { logger } from '../utils/logger.js';
16
15
  import { normalizeTitle } from '../utils/text.js';
16
+ import { getSectionIndex } from './pdf-service.js';
17
17
  // ========================================
18
18
  // CompareService Class
19
19
  // ========================================
@@ -36,7 +36,7 @@ export class CompareService {
36
36
  const full = await this.fullComparePromise;
37
37
  // Apply section filter if specified
38
38
  if (section) {
39
- const prefix = section + '.';
39
+ const prefix = `${section}.`;
40
40
  const matched = full.matched.filter((m) => m.section20 === section ||
41
41
  m.section20.startsWith(prefix) ||
42
42
  m.section17 === section ||
@@ -1 +1 @@
1
- {"version":3,"file":"compare-service.js","sourceRoot":"","sources":["../../src/services/compare-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compare-service.js","sourceRoot":"","sources":["../../src/services/compare-service.ts"],"names":[],"mappings":"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"}
@@ -10,4 +10,69 @@ import type { PDFDocumentProxy } from './pdf-loader.js';
10
10
  * @param sectionNumber - If provided, skip content before this section's heading on the first page
11
11
  */
12
12
  export declare function extractSectionContent(doc: PDFDocumentProxy, startPage: number, endPage: number, sectionNumber?: string): Promise<ContentElement[]>;
13
+ /**
14
+ * The content `trimToSectionStart` throws away at the top of `seamPage` — the tail of the
15
+ * *previous* section, which spilled past its last page.
16
+ *
17
+ * Section ranges come from the outline as `[page, nextSection.page - 1]`, so anything a
18
+ * section runs over onto the next section's first page falls outside its own range. The
19
+ * next section then discards it as pre-heading content. Nobody keeps it: 412 sections of
20
+ * ISO 32000-2 lose content this way, 271 of them requirement text ("shall"), plus the
21
+ * table rows that B-S1 first surfaced.
22
+ *
23
+ * Returning it here lets the previous section adopt it, and **cannot double-count**: this
24
+ * returns a non-empty strip exactly when trimToSectionStart drops one, both deciding via
25
+ * findSectionHeadingIndex.
26
+ * - heading at index > 0 → trimmed away there, adopted here
27
+ * - heading at index 0 → nothing precedes it; both return nothing
28
+ * - heading not found → trimToSectionStart keeps the whole page, so the next section
29
+ * already owns this content (69 sections of ISO 32000-2).
30
+ * Adopting it here too would duplicate it — hence `[]`.
31
+ *
32
+ * The `> 0` above is for clarity, not safety: `>= 0` and `!== -1` behave identically, since
33
+ * `slice(0, 0)` is empty and a `-1` index never reaches the slice. What must not change is
34
+ * the "not found → adopt nothing" arm, and that the heading is located the same way as in
35
+ * trimToSectionStart. Both are pinned by tests.
36
+ */
37
+ export declare function extractOrphanedStrip(doc: PDFDocumentProxy, seamPage: number, nextSectionNumber: string): Promise<ContentElement[]>;
38
+ /**
39
+ * A page's text, cut at section headings, for the search index (S-8).
40
+ */
41
+ export interface PageSegment {
42
+ /**
43
+ * Section that owns this text, or null for text above the first heading — the strip,
44
+ * which belongs to whichever section flows in from the previous page. The caller knows
45
+ * that section; this module only knows where the cut is.
46
+ */
47
+ section: string | null;
48
+ text: string;
49
+ }
50
+ /**
51
+ * Split a page's text at the headings of the sections that start on it (S-8).
52
+ *
53
+ * The search index used to hand each whole page to the last section starting on or before
54
+ * it, so the strip at the top of a page — the tail of the *previous* section — was always
55
+ * misattributed to the next one: search_spec("QuadPoints") reported 12.5.6.11, but
56
+ * QuadPoints is 12.5.6.10's Table 182, and get_tables("12.5.6.11") has no QuadPoints.
57
+ * Search led straight to a section where the term cannot be found.
58
+ *
59
+ * Cutting here uses the same findSectionHeadingIndex as trimToSectionStart /
60
+ * extractOrphanedStrip, so search attributes text to exactly the section whose
61
+ * get_section shows it (the S-5 lesson: one rule, one place). The arms mirror it too:
62
+ * - heading found at index > 0 → text before it goes to the pending owner (the strip)
63
+ * - heading found at index 0 → no strip
64
+ * - heading not found → the section keeps everything pending, and the previous
65
+ * owner adopts nothing (69 sections of ISO 32000-2)
66
+ *
67
+ * When NO heading is found at all, the page is returned as one raw-text segment for the
68
+ * last starting section — exactly what the whole-page index did. This is not just a
69
+ * shortcut: walkStructTree drops text whose only home is an unhandled container (TOC /
70
+ * TOCI / Link / Span chains on the Contents pages, the errata "Issue #NNN" pages, the
71
+ * INTERNATIONAL STANDARD title page), so element text on those pages is near-empty and
72
+ * cutting by elements would silently drop them from the index. Headingless pages cannot
73
+ * be cut anyway — falling back to the raw page keeps them whole.
74
+ *
75
+ * @param startingSections - section numbers starting on this page, in document order
76
+ */
77
+ export declare function extractPageSegments(doc: PDFDocumentProxy, pageNum: number, startingSections: string[]): Promise<PageSegment[]>;
13
78
  //# sourceMappingURL=content-extractor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"content-extractor.d.ts","sourceRoot":"","sources":["../../src/services/content-extractor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACV,cAAc,EAMf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,gBAAgB,EAMjB,MAAM,iBAAiB,CAAC;AAMzB;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,gBAAgB,EACrB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,cAAc,EAAE,CAAC,CAuB3B"}
1
+ {"version":3,"file":"content-extractor.d.ts","sourceRoot":"","sources":["../../src/services/content-extractor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EACV,cAAc,EAMf,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EACV,gBAAgB,EAMjB,MAAM,iBAAiB,CAAC;AAIzB;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,gBAAgB,EACrB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,cAAc,EAAE,CAAC,CAuB3B;AA8BD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,MAAM,EAChB,iBAAiB,EAAE,MAAM,GACxB,OAAO,CAAC,cAAc,EAAE,CAAC,CAM3B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,gBAAgB,EACrB,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,EAAE,GACzB,OAAO,CAAC,WAAW,EAAE,CAAC,CAmCxB"}
@@ -24,21 +24,151 @@ export async function extractSectionContent(doc, startPage, endPage, sectionNumb
24
24
  }
25
25
  return elements;
26
26
  }
27
+ /**
28
+ * Where a section's heading sits among a page's elements, or -1 if it is not there.
29
+ *
30
+ * Single source of truth for "this section starts here", so that trimToSectionStart and
31
+ * extractOrphanedStrip stay exact complements of each other — see extractOrphanedStrip.
32
+ */
33
+ function findSectionHeadingIndex(elements, sectionNumber) {
34
+ const idx = elements.findIndex((el) => el.type === 'heading' && el.text.startsWith(`${sectionNumber} `));
35
+ if (idx !== -1)
36
+ return idx;
37
+ // Also try matching "Annex X" format, where the heading may be exactly the section number
38
+ if (sectionNumber.startsWith('Annex ')) {
39
+ return elements.findIndex((el) => el.type === 'heading' && el.text.startsWith(sectionNumber));
40
+ }
41
+ return -1;
42
+ }
27
43
  /**
28
44
  * Remove content elements that precede the target section heading
29
45
  */
30
46
  function trimToSectionStart(elements, sectionNumber) {
31
- const headingIdx = elements.findIndex((el) => el.type === 'heading' && el.text.startsWith(sectionNumber + ' '));
32
- // Also try matching "Annex X" format
33
- if (headingIdx === -1 && sectionNumber.startsWith('Annex ')) {
34
- const annexIdx = elements.findIndex((el) => el.type === 'heading' && el.text.startsWith(sectionNumber));
35
- if (annexIdx > 0)
36
- return elements.slice(annexIdx);
47
+ const headingIdx = findSectionHeadingIndex(elements, sectionNumber);
48
+ return headingIdx > 0 ? elements.slice(headingIdx) : elements;
49
+ }
50
+ /**
51
+ * The content `trimToSectionStart` throws away at the top of `seamPage` — the tail of the
52
+ * *previous* section, which spilled past its last page.
53
+ *
54
+ * Section ranges come from the outline as `[page, nextSection.page - 1]`, so anything a
55
+ * section runs over onto the next section's first page falls outside its own range. The
56
+ * next section then discards it as pre-heading content. Nobody keeps it: 412 sections of
57
+ * ISO 32000-2 lose content this way, 271 of them requirement text ("shall"), plus the
58
+ * table rows that B-S1 first surfaced.
59
+ *
60
+ * Returning it here lets the previous section adopt it, and **cannot double-count**: this
61
+ * returns a non-empty strip exactly when trimToSectionStart drops one, both deciding via
62
+ * findSectionHeadingIndex.
63
+ * - heading at index > 0 → trimmed away there, adopted here
64
+ * - heading at index 0 → nothing precedes it; both return nothing
65
+ * - heading not found → trimToSectionStart keeps the whole page, so the next section
66
+ * already owns this content (69 sections of ISO 32000-2).
67
+ * Adopting it here too would duplicate it — hence `[]`.
68
+ *
69
+ * The `> 0` above is for clarity, not safety: `>= 0` and `!== -1` behave identically, since
70
+ * `slice(0, 0)` is empty and a `-1` index never reaches the slice. What must not change is
71
+ * the "not found → adopt nothing" arm, and that the heading is located the same way as in
72
+ * trimToSectionStart. Both are pinned by tests.
73
+ */
74
+ export async function extractOrphanedStrip(doc, seamPage, nextSectionNumber) {
75
+ if (seamPage < 1 || seamPage > (doc.numPages || 0))
76
+ return [];
77
+ const elements = await extractPageContent(doc, seamPage);
78
+ const headingIdx = findSectionHeadingIndex(elements, nextSectionNumber);
79
+ return headingIdx > 0 ? elements.slice(0, headingIdx) : [];
80
+ }
81
+ /**
82
+ * Split a page's text at the headings of the sections that start on it (S-8).
83
+ *
84
+ * The search index used to hand each whole page to the last section starting on or before
85
+ * it, so the strip at the top of a page — the tail of the *previous* section — was always
86
+ * misattributed to the next one: search_spec("QuadPoints") reported 12.5.6.11, but
87
+ * QuadPoints is 12.5.6.10's Table 182, and get_tables("12.5.6.11") has no QuadPoints.
88
+ * Search led straight to a section where the term cannot be found.
89
+ *
90
+ * Cutting here uses the same findSectionHeadingIndex as trimToSectionStart /
91
+ * extractOrphanedStrip, so search attributes text to exactly the section whose
92
+ * get_section shows it (the S-5 lesson: one rule, one place). The arms mirror it too:
93
+ * - heading found at index > 0 → text before it goes to the pending owner (the strip)
94
+ * - heading found at index 0 → no strip
95
+ * - heading not found → the section keeps everything pending, and the previous
96
+ * owner adopts nothing (69 sections of ISO 32000-2)
97
+ *
98
+ * When NO heading is found at all, the page is returned as one raw-text segment for the
99
+ * last starting section — exactly what the whole-page index did. This is not just a
100
+ * shortcut: walkStructTree drops text whose only home is an unhandled container (TOC /
101
+ * TOCI / Link / Span chains on the Contents pages, the errata "Issue #NNN" pages, the
102
+ * INTERNATIONAL STANDARD title page), so element text on those pages is near-empty and
103
+ * cutting by elements would silently drop them from the index. Headingless pages cannot
104
+ * be cut anyway — falling back to the raw page keeps them whole.
105
+ *
106
+ * @param startingSections - section numbers starting on this page, in document order
107
+ */
108
+ export async function extractPageSegments(doc, pageNum, startingSections) {
109
+ const elements = await extractPageContent(doc, pageNum);
110
+ const segments = [];
111
+ let owner = null;
112
+ let start = 0;
113
+ let anyHeadingFound = false;
114
+ for (const sec of startingSections) {
115
+ const idx = findSectionHeadingIndex(elements.slice(start), sec);
116
+ if (idx === -1) {
117
+ // Mirrors trimToSectionStart keeping the whole page when the heading is missing:
118
+ // the section takes everything still pending (including any unemitted strip —
119
+ // exactly what its get_section returns), and the previous owner adopts nothing.
120
+ owner = sec;
121
+ continue;
122
+ }
123
+ anyHeadingFound = true;
124
+ const abs = start + idx;
125
+ if (abs > start) {
126
+ segments.push({ section: owner, text: elementsToText(elements.slice(start, abs)) });
127
+ }
128
+ owner = sec;
129
+ start = abs;
37
130
  }
38
- if (headingIdx > 0) {
39
- return elements.slice(headingIdx);
131
+ if (!anyHeadingFound) {
132
+ return [{ section: owner, text: await extractRawPageText(doc, pageNum) }].filter((s) => s.text.trim().length > 0);
40
133
  }
41
- return elements;
134
+ segments.push({ section: owner, text: elementsToText(elements.slice(start)) });
135
+ return segments.filter((s) => s.text.trim().length > 0);
136
+ }
137
+ /**
138
+ * Raw page text, independent of tagging (see extractPageSegments' headingless arm).
139
+ */
140
+ async function extractRawPageText(doc, pageNum) {
141
+ const page = await doc.getPage(pageNum);
142
+ const textContent = await page.getTextContent();
143
+ return textContent.items
144
+ .filter((item) => 'str' in item)
145
+ .map((item) => item.str)
146
+ .join(' ');
147
+ }
148
+ /**
149
+ * Flatten content elements to searchable text.
150
+ */
151
+ function elementsToText(elements) {
152
+ const parts = [];
153
+ for (const el of elements) {
154
+ switch (el.type) {
155
+ case 'heading':
156
+ case 'paragraph':
157
+ case 'code':
158
+ parts.push(el.text);
159
+ break;
160
+ case 'note':
161
+ parts.push(`${el.label} ${el.text}`);
162
+ break;
163
+ case 'list':
164
+ parts.push(el.items.join('\n'));
165
+ break;
166
+ case 'table':
167
+ parts.push([el.headers.join(' '), ...el.rows.map((r) => r.join(' '))].join('\n'));
168
+ break;
169
+ }
170
+ }
171
+ return parts.join('\n');
42
172
  }
43
173
  /**
44
174
  * Extract structured content from a single page
@@ -118,7 +248,9 @@ function walkStructTree(node, textMap, styles) {
118
248
  if (/^H[1-6]?$/.test(role)) {
119
249
  const text = collectText(child, textMap).trim();
120
250
  if (text) {
121
- const level = role.length === 2 ? parseInt(role[1]) : 3;
251
+ // role is /^H[1-6]?$/ (checked above), so role[1] is a single decimal digit.
252
+ // Bare "H" (no level) defaults to 3.
253
+ const level = role.length === 2 ? Number.parseInt(role[1], 10) : 3;
122
254
  elements.push({ type: 'heading', level, text });
123
255
  }
124
256
  continue;
@@ -1 +1 @@
1
- {"version":3,"file":"content-extractor.js","sourceRoot":"","sources":["../../src/services/content-extractor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"content-extractor.js","sourceRoot":"","sources":["../../src/services/content-extractor.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  * Outline Resolver
3
3
  * Builds section index from PDF outline tree
4
4
  */
5
- import type { OutlineEntry, SectionInfo, SectionIndex } from '../types/index.js';
5
+ import type { OutlineEntry, SectionIndex, SectionInfo } from '../types/index.js';
6
6
  /**
7
7
  * Build a section index from outline entries
8
8
  * Creates both a flat lookup map and preserves the tree structure
@@ -1 +1 @@
1
- {"version":3,"file":"outline-resolver.d.ts","sourceRoot":"","sources":["../../src/services/outline-resolver.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjF;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,YAAY,CA+C3F;AAoBD;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAgBvF"}
1
+ {"version":3,"file":"outline-resolver.d.ts","sourceRoot":"","sources":["../../src/services/outline-resolver.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEjF;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,YAAY,CA+C3F;AAoBD;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAgBvF"}
@@ -7,8 +7,17 @@
7
7
  * - Least-recently-used documents are evicted via doc.destroy() to free memory.
8
8
  */
9
9
  import type { OutlineEntry } from '../types/index.js';
10
- export type { PDFDocumentProxy, PDFPageProxy, TextContent, TextItem, TextMarkedContent, StructTreeNode, StructTreeContent, } from 'pdfjs-dist/types/src/display/api.js';
10
+ export type { PDFDocumentProxy, PDFPageProxy, StructTreeContent, StructTreeNode, TextContent, TextItem, TextMarkedContent, } from 'pdfjs-dist/types/src/display/api.js';
11
11
  import type { PDFDocumentProxy } from 'pdfjs-dist/types/src/display/api.js';
12
+ /**
13
+ * Opens a PDF from disk into a pdfjs document.
14
+ *
15
+ * Injected so the LRU cache can be tested on its own: reading a real file and driving
16
+ * pdfjs is the only part of this service that needs the outside world, and it is
17
+ * irrelevant to the eviction logic. Defaults to the real implementation, so callers
18
+ * that do not care (i.e. everyone but the tests) are unaffected.
19
+ */
20
+ export type DocumentSource = (pdfPath: string) => Promise<PDFDocumentProxy>;
12
21
  /**
13
22
  * Class-based PDF loader service with multi-document LRU cache.
14
23
  */
@@ -16,7 +25,8 @@ export declare class DocumentLoaderService {
16
25
  private documentCache;
17
26
  private accessOrder;
18
27
  private maxCachedDocs;
19
- constructor(maxCachedDocs?: number);
28
+ private source;
29
+ constructor(maxCachedDocs?: number, source?: DocumentSource);
20
30
  /**
21
31
  * Load PDF document (LRU cached, up to maxCachedDocs)
22
32
  */
@@ -1 +1 @@
1
- {"version":3,"file":"pdf-loader.d.ts","sourceRoot":"","sources":["../../src/services/pdf-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGtD,YAAY,EACV,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,iBAAiB,EACjB,cAAc,EACd,iBAAiB,GAClB,MAAM,qCAAqC,CAAC;AAE7C,OAAO,KAAK,EAAE,gBAAgB,EAAY,MAAM,qCAAqC,CAAC;AAatF;;GAEG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,aAAa,CAAgC;IACrD,OAAO,CAAC,WAAW,CAAW;IAC9B,OAAO,CAAC,aAAa,CAAS;gBAElB,aAAa,GAAE,MAAwB;IAMnD;;OAEG;IACG,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAa9D;;;;;;;;;;;;OAYG;IACG,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAahE;;OAEG;IACG,mBAAmB,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAMzE;;OAEG;IACH,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED;;OAEG;IACH,UAAU,IAAI,IAAI;IASlB;;OAEG;YACW,iBAAiB;IA0B/B;;OAEG;YACW,mBAAmB;IAsBjC;;OAEG;YACW,iBAAiB;CAsBhC;AAMD;;GAEG;AACH,eAAO,MAAM,aAAa,uBAA8B,CAAC;AAMzD;;GAEG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAE7E;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAE/E;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAExF;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAsB/D"}
1
+ {"version":3,"file":"pdf-loader.d.ts","sourceRoot":"","sources":["../../src/services/pdf-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAKtD,YAAY,EACV,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,WAAW,EACX,QAAQ,EACR,iBAAiB,GAClB,MAAM,qCAAqC,CAAC;AAE7C,OAAO,KAAK,EAAE,gBAAgB,EAAY,MAAM,qCAAqC,CAAC;AAatF;;;;;;;GAOG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAiB5E;;GAEG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,aAAa,CAAgC;IACrD,OAAO,CAAC,WAAW,CAAW;IAC9B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,MAAM,CAAiB;gBAEnB,aAAa,GAAE,MAAwB,EAAE,MAAM,GAAE,cAA6B;IAO1F;;OAEG;IACG,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAa9D;;;;;;;;;;;;OAYG;IACG,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAahE;;OAEG;IACG,mBAAmB,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAMzE;;OAEG;IACH,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED;;OAEG;IACH,UAAU,IAAI,IAAI;IASlB;;OAEG;YACW,iBAAiB;IAuB/B;;OAEG;YACW,mBAAmB;IAsBjC;;OAEG;YACW,iBAAiB;CAsBhC;AAMD;;GAEG;AACH,eAAO,MAAM,aAAa,uBAA8B,CAAC;AAMzD;;GAEG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAE7E;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAE/E;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAExF;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAsB/D"}
@@ -6,14 +6,21 @@
6
6
  * - Up to MAX_CACHED_DOCS PDFDocumentProxy instances are kept in memory.
7
7
  * - Least-recently-used documents are evicted via doc.destroy() to free memory.
8
8
  */
9
+ import { readFile } from 'node:fs/promises';
9
10
  import * as pdfjsLib from 'pdfjs-dist/legacy/build/pdf.mjs';
10
- import { readFile } from 'fs/promises';
11
11
  import { MAX_CACHED_DOCS } from '../config.js';
12
12
  import { logger } from '../utils/logger.js';
13
13
  import { stripZeroWidthChars } from '../utils/text.js';
14
- // ========================================
15
- // DocumentLoaderService Class
16
- // ========================================
14
+ const openFromDisk = async (pdfPath) => {
15
+ const start = Date.now();
16
+ const data = new Uint8Array(await readFile(pdfPath));
17
+ // The legacy build (pdfjs-dist/legacy/build/pdf.mjs) ships no type declarations of its
18
+ // own, so the module object is untyped here. Narrow it to just the call we make rather
19
+ // than casting to `any`, which would silence real errors on this line too.
20
+ const doc = await pdfjsLib.getDocument({ data }).promise;
21
+ logger.info('PDFLoader', `Loaded ${pdfPath} (${doc.numPages} pages) in ${Date.now() - start}ms`);
22
+ return doc;
23
+ };
17
24
  /**
18
25
  * Class-based PDF loader service with multi-document LRU cache.
19
26
  */
@@ -21,10 +28,12 @@ export class DocumentLoaderService {
21
28
  documentCache;
22
29
  accessOrder; // LRU tracking: oldest first
23
30
  maxCachedDocs;
24
- constructor(maxCachedDocs = MAX_CACHED_DOCS) {
31
+ source;
32
+ constructor(maxCachedDocs = MAX_CACHED_DOCS, source = openFromDisk) {
25
33
  this.documentCache = new Map();
26
34
  this.accessOrder = [];
27
35
  this.maxCachedDocs = maxCachedDocs;
36
+ this.source = source;
28
37
  }
29
38
  /**
30
39
  * Load PDF document (LRU cached, up to maxCachedDocs)
@@ -96,9 +105,13 @@ export class DocumentLoaderService {
96
105
  * Internal: Load a fresh document from disk and add to LRU cache.
97
106
  */
98
107
  async loadDocumentFresh(pdfPath) {
99
- // Evict oldest if cache is full
100
- while (this.documentCache.size >= this.maxCachedDocs && this.accessOrder.length > 0) {
108
+ // Evict oldest if cache is full.
109
+ // shift() returning undefined replaces the old `accessOrder.length > 0` guard —
110
+ // same condition, without a non-null assertion.
111
+ while (this.documentCache.size >= this.maxCachedDocs) {
101
112
  const oldest = this.accessOrder.shift();
113
+ if (oldest === undefined)
114
+ break;
102
115
  const doc = this.documentCache.get(oldest);
103
116
  if (doc) {
104
117
  doc.destroy();
@@ -107,12 +120,7 @@ export class DocumentLoaderService {
107
120
  }
108
121
  }
109
122
  // Load new document
110
- const start = Date.now();
111
- const data = new Uint8Array(await readFile(pdfPath));
112
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
113
- const doc = await pdfjsLib.getDocument({ data }).promise;
114
- const elapsed = Date.now() - start;
115
- logger.info('PDFLoader', `Loaded ${pdfPath} (${doc.numPages} pages) in ${elapsed}ms`);
123
+ const doc = await this.source(pdfPath);
116
124
  this.documentCache.set(pdfPath, doc);
117
125
  this.accessOrder.push(pdfPath);
118
126
  return doc;
@@ -1 +1 @@
1
- {"version":3,"file":"pdf-loader.js","sourceRoot":"","sources":["../../src/services/pdf-loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pdf-loader.js","sourceRoot":"","sources":["../../src/services/pdf-loader.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"pdf-registry.d.ts","sourceRoot":"","sources":["../../src/services/pdf-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH,OAAO,KAAK,EAAE,YAAY,EAAU,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAOxE;;GAEG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,gBAAgB,CAA8B;IAEtD;;;OAGG;IACG,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAQxC;;OAEG;YACW,aAAa;IA+D3B;;;OAGG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAWnC;;OAEG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAIjD;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,EAAE,YAAY,GAAG,QAAQ,EAAE;IAQ9C;;OAEG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAIxC;;;OAGG;IACH,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM;IAWtC;;;OAGG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;CAWxF;AAGD,eAAO,MAAM,eAAe,iBAAwB,CAAC;AAGrD,eAAO,MAAM,yBAAyB,qBAA4C,CAAC;AACnF,eAAO,MAAM,WAAW,GAAI,QAAQ,MAAM,WAAwC,CAAC;AACnF,eAAO,MAAM,WAAW,GAAI,QAAQ,MAAM,yBAAwC,CAAC;AACnF,eAAO,MAAM,SAAS,GAAI,WAAW,YAAY,eAAwC,CAAC;AAC1F,eAAO,MAAM,eAAe,GAAI,QAAQ,MAAM,YAA4C,CAAC;AAC3F,eAAO,MAAM,aAAa,GAAI,SAAS,MAAM,WAA0C,CAAC;AACxF,eAAO,MAAM,cAAc,GAAI,QAAQ,MAAM,EAAE,MAAM;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,SAClD,CAAC"}
1
+ {"version":3,"file":"pdf-registry.d.ts","sourceRoot":"","sources":["../../src/services/pdf-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,KAAK,EAAE,YAAY,EAAU,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAQxE;;GAEG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,gBAAgB,CAA8B;IAEtD;;;OAGG;IACG,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAQxC;;OAEG;YACW,aAAa;IAwE3B;;;OAGG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAYnC;;OAEG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAIjD;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,EAAE,YAAY,GAAG,QAAQ,EAAE;IAQ9C;;OAEG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAIxC;;;OAGG;IACH,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM;IAYtC;;;OAGG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;CAWxF;AAGD,eAAO,MAAM,eAAe,iBAAwB,CAAC;AAGrD,eAAO,MAAM,yBAAyB,qBAA4C,CAAC;AACnF,eAAO,MAAM,WAAW,GAAI,QAAQ,MAAM,WAAwC,CAAC;AACnF,eAAO,MAAM,WAAW,GAAI,QAAQ,MAAM,yBAAwC,CAAC;AACnF,eAAO,MAAM,SAAS,GAAI,WAAW,YAAY,eAAwC,CAAC;AAC1F,eAAO,MAAM,eAAe,GAAI,QAAQ,MAAM,YAA4C,CAAC;AAC3F,eAAO,MAAM,aAAa,GAAI,SAAS,MAAM,WAA0C,CAAC;AACxF,eAAO,MAAM,cAAc,GAAI,QAAQ,MAAM,EAAE,MAAM;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,SAClD,CAAC"}
@@ -6,10 +6,10 @@
6
6
  * 1. discoverSpecs() — file scan only (path + pattern match)
7
7
  * 2. enrichSpecInfo() — open PDF to get pages/outlineEntries (on first tool access)
8
8
  */
9
- import { readdir } from 'fs/promises';
10
- import { join } from 'path';
11
- import { PDF_CONFIG, SPEC_PATTERNS, DEFAULT_SPEC_ID } from '../config.js';
12
- import { RegistryError } from '../errors.js';
9
+ import { readdir } from 'node:fs/promises';
10
+ import { join } from 'node:path';
11
+ import { DEFAULT_SPEC_ID, PDF_CONFIG, SPEC_PATTERNS } from '../config.js';
12
+ import { NEXT_ACTIONS, RegistryError } from '../errors.js';
13
13
  import { logger } from '../utils/logger.js';
14
14
  /**
15
15
  * RegistryService encapsulates all PDF spec registry functionality
@@ -37,14 +37,22 @@ export class RegistryService {
37
37
  const dir = process.env[PDF_CONFIG.envVar];
38
38
  if (!dir) {
39
39
  throw new RegistryError(`Environment variable ${PDF_CONFIG.envVar} is not set. ` +
40
- `Set it to the directory containing PDF specification files.`);
40
+ `Set it to the directory containing PDF specification files.`, {
41
+ hint: 'The server cannot locate any specification PDF without this.',
42
+ next_actions: [NEXT_ACTIONS.setSpecDir(PDF_CONFIG.envVar)],
43
+ retryable: false,
44
+ });
41
45
  }
42
46
  let files;
43
47
  try {
44
48
  files = await readdir(dir);
45
49
  }
46
50
  catch (err) {
47
- throw new RegistryError(`Cannot read PDF_SPEC_DIR "${dir}": ${err}`);
51
+ throw new RegistryError(`Cannot read PDF_SPEC_DIR "${dir}": ${err}`, {
52
+ hint: 'The directory is set but unreadable — check that it exists and is accessible.',
53
+ next_actions: [NEXT_ACTIONS.setSpecDir(PDF_CONFIG.envVar)],
54
+ retryable: false,
55
+ });
48
56
  }
49
57
  const pdfFiles = files.filter((f) => f.toLowerCase().endsWith('.pdf'));
50
58
  let matched = 0;
@@ -92,7 +100,7 @@ export class RegistryService {
92
100
  const entry = this.registry.get(specId);
93
101
  if (!entry) {
94
102
  const available = [...this.registry.keys()].join(', ');
95
- throw new RegistryError(`Specification "${specId}" not found. Available specs: ${available || '(none — run list_specs first)'}`);
103
+ throw new RegistryError(`Specification "${specId}" not found. Available specs: ${available || '(none — run list_specs first)'}`, { next_actions: [NEXT_ACTIONS.listSpecs()], retryable: true });
96
104
  }
97
105
  return entry.path;
98
106
  }
@@ -126,7 +134,7 @@ export class RegistryService {
126
134
  const id = specId ?? DEFAULT_SPEC_ID;
127
135
  if (!this.registry.has(id)) {
128
136
  const available = [...this.registry.keys()].join(', ');
129
- throw new RegistryError(`Specification "${id}" not found. Available specs: ${available || '(none)'}`);
137
+ throw new RegistryError(`Specification "${id}" not found. Available specs: ${available || '(none)'}`, { next_actions: [NEXT_ACTIONS.listSpecs()], retryable: true });
130
138
  }
131
139
  return id;
132
140
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pdf-registry.js","sourceRoot":"","sources":["../../src/services/pdf-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pdf-registry.js","sourceRoot":"","sources":["../../src/services/pdf-registry.ts"],"names":[],"mappings":"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"}