@tangle-network/sandbox-ui 0.70.0 → 0.71.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chat.d.ts +13 -8
- package/dist/chat.js +3 -3
- package/dist/{chunk-HU4B2M4K.js → chunk-IWIZ7RZE.js} +1 -1
- package/dist/{chunk-SF6LPMMN.js → chunk-L62ZT6RS.js} +5 -2
- package/dist/{chunk-XL573ZOV.js → chunk-UQXDIQWD.js} +195 -43
- package/dist/dashboard.js +2 -2
- package/dist/globals.css +22 -0
- package/dist/index.js +3 -3
- package/dist/pages.js +1 -1
- package/dist/styles.css +22 -0
- package/dist/workbench.js +2 -2
- package/package.json +1 -1
package/dist/chat.d.ts
CHANGED
|
@@ -230,16 +230,21 @@ interface AgentSessionControlsProps {
|
|
|
230
230
|
* existing behavior. `"gear"` collapses them behind a single compact gear
|
|
231
231
|
* button whose menu opens up-and-left, for right-anchored copilots where
|
|
232
232
|
* the composer is tight. Nested model/harness/effort menus render adjacent
|
|
233
|
-
* on the left of the gear menu.
|
|
233
|
+
* on the left of the gear menu. `"combined"` is the gear layout with a
|
|
234
|
+
* labeled trigger instead of the anonymous icon: the button summarizes the
|
|
235
|
+
* current selection as text (`harness · model · effort`) so the choice stays
|
|
236
|
+
* visible without opening the menu — for a composer that wants one compact
|
|
237
|
+
* agent control it can read at a glance.
|
|
234
238
|
*/
|
|
235
|
-
layout?: "inline" | "gear";
|
|
239
|
+
layout?: "inline" | "gear" | "combined";
|
|
236
240
|
/**
|
|
237
|
-
* Where the
|
|
238
|
-
*
|
|
239
|
-
*
|
|
240
|
-
*
|
|
241
|
-
*
|
|
242
|
-
* `"
|
|
241
|
+
* Where the pickers open. `"auto"` (default) keeps Radix's collision-aware
|
|
242
|
+
* behavior: the menus open downward but flip up when the composer is docked
|
|
243
|
+
* at the bottom of the viewport. `"down"` pins them open downward — for a
|
|
244
|
+
* composer floating in open space (e.g. a centered new-chat surface) where
|
|
245
|
+
* flipping up would cover the heading. Honored by the `"inline"` strip (its
|
|
246
|
+
* nested pickers) and by the `"combined"` panel (which opens downward instead
|
|
247
|
+
* of upward); the `"gear"` menu keeps its own placement.
|
|
243
248
|
*/
|
|
244
249
|
menuPlacement?: "auto" | "down";
|
|
245
250
|
}
|
package/dist/chat.js
CHANGED
|
@@ -17,9 +17,9 @@ import {
|
|
|
17
17
|
modelProvider,
|
|
18
18
|
snapHarnessToModel,
|
|
19
19
|
snapModelToHarness
|
|
20
|
-
} from "./chunk-
|
|
21
|
-
import "./chunk-
|
|
22
|
-
import "./chunk-
|
|
20
|
+
} from "./chunk-UQXDIQWD.js";
|
|
21
|
+
import "./chunk-IWIZ7RZE.js";
|
|
22
|
+
import "./chunk-L62ZT6RS.js";
|
|
23
23
|
import "./chunk-EI44GEQ5.js";
|
|
24
24
|
import "./chunk-U67V476Y.js";
|
|
25
25
|
export {
|
|
@@ -360,7 +360,7 @@ function ModelPicker({
|
|
|
360
360
|
children: [
|
|
361
361
|
currentIdentity ? /* @__PURE__ */ jsx2(ModelBrandStack, { identity: currentIdentity, size: "sm" }) : /* @__PURE__ */ jsx2(Sparkles, { className: "h-3 w-3 text-muted-foreground" }),
|
|
362
362
|
/* @__PURE__ */ jsx2("span", { className: "truncate max-w-[160px]", children: currentLabel || placeholder }),
|
|
363
|
-
/* @__PURE__ */ jsx2(ChevronDown, { className: "h-3 w-3 text-muted-foreground transition-transform data-[state=open]:rotate-180" })
|
|
363
|
+
/* @__PURE__ */ jsx2(ChevronDown, { className: "ml-auto h-3 w-3 shrink-0 text-muted-foreground transition-transform data-[state=open]:rotate-180" })
|
|
364
364
|
]
|
|
365
365
|
}
|
|
366
366
|
) : /* @__PURE__ */ jsxs2(
|
|
@@ -793,5 +793,8 @@ export {
|
|
|
793
793
|
DEFAULT_FEATURED_MODEL_IDS,
|
|
794
794
|
formatPricing,
|
|
795
795
|
formatContext,
|
|
796
|
-
|
|
796
|
+
resolveModelBrandIdentity,
|
|
797
|
+
stripBrandPrefix,
|
|
798
|
+
ModelPicker,
|
|
799
|
+
ModelBrandStack
|
|
797
800
|
};
|
|
@@ -2,11 +2,14 @@ import {
|
|
|
2
2
|
HARNESS_OPTIONS,
|
|
3
3
|
HarnessLogo,
|
|
4
4
|
chatCapableHarnesses
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-IWIZ7RZE.js";
|
|
6
6
|
import {
|
|
7
|
+
ModelBrandStack,
|
|
7
8
|
ModelPicker,
|
|
8
|
-
canonicalModelId
|
|
9
|
-
|
|
9
|
+
canonicalModelId,
|
|
10
|
+
resolveModelBrandIdentity,
|
|
11
|
+
stripBrandPrefix
|
|
12
|
+
} from "./chunk-L62ZT6RS.js";
|
|
10
13
|
import {
|
|
11
14
|
cn
|
|
12
15
|
} from "./chunk-EI44GEQ5.js";
|
|
@@ -110,9 +113,9 @@ function ReasoningLevelPicker({
|
|
|
110
113
|
),
|
|
111
114
|
"aria-label": "Reasoning level",
|
|
112
115
|
children: [
|
|
113
|
-
/* @__PURE__ */ jsx(Brain, { className: "h-3.5 w-3.5 text-muted-foreground" }),
|
|
116
|
+
/* @__PURE__ */ jsx(Brain, { className: "h-3.5 w-3.5 shrink-0 text-muted-foreground" }),
|
|
114
117
|
/* @__PURE__ */ jsx("span", { children: label }),
|
|
115
|
-
/* @__PURE__ */ jsx(ChevronDown, { className: "h-3.5 w-3.5 text-muted-foreground" })
|
|
118
|
+
/* @__PURE__ */ jsx(ChevronDown, { className: "ml-auto h-3.5 w-3.5 shrink-0 text-muted-foreground" })
|
|
116
119
|
]
|
|
117
120
|
}
|
|
118
121
|
) }),
|
|
@@ -470,7 +473,7 @@ function ProfileForm({
|
|
|
470
473
|
}
|
|
471
474
|
|
|
472
475
|
// src/chat/agent-session-controls.tsx
|
|
473
|
-
import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
476
|
+
import { Fragment as Fragment2, jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
474
477
|
function selectorIgnoreNote(harness) {
|
|
475
478
|
const ignoresModel = !harnessHonorsModel(harness);
|
|
476
479
|
const ignoresEffort = !harnessHonorsEffort(harness);
|
|
@@ -592,7 +595,8 @@ function HarnessDropdown({
|
|
|
592
595
|
newChatLabel,
|
|
593
596
|
side = "bottom",
|
|
594
597
|
align = "start",
|
|
595
|
-
avoidCollisions
|
|
598
|
+
avoidCollisions,
|
|
599
|
+
triggerClassName
|
|
596
600
|
}) {
|
|
597
601
|
const allowed = new Set(
|
|
598
602
|
available ?? HARNESS_OPTIONS.map((h) => h.type)
|
|
@@ -624,13 +628,14 @@ function HarnessDropdown({
|
|
|
624
628
|
"text-xs font-medium text-foreground shadow-sm transition-colors",
|
|
625
629
|
"hover:border-[var(--md3-outline-variant)] hover:bg-surface-container-high focus:outline-none focus-visible:ring-1 focus-visible:ring-ring",
|
|
626
630
|
"data-[state=open]:border-[var(--md3-outline-variant)] data-[state=open]:bg-surface-container-high",
|
|
627
|
-
"disabled:cursor-not-allowed disabled:opacity-60"
|
|
631
|
+
"disabled:cursor-not-allowed disabled:opacity-60",
|
|
632
|
+
triggerClassName
|
|
628
633
|
),
|
|
629
634
|
"aria-label": "Agent harness",
|
|
630
635
|
children: [
|
|
631
|
-
/* @__PURE__ */ jsx3(HarnessLogo, { type: value, size: 16 }),
|
|
632
|
-
/* @__PURE__ */ jsx3("span", { children: selected?.label ?? value }),
|
|
633
|
-
!locked && /* @__PURE__ */ jsx3(ChevronDown3, { className: "h-3.5 w-3.5 text-muted-foreground" })
|
|
636
|
+
/* @__PURE__ */ jsx3(HarnessLogo, { type: value, size: 16, className: "shrink-0" }),
|
|
637
|
+
/* @__PURE__ */ jsx3("span", { className: "truncate", children: selected?.label ?? value }),
|
|
638
|
+
!locked && /* @__PURE__ */ jsx3(ChevronDown3, { className: "ml-auto h-3.5 w-3.5 shrink-0 text-muted-foreground" })
|
|
634
639
|
]
|
|
635
640
|
}
|
|
636
641
|
) }),
|
|
@@ -745,9 +750,11 @@ function AgentSessionControls({
|
|
|
745
750
|
)
|
|
746
751
|
) : model?.models;
|
|
747
752
|
const harnessAvailable = harness?.available ?? (context === "chat" ? chatCapableHarnesses : void 0);
|
|
748
|
-
const
|
|
749
|
-
const
|
|
750
|
-
const
|
|
753
|
+
const collapsed = layout === "gear" || layout === "combined";
|
|
754
|
+
const menuSide = collapsed ? "left" : "bottom";
|
|
755
|
+
const menuAlign = collapsed ? "end" : "start";
|
|
756
|
+
const collapsedTriggerClass = layout === "combined" ? "w-full bg-transparent shadow-none hover:bg-muted/60 data-[state=open]:bg-muted/60" : collapsed ? "w-full" : void 0;
|
|
757
|
+
const inlineForceDown = menuPlacement === "down" && layout === "inline";
|
|
751
758
|
const avoidCollisions = inlineForceDown ? false : void 0;
|
|
752
759
|
const harnessNode = harness && /* @__PURE__ */ jsx3(
|
|
753
760
|
HarnessDropdown,
|
|
@@ -757,7 +764,8 @@ function AgentSessionControls({
|
|
|
757
764
|
onChange: handleHarnessChange,
|
|
758
765
|
side: menuSide,
|
|
759
766
|
align: menuAlign,
|
|
760
|
-
avoidCollisions
|
|
767
|
+
avoidCollisions,
|
|
768
|
+
triggerClassName: collapsedTriggerClass
|
|
761
769
|
}
|
|
762
770
|
);
|
|
763
771
|
const profileNode = profile && /* @__PURE__ */ jsx3(
|
|
@@ -771,7 +779,7 @@ function AgentSessionControls({
|
|
|
771
779
|
onUpdate: profile.onUpdate,
|
|
772
780
|
onDelete: profile.onDelete,
|
|
773
781
|
disabled: profile.disabled,
|
|
774
|
-
side: inlineForceDown ||
|
|
782
|
+
side: inlineForceDown || collapsed ? "bottom" : "top"
|
|
775
783
|
}
|
|
776
784
|
);
|
|
777
785
|
const modelNode = model && /* @__PURE__ */ jsx3(
|
|
@@ -786,8 +794,9 @@ function AgentSessionControls({
|
|
|
786
794
|
popular: model.popular,
|
|
787
795
|
recents: model.recents,
|
|
788
796
|
disabled: model.disabled || (visibleModels ?? []).length === 0 || !selectorHonorsModel,
|
|
789
|
-
side:
|
|
790
|
-
avoidCollisions
|
|
797
|
+
side: collapsed ? void 0 : "bottom",
|
|
798
|
+
avoidCollisions,
|
|
799
|
+
triggerClassName: collapsedTriggerClass
|
|
791
800
|
}
|
|
792
801
|
);
|
|
793
802
|
const modelReasoning = modelReasoningCapability(model?.models, model?.value);
|
|
@@ -800,8 +809,9 @@ function AgentSessionControls({
|
|
|
800
809
|
options: reasoningOptions,
|
|
801
810
|
disabled: reasoning.disabled || !selectorHonorsEffort,
|
|
802
811
|
available: harness ? reasoningEffortsFor(harness.value, modelReasoning) : reasoning.available,
|
|
803
|
-
side:
|
|
804
|
-
avoidCollisions
|
|
812
|
+
side: collapsed ? void 0 : "bottom",
|
|
813
|
+
avoidCollisions,
|
|
814
|
+
triggerClassName: collapsedTriggerClass
|
|
805
815
|
}
|
|
806
816
|
);
|
|
807
817
|
if (layout === "gear") {
|
|
@@ -817,6 +827,76 @@ function AgentSessionControls({
|
|
|
817
827
|
}
|
|
818
828
|
);
|
|
819
829
|
}
|
|
830
|
+
if (layout === "combined") {
|
|
831
|
+
const segments = [];
|
|
832
|
+
if (harness) {
|
|
833
|
+
const harnessLabel = HARNESS_OPTIONS.find((option) => option.type === harness.value)?.label ?? harness.value;
|
|
834
|
+
segments.push({
|
|
835
|
+
key: "harness",
|
|
836
|
+
label: harnessLabel,
|
|
837
|
+
node: /* @__PURE__ */ jsxs3("span", { className: "flex items-center gap-1.5", children: [
|
|
838
|
+
/* @__PURE__ */ jsx3(HarnessLogo, { type: harness.value, size: 16, className: "shrink-0" }),
|
|
839
|
+
harnessLabel
|
|
840
|
+
] })
|
|
841
|
+
});
|
|
842
|
+
}
|
|
843
|
+
if (model && selectorHonorsModel) {
|
|
844
|
+
const current = (model.models ?? []).find(
|
|
845
|
+
(entry) => canonicalModelId(entry) === model.value
|
|
846
|
+
);
|
|
847
|
+
const identity = current ? resolveModelBrandIdentity(current) : null;
|
|
848
|
+
const modelLabel = stripBrandPrefix(
|
|
849
|
+
current?.name ?? current?.id ?? model.value,
|
|
850
|
+
identity
|
|
851
|
+
);
|
|
852
|
+
segments.push({
|
|
853
|
+
key: "model",
|
|
854
|
+
label: modelLabel,
|
|
855
|
+
node: /* @__PURE__ */ jsxs3("span", { className: "flex items-center gap-1.5", children: [
|
|
856
|
+
identity && /* @__PURE__ */ jsx3(ModelBrandStack, { identity, size: "sm" }),
|
|
857
|
+
modelLabel
|
|
858
|
+
] })
|
|
859
|
+
});
|
|
860
|
+
}
|
|
861
|
+
if (reasoning && selectorHonorsEffort) {
|
|
862
|
+
const effortLabel = (reasoningOptions ?? DEFAULT_REASONING_LEVEL_OPTIONS).find(
|
|
863
|
+
(option) => option.value === reasoning.value
|
|
864
|
+
)?.label ?? "Auto";
|
|
865
|
+
segments.push({
|
|
866
|
+
key: "effort",
|
|
867
|
+
label: effortLabel,
|
|
868
|
+
node: /* @__PURE__ */ jsxs3("span", { className: "flex items-center gap-1.5", children: [
|
|
869
|
+
/* @__PURE__ */ jsx3("span", { className: "flex w-3.5 shrink-0 justify-center", children: /* @__PURE__ */ jsx3(ReasoningGlyph, { level: reasoning.value }) }),
|
|
870
|
+
effortLabel
|
|
871
|
+
] })
|
|
872
|
+
});
|
|
873
|
+
}
|
|
874
|
+
const summary = /* @__PURE__ */ jsx3("span", { className: "flex items-center gap-1.5", children: segments.map((segment, index) => /* @__PURE__ */ jsxs3(React3.Fragment, { children: [
|
|
875
|
+
index > 0 && /* @__PURE__ */ jsx3(
|
|
876
|
+
"span",
|
|
877
|
+
{
|
|
878
|
+
className: "text-base leading-none text-muted-foreground/60",
|
|
879
|
+
"aria-hidden": true,
|
|
880
|
+
children: "\xB7"
|
|
881
|
+
}
|
|
882
|
+
),
|
|
883
|
+
segment.node
|
|
884
|
+
] }, segment.key)) });
|
|
885
|
+
return /* @__PURE__ */ jsx3(
|
|
886
|
+
SummaryControls,
|
|
887
|
+
{
|
|
888
|
+
className,
|
|
889
|
+
summary,
|
|
890
|
+
title: segments.map((segment) => segment.label).join(" \xB7 "),
|
|
891
|
+
contentSide: menuPlacement === "down" ? "bottom" : "top",
|
|
892
|
+
profileNode,
|
|
893
|
+
harnessNode,
|
|
894
|
+
modelNode,
|
|
895
|
+
reasoningNode,
|
|
896
|
+
trailing
|
|
897
|
+
}
|
|
898
|
+
);
|
|
899
|
+
}
|
|
820
900
|
return /* @__PURE__ */ jsxs3(
|
|
821
901
|
"div",
|
|
822
902
|
{
|
|
@@ -839,6 +919,91 @@ function GearControls({
|
|
|
839
919
|
modelNode,
|
|
840
920
|
reasoningNode,
|
|
841
921
|
trailing
|
|
922
|
+
}) {
|
|
923
|
+
return /* @__PURE__ */ jsx3(
|
|
924
|
+
CollapsibleControls,
|
|
925
|
+
{
|
|
926
|
+
className,
|
|
927
|
+
trigger: /* @__PURE__ */ jsx3(SlidersHorizontal, { className: "h-4 w-4 text-muted-foreground" }),
|
|
928
|
+
triggerClassName: cn(
|
|
929
|
+
"inline-flex h-8 w-8 items-center justify-center rounded-lg border border-[var(--md3-outline-variant)] bg-surface-container",
|
|
930
|
+
"text-foreground shadow-sm transition-colors",
|
|
931
|
+
"hover:border-[var(--md3-outline-variant)] hover:bg-surface-container-high focus:outline-none focus-visible:ring-1 focus-visible:ring-ring",
|
|
932
|
+
"data-[state=open]:border-[var(--md3-outline-variant)] data-[state=open]:bg-surface-container-high"
|
|
933
|
+
),
|
|
934
|
+
contentSide: "top",
|
|
935
|
+
contentClassName: cn(
|
|
936
|
+
"w-56 gap-2 border-[var(--md3-outline-variant)] bg-surface-container-highest p-2",
|
|
937
|
+
"shadow-[0_8px_30px_rgba(0,0,0,0.45)] ring-1 ring-[#ffffff14]"
|
|
938
|
+
),
|
|
939
|
+
profileNode,
|
|
940
|
+
harnessNode,
|
|
941
|
+
modelNode,
|
|
942
|
+
reasoningNode,
|
|
943
|
+
trailing
|
|
944
|
+
}
|
|
945
|
+
);
|
|
946
|
+
}
|
|
947
|
+
function GearSection({
|
|
948
|
+
label,
|
|
949
|
+
children
|
|
950
|
+
}) {
|
|
951
|
+
return /* @__PURE__ */ jsxs3("div", { className: "flex flex-col gap-1", children: [
|
|
952
|
+
/* @__PURE__ */ jsx3("span", { className: "px-0.5 text-[10px] font-medium uppercase tracking-wide text-muted-foreground/70", children: label }),
|
|
953
|
+
children
|
|
954
|
+
] });
|
|
955
|
+
}
|
|
956
|
+
function SummaryControls({
|
|
957
|
+
className,
|
|
958
|
+
summary,
|
|
959
|
+
title,
|
|
960
|
+
contentSide,
|
|
961
|
+
profileNode,
|
|
962
|
+
harnessNode,
|
|
963
|
+
modelNode,
|
|
964
|
+
reasoningNode,
|
|
965
|
+
trailing
|
|
966
|
+
}) {
|
|
967
|
+
return /* @__PURE__ */ jsx3(
|
|
968
|
+
CollapsibleControls,
|
|
969
|
+
{
|
|
970
|
+
className,
|
|
971
|
+
trigger: /* @__PURE__ */ jsxs3(Fragment2, { children: [
|
|
972
|
+
summary,
|
|
973
|
+
/* @__PURE__ */ jsx3(ChevronDown3, { className: "h-3.5 w-3.5 shrink-0 text-muted-foreground" })
|
|
974
|
+
] }),
|
|
975
|
+
triggerTitle: title,
|
|
976
|
+
triggerClassName: cn(
|
|
977
|
+
// Container-less trigger (Codex-style): bare label + chevron docked in
|
|
978
|
+
// the composer footer, no border/card/shadow. Only a subtle rounded
|
|
979
|
+
// hover/open tint marks it as interactive.
|
|
980
|
+
"inline-flex h-8 items-center gap-1.5 rounded-md px-1.5",
|
|
981
|
+
"whitespace-nowrap text-xs font-medium text-foreground transition-colors",
|
|
982
|
+
"hover:bg-muted/50 focus:outline-none focus-visible:ring-1 focus-visible:ring-ring",
|
|
983
|
+
"data-[state=open]:bg-muted/50"
|
|
984
|
+
),
|
|
985
|
+
contentSide,
|
|
986
|
+
contentClassName: "w-64 gap-2.5 border-border bg-popover p-2.5 text-popover-foreground shadow-lg",
|
|
987
|
+
profileNode,
|
|
988
|
+
harnessNode,
|
|
989
|
+
modelNode,
|
|
990
|
+
reasoningNode,
|
|
991
|
+
trailing
|
|
992
|
+
}
|
|
993
|
+
);
|
|
994
|
+
}
|
|
995
|
+
function CollapsibleControls({
|
|
996
|
+
className,
|
|
997
|
+
trigger,
|
|
998
|
+
triggerTitle,
|
|
999
|
+
triggerClassName,
|
|
1000
|
+
contentSide,
|
|
1001
|
+
contentClassName,
|
|
1002
|
+
profileNode,
|
|
1003
|
+
harnessNode,
|
|
1004
|
+
modelNode,
|
|
1005
|
+
reasoningNode,
|
|
1006
|
+
trailing
|
|
842
1007
|
}) {
|
|
843
1008
|
return /* @__PURE__ */ jsxs3(
|
|
844
1009
|
"div",
|
|
@@ -853,19 +1018,15 @@ function GearControls({
|
|
|
853
1018
|
{
|
|
854
1019
|
type: "button",
|
|
855
1020
|
"aria-label": "Session controls",
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
"hover:border-[var(--md3-outline-variant)] hover:bg-surface-container-high focus:outline-none focus-visible:ring-1 focus-visible:ring-ring",
|
|
860
|
-
"data-[state=open]:border-[var(--md3-outline-variant)] data-[state=open]:bg-surface-container-high"
|
|
861
|
-
),
|
|
862
|
-
children: /* @__PURE__ */ jsx3(SlidersHorizontal, { className: "h-4 w-4 text-muted-foreground" })
|
|
1021
|
+
title: triggerTitle,
|
|
1022
|
+
className: triggerClassName,
|
|
1023
|
+
children: trigger
|
|
863
1024
|
}
|
|
864
1025
|
) }),
|
|
865
1026
|
/* @__PURE__ */ jsx3(DropdownMenu2.Portal, { children: /* @__PURE__ */ jsxs3(
|
|
866
1027
|
DropdownMenu2.Content,
|
|
867
1028
|
{
|
|
868
|
-
side:
|
|
1029
|
+
side: contentSide,
|
|
869
1030
|
align: "end",
|
|
870
1031
|
sideOffset: 8,
|
|
871
1032
|
onInteractOutside: (event) => {
|
|
@@ -877,11 +1038,11 @@ function GearControls({
|
|
|
877
1038
|
}
|
|
878
1039
|
},
|
|
879
1040
|
className: cn(
|
|
880
|
-
"z-50 flex
|
|
881
|
-
"shadow-[0_8px_30px_rgba(0,0,0,0.45)] ring-1 ring-[#ffffff14]",
|
|
1041
|
+
"z-50 flex flex-col rounded-[var(--radius-md)] border",
|
|
882
1042
|
"data-[state=open]:animate-in data-[state=closed]:animate-out",
|
|
883
1043
|
"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
|
|
884
|
-
"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95"
|
|
1044
|
+
"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
|
|
1045
|
+
contentClassName
|
|
885
1046
|
),
|
|
886
1047
|
children: [
|
|
887
1048
|
profileNode && /* @__PURE__ */ jsx3(GearSection, { label: "Agent", children: profileNode }),
|
|
@@ -896,15 +1057,6 @@ function GearControls({
|
|
|
896
1057
|
}
|
|
897
1058
|
);
|
|
898
1059
|
}
|
|
899
|
-
function GearSection({
|
|
900
|
-
label,
|
|
901
|
-
children
|
|
902
|
-
}) {
|
|
903
|
-
return /* @__PURE__ */ jsxs3("div", { className: "flex flex-col gap-1", children: [
|
|
904
|
-
/* @__PURE__ */ jsx3("span", { className: "px-0.5 text-[10px] font-medium uppercase tracking-wide text-muted-foreground/70", children: label }),
|
|
905
|
-
children
|
|
906
|
-
] });
|
|
907
|
-
}
|
|
908
1060
|
|
|
909
1061
|
// src/chat/agent-composer.tsx
|
|
910
1062
|
import {
|
|
@@ -917,7 +1069,7 @@ import {
|
|
|
917
1069
|
X
|
|
918
1070
|
} from "lucide-react";
|
|
919
1071
|
import * as React4 from "react";
|
|
920
|
-
import { Fragment, jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
1072
|
+
import { Fragment as Fragment3, jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
921
1073
|
function AgentComposer({
|
|
922
1074
|
value,
|
|
923
1075
|
onChange,
|
|
@@ -1103,7 +1255,7 @@ function AgentComposer({
|
|
|
1103
1255
|
reasoning
|
|
1104
1256
|
}
|
|
1105
1257
|
) }),
|
|
1106
|
-
onAttach && /* @__PURE__ */ jsxs4(
|
|
1258
|
+
onAttach && /* @__PURE__ */ jsxs4(Fragment3, { children: [
|
|
1107
1259
|
/* @__PURE__ */ jsx4(
|
|
1108
1260
|
"button",
|
|
1109
1261
|
{
|
|
@@ -1131,7 +1283,7 @@ function AgentComposer({
|
|
|
1131
1283
|
}
|
|
1132
1284
|
)
|
|
1133
1285
|
] }),
|
|
1134
|
-
onAttachFolder && /* @__PURE__ */ jsxs4(
|
|
1286
|
+
onAttachFolder && /* @__PURE__ */ jsxs4(Fragment3, { children: [
|
|
1135
1287
|
/* @__PURE__ */ jsx4(
|
|
1136
1288
|
"button",
|
|
1137
1289
|
{
|
package/dist/dashboard.js
CHANGED
|
@@ -71,7 +71,7 @@ import {
|
|
|
71
71
|
HarnessLogo,
|
|
72
72
|
HarnessPicker,
|
|
73
73
|
chatCapableHarnesses
|
|
74
|
-
} from "./chunk-
|
|
74
|
+
} from "./chunk-IWIZ7RZE.js";
|
|
75
75
|
import {
|
|
76
76
|
DEFAULT_FEATURED_MODEL_IDS,
|
|
77
77
|
ModelPicker,
|
|
@@ -80,7 +80,7 @@ import {
|
|
|
80
80
|
formatContext,
|
|
81
81
|
formatPricing,
|
|
82
82
|
modelDedupKey
|
|
83
|
-
} from "./chunk-
|
|
83
|
+
} from "./chunk-L62ZT6RS.js";
|
|
84
84
|
import "./chunk-EI44GEQ5.js";
|
|
85
85
|
import "./chunk-U67V476Y.js";
|
|
86
86
|
export {
|
package/dist/globals.css
CHANGED
|
@@ -3443,6 +3443,10 @@
|
|
|
3443
3443
|
--tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
|
|
3444
3444
|
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
3445
3445
|
}
|
|
3446
|
+
.shadow-none {
|
|
3447
|
+
--tw-shadow: 0 0 #0000;
|
|
3448
|
+
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
3449
|
+
}
|
|
3446
3450
|
.shadow-sm {
|
|
3447
3451
|
--tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
|
|
3448
3452
|
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
@@ -4193,6 +4197,16 @@
|
|
|
4193
4197
|
}
|
|
4194
4198
|
}
|
|
4195
4199
|
}
|
|
4200
|
+
.hover\:bg-muted\/60 {
|
|
4201
|
+
&:hover {
|
|
4202
|
+
@media (hover: hover) {
|
|
4203
|
+
background-color: color-mix(in srgb, hsl(var(--muted)) 60%, transparent);
|
|
4204
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
4205
|
+
background-color: color-mix(in oklab, var(--color-muted) 60%, transparent);
|
|
4206
|
+
}
|
|
4207
|
+
}
|
|
4208
|
+
}
|
|
4209
|
+
}
|
|
4196
4210
|
.hover\:bg-muted\/80 {
|
|
4197
4211
|
&:hover {
|
|
4198
4212
|
@media (hover: hover) {
|
|
@@ -4883,6 +4897,14 @@
|
|
|
4883
4897
|
}
|
|
4884
4898
|
}
|
|
4885
4899
|
}
|
|
4900
|
+
.data-\[state\=open\]\:bg-muted\/60 {
|
|
4901
|
+
&[data-state="open"] {
|
|
4902
|
+
background-color: color-mix(in srgb, hsl(var(--muted)) 60%, transparent);
|
|
4903
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
4904
|
+
background-color: color-mix(in oklab, var(--color-muted) 60%, transparent);
|
|
4905
|
+
}
|
|
4906
|
+
}
|
|
4907
|
+
}
|
|
4886
4908
|
.data-\[state\=open\]\:bg-surface-container-high {
|
|
4887
4909
|
&[data-state="open"] {
|
|
4888
4910
|
background-color: var(--color-surface-container-high);
|
package/dist/index.js
CHANGED
|
@@ -102,7 +102,7 @@ import {
|
|
|
102
102
|
modelProvider,
|
|
103
103
|
snapHarnessToModel,
|
|
104
104
|
snapModelToHarness
|
|
105
|
-
} from "./chunk-
|
|
105
|
+
} from "./chunk-UQXDIQWD.js";
|
|
106
106
|
import {
|
|
107
107
|
ExpandedToolDetail,
|
|
108
108
|
InlineThinkingItem,
|
|
@@ -318,7 +318,7 @@ import {
|
|
|
318
318
|
HarnessLogo,
|
|
319
319
|
HarnessPicker,
|
|
320
320
|
chatCapableHarnesses
|
|
321
|
-
} from "./chunk-
|
|
321
|
+
} from "./chunk-IWIZ7RZE.js";
|
|
322
322
|
import {
|
|
323
323
|
DEFAULT_FEATURED_MODEL_IDS,
|
|
324
324
|
ModelPicker,
|
|
@@ -327,7 +327,7 @@ import {
|
|
|
327
327
|
formatContext,
|
|
328
328
|
formatPricing,
|
|
329
329
|
modelDedupKey
|
|
330
|
-
} from "./chunk-
|
|
330
|
+
} from "./chunk-L62ZT6RS.js";
|
|
331
331
|
import "./chunk-EI44GEQ5.js";
|
|
332
332
|
import {
|
|
333
333
|
OpenUIArtifactRenderer
|
package/dist/pages.js
CHANGED
package/dist/styles.css
CHANGED
|
@@ -3443,6 +3443,10 @@
|
|
|
3443
3443
|
--tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
|
|
3444
3444
|
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
3445
3445
|
}
|
|
3446
|
+
.shadow-none {
|
|
3447
|
+
--tw-shadow: 0 0 #0000;
|
|
3448
|
+
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
3449
|
+
}
|
|
3446
3450
|
.shadow-sm {
|
|
3447
3451
|
--tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
|
|
3448
3452
|
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
@@ -4193,6 +4197,16 @@
|
|
|
4193
4197
|
}
|
|
4194
4198
|
}
|
|
4195
4199
|
}
|
|
4200
|
+
.hover\:bg-muted\/60 {
|
|
4201
|
+
&:hover {
|
|
4202
|
+
@media (hover: hover) {
|
|
4203
|
+
background-color: color-mix(in srgb, hsl(var(--muted)) 60%, transparent);
|
|
4204
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
4205
|
+
background-color: color-mix(in oklab, var(--color-muted) 60%, transparent);
|
|
4206
|
+
}
|
|
4207
|
+
}
|
|
4208
|
+
}
|
|
4209
|
+
}
|
|
4196
4210
|
.hover\:bg-muted\/80 {
|
|
4197
4211
|
&:hover {
|
|
4198
4212
|
@media (hover: hover) {
|
|
@@ -4883,6 +4897,14 @@
|
|
|
4883
4897
|
}
|
|
4884
4898
|
}
|
|
4885
4899
|
}
|
|
4900
|
+
.data-\[state\=open\]\:bg-muted\/60 {
|
|
4901
|
+
&[data-state="open"] {
|
|
4902
|
+
background-color: color-mix(in srgb, hsl(var(--muted)) 60%, transparent);
|
|
4903
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
4904
|
+
background-color: color-mix(in oklab, var(--color-muted) 60%, transparent);
|
|
4905
|
+
}
|
|
4906
|
+
}
|
|
4907
|
+
}
|
|
4886
4908
|
.data-\[state\=open\]\:bg-surface-container-high {
|
|
4887
4909
|
&[data-state="open"] {
|
|
4888
4910
|
background-color: var(--color-surface-container-high);
|
package/dist/workbench.js
CHANGED
|
@@ -19,8 +19,8 @@ import "./chunk-VIREDUBF.js";
|
|
|
19
19
|
import "./chunk-77WVVJA4.js";
|
|
20
20
|
import "./chunk-OMUIPJQZ.js";
|
|
21
21
|
import "./chunk-4ZZUMXPX.js";
|
|
22
|
-
import "./chunk-
|
|
23
|
-
import "./chunk-
|
|
22
|
+
import "./chunk-IWIZ7RZE.js";
|
|
23
|
+
import "./chunk-L62ZT6RS.js";
|
|
24
24
|
import "./chunk-EI44GEQ5.js";
|
|
25
25
|
import "./chunk-U67V476Y.js";
|
|
26
26
|
export {
|
package/package.json
CHANGED