@bytexbyte/nxtlinq-ai-agent-ui-react-development 0.3.4 → 2.0.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/dist/context/ChatBotContext.d.ts.map +1 -1
- package/dist/context/ChatBotContext.js +179 -160
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/permissionState.d.ts +53 -0
- package/dist/permissionState.d.ts.map +1 -0
- package/dist/permissionState.js +217 -0
- package/dist/types/ChatBotTypes.d.ts +6 -5
- package/dist/types/ChatBotTypes.d.ts.map +1 -1
- package/dist/ui/ModelSelector.js +2 -2
- package/dist/ui/PermissionForm.d.ts.map +1 -1
- package/dist/ui/PermissionForm.js +14 -28
- package/package.json +3 -3
- package/src/context/ChatBotContext.tsx +252 -195
- package/src/index.ts +0 -1
- package/src/permissionState.ts +313 -0
- package/src/types/ChatBotTypes.ts +7 -7
- package/src/ui/ModelSelector.tsx +5 -5
- package/src/ui/PermissionForm.tsx +20 -31
- package/dist/NxtlinqAgentChat.d.ts +0 -26
- package/dist/NxtlinqAgentChat.d.ts.map +0 -1
- package/dist/NxtlinqAgentChat.js +0 -28
- package/dist/components/AgentAssistantShell.d.ts +0 -5
- package/dist/components/AgentAssistantShell.d.ts.map +0 -1
- package/dist/components/AgentAssistantShell.js +0 -52
- package/dist/components/AgentComposer.d.ts +0 -3
- package/dist/components/AgentComposer.d.ts.map +0 -1
- package/dist/components/AgentComposer.js +0 -60
- package/dist/components/AgentMessageList.d.ts +0 -3
- package/dist/components/AgentMessageList.d.ts.map +0 -1
- package/dist/components/AgentMessageList.js +0 -37
- package/dist/components/AgentRemoteAudio.d.ts +0 -4
- package/dist/components/AgentRemoteAudio.d.ts.map +0 -1
- package/dist/components/AgentRemoteAudio.js +0 -34
- package/dist/components/AgentVoiceBar.d.ts +0 -3
- package/dist/components/AgentVoiceBar.d.ts.map +0 -1
- package/dist/components/AgentVoiceBar.js +0 -91
- package/dist/components/PresetMessageChips.d.ts +0 -3
- package/dist/components/PresetMessageChips.d.ts.map +0 -1
- package/dist/components/PresetMessageChips.js +0 -23
- package/dist/context/AgentAssistantContext.d.ts +0 -32
- package/dist/context/AgentAssistantContext.d.ts.map +0 -1
- package/dist/context/AgentAssistantContext.js +0 -179
- package/dist/legacy/assets/images/adiSideItalicDataUri.d.ts +0 -2
- package/dist/legacy/assets/images/adiSideItalicDataUri.d.ts.map +0 -1
- package/dist/legacy/assets/images/adiSideItalicDataUri.js +0 -1
- package/dist/legacy/chatbot/ChatBot.d.ts +0 -5
- package/dist/legacy/chatbot/ChatBot.d.ts.map +0 -1
- package/dist/legacy/chatbot/ChatBot.js +0 -35
- package/dist/legacy/chatbot/context/ChatBotContext.d.ts +0 -5
- package/dist/legacy/chatbot/context/ChatBotContext.d.ts.map +0 -1
- package/dist/legacy/chatbot/context/ChatBotContext.js +0 -2922
- package/dist/legacy/chatbot/types/ChatBotTypes.d.ts +0 -166
- package/dist/legacy/chatbot/types/ChatBotTypes.d.ts.map +0 -1
- package/dist/legacy/chatbot/types/ChatBotTypes.js +0 -1
- package/dist/legacy/chatbot/ui/BerifyMeModal.d.ts +0 -17
- package/dist/legacy/chatbot/ui/BerifyMeModal.d.ts.map +0 -1
- package/dist/legacy/chatbot/ui/BerifyMeModal.js +0 -110
- package/dist/legacy/chatbot/ui/ChatBotHeader.d.ts +0 -15
- package/dist/legacy/chatbot/ui/ChatBotHeader.d.ts.map +0 -1
- package/dist/legacy/chatbot/ui/ChatBotHeader.js +0 -62
- package/dist/legacy/chatbot/ui/ChatBotUI.d.ts +0 -3
- package/dist/legacy/chatbot/ui/ChatBotUI.d.ts.map +0 -1
- package/dist/legacy/chatbot/ui/ChatBotUI.js +0 -557
- package/dist/legacy/chatbot/ui/MessageInput.d.ts +0 -3
- package/dist/legacy/chatbot/ui/MessageInput.d.ts.map +0 -1
- package/dist/legacy/chatbot/ui/MessageInput.js +0 -321
- package/dist/legacy/chatbot/ui/MessageList.d.ts +0 -4
- package/dist/legacy/chatbot/ui/MessageList.d.ts.map +0 -1
- package/dist/legacy/chatbot/ui/MessageList.js +0 -455
- package/dist/legacy/chatbot/ui/ModelSelector.d.ts +0 -4
- package/dist/legacy/chatbot/ui/ModelSelector.d.ts.map +0 -1
- package/dist/legacy/chatbot/ui/ModelSelector.js +0 -122
- package/dist/legacy/chatbot/ui/NotificationModal.d.ts +0 -15
- package/dist/legacy/chatbot/ui/NotificationModal.d.ts.map +0 -1
- package/dist/legacy/chatbot/ui/NotificationModal.js +0 -53
- package/dist/legacy/chatbot/ui/PermissionForm.d.ts +0 -8
- package/dist/legacy/chatbot/ui/PermissionForm.d.ts.map +0 -1
- package/dist/legacy/chatbot/ui/PermissionForm.js +0 -465
- package/dist/legacy/chatbot/ui/PresetMessages.d.ts +0 -4
- package/dist/legacy/chatbot/ui/PresetMessages.d.ts.map +0 -1
- package/dist/legacy/chatbot/ui/PresetMessages.js +0 -33
- package/dist/legacy/chatbot/ui/VoiceModePanel.d.ts +0 -3
- package/dist/legacy/chatbot/ui/VoiceModePanel.d.ts.map +0 -1
- package/dist/legacy/chatbot/ui/VoiceModePanel.js +0 -95
- package/dist/legacy/chatbot/ui/chatBotHeaderParts.d.ts +0 -15
- package/dist/legacy/chatbot/ui/chatBotHeaderParts.d.ts.map +0 -1
- package/dist/legacy/chatbot/ui/chatBotHeaderParts.js +0 -50
- package/dist/legacy/chatbot/ui/styles/isolatedStyles.d.ts +0 -73
- package/dist/legacy/chatbot/ui/styles/isolatedStyles.d.ts.map +0 -1
- package/dist/legacy/chatbot/ui/styles/isolatedStyles.js +0 -985
- package/dist/legacy/index.d.ts +0 -14
- package/dist/legacy/index.d.ts.map +0 -1
- package/dist/legacy/index.js +0 -12
- package/dist/theme/defaultTheme.d.ts +0 -3
- package/dist/theme/defaultTheme.d.ts.map +0 -1
- package/dist/theme/defaultTheme.js +0 -20
- package/dist/types.d.ts +0 -62
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -1
- package/dist/voice/useVoiceConnectOrchestration.d.ts +0 -21
- package/dist/voice/useVoiceConnectOrchestration.d.ts.map +0 -1
- package/dist/voice/useVoiceConnectOrchestration.js +0 -86
- package/dist/voice/useVoiceMicState.d.ts +0 -15
- package/dist/voice/useVoiceMicState.d.ts.map +0 -1
- package/dist/voice/useVoiceMicState.js +0 -94
- package/dist/voice/useVoiceSilenceCommit.d.ts +0 -10
- package/dist/voice/useVoiceSilenceCommit.d.ts.map +0 -1
- package/dist/voice/useVoiceSilenceCommit.js +0 -67
- package/dist/voice/useVoiceTranscriptMessages.d.ts +0 -18
- package/dist/voice/useVoiceTranscriptMessages.d.ts.map +0 -1
- package/dist/voice/useVoiceTranscriptMessages.js +0 -132
- package/dist/voice/useWsRealtimeAudio.d.ts +0 -18
- package/dist/voice/useWsRealtimeAudio.d.ts.map +0 -1
- package/dist/voice/useWsRealtimeAudio.js +0 -102
- package/dist/voice/voiceMicConstants.d.ts +0 -4
- package/dist/voice/voiceMicConstants.d.ts.map +0 -1
- package/dist/voice/voiceMicConstants.js +0 -10
- package/dist/voice/voiceUserBubble.d.ts +0 -10
- package/dist/voice/voiceUserBubble.d.ts.map +0 -1
- package/dist/voice/voiceUserBubble.js +0 -52
- package/dist/voice/ws/BrowserWsPcmPlayer.d.ts +0 -23
- package/dist/voice/ws/BrowserWsPcmPlayer.d.ts.map +0 -1
- package/dist/voice/ws/BrowserWsPcmPlayer.js +0 -137
- package/dist/voice/ws/BrowserWsPcmRecorder.d.ts +0 -17
- package/dist/voice/ws/BrowserWsPcmRecorder.d.ts.map +0 -1
- package/dist/voice/ws/BrowserWsPcmRecorder.js +0 -71
- package/dist/voice/ws/float32ToPcm16.d.ts +0 -2
- package/dist/voice/ws/float32ToPcm16.d.ts.map +0 -1
- package/dist/voice/ws/float32ToPcm16.js +0 -8
- package/dist/voice/ws/voiceSilenceConstants.d.ts +0 -5
- package/dist/voice/ws/voiceSilenceConstants.d.ts.map +0 -1
- package/dist/voice/ws/voiceSilenceConstants.js +0 -4
- package/dist/voice/ws/wsRealtimeConstants.d.ts +0 -2
- package/dist/voice/ws/wsRealtimeConstants.d.ts.map +0 -1
- package/dist/voice/ws/wsRealtimeConstants.js +0 -1
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
const useCommitPhaseEffect = typeof window === 'undefined'
|
|
3
|
+
? React.useEffect
|
|
4
|
+
: React.useLayoutEffect;
|
|
5
|
+
export function commitProviderRuntime(identityRef, identity, environment, publishEnvironment) {
|
|
6
|
+
identityRef.current = identity;
|
|
7
|
+
publishEnvironment(environment);
|
|
8
|
+
}
|
|
9
|
+
export function useProviderRuntimeCommit(identityRef, identity, environment, publishEnvironment) {
|
|
10
|
+
useCommitPhaseEffect(() => {
|
|
11
|
+
commitProviderRuntime(identityRef, identity, environment, publishEnvironment);
|
|
12
|
+
}, [environment, identity, identityRef, publishEnvironment]);
|
|
13
|
+
}
|
|
14
|
+
function stableUnique(values) {
|
|
15
|
+
const seen = new Set();
|
|
16
|
+
const result = [];
|
|
17
|
+
for (const value of values) {
|
|
18
|
+
if (!seen.has(value)) {
|
|
19
|
+
seen.add(value);
|
|
20
|
+
result.push(value);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return result;
|
|
24
|
+
}
|
|
25
|
+
export function replaceCurrentMaximumDenyList(persistedDeniedPermissions, maximumPermissions, checkedPermissions) {
|
|
26
|
+
const maximum = new Set(maximumPermissions);
|
|
27
|
+
const checked = new Set(checkedPermissions);
|
|
28
|
+
for (const permission of checked) {
|
|
29
|
+
if (!maximum.has(permission)) {
|
|
30
|
+
throw new Error(`Permission is outside the authoritative maximum: ${permission}`);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
const retainedOutsideMaximum = persistedDeniedPermissions.filter((permission) => !maximum.has(permission));
|
|
34
|
+
const deniedInsideMaximum = maximumPermissions.filter((permission) => !checked.has(permission));
|
|
35
|
+
return stableUnique([...retainedOutsideMaximum, ...deniedInsideMaximum]);
|
|
36
|
+
}
|
|
37
|
+
export function removeOneDeniedPermission(persistedDeniedPermissions, permission) {
|
|
38
|
+
return stableUnique(persistedDeniedPermissions).filter((value) => value !== permission);
|
|
39
|
+
}
|
|
40
|
+
export function runtimeAITContextKey(context) {
|
|
41
|
+
return JSON.stringify([
|
|
42
|
+
context.controller,
|
|
43
|
+
context.serviceId,
|
|
44
|
+
context.roles === undefined ? null : [...context.roles],
|
|
45
|
+
context.permissionGroup ?? null,
|
|
46
|
+
]);
|
|
47
|
+
}
|
|
48
|
+
export function runtimeAITSubjectKey(context) {
|
|
49
|
+
return JSON.stringify([context.controller, context.serviceId]);
|
|
50
|
+
}
|
|
51
|
+
export function runtimeAuthorizationMatchesContext(authorizationContextKey, renderedContext) {
|
|
52
|
+
return authorizationContextKey === (renderedContext ? runtimeAITContextKey(renderedContext) : null);
|
|
53
|
+
}
|
|
54
|
+
export class StaleRuntimeAITResponseError extends Error {
|
|
55
|
+
constructor() {
|
|
56
|
+
super('Stale runtime AIT response was discarded');
|
|
57
|
+
this.name = 'StaleRuntimeAITResponseError';
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Owns the authoritative recompute lifecycle. Only the newest request for the
|
|
62
|
+
* active captured context may write state; its failures clear state first.
|
|
63
|
+
*/
|
|
64
|
+
export class RuntimeAITRecomputeCoordinator {
|
|
65
|
+
constructor() {
|
|
66
|
+
this.activeContextKey = null;
|
|
67
|
+
this.activeContext = null;
|
|
68
|
+
this.generation = 0;
|
|
69
|
+
}
|
|
70
|
+
commitContext(context, invalidate) {
|
|
71
|
+
const nextKey = context ? runtimeAITContextKey(context) : null;
|
|
72
|
+
if (nextKey === this.activeContextKey) {
|
|
73
|
+
return false;
|
|
74
|
+
}
|
|
75
|
+
this.activeContextKey = nextKey;
|
|
76
|
+
this.activeContext = context ? {
|
|
77
|
+
controller: context.controller,
|
|
78
|
+
serviceId: context.serviceId,
|
|
79
|
+
...(context.roles !== undefined ? { roles: [...context.roles] } : {}),
|
|
80
|
+
...(context.permissionGroup !== undefined
|
|
81
|
+
? { permissionGroup: context.permissionGroup }
|
|
82
|
+
: {}),
|
|
83
|
+
} : null;
|
|
84
|
+
this.generation += 1;
|
|
85
|
+
invalidate();
|
|
86
|
+
return true;
|
|
87
|
+
}
|
|
88
|
+
getActiveContext() {
|
|
89
|
+
return this.activeContext ? {
|
|
90
|
+
controller: this.activeContext.controller,
|
|
91
|
+
serviceId: this.activeContext.serviceId,
|
|
92
|
+
...(this.activeContext.roles !== undefined
|
|
93
|
+
? { roles: [...this.activeContext.roles] }
|
|
94
|
+
: {}),
|
|
95
|
+
...(this.activeContext.permissionGroup !== undefined
|
|
96
|
+
? { permissionGroup: this.activeContext.permissionGroup }
|
|
97
|
+
: {}),
|
|
98
|
+
} : null;
|
|
99
|
+
}
|
|
100
|
+
isContextActive(context) {
|
|
101
|
+
return runtimeAITContextKey(context) === this.activeContextKey;
|
|
102
|
+
}
|
|
103
|
+
assertContextActive(context) {
|
|
104
|
+
if (!this.isContextActive(context)) {
|
|
105
|
+
throw new StaleRuntimeAITResponseError();
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
async run(context, request, apply, clear) {
|
|
109
|
+
this.assertContextActive(context);
|
|
110
|
+
const contextKey = runtimeAITContextKey(context);
|
|
111
|
+
const generation = ++this.generation;
|
|
112
|
+
try {
|
|
113
|
+
const result = await request();
|
|
114
|
+
if (generation !== this.generation || contextKey !== this.activeContextKey) {
|
|
115
|
+
throw new StaleRuntimeAITResponseError();
|
|
116
|
+
}
|
|
117
|
+
apply(result, context);
|
|
118
|
+
return result;
|
|
119
|
+
}
|
|
120
|
+
catch (error) {
|
|
121
|
+
if (!(error instanceof StaleRuntimeAITResponseError)
|
|
122
|
+
&& generation === this.generation
|
|
123
|
+
&& contextKey === this.activeContextKey) {
|
|
124
|
+
clear();
|
|
125
|
+
}
|
|
126
|
+
throw error;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
export function useRuntimeAITContextCommit(coordinator, context, invalidate) {
|
|
131
|
+
const contextKey = context ? runtimeAITContextKey(context) : null;
|
|
132
|
+
useCommitPhaseEffect(() => {
|
|
133
|
+
coordinator.commitContext(context, invalidate);
|
|
134
|
+
}, [contextKey, coordinator, invalidate]);
|
|
135
|
+
}
|
|
136
|
+
export async function dispatchRuntimeAITCompleteReplacement(coordinator, context, update, converge, clear) {
|
|
137
|
+
const subjectKey = runtimeAITSubjectKey(context);
|
|
138
|
+
coordinator.assertContextActive(context);
|
|
139
|
+
let updateFailed = false;
|
|
140
|
+
let updateError;
|
|
141
|
+
try {
|
|
142
|
+
await update();
|
|
143
|
+
}
|
|
144
|
+
catch (error) {
|
|
145
|
+
updateFailed = true;
|
|
146
|
+
updateError = error;
|
|
147
|
+
}
|
|
148
|
+
try {
|
|
149
|
+
await converge(subjectKey);
|
|
150
|
+
}
|
|
151
|
+
catch (error) {
|
|
152
|
+
if (!updateFailed) {
|
|
153
|
+
throw error;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
if (updateFailed) {
|
|
157
|
+
if (!coordinator.isContextActive(context)) {
|
|
158
|
+
throw new StaleRuntimeAITResponseError();
|
|
159
|
+
}
|
|
160
|
+
clear();
|
|
161
|
+
throw updateError;
|
|
162
|
+
}
|
|
163
|
+
coordinator.assertContextActive(context);
|
|
164
|
+
}
|
|
165
|
+
/** Serializes reads, complete replacements, and convergence for one persistence subject. */
|
|
166
|
+
export class RuntimeAITMutationQueue {
|
|
167
|
+
constructor() {
|
|
168
|
+
this.tails = new Map();
|
|
169
|
+
}
|
|
170
|
+
async run(subjectKey, mutation) {
|
|
171
|
+
const previous = this.tails.get(subjectKey) ?? Promise.resolve();
|
|
172
|
+
const result = previous.catch(() => undefined).then(mutation);
|
|
173
|
+
const tail = result.then(() => undefined, () => undefined);
|
|
174
|
+
this.tails.set(subjectKey, tail);
|
|
175
|
+
try {
|
|
176
|
+
return await result;
|
|
177
|
+
}
|
|
178
|
+
finally {
|
|
179
|
+
if (this.tails.get(subjectKey) === tail) {
|
|
180
|
+
this.tails.delete(subjectKey);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
export function runtimeAuthorizationState(result, controller, serviceId) {
|
|
186
|
+
return {
|
|
187
|
+
ait: result.aitId
|
|
188
|
+
? {
|
|
189
|
+
aitId: result.aitId,
|
|
190
|
+
controller,
|
|
191
|
+
serviceId,
|
|
192
|
+
metadata: { permissions: [...result.effectivePermissions] },
|
|
193
|
+
}
|
|
194
|
+
: null,
|
|
195
|
+
maximumPermissions: [...result.maximumPermissions],
|
|
196
|
+
effectivePermissions: [...result.effectivePermissions],
|
|
197
|
+
deniedPermissions: [...result.deniedPermissions],
|
|
198
|
+
selectedRuleId: result.selectedRuleId,
|
|
199
|
+
selectedRuleType: result.selectedRuleType,
|
|
200
|
+
expiresAt: result.expiresAt,
|
|
201
|
+
grantActive: result.grantActive,
|
|
202
|
+
unavailable: false,
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
export function unavailableRuntimeAuthorization(persistedDeniedPermissions) {
|
|
206
|
+
return {
|
|
207
|
+
ait: null,
|
|
208
|
+
maximumPermissions: [],
|
|
209
|
+
effectivePermissions: [],
|
|
210
|
+
deniedPermissions: [...persistedDeniedPermissions],
|
|
211
|
+
selectedRuleId: null,
|
|
212
|
+
selectedRuleType: 'none',
|
|
213
|
+
expiresAt: null,
|
|
214
|
+
grantActive: false,
|
|
215
|
+
unavailable: true,
|
|
216
|
+
};
|
|
217
|
+
}
|
|
@@ -20,10 +20,6 @@ export interface NovaResponse {
|
|
|
20
20
|
export interface NovaError {
|
|
21
21
|
error: string;
|
|
22
22
|
}
|
|
23
|
-
export interface AITMetadata {
|
|
24
|
-
permissions: string[];
|
|
25
|
-
issuedBy: string;
|
|
26
|
-
}
|
|
27
23
|
export interface AIModel {
|
|
28
24
|
label: string;
|
|
29
25
|
value: string;
|
|
@@ -53,6 +49,8 @@ export interface ChatBotProps {
|
|
|
53
49
|
token: string;
|
|
54
50
|
} | undefined>;
|
|
55
51
|
permissionGroup?: string;
|
|
52
|
+
/** Ordered runtime identity-provider roles. Order is preserved for Group fallback. */
|
|
53
|
+
roles?: string[];
|
|
56
54
|
children?: React.ReactNode;
|
|
57
55
|
onModelChange?: (model: AIModel) => void;
|
|
58
56
|
storageMode?: "session-storage" | "local-storage";
|
|
@@ -89,6 +87,9 @@ export interface ChatBotContextType {
|
|
|
89
87
|
hitAddress: string | null;
|
|
90
88
|
ait: AIT | null;
|
|
91
89
|
permissions: string[];
|
|
90
|
+
maximumPermissions: string[];
|
|
91
|
+
deniedPermissions: string[];
|
|
92
|
+
runtimePermissionsUnavailable: boolean;
|
|
92
93
|
availablePermissions: ServicePermission[];
|
|
93
94
|
showPermissionForm: boolean;
|
|
94
95
|
isPermissionFormOpen: boolean;
|
|
@@ -130,7 +131,6 @@ export interface ChatBotContextType {
|
|
|
130
131
|
setIsOpen: (open: boolean) => void;
|
|
131
132
|
setShowPermissionForm: (show: boolean) => void;
|
|
132
133
|
setIsPermissionFormOpen: (open: boolean) => void;
|
|
133
|
-
setPermissions: (permissions: string[]) => void;
|
|
134
134
|
setIsDisabled: (disabled: boolean) => void;
|
|
135
135
|
setIsWalletLoading: (loading: boolean) => void;
|
|
136
136
|
setNotification: (notification: any) => void;
|
|
@@ -175,6 +175,7 @@ export interface ChatBotContextType {
|
|
|
175
175
|
onVerifyWallet: (method: 'berifyme' | 'custom') => Promise<void>;
|
|
176
176
|
serviceId: string;
|
|
177
177
|
permissionGroup?: string;
|
|
178
|
+
roles?: string[];
|
|
178
179
|
props: ChatBotProps;
|
|
179
180
|
nxtlinqApi: AITApi;
|
|
180
181
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatBotTypes.d.ts","sourceRoot":"","sources":["../../src/types/ChatBotTypes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,8CAA8C,CAAC;AAErI,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC5B;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/B,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;CACf;
|
|
1
|
+
{"version":3,"file":"ChatBotTypes.d.ts","sourceRoot":"","sources":["../../src/types/ChatBotTypes.ts"],"names":[],"mappings":"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"}
|
package/dist/ui/ModelSelector.js
CHANGED
|
@@ -85,7 +85,7 @@ export const ModelSelector = () => {
|
|
|
85
85
|
font-size: 12px !important;
|
|
86
86
|
font-weight: 500 !important;
|
|
87
87
|
gap: 6px !important;
|
|
88
|
-
|
|
88
|
+
|
|
89
89
|
&:hover {
|
|
90
90
|
background-color: rgba(255, 255, 255, 0.2) !important;
|
|
91
91
|
}
|
|
@@ -107,7 +107,7 @@ export const ModelSelector = () => {
|
|
|
107
107
|
color: ${index === safeSelectedModelIndex ? '#007bff' : '#333'} !important;
|
|
108
108
|
font-size: 12px !important;
|
|
109
109
|
border-bottom: ${index < availableModels.length - 1 ? '1px solid #eee' : 'none'} !important;
|
|
110
|
-
|
|
110
|
+
|
|
111
111
|
&:hover {
|
|
112
112
|
background-color: ${index === safeSelectedModelIndex ? '#f0f0f0' : '#f8f9fa'} !important;
|
|
113
113
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PermissionForm.d.ts","sourceRoot":"","sources":["../../src/ui/PermissionForm.tsx"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,UAAU,mBAAmB;IAC3B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,
|
|
1
|
+
{"version":3,"file":"PermissionForm.d.ts","sourceRoot":"","sources":["../../src/ui/PermissionForm.tsx"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,UAAU,mBAAmB;IAC3B,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAimBxD,CAAC"}
|
|
@@ -6,8 +6,7 @@ import { useChatBot } from '../context/ChatBotContext';
|
|
|
6
6
|
import { walletTextUtils } from '@bytexbyte/nxtlinq-ai-agent-web-development';
|
|
7
7
|
import { actionButton } from './styles/isolatedStyles';
|
|
8
8
|
export const PermissionForm = ({ onClose }) => {
|
|
9
|
-
const { hitAddress, permissions,
|
|
10
|
-
const [availablePermissions, setAvailablePermissions] = React.useState([]);
|
|
9
|
+
const { hitAddress, permissions, availablePermissions, runtimePermissionsUnavailable, setIsDisabled, onSave, onConnectWallet, onSignIn, isNeedSignInWithWallet, walletInfo, onVerifyWallet, serviceId, isAITLoading, isWalletLoading = false, refreshAIT, props } = useChatBot();
|
|
11
10
|
const [isSaving, setIsSaving] = React.useState(false);
|
|
12
11
|
const [tempPermissions, setTempPermissions] = React.useState(permissions);
|
|
13
12
|
const [hasUserInteracted, setHasUserInteracted] = React.useState(false);
|
|
@@ -34,27 +33,6 @@ export const PermissionForm = ({ onClose }) => {
|
|
|
34
33
|
}
|
|
35
34
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
36
35
|
}, [isAllSelected, availablePermissions.length]);
|
|
37
|
-
const fetchAvailablePermissions = async () => {
|
|
38
|
-
if (!serviceId)
|
|
39
|
-
return;
|
|
40
|
-
try {
|
|
41
|
-
const result = await nxtlinqApi.permissions.getServicePermissions({
|
|
42
|
-
serviceId,
|
|
43
|
-
...(permissionGroup && { groupName: permissionGroup })
|
|
44
|
-
});
|
|
45
|
-
if ('error' in result) {
|
|
46
|
-
console.error('Failed to fetch permissions:', result.error);
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
setAvailablePermissions(result.permissions);
|
|
50
|
-
}
|
|
51
|
-
catch (error) {
|
|
52
|
-
console.error('Error fetching permissions:', error);
|
|
53
|
-
}
|
|
54
|
-
};
|
|
55
|
-
React.useEffect(() => {
|
|
56
|
-
fetchAvailablePermissions();
|
|
57
|
-
}, [serviceId, nxtlinqApi, permissionGroup]);
|
|
58
36
|
// Refresh wallet info when component mounts or when hitAddress changes
|
|
59
37
|
React.useEffect(() => {
|
|
60
38
|
if (hitAddress) {
|
|
@@ -82,8 +60,6 @@ export const PermissionForm = ({ onClose }) => {
|
|
|
82
60
|
const handleSave = async () => {
|
|
83
61
|
setIsSaving(true);
|
|
84
62
|
try {
|
|
85
|
-
// Update the actual permissions with temp permissions
|
|
86
|
-
setPermissions(tempPermissions);
|
|
87
63
|
await onSave(tempPermissions);
|
|
88
64
|
setHasUserInteracted(false);
|
|
89
65
|
}
|
|
@@ -351,7 +327,17 @@ export const PermissionForm = ({ onClose }) => {
|
|
|
351
327
|
border: 1px solid #e9ecef !important;
|
|
352
328
|
text-align: center !important;
|
|
353
329
|
color: #666 !important;
|
|
354
|
-
`, children: "Loading permissions..." })) : (
|
|
330
|
+
`, children: "Loading permissions..." })) : runtimePermissionsUnavailable ? (_jsxs("div", { css: css `
|
|
331
|
+
background-color: #fff4e5 !important;
|
|
332
|
+
padding: 16px !important;
|
|
333
|
+
border-radius: 8px !important;
|
|
334
|
+
border: 1px solid #ffb74d !important;
|
|
335
|
+
text-align: center !important;
|
|
336
|
+
color: #8a4b00 !important;
|
|
337
|
+
`, children: ["Permissions are unavailable. Retry to load the authoritative state.", _jsx("button", { type: "button", onClick: () => refreshAIT(), css: css `
|
|
338
|
+
display: block !important;
|
|
339
|
+
margin: 12px auto 0 !important;
|
|
340
|
+
`, children: "Retry" })] })) : (_jsx("div", { css: css `
|
|
355
341
|
background-color: #f8f9fa !important;
|
|
356
342
|
padding: 16px !important;
|
|
357
343
|
border-radius: 8px !important;
|
|
@@ -409,7 +395,7 @@ export const PermissionForm = ({ onClose }) => {
|
|
|
409
395
|
setHasUserInteracted(true);
|
|
410
396
|
setIsDisabled(false);
|
|
411
397
|
}
|
|
412
|
-
}, disabled: isAITLoading || isOtherPermissionDisabled, css: css `
|
|
398
|
+
}, disabled: isAITLoading || runtimePermissionsUnavailable || isOtherPermissionDisabled, css: css `
|
|
413
399
|
margin: 0 !important;
|
|
414
400
|
width: 18px !important;
|
|
415
401
|
height: 18px !important;
|
|
@@ -442,7 +428,7 @@ export const PermissionForm = ({ onClose }) => {
|
|
|
442
428
|
background-color: #e9ecef !important;
|
|
443
429
|
border-color: #ced4da !important;
|
|
444
430
|
}
|
|
445
|
-
`, children: "Cancel" }), _jsx("button", { onClick: handleSave, disabled: !hasPermissionChanges() || isSaving || isAITLoading, css: css `
|
|
431
|
+
`, children: "Cancel" }), _jsx("button", { onClick: handleSave, disabled: !hasPermissionChanges() || isSaving || isAITLoading || runtimePermissionsUnavailable, css: css `
|
|
446
432
|
padding: 10px 20px !important;
|
|
447
433
|
background-color: ${!hasPermissionChanges() || isSaving || isAITLoading ? '#e9ecef' : '#007bff'} !important;
|
|
448
434
|
color: ${!hasPermissionChanges() || isSaving || isAITLoading ? '#6c757d' : 'white'} !important;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bytexbyte/nxtlinq-ai-agent-ui-react-development",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"description": "Official React Web UI for nxtlinq AI Agent — drop-in chat widget",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -38,8 +38,8 @@
|
|
|
38
38
|
"react-dom": ">=18.0.0"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@bytexbyte/nxtlinq-ai-agent-core-development": "0.
|
|
42
|
-
"@bytexbyte/nxtlinq-ai-agent-web-development": "0.
|
|
41
|
+
"@bytexbyte/nxtlinq-ai-agent-core-development": "2.0.0",
|
|
42
|
+
"@bytexbyte/nxtlinq-ai-agent-web-development": "1.0.0",
|
|
43
43
|
"@emotion/react": "^11.14.0",
|
|
44
44
|
"@emotion/styled": "^11.14.1",
|
|
45
45
|
"@mui/icons-material": "^7.2.0",
|