()
| 310 | |
| 311 | |
| 312 | def main(): |
| 313 | parser = argparse.ArgumentParser(description='三省六部 Skill 管理工具', |
| 314 | formatter_class=argparse.RawDescriptionHelpFormatter) |
| 315 | subparsers = parser.add_subparsers(dest='cmd', help='命令') |
| 316 | |
| 317 | # add-remote |
| 318 | add_parser = subparsers.add_parser('add-remote', help='从远程 URL 添加 skill') |
| 319 | add_parser.add_argument('--agent', required=True, help='目标 Agent ID') |
| 320 | add_parser.add_argument('--name', required=True, help='Skill 内部名称') |
| 321 | add_parser.add_argument('--source', required=True, help='远程 URL 或本地路径') |
| 322 | add_parser.add_argument('--description', default='', help='Skill 描述') |
| 323 | |
| 324 | # list-remote |
| 325 | subparsers.add_parser('list-remote', help='列出所有远程 skills') |
| 326 | |
| 327 | # update-remote |
| 328 | update_parser = subparsers.add_parser('update-remote', help='更新远程 skill') |
| 329 | update_parser.add_argument('--agent', required=True, help='Agent ID') |
| 330 | update_parser.add_argument('--name', required=True, help='Skill 名称') |
| 331 | |
| 332 | # remove-remote |
| 333 | remove_parser = subparsers.add_parser('remove-remote', help='移除远程 skill') |
| 334 | remove_parser.add_argument('--agent', required=True, help='Agent ID') |
| 335 | remove_parser.add_argument('--name', required=True, help='Skill 名称') |
| 336 | |
| 337 | # import-official-hub |
| 338 | import_parser = subparsers.add_parser('import-official-hub', help='从默认 Skills 源或自定义 Hub 导入 skills') |
| 339 | import_parser.add_argument('--agents', default='', help='逗号分隔的 Agent IDs(可选)') |
| 340 | |
| 341 | # check-updates |
| 342 | check_parser = subparsers.add_parser('check-updates', help='检查更新(未来功能)') |
| 343 | check_parser.add_argument('--interval', default='weekly', |
| 344 | help='检查间隔 (weekly/daily/monthly)') |
| 345 | |
| 346 | args = parser.parse_args() |
| 347 | |
| 348 | if not args.cmd: |
| 349 | parser.print_help() |
| 350 | return |
| 351 | |
| 352 | if args.cmd == 'add-remote': |
| 353 | success = add_remote(args.agent, args.name, args.source, args.description) |
| 354 | sys.exit(0 if success else 1) |
| 355 | |
| 356 | elif args.cmd == 'list-remote': |
| 357 | success = list_remote() |
| 358 | sys.exit(0 if success else 1) |
| 359 | |
| 360 | elif args.cmd == 'update-remote': |
| 361 | success = update_remote(args.agent, args.name) |
| 362 | sys.exit(0 if success else 1) |
| 363 | |
| 364 | elif args.cmd == 'remove-remote': |
| 365 | success = remove_remote(args.agent, args.name) |
| 366 | sys.exit(0 if success else 1) |
| 367 | |
| 368 | elif args.cmd == 'import-official-hub': |
| 369 | agent_list = [a.strip() for a in args.agents.split(',') if a.strip()] if args.agents else [] |
no test coverage detected