Class: TypeSafeClient - TypeSafe AI

Client for the TypeSafe AI API.

Constructors

Constructor

new TypeSafeClient(config?): TypeSafeClient;

Create a client for the TypeSafe AI API. Explicit options take precedence over environment variables, then SDK defaults. Empty or whitespace-only environment values are ignored.

Parameters

config?

TypeSafeClientConfig = {}

Returns

TypeSafeClient

Throws

The API key is missing, configuration is invalid, or the runtime is unsupported.

Properties

baseURL

readonly baseURL: string;

API root with trailing slashes removed.

defaultHeaders

readonly defaultHeaders: Readonly<Record<string, string>>;

Additional headers sent with each request.

defaultModel

readonly defaultModel: string;

Model used when a request omits model.

fetch

readonly fetch: Fetch;

HTTP fetch implementation.

logger

readonly logger: Logger;

The configured logger, filtered to logLevel.

logLevel

readonly logLevel: LogLevel;

Configured log verbosity.

models

readonly models: Models;

The models available to the account.

retry

readonly retry: RetryPolicy;

Retry settings with constructor overrides applied.

timeout

readonly timeout: number;

Timeout per attempt in milliseconds.

Methods

systemOne()

systemOne<Q>(request, options?): APIPromise<SystemOneResult<Q>>;

Answer named questions about text or structured state.

Type Parameters

Q

Q extends Questions

Parameters

request

SystemOneRequest <Q> State, questions, and an optional model override.

options?

RequestOptions = {} Per-call timeout, retry, headers, and cancellation settings.

Returns

APIPromise < SystemOneResult <Q>> Answers typed by question name and criteria, with model and token usage.

Throws

Questions are empty, or score criteria are not a list of at least two entries.

The server returns a non-2xx response after retries.

The request cannot connect or times out after retries.

The caller aborts the request.

Example

const { answers } = await client.systemOne({
  state: "I was charged twice. Please help.",
  questions: { billing: noul("Is this about billing?") },
});
console.log(answers.billing.noul);