@@ -358,41 +358,57 @@ async def plan_approval(
358358 status_code = 401 , detail = "Missing or invalid user information"
359359 )
360360 # Set the approval in the orchestration config
361- if user_id and human_feedback .m_plan_id :
362- if (
363- orchestration_config
364- and human_feedback .m_plan_id in orchestration_config .approvals
365- ):
366- orchestration_config .approvals [human_feedback .m_plan_id ] = (
367- human_feedback .approved
368- )
369- orchestration_config .plans [human_feedback .m_plan_id ][
370- "plan_id"
371- ] = human_feedback .plan_id
372- print ("Plan approval received:" , human_feedback )
373- print (
374- "Updated orchestration config:" ,
375- orchestration_config .plans [human_feedback .m_plan_id ],
376- )
377- track_event_if_configured (
378- "PlanApprovalReceived" ,
379- {
380- "plan_id" : human_feedback .plan_id ,
381- "m_plan_id" : human_feedback .m_plan_id ,
382- "approved" : human_feedback .approved ,
383- "user_id" : user_id ,
384- "feedback" : human_feedback .feedback ,
385- },
386- )
387- return {"status" : "approval recorded" }
388- else :
389- logging .warning (
390- f"No orchestration or plan found for plan_id: { human_feedback .m_plan_id } "
391- )
392- raise HTTPException (
393- status_code = 404 , detail = "No active plan found for approval"
394- )
395-
361+ try :
362+ if user_id and human_feedback .m_plan_id :
363+ if (
364+ orchestration_config
365+ and human_feedback .m_plan_id in orchestration_config .approvals
366+ ):
367+ orchestration_config .approvals [human_feedback .m_plan_id ] = (
368+ human_feedback .approved
369+ )
370+ # orchestration_config.plans[human_feedback.m_plan_id][
371+ # "plan_id"
372+ # ] = human_feedback.plan_id
373+ print ("Plan approval received:" , human_feedback )
374+ # print(
375+ # "Updated orchestration config:",
376+ # orchestration_config.plans[human_feedback.m_plan_id],
377+ # )
378+ try :
379+ plan = orchestration_config .plans [human_feedback .m_plan_id ]
380+ if hasattr (plan , 'plan_id' ):
381+ print (
382+ "Updated orchestration config:" ,
383+ orchestration_config .plans [human_feedback .m_plan_id ],
384+ )
385+ plan .plan_id = human_feedback .plan_id
386+ orchestration_config .plans [human_feedback .m_plan_id ] = plan
387+ except Exception as e :
388+ print (f"Error processing plan approval: { e } " )
389+ track_event_if_configured (
390+ "PlanApprovalReceived" ,
391+ {
392+ "plan_id" : human_feedback .plan_id ,
393+ "m_plan_id" : human_feedback .m_plan_id ,
394+ "approved" : human_feedback .approved ,
395+ "user_id" : user_id ,
396+ "feedback" : human_feedback .feedback ,
397+ },
398+ )
399+ return {"status" : "approval recorded" }
400+ else :
401+ logging .warning (
402+ f"No orchestration or plan found for plan_id: { human_feedback .m_plan_id } "
403+ )
404+ raise HTTPException (
405+ status_code = 404 , detail = "No active plan found for approval"
406+ )
407+ except Exception as e :
408+ logging .error (f"Error processing plan approval: { e } " )
409+ raise HTTPException (
410+ status_code = 500 , detail = "Internal server error"
411+ )
396412
397413@app_v3 .post ("/user_clarification" )
398414async def user_clarification (
0 commit comments