Skip to content

Commit 6d47188

Browse files
committed
feat: script receive error message from chrome extension
1 parent a1d437c commit 6d47188

File tree

3 files changed

+25
-13
lines changed

3 files changed

+25
-13
lines changed

benchmark.py

+5-10
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ def add_task_listener(driver, task_id, max_retries=3):
6262
var eventListener = function (e) {{
6363
if (e.detail.type == 'history') {{
6464
if (e.detail.status === 'success' || e.detail.status === 'error') {{
65-
callback({{status: e.detail.status, type: 'history', data: e.detail.data}});
65+
callback({{status: e.detail.status, type: 'history', data: e.detail.data, errorMessage: e.detail.errorMessage}});
6666
document.removeEventListener('TaskUpdate', eventListener); // Optional: remove if you need continuous listening
6767
}}
6868
// Does not do anything when the status is 'running' or 'idle'.
@@ -88,15 +88,10 @@ def handle_event(event_data):
8888
return
8989
if event_data['type'] == 'history':
9090
# Record history when task stops
91-
result = event_data["status"]
92-
# Determine the last action status
93-
history = event_data['data']
94-
last_action = history[-1]["action"]["operation"]["name"]
95-
if last_action == "finish":
96-
result = "success"
97-
else:
98-
result = "fail"
99-
write_history(task_id, history)
91+
if event_data['status'] == 'error':
92+
logging.error(f"Task {task_id} error: {event_data['errorMessage']}")
93+
result = event_data['status']
94+
write_history(task_id, event_data['data'])
10095
attempts = 0
10196
return
10297
if event_data['type'] == 'screenshot':

src/state/currentTask.ts

+5
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ export type CurrentTaskSlice = {
4242
history: TaskHistoryEntry[];
4343
status: "idle" | "running" | "success" | "error" | "interrupted";
4444
knowledgeInUse: Knowledge | null;
45+
errorMessage: string;
4546
actionStatus:
4647
| "idle"
4748
| "attaching-debugger"
@@ -73,6 +74,7 @@ export const createCurrentTaskSlice: MyStateCreator<CurrentTaskSlice> = (
7374
status: "idle",
7475
actionStatus: "idle",
7576
knowledgeInUse: null,
77+
errorMessage: "",
7678
actions: {
7779
runTask: async (onError) => {
7880
const voiceMode = get().settings.voiceMode;
@@ -132,6 +134,7 @@ export const createCurrentTaskSlice: MyStateCreator<CurrentTaskSlice> = (
132134
if (query == null) {
133135
set((state) => {
134136
state.currentTask.status = "error";
137+
state.currentTask.errorMessage = "Query is null.";
135138
});
136139
return false;
137140
}
@@ -239,6 +242,7 @@ export const createCurrentTaskSlice: MyStateCreator<CurrentTaskSlice> = (
239242
if (!pageDOM) {
240243
set((state) => {
241244
state.currentTask.status = "error";
245+
state.currentTask.errorMessage = "No page dom found";
242246
});
243247
break;
244248
}
@@ -278,6 +282,7 @@ export const createCurrentTaskSlice: MyStateCreator<CurrentTaskSlice> = (
278282
onError(e.message);
279283
set((state) => {
280284
state.currentTask.status = "error";
285+
state.currentTask.errorMessage = e.message;
281286
});
282287
} finally {
283288
await detachAllDebuggers();

src/state/store.ts

+15-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
11
import { merge } from "lodash";
22
import { create, StateCreator } from "zustand";
33
import { immer } from "zustand/middleware/immer";
4-
import { createJSONStorage, devtools, persist , subscribeWithSelector } from "zustand/middleware";
4+
import {
5+
createJSONStorage,
6+
devtools,
7+
persist,
8+
subscribeWithSelector,
9+
} from "zustand/middleware";
510
import { createCurrentTaskSlice, CurrentTaskSlice } from "./currentTask";
611
import { createUiSlice, UiSlice } from "./ui";
712
import { createSettingsSlice, SettingsSlice } from "./settings";
@@ -66,11 +71,18 @@ useAppState.subscribe(
6671
(state) => state.currentTask.status,
6772
// eslint-disable-next-line @typescript-eslint/no-unused-vars
6873
(status, previousStatus) => {
69-
chrome.runtime.sendMessage({
74+
const message = {
7075
action: "updateHistory",
7176
status,
7277
history: useAppState.getState().currentTask.history,
73-
});
78+
error: "",
79+
};
80+
81+
if (status === "error") {
82+
message.error = useAppState.getState().currentTask.errorMessage;
83+
}
84+
85+
chrome.runtime.sendMessage(message);
7486
},
7587
{ fireImmediately: true },
7688
);

0 commit comments

Comments
 (0)