@burtson-labs/bandit-engine 2.1.5 → 2.1.8
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/CHANGELOG.md +29 -0
- package/dist/AdvancedTab-HZTDXFST.mjs +229 -0
- package/dist/AdvancedTab-HZTDXFST.mjs.map +1 -0
- package/dist/CrewSection-YM26YD2N.mjs +12 -0
- package/dist/InstructionsTab-MKOGBQ5L.mjs +195 -0
- package/dist/InstructionsTab-MKOGBQ5L.mjs.map +1 -0
- package/dist/PersonalizationTab-2XHFTYYW.mjs +179 -0
- package/dist/PersonalizationTab-2XHFTYYW.mjs.map +1 -0
- package/dist/{ProjectsPane-BSVOVNK7.mjs → ProjectsPane-KE5DGFN4.mjs} +11 -8
- package/dist/ProjectsPane-KE5DGFN4.mjs.map +1 -0
- package/dist/{SchedulesTab-TCUOAKLH.mjs → SchedulesTab-AM5QP36K.mjs} +8 -6
- package/dist/SchedulesTab-AM5QP36K.mjs.map +1 -0
- package/dist/{aiProviderStore-ANPQVHGD.mjs → aiProviderStore-GH4JZTMW.mjs} +3 -2
- package/dist/chat-D66YM4MB.mjs +26 -0
- package/dist/{chunk-SK7FSLCY.mjs → chunk-2FI2IICG.mjs} +7 -564
- package/dist/chunk-2FI2IICG.mjs.map +1 -0
- package/dist/{chunk-4257FVLK.mjs → chunk-2HFSBPOE.mjs} +6 -1
- package/dist/chunk-2HFSBPOE.mjs.map +1 -0
- package/dist/chunk-2THUYNVU.mjs +1203 -0
- package/dist/chunk-2THUYNVU.mjs.map +1 -0
- package/dist/{chunk-KWOUXBSF.mjs → chunk-5LXCZJLJ.mjs} +5 -213
- package/dist/chunk-5LXCZJLJ.mjs.map +1 -0
- package/dist/{chunk-ZG66NJC3.mjs → chunk-5URP2E5V.mjs} +3 -6
- package/dist/chunk-5URP2E5V.mjs.map +1 -0
- package/dist/chunk-5WCKKD3S.mjs +1742 -0
- package/dist/chunk-5WCKKD3S.mjs.map +1 -0
- package/dist/{chunk-GX4FVZNA.mjs → chunk-DHXSFFLX.mjs} +4 -26
- package/dist/chunk-DHXSFFLX.mjs.map +1 -0
- package/dist/chunk-EKPPIS3X.mjs +336 -0
- package/dist/chunk-EKPPIS3X.mjs.map +1 -0
- package/dist/chunk-FBLITVVY.mjs +5845 -0
- package/dist/chunk-FBLITVVY.mjs.map +1 -0
- package/dist/chunk-H2XUGGKV.mjs +168 -0
- package/dist/chunk-H2XUGGKV.mjs.map +1 -0
- package/dist/chunk-K4AO466X.mjs +570 -0
- package/dist/chunk-K4AO466X.mjs.map +1 -0
- package/dist/chunk-KPT7NNNK.mjs +214 -0
- package/dist/chunk-KPT7NNNK.mjs.map +1 -0
- package/dist/{chunk-IXD2TDA5.mjs → chunk-LAH6UL3Q.mjs} +11 -1727
- package/dist/chunk-LAH6UL3Q.mjs.map +1 -0
- package/dist/chunk-LC64VSDS.mjs +541 -0
- package/dist/chunk-LC64VSDS.mjs.map +1 -0
- package/dist/{chunk-DH5A2HT2.mjs → chunk-LY3O7UWA.mjs} +45 -1
- package/dist/chunk-LY3O7UWA.mjs.map +1 -0
- package/dist/chunk-WBKTQJNX.mjs +21 -0
- package/dist/chunk-WBKTQJNX.mjs.map +1 -0
- package/dist/{chunk-XGIQNHUO.mjs → chunk-WZGDQ4EA.mjs} +5776 -11713
- package/dist/chunk-WZGDQ4EA.mjs.map +1 -0
- package/dist/chunk-Y272M3D5.mjs +28 -0
- package/dist/chunk-Y272M3D5.mjs.map +1 -0
- package/dist/image-compare-NW5VCP4Q.mjs +74 -0
- package/dist/image-compare-NW5VCP4Q.mjs.map +1 -0
- package/dist/image-edit-acknowledgement-RZPQYKYJ.mjs +54 -0
- package/dist/image-edit-acknowledgement-RZPQYKYJ.mjs.map +1 -0
- package/dist/index.d.mts +135 -7
- package/dist/index.d.ts +135 -7
- package/dist/index.js +10491 -8632
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1393 -2368
- package/dist/index.mjs.map +1 -1
- package/dist/{modelStore-YNANSWCN.mjs → modelStore-KO45QAO2.mjs} +3 -2
- package/dist/modelStore-KO45QAO2.mjs.map +1 -0
- package/dist/{public-Tq2Pmw9m.d.mts → public-_W_Zew3C.d.mts} +14 -0
- package/dist/{public-Tq2Pmw9m.d.ts → public-_W_Zew3C.d.ts} +14 -0
- package/dist/public-types.d.mts +1 -1
- package/dist/public-types.d.ts +1 -1
- package/dist/{schedule-confirm-card-7CMATYSP.mjs → schedule-confirm-card-D4K76HEA.mjs} +5 -5
- package/package.json +1 -1
- package/dist/ProjectsPane-BSVOVNK7.mjs.map +0 -1
- package/dist/SchedulesTab-TCUOAKLH.mjs.map +0 -1
- package/dist/chat-Y7KPN54G.mjs +0 -18
- package/dist/chunk-4257FVLK.mjs.map +0 -1
- package/dist/chunk-DH5A2HT2.mjs.map +0 -1
- package/dist/chunk-GX4FVZNA.mjs.map +0 -1
- package/dist/chunk-IXD2TDA5.mjs.map +0 -1
- package/dist/chunk-KWOUXBSF.mjs.map +0 -1
- package/dist/chunk-SK7FSLCY.mjs.map +0 -1
- package/dist/chunk-XGIQNHUO.mjs.map +0 -1
- package/dist/chunk-ZG66NJC3.mjs.map +0 -1
- /package/dist/{aiProviderStore-ANPQVHGD.mjs.map → CrewSection-YM26YD2N.mjs.map} +0 -0
- /package/dist/{chat-Y7KPN54G.mjs.map → aiProviderStore-GH4JZTMW.mjs.map} +0 -0
- /package/dist/{modelStore-YNANSWCN.mjs.map → chat-D66YM4MB.mjs.map} +0 -0
- /package/dist/{schedule-confirm-card-7CMATYSP.mjs.map → schedule-confirm-card-D4K76HEA.mjs.map} +0 -0
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// src/services/ai-provider/context-sources.ts
|
|
2
|
+
var MAX_LABEL = 120;
|
|
3
|
+
var clean = (value) => {
|
|
4
|
+
if (typeof value !== "string") return void 0;
|
|
5
|
+
const trimmed = value.trim();
|
|
6
|
+
if (!trimmed) return void 0;
|
|
7
|
+
return trimmed.length > MAX_LABEL ? `${trimmed.slice(0, MAX_LABEL - 1)}\u2026` : trimmed;
|
|
8
|
+
};
|
|
9
|
+
var readContextSourcesField = (chunk) => {
|
|
10
|
+
if (!chunk || typeof chunk !== "object") return void 0;
|
|
11
|
+
const record = chunk;
|
|
12
|
+
const raw = record.context_sources ?? record.contextSources;
|
|
13
|
+
if (!Array.isArray(raw)) return void 0;
|
|
14
|
+
const out = [];
|
|
15
|
+
for (const entry of raw) {
|
|
16
|
+
if (!entry || typeof entry !== "object") continue;
|
|
17
|
+
const label = clean(entry.label);
|
|
18
|
+
if (!label) continue;
|
|
19
|
+
const detail = clean(entry.detail);
|
|
20
|
+
out.push(detail ? { label, detail } : { label });
|
|
21
|
+
}
|
|
22
|
+
return out.length ? out : void 0;
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
export {
|
|
26
|
+
readContextSourcesField
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=chunk-Y272M3D5.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/services/ai-provider/context-sources.ts"],"mappings":";AAQA,IAAM,YAAY;AAElB,IAAM,QAAQ,CAAC,UAAuC;AACpD,MAAI,OAAO,UAAU,SAAU,QAAO;AACtC,QAAM,UAAU,MAAM,KAAK;AAC3B,MAAI,CAAC,QAAS,QAAO;AACrB,SAAO,QAAQ,SAAS,YAAY,GAAG,QAAQ,MAAM,GAAG,YAAY,CAAC,CAAC,WAAM;AAC9E;AAMO,IAAM,0BAA0B,CACrC,UACkC;AAClC,MAAI,CAAC,SAAS,OAAO,UAAU,SAAU,QAAO;AAChD,QAAM,SAAS;AACf,QAAM,MAAM,OAAO,mBAAmB,OAAO;AAC7C,MAAI,CAAC,MAAM,QAAQ,GAAG,EAAG,QAAO;AAChC,QAAM,MAAyB,CAAC;AAChC,aAAW,SAAS,KAAK;AACvB,QAAI,CAAC,SAAS,OAAO,UAAU,SAAU;AACzC,UAAM,QAAQ,MAAO,MAAkC,KAAK;AAC5D,QAAI,CAAC,MAAO;AACZ,UAAM,SAAS,MAAO,MAAkC,MAAM;AAC9D,QAAI,KAAK,SAAS,EAAE,OAAO,OAAO,IAAI,EAAE,MAAM,CAAC;AAAA,EACjD;AACA,SAAO,IAAI,SAAS,MAAM;AAC5B;","names":[]}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
// src/chat/image-compare.tsx
|
|
2
|
+
import { useState } from "react";
|
|
3
|
+
import { Box, ToggleButton, ToggleButtonGroup, Link } from "@mui/material";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
var ImageCompare = ({ beforeUrl, afterUrl }) => {
|
|
6
|
+
const [view, setView] = useState("after");
|
|
7
|
+
const src = view === "after" ? afterUrl : beforeUrl;
|
|
8
|
+
return /* @__PURE__ */ jsxs(
|
|
9
|
+
Box,
|
|
10
|
+
{
|
|
11
|
+
"data-testid": "image-compare",
|
|
12
|
+
sx: {
|
|
13
|
+
display: "flex",
|
|
14
|
+
flexDirection: "column",
|
|
15
|
+
gap: 1,
|
|
16
|
+
maxWidth: "min(480px, 100%)"
|
|
17
|
+
},
|
|
18
|
+
children: [
|
|
19
|
+
/* @__PURE__ */ jsx(
|
|
20
|
+
Box,
|
|
21
|
+
{
|
|
22
|
+
component: "img",
|
|
23
|
+
src,
|
|
24
|
+
alt: view === "after" ? "Edited photo" : "Original photo",
|
|
25
|
+
"data-testid": "image-compare-img",
|
|
26
|
+
sx: {
|
|
27
|
+
width: "100%",
|
|
28
|
+
maxHeight: 420,
|
|
29
|
+
objectFit: "contain",
|
|
30
|
+
borderRadius: 1,
|
|
31
|
+
display: "block"
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
),
|
|
35
|
+
/* @__PURE__ */ jsxs(
|
|
36
|
+
Box,
|
|
37
|
+
{
|
|
38
|
+
sx: {
|
|
39
|
+
display: "flex",
|
|
40
|
+
alignItems: "center",
|
|
41
|
+
justifyContent: "space-between",
|
|
42
|
+
gap: 1,
|
|
43
|
+
flexWrap: "wrap"
|
|
44
|
+
},
|
|
45
|
+
children: [
|
|
46
|
+
/* @__PURE__ */ jsxs(
|
|
47
|
+
ToggleButtonGroup,
|
|
48
|
+
{
|
|
49
|
+
size: "small",
|
|
50
|
+
exclusive: true,
|
|
51
|
+
value: view,
|
|
52
|
+
onChange: (_, next) => {
|
|
53
|
+
if (next) setView(next);
|
|
54
|
+
},
|
|
55
|
+
"aria-label": "Before or after",
|
|
56
|
+
children: [
|
|
57
|
+
/* @__PURE__ */ jsx(ToggleButton, { value: "before", children: "Original" }),
|
|
58
|
+
/* @__PURE__ */ jsx(ToggleButton, { value: "after", children: "Edited" })
|
|
59
|
+
]
|
|
60
|
+
}
|
|
61
|
+
),
|
|
62
|
+
/* @__PURE__ */ jsx(Link, { href: afterUrl, download: true, variant: "caption", underline: "hover", children: "Save edited photo" })
|
|
63
|
+
]
|
|
64
|
+
}
|
|
65
|
+
)
|
|
66
|
+
]
|
|
67
|
+
}
|
|
68
|
+
);
|
|
69
|
+
};
|
|
70
|
+
var image_compare_default = ImageCompare;
|
|
71
|
+
export {
|
|
72
|
+
image_compare_default as default
|
|
73
|
+
};
|
|
74
|
+
//# sourceMappingURL=image-compare-NW5VCP4Q.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/chat/image-compare.tsx"],"mappings":";AAMA,SAAgB,gBAAgB;AAChC,SAAS,KAAK,cAAc,mBAAmB,YAAY;AA0BrD,cAsBE,YAtBF;AAbN,IAAM,eAA4C,CAAC,EAAE,WAAW,SAAS,MAAM;AAC7E,QAAM,CAAC,MAAM,OAAO,IAAI,SAA6B,OAAO;AAC5D,QAAM,MAAM,SAAS,UAAU,WAAW;AAC1C,SACE;AAAA,IAAC;AAAA;AAAA,MACC,eAAY;AAAA,MACZ,IAAI;AAAA,QACF,SAAS;AAAA,QACT,eAAe;AAAA,QACf,KAAK;AAAA,QACL,UAAU;AAAA,MACZ;AAAA,MAEA;AAAA;AAAA,UAAC;AAAA;AAAA,YACC,WAAU;AAAA,YACV;AAAA,YACA,KAAK,SAAS,UAAU,iBAAiB;AAAA,YACzC,eAAY;AAAA,YACZ,IAAI;AAAA,cACF,OAAO;AAAA,cACP,WAAW;AAAA,cACX,WAAW;AAAA,cACX,cAAc;AAAA,cACd,SAAS;AAAA,YACX;AAAA;AAAA,QACF;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACC,IAAI;AAAA,cACF,SAAS;AAAA,cACT,YAAY;AAAA,cACZ,gBAAgB;AAAA,cAChB,KAAK;AAAA,cACL,UAAU;AAAA,YACZ;AAAA,YAEA;AAAA;AAAA,gBAAC;AAAA;AAAA,kBACC,MAAK;AAAA,kBACL,WAAS;AAAA,kBACT,OAAO;AAAA,kBACP,UAAU,CAAC,GAAG,SAAoC;AAChD,wBAAI,KAAM,SAAQ,IAAI;AAAA,kBACxB;AAAA,kBACA,cAAW;AAAA,kBAEX;AAAA,wCAAC,gBAAa,OAAM,UAAS,sBAAQ;AAAA,oBACrC,oBAAC,gBAAa,OAAM,SAAQ,oBAAM;AAAA;AAAA;AAAA,cACpC;AAAA,cACA,oBAAC,QAAK,MAAM,UAAU,UAAQ,MAAC,SAAQ,WAAU,WAAU,SAAQ,+BAEnE;AAAA;AAAA;AAAA,QACF;AAAA;AAAA;AAAA,EACF;AAEJ;AAEA,IAAO,wBAAQ;","names":[]}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import {
|
|
2
|
+
useImageEditAckStore
|
|
3
|
+
} from "./chunk-WBKTQJNX.mjs";
|
|
4
|
+
|
|
5
|
+
// src/chat/image-edit-acknowledgement.tsx
|
|
6
|
+
import {
|
|
7
|
+
Button,
|
|
8
|
+
Dialog,
|
|
9
|
+
DialogActions,
|
|
10
|
+
DialogContent,
|
|
11
|
+
DialogTitle,
|
|
12
|
+
Typography
|
|
13
|
+
} from "@mui/material";
|
|
14
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
15
|
+
var ImageEditAcknowledgement = () => {
|
|
16
|
+
const open = useImageEditAckStore((s) => s.open);
|
|
17
|
+
const text = useImageEditAckStore((s) => s.text);
|
|
18
|
+
const answer = useImageEditAckStore((s) => s.answer);
|
|
19
|
+
return /* @__PURE__ */ jsxs(
|
|
20
|
+
Dialog,
|
|
21
|
+
{
|
|
22
|
+
open,
|
|
23
|
+
onClose: () => answer(false),
|
|
24
|
+
"aria-labelledby": "image-edit-ack-title",
|
|
25
|
+
"data-testid": "image-edit-acknowledgement",
|
|
26
|
+
maxWidth: "xs",
|
|
27
|
+
fullWidth: true,
|
|
28
|
+
children: [
|
|
29
|
+
/* @__PURE__ */ jsx(DialogTitle, { id: "image-edit-ack-title", children: "Before you edit a photo" }),
|
|
30
|
+
/* @__PURE__ */ jsxs(DialogContent, { children: [
|
|
31
|
+
/* @__PURE__ */ jsx(Typography, { variant: "body2", children: text }),
|
|
32
|
+
/* @__PURE__ */ jsx(
|
|
33
|
+
Typography,
|
|
34
|
+
{
|
|
35
|
+
variant: "caption",
|
|
36
|
+
color: "text.secondary",
|
|
37
|
+
sx: { display: "block", mt: 1.5 },
|
|
38
|
+
children: 'Photos are checked before and after editing. Location data is removed from uploads. Results carry an "AI-edited" label in their metadata.'
|
|
39
|
+
}
|
|
40
|
+
)
|
|
41
|
+
] }),
|
|
42
|
+
/* @__PURE__ */ jsxs(DialogActions, { children: [
|
|
43
|
+
/* @__PURE__ */ jsx(Button, { onClick: () => answer(false), children: "Cancel" }),
|
|
44
|
+
/* @__PURE__ */ jsx(Button, { onClick: () => answer(true), variant: "contained", autoFocus: true, children: "I understand" })
|
|
45
|
+
] })
|
|
46
|
+
]
|
|
47
|
+
}
|
|
48
|
+
);
|
|
49
|
+
};
|
|
50
|
+
var image_edit_acknowledgement_default = ImageEditAcknowledgement;
|
|
51
|
+
export {
|
|
52
|
+
image_edit_acknowledgement_default as default
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=image-edit-acknowledgement-RZPQYKYJ.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/chat/image-edit-acknowledgement.tsx"],"mappings":";;;;;AAOA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAqBD,cACA,YADA;AAdN,IAAM,2BAAqC,MAAM;AAC/C,QAAM,OAAO,qBAAqB,CAAC,MAAM,EAAE,IAAI;AAC/C,QAAM,OAAO,qBAAqB,CAAC,MAAM,EAAE,IAAI;AAC/C,QAAM,SAAS,qBAAqB,CAAC,MAAM,EAAE,MAAM;AAEnD,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,SAAS,MAAM,OAAO,KAAK;AAAA,MAC3B,mBAAgB;AAAA,MAChB,eAAY;AAAA,MACZ,UAAS;AAAA,MACT,WAAS;AAAA,MAET;AAAA,4BAAC,eAAY,IAAG,wBAAuB,qCAAuB;AAAA,QAC9D,qBAAC,iBACC;AAAA,8BAAC,cAAW,SAAQ,SAAS,gBAAK;AAAA,UAClC;AAAA,YAAC;AAAA;AAAA,cACC,SAAQ;AAAA,cACR,OAAM;AAAA,cACN,IAAI,EAAE,SAAS,SAAS,IAAI,IAAI;AAAA,cACjC;AAAA;AAAA,UAGD;AAAA,WACF;AAAA,QACA,qBAAC,iBACC;AAAA,8BAAC,UAAO,SAAS,MAAM,OAAO,KAAK,GAAG,oBAAM;AAAA,UAC5C,oBAAC,UAAO,SAAS,MAAM,OAAO,IAAI,GAAG,SAAQ,aAAY,WAAS,MAAC,0BAEnE;AAAA,WACF;AAAA;AAAA;AAAA,EACF;AAEJ;AAEA,IAAO,qCAAQ;","names":[]}
|
package/dist/index.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { F as FeatureKey, a as FeatureEvaluation, S as SubscriptionTier, b as FeatureFlagConfig, T as TrialUsage, A as AIMessage } from './public-
|
|
2
|
-
export { c as AIChatRequest, d as AIChatResponse, e as AIGenerateRequest, f as AIGenerateResponse, g as AIModel, h as AIProviderConfig, C as ChatConfig, i as ChatModal, j as ChatModalProps, k as ChatProvider, D as DEFAULT_TIER_FEATURES, E as EngineNavigation, l as FeatureMatrix, O as OSS_DEFAULT_FEATURES, P as PackageSettings, m as SidebarLayout, n as SidebarSection, V as VoiceModelsResponse, o as VoiceService, v as voiceService } from './public-
|
|
1
|
+
import { F as FeatureKey, a as FeatureEvaluation, S as SubscriptionTier, b as FeatureFlagConfig, T as TrialUsage, A as AIMessage } from './public-_W_Zew3C.mjs';
|
|
2
|
+
export { c as AIChatRequest, d as AIChatResponse, e as AIGenerateRequest, f as AIGenerateResponse, g as AIModel, h as AIProviderConfig, C as ChatConfig, i as ChatModal, j as ChatModalProps, k as ChatProvider, D as DEFAULT_TIER_FEATURES, E as EngineNavigation, l as FeatureMatrix, O as OSS_DEFAULT_FEATURES, P as PackageSettings, m as SidebarLayout, n as SidebarSection, V as VoiceModelsResponse, o as VoiceService, v as voiceService } from './public-_W_Zew3C.mjs';
|
|
3
3
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
4
4
|
import React, { ReactNode } from 'react';
|
|
5
5
|
import { Theme } from '@mui/material/styles';
|
|
@@ -13,9 +13,15 @@ import { AlertColor } from '@mui/material';
|
|
|
13
13
|
|
|
14
14
|
declare const Chat: () => react_jsx_runtime.JSX.Element | null;
|
|
15
15
|
|
|
16
|
-
/** Every Management section that exists
|
|
17
|
-
type ManagementSectionId = "overview" | "personalities" | "knowledge" | "tools" | "provider" | "storage" | "branding" | "schedules" | "preferences";
|
|
16
|
+
/** Every Management section that exists, on either console. */
|
|
17
|
+
type ManagementSectionId = "overview" | "personalization" | "personalities" | "instructions" | "knowledge" | "tools" | "crew" | "provider" | "advanced" | "storage" | "branding" | "schedules" | "preferences";
|
|
18
18
|
type FeatureGate = "limitedAdminDashboard" | "advancedSearch";
|
|
19
|
+
/**
|
|
20
|
+
* Where a section sits in the rail: the overview on its own at the top, the
|
|
21
|
+
* signed-in person's own settings ("You"), or the workspace's configuration.
|
|
22
|
+
* The web console shows the groups; the native shells show one list.
|
|
23
|
+
*/
|
|
24
|
+
type ManagementSectionGroup = "home" | "you" | "workspace";
|
|
19
25
|
interface ManagementSectionDef {
|
|
20
26
|
id: ManagementSectionId;
|
|
21
27
|
label: string;
|
|
@@ -26,7 +32,13 @@ interface ManagementSectionDef {
|
|
|
26
32
|
/** Platform/tenant configuration: only a workspace admin sees it. */
|
|
27
33
|
requiresAdmin: boolean;
|
|
28
34
|
requiresFeature: FeatureGate;
|
|
35
|
+
group: ManagementSectionGroup;
|
|
29
36
|
}
|
|
37
|
+
/**
|
|
38
|
+
* Every section, in the native shells' order. Sections only one console has
|
|
39
|
+
* (see WEB_ONLY / NATIVE_ONLY) are filtered by presentManagementSections; the
|
|
40
|
+
* web's own wording and order are applied there too.
|
|
41
|
+
*/
|
|
30
42
|
declare const MANAGEMENT_SECTIONS: readonly ManagementSectionDef[];
|
|
31
43
|
interface ManagementAccessInput {
|
|
32
44
|
roles: string[];
|
|
@@ -39,7 +51,7 @@ interface ManagementAccessInput {
|
|
|
39
51
|
* per-tenant admin. AuthApi's TeamService grants tenant owners/admins a role of
|
|
40
52
|
* the form "<slug>-admin", so any role ending in "-admin" is a tenant admin.
|
|
41
53
|
* super-user is NOT an admin: it's the trial/power-user role, so trial and
|
|
42
|
-
* consumer users see only
|
|
54
|
+
* consumer users see only their own pages (Preferences, Personalization, Schedules).
|
|
43
55
|
*/
|
|
44
56
|
declare function isWorkspaceAdminRole(roles: string[]): boolean;
|
|
45
57
|
/** Which sections this user can open: role first, then plan features. Pure, for tests and hosts. */
|
|
@@ -49,8 +61,14 @@ interface ManagementAccess {
|
|
|
49
61
|
isWorkspaceAdmin: boolean;
|
|
50
62
|
/** Admin-dashboard users limited to the lighter feature set. */
|
|
51
63
|
isLimitedAdmin: boolean;
|
|
64
|
+
/** Pro/Team plan: the model provider page (inside Advanced on the web). */
|
|
65
|
+
hasAdvancedSearch: boolean;
|
|
52
66
|
}
|
|
53
|
-
/**
|
|
67
|
+
/**
|
|
68
|
+
* The signed-in user's Management access, presented for this console (web or
|
|
69
|
+
* native). Hosts use it to build their command palette, so ⌘K and the rail
|
|
70
|
+
* agree on every label.
|
|
71
|
+
*/
|
|
54
72
|
declare function useManagementAccess(): ManagementAccess;
|
|
55
73
|
|
|
56
74
|
/** A host destination outside the engine (members, usage, billing …). */
|
|
@@ -109,6 +127,116 @@ interface InterestsEditorProps {
|
|
|
109
127
|
*/
|
|
110
128
|
declare const InterestsEditor: ({ title, description, }: InterestsEditorProps) => react_jsx_runtime.JSX.Element;
|
|
111
129
|
|
|
130
|
+
interface MemoryManagerProps {
|
|
131
|
+
/**
|
|
132
|
+
* "sheet": the body of the Memories modal (chat surfaces, a close button, a
|
|
133
|
+
* fixed height). "page": the Settings page — searchable, and it grows with
|
|
134
|
+
* its list instead of scrolling inside a box.
|
|
135
|
+
*/
|
|
136
|
+
variant: "sheet" | "page";
|
|
137
|
+
/** On screen; memories load when this becomes true. The sheet passes its `open`. */
|
|
138
|
+
active?: boolean;
|
|
139
|
+
/** The sheet's close button. */
|
|
140
|
+
onClose?: () => void;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* What Bandit remembers: the memories you told it and the ones it noted
|
|
144
|
+
* itself, local to this browser or synced to your account. Add, edit, pin,
|
|
145
|
+
* delete, select several, clear by kind, and move local memories to the
|
|
146
|
+
* synced workspace. The Memories modal and the Personalization page both
|
|
147
|
+
* render this.
|
|
148
|
+
*/
|
|
149
|
+
declare const MemoryManager: React.FC<MemoryManagerProps>;
|
|
150
|
+
|
|
151
|
+
interface BanditPersonality {
|
|
152
|
+
name: string;
|
|
153
|
+
tagline: string;
|
|
154
|
+
systemPrompt: string;
|
|
155
|
+
commands: string[];
|
|
156
|
+
avatarBase64?: string | null;
|
|
157
|
+
avatarPreset?: string;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
interface CustomInstructions {
|
|
161
|
+
/** "What should Bandit know about you?" */
|
|
162
|
+
about: string;
|
|
163
|
+
/** "How would you like Bandit to respond?" */
|
|
164
|
+
responseStyle: string;
|
|
165
|
+
}
|
|
166
|
+
/** Character limits for new text. Migrated text longer than this is kept; it can only be shortened. */
|
|
167
|
+
declare const CUSTOM_INSTRUCTIONS_LIMITS: {
|
|
168
|
+
readonly about: 1500;
|
|
169
|
+
readonly responseStyle: 1500;
|
|
170
|
+
};
|
|
171
|
+
declare const ASSISTANT_INSTRUCTIONS_LIMIT = 4000;
|
|
172
|
+
/** Bandit's own voice: what answers when nobody has written instructions. */
|
|
173
|
+
declare const DEFAULT_ASSISTANT_INSTRUCTIONS: string;
|
|
174
|
+
declare const MIGRATIONS_RECORD_ID = "migrations";
|
|
175
|
+
/** One-time data moves, by name, with when they ran. */
|
|
176
|
+
interface MigrationsRecord {
|
|
177
|
+
id: typeof MIGRATIONS_RECORD_ID;
|
|
178
|
+
/** The customized active personality was copied into Custom instructions. */
|
|
179
|
+
customInstructionsFromPersonality?: {
|
|
180
|
+
at: number;
|
|
181
|
+
from: string | null;
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
interface PersonaPromptInput {
|
|
185
|
+
/** The workspace's Assistant instructions; empty when none were written. */
|
|
186
|
+
assistant: string;
|
|
187
|
+
custom: CustomInstructions;
|
|
188
|
+
/**
|
|
189
|
+
* The active personality's prompt (the pre-Phase-3 key), read for one more
|
|
190
|
+
* release so a workspace that has written nothing new keeps its voice.
|
|
191
|
+
*/
|
|
192
|
+
legacyPersonalityPrompt?: string | null;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* The PERSONA block's text. Assistant instructions come first; when the
|
|
196
|
+
* workspace wrote none, Bandit's default voice (or the legacy personality
|
|
197
|
+
* prompt) stands in — unless the person wrote Custom instructions, which then
|
|
198
|
+
* replace the default voice rather than compete with it. The person's two
|
|
199
|
+
* fields follow, labelled, so the model knows which is which.
|
|
200
|
+
*/
|
|
201
|
+
declare function composePersonaPrompt(input: PersonaPromptInput): string;
|
|
202
|
+
interface PersonalityMigrationInput {
|
|
203
|
+
/** The personality that answers chats today, if the model store has one. */
|
|
204
|
+
active: Pick<BanditPersonality, "name" | "systemPrompt"> | null | undefined;
|
|
205
|
+
/** What the person has already written; never overwritten. */
|
|
206
|
+
existing: CustomInstructions;
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Decides whether the active personality's prompt should seed Custom
|
|
210
|
+
* instructions: only when it was customized (differs from Bandit's default
|
|
211
|
+
* voice) and the person has not written a response style of their own.
|
|
212
|
+
* Returns the field to write, or null for nothing to do.
|
|
213
|
+
*/
|
|
214
|
+
declare function planPersonalityMigration(input: PersonalityMigrationInput): {
|
|
215
|
+
responseStyle: string;
|
|
216
|
+
} | null;
|
|
217
|
+
type InstructionsSaveState = "idle" | "saving" | "saved" | "error";
|
|
218
|
+
type PersonalityMigrationOutcome = "migrated" | "nothing-to-migrate" | "already-done" | "not-ready";
|
|
219
|
+
interface InstructionsStore {
|
|
220
|
+
custom: CustomInstructions;
|
|
221
|
+
assistant: string;
|
|
222
|
+
hydrated: boolean;
|
|
223
|
+
migration: MigrationsRecord["customInstructionsFromPersonality"] | null;
|
|
224
|
+
saveState: InstructionsSaveState;
|
|
225
|
+
lastSavedAt: number | null;
|
|
226
|
+
hydrate: () => Promise<void>;
|
|
227
|
+
saveCustomInstructions: (next: CustomInstructions) => Promise<boolean>;
|
|
228
|
+
saveAssistantInstructions: (text: string) => Promise<boolean>;
|
|
229
|
+
/**
|
|
230
|
+
* Copies a customized active personality into Custom instructions, once.
|
|
231
|
+
* `ready` says the model store has finished loading, so an empty list is a
|
|
232
|
+
* real answer and not a race; until then nothing is recorded.
|
|
233
|
+
*/
|
|
234
|
+
migrateFromPersonality: (active: Pick<BanditPersonality, "name" | "systemPrompt"> | null | undefined, ready: boolean) => Promise<PersonalityMigrationOutcome>;
|
|
235
|
+
/** The PERSONA block for the next message, with the legacy personality prompt as the fallback. */
|
|
236
|
+
personaPrompt: (legacyPersonalityPrompt?: string | null) => string;
|
|
237
|
+
}
|
|
238
|
+
declare const useInstructionsStore: zustand.UseBoundStore<zustand.StoreApi<InstructionsStore>>;
|
|
239
|
+
|
|
112
240
|
declare function defineCustomElement<Props extends Record<string, unknown>>(name: string, Component: React.ComponentType<Props>): void;
|
|
113
241
|
|
|
114
242
|
/**
|
|
@@ -1879,4 +2007,4 @@ declare const createStashShareLink: (args: {
|
|
|
1879
2007
|
signal?: AbortSignal;
|
|
1880
2008
|
}) => Promise<StashShareLink>;
|
|
1881
2009
|
|
|
1882
|
-
export { AIMessage, AUTH_TOKEN_CHANGED_EVENT, type ActionItem, type AuthSessionConfig, type AuthSessionHandlers, Chat, type CreateMemoryOptions, DebugLogger, FeatureEvaluation, FeatureFlagConfig, FeatureFlagContext, type FeatureFlagContextValue, FeatureFlagProvider, type FeatureFlagProviderProps, FeatureFlagService, FeatureKey, FeedbackButton, type FeedbackButtonProps, type FeedbackCategories, FeedbackModal, type FeedbackModalProps, type FeedbackPriorities, type FeedbackRequest, type FeedbackResponse, type FileUploadResult, type GatewayQueryOptions, InterestsEditor, type JwtClaims, type LogContext, MANAGEMENT_SECTIONS, MAX_RECORDING_BYTES, MAX_RECORDING_SECONDS, Management, type ManagementAccess, type ManagementAccessInput, type ManagementLink, type ManagementProps, type ManagementRequest, type ManagementSectionDef, type ManagementSectionId, type MeetingNotes, type ChatFn as MeetingNotesChatFn, MeetingNotesError, type MeetingNotesInput, type MeetingNotesProgress, type MeetingNotesResult, type MeetingNotesSource, type MeetingNotesStage, type MemorySearchFilters, type MigrationProgress, type MigrationStatus, type NotesMeta, type NotificationConfig, type NotificationContextType, NotificationProvider, type NotificationProviderProps, NotificationService, type ParsedTranscript, CHUNK_SECONDS as RECORDING_CHUNK_SECONDS, type RecordingTranscript, type RunMeetingNotesOptions, SYSTEM_FLAGS, type SearchOptions, type SearchResult, SpeechToTextError, StashError, type StashSaveResult, type StashShareLink, StreamingTTSClient, SubscriptionExpiredGuard, type SubscriptionExpiredGuardProps, SubscriptionExpiredModal, type SubscriptionExpiredModalProps, SubscriptionTier, TOKEN_KEY, type TTSOptions, type TTSProgress, TTSState, type TokenPersistence, type TokenStorageMode, type TranscriptFormat, type TranscriptSegment, TrialUsage, type UploadRequest, type UseTTSReturn, VectorDatabaseService, type VectorDocument, type VectorMemory, type VectorMemoryMetadata, VectorMigrationService, type VectorStoreStatus, type VoiceState, authenticationService, chunkTranscript, createStashShareLink, debugLogger, defineCustomElement, describeMeetingInput, featureFlagService, generateMeetingNotes, getCriticalConfig, getFeatureMatrix, getStreamingTTSClient, getSystemConstants, getTTSState, handleHttpError, handleSubscriptionUpgrade, handleValidationError, initializeCoreSystem, isMeetingFile, isRecordingFile, isTranscriptFileName, isWorkspaceAdminRole, looksLikeTranscript, meetingNotesErrorMessage, notesToHtml, notesToMarkdown, notificationService, parseNotesJson, parseTranscript, pauseTTS, previewTierUpgrade, resolveManagementSections, resumeTTS, runMeetingNotes, saveToStash, showInfoNotification, showSuccessNotification, speakStream as speakWithStreaming, stashAvailable, stopTTS, syncSubscriptionWithAPI, transcribeRecording, transcriptToText, updateSubscriptionTier, useFeatureFlag, useFeatureVisibility, useFeatures, useGatewayHealth, useGatewayMemory, useGatewayModels, useGlobalTTS, useManagementAccess, useNotification, useNotificationService, useTTS, useVectorStore, useVoiceStore, useVoices, validateEnvironment, validateSystemIntegrity, vectorDatabaseService, vectorMigrationService };
|
|
2010
|
+
export { AIMessage, ASSISTANT_INSTRUCTIONS_LIMIT, AUTH_TOKEN_CHANGED_EVENT, type ActionItem, type AuthSessionConfig, type AuthSessionHandlers, CUSTOM_INSTRUCTIONS_LIMITS, Chat, type CreateMemoryOptions, type CustomInstructions, DEFAULT_ASSISTANT_INSTRUCTIONS, DebugLogger, FeatureEvaluation, FeatureFlagConfig, FeatureFlagContext, type FeatureFlagContextValue, FeatureFlagProvider, type FeatureFlagProviderProps, FeatureFlagService, FeatureKey, FeedbackButton, type FeedbackButtonProps, type FeedbackCategories, FeedbackModal, type FeedbackModalProps, type FeedbackPriorities, type FeedbackRequest, type FeedbackResponse, type FileUploadResult, type GatewayQueryOptions, InterestsEditor, type JwtClaims, type LogContext, MANAGEMENT_SECTIONS, MAX_RECORDING_BYTES, MAX_RECORDING_SECONDS, Management, type ManagementAccess, type ManagementAccessInput, type ManagementLink, type ManagementProps, type ManagementRequest, type ManagementSectionDef, type ManagementSectionId, type MeetingNotes, type ChatFn as MeetingNotesChatFn, MeetingNotesError, type MeetingNotesInput, type MeetingNotesProgress, type MeetingNotesResult, type MeetingNotesSource, type MeetingNotesStage, MemoryManager, type MemoryManagerProps, type MemorySearchFilters, type MigrationProgress, type MigrationStatus, type NotesMeta, type NotificationConfig, type NotificationContextType, NotificationProvider, type NotificationProviderProps, NotificationService, type ParsedTranscript, type PersonaPromptInput, CHUNK_SECONDS as RECORDING_CHUNK_SECONDS, type RecordingTranscript, type RunMeetingNotesOptions, SYSTEM_FLAGS, type SearchOptions, type SearchResult, SpeechToTextError, StashError, type StashSaveResult, type StashShareLink, StreamingTTSClient, SubscriptionExpiredGuard, type SubscriptionExpiredGuardProps, SubscriptionExpiredModal, type SubscriptionExpiredModalProps, SubscriptionTier, TOKEN_KEY, type TTSOptions, type TTSProgress, TTSState, type TokenPersistence, type TokenStorageMode, type TranscriptFormat, type TranscriptSegment, TrialUsage, type UploadRequest, type UseTTSReturn, VectorDatabaseService, type VectorDocument, type VectorMemory, type VectorMemoryMetadata, VectorMigrationService, type VectorStoreStatus, type VoiceState, authenticationService, chunkTranscript, composePersonaPrompt, createStashShareLink, debugLogger, defineCustomElement, describeMeetingInput, featureFlagService, generateMeetingNotes, getCriticalConfig, getFeatureMatrix, getStreamingTTSClient, getSystemConstants, getTTSState, handleHttpError, handleSubscriptionUpgrade, handleValidationError, initializeCoreSystem, isMeetingFile, isRecordingFile, isTranscriptFileName, isWorkspaceAdminRole, looksLikeTranscript, meetingNotesErrorMessage, notesToHtml, notesToMarkdown, notificationService, parseNotesJson, parseTranscript, pauseTTS, planPersonalityMigration, previewTierUpgrade, resolveManagementSections, resumeTTS, runMeetingNotes, saveToStash, showInfoNotification, showSuccessNotification, speakStream as speakWithStreaming, stashAvailable, stopTTS, syncSubscriptionWithAPI, transcribeRecording, transcriptToText, updateSubscriptionTier, useFeatureFlag, useFeatureVisibility, useFeatures, useGatewayHealth, useGatewayMemory, useGatewayModels, useGlobalTTS, useInstructionsStore, useManagementAccess, useNotification, useNotificationService, useTTS, useVectorStore, useVoiceStore, useVoices, validateEnvironment, validateSystemIntegrity, vectorDatabaseService, vectorMigrationService };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { F as FeatureKey, a as FeatureEvaluation, S as SubscriptionTier, b as FeatureFlagConfig, T as TrialUsage, A as AIMessage } from './public-
|
|
2
|
-
export { c as AIChatRequest, d as AIChatResponse, e as AIGenerateRequest, f as AIGenerateResponse, g as AIModel, h as AIProviderConfig, C as ChatConfig, i as ChatModal, j as ChatModalProps, k as ChatProvider, D as DEFAULT_TIER_FEATURES, E as EngineNavigation, l as FeatureMatrix, O as OSS_DEFAULT_FEATURES, P as PackageSettings, m as SidebarLayout, n as SidebarSection, V as VoiceModelsResponse, o as VoiceService, v as voiceService } from './public-
|
|
1
|
+
import { F as FeatureKey, a as FeatureEvaluation, S as SubscriptionTier, b as FeatureFlagConfig, T as TrialUsage, A as AIMessage } from './public-_W_Zew3C.js';
|
|
2
|
+
export { c as AIChatRequest, d as AIChatResponse, e as AIGenerateRequest, f as AIGenerateResponse, g as AIModel, h as AIProviderConfig, C as ChatConfig, i as ChatModal, j as ChatModalProps, k as ChatProvider, D as DEFAULT_TIER_FEATURES, E as EngineNavigation, l as FeatureMatrix, O as OSS_DEFAULT_FEATURES, P as PackageSettings, m as SidebarLayout, n as SidebarSection, V as VoiceModelsResponse, o as VoiceService, v as voiceService } from './public-_W_Zew3C.js';
|
|
3
3
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
4
4
|
import React, { ReactNode } from 'react';
|
|
5
5
|
import { Theme } from '@mui/material/styles';
|
|
@@ -13,9 +13,15 @@ import { AlertColor } from '@mui/material';
|
|
|
13
13
|
|
|
14
14
|
declare const Chat: () => react_jsx_runtime.JSX.Element | null;
|
|
15
15
|
|
|
16
|
-
/** Every Management section that exists
|
|
17
|
-
type ManagementSectionId = "overview" | "personalities" | "knowledge" | "tools" | "provider" | "storage" | "branding" | "schedules" | "preferences";
|
|
16
|
+
/** Every Management section that exists, on either console. */
|
|
17
|
+
type ManagementSectionId = "overview" | "personalization" | "personalities" | "instructions" | "knowledge" | "tools" | "crew" | "provider" | "advanced" | "storage" | "branding" | "schedules" | "preferences";
|
|
18
18
|
type FeatureGate = "limitedAdminDashboard" | "advancedSearch";
|
|
19
|
+
/**
|
|
20
|
+
* Where a section sits in the rail: the overview on its own at the top, the
|
|
21
|
+
* signed-in person's own settings ("You"), or the workspace's configuration.
|
|
22
|
+
* The web console shows the groups; the native shells show one list.
|
|
23
|
+
*/
|
|
24
|
+
type ManagementSectionGroup = "home" | "you" | "workspace";
|
|
19
25
|
interface ManagementSectionDef {
|
|
20
26
|
id: ManagementSectionId;
|
|
21
27
|
label: string;
|
|
@@ -26,7 +32,13 @@ interface ManagementSectionDef {
|
|
|
26
32
|
/** Platform/tenant configuration: only a workspace admin sees it. */
|
|
27
33
|
requiresAdmin: boolean;
|
|
28
34
|
requiresFeature: FeatureGate;
|
|
35
|
+
group: ManagementSectionGroup;
|
|
29
36
|
}
|
|
37
|
+
/**
|
|
38
|
+
* Every section, in the native shells' order. Sections only one console has
|
|
39
|
+
* (see WEB_ONLY / NATIVE_ONLY) are filtered by presentManagementSections; the
|
|
40
|
+
* web's own wording and order are applied there too.
|
|
41
|
+
*/
|
|
30
42
|
declare const MANAGEMENT_SECTIONS: readonly ManagementSectionDef[];
|
|
31
43
|
interface ManagementAccessInput {
|
|
32
44
|
roles: string[];
|
|
@@ -39,7 +51,7 @@ interface ManagementAccessInput {
|
|
|
39
51
|
* per-tenant admin. AuthApi's TeamService grants tenant owners/admins a role of
|
|
40
52
|
* the form "<slug>-admin", so any role ending in "-admin" is a tenant admin.
|
|
41
53
|
* super-user is NOT an admin: it's the trial/power-user role, so trial and
|
|
42
|
-
* consumer users see only
|
|
54
|
+
* consumer users see only their own pages (Preferences, Personalization, Schedules).
|
|
43
55
|
*/
|
|
44
56
|
declare function isWorkspaceAdminRole(roles: string[]): boolean;
|
|
45
57
|
/** Which sections this user can open: role first, then plan features. Pure, for tests and hosts. */
|
|
@@ -49,8 +61,14 @@ interface ManagementAccess {
|
|
|
49
61
|
isWorkspaceAdmin: boolean;
|
|
50
62
|
/** Admin-dashboard users limited to the lighter feature set. */
|
|
51
63
|
isLimitedAdmin: boolean;
|
|
64
|
+
/** Pro/Team plan: the model provider page (inside Advanced on the web). */
|
|
65
|
+
hasAdvancedSearch: boolean;
|
|
52
66
|
}
|
|
53
|
-
/**
|
|
67
|
+
/**
|
|
68
|
+
* The signed-in user's Management access, presented for this console (web or
|
|
69
|
+
* native). Hosts use it to build their command palette, so ⌘K and the rail
|
|
70
|
+
* agree on every label.
|
|
71
|
+
*/
|
|
54
72
|
declare function useManagementAccess(): ManagementAccess;
|
|
55
73
|
|
|
56
74
|
/** A host destination outside the engine (members, usage, billing …). */
|
|
@@ -109,6 +127,116 @@ interface InterestsEditorProps {
|
|
|
109
127
|
*/
|
|
110
128
|
declare const InterestsEditor: ({ title, description, }: InterestsEditorProps) => react_jsx_runtime.JSX.Element;
|
|
111
129
|
|
|
130
|
+
interface MemoryManagerProps {
|
|
131
|
+
/**
|
|
132
|
+
* "sheet": the body of the Memories modal (chat surfaces, a close button, a
|
|
133
|
+
* fixed height). "page": the Settings page — searchable, and it grows with
|
|
134
|
+
* its list instead of scrolling inside a box.
|
|
135
|
+
*/
|
|
136
|
+
variant: "sheet" | "page";
|
|
137
|
+
/** On screen; memories load when this becomes true. The sheet passes its `open`. */
|
|
138
|
+
active?: boolean;
|
|
139
|
+
/** The sheet's close button. */
|
|
140
|
+
onClose?: () => void;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* What Bandit remembers: the memories you told it and the ones it noted
|
|
144
|
+
* itself, local to this browser or synced to your account. Add, edit, pin,
|
|
145
|
+
* delete, select several, clear by kind, and move local memories to the
|
|
146
|
+
* synced workspace. The Memories modal and the Personalization page both
|
|
147
|
+
* render this.
|
|
148
|
+
*/
|
|
149
|
+
declare const MemoryManager: React.FC<MemoryManagerProps>;
|
|
150
|
+
|
|
151
|
+
interface BanditPersonality {
|
|
152
|
+
name: string;
|
|
153
|
+
tagline: string;
|
|
154
|
+
systemPrompt: string;
|
|
155
|
+
commands: string[];
|
|
156
|
+
avatarBase64?: string | null;
|
|
157
|
+
avatarPreset?: string;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
interface CustomInstructions {
|
|
161
|
+
/** "What should Bandit know about you?" */
|
|
162
|
+
about: string;
|
|
163
|
+
/** "How would you like Bandit to respond?" */
|
|
164
|
+
responseStyle: string;
|
|
165
|
+
}
|
|
166
|
+
/** Character limits for new text. Migrated text longer than this is kept; it can only be shortened. */
|
|
167
|
+
declare const CUSTOM_INSTRUCTIONS_LIMITS: {
|
|
168
|
+
readonly about: 1500;
|
|
169
|
+
readonly responseStyle: 1500;
|
|
170
|
+
};
|
|
171
|
+
declare const ASSISTANT_INSTRUCTIONS_LIMIT = 4000;
|
|
172
|
+
/** Bandit's own voice: what answers when nobody has written instructions. */
|
|
173
|
+
declare const DEFAULT_ASSISTANT_INSTRUCTIONS: string;
|
|
174
|
+
declare const MIGRATIONS_RECORD_ID = "migrations";
|
|
175
|
+
/** One-time data moves, by name, with when they ran. */
|
|
176
|
+
interface MigrationsRecord {
|
|
177
|
+
id: typeof MIGRATIONS_RECORD_ID;
|
|
178
|
+
/** The customized active personality was copied into Custom instructions. */
|
|
179
|
+
customInstructionsFromPersonality?: {
|
|
180
|
+
at: number;
|
|
181
|
+
from: string | null;
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
interface PersonaPromptInput {
|
|
185
|
+
/** The workspace's Assistant instructions; empty when none were written. */
|
|
186
|
+
assistant: string;
|
|
187
|
+
custom: CustomInstructions;
|
|
188
|
+
/**
|
|
189
|
+
* The active personality's prompt (the pre-Phase-3 key), read for one more
|
|
190
|
+
* release so a workspace that has written nothing new keeps its voice.
|
|
191
|
+
*/
|
|
192
|
+
legacyPersonalityPrompt?: string | null;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* The PERSONA block's text. Assistant instructions come first; when the
|
|
196
|
+
* workspace wrote none, Bandit's default voice (or the legacy personality
|
|
197
|
+
* prompt) stands in — unless the person wrote Custom instructions, which then
|
|
198
|
+
* replace the default voice rather than compete with it. The person's two
|
|
199
|
+
* fields follow, labelled, so the model knows which is which.
|
|
200
|
+
*/
|
|
201
|
+
declare function composePersonaPrompt(input: PersonaPromptInput): string;
|
|
202
|
+
interface PersonalityMigrationInput {
|
|
203
|
+
/** The personality that answers chats today, if the model store has one. */
|
|
204
|
+
active: Pick<BanditPersonality, "name" | "systemPrompt"> | null | undefined;
|
|
205
|
+
/** What the person has already written; never overwritten. */
|
|
206
|
+
existing: CustomInstructions;
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Decides whether the active personality's prompt should seed Custom
|
|
210
|
+
* instructions: only when it was customized (differs from Bandit's default
|
|
211
|
+
* voice) and the person has not written a response style of their own.
|
|
212
|
+
* Returns the field to write, or null for nothing to do.
|
|
213
|
+
*/
|
|
214
|
+
declare function planPersonalityMigration(input: PersonalityMigrationInput): {
|
|
215
|
+
responseStyle: string;
|
|
216
|
+
} | null;
|
|
217
|
+
type InstructionsSaveState = "idle" | "saving" | "saved" | "error";
|
|
218
|
+
type PersonalityMigrationOutcome = "migrated" | "nothing-to-migrate" | "already-done" | "not-ready";
|
|
219
|
+
interface InstructionsStore {
|
|
220
|
+
custom: CustomInstructions;
|
|
221
|
+
assistant: string;
|
|
222
|
+
hydrated: boolean;
|
|
223
|
+
migration: MigrationsRecord["customInstructionsFromPersonality"] | null;
|
|
224
|
+
saveState: InstructionsSaveState;
|
|
225
|
+
lastSavedAt: number | null;
|
|
226
|
+
hydrate: () => Promise<void>;
|
|
227
|
+
saveCustomInstructions: (next: CustomInstructions) => Promise<boolean>;
|
|
228
|
+
saveAssistantInstructions: (text: string) => Promise<boolean>;
|
|
229
|
+
/**
|
|
230
|
+
* Copies a customized active personality into Custom instructions, once.
|
|
231
|
+
* `ready` says the model store has finished loading, so an empty list is a
|
|
232
|
+
* real answer and not a race; until then nothing is recorded.
|
|
233
|
+
*/
|
|
234
|
+
migrateFromPersonality: (active: Pick<BanditPersonality, "name" | "systemPrompt"> | null | undefined, ready: boolean) => Promise<PersonalityMigrationOutcome>;
|
|
235
|
+
/** The PERSONA block for the next message, with the legacy personality prompt as the fallback. */
|
|
236
|
+
personaPrompt: (legacyPersonalityPrompt?: string | null) => string;
|
|
237
|
+
}
|
|
238
|
+
declare const useInstructionsStore: zustand.UseBoundStore<zustand.StoreApi<InstructionsStore>>;
|
|
239
|
+
|
|
112
240
|
declare function defineCustomElement<Props extends Record<string, unknown>>(name: string, Component: React.ComponentType<Props>): void;
|
|
113
241
|
|
|
114
242
|
/**
|
|
@@ -1879,4 +2007,4 @@ declare const createStashShareLink: (args: {
|
|
|
1879
2007
|
signal?: AbortSignal;
|
|
1880
2008
|
}) => Promise<StashShareLink>;
|
|
1881
2009
|
|
|
1882
|
-
export { AIMessage, AUTH_TOKEN_CHANGED_EVENT, type ActionItem, type AuthSessionConfig, type AuthSessionHandlers, Chat, type CreateMemoryOptions, DebugLogger, FeatureEvaluation, FeatureFlagConfig, FeatureFlagContext, type FeatureFlagContextValue, FeatureFlagProvider, type FeatureFlagProviderProps, FeatureFlagService, FeatureKey, FeedbackButton, type FeedbackButtonProps, type FeedbackCategories, FeedbackModal, type FeedbackModalProps, type FeedbackPriorities, type FeedbackRequest, type FeedbackResponse, type FileUploadResult, type GatewayQueryOptions, InterestsEditor, type JwtClaims, type LogContext, MANAGEMENT_SECTIONS, MAX_RECORDING_BYTES, MAX_RECORDING_SECONDS, Management, type ManagementAccess, type ManagementAccessInput, type ManagementLink, type ManagementProps, type ManagementRequest, type ManagementSectionDef, type ManagementSectionId, type MeetingNotes, type ChatFn as MeetingNotesChatFn, MeetingNotesError, type MeetingNotesInput, type MeetingNotesProgress, type MeetingNotesResult, type MeetingNotesSource, type MeetingNotesStage, type MemorySearchFilters, type MigrationProgress, type MigrationStatus, type NotesMeta, type NotificationConfig, type NotificationContextType, NotificationProvider, type NotificationProviderProps, NotificationService, type ParsedTranscript, CHUNK_SECONDS as RECORDING_CHUNK_SECONDS, type RecordingTranscript, type RunMeetingNotesOptions, SYSTEM_FLAGS, type SearchOptions, type SearchResult, SpeechToTextError, StashError, type StashSaveResult, type StashShareLink, StreamingTTSClient, SubscriptionExpiredGuard, type SubscriptionExpiredGuardProps, SubscriptionExpiredModal, type SubscriptionExpiredModalProps, SubscriptionTier, TOKEN_KEY, type TTSOptions, type TTSProgress, TTSState, type TokenPersistence, type TokenStorageMode, type TranscriptFormat, type TranscriptSegment, TrialUsage, type UploadRequest, type UseTTSReturn, VectorDatabaseService, type VectorDocument, type VectorMemory, type VectorMemoryMetadata, VectorMigrationService, type VectorStoreStatus, type VoiceState, authenticationService, chunkTranscript, createStashShareLink, debugLogger, defineCustomElement, describeMeetingInput, featureFlagService, generateMeetingNotes, getCriticalConfig, getFeatureMatrix, getStreamingTTSClient, getSystemConstants, getTTSState, handleHttpError, handleSubscriptionUpgrade, handleValidationError, initializeCoreSystem, isMeetingFile, isRecordingFile, isTranscriptFileName, isWorkspaceAdminRole, looksLikeTranscript, meetingNotesErrorMessage, notesToHtml, notesToMarkdown, notificationService, parseNotesJson, parseTranscript, pauseTTS, previewTierUpgrade, resolveManagementSections, resumeTTS, runMeetingNotes, saveToStash, showInfoNotification, showSuccessNotification, speakStream as speakWithStreaming, stashAvailable, stopTTS, syncSubscriptionWithAPI, transcribeRecording, transcriptToText, updateSubscriptionTier, useFeatureFlag, useFeatureVisibility, useFeatures, useGatewayHealth, useGatewayMemory, useGatewayModels, useGlobalTTS, useManagementAccess, useNotification, useNotificationService, useTTS, useVectorStore, useVoiceStore, useVoices, validateEnvironment, validateSystemIntegrity, vectorDatabaseService, vectorMigrationService };
|
|
2010
|
+
export { AIMessage, ASSISTANT_INSTRUCTIONS_LIMIT, AUTH_TOKEN_CHANGED_EVENT, type ActionItem, type AuthSessionConfig, type AuthSessionHandlers, CUSTOM_INSTRUCTIONS_LIMITS, Chat, type CreateMemoryOptions, type CustomInstructions, DEFAULT_ASSISTANT_INSTRUCTIONS, DebugLogger, FeatureEvaluation, FeatureFlagConfig, FeatureFlagContext, type FeatureFlagContextValue, FeatureFlagProvider, type FeatureFlagProviderProps, FeatureFlagService, FeatureKey, FeedbackButton, type FeedbackButtonProps, type FeedbackCategories, FeedbackModal, type FeedbackModalProps, type FeedbackPriorities, type FeedbackRequest, type FeedbackResponse, type FileUploadResult, type GatewayQueryOptions, InterestsEditor, type JwtClaims, type LogContext, MANAGEMENT_SECTIONS, MAX_RECORDING_BYTES, MAX_RECORDING_SECONDS, Management, type ManagementAccess, type ManagementAccessInput, type ManagementLink, type ManagementProps, type ManagementRequest, type ManagementSectionDef, type ManagementSectionId, type MeetingNotes, type ChatFn as MeetingNotesChatFn, MeetingNotesError, type MeetingNotesInput, type MeetingNotesProgress, type MeetingNotesResult, type MeetingNotesSource, type MeetingNotesStage, MemoryManager, type MemoryManagerProps, type MemorySearchFilters, type MigrationProgress, type MigrationStatus, type NotesMeta, type NotificationConfig, type NotificationContextType, NotificationProvider, type NotificationProviderProps, NotificationService, type ParsedTranscript, type PersonaPromptInput, CHUNK_SECONDS as RECORDING_CHUNK_SECONDS, type RecordingTranscript, type RunMeetingNotesOptions, SYSTEM_FLAGS, type SearchOptions, type SearchResult, SpeechToTextError, StashError, type StashSaveResult, type StashShareLink, StreamingTTSClient, SubscriptionExpiredGuard, type SubscriptionExpiredGuardProps, SubscriptionExpiredModal, type SubscriptionExpiredModalProps, SubscriptionTier, TOKEN_KEY, type TTSOptions, type TTSProgress, TTSState, type TokenPersistence, type TokenStorageMode, type TranscriptFormat, type TranscriptSegment, TrialUsage, type UploadRequest, type UseTTSReturn, VectorDatabaseService, type VectorDocument, type VectorMemory, type VectorMemoryMetadata, VectorMigrationService, type VectorStoreStatus, type VoiceState, authenticationService, chunkTranscript, composePersonaPrompt, createStashShareLink, debugLogger, defineCustomElement, describeMeetingInput, featureFlagService, generateMeetingNotes, getCriticalConfig, getFeatureMatrix, getStreamingTTSClient, getSystemConstants, getTTSState, handleHttpError, handleSubscriptionUpgrade, handleValidationError, initializeCoreSystem, isMeetingFile, isRecordingFile, isTranscriptFileName, isWorkspaceAdminRole, looksLikeTranscript, meetingNotesErrorMessage, notesToHtml, notesToMarkdown, notificationService, parseNotesJson, parseTranscript, pauseTTS, planPersonalityMigration, previewTierUpgrade, resolveManagementSections, resumeTTS, runMeetingNotes, saveToStash, showInfoNotification, showSuccessNotification, speakStream as speakWithStreaming, stashAvailable, stopTTS, syncSubscriptionWithAPI, transcribeRecording, transcriptToText, updateSubscriptionTier, useFeatureFlag, useFeatureVisibility, useFeatures, useGatewayHealth, useGatewayMemory, useGatewayModels, useGlobalTTS, useInstructionsStore, useManagementAccess, useNotification, useNotificationService, useTTS, useVectorStore, useVoiceStore, useVoices, validateEnvironment, validateSystemIntegrity, vectorDatabaseService, vectorMigrationService };
|