From 59d3fc31fbc557747d662b53d4e80f833a8eacb8 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 22 May 2026 19:59:28 +0000 Subject: [PATCH] Support additional Copilot message types --- packages/agent-eval/src/copilot-cli.test.ts | 43 +++++++++++++++++++++ packages/agent-eval/src/copilot-cli.ts | 14 ++++++- 2 files changed, 55 insertions(+), 2 deletions(-) create mode 100644 packages/agent-eval/src/copilot-cli.test.ts diff --git a/packages/agent-eval/src/copilot-cli.test.ts b/packages/agent-eval/src/copilot-cli.test.ts new file mode 100644 index 0000000..bd1a698 --- /dev/null +++ b/packages/agent-eval/src/copilot-cli.test.ts @@ -0,0 +1,43 @@ +import {describe, expect, test} from 'vitest' +import {parseMessage} from './copilot-cli.ts' + +describe(parseMessage, () => { + test.each([ + { + type: 'session.mcp_servers_loaded', + data: { + servers: [ + {name: 'primer', status: 'connected'}, + {name: 'github-mcp-server', status: 'connected', source: 'builtin'}, + ], + }, + id: '3f7b1d22-08d7-4313-885b-19403b54f071', + timestamp: '2026-05-22T15:49:54.893Z', + parentId: 'b8a098ff-1254-4dda-afcf-82a9dd9a4ecd', + ephemeral: true, + }, + { + type: 'assistant.reasoning_delta', + data: { + reasoningId: '15a4b8d1-5285-4272-9d93-45d3c4a52f84', + deltaContent: ' while keeping the other Primer components like FormControl, TextInput, Button, and Heading.', + }, + id: 'efa6ac3a-fea4-43d7-99ed-558e3f33c3f4', + timestamp: '2026-05-22T15:52:49.959Z', + parentId: '97d9171f-d9f4-4ecd-b70f-22b2a331fb24', + ephemeral: true, + }, + { + type: 'assistant.message_start', + data: { + messageId: 'fbdb0ec9-32c3-4a1a-846b-2beb84bb8ae2', + }, + id: '23067aad-f2e9-47ed-bc07-a656c1173a97', + timestamp: '2026-05-22T15:53:12.261Z', + parentId: '72748568-18fb-4fed-8c93-f4c2f6a24271', + ephemeral: true, + }, + ])('parses $type messages', message => { + expect(parseMessage(message).success).toBe(true) + }) +}) diff --git a/packages/agent-eval/src/copilot-cli.ts b/packages/agent-eval/src/copilot-cli.ts index ec72bac..aa21515 100644 --- a/packages/agent-eval/src/copilot-cli.ts +++ b/packages/agent-eval/src/copilot-cli.ts @@ -25,7 +25,7 @@ const ToolTelemetrySchema = z.object({ const ServerSchema = z.object({ name: z.string(), status: z.string(), - source: z.string(), + source: z.optional(z.string()), }) const SkillSchema = z.object({ @@ -109,7 +109,7 @@ const AssistantMessageStartMessageSchema = z.object({ ...EphemeralEventFieldsSchema, data: z.object({ messageId: z.string(), - phase: z.string(), + phase: z.optional(z.string()), }), }) @@ -148,6 +148,15 @@ const AssistantReasoningMessageSchema = z.object({ }), }) +const AssistantReasoningDeltaMessageSchema = z.object({ + type: z.literal('assistant.reasoning_delta'), + ...EphemeralEventFieldsSchema, + data: z.object({ + reasoningId: z.string(), + deltaContent: z.string(), + }), +}) + const ToolExecutionStartMessageSchema = z.object({ type: z.literal('tool.execution_start'), ...EventFieldsSchema, @@ -233,6 +242,7 @@ const MessageSchema = z.discriminatedUnion('type', [ AssistantMessageDeltaMessageSchema, AssistantMessageSchema, AssistantReasoningMessageSchema, + AssistantReasoningDeltaMessageSchema, ToolExecutionStartMessageSchema, ToolExecutionCompleteMessageSchema, AssistantTurnEndMessageSchema,