Skip to content

Commit be98e79

Browse files
committed
feat: remove -Instance suffix and rename to useXXXReturn
1 parent 37894f3 commit be98e79

File tree

3 files changed

+24
-36
lines changed

3 files changed

+24
-36
lines changed

packages/react/src/hooks/useAgent.ts

Lines changed: 15 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import { ParticipantAgentAttributes, TrackReference } from '@livekit/components-
77

88
import { useParticipantTracks } from './useParticipantTracks';
99
import { useRemoteParticipants } from './useRemoteParticipants';
10-
import { ConversationInstance } from './useConversationWith';
10+
import { UseConversationReturn } from './useConversationWith';
1111

1212
// FIXME: make this 10 seconds once room dispatch booting info is discoverable
1313
const DEFAULT_AGENT_CONNECT_TIMEOUT_MILLISECONDS = 20_000;
@@ -46,9 +46,7 @@ export type AgentCallbacks = {
4646
[AgentEvent.StateChanged]: (newAgentState: AgentState) => void;
4747
};
4848

49-
type AgentInstanceCommon = {
50-
[Symbol.toStringTag]: "AgentInstance";
51-
49+
type AgentStateCommon = {
5250
// FIXME: maybe add some sort of schema to this?
5351
attributes: Record<string, string>;
5452

@@ -60,7 +58,7 @@ type AgentInstanceCommon = {
6058
};
6159
};
6260

63-
type AgentStateAvailable = AgentInstanceCommon & {
61+
type AgentStateAvailable = AgentStateCommon & {
6462
state: "thinking" | "speaking";
6563
failureReasons: null;
6664

@@ -74,7 +72,7 @@ type AgentStateAvailable = AgentInstanceCommon & {
7472
microphoneTrack: TrackReference | null;
7573
};
7674

77-
type AgentStateAvailableListening = AgentInstanceCommon & {
75+
type AgentStateAvailableListening = AgentStateCommon & {
7876
state: "listening";
7977
failureReasons: null;
8078

@@ -88,7 +86,7 @@ type AgentStateAvailableListening = AgentInstanceCommon & {
8886
microphoneTrack: TrackReference | null;
8987
};
9088

91-
type AgentStateUnAvailable = AgentInstanceCommon & {
89+
type AgentStateUnAvailable = AgentStateCommon & {
9290
state: "initializing" | "idle";
9391
failureReasons: null;
9492

@@ -102,7 +100,7 @@ type AgentStateUnAvailable = AgentInstanceCommon & {
102100
microphoneTrack: TrackReference | null;
103101
};
104102

105-
type AgentStateConnecting = AgentInstanceCommon & {
103+
type AgentStateConnecting = AgentStateCommon & {
106104
state: "disconnected" | "connecting";
107105
failureReasons: null;
108106

@@ -116,7 +114,7 @@ type AgentStateConnecting = AgentInstanceCommon & {
116114
microphoneTrack: null;
117115
};
118116

119-
type AgentStateFailed = AgentInstanceCommon & {
117+
type AgentStateFailed = AgentStateCommon & {
120118
state: "failed";
121119
failureReasons: Array<string>;
122120

@@ -142,7 +140,7 @@ type AgentActions = {
142140
};
143141

144142
type AgentStateCases = AgentStateConnecting | AgentStateAvailable | AgentStateAvailableListening | AgentStateUnAvailable | AgentStateFailed;
145-
export type AgentInstance = AgentStateCases & AgentActions;
143+
export type UseAgentReturn = AgentStateCases & AgentActions;
146144

147145
const generateDerivedStateValues = <State extends AgentState>(state: State) => ({
148146
isAvailable: (
@@ -235,12 +233,12 @@ const useAgentTimeoutIdStore = create<{
235233
};
236234
});
237235

238-
type ConversationStub = Pick<ConversationInstance, 'connectionState' | 'subtle'>;
236+
type ConversationStub = Pick<UseConversationReturn, 'connectionState' | 'subtle'>;
239237

240238
/**
241239
* useAgent encapculates all agent state, normalizing some quirks around how LiveKit Agents work.
242240
*/
243-
export function useAgent(conversation: ConversationStub, _name?: string): AgentInstance {
241+
export function useAgent(conversation: ConversationStub, _name?: string): UseAgentReturn {
244242
const { room } = conversation.subtle;
245243

246244
const emitter = useMemo(() => new EventEmitter() as TypedEventEmitter<AgentCallbacks>, []);
@@ -268,7 +266,7 @@ export function useAgent(conversation: ConversationStub, _name?: string): AgentI
268266
return;
269267
}
270268

271-
const handleAttributesChanged = (attributes: AgentInstance["attributes"]) => {
269+
const handleAttributesChanged = (attributes: UseAgentReturn["attributes"]) => {
272270
setAgentParticipantAttributes(attributes);
273271
emitter.emit(AgentEvent.AttributesChanged, attributes);
274272
};
@@ -397,9 +395,7 @@ export function useAgent(conversation: ConversationStub, _name?: string): AgentI
397395
}, [isConversationDisconnected, conversation.subtle.agentConnectTimeoutMilliseconds]);
398396

399397
const agentState: AgentStateCases = useMemo(() => {
400-
const common: AgentInstanceCommon = {
401-
[Symbol.toStringTag]: "AgentInstance",
402-
398+
const common: AgentStateCommon = {
403399
attributes: agentParticipantAttributes,
404400

405401
subtle: {
@@ -508,7 +504,7 @@ export function useAgent(conversation: ConversationStub, _name?: string): AgentI
508504
};
509505
const abortHandler = () => {
510506
cleanup();
511-
reject(new Error('AgentInstance.waitUntilAvailable - signal aborted'));
507+
reject(new Error('useAgent.waitUntilAvailable - signal aborted'));
512508
};
513509

514510
const cleanup = () => {
@@ -532,7 +528,7 @@ export function useAgent(conversation: ConversationStub, _name?: string): AgentI
532528
};
533529
const abortHandler = () => {
534530
cleanup();
535-
reject(new Error('AgentInstance.waitUntilCamera - signal aborted'));
531+
reject(new Error('useAgent.waitUntilCamera - signal aborted'));
536532
};
537533

538534
const cleanup = () => {
@@ -556,7 +552,7 @@ export function useAgent(conversation: ConversationStub, _name?: string): AgentI
556552
};
557553
const abortHandler = () => {
558554
cleanup();
559-
reject(new Error('AgentInstance.waitUntilMicrophone - signal aborted'));
555+
reject(new Error('useAgent.waitUntilMicrophone - signal aborted'));
560556
};
561557

562558
const cleanup = () => {

packages/react/src/hooks/useConversationMessages.ts

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,9 @@ import {
1313
import { useAgent } from './useAgent';
1414
import { useTranscriptions } from './useTranscriptions';
1515
import { useChat } from './useChat';
16-
import { ConversationInstance } from './useConversationWith';
17-
18-
export type MessagesInstance = {
19-
[Symbol.toStringTag]: "MessagesInstance",
16+
import { UseConversationReturn } from './useConversationWith';
2017

18+
export type UseConversationMessagesReturn = {
2119
messages: Array<ReceivedMessage>;
2220

2321
/** Is a send operation currently in progress? */
@@ -40,7 +38,7 @@ export type MessagesCallbacks = {
4038
[MessagesEvent.MessageReceived]: (message: ReceivedMessage) => void;
4139
};
4240

43-
export function useConversationMessages(conversation: ConversationInstance): MessagesInstance {
41+
export function useConversationMessages(conversation: UseConversationReturn): UseConversationMessagesReturn {
4442
const { room } = conversation.subtle;
4543

4644
const agent = useAgent(conversation);
@@ -103,8 +101,6 @@ export function useConversationMessages(conversation: ConversationInstance): Mes
103101
}, [transcriptionMessages, chat.chatMessages]);
104102

105103
return useMemo(() => ({
106-
[Symbol.toStringTag]: "MessagesInstance",
107-
108104
messages: receivedMessages,
109105
send: chat.send,
110106
isSending: chat.isSending,

packages/react/src/hooks/useConversationWith.ts

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,6 @@ export type SwitchActiveDeviceOptions = {
5858
};
5959

6060
type ConversationStateCommon = {
61-
[Symbol.toStringTag]: "AgentSessionInstance",
62-
6361
subtle: {
6462
emitter: TypedEventEmitter<ConversationCallbacks>;
6563
room: Room;
@@ -116,13 +114,13 @@ type ConversationActions = {
116114
end: () => Promise<void>;
117115
};
118116

119-
export type ConversationInstance = (ConversationStateConnecting | ConversationStateConnected | ConversationStateDisconnected) & ConversationActions;
117+
export type UseConversationReturn = (ConversationStateConnecting | ConversationStateConnected | ConversationStateDisconnected) & ConversationActions;
120118

121119
/**
122120
* AgentSession represents a connection to a LiveKit Agent, providing abstractions to make 1:1
123121
* agent/participant rooms easier to work with.
124122
*/
125-
export function useConversationWith(agentToDispatch: string | RoomAgentDispatch | null, options: ConversationOptions): ConversationInstance {
123+
export function useConversationWith(agentToDispatch: string | RoomAgentDispatch | null, options: ConversationOptions): UseConversationReturn {
126124
const roomFromContext = useMaybeRoomContext();
127125
const room = useMemo(() => roomFromContext ?? options.room ?? new Room(), [roomFromContext, options.room]);
128126

@@ -145,7 +143,7 @@ export function useConversationWith(agentToDispatch: string | RoomAgentDispatch
145143
};
146144
}, [options.tokenSource]);
147145

148-
const generateDerivedConnectionStateValues = useCallback(<State extends ConversationInstance["connectionState"]>(connectionState: State) => ({
146+
const generateDerivedConnectionStateValues = useCallback(<State extends UseConversationReturn["connectionState"]>(connectionState: State) => ({
149147
isConnected: (
150148
connectionState === ConnectionState.Connected ||
151149
connectionState === ConnectionState.Reconnecting ||
@@ -209,8 +207,6 @@ export function useConversationWith(agentToDispatch: string | RoomAgentDispatch
209207

210208
const conversationState = useMemo((): ConversationStateConnecting | ConversationStateConnected | ConversationStateDisconnected => {
211209
const common: ConversationStateCommon = {
212-
[Symbol.toStringTag]: "AgentSessionInstance",
213-
214210
subtle: {
215211
room,
216212
emitter,
@@ -275,13 +271,13 @@ export function useConversationWith(agentToDispatch: string | RoomAgentDispatch
275271
emitter.emit(ConversationEvent.ConnectionStateChanged, conversationState.connectionState);
276272
}, [emitter, conversationState.connectionState]);
277273

278-
const waitUntilConnectionState = useCallback(async (state: ConversationInstance["connectionState"], signal?: AbortSignal) => {
274+
const waitUntilConnectionState = useCallback(async (state: UseConversationReturn["connectionState"], signal?: AbortSignal) => {
279275
if (conversationState.connectionState === state) {
280276
return;
281277
}
282278

283279
return new Promise<void>((resolve, reject) => {
284-
const onceEventOccurred = (newState: ConversationInstance["connectionState"]) => {
280+
const onceEventOccurred = (newState: UseConversationReturn["connectionState"]) => {
285281
if (newState !== state) {
286282
return;
287283
}
@@ -393,6 +389,6 @@ export function useConversationWith(agentToDispatch: string | RoomAgentDispatch
393389
]);
394390
}
395391

396-
export function useConversation(options: ConversationOptions): ConversationInstance {
392+
export function useConversation(options: ConversationOptions): UseConversationReturn {
397393
return useConversationWith(null, options);
398394
}

0 commit comments

Comments
 (0)