@helpai/elements 0.5.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/elements-web-component.esm.js +18 -18
- package/elements-web-component.esm.js.map +4 -4
- package/elements.cjs.js +24 -24
- package/elements.cjs.js.map +4 -4
- package/elements.esm.js +24 -24
- package/elements.esm.js.map +4 -4
- package/elements.js +18 -18
- package/elements.js.map +4 -4
- package/index.d.ts +2 -2
- package/index.mjs +84 -37
- package/package.json +1 -1
- package/schema.d.ts +35 -35
- package/web-component.mjs +84 -37
package/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { A as Asset, B as BlocksConfig, C as ConnectionConfig, a as ConnectionConfigPartial, L as Link, S as ServerConfig, b as SiteConfig, c as StartSessionResponse, W as WidgetConfig, d as WidgetConfigPartial, e as WidgetSettings, f as WidgetSettingsPartial } from './deployment-
|
|
1
|
+
export { A as Asset, B as BlocksConfig, C as ConnectionConfig, a as ConnectionConfigPartial, L as Link, S as ServerConfig, b as SiteConfig, c as StartSessionResponse, W as WidgetConfig, d as WidgetConfigPartial, e as WidgetSettings, f as WidgetSettingsPartial } from './deployment-DhWwzofY.js';
|
|
2
2
|
import 'zod';
|
|
3
3
|
|
|
4
4
|
/**
|
|
@@ -40,7 +40,7 @@ interface ClientStorage {
|
|
|
40
40
|
* populated {@link Strings} map. UI components then read `strings.send` as a
|
|
41
41
|
* normal property access — no per-render lookup, no per-render allocation.
|
|
42
42
|
*/
|
|
43
|
-
type StringKey = "launcherOpen" | "panelTitle" | "composerPlaceholder" | "send" | "stop" | "attach" | "micStart" | "micStop" | "micUnsupported" | "expand" | "collapse" | "fullscreen" | "exitFullscreen" | "resizeHandle" | "popOut" | "close" | "moreActions" | "soundOn" | "soundOff" | "language" | "theme" | "themeAuto" | "themeLight" | "themeDark" | "history" | "historyTitle" | "historyEmpty" | "historyLoading" | "historyNewChat" | "historyBack" | "messagesLoading" | "chatClosed" | "startNewConversation" | "dateToday" | "dateYesterday" | "dateLastWeek" | "dateOlder" | "newConversation" | "dropZone" | "attachmentTooLarge" | "attachmentTooMany" | "attachmentMimeRejected" | "errorRetry" | "errorGeneric" | "loading" | "thinking" | "thoughts" | "usedTool" | "collapseSidebar" | "expandSidebar" | "tabHome" | "tabMessages" | "tabHelp" | "tabNews" | "modulesEmpty" | "moduleBack" | "contentLoading" | "homeGreeting" | "homeGreetingNamed" | "homeGreetingLead" | "homeSearchPlaceholder" | "homeContentTitle" | "helpTitle" | "helpSearchPlaceholder" | "helpEmpty" | "helpLoading" | "helpSearchEmpty" | "newsTitle" | "newsEmpty" | "newsLoading" | "newsBack" | "newsPublishedAt";
|
|
43
|
+
type StringKey = "launcherOpen" | "panelTitle" | "composerPlaceholder" | "send" | "stop" | "attach" | "micStart" | "micStop" | "micUnsupported" | "expand" | "collapse" | "fullscreen" | "exitFullscreen" | "resizeHandle" | "popOut" | "close" | "moreActions" | "soundOn" | "soundOff" | "language" | "theme" | "themeAuto" | "themeLight" | "themeDark" | "history" | "historyTitle" | "historyEmpty" | "historyLoading" | "historyNewChat" | "historyBack" | "messagesLoading" | "chatClosed" | "startNewConversation" | "dateToday" | "dateYesterday" | "dateLastWeek" | "dateOlder" | "newConversation" | "dropZone" | "attachmentTooLarge" | "attachmentTooMany" | "attachmentMimeRejected" | "errorRetry" | "errorGeneric" | "errorRateLimited" | "loading" | "thinking" | "thoughts" | "usedTool" | "collapseSidebar" | "expandSidebar" | "tabHome" | "tabMessages" | "tabHelp" | "tabNews" | "modulesEmpty" | "moduleBack" | "contentLoading" | "homeGreeting" | "homeGreetingNamed" | "homeGreetingLead" | "homeSearchPlaceholder" | "homeContentTitle" | "helpTitle" | "helpSearchPlaceholder" | "helpEmpty" | "helpLoading" | "helpSearchEmpty" | "newsTitle" | "newsEmpty" | "newsLoading" | "newsBack" | "newsPublishedAt";
|
|
44
44
|
/** A partial map for one locale — what overrides look like on the wire. */
|
|
45
45
|
type LocaleStrings = Partial<Record<StringKey, string>>;
|
|
46
46
|
/**
|
package/index.mjs
CHANGED
|
@@ -46,6 +46,7 @@ var STRINGS_EN = {
|
|
|
46
46
|
dateYesterday: "Yesterday",
|
|
47
47
|
dropZone: "Drop files to attach",
|
|
48
48
|
errorGeneric: "Something went wrong",
|
|
49
|
+
errorRateLimited: "Too many requests \u2014 please try again in a moment.",
|
|
49
50
|
errorRetry: "Retry",
|
|
50
51
|
expand: "Expand",
|
|
51
52
|
expandSidebar: "Expand sidebar",
|
|
@@ -936,9 +937,10 @@ function fillRandom(view) {
|
|
|
936
937
|
|
|
937
938
|
// src/stream/types.ts
|
|
938
939
|
var StreamError = class extends Error {
|
|
939
|
-
constructor(message, code, cause) {
|
|
940
|
+
constructor(message, code, status, cause) {
|
|
940
941
|
super(message);
|
|
941
942
|
__publicField(this, "code", code);
|
|
943
|
+
__publicField(this, "status", status);
|
|
942
944
|
__publicField(this, "cause", cause);
|
|
943
945
|
this.name = "StreamError";
|
|
944
946
|
}
|
|
@@ -949,7 +951,7 @@ var log3 = logger.scope("parser");
|
|
|
949
951
|
async function* parseChatStream(response, signal6) {
|
|
950
952
|
if (!response.ok) {
|
|
951
953
|
const text = await response.text().catch(() => "");
|
|
952
|
-
throw new StreamError(`server responded ${response.status}: ${text.slice(0, 200)}`, "server");
|
|
954
|
+
throw new StreamError(`server responded ${response.status}: ${text.slice(0, 200)}`, "server", response.status);
|
|
953
955
|
}
|
|
954
956
|
if (!response.body) throw new StreamError("response has no body", "no-body");
|
|
955
957
|
const reader = response.body.pipeThrough(new TextDecoderStream()).getReader();
|
|
@@ -1113,15 +1115,27 @@ function messageToWireParts(m) {
|
|
|
1113
1115
|
var log4 = logger.scope("transport");
|
|
1114
1116
|
var MAX_RESUME_ATTEMPTS = 3;
|
|
1115
1117
|
var RESUME_BACKOFF_MS = 400;
|
|
1118
|
+
var MAX_REQUEST_RETRIES = 3;
|
|
1119
|
+
var RETRYABLE_STATUS = /* @__PURE__ */ new Set([408, 425, 429, 500, 502, 503, 504]);
|
|
1120
|
+
function backoffMs(attempt) {
|
|
1121
|
+
return RESUME_BACKOFF_MS * 2 ** attempt + Math.floor(Math.random() * 250);
|
|
1122
|
+
}
|
|
1123
|
+
function retryAfterMs(headers) {
|
|
1124
|
+
const raw = headers.get("retry-after");
|
|
1125
|
+
if (!raw) return null;
|
|
1126
|
+
const secs = Number(raw);
|
|
1127
|
+
const ms = Number.isFinite(secs) ? secs * 1e3 : Date.parse(raw) - Date.now();
|
|
1128
|
+
return Number.isFinite(ms) && ms >= 0 ? Math.min(ms, 3e4) : null;
|
|
1129
|
+
}
|
|
1116
1130
|
function sleep(ms, signal6) {
|
|
1117
1131
|
return new Promise((resolve) => {
|
|
1118
|
-
if (signal6
|
|
1132
|
+
if (signal6?.aborted) return resolve();
|
|
1119
1133
|
const id = setTimeout(done, ms);
|
|
1120
1134
|
const onAbort = () => done();
|
|
1121
|
-
signal6
|
|
1135
|
+
signal6?.addEventListener("abort", onAbort, { once: true });
|
|
1122
1136
|
function done() {
|
|
1123
1137
|
clearTimeout(id);
|
|
1124
|
-
signal6
|
|
1138
|
+
signal6?.removeEventListener("abort", onAbort);
|
|
1125
1139
|
resolve();
|
|
1126
1140
|
}
|
|
1127
1141
|
});
|
|
@@ -1375,6 +1389,7 @@ var AgentTransport = class {
|
|
|
1375
1389
|
}
|
|
1376
1390
|
} catch (err) {
|
|
1377
1391
|
if (ctrl.signal.aborted) return true;
|
|
1392
|
+
if (err instanceof StreamError && err.status !== void 0) throw err;
|
|
1378
1393
|
log4.debug("stream segment dropped", { err });
|
|
1379
1394
|
}
|
|
1380
1395
|
return false;
|
|
@@ -1419,13 +1434,23 @@ var AgentTransport = class {
|
|
|
1419
1434
|
url.searchParams.set("resumeAt", String(resumeAt));
|
|
1420
1435
|
return url.toString();
|
|
1421
1436
|
}
|
|
1437
|
+
// JSON requests are idempotent (reads, or full-snapshot writes like
|
|
1438
|
+
// update-settings / mark-read / start-session), so they auto-retry transient
|
|
1439
|
+
// failures. The message POST is NOT in here — re-sending could duplicate the
|
|
1440
|
+
// reply, so it surfaces an error for the user to retry (see `openMessageStream`).
|
|
1422
1441
|
async postJson(path, body, label) {
|
|
1423
|
-
const res = await this.
|
|
1424
|
-
|
|
1425
|
-
|
|
1426
|
-
|
|
1427
|
-
|
|
1428
|
-
|
|
1442
|
+
const res = await this.fetchWithRetry(
|
|
1443
|
+
() => [
|
|
1444
|
+
this.url(path),
|
|
1445
|
+
{
|
|
1446
|
+
method: "POST",
|
|
1447
|
+
credentials: "omit",
|
|
1448
|
+
headers: { "content-type": "application/json", ...this.opts.auth.headers() },
|
|
1449
|
+
body: JSON.stringify(this.withEnvelope(body))
|
|
1450
|
+
}
|
|
1451
|
+
],
|
|
1452
|
+
label
|
|
1453
|
+
);
|
|
1429
1454
|
return this.assertOk(res, label);
|
|
1430
1455
|
}
|
|
1431
1456
|
async postForm(path, body, label) {
|
|
@@ -1438,16 +1463,44 @@ var AgentTransport = class {
|
|
|
1438
1463
|
return this.assertOk(res, label);
|
|
1439
1464
|
}
|
|
1440
1465
|
async getJson(urlOrPath, label) {
|
|
1441
|
-
const res = await this.
|
|
1442
|
-
|
|
1443
|
-
|
|
1444
|
-
|
|
1445
|
-
|
|
1466
|
+
const res = await this.fetchWithRetry(
|
|
1467
|
+
() => [
|
|
1468
|
+
this.withEnvelopeQuery(urlOrPath),
|
|
1469
|
+
{ method: "GET", credentials: "omit", headers: { accept: "application/json", ...this.opts.auth.headers() } }
|
|
1470
|
+
],
|
|
1471
|
+
label
|
|
1472
|
+
);
|
|
1446
1473
|
return this.assertOk(res, label);
|
|
1447
1474
|
}
|
|
1448
|
-
/**
|
|
1475
|
+
/**
|
|
1476
|
+
* Fetch with bounded retries for *transient* failures: retryable statuses
|
|
1477
|
+
* (429 / 5xx / …) and network errors, honoring `Retry-After` (else backoff +
|
|
1478
|
+
* jitter). Terminal statuses (4xx) return immediately for the caller to throw.
|
|
1479
|
+
* Use only for idempotent requests.
|
|
1480
|
+
*/
|
|
1481
|
+
async fetchWithRetry(build, label) {
|
|
1482
|
+
for (let attempt = 0; ; attempt++) {
|
|
1483
|
+
const [reqUrl, init2] = build();
|
|
1484
|
+
let res;
|
|
1485
|
+
try {
|
|
1486
|
+
res = await this.fetchImpl(reqUrl, init2);
|
|
1487
|
+
} catch (err) {
|
|
1488
|
+
if (attempt >= MAX_REQUEST_RETRIES) {
|
|
1489
|
+
throw new StreamError(`${label} failed: network error`, "network", void 0, err);
|
|
1490
|
+
}
|
|
1491
|
+
log4.debug("request network error \u2014 retrying", { label, attempt });
|
|
1492
|
+
await sleep(backoffMs(attempt));
|
|
1493
|
+
continue;
|
|
1494
|
+
}
|
|
1495
|
+
if (res.ok || !RETRYABLE_STATUS.has(res.status) || attempt >= MAX_REQUEST_RETRIES) return res;
|
|
1496
|
+
const wait = retryAfterMs(res.headers) ?? backoffMs(attempt);
|
|
1497
|
+
log4.debug("request retryable status \u2014 retrying", { label, status: res.status, attempt, wait });
|
|
1498
|
+
await sleep(wait);
|
|
1499
|
+
}
|
|
1500
|
+
}
|
|
1501
|
+
/** Throw on non-2xx (with the status attached), otherwise parse the JSON body. */
|
|
1449
1502
|
async assertOk(res, label) {
|
|
1450
|
-
if (!res.ok) throw new StreamError(`${label} failed: ${res.status}`, "server");
|
|
1503
|
+
if (!res.ok) throw new StreamError(`${label} failed: ${res.status}`, "server", res.status);
|
|
1451
1504
|
return await res.json();
|
|
1452
1505
|
}
|
|
1453
1506
|
url(pathOrUrl) {
|
|
@@ -2116,6 +2169,12 @@ var FeedbackBus = class {
|
|
|
2116
2169
|
}
|
|
2117
2170
|
};
|
|
2118
2171
|
|
|
2172
|
+
// src/ui/error-message.ts
|
|
2173
|
+
function errorMessageFor(error, strings) {
|
|
2174
|
+
if (error instanceof StreamError && error.status === 429) return strings.errorRateLimited;
|
|
2175
|
+
return strings.errorGeneric;
|
|
2176
|
+
}
|
|
2177
|
+
|
|
2119
2178
|
// src/ui/launcher.tsx
|
|
2120
2179
|
import { useEffect, useState } from "preact/hooks";
|
|
2121
2180
|
|
|
@@ -4532,6 +4591,7 @@ function ArticleRow({ article, nav }) {
|
|
|
4532
4591
|
function HelpRoot({ transport, strings, config, nav, panelProps }) {
|
|
4533
4592
|
const tags = config.contentTags;
|
|
4534
4593
|
const [state, setState] = useState6("loading");
|
|
4594
|
+
const [errorMsg, setErrorMsg] = useState6(strings.errorGeneric);
|
|
4535
4595
|
const [items, setItems] = useState6([]);
|
|
4536
4596
|
const [query, setQuery] = useState6("");
|
|
4537
4597
|
const [reloadKey, setReloadKey] = useState6(0);
|
|
@@ -4545,6 +4605,7 @@ function HelpRoot({ transport, strings, config, nav, panelProps }) {
|
|
|
4545
4605
|
}).catch((err) => {
|
|
4546
4606
|
if (cancelled) return;
|
|
4547
4607
|
log12.warn("listContent (help) failed", { err });
|
|
4608
|
+
setErrorMsg(errorMessageFor(err, strings));
|
|
4548
4609
|
setState("error");
|
|
4549
4610
|
});
|
|
4550
4611
|
return () => {
|
|
@@ -4559,15 +4620,7 @@ function HelpRoot({ transport, strings, config, nav, panelProps }) {
|
|
|
4559
4620
|
}
|
|
4560
4621
|
if (state === "loading") return /* @__PURE__ */ jsx25(ModuleState, { message: strings.helpLoading, strings });
|
|
4561
4622
|
if (state === "error") {
|
|
4562
|
-
return /* @__PURE__ */ jsx25(
|
|
4563
|
-
ModuleState,
|
|
4564
|
-
{
|
|
4565
|
-
tone: "error",
|
|
4566
|
-
message: strings.errorGeneric,
|
|
4567
|
-
onRetry: () => setReloadKey((k) => k + 1),
|
|
4568
|
-
strings
|
|
4569
|
-
}
|
|
4570
|
-
);
|
|
4623
|
+
return /* @__PURE__ */ jsx25(ModuleState, { tone: "error", message: errorMsg, onRetry: () => setReloadKey((k) => k + 1), strings });
|
|
4571
4624
|
}
|
|
4572
4625
|
if (items.length === 0) return /* @__PURE__ */ jsx25(ModuleState, { message: strings.helpEmpty, strings });
|
|
4573
4626
|
return groupByCategory(items).map(([category, rows]) => /* @__PURE__ */ jsxs20("section", { class: `${p18}-help-group`, children: [
|
|
@@ -4717,6 +4770,7 @@ var log14 = logger.scope("news");
|
|
|
4717
4770
|
function NewsRoot({ transport, strings, config, nav, panelProps }) {
|
|
4718
4771
|
const tags = config.contentTags;
|
|
4719
4772
|
const [state, setState] = useState8("loading");
|
|
4773
|
+
const [errorMsg, setErrorMsg] = useState8(strings.errorGeneric);
|
|
4720
4774
|
const [items, setItems] = useState8([]);
|
|
4721
4775
|
const [reloadKey, setReloadKey] = useState8(0);
|
|
4722
4776
|
useEffect13(() => {
|
|
@@ -4729,6 +4783,7 @@ function NewsRoot({ transport, strings, config, nav, panelProps }) {
|
|
|
4729
4783
|
}).catch((err) => {
|
|
4730
4784
|
if (cancelled) return;
|
|
4731
4785
|
log14.warn("listContent (news) failed", { err });
|
|
4786
|
+
setErrorMsg(errorMessageFor(err, strings));
|
|
4732
4787
|
setState("error");
|
|
4733
4788
|
});
|
|
4734
4789
|
return () => {
|
|
@@ -4738,15 +4793,7 @@ function NewsRoot({ transport, strings, config, nav, panelProps }) {
|
|
|
4738
4793
|
function renderBody() {
|
|
4739
4794
|
if (state === "loading") return /* @__PURE__ */ jsx28(ModuleState, { message: strings.newsLoading, strings });
|
|
4740
4795
|
if (state === "error") {
|
|
4741
|
-
return /* @__PURE__ */ jsx28(
|
|
4742
|
-
ModuleState,
|
|
4743
|
-
{
|
|
4744
|
-
tone: "error",
|
|
4745
|
-
message: strings.errorGeneric,
|
|
4746
|
-
onRetry: () => setReloadKey((k) => k + 1),
|
|
4747
|
-
strings
|
|
4748
|
-
}
|
|
4749
|
-
);
|
|
4796
|
+
return /* @__PURE__ */ jsx28(ModuleState, { tone: "error", message: errorMsg, onRetry: () => setReloadKey((k) => k + 1), strings });
|
|
4750
4797
|
}
|
|
4751
4798
|
if (items.length === 0) return /* @__PURE__ */ jsx28(ModuleState, { message: strings.newsEmpty, strings });
|
|
4752
4799
|
return /* @__PURE__ */ jsx28("div", { class: `${p21}-news-list`, children: items.map((item) => /* @__PURE__ */ jsxs22(
|
|
@@ -5453,7 +5500,7 @@ function App({ options, hostElement, bus }) {
|
|
|
5453
5500
|
emitMessage(bus, options, "assistant", assistantText(assistantMsg));
|
|
5454
5501
|
} catch (error) {
|
|
5455
5502
|
assistantMsg.status = "error";
|
|
5456
|
-
assistantMsg.errorText = error
|
|
5503
|
+
assistantMsg.errorText = errorMessageFor(error, options.strings);
|
|
5457
5504
|
feedback.play("error");
|
|
5458
5505
|
bus.emit("error", error);
|
|
5459
5506
|
options.onError?.(error);
|
package/package.json
CHANGED
package/schema.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { A as Asset, B as BlocksConfig, C as ConnectionConfig, a as ConnectionConfigPartial, E as Endpoints, L as Link, P as PAGE_AREA_SUGGESTIONS, g as PageContext, S as ServerConfig, b as SiteConfig, c as StartSessionResponse, U as UserContext, W as WidgetConfig, d as WidgetConfigPartial, e as WidgetSettings, f as WidgetSettingsPartial, h as assetSchema, i as blocksConfigSchema, j as connectionConfigPartialSchema, k as connectionConfigSchema, l as cssColorSchema, m as cssLengthSchema, n as endpointsSchema, o as linkSchema, p as localeSchema, q as pageContextSchema, s as serverConfigSchema, r as siteConfigSchema, t as startSessionResponseSchema, u as userContextSchema, v as uuid7Schema, w as widgetConfigPartialSchema, x as widgetConfigSchema, y as widgetSettingsPartialSchema, z as widgetSettingsSchema } from './deployment-
|
|
1
|
+
export { A as Asset, B as BlocksConfig, C as ConnectionConfig, a as ConnectionConfigPartial, E as Endpoints, L as Link, P as PAGE_AREA_SUGGESTIONS, g as PageContext, S as ServerConfig, b as SiteConfig, c as StartSessionResponse, U as UserContext, W as WidgetConfig, d as WidgetConfigPartial, e as WidgetSettings, f as WidgetSettingsPartial, h as assetSchema, i as blocksConfigSchema, j as connectionConfigPartialSchema, k as connectionConfigSchema, l as cssColorSchema, m as cssLengthSchema, n as endpointsSchema, o as linkSchema, p as localeSchema, q as pageContextSchema, s as serverConfigSchema, r as siteConfigSchema, t as startSessionResponseSchema, u as userContextSchema, v as uuid7Schema, w as widgetConfigPartialSchema, x as widgetConfigSchema, y as widgetSettingsPartialSchema, z as widgetSettingsSchema } from './deployment-DhWwzofY.js';
|
|
2
2
|
import { z } from 'zod';
|
|
3
3
|
|
|
4
4
|
/**
|
|
@@ -56,9 +56,9 @@ declare const presentationSchema: z.ZodObject<{
|
|
|
56
56
|
inset: z.ZodOptional<z.ZodString>;
|
|
57
57
|
initialSize: z.ZodDefault<z.ZodEnum<{
|
|
58
58
|
fullscreen: "fullscreen";
|
|
59
|
+
expanded: "expanded";
|
|
59
60
|
auto: "auto";
|
|
60
61
|
normal: "normal";
|
|
61
|
-
expanded: "expanded";
|
|
62
62
|
}>>;
|
|
63
63
|
autoSizeBreakpoint: z.ZodDefault<z.ZodNumber>;
|
|
64
64
|
}, z.core.$loose>>;
|
|
@@ -148,9 +148,9 @@ declare const launcherSizeSchema: z.ZodEnum<{
|
|
|
148
148
|
}>;
|
|
149
149
|
type LauncherSize = z.infer<typeof launcherSizeSchema>;
|
|
150
150
|
declare const calloutShapeSchema: z.ZodEnum<{
|
|
151
|
+
callout: "callout";
|
|
151
152
|
pill: "pill";
|
|
152
153
|
bubble: "bubble";
|
|
153
|
-
callout: "callout";
|
|
154
154
|
}>;
|
|
155
155
|
type CalloutShape = z.infer<typeof calloutShapeSchema>;
|
|
156
156
|
declare const calloutPositionSchema: z.ZodEnum<{
|
|
@@ -162,9 +162,9 @@ type CalloutPosition = z.infer<typeof calloutPositionSchema>;
|
|
|
162
162
|
declare const launcherCalloutSchema: z.ZodObject<{
|
|
163
163
|
text: z.ZodDefault<z.ZodString>;
|
|
164
164
|
shape: z.ZodDefault<z.ZodEnum<{
|
|
165
|
+
callout: "callout";
|
|
165
166
|
pill: "pill";
|
|
166
167
|
bubble: "bubble";
|
|
167
|
-
callout: "callout";
|
|
168
168
|
}>>;
|
|
169
169
|
position: z.ZodDefault<z.ZodEnum<{
|
|
170
170
|
auto: "auto";
|
|
@@ -195,9 +195,9 @@ declare const launcherOptionsSchema: z.ZodObject<{
|
|
|
195
195
|
callout: z.ZodOptional<z.ZodObject<{
|
|
196
196
|
text: z.ZodDefault<z.ZodString>;
|
|
197
197
|
shape: z.ZodDefault<z.ZodEnum<{
|
|
198
|
+
callout: "callout";
|
|
198
199
|
pill: "pill";
|
|
199
200
|
bubble: "bubble";
|
|
200
|
-
callout: "callout";
|
|
201
201
|
}>>;
|
|
202
202
|
position: z.ZodDefault<z.ZodEnum<{
|
|
203
203
|
auto: "auto";
|
|
@@ -240,9 +240,9 @@ type LauncherOptions = z.infer<typeof launcherOptionsSchema>;
|
|
|
240
240
|
|
|
241
241
|
declare const initialSizeSchema: z.ZodEnum<{
|
|
242
242
|
fullscreen: "fullscreen";
|
|
243
|
+
expanded: "expanded";
|
|
243
244
|
auto: "auto";
|
|
244
245
|
normal: "normal";
|
|
245
|
-
expanded: "expanded";
|
|
246
246
|
}>;
|
|
247
247
|
declare const resizeOptionsSchema: z.ZodObject<{
|
|
248
248
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
@@ -269,9 +269,9 @@ declare const sizeOptionsSchema: z.ZodObject<{
|
|
|
269
269
|
inset: z.ZodOptional<z.ZodString>;
|
|
270
270
|
initialSize: z.ZodDefault<z.ZodEnum<{
|
|
271
271
|
fullscreen: "fullscreen";
|
|
272
|
+
expanded: "expanded";
|
|
272
273
|
auto: "auto";
|
|
273
274
|
normal: "normal";
|
|
274
|
-
expanded: "expanded";
|
|
275
275
|
}>>;
|
|
276
276
|
autoSizeBreakpoint: z.ZodDefault<z.ZodNumber>;
|
|
277
277
|
}, z.core.$loose>;
|
|
@@ -321,38 +321,38 @@ type FeatureFlags = z.infer<typeof featureFlagsSchema>;
|
|
|
321
321
|
*/
|
|
322
322
|
|
|
323
323
|
declare const actionNameSchema: z.ZodEnum<{
|
|
324
|
+
close: "close";
|
|
324
325
|
expand: "expand";
|
|
325
326
|
fullscreen: "fullscreen";
|
|
326
327
|
popOut: "popOut";
|
|
327
|
-
|
|
328
|
-
language: "language";
|
|
328
|
+
clear: "clear";
|
|
329
329
|
theme: "theme";
|
|
330
|
+
language: "language";
|
|
330
331
|
history: "history";
|
|
331
|
-
clear: "clear";
|
|
332
332
|
sound: "sound";
|
|
333
333
|
}>;
|
|
334
334
|
type ActionName = z.infer<typeof actionNameSchema>;
|
|
335
335
|
declare const headerActionsSchema: z.ZodObject<{
|
|
336
336
|
main: z.ZodDefault<z.ZodArray<z.ZodEnum<{
|
|
337
|
+
close: "close";
|
|
337
338
|
expand: "expand";
|
|
338
339
|
fullscreen: "fullscreen";
|
|
339
340
|
popOut: "popOut";
|
|
340
|
-
|
|
341
|
-
language: "language";
|
|
341
|
+
clear: "clear";
|
|
342
342
|
theme: "theme";
|
|
343
|
+
language: "language";
|
|
343
344
|
history: "history";
|
|
344
|
-
clear: "clear";
|
|
345
345
|
sound: "sound";
|
|
346
346
|
}>>>;
|
|
347
347
|
overflow: z.ZodDefault<z.ZodArray<z.ZodEnum<{
|
|
348
|
+
close: "close";
|
|
348
349
|
expand: "expand";
|
|
349
350
|
fullscreen: "fullscreen";
|
|
350
351
|
popOut: "popOut";
|
|
351
|
-
|
|
352
|
-
language: "language";
|
|
352
|
+
clear: "clear";
|
|
353
353
|
theme: "theme";
|
|
354
|
+
language: "language";
|
|
354
355
|
history: "history";
|
|
355
|
-
clear: "clear";
|
|
356
356
|
sound: "sound";
|
|
357
357
|
}>>>;
|
|
358
358
|
}, z.core.$loose>;
|
|
@@ -361,25 +361,25 @@ type HeaderActions = z.infer<typeof headerActionsSchema>;
|
|
|
361
361
|
declare const headerSchema: z.ZodObject<{
|
|
362
362
|
actions: z.ZodOptional<z.ZodObject<{
|
|
363
363
|
main: z.ZodDefault<z.ZodArray<z.ZodEnum<{
|
|
364
|
+
close: "close";
|
|
364
365
|
expand: "expand";
|
|
365
366
|
fullscreen: "fullscreen";
|
|
366
367
|
popOut: "popOut";
|
|
367
|
-
|
|
368
|
-
language: "language";
|
|
368
|
+
clear: "clear";
|
|
369
369
|
theme: "theme";
|
|
370
|
+
language: "language";
|
|
370
371
|
history: "history";
|
|
371
|
-
clear: "clear";
|
|
372
372
|
sound: "sound";
|
|
373
373
|
}>>>;
|
|
374
374
|
overflow: z.ZodDefault<z.ZodArray<z.ZodEnum<{
|
|
375
|
+
close: "close";
|
|
375
376
|
expand: "expand";
|
|
376
377
|
fullscreen: "fullscreen";
|
|
377
378
|
popOut: "popOut";
|
|
378
|
-
|
|
379
|
-
language: "language";
|
|
379
|
+
clear: "clear";
|
|
380
380
|
theme: "theme";
|
|
381
|
+
language: "language";
|
|
381
382
|
history: "history";
|
|
382
|
-
clear: "clear";
|
|
383
383
|
sound: "sound";
|
|
384
384
|
}>>>;
|
|
385
385
|
}, z.core.$loose>>;
|
|
@@ -396,33 +396,33 @@ type HeaderOptions = z.infer<typeof headerSchema>;
|
|
|
396
396
|
*/
|
|
397
397
|
|
|
398
398
|
declare const feedbackEventSchema: z.ZodEnum<{
|
|
399
|
+
voiceStart: "voiceStart";
|
|
400
|
+
voiceStop: "voiceStop";
|
|
399
401
|
error: "error";
|
|
400
402
|
messageReceived: "messageReceived";
|
|
401
403
|
messageSent: "messageSent";
|
|
402
|
-
voiceStart: "voiceStart";
|
|
403
|
-
voiceStop: "voiceStop";
|
|
404
404
|
}>;
|
|
405
405
|
type FeedbackEvent = z.infer<typeof feedbackEventSchema>;
|
|
406
406
|
declare const soundOptionsSchema: z.ZodObject<{
|
|
407
407
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
408
408
|
volume: z.ZodDefault<z.ZodNumber>;
|
|
409
409
|
events: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
|
|
410
|
+
voiceStart: "voiceStart";
|
|
411
|
+
voiceStop: "voiceStop";
|
|
410
412
|
error: "error";
|
|
411
413
|
messageReceived: "messageReceived";
|
|
412
414
|
messageSent: "messageSent";
|
|
413
|
-
voiceStart: "voiceStart";
|
|
414
|
-
voiceStop: "voiceStop";
|
|
415
415
|
}> & z.core.$partial, z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>>;
|
|
416
416
|
}, z.core.$loose>;
|
|
417
417
|
type SoundOptions = z.infer<typeof soundOptionsSchema>;
|
|
418
418
|
declare const hapticsOptionsSchema: z.ZodObject<{
|
|
419
419
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
420
420
|
events: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
|
|
421
|
+
voiceStart: "voiceStart";
|
|
422
|
+
voiceStop: "voiceStop";
|
|
421
423
|
error: "error";
|
|
422
424
|
messageReceived: "messageReceived";
|
|
423
425
|
messageSent: "messageSent";
|
|
424
|
-
voiceStart: "voiceStart";
|
|
425
|
-
voiceStop: "voiceStop";
|
|
426
426
|
}> & z.core.$partial, z.ZodUnion<readonly [z.ZodBoolean, z.ZodNumber, z.ZodArray<z.ZodNumber>]>>>;
|
|
427
427
|
}, z.core.$loose>;
|
|
428
428
|
type HapticsOptions = z.infer<typeof hapticsOptionsSchema>;
|
|
@@ -431,21 +431,21 @@ declare const feedbackSchema: z.ZodObject<{
|
|
|
431
431
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
432
432
|
volume: z.ZodDefault<z.ZodNumber>;
|
|
433
433
|
events: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
|
|
434
|
+
voiceStart: "voiceStart";
|
|
435
|
+
voiceStop: "voiceStop";
|
|
434
436
|
error: "error";
|
|
435
437
|
messageReceived: "messageReceived";
|
|
436
438
|
messageSent: "messageSent";
|
|
437
|
-
voiceStart: "voiceStart";
|
|
438
|
-
voiceStop: "voiceStop";
|
|
439
439
|
}> & z.core.$partial, z.ZodUnion<readonly [z.ZodBoolean, z.ZodString]>>>;
|
|
440
440
|
}, z.core.$loose>>;
|
|
441
441
|
haptics: z.ZodOptional<z.ZodObject<{
|
|
442
442
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
443
443
|
events: z.ZodOptional<z.ZodRecord<z.ZodEnum<{
|
|
444
|
+
voiceStart: "voiceStart";
|
|
445
|
+
voiceStop: "voiceStop";
|
|
444
446
|
error: "error";
|
|
445
447
|
messageReceived: "messageReceived";
|
|
446
448
|
messageSent: "messageSent";
|
|
447
|
-
voiceStart: "voiceStart";
|
|
448
|
-
voiceStop: "voiceStop";
|
|
449
449
|
}> & z.core.$partial, z.ZodUnion<readonly [z.ZodBoolean, z.ZodNumber, z.ZodArray<z.ZodNumber>]>>>;
|
|
450
450
|
}, z.core.$loose>>;
|
|
451
451
|
}, z.core.$loose>;
|
|
@@ -607,18 +607,18 @@ type I18nOptions = z.infer<typeof i18nSchema>;
|
|
|
607
607
|
*/
|
|
608
608
|
|
|
609
609
|
declare const moduleLayoutSchema: z.ZodEnum<{
|
|
610
|
+
home: "home";
|
|
610
611
|
chat: "chat";
|
|
611
612
|
help: "help";
|
|
612
|
-
home: "home";
|
|
613
613
|
news: "news";
|
|
614
614
|
}>;
|
|
615
615
|
type ModuleLayout = z.infer<typeof moduleLayoutSchema>;
|
|
616
616
|
declare const moduleSchema: z.ZodObject<{
|
|
617
617
|
label: z.ZodString;
|
|
618
618
|
layout: z.ZodEnum<{
|
|
619
|
+
home: "home";
|
|
619
620
|
chat: "chat";
|
|
620
621
|
help: "help";
|
|
621
|
-
home: "home";
|
|
622
622
|
news: "news";
|
|
623
623
|
}>;
|
|
624
624
|
contentTags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
@@ -644,9 +644,9 @@ type ModuleOptions = z.infer<typeof moduleSchema>;
|
|
|
644
644
|
declare const modulesSchema: z.ZodArray<z.ZodObject<{
|
|
645
645
|
label: z.ZodString;
|
|
646
646
|
layout: z.ZodEnum<{
|
|
647
|
+
home: "home";
|
|
647
648
|
chat: "chat";
|
|
648
649
|
help: "help";
|
|
649
|
-
home: "home";
|
|
650
650
|
news: "news";
|
|
651
651
|
}>;
|
|
652
652
|
contentTags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|