Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "5.14.0"
".": "5.15.0"
}
8 changes: 4 additions & 4 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
configured_endpoints: 111
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/openai%2Fopenai-7ef7a457c3bf05364e66e48c9ca34f31bfef1f6c9b7c15b1812346105e0abb16.yml
openapi_spec_hash: a2b1f5d8fbb62175c93b0ebea9f10063
config_hash: 4870312b04f48fd717ea4151053e7fb9
configured_endpoints: 119
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/openai%2Fopenai-ddbdf9343316047e8a773c54fb24e4a8d225955e202a1888fde6f9c8898ebf98.yml
openapi_spec_hash: 9802f6dd381558466c897f6e387e06ca
config_hash: fe0ea26680ac2075a6cd66416aefe7db
14 changes: 14 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,19 @@
# Changelog

## 5.15.0 (2025-08-21)

Full Changelog: [v5.14.0...v5.15.0](https://github.com/openai/openai-node/compare/v5.14.0...v5.15.0)

### Features

* **api:** Add connectors support for MCP tool ([048bee3](https://github.com/openai/openai-node/commit/048bee3693822c75181012c47b4f54074e1efdd6))
* **api:** adding support for /v1/conversations to the API ([1380d17](https://github.com/openai/openai-node/commit/1380d1734b1e7eeb5d10fb73fe9cfce6199e5c8e))


### Chores

* add package to package.json ([6748b2b](https://github.com/openai/openai-node/commit/6748b2b64f6c06ee324694b95ae7df99493ff08d))

## 5.14.0 (2025-08-20)

Full Changelog: [v5.13.1...v5.14.0](https://github.com/openai/openai-node/compare/v5.13.1...v5.14.0)
Expand Down
7 changes: 6 additions & 1 deletion MIGRATION.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,8 @@ client.parents.children.retrieve('c_456', { parent_id: 'p_123' });
- `client.beta.threads.messages.retrieve()`
- `client.beta.threads.messages.update()`
- `client.beta.threads.messages.delete()`
- `client.conversations.items.retrieve()`
- `client.conversations.items.delete()`
- `client.evals.runs.retrieve()`
- `client.evals.runs.delete()`
- `client.evals.runs.cancel()`
Expand Down Expand Up @@ -111,7 +113,9 @@ client.example.list(undefined, { headers: { ... } });
+ client.example.list({}, { headers: { ... } });
```

This affects the following methods:
<details>

<summary>This affects the following methods</summary>

- `client.chat.completions.list()`
- `client.chat.completions.messages.list()`
Expand All @@ -129,6 +133,7 @@ This affects the following methods:
- `client.batches.list()`
- `client.responses.retrieve()`
- `client.responses.inputItems.list()`
- `client.conversations.items.list()`
- `client.evals.list()`
- `client.evals.runs.list()`
- `client.containers.list()`
Expand Down
44 changes: 44 additions & 0 deletions api.md
Original file line number Diff line number Diff line change
Expand Up @@ -670,6 +670,7 @@ Types:
- <code><a href="./src/resources/responses/responses.ts">ResponseContent</a></code>
- <code><a href="./src/resources/responses/responses.ts">ResponseContentPartAddedEvent</a></code>
- <code><a href="./src/resources/responses/responses.ts">ResponseContentPartDoneEvent</a></code>
- <code><a href="./src/resources/responses/responses.ts">ResponseConversationParam</a></code>
- <code><a href="./src/resources/responses/responses.ts">ResponseCreatedEvent</a></code>
- <code><a href="./src/resources/responses/responses.ts">ResponseCustomToolCall</a></code>
- <code><a href="./src/resources/responses/responses.ts">ResponseCustomToolCallInputDeltaEvent</a></code>
Expand Down Expand Up @@ -769,6 +770,49 @@ Methods:

- <code title="get /responses/{response_id}/input_items">client.responses.inputItems.<a href="./src/resources/responses/input-items.ts">list</a>(responseID, { ...params }) -> ResponseItemsPage</code>

# Conversations

Types:

- <code><a href="./src/resources/conversations/conversations.ts">ComputerScreenshotContent</a></code>
- <code><a href="./src/resources/conversations/conversations.ts">ContainerFileCitationBody</a></code>
- <code><a href="./src/resources/conversations/conversations.ts">Conversation</a></code>
- <code><a href="./src/resources/conversations/conversations.ts">ConversationDeleted</a></code>
- <code><a href="./src/resources/conversations/conversations.ts">ConversationDeletedResource</a></code>
- <code><a href="./src/resources/conversations/conversations.ts">FileCitationBody</a></code>
- <code><a href="./src/resources/conversations/conversations.ts">InputFileContent</a></code>
- <code><a href="./src/resources/conversations/conversations.ts">InputImageContent</a></code>
- <code><a href="./src/resources/conversations/conversations.ts">InputTextContent</a></code>
- <code><a href="./src/resources/conversations/conversations.ts">LobProb</a></code>
- <code><a href="./src/resources/conversations/conversations.ts">Message</a></code>
- <code><a href="./src/resources/conversations/conversations.ts">OutputTextContent</a></code>
- <code><a href="./src/resources/conversations/conversations.ts">RefusalContent</a></code>
- <code><a href="./src/resources/conversations/conversations.ts">SummaryTextContent</a></code>
- <code><a href="./src/resources/conversations/conversations.ts">TextContent</a></code>
- <code><a href="./src/resources/conversations/conversations.ts">TopLogProb</a></code>
- <code><a href="./src/resources/conversations/conversations.ts">URLCitationBody</a></code>

Methods:

- <code title="post /conversations">client.conversations.<a href="./src/resources/conversations/conversations.ts">create</a>({ ...params }) -> Conversation</code>
- <code title="get /conversations/{conversation_id}">client.conversations.<a href="./src/resources/conversations/conversations.ts">retrieve</a>(conversationID) -> Conversation</code>
- <code title="post /conversations/{conversation_id}">client.conversations.<a href="./src/resources/conversations/conversations.ts">update</a>(conversationID, { ...params }) -> Conversation</code>
- <code title="delete /conversations/{conversation_id}">client.conversations.<a href="./src/resources/conversations/conversations.ts">delete</a>(conversationID) -> ConversationDeletedResource</code>

## Items

Types:

- <code><a href="./src/resources/conversations/items.ts">ConversationItem</a></code>
- <code><a href="./src/resources/conversations/items.ts">ConversationItemList</a></code>

Methods:

- <code title="post /conversations/{conversation_id}/items">client.conversations.items.<a href="./src/resources/conversations/items.ts">create</a>(conversationID, { ...params }) -> ConversationItemList</code>
- <code title="get /conversations/{conversation_id}/items/{item_id}">client.conversations.items.<a href="./src/resources/conversations/items.ts">retrieve</a>(itemID, { ...params }) -> ConversationItem</code>
- <code title="get /conversations/{conversation_id}/items">client.conversations.items.<a href="./src/resources/conversations/items.ts">list</a>(conversationID, { ...params }) -> ConversationItemsPage</code>
- <code title="delete /conversations/{conversation_id}/items/{item_id}">client.conversations.items.<a href="./src/resources/conversations/items.ts">delete</a>(itemID, { ...params }) -> Conversation</code>

# Evals

Types:
Expand Down
2 changes: 1 addition & 1 deletion jsr.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@openai/openai",
"version": "5.14.0",
"version": "5.15.0",
"exports": {
".": "./index.ts",
"./helpers/zod": "./helpers/zod.ts",
Expand Down
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "openai",
"version": "5.14.0",
"version": "5.15.0",
"description": "The official TypeScript library for the OpenAI API",
"author": "OpenAI <[email protected]>",
"types": "dist/index.d.ts",
Expand Down Expand Up @@ -49,6 +49,7 @@
"ts-node": "^10.5.0",
"tsc-multi": "https://github.com/stainless-api/tsc-multi/releases/download/v1.1.9/tsc-multi.tgz",
"tsconfig-paths": "^4.0.0",
"tslib": "^2.8.1",
"typescript": "5.8.3",
"ws": "^8.18.0",
"zod": "^3.23.8",
Expand Down
2 changes: 1 addition & 1 deletion scripts/bootstrap
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,4 @@ PACKAGE_MANAGER=$(command -v yarn >/dev/null 2>&1 && echo "yarn" || echo "npm")
$PACKAGE_MANAGER install

cd "$(dirname "$0")/../examples"
$PACKAGE_MANAGER install
$PACKAGE_MANAGER install
2 changes: 2 additions & 0 deletions scripts/detect-breaking-changes
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@ TEST_PATHS=(
tests/api-resources/uploads/parts.test.ts
tests/api-resources/responses/responses.test.ts
tests/api-resources/responses/input-items.test.ts
tests/api-resources/conversations/conversations.test.ts
tests/api-resources/conversations/items.test.ts
tests/api-resources/evals/evals.test.ts
tests/api-resources/evals/runs/runs.test.ts
tests/api-resources/evals/runs/output-items.test.ts
Expand Down
20 changes: 19 additions & 1 deletion src/client.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,14 @@ import * as qs from './internal/qs';
import { VERSION } from './version';
import * as Errors from './core/error';
import * as Pagination from './core/pagination';
import { AbstractPage, type CursorPageParams, CursorPageResponse, PageResponse } from './core/pagination';
import {
AbstractPage,
type ConversationCursorPageParams,
ConversationCursorPageResponse,
type CursorPageParams,
CursorPageResponse,
PageResponse,
} from './core/pagination';
import * as Uploads from './core/uploads';
import * as API from './resources/index';
import { APIPromise } from './core/api-promise';
Expand Down Expand Up @@ -97,6 +104,7 @@ import {
ContainerRetrieveResponse,
Containers,
} from './resources/containers/containers';
import { Conversations } from './resources/conversations/conversations';
import {
EvalCreateParams,
EvalCreateResponse,
Expand Down Expand Up @@ -954,6 +962,7 @@ export class OpenAI {
batches: API.Batches = new API.Batches(this);
uploads: API.Uploads = new API.Uploads(this);
responses: API.Responses = new API.Responses(this);
conversations: API.Conversations = new API.Conversations(this);
evals: API.Evals = new API.Evals(this);
containers: API.Containers = new API.Containers(this);
}
Expand All @@ -974,6 +983,7 @@ OpenAI.Beta = Beta;
OpenAI.Batches = Batches;
OpenAI.Uploads = UploadsAPIUploads;
OpenAI.Responses = Responses;
OpenAI.Conversations = Conversations;
OpenAI.Evals = Evals;
OpenAI.Containers = Containers;

Expand All @@ -986,6 +996,12 @@ export declare namespace OpenAI {
export import CursorPage = Pagination.CursorPage;
export { type CursorPageParams as CursorPageParams, type CursorPageResponse as CursorPageResponse };

export import ConversationCursorPage = Pagination.ConversationCursorPage;
export {
type ConversationCursorPageParams as ConversationCursorPageParams,
type ConversationCursorPageResponse as ConversationCursorPageResponse,
};

export {
Completions as Completions,
type Completion as Completion,
Expand Down Expand Up @@ -1149,6 +1165,8 @@ export declare namespace OpenAI {

export { Responses as Responses };

export { Conversations as Conversations };

export {
Evals as Evals,
type EvalCustomDataSourceConfig as EvalCustomDataSourceConfig,
Expand Down
65 changes: 65 additions & 0 deletions src/core/pagination.ts
Original file line number Diff line number Diff line change
Expand Up @@ -202,3 +202,68 @@ export class CursorPage<Item extends { id: string }>
};
}
}

export interface ConversationCursorPageResponse<Item> {
data: Array<Item>;

has_more: boolean;

last_id: string;
}

export interface ConversationCursorPageParams {
after?: string;

limit?: number;
}

export class ConversationCursorPage<Item>
extends AbstractPage<Item>
implements ConversationCursorPageResponse<Item>
{
data: Array<Item>;

has_more: boolean;

last_id: string;

constructor(
client: OpenAI,
response: Response,
body: ConversationCursorPageResponse<Item>,
options: FinalRequestOptions,
) {
super(client, response, body, options);

this.data = body.data || [];
this.has_more = body.has_more || false;
this.last_id = body.last_id || '';
}

getPaginatedItems(): Item[] {
return this.data ?? [];
}

override hasNextPage(): boolean {
if (this.has_more === false) {
return false;
}

return super.hasNextPage();
}

nextPageRequestOptions(): PageRequestOptions | null {
const cursor = this.last_id;
if (!cursor) {
return null;
}

return {
...this.options,
query: {
...maybeObj(this.options.query),
after: cursor,
},
};
}
}
3 changes: 3 additions & 0 deletions src/resources/conversations.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

export * from './conversations/index';
Loading