__init__.py 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. import argparse
  2. # 替换相对导入为绝对导入
  3. from core.workflow_navigator import WorkflowNavigator
  4. from core.state_engine import PATEOASStateEngine
  5. from core.memory_pool import GlobalMemoryPool
  6. def main():
  7. parser = argparse.ArgumentParser(description='AceFlow-PATEOAS 工作流引擎')
  8. subparsers = parser.add_subparsers(dest='command')
  9. # 初始化命令
  10. init_parser = subparsers.add_parser('init', help='初始化项目')
  11. init_parser.set_defaults(func=init_project)
  12. # 更新状态命令
  13. status_parser = subparsers.add_parser('update-status', help='更新阶段状态')
  14. status_parser.add_argument('stage_id', help='阶段ID (如S1)')
  15. status_parser.add_argument('progress', type=int, help='进度百分比')
  16. status_parser.set_defaults(func=update_status)
  17. # 获取导航建议命令
  18. suggest_parser = subparsers.add_parser('get-suggestions', help='获取导航建议')
  19. suggest_parser.set_defaults(func=get_suggestions)
  20. # 记录异常命令
  21. abn_parser = subparsers.add_parser('record-abnormality', help='记录异常状态')
  22. abn_parser.add_argument('stage_id', help='阶段ID')
  23. abn_parser.add_argument('description', help='异常描述')
  24. abn_parser.add_argument('--severity', default='medium', help='严重程度 (high/medium/low)')
  25. abn_parser.set_defaults(func=record_abnormality)
  26. # 解决异常命令
  27. resolve_parser = subparsers.add_parser('resolve-abnormality', help='解决异常状态')
  28. resolve_parser.add_argument('abnormality_id', help='异常ID')
  29. resolve_parser.set_defaults(func=resolve_abnormality)
  30. # 确定流程分支命令
  31. workflow_parser = subparsers.add_parser('determine-workflow', help='确定流程分支')
  32. workflow_parser.add_argument('task_description', help='任务描述')
  33. workflow_parser.set_defaults(func=determine_workflow)
  34. args = parser.parse_args()
  35. if hasattr(args, 'func'):
  36. args.func(args)
  37. else:
  38. parser.print_help()
  39. def init_project(args):
  40. """初始化项目结构"""
  41. state_engine = PATEOASStateEngine()
  42. memory_pool = GlobalMemoryPool()
  43. print("项目初始化完成,状态文件和记忆池已创建")
  44. def update_status(args):
  45. """更新阶段状态"""
  46. state_engine = PATEOASStateEngine()
  47. state_engine.update_stage_progress(args.stage_id, args.progress)
  48. print(f"已更新 {args.stage_id} 进度至 {args.progress}%")
  49. def get_suggestions(args):
  50. """获取导航建议"""
  51. state_engine = PATEOASStateEngine()
  52. suggestions = state_engine.get_navigation_suggestion()
  53. if suggestions:
  54. print("导航建议:")
  55. for s in suggestions:
  56. print(f"- [{s['priority']}] {s['message']}")
  57. else:
  58. print("当前无特殊导航建议,按计划进行下一阶段")
  59. def record_abnormality(args):
  60. """记录异常状态"""
  61. state_engine = PATEOASStateEngine()
  62. abn = state_engine.record_abnormality(args.stage_id, args.description, args.severity)
  63. print(f"已记录异常: {abn['id']}")
  64. print(f"描述: {abn['description']}")
  65. def resolve_abnormality(args):
  66. """解决异常状态"""
  67. state_engine = PATEOASStateEngine()
  68. success = state_engine.resolve_abnormality(args.abnormality_id)
  69. if success:
  70. print(f"异常 {args.abnormality_id} 已标记为已解决")
  71. else:
  72. print(f"未找到异常 {args.abnormality_id} 或已解决")
  73. def determine_workflow(args):
  74. """确定流程分支"""
  75. navigator = WorkflowNavigator()
  76. workflow_type = navigator.determine_workflow(args.task_description)
  77. workflow_path = navigator.get_workflow_path(workflow_type)
  78. print(f"推荐流程分支: {workflow_type}")
  79. print(f"阶段路径: {' → '.join(workflow_path)}")
  80. # 更新状态中的流程类型
  81. state_engine = PATEOASStateEngine()
  82. state = state_engine.get_current_state()
  83. state['workflow_type'] = workflow_type
  84. state_engine.save_state(state)