@intelligentelectron/pdf-analyzer 0.2.0 → 1.0.0

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 (49) hide show
  1. package/dist/cli/commands.d.ts +6 -2
  2. package/dist/cli/commands.d.ts.map +1 -1
  3. package/dist/cli/commands.js +83 -100
  4. package/dist/cli/commands.js.map +1 -1
  5. package/dist/index.d.ts +2 -1
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +9 -3
  8. package/dist/index.js.map +1 -1
  9. package/dist/keychain.d.ts +21 -7
  10. package/dist/keychain.d.ts.map +1 -1
  11. package/dist/keychain.js +79 -38
  12. package/dist/keychain.js.map +1 -1
  13. package/dist/pdf-utils.d.ts +28 -0
  14. package/dist/pdf-utils.d.ts.map +1 -0
  15. package/dist/pdf-utils.js +93 -0
  16. package/dist/pdf-utils.js.map +1 -0
  17. package/dist/providers/anthropic.d.ts +9 -0
  18. package/dist/providers/anthropic.d.ts.map +1 -0
  19. package/dist/providers/anthropic.js +69 -0
  20. package/dist/providers/anthropic.js.map +1 -0
  21. package/dist/providers/google.d.ts +13 -0
  22. package/dist/providers/google.d.ts.map +1 -0
  23. package/dist/providers/google.js +120 -0
  24. package/dist/providers/google.js.map +1 -0
  25. package/dist/providers/openai.d.ts +9 -0
  26. package/dist/providers/openai.d.ts.map +1 -0
  27. package/dist/providers/openai.js +70 -0
  28. package/dist/providers/openai.js.map +1 -0
  29. package/dist/providers/registry.d.ts +23 -0
  30. package/dist/providers/registry.d.ts.map +1 -0
  31. package/dist/providers/registry.js +44 -0
  32. package/dist/providers/registry.js.map +1 -0
  33. package/dist/providers/types.d.ts +70 -0
  34. package/dist/providers/types.d.ts.map +1 -0
  35. package/dist/providers/types.js +2 -0
  36. package/dist/providers/types.js.map +1 -0
  37. package/dist/server.d.ts +2 -1
  38. package/dist/server.d.ts.map +1 -1
  39. package/dist/server.js +27 -31
  40. package/dist/server.js.map +1 -1
  41. package/dist/service.d.ts +7 -35
  42. package/dist/service.d.ts.map +1 -1
  43. package/dist/service.js +99 -274
  44. package/dist/service.js.map +1 -1
  45. package/dist/types.d.ts +20 -12
  46. package/dist/types.d.ts.map +1 -1
  47. package/dist/types.js +15 -45
  48. package/dist/types.js.map +1 -1
  49. package/package.json +12 -4
package/dist/service.js CHANGED
@@ -1,153 +1,11 @@
1
- import { GoogleGenAI, ApiError } from "@google/genai";
2
- import * as fs from "node:fs";
3
- import * as path from "node:path";
4
- import { ChunkedGeminiResponseSchema, GeminiResponseSchema } from "./types.js";
1
+ import { generateText, Output } from "ai";
2
+ import { ResponseSchema, ChunkedResponseSchema } from "./types.js";
5
3
  import { pdfBytesToChunk, splitPdfInHalf } from "./chunker.js";
6
- import { getStoredApiKey } from "./keychain.js";
7
- const GEMINI_MODEL = "gemini-3.1-pro-preview";
4
+ import { isGeminiFileUri, isUrl, fetchPdfFromUrl, readPdfBytes } from "./pdf-utils.js";
8
5
  const SYSTEM_INSTRUCTION = `You are a document analysis assistant. Analyze PDF documents and answer questions based on their content.
9
6
  For each question, provide a clear, detailed answer based on the content of the PDF.
10
7
  If the answer cannot be determined from the PDF, say so explicitly.
11
8
  Always respond with accurate information from the document.`;
12
- /** Gemini File API URI prefix */
13
- const GEMINI_FILE_URI_PREFIX = "https://generativelanguage.googleapis.com/";
14
- /**
15
- * Creates and returns a configured GoogleGenAI client.
16
- * Reads GEMINI_API_KEY from the OS credential store.
17
- */
18
- export function createGeminiClient() {
19
- const apiKey = getStoredApiKey();
20
- if (!apiKey) {
21
- throw new Error("GEMINI_API_KEY not found. Run `pdf-analyzer --set-key` to store your key. " +
22
- "Get your key from https://aistudio.google.com/apikey");
23
- }
24
- return new GoogleGenAI({ apiKey });
25
- }
26
- /**
27
- * Check if a string is a Gemini File API URI.
28
- */
29
- export function isGeminiFileUri(source) {
30
- return source.startsWith(GEMINI_FILE_URI_PREFIX);
31
- }
32
- /**
33
- * Check if a string is a URL (excluding Gemini File API URIs).
34
- */
35
- export function isUrl(source) {
36
- if (isGeminiFileUri(source)) {
37
- return false;
38
- }
39
- try {
40
- const url = new URL(source);
41
- return url.protocol === "http:" || url.protocol === "https:";
42
- }
43
- catch {
44
- return false;
45
- }
46
- }
47
- /**
48
- * Validates a local PDF file path.
49
- * Throws descriptive errors for common issues.
50
- */
51
- export function validateLocalPath(pdfPath) {
52
- const trimmedPath = pdfPath.trim();
53
- if (!path.isAbsolute(trimmedPath)) {
54
- throw new Error(`PDF path must be absolute: ${trimmedPath}`);
55
- }
56
- if (!fs.existsSync(trimmedPath)) {
57
- throw new Error(`PDF file not found: ${trimmedPath}`);
58
- }
59
- const stats = fs.statSync(trimmedPath);
60
- if (stats.isDirectory()) {
61
- throw new Error(`Path is a directory, not a file: ${trimmedPath}`);
62
- }
63
- if (!trimmedPath.toLowerCase().endsWith(".pdf")) {
64
- throw new Error(`File is not a PDF: ${trimmedPath}`);
65
- }
66
- }
67
- /** Timeout for fetching PDFs from URLs (60 seconds) */
68
- const FETCH_TIMEOUT_MS = 60_000;
69
- /**
70
- * Fetch PDF content from a URL with timeout.
71
- */
72
- async function fetchPdfFromUrl(url) {
73
- const controller = new AbortController();
74
- const timeoutId = setTimeout(() => controller.abort(), FETCH_TIMEOUT_MS);
75
- let response;
76
- try {
77
- response = await fetch(url, { signal: controller.signal });
78
- }
79
- catch (error) {
80
- if (error instanceof Error && error.name === "AbortError") {
81
- throw new Error(`Request timed out after ${FETCH_TIMEOUT_MS / 1000}s`);
82
- }
83
- const message = error instanceof Error ? error.message : "Unknown error";
84
- throw new Error(`Failed to fetch URL: ${message}`);
85
- }
86
- finally {
87
- clearTimeout(timeoutId);
88
- }
89
- if (!response.ok) {
90
- throw new Error(`HTTP ${response.status}: ${response.statusText}`);
91
- }
92
- const contentType = response.headers.get("content-type");
93
- if (contentType &&
94
- !contentType.includes("application/pdf") &&
95
- !contentType.includes("octet-stream")) {
96
- throw new Error(`URL does not point to a PDF file. Content-Type: ${contentType}`);
97
- }
98
- const arrayBuffer = await response.arrayBuffer();
99
- return Buffer.from(arrayBuffer);
100
- }
101
- /**
102
- * Wait for a file to finish processing.
103
- * Polls the file state until it's no longer PROCESSING.
104
- */
105
- async function waitForFileReady(client, fileName, maxAttempts = 10) {
106
- for (let i = 0; i < maxAttempts; i++) {
107
- const fileInfo = await client.files.get({ name: fileName });
108
- if (fileInfo.state === "FAILED") {
109
- throw new Error(`File processing failed: ${fileInfo.name}`);
110
- }
111
- if (fileInfo.state !== "PROCESSING") {
112
- return; // File is ready (ACTIVE state)
113
- }
114
- await new Promise((resolve) => setTimeout(resolve, 2000));
115
- }
116
- throw new Error("File processing timed out");
117
- }
118
- /**
119
- * Upload a PDF to the Gemini File API, or return the URI if already a Gemini file.
120
- * Accepts local paths, web URLs, or Gemini File API URIs.
121
- * Returns the Gemini URI for use in subsequent calls.
122
- */
123
- async function uploadPdf(client, source) {
124
- // If already a Gemini file URI, return as-is (no upload needed)
125
- if (isGeminiFileUri(source)) {
126
- return source;
127
- }
128
- // Upload the file
129
- let file;
130
- if (isUrl(source)) {
131
- const pdfBuffer = await fetchPdfFromUrl(source);
132
- file = await client.files.upload({
133
- file: new Blob([pdfBuffer], { type: "application/pdf" }),
134
- config: { mimeType: "application/pdf" },
135
- });
136
- }
137
- else {
138
- validateLocalPath(source);
139
- file = await client.files.upload({
140
- file: source,
141
- config: { mimeType: "application/pdf" },
142
- });
143
- }
144
- if (!file.name || !file.uri) {
145
- throw new Error("File upload failed: missing name or URI");
146
- }
147
- // Wait for file to be ready
148
- await waitForFileReady(client, file.name);
149
- return file.uri;
150
- }
151
9
  /**
152
10
  * Build the user prompt with queries.
153
11
  */
@@ -155,7 +13,7 @@ function buildUserPrompt(queries) {
155
13
  const queriesText = queries.map((q, i) => `${i + 1}. ${q}`).join("\n");
156
14
  return `Please analyze the attached PDF and answer these questions:\n\n${queriesText}`;
157
15
  }
158
- /** Maximum chunk size for File API upload: 50MB × 0.85 safety margin */
16
+ /** Maximum chunk size for File API upload: 50MB x 0.85 safety margin. */
159
17
  const MAX_UPLOAD_BYTES = 50 * 1024 * 1024 * 0.85;
160
18
  /**
161
19
  * Ensure every query has an answer, filling gaps if the model missed some.
@@ -175,58 +33,46 @@ function ensureAllQueriesAnswered(queries, parsed) {
175
33
  }
176
34
  /**
177
35
  * Direct single-file analysis path.
178
- * Uploads the PDF via File API and sends it to Gemini in one call.
36
+ * Prepares the PDF via the provider and sends it to the LLM in one call.
179
37
  */
180
- async function analyzePdfDirect(client, source, queries) {
181
- const fileUri = await uploadPdf(client, source);
182
- const response = await client.models.generateContent({
183
- model: GEMINI_MODEL,
184
- contents: [
38
+ async function analyzePdfDirect(provider, apiKey, modelId, source, queries) {
39
+ const prepared = await provider.preparePdf(source, apiKey);
40
+ const model = provider.createModel(apiKey, modelId);
41
+ const { text } = await generateText({
42
+ model,
43
+ system: SYSTEM_INSTRUCTION,
44
+ output: Output.object({ schema: ResponseSchema }),
45
+ providerOptions: provider.providerOptions,
46
+ messages: [
185
47
  {
186
48
  role: "user",
187
- parts: [
188
- { fileData: { fileUri, mimeType: "application/pdf" } },
189
- { text: buildUserPrompt(queries) },
190
- ],
49
+ content: [...prepared.fileParts, { type: "text", text: buildUserPrompt(queries) }],
191
50
  },
192
51
  ],
193
- config: {
194
- systemInstruction: SYSTEM_INSTRUCTION,
195
- responseMimeType: "application/json",
196
- responseSchema: GeminiResponseSchema,
197
- },
198
52
  });
199
- const responseText = response.text || "{}";
53
+ const responseText = text ?? "{}";
200
54
  const parsed = JSON.parse(responseText);
55
+ const pdfSourceValue = source.kind === "cachedUri"
56
+ ? source.uri
57
+ : source.kind === "path"
58
+ ? source.path
59
+ : source.kind === "url"
60
+ ? source.url
61
+ : "bytes";
201
62
  return {
202
- pdf_source: source,
203
- cached_uris: [fileUri],
63
+ model: modelId,
64
+ pdf_source: pdfSourceValue,
65
+ cached_uris: prepared.cachedUri ? [prepared.cachedUri] : [],
204
66
  responses: ensureAllQueriesAnswered(queries, parsed.responses),
205
67
  };
206
68
  }
207
- /**
208
- * Upload raw PDF bytes to the Gemini File API.
209
- * Returns the Gemini URI for use in Gemini calls.
210
- */
211
- async function uploadChunkBytes(client, chunkBytes) {
212
- const file = await client.files.upload({
213
- file: new Blob([chunkBytes], { type: "application/pdf" }),
214
- config: { mimeType: "application/pdf" },
215
- });
216
- if (!file.name || !file.uri) {
217
- throw new Error("Chunk upload failed: missing name or URI");
218
- }
219
- await waitForFileReady(client, file.name);
220
- return file.uri;
221
- }
222
69
  /**
223
70
  * Build system instruction for a chunk at a given position.
224
- * When `chunk` metadata is provided, page range info is included in the position line.
225
71
  */
226
72
  function buildChunkedSystemInstruction(chunkIndex, totalChunks, previousFindings, chunk) {
227
73
  let position = `Processing chunk ${chunkIndex + 1} of ${totalChunks}`;
228
74
  if (chunk) {
229
- const pageRange = `pages ${chunk.startPage + 1}–${chunk.startPage + chunk.pageCount}`;
75
+ const pageRange = `pages ${chunk.startPage + 1}\u2013${chunk.startPage + chunk.pageCount}`;
230
76
  position += ` (${pageRange} of ${chunk.totalPages} total)`;
231
77
  }
232
78
  position += ".";
@@ -241,7 +87,7 @@ In addition to answering the queries, produce a "findings_summary" field that tr
241
87
  - What remains unanswered`;
242
88
  if (chunkIndex === 0) {
243
89
  return `${base}
244
- This is the first chunk. Some answers may be incomplete that's expected.${findingsInstruction}`;
90
+ This is the first chunk. Some answers may be incomplete \u2014 that's expected.${findingsInstruction}`;
245
91
  }
246
92
  const previousContext = `
247
93
  Here are the findings from the previous chunks:
@@ -257,117 +103,98 @@ Provide final, comprehensive answers incorporating all findings across the entir
257
103
  }
258
104
  return `${base}${previousContext}${findingsInstruction}`;
259
105
  }
260
- /**
261
- * Check if an error is a Gemini token limit error (input too large).
262
- */
263
- function isTokenLimitError(error) {
264
- if (!(error instanceof ApiError))
265
- return false;
266
- if (error.status !== 400)
267
- return false;
268
- return error.message.includes("input token count exceeds");
269
- }
270
106
  /**
271
107
  * Process a work queue of PdfChunks, splitting on token limit errors.
272
- *
273
- * Algorithm:
274
- * 1. Shift a chunk from the queue
275
- * 2. Upload it and call Gemini
276
- * 3. On success: accumulate findings, collect cached_uri
277
- * 4. On token limit error: split the chunk in half, unshift both back
278
- * 5. Repeat until queue is empty
279
108
  */
280
- async function processChunkQueue(client, queue, queries, pdfSource) {
109
+ async function processChunkQueue(provider, apiKey, modelId, queue, queries, pdfSource) {
281
110
  let previousFindings = null;
282
- const fileUris = [];
111
+ const cachedUris = [];
283
112
  let processedCount = 0;
284
- // We don't know total chunks upfront (splitting changes it),
285
- // so we track completed chunks and estimate total as completed + remaining.
286
113
  while (queue.length > 0) {
287
114
  const chunk = queue.shift();
288
115
  const totalChunks = processedCount + 1 + queue.length;
289
- // Pre-split chunks that exceed File API upload limit
116
+ // Pre-split chunks that exceed upload limit
290
117
  if (chunk.bytes.byteLength > MAX_UPLOAD_BYTES) {
291
118
  const [firstHalf, secondHalf] = await splitPdfInHalf(chunk);
292
119
  queue.unshift(firstHalf, secondHalf);
293
120
  continue;
294
121
  }
295
- const fileUri = await uploadChunkBytes(client, chunk.bytes);
122
+ const prepared = await provider.preparePdf({ kind: "bytes", bytes: chunk.bytes }, apiKey);
296
123
  const systemInstruction = buildChunkedSystemInstruction(processedCount, totalChunks, previousFindings, chunk);
297
124
  try {
298
- const response = await client.models.generateContent({
299
- model: GEMINI_MODEL,
300
- contents: [
125
+ const model = provider.createModel(apiKey, modelId);
126
+ const { text } = await generateText({
127
+ model,
128
+ system: systemInstruction,
129
+ output: Output.object({ schema: ChunkedResponseSchema }),
130
+ providerOptions: provider.providerOptions,
131
+ messages: [
301
132
  {
302
133
  role: "user",
303
- parts: [
304
- { fileData: { fileUri, mimeType: "application/pdf" } },
305
- { text: buildUserPrompt(queries) },
134
+ content: [
135
+ ...prepared.fileParts,
136
+ { type: "text", text: buildUserPrompt(queries) },
306
137
  ],
307
138
  },
308
139
  ],
309
- config: {
310
- systemInstruction,
311
- responseMimeType: "application/json",
312
- responseSchema: ChunkedGeminiResponseSchema,
313
- },
314
140
  });
315
- const responseText = response.text || "{}";
141
+ const responseText = text ?? "{}";
316
142
  const parsed = JSON.parse(responseText);
317
143
  previousFindings = parsed.findings_summary;
318
- fileUris.push(fileUri);
144
+ if (prepared.cachedUri) {
145
+ cachedUris.push(prepared.cachedUri);
146
+ }
319
147
  processedCount++;
320
- // On the last chunk, return the final responses
321
148
  if (queue.length === 0) {
322
149
  return {
150
+ model: modelId,
323
151
  pdf_source: pdfSource,
324
- cached_uris: fileUris,
152
+ cached_uris: cachedUris,
325
153
  responses: ensureAllQueriesAnswered(queries, parsed.responses),
326
154
  };
327
155
  }
328
156
  }
329
157
  catch (error) {
330
- if (!isTokenLimitError(error))
158
+ if (!provider.isTokenLimitError(error))
331
159
  throw error;
332
- // Token limit hit split this chunk and retry
160
+ // Token limit hit, split this chunk and retry
333
161
  const [firstHalf, secondHalf] = await splitPdfInHalf(chunk);
334
162
  queue.unshift(firstHalf, secondHalf);
335
163
  }
336
164
  }
337
- // Unreachable — loop returns on last successful chunk
338
165
  throw new Error("No chunks to process");
339
166
  }
340
167
  /**
341
168
  * Process an array of cached Gemini file URIs with rolling findings.
342
- * Used for re-analysis of a previously chunked PDF.
169
+ * Used for re-analysis of a previously chunked PDF (Google provider only).
343
170
  */
344
- async function processCachedUris(client, fileUris, queries) {
171
+ async function processCachedUris(provider, apiKey, modelId, fileUris, queries) {
345
172
  let previousFindings = null;
346
173
  for (let i = 0; i < fileUris.length; i++) {
347
- const fileUri = fileUris[i];
174
+ const prepared = await provider.preparePdf({ kind: "cachedUri", uri: fileUris[i] }, apiKey);
348
175
  const systemInstruction = buildChunkedSystemInstruction(i, fileUris.length, previousFindings);
349
- const response = await client.models.generateContent({
350
- model: GEMINI_MODEL,
351
- contents: [
176
+ const model = provider.createModel(apiKey, modelId);
177
+ const { text } = await generateText({
178
+ model,
179
+ system: systemInstruction,
180
+ output: Output.object({ schema: ChunkedResponseSchema }),
181
+ providerOptions: provider.providerOptions,
182
+ messages: [
352
183
  {
353
184
  role: "user",
354
- parts: [
355
- { fileData: { fileUri, mimeType: "application/pdf" } },
356
- { text: buildUserPrompt(queries) },
185
+ content: [
186
+ ...prepared.fileParts,
187
+ { type: "text", text: buildUserPrompt(queries) },
357
188
  ],
358
189
  },
359
190
  ],
360
- config: {
361
- systemInstruction,
362
- responseMimeType: "application/json",
363
- responseSchema: ChunkedGeminiResponseSchema,
364
- },
365
191
  });
366
- const responseText = response.text || "{}";
192
+ const responseText = text ?? "{}";
367
193
  const parsed = JSON.parse(responseText);
368
194
  previousFindings = parsed.findings_summary;
369
195
  if (i === fileUris.length - 1) {
370
196
  return {
197
+ model: modelId,
371
198
  pdf_source: fileUris,
372
199
  cached_uris: fileUris,
373
200
  responses: ensureAllQueriesAnswered(queries, parsed.responses),
@@ -377,60 +204,58 @@ async function processCachedUris(client, fileUris, queries) {
377
204
  throw new Error("No URIs to process");
378
205
  }
379
206
  /**
380
- * Read PDF bytes from a source (URL or local file).
207
+ * Classify the pdf_source input into a PdfSource discriminated union.
381
208
  */
382
- async function readPdfBytes(source) {
209
+ function classifySource(source) {
210
+ if (isGeminiFileUri(source)) {
211
+ return { kind: "cachedUri", uri: source };
212
+ }
383
213
  if (isUrl(source)) {
384
- return fetchPdfFromUrl(source);
214
+ return { kind: "url", url: source };
385
215
  }
386
- validateLocalPath(source);
387
- return fs.readFileSync(source.trim());
216
+ return { kind: "path", path: source };
388
217
  }
389
218
  /**
390
- * Analyzes a PDF document using Gemini.
219
+ * Analyzes a PDF document using the configured provider.
391
220
  *
392
221
  * Routing:
393
- * - string[] cached chunk URIs, sequential processing with rolling findings
394
- * - Gemini URI string direct single-file analysis (no bytes to split)
395
- * - path/URL read bytes, try full PDF first, split on token limit error
222
+ * - string[] -> cached chunk URIs, sequential processing with rolling findings (Google only)
223
+ * - Gemini URI string -> direct single-file analysis via cached URI (Google only)
224
+ * - path/URL -> prepare via provider, try full PDF first, split on token limit error
396
225
  */
397
- export async function analyzePdf(client, input) {
226
+ export async function analyzePdf(provider, apiKey, modelId, input) {
398
227
  const { pdf_source, queries } = input;
399
- // Array of cached Gemini file URIs re-analysis path
228
+ // Array of cached Gemini file URIs, re-analysis path (Google only)
400
229
  if (Array.isArray(pdf_source)) {
401
- return processCachedUris(client, pdf_source, queries);
230
+ if (provider.id !== "google") {
231
+ throw new Error("Cached URIs are only supported with the Google provider.");
232
+ }
233
+ return processCachedUris(provider, apiKey, modelId, pdf_source, queries);
402
234
  }
403
- // Single Gemini file URI — direct path, no splitting possible
404
- if (isGeminiFileUri(pdf_source)) {
405
- return analyzePdfDirect(client, pdf_source, queries);
235
+ const source = classifySource(pdf_source);
236
+ // Cached URI, direct path (Google only)
237
+ if (source.kind === "cachedUri") {
238
+ if (provider.id !== "google") {
239
+ throw new Error("Cached URIs are only supported with the Google provider.");
240
+ }
241
+ return analyzePdfDirect(provider, apiKey, modelId, source, queries);
406
242
  }
407
- // Path or URL try the full PDF first via the direct path
243
+ // Path or URL, try the full PDF first via the direct path
408
244
  try {
409
- return await analyzePdfDirect(client, pdf_source, queries);
245
+ return await analyzePdfDirect(provider, apiKey, modelId, source, queries);
410
246
  }
411
247
  catch (error) {
412
- if (!isTokenLimitError(error))
248
+ if (!provider.isTokenLimitError(error))
413
249
  throw error;
414
250
  }
415
- // Token limit exceeded read bytes, split into chunks, and process via work queue
416
- const pdfBytes = await readPdfBytes(pdf_source);
251
+ // Token limit exceeded, read bytes, split into chunks, and process via work queue
252
+ // At this point source is "path" or "url" (cachedUri was handled above)
253
+ const pdfBytes = source.kind === "url"
254
+ ? await fetchPdfFromUrl(source.url)
255
+ : readPdfBytes(source.path);
417
256
  const initialChunk = await pdfBytesToChunk(new Uint8Array(pdfBytes));
418
- return processChunkQueue(client, [initialChunk], queries, pdf_source);
419
- }
420
- /**
421
- * Check if an error is an ApiError and return typed error info.
422
- */
423
- export function isApiError(error) {
424
- return error instanceof ApiError;
425
- }
426
- /**
427
- * Get error message from ApiError, preserving the actual API response.
428
- */
429
- export function getApiErrorMessage(error) {
430
- return {
431
- message: `Gemini API error (HTTP ${error.status})`,
432
- details: error.message,
433
- };
257
+ return processChunkQueue(provider, apiKey, modelId, [initialChunk], queries, pdf_source);
434
258
  }
435
259
  export { AnalyzePdfInputSchema } from "./types.js";
260
+ export { isGeminiFileUri, isUrl, validateLocalPath } from "./pdf-utils.js";
436
261
  //# sourceMappingURL=service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -1,5 +1,4 @@
1
1
  import { z } from "zod";
2
- import { type Schema } from "@google/genai";
3
2
  /** Schema for the analyze_pdf tool input */
4
3
  export declare const AnalyzePdfInputSchema: z.ZodObject<{
5
4
  pdf_source: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
@@ -14,25 +13,34 @@ export interface QueryResponse {
14
13
  }
15
14
  /** Response from the analyze_pdf tool */
16
15
  export interface AnalyzePdfResponse {
16
+ model: string;
17
17
  pdf_source: string | string[];
18
18
  cached_uris: string[];
19
19
  responses: QueryResponse[];
20
20
  }
21
21
  /**
22
- * Gemini response schema for structured output.
23
- * This ensures the model returns a predictable JSON structure.
22
+ * Zod schema for structured LLM output (single PDF).
23
+ * Used with AI SDK's Output.object().
24
24
  */
25
- export declare const GeminiResponseSchema: Schema;
25
+ export declare const ResponseSchema: z.ZodObject<{
26
+ responses: z.ZodArray<z.ZodObject<{
27
+ query: z.ZodString;
28
+ answer: z.ZodString;
29
+ }, z.core.$strip>>;
30
+ }, z.core.$strip>;
26
31
  /**
27
- * Gemini response schema for chunked PDF processing.
28
- * Extends the base schema with a findings_summary field for rolling context.
32
+ * Zod schema for structured LLM output (chunked PDF).
33
+ * Extends the base schema with rolling findings.
29
34
  */
30
- export declare const ChunkedGeminiResponseSchema: Schema;
31
- /** Response from a chunked Gemini call, including rolling findings */
32
- export interface ChunkedQueryResponse {
33
- responses: QueryResponse[];
34
- findings_summary: string;
35
- }
35
+ export declare const ChunkedResponseSchema: z.ZodObject<{
36
+ responses: z.ZodArray<z.ZodObject<{
37
+ query: z.ZodString;
38
+ answer: z.ZodString;
39
+ }, z.core.$strip>>;
40
+ findings_summary: z.ZodString;
41
+ }, z.core.$strip>;
42
+ /** Inferred type for chunked response */
43
+ export type ChunkedQueryResponse = z.infer<typeof ChunkedResponseSchema>;
36
44
  /** Error response from the tool */
37
45
  export interface ToolError {
38
46
  error: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,eAAe,CAAC;AAElD,4CAA4C;AAC5C,eAAO,MAAM,qBAAqB;;;iBAOhC,CAAC;AAEH,0CAA0C;AAC1C,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,kCAAkC;AAClC,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,yCAAyC;AACzC,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC9B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,SAAS,EAAE,aAAa,EAAE,CAAC;CAC5B;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,MAiBlC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,2BAA2B,EAAE,MAsBzC,CAAC;AAEF,sEAAsE;AACtE,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,mCAAmC;AACnC,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,uCAAuC;AACvC,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,oBAAoB,EAAE,MAAM,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,iCAAiC;AACjC,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;AAED,gEAAgE;AAChE,MAAM,MAAM,QAAQ,GAAG,cAAc,GAAG,YAAY,GAAG,aAAa,GAAG,WAAW,GAAG,aAAa,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,4CAA4C;AAC5C,eAAO,MAAM,qBAAqB;;;iBAOhC,CAAC;AAEH,0CAA0C;AAC1C,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,kCAAkC;AAClC,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,yCAAyC;AACzC,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC9B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,SAAS,EAAE,aAAa,EAAE,CAAC;CAC5B;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc;;;;;iBAOzB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,qBAAqB;;;;;;iBAMhC,CAAC;AAEH,yCAAyC;AACzC,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEzE,mCAAmC;AACnC,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,uCAAuC;AACvC,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,oBAAoB,EAAE,MAAM,CAAC;IAC7B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,iCAAiC;AACjC,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;AAED,gEAAgE;AAChE,MAAM,MAAM,QAAQ,GAAG,cAAc,GAAG,YAAY,GAAG,aAAa,GAAG,WAAW,GAAG,aAAa,CAAC"}