@intelligentelectron/pdf-analyzer 0.2.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/README.md +18 -6
  2. package/dist/cli/commands.d.ts +6 -2
  3. package/dist/cli/commands.d.ts.map +1 -1
  4. package/dist/cli/commands.js +83 -100
  5. package/dist/cli/commands.js.map +1 -1
  6. package/dist/index.d.ts +2 -1
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +9 -3
  9. package/dist/index.js.map +1 -1
  10. package/dist/keychain.d.ts +21 -7
  11. package/dist/keychain.d.ts.map +1 -1
  12. package/dist/keychain.js +79 -38
  13. package/dist/keychain.js.map +1 -1
  14. package/dist/pdf-utils.d.ts +28 -0
  15. package/dist/pdf-utils.d.ts.map +1 -0
  16. package/dist/pdf-utils.js +93 -0
  17. package/dist/pdf-utils.js.map +1 -0
  18. package/dist/providers/anthropic.d.ts +9 -0
  19. package/dist/providers/anthropic.d.ts.map +1 -0
  20. package/dist/providers/anthropic.js +69 -0
  21. package/dist/providers/anthropic.js.map +1 -0
  22. package/dist/providers/google.d.ts +13 -0
  23. package/dist/providers/google.d.ts.map +1 -0
  24. package/dist/providers/google.js +120 -0
  25. package/dist/providers/google.js.map +1 -0
  26. package/dist/providers/index.d.ts +9 -0
  27. package/dist/providers/index.d.ts.map +1 -0
  28. package/dist/providers/index.js +8 -0
  29. package/dist/providers/index.js.map +1 -0
  30. package/dist/providers/openai.d.ts +9 -0
  31. package/dist/providers/openai.d.ts.map +1 -0
  32. package/dist/providers/openai.js +70 -0
  33. package/dist/providers/openai.js.map +1 -0
  34. package/dist/providers/registry.d.ts +23 -0
  35. package/dist/providers/registry.d.ts.map +1 -0
  36. package/dist/providers/registry.js +44 -0
  37. package/dist/providers/registry.js.map +1 -0
  38. package/dist/providers/types.d.ts +70 -0
  39. package/dist/providers/types.d.ts.map +1 -0
  40. package/dist/providers/types.js +2 -0
  41. package/dist/providers/types.js.map +1 -0
  42. package/dist/server.d.ts +2 -1
  43. package/dist/server.d.ts.map +1 -1
  44. package/dist/server.js +27 -31
  45. package/dist/server.js.map +1 -1
  46. package/dist/service.d.ts +7 -35
  47. package/dist/service.d.ts.map +1 -1
  48. package/dist/service.js +99 -274
  49. package/dist/service.js.map +1 -1
  50. package/dist/types.d.ts +20 -12
  51. package/dist/types.d.ts.map +1 -1
  52. package/dist/types.js +15 -45
  53. package/dist/types.js.map +1 -1
  54. package/package.json +16 -4
package/dist/types.js CHANGED
@@ -1,5 +1,4 @@
1
1
  import { z } from "zod";
2
- import { Type } from "@google/genai";
3
2
  /** Schema for the analyze_pdf tool input */
4
3
  export const AnalyzePdfInputSchema = z.object({
5
4
  pdf_source: z
@@ -8,51 +7,22 @@ export const AnalyzePdfInputSchema = z.object({
8
7
  queries: z.array(z.string().min(1)).min(1).describe("Array of questions to ask about the PDF"),
9
8
  });
10
9
  /**
11
- * Gemini response schema for structured output.
12
- * This ensures the model returns a predictable JSON structure.
10
+ * Zod schema for structured LLM output (single PDF).
11
+ * Used with AI SDK's Output.object().
13
12
  */
14
- export const GeminiResponseSchema = {
15
- type: Type.OBJECT,
16
- properties: {
17
- responses: {
18
- type: Type.ARRAY,
19
- items: {
20
- type: Type.OBJECT,
21
- properties: {
22
- query: { type: Type.STRING, description: "The original question" },
23
- answer: { type: Type.STRING, description: "The answer based on PDF content" },
24
- },
25
- required: ["query", "answer"],
26
- },
27
- description: "Array of query-answer pairs",
28
- },
29
- },
30
- required: ["responses"],
31
- };
13
+ export const ResponseSchema = z.object({
14
+ responses: z.array(z.object({
15
+ query: z.string().describe("The original question"),
16
+ answer: z.string().describe("The answer based on PDF content"),
17
+ })),
18
+ });
32
19
  /**
33
- * Gemini response schema for chunked PDF processing.
34
- * Extends the base schema with a findings_summary field for rolling context.
20
+ * Zod schema for structured LLM output (chunked PDF).
21
+ * Extends the base schema with rolling findings.
35
22
  */
36
- export const ChunkedGeminiResponseSchema = {
37
- type: Type.OBJECT,
38
- properties: {
39
- responses: {
40
- type: Type.ARRAY,
41
- items: {
42
- type: Type.OBJECT,
43
- properties: {
44
- query: { type: Type.STRING, description: "The original question" },
45
- answer: { type: Type.STRING, description: "The answer based on PDF content" },
46
- },
47
- required: ["query", "answer"],
48
- },
49
- description: "Array of query-answer pairs",
50
- },
51
- findings_summary: {
52
- type: Type.STRING,
53
- description: "Summary of findings so far across all processed chunks. Include page citations, partial answers, and what remains unanswered.",
54
- },
55
- },
56
- required: ["responses", "findings_summary"],
57
- };
23
+ export const ChunkedResponseSchema = ResponseSchema.extend({
24
+ findings_summary: z
25
+ .string()
26
+ .describe("Summary of findings so far across all processed chunks. Include page citations, partial answers, and what remains unanswered."),
27
+ });
58
28
  //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,IAAI,EAAe,MAAM,eAAe,CAAC;AAElD,4CAA4C;AAC5C,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,UAAU,EAAE,CAAC;SACV,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;SACtD,QAAQ,CACP,mHAAmH,CACpH;IACH,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,yCAAyC,CAAC;CAC/F,CAAC,CAAC;AAkBH;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAW;IAC1C,IAAI,EAAE,IAAI,CAAC,MAAM;IACjB,UAAU,EAAE;QACV,SAAS,EAAE;YACT,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,KAAK,EAAE;gBACL,IAAI,EAAE,IAAI,CAAC,MAAM;gBACjB,UAAU,EAAE;oBACV,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,uBAAuB,EAAE;oBAClE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,iCAAiC,EAAE;iBAC9E;gBACD,QAAQ,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;aAC9B;YACD,WAAW,EAAE,6BAA6B;SAC3C;KACF;IACD,QAAQ,EAAE,CAAC,WAAW,CAAC;CACxB,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAW;IACjD,IAAI,EAAE,IAAI,CAAC,MAAM;IACjB,UAAU,EAAE;QACV,SAAS,EAAE;YACT,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,KAAK,EAAE;gBACL,IAAI,EAAE,IAAI,CAAC,MAAM;gBACjB,UAAU,EAAE;oBACV,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,uBAAuB,EAAE;oBAClE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,iCAAiC,EAAE;iBAC9E;gBACD,QAAQ,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;aAC9B;YACD,WAAW,EAAE,6BAA6B;SAC3C;QACD,gBAAgB,EAAE;YAChB,IAAI,EAAE,IAAI,CAAC,MAAM;YACjB,WAAW,EACT,+HAA+H;SAClI;KACF;IACD,QAAQ,EAAE,CAAC,WAAW,EAAE,kBAAkB,CAAC;CAC5C,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,4CAA4C;AAC5C,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,UAAU,EAAE,CAAC;SACV,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;SACtD,QAAQ,CACP,mHAAmH,CACpH;IACH,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,yCAAyC,CAAC;CAC/F,CAAC,CAAC;AAmBH;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,SAAS,EAAE,CAAC,CAAC,KAAK,CAChB,CAAC,CAAC,MAAM,CAAC;QACP,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QACnD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;KAC/D,CAAC,CACH;CACF,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,cAAc,CAAC,MAAM,CAAC;IACzD,gBAAgB,EAAE,CAAC;SAChB,MAAM,EAAE;SACR,QAAQ,CACP,+HAA+H,CAChI;CACJ,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@intelligentelectron/pdf-analyzer",
3
- "version": "0.2.0",
4
- "description": "MCP server for analyzing PDF documents using Gemini API",
3
+ "version": "1.0.1",
4
+ "description": "MCP server for analyzing PDF documents using AI (Google Gemini, Anthropic Claude, OpenAI)",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
@@ -14,6 +14,10 @@
14
14
  "types": "./dist/service.d.ts",
15
15
  "default": "./dist/service.js"
16
16
  },
17
+ "./providers": {
18
+ "types": "./dist/providers/index.d.ts",
19
+ "default": "./dist/providers/index.js"
20
+ },
17
21
  "./types": {
18
22
  "types": "./dist/types.d.ts",
19
23
  "default": "./dist/types.js"
@@ -44,8 +48,13 @@
44
48
  "compile:windows-x64": "bun build --compile --minify --target=bun-windows-x64 --define BUILD_VERSION=\"\\\"$(node -p 'require(\\\"./package.json\\\").version')\\\"\" src/index.ts --outfile=bin/pdf-analyzer-windows-x64.exe"
45
49
  },
46
50
  "dependencies": {
51
+ "@ai-sdk/anthropic": "^3.0.63",
52
+ "@ai-sdk/google": "^3.0.52",
53
+ "@ai-sdk/openai": "^3.0.47",
54
+ "@clack/prompts": "^1.1.0",
47
55
  "@google/genai": "^1.37.0",
48
56
  "@modelcontextprotocol/sdk": "^1.25.2",
57
+ "ai": "^6.0.134",
49
58
  "pdf-lib": "^1.17.1",
50
59
  "zod": "^4.1.12"
51
60
  },
@@ -71,8 +80,11 @@
71
80
  "keywords": [
72
81
  "mcp",
73
82
  "pdf",
74
- "gemini",
75
83
  "ai",
76
- "document-analysis"
84
+ "document-analysis",
85
+ "gemini",
86
+ "claude",
87
+ "openai",
88
+ "multi-provider"
77
89
  ]
78
90
  }