@docyrus/rn-assistant 0.3.0 → 0.4.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.
Files changed (59) hide show
  1. package/dist/commonjs/components/message-parts/message-parts.js +44 -202
  2. package/dist/commonjs/components/message-parts/message-parts.js.map +1 -1
  3. package/dist/commonjs/components/message-parts/tools/index.js +27 -0
  4. package/dist/commonjs/components/message-parts/tools/index.js.map +1 -0
  5. package/dist/commonjs/components/message-parts/tools/request-approval-tool.js +124 -0
  6. package/dist/commonjs/components/message-parts/tools/request-approval-tool.js.map +1 -0
  7. package/dist/commonjs/components/message-parts/tools/search-web-tool.js +470 -0
  8. package/dist/commonjs/components/message-parts/tools/search-web-tool.js.map +1 -0
  9. package/dist/commonjs/components/message-parts/tools/show-image-tool.js +85 -0
  10. package/dist/commonjs/components/message-parts/tools/show-image-tool.js.map +1 -0
  11. package/dist/commonjs/components/sessions-list/sessions-list.js +1 -4
  12. package/dist/commonjs/components/sessions-list/sessions-list.js.map +1 -1
  13. package/dist/commonjs/hooks/use-assistant.js +22 -16
  14. package/dist/commonjs/hooks/use-assistant.js.map +1 -1
  15. package/dist/commonjs/utils/default-api-config.js +1 -0
  16. package/dist/commonjs/utils/default-api-config.js.map +1 -1
  17. package/dist/module/components/message-parts/message-parts.js +44 -202
  18. package/dist/module/components/message-parts/message-parts.js.map +1 -1
  19. package/dist/module/components/message-parts/tools/index.js +6 -0
  20. package/dist/module/components/message-parts/tools/index.js.map +1 -0
  21. package/dist/module/components/message-parts/tools/request-approval-tool.js +120 -0
  22. package/dist/module/components/message-parts/tools/request-approval-tool.js.map +1 -0
  23. package/dist/module/components/message-parts/tools/search-web-tool.js +466 -0
  24. package/dist/module/components/message-parts/tools/search-web-tool.js.map +1 -0
  25. package/dist/module/components/message-parts/tools/show-image-tool.js +81 -0
  26. package/dist/module/components/message-parts/tools/show-image-tool.js.map +1 -0
  27. package/dist/module/components/sessions-list/sessions-list.js +1 -4
  28. package/dist/module/components/sessions-list/sessions-list.js.map +1 -1
  29. package/dist/module/hooks/use-assistant.js +22 -16
  30. package/dist/module/hooks/use-assistant.js.map +1 -1
  31. package/dist/module/utils/default-api-config.js +1 -0
  32. package/dist/module/utils/default-api-config.js.map +1 -1
  33. package/dist/typescript/commonjs/src/components/message-parts/message-parts.d.ts.map +1 -1
  34. package/dist/typescript/commonjs/src/components/message-parts/tools/index.d.ts +4 -0
  35. package/dist/typescript/commonjs/src/components/message-parts/tools/index.d.ts.map +1 -0
  36. package/dist/typescript/commonjs/src/components/message-parts/tools/request-approval-tool.d.ts +11 -0
  37. package/dist/typescript/commonjs/src/components/message-parts/tools/request-approval-tool.d.ts.map +1 -0
  38. package/dist/typescript/commonjs/src/components/message-parts/tools/search-web-tool.d.ts +13 -0
  39. package/dist/typescript/commonjs/src/components/message-parts/tools/search-web-tool.d.ts.map +1 -0
  40. package/dist/typescript/commonjs/src/components/message-parts/tools/show-image-tool.d.ts +15 -0
  41. package/dist/typescript/commonjs/src/components/message-parts/tools/show-image-tool.d.ts.map +1 -0
  42. package/dist/typescript/commonjs/src/hooks/use-assistant.d.ts.map +1 -1
  43. package/dist/typescript/commonjs/src/types/index.d.ts +7 -2
  44. package/dist/typescript/commonjs/src/types/index.d.ts.map +1 -1
  45. package/dist/typescript/commonjs/src/utils/default-api-config.d.ts.map +1 -1
  46. package/dist/typescript/module/src/components/message-parts/message-parts.d.ts.map +1 -1
  47. package/dist/typescript/module/src/components/message-parts/tools/index.d.ts +4 -0
  48. package/dist/typescript/module/src/components/message-parts/tools/index.d.ts.map +1 -0
  49. package/dist/typescript/module/src/components/message-parts/tools/request-approval-tool.d.ts +11 -0
  50. package/dist/typescript/module/src/components/message-parts/tools/request-approval-tool.d.ts.map +1 -0
  51. package/dist/typescript/module/src/components/message-parts/tools/search-web-tool.d.ts +13 -0
  52. package/dist/typescript/module/src/components/message-parts/tools/search-web-tool.d.ts.map +1 -0
  53. package/dist/typescript/module/src/components/message-parts/tools/show-image-tool.d.ts +15 -0
  54. package/dist/typescript/module/src/components/message-parts/tools/show-image-tool.d.ts.map +1 -0
  55. package/dist/typescript/module/src/hooks/use-assistant.d.ts.map +1 -1
  56. package/dist/typescript/module/src/types/index.d.ts +7 -2
  57. package/dist/typescript/module/src/types/index.d.ts.map +1 -1
  58. package/dist/typescript/module/src/utils/default-api-config.d.ts.map +1 -1
  59. package/package.json +1 -1
@@ -0,0 +1,470 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.SearchWebTool = SearchWebTool;
7
+ var _react = require("react");
8
+ var _reactNative = require("react-native");
9
+ var _expoImage = require("expo-image");
10
+ var _lucideReactNative = require("lucide-react-native");
11
+ var _index = require("../../../theme/index.js");
12
+ var _jsxRuntime = require("react/jsx-runtime");
13
+ /* ------------------------------------------------------------------ */
14
+ /* Types */
15
+ /* ------------------------------------------------------------------ */
16
+
17
+ /* ------------------------------------------------------------------ */
18
+ /* Helpers */
19
+ /* ------------------------------------------------------------------ */
20
+
21
+ function getDomain(url) {
22
+ try {
23
+ return new URL(url).hostname.replace('www.', '');
24
+ } catch {
25
+ return url;
26
+ }
27
+ }
28
+ function cleanSnippet(snippet, maxLength = 150) {
29
+ if (!snippet) return '';
30
+ return snippet.replace(/<[^>]*>/g, '').replace(/\[([^\]]+)\]\([^)]+\)/g, '$1').replace(/[#*_]/g, '').replace(/\s+/g, ' ').trim().substring(0, maxLength);
31
+ }
32
+ function formatDate(dateString) {
33
+ if (!dateString) return '';
34
+ try {
35
+ const date = new Date(dateString);
36
+ const now = new Date();
37
+ const diff = now.getTime() - date.getTime();
38
+ const hours = Math.floor(diff / (1000 * 60 * 60));
39
+ if (hours < 1) {
40
+ const minutes = Math.floor(diff / (1000 * 60));
41
+ return minutes <= 1 ? 'Just now' : `${minutes}m ago`;
42
+ }
43
+ if (hours < 24) return `${hours}h ago`;
44
+ if (hours < 48) return 'Yesterday';
45
+ return date.toLocaleDateString('en-US', {
46
+ month: 'short',
47
+ day: 'numeric',
48
+ year: date.getFullYear() !== now.getFullYear() ? 'numeric' : undefined
49
+ });
50
+ } catch {
51
+ return dateString;
52
+ }
53
+ }
54
+ function parseOutput(output) {
55
+ if (!output) return {};
56
+ let parsed;
57
+ if (typeof output === 'string') {
58
+ try {
59
+ const result = JSON.parse(output);
60
+ if (Array.isArray(result)) return {
61
+ results: result
62
+ };
63
+ parsed = result;
64
+ } catch {
65
+ return {};
66
+ }
67
+ } else if (Array.isArray(output)) {
68
+ return {
69
+ results: output
70
+ };
71
+ } else {
72
+ parsed = output;
73
+ }
74
+
75
+ // Handle nested result field (Exa format)
76
+ if (parsed.result && typeof parsed.result === 'string') {
77
+ try {
78
+ const nested = JSON.parse(parsed.result);
79
+ if (nested && typeof nested === 'object') {
80
+ if (Array.isArray(nested.results)) parsed.results = nested.results;
81
+ if (nested.searchType) parsed.searchType = nested.searchType;
82
+ if (nested.context) parsed.context = nested.context;
83
+ } else if (Array.isArray(nested)) {
84
+ parsed.results = nested;
85
+ }
86
+ } catch {
87
+ // leave as-is
88
+ }
89
+ }
90
+ return parsed;
91
+ }
92
+
93
+ /* ------------------------------------------------------------------ */
94
+ /* Component */
95
+ /* ------------------------------------------------------------------ */
96
+
97
+ function SearchWebTool({
98
+ state,
99
+ output,
100
+ errorText,
101
+ title
102
+ }) {
103
+ const theme = (0, _index.useDocyrusRNAssistantTheme)();
104
+ const [expanded, setExpanded] = (0, _react.useState)(false);
105
+ const parsed = (0, _react.useMemo)(() => parseOutput(output?.result ?? output), [output]);
106
+ const webSearchResults = (0, _react.useMemo)(() => {
107
+ const out = parsed.output;
108
+ if (!Array.isArray(out)) return [];
109
+ return out.filter(item => item.type === 'web_search_result');
110
+ }, [parsed]);
111
+ const newsResults = (0, _react.useMemo)(() => {
112
+ const {
113
+ result
114
+ } = parsed;
115
+ if (result && typeof result === 'object' && !Array.isArray(result)) {
116
+ const {
117
+ news
118
+ } = result;
119
+ return Array.isArray(news) ? news : [];
120
+ }
121
+ return [];
122
+ }, [parsed]);
123
+ const searchResults = (0, _react.useMemo)(() => {
124
+ if (parsed.action || webSearchResults.length > 0 || newsResults.length > 0) return [];
125
+ if (Array.isArray(parsed.results)) return parsed.results;
126
+ const {
127
+ result
128
+ } = parsed;
129
+ if (typeof result === 'string') {
130
+ try {
131
+ const p = JSON.parse(result);
132
+ if (Array.isArray(p)) return p;
133
+ } catch {/* noop */}
134
+ }
135
+ if (Array.isArray(result)) return result;
136
+ return [];
137
+ }, [parsed, webSearchResults, newsResults]);
138
+ const hasResults = searchResults.length > 0 || webSearchResults.length > 0 || newsResults.length > 0 || !!parsed.action?.url || !!parsed.action?.query;
139
+ const headerText = (0, _react.useMemo)(() => {
140
+ if (title) return title;
141
+ if (parsed.action?.url) return 'URL Result';
142
+ if (parsed.action?.query) return 'Query';
143
+ if (newsResults.length > 0) return `${newsResults.length} news`;
144
+ if (webSearchResults.length > 0) return `${webSearchResults.length} results`;
145
+ if (searchResults.length > 0) return `${searchResults.length} results`;
146
+ return 'Web Search';
147
+ }, [title, parsed, newsResults, webSearchResults, searchResults]);
148
+ const openLink = (0, _react.useCallback)(url => {
149
+ _reactNative.Linking.openURL(url).catch(() => {});
150
+ }, []);
151
+
152
+ // Loading / streaming state
153
+ if (state === 'input-streaming' || state === 'input-available') {
154
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
155
+ style: {
156
+ flexDirection: 'row',
157
+ alignItems: 'center',
158
+ gap: 6,
159
+ paddingVertical: 5,
160
+ paddingHorizontal: 2
161
+ },
162
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_lucideReactNative.Search, {
163
+ size: 12,
164
+ color: theme.colors.mutedForeground
165
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
166
+ style: {
167
+ fontSize: 12,
168
+ fontWeight: '300',
169
+ color: theme.colors.mutedForeground
170
+ },
171
+ children: title || 'Searching the web\u2026'
172
+ })]
173
+ });
174
+ }
175
+
176
+ // Error state
177
+ if (state === 'output-error') {
178
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
179
+ style: {
180
+ flexDirection: 'row',
181
+ alignItems: 'center',
182
+ gap: 6,
183
+ paddingVertical: 5,
184
+ paddingHorizontal: 2
185
+ },
186
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_lucideReactNative.XCircle, {
187
+ size: 12,
188
+ color: theme.colors.destructive
189
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
190
+ style: {
191
+ fontSize: 12,
192
+ color: theme.colors.destructive
193
+ },
194
+ children: ["Search failed", errorText ? `: ${errorText}` : '']
195
+ })]
196
+ });
197
+ }
198
+
199
+ // No results
200
+ if (!hasResults) {
201
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
202
+ style: {
203
+ flexDirection: 'row',
204
+ alignItems: 'center',
205
+ gap: 6,
206
+ paddingVertical: 5,
207
+ paddingHorizontal: 2
208
+ },
209
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_lucideReactNative.Search, {
210
+ size: 12,
211
+ color: theme.colors.mutedForeground
212
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
213
+ style: {
214
+ fontSize: 12,
215
+ color: theme.colors.mutedForeground
216
+ },
217
+ children: "No results found"
218
+ })]
219
+ });
220
+ }
221
+
222
+ // Output available — collapsible results
223
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
224
+ style: {
225
+ marginVertical: 4
226
+ },
227
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.TouchableOpacity, {
228
+ onPress: () => setExpanded(!expanded),
229
+ activeOpacity: 0.7,
230
+ style: {
231
+ flexDirection: 'row',
232
+ alignItems: 'center',
233
+ gap: 6,
234
+ paddingVertical: 5,
235
+ paddingHorizontal: 2
236
+ },
237
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_lucideReactNative.Search, {
238
+ size: 12,
239
+ color: theme.colors.primary
240
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
241
+ style: {
242
+ fontSize: 12,
243
+ fontWeight: '500',
244
+ color: theme.colors.primary,
245
+ flex: 1
246
+ },
247
+ numberOfLines: 1,
248
+ children: headerText
249
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_lucideReactNative.ChevronDown, {
250
+ size: 10,
251
+ color: theme.colors.mutedForeground,
252
+ style: {
253
+ transform: [{
254
+ rotate: expanded ? '180deg' : '0deg'
255
+ }]
256
+ }
257
+ })]
258
+ }), expanded ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
259
+ style: {
260
+ marginTop: 6,
261
+ borderRadius: 10,
262
+ borderWidth: 1,
263
+ borderColor: theme.colors.border,
264
+ backgroundColor: theme.colors.card,
265
+ overflow: 'hidden'
266
+ },
267
+ children: [parsed.action?.url ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
268
+ onPress: () => openLink(parsed.action?.url ?? ''),
269
+ style: {
270
+ padding: 12
271
+ },
272
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
273
+ style: {
274
+ fontSize: 12,
275
+ color: theme.colors.primary
276
+ },
277
+ numberOfLines: 1,
278
+ children: parsed.action.url
279
+ })
280
+ }) : null, parsed.action?.query && !parsed.action?.url ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
281
+ style: {
282
+ paddingHorizontal: 12,
283
+ paddingVertical: 8
284
+ },
285
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
286
+ style: {
287
+ fontSize: 12,
288
+ color: theme.colors.mutedForeground
289
+ },
290
+ children: parsed.action.query
291
+ })
292
+ }) : null, webSearchResults.length > 0 ? webSearchResults.map((item, i) => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.TouchableOpacity, {
293
+ onPress: () => openLink(item.url),
294
+ style: {
295
+ paddingHorizontal: 12,
296
+ paddingVertical: 10,
297
+ borderTopWidth: i > 0 ? 1 : 0,
298
+ borderTopColor: theme.colors.border
299
+ },
300
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
301
+ style: {
302
+ fontSize: 12,
303
+ fontWeight: '500',
304
+ color: theme.colors.foreground
305
+ },
306
+ numberOfLines: 1,
307
+ children: item.title
308
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
309
+ style: {
310
+ flexDirection: 'row',
311
+ alignItems: 'center',
312
+ gap: 4,
313
+ marginTop: 2
314
+ },
315
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_lucideReactNative.Globe, {
316
+ size: 10,
317
+ color: theme.colors.mutedForeground
318
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
319
+ style: {
320
+ fontSize: 10,
321
+ color: theme.colors.mutedForeground
322
+ },
323
+ numberOfLines: 1,
324
+ children: getDomain(item.url)
325
+ }), item.pageAge ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
326
+ style: {
327
+ fontSize: 10,
328
+ color: theme.colors.mutedForeground
329
+ },
330
+ children: [' \u00B7 ', item.pageAge]
331
+ }) : null]
332
+ })]
333
+ }, `ws-${i}`)) : null, newsResults.length > 0 ? newsResults.map((item, i) => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.TouchableOpacity, {
334
+ onPress: () => openLink(item.url),
335
+ style: {
336
+ flexDirection: 'row',
337
+ gap: 10,
338
+ paddingHorizontal: 12,
339
+ paddingVertical: 10,
340
+ borderTopWidth: i > 0 ? 1 : 0,
341
+ borderTopColor: theme.colors.border
342
+ },
343
+ children: [item.imageUrl ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_expoImage.Image, {
344
+ source: {
345
+ uri: item.imageUrl
346
+ },
347
+ style: {
348
+ width: 56,
349
+ height: 56,
350
+ borderRadius: 6,
351
+ flexShrink: 0
352
+ },
353
+ contentFit: "cover"
354
+ }) : null, /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
355
+ style: {
356
+ flex: 1
357
+ },
358
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
359
+ style: {
360
+ fontSize: 12,
361
+ fontWeight: '500',
362
+ color: theme.colors.foreground
363
+ },
364
+ numberOfLines: 1,
365
+ children: item.title
366
+ }), item.snippet ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
367
+ style: {
368
+ fontSize: 11,
369
+ color: theme.colors.mutedForeground,
370
+ marginTop: 2
371
+ },
372
+ numberOfLines: 1,
373
+ children: cleanSnippet(item.snippet, 100)
374
+ }) : null, /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
375
+ style: {
376
+ flexDirection: 'row',
377
+ alignItems: 'center',
378
+ gap: 4,
379
+ marginTop: 2
380
+ },
381
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
382
+ style: {
383
+ fontSize: 10,
384
+ color: theme.colors.mutedForeground
385
+ },
386
+ numberOfLines: 1,
387
+ children: getDomain(item.url)
388
+ }), item.date ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
389
+ style: {
390
+ fontSize: 10,
391
+ color: theme.colors.mutedForeground
392
+ },
393
+ children: [' \u00B7 ', item.date]
394
+ }) : null]
395
+ })]
396
+ })]
397
+ }, `news-${i}`)) : null, searchResults.length > 0 && webSearchResults.length === 0 && newsResults.length === 0 && !parsed.action ? searchResults.map((item, i) => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.TouchableOpacity, {
398
+ onPress: () => openLink(item.link),
399
+ style: {
400
+ paddingHorizontal: 12,
401
+ paddingVertical: 10,
402
+ borderTopWidth: i > 0 ? 1 : 0,
403
+ borderTopColor: theme.colors.border
404
+ },
405
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
406
+ style: {
407
+ flexDirection: 'row',
408
+ alignItems: 'center',
409
+ gap: 5
410
+ },
411
+ children: [item.favicon ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_expoImage.Image, {
412
+ source: {
413
+ uri: item.favicon
414
+ },
415
+ style: {
416
+ width: 14,
417
+ height: 14,
418
+ borderRadius: 3
419
+ },
420
+ contentFit: "contain"
421
+ }) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
422
+ style: {
423
+ fontSize: 12,
424
+ fontWeight: '500',
425
+ color: theme.colors.foreground,
426
+ flex: 1
427
+ },
428
+ numberOfLines: 1,
429
+ children: item.title
430
+ })]
431
+ }), item.summary || item.text || item.snippet ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
432
+ style: {
433
+ fontSize: 11,
434
+ color: theme.colors.mutedForeground,
435
+ marginTop: 3,
436
+ lineHeight: 15
437
+ },
438
+ numberOfLines: 2,
439
+ children: item.summary || cleanSnippet(item.text || item.snippet || '', 150)
440
+ }) : null, /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
441
+ style: {
442
+ flexDirection: 'row',
443
+ alignItems: 'center',
444
+ gap: 4,
445
+ marginTop: 3
446
+ },
447
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_lucideReactNative.Globe, {
448
+ size: 10,
449
+ color: theme.colors.mutedForeground
450
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
451
+ style: {
452
+ fontSize: 10,
453
+ color: theme.colors.mutedForeground
454
+ },
455
+ numberOfLines: 1,
456
+ children: getDomain(item.link)
457
+ }), item.publishedDate ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
458
+ style: {
459
+ fontSize: 10,
460
+ color: theme.colors.mutedForeground
461
+ },
462
+ children: [' \u00B7 ', formatDate(item.publishedDate)]
463
+ }) : null]
464
+ })]
465
+ }, `sr-${i}`)) : null]
466
+ }) : null]
467
+ });
468
+ }
469
+ SearchWebTool.displayName = 'SearchWebTool';
470
+ //# sourceMappingURL=search-web-tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_reactNative","_expoImage","_lucideReactNative","_index","_jsxRuntime","getDomain","url","URL","hostname","replace","cleanSnippet","snippet","maxLength","trim","substring","formatDate","dateString","date","Date","now","diff","getTime","hours","Math","floor","minutes","toLocaleDateString","month","day","year","getFullYear","undefined","parseOutput","output","parsed","result","JSON","parse","Array","isArray","results","nested","searchType","context","SearchWebTool","state","errorText","title","theme","useDocyrusRNAssistantTheme","expanded","setExpanded","useState","useMemo","webSearchResults","out","filter","item","type","newsResults","news","searchResults","action","length","p","hasResults","query","headerText","openLink","useCallback","Linking","openURL","catch","jsxs","View","style","flexDirection","alignItems","gap","paddingVertical","paddingHorizontal","children","jsx","Search","size","color","colors","mutedForeground","Text","fontSize","fontWeight","XCircle","destructive","marginVertical","TouchableOpacity","onPress","activeOpacity","primary","flex","numberOfLines","ChevronDown","transform","rotate","marginTop","borderRadius","borderWidth","borderColor","border","backgroundColor","card","overflow","padding","map","i","borderTopWidth","borderTopColor","foreground","Globe","pageAge","imageUrl","Image","source","uri","width","height","flexShrink","contentFit","link","favicon","summary","text","lineHeight","publishedDate","displayName"],"sourceRoot":"../../../../../src","sources":["components/message-parts/tools/search-web-tool.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ShowImageTool = ShowImageTool;
7
+ var _react = require("react");
8
+ var _reactNative = require("react-native");
9
+ var _expoImage = require("expo-image");
10
+ var _lucideReactNative = require("lucide-react-native");
11
+ var _index = require("../../../theme/index.js");
12
+ var _jsxRuntime = require("react/jsx-runtime");
13
+ function ShowImageTool({
14
+ title,
15
+ images
16
+ }) {
17
+ const theme = (0, _index.useDocyrusRNAssistantTheme)();
18
+ const imageList = (0, _react.useMemo)(() => {
19
+ if (!images) {
20
+ return [];
21
+ }
22
+ if (typeof images === 'string') {
23
+ return [images];
24
+ }
25
+ return images.map(img => img.url || (img.base64 ? `data:${img.mimeType || 'image/png'};base64,${img.base64}` : '')).filter(Boolean);
26
+ }, [images]);
27
+ if (imageList.length === 0) {
28
+ return null;
29
+ }
30
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
31
+ style: {
32
+ borderRadius: 12,
33
+ borderWidth: 1,
34
+ borderColor: theme.colors.border,
35
+ backgroundColor: theme.colors.card,
36
+ overflow: 'hidden',
37
+ marginVertical: 4
38
+ },
39
+ children: [title ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
40
+ style: {
41
+ flexDirection: 'row',
42
+ alignItems: 'center',
43
+ gap: 6,
44
+ paddingHorizontal: 12,
45
+ paddingVertical: 10
46
+ },
47
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_lucideReactNative.ImageIcon, {
48
+ size: 14,
49
+ color: theme.colors.mutedForeground
50
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
51
+ style: {
52
+ fontSize: 13,
53
+ fontWeight: '500',
54
+ color: theme.colors.foreground
55
+ },
56
+ numberOfLines: 1,
57
+ children: title
58
+ })]
59
+ }) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.ScrollView, {
60
+ horizontal: true,
61
+ showsHorizontalScrollIndicator: false,
62
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
63
+ style: {
64
+ flexDirection: 'row',
65
+ gap: 8,
66
+ paddingHorizontal: 12,
67
+ paddingBottom: 12
68
+ },
69
+ children: imageList.map((uri, index) => /*#__PURE__*/(0, _jsxRuntime.jsx)(_expoImage.Image, {
70
+ source: {
71
+ uri
72
+ },
73
+ style: {
74
+ width: 280,
75
+ height: 200,
76
+ borderRadius: 8
77
+ },
78
+ contentFit: "cover"
79
+ }, `${uri.slice(0, 30)}-${index}`))
80
+ })
81
+ })]
82
+ });
83
+ }
84
+ ShowImageTool.displayName = 'ShowImageTool';
85
+ //# sourceMappingURL=show-image-tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_reactNative","_expoImage","_lucideReactNative","_index","_jsxRuntime","ShowImageTool","title","images","theme","useDocyrusRNAssistantTheme","imageList","useMemo","map","img","url","base64","mimeType","filter","Boolean","length","jsxs","View","style","borderRadius","borderWidth","borderColor","colors","border","backgroundColor","card","overflow","marginVertical","children","flexDirection","alignItems","gap","paddingHorizontal","paddingVertical","jsx","ImageIcon","size","color","mutedForeground","Text","fontSize","fontWeight","foreground","numberOfLines","ScrollView","horizontal","showsHorizontalScrollIndicator","paddingBottom","uri","index","Image","source","width","height","contentFit","slice","displayName"],"sourceRoot":"../../../../../src","sources":["components/message-parts/tools/show-image-tool.tsx"],"mappings":"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","ignoreList":[]}
@@ -79,10 +79,7 @@ function SessionsList({
79
79
  const params = new URLSearchParams({
80
80
  columns: JSON.stringify(['subject', 'created_on', 'last_modified_on', 'created_by']),
81
81
  limit: '100',
82
- orderBy: JSON.stringify([{
83
- field: 'created_on',
84
- direction: 'desc'
85
- }]),
82
+ orderBy: 'created_on desc',
86
83
  dataSourceId,
87
84
  filters: JSON.stringify(filters),
88
85
  fullCount: 'true',