@assistant-ui/react 0.5.46 → 0.5.48

Sign up to get free protection for your applications and to get access to all the features.
@@ -649,7 +649,8 @@
649
649
  cursor: not-allowed;
650
650
  }
651
651
  .aui-composer-send,
652
- .aui-composer-cancel {
652
+ .aui-composer-cancel,
653
+ .aui-composer-attach {
653
654
  margin-top: 0.625rem;
654
655
  margin-bottom: 0.625rem;
655
656
  width: 2rem;
@@ -661,6 +662,33 @@
661
662
  transition-timing-function: cubic-bezier(0.4, 0, 1, 1);
662
663
  animation-timing-function: cubic-bezier(0.4, 0, 1, 1);
663
664
  }
665
+ .aui-composer-attachments {
666
+ display: flex;
667
+ width: 100%;
668
+ flex-direction: row;
669
+ gap: 0.75rem;
670
+ padding-left: 2.5rem;
671
+ padding-right: 2.5rem;
672
+ }
673
+ .aui-composer-attachment-root {
674
+ position: relative;
675
+ margin-top: 1rem;
676
+ display: flex;
677
+ width: 5rem;
678
+ height: 5rem;
679
+ align-items: center;
680
+ justify-content: center;
681
+ border-radius: var(--aui-radius);
682
+ background-color: hsl(var(--aui-muted));
683
+ padding: 0.5rem;
684
+ }
685
+ .aui-composer-attachment-remove {
686
+ position: absolute;
687
+ right: -0.75rem;
688
+ top: -0.75rem;
689
+ width: 1.75rem;
690
+ height: 1.75rem;
691
+ }
664
692
  .aui-user-message-root {
665
693
  display: grid;
666
694
  grid-auto-rows: auto;
@@ -678,17 +706,24 @@
678
706
  }
679
707
  :where(.aui-user-message-root) > .aui-user-action-bar-root {
680
708
  grid-column-start: 1;
709
+ grid-row-start: 2;
681
710
  margin-right: 0.75rem;
682
711
  margin-top: 0.625rem;
683
712
  }
713
+ :where(.aui-user-message-root) > .aui-user-message-attachments {
714
+ grid-column: 1 / -1;
715
+ grid-column-start: 1;
716
+ grid-row-start: 1;
717
+ justify-content: flex-end;
718
+ }
684
719
  :where(.aui-user-message-root) > .aui-user-message-content {
685
720
  grid-column-start: 2;
686
- grid-row-start: 1;
721
+ grid-row-start: 2;
687
722
  }
688
723
  :where(.aui-user-message-root) > .aui-branch-picker-root {
689
724
  grid-column: 1 / -1;
690
725
  grid-column-start: 1;
691
- grid-row-start: 2;
726
+ grid-row-start: 3;
692
727
  margin-right: -0.25rem;
693
728
  justify-content: flex-end;
694
729
  }
@@ -703,6 +738,23 @@
703
738
  padding-bottom: 0.625rem;
704
739
  color: hsl(var(--aui-foreground));
705
740
  }
741
+ .aui-user-message-attachments {
742
+ display: flex;
743
+ width: 100%;
744
+ flex-direction: row;
745
+ gap: 0.75rem;
746
+ }
747
+ .aui-user-message-attachment-root {
748
+ position: relative;
749
+ display: flex;
750
+ width: 5rem;
751
+ height: 5rem;
752
+ align-items: center;
753
+ justify-content: center;
754
+ border-radius: var(--aui-radius);
755
+ background-color: hsl(var(--aui-muted));
756
+ padding: 0.5rem;
757
+ }
706
758
  .aui-user-action-bar-root {
707
759
  display: flex;
708
760
  flex-direction: column;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/styles/base.css","../../src/styles/tailwindcss/base-components.css","../../src/styles/tailwindcss/thread.css","../../src/styles/themes/default.css"],"sourcesContent":["/*\n! tailwindcss v3.4.10 | MIT License | https://tailwindcss.com\n*//*\n1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)\n2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)\n*/\n\n:where(.aui-root) *,\n:where(.aui-root) ::before,\n:where(.aui-root) ::after {\n box-sizing: border-box; /* 1 */\n border-width: 0; /* 2 */\n border-style: solid; /* 2 */\n border-color: #e5e7eb; /* 2 */\n}\n\n:where(.aui-root) ::before,\n:where(.aui-root) ::after {\n --aui-content: '';\n}\n\n/*\n1. Use a consistent sensible line-height in all browsers.\n2. Prevent adjustments of font size after orientation changes in iOS.\n3. Use a more readable tab size.\n4. Use the user's configured `sans` font-family by default.\n5. Use the user's configured `sans` font-feature-settings by default.\n6. Use the user's configured `sans` font-variation-settings by default.\n7. Disable tap highlights on iOS\n*/\n\n:where(.aui-root) html,\n:where(.aui-root) :host {\n line-height: 1.5; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n -moz-tab-size: 4; /* 3 */\n -o-tab-size: 4;\n tab-size: 4; /* 3 */\n font-family: ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\"; /* 4 */\n font-feature-settings: normal; /* 5 */\n font-variation-settings: normal; /* 6 */\n -webkit-tap-highlight-color: transparent; /* 7 */\n}\n\n/*\n1. Remove the margin in all browsers.\n2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.\n*/\n\n:where(.aui-root) body {\n margin: 0; /* 1 */\n line-height: inherit; /* 2 */\n}\n\n/*\n1. Add the correct height in Firefox.\n2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)\n3. Ensure horizontal rules are visible by default.\n*/\n\n:where(.aui-root) hr {\n height: 0; /* 1 */\n color: inherit; /* 2 */\n border-top-width: 1px; /* 3 */\n}\n\n/*\nAdd the correct text decoration in Chrome, Edge, and Safari.\n*/\n\n:where(.aui-root) abbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n}\n\n/*\nRemove the default font size and weight for headings.\n*/\n\n:where(.aui-root) h1,\n:where(.aui-root) h2,\n:where(.aui-root) h3,\n:where(.aui-root) h4,\n:where(.aui-root) h5,\n:where(.aui-root) h6 {\n font-size: inherit;\n font-weight: inherit;\n}\n\n/*\nReset links to optimize for opt-in styling instead of opt-out.\n*/\n\n:where(.aui-root) a {\n color: inherit;\n text-decoration: inherit;\n}\n\n/*\nAdd the correct font weight in Edge and Safari.\n*/\n\n:where(.aui-root) b,\n:where(.aui-root) strong {\n font-weight: bolder;\n}\n\n/*\n1. Use the user's configured `mono` font-family by default.\n2. Use the user's configured `mono` font-feature-settings by default.\n3. Use the user's configured `mono` font-variation-settings by default.\n4. Correct the odd `em` font sizing in all browsers.\n*/\n\n:where(.aui-root) code,\n:where(.aui-root) kbd,\n:where(.aui-root) samp,\n:where(.aui-root) pre {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace; /* 1 */\n font-feature-settings: normal; /* 2 */\n font-variation-settings: normal; /* 3 */\n font-size: 1em; /* 4 */\n}\n\n/*\nAdd the correct font size in all browsers.\n*/\n\n:where(.aui-root) small {\n font-size: 80%;\n}\n\n/*\nPrevent `sub` and `sup` elements from affecting the line height in all browsers.\n*/\n\n:where(.aui-root) sub,\n:where(.aui-root) sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\n:where(.aui-root) sub {\n bottom: -0.25em;\n}\n\n:where(.aui-root) sup {\n top: -0.5em;\n}\n\n/*\n1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)\n2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)\n3. Remove gaps between table borders by default.\n*/\n\n:where(.aui-root) table {\n text-indent: 0; /* 1 */\n border-color: inherit; /* 2 */\n border-collapse: collapse; /* 3 */\n}\n\n/*\n1. Change the font styles in all browsers.\n2. Remove the margin in Firefox and Safari.\n3. Remove default padding in all browsers.\n*/\n\n:where(.aui-root) button,\n:where(.aui-root) input,\n:where(.aui-root) optgroup,\n:where(.aui-root) select,\n:where(.aui-root) textarea {\n font-family: inherit; /* 1 */\n font-feature-settings: inherit; /* 1 */\n font-variation-settings: inherit; /* 1 */\n font-size: 100%; /* 1 */\n font-weight: inherit; /* 1 */\n line-height: inherit; /* 1 */\n letter-spacing: inherit; /* 1 */\n color: inherit; /* 1 */\n margin: 0; /* 2 */\n padding: 0; /* 3 */\n}\n\n/*\nRemove the inheritance of text transform in Edge and Firefox.\n*/\n\n:where(.aui-root) button,\n:where(.aui-root) select {\n text-transform: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Remove default button styles.\n*/\n\n:where(.aui-root) button,\n:where(.aui-root) input:where([type='button']),\n:where(.aui-root) input:where([type='reset']),\n:where(.aui-root) input:where([type='submit']) {\n -webkit-appearance: button; /* 1 */\n background-color: transparent; /* 2 */\n background-image: none; /* 2 */\n}\n\n/*\nUse the modern Firefox focus style for all focusable elements.\n*/\n\n:where(.aui-root) :-moz-focusring {\n outline: auto;\n}\n\n/*\nRemove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)\n*/\n\n:where(.aui-root) :-moz-ui-invalid {\n box-shadow: none;\n}\n\n/*\nAdd the correct vertical alignment in Chrome and Firefox.\n*/\n\n:where(.aui-root) progress {\n vertical-align: baseline;\n}\n\n/*\nCorrect the cursor style of increment and decrement buttons in Safari.\n*/\n\n:where(.aui-root) ::-webkit-inner-spin-button,\n:where(.aui-root) ::-webkit-outer-spin-button {\n height: auto;\n}\n\n/*\n1. Correct the odd appearance in Chrome and Safari.\n2. Correct the outline style in Safari.\n*/\n\n:where(.aui-root) [type='search'] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/*\nRemove the inner padding in Chrome and Safari on macOS.\n*/\n\n:where(.aui-root) ::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Change font properties to `inherit` in Safari.\n*/\n\n:where(.aui-root) ::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/*\nAdd the correct display in Chrome and Safari.\n*/\n\n:where(.aui-root) summary {\n display: list-item;\n}\n\n/*\nRemoves the default spacing and border for appropriate elements.\n*/\n\n:where(.aui-root) blockquote,\n:where(.aui-root) dl,\n:where(.aui-root) dd,\n:where(.aui-root) h1,\n:where(.aui-root) h2,\n:where(.aui-root) h3,\n:where(.aui-root) h4,\n:where(.aui-root) h5,\n:where(.aui-root) h6,\n:where(.aui-root) hr,\n:where(.aui-root) figure,\n:where(.aui-root) p,\n:where(.aui-root) pre {\n margin: 0;\n}\n\n:where(.aui-root) fieldset {\n margin: 0;\n padding: 0;\n}\n\n:where(.aui-root) legend {\n padding: 0;\n}\n\n:where(.aui-root) ol,\n:where(.aui-root) ul,\n:where(.aui-root) menu {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n/*\nReset default styling for dialogs.\n*/\n\n:where(.aui-root) dialog {\n padding: 0;\n}\n\n/*\nPrevent resizing textareas horizontally by default.\n*/\n\n:where(.aui-root) textarea {\n resize: vertical;\n}\n\n/*\n1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)\n2. Set the default placeholder color to the user's configured gray 400 color.\n*/\n\n:where(.aui-root) input::-moz-placeholder, :where(.aui-root) textarea::-moz-placeholder {\n opacity: 1; /* 1 */\n color: #9ca3af; /* 2 */\n}\n\n:where(.aui-root) input::placeholder,\n:where(.aui-root) textarea::placeholder {\n opacity: 1; /* 1 */\n color: #9ca3af; /* 2 */\n}\n\n/*\nSet the default cursor for buttons.\n*/\n\n:where(.aui-root) button,\n:where(.aui-root) [role=\"button\"] {\n cursor: pointer;\n}\n\n/*\nMake sure disabled buttons don't get the pointer cursor.\n*/\n\n:where(.aui-root) :disabled {\n cursor: default;\n}\n\n/*\n1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)\n2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)\n This can trigger a poorly considered lint error in some tools but is included by design.\n*/\n\n:where(.aui-root) img,\n:where(.aui-root) svg,\n:where(.aui-root) video,\n:where(.aui-root) canvas,\n:where(.aui-root) audio,\n:where(.aui-root) iframe,\n:where(.aui-root) embed,\n:where(.aui-root) object {\n display: block; /* 1 */\n vertical-align: middle; /* 2 */\n}\n\n/*\nConstrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)\n*/\n\n:where(.aui-root) img,\n:where(.aui-root) video {\n max-width: 100%;\n height: auto;\n}\n\n/* Make elements with the HTML hidden attribute stay hidden by default */\n\n:where(.aui-root) [hidden] {\n display: none;\n}\n\n:where(.aui-root) *, :where(.aui-root) ::before, :where(.aui-root) ::after {\n --aui-border-spacing-x: 0;\n --aui-border-spacing-y: 0;\n --aui-translate-x: 0;\n --aui-translate-y: 0;\n --aui-rotate: 0;\n --aui-skew-x: 0;\n --aui-skew-y: 0;\n --aui-scale-x: 1;\n --aui-scale-y: 1;\n --aui-ring-inset: ;\n --aui-ring-offset-width: 0px;\n --aui-ring-offset-color: #fff;\n --aui-ring-color: rgb(59 130 246 / 0.5);\n --aui-ring-offset-shadow: 0 0 #0000;\n --aui-ring-shadow: 0 0 #0000;\n --aui-shadow: 0 0 #0000;\n --aui-shadow-colored: 0 0 #0000;\n --aui-blur: ;\n --aui-brightness: ;\n --aui-contrast: ;\n --aui-grayscale: ;\n --aui-hue-rotate: ;\n --aui-invert: ;\n --aui-saturate: ;\n --aui-sepia: ;\n --aui-drop-shadow: ;\n --aui-backdrop-blur: ;\n --aui-backdrop-brightness: ;\n --aui-backdrop-contrast: ;\n --aui-backdrop-grayscale: ;\n --aui-backdrop-hue-rotate: ;\n --aui-backdrop-invert: ;\n --aui-backdrop-opacity: ;\n --aui-backdrop-saturate: ;\n --aui-backdrop-sepia: ;\n --aui-contain-size: ;\n --aui-contain-layout: ;\n --aui-contain-paint: ;\n --aui-contain-style: ;\n}\n\n:where(.aui-root) ::backdrop {\n --aui-border-spacing-x: 0;\n --aui-border-spacing-y: 0;\n --aui-translate-x: 0;\n --aui-translate-y: 0;\n --aui-rotate: 0;\n --aui-skew-x: 0;\n --aui-skew-y: 0;\n --aui-scale-x: 1;\n --aui-scale-y: 1;\n --aui-ring-inset: ;\n --aui-ring-offset-width: 0px;\n --aui-ring-offset-color: #fff;\n --aui-ring-color: rgb(59 130 246 / 0.5);\n --aui-ring-offset-shadow: 0 0 #0000;\n --aui-ring-shadow: 0 0 #0000;\n --aui-shadow: 0 0 #0000;\n --aui-shadow-colored: 0 0 #0000;\n --aui-blur: ;\n --aui-brightness: ;\n --aui-contrast: ;\n --aui-grayscale: ;\n --aui-hue-rotate: ;\n --aui-invert: ;\n --aui-saturate: ;\n --aui-sepia: ;\n --aui-drop-shadow: ;\n --aui-backdrop-blur: ;\n --aui-backdrop-brightness: ;\n --aui-backdrop-contrast: ;\n --aui-backdrop-grayscale: ;\n --aui-backdrop-hue-rotate: ;\n --aui-backdrop-invert: ;\n --aui-backdrop-opacity: ;\n --aui-backdrop-saturate: ;\n --aui-backdrop-sepia: ;\n --aui-contain-size: ;\n --aui-contain-layout: ;\n --aui-contain-paint: ;\n --aui-contain-style: ;\n}\n\n@keyframes aui-enter {\n from {\n opacity: var(--aui-enter-opacity, 1);\n transform: translate3d(\n var(--aui-enter-translate-x, 0),\n var(--aui-enter-translate-y, 0),\n 0\n )\n scale3d(\n var(--aui-enter-scale, 1),\n var(--aui-enter-scale, 1),\n var(--aui-enter-scale, 1)\n )\n rotate(var(--aui-enter-rotate, 0));\n }\n}\n\n@keyframes aui-exit {\n to {\n opacity: var(--aui-exit-opacity, 1);\n transform: translate3d(\n var(--aui-exit-translate-x, 0),\n var(--aui-exit-translate-y, 0),\n 0\n )\n scale3d(\n var(--aui-exit-scale, 1),\n var(--aui-exit-scale, 1),\n var(--aui-exit-scale, 1)\n )\n rotate(var(--aui-exit-rotate, 0));\n }\n}\n",".aui-root {\n border-color: hsl(var(--aui-border));\n color: hsl(var(--aui-foreground))\n}\n\n/* button */\n.aui-button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n white-space: nowrap;\n border-radius: calc(var(--aui-radius) - 2px);\n font-size: 0.875rem;\n line-height: 1.25rem;\n font-weight: 500;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms\n}\n.aui-button:focus-visible {\n outline: 2px solid transparent;\n outline-offset: 2px;\n --aui-ring-offset-shadow: var(--aui-ring-inset) 0 0 0 var(--aui-ring-offset-width) var(--aui-ring-offset-color);\n --aui-ring-shadow: var(--aui-ring-inset) 0 0 0 calc(1px + var(--aui-ring-offset-width)) var(--aui-ring-color);\n box-shadow: var(--aui-ring-offset-shadow), var(--aui-ring-shadow), var(--aui-shadow, 0 0 #0000);\n --aui-ring-color: hsl(var(--aui-ring))\n}\n.aui-button:disabled {\n pointer-events: none;\n opacity: 0.5\n}\n\n.aui-button-primary {\n background-color: hsl(var(--aui-primary));\n color: hsl(var(--aui-primary-foreground));\n --aui-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);\n --aui-shadow-colored: 0 1px 3px 0 var(--aui-shadow-color), 0 1px 2px -1px var(--aui-shadow-color);\n box-shadow: var(--aui-ring-offset-shadow, 0 0 #0000), var(--aui-ring-shadow, 0 0 #0000), var(--aui-shadow)\n}\n\n.aui-button-primary:hover {\n background-color: hsl(var(--aui-primary) / 0.9)\n}\n\n.aui-button-outline {\n border-width: 1px;\n border-color: hsl(var(--aui-input));\n background-color: hsl(var(--aui-background));\n --aui-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n --aui-shadow-colored: 0 1px 2px 0 var(--aui-shadow-color);\n box-shadow: var(--aui-ring-offset-shadow, 0 0 #0000), var(--aui-ring-shadow, 0 0 #0000), var(--aui-shadow)\n}\n\n.aui-button-outline:hover {\n background-color: hsl(var(--aui-accent));\n color: hsl(var(--aui-accent-foreground))\n}\n\n.aui-button-ghost:hover {\n background-color: hsl(var(--aui-accent));\n color: hsl(var(--aui-accent-foreground))\n}\n\n.aui-button-medium {\n height: 2.25rem;\n padding-left: 1rem;\n padding-right: 1rem;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem\n}\n\n/** tooltip icon button */\n.aui-button-icon {\n width: 1.5rem;\n height: 1.5rem;\n padding: 0.25rem\n}\n\n.aui-sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0\n}\n\n/* shadcn-ui/avatar */\n\n.aui-avatar-root {\n position: relative;\n display: flex;\n height: 2.5rem;\n width: 2.5rem;\n flex-shrink: 0;\n overflow: hidden;\n border-radius: 9999px\n}\n\n.aui-avatar-image {\n aspect-ratio: 1 / 1;\n height: 100%;\n width: 100%\n}\n\n.aui-avatar-fallback {\n display: flex;\n height: 100%;\n width: 100%;\n align-items: center;\n justify-content: center;\n border-radius: 9999px;\n background-color: hsl(var(--aui-muted))\n}\n\n/* shadcn-ui/tooltip */\n\n.aui-tooltip-content {\n z-index: 50;\n overflow: hidden;\n border-radius: calc(var(--aui-radius) - 2px);\n border-width: 1px;\n background-color: hsl(var(--aui-popover));\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n font-size: 0.875rem;\n line-height: 1.25rem;\n color: hsl(var(--aui-popover-foreground));\n --aui-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\n --aui-shadow-colored: 0 4px 6px -1px var(--aui-shadow-color), 0 2px 4px -2px var(--aui-shadow-color);\n box-shadow: var(--aui-ring-offset-shadow, 0 0 #0000), var(--aui-ring-shadow, 0 0 #0000), var(--aui-shadow);\n animation-name: aui-enter;\n animation-duration: 150ms;\n --aui-enter-opacity: initial;\n --aui-enter-scale: initial;\n --aui-enter-rotate: initial;\n --aui-enter-translate-x: initial;\n --aui-enter-translate-y: initial;\n --aui-enter-opacity: 0;\n --aui-enter-scale: .95\n}\n\n.aui-tooltip-content[data-state=\"closed\"] {\n animation-name: aui-exit;\n animation-duration: 150ms;\n --aui-exit-opacity: initial;\n --aui-exit-scale: initial;\n --aui-exit-rotate: initial;\n --aui-exit-translate-x: initial;\n --aui-exit-translate-y: initial;\n --aui-exit-opacity: 0;\n --aui-exit-scale: .95\n}\n\n.aui-tooltip-content[data-side=\"bottom\"] {\n --aui-enter-translate-y: -0.5rem\n}\n\n.aui-tooltip-content[data-side=\"left\"] {\n --aui-enter-translate-x: 0.5rem\n}\n\n.aui-tooltip-content[data-side=\"right\"] {\n --aui-enter-translate-x: -0.5rem\n}\n\n.aui-tooltip-content[data-side=\"top\"] {\n --aui-enter-translate-y: 0.5rem\n}\n","/* thread */\n.aui-thread-root {\n box-sizing: border-box;\n height: 100%;\n background-color: hsl(var(--aui-background))\n}\n.aui-thread-root>.aui-thread-viewport {\n background-color: inherit\n}\n\n.aui-thread-viewport {\n display: flex;\n height: 100%;\n flex-direction: column;\n align-items: center;\n overflow-y: scroll;\n scroll-behavior: smooth;\n background-color: hsl(var(--aui-background));\n padding-left: 1rem;\n padding-right: 1rem;\n padding-top: 2rem\n}\n\n.aui-thread-viewport-footer {\n position: sticky;\n bottom: 0px;\n margin-top: 1rem;\n display: flex;\n width: 100%;\n max-width: 42rem;\n flex-grow: 1;\n flex-direction: column;\n align-items: center;\n justify-content: flex-end;\n border-top-left-radius: var(--aui-radius);\n border-top-right-radius: var(--aui-radius);\n background-color: inherit;\n padding-bottom: 1rem\n}\n\n.aui-thread-scroll-to-bottom {\n position: absolute;\n top: -2rem;\n border-radius: 9999px\n}\n\n.aui-thread-scroll-to-bottom:disabled {\n visibility: hidden\n}\n\n/* thread welcome */\n\n.aui-thread-welcome-root {\n display: flex;\n width: 100%;\n max-width: 42rem;\n flex-grow: 1;\n flex-basis: 100%;\n flex-direction: column\n}\n\n.aui-thread-welcome-center {\n display: flex;\n width: 100%;\n flex-grow: 1;\n flex-direction: column;\n align-items: center;\n justify-content: center\n}\n\n.aui-thread-welcome-message {\n margin-top: 1rem;\n font-weight: 500\n}\n\n.aui-thread-welcome-suggestion-container {\n margin-top: 1rem;\n display: flex;\n width: 100%;\n align-items: stretch;\n justify-content: center;\n gap: 1rem\n}\n\n.aui-thread-welcome-suggestion {\n display: flex;\n max-width: 24rem;\n flex-grow: 1;\n flex-basis: 0px;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n border-radius: var(--aui-radius);\n border-width: 1px;\n padding: 0.75rem\n}\n\n.aui-thread-welcome-suggestion-text {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2;\n text-overflow: ellipsis;\n font-size: 0.875rem;\n line-height: 1.25rem;\n font-weight: 600\n}\n\n/* composer */\n\n.aui-composer-root {\n display: flex;\n width: 100%;\n flex-wrap: wrap;\n align-items: flex-end;\n border-radius: var(--aui-radius);\n border-width: 1px;\n padding-left: 0.625rem;\n padding-right: 0.625rem;\n --aui-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n --aui-shadow-colored: 0 1px 2px 0 var(--aui-shadow-color);\n box-shadow: var(--aui-ring-offset-shadow, 0 0 #0000), var(--aui-ring-shadow, 0 0 #0000), var(--aui-shadow);\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n transition-timing-function: cubic-bezier(0.4, 0, 1, 1);\n animation-timing-function: cubic-bezier(0.4, 0, 1, 1)\n}\n\n.aui-composer-root:focus-within {\n border-color: hsl(var(--aui-ring) / 0.2)\n}\n\n.aui-composer-input {\n max-height: 10rem;\n flex-grow: 1;\n resize: none;\n border-style: none;\n background-color: transparent;\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n padding-top: 1rem;\n padding-bottom: 1rem;\n font-size: 0.875rem;\n line-height: 1.25rem;\n outline: 2px solid transparent;\n outline-offset: 2px\n}\n\n.aui-composer-input::-moz-placeholder {\n color: hsl(var(--aui-muted-foreground))\n}\n\n.aui-composer-input::placeholder {\n color: hsl(var(--aui-muted-foreground))\n}\n\n.aui-composer-input:focus {\n --aui-ring-offset-shadow: var(--aui-ring-inset) 0 0 0 var(--aui-ring-offset-width) var(--aui-ring-offset-color);\n --aui-ring-shadow: var(--aui-ring-inset) 0 0 0 calc(0px + var(--aui-ring-offset-width)) var(--aui-ring-color);\n box-shadow: var(--aui-ring-offset-shadow), var(--aui-ring-shadow), var(--aui-shadow, 0 0 #0000)\n}\n\n.aui-composer-input:disabled {\n cursor: not-allowed\n}\n\n.aui-composer-send,\n.aui-composer-cancel {\n margin-top: 0.625rem;\n margin-bottom: 0.625rem;\n width: 2rem;\n height: 2rem;\n padding: 0.5rem;\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n transition-timing-function: cubic-bezier(0.4, 0, 1, 1);\n animation-timing-function: cubic-bezier(0.4, 0, 1, 1)\n}\n\n/* user message */\n\n.aui-user-message-root {\n display: grid;\n grid-auto-rows: auto;\n grid-template-columns: minmax(72px,1fr) auto;\n row-gap: 0.5rem\n}\n\n.aui-user-message-root>* {\n grid-column-start: 2\n}\n\n.aui-user-message-root {\n width: 100%;\n max-width: 42rem;\n padding-top: 1rem;\n padding-bottom: 1rem\n}\n\n:where(.aui-user-message-root) > .aui-user-action-bar-root {\n grid-column-start: 1;\n margin-right: 0.75rem;\n margin-top: 0.625rem\n}\n\n:where(.aui-user-message-root) > .aui-user-message-content {\n grid-column-start: 2;\n grid-row-start: 1\n}\n\n:where(.aui-user-message-root) > .aui-branch-picker-root {\n grid-column: 1 / -1;\n grid-column-start: 1;\n grid-row-start: 2;\n margin-right: -0.25rem;\n justify-content: flex-end\n}\n\n.aui-user-message-content {\n max-width: 36rem;\n overflow-wrap: break-word;\n border-radius: 1.5rem;\n background-color: hsl(var(--aui-muted));\n padding-left: 1.25rem;\n padding-right: 1.25rem;\n padding-top: 0.625rem;\n padding-bottom: 0.625rem;\n color: hsl(var(--aui-foreground))\n}\n\n/* thread action bar */\n\n.aui-user-action-bar-root {\n display: flex;\n flex-direction: column;\n align-items: flex-end\n}\n\n.aui-edit-composer-root {\n margin-top: 1rem;\n margin-bottom: 1rem;\n display: flex;\n width: 100%;\n max-width: 42rem;\n flex-direction: column;\n gap: 0.5rem;\n border-radius: 0.75rem;\n background-color: hsl(var(--aui-muted))\n}\n\n.aui-edit-composer-input {\n display: flex;\n height: 2rem;\n width: 100%;\n resize: none;\n background-color: transparent;\n padding: 1rem;\n padding-bottom: 0px;\n color: hsl(var(--aui-foreground));\n outline: 2px solid transparent;\n outline-offset: 2px\n}\n\n.aui-edit-composer-footer {\n margin-left: 0.75rem;\n margin-right: 0.75rem;\n margin-bottom: 0.75rem;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 0.5rem;\n align-self: flex-end\n}\n\n/* assistant message */\n\n.aui-assistant-message-root {\n display: grid;\n grid-template-columns: auto auto 1fr;\n grid-template-rows: auto 1fr;\n position: relative;\n width: 100%;\n max-width: 42rem;\n padding-top: 1rem;\n padding-bottom: 1rem\n}\n\n:where(.aui-assistant-message-root) > .aui-avatar-root {\n grid-column-start: 1;\n grid-row: 1 / -1;\n grid-row-start: 1;\n margin-right: 1rem\n}\n\n:where(.aui-assistant-message-root) > .aui-branch-picker-root {\n grid-column-start: 2;\n grid-row-start: 2;\n margin-left: -0.5rem;\n margin-right: 0.5rem\n}\n\n:where(.aui-assistant-message-root) > .aui-assistant-action-bar-root {\n grid-column-start: 3;\n grid-row-start: 2;\n margin-left: -0.25rem\n}\n\n:where(.aui-assistant-message-root) > .aui-assistant-message-content {\n grid-column: span 2 / span 2;\n grid-column-start: 2;\n grid-row-start: 1;\n margin-top: 0.375rem;\n margin-bottom: 0.375rem\n}\n\n.aui-assistant-message-content {\n max-width: 36rem;\n overflow-wrap: break-word;\n line-height: 1.75rem;\n color: hsl(var(--aui-foreground))\n}\n\n/* assistant action bar */\n\n.aui-assistant-action-bar-root {\n display: flex;\n gap: 0.25rem;\n color: hsl(var(--aui-muted-foreground))\n}\n\n:where(.aui-assistant-action-bar-root)[data-floating] {\n position: absolute;\n border-radius: calc(var(--aui-radius) - 2px);\n border-width: 1px;\n background-color: hsl(var(--aui-background));\n padding: 0.25rem;\n --aui-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n --aui-shadow-colored: 0 1px 2px 0 var(--aui-shadow-color);\n box-shadow: var(--aui-ring-offset-shadow, 0 0 #0000), var(--aui-ring-shadow, 0 0 #0000), var(--aui-shadow)\n}\n\n/* branch picker */\n\n.aui-branch-picker-root {\n display: inline-flex;\n align-items: center;\n font-size: 0.75rem;\n line-height: 1rem;\n color: hsl(var(--aui-muted-foreground))\n}\n\n.aui-branch-picker-state {\n font-weight: 500\n}\n\n/* text */\n\n.aui-text {\n white-space: pre-line\n}\n\n@keyframes aui-pulse {\n 50% {\n opacity: .5\n }\n}\n\n.aui-text-running::after {\n animation: aui-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n font-family: ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --aui-content: '\\25CF';\n content: var(--aui-content)\n}\n\n.aui-text-running:where([dir=\"ltr\"], [dir=\"ltr\"] *)::after {\n margin-left: 0.25rem\n}\n\n.aui-text-running:where([dir=\"rtl\"], [dir=\"rtl\"] *)::after {\n margin-right: 0.25rem\n}\n",":root {\n --aui-background: 0 0% 100%;\n --aui-foreground: 240 10% 3.9%;\n\n --aui-card: 0 0% 100%;\n --aui-card-foreground: 240 10% 3.9%;\n\n --aui-popover: 0 0% 100%;\n --aui-popover-foreground: 240 10% 3.9%;\n\n --aui-primary: 240 5.9% 10%;\n --aui-primary-foreground: 0 0% 98%;\n\n --aui-secondary: 240 4.8% 95.9%;\n --aui-secondary-foreground: 240 5.9% 10%;\n\n --aui-muted: 240 4.8% 95.9%;\n --aui-muted-foreground: 240 3.8% 46.1%;\n\n --aui-accent: 240 4.8% 95.9%;\n --aui-accent-foreground: 240 5.9% 10%;\n\n --aui-destructive: 0 84.2% 60.2%;\n --aui-destructive-foreground: 0 0% 98%;\n\n --aui-border: 240 5.9% 90%;\n --aui-input: 240 5.9% 90%;\n --aui-ring: 240 10% 3.9%;\n\n --aui-radius: 0.5rem;\n}\n\n.dark {\n --aui-background: 0 0% 7%;\n --aui-foreground: 0 0% 98%;\n\n --aui-card: 240 10% 3.9%;\n --aui-card-foreground: 0 0% 98%;\n\n --aui-popover: 240 10% 3.9%;\n --aui-popover-foreground: 0 0% 98%;\n\n --aui-primary: 0 0% 98%;\n --aui-primary-foreground: 240 5.9% 10%;\n\n --aui-secondary: 240 3.7% 15.9%;\n --aui-secondary-foreground: 0 0% 98%;\n\n --aui-muted: 240 3.7% 15.9%;\n --aui-muted-foreground: 240 5% 64.9%;\n\n --aui-accent: 240 3.7% 15.9%;\n --aui-accent-foreground: 0 0% 98%;\n\n --aui-destructive: 0 62.8% 30.6%;\n --aui-destructive-foreground: 0 0% 98%;\n\n --aui-border: 240 3.7% 15.9%;\n --aui-input: 240 3.7% 15.9%;\n --aui-ring: 240 4.9% 83.9%;\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/styles/base.css","../../src/styles/tailwindcss/base-components.css","../../src/styles/tailwindcss/thread.css","../../src/styles/themes/default.css"],"sourcesContent":["/*\n! tailwindcss v3.4.10 | MIT License | https://tailwindcss.com\n*//*\n1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)\n2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)\n*/\n\n:where(.aui-root) *,\n:where(.aui-root) ::before,\n:where(.aui-root) ::after {\n box-sizing: border-box; /* 1 */\n border-width: 0; /* 2 */\n border-style: solid; /* 2 */\n border-color: #e5e7eb; /* 2 */\n}\n\n:where(.aui-root) ::before,\n:where(.aui-root) ::after {\n --aui-content: '';\n}\n\n/*\n1. Use a consistent sensible line-height in all browsers.\n2. Prevent adjustments of font size after orientation changes in iOS.\n3. Use a more readable tab size.\n4. Use the user's configured `sans` font-family by default.\n5. Use the user's configured `sans` font-feature-settings by default.\n6. Use the user's configured `sans` font-variation-settings by default.\n7. Disable tap highlights on iOS\n*/\n\n:where(.aui-root) html,\n:where(.aui-root) :host {\n line-height: 1.5; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n -moz-tab-size: 4; /* 3 */\n -o-tab-size: 4;\n tab-size: 4; /* 3 */\n font-family: ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\"; /* 4 */\n font-feature-settings: normal; /* 5 */\n font-variation-settings: normal; /* 6 */\n -webkit-tap-highlight-color: transparent; /* 7 */\n}\n\n/*\n1. Remove the margin in all browsers.\n2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.\n*/\n\n:where(.aui-root) body {\n margin: 0; /* 1 */\n line-height: inherit; /* 2 */\n}\n\n/*\n1. Add the correct height in Firefox.\n2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)\n3. Ensure horizontal rules are visible by default.\n*/\n\n:where(.aui-root) hr {\n height: 0; /* 1 */\n color: inherit; /* 2 */\n border-top-width: 1px; /* 3 */\n}\n\n/*\nAdd the correct text decoration in Chrome, Edge, and Safari.\n*/\n\n:where(.aui-root) abbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n}\n\n/*\nRemove the default font size and weight for headings.\n*/\n\n:where(.aui-root) h1,\n:where(.aui-root) h2,\n:where(.aui-root) h3,\n:where(.aui-root) h4,\n:where(.aui-root) h5,\n:where(.aui-root) h6 {\n font-size: inherit;\n font-weight: inherit;\n}\n\n/*\nReset links to optimize for opt-in styling instead of opt-out.\n*/\n\n:where(.aui-root) a {\n color: inherit;\n text-decoration: inherit;\n}\n\n/*\nAdd the correct font weight in Edge and Safari.\n*/\n\n:where(.aui-root) b,\n:where(.aui-root) strong {\n font-weight: bolder;\n}\n\n/*\n1. Use the user's configured `mono` font-family by default.\n2. Use the user's configured `mono` font-feature-settings by default.\n3. Use the user's configured `mono` font-variation-settings by default.\n4. Correct the odd `em` font sizing in all browsers.\n*/\n\n:where(.aui-root) code,\n:where(.aui-root) kbd,\n:where(.aui-root) samp,\n:where(.aui-root) pre {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace; /* 1 */\n font-feature-settings: normal; /* 2 */\n font-variation-settings: normal; /* 3 */\n font-size: 1em; /* 4 */\n}\n\n/*\nAdd the correct font size in all browsers.\n*/\n\n:where(.aui-root) small {\n font-size: 80%;\n}\n\n/*\nPrevent `sub` and `sup` elements from affecting the line height in all browsers.\n*/\n\n:where(.aui-root) sub,\n:where(.aui-root) sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\n:where(.aui-root) sub {\n bottom: -0.25em;\n}\n\n:where(.aui-root) sup {\n top: -0.5em;\n}\n\n/*\n1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)\n2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)\n3. Remove gaps between table borders by default.\n*/\n\n:where(.aui-root) table {\n text-indent: 0; /* 1 */\n border-color: inherit; /* 2 */\n border-collapse: collapse; /* 3 */\n}\n\n/*\n1. Change the font styles in all browsers.\n2. Remove the margin in Firefox and Safari.\n3. Remove default padding in all browsers.\n*/\n\n:where(.aui-root) button,\n:where(.aui-root) input,\n:where(.aui-root) optgroup,\n:where(.aui-root) select,\n:where(.aui-root) textarea {\n font-family: inherit; /* 1 */\n font-feature-settings: inherit; /* 1 */\n font-variation-settings: inherit; /* 1 */\n font-size: 100%; /* 1 */\n font-weight: inherit; /* 1 */\n line-height: inherit; /* 1 */\n letter-spacing: inherit; /* 1 */\n color: inherit; /* 1 */\n margin: 0; /* 2 */\n padding: 0; /* 3 */\n}\n\n/*\nRemove the inheritance of text transform in Edge and Firefox.\n*/\n\n:where(.aui-root) button,\n:where(.aui-root) select {\n text-transform: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Remove default button styles.\n*/\n\n:where(.aui-root) button,\n:where(.aui-root) input:where([type='button']),\n:where(.aui-root) input:where([type='reset']),\n:where(.aui-root) input:where([type='submit']) {\n -webkit-appearance: button; /* 1 */\n background-color: transparent; /* 2 */\n background-image: none; /* 2 */\n}\n\n/*\nUse the modern Firefox focus style for all focusable elements.\n*/\n\n:where(.aui-root) :-moz-focusring {\n outline: auto;\n}\n\n/*\nRemove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)\n*/\n\n:where(.aui-root) :-moz-ui-invalid {\n box-shadow: none;\n}\n\n/*\nAdd the correct vertical alignment in Chrome and Firefox.\n*/\n\n:where(.aui-root) progress {\n vertical-align: baseline;\n}\n\n/*\nCorrect the cursor style of increment and decrement buttons in Safari.\n*/\n\n:where(.aui-root) ::-webkit-inner-spin-button,\n:where(.aui-root) ::-webkit-outer-spin-button {\n height: auto;\n}\n\n/*\n1. Correct the odd appearance in Chrome and Safari.\n2. Correct the outline style in Safari.\n*/\n\n:where(.aui-root) [type='search'] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/*\nRemove the inner padding in Chrome and Safari on macOS.\n*/\n\n:where(.aui-root) ::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/*\n1. Correct the inability to style clickable types in iOS and Safari.\n2. Change font properties to `inherit` in Safari.\n*/\n\n:where(.aui-root) ::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/*\nAdd the correct display in Chrome and Safari.\n*/\n\n:where(.aui-root) summary {\n display: list-item;\n}\n\n/*\nRemoves the default spacing and border for appropriate elements.\n*/\n\n:where(.aui-root) blockquote,\n:where(.aui-root) dl,\n:where(.aui-root) dd,\n:where(.aui-root) h1,\n:where(.aui-root) h2,\n:where(.aui-root) h3,\n:where(.aui-root) h4,\n:where(.aui-root) h5,\n:where(.aui-root) h6,\n:where(.aui-root) hr,\n:where(.aui-root) figure,\n:where(.aui-root) p,\n:where(.aui-root) pre {\n margin: 0;\n}\n\n:where(.aui-root) fieldset {\n margin: 0;\n padding: 0;\n}\n\n:where(.aui-root) legend {\n padding: 0;\n}\n\n:where(.aui-root) ol,\n:where(.aui-root) ul,\n:where(.aui-root) menu {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n/*\nReset default styling for dialogs.\n*/\n\n:where(.aui-root) dialog {\n padding: 0;\n}\n\n/*\nPrevent resizing textareas horizontally by default.\n*/\n\n:where(.aui-root) textarea {\n resize: vertical;\n}\n\n/*\n1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)\n2. Set the default placeholder color to the user's configured gray 400 color.\n*/\n\n:where(.aui-root) input::-moz-placeholder, :where(.aui-root) textarea::-moz-placeholder {\n opacity: 1; /* 1 */\n color: #9ca3af; /* 2 */\n}\n\n:where(.aui-root) input::placeholder,\n:where(.aui-root) textarea::placeholder {\n opacity: 1; /* 1 */\n color: #9ca3af; /* 2 */\n}\n\n/*\nSet the default cursor for buttons.\n*/\n\n:where(.aui-root) button,\n:where(.aui-root) [role=\"button\"] {\n cursor: pointer;\n}\n\n/*\nMake sure disabled buttons don't get the pointer cursor.\n*/\n\n:where(.aui-root) :disabled {\n cursor: default;\n}\n\n/*\n1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)\n2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)\n This can trigger a poorly considered lint error in some tools but is included by design.\n*/\n\n:where(.aui-root) img,\n:where(.aui-root) svg,\n:where(.aui-root) video,\n:where(.aui-root) canvas,\n:where(.aui-root) audio,\n:where(.aui-root) iframe,\n:where(.aui-root) embed,\n:where(.aui-root) object {\n display: block; /* 1 */\n vertical-align: middle; /* 2 */\n}\n\n/*\nConstrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)\n*/\n\n:where(.aui-root) img,\n:where(.aui-root) video {\n max-width: 100%;\n height: auto;\n}\n\n/* Make elements with the HTML hidden attribute stay hidden by default */\n\n:where(.aui-root) [hidden] {\n display: none;\n}\n\n:where(.aui-root) *, :where(.aui-root) ::before, :where(.aui-root) ::after {\n --aui-border-spacing-x: 0;\n --aui-border-spacing-y: 0;\n --aui-translate-x: 0;\n --aui-translate-y: 0;\n --aui-rotate: 0;\n --aui-skew-x: 0;\n --aui-skew-y: 0;\n --aui-scale-x: 1;\n --aui-scale-y: 1;\n --aui-ring-inset: ;\n --aui-ring-offset-width: 0px;\n --aui-ring-offset-color: #fff;\n --aui-ring-color: rgb(59 130 246 / 0.5);\n --aui-ring-offset-shadow: 0 0 #0000;\n --aui-ring-shadow: 0 0 #0000;\n --aui-shadow: 0 0 #0000;\n --aui-shadow-colored: 0 0 #0000;\n --aui-blur: ;\n --aui-brightness: ;\n --aui-contrast: ;\n --aui-grayscale: ;\n --aui-hue-rotate: ;\n --aui-invert: ;\n --aui-saturate: ;\n --aui-sepia: ;\n --aui-drop-shadow: ;\n --aui-backdrop-blur: ;\n --aui-backdrop-brightness: ;\n --aui-backdrop-contrast: ;\n --aui-backdrop-grayscale: ;\n --aui-backdrop-hue-rotate: ;\n --aui-backdrop-invert: ;\n --aui-backdrop-opacity: ;\n --aui-backdrop-saturate: ;\n --aui-backdrop-sepia: ;\n --aui-contain-size: ;\n --aui-contain-layout: ;\n --aui-contain-paint: ;\n --aui-contain-style: ;\n}\n\n:where(.aui-root) ::backdrop {\n --aui-border-spacing-x: 0;\n --aui-border-spacing-y: 0;\n --aui-translate-x: 0;\n --aui-translate-y: 0;\n --aui-rotate: 0;\n --aui-skew-x: 0;\n --aui-skew-y: 0;\n --aui-scale-x: 1;\n --aui-scale-y: 1;\n --aui-ring-inset: ;\n --aui-ring-offset-width: 0px;\n --aui-ring-offset-color: #fff;\n --aui-ring-color: rgb(59 130 246 / 0.5);\n --aui-ring-offset-shadow: 0 0 #0000;\n --aui-ring-shadow: 0 0 #0000;\n --aui-shadow: 0 0 #0000;\n --aui-shadow-colored: 0 0 #0000;\n --aui-blur: ;\n --aui-brightness: ;\n --aui-contrast: ;\n --aui-grayscale: ;\n --aui-hue-rotate: ;\n --aui-invert: ;\n --aui-saturate: ;\n --aui-sepia: ;\n --aui-drop-shadow: ;\n --aui-backdrop-blur: ;\n --aui-backdrop-brightness: ;\n --aui-backdrop-contrast: ;\n --aui-backdrop-grayscale: ;\n --aui-backdrop-hue-rotate: ;\n --aui-backdrop-invert: ;\n --aui-backdrop-opacity: ;\n --aui-backdrop-saturate: ;\n --aui-backdrop-sepia: ;\n --aui-contain-size: ;\n --aui-contain-layout: ;\n --aui-contain-paint: ;\n --aui-contain-style: ;\n}\n\n@keyframes aui-enter {\n from {\n opacity: var(--aui-enter-opacity, 1);\n transform: translate3d(\n var(--aui-enter-translate-x, 0),\n var(--aui-enter-translate-y, 0),\n 0\n )\n scale3d(\n var(--aui-enter-scale, 1),\n var(--aui-enter-scale, 1),\n var(--aui-enter-scale, 1)\n )\n rotate(var(--aui-enter-rotate, 0));\n }\n}\n\n@keyframes aui-exit {\n to {\n opacity: var(--aui-exit-opacity, 1);\n transform: translate3d(\n var(--aui-exit-translate-x, 0),\n var(--aui-exit-translate-y, 0),\n 0\n )\n scale3d(\n var(--aui-exit-scale, 1),\n var(--aui-exit-scale, 1),\n var(--aui-exit-scale, 1)\n )\n rotate(var(--aui-exit-rotate, 0));\n }\n}\n",".aui-root {\n border-color: hsl(var(--aui-border));\n color: hsl(var(--aui-foreground))\n}\n\n/* button */\n.aui-button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n white-space: nowrap;\n border-radius: calc(var(--aui-radius) - 2px);\n font-size: 0.875rem;\n line-height: 1.25rem;\n font-weight: 500;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms\n}\n.aui-button:focus-visible {\n outline: 2px solid transparent;\n outline-offset: 2px;\n --aui-ring-offset-shadow: var(--aui-ring-inset) 0 0 0 var(--aui-ring-offset-width) var(--aui-ring-offset-color);\n --aui-ring-shadow: var(--aui-ring-inset) 0 0 0 calc(1px + var(--aui-ring-offset-width)) var(--aui-ring-color);\n box-shadow: var(--aui-ring-offset-shadow), var(--aui-ring-shadow), var(--aui-shadow, 0 0 #0000);\n --aui-ring-color: hsl(var(--aui-ring))\n}\n.aui-button:disabled {\n pointer-events: none;\n opacity: 0.5\n}\n\n.aui-button-primary {\n background-color: hsl(var(--aui-primary));\n color: hsl(var(--aui-primary-foreground));\n --aui-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);\n --aui-shadow-colored: 0 1px 3px 0 var(--aui-shadow-color), 0 1px 2px -1px var(--aui-shadow-color);\n box-shadow: var(--aui-ring-offset-shadow, 0 0 #0000), var(--aui-ring-shadow, 0 0 #0000), var(--aui-shadow)\n}\n\n.aui-button-primary:hover {\n background-color: hsl(var(--aui-primary) / 0.9)\n}\n\n.aui-button-outline {\n border-width: 1px;\n border-color: hsl(var(--aui-input));\n background-color: hsl(var(--aui-background));\n --aui-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n --aui-shadow-colored: 0 1px 2px 0 var(--aui-shadow-color);\n box-shadow: var(--aui-ring-offset-shadow, 0 0 #0000), var(--aui-ring-shadow, 0 0 #0000), var(--aui-shadow)\n}\n\n.aui-button-outline:hover {\n background-color: hsl(var(--aui-accent));\n color: hsl(var(--aui-accent-foreground))\n}\n\n.aui-button-ghost:hover {\n background-color: hsl(var(--aui-accent));\n color: hsl(var(--aui-accent-foreground))\n}\n\n.aui-button-medium {\n height: 2.25rem;\n padding-left: 1rem;\n padding-right: 1rem;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem\n}\n\n/** tooltip icon button */\n.aui-button-icon {\n width: 1.5rem;\n height: 1.5rem;\n padding: 0.25rem\n}\n\n.aui-sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0\n}\n\n/* shadcn-ui/avatar */\n\n.aui-avatar-root {\n position: relative;\n display: flex;\n height: 2.5rem;\n width: 2.5rem;\n flex-shrink: 0;\n overflow: hidden;\n border-radius: 9999px\n}\n\n.aui-avatar-image {\n aspect-ratio: 1 / 1;\n height: 100%;\n width: 100%\n}\n\n.aui-avatar-fallback {\n display: flex;\n height: 100%;\n width: 100%;\n align-items: center;\n justify-content: center;\n border-radius: 9999px;\n background-color: hsl(var(--aui-muted))\n}\n\n/* shadcn-ui/tooltip */\n\n.aui-tooltip-content {\n z-index: 50;\n overflow: hidden;\n border-radius: calc(var(--aui-radius) - 2px);\n border-width: 1px;\n background-color: hsl(var(--aui-popover));\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n padding-top: 0.375rem;\n padding-bottom: 0.375rem;\n font-size: 0.875rem;\n line-height: 1.25rem;\n color: hsl(var(--aui-popover-foreground));\n --aui-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\n --aui-shadow-colored: 0 4px 6px -1px var(--aui-shadow-color), 0 2px 4px -2px var(--aui-shadow-color);\n box-shadow: var(--aui-ring-offset-shadow, 0 0 #0000), var(--aui-ring-shadow, 0 0 #0000), var(--aui-shadow);\n animation-name: aui-enter;\n animation-duration: 150ms;\n --aui-enter-opacity: initial;\n --aui-enter-scale: initial;\n --aui-enter-rotate: initial;\n --aui-enter-translate-x: initial;\n --aui-enter-translate-y: initial;\n --aui-enter-opacity: 0;\n --aui-enter-scale: .95\n}\n\n.aui-tooltip-content[data-state=\"closed\"] {\n animation-name: aui-exit;\n animation-duration: 150ms;\n --aui-exit-opacity: initial;\n --aui-exit-scale: initial;\n --aui-exit-rotate: initial;\n --aui-exit-translate-x: initial;\n --aui-exit-translate-y: initial;\n --aui-exit-opacity: 0;\n --aui-exit-scale: .95\n}\n\n.aui-tooltip-content[data-side=\"bottom\"] {\n --aui-enter-translate-y: -0.5rem\n}\n\n.aui-tooltip-content[data-side=\"left\"] {\n --aui-enter-translate-x: 0.5rem\n}\n\n.aui-tooltip-content[data-side=\"right\"] {\n --aui-enter-translate-x: -0.5rem\n}\n\n.aui-tooltip-content[data-side=\"top\"] {\n --aui-enter-translate-y: 0.5rem\n}\n","/* thread */\n.aui-thread-root {\n box-sizing: border-box;\n height: 100%;\n background-color: hsl(var(--aui-background))\n}\n.aui-thread-root>.aui-thread-viewport {\n background-color: inherit\n}\n\n.aui-thread-viewport {\n display: flex;\n height: 100%;\n flex-direction: column;\n align-items: center;\n overflow-y: scroll;\n scroll-behavior: smooth;\n background-color: hsl(var(--aui-background));\n padding-left: 1rem;\n padding-right: 1rem;\n padding-top: 2rem\n}\n\n.aui-thread-viewport-footer {\n position: sticky;\n bottom: 0px;\n margin-top: 1rem;\n display: flex;\n width: 100%;\n max-width: 42rem;\n flex-grow: 1;\n flex-direction: column;\n align-items: center;\n justify-content: flex-end;\n border-top-left-radius: var(--aui-radius);\n border-top-right-radius: var(--aui-radius);\n background-color: inherit;\n padding-bottom: 1rem\n}\n\n.aui-thread-scroll-to-bottom {\n position: absolute;\n top: -2rem;\n border-radius: 9999px\n}\n\n.aui-thread-scroll-to-bottom:disabled {\n visibility: hidden\n}\n\n/* thread welcome */\n\n.aui-thread-welcome-root {\n display: flex;\n width: 100%;\n max-width: 42rem;\n flex-grow: 1;\n flex-basis: 100%;\n flex-direction: column\n}\n\n.aui-thread-welcome-center {\n display: flex;\n width: 100%;\n flex-grow: 1;\n flex-direction: column;\n align-items: center;\n justify-content: center\n}\n\n.aui-thread-welcome-message {\n margin-top: 1rem;\n font-weight: 500\n}\n\n.aui-thread-welcome-suggestion-container {\n margin-top: 1rem;\n display: flex;\n width: 100%;\n align-items: stretch;\n justify-content: center;\n gap: 1rem\n}\n\n.aui-thread-welcome-suggestion {\n display: flex;\n max-width: 24rem;\n flex-grow: 1;\n flex-basis: 0px;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n border-radius: var(--aui-radius);\n border-width: 1px;\n padding: 0.75rem\n}\n\n.aui-thread-welcome-suggestion-text {\n overflow: hidden;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n -webkit-line-clamp: 2;\n text-overflow: ellipsis;\n font-size: 0.875rem;\n line-height: 1.25rem;\n font-weight: 600\n}\n\n/* composer */\n\n.aui-composer-root {\n display: flex;\n width: 100%;\n flex-wrap: wrap;\n align-items: flex-end;\n border-radius: var(--aui-radius);\n border-width: 1px;\n padding-left: 0.625rem;\n padding-right: 0.625rem;\n --aui-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n --aui-shadow-colored: 0 1px 2px 0 var(--aui-shadow-color);\n box-shadow: var(--aui-ring-offset-shadow, 0 0 #0000), var(--aui-ring-shadow, 0 0 #0000), var(--aui-shadow);\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n transition-timing-function: cubic-bezier(0.4, 0, 1, 1);\n animation-timing-function: cubic-bezier(0.4, 0, 1, 1)\n}\n\n.aui-composer-root:focus-within {\n border-color: hsl(var(--aui-ring) / 0.2)\n}\n\n.aui-composer-input {\n max-height: 10rem;\n flex-grow: 1;\n resize: none;\n border-style: none;\n background-color: transparent;\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n padding-top: 1rem;\n padding-bottom: 1rem;\n font-size: 0.875rem;\n line-height: 1.25rem;\n outline: 2px solid transparent;\n outline-offset: 2px\n}\n\n.aui-composer-input::-moz-placeholder {\n color: hsl(var(--aui-muted-foreground))\n}\n\n.aui-composer-input::placeholder {\n color: hsl(var(--aui-muted-foreground))\n}\n\n.aui-composer-input:focus {\n --aui-ring-offset-shadow: var(--aui-ring-inset) 0 0 0 var(--aui-ring-offset-width) var(--aui-ring-offset-color);\n --aui-ring-shadow: var(--aui-ring-inset) 0 0 0 calc(0px + var(--aui-ring-offset-width)) var(--aui-ring-color);\n box-shadow: var(--aui-ring-offset-shadow), var(--aui-ring-shadow), var(--aui-shadow, 0 0 #0000)\n}\n\n.aui-composer-input:disabled {\n cursor: not-allowed\n}\n\n.aui-composer-send,\n.aui-composer-cancel,\n.aui-composer-attach {\n margin-top: 0.625rem;\n margin-bottom: 0.625rem;\n width: 2rem;\n height: 2rem;\n padding: 0.5rem;\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n transition-timing-function: cubic-bezier(0.4, 0, 1, 1);\n animation-timing-function: cubic-bezier(0.4, 0, 1, 1)\n}\n\n.aui-composer-attachments {\n display: flex;\n width: 100%;\n flex-direction: row;\n gap: 0.75rem;\n padding-left: 2.5rem;\n padding-right: 2.5rem\n}\n\n.aui-composer-attachment-root {\n position: relative;\n margin-top: 1rem;\n display: flex;\n width: 5rem;\n height: 5rem;\n align-items: center;\n justify-content: center;\n border-radius: var(--aui-radius);\n background-color: hsl(var(--aui-muted));\n padding: 0.5rem\n}\n\n.aui-composer-attachment-remove {\n position: absolute;\n right: -0.75rem;\n top: -0.75rem;\n width: 1.75rem;\n height: 1.75rem\n}\n\n/* user message */\n\n.aui-user-message-root {\n display: grid;\n grid-auto-rows: auto;\n grid-template-columns: minmax(72px,1fr) auto;\n row-gap: 0.5rem\n}\n\n.aui-user-message-root>* {\n grid-column-start: 2\n}\n\n.aui-user-message-root {\n width: 100%;\n max-width: 42rem;\n padding-top: 1rem;\n padding-bottom: 1rem\n}\n\n:where(.aui-user-message-root) > .aui-user-action-bar-root {\n grid-column-start: 1;\n grid-row-start: 2;\n margin-right: 0.75rem;\n margin-top: 0.625rem\n}\n\n:where(.aui-user-message-root) > .aui-user-message-attachments {\n grid-column: 1 / -1;\n grid-column-start: 1;\n grid-row-start: 1;\n justify-content: flex-end\n}\n\n:where(.aui-user-message-root) > .aui-user-message-content {\n grid-column-start: 2;\n grid-row-start: 2\n}\n\n:where(.aui-user-message-root) > .aui-branch-picker-root {\n grid-column: 1 / -1;\n grid-column-start: 1;\n grid-row-start: 3;\n margin-right: -0.25rem;\n justify-content: flex-end\n}\n\n.aui-user-message-content {\n max-width: 36rem;\n overflow-wrap: break-word;\n border-radius: 1.5rem;\n background-color: hsl(var(--aui-muted));\n padding-left: 1.25rem;\n padding-right: 1.25rem;\n padding-top: 0.625rem;\n padding-bottom: 0.625rem;\n color: hsl(var(--aui-foreground))\n}\n\n.aui-user-message-attachments {\n display: flex;\n width: 100%;\n flex-direction: row;\n gap: 0.75rem\n}\n\n.aui-user-message-attachment-root {\n position: relative;\n display: flex;\n width: 5rem;\n height: 5rem;\n align-items: center;\n justify-content: center;\n border-radius: var(--aui-radius);\n background-color: hsl(var(--aui-muted));\n padding: 0.5rem\n}\n\n/* user action bar */\n\n.aui-user-action-bar-root {\n display: flex;\n flex-direction: column;\n align-items: flex-end\n}\n\n/* edit composer */\n\n.aui-edit-composer-root {\n margin-top: 1rem;\n margin-bottom: 1rem;\n display: flex;\n width: 100%;\n max-width: 42rem;\n flex-direction: column;\n gap: 0.5rem;\n border-radius: 0.75rem;\n background-color: hsl(var(--aui-muted))\n}\n\n.aui-edit-composer-input {\n display: flex;\n height: 2rem;\n width: 100%;\n resize: none;\n background-color: transparent;\n padding: 1rem;\n padding-bottom: 0px;\n color: hsl(var(--aui-foreground));\n outline: 2px solid transparent;\n outline-offset: 2px\n}\n\n.aui-edit-composer-footer {\n margin-left: 0.75rem;\n margin-right: 0.75rem;\n margin-bottom: 0.75rem;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 0.5rem;\n align-self: flex-end\n}\n\n/* assistant message */\n\n.aui-assistant-message-root {\n display: grid;\n grid-template-columns: auto auto 1fr;\n grid-template-rows: auto 1fr;\n position: relative;\n width: 100%;\n max-width: 42rem;\n padding-top: 1rem;\n padding-bottom: 1rem\n}\n\n:where(.aui-assistant-message-root) > .aui-avatar-root {\n grid-column-start: 1;\n grid-row: 1 / -1;\n grid-row-start: 1;\n margin-right: 1rem\n}\n\n:where(.aui-assistant-message-root) > .aui-branch-picker-root {\n grid-column-start: 2;\n grid-row-start: 2;\n margin-left: -0.5rem;\n margin-right: 0.5rem\n}\n\n:where(.aui-assistant-message-root) > .aui-assistant-action-bar-root {\n grid-column-start: 3;\n grid-row-start: 2;\n margin-left: -0.25rem\n}\n\n:where(.aui-assistant-message-root) > .aui-assistant-message-content {\n grid-column: span 2 / span 2;\n grid-column-start: 2;\n grid-row-start: 1;\n margin-top: 0.375rem;\n margin-bottom: 0.375rem\n}\n\n.aui-assistant-message-content {\n max-width: 36rem;\n overflow-wrap: break-word;\n line-height: 1.75rem;\n color: hsl(var(--aui-foreground))\n}\n\n/* assistant action bar */\n\n.aui-assistant-action-bar-root {\n display: flex;\n gap: 0.25rem;\n color: hsl(var(--aui-muted-foreground))\n}\n\n:where(.aui-assistant-action-bar-root)[data-floating] {\n position: absolute;\n border-radius: calc(var(--aui-radius) - 2px);\n border-width: 1px;\n background-color: hsl(var(--aui-background));\n padding: 0.25rem;\n --aui-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n --aui-shadow-colored: 0 1px 2px 0 var(--aui-shadow-color);\n box-shadow: var(--aui-ring-offset-shadow, 0 0 #0000), var(--aui-ring-shadow, 0 0 #0000), var(--aui-shadow)\n}\n\n/* branch picker */\n\n.aui-branch-picker-root {\n display: inline-flex;\n align-items: center;\n font-size: 0.75rem;\n line-height: 1rem;\n color: hsl(var(--aui-muted-foreground))\n}\n\n.aui-branch-picker-state {\n font-weight: 500\n}\n\n/* text */\n\n.aui-text {\n white-space: pre-line\n}\n\n@keyframes aui-pulse {\n 50% {\n opacity: .5\n }\n}\n\n.aui-text-running::after {\n animation: aui-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n font-family: ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --aui-content: '\\25CF';\n content: var(--aui-content)\n}\n\n.aui-text-running:where([dir=\"ltr\"], [dir=\"ltr\"] *)::after {\n margin-left: 0.25rem\n}\n\n.aui-text-running:where([dir=\"rtl\"], [dir=\"rtl\"] *)::after {\n margin-right: 0.25rem\n}\n",":root {\n --aui-background: 0 0% 100%;\n --aui-foreground: 240 10% 3.9%;\n\n --aui-card: 0 0% 100%;\n --aui-card-foreground: 240 10% 3.9%;\n\n --aui-popover: 0 0% 100%;\n --aui-popover-foreground: 240 10% 3.9%;\n\n --aui-primary: 240 5.9% 10%;\n --aui-primary-foreground: 0 0% 98%;\n\n --aui-secondary: 240 4.8% 95.9%;\n --aui-secondary-foreground: 240 5.9% 10%;\n\n --aui-muted: 240 4.8% 95.9%;\n --aui-muted-foreground: 240 3.8% 46.1%;\n\n --aui-accent: 240 4.8% 95.9%;\n --aui-accent-foreground: 240 5.9% 10%;\n\n --aui-destructive: 0 84.2% 60.2%;\n --aui-destructive-foreground: 0 0% 98%;\n\n --aui-border: 240 5.9% 90%;\n --aui-input: 240 5.9% 90%;\n --aui-ring: 240 10% 3.9%;\n\n --aui-radius: 0.5rem;\n}\n\n.dark {\n --aui-background: 0 0% 7%;\n --aui-foreground: 0 0% 98%;\n\n --aui-card: 240 10% 3.9%;\n --aui-card-foreground: 0 0% 98%;\n\n --aui-popover: 240 10% 3.9%;\n --aui-popover-foreground: 0 0% 98%;\n\n --aui-primary: 0 0% 98%;\n --aui-primary-foreground: 240 5.9% 10%;\n\n --aui-secondary: 240 3.7% 15.9%;\n --aui-secondary-foreground: 0 0% 98%;\n\n --aui-muted: 240 3.7% 15.9%;\n --aui-muted-foreground: 240 5% 64.9%;\n\n --aui-accent: 240 3.7% 15.9%;\n --aui-accent-foreground: 0 0% 98%;\n\n --aui-destructive: 0 62.8% 30.6%;\n --aui-destructive-foreground: 0 0% 98%;\n\n --aui-border: 240 3.7% 15.9%;\n --aui-input: 240 3.7% 15.9%;\n --aui-ring: 240 4.9% 83.9%;\n}\n"],"mappings":"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","names":[]}
@@ -53,10 +53,23 @@
53
53
  }
54
54
 
55
55
  .aui-composer-send,
56
- .aui-composer-cancel {
56
+ .aui-composer-cancel,
57
+ .aui-composer-attach {
57
58
  @apply my-2.5 size-8 p-2 transition-opacity ease-in;
58
59
  }
59
60
 
61
+ .aui-composer-attachments {
62
+ @apply flex w-full flex-row gap-3 px-10;
63
+ }
64
+
65
+ .aui-composer-attachment-root {
66
+ @apply bg-aui-muted relative mt-4 flex size-20 items-center justify-center rounded-lg p-2;
67
+ }
68
+
69
+ .aui-composer-attachment-remove {
70
+ @apply absolute -right-3 -top-3 size-7;
71
+ }
72
+
60
73
  /* user message */
61
74
 
62
75
  .aui-user-message-root {
@@ -65,15 +78,20 @@
65
78
  }
66
79
 
67
80
  :where(.aui-user-message-root) > .aui-user-action-bar-root {
68
- @apply col-start-1 mr-3 mt-2.5;
81
+ @apply col-start-1 row-start-2 mr-3 mt-2.5;
82
+ }
83
+
84
+ :where(.aui-user-message-root) > .aui-user-message-attachments {
85
+ @apply col-span-full col-start-1 row-start-1;
86
+ @apply justify-end;
69
87
  }
70
88
 
71
89
  :where(.aui-user-message-root) > .aui-user-message-content {
72
- @apply col-start-2 row-start-1;
90
+ @apply col-start-2 row-start-2;
73
91
  }
74
92
 
75
93
  :where(.aui-user-message-root) > .aui-branch-picker-root {
76
- @apply col-span-full col-start-1 row-start-2;
94
+ @apply col-span-full col-start-1 row-start-3;
77
95
  @apply -mr-1 justify-end;
78
96
  }
79
97
 
@@ -81,12 +99,22 @@
81
99
  @apply bg-aui-muted text-aui-foreground max-w-xl break-words rounded-3xl px-5 py-2.5;
82
100
  }
83
101
 
84
- /* thread action bar */
102
+ .aui-user-message-attachments {
103
+ @apply flex w-full flex-row gap-3;
104
+ }
105
+
106
+ .aui-user-message-attachment-root {
107
+ @apply bg-aui-muted relative flex size-20 items-center justify-center rounded-lg p-2;
108
+ }
109
+
110
+ /* user action bar */
85
111
 
86
112
  .aui-user-action-bar-root {
87
113
  @apply flex flex-col items-end;
88
114
  }
89
115
 
116
+ /* edit composer */
117
+
90
118
  .aui-edit-composer-root {
91
119
  @apply bg-aui-muted my-4 flex w-full max-w-2xl flex-col gap-2 rounded-xl;
92
120
  }
package/package.json CHANGED
@@ -29,7 +29,7 @@
29
29
  "conversational-ui",
30
30
  "conversational-ai"
31
31
  ],
32
- "version": "0.5.46",
32
+ "version": "0.5.48",
33
33
  "license": "MIT",
34
34
  "exports": {
35
35
  ".": {
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/runtimes/edge/converters/toLanguageModelMessages.ts","../src/runtimes/edge/converters/toCoreMessages.ts","../src/runtimes/edge/converters/toLanguageModelTools.ts","../src/runtimes/edge/streams/assistantEncoderStream.ts","../src/types/ModelConfigTypes.ts","../src/runtimes/edge/EdgeRuntimeRequestOptions.ts","../src/runtimes/edge/streams/toolResultStream.ts","../src/runtimes/edge/partial-json/parse-partial-json.ts","../src/runtimes/edge/partial-json/fix-json.ts","../src/runtimes/edge/streams/runResultStream.ts","../src/runtimes/edge/streams/utils/PipeableTransformStream.ts","../src/runtimes/edge/streams/utils/streamPartEncoderStream.ts","../src/runtimes/edge/createEdgeRuntimeAPI.ts"],"sourcesContent":["import {\n LanguageModelV1ImagePart,\n LanguageModelV1Message,\n LanguageModelV1TextPart,\n LanguageModelV1ToolCallPart,\n LanguageModelV1ToolResultPart,\n} from \"@ai-sdk/provider\";\nimport {\n CoreMessage,\n ThreadMessage,\n TextContentPart,\n CoreToolCallContentPart,\n} from \"../../../types/AssistantTypes\";\n\nconst assistantMessageSplitter = () => {\n const stash: LanguageModelV1Message[] = [];\n let assistantMessage = {\n role: \"assistant\" as const,\n content: [] as (LanguageModelV1TextPart | LanguageModelV1ToolCallPart)[],\n };\n let toolMessage = {\n role: \"tool\" as const,\n content: [] as LanguageModelV1ToolResultPart[],\n };\n\n return {\n addTextContentPart: (part: TextContentPart) => {\n if (toolMessage.content.length > 0) {\n stash.push(assistantMessage);\n stash.push(toolMessage);\n\n assistantMessage = {\n role: \"assistant\" as const,\n content: [] as (\n | LanguageModelV1TextPart\n | LanguageModelV1ToolCallPart\n )[],\n };\n\n toolMessage = {\n role: \"tool\" as const,\n content: [] as LanguageModelV1ToolResultPart[],\n };\n }\n\n assistantMessage.content.push(part);\n },\n addToolCallPart: (part: CoreToolCallContentPart) => {\n assistantMessage.content.push({\n type: \"tool-call\",\n toolCallId: part.toolCallId,\n toolName: part.toolName,\n args: part.args,\n });\n\n toolMessage.content.push({\n type: \"tool-result\",\n toolCallId: part.toolCallId,\n toolName: part.toolName,\n result: part.result ?? \"<no result>\",\n isError: part.isError ?? false,\n });\n },\n getMessages: () => {\n if (toolMessage.content.length > 0) {\n return [...stash, assistantMessage, toolMessage];\n }\n\n return [...stash, assistantMessage];\n },\n };\n};\n\nexport function toLanguageModelMessages(\n message: readonly CoreMessage[] | readonly ThreadMessage[],\n): LanguageModelV1Message[] {\n return message.flatMap((message) => {\n const role = message.role;\n switch (role) {\n case \"system\": {\n return [{ role: \"system\", content: message.content[0].text }];\n }\n\n case \"user\": {\n const msg: LanguageModelV1Message = {\n role: \"user\",\n content: message.content.map(\n (part): LanguageModelV1TextPart | LanguageModelV1ImagePart => {\n const type = part.type;\n switch (type) {\n case \"text\": {\n return part;\n }\n\n case \"image\": {\n return {\n type: \"image\",\n image: new URL(part.image),\n };\n }\n\n default: {\n const unhandledType: \"ui\" = type;\n throw new Error(\n `Unspported content part type: ${unhandledType}`,\n );\n }\n }\n },\n ),\n };\n return [msg];\n }\n\n case \"assistant\": {\n const splitter = assistantMessageSplitter();\n for (const part of message.content) {\n const type = part.type;\n switch (type) {\n case \"text\": {\n splitter.addTextContentPart(part);\n break;\n }\n case \"tool-call\": {\n splitter.addToolCallPart(part);\n break;\n }\n default: {\n const unhandledType: \"ui\" = type;\n throw new Error(`Unhandled content part type: ${unhandledType}`);\n }\n }\n }\n return splitter.getMessages();\n }\n\n default: {\n const unhandledRole: never = role;\n throw new Error(`Unknown message role: ${unhandledRole}`);\n }\n }\n });\n}\n"," import { ThreadMessage, CoreMessage } from \"../../../types\";\n\nexport const toCoreMessages = (message: ThreadMessage[]): CoreMessage[] => {\n return message.map(toCoreMessage);\n};\n\nexport const toCoreMessage = (message: ThreadMessage): CoreMessage => {\n const role = message.role;\n switch (role) {\n case \"assistant\":\n return {\n role,\n content: message.content.map((part) => {\n if (part.type === \"ui\") throw new Error(\"UI parts are not supported\");\n if (part.type === \"tool-call\") {\n const { argsText, ...rest } = part;\n return rest;\n }\n return part;\n }),\n };\n\n case \"user\":\n return {\n role,\n content: message.content.map((part) => {\n if (part.type === \"ui\") throw new Error(\"UI parts are not supported\");\n return part;\n }),\n };\n\n case \"system\":\n return {\n role,\n content: message.content,\n };\n\n default: {\n const unsupportedRole: never = role;\n throw new Error(`Unknown message role: ${unsupportedRole}`);\n }\n }\n};\n","import { LanguageModelV1FunctionTool } from \"@ai-sdk/provider\";\nimport { JSONSchema7 } from \"json-schema\";\nimport { z } from \"zod\";\nimport zodToJsonSchema from \"zod-to-json-schema\";\nimport { Tool } from \"../../../types/ModelConfigTypes\";\n\nexport const toLanguageModelTools = (\n tools: Record<string, Tool<any, any>>,\n): LanguageModelV1FunctionTool[] => {\n return Object.entries(tools).map(([name, tool]) => ({\n type: \"function\",\n name,\n ...(tool.description ? { description: tool.description } : undefined),\n parameters: (tool.parameters instanceof z.ZodType\n ? zodToJsonSchema(tool.parameters)\n : tool.parameters) as JSONSchema7,\n }));\n};\n","import {\n AssistantStreamChunk,\n AssistantStreamChunkType,\n} from \"./AssistantStreamChunkType\";\nimport { StreamPart } from \"./utils/StreamPart\";\nimport { ToolResultStreamPart } from \"./toolResultStream\";\n\nexport function assistantEncoderStream() {\n const toolCalls = new Set<string>();\n return new TransformStream<\n ToolResultStreamPart,\n StreamPart<AssistantStreamChunk>\n >({\n transform(chunk, controller) {\n const chunkType = chunk.type;\n switch (chunkType) {\n case \"text-delta\": {\n controller.enqueue({\n type: AssistantStreamChunkType.TextDelta,\n value: chunk.textDelta,\n });\n break;\n }\n case \"tool-call-delta\": {\n if (!toolCalls.has(chunk.toolCallId)) {\n toolCalls.add(chunk.toolCallId);\n controller.enqueue({\n type: AssistantStreamChunkType.ToolCallBegin,\n value: {\n id: chunk.toolCallId,\n name: chunk.toolName,\n },\n });\n }\n\n controller.enqueue({\n type: AssistantStreamChunkType.ToolCallArgsTextDelta,\n value: chunk.argsTextDelta,\n });\n break;\n }\n\n // ignore\n case \"tool-call\":\n break;\n\n case \"tool-result\": {\n controller.enqueue({\n type: AssistantStreamChunkType.ToolCallResult,\n value: {\n id: chunk.toolCallId,\n result: chunk.result,\n },\n });\n break;\n }\n\n case \"finish\": {\n const { type, ...rest } = chunk;\n controller.enqueue({\n type: AssistantStreamChunkType.Finish,\n value: rest,\n });\n break;\n }\n\n case \"error\": {\n controller.enqueue({\n type: AssistantStreamChunkType.Error,\n value: chunk.error,\n });\n break;\n }\n default: {\n const unhandledType: never = chunkType;\n throw new Error(`Unhandled chunk type: ${unhandledType}`);\n }\n }\n },\n });\n}\n","import { z } from \"zod\";\nimport type { JSONSchema7 } from \"json-schema\";\n\nexport const LanguageModelV1CallSettingsSchema = z.object({\n maxTokens: z.number().int().positive().optional(),\n temperature: z.number().optional(),\n topP: z.number().optional(),\n presencePenalty: z.number().optional(),\n frequencyPenalty: z.number().optional(),\n seed: z.number().int().optional(),\n headers: z.record(z.string().optional()).optional(),\n});\n\nexport type LanguageModelV1CallSettings = z.infer<\n typeof LanguageModelV1CallSettingsSchema\n>;\n\nexport const LanguageModelConfigSchema = z.object({\n apiKey: z.string().optional(),\n baseUrl: z.string().optional(),\n modelName: z.string().optional(),\n});\n\nexport type LanguageModelConfig = z.infer<typeof LanguageModelConfigSchema>;\n\ntype ToolExecuteFunction<TArgs, TResult> = (\n args: TArgs,\n context: {\n abortSignal: AbortSignal;\n },\n) => TResult | Promise<TResult>;\n\nexport type Tool<\n TArgs extends Record<string, unknown> = Record<string | number, unknown>,\n TResult = unknown,\n> = {\n description?: string | undefined;\n parameters: z.ZodSchema<TArgs> | JSONSchema7;\n execute?: ToolExecuteFunction<TArgs, TResult>;\n};\n\nexport type ModelConfig = {\n priority?: number | undefined;\n system?: string | undefined;\n tools?: Record<string, Tool<any, any>> | undefined;\n callSettings?: LanguageModelV1CallSettings | undefined;\n config?: LanguageModelConfig | undefined;\n};\n\nexport type ModelConfigProvider = { getModelConfig: () => ModelConfig };\n\nexport const mergeModelConfigs = (\n configSet: Set<ModelConfigProvider>,\n): ModelConfig => {\n const configs = Array.from(configSet)\n .map((c) => c.getModelConfig())\n .sort((a, b) => (b.priority ?? 0) - (a.priority ?? 0));\n\n return configs.reduce((acc, config) => {\n if (config.system) {\n if (acc.system) {\n // TODO should the separator be configurable?\n acc.system += `\\n\\n${config.system}`;\n } else {\n acc.system = config.system;\n }\n }\n if (config.tools) {\n for (const [name, tool] of Object.entries(config.tools)) {\n if (acc.tools?.[name]) {\n throw new Error(\n `You tried to define a tool with the name ${name}, but it already exists.`,\n );\n }\n if (!acc.tools) acc.tools = {};\n acc.tools[name] = tool;\n }\n }\n if (config.config) {\n acc.config = {\n ...acc.config,\n ...config.config,\n };\n }\n if (config.callSettings) {\n acc.callSettings = {\n ...acc.callSettings,\n ...config.callSettings,\n };\n }\n return acc;\n }, {} as ModelConfig);\n};\n","import { JSONSchema7 } from \"json-schema\";\nimport {\n LanguageModelConfigSchema,\n LanguageModelV1CallSettingsSchema,\n} from \"../../types/ModelConfigTypes\";\nimport { z } from \"zod\";\n\nconst LanguageModelV1FunctionToolSchema = z.object({\n type: z.literal(\"function\"),\n name: z.string(),\n description: z.string().optional(),\n parameters: z.custom<JSONSchema7>(\n (val) => typeof val === \"object\" && val !== null,\n ),\n});\n\nconst TextContentPartSchema = z.object({\n type: z.literal(\"text\"),\n text: z.string(),\n});\n\nconst ImageContentPartSchema = z.object({\n type: z.literal(\"image\"),\n image: z.string(),\n});\n\nconst CoreToolCallContentPartSchema = z.object({\n type: z.literal(\"tool-call\"),\n toolCallId: z.string(),\n toolName: z.string(),\n args: z.record(z.unknown()),\n result: z.unknown().optional(),\n isError: z.boolean().optional(),\n});\n// args is required but unknown;\n\nconst CoreUserMessageSchema = z.object({\n role: z.literal(\"user\"),\n content: z\n .array(\n z.discriminatedUnion(\"type\", [\n TextContentPartSchema,\n ImageContentPartSchema,\n ]),\n )\n .min(1),\n});\n\nconst CoreAssistantMessageSchema = z.object({\n role: z.literal(\"assistant\"),\n content: z\n .array(\n z.discriminatedUnion(\"type\", [\n TextContentPartSchema,\n CoreToolCallContentPartSchema,\n ]),\n )\n .min(1),\n});\n\nconst CoreSystemMessageSchema = z.object({\n role: z.literal(\"system\"),\n content: z.tuple([TextContentPartSchema]),\n});\n\nconst CoreMessageSchema = z.discriminatedUnion(\"role\", [\n CoreSystemMessageSchema,\n CoreUserMessageSchema,\n CoreAssistantMessageSchema,\n]);\n\nexport const EdgeRuntimeRequestOptionsSchema = z\n .object({\n system: z.string().optional(),\n messages: z.array(CoreMessageSchema).min(1),\n tools: z.array(LanguageModelV1FunctionToolSchema).optional(),\n })\n .merge(LanguageModelV1CallSettingsSchema)\n .merge(LanguageModelConfigSchema);\n\nexport type EdgeRuntimeRequestOptions = z.infer<\n typeof EdgeRuntimeRequestOptionsSchema\n>;\n","import { Tool } from \"../../../types/ModelConfigTypes\";\nimport { LanguageModelV1StreamPart } from \"@ai-sdk/provider\";\nimport { z } from \"zod\";\nimport sjson from \"secure-json-parse\";\n\nexport type ToolResultStreamPart =\n | LanguageModelV1StreamPart\n | {\n type: \"tool-result\";\n toolCallType: \"function\";\n toolCallId: string;\n toolName: string;\n result: unknown;\n isError?: boolean;\n };\n\nexport function toolResultStream(\n tools: Record<string, Tool> | undefined,\n abortSignal: AbortSignal,\n) {\n const toolCallExecutions = new Map<string, Promise<any>>();\n\n return new TransformStream<ToolResultStreamPart, ToolResultStreamPart>({\n transform(chunk, controller) {\n // forward everything\n controller.enqueue(chunk);\n\n // handle tool calls\n const chunkType = chunk.type;\n switch (chunkType) {\n case \"tool-call\": {\n const { toolCallId, toolCallType, toolName, args: argsText } = chunk;\n const tool = tools?.[toolName];\n if (!tool || !tool.execute) return;\n\n const args = sjson.parse(argsText);\n if (tool.parameters instanceof z.ZodType) {\n const result = tool.parameters.safeParse(args);\n if (!result.success) {\n controller.enqueue({\n type: \"tool-result\",\n toolCallType,\n toolCallId,\n toolName,\n result:\n \"Function parameter validation failed. \" +\n JSON.stringify(result.error.issues),\n isError: true,\n });\n return;\n } else {\n toolCallExecutions.set(\n toolCallId,\n (async () => {\n if (!tool.execute) return;\n\n try {\n const result = await tool.execute(args, { abortSignal });\n\n controller.enqueue({\n type: \"tool-result\",\n toolCallType,\n toolCallId,\n toolName,\n result,\n });\n } catch (error) {\n controller.enqueue({\n type: \"tool-result\",\n toolCallType,\n toolCallId,\n toolName,\n result: \"Error: \" + error,\n isError: true,\n });\n } finally {\n toolCallExecutions.delete(toolCallId);\n }\n })(),\n );\n }\n }\n break;\n }\n\n // ignore other parts\n case \"text-delta\":\n case \"tool-call-delta\":\n case \"tool-result\":\n case \"finish\":\n case \"error\":\n break;\n\n default: {\n const unhandledType: never = chunkType;\n throw new Error(`Unhandled chunk type: ${unhandledType}`);\n }\n }\n },\n\n async flush() {\n await Promise.all(toolCallExecutions.values());\n },\n });\n}\n","import sjson from \"secure-json-parse\";\nimport { fixJson } from \"./fix-json\";\n\nexport const parsePartialJson = (json: string) => {\n try {\n return sjson.parse(json);\n } catch {\n try {\n return sjson.parse(fixJson(json));\n } catch {\n return undefined;\n }\n }\n};\n","// LICENSE for this file only\n\n// Copyright 2023 Vercel, Inc.\n\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n\n// http://www.apache.org/licenses/LICENSE-2.0\n\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\ntype State =\n | \"ROOT\"\n | \"FINISH\"\n | \"INSIDE_STRING\"\n | \"INSIDE_STRING_ESCAPE\"\n | \"INSIDE_LITERAL\"\n | \"INSIDE_NUMBER\"\n | \"INSIDE_OBJECT_START\"\n | \"INSIDE_OBJECT_KEY\"\n | \"INSIDE_OBJECT_AFTER_KEY\"\n | \"INSIDE_OBJECT_BEFORE_VALUE\"\n | \"INSIDE_OBJECT_AFTER_VALUE\"\n | \"INSIDE_OBJECT_AFTER_COMMA\"\n | \"INSIDE_ARRAY_START\"\n | \"INSIDE_ARRAY_AFTER_VALUE\"\n | \"INSIDE_ARRAY_AFTER_COMMA\";\n\n// Implemented as a scanner with additional fixing\n// that performs a single linear time scan pass over the partial JSON.\n//\n// The states should ideally match relevant states from the JSON spec:\n// https://www.json.org/json-en.html\n//\n// Please note that invalid JSON is not considered/covered, because it\n// is assumed that the resulting JSON will be processed by a standard\n// JSON parser that will detect any invalid JSON.\nexport function fixJson(input: string): string {\n const stack: State[] = [\"ROOT\"];\n let lastValidIndex = -1;\n let literalStart: number | null = null;\n\n function processValueStart(char: string, i: number, swapState: State) {\n {\n switch (char) {\n case '\"': {\n lastValidIndex = i;\n stack.pop();\n stack.push(swapState);\n stack.push(\"INSIDE_STRING\");\n break;\n }\n\n case \"f\":\n case \"t\":\n case \"n\": {\n lastValidIndex = i;\n literalStart = i;\n stack.pop();\n stack.push(swapState);\n stack.push(\"INSIDE_LITERAL\");\n break;\n }\n\n case \"-\": {\n stack.pop();\n stack.push(swapState);\n stack.push(\"INSIDE_NUMBER\");\n break;\n }\n case \"0\":\n case \"1\":\n case \"2\":\n case \"3\":\n case \"4\":\n case \"5\":\n case \"6\":\n case \"7\":\n case \"8\":\n case \"9\": {\n lastValidIndex = i;\n stack.pop();\n stack.push(swapState);\n stack.push(\"INSIDE_NUMBER\");\n break;\n }\n\n case \"{\": {\n lastValidIndex = i;\n stack.pop();\n stack.push(swapState);\n stack.push(\"INSIDE_OBJECT_START\");\n break;\n }\n\n case \"[\": {\n lastValidIndex = i;\n stack.pop();\n stack.push(swapState);\n stack.push(\"INSIDE_ARRAY_START\");\n break;\n }\n }\n }\n }\n\n function processAfterObjectValue(char: string, i: number) {\n switch (char) {\n case \",\": {\n stack.pop();\n stack.push(\"INSIDE_OBJECT_AFTER_COMMA\");\n break;\n }\n case \"}\": {\n lastValidIndex = i;\n stack.pop();\n break;\n }\n }\n }\n\n function processAfterArrayValue(char: string, i: number) {\n switch (char) {\n case \",\": {\n stack.pop();\n stack.push(\"INSIDE_ARRAY_AFTER_COMMA\");\n break;\n }\n case \"]\": {\n lastValidIndex = i;\n stack.pop();\n break;\n }\n }\n }\n\n for (let i = 0; i < input.length; i++) {\n const char = input[i]!;\n const currentState = stack[stack.length - 1];\n\n switch (currentState) {\n case \"ROOT\":\n processValueStart(char, i, \"FINISH\");\n break;\n\n case \"INSIDE_OBJECT_START\": {\n switch (char) {\n case '\"': {\n stack.pop();\n stack.push(\"INSIDE_OBJECT_KEY\");\n break;\n }\n case \"}\": {\n lastValidIndex = i;\n stack.pop();\n break;\n }\n }\n break;\n }\n\n case \"INSIDE_OBJECT_AFTER_COMMA\": {\n switch (char) {\n case '\"': {\n stack.pop();\n stack.push(\"INSIDE_OBJECT_KEY\");\n break;\n }\n }\n break;\n }\n\n case \"INSIDE_OBJECT_KEY\": {\n switch (char) {\n case '\"': {\n stack.pop();\n stack.push(\"INSIDE_OBJECT_AFTER_KEY\");\n break;\n }\n }\n break;\n }\n\n case \"INSIDE_OBJECT_AFTER_KEY\": {\n switch (char) {\n case \":\": {\n stack.pop();\n stack.push(\"INSIDE_OBJECT_BEFORE_VALUE\");\n\n break;\n }\n }\n break;\n }\n\n case \"INSIDE_OBJECT_BEFORE_VALUE\": {\n processValueStart(char, i, \"INSIDE_OBJECT_AFTER_VALUE\");\n break;\n }\n\n case \"INSIDE_OBJECT_AFTER_VALUE\": {\n processAfterObjectValue(char, i);\n break;\n }\n\n case \"INSIDE_STRING\": {\n switch (char) {\n case '\"': {\n stack.pop();\n lastValidIndex = i;\n break;\n }\n\n case \"\\\\\": {\n stack.push(\"INSIDE_STRING_ESCAPE\");\n break;\n }\n\n default: {\n lastValidIndex = i;\n }\n }\n\n break;\n }\n\n case \"INSIDE_ARRAY_START\": {\n switch (char) {\n case \"]\": {\n lastValidIndex = i;\n stack.pop();\n break;\n }\n\n default: {\n lastValidIndex = i;\n processValueStart(char, i, \"INSIDE_ARRAY_AFTER_VALUE\");\n break;\n }\n }\n break;\n }\n\n case \"INSIDE_ARRAY_AFTER_VALUE\": {\n switch (char) {\n case \",\": {\n stack.pop();\n stack.push(\"INSIDE_ARRAY_AFTER_COMMA\");\n break;\n }\n\n case \"]\": {\n lastValidIndex = i;\n stack.pop();\n break;\n }\n\n default: {\n lastValidIndex = i;\n break;\n }\n }\n\n break;\n }\n\n case \"INSIDE_ARRAY_AFTER_COMMA\": {\n processValueStart(char, i, \"INSIDE_ARRAY_AFTER_VALUE\");\n break;\n }\n\n case \"INSIDE_STRING_ESCAPE\": {\n stack.pop();\n lastValidIndex = i;\n\n break;\n }\n\n case \"INSIDE_NUMBER\": {\n switch (char) {\n case \"0\":\n case \"1\":\n case \"2\":\n case \"3\":\n case \"4\":\n case \"5\":\n case \"6\":\n case \"7\":\n case \"8\":\n case \"9\": {\n lastValidIndex = i;\n break;\n }\n\n case \"e\":\n case \"E\":\n case \"-\":\n case \".\": {\n break;\n }\n\n case \",\": {\n stack.pop();\n\n if (stack[stack.length - 1] === \"INSIDE_ARRAY_AFTER_VALUE\") {\n processAfterArrayValue(char, i);\n }\n\n if (stack[stack.length - 1] === \"INSIDE_OBJECT_AFTER_VALUE\") {\n processAfterObjectValue(char, i);\n }\n\n break;\n }\n\n case \"}\": {\n stack.pop();\n\n if (stack[stack.length - 1] === \"INSIDE_OBJECT_AFTER_VALUE\") {\n processAfterObjectValue(char, i);\n }\n\n break;\n }\n\n case \"]\": {\n stack.pop();\n\n if (stack[stack.length - 1] === \"INSIDE_ARRAY_AFTER_VALUE\") {\n processAfterArrayValue(char, i);\n }\n\n break;\n }\n\n default: {\n stack.pop();\n break;\n }\n }\n\n break;\n }\n\n case \"INSIDE_LITERAL\": {\n const partialLiteral = input.substring(literalStart!, i + 1);\n\n if (\n !\"false\".startsWith(partialLiteral) &&\n !\"true\".startsWith(partialLiteral) &&\n !\"null\".startsWith(partialLiteral)\n ) {\n stack.pop();\n\n if (stack[stack.length - 1] === \"INSIDE_OBJECT_AFTER_VALUE\") {\n processAfterObjectValue(char, i);\n } else if (stack[stack.length - 1] === \"INSIDE_ARRAY_AFTER_VALUE\") {\n processAfterArrayValue(char, i);\n }\n } else {\n lastValidIndex = i;\n }\n\n break;\n }\n }\n }\n\n let result = input.slice(0, lastValidIndex + 1);\n\n for (let i = stack.length - 1; i >= 0; i--) {\n const state = stack[i];\n\n switch (state) {\n case \"INSIDE_STRING\": {\n result += '\"';\n break;\n }\n\n case \"INSIDE_OBJECT_KEY\":\n case \"INSIDE_OBJECT_AFTER_KEY\":\n case \"INSIDE_OBJECT_AFTER_COMMA\":\n case \"INSIDE_OBJECT_START\":\n case \"INSIDE_OBJECT_BEFORE_VALUE\":\n case \"INSIDE_OBJECT_AFTER_VALUE\": {\n result += \"}\";\n break;\n }\n\n case \"INSIDE_ARRAY_START\":\n case \"INSIDE_ARRAY_AFTER_COMMA\":\n case \"INSIDE_ARRAY_AFTER_VALUE\": {\n result += \"]\";\n break;\n }\n\n case \"INSIDE_LITERAL\": {\n const partialLiteral = input.substring(literalStart!, input.length);\n\n if (\"true\".startsWith(partialLiteral)) {\n result += \"true\".slice(partialLiteral.length);\n } else if (\"false\".startsWith(partialLiteral)) {\n result += \"false\".slice(partialLiteral.length);\n } else if (\"null\".startsWith(partialLiteral)) {\n result += \"null\".slice(partialLiteral.length);\n }\n }\n }\n }\n\n return result;\n}\n","import { ChatModelRunResult } from \"../../local/ChatModelAdapter\";\nimport { parsePartialJson } from \"../partial-json/parse-partial-json\";\nimport { LanguageModelV1StreamPart } from \"@ai-sdk/provider\";\nimport { ToolResultStreamPart } from \"./toolResultStream\";\nimport { MessageStatus } from \"../../../types\";\n\nexport function runResultStream() {\n let message: ChatModelRunResult = {\n content: [],\n status: { type: \"running\" },\n };\n const currentToolCall = { toolCallId: \"\", argsText: \"\" };\n\n return new TransformStream<ToolResultStreamPart, ChatModelRunResult>({\n transform(chunk, controller) {\n const chunkType = chunk.type;\n switch (chunkType) {\n case \"text-delta\": {\n message = appendOrUpdateText(message, chunk.textDelta);\n controller.enqueue(message);\n break;\n }\n case \"tool-call-delta\": {\n const { toolCallId, toolName, argsTextDelta } = chunk;\n if (currentToolCall.toolCallId !== toolCallId) {\n currentToolCall.toolCallId = toolCallId;\n currentToolCall.argsText = argsTextDelta;\n } else {\n currentToolCall.argsText += argsTextDelta;\n }\n\n message = appendOrUpdateToolCall(\n message,\n toolCallId,\n toolName,\n currentToolCall.argsText,\n );\n controller.enqueue(message);\n break;\n }\n case \"tool-call\": {\n break;\n }\n case \"tool-result\": {\n message = appendOrUpdateToolResult(\n message,\n chunk.toolCallId,\n chunk.toolName,\n chunk.result,\n );\n controller.enqueue(message);\n break;\n }\n case \"finish\": {\n message = appendOrUpdateFinish(message, chunk);\n controller.enqueue(message);\n break;\n }\n case \"error\": {\n if (\n chunk.error instanceof Error &&\n chunk.error.name === \"AbortError\"\n ) {\n message = appendOrUpdateCancel(message);\n controller.enqueue(message);\n break;\n } else {\n throw chunk.error;\n }\n }\n default: {\n const unhandledType: never = chunkType;\n throw new Error(`Unhandled chunk type: ${unhandledType}`);\n }\n }\n },\n });\n}\n\nconst appendOrUpdateText = (message: ChatModelRunResult, textDelta: string) => {\n let contentParts = message.content ?? [];\n let contentPart = message.content?.at(-1);\n if (contentPart?.type !== \"text\") {\n contentPart = { type: \"text\", text: textDelta };\n } else {\n contentParts = contentParts.slice(0, -1);\n contentPart = { type: \"text\", text: contentPart.text + textDelta };\n }\n return {\n ...message,\n content: contentParts.concat([contentPart]),\n };\n};\n\nconst appendOrUpdateToolCall = (\n message: ChatModelRunResult,\n toolCallId: string,\n toolName: string,\n argsText: string,\n) => {\n let contentParts = message.content ?? [];\n let contentPart = message.content?.at(-1);\n if (\n contentPart?.type !== \"tool-call\" ||\n contentPart.toolCallId !== toolCallId\n ) {\n contentPart = {\n type: \"tool-call\",\n toolCallId,\n toolName,\n argsText,\n args: parsePartialJson(argsText),\n };\n } else {\n contentParts = contentParts.slice(0, -1);\n contentPart = {\n ...contentPart,\n argsText,\n args: parsePartialJson(argsText),\n };\n }\n return {\n ...message,\n content: contentParts.concat([contentPart]),\n };\n};\n\nconst appendOrUpdateToolResult = (\n message: ChatModelRunResult,\n toolCallId: string,\n toolName: string,\n result: any,\n) => {\n let found = false;\n const newContentParts = message.content?.map((part) => {\n if (part.type !== \"tool-call\" || part.toolCallId !== toolCallId)\n return part;\n found = true;\n\n if (part.toolName !== toolName)\n throw new Error(\n `Tool call ${toolCallId} found with tool name ${part.toolName}, but expected ${toolName}`,\n );\n\n return {\n ...part,\n result,\n };\n });\n if (!found)\n throw new Error(\n `Received tool result for unknown tool call \"${toolName}\" / \"${toolCallId}\". This is likely an internal bug in assistant-ui.`,\n );\n\n return {\n ...message,\n content: newContentParts!,\n };\n};\n\nconst appendOrUpdateFinish = (\n message: ChatModelRunResult,\n chunk: LanguageModelV1StreamPart & { type: \"finish\" },\n): ChatModelRunResult => {\n const { type, ...rest } = chunk;\n return {\n ...message,\n status: getStatus(chunk),\n metadata: {\n ...message.metadata,\n roundtrips: [\n ...(message.metadata?.roundtrips ?? []),\n {\n logprobs: rest.logprobs,\n usage: rest.usage,\n },\n ],\n },\n };\n};\n\nconst getStatus = (\n chunk: LanguageModelV1StreamPart & { type: \"finish\" },\n): MessageStatus => {\n if (chunk.finishReason === \"tool-calls\") {\n return {\n type: \"requires-action\",\n reason: \"tool-calls\",\n };\n } else if (\n chunk.finishReason === \"stop\" ||\n chunk.finishReason === \"unknown\"\n ) {\n return {\n type: \"complete\",\n reason: chunk.finishReason,\n };\n } else {\n return {\n type: \"incomplete\",\n reason: chunk.finishReason,\n };\n }\n};\n\nconst appendOrUpdateCancel = (\n message: ChatModelRunResult,\n): ChatModelRunResult => {\n return {\n ...message,\n status: {\n type: \"incomplete\",\n reason: \"cancelled\",\n },\n };\n};\n","export class PipeableTransformStream<I, O> extends TransformStream<I, O> {\n constructor(transform: (readable: ReadableStream<I>) => ReadableStream<O>) {\n super();\n const readable = transform(super.readable as any);\n Object.defineProperty(this, \"readable\", {\n value: readable,\n writable: false,\n });\n }\n}\n","import { PipeableTransformStream } from \"./PipeableTransformStream\";\nimport { StreamPart } from \"./StreamPart\";\n\nfunction encodeStreamPart<T extends Record<string, unknown>>({\n type,\n value,\n}: StreamPart<T>): string {\n return `${type as string}:${JSON.stringify(value)}\\n`;\n}\n\nexport function streamPartEncoderStream<T extends Record<string, unknown>>() {\n const encodeStream = new TransformStream<StreamPart<T>, string>({\n transform(chunk, controller) {\n controller.enqueue(encodeStreamPart<T>(chunk));\n },\n });\n\n return new PipeableTransformStream((readable) => {\n return readable\n .pipeThrough(encodeStream)\n .pipeThrough(new TextEncoderStream());\n });\n}\n","import {\n LanguageModelV1,\n LanguageModelV1ToolChoice,\n LanguageModelV1FunctionTool,\n LanguageModelV1Prompt,\n LanguageModelV1CallOptions,\n} from \"@ai-sdk/provider\";\nimport {\n CoreMessage,\n ThreadMessage,\n ThreadRoundtrip,\n} from \"../../types/AssistantTypes\";\nimport { assistantEncoderStream } from \"./streams/assistantEncoderStream\";\nimport { EdgeRuntimeRequestOptionsSchema } from \"./EdgeRuntimeRequestOptions\";\nimport { toLanguageModelMessages } from \"./converters/toLanguageModelMessages\";\nimport { Tool } from \"../../types\";\nimport { toLanguageModelTools } from \"./converters/toLanguageModelTools\";\nimport {\n toolResultStream,\n ToolResultStreamPart,\n} from \"./streams/toolResultStream\";\nimport { runResultStream } from \"./streams/runResultStream\";\nimport {\n LanguageModelConfig,\n LanguageModelV1CallSettings,\n LanguageModelV1CallSettingsSchema,\n} from \"../../types/ModelConfigTypes\";\nimport { ChatModelRunResult } from \"../local\";\nimport { toCoreMessage } from \"./converters/toCoreMessages\";\nimport { streamPartEncoderStream } from \"./streams/utils/streamPartEncoderStream\";\nimport { z } from \"zod\";\n\ntype FinishResult = {\n messages: CoreMessage[];\n metadata: {\n roundtrips: ThreadRoundtrip[];\n };\n};\n\ntype LanguageModelCreator = (\n config: LanguageModelConfig,\n) => Promise<LanguageModelV1> | LanguageModelV1;\n\nexport type CreateEdgeRuntimeAPIOptions = LanguageModelV1CallSettings & {\n model: LanguageModelV1 | LanguageModelCreator;\n system?: string;\n tools?: Record<string, Tool<any, any>>;\n toolChoice?: LanguageModelV1ToolChoice;\n onFinish?: (result: FinishResult) => void;\n};\n\nconst voidStream = () => {\n return new WritableStream({\n abort(reason) {\n console.error(\"Server stream processing aborted:\", reason);\n },\n });\n};\n\ntype GetEdgeRuntimeStreamOptions = {\n abortSignal: AbortSignal;\n requestData: z.infer<typeof EdgeRuntimeRequestOptionsSchema>;\n options: CreateEdgeRuntimeAPIOptions;\n};\n\nexport const getEdgeRuntimeStream = async ({\n abortSignal,\n requestData: unsafeRequest,\n options: {\n model: modelOrCreator,\n system: serverSystem,\n tools: serverTools = {},\n toolChoice,\n onFinish,\n ...unsafeSettings\n },\n}: GetEdgeRuntimeStreamOptions) => {\n const settings = LanguageModelV1CallSettingsSchema.parse(unsafeSettings);\n const lmServerTools = toLanguageModelTools(serverTools);\n const hasServerTools = Object.values(serverTools).some((v) => !!v.execute);\n\n const {\n system: clientSystem,\n tools: clientTools = [],\n messages,\n apiKey,\n baseUrl,\n modelName,\n ...callSettings\n } = EdgeRuntimeRequestOptionsSchema.parse(unsafeRequest);\n\n const systemMessages = [];\n if (serverSystem) systemMessages.push(serverSystem);\n if (clientSystem) systemMessages.push(clientSystem);\n const system = systemMessages.join(\"\\n\\n\");\n\n for (const clientTool of clientTools) {\n if (serverTools?.[clientTool.name]) {\n throw new Error(\n `Tool ${clientTool.name} was defined in both the client and server tools. This is not allowed.`,\n );\n }\n }\n\n let model;\n\n model =\n typeof modelOrCreator === \"function\"\n ? await modelOrCreator({ apiKey, baseUrl, modelName })\n : modelOrCreator;\n\n let stream: ReadableStream<ToolResultStreamPart>;\n const streamResult = await streamMessage({\n ...(settings as Partial<StreamMessageOptions>),\n ...callSettings,\n\n model,\n abortSignal,\n\n ...(!!system ? { system } : undefined),\n messages,\n tools: lmServerTools.concat(clientTools as LanguageModelV1FunctionTool[]),\n ...(toolChoice ? { toolChoice } : undefined),\n });\n stream = streamResult.stream;\n\n // add tool results if we have server tools\n const canExecuteTools = hasServerTools && toolChoice?.type !== \"none\";\n if (canExecuteTools) {\n stream = stream.pipeThrough(toolResultStream(serverTools, abortSignal));\n }\n\n if (canExecuteTools || onFinish) {\n // tee the stream to process server tools and onFinish asap\n const tees = stream.tee();\n stream = tees[0];\n let serverStream = tees[1];\n\n if (onFinish) {\n let lastChunk: ChatModelRunResult;\n serverStream = serverStream.pipeThrough(runResultStream()).pipeThrough(\n new TransformStream({\n transform(chunk) {\n lastChunk = chunk;\n },\n flush() {\n if (!lastChunk?.status || lastChunk.status.type === \"running\")\n return;\n\n const resultingMessages = [\n ...messages,\n toCoreMessage({\n role: \"assistant\",\n content: lastChunk.content,\n } as ThreadMessage),\n ];\n onFinish({\n messages: resultingMessages,\n metadata: {\n roundtrips: lastChunk.metadata?.roundtrips!,\n },\n });\n },\n }),\n );\n }\n\n // drain the server stream\n serverStream.pipeTo(voidStream()).catch((e) => {\n console.error(\"Server stream processing error:\", e);\n });\n }\n\n return stream;\n};\n\nexport declare namespace getEdgeRuntimeResponse {\n export type { GetEdgeRuntimeStreamOptions as Options };\n}\n\nexport const getEdgeRuntimeResponse = async (\n options: getEdgeRuntimeResponse.Options,\n) => {\n const stream = await getEdgeRuntimeStream(options);\n return new Response(\n stream\n .pipeThrough(assistantEncoderStream())\n .pipeThrough(streamPartEncoderStream()),\n {\n headers: {\n \"Content-Type\": \"text/plain; charset=utf-8\",\n },\n },\n );\n};\n\nexport const createEdgeRuntimeAPI = (options: CreateEdgeRuntimeAPIOptions) => ({\n POST: async (request: Request) =>\n getEdgeRuntimeResponse({\n abortSignal: request.signal,\n requestData: await request.json(),\n options,\n }),\n});\n\ntype StreamMessageOptions = LanguageModelV1CallSettings & {\n model: LanguageModelV1;\n system?: string;\n messages: CoreMessage[];\n tools?: LanguageModelV1FunctionTool[];\n toolChoice?: LanguageModelV1ToolChoice;\n abortSignal: AbortSignal;\n};\n\nasync function streamMessage({\n model,\n system,\n messages,\n tools,\n toolChoice,\n ...options\n}: StreamMessageOptions) {\n return model.doStream({\n inputFormat: \"messages\",\n mode: {\n type: \"regular\",\n ...(tools ? { tools } : undefined),\n ...(toolChoice ? { toolChoice } : undefined),\n },\n prompt: convertToLanguageModelPrompt(system, messages),\n ...(options as Partial<LanguageModelV1CallOptions>),\n });\n}\n\nexport function convertToLanguageModelPrompt(\n system: string | undefined,\n messages: CoreMessage[],\n): LanguageModelV1Prompt {\n const languageModelMessages: LanguageModelV1Prompt = [];\n\n if (system != null) {\n languageModelMessages.push({ role: \"system\", content: system });\n }\n languageModelMessages.push(...toLanguageModelMessages(messages));\n\n return languageModelMessages;\n}\n"],"mappings":"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","names":["message","z","z","z","result","sjson","sjson"]}