Shoraky commited on
Commit
a80fddd
·
1 Parent(s): f5af86b

Fix agent feedback response field mapping

Browse files
Files changed (1) hide show
  1. src/agent-session.ts +19 -6
src/agent-session.ts CHANGED
@@ -145,18 +145,31 @@ export async function generateSessionFeedback(db: SupabaseClient, sessionId: str
145
  body: JSON.stringify({ session_id: sessionId, player, actions }),
146
  signal: AbortSignal.timeout(150000),
147
  });
148
- const payload = await response.json().catch(() => ({})) as { actions?: { action_id: string; feedback: string[] }[]; session_feedback?: string[]; detail?: string };
149
- if (!response.ok || !payload.actions || !payload.session_feedback) throw new Error(payload.detail ?? `Agent generation failed (${response.status})`);
150
- for (const item of payload.actions) {
151
- const { error } = await db.from("actions_feedbacks").delete().eq("action_id", item.action_id);
 
 
 
 
 
 
 
 
 
 
 
 
 
152
  if (error) throw new Error(`Unable to replace generated action feedback: ${error.message}`);
153
  if (item.feedback.length) {
154
- const inserted = await db.from("actions_feedbacks").insert(item.feedback.map((feedback) => ({ action_id: item.action_id, feedback })));
155
  if (inserted.error) throw new Error(`Unable to save generated action feedback: ${inserted.error.message}`);
156
  }
157
  }
158
  const { error: clearError } = await db.from("sessions_feedbacks").delete().eq("session_id", sessionId);
159
  if (clearError) throw new Error(`Unable to replace generated session feedback: ${clearError.message}`);
160
- const { error: saveError } = await db.from("sessions_feedbacks").insert(payload.session_feedback.map((feedback) => ({ session_id: sessionId, feedback })));
161
  if (saveError) throw new Error(`Unable to save generated session feedback: ${saveError.message}`);
162
  }
 
145
  body: JSON.stringify({ session_id: sessionId, player, actions }),
146
  signal: AbortSignal.timeout(150000),
147
  });
148
+ const payload = await response.json().catch(() => ({})) as {
149
+ actions?: { action_id?: string; actionId?: string; feedback: string[] }[];
150
+ session_feedback?: string[];
151
+ sessionFeedback?: string[];
152
+ detail?: string;
153
+ };
154
+ const sessionFeedback = payload.session_feedback ?? payload.sessionFeedback;
155
+ const generatedActions = payload.actions?.map((item) => ({
156
+ actionId: item.action_id ?? item.actionId,
157
+ feedback: item.feedback,
158
+ }));
159
+ if (!response.ok || !generatedActions?.length || !sessionFeedback || generatedActions.some((item) => !item.actionId)) {
160
+ throw new Error(payload.detail ?? `Agent generation failed (${response.status})`);
161
+ }
162
+ for (const item of generatedActions) {
163
+ const actionId = item.actionId!;
164
+ const { error } = await db.from("actions_feedbacks").delete().eq("action_id", actionId);
165
  if (error) throw new Error(`Unable to replace generated action feedback: ${error.message}`);
166
  if (item.feedback.length) {
167
+ const inserted = await db.from("actions_feedbacks").insert(item.feedback.map((feedback) => ({ action_id: actionId, feedback })));
168
  if (inserted.error) throw new Error(`Unable to save generated action feedback: ${inserted.error.message}`);
169
  }
170
  }
171
  const { error: clearError } = await db.from("sessions_feedbacks").delete().eq("session_id", sessionId);
172
  if (clearError) throw new Error(`Unable to replace generated session feedback: ${clearError.message}`);
173
+ const { error: saveError } = await db.from("sessions_feedbacks").insert(sessionFeedback.map((feedback) => ({ session_id: sessionId, feedback })));
174
  if (saveError) throw new Error(`Unable to save generated session feedback: ${saveError.message}`);
175
  }