@ai-sdk/openai 0.0.0-2f1ae29d-20260122140908 → 0.0.0-4115c213-20260122152721

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.
Files changed (63) hide show
  1. package/CHANGELOG.md +17 -2
  2. package/dist/index.js +15 -1
  3. package/dist/index.js.map +1 -1
  4. package/dist/index.mjs +15 -1
  5. package/dist/index.mjs.map +1 -1
  6. package/dist/internal/index.js +14 -0
  7. package/dist/internal/index.js.map +1 -1
  8. package/dist/internal/index.mjs +14 -0
  9. package/dist/internal/index.mjs.map +1 -1
  10. package/package.json +9 -5
  11. package/src/responses/convert-to-openai-responses-input.ts +20 -1
  12. package/src/chat/__fixtures__/azure-model-router.1.chunks.txt +0 -8
  13. package/src/chat/__snapshots__/openai-chat-language-model.test.ts.snap +0 -88
  14. package/src/chat/convert-to-openai-chat-messages.test.ts +0 -516
  15. package/src/chat/openai-chat-language-model.test.ts +0 -3496
  16. package/src/chat/openai-chat-prepare-tools.test.ts +0 -322
  17. package/src/completion/openai-completion-language-model.test.ts +0 -752
  18. package/src/embedding/__snapshots__/openai-embedding-model.test.ts.snap +0 -43
  19. package/src/embedding/openai-embedding-model.test.ts +0 -146
  20. package/src/image/openai-image-model.test.ts +0 -722
  21. package/src/openai-error.test.ts +0 -34
  22. package/src/openai-language-model-capabilities.test.ts +0 -93
  23. package/src/openai-provider.test.ts +0 -98
  24. package/src/responses/__fixtures__/openai-apply-patch-tool-delete.1.chunks.txt +0 -5
  25. package/src/responses/__fixtures__/openai-apply-patch-tool.1.chunks.txt +0 -38
  26. package/src/responses/__fixtures__/openai-apply-patch-tool.1.json +0 -69
  27. package/src/responses/__fixtures__/openai-code-interpreter-tool.1.chunks.txt +0 -393
  28. package/src/responses/__fixtures__/openai-code-interpreter-tool.1.json +0 -137
  29. package/src/responses/__fixtures__/openai-error.1.chunks.txt +0 -4
  30. package/src/responses/__fixtures__/openai-error.1.json +0 -8
  31. package/src/responses/__fixtures__/openai-file-search-tool.1.chunks.txt +0 -94
  32. package/src/responses/__fixtures__/openai-file-search-tool.1.json +0 -89
  33. package/src/responses/__fixtures__/openai-file-search-tool.2.chunks.txt +0 -93
  34. package/src/responses/__fixtures__/openai-file-search-tool.2.json +0 -112
  35. package/src/responses/__fixtures__/openai-image-generation-tool.1.chunks.txt +0 -16
  36. package/src/responses/__fixtures__/openai-image-generation-tool.1.json +0 -96
  37. package/src/responses/__fixtures__/openai-local-shell-tool.1.chunks.txt +0 -7
  38. package/src/responses/__fixtures__/openai-local-shell-tool.1.json +0 -70
  39. package/src/responses/__fixtures__/openai-mcp-tool-approval.1.chunks.txt +0 -11
  40. package/src/responses/__fixtures__/openai-mcp-tool-approval.1.json +0 -169
  41. package/src/responses/__fixtures__/openai-mcp-tool-approval.2.chunks.txt +0 -123
  42. package/src/responses/__fixtures__/openai-mcp-tool-approval.2.json +0 -176
  43. package/src/responses/__fixtures__/openai-mcp-tool-approval.3.chunks.txt +0 -11
  44. package/src/responses/__fixtures__/openai-mcp-tool-approval.3.json +0 -169
  45. package/src/responses/__fixtures__/openai-mcp-tool-approval.4.chunks.txt +0 -84
  46. package/src/responses/__fixtures__/openai-mcp-tool-approval.4.json +0 -182
  47. package/src/responses/__fixtures__/openai-mcp-tool.1.chunks.txt +0 -373
  48. package/src/responses/__fixtures__/openai-mcp-tool.1.json +0 -159
  49. package/src/responses/__fixtures__/openai-reasoning-encrypted-content.1.chunks.txt +0 -110
  50. package/src/responses/__fixtures__/openai-reasoning-encrypted-content.1.json +0 -117
  51. package/src/responses/__fixtures__/openai-shell-tool.1.chunks.txt +0 -182
  52. package/src/responses/__fixtures__/openai-shell-tool.1.json +0 -73
  53. package/src/responses/__fixtures__/openai-web-search-tool.1.chunks.txt +0 -185
  54. package/src/responses/__fixtures__/openai-web-search-tool.1.json +0 -266
  55. package/src/responses/__snapshots__/openai-responses-language-model.test.ts.snap +0 -10955
  56. package/src/responses/convert-to-openai-responses-input.test.ts +0 -2976
  57. package/src/responses/openai-responses-api.test.ts +0 -89
  58. package/src/responses/openai-responses-language-model.test.ts +0 -6927
  59. package/src/responses/openai-responses-prepare-tools.test.ts +0 -924
  60. package/src/speech/openai-speech-model.test.ts +0 -202
  61. package/src/tool/local-shell.test-d.ts +0 -20
  62. package/src/tool/web-search.test-d.ts +0 -13
  63. package/src/transcription/openai-transcription-model.test.ts +0 -507
@@ -1,34 +0,0 @@
1
- import { safeParseJSON } from '@ai-sdk/provider-utils';
2
- import { openaiErrorDataSchema } from './openai-error';
3
- import { describe, it, expect } from 'vitest';
4
-
5
- describe('openaiErrorDataSchema', () => {
6
- it('should parse OpenRouter resource exhausted error', async () => {
7
- const error = `
8
- {"error":{"message":"{\\n \\"error\\": {\\n \\"code\\": 429,\\n \\"message\\": \\"Resource has been exhausted (e.g. check quota).\\",\\n \\"status\\": \\"RESOURCE_EXHAUSTED\\"\\n }\\n}\\n","code":429}}
9
- `;
10
-
11
- const result = await safeParseJSON({
12
- text: error,
13
- schema: openaiErrorDataSchema,
14
- });
15
-
16
- expect(result).toStrictEqual({
17
- success: true,
18
- value: {
19
- error: {
20
- message:
21
- '{\n "error": {\n "code": 429,\n "message": "Resource has been exhausted (e.g. check quota).",\n "status": "RESOURCE_EXHAUSTED"\n }\n}\n',
22
- code: 429,
23
- },
24
- },
25
- rawValue: {
26
- error: {
27
- message:
28
- '{\n "error": {\n "code": 429,\n "message": "Resource has been exhausted (e.g. check quota).",\n "status": "RESOURCE_EXHAUSTED"\n }\n}\n',
29
- code: 429,
30
- },
31
- },
32
- });
33
- });
34
- });
@@ -1,93 +0,0 @@
1
- import { describe, it, expect } from 'vitest';
2
- import { getOpenAILanguageModelCapabilities } from './openai-language-model-capabilities';
3
-
4
- describe('getOpenAILanguageModelCapabilities', () => {
5
- describe('isReasoningModel', () => {
6
- it.each([
7
- ['gpt-4.1', false],
8
- ['gpt-4.1-2025-04-14', false],
9
- ['gpt-4.1-mini', false],
10
- ['gpt-4.1-mini-2025-04-14', false],
11
- ['gpt-4.1-nano', false],
12
- ['gpt-4.1-nano-2025-04-14', false],
13
- ['gpt-4o', false],
14
- ['gpt-4o-2024-05-13', false],
15
- ['gpt-4o-2024-08-06', false],
16
- ['gpt-4o-2024-11-20', false],
17
- ['gpt-4o-audio-preview', false],
18
- ['gpt-4o-audio-preview-2024-10-01', false],
19
- ['gpt-4o-audio-preview-2024-12-17', false],
20
- ['gpt-4o-search-preview', false],
21
- ['gpt-4o-search-preview-2025-03-11', false],
22
- ['gpt-4o-mini-search-preview', false],
23
- ['gpt-4o-mini-search-preview-2025-03-11', false],
24
- ['gpt-4o-mini', false],
25
- ['gpt-4o-mini-2024-07-18', false],
26
- ['gpt-4-turbo', false],
27
- ['gpt-4-turbo-2024-04-09', false],
28
- ['gpt-4-turbo-preview', false],
29
- ['gpt-4-0125-preview', false],
30
- ['gpt-4-1106-preview', false],
31
- ['gpt-4', false],
32
- ['gpt-4-0613', false],
33
- ['gpt-4.5-preview', false],
34
- ['gpt-4.5-preview-2025-02-27', false],
35
- ['gpt-3.5-turbo-0125', false],
36
- ['gpt-3.5-turbo', false],
37
- ['gpt-3.5-turbo-1106', false],
38
- ['chatgpt-4o-latest', false],
39
- ['gpt-5-chat-latest', false],
40
- ['o1', true],
41
- ['o1-2024-12-17', true],
42
- ['o3-mini', true],
43
- ['o3-mini-2025-01-31', true],
44
- ['o3', true],
45
- ['o3-2025-04-16', true],
46
- ['o4-mini', true],
47
- ['o4-mini-2025-04-16', true],
48
- ['codex-mini-latest', true],
49
- ['computer-use-preview', true],
50
- ['gpt-5', true],
51
- ['gpt-5-2025-08-07', true],
52
- ['gpt-5-codex', true],
53
- ['gpt-5-mini', true],
54
- ['gpt-5-mini-2025-08-07', true],
55
- ['gpt-5-nano', true],
56
- ['gpt-5-nano-2025-08-07', true],
57
- ['gpt-5-pro', true],
58
- ['gpt-5-pro-2025-10-06', true],
59
- ['new-unknown-model', false],
60
- ['ft:gpt-4o-2024-08-06:org:custom:abc123', false],
61
- ['custom-model', false],
62
- ])('%s reasoning model: %s', (modelId, expectedCapabilities) => {
63
- expect(
64
- getOpenAILanguageModelCapabilities(modelId).isReasoningModel,
65
- ).toEqual(expectedCapabilities);
66
- });
67
- });
68
-
69
- describe('supportsNonReasoningParameters', () => {
70
- it.each([
71
- ['gpt-5.1', true],
72
- ['gpt-5.1-chat-latest', true],
73
- ['gpt-5.1-codex-mini', true],
74
- ['gpt-5.1-codex', true],
75
- ['gpt-5.2', true],
76
- ['gpt-5.2-pro', true],
77
- ['gpt-5.2-chat-latest', true],
78
- ['gpt-5', false],
79
- ['gpt-5-mini', false],
80
- ['gpt-5-nano', false],
81
- ['gpt-5-pro', false],
82
- ['gpt-5-chat-latest', false],
83
- ])(
84
- '%s supports non-reasoning parameters: %s',
85
- (modelId, expectedCapabilities) => {
86
- expect(
87
- getOpenAILanguageModelCapabilities(modelId)
88
- .supportsNonReasoningParameters,
89
- ).toEqual(expectedCapabilities);
90
- },
91
- );
92
- });
93
- });
@@ -1,98 +0,0 @@
1
- import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
2
- import { createOpenAI } from './openai-provider';
3
-
4
- vi.mock('./version', () => ({
5
- VERSION: '0.0.0-test',
6
- }));
7
-
8
- const createSuccessfulResponse = () =>
9
- new Response(
10
- JSON.stringify({
11
- object: 'list',
12
- data: [
13
- {
14
- object: 'embedding',
15
- index: 0,
16
- embedding: [0.1, 0.2],
17
- },
18
- ],
19
- model: 'text-embedding-3-small',
20
- usage: { prompt_tokens: 1, total_tokens: 1 },
21
- }),
22
- {
23
- status: 200,
24
- headers: { 'Content-Type': 'application/json' },
25
- },
26
- );
27
-
28
- const createFetchMock = () =>
29
- vi.fn().mockResolvedValue(createSuccessfulResponse());
30
-
31
- describe('createOpenAI', () => {
32
- describe('baseURL configuration', () => {
33
- const originalBaseUrl = process.env.OPENAI_BASE_URL;
34
-
35
- beforeEach(() => {
36
- vi.restoreAllMocks();
37
- });
38
-
39
- afterEach(() => {
40
- process.env.OPENAI_BASE_URL = originalBaseUrl;
41
- });
42
-
43
- it('uses the default OpenAI base URL when not provided', async () => {
44
- delete process.env.OPENAI_BASE_URL;
45
-
46
- const fetchMock = createFetchMock();
47
- const provider = createOpenAI({
48
- apiKey: 'test-api-key',
49
- fetch: fetchMock,
50
- });
51
-
52
- await provider.embedding('text-embedding-3-small').doEmbed({
53
- values: ['hello'],
54
- });
55
-
56
- expect(fetchMock).toHaveBeenCalledTimes(1);
57
- const call = fetchMock.mock.calls[0]!;
58
- expect(call[0]).toBe('https://api.openai.com/v1/embeddings');
59
- });
60
-
61
- it('uses OPENAI_BASE_URL when set', async () => {
62
- process.env.OPENAI_BASE_URL = 'https://proxy.openai.example/v1/';
63
-
64
- const fetchMock = createFetchMock();
65
- const provider = createOpenAI({
66
- apiKey: 'test-api-key',
67
- fetch: fetchMock,
68
- });
69
-
70
- await provider.embedding('text-embedding-3-small').doEmbed({
71
- values: ['hello'],
72
- });
73
-
74
- expect(fetchMock).toHaveBeenCalledTimes(1);
75
- const call = fetchMock.mock.calls[0]!;
76
- expect(call[0]).toBe('https://proxy.openai.example/v1/embeddings');
77
- });
78
-
79
- it('prefers the baseURL option over OPENAI_BASE_URL', async () => {
80
- process.env.OPENAI_BASE_URL = 'https://env.openai.example/v1';
81
-
82
- const fetchMock = createFetchMock();
83
- const provider = createOpenAI({
84
- apiKey: 'test-api-key',
85
- baseURL: 'https://option.openai.example/v1/',
86
- fetch: fetchMock,
87
- });
88
-
89
- await provider.embedding('text-embedding-3-small').doEmbed({
90
- values: ['hello'],
91
- });
92
-
93
- expect(fetchMock).toHaveBeenCalledTimes(1);
94
- const call = fetchMock.mock.calls[0]!;
95
- expect(call[0]).toBe('https://option.openai.example/v1/embeddings');
96
- });
97
- });
98
- });
@@ -1,5 +0,0 @@
1
- {"type":"response.created","sequence_number":0,"response":{"id":"resp_delete_001","object":"response","created_at":1764180467,"status":"in_progress","background":false,"error":null,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-5.1-2025-11-13","output":[],"parallel_tool_calls":true,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":null,"reasoning":{"effort":"none","summary":null},"safety_identifier":null,"service_tier":"default","store":true,"temperature":1,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tools":[{"type":"apply_patch"}],"top_logprobs":0,"top_p":1,"truncation":"disabled","usage":null,"user":null,"metadata":{}}}
2
- {"type":"response.in_progress","sequence_number":1,"response":{"id":"resp_delete_001","object":"response","created_at":1764180467,"status":"in_progress","background":false,"error":null,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-5.1-2025-11-13","output":[],"parallel_tool_calls":true,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":null,"reasoning":{"effort":"none","summary":null},"safety_identifier":null,"service_tier":"default","store":true,"temperature":1,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tools":[{"type":"apply_patch"}],"top_logprobs":0,"top_p":1,"truncation":"disabled","usage":null,"user":null,"metadata":{}}}
3
- {"type":"response.output_item.added","sequence_number":2,"output_index":0,"item":{"id":"apc_delete_001","type":"apply_patch_call","status":"in_progress","call_id":"call_delete_1","operation":{"type":"delete_file","path":"obsolete.txt"}}}
4
- {"type":"response.output_item.done","sequence_number":3,"output_index":0,"item":{"id":"apc_delete_001","type":"apply_patch_call","status":"completed","call_id":"call_delete_1","operation":{"type":"delete_file","path":"obsolete.txt"}}}
5
- {"type":"response.completed","sequence_number":4,"response":{"id":"resp_delete_001","object":"response","created_at":1764180467,"status":"completed","background":false,"error":null,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-5.1-2025-11-13","output":[{"id":"apc_delete_001","type":"apply_patch_call","status":"completed","call_id":"call_delete_1","operation":{"type":"delete_file","path":"obsolete.txt"}}],"parallel_tool_calls":true,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":null,"reasoning":{"effort":"none","summary":null},"safety_identifier":null,"service_tier":"default","store":true,"temperature":1,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tools":[{"type":"apply_patch"}],"top_logprobs":0,"top_p":1,"truncation":"disabled","usage":{"input_tokens":24,"input_tokens_details":{"cached_tokens":0},"output_tokens":0,"output_tokens_details":{"reasoning_tokens":0},"total_tokens":24},"user":null,"metadata":{}}}
@@ -1,38 +0,0 @@
1
- {"type":"response.created","sequence_number":0,"response":{"id":"resp_0372d86dfc1762fe00692741f339a08190bce9b78ee2079295","object":"response","created_at":1764180467,"status":"in_progress","background":false,"error":null,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-5.1-2025-11-13","output":[],"parallel_tool_calls":true,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":null,"reasoning":{"effort":"none","summary":null},"safety_identifier":null,"service_tier":"auto","store":true,"temperature":1,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tools":[{"type":"apply_patch"}],"top_logprobs":0,"top_p":1,"truncation":"disabled","usage":null,"user":null,"metadata":{}}}
2
- {"type":"response.in_progress","sequence_number":1,"response":{"id":"resp_0372d86dfc1762fe00692741f339a08190bce9b78ee2079295","object":"response","created_at":1764180467,"status":"in_progress","background":false,"error":null,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-5.1-2025-11-13","output":[],"parallel_tool_calls":true,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":null,"reasoning":{"effort":"none","summary":null},"safety_identifier":null,"service_tier":"auto","store":true,"temperature":1,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tools":[{"type":"apply_patch"}],"top_logprobs":0,"top_p":1,"truncation":"disabled","usage":null,"user":null,"metadata":{}}}
3
- {"type":"response.output_item.added","sequence_number":2,"output_index":0,"item":{"id":"apc_0372d86dfc1762fe00692741f3f3dc8190879cba489ff2fc8b","type":"apply_patch_call","status":"in_progress","call_id":"call_kA46f91ZwocQyMCKyyZqRyC5","operation":{"type":"create_file","diff":"","path":"shopping-checklist.md"}}}
4
- {"type":"response.apply_patch_call_operation_diff.delta","sequence_number":3,"item_id":"apc_0372d86dfc1762fe00692741f3f3dc8190879cba489ff2fc8b","output_index":0,"delta":"+","obfuscation":"wsWQt8Nr5nwWBf7"}
5
- {"type":"response.apply_patch_call_operation_diff.delta","sequence_number":4,"item_id":"apc_0372d86dfc1762fe00692741f3f3dc8190879cba489ff2fc8b","output_index":0,"delta":"##","obfuscation":"4SVQhl9Je0GGg6"}
6
- {"type":"response.apply_patch_call_operation_diff.delta","sequence_number":5,"item_id":"apc_0372d86dfc1762fe00692741f3f3dc8190879cba489ff2fc8b","output_index":0,"delta":" Shopping","obfuscation":"LHvs3Ds"}
7
- {"type":"response.apply_patch_call_operation_diff.delta","sequence_number":6,"item_id":"apc_0372d86dfc1762fe00692741f3f3dc8190879cba489ff2fc8b","output_index":0,"delta":" Checklist","obfuscation":"cNN95N"}
8
- {"type":"response.apply_patch_call_operation_diff.delta","sequence_number":7,"item_id":"apc_0372d86dfc1762fe00692741f3f3dc8190879cba489ff2fc8b","output_index":0,"delta":"\n","obfuscation":"ZdUN3W6do9KqYf6"}
9
- {"type":"response.apply_patch_call_operation_diff.delta","sequence_number":8,"item_id":"apc_0372d86dfc1762fe00692741f3f3dc8190879cba489ff2fc8b","output_index":0,"delta":"+\n","obfuscation":"eKOocIbOw7ENLx"}
10
- {"type":"response.apply_patch_call_operation_diff.delta","sequence_number":9,"item_id":"apc_0372d86dfc1762fe00692741f3f3dc8190879cba489ff2fc8b","output_index":0,"delta":"+-","obfuscation":"Q6AtCgXIlkU4Zn"}
11
- {"type":"response.apply_patch_call_operation_diff.delta","sequence_number":10,"item_id":"apc_0372d86dfc1762fe00692741f3f3dc8190879cba489ff2fc8b","output_index":0,"delta":" [","obfuscation":"Q2OZcn4FZwRJS0"}
12
- {"type":"response.apply_patch_call_operation_diff.delta","sequence_number":11,"item_id":"apc_0372d86dfc1762fe00692741f3f3dc8190879cba489ff2fc8b","output_index":0,"delta":" ]","obfuscation":"Y2snn3Nt17feXS"}
13
- {"type":"response.apply_patch_call_operation_diff.delta","sequence_number":12,"item_id":"apc_0372d86dfc1762fe00692741f3f3dc8190879cba489ff2fc8b","output_index":0,"delta":" Milk","obfuscation":"y1EDwNBoRKJ"}
14
- {"type":"response.apply_patch_call_operation_diff.delta","sequence_number":13,"item_id":"apc_0372d86dfc1762fe00692741f3f3dc8190879cba489ff2fc8b","output_index":0,"delta":"\n","obfuscation":"xZMXDj2J1C9KA1B"}
15
- {"type":"response.apply_patch_call_operation_diff.delta","sequence_number":14,"item_id":"apc_0372d86dfc1762fe00692741f3f3dc8190879cba489ff2fc8b","output_index":0,"delta":"+-","obfuscation":"HfSHks3c2Fb3LJ"}
16
- {"type":"response.apply_patch_call_operation_diff.delta","sequence_number":15,"item_id":"apc_0372d86dfc1762fe00692741f3f3dc8190879cba489ff2fc8b","output_index":0,"delta":" [","obfuscation":"dRCuki6EZbgOwK"}
17
- {"type":"response.apply_patch_call_operation_diff.delta","sequence_number":16,"item_id":"apc_0372d86dfc1762fe00692741f3f3dc8190879cba489ff2fc8b","output_index":0,"delta":" ]","obfuscation":"SyHlgmTrU66CEl"}
18
- {"type":"response.apply_patch_call_operation_diff.delta","sequence_number":17,"item_id":"apc_0372d86dfc1762fe00692741f3f3dc8190879cba489ff2fc8b","output_index":0,"delta":" Bread","obfuscation":"oj1GhrOKwm"}
19
- {"type":"response.apply_patch_call_operation_diff.delta","sequence_number":18,"item_id":"apc_0372d86dfc1762fe00692741f3f3dc8190879cba489ff2fc8b","output_index":0,"delta":"\n","obfuscation":"3Cgwc02KBnbE31u"}
20
- {"type":"response.apply_patch_call_operation_diff.delta","sequence_number":19,"item_id":"apc_0372d86dfc1762fe00692741f3f3dc8190879cba489ff2fc8b","output_index":0,"delta":"+-","obfuscation":"ULvp3RkV66J2qY"}
21
- {"type":"response.apply_patch_call_operation_diff.delta","sequence_number":20,"item_id":"apc_0372d86dfc1762fe00692741f3f3dc8190879cba489ff2fc8b","output_index":0,"delta":" [","obfuscation":"kNXRopsTU9au9S"}
22
- {"type":"response.apply_patch_call_operation_diff.delta","sequence_number":21,"item_id":"apc_0372d86dfc1762fe00692741f3f3dc8190879cba489ff2fc8b","output_index":0,"delta":" ]","obfuscation":"HdLsMKMkpJL9z3"}
23
- {"type":"response.apply_patch_call_operation_diff.delta","sequence_number":22,"item_id":"apc_0372d86dfc1762fe00692741f3f3dc8190879cba489ff2fc8b","output_index":0,"delta":" Eggs","obfuscation":"AEtqUs3B8Vk"}
24
- {"type":"response.apply_patch_call_operation_diff.delta","sequence_number":23,"item_id":"apc_0372d86dfc1762fe00692741f3f3dc8190879cba489ff2fc8b","output_index":0,"delta":"\n","obfuscation":"RIiBnACfCTilgHz"}
25
- {"type":"response.apply_patch_call_operation_diff.delta","sequence_number":24,"item_id":"apc_0372d86dfc1762fe00692741f3f3dc8190879cba489ff2fc8b","output_index":0,"delta":"+-","obfuscation":"FE3QLxTOZN8ue6"}
26
- {"type":"response.apply_patch_call_operation_diff.delta","sequence_number":25,"item_id":"apc_0372d86dfc1762fe00692741f3f3dc8190879cba489ff2fc8b","output_index":0,"delta":" [","obfuscation":"udB5TV9Kd35ZGx"}
27
- {"type":"response.apply_patch_call_operation_diff.delta","sequence_number":26,"item_id":"apc_0372d86dfc1762fe00692741f3f3dc8190879cba489ff2fc8b","output_index":0,"delta":" ]","obfuscation":"5jGBioIRXE4vJ6"}
28
- {"type":"response.apply_patch_call_operation_diff.delta","sequence_number":27,"item_id":"apc_0372d86dfc1762fe00692741f3f3dc8190879cba489ff2fc8b","output_index":0,"delta":" Fresh","obfuscation":"A4HVwDowqM"}
29
- {"type":"response.apply_patch_call_operation_diff.delta","sequence_number":28,"item_id":"apc_0372d86dfc1762fe00692741f3f3dc8190879cba489ff2fc8b","output_index":0,"delta":" fruit","obfuscation":"Pt3gTjNh79"}
30
- {"type":"response.apply_patch_call_operation_diff.delta","sequence_number":29,"item_id":"apc_0372d86dfc1762fe00692741f3f3dc8190879cba489ff2fc8b","output_index":0,"delta":"\n","obfuscation":"qh3bmFx1yTQSvxY"}
31
- {"type":"response.apply_patch_call_operation_diff.delta","sequence_number":30,"item_id":"apc_0372d86dfc1762fe00692741f3f3dc8190879cba489ff2fc8b","output_index":0,"delta":"+-","obfuscation":"u5UpmA7UNFEu7T"}
32
- {"type":"response.apply_patch_call_operation_diff.delta","sequence_number":31,"item_id":"apc_0372d86dfc1762fe00692741f3f3dc8190879cba489ff2fc8b","output_index":0,"delta":" [","obfuscation":"SYbXYkzhPSBrz9"}
33
- {"type":"response.apply_patch_call_operation_diff.delta","sequence_number":32,"item_id":"apc_0372d86dfc1762fe00692741f3f3dc8190879cba489ff2fc8b","output_index":0,"delta":" ]","obfuscation":"lcICMZPiql7PBm"}
34
- {"type":"response.apply_patch_call_operation_diff.delta","sequence_number":33,"item_id":"apc_0372d86dfc1762fe00692741f3f3dc8190879cba489ff2fc8b","output_index":0,"delta":" Coffee","obfuscation":"7aHYTinRi"}
35
- {"type":"response.apply_patch_call_operation_diff.delta","sequence_number":34,"item_id":"apc_0372d86dfc1762fe00692741f3f3dc8190879cba489ff2fc8b","output_index":0,"delta":"\n","obfuscation":"iOIsQfym87sD47L"}
36
- {"type":"response.apply_patch_call_operation_diff.done","sequence_number":35,"item_id":"apc_0372d86dfc1762fe00692741f3f3dc8190879cba489ff2fc8b","output_index":0,"diff":"+## Shopping Checklist\n+\n+- [ ] Milk\n+- [ ] Bread\n+- [ ] Eggs\n+- [ ] Fresh fruit\n+- [ ] Coffee\n"}
37
- {"type":"response.output_item.done","sequence_number":36,"output_index":0,"item":{"id":"apc_0372d86dfc1762fe00692741f3f3dc8190879cba489ff2fc8b","type":"apply_patch_call","status":"completed","call_id":"call_kA46f91ZwocQyMCKyyZqRyC5","operation":{"type":"create_file","diff":"+## Shopping Checklist\n+\n+- [ ] Milk\n+- [ ] Bread\n+- [ ] Eggs\n+- [ ] Fresh fruit\n+- [ ] Coffee\n","path":"shopping-checklist.md"}}}
38
- {"type":"response.completed","sequence_number":37,"response":{"id":"resp_0372d86dfc1762fe00692741f339a08190bce9b78ee2079295","object":"response","created_at":1764180467,"status":"completed","background":false,"error":null,"incomplete_details":null,"instructions":null,"max_output_tokens":null,"max_tool_calls":null,"model":"gpt-5.1-2025-11-13","output":[{"id":"apc_0372d86dfc1762fe00692741f3f3dc8190879cba489ff2fc8b","type":"apply_patch_call","status":"completed","call_id":"call_kA46f91ZwocQyMCKyyZqRyC5","operation":{"type":"create_file","diff":"+## Shopping Checklist\n+\n+- [ ] Milk\n+- [ ] Bread\n+- [ ] Eggs\n+- [ ] Fresh fruit\n+- [ ] Coffee\n","path":"shopping-checklist.md"}}],"parallel_tool_calls":true,"previous_response_id":null,"prompt_cache_key":null,"prompt_cache_retention":null,"reasoning":{"effort":"none","summary":null},"safety_identifier":null,"service_tier":"default","store":true,"temperature":1,"text":{"format":{"type":"text"},"verbosity":"medium"},"tool_choice":"auto","tools":[{"type":"apply_patch"}],"top_logprobs":0,"top_p":1,"truncation":"disabled","usage":{"input_tokens":642,"input_tokens_details":{"cached_tokens":0},"output_tokens":67,"output_tokens_details":{"reasoning_tokens":0},"total_tokens":709},"user":null,"metadata":{}}}
@@ -1,69 +0,0 @@
1
- {
2
- "id": "resp_0b04c5f8dfc43af500692749bc5b288197b45e830995fd32d3",
3
- "object": "response",
4
- "created_at": 1764182460,
5
- "status": "completed",
6
- "background": false,
7
- "billing": {
8
- "payer": "developer"
9
- },
10
- "error": null,
11
- "incomplete_details": null,
12
- "instructions": null,
13
- "max_output_tokens": null,
14
- "max_tool_calls": null,
15
- "model": "gpt-5.1-2025-11-13",
16
- "output": [
17
- {
18
- "id": "apc_0b04c5f8dfc43af500692749bd60908197b0e453c38f30191a",
19
- "type": "apply_patch_call",
20
- "status": "completed",
21
- "call_id": "call_CdXiGtcRl49Q6Ek20tG9lYOr",
22
- "operation": {
23
- "type": "create_file",
24
- "diff": "+## Shopping Checklist\n+\n+- [ ] Milk\n+- [ ] Bread\n+- [ ] Eggs\n+- [ ] Apples\n+- [ ] Coffee\n+\n",
25
- "path": "shopping-checklist.md"
26
- }
27
- }
28
- ],
29
- "parallel_tool_calls": true,
30
- "previous_response_id": null,
31
- "prompt_cache_key": null,
32
- "prompt_cache_retention": null,
33
- "reasoning": {
34
- "effort": "none",
35
- "summary": null
36
- },
37
- "safety_identifier": null,
38
- "service_tier": "default",
39
- "store": true,
40
- "temperature": 1,
41
- "text": {
42
- "format": {
43
- "type": "text"
44
- },
45
- "verbosity": "medium"
46
- },
47
- "tool_choice": "auto",
48
- "tools": [
49
- {
50
- "type": "apply_patch"
51
- }
52
- ],
53
- "top_logprobs": 0,
54
- "top_p": 1,
55
- "truncation": "disabled",
56
- "usage": {
57
- "input_tokens": 642,
58
- "input_tokens_details": {
59
- "cached_tokens": 0
60
- },
61
- "output_tokens": 67,
62
- "output_tokens_details": {
63
- "reasoning_tokens": 0
64
- },
65
- "total_tokens": 709
66
- },
67
- "user": null,
68
- "metadata": {}
69
- }