feat(core): publish interrupted session steps

This commit is contained in:
Kit Langton 2026-06-25 23:20:44 -04:00
commit 59e8dbb066
12 changed files with 140 additions and 17 deletions

View file

@ -192,6 +192,16 @@ export namespace Step {
},
})
export type Failed = typeof Failed.Type
export const Interrupted = Event.define({
type: "session.next.step.interrupted",
...options,
schema: {
...Base,
assistantMessageID: SessionMessage.ID,
},
})
export type Interrupted = typeof Interrupted.Type
}
export namespace Text {
@ -458,6 +468,7 @@ export const DurableDefinitions = Event.inventory(
Step.Started,
Step.Ended,
Step.Failed,
Step.Interrupted,
Text.Started,
Text.Ended,
Tool.Input.Started,
@ -489,6 +500,7 @@ export const Definitions = Event.inventory(
Step.Started,
Step.Ended,
Step.Failed,
Step.Interrupted,
Text.Started,
Text.Delta,
Text.Ended,

View file

@ -9,8 +9,8 @@ import { WorkspaceEvent } from "../src/workspace-event"
describe("public event manifest", () => {
test("owns the complete public event surface", () => {
expect(EventManifest.ServerDefinitions.length).toBe(55)
expect(EventManifest.Definitions.length).toBe(85)
expect(EventManifest.ServerDefinitions.length).toBe(59)
expect(EventManifest.Definitions.length).toBe(89)
expect(SessionV1.Event.Definitions).toEqual([
SessionV1.Event.Created,
SessionV1.Event.Updated,
@ -23,8 +23,8 @@ describe("public event manifest", () => {
SessionV1.Event.Diff,
SessionV1.Event.Error,
])
expect(EventManifest.Latest.size).toBe(85)
expect(EventManifest.Durable.size).toBe(32)
expect(EventManifest.Latest.size).toBe(89)
expect(EventManifest.Durable.size).toBe(36)
})
test("uses canonical definitions for current public events", () => {
@ -42,7 +42,7 @@ describe("public event manifest", () => {
expect(Reference.Event.Definitions).toEqual([Reference.Event.Updated])
expect(EventManifest.Latest.has("ide.installed")).toBe(false)
expect(IdeEvent.Definitions).toEqual([IdeEvent.Installed])
expect(EventManifest.Definitions.slice(40, 43)).toEqual([
expect(EventManifest.Definitions.slice(44, 47)).toEqual([
SessionV1.Event.PartDelta,
SessionV1.Event.Diff,
SessionV1.Event.Error,