Pi-mono Tier 0 #2 — sf-driven port of PR #3650. Some LLM providers reject API calls when `tools: []` is sent (an empty array), but accept the call when the tools field is omitted entirely. This guards each provider's request-body builder to omit `tools` when the tool list is empty, instead of serialising the empty array. Files (5 provider builders): - packages/pi-ai/src/providers/openai-completions.ts - packages/pi-ai/src/providers/openai-responses.ts - packages/pi-ai/src/providers/openai-codex-responses.ts - packages/pi-ai/src/providers/azure-openai-responses.ts - packages/pi-ai/src/providers/anthropic-shared.ts (covers anthropic and anthropic-vertex which both import buildParams from it) Pattern: `if (context.tools)` → `if (context.tools && context.tools.length > 0)`. Preserved: the `else if (hasToolHistory(context.messages))` branch in openai-completions.ts that intentionally emits `tools: []` for LiteLLM/Anthropic-proxy compatibility is unchanged. Type-check passes. Co-Authored-By: sf v2.75.1 (session 38ed0a48) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| daemon | ||
| mcp-server | ||
| native | ||
| pi-agent-core | ||
| pi-ai | ||
| pi-coding-agent | ||
| pi-tui | ||
| rpc-client | ||