@box/box-ai-content-answers 0.50.6 → 0.51.1
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/chunks/types.js +5 -5
- package/esm/lib/components/answer/answer.js +22 -22
- package/esm/lib/components/answer/inline-error.js +37 -28
- package/esm/lib/components/answer/messages.js +6 -2
- package/esm/lib/components/api-wrapper/hooks/useContentAnswers.js +97 -95
- package/esm/lib/components/api-wrapper/utils/stream.js +41 -41
- package/esm/lib/components/common/mock-data.js +12 -5
- package/i18n/bn-IN.js +1 -0
- package/i18n/da-DK.js +1 -0
- package/i18n/de-DE.js +1 -0
- package/i18n/en-AU.js +1 -0
- package/i18n/en-CA.js +1 -0
- package/i18n/en-GB.js +1 -0
- package/i18n/en-US.js +1 -0
- package/i18n/en-US.properties +2 -0
- package/i18n/en-x-pseudo.js +1 -0
- package/i18n/es-419.js +1 -0
- package/i18n/es-ES.js +1 -0
- package/i18n/fi-FI.js +1 -0
- package/i18n/fr-CA.js +1 -0
- package/i18n/fr-FR.js +1 -0
- package/i18n/hi-IN.js +1 -0
- package/i18n/it-IT.js +1 -0
- package/i18n/ja-JP.js +1 -0
- package/i18n/json/src/lib/components/answer/messages.json +1 -1
- package/i18n/ko-KR.js +1 -0
- package/i18n/nb-NO.js +1 -0
- package/i18n/nl-NL.js +1 -0
- package/i18n/pl-PL.js +1 -0
- package/i18n/pt-BR.js +1 -0
- package/i18n/ru-RU.js +1 -0
- package/i18n/sv-SE.js +1 -0
- package/i18n/tr-TR.js +1 -0
- package/i18n/zh-CN.js +1 -0
- package/i18n/zh-TW.js +1 -0
- package/package.json +3 -3
- package/types/lib/components/answer/messages.d.ts +5 -0
- package/types/lib/types.d.ts +1 -0
- package/esm/lib/components/api-wrapper/test-utils/ReadableStreamSimulator.js +0 -38
package/chunks/types.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
let
|
|
2
|
-
return e.GENERAL = "general", e.RATE_LIMITING = "rate_limiting", e.RESPONSE_FAILED = "response_failed", e.RESPONSE_INTERRUPTED = "response_interrupted", e.RESPONSE_STOPPED = "response_stopped", e;
|
|
3
|
-
}({}),
|
|
1
|
+
let n = /* @__PURE__ */ function(e) {
|
|
2
|
+
return e.GENERAL = "general", e.RATE_LIMITING = "rate_limiting", e.NO_CONTENT = "no_content", e.RESPONSE_FAILED = "response_failed", e.RESPONSE_INTERRUPTED = "response_interrupted", e.RESPONSE_STOPPED = "response_stopped", e;
|
|
3
|
+
}({}), r = /* @__PURE__ */ function(e) {
|
|
4
4
|
return e.LARGE_FILE = "large_file", e.GENERAL = "general", e;
|
|
5
5
|
}({});
|
|
6
6
|
export {
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
n as A,
|
|
8
|
+
r as C
|
|
9
9
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { useBreakpoint as
|
|
2
|
-
import { BoxAi as
|
|
3
|
-
import { Size5 as
|
|
4
|
-
import
|
|
1
|
+
import { useBreakpoint as g, Breakpoint as x, Text as A } from "@box/blueprint-web";
|
|
2
|
+
import { BoxAi as _, AlertTriangle as L } from "@box/blueprint-web-assets/icons/Line";
|
|
3
|
+
import { Size5 as C, Size6 as k, Gray65 as y, Size4 as u } from "@box/blueprint-web-assets/tokens/tokens";
|
|
4
|
+
import z from "clsx";
|
|
5
5
|
import * as p from "react";
|
|
6
6
|
import { useIntl as D } from "react-intl";
|
|
7
7
|
import { A as r } from "../../../../chunks/types.js";
|
|
@@ -16,21 +16,21 @@ import { s as o } from "../../../../chunks/answer.module.js";
|
|
|
16
16
|
import { jsxs as n, jsx as t } from "react/jsx-runtime";
|
|
17
17
|
const ne = /* @__PURE__ */ p.memo(({
|
|
18
18
|
answer: s,
|
|
19
|
-
citations:
|
|
19
|
+
citations: R,
|
|
20
20
|
error: e,
|
|
21
21
|
handleScrollToBottom: i,
|
|
22
22
|
isCitationsEnabled: I = !1,
|
|
23
23
|
isCompleted: v = !1,
|
|
24
24
|
isLoading: P = !1,
|
|
25
|
-
isMarkdownEnabled:
|
|
25
|
+
isMarkdownEnabled: O = !1,
|
|
26
26
|
isStreamingEnabled: a = !1,
|
|
27
|
-
onCitationClick:
|
|
27
|
+
onCitationClick: w,
|
|
28
28
|
recordAction: m,
|
|
29
29
|
useAnimation: c = !0
|
|
30
30
|
}) => {
|
|
31
|
-
const E = p.useRef(!0), S = e === r.RATE_LIMITING || e === r.GENERAL, h = P && !s && !e, {
|
|
31
|
+
const E = p.useRef(!0), S = e === r.RATE_LIMITING || e === r.NO_CONTENT || e === r.GENERAL, h = P && !s && !e, {
|
|
32
32
|
formatMessage: l
|
|
33
|
-
} = D(),
|
|
33
|
+
} = D(), N = g() === x.Small ? C : k;
|
|
34
34
|
p.useEffect(() => {
|
|
35
35
|
if (E.current) {
|
|
36
36
|
E.current = !1;
|
|
@@ -38,19 +38,19 @@ const ne = /* @__PURE__ */ p.memo(({
|
|
|
38
38
|
}
|
|
39
39
|
s && i && i(a ? "instant" : "smooth", a);
|
|
40
40
|
}, [s, i, a]);
|
|
41
|
-
const
|
|
41
|
+
const T = () => /* @__PURE__ */ n(A, {
|
|
42
42
|
as: "p",
|
|
43
43
|
className: o.error,
|
|
44
44
|
color: "textOnLightSecondary",
|
|
45
45
|
"data-testid": "content-answers-error",
|
|
46
46
|
variant: "caption",
|
|
47
|
-
children: [e === r.RESPONSE_INTERRUPTED && l(d.responseInterruptedError), e === r.RESPONSE_FAILED && l(d.responseFailedError), e === r.RESPONSE_STOPPED && l(d.responseStoppedError), e !== r.RESPONSE_STOPPED && /* @__PURE__ */ t(
|
|
47
|
+
children: [e === r.RESPONSE_INTERRUPTED && l(d.responseInterruptedError), e === r.RESPONSE_FAILED && l(d.responseFailedError), e === r.RESPONSE_STOPPED && l(d.responseStoppedError), e !== r.RESPONSE_STOPPED && /* @__PURE__ */ t(L, {
|
|
48
48
|
className: o.alertIcon,
|
|
49
|
-
color:
|
|
49
|
+
color: y,
|
|
50
50
|
"data-testid": "content-answers-error-alert-icon",
|
|
51
|
-
height:
|
|
51
|
+
height: u,
|
|
52
52
|
role: "presentation",
|
|
53
|
-
width:
|
|
53
|
+
width: u
|
|
54
54
|
})]
|
|
55
55
|
});
|
|
56
56
|
return /* @__PURE__ */ n("div", {
|
|
@@ -61,25 +61,25 @@ const ne = /* @__PURE__ */ p.memo(({
|
|
|
61
61
|
children: [/* @__PURE__ */ t(f.Figure, {
|
|
62
62
|
children: /* @__PURE__ */ t("div", {
|
|
63
63
|
className: o.iconAvatar,
|
|
64
|
-
children: /* @__PURE__ */ t(
|
|
65
|
-
height:
|
|
64
|
+
children: /* @__PURE__ */ t(_, {
|
|
65
|
+
height: N,
|
|
66
66
|
role: "presentation",
|
|
67
|
-
width:
|
|
67
|
+
width: N
|
|
68
68
|
})
|
|
69
69
|
})
|
|
70
70
|
}), /* @__PURE__ */ n(f.Content, {
|
|
71
71
|
useAnimation: c,
|
|
72
72
|
children: [/* @__PURE__ */ t(F, {
|
|
73
73
|
answer: s,
|
|
74
|
-
isMarkdownEnabled:
|
|
74
|
+
isMarkdownEnabled: O
|
|
75
75
|
}), v && /* @__PURE__ */ n("div", {
|
|
76
|
-
className:
|
|
76
|
+
className: z(o.footer, {
|
|
77
77
|
[o.animated]: c
|
|
78
78
|
}),
|
|
79
79
|
"data-testid": "content-answers-answer-footer",
|
|
80
|
-
children: [e &&
|
|
81
|
-
citations:
|
|
82
|
-
onCitationClick:
|
|
80
|
+
children: [e && T(), I && !e && /* @__PURE__ */ t(j, {
|
|
81
|
+
citations: R,
|
|
82
|
+
onCitationClick: w,
|
|
83
83
|
recordAction: m
|
|
84
84
|
}), /* @__PURE__ */ t(M, {
|
|
85
85
|
answer: s,
|
|
@@ -1,64 +1,73 @@
|
|
|
1
|
-
import { useBreakpoint as
|
|
2
|
-
import { BoxAi as g, AlertTriangle as
|
|
3
|
-
import { Size5 as n, Size6 as
|
|
4
|
-
import * as
|
|
1
|
+
import { useBreakpoint as h, Breakpoint as E, Text as u } from "@box/blueprint-web";
|
|
2
|
+
import { BoxAi as g, AlertTriangle as N } from "@box/blueprint-web-assets/icons/Line";
|
|
3
|
+
import { Size5 as n, Size6 as S } from "@box/blueprint-web-assets/tokens/tokens";
|
|
4
|
+
import * as l from "react";
|
|
5
5
|
import { useIntl as v } from "react-intl";
|
|
6
|
-
import { A as
|
|
7
|
-
import { LOGGER_BASE_CONFIG as
|
|
6
|
+
import { A as m } from "../../../../chunks/types.js";
|
|
7
|
+
import { LOGGER_BASE_CONFIG as x } from "../common/constants.js";
|
|
8
8
|
import { MediaContainer as a } from "../common/media-container.js";
|
|
9
|
-
import
|
|
9
|
+
import o from "./messages.js";
|
|
10
10
|
import { s as e } from "../../../../chunks/inline-error.module.js";
|
|
11
|
-
import { jsx as r, jsxs as
|
|
12
|
-
const
|
|
13
|
-
error:
|
|
14
|
-
recordAction:
|
|
15
|
-
useAnimation:
|
|
11
|
+
import { jsx as r, jsxs as c } from "react/jsx-runtime";
|
|
12
|
+
const b = ({
|
|
13
|
+
error: t,
|
|
14
|
+
recordAction: i,
|
|
15
|
+
useAnimation: d
|
|
16
16
|
}) => {
|
|
17
17
|
const {
|
|
18
|
-
formatMessage:
|
|
18
|
+
formatMessage: p
|
|
19
19
|
} = v();
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
...
|
|
20
|
+
l.useEffect(() => {
|
|
21
|
+
i && i({
|
|
22
|
+
...x,
|
|
23
23
|
target: "inlineError"
|
|
24
24
|
});
|
|
25
|
-
}, [
|
|
26
|
-
const
|
|
25
|
+
}, [i]);
|
|
26
|
+
const f = l.useCallback(() => {
|
|
27
|
+
switch (t) {
|
|
28
|
+
case m.RATE_LIMITING:
|
|
29
|
+
return o.inlineRateLimitingErrorText;
|
|
30
|
+
case m.NO_CONTENT:
|
|
31
|
+
return o.inlineNoContentErrorText;
|
|
32
|
+
default:
|
|
33
|
+
return o.inlineErrorText;
|
|
34
|
+
}
|
|
35
|
+
}, [t]), s = h() === E.Small ? n : S;
|
|
27
36
|
return /* @__PURE__ */ r("div", {
|
|
28
37
|
className: e.inlineError,
|
|
29
38
|
"data-testid": "content-answers-inline-error",
|
|
30
|
-
children: /* @__PURE__ */
|
|
39
|
+
children: /* @__PURE__ */ c(a, {
|
|
31
40
|
children: [/* @__PURE__ */ r(a.Figure, {
|
|
32
41
|
variant: "center-aligned",
|
|
33
42
|
children: /* @__PURE__ */ r("div", {
|
|
34
43
|
className: e.iconAvatar,
|
|
35
44
|
children: /* @__PURE__ */ r(g, {
|
|
36
|
-
height:
|
|
45
|
+
height: s,
|
|
37
46
|
role: "presentation",
|
|
38
|
-
width:
|
|
47
|
+
width: s
|
|
39
48
|
})
|
|
40
49
|
})
|
|
41
|
-
}), /* @__PURE__ */
|
|
50
|
+
}), /* @__PURE__ */ c(a.Content, {
|
|
42
51
|
shouldAddCard: !1,
|
|
43
|
-
useAnimation:
|
|
52
|
+
useAnimation: d,
|
|
44
53
|
variant: "error",
|
|
45
54
|
children: [/* @__PURE__ */ r("div", {
|
|
46
55
|
className: e.icon,
|
|
47
|
-
children: /* @__PURE__ */ r(
|
|
56
|
+
children: /* @__PURE__ */ r(N, {
|
|
48
57
|
height: n,
|
|
49
58
|
role: "presentation",
|
|
50
59
|
width: n
|
|
51
60
|
})
|
|
52
|
-
}), /* @__PURE__ */ r(
|
|
61
|
+
}), /* @__PURE__ */ r(u, {
|
|
53
62
|
as: "p",
|
|
54
63
|
className: e.text,
|
|
55
|
-
children:
|
|
64
|
+
children: t && p(f())
|
|
56
65
|
})]
|
|
57
66
|
})]
|
|
58
67
|
})
|
|
59
68
|
});
|
|
60
69
|
};
|
|
61
70
|
export {
|
|
62
|
-
|
|
63
|
-
|
|
71
|
+
b as InlineError,
|
|
72
|
+
b as default
|
|
64
73
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineMessages as e } from "react-intl";
|
|
2
|
-
const
|
|
2
|
+
const o = e({
|
|
3
3
|
basedOn: {
|
|
4
4
|
id: "boxAI.contentAnswers.basedOn",
|
|
5
5
|
defaultMessage: "Based on:"
|
|
@@ -28,6 +28,10 @@ const t = e({
|
|
|
28
28
|
id: "boxAI.contentAnswers.copyToClipboardSucceeded",
|
|
29
29
|
defaultMessage: "Copied to your clipboard"
|
|
30
30
|
},
|
|
31
|
+
inlineNoContentErrorText: {
|
|
32
|
+
id: "boxAI.contentAnswers.inlineNoContentErrorText",
|
|
33
|
+
defaultMessage: "Relevant content cannot be found. Please try again later or ask a different question."
|
|
34
|
+
},
|
|
31
35
|
inlineErrorText: {
|
|
32
36
|
id: "boxAI.contentAnswers.inlineErrorText",
|
|
33
37
|
defaultMessage: "The Box AI service was unavailable."
|
|
@@ -62,5 +66,5 @@ const t = e({
|
|
|
62
66
|
}
|
|
63
67
|
});
|
|
64
68
|
export {
|
|
65
|
-
|
|
69
|
+
o as default
|
|
66
70
|
};
|
|
@@ -1,193 +1,195 @@
|
|
|
1
1
|
import W from "lodash/camelCase";
|
|
2
|
-
import n, { useCallback as
|
|
3
|
-
import { useAgentsDispatch as
|
|
4
|
-
import { A as
|
|
5
|
-
import { ContentAnswersRecord as
|
|
6
|
-
import { defaultFormatCitations as
|
|
2
|
+
import n, { useCallback as X } from "react";
|
|
3
|
+
import { useAgentsDispatch as z } from "../../../contexts/AgentsContext.js";
|
|
4
|
+
import { A as k, C as I } from "../../../../../chunks/types.js";
|
|
5
|
+
import { ContentAnswersRecord as B, QuestionRecord as U } from "../records.js";
|
|
6
|
+
import { defaultFormatCitations as V } from "../utils/format.js";
|
|
7
7
|
import { getAnswerRequest as Y } from "../utils/request.js";
|
|
8
8
|
import L from "../utils/stream.js";
|
|
9
|
+
const Z = /Too Many Requests/i;
|
|
9
10
|
function lt({
|
|
10
|
-
contentAnswers:
|
|
11
|
-
createSessionRequest:
|
|
12
|
-
fetchTimeout:
|
|
13
|
-
getAgentConfig:
|
|
11
|
+
contentAnswers: E,
|
|
12
|
+
createSessionRequest: w,
|
|
13
|
+
fetchTimeout: A,
|
|
14
|
+
getAgentConfig: b,
|
|
14
15
|
getAnswerStreaming: y,
|
|
15
|
-
getAnswer:
|
|
16
|
-
isCitationsEnabled:
|
|
16
|
+
getAnswer: N,
|
|
17
|
+
isCitationsEnabled: D,
|
|
17
18
|
isStreamingEnabled: R,
|
|
18
19
|
itemID: f,
|
|
19
|
-
sendLog:
|
|
20
|
+
sendLog: tt,
|
|
20
21
|
setContentAnswers: M,
|
|
21
|
-
formatCitations:
|
|
22
|
+
formatCitations: O = V
|
|
22
23
|
}) {
|
|
23
|
-
const
|
|
24
|
+
const x = n.useRef(null), v = z(), T = X((t) => Array.isArray(t) ? O(t) : null, [O]), a = n.useCallback((t = !1) => t ? new B() : E, [E]), l = n.useCallback((t) => {
|
|
24
25
|
M(t);
|
|
25
26
|
}, [M]), Q = n.useCallback(() => {
|
|
26
|
-
const
|
|
27
|
-
|
|
27
|
+
const s = a().withMutations((e) => {
|
|
28
|
+
e.set("questions", []), e.set("contextSession", null);
|
|
28
29
|
});
|
|
29
|
-
|
|
30
|
-
}, [a,
|
|
30
|
+
l(s);
|
|
31
|
+
}, [a, l]);
|
|
31
32
|
n.useEffect(
|
|
32
33
|
(t) => {
|
|
33
|
-
if (f && f !==
|
|
34
|
-
const
|
|
34
|
+
if (f && f !== E.item.id) {
|
|
35
|
+
const e = a(!0).withMutations((o) => {
|
|
35
36
|
o.setIn(["item", "id"], f), o.setIn(["item", "version_id"], t && t.toString());
|
|
36
37
|
});
|
|
37
|
-
|
|
38
|
+
l(e);
|
|
38
39
|
}
|
|
39
40
|
},
|
|
40
41
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
41
42
|
[f]
|
|
42
43
|
);
|
|
43
|
-
const p = n.useCallback((t,
|
|
44
|
-
const
|
|
44
|
+
const p = n.useCallback((t, s) => {
|
|
45
|
+
const e = a(), {
|
|
45
46
|
questions: o
|
|
46
|
-
} =
|
|
47
|
-
let
|
|
48
|
-
const
|
|
49
|
-
|
|
47
|
+
} = e;
|
|
48
|
+
let i = [];
|
|
49
|
+
const r = o ? o.findIndex((c) => c.id === t.id) : -1;
|
|
50
|
+
r >= 0 ? i = [...o.slice(0, r), t, ...o.slice(r + 1)] : i = [...o, t];
|
|
50
51
|
const {
|
|
51
52
|
isCompleted: u
|
|
52
|
-
} = t, d =
|
|
53
|
-
|
|
53
|
+
} = t, d = e.withMutations((c) => {
|
|
54
|
+
s && c.merge(s), c.set("hasRequestInProgress", !u), c.set("questions", i);
|
|
54
55
|
});
|
|
55
|
-
|
|
56
|
-
}, [a,
|
|
57
|
-
const
|
|
56
|
+
l(d), x.current = t;
|
|
57
|
+
}, [a, l]), q = n.useCallback((t) => {
|
|
58
|
+
const e = a().withMutations((o) => {
|
|
58
59
|
o.set("error", t), o.set("isLoading", !1);
|
|
59
60
|
});
|
|
60
|
-
|
|
61
|
-
}, [a,
|
|
61
|
+
l(e);
|
|
62
|
+
}, [a, l]), h = n.useCallback((t, s, e) => {
|
|
62
63
|
const {
|
|
63
64
|
answer: o,
|
|
64
|
-
error:
|
|
65
|
-
citations:
|
|
65
|
+
error: i,
|
|
66
|
+
citations: r = [],
|
|
66
67
|
createdAt: u = null,
|
|
67
68
|
encodedSession: d = void 0,
|
|
68
|
-
contextSession:
|
|
69
|
-
} = t, C =
|
|
69
|
+
contextSession: c = void 0
|
|
70
|
+
} = t, C = s.set("citations", T(r)).merge({
|
|
70
71
|
answer: o,
|
|
71
|
-
error:
|
|
72
|
+
error: i,
|
|
72
73
|
created_at: u,
|
|
73
74
|
isLoading: !1,
|
|
74
|
-
isCompleted:
|
|
75
|
+
isCompleted: e
|
|
75
76
|
});
|
|
76
77
|
let m;
|
|
77
78
|
d && (m = {
|
|
78
79
|
encodedSession: d
|
|
79
|
-
}),
|
|
80
|
-
contextSession:
|
|
80
|
+
}), c && (m = {
|
|
81
|
+
contextSession: c
|
|
81
82
|
}), p(C, m);
|
|
82
|
-
}, [p,
|
|
83
|
+
}, [p, T]), S = n.useCallback(
|
|
83
84
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
84
|
-
(t,
|
|
85
|
-
|
|
86
|
-
|
|
85
|
+
(t, s) => {
|
|
86
|
+
var d, c;
|
|
87
|
+
const e = (t == null ? void 0 : t.message) || "", o = ((d = t == null ? void 0 : t.response) == null ? void 0 : d.status) === 429 || Z.test(e), i = ((c = t == null ? void 0 : t.response) == null ? void 0 : c.status) === 204, r = i ? k.NO_CONTENT : o ? k.RATE_LIMITING : k.GENERAL, u = s.merge({
|
|
88
|
+
error: r,
|
|
87
89
|
isLoading: !1,
|
|
88
90
|
isCompleted: !0
|
|
89
91
|
});
|
|
90
|
-
p(
|
|
92
|
+
p(u, void 0);
|
|
91
93
|
},
|
|
92
94
|
[p]
|
|
93
|
-
),
|
|
95
|
+
), _ = n.useCallback(async (t, s) => {
|
|
94
96
|
try {
|
|
95
|
-
const
|
|
97
|
+
const e = a(), o = {
|
|
96
98
|
prompt: t.prompt,
|
|
97
|
-
aiAgent:
|
|
98
|
-
},
|
|
99
|
-
let
|
|
100
|
-
R && (
|
|
101
|
-
const u = await Y(o, R, f,
|
|
102
|
-
R ? u.ok ? L.receiveStreamedResponse(
|
|
99
|
+
aiAgent: s || void 0
|
|
100
|
+
}, i = `content-answers-${t.id}`;
|
|
101
|
+
let r;
|
|
102
|
+
R && (r = L.createAbortRequest(i));
|
|
103
|
+
const u = await Y(o, R, f, e, N, y, r);
|
|
104
|
+
R ? u.ok && u.status === 200 ? L.receiveStreamedResponse(i, u, (d) => {
|
|
103
105
|
const {
|
|
104
|
-
data:
|
|
106
|
+
data: c,
|
|
105
107
|
error: C,
|
|
106
108
|
citations: m,
|
|
107
109
|
contextSession: J,
|
|
108
110
|
isCompleted: K
|
|
109
111
|
} = d;
|
|
110
|
-
|
|
112
|
+
h({
|
|
111
113
|
...{
|
|
112
|
-
answer:
|
|
114
|
+
answer: c,
|
|
113
115
|
citations: m,
|
|
114
116
|
error: C,
|
|
115
117
|
contextSession: J
|
|
116
118
|
}
|
|
117
119
|
}, t, K);
|
|
118
|
-
}, void 0,
|
|
120
|
+
}, void 0, A) : S({
|
|
119
121
|
response: u
|
|
120
|
-
}, t) : (Object.entries(u).forEach(([d,
|
|
122
|
+
}, t) : (Object.entries(u).forEach(([d, c]) => {
|
|
121
123
|
const C = W(d);
|
|
122
|
-
delete u[d], u[C] =
|
|
123
|
-
}),
|
|
124
|
-
} catch (
|
|
125
|
-
|
|
124
|
+
delete u[d], u[C] = c;
|
|
125
|
+
}), h(u, t, !0));
|
|
126
|
+
} catch (e) {
|
|
127
|
+
S(e, t);
|
|
126
128
|
}
|
|
127
|
-
}, [a, R, f,
|
|
129
|
+
}, [a, R, f, N, y, A, h, S]), g = n.useCallback((t, s, e = !0) => {
|
|
128
130
|
const o = a();
|
|
129
|
-
|
|
130
|
-
const
|
|
131
|
-
return p(
|
|
132
|
-
}, [a,
|
|
133
|
-
const
|
|
134
|
-
encoded_session:
|
|
131
|
+
e && (t.id = `${o.questions.length}`);
|
|
132
|
+
const i = new U(t);
|
|
133
|
+
return p(i), _(i, s), i;
|
|
134
|
+
}, [a, _, p]), G = n.useCallback((t) => {
|
|
135
|
+
const s = a(), {
|
|
136
|
+
encoded_session: e,
|
|
135
137
|
metadata: {
|
|
136
138
|
is_large_file: o
|
|
137
139
|
} = {
|
|
138
140
|
is_large_file: !1
|
|
139
141
|
}
|
|
140
|
-
} = t,
|
|
141
|
-
|
|
142
|
+
} = t, i = s.withMutations((r) => {
|
|
143
|
+
e && r.set("encodedSession", e), o && r.set("error", I.LARGE_FILE), r.set("isLoading", !1);
|
|
142
144
|
});
|
|
143
|
-
|
|
144
|
-
}, [a,
|
|
145
|
+
l(i);
|
|
146
|
+
}, [a, l]), F = n.useCallback(async () => {
|
|
145
147
|
try {
|
|
146
|
-
const
|
|
148
|
+
const s = a().withMutations((o) => {
|
|
147
149
|
o.set("isLoading", !0);
|
|
148
150
|
});
|
|
149
|
-
|
|
150
|
-
const
|
|
151
|
-
items: [
|
|
151
|
+
l(s);
|
|
152
|
+
const e = await w({
|
|
153
|
+
items: [s.item]
|
|
152
154
|
}, f);
|
|
153
|
-
|
|
155
|
+
G(e);
|
|
154
156
|
} catch {
|
|
155
|
-
q(
|
|
157
|
+
q(I.GENERAL);
|
|
156
158
|
}
|
|
157
|
-
}, [a,
|
|
159
|
+
}, [a, l, w, f, G, q]), j = n.useCallback(() => {
|
|
158
160
|
Q();
|
|
159
|
-
}, [Q]), P = n.useCallback(async (t,
|
|
160
|
-
|
|
161
|
+
}, [Q]), P = n.useCallback(async (t, s) => {
|
|
162
|
+
g({
|
|
161
163
|
...t.toJS(),
|
|
162
164
|
answer: "",
|
|
163
165
|
isLoading: !0,
|
|
164
166
|
isCompleted: !1,
|
|
165
167
|
error: null
|
|
166
|
-
},
|
|
167
|
-
}, [
|
|
168
|
+
}, s, !1);
|
|
169
|
+
}, [g]), $ = n.useCallback((t) => {
|
|
168
170
|
L.abortRequest(`content-answers-${t.id}`, !0);
|
|
169
171
|
}, []), H = n.useCallback(async (t) => {
|
|
170
|
-
if (
|
|
172
|
+
if (b)
|
|
171
173
|
try {
|
|
172
|
-
const
|
|
173
|
-
|
|
174
|
+
const s = await b(t);
|
|
175
|
+
v({
|
|
174
176
|
type: "OVERRIDE_AGENT_CONFIG",
|
|
175
177
|
agentName: t.name,
|
|
176
|
-
agentConfig:
|
|
178
|
+
agentConfig: s
|
|
177
179
|
});
|
|
178
180
|
} catch {
|
|
179
181
|
}
|
|
180
|
-
}, [
|
|
182
|
+
}, [v, b]);
|
|
181
183
|
return {
|
|
182
184
|
clearConversation: j,
|
|
183
|
-
createSession:
|
|
185
|
+
createSession: F,
|
|
184
186
|
fetchAgentConfig: H,
|
|
185
187
|
getState: a,
|
|
186
188
|
retryQuestion: P,
|
|
187
|
-
sendQuestion:
|
|
188
|
-
sendQuestionAnswerRequest:
|
|
189
|
+
sendQuestion: g,
|
|
190
|
+
sendQuestionAnswerRequest: _,
|
|
189
191
|
stopQuestion: $,
|
|
190
|
-
setState:
|
|
192
|
+
setState: l,
|
|
191
193
|
updateQuestionInState: p
|
|
192
194
|
};
|
|
193
195
|
}
|
|
@@ -1,61 +1,61 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { A as
|
|
3
|
-
const
|
|
4
|
-
RESPONSE_FAILED:
|
|
5
|
-
RESPONSE_INTERRUPTED:
|
|
6
|
-
RESPONSE_STOPPED:
|
|
1
|
+
import b from "lodash/camelCase";
|
|
2
|
+
import { A as s } from "../../../../../chunks/types.js";
|
|
3
|
+
const u = 15e3, N = {
|
|
4
|
+
RESPONSE_FAILED: s.RESPONSE_FAILED,
|
|
5
|
+
RESPONSE_INTERRUPTED: s.RESPONSE_INTERRUPTED,
|
|
6
|
+
RESPONSE_STOPPED: s.RESPONSE_STOPPED
|
|
7
7
|
}, C = {
|
|
8
8
|
CONTINUE: "continue",
|
|
9
9
|
DONE: "done",
|
|
10
10
|
ERROR: "error"
|
|
11
11
|
};
|
|
12
|
-
class
|
|
12
|
+
class T {
|
|
13
13
|
constructor() {
|
|
14
|
-
this.abortControllerMap = /* @__PURE__ */ new Map(), this.fetchTimeout =
|
|
14
|
+
this.abortControllerMap = /* @__PURE__ */ new Map(), this.fetchTimeout = u;
|
|
15
15
|
}
|
|
16
|
-
abortRequest(t,
|
|
16
|
+
abortRequest(t, e = !1) {
|
|
17
17
|
const o = this.abortControllerMap.get(t);
|
|
18
|
-
o && (o.isAbortFunctionCalled = !0, o.isUserInitiatedAbort =
|
|
18
|
+
o && (o.isAbortFunctionCalled = !0, o.isUserInitiatedAbort = e, this.abortControllerMap.set(t, o), o.abortController.abort());
|
|
19
19
|
}
|
|
20
20
|
createAbortRequest(t) {
|
|
21
|
-
const
|
|
21
|
+
const e = {
|
|
22
22
|
abortController: new AbortController(),
|
|
23
23
|
isAbortFunctionCalled: !1,
|
|
24
24
|
isUserInitiatedAbort: !1
|
|
25
25
|
};
|
|
26
|
-
return this.abortControllerMap.set(t,
|
|
26
|
+
return this.abortControllerMap.set(t, e), e.abortController;
|
|
27
27
|
}
|
|
28
28
|
// eslint-disable-next-line class-methods-use-this
|
|
29
|
-
parseNDJSON(t,
|
|
30
|
-
const i = new TextDecoder().decode(
|
|
31
|
-
t.partialData =
|
|
32
|
-
`) ||
|
|
29
|
+
parseNDJSON(t, e, o) {
|
|
30
|
+
const i = new TextDecoder().decode(e), r = t.partialData + i, l = /\r?\n/, n = r.trim().split(l);
|
|
31
|
+
t.partialData = r.endsWith(`
|
|
32
|
+
`) || r.endsWith("}") ? "" : n.pop() || "";
|
|
33
33
|
let a = "";
|
|
34
|
-
n.forEach((
|
|
35
|
-
const E = JSON.parse(
|
|
36
|
-
E[o] && (a += E[o]), Object.entries(E).forEach(([
|
|
37
|
-
const
|
|
38
|
-
|
|
34
|
+
n.forEach((h) => {
|
|
35
|
+
const E = JSON.parse(h);
|
|
36
|
+
E[o] && (a += E[o]), Object.entries(E).forEach(([c, O]) => {
|
|
37
|
+
const d = b(c);
|
|
38
|
+
d !== o && (t[d] = O);
|
|
39
39
|
});
|
|
40
40
|
}), t.data += a;
|
|
41
41
|
}
|
|
42
|
-
receiveStreamedResponse(t,
|
|
42
|
+
receiveStreamedResponse(t, e, o, i = "answer", r) {
|
|
43
43
|
var E;
|
|
44
|
-
const l = this.initializeStreamedResponseState(), n = (E =
|
|
45
|
-
if (this.fetchTimeout =
|
|
44
|
+
const l = this.initializeStreamedResponseState(), n = (E = e.body) == null ? void 0 : E.getReader();
|
|
45
|
+
if (this.fetchTimeout = r || u, !n) {
|
|
46
46
|
this.handleNoResponseBody(o, l);
|
|
47
47
|
return;
|
|
48
48
|
}
|
|
49
49
|
const a = {
|
|
50
50
|
id: void 0
|
|
51
|
-
},
|
|
52
|
-
n.read().then((
|
|
53
|
-
this.handleChunkSuccess(a, o,
|
|
54
|
-
}).catch((
|
|
51
|
+
}, h = () => {
|
|
52
|
+
n.read().then((c) => {
|
|
53
|
+
this.handleChunkSuccess(a, o, c, t, l, i), c.done || (a.id = this.setChunkTimeout(t), h());
|
|
54
|
+
}).catch((c) => {
|
|
55
55
|
this.handleChunkError(a, o, t, l);
|
|
56
56
|
});
|
|
57
57
|
};
|
|
58
|
-
|
|
58
|
+
h();
|
|
59
59
|
}
|
|
60
60
|
// eslint-disable-next-line class-methods-use-this
|
|
61
61
|
initializeStreamedResponseState() {
|
|
@@ -69,23 +69,23 @@ class R {
|
|
|
69
69
|
partialData: ""
|
|
70
70
|
};
|
|
71
71
|
}
|
|
72
|
-
handleChunkSuccess(t,
|
|
72
|
+
handleChunkSuccess(t, e, o, i, r, l) {
|
|
73
73
|
if (!o)
|
|
74
74
|
return;
|
|
75
75
|
clearTimeout(t.id);
|
|
76
76
|
const {
|
|
77
77
|
completionReason: n
|
|
78
|
-
} =
|
|
79
|
-
|
|
78
|
+
} = r;
|
|
79
|
+
r.isCompleted = o.done || n !== null, o.value && this.parseNDJSON(r, o.value, l), r.isCompleted && (this.removeAbortController(i), n !== C.DONE && (r.data ? r.error = n === C.CONTINUE ? N.RESPONSE_INTERRUPTED : N.RESPONSE_FAILED : r.error = s.NO_CONTENT)), e(r);
|
|
80
80
|
}
|
|
81
|
-
handleChunkError(t,
|
|
82
|
-
i.error =
|
|
83
|
-
const
|
|
84
|
-
|
|
81
|
+
handleChunkError(t, e, o, i) {
|
|
82
|
+
i.error = N.RESPONSE_FAILED;
|
|
83
|
+
const r = this.abortControllerMap.get(o);
|
|
84
|
+
r && r.isUserInitiatedAbort && (i.error = N.RESPONSE_STOPPED, i.isAborted = r.isUserInitiatedAbort), i.isCompleted = !0, this.removeAbortController(o), clearTimeout(t.id), e(i);
|
|
85
85
|
}
|
|
86
86
|
// eslint-disable-next-line class-methods-use-this
|
|
87
|
-
handleNoResponseBody(t,
|
|
88
|
-
|
|
87
|
+
handleNoResponseBody(t, e) {
|
|
88
|
+
e.error = s.NO_CONTENT, e.isCompleted = !0, t(e);
|
|
89
89
|
}
|
|
90
90
|
removeAbortController(t) {
|
|
91
91
|
this.abortControllerMap.delete(t);
|
|
@@ -96,10 +96,10 @@ class R {
|
|
|
96
96
|
}, this.fetchTimeout);
|
|
97
97
|
}
|
|
98
98
|
}
|
|
99
|
-
const A = new
|
|
99
|
+
const A = new T();
|
|
100
100
|
export {
|
|
101
|
-
|
|
101
|
+
u as FETCH_CHUNK_TIMEOUT,
|
|
102
102
|
C as STREAMING_COMPLETION_REASON,
|
|
103
|
-
|
|
103
|
+
N as STREAM_ERROR,
|
|
104
104
|
A as default
|
|
105
105
|
};
|
|
@@ -33,7 +33,7 @@ const a = [{
|
|
|
33
33
|
location: "location3",
|
|
34
34
|
fileId: "789",
|
|
35
35
|
content: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Curabitur pretium tincidunt lacus. Nulla gravida orci a odio. Nullam varius, turpis et commodo pharetra, est eros bibendum elit, nec luctus magna felis sollicitudin mauris. Integer in mauris eu nibh euismod gravida. Duis ac tellus et risus vulputate vehicula. Donec lobortis risus a elit. Etiam tempor. Ut ullamcorper, ligula eu tempor congue, eros est euismod turpis, id tincidunt sapien risus a quam. Maecenas fermentum consequat mi. Donec fermentum. Pellentesque malesuada nulla a mi. Duis sapien sem, aliquet nec, commodo eget, consequat quis, neque. Aliquam faucibus, elit ut dictum aliquet, felis nisl adipiscing sapien, sed malesuada diam lacus eget erat. Cras mollis scelerisque nunc. Nullam arcu. Aliquam consequat. Curabitur augue lorem, dapibus quis, laoreet et, pretium ac, nisi. Aenean magna nisl, mollis quis, molestie eu, feugiat in, orci. In hac habitasse platea dictumst."
|
|
36
|
-
}],
|
|
36
|
+
}], S = [{
|
|
37
37
|
answer: "I am a mock answer",
|
|
38
38
|
id: "1",
|
|
39
39
|
isCompleted: !0,
|
|
@@ -90,9 +90,16 @@ const a = [{
|
|
|
90
90
|
isLoading: !1,
|
|
91
91
|
error: null,
|
|
92
92
|
prompt: "What is the capital of the United States?"
|
|
93
|
-
}
|
|
93
|
+
}, {
|
|
94
|
+
answer: "9",
|
|
95
|
+
id: "9",
|
|
96
|
+
isCompleted: !0,
|
|
97
|
+
isLoading: !1,
|
|
98
|
+
error: e.NO_CONTENT,
|
|
99
|
+
prompt: "What is the capital of Italy?"
|
|
100
|
+
}], R = i, k = t;
|
|
94
101
|
export {
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
102
|
+
k as mockAgentState,
|
|
103
|
+
R as mockAgents,
|
|
104
|
+
S as mockQuestions
|
|
98
105
|
};
|
package/i18n/bn-IN.js
CHANGED
|
@@ -21,6 +21,7 @@ export default {
|
|
|
21
21
|
"boxAI.contentAnswers.disabledTooltipPermissionsLoading": "অনুমতিসমূহ যাচাই করা হচ্ছে...",
|
|
22
22
|
"boxAI.contentAnswers.hasQuestionsTooltip": "Box AI-এ ফিরে যান",
|
|
23
23
|
"boxAI.contentAnswers.inlineErrorText": "Box AI পরিষেবাটি পাওয়া যাচ্ছিল না।",
|
|
24
|
+
"boxAI.contentAnswers.inlineNoContentErrorText": "Relevant content cannot be found. Please try again later or ask a different question.",
|
|
24
25
|
"boxAI.contentAnswers.inlineRateLimitingErrorText": "Box AI-এর বর্তমানে সীমিত ক্ষমতা রয়েছে (আমরা ব্যান্ডউইথ প্রসারিত করার জন্য কাজ করছি)। অনুগ্রহ করে কয়েক মিনিটের মধ্যে আবার চেষ্টা করুন।",
|
|
25
26
|
"boxAI.contentAnswers.intelligenceUnaivalableHeading": "Box AI পাওয়া যাচ্ছে না",
|
|
26
27
|
"boxAI.contentAnswers.intelligenceUnaivalableTryAgain": "অনুগ্রহ করে পরে আবার চেষ্টা করুন।",
|
package/i18n/da-DK.js
CHANGED
|
@@ -21,6 +21,7 @@ export default {
|
|
|
21
21
|
"boxAI.contentAnswers.disabledTooltipPermissionsLoading": "Kontrollerer tilladelser ...",
|
|
22
22
|
"boxAI.contentAnswers.hasQuestionsTooltip": "Gå tilbage til Box AI",
|
|
23
23
|
"boxAI.contentAnswers.inlineErrorText": "Box AI-tjenesten var ikke tilgængelig.",
|
|
24
|
+
"boxAI.contentAnswers.inlineNoContentErrorText": "Relevant content cannot be found. Please try again later or ask a different question.",
|
|
24
25
|
"boxAI.contentAnswers.inlineRateLimitingErrorText": "Box AI har på nuværende tidspunkt begrænset kapacitet (vi arbejder på at udvide båndbredden). Prøv igen om et par minutter.",
|
|
25
26
|
"boxAI.contentAnswers.intelligenceUnaivalableHeading": "Box AI er ikke tilgængelig",
|
|
26
27
|
"boxAI.contentAnswers.intelligenceUnaivalableTryAgain": "Prøv igen senere.",
|
package/i18n/de-DE.js
CHANGED
|
@@ -21,6 +21,7 @@ export default {
|
|
|
21
21
|
"boxAI.contentAnswers.disabledTooltipPermissionsLoading": "Berechtigungen werden überprüft ...",
|
|
22
22
|
"boxAI.contentAnswers.hasQuestionsTooltip": "Zurück zu Box-KI",
|
|
23
23
|
"boxAI.contentAnswers.inlineErrorText": "Der Box-KI-Service war nicht verfügbar.",
|
|
24
|
+
"boxAI.contentAnswers.inlineNoContentErrorText": "Relevant content cannot be found. Please try again later or ask a different question.",
|
|
24
25
|
"boxAI.contentAnswers.inlineRateLimitingErrorText": "Box-KI hat derzeit eine begrenzte Kapazität (wir bemühen uns um eine Bandbreitenerweiterung). Bitte versuchen Sie es in einigen Minuten erneut.",
|
|
25
26
|
"boxAI.contentAnswers.intelligenceUnaivalableHeading": "Box-KI ist nicht verfügbar",
|
|
26
27
|
"boxAI.contentAnswers.intelligenceUnaivalableTryAgain": "Versuchen Sie es bitte später erneut.",
|
package/i18n/en-AU.js
CHANGED
|
@@ -21,6 +21,7 @@ export default {
|
|
|
21
21
|
"boxAI.contentAnswers.disabledTooltipPermissionsLoading": "Checking permissions...",
|
|
22
22
|
"boxAI.contentAnswers.hasQuestionsTooltip": "Return to Box AI",
|
|
23
23
|
"boxAI.contentAnswers.inlineErrorText": "The Box AI service was unavailable.",
|
|
24
|
+
"boxAI.contentAnswers.inlineNoContentErrorText": "Relevant content cannot be found. Please try again later or ask a different question.",
|
|
24
25
|
"boxAI.contentAnswers.inlineRateLimitingErrorText": "Box AI currently has limited capacity (we're working to expand bandwidth). Please try again in a few minutes.",
|
|
25
26
|
"boxAI.contentAnswers.intelligenceUnaivalableHeading": "Box AI is unavailable",
|
|
26
27
|
"boxAI.contentAnswers.intelligenceUnaivalableTryAgain": "Please try again later.",
|
package/i18n/en-CA.js
CHANGED
|
@@ -21,6 +21,7 @@ export default {
|
|
|
21
21
|
"boxAI.contentAnswers.disabledTooltipPermissionsLoading": "Checking permissions...",
|
|
22
22
|
"boxAI.contentAnswers.hasQuestionsTooltip": "Return to Box AI",
|
|
23
23
|
"boxAI.contentAnswers.inlineErrorText": "The Box AI service was unavailable.",
|
|
24
|
+
"boxAI.contentAnswers.inlineNoContentErrorText": "Relevant content cannot be found. Please try again later or ask a different question.",
|
|
24
25
|
"boxAI.contentAnswers.inlineRateLimitingErrorText": "Box AI currently has limited capacity (we're working to expand bandwidth). Please try again in a few minutes.",
|
|
25
26
|
"boxAI.contentAnswers.intelligenceUnaivalableHeading": "Box AI is unavailable",
|
|
26
27
|
"boxAI.contentAnswers.intelligenceUnaivalableTryAgain": "Please try again later.",
|
package/i18n/en-GB.js
CHANGED
|
@@ -21,6 +21,7 @@ export default {
|
|
|
21
21
|
"boxAI.contentAnswers.disabledTooltipPermissionsLoading": "Checking permissions...",
|
|
22
22
|
"boxAI.contentAnswers.hasQuestionsTooltip": "Return to Box AI",
|
|
23
23
|
"boxAI.contentAnswers.inlineErrorText": "The Box AI service was unavailable.",
|
|
24
|
+
"boxAI.contentAnswers.inlineNoContentErrorText": "Relevant content cannot be found. Please try again later or ask a different question.",
|
|
24
25
|
"boxAI.contentAnswers.inlineRateLimitingErrorText": "Box AI currently has limited capacity (we're working to expand bandwidth). Please try again in a few minutes.",
|
|
25
26
|
"boxAI.contentAnswers.intelligenceUnaivalableHeading": "Box AI is unavailable",
|
|
26
27
|
"boxAI.contentAnswers.intelligenceUnaivalableTryAgain": "Please try again later.",
|
package/i18n/en-US.js
CHANGED
|
@@ -21,6 +21,7 @@ export default {
|
|
|
21
21
|
"boxAI.contentAnswers.disabledTooltipPermissionsLoading": "Checking permissions...",
|
|
22
22
|
"boxAI.contentAnswers.hasQuestionsTooltip": "Return to Box AI",
|
|
23
23
|
"boxAI.contentAnswers.inlineErrorText": "The Box AI service was unavailable.",
|
|
24
|
+
"boxAI.contentAnswers.inlineNoContentErrorText": "Relevant content cannot be found. Please try again later or ask a different question.",
|
|
24
25
|
"boxAI.contentAnswers.inlineRateLimitingErrorText": "Box AI currently has limited capacity (we're working to expand bandwidth). Please try again in a few minutes.",
|
|
25
26
|
"boxAI.contentAnswers.intelligenceUnaivalableHeading": "Box AI is unavailable",
|
|
26
27
|
"boxAI.contentAnswers.intelligenceUnaivalableTryAgain": "Please try again later.",
|
package/i18n/en-US.properties
CHANGED
|
@@ -42,6 +42,8 @@ boxAI.contentAnswers.disabledTooltipPermissionsLoading = Checking permissions...
|
|
|
42
42
|
boxAI.contentAnswers.hasQuestionsTooltip = Return to Box AI
|
|
43
43
|
# Content Answers error message when the service fails
|
|
44
44
|
boxAI.contentAnswers.inlineErrorText = The Box AI service was unavailable.
|
|
45
|
+
# Content Answers error message when the service returns 204 (no content)
|
|
46
|
+
boxAI.contentAnswers.inlineNoContentErrorText = Relevant content cannot be found. Please try again later or ask a different question.
|
|
45
47
|
# Content Answers error message when the service fails due to rate limiting
|
|
46
48
|
boxAI.contentAnswers.inlineRateLimitingErrorText = Box AI currently has limited capacity (we're working to expand bandwidth). Please try again in a few minutes.
|
|
47
49
|
# Box AI Q&A service unavailable error title
|
package/i18n/en-x-pseudo.js
CHANGED
|
@@ -21,6 +21,7 @@ export default {
|
|
|
21
21
|
"boxAI.contentAnswers.disabledTooltipPermissionsLoading": "⟦萬萬萬萬萬萬 Ĉнеćкίлġ Ρèяmїśśιøиś... 國國國國國國⟧",
|
|
22
22
|
"boxAI.contentAnswers.hasQuestionsTooltip": "⟦萬萬萬萬 Ѓėţūяņ ŧö βοх ÂÎ 國國國國⟧",
|
|
23
23
|
"boxAI.contentAnswers.inlineErrorText": "⟦萬萬萬萬萬萬萬萬萬萬 Τĥё Бò× ÃÎ ѕéŗνìĉę ώǻş μπåναīĺąьĺε. 國國國國國國國國國國⟧",
|
|
24
|
+
"boxAI.contentAnswers.inlineNoContentErrorText": "Relevant content cannot be found. Please try again later or ask a different question.",
|
|
24
25
|
"boxAI.contentAnswers.inlineRateLimitingErrorText": "⟦萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬萬 βο× ΑĮ ċůŗŕėлτļÿ ħáѕ ĺιmįţєď ćãΡãčίťУ (ẃē'яě шõŕкìήġ τõ ę×Ρãņď вáиďщϊďτĥ). Pľέāśé ŧѓў ąġάįπ їη ä ƒēẁ mīņūţēѕ. 國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國國⟧",
|
|
25
26
|
"boxAI.contentAnswers.intelligenceUnaivalableHeading": "⟦萬萬萬萬萬萬 Бòх ǺĬ įş űήανąīľǻвĺě 國國國國國國⟧",
|
|
26
27
|
"boxAI.contentAnswers.intelligenceUnaivalableTryAgain": "⟦萬萬萬萬萬萬 Pľêäşέ ťяỳ àġαįŋ ľåţęг. 國國國國國國⟧",
|
package/i18n/es-419.js
CHANGED
|
@@ -21,6 +21,7 @@ export default {
|
|
|
21
21
|
"boxAI.contentAnswers.disabledTooltipPermissionsLoading": "Comprobando los permisos...",
|
|
22
22
|
"boxAI.contentAnswers.hasQuestionsTooltip": "Volver a Box AI",
|
|
23
23
|
"boxAI.contentAnswers.inlineErrorText": "El servicio Box AI no estaba disponible.",
|
|
24
|
+
"boxAI.contentAnswers.inlineNoContentErrorText": "Relevant content cannot be found. Please try again later or ask a different question.",
|
|
24
25
|
"boxAI.contentAnswers.inlineRateLimitingErrorText": "Box AI actualmente tiene capacidad limitada (estamos trabajando para expandir el ancho de banda). Inténtalo de nuevo en unos minutos.",
|
|
25
26
|
"boxAI.contentAnswers.intelligenceUnaivalableHeading": "Box AI no está disponible",
|
|
26
27
|
"boxAI.contentAnswers.intelligenceUnaivalableTryAgain": "Inténtelo de nuevo más tarde.",
|
package/i18n/es-ES.js
CHANGED
|
@@ -21,6 +21,7 @@ export default {
|
|
|
21
21
|
"boxAI.contentAnswers.disabledTooltipPermissionsLoading": "Comprobando los permisos...",
|
|
22
22
|
"boxAI.contentAnswers.hasQuestionsTooltip": "Volver a Box AI",
|
|
23
23
|
"boxAI.contentAnswers.inlineErrorText": "El servicio Box AI no estaba disponible.",
|
|
24
|
+
"boxAI.contentAnswers.inlineNoContentErrorText": "Relevant content cannot be found. Please try again later or ask a different question.",
|
|
24
25
|
"boxAI.contentAnswers.inlineRateLimitingErrorText": "Box AI actualmente tiene capacidad limitada (estamos trabajando para expandir el ancho de banda). Inténtalo de nuevo en unos minutos.",
|
|
25
26
|
"boxAI.contentAnswers.intelligenceUnaivalableHeading": "Box AI no está disponible",
|
|
26
27
|
"boxAI.contentAnswers.intelligenceUnaivalableTryAgain": "Inténtelo de nuevo más tarde.",
|
package/i18n/fi-FI.js
CHANGED
|
@@ -21,6 +21,7 @@ export default {
|
|
|
21
21
|
"boxAI.contentAnswers.disabledTooltipPermissionsLoading": "Tarkistetaan käyttöoikeustasoa...",
|
|
22
22
|
"boxAI.contentAnswers.hasQuestionsTooltip": "Palaa Box AI:n kysymyksiin ja vastauksiin",
|
|
23
23
|
"boxAI.contentAnswers.inlineErrorText": "Box AI -palvelu ei ollut käytettävissä.",
|
|
24
|
+
"boxAI.contentAnswers.inlineNoContentErrorText": "Relevant content cannot be found. Please try again later or ask a different question.",
|
|
24
25
|
"boxAI.contentAnswers.inlineRateLimitingErrorText": "Box AI:n kapasiteetti on tällä hetkellä rajallinen (pyrimme laajentamaan kaistanleveyttä). Yritä uudelleen muutaman minuutin kuluttua.",
|
|
25
26
|
"boxAI.contentAnswers.intelligenceUnaivalableHeading": "Box AI ei ole käytettävissä",
|
|
26
27
|
"boxAI.contentAnswers.intelligenceUnaivalableTryAgain": "Yritä myöhemmin uudelleen.",
|
package/i18n/fr-CA.js
CHANGED
|
@@ -21,6 +21,7 @@ export default {
|
|
|
21
21
|
"boxAI.contentAnswers.disabledTooltipPermissionsLoading": "Vérification des autorisations...",
|
|
22
22
|
"boxAI.contentAnswers.hasQuestionsTooltip": "Revenir dans Box AI",
|
|
23
23
|
"boxAI.contentAnswers.inlineErrorText": "Le service Box AI n'était pas disponible.",
|
|
24
|
+
"boxAI.contentAnswers.inlineNoContentErrorText": "Relevant content cannot be found. Please try again later or ask a different question.",
|
|
24
25
|
"boxAI.contentAnswers.inlineRateLimitingErrorText": "La capacité de la Box AI est actuellement limitée (nous travaillons à l'élargissement de la bande passante). Veuillez réessayer dans quelques minutes.",
|
|
25
26
|
"boxAI.contentAnswers.intelligenceUnaivalableHeading": "Box AI n’est pas disponible",
|
|
26
27
|
"boxAI.contentAnswers.intelligenceUnaivalableTryAgain": "Veuillez réessayer ultérieurement.",
|
package/i18n/fr-FR.js
CHANGED
|
@@ -21,6 +21,7 @@ export default {
|
|
|
21
21
|
"boxAI.contentAnswers.disabledTooltipPermissionsLoading": "Vérification des autorisations...",
|
|
22
22
|
"boxAI.contentAnswers.hasQuestionsTooltip": "Revenir dans Box AI",
|
|
23
23
|
"boxAI.contentAnswers.inlineErrorText": "Le service Box AI n'était pas disponible.",
|
|
24
|
+
"boxAI.contentAnswers.inlineNoContentErrorText": "Relevant content cannot be found. Please try again later or ask a different question.",
|
|
24
25
|
"boxAI.contentAnswers.inlineRateLimitingErrorText": "La capacité de la Box AI est actuellement limitée (nous travaillons à l'élargissement de la bande passante). Veuillez réessayer dans quelques minutes.",
|
|
25
26
|
"boxAI.contentAnswers.intelligenceUnaivalableHeading": "Box AI n’est pas disponible",
|
|
26
27
|
"boxAI.contentAnswers.intelligenceUnaivalableTryAgain": "Veuillez réessayer ultérieurement.",
|
package/i18n/hi-IN.js
CHANGED
|
@@ -21,6 +21,7 @@ export default {
|
|
|
21
21
|
"boxAI.contentAnswers.disabledTooltipPermissionsLoading": "अनुमतियाँ जाँची जा रही हैं...",
|
|
22
22
|
"boxAI.contentAnswers.hasQuestionsTooltip": "Box AI में वापस जाएं",
|
|
23
23
|
"boxAI.contentAnswers.inlineErrorText": "Box AI सेवा अनुपलब्ध थी।",
|
|
24
|
+
"boxAI.contentAnswers.inlineNoContentErrorText": "Relevant content cannot be found. Please try again later or ask a different question.",
|
|
24
25
|
"boxAI.contentAnswers.inlineRateLimitingErrorText": "Box AI के पास फ़िलहाल सीमित क्षमता है (हम बैंडविड्थ बढ़ाने की कोशिश कर रहे हैं)। कृपया कुछ मिनटों में पुनः प्रयास करें।",
|
|
25
26
|
"boxAI.contentAnswers.intelligenceUnaivalableHeading": "Box AI अनुपलब्ध है",
|
|
26
27
|
"boxAI.contentAnswers.intelligenceUnaivalableTryAgain": "कृपया बाद में पुनः प्रयास करें।",
|
package/i18n/it-IT.js
CHANGED
|
@@ -21,6 +21,7 @@ export default {
|
|
|
21
21
|
"boxAI.contentAnswers.disabledTooltipPermissionsLoading": "Controllo autorizzazioni...",
|
|
22
22
|
"boxAI.contentAnswers.hasQuestionsTooltip": "Torna a Box AI",
|
|
23
23
|
"boxAI.contentAnswers.inlineErrorText": "Il servizio Box AI non è disponibile.",
|
|
24
|
+
"boxAI.contentAnswers.inlineNoContentErrorText": "Relevant content cannot be found. Please try again later or ask a different question.",
|
|
24
25
|
"boxAI.contentAnswers.inlineRateLimitingErrorText": "Al momento, la capacità di Box AI è limitata. Ci stiamo dando da fare per espandere la larghezza di banda. Riprova tra qualche minuto.",
|
|
25
26
|
"boxAI.contentAnswers.intelligenceUnaivalableHeading": "Box AI non è disponibile.",
|
|
26
27
|
"boxAI.contentAnswers.intelligenceUnaivalableTryAgain": "Riprova più tardi.",
|
package/i18n/ja-JP.js
CHANGED
|
@@ -21,6 +21,7 @@ export default {
|
|
|
21
21
|
"boxAI.contentAnswers.disabledTooltipPermissionsLoading": "権限を確認中...",
|
|
22
22
|
"boxAI.contentAnswers.hasQuestionsTooltip": "Box AIに戻る",
|
|
23
23
|
"boxAI.contentAnswers.inlineErrorText": "Box AIサービスを利用できませんでした。",
|
|
24
|
+
"boxAI.contentAnswers.inlineNoContentErrorText": "Relevant content cannot be found. Please try again later or ask a different question.",
|
|
24
25
|
"boxAI.contentAnswers.inlineRateLimitingErrorText": "Box AIの容量は、現在限られています (帯域幅の拡張に取り組んでいます)。数分後にもう一度やり直してください。",
|
|
25
26
|
"boxAI.contentAnswers.intelligenceUnaivalableHeading": "Box AIは使用できません",
|
|
26
27
|
"boxAI.contentAnswers.intelligenceUnaivalableTryAgain": "後でもう一度やり直してください。",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"id":"boxAI.contentAnswers.basedOn","description":"Label for the references used for generating the answer from the AI service","defaultMessage":"Based on:"},{"id":"boxAI.contentAnswers.cardTooltipButton","description":"Text for button to open citation reference in a new tab","defaultMessage":"Open document"},{"id":"boxAI.contentAnswers.cardTooltipTitle","description":"Title of citation card tooltip in answer references section","defaultMessage":"From document:"},{"id":"boxAI.contentAnswers.cardTooltipTitleWithDocumentName","description":"Title of citation card tooltip in answer references section with document title","defaultMessage":"From \"{title}\":"},{"id":"boxAI.textInputWithCopyButton.copyButtonSuccessText","description":"Text for copy button in input with copy button indicating copy success","defaultMessage":"Copied"},{"id":"boxAI.contentAnswers.copyToClipboard","description":"Copy to clipboard tooltip","defaultMessage":"Copy to Clipboard"},{"id":"boxAI.contentAnswers.copyToClipboardSucceeded","description":"Notification displayed to the user when the answer has been successfully copied to the clipboard","defaultMessage":"Copied to your clipboard"},{"id":"boxAI.contentAnswers.inlineErrorText","description":"Content Answers error message when the service fails","defaultMessage":"The Box AI service was unavailable."},{"id":"boxAI.contentAnswers.inlineRateLimitingErrorText","description":"Content Answers error message when the service fails due to rate limiting","defaultMessage":"Box AI currently has limited capacity (we're working to expand bandwidth). Please try again in a few minutes."},{"id":"boxAI.contentAnswers.loadingAnswer","description":"Aria label to show while waiting for an answer","defaultMessage":"Loading Answer..."},{"id":"boxAI.contentAnswers.noReferences","description":"Loading message if there are no citations for an answer","defaultMessage":"Response based on general document analysis"},{"id":"boxAI.contentAnswers.referenceAriaLabel","description":"ARIA label designed for screen readers to enhance clarity during the reading of citations, minimizing confusion.","defaultMessage":"Reference {number}"},{"id":"boxAI.contentAnswers.responseInterruptedError","description":"Error message to be displayed within an answer during streaming mode if the answer was interrupted due to a lack of tokens.","defaultMessage":"Response Interrupted"},{"id":"boxAI.contentAnswers.responseFailedError","description":"Error message to be displayed within an answer during streaming mode if there was another error, such as network errors.","defaultMessage":"Response Failed"},{"id":"boxAI.contentAnswers.responseStoppedError","description":"Error message to be displayed within an answer during streaming mode if the answer was stopped using the Stop Response button.","defaultMessage":"Response Stopped"}]
|
|
1
|
+
[{"id":"boxAI.contentAnswers.basedOn","description":"Label for the references used for generating the answer from the AI service","defaultMessage":"Based on:"},{"id":"boxAI.contentAnswers.cardTooltipButton","description":"Text for button to open citation reference in a new tab","defaultMessage":"Open document"},{"id":"boxAI.contentAnswers.cardTooltipTitle","description":"Title of citation card tooltip in answer references section","defaultMessage":"From document:"},{"id":"boxAI.contentAnswers.cardTooltipTitleWithDocumentName","description":"Title of citation card tooltip in answer references section with document title","defaultMessage":"From \"{title}\":"},{"id":"boxAI.textInputWithCopyButton.copyButtonSuccessText","description":"Text for copy button in input with copy button indicating copy success","defaultMessage":"Copied"},{"id":"boxAI.contentAnswers.copyToClipboard","description":"Copy to clipboard tooltip","defaultMessage":"Copy to Clipboard"},{"id":"boxAI.contentAnswers.copyToClipboardSucceeded","description":"Notification displayed to the user when the answer has been successfully copied to the clipboard","defaultMessage":"Copied to your clipboard"},{"id":"boxAI.contentAnswers.inlineNoContentErrorText","description":"Content Answers error message when the service returns 204 (no content)","defaultMessage":"Relevant content cannot be found. Please try again later or ask a different question."},{"id":"boxAI.contentAnswers.inlineErrorText","description":"Content Answers error message when the service fails","defaultMessage":"The Box AI service was unavailable."},{"id":"boxAI.contentAnswers.inlineRateLimitingErrorText","description":"Content Answers error message when the service fails due to rate limiting","defaultMessage":"Box AI currently has limited capacity (we're working to expand bandwidth). Please try again in a few minutes."},{"id":"boxAI.contentAnswers.loadingAnswer","description":"Aria label to show while waiting for an answer","defaultMessage":"Loading Answer..."},{"id":"boxAI.contentAnswers.noReferences","description":"Loading message if there are no citations for an answer","defaultMessage":"Response based on general document analysis"},{"id":"boxAI.contentAnswers.referenceAriaLabel","description":"ARIA label designed for screen readers to enhance clarity during the reading of citations, minimizing confusion.","defaultMessage":"Reference {number}"},{"id":"boxAI.contentAnswers.responseInterruptedError","description":"Error message to be displayed within an answer during streaming mode if the answer was interrupted due to a lack of tokens.","defaultMessage":"Response Interrupted"},{"id":"boxAI.contentAnswers.responseFailedError","description":"Error message to be displayed within an answer during streaming mode if there was another error, such as network errors.","defaultMessage":"Response Failed"},{"id":"boxAI.contentAnswers.responseStoppedError","description":"Error message to be displayed within an answer during streaming mode if the answer was stopped using the Stop Response button.","defaultMessage":"Response Stopped"}]
|
package/i18n/ko-KR.js
CHANGED
|
@@ -21,6 +21,7 @@ export default {
|
|
|
21
21
|
"boxAI.contentAnswers.disabledTooltipPermissionsLoading": "권한 확인 중...",
|
|
22
22
|
"boxAI.contentAnswers.hasQuestionsTooltip": "Box AI로 돌아가기",
|
|
23
23
|
"boxAI.contentAnswers.inlineErrorText": "Box AI 서비스를 사용할 수 없습니다.",
|
|
24
|
+
"boxAI.contentAnswers.inlineNoContentErrorText": "Relevant content cannot be found. Please try again later or ask a different question.",
|
|
24
25
|
"boxAI.contentAnswers.inlineRateLimitingErrorText": "Box AI는 현재 용량이 제한되어 있습니다 (당사는 대역폭 확장을 위해 노력하고 있습니다). 몇 분 후에 다시 시도하십시오.",
|
|
25
26
|
"boxAI.contentAnswers.intelligenceUnaivalableHeading": "Box AI를 사용할 수 없습니다",
|
|
26
27
|
"boxAI.contentAnswers.intelligenceUnaivalableTryAgain": "나중에 다시 시도하십시오.",
|
package/i18n/nb-NO.js
CHANGED
|
@@ -21,6 +21,7 @@ export default {
|
|
|
21
21
|
"boxAI.contentAnswers.disabledTooltipPermissionsLoading": "Kontrollerer tillatelser …",
|
|
22
22
|
"boxAI.contentAnswers.hasQuestionsTooltip": "Gå tilbake til Box AI",
|
|
23
23
|
"boxAI.contentAnswers.inlineErrorText": "Box AI-tjenesten var utilgjengelig.",
|
|
24
|
+
"boxAI.contentAnswers.inlineNoContentErrorText": "Relevant content cannot be found. Please try again later or ask a different question.",
|
|
24
25
|
"boxAI.contentAnswers.inlineRateLimitingErrorText": "Box AI har for øyeblikket begrenset kapasitet (vi jobber for å utvide båndbredden). Prøv igjen om noen få minutter.",
|
|
25
26
|
"boxAI.contentAnswers.intelligenceUnaivalableHeading": "Box AI er utilgjengelig",
|
|
26
27
|
"boxAI.contentAnswers.intelligenceUnaivalableTryAgain": "Prøv igjen senere.",
|
package/i18n/nl-NL.js
CHANGED
|
@@ -21,6 +21,7 @@ export default {
|
|
|
21
21
|
"boxAI.contentAnswers.disabledTooltipPermissionsLoading": "Machtigingen controleren...",
|
|
22
22
|
"boxAI.contentAnswers.hasQuestionsTooltip": "Ga terug naar Box AI Q&A",
|
|
23
23
|
"boxAI.contentAnswers.inlineErrorText": "De Box AI-service was niet beschikbaar.",
|
|
24
|
+
"boxAI.contentAnswers.inlineNoContentErrorText": "Relevant content cannot be found. Please try again later or ask a different question.",
|
|
24
25
|
"boxAI.contentAnswers.inlineRateLimitingErrorText": "Box AI heeft momenteel een beperkte capaciteit (we werken aan het uitbreiden van de bandbreedte). Probeer het over een paar minuten opnieuw.",
|
|
25
26
|
"boxAI.contentAnswers.intelligenceUnaivalableHeading": "Box AI is niet beschikbaar",
|
|
26
27
|
"boxAI.contentAnswers.intelligenceUnaivalableTryAgain": "Probeer het later opnieuw.",
|
package/i18n/pl-PL.js
CHANGED
|
@@ -21,6 +21,7 @@ export default {
|
|
|
21
21
|
"boxAI.contentAnswers.disabledTooltipPermissionsLoading": "Sprawdzanie uprawnień...",
|
|
22
22
|
"boxAI.contentAnswers.hasQuestionsTooltip": "Wróć do usługi Box AI",
|
|
23
23
|
"boxAI.contentAnswers.inlineErrorText": "Usługa Box AI nie była dostępna.",
|
|
24
|
+
"boxAI.contentAnswers.inlineNoContentErrorText": "Relevant content cannot be found. Please try again later or ask a different question.",
|
|
24
25
|
"boxAI.contentAnswers.inlineRateLimitingErrorText": "Box AI ma obecnie ograniczoną możliwość obsługi (pracujemy nad zwiększeniem przepustowości). Spróbuj ponownie za kilka minut.",
|
|
25
26
|
"boxAI.contentAnswers.intelligenceUnaivalableHeading": "Usługa Box AI jest niedostępna",
|
|
26
27
|
"boxAI.contentAnswers.intelligenceUnaivalableTryAgain": "Spróbuj ponownie później.",
|
package/i18n/pt-BR.js
CHANGED
|
@@ -21,6 +21,7 @@ export default {
|
|
|
21
21
|
"boxAI.contentAnswers.disabledTooltipPermissionsLoading": "Verificando permissões...",
|
|
22
22
|
"boxAI.contentAnswers.hasQuestionsTooltip": "Voltar ao Box AI",
|
|
23
23
|
"boxAI.contentAnswers.inlineErrorText": "O serviço do Box AI estava indisponível.",
|
|
24
|
+
"boxAI.contentAnswers.inlineNoContentErrorText": "Relevant content cannot be found. Please try again later or ask a different question.",
|
|
24
25
|
"boxAI.contentAnswers.inlineRateLimitingErrorText": "O Box AI atualmente tem capacidade limitada (estamos trabalhando para expandir a largura de banda). Tente novamente em alguns minutos.",
|
|
25
26
|
"boxAI.contentAnswers.intelligenceUnaivalableHeading": "Box AI está indisponível",
|
|
26
27
|
"boxAI.contentAnswers.intelligenceUnaivalableTryAgain": "Tente novamente mais tarde.",
|
package/i18n/ru-RU.js
CHANGED
|
@@ -21,6 +21,7 @@ export default {
|
|
|
21
21
|
"boxAI.contentAnswers.disabledTooltipPermissionsLoading": "Проверка уровня доступа...",
|
|
22
22
|
"boxAI.contentAnswers.hasQuestionsTooltip": "Возврат к ИИ Box",
|
|
23
23
|
"boxAI.contentAnswers.inlineErrorText": "Служба ИИ Box была недоступна.",
|
|
24
|
+
"boxAI.contentAnswers.inlineNoContentErrorText": "Relevant content cannot be found. Please try again later or ask a different question.",
|
|
24
25
|
"boxAI.contentAnswers.inlineRateLimitingErrorText": "В настоящее время возможности ИИ Box ограничены (мы работаем над увеличением пропускной способности). Повторите попытку через несколько минут.",
|
|
25
26
|
"boxAI.contentAnswers.intelligenceUnaivalableHeading": "ИИ Box недоступен",
|
|
26
27
|
"boxAI.contentAnswers.intelligenceUnaivalableTryAgain": "Повторите попытку позже.",
|
package/i18n/sv-SE.js
CHANGED
|
@@ -21,6 +21,7 @@ export default {
|
|
|
21
21
|
"boxAI.contentAnswers.disabledTooltipPermissionsLoading": "Kontrollerar åtkomstnivå …",
|
|
22
22
|
"boxAI.contentAnswers.hasQuestionsTooltip": "Återgå till Box AI Q&A",
|
|
23
23
|
"boxAI.contentAnswers.inlineErrorText": "Box AI-tjänsten var otillgänglig.",
|
|
24
|
+
"boxAI.contentAnswers.inlineNoContentErrorText": "Relevant content cannot be found. Please try again later or ask a different question.",
|
|
24
25
|
"boxAI.contentAnswers.inlineRateLimitingErrorText": "Box AI har för närvarande begränsad kapacitet (vi arbetar för att utöka bandbredd). Försök igen om några minuter.",
|
|
25
26
|
"boxAI.contentAnswers.intelligenceUnaivalableHeading": "Box AI är inte tillgängligt",
|
|
26
27
|
"boxAI.contentAnswers.intelligenceUnaivalableTryAgain": "Försök igen senare.",
|
package/i18n/tr-TR.js
CHANGED
|
@@ -21,6 +21,7 @@ export default {
|
|
|
21
21
|
"boxAI.contentAnswers.disabledTooltipPermissionsLoading": "İzinler kontrolediliyor...",
|
|
22
22
|
"boxAI.contentAnswers.hasQuestionsTooltip": "Box AI Soruları ve Yanıtları'na dön",
|
|
23
23
|
"boxAI.contentAnswers.inlineErrorText": "Box AI hizmetine ulaşılamadı.",
|
|
24
|
+
"boxAI.contentAnswers.inlineNoContentErrorText": "Relevant content cannot be found. Please try again later or ask a different question.",
|
|
24
25
|
"boxAI.contentAnswers.inlineRateLimitingErrorText": "Box AI şu anda sınırlı kapasiteye sahip (bant genişliğini artırmak üzerinde çalışıyoruz). Lütfen birkaç dakika sonra tekrar deneyin.",
|
|
25
26
|
"boxAI.contentAnswers.intelligenceUnaivalableHeading": "Box AI kullanılamıyor",
|
|
26
27
|
"boxAI.contentAnswers.intelligenceUnaivalableTryAgain": "Lütfen daha sonra tekrar deneyin.",
|
package/i18n/zh-CN.js
CHANGED
|
@@ -21,6 +21,7 @@ export default {
|
|
|
21
21
|
"boxAI.contentAnswers.disabledTooltipPermissionsLoading": "正在选中权限...",
|
|
22
22
|
"boxAI.contentAnswers.hasQuestionsTooltip": "返回至 Box AI 常见问题解答",
|
|
23
23
|
"boxAI.contentAnswers.inlineErrorText": "Box AI 服务不可用。",
|
|
24
|
+
"boxAI.contentAnswers.inlineNoContentErrorText": "Relevant content cannot be found. Please try again later or ask a different question.",
|
|
24
25
|
"boxAI.contentAnswers.inlineRateLimitingErrorText": "Box AI 目前容量有限(我们正在努力扩展带宽)。请在几分钟后重试。",
|
|
25
26
|
"boxAI.contentAnswers.intelligenceUnaivalableHeading": "Box AI 无法使用",
|
|
26
27
|
"boxAI.contentAnswers.intelligenceUnaivalableTryAgain": "请稍后重试。",
|
package/i18n/zh-TW.js
CHANGED
|
@@ -21,6 +21,7 @@ export default {
|
|
|
21
21
|
"boxAI.contentAnswers.disabledTooltipPermissionsLoading": "正在查看權限…",
|
|
22
22
|
"boxAI.contentAnswers.hasQuestionsTooltip": "返回 Box AI",
|
|
23
23
|
"boxAI.contentAnswers.inlineErrorText": "無法使用 Box AI 服務。",
|
|
24
|
+
"boxAI.contentAnswers.inlineNoContentErrorText": "Relevant content cannot be found. Please try again later or ask a different question.",
|
|
24
25
|
"boxAI.contentAnswers.inlineRateLimitingErrorText": "Box AI 目前容量有限 (我們正致力於擴展頻寬)。請過幾分鐘後再試一次。",
|
|
25
26
|
"boxAI.contentAnswers.intelligenceUnaivalableHeading": "無法使用 Box AI",
|
|
26
27
|
"boxAI.contentAnswers.intelligenceUnaivalableTryAgain": "請稍後再試一次。",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@box/box-ai-content-answers",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.51.1",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@box/blueprint-web": "^7.8.0",
|
|
6
6
|
"@box/blueprint-web-assets": "^4.16.0",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"remarkable": "^2.0.1"
|
|
14
14
|
},
|
|
15
15
|
"devDependencies": {
|
|
16
|
-
"@box/blueprint-web": "^7.
|
|
16
|
+
"@box/blueprint-web": "^7.26.0",
|
|
17
17
|
"@box/blueprint-web-assets": "^4.23.0",
|
|
18
18
|
"@box/storybook-utils": "^0.6.1",
|
|
19
19
|
"@testing-library/react": "^15.0.6",
|
|
@@ -52,5 +52,5 @@
|
|
|
52
52
|
"**/*.css"
|
|
53
53
|
],
|
|
54
54
|
"license": "SEE LICENSE IN LICENSE",
|
|
55
|
-
"gitHead": "
|
|
55
|
+
"gitHead": "e065ce29641de99f4dd47486a9f6928da2cfaa74"
|
|
56
56
|
}
|
package/types/lib/types.d.ts
CHANGED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
class o {
|
|
2
|
-
constructor({
|
|
3
|
-
answer: e,
|
|
4
|
-
includeCompletion: t = !0,
|
|
5
|
-
simulateError: s = !1,
|
|
6
|
-
delayChunk: n = 0,
|
|
7
|
-
abortController: i = null
|
|
8
|
-
}) {
|
|
9
|
-
this.data = void 0, this.index = void 0, this.completionReason = void 0, this.simulateError = void 0, this.delayChunk = void 0, this.data = e.split(/\s+/), this.index = 0, this.completionReason = t ? ', "completion_reason": "done"' : "", this.simulateError = s, this.delayChunk = n, i && (i.abort = () => {
|
|
10
|
-
this.simulateError = !0;
|
|
11
|
-
});
|
|
12
|
-
}
|
|
13
|
-
getReader() {
|
|
14
|
-
return {
|
|
15
|
-
read: async () => {
|
|
16
|
-
if (this.index < this.data.length) {
|
|
17
|
-
if (this.index > 1 && (this.delayChunk > 0 && await new Promise((t) => setTimeout(t, this.delayChunk)), this.simulateError))
|
|
18
|
-
throw new Error("Simulated error occurred while reading data");
|
|
19
|
-
const e = {
|
|
20
|
-
value: this.encode(`{"answer": "${this.data[this.index]} "${this.index >= this.data.length - 1 ? this.completionReason : ""}, "context_session": "session"}`),
|
|
21
|
-
done: !1
|
|
22
|
-
};
|
|
23
|
-
return this.index += 1, e;
|
|
24
|
-
}
|
|
25
|
-
return {
|
|
26
|
-
done: !0
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
// eslint-disable-next-line class-methods-use-this
|
|
32
|
-
encode(e) {
|
|
33
|
-
return new TextEncoder().encode(e);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
export {
|
|
37
|
-
o as default
|
|
38
|
-
};
|