@djangocfg/ext-knowbase 1.0.4 → 1.0.7

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 (38) hide show
  1. package/dist/config.cjs +3 -2
  2. package/dist/config.js +3 -2
  3. package/dist/hooks.cjs +143 -140
  4. package/dist/hooks.js +142 -140
  5. package/dist/index.cjs +6 -2
  6. package/dist/index.js +6 -2
  7. package/package.json +9 -8
  8. package/src/api/generated/ext_knowbase/CLAUDE.md +64 -0
  9. package/src/api/generated/ext_knowbase/_utils/fetchers/ext_knowbase__knowbase.ts +1 -0
  10. package/src/api/generated/ext_knowbase/_utils/fetchers/index.ts +1 -0
  11. package/src/api/generated/ext_knowbase/_utils/hooks/ext_knowbase__knowbase.ts +1 -0
  12. package/src/api/generated/ext_knowbase/_utils/hooks/index.ts +1 -0
  13. package/src/api/generated/ext_knowbase/_utils/schemas/index.ts +1 -0
  14. package/src/api/generated/ext_knowbase/api-instance.ts +1 -0
  15. package/src/api/generated/ext_knowbase/enums.ts +1 -0
  16. package/src/api/generated/ext_knowbase/errors.ts +1 -0
  17. package/src/api/generated/ext_knowbase/ext_knowbase__knowbase/index.ts +1 -0
  18. package/src/api/generated/ext_knowbase/ext_knowbase__knowbase/models.ts +1 -0
  19. package/src/api/generated/ext_knowbase/http.ts +1 -0
  20. package/src/api/generated/ext_knowbase/index.ts +1 -0
  21. package/src/api/generated/ext_knowbase/logger.ts +1 -0
  22. package/src/api/generated/ext_knowbase/retry.ts +1 -0
  23. package/src/api/generated/ext_knowbase/storage.ts +1 -0
  24. package/src/api/generated/ext_knowbase/validation-events.ts +1 -0
  25. package/src/api/index.ts +7 -1
  26. package/src/components/Chat/ChatUIContext.tsx +2 -1
  27. package/src/components/Chat/ChatWidget.tsx +9 -11
  28. package/src/components/Chat/components/MessageInput.tsx +5 -2
  29. package/src/components/Chat/components/MessageList.tsx +15 -8
  30. package/src/components/Chat/components/SessionList.tsx +8 -12
  31. package/src/components/Chat/hooks/useInfiniteSessions.ts +2 -1
  32. package/src/components/Chat/index.tsx +2 -0
  33. package/src/components/Chat/types.ts +3 -1
  34. package/src/config.ts +1 -0
  35. package/src/contexts/knowbase/ChatContext.tsx +6 -9
  36. package/src/contexts/knowbase/DocumentsContext.tsx +11 -17
  37. package/src/contexts/knowbase/KnowbaseProvider.tsx +1 -0
  38. package/src/contexts/knowbase/SessionsContext.tsx +6 -9
@@ -5,23 +5,21 @@
5
5
 
6
6
  'use client';
7
7
 
8
+ import { List, Maximize2, MessageSquare, Minimize2, Plus, X } from 'lucide-react';
9
+ import { usePathname } from 'next/navigation';
8
10
  import React, { useCallback, useEffect, useState } from 'react';
9
11
  import { createPortal } from 'react-dom';
10
- import { usePathname } from 'next/navigation';
11
- import { Card, CardContent, CardHeader, Button, useIsMobile, useLocalStorage } from '@djangocfg/ui-nextjs';
12
+
12
13
  import {
13
- MessageSquare,
14
- X,
15
- Maximize2,
16
- Minimize2,
17
- Plus,
18
- List,
19
- } from 'lucide-react';
14
+ Button, Card, CardContent, CardHeader, useIsMobile, useLocalStorage
15
+ } from '@djangocfg/ui-nextjs';
16
+
20
17
  import { useKnowbaseChatContext, useKnowbaseSessionsContext } from '../../contexts/knowbase';
21
- import { Enums } from './types';
22
18
  import { chatLogger } from '../../utils/logger';
23
19
  import { useChatUI } from './ChatUIContext';
24
- import { MessageList, MessageInput, SessionList } from './components';
20
+ import { MessageInput, MessageList, SessionList } from './components';
21
+ import { Enums } from './types';
22
+
25
23
  import type { ChatWidgetProps, ChatMessageWithSources } from './types';
26
24
 
27
25
  const WIDGET_MAX_WIDTH = 800;
@@ -5,10 +5,13 @@
5
5
 
6
6
  'use client';
7
7
 
8
- import React, { useState, useCallback, useRef, useEffect } from 'react';
8
+ import { Loader2, Send } from 'lucide-react';
9
+ import React, { useCallback, useEffect, useRef, useState } from 'react';
10
+
9
11
  import { Button, Textarea } from '@djangocfg/ui-nextjs';
10
- import { Send, Loader2 } from 'lucide-react';
12
+
11
13
  import { chatLogger } from '../../../utils/logger';
14
+
12
15
  import type { MessageInputProps } from '../types';
13
16
 
14
17
  // ─────────────────────────────────────────────────────────────────────────
@@ -5,13 +5,18 @@
5
5
 
6
6
  'use client';
7
7
 
8
+ import { Bot, ExternalLink, Loader2, User } from 'lucide-react';
9
+ import moment from 'moment';
8
10
  import React, { useEffect, useRef } from 'react';
9
- import { Card, CardContent, Avatar, AvatarImage, AvatarFallback, Badge, ScrollArea } from '@djangocfg/ui-nextjs';
10
- import { Bot, User, ExternalLink, Loader2 } from 'lucide-react';
11
+
11
12
  import { useAuth } from '@djangocfg/api/auth';
12
- import type { MessageListProps } from '../types';
13
+ import {
14
+ Avatar, AvatarFallback, AvatarImage, Badge, Card, CardContent, ScrollArea
15
+ } from '@djangocfg/ui-nextjs';
16
+
13
17
  import { Enums } from '../types';
14
18
 
19
+ import type { MessageListProps } from '../types';
15
20
  // ─────────────────────────────────────────────────────────────────────────
16
21
  // Message List Component
17
22
  // ─────────────────────────────────────────────────────────────────────────
@@ -38,10 +43,14 @@ export const MessageList: React.FC<MessageListProps> = ({
38
43
  }, [messages, isLoading, autoScroll]);
39
44
 
40
45
  const formatTimestamp = (timestamp: string) => {
41
- const date = new Date(timestamp);
42
- return date.toLocaleTimeString('en-US', { hour: '2-digit', minute: '2-digit' });
46
+ return moment.utc(timestamp).local().format('hh:mm A');
43
47
  };
44
48
 
49
+ // Get user initial for avatar
50
+ const userInitial = user?.display_username?.charAt(0)?.toUpperCase()
51
+ || user?.email?.charAt(0)?.toUpperCase()
52
+ || null;
53
+
45
54
  return (
46
55
  <ScrollArea className={`h-full bg-muted/50 ${className}`} viewportRef={scrollRef}>
47
56
  <div className="space-y-4 p-4">
@@ -133,9 +142,7 @@ export const MessageList: React.FC<MessageListProps> = ({
133
142
  <Avatar className="h-8 w-8 shrink-0">
134
143
  {user?.avatar && <AvatarImage src={user.avatar} alt={user.display_username || user.email || 'User'} />}
135
144
  <AvatarFallback className="bg-primary/10 text-primary font-semibold">
136
- {user?.display_username?.charAt(0)?.toUpperCase() ||
137
- user?.email?.charAt(0)?.toUpperCase() ||
138
- <User className="h-5 w-5" />}
145
+ {userInitial || <User className="h-5 w-5" />}
139
146
  </AvatarFallback>
140
147
  </Avatar>
141
148
  )}
@@ -5,20 +5,17 @@
5
5
 
6
6
  'use client';
7
7
 
8
- import React, { useCallback, useRef, useEffect } from 'react';
8
+ import { Archive, Clock, Loader2, MessageSquare, Trash2 } from 'lucide-react';
9
+ import moment from 'moment';
10
+ import React, { useCallback, useEffect, useRef } from 'react';
11
+
9
12
  import {
10
- Sheet,
11
- SheetContent,
12
- SheetHeader,
13
- SheetTitle,
14
- SheetDescription,
15
- Button,
16
- ScrollArea,
17
- Badge,
13
+ Badge, Button, ScrollArea, Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle
18
14
  } from '@djangocfg/ui-nextjs';
19
- import { MessageSquare, Clock, Archive, Trash2, Loader2 } from 'lucide-react';
15
+
20
16
  import { useKnowbaseSessionsContext } from '../../../contexts/knowbase';
21
17
  import { useInfiniteSessions } from '../hooks/useInfiniteSessions';
18
+
22
19
  import type { SessionListProps } from '../types';
23
20
 
24
21
  // ─────────────────────────────────────────────────────────────────────────
@@ -68,8 +65,7 @@ export const SessionList: React.FC<SessionListProps> = ({
68
65
  }, [handleScroll]);
69
66
 
70
67
  const formatDate = (dateString: string) => {
71
- const date = new Date(dateString);
72
- return date.toLocaleDateString('en-US', { month: 'short', day: 'numeric' });
68
+ return moment.utc(dateString).local().format('MMM D');
73
69
  };
74
70
 
75
71
  return (
@@ -4,7 +4,8 @@
4
4
  */
5
5
 
6
6
  import useSWRInfinite from 'swr/infinite';
7
- import { apiKnowbase, ExtKnowbaseTypes, ExtKnowbaseFetchers } from '@djangocfg/api';
7
+
8
+ import { apiKnowbase, ExtKnowbaseFetchers, ExtKnowbaseTypes } from '../../../api';
8
9
 
9
10
  type PaginatedChatSessionList = ExtKnowbaseTypes.PaginatedChatSessionList;
10
11
  type ChatSession = ExtKnowbaseTypes.ChatSession;
@@ -7,9 +7,11 @@
7
7
  'use client';
8
8
 
9
9
  import React from 'react';
10
+
10
11
  import { KnowbaseChatProvider, KnowbaseSessionsProvider } from '../../contexts/knowbase';
11
12
  import { ChatUIProvider } from './ChatUIContext';
12
13
  import { ChatWidget } from './ChatWidget';
14
+
13
15
  import type { ChatWidgetProps } from './types';
14
16
 
15
17
  // ─────────────────────────────────────────────────────────────────────────
@@ -4,7 +4,9 @@
4
4
  */
5
5
 
6
6
  // Import types from local generated API
7
- import { ExtKnowbaseKnowbaseTypes, Enums as GeneratedEnums } from '../../api/generated/ext_knowbase';
7
+ import {
8
+ Enums as GeneratedEnums, ExtKnowbaseKnowbaseTypes
9
+ } from '../../api/generated/ext_knowbase';
8
10
 
9
11
  // ============================================================================
10
12
  // Extract types from generated API
package/src/config.ts CHANGED
@@ -3,6 +3,7 @@
3
3
  */
4
4
 
5
5
  import { createExtensionConfig } from '@djangocfg/ext-base';
6
+
6
7
  import packageJson from '../package.json';
7
8
 
8
9
  export const extensionConfig = createExtensionConfig(packageJson, {
@@ -5,19 +5,16 @@
5
5
 
6
6
  'use client';
7
7
 
8
- import React, { createContext, useContext, type ReactNode } from 'react';
8
+ import React, { createContext, ReactNode, useContext } from 'react';
9
9
 
10
10
  import { apiKnowbase } from '../../api';
11
11
  import {
12
- useKnowbaseAdminChatList,
13
- useKnowbaseAdminChatRetrieve,
14
- useCreateKnowbaseAdminChatCreate,
15
- useUpdateKnowbaseAdminChatUpdate,
16
- usePartialUpdateKnowbaseAdminChatPartialUpdate,
17
- useDeleteKnowbaseAdminChatDestroy,
18
- useKnowbaseAdminChatHistoryRetrieve,
19
- useCreateKnowbaseAdminChatQueryCreate,
12
+ useCreateKnowbaseAdminChatCreate, useCreateKnowbaseAdminChatQueryCreate,
13
+ useDeleteKnowbaseAdminChatDestroy, useKnowbaseAdminChatHistoryRetrieve,
14
+ useKnowbaseAdminChatList, useKnowbaseAdminChatRetrieve,
15
+ usePartialUpdateKnowbaseAdminChatPartialUpdate, useUpdateKnowbaseAdminChatUpdate
20
16
  } from '../../api/generated/ext_knowbase/_utils/hooks';
17
+
21
18
  import type {
22
19
  PaginatedChatResponseList,
23
20
  ChatResponse,
@@ -5,27 +5,21 @@
5
5
 
6
6
  'use client';
7
7
 
8
- import React, { createContext, useContext, type ReactNode } from 'react';
8
+ import React, { createContext, ReactNode, useContext } from 'react';
9
9
 
10
10
  import { apiKnowbase } from '../../api';
11
11
  import {
12
- useKnowbaseAdminDocumentsList,
13
- useKnowbaseAdminDocumentsRetrieve,
14
- useCreateKnowbaseAdminDocumentsCreate,
15
- useUpdateKnowbaseAdminDocumentsUpdate,
16
- usePartialUpdateKnowbaseAdminDocumentsPartialUpdate,
17
- useDeleteKnowbaseAdminDocumentsDestroy,
18
- useCreateKnowbaseAdminDocumentsReprocessCreate,
19
- useKnowbaseAdminDocumentsStatusRetrieve,
20
- useKnowbaseAdminDocumentsStatsRetrieve,
21
- useKnowbaseSystemArchivesList,
22
- useKnowbaseSystemArchivesRetrieve,
23
- useCreateKnowbaseSystemArchivesCreate,
24
- useUpdateKnowbaseSystemArchivesUpdate,
25
- usePartialUpdateKnowbaseSystemArchivesPartialUpdate,
26
- useDeleteKnowbaseSystemArchivesDestroy,
27
- useKnowbaseSystemArchivesStatisticsRetrieve,
12
+ useCreateKnowbaseAdminDocumentsCreate, useCreateKnowbaseAdminDocumentsReprocessCreate,
13
+ useCreateKnowbaseSystemArchivesCreate, useDeleteKnowbaseAdminDocumentsDestroy,
14
+ useDeleteKnowbaseSystemArchivesDestroy, useKnowbaseAdminDocumentsList,
15
+ useKnowbaseAdminDocumentsRetrieve, useKnowbaseAdminDocumentsStatsRetrieve,
16
+ useKnowbaseAdminDocumentsStatusRetrieve, useKnowbaseSystemArchivesList,
17
+ useKnowbaseSystemArchivesRetrieve, useKnowbaseSystemArchivesStatisticsRetrieve,
18
+ usePartialUpdateKnowbaseAdminDocumentsPartialUpdate,
19
+ usePartialUpdateKnowbaseSystemArchivesPartialUpdate, useUpdateKnowbaseAdminDocumentsUpdate,
20
+ useUpdateKnowbaseSystemArchivesUpdate
28
21
  } from '../../api/generated/ext_knowbase/_utils/hooks';
22
+
29
23
  import type {
30
24
  PaginatedDocumentList,
31
25
  Document,
@@ -8,6 +8,7 @@
8
8
 
9
9
  import type { ReactNode } from 'react';
10
10
  import { ExtensionProvider } from '@djangocfg/ext-base/hooks';
11
+
11
12
  import { extensionConfig } from '../../config';
12
13
  import { KnowbaseChatProvider } from './ChatContext';
13
14
  import { KnowbaseDocumentsProvider } from './DocumentsContext';
@@ -5,19 +5,16 @@
5
5
 
6
6
  'use client';
7
7
 
8
- import React, { createContext, useContext, type ReactNode } from 'react';
8
+ import React, { createContext, ReactNode, useContext } from 'react';
9
9
 
10
10
  import { apiKnowbase } from '../../api';
11
11
  import {
12
- useKnowbaseAdminSessionsList,
13
- useKnowbaseAdminSessionsRetrieve,
14
- useCreateKnowbaseAdminSessionsCreate,
15
- useUpdateKnowbaseAdminSessionsUpdate,
16
- usePartialUpdateKnowbaseAdminSessionsPartialUpdate,
17
- useDeleteKnowbaseAdminSessionsDestroy,
18
- useCreateKnowbaseAdminSessionsActivateCreate,
19
- useCreateKnowbaseAdminSessionsArchiveCreate,
12
+ useCreateKnowbaseAdminSessionsActivateCreate, useCreateKnowbaseAdminSessionsArchiveCreate,
13
+ useCreateKnowbaseAdminSessionsCreate, useDeleteKnowbaseAdminSessionsDestroy,
14
+ useKnowbaseAdminSessionsList, useKnowbaseAdminSessionsRetrieve,
15
+ usePartialUpdateKnowbaseAdminSessionsPartialUpdate, useUpdateKnowbaseAdminSessionsUpdate
20
16
  } from '../../api/generated/ext_knowbase/_utils/hooks';
17
+
21
18
  import type {
22
19
  PaginatedChatSessionList,
23
20
  ChatSession,