fix(protocol): keep internal events off SSE (#35378)
This commit is contained in:
parent
bb3b6a2f65
commit
905123b9c0
9 changed files with 52 additions and 44 deletions
|
|
@ -67,3 +67,5 @@ export const EventGroup = event.group
|
|||
export const OpenCodeEvent = event.schema
|
||||
export type OpenCodeEvent = typeof OpenCodeEvent.Type
|
||||
export type OpenCodeEventEncoded = typeof OpenCodeEvent.Encoded
|
||||
export const isOpenCodeEvent = (event: { readonly type: string }): event is OpenCodeEvent =>
|
||||
event.type === "server.connected" || EventManifest.isServer(event)
|
||||
|
|
|
|||
|
|
@ -1,23 +1,8 @@
|
|||
import { expect, test } from "bun:test"
|
||||
import { Event } from "@opencode-ai/schema/event"
|
||||
import { AbsolutePath } from "@opencode-ai/schema/schema"
|
||||
import { DateTime, Schema } from "effect"
|
||||
import { OpenCodeEvent } from "../src/groups/event.js"
|
||||
import { isOpenCodeEvent } from "../src/groups/event.js"
|
||||
|
||||
test("encodes MCP tool changes emitted by the server", () => {
|
||||
expect(
|
||||
Schema.encodeSync(OpenCodeEvent)({
|
||||
id: Event.ID.make("evt_test"),
|
||||
created: DateTime.makeUnsafe(0),
|
||||
type: "mcp.tools.changed",
|
||||
location: { directory: AbsolutePath.make("/tmp") },
|
||||
data: { server: "example" },
|
||||
}),
|
||||
).toEqual({
|
||||
id: "evt_test",
|
||||
created: 0,
|
||||
type: "mcp.tools.changed",
|
||||
location: { directory: "/tmp" },
|
||||
data: { server: "example" },
|
||||
})
|
||||
test("classifies public events by type", () => {
|
||||
expect(isOpenCodeEvent({ type: "server.connected" })).toBe(true)
|
||||
expect(isOpenCodeEvent({ type: "mcp.status.changed" })).toBe(true)
|
||||
expect(isOpenCodeEvent({ type: "mcp.tools.changed" })).toBe(false)
|
||||
})
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue