@assistant-ui/react 0.5.4 → 0.5.6

Sign up to get free protection for your applications and to get access to all the features.
package/dist/index.d.mts CHANGED
@@ -239,6 +239,7 @@ declare class LocalThreadRuntime implements ThreadRuntime {
239
239
  private abortController;
240
240
  private readonly repository;
241
241
  readonly capabilities: Readonly<{
242
+ switchToBranch: true;
242
243
  edit: true;
243
244
  reload: true;
244
245
  cancel: true;
@@ -641,6 +642,7 @@ declare class ExternalStoreThreadRuntime implements ReactThreadRuntime {
641
642
  private assistantOptimisticId;
642
643
  private useStore;
643
644
  get capabilities(): {
645
+ switchToBranch: boolean;
644
646
  edit: boolean;
645
647
  reload: boolean;
646
648
  cancel: boolean;
@@ -683,13 +685,15 @@ type AddToolResultOptions = {
683
685
  toolCallId: string;
684
686
  result: any;
685
687
  };
688
+ type RuntimeCapabilities = {
689
+ switchToBranch: boolean;
690
+ edit: boolean;
691
+ reload: boolean;
692
+ cancel: boolean;
693
+ copy: boolean;
694
+ };
686
695
  type ThreadActionsState = Readonly<{
687
- capabilities: Readonly<{
688
- edit: boolean;
689
- reload: boolean;
690
- cancel: boolean;
691
- copy: boolean;
692
- }>;
696
+ capabilities: Readonly<RuntimeCapabilities>;
693
697
  getBranches: (messageId: string) => readonly string[];
694
698
  switchToBranch: (branchId: string) => void;
695
699
  append: (message: AppendMessage) => void;
@@ -1202,8 +1206,8 @@ type AvatarProps = {
1202
1206
  };
1203
1207
 
1204
1208
  type SuggestionConfig = {
1205
- text: string;
1206
- prompt?: string;
1209
+ text?: ReactNode;
1210
+ prompt: string;
1207
1211
  };
1208
1212
  type ThreadWelcomeConfig = {
1209
1213
  message?: string | null | undefined;
@@ -1219,6 +1223,9 @@ type AssistantMessageConfig = {
1219
1223
  Text?: TextContentPartComponent | undefined;
1220
1224
  } | undefined;
1221
1225
  };
1226
+ type BranchPickerConfig = {
1227
+ allowBranchPicker?: boolean | undefined;
1228
+ };
1222
1229
  type StringsConfig = {
1223
1230
  assistantModal?: {
1224
1231
  open: {
@@ -1291,6 +1298,7 @@ type ThreadConfig = {
1291
1298
  welcome?: ThreadWelcomeConfig;
1292
1299
  assistantMessage?: AssistantMessageConfig;
1293
1300
  userMessage?: UserMessageConfig;
1301
+ branchPicker?: BranchPickerConfig;
1294
1302
  strings?: StringsConfig;
1295
1303
  };
1296
1304
  declare const useThreadConfig: () => Omit<ThreadConfig, "runtime">;
package/dist/index.d.ts CHANGED
@@ -239,6 +239,7 @@ declare class LocalThreadRuntime implements ThreadRuntime {
239
239
  private abortController;
240
240
  private readonly repository;
241
241
  readonly capabilities: Readonly<{
242
+ switchToBranch: true;
242
243
  edit: true;
243
244
  reload: true;
244
245
  cancel: true;
@@ -641,6 +642,7 @@ declare class ExternalStoreThreadRuntime implements ReactThreadRuntime {
641
642
  private assistantOptimisticId;
642
643
  private useStore;
643
644
  get capabilities(): {
645
+ switchToBranch: boolean;
644
646
  edit: boolean;
645
647
  reload: boolean;
646
648
  cancel: boolean;
@@ -683,13 +685,15 @@ type AddToolResultOptions = {
683
685
  toolCallId: string;
684
686
  result: any;
685
687
  };
688
+ type RuntimeCapabilities = {
689
+ switchToBranch: boolean;
690
+ edit: boolean;
691
+ reload: boolean;
692
+ cancel: boolean;
693
+ copy: boolean;
694
+ };
686
695
  type ThreadActionsState = Readonly<{
687
- capabilities: Readonly<{
688
- edit: boolean;
689
- reload: boolean;
690
- cancel: boolean;
691
- copy: boolean;
692
- }>;
696
+ capabilities: Readonly<RuntimeCapabilities>;
693
697
  getBranches: (messageId: string) => readonly string[];
694
698
  switchToBranch: (branchId: string) => void;
695
699
  append: (message: AppendMessage) => void;
@@ -1202,8 +1206,8 @@ type AvatarProps = {
1202
1206
  };
1203
1207
 
1204
1208
  type SuggestionConfig = {
1205
- text: string;
1206
- prompt?: string;
1209
+ text?: ReactNode;
1210
+ prompt: string;
1207
1211
  };
1208
1212
  type ThreadWelcomeConfig = {
1209
1213
  message?: string | null | undefined;
@@ -1219,6 +1223,9 @@ type AssistantMessageConfig = {
1219
1223
  Text?: TextContentPartComponent | undefined;
1220
1224
  } | undefined;
1221
1225
  };
1226
+ type BranchPickerConfig = {
1227
+ allowBranchPicker?: boolean | undefined;
1228
+ };
1222
1229
  type StringsConfig = {
1223
1230
  assistantModal?: {
1224
1231
  open: {
@@ -1291,6 +1298,7 @@ type ThreadConfig = {
1291
1298
  welcome?: ThreadWelcomeConfig;
1292
1299
  assistantMessage?: AssistantMessageConfig;
1293
1300
  userMessage?: UserMessageConfig;
1301
+ branchPicker?: BranchPickerConfig;
1294
1302
  strings?: StringsConfig;
1295
1303
  };
1296
1304
  declare const useThreadConfig: () => Omit<ThreadConfig, "runtime">;
package/dist/index.js CHANGED
@@ -3440,6 +3440,7 @@ var shouldContinue = (result) => result.status?.type === "requires-action" && re
3440
3440
 
3441
3441
  // src/runtimes/local/LocalThreadRuntime.tsx
3442
3442
  var CAPABILITIES = Object.freeze({
3443
+ switchToBranch: true,
3443
3444
  edit: true,
3444
3445
  reload: true,
3445
3446
  cancel: true,
@@ -3713,6 +3714,7 @@ var ExternalStoreThreadRuntime = class {
3713
3714
  useStore;
3714
3715
  get capabilities() {
3715
3716
  return {
3717
+ switchToBranch: this.store.setMessages !== void 0,
3716
3718
  edit: this.store.onEdit !== void 0,
3717
3719
  reload: this.store.onReload !== void 0,
3718
3720
  cancel: this.store.onCancel !== void 0,
@@ -3725,6 +3727,8 @@ var ExternalStoreThreadRuntime = class {
3725
3727
  return this.repository.getBranches(messageId);
3726
3728
  }
3727
3729
  switchToBranch(branchId) {
3730
+ if (!this.store.setMessages)
3731
+ throw new Error("Runtime does not support switching branches.");
3728
3732
  this.repository.switchToBranch(branchId);
3729
3733
  this.updateMessages(this.repository.getMessages());
3730
3734
  }
@@ -3954,7 +3958,15 @@ var import_react60 = require("react");
3954
3958
  var import_react59 = require("react");
3955
3959
  var import_lucide_react2 = require("lucide-react");
3956
3960
  var import_jsx_runtime31 = require("react/jsx-runtime");
3961
+ var useAllowBranchPicker = () => {
3962
+ const { branchPicker: { allowBranchPicker = true } = {} } = useThreadConfig();
3963
+ const { useThreadActions } = useThreadContext();
3964
+ const branchPickerSupported = useThreadActions((t) => t.capabilities.edit);
3965
+ return branchPickerSupported && allowBranchPicker;
3966
+ };
3957
3967
  var BranchPicker = () => {
3968
+ const allowBranchPicker = useAllowBranchPicker();
3969
+ if (!allowBranchPicker) return null;
3958
3970
  return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(BranchPickerRoot, { hideWhenSingleBranch: true, children: [
3959
3971
  /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(BranchPickerPrevious2, {}),
3960
3972
  /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(BranchPickerState, {}),
@@ -4237,10 +4249,10 @@ var ThreadWelcomeSuggestion = ({
4237
4249
  return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
4238
4250
  ThreadWelcomeSuggestionStyled,
4239
4251
  {
4240
- prompt: prompt ?? text,
4252
+ prompt,
4241
4253
  method: "replace",
4242
4254
  autoSend: true,
4243
- children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { className: "aui-thread-welcome-suggestion-text", children: text })
4255
+ children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { className: "aui-thread-welcome-suggestion-text", children: text ?? prompt })
4244
4256
  }
4245
4257
  );
4246
4258
  };