repositories / will
will
owned by admin
src/shared/events.ts
Raw/**
* Wire and storage types shared by service, agent, and web.
* These are the serialization contracts snapshot tests pin.
*/
/** Provenance of executing code vs edited source (spec: audit distinguishes both). */
export interface ReleaseProvenance {
revision?: string | undefined
agentDigest?: string | undefined
worktreeHead?: string | undefined
worktreeDirty?: boolean | undefined
}
export interface AuditEvent {
id: string
ts: string
kind: string
sessionId?: string | undefined
provenance?: ReleaseProvenance
payload: unknown
}
/** Stored audit row as returned by timeline/recall APIs (payload parsed). */
export interface AuditRow {
seq: number
id: string
ts: string
kind: string
sessionId?: string | undefined
provenance?: ReleaseProvenance
payload: unknown
}
export type ChatDirection = 'in' | 'out'
export type TriggerReason = 'mention' | 'reply' | 'command' | 'none'
export interface MediaRef {
digest: string
type: string
fileName?: string
size: number
telegramFileId?: string
}
/** Inbound or outbound chat message as ingested by the service. */
export interface ChatMessageIn {
id: string
chatId: number
messageId: number
direction: ChatDirection
ts: string
updateId?: number | undefined
senderId?: string | undefined
senderName?: string | undefined
replyToMessageId?: number | undefined
triggerReason?: TriggerReason | undefined
text?: string | undefined
media?: MediaRef[] | undefined
}
/** Chat row served to the UI; hidden messages are tombstoned. */
export interface ChatRow {
id: string
chatId: number
messageId: number
direction: ChatDirection
ts: string
senderId?: string | undefined
senderName?: string | undefined
replyToMessageId?: number | undefined
triggerReason?: TriggerReason | undefined
text?: string | undefined
media?: MediaRef[] | undefined
hidden: boolean
}
export interface TombstoneIn {
messageId: number
requesterId: string
authority: 'sender' | 'oliver'
reason?: string | undefined
ts: string
}
export type DeploymentEventKind =
| 'build'
| 'deploy'
| 'promote'
| 'startup-failed'
| 'probation-failed'
| 'rollback'
| 'reconcile'
export interface DeploymentEventMirror {
id: string
ts: string
kind: DeploymentEventKind
revision?: string | undefined
detail: unknown
}
export interface MediaMeta {
digest: string
size: number
type: string
originalName?: string | undefined
telegramFileId?: string | undefined
createdAt: string
}
export interface AnalysisRecord {
digest: string
capability: string
model: string
schemaVersion: number
result: unknown
usage?: unknown | undefined
createdAt: string
}
export interface JobRecord {
kind: string
status: 'running' | 'done' | 'failed'
startedAt: string
finishedAt?: string | undefined
detail?: unknown | undefined
}