@flamingo-stack/openframe-frontend-core 0.0.726 → 0.0.727
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-3XDVGHL4.js → chunk-33AFAVBF.js} +2 -2
- package/dist/{chunk-R3BOJNZI.cjs → chunk-3D2SCG2E.cjs} +16 -16
- package/dist/{chunk-RSE3MU4G.cjs → chunk-3N3QA47Y.cjs} +11 -11
- package/dist/{chunk-COFT3YPA.js → chunk-3Q7ZNY4B.js} +5 -5
- package/dist/{chunk-3UZET2G7.js → chunk-4FQ5ZICE.js} +2 -2
- package/dist/{chunk-Q2G7NVFH.cjs → chunk-AM2RHT3H.cjs} +280 -280
- package/dist/{chunk-NZYMMYWN.js → chunk-AU4WWLFP.js} +1 -1
- package/dist/{chunk-RVSNXG6J.cjs → chunk-BKTV3VOD.cjs} +483 -418
- package/dist/{chunk-4ND65E2B.cjs → chunk-BMOEUIFI.cjs} +35 -35
- package/dist/{chunk-JYJBL7GD.js → chunk-C6Y22J32.js} +1 -1
- package/dist/{chunk-DXDLCYCM.cjs → chunk-CGL3TJ2A.cjs} +3 -3
- package/dist/{chunk-SBPPM65Y.js → chunk-CIAAU44V.js} +257 -192
- package/dist/{chunk-X2PG6XWF.cjs → chunk-CNBGSWLN.cjs} +9 -9
- package/dist/{chunk-4VRHDFF2.js → chunk-FIKAJKPE.js} +1 -1
- package/dist/{chunk-MZ3TMXIX.cjs → chunk-FLCYWEEB.cjs} +3 -3
- package/dist/{chunk-YVWJ3TRY.js → chunk-GKJFSE72.js} +5 -5
- package/dist/{chunk-NLWIBA55.js → chunk-HVMH67Z7.js} +3 -3
- package/dist/{chunk-MQ3ZM7FJ.js → chunk-J274GOBJ.js} +1 -1
- package/dist/{chunk-5SWQ2ZU5.cjs → chunk-MAGVU2HZ.cjs} +26 -26
- package/dist/{chunk-VPABPC2M.cjs → chunk-MGVT5RT6.cjs} +29 -56
- package/dist/{chunk-C5KMQLJP.js → chunk-N27CSEDR.js} +1 -1
- package/dist/{chunk-MZY6LBM5.cjs → chunk-N2PHC6RX.cjs} +3 -3
- package/dist/{chunk-AZKVHJA5.js → chunk-NQRFGXDG.js} +2 -2
- package/dist/{chunk-XEIDJ6SL.cjs → chunk-QJVG5V46.cjs} +65 -65
- package/dist/{chunk-Z3VAFLYK.cjs → chunk-RZFTEUV4.cjs} +9 -9
- package/dist/{chunk-EHYAOIE4.cjs → chunk-U6HOC7JD.cjs} +8 -8
- package/dist/{chunk-SCTS3EMJ.js → chunk-URDJXB75.js} +3 -3
- package/dist/{chunk-MM66P4X4.js → chunk-VTXIY33G.js} +22 -49
- package/dist/{chunk-FMFCPX3R.cjs → chunk-WWJOQGSH.cjs} +33 -33
- package/dist/{chunk-VKR56R3U.js → chunk-WXL5G7WC.js} +3 -3
- package/dist/{cloud-tenants-NH7VE7KE.js → cloud-tenants-65EUPGVC.js} +2 -2
- package/dist/{cloud-tenants-5JTQ2ENQ.cjs → cloud-tenants-PT5QPWWU.cjs} +3 -3
- package/dist/components/case-studies/index.cjs +14 -14
- package/dist/components/case-studies/index.js +3 -3
- package/dist/components/chat/assistant-ask-prompts.d.ts +34 -14
- package/dist/components/chat/assistant-ask-prompts.d.ts.map +1 -1
- package/dist/components/chat/hooks/index.d.ts +1 -1
- package/dist/components/chat/hooks/index.d.ts.map +1 -1
- package/dist/components/chat/hooks/use-ask-prompts.d.ts +34 -7
- package/dist/components/chat/hooks/use-ask-prompts.d.ts.map +1 -1
- package/dist/components/chat/index.cjs +2 -4
- package/dist/components/chat/index.js +3 -5
- package/dist/components/contact/index.cjs +4 -4
- package/dist/components/contact/index.js +3 -3
- package/dist/components/docs/index.cjs +7 -7
- package/dist/components/docs/index.js +6 -6
- package/dist/components/embeds/index.cjs +4 -4
- package/dist/components/embeds/index.js +3 -3
- package/dist/components/faq/faq-ask-card.d.ts +8 -11
- package/dist/components/faq/faq-ask-card.d.ts.map +1 -1
- package/dist/components/faq/index.cjs +4 -4
- package/dist/components/faq/index.js +3 -3
- package/dist/components/features/index.cjs +3 -3
- package/dist/components/features/index.js +2 -2
- package/dist/components/help-center-pages/index.cjs +71 -71
- package/dist/components/help-center-pages/index.js +13 -13
- package/dist/components/index.cjs +35 -37
- package/dist/components/index.js +14 -16
- package/dist/components/meeting-scheduler/index.cjs +19 -19
- package/dist/components/meeting-scheduler/index.js +2 -2
- package/dist/components/navigation/index.cjs +6 -6
- package/dist/components/navigation/index.js +5 -5
- package/dist/components/onboarding-guides/index.cjs +5 -5
- package/dist/components/onboarding-guides/index.js +4 -4
- package/dist/components/product-demo/index.cjs +6 -6
- package/dist/components/product-demo/index.js +6 -6
- package/dist/components/tickets/index.cjs +7 -7
- package/dist/components/tickets/index.js +6 -6
- package/dist/components/ui/index.cjs +3 -5
- package/dist/components/ui/index.js +4 -6
- package/dist/{devices-OC7JEI6U.js → devices-J253LQNQ.js} +2 -2
- package/dist/{devices-PV76NGQO.cjs → devices-ZPVLATZA.cjs} +4 -4
- package/dist/index.cjs +7 -9
- package/dist/index.js +8 -10
- package/dist/{knowledge-5AYFIVKD.cjs → knowledge-3FAF5T7Q.cjs} +4 -4
- package/dist/{knowledge-L7WQ7IEP.js → knowledge-IMTMYURI.js} +2 -2
- package/dist/{logs-MGFHGVIE.js → logs-55GOSGVE.js} +2 -2
- package/dist/{logs-4F77RJXJ.cjs → logs-UL7BQEXP.cjs} +11 -11
- package/dist/{policies-WRDZFNIB.js → policies-KRDF563O.js} +2 -2
- package/dist/{policies-VCGM3C5Z.cjs → policies-O5F2XSCY.cjs} +7 -7
- package/dist/{software-update-WVG2GDZO.js → software-update-NXSC4OVM.js} +2 -2
- package/dist/{software-update-YD2MNL3K.cjs → software-update-R2ASCRWP.cjs} +6 -6
- package/package.json +1 -1
- package/src/components/chat/assistant-ask-prompts.tsx +84 -39
- package/src/components/chat/hooks/index.ts +3 -2
- package/src/components/chat/hooks/use-ask-prompts.ts +140 -56
- package/src/components/faq/faq-ask-card.tsx +22 -67
|
@@ -8892,9 +8892,6 @@ function AskCard({
|
|
|
8892
8892
|
);
|
|
8893
8893
|
}
|
|
8894
8894
|
|
|
8895
|
-
// src/components/chat/assistant-ask-prompts.tsx
|
|
8896
|
-
|
|
8897
|
-
|
|
8898
8895
|
// src/components/chat/hooks/use-ask-prompts.ts
|
|
8899
8896
|
|
|
8900
8897
|
var ASK_PROMPTS_DEFAULT_COUNT = 3;
|
|
@@ -8916,8 +8913,9 @@ function useAskPrompts({
|
|
|
8916
8913
|
const assistant = _chunkEWPR7662cjs.useAssistantRuntime.call(void 0, );
|
|
8917
8914
|
const base = assistantAvailable(assistant) ? assistant.askPromptsUrl : void 0;
|
|
8918
8915
|
const url = base && enabled ? buildAskPromptsUrl(base, { count, topic, exclude }) : null;
|
|
8919
|
-
const { data,
|
|
8920
|
-
|
|
8916
|
+
const { data, dataUrl, error } = _chunkHEQ4GPYEcjs.useSelfFetch.call(void 0, url);
|
|
8917
|
+
const landed = url !== null && (dataUrl === url || error);
|
|
8918
|
+
return { prompts: landed ? _nullishCoalesce(_optionalChain([data, 'optionalAccess', _232 => _232.prompts]), () => ( [])) : [], isLoading: !!base && !landed, supported: !!base };
|
|
8921
8919
|
}
|
|
8922
8920
|
function useAssistantOpen(topic, onOpen) {
|
|
8923
8921
|
const assistant = _chunkEWPR7662cjs.useAssistantRuntime.call(void 0, );
|
|
@@ -8933,90 +8931,158 @@ function useAssistantOpen(topic, onOpen) {
|
|
|
8933
8931
|
[onOpen, runtimeOpen, source, topic]
|
|
8934
8932
|
);
|
|
8935
8933
|
}
|
|
8936
|
-
|
|
8937
|
-
|
|
8938
|
-
const bySurface = /* @__PURE__ */ new Map();
|
|
8934
|
+
function createAskQueue() {
|
|
8935
|
+
const entries = /* @__PURE__ */ new Map();
|
|
8939
8936
|
const listeners = /* @__PURE__ */ new Set();
|
|
8940
|
-
let
|
|
8937
|
+
let next = 0;
|
|
8941
8938
|
const publish = () => {
|
|
8942
|
-
const lists = [...bySurface.values()];
|
|
8943
|
-
const next = lists.some((list) => list === null) ? null : lists.flatMap((list) => _nullishCoalesce(list, () => ( [])));
|
|
8944
|
-
const same = next === null ? snapshot === null : snapshot !== null && next.join(",") === snapshot.join(",");
|
|
8945
|
-
if (same) return;
|
|
8946
|
-
snapshot = next === null ? null : next.length > 0 ? next : NO_IDS;
|
|
8947
8939
|
for (const listener of listeners) listener();
|
|
8948
8940
|
};
|
|
8949
8941
|
return {
|
|
8950
|
-
|
|
8951
|
-
|
|
8942
|
+
enter(surface) {
|
|
8943
|
+
if (entries.has(surface)) return;
|
|
8944
|
+
entries.set(surface, { turn: next++, ids: null });
|
|
8952
8945
|
publish();
|
|
8953
8946
|
},
|
|
8954
|
-
|
|
8955
|
-
|
|
8947
|
+
settle(surface, ids) {
|
|
8948
|
+
const entry = entries.get(surface);
|
|
8949
|
+
if (!entry || (_nullishCoalesce(_optionalChain([entry, 'access', _235 => _235.ids, 'optionalAccess', _236 => _236.join, 'call', _237 => _237(",")]), () => ( null))) === (_nullishCoalesce(_optionalChain([ids, 'optionalAccess', _238 => _238.join, 'call', _239 => _239(",")]), () => ( null)))) return;
|
|
8950
|
+
entry.ids = ids;
|
|
8956
8951
|
publish();
|
|
8957
8952
|
},
|
|
8953
|
+
leave(surface) {
|
|
8954
|
+
if (entries.delete(surface)) publish();
|
|
8955
|
+
},
|
|
8958
8956
|
subscribe(listener) {
|
|
8959
8957
|
listeners.add(listener);
|
|
8960
8958
|
return () => listeners.delete(listener);
|
|
8961
8959
|
},
|
|
8962
|
-
|
|
8960
|
+
turnOf(surface) {
|
|
8961
|
+
const own = entries.get(surface);
|
|
8962
|
+
if (!own) return null;
|
|
8963
|
+
const shown = [];
|
|
8964
|
+
for (const [other, entry] of entries) {
|
|
8965
|
+
if (other === surface) continue;
|
|
8966
|
+
if (entry.ids === null) {
|
|
8967
|
+
if (entry.turn < own.turn) return null;
|
|
8968
|
+
continue;
|
|
8969
|
+
}
|
|
8970
|
+
shown.push(...entry.ids);
|
|
8971
|
+
}
|
|
8972
|
+
return shown.join(",");
|
|
8973
|
+
}
|
|
8963
8974
|
};
|
|
8964
8975
|
}
|
|
8965
|
-
var
|
|
8966
|
-
function
|
|
8967
|
-
const scope = _nullishCoalesce(_optionalChain([_chunkEWPR7662cjs.useAssistantRuntime.call(void 0, ), 'optionalAccess',
|
|
8968
|
-
let
|
|
8969
|
-
if (!
|
|
8970
|
-
|
|
8971
|
-
|
|
8976
|
+
var askQueues = /* @__PURE__ */ new Map();
|
|
8977
|
+
function useAskQueue() {
|
|
8978
|
+
const scope = _nullishCoalesce(_optionalChain([_chunkEWPR7662cjs.useAssistantRuntime.call(void 0, ), 'optionalAccess', _240 => _240.askPromptsUrl]), () => ( ""));
|
|
8979
|
+
let queue = askQueues.get(scope);
|
|
8980
|
+
if (!queue) {
|
|
8981
|
+
queue = createAskQueue();
|
|
8982
|
+
askQueues.set(scope, queue);
|
|
8972
8983
|
}
|
|
8973
|
-
return
|
|
8984
|
+
return queue;
|
|
8974
8985
|
}
|
|
8975
|
-
function
|
|
8986
|
+
function useAskSurface({
|
|
8987
|
+
topic,
|
|
8988
|
+
count = ASK_PROMPTS_DEFAULT_COUNT,
|
|
8989
|
+
exclude,
|
|
8990
|
+
enabled = true,
|
|
8991
|
+
onOpen
|
|
8992
|
+
} = {}) {
|
|
8993
|
+
const assistant = _chunkEWPR7662cjs.useAssistantRuntime.call(void 0, );
|
|
8976
8994
|
const surface = _react.useId.call(void 0, );
|
|
8977
|
-
const
|
|
8978
|
-
const
|
|
8995
|
+
const queue = useAskQueue();
|
|
8996
|
+
const picks = assistantAvailable(assistant) && !!assistant.askPromptsUrl && enabled && exclude !== null;
|
|
8979
8997
|
_react.useLayoutEffect.call(void 0, () => {
|
|
8980
|
-
if (
|
|
8981
|
-
|
|
8982
|
-
return () =>
|
|
8983
|
-
}, [
|
|
8984
|
-
|
|
8985
|
-
|
|
8986
|
-
|
|
8987
|
-
|
|
8998
|
+
if (!picks) return void 0;
|
|
8999
|
+
queue.enter(surface);
|
|
9000
|
+
return () => queue.leave(surface);
|
|
9001
|
+
}, [queue, surface, picks]);
|
|
9002
|
+
const turn = _react.useSyncExternalStore.call(void 0,
|
|
9003
|
+
queue.subscribe,
|
|
9004
|
+
() => queue.turnOf(surface),
|
|
9005
|
+
() => null
|
|
9006
|
+
);
|
|
9007
|
+
const [shownAtTurn, setShownAtTurn] = _react.useState.call(void 0, null);
|
|
9008
|
+
if (picks && turn !== null && shownAtTurn === null) setShownAtTurn(turn);
|
|
9009
|
+
const leftOut = _react.useMemo.call(void 0, () => _nullishCoalesce(exclude, () => ( (shownAtTurn ? shownAtTurn.split(",") : void 0))), [exclude, shownAtTurn]);
|
|
9010
|
+
const { prompts, isLoading, supported } = useAskPrompts({
|
|
9011
|
+
topic,
|
|
9012
|
+
count,
|
|
9013
|
+
exclude: leftOut,
|
|
9014
|
+
// Told exactly what to leave out, a surface needs nobody's pick: it never waits for a turn.
|
|
9015
|
+
enabled: picks && (exclude !== void 0 || shownAtTurn !== null)
|
|
9016
|
+
});
|
|
9017
|
+
const settled = picks && !isLoading ? prompts.map((prompt) => prompt.id).join(",") : null;
|
|
9018
|
+
_react.useLayoutEffect.call(void 0, () => {
|
|
9019
|
+
queue.settle(surface, settled === null ? null : settled ? settled.split(",") : []);
|
|
9020
|
+
}, [queue, surface, settled]);
|
|
9021
|
+
const open = useAssistantOpen(topic, onOpen);
|
|
9022
|
+
const scoped = _react.useMemo.call(void 0, () => assistant ? { ...assistant, open } : null, [assistant, open]);
|
|
9023
|
+
const onAsk = _optionalChain([assistant, 'optionalAccess', _241 => _241.onAsk]);
|
|
9024
|
+
const reportAsk = _react.useCallback.call(void 0, (prompt) => _optionalChain([onAsk, 'optionalCall', _242 => _242({ promptId: prompt.id, topic })]), [onAsk, topic]);
|
|
9025
|
+
return { assistant, scoped, prompts, isLoading: supported && (!picks || isLoading), supported, open, reportAsk };
|
|
8988
9026
|
}
|
|
8989
9027
|
|
|
8990
9028
|
// src/components/chat/assistant-ask-prompts.tsx
|
|
8991
9029
|
|
|
9030
|
+
var DEFAULT_ASK_CARD = {
|
|
9031
|
+
title: "Still deciding?",
|
|
9032
|
+
description: "{assistant} answers from our docs and customer stories."
|
|
9033
|
+
};
|
|
9034
|
+
var fillAssistant = (text2, name) => text2.split("{assistant}").join(name);
|
|
8992
9035
|
function AssistantAskPrompts({
|
|
9036
|
+
variant = "row",
|
|
8993
9037
|
topic,
|
|
8994
|
-
count
|
|
9038
|
+
count,
|
|
9039
|
+
exclude,
|
|
9040
|
+
enabled,
|
|
8995
9041
|
label,
|
|
8996
9042
|
loading = false,
|
|
9043
|
+
title,
|
|
9044
|
+
description,
|
|
8997
9045
|
onOpen,
|
|
8998
9046
|
align,
|
|
8999
9047
|
fadeColor,
|
|
9000
9048
|
className
|
|
9001
9049
|
}) {
|
|
9050
|
+
const card = variant === "card";
|
|
9002
9051
|
const assistant = _chunkEWPR7662cjs.useAssistantRuntime.call(void 0, );
|
|
9003
|
-
const
|
|
9004
|
-
const
|
|
9005
|
-
|
|
9006
|
-
|
|
9007
|
-
|
|
9008
|
-
|
|
9009
|
-
|
|
9052
|
+
const slots = _nullishCoalesce(_nullishCoalesce(count, () => ( (card ? _optionalChain([assistant, 'optionalAccess', _243 => _243.askCard, 'optionalAccess', _244 => _244.count]) : void 0))), () => ( ASK_PROMPTS_DEFAULT_COUNT));
|
|
9053
|
+
const ask = useAskSurface({ topic, count: slots, exclude, enabled, onOpen });
|
|
9054
|
+
if (!assistantAvailable(assistant)) return null;
|
|
9055
|
+
const shared = {
|
|
9056
|
+
prompts: ask.prompts,
|
|
9057
|
+
loading: ask.isLoading || loading,
|
|
9058
|
+
source: assistant.source,
|
|
9059
|
+
icon: assistant.icon,
|
|
9060
|
+
onOpen: ask.open,
|
|
9061
|
+
onAsk: ask.reportAsk
|
|
9062
|
+
};
|
|
9063
|
+
if (card) {
|
|
9064
|
+
const name = _nullishCoalesce(label, () => ( assistant.name));
|
|
9065
|
+
if (!name) return null;
|
|
9066
|
+
const words2 = _nullishCoalesce(_nullishCoalesce(description, () => ( _optionalChain([assistant, 'access', _245 => _245.askCard, 'optionalAccess', _246 => _246.description]))), () => ( DEFAULT_ASK_CARD.description));
|
|
9067
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEWPR7662cjs.AssistantRuntimeContext.Provider, { value: ask.scoped, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
9068
|
+
AskCard,
|
|
9069
|
+
{
|
|
9070
|
+
...shared,
|
|
9071
|
+
title: fillAssistant(_nullishCoalesce(_nullishCoalesce(title, () => ( _optionalChain([assistant, 'access', _247 => _247.askCard, 'optionalAccess', _248 => _248.title]))), () => ( DEFAULT_ASK_CARD.title)), name),
|
|
9072
|
+
description: words2 ? fillAssistant(words2, name) : void 0,
|
|
9073
|
+
count: ask.supported ? slots : 0,
|
|
9074
|
+
label: name,
|
|
9075
|
+
className
|
|
9076
|
+
}
|
|
9077
|
+
) });
|
|
9078
|
+
}
|
|
9079
|
+
if (!ask.supported) return null;
|
|
9080
|
+
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkEWPR7662cjs.AssistantRuntimeContext.Provider, { value: ask.scoped, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
9010
9081
|
AskPrompts,
|
|
9011
9082
|
{
|
|
9012
|
-
|
|
9013
|
-
|
|
9014
|
-
count,
|
|
9015
|
-
source: assistant.source,
|
|
9083
|
+
...shared,
|
|
9084
|
+
count: slots,
|
|
9016
9085
|
label: _nullishCoalesce(_nullishCoalesce(label, () => ( assistant.name)), () => ( void 0)),
|
|
9017
|
-
icon: assistant.icon,
|
|
9018
|
-
onOpen: open,
|
|
9019
|
-
onAsk: (prompt) => _optionalChain([assistant, 'access', _236 => _236.onAsk, 'optionalCall', _237 => _237({ promptId: prompt.id, topic })]),
|
|
9020
9086
|
align,
|
|
9021
9087
|
fadeColor,
|
|
9022
9088
|
className
|
|
@@ -9185,7 +9251,7 @@ function MarqueeWall({
|
|
|
9185
9251
|
if (!container || !copy) return;
|
|
9186
9252
|
const size = axis === "y" ? copy.offsetHeight : copy.offsetWidth;
|
|
9187
9253
|
copySizeRef.current = size;
|
|
9188
|
-
const clone = _optionalChain([trackRef, 'access',
|
|
9254
|
+
const clone = _optionalChain([trackRef, 'access', _249 => _249.current, 'optionalAccess', _250 => _250.querySelector, 'call', _251 => _251('[data-marquee-copy="clone"]')]);
|
|
9189
9255
|
wrapSizeRef.current = clone ? axis === "y" ? clone.offsetTop - copy.offsetTop : clone.offsetLeft - copy.offsetLeft : size + (typeof copyGap === "number" ? copyGap : 0);
|
|
9190
9256
|
const avail = axis === "y" ? container.clientHeight : container.clientWidth;
|
|
9191
9257
|
setOverflows(size > avail + 1);
|
|
@@ -9316,7 +9382,7 @@ function MarqueeWall({
|
|
|
9316
9382
|
if (Math.abs(delta) > 3 && !dragMovedRef.current) {
|
|
9317
9383
|
dragMovedRef.current = true;
|
|
9318
9384
|
try {
|
|
9319
|
-
_optionalChain([containerRef, 'access',
|
|
9385
|
+
_optionalChain([containerRef, 'access', _252 => _252.current, 'optionalAccess', _253 => _253.setPointerCapture, 'call', _254 => _254(e.pointerId)]);
|
|
9320
9386
|
} catch (e19) {
|
|
9321
9387
|
}
|
|
9322
9388
|
}
|
|
@@ -9333,7 +9399,7 @@ function MarqueeWall({
|
|
|
9333
9399
|
dragSuppressUntilRef.current = performance.now() + DRAG_RESUME_MS;
|
|
9334
9400
|
if (dragMovedRef.current) {
|
|
9335
9401
|
try {
|
|
9336
|
-
_optionalChain([containerRef, 'access',
|
|
9402
|
+
_optionalChain([containerRef, 'access', _255 => _255.current, 'optionalAccess', _256 => _256.releasePointerCapture, 'call', _257 => _257(e.pointerId)]);
|
|
9337
9403
|
} catch (e20) {
|
|
9338
9404
|
}
|
|
9339
9405
|
}
|
|
@@ -9665,7 +9731,7 @@ var ChatTicketItem = _react.forwardRef.call(void 0,
|
|
|
9665
9731
|
{
|
|
9666
9732
|
ref,
|
|
9667
9733
|
type: "button",
|
|
9668
|
-
onClick: () => _optionalChain([onClick, 'optionalCall',
|
|
9734
|
+
onClick: () => _optionalChain([onClick, 'optionalCall', _258 => _258(ticket.id)]),
|
|
9669
9735
|
className: _chunk3ATAYP36cjs.cn.call(void 0,
|
|
9670
9736
|
"flex h-20 w-full items-center gap-4 px-4",
|
|
9671
9737
|
"border-b border-ods-border bg-ods-card",
|
|
@@ -9935,7 +10001,7 @@ function MingoChatHistoryRow({
|
|
|
9935
10001
|
const unread = _nullishCoalesce(dialog.unreadMessagesCount, () => ( 0));
|
|
9936
10002
|
const hasMenu = !!onRequestRename || !!onRequestArchive || !!onRequestCopyLink || !!onRequestCompact;
|
|
9937
10003
|
const owner = dialog.owner;
|
|
9938
|
-
const hasAvatar = !!(_optionalChain([owner, 'optionalAccess',
|
|
10004
|
+
const hasAvatar = !!(_optionalChain([owner, 'optionalAccess', _259 => _259.name]) || _optionalChain([owner, 'optionalAccess', _260 => _260.avatarUrl]));
|
|
9939
10005
|
const [menuOpen, setMenuOpen] = _react.useState.call(void 0, false);
|
|
9940
10006
|
const menuItems = chatDialogMenuItems({
|
|
9941
10007
|
onCopyLink: onRequestCopyLink && (() => onRequestCopyLink(dialog)),
|
|
@@ -9960,11 +10026,11 @@ function MingoChatHistoryRow({
|
|
|
9960
10026
|
{
|
|
9961
10027
|
role: "button",
|
|
9962
10028
|
tabIndex: 0,
|
|
9963
|
-
onClick: () => _optionalChain([onSelect, 'optionalCall',
|
|
10029
|
+
onClick: () => _optionalChain([onSelect, 'optionalCall', _261 => _261(dialog.id)]),
|
|
9964
10030
|
onKeyDown: (e) => {
|
|
9965
10031
|
if (e.key === "Enter" || e.key === " ") {
|
|
9966
10032
|
e.preventDefault();
|
|
9967
|
-
_optionalChain([onSelect, 'optionalCall',
|
|
10033
|
+
_optionalChain([onSelect, 'optionalCall', _262 => _262(dialog.id)]);
|
|
9968
10034
|
}
|
|
9969
10035
|
},
|
|
9970
10036
|
className: "flex min-w-0 flex-1 cursor-pointer items-center gap-[var(--spacing-system-xsf)] p-[var(--spacing-system-s)] focus:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ods-accent",
|
|
@@ -10031,8 +10097,8 @@ function MingoChatHistoryRow({
|
|
|
10031
10097
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
10032
10098
|
"span",
|
|
10033
10099
|
{
|
|
10034
|
-
onClick: () => _optionalChain([onSelect, 'optionalCall',
|
|
10035
|
-
title: _optionalChain([owner, 'optionalAccess',
|
|
10100
|
+
onClick: () => _optionalChain([onSelect, 'optionalCall', _263 => _263(dialog.id)]),
|
|
10101
|
+
title: _optionalChain([owner, 'optionalAccess', _264 => _264.name]) || void 0,
|
|
10036
10102
|
className: _chunk3ATAYP36cjs.cn.call(void 0,
|
|
10037
10103
|
"absolute inset-0 flex cursor-pointer items-center justify-center transition-opacity",
|
|
10038
10104
|
hasMenu && (menuOpen ? "pointer-events-none opacity-0" : "md:group-hover/row:pointer-events-none md:group-hover/row:opacity-0 md:peer-[:focus-within]/menu:pointer-events-none md:peer-[:focus-within]/menu:opacity-0")
|
|
@@ -10042,9 +10108,9 @@ function MingoChatHistoryRow({
|
|
|
10042
10108
|
{
|
|
10043
10109
|
variant: "round",
|
|
10044
10110
|
sizePx: 24,
|
|
10045
|
-
src: _optionalChain([owner, 'optionalAccess',
|
|
10046
|
-
alt: _optionalChain([owner, 'optionalAccess',
|
|
10047
|
-
fallback: _optionalChain([owner, 'optionalAccess',
|
|
10111
|
+
src: _optionalChain([owner, 'optionalAccess', _265 => _265.avatarUrl]) || void 0,
|
|
10112
|
+
alt: _optionalChain([owner, 'optionalAccess', _266 => _266.name]) || void 0,
|
|
10113
|
+
fallback: _optionalChain([owner, 'optionalAccess', _267 => _267.name]) || void 0,
|
|
10048
10114
|
initialsClassName: "text-[10px] text-ods-text-secondary"
|
|
10049
10115
|
}
|
|
10050
10116
|
)
|
|
@@ -10096,7 +10162,7 @@ function MingoChatHistory({
|
|
|
10096
10162
|
className
|
|
10097
10163
|
}) {
|
|
10098
10164
|
const groups = _react.useMemo.call(void 0, () => groupDialogs(dialogs), [dialogs]);
|
|
10099
|
-
const noSearchResults = groups.length === 0 && !!_optionalChain([searchQuery, 'optionalAccess',
|
|
10165
|
+
const noSearchResults = groups.length === 0 && !!_optionalChain([searchQuery, 'optionalAccess', _268 => _268.trim, 'call', _269 => _269()]);
|
|
10100
10166
|
const { scrollRef, fadeTop, fadeBottom, update: updateFade } = useScrollFade();
|
|
10101
10167
|
const sentinelRef = _react.useRef.call(void 0, null);
|
|
10102
10168
|
const onLoadMoreRef = _react.useRef.call(void 0, onLoadMore);
|
|
@@ -10113,7 +10179,7 @@ function MingoChatHistory({
|
|
|
10113
10179
|
const io = new IntersectionObserver(
|
|
10114
10180
|
([entry]) => {
|
|
10115
10181
|
if (entry.isIntersecting && !isLoadingMoreRef.current) {
|
|
10116
|
-
_optionalChain([onLoadMoreRef, 'access',
|
|
10182
|
+
_optionalChain([onLoadMoreRef, 'access', _270 => _270.current, 'optionalCall', _271 => _271()]);
|
|
10117
10183
|
}
|
|
10118
10184
|
},
|
|
10119
10185
|
{ root, rootMargin: "120px", threshold: 0.1 }
|
|
@@ -10298,8 +10364,8 @@ function MingoWelcome({
|
|
|
10298
10364
|
icon: action.icon,
|
|
10299
10365
|
variant: action.variant,
|
|
10300
10366
|
onSelect: action.onClick,
|
|
10301
|
-
onHoverStart: () => _optionalChain([onQuickActionHover, 'optionalCall',
|
|
10302
|
-
onHoverEnd: () => _optionalChain([onQuickActionHoverEnd, 'optionalCall',
|
|
10367
|
+
onHoverStart: () => _optionalChain([onQuickActionHover, 'optionalCall', _272 => _272(action)]),
|
|
10368
|
+
onHoverEnd: () => _optionalChain([onQuickActionHoverEnd, 'optionalCall', _273 => _273()])
|
|
10303
10369
|
})),
|
|
10304
10370
|
agentSlug,
|
|
10305
10371
|
rows: 4,
|
|
@@ -10352,9 +10418,9 @@ function GuideWelcome({
|
|
|
10352
10418
|
props: action.iconProps,
|
|
10353
10419
|
accent: _nullishCoalesce(_nullishCoalesce(action.accent, () => ( accentFromIdentityIcon(icon))), () => ( "cyan"))
|
|
10354
10420
|
},
|
|
10355
|
-
onSelect: () => _optionalChain([onQuickAction, 'optionalCall',
|
|
10356
|
-
onHoverStart: () => _optionalChain([onQuickActionHover, 'optionalCall',
|
|
10357
|
-
onHoverEnd: () => _optionalChain([onQuickActionHoverEnd, 'optionalCall',
|
|
10421
|
+
onSelect: () => _optionalChain([onQuickAction, 'optionalCall', _274 => _274(action)]),
|
|
10422
|
+
onHoverStart: () => _optionalChain([onQuickActionHover, 'optionalCall', _275 => _275(action)]),
|
|
10423
|
+
onHoverEnd: () => _optionalChain([onQuickActionHoverEnd, 'optionalCall', _276 => _276()])
|
|
10358
10424
|
})),
|
|
10359
10425
|
[quickActions, icon, onQuickAction, onQuickActionHover, onQuickActionHoverEnd]
|
|
10360
10426
|
);
|
|
@@ -10563,7 +10629,7 @@ function MingoArchiveList({
|
|
|
10563
10629
|
if (!sentinel || !hasMore || typeof IntersectionObserver === "undefined") return void 0;
|
|
10564
10630
|
const observer = new IntersectionObserver(
|
|
10565
10631
|
([entry]) => {
|
|
10566
|
-
if (_optionalChain([entry, 'optionalAccess',
|
|
10632
|
+
if (_optionalChain([entry, 'optionalAccess', _277 => _277.isIntersecting]) && !isLoadingMoreRef.current) _optionalChain([onLoadMoreRef, 'access', _278 => _278.current, 'optionalCall', _279 => _279()]);
|
|
10567
10633
|
},
|
|
10568
10634
|
{ rootMargin: "120px", threshold: 0.1 }
|
|
10569
10635
|
);
|
|
@@ -10582,7 +10648,7 @@ function MingoArchiveList({
|
|
|
10582
10648
|
ChatListItem,
|
|
10583
10649
|
{
|
|
10584
10650
|
title: dialog.title || "Untitled Chat",
|
|
10585
|
-
onClick: () => _optionalChain([onSelectDialog, 'optionalCall',
|
|
10651
|
+
onClick: () => _optionalChain([onSelectDialog, 'optionalCall', _280 => _280(dialog.id)]),
|
|
10586
10652
|
trailing: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex items-center gap-[var(--spacing-system-xs)]", children: [
|
|
10587
10653
|
dialog.timestamp && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "whitespace-nowrap text-ods-text-secondary text-h6", children: _chunkHP4UUBJCcjs.formatRelativeTime.call(void 0, dialog.timestamp) }),
|
|
10588
10654
|
dialog.owner && (dialog.owner.name || dialog.owner.avatarUrl) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -10721,7 +10787,7 @@ function ChatHeaderSearchField({
|
|
|
10721
10787
|
const finishCollapse = _react.useCallback.call(void 0, () => {
|
|
10722
10788
|
if (collapsedRef.current) return;
|
|
10723
10789
|
collapsedRef.current = true;
|
|
10724
|
-
_optionalChain([onCollapse, 'optionalCall',
|
|
10790
|
+
_optionalChain([onCollapse, 'optionalCall', _281 => _281()]);
|
|
10725
10791
|
}, [onCollapse]);
|
|
10726
10792
|
const beginCollapse = _react.useCallback.call(void 0, () => {
|
|
10727
10793
|
setExiting(true);
|
|
@@ -10802,7 +10868,7 @@ var STATUS_GLYPHS = {
|
|
|
10802
10868
|
approval: { icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.ShieldCheckIcon, { className: "text-ods-accent" }), label: "Waiting for approval" }
|
|
10803
10869
|
};
|
|
10804
10870
|
function statusFor(dialog, statusOf) {
|
|
10805
|
-
return _nullishCoalesce(_optionalChain([statusOf, 'optionalCall',
|
|
10871
|
+
return _nullishCoalesce(_optionalChain([statusOf, 'optionalCall', _282 => _282(dialog)]), () => ( ((_nullishCoalesce(dialog.unreadMessagesCount, () => ( 0))) > 0 ? "unread" : void 0)));
|
|
10806
10872
|
}
|
|
10807
10873
|
function MingoChatRail({
|
|
10808
10874
|
dialogs,
|
|
@@ -10831,8 +10897,8 @@ function MingoChatRail({
|
|
|
10831
10897
|
onExpand,
|
|
10832
10898
|
className
|
|
10833
10899
|
}) {
|
|
10834
|
-
const [searchOpen, setSearchOpen] = _react.useState.call(void 0, !!_optionalChain([searchQuery, 'optionalAccess',
|
|
10835
|
-
const hasSearch = !!_optionalChain([searchQuery, 'optionalAccess',
|
|
10900
|
+
const [searchOpen, setSearchOpen] = _react.useState.call(void 0, !!_optionalChain([searchQuery, 'optionalAccess', _283 => _283.trim, 'call', _284 => _284()]));
|
|
10901
|
+
const hasSearch = !!_optionalChain([searchQuery, 'optionalAccess', _285 => _285.trim, 'call', _286 => _286()]);
|
|
10836
10902
|
const items = [];
|
|
10837
10903
|
if (onNewChat) items.push({ id: "new", label: "Start New Chat", icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.ChatPlusIcon, {}), onClick: onNewChat });
|
|
10838
10904
|
if (onOpenArchive) {
|
|
@@ -10889,7 +10955,7 @@ function MingoChatRail({
|
|
|
10889
10955
|
if (!sentinel || !hasMore || typeof IntersectionObserver === "undefined") return void 0;
|
|
10890
10956
|
const observer = new IntersectionObserver(
|
|
10891
10957
|
([entry]) => {
|
|
10892
|
-
if (_optionalChain([entry, 'optionalAccess',
|
|
10958
|
+
if (_optionalChain([entry, 'optionalAccess', _287 => _287.isIntersecting]) && !isLoadingMoreRef.current) _optionalChain([onLoadMoreRef, 'access', _288 => _288.current, 'optionalCall', _289 => _289()]);
|
|
10893
10959
|
},
|
|
10894
10960
|
{ rootMargin: "120px", threshold: 0.1 }
|
|
10895
10961
|
);
|
|
@@ -11012,7 +11078,7 @@ function MingoChatRailRow({ dialog, active, status, onSelect, menuItems }) {
|
|
|
11012
11078
|
{
|
|
11013
11079
|
active,
|
|
11014
11080
|
title,
|
|
11015
|
-
onClick: () => _optionalChain([onSelect, 'optionalCall',
|
|
11081
|
+
onClick: () => _optionalChain([onSelect, 'optionalCall', _290 => _290(dialog.id)]),
|
|
11016
11082
|
className: _chunk3ATAYP36cjs.cn.call(void 0, hasMenu && "pr-10"),
|
|
11017
11083
|
trailing: glyph ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
11018
11084
|
"span",
|
|
@@ -11146,7 +11212,7 @@ function MingoHistoryRail({
|
|
|
11146
11212
|
onRetry,
|
|
11147
11213
|
className
|
|
11148
11214
|
}) {
|
|
11149
|
-
const hasSearch = !!_optionalChain([searchQuery, 'optionalAccess',
|
|
11215
|
+
const hasSearch = !!_optionalChain([searchQuery, 'optionalAccess', _291 => _291.trim, 'call', _292 => _292()]);
|
|
11150
11216
|
const hasList = dialogs.length > 0 || hasSearch;
|
|
11151
11217
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
11152
11218
|
"div",
|
|
@@ -11295,7 +11361,7 @@ function ChatDialogModals({
|
|
|
11295
11361
|
RenameChatModal,
|
|
11296
11362
|
{
|
|
11297
11363
|
isOpen: renameTarget != null,
|
|
11298
|
-
initialName: _nullishCoalesce(_optionalChain([renameTarget, 'optionalAccess',
|
|
11364
|
+
initialName: _nullishCoalesce(_optionalChain([renameTarget, 'optionalAccess', _293 => _293.title]), () => ( "")),
|
|
11299
11365
|
onClose: () => setRenameTarget(null),
|
|
11300
11366
|
onSave: onConfirmRename
|
|
11301
11367
|
}
|
|
@@ -11512,7 +11578,7 @@ function ChatAttachmentAddButton({
|
|
|
11512
11578
|
const canAddMore = slotsAvailable > 0 && !disabled;
|
|
11513
11579
|
const handlePick = () => {
|
|
11514
11580
|
if (!canAddMore) return;
|
|
11515
|
-
_optionalChain([fileInputRef, 'access',
|
|
11581
|
+
_optionalChain([fileInputRef, 'access', _294 => _294.current, 'optionalAccess', _295 => _295.click, 'call', _296 => _296()]);
|
|
11516
11582
|
};
|
|
11517
11583
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
11518
11584
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -11675,7 +11741,7 @@ function ChatContextMemoryBar({
|
|
|
11675
11741
|
_react.useEffect.call(void 0, () => {
|
|
11676
11742
|
if (!open) return void 0;
|
|
11677
11743
|
const onOutside = (e) => {
|
|
11678
|
-
if (_optionalChain([rootRef, 'access',
|
|
11744
|
+
if (_optionalChain([rootRef, 'access', _297 => _297.current, 'optionalAccess', _298 => _298.contains, 'call', _299 => _299(e.target)])) return;
|
|
11679
11745
|
setOpen(false);
|
|
11680
11746
|
};
|
|
11681
11747
|
document.addEventListener("mousedown", onOutside, true);
|
|
@@ -11978,7 +12044,7 @@ function ChatComposer({
|
|
|
11978
12044
|
const locked = lock != null;
|
|
11979
12045
|
const selected = _nullishCoalesce(selectedContextItems, () => ( []));
|
|
11980
12046
|
const memory = _nullishCoalesce(contextMemoryItems, () => ( []));
|
|
11981
|
-
const entityTypes = _optionalChain([contextPicker, 'optionalAccess',
|
|
12047
|
+
const entityTypes = _optionalChain([contextPicker, 'optionalAccess', _300 => _300.entityTypes]);
|
|
11982
12048
|
const iconByType = _react.useMemo.call(void 0, () => {
|
|
11983
12049
|
const map = /* @__PURE__ */ new Map();
|
|
11984
12050
|
for (const t of _nullishCoalesce(entityTypes, () => ( []))) map.set(t.type, t.icon);
|
|
@@ -11994,7 +12060,7 @@ function ChatComposer({
|
|
|
11994
12060
|
sending,
|
|
11995
12061
|
placeholder,
|
|
11996
12062
|
disabled: locked,
|
|
11997
|
-
disabledPlaceholder: _optionalChain([lock, 'optionalAccess',
|
|
12063
|
+
disabledPlaceholder: _optionalChain([lock, 'optionalAccess', _301 => _301.placeholder]),
|
|
11998
12064
|
previewText,
|
|
11999
12065
|
fullWidth: true,
|
|
12000
12066
|
className: "px-0",
|
|
@@ -12007,7 +12073,7 @@ function ChatComposer({
|
|
|
12007
12073
|
startIcon: contextEnabled ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
12008
12074
|
ChatComposerPlusMenu,
|
|
12009
12075
|
{
|
|
12010
|
-
onToggle: () => contextPickerOpen ? _optionalChain([onCloseContextPicker, 'optionalCall',
|
|
12076
|
+
onToggle: () => contextPickerOpen ? _optionalChain([onCloseContextPicker, 'optionalCall', _302 => _302()]) : _optionalChain([onOpenContextPicker, 'optionalCall', _303 => _303()]),
|
|
12011
12077
|
open: contextPickerOpen,
|
|
12012
12078
|
disabled: attachmentsDisabled || locked,
|
|
12013
12079
|
dropdown: contextPicker ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -12016,8 +12082,8 @@ function ChatComposer({
|
|
|
12016
12082
|
open: contextPickerOpen,
|
|
12017
12083
|
config: contextPicker,
|
|
12018
12084
|
selectedItems: selected,
|
|
12019
|
-
onToggleItem: (item) => _optionalChain([onToggleContextItem, 'optionalCall',
|
|
12020
|
-
onClose: () => _optionalChain([onCloseContextPicker, 'optionalCall',
|
|
12085
|
+
onToggleItem: (item) => _optionalChain([onToggleContextItem, 'optionalCall', _304 => _304(item)]),
|
|
12086
|
+
onClose: () => _optionalChain([onCloseContextPicker, 'optionalCall', _305 => _305()]),
|
|
12021
12087
|
mentionQuery
|
|
12022
12088
|
}
|
|
12023
12089
|
) : void 0
|
|
@@ -12208,8 +12274,8 @@ ChatSidebarSkeleton.displayName = "ChatSidebarSkeleton";
|
|
|
12208
12274
|
var DialogListItem = _react.forwardRef.call(void 0,
|
|
12209
12275
|
({ className, dialog, isActive, onDialogSelect, onClick, ...props }, ref) => {
|
|
12210
12276
|
const handleClick = (e) => {
|
|
12211
|
-
_optionalChain([onDialogSelect, 'optionalCall',
|
|
12212
|
-
_optionalChain([onClick, 'optionalCall',
|
|
12277
|
+
_optionalChain([onDialogSelect, 'optionalCall', _306 => _306(dialog.id)]);
|
|
12278
|
+
_optionalChain([onClick, 'optionalCall', _307 => _307(e)]);
|
|
12213
12279
|
};
|
|
12214
12280
|
const formatTimestamp = (timestamp) => {
|
|
12215
12281
|
return _chunkTKFTWM3Vcjs.formatDateWithTimezone.call(void 0, timestamp, _chunkTKFTWM3Vcjs.VIEWER_TIMEZONE, "numericDateTime24h");
|
|
@@ -12282,7 +12348,7 @@ var ChatSidebar = _react.forwardRef.call(void 0,
|
|
|
12282
12348
|
(entries) => {
|
|
12283
12349
|
const [entry] = entries;
|
|
12284
12350
|
if (entry.isIntersecting && !isFetchingRef.current) {
|
|
12285
|
-
_optionalChain([onLoadMoreRef, 'access',
|
|
12351
|
+
_optionalChain([onLoadMoreRef, 'access', _308 => _308.current, 'optionalCall', _309 => _309()]);
|
|
12286
12352
|
}
|
|
12287
12353
|
},
|
|
12288
12354
|
{ root: scrollContainer, rootMargin: "100px", threshold: 0.1 }
|
|
@@ -12497,7 +12563,7 @@ function OnboardingCarousel({
|
|
|
12497
12563
|
" of ",
|
|
12498
12564
|
steps.length,
|
|
12499
12565
|
": ",
|
|
12500
|
-
_optionalChain([steps, 'access',
|
|
12566
|
+
_optionalChain([steps, 'access', _310 => _310[index], 'optionalAccess', _311 => _311.title])
|
|
12501
12567
|
] }),
|
|
12502
12568
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "flex items-center", role: "group", "aria-label": "Choose step", children: steps.map((step, i) => {
|
|
12503
12569
|
const isCurrent = i === index;
|
|
@@ -12602,7 +12668,7 @@ function isForeignOriginHref(href) {
|
|
|
12602
12668
|
function runNavigation(runtime, href, path, targetPlatform, fallbackNavigate) {
|
|
12603
12669
|
const isNewTab = runtime ? _chunkHEQ4GPYEcjs.computeIsNewTab.call(void 0, runtime, href, _nullishCoalesce(targetPlatform, () => ( null))) : false;
|
|
12604
12670
|
if (isNewTab) {
|
|
12605
|
-
if (_optionalChain([runtime, 'optionalAccess',
|
|
12671
|
+
if (_optionalChain([runtime, 'optionalAccess', _312 => _312.navigation, 'access', _313 => _313.openExternal])) runtime.navigation.openExternal(href);
|
|
12606
12672
|
else window.open(href, "_blank", NEW_TAB_FEATURES);
|
|
12607
12673
|
return;
|
|
12608
12674
|
}
|
|
@@ -12610,7 +12676,7 @@ function runNavigation(runtime, href, path, targetPlatform, fallbackNavigate) {
|
|
|
12610
12676
|
if (target.includes("#") && _chunkK2JUJ37Dcjs.navigateSamePageHash.call(void 0, target, { headerOffset: _chunkK2JUJ37Dcjs.STICKY_HEADER_OFFSET_PX })) {
|
|
12611
12677
|
return;
|
|
12612
12678
|
}
|
|
12613
|
-
const handled = _nullishCoalesce(_optionalChain([runtime, 'optionalAccess',
|
|
12679
|
+
const handled = _nullishCoalesce(_optionalChain([runtime, 'optionalAccess', _314 => _314.navigation, 'access', _315 => _315.navigate, 'optionalCall', _316 => _316({ href, path, targetPlatform })]), () => ( false));
|
|
12614
12680
|
if (!handled) {
|
|
12615
12681
|
if (fallbackNavigate) fallbackNavigate(target);
|
|
12616
12682
|
else window.location.assign(target);
|
|
@@ -12660,7 +12726,7 @@ function useNavLinkViaRuntime({
|
|
|
12660
12726
|
const resolvedHref = resolveHrefForRuntime(href, runtime);
|
|
12661
12727
|
const isNewTab = _chunkHEQ4GPYEcjs.computeIsNewTab.call(void 0, runtime, resolvedHref, _nullishCoalesce(targetPlatform, () => ( null)));
|
|
12662
12728
|
const onClick = (e) => {
|
|
12663
|
-
_optionalChain([onClickProp, 'optionalCall',
|
|
12729
|
+
_optionalChain([onClickProp, 'optionalCall', _317 => _317(e)]);
|
|
12664
12730
|
if (e.defaultPrevented) return;
|
|
12665
12731
|
const handled = executeNavigation({
|
|
12666
12732
|
event: e,
|
|
@@ -12670,7 +12736,7 @@ function useNavLinkViaRuntime({
|
|
|
12670
12736
|
targetPlatform,
|
|
12671
12737
|
fallbackNavigate: router.push
|
|
12672
12738
|
});
|
|
12673
|
-
if (handled && !isNewTab && _optionalChain([panel, 'optionalAccess',
|
|
12739
|
+
if (handled && !isNewTab && _optionalChain([panel, 'optionalAccess', _318 => _318.closeChat])) panel.closeChat();
|
|
12674
12740
|
};
|
|
12675
12741
|
const attrs = _chunkHEQ4GPYEcjs.newTabAnchorAttrs.call(void 0, isNewTab);
|
|
12676
12742
|
return {
|
|
@@ -12754,11 +12820,11 @@ var DEFAULT_CAPTIONS_PATH = "/api/captions";
|
|
|
12754
12820
|
function getCaptionsUrl(entityType, entityId, srtContent, options) {
|
|
12755
12821
|
if (!srtContent) return void 0;
|
|
12756
12822
|
const hash = `${srtContent.length}-${srtContent.slice(0, 8).replace(/\s/g, "")}`;
|
|
12757
|
-
const variant = _optionalChain([options, 'optionalAccess',
|
|
12823
|
+
const variant = _optionalChain([options, 'optionalAccess', _319 => _319.variant]) ? `&variant=${options.variant}` : "";
|
|
12758
12824
|
return `${DEFAULT_CAPTIONS_PATH}/${entityType}/${entityId}?v=${hash}${variant}`;
|
|
12759
12825
|
}
|
|
12760
12826
|
function resolveCaptionsBase(endpoints) {
|
|
12761
|
-
return _optionalChain([endpoints, 'optionalAccess',
|
|
12827
|
+
return _optionalChain([endpoints, 'optionalAccess', _320 => _320.captionsUrlPrefix]) || DEFAULT_CAPTIONS_PATH;
|
|
12762
12828
|
}
|
|
12763
12829
|
function rebaseCaptionsUrl(endpoints, url) {
|
|
12764
12830
|
if (!url || !url.startsWith(`${DEFAULT_CAPTIONS_PATH}/`)) return url;
|
|
@@ -12847,7 +12913,7 @@ TabsContent.displayName = TabsPrimitive.Content.displayName;
|
|
|
12847
12913
|
// src/components/features/use-captions.ts
|
|
12848
12914
|
|
|
12849
12915
|
function useCaptions() {
|
|
12850
|
-
const endpoints = _nullishCoalesce(_optionalChain([_chunkUJ7AXHRZcjs.useChatRuntime.call(void 0, ), 'optionalAccess',
|
|
12916
|
+
const endpoints = _nullishCoalesce(_optionalChain([_chunkUJ7AXHRZcjs.useChatRuntime.call(void 0, ), 'optionalAccess', _321 => _321.endpoints]), () => ( null));
|
|
12851
12917
|
return _react.useMemo.call(void 0,
|
|
12852
12918
|
() => ({
|
|
12853
12919
|
forEntity: (entityType, entity) => getEntityCaptionUrls(endpoints, entityType, entity),
|
|
@@ -13122,9 +13188,9 @@ function CardsStrip(props) {
|
|
|
13122
13188
|
const p = hoverPointerRef.current;
|
|
13123
13189
|
if (!p.inside) return;
|
|
13124
13190
|
const el = typeof document !== "undefined" ? document.elementFromPoint(p.x, p.y) : null;
|
|
13125
|
-
const cardEl = _optionalChain([el, 'optionalAccess',
|
|
13126
|
-
const scoped = cardEl && _optionalChain([scrollerRef, 'access',
|
|
13127
|
-
const key = _nullishCoalesce(_optionalChain([scoped, 'optionalAccess',
|
|
13191
|
+
const cardEl = _optionalChain([el, 'optionalAccess', _322 => _322.closest, 'optionalCall', _323 => _323("[data-strip-card-key]")]);
|
|
13192
|
+
const scoped = cardEl && _optionalChain([scrollerRef, 'access', _324 => _324.current, 'optionalAccess', _325 => _325.contains, 'call', _326 => _326(cardEl)]) ? cardEl : null;
|
|
13193
|
+
const key = _nullishCoalesce(_optionalChain([scoped, 'optionalAccess', _327 => _327.getAttribute, 'call', _328 => _328("data-strip-card-key")]), () => ( null));
|
|
13128
13194
|
const current = activeKeyRef.current;
|
|
13129
13195
|
if (key === current) return;
|
|
13130
13196
|
if (current !== null) deactivate(current);
|
|
@@ -13162,7 +13228,7 @@ function CardsStrip(props) {
|
|
|
13162
13228
|
}, [syncHoverToPointer]);
|
|
13163
13229
|
const seamBuffer = _react.useCallback.call(void 0, () => {
|
|
13164
13230
|
const half = singleCopyWidthRef.current;
|
|
13165
|
-
const viewport = _nullishCoalesce(_optionalChain([scrollerRef, 'access',
|
|
13231
|
+
const viewport = _nullishCoalesce(_optionalChain([scrollerRef, 'access', _329 => _329.current, 'optionalAccess', _330 => _330.clientWidth]), () => ( 0));
|
|
13166
13232
|
return Math.max(0, Math.min(200, half / 4, half - viewport - TRACK_GAP_PX - 1));
|
|
13167
13233
|
}, []);
|
|
13168
13234
|
const mirror = _react.useCallback.call(void 0,
|
|
@@ -13186,7 +13252,7 @@ function CardsStrip(props) {
|
|
|
13186
13252
|
const scroller = scrollerRef.current;
|
|
13187
13253
|
if (scroller) scroller.scrollLeft = mirror(pos);
|
|
13188
13254
|
},
|
|
13189
|
-
readBack: () => mirror(_nullishCoalesce(_optionalChain([scrollerRef, 'access',
|
|
13255
|
+
readBack: () => mirror(_nullishCoalesce(_optionalChain([scrollerRef, 'access', _331 => _331.current, 'optionalAccess', _332 => _332.scrollLeft]), () => ( 0))),
|
|
13190
13256
|
onAfterFrame: syncHoverIfScrolled
|
|
13191
13257
|
});
|
|
13192
13258
|
const [mountedIdx, setMountedIdx] = _react.useState.call(void 0, () => /* @__PURE__ */ new Set());
|
|
@@ -13234,11 +13300,11 @@ function CardsStrip(props) {
|
|
|
13234
13300
|
fn = (el) => {
|
|
13235
13301
|
if (!el) return void 0;
|
|
13236
13302
|
cardElIdxRef.current.set(el, idx);
|
|
13237
|
-
_optionalChain([cardObserverRef, 'access',
|
|
13303
|
+
_optionalChain([cardObserverRef, 'access', _333 => _333.current, 'optionalAccess', _334 => _334.observe, 'call', _335 => _335(el)]);
|
|
13238
13304
|
return () => {
|
|
13239
13305
|
cardElIdxRef.current.delete(el);
|
|
13240
13306
|
cardElNearRef.current.delete(el);
|
|
13241
|
-
_optionalChain([cardObserverRef, 'access',
|
|
13307
|
+
_optionalChain([cardObserverRef, 'access', _336 => _336.current, 'optionalAccess', _337 => _337.unobserve, 'call', _338 => _338(el)]);
|
|
13242
13308
|
};
|
|
13243
13309
|
};
|
|
13244
13310
|
cardRefFns.set(idx, fn);
|
|
@@ -13257,7 +13323,7 @@ function CardsStrip(props) {
|
|
|
13257
13323
|
const track = trackRef.current;
|
|
13258
13324
|
if (!scroller || !track) return;
|
|
13259
13325
|
const firstCard = track.firstElementChild;
|
|
13260
|
-
const step = (_nullishCoalesce(_optionalChain([firstCard, 'optionalAccess',
|
|
13326
|
+
const step = (_nullishCoalesce(_optionalChain([firstCard, 'optionalAccess', _339 => _339.offsetWidth]), () => ( 320))) + TRACK_GAP_PX;
|
|
13261
13327
|
chevronSuppressUntilRef.current = performance.now() + CHEVRON_SUPPRESS_MS;
|
|
13262
13328
|
if (marqueeActiveRef.current) {
|
|
13263
13329
|
glideBy((reverse ? -dir : dir) * step);
|
|
@@ -13318,7 +13384,7 @@ function CardsStrip(props) {
|
|
|
13318
13384
|
{
|
|
13319
13385
|
ref: (node) => {
|
|
13320
13386
|
wrapperRef.current = node;
|
|
13321
|
-
_optionalChain([rootRef, 'optionalCall',
|
|
13387
|
+
_optionalChain([rootRef, 'optionalCall', _340 => _340(node)]);
|
|
13322
13388
|
},
|
|
13323
13389
|
className: _chunk3ATAYP36cjs.cn.call(void 0, "flex w-full min-w-0 flex-col gap-6", className),
|
|
13324
13390
|
children: [
|
|
@@ -13493,7 +13559,7 @@ function VideoBitesStrip({
|
|
|
13493
13559
|
const filtered = filterPublished ? bites.filter((b) => b.published) : [...bites];
|
|
13494
13560
|
return filtered.sort(sortComparator);
|
|
13495
13561
|
}, [bites, filterPublished, sortComparator]);
|
|
13496
|
-
const warmup = _chunkHEQ4GPYEcjs.useVideoWarmup.call(void 0, { videoUrl: _optionalChain([items, 'access',
|
|
13562
|
+
const warmup = _chunkHEQ4GPYEcjs.useVideoWarmup.call(void 0, { videoUrl: _optionalChain([items, 'access', _341 => _341[0], 'optionalAccess', _342 => _342.url]) || null });
|
|
13497
13563
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
13498
13564
|
CardsStrip,
|
|
13499
13565
|
{
|
|
@@ -13560,8 +13626,8 @@ function VideoBiteCard({
|
|
|
13560
13626
|
const controlled = active !== void 0;
|
|
13561
13627
|
const [selfActive, setSelfActive] = _react.useState.call(void 0, false);
|
|
13562
13628
|
const isActive = controlled ? !!active : selfActive;
|
|
13563
|
-
const activate = () => controlled ? _optionalChain([onActivate, 'optionalCall',
|
|
13564
|
-
const deactivate = () => controlled ? _optionalChain([onDeactivate, 'optionalCall',
|
|
13629
|
+
const activate = () => controlled ? _optionalChain([onActivate, 'optionalCall', _343 => _343(key)]) : setSelfActive(true);
|
|
13630
|
+
const deactivate = () => controlled ? _optionalChain([onDeactivate, 'optionalCall', _344 => _344(key)]) : setSelfActive(false);
|
|
13565
13631
|
const titleInputRef = _react.useRef.call(void 0, null);
|
|
13566
13632
|
_chunkULWVKHSIcjs.useIsomorphicLayoutEffect.call(void 0, () => {
|
|
13567
13633
|
const el = titleInputRef.current;
|
|
@@ -13571,7 +13637,7 @@ function VideoBiteCard({
|
|
|
13571
13637
|
});
|
|
13572
13638
|
const navigate = () => {
|
|
13573
13639
|
if (bite.onNavigate) bite.onNavigate();
|
|
13574
|
-
else _optionalChain([onBiteNavigate, 'optionalCall',
|
|
13640
|
+
else _optionalChain([onBiteNavigate, 'optionalCall', _345 => _345(bite, index)]);
|
|
13575
13641
|
};
|
|
13576
13642
|
const handlePointerEnter = () => {
|
|
13577
13643
|
if (!isTouch) activate();
|
|
@@ -13596,9 +13662,9 @@ function VideoBiteCard({
|
|
|
13596
13662
|
placeholder: "Title (optional)",
|
|
13597
13663
|
"aria-label": "Bite title",
|
|
13598
13664
|
rows: 1,
|
|
13599
|
-
onChange: (e) => _optionalChain([onTitleChange, 'optionalCall',
|
|
13665
|
+
onChange: (e) => _optionalChain([onTitleChange, 'optionalCall', _346 => _346(e.target.value)]),
|
|
13600
13666
|
ref: titleInputRef,
|
|
13601
|
-
onBlur: (e) => _optionalChain([onTitleCommit, 'optionalCall',
|
|
13667
|
+
onBlur: (e) => _optionalChain([onTitleCommit, 'optionalCall', _347 => _347(e.target.value)]),
|
|
13602
13668
|
onClick: (e) => e.stopPropagation(),
|
|
13603
13669
|
className: _chunk3ATAYP36cjs.cn.call(void 0,
|
|
13604
13670
|
titleClass,
|
|
@@ -13675,7 +13741,7 @@ function VideoBiteCard({
|
|
|
13675
13741
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
13676
13742
|
"div",
|
|
13677
13743
|
{
|
|
13678
|
-
ref: (node) => _optionalChain([rootRef, 'optionalCall',
|
|
13744
|
+
ref: (node) => _optionalChain([rootRef, 'optionalCall', _348 => _348(node)]),
|
|
13679
13745
|
"aria-hidden": isClone || void 0,
|
|
13680
13746
|
"data-strip-card-key": key,
|
|
13681
13747
|
className: _chunk3ATAYP36cjs.cn.call(void 0,
|
|
@@ -13730,8 +13796,8 @@ function EntityVideoSection({
|
|
|
13730
13796
|
const hasHighlight = !!highlightVideoUrl;
|
|
13731
13797
|
const hasVideo = hasFullVideo || hasHighlight;
|
|
13732
13798
|
const derivedCaptions = captionsEntity ? captions.forEntityId(captionsEntity.type, captionsEntity.id) : null;
|
|
13733
|
-
const captionsUrl = _nullishCoalesce(captionsUrlProp, () => ( _optionalChain([derivedCaptions, 'optionalAccess',
|
|
13734
|
-
const highlightCaptionsUrl = _nullishCoalesce(highlightCaptionsUrlProp, () => ( _optionalChain([derivedCaptions, 'optionalAccess',
|
|
13799
|
+
const captionsUrl = _nullishCoalesce(captionsUrlProp, () => ( _optionalChain([derivedCaptions, 'optionalAccess', _349 => _349.captionsUrl])));
|
|
13800
|
+
const highlightCaptionsUrl = _nullishCoalesce(highlightCaptionsUrlProp, () => ( _optionalChain([derivedCaptions, 'optionalAccess', _350 => _350.highlightCaptionsUrl])));
|
|
13735
13801
|
if (!hasVideo && !videoSummary && (!videoBites || videoBites.length === 0)) {
|
|
13736
13802
|
return null;
|
|
13737
13803
|
}
|
|
@@ -14049,7 +14115,7 @@ var MediaSkeleton = {
|
|
|
14049
14115
|
|
|
14050
14116
|
function designDocPeople(doc) {
|
|
14051
14117
|
const people = [];
|
|
14052
|
-
if (_optionalChain([doc, 'access',
|
|
14118
|
+
if (_optionalChain([doc, 'access', _351 => _351.author, 'optionalAccess', _352 => _352.full_name]))
|
|
14053
14119
|
people.push({
|
|
14054
14120
|
key: `dri-${_nullishCoalesce(doc.author.id, () => ( doc.author.full_name))}`,
|
|
14055
14121
|
name: doc.author.full_name,
|
|
@@ -14062,7 +14128,7 @@ function designDocPeople(doc) {
|
|
|
14062
14128
|
return people;
|
|
14063
14129
|
}
|
|
14064
14130
|
function designDocMetaLine(doc) {
|
|
14065
|
-
return [_optionalChain([doc, 'access',
|
|
14131
|
+
return [_optionalChain([doc, 'access', _353 => _353.author, 'optionalAccess', _354 => _354.full_name]) ? `DRI ${doc.author.full_name}` : null, `updated ${_chunkHEQ4GPYEcjs.formatDateShort.call(void 0, doc.updated_at)}`].filter(Boolean).join(" \xB7 ");
|
|
14066
14132
|
}
|
|
14067
14133
|
function DesignDocCardSkeleton() {
|
|
14068
14134
|
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
|
|
@@ -14536,7 +14602,7 @@ function DataRoomDocCard({ item, className, badgeText, anchorProps }) {
|
|
|
14536
14602
|
] }) : null,
|
|
14537
14603
|
item.preview ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex min-w-0", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "line-clamp-2 whitespace-pre-wrap break-words text-ods-text-secondary text-h6", children: item.preview }) }) : null
|
|
14538
14604
|
] }),
|
|
14539
|
-
_optionalChain([anchorProps, 'optionalAccess',
|
|
14605
|
+
_optionalChain([anchorProps, 'optionalAccess', _355 => _355.href]) ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "flex h-5 shrink-0 items-center self-start text-ods-text-secondary", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.ExternalLink, { className: "h-3.5 w-3.5" }) }) : null
|
|
14540
14606
|
] });
|
|
14541
14607
|
if (!anchorProps) {
|
|
14542
14608
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: `${_chunkHEQ4GPYEcjs.COMPACT_CARD_OUTER_STATIC} ${_nullishCoalesce(className, () => ( ""))}`, "aria-label": "No link available", children: body });
|
|
@@ -14564,7 +14630,7 @@ function DataRoomDocCardSkeleton({ className }) {
|
|
|
14564
14630
|
|
|
14565
14631
|
|
|
14566
14632
|
function CampaignCardAdmin({ campaign, className, anchorProps }) {
|
|
14567
|
-
const goalsCount = _optionalChain([campaign, 'access',
|
|
14633
|
+
const goalsCount = _optionalChain([campaign, 'access', _356 => _356.goals, 'optionalAccess', _357 => _357.length]) || 0;
|
|
14568
14634
|
const innerChildren = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
|
|
14569
14635
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: _chunkHEQ4GPYEcjs.COMPACT_CARD_ICON_SLOT, children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _lucidereact.Megaphone, { className: "h-5 w-5" }) }),
|
|
14570
14636
|
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: _chunkHEQ4GPYEcjs.COMPACT_CARD_TEXT_COL, children: [
|
|
@@ -14678,8 +14744,8 @@ function getVendorLogo(vendor) {
|
|
|
14678
14744
|
if (vendor.logo) {
|
|
14679
14745
|
return fixSupabaseStorageUrl(vendor.logo);
|
|
14680
14746
|
}
|
|
14681
|
-
const logoMedia = _optionalChain([vendor, 'access',
|
|
14682
|
-
if (_optionalChain([logoMedia, 'optionalAccess',
|
|
14747
|
+
const logoMedia = _optionalChain([vendor, 'access', _358 => _358.vendor_media, 'optionalAccess', _359 => _359.find, 'call', _360 => _360((m) => m.media_type === "logo")]);
|
|
14748
|
+
if (_optionalChain([logoMedia, 'optionalAccess', _361 => _361.media_url])) {
|
|
14683
14749
|
return fixSupabaseStorageUrl(logoMedia.media_url);
|
|
14684
14750
|
}
|
|
14685
14751
|
return null;
|
|
@@ -14748,7 +14814,7 @@ function VendorIcon({
|
|
|
14748
14814
|
"flex items-center justify-center uppercase text-h6",
|
|
14749
14815
|
backgroundStyle === "white" ? "text-[#333333]" : "text-ods-text-secondary"
|
|
14750
14816
|
),
|
|
14751
|
-
children: _optionalChain([vendor, 'access',
|
|
14817
|
+
children: _optionalChain([vendor, 'access', _362 => _362.title, 'optionalAccess', _363 => _363.substring, 'call', _364 => _364(0, 2)]) || "??"
|
|
14752
14818
|
}
|
|
14753
14819
|
) });
|
|
14754
14820
|
}
|
|
@@ -14941,7 +15007,7 @@ function pickFetchedCardHref({
|
|
|
14941
15007
|
itemHref,
|
|
14942
15008
|
allowComposed
|
|
14943
15009
|
}) {
|
|
14944
|
-
if (_optionalChain([composed, 'optionalAccess',
|
|
15010
|
+
if (_optionalChain([composed, 'optionalAccess', _365 => _365.hostOverride])) {
|
|
14945
15011
|
return { source: "hostOverride", href: composed.href, targetPlatform: composed.targetPlatform };
|
|
14946
15012
|
}
|
|
14947
15013
|
if (itemHref) return { source: "item", href: itemHref };
|
|
@@ -15003,7 +15069,7 @@ function resolveSourceRowCTA(row, ctx = {}) {
|
|
|
15003
15069
|
if (row.path && shouldFallbackToPathNav(row) && !row.externalUrl) {
|
|
15004
15070
|
const safePath = sanitizePath(row.path);
|
|
15005
15071
|
if (safePath) {
|
|
15006
|
-
const docTarget = row.documentType ? _optionalChain([ctx, 'access',
|
|
15072
|
+
const docTarget = row.documentType ? _optionalChain([ctx, 'access', _366 => _366.docPlatformTargets, 'optionalAccess', _367 => _367[row.documentType]]) : void 0;
|
|
15007
15073
|
if (docTarget) {
|
|
15008
15074
|
const seg = docTarget.basePath.split("/").filter(Boolean).join("/");
|
|
15009
15075
|
const base = `${getPlatformUrl(docTarget.platform)}${seg ? `/${seg}` : ""}/`;
|
|
@@ -15072,7 +15138,7 @@ function resolveCardDestination({
|
|
|
15072
15138
|
composeContentUrl,
|
|
15073
15139
|
resolveHref = (href) => href
|
|
15074
15140
|
}) {
|
|
15075
|
-
const refPath = typeof _optionalChain([chatRef, 'access',
|
|
15141
|
+
const refPath = typeof _optionalChain([chatRef, 'access', _368 => _368.metadata, 'optionalAccess', _369 => _369.path]) === "string" && chatRef.metadata.path ? chatRef.metadata.path : null;
|
|
15076
15142
|
const path = _nullishCoalesce(refPath, () => ( (item ? readFetchedCardPath(item) : null)));
|
|
15077
15143
|
const cta = resolveSourceRowCTA(
|
|
15078
15144
|
{
|
|
@@ -15089,7 +15155,7 @@ function resolveCardDestination({
|
|
|
15089
15155
|
const rowUrl = cta.href ? resolveHref(cta.href) : _nullishCoalesce(chatRef.url, () => ( null));
|
|
15090
15156
|
const rowPlatform = _nullishCoalesce(_nullishCoalesce(cta.targetPlatform, () => ( chatRef.targetPlatform)), () => ( null));
|
|
15091
15157
|
if (rowUrl) return { url: rowUrl, targetPlatform: rowPlatform, path, source: "row" };
|
|
15092
|
-
if (_optionalChain([entry, 'optionalAccess',
|
|
15158
|
+
if (_optionalChain([entry, 'optionalAccess', _370 => _370.contentRefType]) && item) {
|
|
15093
15159
|
const choice = pickFetchedCardHref({
|
|
15094
15160
|
composed: resolveFetchedCardHref({
|
|
15095
15161
|
contentRefType: entry.contentRefType,
|
|
@@ -15097,7 +15163,7 @@ function resolveCardDestination({
|
|
|
15097
15163
|
item,
|
|
15098
15164
|
composeContentUrl
|
|
15099
15165
|
}),
|
|
15100
|
-
itemHref: _nullishCoalesce(_optionalChain([entry, 'access',
|
|
15166
|
+
itemHref: _nullishCoalesce(_optionalChain([entry, 'access', _371 => _371.fallbackHref, 'optionalCall', _372 => _372(item)]), () => ( null)),
|
|
15101
15167
|
allowComposed: !entry.noComposedHref
|
|
15102
15168
|
});
|
|
15103
15169
|
const url = choice ? _nullishCoalesce(_chunkHEQ4GPYEcjs.safeHref.call(void 0, choice.href), () => ( null)) : null;
|
|
@@ -15191,8 +15257,8 @@ function cardMenuGroups(href, discuss, openDetails, externalLink) {
|
|
|
15191
15257
|
if (href) {
|
|
15192
15258
|
items.push({
|
|
15193
15259
|
id: "open-details",
|
|
15194
|
-
label: _nullishCoalesce(_optionalChain([openDetails, 'optionalAccess',
|
|
15195
|
-
icon: _nullishCoalesce(_optionalChain([openDetails, 'optionalAccess',
|
|
15260
|
+
label: _nullishCoalesce(_optionalChain([openDetails, 'optionalAccess', _373 => _373.label]), () => ( "Open Details")),
|
|
15261
|
+
icon: _nullishCoalesce(_optionalChain([openDetails, 'optionalAccess', _374 => _374.icon]), () => ( /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.EyeIcon, { size: 20 }))),
|
|
15196
15262
|
// Main row → open the entity (same tab, soft Link nav).
|
|
15197
15263
|
href,
|
|
15198
15264
|
// Trailing 40px ↗ side-button → open in a new tab.
|
|
@@ -15252,18 +15318,18 @@ function itemVideoMetadata(item) {
|
|
|
15252
15318
|
for (const v of vals) if (typeof v === "string" && v.length > 0) return v;
|
|
15253
15319
|
return void 0;
|
|
15254
15320
|
};
|
|
15255
|
-
const m = _nullishCoalesce(_optionalChain([item, 'optionalAccess',
|
|
15321
|
+
const m = _nullishCoalesce(_optionalChain([item, 'optionalAccess', _375 => _375.metadata]), () => ( {}));
|
|
15256
15322
|
const out = {};
|
|
15257
|
-
const videoUrl = pick2(m.videoUrl, _optionalChain([item, 'optionalAccess',
|
|
15258
|
-
const youtubeUrl = pick2(m.youtubeUrl, _optionalChain([item, 'optionalAccess',
|
|
15259
|
-
const highlightVideoUrl = pick2(m.highlightVideoUrl, _optionalChain([item, 'optionalAccess',
|
|
15323
|
+
const videoUrl = pick2(m.videoUrl, _optionalChain([item, 'optionalAccess', _376 => _376.custom_video_url]), _optionalChain([item, 'optionalAccess', _377 => _377.main_video_url]));
|
|
15324
|
+
const youtubeUrl = pick2(m.youtubeUrl, _optionalChain([item, 'optionalAccess', _378 => _378.youtube_url]), _optionalChain([item, 'optionalAccess', _379 => _379.testimonial_video_url]));
|
|
15325
|
+
const highlightVideoUrl = pick2(m.highlightVideoUrl, _optionalChain([item, 'optionalAccess', _380 => _380.highlight_video_url]));
|
|
15260
15326
|
const videoPoster = pick2(
|
|
15261
15327
|
m.videoPoster,
|
|
15262
|
-
_optionalChain([item, 'optionalAccess',
|
|
15263
|
-
_optionalChain([item, 'optionalAccess',
|
|
15264
|
-
_optionalChain([item, 'optionalAccess',
|
|
15328
|
+
_optionalChain([item, 'optionalAccess', _381 => _381.main_video_thumbnail]),
|
|
15329
|
+
_optionalChain([item, 'optionalAccess', _382 => _382.highlight_video_thumbnail]),
|
|
15330
|
+
_optionalChain([item, 'optionalAccess', _383 => _383.featured_image])
|
|
15265
15331
|
);
|
|
15266
|
-
const highlightVideoPoster = pick2(m.highlightVideoPoster, _optionalChain([item, 'optionalAccess',
|
|
15332
|
+
const highlightVideoPoster = pick2(m.highlightVideoPoster, _optionalChain([item, 'optionalAccess', _384 => _384.highlight_video_thumbnail]));
|
|
15267
15333
|
if (videoUrl) out.videoUrl = videoUrl;
|
|
15268
15334
|
if (youtubeUrl) out.youtubeUrl = youtubeUrl;
|
|
15269
15335
|
if (highlightVideoUrl) out.highlightVideoUrl = highlightVideoUrl;
|
|
@@ -15293,15 +15359,15 @@ function fetchedItemDisplayRef(item, chatRef) {
|
|
|
15293
15359
|
}
|
|
15294
15360
|
function fetchedFaqDisplayRef(item, chatRef) {
|
|
15295
15361
|
const it = item;
|
|
15296
|
-
const answer = typeof _optionalChain([it, 'optionalAccess',
|
|
15362
|
+
const answer = typeof _optionalChain([it, 'optionalAccess', _385 => _385.answer]) === "string" && it.answer.trim().length > 0 ? it.answer.trim() : null;
|
|
15297
15363
|
return {
|
|
15298
15364
|
type: "faq",
|
|
15299
15365
|
id: chatRef.id,
|
|
15300
15366
|
sourceRepo: chatRef.sourceRepo,
|
|
15301
|
-
title: typeof _optionalChain([it, 'optionalAccess',
|
|
15367
|
+
title: typeof _optionalChain([it, 'optionalAccess', _386 => _386.question]) === "string" && it.question ? it.question : chatRef.id,
|
|
15302
15368
|
url: _nullishCoalesce(chatRef.url, () => ( null)),
|
|
15303
15369
|
...answer ? { preview: answer.length > 400 ? `${answer.slice(0, 397)}\u2026` : answer } : {},
|
|
15304
|
-
metadata: typeof _optionalChain([it, 'optionalAccess',
|
|
15370
|
+
metadata: typeof _optionalChain([it, 'optionalAccess', _387 => _387.section]) === "string" && it.section ? { section: it.section } : {}
|
|
15305
15371
|
};
|
|
15306
15372
|
}
|
|
15307
15373
|
function HubspotTicketChatCard({
|
|
@@ -15309,8 +15375,8 @@ function HubspotTicketChatCard({
|
|
|
15309
15375
|
isNewTab,
|
|
15310
15376
|
discuss
|
|
15311
15377
|
}) {
|
|
15312
|
-
const status = typeof _optionalChain([chatRef, 'access',
|
|
15313
|
-
const statusLabel = typeof _optionalChain([chatRef, 'access',
|
|
15378
|
+
const status = typeof _optionalChain([chatRef, 'access', _388 => _388.metadata, 'optionalAccess', _389 => _389.status]) === "string" ? chatRef.metadata.status : void 0;
|
|
15379
|
+
const statusLabel = typeof _optionalChain([chatRef, 'access', _390 => _390.metadata, 'optionalAccess', _391 => _391.statusLabel]) === "string" ? chatRef.metadata.statusLabel : void 0;
|
|
15314
15380
|
const statusText = _nullishCoalesce(statusLabel, () => ( formatStatusToken(status)));
|
|
15315
15381
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
15316
15382
|
MingoInfoCard,
|
|
@@ -15333,7 +15399,7 @@ function FaqChatCard({
|
|
|
15333
15399
|
isNewTab,
|
|
15334
15400
|
discuss
|
|
15335
15401
|
}) {
|
|
15336
|
-
const section = typeof _optionalChain([chatRef, 'access',
|
|
15402
|
+
const section = typeof _optionalChain([chatRef, 'access', _392 => _392.metadata, 'optionalAccess', _393 => _393.section]) === "string" ? chatRef.metadata.section.trim() : void 0;
|
|
15337
15403
|
const statusLabel = section && section.length > 0 ? section : "FAQ";
|
|
15338
15404
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
15339
15405
|
MingoInfoCard,
|
|
@@ -15353,7 +15419,7 @@ function SlackChatCard({
|
|
|
15353
15419
|
isNewTab,
|
|
15354
15420
|
discuss
|
|
15355
15421
|
}) {
|
|
15356
|
-
const channelName = typeof _optionalChain([chatRef, 'access',
|
|
15422
|
+
const channelName = typeof _optionalChain([chatRef, 'access', _394 => _394.metadata, 'optionalAccess', _395 => _395.channelName]) === "string" ? chatRef.metadata.channelName.trim() : void 0;
|
|
15357
15423
|
const channelPretty = channelName ? channelName.startsWith("#") ? channelName : `#${channelName}` : void 0;
|
|
15358
15424
|
const title = channelPretty ? `${chatRef.title} \xB7 ${channelPretty}` : chatRef.title;
|
|
15359
15425
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
@@ -15396,7 +15462,7 @@ function TrustCenterChatCard({
|
|
|
15396
15462
|
isNewTab,
|
|
15397
15463
|
discuss
|
|
15398
15464
|
}) {
|
|
15399
|
-
const raw = _optionalChain([item, 'optionalAccess',
|
|
15465
|
+
const raw = _optionalChain([item, 'optionalAccess', _396 => _396.frameworks]);
|
|
15400
15466
|
const frameworks = Array.isArray(raw) ? raw : [];
|
|
15401
15467
|
const summary = _chunkHEQ4GPYEcjs.trustFrameworksSummary.call(void 0, frameworks);
|
|
15402
15468
|
const leadFramework = frameworks[0];
|
|
@@ -15445,7 +15511,7 @@ function GenericFinancialChatCard({
|
|
|
15445
15511
|
isNewTab,
|
|
15446
15512
|
discuss
|
|
15447
15513
|
}) {
|
|
15448
|
-
const subtitle = typeof _optionalChain([chatRef, 'access',
|
|
15514
|
+
const subtitle = typeof _optionalChain([chatRef, 'access', _397 => _397.metadata, 'optionalAccess', _398 => _398.subtitle]) === "string" ? chatRef.metadata.subtitle : void 0;
|
|
15449
15515
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
15450
15516
|
MingoInfoCard,
|
|
15451
15517
|
{
|
|
@@ -15514,12 +15580,12 @@ function ProductReleaseChatCard({
|
|
|
15514
15580
|
discuss
|
|
15515
15581
|
}) {
|
|
15516
15582
|
const releaseProps = buildProps(item);
|
|
15517
|
-
const status = _optionalChain([item, 'optionalAccess',
|
|
15583
|
+
const status = _optionalChain([item, 'optionalAccess', _399 => _399.version]) ? { label: String(item.version), variant: "grey" } : { label: "Release", variant: "grey" };
|
|
15518
15584
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
15519
15585
|
EntityMingoCard,
|
|
15520
15586
|
{
|
|
15521
|
-
title: _nullishCoalesce(_optionalChain([item, 'optionalAccess',
|
|
15522
|
-
description: _optionalChain([item, 'optionalAccess',
|
|
15587
|
+
title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _400 => _400.title]), () => ( "")),
|
|
15588
|
+
description: _optionalChain([item, 'optionalAccess', _401 => _401.summary]) || releaseProps.formattedDate || void 0,
|
|
15523
15589
|
cover: releaseProps.coverImage || void 0,
|
|
15524
15590
|
fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.Rocket02Icon, { size: 24 }),
|
|
15525
15591
|
status,
|
|
@@ -15536,17 +15602,17 @@ function CampaignChatCard({
|
|
|
15536
15602
|
isNewTab,
|
|
15537
15603
|
discuss
|
|
15538
15604
|
}) {
|
|
15539
|
-
const goalsCount = Array.isArray(_optionalChain([item, 'optionalAccess',
|
|
15605
|
+
const goalsCount = Array.isArray(_optionalChain([item, 'optionalAccess', _402 => _402.goals])) ? item.goals.length : 0;
|
|
15540
15606
|
const meta = [
|
|
15541
|
-
_optionalChain([item, 'optionalAccess',
|
|
15607
|
+
_optionalChain([item, 'optionalAccess', _403 => _403.start_date]) ? _chunkHEQ4GPYEcjs.formatDateShort.call(void 0, item.start_date) : null,
|
|
15542
15608
|
goalsCount > 0 ? `${goalsCount} goal${goalsCount !== 1 ? "s" : ""}` : null,
|
|
15543
15609
|
"Marketing campaign"
|
|
15544
15610
|
].filter(Boolean).join(" \xB7 ");
|
|
15545
15611
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
15546
15612
|
EntityMingoCard,
|
|
15547
15613
|
{
|
|
15548
|
-
title: _nullishCoalesce(_optionalChain([item, 'optionalAccess',
|
|
15549
|
-
description: meta || _optionalChain([item, 'optionalAccess',
|
|
15614
|
+
title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _404 => _404.name]), () => ( "")),
|
|
15615
|
+
description: meta || _optionalChain([item, 'optionalAccess', _405 => _405.description]) || void 0,
|
|
15550
15616
|
fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.Megaphone01Icon, { size: 24 }),
|
|
15551
15617
|
chatRef,
|
|
15552
15618
|
isNewTab,
|
|
@@ -15601,14 +15667,14 @@ function BlogChatCard({
|
|
|
15601
15667
|
hasEmbeddedVideo,
|
|
15602
15668
|
discuss
|
|
15603
15669
|
}) {
|
|
15604
|
-
const category = Array.isArray(_optionalChain([item, 'optionalAccess',
|
|
15670
|
+
const category = Array.isArray(_optionalChain([item, 'optionalAccess', _406 => _406.categories])) ? _nullishCoalesce(_optionalChain([item, 'access', _407 => _407.categories, 'access', _408 => _408.find, 'call', _409 => _409((c) => _optionalChain([c, 'optionalAccess', _410 => _410.name])), 'optionalAccess', _411 => _411.name]), () => ( void 0)) : void 0;
|
|
15605
15671
|
const status = hasEmbeddedVideo ? { label: "Video", variant: "primary" } : category ? { label: category, variant: "grey" } : void 0;
|
|
15606
15672
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
15607
15673
|
EntityMingoCard,
|
|
15608
15674
|
{
|
|
15609
|
-
title: _nullishCoalesce(_optionalChain([item, 'optionalAccess',
|
|
15610
|
-
description: _nullishCoalesce(_optionalChain([item, 'optionalAccess',
|
|
15611
|
-
cover: entityCover(_optionalChain([item, 'optionalAccess',
|
|
15675
|
+
title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _412 => _412.title]), () => ( "")),
|
|
15676
|
+
description: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _413 => _413.summary]), () => ( void 0)),
|
|
15677
|
+
cover: entityCover(_optionalChain([item, 'optionalAccess', _414 => _414.featured_image]), ogPlaceholder),
|
|
15612
15678
|
fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.NewspaperIcon, { size: 24 }),
|
|
15613
15679
|
status,
|
|
15614
15680
|
chatRef,
|
|
@@ -15625,13 +15691,13 @@ function CaseStudyChatCard({
|
|
|
15625
15691
|
ogPlaceholder,
|
|
15626
15692
|
discuss
|
|
15627
15693
|
}) {
|
|
15628
|
-
const meta = [_optionalChain([item, 'optionalAccess',
|
|
15694
|
+
const meta = [_optionalChain([item, 'optionalAccess', _415 => _415.msp, 'optionalAccess', _416 => _416.name]), _optionalChain([item, 'optionalAccess', _417 => _417.user, 'optionalAccess', _418 => _418.full_name])].filter(Boolean).join(" \xB7 ");
|
|
15629
15695
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
15630
15696
|
EntityMingoCard,
|
|
15631
15697
|
{
|
|
15632
|
-
title: _nullishCoalesce(_optionalChain([item, 'optionalAccess',
|
|
15633
|
-
description: _optionalChain([item, 'optionalAccess',
|
|
15634
|
-
cover: entityCover(_optionalChain([item, 'optionalAccess',
|
|
15698
|
+
title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _419 => _419.title]), () => ( "")),
|
|
15699
|
+
description: _optionalChain([item, 'optionalAccess', _420 => _420.summary]) || meta || void 0,
|
|
15700
|
+
cover: entityCover(_optionalChain([item, 'optionalAccess', _421 => _421.featured_image]), ogPlaceholder),
|
|
15635
15701
|
fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.TrophyIcon, { size: 24 }),
|
|
15636
15702
|
status: { label: "Case study", variant: "grey" },
|
|
15637
15703
|
chatRef,
|
|
@@ -15648,13 +15714,13 @@ function CustomerInterviewChatCard({
|
|
|
15648
15714
|
ogPlaceholder,
|
|
15649
15715
|
discuss
|
|
15650
15716
|
}) {
|
|
15651
|
-
const meta = [_optionalChain([item, 'optionalAccess',
|
|
15717
|
+
const meta = [_optionalChain([item, 'optionalAccess', _422 => _422.user, 'optionalAccess', _423 => _423.full_name]), _optionalChain([item, 'optionalAccess', _424 => _424.msp, 'optionalAccess', _425 => _425.name])].filter(Boolean).join(" \xB7 ");
|
|
15652
15718
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
15653
15719
|
EntityMingoCard,
|
|
15654
15720
|
{
|
|
15655
|
-
title: _nullishCoalesce(_optionalChain([item, 'optionalAccess',
|
|
15656
|
-
description: _optionalChain([item, 'optionalAccess',
|
|
15657
|
-
cover: entityCover(_optionalChain([item, 'optionalAccess',
|
|
15721
|
+
title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _426 => _426.title]), () => ( "")),
|
|
15722
|
+
description: _optionalChain([item, 'optionalAccess', _427 => _427.video_summary]) || meta || void 0,
|
|
15723
|
+
cover: entityCover(_optionalChain([item, 'optionalAccess', _428 => _428.featured_image]), ogPlaceholder),
|
|
15658
15724
|
fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.MicrophoneIcon, { size: 24 }),
|
|
15659
15725
|
status: { label: "Interview", variant: "grey" },
|
|
15660
15726
|
chatRef,
|
|
@@ -15671,12 +15737,12 @@ function DesignDocChatCard({
|
|
|
15671
15737
|
discuss
|
|
15672
15738
|
}) {
|
|
15673
15739
|
const displayRef = fetchedItemDisplayRef(item, chatRef);
|
|
15674
|
-
const doc = _optionalChain([item, 'optionalAccess',
|
|
15740
|
+
const doc = _optionalChain([item, 'optionalAccess', _429 => _429.doc]);
|
|
15675
15741
|
const readiness = doc ? DESIGN_DOC_READINESS_DISPLAY[designDocReadiness(doc.completion)] : null;
|
|
15676
15742
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
15677
15743
|
MingoInfoCard,
|
|
15678
15744
|
{
|
|
15679
|
-
title: _nullishCoalesce(_optionalChain([doc, 'optionalAccess',
|
|
15745
|
+
title: _nullishCoalesce(_optionalChain([doc, 'optionalAccess', _430 => _430.title]), () => ( displayRef.title)),
|
|
15680
15746
|
description: doc ? [designDocMetaLine(doc), formatCompletionLabel(doc.completion)].join(" \xB7 ") : _nullishCoalesce(displayRef.preview, () => ( void 0)),
|
|
15681
15747
|
icon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.FileContentIcon, { size: 24 }),
|
|
15682
15748
|
status: readiness ? { label: readiness.label, variant: readiness.scheme === "success" ? "success" : "grey" } : { label: "Design doc", variant: "grey" },
|
|
@@ -15693,13 +15759,13 @@ function InvestorUpdateChatCard({
|
|
|
15693
15759
|
ogPlaceholder,
|
|
15694
15760
|
discuss
|
|
15695
15761
|
}) {
|
|
15696
|
-
const title = _optionalChain([item, 'optionalAccess',
|
|
15762
|
+
const title = _optionalChain([item, 'optionalAccess', _431 => _431.title]) || `Update #${_nullishCoalesce(_optionalChain([item, 'optionalAccess', _432 => _432.update_number]), () => ( "?"))}`;
|
|
15697
15763
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
15698
15764
|
EntityMingoCard,
|
|
15699
15765
|
{
|
|
15700
15766
|
title,
|
|
15701
|
-
description: _optionalChain([item, 'optionalAccess',
|
|
15702
|
-
cover: entityCover(_optionalChain([item, 'optionalAccess',
|
|
15767
|
+
description: _optionalChain([item, 'optionalAccess', _433 => _433.strategic_update]) || _optionalChain([item, 'optionalAccess', _434 => _434.content]) || _chunkHEQ4GPYEcjs.formatInvestorUpdatePeriod.call(void 0, _nullishCoalesce(_optionalChain([item, 'optionalAccess', _435 => _435.period_start]), () => ( null)), _nullishCoalesce(_optionalChain([item, 'optionalAccess', _436 => _436.period_end]), () => ( null))) || void 0,
|
|
15768
|
+
cover: entityCover(_optionalChain([item, 'optionalAccess', _437 => _437.featured_image]), ogPlaceholder),
|
|
15703
15769
|
fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.PresentationLineIcon, { size: 24 }),
|
|
15704
15770
|
status: { label: "Investor update", variant: "grey" },
|
|
15705
15771
|
chatRef,
|
|
@@ -15716,12 +15782,12 @@ function OnboardingGuideChatCard({
|
|
|
15716
15782
|
ogPlaceholder,
|
|
15717
15783
|
discuss
|
|
15718
15784
|
}) {
|
|
15719
|
-
const cover = _nullishCoalesce(_nullishCoalesce(entityCover(_optionalChain([item, 'optionalAccess',
|
|
15785
|
+
const cover = _nullishCoalesce(_nullishCoalesce(entityCover(_optionalChain([item, 'optionalAccess', _438 => _438.featured_image])), () => ( entityCover(_optionalChain([item, 'optionalAccess', _439 => _439.main_video_thumbnail])))), () => ( entityCover(_optionalChain([item, 'optionalAccess', _440 => _440.og_image_url]), ogPlaceholder)));
|
|
15720
15786
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
15721
15787
|
EntityMingoCard,
|
|
15722
15788
|
{
|
|
15723
|
-
title: _nullishCoalesce(_optionalChain([item, 'optionalAccess',
|
|
15724
|
-
description: _nullishCoalesce(_nullishCoalesce(_optionalChain([item, 'optionalAccess',
|
|
15789
|
+
title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _441 => _441.title]), () => ( "")),
|
|
15790
|
+
description: _nullishCoalesce(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _442 => _442.summary]), () => ( _optionalChain([item, 'optionalAccess', _443 => _443.description]))), () => ( void 0)),
|
|
15725
15791
|
cover,
|
|
15726
15792
|
fallbackIcon: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.CompassIcon, { size: 24 }),
|
|
15727
15793
|
status: { label: "Guide", variant: "grey" },
|
|
@@ -15746,9 +15812,9 @@ function ProgramChatCard({
|
|
|
15746
15812
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
15747
15813
|
EntityMingoCard,
|
|
15748
15814
|
{
|
|
15749
|
-
title: _nullishCoalesce(_optionalChain([item, 'optionalAccess',
|
|
15750
|
-
description: meta || _optionalChain([item, 'optionalAccess',
|
|
15751
|
-
cover: entityCover(_optionalChain([item, 'optionalAccess',
|
|
15815
|
+
title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _444 => _444.title]), () => ( "")),
|
|
15816
|
+
description: meta || _optionalChain([item, 'optionalAccess', _445 => _445.description]) || void 0,
|
|
15817
|
+
cover: entityCover(_optionalChain([item, 'optionalAccess', _446 => _446.cover_url]), ogPlaceholder),
|
|
15752
15818
|
fallbackIcon: icon,
|
|
15753
15819
|
status: { label, variant: "grey" },
|
|
15754
15820
|
chatRef,
|
|
@@ -15765,10 +15831,10 @@ function RoadmapChatCard({
|
|
|
15765
15831
|
cardType,
|
|
15766
15832
|
discuss
|
|
15767
15833
|
}) {
|
|
15768
|
-
const logoUrl = typeof _optionalChain([item, 'optionalAccess',
|
|
15769
|
-
const useTypeIcon = cardType === "internal_task" || !logoUrl && _optionalChain([item, 'optionalAccess',
|
|
15834
|
+
const logoUrl = typeof _optionalChain([item, 'optionalAccess', _447 => _447.icon]) === "string" && item.icon.startsWith("http") ? item.icon : void 0;
|
|
15835
|
+
const useTypeIcon = cardType === "internal_task" || !logoUrl && _optionalChain([item, 'optionalAccess', _448 => _448.customItemId]) != null;
|
|
15770
15836
|
const defaultIcon = cardType === "delivery_item" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.TruckFastIcon, { size: 24 }) : cardType === "internal_task" ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.CheckSquareIcon, { size: 24 }) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkVX4E6YSBcjs.MapIcon, { size: 24 });
|
|
15771
|
-
const icon = useTypeIcon ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHEQ4GPYEcjs.TaskTypeIcon, { customItemId: _optionalChain([item, 'optionalAccess',
|
|
15837
|
+
const icon = useTypeIcon ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHEQ4GPYEcjs.TaskTypeIcon, { customItemId: _optionalChain([item, 'optionalAccess', _449 => _449.customItemId]), className: "size-6" }) : logoUrl ? (
|
|
15772
15838
|
// Contained (not full-bleed) so the integration logo keeps its aspect
|
|
15773
15839
|
// ratio inside the bordered icon box — matches RoadmapCard.
|
|
15774
15840
|
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkMGHIV4L6cjs.next_image_default, { src: logoUrl, alt: "", className: "size-6 object-contain", width: 24, height: 24, unoptimized: true })
|
|
@@ -15779,10 +15845,10 @@ function RoadmapChatCard({
|
|
|
15779
15845
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
15780
15846
|
EntityMingoCard,
|
|
15781
15847
|
{
|
|
15782
|
-
title: _nullishCoalesce(_optionalChain([item, 'optionalAccess',
|
|
15783
|
-
description: _nullishCoalesce(_optionalChain([item, 'optionalAccess',
|
|
15848
|
+
title: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _450 => _450.title]), () => ( "")),
|
|
15849
|
+
description: _nullishCoalesce(_optionalChain([item, 'optionalAccess', _451 => _451.description]), () => ( void 0)),
|
|
15784
15850
|
fallbackIcon: icon,
|
|
15785
|
-
status: statusPill(_optionalChain([item, 'optionalAccess',
|
|
15851
|
+
status: statusPill(_optionalChain([item, 'optionalAccess', _452 => _452.status])),
|
|
15786
15852
|
chatRef,
|
|
15787
15853
|
isNewTab,
|
|
15788
15854
|
discuss,
|
|
@@ -15798,7 +15864,7 @@ function refHydratedEntry(docType, label, renderRef) {
|
|
|
15798
15864
|
bareInline: true,
|
|
15799
15865
|
contentRefType: docType,
|
|
15800
15866
|
noComposedHref: true,
|
|
15801
|
-
fallbackHref: (item) => _nullishCoalesce(_optionalChain([item, 'optionalAccess',
|
|
15867
|
+
fallbackHref: (item) => _nullishCoalesce(_optionalChain([item, 'optionalAccess', _453 => _453.url]), () => ( null)),
|
|
15802
15868
|
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MingoInfoCardSkeleton, {}),
|
|
15803
15869
|
render: (item, chatRef, opts) => renderRef(fetchedItemDisplayRef(item, chatRef), opts)
|
|
15804
15870
|
};
|
|
@@ -15830,7 +15896,7 @@ function financialRegistryEntries() {
|
|
|
15830
15896
|
);
|
|
15831
15897
|
}
|
|
15832
15898
|
function refText(ref, key) {
|
|
15833
|
-
const value = _optionalChain([ref, 'optionalAccess',
|
|
15899
|
+
const value = _optionalChain([ref, 'optionalAccess', _454 => _454[key]]);
|
|
15834
15900
|
return typeof value === "string" && value.length > 0 ? value : null;
|
|
15835
15901
|
}
|
|
15836
15902
|
function VendorGlyph({ title, logoUrl }) {
|
|
@@ -15876,7 +15942,7 @@ var REF_GLYPH_CARD_CONFIGS = {
|
|
|
15876
15942
|
// rate. A glyph card; it opens the pricing page.
|
|
15877
15943
|
openframe_price: { label: "OpenFrame price" },
|
|
15878
15944
|
// A vendor (product) of the OpenMSP directory. A glyph card; it opens the vendor's page there.
|
|
15879
|
-
vendor: { label: "Vendor", icon: (ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, VendorGlyph, { title: _nullishCoalesce(_optionalChain([ref, 'optionalAccess',
|
|
15945
|
+
vendor: { label: "Vendor", icon: (ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, VendorGlyph, { title: _nullishCoalesce(_optionalChain([ref, 'optionalAccess', _455 => _455.title]), () => ( "")), logoUrl: refText(ref, "logo_url") }) }
|
|
15880
15946
|
};
|
|
15881
15947
|
function sourceGlyph(docType) {
|
|
15882
15948
|
const { Icon } = resolveSourceIcon({ sourceRepo: defaultTableIdForDocumentType(docType), documentType: docType });
|
|
@@ -15895,8 +15961,8 @@ function refGlyphRegistryEntries() {
|
|
|
15895
15961
|
title: displayRef.title,
|
|
15896
15962
|
description: _nullishCoalesce(displayRef.preview, () => ( void 0)),
|
|
15897
15963
|
cover: entityCover(
|
|
15898
|
-
_optionalChain([displayRef, 'access',
|
|
15899
|
-
_nullishCoalesce(_optionalChain([opts, 'access',
|
|
15964
|
+
_optionalChain([displayRef, 'access', _456 => _456.metadata, 'optionalAccess', _457 => _457.videoPoster]),
|
|
15965
|
+
_nullishCoalesce(_optionalChain([opts, 'access', _458 => _458.extras, 'optionalAccess', _459 => _459.buildOgPlaceholderUrl, 'optionalCall', _460 => _460(_nullishCoalesce(displayRef.title, () => ( "")))]), () => ( null))
|
|
15900
15966
|
),
|
|
15901
15967
|
fallbackIcon: glyph(displayRef),
|
|
15902
15968
|
status: { label: cfg.label, variant: "grey" },
|
|
@@ -15911,9 +15977,9 @@ function refGlyphRegistryEntries() {
|
|
|
15911
15977
|
}
|
|
15912
15978
|
function fetchedEmployeeEntryDisplayRef(item, chatRef) {
|
|
15913
15979
|
const it = item;
|
|
15914
|
-
const title = typeof _optionalChain([it, 'optionalAccess',
|
|
15915
|
-
const author = typeof _optionalChain([it, 'optionalAccess',
|
|
15916
|
-
const summary = typeof _optionalChain([it, 'optionalAccess',
|
|
15980
|
+
const title = typeof _optionalChain([it, 'optionalAccess', _461 => _461.title]) === "string" && it.title.trim().length > 0 ? it.title.trim() : chatRef.title;
|
|
15981
|
+
const author = typeof _optionalChain([it, 'optionalAccess', _462 => _462.author, 'optionalAccess', _463 => _463.full_name]) === "string" ? it.author.full_name.trim() : "";
|
|
15982
|
+
const summary = typeof _optionalChain([it, 'optionalAccess', _464 => _464.summary]) === "string" ? it.summary.trim() : "";
|
|
15917
15983
|
const preview = [author, summary].filter((x) => x.length > 0).join(" \xB7 ");
|
|
15918
15984
|
return { ...chatRef, title, preview: preview.length > 0 ? preview : chatRef.preview };
|
|
15919
15985
|
}
|
|
@@ -15965,7 +16031,7 @@ function programRegistryEntries() {
|
|
|
15965
16031
|
discuss: opts.discuss,
|
|
15966
16032
|
configKey: cfg.configKey,
|
|
15967
16033
|
label: cfg.configKey.charAt(0).toUpperCase() + cfg.configKey.slice(1),
|
|
15968
|
-
ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess',
|
|
16034
|
+
ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _465 => _465.extras, 'optionalAccess', _466 => _466.buildOgPlaceholderUrl, 'optionalCall', _467 => _467(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _468 => _468.title]), () => ( "")))]), () => ( null))
|
|
15969
16035
|
}
|
|
15970
16036
|
)
|
|
15971
16037
|
}));
|
|
@@ -15986,7 +16052,7 @@ var ROADMAP_CARD_CONFIGS = {
|
|
|
15986
16052
|
// The card's destination IS the ClickUp deep link, derived from the
|
|
15987
16053
|
// task id post-fetch (the refs frame used to carry it).
|
|
15988
16054
|
noComposedHref: true,
|
|
15989
|
-
fallbackHref: (item) => _optionalChain([item, 'optionalAccess',
|
|
16055
|
+
fallbackHref: (item) => _optionalChain([item, 'optionalAccess', _469 => _469.id]) != null ? clickupTaskUrl(String(item.id)) : null
|
|
15990
16056
|
}
|
|
15991
16057
|
};
|
|
15992
16058
|
function roadmapRegistryEntries() {
|
|
@@ -16028,8 +16094,8 @@ var CHAT_CARD_REGISTRY = {
|
|
|
16028
16094
|
DeletedDataCard,
|
|
16029
16095
|
{
|
|
16030
16096
|
title: chatRef.title && chatRef.title !== chatRef.id ? chatRef.title : null,
|
|
16031
|
-
entityLabel: _nullishCoalesce(_optionalChain([chatRef, 'access',
|
|
16032
|
-
recoveryNote: _nullishCoalesce(_optionalChain([chatRef, 'access',
|
|
16097
|
+
entityLabel: _nullishCoalesce(_optionalChain([chatRef, 'access', _470 => _470.metadata, 'optionalAccess', _471 => _471.entity_label]), () => ( null)),
|
|
16098
|
+
recoveryNote: _nullishCoalesce(_optionalChain([chatRef, 'access', _472 => _472.metadata, 'optionalAccess', _473 => _473.recovery_note]), () => ( null))
|
|
16033
16099
|
}
|
|
16034
16100
|
)
|
|
16035
16101
|
},
|
|
@@ -16046,7 +16112,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
16046
16112
|
bareInline: true,
|
|
16047
16113
|
contentRefType: "faq",
|
|
16048
16114
|
noComposedHref: true,
|
|
16049
|
-
fallbackHref: (item) => _optionalChain([item, 'optionalAccess',
|
|
16115
|
+
fallbackHref: (item) => _optionalChain([item, 'optionalAccess', _474 => _474.id]) != null ? `/faqs#${faqItemAnchor(item.id)}` : null,
|
|
16050
16116
|
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MingoInfoCardSkeleton, {}),
|
|
16051
16117
|
render: (item, chatRef, opts) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, FaqChatCard, { chatRef: fetchedFaqDisplayRef(item, chatRef), isNewTab: opts.isNewTab, discuss: opts.discuss })
|
|
16052
16118
|
},
|
|
@@ -16093,8 +16159,8 @@ var CHAT_CARD_REGISTRY = {
|
|
|
16093
16159
|
chatRef,
|
|
16094
16160
|
isNewTab: opts.isNewTab,
|
|
16095
16161
|
discuss: opts.discuss,
|
|
16096
|
-
ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess',
|
|
16097
|
-
hasEmbeddedVideo: _optionalChain([chatRef, 'access',
|
|
16162
|
+
ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _475 => _475.extras, 'optionalAccess', _476 => _476.buildOgPlaceholderUrl, 'optionalCall', _477 => _477(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _478 => _478.title]), () => ( "")))]), () => ( null)),
|
|
16163
|
+
hasEmbeddedVideo: _optionalChain([chatRef, 'access', _479 => _479.metadata, 'optionalAccess', _480 => _480.hasEmbeddedVideo]) === true
|
|
16098
16164
|
}
|
|
16099
16165
|
)
|
|
16100
16166
|
},
|
|
@@ -16110,7 +16176,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
16110
16176
|
chatRef,
|
|
16111
16177
|
isNewTab: opts.isNewTab,
|
|
16112
16178
|
discuss: opts.discuss,
|
|
16113
|
-
ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess',
|
|
16179
|
+
ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _481 => _481.extras, 'optionalAccess', _482 => _482.buildOgPlaceholderUrl, 'optionalCall', _483 => _483(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _484 => _484.title]), () => ( "")))]), () => ( null))
|
|
16114
16180
|
}
|
|
16115
16181
|
)
|
|
16116
16182
|
},
|
|
@@ -16119,7 +16185,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
16119
16185
|
contentRefType: "design_doc",
|
|
16120
16186
|
bareInline: true,
|
|
16121
16187
|
noComposedHref: true,
|
|
16122
|
-
fallbackHref: (item) => _nullishCoalesce(_optionalChain([item, 'optionalAccess',
|
|
16188
|
+
fallbackHref: (item) => _nullishCoalesce(_optionalChain([item, 'optionalAccess', _485 => _485.url]), () => ( null)),
|
|
16123
16189
|
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, MingoInfoCardSkeleton, {}),
|
|
16124
16190
|
render: (item, chatRef, opts) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, DesignDocChatCard, { item, chatRef, isNewTab: opts.isNewTab, discuss: opts.discuss })
|
|
16125
16191
|
},
|
|
@@ -16135,7 +16201,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
16135
16201
|
chatRef,
|
|
16136
16202
|
isNewTab: opts.isNewTab,
|
|
16137
16203
|
discuss: opts.discuss,
|
|
16138
|
-
ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess',
|
|
16204
|
+
ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _486 => _486.extras, 'optionalAccess', _487 => _487.buildOgPlaceholderUrl, 'optionalCall', _488 => _488(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _489 => _489.title]), () => ( "")))]), () => ( null))
|
|
16139
16205
|
}
|
|
16140
16206
|
)
|
|
16141
16207
|
},
|
|
@@ -16145,7 +16211,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
16145
16211
|
bareInline: true,
|
|
16146
16212
|
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHEQ4GPYEcjs.ProductReleaseCardSkeleton, { size: "sm" }),
|
|
16147
16213
|
render: (item, chatRef, opts) => {
|
|
16148
|
-
const builder = _nullishCoalesce(_optionalChain([opts, 'optionalAccess',
|
|
16214
|
+
const builder = _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _490 => _490.extras, 'optionalAccess', _491 => _491.buildProductReleaseCardProps]), () => ( _chunkHEQ4GPYEcjs.defaultBuildProductReleaseCardProps));
|
|
16149
16215
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16150
16216
|
ProductReleaseChatCard,
|
|
16151
16217
|
{
|
|
@@ -16171,7 +16237,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
16171
16237
|
chatRef,
|
|
16172
16238
|
isNewTab: opts.isNewTab,
|
|
16173
16239
|
discuss: opts.discuss,
|
|
16174
|
-
ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess',
|
|
16240
|
+
ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _492 => _492.extras, 'optionalAccess', _493 => _493.buildOgPlaceholderUrl, 'optionalCall', _494 => _494(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _495 => _495.title]), () => ( "")))]), () => ( null))
|
|
16175
16241
|
}
|
|
16176
16242
|
)
|
|
16177
16243
|
},
|
|
@@ -16189,7 +16255,7 @@ var CHAT_CARD_REGISTRY = {
|
|
|
16189
16255
|
chatRef,
|
|
16190
16256
|
isNewTab: opts.isNewTab,
|
|
16191
16257
|
discuss: opts.discuss,
|
|
16192
|
-
ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess',
|
|
16258
|
+
ogPlaceholder: _nullishCoalesce(_optionalChain([opts, 'optionalAccess', _496 => _496.extras, 'optionalAccess', _497 => _497.buildOgPlaceholderUrl, 'optionalCall', _498 => _498(_nullishCoalesce(_optionalChain([item, 'optionalAccess', _499 => _499.title]), () => ( "")))]), () => ( null))
|
|
16193
16259
|
}
|
|
16194
16260
|
)
|
|
16195
16261
|
},
|
|
@@ -16200,13 +16266,13 @@ var CHAT_CARD_REGISTRY = {
|
|
|
16200
16266
|
skeleton: () => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CampaignCardAdminSkeleton, {}),
|
|
16201
16267
|
// No public viewer — synthesize the hub-internal admin URL post-fetch
|
|
16202
16268
|
// so the wrapper + isNewTab computation see the actual destination.
|
|
16203
|
-
fallbackHref: (item) => _optionalChain([item, 'optionalAccess',
|
|
16269
|
+
fallbackHref: (item) => _optionalChain([item, 'optionalAccess', _500 => _500.id]) ? `/admin/campaigns/${encodeURIComponent(String(item.id))}` : null,
|
|
16204
16270
|
render: (item, chatRef, opts) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CampaignChatCard, { item, chatRef, isNewTab: opts.isNewTab, discuss: opts.discuss })
|
|
16205
16271
|
},
|
|
16206
16272
|
...roadmapRegistryEntries()
|
|
16207
16273
|
};
|
|
16208
16274
|
function chatCardLabel(docType) {
|
|
16209
|
-
return _optionalChain([CHAT_CARD_REGISTRY, 'access',
|
|
16275
|
+
return _optionalChain([CHAT_CARD_REGISTRY, 'access', _501 => _501[docType], 'optionalAccess', _502 => _502.label]);
|
|
16210
16276
|
}
|
|
16211
16277
|
function ChatCardNavWrap({
|
|
16212
16278
|
href,
|
|
@@ -16222,13 +16288,13 @@ function ChatCardNavWrap({
|
|
|
16222
16288
|
if (!href) return;
|
|
16223
16289
|
const targetEl = e.target;
|
|
16224
16290
|
const host = e.currentTarget;
|
|
16225
|
-
if (!_optionalChain([host, 'optionalAccess',
|
|
16226
|
-
if (_optionalChain([targetEl, 'optionalAccess',
|
|
16227
|
-
if (!_optionalChain([targetEl, 'optionalAccess',
|
|
16291
|
+
if (!_optionalChain([host, 'optionalAccess', _503 => _503.contains, 'call', _504 => _504(targetEl)])) return;
|
|
16292
|
+
if (_optionalChain([targetEl, 'optionalAccess', _505 => _505.closest, 'optionalCall', _506 => _506("button")])) return;
|
|
16293
|
+
if (!_optionalChain([targetEl, 'optionalAccess', _507 => _507.closest, 'optionalCall', _508 => _508("a")])) return;
|
|
16228
16294
|
const handled = executeNavigation({ event: e, runtime, href, path, targetPlatform, fallbackNavigate: router.push });
|
|
16229
16295
|
if (!handled) return;
|
|
16230
16296
|
e.stopPropagation();
|
|
16231
|
-
if (!isNewTab && _optionalChain([panel, 'optionalAccess',
|
|
16297
|
+
if (!isNewTab && _optionalChain([panel, 'optionalAccess', _509 => _509.closeChat])) panel.closeChat();
|
|
16232
16298
|
};
|
|
16233
16299
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "contents", onClickCapture, children });
|
|
16234
16300
|
}
|
|
@@ -16244,7 +16310,7 @@ function ChatCardLoader({
|
|
|
16244
16310
|
const entry = CHAT_CARD_REGISTRY[chatRef.type];
|
|
16245
16311
|
const fetchEntry = entry && entry.contentRefType ? entry : null;
|
|
16246
16312
|
const { item, isLoading, isError, isFetched } = useChatCardItem(
|
|
16247
|
-
_nullishCoalesce(_optionalChain([fetchEntry, 'optionalAccess',
|
|
16313
|
+
_nullishCoalesce(_optionalChain([fetchEntry, 'optionalAccess', _510 => _510.contentRefType]), () => ( "")),
|
|
16248
16314
|
fetchEntry ? chatRef.id : ""
|
|
16249
16315
|
);
|
|
16250
16316
|
if (!entry) return null;
|
|
@@ -16288,7 +16354,7 @@ function ChatCardLoader({
|
|
|
16288
16354
|
isNewTab,
|
|
16289
16355
|
discuss
|
|
16290
16356
|
};
|
|
16291
|
-
const path = typeof _optionalChain([finalChatRef, 'access',
|
|
16357
|
+
const path = typeof _optionalChain([finalChatRef, 'access', _511 => _511.metadata, 'optionalAccess', _512 => _512.path]) === "string" ? finalChatRef.metadata.path : null;
|
|
16292
16358
|
const navWrap = (children) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
|
|
16293
16359
|
ChatCardNavWrap,
|
|
16294
16360
|
{
|
|
@@ -16312,7 +16378,7 @@ function ChatCardLoader({
|
|
|
16312
16378
|
if (!fetchEntry) {
|
|
16313
16379
|
return finish(entry.render(void 0, finalChatRef, renderOpts));
|
|
16314
16380
|
}
|
|
16315
|
-
if (isLoading) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: _nullishCoalesce(_optionalChain([fetchEntry, 'access',
|
|
16381
|
+
if (isLoading) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _jsxruntime.Fragment, { children: _nullishCoalesce(_optionalChain([fetchEntry, 'access', _513 => _513.skeleton, 'optionalCall', _514 => _514()]), () => ( null)) });
|
|
16316
16382
|
if (!item) {
|
|
16317
16383
|
if (isError) {
|
|
16318
16384
|
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, CardLoadFailure, { label: entry.label, id: finalChatRef.id, detail: "Failed to load" });
|
|
@@ -16620,7 +16686,7 @@ function useChunkCatchup({
|
|
|
16620
16686
|
if (catchupRun.current === run) {
|
|
16621
16687
|
if (currentDialogId !== dialogIdRef.current) {
|
|
16622
16688
|
catchupRun.current = null;
|
|
16623
|
-
if (_optionalChain([pendingCatchupRef, 'access',
|
|
16689
|
+
if (_optionalChain([pendingCatchupRef, 'access', _515 => _515.current, 'optionalAccess', _516 => _516.dialogId]) === currentDialogId) {
|
|
16624
16690
|
pendingCatchupRef.current = null;
|
|
16625
16691
|
}
|
|
16626
16692
|
} else {
|
|
@@ -16631,7 +16697,7 @@ function useChunkCatchup({
|
|
|
16631
16697
|
if (pending.dialogId === currentDialogId) {
|
|
16632
16698
|
rearmForQueuedCatchup();
|
|
16633
16699
|
try {
|
|
16634
|
-
await _optionalChain([catchUpChunksRef, 'access',
|
|
16700
|
+
await _optionalChain([catchUpChunksRef, 'access', _517 => _517.current, 'optionalCall', _518 => _518(pending.fromSequenceId)]);
|
|
16635
16701
|
} catch (rerunError) {
|
|
16636
16702
|
console.error("Queued catch-up re-run failed:", rerunError);
|
|
16637
16703
|
}
|
|
@@ -16698,7 +16764,7 @@ function useChunkCatchup({
|
|
|
16698
16764
|
|
|
16699
16765
|
var EMPTY_FRAME = { messages: [], phase: "idle", typing: false, delayMs: 0 };
|
|
16700
16766
|
function prefersReducedMotion() {
|
|
16701
|
-
return typeof window !== "undefined" && _optionalChain([window, 'access',
|
|
16767
|
+
return typeof window !== "undefined" && _optionalChain([window, 'access', _519 => _519.matchMedia, 'optionalCall', _520 => _520("(prefers-reduced-motion: reduce)"), 'access', _521 => _521.matches]) === true;
|
|
16702
16768
|
}
|
|
16703
16769
|
function useScriptedStream(frames, resetKey, enabled = true) {
|
|
16704
16770
|
const [index, setIndex] = _react.useState.call(void 0, 0);
|
|
@@ -16709,7 +16775,7 @@ function useScriptedStream(frames, resetKey, enabled = true) {
|
|
|
16709
16775
|
setIndex(0);
|
|
16710
16776
|
}
|
|
16711
16777
|
_react.useEffect.call(void 0, () => {
|
|
16712
|
-
const mq = _optionalChain([window, 'access',
|
|
16778
|
+
const mq = _optionalChain([window, 'access', _522 => _522.matchMedia, 'optionalCall', _523 => _523("(prefers-reduced-motion: reduce)")]);
|
|
16713
16779
|
const sync = () => setReducedMotion(mq ? mq.matches : prefersReducedMotion());
|
|
16714
16780
|
sync();
|
|
16715
16781
|
if (!mq) return void 0;
|
|
@@ -16852,7 +16918,7 @@ function useJetStreamDialogSubscription({
|
|
|
16852
16918
|
const lifecycle = _chunkG7SBHMRRcjs.startConnectionLifecycle.call(void 0, {
|
|
16853
16919
|
conn: sharedConn,
|
|
16854
16920
|
wsUrl,
|
|
16855
|
-
onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access',
|
|
16921
|
+
onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _524 => _524.current, 'optionalCall', _525 => _525()]),
|
|
16856
16922
|
backoff: reconnectionBackoffRef.current,
|
|
16857
16923
|
getFreshUrl: () => getNatsWsUrlRef.current(),
|
|
16858
16924
|
// JetStream emits 'error' for protocol-level failures (e.g. -ERR Permissions
|
|
@@ -16867,7 +16933,7 @@ function useJetStreamDialogSubscription({
|
|
|
16867
16933
|
setReconnectionCount((c) => c + 1);
|
|
16868
16934
|
}
|
|
16869
16935
|
hadConnectionBeforeRef.current = true;
|
|
16870
|
-
_optionalChain([onConnectRef, 'access',
|
|
16936
|
+
_optionalChain([onConnectRef, 'access', _526 => _526.current, 'optionalCall', _527 => _527()]);
|
|
16871
16937
|
}
|
|
16872
16938
|
if (status === "error") {
|
|
16873
16939
|
console.warn("[JetStream] NATS protocol error:", evt.data);
|
|
@@ -16877,7 +16943,7 @@ function useJetStreamDialogSubscription({
|
|
|
16877
16943
|
setIsConnected(false);
|
|
16878
16944
|
setIsSubscribed(false);
|
|
16879
16945
|
tearDownSubscription();
|
|
16880
|
-
_optionalChain([onDisconnectRef, 'access',
|
|
16946
|
+
_optionalChain([onDisconnectRef, 'access', _528 => _528.current, 'optionalCall', _529 => _529()]);
|
|
16881
16947
|
}
|
|
16882
16948
|
}
|
|
16883
16949
|
});
|
|
@@ -17003,7 +17069,7 @@ function useJetStreamDialogSubscription({
|
|
|
17003
17069
|
}
|
|
17004
17070
|
subscriptionRef.current = handle;
|
|
17005
17071
|
setIsSubscribed(true);
|
|
17006
|
-
_optionalChain([onSubscribedRef, 'access',
|
|
17072
|
+
_optionalChain([onSubscribedRef, 'access', _530 => _530.current, 'optionalCall', _531 => _531()]);
|
|
17007
17073
|
} catch (e31) {
|
|
17008
17074
|
if (!cancelled) {
|
|
17009
17075
|
setIsSubscribed(false);
|
|
@@ -17119,20 +17185,20 @@ function useNatsDialogSubscription({
|
|
|
17119
17185
|
const tearDownSubscriptions = () => {
|
|
17120
17186
|
subscriptionRefs.current.forEach((sub) => {
|
|
17121
17187
|
try {
|
|
17122
|
-
_optionalChain([sub, 'optionalAccess',
|
|
17188
|
+
_optionalChain([sub, 'optionalAccess', _532 => _532.unsubscribe, 'call', _533 => _533()]);
|
|
17123
17189
|
} catch (e33) {
|
|
17124
17190
|
}
|
|
17125
17191
|
});
|
|
17126
17192
|
subscriptionRefs.current.clear();
|
|
17127
17193
|
lastSubscribedDialogIdRef.current = null;
|
|
17128
|
-
_optionalChain([abortControllerRef, 'access',
|
|
17194
|
+
_optionalChain([abortControllerRef, 'access', _534 => _534.current, 'optionalAccess', _535 => _535.abort, 'call', _536 => _536()]);
|
|
17129
17195
|
abortControllerRef.current = null;
|
|
17130
17196
|
};
|
|
17131
17197
|
const isDisconnectStatus = (status) => status === "closed" || status === "disconnected";
|
|
17132
17198
|
const lifecycle = _chunkG7SBHMRRcjs.startConnectionLifecycle.call(void 0, {
|
|
17133
17199
|
conn: sharedConn,
|
|
17134
17200
|
wsUrl,
|
|
17135
|
-
onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access',
|
|
17201
|
+
onBeforeReconnect: () => _optionalChain([onBeforeReconnectRef, 'access', _537 => _537.current, 'optionalCall', _538 => _538()]),
|
|
17136
17202
|
backoff: reconnectionBackoffRef.current,
|
|
17137
17203
|
getFreshUrl: () => getNatsWsUrlRef.current(),
|
|
17138
17204
|
shouldRetryOn: isDisconnectStatus,
|
|
@@ -17143,7 +17209,7 @@ function useNatsDialogSubscription({
|
|
|
17143
17209
|
setReconnectionCount((c) => c + 1);
|
|
17144
17210
|
}
|
|
17145
17211
|
hadConnectionBeforeRef.current = true;
|
|
17146
|
-
_optionalChain([onConnectRef, 'access',
|
|
17212
|
+
_optionalChain([onConnectRef, 'access', _539 => _539.current, 'optionalCall', _540 => _540()]);
|
|
17147
17213
|
}
|
|
17148
17214
|
if (status === "error") {
|
|
17149
17215
|
console.warn("[NATS] protocol error:", evt.data);
|
|
@@ -17153,7 +17219,7 @@ function useNatsDialogSubscription({
|
|
|
17153
17219
|
setIsConnected(false);
|
|
17154
17220
|
setIsSubscribed(false);
|
|
17155
17221
|
tearDownSubscriptions();
|
|
17156
|
-
_optionalChain([onDisconnectRef, 'access',
|
|
17222
|
+
_optionalChain([onDisconnectRef, 'access', _541 => _541.current, 'optionalCall', _542 => _542()]);
|
|
17157
17223
|
}
|
|
17158
17224
|
}
|
|
17159
17225
|
});
|
|
@@ -17184,13 +17250,13 @@ function useNatsDialogSubscription({
|
|
|
17184
17250
|
setIsSubscribed(false);
|
|
17185
17251
|
subscriptionRefs.current.forEach((sub) => {
|
|
17186
17252
|
try {
|
|
17187
|
-
_optionalChain([sub, 'optionalAccess',
|
|
17253
|
+
_optionalChain([sub, 'optionalAccess', _543 => _543.unsubscribe, 'call', _544 => _544()]);
|
|
17188
17254
|
} catch (e34) {
|
|
17189
17255
|
}
|
|
17190
17256
|
});
|
|
17191
17257
|
subscriptionRefs.current.clear();
|
|
17192
17258
|
lastSubscribedDialogIdRef.current = null;
|
|
17193
|
-
_optionalChain([abortControllerRef, 'access',
|
|
17259
|
+
_optionalChain([abortControllerRef, 'access', _545 => _545.current, 'optionalAccess', _546 => _546.abort, 'call', _547 => _547()]);
|
|
17194
17260
|
abortControllerRef.current = null;
|
|
17195
17261
|
}
|
|
17196
17262
|
return void 0;
|
|
@@ -17202,12 +17268,12 @@ function useNatsDialogSubscription({
|
|
|
17202
17268
|
if (subscriptionRefs.current.size > 0) {
|
|
17203
17269
|
subscriptionRefs.current.forEach((sub) => {
|
|
17204
17270
|
try {
|
|
17205
|
-
_optionalChain([sub, 'optionalAccess',
|
|
17271
|
+
_optionalChain([sub, 'optionalAccess', _548 => _548.unsubscribe, 'call', _549 => _549()]);
|
|
17206
17272
|
} catch (e35) {
|
|
17207
17273
|
}
|
|
17208
17274
|
});
|
|
17209
17275
|
subscriptionRefs.current.clear();
|
|
17210
|
-
_optionalChain([abortControllerRef, 'access',
|
|
17276
|
+
_optionalChain([abortControllerRef, 'access', _550 => _550.current, 'optionalAccess', _551 => _551.abort, 'call', _552 => _552()]);
|
|
17211
17277
|
}
|
|
17212
17278
|
abortControllerRef.current = new AbortController();
|
|
17213
17279
|
const abort = abortControllerRef.current;
|
|
@@ -17237,7 +17303,7 @@ function useNatsDialogSubscription({
|
|
|
17237
17303
|
});
|
|
17238
17304
|
lastSubscribedDialogIdRef.current = dialogId;
|
|
17239
17305
|
setIsSubscribed(true);
|
|
17240
|
-
_optionalChain([onSubscribedRef, 'access',
|
|
17306
|
+
_optionalChain([onSubscribedRef, 'access', _553 => _553.current, 'optionalCall', _554 => _554()]);
|
|
17241
17307
|
};
|
|
17242
17308
|
if (isConnectedRef.current) {
|
|
17243
17309
|
createSubscriptions();
|
|
@@ -17248,7 +17314,7 @@ function useNatsDialogSubscription({
|
|
|
17248
17314
|
abort.abort();
|
|
17249
17315
|
subscriptions.forEach((sub) => {
|
|
17250
17316
|
try {
|
|
17251
|
-
_optionalChain([sub, 'optionalAccess',
|
|
17317
|
+
_optionalChain([sub, 'optionalAccess', _555 => _555.unsubscribe, 'call', _556 => _556()]);
|
|
17252
17318
|
} catch (e37) {
|
|
17253
17319
|
}
|
|
17254
17320
|
});
|
|
@@ -17287,7 +17353,7 @@ function useNatsDialogSubscription({
|
|
|
17287
17353
|
});
|
|
17288
17354
|
lastSubscribedDialogIdRef.current = currentDialogId;
|
|
17289
17355
|
setIsSubscribed(true);
|
|
17290
|
-
_optionalChain([onSubscribedRef, 'access',
|
|
17356
|
+
_optionalChain([onSubscribedRef, 'access', _557 => _557.current, 'optionalCall', _558 => _558()]);
|
|
17291
17357
|
} else if (subscriptionRefs.current.size > 0) {
|
|
17292
17358
|
setIsSubscribed(true);
|
|
17293
17359
|
}
|
|
@@ -17295,10 +17361,10 @@ function useNatsDialogSubscription({
|
|
|
17295
17361
|
return { isConnected, isSubscribed, reconnectionCount };
|
|
17296
17362
|
}
|
|
17297
17363
|
function buildNatsWsUrl(apiBaseUrl, options) {
|
|
17298
|
-
const path = _optionalChain([options, 'optionalAccess',
|
|
17364
|
+
const path = _optionalChain([options, 'optionalAccess', _559 => _559.source]) === "dashboard" ? "/ws/nats-api" : "/ws/nats";
|
|
17299
17365
|
const u = new URL(path, apiBaseUrl);
|
|
17300
17366
|
u.protocol = u.protocol === "https:" ? "wss:" : "ws:";
|
|
17301
|
-
if (_optionalChain([options, 'optionalAccess',
|
|
17367
|
+
if (_optionalChain([options, 'optionalAccess', _560 => _560.includeAuthParam]) && _optionalChain([options, 'optionalAccess', _561 => _561.token])) {
|
|
17302
17368
|
u.searchParams.set("authorization", options.token);
|
|
17303
17369
|
}
|
|
17304
17370
|
return u.toString();
|
|
@@ -17316,7 +17382,7 @@ async function fetchSlashCommands(prefix, signal, commandsUrl) {
|
|
|
17316
17382
|
const data = await res.json();
|
|
17317
17383
|
return _nullishCoalesce(data.commands, () => ( []));
|
|
17318
17384
|
} catch (err) {
|
|
17319
|
-
if (_optionalChain([err, 'optionalAccess',
|
|
17385
|
+
if (_optionalChain([err, 'optionalAccess', _562 => _562.name]) === "AbortError") throw err;
|
|
17320
17386
|
console.warn("[chat] slash-commands fetch failed, showing none:", err);
|
|
17321
17387
|
return [];
|
|
17322
17388
|
}
|
|
@@ -17324,8 +17390,8 @@ async function fetchSlashCommands(prefix, signal, commandsUrl) {
|
|
|
17324
17390
|
var NO_COMMANDS = [];
|
|
17325
17391
|
function useSlashCommands(prefix, commandsUrl) {
|
|
17326
17392
|
const [answered, setAnswered] = _react.useState.call(void 0, null);
|
|
17327
|
-
const commands = prefix != null && _optionalChain([answered, 'optionalAccess',
|
|
17328
|
-
const loading = prefix != null && _optionalChain([answered, 'optionalAccess',
|
|
17393
|
+
const commands = prefix != null && _optionalChain([answered, 'optionalAccess', _563 => _563.prefix]) === prefix ? answered.commands : NO_COMMANDS;
|
|
17394
|
+
const loading = prefix != null && _optionalChain([answered, 'optionalAccess', _564 => _564.prefix]) !== prefix;
|
|
17329
17395
|
_react.useEffect.call(void 0, () => {
|
|
17330
17396
|
if (prefix == null) return void 0;
|
|
17331
17397
|
let cancelled = false;
|
|
@@ -17335,7 +17401,7 @@ function useSlashCommands(prefix, commandsUrl) {
|
|
|
17335
17401
|
const next = await fetchSlashCommands(prefix, ctrl.signal, commandsUrl);
|
|
17336
17402
|
if (!cancelled) setAnswered({ prefix, commands: next });
|
|
17337
17403
|
} catch (err) {
|
|
17338
|
-
if (!cancelled && _optionalChain([err, 'optionalAccess',
|
|
17404
|
+
if (!cancelled && _optionalChain([err, 'optionalAccess', _565 => _565.name]) !== "AbortError") {
|
|
17339
17405
|
console.warn("[use-slash-commands] fetch failed:", err);
|
|
17340
17406
|
setAnswered({ prefix, commands: NO_COMMANDS });
|
|
17341
17407
|
}
|
|
@@ -17358,7 +17424,7 @@ function useSlashCommandRegistry(commandsUrl, options) {
|
|
|
17358
17424
|
const query = _reactquery.useQuery.call(void 0, {
|
|
17359
17425
|
queryKey: ["chat-slash-commands", commandsUrl],
|
|
17360
17426
|
queryFn: ({ signal }) => fetchSlashCommands("", signal, commandsUrl),
|
|
17361
|
-
enabled: _nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
17427
|
+
enabled: _nullishCoalesce(_optionalChain([options, 'optionalAccess', _566 => _566.enabled]), () => ( true)),
|
|
17362
17428
|
staleTime: Infinity,
|
|
17363
17429
|
gcTime: Infinity,
|
|
17364
17430
|
// The commands registry is non-critical chrome — a failure degrades to an
|
|
@@ -17397,21 +17463,21 @@ async function fetchEmptyStateConfig(signal, emptyStateUrl) {
|
|
|
17397
17463
|
}
|
|
17398
17464
|
const data = await res.json();
|
|
17399
17465
|
return {
|
|
17400
|
-
name: _nullishCoalesce(_optionalChain([data, 'optionalAccess',
|
|
17401
|
-
icon: _nullishCoalesce(_optionalChain([data, 'optionalAccess',
|
|
17402
|
-
greeting: _nullishCoalesce(_optionalChain([data, 'optionalAccess',
|
|
17403
|
-
enabledRagTableIds: _nullishCoalesce(_optionalChain([data, 'optionalAccess',
|
|
17404
|
-
quickActions: _nullishCoalesce(_optionalChain([data, 'optionalAccess',
|
|
17405
|
-
suggestedQueries: _nullishCoalesce(_optionalChain([data, 'optionalAccess',
|
|
17466
|
+
name: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _567 => _567.name]), () => ( null)),
|
|
17467
|
+
icon: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _568 => _568.icon]), () => ( null)),
|
|
17468
|
+
greeting: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _569 => _569.greeting]), () => ( null)),
|
|
17469
|
+
enabledRagTableIds: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _570 => _570.enabledRagTableIds]), () => ( [])),
|
|
17470
|
+
quickActions: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _571 => _571.quickActions]), () => ( [])),
|
|
17471
|
+
suggestedQueries: _nullishCoalesce(_optionalChain([data, 'optionalAccess', _572 => _572.suggestedQueries]), () => ( []))
|
|
17406
17472
|
};
|
|
17407
17473
|
} catch (err) {
|
|
17408
|
-
if (_optionalChain([err, 'optionalAccess',
|
|
17474
|
+
if (_optionalChain([err, 'optionalAccess', _573 => _573.name]) === "AbortError") throw err;
|
|
17409
17475
|
console.warn("[chat] empty-state config fetch failed, using neutral defaults:", err);
|
|
17410
17476
|
return EMPTY_STATE_FALLBACK;
|
|
17411
17477
|
}
|
|
17412
17478
|
}
|
|
17413
17479
|
function useEmptyStateConfig(emptyStateUrl, options) {
|
|
17414
|
-
const enabled = (_nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
17480
|
+
const enabled = (_nullishCoalesce(_optionalChain([options, 'optionalAccess', _574 => _574.enabled]), () => ( true))) && !!emptyStateUrl;
|
|
17415
17481
|
const query = _reactquery.useQuery.call(void 0, {
|
|
17416
17482
|
queryKey: ["chat-empty-state", emptyStateUrl],
|
|
17417
17483
|
queryFn: ({ signal }) => fetchEmptyStateConfig(signal, emptyStateUrl),
|
|
@@ -17440,7 +17506,7 @@ var CHAT_ATTACHMENT_MAX_SIZE_BYTES = 25 * 1024 * 1024;
|
|
|
17440
17506
|
var STORAGE_CACHE_CONTROL_IMMUTABLE = "public, max-age=31536000, immutable";
|
|
17441
17507
|
function uploadWithProgress(url, file, token, onProgress, signal) {
|
|
17442
17508
|
return new Promise((resolve, reject) => {
|
|
17443
|
-
if (_optionalChain([signal, 'optionalAccess',
|
|
17509
|
+
if (_optionalChain([signal, 'optionalAccess', _575 => _575.aborted])) {
|
|
17444
17510
|
reject(new Error("Upload cancelled"));
|
|
17445
17511
|
return;
|
|
17446
17512
|
}
|
|
@@ -17482,7 +17548,7 @@ function uploadWithProgress(url, file, token, onProgress, signal) {
|
|
|
17482
17548
|
const handleSignalAbort = () => {
|
|
17483
17549
|
xhr.abort();
|
|
17484
17550
|
};
|
|
17485
|
-
_optionalChain([signal, 'optionalAccess',
|
|
17551
|
+
_optionalChain([signal, 'optionalAccess', _576 => _576.addEventListener, 'call', _577 => _577("abort", handleSignalAbort, { once: true, signal: listeners.signal })]);
|
|
17486
17552
|
xhr.upload.addEventListener("progress", handleProgress, { signal: listeners.signal });
|
|
17487
17553
|
xhr.addEventListener("load", handleLoad, { signal: listeners.signal });
|
|
17488
17554
|
xhr.addEventListener("error", handleError, { signal: listeners.signal });
|
|
@@ -17526,10 +17592,10 @@ function useChatAttachments() {
|
|
|
17526
17592
|
try {
|
|
17527
17593
|
sniffed = await _filetype.fileTypeFromBlob.call(void 0, att.file);
|
|
17528
17594
|
} catch (err) {
|
|
17529
|
-
if (_optionalChain([ctrl, 'optionalAccess',
|
|
17595
|
+
if (_optionalChain([ctrl, 'optionalAccess', _578 => _578.signal, 'access', _579 => _579.aborted])) return;
|
|
17530
17596
|
throw new Error(`Could not read file content: ${err instanceof Error ? err.message : String(err)}`);
|
|
17531
17597
|
}
|
|
17532
|
-
if (_optionalChain([ctrl, 'optionalAccess',
|
|
17598
|
+
if (_optionalChain([ctrl, 'optionalAccess', _580 => _580.signal, 'access', _581 => _581.aborted])) return;
|
|
17533
17599
|
if (!sniffed) {
|
|
17534
17600
|
throw new Error("Unrecognized file format");
|
|
17535
17601
|
}
|
|
@@ -17543,7 +17609,7 @@ function useChatAttachments() {
|
|
|
17543
17609
|
const urlResp = await _chunkULWVKHSIcjs.embedAuthedFetch.call(void 0, uploadUrlEndpoint, {
|
|
17544
17610
|
method: "POST",
|
|
17545
17611
|
headers: { "Content-Type": "application/json" },
|
|
17546
|
-
signal: _optionalChain([ctrl, 'optionalAccess',
|
|
17612
|
+
signal: _optionalChain([ctrl, 'optionalAccess', _582 => _582.signal]),
|
|
17547
17613
|
body: JSON.stringify({
|
|
17548
17614
|
fileName: att.file.name,
|
|
17549
17615
|
// Pass the SNIFFED MIME (not `file.type`, which can be a
|
|
@@ -17572,9 +17638,9 @@ function useChatAttachments() {
|
|
|
17572
17638
|
(pct) => {
|
|
17573
17639
|
updateOne(att.id, { progress: pct });
|
|
17574
17640
|
},
|
|
17575
|
-
_optionalChain([ctrl, 'optionalAccess',
|
|
17641
|
+
_optionalChain([ctrl, 'optionalAccess', _583 => _583.signal])
|
|
17576
17642
|
);
|
|
17577
|
-
if (_optionalChain([ctrl, 'optionalAccess',
|
|
17643
|
+
if (_optionalChain([ctrl, 'optionalAccess', _584 => _584.signal, 'access', _585 => _585.aborted])) return;
|
|
17578
17644
|
updateOne(att.id, {
|
|
17579
17645
|
status: "ready",
|
|
17580
17646
|
progress: 100,
|
|
@@ -17582,7 +17648,7 @@ function useChatAttachments() {
|
|
|
17582
17648
|
viewToken: mintData.viewToken
|
|
17583
17649
|
});
|
|
17584
17650
|
} catch (err) {
|
|
17585
|
-
if (_optionalChain([ctrl, 'optionalAccess',
|
|
17651
|
+
if (_optionalChain([ctrl, 'optionalAccess', _586 => _586.signal, 'access', _587 => _587.aborted])) return;
|
|
17586
17652
|
const message = err instanceof Error ? err.message : String(err);
|
|
17587
17653
|
updateOne(att.id, { status: "error", progress: 0, errorMessage: message });
|
|
17588
17654
|
} finally {
|
|
@@ -17731,11 +17797,11 @@ var ANON_DEFAULTS = {
|
|
|
17731
17797
|
function useResolveChatIdentity(enabled) {
|
|
17732
17798
|
const runtime = _chunkUJ7AXHRZcjs.useRequiredChatRuntime.call(void 0, );
|
|
17733
17799
|
const url = runtime.endpoints.identityUrl;
|
|
17734
|
-
const proxyEmail = _nullishCoalesce(_optionalChain([_chunkULWVKHSIcjs.getEmbedProxyAuth.call(void 0, ), 'optionalAccess',
|
|
17800
|
+
const proxyEmail = _nullishCoalesce(_optionalChain([_chunkULWVKHSIcjs.getEmbedProxyAuth.call(void 0, ), 'optionalAccess', _588 => _588.email]), () => ( null));
|
|
17735
17801
|
const requestKey = enabled ? `${url}\0${_nullishCoalesce(proxyEmail, () => ( ""))}` : null;
|
|
17736
17802
|
const [resolved, setResolved] = _react.useState.call(void 0, null);
|
|
17737
|
-
const data = _optionalChain([resolved, 'optionalAccess',
|
|
17738
|
-
const isLoading = requestKey !== null && _optionalChain([resolved, 'optionalAccess',
|
|
17803
|
+
const data = _optionalChain([resolved, 'optionalAccess', _589 => _589.key]) === requestKey ? resolved.data : ANON_DEFAULTS;
|
|
17804
|
+
const isLoading = requestKey !== null && _optionalChain([resolved, 'optionalAccess', _590 => _590.key]) !== requestKey;
|
|
17739
17805
|
_react.useEffect.call(void 0, () => {
|
|
17740
17806
|
if (requestKey === null) return void 0;
|
|
17741
17807
|
let cancelled = false;
|
|
@@ -17882,7 +17948,7 @@ function useChat({
|
|
|
17882
17948
|
onMessagesChangeRef.current = onMessagesChange;
|
|
17883
17949
|
});
|
|
17884
17950
|
_react.useEffect.call(void 0, () => {
|
|
17885
|
-
_optionalChain([onMessagesChangeRef, 'access',
|
|
17951
|
+
_optionalChain([onMessagesChangeRef, 'access', _591 => _591.current, 'optionalCall', _592 => _592(messages)]);
|
|
17886
17952
|
}, [messages]);
|
|
17887
17953
|
const {
|
|
17888
17954
|
streamMessage,
|
|
@@ -17919,7 +17985,7 @@ function useChat({
|
|
|
17919
17985
|
name: "You",
|
|
17920
17986
|
content: text2,
|
|
17921
17987
|
timestamp: /* @__PURE__ */ new Date(),
|
|
17922
|
-
..._optionalChain([options, 'optionalAccess',
|
|
17988
|
+
..._optionalChain([options, 'optionalAccess', _593 => _593.hidden]) ? { hidden: true } : {}
|
|
17923
17989
|
};
|
|
17924
17990
|
addMessage(userMessage);
|
|
17925
17991
|
setIsTyping(true);
|
|
@@ -18133,7 +18199,7 @@ function buildConfirmToolBody(request) {
|
|
|
18133
18199
|
async function readServerErrorMessage(response) {
|
|
18134
18200
|
try {
|
|
18135
18201
|
const body = await response.json();
|
|
18136
|
-
if (typeof _optionalChain([body, 'optionalAccess',
|
|
18202
|
+
if (typeof _optionalChain([body, 'optionalAccess', _594 => _594.error]) === "string" && body.error.length > 0) return body.error;
|
|
18137
18203
|
} catch (e39) {
|
|
18138
18204
|
}
|
|
18139
18205
|
return null;
|
|
@@ -18461,7 +18527,7 @@ function youtubeVideoId(value) {
|
|
|
18461
18527
|
const hostname = parsed.hostname.toLowerCase();
|
|
18462
18528
|
const isYoutubeHost = hostname === "youtu.be" || hostname === "youtube.com" || hostname.endsWith(".youtube.com");
|
|
18463
18529
|
if (!isYoutubeHost) return void 0;
|
|
18464
|
-
const fromPath = hostname === "youtu.be" ? parsed.pathname.split("/").filter(Boolean)[0] : _optionalChain([/^\/(?:embed|v|shorts)\/([A-Za-z0-9_-]{11})(?:\/|$)/, 'access',
|
|
18530
|
+
const fromPath = hostname === "youtu.be" ? parsed.pathname.split("/").filter(Boolean)[0] : _optionalChain([/^\/(?:embed|v|shorts)\/([A-Za-z0-9_-]{11})(?:\/|$)/, 'access', _595 => _595.exec, 'call', _596 => _596(parsed.pathname), 'optionalAccess', _597 => _597[1]]);
|
|
18465
18531
|
const id = _nullishCoalesce(_nullishCoalesce(fromPath, () => ( parsed.searchParams.get("v"))), () => ( void 0));
|
|
18466
18532
|
return id && YOUTUBE_ID.test(id) ? id : void 0;
|
|
18467
18533
|
}
|
|
@@ -18580,11 +18646,11 @@ function cards(value, decodedSources) {
|
|
|
18580
18646
|
{
|
|
18581
18647
|
type,
|
|
18582
18648
|
id,
|
|
18583
|
-
title: _nullishCoalesce(_optionalChain([source, 'optionalAccess',
|
|
18584
|
-
url: _nullishCoalesce(_optionalChain([source, 'optionalAccess',
|
|
18585
|
-
..._optionalChain([source, 'optionalAccess',
|
|
18586
|
-
..._optionalChain([source, 'optionalAccess',
|
|
18587
|
-
..._optionalChain([source, 'optionalAccess',
|
|
18649
|
+
title: _nullishCoalesce(_optionalChain([source, 'optionalAccess', _598 => _598.name]), () => ( id)),
|
|
18650
|
+
url: _nullishCoalesce(_optionalChain([source, 'optionalAccess', _599 => _599.externalUrl]), () => ( null)),
|
|
18651
|
+
..._optionalChain([source, 'optionalAccess', _600 => _600.sourceRepo]) ? { sourceRepo: source.sourceRepo } : {},
|
|
18652
|
+
..._optionalChain([source, 'optionalAccess', _601 => _601.targetPlatform]) !== void 0 ? { targetPlatform: source.targetPlatform } : {},
|
|
18653
|
+
..._optionalChain([source, 'optionalAccess', _602 => _602.path]) ? { metadata: { path: source.path } } : {}
|
|
18588
18654
|
}
|
|
18589
18655
|
];
|
|
18590
18656
|
});
|
|
@@ -18620,11 +18686,11 @@ function attachmentsEvent(record) {
|
|
|
18620
18686
|
}
|
|
18621
18687
|
function mergeSourceMetadata(previous, event) {
|
|
18622
18688
|
const byIndex = /* @__PURE__ */ new Map();
|
|
18623
|
-
for (const source of [..._nullishCoalesce(_optionalChain([previous, 'optionalAccess',
|
|
18689
|
+
for (const source of [..._nullishCoalesce(_optionalChain([previous, 'optionalAccess', _603 => _603.sources]), () => ( [])), ..._nullishCoalesce(event.sources, () => ( []))]) {
|
|
18624
18690
|
if (!byIndex.has(source.index)) byIndex.set(source.index, source);
|
|
18625
18691
|
}
|
|
18626
18692
|
const byIdentity = /* @__PURE__ */ new Map();
|
|
18627
|
-
for (const ref of [..._nullishCoalesce(_optionalChain([previous, 'optionalAccess',
|
|
18693
|
+
for (const ref of [..._nullishCoalesce(_optionalChain([previous, 'optionalAccess', _604 => _604.refs]), () => ( [])), ..._nullishCoalesce(event.refs, () => ( []))]) {
|
|
18628
18694
|
const identity = `${ref.type}:${ref.id}`;
|
|
18629
18695
|
if (!byIdentity.has(identity)) byIdentity.set(identity, ref);
|
|
18630
18696
|
}
|
|
@@ -18710,9 +18776,9 @@ function appendToTrailingAssistant(prev, segments) {
|
|
|
18710
18776
|
for (const seg of segments) {
|
|
18711
18777
|
const tail = merged[merged.length - 1];
|
|
18712
18778
|
const key = upsertKey(seg);
|
|
18713
|
-
if (seg.type === "text" && _optionalChain([tail, 'optionalAccess',
|
|
18779
|
+
if (seg.type === "text" && _optionalChain([tail, 'optionalAccess', _605 => _605.type]) === "text") {
|
|
18714
18780
|
merged[merged.length - 1] = { type: "text", text: tail.text + seg.text };
|
|
18715
|
-
} else if (seg.type === "thinking" && _optionalChain([tail, 'optionalAccess',
|
|
18781
|
+
} else if (seg.type === "thinking" && _optionalChain([tail, 'optionalAccess', _606 => _606.type]) === "thinking") {
|
|
18716
18782
|
merged[merged.length - 1] = { type: "thinking", text: tail.text + seg.text };
|
|
18717
18783
|
} else if (key) {
|
|
18718
18784
|
let idx = merged.findIndex((m) => upsertKey(m) === key);
|
|
@@ -18753,7 +18819,7 @@ function applyApprovalStatusToSegment(s, requestId, status, resolvedByName) {
|
|
|
18753
18819
|
}
|
|
18754
18820
|
if (s.type !== "approval_batch") return s;
|
|
18755
18821
|
const isAnchor = s.data.approvalRequestId === requestId;
|
|
18756
|
-
const hasRow = _optionalChain([s, 'access',
|
|
18822
|
+
const hasRow = _optionalChain([s, 'access', _607 => _607.data, 'access', _608 => _608.toolCalls, 'optionalAccess', _609 => _609.some, 'call', _610 => _610((c) => c.toolExecutionRequestId === requestId)]);
|
|
18757
18823
|
if (!isAnchor && !hasRow) return s;
|
|
18758
18824
|
const nextResolvedBy = _nullishCoalesce(resolvedByName, () => ( s.resolvedByName));
|
|
18759
18825
|
const nextExecutions = hasRow ? {
|
|
@@ -18775,8 +18841,8 @@ function applyApprovalStatusToSegment(s, requestId, status, resolvedByName) {
|
|
|
18775
18841
|
};
|
|
18776
18842
|
}
|
|
18777
18843
|
function nextBatchExecution(prevExec, toolData) {
|
|
18778
|
-
if (toolData.type === "EXECUTING_TOOL" && _optionalChain([prevExec, 'optionalAccess',
|
|
18779
|
-
return toolData.type === "EXECUTED_TOOL" ? { status: "done", result: toolData.result, success: toolData.success } : { status: "executing", result: _optionalChain([prevExec, 'optionalAccess',
|
|
18844
|
+
if (toolData.type === "EXECUTING_TOOL" && _optionalChain([prevExec, 'optionalAccess', _611 => _611.status]) === "done") return null;
|
|
18845
|
+
return toolData.type === "EXECUTED_TOOL" ? { status: "done", result: toolData.result, success: toolData.success } : { status: "executing", result: _optionalChain([prevExec, 'optionalAccess', _612 => _612.result]), success: _optionalChain([prevExec, 'optionalAccess', _613 => _613.success]) };
|
|
18780
18846
|
}
|
|
18781
18847
|
function withBatchExecution(seg, execId, state) {
|
|
18782
18848
|
return {
|
|
@@ -18793,11 +18859,11 @@ function projectBatchStatusToMessages(prev, anchorId, status) {
|
|
|
18793
18859
|
}
|
|
18794
18860
|
function projectBatchRowFailureToMessages(prev, rowRequestId) {
|
|
18795
18861
|
return mapSegments(prev, (s) => {
|
|
18796
|
-
if (s.type !== "approval_batch" || !_optionalChain([s, 'access',
|
|
18862
|
+
if (s.type !== "approval_batch" || !_optionalChain([s, 'access', _614 => _614.data, 'access', _615 => _615.toolCalls, 'optionalAccess', _616 => _616.some, 'call', _617 => _617((c) => c.toolExecutionRequestId === rowRequestId)])) {
|
|
18797
18863
|
return s;
|
|
18798
18864
|
}
|
|
18799
|
-
const existing = _optionalChain([s, 'access',
|
|
18800
|
-
if (_optionalChain([existing, 'optionalAccess',
|
|
18865
|
+
const existing = _optionalChain([s, 'access', _618 => _618.data, 'access', _619 => _619.executions, 'optionalAccess', _620 => _620[rowRequestId]]);
|
|
18866
|
+
if (_optionalChain([existing, 'optionalAccess', _621 => _621.status]) === "done") return s;
|
|
18801
18867
|
return withBatchExecution(s, rowRequestId, { status: "done", success: false });
|
|
18802
18868
|
});
|
|
18803
18869
|
}
|
|
@@ -18833,7 +18899,7 @@ function mergeToolExecutionIfPresent(prev, segment) {
|
|
|
18833
18899
|
for (let j = message.segments.length - 1; j >= 0; j--) {
|
|
18834
18900
|
const seg = message.segments[j];
|
|
18835
18901
|
if (execId && seg.type === "approval_batch" && seg.data.toolCalls.some((c) => c.toolExecutionRequestId === execId)) {
|
|
18836
|
-
const prevExec = _optionalChain([seg, 'access',
|
|
18902
|
+
const prevExec = _optionalChain([seg, 'access', _622 => _622.data, 'access', _623 => _623.executions, 'optionalAccess', _624 => _624[execId]]);
|
|
18837
18903
|
const nextExec = nextBatchExecution(prevExec, toolData);
|
|
18838
18904
|
if (nextExec === null) return prev;
|
|
18839
18905
|
if (sameExecutionState(prevExec, nextExec)) return prev;
|
|
@@ -19006,9 +19072,9 @@ var MessageSegmentAccumulator = class {
|
|
|
19006
19072
|
type: "tool_execution",
|
|
19007
19073
|
data: {
|
|
19008
19074
|
...toolData,
|
|
19009
|
-
toolTitle: _nullishCoalesce(_nullishCoalesce(toolData.toolTitle, () => ( _optionalChain([existingExecuting, 'optionalAccess',
|
|
19010
|
-
toolExplanation: _nullishCoalesce(_nullishCoalesce(toolData.toolExplanation, () => ( _optionalChain([existingExecuting, 'optionalAccess',
|
|
19011
|
-
parameters: toolData.parameters || _optionalChain([executingTool, 'optionalAccess',
|
|
19075
|
+
toolTitle: _nullishCoalesce(_nullishCoalesce(toolData.toolTitle, () => ( _optionalChain([existingExecuting, 'optionalAccess', _625 => _625.data, 'access', _626 => _626.toolTitle]))), () => ( _optionalChain([executingTool, 'optionalAccess', _627 => _627.toolTitle]))),
|
|
19076
|
+
toolExplanation: _nullishCoalesce(_nullishCoalesce(toolData.toolExplanation, () => ( _optionalChain([existingExecuting, 'optionalAccess', _628 => _628.data, 'access', _629 => _629.toolExplanation]))), () => ( _optionalChain([executingTool, 'optionalAccess', _630 => _630.toolExplanation]))),
|
|
19077
|
+
parameters: toolData.parameters || _optionalChain([executingTool, 'optionalAccess', _631 => _631.parameters])
|
|
19012
19078
|
}
|
|
19013
19079
|
};
|
|
19014
19080
|
if (existingIndex !== -1) {
|
|
@@ -19032,7 +19098,7 @@ var MessageSegmentAccumulator = class {
|
|
|
19032
19098
|
if (seg.type !== "approval_batch") return seg;
|
|
19033
19099
|
const hasCall = seg.data.toolCalls.some((c) => c.toolExecutionRequestId === execId);
|
|
19034
19100
|
if (!hasCall) return seg;
|
|
19035
|
-
const prev = _optionalChain([seg, 'access',
|
|
19101
|
+
const prev = _optionalChain([seg, 'access', _632 => _632.data, 'access', _633 => _633.executions, 'optionalAccess', _634 => _634[execId]]);
|
|
19036
19102
|
const next = nextBatchExecution(prev, toolData);
|
|
19037
19103
|
matched = true;
|
|
19038
19104
|
if (next === null) return seg;
|
|
@@ -19166,8 +19232,8 @@ var MessageSegmentAccumulator = class {
|
|
|
19166
19232
|
requestId,
|
|
19167
19233
|
{
|
|
19168
19234
|
...pendingApproval,
|
|
19169
|
-
command: _optionalChain([pendingApproval, 'optionalAccess',
|
|
19170
|
-
approvalType: _optionalChain([pendingApproval, 'optionalAccess',
|
|
19235
|
+
command: _optionalChain([pendingApproval, 'optionalAccess', _635 => _635.command]) || "",
|
|
19236
|
+
approvalType: _optionalChain([pendingApproval, 'optionalAccess', _636 => _636.approvalType]) || approvalType
|
|
19171
19237
|
},
|
|
19172
19238
|
status
|
|
19173
19239
|
);
|
|
@@ -19192,9 +19258,9 @@ var MessageSegmentAccumulator = class {
|
|
|
19192
19258
|
type: "escalation_offer",
|
|
19193
19259
|
// The resolved chunk carries no text/origin — a redelivered offer must
|
|
19194
19260
|
// not blank the card the PENDING chunk already painted.
|
|
19195
|
-
data: { offerId, text: text2 || _optionalChain([existing, 'optionalAccess',
|
|
19261
|
+
data: { offerId, text: text2 || _optionalChain([existing, 'optionalAccess', _637 => _637.data, 'access', _638 => _638.text]) || "", origin: _nullishCoalesce(origin, () => ( _optionalChain([existing, 'optionalAccess', _639 => _639.data, 'access', _640 => _640.origin]))) },
|
|
19196
19262
|
status,
|
|
19197
|
-
resolvedByName: _nullishCoalesce(resolvedByName, () => ( _optionalChain([existing, 'optionalAccess',
|
|
19263
|
+
resolvedByName: _nullishCoalesce(resolvedByName, () => ( _optionalChain([existing, 'optionalAccess', _641 => _641.resolvedByName]))),
|
|
19198
19264
|
onApprove: this.callbacks.onEscalationApprove,
|
|
19199
19265
|
onReject: this.callbacks.onEscalationReject
|
|
19200
19266
|
};
|
|
@@ -19514,7 +19580,7 @@ function createChatStreamReducer(options = {}) {
|
|
|
19514
19580
|
let stateCache = null;
|
|
19515
19581
|
function invalidate() {
|
|
19516
19582
|
stateCache = null;
|
|
19517
|
-
_optionalChain([onChange, 'optionalCall',
|
|
19583
|
+
_optionalChain([onChange, 'optionalCall', _642 => _642()]);
|
|
19518
19584
|
}
|
|
19519
19585
|
function getState() {
|
|
19520
19586
|
if (!stateCache) {
|
|
@@ -19532,7 +19598,7 @@ function createChatStreamReducer(options = {}) {
|
|
|
19532
19598
|
return stateCache;
|
|
19533
19599
|
}
|
|
19534
19600
|
function emit(name, ...args) {
|
|
19535
|
-
_optionalChain([onEffect, 'optionalCall',
|
|
19601
|
+
_optionalChain([onEffect, 'optionalCall', _643 => _643({ name, args })]);
|
|
19536
19602
|
}
|
|
19537
19603
|
function setMessagesInternal(next) {
|
|
19538
19604
|
if (next !== messages) {
|
|
@@ -19575,12 +19641,12 @@ function createChatStreamReducer(options = {}) {
|
|
|
19575
19641
|
return stampTrailingAssistantSourceMetadata(stampTrailingAssistantSeq(next, seq));
|
|
19576
19642
|
}
|
|
19577
19643
|
function applySegmentsToState(segments, meta) {
|
|
19578
|
-
const seq = _optionalChain([meta, 'optionalAccess',
|
|
19579
|
-
if (_optionalChain([meta, 'optionalAccess',
|
|
19644
|
+
const seq = _optionalChain([meta, 'optionalAccess', _644 => _644.streamSeq]);
|
|
19645
|
+
if (_optionalChain([meta, 'optionalAccess', _645 => _645.append]) && meta.isCompacting) {
|
|
19580
19646
|
setMessagesInternal(commitTrailingAssistant(upsertTrailingCompaction(messages, segments), seq));
|
|
19581
19647
|
return;
|
|
19582
19648
|
}
|
|
19583
|
-
if (_optionalChain([meta, 'optionalAccess',
|
|
19649
|
+
if (_optionalChain([meta, 'optionalAccess', _646 => _646.append])) {
|
|
19584
19650
|
setMessagesInternal(commitTrailingAssistant(appendToTrailingAssistant(messages, segments), seq));
|
|
19585
19651
|
return;
|
|
19586
19652
|
}
|
|
@@ -19592,7 +19658,7 @@ function createChatStreamReducer(options = {}) {
|
|
|
19592
19658
|
adoptTrailingAssistant = false;
|
|
19593
19659
|
const last = messages[messages.length - 1];
|
|
19594
19660
|
if (!last || last.role !== "assistant" || adoptTail) return;
|
|
19595
|
-
const hasContent = (_nullishCoalesce(_optionalChain([last, 'access',
|
|
19661
|
+
const hasContent = (_nullishCoalesce(_optionalChain([last, 'access', _647 => _647.segments, 'optionalAccess', _648 => _648.length]), () => ( 0))) > 0 || last.content !== "";
|
|
19596
19662
|
if (!hasContent) return;
|
|
19597
19663
|
setMessagesInternal([...messages, { id: nextId("assistant"), role: "assistant", content: "", segments: [] }]);
|
|
19598
19664
|
}
|
|
@@ -19811,13 +19877,13 @@ function createChatStreamReducer(options = {}) {
|
|
|
19811
19877
|
const summary = required ? _chunkHP4UUBJCcjs.getCommandText.call(void 0, required) : `Batch of ${toolCalls.length} tool calls`;
|
|
19812
19878
|
pendingEscalated.set(requestId, {
|
|
19813
19879
|
command: summary,
|
|
19814
|
-
explanation: _optionalChain([required, 'optionalAccess',
|
|
19880
|
+
explanation: _optionalChain([required, 'optionalAccess', _649 => _649.toolExplanation]),
|
|
19815
19881
|
approvalType,
|
|
19816
19882
|
toolCalls
|
|
19817
19883
|
});
|
|
19818
19884
|
emit("onEscalatedApproval", requestId, {
|
|
19819
19885
|
command: summary,
|
|
19820
|
-
explanation: _optionalChain([required, 'optionalAccess',
|
|
19886
|
+
explanation: _optionalChain([required, 'optionalAccess', _650 => _650.toolExplanation]),
|
|
19821
19887
|
approvalType
|
|
19822
19888
|
});
|
|
19823
19889
|
break;
|
|
@@ -20205,7 +20271,7 @@ function createChatStreamReducer(options = {}) {
|
|
|
20205
20271
|
const resolveBatch = (status, confirm) => async () => {
|
|
20206
20272
|
setMessagesInternal(projectBatchStatusToMessages(messages, anchorId, status));
|
|
20207
20273
|
for (const id of ids) {
|
|
20208
|
-
const ok = await _optionalChain([confirm, 'optionalCall',
|
|
20274
|
+
const ok = await _optionalChain([confirm, 'optionalCall', _651 => _651(id)]);
|
|
20209
20275
|
if (ok === false) {
|
|
20210
20276
|
setMessagesInternal(projectBatchRowFailureToMessages(messages, id));
|
|
20211
20277
|
}
|
|
@@ -20341,8 +20407,8 @@ function createChatStreamReducer(options = {}) {
|
|
|
20341
20407
|
}
|
|
20342
20408
|
}
|
|
20343
20409
|
}
|
|
20344
|
-
hasEverStreamed = hasEverStreamed || (_nullishCoalesce(_optionalChain([extras, 'optionalAccess',
|
|
20345
|
-
if (_optionalChain([extras, 'optionalAccess',
|
|
20410
|
+
hasEverStreamed = hasEverStreamed || (_nullishCoalesce(_optionalChain([extras, 'optionalAccess', _652 => _652.resumed]), () => ( messages.length > 0)));
|
|
20411
|
+
if (_optionalChain([extras, 'optionalAccess', _653 => _653.agentBusy])) agentBusyState();
|
|
20346
20412
|
invalidate();
|
|
20347
20413
|
}
|
|
20348
20414
|
return {
|
|
@@ -20429,7 +20495,7 @@ function createChatStreamReducer(options = {}) {
|
|
|
20429
20495
|
},
|
|
20430
20496
|
endSseTurn() {
|
|
20431
20497
|
const last = messages[messages.length - 1];
|
|
20432
|
-
if (last && last.role === "assistant" && (_nullishCoalesce(_optionalChain([last, 'access',
|
|
20498
|
+
if (last && last.role === "assistant" && (_nullishCoalesce(_optionalChain([last, 'access', _654 => _654.segments, 'optionalAccess', _655 => _655.length]), () => ( 0))) === 0 && last.content === "") {
|
|
20433
20499
|
messages = messages.slice(0, -1);
|
|
20434
20500
|
}
|
|
20435
20501
|
sseCurrentText = "";
|
|
@@ -20583,10 +20649,10 @@ function createChatDialogStore(options = {}) {
|
|
|
20583
20649
|
if (onEvict) {
|
|
20584
20650
|
const sep = key.indexOf(KEY_SEP);
|
|
20585
20651
|
onEvict(key.slice(0, sep), key.slice(sep + 1), {
|
|
20586
|
-
messages: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess',
|
|
20587
|
-
approvalStatuses: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess',
|
|
20588
|
-
lastAppliedSeq: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess',
|
|
20589
|
-
pendingEchoes: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess',
|
|
20652
|
+
messages: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess', _656 => _656.state, 'access', _657 => _657.messages]), () => ( EMPTY_STATE.messages)),
|
|
20653
|
+
approvalStatuses: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess', _658 => _658.state, 'access', _659 => _659.approvalStatuses]), () => ( EMPTY_STATE.approvalStatuses)),
|
|
20654
|
+
lastAppliedSeq: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess', _660 => _660.getLastAppliedSeq, 'call', _661 => _661()]), () => ( Number.NEGATIVE_INFINITY)),
|
|
20655
|
+
pendingEchoes: _nullishCoalesce(_optionalChain([dropped, 'optionalAccess', _662 => _662.getPendingEchoes, 'call', _663 => _663()]), () => ( EMPTY_PENDING_ECHOES))
|
|
20590
20656
|
});
|
|
20591
20657
|
}
|
|
20592
20658
|
}
|
|
@@ -20596,12 +20662,12 @@ function createChatDialogStore(options = {}) {
|
|
|
20596
20662
|
const key = keyOf(dialogId, side);
|
|
20597
20663
|
let reducer = reducers.get(key);
|
|
20598
20664
|
if (!reducer) {
|
|
20599
|
-
const base = _nullishCoalesce(_optionalChain([(_nullishCoalesce(createOptions, () => ( defaultCreateOptions))), 'optionalCall',
|
|
20665
|
+
const base = _nullishCoalesce(_optionalChain([(_nullishCoalesce(createOptions, () => ( defaultCreateOptions))), 'optionalCall', _664 => _664(dialogId, side)]), () => ( {}));
|
|
20600
20666
|
const userOnChange = base.onChange;
|
|
20601
20667
|
reducer = createChatStreamReducer({
|
|
20602
20668
|
...base,
|
|
20603
20669
|
onChange: () => {
|
|
20604
|
-
_optionalChain([userOnChange, 'optionalCall',
|
|
20670
|
+
_optionalChain([userOnChange, 'optionalCall', _665 => _665()]);
|
|
20605
20671
|
notify();
|
|
20606
20672
|
}
|
|
20607
20673
|
});
|
|
@@ -20646,7 +20712,7 @@ function createChatDialogStore(options = {}) {
|
|
|
20646
20712
|
};
|
|
20647
20713
|
}
|
|
20648
20714
|
function getSnapshot2(dialogId, side = DEFAULT_DIALOG_SIDE) {
|
|
20649
|
-
return _nullishCoalesce(_optionalChain([reducers, 'access',
|
|
20715
|
+
return _nullishCoalesce(_optionalChain([reducers, 'access', _666 => _666.get, 'call', _667 => _667(keyOf(dialogId, side)), 'optionalAccess', _668 => _668.state]), () => ( EMPTY_STATE));
|
|
20650
20716
|
}
|
|
20651
20717
|
function getServerSnapshot2() {
|
|
20652
20718
|
return EMPTY_STATE;
|
|
@@ -20738,7 +20804,7 @@ function createDeltaBatcher({
|
|
|
20738
20804
|
pending = [];
|
|
20739
20805
|
const key = pendingKey;
|
|
20740
20806
|
for (const delta of batch) applyOne(delta, key);
|
|
20741
|
-
_optionalChain([onFlushed, 'optionalCall',
|
|
20807
|
+
_optionalChain([onFlushed, 'optionalCall', _669 => _669(batch.length)]);
|
|
20742
20808
|
}
|
|
20743
20809
|
function schedule() {
|
|
20744
20810
|
if (raf !== null || timer !== null) return;
|
|
@@ -20762,7 +20828,7 @@ function createDeltaBatcher({
|
|
|
20762
20828
|
}
|
|
20763
20829
|
if (!isDeltaEvent(event)) return false;
|
|
20764
20830
|
const tail = pending[pending.length - 1];
|
|
20765
|
-
const seqAdvances = _optionalChain([tail, 'optionalAccess',
|
|
20831
|
+
const seqAdvances = _optionalChain([tail, 'optionalAccess', _670 => _670.seq]) == null ? event.seq == null : event.seq != null && event.seq > tail.seq;
|
|
20766
20832
|
if (tail && seqAdvances && tail.type === event.type && (tail.type !== "text-delta" || tail.leading === event.leading)) {
|
|
20767
20833
|
pending[pending.length - 1] = {
|
|
20768
20834
|
...tail,
|
|
@@ -20793,7 +20859,7 @@ function useChatStreamReducer({
|
|
|
20793
20859
|
side = DEFAULT_DIALOG_SIDE,
|
|
20794
20860
|
createReducerOptions
|
|
20795
20861
|
}) {
|
|
20796
|
-
const reducer = store.getReducer(dialogId, side, () => _nullishCoalesce(_optionalChain([createReducerOptions, 'optionalCall',
|
|
20862
|
+
const reducer = store.getReducer(dialogId, side, () => _nullishCoalesce(_optionalChain([createReducerOptions, 'optionalCall', _671 => _671()]), () => ( {})));
|
|
20797
20863
|
const getSnapshot2 = _react.useCallback.call(void 0, () => store.getSnapshot(dialogId, side), [store, dialogId, side]);
|
|
20798
20864
|
const getServerSnapshot2 = _react.useCallback.call(void 0, () => store.getServerSnapshot(), [store]);
|
|
20799
20865
|
const subscribe2 = _react.useCallback.call(void 0, (listener) => store.subscribe(listener), [store]);
|
|
@@ -20832,7 +20898,7 @@ var STORAGE_KEY = "conversation";
|
|
|
20832
20898
|
var namespaceFor = (source) => {
|
|
20833
20899
|
const base = `mingo-chat-${source}`;
|
|
20834
20900
|
const auth = _chunkULWVKHSIcjs.getEmbedProxyAuth.call(void 0, );
|
|
20835
|
-
return _optionalChain([auth, 'optionalAccess',
|
|
20901
|
+
return _optionalChain([auth, 'optionalAccess', _672 => _672.email]) ? `${base}-u-${encodeURIComponent(auth.email.toLowerCase())}` : base;
|
|
20836
20902
|
};
|
|
20837
20903
|
function createChatConversationStorage(source) {
|
|
20838
20904
|
return _chunkULWVKHSIcjs.createLocalStorageAdapter.call(void 0, {
|
|
@@ -20963,7 +21029,7 @@ function useChatHistoryHydration({
|
|
|
20963
21029
|
if (cancelled) return;
|
|
20964
21030
|
if (rows.length === 0) {
|
|
20965
21031
|
const found = isRecord(body) ? body.found : void 0;
|
|
20966
|
-
if (found === false) _optionalChain([onOrphanedConversation, 'optionalCall',
|
|
21032
|
+
if (found === false) _optionalChain([onOrphanedConversation, 'optionalCall', _673 => _673(conversationId)]);
|
|
20967
21033
|
return;
|
|
20968
21034
|
}
|
|
20969
21035
|
const hydrated = [];
|
|
@@ -21107,7 +21173,7 @@ function useManagedDialogList({
|
|
|
21107
21173
|
try {
|
|
21108
21174
|
await deleteDialogCallback(id);
|
|
21109
21175
|
removeLocal(id);
|
|
21110
|
-
_optionalChain([onDialogRemovedRef, 'access',
|
|
21176
|
+
_optionalChain([onDialogRemovedRef, 'access', _674 => _674.current, 'optionalCall', _675 => _675(id, "deleted")]);
|
|
21111
21177
|
} catch (err) {
|
|
21112
21178
|
console.error(`${logTag} deleteDialog failed:`, err);
|
|
21113
21179
|
throw err;
|
|
@@ -21118,7 +21184,7 @@ function useManagedDialogList({
|
|
|
21118
21184
|
const renameDialog = _react.useCallback.call(void 0,
|
|
21119
21185
|
async (id, title) => {
|
|
21120
21186
|
if (!renameDialogCallback) return;
|
|
21121
|
-
const previous = _optionalChain([dialogsRef, 'access',
|
|
21187
|
+
const previous = _optionalChain([dialogsRef, 'access', _676 => _676.current, 'access', _677 => _677.find, 'call', _678 => _678((d) => d.id === id), 'optionalAccess', _679 => _679.title]);
|
|
21122
21188
|
setDialogs((prev) => prev.map((d) => d.id === id ? { ...d, title } : d));
|
|
21123
21189
|
try {
|
|
21124
21190
|
await renameDialogCallback(id, title);
|
|
@@ -21137,7 +21203,7 @@ function useManagedDialogList({
|
|
|
21137
21203
|
try {
|
|
21138
21204
|
await archiveDialogCallback(id);
|
|
21139
21205
|
removeLocal(id);
|
|
21140
|
-
_optionalChain([onDialogRemovedRef, 'access',
|
|
21206
|
+
_optionalChain([onDialogRemovedRef, 'access', _680 => _680.current, 'optionalCall', _681 => _681(id, "archived")]);
|
|
21141
21207
|
} catch (err) {
|
|
21142
21208
|
console.error(`${logTag} archiveDialog failed:`, err);
|
|
21143
21209
|
throw err;
|
|
@@ -21229,7 +21295,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
21229
21295
|
const { active = true } = runtimeOptions;
|
|
21230
21296
|
const runtime = _chunkUJ7AXHRZcjs.useRequiredChatRuntime.call(void 0, );
|
|
21231
21297
|
const source = runtime.source || DEFAULT_CHAT_SOURCE;
|
|
21232
|
-
const tableIdForDocumentType = _nullishCoalesce(_optionalChain([options, 'optionalAccess',
|
|
21298
|
+
const tableIdForDocumentType = _nullishCoalesce(_optionalChain([options, 'optionalAccess', _682 => _682.tableIdForDocumentType]), () => ( defaultTableIdForDocumentType));
|
|
21233
21299
|
const sendMessageRef = _react.useRef.call(void 0,
|
|
21234
21300
|
() => Promise.resolve(true)
|
|
21235
21301
|
);
|
|
@@ -21265,7 +21331,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
21265
21331
|
if (!restoredConversationRef.current) {
|
|
21266
21332
|
restoredConversationRef.current = true;
|
|
21267
21333
|
pruneStaleChatConversationStorage(source);
|
|
21268
|
-
conversationIdRef.current = _nullishCoalesce(_optionalChain([conversationStorage, 'access',
|
|
21334
|
+
conversationIdRef.current = _nullishCoalesce(_optionalChain([conversationStorage, 'access', _683 => _683.load, 'call', _684 => _684(), 'optionalAccess', _685 => _685.conversationId]), () => ( null));
|
|
21269
21335
|
}
|
|
21270
21336
|
const [conversationId, setConversationId] = _react.useState.call(void 0, () => conversationIdRef.current);
|
|
21271
21337
|
const commitConversationId = _react.useCallback.call(void 0,
|
|
@@ -21356,7 +21422,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
21356
21422
|
const abortControllerRef = _react.useRef.call(void 0, null);
|
|
21357
21423
|
const switchConversation = _react.useCallback.call(void 0,
|
|
21358
21424
|
(id) => {
|
|
21359
|
-
_optionalChain([abortControllerRef, 'access',
|
|
21425
|
+
_optionalChain([abortControllerRef, 'access', _686 => _686.current, 'optionalAccess', _687 => _687.abort, 'call', _688 => _688()]);
|
|
21360
21426
|
flushDeltas();
|
|
21361
21427
|
mutate((r) => r.reset());
|
|
21362
21428
|
hydrationSendCountRef.current = 0;
|
|
@@ -21393,8 +21459,8 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
21393
21459
|
} = useManagedDialogList({
|
|
21394
21460
|
autoLoad: active,
|
|
21395
21461
|
fetchDialogs: fetchActiveDialogs,
|
|
21396
|
-
renameDialog: _optionalChain([conversationsApi, 'optionalAccess',
|
|
21397
|
-
archiveDialog: _optionalChain([conversationsApi, 'optionalAccess',
|
|
21462
|
+
renameDialog: _optionalChain([conversationsApi, 'optionalAccess', _689 => _689.renameDialog]),
|
|
21463
|
+
archiveDialog: _optionalChain([conversationsApi, 'optionalAccess', _690 => _690.archiveDialog]),
|
|
21398
21464
|
pageSize: 20,
|
|
21399
21465
|
search: conversationsApi ? dialogSearch : void 0,
|
|
21400
21466
|
logTag: "[useSseChatAdapter]",
|
|
@@ -21458,7 +21524,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
21458
21524
|
const serverMessage = await readServerErrorMessage(response);
|
|
21459
21525
|
throw new Error(_nullishCoalesce(serverMessage, () => ( `Chat request failed: ${response.status}`)));
|
|
21460
21526
|
}
|
|
21461
|
-
const reader = _optionalChain([response, 'access',
|
|
21527
|
+
const reader = _optionalChain([response, 'access', _691 => _691.body, 'optionalAccess', _692 => _692.getReader, 'call', _693 => _693()]);
|
|
21462
21528
|
if (!reader) throw new Error("No response body");
|
|
21463
21529
|
const frameDecoder = createSseFrameDecoder();
|
|
21464
21530
|
let finished = false;
|
|
@@ -21487,7 +21553,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
21487
21553
|
}
|
|
21488
21554
|
return true;
|
|
21489
21555
|
} catch (err) {
|
|
21490
|
-
if (_optionalChain([err, 'optionalAccess',
|
|
21556
|
+
if (_optionalChain([err, 'optionalAccess', _694 => _694.name]) === "AbortError" || ctrl.signal.aborted) {
|
|
21491
21557
|
return true;
|
|
21492
21558
|
}
|
|
21493
21559
|
flushDeltas();
|
|
@@ -21523,7 +21589,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
21523
21589
|
);
|
|
21524
21590
|
sendMessageRef.current = sendMessage;
|
|
21525
21591
|
const stopMessage = _react.useCallback.call(void 0, () => {
|
|
21526
|
-
_optionalChain([abortControllerRef, 'access',
|
|
21592
|
+
_optionalChain([abortControllerRef, 'access', _695 => _695.current, 'optionalAccess', _696 => _696.abort, 'call', _697 => _697()]);
|
|
21527
21593
|
flushDeltas();
|
|
21528
21594
|
mutate((r) => r.setPhase("idle"));
|
|
21529
21595
|
}, [mutate, flushDeltas]);
|
|
@@ -21559,7 +21625,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
21559
21625
|
let sendIdx = -1;
|
|
21560
21626
|
return state.messages.map((m) => {
|
|
21561
21627
|
const segments = m.segments;
|
|
21562
|
-
const content = typeof m.content === "string" && !segments ? m.content : _nullishCoalesce(_optionalChain([segments, 'optionalAccess',
|
|
21628
|
+
const content = typeof m.content === "string" && !segments ? m.content : _nullishCoalesce(_optionalChain([segments, 'optionalAccess', _698 => _698.filter, 'call', _699 => _699((s) => s.type === "text"), 'access', _700 => _700.map, 'call', _701 => _701((s) => s.text), 'access', _702 => _702.join, 'call', _703 => _703("")]), () => ( ""));
|
|
21563
21629
|
let sources2;
|
|
21564
21630
|
let scrollAnchor;
|
|
21565
21631
|
if (m.role === "user" && !m.hidden) {
|
|
@@ -21568,7 +21634,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
21568
21634
|
if (m.role === "assistant") {
|
|
21569
21635
|
const lookupIdx = sendIdx >= 0 ? sendIdx : 0;
|
|
21570
21636
|
sources2 = sourcesMap.get(lookupIdx);
|
|
21571
|
-
scrollAnchor = _nullishCoalesce(_optionalChain([meta, 'access',
|
|
21637
|
+
scrollAnchor = _nullishCoalesce(_optionalChain([meta, 'access', _704 => _704.get, 'call', _705 => _705(lookupIdx), 'optionalAccess', _706 => _706.scrollAnchor]), () => ( void 0));
|
|
21572
21638
|
}
|
|
21573
21639
|
return {
|
|
21574
21640
|
id: m.id,
|
|
@@ -21595,7 +21661,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
21595
21661
|
);
|
|
21596
21662
|
return;
|
|
21597
21663
|
}
|
|
21598
|
-
const refSlug = typeof _optionalChain([reference, 'access',
|
|
21664
|
+
const refSlug = typeof _optionalChain([reference, 'access', _707 => _707.metadata, 'optionalAccess', _708 => _708.slug]) === "string" && reference.metadata.slug.length > 0 ? reference.metadata.slug : "";
|
|
21599
21665
|
const queryValue = refSlug || sanitizeTitleForChat(reference.title) || reference.id;
|
|
21600
21666
|
const escaped = queryValue.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
|
|
21601
21667
|
const text2 = `/${cmdId} display "${escaped}"`;
|
|
@@ -21643,18 +21709,18 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
21643
21709
|
/** True while the mount-time rebuild from the server transcript runs. */
|
|
21644
21710
|
isHydratingHistory,
|
|
21645
21711
|
/** Provider key for the lib's `<ModelDisplay>` icon. */
|
|
21646
|
-
currentProvider: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
21647
|
-
currentModelLabel: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
21648
|
-
currentContextWindowMaxTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
21712
|
+
currentProvider: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _709 => _709.provider]), () => ( null)),
|
|
21713
|
+
currentModelLabel: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _710 => _710.modelLabel]), () => ( null)),
|
|
21714
|
+
currentContextWindowMaxTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _711 => _711.contextWindowMaxTokens]), () => ( null)),
|
|
21649
21715
|
/** Input tokens (known after server's message_start frame; null until). */
|
|
21650
|
-
currentInputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
21716
|
+
currentInputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _712 => _712.inputTokens]), () => ( null)),
|
|
21651
21717
|
/** Output tokens (known only after server's trailing usage frame). */
|
|
21652
|
-
currentOutputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
21718
|
+
currentOutputTokens: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _713 => _713.outputTokens]), () => ( null)),
|
|
21653
21719
|
/** Cache hit % (read / total-input × 100). null during streaming. */
|
|
21654
|
-
currentCacheHitRatePct: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
21720
|
+
currentCacheHitRatePct: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _714 => _714.cacheHitRatePct]), () => ( null)),
|
|
21655
21721
|
/** Cross-call usage breakdown (Haiku rewriter/classifier/summarizer
|
|
21656
21722
|
* token counts). null until the trailing usage frame lands. */
|
|
21657
|
-
currentUsageBreakdown: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess',
|
|
21723
|
+
currentUsageBreakdown: _nullishCoalesce(_optionalChain([latestMeta, 'optionalAccess', _715 => _715.breakdown]), () => ( null)),
|
|
21658
21724
|
// ─── Dialog management ───────────────────────────────────────────────
|
|
21659
21725
|
// With `chatConversationsUrl` the server transcript store IS the dialog
|
|
21660
21726
|
// list (shared `useManagedDialogList`); selecting a row re-hydrates through
|
|
@@ -21910,7 +21976,7 @@ function decodeNatsChunk(chunk) {
|
|
|
21910
21976
|
userId: typeof data.userId === "string" ? data.userId : void 0,
|
|
21911
21977
|
// Wire shape carries no label; fall back to the id (parity with
|
|
21912
21978
|
// the history path in `process-historical-messages.ts`).
|
|
21913
|
-
contextItems: Array.isArray(data.contextItems) ? data.contextItems.filter((it) => typeof _optionalChain([it, 'optionalAccess',
|
|
21979
|
+
contextItems: Array.isArray(data.contextItems) ? data.contextItems.filter((it) => typeof _optionalChain([it, 'optionalAccess', _716 => _716.type]) === "string" && typeof _optionalChain([it, 'optionalAccess', _717 => _717.id]) === "string").map((it) => ({
|
|
21914
21980
|
type: it.type,
|
|
21915
21981
|
id: it.id,
|
|
21916
21982
|
label: it.id
|
|
@@ -22001,7 +22067,7 @@ function extractIncompleteMessageState(lastMessage) {
|
|
|
22001
22067
|
}
|
|
22002
22068
|
break;
|
|
22003
22069
|
case "approval_batch": {
|
|
22004
|
-
const allDone = !!segment.data.executions && segment.data.toolCalls.every((c) => _optionalChain([segment, 'access',
|
|
22070
|
+
const allDone = !!segment.data.executions && segment.data.toolCalls.every((c) => _optionalChain([segment, 'access', _718 => _718.data, 'access', _719 => _719.executions, 'optionalAccess', _720 => _720[c.toolExecutionRequestId], 'optionalAccess', _721 => _721.status]) === "done");
|
|
22005
22071
|
if (segment.status !== "rejected" && !allDone) {
|
|
22006
22072
|
hasIncompleteState = true;
|
|
22007
22073
|
}
|
|
@@ -22063,11 +22129,11 @@ function extractIncompleteMessageState(lastMessage) {
|
|
|
22063
22129
|
function extractIncompleteTailState(messages) {
|
|
22064
22130
|
if (!messages || messages.length === 0) return void 0;
|
|
22065
22131
|
let start = messages.length;
|
|
22066
|
-
while (start > 0 && _optionalChain([messages, 'access',
|
|
22132
|
+
while (start > 0 && _optionalChain([messages, 'access', _722 => _722[start - 1], 'optionalAccess', _723 => _723.role]) === "assistant") start -= 1;
|
|
22067
22133
|
if (start === messages.length) return void 0;
|
|
22068
22134
|
const segments = [];
|
|
22069
22135
|
for (let i = start; i < messages.length; i += 1) {
|
|
22070
|
-
const content = _optionalChain([messages, 'access',
|
|
22136
|
+
const content = _optionalChain([messages, 'access', _724 => _724[i], 'optionalAccess', _725 => _725.content]);
|
|
22071
22137
|
if (Array.isArray(content)) segments.push(...content);
|
|
22072
22138
|
}
|
|
22073
22139
|
if (segments.length === 0) return void 0;
|
|
@@ -22080,15 +22146,15 @@ function extractIncompleteTailState(messages) {
|
|
|
22080
22146
|
|
|
22081
22147
|
// src/components/chat/utils/process-historical-messages.ts
|
|
22082
22148
|
function getOwnerDisplayName(owner) {
|
|
22083
|
-
if (_optionalChain([owner, 'optionalAccess',
|
|
22149
|
+
if (_optionalChain([owner, 'optionalAccess', _726 => _726.type]) === _chunkNJV3LIDEcjs.OWNER_TYPE.ADMIN && owner.user) {
|
|
22084
22150
|
const { firstName, lastName } = owner.user;
|
|
22085
22151
|
const name = [firstName, lastName].filter(Boolean).join(" ");
|
|
22086
22152
|
if (name) return name;
|
|
22087
22153
|
}
|
|
22088
|
-
return _optionalChain([owner, 'optionalAccess',
|
|
22154
|
+
return _optionalChain([owner, 'optionalAccess', _727 => _727.type]) === _chunkNJV3LIDEcjs.OWNER_TYPE.ADMIN ? "Admin" : "You";
|
|
22089
22155
|
}
|
|
22090
22156
|
function getOwnerAvatar(owner) {
|
|
22091
|
-
return _nullishCoalesce(_optionalChain([owner, 'optionalAccess',
|
|
22157
|
+
return _nullishCoalesce(_optionalChain([owner, 'optionalAccess', _728 => _728.user, 'optionalAccess', _729 => _729.image, 'optionalAccess', _730 => _730.imageUrl]), () => ( void 0));
|
|
22092
22158
|
}
|
|
22093
22159
|
function pushStandaloneMessages(processedMessages, msg, messageDataArray) {
|
|
22094
22160
|
messageDataArray.forEach((data) => {
|
|
@@ -22280,7 +22346,7 @@ function applyHistoryEvent(event, accumulator, approvalStatuses, options, escala
|
|
|
22280
22346
|
event.offerId,
|
|
22281
22347
|
event.text,
|
|
22282
22348
|
event.origin,
|
|
22283
|
-
_nullishCoalesce(_optionalChain([escalationOfferStates, 'optionalAccess',
|
|
22349
|
+
_nullishCoalesce(_optionalChain([escalationOfferStates, 'optionalAccess', _731 => _731[event.offerId]]), () => ( "pending"))
|
|
22284
22350
|
);
|
|
22285
22351
|
break;
|
|
22286
22352
|
case "ticket-escalated":
|
|
@@ -22314,7 +22380,7 @@ function applyHistoryEvent(event, accumulator, approvalStatuses, options, escala
|
|
|
22314
22380
|
);
|
|
22315
22381
|
break;
|
|
22316
22382
|
case "escalation-offer-resolved":
|
|
22317
|
-
_optionalChain([offerResolutions, 'optionalAccess',
|
|
22383
|
+
_optionalChain([offerResolutions, 'optionalAccess', _732 => _732.set, 'call', _733 => _733(event.offerId, {
|
|
22318
22384
|
status: event.status,
|
|
22319
22385
|
resolvedByName: event.resolvedByName
|
|
22320
22386
|
})]);
|
|
@@ -22378,7 +22444,7 @@ function applyHistoryEvent(event, accumulator, approvalStatuses, options, escala
|
|
|
22378
22444
|
}
|
|
22379
22445
|
}
|
|
22380
22446
|
} else {
|
|
22381
|
-
_optionalChain([escalatedApprovals, 'optionalAccess',
|
|
22447
|
+
_optionalChain([escalatedApprovals, 'optionalAccess', _734 => _734.set, 'call', _735 => _735(event.requestId, {
|
|
22382
22448
|
command: event.command || "",
|
|
22383
22449
|
explanation: event.explanation,
|
|
22384
22450
|
approvalType,
|
|
@@ -22393,8 +22459,8 @@ function applyHistoryEvent(event, accumulator, approvalStatuses, options, escala
|
|
|
22393
22459
|
const existingStatus = approvalStatuses[requestId];
|
|
22394
22460
|
const status = existingStatus || event.status;
|
|
22395
22461
|
const resolvedByName = event.resolvedByName;
|
|
22396
|
-
const escalatedData = _optionalChain([escalatedApprovals, 'optionalAccess',
|
|
22397
|
-
if (_optionalChain([escalatedData, 'optionalAccess',
|
|
22462
|
+
const escalatedData = _optionalChain([escalatedApprovals, 'optionalAccess', _736 => _736.get, 'call', _737 => _737(requestId)]);
|
|
22463
|
+
if (_optionalChain([escalatedData, 'optionalAccess', _738 => _738.toolCalls]) && escalatedData.toolCalls.length > 0) {
|
|
22398
22464
|
if (batchApprovalsEnabled) {
|
|
22399
22465
|
accumulator.addApprovalBatch(
|
|
22400
22466
|
requestId,
|
|
@@ -22416,7 +22482,7 @@ function applyHistoryEvent(event, accumulator, approvalStatuses, options, escala
|
|
|
22416
22482
|
);
|
|
22417
22483
|
}
|
|
22418
22484
|
}
|
|
22419
|
-
_optionalChain([escalatedApprovals, 'optionalAccess',
|
|
22485
|
+
_optionalChain([escalatedApprovals, 'optionalAccess', _739 => _739.delete, 'call', _740 => _740(requestId)]);
|
|
22420
22486
|
break;
|
|
22421
22487
|
}
|
|
22422
22488
|
if (escalatedData) {
|
|
@@ -22425,7 +22491,7 @@ function applyHistoryEvent(event, accumulator, approvalStatuses, options, escala
|
|
|
22425
22491
|
explanation: escalatedData.explanation,
|
|
22426
22492
|
approvalType: escalatedData.approvalType
|
|
22427
22493
|
});
|
|
22428
|
-
_optionalChain([escalatedApprovals, 'optionalAccess',
|
|
22494
|
+
_optionalChain([escalatedApprovals, 'optionalAccess', _741 => _741.delete, 'call', _742 => _742(requestId)]);
|
|
22429
22495
|
}
|
|
22430
22496
|
const before = accumulator.getSegments();
|
|
22431
22497
|
const after = accumulator.updateApprovalStatus(requestId, status, resolvedByName);
|
|
@@ -22517,14 +22583,14 @@ function processHistoricalMessages(messages, options = {}) {
|
|
|
22517
22583
|
pushStandaloneMessages(processedMessages, msg, messageDataArray);
|
|
22518
22584
|
return;
|
|
22519
22585
|
}
|
|
22520
|
-
const isUserMessage = _optionalChain([msg, 'access',
|
|
22586
|
+
const isUserMessage = _optionalChain([msg, 'access', _743 => _743.owner, 'optionalAccess', _744 => _744.type]) === _chunkNJV3LIDEcjs.OWNER_TYPE.CLIENT || _optionalChain([msg, 'access', _745 => _745.owner, 'optionalAccess', _746 => _746.type]) === _chunkNJV3LIDEcjs.OWNER_TYPE.ADMIN;
|
|
22521
22587
|
if (isUserMessage) {
|
|
22522
22588
|
flushAssistantMessage();
|
|
22523
|
-
const userAuthorType = _optionalChain([msg, 'access',
|
|
22589
|
+
const userAuthorType = _optionalChain([msg, 'access', _747 => _747.owner, 'optionalAccess', _748 => _748.type]) === _chunkNJV3LIDEcjs.OWNER_TYPE.ADMIN ? "admin" : "user";
|
|
22524
22590
|
messageDataArray.forEach((data) => {
|
|
22525
22591
|
if (data.type === MESSAGE_TYPE.TEXT && "text" in data && data.text) {
|
|
22526
22592
|
const rawContext = data.contextItems;
|
|
22527
|
-
const contextItems = Array.isArray(rawContext) ? rawContext.filter((c) => typeof _optionalChain([c, 'optionalAccess',
|
|
22593
|
+
const contextItems = Array.isArray(rawContext) ? rawContext.filter((c) => typeof _optionalChain([c, 'optionalAccess', _749 => _749.type]) === "string" && typeof _optionalChain([c, 'optionalAccess', _750 => _750.id]) === "string").map((c) => ({ type: c.type, id: c.id, label: c.id })) : void 0;
|
|
22528
22594
|
processedMessages.push({
|
|
22529
22595
|
id: msg.id,
|
|
22530
22596
|
role: "user",
|
|
@@ -22571,7 +22637,7 @@ function processHistoricalMessages(messages, options = {}) {
|
|
|
22571
22637
|
});
|
|
22572
22638
|
const nextMsg = messages[index + 1];
|
|
22573
22639
|
const isLastMessage = index === messages.length - 1;
|
|
22574
|
-
const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access',
|
|
22640
|
+
const nextIsFromUser = nextMsg && (_optionalChain([nextMsg, 'access', _751 => _751.owner, 'optionalAccess', _752 => _752.type]) === _chunkNJV3LIDEcjs.OWNER_TYPE.CLIENT || _optionalChain([nextMsg, 'access', _753 => _753.owner, 'optionalAccess', _754 => _754.type]) === _chunkNJV3LIDEcjs.OWNER_TYPE.ADMIN);
|
|
22575
22641
|
if (isLastMessage || nextIsFromUser) {
|
|
22576
22642
|
flushAssistantMessage();
|
|
22577
22643
|
}
|
|
@@ -22954,7 +23020,7 @@ function useNatsChatAdapter(config, options = {}) {
|
|
|
22954
23020
|
const connectionState = !active || !dialogId ? "connected" : connectedForDialog === dialogId ? "connected" : "connecting";
|
|
22955
23021
|
const sendMessage = _react.useCallback.call(void 0,
|
|
22956
23022
|
async (text2, sendOptions) => {
|
|
22957
|
-
const hidden = _nullishCoalesce(_optionalChain([sendOptions, 'optionalAccess',
|
|
23023
|
+
const hidden = _nullishCoalesce(_optionalChain([sendOptions, 'optionalAccess', _755 => _755.hidden]), () => ( false));
|
|
22958
23024
|
mutate((r) => r.pushOptimisticSend(text2, hidden));
|
|
22959
23025
|
await publishUserMessage(text2, { hidden, dialogId });
|
|
22960
23026
|
},
|
|
@@ -23047,11 +23113,11 @@ function useNatsChatAdapter(config, options = {}) {
|
|
|
23047
23113
|
// Tokens: live `token_usage` frame / dialog snapshot (`dialogTokenUsage`).
|
|
23048
23114
|
// contextWindow uses the dialog's `contextSize` (the "X / Y" denominator,
|
|
23049
23115
|
// matching the /mingo page). cacheHitRate/breakdown are SSE-only → null.
|
|
23050
|
-
currentProvider: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess',
|
|
23051
|
-
currentModelLabel: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess',
|
|
23052
|
-
currentContextWindowMaxTokens: _nullishCoalesce(_nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess',
|
|
23053
|
-
currentInputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess',
|
|
23054
|
-
currentOutputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess',
|
|
23116
|
+
currentProvider: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _756 => _756.provider]), () => ( modelProvider)), () => ( null)),
|
|
23117
|
+
currentModelLabel: _nullishCoalesce(_nullishCoalesce(_optionalChain([liveModel, 'optionalAccess', _757 => _757.modelLabel]), () => ( modelLabel)), () => ( null)),
|
|
23118
|
+
currentContextWindowMaxTokens: _nullishCoalesce(_nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _758 => _758.contextSize]), () => ( _optionalChain([liveModel, 'optionalAccess', _759 => _759.contextWindowMaxTokens]))), () => ( null)),
|
|
23119
|
+
currentInputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _760 => _760.inputTokensSize]), () => ( null)),
|
|
23120
|
+
currentOutputTokens: _nullishCoalesce(_optionalChain([dialogTokenUsage, 'optionalAccess', _761 => _761.outputTokensSize]), () => ( null)),
|
|
23055
23121
|
currentCacheHitRatePct: null,
|
|
23056
23122
|
currentUsageBreakdown: null,
|
|
23057
23123
|
// Dialog management
|
|
@@ -23173,7 +23239,7 @@ function useUnifiedChat(options) {
|
|
|
23173
23239
|
[]
|
|
23174
23240
|
);
|
|
23175
23241
|
const displayRefForward = _react.useCallback.call(void 0,
|
|
23176
|
-
(ref) => _optionalChain([activeStateRef, 'access',
|
|
23242
|
+
(ref) => _optionalChain([activeStateRef, 'access', _762 => _762.current, 'access', _763 => _763.displayRef, 'optionalCall', _764 => _764(ref)]),
|
|
23177
23243
|
[]
|
|
23178
23244
|
);
|
|
23179
23245
|
const displayRef = activeState.displayRef ? displayRefForward : void 0;
|
|
@@ -23183,7 +23249,7 @@ function useUnifiedChat(options) {
|
|
|
23183
23249
|
const renameDialog = _react.useCallback.call(void 0, (id, title) => activeStateRef.current.renameDialog(id, title), []);
|
|
23184
23250
|
const archiveDialog = _react.useCallback.call(void 0, (id) => activeStateRef.current.archiveDialog(id), []);
|
|
23185
23251
|
const loadMoreDialogs = _react.useCallback.call(void 0, () => activeStateRef.current.loadMoreDialogs(), []);
|
|
23186
|
-
const setDialogScope = _react.useCallback.call(void 0, (scope) => _optionalChain([activeStateRef, 'access',
|
|
23252
|
+
const setDialogScope = _react.useCallback.call(void 0, (scope) => _optionalChain([activeStateRef, 'access', _765 => _765.current, 'access', _766 => _766.setDialogScope, 'optionalCall', _767 => _767(scope)]), []);
|
|
23187
23253
|
const reloadDialogs = _react.useCallback.call(void 0, () => activeStateRef.current.reloadDialogs(), []);
|
|
23188
23254
|
const loadMoreMessages = _react.useCallback.call(void 0, () => activeStateRef.current.loadMoreMessages(), []);
|
|
23189
23255
|
const approveRequest = _react.useCallback.call(void 0, (requestId) => activeStateRef.current.approveRequest(requestId), []);
|
|
@@ -23293,19 +23359,19 @@ function turnRequestKeys(content) {
|
|
|
23293
23359
|
if (!Array.isArray(content)) return keys;
|
|
23294
23360
|
for (const seg of content) {
|
|
23295
23361
|
if (seg.type === "tool_execution") {
|
|
23296
|
-
const id = _optionalChain([seg, 'access',
|
|
23362
|
+
const id = _optionalChain([seg, 'access', _768 => _768.data, 'optionalAccess', _769 => _769.toolExecutionRequestId]);
|
|
23297
23363
|
if (id) keys.add(id);
|
|
23298
23364
|
} else if (seg.type === "approval_request") {
|
|
23299
|
-
const id = _optionalChain([seg, 'access',
|
|
23365
|
+
const id = _optionalChain([seg, 'access', _770 => _770.data, 'optionalAccess', _771 => _771.requestId]);
|
|
23300
23366
|
if (id) keys.add(id);
|
|
23301
23367
|
} else if (seg.type === "escalation_offer") {
|
|
23302
|
-
const id = _optionalChain([seg, 'access',
|
|
23368
|
+
const id = _optionalChain([seg, 'access', _772 => _772.data, 'optionalAccess', _773 => _773.offerId]);
|
|
23303
23369
|
if (id) keys.add(id);
|
|
23304
23370
|
} else if (seg.type === "approval_batch") {
|
|
23305
23371
|
const data = seg.data;
|
|
23306
|
-
if (_optionalChain([data, 'optionalAccess',
|
|
23307
|
-
for (const call of _nullishCoalesce(_optionalChain([data, 'optionalAccess',
|
|
23308
|
-
if (_optionalChain([call, 'optionalAccess',
|
|
23372
|
+
if (_optionalChain([data, 'optionalAccess', _774 => _774.approvalRequestId])) keys.add(data.approvalRequestId);
|
|
23373
|
+
for (const call of _nullishCoalesce(_optionalChain([data, 'optionalAccess', _775 => _775.toolCalls]), () => ( []))) {
|
|
23374
|
+
if (_optionalChain([call, 'optionalAccess', _776 => _776.toolExecutionRequestId])) keys.add(call.toolExecutionRequestId);
|
|
23309
23375
|
}
|
|
23310
23376
|
}
|
|
23311
23377
|
}
|
|
@@ -23390,18 +23456,18 @@ function mergeHistoryWithRealtime(input) {
|
|
|
23390
23456
|
}
|
|
23391
23457
|
}
|
|
23392
23458
|
const trailing = processedHistory[processedHistory.length - 1];
|
|
23393
|
-
const historyTrailingAssistant = _optionalChain([trailing, 'optionalAccess',
|
|
23394
|
-
const historyBatchId = historyTrailingAssistant && Array.isArray(historyTrailingAssistant.content) ? _nullishCoalesce(_optionalChain([historyTrailingAssistant, 'access',
|
|
23459
|
+
const historyTrailingAssistant = _optionalChain([trailing, 'optionalAccess', _777 => _777.role]) === "assistant" ? trailing : null;
|
|
23460
|
+
const historyBatchId = historyTrailingAssistant && Array.isArray(historyTrailingAssistant.content) ? _nullishCoalesce(_optionalChain([historyTrailingAssistant, 'access', _778 => _778.content, 'access', _779 => _779.find, 'call', _780 => _780((s) => s.type === "approval_batch"), 'optionalAccess', _781 => _781.data, 'optionalAccess', _782 => _782.approvalRequestId]), () => ( null)) : null;
|
|
23395
23461
|
let processedToUse = processedHistory;
|
|
23396
23462
|
const pinnedSyntheticIds = /* @__PURE__ */ new Set();
|
|
23397
23463
|
const droppedSyntheticIds = /* @__PURE__ */ new Set();
|
|
23398
23464
|
if (historyBatchId) {
|
|
23399
23465
|
const batchTwins = existingMessages.filter(
|
|
23400
|
-
(m) => m.role === "assistant" && Array.isArray(m.content) && m.content.some((s) => s.type === "approval_batch" && _optionalChain([s, 'access',
|
|
23466
|
+
(m) => m.role === "assistant" && Array.isArray(m.content) && m.content.some((s) => s.type === "approval_batch" && _optionalChain([s, 'access', _783 => _783.data, 'optionalAccess', _784 => _784.approvalRequestId]) === historyBatchId)
|
|
23401
23467
|
);
|
|
23402
23468
|
const existingWithSameBatch = _nullishCoalesce(batchTwins.find((m) => m.id === streamingMessageId), () => ( batchTwins[batchTwins.length - 1]));
|
|
23403
23469
|
if (existingWithSameBatch && Array.isArray(existingWithSameBatch.content)) {
|
|
23404
|
-
const histSize = Array.isArray(_optionalChain([historyTrailingAssistant, 'optionalAccess',
|
|
23470
|
+
const histSize = Array.isArray(_optionalChain([historyTrailingAssistant, 'optionalAccess', _785 => _785.content])) ? historyTrailingAssistant.content.length : 0;
|
|
23405
23471
|
const realtimeSize = existingWithSameBatch.content.length;
|
|
23406
23472
|
if (existingWithSameBatch.id === streamingMessageId || realtimeSize > histSize) {
|
|
23407
23473
|
processedToUse = processedHistory.slice(0, -1);
|
|
@@ -23434,9 +23500,9 @@ function mergeHistoryWithRealtime(input) {
|
|
|
23434
23500
|
const trailingAssistantText = lastProcessed && lastProcessed.role === "assistant" ? assistantAnswerText(lastProcessed.content) : "";
|
|
23435
23501
|
const windowSignals = collectTwinSignals(processedToUse);
|
|
23436
23502
|
const seenUserSyntheticByContent = /* @__PURE__ */ new Map();
|
|
23437
|
-
const isInWindow = (m) => processedIds.has(m.id) || (_nullishCoalesce(_optionalChain([rawHistoryIds, 'optionalAccess',
|
|
23503
|
+
const isInWindow = (m) => processedIds.has(m.id) || (_nullishCoalesce(_optionalChain([rawHistoryIds, 'optionalAccess', _786 => _786.has, 'call', _787 => _787(m.id)]), () => ( false)));
|
|
23438
23504
|
const firstWindowIndex = existingMessages.findIndex(isInWindow);
|
|
23439
|
-
const isPersistedOlder = (m) => !isClientMintedId(m.id) && (_nullishCoalesce(_optionalChain([m, 'access',
|
|
23505
|
+
const isPersistedOlder = (m) => !isClientMintedId(m.id) && (_nullishCoalesce(_optionalChain([m, 'access', _788 => _788.timestamp, 'optionalAccess', _789 => _789.getTime, 'call', _790 => _790()]), () => ( 0))) <= historyFetchedAt;
|
|
23440
23506
|
let lastOlderPersistedIndex = -1;
|
|
23441
23507
|
if (firstWindowIndex < 0) {
|
|
23442
23508
|
for (const [index, m] of existingMessages.entries()) {
|
|
@@ -23454,7 +23520,7 @@ function mergeHistoryWithRealtime(input) {
|
|
|
23454
23520
|
} else if (pm.role === "assistant") {
|
|
23455
23521
|
windowHasUnstampedAssistant = true;
|
|
23456
23522
|
}
|
|
23457
|
-
const time = _optionalChain([pm, 'access',
|
|
23523
|
+
const time = _optionalChain([pm, 'access', _791 => _791.timestamp, 'optionalAccess', _792 => _792.getTime, 'call', _793 => _793()]);
|
|
23458
23524
|
if (typeof time === "number" && time < windowMinTime) windowMinTime = time;
|
|
23459
23525
|
}
|
|
23460
23526
|
const threadHasClientMintedRow = existingMessages.some((m) => isClientMintedId(m.id));
|
|
@@ -23472,14 +23538,14 @@ function mergeHistoryWithRealtime(input) {
|
|
|
23472
23538
|
const verdict = twinVerdict(windowSignals, m);
|
|
23473
23539
|
return verdict === "unknown" ? !seqCanMislead(m) : verdict === "distinct";
|
|
23474
23540
|
}
|
|
23475
|
-
const time = _optionalChain([m, 'access',
|
|
23541
|
+
const time = _optionalChain([m, 'access', _794 => _794.timestamp, 'optionalAccess', _795 => _795.getTime, 'call', _796 => _796()]);
|
|
23476
23542
|
if (typeof time !== "number" || time > historyFetchedAt) return false;
|
|
23477
23543
|
if (!Number.isFinite(windowMinTime) || time >= windowMinTime) return false;
|
|
23478
23544
|
return twinVerdict(windowSignals, m) === "distinct";
|
|
23479
23545
|
};
|
|
23480
23546
|
const keepRealtime = (m) => {
|
|
23481
23547
|
if (m.role === "user" && isOptimisticId(m.id) && typeof m.content === "string") {
|
|
23482
|
-
const canBeInSnapshot = (_nullishCoalesce(_optionalChain([m, 'access',
|
|
23548
|
+
const canBeInSnapshot = (_nullishCoalesce(_optionalChain([m, 'access', _797 => _797.timestamp, 'optionalAccess', _798 => _798.getTime, 'call', _799 => _799()]), () => ( 0))) <= historyFetchedAt;
|
|
23483
23549
|
return !(canBeInSnapshot && windowSignals.userContents.has(userTwinKey(m)));
|
|
23484
23550
|
}
|
|
23485
23551
|
if (isSyntheticRealtimeId(m.id) && m.id !== streamingMessageId) {
|
|
@@ -23504,7 +23570,7 @@ function mergeHistoryWithRealtime(input) {
|
|
|
23504
23570
|
} else if (typeof m.streamSeq === "number") {
|
|
23505
23571
|
covered = historyMaxStreamSeq > 0 && historyMaxStreamSeq >= m.streamSeq;
|
|
23506
23572
|
} else {
|
|
23507
|
-
covered = historyCoversRealtime !== null ? historyCoversRealtime : (_nullishCoalesce(_optionalChain([m, 'access',
|
|
23573
|
+
covered = historyCoversRealtime !== null ? historyCoversRealtime : (_nullishCoalesce(_optionalChain([m, 'access', _800 => _800.timestamp, 'optionalAccess', _801 => _801.getTime, 'call', _802 => _802()]), () => ( 0))) <= historyFetchedAt;
|
|
23508
23574
|
}
|
|
23509
23575
|
if (covered) return false;
|
|
23510
23576
|
}
|
|
@@ -23599,7 +23665,7 @@ function normalizeHistoricalMessageData(md) {
|
|
|
23599
23665
|
function isHistoricalUserTurn(m) {
|
|
23600
23666
|
return !!m.owner;
|
|
23601
23667
|
}
|
|
23602
|
-
var isTextSegment = (d) => _optionalChain([d, 'optionalAccess',
|
|
23668
|
+
var isTextSegment = (d) => _optionalChain([d, 'optionalAccess', _803 => _803.type]) === "TEXT" && typeof d.text === "string";
|
|
23603
23669
|
var THINK_MS = 550;
|
|
23604
23670
|
var TOKEN_MS = 55;
|
|
23605
23671
|
var USER_MS = 480;
|
|
@@ -23696,8 +23762,8 @@ function useResizablePanelSize({
|
|
|
23696
23762
|
}) : null,
|
|
23697
23763
|
[enabled, storageKey]
|
|
23698
23764
|
);
|
|
23699
|
-
const [held, setChosen] = _react.useState.call(void 0, () => ({ storage, size: _nullishCoalesce(_optionalChain([storage, 'optionalAccess',
|
|
23700
|
-
const chosen = held.storage === storage ? held : { storage, size: _nullishCoalesce(_optionalChain([storage, 'optionalAccess',
|
|
23765
|
+
const [held, setChosen] = _react.useState.call(void 0, () => ({ storage, size: _nullishCoalesce(_optionalChain([storage, 'optionalAccess', _804 => _804.load, 'call', _805 => _805(), 'optionalAccess', _806 => _806.size]), () => ( null)) }));
|
|
23766
|
+
const chosen = held.storage === storage ? held : { storage, size: _nullishCoalesce(_optionalChain([storage, 'optionalAccess', _807 => _807.load, 'call', _808 => _808(), 'optionalAccess', _809 => _809.size]), () => ( null)) };
|
|
23701
23767
|
if (chosen !== held) setChosen(chosen);
|
|
23702
23768
|
const chosenSize = chosen.size;
|
|
23703
23769
|
const clampSize = _react.useCallback.call(void 0,
|
|
@@ -23713,7 +23779,7 @@ function useResizablePanelSize({
|
|
|
23713
23779
|
(next) => {
|
|
23714
23780
|
const nextSize = Math.round(clampSize(next));
|
|
23715
23781
|
setChosen({ storage, size: nextSize });
|
|
23716
|
-
_optionalChain([storage, 'optionalAccess',
|
|
23782
|
+
_optionalChain([storage, 'optionalAccess', _810 => _810.save, 'call', _811 => _811({ size: nextSize })]);
|
|
23717
23783
|
},
|
|
23718
23784
|
[clampSize, storage]
|
|
23719
23785
|
);
|
|
@@ -24303,7 +24369,7 @@ function useChatDialogManager({
|
|
|
24303
24369
|
const handleConfirmRestore = _react.useCallback.call(void 0, async () => {
|
|
24304
24370
|
if (restoreTarget) {
|
|
24305
24371
|
try {
|
|
24306
|
-
await _optionalChain([unarchiveDialog, 'optionalCall',
|
|
24372
|
+
await _optionalChain([unarchiveDialog, 'optionalCall', _812 => _812(restoreTarget.id)]);
|
|
24307
24373
|
} catch (err) {
|
|
24308
24374
|
console.error("[useChatDialogManager] unarchive failed:", err);
|
|
24309
24375
|
return;
|
|
@@ -24314,7 +24380,7 @@ function useChatDialogManager({
|
|
|
24314
24380
|
setRestoreTarget(null);
|
|
24315
24381
|
}, [restoreTarget, unarchiveDialog]);
|
|
24316
24382
|
const hostDialog = hostActiveDialog != null && hostActiveDialog.id === activeDialogId ? hostActiveDialog : void 0;
|
|
24317
|
-
const isViewingArchived = viewingArchivedId != null && viewingArchivedId === activeDialogId || _optionalChain([hostDialog, 'optionalAccess',
|
|
24383
|
+
const isViewingArchived = viewingArchivedId != null && viewingArchivedId === activeDialogId || _optionalChain([hostDialog, 'optionalAccess', _813 => _813.archived]) === true;
|
|
24318
24384
|
const handleBack = _react.useCallback.call(void 0, () => {
|
|
24319
24385
|
const wasArchived = isViewingArchived;
|
|
24320
24386
|
setViewingArchivedId(null);
|
|
@@ -24870,7 +24936,7 @@ function EmbeddableChatInner({
|
|
|
24870
24936
|
}),
|
|
24871
24937
|
[commandsUrl]
|
|
24872
24938
|
);
|
|
24873
|
-
const headerUserName = _optionalChain([identityUser, 'optionalAccess',
|
|
24939
|
+
const headerUserName = _optionalChain([identityUser, 'optionalAccess', _814 => _814.name, 'optionalAccess', _815 => _815.trim, 'call', _816 => _816()]) || [_optionalChain([identityUser, 'optionalAccess', _817 => _817.firstName]), _optionalChain([identityUser, 'optionalAccess', _818 => _818.lastName])].filter(Boolean).join(" ").trim() || _optionalChain([userDisplayName, 'optionalAccess', _819 => _819.trim, 'call', _820 => _820()]) || void 0;
|
|
24874
24940
|
const effectiveModes = _react.useMemo.call(void 0, () => {
|
|
24875
24941
|
if (modes) return modes;
|
|
24876
24942
|
const guideOptions = tableIdForDocumentType ? { tableIdForDocumentType } : {};
|
|
@@ -24885,7 +24951,7 @@ function EmbeddableChatInner({
|
|
|
24885
24951
|
if (controlledActiveMode === void 0) {
|
|
24886
24952
|
setUncontrolledActiveMode(next);
|
|
24887
24953
|
}
|
|
24888
|
-
_optionalChain([onActiveModeChange, 'optionalCall',
|
|
24954
|
+
_optionalChain([onActiveModeChange, 'optionalCall', _821 => _821(next)]);
|
|
24889
24955
|
},
|
|
24890
24956
|
[controlledActiveMode, onActiveModeChange]
|
|
24891
24957
|
);
|
|
@@ -24912,7 +24978,7 @@ function EmbeddableChatInner({
|
|
|
24912
24978
|
);
|
|
24913
24979
|
const effectiveAssistantName = emptyStateConfig.name;
|
|
24914
24980
|
const effectiveAssistantIcon = emptyStateConfig.icon;
|
|
24915
|
-
const headerAssistantName = _nullishCoalesce(effectiveAssistantName, () => ( (typeof _optionalChain([guideWelcome, 'optionalAccess',
|
|
24981
|
+
const headerAssistantName = _nullishCoalesce(effectiveAssistantName, () => ( (typeof _optionalChain([guideWelcome, 'optionalAccess', _822 => _822.title]) === "string" ? guideWelcome.title : null)));
|
|
24916
24982
|
const {
|
|
24917
24983
|
messages: rawMessages,
|
|
24918
24984
|
isLoading: chatLoading,
|
|
@@ -24969,8 +25035,8 @@ function EmbeddableChatInner({
|
|
|
24969
25035
|
const mingoCaps = _react.useMemo.call(void 0,
|
|
24970
25036
|
() => ({
|
|
24971
25037
|
...dialogCapabilities,
|
|
24972
|
-
canRename: _nullishCoalesce(_optionalChain([dialogCapabilities, 'optionalAccess',
|
|
24973
|
-
canArchive: _nullishCoalesce(_optionalChain([dialogCapabilities, 'optionalAccess',
|
|
25038
|
+
canRename: _nullishCoalesce(_optionalChain([dialogCapabilities, 'optionalAccess', _823 => _823.canRename]), () => ( false)),
|
|
25039
|
+
canArchive: _nullishCoalesce(_optionalChain([dialogCapabilities, 'optionalAccess', _824 => _824.canArchive]), () => ( false))
|
|
24974
25040
|
}),
|
|
24975
25041
|
[dialogCapabilities]
|
|
24976
25042
|
);
|
|
@@ -24985,7 +25051,7 @@ function EmbeddableChatInner({
|
|
|
24985
25051
|
void sendMessage(guidePendingPrompt).catch((err) => {
|
|
24986
25052
|
console.error("[EmbeddableChat] guide launcher prompt failed:", err);
|
|
24987
25053
|
});
|
|
24988
|
-
_optionalChain([onGuidePromptConsumed, 'optionalCall',
|
|
25054
|
+
_optionalChain([onGuidePromptConsumed, 'optionalCall', _825 => _825()]);
|
|
24989
25055
|
}, [guidePendingPrompt, activeMode, sendMessage, onGuidePromptConsumed]);
|
|
24990
25056
|
const {
|
|
24991
25057
|
attachments: stagedAttachments,
|
|
@@ -24996,7 +25062,7 @@ function EmbeddableChatInner({
|
|
|
24996
25062
|
clear: clearAttachments
|
|
24997
25063
|
} = useChatAttachments();
|
|
24998
25064
|
const { panelRef: galleryPanelRef, modal: galleryModal } = useChatAttachmentImageGallery();
|
|
24999
|
-
const contextMaxItems = _nullishCoalesce(_optionalChain([contextPicker, 'optionalAccess',
|
|
25065
|
+
const contextMaxItems = _nullishCoalesce(_optionalChain([contextPicker, 'optionalAccess', _826 => _826.maxItems]), () => ( 10));
|
|
25000
25066
|
const contextPickerForMode = activeMode === "mingo" ? contextPicker : void 0;
|
|
25001
25067
|
const [contextItems, setContextItems] = _react.useState.call(void 0, NO_CONTEXT_ITEMS);
|
|
25002
25068
|
const [contextPickerOpen, setContextPickerOpen] = _react.useState.call(void 0, false);
|
|
@@ -25025,10 +25091,10 @@ function EmbeddableChatInner({
|
|
|
25025
25091
|
}, [composerKey, clearAttachments]);
|
|
25026
25092
|
const mentionMarkerByType = _react.useMemo.call(void 0, () => {
|
|
25027
25093
|
const m = /* @__PURE__ */ new Map();
|
|
25028
|
-
for (const t of _nullishCoalesce(_optionalChain([contextPicker, 'optionalAccess',
|
|
25094
|
+
for (const t of _nullishCoalesce(_optionalChain([contextPicker, 'optionalAccess', _827 => _827.entityTypes]), () => ( []))) if (t.marker) m.set(t.type, t.marker);
|
|
25029
25095
|
return m;
|
|
25030
|
-
}, [_optionalChain([contextPicker, 'optionalAccess',
|
|
25031
|
-
const contextEntityTypes = _optionalChain([contextPicker, 'optionalAccess',
|
|
25096
|
+
}, [_optionalChain([contextPicker, 'optionalAccess', _828 => _828.entityTypes])]);
|
|
25097
|
+
const contextEntityTypes = _optionalChain([contextPicker, 'optionalAccess', _829 => _829.entityTypes]);
|
|
25032
25098
|
const resolveContextIcon = _react.useMemo.call(void 0, () => {
|
|
25033
25099
|
const byType = /* @__PURE__ */ new Map();
|
|
25034
25100
|
for (const t of _nullishCoalesce(contextEntityTypes, () => ( []))) byType.set(t.type, t.icon);
|
|
@@ -25040,7 +25106,7 @@ function EmbeddableChatInner({
|
|
|
25040
25106
|
if (mentionActiveRef.current) {
|
|
25041
25107
|
if (contextItems.some((p) => `${p.type}:${p.id}` === key)) return;
|
|
25042
25108
|
if (contextItems.length >= contextMaxItems) return;
|
|
25043
|
-
_optionalChain([chatInputRef, 'access',
|
|
25109
|
+
_optionalChain([chatInputRef, 'access', _830 => _830.current, 'optionalAccess', _831 => _831.commitMention, 'call', _832 => _832(mentionTokenOf(key, mentionMarkerByType), {
|
|
25044
25110
|
label: item.label,
|
|
25045
25111
|
icon: resolveContextIcon(item)
|
|
25046
25112
|
})]);
|
|
@@ -25063,9 +25129,9 @@ function EmbeddableChatInner({
|
|
|
25063
25129
|
setContextItems((prev) => prev.filter((p) => `${p.type}:${p.id}` !== key));
|
|
25064
25130
|
if (mentionKeysRef.current.has(key)) {
|
|
25065
25131
|
mentionKeysRef.current.delete(key);
|
|
25066
|
-
const cur = _nullishCoalesce(_optionalChain([chatInputRef, 'access',
|
|
25132
|
+
const cur = _nullishCoalesce(_optionalChain([chatInputRef, 'access', _833 => _833.current, 'optionalAccess', _834 => _834.getValue, 'call', _835 => _835()]), () => ( ""));
|
|
25067
25133
|
const next = cur.replace(`@${mentionTokenOf(key, mentionMarkerByType)}`, "").replace(/\s{2,}/g, " ").trimStart();
|
|
25068
|
-
_optionalChain([chatInputRef, 'access',
|
|
25134
|
+
_optionalChain([chatInputRef, 'access', _836 => _836.current, 'optionalAccess', _837 => _837.setValue, 'call', _838 => _838(next)]);
|
|
25069
25135
|
}
|
|
25070
25136
|
},
|
|
25071
25137
|
[mentionMarkerByType]
|
|
@@ -25087,7 +25153,7 @@ function EmbeddableChatInner({
|
|
|
25087
25153
|
}, []);
|
|
25088
25154
|
const closeContextPicker = _react.useCallback.call(void 0, () => {
|
|
25089
25155
|
if (mentionActiveRef.current) {
|
|
25090
|
-
_optionalChain([chatInputRef, 'access',
|
|
25156
|
+
_optionalChain([chatInputRef, 'access', _839 => _839.current, 'optionalAccess', _840 => _840.removeMentionTrigger, 'call', _841 => _841()]);
|
|
25091
25157
|
}
|
|
25092
25158
|
setContextPickerOpen(false);
|
|
25093
25159
|
setMentionQuery(null);
|
|
@@ -25124,8 +25190,8 @@ function EmbeddableChatInner({
|
|
|
25124
25190
|
[effectiveAssistantIcon]
|
|
25125
25191
|
);
|
|
25126
25192
|
const [timestampCache] = _react.useState.call(void 0, () => /* @__PURE__ */ new Map());
|
|
25127
|
-
const guideUserName = activeMode === "guide" ? [_optionalChain([identityUser, 'optionalAccess',
|
|
25128
|
-
const guideUserAvatar = activeMode === "guide" ? _optionalChain([identityUser, 'optionalAccess',
|
|
25193
|
+
const guideUserName = activeMode === "guide" ? [_optionalChain([identityUser, 'optionalAccess', _842 => _842.firstName]), _optionalChain([identityUser, 'optionalAccess', _843 => _843.lastName])].filter(Boolean).join(" ").trim() || _optionalChain([identityUser, 'optionalAccess', _844 => _844.name, 'optionalAccess', _845 => _845.trim, 'call', _846 => _846()]) || void 0 : void 0;
|
|
25194
|
+
const guideUserAvatar = activeMode === "guide" ? _optionalChain([identityUser, 'optionalAccess', _847 => _847.avatarUrl, 'optionalAccess', _848 => _848.trim, 'call', _849 => _849()]) || void 0 : void 0;
|
|
25129
25195
|
const messages = _react.useMemo.call(void 0, () => {
|
|
25130
25196
|
const options = { userName: guideUserName, userAvatar: guideUserAvatar, timestampCache };
|
|
25131
25197
|
const mapped = rawMessages.map((m) => mapHostMessage(m, options));
|
|
@@ -25328,7 +25394,7 @@ function EmbeddableChatInner({
|
|
|
25328
25394
|
_react.useEffect.call(void 0, () => {
|
|
25329
25395
|
if (!panelBoundary || typeof ResizeObserver === "undefined") return void 0;
|
|
25330
25396
|
const ro = new ResizeObserver((entries) => {
|
|
25331
|
-
const w = _optionalChain([entries, 'access',
|
|
25397
|
+
const w = _optionalChain([entries, 'access', _850 => _850[0], 'optionalAccess', _851 => _851.contentRect, 'optionalAccess', _852 => _852.width]);
|
|
25332
25398
|
if (typeof w === "number") setCanSplit(w >= splitMinWidth);
|
|
25333
25399
|
});
|
|
25334
25400
|
ro.observe(panelBoundary);
|
|
@@ -25374,18 +25440,18 @@ function EmbeddableChatInner({
|
|
|
25374
25440
|
const stackedListView = isMingoMode && !hasConversation && !archiveOpen && !wideMingo && !composeOpen && !emptyListSkipped;
|
|
25375
25441
|
const headerShowBack = hasConversation || guideCanReturnToMingo;
|
|
25376
25442
|
const freshConversationTitle = isGuideEmpty ? _nullishCoalesce(headerAssistantName, () => ( "Mingo Guide")) : "New Chat";
|
|
25377
|
-
const headerTitle = hasConversation ? _optionalChain([activeDialog, 'optionalAccess',
|
|
25443
|
+
const headerTitle = hasConversation ? _optionalChain([activeDialog, 'optionalAccess', _853 => _853.title]) || freshConversationTitle : isGuideEmpty ? freshConversationTitle : "Current Chats";
|
|
25378
25444
|
const headerBackAriaLabel = hasConversation ? isViewingArchived ? "Back to archive" : "Back" : "Back to Mingo";
|
|
25379
25445
|
const headerOnBack = hasConversation ? handleBack : () => handleActiveModeChange("mingo");
|
|
25380
25446
|
const headerOnRestore = isViewingArchived && unarchiveDialog && activeDialog ? () => setRestoreTarget(activeDialog) : void 0;
|
|
25381
25447
|
const headerOnRename = activeDialogId && activeDialog && mingoCaps.canRename ? () => setRenameTarget(activeDialog) : void 0;
|
|
25382
25448
|
const headerOnArchive = activeDialogId && activeDialog && mingoCaps.canArchive ? () => setArchiveTarget(activeDialog) : void 0;
|
|
25383
|
-
const headerOnCopyLink = activeDialogId && activeDialog && mingoCaps.onCopyLink ? () => _optionalChain([mingoCaps, 'access',
|
|
25384
|
-
const headerOnCompact = activeDialogId && activeDialog && mingoCaps.compactDialog ? () => _optionalChain([mingoCaps, 'access',
|
|
25449
|
+
const headerOnCopyLink = activeDialogId && activeDialog && mingoCaps.onCopyLink ? () => _optionalChain([mingoCaps, 'access', _854 => _854.onCopyLink, 'optionalCall', _855 => _855(activeDialog)]) : void 0;
|
|
25450
|
+
const headerOnCompact = activeDialogId && activeDialog && mingoCaps.compactDialog ? () => _optionalChain([mingoCaps, 'access', _856 => _856.compactDialog, 'optionalCall', _857 => _857(activeDialog)]) : void 0;
|
|
25385
25451
|
const headerOnOpenArchive = fetchArchivedDialogs ? openArchive : void 0;
|
|
25386
|
-
const headerOwner = hasConversation ? _optionalChain([activeDialog, 'optionalAccess',
|
|
25387
|
-
const headerPersonName = _optionalChain([headerOwner, 'optionalAccess',
|
|
25388
|
-
const headerPersonAvatarUrl = headerOwner ? _optionalChain([headerOwner, 'access',
|
|
25452
|
+
const headerOwner = hasConversation ? _optionalChain([activeDialog, 'optionalAccess', _858 => _858.owner]) : void 0;
|
|
25453
|
+
const headerPersonName = _optionalChain([headerOwner, 'optionalAccess', _859 => _859.name, 'optionalAccess', _860 => _860.trim, 'call', _861 => _861()]) || headerUserName;
|
|
25454
|
+
const headerPersonAvatarUrl = headerOwner ? _optionalChain([headerOwner, 'access', _862 => _862.avatarUrl, 'optionalAccess', _863 => _863.trim, 'call', _864 => _864()]) || void 0 : _optionalChain([identityUser, 'optionalAccess', _865 => _865.avatarUrl, 'optionalAccess', _866 => _866.trim, 'call', _867 => _867()]) || _optionalChain([userAvatarUrl, 'optionalAccess', _868 => _868.trim, 'call', _869 => _869()]) || void 0;
|
|
25389
25455
|
const headerAvatar = headerPersonName || headerPersonAvatarUrl ? { name: headerPersonName, avatarUrl: headerPersonAvatarUrl } : void 0;
|
|
25390
25456
|
const handleNewChat = _react.useCallback.call(void 0, () => {
|
|
25391
25457
|
resetToNewChat();
|
|
@@ -25764,7 +25830,7 @@ function EmbeddableChatInner({
|
|
|
25764
25830
|
onNewChat: () => setComposeOpen(true),
|
|
25765
25831
|
onExpand: onExpand && (() => {
|
|
25766
25832
|
const last = lastDialogIdRef.current;
|
|
25767
|
-
const target = last && dialogs.some((d) => d.id === last) ? last : _optionalChain([dialogs, 'access',
|
|
25833
|
+
const target = last && dialogs.some((d) => d.id === last) ? last : _optionalChain([dialogs, 'access', _870 => _870[0], 'optionalAccess', _871 => _871.id]);
|
|
25768
25834
|
if (archiveOpen) closeArchive();
|
|
25769
25835
|
if (target) handleSelectDialog(target);
|
|
25770
25836
|
else handleNewChat();
|
|
@@ -25871,9 +25937,9 @@ function EmbeddableChatInner({
|
|
|
25871
25937
|
subtitle: _nullishCoalesce(effectiveGreeting, () => ( void 0)),
|
|
25872
25938
|
subtitleLoading: emptyStateLoading,
|
|
25873
25939
|
...guideWelcome,
|
|
25874
|
-
title: _nullishCoalesce(effectiveAssistantName, () => ( _optionalChain([guideWelcome, 'optionalAccess',
|
|
25875
|
-
icon: _nullishCoalesce(effectiveAssistantIcon, () => ( _optionalChain([guideWelcome, 'optionalAccess',
|
|
25876
|
-
quickActions: agentConfigUrl && guideSuggestedActions.length > 0 ? guideSuggestedActions : _nullishCoalesce(_optionalChain([guideWelcome, 'optionalAccess',
|
|
25940
|
+
title: _nullishCoalesce(effectiveAssistantName, () => ( _optionalChain([guideWelcome, 'optionalAccess', _872 => _872.title]))),
|
|
25941
|
+
icon: _nullishCoalesce(effectiveAssistantIcon, () => ( _optionalChain([guideWelcome, 'optionalAccess', _873 => _873.icon]))),
|
|
25942
|
+
quickActions: agentConfigUrl && guideSuggestedActions.length > 0 ? guideSuggestedActions : _nullishCoalesce(_optionalChain([guideWelcome, 'optionalAccess', _874 => _874.quickActions]), () => ( guideSuggestedActions)),
|
|
25877
25943
|
onQuickAction: (action) => {
|
|
25878
25944
|
setQuickActionPreview(null);
|
|
25879
25945
|
handleSend(_nullishCoalesce(action.prompt, () => ( action.label)));
|
|
@@ -25948,8 +26014,8 @@ function EmbeddableChatInner({
|
|
|
25948
26014
|
selectedContextItems: contextItems,
|
|
25949
26015
|
onToggleContextItem: toggleContextItem,
|
|
25950
26016
|
onRemoveContextItem: removeContextItem,
|
|
25951
|
-
contextMemoryItems: _optionalChain([contextMemory, 'optionalAccess',
|
|
25952
|
-
onRemoveContextMemoryItem: _optionalChain([contextMemory, 'optionalAccess',
|
|
26017
|
+
contextMemoryItems: _optionalChain([contextMemory, 'optionalAccess', _875 => _875.items]),
|
|
26018
|
+
onRemoveContextMemoryItem: _optionalChain([contextMemory, 'optionalAccess', _876 => _876.onRemove]),
|
|
25953
26019
|
contextPickerOpen,
|
|
25954
26020
|
onOpenContextPicker: openContextPicker,
|
|
25955
26021
|
onCloseContextPicker: closeContextPicker,
|
|
@@ -26162,7 +26228,7 @@ var GROUPS = [
|
|
|
26162
26228
|
}
|
|
26163
26229
|
];
|
|
26164
26230
|
function maskKey(key) {
|
|
26165
|
-
const prefix = _nullishCoalesce(_optionalChain([/^fpk_[a-z0-9-]+_/i, 'access',
|
|
26231
|
+
const prefix = _nullishCoalesce(_optionalChain([/^fpk_[a-z0-9-]+_/i, 'access', _877 => _877.exec, 'call', _878 => _878(key), 'optionalAccess', _879 => _879[0]]), () => ( ""));
|
|
26166
26232
|
return key.length - prefix.length <= 8 ? `${prefix}\u2022\u2022\u2022\u2022` : `${prefix}\u2026${key.slice(-4)}`;
|
|
26167
26233
|
}
|
|
26168
26234
|
function HeaderName({ children }) {
|
|
@@ -26199,8 +26265,8 @@ function ProxyCredentialsForm({ description, saved }) {
|
|
|
26199
26265
|
const errors = _react.useMemo.call(void 0, () => {
|
|
26200
26266
|
const out = {};
|
|
26201
26267
|
for (const { field } of _chunkULWVKHSIcjs.EMBED_PROXY_OPTIONAL_HEADERS) {
|
|
26202
|
-
const value = _optionalChain([optional, 'access',
|
|
26203
|
-
const message = value ? _optionalChain([OPTIONAL_FIELD_COPY, 'access',
|
|
26268
|
+
const value = _optionalChain([optional, 'access', _880 => _880[field], 'optionalAccess', _881 => _881.trim, 'call', _882 => _882()]);
|
|
26269
|
+
const message = value ? _optionalChain([OPTIONAL_FIELD_COPY, 'access', _883 => _883[field], 'access', _884 => _884.validate, 'optionalCall', _885 => _885(value)]) : null;
|
|
26204
26270
|
if (message) out[field] = message;
|
|
26205
26271
|
}
|
|
26206
26272
|
return out;
|
|
@@ -26212,12 +26278,12 @@ function ProxyCredentialsForm({ description, saved }) {
|
|
|
26212
26278
|
...keyForPreview ? [["Authorization", `Bearer ${keyForPreview}`]] : [],
|
|
26213
26279
|
...email.trim() ? [["X-Chat-Act-As", email.trim().toLowerCase()]] : [],
|
|
26214
26280
|
..._chunkULWVKHSIcjs.EMBED_PROXY_OPTIONAL_HEADERS.flatMap(({ field, header }) => {
|
|
26215
|
-
const value = _optionalChain([optional, 'access',
|
|
26281
|
+
const value = _optionalChain([optional, 'access', _886 => _886[field], 'optionalAccess', _887 => _887.trim, 'call', _888 => _888()]);
|
|
26216
26282
|
return value ? [[header, value]] : [];
|
|
26217
26283
|
})
|
|
26218
26284
|
];
|
|
26219
26285
|
const save = () => {
|
|
26220
|
-
const key = secret.trim() || _optionalChain([_chunkULWVKHSIcjs.getEmbedProxyAuth.call(void 0, ), 'optionalAccess',
|
|
26286
|
+
const key = secret.trim() || _optionalChain([_chunkULWVKHSIcjs.getEmbedProxyAuth.call(void 0, ), 'optionalAccess', _889 => _889.secret]);
|
|
26221
26287
|
const actAs = email.trim().toLowerCase();
|
|
26222
26288
|
if (!key || !actAs || hasErrors) {
|
|
26223
26289
|
setStatus(hasErrors ? "Fix the highlighted fields first." : "API key and act-as email are required.");
|
|
@@ -26833,5 +26899,4 @@ function ProxyCredentialsForm({ description, saved }) {
|
|
|
26833
26899
|
|
|
26834
26900
|
|
|
26835
26901
|
|
|
26836
|
-
|
|
26837
|
-
exports.InfoHint = InfoHint; exports.Field = Field; exports.useScrollFade = useScrollFade; exports.ScrollFadeOverlay = ScrollFadeOverlay; exports.ScrollShadow = ScrollShadow; exports.HUBSPOT_DO_NOT_COLLECT_FORM_PROPS = HUBSPOT_DO_NOT_COLLECT_FORM_PROPS; exports.useResizablePanelSize = useResizablePanelSize; exports.PanelResizeHandle = PanelResizeHandle; exports.OVERLAY_BACKDROP_CLASS = OVERLAY_BACKDROP_CLASS; exports.Drawer = Drawer; exports.DrawerTrigger = DrawerTrigger; exports.DrawerClose = DrawerClose; exports.DrawerPortal = DrawerPortal; exports.DrawerOverlay = DrawerOverlay; exports.DrawerContent = DrawerContent; exports.DrawerHeader = DrawerHeader; exports.DrawerTitle = DrawerTitle; exports.DrawerDescription = DrawerDescription; exports.DrawerBody = DrawerBody; exports.DrawerFooter = DrawerFooter; exports.Tabs = Tabs; exports.TabsList = TabsList; exports.TabsTrigger = TabsTrigger; exports.TabsContent = TabsContent; exports.stripInlineMarkdown = stripInlineMarkdown; exports.markdownToPlainText = markdownToPlainText; exports.buildHeadingIdMap = buildHeadingIdMap; exports.useHeadingIdMap = useHeadingIdMap; exports.extractText = extractText; exports.useIsHydrated = useIsHydrated; exports.MermaidDiagram = MermaidDiagram; exports.hasRenderableSrc = hasRenderableSrc; exports.buildStandardLeafRenderers = buildStandardLeafRenderers; exports.SAFE_HTML_TAGS = SAFE_HTML_TAGS; exports.SVG_TAGS = SVG_TAGS; exports.buildEffectiveTagSet = buildEffectiveTagSet; exports.buildSanitizeSchema = buildSanitizeSchema; exports.rehypeStripUnsafe = rehypeStripUnsafe; exports.escapeUnknownHtmlTags = escapeUnknownHtmlTags; exports.cardAwareUrlTransform = cardAwareUrlTransform; exports.splitStreamingBlocks = splitStreamingBlocks; exports.completeStreamingTail = completeStreamingTail; exports.TEXT_SIZE_PRESETS = TEXT_SIZE_PRESETS; exports.resolveTextSizeConfig = resolveTextSizeConfig; exports.NO_BROKEN_LINKS = NO_BROKEN_LINKS; exports.MarkdownEngine = MarkdownEngine; exports.SimpleMarkdownRenderer = SimpleMarkdownRenderer; exports.FullscreenSwitchController = FullscreenSwitchController; exports.SOCIAL_PLATFORM_ALIASES = SOCIAL_PLATFORM_ALIASES; exports.normalizeSocialPlatform = normalizeSocialPlatform; exports.hostMatches = hostMatches; exports.SOCIAL_PLATFORM_ALT_HOSTS = SOCIAL_PLATFORM_ALT_HOSTS; exports.socialPlatformHosts = socialPlatformHosts; exports.classifySocialHost = classifySocialHost; exports.pickSocialLink = pickSocialLink; exports.HoverDropdown = HoverDropdown; exports.ChatAppearanceContext = ChatAppearanceContext; exports.useChatAppearance = useChatAppearance; exports.ApprovalRequestMessage = ApprovalRequestMessage; exports.EscalationOfferMessage = EscalationOfferMessage; exports.AiAssistantInfo = AiAssistantInfo; exports.TicketEscalatedMessage = TicketEscalatedMessage; exports.MESSAGE_TYPE = MESSAGE_TYPE; exports.SCROLL_ANCHOR = SCROLL_ANCHOR; exports.TICKET_EVENT_KIND = TICKET_EVENT_KIND; exports.TicketEventMessage = TicketEventMessage; exports.SystemEventMessage = SystemEventMessage; exports.ContextCompactionDisplay = ContextCompactionDisplay; exports.ThinkingDisplay = ThinkingDisplay; exports.AskDisplay = AskDisplay; exports.ErrorMessageDisplay = ErrorMessageDisplay; exports.MspOrganizationCard = MspOrganizationCard; exports.MspOrganizationCardSkeleton = MspOrganizationCardSkeleton; exports.ChatContainer = ChatContainer; exports.ChatHeader = ChatHeader; exports.ChatContent = ChatContent; exports.ChatFooter = ChatFooter; exports.CONTEXT_ROW_CLASS = CONTEXT_ROW_CLASS; exports.CONTEXT_ICON_CLASS = CONTEXT_ICON_CLASS; exports.CONTEXT_LABEL_CLASS = CONTEXT_LABEL_CLASS; exports.CONTEXT_BACK_CLASS = CONTEXT_BACK_CLASS; exports.CONTEXT_STATE_CLASS = CONTEXT_STATE_CLASS; exports.ContextMenuRow = ContextMenuRow; exports.ContextItemsSkeleton = ContextItemsSkeleton; exports.ContextItemsList = ContextItemsList; exports.ContextErrorBoundary = ContextErrorBoundary; exports.CHAT_CONTEXT_ITEMS_DEFAULT_MAX = CHAT_CONTEXT_ITEMS_DEFAULT_MAX; exports.ChatComposerPlusMenu = ChatComposerPlusMenu; exports.ChatContextPicker = ChatContextPicker; exports.ChatContextChipStrip = ChatContextChipStrip; exports.BlockCard = BlockCard; exports.remarkCardLinks = remarkCardLinks; exports.remarkMentionChips = remarkMentionChips; exports.ToolExecutionDisplay = ToolExecutionDisplay; exports.MemoizedChatMessageEnhanced = MemoizedChatMessageEnhanced; exports.ChatMessageSkeleton = ChatMessageSkeleton; exports.ChatMessageListSkeleton = ChatMessageListSkeleton; exports.ChatMessageList = ChatMessageList; exports.useProxiedImageUrl = useProxiedImageUrl; exports.ChatMessageRow = ChatMessageRow; exports.ChatMessageRowSkeleton = ChatMessageRowSkeleton; exports.getAgentAccent = getAgentAccent; exports.accentFromIdentityIcon = accentFromIdentityIcon; exports.isQuickActionIconSpec = isQuickActionIconSpec; exports.renderQuickActionIcon = renderQuickActionIcon; exports.QuickActionChipSkeleton = QuickActionChipSkeleton; exports.QuickActionChipButton = QuickActionChipButton; exports.QuickActionChipFromData = QuickActionChipFromData; exports.getPlatformProductionUrl = getPlatformProductionUrl; exports.getPlatformUrl = getPlatformUrl; exports.getDeploymentUrl = getDeploymentUrl; exports.isLocalUrl = isLocalUrl; exports.getRequestOrigin = getRequestOrigin; exports.resolveRedirectTarget = resolveRedirectTarget; exports.getAllPlatformBaseDomains = getAllPlatformBaseDomains; exports.AI_PROVIDERS = AI_PROVIDERS; exports.aiProvider = aiProvider; exports.TOKEN_RATE_EMPTY = TOKEN_RATE_EMPTY; exports.formatTokenRate = formatTokenRate; exports.tokenCost = tokenCost; exports.formatTokenAmount = formatTokenAmount; exports.tokensForBalance = tokensForBalance; exports.tokenRateProviderLabel = tokenRateProviderLabel; exports.groupTokenRatesByProvider = groupTokenRatesByProvider; exports.TRIAL_DAYS = TRIAL_DAYS; exports.TRIAL_LABELS = TRIAL_LABELS; exports.SEO_TITLE_MAX_LENGTH = SEO_TITLE_MAX_LENGTH; exports.SEO_DESCRIPTION_MAX_LENGTH = SEO_DESCRIPTION_MAX_LENGTH; exports.BRAND_MARK_SVGS = BRAND_MARK_SVGS; exports.brandMarkDataUri = brandMarkDataUri; exports.DESIGN_DOC_READINESS = DESIGN_DOC_READINESS; exports.DESIGN_DOC_READINESS_DISPLAY = DESIGN_DOC_READINESS_DISPLAY; exports.designDocReadiness = designDocReadiness; exports.formatCompletionLabel = formatCompletionLabel; exports.formatCompletionLabelWithBlockers = formatCompletionLabelWithBlockers; exports.OS_PLATFORMS = OS_PLATFORMS; exports.DEFAULT_OS_PLATFORM = DEFAULT_OS_PLATFORM; exports.isValidEmailDomain = isValidEmailDomain; exports.validateEmailDomain = validateEmailDomain; exports.validateEmailDomainList = validateEmailDomainList; exports.cleanEmailDomain = cleanEmailDomain; exports.getConfidenceColorClass = getConfidenceColorClass; exports.getConfidenceLevel = getConfidenceLevel; exports.getConfidenceBorderClass = getConfidenceBorderClass; exports.getConfidenceTextClass = getConfidenceTextClass; exports.getConfidenceBgClass = getConfidenceBgClass; exports.getConfidenceLabel = getConfidenceLabel; exports.DEV_SECTION_PARAM_KEYS = DEV_SECTION_PARAM_KEYS; exports.devSectionAnchorId = devSectionAnchorId; exports.TICKET_OPEN_PARAM = TICKET_OPEN_PARAM; exports.buildTicketOpenHref = buildTicketOpenHref; exports.normalizeToolType = normalizeToolType; exports.normalizeToolTypeWithFallback = normalizeToolTypeWithFallback; exports.toToolLabel = toToolLabel; exports.isValidToolType = isValidToolType; exports.getToolTypeAliases = getToolTypeAliases; exports.getToolLabel = getToolLabel; exports.ShellTypeValues = ShellTypeValues; exports.SHELL_TYPES = SHELL_TYPES; exports.shellLabels = shellLabels; exports.getShellLabel = getShellLabel; exports.getShellIcon = getShellIcon; exports.BITE_ID_RE = BITE_ID_RE; exports.generateBiteId = generateBiteId; exports.ensureBiteIds = ensureBiteIds; exports.matchBiteElement = matchBiteElement; exports.OSTypeValues = OSTypeValues; exports.OS_TYPES = OS_TYPES; exports.osLabels = osLabels; exports.normalizeOSType = normalizeOSType; exports.getOSLabel = getOSLabel; exports.getOSIcon = getOSIcon; exports.getOSTypeDefinition = getOSTypeDefinition; exports.getOSPlatformId = getOSPlatformId; exports.isOSPlatform = isOSPlatform; exports.DOWNLOAD_PAGE_PATH = DOWNLOAD_PAGE_PATH; exports.resolveMobileStoreUrl = resolveMobileStoreUrl; exports.getCountryPhoneData = getCountryPhoneData; exports.getCountryByCode = getCountryByCode; exports.getCountryByName = getCountryByName; exports.getFlagFromCountryName = getFlagFromCountryName; exports.validatePhoneNumber = validatePhoneNumber; exports.formatPhoneE164 = formatPhoneE164; exports.COMPLIANCE_STANDARDS = COMPLIANCE_STANDARDS; exports.complianceStandardForName = complianceStandardForName; exports.GENERIC_EMAIL_DOMAINS = GENERIC_EMAIL_DOMAINS; exports.extractDomainFromEmail = extractDomainFromEmail; exports.normalizeDomain = normalizeDomain; exports.isGenericDomain = isGenericDomain; exports.hasGenericEmailDomain = hasGenericEmailDomain; exports.isGenericWebsiteDomain = isGenericWebsiteDomain; exports.isDismissedCookieValue = isDismissedCookieValue; exports.readDismissCookie = readDismissCookie; exports.writeDismissCookie = writeDismissCookie; exports.clearDismissCookie = clearDismissCookie; exports.announcementDismissCookieName = announcementDismissCookieName; exports.dismissAnnouncement = dismissAnnouncement; exports.isAnnouncementDismissed = isAnnouncementDismissed; exports.clearAnnouncementDismissals = clearAnnouncementDismissals; exports.clearLegacyAnnouncementCache = clearLegacyAnnouncementCache; exports.WALKTHROUGH_VIDEO_DISMISS_KEY = WALKTHROUGH_VIDEO_DISMISS_KEY; exports.walkthroughDismissCookieName = walkthroughDismissCookieName; exports.isWalkthroughDismissed = isWalkthroughDismissed; exports.dismissWalkthrough = dismissWalkthrough; exports.clearWalkthroughDismissal = clearWalkthroughDismissal; exports.WALKTHROUGH_OPEN_QUERY_PARAM = WALKTHROUGH_OPEN_QUERY_PARAM; exports.withWalkthroughOpenParam = withWalkthroughOpenParam; exports.SOURCE_ICON_NAMES = SOURCE_ICON_NAMES; exports.getSourceIconName = getSourceIconName; exports.SOURCE_LABELS_BY_TABLE = SOURCE_LABELS_BY_TABLE; exports.getSourceLabel = getSourceLabel; exports.DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID = DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID; exports.defaultTableIdForDocumentType = defaultTableIdForDocumentType; exports.DOC_TABLE_TYPES = DOC_TABLE_TYPES; exports.groupsByTable = groupsByTable; exports.recordCountLabel = recordCountLabel; exports.buildGroupedSource = buildGroupedSource; exports.groupSourcesByTable = groupSourcesByTable; exports.formatCitationIndices = formatCitationIndices; exports.createSseSubscription = createSseSubscription; exports.readLeadingDecisionFrame = readLeadingDecisionFrame; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX = CHAT_ATTACHMENT_VIEW_URL_PREFIX; exports.CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM = CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM; exports.ANTHROPIC_SUPPORTED_IMAGE_MIME = ANTHROPIC_SUPPORTED_IMAGE_MIME; exports.buildChatAttachmentViewUrl = buildChatAttachmentViewUrl; exports.escapeMarkdownInline = escapeMarkdownInline; exports.formatChatAttachmentMarkdownForBubble = formatChatAttachmentMarkdownForBubble; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED = CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED; exports.CHAT_ATTACHMENT_MARKDOWN_PATTERN = CHAT_ATTACHMENT_MARKDOWN_PATTERN; exports.stripChatAttachmentMarkdown = stripChatAttachmentMarkdown; exports.AUTO_CONTINUATION_DIRECTIVE_PREFIX = AUTO_CONTINUATION_DIRECTIVE_PREFIX; exports.buildAutoContinuationDirective = buildAutoContinuationDirective; exports.flattenAssistantContent = flattenAssistantContent; exports.SCROLL_ANCHOR_WIRE_KEY = SCROLL_ANCHOR_WIRE_KEY; exports.parseScrollAnchor = parseScrollAnchor; exports.parseWireCommandOverride = parseWireCommandOverride; exports.sanitizeTitleForChat = sanitizeTitleForChat; exports.formatSingularLookupInvocation = formatSingularLookupInvocation; exports.extractEntityIdFilter = extractEntityIdFilter; exports.buildDiscussAddendum = buildDiscussAddendum; exports.clickupTaskUrl = clickupTaskUrl; exports.ANNOUNCEMENT_CTA_DEFAULTS = ANNOUNCEMENT_CTA_DEFAULTS; exports.AVAILABLE_SVG_ICONS = AVAILABLE_SVG_ICONS; exports.releaseTypeOptions = releaseTypeOptions; exports.releaseStatusOptions = releaseStatusOptions; exports.changelogLabels = changelogLabels; exports.SEMVER_REGEX = SEMVER_REGEX; exports.TASK_TYPE_LABELS = TASK_TYPE_LABELS; exports.TASK_TYPE_TEXT_COLORS = TASK_TYPE_TEXT_COLORS; exports.ENTITY_QUOTES_TITLE = ENTITY_QUOTES_TITLE; exports.TMCG_ROLES = TMCG_ROLES; exports.TMCG_ROLE_DISPLAY_NAMES = TMCG_ROLE_DISPLAY_NAMES; exports.ROADMAP_STATUS_OPTIONS = ROADMAP_STATUS_OPTIONS; exports.DELIVERY_TASK_TYPE_OPTIONS = DELIVERY_TASK_TYPE_OPTIONS; exports.TICKET_STATUS_OPTIONS = TICKET_STATUS_OPTIONS; exports.OPENFRAME_DEV_SECTIONS = OPENFRAME_DEV_SECTIONS; exports.openInNewTab = openInNewTab; exports.faqSectionSlug = faqSectionSlug; exports.faqItemAnchor = faqItemAnchor; exports.parseFaqHash = parseFaqHash; exports.DEFAULT_CONTENT_SUFFIXES = DEFAULT_CONTENT_SUFFIXES; exports.makeComposeContentUrl = makeComposeContentUrl; exports.buildDefaultHref = buildDefaultHref; exports.resolveContentHref = resolveContentHref; exports.DEFAULT_FOLDER_INDEX_FILE = DEFAULT_FOLDER_INDEX_FILE; exports.stripFolderIndexFromPath = stripFolderIndexFromPath; exports.findDocNodeByPath = findDocNodeByPath; exports.getDocAncestorNodeIds = getDocAncestorNodeIds; exports.resolveContentFetchPath = resolveContentFetchPath; exports.getInitialExpandedNodeIds = getInitialExpandedNodeIds; exports.getDocSourceDefaultPath = getDocSourceDefaultPath; exports.toDocSlug = toDocSlug; exports.pathToNodeId = pathToNodeId; exports.normalizeDocPath = normalizeDocPath; exports.formatDocName = formatDocName; exports.sortTreeChildren = sortTreeChildren; exports.buildDocumentTree = buildDocumentTree; exports.extractSections = extractSections; exports.SCHEDULING_SLUG_SHAPE = SCHEDULING_SLUG_SHAPE; exports.MAX_MONTH_OFFSET = MAX_MONTH_OFFSET; exports.normalizeSchedulingSlug = normalizeSchedulingSlug; exports.isValidSchedulingSlug = isValidSchedulingSlug; exports.parseSchedulingLinkName = parseSchedulingLinkName; exports.isListedSchedulingName = isListedSchedulingName; exports.schedulingAudienceKey = schedulingAudienceKey; exports.SECTION_HERO_ICON_CLASS = SECTION_HERO_ICON_CLASS; exports.FIRST_TOUCH_ATTRIBUTION_KEY = FIRST_TOUCH_ATTRIBUTION_KEY; exports.sanitizeLandingUrl = sanitizeLandingUrl; exports.parseAttributionFromUrl = parseAttributionFromUrl; exports.captureFirstTouchAttribution = captureFirstTouchAttribution; exports.getFirstTouchAttribution = getFirstTouchAttribution; exports.withFirstTouchAttribution = withFirstTouchAttribution; exports.clearFirstTouchAttribution = clearFirstTouchAttribution; exports.ODS_SPACING_TOKENS = ODS_SPACING_TOKENS; exports.ODS_SPACING_TOKEN_PATTERN = ODS_SPACING_TOKEN_PATTERN; exports.ODS_SPACING_PROPS = ODS_SPACING_PROPS; exports.TAILWIND_STEP_TO_ODS_TOKEN = TAILWIND_STEP_TO_ODS_TOKEN; exports.CSV_CONTENT_TYPE = CSV_CONTENT_TYPE; exports.csvEscape = csvEscape; exports.toCsv = toCsv; exports.copyrightLine = copyrightLine; exports.isValidPathPattern = isValidPathPattern; exports.matchesPathPattern = matchesPathPattern; exports.pathMatchesAny = pathMatchesAny; exports.ASK_AI_OPEN_EVENT = ASK_AI_OPEN_EVENT; exports.openAskAi = openAskAi; exports.MingoAiButton = MingoAiButton; exports.AskPrompts = AskPrompts; exports.AskCard = AskCard; exports.ASK_PROMPTS_DEFAULT_COUNT = ASK_PROMPTS_DEFAULT_COUNT; exports.buildAskPromptsUrl = buildAskPromptsUrl; exports.assistantAvailable = assistantAvailable; exports.useAskPrompts = useAskPrompts; exports.useAssistantOpen = useAssistantOpen; exports.useShownAskPrompts = useShownAskPrompts; exports.useShownAskPromptIds = useShownAskPromptIds; exports.AssistantAskPrompts = AssistantAskPrompts; exports.useMarqueeSync = useMarqueeSync; exports.getMarqueeTrackOffset = getMarqueeTrackOffset; exports.getMarqueeAppliedOffset = getMarqueeAppliedOffset; exports.getMarqueeCloneTwin = getMarqueeCloneTwin; exports.MarqueeWallFades = MarqueeWallFades; exports.MarqueeWall = MarqueeWall; exports.WALL_SKELETON_LABEL_CH = WALL_SKELETON_LABEL_CH; exports.interleave = interleave; exports.QuickActionWall = QuickActionWall; exports.QuickActionMarquee = QuickActionMarquee; exports.ChatTicketItem = ChatTicketItem; exports.ChatTicketList = ChatTicketList; exports.MingoOnboardingCardSkeleton = MingoOnboardingCardSkeleton; exports.MingoOnboardingListSkeleton = MingoOnboardingListSkeleton; exports.ChatListEmptyState = ChatListEmptyState; exports.MingoChatHistorySkeleton = MingoChatHistorySkeleton; exports.MingoChatHistory = MingoChatHistory; exports.MingoWelcome = MingoWelcome; exports.GuideWelcome = GuideWelcome; exports.GuideModeBanner = GuideModeBanner; exports.ChatNavSidebar = ChatNavSidebar; exports.ChatListItem = ChatListItem; exports.MingoArchiveList = MingoArchiveList; exports.ChatHeaderIconButton = ChatHeaderIconButton; exports.MingoChatHeader = MingoChatHeader; exports.ChatHeaderSearchField = ChatHeaderSearchField; exports.MingoChatRail = MingoChatRail; exports.TabSelector = TabSelector; exports.MingoHistoryRail = MingoHistoryRail; exports.RenameChatModal = RenameChatModal; exports.ArchiveChatModal = ArchiveChatModal; exports.UnarchiveChatModal = UnarchiveChatModal; exports.ChatDialogModals = ChatDialogModals; exports.ChatPanelHeader = ChatPanelHeader; exports.CHAT_ATTACHMENT_MIME_TYPES = CHAT_ATTACHMENT_MIME_TYPES; exports.CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER = CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER; exports.ChatAttachmentAddButton = ChatAttachmentAddButton; exports.ChatAttachmentChipStrip = ChatAttachmentChipStrip; exports.ChatContextMemoryBar = ChatContextMemoryBar; exports.HoverCard = HoverCard; exports.HoverCardTrigger = HoverCardTrigger; exports.HoverCardContent = HoverCardContent; exports.ModelDisplay = ModelDisplay; exports.ModelDisplaySkeleton = ModelDisplaySkeleton; exports.ChatComposer = ChatComposer; exports.ChatArchivePage = ChatArchivePage; exports.DialogListItem = DialogListItem; exports.ChatSidebar = ChatSidebar; exports.ChatTopNavigation = ChatTopNavigation; exports.OnboardingCarousel = OnboardingCarousel; exports.NEW_TAB_FEATURES = NEW_TAB_FEATURES; exports.isModifierClick = isModifierClick; exports.stripSameOriginToPath = stripSameOriginToPath; exports.resolveExternalNavigation = resolveExternalNavigation; exports.executeNavigation = executeNavigation; exports.executeNavigationImperative = executeNavigationImperative; exports.handleChatNavClick = handleChatNavClick; exports.useNavLinkViaRuntime = useNavLinkViaRuntime; exports.NavLinkAnchorViaRuntime = NavLinkAnchorViaRuntime; exports.SourceActionButton = SourceActionButton; exports.getCaptionsUrl = getCaptionsUrl; exports.rebaseCaptionsUrl = rebaseCaptionsUrl; exports.buildCaptionsUrl = buildCaptionsUrl; exports.getEntityCaptionUrls = getEntityCaptionUrls; exports.getEntityCaptionUrlsById = getEntityCaptionUrlsById; exports.captionsEntityTypeForDocType = captionsEntityTypeForDocType; exports.useCaptions = useCaptions; exports.UserDisplay = UserDisplay; exports.CardHitLayer = CardHitLayer; exports.STRIP_CELL_MAX_WIDTH = STRIP_CELL_MAX_WIDTH; exports.CardsStrip = CardsStrip; exports.RATIO_GRID_CLASS = RATIO_GRID_CLASS; exports.RATIO_TO_CSS_ASPECT = RATIO_TO_CSS_ASPECT; exports.RatioTabs = RatioTabs; exports.detectAspectRatio = detectAspectRatio; exports.ratioToCategory = ratioToCategory; exports.groupByAspectRatio = groupByAspectRatio; exports.VideoBitesStrip = VideoBitesStrip; exports.VideoBiteCard = VideoBiteCard; exports.EntityVideoSection = EntityVideoSection; exports.ChatVideoEntityCard = ChatVideoEntityCard; exports.UnifiedSkeleton = UnifiedSkeleton; exports.TextSkeleton = TextSkeleton; exports.InteractiveSkeleton = InteractiveSkeleton; exports.MediaSkeleton = MediaSkeleton; exports.designDocPeople = designDocPeople; exports.designDocMetaLine = designDocMetaLine; exports.DesignDocCardSkeleton = DesignDocCardSkeleton; exports.DesignDocCard = DesignDocCard; exports.GitHubActivityCard = GitHubActivityCard; exports.GitHubActivityCardSkeleton = GitHubActivityCardSkeleton; exports.SlackMessageCard = SlackMessageCard; exports.SlackMessageCardSkeleton = SlackMessageCardSkeleton; exports.HubspotTicketCard = HubspotTicketCard; exports.HubspotTicketCardSkeleton = HubspotTicketCardSkeleton; exports.DataRoomDocCard = DataRoomDocCard; exports.DataRoomDocCardSkeleton = DataRoomDocCardSkeleton; exports.CampaignCardAdmin = CampaignCardAdmin; exports.CampaignCardAdminSkeleton = CampaignCardAdminSkeleton; exports.GenericEntityCard = GenericEntityCard; exports.GenericEntityCardSkeleton = GenericEntityCardSkeleton; exports.getVendorLogo = getVendorLogo; exports.VendorIcon = VendorIcon; exports.useChatCardItem = useChatCardItem; exports.readFetchedCardTitle = readFetchedCardTitle; exports.readFetchedCardPath = readFetchedCardPath; exports.resolveFetchedCardHref = resolveFetchedCardHref; exports.resolveSourceRowCTA = resolveSourceRowCTA; exports.resolveSourceIcon = resolveSourceIcon; exports.resolveCardDestination = resolveCardDestination; exports.chatCardLabel = chatCardLabel; exports.ChatCardLoader = ChatCardLoader; exports.renderChatInlineEntityCard = renderChatInlineEntityCard; exports.NETWORK_CONFIG = NETWORK_CONFIG; exports.EMPTY_DIALOG_CAPABILITIES = EMPTY_DIALOG_CAPABILITIES; exports.useChunkCatchup = useChunkCatchup; exports.useScriptedStream = useScriptedStream; exports.RESYNC_AFTER_HIDDEN_MS = RESYNC_AFTER_HIDDEN_MS; exports.useJetStreamDialogSubscription = useJetStreamDialogSubscription; exports.useNatsDialogSubscription = useNatsDialogSubscription; exports.buildNatsWsUrl = buildNatsWsUrl; exports.fetchSlashCommands = fetchSlashCommands; exports.useSlashCommands = useSlashCommands; exports.useSlashCommandRegistry = useSlashCommandRegistry; exports.fetchEmptyStateConfig = fetchEmptyStateConfig; exports.useEmptyStateConfig = useEmptyStateConfig; exports.useChatAttachments = useChatAttachments; exports.useChatAttachmentImageGallery = useChatAttachmentImageGallery; exports.ChatIdentityProvider = ChatIdentityProvider; exports.useChatIdentity = useChatIdentity; exports.useCloseOnNavigation = useCloseOnNavigation; exports.useSSE = useSSE; exports.useChat = useChat; exports.approvalDisplaysInline = approvalDisplaysInline; exports.appendToTrailingAssistant = appendToTrailingAssistant; exports.upsertTrailingCompaction = upsertTrailingCompaction; exports.applyToolExecutionToMessages = applyToolExecutionToMessages; exports.MessageSegmentAccumulator = MessageSegmentAccumulator; exports.createMessageSegmentAccumulator = createMessageSegmentAccumulator; exports.createEmptyTurnMeta = createEmptyTurnMeta; exports.createChatStreamReducer = createChatStreamReducer; exports.DEFAULT_DIALOG_SIDE = DEFAULT_DIALOG_SIDE; exports.DEFAULT_MAX_REDUCERS = DEFAULT_MAX_REDUCERS; exports.MAX_PENDING_RETAIN_KEYS = MAX_PENDING_RETAIN_KEYS; exports.createChatDialogStore = createChatDialogStore; exports.createDeltaBatcher = createDeltaBatcher; exports.useChatStreamReducer = useChatStreamReducer; exports.createChatConversationsApi = createChatConversationsApi; exports.buildDiscussPrompt = buildDiscussPrompt; exports.useManagedDialogList = useManagedDialogList; exports.useSseChatAdapter = useSseChatAdapter; exports.extractIncompleteMessageState = extractIncompleteMessageState; exports.extractIncompleteTailState = extractIncompleteTailState; exports.decodeHistoricalMessageData = decodeHistoricalMessageData; exports.processHistoricalMessages = processHistoricalMessages; exports.extractErrorMessages = extractErrorMessages; exports.processHistoricalMessagesWithErrors = processHistoricalMessagesWithErrors; exports.mapProcessedToUnified = mapProcessedToUnified; exports.historicalToUnified = historicalToUnified; exports.useNatsChatAdapter = useNatsChatAdapter; exports.useStableShallow = useStableShallow; exports.useUnifiedChat = useUnifiedChat; exports.SYNTHETIC_REALTIME_ID_PREFIXES = SYNTHETIC_REALTIME_ID_PREFIXES; exports.flattenMessagePagesChronological = flattenMessagePagesChronological; exports.maxPersistedStreamSeq = maxPersistedStreamSeq; exports.mergeHistoryWithRealtime = mergeHistoryWithRealtime; exports.computeHistoryPrepend = computeHistoryPrepend; exports.CHIP_ACTION_BUTTON_CLASS = CHIP_ACTION_BUTTON_CLASS; exports.chatChipClass = chatChipClass; exports.normalizeHistoricalMessageData = normalizeHistoricalMessageData; exports.isHistoricalUserTurn = isHistoricalUserTurn; exports.buildStreamFrames = buildStreamFrames; exports.MINGO_V2_RAIL_WIDTH = MINGO_V2_RAIL_WIDTH; exports.MINGO_V2_SPLIT_WIDTH = MINGO_V2_SPLIT_WIDTH; exports.EmbeddableChat = EmbeddableChat; exports.ProxyCredentialsPanel = ProxyCredentialsPanel;
|
|
26902
|
+
exports.InfoHint = InfoHint; exports.Field = Field; exports.useScrollFade = useScrollFade; exports.ScrollFadeOverlay = ScrollFadeOverlay; exports.ScrollShadow = ScrollShadow; exports.HUBSPOT_DO_NOT_COLLECT_FORM_PROPS = HUBSPOT_DO_NOT_COLLECT_FORM_PROPS; exports.useResizablePanelSize = useResizablePanelSize; exports.PanelResizeHandle = PanelResizeHandle; exports.OVERLAY_BACKDROP_CLASS = OVERLAY_BACKDROP_CLASS; exports.Drawer = Drawer; exports.DrawerTrigger = DrawerTrigger; exports.DrawerClose = DrawerClose; exports.DrawerPortal = DrawerPortal; exports.DrawerOverlay = DrawerOverlay; exports.DrawerContent = DrawerContent; exports.DrawerHeader = DrawerHeader; exports.DrawerTitle = DrawerTitle; exports.DrawerDescription = DrawerDescription; exports.DrawerBody = DrawerBody; exports.DrawerFooter = DrawerFooter; exports.Tabs = Tabs; exports.TabsList = TabsList; exports.TabsTrigger = TabsTrigger; exports.TabsContent = TabsContent; exports.stripInlineMarkdown = stripInlineMarkdown; exports.markdownToPlainText = markdownToPlainText; exports.buildHeadingIdMap = buildHeadingIdMap; exports.useHeadingIdMap = useHeadingIdMap; exports.extractText = extractText; exports.useIsHydrated = useIsHydrated; exports.MermaidDiagram = MermaidDiagram; exports.hasRenderableSrc = hasRenderableSrc; exports.buildStandardLeafRenderers = buildStandardLeafRenderers; exports.SAFE_HTML_TAGS = SAFE_HTML_TAGS; exports.SVG_TAGS = SVG_TAGS; exports.buildEffectiveTagSet = buildEffectiveTagSet; exports.buildSanitizeSchema = buildSanitizeSchema; exports.rehypeStripUnsafe = rehypeStripUnsafe; exports.escapeUnknownHtmlTags = escapeUnknownHtmlTags; exports.cardAwareUrlTransform = cardAwareUrlTransform; exports.splitStreamingBlocks = splitStreamingBlocks; exports.completeStreamingTail = completeStreamingTail; exports.TEXT_SIZE_PRESETS = TEXT_SIZE_PRESETS; exports.resolveTextSizeConfig = resolveTextSizeConfig; exports.NO_BROKEN_LINKS = NO_BROKEN_LINKS; exports.MarkdownEngine = MarkdownEngine; exports.SimpleMarkdownRenderer = SimpleMarkdownRenderer; exports.FullscreenSwitchController = FullscreenSwitchController; exports.SOCIAL_PLATFORM_ALIASES = SOCIAL_PLATFORM_ALIASES; exports.normalizeSocialPlatform = normalizeSocialPlatform; exports.hostMatches = hostMatches; exports.SOCIAL_PLATFORM_ALT_HOSTS = SOCIAL_PLATFORM_ALT_HOSTS; exports.socialPlatformHosts = socialPlatformHosts; exports.classifySocialHost = classifySocialHost; exports.pickSocialLink = pickSocialLink; exports.HoverDropdown = HoverDropdown; exports.ChatAppearanceContext = ChatAppearanceContext; exports.useChatAppearance = useChatAppearance; exports.ApprovalRequestMessage = ApprovalRequestMessage; exports.EscalationOfferMessage = EscalationOfferMessage; exports.AiAssistantInfo = AiAssistantInfo; exports.TicketEscalatedMessage = TicketEscalatedMessage; exports.MESSAGE_TYPE = MESSAGE_TYPE; exports.SCROLL_ANCHOR = SCROLL_ANCHOR; exports.TICKET_EVENT_KIND = TICKET_EVENT_KIND; exports.TicketEventMessage = TicketEventMessage; exports.SystemEventMessage = SystemEventMessage; exports.ContextCompactionDisplay = ContextCompactionDisplay; exports.ThinkingDisplay = ThinkingDisplay; exports.AskDisplay = AskDisplay; exports.ErrorMessageDisplay = ErrorMessageDisplay; exports.MspOrganizationCard = MspOrganizationCard; exports.MspOrganizationCardSkeleton = MspOrganizationCardSkeleton; exports.ChatContainer = ChatContainer; exports.ChatHeader = ChatHeader; exports.ChatContent = ChatContent; exports.ChatFooter = ChatFooter; exports.CONTEXT_ROW_CLASS = CONTEXT_ROW_CLASS; exports.CONTEXT_ICON_CLASS = CONTEXT_ICON_CLASS; exports.CONTEXT_LABEL_CLASS = CONTEXT_LABEL_CLASS; exports.CONTEXT_BACK_CLASS = CONTEXT_BACK_CLASS; exports.CONTEXT_STATE_CLASS = CONTEXT_STATE_CLASS; exports.ContextMenuRow = ContextMenuRow; exports.ContextItemsSkeleton = ContextItemsSkeleton; exports.ContextItemsList = ContextItemsList; exports.ContextErrorBoundary = ContextErrorBoundary; exports.CHAT_CONTEXT_ITEMS_DEFAULT_MAX = CHAT_CONTEXT_ITEMS_DEFAULT_MAX; exports.ChatComposerPlusMenu = ChatComposerPlusMenu; exports.ChatContextPicker = ChatContextPicker; exports.ChatContextChipStrip = ChatContextChipStrip; exports.BlockCard = BlockCard; exports.remarkCardLinks = remarkCardLinks; exports.remarkMentionChips = remarkMentionChips; exports.ToolExecutionDisplay = ToolExecutionDisplay; exports.MemoizedChatMessageEnhanced = MemoizedChatMessageEnhanced; exports.ChatMessageSkeleton = ChatMessageSkeleton; exports.ChatMessageListSkeleton = ChatMessageListSkeleton; exports.ChatMessageList = ChatMessageList; exports.useProxiedImageUrl = useProxiedImageUrl; exports.ChatMessageRow = ChatMessageRow; exports.ChatMessageRowSkeleton = ChatMessageRowSkeleton; exports.getAgentAccent = getAgentAccent; exports.accentFromIdentityIcon = accentFromIdentityIcon; exports.isQuickActionIconSpec = isQuickActionIconSpec; exports.renderQuickActionIcon = renderQuickActionIcon; exports.QuickActionChipSkeleton = QuickActionChipSkeleton; exports.QuickActionChipButton = QuickActionChipButton; exports.QuickActionChipFromData = QuickActionChipFromData; exports.getPlatformProductionUrl = getPlatformProductionUrl; exports.getPlatformUrl = getPlatformUrl; exports.getDeploymentUrl = getDeploymentUrl; exports.isLocalUrl = isLocalUrl; exports.getRequestOrigin = getRequestOrigin; exports.resolveRedirectTarget = resolveRedirectTarget; exports.getAllPlatformBaseDomains = getAllPlatformBaseDomains; exports.AI_PROVIDERS = AI_PROVIDERS; exports.aiProvider = aiProvider; exports.TOKEN_RATE_EMPTY = TOKEN_RATE_EMPTY; exports.formatTokenRate = formatTokenRate; exports.tokenCost = tokenCost; exports.formatTokenAmount = formatTokenAmount; exports.tokensForBalance = tokensForBalance; exports.tokenRateProviderLabel = tokenRateProviderLabel; exports.groupTokenRatesByProvider = groupTokenRatesByProvider; exports.TRIAL_DAYS = TRIAL_DAYS; exports.TRIAL_LABELS = TRIAL_LABELS; exports.SEO_TITLE_MAX_LENGTH = SEO_TITLE_MAX_LENGTH; exports.SEO_DESCRIPTION_MAX_LENGTH = SEO_DESCRIPTION_MAX_LENGTH; exports.BRAND_MARK_SVGS = BRAND_MARK_SVGS; exports.brandMarkDataUri = brandMarkDataUri; exports.DESIGN_DOC_READINESS = DESIGN_DOC_READINESS; exports.DESIGN_DOC_READINESS_DISPLAY = DESIGN_DOC_READINESS_DISPLAY; exports.designDocReadiness = designDocReadiness; exports.formatCompletionLabel = formatCompletionLabel; exports.formatCompletionLabelWithBlockers = formatCompletionLabelWithBlockers; exports.OS_PLATFORMS = OS_PLATFORMS; exports.DEFAULT_OS_PLATFORM = DEFAULT_OS_PLATFORM; exports.isValidEmailDomain = isValidEmailDomain; exports.validateEmailDomain = validateEmailDomain; exports.validateEmailDomainList = validateEmailDomainList; exports.cleanEmailDomain = cleanEmailDomain; exports.getConfidenceColorClass = getConfidenceColorClass; exports.getConfidenceLevel = getConfidenceLevel; exports.getConfidenceBorderClass = getConfidenceBorderClass; exports.getConfidenceTextClass = getConfidenceTextClass; exports.getConfidenceBgClass = getConfidenceBgClass; exports.getConfidenceLabel = getConfidenceLabel; exports.DEV_SECTION_PARAM_KEYS = DEV_SECTION_PARAM_KEYS; exports.devSectionAnchorId = devSectionAnchorId; exports.TICKET_OPEN_PARAM = TICKET_OPEN_PARAM; exports.buildTicketOpenHref = buildTicketOpenHref; exports.normalizeToolType = normalizeToolType; exports.normalizeToolTypeWithFallback = normalizeToolTypeWithFallback; exports.toToolLabel = toToolLabel; exports.isValidToolType = isValidToolType; exports.getToolTypeAliases = getToolTypeAliases; exports.getToolLabel = getToolLabel; exports.ShellTypeValues = ShellTypeValues; exports.SHELL_TYPES = SHELL_TYPES; exports.shellLabels = shellLabels; exports.getShellLabel = getShellLabel; exports.getShellIcon = getShellIcon; exports.BITE_ID_RE = BITE_ID_RE; exports.generateBiteId = generateBiteId; exports.ensureBiteIds = ensureBiteIds; exports.matchBiteElement = matchBiteElement; exports.OSTypeValues = OSTypeValues; exports.OS_TYPES = OS_TYPES; exports.osLabels = osLabels; exports.normalizeOSType = normalizeOSType; exports.getOSLabel = getOSLabel; exports.getOSIcon = getOSIcon; exports.getOSTypeDefinition = getOSTypeDefinition; exports.getOSPlatformId = getOSPlatformId; exports.isOSPlatform = isOSPlatform; exports.DOWNLOAD_PAGE_PATH = DOWNLOAD_PAGE_PATH; exports.resolveMobileStoreUrl = resolveMobileStoreUrl; exports.getCountryPhoneData = getCountryPhoneData; exports.getCountryByCode = getCountryByCode; exports.getCountryByName = getCountryByName; exports.getFlagFromCountryName = getFlagFromCountryName; exports.validatePhoneNumber = validatePhoneNumber; exports.formatPhoneE164 = formatPhoneE164; exports.COMPLIANCE_STANDARDS = COMPLIANCE_STANDARDS; exports.complianceStandardForName = complianceStandardForName; exports.GENERIC_EMAIL_DOMAINS = GENERIC_EMAIL_DOMAINS; exports.extractDomainFromEmail = extractDomainFromEmail; exports.normalizeDomain = normalizeDomain; exports.isGenericDomain = isGenericDomain; exports.hasGenericEmailDomain = hasGenericEmailDomain; exports.isGenericWebsiteDomain = isGenericWebsiteDomain; exports.isDismissedCookieValue = isDismissedCookieValue; exports.readDismissCookie = readDismissCookie; exports.writeDismissCookie = writeDismissCookie; exports.clearDismissCookie = clearDismissCookie; exports.announcementDismissCookieName = announcementDismissCookieName; exports.dismissAnnouncement = dismissAnnouncement; exports.isAnnouncementDismissed = isAnnouncementDismissed; exports.clearAnnouncementDismissals = clearAnnouncementDismissals; exports.clearLegacyAnnouncementCache = clearLegacyAnnouncementCache; exports.WALKTHROUGH_VIDEO_DISMISS_KEY = WALKTHROUGH_VIDEO_DISMISS_KEY; exports.walkthroughDismissCookieName = walkthroughDismissCookieName; exports.isWalkthroughDismissed = isWalkthroughDismissed; exports.dismissWalkthrough = dismissWalkthrough; exports.clearWalkthroughDismissal = clearWalkthroughDismissal; exports.WALKTHROUGH_OPEN_QUERY_PARAM = WALKTHROUGH_OPEN_QUERY_PARAM; exports.withWalkthroughOpenParam = withWalkthroughOpenParam; exports.SOURCE_ICON_NAMES = SOURCE_ICON_NAMES; exports.getSourceIconName = getSourceIconName; exports.SOURCE_LABELS_BY_TABLE = SOURCE_LABELS_BY_TABLE; exports.getSourceLabel = getSourceLabel; exports.DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID = DEFAULT_DOCUMENT_TYPE_TO_TABLE_ID; exports.defaultTableIdForDocumentType = defaultTableIdForDocumentType; exports.DOC_TABLE_TYPES = DOC_TABLE_TYPES; exports.groupsByTable = groupsByTable; exports.recordCountLabel = recordCountLabel; exports.buildGroupedSource = buildGroupedSource; exports.groupSourcesByTable = groupSourcesByTable; exports.formatCitationIndices = formatCitationIndices; exports.createSseSubscription = createSseSubscription; exports.readLeadingDecisionFrame = readLeadingDecisionFrame; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX = CHAT_ATTACHMENT_VIEW_URL_PREFIX; exports.CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM = CHAT_ATTACHMENT_VIEW_TOKEN_QUERY_PARAM; exports.ANTHROPIC_SUPPORTED_IMAGE_MIME = ANTHROPIC_SUPPORTED_IMAGE_MIME; exports.buildChatAttachmentViewUrl = buildChatAttachmentViewUrl; exports.escapeMarkdownInline = escapeMarkdownInline; exports.formatChatAttachmentMarkdownForBubble = formatChatAttachmentMarkdownForBubble; exports.CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED = CHAT_ATTACHMENT_VIEW_URL_PREFIX_REGEX_ESCAPED; exports.CHAT_ATTACHMENT_MARKDOWN_PATTERN = CHAT_ATTACHMENT_MARKDOWN_PATTERN; exports.stripChatAttachmentMarkdown = stripChatAttachmentMarkdown; exports.AUTO_CONTINUATION_DIRECTIVE_PREFIX = AUTO_CONTINUATION_DIRECTIVE_PREFIX; exports.buildAutoContinuationDirective = buildAutoContinuationDirective; exports.flattenAssistantContent = flattenAssistantContent; exports.SCROLL_ANCHOR_WIRE_KEY = SCROLL_ANCHOR_WIRE_KEY; exports.parseScrollAnchor = parseScrollAnchor; exports.parseWireCommandOverride = parseWireCommandOverride; exports.sanitizeTitleForChat = sanitizeTitleForChat; exports.formatSingularLookupInvocation = formatSingularLookupInvocation; exports.extractEntityIdFilter = extractEntityIdFilter; exports.buildDiscussAddendum = buildDiscussAddendum; exports.clickupTaskUrl = clickupTaskUrl; exports.ANNOUNCEMENT_CTA_DEFAULTS = ANNOUNCEMENT_CTA_DEFAULTS; exports.AVAILABLE_SVG_ICONS = AVAILABLE_SVG_ICONS; exports.releaseTypeOptions = releaseTypeOptions; exports.releaseStatusOptions = releaseStatusOptions; exports.changelogLabels = changelogLabels; exports.SEMVER_REGEX = SEMVER_REGEX; exports.TASK_TYPE_LABELS = TASK_TYPE_LABELS; exports.TASK_TYPE_TEXT_COLORS = TASK_TYPE_TEXT_COLORS; exports.ENTITY_QUOTES_TITLE = ENTITY_QUOTES_TITLE; exports.TMCG_ROLES = TMCG_ROLES; exports.TMCG_ROLE_DISPLAY_NAMES = TMCG_ROLE_DISPLAY_NAMES; exports.ROADMAP_STATUS_OPTIONS = ROADMAP_STATUS_OPTIONS; exports.DELIVERY_TASK_TYPE_OPTIONS = DELIVERY_TASK_TYPE_OPTIONS; exports.TICKET_STATUS_OPTIONS = TICKET_STATUS_OPTIONS; exports.OPENFRAME_DEV_SECTIONS = OPENFRAME_DEV_SECTIONS; exports.openInNewTab = openInNewTab; exports.faqSectionSlug = faqSectionSlug; exports.faqItemAnchor = faqItemAnchor; exports.parseFaqHash = parseFaqHash; exports.DEFAULT_CONTENT_SUFFIXES = DEFAULT_CONTENT_SUFFIXES; exports.makeComposeContentUrl = makeComposeContentUrl; exports.buildDefaultHref = buildDefaultHref; exports.resolveContentHref = resolveContentHref; exports.DEFAULT_FOLDER_INDEX_FILE = DEFAULT_FOLDER_INDEX_FILE; exports.stripFolderIndexFromPath = stripFolderIndexFromPath; exports.findDocNodeByPath = findDocNodeByPath; exports.getDocAncestorNodeIds = getDocAncestorNodeIds; exports.resolveContentFetchPath = resolveContentFetchPath; exports.getInitialExpandedNodeIds = getInitialExpandedNodeIds; exports.getDocSourceDefaultPath = getDocSourceDefaultPath; exports.toDocSlug = toDocSlug; exports.pathToNodeId = pathToNodeId; exports.normalizeDocPath = normalizeDocPath; exports.formatDocName = formatDocName; exports.sortTreeChildren = sortTreeChildren; exports.buildDocumentTree = buildDocumentTree; exports.extractSections = extractSections; exports.SCHEDULING_SLUG_SHAPE = SCHEDULING_SLUG_SHAPE; exports.MAX_MONTH_OFFSET = MAX_MONTH_OFFSET; exports.normalizeSchedulingSlug = normalizeSchedulingSlug; exports.isValidSchedulingSlug = isValidSchedulingSlug; exports.parseSchedulingLinkName = parseSchedulingLinkName; exports.isListedSchedulingName = isListedSchedulingName; exports.schedulingAudienceKey = schedulingAudienceKey; exports.SECTION_HERO_ICON_CLASS = SECTION_HERO_ICON_CLASS; exports.FIRST_TOUCH_ATTRIBUTION_KEY = FIRST_TOUCH_ATTRIBUTION_KEY; exports.sanitizeLandingUrl = sanitizeLandingUrl; exports.parseAttributionFromUrl = parseAttributionFromUrl; exports.captureFirstTouchAttribution = captureFirstTouchAttribution; exports.getFirstTouchAttribution = getFirstTouchAttribution; exports.withFirstTouchAttribution = withFirstTouchAttribution; exports.clearFirstTouchAttribution = clearFirstTouchAttribution; exports.ODS_SPACING_TOKENS = ODS_SPACING_TOKENS; exports.ODS_SPACING_TOKEN_PATTERN = ODS_SPACING_TOKEN_PATTERN; exports.ODS_SPACING_PROPS = ODS_SPACING_PROPS; exports.TAILWIND_STEP_TO_ODS_TOKEN = TAILWIND_STEP_TO_ODS_TOKEN; exports.CSV_CONTENT_TYPE = CSV_CONTENT_TYPE; exports.csvEscape = csvEscape; exports.toCsv = toCsv; exports.copyrightLine = copyrightLine; exports.isValidPathPattern = isValidPathPattern; exports.matchesPathPattern = matchesPathPattern; exports.pathMatchesAny = pathMatchesAny; exports.ASK_AI_OPEN_EVENT = ASK_AI_OPEN_EVENT; exports.openAskAi = openAskAi; exports.MingoAiButton = MingoAiButton; exports.AskPrompts = AskPrompts; exports.AskCard = AskCard; exports.ASK_PROMPTS_DEFAULT_COUNT = ASK_PROMPTS_DEFAULT_COUNT; exports.buildAskPromptsUrl = buildAskPromptsUrl; exports.assistantAvailable = assistantAvailable; exports.useAskPrompts = useAskPrompts; exports.useAssistantOpen = useAssistantOpen; exports.useAskSurface = useAskSurface; exports.AssistantAskPrompts = AssistantAskPrompts; exports.useMarqueeSync = useMarqueeSync; exports.getMarqueeTrackOffset = getMarqueeTrackOffset; exports.getMarqueeAppliedOffset = getMarqueeAppliedOffset; exports.getMarqueeCloneTwin = getMarqueeCloneTwin; exports.MarqueeWallFades = MarqueeWallFades; exports.MarqueeWall = MarqueeWall; exports.WALL_SKELETON_LABEL_CH = WALL_SKELETON_LABEL_CH; exports.interleave = interleave; exports.QuickActionWall = QuickActionWall; exports.QuickActionMarquee = QuickActionMarquee; exports.ChatTicketItem = ChatTicketItem; exports.ChatTicketList = ChatTicketList; exports.MingoOnboardingCardSkeleton = MingoOnboardingCardSkeleton; exports.MingoOnboardingListSkeleton = MingoOnboardingListSkeleton; exports.ChatListEmptyState = ChatListEmptyState; exports.MingoChatHistorySkeleton = MingoChatHistorySkeleton; exports.MingoChatHistory = MingoChatHistory; exports.MingoWelcome = MingoWelcome; exports.GuideWelcome = GuideWelcome; exports.GuideModeBanner = GuideModeBanner; exports.ChatNavSidebar = ChatNavSidebar; exports.ChatListItem = ChatListItem; exports.MingoArchiveList = MingoArchiveList; exports.ChatHeaderIconButton = ChatHeaderIconButton; exports.MingoChatHeader = MingoChatHeader; exports.ChatHeaderSearchField = ChatHeaderSearchField; exports.MingoChatRail = MingoChatRail; exports.TabSelector = TabSelector; exports.MingoHistoryRail = MingoHistoryRail; exports.RenameChatModal = RenameChatModal; exports.ArchiveChatModal = ArchiveChatModal; exports.UnarchiveChatModal = UnarchiveChatModal; exports.ChatDialogModals = ChatDialogModals; exports.ChatPanelHeader = ChatPanelHeader; exports.CHAT_ATTACHMENT_MIME_TYPES = CHAT_ATTACHMENT_MIME_TYPES; exports.CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER = CHAT_ATTACHMENT_CONCURRENT_UPLOADS_PER_USER; exports.ChatAttachmentAddButton = ChatAttachmentAddButton; exports.ChatAttachmentChipStrip = ChatAttachmentChipStrip; exports.ChatContextMemoryBar = ChatContextMemoryBar; exports.HoverCard = HoverCard; exports.HoverCardTrigger = HoverCardTrigger; exports.HoverCardContent = HoverCardContent; exports.ModelDisplay = ModelDisplay; exports.ModelDisplaySkeleton = ModelDisplaySkeleton; exports.ChatComposer = ChatComposer; exports.ChatArchivePage = ChatArchivePage; exports.DialogListItem = DialogListItem; exports.ChatSidebar = ChatSidebar; exports.ChatTopNavigation = ChatTopNavigation; exports.OnboardingCarousel = OnboardingCarousel; exports.NEW_TAB_FEATURES = NEW_TAB_FEATURES; exports.isModifierClick = isModifierClick; exports.stripSameOriginToPath = stripSameOriginToPath; exports.resolveExternalNavigation = resolveExternalNavigation; exports.executeNavigation = executeNavigation; exports.executeNavigationImperative = executeNavigationImperative; exports.handleChatNavClick = handleChatNavClick; exports.useNavLinkViaRuntime = useNavLinkViaRuntime; exports.NavLinkAnchorViaRuntime = NavLinkAnchorViaRuntime; exports.SourceActionButton = SourceActionButton; exports.getCaptionsUrl = getCaptionsUrl; exports.rebaseCaptionsUrl = rebaseCaptionsUrl; exports.buildCaptionsUrl = buildCaptionsUrl; exports.getEntityCaptionUrls = getEntityCaptionUrls; exports.getEntityCaptionUrlsById = getEntityCaptionUrlsById; exports.captionsEntityTypeForDocType = captionsEntityTypeForDocType; exports.useCaptions = useCaptions; exports.UserDisplay = UserDisplay; exports.CardHitLayer = CardHitLayer; exports.STRIP_CELL_MAX_WIDTH = STRIP_CELL_MAX_WIDTH; exports.CardsStrip = CardsStrip; exports.RATIO_GRID_CLASS = RATIO_GRID_CLASS; exports.RATIO_TO_CSS_ASPECT = RATIO_TO_CSS_ASPECT; exports.RatioTabs = RatioTabs; exports.detectAspectRatio = detectAspectRatio; exports.ratioToCategory = ratioToCategory; exports.groupByAspectRatio = groupByAspectRatio; exports.VideoBitesStrip = VideoBitesStrip; exports.VideoBiteCard = VideoBiteCard; exports.EntityVideoSection = EntityVideoSection; exports.ChatVideoEntityCard = ChatVideoEntityCard; exports.UnifiedSkeleton = UnifiedSkeleton; exports.TextSkeleton = TextSkeleton; exports.InteractiveSkeleton = InteractiveSkeleton; exports.MediaSkeleton = MediaSkeleton; exports.designDocPeople = designDocPeople; exports.designDocMetaLine = designDocMetaLine; exports.DesignDocCardSkeleton = DesignDocCardSkeleton; exports.DesignDocCard = DesignDocCard; exports.GitHubActivityCard = GitHubActivityCard; exports.GitHubActivityCardSkeleton = GitHubActivityCardSkeleton; exports.SlackMessageCard = SlackMessageCard; exports.SlackMessageCardSkeleton = SlackMessageCardSkeleton; exports.HubspotTicketCard = HubspotTicketCard; exports.HubspotTicketCardSkeleton = HubspotTicketCardSkeleton; exports.DataRoomDocCard = DataRoomDocCard; exports.DataRoomDocCardSkeleton = DataRoomDocCardSkeleton; exports.CampaignCardAdmin = CampaignCardAdmin; exports.CampaignCardAdminSkeleton = CampaignCardAdminSkeleton; exports.GenericEntityCard = GenericEntityCard; exports.GenericEntityCardSkeleton = GenericEntityCardSkeleton; exports.getVendorLogo = getVendorLogo; exports.VendorIcon = VendorIcon; exports.useChatCardItem = useChatCardItem; exports.readFetchedCardTitle = readFetchedCardTitle; exports.readFetchedCardPath = readFetchedCardPath; exports.resolveFetchedCardHref = resolveFetchedCardHref; exports.resolveSourceRowCTA = resolveSourceRowCTA; exports.resolveSourceIcon = resolveSourceIcon; exports.resolveCardDestination = resolveCardDestination; exports.chatCardLabel = chatCardLabel; exports.ChatCardLoader = ChatCardLoader; exports.renderChatInlineEntityCard = renderChatInlineEntityCard; exports.NETWORK_CONFIG = NETWORK_CONFIG; exports.EMPTY_DIALOG_CAPABILITIES = EMPTY_DIALOG_CAPABILITIES; exports.useChunkCatchup = useChunkCatchup; exports.useScriptedStream = useScriptedStream; exports.RESYNC_AFTER_HIDDEN_MS = RESYNC_AFTER_HIDDEN_MS; exports.useJetStreamDialogSubscription = useJetStreamDialogSubscription; exports.useNatsDialogSubscription = useNatsDialogSubscription; exports.buildNatsWsUrl = buildNatsWsUrl; exports.fetchSlashCommands = fetchSlashCommands; exports.useSlashCommands = useSlashCommands; exports.useSlashCommandRegistry = useSlashCommandRegistry; exports.fetchEmptyStateConfig = fetchEmptyStateConfig; exports.useEmptyStateConfig = useEmptyStateConfig; exports.useChatAttachments = useChatAttachments; exports.useChatAttachmentImageGallery = useChatAttachmentImageGallery; exports.ChatIdentityProvider = ChatIdentityProvider; exports.useChatIdentity = useChatIdentity; exports.useCloseOnNavigation = useCloseOnNavigation; exports.useSSE = useSSE; exports.useChat = useChat; exports.approvalDisplaysInline = approvalDisplaysInline; exports.appendToTrailingAssistant = appendToTrailingAssistant; exports.upsertTrailingCompaction = upsertTrailingCompaction; exports.applyToolExecutionToMessages = applyToolExecutionToMessages; exports.MessageSegmentAccumulator = MessageSegmentAccumulator; exports.createMessageSegmentAccumulator = createMessageSegmentAccumulator; exports.createEmptyTurnMeta = createEmptyTurnMeta; exports.createChatStreamReducer = createChatStreamReducer; exports.DEFAULT_DIALOG_SIDE = DEFAULT_DIALOG_SIDE; exports.DEFAULT_MAX_REDUCERS = DEFAULT_MAX_REDUCERS; exports.MAX_PENDING_RETAIN_KEYS = MAX_PENDING_RETAIN_KEYS; exports.createChatDialogStore = createChatDialogStore; exports.createDeltaBatcher = createDeltaBatcher; exports.useChatStreamReducer = useChatStreamReducer; exports.createChatConversationsApi = createChatConversationsApi; exports.buildDiscussPrompt = buildDiscussPrompt; exports.useManagedDialogList = useManagedDialogList; exports.useSseChatAdapter = useSseChatAdapter; exports.extractIncompleteMessageState = extractIncompleteMessageState; exports.extractIncompleteTailState = extractIncompleteTailState; exports.decodeHistoricalMessageData = decodeHistoricalMessageData; exports.processHistoricalMessages = processHistoricalMessages; exports.extractErrorMessages = extractErrorMessages; exports.processHistoricalMessagesWithErrors = processHistoricalMessagesWithErrors; exports.mapProcessedToUnified = mapProcessedToUnified; exports.historicalToUnified = historicalToUnified; exports.useNatsChatAdapter = useNatsChatAdapter; exports.useStableShallow = useStableShallow; exports.useUnifiedChat = useUnifiedChat; exports.SYNTHETIC_REALTIME_ID_PREFIXES = SYNTHETIC_REALTIME_ID_PREFIXES; exports.flattenMessagePagesChronological = flattenMessagePagesChronological; exports.maxPersistedStreamSeq = maxPersistedStreamSeq; exports.mergeHistoryWithRealtime = mergeHistoryWithRealtime; exports.computeHistoryPrepend = computeHistoryPrepend; exports.CHIP_ACTION_BUTTON_CLASS = CHIP_ACTION_BUTTON_CLASS; exports.chatChipClass = chatChipClass; exports.normalizeHistoricalMessageData = normalizeHistoricalMessageData; exports.isHistoricalUserTurn = isHistoricalUserTurn; exports.buildStreamFrames = buildStreamFrames; exports.MINGO_V2_RAIL_WIDTH = MINGO_V2_RAIL_WIDTH; exports.MINGO_V2_SPLIT_WIDTH = MINGO_V2_SPLIT_WIDTH; exports.EmbeddableChat = EmbeddableChat; exports.ProxyCredentialsPanel = ProxyCredentialsPanel;
|