@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.
Files changed (83) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/dist/AdvancedTab-HZTDXFST.mjs +229 -0
  3. package/dist/AdvancedTab-HZTDXFST.mjs.map +1 -0
  4. package/dist/CrewSection-YM26YD2N.mjs +12 -0
  5. package/dist/InstructionsTab-MKOGBQ5L.mjs +195 -0
  6. package/dist/InstructionsTab-MKOGBQ5L.mjs.map +1 -0
  7. package/dist/PersonalizationTab-2XHFTYYW.mjs +179 -0
  8. package/dist/PersonalizationTab-2XHFTYYW.mjs.map +1 -0
  9. package/dist/{ProjectsPane-BSVOVNK7.mjs → ProjectsPane-KE5DGFN4.mjs} +11 -8
  10. package/dist/ProjectsPane-KE5DGFN4.mjs.map +1 -0
  11. package/dist/{SchedulesTab-TCUOAKLH.mjs → SchedulesTab-AM5QP36K.mjs} +8 -6
  12. package/dist/SchedulesTab-AM5QP36K.mjs.map +1 -0
  13. package/dist/{aiProviderStore-ANPQVHGD.mjs → aiProviderStore-GH4JZTMW.mjs} +3 -2
  14. package/dist/chat-D66YM4MB.mjs +26 -0
  15. package/dist/{chunk-SK7FSLCY.mjs → chunk-2FI2IICG.mjs} +7 -564
  16. package/dist/chunk-2FI2IICG.mjs.map +1 -0
  17. package/dist/{chunk-4257FVLK.mjs → chunk-2HFSBPOE.mjs} +6 -1
  18. package/dist/chunk-2HFSBPOE.mjs.map +1 -0
  19. package/dist/chunk-2THUYNVU.mjs +1203 -0
  20. package/dist/chunk-2THUYNVU.mjs.map +1 -0
  21. package/dist/{chunk-KWOUXBSF.mjs → chunk-5LXCZJLJ.mjs} +5 -213
  22. package/dist/chunk-5LXCZJLJ.mjs.map +1 -0
  23. package/dist/{chunk-ZG66NJC3.mjs → chunk-5URP2E5V.mjs} +3 -6
  24. package/dist/chunk-5URP2E5V.mjs.map +1 -0
  25. package/dist/chunk-5WCKKD3S.mjs +1742 -0
  26. package/dist/chunk-5WCKKD3S.mjs.map +1 -0
  27. package/dist/{chunk-GX4FVZNA.mjs → chunk-DHXSFFLX.mjs} +4 -26
  28. package/dist/chunk-DHXSFFLX.mjs.map +1 -0
  29. package/dist/chunk-EKPPIS3X.mjs +336 -0
  30. package/dist/chunk-EKPPIS3X.mjs.map +1 -0
  31. package/dist/chunk-FBLITVVY.mjs +5845 -0
  32. package/dist/chunk-FBLITVVY.mjs.map +1 -0
  33. package/dist/chunk-H2XUGGKV.mjs +168 -0
  34. package/dist/chunk-H2XUGGKV.mjs.map +1 -0
  35. package/dist/chunk-K4AO466X.mjs +570 -0
  36. package/dist/chunk-K4AO466X.mjs.map +1 -0
  37. package/dist/chunk-KPT7NNNK.mjs +214 -0
  38. package/dist/chunk-KPT7NNNK.mjs.map +1 -0
  39. package/dist/{chunk-IXD2TDA5.mjs → chunk-LAH6UL3Q.mjs} +11 -1727
  40. package/dist/chunk-LAH6UL3Q.mjs.map +1 -0
  41. package/dist/chunk-LC64VSDS.mjs +541 -0
  42. package/dist/chunk-LC64VSDS.mjs.map +1 -0
  43. package/dist/{chunk-DH5A2HT2.mjs → chunk-LY3O7UWA.mjs} +45 -1
  44. package/dist/chunk-LY3O7UWA.mjs.map +1 -0
  45. package/dist/chunk-WBKTQJNX.mjs +21 -0
  46. package/dist/chunk-WBKTQJNX.mjs.map +1 -0
  47. package/dist/{chunk-XGIQNHUO.mjs → chunk-WZGDQ4EA.mjs} +5776 -11713
  48. package/dist/chunk-WZGDQ4EA.mjs.map +1 -0
  49. package/dist/chunk-Y272M3D5.mjs +28 -0
  50. package/dist/chunk-Y272M3D5.mjs.map +1 -0
  51. package/dist/image-compare-NW5VCP4Q.mjs +74 -0
  52. package/dist/image-compare-NW5VCP4Q.mjs.map +1 -0
  53. package/dist/image-edit-acknowledgement-RZPQYKYJ.mjs +54 -0
  54. package/dist/image-edit-acknowledgement-RZPQYKYJ.mjs.map +1 -0
  55. package/dist/index.d.mts +135 -7
  56. package/dist/index.d.ts +135 -7
  57. package/dist/index.js +10491 -8632
  58. package/dist/index.js.map +1 -1
  59. package/dist/index.mjs +1393 -2368
  60. package/dist/index.mjs.map +1 -1
  61. package/dist/{modelStore-YNANSWCN.mjs → modelStore-KO45QAO2.mjs} +3 -2
  62. package/dist/modelStore-KO45QAO2.mjs.map +1 -0
  63. package/dist/{public-Tq2Pmw9m.d.mts → public-_W_Zew3C.d.mts} +14 -0
  64. package/dist/{public-Tq2Pmw9m.d.ts → public-_W_Zew3C.d.ts} +14 -0
  65. package/dist/public-types.d.mts +1 -1
  66. package/dist/public-types.d.ts +1 -1
  67. package/dist/{schedule-confirm-card-7CMATYSP.mjs → schedule-confirm-card-D4K76HEA.mjs} +5 -5
  68. package/package.json +1 -1
  69. package/dist/ProjectsPane-BSVOVNK7.mjs.map +0 -1
  70. package/dist/SchedulesTab-TCUOAKLH.mjs.map +0 -1
  71. package/dist/chat-Y7KPN54G.mjs +0 -18
  72. package/dist/chunk-4257FVLK.mjs.map +0 -1
  73. package/dist/chunk-DH5A2HT2.mjs.map +0 -1
  74. package/dist/chunk-GX4FVZNA.mjs.map +0 -1
  75. package/dist/chunk-IXD2TDA5.mjs.map +0 -1
  76. package/dist/chunk-KWOUXBSF.mjs.map +0 -1
  77. package/dist/chunk-SK7FSLCY.mjs.map +0 -1
  78. package/dist/chunk-XGIQNHUO.mjs.map +0 -1
  79. package/dist/chunk-ZG66NJC3.mjs.map +0 -1
  80. /package/dist/{aiProviderStore-ANPQVHGD.mjs.map → CrewSection-YM26YD2N.mjs.map} +0 -0
  81. /package/dist/{chat-Y7KPN54G.mjs.map → aiProviderStore-GH4JZTMW.mjs.map} +0 -0
  82. /package/dist/{modelStore-YNANSWCN.mjs.map → chat-D66YM4MB.mjs.map} +0 -0
  83. /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-Tq2Pmw9m.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-Tq2Pmw9m.mjs';
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. Order is the sidebar order. */
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 Schedules and Preferences.
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
- /** The signed-in user's Management access. Hosts use it to build their command palette. */
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-Tq2Pmw9m.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-Tq2Pmw9m.js';
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. Order is the sidebar order. */
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 Schedules and Preferences.
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
- /** The signed-in user's Management access. Hosts use it to build their command palette. */
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 };