From 35b5c981fc42c212c33cb7fd58c5071bd51b88eb Mon Sep 17 00:00:00 2001 From: yousefed Date: Fri, 20 Feb 2026 10:23:02 +0100 Subject: [PATCH] experiments --- README.md | 5 + debug-regex.js | 26 + .../api/aiRequest/sendMessageWithAIRequest.ts | 26 +- .../src/api/exporters/tsx/TsxExporter.test.ts | 82 +++ .../src/api/exporters/tsx/TsxExporter.ts | 261 +++++++ packages/xl-ai/src/api/exporters/tsx/index.ts | 1 + packages/xl-ai/src/api/formats/formats.ts | 12 +- .../formats/html-blocks/htmlBlocks.test.ts | 2 +- .../html-document/htmlDocument.test.ts | 184 +++++ .../api/formats/html-document/htmlDocument.ts | 52 ++ .../api/formats/html-document/tools/index.ts | 210 ++++++ .../src/api/formats/tests/sharedTestCases.ts | 8 +- ...ck_1_04b8aeecfeed31ad0e392a4929e7b14f.json | 15 + ...d)_1_7186aca370a3afe374b48437113f0f78.json | 15 + ...c)_1_6e45e8b483018781d3a347f0e2ecd1e9.json | 15 + ...d)_1_a41c115e1597d0b4c3ba7be11ad1970f.json | 15 + ...t)_1_f9cbba2f713396cd771b29b3b25361f7.json | 15 + ...ck_1_b65a8b07cf1a374240984e655186c51b.json | 15 + ...d)_1_4a3ac5fc2174f5d75a80e1df795607a7.json | 15 + ...d)_1_0cda7a8a40522e986020c58441a47c8f.json | 15 + ...t)_1_97b771b47141baec64b6b31c7bd0870b.json | 15 + ...ck_1_8df4b339961b2bacbf3b6d5462971369.json | 15 + ...ck_1_d7f3d589b85dc014d5f536b3f941f3b6.json | 15 + ...d)_1_3c8d705ee030e9d6422e9a28d896c78f.json | 15 + ...d)_1_d7ece95dd7b470ac2c8445b56de14c4d.json | 15 + ...c)_1_4ddd26cb3bd20f62e0060899a3c57056.json | 15 + ...c)_1_ee3dd6efeb79bd98344df49480eddb29.json | 15 + ...d)_1_358291b6f87d2d1bcbc7b488318dc0d5.json | 15 + ...d)_1_528aa99624a5ea1ecf2419b1c5ec471a.json | 15 + ...t)_1_4b63d3fb3ebbd1723d659e661c8300c6.json | 15 + ...t)_1_54c1b65e18228a05a990e64a476a12e2.json | 15 + ...ng_1_1c369cd8c5a498da0f47051946893914.json | 15 + ...on_1_f958ac638e675d62743bd99fcc891740.json | 15 + ...nt_1_c765e50907caf6893b85a5e8053f3a29.json | 15 + ...nt_1_531389fceb12c1b2708740d07e8a7ab8.json | 15 + ...st_1_c0aa3f1f854ce2abe443e22b12b5a02d.json | 15 + ...on_1_ad8bf632345fe3f3db077847b06ed139.json | 15 + ...nt_1_2b4d4dfb9bb12629f81ef931c9879893.json | 15 + ...nt_1_65d70c1bac37c7c4b09eb571e5d385b5.json | 15 + ...st_1_8695bf27c1be0bd1787de54cbe6028cf.json | 15 + ...ng_1_e4d8c00fcff2bb70298a909030687157.json | 15 + ...on_1_08065d705823242620eadeffe098a0fb.json | 15 + ...on_1_8a82739cf497d1566327d1fe0e748f58.json | 15 + ...nt_1_ce33bc467950fe7a62a714bf8918f342.json | 15 + ...nt_1_e66930d796500abae0df4d4a8a25ae48.json | 15 + ...nt_1_1a7f1d7079a72f7ffd5c2634b6a9f6a5.json | 15 + ...st_1_a9f159e42c5da61727c8d77764c66693.json | 15 + ...st_1_b91bf228911b0e8569268b5b3cc57017.json | 15 + .../tools/convertFileReplaceToolCall.test.ts | 681 ++++++++++++++++++ .../tools/convertFileReplaceToolCall.ts | 357 +++++++++ .../api/formats/tsx-document/tools/index.ts | 53 ++ .../formats/tsx-document/tsxDocument.test.ts | 185 +++++ .../api/formats/tsx-document/tsxDocument.ts | 48 ++ packages/xl-ai/src/index.ts | 1 + packages/xl-ai/src/prosemirror/changeset.ts | 20 +- .../src/streamTool/StreamToolExecutor.ts | 47 +- packages/xl-ai/src/streamTool/jsonSchema.ts | 21 +- .../filterNewOrUpdatedOperations.test.ts | 0 .../filterNewOrUpdatedOperations.ts | 39 + packages/xl-ai/src/streamTool/streamTool.ts | 4 +- .../clientside/ClientSideTransport.ts | 21 +- .../util/UIMessageStreamToOperationsResult.ts | 23 +- .../vercelAiSdk/util/chatHandlers.ts | 86 ++- .../util/injectDocumentStateMessages.ts | 6 +- packages/xl-ai/src/testUtil/testAIModels.ts | 2 +- test-diff.txt | 3 + 66 files changed, 2924 insertions(+), 82 deletions(-) create mode 100644 debug-regex.js create mode 100644 packages/xl-ai/src/api/exporters/tsx/TsxExporter.test.ts create mode 100644 packages/xl-ai/src/api/exporters/tsx/TsxExporter.ts create mode 100644 packages/xl-ai/src/api/exporters/tsx/index.ts create mode 100644 packages/xl-ai/src/api/formats/html-document/htmlDocument.test.ts create mode 100644 packages/xl-ai/src/api/formats/html-document/htmlDocument.ts create mode 100644 packages/xl-ai/src/api/formats/html-document/tools/index.ts create mode 100644 packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/anthropic.messages/claude-haiku-4-5 (streaming)/Add heading (h1) and code block_1_04b8aeecfeed31ad0e392a4929e7b14f.json create mode 100644 packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/anthropic.messages/claude-haiku-4-5 (streaming)/add a list (end)_1_7186aca370a3afe374b48437113f0f78.json create mode 100644 packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/anthropic.messages/claude-haiku-4-5 (streaming)/add a new paragraph (empty doc)_1_6e45e8b483018781d3a347f0e2ecd1e9.json create mode 100644 packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/anthropic.messages/claude-haiku-4-5 (streaming)/add a new paragraph (end)_1_a41c115e1597d0b4c3ba7be11ad1970f.json create mode 100644 packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/anthropic.messages/claude-haiku-4-5 (streaming)/add a new paragraph (start)_1_f9cbba2f713396cd771b29b3b25361f7.json create mode 100644 packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/groq.chat/llama-3.3-70b-versatile (streaming)/Add heading (h1) and code block_1_b65a8b07cf1a374240984e655186c51b.json create mode 100644 packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/groq.chat/llama-3.3-70b-versatile (streaming)/add a list (end)_1_4a3ac5fc2174f5d75a80e1df795607a7.json create mode 100644 packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/groq.chat/llama-3.3-70b-versatile (streaming)/add a new paragraph (end)_1_0cda7a8a40522e986020c58441a47c8f.json create mode 100644 packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/groq.chat/llama-3.3-70b-versatile (streaming)/add a new paragraph (start)_1_97b771b47141baec64b6b31c7bd0870b.json create mode 100644 packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/Add heading (h1) and code block_1_8df4b339961b2bacbf3b6d5462971369.json create mode 100644 packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/Add heading (h1) and code block_1_d7f3d589b85dc014d5f536b3f941f3b6.json create mode 100644 packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/add a list (end)_1_3c8d705ee030e9d6422e9a28d896c78f.json create mode 100644 packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/add a list (end)_1_d7ece95dd7b470ac2c8445b56de14c4d.json create mode 100644 packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/add a new paragraph (empty doc)_1_4ddd26cb3bd20f62e0060899a3c57056.json create mode 100644 packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/add a new paragraph (empty doc)_1_ee3dd6efeb79bd98344df49480eddb29.json create mode 100644 packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/add a new paragraph (end)_1_358291b6f87d2d1bcbc7b488318dc0d5.json create mode 100644 packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/add a new paragraph (end)_1_528aa99624a5ea1ecf2419b1c5ec471a.json create mode 100644 packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/add a new paragraph (start)_1_4b63d3fb3ebbd1723d659e661c8300c6.json create mode 100644 packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/add a new paragraph (start)_1_54c1b65e18228a05a990e64a476a12e2.json create mode 100644 packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/anthropic.messages/claude-haiku-4-5 (streaming)/clear block formatting_1_1c369cd8c5a498da0f47051946893914.json create mode 100644 packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/anthropic.messages/claude-haiku-4-5 (streaming)/fix spelling mid-word selection_1_f958ac638e675d62743bd99fcc891740.json create mode 100644 packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/anthropic.messages/claude-haiku-4-5 (streaming)/modify nested content_1_c765e50907caf6893b85a5e8053f3a29.json create mode 100644 packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/anthropic.messages/claude-haiku-4-5 (streaming)/modify parent content_1_531389fceb12c1b2708740d07e8a7ab8.json create mode 100644 packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/anthropic.messages/claude-haiku-4-5 (streaming)/turn paragraphs into list_1_c0aa3f1f854ce2abe443e22b12b5a02d.json create mode 100644 packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/groq.chat/llama-3.3-70b-versatile (streaming)/fix spelling mid-word selection_1_ad8bf632345fe3f3db077847b06ed139.json create mode 100644 packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/groq.chat/llama-3.3-70b-versatile (streaming)/modify nested content_1_2b4d4dfb9bb12629f81ef931c9879893.json create mode 100644 packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/groq.chat/llama-3.3-70b-versatile (streaming)/modify parent content_1_65d70c1bac37c7c4b09eb571e5d385b5.json create mode 100644 packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/groq.chat/llama-3.3-70b-versatile (streaming)/turn paragraphs into list_1_8695bf27c1be0bd1787de54cbe6028cf.json create mode 100644 packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/clear block formatting_1_e4d8c00fcff2bb70298a909030687157.json create mode 100644 packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/fix spelling mid-word selection_1_08065d705823242620eadeffe098a0fb.json create mode 100644 packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/fix spelling mid-word selection_1_8a82739cf497d1566327d1fe0e748f58.json create mode 100644 packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/modify nested content_1_ce33bc467950fe7a62a714bf8918f342.json create mode 100644 packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/modify nested content_1_e66930d796500abae0df4d4a8a25ae48.json create mode 100644 packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/modify parent content_1_1a7f1d7079a72f7ffd5c2634b6a9f6a5.json create mode 100644 packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/turn paragraphs into list_1_a9f159e42c5da61727c8d77764c66693.json create mode 100644 packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/turn paragraphs into list_1_b91bf228911b0e8569268b5b3cc57017.json create mode 100644 packages/xl-ai/src/api/formats/tsx-document/tools/convertFileReplaceToolCall.test.ts create mode 100644 packages/xl-ai/src/api/formats/tsx-document/tools/convertFileReplaceToolCall.ts create mode 100644 packages/xl-ai/src/api/formats/tsx-document/tools/index.ts create mode 100644 packages/xl-ai/src/api/formats/tsx-document/tsxDocument.test.ts create mode 100644 packages/xl-ai/src/api/formats/tsx-document/tsxDocument.ts rename packages/xl-ai/src/streamTool/{ => operations}/filterNewOrUpdatedOperations.test.ts (100%) rename packages/xl-ai/src/streamTool/{ => operations}/filterNewOrUpdatedOperations.ts (69%) create mode 100644 test-diff.txt diff --git a/README.md b/README.md index f391efb3f3..a62cf06a1a 100644 --- a/README.md +++ b/README.md @@ -105,3 +105,8 @@ Hosting and deployments powered by Vercel: NLNet This project is tested with BrowserStack + +CUSTOM BLOCKS AS HTML +HTML AS DOCUMENT + +This is a test line to check diff view behavior. diff --git a/debug-regex.js b/debug-regex.js new file mode 100644 index 0000000000..d515b8ace2 --- /dev/null +++ b/debug-regex.js @@ -0,0 +1,26 @@ +function parseElements(tsx) { + const elements = []; + const pattern = /<([A-Z][a-zA-Z0-9]*)\s*([^>]*?)(?:\/>|>([\s\S]*?)<\/\1>)/g; + let match; + while ((match = pattern.exec(tsx)) !== null) { + const attributes = match[2]; + console.log("Matched tag:", match[1]); + console.log("Attributes:", JSON.stringify(attributes)); + + const idMatch = attributes.match(/id=(["'])(.*?)\1/); + console.log("ID Match:", idMatch ? idMatch[2] : "null"); + + elements.push({ + content: match[0], + id: idMatch ? idMatch[2] : null, + }); + } + return elements; +} + +const input = `New block +Hello`; + +console.log("Input length:", input.length); +const results = parseElements(input); +console.log("Results:", JSON.stringify(results, null, 2)); diff --git a/packages/xl-ai/src/api/aiRequest/sendMessageWithAIRequest.ts b/packages/xl-ai/src/api/aiRequest/sendMessageWithAIRequest.ts index 3250329df7..0232422abb 100644 --- a/packages/xl-ai/src/api/aiRequest/sendMessageWithAIRequest.ts +++ b/packages/xl-ai/src/api/aiRequest/sendMessageWithAIRequest.ts @@ -2,7 +2,6 @@ import { Chat } from "@ai-sdk/react"; import { UIMessage } from "ai"; import merge from "lodash.merge"; import { - setupToolCallStreaming, streamToolsToToolSet, toolSetToToolDefinitions, } from "../../streamTool/index.js"; @@ -42,12 +41,12 @@ export async function sendMessageWithAIRequest( documentState: aiRequest.documentState, }); - const toolCallProcessing = setupToolCallStreaming( - aiRequest.streamTools, - chat, - aiRequest.onStart, - abortSignal, - ); + // const toolCallProcessing = setupToolCallStreaming( + // aiRequest.streamTools, + // chat, + // aiRequest.onStart, + // abortSignal, + // ); options = merge(options, { metadata: { source: "blocknote-ai", @@ -58,9 +57,14 @@ export async function sendMessageWithAIRequest( ), }, }); - + const start = performance.now(); await chat.sendMessage(message, options); - - const result = await toolCallProcessing; - return result; + console.log("took", performance.now() - start); + console.log(JSON.stringify(chat.messages, null, 2)); + return { + ok: true, + error: undefined, + }; + // const result = await toolCallProcessing; + // return result; } diff --git a/packages/xl-ai/src/api/exporters/tsx/TsxExporter.test.ts b/packages/xl-ai/src/api/exporters/tsx/TsxExporter.test.ts new file mode 100644 index 0000000000..c989b950c8 --- /dev/null +++ b/packages/xl-ai/src/api/exporters/tsx/TsxExporter.test.ts @@ -0,0 +1,82 @@ +import { describe, expect, it } from "vitest"; + +import { + BlockNoteSchema, + defaultBlockSpecs, + defaultInlineContentSpecs, + defaultStyleSpecs, +} from "@blocknote/core"; +import { TsxExporter } from "./TsxExporter.js"; + +describe("TsxExporter", () => { + const schema = BlockNoteSchema.create({ + blockSpecs: defaultBlockSpecs, + inlineContentSpecs: defaultInlineContentSpecs, + styleSpecs: defaultStyleSpecs, + }); + const exporter = new TsxExporter(schema); + + it("exports a document with nested blocks", async () => { + const blocks = [ + { + id: "h1", + type: "heading", + props: { + level: 1, + textColor: "default", + backgroundColor: "default", + textAlignment: "left", + }, + content: [{ type: "text", text: "Title", styles: {} }], + children: [], + }, + { + id: "p1", + type: "paragraph", + props: { + textColor: "default", + backgroundColor: "default", + textAlignment: "left", + }, + content: [ + { type: "text", text: "Hello ", styles: {} }, + { type: "text", text: "World", styles: { bold: true } }, + ], + children: [], + }, + { + id: "list1", + type: "bulletListItem", + props: { + textColor: "default", + backgroundColor: "default", + textAlignment: "left", + }, + content: [{ type: "text", text: "Item 1", styles: {} }], + children: [ + { + id: "sublist1", + type: "bulletListItem", + props: { + textColor: "default", + backgroundColor: "default", + textAlignment: "left", + }, + content: [{ type: "text", text: "Sub Item 1", styles: {} }], + children: [], + }, + ], + }, + ] as any; + + const result = await exporter.toTsx(blocks); + + const expected = [ + 'Title', + 'Hello World', + 'Item 1Sub Item 1', + ].join("\n"); + + expect(result).toBe(expected); + }); +}); diff --git a/packages/xl-ai/src/api/exporters/tsx/TsxExporter.ts b/packages/xl-ai/src/api/exporters/tsx/TsxExporter.ts new file mode 100644 index 0000000000..badadc27a1 --- /dev/null +++ b/packages/xl-ai/src/api/exporters/tsx/TsxExporter.ts @@ -0,0 +1,261 @@ +import { + BlockFromConfig, + BlockNoteSchema, + BlockSchema, + COLORS_DEFAULT, + Exporter, + ExporterOptions, + InlineContentSchema, + StyleSchema, + StyledText, +} from "@blocknote/core"; + +function capitalize(str: string) { + return str.charAt(0).toUpperCase() + str.slice(1); +} + +function propsToString(props: Record) { + return Object.entries(props) + .filter( + ([_, v]) => v !== undefined && v !== null && v !== "" && v !== "default", + ) + .map(([k, v]) => { + if (v === true) { + return k; + } + return `${k}="${v}"`; + }) + .join(" "); +} + +/** + * Result of exporting blocks to TSX, including the TSX string and block ranges. + */ +export type TsxExportResult = { + /** The TSX string representation of the blocks */ + tsx: string; + /** Map of block ID to character range (start, end) in the tsx string */ + blockRanges: Map; +}; + +export class TsxExporter< + B extends BlockSchema = any, + I extends InlineContentSchema = any, + S extends StyleSchema = any, +> extends Exporter { + public constructor( + schema: BlockNoteSchema, + options: Partial = {}, + ) { + const opts = Object.assign( + { + colors: COLORS_DEFAULT, + }, + options, + ); + + const blockMapping: any = {}; + for (const type of Object.keys(schema.blockSpecs)) { + const Tag = capitalize(type); + blockMapping[type] = ( + block: any, + exporter: Exporter, + _nestingLevel: number, + _numberedListIndex: number | undefined, + children: string[], + ) => { + const props = propsToString({ ...block.props, id: block.id }); + const content = exporter.transformInlineContent(block.content).join(""); + const childrenContent = children ? children.join("") : ""; + const inner = `${content}${childrenContent}`; + + const openTag = props ? `<${Tag} ${props}` : `<${Tag}`; + + if (!inner) { + return `${openTag} />`; + } + + return `${openTag}>${inner}`; + }; + } + + const inlineContentMapping: any = {}; + for (const type of Object.keys(schema.inlineContentSpecs)) { + if (type === "text") { + inlineContentMapping[type] = ( + node: StyledText, + exporter: Exporter, + ) => exporter.transformStyledText(node); + } else if (type === "link") { + inlineContentMapping[type] = ( + node: any, + exporter: Exporter, + ) => { + const content = exporter.transformStyledText(node.content); + return `${content}`; + }; + } else { + const Tag = capitalize(type); + // Custom inline content + inlineContentMapping[type] = (node: any) => { + const props = propsToString(node.props); + return props ? `<${Tag} ${props} />` : `<${Tag} />`; + }; + } + } + + const styleMapping: any = {}; + for (const type of Object.keys(schema.styleSpecs)) { + const Tag = capitalize(type); + styleMapping[type] = ( + text: string, + _exporter: Exporter, + value: any, + ) => { + if (value === true) { + return `<${Tag}>${text}`; + } + return `<${Tag} value="${value}">${text}`; + }; + } + + super( + schema, + { + blockMapping, + inlineContentMapping, + styleMapping, + }, + opts as ExporterOptions, + ); + } + + public transformStyledText(styledText: StyledText): string { + let text = styledText.text; + if (styledText.styles) { + const styles = styledText.styles as Record; + for (const [styleName, styleValue] of Object.entries(styles)) { + if (this.mappings.styleMapping[styleName]) { + text = (this.mappings.styleMapping[styleName] as any)( + text, + this, + styleValue, + ); + } + } + } + return text; + } + + /** + * Convert blocks to TSX string and return block ranges. + * This is the preferred method as it tracks block positions during serialization. + */ + public async toTsxWithRanges( + blocks: BlockFromConfig[], + ): Promise { + const blockRanges = new Map(); + const results: string[] = []; + let numberedListIndex = 0; + let currentPosition = 0; + + for (const block of blocks) { + if (block.type === ("numberedListItem" as any)) { + numberedListIndex++; + } else { + numberedListIndex = 0; + } + + const start = currentPosition; + const mappedBlock = await this.serializeBlockWithRanges( + block as any, + 0, + numberedListIndex, + blockRanges, + currentPosition, + ); + results.push(mappedBlock); + currentPosition = start + mappedBlock.length; + + // Track this top-level block's range + blockRanges.set(block.id, { start, end: currentPosition }); + + // Account for newline between blocks + if (blocks.indexOf(block as any) < blocks.length - 1) { + currentPosition += 1; // for "\n" + } + } + + return { + tsx: results.join("\n"), + blockRanges, + }; + } + + /** + * Convert blocks to TSX string (legacy method, doesn't return ranges). + */ + public async toTsx( + blocks: BlockFromConfig[], + ): Promise { + const result = await this.toTsxWithRanges(blocks); + return result.tsx; + } + + private async serializeBlockWithRanges( + block: any, + nestingLevel: number, + numberedListIndex: number, + blockRanges: Map, + parentOffset: number, + ): Promise { + const childBlocks = block.children || []; + const mappedChildren: string[] = []; + let childNumberedIndex = 0; + + // We need to calculate child positions relative to parent + // This is complex because children are embedded in the parent's content + // For now, we track top-level blocks; children can be derived later if needed + + for (const child of childBlocks) { + if (child.type === "numberedListItem") { + childNumberedIndex++; + } else { + childNumberedIndex = 0; + } + const childContent = await this.serializeBlockWithRanges( + child, + nestingLevel + 1, + childNumberedIndex, + blockRanges, + 0, // offset will be calculated after we know parent content + ); + mappedChildren.push(childContent); + } + + const serialized = await this.mapBlock( + block, + nestingLevel, + numberedListIndex, + mappedChildren, + ); + + // For nested blocks, calculate their position within the serialized string + // The children are embedded so we need to find their actual positions + let searchPos = 0; + for (let i = 0; i < childBlocks.length; i++) { + const child = childBlocks[i]; + const childContent = mappedChildren[i]; + const childStart = serialized.indexOf(childContent, searchPos); + if (childStart !== -1) { + blockRanges.set(child.id, { + start: parentOffset + childStart, + end: parentOffset + childStart + childContent.length, + }); + searchPos = childStart + childContent.length; + } + } + + return serialized; + } +} diff --git a/packages/xl-ai/src/api/exporters/tsx/index.ts b/packages/xl-ai/src/api/exporters/tsx/index.ts new file mode 100644 index 0000000000..7ac1c381a0 --- /dev/null +++ b/packages/xl-ai/src/api/exporters/tsx/index.ts @@ -0,0 +1 @@ +export { TsxExporter } from "./TsxExporter.js"; diff --git a/packages/xl-ai/src/api/formats/formats.ts b/packages/xl-ai/src/api/formats/formats.ts index 53302b50a0..04dcbb419e 100644 --- a/packages/xl-ai/src/api/formats/formats.ts +++ b/packages/xl-ai/src/api/formats/formats.ts @@ -1,4 +1,3 @@ -import { BlockNoteEditor } from "@blocknote/core"; import { StreamTool } from "../../streamTool/streamTool.js"; import { AddBlocksToolCall } from "./base-tools/createAddBlocksTool.js"; import { UpdateBlockToolCall } from "./base-tools/createUpdateBlockTool.js"; @@ -8,22 +7,32 @@ import { htmlBlockLLMFormat } from "./html-blocks/htmlBlocks.js"; import { jsonBlockLLMFormat } from "./json/json.js"; import { markdownBlockLLMFormat } from "./markdown-blocks/markdownBlocks.js"; +// ... imports + +import { BlockNoteEditor } from "@blocknote/core"; +import { tsxDocumentLLMFormat } from "./tsx-document/tsxDocument.js"; +// ... imports + // Define the tool types export type AddTool = StreamTool>; export type UpdateTool = StreamTool>; export type DeleteTool = StreamTool; +// We assume T is the replacement operation type, or just generic +export type ReplaceTool = StreamTool; // Create a conditional type that maps boolean flags to tool types export type StreamToolsConfig = { add?: boolean; update?: boolean; delete?: boolean; + replace?: boolean; }; export type StreamToolsResult = [ ...(T extends { update: true } ? [UpdateTool] : []), ...(T extends { add: true } ? [AddTool] : []), ...(T extends { delete: true } ? [DeleteTool] : []), + ...(T extends { replace: true } ? [ReplaceTool] : []), ]; export type StreamToolsProvider< @@ -59,4 +68,5 @@ export const aiDocumentFormats = { _experimental_json: jsonBlockLLMFormat, _experimental_markdown: markdownBlockLLMFormat, html: htmlBlockLLMFormat, + tsx: tsxDocumentLLMFormat, } satisfies Record>; diff --git a/packages/xl-ai/src/api/formats/html-blocks/htmlBlocks.test.ts b/packages/xl-ai/src/api/formats/html-blocks/htmlBlocks.test.ts index 6b092f3bd3..a5decc3b50 100644 --- a/packages/xl-ai/src/api/formats/html-blocks/htmlBlocks.test.ts +++ b/packages/xl-ai/src/api/formats/html-blocks/htmlBlocks.test.ts @@ -69,7 +69,7 @@ describe("Models", () => { ); beforeAll(() => { - server.listen(); + // server.listen(); }); afterAll(() => { diff --git a/packages/xl-ai/src/api/formats/html-document/htmlDocument.test.ts b/packages/xl-ai/src/api/formats/html-document/htmlDocument.test.ts new file mode 100644 index 0000000000..2ee5c4f3ee --- /dev/null +++ b/packages/xl-ai/src/api/formats/html-document/htmlDocument.test.ts @@ -0,0 +1,184 @@ +import { getCurrentTest } from "@vitest/runner"; +import { getSortedEntries, snapshot, toHashString } from "msw-snapshot"; +import { setupServer } from "msw/node"; +import path from "path"; +import { afterAll, afterEach, beforeAll, describe } from "vitest"; +import { testAIModels } from "../../../testUtil/testAIModels.js"; + +import { ClientSideTransport } from "../../../streamTool/vercelAiSdk/clientside/ClientSideTransport.js"; +import { generateSharedTestCases } from "../tests/sharedTestCases.js"; +import { htmlDocumentLLMFormat } from "./htmlDocument.js"; + +const BASE_FILE_PATH = path.resolve( + __dirname, + "__snapshots__", + path.basename(__filename), +); + +const fetchCountMap: Record = {}; + +async function createRequestHash(req: Request) { + const url = new URL(req.url); + return [ + // url.host, + // url.pathname, + toHashString([ + req.method, + url.origin, + url.pathname, + getSortedEntries(url.searchParams), + getSortedEntries(req.headers), + // getSortedEntries(req.cookies), + new TextDecoder("utf-8").decode(await req.arrayBuffer()), + ]), + ].join("/"); +} + +// Main test suite with snapshot middleware +describe("Models", () => { + // Define server with snapshot middleware for the main tests + const server = setupServer( + snapshot({ + updateSnapshots: "missing", + // onSnapshotUpdated: "all", + // ignoreSnapshots: true, + async createSnapshotPath(info) { + // use a unique path for each model + const t = getCurrentTest()!; + const mswPath = path.join( + t.suite!.name, // same directory as the test snapshot + "__msw_snapshots__", + t.suite!.suite!.name, // model / streaming params + t.name, + ); + // in case there are multiple requests in a test, we need to use a separate snapshot for each request + fetchCountMap[mswPath] = (fetchCountMap[mswPath] || 0) + 1; + const hash = await createRequestHash(info.request); + return mswPath + `_${fetchCountMap[mswPath]}_${hash}.json`; + }, + basePath: BASE_FILE_PATH, + // onFetchFromSnapshot(info, snapshot) { + // console.log("onFetchFromSnapshot", info, snapshot); + // }, + // onFetchFromServer(info, snapshot) { + // console.log("onFetchFromServer", info, snapshot); + // }, + }), + ); + + beforeAll(() => { + // server.listen(); + }); + + afterAll(() => { + server.close(); + }); + + afterEach(() => { + delete (window as Window & { __TEST_OPTIONS?: any }).__TEST_OPTIONS; + }); + + const testMatrix = [ + { + model: testAIModels.openai, + stream: true, + }, + // { + // model: testAIModels.openai, + // stream: false, + // }, + // TODO: https://github.com/vercel/ai/issues/8533 + { + model: testAIModels.groq, + stream: true, + }, + // { + // model: testAIModels.groq, + // stream: false, + // }, + // anthropic streaming needs further investigation for some test cases + // { + // model: testAIModels.anthropic, + // stream: true, + // }, + { + model: testAIModels.anthropic, + stream: true, + }, + // currently doesn't support streaming + // https://github.com/vercel/ai/issues/5350 + // { + // model: testAIModels.albert, + // stream: true, + // }, + // This works for most prompts, but not all (would probably need a llama upgrade?) + // { + // model: testAIModels.albert, + // stream: false, + // }, + ]; + + for (const params of testMatrix) { + describe(`${params.model.provider}/${params.model.modelId} (${ + params.stream ? "streaming" : "non-streaming" + })`, () => { + generateSharedTestCases({ + streamToolsProvider: htmlDocumentLLMFormat.getStreamToolsProvider({ + withDelays: false, + }), + documentStateBuilder: + htmlDocumentLLMFormat.defaultDocumentStateBuilder as any, + transport: new ClientSideTransport({ + systemPrompt: htmlDocumentLLMFormat.systemPrompt, + model: params.model, + stream: params.stream, + _additionalOptions: { + maxRetries: 0, + }, + }), + }); + }); + } +}); + +// describe("streamToolsProvider", () => { +// it("should return the correct stream tools", () => { +// // test skipped, this is only to validate type inference +// return; + +// // eslint-disable-next-line no-unreachable +// const editor = BlockNoteEditor.create(); +// const streamTools = htmlBlockLLMFormat +// .getStreamToolsProvider({ +// defaultStreamTools: { +// add: true, +// }, +// }) +// .getStreamTools(editor, true); + +// const executor = new StreamToolExecutor(streamTools); + +// executor.executeOne({ +// type: "add", +// blocks: ["

test

"], +// referenceId: "1", +// position: "after", +// }); + +// executor.executeOne({ +// // @ts-expect-error +// type: "update", +// blocks: ["

test

"], +// referenceId: "1", +// position: "after", +// }); + +// executor.executeOne({ +// type: "add", +// // @ts-expect-error +// blocks: [{ type: "paragraph", content: "test" }], +// referenceId: "1", +// position: "after", +// }); +// }); +// }); diff --git a/packages/xl-ai/src/api/formats/html-document/htmlDocument.ts b/packages/xl-ai/src/api/formats/html-document/htmlDocument.ts new file mode 100644 index 0000000000..5de6e1b347 --- /dev/null +++ b/packages/xl-ai/src/api/formats/html-document/htmlDocument.ts @@ -0,0 +1,52 @@ +import { BlockNoteEditor } from "@blocknote/core"; +import { AIRequest } from "../../aiRequest/types.js"; +import { StreamToolsConfig, StreamToolsProvider } from "../formats.js"; +import { replaceTool } from "./tools/index.js"; + +const systemPrompt = `You are manipulating a text document using TSX components. +Each block is represented as a TSX component with props. +`; + +type BlockRange = { + start: number; + end: number; +}; + +export async function exportHtmlDocument(editor: BlockNoteEditor) { + const separator = "\n"; + const blockRanges: Map = new Map(); + let document = ""; + for (const block of editor.document) { + const html = await editor.blocksToHTMLLossy([block]); + blockRanges.set(block.id, { + start: document.length, + end: document.length + html.length, + }); + document += html + separator; + } + document = document.trim(); + return { document, blockRanges }; +} + +export const htmlDocumentLLMFormat = { + getStreamToolsProvider: ( + opts: { withDelays?: boolean; defaultStreamTools?: T } = {}, + ): StreamToolsProvider => ({ + getStreamTools: (editor, _selectionInfo, _onBlockUpdate) => { + // Return the placeholder replacement tool + return [ + replaceTool(editor, { + idsSuffixed: false, // TODO + withDelays: opts.withDelays ?? true, + }), + ]; + }, + }), + systemPrompt, + // tools, + defaultDocumentStateBuilder: async ( + aiRequest: Omit, + ) => { + return (await exportHtmlDocument(aiRequest.editor)).document; + }, +}; diff --git a/packages/xl-ai/src/api/formats/html-document/tools/index.ts b/packages/xl-ai/src/api/formats/html-document/tools/index.ts new file mode 100644 index 0000000000..743a938020 --- /dev/null +++ b/packages/xl-ai/src/api/formats/html-document/tools/index.ts @@ -0,0 +1,210 @@ +import { + BlockNoteEditor, + blockToNode, + getBlockInfo, + getNodeById, + trackPosition, +} from "@blocknote/core"; +import { Fragment, Slice } from "prosemirror-model"; +import { Transform } from "prosemirror-transform"; +import { + applyAgentStep, + delayAgentStep, + getStepsAsAgent, +} from "../../../../prosemirror/agent.js"; +import { trToReplaceSteps } from "../../../../prosemirror/changeset.js"; +import { + getApplySuggestionsTr, + rebaseTool, +} from "../../../../prosemirror/rebaseTool.js"; +import { streamTool } from "../../../../streamTool/streamTool.js"; +import { AbortError } from "../../../../util/AbortError.js"; +import { getPartialHTML } from "../../html-blocks/tools/getPartialHTML.js"; +import { exportHtmlDocument } from "../htmlDocument.js"; + +type FileReplaceToolCall = { + type: "file_replace"; + target: string; + replacement: string; +}; + +type BlockRange = { + start: number; + end: number; +}; + +// Placeholder for now +export const replaceTool = ( + editor: BlockNoteEditor, + options: { + idsSuffixed: boolean; + withDelays: boolean; + updateSelection?: { + from: number; + to: number; + }; + onBlockUpdate?: (blockId: string) => void; + }, +) => { + // We use streamTool directly as requested + return streamTool({ + name: "file_replace", + description: "Replace a part of the document file", + inputSchema: { + type: "object", + properties: { + target: { + type: "string", + description: "The string to replace", + }, + replacement: { + type: "string", + description: "The replacement string", + }, + }, + required: ["target", "replacement"], + }, + validate: (operation: any) => { + if (!operation.target?.length || !operation.replacement?.length) { + return { ok: false, error: "Missing target or replacement" }; + } + return { ok: true, value: operation as FileReplaceToolCall }; + }, + executor: async () => { + const STEP_SIZE = 50; + let minSize = STEP_SIZE; + const selectionPositions = options.updateSelection + ? { + from: trackPosition(editor, options.updateSelection.from), + to: trackPosition(editor, options.updateSelection.to), + } + : undefined; + + // TODO: init here or pass in? + const { blockRanges, document } = await exportHtmlDocument(editor); + + let startPos: number | undefined; + let endPos: number | undefined; + + return { + execute: async (chunk, abortSignal) => { + if (chunk.operation.type !== "file_replace") { + return false; + } + + const operation = chunk.operation as FileReplaceToolCall; + + // TODO: apply suggestions? + + const start = document.indexOf(operation.target); + + if (start === -1) { + return true; // TODO? + } + + const end = start + operation.target.length; + + const allAffected: string[] = []; + for (const [id, range] of blockRanges) { + if (range.start < end && range.end > start) { + allAffected.push(id); + } + } + allAffected.sort( + (a, b) => blockRanges.get(a)!.start - blockRanges.get(b)!.start, + ); + + const startBlock = allAffected[0]; + const endBlock = allAffected[allAffected.length - 1]; + + const extraPrefix = document.substring( + blockRanges.get(startBlock)!.start, + start, + ); + const extraSuffix = document.substring( + end, + blockRanges.get(endBlock)!.end, + ); + + const replacement = + extraPrefix + + operation.replacement + + (chunk.isPossiblyPartial ? "" : extraSuffix); + + // TODO: might not be entire block + const parsedHtml = chunk.isPossiblyPartial + ? getPartialHTML(replacement) + : replacement; + + if (!parsedHtml) { + // TODO + return true; + } + + const blocks = await editor.tryParseHTMLToBlocks(parsedHtml); + // Placeholder: logic to map to block updates will be added later + const nodes = blocks.map((block) => + blockToNode(block, editor.pmSchema, editor.schema.styleSchema), + ); + const fragment = Fragment.fromArray(nodes); + + const slice = new Slice(fragment, 0, 0); + + // REC: we could investigate whether we can use a single rebasetool across operations instead of + // creating a new one every time (possibly expensive) + const tool = rebaseTool(editor, getApplySuggestionsTr(editor)); + + const replaceTr = new Transform(tool.doc); + + if (startPos === undefined || endPos === undefined) { + const startNode = getNodeById(startBlock, tool.doc)!; + const endNode = getNodeById(endBlock, tool.doc)!; + + // TODO: when an error happens here, unit test doesn't crash? + + startPos = startNode.posBeforeNode; + endPos = getBlockInfo(endNode).bnBlock.afterPos; + } + + replaceTr.replaceRange(startPos, endPos, slice); + + startPos = replaceTr.mapping.map(startPos); + endPos = replaceTr.mapping.map(endPos); + + // const slice2 = tool.doc.slice( + // startNode.posBeforeNode, + // getBlockInfo(endNode).bnBlock.afterPos, + // ); + debugger; + const steps = trToReplaceSteps( + replaceTr, + tool.doc, + chunk.isPossiblyPartial, + ); + + const inverted = steps.map((step) => step.map(tool.invertMap)!); + + const tr = new Transform(editor.prosemirrorState.doc); + for (const step of inverted) { + tr.step(step.map(tr.mapping)!); + } + const agentSteps = getStepsAsAgent(tr); + + for (const step of agentSteps) { + if (abortSignal?.aborted) { + throw new AbortError("Operation was aborted"); + } + if (options.withDelays) { + await delayAgentStep(step); + } + editor.transact((tr) => { + applyAgentStep(tr, step); + }); + // options.onBlockUpdate?.(operation.id); + } + return true; + }, + }; + }, + }); +}; diff --git a/packages/xl-ai/src/api/formats/tests/sharedTestCases.ts b/packages/xl-ai/src/api/formats/tests/sharedTestCases.ts index c15e9302eb..a8bf914fbf 100644 --- a/packages/xl-ai/src/api/formats/tests/sharedTestCases.ts +++ b/packages/xl-ai/src/api/formats/tests/sharedTestCases.ts @@ -41,6 +41,7 @@ export function generateSharedTestCases( textAlignment?: boolean; blockColor?: boolean; }, + benchmarks = false, ) { function skipIfUnsupported( test: DocumentOperationTestCase, @@ -87,9 +88,10 @@ export function generateSharedTestCases( editor, useSelection: selection !== undefined, streamToolsProvider: aiOptions.streamToolsProvider, + documentStateBuilder: aiOptions.documentStateBuilder, }); - await sendMessageWithAIRequest( + const result = await sendMessageWithAIRequest( chat, aiRequest, { @@ -104,10 +106,14 @@ export function generateSharedTestCases( aiOptions.chatRequestOptions, ); + return; if (chat.status !== "ready") { throw new Error(`Chat status is not "ready": ${chat.status}`); } + if (!result.ok) { + throw new Error(`Tool call processing failed: ${result.error}`); + } // const result = await callLLM(editor, { // userPrompt: test.userPrompt, // useSelection: selection !== undefined, diff --git a/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/anthropic.messages/claude-haiku-4-5 (streaming)/Add heading (h1) and code block_1_04b8aeecfeed31ad0e392a4929e7b14f.json b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/anthropic.messages/claude-haiku-4-5 (streaming)/Add heading (h1) and code block_1_04b8aeecfeed31ad0e392a4929e7b14f.json new file mode 100644 index 0000000000..da75512517 --- /dev/null +++ b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/anthropic.messages/claude-haiku-4-5 (streaming)/Add heading (h1) and code block_1_04b8aeecfeed31ad0e392a4929e7b14f.json @@ -0,0 +1,15 @@ +{ + "request": { + "method": "POST", + "url": "https://api.anthropic.com/v1/messages", + "body": "{\"model\":\"claude-haiku-4-5\",\"max_tokens\":64000,\"system\":[{\"type\":\"text\",\"text\":\"You are manipulating a text document using TSX components.\\nEach block is represented as a TSX component with props.\\n\"}],\"messages\":[{\"role\":\"assistant\",\"content\":[{\"type\":\"text\",\"text\":\"There is no active selection. This is the latest state of the document (ignore previous documents, you MUST issue operations against this latest version of the document). \\nThe cursor is BETWEEN two blocks as indicated by cursor: true.\\nPrefer updating existing blocks over removing and adding (but this also depends on the user's question).\"},{\"type\":\"text\",\"text\":\"[{\\\"id\\\":\\\"ref1$\\\",\\\"block\\\":\\\"Hello, world!\\\"},{\\\"cursor\\\":true},{\\\"id\\\":\\\"ref2$\\\",\\\"block\\\":\\\"How are you?\\\"}]\"}]},{\"role\":\"user\",\"content\":[{\"type\":\"text\",\"text\":\"at the end of doc, add a h1 heading `Code` and a javascript code block (block, not inline style) with `console.log('hello world');`\"}]}],\"tools\":[{\"name\":\"file_replace\",\"input_schema\":{\"type\":\"object\",\"properties\":{\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"target\",\"replacement\"]}}],\"tool_choice\":{\"type\":\"any\"},\"stream\":true}", + "headers": [], + "cookies": [] + }, + "response": { + "status": 200, + "statusText": "", + "body": "event: message_start\ndata: {\"type\":\"message_start\",\"message\":{\"model\":\"claude-haiku-4-5-20251001\",\"id\":\"msg_01GfoWzCu6HZNLcqci5hPfPd\",\"type\":\"message\",\"role\":\"assistant\",\"content\":[],\"stop_reason\":null,\"stop_sequence\":null,\"usage\":{\"input_tokens\":885,\"cache_creation_input_tokens\":0,\"cache_read_input_tokens\":0,\"cache_creation\":{\"ephemeral_5m_input_tokens\":0,\"ephemeral_1h_input_tokens\":0},\"output_tokens\":8,\"service_tier\":\"standard\",\"inference_geo\":\"not_available\"}} }\n\nevent: content_block_start\ndata: {\"type\":\"content_block_start\",\"index\":0,\"content_block\":{\"type\":\"tool_use\",\"id\":\"toolu_015BJ6PB7NYFrkPJCXT4ewXT\",\"name\":\"file_replace\",\"input\":{}} }\n\nevent: ping\ndata: {\"type\": \"ping\"}\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"{\\\"target\\\": \\\"{\\\\\\\"\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"i\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"d\\\\\\\":\\\\\\\"ref2\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"$\\\\\\\",\\\\\\\"block\\\\\\\":\\\\\\\"How are you?\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"\\\\\\\"}]\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"\\\", \\\"replacement\\\": \\\"{\\\\\\\"\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"id\\\\\\\":\\\\\\\"ref2$\\\\\\\",\\\\\\\"block\\\\\\\":\\\\\\\"\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"How are\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\" you?\\\\\\\"},\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"{\\\\\\\"i\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"d\\\\\\\":\\\\\\\"ref3\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"$\\\\\\\",\\\\\\\"block\\\\\\\":\\\\\\\"Code\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"\\\\\\\"},\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"{\\\\\\\"i\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"d\\\\\\\":\\\\\\\"ref4$\\\\\\\",\\\\\\\"block\\\\\\\":\\\\\\\"\"}}\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"console.log('hello world')\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\";\\\\\\\"}]\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"\\\"}\"} }\n\nevent: content_block_stop\ndata: {\"type\":\"content_block_stop\",\"index\":0 }\n\nevent: message_delta\ndata: {\"type\":\"message_delta\",\"delta\":{\"stop_reason\":\"tool_use\",\"stop_sequence\":null},\"usage\":{\"input_tokens\":885,\"cache_creation_input_tokens\":0,\"cache_read_input_tokens\":0,\"output_tokens\":181} }\n\nevent: message_stop\ndata: {\"type\":\"message_stop\" }\n\n", + "headers": [] + } +} \ No newline at end of file diff --git a/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/anthropic.messages/claude-haiku-4-5 (streaming)/add a list (end)_1_7186aca370a3afe374b48437113f0f78.json b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/anthropic.messages/claude-haiku-4-5 (streaming)/add a list (end)_1_7186aca370a3afe374b48437113f0f78.json new file mode 100644 index 0000000000..d4cbb27de5 --- /dev/null +++ b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/anthropic.messages/claude-haiku-4-5 (streaming)/add a list (end)_1_7186aca370a3afe374b48437113f0f78.json @@ -0,0 +1,15 @@ +{ + "request": { + "method": "POST", + "url": "https://api.anthropic.com/v1/messages", + "body": "{\"model\":\"claude-haiku-4-5\",\"max_tokens\":64000,\"system\":[{\"type\":\"text\",\"text\":\"You are manipulating a text document using TSX components.\\nEach block is represented as a TSX component with props.\\n\"}],\"messages\":[{\"role\":\"assistant\",\"content\":[{\"type\":\"text\",\"text\":\"There is no active selection. This is the latest state of the document (ignore previous documents, you MUST issue operations against this latest version of the document). \\nThe cursor is BETWEEN two blocks as indicated by cursor: true.\\nPrefer updating existing blocks over removing and adding (but this also depends on the user's question).\"},{\"type\":\"text\",\"text\":\"[{\\\"id\\\":\\\"ref1$\\\",\\\"block\\\":\\\"Hello, world!\\\"},{\\\"cursor\\\":true},{\\\"id\\\":\\\"ref2$\\\",\\\"block\\\":\\\"How are you?\\\"}]\"}]},{\"role\":\"user\",\"content\":[{\"type\":\"text\",\"text\":\"add a list with the items 'Apples' and 'Bananas' after the last sentence\"}]}],\"tools\":[{\"name\":\"file_replace\",\"input_schema\":{\"type\":\"object\",\"properties\":{\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"target\",\"replacement\"]}}],\"tool_choice\":{\"type\":\"any\"},\"stream\":true}", + "headers": [], + "cookies": [] + }, + "response": { + "status": 200, + "statusText": "", + "body": "event: message_start\ndata: {\"type\":\"message_start\",\"message\":{\"model\":\"claude-haiku-4-5-20251001\",\"id\":\"msg_011e2khqh8KN1w3fWG6H3svm\",\"type\":\"message\",\"role\":\"assistant\",\"content\":[],\"stop_reason\":null,\"stop_sequence\":null,\"usage\":{\"input_tokens\":871,\"cache_creation_input_tokens\":0,\"cache_read_input_tokens\":0,\"cache_creation\":{\"ephemeral_5m_input_tokens\":0,\"ephemeral_1h_input_tokens\":0},\"output_tokens\":8,\"service_tier\":\"standard\",\"inference_geo\":\"not_available\"}} }\n\nevent: content_block_start\ndata: {\"type\":\"content_block_start\",\"index\":0,\"content_block\":{\"type\":\"tool_use\",\"id\":\"toolu_01WYgx3eCAy62R322AiJpqmM\",\"name\":\"file_replace\",\"input\":{}} }\n\nevent: ping\ndata: {\"type\": \"ping\"}\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"{\\\"target\\\": \\\"{\\\\\\\"\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"cursor\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"\\\\\\\":\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"true},\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"{\\\\\\\"id\\\\\\\":\\\\\\\"ref2$\\\\\\\",\\\\\\\"block\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"\\\\\\\":\\\\\\\"How\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\" are you?\\\\\\\"\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"}\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"\\\", \\\"replacement\\\": \\\"{\\\\\\\"id\\\\\\\":\\\\\\\"ref2$\\\\\\\",\\\\\\\"block\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"\\\\\\\":\\\\\\\"How\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\" are you?\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"\\\\\\\"},\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"{\\\\\\\"cursor\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"\\\\\\\":true},{\\\\\\\"id\\\\\\\":\\\\\\\"ref3\"}}\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"$\\\\\\\",\\\\\\\"block\\\\\\\":\\\\\\\"\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"ApplesBananas\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"\\\\\\\"}\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"\\\"}\"} }\n\nevent: content_block_stop\ndata: {\"type\":\"content_block_stop\",\"index\":0 }\n\nevent: message_delta\ndata: {\"type\":\"message_delta\",\"delta\":{\"stop_reason\":\"tool_use\",\"stop_sequence\":null},\"usage\":{\"input_tokens\":871,\"cache_creation_input_tokens\":0,\"cache_read_input_tokens\":0,\"output_tokens\":160}}\n\nevent: message_stop\ndata: {\"type\":\"message_stop\" }\n\n", + "headers": [] + } +} \ No newline at end of file diff --git a/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/anthropic.messages/claude-haiku-4-5 (streaming)/add a new paragraph (empty doc)_1_6e45e8b483018781d3a347f0e2ecd1e9.json b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/anthropic.messages/claude-haiku-4-5 (streaming)/add a new paragraph (empty doc)_1_6e45e8b483018781d3a347f0e2ecd1e9.json new file mode 100644 index 0000000000..d4c3cd555f --- /dev/null +++ b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/anthropic.messages/claude-haiku-4-5 (streaming)/add a new paragraph (empty doc)_1_6e45e8b483018781d3a347f0e2ecd1e9.json @@ -0,0 +1,15 @@ +{ + "request": { + "method": "POST", + "url": "https://api.anthropic.com/v1/messages", + "body": "{\"model\":\"claude-haiku-4-5\",\"max_tokens\":64000,\"system\":[{\"type\":\"text\",\"text\":\"You are manipulating a text document using TSX components.\\nEach block is represented as a TSX component with props.\\n\"}],\"messages\":[{\"role\":\"assistant\",\"content\":[{\"type\":\"text\",\"text\":\"There is no active selection. This is the latest state of the document (ignore previous documents, you MUST issue operations against this latest version of the document). \\nThe cursor is BETWEEN two blocks as indicated by cursor: true.\\nBecause the document is empty, YOU MUST first update the empty block before adding new blocks.\"},{\"type\":\"text\",\"text\":\"[{\\\"id\\\":\\\"ref1$\\\",\\\"block\\\":\\\"\\\"},{\\\"cursor\\\":true}]\"}]},{\"role\":\"user\",\"content\":[{\"type\":\"text\",\"text\":\"write a new paragraph with the text 'You look great today!'\"}]}],\"tools\":[{\"name\":\"file_replace\",\"input_schema\":{\"type\":\"object\",\"properties\":{\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"target\",\"replacement\"]}}],\"tool_choice\":{\"type\":\"any\"},\"stream\":true}", + "headers": [], + "cookies": [] + }, + "response": { + "status": 200, + "statusText": "", + "body": "event: message_start\ndata: {\"type\":\"message_start\",\"message\":{\"model\":\"claude-haiku-4-5-20251001\",\"id\":\"msg_01EVFNNz3p4hLmXVwKxMcC4W\",\"type\":\"message\",\"role\":\"assistant\",\"content\":[],\"stop_reason\":null,\"stop_sequence\":null,\"usage\":{\"input_tokens\":821,\"cache_creation_input_tokens\":0,\"cache_read_input_tokens\":0,\"cache_creation\":{\"ephemeral_5m_input_tokens\":0,\"ephemeral_1h_input_tokens\":0},\"output_tokens\":8,\"service_tier\":\"standard\",\"inference_geo\":\"not_available\"}} }\n\nevent: content_block_start\ndata: {\"type\":\"content_block_start\",\"index\":0,\"content_block\":{\"type\":\"tool_use\",\"id\":\"toolu_0151JMd9GCEJiJDqxLABWKkt\",\"name\":\"file_replace\",\"input\":{}} }\n\nevent: ping\ndata: {\"type\": \"ping\"}\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"{\\\"target\\\": \\\"\"}}\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"\\\", \\\"replacement\\\": \\\"\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"You look great today!\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"\\\"}\"} }\n\nevent: content_block_stop\ndata: {\"type\":\"content_block_stop\",\"index\":0 }\n\nevent: message_delta\ndata: {\"type\":\"message_delta\",\"delta\":{\"stop_reason\":\"tool_use\",\"stop_sequence\":null},\"usage\":{\"input_tokens\":821,\"cache_creation_input_tokens\":0,\"cache_read_input_tokens\":0,\"output_tokens\":84} }\n\nevent: message_stop\ndata: {\"type\":\"message_stop\" }\n\n", + "headers": [] + } +} \ No newline at end of file diff --git a/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/anthropic.messages/claude-haiku-4-5 (streaming)/add a new paragraph (end)_1_a41c115e1597d0b4c3ba7be11ad1970f.json b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/anthropic.messages/claude-haiku-4-5 (streaming)/add a new paragraph (end)_1_a41c115e1597d0b4c3ba7be11ad1970f.json new file mode 100644 index 0000000000..d012451b17 --- /dev/null +++ b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/anthropic.messages/claude-haiku-4-5 (streaming)/add a new paragraph (end)_1_a41c115e1597d0b4c3ba7be11ad1970f.json @@ -0,0 +1,15 @@ +{ + "request": { + "method": "POST", + "url": "https://api.anthropic.com/v1/messages", + "body": "{\"model\":\"claude-haiku-4-5\",\"max_tokens\":64000,\"system\":[{\"type\":\"text\",\"text\":\"You are manipulating a text document using TSX components.\\nEach block is represented as a TSX component with props.\\n\"}],\"messages\":[{\"role\":\"assistant\",\"content\":[{\"type\":\"text\",\"text\":\"There is no active selection. This is the latest state of the document (ignore previous documents, you MUST issue operations against this latest version of the document). \\nThe cursor is BETWEEN two blocks as indicated by cursor: true.\\nPrefer updating existing blocks over removing and adding (but this also depends on the user's question).\"},{\"type\":\"text\",\"text\":\"[{\\\"id\\\":\\\"ref1$\\\",\\\"block\\\":\\\"Hello, world!\\\"},{\\\"cursor\\\":true},{\\\"id\\\":\\\"ref2$\\\",\\\"block\\\":\\\"How are you?\\\"}]\"}]},{\"role\":\"user\",\"content\":[{\"type\":\"text\",\"text\":\"add a new paragraph with the text 'You look great today!' after the last sentence\"}]}],\"tools\":[{\"name\":\"file_replace\",\"input_schema\":{\"type\":\"object\",\"properties\":{\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"target\",\"replacement\"]}}],\"tool_choice\":{\"type\":\"any\"},\"stream\":true}", + "headers": [], + "cookies": [] + }, + "response": { + "status": 200, + "statusText": "", + "body": "event: message_start\ndata: {\"type\":\"message_start\",\"message\":{\"model\":\"claude-haiku-4-5-20251001\",\"id\":\"msg_018BtL8NgPYCvYzb9J8izG1d\",\"type\":\"message\",\"role\":\"assistant\",\"content\":[],\"stop_reason\":null,\"stop_sequence\":null,\"usage\":{\"input_tokens\":866,\"cache_creation_input_tokens\":0,\"cache_read_input_tokens\":0,\"cache_creation\":{\"ephemeral_5m_input_tokens\":0,\"ephemeral_1h_input_tokens\":0},\"output_tokens\":8,\"service_tier\":\"standard\",\"inference_geo\":\"not_available\"}} }\n\nevent: content_block_start\ndata: {\"type\":\"content_block_start\",\"index\":0,\"content_block\":{\"type\":\"tool_use\",\"id\":\"toolu_018k5nLvPT9TqfCqvuuvLGH8\",\"name\":\"file_replace\",\"input\":{}} }\n\nevent: ping\ndata: {\"type\": \"ping\"}\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"{\\\"target\\\": \\\"{\\\\\\\"\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"id\\\\\\\":\\\\\\\"ref2$\\\\\\\",\\\\\\\"block\\\\\\\":\\\\\\\"\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"How are\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\" you?\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"\\\\\\\"}]\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"\\\", \\\"replacement\\\": \\\"{\\\\\\\"\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"i\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"d\\\\\\\":\\\\\\\"ref2$\\\\\\\",\\\\\\\"block\\\\\\\":\\\\\\\"\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"How\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\" are you?\\\\\\\"},\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"{\\\\\\\"\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"i\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"d\\\\\\\":\\\\\\\"ref3\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"$\\\\\\\",\\\\\\\"block\\\\\\\":\\\\\\\"You look great today!\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"\\\\\\\"}]\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"\\\"}\"} }\n\nevent: content_block_stop\ndata: {\"type\":\"content_block_stop\",\"index\":0 }\n\nevent: message_delta\ndata: {\"type\":\"message_delta\",\"delta\":{\"stop_reason\":\"tool_use\",\"stop_sequence\":null},\"usage\":{\"input_tokens\":866,\"cache_creation_input_tokens\":0,\"cache_read_input_tokens\":0,\"output_tokens\":151} }\n\nevent: message_stop\ndata: {\"type\":\"message_stop\" }\n\n", + "headers": [] + } +} \ No newline at end of file diff --git a/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/anthropic.messages/claude-haiku-4-5 (streaming)/add a new paragraph (start)_1_f9cbba2f713396cd771b29b3b25361f7.json b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/anthropic.messages/claude-haiku-4-5 (streaming)/add a new paragraph (start)_1_f9cbba2f713396cd771b29b3b25361f7.json new file mode 100644 index 0000000000..fbc00d0986 --- /dev/null +++ b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/anthropic.messages/claude-haiku-4-5 (streaming)/add a new paragraph (start)_1_f9cbba2f713396cd771b29b3b25361f7.json @@ -0,0 +1,15 @@ +{ + "request": { + "method": "POST", + "url": "https://api.anthropic.com/v1/messages", + "body": "{\"model\":\"claude-haiku-4-5\",\"max_tokens\":64000,\"system\":[{\"type\":\"text\",\"text\":\"You are manipulating a text document using TSX components.\\nEach block is represented as a TSX component with props.\\n\"}],\"messages\":[{\"role\":\"assistant\",\"content\":[{\"type\":\"text\",\"text\":\"There is no active selection. This is the latest state of the document (ignore previous documents, you MUST issue operations against this latest version of the document). \\nThe cursor is BETWEEN two blocks as indicated by cursor: true.\\nPrefer updating existing blocks over removing and adding (but this also depends on the user's question).\"},{\"type\":\"text\",\"text\":\"[{\\\"id\\\":\\\"ref1$\\\",\\\"block\\\":\\\"Hello, world!\\\"},{\\\"cursor\\\":true},{\\\"id\\\":\\\"ref2$\\\",\\\"block\\\":\\\"How are you?\\\"}]\"}]},{\"role\":\"user\",\"content\":[{\"type\":\"text\",\"text\":\"add a new paragraph with the text 'You look great today!' before the first sentence\"}]}],\"tools\":[{\"name\":\"file_replace\",\"input_schema\":{\"type\":\"object\",\"properties\":{\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"target\",\"replacement\"]}}],\"tool_choice\":{\"type\":\"any\"},\"stream\":true}", + "headers": [], + "cookies": [] + }, + "response": { + "status": 200, + "statusText": "", + "body": "event: message_start\ndata: {\"type\":\"message_start\",\"message\":{\"model\":\"claude-haiku-4-5-20251001\",\"id\":\"msg_01GvHG7azydUesGYkaTipCwW\",\"type\":\"message\",\"role\":\"assistant\",\"content\":[],\"stop_reason\":null,\"stop_sequence\":null,\"usage\":{\"input_tokens\":866,\"cache_creation_input_tokens\":0,\"cache_read_input_tokens\":0,\"cache_creation\":{\"ephemeral_5m_input_tokens\":0,\"ephemeral_1h_input_tokens\":0},\"output_tokens\":8,\"service_tier\":\"standard\",\"inference_geo\":\"not_available\"}} }\n\nevent: content_block_start\ndata: {\"type\":\"content_block_start\",\"index\":0,\"content_block\":{\"type\":\"tool_use\",\"id\":\"toolu_01FoQQu5Ti4nZCgi2XZtaFqj\",\"name\":\"file_replace\",\"input\":{}} }\n\nevent: ping\ndata: {\"type\": \"ping\"}\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"\"}}\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"{\\\"target\\\": \\\"{\\\\\\\"\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"id\\\\\\\":\\\\\\\"ref1$\\\\\\\",\\\\\\\"block\\\\\\\":\\\\\\\"\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"Hello\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\", world!\"}}\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"\\\\\\\"},\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"{\\\\\\\"cursor\\\\\\\":true},{\\\\\\\"id\\\\\\\":\\\\\\\"\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"ref2$\\\\\\\",\\\\\\\"block\\\\\\\":\\\\\\\"\"}}\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"How are you?\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"\\\\\\\"}]\"}}\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"\\\", \\\"replacement\\\": \\\"{\\\\\\\"\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"i\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"d\\\\\\\":\\\\\\\"ref0\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"$\\\\\\\",\\\\\\\"block\\\\\\\":\\\\\\\"You look great today!\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"\\\\\\\"},\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"{\\\\\\\"i\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"d\\\\\\\":\\\\\\\"ref1$\\\\\\\",\\\\\\\"block\\\\\\\":\\\\\\\"\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"Hello, worl\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"d!\\\\\\\"},\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"{\\\\\\\"cursor\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"\\\\\\\":true},{\\\\\\\"id\\\\\\\":\\\\\\\"ref2\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"$\\\\\\\",\\\\\\\"block\\\\\\\":\\\\\\\"How are you?\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"\\\\\\\"}]\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"\\\"}\"} }\n\nevent: content_block_stop\ndata: {\"type\":\"content_block_stop\",\"index\":0 }\n\nevent: message_delta\ndata: {\"type\":\"message_delta\",\"delta\":{\"stop_reason\":\"tool_use\",\"stop_sequence\":null},\"usage\":{\"input_tokens\":866,\"cache_creation_input_tokens\":0,\"cache_read_input_tokens\":0,\"output_tokens\":223} }\n\nevent: message_stop\ndata: {\"type\":\"message_stop\" }\n\n", + "headers": [] + } +} \ No newline at end of file diff --git a/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/groq.chat/llama-3.3-70b-versatile (streaming)/Add heading (h1) and code block_1_b65a8b07cf1a374240984e655186c51b.json b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/groq.chat/llama-3.3-70b-versatile (streaming)/Add heading (h1) and code block_1_b65a8b07cf1a374240984e655186c51b.json new file mode 100644 index 0000000000..8c4bac59c6 --- /dev/null +++ b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/groq.chat/llama-3.3-70b-versatile (streaming)/Add heading (h1) and code block_1_b65a8b07cf1a374240984e655186c51b.json @@ -0,0 +1,15 @@ +{ + "request": { + "method": "POST", + "url": "https://api.groq.com/openai/v1/chat/completions", + "body": "{\"model\":\"llama-3.3-70b-versatile\",\"messages\":[{\"role\":\"system\",\"content\":\"You are manipulating a text document using TSX components.\\nEach block is represented as a TSX component with props.\\n\"},{\"role\":\"assistant\",\"content\":\"There is no active selection. This is the latest state of the document (ignore previous documents, you MUST issue operations against this latest version of the document). \\nThe cursor is BETWEEN two blocks as indicated by cursor: true.\\nPrefer updating existing blocks over removing and adding (but this also depends on the user's question).[{\\\"id\\\":\\\"ref1$\\\",\\\"block\\\":\\\"Hello, world!\\\"},{\\\"cursor\\\":true},{\\\"id\\\":\\\"ref2$\\\",\\\"block\\\":\\\"How are you?\\\"}]\"},{\"role\":\"user\",\"content\":\"at the end of doc, add a h1 heading `Code` and a javascript code block (block, not inline style) with `console.log('hello world');`\"}],\"tools\":[{\"type\":\"function\",\"function\":{\"name\":\"file_replace\",\"parameters\":{\"type\":\"object\",\"properties\":{\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"target\",\"replacement\"]}}}],\"tool_choice\":\"required\",\"stream\":true}", + "headers": [], + "cookies": [] + }, + "response": { + "status": 200, + "statusText": "", + "body": "data: {\"id\":\"chatcmpl-f32d16e6-7a45-470a-80be-10c721257efb\",\"object\":\"chat.completion.chunk\",\"created\":1770919629,\"model\":\"llama-3.3-70b-versatile\",\"system_fingerprint\":\"fp_f8b414701e\",\"choices\":[{\"index\":0,\"delta\":{\"role\":\"assistant\",\"content\":null},\"logprobs\":null,\"finish_reason\":null}],\"x_groq\":{\"id\":\"req_01kh9gj4wke728vksgsjx8kayx\",\"seed\":1545225693}}\n\ndata: {\"id\":\"chatcmpl-f32d16e6-7a45-470a-80be-10c721257efb\",\"object\":\"chat.completion.chunk\",\"created\":1770919629,\"model\":\"llama-3.3-70b-versatile\",\"system_fingerprint\":\"fp_f8b414701e\",\"choices\":[{\"index\":0,\"delta\":{\"tool_calls\":[{\"id\":\"a6x4mdefz\",\"type\":\"function\",\"function\":{\"name\":\"file_replace\",\"arguments\":\"{\\\"replacement\\\":\\\"\\\\u003cHeading1 id=\\\\\\\"ref3\\\\\\\"\\\\u003eCode\\\\u003c/Heading1\\\\u003e\\\\u003cCodeBlock id=\\\\\\\"ref4\\\\\\\"\\\\u003econsole.log('hello world');\\\\n\\\\u003c/CodeBlock\\\\u003e\\\",\\\"target\\\":\\\"\\\"}\"},\"index\":0}]},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-f32d16e6-7a45-470a-80be-10c721257efb\",\"object\":\"chat.completion.chunk\",\"created\":1770919629,\"model\":\"llama-3.3-70b-versatile\",\"system_fingerprint\":\"fp_f8b414701e\",\"choices\":[{\"index\":0,\"delta\":{},\"logprobs\":null,\"finish_reason\":\"tool_calls\"}],\"x_groq\":{\"id\":\"req_01kh9gj4wke728vksgsjx8kayx\",\"usage\":{\"queue_time\":0.04742317,\"prompt_tokens\":425,\"prompt_time\":0.028595065,\"completion_tokens\":45,\"completion_time\":0.20616259,\"total_tokens\":470,\"total_time\":0.234757655}},\"usage\":{\"queue_time\":0.04742317,\"prompt_tokens\":425,\"prompt_time\":0.028595065,\"completion_tokens\":45,\"completion_time\":0.20616259,\"total_tokens\":470,\"total_time\":0.234757655}}\n\ndata: [DONE]\n\n", + "headers": [] + } +} \ No newline at end of file diff --git a/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/groq.chat/llama-3.3-70b-versatile (streaming)/add a list (end)_1_4a3ac5fc2174f5d75a80e1df795607a7.json b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/groq.chat/llama-3.3-70b-versatile (streaming)/add a list (end)_1_4a3ac5fc2174f5d75a80e1df795607a7.json new file mode 100644 index 0000000000..b3c9bf24eb --- /dev/null +++ b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/groq.chat/llama-3.3-70b-versatile (streaming)/add a list (end)_1_4a3ac5fc2174f5d75a80e1df795607a7.json @@ -0,0 +1,15 @@ +{ + "request": { + "method": "POST", + "url": "https://api.groq.com/openai/v1/chat/completions", + "body": "{\"model\":\"llama-3.3-70b-versatile\",\"messages\":[{\"role\":\"system\",\"content\":\"You are manipulating a text document using TSX components.\\nEach block is represented as a TSX component with props.\\n\"},{\"role\":\"assistant\",\"content\":\"There is no active selection. This is the latest state of the document (ignore previous documents, you MUST issue operations against this latest version of the document). \\nThe cursor is BETWEEN two blocks as indicated by cursor: true.\\nPrefer updating existing blocks over removing and adding (but this also depends on the user's question).[{\\\"id\\\":\\\"ref1$\\\",\\\"block\\\":\\\"Hello, world!\\\"},{\\\"cursor\\\":true},{\\\"id\\\":\\\"ref2$\\\",\\\"block\\\":\\\"How are you?\\\"}]\"},{\"role\":\"user\",\"content\":\"add a list with the items 'Apples' and 'Bananas' after the last sentence\"}],\"tools\":[{\"type\":\"function\",\"function\":{\"name\":\"file_replace\",\"parameters\":{\"type\":\"object\",\"properties\":{\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"target\",\"replacement\"]}}}],\"tool_choice\":\"required\",\"stream\":true}", + "headers": [], + "cookies": [] + }, + "response": { + "status": 200, + "statusText": "", + "body": "data: {\"id\":\"chatcmpl-2c1ff5ae-1fda-4bce-b19a-1d18018e6e3a\",\"object\":\"chat.completion.chunk\",\"created\":1770919629,\"model\":\"llama-3.3-70b-versatile\",\"system_fingerprint\":\"fp_68f543a7cc\",\"choices\":[{\"index\":0,\"delta\":{\"role\":\"assistant\",\"content\":null},\"logprobs\":null,\"finish_reason\":null}],\"x_groq\":{\"id\":\"req_01kh9gj4kse72ad3sama4900ny\",\"seed\":977938030}}\n\ndata: {\"id\":\"chatcmpl-2c1ff5ae-1fda-4bce-b19a-1d18018e6e3a\",\"object\":\"chat.completion.chunk\",\"created\":1770919629,\"model\":\"llama-3.3-70b-versatile\",\"system_fingerprint\":\"fp_68f543a7cc\",\"choices\":[{\"index\":0,\"delta\":{\"tool_calls\":[{\"id\":\"y02yzcxma\",\"type\":\"function\",\"function\":{\"name\":\"file_replace\",\"arguments\":\"{\\\"replacement\\\":\\\"\\\\u003c/Paragraph\\\\u003e\\\\u003cList id='ref3'\\\\u003e\\\\u003cListItem\\\\u003eApples\\\\u003c/ListItem\\\\u003e\\\\u003cListItem\\\\u003eBananas\\\\u003c/ListItem\\\\u003e\\\\u003c/List\\\\u003e\\\",\\\"target\\\":\\\"\\\\u003c/Paragraph\\\\u003e\\\"}\"},\"index\":0}]},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-2c1ff5ae-1fda-4bce-b19a-1d18018e6e3a\",\"object\":\"chat.completion.chunk\",\"created\":1770919629,\"model\":\"llama-3.3-70b-versatile\",\"system_fingerprint\":\"fp_68f543a7cc\",\"choices\":[{\"index\":0,\"delta\":{},\"logprobs\":null,\"finish_reason\":\"tool_calls\"}],\"x_groq\":{\"id\":\"req_01kh9gj4kse72ad3sama4900ny\",\"usage\":{\"queue_time\":0.090337779,\"prompt_tokens\":409,\"prompt_time\":0.023149621,\"completion_tokens\":40,\"completion_time\":0.132428746,\"total_tokens\":449,\"total_time\":0.155578367}},\"usage\":{\"queue_time\":0.090337779,\"prompt_tokens\":409,\"prompt_time\":0.023149621,\"completion_tokens\":40,\"completion_time\":0.132428746,\"total_tokens\":449,\"total_time\":0.155578367}}\n\ndata: [DONE]\n\n", + "headers": [] + } +} \ No newline at end of file diff --git a/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/groq.chat/llama-3.3-70b-versatile (streaming)/add a new paragraph (end)_1_0cda7a8a40522e986020c58441a47c8f.json b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/groq.chat/llama-3.3-70b-versatile (streaming)/add a new paragraph (end)_1_0cda7a8a40522e986020c58441a47c8f.json new file mode 100644 index 0000000000..15afc18dcf --- /dev/null +++ b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/groq.chat/llama-3.3-70b-versatile (streaming)/add a new paragraph (end)_1_0cda7a8a40522e986020c58441a47c8f.json @@ -0,0 +1,15 @@ +{ + "request": { + "method": "POST", + "url": "https://api.groq.com/openai/v1/chat/completions", + "body": "{\"model\":\"llama-3.3-70b-versatile\",\"messages\":[{\"role\":\"system\",\"content\":\"You are manipulating a text document using TSX components.\\nEach block is represented as a TSX component with props.\\n\"},{\"role\":\"assistant\",\"content\":\"There is no active selection. This is the latest state of the document (ignore previous documents, you MUST issue operations against this latest version of the document). \\nThe cursor is BETWEEN two blocks as indicated by cursor: true.\\nPrefer updating existing blocks over removing and adding (but this also depends on the user's question).[{\\\"id\\\":\\\"ref1$\\\",\\\"block\\\":\\\"Hello, world!\\\"},{\\\"cursor\\\":true},{\\\"id\\\":\\\"ref2$\\\",\\\"block\\\":\\\"How are you?\\\"}]\"},{\"role\":\"user\",\"content\":\"add a new paragraph with the text 'You look great today!' after the last sentence\"}],\"tools\":[{\"type\":\"function\",\"function\":{\"name\":\"file_replace\",\"parameters\":{\"type\":\"object\",\"properties\":{\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"target\",\"replacement\"]}}}],\"tool_choice\":\"required\",\"stream\":true}", + "headers": [], + "cookies": [] + }, + "response": { + "status": 200, + "statusText": "", + "body": "event: error\ndata: {\"error\":{\"message\":\"Failed to call a function. Please adjust your prompt. See 'failed_generation' for more details.\",\"type\":\"invalid_request_error\",\"code\":\"tool_use_failed\",\"failed_generation\":\"\\u003cfunction=file_replace\\u003e{\\\"target\\\":\\\"{\\\"id\\\\\\\":\\\\\\\"ref2$\\\\\\\",\\\\\\\"block\\\\\\\":\\\\\\\"\\u003cParagraph textAlignment=\\\\\\\"left\\\\\\\" id=\\\\\\\"ref2\\\\\\\"\\u003eHow are you?\\u003c/Paragraph\\u003e\\\\\\\"}\\\",\\\"replacement\\\":\\\"{\\\\\\\"id\\\\\\\":\\\\\\\"ref2$\\\\\\\",\\\\\\\"block\\\\\\\":\\\\\\\"\\u003cParagraph textAlignment=\\\\\\\"left\\\\\\\" id=\\\\\\\"ref2\\\\\\\"\\u003eHow are you?\\u003c/Paragraph\\u003e\\\\\\\"},{\\\\\\\"id\\\\\\\":\\\\\\\"ref3$\\\\\\\",\\\\\\\"block\\\\\\\":\\\\\\\"\\u003cParagraph textAlignment=\\\\\\\"left\\\\\\\" id=\\\\\\\"ref3\\\\\\\"\\u003eYou look great today!\\u003c/Paragraph\\u003e\\\\\\\"}\\\"}\\u003c/function\\u003e\",\"status_code\":400}}\n\n", + "headers": [] + } +} \ No newline at end of file diff --git a/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/groq.chat/llama-3.3-70b-versatile (streaming)/add a new paragraph (start)_1_97b771b47141baec64b6b31c7bd0870b.json b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/groq.chat/llama-3.3-70b-versatile (streaming)/add a new paragraph (start)_1_97b771b47141baec64b6b31c7bd0870b.json new file mode 100644 index 0000000000..0cbb8d76a6 --- /dev/null +++ b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/groq.chat/llama-3.3-70b-versatile (streaming)/add a new paragraph (start)_1_97b771b47141baec64b6b31c7bd0870b.json @@ -0,0 +1,15 @@ +{ + "request": { + "method": "POST", + "url": "https://api.groq.com/openai/v1/chat/completions", + "body": "{\"model\":\"llama-3.3-70b-versatile\",\"messages\":[{\"role\":\"system\",\"content\":\"You are manipulating a text document using TSX components.\\nEach block is represented as a TSX component with props.\\n\"},{\"role\":\"assistant\",\"content\":\"There is no active selection. This is the latest state of the document (ignore previous documents, you MUST issue operations against this latest version of the document). \\nThe cursor is BETWEEN two blocks as indicated by cursor: true.\\nPrefer updating existing blocks over removing and adding (but this also depends on the user's question).[{\\\"id\\\":\\\"ref1$\\\",\\\"block\\\":\\\"Hello, world!\\\"},{\\\"cursor\\\":true},{\\\"id\\\":\\\"ref2$\\\",\\\"block\\\":\\\"How are you?\\\"}]\"},{\"role\":\"user\",\"content\":\"add a new paragraph with the text 'You look great today!' before the first sentence\"}],\"tools\":[{\"type\":\"function\",\"function\":{\"name\":\"file_replace\",\"parameters\":{\"type\":\"object\",\"properties\":{\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"target\",\"replacement\"]}}}],\"tool_choice\":\"required\",\"stream\":true}", + "headers": [], + "cookies": [] + }, + "response": { + "status": 200, + "statusText": "", + "body": "data: {\"id\":\"chatcmpl-7d0d5608-026e-4d06-bcff-0067b276fb13\",\"object\":\"chat.completion.chunk\",\"created\":1770919629,\"model\":\"llama-3.3-70b-versatile\",\"system_fingerprint\":\"fp_68f543a7cc\",\"choices\":[{\"index\":0,\"delta\":{\"role\":\"assistant\",\"content\":null},\"logprobs\":null,\"finish_reason\":null}],\"x_groq\":{\"id\":\"req_01kh9gj3tyej2sg8krrqkmx86f\",\"seed\":1564233627}}\n\ndata: {\"id\":\"chatcmpl-7d0d5608-026e-4d06-bcff-0067b276fb13\",\"object\":\"chat.completion.chunk\",\"created\":1770919629,\"model\":\"llama-3.3-70b-versatile\",\"system_fingerprint\":\"fp_68f543a7cc\",\"choices\":[{\"index\":0,\"delta\":{\"tool_calls\":[{\"id\":\"d108gk1dg\",\"type\":\"function\",\"function\":{\"name\":\"file_replace\",\"arguments\":\"{\\\"replacement\\\":\\\"{\\\\\\\"id\\\\\\\":\\\\\\\"ref3$\\\\\\\",\\\\\\\"block\\\\\\\":\\\\\\\"\\\\u003cParagraph textAlignment=\\\\\\\\\\\\\\\"left\\\\\\\\\\\\\\\" id=\\\\\\\\\\\\\\\"ref3\\\\\\\\\\\\\\\"\\\\u003eYou look great today!\\\\u003c/Paragraph\\\\u003e\\\\\\\",\\\\\\\"cursor\\\\\\\":true},{\\\\\\\"id\\\\\\\":\\\\\\\"ref1$\\\\\\\",\\\\\\\"block\\\\\\\":\\\\\\\"\\\\u003cParagraph textAlignment=\\\\\\\\\\\\\\\"left\\\\\\\\\\\\\\\" id=\\\\\\\\\\\\\\\"ref1\\\\\\\\\\\\\\\"\\\\u003eHello, world!\\\\u003c/Paragraph\\\\u003e\\\\\\\"}\\\",\\\"target\\\":\\\"{\\\\\\\"id\\\\\\\":\\\\\\\"ref1$\\\\\\\",\\\\\\\"block\\\\\\\":\\\\\\\"\\\\u003cParagraph textAlignment=\\\\\\\"left\\\\\\\" id=\\\\\\\"ref1\\\\\\\"\\\\u003eHello, world!\\\\u003c/Paragraph\\\\u003e\\\\\\\"}\\\"}\"},\"index\":0}]},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-7d0d5608-026e-4d06-bcff-0067b276fb13\",\"object\":\"chat.completion.chunk\",\"created\":1770919629,\"model\":\"llama-3.3-70b-versatile\",\"system_fingerprint\":\"fp_68f543a7cc\",\"choices\":[{\"index\":0,\"delta\":{},\"logprobs\":null,\"finish_reason\":\"tool_calls\"}],\"x_groq\":{\"id\":\"req_01kh9gj3tyej2sg8krrqkmx86f\",\"usage\":{\"queue_time\":0.089463724,\"prompt_tokens\":407,\"prompt_time\":0.02109889,\"completion_tokens\":116,\"completion_time\":0.267260918,\"total_tokens\":523,\"total_time\":0.288359808}},\"usage\":{\"queue_time\":0.089463724,\"prompt_tokens\":407,\"prompt_time\":0.02109889,\"completion_tokens\":116,\"completion_time\":0.267260918,\"total_tokens\":523,\"total_time\":0.288359808}}\n\ndata: [DONE]\n\n", + "headers": [] + } +} \ No newline at end of file diff --git a/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/Add heading (h1) and code block_1_8df4b339961b2bacbf3b6d5462971369.json b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/Add heading (h1) and code block_1_8df4b339961b2bacbf3b6d5462971369.json new file mode 100644 index 0000000000..b1962c2045 --- /dev/null +++ b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/Add heading (h1) and code block_1_8df4b339961b2bacbf3b6d5462971369.json @@ -0,0 +1,15 @@ +{ + "request": { + "method": "POST", + "url": "https://api.openai.com/v1/responses", + "body": "{\"model\":\"gpt-4o-2024-08-06\",\"input\":[{\"role\":\"system\",\"content\":\"You are manipulating a text document using TSX components.\\nEach block is represented as a TSX component with props.\\n\"},{\"role\":\"assistant\",\"content\":[{\"type\":\"output_text\",\"text\":\"There is no active selection. This is the latest state of the document (ignore previous documents, you MUST issue operations against this latest version of the document). \\nThe cursor is BETWEEN two blocks as indicated by cursor: true.\\nPrefer updating existing blocks over removing and adding (but this also depends on the user's question).\"}]},{\"role\":\"assistant\",\"content\":[{\"type\":\"output_text\",\"text\":\"[{\\\"id\\\":\\\"ref1$\\\",\\\"block\\\":\\\"Hello, world!\\\"},{\\\"cursor\\\":true},{\\\"id\\\":\\\"ref2$\\\",\\\"block\\\":\\\"How are you?\\\"}]\"}]},{\"role\":\"user\",\"content\":[{\"type\":\"input_text\",\"text\":\"at the end of doc, add a h1 heading `Code` and a javascript code block (block, not inline style) with `console.log('hello world');`\"}]}],\"tools\":[{\"type\":\"function\",\"name\":\"file_replace\",\"parameters\":{\"type\":\"object\",\"properties\":{\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"target\",\"replacement\"]}}],\"tool_choice\":\"required\",\"stream\":true}", + "headers": [], + "cookies": [] + }, + "response": { + "status": 200, + "statusText": "", + "body": "event: response.created\ndata: {\"type\":\"response.created\",\"response\":{\"id\":\"resp_0cee5a0926145aa800698e16c3fcc48196a11e78bc96dd4def\",\"object\":\"response\",\"created_at\":1770919620,\"status\":\"in_progress\",\"background\":false,\"completed_at\":null,\"error\":null,\"frequency_penalty\":0.0,\"incomplete_details\":null,\"instructions\":null,\"max_output_tokens\":null,\"max_tool_calls\":null,\"model\":\"gpt-4o-2024-08-06\",\"output\":[],\"parallel_tool_calls\":true,\"presence_penalty\":0.0,\"previous_response_id\":null,\"prompt_cache_key\":null,\"prompt_cache_retention\":null,\"reasoning\":{\"effort\":null,\"summary\":null},\"safety_identifier\":null,\"service_tier\":\"auto\",\"store\":true,\"temperature\":1.0,\"text\":{\"format\":{\"type\":\"text\"},\"verbosity\":\"medium\"},\"tool_choice\":\"required\",\"tools\":[{\"type\":\"function\",\"description\":null,\"name\":\"file_replace\",\"parameters\":{\"type\":\"object\",\"properties\":{\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"target\",\"replacement\"],\"additionalProperties\":false},\"strict\":true}],\"top_logprobs\":0,\"top_p\":1.0,\"truncation\":\"disabled\",\"usage\":null,\"user\":null,\"metadata\":{}},\"sequence_number\":0}\n\nevent: response.in_progress\ndata: {\"type\":\"response.in_progress\",\"response\":{\"id\":\"resp_0cee5a0926145aa800698e16c3fcc48196a11e78bc96dd4def\",\"object\":\"response\",\"created_at\":1770919620,\"status\":\"in_progress\",\"background\":false,\"completed_at\":null,\"error\":null,\"frequency_penalty\":0.0,\"incomplete_details\":null,\"instructions\":null,\"max_output_tokens\":null,\"max_tool_calls\":null,\"model\":\"gpt-4o-2024-08-06\",\"output\":[],\"parallel_tool_calls\":true,\"presence_penalty\":0.0,\"previous_response_id\":null,\"prompt_cache_key\":null,\"prompt_cache_retention\":null,\"reasoning\":{\"effort\":null,\"summary\":null},\"safety_identifier\":null,\"service_tier\":\"auto\",\"store\":true,\"temperature\":1.0,\"text\":{\"format\":{\"type\":\"text\"},\"verbosity\":\"medium\"},\"tool_choice\":\"required\",\"tools\":[{\"type\":\"function\",\"description\":null,\"name\":\"file_replace\",\"parameters\":{\"type\":\"object\",\"properties\":{\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"target\",\"replacement\"],\"additionalProperties\":false},\"strict\":true}],\"top_logprobs\":0,\"top_p\":1.0,\"truncation\":\"disabled\",\"usage\":null,\"user\":null,\"metadata\":{}},\"sequence_number\":1}\n\nevent: response.output_item.added\ndata: {\"type\":\"response.output_item.added\",\"item\":{\"id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"type\":\"function_call\",\"status\":\"in_progress\",\"arguments\":\"\",\"call_id\":\"call_gMJZ6dVgSlmt8CigBLaUbkqX\",\"name\":\"file_replace\"},\"output_index\":0,\"sequence_number\":2}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"{\\\"\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"sjqXVVDwKVRf8J\",\"output_index\":0,\"sequence_number\":3}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"target\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"od2944zQwy\",\"output_index\":0,\"sequence_number\":4}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\":\\\"\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"6mhYpDM1zB6XN\",\"output_index\":0,\"sequence_number\":5}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"]\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"qJ2Q3aQgz4wbi1\",\"output_index\":0,\"sequence_number\":8}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\",\\\"\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"Y9gby912DbmMY\",\"output_index\":0,\"sequence_number\":9}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"replacement\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"5qtSh\",\"output_index\":0,\"sequence_number\":10}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\":\\\"\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"oKbIB28ARONnQ\",\"output_index\":0,\"sequence_number\":11}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\",\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"KAEOP4oi4W2u9g\",\"output_index\":0,\"sequence_number\":14}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" {\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"bbhc3YCsEgt4aA\",\"output_index\":0,\"sequence_number\":15}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\"\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"pITv3IVWaUxaDF\",\"output_index\":0,\"sequence_number\":16}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"id\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"e53Jpxk2R6jDdb\",\"output_index\":0,\"sequence_number\":17}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\":\\\\\\\"\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"9tDyLvS1WKF\",\"output_index\":0,\"sequence_number\":18}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"ref\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"2rosmamkIJGyl\",\"output_index\":0,\"sequence_number\":19}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"3\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"kBD8CRCNs8CQ8g4\",\"output_index\":0,\"sequence_number\":20}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"$\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"sRLPI5LODfrnSr1\",\"output_index\":0,\"sequence_number\":21}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\",\\\\\\\"\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"i3K2aasWre0\",\"output_index\":0,\"sequence_number\":22}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"block\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"nuqFYlV4BBJ\",\"output_index\":0,\"sequence_number\":23}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\":\\\\\\\"\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"IjR9gXCdL48\",\"output_index\":0,\"sequence_number\":24}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"<\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"ja5gqwJe0LtX6E5\",\"output_index\":0,\"sequence_number\":25}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Heading\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"CbGfgpYjo\",\"output_index\":0,\"sequence_number\":26}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" level\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"jnOuIUJJfG\",\"output_index\":0,\"sequence_number\":27}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"PN5IsqE1YPimqWR\",\"output_index\":0,\"sequence_number\":28}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\\\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"g28nxK5cRRG27C\",\"output_index\":0,\"sequence_number\":29}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\"\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"7oGmKgGGKoFhS5\",\"output_index\":0,\"sequence_number\":30}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"1\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"96zTMIXzxyzE2Pw\",\"output_index\":0,\"sequence_number\":31}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\\\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"2vRlKQtYdMeyMu\",\"output_index\":0,\"sequence_number\":32}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\"\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"5Vuw8c7ZBeSYu0\",\"output_index\":0,\"sequence_number\":33}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" id\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"yBXoqFwn7yXao\",\"output_index\":0,\"sequence_number\":34}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"9xI68kkg6U7ODV5\",\"output_index\":0,\"sequence_number\":35}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\\\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"v1acLo3nxx6Qxr\",\"output_index\":0,\"sequence_number\":36}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\"\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"SLWitY3sTFkF5Y\",\"output_index\":0,\"sequence_number\":37}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"ref\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"TeR4sPzYiTyDh\",\"output_index\":0,\"sequence_number\":38}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"3\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"MX0g7TikEYVDUKD\",\"output_index\":0,\"sequence_number\":39}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\\\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"XHgUFMl0DtQNgi\",\"output_index\":0,\"sequence_number\":40}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\">\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"c9cgVd4N72tD1\",\"output_index\":0,\"sequence_number\":41}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Code\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"gT66D9BxoE9K\",\"output_index\":0,\"sequence_number\":42}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"mgvgWP2Uu83s5NJ\",\"output_index\":0,\"sequence_number\":45}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\"\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"5mjKf87lBU4cTe\",\"output_index\":0,\"sequence_number\":46}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"},\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"CAWJlB0r8WlA1v\",\"output_index\":0,\"sequence_number\":47}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" {\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"axWDO85liaeCKR\",\"output_index\":0,\"sequence_number\":48}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\"\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"kRlSts1KdsEGAc\",\"output_index\":0,\"sequence_number\":49}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"id\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"j18u46cX0a3lcG\",\"output_index\":0,\"sequence_number\":50}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\":\\\\\\\"\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"zyE0AWRAekJ\",\"output_index\":0,\"sequence_number\":51}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"ref\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"EPgcyV2vbnx1z\",\"output_index\":0,\"sequence_number\":52}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"4\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"rdx4Ax7jZfgjq7P\",\"output_index\":0,\"sequence_number\":53}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"$\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"5h0T8AXeAhIxJEm\",\"output_index\":0,\"sequence_number\":54}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\",\\\\\\\"\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"8x96gLL7yjY\",\"output_index\":0,\"sequence_number\":55}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"block\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"eS7HUmJB7XJ\",\"output_index\":0,\"sequence_number\":56}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\":\\\\\\\"\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"CqxnqSAOcoN\",\"output_index\":0,\"sequence_number\":57}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"<\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"W1j747Qdfx7sGOn\",\"output_index\":0,\"sequence_number\":58}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Code\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"3YiTMhCTB9fG\",\"output_index\":0,\"sequence_number\":59}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Block\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"E1WFlbPMyPN\",\"output_index\":0,\"sequence_number\":60}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" id\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"K1MQZpHu03REH\",\"output_index\":0,\"sequence_number\":61}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"pHsxgoWMivtOj00\",\"output_index\":0,\"sequence_number\":62}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\\\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"K6XrXXS8Zqw6d8\",\"output_index\":0,\"sequence_number\":63}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\"\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"c6NBYTn24LRWrW\",\"output_index\":0,\"sequence_number\":64}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"ref\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"lEWJYA69J79L8\",\"output_index\":0,\"sequence_number\":65}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"4\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"gvWywdtuI4VT3B9\",\"output_index\":0,\"sequence_number\":66}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\\\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"7B0KuxhCcI1GdT\",\"output_index\":0,\"sequence_number\":67}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\">\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"OIvmBlR6VHqoG\",\"output_index\":0,\"sequence_number\":68}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"console\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"6Wf38Ln1Q\",\"output_index\":0,\"sequence_number\":69}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\".log\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"gLD3LQMumMPP\",\"output_index\":0,\"sequence_number\":70}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"('\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"CX3fCFf12bP7Kg\",\"output_index\":0,\"sequence_number\":71}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"hello\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"Fy0ENJTbFxp\",\"output_index\":0,\"sequence_number\":72}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" world\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"gpj6OGxkim\",\"output_index\":0,\"sequence_number\":73}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"');\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"BxS7EMRc0AVIi\",\"output_index\":0,\"sequence_number\":74}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"hgc5MKtbNllEERe\",\"output_index\":0,\"sequence_number\":78}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\"\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"8jHAjJtDeWikZY\",\"output_index\":0,\"sequence_number\":79}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"}]\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"djB9aR7KAMLqm7\",\"output_index\":0,\"sequence_number\":80}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\"}\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"obfuscation\":\"Z7QjfSLzXTzfOe\",\"output_index\":0,\"sequence_number\":81}\n\nevent: response.function_call_arguments.done\ndata: {\"type\":\"response.function_call_arguments.done\",\"arguments\":\"{\\\"target\\\":\\\"]\\\",\\\"replacement\\\":\\\", {\\\\\\\"id\\\\\\\":\\\\\\\"ref3$\\\\\\\",\\\\\\\"block\\\\\\\":\\\\\\\"Code\\\\\\\"}, {\\\\\\\"id\\\\\\\":\\\\\\\"ref4$\\\\\\\",\\\\\\\"block\\\\\\\":\\\\\\\"console.log('hello world');\\\\\\\"}]\\\"}\",\"item_id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"output_index\":0,\"sequence_number\":82}\n\nevent: response.output_item.done\ndata: {\"type\":\"response.output_item.done\",\"item\":{\"id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"type\":\"function_call\",\"status\":\"completed\",\"arguments\":\"{\\\"target\\\":\\\"]\\\",\\\"replacement\\\":\\\", {\\\\\\\"id\\\\\\\":\\\\\\\"ref3$\\\\\\\",\\\\\\\"block\\\\\\\":\\\\\\\"Code\\\\\\\"}, {\\\\\\\"id\\\\\\\":\\\\\\\"ref4$\\\\\\\",\\\\\\\"block\\\\\\\":\\\\\\\"console.log('hello world');\\\\\\\"}]\\\"}\",\"call_id\":\"call_gMJZ6dVgSlmt8CigBLaUbkqX\",\"name\":\"file_replace\"},\"output_index\":0,\"sequence_number\":83}\n\nevent: response.completed\ndata: {\"type\":\"response.completed\",\"response\":{\"id\":\"resp_0cee5a0926145aa800698e16c3fcc48196a11e78bc96dd4def\",\"object\":\"response\",\"created_at\":1770919620,\"status\":\"completed\",\"background\":false,\"completed_at\":1770919622,\"error\":null,\"frequency_penalty\":0.0,\"incomplete_details\":null,\"instructions\":null,\"max_output_tokens\":null,\"max_tool_calls\":null,\"model\":\"gpt-4o-2024-08-06\",\"output\":[{\"id\":\"fc_0cee5a0926145aa800698e16c48cd08196876ce5e336ad1780\",\"type\":\"function_call\",\"status\":\"completed\",\"arguments\":\"{\\\"target\\\":\\\"]\\\",\\\"replacement\\\":\\\", {\\\\\\\"id\\\\\\\":\\\\\\\"ref3$\\\\\\\",\\\\\\\"block\\\\\\\":\\\\\\\"Code\\\\\\\"}, {\\\\\\\"id\\\\\\\":\\\\\\\"ref4$\\\\\\\",\\\\\\\"block\\\\\\\":\\\\\\\"console.log('hello world');\\\\\\\"}]\\\"}\",\"call_id\":\"call_gMJZ6dVgSlmt8CigBLaUbkqX\",\"name\":\"file_replace\"}],\"parallel_tool_calls\":true,\"presence_penalty\":0.0,\"previous_response_id\":null,\"prompt_cache_key\":null,\"prompt_cache_retention\":null,\"reasoning\":{\"effort\":null,\"summary\":null},\"safety_identifier\":null,\"service_tier\":\"default\",\"store\":true,\"temperature\":1.0,\"text\":{\"format\":{\"type\":\"text\"},\"verbosity\":\"medium\"},\"tool_choice\":\"required\",\"tools\":[{\"type\":\"function\",\"description\":null,\"name\":\"file_replace\",\"parameters\":{\"type\":\"object\",\"properties\":{\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"target\",\"replacement\"],\"additionalProperties\":false},\"strict\":true}],\"top_logprobs\":0,\"top_p\":1.0,\"truncation\":\"disabled\",\"usage\":{\"input_tokens\":248,\"input_tokens_details\":{\"cached_tokens\":0},\"output_tokens\":80,\"output_tokens_details\":{\"reasoning_tokens\":0},\"total_tokens\":328},\"user\":null,\"metadata\":{}},\"sequence_number\":84}\n\n", + "headers": [] + } +} \ No newline at end of file diff --git a/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/Add heading (h1) and code block_1_d7f3d589b85dc014d5f536b3f941f3b6.json b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/Add heading (h1) and code block_1_d7f3d589b85dc014d5f536b3f941f3b6.json new file mode 100644 index 0000000000..bb01a006f5 --- /dev/null +++ b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/Add heading (h1) and code block_1_d7f3d589b85dc014d5f536b3f941f3b6.json @@ -0,0 +1,15 @@ +{ + "request": { + "method": "POST", + "url": "https://api.openai.com/v1/responses", + "body": "{\"model\":\"gpt-4o-2024-08-06\",\"input\":[{\"role\":\"system\",\"content\":\"You are manipulating a text document using TSX components.\\nEach block is represented as a TSX component with props.\\n\"},{\"role\":\"assistant\",\"content\":[{\"type\":\"output_text\",\"text\":\"There is no active selection. This is the latest state of the document (ignore previous documents, you MUST issue operations against this latest version of the document). \\nThe cursor is BETWEEN two blocks as indicated by cursor: true.\\nPrefer updating existing blocks over removing and adding (but this also depends on the user's question).\"}]},{\"role\":\"assistant\",\"content\":[{\"type\":\"output_text\",\"text\":\"{\\\"selection\\\":false,\\\"blocks\\\":[{\\\"id\\\":\\\"ref1$\\\",\\\"block\\\":\\\"Hello, world!\\\"},{\\\"cursor\\\":true},{\\\"id\\\":\\\"ref2$\\\",\\\"block\\\":\\\"How are you?\\\"}],\\\"isEmptyDocument\\\":false}\"}]},{\"role\":\"user\",\"content\":[{\"type\":\"input_text\",\"text\":\"at the end of doc, add a h1 heading `Code` and a javascript code block (block, not inline style) with `console.log('hello world');`\"}]}],\"tools\":[{\"type\":\"function\",\"name\":\"applyDocumentOperations\",\"parameters\":{\"type\":\"object\",\"properties\":{\"operations\":{\"type\":\"array\",\"items\":{\"anyOf\":[{\"type\":\"object\",\"description\":\"Replace a part of the document file\",\"properties\":{\"type\":{\"type\":\"string\",\"enum\":[\"file_replace\"]},\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"type\",\"target\",\"replacement\"],\"additionalProperties\":false}]}}},\"additionalProperties\":false,\"required\":[\"operations\"]}}],\"tool_choice\":\"required\",\"stream\":true}", + "headers": [], + "cookies": [] + }, + "response": { + "status": 200, + "statusText": "", + "body": "event: response.created\ndata: {\"type\":\"response.created\",\"response\":{\"id\":\"resp_00c006ebd61e2f7c00698cd82516d081978ff6a25712665e2a\",\"object\":\"response\",\"created_at\":1770838053,\"status\":\"in_progress\",\"background\":false,\"completed_at\":null,\"error\":null,\"frequency_penalty\":0.0,\"incomplete_details\":null,\"instructions\":null,\"max_output_tokens\":null,\"max_tool_calls\":null,\"model\":\"gpt-4o-2024-08-06\",\"output\":[],\"parallel_tool_calls\":true,\"presence_penalty\":0.0,\"previous_response_id\":null,\"prompt_cache_key\":null,\"prompt_cache_retention\":null,\"reasoning\":{\"effort\":null,\"summary\":null},\"safety_identifier\":null,\"service_tier\":\"auto\",\"store\":true,\"temperature\":1.0,\"text\":{\"format\":{\"type\":\"text\"},\"verbosity\":\"medium\"},\"tool_choice\":\"required\",\"tools\":[{\"type\":\"function\",\"description\":null,\"name\":\"applyDocumentOperations\",\"parameters\":{\"type\":\"object\",\"properties\":{\"operations\":{\"type\":\"array\",\"items\":{\"anyOf\":[{\"type\":\"object\",\"description\":\"Replace a part of the document file\",\"properties\":{\"type\":{\"type\":\"string\",\"enum\":[\"file_replace\"]},\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"type\",\"target\",\"replacement\"],\"additionalProperties\":false}]}}},\"additionalProperties\":false,\"required\":[\"operations\"]},\"strict\":true}],\"top_logprobs\":0,\"top_p\":1.0,\"truncation\":\"disabled\",\"usage\":null,\"user\":null,\"metadata\":{}},\"sequence_number\":0}\n\nevent: response.in_progress\ndata: {\"type\":\"response.in_progress\",\"response\":{\"id\":\"resp_00c006ebd61e2f7c00698cd82516d081978ff6a25712665e2a\",\"object\":\"response\",\"created_at\":1770838053,\"status\":\"in_progress\",\"background\":false,\"completed_at\":null,\"error\":null,\"frequency_penalty\":0.0,\"incomplete_details\":null,\"instructions\":null,\"max_output_tokens\":null,\"max_tool_calls\":null,\"model\":\"gpt-4o-2024-08-06\",\"output\":[],\"parallel_tool_calls\":true,\"presence_penalty\":0.0,\"previous_response_id\":null,\"prompt_cache_key\":null,\"prompt_cache_retention\":null,\"reasoning\":{\"effort\":null,\"summary\":null},\"safety_identifier\":null,\"service_tier\":\"auto\",\"store\":true,\"temperature\":1.0,\"text\":{\"format\":{\"type\":\"text\"},\"verbosity\":\"medium\"},\"tool_choice\":\"required\",\"tools\":[{\"type\":\"function\",\"description\":null,\"name\":\"applyDocumentOperations\",\"parameters\":{\"type\":\"object\",\"properties\":{\"operations\":{\"type\":\"array\",\"items\":{\"anyOf\":[{\"type\":\"object\",\"description\":\"Replace a part of the document file\",\"properties\":{\"type\":{\"type\":\"string\",\"enum\":[\"file_replace\"]},\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"type\",\"target\",\"replacement\"],\"additionalProperties\":false}]}}},\"additionalProperties\":false,\"required\":[\"operations\"]},\"strict\":true}],\"top_logprobs\":0,\"top_p\":1.0,\"truncation\":\"disabled\",\"usage\":null,\"user\":null,\"metadata\":{}},\"sequence_number\":1}\n\nevent: response.output_item.added\ndata: {\"type\":\"response.output_item.added\",\"item\":{\"id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"type\":\"function_call\",\"status\":\"in_progress\",\"arguments\":\"\",\"call_id\":\"call_i6Od4VgwdP4pBxLLE1xkEAtf\",\"name\":\"applyDocumentOperations\"},\"output_index\":0,\"sequence_number\":2}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"{\\\"\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"6pqdVyFtBCIMwK\",\"output_index\":0,\"sequence_number\":3}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"operations\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"zpJt8G\",\"output_index\":0,\"sequence_number\":4}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\":[\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"qOHGpeTSJVebY\",\"output_index\":0,\"sequence_number\":5}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"{\\\"\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"B6ZHvqzd9j8fDj\",\"output_index\":0,\"sequence_number\":6}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"type\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"VC7nctnZdmW1\",\"output_index\":0,\"sequence_number\":7}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\":\\\"\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"1hhbKEnHvHwgc\",\"output_index\":0,\"sequence_number\":8}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"file\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"f9TTU7ANegzo\",\"output_index\":0,\"sequence_number\":9}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"_replace\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"1oCuZJXJ\",\"output_index\":0,\"sequence_number\":10}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\",\\\"\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"4TIcqsFZkkNCT\",\"output_index\":0,\"sequence_number\":11}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"target\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"4KlRl8PVjT\",\"output_index\":0,\"sequence_number\":12}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\":\\\"\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"TJV4DJmQbTiGQ\",\"output_index\":0,\"sequence_number\":13}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"<\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"mpUNDGyRs8LIZeS\",\"output_index\":0,\"sequence_number\":14}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Paragraph\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"GEELDXW\",\"output_index\":0,\"sequence_number\":15}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" text\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"C4bsANySWcn\",\"output_index\":0,\"sequence_number\":16}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Alignment\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"Opwr5y4\",\"output_index\":0,\"sequence_number\":17}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\\\\\\\"\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"w2ceOHrycgQiM\",\"output_index\":0,\"sequence_number\":18}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"left\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"x3a04ko5ZCeO\",\"output_index\":0,\"sequence_number\":19}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\"\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"FhNAJxGr61FryW\",\"output_index\":0,\"sequence_number\":20}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" id\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"QqsMOgA2HbXxM\",\"output_index\":0,\"sequence_number\":21}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\\\\\\\"\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"NOLB7EqYTDR3D\",\"output_index\":0,\"sequence_number\":22}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"ref\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"rSi7Urq67cwew\",\"output_index\":0,\"sequence_number\":23}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"2\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"8zxGHJqnA3ciBeN\",\"output_index\":0,\"sequence_number\":24}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\">\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"bOhJdUaSb7V5Y\",\"output_index\":0,\"sequence_number\":25}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"How\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"yDqmPSnrjiTmz\",\"output_index\":0,\"sequence_number\":26}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" are\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"TOP3wCSondHD\",\"output_index\":0,\"sequence_number\":27}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" you\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"Lx4RST3jAfq9\",\"output_index\":0,\"sequence_number\":28}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"?\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"1w8JM9BtXU6IZNt\",\"output_index\":0,\"sequence_number\":31}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\",\\\"\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"imBTLOHAGqvmG\",\"output_index\":0,\"sequence_number\":32}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"replacement\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"yP4WR\",\"output_index\":0,\"sequence_number\":33}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\":\\\"\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"0gMJmiOZ8zlDV\",\"output_index\":0,\"sequence_number\":34}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"<\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"dK3J8SU2eV1o0fa\",\"output_index\":0,\"sequence_number\":35}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Paragraph\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"P2rQHwS\",\"output_index\":0,\"sequence_number\":36}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" text\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"WFpCfggSut9\",\"output_index\":0,\"sequence_number\":37}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Alignment\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"fvafVza\",\"output_index\":0,\"sequence_number\":38}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\\\\\\\"\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"762Srfob0tGPd\",\"output_index\":0,\"sequence_number\":39}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"left\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"9v8iikIsQmKX\",\"output_index\":0,\"sequence_number\":40}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\"\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"uXLGpICUAiSU5g\",\"output_index\":0,\"sequence_number\":41}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" id\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"Gcprvnsr8b3c8\",\"output_index\":0,\"sequence_number\":42}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\\\\\\\"\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"pXSW9a0s016Cm\",\"output_index\":0,\"sequence_number\":43}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"ref\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"j1qKYJepNbpdi\",\"output_index\":0,\"sequence_number\":44}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"2\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"jI0oKt0waGZPY45\",\"output_index\":0,\"sequence_number\":45}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\">\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"t7o6bP4ejCgFF\",\"output_index\":0,\"sequence_number\":46}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"How\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"KHmIvTc1ls6ZG\",\"output_index\":0,\"sequence_number\":47}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" are\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"BmmfcOu6Zy6e\",\"output_index\":0,\"sequence_number\":48}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" you\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"kRHCamnOJuvw\",\"output_index\":0,\"sequence_number\":49}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"?<\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"bbYIwtbQMp4zRk\",\"output_index\":0,\"sequence_number\":52}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Heading\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"TUfKugUCj\",\"output_index\":0,\"sequence_number\":53}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" level\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"vpzgGAZ4MF\",\"output_index\":0,\"sequence_number\":54}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\\\\\\\"\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"djtWtkC3Z5DEG\",\"output_index\":0,\"sequence_number\":55}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"1\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"Hxbu1RxuM6Fu6AA\",\"output_index\":0,\"sequence_number\":56}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\">\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"H176l6iRyfEU7\",\"output_index\":0,\"sequence_number\":57}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Code\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"KMRkR9BoVEw3\",\"output_index\":0,\"sequence_number\":58}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"<\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"TDo2GSHJnLsU0y\",\"output_index\":0,\"sequence_number\":61}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Code\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"HW6k5O4l8GQ2\",\"output_index\":0,\"sequence_number\":62}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Block\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"GwBgQjdUuEo\",\"output_index\":0,\"sequence_number\":63}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" language\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"1fWrMYA\",\"output_index\":0,\"sequence_number\":64}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\\\\\\\"\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"RWdTgC1BXyICB\",\"output_index\":0,\"sequence_number\":65}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"javascript\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"Kj2k7w\",\"output_index\":0,\"sequence_number\":66}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\">\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"a8oFZrUdNaBR0\",\"output_index\":0,\"sequence_number\":67}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"console\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"1ThhM2WPJ\",\"output_index\":0,\"sequence_number\":68}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\".log\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"TtWLz0YlVktd\",\"output_index\":0,\"sequence_number\":69}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"('\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"UlsEV3I333k0MX\",\"output_index\":0,\"sequence_number\":70}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"hello\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"AGHDNciWwds\",\"output_index\":0,\"sequence_number\":71}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" world\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"OSYD0ejVJo\",\"output_index\":0,\"sequence_number\":72}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"');\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"0lRLBH7BrFJcO\",\"output_index\":0,\"sequence_number\":73}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"JGhsDZQkCdsbXIn\",\"output_index\":0,\"sequence_number\":77}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\"}\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"wxJJNyILjCKUin\",\"output_index\":0,\"sequence_number\":78}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"]}\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"obfuscation\":\"jwXE1GaCpm0fgN\",\"output_index\":0,\"sequence_number\":79}\n\nevent: response.function_call_arguments.done\ndata: {\"type\":\"response.function_call_arguments.done\",\"arguments\":\"{\\\"operations\\\":[{\\\"type\\\":\\\"file_replace\\\",\\\"target\\\":\\\"How are you?\\\",\\\"replacement\\\":\\\"How are you?Codeconsole.log('hello world');\\\"}]}\",\"item_id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"output_index\":0,\"sequence_number\":80}\n\nevent: response.output_item.done\ndata: {\"type\":\"response.output_item.done\",\"item\":{\"id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"type\":\"function_call\",\"status\":\"completed\",\"arguments\":\"{\\\"operations\\\":[{\\\"type\\\":\\\"file_replace\\\",\\\"target\\\":\\\"How are you?\\\",\\\"replacement\\\":\\\"How are you?Codeconsole.log('hello world');\\\"}]}\",\"call_id\":\"call_i6Od4VgwdP4pBxLLE1xkEAtf\",\"name\":\"applyDocumentOperations\"},\"output_index\":0,\"sequence_number\":81}\n\nevent: response.completed\ndata: {\"type\":\"response.completed\",\"response\":{\"id\":\"resp_00c006ebd61e2f7c00698cd82516d081978ff6a25712665e2a\",\"object\":\"response\",\"created_at\":1770838053,\"status\":\"completed\",\"background\":false,\"completed_at\":1770838054,\"error\":null,\"frequency_penalty\":0.0,\"incomplete_details\":null,\"instructions\":null,\"max_output_tokens\":null,\"max_tool_calls\":null,\"model\":\"gpt-4o-2024-08-06\",\"output\":[{\"id\":\"fc_00c006ebd61e2f7c00698cd8257d208197806a293ee66f7e26\",\"type\":\"function_call\",\"status\":\"completed\",\"arguments\":\"{\\\"operations\\\":[{\\\"type\\\":\\\"file_replace\\\",\\\"target\\\":\\\"How are you?\\\",\\\"replacement\\\":\\\"How are you?Codeconsole.log('hello world');\\\"}]}\",\"call_id\":\"call_i6Od4VgwdP4pBxLLE1xkEAtf\",\"name\":\"applyDocumentOperations\"}],\"parallel_tool_calls\":true,\"presence_penalty\":0.0,\"previous_response_id\":null,\"prompt_cache_key\":null,\"prompt_cache_retention\":null,\"reasoning\":{\"effort\":null,\"summary\":null},\"safety_identifier\":null,\"service_tier\":\"default\",\"store\":true,\"temperature\":1.0,\"text\":{\"format\":{\"type\":\"text\"},\"verbosity\":\"medium\"},\"tool_choice\":\"required\",\"tools\":[{\"type\":\"function\",\"description\":null,\"name\":\"applyDocumentOperations\",\"parameters\":{\"type\":\"object\",\"properties\":{\"operations\":{\"type\":\"array\",\"items\":{\"anyOf\":[{\"type\":\"object\",\"description\":\"Replace a part of the document file\",\"properties\":{\"type\":{\"type\":\"string\",\"enum\":[\"file_replace\"]},\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"type\",\"target\",\"replacement\"],\"additionalProperties\":false}]}}},\"additionalProperties\":false,\"required\":[\"operations\"]},\"strict\":true}],\"top_logprobs\":0,\"top_p\":1.0,\"truncation\":\"disabled\",\"usage\":{\"input_tokens\":285,\"input_tokens_details\":{\"cached_tokens\":0},\"output_tokens\":78,\"output_tokens_details\":{\"reasoning_tokens\":0},\"total_tokens\":363},\"user\":null,\"metadata\":{}},\"sequence_number\":82}\n\n", + "headers": [] + } +} \ No newline at end of file diff --git a/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/add a list (end)_1_3c8d705ee030e9d6422e9a28d896c78f.json b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/add a list (end)_1_3c8d705ee030e9d6422e9a28d896c78f.json new file mode 100644 index 0000000000..36697a073c --- /dev/null +++ b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/add a list (end)_1_3c8d705ee030e9d6422e9a28d896c78f.json @@ -0,0 +1,15 @@ +{ + "request": { + "method": "POST", + "url": "https://api.openai.com/v1/responses", + "body": "{\"model\":\"gpt-4o-2024-08-06\",\"input\":[{\"role\":\"system\",\"content\":\"You are manipulating a text document using TSX components.\\nEach block is represented as a TSX component with props.\\n\"},{\"role\":\"assistant\",\"content\":[{\"type\":\"output_text\",\"text\":\"There is no active selection. This is the latest state of the document (ignore previous documents, you MUST issue operations against this latest version of the document). \\nThe cursor is BETWEEN two blocks as indicated by cursor: true.\\nPrefer updating existing blocks over removing and adding (but this also depends on the user's question).\"}]},{\"role\":\"assistant\",\"content\":[{\"type\":\"output_text\",\"text\":\"{\\\"selection\\\":false,\\\"blocks\\\":[{\\\"id\\\":\\\"ref1$\\\",\\\"block\\\":\\\"Hello, world!\\\"},{\\\"cursor\\\":true},{\\\"id\\\":\\\"ref2$\\\",\\\"block\\\":\\\"How are you?\\\"}],\\\"isEmptyDocument\\\":false}\"}]},{\"role\":\"user\",\"content\":[{\"type\":\"input_text\",\"text\":\"add a list with the items 'Apples' and 'Bananas' after the last sentence\"}]}],\"tools\":[{\"type\":\"function\",\"name\":\"applyDocumentOperations\",\"parameters\":{\"type\":\"object\",\"properties\":{\"operations\":{\"type\":\"array\",\"items\":{\"anyOf\":[{\"type\":\"object\",\"description\":\"Replace a part of the document file\",\"properties\":{\"type\":{\"type\":\"string\",\"enum\":[\"file_replace\"]},\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"type\",\"target\",\"replacement\"],\"additionalProperties\":false}]}}},\"additionalProperties\":false,\"required\":[\"operations\"]}}],\"tool_choice\":\"required\",\"stream\":true}", + "headers": [], + "cookies": [] + }, + "response": { + "status": 200, + "statusText": "", + "body": "event: response.created\ndata: {\"type\":\"response.created\",\"response\":{\"id\":\"resp_02deb0267e42db8300698cd82394b881948ee46bf2cb217e4f\",\"object\":\"response\",\"created_at\":1770838051,\"status\":\"in_progress\",\"background\":false,\"completed_at\":null,\"error\":null,\"frequency_penalty\":0.0,\"incomplete_details\":null,\"instructions\":null,\"max_output_tokens\":null,\"max_tool_calls\":null,\"model\":\"gpt-4o-2024-08-06\",\"output\":[],\"parallel_tool_calls\":true,\"presence_penalty\":0.0,\"previous_response_id\":null,\"prompt_cache_key\":null,\"prompt_cache_retention\":null,\"reasoning\":{\"effort\":null,\"summary\":null},\"safety_identifier\":null,\"service_tier\":\"auto\",\"store\":true,\"temperature\":1.0,\"text\":{\"format\":{\"type\":\"text\"},\"verbosity\":\"medium\"},\"tool_choice\":\"required\",\"tools\":[{\"type\":\"function\",\"description\":null,\"name\":\"applyDocumentOperations\",\"parameters\":{\"type\":\"object\",\"properties\":{\"operations\":{\"type\":\"array\",\"items\":{\"anyOf\":[{\"type\":\"object\",\"description\":\"Replace a part of the document file\",\"properties\":{\"type\":{\"type\":\"string\",\"enum\":[\"file_replace\"]},\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"type\",\"target\",\"replacement\"],\"additionalProperties\":false}]}}},\"additionalProperties\":false,\"required\":[\"operations\"]},\"strict\":true}],\"top_logprobs\":0,\"top_p\":1.0,\"truncation\":\"disabled\",\"usage\":null,\"user\":null,\"metadata\":{}},\"sequence_number\":0}\n\nevent: response.in_progress\ndata: {\"type\":\"response.in_progress\",\"response\":{\"id\":\"resp_02deb0267e42db8300698cd82394b881948ee46bf2cb217e4f\",\"object\":\"response\",\"created_at\":1770838051,\"status\":\"in_progress\",\"background\":false,\"completed_at\":null,\"error\":null,\"frequency_penalty\":0.0,\"incomplete_details\":null,\"instructions\":null,\"max_output_tokens\":null,\"max_tool_calls\":null,\"model\":\"gpt-4o-2024-08-06\",\"output\":[],\"parallel_tool_calls\":true,\"presence_penalty\":0.0,\"previous_response_id\":null,\"prompt_cache_key\":null,\"prompt_cache_retention\":null,\"reasoning\":{\"effort\":null,\"summary\":null},\"safety_identifier\":null,\"service_tier\":\"auto\",\"store\":true,\"temperature\":1.0,\"text\":{\"format\":{\"type\":\"text\"},\"verbosity\":\"medium\"},\"tool_choice\":\"required\",\"tools\":[{\"type\":\"function\",\"description\":null,\"name\":\"applyDocumentOperations\",\"parameters\":{\"type\":\"object\",\"properties\":{\"operations\":{\"type\":\"array\",\"items\":{\"anyOf\":[{\"type\":\"object\",\"description\":\"Replace a part of the document file\",\"properties\":{\"type\":{\"type\":\"string\",\"enum\":[\"file_replace\"]},\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"type\",\"target\",\"replacement\"],\"additionalProperties\":false}]}}},\"additionalProperties\":false,\"required\":[\"operations\"]},\"strict\":true}],\"top_logprobs\":0,\"top_p\":1.0,\"truncation\":\"disabled\",\"usage\":null,\"user\":null,\"metadata\":{}},\"sequence_number\":1}\n\nevent: response.output_item.added\ndata: {\"type\":\"response.output_item.added\",\"item\":{\"id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"type\":\"function_call\",\"status\":\"in_progress\",\"arguments\":\"\",\"call_id\":\"call_wVCjcQlJA8dgoGr9Jt3GS4Uw\",\"name\":\"applyDocumentOperations\"},\"output_index\":0,\"sequence_number\":2}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"{\\\"\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"jAzSHG6KcjyJRU\",\"output_index\":0,\"sequence_number\":3}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"operations\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"Yl7KcZ\",\"output_index\":0,\"sequence_number\":4}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\":[\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"z2wnnGfpo0X3S\",\"output_index\":0,\"sequence_number\":5}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"{\\\"\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"LI5ZkGfoqpfyyA\",\"output_index\":0,\"sequence_number\":6}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"type\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"2x4fWuHLuyqQ\",\"output_index\":0,\"sequence_number\":7}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\":\\\"\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"wVOu5FqdRlxYB\",\"output_index\":0,\"sequence_number\":8}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"file\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"FUWdaoZ6Tel8\",\"output_index\":0,\"sequence_number\":9}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"_replace\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"2nFliWUI\",\"output_index\":0,\"sequence_number\":10}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\",\\\"\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"XcXOQr76b74kq\",\"output_index\":0,\"sequence_number\":11}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"target\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"836xEA46Tz\",\"output_index\":0,\"sequence_number\":12}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\":\\\"\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"upHkBeaZFikUI\",\"output_index\":0,\"sequence_number\":13}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"<\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"Y6IPIJ7uK6ZD0GV\",\"output_index\":0,\"sequence_number\":14}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Paragraph\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"WSd7edZ\",\"output_index\":0,\"sequence_number\":15}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" text\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"3K07i7ol8Gn\",\"output_index\":0,\"sequence_number\":16}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Alignment\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"dTDq8hr\",\"output_index\":0,\"sequence_number\":17}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\\\\\\\"\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"WXOsrJcGweMEE\",\"output_index\":0,\"sequence_number\":18}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"left\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"bVdECRg6a4qh\",\"output_index\":0,\"sequence_number\":19}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\"\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"Eh21hihJNqccET\",\"output_index\":0,\"sequence_number\":20}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" id\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"esnOmBNDDwcE6\",\"output_index\":0,\"sequence_number\":21}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\\\\\\\"\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"l3FJ06jcOxazw\",\"output_index\":0,\"sequence_number\":22}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"ref\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"tPpEQgC336iPs\",\"output_index\":0,\"sequence_number\":23}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"2\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"7iOu78OwKLEXDlZ\",\"output_index\":0,\"sequence_number\":24}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\">\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"Z4ypuwqEnjwpP\",\"output_index\":0,\"sequence_number\":25}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"How\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"dX28hIR8yfoDu\",\"output_index\":0,\"sequence_number\":26}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" are\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"tJ6gsGX6fwtI\",\"output_index\":0,\"sequence_number\":27}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" you\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"XaZie0rnfNg6\",\"output_index\":0,\"sequence_number\":28}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"?\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"bnPqcpvh7ZiINKp\",\"output_index\":0,\"sequence_number\":31}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\",\\\"\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"jtMNFPAagvzZW\",\"output_index\":0,\"sequence_number\":32}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"replacement\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"EbmnH\",\"output_index\":0,\"sequence_number\":33}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\":\\\"\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"OYyKxzdR4f12Y\",\"output_index\":0,\"sequence_number\":34}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"<\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"am4j4M6MMmia8hP\",\"output_index\":0,\"sequence_number\":35}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Paragraph\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"0pyecUC\",\"output_index\":0,\"sequence_number\":36}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" text\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"1CzyZ0qtGd3\",\"output_index\":0,\"sequence_number\":37}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Alignment\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"OXgVE2H\",\"output_index\":0,\"sequence_number\":38}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\\\\\\\"\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"DBbcg029l8geT\",\"output_index\":0,\"sequence_number\":39}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"left\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"JKJyYEyRBDFh\",\"output_index\":0,\"sequence_number\":40}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\"\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"QY5YQfE5Fg8Gnv\",\"output_index\":0,\"sequence_number\":41}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" id\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"XtlaEck1HfIFg\",\"output_index\":0,\"sequence_number\":42}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\\\\\\\"\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"0w6UtYwu0V3m9\",\"output_index\":0,\"sequence_number\":43}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"ref\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"WjcXM87DHxckg\",\"output_index\":0,\"sequence_number\":44}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"2\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"Vxh2A88iJKDT1rv\",\"output_index\":0,\"sequence_number\":45}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\">\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"17plX5XWNx7gF\",\"output_index\":0,\"sequence_number\":46}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"How\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"Mp3sqZzLw6cQt\",\"output_index\":0,\"sequence_number\":47}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" are\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"ZfUXUUwqZ9EN\",\"output_index\":0,\"sequence_number\":48}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" you\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"9nTYUn38RpM6\",\"output_index\":0,\"sequence_number\":49}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"?<\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"HTwE3fZewvAx2v\",\"output_index\":0,\"sequence_number\":52}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"List\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"ieSTbJQ3H04Y\",\"output_index\":0,\"sequence_number\":53}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" id\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"URoKYdvqA2W2a\",\"output_index\":0,\"sequence_number\":54}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\\\\\\\"\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"l0etM4JhDvnnw\",\"output_index\":0,\"sequence_number\":55}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"ref\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"nutVj6uWkwptH\",\"output_index\":0,\"sequence_number\":56}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"3\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"Li1jy48m7pZuTxB\",\"output_index\":0,\"sequence_number\":57}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\"><\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"7P8NTV5pnOaz\",\"output_index\":0,\"sequence_number\":58}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Item\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"gbXZrW5Z9T2N\",\"output_index\":0,\"sequence_number\":59}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\">\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"3HMVxTXIjcN5m6v\",\"output_index\":0,\"sequence_number\":60}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Ap\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"hryWS2qtxQESMY\",\"output_index\":0,\"sequence_number\":61}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"ples\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"VvFzuWaSjIRU\",\"output_index\":0,\"sequence_number\":62}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"<\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"dSEzFNtU2EB88R\",\"output_index\":0,\"sequence_number\":65}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Item\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"szEZbqfTHLPI\",\"output_index\":0,\"sequence_number\":66}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\">\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"Z6g2OYWOip4OjFL\",\"output_index\":0,\"sequence_number\":67}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Ban\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"9BNz5UQnSCwNP\",\"output_index\":0,\"sequence_number\":68}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"anas\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"9FaFEnCuh0dm\",\"output_index\":0,\"sequence_number\":69}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"IXepPTsPprO1rHs\",\"output_index\":0,\"sequence_number\":74}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\"}\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"c6CfKkGGP6BmAO\",\"output_index\":0,\"sequence_number\":75}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"]}\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"obfuscation\":\"eW0wDVjsAAiLM9\",\"output_index\":0,\"sequence_number\":76}\n\nevent: response.function_call_arguments.done\ndata: {\"type\":\"response.function_call_arguments.done\",\"arguments\":\"{\\\"operations\\\":[{\\\"type\\\":\\\"file_replace\\\",\\\"target\\\":\\\"How are you?\\\",\\\"replacement\\\":\\\"How are you?ApplesBananas\\\"}]}\",\"item_id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"output_index\":0,\"sequence_number\":77}\n\nevent: response.output_item.done\ndata: {\"type\":\"response.output_item.done\",\"item\":{\"id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"type\":\"function_call\",\"status\":\"completed\",\"arguments\":\"{\\\"operations\\\":[{\\\"type\\\":\\\"file_replace\\\",\\\"target\\\":\\\"How are you?\\\",\\\"replacement\\\":\\\"How are you?ApplesBananas\\\"}]}\",\"call_id\":\"call_wVCjcQlJA8dgoGr9Jt3GS4Uw\",\"name\":\"applyDocumentOperations\"},\"output_index\":0,\"sequence_number\":78}\n\nevent: response.completed\ndata: {\"type\":\"response.completed\",\"response\":{\"id\":\"resp_02deb0267e42db8300698cd82394b881948ee46bf2cb217e4f\",\"object\":\"response\",\"created_at\":1770838051,\"status\":\"completed\",\"background\":false,\"completed_at\":1770838052,\"error\":null,\"frequency_penalty\":0.0,\"incomplete_details\":null,\"instructions\":null,\"max_output_tokens\":null,\"max_tool_calls\":null,\"model\":\"gpt-4o-2024-08-06\",\"output\":[{\"id\":\"fc_02deb0267e42db8300698cd82400dc81948749405bf68eca78\",\"type\":\"function_call\",\"status\":\"completed\",\"arguments\":\"{\\\"operations\\\":[{\\\"type\\\":\\\"file_replace\\\",\\\"target\\\":\\\"How are you?\\\",\\\"replacement\\\":\\\"How are you?ApplesBananas\\\"}]}\",\"call_id\":\"call_wVCjcQlJA8dgoGr9Jt3GS4Uw\",\"name\":\"applyDocumentOperations\"}],\"parallel_tool_calls\":true,\"presence_penalty\":0.0,\"previous_response_id\":null,\"prompt_cache_key\":null,\"prompt_cache_retention\":null,\"reasoning\":{\"effort\":null,\"summary\":null},\"safety_identifier\":null,\"service_tier\":\"default\",\"store\":true,\"temperature\":1.0,\"text\":{\"format\":{\"type\":\"text\"},\"verbosity\":\"medium\"},\"tool_choice\":\"required\",\"tools\":[{\"type\":\"function\",\"description\":null,\"name\":\"applyDocumentOperations\",\"parameters\":{\"type\":\"object\",\"properties\":{\"operations\":{\"type\":\"array\",\"items\":{\"anyOf\":[{\"type\":\"object\",\"description\":\"Replace a part of the document file\",\"properties\":{\"type\":{\"type\":\"string\",\"enum\":[\"file_replace\"]},\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"type\",\"target\",\"replacement\"],\"additionalProperties\":false}]}}},\"additionalProperties\":false,\"required\":[\"operations\"]},\"strict\":true}],\"top_logprobs\":0,\"top_p\":1.0,\"truncation\":\"disabled\",\"usage\":{\"input_tokens\":269,\"input_tokens_details\":{\"cached_tokens\":0},\"output_tokens\":75,\"output_tokens_details\":{\"reasoning_tokens\":0},\"total_tokens\":344},\"user\":null,\"metadata\":{}},\"sequence_number\":79}\n\n", + "headers": [] + } +} \ No newline at end of file diff --git a/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/add a list (end)_1_d7ece95dd7b470ac2c8445b56de14c4d.json b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/add a list (end)_1_d7ece95dd7b470ac2c8445b56de14c4d.json new file mode 100644 index 0000000000..2f21aeec6a --- /dev/null +++ b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/add a list (end)_1_d7ece95dd7b470ac2c8445b56de14c4d.json @@ -0,0 +1,15 @@ +{ + "request": { + "method": "POST", + "url": "https://api.openai.com/v1/responses", + "body": "{\"model\":\"gpt-4o-2024-08-06\",\"input\":[{\"role\":\"system\",\"content\":\"You are manipulating a text document using TSX components.\\nEach block is represented as a TSX component with props.\\n\"},{\"role\":\"assistant\",\"content\":[{\"type\":\"output_text\",\"text\":\"There is no active selection. This is the latest state of the document (ignore previous documents, you MUST issue operations against this latest version of the document). \\nThe cursor is BETWEEN two blocks as indicated by cursor: true.\\nPrefer updating existing blocks over removing and adding (but this also depends on the user's question).\"}]},{\"role\":\"assistant\",\"content\":[{\"type\":\"output_text\",\"text\":\"[{\\\"id\\\":\\\"ref1$\\\",\\\"block\\\":\\\"Hello, world!\\\"},{\\\"cursor\\\":true},{\\\"id\\\":\\\"ref2$\\\",\\\"block\\\":\\\"How are you?\\\"}]\"}]},{\"role\":\"user\",\"content\":[{\"type\":\"input_text\",\"text\":\"add a list with the items 'Apples' and 'Bananas' after the last sentence\"}]}],\"tools\":[{\"type\":\"function\",\"name\":\"file_replace\",\"parameters\":{\"type\":\"object\",\"properties\":{\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"target\",\"replacement\"]}}],\"tool_choice\":\"required\",\"stream\":true}", + "headers": [], + "cookies": [] + }, + "response": { + "status": 200, + "statusText": "", + "body": "event: response.created\ndata: {\"type\":\"response.created\",\"response\":{\"id\":\"resp_0bf801264141576700698e16c293888197940b54afa6620222\",\"object\":\"response\",\"created_at\":1770919618,\"status\":\"in_progress\",\"background\":false,\"completed_at\":null,\"error\":null,\"frequency_penalty\":0.0,\"incomplete_details\":null,\"instructions\":null,\"max_output_tokens\":null,\"max_tool_calls\":null,\"model\":\"gpt-4o-2024-08-06\",\"output\":[],\"parallel_tool_calls\":true,\"presence_penalty\":0.0,\"previous_response_id\":null,\"prompt_cache_key\":null,\"prompt_cache_retention\":null,\"reasoning\":{\"effort\":null,\"summary\":null},\"safety_identifier\":null,\"service_tier\":\"auto\",\"store\":true,\"temperature\":1.0,\"text\":{\"format\":{\"type\":\"text\"},\"verbosity\":\"medium\"},\"tool_choice\":\"required\",\"tools\":[{\"type\":\"function\",\"description\":null,\"name\":\"file_replace\",\"parameters\":{\"type\":\"object\",\"properties\":{\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"target\",\"replacement\"],\"additionalProperties\":false},\"strict\":true}],\"top_logprobs\":0,\"top_p\":1.0,\"truncation\":\"disabled\",\"usage\":null,\"user\":null,\"metadata\":{}},\"sequence_number\":0}\n\nevent: response.in_progress\ndata: {\"type\":\"response.in_progress\",\"response\":{\"id\":\"resp_0bf801264141576700698e16c293888197940b54afa6620222\",\"object\":\"response\",\"created_at\":1770919618,\"status\":\"in_progress\",\"background\":false,\"completed_at\":null,\"error\":null,\"frequency_penalty\":0.0,\"incomplete_details\":null,\"instructions\":null,\"max_output_tokens\":null,\"max_tool_calls\":null,\"model\":\"gpt-4o-2024-08-06\",\"output\":[],\"parallel_tool_calls\":true,\"presence_penalty\":0.0,\"previous_response_id\":null,\"prompt_cache_key\":null,\"prompt_cache_retention\":null,\"reasoning\":{\"effort\":null,\"summary\":null},\"safety_identifier\":null,\"service_tier\":\"auto\",\"store\":true,\"temperature\":1.0,\"text\":{\"format\":{\"type\":\"text\"},\"verbosity\":\"medium\"},\"tool_choice\":\"required\",\"tools\":[{\"type\":\"function\",\"description\":null,\"name\":\"file_replace\",\"parameters\":{\"type\":\"object\",\"properties\":{\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"target\",\"replacement\"],\"additionalProperties\":false},\"strict\":true}],\"top_logprobs\":0,\"top_p\":1.0,\"truncation\":\"disabled\",\"usage\":null,\"user\":null,\"metadata\":{}},\"sequence_number\":1}\n\nevent: response.output_item.added\ndata: {\"type\":\"response.output_item.added\",\"item\":{\"id\":\"fc_0bf801264141576700698e16c2ef7081978feb411057d4af24\",\"type\":\"function_call\",\"status\":\"in_progress\",\"arguments\":\"\",\"call_id\":\"call_ulKHZ83j9qCVbHw0IGoyZiGV\",\"name\":\"file_replace\"},\"output_index\":0,\"sequence_number\":2}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"{\\\"\",\"item_id\":\"fc_0bf801264141576700698e16c2ef7081978feb411057d4af24\",\"obfuscation\":\"XIUsXkUvc5ry93\",\"output_index\":0,\"sequence_number\":3}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"target\",\"item_id\":\"fc_0bf801264141576700698e16c2ef7081978feb411057d4af24\",\"obfuscation\":\"TLXpszzUHC\",\"output_index\":0,\"sequence_number\":4}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\":\\\"\",\"item_id\":\"fc_0bf801264141576700698e16c2ef7081978feb411057d4af24\",\"obfuscation\":\"3M35Lon9XVAHE\",\"output_index\":0,\"sequence_number\":5}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"<\",\"item_id\":\"fc_0bf801264141576700698e16c2ef7081978feb411057d4af24\",\"obfuscation\":\"pqLBYC3ZDkgriDw\",\"output_index\":0,\"sequence_number\":6}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Paragraph\",\"item_id\":\"fc_0bf801264141576700698e16c2ef7081978feb411057d4af24\",\"obfuscation\":\"wAzsotH\",\"output_index\":0,\"sequence_number\":7}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" text\",\"item_id\":\"fc_0bf801264141576700698e16c2ef7081978feb411057d4af24\",\"obfuscation\":\"oHUtpf5YATq\",\"output_index\":0,\"sequence_number\":8}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Alignment\",\"item_id\":\"fc_0bf801264141576700698e16c2ef7081978feb411057d4af24\",\"obfuscation\":\"OSf8fiw\",\"output_index\":0,\"sequence_number\":9}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\\\\\\\"\",\"item_id\":\"fc_0bf801264141576700698e16c2ef7081978feb411057d4af24\",\"obfuscation\":\"ng6gsNv2NmLkJ\",\"output_index\":0,\"sequence_number\":10}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"left\",\"item_id\":\"fc_0bf801264141576700698e16c2ef7081978feb411057d4af24\",\"obfuscation\":\"fBXkA62YByr1\",\"output_index\":0,\"sequence_number\":11}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\"\",\"item_id\":\"fc_0bf801264141576700698e16c2ef7081978feb411057d4af24\",\"obfuscation\":\"Syosid4eFFUZZa\",\"output_index\":0,\"sequence_number\":12}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" id\",\"item_id\":\"fc_0bf801264141576700698e16c2ef7081978feb411057d4af24\",\"obfuscation\":\"vXvQfsbOCLu7i\",\"output_index\":0,\"sequence_number\":13}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\\\\\\\"\",\"item_id\":\"fc_0bf801264141576700698e16c2ef7081978feb411057d4af24\",\"obfuscation\":\"6ZvPYNeABoL67\",\"output_index\":0,\"sequence_number\":14}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"ref\",\"item_id\":\"fc_0bf801264141576700698e16c2ef7081978feb411057d4af24\",\"obfuscation\":\"yZfihm33Oy8k7\",\"output_index\":0,\"sequence_number\":15}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"2\",\"item_id\":\"fc_0bf801264141576700698e16c2ef7081978feb411057d4af24\",\"obfuscation\":\"IyjHEfWXskAaROd\",\"output_index\":0,\"sequence_number\":16}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\">\",\"item_id\":\"fc_0bf801264141576700698e16c2ef7081978feb411057d4af24\",\"obfuscation\":\"5LOwTA1nQwBUT\",\"output_index\":0,\"sequence_number\":17}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"How\",\"item_id\":\"fc_0bf801264141576700698e16c2ef7081978feb411057d4af24\",\"obfuscation\":\"XdPQD4WqhyV8r\",\"output_index\":0,\"sequence_number\":18}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" are\",\"item_id\":\"fc_0bf801264141576700698e16c2ef7081978feb411057d4af24\",\"obfuscation\":\"kMH15b0HAwbw\",\"output_index\":0,\"sequence_number\":19}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" you\",\"item_id\":\"fc_0bf801264141576700698e16c2ef7081978feb411057d4af24\",\"obfuscation\":\"eZ9m9zh1tQmf\",\"output_index\":0,\"sequence_number\":20}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"?\",\"item_id\":\"fc_0bf801264141576700698e16c2ef7081978feb411057d4af24\",\"obfuscation\":\"sMUwgywVLiGBQ2N\",\"output_index\":0,\"sequence_number\":23}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\",\\\"\",\"item_id\":\"fc_0bf801264141576700698e16c2ef7081978feb411057d4af24\",\"obfuscation\":\"bTXdfwYZQvdq7\",\"output_index\":0,\"sequence_number\":24}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"replacement\",\"item_id\":\"fc_0bf801264141576700698e16c2ef7081978feb411057d4af24\",\"obfuscation\":\"LPNzs\",\"output_index\":0,\"sequence_number\":25}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\":\\\"\",\"item_id\":\"fc_0bf801264141576700698e16c2ef7081978feb411057d4af24\",\"obfuscation\":\"K4tbgiA9pXuV2\",\"output_index\":0,\"sequence_number\":26}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"<\",\"item_id\":\"fc_0bf801264141576700698e16c2ef7081978feb411057d4af24\",\"obfuscation\":\"pVEIH2WIgxnfVcS\",\"output_index\":0,\"sequence_number\":27}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Paragraph\",\"item_id\":\"fc_0bf801264141576700698e16c2ef7081978feb411057d4af24\",\"obfuscation\":\"YX78OQc\",\"output_index\":0,\"sequence_number\":28}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" text\",\"item_id\":\"fc_0bf801264141576700698e16c2ef7081978feb411057d4af24\",\"obfuscation\":\"yixFQO1liyl\",\"output_index\":0,\"sequence_number\":29}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Alignment\",\"item_id\":\"fc_0bf801264141576700698e16c2ef7081978feb411057d4af24\",\"obfuscation\":\"GAoSHPs\",\"output_index\":0,\"sequence_number\":30}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\\\\\\\"\",\"item_id\":\"fc_0bf801264141576700698e16c2ef7081978feb411057d4af24\",\"obfuscation\":\"JOR8CaKqdlptm\",\"output_index\":0,\"sequence_number\":31}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"left\",\"item_id\":\"fc_0bf801264141576700698e16c2ef7081978feb411057d4af24\",\"obfuscation\":\"LyCGyJWLqH4O\",\"output_index\":0,\"sequence_number\":32}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\"\",\"item_id\":\"fc_0bf801264141576700698e16c2ef7081978feb411057d4af24\",\"obfuscation\":\"baqVDLePXOcyFX\",\"output_index\":0,\"sequence_number\":33}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" id\",\"item_id\":\"fc_0bf801264141576700698e16c2ef7081978feb411057d4af24\",\"obfuscation\":\"VUIEwPVfWqDNe\",\"output_index\":0,\"sequence_number\":34}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\\\\\\\"\",\"item_id\":\"fc_0bf801264141576700698e16c2ef7081978feb411057d4af24\",\"obfuscation\":\"Wt3jHyFp7NSav\",\"output_index\":0,\"sequence_number\":35}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"ref\",\"item_id\":\"fc_0bf801264141576700698e16c2ef7081978feb411057d4af24\",\"obfuscation\":\"lWFm4LQJUE1i5\",\"output_index\":0,\"sequence_number\":36}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"2\",\"item_id\":\"fc_0bf801264141576700698e16c2ef7081978feb411057d4af24\",\"obfuscation\":\"0t7ESjGmor8W3nx\",\"output_index\":0,\"sequence_number\":37}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\">\",\"item_id\":\"fc_0bf801264141576700698e16c2ef7081978feb411057d4af24\",\"obfuscation\":\"uAvcnL0SMeNvs\",\"output_index\":0,\"sequence_number\":38}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"How\",\"item_id\":\"fc_0bf801264141576700698e16c2ef7081978feb411057d4af24\",\"obfuscation\":\"Dv0ZJO5cdXvm3\",\"output_index\":0,\"sequence_number\":39}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" are\",\"item_id\":\"fc_0bf801264141576700698e16c2ef7081978feb411057d4af24\",\"obfuscation\":\"d7IjG3OLW5oV\",\"output_index\":0,\"sequence_number\":40}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" you\",\"item_id\":\"fc_0bf801264141576700698e16c2ef7081978feb411057d4af24\",\"obfuscation\":\"LR3hSVW2PsM6\",\"output_index\":0,\"sequence_number\":41}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"?<\",\"item_id\":\"fc_0bf801264141576700698e16c2ef7081978feb411057d4af24\",\"obfuscation\":\"wxSp6KVkusHoUV\",\"output_index\":0,\"sequence_number\":44}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"List\",\"item_id\":\"fc_0bf801264141576700698e16c2ef7081978feb411057d4af24\",\"obfuscation\":\"7G1TXNq9Voh3\",\"output_index\":0,\"sequence_number\":45}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" id\",\"item_id\":\"fc_0bf801264141576700698e16c2ef7081978feb411057d4af24\",\"obfuscation\":\"T82IfzQOfVXzl\",\"output_index\":0,\"sequence_number\":46}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\\\\\\\"\",\"item_id\":\"fc_0bf801264141576700698e16c2ef7081978feb411057d4af24\",\"obfuscation\":\"W1D0pemwNDF7t\",\"output_index\":0,\"sequence_number\":47}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"list\",\"item_id\":\"fc_0bf801264141576700698e16c2ef7081978feb411057d4af24\",\"obfuscation\":\"nx4Z8gVoQDEK\",\"output_index\":0,\"sequence_number\":48}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"1\",\"item_id\":\"fc_0bf801264141576700698e16c2ef7081978feb411057d4af24\",\"obfuscation\":\"mYG6NaC9HNuxOYb\",\"output_index\":0,\"sequence_number\":49}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\"><\",\"item_id\":\"fc_0bf801264141576700698e16c2ef7081978feb411057d4af24\",\"obfuscation\":\"tBlDf3VJ3b1u\",\"output_index\":0,\"sequence_number\":50}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"List\",\"item_id\":\"fc_0bf801264141576700698e16c2ef7081978feb411057d4af24\",\"obfuscation\":\"s0ZvhROvfS15\",\"output_index\":0,\"sequence_number\":51}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Item\",\"item_id\":\"fc_0bf801264141576700698e16c2ef7081978feb411057d4af24\",\"obfuscation\":\"E4uQlRmDuNQd\",\"output_index\":0,\"sequence_number\":52}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\">\",\"item_id\":\"fc_0bf801264141576700698e16c2ef7081978feb411057d4af24\",\"obfuscation\":\"XkwSWOiqX4KBJAG\",\"output_index\":0,\"sequence_number\":53}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Ap\",\"item_id\":\"fc_0bf801264141576700698e16c2ef7081978feb411057d4af24\",\"obfuscation\":\"6hNsv64l3EG4YV\",\"output_index\":0,\"sequence_number\":54}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"ples\",\"item_id\":\"fc_0bf801264141576700698e16c2ef7081978feb411057d4af24\",\"obfuscation\":\"7OrAI4R8eQDi\",\"output_index\":0,\"sequence_number\":55}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"<\",\"item_id\":\"fc_0bf801264141576700698e16c2ef7081978feb411057d4af24\",\"obfuscation\":\"iZxiUHrxEPPh3Q\",\"output_index\":0,\"sequence_number\":59}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"List\",\"item_id\":\"fc_0bf801264141576700698e16c2ef7081978feb411057d4af24\",\"obfuscation\":\"bwhQ6uwGlSah\",\"output_index\":0,\"sequence_number\":60}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Item\",\"item_id\":\"fc_0bf801264141576700698e16c2ef7081978feb411057d4af24\",\"obfuscation\":\"3KdsdcMPG8Is\",\"output_index\":0,\"sequence_number\":61}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\">\",\"item_id\":\"fc_0bf801264141576700698e16c2ef7081978feb411057d4af24\",\"obfuscation\":\"3iL0QPhft969Xwz\",\"output_index\":0,\"sequence_number\":62}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Ban\",\"item_id\":\"fc_0bf801264141576700698e16c2ef7081978feb411057d4af24\",\"obfuscation\":\"8Jh3w7ubbOLkG\",\"output_index\":0,\"sequence_number\":63}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"anas\",\"item_id\":\"fc_0bf801264141576700698e16c2ef7081978feb411057d4af24\",\"obfuscation\":\"PsfCoBfRhzfP\",\"output_index\":0,\"sequence_number\":64}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\",\"item_id\":\"fc_0bf801264141576700698e16c2ef7081978feb411057d4af24\",\"obfuscation\":\"b2pf0wRgpWZwrId\",\"output_index\":0,\"sequence_number\":70}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\"}\",\"item_id\":\"fc_0bf801264141576700698e16c2ef7081978feb411057d4af24\",\"obfuscation\":\"suj2irQdRCVFSw\",\"output_index\":0,\"sequence_number\":71}\n\nevent: response.function_call_arguments.done\ndata: {\"type\":\"response.function_call_arguments.done\",\"arguments\":\"{\\\"target\\\":\\\"How are you?\\\",\\\"replacement\\\":\\\"How are you?ApplesBananas\\\"}\",\"item_id\":\"fc_0bf801264141576700698e16c2ef7081978feb411057d4af24\",\"output_index\":0,\"sequence_number\":72}\n\nevent: response.output_item.done\ndata: {\"type\":\"response.output_item.done\",\"item\":{\"id\":\"fc_0bf801264141576700698e16c2ef7081978feb411057d4af24\",\"type\":\"function_call\",\"status\":\"completed\",\"arguments\":\"{\\\"target\\\":\\\"How are you?\\\",\\\"replacement\\\":\\\"How are you?ApplesBananas\\\"}\",\"call_id\":\"call_ulKHZ83j9qCVbHw0IGoyZiGV\",\"name\":\"file_replace\"},\"output_index\":0,\"sequence_number\":73}\n\nevent: response.completed\ndata: {\"type\":\"response.completed\",\"response\":{\"id\":\"resp_0bf801264141576700698e16c293888197940b54afa6620222\",\"object\":\"response\",\"created_at\":1770919618,\"status\":\"completed\",\"background\":false,\"completed_at\":1770919619,\"error\":null,\"frequency_penalty\":0.0,\"incomplete_details\":null,\"instructions\":null,\"max_output_tokens\":null,\"max_tool_calls\":null,\"model\":\"gpt-4o-2024-08-06\",\"output\":[{\"id\":\"fc_0bf801264141576700698e16c2ef7081978feb411057d4af24\",\"type\":\"function_call\",\"status\":\"completed\",\"arguments\":\"{\\\"target\\\":\\\"How are you?\\\",\\\"replacement\\\":\\\"How are you?ApplesBananas\\\"}\",\"call_id\":\"call_ulKHZ83j9qCVbHw0IGoyZiGV\",\"name\":\"file_replace\"}],\"parallel_tool_calls\":true,\"presence_penalty\":0.0,\"previous_response_id\":null,\"prompt_cache_key\":null,\"prompt_cache_retention\":null,\"reasoning\":{\"effort\":null,\"summary\":null},\"safety_identifier\":null,\"service_tier\":\"default\",\"store\":true,\"temperature\":1.0,\"text\":{\"format\":{\"type\":\"text\"},\"verbosity\":\"medium\"},\"tool_choice\":\"required\",\"tools\":[{\"type\":\"function\",\"description\":null,\"name\":\"file_replace\",\"parameters\":{\"type\":\"object\",\"properties\":{\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"target\",\"replacement\"],\"additionalProperties\":false},\"strict\":true}],\"top_logprobs\":0,\"top_p\":1.0,\"truncation\":\"disabled\",\"usage\":{\"input_tokens\":232,\"input_tokens_details\":{\"cached_tokens\":0},\"output_tokens\":70,\"output_tokens_details\":{\"reasoning_tokens\":0},\"total_tokens\":302},\"user\":null,\"metadata\":{}},\"sequence_number\":74}\n\n", + "headers": [] + } +} \ No newline at end of file diff --git a/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/add a new paragraph (empty doc)_1_4ddd26cb3bd20f62e0060899a3c57056.json b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/add a new paragraph (empty doc)_1_4ddd26cb3bd20f62e0060899a3c57056.json new file mode 100644 index 0000000000..c4fdb8580b --- /dev/null +++ b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/add a new paragraph (empty doc)_1_4ddd26cb3bd20f62e0060899a3c57056.json @@ -0,0 +1,15 @@ +{ + "request": { + "method": "POST", + "url": "https://api.openai.com/v1/responses", + "body": "{\"model\":\"gpt-4o-2024-08-06\",\"input\":[{\"role\":\"system\",\"content\":\"You are manipulating a text document using TSX components.\\nEach block is represented as a TSX component with props.\\n\"},{\"role\":\"assistant\",\"content\":[{\"type\":\"output_text\",\"text\":\"There is no active selection. This is the latest state of the document (ignore previous documents, you MUST issue operations against this latest version of the document). \\nThe cursor is BETWEEN two blocks as indicated by cursor: true.\\nBecause the document is empty, YOU MUST first update the empty block before adding new blocks.\"}]},{\"role\":\"assistant\",\"content\":[{\"type\":\"output_text\",\"text\":\"{\\\"selection\\\":false,\\\"blocks\\\":[{\\\"id\\\":\\\"ref1$\\\",\\\"block\\\":\\\"\\\"},{\\\"cursor\\\":true}],\\\"isEmptyDocument\\\":true}\"}]},{\"role\":\"user\",\"content\":[{\"type\":\"input_text\",\"text\":\"write a new paragraph with the text 'You look great today!'\"}]}],\"tools\":[{\"type\":\"function\",\"name\":\"applyDocumentOperations\",\"parameters\":{\"type\":\"object\",\"properties\":{\"operations\":{\"type\":\"array\",\"items\":{\"anyOf\":[{\"type\":\"object\",\"description\":\"Replace a part of the document file\",\"properties\":{\"type\":{\"type\":\"string\",\"enum\":[\"file_replace\"]},\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"type\",\"target\",\"replacement\"],\"additionalProperties\":false}]}}},\"additionalProperties\":false,\"required\":[\"operations\"]}}],\"tool_choice\":\"required\",\"stream\":true}", + "headers": [], + "cookies": [] + }, + "response": { + "status": 200, + "statusText": "", + "body": "event: response.created\ndata: {\"type\":\"response.created\",\"response\":{\"id\":\"resp_0230f5dca948ab2b00698cd82650748197ba37aa967dfc8fbb\",\"object\":\"response\",\"created_at\":1770838054,\"status\":\"in_progress\",\"background\":false,\"completed_at\":null,\"error\":null,\"frequency_penalty\":0.0,\"incomplete_details\":null,\"instructions\":null,\"max_output_tokens\":null,\"max_tool_calls\":null,\"model\":\"gpt-4o-2024-08-06\",\"output\":[],\"parallel_tool_calls\":true,\"presence_penalty\":0.0,\"previous_response_id\":null,\"prompt_cache_key\":null,\"prompt_cache_retention\":null,\"reasoning\":{\"effort\":null,\"summary\":null},\"safety_identifier\":null,\"service_tier\":\"auto\",\"store\":true,\"temperature\":1.0,\"text\":{\"format\":{\"type\":\"text\"},\"verbosity\":\"medium\"},\"tool_choice\":\"required\",\"tools\":[{\"type\":\"function\",\"description\":null,\"name\":\"applyDocumentOperations\",\"parameters\":{\"type\":\"object\",\"properties\":{\"operations\":{\"type\":\"array\",\"items\":{\"anyOf\":[{\"type\":\"object\",\"description\":\"Replace a part of the document file\",\"properties\":{\"type\":{\"type\":\"string\",\"enum\":[\"file_replace\"]},\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"type\",\"target\",\"replacement\"],\"additionalProperties\":false}]}}},\"additionalProperties\":false,\"required\":[\"operations\"]},\"strict\":true}],\"top_logprobs\":0,\"top_p\":1.0,\"truncation\":\"disabled\",\"usage\":null,\"user\":null,\"metadata\":{}},\"sequence_number\":0}\n\nevent: response.in_progress\ndata: {\"type\":\"response.in_progress\",\"response\":{\"id\":\"resp_0230f5dca948ab2b00698cd82650748197ba37aa967dfc8fbb\",\"object\":\"response\",\"created_at\":1770838054,\"status\":\"in_progress\",\"background\":false,\"completed_at\":null,\"error\":null,\"frequency_penalty\":0.0,\"incomplete_details\":null,\"instructions\":null,\"max_output_tokens\":null,\"max_tool_calls\":null,\"model\":\"gpt-4o-2024-08-06\",\"output\":[],\"parallel_tool_calls\":true,\"presence_penalty\":0.0,\"previous_response_id\":null,\"prompt_cache_key\":null,\"prompt_cache_retention\":null,\"reasoning\":{\"effort\":null,\"summary\":null},\"safety_identifier\":null,\"service_tier\":\"auto\",\"store\":true,\"temperature\":1.0,\"text\":{\"format\":{\"type\":\"text\"},\"verbosity\":\"medium\"},\"tool_choice\":\"required\",\"tools\":[{\"type\":\"function\",\"description\":null,\"name\":\"applyDocumentOperations\",\"parameters\":{\"type\":\"object\",\"properties\":{\"operations\":{\"type\":\"array\",\"items\":{\"anyOf\":[{\"type\":\"object\",\"description\":\"Replace a part of the document file\",\"properties\":{\"type\":{\"type\":\"string\",\"enum\":[\"file_replace\"]},\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"type\",\"target\",\"replacement\"],\"additionalProperties\":false}]}}},\"additionalProperties\":false,\"required\":[\"operations\"]},\"strict\":true}],\"top_logprobs\":0,\"top_p\":1.0,\"truncation\":\"disabled\",\"usage\":null,\"user\":null,\"metadata\":{}},\"sequence_number\":1}\n\nevent: response.output_item.added\ndata: {\"type\":\"response.output_item.added\",\"item\":{\"id\":\"fc_0230f5dca948ab2b00698cd8269fac8197979dd89d73397556\",\"type\":\"function_call\",\"status\":\"in_progress\",\"arguments\":\"\",\"call_id\":\"call_3ZcKkLqGZj278rRPZKTZR1Gx\",\"name\":\"applyDocumentOperations\"},\"output_index\":0,\"sequence_number\":2}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"{\\\"\",\"item_id\":\"fc_0230f5dca948ab2b00698cd8269fac8197979dd89d73397556\",\"obfuscation\":\"TNdqQ5YsPUcegU\",\"output_index\":0,\"sequence_number\":3}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"operations\",\"item_id\":\"fc_0230f5dca948ab2b00698cd8269fac8197979dd89d73397556\",\"obfuscation\":\"M1BZfh\",\"output_index\":0,\"sequence_number\":4}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\":[\",\"item_id\":\"fc_0230f5dca948ab2b00698cd8269fac8197979dd89d73397556\",\"obfuscation\":\"V0pyg39MaX6x7\",\"output_index\":0,\"sequence_number\":5}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"{\\\"\",\"item_id\":\"fc_0230f5dca948ab2b00698cd8269fac8197979dd89d73397556\",\"obfuscation\":\"ylR2DQlKEhB26l\",\"output_index\":0,\"sequence_number\":6}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"type\",\"item_id\":\"fc_0230f5dca948ab2b00698cd8269fac8197979dd89d73397556\",\"obfuscation\":\"pLPd7hA2YBh6\",\"output_index\":0,\"sequence_number\":7}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\":\\\"\",\"item_id\":\"fc_0230f5dca948ab2b00698cd8269fac8197979dd89d73397556\",\"obfuscation\":\"GA5Iy9XRYzNMl\",\"output_index\":0,\"sequence_number\":8}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"file\",\"item_id\":\"fc_0230f5dca948ab2b00698cd8269fac8197979dd89d73397556\",\"obfuscation\":\"F0JQPC8nKZEy\",\"output_index\":0,\"sequence_number\":9}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"_replace\",\"item_id\":\"fc_0230f5dca948ab2b00698cd8269fac8197979dd89d73397556\",\"obfuscation\":\"zEN5jA0G\",\"output_index\":0,\"sequence_number\":10}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\",\\\"\",\"item_id\":\"fc_0230f5dca948ab2b00698cd8269fac8197979dd89d73397556\",\"obfuscation\":\"KUwf2Qug1BhHg\",\"output_index\":0,\"sequence_number\":11}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"target\",\"item_id\":\"fc_0230f5dca948ab2b00698cd8269fac8197979dd89d73397556\",\"obfuscation\":\"1XUdB2rkuK\",\"output_index\":0,\"sequence_number\":12}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\":\\\"\",\"item_id\":\"fc_0230f5dca948ab2b00698cd8269fac8197979dd89d73397556\",\"obfuscation\":\"Sm0Mcbjk6pQKW\",\"output_index\":0,\"sequence_number\":13}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"<\",\"item_id\":\"fc_0230f5dca948ab2b00698cd8269fac8197979dd89d73397556\",\"obfuscation\":\"o2szFEV7Wvho46k\",\"output_index\":0,\"sequence_number\":14}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Paragraph\",\"item_id\":\"fc_0230f5dca948ab2b00698cd8269fac8197979dd89d73397556\",\"obfuscation\":\"5lq1MRl\",\"output_index\":0,\"sequence_number\":15}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" text\",\"item_id\":\"fc_0230f5dca948ab2b00698cd8269fac8197979dd89d73397556\",\"obfuscation\":\"kI4GKpS710e\",\"output_index\":0,\"sequence_number\":16}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Alignment\",\"item_id\":\"fc_0230f5dca948ab2b00698cd8269fac8197979dd89d73397556\",\"obfuscation\":\"AQEl9Lq\",\"output_index\":0,\"sequence_number\":17}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\\\\\\\"\",\"item_id\":\"fc_0230f5dca948ab2b00698cd8269fac8197979dd89d73397556\",\"obfuscation\":\"KuRxBFeJYklmP\",\"output_index\":0,\"sequence_number\":18}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"left\",\"item_id\":\"fc_0230f5dca948ab2b00698cd8269fac8197979dd89d73397556\",\"obfuscation\":\"0kVmwTKoy6C5\",\"output_index\":0,\"sequence_number\":19}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\"\",\"item_id\":\"fc_0230f5dca948ab2b00698cd8269fac8197979dd89d73397556\",\"obfuscation\":\"NSfrk3u7qqsPCz\",\"output_index\":0,\"sequence_number\":20}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" id\",\"item_id\":\"fc_0230f5dca948ab2b00698cd8269fac8197979dd89d73397556\",\"obfuscation\":\"wPrvvb8ssMWNH\",\"output_index\":0,\"sequence_number\":21}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\\\\\\\"\",\"item_id\":\"fc_0230f5dca948ab2b00698cd8269fac8197979dd89d73397556\",\"obfuscation\":\"mTuSbHf5xb7fL\",\"output_index\":0,\"sequence_number\":22}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"ref\",\"item_id\":\"fc_0230f5dca948ab2b00698cd8269fac8197979dd89d73397556\",\"obfuscation\":\"0Sd1q1y72sfjb\",\"output_index\":0,\"sequence_number\":23}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"1\",\"item_id\":\"fc_0230f5dca948ab2b00698cd8269fac8197979dd89d73397556\",\"obfuscation\":\"FSdcHLflVdvvrGx\",\"output_index\":0,\"sequence_number\":24}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\"\",\"item_id\":\"fc_0230f5dca948ab2b00698cd8269fac8197979dd89d73397556\",\"obfuscation\":\"VCE1XxfFBA9PlZ\",\"output_index\":0,\"sequence_number\":25}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" />\",\"item_id\":\"fc_0230f5dca948ab2b00698cd8269fac8197979dd89d73397556\",\"obfuscation\":\"gltudhTTAdo7n\",\"output_index\":0,\"sequence_number\":26}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\",\\\"\",\"item_id\":\"fc_0230f5dca948ab2b00698cd8269fac8197979dd89d73397556\",\"obfuscation\":\"A8bWcg4A2WeWH\",\"output_index\":0,\"sequence_number\":27}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"replacement\",\"item_id\":\"fc_0230f5dca948ab2b00698cd8269fac8197979dd89d73397556\",\"obfuscation\":\"IgacU\",\"output_index\":0,\"sequence_number\":28}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\":\\\"\",\"item_id\":\"fc_0230f5dca948ab2b00698cd8269fac8197979dd89d73397556\",\"obfuscation\":\"9Mjswz6V3mzw9\",\"output_index\":0,\"sequence_number\":29}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"<\",\"item_id\":\"fc_0230f5dca948ab2b00698cd8269fac8197979dd89d73397556\",\"obfuscation\":\"jKoiqWhyT2xIej4\",\"output_index\":0,\"sequence_number\":30}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Paragraph\",\"item_id\":\"fc_0230f5dca948ab2b00698cd8269fac8197979dd89d73397556\",\"obfuscation\":\"02DegnZ\",\"output_index\":0,\"sequence_number\":31}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" text\",\"item_id\":\"fc_0230f5dca948ab2b00698cd8269fac8197979dd89d73397556\",\"obfuscation\":\"M3uV5JEZzgW\",\"output_index\":0,\"sequence_number\":32}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Alignment\",\"item_id\":\"fc_0230f5dca948ab2b00698cd8269fac8197979dd89d73397556\",\"obfuscation\":\"BDIX3GS\",\"output_index\":0,\"sequence_number\":33}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\\\\\\\"\",\"item_id\":\"fc_0230f5dca948ab2b00698cd8269fac8197979dd89d73397556\",\"obfuscation\":\"rFyoVsQpPtIH8\",\"output_index\":0,\"sequence_number\":34}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"left\",\"item_id\":\"fc_0230f5dca948ab2b00698cd8269fac8197979dd89d73397556\",\"obfuscation\":\"ChewPXW0Q5Sg\",\"output_index\":0,\"sequence_number\":35}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\"\",\"item_id\":\"fc_0230f5dca948ab2b00698cd8269fac8197979dd89d73397556\",\"obfuscation\":\"QIQOohtcMfSag3\",\"output_index\":0,\"sequence_number\":36}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" id\",\"item_id\":\"fc_0230f5dca948ab2b00698cd8269fac8197979dd89d73397556\",\"obfuscation\":\"1y29KkcBq1S4k\",\"output_index\":0,\"sequence_number\":37}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\\\\\\\"\",\"item_id\":\"fc_0230f5dca948ab2b00698cd8269fac8197979dd89d73397556\",\"obfuscation\":\"dQNsVrZ6cT93T\",\"output_index\":0,\"sequence_number\":38}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"ref\",\"item_id\":\"fc_0230f5dca948ab2b00698cd8269fac8197979dd89d73397556\",\"obfuscation\":\"wt9JY4foMOJcA\",\"output_index\":0,\"sequence_number\":39}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"1\",\"item_id\":\"fc_0230f5dca948ab2b00698cd8269fac8197979dd89d73397556\",\"obfuscation\":\"9IBfWtQ5fEp0h0y\",\"output_index\":0,\"sequence_number\":40}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\">\",\"item_id\":\"fc_0230f5dca948ab2b00698cd8269fac8197979dd89d73397556\",\"obfuscation\":\"crfSUvHPhbZBo\",\"output_index\":0,\"sequence_number\":41}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"You\",\"item_id\":\"fc_0230f5dca948ab2b00698cd8269fac8197979dd89d73397556\",\"obfuscation\":\"GVWgHcWhY5K4L\",\"output_index\":0,\"sequence_number\":42}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" look\",\"item_id\":\"fc_0230f5dca948ab2b00698cd8269fac8197979dd89d73397556\",\"obfuscation\":\"EERCNAl3YAJ\",\"output_index\":0,\"sequence_number\":43}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" great\",\"item_id\":\"fc_0230f5dca948ab2b00698cd8269fac8197979dd89d73397556\",\"obfuscation\":\"WWJvMqZOA8\",\"output_index\":0,\"sequence_number\":44}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" today\",\"item_id\":\"fc_0230f5dca948ab2b00698cd8269fac8197979dd89d73397556\",\"obfuscation\":\"zPpgt0rnGp\",\"output_index\":0,\"sequence_number\":45}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"!\",\"item_id\":\"fc_0230f5dca948ab2b00698cd8269fac8197979dd89d73397556\",\"obfuscation\":\"TKwVq2r33vElfrf\",\"output_index\":0,\"sequence_number\":48}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\"}\",\"item_id\":\"fc_0230f5dca948ab2b00698cd8269fac8197979dd89d73397556\",\"obfuscation\":\"FIIESRBdcDhzHp\",\"output_index\":0,\"sequence_number\":49}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"]}\",\"item_id\":\"fc_0230f5dca948ab2b00698cd8269fac8197979dd89d73397556\",\"obfuscation\":\"xh2M3ZB8sB0aWe\",\"output_index\":0,\"sequence_number\":50}\n\nevent: response.function_call_arguments.done\ndata: {\"type\":\"response.function_call_arguments.done\",\"arguments\":\"{\\\"operations\\\":[{\\\"type\\\":\\\"file_replace\\\",\\\"target\\\":\\\"\\\",\\\"replacement\\\":\\\"You look great today!\\\"}]}\",\"item_id\":\"fc_0230f5dca948ab2b00698cd8269fac8197979dd89d73397556\",\"output_index\":0,\"sequence_number\":51}\n\nevent: response.output_item.done\ndata: {\"type\":\"response.output_item.done\",\"item\":{\"id\":\"fc_0230f5dca948ab2b00698cd8269fac8197979dd89d73397556\",\"type\":\"function_call\",\"status\":\"completed\",\"arguments\":\"{\\\"operations\\\":[{\\\"type\\\":\\\"file_replace\\\",\\\"target\\\":\\\"\\\",\\\"replacement\\\":\\\"You look great today!\\\"}]}\",\"call_id\":\"call_3ZcKkLqGZj278rRPZKTZR1Gx\",\"name\":\"applyDocumentOperations\"},\"output_index\":0,\"sequence_number\":52}\n\nevent: response.completed\ndata: {\"type\":\"response.completed\",\"response\":{\"id\":\"resp_0230f5dca948ab2b00698cd82650748197ba37aa967dfc8fbb\",\"object\":\"response\",\"created_at\":1770838054,\"status\":\"completed\",\"background\":false,\"completed_at\":1770838055,\"error\":null,\"frequency_penalty\":0.0,\"incomplete_details\":null,\"instructions\":null,\"max_output_tokens\":null,\"max_tool_calls\":null,\"model\":\"gpt-4o-2024-08-06\",\"output\":[{\"id\":\"fc_0230f5dca948ab2b00698cd8269fac8197979dd89d73397556\",\"type\":\"function_call\",\"status\":\"completed\",\"arguments\":\"{\\\"operations\\\":[{\\\"type\\\":\\\"file_replace\\\",\\\"target\\\":\\\"\\\",\\\"replacement\\\":\\\"You look great today!\\\"}]}\",\"call_id\":\"call_3ZcKkLqGZj278rRPZKTZR1Gx\",\"name\":\"applyDocumentOperations\"}],\"parallel_tool_calls\":true,\"presence_penalty\":0.0,\"previous_response_id\":null,\"prompt_cache_key\":null,\"prompt_cache_retention\":null,\"reasoning\":{\"effort\":null,\"summary\":null},\"safety_identifier\":null,\"service_tier\":\"default\",\"store\":true,\"temperature\":1.0,\"text\":{\"format\":{\"type\":\"text\"},\"verbosity\":\"medium\"},\"tool_choice\":\"required\",\"tools\":[{\"type\":\"function\",\"description\":null,\"name\":\"applyDocumentOperations\",\"parameters\":{\"type\":\"object\",\"properties\":{\"operations\":{\"type\":\"array\",\"items\":{\"anyOf\":[{\"type\":\"object\",\"description\":\"Replace a part of the document file\",\"properties\":{\"type\":{\"type\":\"string\",\"enum\":[\"file_replace\"]},\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"type\",\"target\",\"replacement\"],\"additionalProperties\":false}]}}},\"additionalProperties\":false,\"required\":[\"operations\"]},\"strict\":true}],\"top_logprobs\":0,\"top_p\":1.0,\"truncation\":\"disabled\",\"usage\":{\"input_tokens\":231,\"input_tokens_details\":{\"cached_tokens\":0},\"output_tokens\":49,\"output_tokens_details\":{\"reasoning_tokens\":0},\"total_tokens\":280},\"user\":null,\"metadata\":{}},\"sequence_number\":53}\n\n", + "headers": [] + } +} \ No newline at end of file diff --git a/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/add a new paragraph (empty doc)_1_ee3dd6efeb79bd98344df49480eddb29.json b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/add a new paragraph (empty doc)_1_ee3dd6efeb79bd98344df49480eddb29.json new file mode 100644 index 0000000000..42bfaca3e7 --- /dev/null +++ b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/add a new paragraph (empty doc)_1_ee3dd6efeb79bd98344df49480eddb29.json @@ -0,0 +1,15 @@ +{ + "request": { + "method": "POST", + "url": "https://api.openai.com/v1/responses", + "body": "{\"model\":\"gpt-4o-2024-08-06\",\"input\":[{\"role\":\"system\",\"content\":\"You are manipulating a text document using TSX components.\\nEach block is represented as a TSX component with props.\\n\"},{\"role\":\"assistant\",\"content\":[{\"type\":\"output_text\",\"text\":\"There is no active selection. This is the latest state of the document (ignore previous documents, you MUST issue operations against this latest version of the document). \\nThe cursor is BETWEEN two blocks as indicated by cursor: true.\\nBecause the document is empty, YOU MUST first update the empty block before adding new blocks.\"}]},{\"role\":\"assistant\",\"content\":[{\"type\":\"output_text\",\"text\":\"[{\\\"id\\\":\\\"ref1$\\\",\\\"block\\\":\\\"\\\"},{\\\"cursor\\\":true}]\"}]},{\"role\":\"user\",\"content\":[{\"type\":\"input_text\",\"text\":\"write a new paragraph with the text 'You look great today!'\"}]}],\"tools\":[{\"type\":\"function\",\"name\":\"file_replace\",\"parameters\":{\"type\":\"object\",\"properties\":{\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"target\",\"replacement\"]}}],\"tool_choice\":\"required\",\"stream\":true}", + "headers": [], + "cookies": [] + }, + "response": { + "status": 200, + "statusText": "", + "body": "event: response.created\ndata: {\"type\":\"response.created\",\"response\":{\"id\":\"resp_0addaa26e93aa41d00698e16c699648190bc6b7b918668354b\",\"object\":\"response\",\"created_at\":1770919622,\"status\":\"in_progress\",\"background\":false,\"completed_at\":null,\"error\":null,\"frequency_penalty\":0.0,\"incomplete_details\":null,\"instructions\":null,\"max_output_tokens\":null,\"max_tool_calls\":null,\"model\":\"gpt-4o-2024-08-06\",\"output\":[],\"parallel_tool_calls\":true,\"presence_penalty\":0.0,\"previous_response_id\":null,\"prompt_cache_key\":null,\"prompt_cache_retention\":null,\"reasoning\":{\"effort\":null,\"summary\":null},\"safety_identifier\":null,\"service_tier\":\"auto\",\"store\":true,\"temperature\":1.0,\"text\":{\"format\":{\"type\":\"text\"},\"verbosity\":\"medium\"},\"tool_choice\":\"required\",\"tools\":[{\"type\":\"function\",\"description\":null,\"name\":\"file_replace\",\"parameters\":{\"type\":\"object\",\"properties\":{\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"target\",\"replacement\"],\"additionalProperties\":false},\"strict\":true}],\"top_logprobs\":0,\"top_p\":1.0,\"truncation\":\"disabled\",\"usage\":null,\"user\":null,\"metadata\":{}},\"sequence_number\":0}\n\nevent: response.in_progress\ndata: {\"type\":\"response.in_progress\",\"response\":{\"id\":\"resp_0addaa26e93aa41d00698e16c699648190bc6b7b918668354b\",\"object\":\"response\",\"created_at\":1770919622,\"status\":\"in_progress\",\"background\":false,\"completed_at\":null,\"error\":null,\"frequency_penalty\":0.0,\"incomplete_details\":null,\"instructions\":null,\"max_output_tokens\":null,\"max_tool_calls\":null,\"model\":\"gpt-4o-2024-08-06\",\"output\":[],\"parallel_tool_calls\":true,\"presence_penalty\":0.0,\"previous_response_id\":null,\"prompt_cache_key\":null,\"prompt_cache_retention\":null,\"reasoning\":{\"effort\":null,\"summary\":null},\"safety_identifier\":null,\"service_tier\":\"auto\",\"store\":true,\"temperature\":1.0,\"text\":{\"format\":{\"type\":\"text\"},\"verbosity\":\"medium\"},\"tool_choice\":\"required\",\"tools\":[{\"type\":\"function\",\"description\":null,\"name\":\"file_replace\",\"parameters\":{\"type\":\"object\",\"properties\":{\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"target\",\"replacement\"],\"additionalProperties\":false},\"strict\":true}],\"top_logprobs\":0,\"top_p\":1.0,\"truncation\":\"disabled\",\"usage\":null,\"user\":null,\"metadata\":{}},\"sequence_number\":1}\n\nevent: response.output_item.added\ndata: {\"type\":\"response.output_item.added\",\"item\":{\"id\":\"fc_0addaa26e93aa41d00698e16c6fde08190ab42d35b5d8526fc\",\"type\":\"function_call\",\"status\":\"in_progress\",\"arguments\":\"\",\"call_id\":\"call_0uzRTCfLwNALnBXdGnRTHjr4\",\"name\":\"file_replace\"},\"output_index\":0,\"sequence_number\":2}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"{\\\"\",\"item_id\":\"fc_0addaa26e93aa41d00698e16c6fde08190ab42d35b5d8526fc\",\"obfuscation\":\"kPNm3h0K8YFYJ8\",\"output_index\":0,\"sequence_number\":3}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"target\",\"item_id\":\"fc_0addaa26e93aa41d00698e16c6fde08190ab42d35b5d8526fc\",\"obfuscation\":\"M9TOAKkAgu\",\"output_index\":0,\"sequence_number\":4}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\":\\\"\",\"item_id\":\"fc_0addaa26e93aa41d00698e16c6fde08190ab42d35b5d8526fc\",\"obfuscation\":\"QcPfe0bmhU1zF\",\"output_index\":0,\"sequence_number\":5}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"<\",\"item_id\":\"fc_0addaa26e93aa41d00698e16c6fde08190ab42d35b5d8526fc\",\"obfuscation\":\"um86EeroIVBP7Kx\",\"output_index\":0,\"sequence_number\":6}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Paragraph\",\"item_id\":\"fc_0addaa26e93aa41d00698e16c6fde08190ab42d35b5d8526fc\",\"obfuscation\":\"sm4TKHC\",\"output_index\":0,\"sequence_number\":7}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" text\",\"item_id\":\"fc_0addaa26e93aa41d00698e16c6fde08190ab42d35b5d8526fc\",\"obfuscation\":\"coDb95hYYr6\",\"output_index\":0,\"sequence_number\":8}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Alignment\",\"item_id\":\"fc_0addaa26e93aa41d00698e16c6fde08190ab42d35b5d8526fc\",\"obfuscation\":\"NPcCbVr\",\"output_index\":0,\"sequence_number\":9}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\\\\\\\"\",\"item_id\":\"fc_0addaa26e93aa41d00698e16c6fde08190ab42d35b5d8526fc\",\"obfuscation\":\"6riQVF4VjJbuf\",\"output_index\":0,\"sequence_number\":10}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"left\",\"item_id\":\"fc_0addaa26e93aa41d00698e16c6fde08190ab42d35b5d8526fc\",\"obfuscation\":\"r10RCoMJJw0C\",\"output_index\":0,\"sequence_number\":11}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\"\",\"item_id\":\"fc_0addaa26e93aa41d00698e16c6fde08190ab42d35b5d8526fc\",\"obfuscation\":\"3QPxGHdRY442ao\",\"output_index\":0,\"sequence_number\":12}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" id\",\"item_id\":\"fc_0addaa26e93aa41d00698e16c6fde08190ab42d35b5d8526fc\",\"obfuscation\":\"Wu50IngwRXm9N\",\"output_index\":0,\"sequence_number\":13}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\\\\\\\"\",\"item_id\":\"fc_0addaa26e93aa41d00698e16c6fde08190ab42d35b5d8526fc\",\"obfuscation\":\"wSYLVDZmgUCQQ\",\"output_index\":0,\"sequence_number\":14}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"ref\",\"item_id\":\"fc_0addaa26e93aa41d00698e16c6fde08190ab42d35b5d8526fc\",\"obfuscation\":\"tkaAoxPvXYDIm\",\"output_index\":0,\"sequence_number\":15}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"1\",\"item_id\":\"fc_0addaa26e93aa41d00698e16c6fde08190ab42d35b5d8526fc\",\"obfuscation\":\"qfwk2mTzIEJRmCR\",\"output_index\":0,\"sequence_number\":16}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\"\",\"item_id\":\"fc_0addaa26e93aa41d00698e16c6fde08190ab42d35b5d8526fc\",\"obfuscation\":\"TawQ8o84RVpeqD\",\"output_index\":0,\"sequence_number\":17}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" />\",\"item_id\":\"fc_0addaa26e93aa41d00698e16c6fde08190ab42d35b5d8526fc\",\"obfuscation\":\"qU5DxegNdjt9L\",\"output_index\":0,\"sequence_number\":18}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\",\\\"\",\"item_id\":\"fc_0addaa26e93aa41d00698e16c6fde08190ab42d35b5d8526fc\",\"obfuscation\":\"jHNt1oN5MsM2l\",\"output_index\":0,\"sequence_number\":19}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"replacement\",\"item_id\":\"fc_0addaa26e93aa41d00698e16c6fde08190ab42d35b5d8526fc\",\"obfuscation\":\"jahZG\",\"output_index\":0,\"sequence_number\":20}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\":\\\"\",\"item_id\":\"fc_0addaa26e93aa41d00698e16c6fde08190ab42d35b5d8526fc\",\"obfuscation\":\"rfplo4EOZnkaK\",\"output_index\":0,\"sequence_number\":21}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"<\",\"item_id\":\"fc_0addaa26e93aa41d00698e16c6fde08190ab42d35b5d8526fc\",\"obfuscation\":\"f3et0BJ3eG1zmLS\",\"output_index\":0,\"sequence_number\":22}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Paragraph\",\"item_id\":\"fc_0addaa26e93aa41d00698e16c6fde08190ab42d35b5d8526fc\",\"obfuscation\":\"3enDQij\",\"output_index\":0,\"sequence_number\":23}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" text\",\"item_id\":\"fc_0addaa26e93aa41d00698e16c6fde08190ab42d35b5d8526fc\",\"obfuscation\":\"OOFwLnKw50p\",\"output_index\":0,\"sequence_number\":24}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Alignment\",\"item_id\":\"fc_0addaa26e93aa41d00698e16c6fde08190ab42d35b5d8526fc\",\"obfuscation\":\"rvEQrvG\",\"output_index\":0,\"sequence_number\":25}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\\\\\\\"\",\"item_id\":\"fc_0addaa26e93aa41d00698e16c6fde08190ab42d35b5d8526fc\",\"obfuscation\":\"mIKKaHdJoZDzn\",\"output_index\":0,\"sequence_number\":26}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"left\",\"item_id\":\"fc_0addaa26e93aa41d00698e16c6fde08190ab42d35b5d8526fc\",\"obfuscation\":\"35pDeM34Z2in\",\"output_index\":0,\"sequence_number\":27}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\"\",\"item_id\":\"fc_0addaa26e93aa41d00698e16c6fde08190ab42d35b5d8526fc\",\"obfuscation\":\"hLVchrmjX6iC0R\",\"output_index\":0,\"sequence_number\":28}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" id\",\"item_id\":\"fc_0addaa26e93aa41d00698e16c6fde08190ab42d35b5d8526fc\",\"obfuscation\":\"ltu5VwTlSLepO\",\"output_index\":0,\"sequence_number\":29}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\\\\\\\"\",\"item_id\":\"fc_0addaa26e93aa41d00698e16c6fde08190ab42d35b5d8526fc\",\"obfuscation\":\"iuAq15S7rerMx\",\"output_index\":0,\"sequence_number\":30}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"ref\",\"item_id\":\"fc_0addaa26e93aa41d00698e16c6fde08190ab42d35b5d8526fc\",\"obfuscation\":\"kic3sC8ZkMQce\",\"output_index\":0,\"sequence_number\":31}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"1\",\"item_id\":\"fc_0addaa26e93aa41d00698e16c6fde08190ab42d35b5d8526fc\",\"obfuscation\":\"fopsMfMoCOlQqEh\",\"output_index\":0,\"sequence_number\":32}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\">\",\"item_id\":\"fc_0addaa26e93aa41d00698e16c6fde08190ab42d35b5d8526fc\",\"obfuscation\":\"EoAr71RokDuyZ\",\"output_index\":0,\"sequence_number\":33}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"You\",\"item_id\":\"fc_0addaa26e93aa41d00698e16c6fde08190ab42d35b5d8526fc\",\"obfuscation\":\"JRBm3td5aoUs5\",\"output_index\":0,\"sequence_number\":34}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" look\",\"item_id\":\"fc_0addaa26e93aa41d00698e16c6fde08190ab42d35b5d8526fc\",\"obfuscation\":\"Hlty8Sku0zJ\",\"output_index\":0,\"sequence_number\":35}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" great\",\"item_id\":\"fc_0addaa26e93aa41d00698e16c6fde08190ab42d35b5d8526fc\",\"obfuscation\":\"bofyIFQoJh\",\"output_index\":0,\"sequence_number\":36}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" today\",\"item_id\":\"fc_0addaa26e93aa41d00698e16c6fde08190ab42d35b5d8526fc\",\"obfuscation\":\"WbBNSfWx0z\",\"output_index\":0,\"sequence_number\":37}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"!\",\"item_id\":\"fc_0addaa26e93aa41d00698e16c6fde08190ab42d35b5d8526fc\",\"obfuscation\":\"9hAercEs85gyIVt\",\"output_index\":0,\"sequence_number\":40}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\"}\",\"item_id\":\"fc_0addaa26e93aa41d00698e16c6fde08190ab42d35b5d8526fc\",\"obfuscation\":\"G6K1gfLBQlUpTV\",\"output_index\":0,\"sequence_number\":41}\n\nevent: response.function_call_arguments.done\ndata: {\"type\":\"response.function_call_arguments.done\",\"arguments\":\"{\\\"target\\\":\\\"\\\",\\\"replacement\\\":\\\"You look great today!\\\"}\",\"item_id\":\"fc_0addaa26e93aa41d00698e16c6fde08190ab42d35b5d8526fc\",\"output_index\":0,\"sequence_number\":42}\n\nevent: response.output_item.done\ndata: {\"type\":\"response.output_item.done\",\"item\":{\"id\":\"fc_0addaa26e93aa41d00698e16c6fde08190ab42d35b5d8526fc\",\"type\":\"function_call\",\"status\":\"completed\",\"arguments\":\"{\\\"target\\\":\\\"\\\",\\\"replacement\\\":\\\"You look great today!\\\"}\",\"call_id\":\"call_0uzRTCfLwNALnBXdGnRTHjr4\",\"name\":\"file_replace\"},\"output_index\":0,\"sequence_number\":43}\n\nevent: response.completed\ndata: {\"type\":\"response.completed\",\"response\":{\"id\":\"resp_0addaa26e93aa41d00698e16c699648190bc6b7b918668354b\",\"object\":\"response\",\"created_at\":1770919622,\"status\":\"completed\",\"background\":false,\"completed_at\":1770919623,\"error\":null,\"frequency_penalty\":0.0,\"incomplete_details\":null,\"instructions\":null,\"max_output_tokens\":null,\"max_tool_calls\":null,\"model\":\"gpt-4o-2024-08-06\",\"output\":[{\"id\":\"fc_0addaa26e93aa41d00698e16c6fde08190ab42d35b5d8526fc\",\"type\":\"function_call\",\"status\":\"completed\",\"arguments\":\"{\\\"target\\\":\\\"\\\",\\\"replacement\\\":\\\"You look great today!\\\"}\",\"call_id\":\"call_0uzRTCfLwNALnBXdGnRTHjr4\",\"name\":\"file_replace\"}],\"parallel_tool_calls\":true,\"presence_penalty\":0.0,\"previous_response_id\":null,\"prompt_cache_key\":null,\"prompt_cache_retention\":null,\"reasoning\":{\"effort\":null,\"summary\":null},\"safety_identifier\":null,\"service_tier\":\"default\",\"store\":true,\"temperature\":1.0,\"text\":{\"format\":{\"type\":\"text\"},\"verbosity\":\"medium\"},\"tool_choice\":\"required\",\"tools\":[{\"type\":\"function\",\"description\":null,\"name\":\"file_replace\",\"parameters\":{\"type\":\"object\",\"properties\":{\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"target\",\"replacement\"],\"additionalProperties\":false},\"strict\":true}],\"top_logprobs\":0,\"top_p\":1.0,\"truncation\":\"disabled\",\"usage\":{\"input_tokens\":193,\"input_tokens_details\":{\"cached_tokens\":0},\"output_tokens\":40,\"output_tokens_details\":{\"reasoning_tokens\":0},\"total_tokens\":233},\"user\":null,\"metadata\":{}},\"sequence_number\":44}\n\n", + "headers": [] + } +} \ No newline at end of file diff --git a/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/add a new paragraph (end)_1_358291b6f87d2d1bcbc7b488318dc0d5.json b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/add a new paragraph (end)_1_358291b6f87d2d1bcbc7b488318dc0d5.json new file mode 100644 index 0000000000..2ae8cb18de --- /dev/null +++ b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/add a new paragraph (end)_1_358291b6f87d2d1bcbc7b488318dc0d5.json @@ -0,0 +1,15 @@ +{ + "request": { + "method": "POST", + "url": "https://api.openai.com/v1/responses", + "body": "{\"model\":\"gpt-4o-2024-08-06\",\"input\":[{\"role\":\"system\",\"content\":\"You are manipulating a text document using TSX components.\\nEach block is represented as a TSX component with props.\\n\"},{\"role\":\"assistant\",\"content\":[{\"type\":\"output_text\",\"text\":\"There is no active selection. This is the latest state of the document (ignore previous documents, you MUST issue operations against this latest version of the document). \\nThe cursor is BETWEEN two blocks as indicated by cursor: true.\\nPrefer updating existing blocks over removing and adding (but this also depends on the user's question).\"}]},{\"role\":\"assistant\",\"content\":[{\"type\":\"output_text\",\"text\":\"[{\\\"id\\\":\\\"ref1$\\\",\\\"block\\\":\\\"Hello, world!\\\"},{\\\"cursor\\\":true},{\\\"id\\\":\\\"ref2$\\\",\\\"block\\\":\\\"How are you?\\\"}]\"}]},{\"role\":\"user\",\"content\":[{\"type\":\"input_text\",\"text\":\"add a new paragraph with the text 'You look great today!' after the last sentence\"}]}],\"tools\":[{\"type\":\"function\",\"name\":\"file_replace\",\"parameters\":{\"type\":\"object\",\"properties\":{\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"target\",\"replacement\"]}}],\"tool_choice\":\"required\",\"stream\":true}", + "headers": [], + "cookies": [] + }, + "response": { + "status": 200, + "statusText": "", + "body": "event: response.created\ndata: {\"type\":\"response.created\",\"response\":{\"id\":\"resp_0b7295bf83b07ff300698e16c110d48194820b53d75ef0401e\",\"object\":\"response\",\"created_at\":1770919617,\"status\":\"in_progress\",\"background\":false,\"completed_at\":null,\"error\":null,\"frequency_penalty\":0.0,\"incomplete_details\":null,\"instructions\":null,\"max_output_tokens\":null,\"max_tool_calls\":null,\"model\":\"gpt-4o-2024-08-06\",\"output\":[],\"parallel_tool_calls\":true,\"presence_penalty\":0.0,\"previous_response_id\":null,\"prompt_cache_key\":null,\"prompt_cache_retention\":null,\"reasoning\":{\"effort\":null,\"summary\":null},\"safety_identifier\":null,\"service_tier\":\"auto\",\"store\":true,\"temperature\":1.0,\"text\":{\"format\":{\"type\":\"text\"},\"verbosity\":\"medium\"},\"tool_choice\":\"required\",\"tools\":[{\"type\":\"function\",\"description\":null,\"name\":\"file_replace\",\"parameters\":{\"type\":\"object\",\"properties\":{\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"target\",\"replacement\"],\"additionalProperties\":false},\"strict\":true}],\"top_logprobs\":0,\"top_p\":1.0,\"truncation\":\"disabled\",\"usage\":null,\"user\":null,\"metadata\":{}},\"sequence_number\":0}\n\nevent: response.in_progress\ndata: {\"type\":\"response.in_progress\",\"response\":{\"id\":\"resp_0b7295bf83b07ff300698e16c110d48194820b53d75ef0401e\",\"object\":\"response\",\"created_at\":1770919617,\"status\":\"in_progress\",\"background\":false,\"completed_at\":null,\"error\":null,\"frequency_penalty\":0.0,\"incomplete_details\":null,\"instructions\":null,\"max_output_tokens\":null,\"max_tool_calls\":null,\"model\":\"gpt-4o-2024-08-06\",\"output\":[],\"parallel_tool_calls\":true,\"presence_penalty\":0.0,\"previous_response_id\":null,\"prompt_cache_key\":null,\"prompt_cache_retention\":null,\"reasoning\":{\"effort\":null,\"summary\":null},\"safety_identifier\":null,\"service_tier\":\"auto\",\"store\":true,\"temperature\":1.0,\"text\":{\"format\":{\"type\":\"text\"},\"verbosity\":\"medium\"},\"tool_choice\":\"required\",\"tools\":[{\"type\":\"function\",\"description\":null,\"name\":\"file_replace\",\"parameters\":{\"type\":\"object\",\"properties\":{\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"target\",\"replacement\"],\"additionalProperties\":false},\"strict\":true}],\"top_logprobs\":0,\"top_p\":1.0,\"truncation\":\"disabled\",\"usage\":null,\"user\":null,\"metadata\":{}},\"sequence_number\":1}\n\nevent: response.output_item.added\ndata: {\"type\":\"response.output_item.added\",\"item\":{\"id\":\"fc_0b7295bf83b07ff300698e16c17a108194899c429135447658\",\"type\":\"function_call\",\"status\":\"in_progress\",\"arguments\":\"\",\"call_id\":\"call_lkvijxr4p1r3NAjmFLTpKG3A\",\"name\":\"file_replace\"},\"output_index\":0,\"sequence_number\":2}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"{\\\"\",\"item_id\":\"fc_0b7295bf83b07ff300698e16c17a108194899c429135447658\",\"obfuscation\":\"NEfgrEE35Fd89L\",\"output_index\":0,\"sequence_number\":3}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"target\",\"item_id\":\"fc_0b7295bf83b07ff300698e16c17a108194899c429135447658\",\"obfuscation\":\"lIuKvaCUJG\",\"output_index\":0,\"sequence_number\":4}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\":\\\"\",\"item_id\":\"fc_0b7295bf83b07ff300698e16c17a108194899c429135447658\",\"obfuscation\":\"N1awDXbg0xBz9\",\"output_index\":0,\"sequence_number\":5}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"<\",\"item_id\":\"fc_0b7295bf83b07ff300698e16c17a108194899c429135447658\",\"obfuscation\":\"ZKi9SkVXEVZToIs\",\"output_index\":0,\"sequence_number\":6}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Paragraph\",\"item_id\":\"fc_0b7295bf83b07ff300698e16c17a108194899c429135447658\",\"obfuscation\":\"fjEQsTq\",\"output_index\":0,\"sequence_number\":7}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" text\",\"item_id\":\"fc_0b7295bf83b07ff300698e16c17a108194899c429135447658\",\"obfuscation\":\"zw0zYmA0tHA\",\"output_index\":0,\"sequence_number\":8}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Alignment\",\"item_id\":\"fc_0b7295bf83b07ff300698e16c17a108194899c429135447658\",\"obfuscation\":\"3UPP93h\",\"output_index\":0,\"sequence_number\":9}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\\\\\\\"\",\"item_id\":\"fc_0b7295bf83b07ff300698e16c17a108194899c429135447658\",\"obfuscation\":\"0WzkQTqP4c6Bx\",\"output_index\":0,\"sequence_number\":10}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"left\",\"item_id\":\"fc_0b7295bf83b07ff300698e16c17a108194899c429135447658\",\"obfuscation\":\"iQAeqPTKofYZ\",\"output_index\":0,\"sequence_number\":11}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\"\",\"item_id\":\"fc_0b7295bf83b07ff300698e16c17a108194899c429135447658\",\"obfuscation\":\"4qSnWJK1DAvgii\",\"output_index\":0,\"sequence_number\":12}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" id\",\"item_id\":\"fc_0b7295bf83b07ff300698e16c17a108194899c429135447658\",\"obfuscation\":\"yUsodDtHx0oB6\",\"output_index\":0,\"sequence_number\":13}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\\\\\\\"\",\"item_id\":\"fc_0b7295bf83b07ff300698e16c17a108194899c429135447658\",\"obfuscation\":\"Vk5PiQD6y4tjp\",\"output_index\":0,\"sequence_number\":14}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"ref\",\"item_id\":\"fc_0b7295bf83b07ff300698e16c17a108194899c429135447658\",\"obfuscation\":\"VXgUwb7PnM4Gn\",\"output_index\":0,\"sequence_number\":15}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"2\",\"item_id\":\"fc_0b7295bf83b07ff300698e16c17a108194899c429135447658\",\"obfuscation\":\"6Ihkg65ShPzX9y1\",\"output_index\":0,\"sequence_number\":16}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\">\",\"item_id\":\"fc_0b7295bf83b07ff300698e16c17a108194899c429135447658\",\"obfuscation\":\"Z6fOYxCshAGva\",\"output_index\":0,\"sequence_number\":17}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"How\",\"item_id\":\"fc_0b7295bf83b07ff300698e16c17a108194899c429135447658\",\"obfuscation\":\"84gDrnLIIUtWc\",\"output_index\":0,\"sequence_number\":18}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" are\",\"item_id\":\"fc_0b7295bf83b07ff300698e16c17a108194899c429135447658\",\"obfuscation\":\"b4wxg0NkSLNz\",\"output_index\":0,\"sequence_number\":19}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" you\",\"item_id\":\"fc_0b7295bf83b07ff300698e16c17a108194899c429135447658\",\"obfuscation\":\"3Iyxw7f5LTiN\",\"output_index\":0,\"sequence_number\":20}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"?\",\"item_id\":\"fc_0b7295bf83b07ff300698e16c17a108194899c429135447658\",\"obfuscation\":\"UAn40G3Ovb2vDvO\",\"output_index\":0,\"sequence_number\":23}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\",\\\"\",\"item_id\":\"fc_0b7295bf83b07ff300698e16c17a108194899c429135447658\",\"obfuscation\":\"g63oSiiE6nc0W\",\"output_index\":0,\"sequence_number\":24}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"replacement\",\"item_id\":\"fc_0b7295bf83b07ff300698e16c17a108194899c429135447658\",\"obfuscation\":\"H1IAp\",\"output_index\":0,\"sequence_number\":25}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\":\\\"\",\"item_id\":\"fc_0b7295bf83b07ff300698e16c17a108194899c429135447658\",\"obfuscation\":\"uNpkCqmPkl4w0\",\"output_index\":0,\"sequence_number\":26}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"<\",\"item_id\":\"fc_0b7295bf83b07ff300698e16c17a108194899c429135447658\",\"obfuscation\":\"8fri6CRq5GkD4KR\",\"output_index\":0,\"sequence_number\":27}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Paragraph\",\"item_id\":\"fc_0b7295bf83b07ff300698e16c17a108194899c429135447658\",\"obfuscation\":\"ZdCCFKe\",\"output_index\":0,\"sequence_number\":28}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" text\",\"item_id\":\"fc_0b7295bf83b07ff300698e16c17a108194899c429135447658\",\"obfuscation\":\"WOpudmZJ5DR\",\"output_index\":0,\"sequence_number\":29}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Alignment\",\"item_id\":\"fc_0b7295bf83b07ff300698e16c17a108194899c429135447658\",\"obfuscation\":\"V2ftZPK\",\"output_index\":0,\"sequence_number\":30}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\\\\\\\"\",\"item_id\":\"fc_0b7295bf83b07ff300698e16c17a108194899c429135447658\",\"obfuscation\":\"TUhy0it6FhYXl\",\"output_index\":0,\"sequence_number\":31}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"left\",\"item_id\":\"fc_0b7295bf83b07ff300698e16c17a108194899c429135447658\",\"obfuscation\":\"pNhI1jajfjlA\",\"output_index\":0,\"sequence_number\":32}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\"\",\"item_id\":\"fc_0b7295bf83b07ff300698e16c17a108194899c429135447658\",\"obfuscation\":\"6bxDaLUq7Tc6eF\",\"output_index\":0,\"sequence_number\":33}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" id\",\"item_id\":\"fc_0b7295bf83b07ff300698e16c17a108194899c429135447658\",\"obfuscation\":\"56fIPO65PRTCr\",\"output_index\":0,\"sequence_number\":34}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\\\\\\\"\",\"item_id\":\"fc_0b7295bf83b07ff300698e16c17a108194899c429135447658\",\"obfuscation\":\"wIOcUDCTrsUyc\",\"output_index\":0,\"sequence_number\":35}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"ref\",\"item_id\":\"fc_0b7295bf83b07ff300698e16c17a108194899c429135447658\",\"obfuscation\":\"phMUDfKa23wAY\",\"output_index\":0,\"sequence_number\":36}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"2\",\"item_id\":\"fc_0b7295bf83b07ff300698e16c17a108194899c429135447658\",\"obfuscation\":\"ruabDZPchXuwGYN\",\"output_index\":0,\"sequence_number\":37}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\">\",\"item_id\":\"fc_0b7295bf83b07ff300698e16c17a108194899c429135447658\",\"obfuscation\":\"q3Ty7rw56Mp11\",\"output_index\":0,\"sequence_number\":38}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"How\",\"item_id\":\"fc_0b7295bf83b07ff300698e16c17a108194899c429135447658\",\"obfuscation\":\"mWjIRQcaD0nN7\",\"output_index\":0,\"sequence_number\":39}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" are\",\"item_id\":\"fc_0b7295bf83b07ff300698e16c17a108194899c429135447658\",\"obfuscation\":\"2WbyXWI93GvA\",\"output_index\":0,\"sequence_number\":40}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" you\",\"item_id\":\"fc_0b7295bf83b07ff300698e16c17a108194899c429135447658\",\"obfuscation\":\"RXzbfD5RReSV\",\"output_index\":0,\"sequence_number\":41}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"?\\\\\",\"item_id\":\"fc_0b7295bf83b07ff300698e16c17a108194899c429135447658\",\"obfuscation\":\"yfb9PCjxqMkgis\",\"output_index\":0,\"sequence_number\":44}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"n\",\"item_id\":\"fc_0b7295bf83b07ff300698e16c17a108194899c429135447658\",\"obfuscation\":\"oSXn9HwSVLOor4c\",\"output_index\":0,\"sequence_number\":45}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"<\",\"item_id\":\"fc_0b7295bf83b07ff300698e16c17a108194899c429135447658\",\"obfuscation\":\"iAu1exmY5Pp1Q01\",\"output_index\":0,\"sequence_number\":46}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Paragraph\",\"item_id\":\"fc_0b7295bf83b07ff300698e16c17a108194899c429135447658\",\"obfuscation\":\"kofuWrn\",\"output_index\":0,\"sequence_number\":47}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" text\",\"item_id\":\"fc_0b7295bf83b07ff300698e16c17a108194899c429135447658\",\"obfuscation\":\"7IeQn5M84ug\",\"output_index\":0,\"sequence_number\":48}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Alignment\",\"item_id\":\"fc_0b7295bf83b07ff300698e16c17a108194899c429135447658\",\"obfuscation\":\"UOdnrb6\",\"output_index\":0,\"sequence_number\":49}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\\\\\\\"\",\"item_id\":\"fc_0b7295bf83b07ff300698e16c17a108194899c429135447658\",\"obfuscation\":\"1JBJgAgd50IEZ\",\"output_index\":0,\"sequence_number\":50}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"left\",\"item_id\":\"fc_0b7295bf83b07ff300698e16c17a108194899c429135447658\",\"obfuscation\":\"tWjipGpRF3nt\",\"output_index\":0,\"sequence_number\":51}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\"\",\"item_id\":\"fc_0b7295bf83b07ff300698e16c17a108194899c429135447658\",\"obfuscation\":\"eLvAkI4IjrN9ly\",\"output_index\":0,\"sequence_number\":52}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" id\",\"item_id\":\"fc_0b7295bf83b07ff300698e16c17a108194899c429135447658\",\"obfuscation\":\"npCqKJZ2eXpWD\",\"output_index\":0,\"sequence_number\":53}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\\\\\\\"\",\"item_id\":\"fc_0b7295bf83b07ff300698e16c17a108194899c429135447658\",\"obfuscation\":\"kPQALSEXnqlqQ\",\"output_index\":0,\"sequence_number\":54}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"ref\",\"item_id\":\"fc_0b7295bf83b07ff300698e16c17a108194899c429135447658\",\"obfuscation\":\"FVvDa24ifn6TC\",\"output_index\":0,\"sequence_number\":55}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"3\",\"item_id\":\"fc_0b7295bf83b07ff300698e16c17a108194899c429135447658\",\"obfuscation\":\"FRv6cPKN3zncAMT\",\"output_index\":0,\"sequence_number\":56}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\">\",\"item_id\":\"fc_0b7295bf83b07ff300698e16c17a108194899c429135447658\",\"obfuscation\":\"5xO8lMxradFKD\",\"output_index\":0,\"sequence_number\":57}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"You\",\"item_id\":\"fc_0b7295bf83b07ff300698e16c17a108194899c429135447658\",\"obfuscation\":\"Aj0iabAKQr1Mn\",\"output_index\":0,\"sequence_number\":58}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" look\",\"item_id\":\"fc_0b7295bf83b07ff300698e16c17a108194899c429135447658\",\"obfuscation\":\"FBv9k41XTrP\",\"output_index\":0,\"sequence_number\":59}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" great\",\"item_id\":\"fc_0b7295bf83b07ff300698e16c17a108194899c429135447658\",\"obfuscation\":\"Ocb9DvCTQv\",\"output_index\":0,\"sequence_number\":60}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" today\",\"item_id\":\"fc_0b7295bf83b07ff300698e16c17a108194899c429135447658\",\"obfuscation\":\"BpsWcDgCdt\",\"output_index\":0,\"sequence_number\":61}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"!\",\"item_id\":\"fc_0b7295bf83b07ff300698e16c17a108194899c429135447658\",\"obfuscation\":\"ctJj4cKcHmytEjD\",\"output_index\":0,\"sequence_number\":64}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\"}\",\"item_id\":\"fc_0b7295bf83b07ff300698e16c17a108194899c429135447658\",\"obfuscation\":\"7kFxdKwMeA6Nps\",\"output_index\":0,\"sequence_number\":65}\n\nevent: response.function_call_arguments.done\ndata: {\"type\":\"response.function_call_arguments.done\",\"arguments\":\"{\\\"target\\\":\\\"How are you?\\\",\\\"replacement\\\":\\\"How are you?\\\\nYou look great today!\\\"}\",\"item_id\":\"fc_0b7295bf83b07ff300698e16c17a108194899c429135447658\",\"output_index\":0,\"sequence_number\":66}\n\nevent: response.output_item.done\ndata: {\"type\":\"response.output_item.done\",\"item\":{\"id\":\"fc_0b7295bf83b07ff300698e16c17a108194899c429135447658\",\"type\":\"function_call\",\"status\":\"completed\",\"arguments\":\"{\\\"target\\\":\\\"How are you?\\\",\\\"replacement\\\":\\\"How are you?\\\\nYou look great today!\\\"}\",\"call_id\":\"call_lkvijxr4p1r3NAjmFLTpKG3A\",\"name\":\"file_replace\"},\"output_index\":0,\"sequence_number\":67}\n\nevent: response.completed\ndata: {\"type\":\"response.completed\",\"response\":{\"id\":\"resp_0b7295bf83b07ff300698e16c110d48194820b53d75ef0401e\",\"object\":\"response\",\"created_at\":1770919617,\"status\":\"completed\",\"background\":false,\"completed_at\":1770919618,\"error\":null,\"frequency_penalty\":0.0,\"incomplete_details\":null,\"instructions\":null,\"max_output_tokens\":null,\"max_tool_calls\":null,\"model\":\"gpt-4o-2024-08-06\",\"output\":[{\"id\":\"fc_0b7295bf83b07ff300698e16c17a108194899c429135447658\",\"type\":\"function_call\",\"status\":\"completed\",\"arguments\":\"{\\\"target\\\":\\\"How are you?\\\",\\\"replacement\\\":\\\"How are you?\\\\nYou look great today!\\\"}\",\"call_id\":\"call_lkvijxr4p1r3NAjmFLTpKG3A\",\"name\":\"file_replace\"}],\"parallel_tool_calls\":true,\"presence_penalty\":0.0,\"previous_response_id\":null,\"prompt_cache_key\":null,\"prompt_cache_retention\":null,\"reasoning\":{\"effort\":null,\"summary\":null},\"safety_identifier\":null,\"service_tier\":\"default\",\"store\":true,\"temperature\":1.0,\"text\":{\"format\":{\"type\":\"text\"},\"verbosity\":\"medium\"},\"tool_choice\":\"required\",\"tools\":[{\"type\":\"function\",\"description\":null,\"name\":\"file_replace\",\"parameters\":{\"type\":\"object\",\"properties\":{\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"target\",\"replacement\"],\"additionalProperties\":false},\"strict\":true}],\"top_logprobs\":0,\"top_p\":1.0,\"truncation\":\"disabled\",\"usage\":{\"input_tokens\":230,\"input_tokens_details\":{\"cached_tokens\":0},\"output_tokens\":64,\"output_tokens_details\":{\"reasoning_tokens\":0},\"total_tokens\":294},\"user\":null,\"metadata\":{}},\"sequence_number\":68}\n\n", + "headers": [] + } +} \ No newline at end of file diff --git a/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/add a new paragraph (end)_1_528aa99624a5ea1ecf2419b1c5ec471a.json b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/add a new paragraph (end)_1_528aa99624a5ea1ecf2419b1c5ec471a.json new file mode 100644 index 0000000000..f1d1b3e810 --- /dev/null +++ b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/add a new paragraph (end)_1_528aa99624a5ea1ecf2419b1c5ec471a.json @@ -0,0 +1,15 @@ +{ + "request": { + "method": "POST", + "url": "https://api.openai.com/v1/responses", + "body": "{\"model\":\"gpt-4o-2024-08-06\",\"input\":[{\"role\":\"system\",\"content\":\"You are manipulating a text document using TSX components.\\nEach block is represented as a TSX component with props.\\n\"},{\"role\":\"assistant\",\"content\":[{\"type\":\"output_text\",\"text\":\"There is no active selection. This is the latest state of the document (ignore previous documents, you MUST issue operations against this latest version of the document). \\nThe cursor is BETWEEN two blocks as indicated by cursor: true.\\nPrefer updating existing blocks over removing and adding (but this also depends on the user's question).\"}]},{\"role\":\"assistant\",\"content\":[{\"type\":\"output_text\",\"text\":\"{\\\"selection\\\":false,\\\"blocks\\\":[{\\\"id\\\":\\\"ref1$\\\",\\\"block\\\":\\\"Hello, world!\\\"},{\\\"cursor\\\":true},{\\\"id\\\":\\\"ref2$\\\",\\\"block\\\":\\\"How are you?\\\"}],\\\"isEmptyDocument\\\":false}\"}]},{\"role\":\"user\",\"content\":[{\"type\":\"input_text\",\"text\":\"add a new paragraph with the text 'You look great today!' after the last sentence\"}]}],\"tools\":[{\"type\":\"function\",\"name\":\"applyDocumentOperations\",\"parameters\":{\"type\":\"object\",\"properties\":{\"operations\":{\"type\":\"array\",\"items\":{\"anyOf\":[{\"type\":\"object\",\"description\":\"Replace a part of the document file\",\"properties\":{\"type\":{\"type\":\"string\",\"enum\":[\"file_replace\"]},\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"type\",\"target\",\"replacement\"],\"additionalProperties\":false}]}}},\"additionalProperties\":false,\"required\":[\"operations\"]}}],\"tool_choice\":\"required\",\"stream\":true}", + "headers": [], + "cookies": [] + }, + "response": { + "status": 200, + "statusText": "", + "body": "event: response.created\ndata: {\"type\":\"response.created\",\"response\":{\"id\":\"resp_0cd60577277a029300698cd82212d08197a104dd16c5720ad6\",\"object\":\"response\",\"created_at\":1770838050,\"status\":\"in_progress\",\"background\":false,\"completed_at\":null,\"error\":null,\"frequency_penalty\":0.0,\"incomplete_details\":null,\"instructions\":null,\"max_output_tokens\":null,\"max_tool_calls\":null,\"model\":\"gpt-4o-2024-08-06\",\"output\":[],\"parallel_tool_calls\":true,\"presence_penalty\":0.0,\"previous_response_id\":null,\"prompt_cache_key\":null,\"prompt_cache_retention\":null,\"reasoning\":{\"effort\":null,\"summary\":null},\"safety_identifier\":null,\"service_tier\":\"auto\",\"store\":true,\"temperature\":1.0,\"text\":{\"format\":{\"type\":\"text\"},\"verbosity\":\"medium\"},\"tool_choice\":\"required\",\"tools\":[{\"type\":\"function\",\"description\":null,\"name\":\"applyDocumentOperations\",\"parameters\":{\"type\":\"object\",\"properties\":{\"operations\":{\"type\":\"array\",\"items\":{\"anyOf\":[{\"type\":\"object\",\"description\":\"Replace a part of the document file\",\"properties\":{\"type\":{\"type\":\"string\",\"enum\":[\"file_replace\"]},\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"type\",\"target\",\"replacement\"],\"additionalProperties\":false}]}}},\"additionalProperties\":false,\"required\":[\"operations\"]},\"strict\":true}],\"top_logprobs\":0,\"top_p\":1.0,\"truncation\":\"disabled\",\"usage\":null,\"user\":null,\"metadata\":{}},\"sequence_number\":0}\n\nevent: response.in_progress\ndata: {\"type\":\"response.in_progress\",\"response\":{\"id\":\"resp_0cd60577277a029300698cd82212d08197a104dd16c5720ad6\",\"object\":\"response\",\"created_at\":1770838050,\"status\":\"in_progress\",\"background\":false,\"completed_at\":null,\"error\":null,\"frequency_penalty\":0.0,\"incomplete_details\":null,\"instructions\":null,\"max_output_tokens\":null,\"max_tool_calls\":null,\"model\":\"gpt-4o-2024-08-06\",\"output\":[],\"parallel_tool_calls\":true,\"presence_penalty\":0.0,\"previous_response_id\":null,\"prompt_cache_key\":null,\"prompt_cache_retention\":null,\"reasoning\":{\"effort\":null,\"summary\":null},\"safety_identifier\":null,\"service_tier\":\"auto\",\"store\":true,\"temperature\":1.0,\"text\":{\"format\":{\"type\":\"text\"},\"verbosity\":\"medium\"},\"tool_choice\":\"required\",\"tools\":[{\"type\":\"function\",\"description\":null,\"name\":\"applyDocumentOperations\",\"parameters\":{\"type\":\"object\",\"properties\":{\"operations\":{\"type\":\"array\",\"items\":{\"anyOf\":[{\"type\":\"object\",\"description\":\"Replace a part of the document file\",\"properties\":{\"type\":{\"type\":\"string\",\"enum\":[\"file_replace\"]},\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"type\",\"target\",\"replacement\"],\"additionalProperties\":false}]}}},\"additionalProperties\":false,\"required\":[\"operations\"]},\"strict\":true}],\"top_logprobs\":0,\"top_p\":1.0,\"truncation\":\"disabled\",\"usage\":null,\"user\":null,\"metadata\":{}},\"sequence_number\":1}\n\nevent: response.output_item.added\ndata: {\"type\":\"response.output_item.added\",\"item\":{\"id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"type\":\"function_call\",\"status\":\"in_progress\",\"arguments\":\"\",\"call_id\":\"call_KY9MAUqMC8fr5Ed22QRmgVrl\",\"name\":\"applyDocumentOperations\"},\"output_index\":0,\"sequence_number\":2}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"{\\\"\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"ndH29ZXftuXwtd\",\"output_index\":0,\"sequence_number\":3}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"operations\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"jWMW8u\",\"output_index\":0,\"sequence_number\":4}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\":[\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"kTmXFHVwEtR1d\",\"output_index\":0,\"sequence_number\":5}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"{\\\"\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"ZPYyxxsQWBk4vY\",\"output_index\":0,\"sequence_number\":6}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"type\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"rr8OPU2nCfRh\",\"output_index\":0,\"sequence_number\":7}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\":\\\"\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"JipxMTfGCs2Xp\",\"output_index\":0,\"sequence_number\":8}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"file\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"jKZVd01NJyp4\",\"output_index\":0,\"sequence_number\":9}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"_replace\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"1dKnLX8U\",\"output_index\":0,\"sequence_number\":10}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\",\\\"\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"7o26lIFGho9l5\",\"output_index\":0,\"sequence_number\":11}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"target\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"tun1wluAjL\",\"output_index\":0,\"sequence_number\":12}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\":\\\"\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"sRhaYBMO6qW1o\",\"output_index\":0,\"sequence_number\":13}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"<\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"wUm5Psvx91Ic0nE\",\"output_index\":0,\"sequence_number\":14}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Paragraph\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"V5Os18b\",\"output_index\":0,\"sequence_number\":15}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" text\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"gQlp2JhwTbZ\",\"output_index\":0,\"sequence_number\":16}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Alignment\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"Sh61QJu\",\"output_index\":0,\"sequence_number\":17}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\\\\\\\"\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"0xGa0sPtGAePm\",\"output_index\":0,\"sequence_number\":18}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"left\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"oxEnH5ELs6a7\",\"output_index\":0,\"sequence_number\":19}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\"\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"HUozrzLML6wc6y\",\"output_index\":0,\"sequence_number\":20}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" id\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"cqtCEPJJXsOMO\",\"output_index\":0,\"sequence_number\":21}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\\\\\\\"\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"N2xG9qpxbgRzo\",\"output_index\":0,\"sequence_number\":22}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"ref\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"P0mPJKrdobf5E\",\"output_index\":0,\"sequence_number\":23}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"2\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"Q1gI1YFm3d8AgLH\",\"output_index\":0,\"sequence_number\":24}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\">\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"rQI8LmFtTCZOS\",\"output_index\":0,\"sequence_number\":25}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"How\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"dEAbeDpkMiswR\",\"output_index\":0,\"sequence_number\":26}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" are\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"HvdivnbOQmoA\",\"output_index\":0,\"sequence_number\":27}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" you\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"ry8Vg35jPDgr\",\"output_index\":0,\"sequence_number\":28}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"?\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"sY9KFNGSjJozlNL\",\"output_index\":0,\"sequence_number\":31}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\",\\\"\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"zPKMFL0DkgeQh\",\"output_index\":0,\"sequence_number\":32}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"replacement\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"92HnW\",\"output_index\":0,\"sequence_number\":33}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\":\\\"\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"CznYITU5Hx9ck\",\"output_index\":0,\"sequence_number\":34}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"<\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"3AH2ner9BIeQXHs\",\"output_index\":0,\"sequence_number\":35}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Paragraph\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"qzvRg5m\",\"output_index\":0,\"sequence_number\":36}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" text\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"zvbabqP33RW\",\"output_index\":0,\"sequence_number\":37}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Alignment\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"6rnht7r\",\"output_index\":0,\"sequence_number\":38}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\\\\\\\"\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"EFPA9dgqie9TU\",\"output_index\":0,\"sequence_number\":39}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"left\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"ihJZ9tHeTNk5\",\"output_index\":0,\"sequence_number\":40}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\"\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"XXoR0rX5yLqOMO\",\"output_index\":0,\"sequence_number\":41}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" id\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"qwGKqtZRmnI1r\",\"output_index\":0,\"sequence_number\":42}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\\\\\\\"\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"fPLkyjtOV9bMW\",\"output_index\":0,\"sequence_number\":43}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"ref\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"L658gyQwVFCxx\",\"output_index\":0,\"sequence_number\":44}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"2\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"ZcUrSKJ46nyWq2R\",\"output_index\":0,\"sequence_number\":45}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\">\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"wZa0oO98jadfd\",\"output_index\":0,\"sequence_number\":46}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"How\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"u8wieJKLrXrJn\",\"output_index\":0,\"sequence_number\":47}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" are\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"7GhK3hxGXtzF\",\"output_index\":0,\"sequence_number\":48}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" you\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"p3Nx68mG8g0q\",\"output_index\":0,\"sequence_number\":49}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"?<\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"u0ZDsTR5q1Qjsm\",\"output_index\":0,\"sequence_number\":52}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Paragraph\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"7sxJBBu\",\"output_index\":0,\"sequence_number\":53}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" text\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"LgGAyOxYAJy\",\"output_index\":0,\"sequence_number\":54}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Alignment\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"80jXx11\",\"output_index\":0,\"sequence_number\":55}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\\\\\\\"\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"TQNXxMZPaJ7wS\",\"output_index\":0,\"sequence_number\":56}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"left\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"CTdeIj3lyo8P\",\"output_index\":0,\"sequence_number\":57}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\"\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"heq2L8I6w0hnEb\",\"output_index\":0,\"sequence_number\":58}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" id\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"m3mmN7ITIWb6x\",\"output_index\":0,\"sequence_number\":59}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\\\\\\\"\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"5CJlitVE0ONEk\",\"output_index\":0,\"sequence_number\":60}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"new\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"FdAw7Ooe4TaPi\",\"output_index\":0,\"sequence_number\":61}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"1\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"eIgp22MlblkgDSa\",\"output_index\":0,\"sequence_number\":62}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\">\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"8OGTfToi0m8Wa\",\"output_index\":0,\"sequence_number\":63}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"You\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"3On8P2qwRXycn\",\"output_index\":0,\"sequence_number\":64}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" look\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"tof2mjYO3OO\",\"output_index\":0,\"sequence_number\":65}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" great\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"pO5xk2Zjz6\",\"output_index\":0,\"sequence_number\":66}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" today\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"VA7GrLjJk5\",\"output_index\":0,\"sequence_number\":67}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"!\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"53PcNdzKDJKY1Tl\",\"output_index\":0,\"sequence_number\":70}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\"}\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"100orD7lC4ycR1\",\"output_index\":0,\"sequence_number\":71}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"]}\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"obfuscation\":\"PHP3MlqsM4upJN\",\"output_index\":0,\"sequence_number\":72}\n\nevent: response.function_call_arguments.done\ndata: {\"type\":\"response.function_call_arguments.done\",\"arguments\":\"{\\\"operations\\\":[{\\\"type\\\":\\\"file_replace\\\",\\\"target\\\":\\\"How are you?\\\",\\\"replacement\\\":\\\"How are you?You look great today!\\\"}]}\",\"item_id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"output_index\":0,\"sequence_number\":73}\n\nevent: response.output_item.done\ndata: {\"type\":\"response.output_item.done\",\"item\":{\"id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"type\":\"function_call\",\"status\":\"completed\",\"arguments\":\"{\\\"operations\\\":[{\\\"type\\\":\\\"file_replace\\\",\\\"target\\\":\\\"How are you?\\\",\\\"replacement\\\":\\\"How are you?You look great today!\\\"}]}\",\"call_id\":\"call_KY9MAUqMC8fr5Ed22QRmgVrl\",\"name\":\"applyDocumentOperations\"},\"output_index\":0,\"sequence_number\":74}\n\nevent: response.completed\ndata: {\"type\":\"response.completed\",\"response\":{\"id\":\"resp_0cd60577277a029300698cd82212d08197a104dd16c5720ad6\",\"object\":\"response\",\"created_at\":1770838050,\"status\":\"completed\",\"background\":false,\"completed_at\":1770838051,\"error\":null,\"frequency_penalty\":0.0,\"incomplete_details\":null,\"instructions\":null,\"max_output_tokens\":null,\"max_tool_calls\":null,\"model\":\"gpt-4o-2024-08-06\",\"output\":[{\"id\":\"fc_0cd60577277a029300698cd8226f9c8197bddceeecb2133191\",\"type\":\"function_call\",\"status\":\"completed\",\"arguments\":\"{\\\"operations\\\":[{\\\"type\\\":\\\"file_replace\\\",\\\"target\\\":\\\"How are you?\\\",\\\"replacement\\\":\\\"How are you?You look great today!\\\"}]}\",\"call_id\":\"call_KY9MAUqMC8fr5Ed22QRmgVrl\",\"name\":\"applyDocumentOperations\"}],\"parallel_tool_calls\":true,\"presence_penalty\":0.0,\"previous_response_id\":null,\"prompt_cache_key\":null,\"prompt_cache_retention\":null,\"reasoning\":{\"effort\":null,\"summary\":null},\"safety_identifier\":null,\"service_tier\":\"default\",\"store\":true,\"temperature\":1.0,\"text\":{\"format\":{\"type\":\"text\"},\"verbosity\":\"medium\"},\"tool_choice\":\"required\",\"tools\":[{\"type\":\"function\",\"description\":null,\"name\":\"applyDocumentOperations\",\"parameters\":{\"type\":\"object\",\"properties\":{\"operations\":{\"type\":\"array\",\"items\":{\"anyOf\":[{\"type\":\"object\",\"description\":\"Replace a part of the document file\",\"properties\":{\"type\":{\"type\":\"string\",\"enum\":[\"file_replace\"]},\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"type\",\"target\",\"replacement\"],\"additionalProperties\":false}]}}},\"additionalProperties\":false,\"required\":[\"operations\"]},\"strict\":true}],\"top_logprobs\":0,\"top_p\":1.0,\"truncation\":\"disabled\",\"usage\":{\"input_tokens\":267,\"input_tokens_details\":{\"cached_tokens\":0},\"output_tokens\":71,\"output_tokens_details\":{\"reasoning_tokens\":0},\"total_tokens\":338},\"user\":null,\"metadata\":{}},\"sequence_number\":75}\n\n", + "headers": [] + } +} \ No newline at end of file diff --git a/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/add a new paragraph (start)_1_4b63d3fb3ebbd1723d659e661c8300c6.json b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/add a new paragraph (start)_1_4b63d3fb3ebbd1723d659e661c8300c6.json new file mode 100644 index 0000000000..85ce8d4a06 --- /dev/null +++ b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/add a new paragraph (start)_1_4b63d3fb3ebbd1723d659e661c8300c6.json @@ -0,0 +1,15 @@ +{ + "request": { + "method": "POST", + "url": "https://api.openai.com/v1/responses", + "body": "{\"model\":\"gpt-4o-2024-08-06\",\"input\":[{\"role\":\"system\",\"content\":\"You are manipulating a text document using TSX components.\\nEach block is represented as a TSX component with props.\\n\"},{\"role\":\"assistant\",\"content\":[{\"type\":\"output_text\",\"text\":\"There is no active selection. This is the latest state of the document (ignore previous documents, you MUST issue operations against this latest version of the document). \\nThe cursor is BETWEEN two blocks as indicated by cursor: true.\\nPrefer updating existing blocks over removing and adding (but this also depends on the user's question).\"}]},{\"role\":\"assistant\",\"content\":[{\"type\":\"output_text\",\"text\":\"{\\\"selection\\\":false,\\\"blocks\\\":[{\\\"id\\\":\\\"ref1$\\\",\\\"block\\\":\\\"Hello, world!\\\"},{\\\"cursor\\\":true},{\\\"id\\\":\\\"ref2$\\\",\\\"block\\\":\\\"How are you?\\\"}],\\\"isEmptyDocument\\\":false}\"}]},{\"role\":\"user\",\"content\":[{\"type\":\"input_text\",\"text\":\"add a new paragraph with the text 'You look great today!' before the first sentence\"}]}],\"tools\":[{\"type\":\"function\",\"name\":\"applyDocumentOperations\",\"parameters\":{\"type\":\"object\",\"properties\":{\"operations\":{\"type\":\"array\",\"items\":{\"anyOf\":[{\"type\":\"object\",\"description\":\"Replace a part of the document file\",\"properties\":{\"type\":{\"type\":\"string\",\"enum\":[\"file_replace\"]},\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"type\",\"target\",\"replacement\"],\"additionalProperties\":false}]}}},\"additionalProperties\":false,\"required\":[\"operations\"]}}],\"tool_choice\":\"required\",\"stream\":true}", + "headers": [], + "cookies": [] + }, + "response": { + "status": 200, + "statusText": "", + "body": "event: response.created\ndata: {\"type\":\"response.created\",\"response\":{\"id\":\"resp_09c1bf95a588a3a500698cd820f7ac81969c9645f7e2b70c04\",\"object\":\"response\",\"created_at\":1770838048,\"status\":\"in_progress\",\"background\":false,\"completed_at\":null,\"error\":null,\"frequency_penalty\":0.0,\"incomplete_details\":null,\"instructions\":null,\"max_output_tokens\":null,\"max_tool_calls\":null,\"model\":\"gpt-4o-2024-08-06\",\"output\":[],\"parallel_tool_calls\":true,\"presence_penalty\":0.0,\"previous_response_id\":null,\"prompt_cache_key\":null,\"prompt_cache_retention\":null,\"reasoning\":{\"effort\":null,\"summary\":null},\"safety_identifier\":null,\"service_tier\":\"auto\",\"store\":true,\"temperature\":1.0,\"text\":{\"format\":{\"type\":\"text\"},\"verbosity\":\"medium\"},\"tool_choice\":\"required\",\"tools\":[{\"type\":\"function\",\"description\":null,\"name\":\"applyDocumentOperations\",\"parameters\":{\"type\":\"object\",\"properties\":{\"operations\":{\"type\":\"array\",\"items\":{\"anyOf\":[{\"type\":\"object\",\"description\":\"Replace a part of the document file\",\"properties\":{\"type\":{\"type\":\"string\",\"enum\":[\"file_replace\"]},\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"type\",\"target\",\"replacement\"],\"additionalProperties\":false}]}}},\"additionalProperties\":false,\"required\":[\"operations\"]},\"strict\":true}],\"top_logprobs\":0,\"top_p\":1.0,\"truncation\":\"disabled\",\"usage\":null,\"user\":null,\"metadata\":{}},\"sequence_number\":0}\n\nevent: response.in_progress\ndata: {\"type\":\"response.in_progress\",\"response\":{\"id\":\"resp_09c1bf95a588a3a500698cd820f7ac81969c9645f7e2b70c04\",\"object\":\"response\",\"created_at\":1770838048,\"status\":\"in_progress\",\"background\":false,\"completed_at\":null,\"error\":null,\"frequency_penalty\":0.0,\"incomplete_details\":null,\"instructions\":null,\"max_output_tokens\":null,\"max_tool_calls\":null,\"model\":\"gpt-4o-2024-08-06\",\"output\":[],\"parallel_tool_calls\":true,\"presence_penalty\":0.0,\"previous_response_id\":null,\"prompt_cache_key\":null,\"prompt_cache_retention\":null,\"reasoning\":{\"effort\":null,\"summary\":null},\"safety_identifier\":null,\"service_tier\":\"auto\",\"store\":true,\"temperature\":1.0,\"text\":{\"format\":{\"type\":\"text\"},\"verbosity\":\"medium\"},\"tool_choice\":\"required\",\"tools\":[{\"type\":\"function\",\"description\":null,\"name\":\"applyDocumentOperations\",\"parameters\":{\"type\":\"object\",\"properties\":{\"operations\":{\"type\":\"array\",\"items\":{\"anyOf\":[{\"type\":\"object\",\"description\":\"Replace a part of the document file\",\"properties\":{\"type\":{\"type\":\"string\",\"enum\":[\"file_replace\"]},\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"type\",\"target\",\"replacement\"],\"additionalProperties\":false}]}}},\"additionalProperties\":false,\"required\":[\"operations\"]},\"strict\":true}],\"top_logprobs\":0,\"top_p\":1.0,\"truncation\":\"disabled\",\"usage\":null,\"user\":null,\"metadata\":{}},\"sequence_number\":1}\n\nevent: response.output_item.added\ndata: {\"type\":\"response.output_item.added\",\"item\":{\"id\":\"fc_09c1bf95a588a3a500698cd82146dc819682dfc6501a653bf4\",\"type\":\"function_call\",\"status\":\"in_progress\",\"arguments\":\"\",\"call_id\":\"call_Tnds3lipGiMdJXAnCSG4F7hQ\",\"name\":\"applyDocumentOperations\"},\"output_index\":0,\"sequence_number\":2}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"{\\\"\",\"item_id\":\"fc_09c1bf95a588a3a500698cd82146dc819682dfc6501a653bf4\",\"obfuscation\":\"Ijtuo2PH7VyR6l\",\"output_index\":0,\"sequence_number\":3}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"operations\",\"item_id\":\"fc_09c1bf95a588a3a500698cd82146dc819682dfc6501a653bf4\",\"obfuscation\":\"0VaY1a\",\"output_index\":0,\"sequence_number\":4}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\":[\",\"item_id\":\"fc_09c1bf95a588a3a500698cd82146dc819682dfc6501a653bf4\",\"obfuscation\":\"FWPdtUo91MPK5\",\"output_index\":0,\"sequence_number\":5}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"{\\\"\",\"item_id\":\"fc_09c1bf95a588a3a500698cd82146dc819682dfc6501a653bf4\",\"obfuscation\":\"QgzVPPrughvlgW\",\"output_index\":0,\"sequence_number\":6}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"type\",\"item_id\":\"fc_09c1bf95a588a3a500698cd82146dc819682dfc6501a653bf4\",\"obfuscation\":\"BGthyoFVFjh9\",\"output_index\":0,\"sequence_number\":7}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\":\\\"\",\"item_id\":\"fc_09c1bf95a588a3a500698cd82146dc819682dfc6501a653bf4\",\"obfuscation\":\"rV06tF6MztzvV\",\"output_index\":0,\"sequence_number\":8}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"file\",\"item_id\":\"fc_09c1bf95a588a3a500698cd82146dc819682dfc6501a653bf4\",\"obfuscation\":\"oFSgAQ1HfD4v\",\"output_index\":0,\"sequence_number\":9}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"_replace\",\"item_id\":\"fc_09c1bf95a588a3a500698cd82146dc819682dfc6501a653bf4\",\"obfuscation\":\"cSf6sXzK\",\"output_index\":0,\"sequence_number\":10}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\",\\\"\",\"item_id\":\"fc_09c1bf95a588a3a500698cd82146dc819682dfc6501a653bf4\",\"obfuscation\":\"cB8JpecUMFv0Z\",\"output_index\":0,\"sequence_number\":11}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"target\",\"item_id\":\"fc_09c1bf95a588a3a500698cd82146dc819682dfc6501a653bf4\",\"obfuscation\":\"RPRYEyYVGj\",\"output_index\":0,\"sequence_number\":12}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\":\\\"\",\"item_id\":\"fc_09c1bf95a588a3a500698cd82146dc819682dfc6501a653bf4\",\"obfuscation\":\"mlROUcU07vafi\",\"output_index\":0,\"sequence_number\":13}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"<\",\"item_id\":\"fc_09c1bf95a588a3a500698cd82146dc819682dfc6501a653bf4\",\"obfuscation\":\"MNO4UI2EL8DM1WB\",\"output_index\":0,\"sequence_number\":14}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Paragraph\",\"item_id\":\"fc_09c1bf95a588a3a500698cd82146dc819682dfc6501a653bf4\",\"obfuscation\":\"BLauEhW\",\"output_index\":0,\"sequence_number\":15}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" text\",\"item_id\":\"fc_09c1bf95a588a3a500698cd82146dc819682dfc6501a653bf4\",\"obfuscation\":\"2ii26rQBbWi\",\"output_index\":0,\"sequence_number\":16}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Alignment\",\"item_id\":\"fc_09c1bf95a588a3a500698cd82146dc819682dfc6501a653bf4\",\"obfuscation\":\"mGBylnN\",\"output_index\":0,\"sequence_number\":17}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\\\\\\\"\",\"item_id\":\"fc_09c1bf95a588a3a500698cd82146dc819682dfc6501a653bf4\",\"obfuscation\":\"PvSgbBbrDKXyJ\",\"output_index\":0,\"sequence_number\":18}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"left\",\"item_id\":\"fc_09c1bf95a588a3a500698cd82146dc819682dfc6501a653bf4\",\"obfuscation\":\"EWcFpw40939R\",\"output_index\":0,\"sequence_number\":19}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\"\",\"item_id\":\"fc_09c1bf95a588a3a500698cd82146dc819682dfc6501a653bf4\",\"obfuscation\":\"4TEXRGHq80zR9U\",\"output_index\":0,\"sequence_number\":20}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" id\",\"item_id\":\"fc_09c1bf95a588a3a500698cd82146dc819682dfc6501a653bf4\",\"obfuscation\":\"JXfXr3SCZExHM\",\"output_index\":0,\"sequence_number\":21}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\\\\\\\"\",\"item_id\":\"fc_09c1bf95a588a3a500698cd82146dc819682dfc6501a653bf4\",\"obfuscation\":\"VsRHWgSK6kyJ7\",\"output_index\":0,\"sequence_number\":22}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"ref\",\"item_id\":\"fc_09c1bf95a588a3a500698cd82146dc819682dfc6501a653bf4\",\"obfuscation\":\"IhuKyRAUJ6zQR\",\"output_index\":0,\"sequence_number\":23}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"1\",\"item_id\":\"fc_09c1bf95a588a3a500698cd82146dc819682dfc6501a653bf4\",\"obfuscation\":\"EDLRn22OzTdgFEL\",\"output_index\":0,\"sequence_number\":24}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\">\",\"item_id\":\"fc_09c1bf95a588a3a500698cd82146dc819682dfc6501a653bf4\",\"obfuscation\":\"u1Ilfx8rOHI2h\",\"output_index\":0,\"sequence_number\":25}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\",\\\"\",\"item_id\":\"fc_09c1bf95a588a3a500698cd82146dc819682dfc6501a653bf4\",\"obfuscation\":\"gSHZfTMb9zXvG\",\"output_index\":0,\"sequence_number\":26}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"replacement\",\"item_id\":\"fc_09c1bf95a588a3a500698cd82146dc819682dfc6501a653bf4\",\"obfuscation\":\"T0uGf\",\"output_index\":0,\"sequence_number\":27}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\":\\\"\",\"item_id\":\"fc_09c1bf95a588a3a500698cd82146dc819682dfc6501a653bf4\",\"obfuscation\":\"jy0FMDcsbnLIN\",\"output_index\":0,\"sequence_number\":28}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"<\",\"item_id\":\"fc_09c1bf95a588a3a500698cd82146dc819682dfc6501a653bf4\",\"obfuscation\":\"ynE0w6lX2f4PjEO\",\"output_index\":0,\"sequence_number\":29}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Paragraph\",\"item_id\":\"fc_09c1bf95a588a3a500698cd82146dc819682dfc6501a653bf4\",\"obfuscation\":\"KG76epy\",\"output_index\":0,\"sequence_number\":30}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" text\",\"item_id\":\"fc_09c1bf95a588a3a500698cd82146dc819682dfc6501a653bf4\",\"obfuscation\":\"9nPm3IZ2PcI\",\"output_index\":0,\"sequence_number\":31}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Alignment\",\"item_id\":\"fc_09c1bf95a588a3a500698cd82146dc819682dfc6501a653bf4\",\"obfuscation\":\"MBOxcuh\",\"output_index\":0,\"sequence_number\":32}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\\\\\\\"\",\"item_id\":\"fc_09c1bf95a588a3a500698cd82146dc819682dfc6501a653bf4\",\"obfuscation\":\"jyzkZsp80lasZ\",\"output_index\":0,\"sequence_number\":33}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"left\",\"item_id\":\"fc_09c1bf95a588a3a500698cd82146dc819682dfc6501a653bf4\",\"obfuscation\":\"7ADrHkZOra2x\",\"output_index\":0,\"sequence_number\":34}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\"\",\"item_id\":\"fc_09c1bf95a588a3a500698cd82146dc819682dfc6501a653bf4\",\"obfuscation\":\"JFJH1VAeLzd4aL\",\"output_index\":0,\"sequence_number\":35}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" id\",\"item_id\":\"fc_09c1bf95a588a3a500698cd82146dc819682dfc6501a653bf4\",\"obfuscation\":\"wiwBYww1lsBqQ\",\"output_index\":0,\"sequence_number\":36}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\\\\\\\"\",\"item_id\":\"fc_09c1bf95a588a3a500698cd82146dc819682dfc6501a653bf4\",\"obfuscation\":\"5dPWwQWvRGQ49\",\"output_index\":0,\"sequence_number\":37}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"new\",\"item_id\":\"fc_09c1bf95a588a3a500698cd82146dc819682dfc6501a653bf4\",\"obfuscation\":\"fyr3AwtoiyTzQ\",\"output_index\":0,\"sequence_number\":38}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"1\",\"item_id\":\"fc_09c1bf95a588a3a500698cd82146dc819682dfc6501a653bf4\",\"obfuscation\":\"3X2uUpSDyxqS7mg\",\"output_index\":0,\"sequence_number\":39}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\">\",\"item_id\":\"fc_09c1bf95a588a3a500698cd82146dc819682dfc6501a653bf4\",\"obfuscation\":\"54O9pcPMucUTU\",\"output_index\":0,\"sequence_number\":40}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"You\",\"item_id\":\"fc_09c1bf95a588a3a500698cd82146dc819682dfc6501a653bf4\",\"obfuscation\":\"01EuWznZDe3j0\",\"output_index\":0,\"sequence_number\":41}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" look\",\"item_id\":\"fc_09c1bf95a588a3a500698cd82146dc819682dfc6501a653bf4\",\"obfuscation\":\"wIO2oFTNHpH\",\"output_index\":0,\"sequence_number\":42}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" great\",\"item_id\":\"fc_09c1bf95a588a3a500698cd82146dc819682dfc6501a653bf4\",\"obfuscation\":\"ydVTRQuX6C\",\"output_index\":0,\"sequence_number\":43}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" today\",\"item_id\":\"fc_09c1bf95a588a3a500698cd82146dc819682dfc6501a653bf4\",\"obfuscation\":\"ksX7DK2TbT\",\"output_index\":0,\"sequence_number\":44}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"!<\",\"item_id\":\"fc_09c1bf95a588a3a500698cd82146dc819682dfc6501a653bf4\",\"obfuscation\":\"iaLleCyTCOTdmH\",\"output_index\":0,\"sequence_number\":47}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Paragraph\",\"item_id\":\"fc_09c1bf95a588a3a500698cd82146dc819682dfc6501a653bf4\",\"obfuscation\":\"fCiR02F\",\"output_index\":0,\"sequence_number\":48}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" text\",\"item_id\":\"fc_09c1bf95a588a3a500698cd82146dc819682dfc6501a653bf4\",\"obfuscation\":\"wAlzcA2dM7b\",\"output_index\":0,\"sequence_number\":49}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Alignment\",\"item_id\":\"fc_09c1bf95a588a3a500698cd82146dc819682dfc6501a653bf4\",\"obfuscation\":\"gJPzai7\",\"output_index\":0,\"sequence_number\":50}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\\\\\\\"\",\"item_id\":\"fc_09c1bf95a588a3a500698cd82146dc819682dfc6501a653bf4\",\"obfuscation\":\"DTKnXc4hEf3A6\",\"output_index\":0,\"sequence_number\":51}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"left\",\"item_id\":\"fc_09c1bf95a588a3a500698cd82146dc819682dfc6501a653bf4\",\"obfuscation\":\"NHbCND7aCy8X\",\"output_index\":0,\"sequence_number\":52}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\"\",\"item_id\":\"fc_09c1bf95a588a3a500698cd82146dc819682dfc6501a653bf4\",\"obfuscation\":\"azEv2M0fVYVRYt\",\"output_index\":0,\"sequence_number\":53}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" id\",\"item_id\":\"fc_09c1bf95a588a3a500698cd82146dc819682dfc6501a653bf4\",\"obfuscation\":\"vQDN6FoLMTu3S\",\"output_index\":0,\"sequence_number\":54}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\\\\\\\"\",\"item_id\":\"fc_09c1bf95a588a3a500698cd82146dc819682dfc6501a653bf4\",\"obfuscation\":\"7DKZ9xCnUXVVW\",\"output_index\":0,\"sequence_number\":55}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"ref\",\"item_id\":\"fc_09c1bf95a588a3a500698cd82146dc819682dfc6501a653bf4\",\"obfuscation\":\"pv0aAFVemb3Ct\",\"output_index\":0,\"sequence_number\":56}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"1\",\"item_id\":\"fc_09c1bf95a588a3a500698cd82146dc819682dfc6501a653bf4\",\"obfuscation\":\"cs1WSTpYX75EkRb\",\"output_index\":0,\"sequence_number\":57}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\">\",\"item_id\":\"fc_09c1bf95a588a3a500698cd82146dc819682dfc6501a653bf4\",\"obfuscation\":\"L58GagOKM3fxz\",\"output_index\":0,\"sequence_number\":58}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\"}\",\"item_id\":\"fc_09c1bf95a588a3a500698cd82146dc819682dfc6501a653bf4\",\"obfuscation\":\"m4WZ903AidL4lC\",\"output_index\":0,\"sequence_number\":59}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"]}\",\"item_id\":\"fc_09c1bf95a588a3a500698cd82146dc819682dfc6501a653bf4\",\"obfuscation\":\"ioRtgKjrTwq1S8\",\"output_index\":0,\"sequence_number\":60}\n\nevent: response.function_call_arguments.done\ndata: {\"type\":\"response.function_call_arguments.done\",\"arguments\":\"{\\\"operations\\\":[{\\\"type\\\":\\\"file_replace\\\",\\\"target\\\":\\\"\\\",\\\"replacement\\\":\\\"You look great today!\\\"}]}\",\"item_id\":\"fc_09c1bf95a588a3a500698cd82146dc819682dfc6501a653bf4\",\"output_index\":0,\"sequence_number\":61}\n\nevent: response.output_item.done\ndata: {\"type\":\"response.output_item.done\",\"item\":{\"id\":\"fc_09c1bf95a588a3a500698cd82146dc819682dfc6501a653bf4\",\"type\":\"function_call\",\"status\":\"completed\",\"arguments\":\"{\\\"operations\\\":[{\\\"type\\\":\\\"file_replace\\\",\\\"target\\\":\\\"\\\",\\\"replacement\\\":\\\"You look great today!\\\"}]}\",\"call_id\":\"call_Tnds3lipGiMdJXAnCSG4F7hQ\",\"name\":\"applyDocumentOperations\"},\"output_index\":0,\"sequence_number\":62}\n\nevent: response.completed\ndata: {\"type\":\"response.completed\",\"response\":{\"id\":\"resp_09c1bf95a588a3a500698cd820f7ac81969c9645f7e2b70c04\",\"object\":\"response\",\"created_at\":1770838048,\"status\":\"completed\",\"background\":false,\"completed_at\":1770838049,\"error\":null,\"frequency_penalty\":0.0,\"incomplete_details\":null,\"instructions\":null,\"max_output_tokens\":null,\"max_tool_calls\":null,\"model\":\"gpt-4o-2024-08-06\",\"output\":[{\"id\":\"fc_09c1bf95a588a3a500698cd82146dc819682dfc6501a653bf4\",\"type\":\"function_call\",\"status\":\"completed\",\"arguments\":\"{\\\"operations\\\":[{\\\"type\\\":\\\"file_replace\\\",\\\"target\\\":\\\"\\\",\\\"replacement\\\":\\\"You look great today!\\\"}]}\",\"call_id\":\"call_Tnds3lipGiMdJXAnCSG4F7hQ\",\"name\":\"applyDocumentOperations\"}],\"parallel_tool_calls\":true,\"presence_penalty\":0.0,\"previous_response_id\":null,\"prompt_cache_key\":null,\"prompt_cache_retention\":null,\"reasoning\":{\"effort\":null,\"summary\":null},\"safety_identifier\":null,\"service_tier\":\"default\",\"store\":true,\"temperature\":1.0,\"text\":{\"format\":{\"type\":\"text\"},\"verbosity\":\"medium\"},\"tool_choice\":\"required\",\"tools\":[{\"type\":\"function\",\"description\":null,\"name\":\"applyDocumentOperations\",\"parameters\":{\"type\":\"object\",\"properties\":{\"operations\":{\"type\":\"array\",\"items\":{\"anyOf\":[{\"type\":\"object\",\"description\":\"Replace a part of the document file\",\"properties\":{\"type\":{\"type\":\"string\",\"enum\":[\"file_replace\"]},\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"type\",\"target\",\"replacement\"],\"additionalProperties\":false}]}}},\"additionalProperties\":false,\"required\":[\"operations\"]},\"strict\":true}],\"top_logprobs\":0,\"top_p\":1.0,\"truncation\":\"disabled\",\"usage\":{\"input_tokens\":267,\"input_tokens_details\":{\"cached_tokens\":0},\"output_tokens\":59,\"output_tokens_details\":{\"reasoning_tokens\":0},\"total_tokens\":326},\"user\":null,\"metadata\":{}},\"sequence_number\":63}\n\n", + "headers": [] + } +} \ No newline at end of file diff --git a/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/add a new paragraph (start)_1_54c1b65e18228a05a990e64a476a12e2.json b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/add a new paragraph (start)_1_54c1b65e18228a05a990e64a476a12e2.json new file mode 100644 index 0000000000..25c478de79 --- /dev/null +++ b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Add/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/add a new paragraph (start)_1_54c1b65e18228a05a990e64a476a12e2.json @@ -0,0 +1,15 @@ +{ + "request": { + "method": "POST", + "url": "https://api.openai.com/v1/responses", + "body": "{\"model\":\"gpt-4o-2024-08-06\",\"input\":[{\"role\":\"system\",\"content\":\"You are manipulating a text document using TSX components.\\nEach block is represented as a TSX component with props.\\n\"},{\"role\":\"assistant\",\"content\":[{\"type\":\"output_text\",\"text\":\"There is no active selection. This is the latest state of the document (ignore previous documents, you MUST issue operations against this latest version of the document). \\nThe cursor is BETWEEN two blocks as indicated by cursor: true.\\nPrefer updating existing blocks over removing and adding (but this also depends on the user's question).\"}]},{\"role\":\"assistant\",\"content\":[{\"type\":\"output_text\",\"text\":\"[{\\\"id\\\":\\\"ref1$\\\",\\\"block\\\":\\\"Hello, world!\\\"},{\\\"cursor\\\":true},{\\\"id\\\":\\\"ref2$\\\",\\\"block\\\":\\\"How are you?\\\"}]\"}]},{\"role\":\"user\",\"content\":[{\"type\":\"input_text\",\"text\":\"add a new paragraph with the text 'You look great today!' before the first sentence\"}]}],\"tools\":[{\"type\":\"function\",\"name\":\"file_replace\",\"parameters\":{\"type\":\"object\",\"properties\":{\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"target\",\"replacement\"]}}],\"tool_choice\":\"required\",\"stream\":true}", + "headers": [], + "cookies": [] + }, + "response": { + "status": 200, + "statusText": "", + "body": "event: response.created\ndata: {\"type\":\"response.created\",\"response\":{\"id\":\"resp_090df34a8460908100698e16bf06dc8190a724e07f4eaec09a\",\"object\":\"response\",\"created_at\":1770919615,\"status\":\"in_progress\",\"background\":false,\"completed_at\":null,\"error\":null,\"frequency_penalty\":0.0,\"incomplete_details\":null,\"instructions\":null,\"max_output_tokens\":null,\"max_tool_calls\":null,\"model\":\"gpt-4o-2024-08-06\",\"output\":[],\"parallel_tool_calls\":true,\"presence_penalty\":0.0,\"previous_response_id\":null,\"prompt_cache_key\":null,\"prompt_cache_retention\":null,\"reasoning\":{\"effort\":null,\"summary\":null},\"safety_identifier\":null,\"service_tier\":\"auto\",\"store\":true,\"temperature\":1.0,\"text\":{\"format\":{\"type\":\"text\"},\"verbosity\":\"medium\"},\"tool_choice\":\"required\",\"tools\":[{\"type\":\"function\",\"description\":null,\"name\":\"file_replace\",\"parameters\":{\"type\":\"object\",\"properties\":{\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"target\",\"replacement\"],\"additionalProperties\":false},\"strict\":true}],\"top_logprobs\":0,\"top_p\":1.0,\"truncation\":\"disabled\",\"usage\":null,\"user\":null,\"metadata\":{}},\"sequence_number\":0}\n\nevent: response.in_progress\ndata: {\"type\":\"response.in_progress\",\"response\":{\"id\":\"resp_090df34a8460908100698e16bf06dc8190a724e07f4eaec09a\",\"object\":\"response\",\"created_at\":1770919615,\"status\":\"in_progress\",\"background\":false,\"completed_at\":null,\"error\":null,\"frequency_penalty\":0.0,\"incomplete_details\":null,\"instructions\":null,\"max_output_tokens\":null,\"max_tool_calls\":null,\"model\":\"gpt-4o-2024-08-06\",\"output\":[],\"parallel_tool_calls\":true,\"presence_penalty\":0.0,\"previous_response_id\":null,\"prompt_cache_key\":null,\"prompt_cache_retention\":null,\"reasoning\":{\"effort\":null,\"summary\":null},\"safety_identifier\":null,\"service_tier\":\"auto\",\"store\":true,\"temperature\":1.0,\"text\":{\"format\":{\"type\":\"text\"},\"verbosity\":\"medium\"},\"tool_choice\":\"required\",\"tools\":[{\"type\":\"function\",\"description\":null,\"name\":\"file_replace\",\"parameters\":{\"type\":\"object\",\"properties\":{\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"target\",\"replacement\"],\"additionalProperties\":false},\"strict\":true}],\"top_logprobs\":0,\"top_p\":1.0,\"truncation\":\"disabled\",\"usage\":null,\"user\":null,\"metadata\":{}},\"sequence_number\":1}\n\nevent: response.output_item.added\ndata: {\"type\":\"response.output_item.added\",\"item\":{\"id\":\"fc_090df34a8460908100698e16bfc3a88190ade0229f57b498b4\",\"type\":\"function_call\",\"status\":\"in_progress\",\"arguments\":\"\",\"call_id\":\"call_wANbTKU085qbIrsID4vsBUVq\",\"name\":\"file_replace\"},\"output_index\":0,\"sequence_number\":2}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"{\\\"\",\"item_id\":\"fc_090df34a8460908100698e16bfc3a88190ade0229f57b498b4\",\"obfuscation\":\"Yv4KMr7nDl7CwE\",\"output_index\":0,\"sequence_number\":3}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"target\",\"item_id\":\"fc_090df34a8460908100698e16bfc3a88190ade0229f57b498b4\",\"obfuscation\":\"WovBOmplWd\",\"output_index\":0,\"sequence_number\":4}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\":\\\"\",\"item_id\":\"fc_090df34a8460908100698e16bfc3a88190ade0229f57b498b4\",\"obfuscation\":\"frpWxmpZibveF\",\"output_index\":0,\"sequence_number\":5}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"<\",\"item_id\":\"fc_090df34a8460908100698e16bfc3a88190ade0229f57b498b4\",\"obfuscation\":\"fH4pwps9H3VKjmq\",\"output_index\":0,\"sequence_number\":6}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Paragraph\",\"item_id\":\"fc_090df34a8460908100698e16bfc3a88190ade0229f57b498b4\",\"obfuscation\":\"RC2P0jw\",\"output_index\":0,\"sequence_number\":7}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" text\",\"item_id\":\"fc_090df34a8460908100698e16bfc3a88190ade0229f57b498b4\",\"obfuscation\":\"d4qw3Qa3W3p\",\"output_index\":0,\"sequence_number\":8}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Alignment\",\"item_id\":\"fc_090df34a8460908100698e16bfc3a88190ade0229f57b498b4\",\"obfuscation\":\"hLqad2S\",\"output_index\":0,\"sequence_number\":9}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\\\\\\\"\",\"item_id\":\"fc_090df34a8460908100698e16bfc3a88190ade0229f57b498b4\",\"obfuscation\":\"FT5XNVkSlMsM6\",\"output_index\":0,\"sequence_number\":10}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"left\",\"item_id\":\"fc_090df34a8460908100698e16bfc3a88190ade0229f57b498b4\",\"obfuscation\":\"vohNXFzqVi5p\",\"output_index\":0,\"sequence_number\":11}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\"\",\"item_id\":\"fc_090df34a8460908100698e16bfc3a88190ade0229f57b498b4\",\"obfuscation\":\"HAgldoiliAWKvX\",\"output_index\":0,\"sequence_number\":12}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" id\",\"item_id\":\"fc_090df34a8460908100698e16bfc3a88190ade0229f57b498b4\",\"obfuscation\":\"0diyi059ea0cS\",\"output_index\":0,\"sequence_number\":13}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\\\\\\\"\",\"item_id\":\"fc_090df34a8460908100698e16bfc3a88190ade0229f57b498b4\",\"obfuscation\":\"yZVZEm2cFjTTl\",\"output_index\":0,\"sequence_number\":14}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"ref\",\"item_id\":\"fc_090df34a8460908100698e16bfc3a88190ade0229f57b498b4\",\"obfuscation\":\"PZQoXHjhSTIYv\",\"output_index\":0,\"sequence_number\":15}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"1\",\"item_id\":\"fc_090df34a8460908100698e16bfc3a88190ade0229f57b498b4\",\"obfuscation\":\"lQkZeVfrI257PTf\",\"output_index\":0,\"sequence_number\":16}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\">\",\"item_id\":\"fc_090df34a8460908100698e16bfc3a88190ade0229f57b498b4\",\"obfuscation\":\"yU2oi75ndOlIk\",\"output_index\":0,\"sequence_number\":17}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Hello\",\"item_id\":\"fc_090df34a8460908100698e16bfc3a88190ade0229f57b498b4\",\"obfuscation\":\"CjSBHWNbrtQ\",\"output_index\":0,\"sequence_number\":18}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\",\",\"item_id\":\"fc_090df34a8460908100698e16bfc3a88190ade0229f57b498b4\",\"obfuscation\":\"2cHUy61bXGyZD98\",\"output_index\":0,\"sequence_number\":19}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" world\",\"item_id\":\"fc_090df34a8460908100698e16bfc3a88190ade0229f57b498b4\",\"obfuscation\":\"oj1FHxCQmd\",\"output_index\":0,\"sequence_number\":20}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"!\",\"item_id\":\"fc_090df34a8460908100698e16bfc3a88190ade0229f57b498b4\",\"obfuscation\":\"iCoyh6LPPxP2FwC\",\"output_index\":0,\"sequence_number\":23}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\",\\\"\",\"item_id\":\"fc_090df34a8460908100698e16bfc3a88190ade0229f57b498b4\",\"obfuscation\":\"YPDl0yFYzHaVG\",\"output_index\":0,\"sequence_number\":24}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"replacement\",\"item_id\":\"fc_090df34a8460908100698e16bfc3a88190ade0229f57b498b4\",\"obfuscation\":\"tr0QB\",\"output_index\":0,\"sequence_number\":25}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\":\\\"\",\"item_id\":\"fc_090df34a8460908100698e16bfc3a88190ade0229f57b498b4\",\"obfuscation\":\"BXQhAJjSlbMze\",\"output_index\":0,\"sequence_number\":26}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"<\",\"item_id\":\"fc_090df34a8460908100698e16bfc3a88190ade0229f57b498b4\",\"obfuscation\":\"OfDpJ2JDVM33Lsp\",\"output_index\":0,\"sequence_number\":27}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Paragraph\",\"item_id\":\"fc_090df34a8460908100698e16bfc3a88190ade0229f57b498b4\",\"obfuscation\":\"s00FwP9\",\"output_index\":0,\"sequence_number\":28}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" text\",\"item_id\":\"fc_090df34a8460908100698e16bfc3a88190ade0229f57b498b4\",\"obfuscation\":\"IIEoPRa27Sx\",\"output_index\":0,\"sequence_number\":29}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Alignment\",\"item_id\":\"fc_090df34a8460908100698e16bfc3a88190ade0229f57b498b4\",\"obfuscation\":\"00mqAmI\",\"output_index\":0,\"sequence_number\":30}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\\\\\\\"\",\"item_id\":\"fc_090df34a8460908100698e16bfc3a88190ade0229f57b498b4\",\"obfuscation\":\"IzbmU42fAkExG\",\"output_index\":0,\"sequence_number\":31}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"left\",\"item_id\":\"fc_090df34a8460908100698e16bfc3a88190ade0229f57b498b4\",\"obfuscation\":\"6IWbBHNwizup\",\"output_index\":0,\"sequence_number\":32}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\"\",\"item_id\":\"fc_090df34a8460908100698e16bfc3a88190ade0229f57b498b4\",\"obfuscation\":\"o6z8v0FTipZQnW\",\"output_index\":0,\"sequence_number\":33}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" id\",\"item_id\":\"fc_090df34a8460908100698e16bfc3a88190ade0229f57b498b4\",\"obfuscation\":\"F2nBB2xS4NxqG\",\"output_index\":0,\"sequence_number\":34}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\\\\\\\"\",\"item_id\":\"fc_090df34a8460908100698e16bfc3a88190ade0229f57b498b4\",\"obfuscation\":\"twoOsIaUn1xPd\",\"output_index\":0,\"sequence_number\":35}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"new\",\"item_id\":\"fc_090df34a8460908100698e16bfc3a88190ade0229f57b498b4\",\"obfuscation\":\"oTp4TSWflwpKL\",\"output_index\":0,\"sequence_number\":36}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"1\",\"item_id\":\"fc_090df34a8460908100698e16bfc3a88190ade0229f57b498b4\",\"obfuscation\":\"AEbdI6s2pNHP4uj\",\"output_index\":0,\"sequence_number\":37}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\">\",\"item_id\":\"fc_090df34a8460908100698e16bfc3a88190ade0229f57b498b4\",\"obfuscation\":\"DksgO0vSY8Kng\",\"output_index\":0,\"sequence_number\":38}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"You\",\"item_id\":\"fc_090df34a8460908100698e16bfc3a88190ade0229f57b498b4\",\"obfuscation\":\"hvUtKAfz6gkPC\",\"output_index\":0,\"sequence_number\":39}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" look\",\"item_id\":\"fc_090df34a8460908100698e16bfc3a88190ade0229f57b498b4\",\"obfuscation\":\"73gckcXiUyb\",\"output_index\":0,\"sequence_number\":40}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" great\",\"item_id\":\"fc_090df34a8460908100698e16bfc3a88190ade0229f57b498b4\",\"obfuscation\":\"GfESNrzEIT\",\"output_index\":0,\"sequence_number\":41}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" today\",\"item_id\":\"fc_090df34a8460908100698e16bfc3a88190ade0229f57b498b4\",\"obfuscation\":\"9VjSUM3rDj\",\"output_index\":0,\"sequence_number\":42}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"!\\\\\",\"item_id\":\"fc_090df34a8460908100698e16bfc3a88190ade0229f57b498b4\",\"obfuscation\":\"ihf85rAZDhB1Bo\",\"output_index\":0,\"sequence_number\":45}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"n\",\"item_id\":\"fc_090df34a8460908100698e16bfc3a88190ade0229f57b498b4\",\"obfuscation\":\"uRZPFsRCCN4CjNn\",\"output_index\":0,\"sequence_number\":46}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"<\",\"item_id\":\"fc_090df34a8460908100698e16bfc3a88190ade0229f57b498b4\",\"obfuscation\":\"AjzhwALvvEZlWoy\",\"output_index\":0,\"sequence_number\":47}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Paragraph\",\"item_id\":\"fc_090df34a8460908100698e16bfc3a88190ade0229f57b498b4\",\"obfuscation\":\"hmlSPqj\",\"output_index\":0,\"sequence_number\":48}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" text\",\"item_id\":\"fc_090df34a8460908100698e16bfc3a88190ade0229f57b498b4\",\"obfuscation\":\"hkYWIFqlbwA\",\"output_index\":0,\"sequence_number\":49}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Alignment\",\"item_id\":\"fc_090df34a8460908100698e16bfc3a88190ade0229f57b498b4\",\"obfuscation\":\"j0JuO2q\",\"output_index\":0,\"sequence_number\":50}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\\\\\\\"\",\"item_id\":\"fc_090df34a8460908100698e16bfc3a88190ade0229f57b498b4\",\"obfuscation\":\"JJjGt0c0MQW9T\",\"output_index\":0,\"sequence_number\":51}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"left\",\"item_id\":\"fc_090df34a8460908100698e16bfc3a88190ade0229f57b498b4\",\"obfuscation\":\"MBHExIDY2m0M\",\"output_index\":0,\"sequence_number\":52}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\"\",\"item_id\":\"fc_090df34a8460908100698e16bfc3a88190ade0229f57b498b4\",\"obfuscation\":\"WBiALihtXYgapu\",\"output_index\":0,\"sequence_number\":53}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" id\",\"item_id\":\"fc_090df34a8460908100698e16bfc3a88190ade0229f57b498b4\",\"obfuscation\":\"ypsLQp8ZRFMjw\",\"output_index\":0,\"sequence_number\":54}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\\\\\\\"\",\"item_id\":\"fc_090df34a8460908100698e16bfc3a88190ade0229f57b498b4\",\"obfuscation\":\"IKruxiOVdGwf4\",\"output_index\":0,\"sequence_number\":55}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"ref\",\"item_id\":\"fc_090df34a8460908100698e16bfc3a88190ade0229f57b498b4\",\"obfuscation\":\"vwOWkXCPqrEY2\",\"output_index\":0,\"sequence_number\":56}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"1\",\"item_id\":\"fc_090df34a8460908100698e16bfc3a88190ade0229f57b498b4\",\"obfuscation\":\"mbLgwgB4JBhMQYD\",\"output_index\":0,\"sequence_number\":57}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\">\",\"item_id\":\"fc_090df34a8460908100698e16bfc3a88190ade0229f57b498b4\",\"obfuscation\":\"CPpimljsq3RvQ\",\"output_index\":0,\"sequence_number\":58}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Hello\",\"item_id\":\"fc_090df34a8460908100698e16bfc3a88190ade0229f57b498b4\",\"obfuscation\":\"t2E05imhY5I\",\"output_index\":0,\"sequence_number\":59}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\",\",\"item_id\":\"fc_090df34a8460908100698e16bfc3a88190ade0229f57b498b4\",\"obfuscation\":\"WGakmFzbHLxEfST\",\"output_index\":0,\"sequence_number\":60}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" world\",\"item_id\":\"fc_090df34a8460908100698e16bfc3a88190ade0229f57b498b4\",\"obfuscation\":\"XJc1wKghDS\",\"output_index\":0,\"sequence_number\":61}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"!\",\"item_id\":\"fc_090df34a8460908100698e16bfc3a88190ade0229f57b498b4\",\"obfuscation\":\"2Kun2HKpNYBluDV\",\"output_index\":0,\"sequence_number\":64}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\"}\",\"item_id\":\"fc_090df34a8460908100698e16bfc3a88190ade0229f57b498b4\",\"obfuscation\":\"vypnMQtWtwtRri\",\"output_index\":0,\"sequence_number\":65}\n\nevent: response.function_call_arguments.done\ndata: {\"type\":\"response.function_call_arguments.done\",\"arguments\":\"{\\\"target\\\":\\\"Hello, world!\\\",\\\"replacement\\\":\\\"You look great today!\\\\nHello, world!\\\"}\",\"item_id\":\"fc_090df34a8460908100698e16bfc3a88190ade0229f57b498b4\",\"output_index\":0,\"sequence_number\":66}\n\nevent: response.output_item.done\ndata: {\"type\":\"response.output_item.done\",\"item\":{\"id\":\"fc_090df34a8460908100698e16bfc3a88190ade0229f57b498b4\",\"type\":\"function_call\",\"status\":\"completed\",\"arguments\":\"{\\\"target\\\":\\\"Hello, world!\\\",\\\"replacement\\\":\\\"You look great today!\\\\nHello, world!\\\"}\",\"call_id\":\"call_wANbTKU085qbIrsID4vsBUVq\",\"name\":\"file_replace\"},\"output_index\":0,\"sequence_number\":67}\n\nevent: response.completed\ndata: {\"type\":\"response.completed\",\"response\":{\"id\":\"resp_090df34a8460908100698e16bf06dc8190a724e07f4eaec09a\",\"object\":\"response\",\"created_at\":1770919615,\"status\":\"completed\",\"background\":false,\"completed_at\":1770919616,\"error\":null,\"frequency_penalty\":0.0,\"incomplete_details\":null,\"instructions\":null,\"max_output_tokens\":null,\"max_tool_calls\":null,\"model\":\"gpt-4o-2024-08-06\",\"output\":[{\"id\":\"fc_090df34a8460908100698e16bfc3a88190ade0229f57b498b4\",\"type\":\"function_call\",\"status\":\"completed\",\"arguments\":\"{\\\"target\\\":\\\"Hello, world!\\\",\\\"replacement\\\":\\\"You look great today!\\\\nHello, world!\\\"}\",\"call_id\":\"call_wANbTKU085qbIrsID4vsBUVq\",\"name\":\"file_replace\"}],\"parallel_tool_calls\":true,\"presence_penalty\":0.0,\"previous_response_id\":null,\"prompt_cache_key\":null,\"prompt_cache_retention\":null,\"reasoning\":{\"effort\":null,\"summary\":null},\"safety_identifier\":null,\"service_tier\":\"default\",\"store\":true,\"temperature\":1.0,\"text\":{\"format\":{\"type\":\"text\"},\"verbosity\":\"medium\"},\"tool_choice\":\"required\",\"tools\":[{\"type\":\"function\",\"description\":null,\"name\":\"file_replace\",\"parameters\":{\"type\":\"object\",\"properties\":{\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"target\",\"replacement\"],\"additionalProperties\":false},\"strict\":true}],\"top_logprobs\":0,\"top_p\":1.0,\"truncation\":\"disabled\",\"usage\":{\"input_tokens\":230,\"input_tokens_details\":{\"cached_tokens\":0},\"output_tokens\":64,\"output_tokens_details\":{\"reasoning_tokens\":0},\"total_tokens\":294},\"user\":null,\"metadata\":{}},\"sequence_number\":68}\n\n", + "headers": [] + } +} \ No newline at end of file diff --git a/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/anthropic.messages/claude-haiku-4-5 (streaming)/clear block formatting_1_1c369cd8c5a498da0f47051946893914.json b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/anthropic.messages/claude-haiku-4-5 (streaming)/clear block formatting_1_1c369cd8c5a498da0f47051946893914.json new file mode 100644 index 0000000000..e16458bf35 --- /dev/null +++ b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/anthropic.messages/claude-haiku-4-5 (streaming)/clear block formatting_1_1c369cd8c5a498da0f47051946893914.json @@ -0,0 +1,15 @@ +{ + "request": { + "method": "POST", + "url": "https://api.anthropic.com/v1/messages", + "body": "{\"model\":\"claude-haiku-4-5\",\"max_tokens\":64000,\"system\":[{\"type\":\"text\",\"text\":\"You are manipulating a text document using TSX components.\\nEach block is represented as a TSX component with props.\\n\"}],\"messages\":[{\"role\":\"assistant\",\"content\":[{\"type\":\"text\",\"text\":\"There is no active selection. This is the latest state of the document (ignore previous documents, you MUST issue operations against this latest version of the document). \\nThe cursor is BETWEEN two blocks as indicated by cursor: true.\\nPrefer updating existing blocks over removing and adding (but this also depends on the user's question).\"},{\"type\":\"text\",\"text\":\"[{\\\"id\\\":\\\"ref1$\\\",\\\"block\\\":\\\"Colored text\\\"},{\\\"cursor\\\":true},{\\\"id\\\":\\\"ref2$\\\",\\\"block\\\":\\\"Aligned text\\\"}]\"}]},{\"role\":\"user\",\"content\":[{\"type\":\"text\",\"text\":\"clear the formatting (colors and alignment)\"}]}],\"tools\":[{\"name\":\"file_replace\",\"input_schema\":{\"type\":\"object\",\"properties\":{\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"target\",\"replacement\"]}}],\"tool_choice\":{\"type\":\"any\"},\"stream\":true}", + "headers": [], + "cookies": [] + }, + "response": { + "status": 200, + "statusText": "", + "body": "event: message_start\ndata: {\"type\":\"message_start\",\"message\":{\"model\":\"claude-haiku-4-5-20251001\",\"id\":\"msg_01QkzXc6kM1d5srqgdP9Jnq6\",\"type\":\"message\",\"role\":\"assistant\",\"content\":[],\"stop_reason\":null,\"stop_sequence\":null,\"usage\":{\"input_tokens\":859,\"cache_creation_input_tokens\":0,\"cache_read_input_tokens\":0,\"cache_creation\":{\"ephemeral_5m_input_tokens\":0,\"ephemeral_1h_input_tokens\":0},\"output_tokens\":8,\"service_tier\":\"standard\",\"inference_geo\":\"not_available\"}} }\n\nevent: content_block_start\ndata: {\"type\":\"content_block_start\",\"index\":0,\"content_block\":{\"type\":\"tool_use\",\"id\":\"toolu_013MzWceVNEiYfZ2CMN6WwCt\",\"name\":\"file_replace\",\"input\":{}} }\n\nevent: ping\ndata: {\"type\": \"ping\"}\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"{\\\"target\\\": \\\"\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"Colored text\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"\\\", \\\"replacement\\\": \\\"\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"Colored text\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"\\\"}\"} }\n\nevent: content_block_stop\ndata: {\"type\":\"content_block_stop\",\"index\":0 }\n\nevent: content_block_start\ndata: {\"type\":\"content_block_start\",\"index\":1,\"content_block\":{\"type\":\"tool_use\",\"id\":\"toolu_018B5Rxq8Qs4gA1qpgi3FiYB\",\"name\":\"file_replace\",\"input\":{}} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":1,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":1,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"{\\\"target\\\": \\\"Aligned text\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":1,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"\"}}\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":1,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"\\\", \\\"replacement\\\": \\\"Aligned text\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":1,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"\\\"}\"} }\n\nevent: content_block_stop\ndata: {\"type\":\"content_block_stop\",\"index\":1 }\n\nevent: message_delta\ndata: {\"type\":\"message_delta\",\"delta\":{\"stop_reason\":\"tool_use\",\"stop_sequence\":null},\"usage\":{\"input_tokens\":859,\"cache_creation_input_tokens\":0,\"cache_read_input_tokens\":0,\"output_tokens\":170} }\n\nevent: message_stop\ndata: {\"type\":\"message_stop\" }\n\n", + "headers": [] + } +} \ No newline at end of file diff --git a/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/anthropic.messages/claude-haiku-4-5 (streaming)/fix spelling mid-word selection_1_f958ac638e675d62743bd99fcc891740.json b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/anthropic.messages/claude-haiku-4-5 (streaming)/fix spelling mid-word selection_1_f958ac638e675d62743bd99fcc891740.json new file mode 100644 index 0000000000..f232545fc9 --- /dev/null +++ b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/anthropic.messages/claude-haiku-4-5 (streaming)/fix spelling mid-word selection_1_f958ac638e675d62743bd99fcc891740.json @@ -0,0 +1,15 @@ +{ + "request": { + "method": "POST", + "url": "https://api.anthropic.com/v1/messages", + "body": "{\"model\":\"claude-haiku-4-5\",\"max_tokens\":64000,\"system\":[{\"type\":\"text\",\"text\":\"You are manipulating a text document using TSX components.\\nEach block is represented as a TSX component with props.\\n\"}],\"messages\":[{\"role\":\"assistant\",\"content\":[{\"type\":\"text\",\"text\":\"This is the latest state of the selection (ignore previous selections, you MUST issue operations against this latest version of the selection):\"},{\"type\":\"text\",\"text\":\"[{\\\"id\\\":\\\"ref1$\\\",\\\"block\\\":\\\"Hello, world! Dow are you?\\\"}]\"},{\"type\":\"text\",\"text\":\"This is the latest state of the entire document (INCLUDING the selected text), \\nyou can use this to find the selected text to understand the context (but you MUST NOT issue operations against this document, you MUST issue operations against the selection):\"},{\"type\":\"text\",\"text\":\"[{\\\"block\\\":\\\"Hello, world! Dow are you?\\\"}]\"}]},{\"role\":\"user\",\"content\":[{\"type\":\"text\",\"text\":\"fix spelling\"}]}],\"tools\":[{\"name\":\"file_replace\",\"input_schema\":{\"type\":\"object\",\"properties\":{\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"target\",\"replacement\"]}}],\"tool_choice\":{\"type\":\"any\"},\"stream\":true}", + "headers": [], + "cookies": [] + }, + "response": { + "status": 200, + "statusText": "", + "body": "event: message_start\ndata: {\"type\":\"message_start\",\"message\":{\"model\":\"claude-haiku-4-5-20251001\",\"id\":\"msg_01Eegao48DWXsst6gTedQtB9\",\"type\":\"message\",\"role\":\"assistant\",\"content\":[],\"stop_reason\":null,\"stop_sequence\":null,\"usage\":{\"input_tokens\":860,\"cache_creation_input_tokens\":0,\"cache_read_input_tokens\":0,\"cache_creation\":{\"ephemeral_5m_input_tokens\":0,\"ephemeral_1h_input_tokens\":0},\"output_tokens\":8,\"service_tier\":\"standard\",\"inference_geo\":\"not_available\"}}}\n\nevent: content_block_start\ndata: {\"type\":\"content_block_start\",\"index\":0,\"content_block\":{\"type\":\"tool_use\",\"id\":\"toolu_013KoRjcvywDLfjQP2fhUhVM\",\"name\":\"file_replace\",\"input\":{}} }\n\nevent: ping\ndata: {\"type\": \"ping\"}\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"{\\\"target\\\": \\\"Dow are\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\" you?\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"\\\", \\\"replacement\\\": \\\"How\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\" are you?\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"\\\"}\"} }\n\nevent: content_block_stop\ndata: {\"type\":\"content_block_stop\",\"index\":0 }\n\nevent: message_delta\ndata: {\"type\":\"message_delta\",\"delta\":{\"stop_reason\":\"tool_use\",\"stop_sequence\":null},\"usage\":{\"input_tokens\":860,\"cache_creation_input_tokens\":0,\"cache_read_input_tokens\":0,\"output_tokens\":62} }\n\nevent: message_stop\ndata: {\"type\":\"message_stop\" }\n\n", + "headers": [] + } +} \ No newline at end of file diff --git a/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/anthropic.messages/claude-haiku-4-5 (streaming)/modify nested content_1_c765e50907caf6893b85a5e8053f3a29.json b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/anthropic.messages/claude-haiku-4-5 (streaming)/modify nested content_1_c765e50907caf6893b85a5e8053f3a29.json new file mode 100644 index 0000000000..73d5526cb8 --- /dev/null +++ b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/anthropic.messages/claude-haiku-4-5 (streaming)/modify nested content_1_c765e50907caf6893b85a5e8053f3a29.json @@ -0,0 +1,15 @@ +{ + "request": { + "method": "POST", + "url": "https://api.anthropic.com/v1/messages", + "body": "{\"model\":\"claude-haiku-4-5\",\"max_tokens\":64000,\"system\":[{\"type\":\"text\",\"text\":\"You are manipulating a text document using TSX components.\\nEach block is represented as a TSX component with props.\\n\"}],\"messages\":[{\"role\":\"assistant\",\"content\":[{\"type\":\"text\",\"text\":\"There is no active selection. This is the latest state of the document (ignore previous documents, you MUST issue operations against this latest version of the document). \\nThe cursor is BETWEEN two blocks as indicated by cursor: true.\\nPrefer updating existing blocks over removing and adding (but this also depends on the user's question).\"},{\"type\":\"text\",\"text\":\"[{\\\"id\\\":\\\"ref1$\\\",\\\"block\\\":\\\"I need to buy:\\\"},{\\\"cursor\\\":true},{\\\"id\\\":\\\"ref2$\\\",\\\"block\\\":\\\"Apples\\\"}]\"}]},{\"role\":\"user\",\"content\":[{\"type\":\"text\",\"text\":\"make apples uppercase\"}]}],\"tools\":[{\"name\":\"file_replace\",\"input_schema\":{\"type\":\"object\",\"properties\":{\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"target\",\"replacement\"]}}],\"tool_choice\":{\"type\":\"any\"},\"stream\":true}", + "headers": [], + "cookies": [] + }, + "response": { + "status": 200, + "statusText": "", + "body": "event: message_start\ndata: {\"type\":\"message_start\",\"message\":{\"model\":\"claude-haiku-4-5-20251001\",\"id\":\"msg_01CDm5G4HcQJb18JM4jZHGtu\",\"type\":\"message\",\"role\":\"assistant\",\"content\":[],\"stop_reason\":null,\"stop_sequence\":null,\"usage\":{\"input_tokens\":852,\"cache_creation_input_tokens\":0,\"cache_read_input_tokens\":0,\"cache_creation\":{\"ephemeral_5m_input_tokens\":0,\"ephemeral_1h_input_tokens\":0},\"output_tokens\":8,\"service_tier\":\"standard\",\"inference_geo\":\"not_available\"}} }\n\nevent: content_block_start\ndata: {\"type\":\"content_block_start\",\"index\":0,\"content_block\":{\"type\":\"tool_use\",\"id\":\"toolu_011punvZFF8oK4w9JVRL4h6z\",\"name\":\"file_replace\",\"input\":{}}}\n\nevent: ping\ndata: {\"type\": \"ping\"}\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"{\\\"target\\\": \\\"Apples\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"\\\", \\\"replacement\\\": \\\"APPLES\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"\\\"}\"} }\n\nevent: content_block_stop\ndata: {\"type\":\"content_block_stop\",\"index\":0 }\n\nevent: message_delta\ndata: {\"type\":\"message_delta\",\"delta\":{\"stop_reason\":\"tool_use\",\"stop_sequence\":null},\"usage\":{\"input_tokens\":852,\"cache_creation_input_tokens\":0,\"cache_read_input_tokens\":0,\"output_tokens\":59} }\n\nevent: message_stop\ndata: {\"type\":\"message_stop\" }\n\n", + "headers": [] + } +} \ No newline at end of file diff --git a/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/anthropic.messages/claude-haiku-4-5 (streaming)/modify parent content_1_531389fceb12c1b2708740d07e8a7ab8.json b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/anthropic.messages/claude-haiku-4-5 (streaming)/modify parent content_1_531389fceb12c1b2708740d07e8a7ab8.json new file mode 100644 index 0000000000..28df1dfc76 --- /dev/null +++ b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/anthropic.messages/claude-haiku-4-5 (streaming)/modify parent content_1_531389fceb12c1b2708740d07e8a7ab8.json @@ -0,0 +1,15 @@ +{ + "request": { + "method": "POST", + "url": "https://api.anthropic.com/v1/messages", + "body": "{\"model\":\"claude-haiku-4-5\",\"max_tokens\":64000,\"system\":[{\"type\":\"text\",\"text\":\"You are manipulating a text document using TSX components.\\nEach block is represented as a TSX component with props.\\n\"}],\"messages\":[{\"role\":\"assistant\",\"content\":[{\"type\":\"text\",\"text\":\"There is no active selection. This is the latest state of the document (ignore previous documents, you MUST issue operations against this latest version of the document). \\nThe cursor is BETWEEN two blocks as indicated by cursor: true.\\nPrefer updating existing blocks over removing and adding (but this also depends on the user's question).\"},{\"type\":\"text\",\"text\":\"[{\\\"id\\\":\\\"ref1$\\\",\\\"block\\\":\\\"I need to buy:\\\"},{\\\"cursor\\\":true},{\\\"id\\\":\\\"ref2$\\\",\\\"block\\\":\\\"Apples\\\"}]\"}]},{\"role\":\"user\",\"content\":[{\"type\":\"text\",\"text\":\"make the first paragraph uppercase\"}]}],\"tools\":[{\"name\":\"file_replace\",\"input_schema\":{\"type\":\"object\",\"properties\":{\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"target\",\"replacement\"]}}],\"tool_choice\":{\"type\":\"any\"},\"stream\":true}", + "headers": [], + "cookies": [] + }, + "response": { + "status": 200, + "statusText": "", + "body": "event: message_start\ndata: {\"type\":\"message_start\",\"message\":{\"model\":\"claude-haiku-4-5-20251001\",\"id\":\"msg_01A1GM5tK7BpSy7mo7e5u6Rv\",\"type\":\"message\",\"role\":\"assistant\",\"content\":[],\"stop_reason\":null,\"stop_sequence\":null,\"usage\":{\"input_tokens\":853,\"cache_creation_input_tokens\":0,\"cache_read_input_tokens\":0,\"cache_creation\":{\"ephemeral_5m_input_tokens\":0,\"ephemeral_1h_input_tokens\":0},\"output_tokens\":8,\"service_tier\":\"standard\",\"inference_geo\":\"not_available\"}} }\n\nevent: content_block_start\ndata: {\"type\":\"content_block_start\",\"index\":0,\"content_block\":{\"type\":\"tool_use\",\"id\":\"toolu_01J8JoCaHWaTgejiFokmpMo9\",\"name\":\"file_replace\",\"input\":{}} }\n\nevent: ping\ndata: {\"type\": \"ping\"}\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"{\\\"target\\\": \\\"I need to buy\"}}\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\":\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"\\\", \\\"replacement\\\": \\\"I\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\" NEED TO BUY:\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"\\\"}\"} }\n\nevent: content_block_stop\ndata: {\"type\":\"content_block_stop\",\"index\":0 }\n\nevent: message_delta\ndata: {\"type\":\"message_delta\",\"delta\":{\"stop_reason\":\"tool_use\",\"stop_sequence\":null},\"usage\":{\"input_tokens\":853,\"cache_creation_input_tokens\":0,\"cache_read_input_tokens\":0,\"output_tokens\":94} }\n\nevent: message_stop\ndata: {\"type\":\"message_stop\" }\n\n", + "headers": [] + } +} \ No newline at end of file diff --git a/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/anthropic.messages/claude-haiku-4-5 (streaming)/turn paragraphs into list_1_c0aa3f1f854ce2abe443e22b12b5a02d.json b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/anthropic.messages/claude-haiku-4-5 (streaming)/turn paragraphs into list_1_c0aa3f1f854ce2abe443e22b12b5a02d.json new file mode 100644 index 0000000000..388c80a352 --- /dev/null +++ b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/anthropic.messages/claude-haiku-4-5 (streaming)/turn paragraphs into list_1_c0aa3f1f854ce2abe443e22b12b5a02d.json @@ -0,0 +1,15 @@ +{ + "request": { + "method": "POST", + "url": "https://api.anthropic.com/v1/messages", + "body": "{\"model\":\"claude-haiku-4-5\",\"max_tokens\":64000,\"system\":[{\"type\":\"text\",\"text\":\"You are manipulating a text document using TSX components.\\nEach block is represented as a TSX component with props.\\n\"}],\"messages\":[{\"role\":\"assistant\",\"content\":[{\"type\":\"text\",\"text\":\"This is the latest state of the selection (ignore previous selections, you MUST issue operations against this latest version of the selection):\"},{\"type\":\"text\",\"text\":\"[{\\\"id\\\":\\\"ref2$\\\",\\\"block\\\":\\\"Apples\\\"},{\\\"id\\\":\\\"ref3$\\\",\\\"block\\\":\\\"Bananas\\\"}]\"},{\"type\":\"text\",\"text\":\"This is the latest state of the entire document (INCLUDING the selected text), \\nyou can use this to find the selected text to understand the context (but you MUST NOT issue operations against this document, you MUST issue operations against the selection):\"},{\"type\":\"text\",\"text\":\"[{\\\"block\\\":\\\"I need to buy:\\\"},{\\\"block\\\":\\\"Apples\\\"},{\\\"block\\\":\\\"Bananas\\\"}]\"}]},{\"role\":\"user\",\"content\":[{\"type\":\"text\",\"text\":\"turn into list (update existing blocks)\"}]}],\"tools\":[{\"name\":\"file_replace\",\"input_schema\":{\"type\":\"object\",\"properties\":{\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"target\",\"replacement\"]}}],\"tool_choice\":{\"type\":\"any\"},\"stream\":true}", + "headers": [], + "cookies": [] + }, + "response": { + "status": 200, + "statusText": "", + "body": "event: message_start\ndata: {\"type\":\"message_start\",\"message\":{\"model\":\"claude-haiku-4-5-20251001\",\"id\":\"msg_017n7yrhgyiBLG6kisHG393N\",\"type\":\"message\",\"role\":\"assistant\",\"content\":[],\"stop_reason\":null,\"stop_sequence\":null,\"usage\":{\"input_tokens\":936,\"cache_creation_input_tokens\":0,\"cache_read_input_tokens\":0,\"cache_creation\":{\"ephemeral_5m_input_tokens\":0,\"ephemeral_1h_input_tokens\":0},\"output_tokens\":8,\"service_tier\":\"standard\",\"inference_geo\":\"not_available\"}} }\n\nevent: content_block_start\ndata: {\"type\":\"content_block_start\",\"index\":0,\"content_block\":{\"type\":\"tool_use\",\"id\":\"toolu_01LYUpbtWUGATbAK5RLgBwDL\",\"name\":\"file_replace\",\"input\":{}} }\n\nevent: ping\ndata: {\"type\": \"ping\"}\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"{\\\"target\\\": \\\"Apples\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"\\\", \\\"replacement\\\": \\\"Ap\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"ples\"}}\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":0,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"\\\"}\"} }\n\nevent: content_block_stop\ndata: {\"type\":\"content_block_stop\",\"index\":0 }\n\nevent: content_block_start\ndata: {\"type\":\"content_block_start\",\"index\":1,\"content_block\":{\"type\":\"tool_use\",\"id\":\"toolu_01M1DN9qPobbbSMXuhDKVhwS\",\"name\":\"file_replace\",\"input\":{}} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":1,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":1,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"{\\\"target\\\": \\\"\"}}\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":1,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"Bananas\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":1,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"\\\", \\\"replacement\\\": \\\"Bananas\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":1,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"\"} }\n\nevent: content_block_delta\ndata: {\"type\":\"content_block_delta\",\"index\":1,\"delta\":{\"type\":\"input_json_delta\",\"partial_json\":\"\\\"}\"} }\n\nevent: content_block_stop\ndata: {\"type\":\"content_block_stop\",\"index\":1 }\n\nevent: message_delta\ndata: {\"type\":\"message_delta\",\"delta\":{\"stop_reason\":\"tool_use\",\"stop_sequence\":null},\"usage\":{\"input_tokens\":936,\"cache_creation_input_tokens\":0,\"cache_read_input_tokens\":0,\"output_tokens\":166} }\n\nevent: message_stop\ndata: {\"type\":\"message_stop\" }\n\n", + "headers": [] + } +} \ No newline at end of file diff --git a/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/groq.chat/llama-3.3-70b-versatile (streaming)/fix spelling mid-word selection_1_ad8bf632345fe3f3db077847b06ed139.json b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/groq.chat/llama-3.3-70b-versatile (streaming)/fix spelling mid-word selection_1_ad8bf632345fe3f3db077847b06ed139.json new file mode 100644 index 0000000000..a9aefd5d20 --- /dev/null +++ b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/groq.chat/llama-3.3-70b-versatile (streaming)/fix spelling mid-word selection_1_ad8bf632345fe3f3db077847b06ed139.json @@ -0,0 +1,15 @@ +{ + "request": { + "method": "POST", + "url": "https://api.groq.com/openai/v1/chat/completions", + "body": "{\"model\":\"llama-3.3-70b-versatile\",\"messages\":[{\"role\":\"system\",\"content\":\"You are manipulating a text document using TSX components.\\nEach block is represented as a TSX component with props.\\n\"},{\"role\":\"assistant\",\"content\":\"This is the latest state of the selection (ignore previous selections, you MUST issue operations against this latest version of the selection):[{\\\"id\\\":\\\"ref1$\\\",\\\"block\\\":\\\"Hello, world! Dow are you?\\\"}]This is the latest state of the entire document (INCLUDING the selected text), \\nyou can use this to find the selected text to understand the context (but you MUST NOT issue operations against this document, you MUST issue operations against the selection):[{\\\"block\\\":\\\"Hello, world! Dow are you?\\\"}]\"},{\"role\":\"user\",\"content\":\"fix spelling\"}],\"tools\":[{\"type\":\"function\",\"function\":{\"name\":\"file_replace\",\"parameters\":{\"type\":\"object\",\"properties\":{\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"target\",\"replacement\"]}}}],\"tool_choice\":\"required\",\"stream\":true}", + "headers": [], + "cookies": [] + }, + "response": { + "status": 200, + "statusText": "", + "body": "data: {\"id\":\"chatcmpl-2e96671e-54e8-41c9-b645-4dd49ae29675\",\"object\":\"chat.completion.chunk\",\"created\":1770919630,\"model\":\"llama-3.3-70b-versatile\",\"system_fingerprint\":\"fp_dae98b5ecb\",\"choices\":[{\"index\":0,\"delta\":{\"role\":\"assistant\",\"content\":null},\"logprobs\":null,\"finish_reason\":null}],\"x_groq\":{\"id\":\"req_01kh9gj5hqej6bx5rgk1wde59r\",\"seed\":1942262262}}\n\ndata: {\"id\":\"chatcmpl-2e96671e-54e8-41c9-b645-4dd49ae29675\",\"object\":\"chat.completion.chunk\",\"created\":1770919630,\"model\":\"llama-3.3-70b-versatile\",\"system_fingerprint\":\"fp_dae98b5ecb\",\"choices\":[{\"index\":0,\"delta\":{\"tool_calls\":[{\"id\":\"p6mk7x7cv\",\"type\":\"function\",\"function\":{\"name\":\"file_replace\",\"arguments\":\"{\\\"replacement\\\":\\\"How\\\",\\\"target\\\":\\\"Dow\\\"}\"},\"index\":0}]},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-2e96671e-54e8-41c9-b645-4dd49ae29675\",\"object\":\"chat.completion.chunk\",\"created\":1770919630,\"model\":\"llama-3.3-70b-versatile\",\"system_fingerprint\":\"fp_dae98b5ecb\",\"choices\":[{\"index\":0,\"delta\":{},\"logprobs\":null,\"finish_reason\":\"tool_calls\"}],\"x_groq\":{\"id\":\"req_01kh9gj5hqej6bx5rgk1wde59r\",\"usage\":{\"queue_time\":0.090633618,\"prompt_tokens\":402,\"prompt_time\":0.02088625,\"completion_tokens\":19,\"completion_time\":0.079126386,\"total_tokens\":421,\"total_time\":0.100012636}},\"usage\":{\"queue_time\":0.090633618,\"prompt_tokens\":402,\"prompt_time\":0.02088625,\"completion_tokens\":19,\"completion_time\":0.079126386,\"total_tokens\":421,\"total_time\":0.100012636}}\n\ndata: [DONE]\n\n", + "headers": [] + } +} \ No newline at end of file diff --git a/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/groq.chat/llama-3.3-70b-versatile (streaming)/modify nested content_1_2b4d4dfb9bb12629f81ef931c9879893.json b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/groq.chat/llama-3.3-70b-versatile (streaming)/modify nested content_1_2b4d4dfb9bb12629f81ef931c9879893.json new file mode 100644 index 0000000000..12a460f200 --- /dev/null +++ b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/groq.chat/llama-3.3-70b-versatile (streaming)/modify nested content_1_2b4d4dfb9bb12629f81ef931c9879893.json @@ -0,0 +1,15 @@ +{ + "request": { + "method": "POST", + "url": "https://api.groq.com/openai/v1/chat/completions", + "body": "{\"model\":\"llama-3.3-70b-versatile\",\"messages\":[{\"role\":\"system\",\"content\":\"You are manipulating a text document using TSX components.\\nEach block is represented as a TSX component with props.\\n\"},{\"role\":\"assistant\",\"content\":\"There is no active selection. This is the latest state of the document (ignore previous documents, you MUST issue operations against this latest version of the document). \\nThe cursor is BETWEEN two blocks as indicated by cursor: true.\\nPrefer updating existing blocks over removing and adding (but this also depends on the user's question).[{\\\"id\\\":\\\"ref1$\\\",\\\"block\\\":\\\"I need to buy:\\\"},{\\\"cursor\\\":true},{\\\"id\\\":\\\"ref2$\\\",\\\"block\\\":\\\"Apples\\\"}]\"},{\"role\":\"user\",\"content\":\"make apples uppercase\"}],\"tools\":[{\"type\":\"function\",\"function\":{\"name\":\"file_replace\",\"parameters\":{\"type\":\"object\",\"properties\":{\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"target\",\"replacement\"]}}}],\"tool_choice\":\"required\",\"stream\":true}", + "headers": [], + "cookies": [] + }, + "response": { + "status": 200, + "statusText": "", + "body": "data: {\"id\":\"chatcmpl-49c5a6b1-4082-4afe-ab14-873de6c3447b\",\"object\":\"chat.completion.chunk\",\"created\":1770919631,\"model\":\"llama-3.3-70b-versatile\",\"system_fingerprint\":\"fp_c06d5113ec\",\"choices\":[{\"index\":0,\"delta\":{\"role\":\"assistant\",\"content\":null},\"logprobs\":null,\"finish_reason\":null}],\"x_groq\":{\"id\":\"req_01kh9gj63vej78cwx3t4hy6phx\",\"seed\":429975615}}\n\ndata: {\"id\":\"chatcmpl-49c5a6b1-4082-4afe-ab14-873de6c3447b\",\"object\":\"chat.completion.chunk\",\"created\":1770919631,\"model\":\"llama-3.3-70b-versatile\",\"system_fingerprint\":\"fp_c06d5113ec\",\"choices\":[{\"index\":0,\"delta\":{\"tool_calls\":[{\"id\":\"2t4psjpcz\",\"type\":\"function\",\"function\":{\"name\":\"file_replace\",\"arguments\":\"{\\\"replacement\\\":\\\"APPLES\\\",\\\"target\\\":\\\"Apples\\\"}\"},\"index\":0}]},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-49c5a6b1-4082-4afe-ab14-873de6c3447b\",\"object\":\"chat.completion.chunk\",\"created\":1770919631,\"model\":\"llama-3.3-70b-versatile\",\"system_fingerprint\":\"fp_c06d5113ec\",\"choices\":[{\"index\":0,\"delta\":{},\"logprobs\":null,\"finish_reason\":\"tool_calls\"}],\"x_groq\":{\"id\":\"req_01kh9gj63vej78cwx3t4hy6phx\",\"usage\":{\"queue_time\":0.093093514,\"prompt_tokens\":393,\"prompt_time\":0.054738222,\"completion_tokens\":20,\"completion_time\":0.061451164,\"total_tokens\":413,\"total_time\":0.116189386}},\"usage\":{\"queue_time\":0.093093514,\"prompt_tokens\":393,\"prompt_time\":0.054738222,\"completion_tokens\":20,\"completion_time\":0.061451164,\"total_tokens\":413,\"total_time\":0.116189386}}\n\ndata: [DONE]\n\n", + "headers": [] + } +} \ No newline at end of file diff --git a/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/groq.chat/llama-3.3-70b-versatile (streaming)/modify parent content_1_65d70c1bac37c7c4b09eb571e5d385b5.json b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/groq.chat/llama-3.3-70b-versatile (streaming)/modify parent content_1_65d70c1bac37c7c4b09eb571e5d385b5.json new file mode 100644 index 0000000000..140fba0173 --- /dev/null +++ b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/groq.chat/llama-3.3-70b-versatile (streaming)/modify parent content_1_65d70c1bac37c7c4b09eb571e5d385b5.json @@ -0,0 +1,15 @@ +{ + "request": { + "method": "POST", + "url": "https://api.groq.com/openai/v1/chat/completions", + "body": "{\"model\":\"llama-3.3-70b-versatile\",\"messages\":[{\"role\":\"system\",\"content\":\"You are manipulating a text document using TSX components.\\nEach block is represented as a TSX component with props.\\n\"},{\"role\":\"assistant\",\"content\":\"There is no active selection. This is the latest state of the document (ignore previous documents, you MUST issue operations against this latest version of the document). \\nThe cursor is BETWEEN two blocks as indicated by cursor: true.\\nPrefer updating existing blocks over removing and adding (but this also depends on the user's question).[{\\\"id\\\":\\\"ref1$\\\",\\\"block\\\":\\\"I need to buy:\\\"},{\\\"cursor\\\":true},{\\\"id\\\":\\\"ref2$\\\",\\\"block\\\":\\\"Apples\\\"}]\"},{\"role\":\"user\",\"content\":\"make the first paragraph uppercase\"}],\"tools\":[{\"type\":\"function\",\"function\":{\"name\":\"file_replace\",\"parameters\":{\"type\":\"object\",\"properties\":{\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"target\",\"replacement\"]}}}],\"tool_choice\":\"required\",\"stream\":true}", + "headers": [], + "cookies": [] + }, + "response": { + "status": 200, + "statusText": "", + "body": "data: {\"id\":\"chatcmpl-8a4d4f9e-ef22-4995-946c-375a4905a00f\",\"object\":\"chat.completion.chunk\",\"created\":1770919631,\"model\":\"llama-3.3-70b-versatile\",\"system_fingerprint\":\"fp_f8b414701e\",\"choices\":[{\"index\":0,\"delta\":{\"role\":\"assistant\",\"content\":null},\"logprobs\":null,\"finish_reason\":null}],\"x_groq\":{\"id\":\"req_01kh9gj6bde77v9549tbjz7hjw\",\"seed\":392699640}}\n\ndata: {\"id\":\"chatcmpl-8a4d4f9e-ef22-4995-946c-375a4905a00f\",\"object\":\"chat.completion.chunk\",\"created\":1770919631,\"model\":\"llama-3.3-70b-versatile\",\"system_fingerprint\":\"fp_f8b414701e\",\"choices\":[{\"index\":0,\"delta\":{\"tool_calls\":[{\"id\":\"wq81nn056\",\"type\":\"function\",\"function\":{\"name\":\"file_replace\",\"arguments\":\"{\\\"replacement\\\":\\\"I NEED TO BUY:\\\",\\\"target\\\":\\\"I need to buy:\\\"}\"},\"index\":0}]},\"logprobs\":null,\"finish_reason\":null}]}\n\ndata: {\"id\":\"chatcmpl-8a4d4f9e-ef22-4995-946c-375a4905a00f\",\"object\":\"chat.completion.chunk\",\"created\":1770919631,\"model\":\"llama-3.3-70b-versatile\",\"system_fingerprint\":\"fp_f8b414701e\",\"choices\":[{\"index\":0,\"delta\":{},\"logprobs\":null,\"finish_reason\":\"tool_calls\"}],\"x_groq\":{\"id\":\"req_01kh9gj6bde77v9549tbjz7hjw\",\"usage\":{\"queue_time\":0.048406573,\"prompt_tokens\":395,\"prompt_time\":0.020830893,\"completion_tokens\":22,\"completion_time\":0.074240778,\"total_tokens\":417,\"total_time\":0.095071671}},\"usage\":{\"queue_time\":0.048406573,\"prompt_tokens\":395,\"prompt_time\":0.020830893,\"completion_tokens\":22,\"completion_time\":0.074240778,\"total_tokens\":417,\"total_time\":0.095071671}}\n\ndata: [DONE]\n\n", + "headers": [] + } +} \ No newline at end of file diff --git a/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/groq.chat/llama-3.3-70b-versatile (streaming)/turn paragraphs into list_1_8695bf27c1be0bd1787de54cbe6028cf.json b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/groq.chat/llama-3.3-70b-versatile (streaming)/turn paragraphs into list_1_8695bf27c1be0bd1787de54cbe6028cf.json new file mode 100644 index 0000000000..8a80267d8f --- /dev/null +++ b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/groq.chat/llama-3.3-70b-versatile (streaming)/turn paragraphs into list_1_8695bf27c1be0bd1787de54cbe6028cf.json @@ -0,0 +1,15 @@ +{ + "request": { + "method": "POST", + "url": "https://api.groq.com/openai/v1/chat/completions", + "body": "{\"model\":\"llama-3.3-70b-versatile\",\"messages\":[{\"role\":\"system\",\"content\":\"You are manipulating a text document using TSX components.\\nEach block is represented as a TSX component with props.\\n\"},{\"role\":\"assistant\",\"content\":\"This is the latest state of the selection (ignore previous selections, you MUST issue operations against this latest version of the selection):[{\\\"id\\\":\\\"ref2$\\\",\\\"block\\\":\\\"Apples\\\"},{\\\"id\\\":\\\"ref3$\\\",\\\"block\\\":\\\"Bananas\\\"}]This is the latest state of the entire document (INCLUDING the selected text), \\nyou can use this to find the selected text to understand the context (but you MUST NOT issue operations against this document, you MUST issue operations against the selection):[{\\\"block\\\":\\\"I need to buy:\\\"},{\\\"block\\\":\\\"Apples\\\"},{\\\"block\\\":\\\"Bananas\\\"}]\"},{\"role\":\"user\",\"content\":\"turn into list (update existing blocks)\"}],\"tools\":[{\"type\":\"function\",\"function\":{\"name\":\"file_replace\",\"parameters\":{\"type\":\"object\",\"properties\":{\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"target\",\"replacement\"]}}}],\"tool_choice\":\"required\",\"stream\":true}", + "headers": [], + "cookies": [] + }, + "response": { + "status": 200, + "statusText": "", + "body": "event: error\ndata: {\"error\":{\"message\":\"Failed to call a function. Please adjust your prompt. See 'failed_generation' for more details.\",\"type\":\"invalid_request_error\",\"code\":\"tool_use_failed\",\"failed_generation\":\"\\u003cfunction=update_blocks\\u003e{\\\"blocks\\\":[{\\\"id\\\":\\\"ref2$\\\",\\\"block\\\":\\\"\\u003cUnorderedList textAlignment=\\\\\\\"left\\\\\\\" id=\\\\\\\"ref2\\\\\\\"\\u003e\\u003cListItem\\u003eApples\\u003c/ListItem\\u003e\\u003c/UnorderedList\\u003e\\\"},{\\\"id\\\":\\\"ref3$\\\",\\\"block\\\":\\\"\\u003cUnorderedList textAlignment=\\\\\\\"left\\\\\\\" id=\\\\\\\"ref3\\\\\\\"\\u003e\\u003cListItem\\u003eBananas\\u003c/ListItem\\u003e\\u003c/UnorderedList\\u003e\\\"}]\\u003c/function\\u003e\",\"status_code\":400}}\n\n", + "headers": [] + } +} \ No newline at end of file diff --git a/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/clear block formatting_1_e4d8c00fcff2bb70298a909030687157.json b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/clear block formatting_1_e4d8c00fcff2bb70298a909030687157.json new file mode 100644 index 0000000000..a9bcec0519 --- /dev/null +++ b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/clear block formatting_1_e4d8c00fcff2bb70298a909030687157.json @@ -0,0 +1,15 @@ +{ + "request": { + "method": "POST", + "url": "https://api.openai.com/v1/responses", + "body": "{\"model\":\"gpt-4o-2024-08-06\",\"input\":[{\"role\":\"system\",\"content\":\"You are manipulating a text document using TSX components.\\nEach block is represented as a TSX component with props.\\n\"},{\"role\":\"assistant\",\"content\":[{\"type\":\"output_text\",\"text\":\"There is no active selection. This is the latest state of the document (ignore previous documents, you MUST issue operations against this latest version of the document). \\nThe cursor is BETWEEN two blocks as indicated by cursor: true.\\nPrefer updating existing blocks over removing and adding (but this also depends on the user's question).\"}]},{\"role\":\"assistant\",\"content\":[{\"type\":\"output_text\",\"text\":\"[{\\\"id\\\":\\\"ref1$\\\",\\\"block\\\":\\\"Colored text\\\"},{\\\"cursor\\\":true},{\\\"id\\\":\\\"ref2$\\\",\\\"block\\\":\\\"Aligned text\\\"}]\"}]},{\"role\":\"user\",\"content\":[{\"type\":\"input_text\",\"text\":\"clear the formatting (colors and alignment)\"}]}],\"tools\":[{\"type\":\"function\",\"name\":\"file_replace\",\"parameters\":{\"type\":\"object\",\"properties\":{\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"target\",\"replacement\"]}}],\"tool_choice\":\"required\",\"stream\":true}", + "headers": [], + "cookies": [] + }, + "response": { + "status": 200, + "statusText": "", + "body": "event: response.created\ndata: {\"type\":\"response.created\",\"response\":{\"id\":\"resp_025bcd77e93c43de00698e16cbb26081958d52e35dfc7cb577\",\"object\":\"response\",\"created_at\":1770919627,\"status\":\"in_progress\",\"background\":false,\"completed_at\":null,\"error\":null,\"frequency_penalty\":0.0,\"incomplete_details\":null,\"instructions\":null,\"max_output_tokens\":null,\"max_tool_calls\":null,\"model\":\"gpt-4o-2024-08-06\",\"output\":[],\"parallel_tool_calls\":true,\"presence_penalty\":0.0,\"previous_response_id\":null,\"prompt_cache_key\":null,\"prompt_cache_retention\":null,\"reasoning\":{\"effort\":null,\"summary\":null},\"safety_identifier\":null,\"service_tier\":\"auto\",\"store\":true,\"temperature\":1.0,\"text\":{\"format\":{\"type\":\"text\"},\"verbosity\":\"medium\"},\"tool_choice\":\"required\",\"tools\":[{\"type\":\"function\",\"description\":null,\"name\":\"file_replace\",\"parameters\":{\"type\":\"object\",\"properties\":{\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"target\",\"replacement\"],\"additionalProperties\":false},\"strict\":true}],\"top_logprobs\":0,\"top_p\":1.0,\"truncation\":\"disabled\",\"usage\":null,\"user\":null,\"metadata\":{}},\"sequence_number\":0}\n\nevent: response.in_progress\ndata: {\"type\":\"response.in_progress\",\"response\":{\"id\":\"resp_025bcd77e93c43de00698e16cbb26081958d52e35dfc7cb577\",\"object\":\"response\",\"created_at\":1770919627,\"status\":\"in_progress\",\"background\":false,\"completed_at\":null,\"error\":null,\"frequency_penalty\":0.0,\"incomplete_details\":null,\"instructions\":null,\"max_output_tokens\":null,\"max_tool_calls\":null,\"model\":\"gpt-4o-2024-08-06\",\"output\":[],\"parallel_tool_calls\":true,\"presence_penalty\":0.0,\"previous_response_id\":null,\"prompt_cache_key\":null,\"prompt_cache_retention\":null,\"reasoning\":{\"effort\":null,\"summary\":null},\"safety_identifier\":null,\"service_tier\":\"auto\",\"store\":true,\"temperature\":1.0,\"text\":{\"format\":{\"type\":\"text\"},\"verbosity\":\"medium\"},\"tool_choice\":\"required\",\"tools\":[{\"type\":\"function\",\"description\":null,\"name\":\"file_replace\",\"parameters\":{\"type\":\"object\",\"properties\":{\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"target\",\"replacement\"],\"additionalProperties\":false},\"strict\":true}],\"top_logprobs\":0,\"top_p\":1.0,\"truncation\":\"disabled\",\"usage\":null,\"user\":null,\"metadata\":{}},\"sequence_number\":1}\n\nevent: response.output_item.added\ndata: {\"type\":\"response.output_item.added\",\"item\":{\"id\":\"fc_025bcd77e93c43de00698e16cc1f708195927920a3ad85726e\",\"type\":\"function_call\",\"status\":\"in_progress\",\"arguments\":\"\",\"call_id\":\"call_mEV4aurYWkf3jSYeenZ4x00h\",\"name\":\"file_replace\"},\"output_index\":0,\"sequence_number\":2}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"{\\\"\",\"item_id\":\"fc_025bcd77e93c43de00698e16cc1f708195927920a3ad85726e\",\"obfuscation\":\"rbNq2D6Mu6n55a\",\"output_index\":0,\"sequence_number\":3}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"target\",\"item_id\":\"fc_025bcd77e93c43de00698e16cc1f708195927920a3ad85726e\",\"obfuscation\":\"GarHCMywfa\",\"output_index\":0,\"sequence_number\":4}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\":\\\"\",\"item_id\":\"fc_025bcd77e93c43de00698e16cc1f708195927920a3ad85726e\",\"obfuscation\":\"jEXDSAbTm7UOH\",\"output_index\":0,\"sequence_number\":5}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" background\",\"item_id\":\"fc_025bcd77e93c43de00698e16cc1f708195927920a3ad85726e\",\"obfuscation\":\"wsWG2\",\"output_index\":0,\"sequence_number\":6}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Color\",\"item_id\":\"fc_025bcd77e93c43de00698e16cc1f708195927920a3ad85726e\",\"obfuscation\":\"vn9Bj2noiYS\",\"output_index\":0,\"sequence_number\":7}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\\\\\\\"\",\"item_id\":\"fc_025bcd77e93c43de00698e16cc1f708195927920a3ad85726e\",\"obfuscation\":\"Zak3JqIuRjGNg\",\"output_index\":0,\"sequence_number\":8}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"red\",\"item_id\":\"fc_025bcd77e93c43de00698e16cc1f708195927920a3ad85726e\",\"obfuscation\":\"DizdhxgUE90kU\",\"output_index\":0,\"sequence_number\":9}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\"\",\"item_id\":\"fc_025bcd77e93c43de00698e16cc1f708195927920a3ad85726e\",\"obfuscation\":\"lBYmQ8VwxmHmZ5\",\"output_index\":0,\"sequence_number\":10}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\",\\\"\",\"item_id\":\"fc_025bcd77e93c43de00698e16cc1f708195927920a3ad85726e\",\"obfuscation\":\"kFFv3iBnzplL6\",\"output_index\":0,\"sequence_number\":11}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"replacement\",\"item_id\":\"fc_025bcd77e93c43de00698e16cc1f708195927920a3ad85726e\",\"obfuscation\":\"7rFJ4\",\"output_index\":0,\"sequence_number\":12}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\":\",\"item_id\":\"fc_025bcd77e93c43de00698e16cc1f708195927920a3ad85726e\",\"obfuscation\":\"TH8i04OjXoxUBJ\",\"output_index\":0,\"sequence_number\":13}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\"\\\"\",\"item_id\":\"fc_025bcd77e93c43de00698e16cc1f708195927920a3ad85726e\",\"obfuscation\":\"iWK62YrojMklE2\",\"output_index\":0,\"sequence_number\":14}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"}\",\"item_id\":\"fc_025bcd77e93c43de00698e16cc1f708195927920a3ad85726e\",\"obfuscation\":\"osaLI9EkI3pjm9G\",\"output_index\":0,\"sequence_number\":15}\n\nevent: response.function_call_arguments.done\ndata: {\"type\":\"response.function_call_arguments.done\",\"arguments\":\"{\\\"target\\\":\\\" backgroundColor=\\\\\\\"red\\\\\\\"\\\",\\\"replacement\\\":\\\"\\\"}\",\"item_id\":\"fc_025bcd77e93c43de00698e16cc1f708195927920a3ad85726e\",\"output_index\":0,\"sequence_number\":16}\n\nevent: response.output_item.done\ndata: {\"type\":\"response.output_item.done\",\"item\":{\"id\":\"fc_025bcd77e93c43de00698e16cc1f708195927920a3ad85726e\",\"type\":\"function_call\",\"status\":\"completed\",\"arguments\":\"{\\\"target\\\":\\\" backgroundColor=\\\\\\\"red\\\\\\\"\\\",\\\"replacement\\\":\\\"\\\"}\",\"call_id\":\"call_mEV4aurYWkf3jSYeenZ4x00h\",\"name\":\"file_replace\"},\"output_index\":0,\"sequence_number\":17}\n\nevent: response.completed\ndata: {\"type\":\"response.completed\",\"response\":{\"id\":\"resp_025bcd77e93c43de00698e16cbb26081958d52e35dfc7cb577\",\"object\":\"response\",\"created_at\":1770919627,\"status\":\"completed\",\"background\":false,\"completed_at\":1770919628,\"error\":null,\"frequency_penalty\":0.0,\"incomplete_details\":null,\"instructions\":null,\"max_output_tokens\":null,\"max_tool_calls\":null,\"model\":\"gpt-4o-2024-08-06\",\"output\":[{\"id\":\"fc_025bcd77e93c43de00698e16cc1f708195927920a3ad85726e\",\"type\":\"function_call\",\"status\":\"completed\",\"arguments\":\"{\\\"target\\\":\\\" backgroundColor=\\\\\\\"red\\\\\\\"\\\",\\\"replacement\\\":\\\"\\\"}\",\"call_id\":\"call_mEV4aurYWkf3jSYeenZ4x00h\",\"name\":\"file_replace\"}],\"parallel_tool_calls\":true,\"presence_penalty\":0.0,\"previous_response_id\":null,\"prompt_cache_key\":null,\"prompt_cache_retention\":null,\"reasoning\":{\"effort\":null,\"summary\":null},\"safety_identifier\":null,\"service_tier\":\"default\",\"store\":true,\"temperature\":1.0,\"text\":{\"format\":{\"type\":\"text\"},\"verbosity\":\"medium\"},\"tool_choice\":\"required\",\"tools\":[{\"type\":\"function\",\"description\":null,\"name\":\"file_replace\",\"parameters\":{\"type\":\"object\",\"properties\":{\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"target\",\"replacement\"],\"additionalProperties\":false},\"strict\":true}],\"top_logprobs\":0,\"top_p\":1.0,\"truncation\":\"disabled\",\"usage\":{\"input_tokens\":224,\"input_tokens_details\":{\"cached_tokens\":0},\"output_tokens\":14,\"output_tokens_details\":{\"reasoning_tokens\":0},\"total_tokens\":238},\"user\":null,\"metadata\":{}},\"sequence_number\":18}\n\n", + "headers": [] + } +} \ No newline at end of file diff --git a/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/fix spelling mid-word selection_1_08065d705823242620eadeffe098a0fb.json b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/fix spelling mid-word selection_1_08065d705823242620eadeffe098a0fb.json new file mode 100644 index 0000000000..3705b49e42 --- /dev/null +++ b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/fix spelling mid-word selection_1_08065d705823242620eadeffe098a0fb.json @@ -0,0 +1,15 @@ +{ + "request": { + "method": "POST", + "url": "https://api.openai.com/v1/responses", + "body": "{\"model\":\"gpt-4o-2024-08-06\",\"input\":[{\"role\":\"system\",\"content\":\"You are manipulating a text document using TSX components.\\nEach block is represented as a TSX component with props.\\n\"},{\"role\":\"assistant\",\"content\":[{\"type\":\"output_text\",\"text\":\"This is the latest state of the selection (ignore previous selections, you MUST issue operations against this latest version of the selection):\"}]},{\"role\":\"assistant\",\"content\":[{\"type\":\"output_text\",\"text\":\"[{\\\"id\\\":\\\"ref1$\\\",\\\"block\\\":\\\"Hello, world! Dow are you?\\\"}]\"}]},{\"role\":\"assistant\",\"content\":[{\"type\":\"output_text\",\"text\":\"This is the latest state of the entire document (INCLUDING the selected text), \\nyou can use this to find the selected text to understand the context (but you MUST NOT issue operations against this document, you MUST issue operations against the selection):\"}]},{\"role\":\"assistant\",\"content\":[{\"type\":\"output_text\",\"text\":\"[{\\\"block\\\":\\\"Hello, world! Dow are you?\\\"}]\"}]},{\"role\":\"user\",\"content\":[{\"type\":\"input_text\",\"text\":\"fix spelling\"}]}],\"tools\":[{\"type\":\"function\",\"name\":\"file_replace\",\"parameters\":{\"type\":\"object\",\"properties\":{\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"target\",\"replacement\"]}}],\"tool_choice\":\"required\",\"stream\":true}", + "headers": [], + "cookies": [] + }, + "response": { + "status": 200, + "statusText": "", + "body": "event: response.created\ndata: {\"type\":\"response.created\",\"response\":{\"id\":\"resp_029b7db2fc0aee2900698e16c7c0d4819090222bc34004eb6d\",\"object\":\"response\",\"created_at\":1770919623,\"status\":\"in_progress\",\"background\":false,\"completed_at\":null,\"error\":null,\"frequency_penalty\":0.0,\"incomplete_details\":null,\"instructions\":null,\"max_output_tokens\":null,\"max_tool_calls\":null,\"model\":\"gpt-4o-2024-08-06\",\"output\":[],\"parallel_tool_calls\":true,\"presence_penalty\":0.0,\"previous_response_id\":null,\"prompt_cache_key\":null,\"prompt_cache_retention\":null,\"reasoning\":{\"effort\":null,\"summary\":null},\"safety_identifier\":null,\"service_tier\":\"auto\",\"store\":true,\"temperature\":1.0,\"text\":{\"format\":{\"type\":\"text\"},\"verbosity\":\"medium\"},\"tool_choice\":\"required\",\"tools\":[{\"type\":\"function\",\"description\":null,\"name\":\"file_replace\",\"parameters\":{\"type\":\"object\",\"properties\":{\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"target\",\"replacement\"],\"additionalProperties\":false},\"strict\":true}],\"top_logprobs\":0,\"top_p\":1.0,\"truncation\":\"disabled\",\"usage\":null,\"user\":null,\"metadata\":{}},\"sequence_number\":0}\n\nevent: response.in_progress\ndata: {\"type\":\"response.in_progress\",\"response\":{\"id\":\"resp_029b7db2fc0aee2900698e16c7c0d4819090222bc34004eb6d\",\"object\":\"response\",\"created_at\":1770919623,\"status\":\"in_progress\",\"background\":false,\"completed_at\":null,\"error\":null,\"frequency_penalty\":0.0,\"incomplete_details\":null,\"instructions\":null,\"max_output_tokens\":null,\"max_tool_calls\":null,\"model\":\"gpt-4o-2024-08-06\",\"output\":[],\"parallel_tool_calls\":true,\"presence_penalty\":0.0,\"previous_response_id\":null,\"prompt_cache_key\":null,\"prompt_cache_retention\":null,\"reasoning\":{\"effort\":null,\"summary\":null},\"safety_identifier\":null,\"service_tier\":\"auto\",\"store\":true,\"temperature\":1.0,\"text\":{\"format\":{\"type\":\"text\"},\"verbosity\":\"medium\"},\"tool_choice\":\"required\",\"tools\":[{\"type\":\"function\",\"description\":null,\"name\":\"file_replace\",\"parameters\":{\"type\":\"object\",\"properties\":{\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"target\",\"replacement\"],\"additionalProperties\":false},\"strict\":true}],\"top_logprobs\":0,\"top_p\":1.0,\"truncation\":\"disabled\",\"usage\":null,\"user\":null,\"metadata\":{}},\"sequence_number\":1}\n\nevent: response.output_item.added\ndata: {\"type\":\"response.output_item.added\",\"item\":{\"id\":\"fc_029b7db2fc0aee2900698e16c831088190b0d32ec514a87c6e\",\"type\":\"function_call\",\"status\":\"in_progress\",\"arguments\":\"\",\"call_id\":\"call_ar9tG9QP3jnsq5CUOqxrXrSk\",\"name\":\"file_replace\"},\"output_index\":0,\"sequence_number\":2}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"{\\\"\",\"item_id\":\"fc_029b7db2fc0aee2900698e16c831088190b0d32ec514a87c6e\",\"obfuscation\":\"c8PqCNiIwLD7Mj\",\"output_index\":0,\"sequence_number\":3}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"target\",\"item_id\":\"fc_029b7db2fc0aee2900698e16c831088190b0d32ec514a87c6e\",\"obfuscation\":\"jXaOeUH8OR\",\"output_index\":0,\"sequence_number\":4}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\":\\\"\",\"item_id\":\"fc_029b7db2fc0aee2900698e16c831088190b0d32ec514a87c6e\",\"obfuscation\":\"5soUbKrdRoe0a\",\"output_index\":0,\"sequence_number\":5}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Dow\",\"item_id\":\"fc_029b7db2fc0aee2900698e16c831088190b0d32ec514a87c6e\",\"obfuscation\":\"zqqVK5xaP5TUR\",\"output_index\":0,\"sequence_number\":6}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\",\\\"\",\"item_id\":\"fc_029b7db2fc0aee2900698e16c831088190b0d32ec514a87c6e\",\"obfuscation\":\"2WVGdKgPtpZ0N\",\"output_index\":0,\"sequence_number\":7}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"replacement\",\"item_id\":\"fc_029b7db2fc0aee2900698e16c831088190b0d32ec514a87c6e\",\"obfuscation\":\"AlyLh\",\"output_index\":0,\"sequence_number\":8}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\":\\\"\",\"item_id\":\"fc_029b7db2fc0aee2900698e16c831088190b0d32ec514a87c6e\",\"obfuscation\":\"4DTSi7K5Vs6ZC\",\"output_index\":0,\"sequence_number\":9}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"How\",\"item_id\":\"fc_029b7db2fc0aee2900698e16c831088190b0d32ec514a87c6e\",\"obfuscation\":\"OBKwkRZglHrXN\",\"output_index\":0,\"sequence_number\":10}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\"}\",\"item_id\":\"fc_029b7db2fc0aee2900698e16c831088190b0d32ec514a87c6e\",\"obfuscation\":\"VXRKsbrqZbX8wT\",\"output_index\":0,\"sequence_number\":11}\n\nevent: response.function_call_arguments.done\ndata: {\"type\":\"response.function_call_arguments.done\",\"arguments\":\"{\\\"target\\\":\\\"Dow\\\",\\\"replacement\\\":\\\"How\\\"}\",\"item_id\":\"fc_029b7db2fc0aee2900698e16c831088190b0d32ec514a87c6e\",\"output_index\":0,\"sequence_number\":12}\n\nevent: response.output_item.done\ndata: {\"type\":\"response.output_item.done\",\"item\":{\"id\":\"fc_029b7db2fc0aee2900698e16c831088190b0d32ec514a87c6e\",\"type\":\"function_call\",\"status\":\"completed\",\"arguments\":\"{\\\"target\\\":\\\"Dow\\\",\\\"replacement\\\":\\\"How\\\"}\",\"call_id\":\"call_ar9tG9QP3jnsq5CUOqxrXrSk\",\"name\":\"file_replace\"},\"output_index\":0,\"sequence_number\":13}\n\nevent: response.completed\ndata: {\"type\":\"response.completed\",\"response\":{\"id\":\"resp_029b7db2fc0aee2900698e16c7c0d4819090222bc34004eb6d\",\"object\":\"response\",\"created_at\":1770919623,\"status\":\"completed\",\"background\":false,\"completed_at\":1770919624,\"error\":null,\"frequency_penalty\":0.0,\"incomplete_details\":null,\"instructions\":null,\"max_output_tokens\":null,\"max_tool_calls\":null,\"model\":\"gpt-4o-2024-08-06\",\"output\":[{\"id\":\"fc_029b7db2fc0aee2900698e16c831088190b0d32ec514a87c6e\",\"type\":\"function_call\",\"status\":\"completed\",\"arguments\":\"{\\\"target\\\":\\\"Dow\\\",\\\"replacement\\\":\\\"How\\\"}\",\"call_id\":\"call_ar9tG9QP3jnsq5CUOqxrXrSk\",\"name\":\"file_replace\"}],\"parallel_tool_calls\":true,\"presence_penalty\":0.0,\"previous_response_id\":null,\"prompt_cache_key\":null,\"prompt_cache_retention\":null,\"reasoning\":{\"effort\":null,\"summary\":null},\"safety_identifier\":null,\"service_tier\":\"default\",\"store\":true,\"temperature\":1.0,\"text\":{\"format\":{\"type\":\"text\"},\"verbosity\":\"medium\"},\"tool_choice\":\"required\",\"tools\":[{\"type\":\"function\",\"description\":null,\"name\":\"file_replace\",\"parameters\":{\"type\":\"object\",\"properties\":{\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"target\",\"replacement\"],\"additionalProperties\":false},\"strict\":true}],\"top_logprobs\":0,\"top_p\":1.0,\"truncation\":\"disabled\",\"usage\":{\"input_tokens\":234,\"input_tokens_details\":{\"cached_tokens\":0},\"output_tokens\":10,\"output_tokens_details\":{\"reasoning_tokens\":0},\"total_tokens\":244},\"user\":null,\"metadata\":{}},\"sequence_number\":14}\n\n", + "headers": [] + } +} \ No newline at end of file diff --git a/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/fix spelling mid-word selection_1_8a82739cf497d1566327d1fe0e748f58.json b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/fix spelling mid-word selection_1_8a82739cf497d1566327d1fe0e748f58.json new file mode 100644 index 0000000000..d83dfb0c58 --- /dev/null +++ b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/fix spelling mid-word selection_1_8a82739cf497d1566327d1fe0e748f58.json @@ -0,0 +1,15 @@ +{ + "request": { + "method": "POST", + "url": "https://api.openai.com/v1/responses", + "body": "{\"model\":\"gpt-4o-2024-08-06\",\"input\":[{\"role\":\"system\",\"content\":\"You are manipulating a text document using TSX components.\\nEach block is represented as a TSX component with props.\\n\"},{\"role\":\"assistant\",\"content\":[{\"type\":\"output_text\",\"text\":\"This is the latest state of the selection (ignore previous selections, you MUST issue operations against this latest version of the selection):\"}]},{\"role\":\"assistant\",\"content\":[{\"type\":\"output_text\",\"text\":\"[{\\\"id\\\":\\\"ref1$\\\",\\\"block\\\":\\\"Hello, world! Dow are you?\\\"}]\"}]},{\"role\":\"assistant\",\"content\":[{\"type\":\"output_text\",\"text\":\"This is the latest state of the entire document (INCLUDING the selected text), \\nyou can use this to find the selected text to understand the context (but you MUST NOT issue operations against this document, you MUST issue operations against the selection):\"}]},{\"role\":\"assistant\",\"content\":[{\"type\":\"output_text\",\"text\":\"[{\\\"block\\\":\\\"Hello, world! Dow are you?\\\"}]\"}]},{\"role\":\"user\",\"content\":[{\"type\":\"input_text\",\"text\":\"fix spelling\"}]}],\"tools\":[{\"type\":\"function\",\"name\":\"applyDocumentOperations\",\"parameters\":{\"type\":\"object\",\"properties\":{\"operations\":{\"type\":\"array\",\"items\":{\"anyOf\":[{\"type\":\"object\",\"description\":\"Replace a part of the document file\",\"properties\":{\"type\":{\"type\":\"string\",\"enum\":[\"file_replace\"]},\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"type\",\"target\",\"replacement\"],\"additionalProperties\":false}]}}},\"additionalProperties\":false,\"required\":[\"operations\"]}}],\"tool_choice\":\"required\",\"stream\":true}", + "headers": [], + "cookies": [] + }, + "response": { + "status": 200, + "statusText": "", + "body": "event: response.created\ndata: {\"type\":\"response.created\",\"response\":{\"id\":\"resp_0b1243216d3bfa9b00698cd827a8b481938ceba9715088b5c6\",\"object\":\"response\",\"created_at\":1770838055,\"status\":\"in_progress\",\"background\":false,\"completed_at\":null,\"error\":null,\"frequency_penalty\":0.0,\"incomplete_details\":null,\"instructions\":null,\"max_output_tokens\":null,\"max_tool_calls\":null,\"model\":\"gpt-4o-2024-08-06\",\"output\":[],\"parallel_tool_calls\":true,\"presence_penalty\":0.0,\"previous_response_id\":null,\"prompt_cache_key\":null,\"prompt_cache_retention\":null,\"reasoning\":{\"effort\":null,\"summary\":null},\"safety_identifier\":null,\"service_tier\":\"auto\",\"store\":true,\"temperature\":1.0,\"text\":{\"format\":{\"type\":\"text\"},\"verbosity\":\"medium\"},\"tool_choice\":\"required\",\"tools\":[{\"type\":\"function\",\"description\":null,\"name\":\"applyDocumentOperations\",\"parameters\":{\"type\":\"object\",\"properties\":{\"operations\":{\"type\":\"array\",\"items\":{\"anyOf\":[{\"type\":\"object\",\"description\":\"Replace a part of the document file\",\"properties\":{\"type\":{\"type\":\"string\",\"enum\":[\"file_replace\"]},\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"type\",\"target\",\"replacement\"],\"additionalProperties\":false}]}}},\"additionalProperties\":false,\"required\":[\"operations\"]},\"strict\":true}],\"top_logprobs\":0,\"top_p\":1.0,\"truncation\":\"disabled\",\"usage\":null,\"user\":null,\"metadata\":{}},\"sequence_number\":0}\n\nevent: response.in_progress\ndata: {\"type\":\"response.in_progress\",\"response\":{\"id\":\"resp_0b1243216d3bfa9b00698cd827a8b481938ceba9715088b5c6\",\"object\":\"response\",\"created_at\":1770838055,\"status\":\"in_progress\",\"background\":false,\"completed_at\":null,\"error\":null,\"frequency_penalty\":0.0,\"incomplete_details\":null,\"instructions\":null,\"max_output_tokens\":null,\"max_tool_calls\":null,\"model\":\"gpt-4o-2024-08-06\",\"output\":[],\"parallel_tool_calls\":true,\"presence_penalty\":0.0,\"previous_response_id\":null,\"prompt_cache_key\":null,\"prompt_cache_retention\":null,\"reasoning\":{\"effort\":null,\"summary\":null},\"safety_identifier\":null,\"service_tier\":\"auto\",\"store\":true,\"temperature\":1.0,\"text\":{\"format\":{\"type\":\"text\"},\"verbosity\":\"medium\"},\"tool_choice\":\"required\",\"tools\":[{\"type\":\"function\",\"description\":null,\"name\":\"applyDocumentOperations\",\"parameters\":{\"type\":\"object\",\"properties\":{\"operations\":{\"type\":\"array\",\"items\":{\"anyOf\":[{\"type\":\"object\",\"description\":\"Replace a part of the document file\",\"properties\":{\"type\":{\"type\":\"string\",\"enum\":[\"file_replace\"]},\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"type\",\"target\",\"replacement\"],\"additionalProperties\":false}]}}},\"additionalProperties\":false,\"required\":[\"operations\"]},\"strict\":true}],\"top_logprobs\":0,\"top_p\":1.0,\"truncation\":\"disabled\",\"usage\":null,\"user\":null,\"metadata\":{}},\"sequence_number\":1}\n\nevent: response.output_item.added\ndata: {\"type\":\"response.output_item.added\",\"item\":{\"id\":\"fc_0b1243216d3bfa9b00698cd8282f40819385afe52249fdd3ac\",\"type\":\"function_call\",\"status\":\"in_progress\",\"arguments\":\"\",\"call_id\":\"call_23B7P32ICyfRavtFyslF9wj6\",\"name\":\"applyDocumentOperations\"},\"output_index\":0,\"sequence_number\":2}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"{\\\"\",\"item_id\":\"fc_0b1243216d3bfa9b00698cd8282f40819385afe52249fdd3ac\",\"obfuscation\":\"8LHfmj4Q4MOPdQ\",\"output_index\":0,\"sequence_number\":3}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"operations\",\"item_id\":\"fc_0b1243216d3bfa9b00698cd8282f40819385afe52249fdd3ac\",\"obfuscation\":\"6sLLYx\",\"output_index\":0,\"sequence_number\":4}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\":[\",\"item_id\":\"fc_0b1243216d3bfa9b00698cd8282f40819385afe52249fdd3ac\",\"obfuscation\":\"jlSD6iscrccjt\",\"output_index\":0,\"sequence_number\":5}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"{\\\"\",\"item_id\":\"fc_0b1243216d3bfa9b00698cd8282f40819385afe52249fdd3ac\",\"obfuscation\":\"EzQjB0deVIvs0P\",\"output_index\":0,\"sequence_number\":6}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"type\",\"item_id\":\"fc_0b1243216d3bfa9b00698cd8282f40819385afe52249fdd3ac\",\"obfuscation\":\"AtrN4LsQuokT\",\"output_index\":0,\"sequence_number\":7}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\":\\\"\",\"item_id\":\"fc_0b1243216d3bfa9b00698cd8282f40819385afe52249fdd3ac\",\"obfuscation\":\"wWKKwTaFJnfNv\",\"output_index\":0,\"sequence_number\":8}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"file\",\"item_id\":\"fc_0b1243216d3bfa9b00698cd8282f40819385afe52249fdd3ac\",\"obfuscation\":\"jdpv35M3BjI0\",\"output_index\":0,\"sequence_number\":9}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"_replace\",\"item_id\":\"fc_0b1243216d3bfa9b00698cd8282f40819385afe52249fdd3ac\",\"obfuscation\":\"mBRtr5at\",\"output_index\":0,\"sequence_number\":10}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\",\\\"\",\"item_id\":\"fc_0b1243216d3bfa9b00698cd8282f40819385afe52249fdd3ac\",\"obfuscation\":\"q5blEQf8vX758\",\"output_index\":0,\"sequence_number\":11}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"target\",\"item_id\":\"fc_0b1243216d3bfa9b00698cd8282f40819385afe52249fdd3ac\",\"obfuscation\":\"A3sHMCVY9I\",\"output_index\":0,\"sequence_number\":12}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\":\\\"\",\"item_id\":\"fc_0b1243216d3bfa9b00698cd8282f40819385afe52249fdd3ac\",\"obfuscation\":\"yVhIybHV0Ic9H\",\"output_index\":0,\"sequence_number\":13}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Dow\",\"item_id\":\"fc_0b1243216d3bfa9b00698cd8282f40819385afe52249fdd3ac\",\"obfuscation\":\"UbHbuUNsNnLrE\",\"output_index\":0,\"sequence_number\":14}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" are\",\"item_id\":\"fc_0b1243216d3bfa9b00698cd8282f40819385afe52249fdd3ac\",\"obfuscation\":\"31kHU7XN453f\",\"output_index\":0,\"sequence_number\":15}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" you\",\"item_id\":\"fc_0b1243216d3bfa9b00698cd8282f40819385afe52249fdd3ac\",\"obfuscation\":\"q2LCqUxNidmz\",\"output_index\":0,\"sequence_number\":16}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\",\\\"\",\"item_id\":\"fc_0b1243216d3bfa9b00698cd8282f40819385afe52249fdd3ac\",\"obfuscation\":\"yFz5BUKulMuaU\",\"output_index\":0,\"sequence_number\":17}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"replacement\",\"item_id\":\"fc_0b1243216d3bfa9b00698cd8282f40819385afe52249fdd3ac\",\"obfuscation\":\"Jysd8\",\"output_index\":0,\"sequence_number\":18}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\":\\\"\",\"item_id\":\"fc_0b1243216d3bfa9b00698cd8282f40819385afe52249fdd3ac\",\"obfuscation\":\"F4oFEMLVU7byN\",\"output_index\":0,\"sequence_number\":19}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"How\",\"item_id\":\"fc_0b1243216d3bfa9b00698cd8282f40819385afe52249fdd3ac\",\"obfuscation\":\"9BYyIlF89ujib\",\"output_index\":0,\"sequence_number\":20}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" are\",\"item_id\":\"fc_0b1243216d3bfa9b00698cd8282f40819385afe52249fdd3ac\",\"obfuscation\":\"w2oXz9kbmKel\",\"output_index\":0,\"sequence_number\":21}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" you\",\"item_id\":\"fc_0b1243216d3bfa9b00698cd8282f40819385afe52249fdd3ac\",\"obfuscation\":\"8FkiXrufBqZQ\",\"output_index\":0,\"sequence_number\":22}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\"}\",\"item_id\":\"fc_0b1243216d3bfa9b00698cd8282f40819385afe52249fdd3ac\",\"obfuscation\":\"BB0aQXO3oloKAl\",\"output_index\":0,\"sequence_number\":23}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"]}\",\"item_id\":\"fc_0b1243216d3bfa9b00698cd8282f40819385afe52249fdd3ac\",\"obfuscation\":\"JPxUqMAzJY2ykX\",\"output_index\":0,\"sequence_number\":24}\n\nevent: response.function_call_arguments.done\ndata: {\"type\":\"response.function_call_arguments.done\",\"arguments\":\"{\\\"operations\\\":[{\\\"type\\\":\\\"file_replace\\\",\\\"target\\\":\\\"Dow are you\\\",\\\"replacement\\\":\\\"How are you\\\"}]}\",\"item_id\":\"fc_0b1243216d3bfa9b00698cd8282f40819385afe52249fdd3ac\",\"output_index\":0,\"sequence_number\":25}\n\nevent: response.output_item.done\ndata: {\"type\":\"response.output_item.done\",\"item\":{\"id\":\"fc_0b1243216d3bfa9b00698cd8282f40819385afe52249fdd3ac\",\"type\":\"function_call\",\"status\":\"completed\",\"arguments\":\"{\\\"operations\\\":[{\\\"type\\\":\\\"file_replace\\\",\\\"target\\\":\\\"Dow are you\\\",\\\"replacement\\\":\\\"How are you\\\"}]}\",\"call_id\":\"call_23B7P32ICyfRavtFyslF9wj6\",\"name\":\"applyDocumentOperations\"},\"output_index\":0,\"sequence_number\":26}\n\nevent: response.completed\ndata: {\"type\":\"response.completed\",\"response\":{\"id\":\"resp_0b1243216d3bfa9b00698cd827a8b481938ceba9715088b5c6\",\"object\":\"response\",\"created_at\":1770838055,\"status\":\"completed\",\"background\":false,\"completed_at\":1770838056,\"error\":null,\"frequency_penalty\":0.0,\"incomplete_details\":null,\"instructions\":null,\"max_output_tokens\":null,\"max_tool_calls\":null,\"model\":\"gpt-4o-2024-08-06\",\"output\":[{\"id\":\"fc_0b1243216d3bfa9b00698cd8282f40819385afe52249fdd3ac\",\"type\":\"function_call\",\"status\":\"completed\",\"arguments\":\"{\\\"operations\\\":[{\\\"type\\\":\\\"file_replace\\\",\\\"target\\\":\\\"Dow are you\\\",\\\"replacement\\\":\\\"How are you\\\"}]}\",\"call_id\":\"call_23B7P32ICyfRavtFyslF9wj6\",\"name\":\"applyDocumentOperations\"}],\"parallel_tool_calls\":true,\"presence_penalty\":0.0,\"previous_response_id\":null,\"prompt_cache_key\":null,\"prompt_cache_retention\":null,\"reasoning\":{\"effort\":null,\"summary\":null},\"safety_identifier\":null,\"service_tier\":\"default\",\"store\":true,\"temperature\":1.0,\"text\":{\"format\":{\"type\":\"text\"},\"verbosity\":\"medium\"},\"tool_choice\":\"required\",\"tools\":[{\"type\":\"function\",\"description\":null,\"name\":\"applyDocumentOperations\",\"parameters\":{\"type\":\"object\",\"properties\":{\"operations\":{\"type\":\"array\",\"items\":{\"anyOf\":[{\"type\":\"object\",\"description\":\"Replace a part of the document file\",\"properties\":{\"type\":{\"type\":\"string\",\"enum\":[\"file_replace\"]},\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"type\",\"target\",\"replacement\"],\"additionalProperties\":false}]}}},\"additionalProperties\":false,\"required\":[\"operations\"]},\"strict\":true}],\"top_logprobs\":0,\"top_p\":1.0,\"truncation\":\"disabled\",\"usage\":{\"input_tokens\":259,\"input_tokens_details\":{\"cached_tokens\":0},\"output_tokens\":23,\"output_tokens_details\":{\"reasoning_tokens\":0},\"total_tokens\":282},\"user\":null,\"metadata\":{}},\"sequence_number\":27}\n\n", + "headers": [] + } +} \ No newline at end of file diff --git a/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/modify nested content_1_ce33bc467950fe7a62a714bf8918f342.json b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/modify nested content_1_ce33bc467950fe7a62a714bf8918f342.json new file mode 100644 index 0000000000..29604d8652 --- /dev/null +++ b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/modify nested content_1_ce33bc467950fe7a62a714bf8918f342.json @@ -0,0 +1,15 @@ +{ + "request": { + "method": "POST", + "url": "https://api.openai.com/v1/responses", + "body": "{\"model\":\"gpt-4o-2024-08-06\",\"input\":[{\"role\":\"system\",\"content\":\"You are manipulating a text document using TSX components.\\nEach block is represented as a TSX component with props.\\n\"},{\"role\":\"assistant\",\"content\":[{\"type\":\"output_text\",\"text\":\"There is no active selection. This is the latest state of the document (ignore previous documents, you MUST issue operations against this latest version of the document). \\nThe cursor is BETWEEN two blocks as indicated by cursor: true.\\nPrefer updating existing blocks over removing and adding (but this also depends on the user's question).\"}]},{\"role\":\"assistant\",\"content\":[{\"type\":\"output_text\",\"text\":\"{\\\"selection\\\":false,\\\"blocks\\\":[{\\\"id\\\":\\\"ref1$\\\",\\\"block\\\":\\\"I need to buy:\\\"},{\\\"cursor\\\":true},{\\\"id\\\":\\\"ref2$\\\",\\\"block\\\":\\\"Apples\\\"}],\\\"isEmptyDocument\\\":false}\"}]},{\"role\":\"user\",\"content\":[{\"type\":\"input_text\",\"text\":\"make apples uppercase\"}]}],\"tools\":[{\"type\":\"function\",\"name\":\"applyDocumentOperations\",\"parameters\":{\"type\":\"object\",\"properties\":{\"operations\":{\"type\":\"array\",\"items\":{\"anyOf\":[{\"type\":\"object\",\"description\":\"Replace a part of the document file\",\"properties\":{\"type\":{\"type\":\"string\",\"enum\":[\"file_replace\"]},\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"type\",\"target\",\"replacement\"],\"additionalProperties\":false}]}}},\"additionalProperties\":false,\"required\":[\"operations\"]}}],\"tool_choice\":\"required\",\"stream\":true}", + "headers": [], + "cookies": [] + }, + "response": { + "status": 200, + "statusText": "", + "body": "event: response.created\ndata: {\"type\":\"response.created\",\"response\":{\"id\":\"resp_087067d7cb35199800698cd82a6810819495e6aee592fca834\",\"object\":\"response\",\"created_at\":1770838058,\"status\":\"in_progress\",\"background\":false,\"completed_at\":null,\"error\":null,\"frequency_penalty\":0.0,\"incomplete_details\":null,\"instructions\":null,\"max_output_tokens\":null,\"max_tool_calls\":null,\"model\":\"gpt-4o-2024-08-06\",\"output\":[],\"parallel_tool_calls\":true,\"presence_penalty\":0.0,\"previous_response_id\":null,\"prompt_cache_key\":null,\"prompt_cache_retention\":null,\"reasoning\":{\"effort\":null,\"summary\":null},\"safety_identifier\":null,\"service_tier\":\"auto\",\"store\":true,\"temperature\":1.0,\"text\":{\"format\":{\"type\":\"text\"},\"verbosity\":\"medium\"},\"tool_choice\":\"required\",\"tools\":[{\"type\":\"function\",\"description\":null,\"name\":\"applyDocumentOperations\",\"parameters\":{\"type\":\"object\",\"properties\":{\"operations\":{\"type\":\"array\",\"items\":{\"anyOf\":[{\"type\":\"object\",\"description\":\"Replace a part of the document file\",\"properties\":{\"type\":{\"type\":\"string\",\"enum\":[\"file_replace\"]},\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"type\",\"target\",\"replacement\"],\"additionalProperties\":false}]}}},\"additionalProperties\":false,\"required\":[\"operations\"]},\"strict\":true}],\"top_logprobs\":0,\"top_p\":1.0,\"truncation\":\"disabled\",\"usage\":null,\"user\":null,\"metadata\":{}},\"sequence_number\":0}\n\nevent: response.in_progress\ndata: {\"type\":\"response.in_progress\",\"response\":{\"id\":\"resp_087067d7cb35199800698cd82a6810819495e6aee592fca834\",\"object\":\"response\",\"created_at\":1770838058,\"status\":\"in_progress\",\"background\":false,\"completed_at\":null,\"error\":null,\"frequency_penalty\":0.0,\"incomplete_details\":null,\"instructions\":null,\"max_output_tokens\":null,\"max_tool_calls\":null,\"model\":\"gpt-4o-2024-08-06\",\"output\":[],\"parallel_tool_calls\":true,\"presence_penalty\":0.0,\"previous_response_id\":null,\"prompt_cache_key\":null,\"prompt_cache_retention\":null,\"reasoning\":{\"effort\":null,\"summary\":null},\"safety_identifier\":null,\"service_tier\":\"auto\",\"store\":true,\"temperature\":1.0,\"text\":{\"format\":{\"type\":\"text\"},\"verbosity\":\"medium\"},\"tool_choice\":\"required\",\"tools\":[{\"type\":\"function\",\"description\":null,\"name\":\"applyDocumentOperations\",\"parameters\":{\"type\":\"object\",\"properties\":{\"operations\":{\"type\":\"array\",\"items\":{\"anyOf\":[{\"type\":\"object\",\"description\":\"Replace a part of the document file\",\"properties\":{\"type\":{\"type\":\"string\",\"enum\":[\"file_replace\"]},\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"type\",\"target\",\"replacement\"],\"additionalProperties\":false}]}}},\"additionalProperties\":false,\"required\":[\"operations\"]},\"strict\":true}],\"top_logprobs\":0,\"top_p\":1.0,\"truncation\":\"disabled\",\"usage\":null,\"user\":null,\"metadata\":{}},\"sequence_number\":1}\n\nevent: response.output_item.added\ndata: {\"type\":\"response.output_item.added\",\"item\":{\"id\":\"fc_087067d7cb35199800698cd82acdf88194b13e6fc3a69fa730\",\"type\":\"function_call\",\"status\":\"in_progress\",\"arguments\":\"\",\"call_id\":\"call_cDpnXxLBSHF47qrEU5sEgkFa\",\"name\":\"applyDocumentOperations\"},\"output_index\":0,\"sequence_number\":2}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"{\\\"\",\"item_id\":\"fc_087067d7cb35199800698cd82acdf88194b13e6fc3a69fa730\",\"obfuscation\":\"qDojbQNBypAmMK\",\"output_index\":0,\"sequence_number\":3}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"operations\",\"item_id\":\"fc_087067d7cb35199800698cd82acdf88194b13e6fc3a69fa730\",\"obfuscation\":\"f1IkdJ\",\"output_index\":0,\"sequence_number\":4}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\":[\",\"item_id\":\"fc_087067d7cb35199800698cd82acdf88194b13e6fc3a69fa730\",\"obfuscation\":\"I0gepvZEdxdIN\",\"output_index\":0,\"sequence_number\":5}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"{\\\"\",\"item_id\":\"fc_087067d7cb35199800698cd82acdf88194b13e6fc3a69fa730\",\"obfuscation\":\"z0Yjndsy7ij73a\",\"output_index\":0,\"sequence_number\":6}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"type\",\"item_id\":\"fc_087067d7cb35199800698cd82acdf88194b13e6fc3a69fa730\",\"obfuscation\":\"0cF29NErSwRs\",\"output_index\":0,\"sequence_number\":7}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\":\\\"\",\"item_id\":\"fc_087067d7cb35199800698cd82acdf88194b13e6fc3a69fa730\",\"obfuscation\":\"OjBFSfwg0YREb\",\"output_index\":0,\"sequence_number\":8}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"file\",\"item_id\":\"fc_087067d7cb35199800698cd82acdf88194b13e6fc3a69fa730\",\"obfuscation\":\"1mJclpGZB9p0\",\"output_index\":0,\"sequence_number\":9}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"_replace\",\"item_id\":\"fc_087067d7cb35199800698cd82acdf88194b13e6fc3a69fa730\",\"obfuscation\":\"yj8pv183\",\"output_index\":0,\"sequence_number\":10}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\",\\\"\",\"item_id\":\"fc_087067d7cb35199800698cd82acdf88194b13e6fc3a69fa730\",\"obfuscation\":\"j75AUFufDdCMv\",\"output_index\":0,\"sequence_number\":11}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"target\",\"item_id\":\"fc_087067d7cb35199800698cd82acdf88194b13e6fc3a69fa730\",\"obfuscation\":\"OCEgEWjcxT\",\"output_index\":0,\"sequence_number\":12}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\":\\\"\",\"item_id\":\"fc_087067d7cb35199800698cd82acdf88194b13e6fc3a69fa730\",\"obfuscation\":\"47hvqKi6rBP8K\",\"output_index\":0,\"sequence_number\":13}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Ap\",\"item_id\":\"fc_087067d7cb35199800698cd82acdf88194b13e6fc3a69fa730\",\"obfuscation\":\"hG4kRGT7t9UiYL\",\"output_index\":0,\"sequence_number\":14}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"ples\",\"item_id\":\"fc_087067d7cb35199800698cd82acdf88194b13e6fc3a69fa730\",\"obfuscation\":\"XCLG1CWbDu9I\",\"output_index\":0,\"sequence_number\":15}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\",\\\"\",\"item_id\":\"fc_087067d7cb35199800698cd82acdf88194b13e6fc3a69fa730\",\"obfuscation\":\"8ZDj0wccpe81i\",\"output_index\":0,\"sequence_number\":16}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"replacement\",\"item_id\":\"fc_087067d7cb35199800698cd82acdf88194b13e6fc3a69fa730\",\"obfuscation\":\"KXjZW\",\"output_index\":0,\"sequence_number\":17}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\":\\\"\",\"item_id\":\"fc_087067d7cb35199800698cd82acdf88194b13e6fc3a69fa730\",\"obfuscation\":\"E9Os99EGGmK7O\",\"output_index\":0,\"sequence_number\":18}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"APP\",\"item_id\":\"fc_087067d7cb35199800698cd82acdf88194b13e6fc3a69fa730\",\"obfuscation\":\"MYSXpXcS7nZ7d\",\"output_index\":0,\"sequence_number\":19}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"LES\",\"item_id\":\"fc_087067d7cb35199800698cd82acdf88194b13e6fc3a69fa730\",\"obfuscation\":\"q01DAkaaDEupW\",\"output_index\":0,\"sequence_number\":20}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\"}\",\"item_id\":\"fc_087067d7cb35199800698cd82acdf88194b13e6fc3a69fa730\",\"obfuscation\":\"CUq2IhbSZigOCc\",\"output_index\":0,\"sequence_number\":21}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"]}\",\"item_id\":\"fc_087067d7cb35199800698cd82acdf88194b13e6fc3a69fa730\",\"obfuscation\":\"cp004TUTas0Rhi\",\"output_index\":0,\"sequence_number\":22}\n\nevent: response.function_call_arguments.done\ndata: {\"type\":\"response.function_call_arguments.done\",\"arguments\":\"{\\\"operations\\\":[{\\\"type\\\":\\\"file_replace\\\",\\\"target\\\":\\\"Apples\\\",\\\"replacement\\\":\\\"APPLES\\\"}]}\",\"item_id\":\"fc_087067d7cb35199800698cd82acdf88194b13e6fc3a69fa730\",\"output_index\":0,\"sequence_number\":23}\n\nevent: response.output_item.done\ndata: {\"type\":\"response.output_item.done\",\"item\":{\"id\":\"fc_087067d7cb35199800698cd82acdf88194b13e6fc3a69fa730\",\"type\":\"function_call\",\"status\":\"completed\",\"arguments\":\"{\\\"operations\\\":[{\\\"type\\\":\\\"file_replace\\\",\\\"target\\\":\\\"Apples\\\",\\\"replacement\\\":\\\"APPLES\\\"}]}\",\"call_id\":\"call_cDpnXxLBSHF47qrEU5sEgkFa\",\"name\":\"applyDocumentOperations\"},\"output_index\":0,\"sequence_number\":24}\n\nevent: response.completed\ndata: {\"type\":\"response.completed\",\"response\":{\"id\":\"resp_087067d7cb35199800698cd82a6810819495e6aee592fca834\",\"object\":\"response\",\"created_at\":1770838058,\"status\":\"completed\",\"background\":false,\"completed_at\":1770838059,\"error\":null,\"frequency_penalty\":0.0,\"incomplete_details\":null,\"instructions\":null,\"max_output_tokens\":null,\"max_tool_calls\":null,\"model\":\"gpt-4o-2024-08-06\",\"output\":[{\"id\":\"fc_087067d7cb35199800698cd82acdf88194b13e6fc3a69fa730\",\"type\":\"function_call\",\"status\":\"completed\",\"arguments\":\"{\\\"operations\\\":[{\\\"type\\\":\\\"file_replace\\\",\\\"target\\\":\\\"Apples\\\",\\\"replacement\\\":\\\"APPLES\\\"}]}\",\"call_id\":\"call_cDpnXxLBSHF47qrEU5sEgkFa\",\"name\":\"applyDocumentOperations\"}],\"parallel_tool_calls\":true,\"presence_penalty\":0.0,\"previous_response_id\":null,\"prompt_cache_key\":null,\"prompt_cache_retention\":null,\"reasoning\":{\"effort\":null,\"summary\":null},\"safety_identifier\":null,\"service_tier\":\"default\",\"store\":true,\"temperature\":1.0,\"text\":{\"format\":{\"type\":\"text\"},\"verbosity\":\"medium\"},\"tool_choice\":\"required\",\"tools\":[{\"type\":\"function\",\"description\":null,\"name\":\"applyDocumentOperations\",\"parameters\":{\"type\":\"object\",\"properties\":{\"operations\":{\"type\":\"array\",\"items\":{\"anyOf\":[{\"type\":\"object\",\"description\":\"Replace a part of the document file\",\"properties\":{\"type\":{\"type\":\"string\",\"enum\":[\"file_replace\"]},\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"type\",\"target\",\"replacement\"],\"additionalProperties\":false}]}}},\"additionalProperties\":false,\"required\":[\"operations\"]},\"strict\":true}],\"top_logprobs\":0,\"top_p\":1.0,\"truncation\":\"disabled\",\"usage\":{\"input_tokens\":253,\"input_tokens_details\":{\"cached_tokens\":0},\"output_tokens\":21,\"output_tokens_details\":{\"reasoning_tokens\":0},\"total_tokens\":274},\"user\":null,\"metadata\":{}},\"sequence_number\":25}\n\n", + "headers": [] + } +} \ No newline at end of file diff --git a/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/modify nested content_1_e66930d796500abae0df4d4a8a25ae48.json b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/modify nested content_1_e66930d796500abae0df4d4a8a25ae48.json new file mode 100644 index 0000000000..567344b4af --- /dev/null +++ b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/modify nested content_1_e66930d796500abae0df4d4a8a25ae48.json @@ -0,0 +1,15 @@ +{ + "request": { + "method": "POST", + "url": "https://api.openai.com/v1/responses", + "body": "{\"model\":\"gpt-4o-2024-08-06\",\"input\":[{\"role\":\"system\",\"content\":\"You are manipulating a text document using TSX components.\\nEach block is represented as a TSX component with props.\\n\"},{\"role\":\"assistant\",\"content\":[{\"type\":\"output_text\",\"text\":\"There is no active selection. This is the latest state of the document (ignore previous documents, you MUST issue operations against this latest version of the document). \\nThe cursor is BETWEEN two blocks as indicated by cursor: true.\\nPrefer updating existing blocks over removing and adding (but this also depends on the user's question).\"}]},{\"role\":\"assistant\",\"content\":[{\"type\":\"output_text\",\"text\":\"[{\\\"id\\\":\\\"ref1$\\\",\\\"block\\\":\\\"I need to buy:\\\"},{\\\"cursor\\\":true},{\\\"id\\\":\\\"ref2$\\\",\\\"block\\\":\\\"Apples\\\"}]\"}]},{\"role\":\"user\",\"content\":[{\"type\":\"input_text\",\"text\":\"make apples uppercase\"}]}],\"tools\":[{\"type\":\"function\",\"name\":\"file_replace\",\"parameters\":{\"type\":\"object\",\"properties\":{\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"target\",\"replacement\"]}}],\"tool_choice\":\"required\",\"stream\":true}", + "headers": [], + "cookies": [] + }, + "response": { + "status": 200, + "statusText": "", + "body": "event: response.created\ndata: {\"type\":\"response.created\",\"response\":{\"id\":\"resp_0ac07f5cf4bfc84800698e16c9d29c8190abb8aa66ae880233\",\"object\":\"response\",\"created_at\":1770919625,\"status\":\"in_progress\",\"background\":false,\"completed_at\":null,\"error\":null,\"frequency_penalty\":0.0,\"incomplete_details\":null,\"instructions\":null,\"max_output_tokens\":null,\"max_tool_calls\":null,\"model\":\"gpt-4o-2024-08-06\",\"output\":[],\"parallel_tool_calls\":true,\"presence_penalty\":0.0,\"previous_response_id\":null,\"prompt_cache_key\":null,\"prompt_cache_retention\":null,\"reasoning\":{\"effort\":null,\"summary\":null},\"safety_identifier\":null,\"service_tier\":\"auto\",\"store\":true,\"temperature\":1.0,\"text\":{\"format\":{\"type\":\"text\"},\"verbosity\":\"medium\"},\"tool_choice\":\"required\",\"tools\":[{\"type\":\"function\",\"description\":null,\"name\":\"file_replace\",\"parameters\":{\"type\":\"object\",\"properties\":{\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"target\",\"replacement\"],\"additionalProperties\":false},\"strict\":true}],\"top_logprobs\":0,\"top_p\":1.0,\"truncation\":\"disabled\",\"usage\":null,\"user\":null,\"metadata\":{}},\"sequence_number\":0}\n\nevent: response.in_progress\ndata: {\"type\":\"response.in_progress\",\"response\":{\"id\":\"resp_0ac07f5cf4bfc84800698e16c9d29c8190abb8aa66ae880233\",\"object\":\"response\",\"created_at\":1770919625,\"status\":\"in_progress\",\"background\":false,\"completed_at\":null,\"error\":null,\"frequency_penalty\":0.0,\"incomplete_details\":null,\"instructions\":null,\"max_output_tokens\":null,\"max_tool_calls\":null,\"model\":\"gpt-4o-2024-08-06\",\"output\":[],\"parallel_tool_calls\":true,\"presence_penalty\":0.0,\"previous_response_id\":null,\"prompt_cache_key\":null,\"prompt_cache_retention\":null,\"reasoning\":{\"effort\":null,\"summary\":null},\"safety_identifier\":null,\"service_tier\":\"auto\",\"store\":true,\"temperature\":1.0,\"text\":{\"format\":{\"type\":\"text\"},\"verbosity\":\"medium\"},\"tool_choice\":\"required\",\"tools\":[{\"type\":\"function\",\"description\":null,\"name\":\"file_replace\",\"parameters\":{\"type\":\"object\",\"properties\":{\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"target\",\"replacement\"],\"additionalProperties\":false},\"strict\":true}],\"top_logprobs\":0,\"top_p\":1.0,\"truncation\":\"disabled\",\"usage\":null,\"user\":null,\"metadata\":{}},\"sequence_number\":1}\n\nevent: response.output_item.added\ndata: {\"type\":\"response.output_item.added\",\"item\":{\"id\":\"fc_0ac07f5cf4bfc84800698e16ca301c81909fedc209ed88d7ce\",\"type\":\"function_call\",\"status\":\"in_progress\",\"arguments\":\"\",\"call_id\":\"call_IR9UDmyb5ngmD9Rhj7nnLxWi\",\"name\":\"file_replace\"},\"output_index\":0,\"sequence_number\":2}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"{\\\"\",\"item_id\":\"fc_0ac07f5cf4bfc84800698e16ca301c81909fedc209ed88d7ce\",\"obfuscation\":\"UdPxEq1haAipMM\",\"output_index\":0,\"sequence_number\":3}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"target\",\"item_id\":\"fc_0ac07f5cf4bfc84800698e16ca301c81909fedc209ed88d7ce\",\"obfuscation\":\"dWoQFdVB1J\",\"output_index\":0,\"sequence_number\":4}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\":\\\"\",\"item_id\":\"fc_0ac07f5cf4bfc84800698e16ca301c81909fedc209ed88d7ce\",\"obfuscation\":\"I5pjPj3Rmsg4P\",\"output_index\":0,\"sequence_number\":5}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Ap\",\"item_id\":\"fc_0ac07f5cf4bfc84800698e16ca301c81909fedc209ed88d7ce\",\"obfuscation\":\"2sFUjWBsf0HDvX\",\"output_index\":0,\"sequence_number\":6}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"ples\",\"item_id\":\"fc_0ac07f5cf4bfc84800698e16ca301c81909fedc209ed88d7ce\",\"obfuscation\":\"OGEC2bafMvzF\",\"output_index\":0,\"sequence_number\":7}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\",\\\"\",\"item_id\":\"fc_0ac07f5cf4bfc84800698e16ca301c81909fedc209ed88d7ce\",\"obfuscation\":\"BQZVKlJ6mOdc1\",\"output_index\":0,\"sequence_number\":8}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"replacement\",\"item_id\":\"fc_0ac07f5cf4bfc84800698e16ca301c81909fedc209ed88d7ce\",\"obfuscation\":\"NQktS\",\"output_index\":0,\"sequence_number\":9}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\":\\\"\",\"item_id\":\"fc_0ac07f5cf4bfc84800698e16ca301c81909fedc209ed88d7ce\",\"obfuscation\":\"O6Bd3Qrc4eunZ\",\"output_index\":0,\"sequence_number\":10}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"APP\",\"item_id\":\"fc_0ac07f5cf4bfc84800698e16ca301c81909fedc209ed88d7ce\",\"obfuscation\":\"3tKjEuqevSVay\",\"output_index\":0,\"sequence_number\":11}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"LES\",\"item_id\":\"fc_0ac07f5cf4bfc84800698e16ca301c81909fedc209ed88d7ce\",\"obfuscation\":\"DTSf6FMJThRas\",\"output_index\":0,\"sequence_number\":12}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\"}\",\"item_id\":\"fc_0ac07f5cf4bfc84800698e16ca301c81909fedc209ed88d7ce\",\"obfuscation\":\"Qz7UjCge61RGDM\",\"output_index\":0,\"sequence_number\":13}\n\nevent: response.function_call_arguments.done\ndata: {\"type\":\"response.function_call_arguments.done\",\"arguments\":\"{\\\"target\\\":\\\"Apples\\\",\\\"replacement\\\":\\\"APPLES\\\"}\",\"item_id\":\"fc_0ac07f5cf4bfc84800698e16ca301c81909fedc209ed88d7ce\",\"output_index\":0,\"sequence_number\":14}\n\nevent: response.output_item.done\ndata: {\"type\":\"response.output_item.done\",\"item\":{\"id\":\"fc_0ac07f5cf4bfc84800698e16ca301c81909fedc209ed88d7ce\",\"type\":\"function_call\",\"status\":\"completed\",\"arguments\":\"{\\\"target\\\":\\\"Apples\\\",\\\"replacement\\\":\\\"APPLES\\\"}\",\"call_id\":\"call_IR9UDmyb5ngmD9Rhj7nnLxWi\",\"name\":\"file_replace\"},\"output_index\":0,\"sequence_number\":15}\n\nevent: response.completed\ndata: {\"type\":\"response.completed\",\"response\":{\"id\":\"resp_0ac07f5cf4bfc84800698e16c9d29c8190abb8aa66ae880233\",\"object\":\"response\",\"created_at\":1770919625,\"status\":\"completed\",\"background\":false,\"completed_at\":1770919626,\"error\":null,\"frequency_penalty\":0.0,\"incomplete_details\":null,\"instructions\":null,\"max_output_tokens\":null,\"max_tool_calls\":null,\"model\":\"gpt-4o-2024-08-06\",\"output\":[{\"id\":\"fc_0ac07f5cf4bfc84800698e16ca301c81909fedc209ed88d7ce\",\"type\":\"function_call\",\"status\":\"completed\",\"arguments\":\"{\\\"target\\\":\\\"Apples\\\",\\\"replacement\\\":\\\"APPLES\\\"}\",\"call_id\":\"call_IR9UDmyb5ngmD9Rhj7nnLxWi\",\"name\":\"file_replace\"}],\"parallel_tool_calls\":true,\"presence_penalty\":0.0,\"previous_response_id\":null,\"prompt_cache_key\":null,\"prompt_cache_retention\":null,\"reasoning\":{\"effort\":null,\"summary\":null},\"safety_identifier\":null,\"service_tier\":\"default\",\"store\":true,\"temperature\":1.0,\"text\":{\"format\":{\"type\":\"text\"},\"verbosity\":\"medium\"},\"tool_choice\":\"required\",\"tools\":[{\"type\":\"function\",\"description\":null,\"name\":\"file_replace\",\"parameters\":{\"type\":\"object\",\"properties\":{\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"target\",\"replacement\"],\"additionalProperties\":false},\"strict\":true}],\"top_logprobs\":0,\"top_p\":1.0,\"truncation\":\"disabled\",\"usage\":{\"input_tokens\":216,\"input_tokens_details\":{\"cached_tokens\":0},\"output_tokens\":12,\"output_tokens_details\":{\"reasoning_tokens\":0},\"total_tokens\":228},\"user\":null,\"metadata\":{}},\"sequence_number\":16}\n\n", + "headers": [] + } +} \ No newline at end of file diff --git a/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/modify parent content_1_1a7f1d7079a72f7ffd5c2634b6a9f6a5.json b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/modify parent content_1_1a7f1d7079a72f7ffd5c2634b6a9f6a5.json new file mode 100644 index 0000000000..24e83a975d --- /dev/null +++ b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/modify parent content_1_1a7f1d7079a72f7ffd5c2634b6a9f6a5.json @@ -0,0 +1,15 @@ +{ + "request": { + "method": "POST", + "url": "https://api.openai.com/v1/responses", + "body": "{\"model\":\"gpt-4o-2024-08-06\",\"input\":[{\"role\":\"system\",\"content\":\"You are manipulating a text document using TSX components.\\nEach block is represented as a TSX component with props.\\n\"},{\"role\":\"assistant\",\"content\":[{\"type\":\"output_text\",\"text\":\"There is no active selection. This is the latest state of the document (ignore previous documents, you MUST issue operations against this latest version of the document). \\nThe cursor is BETWEEN two blocks as indicated by cursor: true.\\nPrefer updating existing blocks over removing and adding (but this also depends on the user's question).\"}]},{\"role\":\"assistant\",\"content\":[{\"type\":\"output_text\",\"text\":\"[{\\\"id\\\":\\\"ref1$\\\",\\\"block\\\":\\\"I need to buy:\\\"},{\\\"cursor\\\":true},{\\\"id\\\":\\\"ref2$\\\",\\\"block\\\":\\\"Apples\\\"}]\"}]},{\"role\":\"user\",\"content\":[{\"type\":\"input_text\",\"text\":\"make the first paragraph uppercase\"}]}],\"tools\":[{\"type\":\"function\",\"name\":\"file_replace\",\"parameters\":{\"type\":\"object\",\"properties\":{\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"target\",\"replacement\"]}}],\"tool_choice\":\"required\",\"stream\":true}", + "headers": [], + "cookies": [] + }, + "response": { + "status": 200, + "statusText": "", + "body": "event: response.created\ndata: {\"type\":\"response.created\",\"response\":{\"id\":\"resp_0276c56691d02c0c00698e16ca9fd0819792dbed34251ad17d\",\"object\":\"response\",\"created_at\":1770919626,\"status\":\"in_progress\",\"background\":false,\"completed_at\":null,\"error\":null,\"frequency_penalty\":0.0,\"incomplete_details\":null,\"instructions\":null,\"max_output_tokens\":null,\"max_tool_calls\":null,\"model\":\"gpt-4o-2024-08-06\",\"output\":[],\"parallel_tool_calls\":true,\"presence_penalty\":0.0,\"previous_response_id\":null,\"prompt_cache_key\":null,\"prompt_cache_retention\":null,\"reasoning\":{\"effort\":null,\"summary\":null},\"safety_identifier\":null,\"service_tier\":\"auto\",\"store\":true,\"temperature\":1.0,\"text\":{\"format\":{\"type\":\"text\"},\"verbosity\":\"medium\"},\"tool_choice\":\"required\",\"tools\":[{\"type\":\"function\",\"description\":null,\"name\":\"file_replace\",\"parameters\":{\"type\":\"object\",\"properties\":{\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"target\",\"replacement\"],\"additionalProperties\":false},\"strict\":true}],\"top_logprobs\":0,\"top_p\":1.0,\"truncation\":\"disabled\",\"usage\":null,\"user\":null,\"metadata\":{}},\"sequence_number\":0}\n\nevent: response.in_progress\ndata: {\"type\":\"response.in_progress\",\"response\":{\"id\":\"resp_0276c56691d02c0c00698e16ca9fd0819792dbed34251ad17d\",\"object\":\"response\",\"created_at\":1770919626,\"status\":\"in_progress\",\"background\":false,\"completed_at\":null,\"error\":null,\"frequency_penalty\":0.0,\"incomplete_details\":null,\"instructions\":null,\"max_output_tokens\":null,\"max_tool_calls\":null,\"model\":\"gpt-4o-2024-08-06\",\"output\":[],\"parallel_tool_calls\":true,\"presence_penalty\":0.0,\"previous_response_id\":null,\"prompt_cache_key\":null,\"prompt_cache_retention\":null,\"reasoning\":{\"effort\":null,\"summary\":null},\"safety_identifier\":null,\"service_tier\":\"auto\",\"store\":true,\"temperature\":1.0,\"text\":{\"format\":{\"type\":\"text\"},\"verbosity\":\"medium\"},\"tool_choice\":\"required\",\"tools\":[{\"type\":\"function\",\"description\":null,\"name\":\"file_replace\",\"parameters\":{\"type\":\"object\",\"properties\":{\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"target\",\"replacement\"],\"additionalProperties\":false},\"strict\":true}],\"top_logprobs\":0,\"top_p\":1.0,\"truncation\":\"disabled\",\"usage\":null,\"user\":null,\"metadata\":{}},\"sequence_number\":1}\n\nevent: response.output_item.added\ndata: {\"type\":\"response.output_item.added\",\"item\":{\"id\":\"fc_0276c56691d02c0c00698e16cb0920819799603e3088d9662a\",\"type\":\"function_call\",\"status\":\"in_progress\",\"arguments\":\"\",\"call_id\":\"call_qHwkA86vmtLnvoju8Epk2jci\",\"name\":\"file_replace\"},\"output_index\":0,\"sequence_number\":2}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"{\\\"\",\"item_id\":\"fc_0276c56691d02c0c00698e16cb0920819799603e3088d9662a\",\"obfuscation\":\"c7ajREfW4yLVAp\",\"output_index\":0,\"sequence_number\":3}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"target\",\"item_id\":\"fc_0276c56691d02c0c00698e16cb0920819799603e3088d9662a\",\"obfuscation\":\"MIaHzcmUXv\",\"output_index\":0,\"sequence_number\":4}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\":\\\"\",\"item_id\":\"fc_0276c56691d02c0c00698e16cb0920819799603e3088d9662a\",\"obfuscation\":\"nCxmwnxY8L3xk\",\"output_index\":0,\"sequence_number\":5}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"<\",\"item_id\":\"fc_0276c56691d02c0c00698e16cb0920819799603e3088d9662a\",\"obfuscation\":\"mxKxiyUPN8DY9mO\",\"output_index\":0,\"sequence_number\":6}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Paragraph\",\"item_id\":\"fc_0276c56691d02c0c00698e16cb0920819799603e3088d9662a\",\"obfuscation\":\"saDIQsE\",\"output_index\":0,\"sequence_number\":7}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" text\",\"item_id\":\"fc_0276c56691d02c0c00698e16cb0920819799603e3088d9662a\",\"obfuscation\":\"YCVOK9BK8aN\",\"output_index\":0,\"sequence_number\":8}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Alignment\",\"item_id\":\"fc_0276c56691d02c0c00698e16cb0920819799603e3088d9662a\",\"obfuscation\":\"KKPTWjK\",\"output_index\":0,\"sequence_number\":9}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\\\\\\\"\",\"item_id\":\"fc_0276c56691d02c0c00698e16cb0920819799603e3088d9662a\",\"obfuscation\":\"tQvUMY9AiaBPU\",\"output_index\":0,\"sequence_number\":10}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"left\",\"item_id\":\"fc_0276c56691d02c0c00698e16cb0920819799603e3088d9662a\",\"obfuscation\":\"H6dqPzCyLEvD\",\"output_index\":0,\"sequence_number\":11}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\"\",\"item_id\":\"fc_0276c56691d02c0c00698e16cb0920819799603e3088d9662a\",\"obfuscation\":\"YIQJHcSsQ16Wp8\",\"output_index\":0,\"sequence_number\":12}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" id\",\"item_id\":\"fc_0276c56691d02c0c00698e16cb0920819799603e3088d9662a\",\"obfuscation\":\"c70tw7Wu9Au35\",\"output_index\":0,\"sequence_number\":13}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\\\\\\\"\",\"item_id\":\"fc_0276c56691d02c0c00698e16cb0920819799603e3088d9662a\",\"obfuscation\":\"1IvyOrqjdcGZ0\",\"output_index\":0,\"sequence_number\":14}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"ref\",\"item_id\":\"fc_0276c56691d02c0c00698e16cb0920819799603e3088d9662a\",\"obfuscation\":\"j2wAmmOZgMGuf\",\"output_index\":0,\"sequence_number\":15}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"1\",\"item_id\":\"fc_0276c56691d02c0c00698e16cb0920819799603e3088d9662a\",\"obfuscation\":\"2LB7fwzKfp4EXxL\",\"output_index\":0,\"sequence_number\":16}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\">\",\"item_id\":\"fc_0276c56691d02c0c00698e16cb0920819799603e3088d9662a\",\"obfuscation\":\"tS0zdTCoPkGqk\",\"output_index\":0,\"sequence_number\":17}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"I\",\"item_id\":\"fc_0276c56691d02c0c00698e16cb0920819799603e3088d9662a\",\"obfuscation\":\"z4rqZG1HE4tjphn\",\"output_index\":0,\"sequence_number\":18}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" need\",\"item_id\":\"fc_0276c56691d02c0c00698e16cb0920819799603e3088d9662a\",\"obfuscation\":\"gBb1ItcvvNA\",\"output_index\":0,\"sequence_number\":19}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" to\",\"item_id\":\"fc_0276c56691d02c0c00698e16cb0920819799603e3088d9662a\",\"obfuscation\":\"i4RwW1FZFZJ4z\",\"output_index\":0,\"sequence_number\":20}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" buy\",\"item_id\":\"fc_0276c56691d02c0c00698e16cb0920819799603e3088d9662a\",\"obfuscation\":\"WuZ1izAwpmhm\",\"output_index\":0,\"sequence_number\":21}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\":\",\"item_id\":\"fc_0276c56691d02c0c00698e16cb0920819799603e3088d9662a\",\"obfuscation\":\"HTMCSkXuhcKP3s5\",\"output_index\":0,\"sequence_number\":24}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\",\\\"\",\"item_id\":\"fc_0276c56691d02c0c00698e16cb0920819799603e3088d9662a\",\"obfuscation\":\"0lS2Ua535reyt\",\"output_index\":0,\"sequence_number\":25}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"replacement\",\"item_id\":\"fc_0276c56691d02c0c00698e16cb0920819799603e3088d9662a\",\"obfuscation\":\"VeDEu\",\"output_index\":0,\"sequence_number\":26}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\":\\\"\",\"item_id\":\"fc_0276c56691d02c0c00698e16cb0920819799603e3088d9662a\",\"obfuscation\":\"8mnQJblmIlDxk\",\"output_index\":0,\"sequence_number\":27}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"<\",\"item_id\":\"fc_0276c56691d02c0c00698e16cb0920819799603e3088d9662a\",\"obfuscation\":\"8gZdJxTMOQurA1M\",\"output_index\":0,\"sequence_number\":28}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Paragraph\",\"item_id\":\"fc_0276c56691d02c0c00698e16cb0920819799603e3088d9662a\",\"obfuscation\":\"ZQljrvD\",\"output_index\":0,\"sequence_number\":29}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" text\",\"item_id\":\"fc_0276c56691d02c0c00698e16cb0920819799603e3088d9662a\",\"obfuscation\":\"FypWobKcNyC\",\"output_index\":0,\"sequence_number\":30}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Alignment\",\"item_id\":\"fc_0276c56691d02c0c00698e16cb0920819799603e3088d9662a\",\"obfuscation\":\"DkCcSXY\",\"output_index\":0,\"sequence_number\":31}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\\\\\\\"\",\"item_id\":\"fc_0276c56691d02c0c00698e16cb0920819799603e3088d9662a\",\"obfuscation\":\"GmTsfLfgpJzeY\",\"output_index\":0,\"sequence_number\":32}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"left\",\"item_id\":\"fc_0276c56691d02c0c00698e16cb0920819799603e3088d9662a\",\"obfuscation\":\"yZzXXHjJGckM\",\"output_index\":0,\"sequence_number\":33}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\"\",\"item_id\":\"fc_0276c56691d02c0c00698e16cb0920819799603e3088d9662a\",\"obfuscation\":\"eo6kYCD6le7ts0\",\"output_index\":0,\"sequence_number\":34}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" id\",\"item_id\":\"fc_0276c56691d02c0c00698e16cb0920819799603e3088d9662a\",\"obfuscation\":\"c1WwVyMcmsWA0\",\"output_index\":0,\"sequence_number\":35}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\\\\\\\"\",\"item_id\":\"fc_0276c56691d02c0c00698e16cb0920819799603e3088d9662a\",\"obfuscation\":\"8aqjl1bXnIoud\",\"output_index\":0,\"sequence_number\":36}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"ref\",\"item_id\":\"fc_0276c56691d02c0c00698e16cb0920819799603e3088d9662a\",\"obfuscation\":\"33mhBaC9ide8I\",\"output_index\":0,\"sequence_number\":37}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"1\",\"item_id\":\"fc_0276c56691d02c0c00698e16cb0920819799603e3088d9662a\",\"obfuscation\":\"eVO5UkikUT8GGlM\",\"output_index\":0,\"sequence_number\":38}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\">\",\"item_id\":\"fc_0276c56691d02c0c00698e16cb0920819799603e3088d9662a\",\"obfuscation\":\"zndJawVFQHBZT\",\"output_index\":0,\"sequence_number\":39}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"I\",\"item_id\":\"fc_0276c56691d02c0c00698e16cb0920819799603e3088d9662a\",\"obfuscation\":\"OgXbJTL3XQbuRrN\",\"output_index\":0,\"sequence_number\":40}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" NEED\",\"item_id\":\"fc_0276c56691d02c0c00698e16cb0920819799603e3088d9662a\",\"obfuscation\":\"7cgqPJ8rIki\",\"output_index\":0,\"sequence_number\":41}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" TO\",\"item_id\":\"fc_0276c56691d02c0c00698e16cb0920819799603e3088d9662a\",\"obfuscation\":\"CcjtpfvlftBuC\",\"output_index\":0,\"sequence_number\":42}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" BUY\",\"item_id\":\"fc_0276c56691d02c0c00698e16cb0920819799603e3088d9662a\",\"obfuscation\":\"SGfIL97DwVGk\",\"output_index\":0,\"sequence_number\":43}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\":\",\"item_id\":\"fc_0276c56691d02c0c00698e16cb0920819799603e3088d9662a\",\"obfuscation\":\"A0QbATLaKuzp4I7\",\"output_index\":0,\"sequence_number\":46}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\"}\",\"item_id\":\"fc_0276c56691d02c0c00698e16cb0920819799603e3088d9662a\",\"obfuscation\":\"aVak9BfVgY7cCP\",\"output_index\":0,\"sequence_number\":47}\n\nevent: response.function_call_arguments.done\ndata: {\"type\":\"response.function_call_arguments.done\",\"arguments\":\"{\\\"target\\\":\\\"I need to buy:\\\",\\\"replacement\\\":\\\"I NEED TO BUY:\\\"}\",\"item_id\":\"fc_0276c56691d02c0c00698e16cb0920819799603e3088d9662a\",\"output_index\":0,\"sequence_number\":48}\n\nevent: response.output_item.done\ndata: {\"type\":\"response.output_item.done\",\"item\":{\"id\":\"fc_0276c56691d02c0c00698e16cb0920819799603e3088d9662a\",\"type\":\"function_call\",\"status\":\"completed\",\"arguments\":\"{\\\"target\\\":\\\"I need to buy:\\\",\\\"replacement\\\":\\\"I NEED TO BUY:\\\"}\",\"call_id\":\"call_qHwkA86vmtLnvoju8Epk2jci\",\"name\":\"file_replace\"},\"output_index\":0,\"sequence_number\":49}\n\nevent: response.completed\ndata: {\"type\":\"response.completed\",\"response\":{\"id\":\"resp_0276c56691d02c0c00698e16ca9fd0819792dbed34251ad17d\",\"object\":\"response\",\"created_at\":1770919626,\"status\":\"completed\",\"background\":false,\"completed_at\":1770919627,\"error\":null,\"frequency_penalty\":0.0,\"incomplete_details\":null,\"instructions\":null,\"max_output_tokens\":null,\"max_tool_calls\":null,\"model\":\"gpt-4o-2024-08-06\",\"output\":[{\"id\":\"fc_0276c56691d02c0c00698e16cb0920819799603e3088d9662a\",\"type\":\"function_call\",\"status\":\"completed\",\"arguments\":\"{\\\"target\\\":\\\"I need to buy:\\\",\\\"replacement\\\":\\\"I NEED TO BUY:\\\"}\",\"call_id\":\"call_qHwkA86vmtLnvoju8Epk2jci\",\"name\":\"file_replace\"}],\"parallel_tool_calls\":true,\"presence_penalty\":0.0,\"previous_response_id\":null,\"prompt_cache_key\":null,\"prompt_cache_retention\":null,\"reasoning\":{\"effort\":null,\"summary\":null},\"safety_identifier\":null,\"service_tier\":\"default\",\"store\":true,\"temperature\":1.0,\"text\":{\"format\":{\"type\":\"text\"},\"verbosity\":\"medium\"},\"tool_choice\":\"required\",\"tools\":[{\"type\":\"function\",\"description\":null,\"name\":\"file_replace\",\"parameters\":{\"type\":\"object\",\"properties\":{\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"target\",\"replacement\"],\"additionalProperties\":false},\"strict\":true}],\"top_logprobs\":0,\"top_p\":1.0,\"truncation\":\"disabled\",\"usage\":{\"input_tokens\":218,\"input_tokens_details\":{\"cached_tokens\":0},\"output_tokens\":46,\"output_tokens_details\":{\"reasoning_tokens\":0},\"total_tokens\":264},\"user\":null,\"metadata\":{}},\"sequence_number\":50}\n\n", + "headers": [] + } +} \ No newline at end of file diff --git a/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/turn paragraphs into list_1_a9f159e42c5da61727c8d77764c66693.json b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/turn paragraphs into list_1_a9f159e42c5da61727c8d77764c66693.json new file mode 100644 index 0000000000..d6f2c5c92d --- /dev/null +++ b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/turn paragraphs into list_1_a9f159e42c5da61727c8d77764c66693.json @@ -0,0 +1,15 @@ +{ + "request": { + "method": "POST", + "url": "https://api.openai.com/v1/responses", + "body": "{\"model\":\"gpt-4o-2024-08-06\",\"input\":[{\"role\":\"system\",\"content\":\"You are manipulating a text document using TSX components.\\nEach block is represented as a TSX component with props.\\n\"},{\"role\":\"assistant\",\"content\":[{\"type\":\"output_text\",\"text\":\"This is the latest state of the selection (ignore previous selections, you MUST issue operations against this latest version of the selection):\"}]},{\"role\":\"assistant\",\"content\":[{\"type\":\"output_text\",\"text\":\"[{\\\"id\\\":\\\"ref2$\\\",\\\"block\\\":\\\"Apples\\\"},{\\\"id\\\":\\\"ref3$\\\",\\\"block\\\":\\\"Bananas\\\"}]\"}]},{\"role\":\"assistant\",\"content\":[{\"type\":\"output_text\",\"text\":\"This is the latest state of the entire document (INCLUDING the selected text), \\nyou can use this to find the selected text to understand the context (but you MUST NOT issue operations against this document, you MUST issue operations against the selection):\"}]},{\"role\":\"assistant\",\"content\":[{\"type\":\"output_text\",\"text\":\"[{\\\"block\\\":\\\"I need to buy:\\\"},{\\\"block\\\":\\\"Apples\\\"},{\\\"block\\\":\\\"Bananas\\\"}]\"}]},{\"role\":\"user\",\"content\":[{\"type\":\"input_text\",\"text\":\"turn into list (update existing blocks)\"}]}],\"tools\":[{\"type\":\"function\",\"name\":\"file_replace\",\"parameters\":{\"type\":\"object\",\"properties\":{\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"target\",\"replacement\"]}}],\"tool_choice\":\"required\",\"stream\":true}", + "headers": [], + "cookies": [] + }, + "response": { + "status": 200, + "statusText": "", + "body": "event: response.created\ndata: {\"type\":\"response.created\",\"response\":{\"id\":\"resp_0ac275bc8dbb279000698e16c8a1108190a88f06fffd7154e8\",\"object\":\"response\",\"created_at\":1770919624,\"status\":\"in_progress\",\"background\":false,\"completed_at\":null,\"error\":null,\"frequency_penalty\":0.0,\"incomplete_details\":null,\"instructions\":null,\"max_output_tokens\":null,\"max_tool_calls\":null,\"model\":\"gpt-4o-2024-08-06\",\"output\":[],\"parallel_tool_calls\":true,\"presence_penalty\":0.0,\"previous_response_id\":null,\"prompt_cache_key\":null,\"prompt_cache_retention\":null,\"reasoning\":{\"effort\":null,\"summary\":null},\"safety_identifier\":null,\"service_tier\":\"auto\",\"store\":true,\"temperature\":1.0,\"text\":{\"format\":{\"type\":\"text\"},\"verbosity\":\"medium\"},\"tool_choice\":\"required\",\"tools\":[{\"type\":\"function\",\"description\":null,\"name\":\"file_replace\",\"parameters\":{\"type\":\"object\",\"properties\":{\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"target\",\"replacement\"],\"additionalProperties\":false},\"strict\":true}],\"top_logprobs\":0,\"top_p\":1.0,\"truncation\":\"disabled\",\"usage\":null,\"user\":null,\"metadata\":{}},\"sequence_number\":0}\n\nevent: response.in_progress\ndata: {\"type\":\"response.in_progress\",\"response\":{\"id\":\"resp_0ac275bc8dbb279000698e16c8a1108190a88f06fffd7154e8\",\"object\":\"response\",\"created_at\":1770919624,\"status\":\"in_progress\",\"background\":false,\"completed_at\":null,\"error\":null,\"frequency_penalty\":0.0,\"incomplete_details\":null,\"instructions\":null,\"max_output_tokens\":null,\"max_tool_calls\":null,\"model\":\"gpt-4o-2024-08-06\",\"output\":[],\"parallel_tool_calls\":true,\"presence_penalty\":0.0,\"previous_response_id\":null,\"prompt_cache_key\":null,\"prompt_cache_retention\":null,\"reasoning\":{\"effort\":null,\"summary\":null},\"safety_identifier\":null,\"service_tier\":\"auto\",\"store\":true,\"temperature\":1.0,\"text\":{\"format\":{\"type\":\"text\"},\"verbosity\":\"medium\"},\"tool_choice\":\"required\",\"tools\":[{\"type\":\"function\",\"description\":null,\"name\":\"file_replace\",\"parameters\":{\"type\":\"object\",\"properties\":{\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"target\",\"replacement\"],\"additionalProperties\":false},\"strict\":true}],\"top_logprobs\":0,\"top_p\":1.0,\"truncation\":\"disabled\",\"usage\":null,\"user\":null,\"metadata\":{}},\"sequence_number\":1}\n\nevent: response.output_item.added\ndata: {\"type\":\"response.output_item.added\",\"item\":{\"id\":\"fc_0ac275bc8dbb279000698e16c8f35081908b74505d2d5d710a\",\"type\":\"function_call\",\"status\":\"in_progress\",\"arguments\":\"\",\"call_id\":\"call_py39NpurrFm09mTtAEOOIFb0\",\"name\":\"file_replace\"},\"output_index\":0,\"sequence_number\":2}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"{\\\"\",\"item_id\":\"fc_0ac275bc8dbb279000698e16c8f35081908b74505d2d5d710a\",\"obfuscation\":\"PPidfntJXy8VrT\",\"output_index\":0,\"sequence_number\":3}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"target\",\"item_id\":\"fc_0ac275bc8dbb279000698e16c8f35081908b74505d2d5d710a\",\"obfuscation\":\"SmYSoR4Gzo\",\"output_index\":0,\"sequence_number\":4}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\":\\\"\",\"item_id\":\"fc_0ac275bc8dbb279000698e16c8f35081908b74505d2d5d710a\",\"obfuscation\":\"6A4pP4zMN2FIN\",\"output_index\":0,\"sequence_number\":5}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"<\",\"item_id\":\"fc_0ac275bc8dbb279000698e16c8f35081908b74505d2d5d710a\",\"obfuscation\":\"GeNBSRPkyGCoPJ5\",\"output_index\":0,\"sequence_number\":6}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Paragraph\",\"item_id\":\"fc_0ac275bc8dbb279000698e16c8f35081908b74505d2d5d710a\",\"obfuscation\":\"Vqhhwpp\",\"output_index\":0,\"sequence_number\":7}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" text\",\"item_id\":\"fc_0ac275bc8dbb279000698e16c8f35081908b74505d2d5d710a\",\"obfuscation\":\"MvTIPcsgl76\",\"output_index\":0,\"sequence_number\":8}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Alignment\",\"item_id\":\"fc_0ac275bc8dbb279000698e16c8f35081908b74505d2d5d710a\",\"obfuscation\":\"rqqGHPe\",\"output_index\":0,\"sequence_number\":9}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\\\\\\\"\",\"item_id\":\"fc_0ac275bc8dbb279000698e16c8f35081908b74505d2d5d710a\",\"obfuscation\":\"DEssm7RNDAItd\",\"output_index\":0,\"sequence_number\":10}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"left\",\"item_id\":\"fc_0ac275bc8dbb279000698e16c8f35081908b74505d2d5d710a\",\"obfuscation\":\"2KZyie4JBWUh\",\"output_index\":0,\"sequence_number\":11}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\"\",\"item_id\":\"fc_0ac275bc8dbb279000698e16c8f35081908b74505d2d5d710a\",\"obfuscation\":\"x8u0teYCgqe1Ix\",\"output_index\":0,\"sequence_number\":12}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" id\",\"item_id\":\"fc_0ac275bc8dbb279000698e16c8f35081908b74505d2d5d710a\",\"obfuscation\":\"sBgAblenxE9x4\",\"output_index\":0,\"sequence_number\":13}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\\\\\\\"\",\"item_id\":\"fc_0ac275bc8dbb279000698e16c8f35081908b74505d2d5d710a\",\"obfuscation\":\"2KIcXBAmrMigG\",\"output_index\":0,\"sequence_number\":14}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"ref\",\"item_id\":\"fc_0ac275bc8dbb279000698e16c8f35081908b74505d2d5d710a\",\"obfuscation\":\"iRsPPqzHoJ1bB\",\"output_index\":0,\"sequence_number\":15}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"2\",\"item_id\":\"fc_0ac275bc8dbb279000698e16c8f35081908b74505d2d5d710a\",\"obfuscation\":\"Nf8zErhIMKLO3Tu\",\"output_index\":0,\"sequence_number\":16}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\">\",\"item_id\":\"fc_0ac275bc8dbb279000698e16c8f35081908b74505d2d5d710a\",\"obfuscation\":\"EMti6pftEVolv\",\"output_index\":0,\"sequence_number\":17}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Ap\",\"item_id\":\"fc_0ac275bc8dbb279000698e16c8f35081908b74505d2d5d710a\",\"obfuscation\":\"xMONTVSkJZIF5k\",\"output_index\":0,\"sequence_number\":18}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"ples\",\"item_id\":\"fc_0ac275bc8dbb279000698e16c8f35081908b74505d2d5d710a\",\"obfuscation\":\"yNfPscq81YdW\",\"output_index\":0,\"sequence_number\":19}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\",\"item_id\":\"fc_0ac275bc8dbb279000698e16c8f35081908b74505d2d5d710a\",\"obfuscation\":\"dcmvXi4ZieJBMRt\",\"output_index\":0,\"sequence_number\":22}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\",\\\"\",\"item_id\":\"fc_0ac275bc8dbb279000698e16c8f35081908b74505d2d5d710a\",\"obfuscation\":\"CkQ6Fv64wMUis\",\"output_index\":0,\"sequence_number\":23}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"replacement\",\"item_id\":\"fc_0ac275bc8dbb279000698e16c8f35081908b74505d2d5d710a\",\"obfuscation\":\"z7rXC\",\"output_index\":0,\"sequence_number\":24}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\":\\\"\",\"item_id\":\"fc_0ac275bc8dbb279000698e16c8f35081908b74505d2d5d710a\",\"obfuscation\":\"3zswC02yI4JkT\",\"output_index\":0,\"sequence_number\":25}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"<\",\"item_id\":\"fc_0ac275bc8dbb279000698e16c8f35081908b74505d2d5d710a\",\"obfuscation\":\"QH4AQMmMHcZHllt\",\"output_index\":0,\"sequence_number\":26}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"List\",\"item_id\":\"fc_0ac275bc8dbb279000698e16c8f35081908b74505d2d5d710a\",\"obfuscation\":\"KOvrtznzRrez\",\"output_index\":0,\"sequence_number\":27}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Item\",\"item_id\":\"fc_0ac275bc8dbb279000698e16c8f35081908b74505d2d5d710a\",\"obfuscation\":\"9lBSNoO16pEN\",\"output_index\":0,\"sequence_number\":28}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" id\",\"item_id\":\"fc_0ac275bc8dbb279000698e16c8f35081908b74505d2d5d710a\",\"obfuscation\":\"Ol3QBwI281hZk\",\"output_index\":0,\"sequence_number\":29}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\\\\\\\"\",\"item_id\":\"fc_0ac275bc8dbb279000698e16c8f35081908b74505d2d5d710a\",\"obfuscation\":\"OVLtA9ufHVR3H\",\"output_index\":0,\"sequence_number\":30}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"ref\",\"item_id\":\"fc_0ac275bc8dbb279000698e16c8f35081908b74505d2d5d710a\",\"obfuscation\":\"NqdDvKfjKuKhp\",\"output_index\":0,\"sequence_number\":31}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"2\",\"item_id\":\"fc_0ac275bc8dbb279000698e16c8f35081908b74505d2d5d710a\",\"obfuscation\":\"DSAor1dGeHHwioZ\",\"output_index\":0,\"sequence_number\":32}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\">\",\"item_id\":\"fc_0ac275bc8dbb279000698e16c8f35081908b74505d2d5d710a\",\"obfuscation\":\"i8QQbJTNe9BBe\",\"output_index\":0,\"sequence_number\":33}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Ap\",\"item_id\":\"fc_0ac275bc8dbb279000698e16c8f35081908b74505d2d5d710a\",\"obfuscation\":\"UKpMIlxpaY4lhd\",\"output_index\":0,\"sequence_number\":34}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"ples\",\"item_id\":\"fc_0ac275bc8dbb279000698e16c8f35081908b74505d2d5d710a\",\"obfuscation\":\"h0kbxe2xFrMA\",\"output_index\":0,\"sequence_number\":35}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\",\"item_id\":\"fc_0ac275bc8dbb279000698e16c8f35081908b74505d2d5d710a\",\"obfuscation\":\"76ZVTVFHEpEjgv3\",\"output_index\":0,\"sequence_number\":39}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\"}\",\"item_id\":\"fc_0ac275bc8dbb279000698e16c8f35081908b74505d2d5d710a\",\"obfuscation\":\"w67Jojtdyv2sL0\",\"output_index\":0,\"sequence_number\":40}\n\nevent: response.function_call_arguments.done\ndata: {\"type\":\"response.function_call_arguments.done\",\"arguments\":\"{\\\"target\\\":\\\"Apples\\\",\\\"replacement\\\":\\\"Apples\\\"}\",\"item_id\":\"fc_0ac275bc8dbb279000698e16c8f35081908b74505d2d5d710a\",\"output_index\":0,\"sequence_number\":41}\n\nevent: response.output_item.done\ndata: {\"type\":\"response.output_item.done\",\"item\":{\"id\":\"fc_0ac275bc8dbb279000698e16c8f35081908b74505d2d5d710a\",\"type\":\"function_call\",\"status\":\"completed\",\"arguments\":\"{\\\"target\\\":\\\"Apples\\\",\\\"replacement\\\":\\\"Apples\\\"}\",\"call_id\":\"call_py39NpurrFm09mTtAEOOIFb0\",\"name\":\"file_replace\"},\"output_index\":0,\"sequence_number\":42}\n\nevent: response.completed\ndata: {\"type\":\"response.completed\",\"response\":{\"id\":\"resp_0ac275bc8dbb279000698e16c8a1108190a88f06fffd7154e8\",\"object\":\"response\",\"created_at\":1770919624,\"status\":\"completed\",\"background\":false,\"completed_at\":1770919625,\"error\":null,\"frequency_penalty\":0.0,\"incomplete_details\":null,\"instructions\":null,\"max_output_tokens\":null,\"max_tool_calls\":null,\"model\":\"gpt-4o-2024-08-06\",\"output\":[{\"id\":\"fc_0ac275bc8dbb279000698e16c8f35081908b74505d2d5d710a\",\"type\":\"function_call\",\"status\":\"completed\",\"arguments\":\"{\\\"target\\\":\\\"Apples\\\",\\\"replacement\\\":\\\"Apples\\\"}\",\"call_id\":\"call_py39NpurrFm09mTtAEOOIFb0\",\"name\":\"file_replace\"}],\"parallel_tool_calls\":true,\"presence_penalty\":0.0,\"previous_response_id\":null,\"prompt_cache_key\":null,\"prompt_cache_retention\":null,\"reasoning\":{\"effort\":null,\"summary\":null},\"safety_identifier\":null,\"service_tier\":\"default\",\"store\":true,\"temperature\":1.0,\"text\":{\"format\":{\"type\":\"text\"},\"verbosity\":\"medium\"},\"tool_choice\":\"required\",\"tools\":[{\"type\":\"function\",\"description\":null,\"name\":\"file_replace\",\"parameters\":{\"type\":\"object\",\"properties\":{\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"target\",\"replacement\"],\"additionalProperties\":false},\"strict\":true}],\"top_logprobs\":0,\"top_p\":1.0,\"truncation\":\"disabled\",\"usage\":{\"input_tokens\":298,\"input_tokens_details\":{\"cached_tokens\":0},\"output_tokens\":39,\"output_tokens_details\":{\"reasoning_tokens\":0},\"total_tokens\":337},\"user\":null,\"metadata\":{}},\"sequence_number\":43}\n\n", + "headers": [] + } +} \ No newline at end of file diff --git a/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/turn paragraphs into list_1_b91bf228911b0e8569268b5b3cc57017.json b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/turn paragraphs into list_1_b91bf228911b0e8569268b5b3cc57017.json new file mode 100644 index 0000000000..86b1cb3b24 --- /dev/null +++ b/packages/xl-ai/src/api/formats/tsx-document/__snapshots__/tsxDocument.test.ts/Update/__msw_snapshots__/openai.responses/gpt-4o-2024-08-06 (streaming)/turn paragraphs into list_1_b91bf228911b0e8569268b5b3cc57017.json @@ -0,0 +1,15 @@ +{ + "request": { + "method": "POST", + "url": "https://api.openai.com/v1/responses", + "body": "{\"model\":\"gpt-4o-2024-08-06\",\"input\":[{\"role\":\"system\",\"content\":\"You are manipulating a text document using TSX components.\\nEach block is represented as a TSX component with props.\\n\"},{\"role\":\"assistant\",\"content\":[{\"type\":\"output_text\",\"text\":\"This is the latest state of the selection (ignore previous selections, you MUST issue operations against this latest version of the selection):\"}]},{\"role\":\"assistant\",\"content\":[{\"type\":\"output_text\",\"text\":\"[{\\\"id\\\":\\\"ref2$\\\",\\\"block\\\":\\\"Apples\\\"},{\\\"id\\\":\\\"ref3$\\\",\\\"block\\\":\\\"Bananas\\\"}]\"}]},{\"role\":\"assistant\",\"content\":[{\"type\":\"output_text\",\"text\":\"This is the latest state of the entire document (INCLUDING the selected text), \\nyou can use this to find the selected text to understand the context (but you MUST NOT issue operations against this document, you MUST issue operations against the selection):\"}]},{\"role\":\"assistant\",\"content\":[{\"type\":\"output_text\",\"text\":\"[{\\\"block\\\":\\\"I need to buy:\\\"},{\\\"block\\\":\\\"Apples\\\"},{\\\"block\\\":\\\"Bananas\\\"}]\"}]},{\"role\":\"user\",\"content\":[{\"type\":\"input_text\",\"text\":\"turn into list (update existing blocks)\"}]}],\"tools\":[{\"type\":\"function\",\"name\":\"applyDocumentOperations\",\"parameters\":{\"type\":\"object\",\"properties\":{\"operations\":{\"type\":\"array\",\"items\":{\"anyOf\":[{\"type\":\"object\",\"description\":\"Replace a part of the document file\",\"properties\":{\"type\":{\"type\":\"string\",\"enum\":[\"file_replace\"]},\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"type\",\"target\",\"replacement\"],\"additionalProperties\":false}]}}},\"additionalProperties\":false,\"required\":[\"operations\"]}}],\"tool_choice\":\"required\",\"stream\":true}", + "headers": [], + "cookies": [] + }, + "response": { + "status": 200, + "statusText": "", + "body": "event: response.created\ndata: {\"type\":\"response.created\",\"response\":{\"id\":\"resp_08f182bfb8e8e6ac00698cd82913b88190ad679f753bbe75d6\",\"object\":\"response\",\"created_at\":1770838057,\"status\":\"in_progress\",\"background\":false,\"completed_at\":null,\"error\":null,\"frequency_penalty\":0.0,\"incomplete_details\":null,\"instructions\":null,\"max_output_tokens\":null,\"max_tool_calls\":null,\"model\":\"gpt-4o-2024-08-06\",\"output\":[],\"parallel_tool_calls\":true,\"presence_penalty\":0.0,\"previous_response_id\":null,\"prompt_cache_key\":null,\"prompt_cache_retention\":null,\"reasoning\":{\"effort\":null,\"summary\":null},\"safety_identifier\":null,\"service_tier\":\"auto\",\"store\":true,\"temperature\":1.0,\"text\":{\"format\":{\"type\":\"text\"},\"verbosity\":\"medium\"},\"tool_choice\":\"required\",\"tools\":[{\"type\":\"function\",\"description\":null,\"name\":\"applyDocumentOperations\",\"parameters\":{\"type\":\"object\",\"properties\":{\"operations\":{\"type\":\"array\",\"items\":{\"anyOf\":[{\"type\":\"object\",\"description\":\"Replace a part of the document file\",\"properties\":{\"type\":{\"type\":\"string\",\"enum\":[\"file_replace\"]},\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"type\",\"target\",\"replacement\"],\"additionalProperties\":false}]}}},\"additionalProperties\":false,\"required\":[\"operations\"]},\"strict\":true}],\"top_logprobs\":0,\"top_p\":1.0,\"truncation\":\"disabled\",\"usage\":null,\"user\":null,\"metadata\":{}},\"sequence_number\":0}\n\nevent: response.in_progress\ndata: {\"type\":\"response.in_progress\",\"response\":{\"id\":\"resp_08f182bfb8e8e6ac00698cd82913b88190ad679f753bbe75d6\",\"object\":\"response\",\"created_at\":1770838057,\"status\":\"in_progress\",\"background\":false,\"completed_at\":null,\"error\":null,\"frequency_penalty\":0.0,\"incomplete_details\":null,\"instructions\":null,\"max_output_tokens\":null,\"max_tool_calls\":null,\"model\":\"gpt-4o-2024-08-06\",\"output\":[],\"parallel_tool_calls\":true,\"presence_penalty\":0.0,\"previous_response_id\":null,\"prompt_cache_key\":null,\"prompt_cache_retention\":null,\"reasoning\":{\"effort\":null,\"summary\":null},\"safety_identifier\":null,\"service_tier\":\"auto\",\"store\":true,\"temperature\":1.0,\"text\":{\"format\":{\"type\":\"text\"},\"verbosity\":\"medium\"},\"tool_choice\":\"required\",\"tools\":[{\"type\":\"function\",\"description\":null,\"name\":\"applyDocumentOperations\",\"parameters\":{\"type\":\"object\",\"properties\":{\"operations\":{\"type\":\"array\",\"items\":{\"anyOf\":[{\"type\":\"object\",\"description\":\"Replace a part of the document file\",\"properties\":{\"type\":{\"type\":\"string\",\"enum\":[\"file_replace\"]},\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"type\",\"target\",\"replacement\"],\"additionalProperties\":false}]}}},\"additionalProperties\":false,\"required\":[\"operations\"]},\"strict\":true}],\"top_logprobs\":0,\"top_p\":1.0,\"truncation\":\"disabled\",\"usage\":null,\"user\":null,\"metadata\":{}},\"sequence_number\":1}\n\nevent: response.output_item.added\ndata: {\"type\":\"response.output_item.added\",\"item\":{\"id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"type\":\"function_call\",\"status\":\"in_progress\",\"arguments\":\"\",\"call_id\":\"call_AkpFZEegz5ket0lnQSDeXzDG\",\"name\":\"applyDocumentOperations\"},\"output_index\":0,\"sequence_number\":2}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"{\\\"\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"EcN5MOCPK9eKuE\",\"output_index\":0,\"sequence_number\":3}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"operations\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"m7KZFq\",\"output_index\":0,\"sequence_number\":4}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\":[\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"VovJn9RR0kbQC\",\"output_index\":0,\"sequence_number\":5}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"{\\\"\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"VrNeiCjxzJLOGp\",\"output_index\":0,\"sequence_number\":6}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"type\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"ZDhmj0OQhRRu\",\"output_index\":0,\"sequence_number\":7}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\":\\\"\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"cPL6iWW6RKmRQ\",\"output_index\":0,\"sequence_number\":8}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"file\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"hN20htg348LM\",\"output_index\":0,\"sequence_number\":9}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"_replace\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"ydsiVBnc\",\"output_index\":0,\"sequence_number\":10}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\",\\\"\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"CJ32wPELYY0EE\",\"output_index\":0,\"sequence_number\":11}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"target\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"kDOeH55LCm\",\"output_index\":0,\"sequence_number\":12}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\":\\\"\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"IcuuTXiXXYDmj\",\"output_index\":0,\"sequence_number\":13}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"<\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"QrZjEli3gN934bq\",\"output_index\":0,\"sequence_number\":14}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Paragraph\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"GgO77UE\",\"output_index\":0,\"sequence_number\":15}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" text\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"rxHkxG8xGOn\",\"output_index\":0,\"sequence_number\":16}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Alignment\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"amSzH9w\",\"output_index\":0,\"sequence_number\":17}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\\\\\\\"\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"mxE0qO8CZlRbY\",\"output_index\":0,\"sequence_number\":18}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"left\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"gSjpwB6WgAOS\",\"output_index\":0,\"sequence_number\":19}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\"\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"ELNnBRKvqaVApy\",\"output_index\":0,\"sequence_number\":20}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" id\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"nAop1RM5szBAc\",\"output_index\":0,\"sequence_number\":21}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\\\\\\\"\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"nSpEtZkj6XhaV\",\"output_index\":0,\"sequence_number\":22}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"ref\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"lyEgSS11NZqcA\",\"output_index\":0,\"sequence_number\":23}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"2\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"oWDY8qdpClTBJ5k\",\"output_index\":0,\"sequence_number\":24}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\">\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"SAYvyPw9CtlPN\",\"output_index\":0,\"sequence_number\":25}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Ap\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"hx9t3Nz59Zm8DR\",\"output_index\":0,\"sequence_number\":26}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"ples\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"0QY30QCerZij\",\"output_index\":0,\"sequence_number\":27}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"MS54aL6chc98IFC\",\"output_index\":0,\"sequence_number\":30}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\",\\\"\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"EZdVGsEpnGOfQ\",\"output_index\":0,\"sequence_number\":31}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"replacement\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"IsZuU\",\"output_index\":0,\"sequence_number\":32}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\":\\\"\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"mSjW9Tf5Ke5dc\",\"output_index\":0,\"sequence_number\":33}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"<\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"zA1pNeh2icVRy4f\",\"output_index\":0,\"sequence_number\":34}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"List\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"xLGjCk1ENuSn\",\"output_index\":0,\"sequence_number\":35}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Item\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"1iy7prP4i2Qx\",\"output_index\":0,\"sequence_number\":36}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" id\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"immgscLlVh7ea\",\"output_index\":0,\"sequence_number\":37}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\\\\\\\"\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"nZwcVeYY3BaUg\",\"output_index\":0,\"sequence_number\":38}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"ref\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"zvaXGSVWPqYhJ\",\"output_index\":0,\"sequence_number\":39}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"2\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"uRNYCpWwYL9ApDX\",\"output_index\":0,\"sequence_number\":40}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\">\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"3FSteTuJW1iCU\",\"output_index\":0,\"sequence_number\":41}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Ap\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"MLAKupsKz7VUn4\",\"output_index\":0,\"sequence_number\":42}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"ples\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"Yi9VORDerTki\",\"output_index\":0,\"sequence_number\":43}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\"\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"1YKh70GlM83nQy\",\"output_index\":0,\"sequence_number\":47}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"},{\\\"\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"HYV2PJUyC2Fz\",\"output_index\":0,\"sequence_number\":48}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"type\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"snGI1yQ19Idq\",\"output_index\":0,\"sequence_number\":49}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\":\\\"\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"EpHyzpGGDhiQ9\",\"output_index\":0,\"sequence_number\":50}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"file\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"lYgiLdAoZXGa\",\"output_index\":0,\"sequence_number\":51}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"_replace\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"4bpQWVYM\",\"output_index\":0,\"sequence_number\":52}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\",\\\"\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"f08cyOnl82s3U\",\"output_index\":0,\"sequence_number\":53}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"target\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"OxjvqwewuO\",\"output_index\":0,\"sequence_number\":54}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\":\\\"\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"j1ZFFQ8HN1Qrl\",\"output_index\":0,\"sequence_number\":55}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"<\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"Ix15Gnfz8u1Wuqw\",\"output_index\":0,\"sequence_number\":56}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Paragraph\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"t7BtWwK\",\"output_index\":0,\"sequence_number\":57}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" text\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"bzoWN3Bep90\",\"output_index\":0,\"sequence_number\":58}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Alignment\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"UTX5y11\",\"output_index\":0,\"sequence_number\":59}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\\\\\\\"\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"INOdTkSHRSz0f\",\"output_index\":0,\"sequence_number\":60}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"left\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"Lh5RHZFVpf6G\",\"output_index\":0,\"sequence_number\":61}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\"\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"LK6Zg4uR6ZjaNn\",\"output_index\":0,\"sequence_number\":62}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" id\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"vwDeKR0SK7YL0\",\"output_index\":0,\"sequence_number\":63}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\\\\\\\"\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"Kd7Wfx8W9IRXk\",\"output_index\":0,\"sequence_number\":64}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"ref\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"CrTCzbSTOuMD1\",\"output_index\":0,\"sequence_number\":65}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"3\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"u8y33CUrpGSOTcG\",\"output_index\":0,\"sequence_number\":66}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\">\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"AMZoA3h548ZE5\",\"output_index\":0,\"sequence_number\":67}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Ban\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"j9EkKbgBv1c3G\",\"output_index\":0,\"sequence_number\":68}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"anas\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"xre6AsZQLO5L\",\"output_index\":0,\"sequence_number\":69}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"e3zsXO09Fu8Ba4m\",\"output_index\":0,\"sequence_number\":72}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\",\\\"\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"rrgHUijr7fOEN\",\"output_index\":0,\"sequence_number\":73}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"replacement\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"ZBPG0\",\"output_index\":0,\"sequence_number\":74}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\":\\\"\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"I3N5HNLFYECM9\",\"output_index\":0,\"sequence_number\":75}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"<\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"6nBDBAA8N5rZcXE\",\"output_index\":0,\"sequence_number\":76}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"List\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"dtwyr3VfnZQZ\",\"output_index\":0,\"sequence_number\":77}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Item\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"Mti6Bfht2I06\",\"output_index\":0,\"sequence_number\":78}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\" id\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"waZRRnOfmNnia\",\"output_index\":0,\"sequence_number\":79}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"=\\\\\\\"\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"D9GsrJveU1wU5\",\"output_index\":0,\"sequence_number\":80}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"ref\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"B3HhkBmgiePJ3\",\"output_index\":0,\"sequence_number\":81}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"3\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"uhsd5ZQVMMoZr0y\",\"output_index\":0,\"sequence_number\":82}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\\\\\">\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"wj9hEYd9AJs2m\",\"output_index\":0,\"sequence_number\":83}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"Ban\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"eZkp4QQFeF5hW\",\"output_index\":0,\"sequence_number\":84}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"anas\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"DyLAMc76RrRN\",\"output_index\":0,\"sequence_number\":85}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"MM6t9k0V58TYLwL\",\"output_index\":0,\"sequence_number\":89}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"\\\"}\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"M19oVGekjFp98b\",\"output_index\":0,\"sequence_number\":90}\n\nevent: response.function_call_arguments.delta\ndata: {\"type\":\"response.function_call_arguments.delta\",\"delta\":\"]}\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"obfuscation\":\"RFkNhOuG3CYVL2\",\"output_index\":0,\"sequence_number\":91}\n\nevent: response.function_call_arguments.done\ndata: {\"type\":\"response.function_call_arguments.done\",\"arguments\":\"{\\\"operations\\\":[{\\\"type\\\":\\\"file_replace\\\",\\\"target\\\":\\\"Apples\\\",\\\"replacement\\\":\\\"Apples\\\"},{\\\"type\\\":\\\"file_replace\\\",\\\"target\\\":\\\"Bananas\\\",\\\"replacement\\\":\\\"Bananas\\\"}]}\",\"item_id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"output_index\":0,\"sequence_number\":92}\n\nevent: response.output_item.done\ndata: {\"type\":\"response.output_item.done\",\"item\":{\"id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"type\":\"function_call\",\"status\":\"completed\",\"arguments\":\"{\\\"operations\\\":[{\\\"type\\\":\\\"file_replace\\\",\\\"target\\\":\\\"Apples\\\",\\\"replacement\\\":\\\"Apples\\\"},{\\\"type\\\":\\\"file_replace\\\",\\\"target\\\":\\\"Bananas\\\",\\\"replacement\\\":\\\"Bananas\\\"}]}\",\"call_id\":\"call_AkpFZEegz5ket0lnQSDeXzDG\",\"name\":\"applyDocumentOperations\"},\"output_index\":0,\"sequence_number\":93}\n\nevent: response.completed\ndata: {\"type\":\"response.completed\",\"response\":{\"id\":\"resp_08f182bfb8e8e6ac00698cd82913b88190ad679f753bbe75d6\",\"object\":\"response\",\"created_at\":1770838057,\"status\":\"completed\",\"background\":false,\"completed_at\":1770838058,\"error\":null,\"frequency_penalty\":0.0,\"incomplete_details\":null,\"instructions\":null,\"max_output_tokens\":null,\"max_tool_calls\":null,\"model\":\"gpt-4o-2024-08-06\",\"output\":[{\"id\":\"fc_08f182bfb8e8e6ac00698cd8296f908190953c0edeaadd5f50\",\"type\":\"function_call\",\"status\":\"completed\",\"arguments\":\"{\\\"operations\\\":[{\\\"type\\\":\\\"file_replace\\\",\\\"target\\\":\\\"Apples\\\",\\\"replacement\\\":\\\"Apples\\\"},{\\\"type\\\":\\\"file_replace\\\",\\\"target\\\":\\\"Bananas\\\",\\\"replacement\\\":\\\"Bananas\\\"}]}\",\"call_id\":\"call_AkpFZEegz5ket0lnQSDeXzDG\",\"name\":\"applyDocumentOperations\"}],\"parallel_tool_calls\":true,\"presence_penalty\":0.0,\"previous_response_id\":null,\"prompt_cache_key\":null,\"prompt_cache_retention\":null,\"reasoning\":{\"effort\":null,\"summary\":null},\"safety_identifier\":null,\"service_tier\":\"default\",\"store\":true,\"temperature\":1.0,\"text\":{\"format\":{\"type\":\"text\"},\"verbosity\":\"medium\"},\"tool_choice\":\"required\",\"tools\":[{\"type\":\"function\",\"description\":null,\"name\":\"applyDocumentOperations\",\"parameters\":{\"type\":\"object\",\"properties\":{\"operations\":{\"type\":\"array\",\"items\":{\"anyOf\":[{\"type\":\"object\",\"description\":\"Replace a part of the document file\",\"properties\":{\"type\":{\"type\":\"string\",\"enum\":[\"file_replace\"]},\"target\":{\"type\":\"string\",\"description\":\"The string to replace\"},\"replacement\":{\"type\":\"string\",\"description\":\"The replacement string\"}},\"required\":[\"type\",\"target\",\"replacement\"],\"additionalProperties\":false}]}}},\"additionalProperties\":false,\"required\":[\"operations\"]},\"strict\":true}],\"top_logprobs\":0,\"top_p\":1.0,\"truncation\":\"disabled\",\"usage\":{\"input_tokens\":323,\"input_tokens_details\":{\"cached_tokens\":0},\"output_tokens\":90,\"output_tokens_details\":{\"reasoning_tokens\":0},\"total_tokens\":413},\"user\":null,\"metadata\":{}},\"sequence_number\":94}\n\n", + "headers": [] + } +} \ No newline at end of file diff --git a/packages/xl-ai/src/api/formats/tsx-document/tools/convertFileReplaceToolCall.test.ts b/packages/xl-ai/src/api/formats/tsx-document/tools/convertFileReplaceToolCall.test.ts new file mode 100644 index 0000000000..4c352392ab --- /dev/null +++ b/packages/xl-ai/src/api/formats/tsx-document/tools/convertFileReplaceToolCall.test.ts @@ -0,0 +1,681 @@ +import { describe, expect, it } from "vitest"; +import type { AddBlocksToolCall } from "../../base-tools/createAddBlocksTool.js"; +import type { UpdateBlockToolCall } from "../../base-tools/createUpdateBlockTool.js"; +import type { DeleteBlockToolCall } from "../../base-tools/delete.js"; +import { + BlockRange, + convertFileReplaceToolCall, + TsxToolCall, +} from "./convertFileReplaceToolCall.js"; + +// Fixtures ──────────────────────────────────────────────────────────────────── + +const simpleDoc = `Hello World +Second paragraph +Third paragraph`; + +function simpleRanges(): Map { + const m = new Map(); + m.set("p1", { start: 0, end: 42 }); + m.set("p2", { start: 43, end: 90 }); + m.set("p3", { start: 91, end: 137 }); + return m; +} + +/** Document with textAlignment attributes and mixed block types. */ +const richDoc = `Welcome +Hello World +This is a test paragraph. +Item 1 +Item 2`; + +function richRanges(): Map { + const m = new Map(); + m.set("h1", { start: 0, end: 65 }); + m.set("p1", { start: 66, end: 142 }); + m.set("p2", { start: 143, end: 220 }); + m.set("list1", { start: 221, end: 292 }); + m.set("list2", { start: 293, end: 364 }); + return m; +} + +const attrDoc = `Hello +World`; + +function attrRanges(): Map { + const m = new Map(); + m.set("p1", { start: 0, end: 57 }); + m.set("p2", { start: 58, end: 113 }); + return m; +} + +// Typed assertion helpers ───────────────────────────────────────────────────── + +function updates(r: TsxToolCall[]): UpdateBlockToolCall[] { + return r.filter((c): c is UpdateBlockToolCall => c.type === "update"); +} +function adds(r: TsxToolCall[]): AddBlocksToolCall[] { + return r.filter((c): c is AddBlocksToolCall => c.type === "add"); +} +function deletes(r: TsxToolCall[]): DeleteBlockToolCall[] { + return r.filter((c): c is DeleteBlockToolCall => c.type === "delete"); +} + +/** Shorthand to call the function with simpleDoc. */ +function run( + target: string, + replacement: string, + partial = false, +): TsxToolCall[] { + return convertFileReplaceToolCall({ + document: simpleDoc, + blockRanges: simpleRanges(), + target, + replacement, + isPossiblyPartial: partial, + }); +} + +// Tests ─────────────────────────────────────────────────────────────────────── + +describe("convertFileReplaceToolCall", () => { + describe("updates & deletes", () => { + it("returns empty array when target not found", () => { + expect(run("NOT IN DOCUMENT", "anything")).toHaveLength(0); + }); + + it("detects UPDATE when replacement has matching ID", () => { + const r = run( + `Hello World`, + `Hello Universe`, + ); + expect(updates(r)).toHaveLength(1); + expect(updates(r)[0].id).toBe("p1"); + expect(updates(r)[0].block).toContain("Hello Universe"); + }); + + it("skips UPDATE when content is unchanged", () => { + const r = run( + `Hello World`, + `Hello World`, + ); + expect(updates(r)).toHaveLength(0); + }); + + it("detects DELETE when replacement is empty", () => { + const r = run(`Second paragraph`, ``); + expect(deletes(r)).toHaveLength(1); + expect(deletes(r)[0].id).toBe("p2"); + }); + + it("detects ADD + DELETE when replacement has no ID", () => { + const r = run( + `Hello World`, + `New Content`, + ); + expect(adds(r)).toHaveLength(1); + expect(adds(r)[0].blocks[0]).toContain("New Content"); + expect(deletes(r)).toHaveLength(1); + expect(deletes(r)[0].id).toBe("p1"); + }); + + it("does NOT delete block when replacement restores its ID", () => { + const r = run( + `Hello World`, + `New Block\nHello World`, + ); + expect(adds(r)).toHaveLength(1); + expect(deletes(r)).toHaveLength(0); + }); + + it("handles update one + delete one", () => { + const r = run( + `Hello World\nSecond paragraph`, + `Updated p1`, + ); + expect(updates(r)).toHaveLength(1); + expect(updates(r)[0].id).toBe("p1"); + expect(deletes(r)).toHaveLength(1); + expect(deletes(r)[0].id).toBe("p2"); + }); + + it("handles update + add + delete (complex scenario)", () => { + const doc = `First +Second +Third`; + const ranges = new Map(); + ranges.set("p1", { start: 0, end: 57 }); + ranges.set("p2", { start: 58, end: 116 }); + ranges.set("p3", { start: 117, end: 174 }); + + const r = convertFileReplaceToolCall({ + document: doc, + blockRanges: ranges, + target: doc, + replacement: `First - Modified\nNew paragraph`, + isPossiblyPartial: false, + }); + + expect(updates(r)).toHaveLength(1); + expect(updates(r)[0].id).toBe("p1"); + expect(adds(r)).toHaveLength(1); + expect(deletes(r)).toHaveLength(2); + expect(deletes(r).map((d) => d.id)).toContain("p2"); + expect(deletes(r).map((d) => d.id)).toContain("p3"); + }); + + it("splices text-only replacement correctly", () => { + const r = run("World", "Planet"); + expect(updates(r)).toHaveLength(1); + expect(updates(r)[0].id).toBe("p1"); + expect(updates(r)[0].block).toBe( + `Hello Planet`, + ); + expect(adds(r)).toHaveLength(0); + expect(deletes(r)).toHaveLength(0); + }); + + it("updates when target is at START of block", () => { + const r = run(`Hello`, `Goodbye`); + expect(updates(r)[0].block).toBe( + `Goodbye World`, + ); + }); + + it("updates when target is in MIDDLE of block", () => { + const r = run("Hello", "Goodbye"); + expect(updates(r)[0].block).toBe( + `Goodbye World`, + ); + }); + + it("updates when target is at END of block", () => { + const r = run("World", "Universe"); + expect(updates(r)[0].block).toBe( + `Hello Universe`, + ); + }); + + it("handles cross-block target: updates first, deletes rest", () => { + const r = run( + `World\nSecond`, + `World Second`, + ); + // First block absorbs replacement + tail of last block + expect(updates(r)).toHaveLength(1); + expect(updates(r)[0].id).toBe("p1"); + expect(updates(r)[0].block).toContain("World Second"); + expect(updates(r)[0].block).toContain("paragraph"); + // p2 is deleted — no trace of it in the replaced document + expect(deletes(r)).toHaveLength(1); + expect(deletes(r)[0].id).toBe("p2"); + }); + + it("handles self-closing elements", () => { + const doc = `Hello World\n\nAfter image`; + const ranges = new Map(); + ranges.set("p1", { start: 0, end: 42 }); + ranges.set("img1", { start: 43, end: 77 }); + ranges.set("p3", { start: 78, end: 118 }); + + const r = convertFileReplaceToolCall({ + document: doc, + blockRanges: ranges, + target: ``, + replacement: ``, + isPossiblyPartial: false, + }); + expect(updates(r)).toHaveLength(1); + expect(updates(r)[0].id).toBe("img1"); + expect(updates(r)[0].block).toContain("new.png"); + }); + + it("handles target inside an attribute value", () => { + const doc = `Content here`; + const ranges = new Map(); + ranges.set("p1", { start: 0, end: 65 }); + + const r = convertFileReplaceToolCall({ + document: doc, + blockRanges: ranges, + target: "left", + replacement: "center", + isPossiblyPartial: false, + }); + expect(updates(r)[0].block).toContain('textAlignment="center"'); + }); + + it("does not confuse inline markup with blocks", () => { + const r = run( + `Hello World`, + `Hello World`, + ); + expect(updates(r)).toHaveLength(1); + expect(adds(r)).toHaveLength(0); + }); + + // Rich document (mixed block types) + it("updates a heading in rich document", () => { + const r = convertFileReplaceToolCall({ + document: richDoc, + blockRanges: richRanges(), + target: `Welcome`, + replacement: `Welcome Back`, + isPossiblyPartial: false, + }); + expect(updates(r)).toHaveLength(1); + expect(updates(r)[0].id).toBe("h1"); + }); + + it("updates a paragraph with inline Bold in rich document", () => { + const r = convertFileReplaceToolCall({ + document: richDoc, + blockRanges: richRanges(), + target: `Hello World`, + replacement: `Hello Universe`, + isPossiblyPartial: false, + }); + expect(updates(r)).toHaveLength(1); + expect(updates(r)[0].id).toBe("p1"); + expect(deletes(r)).toHaveLength(0); + }); + + it("handles target spanning closing tag in rich document", () => { + const r = convertFileReplaceToolCall({ + document: richDoc, + blockRanges: richRanges(), + target: `World`, + replacement: `Universe`, + isPossiblyPartial: false, + }); + expect(updates(r)).toHaveLength(1); + expect(updates(r)[0].id).toBe("p1"); + }); + + it("handles partial opening tag target in rich document", () => { + const r = convertFileReplaceToolCall({ + document: richDoc, + blockRanges: richRanges(), + target: `id="p1">Hello`, + replacement: `id="p1">Goodbye`, + isPossiblyPartial: false, + }); + expect(updates(r)).toHaveLength(1); + }); + + describe("reordering", () => { + it("handles simple two-block swap via delete+add", () => { + const r = run( + `Hello World\nSecond paragraph`, + `Second paragraph\nHello World`, + ); + // Two-pointer: sees p2 first → skips p1 (delete), updates p2. + // Then sees p1 → already consumed → re-add after p2. + expect(deletes(r)).toHaveLength(1); + expect(deletes(r)[0].id).toBe("p1"); + expect(adds(r)).toHaveLength(1); + expect(adds(r)[0].position).toBe("after"); + expect(adds(r)[0].referenceId).toBe("p2"); + expect(adds(r)[0].blocks[0]).toContain("Hello World"); + }); + + it("handles three-block reorder with content change", () => { + const r = run( + `Hello World\nSecond paragraph\nThird paragraph`, + `Third paragraph\nSecond paragraph\nModified Hello`, + ); + // p1 is skipped (deleted). p2 matches? NO, p3 matches first! + // p3 matches (idx 2). Skip p1(0), p2(1). + // Then p2 (already consumed) -> re-add. + // Then p1 (already consumed) -> re-add. + expect(deletes(r)).toHaveLength(2); + expect(deletes(r).map((d) => d.id)).toContain("p1"); + expect(deletes(r).map((d) => d.id)).toContain("p2"); + + expect(updates(r)).toHaveLength(0); // p3 content unchanged + + expect(adds(r)).toHaveLength(1); + expect(adds(r)[0].blocks).toHaveLength(2); + expect(adds(r)[0].blocks[0]).toContain("Second paragraph"); + expect(adds(r)[0].blocks[1]).toContain("Modified Hello"); + }); + + it("handles reorder during streaming: skipped deletes + re-adds", () => { + const r = run( + `Hello World\nSecond paragraph`, + `Second paragraph\nHello World`, + true, // streaming + ); + // Two-pointer: p2 matched first → p1 skipped (deleted even during streaming, + // because it was definitively passed over). p1 is already-consumed → re-add. + expect(deletes(r)).toHaveLength(1); + expect(deletes(r)[0].id).toBe("p1"); + expect(adds(r)).toHaveLength(1); + expect(adds(r)[0].blocks[0]).toContain("Hello World"); + }); + }); + + describe("adds", () => { + it("detects ADD + UPDATE when block modified and new block added", () => { + const r = run( + `Hello World`, + `Hello ModifiedNew Block`, + ); + expect(updates(r)).toHaveLength(1); + expect(updates(r)[0].block).toContain("Hello Modified"); + expect(adds(r)).toHaveLength(1); + expect(adds(r)[0].blocks[0]).toContain("New Block"); + expect(deletes(r)).toHaveLength(0); + }); + + it("detects ADD when replacement has more blocks (content unchanged)", () => { + const r = run( + `Hello World`, + `New Before\nHello World`, + ); + expect(updates(r)).toHaveLength(0); + expect(adds(r)).toHaveLength(1); + expect(adds(r)[0].blocks[0]).toContain("New Before"); + expect(adds(r)[0].position).toBe("before"); + }); + + it("treats elements with unknown IDs as ADDs", () => { + const r = run( + `World`, + `WorldNew Block`, + ); + expect(adds(r)).toHaveLength(1); + expect(adds(r)[0].blocks[0]).toContain("New Block"); + expect(adds(r)[0].referenceId).toBe("p1"); + }); + + it("emits batched ADDs in correct order", () => { + const r = run( + `Hello World`, + `New1New2Hello WorldNew3New4`, + ); + // New1, New2 added before p1. New3, New4 added after p1. + expect(adds(r)).toHaveLength(2); + + // First batch: New1, New2 before p1 + expect(adds(r)[0].position).toBe("before"); + expect(adds(r)[0].blocks).toHaveLength(2); + expect(adds(r)[0].blocks[0]).toContain("New1"); + expect(adds(r)[0].blocks[1]).toContain("New2"); + + // Second batch: New3, New4 after p1 + expect(adds(r)[1].position).toBe("after"); + expect(adds(r)[1].blocks).toHaveLength(2); + expect(adds(r)[1].blocks[0]).toContain("New3"); + expect(adds(r)[1].blocks[1]).toContain("New4"); + }); + + it("uses earliest affected block as referenceId regardless of Map order", () => { + const confusedRanges = new Map(); + confusedRanges.set("p3", { start: 91, end: 137 }); + confusedRanges.set("p2", { start: 43, end: 90 }); + + const r = convertFileReplaceToolCall({ + document: simpleDoc, + blockRanges: confusedRanges, + target: `Second paragraph\nThird paragraph`, + replacement: `New Item`, + isPossiblyPartial: false, + }); + expect(adds(r)[0].referenceId).toBe("p2"); + }); + + it("handles Add + Keep scenario from attrDoc", () => { + const r = convertFileReplaceToolCall({ + document: attrDoc, + blockRanges: attrRanges(), + target: `Hello`, + replacement: `New block\nHello`, + isPossiblyPartial: true, + }); + expect(deletes(r)).toHaveLength(0); + expect(updates(r)).toHaveLength(0); + expect(adds(r)).toHaveLength(1); + }); + }); + + describe("streaming & edge cases", () => { + it("does NOT emit deletes when isPossiblyPartial is true", () => { + const r = run(`Hello World`, ``, true); + expect(deletes(r)).toHaveLength(0); + }); + + it("emits deletes when isPossiblyPartial is false", () => { + const r = run(`Hello World`, ``); + expect(deletes(r)).toHaveLength(1); + }); + + it("does NOT emit deletes during streaming (attrDoc)", () => { + const r = convertFileReplaceToolCall({ + document: attrDoc, + blockRanges: attrRanges(), + target: attrDoc, + replacement: `Hello`, + isPossiblyPartial: true, + }); + expect(deletes(r)).toHaveLength(0); + }); + + it("emits deletes when complete (attrDoc)", () => { + const r = convertFileReplaceToolCall({ + document: attrDoc, + blockRanges: attrRanges(), + target: attrDoc, + replacement: `Hello`, + isPossiblyPartial: false, + }); + expect(updates(r)).toHaveLength(0); + expect(deletes(r)).toHaveLength(1); + expect(deletes(r)[0].id).toBe("p2"); + }); + + it("handles incomplete tag during streaming", () => { + const r = run( + `Hello World`, + `Partial content<`, + true, + ); + expect(r).toBeDefined(); + }); + + it("returns empty when replacement is too incomplete", () => { + const r = run( + `Hello World`, + ` { + const target = `Hello World`; + + // Call 1: Prefix of original — suppressed (streaming artifact) + const r1 = run(target, `Hel`, true); + expect(updates(r1)).toHaveLength(0); + + // Call 2: Diverges from original ("Beautiful" ≠ "World") → update emitted + const r2 = run(target, `Hello Beautiful`, true); + expect(updates(r2)).toHaveLength(1); + expect(updates(r2)[0].block).toContain("Hello Beautiful"); + expect(deletes(r2)).toHaveLength(0); + + // Call 3: Complete + const full = `Hello Beautiful World`; + const r3 = run(target, full); + expect(updates(r3)).toHaveLength(1); + expect(updates(r3)[0].block).toBe(full); + }); + + it("returns empty for empty document", () => { + const r = convertFileReplaceToolCall({ + document: "", + blockRanges: new Map(), + target: "anything", + replacement: "anything", + isPossiblyPartial: false, + }); + expect(r).toHaveLength(0); + }); + + it("handles unknown ID element as ADD (not ignored)", () => { + const r = run( + `Hello World`, + `Mystery block`, + ); + expect(deletes(r)).toHaveLength(1); + expect(deletes(r)[0].id).toBe("p1"); + }); + + it("handles cross-block target in rich document", () => { + const r = convertFileReplaceToolCall({ + document: richDoc, + blockRanges: richRanges(), + target: `\nThis`, + replacement: `\nThat`, + isPossiblyPartial: false, + }); + // p2 is in allAffected but effectively deleted (skipped by no-elements logic which collapses into p1) + // TODO: this should just be an update to p2? and p1 unaffected? + expect(updates(r)).toHaveLength(1); + expect(updates(r)[0].id).toBe("p1"); + expect(deletes(r)).toHaveLength(1); + expect(deletes(r)[0].id).toBe("p2"); + }); + + it("handles streaming with incomplete tag in rich document", () => { + const r = convertFileReplaceToolCall({ + document: richDoc, + blockRanges: richRanges(), + target: `Hello World`, + replacement: `Hello Unive`, + isPossiblyPartial: true, + }); + expect(updates(r)).toHaveLength(1); + expect(updates(r)[0].id).toBe("p1"); + expect(deletes(r)).toHaveLength(0); + }); + + it("returns empty for too-incomplete replacement in rich document", () => { + const r = convertFileReplaceToolCall({ + document: richDoc, + blockRanges: richRanges(), + target: `Hello`, + replacement: ` { + /** + * Validates streaming consistency: + * 1. Every op in partial result has a matching op (same type + id) in final + * 2. Matching ops appear in the same relative order as in the final result + */ + function assertStreamingConsistency( + target: string, + fullReplacement: string, + doc: string, + ranges: Map, + ) { + const finalResult = convertFileReplaceToolCall({ + document: doc, + blockRanges: ranges, + target, + replacement: fullReplacement, + isPossiblyPartial: false, + }); + + /** Find the index of an op in finalResult by type + id */ + function finalIndex(op: TsxToolCall): number { + return finalResult.findIndex((f) => { + if (f.type !== op.type) return false; + if (f.type === "update" && op.type === "update") + return f.id === op.id; + if (f.type === "delete" && op.type === "delete") + return f.id === op.id; + if (f.type === "add" && op.type === "add") { + return ( + f.referenceId === op.referenceId && f.position === op.position + ); + } + return false; + }); + } + + for (let i = 1; i <= fullReplacement.length; i++) { + const partial = fullReplacement.slice(0, i); + const partialResult = convertFileReplaceToolCall({ + document: doc, + blockRanges: ranges, + target, + replacement: partial, + isPossiblyPartial: true, + }); + + // (1) Every partial op must have a match in final result + for (const partialOp of partialResult) { + const idx = finalIndex(partialOp); + expect( + idx, + `Prefix length ${i}: ${partialOp.type} op should have a match in final result (${JSON.stringify(partialOp)})`, + ).toBeGreaterThanOrEqual(0); + } + + // (2) Ops must appear in the same relative order as in final + const indices = partialResult.map((op) => finalIndex(op)); + for (let j = 1; j < indices.length; j++) { + expect( + indices[j], + `Prefix length ${i}: ops should be in same order as final (index ${indices[j]} should be > ${indices[j - 1]})`, + ).toBeGreaterThan(indices[j - 1]); + } + } + } + + it("prefix-subset: simple update", () => { + assertStreamingConsistency( + `Hello World`, + `Hello Beautiful World`, + simpleDoc, + simpleRanges(), + ); + }); + + it("prefix-subset: update + add + delete", () => { + assertStreamingConsistency( + `Hello World\nSecond paragraph`, + `Modified\nNew Block`, + simpleDoc, + simpleRanges(), + ); + }); + + it("prefix-subset: rich document update", () => { + assertStreamingConsistency( + `Hello World`, + `Hello Beautiful Universe`, + richDoc, + richRanges(), + ); + }); + + it("prefix-subset: reorder with skipped-block deletes", () => { + assertStreamingConsistency( + `Hello World\nSecond paragraph`, + `Second paragraph\nHello World`, + simpleDoc, + simpleRanges(), + ); + }); + }); + }); +}); diff --git a/packages/xl-ai/src/api/formats/tsx-document/tools/convertFileReplaceToolCall.ts b/packages/xl-ai/src/api/formats/tsx-document/tools/convertFileReplaceToolCall.ts new file mode 100644 index 0000000000..88e31f7a87 --- /dev/null +++ b/packages/xl-ai/src/api/formats/tsx-document/tools/convertFileReplaceToolCall.ts @@ -0,0 +1,357 @@ +/** + * Converts an LLM's file_replace tool call into BlockNote operations: + * - UPDATE: replacement element has ID matching existing block + * - ADD: replacement element has no ID (or unknown ID) + * - DELETE: block in target, but ID not in replacement + * + * Uses a two-pointer walk: iterates replacement elements in order while + * maintaining a cursor into the original affected blocks. This naturally + * handles streaming, reordering, and deletions. + * + * Streaming consistency: calling with replacement.slice(0, N) returns + * a prefix-subset of calling with the full replacement. Deletes are + * only emitted when isPossiblyPartial = false. + */ + +import type { AddBlocksToolCall } from "../../base-tools/createAddBlocksTool.js"; +import type { UpdateBlockToolCall } from "../../base-tools/createUpdateBlockTool.js"; +import type { DeleteBlockToolCall } from "../../base-tools/delete.js"; + +export type TsxToolCall = + | AddBlocksToolCall + | UpdateBlockToolCall + | DeleteBlockToolCall; + +/** + * Character range of a block in the document string. + * `start` is inclusive, `end` is exclusive (matches `String.substring` semantics). + */ +export type BlockRange = { + start: number; + end: number; +}; + +export type ConvertOptions = { + document: string; + blockRanges: Map; + target: string; + replacement: string; + isPossiblyPartial: boolean; +}; + +type ParsedElement = { content: string; id: string | null }; + +/** Parse TSX string into top-level elements with their IDs. */ +function parseElements(tsx: string): ParsedElement[] { + const elements: ParsedElement[] = []; + const pattern = /<([A-Z][a-zA-Z0-9]*)\s*([^>]*?)(?:\/>|>([\s\S]*?)<\/\1>)/g; + let match; + while ((match = pattern.exec(tsx)) !== null) { + const idMatch = match[2].match(/id=(["'])(.*?)\1/); + elements.push({ content: match[0], id: idMatch ? idMatch[2] : null }); + } + return elements; +} + +/** + * Extract complete elements from potentially incomplete TSX (streaming). + * Strips incomplete trailing tags and closes any unclosed tags. + */ +function getPartialTsx(tsx: string): string { + const lastOpen = tsx.lastIndexOf("<"); + const lastClose = tsx.lastIndexOf(">"); + let processed = lastOpen > lastClose ? tsx.substring(0, lastOpen) : tsx; + + const openTags: string[] = []; + const tagPattern = /<\/?([A-Z][a-zA-Z0-9]*)/g; + let m; + while ((m = tagPattern.exec(processed)) !== null) { + if (m[0].startsWith(" 0 && openTags[openTags.length - 1] === m[1]) { + openTags.pop(); + } + } else { + const tagEnd = processed.indexOf(">", m.index); + if (tagEnd !== -1 && processed[tagEnd - 1] !== "/") { + openTags.push(m[1]); + } + } + } + for (let i = openTags.length - 1; i >= 0; i--) { + processed += ``; + } + return processed.trim(); +} + +/** Check if a block is fully contained within the target range. */ +function isFullyContained( + range: BlockRange, + targetStart: number, + targetEnd: number, +): boolean { + return range.start >= targetStart && range.end <= targetEnd; +} + +/** + * Check if `candidate` is a prefix of `full` (ignoring trailing closing tags). + * Used during streaming to detect that auto-closed content is just a truncated + * version of the original — not a real change. + */ +function isPrefixOf(candidate: string, full: string): boolean { + const strip = (s: string) => s.replace(/(<\/[A-Z][a-zA-Z0-9]*>\s*)+$/g, ""); + const strippedCandidate = strip(candidate); + const strippedFull = strip(full); + return ( + strippedCandidate !== strippedFull && + strippedFull.startsWith(strippedCandidate) + ); +} + +/** + * For a partially-overlapping block, splice the replacement into the + * overlapping portion and return the updated block content. + */ +function spliceBlock( + document: string, + range: BlockRange, + targetStart: number, + targetEnd: number, + replacementText: string, +): string { + const original = document.substring(range.start, range.end); + const relStart = Math.max(0, targetStart - range.start); + const relEnd = Math.min(original.length, targetEnd - range.start); + return ( + original.substring(0, relStart) + + replacementText + + original.substring(relEnd) + ); +} + +/** + * For a partially-overlapping block that was "skipped" (not matched), + * trim the consumed portion without inserting replacement text. + */ +function trimBlock( + document: string, + range: BlockRange, + targetStart: number, + targetEnd: number, +): string { + return spliceBlock(document, range, targetStart, targetEnd, ""); +} + +export function convertFileReplaceToolCall( + options: ConvertOptions, +): TsxToolCall[] { + const { document, blockRanges, target, replacement, isPossiblyPartial } = + options; + const result: TsxToolCall[] = []; + + // Step 1: Locate target in document + const targetStart = document.indexOf(target); + if (targetStart === -1) return result; + const targetEnd = targetStart + target.length; + + // Step 2: Prepare replacement (handle streaming) + const processedReplacement = isPossiblyPartial + ? getPartialTsx(replacement) + : replacement; + if (!processedReplacement && replacement) return result; + + // Step 3: Find affected blocks, sorted by document position + const allAffected: string[] = []; + for (const [id, range] of blockRanges) { + if (range.start < targetEnd && range.end > targetStart) { + allAffected.push(id); + } + } + allAffected.sort( + (a, b) => blockRanges.get(a)!.start - blockRanges.get(b)!.start, + ); + + if (allAffected.length === 0) return result; + + // Step 4: Parse replacement elements + const elements = parseElements(processedReplacement); + + // Build a set to quickly check if an ID is in the affected window + const affectedSet = new Set(allAffected); + + // If no parseable elements: find-and-replace on the document level. + // The first block absorbs the replacement text + the tail of the last block. + // All other affected blocks are deleted. + if (elements.length === 0) { + const firstId = allAffected[0]; + const firstRange = blockRanges.get(firstId)!; + const lastId = allAffected[allAffected.length - 1]; + const lastRange = blockRanges.get(lastId)!; + + // Build the new first block: content before target + replacement + content after target + const beforeTarget = document.substring(firstRange.start, targetStart); + const afterTarget = document.substring(targetEnd, lastRange.end); + const newFirstBlock = beforeTarget + processedReplacement + afterTarget; + const originalFirst = document.substring(firstRange.start, firstRange.end); + + if (newFirstBlock !== originalFirst) { + if (!newFirstBlock.trim() && !isPossiblyPartial) { + // If content is empty/whitespace only after replacement, treat as DELETE + result.push({ type: "delete", id: firstId }); + } else { + result.push({ type: "update", id: firstId, block: newFirstBlock }); + } + } + + // All other affected blocks → DELETE + for (let i = 1; i < allAffected.length; i++) { + if (!isPossiblyPartial) { + result.push({ type: "delete", id: allAffected[i] }); + } + } + return result; + } + + // Step 5: Two-pointer walk + let cursor = 0; // index into allAffected + let lastRefId = allAffected[0]; + let seenExisting = false; // have we seen any existing block in the walk? + const consumed = new Set(); // IDs we've already passed + let pendingAdds: string[] = []; // buffer for batching consecutive ADDs + + /** Flush buffered ADDs as a single batched operation. */ + function flushAdds() { + if (pendingAdds.length === 0) return; + result.push({ + type: "add", + referenceId: lastRefId, + position: seenExisting ? "after" : "before", + blocks: [...pendingAdds], + }); + pendingAdds = []; + } + + for (const element of elements) { + if ( + element.id && + affectedSet.has(element.id) && + !consumed.has(element.id) + ) { + // CASE A: element matches an original block ahead of cursor + flushAdds(); // flush pending adds before processing this block + + const matchIdx = allAffected.indexOf(element.id, cursor); + + if (matchIdx === -1) { + // Shouldn't happen if !consumed and in affectedSet, but guard + continue; + } + + // Skip (delete/trim) blocks between cursor and matchIdx + for (let i = cursor; i < matchIdx; i++) { + const skipId = allAffected[i]; + const skipRange = blockRanges.get(skipId)!; + consumed.add(skipId); + + if (isFullyContained(skipRange, targetStart, targetEnd)) { + // Safe to delete even during streaming: this block was definitively + // skipped because a later block appeared first in the replacement. + result.push({ type: "delete", id: skipId }); + } else { + // Edge block: trim consumed portion + const trimmed = trimBlock( + document, + skipRange, + targetStart, + targetEnd, + ); + const original = document.substring(skipRange.start, skipRange.end); + if (trimmed !== original) { + result.push({ type: "update", id: skipId, block: trimmed }); + } + } + } + + // Process the matched block + const matchRange = blockRanges.get(element.id)!; + consumed.add(element.id); + + if (isFullyContained(matchRange, targetStart, targetEnd)) { + // Fully contained: UPDATE if content changed + const original = document.substring(matchRange.start, matchRange.end); + if (element.content !== original) { + // During streaming, suppress if content is just a truncated original + if (isPossiblyPartial && isPrefixOf(element.content, original)) { + // streaming artifact — don't update yet + } else { + result.push({ + type: "update", + id: element.id, + block: element.content, + }); + } + } + } else { + // Edge block: merge — replace the overlapping portion with element content + const merged = spliceBlock( + document, + matchRange, + targetStart, + targetEnd, + element.content, + ); + const original = document.substring(matchRange.start, matchRange.end); + if (merged !== original) { + // During streaming, suppress if merged content is just a truncated original + if (isPossiblyPartial && isPrefixOf(merged, original)) { + // streaming artifact — don't update yet + } else { + result.push({ type: "update", id: element.id, block: merged }); + } + } + } + + cursor = matchIdx + 1; + lastRefId = element.id; + seenExisting = true; + } else if (element.id && consumed.has(element.id)) { + // CASE B: already-passed block (reorder) → buffer for add + pendingAdds.push(element.content); + } else if ( + element.id && + blockRanges.has(element.id) && + !affectedSet.has(element.id) + ) { + // CASE C: references a block outside the target range + // Skip — adding it would duplicate an existing block + continue; + } else { + // CASE D: new block (no ID or unknown ID) → buffer for add + pendingAdds.push(element.content); + } + } + + // Flush any remaining buffered ADDs + flushAdds(); + + // Remaining blocks after cursor → delete/trim + for (let i = cursor; i < allAffected.length; i++) { + const id = allAffected[i]; + if (consumed.has(id)) continue; + const range = blockRanges.get(id)!; + + if (isFullyContained(range, targetStart, targetEnd)) { + if (!isPossiblyPartial) { + result.push({ type: "delete", id }); + } + } else { + // Edge block: trim consumed portion + const trimmed = trimBlock(document, range, targetStart, targetEnd); + const original = document.substring(range.start, range.end); + if (trimmed !== original) { + result.push({ type: "update", id, block: trimmed }); + } + } + } + + return result; +} diff --git a/packages/xl-ai/src/api/formats/tsx-document/tools/index.ts b/packages/xl-ai/src/api/formats/tsx-document/tools/index.ts new file mode 100644 index 0000000000..2f2f0bef3a --- /dev/null +++ b/packages/xl-ai/src/api/formats/tsx-document/tools/index.ts @@ -0,0 +1,53 @@ +import { streamTool } from "../../../../streamTool/streamTool.js"; + +type FileReplaceToolCall = { + type: "file_replace"; + target: string; + replacement: string; +}; + +// Placeholder for now +export const tools = { + // We use streamTool directly as requested + replace: streamTool({ + name: "file_replace", + description: "Replace a part of the document file", + inputSchema: { + type: "object", + properties: { + target: { + type: "string", + description: "The string to replace", + }, + replacement: { + type: "string", + description: "The replacement string", + }, + }, + required: ["target", "replacement"], + }, + validate: (operation: any) => { + if (!operation.target || !operation.replacement) { + return { ok: false, error: "Missing target or replacement" }; + } + return { ok: true, value: operation as FileReplaceToolCall }; + }, + executor: () => { + return { + execute: async (chunk) => { + if (chunk.operation.type !== "file_replace") { + return false; + } + + const operation = chunk.operation as FileReplaceToolCall; + + // Placeholder: logic to map to block updates will be added later + return true; + }, + }; + }, + }), +}; + +// TODO: correct approach at all? prosemirror vs html / tsx docs +// diff --git a/packages/xl-ai/src/api/formats/tsx-document/tsxDocument.test.ts b/packages/xl-ai/src/api/formats/tsx-document/tsxDocument.test.ts new file mode 100644 index 0000000000..8d7cb5be0d --- /dev/null +++ b/packages/xl-ai/src/api/formats/tsx-document/tsxDocument.test.ts @@ -0,0 +1,185 @@ +import { getCurrentTest } from "@vitest/runner"; +import { getSortedEntries, snapshot, toHashString } from "msw-snapshot"; +import { setupServer } from "msw/node"; +import path from "path"; +import { afterAll, afterEach, beforeAll, describe, it } from "vitest"; +import { testAIModels } from "../../../testUtil/testAIModels.js"; + +import { BlockNoteEditor } from "@blocknote/core"; +import { StreamToolExecutor } from "../../../streamTool/StreamToolExecutor.js"; +import { ClientSideTransport } from "../../../streamTool/vercelAiSdk/clientside/ClientSideTransport.js"; +import { generateSharedTestCases } from "../tests/sharedTestCases.js"; +import { tsxDocumentLLMFormat } from "./tsxDocument.js"; + +const BASE_FILE_PATH = path.resolve( + __dirname, + "__snapshots__", + path.basename(__filename), +); + +const fetchCountMap: Record = {}; + +async function createRequestHash(req: Request) { + const url = new URL(req.url); + return [ + // url.host, + // url.pathname, + toHashString([ + req.method, + url.origin, + url.pathname, + getSortedEntries(url.searchParams), + getSortedEntries(req.headers), + // getSortedEntries(req.cookies), + new TextDecoder("utf-8").decode(await req.arrayBuffer()), + ]), + ].join("/"); +} + +// Main test suite with snapshot middleware +describe("Models", () => { + // Define server with snapshot middleware for the main tests + const server = setupServer( + snapshot({ + updateSnapshots: "missing", + // onSnapshotUpdated: "all", + // ignoreSnapshots: true, + async createSnapshotPath(info) { + // use a unique path for each model + const t = getCurrentTest()!; + const mswPath = path.join( + t.suite!.name, // same directory as the test snapshot + "__msw_snapshots__", + t.suite!.suite!.name, // model / streaming params + t.name, + ); + // in case there are multiple requests in a test, we need to use a separate snapshot for each request + fetchCountMap[mswPath] = (fetchCountMap[mswPath] || 0) + 1; + const hash = await createRequestHash(info.request); + return mswPath + `_${fetchCountMap[mswPath]}_${hash}.json`; + }, + basePath: BASE_FILE_PATH, + // onFetchFromSnapshot(info, snapshot) { + // console.log("onFetchFromSnapshot", info, snapshot); + // }, + // onFetchFromServer(info, snapshot) { + // console.log("onFetchFromServer", info, snapshot); + // }, + }), + ); + + beforeAll(() => { + server.listen(); + }); + + afterAll(() => { + server.close(); + }); + + afterEach(() => { + delete (window as Window & { __TEST_OPTIONS?: any }).__TEST_OPTIONS; + }); + + const testMatrix = [ + { + model: testAIModels.openai, + stream: true, + }, + // { + // model: testAIModels.openai, + // stream: false, + // }, + // TODO: https://github.com/vercel/ai/issues/8533 + { + model: testAIModels.groq, + stream: true, + }, + // { + // model: testAIModels.groq, + // stream: false, + // }, + // anthropic streaming needs further investigation for some test cases + // { + // model: testAIModels.anthropic, + // stream: true, + // }, + { + model: testAIModels.anthropic, + stream: true, + }, + // currently doesn't support streaming + // https://github.com/vercel/ai/issues/5350 + // { + // model: testAIModels.albert, + // stream: true, + // }, + // This works for most prompts, but not all (would probably need a llama upgrade?) + // { + // model: testAIModels.albert, + // stream: false, + // }, + ]; + + for (const params of testMatrix) { + describe(`${params.model.provider}/${params.model.modelId} (${ + params.stream ? "streaming" : "non-streaming" + })`, () => { + generateSharedTestCases({ + streamToolsProvider: tsxDocumentLLMFormat.getStreamToolsProvider({ + withDelays: false, + }), + documentStateBuilder: tsxDocumentLLMFormat.defaultDocumentStateBuilder, + transport: new ClientSideTransport({ + systemPrompt: tsxDocumentLLMFormat.systemPrompt, + model: params.model, + stream: params.stream, + _additionalOptions: { + maxRetries: 0, + }, + }), + }); + }); + } +}); + +describe("streamToolsProvider", () => { + it("should return the correct stream tools", () => { + // test skipped, this is only to validate type inference + return; + + // eslint-disable-next-line no-unreachable + const editor = BlockNoteEditor.create(); + const streamTools = htmlBlockLLMFormat + .getStreamToolsProvider({ + defaultStreamTools: { + add: true, + }, + }) + .getStreamTools(editor, true); + + const executor = new StreamToolExecutor(streamTools); + + executor.executeOne({ + type: "add", + blocks: ["

test

"], + referenceId: "1", + position: "after", + }); + + executor.executeOne({ + // @ts-expect-error + type: "update", + blocks: ["

test

"], + referenceId: "1", + position: "after", + }); + + executor.executeOne({ + type: "add", + // @ts-expect-error + blocks: [{ type: "paragraph", content: "test" }], + referenceId: "1", + position: "after", + }); + }); +}); diff --git a/packages/xl-ai/src/api/formats/tsx-document/tsxDocument.ts b/packages/xl-ai/src/api/formats/tsx-document/tsxDocument.ts new file mode 100644 index 0000000000..48c93d8bdb --- /dev/null +++ b/packages/xl-ai/src/api/formats/tsx-document/tsxDocument.ts @@ -0,0 +1,48 @@ +import { + BlockNoteSchema, + defaultBlockSpecs, + defaultInlineContentSpecs, + defaultStyleSpecs, +} from "@blocknote/core"; +import { TsxExporter } from "../../exporters/tsx/TsxExporter.js"; +import { makeDocumentStateBuilder } from "../DocumentStateBuilder.js"; +import { StreamToolsConfig, StreamToolsProvider } from "../formats.js"; +import { tools } from "./tools/index.js"; + +const systemPrompt = `You are manipulating a text document using TSX components. +Each block is represented as a TSX component with props. +`; + +// Reuse the same schema creation logic or import if available centrally. +// Ideally, the exporter should accept any schema, but for default builder we need one. +// We'll create a default one similar to tests. +const defaultSchema = BlockNoteSchema.create({ + blockSpecs: defaultBlockSpecs, + inlineContentSpecs: defaultInlineContentSpecs, + styleSpecs: defaultStyleSpecs, +}); + +const exporter = new TsxExporter(defaultSchema); + +export const tsxDocumentLLMFormat = { + getStreamToolsProvider: ( + _opts: { withDelays?: boolean; defaultStreamTools?: T } = {}, + ): StreamToolsProvider => ({ + getStreamTools: (_editor, _selectionInfo, _onBlockUpdate) => { + // Return the placeholder replacement tool + return [tools.replace]; + }, + }), + systemPrompt, + tools, + defaultDocumentStateBuilder: makeDocumentStateBuilder( + async (_editor, block) => { + // We wrap the single block in an array because toTsx expects an array + // But verify what block structure is passed. + // makeDocumentStateBuilder passes a Block object. + // toTsx expects BlockFromConfig. + // We can cast or minimal wrapper. + return exporter.toTsx([block] as any); + }, + ), +}; diff --git a/packages/xl-ai/src/index.ts b/packages/xl-ai/src/index.ts index 2f7dd58c09..b3dd41727d 100644 --- a/packages/xl-ai/src/index.ts +++ b/packages/xl-ai/src/index.ts @@ -1,6 +1,7 @@ import "./style.css"; export * from "./AIExtension.js"; +export * from "./api/exporters/tsx/index.js"; export * from "./components/AIMenu/AIMenu.js"; export * from "./components/AIMenu/AIMenuController.js"; export * from "./components/AIMenu/getDefaultAIMenuItems.js"; diff --git a/packages/xl-ai/src/prosemirror/changeset.ts b/packages/xl-ai/src/prosemirror/changeset.ts index 26e3099a89..c91d6c1836 100644 --- a/packages/xl-ai/src/prosemirror/changeset.ts +++ b/packages/xl-ai/src/prosemirror/changeset.ts @@ -207,7 +207,15 @@ export function updateToReplaceSteps( updateToPos, ); - let updatedDoc = updatedTr.doc; + return trToReplaceSteps(updatedTr, doc, dontReplaceContentAtEnd); +} + +export function trToReplaceSteps( + tr: Transform, + doc: Node, + dontReplaceContentAtEnd = false, +) { + let updatedDoc = tr.doc; let changeset = ChangeSet.create( doc, @@ -215,7 +223,7 @@ export function updateToReplaceSteps( createEncoder(doc, updatedDoc), ); - changeset = changeset.addSteps(updatedDoc, updatedTr.mapping.maps, 0); + changeset = changeset.addSteps(updatedDoc, tr.mapping.maps, 0); // When we're streaming (we sent `dontReplaceContentAtEnd = true`), // we need to add back the content that was removed at the end of the block. @@ -238,16 +246,16 @@ export function updateToReplaceSteps( lastChange.fromA + lengthB, lastChange.toA, ); - updatedTr.step( + tr.step( new ReplaceStep(lastChange.toB, lastChange.toB, endOfBlockToReAdd), ); - updatedDoc = updatedTr.doc; + updatedDoc = tr.doc; changeset = ChangeSet.create( changeset.startDoc, undefined, createEncoder(changeset.startDoc, updatedDoc), ); - changeset = changeset.addSteps(updatedDoc, updatedTr.mapping.maps, 0); + changeset = changeset.addSteps(updatedDoc, tr.mapping.maps, 0); } } @@ -295,7 +303,7 @@ export function updateToReplaceSteps( } } - addMissingChanges(changes, doc, updatedDoc); + // addMissingChanges(changes, doc, updatedDoc); for (let i = 0; i < changes.length; i++) { const step = changes[i]; diff --git a/packages/xl-ai/src/streamTool/StreamToolExecutor.ts b/packages/xl-ai/src/streamTool/StreamToolExecutor.ts index cb6f0b927e..fb11263d47 100644 --- a/packages/xl-ai/src/streamTool/StreamToolExecutor.ts +++ b/packages/xl-ai/src/streamTool/StreamToolExecutor.ts @@ -39,15 +39,17 @@ type Operation[] | StreamTool> = { * @example see the `manual-execution` example */ export class StreamToolExecutor[]> { - private readonly stream: TransformStream< - string | Operation, - { - status: "ok"; - chunk: Operation; - } - > & { - finishPromise: Promise; - }; + private stream: + | undefined + | (TransformStream< + string | Operation, + { + status: "ok"; + chunk: Operation; + } + > & { + finishPromise: Promise; + }); /** * @param streamTools - The StreamTools to use to apply the StreamToolCalls @@ -57,10 +59,14 @@ export class StreamToolExecutor[]> { private streamTools: T, private abortSignal?: AbortSignal, ) { - this.stream = this.createStream(); + // this.stream = this.createStream(); } - private createStream() { + async init() { + this.stream = await this.createStream(); + } + + private async createStream() { let lastParsedResult: Operation | undefined; const stream = new TransformStream, Operation>({ transform: async (chunk, controller) => { @@ -93,7 +99,9 @@ export class StreamToolExecutor[]> { // - Works regardless of the number of internal transforms. // - The readable can still be exposed if the consumer wants it, but they don’t have to consume it for close() to guarantee processing is done. - const secondTransform = stream.readable.pipeThrough(this.createExecutor()); + const secondTransform = stream.readable.pipeThrough( + await this.createExecutor(), + ); const [internalReadable, externalReadable] = secondTransform.tee(); @@ -108,8 +116,10 @@ export class StreamToolExecutor[]> { }; } - private createExecutor() { - const executors = this.streamTools.map((tool) => tool.executor()); + private async createExecutor() { + const executors = await Promise.all( + this.streamTools.map((tool) => tool.executor()), + ); return new TransformStream< Operation, @@ -161,6 +171,9 @@ export class StreamToolExecutor[]> { * Make sure to call `close` on the StreamToolExecutor instead of on the writable returned here! */ public get writable() { + if (!this.stream) { + throw new Error("StreamToolExecutor not initialized"); + } return this.stream.writable; } @@ -168,10 +181,16 @@ export class StreamToolExecutor[]> { * Returns a ReadableStream that can be used to read the results of the executor. */ public get readable() { + if (!this.stream) { + throw new Error("StreamToolExecutor not initialized"); + } return this.stream.readable; } public async finish() { + if (!this.stream) { + throw new Error("StreamToolExecutor not initialized"); + } await this.stream.finishPromise; } diff --git a/packages/xl-ai/src/streamTool/jsonSchema.ts b/packages/xl-ai/src/streamTool/jsonSchema.ts index 0637a8c976..17ba8d0abd 100644 --- a/packages/xl-ai/src/streamTool/jsonSchema.ts +++ b/packages/xl-ai/src/streamTool/jsonSchema.ts @@ -81,10 +81,19 @@ export function createStreamToolsArraySchema( } export function streamToolsToToolSet(streamTools: StreamTool[]): ToolSet { - return { - applyDocumentOperations: { - inputSchema: jsonSchema(createStreamToolsArraySchema(streamTools)), - outputSchema: jsonSchema({ type: "object" }), - }, - }; + return Object.fromEntries( + streamTools.map((tool) => [ + tool.name, + { + inputSchema: jsonSchema(tool.inputSchema), + outputSchema: jsonSchema({ type: "object" }), + }, + ]), + ); + // return { + // applyDocumentOperations: { + // inputSchema: jsonSchema(createStreamToolsArraySchema(streamTools)), + // outputSchema: jsonSchema({ type: "object" }), + // }, + // }; } diff --git a/packages/xl-ai/src/streamTool/filterNewOrUpdatedOperations.test.ts b/packages/xl-ai/src/streamTool/operations/filterNewOrUpdatedOperations.test.ts similarity index 100% rename from packages/xl-ai/src/streamTool/filterNewOrUpdatedOperations.test.ts rename to packages/xl-ai/src/streamTool/operations/filterNewOrUpdatedOperations.test.ts diff --git a/packages/xl-ai/src/streamTool/filterNewOrUpdatedOperations.ts b/packages/xl-ai/src/streamTool/operations/filterNewOrUpdatedOperations.ts similarity index 69% rename from packages/xl-ai/src/streamTool/filterNewOrUpdatedOperations.ts rename to packages/xl-ai/src/streamTool/operations/filterNewOrUpdatedOperations.ts index ee4ee6cc60..f5f296678c 100644 --- a/packages/xl-ai/src/streamTool/filterNewOrUpdatedOperations.ts +++ b/packages/xl-ai/src/streamTool/operations/filterNewOrUpdatedOperations.ts @@ -67,3 +67,42 @@ export async function* filterNewOrUpdatedOperations( metadata, }; } + +// TODO: rename? +export async function* filterNewOrUpdatedCalls( + partialObjectStream: AsyncIterable, + metadata: any, +): AsyncGenerator<{ + partialOperation: any; + isUpdateToPreviousOperation: boolean; + isPossiblyPartial: boolean; + metadata: any; +}> { + let first = true; + + let lastOp: any; + + for await (const chunk of partialObjectStream) { + lastOp = chunk; + yield { + partialOperation: chunk, + isUpdateToPreviousOperation: !first, + isPossiblyPartial: !first, + metadata, + }; + first = false; + } + + if (!lastOp) { + // TODO: this should be handled somewhere else + throw new Error("No operations seen"); + } + + // mark final operation as final (by emitting with isPossiblyPartial: false) + yield { + partialOperation: lastOp, + isUpdateToPreviousOperation: true, + isPossiblyPartial: false, + metadata, + }; +} diff --git a/packages/xl-ai/src/streamTool/streamTool.ts b/packages/xl-ai/src/streamTool/streamTool.ts index 0f3ccdfe10..79fd8817ef 100644 --- a/packages/xl-ai/src/streamTool/streamTool.ts +++ b/packages/xl-ai/src/streamTool/streamTool.ts @@ -45,7 +45,7 @@ export type StreamTool = { * * @returns the stream of operations that have not been processed (and should be passed on to execute handlers of other StreamTools) */ - executor: () => { + executor: () => Promise<{ execute: ( chunk: { operation: StreamToolCall[]>; @@ -55,7 +55,7 @@ export type StreamTool = { }, abortSignal?: AbortSignal, ) => Promise; - }; + }>; }; export type StreamToolCallSingle> = diff --git a/packages/xl-ai/src/streamTool/vercelAiSdk/clientside/ClientSideTransport.ts b/packages/xl-ai/src/streamTool/vercelAiSdk/clientside/ClientSideTransport.ts index 0a16b55e60..4d2bb3e33a 100644 --- a/packages/xl-ai/src/streamTool/vercelAiSdk/clientside/ClientSideTransport.ts +++ b/packages/xl-ai/src/streamTool/vercelAiSdk/clientside/ClientSideTransport.ts @@ -89,12 +89,31 @@ export class ClientSideTransport injectDocumentStateMessages(messages), ), tools, + // tools: { + // str_replace_based_edit_tool: anthropic.tools.textEditor_20250728({ + // execute: async ({}) => { + // return {}; + // }, + // needsApproval: true, + // }), + // }, + toolChoice: "required", // extra options for streamObject ...((_additionalOptions ?? {}) as any), // activeTools: ["applyDocumentOperations"], + onFinish: ({ usage }) => { + // your own logic, e.g. for saving the chat history or recording usage + console.log("usage:", JSON.stringify(usage, null, 2)); + }, }); - + // console.log( + // JSON.stringify( + // await convertToModelMessages(injectDocumentStateMessages(messages)), + // null, + // 2, + // ), + // ); return ret.toUIMessageStream(); } diff --git a/packages/xl-ai/src/streamTool/vercelAiSdk/util/UIMessageStreamToOperationsResult.ts b/packages/xl-ai/src/streamTool/vercelAiSdk/util/UIMessageStreamToOperationsResult.ts index 5995265190..d4d6467bec 100644 --- a/packages/xl-ai/src/streamTool/vercelAiSdk/util/UIMessageStreamToOperationsResult.ts +++ b/packages/xl-ai/src/streamTool/vercelAiSdk/util/UIMessageStreamToOperationsResult.ts @@ -3,7 +3,10 @@ import { createAsyncIterableStream, createAsyncIterableStreamFromAsyncIterable, } from "../../../util/stream.js"; -import { filterNewOrUpdatedOperations } from "../../filterNewOrUpdatedOperations.js"; +import { + filterNewOrUpdatedCalls, + filterNewOrUpdatedOperations, +} from "../../operations/filterNewOrUpdatedOperations.js"; import { preprocessOperationsStreaming } from "../../preprocess.js"; import { StreamTool, StreamToolCall } from "../../streamTool.js"; @@ -33,7 +36,9 @@ type OperationsResult[]> = AsyncIterableStream<{ metadata: any; }>; -export function objectStreamToOperationsResult[]>( +export function operationsObjectStreamToOperationsResult< + T extends StreamTool[], +>( stream: ReadableStream[] }>>, streamTools: T, chunkMetadata: any, @@ -49,3 +54,17 @@ export function objectStreamToOperationsResult[]>( ), ); } + +export function objectStreamToOperationsResult[]>( + stream: ReadableStream>, + streamTools: T, + chunkMetadata: any, +): OperationsResult { + // Note: we can probably clean this up by switching to streams instead of async iterables + return createAsyncIterableStreamFromAsyncIterable( + preprocessOperationsStreaming( + filterNewOrUpdatedCalls(createAsyncIterableStream(stream), chunkMetadata), + streamTools, + ), + ); +} diff --git a/packages/xl-ai/src/streamTool/vercelAiSdk/util/chatHandlers.ts b/packages/xl-ai/src/streamTool/vercelAiSdk/util/chatHandlers.ts index 2014b2d8a8..4ad1e4928e 100644 --- a/packages/xl-ai/src/streamTool/vercelAiSdk/util/chatHandlers.ts +++ b/packages/xl-ai/src/streamTool/vercelAiSdk/util/chatHandlers.ts @@ -1,11 +1,20 @@ import { getErrorMessage } from "@ai-sdk/provider-utils"; import type { Chat } from "@ai-sdk/react"; -import { DeepPartial, isToolUIPart, UIMessage } from "ai"; +import { + DeepPartial, + isToolUIPart, + UIMessage, + UITool, + UIToolInvocation, +} from "ai"; import { ChunkExecutionError } from "../../ChunkExecutionError.js"; import { Result, StreamTool, StreamToolCall } from "../../streamTool.js"; import { StreamToolExecutor } from "../../StreamToolExecutor.js"; import { createAppendableStream } from "./appendableStream.js"; -import { objectStreamToOperationsResult } from "./UIMessageStreamToOperationsResult.js"; +import { + objectStreamToOperationsResult, + operationsObjectStreamToOperationsResult, +} from "./UIMessageStreamToOperationsResult.js"; /** * Listens to messages received in the `chat` object and processes tool calls @@ -39,6 +48,7 @@ export async function setupToolCallStreaming( and this state is shared across parallel tool calls). */ const executor = new StreamToolExecutor(streamTools, abortSignal); + await executor.init(); const appendableStream = createAppendableStream(); @@ -54,22 +64,29 @@ export async function setupToolCallStreaming( // streaming steps in case downstream consumer (like the StreamToolExecutor) // are slower than the producer const unsub = chat["~registerMessagesCallback"](() => { - processToolCallParts(chat, (data) => { - if (!toolCallStreams.has(data.toolCallId)) { + const calls = getToolCalls(chat); + for (const call of calls) { + if (!toolCallStreams.has(call.part.toolCallId)) { const toolCallStreamData = createToolCallStream( streamTools, - data.toolName, - data.toolCallId, + call.toolName, + call.part.toolCallId, ); + if (!toolCallStreamData) { + continue; + } appendableStream.append(toolCallStreamData.operationsStream); - toolCallStreams.set(data.toolCallId, toolCallStreamData); + toolCallStreams.set(call.part.toolCallId, toolCallStreamData); if (first) { first = false; onStart?.(); } } - return toolCallStreams.get(data.toolCallId)!; - }); + const data = toolCallStreams.get(call.part.toolCallId); + if (data) { + processToolCallPart(call.part, data); + } + } }); const statusHandler = new Promise((resolve) => { @@ -202,13 +219,11 @@ type ToolCallStreamData = { /** * Process tool call parts and manage individual streams per toolCallId */ -function processToolCallParts( - chat: Chat, - getToolCallStreamData: (data: { +function getToolCalls(chat: Chat) { + const toolCalls: { toolName: string; - toolCallId: string; - }) => ToolCallStreamData, -) { + part: UIToolInvocation; + }[] = []; // TODO: better to check if tool has output instead of hardcoding lastMessage for (const part of chat.lastMessage?.parts ?? []) { if (!isToolUIPart(part)) { @@ -217,21 +232,10 @@ function processToolCallParts( const toolName = part.type.replace("tool-", ""); - if (toolName !== "applyDocumentOperations") { - // we only process the combined operations tool call - // in a future improvement we can add more generic support for different tool streaming - continue; - } - - const toolCallId = part.toolCallId; - - const toolCallData = getToolCallStreamData({ - toolName: part.type.replace("tool-", ""), - toolCallId, - }); - - processToolCallPart(part, toolCallData); + toolCalls.push({ toolName, part }); } + + return toolCalls; } /** @@ -241,15 +245,26 @@ function createToolCallStream( streamTools: StreamTool[], toolName: string, toolCallId: string, -): ToolCallStreamData { +): ToolCallStreamData | undefined { const stream = new TransformStream< DeepPartial<{ operations: StreamToolCall[] }> >(); - const operationsStream = objectStreamToOperationsResult( - stream.readable, - streamTools, - { toolCallId }, - ); + let operationsStream: ReturnType; + if (toolName === "applyDocumentOperations") { + operationsStream = operationsObjectStreamToOperationsResult( + stream.readable, + streamTools, + { toolCallId }, + ); + } else if (streamTools.find((tool) => tool.name === toolName)) { + operationsStream = objectStreamToOperationsResult( + stream.readable, + streamTools, + { toolCallId }, + ); + } else { + return undefined; + } const writer = stream.writable.getWriter(); @@ -268,6 +283,7 @@ function createToolCallStream( * Process a single tool call part (streaming or available) */ function processToolCallPart(part: any, toolCallData: ToolCallStreamData) { + // TODO: what if data is the same? if (part.state === "input-streaming") { const input = part.input; if (input !== undefined) { diff --git a/packages/xl-ai/src/streamTool/vercelAiSdk/util/injectDocumentStateMessages.ts b/packages/xl-ai/src/streamTool/vercelAiSdk/util/injectDocumentStateMessages.ts index 90de5d8973..54628cc6d3 100644 --- a/packages/xl-ai/src/streamTool/vercelAiSdk/util/injectDocumentStateMessages.ts +++ b/packages/xl-ai/src/streamTool/vercelAiSdk/util/injectDocumentStateMessages.ts @@ -47,7 +47,11 @@ The cursor is BETWEEN two blocks as indicated by cursor: true. }, { type: "text" as const, - text: JSON.stringify(documentState.blocks), + text: JSON.stringify( + typeof documentState === "string" + ? documentState + : documentState.blocks, + ), }, ]), // Alternatively, we could explore using dynamic tools to fake document state retrieval: diff --git a/packages/xl-ai/src/testUtil/testAIModels.ts b/packages/xl-ai/src/testUtil/testAIModels.ts index c6ed3a2b8a..931b1e1044 100644 --- a/packages/xl-ai/src/testUtil/testAIModels.ts +++ b/packages/xl-ai/src/testUtil/testAIModels.ts @@ -14,7 +14,7 @@ const openai = createOpenAI({ const anthropic = createAnthropic({ apiKey: process.env.ANTHROPIC_API_KEY || "not-available-in-ci", -})("claude-3-7-sonnet-latest"); +})("claude-haiku-4-5"); const albert = createOpenAICompatible({ name: "albert-etalab", diff --git a/test-diff.txt b/test-diff.txt new file mode 100644 index 0000000000..5df6bc5cb4 --- /dev/null +++ b/test-diff.txt @@ -0,0 +1,3 @@ +Line 123 +Line 3 - added externally +This line was added from the terminal at Thu Feb 12 19:54:43 CET 2026