Repository navigation
Releases
1.0.19 — Package version bump
Summary
This release is a metadata-only update that bumps the package version to 1.0.19.
Changes
- Version bump:
package.jsonupdated from a1.0.19-dev.0development version to the final1.0.19release version.
Impact
- Users: No runtime or behavior changes. Installing
@kjerneverk/execution-gemini@1.0.19should be functionally identical to the prior build, aside from the published version identifier. - Developers: No code, build, or dependency changes beyond the version field update.
Breaking changes
- None detected (only a
package.jsonversion change).
1.0.18: Fix publish workflow by ignoring package-lock and tracking KodrDriv config
Summary
This release is focused on repository/publish hygiene rather than runtime behavior: it stabilizes publishing by ensuring package-lock.json is not tracked/committed and by committing the KodrDriv publish configuration that enforces that policy.
There are no functional/API changes to the library itself in this release.
Changes
Publishing / repo hygiene
- Stop tracking and committing
package-lock.json.package-lock.jsonis now gitignored.- CI already performs installs without a committed lockfile (and explicitly removes any existing lockfile before installing).
- Track KodrDriv publish configuration in the repo.
.kodrdriv/config.yamlis now committed (while other.kodrdriv/*files remain ignored).- KodrDriv is configured with
publish.lockfilePolicy: ignoreto avoid publish failures caused by a dirty lockfile during pre-publish steps.
Versioning
- Package version bumped to 1.0.18.
Impact
- Users: No runtime or API changes expected.
- Developers/maintainers:
- Do not commit
package-lock.json; local installs may generate it, but it should remain untracked. - Publishing should be more reliable because the workflow no longer fails due to lockfile changes that aren’t part of the release.
- Do not commit
Breaking changes
- None detected in code or public API for this release. The main change is repository policy (lockfile is no longer committed).
1.0.17: Package version bump (no code changes)
Summary
This release contains no functional or code changes. It updates package metadata to publish version 1.0.17.
Changes
- Chore: Bumped
package.jsonversion to1.0.17(from the previous1.0.16onmain; an intermediate1.0.17-dev.0bump occurred during the release process).
Impact
- Users: No runtime behavior changes; upgrading should be low risk.
- Developers: No API changes; no build/test/lint changes.
Breaking changes
- None detected.
1.0.16: Package version bump (no code changes)
Summary
This release is a packaging/metadata update only. There are no functional code changes from main to HEAD.
Changes
- Bumped
@kjerneverk/execution-geminipackage version to 1.0.16 (package.json).- The release branch included an intermediate
1.0.16-dev.0version bump commit, followed by the final1.0.16release bump.
- The release branch included an intermediate
Impact
- Users: No runtime behavior changes expected.
- Developers/Maintainers: Only version metadata changed; build/test behavior and dependencies are unchanged in this release range.
Breaking changes
- None detected (and no API/code changes were included in this release).
1.0.15 — Package version bump (no functional changes)
Summary
This release contains no code or dependency changes relative to main. It only updates the package version metadata to 1.0.15.
Changes
- Packaging
- Bumped
package.jsonversion to 1.0.15.
- Bumped
Impact
- Users: No runtime behavior changes. Upgrading from
main(orv1.0.14) to1.0.15should be risk-free and should not require any code changes. - Developers/Maintainers: Release-only change; intended to publish the next stable version.
Breaking changes
- None detected.
1.0.14
Summary
This release is a packaging-only update: it bumps the published package version to 1.0.14 with no functional/code changes.
Changes
- Packaging
- Updated
package.jsonversion from 1.0.13 to 1.0.14.
- Updated
Impact
- Users: No runtime behavior changes. Upgrading from
1.0.13to1.0.14should be risk-free and require no code updates. - Developers/Maintainers: No dependency, build, or test changes in this release.
Breaking changes
- None detected.
1.0.13: Stop tracking `package-lock.json` and enforce lockfile ignore policy
Summary
This release is primarily repository hygiene and release housekeeping. There are no functional/runtime code changes to the Gemini execution provider itself.
Changes
Release/versioning
- Bumped package version to 1.0.13 in
package.json.
Dependency/lockfile policy
- Removed
package-lock.jsonfrom the repository and updated.gitignoreto ignore:package-lock.json.kodrdriv*artifacts (including.kodrdriv*package-lock.json)
This aligns the repo with a “do not commit lockfiles” policy.
Impact
For library consumers
- No API or behavior changes expected from this release (no source changes were included in the diff).
- Installation should continue to work normally via npm; you’ll simply no longer see a lockfile committed in this repo.
For contributors/maintainers
- Do not commit
package-lock.jsongoing forward; it is now intentionally ignored. - If you had automation or checks that depended on a tracked lockfile, update them to reflect that lockfiles are not part of the repo state.
Breaking changes
- No breaking changes to the public library API were detected in this release.
- Workflow note (repo policy change): projects or processes expecting
package-lock.jsonto be present in the repository will need adjustment.
1.0.12 — Migrate Gemini client to `@google/genai`, improve proxy support, and harden secret/error handling
Main changes
Gemini SDK migration (@google/generative-ai → @google/genai)
This release moves the provider implementation to Google’s unified GenAI SDK (@google/genai) and updates the request/response plumbing accordingly.
What this means in practice:
- Requests now use
GoogleGenAIand the newermodels.generateContent/chats.create(...).sendMessage(...)APIs. - Multi-turn conversations are handled by building chat history and sending the final user message via a chat session when appropriate.
- Token usage is reported from the new SDK’s
usageMetadatafields.
Structured output via JSON Schema: compatibility handling
When request.responseFormat?.type === 'json_schema', the provider now:
- Sets
responseMimeType = 'application/json' - Supplies
responseJsonSchema, after stripping fields that Gemini’s schema support doesn’t accept (currently removingadditionalPropertiesand$schema, and applying the same cleanup recursively to nestedproperties/items)
This reduces failures when passing “full” JSON Schemas commonly produced by validators/tools.
Proxy support for SDK traffic (via global fetch override during calls)
Because @google/genai uses the global fetch, proxying is implemented by temporarily replacing globalThis.fetch for the duration of the API call:
- Reads proxy URL from
HTTPS_PROXY,HTTP_PROXY(and lowercase variants) - Respects
NO_PROXY/no_proxyhostname bypass rules (including*and domain suffix matching) - Respects
NODE_TLS_REJECT_UNAUTHORIZED=0to disable TLS verification in the proxy agent
If a proxy is configured, Gemini requests are routed through undici’s ProxyAgent; otherwise, normal execution is used.
Secret and error sanitization
The provider now proactively guards against API key leakage:
- Registers Gemini API key patterns with
@utilarium/offrecord - Uses
@utilarium/spotcleanto sanitize thrown errors (including optional stack trace sanitization in production)
This is intended to prevent accidentally logging or propagating Gemini API keys in error messages.
Dependency and tooling updates
- Adds/uses
@google/genai(runtime dependency) - Adds/uses
@utilarium/offrecordand@utilarium/spotclean(runtime dependencies) - Lockfile and dev dependency refresh (eslint/typescript/vitest/vite, etc.)
- Docs updated (
README.md,guide/index.md) to reflect the new SDK and current model families
Breaking changes / important considerations
Potential breaking: Gemini SDK dependency change
If your application depended (directly or indirectly) on the older Gemini SDK (@google/generative-ai) behavior, note that this package now targets @google/genai. You should:
- Ensure
@google/genaiis available/resolvable in your environment - Revalidate any assumptions about response fields and token usage reporting
Important: proxy implementation temporarily overrides globalThis.fetch
Proxy support works by swapping the global fetch inside withProxyFetch(...) and restoring it in a finally block. While scoped to the execution call, it is still a global side effect and may matter in highly concurrent environments that also rely on a custom global fetch.
Files/themes touched
- Provider implementation:
src/index.ts(SDK migration, JSON schema prep, safer errors) - Proxying:
src/proxy.ts(NO_PROXY support, TLS handling,fetchoverride approach) - Docs:
README.md,guide/index.md - Build/tests:
vite.config.ts,tests/index.test.ts - Deps:
package.json,package-lock.json
1.0.11 — Packaging metadata + prerelease publish hardening
Main story
This release focuses on making publishing and dependency management more reliable and repeatable. It hardens prerelease publish validation, updates package/dependency metadata, and begins tracking the npm lockfile to keep installs deterministic.
Changes
Publish & release process reliability
- Hardened prerelease publish prechecks so prerelease validation and policy checks behave consistently.
- Added
publishConfig.tag: devinpackage.jsonto ensure prerelease publishes go to the expected npm dist-tag (helps avoid accidental publication tolatestand aligns automation with prerelease workflows). - Committed
package-lock.json(large addition) to make installs reproducible across CI and developer machines and to support lockfile-based checks.
Note: the lockfile currently contains a
1.0.11-dev.0version string internally, reflecting how it was generated during prerelease work. The release version for this build is 1.0.11 (as inpackage.json).
Dependency & metadata updates
- Updated
package.jsonmetadata and bumped dependency/devDependency versions (notably tooling like TypeScript, ESLint, Vite, Vitest, and Node types), aligning the project with newer toolchain releases.
Repo hygiene
- Minor
.gitignorecleanup (1-line change).
Impact
For users (consumers of the package)
- No functional runtime behavior changes were introduced in this range; this release is primarily packaging and tooling related.
- Dependency updates may change your transitive dependency tree slightly (via updated resolutions), but the public API/behavior is not targeted here.
For developers (contributors/maintainers)
- More predictable installs due to the committed lockfile.
- More robust prerelease publishing and automation due to explicit npm tagging and stricter prechecks.
Breaking changes
- None identified from
maintoHEADin this release.
1.0.10 — Proxy support for Gemini API requests
Main changes
Proxy support for Gemini API requests
Gemini API calls can now be routed through an HTTP(S) proxy when proxy environment variables are set. This is primarily for environments where outbound traffic must go through a corporate proxy.
What it does
- Detects proxy configuration from standard environment variables:
HTTPS_PROXY/https_proxyHTTP_PROXY/http_proxy
- Routes requests through the proxy using
undici’sProxyAgent. - Respects proxy bypass lists via:
NO_PROXY/no_proxy(comma-separated, supports*, exact host matches, and domain suffix matches like.example.com)
- Respects TLS verification configuration via:
NODE_TLS_REJECT_UNAUTHORIZED- TLS verification is only disabled when
NODE_TLS_REJECT_UNAUTHORIZED='0'; otherwise TLS verification remains enabled.
Important implementation detail
- The
@google/generative-aiSDK does not expose a way to provide a customfetch, so this package temporarily replacesglobalThis.fetchonly for the duration of the Gemini call when a proxy is configured. - If no proxy environment variable is set, behavior is unchanged (no fetch override).
Impact
- Users behind proxies can use the provider without custom networking workarounds.
- Users who rely on a custom
globalThis.fetchshould be aware that it will be temporarily overridden during Gemini requests when a proxy is enabled.
Versioning / packaging
package.jsonversion bumped to 1.0.10.
Breaking changes
- No explicit breaking changes were detected in the diff.
- Operational note (behavioral consideration): when proxying is enabled,
globalThis.fetchis temporarily replaced during request execution. If your application depends on a customized global fetch implementation, validate behavior in your environment.
How to use
Set environment variables before running:
- Proxy routing:
HTTPS_PROXY=http://proxy.company:8080(orHTTP_PROXY=...)
- Bypass proxy for certain hosts:
NO_PROXY=localhost,127.0.0.1,.internal.company
- (Optional) disable TLS verification (not recommended except for controlled debugging):
NODE_TLS_REJECT_UNAUTHORIZED=0