Oh My Pi v17.1.6: pre-model-call budget gate, SiliconFlow providers, Advisor cost visibility
Adds a pre-model-call gate (beforeModelCall) that lets hosts refuse a request before the provider is called (budget, prompt size, handoff). SiliconFlow and SiliconFlow (China) join the built-in API-key login providers with live model discovery. The coding agent adds separate Advisor cost visibility to the status line, makes the task tool's per-spawn effort parameter opt-in, and caps it via task.maxEffort. Steering interjections are now wrapped in a <system-notice> instead of a nested tag pair. Multiple MCP resource URI resolution gaps are fixed.
@oh-my-pi/pi-agent-core
- Added
AgentLoopConfig.beforeModelCallgate: receives the finalized provider context and run abort signal, may return{ stop: true, reason? }to end the run before the provider is called Agent.setBeforeModelCallinstalls the host callback;Agent.addBeforeModelCallregisters an additional one without displacing it and returns a disposer- Input message events (prompt, steering, soft reminders) are now emitted once provider-context preparation succeeds, so a pre-model gate can veto before any turn opens
@oh-my-pi/pi-ai
- Added
getProxyForUrl()for transports needing provider-specific proxy environment resolution withNO_PROXYsupport - Added SiliconFlow and SiliconFlow (China) to the built-in API-key login provider catalog
@oh-my-pi/pi-catalog
- Added SiliconFlow providers (
siliconflow,siliconflow-cn) with dynamic-only OpenAI-compatible model discovery;SILICONFLOW_API_KEY/SILICONFLOW_CN_API_KEYenvironment variables wired intogetEnvApiKey
@oh-my-pi/pi-coding-agent
- Added separate Advisor cost visibility to the status line (
$2.67 (sub) + $0.41 (adv)) - Made task tool's per-spawn
effortparameter opt-in throughtask.enableEffort(defaults to false) - Added
task.maxEffortto cap the task tool's optional per-spawn effort hint - Restructured steering/interjection envelope: user text now wrapped in
<system-notice>+ raw message instead of<user_interjection><message> - Fixed disabled higher-priority MCP server no longer disabling a same-named lower-priority one
- Fixed MCP tool-name collision winner flipping when the current owner reconnects
- Fixed MCP resources with custom URI schemes being treated as missing filesystem paths
- Fixed three native MCP resource URI resolution gaps (trailing slash, opaque URIs, failing template list)
- Fixed custom LSP servers sending
languageId: "plaintext"by honoring optional per-serverlanguageIdinlsp.json - Fixed interactive extension confirmations ignoring
dialogOptions
COMMUNITY
No curated reactions recorded for this event. Facts and takes are kept in separate layers — community context is added by hand, never blended into the record above.