Skip to content
Merged

Alpha #116

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 1 addition & 3 deletions src/AnamClient.ts
Original file line number Diff line number Diff line change
Expand Up @@ -119,9 +119,7 @@ export default class AnamClient {
const tokenType = decodedToken.type?.toLowerCase();

if (tokenType === 'legacy') {
if (!personaConfig || !('personaId' in personaConfig)) {
return 'Both session token and client are missing a persona configuration. Please provide a persona ID of a saved persona in the personaConfig parameter.';
}
return 'Legacy session tokens are no longer supported. Please define your persona when creating your session token. See https://docs.anam.ai/resources/migrating-legacy for more information.';
} else if (tokenType === 'ephemeral' || tokenType === 'stateful') {
if (personaConfig) {
return 'This session token already contains a persona configuration. Please remove the personaConfig parameter.';
Expand Down
4 changes: 1 addition & 3 deletions src/index.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import AnamClient from './AnamClient';
import { PersonaConfig } from './types';
import { AnamPublicClientOptions } from './types/AnamPublicClientOptions';
import { SavedPersonaConfig } from './types/PersonaConfig';

/**
* Create a new Anam client.
Expand All @@ -12,10 +11,9 @@ import { SavedPersonaConfig } from './types/PersonaConfig';
*/
const createClient = (
sessionToken: string,
personaConfig?: SavedPersonaConfig,
options?: AnamPublicClientOptions,
): AnamClient => {
return new AnamClient(sessionToken, personaConfig, options);
return new AnamClient(sessionToken, undefined, options);
};

/**
Expand Down
6 changes: 6 additions & 0 deletions src/types/AnamPublicClientOptions.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,15 @@
import { CoreApiRestClientOptions } from '../types';
import { VoiceDetectionOptions } from './VoiceDetectionOptions';
import { PersonaConfig } from './PersonaConfig';

export interface AnamPublicClientOptions {
api?: CoreApiRestClientOptions;
voiceDetection?: VoiceDetectionOptions;
audioDeviceId?: string;
disableInputAudio?: boolean;
/**
* The persona configuration to use.
* This is the recommended way to pass persona configuration instead of using the deprecated personaConfig parameter.
*/
personaConfig?: PersonaConfig;
}
15 changes: 2 additions & 13 deletions src/types/PersonaConfig.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,7 @@
export type PersonaConfig = SavedPersonaConfig | CustomPersonaConfig;

export interface SavedPersonaConfig {
personaId: string;
disableBrains?: boolean;
disableFillerPhrases?: boolean;
}
export type PersonaConfig = CustomPersonaConfig;

export interface CustomPersonaConfig {
personaId: string;
name: string;
avatarId: string;
voiceId: string;
Expand All @@ -16,12 +11,6 @@ export interface CustomPersonaConfig {
languageCode?: string;
}

export function isSavedPersonaConfig(
personaConfig: PersonaConfig,
): personaConfig is SavedPersonaConfig {
return 'personaId' in personaConfig;
}

export function isCustomPersonaConfig(
personaConfig: PersonaConfig,
): personaConfig is CustomPersonaConfig {
Expand Down