@bytexbyte/nxtlinq-ai-agent-sdk 1.3.2 → 1.3.3
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/components/context/ChatBotContext.d.ts.map +1 -1
- package/dist/components/context/ChatBotContext.js +88 -49
- package/dist/components/types/ChatBotTypes.d.ts +1 -0
- package/dist/components/types/ChatBotTypes.d.ts.map +1 -1
- package/dist/components/ui/MessageList.d.ts.map +1 -1
- package/dist/components/ui/MessageList.js +12 -8
- package/package.json +3 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatBotContext.d.ts","sourceRoot":"","sources":["../../../src/components/context/ChatBotContext.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,OAAO,EACL,kBAAkB,EAClB,YAAY,EAGb,MAAM,uBAAuB,CAAC;AAI/B,eAAO,MAAM,UAAU,0BAMtB,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,
|
|
1
|
+
{"version":3,"file":"ChatBotContext.d.ts","sourceRoot":"","sources":["../../../src/components/context/ChatBotContext.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,OAAO,EACL,kBAAkB,EAClB,YAAY,EAGb,MAAM,uBAAuB,CAAC;AAI/B,eAAO,MAAM,UAAU,0BAMtB,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CAk9ClD,CAAC"}
|
|
@@ -45,6 +45,7 @@ availableModels = DEFAULT_AI_MODELS, defaultModelIndex = 0, showModelSelector =
|
|
|
45
45
|
const [justAutoConnected, setJustAutoConnected] = React.useState(false);
|
|
46
46
|
const [nxtlinqAITServiceAccessToken, setNxtlinqAITServiceAccessToken] = useLocalStorage('nxtlinqAITServiceAccessToken', '');
|
|
47
47
|
const [suggestions, setSuggestions] = React.useState(presetMessages);
|
|
48
|
+
const [isAITEnabling, setIsAITEnabling] = React.useState(false);
|
|
48
49
|
// Use refs to get latest state values in hasPermission function
|
|
49
50
|
const hitAddressRef = React.useRef(hitAddress);
|
|
50
51
|
const aitRef = React.useRef(ait);
|
|
@@ -350,9 +351,25 @@ availableModels = DEFAULT_AI_MODELS, defaultModelIndex = 0, showModelSelector =
|
|
|
350
351
|
setJustAutoConnected(false);
|
|
351
352
|
}, 15000); // 15 seconds to allow for full AIT loading process
|
|
352
353
|
onAutoConnect?.(); // Call callback if provided
|
|
353
|
-
// If connection successful, continue with permission check
|
|
354
354
|
// Wait a bit for state to update
|
|
355
355
|
await new Promise(resolve => setTimeout(resolve, 2000));
|
|
356
|
+
// After auto connect, if not signed in, then auto sign-in
|
|
357
|
+
const tokenAfterConnect = nxtlinqAITServiceAccessTokenRef.current;
|
|
358
|
+
if (!tokenAfterConnect) {
|
|
359
|
+
setIsAutoConnecting(true);
|
|
360
|
+
await signInWallet(false);
|
|
361
|
+
setIsAutoConnecting(false);
|
|
362
|
+
showSuccess('Auto sign-in successful after wallet connect');
|
|
363
|
+
await refreshAIT();
|
|
364
|
+
// Wait for AIT to be fully loaded with polling
|
|
365
|
+
let attempts = 0;
|
|
366
|
+
const maxAttempts = 5;
|
|
367
|
+
while (!aitRef.current && attempts < maxAttempts) {
|
|
368
|
+
await new Promise(resolve => setTimeout(resolve, 2000));
|
|
369
|
+
attempts++;
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
// If connection (and sign-in if needed) successful, continue with permission check
|
|
356
373
|
const result = await hasPermission(toolName, false);
|
|
357
374
|
return result;
|
|
358
375
|
}
|
|
@@ -674,13 +691,18 @@ availableModels = DEFAULT_AI_MODELS, defaultModelIndex = 0, showModelSelector =
|
|
|
674
691
|
}
|
|
675
692
|
// Only show permission error if AIT is loaded and permissions are not empty
|
|
676
693
|
setIsLoading(false); // Stop thinking before showing message
|
|
677
|
-
|
|
694
|
+
const permissionMsg = `You don't have the required AIT permission: ${toolName}. Would you like to enable AIT permission?`;
|
|
695
|
+
setMessages(prev => [
|
|
696
|
+
...prev,
|
|
697
|
+
{
|
|
678
698
|
id: Date.now().toString(),
|
|
679
|
-
content:
|
|
699
|
+
content: permissionMsg,
|
|
680
700
|
role: 'assistant',
|
|
681
701
|
timestamp: new Date().toISOString(),
|
|
682
|
-
button: 'enableAIT'
|
|
683
|
-
|
|
702
|
+
button: 'enableAIT',
|
|
703
|
+
metadata: { toolName }
|
|
704
|
+
}
|
|
705
|
+
]);
|
|
684
706
|
return false;
|
|
685
707
|
}
|
|
686
708
|
return true;
|
|
@@ -754,13 +776,25 @@ availableModels = DEFAULT_AI_MODELS, defaultModelIndex = 0, showModelSelector =
|
|
|
754
776
|
if (response.toolCall?.toolUse) {
|
|
755
777
|
// Handle tool calls
|
|
756
778
|
const toolUse = response.toolCall.toolUse;
|
|
779
|
+
let toolMsg = '';
|
|
757
780
|
if (onToolUse) {
|
|
758
781
|
let wasAutoConnected = false;
|
|
782
|
+
// Added: Mark if permission denied due to missing AIT permission
|
|
783
|
+
let permissionDenied = false;
|
|
759
784
|
const isToolAllowed = await hasPermission(toolUse.name, true, () => {
|
|
760
785
|
wasAutoConnected = true;
|
|
761
786
|
});
|
|
787
|
+
// If currentPermissions does not include toolName and availablePermissionLabels includes toolName, it means AIT permission is missing
|
|
788
|
+
if (!isToolAllowed && !permissions.includes(toolUse.name) && availablePermissions.map(p => p.label).includes(toolUse.name)) {
|
|
789
|
+
permissionDenied = true;
|
|
790
|
+
}
|
|
762
791
|
if (!isToolAllowed) {
|
|
763
|
-
// If
|
|
792
|
+
// If permission denied due to missing AIT permission, do not retry
|
|
793
|
+
if (permissionDenied) {
|
|
794
|
+
setIsLoading(false);
|
|
795
|
+
return;
|
|
796
|
+
}
|
|
797
|
+
// Only retry for auto-connect/auto-sign-in scenarios
|
|
764
798
|
if (wasAutoConnected && retryCount < 1) {
|
|
765
799
|
console.log('Auto-connected, retrying message...');
|
|
766
800
|
// Clear loading state and retry immediately
|
|
@@ -807,48 +841,44 @@ availableModels = DEFAULT_AI_MODELS, defaultModelIndex = 0, showModelSelector =
|
|
|
807
841
|
return;
|
|
808
842
|
}
|
|
809
843
|
const toolResult = await onToolUse(toolUse);
|
|
810
|
-
|
|
811
|
-
// Ensure the tool result has model information
|
|
812
|
-
botResponse = {
|
|
813
|
-
...toolResult,
|
|
814
|
-
metadata: {
|
|
815
|
-
...toolResult.metadata,
|
|
816
|
-
model: currentModel.value,
|
|
817
|
-
permissions: permissions,
|
|
818
|
-
issuedBy: hitAddress || '',
|
|
819
|
-
toolUse: toolUse
|
|
820
|
-
}
|
|
821
|
-
};
|
|
822
|
-
}
|
|
823
|
-
else {
|
|
824
|
-
botResponse = {
|
|
825
|
-
id: (Date.now() + 1).toString(),
|
|
826
|
-
content: `Tool ${toolUse.name} executed successfully`,
|
|
827
|
-
role: 'assistant',
|
|
828
|
-
timestamp: new Date().toISOString(),
|
|
829
|
-
metadata: {
|
|
830
|
-
model: currentModel.value,
|
|
831
|
-
permissions: permissions,
|
|
832
|
-
issuedBy: hitAddress || '',
|
|
833
|
-
toolUse: toolUse
|
|
834
|
-
}
|
|
835
|
-
};
|
|
836
|
-
}
|
|
844
|
+
toolMsg = toolResult?.content || `Tool ${toolUse.name} executed successfully`;
|
|
837
845
|
}
|
|
838
846
|
else {
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
847
|
+
toolMsg = `Tool ${toolUse.name} executed successfully`;
|
|
848
|
+
}
|
|
849
|
+
// Merge AI original reply
|
|
850
|
+
let replyText = '';
|
|
851
|
+
if (response.reply) {
|
|
852
|
+
replyText = Array.isArray(response.reply)
|
|
853
|
+
? response.reply
|
|
854
|
+
.map((item) => item.text.replace(/<thinking>/g, '').replace(/<\/thinking>/g, ''))
|
|
855
|
+
.join(' ') || ''
|
|
856
|
+
: response.reply.replace(/<thinking>/g, '').replace(/<\/thinking>/g, '') || '';
|
|
857
|
+
}
|
|
858
|
+
else if (response.fullResponse?.output?.message?.content) {
|
|
859
|
+
replyText = response.fullResponse.output.message.content
|
|
860
|
+
?.find((item) => item.text)?.text || '';
|
|
861
|
+
}
|
|
862
|
+
let mergedContent = '';
|
|
863
|
+
if (toolMsg) {
|
|
864
|
+
mergedContent += toolMsg;
|
|
865
|
+
}
|
|
866
|
+
if (replyText && replyText.trim()) {
|
|
867
|
+
mergedContent += `\n\n${replyText}`;
|
|
851
868
|
}
|
|
869
|
+
botResponse = {
|
|
870
|
+
id: (Date.now() + 1).toString(),
|
|
871
|
+
content: mergedContent,
|
|
872
|
+
role: 'assistant',
|
|
873
|
+
timestamp: new Date().toISOString(),
|
|
874
|
+
metadata: {
|
|
875
|
+
model: currentModel.value,
|
|
876
|
+
permissions: permissions,
|
|
877
|
+
issuedBy: hitAddress || '',
|
|
878
|
+
toolUse: toolUse
|
|
879
|
+
}
|
|
880
|
+
};
|
|
881
|
+
setMessages(prev => [...prev, botResponse]);
|
|
852
882
|
}
|
|
853
883
|
else if (response.reply) {
|
|
854
884
|
const replyText = Array.isArray(response.reply)
|
|
@@ -868,6 +898,7 @@ availableModels = DEFAULT_AI_MODELS, defaultModelIndex = 0, showModelSelector =
|
|
|
868
898
|
issuedBy: hitAddress || ''
|
|
869
899
|
}
|
|
870
900
|
};
|
|
901
|
+
setMessages(prev => [...prev, botResponse]);
|
|
871
902
|
}
|
|
872
903
|
else {
|
|
873
904
|
const replyText = response.fullResponse?.output?.message?.content
|
|
@@ -883,8 +914,8 @@ availableModels = DEFAULT_AI_MODELS, defaultModelIndex = 0, showModelSelector =
|
|
|
883
914
|
issuedBy: hitAddress || ''
|
|
884
915
|
}
|
|
885
916
|
};
|
|
917
|
+
setMessages(prev => [...prev, botResponse]);
|
|
886
918
|
}
|
|
887
|
-
setMessages(prev => [...prev, botResponse]);
|
|
888
919
|
}
|
|
889
920
|
catch (error) {
|
|
890
921
|
console.error('Failed to send message:', error);
|
|
@@ -1045,11 +1076,15 @@ availableModels = DEFAULT_AI_MODELS, defaultModelIndex = 0, showModelSelector =
|
|
|
1045
1076
|
setAit(aitInfo);
|
|
1046
1077
|
setPermissions(permissions);
|
|
1047
1078
|
};
|
|
1048
|
-
// Auto enable AIT
|
|
1079
|
+
// Auto enable AIT permission
|
|
1049
1080
|
const autoEnableAIT = async (toolName) => {
|
|
1081
|
+
if (isAITEnabling)
|
|
1082
|
+
return false; // Prevent duplicate
|
|
1083
|
+
setIsAITEnabling(true);
|
|
1050
1084
|
console.log('autoEnableAIT called with toolName:', toolName, 'isFromAIAgent will be set to true');
|
|
1051
1085
|
if (!signer || !hitAddress) {
|
|
1052
1086
|
showError('Please connect your wallet first');
|
|
1087
|
+
setIsAITEnabling(false);
|
|
1053
1088
|
return false;
|
|
1054
1089
|
}
|
|
1055
1090
|
try {
|
|
@@ -1057,6 +1092,7 @@ availableModels = DEFAULT_AI_MODELS, defaultModelIndex = 0, showModelSelector =
|
|
|
1057
1092
|
const availablePermissionLabels = availablePermissions.map(p => p.label);
|
|
1058
1093
|
if (!availablePermissionLabels.includes(toolName)) {
|
|
1059
1094
|
showError(`Tool ${toolName} is not available for your current identity provider`);
|
|
1095
|
+
setIsAITEnabling(false);
|
|
1060
1096
|
return false;
|
|
1061
1097
|
}
|
|
1062
1098
|
// Add the required permission to current permissions
|
|
@@ -1066,17 +1102,19 @@ availableModels = DEFAULT_AI_MODELS, defaultModelIndex = 0, showModelSelector =
|
|
|
1066
1102
|
}
|
|
1067
1103
|
// Generate and register AIT with new permissions (AI Agent creation)
|
|
1068
1104
|
await generateAndRegisterAIT(newPermissions, true);
|
|
1069
|
-
showSuccess('AIT
|
|
1105
|
+
showSuccess('AIT permission enabled successfully! You can now use the AI agent.');
|
|
1070
1106
|
await refreshAIT(true);
|
|
1107
|
+
setIsAITEnabling(false);
|
|
1071
1108
|
return true;
|
|
1072
1109
|
}
|
|
1073
1110
|
catch (error) {
|
|
1074
1111
|
console.error('Failed to auto-enable AIT:', error);
|
|
1112
|
+
setIsAITEnabling(false);
|
|
1075
1113
|
if (error instanceof Error) {
|
|
1076
1114
|
showError(error.message);
|
|
1077
1115
|
}
|
|
1078
1116
|
else {
|
|
1079
|
-
showError('Failed to enable AIT
|
|
1117
|
+
showError('Failed to enable AIT permission. Please try again.');
|
|
1080
1118
|
}
|
|
1081
1119
|
return false;
|
|
1082
1120
|
}
|
|
@@ -1277,6 +1315,7 @@ availableModels = DEFAULT_AI_MODELS, defaultModelIndex = 0, showModelSelector =
|
|
|
1277
1315
|
selectedModelIndex,
|
|
1278
1316
|
showModelSelector: showModelSelectorState,
|
|
1279
1317
|
suggestions,
|
|
1318
|
+
isAITEnabling,
|
|
1280
1319
|
// Actions
|
|
1281
1320
|
setInputValue,
|
|
1282
1321
|
setIsOpen,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatBotTypes.d.ts","sourceRoot":"","sources":["../../../src/components/types/ChatBotTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE9E,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;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAGD,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,iBAAiB,EAAE,OAAO,EAMtC,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAM/C,CAAC;AAEF,MAAM,WAAW,YAAY;IAC3B,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAC1D,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC;QAC7B,KAAK,EAAE,MAAM,CAAC;KACf,GAAG,SAAS,CAAC,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE3B,eAAe,CAAC,EAAE,OAAO,EAAE,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CAC1C;AAED,MAAM,WAAW,kBAAkB;IAEjC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,GAAG,EAAE,GAAG,GAAG,IAAI,CAAC;IAChB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,oBAAoB,EAAE,iBAAiB,EAAE,CAAC;IAC1C,kBAAkB,EAAE,OAAO,CAAC;IAC5B,oBAAoB,EAAE,OAAO,CAAC;IAC9B,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,GAAG,CAAC;IAChB,eAAe,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,YAAY,EAAE;QACZ,IAAI,EAAE,OAAO,CAAC;QACd,IAAI,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;QAC/C,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAEhD,eAAe,EAAE,OAAO,EAAE,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,WAAW,EAAE,aAAa,EAAE,CAAC;IAG7B,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,SAAS,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,qBAAqB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/C,uBAAuB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACjD,cAAc,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAChD,aAAa,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C,kBAAkB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/C,eAAe,EAAE,CAAC,YAAY,EAAE,GAAG,KAAK,IAAI,CAAC;IAE7C,qBAAqB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,oBAAoB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9C,cAAc,EAAE,CAAC,WAAW,EAAE,aAAa,EAAE,KAAK,IAAI,CAAC;IAGvD,aAAa,EAAE,CAAC,qBAAqB,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAChF,YAAY,EAAE,CAAC,sBAAsB,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClE,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,YAAY,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,SAAS,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,mBAAmB,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,CAAC;IACtD,eAAe,EAAE,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACtD,uBAAuB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,UAAU,EAAE,CAAC,sBAAsB,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,cAAc,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,aAAa,EAAE,MAAM,IAAI,CAAC;IAE1B,iBAAiB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,eAAe,EAAE,MAAM,OAAO,CAAC;IAG/B,MAAM,EAAE,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,eAAe,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACnD,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,sBAAsB,EAAE,OAAO,CAAC;IAChC,cAAc,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IAGzB,KAAK,EAAE,YAAY,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB"}
|
|
1
|
+
{"version":3,"file":"ChatBotTypes.d.ts","sourceRoot":"","sources":["../../../src/components/types/ChatBotTypes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageList.d.ts","sourceRoot":"","sources":["../../../src/components/ui/MessageList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"MessageList.d.ts","sourceRoot":"","sources":["../../../src/components/ui/MessageList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAmL/B,CAAC"}
|
|
@@ -3,7 +3,7 @@ import * as React from 'react';
|
|
|
3
3
|
import { useChatBot } from '../context/ChatBotContext';
|
|
4
4
|
import { AI_MODEL_MAP } from '../types/ChatBotTypes';
|
|
5
5
|
export const MessageList = () => {
|
|
6
|
-
const { messages, isLoading, connectWallet, signInWallet, hitAddress, ait, setShowPermissionForm, isWalletLoading, isAutoConnecting, isNeedSignInWithWallet, autoEnableAIT, isAITLoading } = useChatBot();
|
|
6
|
+
const { messages, isLoading, connectWallet, signInWallet, hitAddress, ait, setShowPermissionForm, isWalletLoading, isAutoConnecting, isNeedSignInWithWallet, autoEnableAIT, isAITLoading, isAITEnabling, sendMessage } = useChatBot();
|
|
7
7
|
const messagesEndRef = React.useRef(null);
|
|
8
8
|
const scrollToBottom = () => {
|
|
9
9
|
messagesEndRef.current?.scrollIntoView({ behavior: 'smooth' });
|
|
@@ -23,8 +23,12 @@ export const MessageList = () => {
|
|
|
23
23
|
if (toolName) {
|
|
24
24
|
const success = await autoEnableAIT(toolName);
|
|
25
25
|
if (success) {
|
|
26
|
-
//
|
|
27
|
-
|
|
26
|
+
// Find the last user message
|
|
27
|
+
const lastUserMsg = [...messages].reverse().find(m => m.role === 'user');
|
|
28
|
+
if (lastUserMsg && lastUserMsg.content) {
|
|
29
|
+
// Re-execute the previous user message
|
|
30
|
+
await sendMessage(lastUserMsg.content);
|
|
31
|
+
}
|
|
28
32
|
}
|
|
29
33
|
}
|
|
30
34
|
}
|
|
@@ -58,29 +62,29 @@ export const MessageList = () => {
|
|
|
58
62
|
}, children: [message.metadata?.isRetry && (_jsx("span", { style: { marginRight: '8px', fontSize: '14px' }, children: "\uD83D\uDD04" })), message.content, message.button && (_jsx("div", { style: { marginTop: '10px' }, children: _jsx("button", { onClick: () => handleButtonClick(message.button, message), disabled: isAutoConnecting ||
|
|
59
63
|
(message.button === 'connect' && Boolean(hitAddress)) ||
|
|
60
64
|
(message.button === 'signIn' && !isNeedSignInWithWallet) ||
|
|
61
|
-
(message.button === 'enableAIT' && isAITLoading), style: {
|
|
65
|
+
(message.button === 'enableAIT' && (isAITLoading || isAITEnabling)), style: {
|
|
62
66
|
padding: '8px 16px',
|
|
63
67
|
backgroundColor: message.role === 'user' ? 'rgba(255, 255, 255, 0.2)' :
|
|
64
68
|
isAutoConnecting ? '#6c757d' :
|
|
65
69
|
(message.button === 'connect' && Boolean(hitAddress)) ? '#28a745' :
|
|
66
70
|
(message.button === 'signIn' && !isNeedSignInWithWallet) ? '#28a745' :
|
|
67
|
-
(message.button === 'enableAIT' && isAITLoading) ? '#6c757d' : '#007bff',
|
|
71
|
+
(message.button === 'enableAIT' && (isAITLoading || isAITEnabling)) ? '#6c757d' : '#007bff',
|
|
68
72
|
color: message.role === 'user' ? 'white' : 'white',
|
|
69
73
|
border: 'none',
|
|
70
74
|
borderRadius: '5px',
|
|
71
75
|
cursor: (isAutoConnecting ||
|
|
72
76
|
(message.button === 'connect' && Boolean(hitAddress)) ||
|
|
73
77
|
(message.button === 'signIn' && !isNeedSignInWithWallet) ||
|
|
74
|
-
(message.button === 'enableAIT' && isAITLoading)) ? 'not-allowed' : 'pointer',
|
|
78
|
+
(message.button === 'enableAIT' && (isAITLoading || isAITEnabling))) ? 'not-allowed' : 'pointer',
|
|
75
79
|
fontSize: '14px',
|
|
76
80
|
opacity: (isAutoConnecting ||
|
|
77
81
|
(message.button === 'connect' && Boolean(hitAddress)) ||
|
|
78
82
|
(message.button === 'signIn' && !isNeedSignInWithWallet) ||
|
|
79
|
-
(message.button === 'enableAIT' && isAITLoading)) ? 0.8 : 1
|
|
83
|
+
(message.button === 'enableAIT' && (isAITLoading || isAITEnabling))) ? 0.8 : 1
|
|
80
84
|
}, children: isAutoConnecting ? 'Connecting...' :
|
|
81
85
|
message.button === 'connect' ? (Boolean(hitAddress) ? 'Connected' : 'Connect Wallet') :
|
|
82
86
|
message.button === 'signIn' ? (!isNeedSignInWithWallet ? 'Signed In' : 'Sign In') :
|
|
83
|
-
message.button === 'enableAIT' ? (isAITLoading ? 'Enabling...' : 'Enable AIT Permissions') : message.button }) }))] }), message.role === 'assistant' && message.metadata?.model && (_jsx("div", { style: {
|
|
87
|
+
message.button === 'enableAIT' ? ((isAITLoading || isAITEnabling) ? 'Enabling...' : 'Enable AIT Permissions') : message.button }) }))] }), message.role === 'assistant' && message.metadata?.model && (_jsx("div", { style: {
|
|
84
88
|
display: 'flex',
|
|
85
89
|
alignItems: 'center',
|
|
86
90
|
marginTop: '4px',
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bytexbyte/nxtlinq-ai-agent-sdk",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.3",
|
|
4
4
|
"description": "Nxtlinq AI Agent SDK - Proprietary Software with enhanced async operation handling",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -10,8 +10,7 @@
|
|
|
10
10
|
"scripts": {
|
|
11
11
|
"build": "tsc",
|
|
12
12
|
"prepare": "npm run build",
|
|
13
|
-
"test": "jest"
|
|
14
|
-
"publish": "npm run build && npm pack && npm publish"
|
|
13
|
+
"test": "jest"
|
|
15
14
|
},
|
|
16
15
|
"keywords": [
|
|
17
16
|
"nxtlinq",
|
|
@@ -45,4 +44,4 @@
|
|
|
45
44
|
"microsoft-cognitiveservices-speech-sdk": "^1.45.0",
|
|
46
45
|
"universal-cookie": "^8.0.1"
|
|
47
46
|
}
|
|
48
|
-
}
|
|
47
|
+
}
|