Releases: IntelligentElectron/pdf-analyzer
Releases · IntelligentElectron/pdf-analyzer
v1.2.4
Fixed
- HTTP
/analyzeendpoint now validates request bodies against the sameAnalyzePdfInputSchemaused by the MCP path. Previously a hand-rolled truthy check accepted malformedpdf_sourcevalues (numbers, objects, etc.), which then crashed insidevalidateLocalPathwithCannot read properties of undefined (reading 'trim'). Malformed bodies now return400with zod's path-aware error details. (#42)
Changed
src/types.tsexports a sharedAnalyzePdfInputShapeconsumed by both the MCP tool registration and the HTTP/analyzehandler, eliminating the duplicated inline schema definitions.
Installation
See README for installation instructions.
Checksums
See checksums.txt for SHA256 checksums.
v1.2.3
Added
anthropicandanthropic-vertexproviders now exposeclaude-opus-4-7as the default flagship model.claude-opus-4-6remains selectable viaPDF_ANALYZER_MODEL.- Cloud Run deployment supports all five providers (
google-vertex,anthropic-vertex,google,anthropic,openai) via a singlePDF_ANALYZER_PROVIDERknob; direct-API providers read their key from Secret Manager at runtime.
Fixed
analyzePdfno longer crashes when ags://source falls back to chunked processing. The chunking branch now handles thebytessource kind via a new exhaustiveresolveSourceByteshelper.- MCP Streamable HTTP: the
/mcproute 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 viagcloud run services proxylocally. - 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; seedeploy/README.mdfor 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
.gitignorehardened 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
Added
- Vertex AI service account JSON key authentication in
--setupflow - Google Vertex AI and Anthropic via Vertex AI as first-class setup options
- Auto-detection of
GOOGLE_APPLICATION_CREDENTIALSenvironment variable during setup - Keychain storage for Vertex credentials (project, location, key file path)
Fixed
/analyzeendpoint 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
Changed
- Refactored LLM call logic into shared
callLlmhelper, 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
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_pdftool (unnecessary: stdio reads local files, HTTP accepts URLs andgs://URIs)src/storage.tsmodule (only used byupload_pdf)
Installation
See README for installation instructions.
Checksums
See checksums.txt for SHA256 checksums.
v1.0.1
v1.0.0
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/genaiSDK to Vercel AI SDK V6 for provider abstraction - Replaced Gemini-specific
Type.OBJECTschemas 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
modelfield showing which model produced the response --set-keyis now a deprecated alias for--setup
Removed
- Legacy
GEMINI_API_KEYcredential and backward-compatibility fallback - Direct dependency on
@google/genaifor LLM calls (kept for File API uploads only)
Installation
See README for installation instructions.
Checksums
See checksums.txt for SHA256 checksums.
v0.2.0
Added
- OS-native credential storage for Gemini API key (macOS Keychain, Linux secret-tool, Windows Credential Manager)
--set-keyCLI 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_KEYfrom all MCP client config examples in README - Remove
ThinkingLevel.HIGHconfig; Gemini now uses default dynamic thinking (auto-adjusts per query)
Removed
.envfile auto-loading for API key- Environment variable
GEMINI_API_KEYsupport (replaced by OS credential store)
Installation
See README for installation instructions.
Checksums
See checksums.txt for SHA256 checksums.
v0.1.6
v0.1.5
Added
- Library exports for programmatic use from TypeScript codebases (
@intelligentelectron/pdf-analyzer/service) - Package
exportsmap with./serviceand./typessubpath 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
declarationMapfor "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.