Documentation

Requests

checkRequest for model, endpoint, tools, and reasoning combinations.

checkRequest() answers whether a provider request combination can be sent. It is not compile(). It does not call a model, rewrite a payload, or pick an SDK.

import { checkRequest } from "llm-abi";

const result = checkRequest({
  provider: "openai",
  model: "gpt-5.6-terra",
  endpoint: "chat-completions",
  tools: true,
});

result.coverage;
// "profiled"
result.compatibility;
// "unsupported"
result.effective.reasoningEffort;
// "medium"  (model default)

This example fails because the field was omitted. GPT-5.6 fills omitted reasoning_effort with medium.

How to read the result

Field Meaning
coverage profiled if a request profile matched; unknown if no shipped rule applies
compatibility lossless | runtime-safe | lossy | unsupported
effective Request after profile defaults. Omitted fields are not "unset"
fixes Suggested endpoint or parameter changes. Nothing is applied automatically

If no profile matches, coverage is unknown and compatibility is lossless. Treat that as unchecked, not safe to send.

GPT-5.6

Chat Completions plus function tools is compatible only when effective reasoning is none. GPT-5.6 defaults omitted reasoning_effort to medium, so omitting it is enough to fail. Responses accepts function tools with reasoning.

npx llm-abi request request.json --ci
{
  "provider": "openai",
  "model": "gpt-5.6-terra",
  "endpoint": "chat-completions",
  "tools": true
}

provider accepts openai, azure-openai, and azure. endpoint accepts chat-completions, responses, and short aliases (chat, /v1/chat/completions).

See API for the full checkRequest() field list.