@usecrow/ui 0.1.33 → 0.1.35
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 +64 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +33 -2
- package/dist/index.d.ts +33 -2
- package/dist/index.js +64 -3
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -1190,6 +1190,10 @@ function useWidgetStyles({
|
|
|
1190
1190
|
const [browserUseEnabled, setBrowserUseEnabled] = React3.useState(
|
|
1191
1191
|
styleCache.get(key)?.browserUseEnabled || false
|
|
1192
1192
|
);
|
|
1193
|
+
const [pageNavigationEnabled, setPageNavigationEnabled] = React3.useState(
|
|
1194
|
+
styleCache.get(key)?.pageNavigationEnabled || false
|
|
1195
|
+
);
|
|
1196
|
+
const [pageNavigationRoutes, setPageNavigationRoutes] = React3.useState(styleCache.get(key)?.pageNavigationRoutes || []);
|
|
1193
1197
|
const [showThinking, setShowThinking] = React3.useState(
|
|
1194
1198
|
styleCache.get(key)?.showThinking ?? true
|
|
1195
1199
|
);
|
|
@@ -1213,6 +1217,8 @@ function useWidgetStyles({
|
|
|
1213
1217
|
setDbStyles(config.widgetStyles);
|
|
1214
1218
|
setAgentName(config.agentName || "Assistant");
|
|
1215
1219
|
setBrowserUseEnabled(config.browserUseEnabled || false);
|
|
1220
|
+
setPageNavigationEnabled(config.pageNavigationEnabled || false);
|
|
1221
|
+
setPageNavigationRoutes(config.pageNavigationRoutes || []);
|
|
1216
1222
|
setShowThinking(config.showThinking ?? true);
|
|
1217
1223
|
setPersistAnonymousConversations(config.persistAnonymousConversations ?? true);
|
|
1218
1224
|
setWelcomeMessage(config.welcomeMessage ?? void 0);
|
|
@@ -1248,6 +1254,8 @@ function useWidgetStyles({
|
|
|
1248
1254
|
error,
|
|
1249
1255
|
agentName,
|
|
1250
1256
|
browserUseEnabled,
|
|
1257
|
+
pageNavigationEnabled,
|
|
1258
|
+
pageNavigationRoutes,
|
|
1251
1259
|
showThinking,
|
|
1252
1260
|
persistAnonymousConversations,
|
|
1253
1261
|
welcomeMessage,
|
|
@@ -1271,6 +1279,10 @@ function useCopilotStyles({
|
|
|
1271
1279
|
const [agentName, setAgentName] = React3.useState(
|
|
1272
1280
|
styleCache.get(key)?.agentName || "Assistant"
|
|
1273
1281
|
);
|
|
1282
|
+
const [pageNavigationEnabled, setPageNavigationEnabled] = React3.useState(
|
|
1283
|
+
styleCache.get(key)?.pageNavigationEnabled || false
|
|
1284
|
+
);
|
|
1285
|
+
const [pageNavigationRoutes, setPageNavigationRoutes] = React3.useState(styleCache.get(key)?.pageNavigationRoutes || []);
|
|
1274
1286
|
const [persistAnonymousConversations, setPersistAnonymousConversations] = React3.useState(
|
|
1275
1287
|
styleCache.has(key) ? styleCache.get(key)?.persistAnonymousConversations ?? true : void 0
|
|
1276
1288
|
);
|
|
@@ -1290,6 +1302,8 @@ function useCopilotStyles({
|
|
|
1290
1302
|
styleCache.set(key, config);
|
|
1291
1303
|
setDbStyles(config.copilotStyles);
|
|
1292
1304
|
setAgentName(config.agentName || "Assistant");
|
|
1305
|
+
setPageNavigationEnabled(config.pageNavigationEnabled || false);
|
|
1306
|
+
setPageNavigationRoutes(config.pageNavigationRoutes || []);
|
|
1293
1307
|
setPersistAnonymousConversations(config.persistAnonymousConversations ?? true);
|
|
1294
1308
|
setWelcomeMessage(config.welcomeMessage ?? void 0);
|
|
1295
1309
|
setSelectedModel(config.model ?? void 0);
|
|
@@ -1306,6 +1320,8 @@ function useCopilotStyles({
|
|
|
1306
1320
|
if (cached) {
|
|
1307
1321
|
setDbStyles(cached.copilotStyles);
|
|
1308
1322
|
setAgentName(cached.agentName || "Assistant");
|
|
1323
|
+
setPageNavigationEnabled(cached.pageNavigationEnabled || false);
|
|
1324
|
+
setPageNavigationRoutes(cached.pageNavigationRoutes || []);
|
|
1309
1325
|
setPersistAnonymousConversations(cached.persistAnonymousConversations ?? true);
|
|
1310
1326
|
setWelcomeMessage(cached.welcomeMessage ?? void 0);
|
|
1311
1327
|
setSelectedModel(cached.model ?? void 0);
|
|
@@ -1321,6 +1337,8 @@ function useCopilotStyles({
|
|
|
1321
1337
|
isLoading,
|
|
1322
1338
|
error,
|
|
1323
1339
|
agentName,
|
|
1340
|
+
pageNavigationEnabled,
|
|
1341
|
+
pageNavigationRoutes,
|
|
1324
1342
|
persistAnonymousConversations,
|
|
1325
1343
|
welcomeMessage,
|
|
1326
1344
|
selectedModel,
|
|
@@ -2868,6 +2886,7 @@ function CrowWidget({
|
|
|
2868
2886
|
onReady,
|
|
2869
2887
|
onIdentify,
|
|
2870
2888
|
tools,
|
|
2889
|
+
navigate,
|
|
2871
2890
|
onToolResult
|
|
2872
2891
|
}) {
|
|
2873
2892
|
const {
|
|
@@ -2875,6 +2894,8 @@ function CrowWidget({
|
|
|
2875
2894
|
isLoading: isLoadingStyles,
|
|
2876
2895
|
agentName: agentNameFromAPI,
|
|
2877
2896
|
browserUseEnabled,
|
|
2897
|
+
pageNavigationEnabled,
|
|
2898
|
+
pageNavigationRoutes,
|
|
2878
2899
|
showThinking: showThinkingFromAPI,
|
|
2879
2900
|
persistAnonymousConversations,
|
|
2880
2901
|
welcomeMessage: welcomeMessageFromAPI,
|
|
@@ -3080,17 +3101,33 @@ function CrowWidget({
|
|
|
3080
3101
|
};
|
|
3081
3102
|
}, [handleBrowserConfirmation, handleBrowserQuestion, handleBrowserProgress]);
|
|
3082
3103
|
React3.useEffect(() => {
|
|
3083
|
-
if (browserUseEnabled && !isLoadingStyles &&
|
|
3104
|
+
if (browserUseEnabled && !isLoadingStyles && !autoTools.browser_use) {
|
|
3084
3105
|
import('@usecrow/client/browser').then(({ createBrowserUseTool }) => {
|
|
3085
|
-
setAutoTools({
|
|
3106
|
+
setAutoTools((prev) => ({
|
|
3107
|
+
...prev,
|
|
3086
3108
|
browser_use: createBrowserUseTool({ productId, apiUrl })
|
|
3087
|
-
});
|
|
3109
|
+
}));
|
|
3088
3110
|
console.log("[Crow] browser_use tool auto-loaded");
|
|
3089
3111
|
}).catch((err) => {
|
|
3090
3112
|
console.warn("[Crow] Failed to load browser_use:", err);
|
|
3091
3113
|
});
|
|
3092
3114
|
}
|
|
3093
3115
|
}, [browserUseEnabled, isLoadingStyles, productId, apiUrl, autoTools]);
|
|
3116
|
+
React3.useEffect(() => {
|
|
3117
|
+
if (pageNavigationEnabled && pageNavigationRoutes.length > 0 && !isLoadingStyles) {
|
|
3118
|
+
import('@usecrow/client').then(({ createNavigateToPageTool }) => {
|
|
3119
|
+
setAutoTools((prev) => ({
|
|
3120
|
+
...prev,
|
|
3121
|
+
navigateToPage: createNavigateToPageTool(pageNavigationRoutes, navigate)
|
|
3122
|
+
}));
|
|
3123
|
+
console.log(
|
|
3124
|
+
`[Crow] navigateToPage tool auto-loaded with ${pageNavigationRoutes.length} routes`
|
|
3125
|
+
);
|
|
3126
|
+
}).catch((err) => {
|
|
3127
|
+
console.warn("[Crow] Failed to load navigateToPage:", err);
|
|
3128
|
+
});
|
|
3129
|
+
}
|
|
3130
|
+
}, [pageNavigationEnabled, pageNavigationRoutes, isLoadingStyles, navigate]);
|
|
3094
3131
|
const mergedTools = React3.useMemo(() => ({ ...autoTools, ...tools }), [autoTools, tools]);
|
|
3095
3132
|
React3.useEffect(() => {
|
|
3096
3133
|
if (Object.keys(mergedTools).length > 0) {
|
|
@@ -3387,12 +3424,15 @@ function CrowCopilot({
|
|
|
3387
3424
|
previewMode = false,
|
|
3388
3425
|
className,
|
|
3389
3426
|
onReady,
|
|
3427
|
+
navigate,
|
|
3390
3428
|
onToolResult
|
|
3391
3429
|
}) {
|
|
3392
3430
|
const {
|
|
3393
3431
|
styles,
|
|
3394
3432
|
isLoading: isLoadingStyles,
|
|
3395
3433
|
agentName: agentNameFromAPI,
|
|
3434
|
+
pageNavigationEnabled,
|
|
3435
|
+
pageNavigationRoutes,
|
|
3396
3436
|
persistAnonymousConversations,
|
|
3397
3437
|
welcomeMessage: welcomeMessageFromAPI,
|
|
3398
3438
|
selectedModel
|
|
@@ -3404,6 +3444,27 @@ function CrowCopilot({
|
|
|
3404
3444
|
});
|
|
3405
3445
|
const agentName = agentNameProp ?? agentNameFromAPI ?? title;
|
|
3406
3446
|
const welcomeMessage = welcomeMessageProp ?? welcomeMessageFromAPI;
|
|
3447
|
+
const [autoTools, setAutoTools] = React3.useState({});
|
|
3448
|
+
React3.useEffect(() => {
|
|
3449
|
+
if (pageNavigationEnabled && pageNavigationRoutes.length > 0 && !isLoadingStyles) {
|
|
3450
|
+
import('@usecrow/client').then(({ createNavigateToPageTool }) => {
|
|
3451
|
+
setAutoTools((prev) => ({
|
|
3452
|
+
...prev,
|
|
3453
|
+
navigateToPage: createNavigateToPageTool(pageNavigationRoutes, navigate)
|
|
3454
|
+
}));
|
|
3455
|
+
console.log(
|
|
3456
|
+
`[Crow] navigateToPage tool auto-loaded with ${pageNavigationRoutes.length} routes`
|
|
3457
|
+
);
|
|
3458
|
+
}).catch((err) => {
|
|
3459
|
+
console.warn("[Crow] Failed to load navigateToPage:", err);
|
|
3460
|
+
});
|
|
3461
|
+
}
|
|
3462
|
+
}, [pageNavigationEnabled, pageNavigationRoutes, isLoadingStyles, navigate]);
|
|
3463
|
+
React3.useEffect(() => {
|
|
3464
|
+
if (Object.keys(autoTools).length > 0) {
|
|
3465
|
+
window.crow?.("registerTools", autoTools);
|
|
3466
|
+
}
|
|
3467
|
+
}, [autoTools]);
|
|
3407
3468
|
const messagesContainerRef = React3.useRef(null);
|
|
3408
3469
|
const tabsScrollRef = React3.useRef(null);
|
|
3409
3470
|
const executeClientToolRef = React3.useRef(null);
|