@geotechcli/core 0.4.21 → 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 (154) hide show
  1. package/dist/agents/brain.d.ts +1 -5
  2. package/dist/agents/brain.d.ts.map +1 -1
  3. package/dist/agents/brain.js +4 -120
  4. package/dist/agents/brain.js.map +1 -1
  5. package/dist/agents/data-tools.js +759 -0
  6. package/dist/agents/data-tools.js.map +1 -1
  7. package/dist/agents/runtime-bootstrap.d.ts +6 -0
  8. package/dist/agents/runtime-bootstrap.d.ts.map +1 -0
  9. package/dist/agents/runtime-bootstrap.js +8 -0
  10. package/dist/agents/runtime-bootstrap.js.map +1 -0
  11. package/dist/agents/runtime-fallbacks.d.ts +7 -0
  12. package/dist/agents/runtime-fallbacks.d.ts.map +1 -0
  13. package/dist/agents/runtime-fallbacks.js +87 -0
  14. package/dist/agents/runtime-fallbacks.js.map +1 -0
  15. package/dist/agents/swarm.d.ts +1 -4
  16. package/dist/agents/swarm.d.ts.map +1 -1
  17. package/dist/agents/swarm.js +74 -8
  18. package/dist/agents/swarm.js.map +1 -1
  19. package/dist/agents/tool-runtime.d.ts +7 -0
  20. package/dist/agents/tool-runtime.d.ts.map +1 -0
  21. package/dist/agents/tool-runtime.js +9 -0
  22. package/dist/agents/tool-runtime.js.map +1 -0
  23. package/dist/config/index.d.ts +4 -4
  24. package/dist/config/index.js +1 -1
  25. package/dist/config/index.js.map +1 -1
  26. package/dist/geo/coordinates.d.ts +40 -0
  27. package/dist/geo/coordinates.d.ts.map +1 -0
  28. package/dist/geo/coordinates.js +461 -0
  29. package/dist/geo/coordinates.js.map +1 -0
  30. package/dist/geo/index.d.ts +1 -0
  31. package/dist/geo/index.d.ts.map +1 -1
  32. package/dist/geo/index.js +1 -0
  33. package/dist/geo/index.js.map +1 -1
  34. package/dist/index.d.ts +3 -2
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +3 -2
  37. package/dist/index.js.map +1 -1
  38. package/dist/ingest/ags.d.ts +3 -0
  39. package/dist/ingest/ags.d.ts.map +1 -1
  40. package/dist/ingest/ags.js +98 -9
  41. package/dist/ingest/ags.js.map +1 -1
  42. package/dist/ingest/cpt.d.ts +4 -0
  43. package/dist/ingest/cpt.d.ts.map +1 -1
  44. package/dist/ingest/cpt.js +87 -25
  45. package/dist/ingest/cpt.js.map +1 -1
  46. package/dist/ingest/document-inputs.d.ts +37 -0
  47. package/dist/ingest/document-inputs.d.ts.map +1 -0
  48. package/dist/ingest/document-inputs.js +197 -0
  49. package/dist/ingest/document-inputs.js.map +1 -0
  50. package/dist/ingest/geotech-document.d.ts +118 -0
  51. package/dist/ingest/geotech-document.d.ts.map +1 -0
  52. package/dist/ingest/geotech-document.js +1006 -0
  53. package/dist/ingest/geotech-document.js.map +1 -0
  54. package/dist/ingest/geotech-extract.d.ts +86 -0
  55. package/dist/ingest/geotech-extract.d.ts.map +1 -0
  56. package/dist/ingest/geotech-extract.js +652 -0
  57. package/dist/ingest/geotech-extract.js.map +1 -0
  58. package/dist/ingest/geotech-schemas.d.ts +248 -0
  59. package/dist/ingest/geotech-schemas.d.ts.map +1 -0
  60. package/dist/ingest/geotech-schemas.js +150 -0
  61. package/dist/ingest/geotech-schemas.js.map +1 -0
  62. package/dist/ingest/index.d.ts +8 -0
  63. package/dist/ingest/index.d.ts.map +1 -1
  64. package/dist/ingest/index.js +8 -0
  65. package/dist/ingest/index.js.map +1 -1
  66. package/dist/ingest/ingest-job-child.d.ts +2 -0
  67. package/dist/ingest/ingest-job-child.d.ts.map +1 -0
  68. package/dist/ingest/ingest-job-child.js +45 -0
  69. package/dist/ingest/ingest-job-child.js.map +1 -0
  70. package/dist/ingest/job-store.d.ts +117 -0
  71. package/dist/ingest/job-store.d.ts.map +1 -0
  72. package/dist/ingest/job-store.js +541 -0
  73. package/dist/ingest/job-store.js.map +1 -0
  74. package/dist/ingest/job-worker.d.ts +24 -0
  75. package/dist/ingest/job-worker.d.ts.map +1 -0
  76. package/dist/ingest/job-worker.js +1129 -0
  77. package/dist/ingest/job-worker.js.map +1 -0
  78. package/dist/ingest/pdf.d.ts +102 -0
  79. package/dist/ingest/pdf.d.ts.map +1 -0
  80. package/dist/ingest/pdf.js +1544 -0
  81. package/dist/ingest/pdf.js.map +1 -0
  82. package/dist/ingest/review-store.d.ts +215 -0
  83. package/dist/ingest/review-store.d.ts.map +1 -0
  84. package/dist/ingest/review-store.js +1995 -0
  85. package/dist/ingest/review-store.js.map +1 -0
  86. package/dist/llm/capabilities.d.ts +8 -0
  87. package/dist/llm/capabilities.d.ts.map +1 -0
  88. package/dist/llm/capabilities.js +73 -0
  89. package/dist/llm/capabilities.js.map +1 -0
  90. package/dist/llm/index.d.ts +3 -2
  91. package/dist/llm/index.d.ts.map +1 -1
  92. package/dist/llm/index.js +2 -1
  93. package/dist/llm/index.js.map +1 -1
  94. package/dist/llm/providers/anthropic.d.ts +6 -0
  95. package/dist/llm/providers/anthropic.d.ts.map +1 -1
  96. package/dist/llm/providers/anthropic.js +10 -1
  97. package/dist/llm/providers/anthropic.js.map +1 -1
  98. package/dist/llm/providers/hosted-beta.d.ts +6 -0
  99. package/dist/llm/providers/hosted-beta.d.ts.map +1 -1
  100. package/dist/llm/providers/hosted-beta.js +40 -10
  101. package/dist/llm/providers/hosted-beta.js.map +1 -1
  102. package/dist/llm/providers/huggingface.d.ts +6 -0
  103. package/dist/llm/providers/huggingface.d.ts.map +1 -1
  104. package/dist/llm/providers/huggingface.js +21 -1
  105. package/dist/llm/providers/huggingface.js.map +1 -1
  106. package/dist/llm/providers/openai-compatible.d.ts +6 -0
  107. package/dist/llm/providers/openai-compatible.d.ts.map +1 -1
  108. package/dist/llm/providers/openai-compatible.js +21 -1
  109. package/dist/llm/providers/openai-compatible.js.map +1 -1
  110. package/dist/llm/providers/zhipu.d.ts +6 -0
  111. package/dist/llm/providers/zhipu.d.ts.map +1 -1
  112. package/dist/llm/providers/zhipu.js +15 -1
  113. package/dist/llm/providers/zhipu.js.map +1 -1
  114. package/dist/llm/router.d.ts +7 -0
  115. package/dist/llm/router.d.ts.map +1 -1
  116. package/dist/llm/router.js +33 -13
  117. package/dist/llm/router.js.map +1 -1
  118. package/dist/llm/types.d.ts +22 -4
  119. package/dist/llm/types.d.ts.map +1 -1
  120. package/dist/llm/types.js.map +1 -1
  121. package/dist/meta/metadata.json +1 -1
  122. package/dist/report/html.d.ts +3 -0
  123. package/dist/report/html.d.ts.map +1 -0
  124. package/dist/report/html.js +626 -0
  125. package/dist/report/html.js.map +1 -0
  126. package/dist/report/index.d.ts +2 -0
  127. package/dist/report/index.d.ts.map +1 -1
  128. package/dist/report/index.js +2 -0
  129. package/dist/report/index.js.map +1 -1
  130. package/dist/report/ingest-dossier.d.ts +81 -0
  131. package/dist/report/ingest-dossier.d.ts.map +1 -0
  132. package/dist/report/ingest-dossier.js +324 -0
  133. package/dist/report/ingest-dossier.js.map +1 -0
  134. package/dist/storage/index.d.ts +5 -0
  135. package/dist/storage/index.d.ts.map +1 -1
  136. package/dist/storage/index.js +12 -6
  137. package/dist/storage/index.js.map +1 -1
  138. package/dist/vision/geotech-document.d.ts +46 -0
  139. package/dist/vision/geotech-document.d.ts.map +1 -0
  140. package/dist/vision/geotech-document.js +576 -0
  141. package/dist/vision/geotech-document.js.map +1 -0
  142. package/dist/vision/index.d.ts +31 -0
  143. package/dist/vision/index.d.ts.map +1 -1
  144. package/dist/vision/index.js +659 -27
  145. package/dist/vision/index.js.map +1 -1
  146. package/dist/vision/ocr.d.ts +29 -0
  147. package/dist/vision/ocr.d.ts.map +1 -0
  148. package/dist/vision/ocr.js +287 -0
  149. package/dist/vision/ocr.js.map +1 -0
  150. package/dist/vision/preprocess.d.ts +26 -0
  151. package/dist/vision/preprocess.d.ts.map +1 -0
  152. package/dist/vision/preprocess.js +194 -0
  153. package/dist/vision/preprocess.js.map +1 -0
  154. 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.21",
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": {