/** Stable document kinds and domain events for trees and landed submissions. */ import { defineEvent } from '@earendil-works/sausage-events' export const RootsDoc = {kind: 'lineage.roots'} export const TallyDoc = {kind: 'lineage.tally'} export type MemoryItem = {kind: 'decision' | 'fact' | 'lesson'; line: string; body: string; source?: string; updated: number} export const Branched = defineEvent<{id: number; from: number; at: number; intent: string; title?: string}>('lineage.branched') export const Rooted = defineEvent<{id: number; intent: string}>('lineage.rooted') /** The workspaces port emits this event in the transaction that records a landing. */ export const SubmissionLanded = defineEvent<{submission: string; conversationId: number; at: number; sha: string; base: string; target: string; lander: number; divergence: string; title: string; feature?: string; summary?: string; commits: {sha: string; subject: string}[]; commitCount: number; paths: string[]; pushed?: boolean}>('workspaces.landed')