@8wave/ai-elements 0.119.0-beta.55 → 0.119.0-beta.59
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.
- package/dist/ai-elements.es.js +268 -215
- package/dist/ai-elements.es.js.map +1 -1
- package/dist-vue/PkChatbot.js +1 -1
- package/dist-vue/PkChatbotMessages.js +1 -1
- package/dist-vue/PkChatbotViewChat.js +1 -1
- package/dist-vue/_chunks/{PkChatbot-Ck6RO0Rd.js → PkChatbot-Bgw5K9w1.js} +2 -2
- package/dist-vue/_chunks/{PkChatbot-Ck6RO0Rd.js.map → PkChatbot-Bgw5K9w1.js.map} +1 -1
- package/dist-vue/_chunks/{PkChatbotMessages-Bni4EjEB.js → PkChatbotMessages-B2e1MQ_d.js} +85 -78
- package/dist-vue/_chunks/PkChatbotMessages-B2e1MQ_d.js.map +1 -0
- package/dist-vue/_chunks/{PkChatbotViewChat-B_T3HkON.js → PkChatbotViewChat-DEpMIiic.js} +2 -2
- package/dist-vue/_chunks/{PkChatbotViewChat-B_T3HkON.js.map → PkChatbotViewChat-DEpMIiic.js.map} +1 -1
- package/dist-vue/composables.js +50 -4
- package/dist-vue/composables.js.map +1 -1
- package/dist-vue/index.js +5 -5
- package/dist-vue/index.js.map +1 -1
- package/dist-vue/packages/models/src/schema/Organization.d.ts +10 -0
- package/dist-vue/style.css +1 -1
- package/package.json +1 -1
- package/dist-vue/_chunks/PkChatbotMessages-Bni4EjEB.js.map +0 -1
package/dist/ai-elements.es.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
(function(){try{var __b=new URL(".",import.meta.url).href;if(typeof document<`u`){var e=document.createElement(`style`);e.appendChild(document.createTextNode(`@font-face{font-family:'Open Sans';font-style:italic;font-weight:300 800;font-stretch:100%;font-display:swap;src:url("+__b+"assets/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtE6F15M.woff2) format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:'Open Sans';font-style:italic;font-weight:300 800;font-stretch:100%;font-display:swap;src:url("+__b+"assets/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWvU6F15M.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Open Sans';font-style:italic;font-weight:300 800;font-stretch:100%;font-display:swap;src:url("+__b+"assets/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtU6F15M.woff2) format('woff2');unicode-range:U+1F00-1FFF}@font-face{font-family:'Open Sans';font-style:italic;font-weight:300 800;font-stretch:100%;font-display:swap;src:url("+__b+"assets/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWuk6F15M.woff2) format('woff2');unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:'Open Sans';font-style:italic;font-weight:300 800;font-stretch:100%;font-display:swap;src:url("+__b+"assets/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWu06F15M.woff2) format('woff2');unicode-range:U+0307-0308,U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F}@font-face{font-family:'Open Sans';font-style:italic;font-weight:300 800;font-stretch:100%;font-display:swap;src:url("+__b+"assets/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWxU6F15M.woff2) format('woff2');unicode-range:U+0302-0303,U+0305,U+0307-0308,U+0310,U+0312,U+0315,U+031A,U+0326-0327,U+032C,U+032F-0330,U+0332-0333,U+0338,U+033A,U+0346,U+034D,U+0391-03A1,U+03A3-03A9,U+03B1-03C9,U+03D1,U+03D5-03D6,U+03F0-03F1,U+03F4-03F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-209F,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE00-1EEFF}@font-face{font-family:'Open Sans';font-style:italic;font-weight:300 800;font-stretch:100%;font-display:swap;src:url("+__b+"assets/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqW106F15M.woff2) format('woff2');unicode-range:U+0001-000C,U+000E-001F,U+007F-009F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+2800-28FF,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B00-2BFF,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F000-1F0FF,U+1F100-1F1AE,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F700-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F8D0-1F8D8,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FAC6,U+1FAC8,U+1FACC-1FADD,U+1FADF-1FAEB,U+1FAEF-1FAFA,U+1FB00-1FBFF}@font-face{font-family:'Open Sans';font-style:italic;font-weight:300 800;font-stretch:100%;font-display:swap;src:url("+__b+"assets/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtk6F15M.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Open Sans';font-style:italic;font-weight:300 800;font-stretch:100%;font-display:swap;src:url("+__b+"assets/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWt06F15M.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Open Sans';font-style:italic;font-weight:300 800;font-stretch:100%;font-display:swap;src:url("+__b+"assets/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWuU6F.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Open Sans';font-style:normal;font-weight:300 800;font-stretch:100%;font-display:swap;src:url("+__b+"assets/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSKmu1aB.woff2) format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:'Open Sans';font-style:normal;font-weight:300 800;font-stretch:100%;font-display:swap;src:url("+__b+"assets/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSumu1aB.woff2) format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Open Sans';font-style:normal;font-weight:300 800;font-stretch:100%;font-display:swap;src:url("+__b+"assets/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSOmu1aB.woff2) format('woff2');unicode-range:U+1F00-1FFF}@font-face{font-family:'Open Sans';font-style:normal;font-weight:300 800;font-stretch:100%;font-display:swap;src:url("+__b+"assets/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSymu1aB.woff2) format('woff2');unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:'Open Sans';font-style:normal;font-weight:300 800;font-stretch:100%;font-display:swap;src:url("+__b+"assets/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS2mu1aB.woff2) format('woff2');unicode-range:U+0307-0308,U+0590-05FF,U+200C-2010,U+20AA,U+25CC,U+FB1D-FB4F}@font-face{font-family:'Open Sans';font-style:normal;font-weight:300 800;font-stretch:100%;font-display:swap;src:url("+__b+"assets/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTVOmu1aB.woff2) format('woff2');unicode-range:U+0302-0303,U+0305,U+0307-0308,U+0310,U+0312,U+0315,U+031A,U+0326-0327,U+032C,U+032F-0330,U+0332-0333,U+0338,U+033A,U+0346,U+034D,U+0391-03A1,U+03A3-03A9,U+03B1-03C9,U+03D1,U+03D5-03D6,U+03F0-03F1,U+03F4-03F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-209F,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE00-1EEFF}@font-face{font-family:'Open Sans';font-style:normal;font-weight:300 800;font-stretch:100%;font-display:swap;src:url("+__b+"assets/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTUGmu1aB.woff2) format('woff2');unicode-range:U+0001-000C,U+000E-001F,U+007F-009F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+2800-28FF,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B00-2BFF,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F000-1F0FF,U+1F100-1F1AE,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F700-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F8D0-1F8D8,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FAC6,U+1FAC8,U+1FACC-1FADD,U+1FADF-1FAEB,U+1FAEF-1FAFA,U+1FB00-1FBFF}@font-face{font-family:'Open Sans';font-style:normal;font-weight:300 800;font-stretch:100%;font-display:swap;src:url("+__b+"assets/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSCmu1aB.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Open Sans';font-style:normal;font-weight:300 800;font-stretch:100%;font-display:swap;src:url("+__b+"assets/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSGmu1aB.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Open Sans';font-style:normal;font-weight:300 800;font-stretch:100%;font-display:swap;src:url("+__b+"assets/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS-muw.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}`)),document.head.appendChild(e)}}catch(e){console.error(`vite-plugin-css-injected-by-js`,e)}})();
|
|
2
2
|
import { C as e, E as t, S as n, T as r, _ as i, a, b as o, d as s, f as c, g as l, h as u, i as d, l as f, m as p, n as m, o as h, p as g, r as _, s as v, t as y, u as b, w as x, x as S, y as ee } from "./_chunks/zod-Dd1GFq_6.js";
|
|
3
|
-
import { $ as C, B as te, C as w, Ct as T, D as ne, Dt as E, E as D, Et as re, F as ie, G as ae, H as oe, I as O, J as k, K as se, L as A, M as ce, N as le, O as j, P as ue, R as de, S as M, St as N, T as P, Tt as fe, X as F, Z as pe, _ as I, _t as
|
|
3
|
+
import { $ as C, B as te, C as w, Ct as T, D as ne, Dt as E, E as D, Et as re, F as ie, G as ae, H as oe, I as O, J as k, K as se, L as A, M as ce, N as le, O as j, P as ue, R as de, S as M, St as N, T as P, Tt as fe, X as F, Z as pe, _ as I, _t as L, b as R, bt as z, ct as me, d as B, dt as he, ft as ge, g as V, gt as _e, h as H, it as U, j as ve, k as ye, l as be, lt as xe, m as W, mt as G, n as Se, nt as Ce, ot as we, q as Te, r as Ee, rt as De, st as Oe, t as K, u as ke, ut as Ae, v as q, vt as je, w as Me, wt as J, x as Y, xt as Ne, y as Pe, yt as Fe, z as Ie } from "./_chunks/vue.runtime.esm-bundler-DKVd2gci.js";
|
|
4
4
|
import { n as Le, r as Re, t as ze } from "./_chunks/vue-i18n-CooVjJjT.js";
|
|
5
5
|
import { i as Be, n as Ve, r as He } from "./_chunks/iconify-CgyW1o4B.js";
|
|
6
6
|
import { A as Ue, C as We, D as Ge, E as Ke, F as qe, I as Je, L as Ye, M as Xe, N as Ze, O as Qe, P as $e, S as et, T as tt, _ as nt, a as rt, b as it, c as at, d as ot, f as st, g as ct, h as lt, i as ut, j as dt, k as ft, m as pt, n as mt, o as ht, p as gt, r as _t, s as vt, t as yt, v as bt, w as xt, x as St, y as Ct } from "./_chunks/PkStreamingMarkdown-pEgm7m-B.js";
|
|
@@ -139,10 +139,10 @@ function Hn(e, t) {
|
|
|
139
139
|
for (let n in t) {
|
|
140
140
|
if (!Object.hasOwn(t, n)) continue;
|
|
141
141
|
let r = t[n], i = e[n];
|
|
142
|
-
if (Sn(i) && Sn(r) && Object.hasOwn(e, n) && !
|
|
142
|
+
if (Sn(i) && Sn(r) && Object.hasOwn(e, n) && !me(r) && !we(r)) {
|
|
143
143
|
e[n] = Hn(i, r);
|
|
144
|
-
let t =
|
|
145
|
-
|
|
144
|
+
let t = L(e)[n];
|
|
145
|
+
me(t) && xe(t) && Ne(t);
|
|
146
146
|
} else e[n] = r;
|
|
147
147
|
}
|
|
148
148
|
return e;
|
|
@@ -153,7 +153,7 @@ function Wn(e) {
|
|
|
153
153
|
}
|
|
154
154
|
var { assign: Gn } = Object;
|
|
155
155
|
function Kn(e) {
|
|
156
|
-
return !!(
|
|
156
|
+
return !!(me(e) && e.effect);
|
|
157
157
|
}
|
|
158
158
|
function qn(e, t, n, r) {
|
|
159
159
|
let { state: i, actions: a, getters: o } = t, s = n.state.value[e], c;
|
|
@@ -250,9 +250,9 @@ function Jn(e, t, n = {}, r, i, a) {
|
|
|
250
250
|
let S = (r._a && r._a.runWithContext || zn)(() => r._e.run(() => (o = Ce()).run(() => t({ action: y }))));
|
|
251
251
|
for (let t in S) {
|
|
252
252
|
let n = S[t];
|
|
253
|
-
|
|
253
|
+
me(n) && !Kn(n) || we(n) ? a || (m && Wn(n) && (me(n) ? n.value = m[t] : ((n instanceof Set || n instanceof Map) && n.clear(), Hn(n, m[t]))), r.state.value[e][t] = n) : typeof n == "function" && (S[t] = y(n, t), s.actions[t] = n);
|
|
254
254
|
}
|
|
255
|
-
return Gn(x, S), Gn(
|
|
255
|
+
return Gn(x, S), Gn(L(x), S), Object.defineProperty(x, "$state", {
|
|
256
256
|
get: () => r.state.value[e],
|
|
257
257
|
set: (e) => {
|
|
258
258
|
g((t) => {
|
|
@@ -279,7 +279,7 @@ function Yn(e, t, n) {
|
|
|
279
279
|
return a.$id = e, a;
|
|
280
280
|
}
|
|
281
281
|
function Xn(e) {
|
|
282
|
-
let t =
|
|
282
|
+
let t = L(e), n = {};
|
|
283
283
|
for (let r in t) {
|
|
284
284
|
let i = t[r];
|
|
285
285
|
i?.effect ? n[r] = W({
|
|
@@ -287,7 +287,7 @@ function Xn(e) {
|
|
|
287
287
|
set(t) {
|
|
288
288
|
e[r] = t;
|
|
289
289
|
}
|
|
290
|
-
}) : (
|
|
290
|
+
}) : (me(i) || we(i)) && (n[r] = je(e, r));
|
|
291
291
|
}
|
|
292
292
|
return n;
|
|
293
293
|
}
|
|
@@ -1136,7 +1136,7 @@ var Zn = {
|
|
|
1136
1136
|
feature: {
|
|
1137
1137
|
apiTools: "API tools",
|
|
1138
1138
|
byok: "Modelli propri (BYOK)",
|
|
1139
|
-
endpoints: "API
|
|
1139
|
+
endpoints: "API endpoint",
|
|
1140
1140
|
fileUpload: "Caricamento file",
|
|
1141
1141
|
gateway: "Modelli della piattaforma",
|
|
1142
1142
|
group: {
|
|
@@ -1148,6 +1148,7 @@ var Zn = {
|
|
|
1148
1148
|
leads: "Contatti",
|
|
1149
1149
|
legend: "Funzionalità",
|
|
1150
1150
|
mcpServers: "Server MCP",
|
|
1151
|
+
openaiApi: "API OpenAI",
|
|
1151
1152
|
proactiveAutomations: "Automazioni proattive",
|
|
1152
1153
|
salesforce: "Salesforce",
|
|
1153
1154
|
sharepoint: "SharePoint",
|
|
@@ -1183,7 +1184,7 @@ var Zn = {
|
|
|
1183
1184
|
webSourceRemoveMissing: "Per una sitemap completa. Molte rimozioni ti aspettano.",
|
|
1184
1185
|
webSourceRemoveMissingExplained: "Per un sito tuo, la cui sitemap elenca tutto ciò che è pubblicato. Se ne mancano troppe in una volta non rimuove niente e chiede conferma."
|
|
1185
1186
|
},
|
|
1186
|
-
hint: /* @__PURE__ */ JSON.parse("{\"agentModel\":\"Pre-selezionato alla creazione di un nuovo agente.\",\"agentOnOwnEndpoint\":\"Questo agente gira sull’endpoint della tua organizzazione.\",\"allowedDomains\":\"Cerca solo all'interno di questi domini.\",\"approvalChannels\":\"Un tool può chiedere conferma all'utente prima di eseguire: espandi il tool per attivarla. Via API o in esecuzioni schedulate la chiamata viene rifiutata.\",\"audience\":\"L'aud atteso nel JWT. Vuoto: non verificato.\",\"blockedDomains\":\"Escludi questi domini dai risultati.\",\"channel\":{\"app\":\"L'agente è accessibile tramite la pagina pubblica dedicata.\",\"frontoffice\":\"L'agente è visibile nel pannello Frontoffice.\",\"widget\":\"L'agente è incorporabile nei siti web tramite embed script.\"},\"channelAppDisabled\":\"Il canale App è disabilitato: il link diretto e l'iframe non funzioneranno.\",\"channelWidgetDisabled\":\"Il canale Widget è disabilitato: il codice embed e il loader non funzioneranno.\",\"costSourceEndpoint\":\"I modelli sull’endpoint della tua organizzazione: li fattura il tuo fornitore, qui il costo è una stima a prezzi di listino.\",\"customCss\":\"CSS iniettato nello shadow DOM del widget. Permette di personalizzare l'interfaccia della chat dall'esterno.\",\"disallowPromptTraining\":\"Instrada le richieste solo verso provider che non usano i dati per addestrare i modelli AI.\",\"dismissableNotice\":\"Verrà nascosto dopo il primo messaggio.\",\"documentFolderManaged\":\"Cartella sincronizzata da {provider}: il contenuto si modifica alla sorgente.\",\"documentRefresh\":\"Rilegge la pagina alla scadenza e rigenera solo ciò che è cambiato.\",\"documentRefreshTriggerOff\":\"Questa pagina si aggiorna da sola, e salvando un testo vostro si spegne.\",\"documentSelectionHasManaged\":\"La selezione contiene documenti che arrivano da una sorgente collegata e non si possono modificare a mano.\",\"documentSourceInterval\":\"Ogni quanto la cartella viene riletta.\",\"documentSourceIntervalExplained\":\"Ogni quanto la cartella viene riletta. I file invariati non vengono riconvertiti.\",\"documentSourceName\":\"Il nome con cui la cartella compare qui. Quello remoto non cambia.\",\"emailClaim\":\"Il claim JWT che contiene l'email dell'utente (default: email).\",\"embedCode\":\"Copia e incolla questo codice per incorporare l'agente nel tuo sito web.\",\"embedding\":\"I vettori della base di conoscenza, dei file degli utenti e delle memorie. Si calcolano sul gateway AI della piattaforma, oppure sul tuo endpoint con uno dei due modelli ammessi.\",\"embeddingActivation\":\"Prima di salvare, l’endpoint calcola il vettore di una frase di prova, che viene confrontato con quello del modello: un modello diverso viene rifiutato. Passare a un altro modello ricalcola la base di conoscenza e le memorie, e finché non ha finito le ricerche trovano solo ciò che è già nel modello nuovo.\",\"embeddingEndpointModel\":\"L’id con cui il tuo endpoint serve il modello\",\"embeddingEndpointOff\":\"Accendi l’endpoint per calcolarci i vettori\",\"embeddingFamily\":\"Fra quelli che il tuo endpoint serve\",\"embeddingFamilyUnknown\":\"L’endpoint non lo dichiara: lo verifica il salvataggio\",\"embeddingModelsServed\":\"Il tuo endpoint serve anche questi. Non possono rispondere a un agente: quello con cui si calcolano i vettori si sceglie nella sezione Embedding.\",\"embeddingNotConfigured\":\"La base di conoscenza, le risposte corrette, le memorie e l’elaborazione dei documenti sono ferme, perché nessuno calcola i loro vettori. Attiva un modello di embedding sul tuo endpoint per farle ripartire.\",\"embeddingReindexing\":\"Finché la reindicizzazione non finisce, le ricerche nella base di conoscenza e nelle memorie trovano solo ciò che è già nel modello nuovo: risultati parziali, mai sbagliati. Non serve fare niente, e se si interrompe riparte da dove era arrivata.\",\"embeddingStopped\":\"L’endpoint che calcola i vettori è spento: la base di conoscenza, le risposte corrette, le memorie e l’elaborazione dei documenti sono ferme finché non lo riaccendi.\",\"embeddingWithoutEndpoint\":\"I vettori della base di conoscenza, dei file degli utenti e delle memorie si calcolano sul gateway AI della piattaforma. Collega il tuo endpoint per calcolarli lì.\",\"embedIframe\":\"Incorpora l'interfaccia della chat direttamente con un iframe.\",\"embedPreview\":\"L'agente sarà accessibile al seguente URL.\",\"embeddingWithoutEndpointOrGateway\":\"I vettori della base di conoscenza, dei file degli utenti e delle memorie non si calcolano: questa organizzazione non usa il gateway AI della piattaforma. Collega il tuo endpoint per calcolarli lì.\",\"embeddingWithoutGateway\":\"I vettori della base di conoscenza, dei file degli utenti e delle memorie. Questa organizzazione non usa il gateway AI della piattaforma, quindi si calcolano solo sul tuo endpoint, con uno dei due modelli ammessi.\",\"externalContextSchema\":\"Definisci quali dati contestuali il sito ospitante può inviare all'agente.\",\"externalContextSchemaToggle\":\"Abilita la ricezione di dati contestuali dal sito ospitante.\",\"feature\":{\"apiTools\":\"Gli agenti chiamano come tool le API dell’organizzazione.\",\"byok\":\"L’organizzazione collega un suo endpoint compatibile OpenAI e ne usa i modelli.\",\"endpoints\":\"Gli agenti rispondono via REST ad altri sistemi.\",\"fileUpload\":\"Gli utenti allegano file ai messaggi in chat.\",\"gateway\":\"I modelli del gateway AI, e con loro l’embedding della piattaforma, le utility e l’AI dei documenti che li usano.\",\"hubspot\":\"I lead raccolti dagli agenti vanno nel CRM HubSpot dell’organizzazione.\",\"leads\":\"Gli agenti raccolgono i contatti con un modulo in chat, e la pagina Contatti li elenca.\",\"mcpServers\":\"Gli agenti usano i tool di server MCP esterni.\",\"proactiveAutomations\":\"Gli agenti ricontrollano da soli quello che l’utente chiede di tenere d’occhio. Spente, i controlli in corso si fermano al giro successivo.\",\"salesforce\":\"I lead raccolti dagli agenti vanno nel CRM Salesforce dell’organizzazione.\",\"sharepoint\":\"Gli agenti leggono i file di cartelle SharePoint tenute sincronizzate.\",\"subAgents\":\"Un agente ne chiama un altro come tool.\",\"teams\":\"Gli agenti rispondono nelle chat di Teams.\",\"voice\":\"Gli agenti parlano con l’utente in tempo reale.\",\"whatsapp\":\"Gli agenti rispondono su WhatsApp Business.\"},\"fallbackModels\":\"Modelli alternativi tentati in ordine se il modello primario non è disponibile.\",\"fieldMappingFallback\":\"Valore usato se il campo sorgente è vuoto o assente.\",\"fieldMappingSource\":\"Supporta percorsi annidati (es. metadata.urgency).\",\"fieldMappingTransformExtractDomainCompany\":\"Estrae il nome azienda dal dominio email (es. mario{'@'}acme.it → Acme). Ignora i provider gratuiti (gmail, outlook, ecc.).\",\"fieldMappingTransformJoinArray\":\"Unisce i valori di un array separandoli con virgola.\",\"fieldMappingTransformMapValues\":\"Sostituisce il valore usando la tabella di mappatura.\",\"fieldMappingTransformNone\":\"Copia il valore così com'è.\",\"fieldMappingTransformSplitFirstLast\":\"Divide il testo sugli spazi.\",\"fileUploadDisabledHint\":\"Il caricamento file non è abilitato per questo agente. Puoi abilitarlo nelle impostazioni dell'agente.\",\"fileUploadEnabled\":\"Permetti agli utenti di allegare file ai messaggi.\",\"freshnessBoost\":\"Applica un boost basandosi su quanto recentemente il documento è stato aggiornato.\",\"freshnessScale\":\"Scala temporale spinta (Giorni)\",\"freshnessScaleExplanationDays\":\"Un documento modificato oggi ottiene un bonus di +{weight}. Il bonus si dimezza a +{halfWeight} dopo {half} giorni e si azzera praticamente (+{zeroWeight}) dopo {zero} giorni.\",\"freshnessScaleExplanationMonths\":\"Un documento modificato oggi ottiene un bonus di +{weight}. Il bonus si dimezza a +{halfWeight} dopo {half} giorni e si azzera praticamente (+{zeroWeight}) dopo {zero} giorni (circa {months} mesi).\",\"freshnessScaleTooltip\":\"Il tempo di dimezzamento (half-life) del decadimento esponenziale. Un documento vecchio esattamente quanto questo valore riceverà il 50% del boost massimo. Più è basso, più i documenti vecchi perderanno rapidamente il boost.\",\"freshnessWeight\":\"Moltiplicatore del peso del boost di freschezza nella formula.\",\"freshnessWeightTooltip\":\"Bonus massimo aggiunto allo score per i documenti appena modificati. Un peso di 0.1 significa che un documento freschissimo otterrà un vantaggio di +0.10 sullo score. Questo vantaggio decadrà esponenzialmente col tempo fino a azzerarsi.\",\"gatewayCatalog\":\"I modelli messi a disposizione dalla piattaforma, con il prezzo per milione di token, la dimensione del contesto e le garanzie sulla riservatezza dei dati. Spegni quelli che la tua organizzazione non usa: escono dalla scelta, e un agente che ne usa ancora uno risponde con il modello predefinito.\",\"gatewayOffDisconnected\":\"Se il suo endpoint non è acceso e con dei modelli, l’organizzazione è scollegata: nessun agente risponde.\",\"gatewayOffNoByok\":\"Anche i modelli propri (BYOK) sono spenti: l’amministratore non può né configurare un endpoint né accenderlo o spegnerlo, e nemmeno spostare l’embedding.\",\"gatewayOffStops\":\"Spento, niente di questa organizzazione passa più dal gateway, entro trenta secondi: i modelli del gateway smettono di rispondere, e con loro le utility interne che li usano; la ricerca web si ferma. La base di conoscenza, le risposte corrette, le memorie e l’elaborazione dei documenti continuano solo se l’embedding è sull’endpoint dell’organizzazione: se è sulla piattaforma, si fermano.\",\"gatewayOffTodo\":\"L’amministratore deve spostare sull’endpoint dell’organizzazione entrambi i modelli predefiniti, altrimenti non si creano agenti nuovi, e l’embedding (Modelli, sezione Embedding), altrimenti la base di conoscenza e le memorie restano ferme. L’inferenza non scala più il credito; i minuti di voce e l’OCR dei documenti sì.\",\"guaranteeAll\":\"{name}: garantita su tutti i provider.\",\"guaranteeNone\":\"{name}: non garantita.\",\"guaranteeSome\":\"{name}: garantita solo su alcuni provider, il gateway instrada di conseguenza.\",\"includeThoughts\":\"Invia i pensieri del modello al client insieme alla risposta.\",\"inputSchema\":\"JSON Schema (draft-07) dei parametri di input che l'LLM può fornire.\",\"integrationOAuthAdminConsent\":\"Potrebbe servire un amministratore Microsoft 365 della vostra organizzazione.\",\"integrationAppCredentialScope\":\"Con Sites.Read.All l'app può leggere ogni sito del tenant. Il connettore legge solo le cartelle che collegate.\",\"integrationAppCredentialSteps\":\"In Microsoft Entra ID: Registrazioni app, Nuova registrazione. Poi Autorizzazioni API, Microsoft Graph, Autorizzazioni applicazione, Sites.Read.All, e Concedi consenso amministratore. Poi Certificati e segreti, Nuovo segreto client (annotate la scadenza). Copiate qui l'ID directory (tenant), l'ID applicazione (client) e il valore del segreto.\",\"interactiveLogin\":\"Permette agli utenti anonimi di accedere dalla chat. L'external token resta sempre attivo.\",\"issuer\":\"L'URL dell'issuer del token JWT (iss).\",\"jwksUrl\":\"L'URL dell'endpoint JWKS per la verifica della firma JWT.\",\"loadDelay\":\"Attesa prima di caricare il widget, per loader AMD lenti.\",\"loaderStrategy\":{\"dynamic-import\":\"Usa import() all'interno di un <script> classico. Fallback per pagine dove gli script module sono bloccati o intercettati da loader legacy.\",\"inline-module\":\"Inietta un <script type=\\\"module\\\"> inline con un import statico. Bypassa RequireJS e altri loader AMD. Consigliata per la maggior parte dei siti.\",\"script-src\":\"Carica il bundle tramite <script type=\\\"module\\\" src=\\\"...\\\">. Usala su siti con Content Security Policy (CSP) restrittiva che blocca gli script inline.\"},\"mcpServerHealthCheckPath\":\"L'endpoint utilizzato per verificare lo stato del Server MCP (es: /api/health).\",\"mcpStatelessServer\":\"Forza il client a connettersi in modalità stateless.\",\"mcpHeadersOriginChanged\":\"L'URL punta a un altro host: riscrivi i valori degli header, quelli salvati restano legati all'host precedente.\",\"mmr\":\"Bilancia la rilevanza semantica e la diversità dei documenti nei risultati di ricerca per evitare contenuti ridondanti.\",\"mmrCandidatesLimit\":\"Numero massimo di chunk candidati pre-selezionati prima di applicare l'MMR.\",\"mmrCandidatesLimitTooltip\":\"Quanti risultati pre-selezionare dal database prima di filtrare e diversificare. Esempio: se impostato a 100, il sistema cercherà i 100 chunk più pertinenti e poi estrarrà tra questi quelli più diversi tra loro fino a raggiungere il limite finale per la chat.\",\"mmrDiversity\":\"Tradeoff tra rilevanza (0.0) e diversità (1.0).\",\"mmrDiversityTooltip\":\"Determina quanto spazio dare a informazioni diverse. Un valore vicino a 0 predilige i risultati più pertinenti anche se simili tra loro. Un valore vicino a 1 forza l'inserimento di risultati con dettagli e temi differenti, riducendo la ripetitività.\",\"modelContextWindow\":\"Finestra di contesto: {count}k token.\",\"modelDefaultNoneAvailable\":\"Nessun modello disponibile: attiva almeno un modello del tuo endpoint qui sotto.\",\"modelDefaultOutsideCatalog\":\"Questo modello non è tra quelli disponibili per la tua organizzazione: scegline un altro. Nel frattempo i nuovi agenti partono con il modello standard della piattaforma.\",\"modelDefaults\":\"Valgono per tutta l'organizzazione. Ogni agente può comunque usare un modello diverso, scelto nelle sue impostazioni.\",\"modelDisabledForOrganization\":\"Spento per questa organizzazione: gli agenti che lo usano ancora rispondono con il modello predefinito, e non si può scegliere per uno nuovo.\",\"modelEndpointBaseUrl\":\"L'indirizzo base dell'API compatibile OpenAI.\",\"modelEndpointHttp\":\"Con http la chiave viaggia senza cifratura: usalo solo se l'endpoint è raggiungibile esclusivamente dalla tua rete interna.\",\"modelEndpointHttpTitle\":\"Connessione non cifrata (http)\",\"modelEndpointKey\":\"Viene salvata cifrata e non viene mai mostrata.\",\"modelEndpointKeyStored\":\"Già salvata. Lascia il campo vuoto per non cambiarla.\",\"modelEndpointName\":\"Il nome con cui lo riconoscerai nella scelta dei modelli.\",\"modelEndpointOffWithEmbedding\":\"Endpoint spento: i suoi modelli non sono disponibili, gli agenti che li usano smettono di rispondere, e con lui si fermano la base di conoscenza, le memorie e i documenti, perché calcola i loro vettori. Riaccendilo per farli ripartire.\",\"modelEndpointOnWithoutGateway\":\"Endpoint acceso: i modelli che attivi sono gli unici che gli agenti possono usare, perché questa organizzazione non usa il gateway della piattaforma, e possono essere i predefiniti.\",\"modelNotOnEndpoint\":\"Non disponibile per questa organizzazione: il suo endpoint non ha più questo modello, quindi un agente che lo usa non risponde finché non passa a un altro modello.\",\"modelSourceEndpoint\":\"Gira su {name}, l’endpoint della tua organizzazione: lo fattura il tuo fornitore, e i costi che vedi qui sono stimati dal listino.\",\"modelSourceOff\":\"Non disponibile per questa organizzazione: la sorgente su cui gira è spenta, quindi un agente che lo usa non risponde finché non passa a un altro modello o la sorgente non viene riaccesa.\",\"modelSourcePlatform\":\"Gira sul gateway AI della piattaforma e si paga con il credito della tua organizzazione.\",\"ownEndpoint\":\"Usa i tuoi modelli accanto a quelli della piattaforma: collega un endpoint compatibile con le API OpenAI e la tua chiave. Gli agenti che usano i suoi modelli non consumano il credito.\",\"modelEndpointOn\":\"Endpoint acceso: i modelli che attivi sono a disposizione degli agenti accanto a quelli della piattaforma, e possono essere i predefiniti.\",\"modelEndpointOff\":\"Endpoint spento: i suoi modelli non sono disponibili, e gli agenti che li usano smettono di rispondere. Attiva qui sotto i modelli che ti servono, poi accendilo.\",\"addModelsRule\":\"Attiva i modelli che i tuoi agenti potranno usare. Il prezzo viene preso dal listino della piattaforma; se un modello non è in listino, ti chiederemo di indicarlo.\",\"modelPriceAsk\":\"Questo modello non è nel listino della piattaforma. Scegli un modello del catalogo con un costo simile, oppure inserisci i prezzi per milione di token.\",\"modelPriceUnknown\":\"Non è nel listino della piattaforma: indica un prezzo.\",\"modelGuaranteedOnSome\":\"Le garanzie che hai acceso valgono solo su alcuni provider di questo modello: il gateway instrada di conseguenza.\",\"modelIdByHand\":\"Il nome tecnico con cui l'endpoint identifica il modello.\",\"modelNotCompatible\":\"Non compatibile con i flag di riservatezza di questo agente.\",\"modelPriceFromListing\":\"Prezzo preso da {id} nel listino della piattaforma.\",\"modelPriceListing\":\"Listino della piattaforma, voce {id}, aggiornato il {date}.\",\"modelPriceManual\":\"Prezzo inserito a mano il {date}.\",\"modelPriceReference\":\"Stesso prezzo di {id}, aggiornato il {date}.\",\"modelReference\":\"Un modello del catalogo a cui questo assomiglia.\",\"modelRetired\":\"Non più disponibile sulla piattaforma: sposta su un altro modello gli agenti che lo usano.\",\"moveDocument\":\"Scegli la cartella di destinazione per «{name}».\",\"moveDocuments\":\"Scegli la cartella di destinazione per {n} documento. | Scegli la cartella di destinazione per {n} documenti.\",\"multipleChoiceAllowCustomAnswer\":\"Mostra un campo di testo libero sotto le opzioni per consentire all'utente di inserire una risposta personalizzata.\",\"multipleChoiceMaxOptions\":\"Numero massimo di opzioni che l'AI può generare (min. 2, max. 10).\",\"nameClaim\":\"Claim con il nome dell'utente (default: name).\",\"oauthCallbackUrl\":\"Configura questa URL come Callback URL (Redirect URI) nel provider OAuth.\",\"outputSchema\":\"JSON Schema (draft-07) della risposta attesa. Solo documentativo.\",\"passphrase\":\"Inserisci {passphrase} per confermare l'operazione\",\"platformSupported\":\"Resa nativa su WhatsApp e Teams\",\"privacyPolicyNotice\":\"Compare in fondo al modulo di contatto. Supporta il Markdown.\",\"providerOrganizationId\":\"Per Microsoft si riferisce all'identificativo del tenant (tenant ID). Per gli altri inserire il dominio dell'e-mail (es. company.com).\",\"providerTimeoutMs\":\"Prima del provider successivo: da 1000 a 789000, solo BYOK.\",\"reasoningDefault\":\"Valore predefinito della piattaforma, si applica finché non scegli un valore diverso.\",\"reasoningNotSupported\":\"Il reasoning non è supportato per il provider selezionato.\",\"reasoningVisibility\":\"Un agente reasoning è visibile solo all'organizzazione.\",\"sessionExpiresIn\":\"Secondi, almeno 60. Vuoto: 8 ore.\",\"showExtendedSteps\":\"Visualizza la timeline con il ragionamento e gli strumenti nella chat.\",\"smoothStream\":\"Uniforma lo streaming del testo creando un'esperienza di lettura più naturale.\",\"subAgentName\":\"Sono consentiti solo lettere, numeri, underscore (_) e trattini (-).\",\"teamsAccentColor\":\"Per impostazione predefinita usa il colore del tema dell'agente.\",\"teamsAppVersion\":\"Aumentala e reinstalla per applicare il manifest.\",\"tool\":{\"fetchTeamsChannelHistory\":\"Sui canali Teams, permette all'agente di leggere su richiesta la conversazione più ampia del canale. Richiede la reinstallazione dell'app Teams.\",\"geocode\":\"Converte nomi di luoghi in coordinate geografiche e viceversa.\",\"getWeather\":\"Recupera i dati meteo attuali e le previsioni per una località specifica.\",\"querySpreadsheet\":\"Risponde alle domande sui file Excel e CSV della knowledge base con ricerche esatte, conteggi e totali, invece di cercarne il testo. Se lo spegni, l'agente non legge affatto questi file. I fogli allegati in chat si interrogano con lo strumento Fogli di calcolo.\",\"readDocumentFile\":\"Permette all'agente di leggere il file originale dei documenti PDF/DOCX dalla knowledge base. Utile per tabelle, grafici e contenuti visivi.\",\"requestGeolocation\":\"Richiede la posizione GPS dell'utente tramite il browser.\",\"retrieveRevisedAnswers\":\"Recupera le risposte verificate dagli amministratori e le usa come fonte primaria.\",\"runWorker\":\"Permette all'agente di avviare worker generici che ereditano i suoi tool per gestire sotto-attività indipendenti in parallelo.\",\"scheduleWakeup\":\"Quando l'utente lo chiede, l'agente ricontrolla qualcosa da solo a intervalli (da un minuto a un'ora) e scrive nella stessa chat quando trova una novità.\",\"searchInKnowledgeBase\":\"Cerca nei documenti caricati nella knowledge base per fornire risposte contestuali.\",\"searchInUserFiles\":\"Cerca nei file che l'utente ha caricato personalmente in chat (i suoi file privati), separati dalla knowledge base dell'agente.\",\"showArtifact\":\"Mostra contenuti strutturati come testi formattati, codice o documenti.\",\"showCalendarEvent\":\"Mostra un evento calendario con opzioni per Google Calendar, Outlook e download .ics.\",\"showComparison\":\"Confronta da 2 a 4 elementi affiancati per facilitare la scelta.\",\"showContactForm\":\"Mostra un modulo di contatto per raccogliere i dati dell'utente.\",\"showDiagram\":\"Mostra un grafico o un diagramma (flusso, sequenza, classe, ER, stato).\",\"showEmail\":\"Compone un'email pronta da inviare dal client di posta dell'utente.\",\"showForm\":\"Permette di raccogliere input strutturati (testo, numeri, date, scelte) tramite form multi-step.\",\"showImageGallery\":\"Raccoglie le immagini in una galleria navigabile con zoom e lightbox.\",\"showLocation\":\"Mostra una mappa interattiva con segnaposto e indicazioni stradali.\",\"showMessage\":\"Compone un messaggio da inviare tramite WhatsApp, Telegram o SMS.\",\"showMultipleChoice\":\"Propone opzioni selezionabili per guidare il flusso della conversazione.\",\"showProductList\":\"Mostra un elenco di prodotti con immagini, descrizioni e link d'acquisto.\",\"showQrCode\":\"Genera un codice QR a partire da testo, URL o dati strutturati.\",\"showSources\":\"Mostra i riferimenti ai documenti della knowledge base utilizzati nella risposta.\",\"showSuggestedReply\":\"Suggerisce risposte cliccabili per proseguire la conversazione. Per averle dopo ogni risposta, chiedilo nelle istruzioni dell'agente.\",\"showVideo\":\"Riproduce video inline: file diretti (MP4/WebM) o link YouTube/Vimeo.\",\"showWeather\":\"Mostra un widget con le previsioni meteo direttamente nella chat.\",\"showWebPages\":\"Suggerisce link a pagine web pertinenti alla domanda dell'utente.\",\"spreadsheet\":\"Legge, cerca e modifica i file Excel (.xlsx) che l'utente allega nella chat web o nel widget, e restituisce ogni modifica come nuova versione da scaricare. Richiede il caricamento dei file con il tipo Fogli di calcolo.\",\"useAllUserFiles\":\"Cerca in tutti i file dell'utente, anche quelli caricati su altri agenti, non solo in quelli di questo agente.\",\"useAllUserKb\":\"Legge le memorie che l'utente ha condiviso con tutti gli agenti di questa organizzazione, non solo con questo. La scrittura resta legata a questo agente.\",\"userMemory\":\"Permette all'agente di ricordare e richiamare informazioni che l'utente condivide tra le conversazioni (nome, preferenze, ecc.).\"},\"toolRequiresApproval\":\"Prima di eseguire, l'agente attende l'approvazione in chat.\",\"apiToolSecretParameters\":\"Inviati a ogni chiamata, nella query string o nel body JSON, e mai mostrati al modello. Dopo il salvataggio il valore non si vede più: lascialo vuoto per tenerlo.\",\"apiToolSecretParametersNew\":\"Inviati a ogni chiamata, nella query string o nel body JSON, e mai mostrati al modello. Scrivi ogni valore: dopo il salvataggio non si vede più.\",\"apiToolSecretStored\":\"Salvato: lascialo vuoto per tenerlo\",\"apiToolCredentialInSchema\":\"Questi parametri sembrano credenziali, e li compila il modello: {names}. Spostali fra i parametri segreti e toglili dallo schema di input.\",\"apiToolCredentialBadge\":\"Un parametro che sembra una credenziale viene compilato dal modello\",\"apiToolSecretsOriginChanged\":\"L'URL punta a un altro host: riscrivi i valori degli header e dei parametri segreti, quelli salvati restano legati all'host precedente.\",\"apiToolSecretBodyMethod\":\"Una richiesta {method} non ha body\",\"toolWorkingSetMode\":{\"active\":\"Prima di ogni risposta un modello di valutazione (TypeSafe Jev) sceglie i server MCP, gli API Tools e i sotto-agenti che servono al messaggio, e l’agente vede solo quelli. Se gliene serve un altro, lo riattiva da solo. Ogni valutazione è addebitata all’organizzazione.\",\"off\":\"L’agente vede tutti i tool a ogni risposta.\",\"shadow\":\"Il modello di valutazione sceglie i tool che servono a ogni messaggio, ma l’agente li vede comunque tutti: la scelta viene solo registrata nel dettaglio del messaggio, per confrontarla con i tool usati davvero prima di attivarla. Ogni valutazione è addebitata all’organizzazione.\"},\"useColorsForAgentHeader\":\"Colora l'intestazione dell'agente in base al colore principale.\",\"userFeedbackComment\":\"L'utente ha lasciato un commento su questa risposta\",\"userFeedbackNegative\":\"L'utente ha valutato negativamente questa risposta\",\"userFeedbackPositive\":\"L'utente ha valutato positivamente questa risposta\",\"userFeedbackReaction\":\"L'utente ha reagito a questa risposta\",\"utilityModel\":\"Usato dietro le quinte per compiti come riformulare le domande degli utenti e aggiornare le memorie.\",\"voiceApprovalRefused\":\"Durante una chiamata queste azioni non partono: l'approvazione si dà a schermo e al telefono non c'è nessuno a cui chiederla, quindi l'agente le rifiuta e lo dice. Riguarda: {tools}.\",\"voiceCascadeTimeoutSeconds\":\"Quanto il fornitore aspetta noi prima di annullare il turno. Deve stare sopra al turno più lento dell'agente: knowledge base, tool e modelli lenti lo allungano.\",\"voiceEnabled\":\"Permette di parlare con questo agente. La risposta resta sua, con la sua knowledge base e i suoi strumenti.\",\"voiceFillerAfterSeconds\":\"Dice che sta lavorando quando la risposta tarda. Vuoto: quattro secondi.\",\"voiceFillerMessage\":\"Vuoto: una frase predefinita nella lingua della voce.\",\"voiceFirstMessage\":\"Detta appena si apre la chiamata. Copre anche il primo turno, il più lento.\",\"voiceId\":\"Le voci clonate non sono in elenco: il fornitore non le ammette qui.\",\"voiceIgnoreBackgroundVoices\":\"Ascolta solo chi parla. Da tenere attivo dove il microfono sente la stanza.\",\"voiceLanguage\":\"Usata per riconoscere il parlato e per parlare.\",\"voiceMaxSessionSeconds\":\"Una chiamata si paga a minuto e si chiude da sola a questo limite.\",\"voiceRemaining\":\"Tempo che resta in questa chiamata\",\"voiceSlowAgentOnCall\":\"Una knowledge base grande o server MCP collegati possono far metterci diversi secondi all'agente, e in chiamata quei secondi sono silenzio: le due impostazioni qui sotto sono ciò che tiene compagnia a chi chiama mentre lavora. Se le chiamate sembrano lente, la risposta si accorcia anche con meno passi, un limite di retrieval più basso o un modello più rapido.\",\"voiceTurnEagerness\":\"Pronto risponde prima, paziente ti aspetta.\",\"voiceTurnTimeoutSeconds\":\"Quanto l’agente aspetta il chiamante zitto prima di riprendere la parola. Niente a che vedere con la sua velocità di risposta.\",\"webSearchEnabled\":\"Permetti all'agente di cercare informazioni sul web durante le conversazioni.\",\"webSearchNative\":\"Usa le funzionalità di ricerca web integrate di {provider}.\",\"webSearchNativeFallback\":\"Questo modello non ha una ricerca web integrata: le ricerche passano da Perplexity.\",\"webhookUrl\":\"Incolla questo URL nella configurazione del webhook / endpoint di messaggistica della piattaforma.\",\"welcomePopup\":\"Mostra un popup di benvenuto con il messaggio iniziale prima che la chat venga aperta.\",\"whatsappVerifyToken\":\"Incolla questo token nella configurazione webhook di Meta.\",\"zeroDataRetention\":\"Instrada le richieste solo verso provider con accordi ZDR. Restringe il pool di provider disponibili.\",\"webSourceUnselected\":\"Le pagine non selezionate arriveranno con i prossimi controlli della sorgente.\",\"webSourceInterval\":\"Le pagine nuove seguono la frequenza qui sopra.\",\"webPagesRefresh\":\"Alla scadenza si rigenera solo ciò che è cambiato.\",\"documentFolderWebSource\":\"Cartella di un sito web: le pagine nuove arrivano da sole e restano modificabili.\",\"invitationLanguage\":\"La lingua dell'email che riceve la persona invitata.\"}"),
|
|
1187
|
+
hint: /* @__PURE__ */ JSON.parse("{\"agentModel\":\"Pre-selezionato alla creazione di un nuovo agente.\",\"agentOnOwnEndpoint\":\"Questo agente gira sull’endpoint della tua organizzazione.\",\"allowedDomains\":\"Cerca solo all'interno di questi domini.\",\"approvalChannels\":\"Un tool può chiedere conferma all'utente prima di eseguire: espandi il tool per attivarla. Via API o in esecuzioni schedulate la chiamata viene rifiutata.\",\"audience\":\"L'aud atteso nel JWT. Vuoto: non verificato.\",\"blockedDomains\":\"Escludi questi domini dai risultati.\",\"channel\":{\"app\":\"L'agente è accessibile tramite la pagina pubblica dedicata.\",\"frontoffice\":\"L'agente è visibile nel pannello Frontoffice.\",\"widget\":\"L'agente è incorporabile nei siti web tramite embed script.\"},\"channelAppDisabled\":\"Il canale App è disabilitato: il link diretto e l'iframe non funzioneranno.\",\"channelWidgetDisabled\":\"Il canale Widget è disabilitato: il codice embed e il loader non funzioneranno.\",\"costSourceEndpoint\":\"I modelli sull’endpoint della tua organizzazione: li fattura il tuo fornitore, qui il costo è una stima a prezzi di listino.\",\"customCss\":\"CSS iniettato nello shadow DOM del widget. Permette di personalizzare l'interfaccia della chat dall'esterno.\",\"disallowPromptTraining\":\"Instrada le richieste solo verso provider che non usano i dati per addestrare i modelli AI.\",\"dismissableNotice\":\"Verrà nascosto dopo il primo messaggio.\",\"documentFolderManaged\":\"Cartella sincronizzata da {provider}: il contenuto si modifica alla sorgente.\",\"documentRefresh\":\"Rilegge la pagina alla scadenza e rigenera solo ciò che è cambiato.\",\"documentRefreshTriggerOff\":\"Questa pagina si aggiorna da sola, e salvando un testo vostro si spegne.\",\"documentSelectionHasManaged\":\"La selezione contiene documenti che arrivano da una sorgente collegata e non si possono modificare a mano.\",\"documentSourceInterval\":\"Ogni quanto la cartella viene riletta.\",\"documentSourceIntervalExplained\":\"Ogni quanto la cartella viene riletta. I file invariati non vengono riconvertiti.\",\"documentSourceName\":\"Il nome con cui la cartella compare qui. Quello remoto non cambia.\",\"emailClaim\":\"Il claim JWT che contiene l'email dell'utente (default: email).\",\"embedCode\":\"Copia e incolla questo codice per incorporare l'agente nel tuo sito web.\",\"embedding\":\"I vettori della base di conoscenza, dei file degli utenti e delle memorie. Si calcolano sul gateway AI della piattaforma, oppure sul tuo endpoint con uno dei due modelli ammessi.\",\"embeddingActivation\":\"Prima di salvare, l’endpoint calcola il vettore di una frase di prova, che viene confrontato con quello del modello: un modello diverso viene rifiutato. Passare a un altro modello ricalcola la base di conoscenza e le memorie, e finché non ha finito le ricerche trovano solo ciò che è già nel modello nuovo.\",\"embeddingEndpointModel\":\"L’id con cui il tuo endpoint serve il modello\",\"embeddingEndpointOff\":\"Accendi l’endpoint per calcolarci i vettori\",\"embeddingFamily\":\"Fra quelli che il tuo endpoint serve\",\"embeddingFamilyUnknown\":\"L’endpoint non lo dichiara: lo verifica il salvataggio\",\"embeddingModelsServed\":\"Il tuo endpoint serve anche questi. Non possono rispondere a un agente: quello con cui si calcolano i vettori si sceglie nella sezione Embedding.\",\"embeddingNotConfigured\":\"La base di conoscenza, le risposte corrette, le memorie e l’elaborazione dei documenti sono ferme, perché nessuno calcola i loro vettori. Attiva un modello di embedding sul tuo endpoint per farle ripartire.\",\"embeddingReindexing\":\"Finché la reindicizzazione non finisce, le ricerche nella base di conoscenza e nelle memorie trovano solo ciò che è già nel modello nuovo: risultati parziali, mai sbagliati. Non serve fare niente, e se si interrompe riparte da dove era arrivata.\",\"embeddingStopped\":\"L’endpoint che calcola i vettori è spento: la base di conoscenza, le risposte corrette, le memorie e l’elaborazione dei documenti sono ferme finché non lo riaccendi.\",\"embeddingWithoutEndpoint\":\"I vettori della base di conoscenza, dei file degli utenti e delle memorie si calcolano sul gateway AI della piattaforma. Collega il tuo endpoint per calcolarli lì.\",\"embedIframe\":\"Incorpora l'interfaccia della chat direttamente con un iframe.\",\"embedPreview\":\"L'agente sarà accessibile al seguente URL.\",\"embeddingWithoutEndpointOrGateway\":\"I vettori della base di conoscenza, dei file degli utenti e delle memorie non si calcolano: questa organizzazione non usa il gateway AI della piattaforma. Collega il tuo endpoint per calcolarli lì.\",\"embeddingWithoutGateway\":\"I vettori della base di conoscenza, dei file degli utenti e delle memorie. Questa organizzazione non usa il gateway AI della piattaforma, quindi si calcolano solo sul tuo endpoint, con uno dei due modelli ammessi.\",\"externalContextSchema\":\"Definisci quali dati contestuali il sito ospitante può inviare all'agente.\",\"externalContextSchemaToggle\":\"Abilita la ricezione di dati contestuali dal sito ospitante.\",\"feature\":{\"apiTools\":\"Gli agenti chiamano come tool le API dell’organizzazione.\",\"byok\":\"L’organizzazione collega un suo endpoint compatibile OpenAI e ne usa i modelli.\",\"endpoints\":\"Gli agenti rispondono via REST ad altri sistemi.\",\"fileUpload\":\"Gli utenti allegano file ai messaggi in chat.\",\"gateway\":\"I modelli del gateway AI, e con loro l’embedding della piattaforma, le utility e l’AI dei documenti che li usano.\",\"hubspot\":\"I lead raccolti dagli agenti vanno nel CRM HubSpot dell’organizzazione.\",\"leads\":\"Gli agenti raccolgono i contatti con un modulo in chat, e la pagina Contatti li elenca.\",\"mcpServers\":\"Gli agenti usano i tool di server MCP esterni.\",\"openaiApi\":\"Gli agenti rispondono come modelli a n8n, LangChain e ai client compatibili con OpenAI.\",\"proactiveAutomations\":\"Gli agenti ricontrollano da soli quello che l’utente chiede di tenere d’occhio. Spente, i controlli in corso si fermano al giro successivo.\",\"salesforce\":\"I lead raccolti dagli agenti vanno nel CRM Salesforce dell’organizzazione.\",\"sharepoint\":\"Gli agenti leggono i file di cartelle SharePoint tenute sincronizzate.\",\"subAgents\":\"Un agente ne chiama un altro come tool.\",\"teams\":\"Gli agenti rispondono nelle chat di Teams.\",\"voice\":\"Gli agenti parlano con l’utente in tempo reale.\",\"whatsapp\":\"Gli agenti rispondono su WhatsApp Business.\"},\"fallbackModels\":\"Modelli alternativi tentati in ordine se il modello primario non è disponibile.\",\"fieldMappingFallback\":\"Valore usato se il campo sorgente è vuoto o assente.\",\"fieldMappingSource\":\"Supporta percorsi annidati (es. metadata.urgency).\",\"fieldMappingTransformExtractDomainCompany\":\"Estrae il nome azienda dal dominio email (es. mario{'@'}acme.it → Acme). Ignora i provider gratuiti (gmail, outlook, ecc.).\",\"fieldMappingTransformJoinArray\":\"Unisce i valori di un array separandoli con virgola.\",\"fieldMappingTransformMapValues\":\"Sostituisce il valore usando la tabella di mappatura.\",\"fieldMappingTransformNone\":\"Copia il valore così com'è.\",\"fieldMappingTransformSplitFirstLast\":\"Divide il testo sugli spazi.\",\"fileUploadDisabledHint\":\"Il caricamento file non è abilitato per questo agente. Puoi abilitarlo nelle impostazioni dell'agente.\",\"fileUploadEnabled\":\"Permetti agli utenti di allegare file ai messaggi.\",\"freshnessBoost\":\"Applica un boost basandosi su quanto recentemente il documento è stato aggiornato.\",\"freshnessScale\":\"Scala temporale spinta (Giorni)\",\"freshnessScaleExplanationDays\":\"Un documento modificato oggi ottiene un bonus di +{weight}. Il bonus si dimezza a +{halfWeight} dopo {half} giorni e si azzera praticamente (+{zeroWeight}) dopo {zero} giorni.\",\"freshnessScaleExplanationMonths\":\"Un documento modificato oggi ottiene un bonus di +{weight}. Il bonus si dimezza a +{halfWeight} dopo {half} giorni e si azzera praticamente (+{zeroWeight}) dopo {zero} giorni (circa {months} mesi).\",\"freshnessScaleTooltip\":\"Il tempo di dimezzamento (half-life) del decadimento esponenziale. Un documento vecchio esattamente quanto questo valore riceverà il 50% del boost massimo. Più è basso, più i documenti vecchi perderanno rapidamente il boost.\",\"freshnessWeight\":\"Moltiplicatore del peso del boost di freschezza nella formula.\",\"freshnessWeightTooltip\":\"Bonus massimo aggiunto allo score per i documenti appena modificati. Un peso di 0.1 significa che un documento freschissimo otterrà un vantaggio di +0.10 sullo score. Questo vantaggio decadrà esponenzialmente col tempo fino a azzerarsi.\",\"gatewayCatalog\":\"I modelli messi a disposizione dalla piattaforma, con il prezzo per milione di token, la dimensione del contesto e le garanzie sulla riservatezza dei dati. Spegni quelli che la tua organizzazione non usa: escono dalla scelta, e un agente che ne usa ancora uno risponde con il modello predefinito.\",\"gatewayOffDisconnected\":\"Se il suo endpoint non è acceso e con dei modelli, l’organizzazione è scollegata: nessun agente risponde.\",\"gatewayOffNoByok\":\"Anche i modelli propri (BYOK) sono spenti: l’amministratore non può né configurare un endpoint né accenderlo o spegnerlo, e nemmeno spostare l’embedding.\",\"gatewayOffStops\":\"Spento, niente di questa organizzazione passa più dal gateway, entro trenta secondi: i modelli del gateway smettono di rispondere, e con loro le utility interne che li usano; la ricerca web si ferma. La base di conoscenza, le risposte corrette, le memorie e l’elaborazione dei documenti continuano solo se l’embedding è sull’endpoint dell’organizzazione: se è sulla piattaforma, si fermano.\",\"gatewayOffTodo\":\"L’amministratore deve spostare sull’endpoint dell’organizzazione entrambi i modelli predefiniti, altrimenti non si creano agenti nuovi, e l’embedding (Modelli, sezione Embedding), altrimenti la base di conoscenza e le memorie restano ferme. L’inferenza non scala più il credito; i minuti di voce e l’OCR dei documenti sì.\",\"guaranteeAll\":\"{name}: garantita su tutti i provider.\",\"guaranteeNone\":\"{name}: non garantita.\",\"guaranteeSome\":\"{name}: garantita solo su alcuni provider, il gateway instrada di conseguenza.\",\"includeThoughts\":\"Invia i pensieri del modello al client insieme alla risposta.\",\"inputSchema\":\"JSON Schema (draft-07) dei parametri di input che l'LLM può fornire.\",\"integrationOAuthAdminConsent\":\"Potrebbe servire un amministratore Microsoft 365 della vostra organizzazione.\",\"integrationAppCredentialScope\":\"Con Sites.Read.All l'app può leggere ogni sito del tenant. Il connettore legge solo le cartelle che collegate.\",\"integrationAppCredentialSteps\":\"In Microsoft Entra ID: Registrazioni app, Nuova registrazione. Poi Autorizzazioni API, Microsoft Graph, Autorizzazioni applicazione, Sites.Read.All, e Concedi consenso amministratore. Poi Certificati e segreti, Nuovo segreto client (annotate la scadenza). Copiate qui l'ID directory (tenant), l'ID applicazione (client) e il valore del segreto.\",\"interactiveLogin\":\"Permette agli utenti anonimi di accedere dalla chat. L'external token resta sempre attivo.\",\"issuer\":\"L'URL dell'issuer del token JWT (iss).\",\"jwksUrl\":\"L'URL dell'endpoint JWKS per la verifica della firma JWT.\",\"loadDelay\":\"Attesa prima di caricare il widget, per loader AMD lenti.\",\"loaderStrategy\":{\"dynamic-import\":\"Usa import() all'interno di un <script> classico. Fallback per pagine dove gli script module sono bloccati o intercettati da loader legacy.\",\"inline-module\":\"Inietta un <script type=\\\"module\\\"> inline con un import statico. Bypassa RequireJS e altri loader AMD. Consigliata per la maggior parte dei siti.\",\"script-src\":\"Carica il bundle tramite <script type=\\\"module\\\" src=\\\"...\\\">. Usala su siti con Content Security Policy (CSP) restrittiva che blocca gli script inline.\"},\"mcpServerHealthCheckPath\":\"L'endpoint utilizzato per verificare lo stato del Server MCP (es: /api/health).\",\"mcpStatelessServer\":\"Forza il client a connettersi in modalità stateless.\",\"mcpHeadersOriginChanged\":\"L'URL punta a un altro host: riscrivi i valori degli header, quelli salvati restano legati all'host precedente.\",\"mmr\":\"Bilancia la rilevanza semantica e la diversità dei documenti nei risultati di ricerca per evitare contenuti ridondanti.\",\"mmrCandidatesLimit\":\"Numero massimo di chunk candidati pre-selezionati prima di applicare l'MMR.\",\"mmrCandidatesLimitTooltip\":\"Quanti risultati pre-selezionare dal database prima di filtrare e diversificare. Esempio: se impostato a 100, il sistema cercherà i 100 chunk più pertinenti e poi estrarrà tra questi quelli più diversi tra loro fino a raggiungere il limite finale per la chat.\",\"mmrDiversity\":\"Tradeoff tra rilevanza (0.0) e diversità (1.0).\",\"mmrDiversityTooltip\":\"Determina quanto spazio dare a informazioni diverse. Un valore vicino a 0 predilige i risultati più pertinenti anche se simili tra loro. Un valore vicino a 1 forza l'inserimento di risultati con dettagli e temi differenti, riducendo la ripetitività.\",\"modelContextWindow\":\"Finestra di contesto: {count}k token.\",\"modelDefaultNoneAvailable\":\"Nessun modello disponibile: attiva almeno un modello del tuo endpoint qui sotto.\",\"modelDefaultOutsideCatalog\":\"Questo modello non è tra quelli disponibili per la tua organizzazione: scegline un altro. Nel frattempo i nuovi agenti partono con il modello standard della piattaforma.\",\"modelDefaults\":\"Valgono per tutta l'organizzazione. Ogni agente può comunque usare un modello diverso, scelto nelle sue impostazioni.\",\"modelDisabledForOrganization\":\"Spento per questa organizzazione: gli agenti che lo usano ancora rispondono con il modello predefinito, e non si può scegliere per uno nuovo.\",\"modelEndpointBaseUrl\":\"L'indirizzo base dell'API compatibile OpenAI.\",\"modelEndpointHttp\":\"Con http la chiave viaggia senza cifratura: usalo solo se l'endpoint è raggiungibile esclusivamente dalla tua rete interna.\",\"modelEndpointHttpTitle\":\"Connessione non cifrata (http)\",\"modelEndpointKey\":\"Viene salvata cifrata e non viene mai mostrata.\",\"modelEndpointKeyStored\":\"Già salvata. Lascia il campo vuoto per non cambiarla.\",\"modelEndpointName\":\"Il nome con cui lo riconoscerai nella scelta dei modelli.\",\"modelEndpointOffWithEmbedding\":\"Endpoint spento: i suoi modelli non sono disponibili, gli agenti che li usano smettono di rispondere, e con lui si fermano la base di conoscenza, le memorie e i documenti, perché calcola i loro vettori. Riaccendilo per farli ripartire.\",\"modelEndpointOnWithoutGateway\":\"Endpoint acceso: i modelli che attivi sono gli unici che gli agenti possono usare, perché questa organizzazione non usa il gateway della piattaforma, e possono essere i predefiniti.\",\"modelNotOnEndpoint\":\"Non disponibile per questa organizzazione: il suo endpoint non ha più questo modello, quindi un agente che lo usa non risponde finché non passa a un altro modello.\",\"modelSourceEndpoint\":\"Gira su {name}, l’endpoint della tua organizzazione: lo fattura il tuo fornitore, e i costi che vedi qui sono stimati dal listino.\",\"modelSourceOff\":\"Non disponibile per questa organizzazione: la sorgente su cui gira è spenta, quindi un agente che lo usa non risponde finché non passa a un altro modello o la sorgente non viene riaccesa.\",\"modelSourcePlatform\":\"Gira sul gateway AI della piattaforma e si paga con il credito della tua organizzazione.\",\"ownEndpoint\":\"Usa i tuoi modelli accanto a quelli della piattaforma: collega un endpoint compatibile con le API OpenAI e la tua chiave. Gli agenti che usano i suoi modelli non consumano il credito.\",\"modelEndpointOn\":\"Endpoint acceso: i modelli che attivi sono a disposizione degli agenti accanto a quelli della piattaforma, e possono essere i predefiniti.\",\"modelEndpointOff\":\"Endpoint spento: i suoi modelli non sono disponibili, e gli agenti che li usano smettono di rispondere. Attiva qui sotto i modelli che ti servono, poi accendilo.\",\"addModelsRule\":\"Attiva i modelli che i tuoi agenti potranno usare. Il prezzo viene preso dal listino della piattaforma; se un modello non è in listino, ti chiederemo di indicarlo.\",\"modelPriceAsk\":\"Questo modello non è nel listino della piattaforma. Scegli un modello del catalogo con un costo simile, oppure inserisci i prezzi per milione di token.\",\"modelPriceUnknown\":\"Non è nel listino della piattaforma: indica un prezzo.\",\"modelGuaranteedOnSome\":\"Le garanzie che hai acceso valgono solo su alcuni provider di questo modello: il gateway instrada di conseguenza.\",\"modelIdByHand\":\"Il nome tecnico con cui l'endpoint identifica il modello.\",\"modelNotCompatible\":\"Non compatibile con i flag di riservatezza di questo agente.\",\"modelPriceFromListing\":\"Prezzo preso da {id} nel listino della piattaforma.\",\"modelPriceListing\":\"Listino della piattaforma, voce {id}, aggiornato il {date}.\",\"modelPriceManual\":\"Prezzo inserito a mano il {date}.\",\"modelPriceReference\":\"Stesso prezzo di {id}, aggiornato il {date}.\",\"modelReference\":\"Un modello del catalogo a cui questo assomiglia.\",\"modelRetired\":\"Non più disponibile sulla piattaforma: sposta su un altro modello gli agenti che lo usano.\",\"moveDocument\":\"Scegli la cartella di destinazione per «{name}».\",\"moveDocuments\":\"Scegli la cartella di destinazione per {n} documento. | Scegli la cartella di destinazione per {n} documenti.\",\"multipleChoiceAllowCustomAnswer\":\"Mostra un campo di testo libero sotto le opzioni per consentire all'utente di inserire una risposta personalizzata.\",\"multipleChoiceMaxOptions\":\"Numero massimo di opzioni che l'AI può generare (min. 2, max. 10).\",\"nameClaim\":\"Claim con il nome dell'utente (default: name).\",\"oauthCallbackUrl\":\"Configura questa URL come Callback URL (Redirect URI) nel provider OAuth.\",\"outputSchema\":\"JSON Schema (draft-07) della risposta attesa. Solo documentativo.\",\"passphrase\":\"Inserisci {passphrase} per confermare l'operazione\",\"platformSupported\":\"Resa nativa su WhatsApp e Teams\",\"privacyPolicyNotice\":\"Compare in fondo al modulo di contatto. Supporta il Markdown.\",\"providerOrganizationId\":\"Per Microsoft si riferisce all'identificativo del tenant (tenant ID). Per gli altri inserire il dominio dell'e-mail (es. company.com).\",\"providerTimeoutMs\":\"Prima del provider successivo: da 1000 a 789000, solo BYOK.\",\"reasoningDefault\":\"Valore predefinito della piattaforma, si applica finché non scegli un valore diverso.\",\"reasoningNotSupported\":\"Il reasoning non è supportato per il provider selezionato.\",\"reasoningVisibility\":\"Un agente reasoning è visibile solo all'organizzazione.\",\"sessionExpiresIn\":\"Secondi, almeno 60. Vuoto: 8 ore.\",\"showExtendedSteps\":\"Visualizza la timeline con il ragionamento e gli strumenti nella chat.\",\"smoothStream\":\"Uniforma lo streaming del testo creando un'esperienza di lettura più naturale.\",\"subAgentName\":\"Sono consentiti solo lettere, numeri, underscore (_) e trattini (-).\",\"teamsAccentColor\":\"Per impostazione predefinita usa il colore del tema dell'agente.\",\"teamsAppVersion\":\"Aumentala e reinstalla per applicare il manifest.\",\"tool\":{\"fetchTeamsChannelHistory\":\"Sui canali Teams, permette all'agente di leggere su richiesta la conversazione più ampia del canale. Richiede la reinstallazione dell'app Teams.\",\"geocode\":\"Converte nomi di luoghi in coordinate geografiche e viceversa.\",\"getWeather\":\"Recupera i dati meteo attuali e le previsioni per una località specifica.\",\"querySpreadsheet\":\"Risponde alle domande sui file Excel e CSV della knowledge base con ricerche esatte, conteggi e totali, invece di cercarne il testo. Se lo spegni, l'agente non legge affatto questi file. I fogli allegati in chat si interrogano con lo strumento Fogli di calcolo.\",\"readDocumentFile\":\"Permette all'agente di leggere il file originale dei documenti PDF/DOCX dalla knowledge base. Utile per tabelle, grafici e contenuti visivi.\",\"requestGeolocation\":\"Richiede la posizione GPS dell'utente tramite il browser.\",\"retrieveRevisedAnswers\":\"Recupera le risposte verificate dagli amministratori e le usa come fonte primaria.\",\"runWorker\":\"Permette all'agente di avviare worker generici che ereditano i suoi tool per gestire sotto-attività indipendenti in parallelo.\",\"scheduleWakeup\":\"Quando l'utente lo chiede, l'agente ricontrolla qualcosa da solo a intervalli (da un minuto a un'ora) e scrive nella stessa chat quando trova una novità.\",\"searchInKnowledgeBase\":\"Cerca nei documenti caricati nella knowledge base per fornire risposte contestuali.\",\"searchInUserFiles\":\"Cerca nei file che l'utente ha caricato personalmente in chat (i suoi file privati), separati dalla knowledge base dell'agente.\",\"showArtifact\":\"Mostra contenuti strutturati come testi formattati, codice o documenti.\",\"showCalendarEvent\":\"Mostra un evento calendario con opzioni per Google Calendar, Outlook e download .ics.\",\"showComparison\":\"Confronta da 2 a 4 elementi affiancati per facilitare la scelta.\",\"showContactForm\":\"Mostra un modulo di contatto per raccogliere i dati dell'utente.\",\"showDiagram\":\"Mostra un grafico o un diagramma (flusso, sequenza, classe, ER, stato).\",\"showEmail\":\"Compone un'email pronta da inviare dal client di posta dell'utente.\",\"showForm\":\"Permette di raccogliere input strutturati (testo, numeri, date, scelte) tramite form multi-step.\",\"showImageGallery\":\"Raccoglie le immagini in una galleria navigabile con zoom e lightbox.\",\"showLocation\":\"Mostra una mappa interattiva con segnaposto e indicazioni stradali.\",\"showMessage\":\"Compone un messaggio da inviare tramite WhatsApp, Telegram o SMS.\",\"showMultipleChoice\":\"Propone opzioni selezionabili per guidare il flusso della conversazione.\",\"showProductList\":\"Mostra un elenco di prodotti con immagini, descrizioni e link d'acquisto.\",\"showQrCode\":\"Genera un codice QR a partire da testo, URL o dati strutturati.\",\"showSources\":\"Mostra i riferimenti ai documenti della knowledge base utilizzati nella risposta.\",\"showSuggestedReply\":\"Suggerisce risposte cliccabili per proseguire la conversazione. Per averle dopo ogni risposta, chiedilo nelle istruzioni dell'agente.\",\"showVideo\":\"Riproduce video inline: file diretti (MP4/WebM) o link YouTube/Vimeo.\",\"showWeather\":\"Mostra un widget con le previsioni meteo direttamente nella chat.\",\"showWebPages\":\"Suggerisce link a pagine web pertinenti alla domanda dell'utente.\",\"spreadsheet\":\"Legge, cerca e modifica i file Excel (.xlsx) che l'utente allega nella chat web o nel widget, e restituisce ogni modifica come nuova versione da scaricare. Richiede il caricamento dei file con il tipo Fogli di calcolo.\",\"useAllUserFiles\":\"Cerca in tutti i file dell'utente, anche quelli caricati su altri agenti, non solo in quelli di questo agente.\",\"useAllUserKb\":\"Legge le memorie che l'utente ha condiviso con tutti gli agenti di questa organizzazione, non solo con questo. La scrittura resta legata a questo agente.\",\"userMemory\":\"Permette all'agente di ricordare e richiamare informazioni che l'utente condivide tra le conversazioni (nome, preferenze, ecc.).\"},\"toolRequiresApproval\":\"Prima di eseguire, l'agente attende l'approvazione in chat.\",\"apiToolSecretParameters\":\"Inviati a ogni chiamata, nella query string o nel body JSON, e mai mostrati al modello. Dopo il salvataggio il valore non si vede più: lascialo vuoto per tenerlo.\",\"apiToolSecretParametersNew\":\"Inviati a ogni chiamata, nella query string o nel body JSON, e mai mostrati al modello. Scrivi ogni valore: dopo il salvataggio non si vede più.\",\"apiToolSecretStored\":\"Salvato: lascialo vuoto per tenerlo\",\"apiToolCredentialInSchema\":\"Questi parametri sembrano credenziali, e li compila il modello: {names}. Spostali fra i parametri segreti e toglili dallo schema di input.\",\"apiToolCredentialBadge\":\"Un parametro che sembra una credenziale viene compilato dal modello\",\"apiToolSecretsOriginChanged\":\"L'URL punta a un altro host: riscrivi i valori degli header e dei parametri segreti, quelli salvati restano legati all'host precedente.\",\"apiToolSecretBodyMethod\":\"Una richiesta {method} non ha body\",\"toolWorkingSetMode\":{\"active\":\"Prima di ogni risposta un modello di valutazione (TypeSafe Jev) sceglie i server MCP, gli API Tools e i sotto-agenti che servono al messaggio, e l’agente vede solo quelli. Se gliene serve un altro, lo riattiva da solo. Ogni valutazione è addebitata all’organizzazione.\",\"off\":\"L’agente vede tutti i tool a ogni risposta.\",\"shadow\":\"Il modello di valutazione sceglie i tool che servono a ogni messaggio, ma l’agente li vede comunque tutti: la scelta viene solo registrata nel dettaglio del messaggio, per confrontarla con i tool usati davvero prima di attivarla. Ogni valutazione è addebitata all’organizzazione.\"},\"useColorsForAgentHeader\":\"Colora l'intestazione dell'agente in base al colore principale.\",\"userFeedbackComment\":\"L'utente ha lasciato un commento su questa risposta\",\"userFeedbackNegative\":\"L'utente ha valutato negativamente questa risposta\",\"userFeedbackPositive\":\"L'utente ha valutato positivamente questa risposta\",\"userFeedbackReaction\":\"L'utente ha reagito a questa risposta\",\"utilityModel\":\"Usato dietro le quinte per compiti come riformulare le domande degli utenti e aggiornare le memorie.\",\"voiceApprovalRefused\":\"Durante una chiamata queste azioni non partono: l'approvazione si dà a schermo e al telefono non c'è nessuno a cui chiederla, quindi l'agente le rifiuta e lo dice. Riguarda: {tools}.\",\"voiceCascadeTimeoutSeconds\":\"Quanto il fornitore aspetta noi prima di annullare il turno. Deve stare sopra al turno più lento dell'agente: knowledge base, tool e modelli lenti lo allungano.\",\"voiceEnabled\":\"Permette di parlare con questo agente. La risposta resta sua, con la sua knowledge base e i suoi strumenti.\",\"voiceFillerAfterSeconds\":\"Dice che sta lavorando quando la risposta tarda. Vuoto: quattro secondi.\",\"voiceFillerMessage\":\"Vuoto: una frase predefinita nella lingua della voce.\",\"voiceFirstMessage\":\"Detta appena si apre la chiamata. Copre anche il primo turno, il più lento.\",\"voiceId\":\"Le voci clonate non sono in elenco: il fornitore non le ammette qui.\",\"voiceIgnoreBackgroundVoices\":\"Ascolta solo chi parla. Da tenere attivo dove il microfono sente la stanza.\",\"voiceLanguage\":\"Usata per riconoscere il parlato e per parlare.\",\"voiceMaxSessionSeconds\":\"Una chiamata si paga a minuto e si chiude da sola a questo limite.\",\"voiceRemaining\":\"Tempo che resta in questa chiamata\",\"voiceSlowAgentOnCall\":\"Una knowledge base grande o server MCP collegati possono far metterci diversi secondi all'agente, e in chiamata quei secondi sono silenzio: le due impostazioni qui sotto sono ciò che tiene compagnia a chi chiama mentre lavora. Se le chiamate sembrano lente, la risposta si accorcia anche con meno passi, un limite di retrieval più basso o un modello più rapido.\",\"voiceTurnEagerness\":\"Pronto risponde prima, paziente ti aspetta.\",\"voiceTurnTimeoutSeconds\":\"Quanto l’agente aspetta il chiamante zitto prima di riprendere la parola. Niente a che vedere con la sua velocità di risposta.\",\"webSearchEnabled\":\"Permetti all'agente di cercare informazioni sul web durante le conversazioni.\",\"webSearchNative\":\"Usa le funzionalità di ricerca web integrate di {provider}.\",\"webSearchNativeFallback\":\"Questo modello non ha una ricerca web integrata: le ricerche passano da Perplexity.\",\"webhookUrl\":\"Incolla questo URL nella configurazione del webhook / endpoint di messaggistica della piattaforma.\",\"welcomePopup\":\"Mostra un popup di benvenuto con il messaggio iniziale prima che la chat venga aperta.\",\"whatsappVerifyToken\":\"Incolla questo token nella configurazione webhook di Meta.\",\"zeroDataRetention\":\"Instrada le richieste solo verso provider con accordi ZDR. Restringe il pool di provider disponibili.\",\"webSourceUnselected\":\"Le pagine non selezionate arriveranno con i prossimi controlli della sorgente.\",\"webSourceInterval\":\"Le pagine nuove seguono la frequenza qui sopra.\",\"webPagesRefresh\":\"Alla scadenza si rigenera solo ciò che è cambiato.\",\"documentFolderWebSource\":\"Cartella di un sito web: le pagine nuove arrivano da sole e restano modificabili.\",\"invitationLanguage\":\"La lingua dell'email che riceve la persona invitata.\"}"),
|
|
1187
1188
|
integrationProvider: {
|
|
1188
1189
|
hubspot: "HubSpot",
|
|
1189
1190
|
salesforce: "Salesforce",
|
|
@@ -1467,6 +1468,27 @@ var Zn = {
|
|
|
1467
1468
|
},
|
|
1468
1469
|
webSearch: "Ricerca sul web…"
|
|
1469
1470
|
},
|
|
1471
|
+
openaiApi: {
|
|
1472
|
+
access: "Accesso via API",
|
|
1473
|
+
accessOff: "Disattivato. Nessun client esterno può usare l’agente: attivalo per vedere come collegarne uno.",
|
|
1474
|
+
accessOn: "Attivo. L’agente risponde alle chiamate fatte con una API key dell’organizzazione.",
|
|
1475
|
+
agentAsModel: "Agente come modello",
|
|
1476
|
+
agentAsModelDescription: "Ogni client che parla l’API Chat Completions di OpenAI (n8n, LangChain, gli SDK openai) può usare questo agente come se fosse un modello, con una API key.",
|
|
1477
|
+
alertOff: "L’agente non risponde più via API.",
|
|
1478
|
+
alertOn: "L’agente ora risponde via API.",
|
|
1479
|
+
apiKeySummary: "Personale: l’agente risponde con i permessi di chi l’ha creata.",
|
|
1480
|
+
baseUrl: "Base URL",
|
|
1481
|
+
baseUrlSummary: "Il client aggiunge da solo il percorso di ogni chiamata.",
|
|
1482
|
+
connection: "Connessione",
|
|
1483
|
+
connectionDescription: "Nel client inserisci la Base URL, il modello e una API key.",
|
|
1484
|
+
conversations: "Conversazioni",
|
|
1485
|
+
conversationsSummary: "Per tenere il filo di una conversazione, genera un id univoco (per esempio un UUID) e passalo identico in ogni chiamata, come qui sotto: l’agente ricorda i messaggi precedenti e la conversazione si salva. Senza, ogni chiamata è a sé.",
|
|
1486
|
+
examples: "Esempi",
|
|
1487
|
+
model: "Modello",
|
|
1488
|
+
modelSummary: "L’id dell’agente, da usare come nome del modello.",
|
|
1489
|
+
n8nCredential: "Crea una credenziale OpenAI con la tua API key e la Base URL di questa pagina.",
|
|
1490
|
+
n8nModel: "Nel nodo OpenAI Chat Model scegli come modello l’id di questo agente."
|
|
1491
|
+
},
|
|
1470
1492
|
organizationLimits: {
|
|
1471
1493
|
legend: "Limiti",
|
|
1472
1494
|
membersHint: "Vuoto: nessun limite. Contano anche gli utenti arrivati dal widget.",
|
|
@@ -1710,7 +1732,7 @@ var Zn = {
|
|
|
1710
1732
|
allOrganizations: "Tutte le organizzazioni"
|
|
1711
1733
|
},
|
|
1712
1734
|
route: {
|
|
1713
|
-
agentEndpoints: "API
|
|
1735
|
+
agentEndpoints: "API endpoint",
|
|
1714
1736
|
agents: "Agenti",
|
|
1715
1737
|
apiTools: "API tools",
|
|
1716
1738
|
backoffice: "Backoffice",
|
|
@@ -1734,6 +1756,7 @@ var Zn = {
|
|
|
1734
1756
|
models: "Modelli",
|
|
1735
1757
|
notFound: "Pagina non trovata",
|
|
1736
1758
|
notifications: "Notifiche",
|
|
1759
|
+
openaiApi: "API OpenAI",
|
|
1737
1760
|
organizations: "Organizzazioni",
|
|
1738
1761
|
playground: "Playground",
|
|
1739
1762
|
profile: "Profilo",
|
|
@@ -2933,6 +2956,7 @@ var Zn = {
|
|
|
2933
2956
|
leads: "Contacts",
|
|
2934
2957
|
legend: "Features",
|
|
2935
2958
|
mcpServers: "MCP servers",
|
|
2959
|
+
openaiApi: "OpenAI API",
|
|
2936
2960
|
proactiveAutomations: "Proactive automations",
|
|
2937
2961
|
salesforce: "Salesforce",
|
|
2938
2962
|
sharepoint: "SharePoint",
|
|
@@ -2968,7 +2992,7 @@ var Zn = {
|
|
|
2968
2992
|
webSourceRemoveMissing: "For a complete sitemap. Many removals wait for you.",
|
|
2969
2993
|
webSourceRemoveMissingExplained: "For a site of your own, whose sitemap lists everything published. If too many go missing at once, nothing is removed until you confirm."
|
|
2970
2994
|
},
|
|
2971
|
-
hint: /* @__PURE__ */ JSON.parse("{\"agentModel\":\"Pre-selected when you create a new agent.\",\"agentOnOwnEndpoint\":\"This agent runs on your organization's endpoint.\",\"allowedDomains\":\"Only search within these domains.\",\"approvalChannels\":\"A tool can ask the user to confirm before it runs: expand a tool to turn it on. On API endpoints and scheduled runs the call is refused.\",\"audience\":\"Expected aud of the JWT. Empty: not checked.\",\"blockedDomains\":\"Exclude these domains from results.\",\"channel\":{\"app\":\"The agent is accessible via the dedicated public page.\",\"frontoffice\":\"The agent is visible in the Frontoffice panel.\",\"widget\":\"The agent can be embedded in websites via embed script.\"},\"channelAppDisabled\":\"The App channel is disabled: the direct link and iframe will not work.\",\"channelWidgetDisabled\":\"The Widget channel is disabled: the embed code and loader will not work.\",\"costSourceEndpoint\":\"The models on your organization's endpoint: your provider bills them, the cost here is a list-price estimate.\",\"customCss\":\"CSS injected into the widget shadow DOM. Allows styling the chat interface from the outside.\",\"disallowPromptTraining\":\"Route requests only to providers that do not use your data to train AI models.\",\"dismissableNotice\":\"It will be hidden after the first message.\",\"documentFolderManaged\":\"Folder synced from {provider}: its content is changed at the source.\",\"documentRefresh\":\"Reads the page again when due and regenerates only what changed.\",\"documentRefreshTriggerOff\":\"This page updates itself, and saving your own text stops that.\",\"documentSelectionHasManaged\":\"The selection contains documents that come from a connected source and cannot be changed by hand.\",\"documentSourceInterval\":\"How often the folder is read again.\",\"documentSourceIntervalExplained\":\"How often the folder is read again. Files that have not changed are not converted again.\",\"documentSourceName\":\"The name this folder has here. The remote one does not change.\",\"emailClaim\":\"The JWT claim containing the user email (default: email).\",\"embedCode\":\"Copy and paste this code to embed the agent in your website.\",\"embedding\":\"The vectors of the knowledge base, of the users' files and of the memories. They are computed on the platform AI gateway, or on your endpoint with one of the two models it can serve.\",\"embeddingActivation\":\"Before saving, the endpoint embeds a test sentence and its vector is compared with the model's own: a different model is refused. Moving to another model embeds the knowledge base and the memories again, and until it is done the searches find only what is already in the new model.\",\"embeddingEndpointModel\":\"The id your endpoint serves the model under\",\"embeddingEndpointOff\":\"Switch the endpoint on to compute the vectors there\",\"embeddingFamily\":\"Among those your endpoint serves\",\"embeddingFamilyUnknown\":\"Your endpoint does not declare it: the save checks it\",\"embeddingModelsServed\":\"Your endpoint serves these too. They cannot answer an agent: the one the vectors are computed with is chosen in the Embedding section.\",\"embeddingNotConfigured\":\"The knowledge base, the corrected answers, the memories and the document processing are stopped, because nothing computes their vectors. Activate an embedding model on your endpoint to start them again.\",\"embeddingReindexing\":\"Until the reindex ends, the searches in the knowledge base and in the memories find only what is already in the new model: partial results, never wrong ones. Nothing has to be done, and an interrupted run picks up where it stopped.\",\"embeddingStopped\":\"The endpoint that computes the vectors is off: the knowledge base, the corrected answers, the memories and the document processing are stopped until you switch it back on.\",\"embeddingWithoutEndpoint\":\"The vectors of the knowledge base, of the users' files and of the memories are computed on the platform AI gateway. Connect your endpoint to compute them there.\",\"embedIframe\":\"Embed the chat interface directly using an iframe. \",\"embedPreview\":\"The agent will be accessible at the following URL.\",\"embeddingWithoutEndpointOrGateway\":\"The vectors of the knowledge base, of the users' files and of the memories are not computed: this organization does not use the platform AI gateway. Connect your endpoint to compute them there.\",\"embeddingWithoutGateway\":\"The vectors of the knowledge base, of the users' files and of the memories. This organization does not use the platform AI gateway, so they are computed only on your endpoint, with one of the two models allowed.\",\"externalContextSchema\":\"Define which contextual data the hosting site can send to the agent.\",\"externalContextSchemaToggle\":\"Enable receiving contextual data from the hosting site.\",\"feature\":{\"apiTools\":\"Agents call the organization's own APIs as tools.\",\"byok\":\"The organization connects its own OpenAI compatible endpoint and uses its models.\",\"endpoints\":\"Agents answer other systems over REST.\",\"fileUpload\":\"Users attach files to their chat messages.\",\"gateway\":\"The AI gateway models, and with them the platform's embedding, and the utilities and the document AI that use them.\",\"hubspot\":\"Leads collected by the agents go to the organization's HubSpot CRM.\",\"leads\":\"Agents collect contacts with a form in the chat, and the Contacts page lists them.\",\"mcpServers\":\"Agents use the tools of external MCP servers.\",\"proactiveAutomations\":\"Agents check again by themselves what the user asks them to keep an eye on. Off, the checks under way stop at their next round.\",\"salesforce\":\"Leads collected by the agents go to the organization's Salesforce CRM.\",\"sharepoint\":\"Agents read the files of SharePoint folders kept in sync.\",\"subAgents\":\"An agent calls another one as a tool.\",\"teams\":\"Agents answer in Teams chats.\",\"voice\":\"Agents talk with the user in real time.\",\"whatsapp\":\"Agents answer on WhatsApp Business.\"},\"fallbackModels\":\"Alternative models tried in order if the primary model is unavailable.\",\"fieldMappingFallback\":\"Value used if the source field is empty or missing.\",\"fieldMappingSource\":\"Supports nested paths (e.g. metadata.urgency).\",\"fieldMappingTransformExtractDomainCompany\":\"Extracts the company name from the email domain (e.g. mario{'@'}acme.com → Acme). Skips free providers (gmail, outlook, etc.).\",\"fieldMappingTransformJoinArray\":\"Joins array values into a comma-separated string.\",\"fieldMappingTransformMapValues\":\"Replaces the value using the value map lookup table.\",\"fieldMappingTransformNone\":\"Copies the value as-is.\",\"fieldMappingTransformSplitFirstLast\":\"Splits text on spaces.\",\"fileUploadDisabledHint\":\"File upload is not enabled for this agent. You can enable it in the agent settings.\",\"fileUploadEnabled\":\"Allow users to attach files to their messages.\",\"freshnessBoost\":\"Applies a boost based on how recently the document was updated.\",\"freshnessScale\":\"Freshness scale (days)\",\"freshnessScaleExplanationDays\":\"A document updated today gets a +{weight} bonus. This bonus halves to +{halfWeight} after {half} days and practically drops to zero (+{zeroWeight}) after {zero} days.\",\"freshnessScaleExplanationMonths\":\"A document updated today gets a +{weight} bonus. This bonus halves to +{halfWeight} after {half} days and practically drops to zero (+{zeroWeight}) after {zero} days (approx. {months} months).\",\"freshnessScaleTooltip\":\"The half-life of the exponential decay. A document as old as this value will receive 50% of the maximum boost. Lower values cause older documents to lose the boost more quickly.\",\"freshnessWeight\":\"Weight multiplier of the freshness boost in the formula.\",\"freshnessWeightTooltip\":\"Maximum score bonus added to newly updated documents. A weight of 0.1 means a brand new document gets a +0.10 score advantage. This bonus decays exponentially over time until it reaches zero.\",\"gatewayCatalog\":\"The models the platform makes available, with the price per million tokens, the context size and the data privacy guarantees. Switch off the ones your organization does not use: they leave the pickers, and an agent still on one answers with the default model.\",\"gatewayOffDisconnected\":\"Unless its own endpoint is on and serves models, the organization is disconnected: no agent answers.\",\"gatewayOffNoByok\":\"Own models (BYOK) are off too: its administrator can neither set up an endpoint nor switch one on or off, nor move the embedding.\",\"gatewayOffStops\":\"Switched off, nothing of this organization reaches the gateway, within thirty seconds: the gateway models stop answering, and so do the internal utilities on them; the web search stops. The knowledge base, the corrected answers, the memories and the document processing go on only if the embedding is on the organization's own endpoint: on the platform's, they stop.\",\"gatewayOffTodo\":\"The administrator has to move both default models to the organization's own endpoint, or new agents cannot be created, and the embedding too (Models, Embedding section), or the knowledge base and the memories stay stopped. The inference is no longer charged to the credit; the voice minutes and the document OCR still are.\",\"guaranteeAll\":\"{name}: guaranteed on every provider.\",\"guaranteeNone\":\"{name}: not guaranteed.\",\"guaranteeSome\":\"{name}: guaranteed on some providers only, the gateway routes accordingly.\",\"includeThoughts\":\"Streams the model's thoughts to the client along with the response.\",\"inputSchema\":\"JSON Schema (draft-07) of the input parameters the LLM can provide.\",\"integrationOAuthAdminConsent\":\"A Microsoft 365 administrator of your organization may need to approve this.\",\"integrationAppCredentialScope\":\"With Sites.Read.All the app can read every site of the tenant. The connector reads only the folders you link.\",\"integrationAppCredentialSteps\":\"In Microsoft Entra ID: App registrations, New registration. Then API permissions, Microsoft Graph, Application permissions, Sites.Read.All, and Grant admin consent. Then Certificates & secrets, New client secret (note when it expires). Copy the Directory (tenant) ID, the Application (client) ID and the secret value here.\",\"interactiveLogin\":\"Lets anonymous users sign in from the chat. The external token stays active.\",\"issuer\":\"The issuer URL of the JWT token (iss).\",\"jwksUrl\":\"The JWKS endpoint URL for JWT signature verification.\",\"loadDelay\":\"Wait before loading the widget, for slow AMD loaders.\",\"loaderStrategy\":{\"dynamic-import\":\"Uses import() inside a classic <script>. Fallback for pages where module scripts are blocked or intercepted by legacy loaders.\",\"inline-module\":\"Injects an inline <script type=\\\"module\\\"> with a static import. Bypasses RequireJS and other AMD loaders. Recommended for most sites.\",\"script-src\":\"Loads the bundle via <script type=\\\"module\\\" src=\\\"...\\\">. Use this on sites with strict Content Security Policy (CSP) that block inline scripts.\"},\"mcpServerHealthCheckPath\":\"The endpoint used to check the health of the MCP Server (e.g., /api/health).\",\"mcpStatelessServer\":\"Force the client to connect in stateless mode.\",\"mcpHeadersOriginChanged\":\"The URL points to another host: type the values of the headers again, the saved ones stay with the previous host.\",\"mmr\":\"Balances semantic relevance and document diversity in search results to avoid redundant content.\",\"mmrCandidatesLimit\":\"Maximum number of candidate chunks pre-selected before applying MMR.\",\"mmrCandidatesLimitTooltip\":\"The number of top candidate chunks retrieved from the database before applying the MMR diversity filter. For example, if set to 100, the system selects the 100 highest-scoring chunks first, then filters them to find the most diverse subset.\",\"mmrDiversity\":\"Tradeoff between relevance (0.0) and diversity (1.0).\",\"mmrDiversityTooltip\":\"Controls how diverse the search results should be. A value near 0 focuses solely on relevance (even if results are similar). A value near 1 forces the inclusion of results with different details and themes, reducing redundancy.\",\"modelContextWindow\":\"Context window: {count}k tokens.\",\"modelDefaultNoneAvailable\":\"No model available: switch on at least one model of your endpoint below.\",\"modelDefaultOutsideCatalog\":\"This model is not among those available to your organization: pick another one. Meanwhile new agents start on the platform's standard model.\",\"modelDefaults\":\"They apply to the whole organization. Each agent can still use a different model, chosen in its own settings.\",\"modelDisabledForOrganization\":\"Switched off for this organization: the agents still on it answer with the default model, and it cannot be picked for a new one.\",\"modelEndpointBaseUrl\":\"The base address of the OpenAI compatible API.\",\"modelEndpointHttp\":\"Over http the key travels unencrypted: use it only if the endpoint is reachable from your internal network alone.\",\"modelEndpointHttpTitle\":\"Unencrypted connection (http)\",\"modelEndpointKey\":\"It is stored encrypted and never shown again.\",\"modelEndpointKeyStored\":\"Already saved. Leave the field empty to keep it.\",\"modelEndpointName\":\"The name you will recognise it by when choosing models.\",\"modelEndpointOffWithEmbedding\":\"Endpoint off: its models are not available, the agents on them stop answering, and the knowledge base, the memories and the documents stop with it, because it computes their vectors. Turn it back on to start them again.\",\"modelEndpointOnWithoutGateway\":\"Endpoint on: the models you switch on are the only ones the agents can use, since this organization does not use the platform gateway, and can be the defaults.\",\"modelNotOnEndpoint\":\"Not available to this organization: its endpoint no longer has this model, so an agent on it does not answer until it is moved to another model.\",\"modelSourceEndpoint\":\"Runs on {name}, your organization's own endpoint: your provider bills it, and the costs shown here are estimated from the price list.\",\"modelSourceOff\":\"Not available to this organization: the source it runs on is switched off, so an agent on it does not answer until it is moved to another model or the source is switched back on.\",\"modelSourcePlatform\":\"Runs on the platform AI gateway and is paid with your organization's credit.\",\"ownEndpoint\":\"Use your own models next to the platform ones: connect an OpenAI compatible endpoint with your own key. The agents that run on its models are not charged to your credit.\",\"modelEndpointOn\":\"Endpoint on: the models you switch on are available to the agents next to the platform ones, and can be the defaults.\",\"modelEndpointOff\":\"Endpoint off: its models are not available, and the agents on them stop answering. Switch on the models you need below, then turn it on.\",\"addModelsRule\":\"Switch on the models your agents will be able to use. The price comes from the platform price list; if a model is not in the list, you will be asked to enter it.\",\"modelPriceAsk\":\"This model is not in the platform price list. Pick a catalog model with a similar cost, or enter the prices per million tokens.\",\"modelPriceUnknown\":\"Not in the platform price list: enter a price.\",\"modelGuaranteedOnSome\":\"The guarantees you switched on hold only on some providers of this model: the gateway routes accordingly.\",\"modelIdByHand\":\"The technical name the endpoint uses to identify the model.\",\"modelNotCompatible\":\"Not compatible with the privacy flags of this agent.\",\"modelPriceFromListing\":\"Price taken from {id} in the platform price list.\",\"modelPriceListing\":\"Platform price list, entry {id}, updated on {date}.\",\"modelPriceManual\":\"Price typed by hand on {date}.\",\"modelPriceReference\":\"Same price as {id}, updated on {date}.\",\"modelReference\":\"A catalog model this one costs like.\",\"modelRetired\":\"No longer available on the platform: move the agents using it to another model.\",\"moveDocument\":\"Choose the destination folder for «{name}».\",\"moveDocuments\":\"Choose the destination folder for {n} document. | Choose the destination folder for {n} documents.\",\"multipleChoiceAllowCustomAnswer\":\"Show a free-text field below the options so the user can type a custom answer.\",\"multipleChoiceMaxOptions\":\"Maximum number of options the AI can generate (min. 2, max. 10).\",\"nameClaim\":\"Claim with the user name (default: name).\",\"oauthCallbackUrl\":\"Set this URL as the Callback URL (Redirect URI) in the OAuth provider.\",\"outputSchema\":\"JSON Schema (draft-07) of the expected response. Informational only.\",\"passphrase\":\"Enter {passphrase} to confirm the operation\",\"platformSupported\":\"Renders natively on WhatsApp and Teams\",\"privacyPolicyNotice\":\"Displayed at the bottom of the contact form. Supports Markdown.\",\"providerOrganizationId\":\"For Microsoft this refers to the tenant identifier (tenant ID). \\nFor others, enter the email domain (e.g. company.com).\",\"providerTimeoutMs\":\"Before the next provider: 1000 to 789000, BYOK only.\",\"reasoningDefault\":\"Platform default, applied until you choose a different value.\",\"reasoningNotSupported\":\"Reasoning is not supported for the selected provider.\",\"reasoningVisibility\":\"A reasoning agent is visible to its organization only.\",\"sessionExpiresIn\":\"Seconds, at least 60. Empty: 8 hours.\",\"showExtendedSteps\":\"Shows reasoning and tool calls as an expandable timeline in the chat.\",\"smoothStream\":\"Smooths text streaming creating a more natural reading experience.\",\"subAgentName\":\"Only letters, numbers, underscores (_) and hyphens (-) are allowed.\",\"teamsAccentColor\":\"Defaults to the agent's theme color.\",\"teamsAppVersion\":\"Raise it and reinstall to apply manifest changes.\",\"tool\":{\"fetchTeamsChannelHistory\":\"On Teams channels, lets the agent read the wider channel conversation on demand. Requires reinstalling the Teams app.\",\"geocode\":\"Converts place names to geographic coordinates and vice versa.\",\"getWeather\":\"Fetches current weather data and forecasts for a specific location.\",\"querySpreadsheet\":\"Answers questions on the Excel and CSV files of the knowledge base with exact searches, counts and totals, instead of searching their text. Turned off, the agent does not read these files at all. The spreadsheets attached in the chat are queried with the Spreadsheets tool.\",\"readDocumentFile\":\"Allows the agent to read the original file of PDF/DOCX documents from the knowledge base. Useful for tables, charts, and visual content.\",\"requestGeolocation\":\"Requests the user's GPS location via the browser.\",\"retrieveRevisedAnswers\":\"Retrieves administrator-verified answers and uses them as the primary source of truth.\",\"runWorker\":\"Lets the agent run generic workers that inherit its tools to handle independent sub-tasks in parallel.\",\"scheduleWakeup\":\"When the user asks for it, the agent checks something again by itself at intervals (from one minute to one hour) and writes in the same chat when it finds news.\",\"searchInKnowledgeBase\":\"Searches uploaded documents in the knowledge base to provide contextual answers.\",\"searchInUserFiles\":\"Searches the files this user personally uploaded in chat (their private files), kept separate from the agent knowledge base.\",\"showArtifact\":\"Displays structured content such as formatted text, code, or documents.\",\"showCalendarEvent\":\"Shows a calendar event with options for Google Calendar, Outlook, and .ics download.\",\"showComparison\":\"Compares 2 to 4 items side by side to help the user decide.\",\"showContactForm\":\"Displays a contact form to collect user information.\",\"showDiagram\":\"Renders a chart or a diagram (flowchart, sequence, class, ER, state).\",\"showEmail\":\"Composes a ready-to-send email from the user's email client.\",\"showForm\":\"Allows collecting structured input (text, numbers, dates, choices) via multi-step forms.\",\"showImageGallery\":\"Collects images in a browsable gallery with zoom and lightbox.\",\"showLocation\":\"Displays an interactive map with a marker and directions.\",\"showMessage\":\"Composes a message to send via WhatsApp, Telegram, or SMS.\",\"showMultipleChoice\":\"Presents selectable options to guide the conversation flow.\",\"showProductList\":\"Shows a product list with images, descriptions, and purchase links.\",\"showQrCode\":\"Generates a QR code from text, URLs, or structured data.\",\"showSources\":\"Shows references to the knowledge base documents used in the response.\",\"showSuggestedReply\":\"Suggests clickable replies to continue the conversation. To have them after every answer, ask for it in the agent's instructions.\",\"showVideo\":\"Plays videos inline: direct files (MP4/WebM) or YouTube/Vimeo links.\",\"showWeather\":\"Displays a weather forecast widget directly in the chat.\",\"showWebPages\":\"Suggests links to web pages relevant to the user's question.\",\"spreadsheet\":\"Reads, searches and edits the Excel files (.xlsx) users attach in the web chat or the widget, and returns each edit as a new version to download. Needs file uploads with the Spreadsheets type.\",\"useAllUserFiles\":\"Searches all the user's files, including those uploaded on other agents, not just this agent's.\",\"useAllUserKb\":\"Reads the memories the user shared with every agent of this organization, not just this one. Writing stays scoped to this agent.\",\"userMemory\":\"Lets the agent remember and recall facts the user shares across conversations (name, preferences, etc.).\"},\"toolRequiresApproval\":\"The agent waits for approval in the chat before running.\",\"apiToolSecretParameters\":\"Sent with every call, in the query string or in the JSON body, and never shown to the model. Once saved a value is not shown again: leave it empty to keep it.\",\"apiToolSecretParametersNew\":\"Sent with every call, in the query string or in the JSON body, and never shown to the model. Type every value: once saved it is not shown again.\",\"apiToolSecretStored\":\"Saved: leave it empty to keep it\",\"apiToolCredentialInSchema\":\"These parameters look like credentials, and the model fills them in: {names}. Move them to the secret parameters and remove them from the input schema.\",\"apiToolCredentialBadge\":\"A parameter that looks like a credential is filled in by the model\",\"apiToolSecretsOriginChanged\":\"The URL points to another host: type the values of the headers and of the secret parameters again, the saved ones stay with the previous host.\",\"apiToolSecretBodyMethod\":\"A {method} request sends no body\",\"toolWorkingSetMode\":{\"active\":\"Before each reply, an evaluation model (TypeSafe Jev) picks the MCP servers, API tools and sub-agents the message needs, and the agent sees only those. When it needs another one, it brings it back on its own. Each evaluation is charged to the organization.\",\"off\":\"The agent sees every tool on every reply.\",\"shadow\":\"The evaluation model picks the tools each message needs, but the agent still sees them all: the choice is only recorded in the message detail, to compare it with the tools actually used before turning it on. Each evaluation is charged to the organization.\"},\"useColorsForAgentHeader\":\"Color the agent header based on the main color.\",\"userFeedbackComment\":\"The user left a comment on this answer\",\"userFeedbackNegative\":\"The user rated this answer negatively\",\"userFeedbackPositive\":\"The user rated this answer positively\",\"userFeedbackReaction\":\"The user reacted to this answer\",\"utilityModel\":\"Used behind the scenes for tasks such as rephrasing user questions and updating memories.\",\"voiceApprovalRefused\":\"During a call these actions do not run: approval is given on screen and on the phone there is nobody to ask, so the agent refuses them and says so. Affected: {tools}.\",\"voiceCascadeTimeoutSeconds\":\"How long the provider waits for us before cancelling the turn. It must sit above the agent's slowest turn: a knowledge base, tools and slow models all stretch it.\",\"voiceEnabled\":\"Let people talk to this agent. The answer is still this agent, with its knowledge and tools.\",\"voiceFillerAfterSeconds\":\"Says it is working when the answer is late. Empty: four seconds.\",\"voiceFillerMessage\":\"Empty: a default sentence in the voice language.\",\"voiceFirstMessage\":\"Said as soon as the call opens. It also covers the slower first turn.\",\"voiceId\":\"Cloned voices are not listed: the provider forbids them here.\",\"voiceIgnoreBackgroundVoices\":\"Listen only to who is talking. Leave on where the microphone hears a room.\",\"voiceLanguage\":\"Used to recognise speech and to speak.\",\"voiceMaxSessionSeconds\":\"A call is billed by the minute and stops on its own at this limit.\",\"voiceRemaining\":\"Time left in this call\",\"voiceSlowAgentOnCall\":\"A large knowledge base or connected MCP servers can take an agent several seconds to answer, and on a call those seconds are silence: the two settings below are what keeps the caller company while it works. If your calls feel slow, the answer itself gets shorter with fewer steps, a smaller retrieval limit or a faster model.\",\"voiceTurnEagerness\":\"Eager answers sooner, patient waits for you.\",\"voiceTurnTimeoutSeconds\":\"How long the agent lets the caller stay silent before speaking again. Nothing to do with how fast it answers.\",\"webSearchEnabled\":\"Allow the agent to search the web during conversations.\",\"webSearchNative\":\"Uses {provider}'s built-in web search capabilities.\",\"webSearchNativeFallback\":\"This model has no built-in web search: searches go through Perplexity.\",\"webhookUrl\":\"Paste this URL into the platform's webhook / messaging endpoint configuration.\",\"welcomePopup\":\"Show a welcome popup with the initial message before the chat is opened.\",\"whatsappVerifyToken\":\"Paste this token into the Meta webhook configuration.\",\"zeroDataRetention\":\"Route requests only to ZDR-compliant providers. Restricts the pool of available providers.\",\"webSourceUnselected\":\"Pages you leave unselected will arrive with the next checks of the source.\",\"webSourceInterval\":\"New pages follow the schedule above.\",\"webPagesRefresh\":\"When due, only what changed is regenerated.\",\"documentFolderWebSource\":\"Website folder: new pages arrive on their own and stay editable.\",\"invitationLanguage\":\"The language of the email the invited person receives.\"}"),
|
|
2995
|
+
hint: /* @__PURE__ */ JSON.parse("{\"agentModel\":\"Pre-selected when you create a new agent.\",\"agentOnOwnEndpoint\":\"This agent runs on your organization's endpoint.\",\"allowedDomains\":\"Only search within these domains.\",\"approvalChannels\":\"A tool can ask the user to confirm before it runs: expand a tool to turn it on. On API endpoints and scheduled runs the call is refused.\",\"audience\":\"Expected aud of the JWT. Empty: not checked.\",\"blockedDomains\":\"Exclude these domains from results.\",\"channel\":{\"app\":\"The agent is accessible via the dedicated public page.\",\"frontoffice\":\"The agent is visible in the Frontoffice panel.\",\"widget\":\"The agent can be embedded in websites via embed script.\"},\"channelAppDisabled\":\"The App channel is disabled: the direct link and iframe will not work.\",\"channelWidgetDisabled\":\"The Widget channel is disabled: the embed code and loader will not work.\",\"costSourceEndpoint\":\"The models on your organization's endpoint: your provider bills them, the cost here is a list-price estimate.\",\"customCss\":\"CSS injected into the widget shadow DOM. Allows styling the chat interface from the outside.\",\"disallowPromptTraining\":\"Route requests only to providers that do not use your data to train AI models.\",\"dismissableNotice\":\"It will be hidden after the first message.\",\"documentFolderManaged\":\"Folder synced from {provider}: its content is changed at the source.\",\"documentRefresh\":\"Reads the page again when due and regenerates only what changed.\",\"documentRefreshTriggerOff\":\"This page updates itself, and saving your own text stops that.\",\"documentSelectionHasManaged\":\"The selection contains documents that come from a connected source and cannot be changed by hand.\",\"documentSourceInterval\":\"How often the folder is read again.\",\"documentSourceIntervalExplained\":\"How often the folder is read again. Files that have not changed are not converted again.\",\"documentSourceName\":\"The name this folder has here. The remote one does not change.\",\"emailClaim\":\"The JWT claim containing the user email (default: email).\",\"embedCode\":\"Copy and paste this code to embed the agent in your website.\",\"embedding\":\"The vectors of the knowledge base, of the users' files and of the memories. They are computed on the platform AI gateway, or on your endpoint with one of the two models it can serve.\",\"embeddingActivation\":\"Before saving, the endpoint embeds a test sentence and its vector is compared with the model's own: a different model is refused. Moving to another model embeds the knowledge base and the memories again, and until it is done the searches find only what is already in the new model.\",\"embeddingEndpointModel\":\"The id your endpoint serves the model under\",\"embeddingEndpointOff\":\"Switch the endpoint on to compute the vectors there\",\"embeddingFamily\":\"Among those your endpoint serves\",\"embeddingFamilyUnknown\":\"Your endpoint does not declare it: the save checks it\",\"embeddingModelsServed\":\"Your endpoint serves these too. They cannot answer an agent: the one the vectors are computed with is chosen in the Embedding section.\",\"embeddingNotConfigured\":\"The knowledge base, the corrected answers, the memories and the document processing are stopped, because nothing computes their vectors. Activate an embedding model on your endpoint to start them again.\",\"embeddingReindexing\":\"Until the reindex ends, the searches in the knowledge base and in the memories find only what is already in the new model: partial results, never wrong ones. Nothing has to be done, and an interrupted run picks up where it stopped.\",\"embeddingStopped\":\"The endpoint that computes the vectors is off: the knowledge base, the corrected answers, the memories and the document processing are stopped until you switch it back on.\",\"embeddingWithoutEndpoint\":\"The vectors of the knowledge base, of the users' files and of the memories are computed on the platform AI gateway. Connect your endpoint to compute them there.\",\"embedIframe\":\"Embed the chat interface directly using an iframe. \",\"embedPreview\":\"The agent will be accessible at the following URL.\",\"embeddingWithoutEndpointOrGateway\":\"The vectors of the knowledge base, of the users' files and of the memories are not computed: this organization does not use the platform AI gateway. Connect your endpoint to compute them there.\",\"embeddingWithoutGateway\":\"The vectors of the knowledge base, of the users' files and of the memories. This organization does not use the platform AI gateway, so they are computed only on your endpoint, with one of the two models allowed.\",\"externalContextSchema\":\"Define which contextual data the hosting site can send to the agent.\",\"externalContextSchemaToggle\":\"Enable receiving contextual data from the hosting site.\",\"feature\":{\"apiTools\":\"Agents call the organization's own APIs as tools.\",\"byok\":\"The organization connects its own OpenAI compatible endpoint and uses its models.\",\"endpoints\":\"Agents answer other systems over REST.\",\"fileUpload\":\"Users attach files to their chat messages.\",\"gateway\":\"The AI gateway models, and with them the platform's embedding, and the utilities and the document AI that use them.\",\"hubspot\":\"Leads collected by the agents go to the organization's HubSpot CRM.\",\"leads\":\"Agents collect contacts with a form in the chat, and the Contacts page lists them.\",\"mcpServers\":\"Agents use the tools of external MCP servers.\",\"openaiApi\":\"Agents answer as models to n8n, LangChain and any OpenAI compatible client.\",\"proactiveAutomations\":\"Agents check again by themselves what the user asks them to keep an eye on. Off, the checks under way stop at their next round.\",\"salesforce\":\"Leads collected by the agents go to the organization's Salesforce CRM.\",\"sharepoint\":\"Agents read the files of SharePoint folders kept in sync.\",\"subAgents\":\"An agent calls another one as a tool.\",\"teams\":\"Agents answer in Teams chats.\",\"voice\":\"Agents talk with the user in real time.\",\"whatsapp\":\"Agents answer on WhatsApp Business.\"},\"fallbackModels\":\"Alternative models tried in order if the primary model is unavailable.\",\"fieldMappingFallback\":\"Value used if the source field is empty or missing.\",\"fieldMappingSource\":\"Supports nested paths (e.g. metadata.urgency).\",\"fieldMappingTransformExtractDomainCompany\":\"Extracts the company name from the email domain (e.g. mario{'@'}acme.com → Acme). Skips free providers (gmail, outlook, etc.).\",\"fieldMappingTransformJoinArray\":\"Joins array values into a comma-separated string.\",\"fieldMappingTransformMapValues\":\"Replaces the value using the value map lookup table.\",\"fieldMappingTransformNone\":\"Copies the value as-is.\",\"fieldMappingTransformSplitFirstLast\":\"Splits text on spaces.\",\"fileUploadDisabledHint\":\"File upload is not enabled for this agent. You can enable it in the agent settings.\",\"fileUploadEnabled\":\"Allow users to attach files to their messages.\",\"freshnessBoost\":\"Applies a boost based on how recently the document was updated.\",\"freshnessScale\":\"Freshness scale (days)\",\"freshnessScaleExplanationDays\":\"A document updated today gets a +{weight} bonus. This bonus halves to +{halfWeight} after {half} days and practically drops to zero (+{zeroWeight}) after {zero} days.\",\"freshnessScaleExplanationMonths\":\"A document updated today gets a +{weight} bonus. This bonus halves to +{halfWeight} after {half} days and practically drops to zero (+{zeroWeight}) after {zero} days (approx. {months} months).\",\"freshnessScaleTooltip\":\"The half-life of the exponential decay. A document as old as this value will receive 50% of the maximum boost. Lower values cause older documents to lose the boost more quickly.\",\"freshnessWeight\":\"Weight multiplier of the freshness boost in the formula.\",\"freshnessWeightTooltip\":\"Maximum score bonus added to newly updated documents. A weight of 0.1 means a brand new document gets a +0.10 score advantage. This bonus decays exponentially over time until it reaches zero.\",\"gatewayCatalog\":\"The models the platform makes available, with the price per million tokens, the context size and the data privacy guarantees. Switch off the ones your organization does not use: they leave the pickers, and an agent still on one answers with the default model.\",\"gatewayOffDisconnected\":\"Unless its own endpoint is on and serves models, the organization is disconnected: no agent answers.\",\"gatewayOffNoByok\":\"Own models (BYOK) are off too: its administrator can neither set up an endpoint nor switch one on or off, nor move the embedding.\",\"gatewayOffStops\":\"Switched off, nothing of this organization reaches the gateway, within thirty seconds: the gateway models stop answering, and so do the internal utilities on them; the web search stops. The knowledge base, the corrected answers, the memories and the document processing go on only if the embedding is on the organization's own endpoint: on the platform's, they stop.\",\"gatewayOffTodo\":\"The administrator has to move both default models to the organization's own endpoint, or new agents cannot be created, and the embedding too (Models, Embedding section), or the knowledge base and the memories stay stopped. The inference is no longer charged to the credit; the voice minutes and the document OCR still are.\",\"guaranteeAll\":\"{name}: guaranteed on every provider.\",\"guaranteeNone\":\"{name}: not guaranteed.\",\"guaranteeSome\":\"{name}: guaranteed on some providers only, the gateway routes accordingly.\",\"includeThoughts\":\"Streams the model's thoughts to the client along with the response.\",\"inputSchema\":\"JSON Schema (draft-07) of the input parameters the LLM can provide.\",\"integrationOAuthAdminConsent\":\"A Microsoft 365 administrator of your organization may need to approve this.\",\"integrationAppCredentialScope\":\"With Sites.Read.All the app can read every site of the tenant. The connector reads only the folders you link.\",\"integrationAppCredentialSteps\":\"In Microsoft Entra ID: App registrations, New registration. Then API permissions, Microsoft Graph, Application permissions, Sites.Read.All, and Grant admin consent. Then Certificates & secrets, New client secret (note when it expires). Copy the Directory (tenant) ID, the Application (client) ID and the secret value here.\",\"interactiveLogin\":\"Lets anonymous users sign in from the chat. The external token stays active.\",\"issuer\":\"The issuer URL of the JWT token (iss).\",\"jwksUrl\":\"The JWKS endpoint URL for JWT signature verification.\",\"loadDelay\":\"Wait before loading the widget, for slow AMD loaders.\",\"loaderStrategy\":{\"dynamic-import\":\"Uses import() inside a classic <script>. Fallback for pages where module scripts are blocked or intercepted by legacy loaders.\",\"inline-module\":\"Injects an inline <script type=\\\"module\\\"> with a static import. Bypasses RequireJS and other AMD loaders. Recommended for most sites.\",\"script-src\":\"Loads the bundle via <script type=\\\"module\\\" src=\\\"...\\\">. Use this on sites with strict Content Security Policy (CSP) that block inline scripts.\"},\"mcpServerHealthCheckPath\":\"The endpoint used to check the health of the MCP Server (e.g., /api/health).\",\"mcpStatelessServer\":\"Force the client to connect in stateless mode.\",\"mcpHeadersOriginChanged\":\"The URL points to another host: type the values of the headers again, the saved ones stay with the previous host.\",\"mmr\":\"Balances semantic relevance and document diversity in search results to avoid redundant content.\",\"mmrCandidatesLimit\":\"Maximum number of candidate chunks pre-selected before applying MMR.\",\"mmrCandidatesLimitTooltip\":\"The number of top candidate chunks retrieved from the database before applying the MMR diversity filter. For example, if set to 100, the system selects the 100 highest-scoring chunks first, then filters them to find the most diverse subset.\",\"mmrDiversity\":\"Tradeoff between relevance (0.0) and diversity (1.0).\",\"mmrDiversityTooltip\":\"Controls how diverse the search results should be. A value near 0 focuses solely on relevance (even if results are similar). A value near 1 forces the inclusion of results with different details and themes, reducing redundancy.\",\"modelContextWindow\":\"Context window: {count}k tokens.\",\"modelDefaultNoneAvailable\":\"No model available: switch on at least one model of your endpoint below.\",\"modelDefaultOutsideCatalog\":\"This model is not among those available to your organization: pick another one. Meanwhile new agents start on the platform's standard model.\",\"modelDefaults\":\"They apply to the whole organization. Each agent can still use a different model, chosen in its own settings.\",\"modelDisabledForOrganization\":\"Switched off for this organization: the agents still on it answer with the default model, and it cannot be picked for a new one.\",\"modelEndpointBaseUrl\":\"The base address of the OpenAI compatible API.\",\"modelEndpointHttp\":\"Over http the key travels unencrypted: use it only if the endpoint is reachable from your internal network alone.\",\"modelEndpointHttpTitle\":\"Unencrypted connection (http)\",\"modelEndpointKey\":\"It is stored encrypted and never shown again.\",\"modelEndpointKeyStored\":\"Already saved. Leave the field empty to keep it.\",\"modelEndpointName\":\"The name you will recognise it by when choosing models.\",\"modelEndpointOffWithEmbedding\":\"Endpoint off: its models are not available, the agents on them stop answering, and the knowledge base, the memories and the documents stop with it, because it computes their vectors. Turn it back on to start them again.\",\"modelEndpointOnWithoutGateway\":\"Endpoint on: the models you switch on are the only ones the agents can use, since this organization does not use the platform gateway, and can be the defaults.\",\"modelNotOnEndpoint\":\"Not available to this organization: its endpoint no longer has this model, so an agent on it does not answer until it is moved to another model.\",\"modelSourceEndpoint\":\"Runs on {name}, your organization's own endpoint: your provider bills it, and the costs shown here are estimated from the price list.\",\"modelSourceOff\":\"Not available to this organization: the source it runs on is switched off, so an agent on it does not answer until it is moved to another model or the source is switched back on.\",\"modelSourcePlatform\":\"Runs on the platform AI gateway and is paid with your organization's credit.\",\"ownEndpoint\":\"Use your own models next to the platform ones: connect an OpenAI compatible endpoint with your own key. The agents that run on its models are not charged to your credit.\",\"modelEndpointOn\":\"Endpoint on: the models you switch on are available to the agents next to the platform ones, and can be the defaults.\",\"modelEndpointOff\":\"Endpoint off: its models are not available, and the agents on them stop answering. Switch on the models you need below, then turn it on.\",\"addModelsRule\":\"Switch on the models your agents will be able to use. The price comes from the platform price list; if a model is not in the list, you will be asked to enter it.\",\"modelPriceAsk\":\"This model is not in the platform price list. Pick a catalog model with a similar cost, or enter the prices per million tokens.\",\"modelPriceUnknown\":\"Not in the platform price list: enter a price.\",\"modelGuaranteedOnSome\":\"The guarantees you switched on hold only on some providers of this model: the gateway routes accordingly.\",\"modelIdByHand\":\"The technical name the endpoint uses to identify the model.\",\"modelNotCompatible\":\"Not compatible with the privacy flags of this agent.\",\"modelPriceFromListing\":\"Price taken from {id} in the platform price list.\",\"modelPriceListing\":\"Platform price list, entry {id}, updated on {date}.\",\"modelPriceManual\":\"Price typed by hand on {date}.\",\"modelPriceReference\":\"Same price as {id}, updated on {date}.\",\"modelReference\":\"A catalog model this one costs like.\",\"modelRetired\":\"No longer available on the platform: move the agents using it to another model.\",\"moveDocument\":\"Choose the destination folder for «{name}».\",\"moveDocuments\":\"Choose the destination folder for {n} document. | Choose the destination folder for {n} documents.\",\"multipleChoiceAllowCustomAnswer\":\"Show a free-text field below the options so the user can type a custom answer.\",\"multipleChoiceMaxOptions\":\"Maximum number of options the AI can generate (min. 2, max. 10).\",\"nameClaim\":\"Claim with the user name (default: name).\",\"oauthCallbackUrl\":\"Set this URL as the Callback URL (Redirect URI) in the OAuth provider.\",\"outputSchema\":\"JSON Schema (draft-07) of the expected response. Informational only.\",\"passphrase\":\"Enter {passphrase} to confirm the operation\",\"platformSupported\":\"Renders natively on WhatsApp and Teams\",\"privacyPolicyNotice\":\"Displayed at the bottom of the contact form. Supports Markdown.\",\"providerOrganizationId\":\"For Microsoft this refers to the tenant identifier (tenant ID). \\nFor others, enter the email domain (e.g. company.com).\",\"providerTimeoutMs\":\"Before the next provider: 1000 to 789000, BYOK only.\",\"reasoningDefault\":\"Platform default, applied until you choose a different value.\",\"reasoningNotSupported\":\"Reasoning is not supported for the selected provider.\",\"reasoningVisibility\":\"A reasoning agent is visible to its organization only.\",\"sessionExpiresIn\":\"Seconds, at least 60. Empty: 8 hours.\",\"showExtendedSteps\":\"Shows reasoning and tool calls as an expandable timeline in the chat.\",\"smoothStream\":\"Smooths text streaming creating a more natural reading experience.\",\"subAgentName\":\"Only letters, numbers, underscores (_) and hyphens (-) are allowed.\",\"teamsAccentColor\":\"Defaults to the agent's theme color.\",\"teamsAppVersion\":\"Raise it and reinstall to apply manifest changes.\",\"tool\":{\"fetchTeamsChannelHistory\":\"On Teams channels, lets the agent read the wider channel conversation on demand. Requires reinstalling the Teams app.\",\"geocode\":\"Converts place names to geographic coordinates and vice versa.\",\"getWeather\":\"Fetches current weather data and forecasts for a specific location.\",\"querySpreadsheet\":\"Answers questions on the Excel and CSV files of the knowledge base with exact searches, counts and totals, instead of searching their text. Turned off, the agent does not read these files at all. The spreadsheets attached in the chat are queried with the Spreadsheets tool.\",\"readDocumentFile\":\"Allows the agent to read the original file of PDF/DOCX documents from the knowledge base. Useful for tables, charts, and visual content.\",\"requestGeolocation\":\"Requests the user's GPS location via the browser.\",\"retrieveRevisedAnswers\":\"Retrieves administrator-verified answers and uses them as the primary source of truth.\",\"runWorker\":\"Lets the agent run generic workers that inherit its tools to handle independent sub-tasks in parallel.\",\"scheduleWakeup\":\"When the user asks for it, the agent checks something again by itself at intervals (from one minute to one hour) and writes in the same chat when it finds news.\",\"searchInKnowledgeBase\":\"Searches uploaded documents in the knowledge base to provide contextual answers.\",\"searchInUserFiles\":\"Searches the files this user personally uploaded in chat (their private files), kept separate from the agent knowledge base.\",\"showArtifact\":\"Displays structured content such as formatted text, code, or documents.\",\"showCalendarEvent\":\"Shows a calendar event with options for Google Calendar, Outlook, and .ics download.\",\"showComparison\":\"Compares 2 to 4 items side by side to help the user decide.\",\"showContactForm\":\"Displays a contact form to collect user information.\",\"showDiagram\":\"Renders a chart or a diagram (flowchart, sequence, class, ER, state).\",\"showEmail\":\"Composes a ready-to-send email from the user's email client.\",\"showForm\":\"Allows collecting structured input (text, numbers, dates, choices) via multi-step forms.\",\"showImageGallery\":\"Collects images in a browsable gallery with zoom and lightbox.\",\"showLocation\":\"Displays an interactive map with a marker and directions.\",\"showMessage\":\"Composes a message to send via WhatsApp, Telegram, or SMS.\",\"showMultipleChoice\":\"Presents selectable options to guide the conversation flow.\",\"showProductList\":\"Shows a product list with images, descriptions, and purchase links.\",\"showQrCode\":\"Generates a QR code from text, URLs, or structured data.\",\"showSources\":\"Shows references to the knowledge base documents used in the response.\",\"showSuggestedReply\":\"Suggests clickable replies to continue the conversation. To have them after every answer, ask for it in the agent's instructions.\",\"showVideo\":\"Plays videos inline: direct files (MP4/WebM) or YouTube/Vimeo links.\",\"showWeather\":\"Displays a weather forecast widget directly in the chat.\",\"showWebPages\":\"Suggests links to web pages relevant to the user's question.\",\"spreadsheet\":\"Reads, searches and edits the Excel files (.xlsx) users attach in the web chat or the widget, and returns each edit as a new version to download. Needs file uploads with the Spreadsheets type.\",\"useAllUserFiles\":\"Searches all the user's files, including those uploaded on other agents, not just this agent's.\",\"useAllUserKb\":\"Reads the memories the user shared with every agent of this organization, not just this one. Writing stays scoped to this agent.\",\"userMemory\":\"Lets the agent remember and recall facts the user shares across conversations (name, preferences, etc.).\"},\"toolRequiresApproval\":\"The agent waits for approval in the chat before running.\",\"apiToolSecretParameters\":\"Sent with every call, in the query string or in the JSON body, and never shown to the model. Once saved a value is not shown again: leave it empty to keep it.\",\"apiToolSecretParametersNew\":\"Sent with every call, in the query string or in the JSON body, and never shown to the model. Type every value: once saved it is not shown again.\",\"apiToolSecretStored\":\"Saved: leave it empty to keep it\",\"apiToolCredentialInSchema\":\"These parameters look like credentials, and the model fills them in: {names}. Move them to the secret parameters and remove them from the input schema.\",\"apiToolCredentialBadge\":\"A parameter that looks like a credential is filled in by the model\",\"apiToolSecretsOriginChanged\":\"The URL points to another host: type the values of the headers and of the secret parameters again, the saved ones stay with the previous host.\",\"apiToolSecretBodyMethod\":\"A {method} request sends no body\",\"toolWorkingSetMode\":{\"active\":\"Before each reply, an evaluation model (TypeSafe Jev) picks the MCP servers, API tools and sub-agents the message needs, and the agent sees only those. When it needs another one, it brings it back on its own. Each evaluation is charged to the organization.\",\"off\":\"The agent sees every tool on every reply.\",\"shadow\":\"The evaluation model picks the tools each message needs, but the agent still sees them all: the choice is only recorded in the message detail, to compare it with the tools actually used before turning it on. Each evaluation is charged to the organization.\"},\"useColorsForAgentHeader\":\"Color the agent header based on the main color.\",\"userFeedbackComment\":\"The user left a comment on this answer\",\"userFeedbackNegative\":\"The user rated this answer negatively\",\"userFeedbackPositive\":\"The user rated this answer positively\",\"userFeedbackReaction\":\"The user reacted to this answer\",\"utilityModel\":\"Used behind the scenes for tasks such as rephrasing user questions and updating memories.\",\"voiceApprovalRefused\":\"During a call these actions do not run: approval is given on screen and on the phone there is nobody to ask, so the agent refuses them and says so. Affected: {tools}.\",\"voiceCascadeTimeoutSeconds\":\"How long the provider waits for us before cancelling the turn. It must sit above the agent's slowest turn: a knowledge base, tools and slow models all stretch it.\",\"voiceEnabled\":\"Let people talk to this agent. The answer is still this agent, with its knowledge and tools.\",\"voiceFillerAfterSeconds\":\"Says it is working when the answer is late. Empty: four seconds.\",\"voiceFillerMessage\":\"Empty: a default sentence in the voice language.\",\"voiceFirstMessage\":\"Said as soon as the call opens. It also covers the slower first turn.\",\"voiceId\":\"Cloned voices are not listed: the provider forbids them here.\",\"voiceIgnoreBackgroundVoices\":\"Listen only to who is talking. Leave on where the microphone hears a room.\",\"voiceLanguage\":\"Used to recognise speech and to speak.\",\"voiceMaxSessionSeconds\":\"A call is billed by the minute and stops on its own at this limit.\",\"voiceRemaining\":\"Time left in this call\",\"voiceSlowAgentOnCall\":\"A large knowledge base or connected MCP servers can take an agent several seconds to answer, and on a call those seconds are silence: the two settings below are what keeps the caller company while it works. If your calls feel slow, the answer itself gets shorter with fewer steps, a smaller retrieval limit or a faster model.\",\"voiceTurnEagerness\":\"Eager answers sooner, patient waits for you.\",\"voiceTurnTimeoutSeconds\":\"How long the agent lets the caller stay silent before speaking again. Nothing to do with how fast it answers.\",\"webSearchEnabled\":\"Allow the agent to search the web during conversations.\",\"webSearchNative\":\"Uses {provider}'s built-in web search capabilities.\",\"webSearchNativeFallback\":\"This model has no built-in web search: searches go through Perplexity.\",\"webhookUrl\":\"Paste this URL into the platform's webhook / messaging endpoint configuration.\",\"welcomePopup\":\"Show a welcome popup with the initial message before the chat is opened.\",\"whatsappVerifyToken\":\"Paste this token into the Meta webhook configuration.\",\"zeroDataRetention\":\"Route requests only to ZDR-compliant providers. Restricts the pool of available providers.\",\"webSourceUnselected\":\"Pages you leave unselected will arrive with the next checks of the source.\",\"webSourceInterval\":\"New pages follow the schedule above.\",\"webPagesRefresh\":\"When due, only what changed is regenerated.\",\"documentFolderWebSource\":\"Website folder: new pages arrive on their own and stay editable.\",\"invitationLanguage\":\"The language of the email the invited person receives.\"}"),
|
|
2972
2996
|
integrationProvider: {
|
|
2973
2997
|
hubspot: "HubSpot",
|
|
2974
2998
|
salesforce: "Salesforce",
|
|
@@ -3252,6 +3276,27 @@ var Zn = {
|
|
|
3252
3276
|
},
|
|
3253
3277
|
webSearch: "Searching the web…"
|
|
3254
3278
|
},
|
|
3279
|
+
openaiApi: {
|
|
3280
|
+
access: "API access",
|
|
3281
|
+
accessOff: "Off. No outside client can use the agent: switch it on to see how to connect one.",
|
|
3282
|
+
accessOn: "On. The agent answers calls made with an API key of the organization.",
|
|
3283
|
+
agentAsModel: "Agent as a model",
|
|
3284
|
+
agentAsModelDescription: "Any client that speaks OpenAI's Chat Completions API (n8n, LangChain, the openai SDKs) can use this agent as if it were a model, with an API key.",
|
|
3285
|
+
alertOff: "The agent no longer answers through the API.",
|
|
3286
|
+
alertOn: "The agent now answers through the API.",
|
|
3287
|
+
apiKeySummary: "Personal: the agent answers with the permissions of whoever created it.",
|
|
3288
|
+
baseUrl: "Base URL",
|
|
3289
|
+
baseUrlSummary: "The client adds the path of each call by itself.",
|
|
3290
|
+
connection: "Connection",
|
|
3291
|
+
connectionDescription: "In the client, enter the base URL, the model and an API key.",
|
|
3292
|
+
conversations: "Conversations",
|
|
3293
|
+
conversationsSummary: "To keep the thread of a conversation, generate a unique id (a UUID, for instance) and send the same one on every call, as below: the agent remembers the earlier messages and the conversation is saved. Without it, every call stands alone.",
|
|
3294
|
+
examples: "Examples",
|
|
3295
|
+
model: "Model",
|
|
3296
|
+
modelSummary: "The agent's id, to use as the model name.",
|
|
3297
|
+
n8nCredential: "Create an OpenAI credential with your API key and the base URL of this page.",
|
|
3298
|
+
n8nModel: "In the OpenAI Chat Model node, choose this agent's id as the model."
|
|
3299
|
+
},
|
|
3255
3300
|
organizationLimits: {
|
|
3256
3301
|
legend: "Limits",
|
|
3257
3302
|
membersHint: "Empty: no limit. Users who arrive from the widget count too.",
|
|
@@ -3519,6 +3564,7 @@ var Zn = {
|
|
|
3519
3564
|
models: "Models",
|
|
3520
3565
|
notFound: "Page not found",
|
|
3521
3566
|
notifications: "Notifications",
|
|
3567
|
+
openaiApi: "OpenAI API",
|
|
3522
3568
|
organizations: "Organizations",
|
|
3523
3569
|
playground: "Playground",
|
|
3524
3570
|
profile: "Profile",
|
|
@@ -10056,7 +10102,7 @@ function Ld(e) {
|
|
|
10056
10102
|
}), de = W(() => {
|
|
10057
10103
|
let e = u.value?.messagePlaceholder;
|
|
10058
10104
|
return e?.[r.value] ? e[r.value] : n("placeholder.askAnything") ? t("placeholder.askAnything") : "";
|
|
10059
|
-
}), M = G([]), N = G(!1), P = G([]), fe = G(!1), I = G("chat"),
|
|
10105
|
+
}), M = G([]), N = G(!1), P = G([]), fe = G(!1), I = G("chat"), L = G([]), R = G(), z = G(!1), me = G(!1), B = G(), he = G(!1), ge = G(!1), V = G(), _e = G(""), H = G([]), U = G(""), ve = G(0);
|
|
10060
10106
|
async function ye(e) {
|
|
10061
10107
|
if (w.value) M.value = [];
|
|
10062
10108
|
else {
|
|
@@ -10123,14 +10169,14 @@ function Ld(e) {
|
|
|
10123
10169
|
}
|
|
10124
10170
|
async function ke(e) {
|
|
10125
10171
|
try {
|
|
10126
|
-
|
|
10172
|
+
L.value = await O.value.getMessageFeedbacks(e);
|
|
10127
10173
|
} catch {
|
|
10128
|
-
|
|
10174
|
+
L.value = [];
|
|
10129
10175
|
}
|
|
10130
10176
|
}
|
|
10131
10177
|
function Ae(e) {
|
|
10132
|
-
let t =
|
|
10133
|
-
t >= 0 ?
|
|
10178
|
+
let t = L.value.findIndex((t) => t.messageId === e.messageId);
|
|
10179
|
+
t >= 0 ? L.value[t] = e : L.value.push(e);
|
|
10134
10180
|
}
|
|
10135
10181
|
function q(e) {
|
|
10136
10182
|
let t = ue.value, n = t.findIndex((t) => t.id === e.id), r = dt(e) ?? "", i = t.slice(0, n).reverse().find((e) => e.role === "user");
|
|
@@ -10263,24 +10309,24 @@ function Ld(e) {
|
|
|
10263
10309
|
await qe(e, "downvote");
|
|
10264
10310
|
}
|
|
10265
10311
|
function Ze(e) {
|
|
10266
|
-
|
|
10312
|
+
me.value = !1, B.value = void 0, R.value = e;
|
|
10267
10313
|
}
|
|
10268
10314
|
async function Qe(e) {
|
|
10269
|
-
if (
|
|
10270
|
-
|
|
10271
|
-
let { userQuestion: t, assistantMessage: n } = q(
|
|
10315
|
+
if (R.value) try {
|
|
10316
|
+
z.value = !0, me.value = !1, B.value = void 0;
|
|
10317
|
+
let { userQuestion: t, assistantMessage: n } = q(R.value);
|
|
10272
10318
|
Ae(await O.value.submitMessageFeedback({
|
|
10273
|
-
messageId:
|
|
10319
|
+
messageId: R.value.id,
|
|
10274
10320
|
chatId: E.value,
|
|
10275
10321
|
agentId: o.value,
|
|
10276
10322
|
userQuestion: t,
|
|
10277
10323
|
assistantMessage: n,
|
|
10278
10324
|
comment: e
|
|
10279
|
-
})),
|
|
10325
|
+
})), me.value = !0, await ke(E.value);
|
|
10280
10326
|
} catch {
|
|
10281
10327
|
B.value = n("message.feedbackSubmitError") ? t("message.feedbackSubmitError") : "Failed to submit feedback";
|
|
10282
10328
|
} finally {
|
|
10283
|
-
|
|
10329
|
+
z.value = !1;
|
|
10284
10330
|
}
|
|
10285
10331
|
}
|
|
10286
10332
|
async function $e(e) {
|
|
@@ -10319,7 +10365,7 @@ function Ld(e) {
|
|
|
10319
10365
|
let t = rt;
|
|
10320
10366
|
if (rt = e, t === void 0) return;
|
|
10321
10367
|
let n = E.value, r = !w.value && await it(n);
|
|
10322
|
-
l.value === e && E.value === n && (r ? ye(o.value) : (M.value = [],
|
|
10368
|
+
l.value === e && E.value === n && (r ? ye(o.value) : (M.value = [], L.value = [], P.value = [], await Pe(), _e.value = ""));
|
|
10323
10369
|
}), {
|
|
10324
10370
|
apiClient: O,
|
|
10325
10371
|
baseUrl: i,
|
|
@@ -10359,10 +10405,10 @@ function Ld(e) {
|
|
|
10359
10405
|
inputMessagePlaceholder: de,
|
|
10360
10406
|
chatError: D,
|
|
10361
10407
|
activeView: I,
|
|
10362
|
-
messageFeedbacks:
|
|
10363
|
-
feedbackDialogMessage:
|
|
10364
|
-
isFeedbackSubmitting:
|
|
10365
|
-
isFeedbackSubmitted:
|
|
10408
|
+
messageFeedbacks: L,
|
|
10409
|
+
feedbackDialogMessage: R,
|
|
10410
|
+
isFeedbackSubmitting: z,
|
|
10411
|
+
isFeedbackSubmitted: me,
|
|
10366
10412
|
feedbackSubmitError: B,
|
|
10367
10413
|
isLeadSubmitted: he,
|
|
10368
10414
|
isLoadingSubmitLead: ge,
|
|
@@ -10518,8 +10564,8 @@ j(), U();
|
|
|
10518
10564
|
function Yd(e, t) {
|
|
10519
10565
|
let { locale: n, t: r, te: i } = Re({ useScope: "global" });
|
|
10520
10566
|
return W(() => {
|
|
10521
|
-
let a =
|
|
10522
|
-
return Xd(a?.greeting?.[0]?.[n.value] || a?.initialMessage?.[n.value] || (i("message.defaultAgentWelcome") ? r("message.defaultAgentWelcome") : ""),
|
|
10567
|
+
let a = z(e);
|
|
10568
|
+
return Xd(a?.greeting?.[0]?.[n.value] || a?.initialMessage?.[n.value] || (i("message.defaultAgentWelcome") ? r("message.defaultAgentWelcome") : ""), z(t));
|
|
10523
10569
|
});
|
|
10524
10570
|
}
|
|
10525
10571
|
function Xd(e, t) {
|
|
@@ -10535,7 +10581,7 @@ function Qd(e) {
|
|
|
10535
10581
|
return Ir(e?.message)?.payload;
|
|
10536
10582
|
}
|
|
10537
10583
|
function $d(e) {
|
|
10538
|
-
let t = W(() => Zd(
|
|
10584
|
+
let t = W(() => Zd(z(e), "context_length_exceeded")), n = W(() => Zd(z(e), "entity-not-found")), r = W(() => Zd(z(e), "rate-limit-exceeded")), i = W(() => Zd(z(e), "origin-not-allowed")), a = W(() => Zd(z(e), "credit-exhausted")), o = W(() => Zd(z(e), "conversation-blocked")), s = W(() => Zd(z(e), "bad request")), c = W(() => Zd(z(e), "internal-server-error")), l = W(() => Lr(z(e)?.message, "GATEWAY_CONFIG")), u = W(() => Zd(z(e), "gateway-disabled")), d = W(() => Zd(z(e), "model-unavailable"));
|
|
10539
10585
|
return {
|
|
10540
10586
|
isContextWindowError: t,
|
|
10541
10587
|
isNotFoundError: n,
|
|
@@ -11333,7 +11379,7 @@ function Sp() {
|
|
|
11333
11379
|
return Array.from(e, (e) => e.toString(16).padStart(2, "0")).join("");
|
|
11334
11380
|
}
|
|
11335
11381
|
function Cp(e = {}) {
|
|
11336
|
-
let t = G(pp(e.cookieName)), n = W(() =>
|
|
11382
|
+
let t = G(pp(e.cookieName)), n = W(() => z(e.useHostSession) ?? !1), r = W({
|
|
11337
11383
|
get: () => t.value,
|
|
11338
11384
|
set: (n) => {
|
|
11339
11385
|
fp(n, e.cookieName), t.value = n;
|
|
@@ -11363,7 +11409,7 @@ function Cp(e = {}) {
|
|
|
11363
11409
|
credentials: n.value ? "include" : t?.credentials
|
|
11364
11410
|
})
|
|
11365
11411
|
}
|
|
11366
|
-
}), o = a.useSession(), s = G(!1), c = W(() =>
|
|
11412
|
+
}), o = a.useSession(), s = G(!1), c = W(() => z(e.externalToken)), l = W(() => z(e.isActive) ?? !0), u = G(c.value), d = W(() => !!c.value || !!e.awaitExternalToken || !!u.value || n.value), f = Promise.resolve();
|
|
11367
11413
|
function p(e) {
|
|
11368
11414
|
let t = f.then(e, e);
|
|
11369
11415
|
return f = t, t;
|
|
@@ -11605,15 +11651,15 @@ function Ep(e) {
|
|
|
11605
11651
|
return {
|
|
11606
11652
|
user: i,
|
|
11607
11653
|
canManageProfile: W(() => i.value !== null),
|
|
11608
|
-
canSignIn: W(() =>
|
|
11609
|
-
isExternalAuth: W(() =>
|
|
11654
|
+
canSignIn: W(() => z(e.canSignIn) ?? !1),
|
|
11655
|
+
isExternalAuth: W(() => z(e.isExternalAuth) ?? !1),
|
|
11610
11656
|
profileUrl: W(() => `${vp}/app/profile`),
|
|
11611
11657
|
signOut: n,
|
|
11612
11658
|
eraseConversations: r ? async () => {
|
|
11613
11659
|
let e = await fetch(`${r.baseUrl}/api/v1/me/conversations/erasure`, {
|
|
11614
11660
|
method: "POST",
|
|
11615
11661
|
credentials: "include",
|
|
11616
|
-
headers:
|
|
11662
|
+
headers: z(r.headers)
|
|
11617
11663
|
});
|
|
11618
11664
|
if (!e.ok) throw Error(`Conversations erasure failed (${e.status})`);
|
|
11619
11665
|
let t = await e.json();
|
|
@@ -11654,12 +11700,12 @@ j(), U();
|
|
|
11654
11700
|
function Op(e) {
|
|
11655
11701
|
let t = G(), n = G(), r = G(), i = G(), a = G(!1), o = G(!1), s = G(!1);
|
|
11656
11702
|
async function c() {
|
|
11657
|
-
let c =
|
|
11703
|
+
let c = z(e.organizationSlug), l = z(e.agentId);
|
|
11658
11704
|
if (!c || !l) return;
|
|
11659
11705
|
let u = qs({
|
|
11660
11706
|
baseUrl: e.baseUrl ?? "https://ai-api.8wave.it",
|
|
11661
11707
|
basePath: e.basePath,
|
|
11662
|
-
headers: () =>
|
|
11708
|
+
headers: () => z(e.headers)
|
|
11663
11709
|
});
|
|
11664
11710
|
s.value = !0;
|
|
11665
11711
|
try {
|
|
@@ -11671,9 +11717,9 @@ function Op(e) {
|
|
|
11671
11717
|
s.value = !1;
|
|
11672
11718
|
}
|
|
11673
11719
|
}
|
|
11674
|
-
F([() =>
|
|
11720
|
+
F([() => z(e.organizationSlug), () => z(e.agentId)], () => {
|
|
11675
11721
|
c();
|
|
11676
|
-
}, { immediate: !0 }), F(() =>
|
|
11722
|
+
}, { immediate: !0 }), F(() => z(e.headers), () => {
|
|
11677
11723
|
a.value && c();
|
|
11678
11724
|
});
|
|
11679
11725
|
let l = W(() => t.value?.interface ?? n.value?.interface), u = W(() => Ke(l.value?.textColor, l.value?.mainColor)), d = W(() => l.value?.mainColor);
|
|
@@ -11691,7 +11737,7 @@ function Op(e) {
|
|
|
11691
11737
|
themeClass: W(() => {
|
|
11692
11738
|
let t = l.value?.theme;
|
|
11693
11739
|
if (t && t !== "auto") return ["theme", `theme--${t}`];
|
|
11694
|
-
let n =
|
|
11740
|
+
let n = z(e.systemTheme);
|
|
11695
11741
|
return n ? ["theme", `theme--${n}`] : ["theme"];
|
|
11696
11742
|
}),
|
|
11697
11743
|
themeStyle: W(() => rt(d.value, u.value))
|
|
@@ -11826,7 +11872,7 @@ var jp = ["src"], Mp = /*#__PURE__*/ hn(/* @__PURE__ */ w({
|
|
|
11826
11872
|
src: e.imgSrc,
|
|
11827
11873
|
alt: "avatar",
|
|
11828
11874
|
onError: n[0] ||= (t) => N(r)(e.imgSrc)
|
|
11829
|
-
}, null, 40, jp)) : o.value ? (A(), q(B, { key: 1 }, [
|
|
11875
|
+
}, null, 40, jp)) : o.value ? (A(), q(B, { key: 1 }, [R(E(o.value), 1)], 64)) : e.fallbackIcon ? (A(), V(s, {
|
|
11830
11876
|
key: 2,
|
|
11831
11877
|
name: e.fallbackIcon
|
|
11832
11878
|
}, null, 8, ["name"])) : I("", !0)]),
|
|
@@ -11956,7 +12002,7 @@ var Rp = /* @__PURE__ */ w({
|
|
|
11956
12002
|
modifiers: N(g) ? "warning" : "danger",
|
|
11957
12003
|
class: "rounded-lg"
|
|
11958
12004
|
}, Pe({
|
|
11959
|
-
default: C(() => [
|
|
12005
|
+
default: C(() => [R(E(v.value) + " ", 1)]),
|
|
11960
12006
|
_: 2
|
|
11961
12007
|
}, [N(g) || !_.value ? {
|
|
11962
12008
|
name: "footer",
|
|
@@ -12018,7 +12064,7 @@ var zp = { class: "border border-surface-3 rounded-xl w-full overflow-hidden bg-
|
|
|
12018
12064
|
class: "text-16 text-success"
|
|
12019
12065
|
}), H("div", null, [H("strong", qp, E(N(n)("message.feedbackSubmittedTitle")), 1), H("p", Jp, E(N(n)("message.feedbackSubmittedMessage")), 1)])])])) : (A(), q("div", Hp, [Y(N(s), {
|
|
12020
12066
|
modelValue: N(l),
|
|
12021
|
-
"onUpdate:modelValue": r[2] ||= (e) =>
|
|
12067
|
+
"onUpdate:modelValue": r[2] ||= (e) => me(l) ? l.value = e : null,
|
|
12022
12068
|
onSubmit: u
|
|
12023
12069
|
}, {
|
|
12024
12070
|
default: C(() => [H("div", Up, [e.error ? (A(), V(o, {
|
|
@@ -12315,7 +12361,7 @@ var bm = {
|
|
|
12315
12361
|
}, [Y(d, {
|
|
12316
12362
|
name: g.value.icon,
|
|
12317
12363
|
class: "shrink-0"
|
|
12318
|
-
}, null, 8, ["name"]),
|
|
12364
|
+
}, null, 8, ["name"]), R(" " + E(g.value.message), 1)], 2)) : (A(), V(s, { key: 0 }, {
|
|
12319
12365
|
default: C(() => [Y(a, {
|
|
12320
12366
|
modifiers: "primary-small",
|
|
12321
12367
|
disabled: !u.value,
|
|
@@ -12801,7 +12847,7 @@ var $m = {
|
|
|
12801
12847
|
class: "shrink-0"
|
|
12802
12848
|
})),
|
|
12803
12849
|
H("span", th, E(N(n)("messagePart.steps")), 1),
|
|
12804
|
-
H("span", nh, [
|
|
12850
|
+
H("span", nh, [R(E(N(n)("messagePart.stepCount", a.value.length)) + " ", 1), s(o.value) ? (A(), q(B, { key: 0 }, [R(" · " + E(s(o.value)), 1)], 64)) : I("", !0)]),
|
|
12805
12851
|
Y(i, {
|
|
12806
12852
|
name: f.value ? "ri:arrow-up-s-line" : "ri:arrow-down-s-line",
|
|
12807
12853
|
class: "pk-chatbot-steps__chevron shrink-0 ml-auto"
|
|
@@ -13092,7 +13138,7 @@ var xh = ["aria-busy"], Sh = {
|
|
|
13092
13138
|
messagesLength: () => n.messages?.length,
|
|
13093
13139
|
lastMessageRole: () => n.messages?.[n.messages.length - 1]?.role,
|
|
13094
13140
|
contentEl: () => d.value,
|
|
13095
|
-
beforeNewMessageScroll: () =>
|
|
13141
|
+
beforeNewMessageScroll: () => j(),
|
|
13096
13142
|
onScrollUp: () => r("scroll-up"),
|
|
13097
13143
|
onScrollDown: () => r("scroll-down")
|
|
13098
13144
|
}), _ = () => {
|
|
@@ -13119,72 +13165,78 @@ var xh = ["aria-busy"], Sh = {
|
|
|
13119
13165
|
top: t.scrollTop + r.getBoundingClientRect().top - t.getBoundingClientRect().top - Number.parseFloat(getComputedStyle(t).paddingTop),
|
|
13120
13166
|
behavior: "smooth"
|
|
13121
13167
|
}));
|
|
13122
|
-
}, w = W(() => n.status === "submitted" || n.status === "streaming"), T = G(0), ne = G(!1), D = !1, ae = _e(), O =
|
|
13123
|
-
|
|
13124
|
-
|
|
13125
|
-
|
|
13126
|
-
|
|
13127
|
-
|
|
13128
|
-
|
|
13168
|
+
}, w = W(() => n.status === "submitted" || n.status === "streaming"), T = G(0), ne = G(!1), D = !1, ae = _e(), O = () => n.messages?.[n.messages.length - 1]?.role === "user" || w.value, se = () => {
|
|
13169
|
+
D = !1, ne.value = !0, T.value = 0;
|
|
13170
|
+
}, j = async () => {
|
|
13171
|
+
if (!n.messages?.length || n.disableHeightAdjustment) return;
|
|
13172
|
+
if (!O()) {
|
|
13173
|
+
D && (await le(), u.value?.scrollHeight, O() || se());
|
|
13174
|
+
return;
|
|
13175
|
+
}
|
|
13176
|
+
if (D = !0, ne.value = !1, await le(), !u.value) return;
|
|
13177
|
+
let { paddingTop: e, paddingBottom: t } = getComputedStyle(u.value), r = u.value.clientHeight - Number.parseFloat(e) - Number.parseFloat(t), i = d.value && Number.parseFloat(getComputedStyle(d.value).rowGap) || 0, a = b();
|
|
13178
|
+
ae.value = a[a.length - 1];
|
|
13179
|
+
let o = r - (ae.value?.clientHeight ?? 0) - i;
|
|
13180
|
+
r > 0 && (T.value = Math.max(o, 0)), await le();
|
|
13129
13181
|
};
|
|
13130
|
-
F([() => n.messages?.length, () => n.messages?.[n.messages.length - 1]?.id], () =>
|
|
13131
|
-
D &&
|
|
13182
|
+
F([() => n.messages?.length, () => n.messages?.[n.messages.length - 1]?.id], () => j()), Xt([u, ae], () => {
|
|
13183
|
+
D && j();
|
|
13132
13184
|
}), ie(() => {
|
|
13133
|
-
(w.value || n.awaitingSpokenAnswer) &&
|
|
13185
|
+
(w.value || n.awaitingSpokenAnswer) && j();
|
|
13134
13186
|
}), F(w, (e) => {
|
|
13135
|
-
e || (
|
|
13187
|
+
e || se();
|
|
13136
13188
|
});
|
|
13137
|
-
let
|
|
13138
|
-
let t =
|
|
13189
|
+
let ue = (e) => n.revisedAnswers?.some((t) => t.messageId === e), de = (e) => n.messageFeedbacks?.find((t) => t.messageId === e), M = /* @__PURE__ */ new Set(["showContactForm"]), P = (e) => !n.interactive && M.has(Xe(e)) ? { record: !0 } : {}, fe = (e, t) => !n.readonlyFeedback && Ne(e, t), pe = (e) => n.readonlyFeedback ? de(e) : void 0, L = (e) => pe(e)?.vote, z = (e) => {
|
|
13190
|
+
let t = pe(e);
|
|
13139
13191
|
if (t?.vote) return;
|
|
13140
13192
|
let n = t?.metadata?.reactionEmoji;
|
|
13141
13193
|
return typeof n == "string" && /\p{Extended_Pictographic}/u.test(n) ? n : void 0;
|
|
13142
|
-
}, me = (e) => !!(
|
|
13143
|
-
if (
|
|
13144
|
-
let t =
|
|
13194
|
+
}, me = (e) => !!(L(e) || z(e)), he = (e) => {
|
|
13195
|
+
if (z(e)) return "pk-chatbot-message__reaction--neutral";
|
|
13196
|
+
let t = L(e);
|
|
13145
13197
|
return t === "upvote" ? "pk-chatbot-message__reaction--positive" : t === "downvote" ? "pk-chatbot-message__reaction--negative" : "pk-chatbot-message__reaction--neutral";
|
|
13146
|
-
},
|
|
13147
|
-
let t =
|
|
13198
|
+
}, ge = (e) => {
|
|
13199
|
+
let t = L(e);
|
|
13148
13200
|
return i(t === "upvote" ? "hint.userFeedbackPositive" : t === "downvote" ? "hint.userFeedbackNegative" : "hint.userFeedbackReaction");
|
|
13149
|
-
},
|
|
13150
|
-
let t =
|
|
13201
|
+
}, U = (e) => {
|
|
13202
|
+
let t = xe(e);
|
|
13151
13203
|
for (let e = t.length - 1; e >= 0; --e) if (qe(t[e])) return e;
|
|
13152
13204
|
return -1;
|
|
13153
|
-
},
|
|
13154
|
-
let e =
|
|
13205
|
+
}, ve = W(() => n.messages?.[n.messages.length - 1]), ye = W(() => {
|
|
13206
|
+
let e = ve.value;
|
|
13155
13207
|
return e ? e.parts[e.parts.length - 1] : null;
|
|
13156
|
-
}),
|
|
13208
|
+
}), be = W(() => {
|
|
13157
13209
|
let e = /* @__PURE__ */ new Map();
|
|
13158
13210
|
for (let t of n.messages ?? []) t.role === "assistant" && e.set(t.id, tt(ht(xt(t.parts))));
|
|
13159
13211
|
return e;
|
|
13160
|
-
}),
|
|
13161
|
-
let e =
|
|
13212
|
+
}), xe = (e) => be.value.get(e.id) ?? e.parts, Se = W(() => n.status === "error"), Ce = W(() => n.awaitingSpokenAnswer === !0 && !w.value), we = W(() => Ce.value && ve.value?.role === "user" && !Se.value), Ee = (e, t) => t(), De = W(() => {
|
|
13213
|
+
let e = ye.value;
|
|
13162
13214
|
return ct(i, e);
|
|
13163
|
-
}),
|
|
13164
|
-
let e =
|
|
13215
|
+
}), Oe = W(() => {
|
|
13216
|
+
let e = ye.value;
|
|
13165
13217
|
return st(e);
|
|
13166
|
-
}),
|
|
13218
|
+
}), Ae = (e) => n.messages?.findIndex((t) => t.id === e), je = (e) => e === void 0 || !n.messages ? !1 : e === n.messages.length - 1, Me = (e) => je(e) && n.status === "ready" && !!n.actions?.includes("regenerate"), Ne = (e, t) => (!je(t) || n.status === "ready") && !!n.actions?.includes(e), Pe = (e) => {
|
|
13167
13219
|
let t = e.parts[e.parts.length - 1];
|
|
13168
13220
|
return qe(t);
|
|
13169
|
-
},
|
|
13170
|
-
let t =
|
|
13221
|
+
}, Fe = (e) => e.parts.some((e) => $e(e) || Je(e)), Le = (e) => !!n.showExtendedSteps && Ve(e) && Fe(e), ze = (e) => Je(e) && !St(e) && !!(gm[Xe(e)] || c[e.type] || n.showAllMessageParts), Be = (e) => e.parts.some((e) => qe(e) && !!e.text.trim() || Ze(e) || it(e) && !St(e) || ze(e)), Ve = (e) => e.role === "assistant", He = (e) => e.role === "user", We = (e) => n.messages?.slice(0, e).reverse().find((e) => Ve(e)), Ge = (e) => n.messages?.slice(e + 1).find((e) => Ve(e)), Ye = (e) => {
|
|
13222
|
+
let t = We(e)?.metadata?.createdAt, n = Ge(e)?.metadata?.createdAt;
|
|
13171
13223
|
if (!t || !n) return;
|
|
13172
13224
|
let r = new Date(t), i = new Date(n);
|
|
13173
13225
|
return r.toDateString() === i.toDateString() ? void 0 : i;
|
|
13174
|
-
},
|
|
13226
|
+
}, Qe = W(() => n.showAllMessageParts ? bh([]) : bh(n.messages ?? [], Be)), nt = W(() => {
|
|
13175
13227
|
let e = 0;
|
|
13176
13228
|
return (n.messages ?? []).map((t) => t.parts.length > 0 ? ++e : void 0);
|
|
13177
|
-
}),
|
|
13229
|
+
}), rt = (e, t) => t === 0 || e.role !== "assistant" ? !1 : !!(n.actions?.length || n.showMessageNumber || n.showMessageDateTime && e.metadata?.createdAt !== void 0 || e.metadata?.completedAt !== void 0 || n.showMessageTokensCount && e.metadata?.totalTokens !== void 0), at = (e) => {
|
|
13178
13230
|
let t = new Date(e), n = t.toDateString() === (/* @__PURE__ */ new Date()).toDateString();
|
|
13179
13231
|
return o(t, n ? "time" : "date-time");
|
|
13180
|
-
},
|
|
13232
|
+
}, ut = (e) => {
|
|
13181
13233
|
let { createdAt: t, completedAt: n } = e.metadata ?? {};
|
|
13182
13234
|
if (t && n) return ot(s, n - t);
|
|
13183
|
-
},
|
|
13235
|
+
}, dt = k("feedbackMessageEl");
|
|
13184
13236
|
return F(() => n.feedbackMessageId, async () => {
|
|
13185
13237
|
if (await le(), !n.feedbackMessageId) return;
|
|
13186
|
-
let e =
|
|
13187
|
-
e && (
|
|
13238
|
+
let e = dt.value?.[0]?.$el;
|
|
13239
|
+
e && (je(Ae(n.feedbackMessageId)) ? m() : e.scrollIntoView({
|
|
13188
13240
|
behavior: "smooth",
|
|
13189
13241
|
block: "center"
|
|
13190
13242
|
}));
|
|
@@ -13215,35 +13267,35 @@ var xh = ["aria-busy"], Sh = {
|
|
|
13215
13267
|
class: "pk-chatbot-messages__wrapper"
|
|
13216
13268
|
}, [
|
|
13217
13269
|
(A(!0), q(B, null, Ie(e.messages, (u, d) => (A(), q(B, { key: u.id }, [
|
|
13218
|
-
|
|
13219
|
-
|
|
13270
|
+
He(u) && Ye(d) ? (A(), q("div", Ch, [H("span", wh, E(N(o)(Ye(d), "short")), 1)])) : I("", !0),
|
|
13271
|
+
Qe.value.quietRuns.has(u.id) ? (A(), q("div", Th, [Y(r, {
|
|
13220
13272
|
name: "ri:alarm-line",
|
|
13221
13273
|
class: "shrink-0"
|
|
13222
13274
|
}), H("span", null, E(N(i)("label.wakeupQuietRun", {
|
|
13223
|
-
count:
|
|
13224
|
-
time: N(o)(
|
|
13225
|
-
},
|
|
13275
|
+
count: Qe.value.quietRuns.get(u.id).count,
|
|
13276
|
+
time: N(o)(Qe.value.quietRuns.get(u.id).lastAt ?? Date.now(), "time")
|
|
13277
|
+
}, Qe.value.quietRuns.get(u.id).count)), 1)])) : N(Kr)(u) && !Qe.value.hidden.has(u.id) && !e.showAllMessageParts ? (A(), q("div", {
|
|
13226
13278
|
key: 2,
|
|
13227
13279
|
class: "pk-chatbot-wakeup",
|
|
13228
13280
|
title: u.metadata?.wakeup?.reason
|
|
13229
13281
|
}, [Y(r, {
|
|
13230
13282
|
name: "ri:alarm-line",
|
|
13231
13283
|
class: "shrink-0"
|
|
13232
|
-
}), H("span", null, [
|
|
13233
|
-
(!N(Kr)(u) || e.showAllMessageParts) && (!
|
|
13284
|
+
}), H("span", null, [R(E(N(i)("label.wakeupCheck")) + " ", 1), u.metadata?.createdAt ? (A(), q(B, { key: 0 }, [R(" · " + E(N(o)(u.metadata.createdAt, "time")), 1)], 64)) : I("", !0)])], 8, Eh)) : I("", !0),
|
|
13285
|
+
(!N(Kr)(u) || e.showAllMessageParts) && (!Qe.value.hidden.has(u.id) || w.value && je(d)) && (u.parts.length || je(d) && w.value && Ve(u)) ? (A(), q("div", {
|
|
13234
13286
|
key: 3,
|
|
13235
|
-
class: J(["pk-chatbot-message", [`pk-chatbot-message--${u.role}`, { "pk-chatbot-message--loading": w.value &&
|
|
13236
|
-
style: re({ minHeight:
|
|
13287
|
+
class: J(["pk-chatbot-message", [`pk-chatbot-message--${u.role}`, { "pk-chatbot-message--loading": w.value && je(d) && Ve(u) }]]),
|
|
13288
|
+
style: re({ minHeight: je(d) && Ve(u) && !Se.value ? `${T.value}px` : void 0 })
|
|
13237
13289
|
}, [
|
|
13238
13290
|
Y(K, {
|
|
13239
13291
|
appear: "",
|
|
13240
13292
|
name: "pk-chatbot-part"
|
|
13241
13293
|
}, {
|
|
13242
|
-
default: C(() => [
|
|
13294
|
+
default: C(() => [Le(u) ? (A(), V(dh, {
|
|
13243
13295
|
key: 0,
|
|
13244
13296
|
message: u,
|
|
13245
|
-
"is-streaming": w.value &&
|
|
13246
|
-
"has-content":
|
|
13297
|
+
"is-streaming": w.value && je(d),
|
|
13298
|
+
"has-content": Be(u),
|
|
13247
13299
|
"is-dark": e.isDark
|
|
13248
13300
|
}, null, 8, [
|
|
13249
13301
|
"message",
|
|
@@ -13253,7 +13305,7 @@ var xh = ["aria-busy"], Sh = {
|
|
|
13253
13305
|
])) : I("", !0)]),
|
|
13254
13306
|
_: 2
|
|
13255
13307
|
}, 1024),
|
|
13256
|
-
(A(!0), q(B, null, Ie(
|
|
13308
|
+
(A(!0), q(B, null, Ie(xe(u), (n, o) => (A(), q(B, { key: N(vt)(n, o) }, [N(qe)(n) && n.text.trim() ? (A(), V(K, {
|
|
13257
13309
|
key: 0,
|
|
13258
13310
|
appear: "",
|
|
13259
13311
|
name: "pk-chatbot-part"
|
|
@@ -13263,23 +13315,23 @@ var xh = ["aria-busy"], Sh = {
|
|
|
13263
13315
|
part: n,
|
|
13264
13316
|
index: d,
|
|
13265
13317
|
isLoading: w.value
|
|
13266
|
-
}), () => [
|
|
13318
|
+
}), () => [Ve(u) ? (A(), V(yt, {
|
|
13267
13319
|
key: 0,
|
|
13268
13320
|
class: "wysiwyg",
|
|
13269
13321
|
markdown: n.text,
|
|
13270
13322
|
"is-dark": e.isDark,
|
|
13271
|
-
loading:
|
|
13323
|
+
loading: je(d) && e.status === "streaming"
|
|
13272
13324
|
}, null, 8, [
|
|
13273
13325
|
"markdown",
|
|
13274
13326
|
"is-dark",
|
|
13275
13327
|
"loading"
|
|
13276
|
-
])) : (A(), q(B, { key: 1 }, [
|
|
13328
|
+
])) : (A(), q(B, { key: 1 }, [R(E(n.text), 1)], 64))]), me(u.id) && !de(u.id)?.comment && o === U(u) ? (A(), q("span", {
|
|
13277
13329
|
key: 0,
|
|
13278
|
-
class: J(["pk-chatbot-message__reaction",
|
|
13279
|
-
title:
|
|
13280
|
-
}, [
|
|
13330
|
+
class: J(["pk-chatbot-message__reaction", he(u.id)]),
|
|
13331
|
+
title: ge(u.id)
|
|
13332
|
+
}, [z(u.id) ? (A(), q("span", kh, E(z(u.id)), 1)) : (A(), V(r, {
|
|
13281
13333
|
key: 1,
|
|
13282
|
-
name:
|
|
13334
|
+
name: L(u.id) === "downvote" ? "ri:thumb-down-fill" : "ri:thumb-up-fill"
|
|
13283
13335
|
}, null, 8, ["name"]))], 10, Oh)) : I("", !0)])]),
|
|
13284
13336
|
_: 2
|
|
13285
13337
|
}, 1024)) : N(Ze)(n) ? (A(), V(K, {
|
|
@@ -13300,7 +13352,7 @@ var xh = ["aria-busy"], Sh = {
|
|
|
13300
13352
|
]), Y(fm, {
|
|
13301
13353
|
url: n.url,
|
|
13302
13354
|
transcript: N(Ue)(n),
|
|
13303
|
-
pending: e.status === "submitted" &&
|
|
13355
|
+
pending: e.status === "submitted" && je(d)
|
|
13304
13356
|
}, null, 8, [
|
|
13305
13357
|
"url",
|
|
13306
13358
|
"transcript",
|
|
@@ -13326,7 +13378,7 @@ var xh = ["aria-busy"], Sh = {
|
|
|
13326
13378
|
default: C(() => [(A(), V(xm, {
|
|
13327
13379
|
key: `approval-${o}`,
|
|
13328
13380
|
part: n,
|
|
13329
|
-
actionable: e.interactive === !0 && (N(et)(n) ||
|
|
13381
|
+
actionable: e.interactive === !0 && (N(et)(n) || je(d)),
|
|
13330
13382
|
"call-verdict": e.confirmVerdictsOnCall?.get(n.toolCallId ?? ""),
|
|
13331
13383
|
onRespond: (e) => l(n, e)
|
|
13332
13384
|
}, null, 8, [
|
|
@@ -13336,7 +13388,7 @@ var xh = ["aria-busy"], Sh = {
|
|
|
13336
13388
|
"onRespond"
|
|
13337
13389
|
]))]),
|
|
13338
13390
|
_: 2
|
|
13339
|
-
}, 1024)) :
|
|
13391
|
+
}, 1024)) : ze(n) ? (A(), V(K, {
|
|
13340
13392
|
key: 3,
|
|
13341
13393
|
appear: "",
|
|
13342
13394
|
name: "pk-chatbot-part"
|
|
@@ -13344,7 +13396,7 @@ var xh = ["aria-busy"], Sh = {
|
|
|
13344
13396
|
default: C(() => [!N(c)[n.type] && N(gm)[N(Xe)(n)] ? (A(), V(oe(N(gm)[N(Xe)(n)]), ce({
|
|
13345
13397
|
key: `component-${o}-${N(gt)(n)}`,
|
|
13346
13398
|
part: n
|
|
13347
|
-
}, { ref_for: !0 },
|
|
13399
|
+
}, { ref_for: !0 }, P(n)), null, 16, ["part"])) : te(t.$slots, n.type, ce({ ref_for: !0 }, {
|
|
13348
13400
|
message: u,
|
|
13349
13401
|
part: n,
|
|
13350
13402
|
index: d,
|
|
@@ -13359,9 +13411,9 @@ var xh = ["aria-busy"], Sh = {
|
|
|
13359
13411
|
})), 1)])])) : I("", !0)], void 0, 1)]),
|
|
13360
13412
|
_: 2
|
|
13361
13413
|
}, 1024)) : I("", !0), Y(K, { mode: "out-in" }, {
|
|
13362
|
-
default: C(() => [o ===
|
|
13414
|
+
default: C(() => [o === U(u) && e.readonlyFeedback && de(u.id)?.comment ? (A(), V($p, {
|
|
13363
13415
|
key: 0,
|
|
13364
|
-
feedback:
|
|
13416
|
+
feedback: de(u.id)
|
|
13365
13417
|
}, null, 8, ["feedback"])) : I("", !0)]),
|
|
13366
13418
|
_: 2
|
|
13367
13419
|
}, 1024)], 64))), 128)),
|
|
@@ -13369,7 +13421,7 @@ var xh = ["aria-busy"], Sh = {
|
|
|
13369
13421
|
name: "fade-in",
|
|
13370
13422
|
mode: "out-in"
|
|
13371
13423
|
}, {
|
|
13372
|
-
default: C(() => [w.value &&
|
|
13424
|
+
default: C(() => [w.value && je(d) && !Pe(u) && Ve(u) && (!Le(u) || Be(u)) ? (A(), q("div", {
|
|
13373
13425
|
key: `loading-info-${u.id}`,
|
|
13374
13426
|
class: "pk-chatbot-message__loading-info"
|
|
13375
13427
|
}, [H("div", Ph, [
|
|
@@ -13378,27 +13430,27 @@ var xh = ["aria-busy"], Sh = {
|
|
|
13378
13430
|
class: "shrink-0"
|
|
13379
13431
|
}),
|
|
13380
13432
|
Y(K, { mode: "out-in" }, {
|
|
13381
|
-
default: C(() => [
|
|
13382
|
-
key:
|
|
13433
|
+
default: C(() => [Oe.value ? (A(), V(r, {
|
|
13434
|
+
key: Oe.value,
|
|
13383
13435
|
class: "shrink-0",
|
|
13384
|
-
name:
|
|
13436
|
+
name: Oe.value
|
|
13385
13437
|
}, null, 8, ["name"])) : I("", !0)]),
|
|
13386
13438
|
_: 1
|
|
13387
13439
|
}),
|
|
13388
13440
|
Y(K, { mode: "out-in" }, {
|
|
13389
|
-
default: C(() => [
|
|
13390
|
-
key:
|
|
13441
|
+
default: C(() => [De.value ? (A(), q("span", {
|
|
13442
|
+
key: De.value,
|
|
13391
13443
|
class: "text-12"
|
|
13392
|
-
}, E(
|
|
13444
|
+
}, E(De.value), 1)) : I("", !0)]),
|
|
13393
13445
|
_: 1
|
|
13394
13446
|
})
|
|
13395
13447
|
]), Y(K, {
|
|
13396
13448
|
name: "fade-in",
|
|
13397
13449
|
mode: "out-in"
|
|
13398
13450
|
}, {
|
|
13399
|
-
default: C(() => [!
|
|
13451
|
+
default: C(() => [!Le(u) && ye.value && "text" in ye.value && ye.value.text.trim() ? (A(), V(Cm, {
|
|
13400
13452
|
key: 0,
|
|
13401
|
-
markdown:
|
|
13453
|
+
markdown: ye.value.text,
|
|
13402
13454
|
"is-dark": e.isDark,
|
|
13403
13455
|
"tail-length": N(_t),
|
|
13404
13456
|
"inner-class": "wysiwyg",
|
|
@@ -13413,14 +13465,14 @@ var xh = ["aria-busy"], Sh = {
|
|
|
13413
13465
|
_: 2
|
|
13414
13466
|
}, 1024),
|
|
13415
13467
|
Y(K, { mode: "out-in" }, {
|
|
13416
|
-
default: C(() => [
|
|
13468
|
+
default: C(() => [rt(u, d) ? (A(), q("div", Fh, [
|
|
13417
13469
|
Y(m, {
|
|
13418
13470
|
modifiers: "compact",
|
|
13419
13471
|
class: "mr-auto shrink-0"
|
|
13420
13472
|
}, {
|
|
13421
13473
|
default: C(() => [
|
|
13422
13474
|
Y(K, { mode: "out-in" }, {
|
|
13423
|
-
default: C(() => [
|
|
13475
|
+
default: C(() => [Me(d) ? (A(), V(p, {
|
|
13424
13476
|
key: 0,
|
|
13425
13477
|
icon: "ri:reset-right-line",
|
|
13426
13478
|
modifiers: "action-quiet-small",
|
|
@@ -13431,7 +13483,7 @@ var xh = ["aria-busy"], Sh = {
|
|
|
13431
13483
|
_: 2
|
|
13432
13484
|
}, 1024),
|
|
13433
13485
|
Y(K, { mode: "out-in" }, {
|
|
13434
|
-
default: C(() => [
|
|
13486
|
+
default: C(() => [Ne("show-info", d) ? (A(), V(p, {
|
|
13435
13487
|
key: 0,
|
|
13436
13488
|
icon: "ri:information-line",
|
|
13437
13489
|
title: N(i)("action.getMoreInfo"),
|
|
@@ -13446,13 +13498,13 @@ var xh = ["aria-busy"], Sh = {
|
|
|
13446
13498
|
_: 2
|
|
13447
13499
|
}, 1024),
|
|
13448
13500
|
Y(K, { mode: "out-in" }, {
|
|
13449
|
-
default: C(() => [
|
|
13501
|
+
default: C(() => [Ne("revise", d) ? (A(), V(p, {
|
|
13450
13502
|
key: 0,
|
|
13451
|
-
icon:
|
|
13452
|
-
title:
|
|
13453
|
-
"aria-label":
|
|
13503
|
+
icon: ue(u.id) ? "ri:file-edit-fill" : "ri:file-edit-line",
|
|
13504
|
+
title: ue(u.id) ? N(i)("action.editRevise") : N(i)("action.createRevise"),
|
|
13505
|
+
"aria-label": ue(u.id) ? N(i)("action.editRevise") : N(i)("action.createRevise"),
|
|
13454
13506
|
modifiers: "action-quiet-small",
|
|
13455
|
-
class: J({ "text-brand-graphic":
|
|
13507
|
+
class: J({ "text-brand-graphic": ue(u.id) }),
|
|
13456
13508
|
onClick: ke((e) => t.$emit("revise", u), ["stop"])
|
|
13457
13509
|
}, null, 8, [
|
|
13458
13510
|
"icon",
|
|
@@ -13464,9 +13516,9 @@ var xh = ["aria-busy"], Sh = {
|
|
|
13464
13516
|
_: 2
|
|
13465
13517
|
}, 1024),
|
|
13466
13518
|
Y(K, { mode: "out-in" }, {
|
|
13467
|
-
default: C(() => [
|
|
13519
|
+
default: C(() => [fe("upvote", d) ? (A(), V(p, {
|
|
13468
13520
|
key: 0,
|
|
13469
|
-
icon:
|
|
13521
|
+
icon: de(u.id)?.vote === "upvote" ? "ri:thumb-up-fill" : "ri:thumb-up-line",
|
|
13470
13522
|
title: N(i)("action.upvote"),
|
|
13471
13523
|
"aria-label": N(i)("action.upvote"),
|
|
13472
13524
|
modifiers: "action-quiet-small",
|
|
@@ -13480,9 +13532,9 @@ var xh = ["aria-busy"], Sh = {
|
|
|
13480
13532
|
_: 2
|
|
13481
13533
|
}, 1024),
|
|
13482
13534
|
Y(K, { mode: "out-in" }, {
|
|
13483
|
-
default: C(() => [
|
|
13535
|
+
default: C(() => [fe("downvote", d) ? (A(), V(p, {
|
|
13484
13536
|
key: 0,
|
|
13485
|
-
icon:
|
|
13537
|
+
icon: de(u.id)?.vote === "downvote" ? "ri:thumb-down-fill" : "ri:thumb-down-line",
|
|
13486
13538
|
title: N(i)("action.downvote"),
|
|
13487
13539
|
"aria-label": N(i)("action.downvote"),
|
|
13488
13540
|
modifiers: "action-quiet-small",
|
|
@@ -13496,9 +13548,9 @@ var xh = ["aria-busy"], Sh = {
|
|
|
13496
13548
|
_: 2
|
|
13497
13549
|
}, 1024),
|
|
13498
13550
|
Y(K, { mode: "out-in" }, {
|
|
13499
|
-
default: C(() => [
|
|
13551
|
+
default: C(() => [fe("feedback", d) ? (A(), V(p, {
|
|
13500
13552
|
key: 0,
|
|
13501
|
-
icon:
|
|
13553
|
+
icon: de(u.id)?.comment ? "ri:feedback-fill" : "ri:feedback-line",
|
|
13502
13554
|
title: N(i)("action.feedback"),
|
|
13503
13555
|
"aria-label": N(i)("action.feedback"),
|
|
13504
13556
|
modifiers: "action-quiet-small",
|
|
@@ -13521,15 +13573,15 @@ var xh = ["aria-busy"], Sh = {
|
|
|
13521
13573
|
}, [Y(r, {
|
|
13522
13574
|
name: "ri:time-line",
|
|
13523
13575
|
class: "shrink-0"
|
|
13524
|
-
}), H("span", Rh, E(
|
|
13576
|
+
}), H("span", Rh, E(at(u.metadata.createdAt)), 1)], 8, Lh), ut(u) ? (A(), q("span", zh, [Y(r, {
|
|
13525
13577
|
name: "ri:hourglass-line",
|
|
13526
13578
|
class: "shrink-0"
|
|
13527
|
-
}), H("span", Bh, E(
|
|
13579
|
+
}), H("span", Bh, E(ut(u)), 1)])) : I("", !0)])) : I("", !0),
|
|
13528
13580
|
e.showMessageNumber ? (A(), q("span", {
|
|
13529
13581
|
key: 1,
|
|
13530
|
-
title: N(i)("label.messageNumber", { n:
|
|
13582
|
+
title: N(i)("label.messageNumber", { n: nt.value[d] }),
|
|
13531
13583
|
class: "text-12 text-word-3 tabular-nums"
|
|
13532
|
-
}, " #" + E(
|
|
13584
|
+
}, " #" + E(nt.value[d]), 9, Vh)) : I("", !0),
|
|
13533
13585
|
e.showMessageTokensCount && u.metadata?.totalTokens ? (A(), q("span", Hh, [Y(r, {
|
|
13534
13586
|
name: "ri:ai-generate-2-line",
|
|
13535
13587
|
class: "shrink-0"
|
|
@@ -13558,7 +13610,7 @@ var xh = ["aria-busy"], Sh = {
|
|
|
13558
13610
|
key: 0,
|
|
13559
13611
|
ref_for: !0,
|
|
13560
13612
|
ref_key: "feedbackMessageEl",
|
|
13561
|
-
ref:
|
|
13613
|
+
ref: dt,
|
|
13562
13614
|
loading: e.feedbackLoading,
|
|
13563
13615
|
submitted: e.feedbackSubmitted,
|
|
13564
13616
|
error: e.feedbackError,
|
|
@@ -13575,12 +13627,13 @@ var xh = ["aria-busy"], Sh = {
|
|
|
13575
13627
|
], 64))), 128)),
|
|
13576
13628
|
Y(K, {
|
|
13577
13629
|
appear: "",
|
|
13578
|
-
name: "pk-chatbot-part"
|
|
13630
|
+
name: "pk-chatbot-part",
|
|
13631
|
+
onLeave: Ee
|
|
13579
13632
|
}, {
|
|
13580
|
-
default: C(() => [
|
|
13633
|
+
default: C(() => [Ce.value ? (A(), q("div", {
|
|
13581
13634
|
key: 0,
|
|
13582
13635
|
class: "pk-chatbot-message pk-chatbot-message--assistant pk-chatbot-message--loading",
|
|
13583
|
-
style: re({ minHeight:
|
|
13636
|
+
style: re({ minHeight: we.value ? `${T.value}px` : void 0 })
|
|
13584
13637
|
}, [H("div", qh, [H("div", Jh, [Y(r, {
|
|
13585
13638
|
name: "loading-loop",
|
|
13586
13639
|
class: "shrink-0"
|
|
@@ -13591,7 +13644,7 @@ var xh = ["aria-busy"], Sh = {
|
|
|
13591
13644
|
appear: "",
|
|
13592
13645
|
name: "pk-chatbot-part"
|
|
13593
13646
|
}, {
|
|
13594
|
-
default: C(() => [
|
|
13647
|
+
default: C(() => [Se.value ? (A(), V(Rp, {
|
|
13595
13648
|
key: 0,
|
|
13596
13649
|
error: e.error,
|
|
13597
13650
|
onRetry: n[3] ||= (e) => t.$emit("auto-retry"),
|
|
@@ -13599,7 +13652,7 @@ var xh = ["aria-busy"], Sh = {
|
|
|
13599
13652
|
}, null, 8, ["error"])) : I("", !0)]),
|
|
13600
13653
|
_: 1
|
|
13601
13654
|
}),
|
|
13602
|
-
|
|
13655
|
+
ve.value?.role === "user" && !we.value || Se.value ? (A(), q("div", {
|
|
13603
13656
|
key: 0,
|
|
13604
13657
|
class: "pk-chatbot-messages__spacer",
|
|
13605
13658
|
style: re({ minHeight: `${T.value}px` })
|
|
@@ -13813,9 +13866,9 @@ var og = { class: "pk-chatbot-input" }, sg = {
|
|
|
13813
13866
|
onDrop: (e) => {
|
|
13814
13867
|
M.value && e && O(e);
|
|
13815
13868
|
}
|
|
13816
|
-
}), pe = G(!0),
|
|
13869
|
+
}), pe = G(!0), L = () => {
|
|
13817
13870
|
pe.value = !1;
|
|
13818
|
-
},
|
|
13871
|
+
}, z = W(() => a.attachmentNotice ? {
|
|
13819
13872
|
id: "limit",
|
|
13820
13873
|
icon: "ri:information-line",
|
|
13821
13874
|
text: a.attachmentNotice,
|
|
@@ -13823,13 +13876,13 @@ var og = { class: "pk-chatbot-input" }, sg = {
|
|
|
13823
13876
|
} : a.dismissableNotice && pe.value ? {
|
|
13824
13877
|
id: "dismissable",
|
|
13825
13878
|
markdown: a.dismissableNotice,
|
|
13826
|
-
dismiss:
|
|
13827
|
-
} : null),
|
|
13879
|
+
dismiss: L
|
|
13880
|
+
} : null), me = () => {
|
|
13828
13881
|
l.value?.querySelector("button:focus-visible") && o.value?.focus();
|
|
13829
13882
|
}, he = () => {
|
|
13830
|
-
|
|
13883
|
+
me(), i("stop-generation");
|
|
13831
13884
|
}, ge = () => {
|
|
13832
|
-
ee.value && (
|
|
13885
|
+
ee.value && (me(), p(), i("submit"), u.value = "", n.value = "", le(() => {
|
|
13833
13886
|
o.value && (o.value.value = "", ng.update(o.value));
|
|
13834
13887
|
}));
|
|
13835
13888
|
}, _e = (e) => {
|
|
@@ -13842,28 +13895,28 @@ var og = { class: "pk-chatbot-input" }, sg = {
|
|
|
13842
13895
|
for (let e of r.value) URL.revokeObjectURL(e.localUrl);
|
|
13843
13896
|
}), (t, n) => {
|
|
13844
13897
|
let a = sn, d = ln, f = en, p = cn;
|
|
13845
|
-
return A(), q("div", og, [
|
|
13846
|
-
key:
|
|
13898
|
+
return A(), q("div", og, [z.value ? (A(), q("div", {
|
|
13899
|
+
key: z.value.id,
|
|
13847
13900
|
class: "pk-chatbot-input__notice",
|
|
13848
13901
|
role: "status"
|
|
13849
13902
|
}, [
|
|
13850
|
-
|
|
13903
|
+
z.value.icon ? (A(), V(a, {
|
|
13851
13904
|
key: 0,
|
|
13852
|
-
name:
|
|
13905
|
+
name: z.value.icon,
|
|
13853
13906
|
class: "pk-chatbot-input__notice-icon"
|
|
13854
13907
|
}, null, 8, ["name"])) : I("", !0),
|
|
13855
|
-
|
|
13908
|
+
z.value.markdown ? (A(), V(yt, {
|
|
13856
13909
|
key: 1,
|
|
13857
|
-
markdown:
|
|
13910
|
+
markdown: z.value.markdown,
|
|
13858
13911
|
class: "wysiwyg pk-chatbot-input__notice-text"
|
|
13859
|
-
}, null, 8, ["markdown"])) : (A(), q("span", sg, E(
|
|
13860
|
-
|
|
13912
|
+
}, null, 8, ["markdown"])) : (A(), q("span", sg, E(z.value.text), 1)),
|
|
13913
|
+
z.value.dismiss ? (A(), V(d, {
|
|
13861
13914
|
key: 3,
|
|
13862
13915
|
title: t.$t("action.close"),
|
|
13863
13916
|
modifiers: "action-quiet",
|
|
13864
13917
|
icon: "ri:close-line",
|
|
13865
13918
|
class: "w-18 h-18",
|
|
13866
|
-
onClick: n[0] ||= (e) =>
|
|
13919
|
+
onClick: n[0] ||= (e) => z.value.dismiss()
|
|
13867
13920
|
}, null, 8, ["title"])) : I("", !0)
|
|
13868
13921
|
])) : I("", !0), H("form", {
|
|
13869
13922
|
ref_key: "formEl",
|
|
@@ -13923,7 +13976,7 @@ var og = { class: "pk-chatbot-input" }, sg = {
|
|
|
13923
13976
|
default: C(() => [Y(a, {
|
|
13924
13977
|
name: "ri:camera-line",
|
|
13925
13978
|
class: "pk-chatbot-input__dropdown-icon"
|
|
13926
|
-
}),
|
|
13979
|
+
}), R(" " + E(t.$t("action.takePhoto")), 1)]),
|
|
13927
13980
|
_: 1
|
|
13928
13981
|
}, 8, ["disabled"])) : I("", !0),
|
|
13929
13982
|
Y(f, {
|
|
@@ -13933,7 +13986,7 @@ var og = { class: "pk-chatbot-input" }, sg = {
|
|
|
13933
13986
|
default: C(() => [Y(a, {
|
|
13934
13987
|
name: "ri:attachment-line",
|
|
13935
13988
|
class: "pk-chatbot-input__dropdown-icon"
|
|
13936
|
-
}),
|
|
13989
|
+
}), R(" " + E(t.$t("action.attachFile")), 1)]),
|
|
13937
13990
|
_: 1
|
|
13938
13991
|
}, 8, ["disabled"]),
|
|
13939
13992
|
te(t.$slots, "additional-actions")
|
|
@@ -13985,7 +14038,7 @@ var og = { class: "pk-chatbot-input" }, sg = {
|
|
|
13985
14038
|
key: 4,
|
|
13986
14039
|
id: N(y),
|
|
13987
14040
|
class: J(["pk-chatbot-input__counter", { "pk-chatbot-input__counter--over": x.value }])
|
|
13988
|
-
}, [
|
|
14041
|
+
}, [R(E(t.$n(b.value, "integer")) + "/", 1), H("span", _g, E(t.$n(e.maxMessageLength, "integer")), 1)], 10, gg)) : I("", !0),
|
|
13989
14042
|
e.voiceEnabled && !g.value ? (A(), V(ag, {
|
|
13990
14043
|
key: 5,
|
|
13991
14044
|
icon: "ri:mic-line",
|
|
@@ -14153,7 +14206,7 @@ var wg = {
|
|
|
14153
14206
|
"sample",
|
|
14154
14207
|
"spectrum"
|
|
14155
14208
|
])),
|
|
14156
|
-
H("div", Tg, [H("span", { class: J(["pk-voice-session__state", l.value && `pk-voice-session__state--${l.value}`]) }, [c.value ? (A(), q("span", Eg)) : I("", !0),
|
|
14209
|
+
H("div", Tg, [H("span", { class: J(["pk-voice-session__state", l.value && `pk-voice-session__state--${l.value}`]) }, [c.value ? (A(), q("span", Eg)) : I("", !0), R(" " + E(a.value), 1)], 2), e.error ? (A(), q("p", {
|
|
14157
14210
|
key: 0,
|
|
14158
14211
|
class: "pk-voice-session__detail",
|
|
14159
14212
|
title: e.rawError ?? e.error
|
|
@@ -14451,7 +14504,7 @@ var Vg = { class: "pk-chatbot-view-chat__input-stage" }, Hg = {
|
|
|
14451
14504
|
},
|
|
14452
14505
|
emits: ["show-info", "revise"],
|
|
14453
14506
|
setup(e, { emit: t }) {
|
|
14454
|
-
let n = M(() => import("./_chunks/PkToolShowForm-D_2FmDwq.js")), r = M(() => import("./_chunks/PkToolShowContactForm-CW7gKQ7h.js")), i = M(() => import("./_chunks/PkToolShowSuggestedReply-xUBuqStM.js")), a = M(() => import("./_chunks/PkToolShowSources-DyzheirE.js")), o = M(() => import("./_chunks/PkToolRequestGeolocation-DzhrY8bg.js")), s = M(() => import("./_chunks/PkToolRequestOAuthConnection-CzRKRGoG.js")), c = M(() => import("./_chunks/PkToolShowLocation-jRZtqoBO.js")), l = M(() => import("./_chunks/PkToolShowDiagram-WregKAJO.js")), u = M(() => import("./_chunks/PkToolEditSpreadsheet-Ct9pdQJ1.js")), d = e, f = t, p = Ld(d.agentId), { agentInterface: m, agentFileUpload: h, agentType: g, agentVoice: _, actions: v, revisedAnswers: y, messages: b, chat: x, messageFeedbacks: S, feedbackDialogMessage: ee, isFeedbackSubmitting: te, isFeedbackSubmitted: w, feedbackSubmitError: T, isLeadSubmitted: ne, isLoadingSubmitLead: D, submitLeadError: re, input: ie, inputMessagePlaceholder: ae, isConversationBlocked: oe, baseUrl: O, pendingAttachments: se, isAttachmentLimitReached: ce, fileLimitError: le, apiClient: j, isDark: de } = Xn(p), P = W(() => g.value === "reasoning" ? void 0 : h.value), fe = (e) => j.value.getMediaDownloadUrl(d.agentId, p.localChatId, e), { handleSubmit: pe, stopGeneration:
|
|
14507
|
+
let n = M(() => import("./_chunks/PkToolShowForm-D_2FmDwq.js")), r = M(() => import("./_chunks/PkToolShowContactForm-CW7gKQ7h.js")), i = M(() => import("./_chunks/PkToolShowSuggestedReply-xUBuqStM.js")), a = M(() => import("./_chunks/PkToolShowSources-DyzheirE.js")), o = M(() => import("./_chunks/PkToolRequestGeolocation-DzhrY8bg.js")), s = M(() => import("./_chunks/PkToolRequestOAuthConnection-CzRKRGoG.js")), c = M(() => import("./_chunks/PkToolShowLocation-jRZtqoBO.js")), l = M(() => import("./_chunks/PkToolShowDiagram-WregKAJO.js")), u = M(() => import("./_chunks/PkToolEditSpreadsheet-Ct9pdQJ1.js")), d = e, f = t, p = Ld(d.agentId), { agentInterface: m, agentFileUpload: h, agentType: g, agentVoice: _, actions: v, revisedAnswers: y, messages: b, chat: x, messageFeedbacks: S, feedbackDialogMessage: ee, isFeedbackSubmitting: te, isFeedbackSubmitted: w, feedbackSubmitError: T, isLeadSubmitted: ne, isLoadingSubmitLead: D, submitLeadError: re, input: ie, inputMessagePlaceholder: ae, isConversationBlocked: oe, baseUrl: O, pendingAttachments: se, isAttachmentLimitReached: ce, fileLimitError: le, apiClient: j, isDark: de } = Xn(p), P = W(() => g.value === "reasoning" ? void 0 : h.value), fe = (e) => j.value.getMediaDownloadUrl(d.agentId, p.localChatId, e), { handleSubmit: pe, stopGeneration: L, regenerate: R, onUpvote: z, onDownvote: B, onFeedback: he, onFeedbackSubmit: ge, onLeadSubmit: _e, startNewChat: U, addToolOutput: ve, addToolApprovalResponse: ye, handleFileSelect: be, clearFileLimitError: xe, refreshMessages: Se, appendMessage: Ce } = p, { t: we } = Re({ useScope: "global" }), Te = W(() => {
|
|
14455
14508
|
let e = le.value;
|
|
14456
14509
|
if (e) return e.reason === "per-chat" ? we("message.fileLimitPerChat", { max: e.max }) : we("message.fileLimitPerMessage", { max: e.max });
|
|
14457
14510
|
}), Ee = un(() => m.value?.dismissableNotice), De = W(() => b.value.some((e) => e.role === "user")), Oe = W(() => d.modifier === "fullscreen" && !De.value), ke = Yd(m, () => d.userName), Ae = k("chatViewEl"), je = async (e) => (await j.value.expandSourceContext(d.agentId, e.documentId, e.chunkIndex)).content, Me = async (e) => {
|
|
@@ -14631,12 +14684,12 @@ var Vg = { class: "pk-chatbot-view-chat__input-stage" }, Hg = {
|
|
|
14631
14684
|
"show-scroll-to-bottom": e.modifier === "fullscreen",
|
|
14632
14685
|
onFeedbackSubmit: h[0] ||= (e) => N(ge)(e),
|
|
14633
14686
|
onFeedbackClose: h[1] ||= (e) => ee.value = void 0,
|
|
14634
|
-
onRegenerate: N(
|
|
14635
|
-
onAutoRetry: N(
|
|
14687
|
+
onRegenerate: N(R),
|
|
14688
|
+
onAutoRetry: N(R),
|
|
14636
14689
|
onResetChat: N(U),
|
|
14637
14690
|
onShowInfo: h[2] ||= (e) => f("show-info", e),
|
|
14638
14691
|
onRevise: h[3] ||= (e) => f("revise", e),
|
|
14639
|
-
onUpvote: N(
|
|
14692
|
+
onUpvote: N(z),
|
|
14640
14693
|
onDownvote: N(B),
|
|
14641
14694
|
onFeedback: N(he),
|
|
14642
14695
|
onApprovalRespond: N(ye),
|
|
@@ -14788,9 +14841,9 @@ var Vg = { class: "pk-chatbot-view-chat__input-stage" }, Hg = {
|
|
|
14788
14841
|
N(oe) ? (A(), q("div", Hg, E(N(we)("message.chatErrorConversationBlocked")), 1)) : Ze.value === "idle" ? (A(), V(vg, {
|
|
14789
14842
|
key: 3,
|
|
14790
14843
|
modelValue: N(ie),
|
|
14791
|
-
"onUpdate:modelValue": h[4] ||= (e) =>
|
|
14844
|
+
"onUpdate:modelValue": h[4] ||= (e) => me(ie) ? ie.value = e : null,
|
|
14792
14845
|
"pending-attachments": N(se),
|
|
14793
|
-
"onUpdate:pendingAttachments": h[5] ||= (e) =>
|
|
14846
|
+
"onUpdate:pendingAttachments": h[5] ||= (e) => me(se) ? se.value = e : null,
|
|
14794
14847
|
placeholder: N(ae),
|
|
14795
14848
|
"dismissable-notice": N(Ee) && N(x).messages.length <= 1 ? N(Ee) : void 0,
|
|
14796
14849
|
status: N(x).status,
|
|
@@ -14799,7 +14852,7 @@ var Vg = { class: "pk-chatbot-view-chat__input-stage" }, Hg = {
|
|
|
14799
14852
|
"attachment-limit-reached": N(ce),
|
|
14800
14853
|
"attachment-notice": Te.value,
|
|
14801
14854
|
"voice-enabled": Xe.value,
|
|
14802
|
-
onStopGeneration: N(
|
|
14855
|
+
onStopGeneration: N(L),
|
|
14803
14856
|
onSubmit: N(pe),
|
|
14804
14857
|
onFileSelect: N(be),
|
|
14805
14858
|
onDismissAttachmentNotice: N(xe),
|
|
@@ -14936,7 +14989,7 @@ var Zg = { class: "flex flex-col flex-1 min-h-0 relative" }, Qg = {
|
|
|
14936
14989
|
class: J(["vv-item vv-item--roomy", { "vv-item--current": y(e) }])
|
|
14937
14990
|
}, [N(d) === e.id ? (A(), q("div", l_, [Y(s, {
|
|
14938
14991
|
modelValue: N(f),
|
|
14939
|
-
"onUpdate:modelValue": t[1] ||= (e) =>
|
|
14992
|
+
"onUpdate:modelValue": t[1] ||= (e) => me(f) ? f.value = e : null,
|
|
14940
14993
|
class: "flex-1 mb-0",
|
|
14941
14994
|
modifiers: "compact",
|
|
14942
14995
|
autofocus: "",
|
|
@@ -14979,10 +15032,10 @@ var Zg = { class: "flex flex-col flex-1 min-h-0 relative" }, Qg = {
|
|
|
14979
15032
|
strategy: "fixed"
|
|
14980
15033
|
}), {
|
|
14981
15034
|
items: C(() => [Y(u, { onClick: (t) => x(e) }, {
|
|
14982
|
-
default: C(() => [Y(r, { name: "ri:pencil-line" }),
|
|
15035
|
+
default: C(() => [Y(r, { name: "ri:pencil-line" }), R(" " + E(N(n)("action.renameChat")), 1)]),
|
|
14983
15036
|
_: 1
|
|
14984
15037
|
}, 8, ["onClick"]), Y(u, { onClick: (t) => N(_)(e.id) }, {
|
|
14985
|
-
default: C(() => [Y(r, { name: "ri:delete-bin-line" }),
|
|
15038
|
+
default: C(() => [Y(r, { name: "ri:delete-bin-line" }), R(" " + E(N(n)("action.delete")), 1)]),
|
|
14986
15039
|
_: 1
|
|
14987
15040
|
}, 8, ["onClick"])]),
|
|
14988
15041
|
default: C(() => [Y(o, {
|
|
@@ -15235,7 +15288,7 @@ var Y_ = { class: "pk-chatbot__header-start" }, X_ = ["title"], Z_ = { key: 1 },
|
|
|
15235
15288
|
o("error", t);
|
|
15236
15289
|
} catch {}
|
|
15237
15290
|
});
|
|
15238
|
-
let w = W(() => a.modifier === "fullscreen"), T = W(() => a.modifier === "panel"), ne = k("chatbotEl"), { width: D } = Qt(ne), ie = W(() => D.value > 0 && D.value < 576), ae = W(() => D.value > 0 && D.value < 640), oe = W(() => D.value >= 848), O = W(() => a.agentType === "reasoning"), le = W(() => O.value && !l.value.some((e) => e.role === "user")), j = W(() => a.agentInterface?.useColorsForAgentHeader), ue = W(() => !T.value || S.value || ee.value || !!a.userFilesEnabled && !!d.value), de = W(() => ["theme", `theme--${m.value ? "dark" : "light"}`]), M = W(() => a.agentInterface?.mainColor),
|
|
15291
|
+
let w = W(() => a.modifier === "fullscreen"), T = W(() => a.modifier === "panel"), ne = k("chatbotEl"), { width: D } = Qt(ne), ie = W(() => D.value > 0 && D.value < 576), ae = W(() => D.value > 0 && D.value < 640), oe = W(() => D.value >= 848), O = W(() => a.agentType === "reasoning"), le = W(() => O.value && !l.value.some((e) => e.role === "user")), j = W(() => a.agentInterface?.useColorsForAgentHeader), ue = W(() => !T.value || S.value || ee.value || !!a.userFilesEnabled && !!d.value), de = W(() => ["theme", `theme--${m.value ? "dark" : "light"}`]), M = W(() => a.agentInterface?.mainColor), L = W(() => Ke(a.agentInterface?.textColor, M.value)), z = W(() => rt(M.value, L.value)), me = un(() => a.agentInterface?.footerMessage), he = W(() => f.value === "conversations" ? i("label.conversations") : f.value === "profile" ? i("label.profile") : f.value === "auth" ? i("label.authentication") : f.value === "files" ? i("userFiles.chatFilesTitle") : a.name), ge = W(() => u.value.status === "ready"), _e = W(() => l.value?.[l.value.length - 1]);
|
|
15239
15292
|
return t({
|
|
15240
15293
|
startNewChat: g,
|
|
15241
15294
|
regenerate: v,
|
|
@@ -15262,7 +15315,7 @@ var Y_ = { class: "pk-chatbot__header-start" }, X_ = ["title"], Z_ = { key: 1 },
|
|
|
15262
15315
|
"pk-chatbot--tight": ae.value,
|
|
15263
15316
|
"pk-chatbot--wide": oe.value
|
|
15264
15317
|
}]]),
|
|
15265
|
-
style: re(
|
|
15318
|
+
style: re(z.value)
|
|
15266
15319
|
}, [
|
|
15267
15320
|
w.value ? I("", !0) : (A(), q("div", {
|
|
15268
15321
|
key: 0,
|
|
@@ -15275,17 +15328,17 @@ var Y_ = { class: "pk-chatbot__header-start" }, X_ = ["title"], Z_ = { key: 1 },
|
|
|
15275
15328
|
name: e.name,
|
|
15276
15329
|
"img-src": e.agentInterface?.logo
|
|
15277
15330
|
}, null, 8, ["name", "img-src"])) : (A(), q(B, { key: 0 }, [Y(a, ce({
|
|
15278
|
-
modifiers: j.value ? `action-quiet-${
|
|
15331
|
+
modifiers: j.value ? `action-quiet-${L.value}` : "action-quiet",
|
|
15279
15332
|
icon: "ri:arrow-left-s-line",
|
|
15280
15333
|
title: N(i)("action.goBack")
|
|
15281
15334
|
}, { onClick: n[0] ||= (e) => N(y)("chat") }), null, 16), Y(s, {
|
|
15282
15335
|
name: N(f) === "conversations" ? "ri:history-line" : N(f) === "files" ? "ri:attachment-2" : "ri:user-line",
|
|
15283
15336
|
class: "pk-chatbot__nav-icon",
|
|
15284
|
-
style: re(j.value ? { color:
|
|
15337
|
+
style: re(j.value ? { color: L.value } : void 0)
|
|
15285
15338
|
}, null, 8, ["name", "style"])], 64)), H("strong", {
|
|
15286
15339
|
class: "pk-chatbot__title",
|
|
15287
15340
|
title: he.value,
|
|
15288
|
-
style: re(j.value ? { color:
|
|
15341
|
+
style: re(j.value ? { color: L.value } : void 0)
|
|
15289
15342
|
}, E(he.value), 13, X_)]), Y(u, {
|
|
15290
15343
|
class: "pk-chatbot__header-end",
|
|
15291
15344
|
modifiers: "compact"
|
|
@@ -15294,12 +15347,12 @@ var Y_ = { class: "pk-chatbot__header-start" }, X_ = ["title"], Z_ = { key: 1 },
|
|
|
15294
15347
|
te(t.$slots, "header-actions", fe(P({
|
|
15295
15348
|
mainColor: M.value,
|
|
15296
15349
|
useColorsForAgentHeader: j.value,
|
|
15297
|
-
contrastColor:
|
|
15350
|
+
contrastColor: L.value,
|
|
15298
15351
|
startNewChat: N(g),
|
|
15299
15352
|
stopGeneration: N(_)
|
|
15300
15353
|
}))),
|
|
15301
15354
|
T.value ? (A(), q(B, { key: 0 }, [Y(a, {
|
|
15302
|
-
modifiers: j.value ? `action-quiet-${
|
|
15355
|
+
modifiers: j.value ? `action-quiet-${L.value}` : "action-quiet",
|
|
15303
15356
|
icon: "ri:edit-box-line",
|
|
15304
15357
|
disabled: !ge.value,
|
|
15305
15358
|
title: N(i)("action.startNewChat"),
|
|
@@ -15310,7 +15363,7 @@ var Y_ = { class: "pk-chatbot__header-start" }, X_ = ["title"], Z_ = { key: 1 },
|
|
|
15310
15363
|
"title"
|
|
15311
15364
|
]), O.value ? I("", !0) : (A(), V(a, {
|
|
15312
15365
|
key: 0,
|
|
15313
|
-
modifiers: j.value ? `action-quiet-${
|
|
15366
|
+
modifiers: j.value ? `action-quiet-${L.value}` : "action-quiet",
|
|
15314
15367
|
icon: "ri:history-line",
|
|
15315
15368
|
disabled: !ge.value,
|
|
15316
15369
|
title: N(i)("action.viewRecentChats"),
|
|
@@ -15332,39 +15385,39 @@ var Y_ = { class: "pk-chatbot__header-start" }, X_ = ["title"], Z_ = { key: 1 },
|
|
|
15332
15385
|
key: 0,
|
|
15333
15386
|
onClick: n[3] ||= (e) => N(g)()
|
|
15334
15387
|
}, {
|
|
15335
|
-
default: C(() => [Y(s, { name: "ri:edit-box-line" }),
|
|
15388
|
+
default: C(() => [Y(s, { name: "ri:edit-box-line" }), R(" " + E(N(i)("action.startNewChat")), 1)]),
|
|
15336
15389
|
_: 1
|
|
15337
15390
|
})),
|
|
15338
15391
|
!O.value && !T.value ? (A(), V(c, {
|
|
15339
15392
|
key: 1,
|
|
15340
15393
|
onClick: n[4] ||= (e) => N(y)("conversations")
|
|
15341
15394
|
}, {
|
|
15342
|
-
default: C(() => [Y(s, { name: "ri:history-line" }),
|
|
15395
|
+
default: C(() => [Y(s, { name: "ri:history-line" }), R(" " + E(N(i)("action.viewRecentChats")), 1)]),
|
|
15343
15396
|
_: 1
|
|
15344
15397
|
})) : I("", !0),
|
|
15345
15398
|
(S.value || e.userFilesEnabled) && N(d) ? (A(), V(c, {
|
|
15346
15399
|
key: 2,
|
|
15347
15400
|
onClick: n[5] ||= (e) => N(y)("files")
|
|
15348
15401
|
}, {
|
|
15349
|
-
default: C(() => [Y(s, { name: "ri:attachment-2" }),
|
|
15402
|
+
default: C(() => [Y(s, { name: "ri:attachment-2" }), R(" " + E(N(i)("userFiles.chatFilesTitle")), 1)]),
|
|
15350
15403
|
_: 1
|
|
15351
15404
|
})) : I("", !0),
|
|
15352
15405
|
S.value ? (A(), V(c, {
|
|
15353
15406
|
key: 3,
|
|
15354
15407
|
onClick: n[6] ||= (e) => N(y)("profile")
|
|
15355
15408
|
}, {
|
|
15356
|
-
default: C(() => [Y(s, { name: "ri:user-line" }),
|
|
15409
|
+
default: C(() => [Y(s, { name: "ri:user-line" }), R(" " + E(N(i)("label.profile")), 1)]),
|
|
15357
15410
|
_: 1
|
|
15358
15411
|
})) : ee.value ? (A(), V(c, {
|
|
15359
15412
|
key: 4,
|
|
15360
15413
|
onClick: n[7] ||= (e) => N(y)("auth")
|
|
15361
15414
|
}, {
|
|
15362
|
-
default: C(() => [Y(s, { name: "ri:account-circle-line" }),
|
|
15415
|
+
default: C(() => [Y(s, { name: "ri:account-circle-line" }), R(" " + E(N(i)("action.signIn")), 1)]),
|
|
15363
15416
|
_: 1
|
|
15364
15417
|
})) : I("", !0)
|
|
15365
15418
|
]),
|
|
15366
15419
|
default: C(() => [Y(a, fe(P({
|
|
15367
|
-
modifiers: j.value ? `action-quiet-${
|
|
15420
|
+
modifiers: j.value ? `action-quiet-${L.value}` : "action-quiet",
|
|
15368
15421
|
icon: "ri:more-2-fill",
|
|
15369
15422
|
disabled: !ge.value,
|
|
15370
15423
|
title: N(i)("action.moreActions")
|
|
@@ -15374,7 +15427,7 @@ var Y_ = { class: "pk-chatbot__header-start" }, X_ = ["title"], Z_ = { key: 1 },
|
|
|
15374
15427
|
te(t.$slots, "actions", fe(P({
|
|
15375
15428
|
mainColor: M.value,
|
|
15376
15429
|
useColorsForAgentHeader: j.value,
|
|
15377
|
-
contrastColor:
|
|
15430
|
+
contrastColor: L.value,
|
|
15378
15431
|
startNewChat: N(g),
|
|
15379
15432
|
stopGeneration: N(_)
|
|
15380
15433
|
})))
|
|
@@ -15418,8 +15471,8 @@ var Y_ = { class: "pk-chatbot__header-start" }, X_ = ["title"], Z_ = { key: 1 },
|
|
|
15418
15471
|
name: e,
|
|
15419
15472
|
fn: C((n) => [te(t.$slots, e, fe(P(n)))])
|
|
15420
15473
|
}))]), 1032, ["agent-id"])),
|
|
15421
|
-
N(
|
|
15422
|
-
markdown: N(
|
|
15474
|
+
N(me) ? (A(), q("div", rv, [Y(yt, {
|
|
15475
|
+
markdown: N(me),
|
|
15423
15476
|
class: "wysiwyg"
|
|
15424
15477
|
}, null, 8, ["markdown"])])) : I("", !0)
|
|
15425
15478
|
], 6);
|
|
@@ -15564,7 +15617,7 @@ var av = { class: "pk-chatbot-auth flex flex-col items-center justify-center w-f
|
|
|
15564
15617
|
onError: r[0] ||= (t) => N(c)(e.branding?.interface.logo)
|
|
15565
15618
|
}, null, 40, pv)])) : I("", !0),
|
|
15566
15619
|
H("div", mv, [e.branding?.name ? (A(), q("h1", hv, E(e.branding.name), 1)) : I("", !0), (A(), V(oe(e.branding?.name ? "h2" : "h1"), { class: "text-word-3 mb-0" }, {
|
|
15567
|
-
default: C(() => [O.value ? (A(), q(B, { key: 0 }, [
|
|
15620
|
+
default: C(() => [O.value ? (A(), q(B, { key: 0 }, [R(E(N(n)("twoFactor.challengeTitle")), 1)], 64)) : f.value === "sign-in" ? (A(), q(B, { key: 1 }, [R(E(N(n)("auth.signInTitle")), 1)], 64)) : f.value === "sign-up" ? (A(), q(B, { key: 2 }, [R(E(N(n)("auth.signUpTitle")), 1)], 64)) : f.value === "reset" ? (A(), q(B, { key: 3 }, [R(E(N(n)("auth.resetTitle")), 1)], 64)) : I("", !0)]),
|
|
15568
15621
|
_: 1
|
|
15569
15622
|
}))]),
|
|
15570
15623
|
l.value ? (A(), V(s, {
|
|
@@ -15769,13 +15822,13 @@ var av = { class: "pk-chatbot-auth flex flex-col items-center justify-center w-f
|
|
|
15769
15822
|
icon: "chevron-left",
|
|
15770
15823
|
label: N(n)("action.backToSignIn"),
|
|
15771
15824
|
onClick: r[7] ||= (e) => d("cancel-two-factor")
|
|
15772
|
-
}, null, 8, ["label"])) : f.value === "sign-in" ? (A(), q(B, { key: 1 }, [
|
|
15825
|
+
}, null, 8, ["label"])) : f.value === "sign-in" ? (A(), q(B, { key: 1 }, [R(E(N(n)("auth.noAccount")) + " ", 1), Y(o, {
|
|
15773
15826
|
type: "button",
|
|
15774
15827
|
modifiers: "link",
|
|
15775
15828
|
class: "font-semibold",
|
|
15776
15829
|
label: N(n)("action.signUp"),
|
|
15777
15830
|
onClick: r[8] ||= (e) => f.value = "sign-up"
|
|
15778
|
-
}, null, 8, ["label"])], 64)) : f.value === "sign-up" ? (A(), q(B, { key: 2 }, [
|
|
15831
|
+
}, null, 8, ["label"])], 64)) : f.value === "sign-up" ? (A(), q(B, { key: 2 }, [R(E(N(n)("auth.haveAccount")) + " ", 1), Y(o, {
|
|
15779
15832
|
type: "button",
|
|
15780
15833
|
modifiers: "link",
|
|
15781
15834
|
class: "font-semibold",
|
|
@@ -16008,7 +16061,7 @@ var Mv = {
|
|
|
16008
16061
|
n.customCss
|
|
16009
16062
|
].filter(Boolean);
|
|
16010
16063
|
return e.length ? e.join("\n") : void 0;
|
|
16011
|
-
}), { authError: P, authSuccess: fe, authLoading: pe, handleSignIn:
|
|
16064
|
+
}), { authError: P, authSuccess: fe, authLoading: pe, handleSignIn: L, handleSignUp: z, handleReset: B, handleSocial: he, handleVerifyTwoFactor: ge, handleSendTwoFactorCode: _e, handleCancelTwoFactor: U } = kp({
|
|
16012
16065
|
signInWithEmail: h,
|
|
16013
16066
|
isTwoFactorPending: () => !!g.value,
|
|
16014
16067
|
verifyTwoFactor: _,
|
|
@@ -16051,11 +16104,11 @@ var Mv = {
|
|
|
16051
16104
|
style: re(N(le))
|
|
16052
16105
|
}, [
|
|
16053
16106
|
N(ie) ? (A(), V(oe("style"), { key: 0 }, {
|
|
16054
|
-
default: C(() => [
|
|
16107
|
+
default: C(() => [R(E(N(ie)), 1)]),
|
|
16055
16108
|
_: 1
|
|
16056
16109
|
})) : I("", !0),
|
|
16057
16110
|
M.value ? (A(), V(oe("style"), { key: 1 }, {
|
|
16058
|
-
default: C(() => [
|
|
16111
|
+
default: C(() => [R(E(M.value), 1)]),
|
|
16059
16112
|
_: 1
|
|
16060
16113
|
})) : I("", !0),
|
|
16061
16114
|
Y(K, { name: "slide-bottom" }, {
|
|
@@ -16081,16 +16134,16 @@ var Mv = {
|
|
|
16081
16134
|
default: C(() => [N(s) && (N(ae) || N(k)) && !(N(T) && N(l).data) ? (A(), q("div", Iv, [N(ae) ? (A(), V(Cv, {
|
|
16082
16135
|
key: 0,
|
|
16083
16136
|
"error-message": N(P),
|
|
16084
|
-
"onUpdate:errorMessage": n[0] ||= (e) =>
|
|
16137
|
+
"onUpdate:errorMessage": n[0] ||= (e) => me(P) ? P.value = e : null,
|
|
16085
16138
|
success: N(fe),
|
|
16086
|
-
"onUpdate:success": n[1] ||= (e) =>
|
|
16139
|
+
"onUpdate:success": n[1] ||= (e) => me(fe) ? fe.value = e : null,
|
|
16087
16140
|
branding: N(ne),
|
|
16088
16141
|
"auth-methods": N(D),
|
|
16089
16142
|
"base-url": e.baseUrl,
|
|
16090
16143
|
loading: N(pe),
|
|
16091
16144
|
"two-factor-methods": N(g)?.methods,
|
|
16092
|
-
onSignIn: N(
|
|
16093
|
-
onSignUp: N(
|
|
16145
|
+
onSignIn: N(L),
|
|
16146
|
+
onSignUp: N(z),
|
|
16094
16147
|
onRequestReset: N(B),
|
|
16095
16148
|
onSocial: N(he),
|
|
16096
16149
|
onVerifyTwoFactor: N(ge),
|
|
@@ -16150,15 +16203,15 @@ var Mv = {
|
|
|
16150
16203
|
}, null, 8, ["modifiers", "title"])]),
|
|
16151
16204
|
"view-auth": C(() => [Y(Cv, {
|
|
16152
16205
|
"error-message": N(P),
|
|
16153
|
-
"onUpdate:errorMessage": n[2] ||= (e) =>
|
|
16206
|
+
"onUpdate:errorMessage": n[2] ||= (e) => me(P) ? P.value = e : null,
|
|
16154
16207
|
success: N(fe),
|
|
16155
|
-
"onUpdate:success": n[3] ||= (e) =>
|
|
16208
|
+
"onUpdate:success": n[3] ||= (e) => me(fe) ? fe.value = e : null,
|
|
16156
16209
|
branding: N(ue),
|
|
16157
16210
|
"auth-methods": N(D),
|
|
16158
16211
|
loading: N(pe),
|
|
16159
16212
|
"two-factor-methods": N(g)?.methods,
|
|
16160
|
-
onSignIn: N(
|
|
16161
|
-
onSignUp: N(
|
|
16213
|
+
onSignIn: N(L),
|
|
16214
|
+
onSignUp: N(z),
|
|
16162
16215
|
onRequestReset: N(B),
|
|
16163
16216
|
onSocial: N(he),
|
|
16164
16217
|
onVerifyTwoFactor: N(ge),
|
|
@@ -16309,7 +16362,7 @@ var zv = {
|
|
|
16309
16362
|
baseUrl: n.baseUrl,
|
|
16310
16363
|
headers: l,
|
|
16311
16364
|
cookieName: n.cookieName
|
|
16312
|
-
}), { authError: ue, authSuccess: de, authLoading: M, handleSignIn: P, handleSignUp: fe, handleReset: pe, handleSocial:
|
|
16365
|
+
}), { authError: ue, authSuccess: de, authLoading: M, handleSignIn: P, handleSignUp: fe, handleReset: pe, handleSocial: L, handleVerifyTwoFactor: z, handleSendTwoFactorCode: B, handleCancelTwoFactor: he } = kp({
|
|
16313
16366
|
signInWithEmail: p,
|
|
16314
16367
|
isTwoFactorPending: () => !!m.value,
|
|
16315
16368
|
verifyTwoFactor: h,
|
|
@@ -16345,11 +16398,11 @@ var zv = {
|
|
|
16345
16398
|
style: re(N(le))
|
|
16346
16399
|
}, [
|
|
16347
16400
|
N(ie) ? (A(), V(oe("style"), { key: 0 }, {
|
|
16348
|
-
default: C(() => [
|
|
16401
|
+
default: C(() => [R(E(N(ie)), 1)]),
|
|
16349
16402
|
_: 1
|
|
16350
16403
|
})) : I("", !0),
|
|
16351
16404
|
U.value ? (A(), V(oe("style"), { key: 1 }, {
|
|
16352
|
-
default: C(() => [
|
|
16405
|
+
default: C(() => [R(E(U.value), 1)]),
|
|
16353
16406
|
_: 1
|
|
16354
16407
|
})) : I("", !0),
|
|
16355
16408
|
N(O) ? (A(), q("div", zv, [H("p", null, E(N(w)("message.agentNotFound")), 1)])) : I("", !0),
|
|
@@ -16360,9 +16413,9 @@ var zv = {
|
|
|
16360
16413
|
default: C(() => [(N(T) || N(ne)) && !N(O) && N(ae) && (!N(s).data?.user?.id || N(s).data?.user?.isAnonymous) ? (A(), q("div", Bv, [N(D) ? (A(), V(Cv, {
|
|
16361
16414
|
key: 0,
|
|
16362
16415
|
"error-message": N(ue),
|
|
16363
|
-
"onUpdate:errorMessage": n[0] ||= (e) =>
|
|
16416
|
+
"onUpdate:errorMessage": n[0] ||= (e) => me(ue) ? ue.value = e : null,
|
|
16364
16417
|
success: N(de),
|
|
16365
|
-
"onUpdate:success": n[1] ||= (e) =>
|
|
16418
|
+
"onUpdate:success": n[1] ||= (e) => me(de) ? de.value = e : null,
|
|
16366
16419
|
branding: N(ne),
|
|
16367
16420
|
"auth-methods": N(D),
|
|
16368
16421
|
loading: N(M),
|
|
@@ -16370,8 +16423,8 @@ var zv = {
|
|
|
16370
16423
|
onSignIn: N(P),
|
|
16371
16424
|
onSignUp: N(fe),
|
|
16372
16425
|
onRequestReset: N(pe),
|
|
16373
|
-
onSocial: N(
|
|
16374
|
-
onVerifyTwoFactor: N(
|
|
16426
|
+
onSocial: N(L),
|
|
16427
|
+
onVerifyTwoFactor: N(z),
|
|
16375
16428
|
onSendTwoFactorCode: N(B),
|
|
16376
16429
|
onCancelTwoFactor: N(he)
|
|
16377
16430
|
}, null, 8, [
|
|
@@ -16427,9 +16480,9 @@ var zv = {
|
|
|
16427
16480
|
actions: C(() => [te(t.$slots, "actions")]),
|
|
16428
16481
|
"view-auth": C(() => [Y(Cv, {
|
|
16429
16482
|
"error-message": N(ue),
|
|
16430
|
-
"onUpdate:errorMessage": n[2] ||= (e) =>
|
|
16483
|
+
"onUpdate:errorMessage": n[2] ||= (e) => me(ue) ? ue.value = e : null,
|
|
16431
16484
|
success: N(de),
|
|
16432
|
-
"onUpdate:success": n[3] ||= (e) =>
|
|
16485
|
+
"onUpdate:success": n[3] ||= (e) => me(de) ? de.value = e : null,
|
|
16433
16486
|
branding: N(j),
|
|
16434
16487
|
"auth-methods": N(D),
|
|
16435
16488
|
loading: N(M),
|
|
@@ -16437,8 +16490,8 @@ var zv = {
|
|
|
16437
16490
|
onSignIn: N(P),
|
|
16438
16491
|
onSignUp: N(fe),
|
|
16439
16492
|
onRequestReset: N(pe),
|
|
16440
|
-
onSocial: N(
|
|
16441
|
-
onVerifyTwoFactor: N(
|
|
16493
|
+
onSocial: N(L),
|
|
16494
|
+
onVerifyTwoFactor: N(z),
|
|
16442
16495
|
onSendTwoFactorCode: N(B),
|
|
16443
16496
|
onCancelTwoFactor: N(he)
|
|
16444
16497
|
}, null, 8, [
|