@memori.ai/memori-react 7.12.1 → 7.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/README.md +11 -9
  3. package/dist/components/AgeVerificationModal/AgeVerificationModal.js +1 -1
  4. package/dist/components/AgeVerificationModal/AgeVerificationModal.js.map +1 -1
  5. package/dist/components/Chat/Chat.js +3 -3
  6. package/dist/components/Chat/Chat.js.map +1 -1
  7. package/dist/components/MemoriWidget/MemoriWidget.css +10 -4
  8. package/dist/components/MemoriWidget/MemoriWidget.d.ts +3 -1
  9. package/dist/components/MemoriWidget/MemoriWidget.js +14 -18
  10. package/dist/components/MemoriWidget/MemoriWidget.js.map +1 -1
  11. package/dist/index.d.ts +4 -1
  12. package/dist/index.js +6 -3
  13. package/dist/index.js.map +1 -1
  14. package/dist/locales/de.json +10 -10
  15. package/dist/locales/en.json +34 -34
  16. package/dist/locales/es.json +8 -8
  17. package/dist/locales/fr.json +25 -25
  18. package/dist/locales/it.json +41 -41
  19. package/esm/components/AgeVerificationModal/AgeVerificationModal.js +1 -1
  20. package/esm/components/AgeVerificationModal/AgeVerificationModal.js.map +1 -1
  21. package/esm/components/Chat/Chat.js +3 -3
  22. package/esm/components/Chat/Chat.js.map +1 -1
  23. package/esm/components/MemoriWidget/MemoriWidget.css +10 -4
  24. package/esm/components/MemoriWidget/MemoriWidget.d.ts +3 -1
  25. package/esm/components/MemoriWidget/MemoriWidget.js +14 -18
  26. package/esm/components/MemoriWidget/MemoriWidget.js.map +1 -1
  27. package/esm/index.d.ts +4 -1
  28. package/esm/index.js +6 -3
  29. package/esm/index.js.map +1 -1
  30. package/esm/locales/de.json +10 -10
  31. package/esm/locales/en.json +34 -34
  32. package/esm/locales/es.json +8 -8
  33. package/esm/locales/fr.json +25 -25
  34. package/esm/locales/it.json +41 -41
  35. package/package.json +1 -1
  36. package/src/components/AgeVerificationModal/AgeVerificationModal.tsx +1 -1
  37. package/src/components/Chat/Chat.tsx +4 -6
  38. package/src/components/MemoriWidget/MemoriWidget.css +10 -4
  39. package/src/components/MemoriWidget/MemoriWidget.stories.tsx +7 -0
  40. package/src/components/MemoriWidget/MemoriWidget.tsx +24 -35
  41. package/src/components/layouts/FullPage.test.tsx +21 -1
  42. package/src/components/layouts/__snapshots__/Chat.test.tsx.snap +1 -1
  43. package/src/components/layouts/__snapshots__/FullPage.test.tsx.snap +463 -1
  44. package/src/components/layouts/__snapshots__/Totem.test.tsx.snap +1 -1
  45. package/src/components/layouts/__snapshots__/ZoomedFullBody.test.tsx.snap +1 -1
  46. package/src/components/layouts/layouts.stories.tsx +37 -37
  47. package/src/index.stories.tsx +1 -0
  48. package/src/index.tsx +20 -6
  49. package/src/locales/de.json +10 -10
  50. package/src/locales/en.json +34 -34
  51. package/src/locales/es.json +8 -8
  52. package/src/locales/fr.json +25 -25
  53. package/src/locales/it.json +41 -41
@@ -39,7 +39,7 @@
39
39
  "venue": "Luogo",
40
40
  "searchVenue": "Cerca luogo...",
41
41
  "memoriBlockedTitle": "Bloccato",
42
- "memoriBlockedUntil": "Memori bloccato fino al {{date}}",
42
+ "memoriBlockedUntil": "Agente bloccato fino al {{date}}",
43
43
  "memoriBlockedAnon": "Attualmente \"{{name}}\" non può rispondere, torna qui il {{date}}",
44
44
  "memoriBlockedReasonExceedChats": "perchè ha superato la soglia mensile di chat ammesse.",
45
45
  "memoriBlockedGiverHelper": "Puoi sempre gestirlo in qualità di amministratore, ma altri utenti non potranno interrogarlo.",
@@ -47,27 +47,27 @@
47
47
  "whyThisAnswer": "Perché questa risposta?",
48
48
  "whyThisAnswerHelper": "Questa risposta è stata generata automaticamente da un'intelligenza artificiale sulla base di questi contenuti verificati.",
49
49
  "completionsEnabled": "IA evoluta, può rispondere con risposte generate automaticamente che talvolta potrebbero contenere informazioni non corrette",
50
- "completionProviderDown": "Questo Twin è integrato con una IA generativa di {{provider}}, ma al momento non è disponibile. Riprova più tardi.",
50
+ "completionProviderDown": "Questo agente è integrato con una IA generativa di {{provider}}, ma al momento non è disponibile. Riprova più tardi.",
51
51
  "completionProviderFallbackName": "un provider esterno",
52
52
  "completionProviderCheckStatusPage": "Vedi pagina di stato",
53
53
  "boardOfExperts": "Gruppo di esperti",
54
54
  "birthDate": "Data di nascita",
55
55
  "birthDateHelper": "Ti chiediamo la data di nascita esclusivamente per abilitare o disabilitare le funzionalità che hanno restrizioni in base all'età",
56
56
  "underage": "Devi avere almeno {{age}} anni per registrarti.",
57
- "underageTwinSession": "Devi avere almeno {{age}} anni per interagire con questo Twin.",
57
+ "underageTwinSession": "Devi avere almeno {{age}} anni per interagire con questo agente.",
58
58
  "errorFetchingSession": "Errore durante il caricamento della sessione",
59
59
  "errorGettingReferralURL": "Errore durante il caricamento del riferimento",
60
60
  "errorReopeningSession": "Errore durante il riapertura della sessione",
61
61
  "ageVerification": "Verifica dell'età",
62
- "ageVerificationText": "Per interagire con questo Twin, devi aver almeno {{minAge}} anni.",
63
- "nsfw": "NSFW: Questo Twin contiene contenuti per adulti",
62
+ "ageVerificationText": "Per interagire con questo agente, devi aver almeno {{minAge}} anni.",
63
+ "nsfw": "NSFW: Questo agente contiene contenuti per adulti",
64
64
  "deepThought": "Pensiero profondo",
65
65
  "deepThoughtHelper": "Pensiero Profondo è una funzionalità avanzata delle AI che ti consentirà di poter sfruttare a pieno le tue conversazioni mantenendo memoria delle stesse. Le AI con Pensiero Profondo possono darti informazioni adattandosi a te e alle cose che condividerete insieme.",
66
66
  "deepThoughtDisclaimerTitle": "Pensiero profondo abilitato",
67
67
  "deepThoughtDisclaimer": "Pensiero Profondo è una funzionalità avanzata delle AI che ti consentirà di poter sfruttare a pieno le tue conversazioni mantenendo memoria delle stesse. Le AI con Pensiero Profondo possono darti informazioni adattandosi a te e alle cose che condividerete insieme.",
68
68
  "deepThoughtPreDisclaimerUnlogged": "Accedi per abilitare Pensiero Profondo.",
69
69
  "deepThoughtPreDisclaimerNotAllowed": "Pensiero Profondo è disabilitato poiché non hai acconsentito al suo utilizzo, puoi cambiare la tua scelta in qualsiasi momento nelle impostazioni del tuo account.",
70
- "notEnoughCredits": "L'autore di questo Twin non ha abbastanza crediti per rispondere alla tua domanda.",
70
+ "notEnoughCredits": "L'autore di questo agente non ha abbastanza crediti per rispondere alla tua domanda.",
71
71
  "knownFacts": {
72
72
  "title": "Fatti noti",
73
73
  "description": "Dettagli delle informazioni condivise tra te e {{memoriName}}",
@@ -117,13 +117,13 @@
117
117
  "exportChatHistoryMessage": "Vuoi esportare la cronologia chat?",
118
118
  "chatBotButtonText": "CLICCA QUI PER APRIRE LA CHAT",
119
119
  "conversationStartedLabel": "Conversazione avvenuta il",
120
- "settingsHeaderLabel": "Configura qui il memori se vuoi impostare una conversazione continua. Setta i secondi di silenzio prima dell'invio.",
120
+ "settingsHeaderLabel": "Configura qui se vuoi impostare una conversazione continua. Setta i secondi di silenzio prima dell'invio.",
121
121
  "continuousSpeechLabel": "Conversazione continua",
122
122
  "holdToSpeak": "Tieni premuto per parlare",
123
123
  "releaseToEndListening": "Rilascia per smettere di parlare",
124
124
  "pressAndHoldToSpeak": "Premi e tieni premuto per parlare",
125
125
  "microphoneMode": "Modalità microfono",
126
- "hideEmissionsLabel": "Nascondi testo emesso dal Twin",
126
+ "hideEmissionsLabel": "Nascondi testo emesso dall'agente",
127
127
  "secondsLabel": "Secondi",
128
128
  "controlsPosition": "Posizione dei controlli",
129
129
  "avatarControls": "Controlli Avatar",
@@ -156,7 +156,7 @@
156
156
  "uploadMimeTypeNotAllowed": "Il tipo di file non è permesso",
157
157
  "uploadSizeLimitMessage": "Il file caricato è troppo grande (max {{size}}MB)",
158
158
  "uploadWrongResolutionMessage": "La risoluzione deve essere {{width}}x{{height}} pixel",
159
- "memoriNameAlreadyUsed": "Hai già un Twin con questo nome",
159
+ "memoriNameAlreadyUsed": "Hai già un Agente con questo nome",
160
160
  "uploadHelperImages": "Caricare un file con estensione png, jpg, jpeg o gif e con dimensione massima di {{size}}MB",
161
161
  "uploadHelper": "Caricare un file di dimensione massima di {{size}}MB",
162
162
  "uploadError": "Errore nel caricamento",
@@ -176,7 +176,7 @@
176
176
  "memoriReachedLevel": "è diventato più evoluto ed ha raggiunto il livello",
177
177
  "levelGoToStatistics": "{{memori}} è al livello {{level}} con {{points}} punti. Clicca per andare alle statistiche.",
178
178
  "congratulationsNewLevel": "Congratulazioni, hai raggiunto un nuovo livello!",
179
- "congratulationsNewLevelDescription": "Il tuo Memori è diventato più evoluto con {{points}} punti, guarda le",
179
+ "congratulationsNewLevelDescription": "Il tuo agente è diventato più evoluto con {{points}} punti, guarda le",
180
180
  "statistics": "statistiche"
181
181
  },
182
182
  "login": {
@@ -221,7 +221,7 @@
221
221
  "missingData": "Informazioni mancanti",
222
222
  "missingDataHelper": "Sappiamo che questo è un po' fastidioso, ma abbiamo bisogno di alcune informazioni in più per completare la tua registrazione.",
223
223
  "goToAccountToChangeYourPreferences": "Puoi cambiare la tua scelta in qualsiasi momento dalla tua pagina Account.",
224
- "deepThoughtExplaination": "Pensiero Profondo è una funzionalità avanzata delle AI che ti consentirà di poter sfruttare a pieno le tue conversazioni mantenendo memoria delle stesse. Le AI con Pensiero Profondo possono darti informazioni adattandosi a te e alle cose che condividerete insieme. Consenti all'autore del twin di contattarti per offerte commerciali riguardanti prodotti su cui hai espresso interesse.",
224
+ "deepThoughtExplaination": "Pensiero Profondo è una funzionalità avanzata delle AI che ti consentirà di poter sfruttare a pieno le tue conversazioni mantenendo memoria delle stesse. Le AI con Pensiero Profondo possono darti informazioni adattandosi a te e alle cose che condividerete insieme. Consenti all'autore dell'agente di contattarti per offerte commerciali riguardanti prodotti su cui hai espresso interesse.",
225
225
  "tnCAndPPAcceptedHelper": "Dall'ultimo accesso, i T&C e l'Informativa sulla privacy sono stati modificati. Si prega di accettarle, altrimenti non sarà possibile apportare modifiche ai propri gemelli. Puoi sempre cancellare il tuo account nella pagina del tuo profilo utente.",
226
226
  "privacyLabel": "Ho letto e accettato l'",
227
227
  "privacyAndCookiePolicy": "informativa sui cookie e sulla privacy",
@@ -270,11 +270,11 @@
270
270
  "USER_VERIFICATION_CODE_INVALID": "Codice di verifica non valido",
271
271
  "USER_MISSING_NAME_OR_EMAIL": "Nome utente o email mancante",
272
272
  "USER_NAME_INVALID": "Nome utente non valido",
273
- "USER_HAS_ONE_OR_MORE_MEMORI": "L'utente ha uno o più memori",
273
+ "USER_HAS_ONE_OR_MORE_MEMORI": "L'utente ha uno o più Agenti",
274
274
  "USER_MISSING_NEW_PASSWORD": "Utente: nuova password mancante",
275
275
  "USER_NOTHING_TO_DO": "Niente da fare",
276
- "USER_CANT_CREATE_MEMORI": "Utente non abilitato a creare Memori",
277
- "USER_MAX_MEMORI_REACHED": "Massimo numero di Memori raggiunto",
276
+ "USER_CANT_CREATE_MEMORI": "Utente non abilitato a creare Agenti",
277
+ "USER_MAX_MEMORI_REACHED": "Massimo numero di Agenti raggiunto",
278
278
  "USER_TOO_MANY_ATTEMPTS": "Troppi tentativi",
279
279
  "USER_MUST_ACCEPT_TNC_AND_PP": "Devi accettare i termini e le condizioni",
280
280
  "USER_BIRTH_DATE_CANT_BE_CHANGED": "Data di nascita non può essere cambiata",
@@ -282,48 +282,48 @@
282
282
  "USER_CANT_ENABLE_DEEP_THOUGHT": "Utente: non abilitato a gestire Pensiero Profondo",
283
283
  "USER_CANT_ENABLE_DCM_INTEGRATION": "Utente: non abilitato a gestire l'integrazione con DCM",
284
284
  "USER_CANT_ENABLE_CHAINING_OR_BOARD_OF_EXPERTS": "Utente: non abilitato a gestire la concatenazione o il gruppo di esperti",
285
- "USER_CREATION_BILLING_DENIED_PERMISSION": "Non hai crediti sufficienti per creare un Twin",
285
+ "USER_CREATION_BILLING_DENIED_PERMISSION": "Non hai crediti sufficienti per creare un agente",
286
286
  "USER_HAS_ONE_OR_MORE_COMPLETION_CONFIGS": "L'utente ha una o più configurazioni completions",
287
287
  "USER_CANT_BE_DELETED": "Utente non può essere cancellato",
288
- "MEMORI_NOT_FOUND": "Memori non trovato",
289
- "MEMORI_NOT_ACCESSIBLE": "Memori non accessibile",
288
+ "MEMORI_NOT_FOUND": "Agente non trovato",
289
+ "MEMORI_NOT_ACCESSIBLE": "Agente non accessibile",
290
290
  "MEMORI_ONLY_OWNER_CAN_CHANGE_GIVER_TAG_AND_PIN": "Solo il proprietario può cambiare il tag e il pin",
291
291
  "SESSION_NOT_FOUND": "Sessione non trovata",
292
292
  "SESSION_IS_NOT_ADMINISTRATIVE": "Sessione non amministrativa",
293
293
  "SESSION_EXPIRED": "Sessione scaduta",
294
- "MEMORI_MISSING_CONFIGURATION": "Memori: configurazione mancante",
295
- "MEMORI_CONFIGURATION_NOT_FOUND": "Memori: configurazione non trovata",
296
- "MEMORI_INVALID_PRIVACY_TYPE": "Memori: tipo di privacy non valido",
297
- "MEMORI_MISSING_PASSWORD": "Memori: password mancante",
298
- "MEMORI_INVALID_TOTAL_NUMBER_OF_RECOVERY_TOKENS": "Memori: numero totale di token di recupero non valido",
299
- "MEMORI_INVALID_MINIMUM_NUMBER_OF_RECOVERY_TOKENS": "Memori: numero minimo di token di recupero non valido",
300
- "MEMORI_INVALID_VOICE_TYPE": "Memori: tipo di voce non valido",
301
- "MEMORI_MISSING_NAME": "Memori: nome mancante",
302
- "MEMORI_MISSING_PASSWORD_OR_RECOVERY_TOKENS": "Memori: password o token di recupero mancanti",
303
- "MEMORI_INVALID_ID": "Memori: ID non valido",
304
- "MEMORI_NAME_ALREADY_USED": "Nome memori già in uso",
305
- "MEMORI_INVALID_PIN": "Memori: PIN non valido",
306
- "MEMORI_GIVER_TAG_PIN_CHANGE_REQUIRES_SEPARATE_OPERATION": "Memori: cambio TAG e PIN richiedono operazioni separate",
307
- "MEMORI_NO_PASSWORD_WHEN_PUBLIC": "Memori: password non richiesta su Memori pubblico",
294
+ "MEMORI_MISSING_CONFIGURATION": "Agente: configurazione mancante",
295
+ "MEMORI_CONFIGURATION_NOT_FOUND": "Agente: configurazione non trovata",
296
+ "MEMORI_INVALID_PRIVACY_TYPE": "Agente: tipo di privacy non valido",
297
+ "MEMORI_MISSING_PASSWORD": "Agente: password mancante",
298
+ "MEMORI_INVALID_TOTAL_NUMBER_OF_RECOVERY_TOKENS": "Agente: numero totale di token di recupero non valido",
299
+ "MEMORI_INVALID_MINIMUM_NUMBER_OF_RECOVERY_TOKENS": "Agente: numero minimo di token di recupero non valido",
300
+ "MEMORI_INVALID_VOICE_TYPE": "Agente: tipo di voce non valido",
301
+ "MEMORI_MISSING_NAME": "Agente: nome mancante",
302
+ "MEMORI_MISSING_PASSWORD_OR_RECOVERY_TOKENS": "Agente: password o token di recupero mancanti",
303
+ "MEMORI_INVALID_ID": "Agente: ID non valido",
304
+ "MEMORI_NAME_ALREADY_USED": "Nome Agente già in uso",
305
+ "MEMORI_INVALID_PIN": "Agente: PIN non valido",
306
+ "MEMORI_GIVER_TAG_PIN_CHANGE_REQUIRES_SEPARATE_OPERATION": "Agente: cambio TAG e PIN richiedono operazioni separate",
307
+ "MEMORI_NO_PASSWORD_WHEN_PUBLIC": "Agente: password non richiesta su agente pubblico",
308
308
  "MEMORI_DEEP_THOUGHT_REQUIRES_COMPLETIONS": "Pensiero Profondo richiede l'abilitazione delle completions",
309
309
  "MEMORI_BOARD_OF_EXPERTS_REQUIRES_COMPLETIONS": "Il gruppo di esperti richiede l'abilitazione delle completions",
310
- "MEMORI_INVALID_COMPLETION_CONFIG": "Memori: configurazione completions non valida",
310
+ "MEMORI_INVALID_COMPLETION_CONFIG": "Agente: configurazione completions non valida",
311
311
  "MEMORI_TRANSFER_MISSING_DESTINATION_USER": "Trasferimento: utente di destinazione mancante",
312
312
  "MEMORI_TRANSFER_INVALID_DESTINATION_USER_ID": "Trasferimento: ID utente di destinazione non valido",
313
313
  "MEMORI_TRANSFER_DESTINATION_USER_DATA_INCONSISTENT": "Trasferimento: dati utente di destinazione non validi",
314
314
  "MEMORI_TRANSFER_NOTHING_TO_DO": "Trasferimento: alcuna operazione da fare",
315
- "MEMORI_CONFIGURATION_CANT_BE_CHANGED": "Memori: la configurazione non può essere modificata",
316
- "MEMORI_MISSING_NEW_PASSWORD": "Memori: nuova password mancante",
315
+ "MEMORI_CONFIGURATION_CANT_BE_CHANGED": "Agente: la configurazione non può essere modificata",
316
+ "MEMORI_MISSING_NEW_PASSWORD": "Agente: nuova password mancante",
317
317
  "MEMORI_SESSIONS_INVALID_DATE_FROM_FORMAT": "Formato non valido data a partire da",
318
318
  "MEMORI_SESSIONS_INVALID_DATE_TO_FORMAT": "Formato non valido data fino a",
319
- "MEMORI_FEATURE_REQUIRES_SUBSCRIPTION": "Memori: funzionalità richiede un abbonamento",
319
+ "MEMORI_FEATURE_REQUIRES_SUBSCRIPTION": "Agente: funzionalità richiede un abbonamento",
320
320
  "INTEGRATION_NOT_FOUND": "Integrazione non trovata",
321
321
  "INTEGRATION_INVALID_TYPE": "Tipo integrazione non valido",
322
322
  "INTEGRATION_ALREADY_EXISTS": "Integrazione già esistente",
323
- "INTEGRATION_MEMORI_IS_NOT_PUBLIC": "Memori non pubblici non possono essere integrati",
323
+ "INTEGRATION_MEMORI_IS_NOT_PUBLIC": "Agenti non pubblici non possono essere integrati",
324
324
  "INTEGRATION_MISSING_INVOCATION_TEXT": "Integrazione: testo di invocazione mancante",
325
325
  "INTEGRATION_MISSING_DEVICE_EMAILS": "Integrazione: email del dispositivo mancante",
326
- "INTEGRATION_MEMORI_IS_EMPTY": "Memori vuoti non possono essere integrati",
326
+ "INTEGRATION_MEMORI_IS_EMPTY": "Agenti vuoti non possono essere integrati",
327
327
  "INTEGRATION_MISSING_PRIVACY_POLICY": "Integrazione: privacy policy mancante",
328
328
  "INTEGRATION_MISSING_CATEGORY": "Categoria integrazione mancante",
329
329
  "INTEGRATION_MISSING_DESCRIPTION": "Descrizione integrazione mancante",
@@ -357,7 +357,7 @@
357
357
  "ACTIONLOG_INVALID_USER_ID": "ID utente non valido",
358
358
  "ACTIONLOG_INVALID_DATE_FROM_FORMAT": "Data a partire da: formato non valido",
359
359
  "ACTIONLOG_INVALID_DATE_TO_FORMAT": "Data fino a: formato non valido",
360
- "ACTIONLOG_INVALID_MEMORI_ID": "ID Memori non valido",
360
+ "ACTIONLOG_INVALID_MEMORI_ID": "ID agente non valido",
361
361
  "CONSUMPTIONLOG_INVALID_TYPE": "Tipo di log non valido",
362
362
  "CONSUMPTIONLOG_INVALID_DATE_FROM_FORMAT": "Data a partire da: formato non valido",
363
363
  "CONSUMPTIONLOG_INVALID_DATE_TO_FORMAT": "Data fino a: formato non valido",
@@ -377,14 +377,14 @@
377
377
  "IMPORTCSV_INVALID_MEDIA_LINK": "Importazione CSV: link media non valido",
378
378
  "IMPORTCSV_INVALID_LINK_TITLE_HANDLING": "Importazione CSV: titolo link non valido",
379
379
  "IMPORTCSV_UNDETECTABLE_CHAR_ENCODING": "Importazione CSV: encoding caratteri non rilevabile",
380
- "IMPORTCSV_CANT_IMPORT_TO_SECRET_MEMORI": "Importazione CSV: impossibile importare in Memori segreti",
380
+ "IMPORTCSV_CANT_IMPORT_TO_SECRET_MEMORI": "Importazione CSV: impossibile importare in agenti segreti",
381
381
  "IMPORTTXT_MISSING_ROWS": "Importazione TXT: righe mancanti",
382
382
  "IMPORTTXT_INVALID_GRANULARITY": "Importazione TXT: granularità non valida",
383
383
  "IMPORTTXT_INVALID_RECEIVER_ID": "Importazione TXT: ID receiver non valido",
384
384
  "IMPORTTXT_INVALID_MEDIA_LINK": "Importazione TXT: link media non valido",
385
385
  "IMPORTTXT_INVALID_LINK_TITLE_HANDLING": "Importazione TXT: titolo link non valido",
386
386
  "IMPORTTXT_UNDETECTABLE_CHAR_ENCODING": "Importazione TXT: encoding caratteri non rilevabile",
387
- "IMPORTTXT_CANT_IMPORT_TO_SECRET_MEMORI": "Importazione TXT: impossibile importare in Memori segreti",
387
+ "IMPORTTXT_CANT_IMPORT_TO_SECRET_MEMORI": "Importazione TXT: impossibile importare in agenti segreti",
388
388
  "IMPORTTXT_IMPORT_LIMIT_EXCEEDED": "Importazione TXT: limite importazione superato",
389
389
  "IMPORTTXT_IMPORT_ON_GPT4_REQUIRES_API_KEY": "Importazione TXT: importazione su GPT-4 richiede API key",
390
390
  "IMPORTTXT_IMPORT_REQUIRES_PAYING": "Importazione TXT: importazione richiede un piano a pagamento",
@@ -402,7 +402,7 @@
402
402
  "EXPORTJSONL_MISSING_PASSWORD": "Esportazione JSONL: password mancante",
403
403
  "EXPORTJSONL_EXPORT_REQUIRES_PAYING": "Esportazione JSONL: esportazione richiede un piano a pagamento",
404
404
  "ANALYSIS_MISSING_QUERY": "Analisi: query mancante",
405
- "ANALYSIS_CANT_ANALYZE_SECRET_MEMORI": "Analisi: impossibile analizzare Memori segreti",
405
+ "ANALYSIS_CANT_ANALYZE_SECRET_MEMORI": "Analisi: impossibile analizzare agenti segreti",
406
406
  "ANALYSIS_USER_QUERY_MATCH_REQUIRES_DEEP_THOUGHT": "Analisi: corrispondenza query utente richiede Pensiero Profondo",
407
407
  "BADGE_ASSIGNMENT_WRONG_OR_MISSING_CREDENTIALS": "Assegnazione badge: credenziali errate o mancanti",
408
408
  "BADGE_ASSIGNMENT_MISSING_REF_ID": "Assegnazione badge: ID ref mancante",
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "7.12.1",
2
+ "version": "7.13.0",
3
3
  "name": "@memori.ai/memori-react",
4
4
  "author": "Memori Srl",
5
5
  "main": "dist/index.js",
@@ -34,7 +34,7 @@ const AgeVerificationModal = ({ visible = false, onClose, minAge }: Props) => {
34
34
  toast.error(t('underageTwinSession', { age: minAge }));
35
35
  setError(
36
36
  t('underageTwinSession', { age: minAge }) ||
37
- `You must be at least ${minAge} years old to interact with this Twin`
37
+ `You must be at least ${minAge} years old to interact with this Agent`
38
38
  );
39
39
  setSubmitting(false);
40
40
  return;
@@ -131,12 +131,10 @@ const Chat: React.FC<Props> = ({
131
131
  }) => {
132
132
  const scrollToBottom = () => {
133
133
  setTimeout(() => {
134
- document
135
- .querySelector('.memori-chat--content')
136
- ?.scrollTo(
137
- 0,
138
- document.querySelector('.memori-chat--content')?.scrollHeight ?? 0
139
- );
134
+ let userMsgs = document.querySelectorAll(
135
+ '.memori-chat--bubble-container.memori-chat--bubble-from-user'
136
+ );
137
+ userMsgs[userMsgs.length - 1]?.scrollIntoView?.();
140
138
  }, 200);
141
139
  };
142
140
  useEffect(() => {
@@ -9,7 +9,7 @@
9
9
  box-sizing: border-box;
10
10
  }
11
11
 
12
- .memori-widget>.memori-spin {
12
+ .memori-widget > .memori-spin {
13
13
  height: calc(100vh - 50px);
14
14
  }
15
15
 
@@ -180,7 +180,7 @@
180
180
  font-size: 1rem;
181
181
  }
182
182
 
183
- .memori--conversation-button+.memori--conversation-button {
183
+ .memori--conversation-button + .memori--conversation-button {
184
184
  margin-left: 0.33rem;
185
185
  }
186
186
 
@@ -197,6 +197,12 @@
197
197
  }
198
198
 
199
199
  .memori.memori-widget.chat-focused .memori--powered-by,
200
- .memori.memori-widget.chat-focused .memori-website_assistant--close-button-wrapper button.memori-website_assistant--close-button {
200
+ .memori.memori-widget.chat-focused
201
+ .memori-website_assistant--close-button-wrapper
202
+ button.memori-website_assistant--close-button {
201
203
  display: none;
202
- }
204
+ }
205
+
206
+ .memori.memori--auto-start .memori--start-panel {
207
+ display: none;
208
+ }
@@ -50,6 +50,13 @@ Default.args = {
50
50
  tenant,
51
51
  };
52
52
 
53
+ export const WithAutoStart = Template.bind({});
54
+ WithAutoStart.args = {
55
+ memori,
56
+ tenant,
57
+ autoStart: true,
58
+ };
59
+
53
60
  export const WithPosition = Template.bind({});
54
61
  WithPosition.args = {
55
62
  memori: {
@@ -413,6 +413,8 @@ export interface Props {
413
413
  additionalSettings?: JSX.Element | null;
414
414
  userAvatar?: string | JSX.Element;
415
415
  useMathFormatting?: boolean;
416
+ autoStart?: boolean;
417
+ applyVarsToRoot?: boolean;
416
418
  }
417
419
 
418
420
  const MemoriWidget = ({
@@ -463,6 +465,8 @@ const MemoriWidget = ({
463
465
  customMediaRenderer,
464
466
  userAvatar,
465
467
  useMathFormatting = false,
468
+ autoStart = false,
469
+ applyVarsToRoot = false,
466
470
  }: Props) => {
467
471
  const { t, i18n } = useTranslation();
468
472
 
@@ -579,7 +583,7 @@ const MemoriWidget = ({
579
583
  const [showKnownFactsDrawer, setShowKnownFactsDrawer] = useState(false);
580
584
  const [showExpertsDrawer, setShowExpertsDrawer] = useState(false);
581
585
  const [muteSpeaker, setMuteSpeaker] = useState(
582
- !defaultEnableAudio || !defaultSpeakerActive
586
+ !defaultEnableAudio || !defaultSpeakerActive || autoStart
583
587
  );
584
588
  const [continuousSpeech, setContinuousSpeech] = useState(false);
585
589
  const [continuousSpeechTimeout, setContinuousSpeechTimeout] = useState(2);
@@ -632,15 +636,18 @@ const MemoriWidget = ({
632
636
  }
633
637
 
634
638
  setMuteSpeaker(
639
+ autoStart ||
640
+ getLocalConfig(
641
+ 'muteSpeaker',
642
+ !defaultEnableAudio || !defaultSpeakerActive || autoStart
643
+ )
644
+ );
645
+ speakerMuted =
646
+ autoStart ||
635
647
  getLocalConfig(
636
648
  'muteSpeaker',
637
- !defaultEnableAudio || !defaultSpeakerActive
638
- )
639
- );
640
- speakerMuted = getLocalConfig(
641
- 'muteSpeaker',
642
- !defaultEnableAudio || !defaultSpeakerActive
643
- );
649
+ !defaultEnableAudio || !defaultSpeakerActive || autoStart
650
+ );
644
651
  setContinuousSpeech(microphoneMode === 'CONTINUOUS');
645
652
  setContinuousSpeechTimeout(getLocalConfig('continuousSpeechTimeout', 2));
646
653
  setControlsPosition(
@@ -2014,24 +2021,6 @@ const MemoriWidget = ({
2014
2021
  document.dispatchEvent(e);
2015
2022
  };
2016
2023
 
2017
- const handleSpeechEnd = () => {
2018
- memoriSpeaking = false;
2019
- setMemoriTyping(false);
2020
- emitEndSpeakEvent();
2021
- };
2022
-
2023
- const generateSSMLText = (text: string) => {
2024
- const textToSpeak = escapeHTML(
2025
- stripMarkdown(stripEmojis(stripHTML(stripOutputTags(text))))
2026
- );
2027
- return `<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xmlns:mstts="https://www.w3.org/2001/mstts" xmlns:emo="http://www.w3.org/2009/10/emotionml" xml:lang="${getCultureCodeByLanguage(
2028
- userLang
2029
- )}"><voice name="${getTTSVoice(userLang)}"><s>${replaceTextWithPhonemes(
2030
- textToSpeak,
2031
- userLang.toLowerCase()
2032
- )}</s></voice></speak>`;
2033
- };
2034
-
2035
2024
  const speak = (text: string): void => {
2036
2025
  if (!AZURE_COGNITIVE_SERVICES_TTS_KEY || preview) {
2037
2026
  emitEndSpeakEvent();
@@ -2236,13 +2225,10 @@ const MemoriWidget = ({
2236
2225
  let textarea = document.querySelector(
2237
2226
  '#chat-fieldset textarea'
2238
2227
  ) as HTMLTextAreaElement | null;
2239
- // console.log('textarea', enableFocusChatInput);
2240
2228
  if (textarea && enableFocusChatInput) {
2241
2229
  textarea.focus();
2242
- // console.log('focused');
2243
2230
  } else {
2244
2231
  textarea?.blur();
2245
- // console.log('blurred');
2246
2232
  }
2247
2233
  };
2248
2234
 
@@ -2538,12 +2524,8 @@ const MemoriWidget = ({
2538
2524
 
2539
2525
  const integrationStylesheet = `
2540
2526
  ${
2541
- preview
2542
- ? '#preview,'
2543
- : selectedLayout === 'WEBSITE_ASSISTANT'
2544
- ? ''
2545
- : ':root,'
2546
- } .memori-widget, .memori-drawer, .memori-modal {
2527
+ preview ? '#preview, ' : applyVarsToRoot ? ':root, ' : ''
2528
+ }memori-client, .memori-widget, .memori-drawer, .memori-modal {
2547
2529
  ${Object.entries(integrationProperties)
2548
2530
  .map(([key, value]) => `${key}: ${value};`)
2549
2531
  .join('\n')}
@@ -3114,6 +3096,12 @@ const MemoriWidget = ({
3114
3096
  },
3115
3097
  [memoriPwd, memori, memoriTokens, birthDate, sessionId, userLang, position]
3116
3098
  );
3099
+ useEffect(() => {
3100
+ if (!clickedStart && autoStart) {
3101
+ onClickStart();
3102
+ }
3103
+ }, [clickedStart, autoStart]);
3104
+
3117
3105
  useEffect(() => {
3118
3106
  const targetNode =
3119
3107
  document.querySelector(`memori-client[memoriname="${memori.name}"]`) ||
@@ -3460,6 +3448,7 @@ const MemoriWidget = ({
3460
3448
  `memori-controls-${controlsPosition.toLowerCase()}`,
3461
3449
  `memori--avatar-${integrationConfig?.avatar || 'default'}`,
3462
3450
  {
3451
+ 'memori--auto-start': autoStart,
3463
3452
  'memori--preview': preview,
3464
3453
  'memori--embed': embed,
3465
3454
  'memori--with-integration': integration,
@@ -29,7 +29,27 @@ it('renders FullPage layout unchanged', () => {
29
29
  tenant={tenant}
30
30
  tenantID="aisuru.com"
31
31
  integration={integration}
32
- layout="FULLPAGE"
32
+ layout="FULLPAGE"
33
+ />
34
+ </VisemeProvider>
35
+ </I18nWrapper>
36
+ );
37
+ expect(container).toMatchSnapshot();
38
+ });
39
+
40
+ it('renders FullPage layout with root css properties unchanged', () => {
41
+ const { container } = render(
42
+ <I18nWrapper>
43
+ <VisemeProvider>
44
+ <Memori
45
+ showShare={true}
46
+ showSettings={true}
47
+ memori={memori}
48
+ tenant={tenant}
49
+ tenantID="aisuru.com"
50
+ integration={integration}
51
+ layout="FULLPAGE"
52
+ applyVarsToRoot
33
53
  />
34
54
  </VisemeProvider>
35
55
  </I18nWrapper>
@@ -13,7 +13,7 @@ exports[`renders Chat layout unchanged 1`] = `
13
13
  >
14
14
  <style>
15
15
 
16
- :root, .memori-widget, .memori-drawer, .memori-modal {
16
+ memori-client, .memori-widget, .memori-drawer, .memori-modal {
17
17
  --memori-chat-bubble-bg: #fff;
18
18
  --memori-text-color: #2a2a2a;
19
19
  --memori-button-bg: #823ce1;