feat: support multiple event proposals in single AI response
- Change proposedChange to proposedChanges array in ChatMessage type - Add unique id and individual respondedAction to each ProposedEventChange - Implement arrow navigation UI for multiple proposals with "Event X von Y" counter - Add updateProposalResponse() method for per-proposal confirm/reject tracking - GPTAdapter now collects multiple tool call results into proposals array - Add RRULE documentation to system prompt (separate events for different times) - Fix RRULE parsing to strip RRULE: prefix if present - Add log summarization for large args (conversationHistory, existingEvents) - Keep proposedChanges logged in full for debugging AI issues
This commit is contained in:
@@ -7,10 +7,12 @@ export type EventAction = "create" | "update" | "delete";
|
||||
export type RespondedAction = "confirm" | "reject";
|
||||
|
||||
export interface ProposedEventChange {
|
||||
id: string; // Unique ID for each proposal
|
||||
action: EventAction;
|
||||
eventId?: string; // Required for update/delete
|
||||
event?: CreateEventDTO; // Required for create
|
||||
updates?: UpdateEventDTO; // Required for update
|
||||
respondedAction?: RespondedAction; // User's response to this specific proposal
|
||||
}
|
||||
|
||||
export interface ChatMessage {
|
||||
@@ -18,8 +20,7 @@ export interface ChatMessage {
|
||||
conversationId: string;
|
||||
sender: MessageSender;
|
||||
content: string;
|
||||
proposedChange?: ProposedEventChange;
|
||||
respondedAction?: RespondedAction;
|
||||
proposedChanges?: ProposedEventChange[]; // Array of event proposals
|
||||
createdAt?: Date;
|
||||
}
|
||||
|
||||
@@ -38,7 +39,7 @@ export interface SendMessageDTO {
|
||||
export interface CreateMessageDTO {
|
||||
sender: MessageSender;
|
||||
content: string;
|
||||
proposedChange?: ProposedEventChange;
|
||||
proposedChanges?: ProposedEventChange[];
|
||||
}
|
||||
|
||||
export interface GetMessagesOptions {
|
||||
@@ -47,6 +48,7 @@ export interface GetMessagesOptions {
|
||||
}
|
||||
|
||||
export interface UpdateMessageDTO {
|
||||
proposalId?: string; // Identifies which proposal to update
|
||||
respondedAction?: RespondedAction;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user