@kindgi/adapter-model-openai-compat 0.1.4-rc.4 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,16 +1,35 @@
1
1
  # `@kindgi/adapter-model-openai-compat`
2
2
 
3
- OpenAI-compatible `ModelProvider` for [`@kindgi/capabilities`](../../capabilities/). Wraps the official `openai` SDK client behind the framework's provider-neutral interface and works against any endpoint that speaks the Chat Completions wire format — OpenAI, Ollama, vLLM, llama-server, LM Studio, OpenRouter, Groq, Together, Fireworks, DeepInfra, or a LiteLLM proxy. One adapter, many backends: `baseURL` selects the endpoint.
3
+ OpenAI-compatible `ModelProvider` for [`@kindgi/capabilities`](../../capabilities/). Wraps the official `openai` SDK client behind the framework's provider-neutral interface and works against OpenAI's own API and any endpoint that speaks the Chat Completions wire format — Ollama, vLLM, llama-server, LM Studio, OpenRouter, Groq, Together, Fireworks, DeepInfra, or a LiteLLM proxy. One adapter, many backends: `baseURL` selects the endpoint, and `api` the OpenAI API it speaks.
4
4
 
5
5
  ## Purpose
6
6
 
7
- Translate between the framework's `ModelCallInput` / `ModelCallResult` and a non-streaming `chat.completions.create` call:
7
+ Translate between the framework's `ModelCallInput` / `ModelCallResult` and one non-streaming call, on one of two OpenAI APIs (`api`):
8
+
9
+ - **`'responses'`** — OpenAI's Responses API (`responses.create`), the default for a `baseURL` on `api.openai.com` (and its data-residency hosts, such as `eu.api.openai.com`). OpenAI's GPT-6 models call tools only through it.
10
+ - **`'chat-completions'`** — Chat Completions (`chat.completions.create`), the default for every other `baseURL`: the format the OpenAI-compatible servers speak.
11
+
12
+ ### Chat Completions
8
13
 
9
14
  - Messages map role for role. Assistant `toolCalls` become `tool_calls` with JSON-encoded arguments; `tool` messages carry `tool_call_id`.
10
15
  - `tools` become `function` tools; `structuredOutput` becomes `response_format: { type: 'json_schema', json_schema: { name, schema, strict: true } }`; `temperature` and `maxOutputTokens` (as `max_tokens`) are sent only when set.
11
16
  - Chat Completions endpoints reject `.` in function names, so tool names are encoded `.` → `__` on send and decoded on receive (`acme.orders.lookup` ↔ `acme__orders__lookup`). Tool ids must not contain a literal `__`. Tool-call arguments that are not valid JSON decode to `{}`.
12
17
  - `finish_reason` maps `tool_calls` / `function_call` → `tool-use`, `content_filter` → `content-filter`, `length` → `length`, anything else → `stop`.
13
- - `costUsd` is computed from the matching `ModelInfo.cost`: prompt and completion tokens, each per 1K tokens. The wire format carries no pricing, so rates come from the caller.
18
+ - `costUsd` is computed from the matching `ModelInfo.cost` (`computeCost`), on both APIs. The wire format carries no pricing, so rates come from the caller (`OpenAICompatCostRates`, the names the Gemini and Anthropic adapters price with):
19
+ - prompt and completion tokens per 1K tokens (`promptUsdPer1kTokens`, `completionUsdPer1kTokens`);
20
+ - cached prompt tokens at `cachedPromptMultiplier` of the prompt rate, and cache-write tokens at `promptCacheCreationMultiplier` (each absent: the prompt rate);
21
+ - `longContext: { thresholdTokens, promptUsdPer1kTokens, completionUsdPer1kTokens }`: past the threshold (cached and cache-write prompt tokens included), the whole call bills at those rates, the cache multipliers applying to the long prompt rate;
22
+ - `dataResidencyMultiplier`: an uplift on the whole call, only when `baseURL` is a data-residency host (`eu.api.openai.com`; `isDataResidencyHost`).
23
+ A rate that isn't a finite, non-negative number is ignored. The `openai` preset carries OpenAI's GPT-6 rates. Its `longContext` applies per call, counting all of the call's input tokens (cached and cache-write ones included) past 272,000: that's how we read OpenAI's pricing page, which doesn't spell it out. These costs are estimates from published prices; the provider's invoice is authoritative.
24
+
25
+ ### Responses
26
+
27
+ - **Stateless:** every call sends the whole conversation with `store: false`, so OpenAI keeps no conversation state for it (no `previous_response_id`).
28
+ - **Input items:** `system` messages go as `developer` messages, `user` and `assistant` as messages, assistant `toolCalls` as `function_call` items, and `tool` messages as `function_call_output` items.
29
+ - **Tools and typed output:** `tools` become flat `function` tools (`strict: false`, the same `.` → `__` name encoding); `structuredOutput` becomes `text.format: { type: 'json_schema', name, schema, strict: true }`; `temperature` and `maxOutputTokens` (as `max_output_tokens`) are sent only when set.
30
+ - **The answer:** its `output_text` (its refusal when it has no text) and its `function_call` items. `incomplete` maps `max_output_tokens` → `length` and `content_filter` → `content-filter`; a `failed` response throws, naming OpenAI's error code and message.
31
+ - **Reasoning between tool calls:** a reasoning model's reasoning items (encrypted by OpenAI), with the item ids and `phase` that tie them to the message and calls after them, are carried in the first tool call's `ModelToolCall.signature` (opaque, versioned `oair1.`). When the conversation continues with the same model, they go back in their original order; for any other model, or a signature that isn't this adapter's, the turn goes back without them. A final answer's `phase` isn't carried (`ModelMessage` has no signature).
32
+ - **Usage:** `input_tokens` / `output_tokens`, with the cached, cache-write and reasoning parts reported apart when given.
14
33
 
15
34
  ## Exports
16
35
 
@@ -19,9 +38,10 @@ Translate between the framework's `ModelCallInput` / `ModelCallResult` and a non
19
38
  - `baseURL: string` — endpoint root, e.g. `BASE_URLS.OLLAMA_LOCAL`.
20
39
  - `apiKey: string | (() => string | Promise<string>)` — a static key, or a resolver called on every `invoke()`: a rotated key takes effect on the next call. Local runners that ignore keys still need a non-empty string such as `'unused'`.
21
40
  - `metadata: ProviderMetadata` — surfaced to the router. `models[]` must list every model invoked through this connection, with its per-1K-token cost.
41
+ - `api?: 'responses' | 'chat-completions'` (`OPENAI_COMPAT_APIS`) — the OpenAI API to speak. Absent: `defaultOpenAICompatApi(baseURL)`, `'responses'` for `api.openai.com` and its subdomains, `'chat-completions'` for any other. Another value is refused at construction.
22
42
  - `clientOptions?` — other `openai` client options (`timeout`, `maxRetries`, `defaultHeaders`, `fetch`, …); `apiKey` and `baseURL` are excluded.
23
- - `extraBody?` — fields merged into every request body: settings an endpoint takes that the OpenAI format has no field for. A Qwen thinking model served by vLLM, SGLang or llama-server needs `{ chat_template_kwargs: { enable_thinking: false } }`, or its answer starts with its thinking and a typed (JSON) answer fails. The fields the adapter sets (`EXTRA_BODY_RESERVED`: `model`, `messages`, `tools`, `response_format`, `temperature`, `max_tokens`, `stream`) are refused.
24
- - **`openAICompatAdapterFactory`** (`OPENAI_COMPAT_ADAPTER_ID`) — the `AdapterFactory` a runtime registers. A provider registration names its endpoint in `adapter_config.baseURL` (an http(s) URL; `openAICompatBaseUrl` reads and checks it), any extra request fields as `extraBody.*` keys (`adapter_config` is flat, so one key per field and dots nest: `"extraBody.chat_template_kwargs.enable_thinking": false`; `openAICompatExtraBody` expands and checks them), and, for an endpoint that needs a key, its secret in `secret_ref`; without one the adapter sends `'unused'`, as local runners expect.
43
+ - `extraBody?` — fields merged into every request body: settings an endpoint takes that the OpenAI format has no field for. A Qwen thinking model served by vLLM, SGLang or llama-server needs `{ chat_template_kwargs: { enable_thinking: false } }`, or its answer starts with its thinking and a typed (JSON) answer fails. The fields the adapter sets are refused: on Chat Completions `EXTRA_BODY_RESERVED` (`model`, `messages`, `tools`, `response_format`, `temperature`, `max_tokens`, `stream`), on Responses `EXTRA_BODY_RESERVED_RESPONSES` (`model`, `input`, `tools`, `text`, `temperature`, `max_output_tokens`, `stream`, `store`). On Responses, `{ reasoning: { effort: 'low' } }` sets a reasoning model's effort.
44
+ - **`openAICompatAdapterFactory`** (`OPENAI_COMPAT_ADAPTER_ID`) — the `AdapterFactory` a runtime registers. A provider registration names its endpoint in `adapter_config.baseURL` (an http(s) URL; `openAICompatBaseUrl` reads and checks it), the OpenAI API in `adapter_config.api` (`openAICompatApi` reads and checks it, with the base URL's default when absent), any extra request fields as `extraBody.*` keys (`adapter_config` is flat, so one key per field and dots nest: `"extraBody.chat_template_kwargs.enable_thinking": false`; `openAICompatExtraBody` expands and checks them), and, for an endpoint that needs a key, its secret in `secret_ref`; without one the adapter sends `'unused'`, as local runners expect.
25
45
  - **`BASE_URLS`** — well-known endpoints: `OPENAI`, `OLLAMA_LOCAL`, `VLLM_LOCAL`, `LLAMA_SERVER_LOCAL`, `LM_STUDIO_LOCAL`, `OPENROUTER`, `GROQ`, `TOGETHER`, `FIREWORKS`, `DEEPINFRA`, `LITELLM_LOCAL`. Any other URL works too.
26
46
  - **`ModelProvider`** — type re-export from `@kindgi/capabilities`.
27
47
 
@@ -78,8 +98,8 @@ A local runner uses the same factory: `baseURL: BASE_URLS.OLLAMA_LOCAL`, `apiKey
78
98
  ## Non-goals
79
99
 
80
100
  - **Streaming.** Requests are sent with `stream: false`; `invoke()` resolves with the complete response.
101
+ - **Server-side conversation state** (Responses `previous_response_id`, `store: true`). Every call carries its whole conversation.
81
102
  - **Pricing discovery.** Cost rates are caller-supplied per model.
82
- - **Cached-token accounting.** `usage` reports prompt and completion tokens only; all prompt tokens are billed at `promptUsdPer1kTokens`.
83
103
 
84
104
  ## Related
85
105
 
package/dist/index.d.ts CHANGED
@@ -1,4 +1,7 @@
1
- export { BASE_URLS, EXTRA_BODY_PREFIX, EXTRA_BODY_RESERVED, OPENAI_COMPAT_ADAPTER_ID, createOpenAICompatModelProvider, openAICompatAdapterFactory, openAICompatBaseUrl, openAICompatExtraBody, } from './provider.js';
2
- export type { OpenAICompatProviderOptions } from './provider.js';
1
+ export { BASE_URLS, EXTRA_BODY_PREFIX, EXTRA_BODY_RESERVED, OPENAI_COMPAT_ADAPTER_ID, OPENAI_COMPAT_APIS, createOpenAICompatModelProvider, defaultOpenAICompatApi, isDataResidencyHost, openAICompatAdapterFactory, openAICompatApi, openAICompatBaseUrl, openAICompatExtraBody, } from './provider.js';
2
+ export { EXTRA_BODY_RESERVED_RESPONSES } from './responses.js';
3
+ export { computeCost } from './wire.js';
4
+ export type { OpenAICompatCostRates, OpenAICompatModelInfo } from './wire.js';
5
+ export type { OpenAICompatApi, OpenAICompatProviderOptions } from './provider.js';
3
6
  export type { ModelProvider } from '@kindgi/capabilities';
4
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,SAAS,EACT,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,EACxB,+BAA+B,EAC/B,0BAA0B,EAC1B,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AACjE,YAAY,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,SAAS,EACT,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,EACxB,kBAAkB,EAClB,+BAA+B,EAC/B,sBAAsB,EACtB,mBAAmB,EACnB,0BAA0B,EAC1B,eAAe,EACf,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,YAAY,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAC9E,YAAY,EAAE,eAAe,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAClF,YAAY,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC"}
package/dist/index.js CHANGED
@@ -1,4 +1,6 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  // Copyright (C) 2026 Kindgi Inc.
3
- export { BASE_URLS, EXTRA_BODY_PREFIX, EXTRA_BODY_RESERVED, OPENAI_COMPAT_ADAPTER_ID, createOpenAICompatModelProvider, openAICompatAdapterFactory, openAICompatBaseUrl, openAICompatExtraBody, } from './provider.js';
3
+ export { BASE_URLS, EXTRA_BODY_PREFIX, EXTRA_BODY_RESERVED, OPENAI_COMPAT_ADAPTER_ID, OPENAI_COMPAT_APIS, createOpenAICompatModelProvider, defaultOpenAICompatApi, isDataResidencyHost, openAICompatAdapterFactory, openAICompatApi, openAICompatBaseUrl, openAICompatExtraBody, } from './provider.js';
4
+ export { EXTRA_BODY_RESERVED_RESPONSES } from './responses.js';
5
+ export { computeCost } from './wire.js';
4
6
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC;AAEjC,OAAO,EACL,SAAS,EACT,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,EACxB,+BAA+B,EAC/B,0BAA0B,EAC1B,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC;AAEjC,OAAO,EACL,SAAS,EACT,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,EACxB,kBAAkB,EAClB,+BAA+B,EAC/B,sBAAsB,EACtB,mBAAmB,EACnB,0BAA0B,EAC1B,eAAe,EACf,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC"}
@@ -37,16 +37,38 @@ export interface OpenAICompatProviderOptions {
37
37
  /** Optional HTTP overrides passed through to the OpenAI SDK. */
38
38
  readonly clientOptions?: Omit<NonNullable<ConstructorParameters<typeof OpenAI>[0]>, 'apiKey' | 'baseURL'>;
39
39
  /**
40
- * Fields merged into every Chat Completions request body: settings an
41
- * endpoint takes that the OpenAI format has no field for. A Qwen
42
- * thinking model served by vLLM, SGLang or llama-server answers with its
43
- * thinking first unless asked not to:
44
- * `{ chat_template_kwargs: { enable_thinking: false } }`. The fields the
45
- * adapter sets itself (`EXTRA_BODY_RESERVED`) are refused.
40
+ * Which OpenAI API the adapter speaks (`OPENAI_COMPAT_APIS`):
41
+ * - `'responses'`: OpenAI's Responses API, the one OpenAI's GPT-6
42
+ * models call tools through. Stateless: every call sends
43
+ * `store: false`, so OpenAI keeps no conversation state.
44
+ * - `'chat-completions'`: Chat Completions, the format the
45
+ * OpenAI-compatible servers (Ollama, vLLM, Groq, OpenRouter, …) speak.
46
+ * Absent: `'responses'` for a `baseURL` on `api.openai.com` (or one of
47
+ * its data-residency hosts, `eu.api.openai.com`), `'chat-completions'`
48
+ * for any other (`defaultOpenAICompatApi`).
49
+ */
50
+ readonly api?: OpenAICompatApi;
51
+ /**
52
+ * Fields merged into every request body: settings an endpoint takes
53
+ * that the OpenAI format has no field for. A Qwen thinking model served
54
+ * by vLLM, SGLang or llama-server answers with its thinking first unless
55
+ * asked not to: `{ chat_template_kwargs: { enable_thinking: false } }`.
56
+ * The fields the adapter sets itself are refused: `EXTRA_BODY_RESERVED`
57
+ * on Chat Completions, `EXTRA_BODY_RESERVED_RESPONSES` on Responses.
46
58
  */
47
59
  readonly extraBody?: Readonly<Record<string, unknown>>;
48
60
  }
49
- /** Request fields the adapter sets itself; `extraBody` can't override them. */
61
+ /** The OpenAI APIs the adapter speaks (`OpenAICompatProviderOptions.api`). */
62
+ export declare const OPENAI_COMPAT_APIS: readonly ["responses", "chat-completions"];
63
+ export type OpenAICompatApi = (typeof OPENAI_COMPAT_APIS)[number];
64
+ /** The API a provider speaks when it doesn't say (`OpenAICompatProviderOptions.api`). */
65
+ export declare function defaultOpenAICompatApi(baseURL: string): OpenAICompatApi;
66
+ /**
67
+ * Whether a base URL is one of OpenAI's data-residency hosts
68
+ * (`eu.api.openai.com`), where a model's `dataResidencyMultiplier` applies.
69
+ */
70
+ export declare function isDataResidencyHost(baseURL: string): boolean;
71
+ /** Request fields the adapter sets itself on Chat Completions; `extraBody` can't override them. */
50
72
  export declare const EXTRA_BODY_RESERVED: readonly ["model", "messages", "tools", "response_format", "temperature", "max_tokens", "stream"];
51
73
  /**
52
74
  * Create an OpenAI-compatible `ModelProvider`. The OpenAI SDK is
@@ -83,10 +105,17 @@ export declare const OPENAI_COMPAT_ADAPTER_ID = "@kindgi/adapter-model-openai-co
83
105
  * a placeholder key, as local runners (Ollama, vLLM, llama-server)
84
106
  * expect. Its `extraBody.*` keys (`EXTRA_BODY_PREFIX`) are extra request
85
107
  * fields, merged into every request (`OpenAICompatProviderOptions.extraBody`).
108
+ * Its `adapter_config.api` picks the OpenAI API (`openAICompatApi`).
86
109
  */
87
110
  export declare const openAICompatAdapterFactory: AdapterFactory;
88
111
  /** The endpoint a registration names (see `openAICompatAdapterFactory`). */
89
112
  export declare function openAICompatBaseUrl(input: AdapterFactoryInput): string;
113
+ /**
114
+ * The API a registration speaks: its `adapter_config.api` (`OPENAI_COMPAT_APIS`),
115
+ * or without one, the default for its base URL (`defaultOpenAICompatApi`).
116
+ * Throws, naming the key, on an API the adapter doesn't speak.
117
+ */
118
+ export declare function openAICompatApi(input: AdapterFactoryInput): OpenAICompatApi;
90
119
  /**
91
120
  * The `adapter_config` key prefix for extra request fields. `adapter_config`
92
121
  * is flat, so each field is its own key and dots nest:
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAGA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,OAAO,KAAK,EACV,cAAc,EACd,mBAAmB,EACnB,OAAO,EAKP,aAAa,EAGb,gBAAgB,EAEjB,MAAM,sBAAsB,CAAC;AAuB9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3D,kDAAkD;IAClD,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,gEAAgE;IAChE,QAAQ,CAAC,aAAa,CAAC,EAAE,IAAI,CAC3B,WAAW,CAAC,qBAAqB,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EACpD,QAAQ,GAAG,SAAS,CACrB,CAAC;IACF;;;;;;;OAOG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACxD;AAED,+EAA+E;AAC/E,eAAO,MAAM,mBAAmB,mGAQtB,CAAC;AAEX;;;;GAIG;AACH,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,2BAA2B,GACnC,aAAa,CAuGf;AAoFD;;;;GAIG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;CAYZ,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,OAAO,CAAC;AAE/B,uDAAuD;AACvD,eAAO,MAAM,wBAAwB,wCAAwC,CAAC;AAK9E;;;;;;;;GAQG;AACH,eAAO,MAAM,0BAA0B,EAAE,cAWxC,CAAC;AAEF,4EAA4E;AAC5E,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,mBAAmB,GAAG,MAAM,CAQtE;AAED;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,eAAe,CAAC;AAK9C;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,mBAAmB,GACzB,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,CAoB/C"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAGA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,OAAO,KAAK,EACV,cAAc,EACd,mBAAmB,EACnB,OAAO,EAKP,aAAa,EAGb,gBAAgB,EAEjB,MAAM,sBAAsB,CAAC;AAQ9B;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3D,kDAAkD;IAClD,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,gEAAgE;IAChE,QAAQ,CAAC,aAAa,CAAC,EAAE,IAAI,CAC3B,WAAW,CAAC,qBAAqB,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EACpD,QAAQ,GAAG,SAAS,CACrB,CAAC;IACF;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,GAAG,CAAC,EAAE,eAAe,CAAC;IAC/B;;;;;;;OAOG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACxD;AAED,8EAA8E;AAC9E,eAAO,MAAM,kBAAkB,4CAA6C,CAAC;AAC7E,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAElE,yFAAyF;AACzF,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAGvE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE5D;AAaD,mGAAmG;AACnG,eAAO,MAAM,mBAAmB,mGAQtB,CAAC;AAEX;;;;GAIG;AACH,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,2BAA2B,GACnC,aAAa,CAkJf;AA8ED;;;;GAIG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;CAYZ,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,OAAO,CAAC;AAE/B,uDAAuD;AACvD,eAAO,MAAM,wBAAwB,wCAAwC,CAAC;AAK9E;;;;;;;;;GASG;AACH,eAAO,MAAM,0BAA0B,EAAE,cAYxC,CAAC;AAEF,4EAA4E;AAC5E,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,mBAAmB,GAAG,MAAM,CAQtE;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,mBAAmB,GAAG,eAAe,CAa3E;AAED;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,eAAe,CAAC;AAK9C;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,mBAAmB,GACzB,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,CAoB/C"}
package/dist/provider.js CHANGED
@@ -1,26 +1,38 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  // Copyright (C) 2026 Kindgi Inc.
3
3
  import OpenAI from 'openai';
4
+ import { samplingFor } from '@kindgi/capabilities';
4
5
  import { createAttemptCounter } from '@kindgi/capabilities/attempts';
6
+ import { nameToolsAsSent } from '@kindgi/capabilities/tool-names';
7
+ import { EXTRA_BODY_RESERVED_RESPONSES, invokeResponses } from './responses.js';
8
+ import { computeCost, decodeToolName, encodeToolName } from './wire.js';
9
+ /** The OpenAI APIs the adapter speaks (`OpenAICompatProviderOptions.api`). */
10
+ export const OPENAI_COMPAT_APIS = ['responses', 'chat-completions'];
11
+ /** The API a provider speaks when it doesn't say (`OpenAICompatProviderOptions.api`). */
12
+ export function defaultOpenAICompatApi(baseURL) {
13
+ // OpenAI's own API, its data-residency hosts (`eu.api.openai.com`) included.
14
+ return openAIHostOf(baseURL) !== undefined ? 'responses' : 'chat-completions';
15
+ }
5
16
  /**
6
- * OpenAI (and every downstream compat endpoint — Ollama, vLLM, Groq,
7
- * OpenRouter, Together, Fireworks, LiteLLM, ...) constrains
8
- * `function.name` to `^[a-zA-Z0-9_-]{1,128}$` — dots are rejected.
9
- * The framework's tool id convention is `<pack>.<tool>`, so this
10
- * adapter transparently encodes on send and decodes on receive.
11
- *
12
- * See the sibling comment in
13
- * `packages/adapters/model-anthropic/src/translate.ts` — same
14
- * substitution (`.` → `__`), same reversibility caveat (authors
15
- * should not put literal `__` in tool ids).
17
+ * Whether a base URL is one of OpenAI's data-residency hosts
18
+ * (`eu.api.openai.com`), where a model's `dataResidencyMultiplier` applies.
16
19
  */
17
- function encodeToolName(name) {
18
- return name.replace(/\./g, '__');
20
+ export function isDataResidencyHost(baseURL) {
21
+ return openAIHostOf(baseURL) === 'data-residency';
19
22
  }
20
- function decodeToolName(name) {
21
- return name.replace(/__/g, '.');
23
+ function openAIHostOf(baseURL) {
24
+ let host;
25
+ try {
26
+ host = new URL(baseURL).hostname;
27
+ }
28
+ catch {
29
+ return undefined;
30
+ }
31
+ if (host === 'api.openai.com')
32
+ return 'global';
33
+ return host.endsWith('.api.openai.com') ? 'data-residency' : undefined;
22
34
  }
23
- /** Request fields the adapter sets itself; `extraBody` can't override them. */
35
+ /** Request fields the adapter sets itself on Chat Completions; `extraBody` can't override them. */
24
36
  export const EXTRA_BODY_RESERVED = [
25
37
  'model',
26
38
  'messages',
@@ -37,7 +49,13 @@ export const EXTRA_BODY_RESERVED = [
37
49
  */
38
50
  export function createOpenAICompatModelProvider(options) {
39
51
  const metadata = options.metadata;
40
- const problem = extraBodyProblem(options.extraBody);
52
+ if (options.api !== undefined && !OPENAI_COMPAT_APIS.includes(options.api)) {
53
+ // A caller outside TypeScript can pass anything.
54
+ throw new Error(`${OPENAI_COMPAT_ADAPTER_ID}: provider "${metadata.id}": api must be one of ${OPENAI_COMPAT_APIS.join(', ')}`);
55
+ }
56
+ const api = options.api ?? defaultOpenAICompatApi(options.baseURL);
57
+ const dataResidency = isDataResidencyHost(options.baseURL);
58
+ const problem = extraBodyProblem(options.extraBody, api);
41
59
  if (problem !== undefined) {
42
60
  throw new Error(`${OPENAI_COMPAT_ADAPTER_ID}: provider "${metadata.id}": ${problem}`);
43
61
  }
@@ -72,7 +90,33 @@ export function createOpenAICompatModelProvider(options) {
72
90
  }
73
91
  const startedAt = Date.now();
74
92
  const openai = await clientForCall();
75
- const messages = input.messages.map(toOpenAiMessage);
93
+ // The system prompt names the call's tools as they're sent (`acme__lookup_order`):
94
+ // a model told to call `acme.lookup_order` calls a name it wasn't given.
95
+ const toolIds = input.tools?.map((t) => t.name) ?? [];
96
+ const sent = input.messages.map((m) => m.role === 'system'
97
+ ? { ...m, content: nameToolsAsSent(m.content, toolIds, encodeToolName) }
98
+ : m);
99
+ const sampling = samplingFor(modelInfo, input);
100
+ // A caller that wants as little thinking as the model allows (a judge).
101
+ const lowestThinking = input.thinking === 'lowest' && modelInfo.thinking !== undefined
102
+ ? modelInfo.thinking.lowest
103
+ : undefined;
104
+ if (api === 'responses') {
105
+ return invokeResponses({
106
+ client: openai,
107
+ attempts,
108
+ input: { ...input, messages: sent },
109
+ modelInfo,
110
+ providerId: metadata.id,
111
+ extraBody,
112
+ dataResidency,
113
+ ...(sampling.temperature !== undefined && { temperature: sampling.temperature }),
114
+ ...(lowestThinking !== undefined && { reasoningEffort: lowestThinking }),
115
+ warnings: sampling.warnings,
116
+ startedAt,
117
+ });
118
+ }
119
+ const messages = sent.map(toOpenAiMessage);
76
120
  const tools = input.tools?.map(toOpenAiTool);
77
121
  const responseFormat = input.structuredOutput
78
122
  ? {
@@ -90,7 +134,10 @@ export function createOpenAICompatModelProvider(options) {
90
134
  messages,
91
135
  ...(tools !== undefined && tools.length > 0 && { tools }),
92
136
  ...(responseFormat !== undefined && { response_format: responseFormat }),
93
- ...(input.temperature !== undefined && { temperature: input.temperature }),
137
+ ...(sampling.temperature !== undefined && { temperature: sampling.temperature }),
138
+ ...(lowestThinking !== undefined && {
139
+ reasoning_effort: lowestThinking,
140
+ }),
94
141
  ...(input.maxOutputTokens !== undefined && { max_tokens: input.maxOutputTokens }),
95
142
  stream: false,
96
143
  }, input.abortSignal !== undefined ? { signal: input.abortSignal } : undefined));
@@ -109,7 +156,7 @@ export function createOpenAICompatModelProvider(options) {
109
156
  message: responseMessage,
110
157
  finishReason: mapFinishReason(choice?.finish_reason),
111
158
  usage,
112
- costUsd: computeCost(modelInfo, usage.promptTokens, usage.completionTokens),
159
+ costUsd: computeCost(modelInfo, usage, { dataResidency }),
113
160
  durationMs,
114
161
  provider: { id: metadata.id, model: input.model },
115
162
  ...(completion.model !== undefined &&
@@ -122,6 +169,7 @@ export function createOpenAICompatModelProvider(options) {
122
169
  // An injected client sends with its own fetch: nothing was counted.
123
170
  ...(counted.attempts > 0 && { attempts: counted.attempts }),
124
171
  ...(completion.usage !== undefined && { rawUsage: { ...completion.usage } }),
172
+ ...(sampling.warnings.length > 0 && { warnings: sampling.warnings }),
125
173
  };
126
174
  },
127
175
  };
@@ -201,11 +249,6 @@ function mapFinishReason(reason) {
201
249
  return 'stop';
202
250
  }
203
251
  }
204
- function computeCost(modelInfo, promptTokens, completionTokens) {
205
- const promptCost = (promptTokens / 1000) * modelInfo.cost.promptUsdPer1kTokens;
206
- const completionCost = (completionTokens / 1000) * modelInfo.cost.completionUsdPer1kTokens;
207
- return promptCost + completionCost;
208
- }
209
252
  /**
210
253
  * Well-known base URLs — surfaced as constants so callers can import
211
254
  * without typos. Adding a new alias here doesn't lock anyone in; the
@@ -236,12 +279,14 @@ const NO_KEY = 'unused';
236
279
  * a placeholder key, as local runners (Ollama, vLLM, llama-server)
237
280
  * expect. Its `extraBody.*` keys (`EXTRA_BODY_PREFIX`) are extra request
238
281
  * fields, merged into every request (`OpenAICompatProviderOptions.extraBody`).
282
+ * Its `adapter_config.api` picks the OpenAI API (`openAICompatApi`).
239
283
  */
240
284
  export const openAICompatAdapterFactory = (input) => {
241
285
  const extraBody = openAICompatExtraBody(input);
242
286
  return createOpenAICompatModelProvider({
243
287
  metadata: input.metadata,
244
288
  baseURL: openAICompatBaseUrl(input),
289
+ api: openAICompatApi(input),
245
290
  apiKey: input.resolveApiKey ?? NO_KEY,
246
291
  ...(extraBody !== undefined && { extraBody }),
247
292
  // The registration chose the endpoint: the runtime's fetch decides
@@ -257,6 +302,23 @@ export function openAICompatBaseUrl(input) {
257
302
  }
258
303
  return value;
259
304
  }
305
+ /**
306
+ * The API a registration speaks: its `adapter_config.api` (`OPENAI_COMPAT_APIS`),
307
+ * or without one, the default for its base URL (`defaultOpenAICompatApi`).
308
+ * Throws, naming the key, on an API the adapter doesn't speak.
309
+ */
310
+ export function openAICompatApi(input) {
311
+ const value = input.config?.api;
312
+ if (value === undefined) {
313
+ const baseURL = input.config?.baseURL;
314
+ return defaultOpenAICompatApi(typeof baseURL === 'string' ? baseURL : '');
315
+ }
316
+ const api = OPENAI_COMPAT_APIS.find((known) => known === value);
317
+ if (api === undefined) {
318
+ throw new Error(`${OPENAI_COMPAT_ADAPTER_ID}: provider "${input.metadata.id}": adapter_config.api must be one of ${OPENAI_COMPAT_APIS.join(', ')}.`);
319
+ }
320
+ return api;
321
+ }
260
322
  /**
261
323
  * The `adapter_config` key prefix for extra request fields. `adapter_config`
262
324
  * is flat, so each field is its own key and dots nest:
@@ -289,7 +351,7 @@ export function openAICompatExtraBody(input) {
289
351
  if (problem !== undefined)
290
352
  fail(`adapter_config "${key}" ${problem}`);
291
353
  }
292
- const problem = extraBodyProblem(body);
354
+ const problem = extraBodyProblem(body, openAICompatApi(input));
293
355
  if (problem !== undefined)
294
356
  fail(`adapter_config ${problem}`);
295
357
  return body;
@@ -320,13 +382,14 @@ function setField(body, path, value) {
320
382
  node[leaf] = value;
321
383
  return undefined;
322
384
  }
323
- function extraBodyProblem(value) {
385
+ function extraBodyProblem(value, api) {
324
386
  if (value === undefined)
325
387
  return undefined;
326
388
  if (value === null || typeof value !== 'object' || Array.isArray(value)) {
327
389
  return 'extraBody must be an object of request fields, e.g. { chat_template_kwargs: { enable_thinking: false } }';
328
390
  }
329
- const reserved = EXTRA_BODY_RESERVED.filter((key) => Object.hasOwn(value, key));
391
+ const fields = api === 'responses' ? EXTRA_BODY_RESERVED_RESPONSES : EXTRA_BODY_RESERVED;
392
+ const reserved = fields.filter((key) => Object.hasOwn(value, key));
330
393
  return reserved.length > 0
331
394
  ? `extraBody can't set ${reserved.join(', ')}: the adapter sets ${reserved.length === 1 ? 'it' : 'them'}`
332
395
  : undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * The adapter's OpenAI Responses API path (`POST /v1/responses`). OpenAI's
3
+ * GPT-6 models call tools only here; Chat Completions stays the path for
4
+ * the OpenAI-compatible servers (`OpenAICompatProviderOptions.api`).
5
+ *
6
+ * Stateless: every call sends the whole conversation with `store: false`,
7
+ * so OpenAI keeps no conversation state for Kindgi's calls. A reasoning
8
+ * model's reasoning between its tool calls travels with the calls
9
+ * instead: the response's reasoning items (encrypted by OpenAI), and the
10
+ * ids and `phase` that tie them to the message and calls after them, go
11
+ * into the first call's `ModelToolCall.signature`. When the conversation
12
+ * continues with the same model, they're sent back in their order.
13
+ */
14
+ import type OpenAI from 'openai';
15
+ import type { ModelCallInput, ModelCallResult, ModelCallWarning, ModelInfo } from '@kindgi/capabilities';
16
+ import type { AttemptCounter } from '@kindgi/capabilities/attempts';
17
+ /** Request fields the Responses path sets itself; `extraBody` can't override them. */
18
+ export declare const EXTRA_BODY_RESERVED_RESPONSES: readonly ["model", "input", "tools", "text", "temperature", "max_output_tokens", "stream", "store"];
19
+ /** One call on the Responses path, as `invoke` hands it over. */
20
+ export interface ResponsesCall {
21
+ readonly client: OpenAI;
22
+ readonly attempts: AttemptCounter;
23
+ readonly input: ModelCallInput;
24
+ readonly modelInfo: ModelInfo;
25
+ readonly providerId: string;
26
+ readonly extraBody: Readonly<Record<string, unknown>>;
27
+ /** The endpoint is a data-residency host: the model's uplift applies (`computeCost`). */
28
+ readonly dataResidency: boolean;
29
+ /** The temperature to send; absent sends none. */
30
+ readonly temperature?: number;
31
+ /**
32
+ * The reasoning effort to send (`reasoning.effort`): the model's lowest,
33
+ * when the call asks for as little thinking as it allows. Absent: the
34
+ * model's default, or a registration's `extraBody.reasoning`.
35
+ */
36
+ readonly reasoningEffort?: string;
37
+ /** Warnings about the call, for the answer's `warnings`. */
38
+ readonly warnings?: readonly ModelCallWarning[];
39
+ /** When the call started (`Date.now()`), for `durationMs`. */
40
+ readonly startedAt: number;
41
+ }
42
+ export declare function invokeResponses(call: ResponsesCall): Promise<ModelCallResult>;
43
+ //# sourceMappingURL=responses.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"responses.d.ts","sourceRoot":"","sources":["../src/responses.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAEjC,OAAO,KAAK,EACV,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,SAAS,EAKV,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAQpE,sFAAsF;AACtF,eAAO,MAAM,6BAA6B,qGAShC,CAAC;AAEX,iEAAiE;AACjE,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACtD,yFAAyF;IACzF,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;IAChC,kDAAkD;IAClD,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,4DAA4D;IAC5D,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAS,gBAAgB,EAAE,CAAC;IAChD,8DAA8D;IAC9D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,eAAe,CAAC,CA8DnF"}