@copilotz/chat-adapter 0.1.0 → 0.1.2
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/README.md +516 -6
- package/dist/index.d.ts +151 -3
- package/dist/index.js +311 -107
- package/dist/index.js.map +1 -1
- package/package.json +3 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,93 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { ChatUserContext, ChatConfig, ChatCallbacks, MemoryItem, ChatMessage, ChatThread, MediaAttachment } from '@copilotz/chat-ui';
|
|
2
|
+
import { ChatUserContext, ChatConfig, ChatCallbacks, MemoryItem, AgentOption, ChatMessage, ChatThread, MediaAttachment } from '@copilotz/chat-ui';
|
|
3
3
|
export { ChatCallbacks, ChatConfig, ChatMessage, ChatThread, ChatUserContext, MediaAttachment, MemoryItem } from '@copilotz/chat-ui';
|
|
4
4
|
|
|
5
|
+
/**
|
|
6
|
+
* Configuration for URL parameter names
|
|
7
|
+
*/
|
|
8
|
+
interface UrlParamsConfig {
|
|
9
|
+
/** URL param name for thread ID (default: 'thread') */
|
|
10
|
+
thread?: string;
|
|
11
|
+
/** URL param name for agent ID (default: 'agent') */
|
|
12
|
+
agent?: string;
|
|
13
|
+
/** URL param name for initial prompt (default: 'prompt') */
|
|
14
|
+
prompt?: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* URL sync behavior configuration
|
|
18
|
+
*/
|
|
19
|
+
interface UrlSyncConfig {
|
|
20
|
+
/** Enable/disable URL sync (default: true) */
|
|
21
|
+
enabled?: boolean;
|
|
22
|
+
/**
|
|
23
|
+
* How to update the URL when state changes:
|
|
24
|
+
* - 'push': Creates browser history entries (back button works)
|
|
25
|
+
* - 'replace': Updates URL without history entries (default)
|
|
26
|
+
* - 'read-only': Only reads from URL, never writes
|
|
27
|
+
*/
|
|
28
|
+
mode?: 'push' | 'replace' | 'read-only';
|
|
29
|
+
/** Custom parameter names */
|
|
30
|
+
params?: UrlParamsConfig;
|
|
31
|
+
/**
|
|
32
|
+
* Behavior for the prompt parameter:
|
|
33
|
+
* - 'prefill': Pre-fills the input field (default)
|
|
34
|
+
* - 'auto-send': Automatically sends the message on load
|
|
35
|
+
*/
|
|
36
|
+
promptBehavior?: 'prefill' | 'auto-send';
|
|
37
|
+
/**
|
|
38
|
+
* Whether to clear the prompt param from URL after reading
|
|
39
|
+
* Prevents re-sending on refresh (default: true)
|
|
40
|
+
*/
|
|
41
|
+
clearPromptAfterRead?: boolean;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* State values parsed from URL
|
|
45
|
+
*/
|
|
46
|
+
interface UrlState {
|
|
47
|
+
threadId: string | null;
|
|
48
|
+
agentId: string | null;
|
|
49
|
+
prompt: string | null;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Return type of useUrlState hook
|
|
53
|
+
*/
|
|
54
|
+
interface UseUrlStateReturn {
|
|
55
|
+
/** Current state parsed from URL */
|
|
56
|
+
state: UrlState;
|
|
57
|
+
/** Update thread ID in URL */
|
|
58
|
+
setThreadId: (threadId: string | null) => void;
|
|
59
|
+
/** Update agent ID in URL */
|
|
60
|
+
setAgentId: (agentId: string | null) => void;
|
|
61
|
+
/** Clear prompt from URL (call after consuming it) */
|
|
62
|
+
clearPrompt: () => void;
|
|
63
|
+
/** Whether URL sync is enabled */
|
|
64
|
+
isEnabled: boolean;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Hook to manage chat state persistence via URL parameters.
|
|
68
|
+
*
|
|
69
|
+
* Supports:
|
|
70
|
+
* - Thread ID: Navigate to specific conversation
|
|
71
|
+
* - Agent ID: Pre-select an agent
|
|
72
|
+
* - Prompt: Pre-fill or auto-send a message
|
|
73
|
+
*
|
|
74
|
+
* @example
|
|
75
|
+
* ```tsx
|
|
76
|
+
* const { state, setThreadId, setAgentId } = useUrlState({
|
|
77
|
+
* enabled: true,
|
|
78
|
+
* mode: 'replace',
|
|
79
|
+
* params: { thread: 't', agent: 'a', prompt: 'q' }
|
|
80
|
+
* });
|
|
81
|
+
*
|
|
82
|
+
* // Read initial values
|
|
83
|
+
* console.log(state.threadId, state.agentId, state.prompt);
|
|
84
|
+
*
|
|
85
|
+
* // Update URL when thread changes
|
|
86
|
+
* setThreadId('abc123');
|
|
87
|
+
* ```
|
|
88
|
+
*/
|
|
89
|
+
declare function useUrlState(config?: UrlSyncConfig): UseUrlStateReturn;
|
|
90
|
+
|
|
5
91
|
interface CopilotzChatProps {
|
|
6
92
|
userId: string;
|
|
7
93
|
userName?: string;
|
|
@@ -40,7 +126,41 @@ interface CopilotzChatProps {
|
|
|
40
126
|
onUpdateMemory?: (memoryId: string, content: string) => void;
|
|
41
127
|
/** Called when user deletes a memory */
|
|
42
128
|
onDeleteMemory?: (memoryId: string) => void;
|
|
129
|
+
/** Empty-state suggestions */
|
|
130
|
+
suggestions?: string[];
|
|
131
|
+
/** Agent selector data (built-in ChatUI) */
|
|
132
|
+
agentOptions?: AgentOption[];
|
|
133
|
+
selectedAgentId?: string | null;
|
|
134
|
+
onSelectAgent?: (agentId: string) => void;
|
|
43
135
|
className?: string;
|
|
136
|
+
/**
|
|
137
|
+
* URL state synchronization configuration.
|
|
138
|
+
* When enabled, syncs thread ID, agent, and prompt to/from URL parameters.
|
|
139
|
+
*
|
|
140
|
+
* Features:
|
|
141
|
+
* - `?thread=abc123` - Opens specific thread
|
|
142
|
+
* - `?agent=support-bot` - Pre-selects agent
|
|
143
|
+
* - `?prompt=Hello` - Pre-fills or auto-sends message
|
|
144
|
+
*
|
|
145
|
+
* @example
|
|
146
|
+
* ```tsx
|
|
147
|
+
* <CopilotzChat
|
|
148
|
+
* userId="user123"
|
|
149
|
+
* urlSync={{ enabled: true }}
|
|
150
|
+
* />
|
|
151
|
+
*
|
|
152
|
+
* // With custom param names
|
|
153
|
+
* <CopilotzChat
|
|
154
|
+
* userId="user123"
|
|
155
|
+
* urlSync={{
|
|
156
|
+
* enabled: true,
|
|
157
|
+
* params: { thread: 't', agent: 'a', prompt: 'q' },
|
|
158
|
+
* promptBehavior: 'auto-send'
|
|
159
|
+
* }}
|
|
160
|
+
* />
|
|
161
|
+
* ```
|
|
162
|
+
*/
|
|
163
|
+
urlSync?: UrlSyncConfig;
|
|
44
164
|
}
|
|
45
165
|
declare const CopilotzChat: React.FC<CopilotzChatProps>;
|
|
46
166
|
|
|
@@ -56,9 +176,28 @@ interface UseCopilotzOptions {
|
|
|
56
176
|
};
|
|
57
177
|
defaultThreadName?: string;
|
|
58
178
|
onToolOutput?: (output: Record<string, unknown>) => void;
|
|
179
|
+
preferredAgentName?: string | null;
|
|
180
|
+
/**
|
|
181
|
+
* URL state synchronization configuration.
|
|
182
|
+
* When enabled, thread ID and agent are synced to/from URL parameters.
|
|
183
|
+
*
|
|
184
|
+
* @example
|
|
185
|
+
* ```tsx
|
|
186
|
+
* const chat = useCopilotz({
|
|
187
|
+
* userId: 'user123',
|
|
188
|
+
* urlSync: {
|
|
189
|
+
* enabled: true,
|
|
190
|
+
* mode: 'replace',
|
|
191
|
+
* params: { thread: 't', agent: 'a', prompt: 'q' }
|
|
192
|
+
* }
|
|
193
|
+
* });
|
|
194
|
+
* ```
|
|
195
|
+
*/
|
|
196
|
+
urlSync?: UrlSyncConfig;
|
|
59
197
|
}
|
|
60
|
-
declare function useCopilotz({ userId, initialContext, bootstrap, defaultThreadName, onToolOutput }: UseCopilotzOptions): {
|
|
198
|
+
declare function useCopilotz({ userId, initialContext, bootstrap, defaultThreadName, onToolOutput, preferredAgentName, urlSync }: UseCopilotzOptions): {
|
|
61
199
|
messages: ChatMessage[];
|
|
200
|
+
isMessagesLoading: boolean;
|
|
62
201
|
threads: ChatThread[];
|
|
63
202
|
currentThreadId: string | null;
|
|
64
203
|
isStreaming: boolean;
|
|
@@ -73,6 +212,14 @@ declare function useCopilotz({ userId, initialContext, bootstrap, defaultThreadN
|
|
|
73
212
|
fetchAndSetThreadsState: (uid: string, preferredExternalId?: string | null) => Promise<string | null | undefined>;
|
|
74
213
|
loadThreadMessages: (threadId: string) => Promise<void>;
|
|
75
214
|
reset: () => void;
|
|
215
|
+
/** Initial prompt from URL (if urlSync enabled) - use for pre-filling input */
|
|
216
|
+
initialPrompt: string | null;
|
|
217
|
+
/** Clear the initial prompt from URL (call after consuming it) */
|
|
218
|
+
clearInitialPrompt: () => void;
|
|
219
|
+
/** URL agent ID (if urlSync enabled) - use for agent pre-selection */
|
|
220
|
+
urlAgentId: string | null;
|
|
221
|
+
/** Update agent ID in URL */
|
|
222
|
+
setUrlAgentId: (agentId: string | null) => void;
|
|
76
223
|
};
|
|
77
224
|
|
|
78
225
|
type RestThread = {
|
|
@@ -122,6 +269,7 @@ type RunOptions = {
|
|
|
122
269
|
args: Record<string, unknown>;
|
|
123
270
|
id?: string;
|
|
124
271
|
}>;
|
|
272
|
+
selectedAgent?: string | null;
|
|
125
273
|
} & StreamCallbacks;
|
|
126
274
|
type CopilotzStreamResult = {
|
|
127
275
|
text: string;
|
|
@@ -152,4 +300,4 @@ type WithMetadata = {
|
|
|
152
300
|
};
|
|
153
301
|
declare function resolveAssetsInMessages<T extends WithMetadata>(messages: T[]): Promise<T[]>;
|
|
154
302
|
|
|
155
|
-
export { CopilotzChat, type CopilotzStreamResult, copilotzService, deleteMessagesByThreadId, deleteThread, fetchThreadMessages, fetchThreads, getAssetDataUrl, resolveAssetsInMessages, runCopilotzStream, updateThread, useCopilotz };
|
|
303
|
+
export { CopilotzChat, type CopilotzStreamResult, type UrlParamsConfig, type UrlState, type UrlSyncConfig, type UseUrlStateReturn, copilotzService, deleteMessagesByThreadId, deleteThread, fetchThreadMessages, fetchThreads, getAssetDataUrl, resolveAssetsInMessages, runCopilotzStream, updateThread, useCopilotz, useUrlState };
|