refactor(schema): declare event durability at definition level (#35172)

This commit is contained in:
Kit Langton 2026-07-03 12:35:35 -04:00 committed by GitHub
commit de476aa51b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
53 changed files with 700 additions and 1165 deletions

View file

@ -1,11 +1,11 @@
export * as LegacyEvent from "./legacy-event.js"
import { Schema } from "effect"
import { define, inventory } from "../event.js"
import { ephemeral, inventory } from "../event.js"
import { SessionID } from "../session-id.js"
import { SessionV1 } from "./session.js"
export const CommandExecuted = define({
export const CommandExecuted = ephemeral({
type: "command.executed",
schema: {
name: Schema.String,

View file

@ -1,7 +1,7 @@
export * as PermissionV1 from "./permission.js"
import { Schema } from "effect"
import { define, inventory } from "../event.js"
import { ephemeral, inventory } from "../event.js"
import { ascending } from "../identifier.js"
import { Project } from "../project.js"
import { statics } from "../schema.js"
@ -58,8 +58,8 @@ export const ReplyInput = Schema.Struct({ requestID: ID, ...ReplyBody.fields }).
})
export type ReplyInput = typeof ReplyInput.Type
const Asked = define({ type: "permission.asked", schema: Request.fields })
const Replied = define({
const Asked = ephemeral({ type: "permission.asked", schema: Request.fields })
const Replied = ephemeral({
type: "permission.replied",
schema: { sessionID: SessionID, requestID: ID, reply: Reply },
})

View file

@ -1,7 +1,7 @@
export * as QuestionV1 from "./question.js"
import { Schema } from "effect"
import { define, inventory } from "../event.js"
import { ephemeral, inventory } from "../event.js"
import { ascending } from "../identifier.js"
import { statics } from "../schema.js"
import { SessionID } from "../session-id.js"
@ -55,9 +55,9 @@ export const Rejected = Schema.Struct({ sessionID: SessionID, requestID: ID }).a
identifier: "QuestionRejected",
})
const Asked = define({ type: "question.asked", schema: Request.fields })
const RepliedEvent = define({ type: "question.replied", schema: Replied.fields })
const RejectedEvent = define({ type: "question.rejected", schema: Rejected.fields })
const Asked = ephemeral({ type: "question.asked", schema: Request.fields })
const RepliedEvent = ephemeral({ type: "question.replied", schema: Replied.fields })
const RejectedEvent = ephemeral({ type: "question.rejected", schema: Rejected.fields })
export const Event = {
Asked,
Replied: RepliedEvent,

View file

@ -1,7 +1,7 @@
export * as SessionV1 from "./session.js"
import { Effect, Schema, Types } from "effect"
import { define, inventory } from "../event.js"
import { durable, ephemeral, inventory } from "../event.js"
import { FileDiff } from "../file-diff.js"
import { Project } from "../project.js"
import { Provider } from "../provider.js"
@ -569,7 +569,7 @@ export const SessionInfo = Schema.Struct({
export type SessionInfo = typeof SessionInfo.Type
const events = {
Created: define({
Created: durable({
type: "session.created",
...options,
schema: {
@ -577,7 +577,7 @@ const events = {
info: SessionInfo,
},
}),
Updated: define({
Updated: durable({
type: "session.updated",
...options,
schema: {
@ -585,7 +585,7 @@ const events = {
info: SessionInfo,
},
}),
Deleted: define({
Deleted: durable({
type: "session.deleted",
...options,
schema: {
@ -593,7 +593,7 @@ const events = {
info: SessionInfo,
},
}),
MessageUpdated: define({
MessageUpdated: durable({
type: "message.updated",
...options,
schema: {
@ -601,7 +601,7 @@ const events = {
info: Info,
},
}),
MessageRemoved: define({
MessageRemoved: durable({
type: "message.removed",
...options,
schema: {
@ -609,7 +609,7 @@ const events = {
messageID: MessageID,
},
}),
PartUpdated: define({
PartUpdated: durable({
type: "message.part.updated",
...options,
schema: {
@ -618,7 +618,7 @@ const events = {
time: Schema.Finite,
},
}),
PartRemoved: define({
PartRemoved: durable({
type: "message.part.removed",
...options,
schema: {
@ -629,7 +629,7 @@ const events = {
}),
}
export const PartDelta = define({
export const PartDelta = ephemeral({
type: "message.part.delta",
schema: {
sessionID: SessionID,
@ -640,7 +640,7 @@ export const PartDelta = define({
},
})
export const Diff = define({
export const Diff = ephemeral({
type: "session.diff",
schema: {
sessionID: SessionID,
@ -648,7 +648,7 @@ export const Diff = define({
},
})
export const Error = define({
export const Error = ephemeral({
type: "session.error",
schema: {
sessionID: Schema.optional(SessionID),