@tagit/ai-client-react 1.1.1 → 1.2.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.
- package/README.md +43 -1
- package/dist/chat-agent-avatar.d.ts +9 -0
- package/dist/chat-agent-avatar.d.ts.map +1 -0
- package/dist/chat-agent-avatar.js +10 -0
- package/dist/chat-agent-avatar.js.map +1 -0
- package/dist/chat-agent-picker.d.ts +5 -0
- package/dist/chat-agent-picker.d.ts.map +1 -0
- package/dist/chat-agent-picker.js +29 -0
- package/dist/chat-agent-picker.js.map +1 -0
- package/dist/chat-conversation.d.ts.map +1 -1
- package/dist/chat-conversation.js +23 -2
- package/dist/chat-conversation.js.map +1 -1
- package/dist/chat-history.d.ts.map +1 -1
- package/dist/chat-history.js +16 -5
- package/dist/chat-history.js.map +1 -1
- package/dist/chat-overlay-panel.d.ts +11 -0
- package/dist/chat-overlay-panel.d.ts.map +1 -0
- package/dist/chat-overlay-panel.js +5 -0
- package/dist/chat-overlay-panel.js.map +1 -0
- package/dist/chat-widget.d.ts.map +1 -1
- package/dist/chat-widget.js +25 -3
- package/dist/chat-widget.js.map +1 -1
- package/dist/conversation-boundary.d.ts +38 -0
- package/dist/conversation-boundary.d.ts.map +1 -0
- package/dist/conversation-boundary.js +139 -0
- package/dist/conversation-boundary.js.map +1 -0
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/provider.d.ts +10 -1
- package/dist/provider.d.ts.map +1 -1
- package/dist/provider.js +30 -1
- package/dist/provider.js.map +1 -1
- package/package.json +2 -2
- package/src/chat-widget.css +229 -7
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { createContext, useCallback, useContext, useEffect, useId, useRef, useState, } from 'react';
|
|
3
|
+
const ConversationBoundaryContext = createContext(null);
|
|
4
|
+
export function needsConversationTransition(messageCount, draft) {
|
|
5
|
+
return messageCount > 0 || draft.trim().length > 0;
|
|
6
|
+
}
|
|
7
|
+
export function getConversationTransitionCopy(kind, destinationLabel, hasDraft) {
|
|
8
|
+
const destination = destinationLabel.trim() || (kind === 'agent' ? 'selected agent' : 'selected conversation');
|
|
9
|
+
const draftNotice = hasDraft
|
|
10
|
+
? ' Your unsent message will be discarded if you continue.'
|
|
11
|
+
: '';
|
|
12
|
+
if (kind === 'agent') {
|
|
13
|
+
return {
|
|
14
|
+
title: `Switch to ${destination}?`,
|
|
15
|
+
description: `Your current chat will close. Completed turns already saved in Conversation History remain available. A new chat will start with ${destination}.${draftNotice}`,
|
|
16
|
+
confirmLabel: 'Switch agent',
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
return {
|
|
20
|
+
title: `Open ${destination}?`,
|
|
21
|
+
description: `Your current chat will close. Completed turns already saved in Conversation History remain available. The selected conversation will replace it in the chat panel.${draftNotice}`,
|
|
22
|
+
confirmLabel: 'Open conversation',
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
export function ConversationBoundaryProvider({ client, children, }) {
|
|
26
|
+
const [pending, setPending] = useState(null);
|
|
27
|
+
const [isExecuting, setIsExecuting] = useState(false);
|
|
28
|
+
const composerRef = useRef(null);
|
|
29
|
+
const registerComposer = useCallback((controller) => {
|
|
30
|
+
composerRef.current = controller;
|
|
31
|
+
return () => {
|
|
32
|
+
if (composerRef.current === controller)
|
|
33
|
+
composerRef.current = null;
|
|
34
|
+
};
|
|
35
|
+
}, []);
|
|
36
|
+
const requestTransition = useCallback((request) => {
|
|
37
|
+
const draft = composerRef.current?.getDraft() ?? '';
|
|
38
|
+
if (!needsConversationTransition(client.getState().messages.length, draft)) {
|
|
39
|
+
return Promise.resolve(request.action()).then(() => true, () => false);
|
|
40
|
+
}
|
|
41
|
+
return new Promise((resolve) => {
|
|
42
|
+
setPending((current) => {
|
|
43
|
+
current?.resolve(false);
|
|
44
|
+
return {
|
|
45
|
+
...request,
|
|
46
|
+
hasDraft: draft.trim().length > 0,
|
|
47
|
+
resolve,
|
|
48
|
+
};
|
|
49
|
+
});
|
|
50
|
+
});
|
|
51
|
+
}, [client]);
|
|
52
|
+
const cancelTransition = useCallback(() => {
|
|
53
|
+
setPending((current) => {
|
|
54
|
+
current?.resolve(false);
|
|
55
|
+
return null;
|
|
56
|
+
});
|
|
57
|
+
}, []);
|
|
58
|
+
const confirmTransition = useCallback(async () => {
|
|
59
|
+
const current = pending;
|
|
60
|
+
if (!current)
|
|
61
|
+
return;
|
|
62
|
+
setIsExecuting(true);
|
|
63
|
+
try {
|
|
64
|
+
await current.action();
|
|
65
|
+
composerRef.current?.clearDraft();
|
|
66
|
+
setPending(null);
|
|
67
|
+
current.resolve(true);
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
setPending(null);
|
|
71
|
+
current.resolve(false);
|
|
72
|
+
}
|
|
73
|
+
finally {
|
|
74
|
+
setIsExecuting(false);
|
|
75
|
+
}
|
|
76
|
+
}, [pending]);
|
|
77
|
+
return (_jsx(ConversationBoundaryContext.Provider, { value: {
|
|
78
|
+
pending,
|
|
79
|
+
isExecuting,
|
|
80
|
+
registerComposer,
|
|
81
|
+
requestTransition,
|
|
82
|
+
confirmTransition,
|
|
83
|
+
cancelTransition,
|
|
84
|
+
}, children: children }));
|
|
85
|
+
}
|
|
86
|
+
export function useConversationBoundary() {
|
|
87
|
+
const value = useContext(ConversationBoundaryContext);
|
|
88
|
+
if (!value) {
|
|
89
|
+
throw new Error('useConversationBoundary must be used within AIClientProvider');
|
|
90
|
+
}
|
|
91
|
+
return value;
|
|
92
|
+
}
|
|
93
|
+
export function ConversationTransitionDialog() {
|
|
94
|
+
const { pending, isExecuting, confirmTransition, cancelTransition } = useConversationBoundary();
|
|
95
|
+
const cancelButtonRef = useRef(null);
|
|
96
|
+
const dialogRef = useRef(null);
|
|
97
|
+
const titleId = useId();
|
|
98
|
+
const descriptionId = useId();
|
|
99
|
+
useEffect(() => {
|
|
100
|
+
if (!pending)
|
|
101
|
+
return;
|
|
102
|
+
const previousFocus = document.activeElement;
|
|
103
|
+
cancelButtonRef.current?.focus();
|
|
104
|
+
const onKeyDown = (event) => {
|
|
105
|
+
if (event.key === 'Escape') {
|
|
106
|
+
if (isExecuting)
|
|
107
|
+
return;
|
|
108
|
+
event.preventDefault();
|
|
109
|
+
cancelTransition();
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
if (event.key === 'Tab') {
|
|
113
|
+
const controls = dialogRef.current?.querySelectorAll('button:not(:disabled)');
|
|
114
|
+
if (!controls?.length)
|
|
115
|
+
return;
|
|
116
|
+
const first = controls[0];
|
|
117
|
+
const last = controls[controls.length - 1];
|
|
118
|
+
if (event.shiftKey && document.activeElement === first) {
|
|
119
|
+
event.preventDefault();
|
|
120
|
+
last.focus();
|
|
121
|
+
}
|
|
122
|
+
else if (!event.shiftKey && document.activeElement === last) {
|
|
123
|
+
event.preventDefault();
|
|
124
|
+
first.focus();
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
window.addEventListener('keydown', onKeyDown);
|
|
129
|
+
return () => {
|
|
130
|
+
window.removeEventListener('keydown', onKeyDown);
|
|
131
|
+
previousFocus?.focus();
|
|
132
|
+
};
|
|
133
|
+
}, [cancelTransition, isExecuting, pending]);
|
|
134
|
+
if (!pending)
|
|
135
|
+
return null;
|
|
136
|
+
const copy = getConversationTransitionCopy(pending.kind, pending.destinationLabel, pending.hasDraft);
|
|
137
|
+
return (_jsx("div", { className: "tagIt-chat-transition-backdrop", role: "presentation", children: _jsxs("section", { ref: dialogRef, className: "tagIt-chat-transition-dialog", role: "dialog", "aria-modal": "true", "aria-labelledby": titleId, "aria-describedby": descriptionId, children: [_jsx("h3", { id: titleId, children: copy.title }), _jsx("p", { id: descriptionId, children: copy.description }), _jsxs("div", { className: "tagIt-chat-transition-actions", children: [_jsx("button", { type: "button", ref: cancelButtonRef, onClick: cancelTransition, disabled: isExecuting, children: "Cancel" }), _jsx("button", { type: "button", "data-primary": "", onClick: () => void confirmTransition(), disabled: isExecuting, children: isExecuting ? 'Opening...' : copy.confirmLabel })] })] }) }));
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=conversation-boundary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversation-boundary.js","sourceRoot":"","sources":["../src/conversation-boundary.tsx"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -21,8 +21,11 @@
|
|
|
21
21
|
* }
|
|
22
22
|
* ```
|
|
23
23
|
*/
|
|
24
|
-
export { AIClientProvider, useAIClient, useConversation, useConversationHistory, useClientEvents, type ConversationHistoryState, } from './provider.js';
|
|
24
|
+
export { AIClientProvider, useAIClient, useAgents, useConversation, useConversationHistory, useClientEvents, type ConversationHistoryState, type AgentState, } from './provider.js';
|
|
25
25
|
export { ChatWidget, type ChatWidgetProps, type ChatWidgetMode, type ChatWidgetPresentation, type ChatWidgetMobilePresentation, type ChatWidgetSide, type ChatWidgetTheme, type ChatColorScheme, } from './chat-widget.js';
|
|
26
26
|
export { ChatConversation, type ChatConversationProps, } from './chat-conversation.js';
|
|
27
27
|
export { ChatHistoryPanel, type ChatHistoryPanelProps, } from './chat-history.js';
|
|
28
|
+
export { ChatAgentPicker, type ChatAgentPickerProps, } from './chat-agent-picker.js';
|
|
29
|
+
export { ChatAgentAvatar, type ChatAgentAvatarProps, } from './chat-agent-avatar.js';
|
|
30
|
+
export { ConversationTransitionDialog, getConversationTransitionCopy, needsConversationTransition, useConversationBoundary, type ConversationTransitionKind, type ConversationTransitionRequest, } from './conversation-boundary.js';
|
|
28
31
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,sBAAsB,EACtB,eAAe,EACf,KAAK,wBAAwB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,SAAS,EACT,eAAe,EACf,sBAAsB,EACtB,eAAe,EACf,KAAK,wBAAwB,EAC7B,KAAK,UAAU,GAChB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,UAAU,EACV,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAC3B,KAAK,4BAA4B,EACjC,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,eAAe,GACrB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,gBAAgB,EAChB,KAAK,qBAAqB,GAC3B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,gBAAgB,EAChB,KAAK,qBAAqB,GAC3B,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,eAAe,EACf,KAAK,oBAAoB,GAC1B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,eAAe,EACf,KAAK,oBAAoB,GAC1B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,4BAA4B,EAC5B,6BAA6B,EAC7B,2BAA2B,EAC3B,uBAAuB,EACvB,KAAK,0BAA0B,EAC/B,KAAK,6BAA6B,GACnC,MAAM,4BAA4B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -21,8 +21,11 @@
|
|
|
21
21
|
* }
|
|
22
22
|
* ```
|
|
23
23
|
*/
|
|
24
|
-
export { AIClientProvider, useAIClient, useConversation, useConversationHistory, useClientEvents, } from './provider.js';
|
|
24
|
+
export { AIClientProvider, useAIClient, useAgents, useConversation, useConversationHistory, useClientEvents, } from './provider.js';
|
|
25
25
|
export { ChatWidget, } from './chat-widget.js';
|
|
26
26
|
export { ChatConversation, } from './chat-conversation.js';
|
|
27
27
|
export { ChatHistoryPanel, } from './chat-history.js';
|
|
28
|
+
export { ChatAgentPicker, } from './chat-agent-picker.js';
|
|
29
|
+
export { ChatAgentAvatar, } from './chat-agent-avatar.js';
|
|
30
|
+
export { ConversationTransitionDialog, getConversationTransitionCopy, needsConversationTransition, useConversationBoundary, } from './conversation-boundary.js';
|
|
28
31
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,sBAAsB,EACtB,eAAe,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,SAAS,EACT,eAAe,EACf,sBAAsB,EACtB,eAAe,GAGhB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,UAAU,GAQX,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,gBAAgB,GAEjB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,gBAAgB,GAEjB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,eAAe,GAEhB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,eAAe,GAEhB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,4BAA4B,EAC5B,6BAA6B,EAC7B,2BAA2B,EAC3B,uBAAuB,GAGxB,MAAM,4BAA4B,CAAC"}
|
package/dist/provider.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React, { ReactNode } from 'react';
|
|
2
|
-
import type { AIClient, ClientEvent, ConversationHistoryListOptions, ConversationSummary, SendMessageOptions } from '@tagit/ai-client-core';
|
|
2
|
+
import type { AgentListUpdateOptions, AgentListUpdateResult, AgentOption, AIClient, ClientEvent, ConversationHistoryListOptions, ConversationSummary, SendMessageOptions } from '@tagit/ai-client-core';
|
|
3
3
|
interface AIClientProviderProps {
|
|
4
4
|
client: AIClient;
|
|
5
5
|
children: ReactNode;
|
|
@@ -32,6 +32,15 @@ export declare function useConversation(): {
|
|
|
32
32
|
workflowStatus?: string;
|
|
33
33
|
checkpointPrompt?: string;
|
|
34
34
|
};
|
|
35
|
+
export interface AgentState {
|
|
36
|
+
configured: boolean;
|
|
37
|
+
agents: AgentOption[];
|
|
38
|
+
activeAgent: AgentOption;
|
|
39
|
+
switchAgent: (useCaseId: string) => AgentOption;
|
|
40
|
+
updateAgents: (agents: AgentOption[], options?: AgentListUpdateOptions) => AgentListUpdateResult;
|
|
41
|
+
}
|
|
42
|
+
/** Host-configured agents and the active-agent transition API. */
|
|
43
|
+
export declare function useAgents(): AgentState;
|
|
35
44
|
export interface ConversationHistoryState {
|
|
36
45
|
enabled: boolean;
|
|
37
46
|
conversations: ConversationSummary[];
|
package/dist/provider.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAwD,MAAM,OAAO,CAAC;AAC/F,OAAO,KAAK,EACV,QAAQ,EACR,WAAW,EACX,8BAA8B,EAE9B,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAwD,MAAM,OAAO,CAAC;AAC/F,OAAO,KAAK,EACV,sBAAsB,EACtB,qBAAqB,EACrB,WAAW,EACX,QAAQ,EACR,WAAW,EACX,8BAA8B,EAE9B,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,uBAAuB,CAAC;AAQ/B,UAAU,qBAAqB;IAC7B,MAAM,EAAE,QAAQ,CAAC;IACjB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,qBAAqB,qBAQ3E;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,QAAQ,CAMtC;AAED;;GAEG;AACH,wBAAgB,eAAe;2BAaX,MAAM,YAAY,kBAAkB;;sBAWnC,kBAAkB;;+BAgBS,MAAM,KAAG,MAAM,GAAG,IAAI;;;;;;;;;;;EAcrE;AAED,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,WAAW,CAAC;IAChD,YAAY,EAAE,CACZ,MAAM,EAAE,WAAW,EAAE,EACrB,OAAO,CAAC,EAAE,sBAAsB,KAC7B,qBAAqB,CAAC;CAC5B;AAED,kEAAkE;AAClE,wBAAgB,SAAS,IAAI,UAAU,CAkCtC;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,mBAAmB,EAAE,CAAC;IACrC,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,qBAAqB,EAAE,MAAM,GAAG,IAAI,CAAC;IACrC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,8BAA8B,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,gBAAgB,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,sBAAsB,EAAE,MAAM,IAAI,CAAC;IACnC,oBAAoB,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,kBAAkB,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7E,mBAAmB,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAChE;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,CAAC,EAAE,8BAA8B,GAAG,wBAAwB,CAiLzG;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,QAMrE"}
|
package/dist/provider.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import React, { useCallback, useContext, useEffect, useRef, useState } from 'react';
|
|
3
|
+
import { ConversationBoundaryProvider } from './conversation-boundary.js';
|
|
3
4
|
/**
|
|
4
5
|
* AI Client context
|
|
5
6
|
*/
|
|
@@ -8,7 +9,7 @@ const AIClientContext = React.createContext(null);
|
|
|
8
9
|
* Provider that exposes the AI client to React components
|
|
9
10
|
*/
|
|
10
11
|
export function AIClientProvider({ client, children }) {
|
|
11
|
-
return (_jsx(AIClientContext.Provider, { value: client, children: children }));
|
|
12
|
+
return (_jsx(AIClientContext.Provider, { value: client, children: _jsx(ConversationBoundaryProvider, { client: client, children: children }) }));
|
|
12
13
|
}
|
|
13
14
|
/**
|
|
14
15
|
* Hook to access the AI client
|
|
@@ -64,6 +65,33 @@ export function useConversation() {
|
|
|
64
65
|
reEditMessage,
|
|
65
66
|
};
|
|
66
67
|
}
|
|
68
|
+
/** Host-configured agents and the active-agent transition API. */
|
|
69
|
+
export function useAgents() {
|
|
70
|
+
const client = useAIClient();
|
|
71
|
+
const [agents, setAgents] = useState(() => client.getAgents());
|
|
72
|
+
const [activeAgent, setActiveAgent] = useState(() => client.getActiveAgent());
|
|
73
|
+
useEffect(() => {
|
|
74
|
+
setAgents(client.getAgents());
|
|
75
|
+
setActiveAgent(client.getActiveAgent());
|
|
76
|
+
return client.on((event) => {
|
|
77
|
+
if (event.type === 'active_agent_changed' ||
|
|
78
|
+
event.type === 'agent_list_changed' ||
|
|
79
|
+
event.type === 'state_synced') {
|
|
80
|
+
setAgents(client.getAgents());
|
|
81
|
+
setActiveAgent(client.getActiveAgent());
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
}, [client]);
|
|
85
|
+
const switchAgent = useCallback((useCaseId) => client.switchAgent(useCaseId), [client]);
|
|
86
|
+
const updateAgents = useCallback((nextAgents, options) => client.updateAgents(nextAgents, options), [client]);
|
|
87
|
+
return {
|
|
88
|
+
configured: client.hasConfiguredAgents(),
|
|
89
|
+
agents,
|
|
90
|
+
activeAgent,
|
|
91
|
+
switchAgent,
|
|
92
|
+
updateAgents,
|
|
93
|
+
};
|
|
94
|
+
}
|
|
67
95
|
/**
|
|
68
96
|
* Hook for durable conversation history UX.
|
|
69
97
|
*
|
|
@@ -136,6 +164,7 @@ export function useConversationHistory(options) {
|
|
|
136
164
|
catch (err) {
|
|
137
165
|
if (!controller.signal.aborted) {
|
|
138
166
|
setError(err instanceof Error ? err.message : 'Unable to load conversation.');
|
|
167
|
+
throw err;
|
|
139
168
|
}
|
|
140
169
|
}
|
|
141
170
|
finally {
|
package/dist/provider.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,EAAa,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tagit/ai-client-react",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "Self-contained React chat widget and hooks for TagIt AI client",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
"recharts": "^2.15.4",
|
|
44
44
|
"rehype-highlight": "^7.0.2",
|
|
45
45
|
"remark-gfm": "^4.0.1",
|
|
46
|
-
"@tagit/ai-client-core": "1.
|
|
46
|
+
"@tagit/ai-client-core": "1.2.0"
|
|
47
47
|
},
|
|
48
48
|
"peerDependencies": {
|
|
49
49
|
"react": "^18.0.0",
|
package/src/chat-widget.css
CHANGED
|
@@ -265,6 +265,35 @@
|
|
|
265
265
|
gap: 8px;
|
|
266
266
|
}
|
|
267
267
|
|
|
268
|
+
.tagIt-chat-agent-identity {
|
|
269
|
+
max-width: min(62%, 280px);
|
|
270
|
+
padding: 5px 7px;
|
|
271
|
+
margin-left: -7px;
|
|
272
|
+
border: 0;
|
|
273
|
+
border-radius: 7px;
|
|
274
|
+
background: transparent;
|
|
275
|
+
color: inherit;
|
|
276
|
+
cursor: pointer;
|
|
277
|
+
text-align: left;
|
|
278
|
+
transition: background 120ms ease, box-shadow 120ms ease;
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
.tagIt-chat-agent-identity:hover {
|
|
282
|
+
background: color-mix(in srgb, var(--tagIt-chat-border) 42%, transparent);
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
.tagIt-chat-agent-identity:focus-visible {
|
|
286
|
+
outline: 0;
|
|
287
|
+
background: color-mix(in srgb, var(--tagIt-chat-primary) 10%, transparent);
|
|
288
|
+
box-shadow: 0 0 0 2px color-mix(in srgb, var(--tagIt-chat-primary) 65%, transparent);
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
.tagIt-chat-agent-identity h2 {
|
|
292
|
+
overflow: hidden;
|
|
293
|
+
text-overflow: ellipsis;
|
|
294
|
+
white-space: nowrap;
|
|
295
|
+
}
|
|
296
|
+
|
|
268
297
|
.tagIt-chat-panel-title-icon {
|
|
269
298
|
width: 22px;
|
|
270
299
|
height: 22px;
|
|
@@ -273,6 +302,25 @@
|
|
|
273
302
|
flex-shrink: 0;
|
|
274
303
|
}
|
|
275
304
|
|
|
305
|
+
.tagIt-chat-panel-title-avatar {
|
|
306
|
+
width: 22px;
|
|
307
|
+
height: 22px;
|
|
308
|
+
border-radius: 6px;
|
|
309
|
+
display: inline-flex;
|
|
310
|
+
align-items: center;
|
|
311
|
+
justify-content: center;
|
|
312
|
+
overflow: hidden;
|
|
313
|
+
background: color-mix(in srgb, var(--tagIt-chat-primary) 14%, var(--tagIt-chat-surface));
|
|
314
|
+
color: var(--tagIt-chat-primary);
|
|
315
|
+
flex-shrink: 0;
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
.tagIt-chat-panel-title-avatar img {
|
|
319
|
+
width: 100%;
|
|
320
|
+
height: 100%;
|
|
321
|
+
object-fit: cover;
|
|
322
|
+
}
|
|
323
|
+
|
|
276
324
|
.tagIt-chat-close {
|
|
277
325
|
display: flex;
|
|
278
326
|
align-items: center;
|
|
@@ -733,7 +781,7 @@
|
|
|
733
781
|
}
|
|
734
782
|
}
|
|
735
783
|
|
|
736
|
-
.tagIt-chat-
|
|
784
|
+
.tagIt-chat-overlay-panel {
|
|
737
785
|
position: absolute;
|
|
738
786
|
inset: 0;
|
|
739
787
|
z-index: 20;
|
|
@@ -747,7 +795,78 @@
|
|
|
747
795
|
color: var(--tagIt-chat-text);
|
|
748
796
|
}
|
|
749
797
|
|
|
750
|
-
.tagIt-chat-
|
|
798
|
+
.tagIt-chat-transition-backdrop {
|
|
799
|
+
position: absolute;
|
|
800
|
+
inset: 0;
|
|
801
|
+
z-index: 40;
|
|
802
|
+
display: flex;
|
|
803
|
+
align-items: center;
|
|
804
|
+
justify-content: center;
|
|
805
|
+
padding: 18px;
|
|
806
|
+
background: color-mix(in srgb, var(--tagIt-chat-bg) 72%, transparent);
|
|
807
|
+
backdrop-filter: blur(3px);
|
|
808
|
+
}
|
|
809
|
+
|
|
810
|
+
.tagIt-chat-transition-dialog {
|
|
811
|
+
width: min(100%, 360px);
|
|
812
|
+
padding: 18px;
|
|
813
|
+
border: 1px solid var(--tagIt-chat-border);
|
|
814
|
+
border-radius: 12px;
|
|
815
|
+
background: var(--tagIt-chat-surface);
|
|
816
|
+
color: var(--tagIt-chat-text);
|
|
817
|
+
box-shadow: 0 18px 48px rgba(15, 23, 42, 0.26);
|
|
818
|
+
}
|
|
819
|
+
|
|
820
|
+
.tagIt-chat-transition-dialog h3 {
|
|
821
|
+
margin: 0;
|
|
822
|
+
font-size: 17px;
|
|
823
|
+
line-height: 1.3;
|
|
824
|
+
}
|
|
825
|
+
|
|
826
|
+
.tagIt-chat-transition-dialog p {
|
|
827
|
+
margin: 10px 0 0;
|
|
828
|
+
color: var(--tagIt-chat-muted);
|
|
829
|
+
font-size: 13px;
|
|
830
|
+
line-height: 1.5;
|
|
831
|
+
}
|
|
832
|
+
|
|
833
|
+
.tagIt-chat-transition-actions {
|
|
834
|
+
display: flex;
|
|
835
|
+
justify-content: flex-end;
|
|
836
|
+
gap: 8px;
|
|
837
|
+
margin-top: 18px;
|
|
838
|
+
}
|
|
839
|
+
|
|
840
|
+
.tagIt-chat-transition-actions button {
|
|
841
|
+
min-height: 36px;
|
|
842
|
+
padding: 7px 12px;
|
|
843
|
+
border: 1px solid var(--tagIt-chat-border);
|
|
844
|
+
border-radius: 8px;
|
|
845
|
+
background: var(--tagIt-chat-surface);
|
|
846
|
+
color: var(--tagIt-chat-text);
|
|
847
|
+
cursor: pointer;
|
|
848
|
+
font: inherit;
|
|
849
|
+
font-size: 13px;
|
|
850
|
+
font-weight: 700;
|
|
851
|
+
}
|
|
852
|
+
|
|
853
|
+
.tagIt-chat-transition-actions button[data-primary] {
|
|
854
|
+
border-color: var(--tagIt-chat-primary);
|
|
855
|
+
background: var(--tagIt-chat-primary);
|
|
856
|
+
color: var(--tagIt-chat-primary-contrast);
|
|
857
|
+
}
|
|
858
|
+
|
|
859
|
+
.tagIt-chat-transition-actions button:focus-visible {
|
|
860
|
+
outline: 2px solid var(--tagIt-chat-primary);
|
|
861
|
+
outline-offset: 2px;
|
|
862
|
+
}
|
|
863
|
+
|
|
864
|
+
.tagIt-chat-transition-actions button:disabled {
|
|
865
|
+
cursor: wait;
|
|
866
|
+
opacity: 0.65;
|
|
867
|
+
}
|
|
868
|
+
|
|
869
|
+
.tagIt-chat-overlay-header {
|
|
751
870
|
min-height: 68px;
|
|
752
871
|
padding: 12px 14px;
|
|
753
872
|
border-bottom: 1px solid var(--tagIt-chat-border);
|
|
@@ -817,13 +936,13 @@
|
|
|
817
936
|
white-space: nowrap;
|
|
818
937
|
}
|
|
819
938
|
|
|
820
|
-
.tagIt-chat-
|
|
939
|
+
.tagIt-chat-overlay-header h3 {
|
|
821
940
|
margin: 2px 0 0;
|
|
822
941
|
font-size: 18px;
|
|
823
942
|
line-height: 1.2;
|
|
824
943
|
}
|
|
825
944
|
|
|
826
|
-
.tagIt-chat-
|
|
945
|
+
.tagIt-chat-overlay-eyebrow {
|
|
827
946
|
display: inline-flex;
|
|
828
947
|
align-items: center;
|
|
829
948
|
gap: 6px;
|
|
@@ -834,7 +953,7 @@
|
|
|
834
953
|
text-transform: uppercase;
|
|
835
954
|
}
|
|
836
955
|
|
|
837
|
-
.tagIt-chat-
|
|
956
|
+
.tagIt-chat-overlay-header-actions,
|
|
838
957
|
.tagIt-chat-history-row-actions,
|
|
839
958
|
.tagIt-chat-history-rename {
|
|
840
959
|
display: inline-flex;
|
|
@@ -842,7 +961,7 @@
|
|
|
842
961
|
gap: 6px;
|
|
843
962
|
}
|
|
844
963
|
|
|
845
|
-
.tagIt-chat-
|
|
964
|
+
.tagIt-chat-overlay-header-actions button,
|
|
846
965
|
.tagIt-chat-history-row-actions button,
|
|
847
966
|
.tagIt-chat-history-rename button {
|
|
848
967
|
width: 32px;
|
|
@@ -858,7 +977,7 @@
|
|
|
858
977
|
cursor: pointer;
|
|
859
978
|
}
|
|
860
979
|
|
|
861
|
-
.tagIt-chat-
|
|
980
|
+
.tagIt-chat-overlay-header-actions button:hover,
|
|
862
981
|
.tagIt-chat-history-row-actions button:hover,
|
|
863
982
|
.tagIt-chat-history-rename button:hover {
|
|
864
983
|
color: var(--tagIt-chat-text);
|
|
@@ -875,6 +994,109 @@
|
|
|
875
994
|
gap: 8px;
|
|
876
995
|
}
|
|
877
996
|
|
|
997
|
+
.tagIt-chat-agent-list {
|
|
998
|
+
flex: 1;
|
|
999
|
+
min-height: 0;
|
|
1000
|
+
overflow-y: auto;
|
|
1001
|
+
padding: 12px;
|
|
1002
|
+
display: flex;
|
|
1003
|
+
flex-direction: column;
|
|
1004
|
+
gap: 8px;
|
|
1005
|
+
}
|
|
1006
|
+
|
|
1007
|
+
.tagIt-chat-agent-row {
|
|
1008
|
+
width: 100%;
|
|
1009
|
+
min-height: 64px;
|
|
1010
|
+
display: grid;
|
|
1011
|
+
grid-template-columns: auto minmax(0, 1fr) auto auto;
|
|
1012
|
+
align-items: center;
|
|
1013
|
+
gap: 10px;
|
|
1014
|
+
padding: 10px 12px;
|
|
1015
|
+
border: 1px solid color-mix(in srgb, var(--tagIt-chat-border) 84%, transparent);
|
|
1016
|
+
border-radius: 10px;
|
|
1017
|
+
background: color-mix(in srgb, var(--tagIt-chat-surface) 82%, transparent);
|
|
1018
|
+
color: var(--tagIt-chat-text);
|
|
1019
|
+
cursor: pointer;
|
|
1020
|
+
text-align: left;
|
|
1021
|
+
}
|
|
1022
|
+
|
|
1023
|
+
.tagIt-chat-agent-row:hover:not(:disabled) {
|
|
1024
|
+
border-color: color-mix(in srgb, var(--tagIt-chat-primary) 38%, var(--tagIt-chat-border));
|
|
1025
|
+
background: color-mix(in srgb, var(--tagIt-chat-primary) 7%, var(--tagIt-chat-surface));
|
|
1026
|
+
}
|
|
1027
|
+
|
|
1028
|
+
.tagIt-chat-agent-row:focus-visible {
|
|
1029
|
+
outline: 2px solid var(--tagIt-chat-primary);
|
|
1030
|
+
outline-offset: 2px;
|
|
1031
|
+
}
|
|
1032
|
+
|
|
1033
|
+
.tagIt-chat-agent-row[aria-current='true'] {
|
|
1034
|
+
border-color: color-mix(in srgb, var(--tagIt-chat-primary) 52%, var(--tagIt-chat-border));
|
|
1035
|
+
background: color-mix(in srgb, var(--tagIt-chat-primary) 12%, var(--tagIt-chat-surface));
|
|
1036
|
+
cursor: default;
|
|
1037
|
+
opacity: 1;
|
|
1038
|
+
}
|
|
1039
|
+
|
|
1040
|
+
.tagIt-chat-agent-avatar {
|
|
1041
|
+
width: 36px;
|
|
1042
|
+
height: 36px;
|
|
1043
|
+
border-radius: 50%;
|
|
1044
|
+
display: inline-flex;
|
|
1045
|
+
align-items: center;
|
|
1046
|
+
justify-content: center;
|
|
1047
|
+
overflow: hidden;
|
|
1048
|
+
background: color-mix(in srgb, var(--tagIt-chat-primary) 14%, var(--tagIt-chat-surface));
|
|
1049
|
+
color: var(--tagIt-chat-primary);
|
|
1050
|
+
flex-shrink: 0;
|
|
1051
|
+
}
|
|
1052
|
+
|
|
1053
|
+
.tagIt-chat-agent-avatar img {
|
|
1054
|
+
width: 100%;
|
|
1055
|
+
height: 100%;
|
|
1056
|
+
object-fit: cover;
|
|
1057
|
+
}
|
|
1058
|
+
|
|
1059
|
+
.tagIt-chat-agent-main {
|
|
1060
|
+
min-width: 0;
|
|
1061
|
+
display: flex;
|
|
1062
|
+
flex-direction: column;
|
|
1063
|
+
gap: 3px;
|
|
1064
|
+
}
|
|
1065
|
+
|
|
1066
|
+
.tagIt-chat-agent-name {
|
|
1067
|
+
overflow: hidden;
|
|
1068
|
+
color: var(--tagIt-chat-text);
|
|
1069
|
+
font-size: 14px;
|
|
1070
|
+
font-weight: 750;
|
|
1071
|
+
text-overflow: ellipsis;
|
|
1072
|
+
white-space: nowrap;
|
|
1073
|
+
}
|
|
1074
|
+
|
|
1075
|
+
.tagIt-chat-agent-status {
|
|
1076
|
+
color: var(--tagIt-chat-muted);
|
|
1077
|
+
font-size: 12px;
|
|
1078
|
+
}
|
|
1079
|
+
|
|
1080
|
+
.tagIt-chat-agent-info {
|
|
1081
|
+
width: 28px;
|
|
1082
|
+
height: 28px;
|
|
1083
|
+
display: inline-flex;
|
|
1084
|
+
align-items: center;
|
|
1085
|
+
justify-content: center;
|
|
1086
|
+
border-radius: 7px;
|
|
1087
|
+
color: var(--tagIt-chat-muted);
|
|
1088
|
+
}
|
|
1089
|
+
|
|
1090
|
+
.tagIt-chat-agent-row .tagIt-chat-tooltip {
|
|
1091
|
+
width: max-content;
|
|
1092
|
+
max-width: min(240px, calc(100vw - 48px));
|
|
1093
|
+
white-space: normal;
|
|
1094
|
+
}
|
|
1095
|
+
|
|
1096
|
+
.tagIt-chat-agent-check {
|
|
1097
|
+
color: var(--tagIt-chat-primary);
|
|
1098
|
+
}
|
|
1099
|
+
|
|
878
1100
|
.tagIt-chat-history-row {
|
|
879
1101
|
border: 1px solid color-mix(in srgb, var(--tagIt-chat-border) 84%, transparent);
|
|
880
1102
|
border-radius: 12px;
|