@helpai/elements 0.59.3 → 0.59.4
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/configurator.mjs +8 -9
- package/elements-web-component.esm.js +23 -23
- package/elements-web-component.esm.js.map +3 -3
- package/elements.cjs.js +23 -23
- package/elements.cjs.js.map +3 -3
- package/elements.esm.js +23 -23
- package/elements.esm.js.map +3 -3
- package/elements.js +23 -23
- package/elements.js.map +3 -3
- package/index.d.ts +29 -15
- package/index.mjs +23 -40
- package/package.json +1 -1
- package/schema.d.ts +2 -3
- package/schema.json +10 -28
- package/schema.mjs +8 -9
- package/web-component.mjs +23 -40
package/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { A as Asset, B as BlocksConfig, C as ConnectionConfig, a as ConnectionConfigPartial, H as HandshakeResponse, L as Link, S as ServerConfig, b as SiteConfig, W as WidgetConfig, c as WidgetConfigPartial, d as WidgetSettings, e as WidgetSettingsPartial } from './deployment-
|
|
1
|
+
export { A as Asset, B as BlocksConfig, C as ConnectionConfig, a as ConnectionConfigPartial, H as HandshakeResponse, L as Link, S as ServerConfig, b as SiteConfig, W as WidgetConfig, c as WidgetConfigPartial, d as WidgetSettings, e as WidgetSettingsPartial } from './deployment-Bqqyxer1.js';
|
|
2
2
|
import 'zod';
|
|
3
3
|
|
|
4
4
|
/**
|
|
@@ -304,8 +304,6 @@ type ActionList = ActionName[];
|
|
|
304
304
|
type VoiceMode = "local" | "server" | "disabled";
|
|
305
305
|
/** Capability flags. Any field left `undefined` uses its default. */
|
|
306
306
|
interface FeatureFlags {
|
|
307
|
-
/** Show the paperclip button + accept drag/drop/paste. Default: `true`. */
|
|
308
|
-
files?: boolean;
|
|
309
307
|
/** Voice input behaviour (see {@link VoiceMode}). Default: `'local'`. */
|
|
310
308
|
voice?: VoiceMode;
|
|
311
309
|
/**
|
|
@@ -315,11 +313,26 @@ interface FeatureFlags {
|
|
|
315
313
|
*/
|
|
316
314
|
tools?: Array<string | ToolRef>;
|
|
317
315
|
/**
|
|
318
|
-
*
|
|
319
|
-
* approve/reject controls for gated tools.
|
|
320
|
-
*
|
|
316
|
+
* Turn OFF the human-in-the-loop tool UI — the inline ask-questions form and the
|
|
317
|
+
* approve/reject controls for gated tools. Unset/`false` = shown (default); `true`
|
|
318
|
+
* suppresses the UI (the wire still carries the signals; they just won't show).
|
|
321
319
|
*/
|
|
322
320
|
disableHumanInLoop?: boolean;
|
|
321
|
+
/**
|
|
322
|
+
* Turn OFF file uploads — hide the paperclip button + reject drag/drop/paste.
|
|
323
|
+
* Unset/`false` = enabled (default); `true` disables them.
|
|
324
|
+
*/
|
|
325
|
+
disableFileUpload?: boolean;
|
|
326
|
+
}
|
|
327
|
+
/**
|
|
328
|
+
* Features after resolution. The UI reads a POSITIVE `humanInLoop` — `resolveOptions`
|
|
329
|
+
* inverts the wire-input `disableHumanInLoop` once here, so no render site does `!disable…`.
|
|
330
|
+
*/
|
|
331
|
+
interface ResolvedFeatures {
|
|
332
|
+
fileUpload: boolean;
|
|
333
|
+
voice: VoiceMode;
|
|
334
|
+
humanInLoop: boolean;
|
|
335
|
+
tools?: Array<string | ToolRef>;
|
|
323
336
|
}
|
|
324
337
|
/**
|
|
325
338
|
* Client-side attachment limits. Server enforcement is still required —
|
|
@@ -715,8 +728,12 @@ interface ModuleOptions extends HomeConfig {
|
|
|
715
728
|
}
|
|
716
729
|
/** The `modules` block is an ordered list of tabs (max 4). */
|
|
717
730
|
type ModulesOptions = ModuleOptions[];
|
|
718
|
-
/**
|
|
719
|
-
|
|
731
|
+
/**
|
|
732
|
+
* A resolved tab (stable `id` filled, defaults applied). The `home` boolean flags are POSITIVE
|
|
733
|
+
* (`showGreeting`/`showSearchBar`/`showRecentConversations`) — `resolveModules` inverts the wire-input
|
|
734
|
+
* `hide*` once, so no render site does `!hide…`. Present only for `home` tabs.
|
|
735
|
+
*/
|
|
736
|
+
interface ResolvedModule extends Omit<HomeConfig, "hideGreeting" | "hideSearchBar" | "hideRecentConversations"> {
|
|
720
737
|
/** Stable id for nav + last-tab persistence (`id` ?? first `contentTags` ?? `layout`, deduped). */
|
|
721
738
|
id: string;
|
|
722
739
|
/** i18n key or literal — resolved at render via the i18n strings. */
|
|
@@ -724,6 +741,9 @@ interface ResolvedModule extends HomeConfig {
|
|
|
724
741
|
layout: ModuleLayout;
|
|
725
742
|
/** Content tag scope — the `tags` filter (omitted for `chat`). */
|
|
726
743
|
contentTags?: string[];
|
|
744
|
+
showGreeting?: boolean;
|
|
745
|
+
showSearchBar?: boolean;
|
|
746
|
+
showRecentConversations?: boolean;
|
|
727
747
|
}
|
|
728
748
|
/** Fully-resolved modules block exposed on {@link ResolvedOptions}. */
|
|
729
749
|
interface ResolvedModules {
|
|
@@ -847,8 +867,6 @@ interface BehaviorOptions {
|
|
|
847
867
|
showToolCalls?: boolean;
|
|
848
868
|
/** Show citation sources (web links + document references) in the transcript. Default `false`. */
|
|
849
869
|
showSources?: boolean;
|
|
850
|
-
/** Fade the message list at its scroll edges (gradient mask). Default `true`. */
|
|
851
|
-
scrollFade?: boolean;
|
|
852
870
|
/** Turn OFF the 👍/👎 feedback controls on assistant replies. Unset/`false` = shown (default). */
|
|
853
871
|
disableMessageFeedback?: boolean;
|
|
854
872
|
}
|
|
@@ -1165,13 +1183,9 @@ interface ResolvedOptions {
|
|
|
1165
1183
|
showToolCalls: boolean;
|
|
1166
1184
|
/** Show citation sources (web links + document references) in the transcript. Default `false`. */
|
|
1167
1185
|
showSources: boolean;
|
|
1168
|
-
/** Fade the message list at its scroll edges (gradient mask). Default `true`. */
|
|
1169
|
-
scrollFade: boolean;
|
|
1170
1186
|
/** Show 👍/👎 feedback controls on assistant replies. Default `true`. */
|
|
1171
1187
|
enableMessageFeedback: boolean;
|
|
1172
|
-
features:
|
|
1173
|
-
tools?: Array<string | ToolRef>;
|
|
1174
|
-
};
|
|
1188
|
+
features: ResolvedFeatures;
|
|
1175
1189
|
/** Resolved event-driven forms — ordered list + trigger index. */
|
|
1176
1190
|
forms: ResolvedForms;
|
|
1177
1191
|
endpoints: Required<Endpoints>;
|
package/index.mjs
CHANGED
|
@@ -29,7 +29,7 @@ var BRAND = {
|
|
|
29
29
|
};
|
|
30
30
|
|
|
31
31
|
// src/core/version.ts
|
|
32
|
-
var ELEMENTS_VERSION = true ? "0.59.
|
|
32
|
+
var ELEMENTS_VERSION = true ? "0.59.4" : "0.0.0-dev";
|
|
33
33
|
var ELEMENTS_VERSION_PARAM = "_ev";
|
|
34
34
|
|
|
35
35
|
// src/i18n/strings.ts
|
|
@@ -1029,9 +1029,7 @@ var DEFAULT_ATTACHMENTS = {
|
|
|
1029
1029
|
accept: "*/*"
|
|
1030
1030
|
};
|
|
1031
1031
|
var DEFAULT_FEATURES = {
|
|
1032
|
-
|
|
1033
|
-
voice: "local",
|
|
1034
|
-
disableHumanInLoop: false
|
|
1032
|
+
voice: "local"
|
|
1035
1033
|
};
|
|
1036
1034
|
var DEFAULT_FORMS = { list: [], byTrigger: {} };
|
|
1037
1035
|
var DEFAULT_TRACKING = {
|
|
@@ -1106,12 +1104,11 @@ function resolveOptions(rawOpts) {
|
|
|
1106
1104
|
showReasoning: behavior.showReasoning ?? false,
|
|
1107
1105
|
showToolCalls: behavior.showToolCalls ?? false,
|
|
1108
1106
|
showSources: behavior.showSources ?? false,
|
|
1109
|
-
scrollFade: behavior.scrollFade ?? true,
|
|
1110
1107
|
enableMessageFeedback: !(behavior.disableMessageFeedback ?? false),
|
|
1111
1108
|
features: {
|
|
1112
|
-
files: opts.features?.files ?? DEFAULT_FEATURES.files,
|
|
1113
1109
|
voice: opts.features?.voice ?? DEFAULT_FEATURES.voice,
|
|
1114
|
-
|
|
1110
|
+
fileUpload: !(opts.features?.disableFileUpload ?? false),
|
|
1111
|
+
humanInLoop: !(opts.features?.disableHumanInLoop ?? false),
|
|
1115
1112
|
tools: opts.features?.tools
|
|
1116
1113
|
},
|
|
1117
1114
|
forms: resolveForms(opts.forms, locale),
|
|
@@ -1225,9 +1222,9 @@ function resolveModules(overrides) {
|
|
|
1225
1222
|
if (m.layout === "home") {
|
|
1226
1223
|
resolved.brandName = m.brandName;
|
|
1227
1224
|
resolved.greetingText = m.greetingText;
|
|
1228
|
-
resolved.
|
|
1229
|
-
resolved.
|
|
1230
|
-
resolved.
|
|
1225
|
+
resolved.showGreeting = !(m.hideGreeting ?? false);
|
|
1226
|
+
resolved.showSearchBar = !(m.hideSearchBar ?? false);
|
|
1227
|
+
resolved.showRecentConversations = !(m.hideRecentConversations ?? false);
|
|
1231
1228
|
if (m.userAvatars && m.userAvatars.length > 0) resolved.userAvatars = m.userAvatars;
|
|
1232
1229
|
if (m.status) resolved.status = m.status;
|
|
1233
1230
|
resolved.contentBlockTitle = m.contentBlockTitle;
|
|
@@ -1436,7 +1433,6 @@ var BEHAVIOR_ATTRS = [
|
|
|
1436
1433
|
["show-reasoning", "showReasoning", boolAttr],
|
|
1437
1434
|
["show-tool-calls", "showToolCalls", boolAttr],
|
|
1438
1435
|
["show-sources", "showSources", boolAttr],
|
|
1439
|
-
["scroll-fade", "scrollFade", boolAttr],
|
|
1440
1436
|
["disable-message-feedback", "disableMessageFeedback", boolAttr]
|
|
1441
1437
|
];
|
|
1442
1438
|
var I18N_ATTRS = [["locale", "locale"]];
|
|
@@ -1448,7 +1444,7 @@ var LAUNCHER_ATTRS = [
|
|
|
1448
1444
|
["launcher-hidden", "hidden", boolAttr]
|
|
1449
1445
|
];
|
|
1450
1446
|
var FEATURE_ATTRS = [
|
|
1451
|
-
["features-
|
|
1447
|
+
["features-disable-file-upload", "disableFileUpload", boolAttr],
|
|
1452
1448
|
["features-voice", "voice", (v) => v],
|
|
1453
1449
|
["features-tools", "tools", csv]
|
|
1454
1450
|
];
|
|
@@ -4500,7 +4496,7 @@ function Composer({ options, transport, feedback, bus, isStreaming, onSend, onSt
|
|
|
4500
4496
|
const [voiceOn, setVoiceOn] = useState2(false);
|
|
4501
4497
|
const taRef = useRef2(null);
|
|
4502
4498
|
const fileRef = useRef2(null);
|
|
4503
|
-
const
|
|
4499
|
+
const fileUploadEnabled = options.features.fileUpload;
|
|
4504
4500
|
const voiceMode = options.features.voice;
|
|
4505
4501
|
const [voice, setVoice] = useState2(
|
|
4506
4502
|
() => createVoice(voiceMode, options.locale, (blob, type) => transport.transcribe(blob, type))
|
|
@@ -4557,7 +4553,7 @@ function Composer({ options, transport, feedback, bus, isStreaming, onSend, onSt
|
|
|
4557
4553
|
"input, textarea, [contenteditable]:not([contenteditable='false'])"
|
|
4558
4554
|
);
|
|
4559
4555
|
if (editable && editable !== ta) return;
|
|
4560
|
-
if (
|
|
4556
|
+
if (fileUploadEnabled) {
|
|
4561
4557
|
const result = ingest(data.items, attsRef.current, options.attachments);
|
|
4562
4558
|
if (result.accepted.length > 0) {
|
|
4563
4559
|
e.preventDefault();
|
|
@@ -4576,7 +4572,7 @@ function Composer({ options, transport, feedback, bus, isStreaming, onSend, onSt
|
|
|
4576
4572
|
};
|
|
4577
4573
|
panel.addEventListener("paste", onPaste);
|
|
4578
4574
|
return () => panel.removeEventListener("paste", onPaste);
|
|
4579
|
-
}, [
|
|
4575
|
+
}, [fileUploadEnabled, options.attachments, p7]);
|
|
4580
4576
|
const send = () => {
|
|
4581
4577
|
const trimmed = text.trim();
|
|
4582
4578
|
if (!trimmed && atts.length === 0) return;
|
|
@@ -4646,7 +4642,7 @@ function Composer({ options, transport, feedback, bus, isStreaming, onSend, onSt
|
|
|
4646
4642
|
atts.length > 0 ? /* @__PURE__ */ jsx6("div", { class: `${p7}-attachments`, children: atts.map((a) => /* @__PURE__ */ jsx6(AttachmentChip, { attachment: a, onRemove: () => removeAtt(a.id) }, a.id)) }) : null,
|
|
4647
4643
|
/* @__PURE__ */ jsxs5("div", { class: `${p7}-composer-row`, children: [
|
|
4648
4644
|
/* @__PURE__ */ jsxs5("div", { class: `${p7}-composer-actions`, children: [
|
|
4649
|
-
|
|
4645
|
+
fileUploadEnabled ? /* @__PURE__ */ jsx6(
|
|
4650
4646
|
"button",
|
|
4651
4647
|
{
|
|
4652
4648
|
type: "button",
|
|
@@ -6403,7 +6399,6 @@ function MessageList({
|
|
|
6403
6399
|
showReasoning,
|
|
6404
6400
|
showToolCalls,
|
|
6405
6401
|
showSources,
|
|
6406
|
-
scrollFade,
|
|
6407
6402
|
enableMessageFeedback,
|
|
6408
6403
|
onFeedback,
|
|
6409
6404
|
loading,
|
|
@@ -6424,7 +6419,6 @@ function MessageList({
|
|
|
6424
6419
|
const inInteractionGrace = () => interactingRef.current || performance.now() - interactionEndedAtRef.current < INTERACTION_GRACE_MS;
|
|
6425
6420
|
const autoPinAtRef = useRef5(0);
|
|
6426
6421
|
const syncFade = (el) => {
|
|
6427
|
-
if (!scrollFade) return;
|
|
6428
6422
|
const overflowing = el.scrollHeight - el.clientHeight > 1;
|
|
6429
6423
|
el.dataset.fadeTop = overflowing && el.scrollTop > 1 ? "true" : "false";
|
|
6430
6424
|
el.dataset.fadeBottom = overflowing && el.scrollHeight - el.scrollTop - el.clientHeight > 1 ? "true" : "false";
|
|
@@ -6670,21 +6664,11 @@ function MessageList({
|
|
|
6670
6664
|
rows.push(markerRow(marker));
|
|
6671
6665
|
}
|
|
6672
6666
|
return /* @__PURE__ */ jsxs16("div", { class: `${p18}-list-wrap`, children: [
|
|
6673
|
-
/* @__PURE__ */ jsxs16(
|
|
6674
|
-
"div",
|
|
6675
|
-
|
|
6676
|
-
|
|
6677
|
-
|
|
6678
|
-
role: "log",
|
|
6679
|
-
"aria-live": "polite",
|
|
6680
|
-
"aria-relevant": "additions text",
|
|
6681
|
-
children: [
|
|
6682
|
-
loading && messages.value.length === 0 ? /* @__PURE__ */ jsx20("div", { class: `${p18}-list-loading`, role: "status", children: strings.conversationLoading }) : null,
|
|
6683
|
-
rows,
|
|
6684
|
-
form && !inlineForm ? /* @__PURE__ */ jsx20(FormGate, { form: form.form, strings, onSubmit: form.onSubmit, onSkip: form.onSkip }) : null
|
|
6685
|
-
]
|
|
6686
|
-
}
|
|
6687
|
-
),
|
|
6667
|
+
/* @__PURE__ */ jsxs16("div", { ref, class: `${p18}-list ${p18}-list--fade`, role: "log", "aria-live": "polite", "aria-relevant": "additions text", children: [
|
|
6668
|
+
loading && messages.value.length === 0 ? /* @__PURE__ */ jsx20("div", { class: `${p18}-list-loading`, role: "status", children: strings.conversationLoading }) : null,
|
|
6669
|
+
rows,
|
|
6670
|
+
form && !inlineForm ? /* @__PURE__ */ jsx20(FormGate, { form: form.form, strings, onSubmit: form.onSubmit, onSkip: form.onSkip }) : null
|
|
6671
|
+
] }),
|
|
6688
6672
|
showJump ? /* @__PURE__ */ jsx20(
|
|
6689
6673
|
"button",
|
|
6690
6674
|
{
|
|
@@ -7053,7 +7037,6 @@ function PanelContent(props2) {
|
|
|
7053
7037
|
showReasoning: options.showReasoning,
|
|
7054
7038
|
showToolCalls: options.showToolCalls,
|
|
7055
7039
|
showSources: options.showSources,
|
|
7056
|
-
scrollFade: options.scrollFade,
|
|
7057
7040
|
enableMessageFeedback: options.enableMessageFeedback,
|
|
7058
7041
|
onFeedback: onMessageFeedback,
|
|
7059
7042
|
loading: loadingMessages,
|
|
@@ -7600,13 +7583,13 @@ function HomeRoot(props2) {
|
|
|
7600
7583
|
const [content, setContent] = useState12([]);
|
|
7601
7584
|
const tagsKey = config.contentTags?.join(",");
|
|
7602
7585
|
useEffect11(() => {
|
|
7603
|
-
if (config.
|
|
7586
|
+
if (config.showRecentConversations === false) return;
|
|
7604
7587
|
let cancelled = false;
|
|
7605
7588
|
transport.listConversations({ limit: 1 }).then((res) => !cancelled && setRecent(res.conversations?.[0] ?? null)).catch((err) => !cancelled && log14.warn("listConversations (home) failed", { err }));
|
|
7606
7589
|
return () => {
|
|
7607
7590
|
cancelled = true;
|
|
7608
7591
|
};
|
|
7609
|
-
}, [transport, config.
|
|
7592
|
+
}, [transport, config.showRecentConversations]);
|
|
7610
7593
|
useEffect11(() => {
|
|
7611
7594
|
if (!config.contentTags?.length) return;
|
|
7612
7595
|
let cancelled = false;
|
|
@@ -7634,13 +7617,13 @@ function HomeRoot(props2) {
|
|
|
7634
7617
|
/* @__PURE__ */ jsx32(HeaderActions, { panelProps, variant: "plain" })
|
|
7635
7618
|
] })
|
|
7636
7619
|
] }),
|
|
7637
|
-
|
|
7620
|
+
config.showGreeting !== false ? /* @__PURE__ */ jsxs26(Fragment7, { children: [
|
|
7638
7621
|
/* @__PURE__ */ jsx32("h1", { class: `${p28}-home-greeting`, "data-testid": TID.homeGreeting, children: greeting.title }),
|
|
7639
7622
|
greeting.subtitle ? /* @__PURE__ */ jsx32("p", { class: `${p28}-home-lead`, children: greeting.subtitle }) : null
|
|
7640
7623
|
] }) : null
|
|
7641
7624
|
] }),
|
|
7642
7625
|
/* @__PURE__ */ jsxs26("div", { class: `${p28}-home-cards`, children: [
|
|
7643
|
-
|
|
7626
|
+
config.showSearchBar !== false ? /* @__PURE__ */ jsx32(
|
|
7644
7627
|
HomeSearchButton,
|
|
7645
7628
|
{
|
|
7646
7629
|
placeholder: strings.homeSearchPlaceholder,
|
|
@@ -8793,12 +8776,12 @@ function App({ options, hostElement, bus }) {
|
|
|
8793
8776
|
);
|
|
8794
8777
|
const toolInteraction = useMemo3(
|
|
8795
8778
|
() => ({
|
|
8796
|
-
humanInLoop:
|
|
8779
|
+
humanInLoop: options.features.humanInLoop,
|
|
8797
8780
|
onResult: handleToolResult,
|
|
8798
8781
|
onDecision: handleToolDecision,
|
|
8799
8782
|
onEdit: handleToolEdit
|
|
8800
8783
|
}),
|
|
8801
|
-
[options.features.
|
|
8784
|
+
[options.features.humanInLoop, handleToolResult, handleToolDecision, handleToolEdit]
|
|
8802
8785
|
);
|
|
8803
8786
|
const userMessageCount = () => messagesSig.value.reduce((n, m) => n + (m.role === "user" ? 1 : 0), 0);
|
|
8804
8787
|
const effectiveForms = options.forms.list.length > 0 ? options.forms : remoteForms ?? options.forms;
|
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, H as HandshakeResponse, L as Link, P as PAGE_AREA_SUGGESTIONS, f as PageContext, S as ServerConfig, b as SiteConfig, U as UserContext, W as WidgetConfig, c as WidgetConfigPartial, d as WidgetSettings, e as WidgetSettingsPartial, g as assetSchema, h as blocksConfigSchema, i as connectionConfigPartialSchema, j as connectionConfigSchema, k as cssColorSchema, l as cssLengthSchema, m as endpointsSchema, n as handshakeResponseSchema, o as linkSchema, p as localeSchema, q as pageContextSchema, s as serverConfigSchema, r as siteConfigSchema, u as userContextSchema, t as uuid7Schema, w as widgetConfigPartialSchema, v as widgetConfigSchema, x as widgetSettingsPartialSchema, y as widgetSettingsSchema } from './deployment-
|
|
1
|
+
export { A as Asset, B as BlocksConfig, C as ConnectionConfig, a as ConnectionConfigPartial, E as Endpoints, H as HandshakeResponse, L as Link, P as PAGE_AREA_SUGGESTIONS, f as PageContext, S as ServerConfig, b as SiteConfig, U as UserContext, W as WidgetConfig, c as WidgetConfigPartial, d as WidgetSettings, e as WidgetSettingsPartial, g as assetSchema, h as blocksConfigSchema, i as connectionConfigPartialSchema, j as connectionConfigSchema, k as cssColorSchema, l as cssLengthSchema, m as endpointsSchema, n as handshakeResponseSchema, o as linkSchema, p as localeSchema, q as pageContextSchema, s as serverConfigSchema, r as siteConfigSchema, u as userContextSchema, t as uuid7Schema, w as widgetConfigPartialSchema, v as widgetConfigSchema, x as widgetSettingsPartialSchema, y as widgetSettingsSchema } from './deployment-Bqqyxer1.js';
|
|
2
2
|
import { z } from 'zod';
|
|
3
3
|
|
|
4
4
|
/**
|
|
@@ -84,7 +84,6 @@ declare const behaviorSchema: z.ZodObject<{
|
|
|
84
84
|
showReasoning: z.ZodDefault<z.ZodBoolean>;
|
|
85
85
|
showToolCalls: z.ZodDefault<z.ZodBoolean>;
|
|
86
86
|
showSources: z.ZodDefault<z.ZodBoolean>;
|
|
87
|
-
scrollFade: z.ZodDefault<z.ZodBoolean>;
|
|
88
87
|
disableMessageFeedback: z.ZodDefault<z.ZodBoolean>;
|
|
89
88
|
}, z.core.$loose>;
|
|
90
89
|
type Behavior = z.infer<typeof behaviorSchema>;
|
|
@@ -298,7 +297,7 @@ declare const toolRefSchema: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
|
|
|
298
297
|
config: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
299
298
|
}, z.core.$loose>]>;
|
|
300
299
|
declare const featureFlagsSchema: z.ZodObject<{
|
|
301
|
-
|
|
300
|
+
disableFileUpload: z.ZodDefault<z.ZodBoolean>;
|
|
302
301
|
voice: z.ZodDefault<z.ZodEnum<{
|
|
303
302
|
server: "server";
|
|
304
303
|
local: "local";
|
package/schema.json
CHANGED
|
@@ -485,11 +485,6 @@
|
|
|
485
485
|
"description": "Show the citation sources behind an answer (web links + document/file references) in the transcript. `false` (default) hides them.",
|
|
486
486
|
"type": "boolean"
|
|
487
487
|
},
|
|
488
|
-
"scrollFade": {
|
|
489
|
-
"default": true,
|
|
490
|
-
"description": "Fade the message list at its scroll edges with a soft gradient mask (the fade lifts at the very top/bottom). `true` (default) enables it; `false` shows hard edges.",
|
|
491
|
-
"type": "boolean"
|
|
492
|
-
},
|
|
493
488
|
"disableMessageFeedback": {
|
|
494
489
|
"default": false,
|
|
495
490
|
"description": "Turn OFF the 👍/👎 feedback controls under each assistant reply. Unset/`false` = shown (default), `true` = hidden. A choice fires the `messageFeedback` event and is POSTed best-effort to `/pai/message-feedback`.",
|
|
@@ -502,7 +497,6 @@
|
|
|
502
497
|
"showReasoning",
|
|
503
498
|
"showToolCalls",
|
|
504
499
|
"showSources",
|
|
505
|
-
"scrollFade",
|
|
506
500
|
"disableMessageFeedback"
|
|
507
501
|
],
|
|
508
502
|
"additionalProperties": {},
|
|
@@ -515,7 +509,6 @@
|
|
|
515
509
|
{
|
|
516
510
|
"startMinimized": false,
|
|
517
511
|
"responseMode": "buffered",
|
|
518
|
-
"scrollFade": false,
|
|
519
512
|
"disableMessageFeedback": true
|
|
520
513
|
}
|
|
521
514
|
]
|
|
@@ -1259,9 +1252,9 @@
|
|
|
1259
1252
|
"features": {
|
|
1260
1253
|
"type": "object",
|
|
1261
1254
|
"properties": {
|
|
1262
|
-
"
|
|
1263
|
-
"default":
|
|
1264
|
-
"description": "
|
|
1255
|
+
"disableFileUpload": {
|
|
1256
|
+
"default": false,
|
|
1257
|
+
"description": "Turn OFF file uploads — hide the paperclip button + reject drag/drop/paste. Unset/`false` = enabled (default), `true` = disabled.",
|
|
1265
1258
|
"type": "boolean"
|
|
1266
1259
|
},
|
|
1267
1260
|
"voice": {
|
|
@@ -1316,7 +1309,7 @@
|
|
|
1316
1309
|
}
|
|
1317
1310
|
},
|
|
1318
1311
|
"required": [
|
|
1319
|
-
"
|
|
1312
|
+
"disableFileUpload",
|
|
1320
1313
|
"voice",
|
|
1321
1314
|
"disableHumanInLoop"
|
|
1322
1315
|
],
|
|
@@ -1324,15 +1317,13 @@
|
|
|
1324
1317
|
"description": "Capability flags — file upload, voice mode, and the tools the assistant may invoke.",
|
|
1325
1318
|
"examples": [
|
|
1326
1319
|
{
|
|
1327
|
-
"files": true,
|
|
1328
1320
|
"voice": "local"
|
|
1329
1321
|
},
|
|
1330
1322
|
{
|
|
1331
|
-
"
|
|
1323
|
+
"disableFileUpload": true,
|
|
1332
1324
|
"voice": "disabled"
|
|
1333
1325
|
},
|
|
1334
1326
|
{
|
|
1335
|
-
"files": true,
|
|
1336
1327
|
"voice": "server",
|
|
1337
1328
|
"tools": [
|
|
1338
1329
|
"tool:send-money"
|
|
@@ -2355,11 +2346,6 @@
|
|
|
2355
2346
|
"description": "Show the citation sources behind an answer (web links + document/file references) in the transcript. `false` (default) hides them.",
|
|
2356
2347
|
"type": "boolean"
|
|
2357
2348
|
},
|
|
2358
|
-
"scrollFade": {
|
|
2359
|
-
"default": true,
|
|
2360
|
-
"description": "Fade the message list at its scroll edges with a soft gradient mask (the fade lifts at the very top/bottom). `true` (default) enables it; `false` shows hard edges.",
|
|
2361
|
-
"type": "boolean"
|
|
2362
|
-
},
|
|
2363
2349
|
"disableMessageFeedback": {
|
|
2364
2350
|
"default": false,
|
|
2365
2351
|
"description": "Turn OFF the 👍/👎 feedback controls under each assistant reply. Unset/`false` = shown (default), `true` = hidden. A choice fires the `messageFeedback` event and is POSTed best-effort to `/pai/message-feedback`.",
|
|
@@ -2372,7 +2358,6 @@
|
|
|
2372
2358
|
"showReasoning",
|
|
2373
2359
|
"showToolCalls",
|
|
2374
2360
|
"showSources",
|
|
2375
|
-
"scrollFade",
|
|
2376
2361
|
"disableMessageFeedback"
|
|
2377
2362
|
],
|
|
2378
2363
|
"additionalProperties": {},
|
|
@@ -2385,7 +2370,6 @@
|
|
|
2385
2370
|
{
|
|
2386
2371
|
"startMinimized": false,
|
|
2387
2372
|
"responseMode": "buffered",
|
|
2388
|
-
"scrollFade": false,
|
|
2389
2373
|
"disableMessageFeedback": true
|
|
2390
2374
|
}
|
|
2391
2375
|
]
|
|
@@ -3129,9 +3113,9 @@
|
|
|
3129
3113
|
"features": {
|
|
3130
3114
|
"type": "object",
|
|
3131
3115
|
"properties": {
|
|
3132
|
-
"
|
|
3133
|
-
"default":
|
|
3134
|
-
"description": "
|
|
3116
|
+
"disableFileUpload": {
|
|
3117
|
+
"default": false,
|
|
3118
|
+
"description": "Turn OFF file uploads — hide the paperclip button + reject drag/drop/paste. Unset/`false` = enabled (default), `true` = disabled.",
|
|
3135
3119
|
"type": "boolean"
|
|
3136
3120
|
},
|
|
3137
3121
|
"voice": {
|
|
@@ -3186,7 +3170,7 @@
|
|
|
3186
3170
|
}
|
|
3187
3171
|
},
|
|
3188
3172
|
"required": [
|
|
3189
|
-
"
|
|
3173
|
+
"disableFileUpload",
|
|
3190
3174
|
"voice",
|
|
3191
3175
|
"disableHumanInLoop"
|
|
3192
3176
|
],
|
|
@@ -3194,15 +3178,13 @@
|
|
|
3194
3178
|
"description": "Capability flags — file upload, voice mode, and the tools the assistant may invoke.",
|
|
3195
3179
|
"examples": [
|
|
3196
3180
|
{
|
|
3197
|
-
"files": true,
|
|
3198
3181
|
"voice": "local"
|
|
3199
3182
|
},
|
|
3200
3183
|
{
|
|
3201
|
-
"
|
|
3184
|
+
"disableFileUpload": true,
|
|
3202
3185
|
"voice": "disabled"
|
|
3203
3186
|
},
|
|
3204
3187
|
{
|
|
3205
|
-
"files": true,
|
|
3206
3188
|
"voice": "server",
|
|
3207
3189
|
"tools": [
|
|
3208
3190
|
"tool:send-money"
|
package/schema.mjs
CHANGED
|
@@ -131,16 +131,13 @@ var behaviorSchema = z4.object({
|
|
|
131
131
|
showSources: z4.boolean().default(false).describe(
|
|
132
132
|
"Show the citation sources behind an answer (web links + document/file references) in the transcript. `false` (default) hides them."
|
|
133
133
|
),
|
|
134
|
-
scrollFade: z4.boolean().default(true).describe(
|
|
135
|
-
"Fade the message list at its scroll edges with a soft gradient mask (the fade lifts at the very top/bottom). `true` (default) enables it; `false` shows hard edges."
|
|
136
|
-
),
|
|
137
134
|
disableMessageFeedback: z4.boolean().default(false).describe(
|
|
138
135
|
"Turn OFF the \u{1F44D}/\u{1F44E} feedback controls under each assistant reply. Unset/`false` = shown (default), `true` = hidden. A choice fires the `messageFeedback` event and is POSTed best-effort to `/pai/message-feedback`."
|
|
139
136
|
)
|
|
140
137
|
}).loose().describe("Conversation behaviour \u2014 lifecycle, streaming, and the transcript surface (scroll, feedback).").meta({
|
|
141
138
|
examples: [
|
|
142
139
|
{ startMinimized: true, responseMode: "streaming" },
|
|
143
|
-
{ startMinimized: false, responseMode: "buffered",
|
|
140
|
+
{ startMinimized: false, responseMode: "buffered", disableMessageFeedback: true }
|
|
144
141
|
]
|
|
145
142
|
});
|
|
146
143
|
|
|
@@ -224,7 +221,9 @@ var toolRefSchema = z7.union([
|
|
|
224
221
|
}).loose()
|
|
225
222
|
]);
|
|
226
223
|
var featureFlagsSchema = z7.object({
|
|
227
|
-
|
|
224
|
+
disableFileUpload: z7.boolean().default(false).describe(
|
|
225
|
+
"Turn OFF file uploads \u2014 hide the paperclip button + reject drag/drop/paste. Unset/`false` = enabled (default), `true` = disabled."
|
|
226
|
+
),
|
|
228
227
|
voice: voiceModeSchema.default("local").describe(
|
|
229
228
|
"Voice input mode. `local` \u2014 Web Speech API in the browser (free, runs on-device). `server` \u2014 record audio + upload to the transcribe endpoint. `disabled` \u2014 hide the mic button."
|
|
230
229
|
),
|
|
@@ -236,9 +235,9 @@ var featureFlagsSchema = z7.object({
|
|
|
236
235
|
)
|
|
237
236
|
}).loose().describe("Capability flags \u2014 file upload, voice mode, and the tools the assistant may invoke.").meta({
|
|
238
237
|
examples: [
|
|
239
|
-
{
|
|
240
|
-
{
|
|
241
|
-
{
|
|
238
|
+
{ voice: "local" },
|
|
239
|
+
{ disableFileUpload: true, voice: "disabled" },
|
|
240
|
+
{ voice: "server", tools: ["tool:send-money"] }
|
|
242
241
|
]
|
|
243
242
|
});
|
|
244
243
|
|
|
@@ -730,7 +729,7 @@ var widgetSettingsSchema = z16.object({
|
|
|
730
729
|
{
|
|
731
730
|
presentation: { mode: "inline" },
|
|
732
731
|
behavior: { responseMode: "streaming" },
|
|
733
|
-
features: {
|
|
732
|
+
features: { voice: "local" }
|
|
734
733
|
}
|
|
735
734
|
]
|
|
736
735
|
});
|