my harness for niri
1import type OpenAI from "openai"
2
3export type AssistantMessageWithReasoning = OpenAI.Chat.ChatCompletionAssistantMessageParam & {
4 reasoning_content?: string
5}
6
7export type Message = OpenAI.Chat.ChatCompletionMessageParam | AssistantMessageWithReasoning
8
9export type TriggerSource = "discord" | "bsky" | "webhook" | "cron" | "chat"
10
11export interface UserMessage {
12 source: TriggerSource
13 triggeredAt: string
14 content: string
15 clientId?: string
16 raw: unknown
17}
18
19export interface RunnerState {
20 running: boolean
21 conversation: Message[]
22 pendingInputs: UserMessage[]
23 tokenCount: number
24 contextSize: number
25 memoryRecallCooldowns: Record<number, number>
26 memoryRecallTurn: number
27}