@@ -51,6 +51,12 @@ def config_group():
5151@click .option (
5252 "--max-depth" , type = int , help = "Maximum depth for hierarchical decomposition (default: 2)"
5353)
54+ @click .option (
55+ "--request-limit" , type = int , help = "Maximum model requests per agent run (default: 100)"
56+ )
57+ @click .option (
58+ "--agent-retries" , type = int , help = "Retries for a failing agent tool call (default: 3)"
59+ )
5460@click .option (
5561 "--provider" ,
5662 type = click .Choice (
@@ -97,6 +103,8 @@ def config_set(
97103 max_token_per_module : Optional [int ],
98104 max_token_per_leaf_module : Optional [int ],
99105 max_depth : Optional [int ],
106+ request_limit : Optional [int ] = None ,
107+ agent_retries : Optional [int ] = None ,
100108 provider : Optional [str ] = None ,
101109 aws_region : Optional [str ] = None ,
102110 api_version : Optional [str ] = None ,
@@ -166,6 +174,8 @@ def config_set(
166174 max_token_per_module ,
167175 max_token_per_leaf_module ,
168176 max_depth ,
177+ request_limit is not None ,
178+ agent_retries is not None ,
169179 provider ,
170180 aws_region ,
171181 api_version ,
@@ -226,6 +236,16 @@ def config_set(
226236 raise ConfigurationError ("max_depth must be a positive integer" )
227237 validated_data ["max_depth" ] = max_depth
228238
239+ if request_limit is not None :
240+ if request_limit < 1 :
241+ raise ConfigurationError ("request_limit must be a positive integer" )
242+ validated_data ["request_limit" ] = request_limit
243+
244+ if agent_retries is not None :
245+ if agent_retries < 0 :
246+ raise ConfigurationError ("agent_retries must be zero or a positive integer" )
247+ validated_data ["agent_retries" ] = agent_retries
248+
229249 if provider is not None :
230250 validated_data ["provider" ] = provider
231251
@@ -258,6 +278,8 @@ def config_set(
258278 max_token_per_module = validated_data .get ("max_token_per_module" ),
259279 max_token_per_leaf_module = validated_data .get ("max_token_per_leaf_module" ),
260280 max_depth = validated_data .get ("max_depth" ),
281+ request_limit = validated_data .get ("request_limit" ),
282+ agent_retries = validated_data .get ("agent_retries" ),
261283 provider = validated_data .get ("provider" ),
262284 aws_region = validated_data .get ("aws_region" ),
263285 api_version = validated_data .get ("api_version" ),
@@ -311,6 +333,12 @@ def config_set(
311333 if max_depth :
312334 click .secho (f"✓ Max depth: { max_depth } " , fg = "green" )
313335
336+ if request_limit :
337+ click .secho (f"✓ Request limit: { request_limit } " , fg = "green" )
338+
339+ if agent_retries is not None :
340+ click .secho (f"✓ Agent retries: { agent_retries } " , fg = "green" )
341+
314342 if provider :
315343 click .secho (f"✓ Provider: { provider } " , fg = "green" )
316344
@@ -384,6 +412,8 @@ def config_show(output_json: bool):
384412 "max_token_per_module" : config .max_token_per_module if config else 36369 ,
385413 "max_token_per_leaf_module" : config .max_token_per_leaf_module if config else 16000 ,
386414 "max_depth" : config .max_depth if config else 2 ,
415+ "request_limit" : config .request_limit if config else 100 ,
416+ "agent_retries" : config .agent_retries if config else 3 ,
387417 "use_gitignore" : config .use_gitignore if config else True ,
388418 "prompt_caching" : config .prompt_caching if config else True ,
389419 "agent_instructions" : config .agent_instructions .to_dict ()
@@ -450,6 +480,8 @@ def config_show(output_json: bool):
450480 click .secho ("Decomposition Settings" , fg = "cyan" , bold = True )
451481 if config :
452482 click .echo (f" Max Depth: { config .max_depth } " )
483+ click .echo (f" Request Limit: { config .request_limit } " )
484+ click .echo (f" Agent Retries: { config .agent_retries } " )
453485 click .echo (f" Use Gitignore: { config .use_gitignore } " )
454486
455487 click .echo ()
0 commit comments