Files
AgentCompany/src/shared/chat-domain.ts
T
ZacharyZhang-NY 07d0b4587d Promote AgentCompany-New to the repository root and retire the old app
The legacy application - its src, tests, landing site, promo assets, docs,
release tooling, CI workflows, and root configs - leaves the tree; it stays
reachable in history. Everything under AgentCompany-New moves up unchanged:
same package name, so the production userData/database path is untouched,
and e2e/build scripts already resolved paths relative to the project. The
developer cred.txt stays gitignored at its new location. Full verify:ci
passes from the new root.
2026-07-07 00:04:13 -04:00

92 lines
1.9 KiB
TypeScript

import type { ChatThreadBoardState } from "./board-domain";
export interface ChatSpaceRecord {
id: string;
orgId: string;
spaceType: string;
name: string;
topic: string;
visibility: string;
retentionPolicy: string;
createdAt: string;
}
export interface ChatMessageRecord {
id: string;
orgId: string;
spaceId: string;
threadId: string | null;
senderType: "employee" | "agent" | "board" | "system";
senderId: string | null;
bodyMd: string;
bodyStructuredJson: string;
deliveryState: string;
createdAt: string;
editedAt: string | null;
deletedAt: string | null;
}
export interface ChatMembershipRecord {
spaceId: string;
principalType: "employee" | "agent";
principalId: string;
role: string;
muteState: string;
}
export interface ChatThreadRecord {
id: string;
orgId: string;
spaceId: string;
rootMessageId: string | null;
title: string;
state: string;
boardState: ChatThreadBoardState;
controlledByType: "employee" | "agent" | "board" | null;
controlledById: string | null;
createdAt: string;
updatedAt: string;
}
export interface ChatAttachmentRecord {
messageId: string;
fileId: string;
transferType: string;
checksum: string;
previewKey: string | null;
}
export interface ChatMentionRecord {
messageId: string;
targetType: "employee" | "agent" | "board" | "org_group";
targetId: string;
offsetStart: number;
offsetEnd: number;
wakeState: "none" | "woken" | "failed";
}
export interface ChatSlashInvocationRecord {
id: string;
messageId: string;
command: string;
argsJson: string;
resultRef: string | null;
createdAt: string;
}
export interface ChatPresenceRecord {
principalType: string;
principalId: string;
status: string;
statusText: string;
lastSeenAt: string;
}
export interface ChatReadStateRecord {
orgId: string;
employeeId: string;
spaceId: string;
lastReadMessageId: string | null;
lastReadAt: string;
}