Skip to content

Releases: IntelligentElectron/pdf-analyzer

v1.2.4

08 May 16:52
3261f0b

Choose a tag to compare

Fixed

  • HTTP /analyze endpoint now validates request bodies against the same AnalyzePdfInputSchema used by the MCP path. Previously a hand-rolled truthy check accepted malformed pdf_source values (numbers, objects, etc.), which then crashed inside validateLocalPath with Cannot read properties of undefined (reading 'trim'). Malformed bodies now return 400 with zod's path-aware error details. (#42)

Changed

  • src/types.ts exports a shared AnalyzePdfInputShape consumed by both the MCP tool registration and the HTTP /analyze handler, eliminating the duplicated inline schema definitions.

Installation

See README for installation instructions.

Checksums

See checksums.txt for SHA256 checksums.

v1.2.3

18 Apr 23:54
403c85f

Choose a tag to compare

Added

  • anthropic and anthropic-vertex providers now expose claude-opus-4-7 as the default flagship model. claude-opus-4-6 remains selectable via PDF_ANALYZER_MODEL.
  • Cloud Run deployment supports all five providers (google-vertex, anthropic-vertex, google, anthropic, openai) via a single PDF_ANALYZER_PROVIDER knob; direct-API providers read their key from Secret Manager at runtime.

Fixed

  • analyzePdf no longer crashes when a gs:// source falls back to chunked processing. The chunking branch now handles the bytes source kind via a new exhaustive resolveSourceBytes helper.
  • MCP Streamable HTTP: the /mcp route handles any method (GET/POST/DELETE) instead of POST-only. GET was previously returning 404 and causing clients to misreport "SDK auth failed".

Changed

  • Cloud Run deploys are now private by default (--no-allow-unauthenticated). Connect via gcloud run services proxy locally.
  • Cloud Build context slimmed from ~20 MiB to ~120 KiB via allowlist .gcloudignore / .dockerignore.
  • Deploy scripts (deploy/gcloud.sh, deploy/main.tf) and templates generalized for any provider + auth mode; see deploy/README.md for the matrix.
  • HTTP transport tests now drive the real production request handler via a new exported createRequestHandler; the old tests ran against an inline copy that could diverge from production.

Security

  • .gitignore hardened with defensive patterns for common credential, env, and build-cache leaks (*credentials*.json, *service-account*.json, .env.*, *.tsbuildinfo, etc.).

Installation

See README for installation instructions.

Checksums

See checksums.txt for SHA256 checksums.

v1.2.2

08 Apr 19:08
d5be74d

Choose a tag to compare

Added

  • Vertex AI service account JSON key authentication in --setup flow
  • Google Vertex AI and Anthropic via Vertex AI as first-class setup options
  • Auto-detection of GOOGLE_APPLICATION_CREDENTIALS environment variable during setup
  • Keychain storage for Vertex credentials (project, location, key file path)

Fixed

  • /analyze endpoint now logs errors to stderr before responding (#37)

Changed

  • Fixed Vertex provider IDs (google-vertex, anthropic-vertex) to match registry keys
  • Test fixtures replaced with smaller, cheaper PDFs (1-pager.pdf, attention-is-all-you-need.pdf)
  • Test URL documents updated from IC datasheets to CS/ML papers, sorted by page count

Installation

See README for installation instructions.

Checksums

See checksums.txt for SHA256 checksums.

v1.2.1

07 Apr 03:53
8933a01

Choose a tag to compare

Changed

  • Refactored LLM call logic into shared callLlm helper, reducing ~25 lines of duplication across three call sites
  • CI: switched npm publish job from Node 22 to Node 24 (fixes broken npm in GitHub Actions runner images)

Installation

See README for installation instructions.

Checksums

See checksums.txt for SHA256 checksums.

v1.2.0

07 Apr 03:32
b016755

Choose a tag to compare

Added

  • Cloud Run deployment with Streamable HTTP transport (POST /mcp)
  • Direct REST endpoint (POST /analyze) for clients that don't speak MCP
  • Health check endpoint (GET /health)
  • Google Vertex AI provider for Cloud Run (uses ADC, no API keys needed)
  • Anthropic Vertex AI provider
  • Provider and model configuration via environment variables (PDF_ANALYZER_PROVIDER, VERTEX_PROJECT, VERTEX_LOCATION)
  • Authenticated GCS downloads for gs:// URIs via @google-cloud/storage
  • Dockerfile for containerized deployments
  • Deployment scripts: gcloud CLI (deploy/gcloud.sh) and Terraform (deploy/main.tf)
  • Deployment documentation (deploy/README.md)
  • Architecture documentation (docs/architecture.md) covering stdio vs HTTP transport
  • Cloud Run E2E test suite (test/test-e2e-cloud-run.ts)
  • Plans: OAuth 2.1 authorization, rate limit handling

Changed

  • Cloud Run configured with 15-minute request timeout and 4 GiB memory for large PDFs
  • PDF fetch timeout increased from 60 seconds to 5 minutes for slow CDNs
  • Adaptive chunking works with inline bytes on Vertex AI (no Gemini File API)

Removed

  • upload_pdf tool (unnecessary: stdio reads local files, HTTP accepts URLs and gs:// URIs)
  • src/storage.ts module (only used by upload_pdf)

Installation

See README for installation instructions.

Checksums

See checksums.txt for SHA256 checksums.

v1.0.1

23 Mar 23:19
bea7696

Choose a tag to compare

Added

  • ./providers subpath export for importing provider configs (googleProvider, anthropicProvider, openaiProvider), registry utilities, and provider types directly

Installation

See README for installation instructions.

Checksums

See checksums.txt for SHA256 checksums.

v1.0.0

22 Mar 20:21
fa1a955

Choose a tag to compare

Added

  • Multi-provider support: Google Gemini, Anthropic Claude, and OpenAI
  • Interactive TUI setup (--setup) with provider and model selection using @clack/prompts
  • Model selection per provider: fast (cost-effective) and flagship options
    • Google: Gemini 3 Flash / Gemini 3.1 Pro
    • Anthropic: Claude Sonnet 4.6 / Claude Opus 4.6
    • OpenAI: GPT-5.4 Mini / GPT-5.4
  • Provider-specific PDF handling: Gemini File API for Google, inline bytes for Anthropic and OpenAI
  • Thinking/reasoning set to minimum across all providers (optimized for document analysis)

Changed

  • Migrated from direct @google/genai SDK to Vercel AI SDK V6 for provider abstraction
  • Replaced Gemini-specific Type.OBJECT schemas with Zod schemas (Output.object())
  • Generalized keychain storage to support provider ID, model ID, and API key
  • Adaptive chunking now works across all providers (not just Gemini)
  • Response includes model field showing which model produced the response
  • --set-key is now a deprecated alias for --setup

Removed

  • Legacy GEMINI_API_KEY credential and backward-compatibility fallback
  • Direct dependency on @google/genai for LLM calls (kept for File API uploads only)

Installation

See README for installation instructions.

Checksums

See checksums.txt for SHA256 checksums.

v0.2.0

03 Mar 20:17
a625244

Choose a tag to compare

Added

  • OS-native credential storage for Gemini API key (macOS Keychain, Linux secret-tool, Windows Credential Manager)
  • --set-key CLI command to store/update the API key interactively
  • Install scripts prompt to store the API key during installation
  • Install scripts detect existing stored key and ask before overwriting

Changed

  • API key is now read from the OS credential store instead of environment variables
  • Remove --env GEMINI_API_KEY from all MCP client config examples in README
  • Remove ThinkingLevel.HIGH config; Gemini now uses default dynamic thinking (auto-adjusts per query)

Removed

  • .env file auto-loading for API key
  • Environment variable GEMINI_API_KEY support (replaced by OS credential store)

Installation

See README for installation instructions.

Checksums

See checksums.txt for SHA256 checksums.

v0.1.6

02 Mar 17:15
b15f728

Choose a tag to compare

Changed

  • Upgrade Gemini model from gemini-3-pro-preview to gemini-3.1-pro-preview

Installation

See README for installation instructions.

Checksums

See checksums.txt for SHA256 checksums.

v0.1.5

02 Mar 04:22
e8f538a

Choose a tag to compare

Added

  • Library exports for programmatic use from TypeScript codebases (@intelligentelectron/pdf-analyzer/service)
  • Package exports map with ./service and ./types subpath entry points
  • Type re-exports from service.ts: AnalyzePdfInput, AnalyzePdfResponse, QueryResponse, AnalyzePdfInputSchema

Changed

  • Switch TypeScript config to module: "NodeNext" / moduleResolution: "NodeNext" for proper subpath export resolution
  • Add declarationMap for "go to definition" support in consuming projects
  • Exclude test files from compiled output

Installation

See README for installation instructions.

Checksums

See checksums.txt for SHA256 checksums.