Repository navigation
Releases: TheoOliveira/pi-jev
Releases · TheoOliveira/pi-jev
Release list
v0.7.0
Added
- Per-prompt reasoning-level control via
--jev-thinking/PI_JEV_THINKING=1//jev thinking [on|off]. Prompt intent escalates (high/xhigh) for planning, debugging, security, and review tasks and de-escalates (minimal) for short mechanical prompts. The model is never changed, so the prompt-cache identity stays fixed (#22). /jev statusand/jevusage list the new thinking mode (#22).modelSwitchCostUsd,modelStayCostUsd,hasKnownCost, andevaluateModelare exported, andModelRouteResultreportsfit,switchCostUsd, andstayCostUsdso the decision is inspectable (#24).
Changed
- Auto-model scoring is now cost-aware. The scorer previously had a single cost reference,
(model.cost?.input ?? 0) * -0.01, which mixed arbitrary capability points with dollars and left cost at roughly 0.3% of the score; four of the six profiles had no cost term at all. Candidates are now ranked by capability fit, and cost only chooses between models withinFIT_TOLERANCEof the best fit. Decision granularity is unchanged: still one decision per prompt, no new flags (#24). - Cost can no longer downgrade a capability class. An additive cost term against a bounded fit scale would let a long conversation's cache miss outweigh the entire capability range — a reasoning task could be routed to a non-reasoning model purely because the reasoning one was pricier. Keeping cost as a tie-breaker means price decides only between near-equivalent models (#24).
- Capabilities are scored only when the profile needs them. Image and URL points were credited in every profile, so a multimodal model won text-only tasks while being the most expensive option — for
debug this failing test, a $15/Mtok vision model beat an equivalent $3/Mtok text model. Hard input requirements are now filtered before scoring (#24). - Cache misses are priced with the model's real rates (
cost.input,cost.cacheRead,cost.cacheWrite) and the live prefix size fromctx.getContextUsage().tokens: switch cost isprefixTokens * (input + cacheWrite), stay cost isprefixTokens * cacheRead. Pricing tiers are applied, as pi's own cost calculation does — the bundled catalog tiers 24 models, doubling flagship rates above ~272k tokens. An omittedcostis treated as unknown rather than free (it is charged the current model's rates), while an explicit zero cost remains known and free (#24).
Fixed
- Skill matching checks requested activity and product scope rather than related topics. The skill router no longer recommends
setup-pstackfor an exhausted-model routing bug in the live regression corpus, while retaining genuine pstack configuration matches. The shared 0.65 cutoff is unchanged. Added an opt-in live replay and the investigation/evidence indocs/skill-routing-investigation.md(#21). - Jev API key source precedence aligns origin with the active key. Non-empty runtime keys set in-session properly override environment keys while preserving source attribution, and empty in-session strings safely fall back to the environment key (#20).
- URL prompt model routing detects URLs in raw prompt text. Model routing automatically routes requests containing raw URLs to URL-capable models using
promptHasUrlregex matching (#19).
Notes
- Budget-based Anthropic thinking (models without
compat.forceAdaptiveThinking) is skipped: Pi derivesbudget_tokensfrommax_tokens, which is itself derived from the level, and Anthropic keys the message cache onbudget_tokens. That claim comes from Pi's own source comment and is not verified against Anthropic's public documentation. FIT_TOLERANCEis calibrated against the fit scale: wide enough for price to act, narrower than the reasoning (+30) and image (+40) gaps so cost can never overturn a real capability difference.- When Jev is configured, a switch is additionally gated by one Noul judgment, thresholded by
requiredConfidence(switchCost). Jev supplies the probability and code owns the threshold (P > cost/value), so no dollar value is assigned to a correct answer. - The model-switch question is batched with the tool/skill questions when
/jev autois also on, so a prompt still costs one Jev request rather than two. Auto-model alone also costs one; without Jev it stays fully local and only breaks ties on cost.
Acknowledgements
Thanks to the contributors who filed issues and opened pull requests for this release:
- @armstrys — per-prompt reasoning-level control (#22) and cost-aware auto-model scoring (#24).
- @leftytennis — skill-routing false-positive fix (#21).
v0.6.0
Added
- Custom Jev-compatible endpoint support via
PI_JEV_BASE_URLorTYPESAFE_BASE_URL, including unauthenticated local servers such as Layalaya-serve. /jev statusnow shows the active Jev endpoint.- OpenCode Zen URL-aware model routing.
Fixed
pi-jev-gateruntime loading now works from package installs without dev dependencies in the caller cwd./jev statusreports the real API key origin and counts SDKinput_tokens/output_tokensusage.--jev-auto-modeland--jev-agentstake effect independently of/jev auto./jev autonow sends one Jev request per prompt as documented.
v0.5.0
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
[0.5.0] - 2026-09-20
Added
- Tool Guard: Opt-in tool call validation and anti-hallucination interceptor (
--jev-tool-guard,PI_JEV_TOOL_GUARD=1,/jev tool-guard [on|off]). Evaluates tool parameters with Jev System One to block hallucinated paths/flags and enhances error output with targeted recovery hints.
Fixed
- Safe Fallback: When Jev is unreachable or unconfigured, tool router no longer auto-activates tools blindly and reports 0 probability rather than false certainty (1.0). Skill router only surfaces keyword matches with 0 probability (closes #1: "A failed request activates three tools and reports them at probability 1.0").
- Removed outdated reference to nonexistent
/jev logininjev_evaluateerror message. - Documentation clarifies that heuristic routing (
/jev auto-model, topology fallback) executes locally without spending Jev requests.
[0.4.0] - 2026-09-18
Added
- Jev Gate CLI binary (
bin/jev-gate.js, exposed aspi-jev-gateandjev-gate) for subagent post-rungatechecks and CI/CD validation. Evaluates git diff, stdin, or files against acceptance criteria with fast System One noul probability. - Typed Jev Subagent (
agent: "jev"/agentType: "jev") handler inpi-subagentsRPC for sub-second, zero-LLM-overhead choice, score, and probability decisions inside workflows.
Fixed
/jev agents <task>now directly constructs multi-agentworkflowScripttopologies delegating to builtin agents (scout,worker,reviewer,researcher,evidence-auditor), replacing singledelegatesubagent calls.
[0.3.0] - 2026-09-17
Added
- Opt-in automatic model routing via
--jev-auto-model,PI_JEV_AUTO_MODEL=1, and/jev auto-model [on|off]. - Model profiles for fast, balanced, reasoning, long-context, and vision tasks. Selection respects scoped models and attached images.
- Provider-limit handling: quota, rate-limit, timeout, unavailable, auth, and context-limit errors are classified; retry-prone models are temporarily avoided on later prompts without loops or silent truncation.
- Opt-in Jev-guided
/compactvia--jev-compact,PI_JEV_COMPACT=1, or/jev compact on. Important tool history is retained in a custom compaction summary, with Pi's built-in summary as fail-open fallback. - Explicit agent orchestration via
/jev agents <task>and opt-in automatic orchestration via--jev-agents,PI_JEV_AGENTS=1, or/jev auto-agents on, using the installedpi-subagentsRPC.
[0.2.1] - 2026-09-17
Documentation
- Add secret store key resolution option (
~/.pi/agent/secrets/typesafe_api_key) to Setup section in README.
[0.2.0] - 2026-09-17
Added
- Dynamic evaluation command:
/jev test <prompt>(aliases/jev eval,/jev evaluate) asks the session's active model to design the Jev question schema from the user's prompt, then runs it on TypeSafe Jev./jev testalone still runs the fixed smoke test. - Automatic mode:
--jev-autoflag /PI_JEV_AUTO=1env var and/jev auto [on|off]command run one Jev routing pass before each prompt, activating tools and surfacing matching skills.
Changed
- Single activation threshold
JEV_THRESHOLD(0.65) insrc/skills.ts, used by the router, both tools,/jev skills, and auto mode./jev skillspreviously used 0.6, so manual skill search could show matches auto mode hid.
Fixed
- Router no longer offers
pi-jev's own tools as routing candidates. After/jev disable, automatic routing used to re-activatejev_find_skillandjev_evaluate. /jevsubcommands now match exactly, so/jev autofoo onand/jev skillsfooreport an error instead of silently toggling or searching./jev skillsdiscloses local heuristic fallback instead of presenting 1.00 probabilities as Jev judgments./jev statusreports where the API key came from ($TYPESAFE_API_KEYvs~/.pi/agent/secrets/typesafe_api_key) and counts only genuinely routable tools./jev helplists usage at info level instead of warn-as-unknown-command.- Router and skill fallback tests no longer depend on the machine being unconfigured.
npm run smokepasses-neso it no longer collides with an already-installedpi-jevcopy.
[0.1.1] - 2026-09-17
Added
jev_find_skilltool and/jev skills [query]command for semantic skill discovery and recommendation.
[0.1.0] - 2026-09-17
Added
- Initial public release of
pi-jevpackage for the Pi coding agent. jev_find_toolstool for semantic candidate shortlisting and additive tool activation.jev_evaluatetool exposing typed TypeSafe Jev decisions (Choice, Noul, Score)./jevslash commands (status,enable,disable,test).- Bounded TypeSafe client integration with safe error handling and usage accounting.
- Comprehensive unit test suite and CI workflows.
v0.4.0: Jev gate CLI, subagent runner & workflow delegation
Full Changelog: v0.3.0...v0.4.0
v0.3.0: Agent orchestration & Jev-guided compaction
Full Changelog: v0.2.1...v0.3.0
v0.2.1: Secret store support & bug fixes
Full Changelog: v0.2.0...v0.2.1
v0.2.0: Dynamic /jev test & opt-in auto mode
Full Changelog: v0.1.1...v0.2.0
v0.1.1: Skill Discovery Support
Added\n- jev_find_skill tool and /jev skills [query] command for semantic skill discovery and recommendation.
v0.1.0: Initial Release
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
[0.1.0] - 2026-09-17
Added
- Initial public release of
pi-jevpackage for the Pi coding agent. jev_find_toolstool for semantic candidate shortlisting and additive tool activation.jev_evaluatetool exposing typed TypeSafe Jev decisions (Choice, Noul, Score)./jevslash commands (status,enable,disable,test).- Bounded TypeSafe client integration with safe error handling and usage accounting.
- Comprehensive unit test suite and CI workflows.