@@ -65,69 +65,59 @@ export default function ToolConfigModal({
6565
6666 // load tool config
6767 useEffect ( ( ) => {
68+ const buildDefaultParams = ( ) =>
69+ ( tool ?. initParams || [ ] ) . map ( ( param ) => ( {
70+ ...param ,
71+ value : param . value ,
72+ } ) ) ;
73+
6874 const loadToolConfig = async ( ) => {
69- if ( tool && mainAgentId ) {
70- setIsLoading ( true ) ;
71- try {
72- const result = await searchToolConfig ( parseInt ( tool . id ) , mainAgentId ) ;
73- if ( result . success ) {
74- if ( result . data ?. params ) {
75- // use backend returned config content
76- const savedParams = tool . initParams . map ( ( param ) => {
77- // if backend returned config has this param value, use backend returned value
78- // otherwise use param default value
79- const savedValue = result . data . params [ param . name ] ;
80- return {
81- ...param ,
82- value : savedValue !== undefined ? savedValue : param . value ,
83- } ;
84- } ) ;
85- setCurrentParams ( savedParams ) ;
86- } else {
87- // if backend returned params is null, means no saved config, use default config
88- setCurrentParams (
89- tool . initParams . map ( ( param ) => ( {
90- ...param ,
91- value : param . value , // use default value
92- } ) )
93- ) ;
94- }
95- } else {
96- message . error ( result . message || t ( "toolConfig.message.loadError" ) ) ;
97- // when load failed, use default config
98- setCurrentParams (
99- tool . initParams . map ( ( param ) => ( {
75+ if ( ! tool ) {
76+ setCurrentParams ( [ ] ) ;
77+ return ;
78+ }
79+
80+ // In creation mode we do not have an agent ID yet, so use the tool's default params.
81+ if ( ! mainAgentId ) {
82+ setCurrentParams ( buildDefaultParams ( ) ) ;
83+ return ;
84+ }
85+
86+ setIsLoading ( true ) ;
87+ try {
88+ const result = await searchToolConfig ( parseInt ( tool . id ) , mainAgentId ) ;
89+ if ( result . success ) {
90+ if ( result . data ?. params ) {
91+ const savedParams = tool . initParams . map ( ( param ) => {
92+ const savedValue = result . data . params [ param . name ] ;
93+ return {
10094 ...param ,
101- value : param . value ,
102- } ) )
103- ) ;
95+ value : savedValue !== undefined ? savedValue : param . value ,
96+ } ;
97+ } ) ;
98+ setCurrentParams ( savedParams ) ;
99+ } else {
100+ setCurrentParams ( buildDefaultParams ( ) ) ;
104101 }
105- } catch ( error ) {
106- log . error ( t ( "toolConfig.message.loadError" ) , error ) ;
107- message . error ( t ( "toolConfig.message.loadErrorUseDefault" ) ) ;
108- // when error occurs, use default config
109- setCurrentParams (
110- tool . initParams . map ( ( param ) => ( {
111- ...param ,
112- value : param . value ,
113- } ) )
114- ) ;
115- } finally {
116- setIsLoading ( false ) ;
102+ } else {
103+ message . error ( result . message || t ( "toolConfig.message.loadError" ) ) ;
104+ setCurrentParams ( buildDefaultParams ( ) ) ;
117105 }
118- } else {
119- // if there is no tool or mainAgentId, clear params
120- setCurrentParams ( [ ] ) ;
106+ } catch ( error ) {
107+ log . error ( t ( "toolConfig.message.loadError" ) , error ) ;
108+ message . error ( t ( "toolConfig.message.loadErrorUseDefault" ) ) ;
109+ setCurrentParams ( buildDefaultParams ( ) ) ;
110+ } finally {
111+ setIsLoading ( false ) ;
121112 }
122113 } ;
123114
124115 if ( isOpen && tool ) {
125116 loadToolConfig ( ) ;
126117 } else {
127- // when modal is closed, clear params
128118 setCurrentParams ( [ ] ) ;
129119 }
130- } , [ isOpen , tool , mainAgentId , t ] ) ;
120+ } , [ isOpen , tool , mainAgentId , t , message ] ) ;
131121
132122 // check required fields
133123 const checkRequiredFields = ( ) => {
0 commit comments