openmanus.cpp/include/tools/planning.h

73 lines
1.6 KiB
C
Raw Permalink Normal View History

2025-03-10 02:38:39 +08:00
#ifndef OPENMANUS_TOOLS_PLANNING_H
#define OPENMANUS_TOOLS_PLANNING_H
#include "../tool_base.h"
#include <string>
#include <vector>
#include <unordered_map>
namespace openmanus {
/**
* @class Planning
* @brief
*/
class Planning : public ToolBase {
public:
Planning();
virtual ~Planning() = default;
/**
* @brief
* @param params
* @return
*/
virtual mcp::json execute(const mcp::json& params) override;
private:
/**
* @brief
* @param params
* @return
*/
mcp::json createPlan(const mcp::json& params);
/**
* @brief
* @param params
* @return
*/
mcp::json getPlanStatus(const mcp::json& params);
/**
* @brief
* @param params
* @return
*/
mcp::json updateStepStatus(const mcp::json& params);
/**
* @brief
* @param params
* @return
*/
mcp::json addStep(const mcp::json& params);
private:
// 计划结构
struct Plan {
std::string id;
std::string title;
std::string description;
std::vector<std::string> step_ids;
std::unordered_map<std::string, std::string> step_descriptions;
std::unordered_map<std::string, std::string> step_statuses;
int current_step_index;
};
std::unordered_map<std::string, Plan> plans_;
};
} // namespace openmanus
#endif // OPENMANUS_TOOLS_PLANNING_H