@usecrow/ui 0.1.66 → 0.1.67
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/index.cjs +41 -5
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +24 -0
- package/dist/index.d.ts +24 -0
- package/dist/index.js +41 -5
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -207,6 +207,14 @@ interface WidgetConfigResponse {
|
|
|
207
207
|
toolConsentSettings?: Record<string, {
|
|
208
208
|
requires_consent: boolean;
|
|
209
209
|
}>;
|
|
210
|
+
/** Whether end-user model selection is enabled */
|
|
211
|
+
modelSelectionEnabled?: boolean;
|
|
212
|
+
/** Available models for end-user selection (model IDs + display info) */
|
|
213
|
+
availableModels?: Array<{
|
|
214
|
+
id: string;
|
|
215
|
+
name: string;
|
|
216
|
+
provider: "OpenAI" | "Anthropic";
|
|
217
|
+
}>;
|
|
210
218
|
}
|
|
211
219
|
|
|
212
220
|
/**
|
|
@@ -863,6 +871,14 @@ interface UseWidgetStylesResult {
|
|
|
863
871
|
toolConsentSettings: Record<string, {
|
|
864
872
|
requires_consent: boolean;
|
|
865
873
|
}>;
|
|
874
|
+
/** Whether end-user model selection is enabled */
|
|
875
|
+
modelSelectionEnabled: boolean;
|
|
876
|
+
/** Available models for the dropdown */
|
|
877
|
+
availableModels: Array<{
|
|
878
|
+
id: string;
|
|
879
|
+
name: string;
|
|
880
|
+
provider: "OpenAI" | "Anthropic";
|
|
881
|
+
}>;
|
|
866
882
|
/** Refetch styles from API */
|
|
867
883
|
refetch: () => Promise<void>;
|
|
868
884
|
}
|
|
@@ -910,6 +926,14 @@ interface UseCopilotStylesResult {
|
|
|
910
926
|
toolConsentSettings: Record<string, {
|
|
911
927
|
requires_consent: boolean;
|
|
912
928
|
}>;
|
|
929
|
+
/** Whether end-user model selection is enabled */
|
|
930
|
+
modelSelectionEnabled: boolean;
|
|
931
|
+
/** Available models for the dropdown */
|
|
932
|
+
availableModels: Array<{
|
|
933
|
+
id: string;
|
|
934
|
+
name: string;
|
|
935
|
+
provider: "OpenAI" | "Anthropic";
|
|
936
|
+
}>;
|
|
913
937
|
/** Refetch styles from API */
|
|
914
938
|
refetch: () => Promise<void>;
|
|
915
939
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -207,6 +207,14 @@ interface WidgetConfigResponse {
|
|
|
207
207
|
toolConsentSettings?: Record<string, {
|
|
208
208
|
requires_consent: boolean;
|
|
209
209
|
}>;
|
|
210
|
+
/** Whether end-user model selection is enabled */
|
|
211
|
+
modelSelectionEnabled?: boolean;
|
|
212
|
+
/** Available models for end-user selection (model IDs + display info) */
|
|
213
|
+
availableModels?: Array<{
|
|
214
|
+
id: string;
|
|
215
|
+
name: string;
|
|
216
|
+
provider: "OpenAI" | "Anthropic";
|
|
217
|
+
}>;
|
|
210
218
|
}
|
|
211
219
|
|
|
212
220
|
/**
|
|
@@ -863,6 +871,14 @@ interface UseWidgetStylesResult {
|
|
|
863
871
|
toolConsentSettings: Record<string, {
|
|
864
872
|
requires_consent: boolean;
|
|
865
873
|
}>;
|
|
874
|
+
/** Whether end-user model selection is enabled */
|
|
875
|
+
modelSelectionEnabled: boolean;
|
|
876
|
+
/** Available models for the dropdown */
|
|
877
|
+
availableModels: Array<{
|
|
878
|
+
id: string;
|
|
879
|
+
name: string;
|
|
880
|
+
provider: "OpenAI" | "Anthropic";
|
|
881
|
+
}>;
|
|
866
882
|
/** Refetch styles from API */
|
|
867
883
|
refetch: () => Promise<void>;
|
|
868
884
|
}
|
|
@@ -910,6 +926,14 @@ interface UseCopilotStylesResult {
|
|
|
910
926
|
toolConsentSettings: Record<string, {
|
|
911
927
|
requires_consent: boolean;
|
|
912
928
|
}>;
|
|
929
|
+
/** Whether end-user model selection is enabled */
|
|
930
|
+
modelSelectionEnabled: boolean;
|
|
931
|
+
/** Available models for the dropdown */
|
|
932
|
+
availableModels: Array<{
|
|
933
|
+
id: string;
|
|
934
|
+
name: string;
|
|
935
|
+
provider: "OpenAI" | "Anthropic";
|
|
936
|
+
}>;
|
|
913
937
|
/** Refetch styles from API */
|
|
914
938
|
refetch: () => Promise<void>;
|
|
915
939
|
}
|
package/dist/index.js
CHANGED
|
@@ -1612,6 +1612,12 @@ function useWidgetStyles({
|
|
|
1612
1612
|
const [selectedModel, setSelectedModel] = useState(
|
|
1613
1613
|
styleCache.get(key)?.model ?? void 0
|
|
1614
1614
|
);
|
|
1615
|
+
const [modelSelectionEnabled, setModelSelectionEnabled] = useState(
|
|
1616
|
+
styleCache.get(key)?.modelSelectionEnabled || false
|
|
1617
|
+
);
|
|
1618
|
+
const [availableModels, setAvailableModels] = useState(
|
|
1619
|
+
styleCache.get(key)?.availableModels || []
|
|
1620
|
+
);
|
|
1615
1621
|
const hasFetchedRef = useRef(false);
|
|
1616
1622
|
const fetchStyles = async () => {
|
|
1617
1623
|
if (skip) return;
|
|
@@ -1631,6 +1637,8 @@ function useWidgetStyles({
|
|
|
1631
1637
|
setSelectedModel(config.model ?? void 0);
|
|
1632
1638
|
setInitialSuggestions(config.initialSuggestions || []);
|
|
1633
1639
|
setToolConsentSettings(config.toolConsentSettings || {});
|
|
1640
|
+
setModelSelectionEnabled(config.modelSelectionEnabled || false);
|
|
1641
|
+
setAvailableModels(config.availableModels || []);
|
|
1634
1642
|
} catch (err) {
|
|
1635
1643
|
console.error("[CrowWidget] Failed to fetch styles:", err);
|
|
1636
1644
|
setError(err instanceof Error ? err : new Error(String(err)));
|
|
@@ -1649,6 +1657,8 @@ function useWidgetStyles({
|
|
|
1649
1657
|
setPersistAnonymousConversations(cached.persistAnonymousConversations ?? true);
|
|
1650
1658
|
setWelcomeMessage(cached.welcomeMessage ?? void 0);
|
|
1651
1659
|
setSelectedModel(cached.model ?? void 0);
|
|
1660
|
+
setModelSelectionEnabled(cached.modelSelectionEnabled || false);
|
|
1661
|
+
setAvailableModels(cached.availableModels || []);
|
|
1652
1662
|
setIsLoading(false);
|
|
1653
1663
|
return;
|
|
1654
1664
|
}
|
|
@@ -1670,6 +1680,8 @@ function useWidgetStyles({
|
|
|
1670
1680
|
selectedModel,
|
|
1671
1681
|
initialSuggestions,
|
|
1672
1682
|
toolConsentSettings,
|
|
1683
|
+
modelSelectionEnabled,
|
|
1684
|
+
availableModels,
|
|
1673
1685
|
refetch: fetchStyles
|
|
1674
1686
|
};
|
|
1675
1687
|
}
|
|
@@ -1709,6 +1721,12 @@ function useCopilotStyles({
|
|
|
1709
1721
|
const [toolConsentSettings, setToolConsentSettings] = useState(
|
|
1710
1722
|
styleCache.get(key)?.toolConsentSettings || {}
|
|
1711
1723
|
);
|
|
1724
|
+
const [modelSelectionEnabled, setModelSelectionEnabled] = useState(
|
|
1725
|
+
styleCache.get(key)?.modelSelectionEnabled || false
|
|
1726
|
+
);
|
|
1727
|
+
const [availableModels, setAvailableModels] = useState(
|
|
1728
|
+
styleCache.get(key)?.availableModels || []
|
|
1729
|
+
);
|
|
1712
1730
|
const hasFetchedRef = useRef(false);
|
|
1713
1731
|
const fetchStyles = async () => {
|
|
1714
1732
|
if (skip) return;
|
|
@@ -1726,6 +1744,8 @@ function useCopilotStyles({
|
|
|
1726
1744
|
setWelcomeMessage(config.welcomeMessage ?? void 0);
|
|
1727
1745
|
setSelectedModel(config.model ?? void 0);
|
|
1728
1746
|
setToolConsentSettings(config.toolConsentSettings || {});
|
|
1747
|
+
setModelSelectionEnabled(config.modelSelectionEnabled || false);
|
|
1748
|
+
setAvailableModels(config.availableModels || []);
|
|
1729
1749
|
} catch (err) {
|
|
1730
1750
|
console.error("[CrowCopilot] Failed to fetch styles:", err);
|
|
1731
1751
|
setError(err instanceof Error ? err : new Error(String(err)));
|
|
@@ -1745,6 +1765,8 @@ function useCopilotStyles({
|
|
|
1745
1765
|
setPersistAnonymousConversations(cached.persistAnonymousConversations ?? true);
|
|
1746
1766
|
setWelcomeMessage(cached.welcomeMessage ?? void 0);
|
|
1747
1767
|
setSelectedModel(cached.model ?? void 0);
|
|
1768
|
+
setModelSelectionEnabled(cached.modelSelectionEnabled || false);
|
|
1769
|
+
setAvailableModels(cached.availableModels || []);
|
|
1748
1770
|
setIsLoading(false);
|
|
1749
1771
|
return;
|
|
1750
1772
|
}
|
|
@@ -1764,6 +1786,8 @@ function useCopilotStyles({
|
|
|
1764
1786
|
welcomeMessage,
|
|
1765
1787
|
selectedModel,
|
|
1766
1788
|
toolConsentSettings,
|
|
1789
|
+
modelSelectionEnabled,
|
|
1790
|
+
availableModels,
|
|
1767
1791
|
refetch: fetchStyles
|
|
1768
1792
|
};
|
|
1769
1793
|
}
|
|
@@ -3205,7 +3229,9 @@ var ModelSelector = ({
|
|
|
3205
3229
|
const dropdownRef = useRef(null);
|
|
3206
3230
|
useEffect(() => {
|
|
3207
3231
|
const handleClickOutside = (event) => {
|
|
3208
|
-
if (
|
|
3232
|
+
if (!dropdownRef.current) return;
|
|
3233
|
+
const path = event.composedPath();
|
|
3234
|
+
if (!path.includes(dropdownRef.current)) {
|
|
3209
3235
|
setIsOpen(false);
|
|
3210
3236
|
}
|
|
3211
3237
|
};
|
|
@@ -4190,7 +4216,9 @@ function CrowWidget({
|
|
|
4190
4216
|
welcomeMessage: welcomeMessageFromAPI,
|
|
4191
4217
|
selectedModel: selectedModelFromAPI,
|
|
4192
4218
|
initialSuggestions,
|
|
4193
|
-
toolConsentSettings
|
|
4219
|
+
toolConsentSettings,
|
|
4220
|
+
modelSelectionEnabled,
|
|
4221
|
+
availableModels: availableModelsFromAPI
|
|
4194
4222
|
} = useWidgetStyles({
|
|
4195
4223
|
productId,
|
|
4196
4224
|
apiUrl,
|
|
@@ -4787,7 +4815,10 @@ function CrowWidget({
|
|
|
4787
4815
|
showStopButton: isBrowserUseActive || !!askUserResolver || !!pendingConfirmation,
|
|
4788
4816
|
highlighted: !!askUserResolver,
|
|
4789
4817
|
className: "crow-backdrop-blur-md",
|
|
4790
|
-
backendUrl: apiUrl
|
|
4818
|
+
backendUrl: apiUrl,
|
|
4819
|
+
selectedModel: chat.selectedModel || selectedModelFromAPI,
|
|
4820
|
+
onModelChange: chat.setSelectedModel,
|
|
4821
|
+
availableModels: modelSelectionEnabled ? availableModelsFromAPI : []
|
|
4791
4822
|
}
|
|
4792
4823
|
)
|
|
4793
4824
|
] })
|
|
@@ -5122,7 +5153,9 @@ function CrowCopilot({
|
|
|
5122
5153
|
persistAnonymousConversations,
|
|
5123
5154
|
welcomeMessage: welcomeMessageFromAPI,
|
|
5124
5155
|
selectedModel,
|
|
5125
|
-
toolConsentSettings
|
|
5156
|
+
toolConsentSettings,
|
|
5157
|
+
modelSelectionEnabled,
|
|
5158
|
+
availableModels: availableModelsFromAPI
|
|
5126
5159
|
} = useCopilotStyles({
|
|
5127
5160
|
productId,
|
|
5128
5161
|
apiUrl,
|
|
@@ -6087,7 +6120,10 @@ function CrowCopilot({
|
|
|
6087
6120
|
onSend: handleSend,
|
|
6088
6121
|
onStop: handleStop,
|
|
6089
6122
|
placeholder: "Ask anything...",
|
|
6090
|
-
isLoading: chat.isLoading
|
|
6123
|
+
isLoading: chat.isLoading,
|
|
6124
|
+
selectedModel: chat.selectedModel || selectedModel,
|
|
6125
|
+
onModelChange: chat.setSelectedModel,
|
|
6126
|
+
availableModels: modelSelectionEnabled ? availableModelsFromAPI : []
|
|
6091
6127
|
}
|
|
6092
6128
|
)
|
|
6093
6129
|
]
|