Releases: jerome-benoit/sap-ai-provider
v4.7.1 - Bug Fixes & Improvements
Release Date: 2026-06-05
Type: Patch - Bug Fixes & Improvements
Summary
Adds orchestration fallback module configuration support, aligns document grounding and content filtering examples with the SAP AI SDK 2.11 surface, corrects SAP SDK authentication architecture documentation, and includes dependency maintenance updates since v4.7.0.
Quality: 1285/1285 tests passing | All quality gates passed
Installation:
- V3:
npm install @jerome-benoit/sap-ai-provider@4.7.1 - V2:
npm install @jerome-benoit/sap-ai-provider-v2@4.7.1
Improvements
Orchestration Configuration
- feat(orchestration): Support
fallbackModuleConfigsas ordered fallbackOrchestrationModuleConfigentries for locally built orchestration configurations- The provider sends the primary prompt module configuration first, followed by fallback entries in user-provided order
fallbackModuleConfigsare treated as Orchestration-only settings and are rejected when Foundation Models API is selected- When
orchestrationConfigRefis set,fallbackModuleConfigsare ignored with the same warning flow as other local module settings because the stored configuration owns the module list
Bug Fixes
Examples
- fix(examples): Align document grounding placeholders with SAP AI SDK semantics
- Grounding
placeholders.inputandproviderOptions['sap-ai'].placeholderValuesnow use bare names such asgroundingRequest - SAP template syntax such as
{{?groundingRequest}}and{{?groundingOutput}}is kept only in prompt text
- Grounding
- fix(examples): Harden SAP API error parsing in content filtering and document grounding examples
- Malformed or non-JSON
APICallError.responseBodyno longer throws a secondary error from the example catch handler
- Malformed or non-JSON
Documentation
- fix(docs): Correct architecture documentation to reflect SAP AI SDK / SAP Cloud SDK credential discovery, token acquisition, token caching, and token refresh responsibilities
- fix(docs): Replace unsafe empty-catch error parsing snippet with guarded SAP response-body parsing in the API reference
Documentation
- Documented
fallbackModuleConfigsin settings, API-specific options, andorchestrationConfigRefignored-module behavior - Added a content filtering example entry and linked it from README / API reference
- Documented Orchestration API file-part conversion behavior and Anthropic prompt-cache usage caveats
- Refreshed document grounding snippets to use SAP AI SDK 2.11 placeholder naming consistently
Testing
- Added validation coverage for
fallbackModuleConfigsas an Orchestration-only option - Added API-switching coverage for
fallbackModuleConfigsconflicts when switching from Orchestration to Foundation Models - Added runtime warning coverage for
fallbackModuleConfigsignored byorchestrationConfigRef
Dependency Updates
- chore(deps): Update all non-major dependencies (#136, #137, #138)
- chore(deps): Lock file maintenance (#139)
- chore(sandcastle): Install Codex CLI in the sandcastle Docker image
- chore(deps): Update
@ai-hero/sandcastleto ^0.6.6 and drop patch-package
Quality Assurance
- ✅ TypeScript strict mode: 0 errors
- ✅ ESLint: 0 errors / 0 warnings
- ✅ Tests: 1285/1285 passing (100%)
- ✅ Build V3: ESM + CJS + DTS verified
- ✅ Build V2: ESM + CJS + DTS verified
- ✅ Node.js + Edge runtime tests passing
Installation
# V3 Package (LanguageModelV3/EmbeddingModelV3)
npm install @jerome-benoit/sap-ai-provider@^4.7.1 ai
# V2 Package (LanguageModelV2/EmbeddingModelV2)
npm install @jerome-benoit/sap-ai-provider-v2@^4.7.1 aiCompatibility: Node.js 20+, AI SDK 5.0+ / 6.0+
Full Changelog: v4.7.0...v4.7.1
v4.7.0 - New Features & Improvements
Release Date: 2026-05-28
Type: Minor - New Features & Improvements
Summary
Integrates the @sap-ai-sdk 2.10 → 2.11 surface: Anthropic prompt caching end-to-end, unified requestId resolution across language and embedding paths, expanded SDK 2.11 token-usage details via usage.raw, deprecation warning for the legacy masking_providers shape, and Foundation Models stream metadata parity. Also extracts the stream transformer into a dedicated module and integrates autofix.ci for PR formatting.
Quality: 1282/1282 tests passing | All quality gates passed
Installation:
- V3:
npm install @jerome-benoit/sap-ai-provider@4.7.0 - V2:
npm install @jerome-benoit/sap-ai-provider-v2@4.7.0
Features
Message Content
- feat(messages): Forward Anthropic
cacheControlon user / system / assistant text / tool-result message parts and tool definitions (#132, closes #133)- Per-part
providerOptions['sap-ai'].cacheControlhonored by the orchestration API; Foundation Models ignores it - Surfaced via the SAP envelope
cache_controlfield on the matching SDK shapes
- Per-part
Response Metadata
- feat(strategy): Unify
providerMetadata.requestIdsource across language and embedding paths via sharedextractMetadatahook onBaseLanguageModelStrategy(#132) - feat(orchestration): Surface Anthropic
cacheUsage(ephemeral_5m_input_tokens,ephemeral_1h_input_tokens) ondoGenerateand stream finish (#132) - feat(embeddings): Surface request id and response headers via
providerMetadata(#132, closes #71) - feat(foundation-models): Surface request id and response headers in stream and generate paths (#132, closes #73)
- feat(strategy-utils): Map
tool_useandguardrail_intervenedraw finish reasons totool-calls/content-filter(#132)
Usage Details
- feat(strategy-utils): Surface SDK 2.11 token detail fields (audio, accepted-prediction, rejected-prediction) via
usage.rawwhen the SDK reports fields not represented ininputTokens/outputTokens(#132)- Preserved on stream finish events (parity with
doGenerate)
- Preserved on stream finish events (parity with
Embedding Masking
- feat(validation): Warn when
settings.maskinguses the deprecatedmasking_providersshape (removal date 2027-03-20) (#132)- Emitted on both LM and embedding orchestration paths via shared
validateMaskingProvidersDeprecation
- Emitted on both LM and embedding orchestration paths via shared
- feat(settings): Accept the new SDK 2.11
masking.providersshape alongside the deprecated form (#132)
Bug Fixes
Streaming
- fix(stream-transformer): Preserve
usage.rawon stream finish (was silently dropped) (#132) - fix(streaming): Symmetrize stream finish
providerMetadatawithdoGenerate(cacheUsage,requestId,intermediateFailures) (#132)
Serialization & Error Handling
- fix(strategy-utils): Preserve
bigintpayloads insanitizeAsJSON*helpers via decimal-string replacer (#132) - fix(error): Handle Web
Headersinstances innormalizeHeadersviainstanceof+forEach; lower-case keys for case-insensitive lookup (#132)
Improvements
Workflow Consistency
- feat(ci): Integrate autofix.ci for automatic formatting fixes on PRs (#113, resolves #108)
- chore(automation): Integrate sandcastle for automated maintenance workflows (#104, #111, #121)
Lint Pipeline
- chore: Add lefthook for pre-commit and pre-push git hooks
Refactoring
Code Organization
- refactor(streaming): Extract stream transformer into dedicated
src/stream-transformer.tsmodule with tighter type safety and error handling - refactor(messages): Extract
wrapAsTextContenthelper and cache theparsePartProviderOptionsclosure (#132)
Code Architecture
- refactor(strategy): Introduce
extractMetadatahook onBaseLanguageModelStrategyandresolveWarningshook onBaseEmbeddingModelStrategy(#132)
Strategy Utilities
- refactor(strategy-utils): Extract
extractCompletionId,computeNoCache, andparseSAPPartProviderOptionshelpers (#132)
Code Quality
- refactor(validation): Rename
pushDeprecatedMaskingProvidersWarningtovalidateMaskingProvidersDeprecationand widen signature to{ masking?: unknown }(#132)
Documentation
- Documented Anthropic prompt caching surface — input shape, supported parts (user / system / assistant / tool-result / tool definition), and example
- Documented
providerMetadatafield semantics including"unknown"finishReasonfallback andcacheUsagezero-key preservation - Refreshed capability /
requestId/cacheUsage/ embedding /cacheControlsections inAPI_REFERENCE.md - Renamed
LICENSE.mdtoLICENSEand aligned with the official Apache 2.0 text (#131)
Internal
- chore: Add Zed editor project settings
- revert: Remove invalid
workflowspermission
Dependency Updates
- chore(deps): Update Node.js to v24.16.0 (#128)
- chore(deps): Update
@ai-hero/sandcastleto ^0.6.5 (#115, #126, #134) - chore(deps): Update
eslintto ^10.4.0 (#120) - chore(deps): Update
eslint-plugin-jsdocto v63 (#127) - chore(deps): Update
tsxto ^4.22.1 (#122) - fix(deps): Update all non-major dependencies (#112, #116, #130)
- chore(deps): Update all non-major dependencies (#118, #119, #124, #125)
- chore(deps): Lock file maintenance (#105, #117, #123, #129)
Quality Assurance
- ✅ TypeScript strict mode: 0 errors
- ✅ ESLint: 0 errors / 0 warnings
- ✅ Tests: 1282/1282 passing (100%)
- ✅ Build V3: ESM + CJS + DTS verified
- ✅ Build V2: ESM + CJS + DTS verified
- ✅ Node.js + Edge runtime tests passing
Installation
# V3 Package (LanguageModelV3/EmbeddingModelV3)
npm install @jerome-benoit/sap-ai-provider@^4.7.0 ai
# V2 Package (LanguageModelV2/EmbeddingModelV2)
npm install @jerome-benoit/sap-ai-provider-v2@^4.7.0 aiCompatibility: Node.js 20+, AI SDK 5.0+ / 6.0+
Full Changelog: v4.6.9...v4.7.0
v4.6.9 - Bug Fixes
Release Date: 2026-05-03
Type: Patch - Bug Fixes
Summary
Fix streaming tool call ID mismatch on Gemini-on-Vertex where tool-input-start was emitted with a placeholder ID before the real ID arrived, violating the Vercel AI SDK v3 stream contract.
Quality: 1128/1128 tests passing | All quality gates passed
Installation:
- V3:
npm install @jerome-benoit/sap-ai-provider@4.6.9 - V2:
npm install @jerome-benoit/sap-ai-provider-v2@4.6.9
Bug Fixes
Streaming
- fix(streaming): Defer
tool-input-startuntil real tool call ID is available (#103)- When Gemini-on-Vertex splits
function.nameandidacross separate chunks,tool-input-startwas emitted with placeholdertool_0causing ID mismatch with subsequenttool-input-deltaevents ToolCallInProgress.idis nowstring | undefined— no placeholder IDstool-input-startgates on bothtoolNameANDidbeing non-empty strings- ID is immutable once set (first real value wins)
- Buffered arguments replayed as
tool-input-deltaafter deferred start emission - Fallback UUID generated in flush/finishReason paths when API never provides an ID
- Extracted
emitToolInputStarthelper to prevent drift between 3 emission sites
- When Gemini-on-Vertex splits
Refactoring
Code Organization
- refactor(tests): Use function overloads for
getLastEmbedCallForApi
Internal
- fix(lint): Suppress false-positive
jsdoc/require-jsdocon function overload implementation - fix(lint): Resolve all ESLint
no-unnecessary-type-assertionerrors - chore: Update openspec skills and add package-lock.json to
.opencode/.gitignore - chore: Replace agent instruction indirections with symlinks to canonical source
- chore: Update package-lock.json (uuid 11.1.0 → 11.1.1)
- chore(docs): Remove stale DEBUG env var reference and update openspec source structure
- docs: Harmonize agent instructions with actual project state
- docs: Remove redundant SAP SDKs line in openspec config
Dependency Updates
- fix(deps): Update dependency zod to ^4.4.2 (#102)
- fix(deps): Update all non-major dependencies (#101)
- fix(deps): Update all non-major dependencies (#100)
- fix(deps): Update all non-major dependencies (#95)
- chore(deps): Update all non-major dependencies (#98)
- chore(deps): Update dependency typescript-eslint to ^8.59.0 (#97)
- chore(deps): Lock file maintenance (#99)
- chore(deps): Lock file maintenance (#96)
- chore(deps): Update all non-major dependencies (#94)
- chore(deps): Update dependency typescript-eslint to ^8.58.2 (#92)
- chore(deps): Lock file maintenance (#91)
- chore(deps): Update all non-major dependencies (#90)
- chore(deps): Update all non-major dependencies (#89)
- chore(deps): Update all non-major dependencies (#88)
Quality Assurance
- ✅ TypeScript strict mode: 0 errors
- ✅ ESLint: 0 errors, 0 warnings
- ✅ Tests: 1128/1128 passing (100%)
- ✅ Build V3: ESM + CJS + DTS verified
- ✅ Build V2: ESM + CJS + DTS verified
- ✅ Node.js + Edge runtime tests passing
Installation
# V3 Package (LanguageModelV3/EmbeddingModelV3)
npm install @jerome-benoit/sap-ai-provider@^4.6.9 ai
# V2 Package (LanguageModelV2/EmbeddingModelV2)
npm install @jerome-benoit/sap-ai-provider-v2@^4.6.9 aiCompatibility: Node.js 20+, AI SDK 5.0+ / 6.0+
Full Changelog: v4.6.8...v4.6.9
v4.6.8 - Bug Fixes
Release Date: 2026-04-07
Type: Patch - Bug Fixes
Summary
Dependency maintenance release with non-major dependency updates and lock file synchronization.
Quality: 1122/1122 tests passing | All quality gates passed
Installation:
- V3:
npm install @jerome-benoit/sap-ai-provider@4.6.8 - V2:
npm install @jerome-benoit/sap-ai-provider-v2@4.6.8
Dependency Updates
- fix(deps): Update all non-major dependencies (#84)
- fix(deps): Update all non-major dependencies (#86)
- chore(deps): Update dependency typescript to v6 (#76)
- chore(deps): Update dependency vitest to ^4.1.3 (#87)
- chore(deps): Update dependency typescript-eslint to ^8.58.0 (#82)
- chore(deps): Update all non-major dependencies (#83)
- chore(deps): Lock file maintenance (#81, #85)
- chore: Lock file maintenance
Quality Assurance
- ✅ TypeScript strict mode: 0 errors
- ✅ ESLint: 0 errors, 0 warnings
- ✅ Tests: 1122/1122 passing (100%)
- ✅ Build V3: ESM + CJS + DTS verified
- ✅ Build V2: ESM + CJS + DTS verified
- ✅ Node.js + Edge runtime tests passing
Installation
# V3 Package (LanguageModelV3/EmbeddingModelV3)
npm install @jerome-benoit/sap-ai-provider@^4.6.8 ai
# V2 Package (LanguageModelV2/EmbeddingModelV2)
npm install @jerome-benoit/sap-ai-provider-v2@^4.6.8 aiCompatibility: Node.js 20+, AI SDK 5.0+ / 6.0+
Full Changelog: v4.6.7...v4.6.8
v4.6.7 - Bug Fixes
Release Date: 2026-03-29
Type: Patch - Bug Fixes
Summary
Remove suppressPrefillErrors feature that caused infinite agent loops. Keep all unrelated error handling improvements from v4.6.3–v4.6.6.
Quality: 1122/1122 tests passing | All quality gates passed
Installation:
- V3:
npm install @jerome-benoit/sap-ai-provider@4.6.7 - V2:
npm install @jerome-benoit/sap-ai-provider-v2@4.6.7
Bug Fixes
Serialization & Error Handling
- fix(error): Remove
suppressPrefillErrorsfeature- The prefill retry stripped the model's previous response (not a prefill hint), causing the agent to lose context and loop indefinitely
- Models that reject assistant message prefill now surface the error directly to callers
Quality Assurance
- ✅ TypeScript strict mode: 0 errors
- ✅ ESLint: 0 errors, 0 warnings
- ✅ Tests: 1122/1122 passing (100%)
- ✅ Build V3: ESM + CJS + DTS verified
- ✅ Build V2: ESM + CJS + DTS verified
- ✅ Node.js + Edge runtime tests passing
Installation
# V3 Package (LanguageModelV3/EmbeddingModelV3)
npm install @jerome-benoit/sap-ai-provider@^4.6.7 ai
# V2 Package (LanguageModelV2/EmbeddingModelV2)
npm install @jerome-benoit/sap-ai-provider-v2@^4.6.7 aiCompatibility: Node.js 20+, AI SDK 5.0+ / 6.0+
Full Changelog: v4.6.6...v4.6.7
v4.6.6 - Bug Fixes
Release Date: 2026-03-29
Type: Patch - Bug Fixes
Summary
Fix prefill retry that was blocked for agent prompts ending with tool results. The user-tail guard required stripped prompts to end with role: "user", which prevented retry for the common agent pattern [..., assistant (tool calls), tool (result), assistant (prefill)].
Quality: 1154/1154 tests passing | All quality gates passed
Installation:
- V3:
npm install @jerome-benoit/sap-ai-provider@4.6.6 - V2:
npm install @jerome-benoit/sap-ai-provider-v2@4.6.6
Bug Fixes
Serialization & Error Handling
- fix(retry): Remove overly restrictive user-tail guard from prefill retry
- The guard
retryPrompt.at(-1)?.role === "user"blocked retry when the stripped prompt ended withtoolrole (common agent pattern with tool calling) - Replaced with
retryPrompt.length > 0— only guard against empty prompts - If the backend still rejects the stripped prompt, the error propagates normally
- The guard
Quality Assurance
- ✅ TypeScript strict mode: 0 errors
- ✅ ESLint: 0 errors, 0 warnings
- ✅ Tests: 1154/1154 passing (100%)
- ✅ Build V3: ESM + CJS + DTS verified
- ✅ Build V2: ESM + CJS + DTS verified
- ✅ Node.js + Edge runtime tests passing
Installation
# V3 Package (LanguageModelV3/EmbeddingModelV3)
npm install @jerome-benoit/sap-ai-provider@^4.6.6 ai
# V2 Package (LanguageModelV2/EmbeddingModelV2)
npm install @jerome-benoit/sap-ai-provider-v2@^4.6.6 aiCompatibility: Node.js 20+, AI SDK 5.0+ / 6.0+
Full Changelog: v4.6.5...v4.6.6
v4.6.5 - Bug Fixes
Release Date: 2026-03-29
Type: Patch - Bug Fixes
Summary
Fix cross-API error handling for Foundation Models (Azure OpenAI) errors where code: null caused incorrect status code classification and HTTP status fallback.
Quality: 1154/1154 tests passing | All quality gates passed
Installation:
- V3:
npm install @jerome-benoit/sap-ai-provider@4.6.5 - V2:
npm install @jerome-benoit/sap-ai-provider-v2@4.6.5
Bug Fixes
Serialization & Error Handling
- fix(error): Handle Azure OpenAI error format (
code: null) in structured error type guard- Azure OpenAI returns
code: nullin error responses, which the type guard rejected (typeof null !== "number") - Accept
codeas number or nullish —getStatusCodeFromSAPErroralready handles null via its falsy check - Affects both Orchestration and Foundation Models APIs
- Azure OpenAI returns
- fix(error): Use HTTP status code from Axios response as fallback when error body code is nullish
- Previously,
code: nulldefaulted to status 500 (retryable) even when the actual HTTP response was 400 (non-retryable) convertToAISDKErrornow passesaxiosError.response.statustoconvertSAPErrorToAPICallErroras fallback
- Previously,
Refactoring
Code Quality
- refactor(error): Rename
isOrchestrationErrorResponse/findOrchestrationErrorResponsetoisStructuredErrorResponse/findStructuredErrorResponseto reflect cross-API scope - refactor(test): Align test describe names with function renames (
structured error conversion,structured error responses) - refactor(test): Add missing
isRetryableassertions and negative test for stringcodevalues
Quality Assurance
- ✅ TypeScript strict mode: 0 errors
- ✅ ESLint: 0 errors, 0 warnings
- ✅ Tests: 1154/1154 passing (100%)
- ✅ Build V3: ESM + CJS + DTS verified
- ✅ Build V2: ESM + CJS + DTS verified
- ✅ Node.js + Edge runtime tests passing
Installation
# V3 Package (LanguageModelV3/EmbeddingModelV3)
npm install @jerome-benoit/sap-ai-provider@^4.6.5 ai
# V2 Package (LanguageModelV2/EmbeddingModelV2)
npm install @jerome-benoit/sap-ai-provider-v2@^4.6.5 aiCompatibility: Node.js 20+, AI SDK 5.0+ / 6.0+
Full Changelog: v4.6.4...v4.6.5
v4.6.4 - Bug Fixes
Release Date: 2026-03-29
Type: Patch - Bug Fixes
Summary
Fix error message extraction from Axios errors wrapped in ErrorWithCause. This was preventing suppressPrefillErrors retry and degrading all error classification for HTTP errors from SAP AI Core.
Quality: 1151/1151 tests passing | All quality gates passed
Installation:
- V3:
npm install @jerome-benoit/sap-ai-provider@4.6.4 - V2:
npm install @jerome-benoit/sap-ai-provider-v2@4.6.4
Bug Fixes
Serialization & Error Handling
- fix(error): Extract
OrchestrationErrorResponsefromaxiosError.response.datainfindOrchestrationErrorResponse- The SAP AI SDK wraps HTTP errors as
ErrorWithCause→ Axios error, with the structured error body inresponse.data findOrchestrationErrorResponsewas only checking the root error object and message string — neverresponse.data- This caused
isPrefillErrorto always returnfalsefor real backend errors (the prefill message was invisible) - Also improves all error classification:
convertToAISDKErrornow extracts the real SAP error message instead of the generic Axios "Request failed with status code 400."
- The SAP AI SDK wraps HTTP errors as
Refactoring
Code Quality
- refactor(test): Harmonize expectations across
sap-ai-error.test.ts- Add missing
isRetryableassertions inconvertSAPErrorToAPICallErrortests - Move
isPrefillErrorto top-leveldescribe(independent export) - Use
as APICallErrorcast pattern consistently inconvertToAISDKErrorsection - Add fallback test for non-orchestration Axios data in
ErrorWithCause
- Add missing
Quality Assurance
- ✅ TypeScript strict mode: 0 errors
- ✅ ESLint: 0 errors, 0 warnings
- ✅ Tests: 1151/1151 passing (100%)
- ✅ Build V3: ESM + CJS + DTS verified
- ✅ Build V2: ESM + CJS + DTS verified
- ✅ Node.js + Edge runtime tests passing
Installation
# V3 Package (LanguageModelV3/EmbeddingModelV3)
npm install @jerome-benoit/sap-ai-provider@^4.6.4 ai
# V2 Package (LanguageModelV2/EmbeddingModelV2)
npm install @jerome-benoit/sap-ai-provider-v2@^4.6.4 aiCompatibility: Node.js 20+, AI SDK 5.0+ / 6.0+
Full Changelog: v4.6.3...v4.6.4
v4.6.3 - New Features & Improvements
Release Date: 2026-03-29
Type: Patch - New Features & Improvements
Summary
Add suppressPrefillErrors setting (default: true) for silent retry when LLM backends reject assistant message prefill, plus error handling improvements and dependency updates.
Quality: 1150/1150 tests passing | All quality gates passed
Installation:
- V3:
npm install @jerome-benoit/sap-ai-provider@4.6.3 - V2:
npm install @jerome-benoit/sap-ai-provider-v2@4.6.3
Features
Serialization & Error Handling
- feat(error-handling): Add
suppressPrefillErrorssetting for silent retry without assistant prefill (#80)- Default
true: automatically retries when backend rejects trailing assistant messages - Strips all trailing assistant messages and verifies prompt ends with
userbefore retry - Case-insensitive detection with dual keywords (
PREFILL_ERROR_KEYWORDS) - Opt out with
suppressPrefillErrors: falseat model settings level
- Default
Bug Fixes
Serialization & Error Handling
- fix(lint): Remove unnecessary type arguments causing circular ESLint fixes
- fix(build): Conditionally suppress
baseUrldeprecation for TS 6.0 DTS builds (tsup#1388) - fix(renovate): Add
npmInstallTwiceto fix lockfile sync on major bumps
Refactoring
Code Organization
- refactor(error): Extract
getRootError()helper to deduplicate error chain traversal (4 occurrences → 1) - refactor(error): Extract
extractSAPErrorMessage(),findOrchestrationErrorResponse(),extractErrorFields()helpers
Documentation
- Add
suppressPrefillErrorstoAPI_REFERENCE.mdsettings tables and type definitions
Platform Updates
Node.js Version
- chore(deps): Update Node.js to v24.14.1 (#77)
Internal
- chore(renovate): Switch
postUpdateOptionstonpmDedupe
Dependency Updates
- chore(deps): Update all non-major dependencies to ^4.1.2 (#79)
- chore(deps): Update dependency eslint-plugin-jsdoc to ^62.8.1 (#78)
- chore(deps): Update all non-major dependencies (#75)
- chore(deps): Lock file maintenance (#74)
- chore(deps): Lock file maintenance
Quality Assurance
- ✅ TypeScript strict mode: 0 errors
- ✅ ESLint: 0 errors, 0 warnings
- ✅ Tests: 1150/1150 passing (100%)
- ✅ Build V3: ESM + CJS + DTS verified
- ✅ Build V2: ESM + CJS + DTS verified
- ✅ Node.js + Edge runtime tests passing
Installation
# V3 Package (LanguageModelV3/EmbeddingModelV3)
npm install @jerome-benoit/sap-ai-provider@^4.6.3 ai
# V2 Package (LanguageModelV2/EmbeddingModelV2)
npm install @jerome-benoit/sap-ai-provider-v2@^4.6.3 aiCompatibility: Node.js 20+, AI SDK 5.0+ / 6.0+
Full Changelog: v4.6.2...v4.6.3
v4.6.2 - Improvements
Release Date: 2026-03-22
Type: Patch - Improvements
Summary
Propagate filename from file parts to SAP SDK FileContent and align SDKCitation type with the full SAP SDK Citation schema.
Quality: 1118/1118 tests passing | All quality gates passed
Installation:
- V3:
npm install @jerome-benoit/sap-ai-provider@4.6.2 - V2:
npm install @jerome-benoit/sap-ai-provider-v2@4.6.2
Features
File Content
- feat(messages): Propagate
filenamefrom Vercel AI SDKFilePartto SAP SDKFileContent- Passes through the optional
filenamefield for non-image file uploads, enabling server-side file identification
- Passes through the optional
Bug Fixes
Type Alignment
- fix(types): Align
SDKCitationwith SAP SDKCitationtype- Add missing
start_indexandend_indexoptional fields to match the full schema from@sap-ai-sdk/orchestration
- Add missing
Quality Assurance
- ✅ TypeScript strict mode: 0 errors
- ✅ ESLint: 0 errors, 0 warnings
- ✅ Tests: 1118/1118 passing (100%)
- ✅ Build V3: ESM + CJS + DTS verified
- ✅ Build V2: ESM + CJS + DTS verified
- ✅ Node.js + Edge runtime tests passing
Installation
# V3 Package (LanguageModelV3/EmbeddingModelV3)
npm install @jerome-benoit/sap-ai-provider@^4.6.2 ai
# V2 Package (LanguageModelV2/EmbeddingModelV2)
npm install @jerome-benoit/sap-ai-provider-v2@^4.6.2 aiCompatibility: Node.js 20+, AI SDK 5.0+ / 6.0+
Full Changelog: v4.6.1...v4.6.2