bloby-bot 0.62.0 → 0.62.3
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-bloby/assets/{bloby-B7qT-PZC.js → bloby-Dmxp6AFI.js} +4 -4
- package/dist-bloby/assets/globals-CvipyZv-.css +2 -0
- package/dist-bloby/assets/globals-W8wOsf_q.js +26 -0
- package/dist-bloby/assets/{highlighted-body-OFNGDK62-BmTRKsNK.js → highlighted-body-OFNGDK62-mdecRvJB.js} +1 -1
- package/dist-bloby/assets/mermaid-GHXKKRXX-DLezgHEY.js +1 -0
- package/dist-bloby/assets/{onboard-QaSIN03X.js → onboard-D1woNbAz.js} +1 -1
- package/dist-bloby/bloby.html +3 -3
- package/dist-bloby/onboard.html +3 -3
- package/package.json +1 -1
- package/supervisor/chat/OnboardWizard.tsx +18 -11
- package/dist-bloby/assets/globals-CZKHtKd_.js +0 -26
- package/dist-bloby/assets/globals-DJAJNwWb.css +0 -2
- package/dist-bloby/assets/mermaid-GHXKKRXX-DjyzBtrR.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as e,r as t,t as n}from"./jsx-runtime-C0W9Wf2W.js";import{n as r,r as i,t as a}from"./bloby-
|
|
1
|
+
import{c as e,r as t,t as n}from"./jsx-runtime-C0W9Wf2W.js";import{n as r,r as i,t as a}from"./bloby-Dmxp6AFI.js";var o=e(t(),1),s=n(),c=({code:e,language:t,raw:n,className:c,startLine:l,lineNumbers:u,...d})=>{let{shikiTheme:f}=(0,o.useContext)(i),p=r(),[m,h]=(0,o.useState)(n);return(0,o.useEffect)(()=>{if(!p){h(n);return}let r=p.highlight({code:e,language:t,themes:f},e=>{h(e)});r&&h(r)},[e,t,f,p,n]),(0,s.jsx)(a,{className:c,language:t,lineNumbers:u,result:m,startLine:l,...d})};export{c as HighlightedCodeBlockBody};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{i as e}from"./bloby-Dmxp6AFI.js";export{e as Mermaid};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as e,r as t,t as n}from"./jsx-runtime-C0W9Wf2W.js";import{E as r,t as i}from"./globals-
|
|
1
|
+
import{c as e,r as t,t as n}from"./jsx-runtime-C0W9Wf2W.js";import{E as r,t as i}from"./globals-W8wOsf_q.js";var a=e(t(),1),o=e(r(),1),s=n();function c(){return(0,s.jsx)(i,{onComplete:()=>{window.parent?.postMessage({type:`bloby:onboard-complete`},`*`)},isInitialSetup:!0})}o.createRoot(document.getElementById(`root`)).render((0,s.jsx)(a.StrictMode,{children:(0,s.jsx)(c,{})}));
|
package/dist-bloby/bloby.html
CHANGED
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, interactive-widget=resizes-content" />
|
|
6
6
|
<title>Bloby Chat</title>
|
|
7
|
-
<script type="module" crossorigin src="/bloby/assets/bloby-
|
|
7
|
+
<script type="module" crossorigin src="/bloby/assets/bloby-Dmxp6AFI.js"></script>
|
|
8
8
|
<link rel="modulepreload" crossorigin href="/bloby/assets/jsx-runtime-C0W9Wf2W.js">
|
|
9
|
-
<link rel="modulepreload" crossorigin href="/bloby/assets/globals-
|
|
10
|
-
<link rel="stylesheet" crossorigin href="/bloby/assets/globals-
|
|
9
|
+
<link rel="modulepreload" crossorigin href="/bloby/assets/globals-W8wOsf_q.js">
|
|
10
|
+
<link rel="stylesheet" crossorigin href="/bloby/assets/globals-CvipyZv-.css">
|
|
11
11
|
<link rel="stylesheet" crossorigin href="/bloby/assets/bloby-DkK0ymA2.css">
|
|
12
12
|
</head>
|
|
13
13
|
<body class="bg-background text-foreground">
|
package/dist-bloby/onboard.html
CHANGED
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
<meta charset="UTF-8" />
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no, interactive-widget=resizes-content" />
|
|
6
6
|
<title>Bloby Setup</title>
|
|
7
|
-
<script type="module" crossorigin src="/bloby/assets/onboard-
|
|
7
|
+
<script type="module" crossorigin src="/bloby/assets/onboard-D1woNbAz.js"></script>
|
|
8
8
|
<link rel="modulepreload" crossorigin href="/bloby/assets/jsx-runtime-C0W9Wf2W.js">
|
|
9
|
-
<link rel="modulepreload" crossorigin href="/bloby/assets/globals-
|
|
10
|
-
<link rel="stylesheet" crossorigin href="/bloby/assets/globals-
|
|
9
|
+
<link rel="modulepreload" crossorigin href="/bloby/assets/globals-W8wOsf_q.js">
|
|
10
|
+
<link rel="stylesheet" crossorigin href="/bloby/assets/globals-CvipyZv-.css">
|
|
11
11
|
</head>
|
|
12
12
|
<body class="bg-background text-foreground">
|
|
13
13
|
<div id="root"></div>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bloby-bot",
|
|
3
|
-
"version": "0.62.
|
|
3
|
+
"version": "0.62.3",
|
|
4
4
|
"releaseNotes": [
|
|
5
5
|
"1. Fix: image (and audio) attachments now render in chat again — /api/files is fetched with the auth token instead of a raw <img> src that 401'd after the endpoint hardening",
|
|
6
6
|
"2. Affects chat thumbnails, the image lightbox, voice-note playback, and agent image cards",
|
|
@@ -389,7 +389,7 @@ function EnvSettings({ cacheRef }: { cacheRef: MutableRefObject<EnvCache | null>
|
|
|
389
389
|
<TriangleAlert className="h-4 w-4 shrink-0" />{loadError}
|
|
390
390
|
</div>
|
|
391
391
|
) : (
|
|
392
|
-
<div className="mt-5 space-y-5
|
|
392
|
+
<div className="mt-5 space-y-5">
|
|
393
393
|
{groups.length === 0 && newRows.length === 0 && (
|
|
394
394
|
<div className="rounded-xl border border-white/[0.06] bg-white/[0.02] px-4 py-7 text-center">
|
|
395
395
|
<KeyRound className="h-5 w-5 text-white/25 mx-auto mb-2" />
|
|
@@ -1068,7 +1068,7 @@ function PulseCronSettings({ cacheRef }: { cacheRef: MutableRefObject<PulseCronC
|
|
|
1068
1068
|
) : loadError ? (
|
|
1069
1069
|
<div className="mt-5 flex items-center gap-2 text-[13px] text-red-400"><TriangleAlert className="h-4 w-4 shrink-0" />{loadError}</div>
|
|
1070
1070
|
) : (
|
|
1071
|
-
<div className="mt-6
|
|
1071
|
+
<div className="mt-6">
|
|
1072
1072
|
<PulseSection pulse={pulse} original={originalPulse} setPulse={setPulse} onPulseSaved={(saved) => setOriginalPulse(saved)} />
|
|
1073
1073
|
<CronsSection crons={crons} onLocalUpdate={(fn) => setCrons(fn)} onChanged={() => { fetchSchedule(false).catch(() => {}); }} />
|
|
1074
1074
|
</div>
|
|
@@ -1244,6 +1244,8 @@ export default function OnboardWizard({ onComplete, isInitialSetup = false, onSa
|
|
|
1244
1244
|
const envCacheRef = useRef<EnvCache | null>(null);
|
|
1245
1245
|
// Same pattern for the Pulse & Crons screen (step 7).
|
|
1246
1246
|
const pulseCacheRef = useRef<PulseCronCache | null>(null);
|
|
1247
|
+
// Scrollable content region (card is viewport-capped); reset to top on each step change.
|
|
1248
|
+
const contentScrollRef = useRef<HTMLDivElement>(null);
|
|
1247
1249
|
|
|
1248
1250
|
// Settings mode (hub-and-spoke): each screen saves itself. `settingsOrig` is the last-saved
|
|
1249
1251
|
// snapshot used both to show a Save button only when a screen actually changed, and to build a
|
|
@@ -1927,7 +1929,10 @@ export default function OnboardWizard({ onComplete, isInitialSetup = false, onSa
|
|
|
1927
1929
|
})();
|
|
1928
1930
|
|
|
1929
1931
|
// Clear the transient saved/error banners whenever the user moves to another settings screen.
|
|
1930
|
-
useEffect(() => {
|
|
1932
|
+
useEffect(() => {
|
|
1933
|
+
setSettingsSaved(false); setSettingsSaveError('');
|
|
1934
|
+
contentScrollRef.current?.scrollTo({ top: 0 });
|
|
1935
|
+
}, [step]);
|
|
1931
1936
|
|
|
1932
1937
|
const saveSettings = async () => {
|
|
1933
1938
|
if (!settingsScreenDirty || settingsSaving) return;
|
|
@@ -2030,11 +2035,11 @@ export default function OnboardWizard({ onComplete, isInitialSetup = false, onSa
|
|
|
2030
2035
|
initial={{ opacity: 0, scale: 0.95 }}
|
|
2031
2036
|
animate={{ opacity: 1, scale: 1 }}
|
|
2032
2037
|
transition={{ duration: 0.3 }}
|
|
2033
|
-
className="relative w-full max-w-[480px] bg-[#181818] border border-white/[0.06] rounded-[24px] shadow-2xl overflow-hidden"
|
|
2038
|
+
className="relative w-full max-w-[480px] max-h-[calc(100dvh_-_2rem)] flex flex-col bg-[#181818] border border-white/[0.06] rounded-[24px] shadow-2xl overflow-hidden"
|
|
2034
2039
|
>
|
|
2035
2040
|
{/* Onboarding: step dots. Settings: a header with hub-back, screen jump, and close. */}
|
|
2036
2041
|
{isInitialSetup ? (
|
|
2037
|
-
<div className="flex justify-center gap-2 pt-6">
|
|
2042
|
+
<div className="flex justify-center gap-2 pt-6 shrink-0">
|
|
2038
2043
|
{Array.from({ length: TOTAL_STEPS }, (_, i) => (
|
|
2039
2044
|
<div
|
|
2040
2045
|
key={i}
|
|
@@ -2049,7 +2054,7 @@ export default function OnboardWizard({ onComplete, isInitialSetup = false, onSa
|
|
|
2049
2054
|
))}
|
|
2050
2055
|
</div>
|
|
2051
2056
|
) : (
|
|
2052
|
-
<div className="flex items-center justify-between px-5 pt-4 pb-1">
|
|
2057
|
+
<div className="flex items-center justify-between px-5 pt-4 pb-1 shrink-0">
|
|
2053
2058
|
{step === 0 ? (
|
|
2054
2059
|
<span className="text-[13px] font-semibold text-white/80 pl-1">Settings</span>
|
|
2055
2060
|
) : (
|
|
@@ -2073,7 +2078,8 @@ export default function OnboardWizard({ onComplete, isInitialSetup = false, onSa
|
|
|
2073
2078
|
</div>
|
|
2074
2079
|
)}
|
|
2075
2080
|
|
|
2076
|
-
{/* Content */}
|
|
2081
|
+
{/* Content — scrolls within the viewport-capped card so tall screens stay reachable. */}
|
|
2082
|
+
<div ref={contentScrollRef} className="flex-1 min-h-0 overflow-y-auto">
|
|
2077
2083
|
<AnimatePresence mode="wait">
|
|
2078
2084
|
<motion.div
|
|
2079
2085
|
key={step}
|
|
@@ -4047,10 +4053,11 @@ export default function OnboardWizard({ onComplete, isInitialSetup = false, onSa
|
|
|
4047
4053
|
{step === 7 && !isInitialSetup && <PulseCronSettings cacheRef={pulseCacheRef} />}
|
|
4048
4054
|
</motion.div>
|
|
4049
4055
|
</AnimatePresence>
|
|
4056
|
+
</div>
|
|
4050
4057
|
|
|
4051
4058
|
{/* Back link — onboarding only; settings mode navigates via the header. */}
|
|
4052
4059
|
{isInitialSetup && step > 0 && step < TOTAL_STEPS - 1 && (
|
|
4053
|
-
<div className="px-8 pb-5 -
|
|
4060
|
+
<div className="px-8 pb-5 pt-2 shrink-0">
|
|
4054
4061
|
<button
|
|
4055
4062
|
onClick={back}
|
|
4056
4063
|
className="text-white/25 hover:text-white/50 text-[12px] transition-colors"
|
|
@@ -4060,10 +4067,10 @@ export default function OnboardWizard({ onComplete, isInitialSetup = false, onSa
|
|
|
4060
4067
|
</div>
|
|
4061
4068
|
)}
|
|
4062
4069
|
|
|
4063
|
-
{/* Settings mode: per-screen Save — shown only when the current
|
|
4064
|
-
(Env
|
|
4070
|
+
{/* Settings mode: per-screen Save — sticky at the bottom, shown only when the current
|
|
4071
|
+
screen has changes. (Env step 6 / Pulse & Crons step 7 save themselves inside.) */}
|
|
4065
4072
|
{!isInitialSetup && step >= 1 && step <= 5 && (settingsScreenDirty || settingsSaving || settingsSaved || settingsSaveError) && (
|
|
4066
|
-
<div className="px-8 pb-6 -
|
|
4073
|
+
<div className="px-8 pb-6 pt-3 shrink-0 border-t border-white/[0.06] bg-[#181818]">
|
|
4067
4074
|
{settingsSaveError && (
|
|
4068
4075
|
<p className="text-red-400 text-[12px] mb-2 flex items-center gap-1.5">
|
|
4069
4076
|
<TriangleAlert className="h-3.5 w-3.5 shrink-0" />{settingsSaveError}
|