Contributing

September 18, 2026 ยท View on GitHub

jev-starter is published but remains pre-1.0. The public API is intentionally small and may change while the decision contract and the upstream Jev SDK evolve.

Development environment

  • Node.js 20 or a newer supported LTS release;
  • pnpm 9.15.4, as pinned by packageManager;
  • no API key is needed for the normal test and evaluation workflow.

Install and run the complete offline quality gate:

pnpm install --frozen-lockfile
pnpm typecheck
pnpm lint
pnpm test
pnpm eval:offline
pnpm examples:offline
pnpm rag:offline

pnpm build and pnpm package:check verify the generated declarations, package exports, tarball contents, and a clean consumer install. pnpm pack:check is a non-publishing package preview.

Live commands

Live commands are opt-in and are not part of normal CI:

TYPESAFE_API_KEY=... pnpm eval:live
TYPESAFE_API_KEY=... pnpm examples:live
TYPESAFE_API_KEY=... pnpm rag:live

Do not put API keys in fixtures, source files, reports, logs, or pull requests. The live commands fail before making a request when TYPESAFE_API_KEY is missing.

Change boundaries

  • Keep transport, authentication, retry, and HTTP behavior in the official SDK.
  • Keep business side effects in the host application; examples return recommendations only.
  • Preserve the complete typed answer map and its probabilities in outcomes and offline reports.
  • Do not add raw state to observability events by default.
  • Add or update deterministic tests for contract, provider, policy, and report changes.
  • Use the repository's existing pnpm and Biome configuration.

Please explain any intentional contract or upstream compatibility change in the pull request and update the relevant documentation and changelog entry.