Oh My Pi 17.1.7: beforeToolCall hook timing, 403 credential rotation, Kimi-K3 support, tool_call argument revision
Oh My Pi 17.1.7 ships changes across all packages. @oh-my-pi/pi-agent-core moves beforeToolCall to a pre-dispatch prepare phase where it can replace tool arguments. @oh-my-pi/pi-ai rotates through sibling credentials on 403 responses instead of failing. @oh-my-pi/pi-catalog adds Kimi-K3 and kimi-k3-fast model support. @oh-my-pi/pi-coding-agent adds a TTSR rule for local isRecord definitions, lets tool_call handlers return input to revise arguments, adds macOS sample(1) and V8 .cpuprofile parsers to the read tool, unifies xd:// and direct dispatch under one tool map, and adds a /vision slash command.
@oh-my-pi/pi-agent-core
beforeToolCallnow runs during arg-prep in a pre-dispatch prepare phase (before message_start/message_end, concurrency resolution, tool_execution_start, telemetry, and tool.execute) instead of inside the scheduled execution slot. Receives the resolved tool; may returnargsto replace call arguments (revalidated against schema, written back to the assistant message).- Argument validation moved into the same prepare phase, so concurrency resolvers see validated (and possibly revised) arguments.
- The hook receives the run's request abort signal rather than the per-tool signal.
@oh-my-pi/pi-ai
- Upstream 403 Forbidden responses (Anthropic permission_error, Copilot model-policy rejections) now rotate through sibling credentials like usage limits do, instead of failing the session on the first denied account. The denied credential is soft-blocked for 60s and re-validated.
- Usage report filtering in the auth-broker remote store is memoized per (reports, snapshot) with a precomputed per-provider OAuth credential map.
- Cursor and Devin Connect-frame readers no longer copy every stream chunk through Buffer.concat when the pending buffer is empty.
@oh-my-pi/pi-catalog
- Added moonshotai/Kimi-K3 and kimi-k3-fast models.
- Added umans-kimi-k3 prerelease model configuration.
- Updated pricing and token limits for selected models.
@oh-my-pi/pi-coding-agent
- Added
ts-no-local-is-recordTTSR rule that catches localisRecordfunction/lambda definitions. tool_callhandlers (extension or hook) can now returninputto revise tool arguments (not just block). Revalidated against schema; concurrency scheduling, transcripts, and approval gates observe the revised version.- Added macOS
sample(1) parser: reads return a compact bottleneck summary with per-thread hot paths, demangled symbols, recursion flattening, and a top-functions-by-self-samples table. - Added V8
.cpuprofileparser: reads return a compact bottleneck summary with hot-path call tree, collapsed pass-through chains, and top-functions-by-self-time table. - Direct and
xd://dispatch now share one canonical tool map:write xd://<tool>andread xd://<tool>work for any enabled tool. - Session listing caches parsed headers keyed on file stat identity (mtime + size).
- Reduced per-keystroke editor dispatch overhead.
xd://device docs now render parameters as comment-annotated TypeScript types instead of raw JSON Schema.- Added
/vision [on|off|auto|status]slash command for session-scoped control of theinspect_imagevision-delegation tool. - Replaced
inspect_image.enabledboolean with tri-stateinspect_image.mode(auto|on|off, default auto).
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.