useAutopilotConversation
A thin composable over useAutopilotStore that exposes message-focused refs and filtered lists. Use it when you are building UI that only cares about the conversation, not the connection status or bar UI.
ts
import { useAutopilotConversation } from '@llmor/autopilot-vue';
const {
messages,
visibleMessages,
userMessages,
assistantMessages,
systemMessages,
streamingMessage,
isStreaming,
hasMessages,
lastUserMessage,
lastAssistantMessage,
conversationSummary,
// methods
addMessage,
updateMessage,
clearMessages,
refreshConversation,
getMessagesByRole,
getMessagesByCreator,
} = useAutopilotConversation();Reactive properties
| Name | Type | What it gives you |
|---|---|---|
messages | Ref<ConversationMessage[]> | the raw store list |
visibleMessages | ComputedRef<ConversationMessage[]> | filtered + merged list — what you render |
userMessages | ComputedRef<ConversationMessage[]> | only role === 'user' |
assistantMessages | ComputedRef<ConversationMessage[]> | only role === 'assistant' |
systemMessages | ComputedRef<ConversationMessage[]> | only role === 'system' |
streamingMessage | Ref<ConversationMessage | null> | currently-streaming partial message |
isStreaming | Ref<boolean> | |
hasMessages | ComputedRef<boolean> | |
hasStreamingMessage | ComputedRef<boolean> | |
lastUserMessage | ComputedRef<ConversationMessage | null> | |
lastAssistantMessage | ComputedRef<ConversationMessage | null> | |
conversation | Ref<Conversation | null> | |
hasConversation | ComputedRef<boolean> | |
messageCount | ComputedRef<number> | |
conversationSummary | ComputedRef<{ messageCount, userCount, assistantCount, lastUpdate }> | quick stats |
Methods
All passthroughs to the store:
ts
addMessage(message: ConversationMessage): void;
updateMessage(index: number, message: ConversationMessage): void;
updateMessageByRole(role: string, creator: string, message: ConversationMessage): void;
clearMessages(): void;
refreshConversation(): Promise<void>;
getMessagesByRole(role: string): ConversationMessage[];
getMessagesByCreator(creator: string): ConversationMessage[];Example
vue
<script setup lang="ts">
import { useAutopilotConversation } from '@llmor/autopilot-vue';
const { visibleMessages, isStreaming, lastUserMessage } = useAutopilotConversation();
</script>
<template>
<header>
<em v-if="isStreaming">Assistant is replying…</em>
<em v-else-if="lastUserMessage">Last asked: {{ lastUserMessage.message }}</em>
</header>
<ul>
<li v-for="(msg, i) in visibleMessages" :key="i">{{ msg.message }}</li>
</ul>
</template>