@@ -18,7 +18,7 @@ test("returns default native agents when no config", async () => {
1818 fn : async ( ) => {
1919 const agents = await Agent . list ( )
2020 const names = agents . map ( ( a ) => a . name )
21- expect ( names ) . toContain ( "build " )
21+ expect ( names ) . toContain ( "builder " )
2222 expect ( names ) . toContain ( "plan" )
2323 expect ( names ) . toContain ( "general" )
2424 expect ( names ) . toContain ( "explore" )
@@ -34,7 +34,7 @@ test("build agent has correct default properties", async () => {
3434 await Instance . provide ( {
3535 directory : tmp . path ,
3636 fn : async ( ) => {
37- const build = await Agent . get ( "build " )
37+ const build = await Agent . get ( "builder " )
3838 expect ( build ) . toBeDefined ( )
3939 expect ( build ?. mode ) . toBe ( "primary" )
4040 expect ( build ?. native ) . toBe ( true )
@@ -152,7 +152,7 @@ test("custom agent config overrides native agent properties", async () => {
152152 await using tmp = await tmpdir ( {
153153 config : {
154154 agent : {
155- build : {
155+ builder : {
156156 model : "anthropic/claude-3" ,
157157 description : "Custom build agent" ,
158158 temperature : 0.7 ,
@@ -164,7 +164,7 @@ test("custom agent config overrides native agent properties", async () => {
164164 await Instance . provide ( {
165165 directory : tmp . path ,
166166 fn : async ( ) => {
167- const build = await Agent . get ( "build " )
167+ const build = await Agent . get ( "builder " )
168168 expect ( build ) . toBeDefined ( )
169169 expect ( build ?. model ?. providerID ) . toBe ( "anthropic" )
170170 expect ( build ?. model ?. modelID ) . toBe ( "claude-3" )
@@ -200,7 +200,7 @@ test("agent permission config merges with defaults", async () => {
200200 await using tmp = await tmpdir ( {
201201 config : {
202202 agent : {
203- build : {
203+ builder : {
204204 permission : {
205205 bash : {
206206 "rm -rf *" : "deny" ,
@@ -213,7 +213,7 @@ test("agent permission config merges with defaults", async () => {
213213 await Instance . provide ( {
214214 directory : tmp . path ,
215215 fn : async ( ) => {
216- const build = await Agent . get ( "build " )
216+ const build = await Agent . get ( "builder " )
217217 expect ( build ) . toBeDefined ( )
218218 // Specific pattern is denied
219219 expect ( PermissionNext . evaluate ( "bash" , "rm -rf *" , build ! . permission ) . action ) . toBe ( "deny" )
@@ -234,7 +234,7 @@ test("global permission config applies to all agents", async () => {
234234 await Instance . provide ( {
235235 directory : tmp . path ,
236236 fn : async ( ) => {
237- const build = await Agent . get ( "build " )
237+ const build = await Agent . get ( "builder " )
238238 expect ( build ) . toBeDefined ( )
239239 expect ( evalPerm ( build , "bash" ) ) . toBe ( "deny" )
240240 } ,
@@ -245,15 +245,15 @@ test("agent steps/maxSteps config sets steps property", async () => {
245245 await using tmp = await tmpdir ( {
246246 config : {
247247 agent : {
248- build : { steps : 50 } ,
248+ builder : { steps : 50 } ,
249249 plan : { maxSteps : 100 } ,
250250 } ,
251251 } ,
252252 } )
253253 await Instance . provide ( {
254254 directory : tmp . path ,
255255 fn : async ( ) => {
256- const build = await Agent . get ( "build " )
256+ const build = await Agent . get ( "builder " )
257257 const plan = await Agent . get ( "plan" )
258258 expect ( build ?. steps ) . toBe ( 50 )
259259 expect ( plan ?. steps ) . toBe ( 100 )
@@ -282,14 +282,14 @@ test("agent name can be overridden", async () => {
282282 await using tmp = await tmpdir ( {
283283 config : {
284284 agent : {
285- build : { name : "Builder" } ,
285+ builder : { name : "Builder" } ,
286286 } ,
287287 } ,
288288 } )
289289 await Instance . provide ( {
290290 directory : tmp . path ,
291291 fn : async ( ) => {
292- const build = await Agent . get ( "build " )
292+ const build = await Agent . get ( "builder " )
293293 expect ( build ?. name ) . toBe ( "Builder" )
294294 } ,
295295 } )
@@ -299,14 +299,14 @@ test("agent prompt can be set from config", async () => {
299299 await using tmp = await tmpdir ( {
300300 config : {
301301 agent : {
302- build : { prompt : "Custom system prompt" } ,
302+ builder : { prompt : "Custom system prompt" } ,
303303 } ,
304304 } ,
305305 } )
306306 await Instance . provide ( {
307307 directory : tmp . path ,
308308 fn : async ( ) => {
309- const build = await Agent . get ( "build " )
309+ const build = await Agent . get ( "builder " )
310310 expect ( build ?. prompt ) . toBe ( "Custom system prompt" )
311311 } ,
312312 } )
@@ -316,7 +316,7 @@ test("unknown agent properties are placed into options", async () => {
316316 await using tmp = await tmpdir ( {
317317 config : {
318318 agent : {
319- build : {
319+ builder : {
320320 random_property : "hello" ,
321321 another_random : 123 ,
322322 } ,
@@ -326,7 +326,7 @@ test("unknown agent properties are placed into options", async () => {
326326 await Instance . provide ( {
327327 directory : tmp . path ,
328328 fn : async ( ) => {
329- const build = await Agent . get ( "build " )
329+ const build = await Agent . get ( "builder " )
330330 expect ( build ?. options . random_property ) . toBe ( "hello" )
331331 expect ( build ?. options . another_random ) . toBe ( 123 )
332332 } ,
@@ -337,7 +337,7 @@ test("agent options merge correctly", async () => {
337337 await using tmp = await tmpdir ( {
338338 config : {
339339 agent : {
340- build : {
340+ builder : {
341341 options : {
342342 custom_option : true ,
343343 another_option : "value" ,
@@ -349,7 +349,7 @@ test("agent options merge correctly", async () => {
349349 await Instance . provide ( {
350350 directory : tmp . path ,
351351 fn : async ( ) => {
352- const build = await Agent . get ( "build " )
352+ const build = await Agent . get ( "builder " )
353353 expect ( build ?. options . custom_option ) . toBe ( true )
354354 expect ( build ?. options . another_option ) . toBe ( "value" )
355355 } ,
@@ -400,7 +400,7 @@ test("default permission includes doom_loop and external_directory as ask", asyn
400400 await Instance . provide ( {
401401 directory : tmp . path ,
402402 fn : async ( ) => {
403- const build = await Agent . get ( "build " )
403+ const build = await Agent . get ( "builder " )
404404 expect ( evalPerm ( build , "doom_loop" ) ) . toBe ( "ask" )
405405 expect ( evalPerm ( build , "external_directory" ) ) . toBe ( "ask" )
406406 } ,
@@ -412,7 +412,7 @@ test("webfetch is allowed by default", async () => {
412412 await Instance . provide ( {
413413 directory : tmp . path ,
414414 fn : async ( ) => {
415- const build = await Agent . get ( "build " )
415+ const build = await Agent . get ( "builder " )
416416 expect ( evalPerm ( build , "webfetch" ) ) . toBe ( "allow" )
417417 } ,
418418 } )
@@ -422,7 +422,7 @@ test("legacy tools config converts to permissions", async () => {
422422 await using tmp = await tmpdir ( {
423423 config : {
424424 agent : {
425- build : {
425+ builder : {
426426 tools : {
427427 bash : false ,
428428 read : false ,
@@ -434,7 +434,7 @@ test("legacy tools config converts to permissions", async () => {
434434 await Instance . provide ( {
435435 directory : tmp . path ,
436436 fn : async ( ) => {
437- const build = await Agent . get ( "build " )
437+ const build = await Agent . get ( "builder " )
438438 expect ( evalPerm ( build , "bash" ) ) . toBe ( "deny" )
439439 expect ( evalPerm ( build , "read" ) ) . toBe ( "deny" )
440440 } ,
@@ -445,7 +445,7 @@ test("legacy tools config maps write/edit/patch/multiedit to edit permission", a
445445 await using tmp = await tmpdir ( {
446446 config : {
447447 agent : {
448- build : {
448+ builder : {
449449 tools : {
450450 write : false ,
451451 } ,
@@ -456,7 +456,7 @@ test("legacy tools config maps write/edit/patch/multiedit to edit permission", a
456456 await Instance . provide ( {
457457 directory : tmp . path ,
458458 fn : async ( ) => {
459- const build = await Agent . get ( "build " )
459+ const build = await Agent . get ( "builder " )
460460 expect ( evalPerm ( build , "edit" ) ) . toBe ( "deny" )
461461 } ,
462462 } )
@@ -474,7 +474,7 @@ test("Truncate.GLOB is allowed even when user denies external_directory globally
474474 await Instance . provide ( {
475475 directory : tmp . path ,
476476 fn : async ( ) => {
477- const build = await Agent . get ( "build " )
477+ const build = await Agent . get ( "builder " )
478478 expect ( PermissionNext . evaluate ( "external_directory" , Truncate . GLOB , build ! . permission ) . action ) . toBe ( "allow" )
479479 expect ( PermissionNext . evaluate ( "external_directory" , Truncate . DIR , build ! . permission ) . action ) . toBe ( "deny" )
480480 expect ( PermissionNext . evaluate ( "external_directory" , "/some/other/path" , build ! . permission ) . action ) . toBe ( "deny" )
@@ -487,7 +487,7 @@ test("Truncate.GLOB is allowed even when user denies external_directory per-agen
487487 await using tmp = await tmpdir ( {
488488 config : {
489489 agent : {
490- build : {
490+ builder : {
491491 permission : {
492492 external_directory : "deny" ,
493493 } ,
@@ -498,7 +498,7 @@ test("Truncate.GLOB is allowed even when user denies external_directory per-agen
498498 await Instance . provide ( {
499499 directory : tmp . path ,
500500 fn : async ( ) => {
501- const build = await Agent . get ( "build " )
501+ const build = await Agent . get ( "builder " )
502502 expect ( PermissionNext . evaluate ( "external_directory" , Truncate . GLOB , build ! . permission ) . action ) . toBe ( "allow" )
503503 expect ( PermissionNext . evaluate ( "external_directory" , Truncate . DIR , build ! . permission ) . action ) . toBe ( "deny" )
504504 expect ( PermissionNext . evaluate ( "external_directory" , "/some/other/path" , build ! . permission ) . action ) . toBe ( "deny" )
@@ -521,7 +521,7 @@ test("explicit Truncate.GLOB deny is respected", async () => {
521521 await Instance . provide ( {
522522 directory : tmp . path ,
523523 fn : async ( ) => {
524- const build = await Agent . get ( "build " )
524+ const build = await Agent . get ( "builder " )
525525 expect ( PermissionNext . evaluate ( "external_directory" , Truncate . GLOB , build ! . permission ) . action ) . toBe ( "deny" )
526526 expect ( PermissionNext . evaluate ( "external_directory" , Truncate . DIR , build ! . permission ) . action ) . toBe ( "deny" )
527527 } ,
@@ -553,7 +553,7 @@ description: Permission skill.
553553 await Instance . provide ( {
554554 directory : tmp . path ,
555555 fn : async ( ) => {
556- const build = await Agent . get ( "build " )
556+ const build = await Agent . get ( "builder " )
557557 const skillDir = path . join ( tmp . path , ".altimate-code" , "skill" , "perm-skill" )
558558 const target = path . join ( skillDir , "reference" , "notes.md" )
559559 expect ( PermissionNext . evaluate ( "external_directory" , target , build ! . permission ) . action ) . toBe ( "allow" )
@@ -570,7 +570,7 @@ test("defaultAgent returns build when no default_agent config", async () => {
570570 directory : tmp . path ,
571571 fn : async ( ) => {
572572 const agent = await Agent . defaultAgent ( )
573- expect ( agent ) . toBe ( "build " )
573+ expect ( agent ) . toBe ( "builder " )
574574 } ,
575575 } )
576576} )
@@ -652,20 +652,20 @@ test("defaultAgent throws when default_agent points to non-existent agent", asyn
652652 } )
653653} )
654654
655- test ( "defaultAgent returns plan when build is disabled and default_agent not set" , async ( ) => {
655+ test ( "defaultAgent returns plan when builder is disabled and default_agent not set" , async ( ) => {
656656 await using tmp = await tmpdir ( {
657657 config : {
658658 agent : {
659- build : { disable : true } ,
659+ builder : { disable : true } ,
660660 } ,
661661 } ,
662662 } )
663663 await Instance . provide ( {
664664 directory : tmp . path ,
665665 fn : async ( ) => {
666666 const agent = await Agent . defaultAgent ( )
667- // build is disabled, so it should return plan ( next primary agent)
668- expect ( agent ) . toBe ( "plan " )
667+ // builder is disabled, so it should return the next primary agent
668+ expect ( agent ) . not . toBe ( "builder " )
669669 } ,
670670 } )
671671} )
@@ -674,15 +674,18 @@ test("defaultAgent throws when all primary agents are disabled", async () => {
674674 await using tmp = await tmpdir ( {
675675 config : {
676676 agent : {
677- build : { disable : true } ,
677+ builder : { disable : true } ,
678+ analyst : { disable : true } ,
679+ validator : { disable : true } ,
680+ migrator : { disable : true } ,
678681 plan : { disable : true } ,
679682 } ,
680683 } ,
681684 } )
682685 await Instance . provide ( {
683686 directory : tmp . path ,
684687 fn : async ( ) => {
685- // build and plan are disabled, no primary-capable agents remain
688+ // all primary agents are disabled, no primary-capable agents remain
686689 await expect ( Agent . defaultAgent ( ) ) . rejects . toThrow ( "no primary visible agent found" )
687690 } ,
688691 } )
0 commit comments