refactor(chat): export flow capabilities individually
This commit is contained in:
@@ -23,21 +23,21 @@ const log = new Logger("StoresChatChatSendFlow");
|
||||
|
||||
type UiMessage = import("@/data/dto/chat").UiMessage;
|
||||
|
||||
export const chatSendActors = {
|
||||
sendMessageHttp: fromPromise<
|
||||
{ response: ChatSendResponse; reply: UiMessage | null },
|
||||
{ content: string }
|
||||
>(async ({ input }) => {
|
||||
return sendMessageViaHttp(input.content);
|
||||
}),
|
||||
export const sendMessageHttpActor = fromPromise<
|
||||
{ response: ChatSendResponse; reply: UiMessage | null },
|
||||
{ content: string }
|
||||
>(async ({ input }) => {
|
||||
return sendMessageViaHttp(input.content);
|
||||
});
|
||||
|
||||
httpMessageQueue: fromCallback<ChatEvent>(({ sendBack, receive }) => {
|
||||
export const httpMessageQueueActor = fromCallback<ChatEvent>(
|
||||
({ sendBack, receive }) => {
|
||||
return createMessageQueueActor(sendBack, receive);
|
||||
}),
|
||||
};
|
||||
},
|
||||
);
|
||||
|
||||
export const chatSendActions = {
|
||||
appendGuestUserMessage: chatAssign(({ context, event }: ChatActionArgs) => {
|
||||
export const appendGuestUserMessageAction = chatAssign(
|
||||
({ context, event }: ChatActionArgs) => {
|
||||
if (event.type !== "ChatSendMessage") return {};
|
||||
|
||||
const today = todayString();
|
||||
@@ -60,9 +60,11 @@ export const chatSendActions = {
|
||||
upgradePromptVisible: false,
|
||||
upgradeReason: null,
|
||||
};
|
||||
}),
|
||||
},
|
||||
);
|
||||
|
||||
appendUserMessage: chatAssign(({ context, event }: ChatActionArgs) => {
|
||||
export const appendUserMessageAction = chatAssign(
|
||||
({ context, event }: ChatActionArgs) => {
|
||||
if (event.type !== "ChatSendMessage") return {};
|
||||
|
||||
const today = todayString();
|
||||
@@ -84,9 +86,11 @@ export const chatSendActions = {
|
||||
upgradePromptVisible: false,
|
||||
upgradeReason: null,
|
||||
};
|
||||
}),
|
||||
},
|
||||
);
|
||||
|
||||
appendQueuedSendErrorMessage: chatAssign(({ context }: ChatContextArgs) => {
|
||||
export const appendQueuedSendErrorMessageAction = chatAssign(
|
||||
({ context }: ChatContextArgs) => {
|
||||
const messages = [
|
||||
...context.messages,
|
||||
{
|
||||
@@ -96,29 +100,29 @@ export const chatSendActions = {
|
||||
},
|
||||
];
|
||||
return { messages, ...finishPendingReply(context) };
|
||||
}),
|
||||
},
|
||||
);
|
||||
|
||||
markQueuedSendStarted: chatAssign(({ context }: ChatContextArgs) =>
|
||||
export const markQueuedSendStartedAction = chatAssign(
|
||||
({ context }: ChatContextArgs) =>
|
||||
beginPendingReply(context),
|
||||
),
|
||||
);
|
||||
|
||||
applyQueuedHttpOutput: chatAssign(({ context, event }: ChatActionArgs) => {
|
||||
export const applyQueuedHttpOutputAction = chatAssign(
|
||||
({ context, event }: ChatActionArgs) => {
|
||||
if (event.type !== "ChatQueuedHttpDone") return {};
|
||||
return applyHttpSendOutput(context, event.output);
|
||||
}),
|
||||
},
|
||||
);
|
||||
|
||||
clearUpgradePrompt: chatAssign(() => ({
|
||||
upgradePromptVisible: false,
|
||||
upgradeReason: null,
|
||||
canSendMessage: true,
|
||||
cannotSendReason: null,
|
||||
requiredCredits: 0,
|
||||
shortfallCredits: 0,
|
||||
})),
|
||||
};
|
||||
|
||||
export const sendMessageHttpActor = chatSendActors.sendMessageHttp;
|
||||
export const httpMessageQueueActor = chatSendActors.httpMessageQueue;
|
||||
export const clearUpgradePromptAction = chatAssign(() => ({
|
||||
upgradePromptVisible: false,
|
||||
upgradeReason: null,
|
||||
canSendMessage: true,
|
||||
cannotSendReason: null,
|
||||
requiredCredits: 0,
|
||||
shortfallCredits: 0,
|
||||
}));
|
||||
|
||||
function createMessageQueueActor(
|
||||
sendBack: (event: ChatEvent) => void,
|
||||
|
||||
Reference in New Issue
Block a user