@geotechcli/core 0.4.22 → 0.4.23

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 (144) hide show
  1. package/dist/agents/brain.d.ts.map +1 -1
  2. package/dist/agents/brain.js +2 -1
  3. package/dist/agents/brain.js.map +1 -1
  4. package/dist/agents/data-tools.js +759 -0
  5. package/dist/agents/data-tools.js.map +1 -1
  6. package/dist/agents/swarm.d.ts.map +1 -1
  7. package/dist/agents/swarm.js +22 -2
  8. package/dist/agents/swarm.js.map +1 -1
  9. package/dist/agents/tool-runtime.d.ts +7 -0
  10. package/dist/agents/tool-runtime.d.ts.map +1 -0
  11. package/dist/agents/tool-runtime.js +9 -0
  12. package/dist/agents/tool-runtime.js.map +1 -0
  13. package/dist/config/index.d.ts +4 -4
  14. package/dist/config/index.js +1 -1
  15. package/dist/config/index.js.map +1 -1
  16. package/dist/geo/coordinates.d.ts +40 -0
  17. package/dist/geo/coordinates.d.ts.map +1 -0
  18. package/dist/geo/coordinates.js +461 -0
  19. package/dist/geo/coordinates.js.map +1 -0
  20. package/dist/geo/index.d.ts +1 -0
  21. package/dist/geo/index.d.ts.map +1 -1
  22. package/dist/geo/index.js +1 -0
  23. package/dist/geo/index.js.map +1 -1
  24. package/dist/index.d.ts +3 -2
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +3 -2
  27. package/dist/index.js.map +1 -1
  28. package/dist/ingest/ags.d.ts +3 -0
  29. package/dist/ingest/ags.d.ts.map +1 -1
  30. package/dist/ingest/ags.js +98 -9
  31. package/dist/ingest/ags.js.map +1 -1
  32. package/dist/ingest/cpt.d.ts +4 -0
  33. package/dist/ingest/cpt.d.ts.map +1 -1
  34. package/dist/ingest/cpt.js +87 -25
  35. package/dist/ingest/cpt.js.map +1 -1
  36. package/dist/ingest/document-inputs.d.ts +37 -0
  37. package/dist/ingest/document-inputs.d.ts.map +1 -0
  38. package/dist/ingest/document-inputs.js +197 -0
  39. package/dist/ingest/document-inputs.js.map +1 -0
  40. package/dist/ingest/geotech-document.d.ts +118 -0
  41. package/dist/ingest/geotech-document.d.ts.map +1 -0
  42. package/dist/ingest/geotech-document.js +1006 -0
  43. package/dist/ingest/geotech-document.js.map +1 -0
  44. package/dist/ingest/geotech-extract.d.ts +86 -0
  45. package/dist/ingest/geotech-extract.d.ts.map +1 -0
  46. package/dist/ingest/geotech-extract.js +652 -0
  47. package/dist/ingest/geotech-extract.js.map +1 -0
  48. package/dist/ingest/geotech-schemas.d.ts +248 -0
  49. package/dist/ingest/geotech-schemas.d.ts.map +1 -0
  50. package/dist/ingest/geotech-schemas.js +150 -0
  51. package/dist/ingest/geotech-schemas.js.map +1 -0
  52. package/dist/ingest/index.d.ts +8 -0
  53. package/dist/ingest/index.d.ts.map +1 -1
  54. package/dist/ingest/index.js +8 -0
  55. package/dist/ingest/index.js.map +1 -1
  56. package/dist/ingest/ingest-job-child.d.ts +2 -0
  57. package/dist/ingest/ingest-job-child.d.ts.map +1 -0
  58. package/dist/ingest/ingest-job-child.js +45 -0
  59. package/dist/ingest/ingest-job-child.js.map +1 -0
  60. package/dist/ingest/job-store.d.ts +117 -0
  61. package/dist/ingest/job-store.d.ts.map +1 -0
  62. package/dist/ingest/job-store.js +541 -0
  63. package/dist/ingest/job-store.js.map +1 -0
  64. package/dist/ingest/job-worker.d.ts +24 -0
  65. package/dist/ingest/job-worker.d.ts.map +1 -0
  66. package/dist/ingest/job-worker.js +1129 -0
  67. package/dist/ingest/job-worker.js.map +1 -0
  68. package/dist/ingest/pdf.d.ts +102 -0
  69. package/dist/ingest/pdf.d.ts.map +1 -0
  70. package/dist/ingest/pdf.js +1544 -0
  71. package/dist/ingest/pdf.js.map +1 -0
  72. package/dist/ingest/review-store.d.ts +215 -0
  73. package/dist/ingest/review-store.d.ts.map +1 -0
  74. package/dist/ingest/review-store.js +1995 -0
  75. package/dist/ingest/review-store.js.map +1 -0
  76. package/dist/llm/capabilities.d.ts +8 -0
  77. package/dist/llm/capabilities.d.ts.map +1 -0
  78. package/dist/llm/capabilities.js +73 -0
  79. package/dist/llm/capabilities.js.map +1 -0
  80. package/dist/llm/index.d.ts +3 -2
  81. package/dist/llm/index.d.ts.map +1 -1
  82. package/dist/llm/index.js +2 -1
  83. package/dist/llm/index.js.map +1 -1
  84. package/dist/llm/providers/anthropic.d.ts +6 -0
  85. package/dist/llm/providers/anthropic.d.ts.map +1 -1
  86. package/dist/llm/providers/anthropic.js +10 -1
  87. package/dist/llm/providers/anthropic.js.map +1 -1
  88. package/dist/llm/providers/hosted-beta.d.ts +6 -0
  89. package/dist/llm/providers/hosted-beta.d.ts.map +1 -1
  90. package/dist/llm/providers/hosted-beta.js +40 -10
  91. package/dist/llm/providers/hosted-beta.js.map +1 -1
  92. package/dist/llm/providers/huggingface.d.ts +6 -0
  93. package/dist/llm/providers/huggingface.d.ts.map +1 -1
  94. package/dist/llm/providers/huggingface.js +21 -1
  95. package/dist/llm/providers/huggingface.js.map +1 -1
  96. package/dist/llm/providers/openai-compatible.d.ts +6 -0
  97. package/dist/llm/providers/openai-compatible.d.ts.map +1 -1
  98. package/dist/llm/providers/openai-compatible.js +21 -1
  99. package/dist/llm/providers/openai-compatible.js.map +1 -1
  100. package/dist/llm/providers/zhipu.d.ts +6 -0
  101. package/dist/llm/providers/zhipu.d.ts.map +1 -1
  102. package/dist/llm/providers/zhipu.js +15 -1
  103. package/dist/llm/providers/zhipu.js.map +1 -1
  104. package/dist/llm/router.d.ts +7 -0
  105. package/dist/llm/router.d.ts.map +1 -1
  106. package/dist/llm/router.js +33 -13
  107. package/dist/llm/router.js.map +1 -1
  108. package/dist/llm/types.d.ts +22 -4
  109. package/dist/llm/types.d.ts.map +1 -1
  110. package/dist/llm/types.js.map +1 -1
  111. package/dist/meta/metadata.json +1 -1
  112. package/dist/report/html.d.ts +3 -0
  113. package/dist/report/html.d.ts.map +1 -0
  114. package/dist/report/html.js +626 -0
  115. package/dist/report/html.js.map +1 -0
  116. package/dist/report/index.d.ts +2 -0
  117. package/dist/report/index.d.ts.map +1 -1
  118. package/dist/report/index.js +2 -0
  119. package/dist/report/index.js.map +1 -1
  120. package/dist/report/ingest-dossier.d.ts +81 -0
  121. package/dist/report/ingest-dossier.d.ts.map +1 -0
  122. package/dist/report/ingest-dossier.js +324 -0
  123. package/dist/report/ingest-dossier.js.map +1 -0
  124. package/dist/storage/index.d.ts +5 -0
  125. package/dist/storage/index.d.ts.map +1 -1
  126. package/dist/storage/index.js +12 -6
  127. package/dist/storage/index.js.map +1 -1
  128. package/dist/vision/geotech-document.d.ts +46 -0
  129. package/dist/vision/geotech-document.d.ts.map +1 -0
  130. package/dist/vision/geotech-document.js +576 -0
  131. package/dist/vision/geotech-document.js.map +1 -0
  132. package/dist/vision/index.d.ts +31 -0
  133. package/dist/vision/index.d.ts.map +1 -1
  134. package/dist/vision/index.js +659 -27
  135. package/dist/vision/index.js.map +1 -1
  136. package/dist/vision/ocr.d.ts +29 -0
  137. package/dist/vision/ocr.d.ts.map +1 -0
  138. package/dist/vision/ocr.js +287 -0
  139. package/dist/vision/ocr.js.map +1 -0
  140. package/dist/vision/preprocess.d.ts +26 -0
  141. package/dist/vision/preprocess.d.ts.map +1 -0
  142. package/dist/vision/preprocess.js +194 -0
  143. package/dist/vision/preprocess.js.map +1 -0
  144. package/package.json +5 -1
@@ -0,0 +1,194 @@
1
+ import { createRequire } from 'node:module';
2
+ import { dirname, join } from 'node:path';
3
+ import { pathToFileURL } from 'node:url';
4
+ const require = createRequire(import.meta.url);
5
+ let cachedPdfRendererModule = null;
6
+ let cachedCanvasFactory = null;
7
+ let cachedStandardFontDataUrl = null;
8
+ let cachedPdfRendererUrl = null;
9
+ let cachedCanvasModuleUrl = null;
10
+ async function loadSharp() {
11
+ try {
12
+ const mod = await import('sharp');
13
+ return mod.default ?? mod;
14
+ }
15
+ catch {
16
+ return null;
17
+ }
18
+ }
19
+ async function loadPdfRendererModule() {
20
+ if (!cachedPdfRendererUrl) {
21
+ const pdfjsPackagePath = require.resolve('pdfjs-dist/package.json');
22
+ cachedPdfRendererUrl = pathToFileURL(join(dirname(pdfjsPackagePath), 'legacy', 'build', 'pdf.mjs')).href;
23
+ }
24
+ cachedPdfRendererModule ??= import(cachedPdfRendererUrl);
25
+ return cachedPdfRendererModule;
26
+ }
27
+ async function loadCanvasFactory() {
28
+ if (!cachedCanvasModuleUrl) {
29
+ const canvasSpecifier = ['@napi-rs', 'canvas'].join('/');
30
+ cachedCanvasModuleUrl = pathToFileURL(require.resolve(canvasSpecifier)).href;
31
+ }
32
+ cachedCanvasFactory ??= import(/* webpackIgnore: true */ cachedCanvasModuleUrl)
33
+ .then((mod) => (mod.createCanvas ?? mod.default?.createCanvas));
34
+ return cachedCanvasFactory;
35
+ }
36
+ function resolvePdfStandardFontDataUrl() {
37
+ if (cachedStandardFontDataUrl) {
38
+ return cachedStandardFontDataUrl;
39
+ }
40
+ const pdfjsPackagePath = require.resolve('pdfjs-dist/package.json');
41
+ cachedStandardFontDataUrl = `${join(dirname(pdfjsPackagePath), 'standard_fonts').replaceAll('\\', '/')}/`;
42
+ return cachedStandardFontDataUrl;
43
+ }
44
+ export async function encodeRawRasterToPng(pixels, details) {
45
+ const sharp = await loadSharp();
46
+ if (!sharp) {
47
+ throw new Error('sharp is unavailable for raw raster encoding.');
48
+ }
49
+ return sharp(Buffer.from(pixels), {
50
+ raw: {
51
+ width: details.width,
52
+ height: details.height,
53
+ channels: details.channels,
54
+ },
55
+ })
56
+ .png()
57
+ .toBuffer();
58
+ }
59
+ export async function preprocessVisionImageBuffer(buffer, mimeType, policy = 'ocr-optimized') {
60
+ if (policy === 'none') {
61
+ return {
62
+ buffer: Buffer.from(buffer),
63
+ mimeType,
64
+ transformed: false,
65
+ warnings: [],
66
+ };
67
+ }
68
+ const sharp = await loadSharp();
69
+ if (!sharp) {
70
+ return {
71
+ buffer: Buffer.from(buffer),
72
+ mimeType,
73
+ transformed: false,
74
+ warnings: ['Image preprocessing skipped because sharp is unavailable in this runtime.'],
75
+ };
76
+ }
77
+ try {
78
+ const output = await sharp(Buffer.from(buffer), { pages: 1 })
79
+ .resize({
80
+ width: 1600,
81
+ height: 1600,
82
+ fit: 'inside',
83
+ withoutEnlargement: true,
84
+ })
85
+ .rotate()
86
+ .grayscale()
87
+ .normalize()
88
+ .sharpen()
89
+ .png()
90
+ .toBuffer();
91
+ return {
92
+ buffer: output,
93
+ mimeType: 'image/png',
94
+ transformed: true,
95
+ warnings: [],
96
+ };
97
+ }
98
+ catch (error) {
99
+ return {
100
+ buffer: Buffer.from(buffer),
101
+ mimeType,
102
+ transformed: false,
103
+ warnings: [
104
+ `Image preprocessing skipped: ${error instanceof Error ? error.message : String(error)}`,
105
+ ],
106
+ };
107
+ }
108
+ }
109
+ export async function renderPdfPageToImageBuffer(buffer, pageNumber = 1, options) {
110
+ const renderer = await loadPdfRendererModule();
111
+ const createCanvas = await loadCanvasFactory();
112
+ const loadingTask = renderer.getDocument({
113
+ data: new Uint8Array(buffer),
114
+ disableWorker: true,
115
+ disableFontFace: true,
116
+ useSystemFonts: false,
117
+ isEvalSupported: false,
118
+ standardFontDataUrl: resolvePdfStandardFontDataUrl(),
119
+ });
120
+ let pdfDocument = null;
121
+ try {
122
+ pdfDocument = await loadingTask.promise;
123
+ if (pageNumber < 1 || pageNumber > pdfDocument.numPages) {
124
+ return null;
125
+ }
126
+ const page = await pdfDocument.getPage(pageNumber);
127
+ const viewport = page.getViewport({ scale: options?.scale ?? 1.5 });
128
+ const canvas = createCanvas(Math.max(1, Math.ceil(viewport.width)), Math.max(1, Math.ceil(viewport.height)));
129
+ const context = canvas.getContext('2d');
130
+ await page.render({
131
+ canvasContext: context,
132
+ viewport,
133
+ }).promise;
134
+ const renderedBuffer = canvas.toBuffer('image/png');
135
+ const preprocessed = await preprocessVisionImageBuffer(renderedBuffer, 'image/png', options?.preprocessPolicy ?? 'ocr-optimized');
136
+ return {
137
+ buffer: preprocessed.buffer,
138
+ mimeType: 'image/png',
139
+ width: canvas.width,
140
+ height: canvas.height,
141
+ warnings: preprocessed.warnings,
142
+ };
143
+ }
144
+ finally {
145
+ try {
146
+ if (pdfDocument) {
147
+ await pdfDocument.destroy();
148
+ }
149
+ else {
150
+ loadingTask.destroy();
151
+ }
152
+ }
153
+ catch {
154
+ // Ignore renderer cleanup errors.
155
+ }
156
+ }
157
+ }
158
+ export async function extractPdfPageTextFromBuffer(buffer, pageNumber = 1) {
159
+ const renderer = await loadPdfRendererModule();
160
+ const loadingTask = renderer.getDocument({
161
+ data: new Uint8Array(buffer),
162
+ disableWorker: true,
163
+ disableFontFace: true,
164
+ useSystemFonts: false,
165
+ isEvalSupported: false,
166
+ standardFontDataUrl: resolvePdfStandardFontDataUrl(),
167
+ });
168
+ let pdfDocument = null;
169
+ try {
170
+ pdfDocument = await loadingTask.promise;
171
+ if (pageNumber < 1 || pageNumber > pdfDocument.numPages) {
172
+ return null;
173
+ }
174
+ const page = await pdfDocument.getPage(pageNumber);
175
+ const textContent = await page.getTextContent();
176
+ const items = Array.isArray(textContent.items) ? textContent.items : [];
177
+ const text = items
178
+ .map((item) => (typeof item?.str === 'string' ? item.str : ''))
179
+ .join(' ')
180
+ .replace(/\s+/g, ' ')
181
+ .trim();
182
+ return text || null;
183
+ }
184
+ finally {
185
+ try {
186
+ await pdfDocument?.destroy();
187
+ }
188
+ catch {
189
+ // Ignore cleanup failures from pdfjs during fallback extraction.
190
+ }
191
+ loadingTask.destroy();
192
+ }
193
+ }
194
+ //# sourceMappingURL=preprocess.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preprocess.js","sourceRoot":"","sources":["../../src/vision/preprocess.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@geotechcli/core",
3
- "version": "0.4.22",
3
+ "version": "0.4.23",
4
4
  "description": "Shared computation and LLM engine for geotechCLI",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -39,9 +39,13 @@
39
39
  "lint": "tsc --noEmit"
40
40
  },
41
41
  "dependencies": {
42
+ "@napi-rs/canvas": "^0.1.99",
42
43
  "docx": "^9.0.0",
43
44
  "fflate": "^0.8.2",
45
+ "pdf-lib": "^1.17.1",
46
+ "pdfjs-dist": "^5.6.205",
44
47
  "pdfkit": "^0.15.0",
48
+ "sharp": "^0.34.5",
45
49
  "zod": "^3.24.0"
46
50
  },
47
51
  "devDependencies": {