File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -285,7 +285,7 @@ static void cmd_memories(int argc, char **argv)
285285#ifdef CONFIG_RTCLAW_SKILL_ENABLE
286286#define SKILL_REPLY_SIZE 2048
287287
288- static void cmd_skill (int argc , char * * argv )
288+ static void cmd_skills (int argc , char * * argv )
289289{
290290 if (argc < 2 ) {
291291 char buf [512 ];
@@ -438,7 +438,7 @@ const shell_cmd_t shell_common_commands[] = {
438438 SHELL_CMD ("/forget" , cmd_forget , "Delete a long-term memory" ),
439439 SHELL_CMD ("/memories" , cmd_memories , "List long-term memories" ),
440440#ifdef CONFIG_RTCLAW_SKILL_ENABLE
441- SHELL_CMD ("/skill " , cmd_skill , "List or execute a skill" ),
441+ SHELL_CMD ("/skills " , cmd_skills , "List or execute a skill" ),
442442#endif
443443#ifdef CONFIG_RTCLAW_SCHED_ENABLE
444444 SHELL_CMD ("/task" , cmd_task , "Tasks [rm <name>]" ),
Original file line number Diff line number Diff line change @@ -499,17 +499,24 @@ static void dispatch_command(char *line)
499499#ifdef CONFIG_RTCLAW_SKILL_ENABLE
500500 /* Try dynamic skill as last resort */
501501 {
502- char * skill_reply = claw_malloc (SKILL_REPLY_SIZE );
503- if (skill_reply && ai_skill_try_command (argv [0 ], argc , argv ,
504- skill_reply ,
505- SKILL_REPLY_SIZE )
506- == CLAW_OK ) {
507- printf ("\n" CLR_GREEN "rt-claw> " CLR_RESET "%s\n" ,
508- skill_reply );
509- claw_free (skill_reply );
502+ const char * sname = argv [0 ];
503+ if (sname [0 ] == '/' ) {
504+ sname ++ ;
505+ }
506+ if (ai_skill_find (sname )) {
507+ char * skill_reply = claw_malloc (SKILL_REPLY_SIZE );
508+ if (skill_reply ) {
509+ if (ai_skill_try_command (argv [0 ], argc , argv ,
510+ skill_reply ,
511+ SKILL_REPLY_SIZE )
512+ == CLAW_OK ) {
513+ printf ("\n" CLR_GREEN "rt-claw> " CLR_RESET
514+ "%s\n" , skill_reply );
515+ }
516+ claw_free (skill_reply );
517+ }
510518 return ;
511519 }
512- claw_free (skill_reply );
513520 }
514521#endif
515522
Original file line number Diff line number Diff line change @@ -428,17 +428,24 @@ static void dispatch_command(char *line)
428428
429429#ifdef CONFIG_RTCLAW_SKILL_ENABLE
430430 {
431- char * skill_reply = claw_malloc (SKILL_REPLY_SIZE );
432- if (skill_reply &&
433- ai_skill_try_command (argv [0 ], argc , argv ,
434- skill_reply ,
435- SKILL_REPLY_SIZE ) == CLAW_OK ) {
436- printf ("\n" CLR_GREEN "rt-claw> " CLR_RESET
437- "%s\n" , skill_reply );
438- claw_free (skill_reply );
431+ const char * sname = argv [0 ];
432+ if (sname [0 ] == '/' ) {
433+ sname ++ ;
434+ }
435+ if (ai_skill_find (sname )) {
436+ char * skill_reply = claw_malloc (SKILL_REPLY_SIZE );
437+ if (skill_reply ) {
438+ if (ai_skill_try_command (argv [0 ], argc , argv ,
439+ skill_reply ,
440+ SKILL_REPLY_SIZE )
441+ == CLAW_OK ) {
442+ printf ("\n" CLR_GREEN "rt-claw> " CLR_RESET
443+ "%s\n" , skill_reply );
444+ }
445+ claw_free (skill_reply );
446+ }
439447 return ;
440448 }
441- claw_free (skill_reply );
442449 }
443450#endif
444451
Original file line number Diff line number Diff line change @@ -473,19 +473,25 @@ static void dispatch_command(char *line)
473473 }
474474
475475#ifdef CONFIG_RTCLAW_SKILL_ENABLE
476- /* Try dynamic skill as last resort */
477476 {
478- char * skill_reply = claw_malloc (SKILL_REPLY_SIZE );
479- if (skill_reply && ai_skill_try_command (argv [0 ], argc , argv ,
480- skill_reply ,
481- SKILL_REPLY_SIZE )
482- == CLAW_OK ) {
483- printf ("\n" CLR_GREEN "rt-claw> " CLR_RESET "%s\n" ,
484- skill_reply );
485- claw_free (skill_reply );
477+ const char * sname = argv [0 ];
478+ if (sname [0 ] == '/' ) {
479+ sname ++ ;
480+ }
481+ if (ai_skill_find (sname )) {
482+ char * skill_reply = claw_malloc (SKILL_REPLY_SIZE );
483+ if (skill_reply ) {
484+ if (ai_skill_try_command (argv [0 ], argc , argv ,
485+ skill_reply ,
486+ SKILL_REPLY_SIZE )
487+ == CLAW_OK ) {
488+ printf ("\n" CLR_GREEN "rt-claw> " CLR_RESET
489+ "%s\n" , skill_reply );
490+ }
491+ claw_free (skill_reply );
492+ }
486493 return ;
487494 }
488- claw_free (skill_reply );
489495 }
490496#endif
491497
You can’t perform that action at this time.
0 commit comments