Skip to content

Commit 0cbcd8e

Browse files
feat(check): fail closed on tools and servers in inline check payloads
A PR check runs the branch's agents in a real org, so nothing it sends may reach a real server by default. The payload builder's last pass now: - classifies every tool at a handled position (model.tools, tools:append in overrides, hook do[], same-org knowledge bases in model.toolIds): endCall/dtmf/voicemail/output are sent as written; function tools by function.name and apiRequest by name are mocked; transferCall becomes a mocked dead-server function; handoffs pass only to squad members or inline assistants; everything else (sms, sipRequest, code, mcp, integrations, unknown types) fails the build naming the tool; - fails any tool-bearing key (TOOL_BEARING_KEYS) outside those positions, so a new API field can't slip through unclassified; - replaces servers with https://vapi-gitops-ci.invalid on every assistant and function tool rather than deleting them (a deleted server falls back to the phone number's or org's), clears serverMessages, and dead-ends scenario webhook hooks; - adds a default error mock for every mocked tool to each scenario's toolMocks, replacing disabled ones, and warns about mocks that match no tool; - fails custom knowledge bases, model.knowledgeBaseId, personality tools with side effects, hook transfer actions, and cross-org query or knowledge-base tools. `toolMocks: off` skips the tool rules; `stripWebhooks: false` keeps assistant servers while tool servers are still replaced. Refs TEST-141 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1 parent d3e6a1b commit 0cbcd8e

4 files changed

Lines changed: 1178 additions & 2 deletions

File tree

0 commit comments

Comments
 (0)