@reconcrap/boss-recommend-mcp 0.1.13 → 0.1.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -1407,14 +1407,26 @@ class RecommendScreenCli {
|
|
|
1407
1407
|
}
|
|
1408
1408
|
}
|
|
1409
1409
|
|
|
1410
|
+
const isListReadyNow = async () => {
|
|
1411
|
+
const detailState = await this.getDetailClosedState();
|
|
1412
|
+
if (!detailState?.closed) return false;
|
|
1413
|
+
const listState = await this.evaluate(jsGetListState);
|
|
1414
|
+
return Boolean(listState?.ok);
|
|
1415
|
+
};
|
|
1416
|
+
|
|
1410
1417
|
let know = null;
|
|
1411
1418
|
for (let index = 0; index < 10; index += 1) {
|
|
1412
1419
|
await sleep(humanDelay(260, 80));
|
|
1413
1420
|
know = await this.evaluate(jsGetKnowButtonState);
|
|
1414
1421
|
if (know?.ok) break;
|
|
1422
|
+
if (await isListReadyNow()) {
|
|
1423
|
+
log("[打招呼] 未检测到“知道了”弹窗,页面已自动返回列表,继续下一位候选人。");
|
|
1424
|
+
return { actionTaken: "greet", ackMode: "auto_return_no_popup" };
|
|
1425
|
+
}
|
|
1415
1426
|
}
|
|
1416
1427
|
if (!know?.ok) {
|
|
1417
|
-
|
|
1428
|
+
log(`[打招呼] 未检测到“知道了”弹窗(${know?.error || "ACK_BUTTON_NOT_FOUND"}),按无弹窗流程继续。`);
|
|
1429
|
+
return { actionTaken: "greet", ackMode: "no_popup_detected" };
|
|
1418
1430
|
}
|
|
1419
1431
|
|
|
1420
1432
|
try {
|
|
@@ -1422,7 +1434,12 @@ class RecommendScreenCli {
|
|
|
1422
1434
|
} catch {
|
|
1423
1435
|
const fallback = await this.evaluate(jsClickKnowFallback);
|
|
1424
1436
|
if (!fallback?.ok) {
|
|
1425
|
-
|
|
1437
|
+
if (await isListReadyNow()) {
|
|
1438
|
+
log("[打招呼] “知道了”点击兜底失败,但页面已回列表,继续下一位候选人。");
|
|
1439
|
+
return { actionTaken: "greet", ackMode: "ack_click_failed_but_list_ready" };
|
|
1440
|
+
}
|
|
1441
|
+
log(`[打招呼] “知道了”按钮点击失败(${fallback?.error || "unknown"}),后续由详情关闭流程兜底。`);
|
|
1442
|
+
return { actionTaken: "greet", ackMode: "ack_click_failed" };
|
|
1426
1443
|
}
|
|
1427
1444
|
}
|
|
1428
1445
|
|
|
@@ -1430,11 +1447,18 @@ class RecommendScreenCli {
|
|
|
1430
1447
|
await sleep(humanDelay(220, 60));
|
|
1431
1448
|
const state = await this.evaluate(jsGetKnowButtonState);
|
|
1432
1449
|
if (!state?.ok) {
|
|
1433
|
-
return { actionTaken: "greet" };
|
|
1450
|
+
return { actionTaken: "greet", ackMode: "ack_closed" };
|
|
1451
|
+
}
|
|
1452
|
+
if (await isListReadyNow()) {
|
|
1453
|
+
return { actionTaken: "greet", ackMode: "auto_return_after_ack" };
|
|
1434
1454
|
}
|
|
1435
1455
|
}
|
|
1436
1456
|
|
|
1437
|
-
|
|
1457
|
+
if (await isListReadyNow()) {
|
|
1458
|
+
return { actionTaken: "greet", ackMode: "ack_still_visible_but_list_ready" };
|
|
1459
|
+
}
|
|
1460
|
+
log("[打招呼] “知道了”弹窗关闭未确认,后续由详情关闭流程兜底。");
|
|
1461
|
+
return { actionTaken: "greet", ackMode: "ack_close_unconfirmed" };
|
|
1438
1462
|
}
|
|
1439
1463
|
|
|
1440
1464
|
async closeDetailPage(maxRetries = 3) {
|