@joohw/boss-cli 0.1.4 → 0.1.7

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.
Files changed (105) hide show
  1. package/README.md +13 -20
  2. package/dist/browser/auth.d.ts +0 -1
  3. package/dist/browser/auth.d.ts.map +1 -1
  4. package/dist/browser/auth.js +3 -19
  5. package/dist/browser/auth.js.map +1 -1
  6. package/dist/browser/browser_session.d.ts +4 -0
  7. package/dist/browser/browser_session.d.ts.map +1 -1
  8. package/dist/browser/browser_session.js +65 -14
  9. package/dist/browser/browser_session.js.map +1 -1
  10. package/dist/browser/cdp_browser.d.ts +9 -0
  11. package/dist/browser/cdp_browser.d.ts.map +1 -1
  12. package/dist/browser/cdp_browser.js +243 -11
  13. package/dist/browser/cdp_browser.js.map +1 -1
  14. package/dist/browser/chat.d.ts +2 -2
  15. package/dist/browser/chat.d.ts.map +1 -1
  16. package/dist/browser/chat.js +50 -18
  17. package/dist/browser/chat.js.map +1 -1
  18. package/dist/browser/human_delay.d.ts +88 -0
  19. package/dist/browser/human_delay.d.ts.map +1 -0
  20. package/dist/browser/human_delay.js +52 -0
  21. package/dist/browser/human_delay.js.map +1 -0
  22. package/dist/browser/index.d.ts +3 -2
  23. package/dist/browser/index.d.ts.map +1 -1
  24. package/dist/browser/index.js +3 -2
  25. package/dist/browser/index.js.map +1 -1
  26. package/dist/browser/timing.d.ts +7 -0
  27. package/dist/browser/timing.d.ts.map +1 -0
  28. package/dist/browser/timing.js +34 -0
  29. package/dist/browser/timing.js.map +1 -0
  30. package/dist/cli/banner.d.ts.map +1 -1
  31. package/dist/cli/banner.js +43 -9
  32. package/dist/cli/banner.js.map +1 -1
  33. package/dist/cli/cliRouter.d.ts.map +1 -1
  34. package/dist/cli/cliRouter.js +130 -62
  35. package/dist/cli/cliRouter.js.map +1 -1
  36. package/dist/cli/index.js +14 -1
  37. package/dist/cli/index.js.map +1 -1
  38. package/dist/config.d.ts +9 -0
  39. package/dist/config.d.ts.map +1 -1
  40. package/dist/config.js +25 -0
  41. package/dist/config.js.map +1 -1
  42. package/dist/ocr/baidu_ocr.d.ts +11 -0
  43. package/dist/ocr/baidu_ocr.d.ts.map +1 -0
  44. package/dist/ocr/baidu_ocr.js +76 -0
  45. package/dist/ocr/baidu_ocr.js.map +1 -0
  46. package/dist/ocr/index.d.ts +3 -0
  47. package/dist/ocr/index.d.ts.map +1 -0
  48. package/dist/ocr/index.js +3 -0
  49. package/dist/ocr/index.js.map +1 -0
  50. package/dist/ocr/resume_ocr.d.ts +13 -0
  51. package/dist/ocr/resume_ocr.d.ts.map +1 -0
  52. package/dist/ocr/resume_ocr.js +35 -0
  53. package/dist/ocr/resume_ocr.js.map +1 -0
  54. package/dist/toolset/action.d.ts +7 -0
  55. package/dist/toolset/action.d.ts.map +1 -0
  56. package/dist/toolset/action.js +433 -0
  57. package/dist/toolset/action.js.map +1 -0
  58. package/dist/toolset/chat.d.ts +4 -0
  59. package/dist/toolset/chat.d.ts.map +1 -0
  60. package/dist/toolset/chat.js +434 -0
  61. package/dist/toolset/chat.js.map +1 -0
  62. package/dist/toolset/chat_action.d.ts +7 -0
  63. package/dist/toolset/chat_action.d.ts.map +1 -0
  64. package/dist/toolset/chat_action.js +355 -0
  65. package/dist/toolset/chat_action.js.map +1 -0
  66. package/dist/toolset/index.d.ts +18 -1
  67. package/dist/toolset/index.d.ts.map +1 -1
  68. package/dist/toolset/index.js +27 -6
  69. package/dist/toolset/index.js.map +1 -1
  70. package/dist/toolset/jd.d.ts +10 -0
  71. package/dist/toolset/jd.d.ts.map +1 -0
  72. package/dist/toolset/jd.js +418 -0
  73. package/dist/toolset/jd.js.map +1 -0
  74. package/dist/toolset/list.d.ts +4 -0
  75. package/dist/toolset/list.d.ts.map +1 -0
  76. package/dist/toolset/list.js +156 -0
  77. package/dist/toolset/list.js.map +1 -0
  78. package/dist/toolset/list_candidates.d.ts.map +1 -1
  79. package/dist/toolset/list_candidates.js +12 -19
  80. package/dist/toolset/list_candidates.js.map +1 -1
  81. package/dist/toolset/login.d.ts.map +1 -1
  82. package/dist/toolset/login.js +7 -4
  83. package/dist/toolset/login.js.map +1 -1
  84. package/dist/toolset/open_chat.d.ts.map +1 -1
  85. package/dist/toolset/open_chat.js +266 -24
  86. package/dist/toolset/open_chat.js.map +1 -1
  87. package/dist/toolset/search.d.ts +2 -0
  88. package/dist/toolset/search.d.ts.map +1 -0
  89. package/dist/toolset/search.js +174 -0
  90. package/dist/toolset/search.js.map +1 -0
  91. package/dist/toolset/send.d.ts +12 -0
  92. package/dist/toolset/send.d.ts.map +1 -0
  93. package/dist/toolset/send.js +214 -0
  94. package/dist/toolset/send.js.map +1 -0
  95. package/dist/toolset/send_message.d.ts +11 -1
  96. package/dist/toolset/send_message.d.ts.map +1 -1
  97. package/dist/toolset/send_message.js +120 -21
  98. package/dist/toolset/send_message.js.map +1 -1
  99. package/dist/toolset/skill.d.ts +13 -0
  100. package/dist/toolset/skill.d.ts.map +1 -0
  101. package/dist/toolset/skill.js +85 -0
  102. package/dist/toolset/skill.js.map +1 -0
  103. package/package.json +5 -2
  104. package/skills/README.md +11 -0
  105. package/skills/boss-cli/SKILL.md +58 -0
@@ -1,7 +1,4 @@
1
- import { createWaitManualLoginRequiredText, isBossChatIndexUrl, withChatPage } from '../browser/index.js';
2
- function delay(ms) {
3
- return new Promise((resolve) => setTimeout(resolve, ms));
4
- }
1
+ import { createWaitManualLoginRequiredText, isBossChatIndexUrl, LIST_FILTER_GAP_MS, LIST_MIN_BEFORE_EMPTY_OK_MS, LIST_POLL_MS, sleepRandom, withChatPage, } from '../browser/index.js';
5
2
  async function waitForCandidateListSettled(page, opts) {
6
3
  const start = Date.now();
7
4
  let prev = -1;
@@ -24,7 +21,7 @@ async function waitForCandidateListSettled(page, opts) {
24
21
  return;
25
22
  }
26
23
  }
27
- await new Promise((r) => setTimeout(r, opts.pollMs));
24
+ await sleepRandom(opts.pollMsMin, opts.pollMsMax);
28
25
  }
29
26
  }
30
27
  async function clickChatFilterTabAll(page) {
@@ -46,7 +43,6 @@ export async function runGetCandidateList(opts = {}) {
46
43
  return await withChatPage(async (page) => {
47
44
  const currentUrl = page.url();
48
45
  if (!isBossChatIndexUrl(currentUrl)) {
49
- console.error(`[boss-cli] candidate_list not_chat_list url=${currentUrl}`);
50
46
  throw new Error('请先进入聊天列表页(/web/chat/index)再获取候选人列表。');
51
47
  }
52
48
  await page.waitForFunction(`(() => {
@@ -57,16 +53,17 @@ export async function runGetCandidateList(opts = {}) {
57
53
  const list = document.querySelector(".chat-list, .chat-item-list, .geek-list");
58
54
  const hasItems = document.querySelectorAll(".geek-item").length > 0;
59
55
  return !!list || hasItems;
60
- })()`, { timeout: 8_000 });
56
+ })()`, { timeout: 12_000 });
61
57
  await clickChatFilterTabAll(page);
62
- await delay(520);
63
- await delay(450);
58
+ await sleepRandom(LIST_FILTER_GAP_MS.min, LIST_FILTER_GAP_MS.max);
59
+ await sleepRandom(LIST_FILTER_GAP_MS.min, LIST_FILTER_GAP_MS.max);
64
60
  await clickChatFilterTabAll(page);
65
- await delay(520);
61
+ await sleepRandom(LIST_FILTER_GAP_MS.min, LIST_FILTER_GAP_MS.max);
66
62
  await waitForCandidateListSettled(page, {
67
- timeoutMs: 10_000,
68
- pollMs: 220,
69
- minMsBeforeEmptyOk: 2_800,
63
+ timeoutMs: 14_000,
64
+ pollMsMin: LIST_POLL_MS.min,
65
+ pollMsMax: LIST_POLL_MS.max,
66
+ minMsBeforeEmptyOk: LIST_MIN_BEFORE_EMPTY_OK_MS,
70
67
  });
71
68
  const items = (await page.evaluate(`(() => {
72
69
  const norm = (v) => (v ?? "").replace(/\\s+/g, " ").trim();
@@ -87,7 +84,6 @@ export async function runGetCandidateList(opts = {}) {
87
84
  const candidates = items.filter((it) => it.name);
88
85
  const withUnread = candidates.filter((it) => it.unreadCount > 0).length;
89
86
  const visible = unreadOnly ? candidates.filter((it) => it.unreadCount > 0) : candidates;
90
- console.error(`[boss-cli] candidate_list extracted=${candidates.length} withUnreadBadge=${withUnread}`);
91
87
  const lines = visible.map((it, idx) => {
92
88
  const base = `${idx + 1}. ${it.name}${it.job ? `|${it.job}` : ''}`;
93
89
  const meta = [
@@ -99,13 +95,11 @@ export async function runGetCandidateList(opts = {}) {
99
95
  .join('|');
100
96
  return meta ? `${base}|${meta}` : base;
101
97
  });
102
- const logText = lines.length > 0 ? lines.join('\n') : '(empty)';
103
- console.error(`[boss-cli] candidate_list count=${visible.length}\n${logText}`);
104
98
  const previewText = lines.length > 0 ? `候选人明细:\n${lines.join('\n')}` : '候选人明细:暂无。';
105
99
  return [
106
100
  unreadOnly
107
- ? `已获取未读候选人(全部),共 ${visible.length} 条;原始列表共 ${candidates.length} 条;其中 ${withUnread} 人有未读角标。`
108
- : `已获取候选人列表(全部),共 ${candidates.length} 条;其中 ${withUnread} 人有未读角标。`,
101
+ ? `未读筛选:共 ${visible.length} 人(全部列表 ${candidates.length} 人中有未读角标者 ${withUnread} 人)。`
102
+ : `沟通列表共 ${candidates.length} 人,其中 ${withUnread} 人有未读消息。`,
109
103
  previewText,
110
104
  ]
111
105
  .filter(Boolean)
@@ -114,7 +108,6 @@ export async function runGetCandidateList(opts = {}) {
114
108
  }
115
109
  catch (e) {
116
110
  const message = e instanceof Error ? e.message : String(e);
117
- console.error(`[boss-cli] candidate_list error: ${message}`);
118
111
  if (e instanceof Error) {
119
112
  if (e.message.includes('浏览器会话尚未初始化')) {
120
113
  throw new Error(createWaitManualLoginRequiredText('获取候选人列表'));
@@ -1 +1 @@
1
- {"version":3,"file":"list_candidates.js","sourceRoot":"","sources":["../../src/toolset/list_candidates.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"list_candidates.js","sourceRoot":"","sources":["../../src/toolset/list_candidates.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/toolset/login.ts"],"names":[],"mappings":"AAuCA;;;GAGG;AACH,wBAAsB,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,CA4ChD"}
1
+ {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/toolset/login.ts"],"names":[],"mappings":"AAyCA;;;GAGG;AACH,wBAAsB,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,CAiDhD"}
@@ -1,4 +1,4 @@
1
- import { disconnectBrowserSession, ensureAndGetBrowser, ensureBrowserSession, getBrowserRef, getPageRef, setSessionPage, } from '../browser/index.js';
1
+ import { detachBrowserSession, disconnectBrowserSession, ensureAndGetBrowser, ensureBrowserSession, getBrowserRef, getPageRef, setSessionPage, wasLastChromeLaunchHeadless, } from '../browser/index.js';
2
2
  const BOSS_LOGIN_URL = 'https://www.zhipin.com/web/user/?ka=header-login';
3
3
  async function pickExistingPage(browser) {
4
4
  const pages = (await browser.pages()).filter((p) => !p.isClosed());
@@ -34,7 +34,8 @@ export async function runLogin() {
34
34
  const existing = getBrowserRef();
35
35
  try {
36
36
  const args = existing?.process?.()?.spawnargs ?? [];
37
- const isHeadless = args.some((a) => typeof a === 'string' && a.startsWith('--headless'));
37
+ const isHeadless = wasLastChromeLaunchHeadless() ||
38
+ args.some((a) => typeof a === 'string' && a.startsWith('--headless'));
38
39
  if (existing?.connected && isHeadless) {
39
40
  await disconnectBrowserSession().catch(() => { });
40
41
  }
@@ -64,11 +65,13 @@ export async function runLogin() {
64
65
  setSessionPage(page);
65
66
  await page.bringToFront();
66
67
  await page.goto(BOSS_LOGIN_URL, { waitUntil: 'load', timeout: 60_000 });
67
- // 不做任何登录校验:只把浏览器打开到登录页,后续命令会复用该会话。
68
+ await detachBrowserSession();
69
+ // 不做任何登录校验:只把浏览器打开到登录页;立即断开 CDP,CLI 不与浏览器进程长期绑定。
68
70
  return [
69
71
  '✅ 已打开登录页',
70
72
  '请在浏览器中自行完成登录(扫码/验证码/人机验证等)。',
71
- '登录完成后直接在终端运行其它命令即可(例如:boss list-candidates / boss open-chat ...)。',
73
+ 'CLI 已与浏览器断开连接(窗口可继续操作)。',
74
+ '登录完成后请手动关闭浏览器窗口',
72
75
  `登录页:${BOSS_LOGIN_URL}`,
73
76
  ].join('\n');
74
77
  }
@@ -1 +1 @@
1
- {"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/toolset/login.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/toolset/login.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"open_chat.d.ts","sourceRoot":"","sources":["../../src/toolset/open_chat.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAG3C,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,IAAI,EACV,aAAa,EAAE,MAAM,EACrB,KAAK,UAAO,GACX,OAAO,CAAC,MAAM,CAAC,CAgNjB"}
1
+ {"version":3,"file":"open_chat.d.ts","sourceRoot":"","sources":["../../src/toolset/open_chat.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAoO3C,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,IAAI,EACV,aAAa,EAAE,MAAM,EACrB,KAAK,UAAO,GACX,OAAO,CAAC,MAAM,CAAC,CAiQjB"}
@@ -1,4 +1,194 @@
1
- import { isBossChatIndexUrl } from '../browser/index.js';
1
+ import { CHAT_HISTORY_DIALOG_WAIT_MS, CHAT_HISTORY_TAB_SWITCH_MS, isBossChatIndexUrl, MOUSE_CLICK_PRESS_MS, OPEN_CHAT_AFTER_ROW_CLICK_MS, OPEN_CHAT_SCROLL_GAP_MS, randomIntInclusive, sleepRandom, } from '../browser/index.js';
2
+ function chatRoleTag(from) {
3
+ switch (from) {
4
+ case 'friend':
5
+ return '[candidate]';
6
+ case 'myself':
7
+ return '[you]';
8
+ case 'system':
9
+ return '[system]';
10
+ default:
11
+ return '[unknown]';
12
+ }
13
+ }
14
+ /**
15
+ * 打开「沟通记录」弹窗,依次读取「同事沟通」「我的沟通」列表,关闭弹窗。
16
+ * 未找到入口时返回 null(视为暂无同事沟通记录,不输出该段)。
17
+ */
18
+ async function fetchColleagueChatHistorySection(page) {
19
+ const clicked = await page.evaluate(() => {
20
+ function norm(v) {
21
+ return (v ?? '').replace(/\s+/g, ' ').trim();
22
+ }
23
+ const tooltips = Array.from(document.querySelectorAll('.chat-tooltip-custom'));
24
+ for (const el of tooltips) {
25
+ if (!norm(el.textContent).includes('沟通记录'))
26
+ continue;
27
+ const host = el.closest('span.icon') ?? el.closest('span') ?? el.parentElement;
28
+ if (host) {
29
+ host.click();
30
+ return true;
31
+ }
32
+ el.click();
33
+ return true;
34
+ }
35
+ const uses = Array.from(document.querySelectorAll('use'));
36
+ for (const u of uses) {
37
+ const h = u.getAttribute('href') ||
38
+ u.getAttributeNS('http://www.w3.org/1999/xlink', 'href') ||
39
+ '';
40
+ if (h.includes('icon-chat-history')) {
41
+ const p = u.closest('span.icon') ?? u.parentElement?.parentElement;
42
+ if (p) {
43
+ p.click();
44
+ return true;
45
+ }
46
+ }
47
+ }
48
+ return false;
49
+ });
50
+ if (!clicked) {
51
+ return null;
52
+ }
53
+ try {
54
+ await page.waitForSelector('.boss-dialog__body .chat-history-process', { timeout: 12_000 });
55
+ }
56
+ catch {
57
+ return '(已点击「沟通记录」,但弹窗未在预期时间内出现。)';
58
+ }
59
+ await sleepRandom(CHAT_HISTORY_DIALOG_WAIT_MS.min, CHAT_HISTORY_DIALOG_WAIT_MS.max);
60
+ const scrapeRows = () => page.evaluate(() => {
61
+ function norm(v) {
62
+ return (v ?? '').replace(/\s+/g, ' ').trim();
63
+ }
64
+ const root = document.querySelector('.chat-history-process');
65
+ if (!root)
66
+ return [];
67
+ return Array.from(root.querySelectorAll('.record li'))
68
+ .map((li) => ({
69
+ action: norm(li.querySelector('.action')?.textContent),
70
+ operat: norm(li.querySelector('.operat')?.textContent),
71
+ }))
72
+ .filter((x) => x.action || x.operat);
73
+ });
74
+ const clickTab = (label) => page.evaluate((lab) => {
75
+ function norm(v) {
76
+ return (v ?? '').replace(/\s+/g, ' ').trim();
77
+ }
78
+ const root = document.querySelector('.chat-history-process');
79
+ if (!root)
80
+ return;
81
+ const spans = Array.from(root.querySelectorAll('.tab-hd span'));
82
+ const sp = spans.find((s) => norm(s.textContent) === lab);
83
+ if (sp && !sp.classList.contains('selected')) {
84
+ sp.click();
85
+ }
86
+ }, label);
87
+ await clickTab('同事沟通');
88
+ await sleepRandom(CHAT_HISTORY_TAB_SWITCH_MS.min, CHAT_HISTORY_TAB_SWITCH_MS.max);
89
+ const rowsColleague = await scrapeRows();
90
+ await clickTab('我的沟通');
91
+ await sleepRandom(CHAT_HISTORY_TAB_SWITCH_MS.min, CHAT_HISTORY_TAB_SWITCH_MS.max);
92
+ const rowsMine = await scrapeRows();
93
+ const fmt = (label, rows) => {
94
+ const lines = [`[${label}]`];
95
+ if (rows.length === 0) {
96
+ lines.push('(暂无)');
97
+ return lines;
98
+ }
99
+ rows.forEach((r, i) => {
100
+ const line = [r.action, r.operat].filter(Boolean).join(' | ');
101
+ lines.push(`${i + 1}. ${line}`);
102
+ });
103
+ return lines;
104
+ };
105
+ const parts = [];
106
+ parts.push(...fmt('同事沟通', rowsColleague));
107
+ parts.push('');
108
+ parts.push(...fmt('我的沟通', rowsMine));
109
+ await closeChatHistoryPopup(page);
110
+ return parts.join('\n');
111
+ }
112
+ /** 关闭「沟通记录」弹层(优先点 Boss 提供的 popup 关闭钮) */
113
+ async function closeChatHistoryPopup(page) {
114
+ try {
115
+ const selectors = [
116
+ '.boss-popup__wrapper.chat-history .boss-popup__close',
117
+ '.boss-dialog__wrapper.chat-history .boss-popup__close',
118
+ '.boss-popup__wrapper.boss-dialog.chat-history .boss-popup__close',
119
+ ];
120
+ let btn = null;
121
+ for (const sel of selectors) {
122
+ btn = await page.$(sel);
123
+ if (btn)
124
+ break;
125
+ }
126
+ if (btn) {
127
+ await btn.click();
128
+ }
129
+ else {
130
+ await page.evaluate(() => {
131
+ const root = document.querySelector('.boss-popup__wrapper.chat-history') ||
132
+ document.querySelector('.boss-dialog__wrapper.chat-history');
133
+ const c = root?.querySelector('.boss-popup__close') ?? document.querySelector('.boss-popup__close');
134
+ if (c) {
135
+ c.click();
136
+ }
137
+ });
138
+ }
139
+ await sleepRandom(250, 550);
140
+ const popupWrap = await page.$('.boss-popup__wrapper.chat-history');
141
+ if (popupWrap) {
142
+ await page.evaluate(() => {
143
+ const root = document.querySelector('.boss-popup__wrapper.chat-history') ||
144
+ document.querySelector('.boss-dialog__wrapper.chat-history');
145
+ const c = root?.querySelector('.boss-popup__close') ?? document.querySelector('.boss-popup__close');
146
+ c?.click();
147
+ });
148
+ await sleepRandom(150, 350);
149
+ }
150
+ }
151
+ catch {
152
+ /* ignore */
153
+ }
154
+ }
155
+ async function fetchCandidateSummary(page) {
156
+ const scraped = (await page.evaluate(`(() => {
157
+ const norm = (v) => (v ?? "").replace(/\\s+/g, " ").trim();
158
+ const root = document.querySelector(".base-info-single-container");
159
+ if (!root) {
160
+ throw new Error("未找到候选人详情容器(.base-info-single-container)。");
161
+ }
162
+ const name = norm(root.querySelector(".name-box")?.textContent);
163
+ const active = norm(root.querySelector(".high-light-orange.active-time span")?.textContent);
164
+ const basicFacts = Array.from(root.querySelectorAll(".base-info-single-detial > div"))
165
+ .filter((el) => !el.classList.contains("name-contet") && !el.classList.contains("active-time"))
166
+ .map((el) => norm(el.textContent))
167
+ .filter((v) => v.length > 0);
168
+ const recentExperience = Array.from(
169
+ root.querySelectorAll(".experience-content.detail-list .work-content .value"),
170
+ )
171
+ .map((el) => norm(el.textContent))
172
+ .filter((v) => v.length > 0);
173
+ const communicationPosition = norm(
174
+ root.querySelector(".position-item .position-name")?.textContent,
175
+ );
176
+ const expectation = norm(root.querySelector(".position-item.expect .value.job")?.textContent);
177
+ const remark = norm(
178
+ root.querySelector(".label-remark-content .remark span:last-child")?.textContent,
179
+ );
180
+ return {
181
+ name,
182
+ active,
183
+ basicFacts,
184
+ recentExperience,
185
+ communicationPosition,
186
+ expectation,
187
+ remark,
188
+ };
189
+ })()`));
190
+ return scraped;
191
+ }
2
192
  export async function runOpenCandidateChat(page, candidateName, exact = true) {
3
193
  const targetName = candidateName.trim();
4
194
  try {
@@ -56,7 +246,7 @@ export async function runOpenCandidateChat(page, candidateName, exact = true) {
56
246
  if (!scrollState.moved || scrollState.atEnd) {
57
247
  break;
58
248
  }
59
- await new Promise((resolve) => setTimeout(resolve, 120));
249
+ await sleepRandom(OPEN_CHAT_SCROLL_GAP_MS.min, OPEN_CHAT_SCROLL_GAP_MS.max);
60
250
  }
61
251
  if (!targetWrap) {
62
252
  throw new Error(`未在聊天列表中找到候选人:${targetName}`);
@@ -73,17 +263,20 @@ export async function runOpenCandidateChat(page, candidateName, exact = true) {
73
263
  if (!box) {
74
264
  throw new Error(`已定位候选人 ${foundName},但元素不可点击。`);
75
265
  }
76
- await page.mouse.click(box.x + box.width / 2, box.y + box.height / 2, { delay: 30 });
266
+ await page.mouse.click(box.x + box.width / 2, box.y + box.height / 2, {
267
+ delay: randomIntInclusive(MOUSE_CLICK_PRESS_MS.min, MOUSE_CLICK_PRESS_MS.max),
268
+ });
77
269
  }
270
+ await sleepRandom(OPEN_CHAT_AFTER_ROW_CLICK_MS.min, OPEN_CHAT_AFTER_ROW_CLICK_MS.max);
78
271
  const selected = await targetWrap
79
272
  .$eval('.geek-item', (el) => el.classList.contains('selected'))
80
273
  .catch(() => false);
81
274
  try {
82
- await page.waitForSelector('.base-info-single-container', { timeout: 8_000 });
275
+ await page.waitForSelector('.base-info-single-container', { timeout: 12_000 });
83
276
  await page.waitForFunction(`((name) => {
84
277
  const text = document.querySelector(".base-info-single-container .name-box")?.textContent ?? "";
85
278
  return text.replace(/\\s+/g, " ").trim().includes(name);
86
- })`, { timeout: 8_000 }, foundName || targetName);
279
+ })`, { timeout: 12_000 }, foundName || targetName);
87
280
  await page.waitForFunction(`(() => {
88
281
  const list = document.querySelector(".chat-message-list");
89
282
  if (!list) return false;
@@ -98,17 +291,20 @@ export async function runOpenCandidateChat(page, candidateName, exact = true) {
98
291
  return txt.replace(/\\s+/g, " ").trim().length > 0;
99
292
  });
100
293
  return hasText;
101
- })()`, { timeout: 10_000 });
294
+ })()`, { timeout: 16_000 });
102
295
  }
103
296
  catch {
104
297
  throw new Error(`已尝试点击 ${foundName}(selected=${String(selected)}),但未检测到对应聊天详情面板。`);
105
298
  }
106
- const url = page.url();
107
299
  let fullMessages = [];
108
300
  let hasFriendResumeAttachment = false;
109
301
  try {
110
302
  const scraped = (await page.evaluate(`(() => {
111
303
  const norm = (v) => (v ?? "").replace(/\\s+/g, " ").trim();
304
+ /** Boss 系统里的「消息优先提醒」增值服务条,对业务无意义,过滤掉 */
305
+ function isBossPriorityUpsellSystemText(text) {
306
+ return norm(text).indexOf("优先提醒") !== -1;
307
+ }
112
308
  const items = Array.from(document.querySelectorAll(".chat-message-list .message-item"));
113
309
  let currentTime = "";
114
310
  const messages = [];
@@ -146,32 +342,78 @@ export async function runOpenCandidateChat(page, candidateName, exact = true) {
146
342
  } else if (myselfText) {
147
343
  messages.push({ text: myselfText, time: currentTime, from: "myself" });
148
344
  } else if (systemText) {
149
- messages.push({ text: systemText, time: currentTime, from: "system" });
345
+ if (!isBossPriorityUpsellSystemText(systemText)) {
346
+ messages.push({ text: systemText, time: currentTime, from: "system" });
347
+ }
150
348
  }
151
349
  }
152
350
  return { messages, hasFriendResumeAttachment };
153
351
  })()`));
154
352
  fullMessages = scraped.messages;
155
353
  hasFriendResumeAttachment = scraped.hasFriendResumeAttachment;
156
- const lines = fullMessages.map((m, i) => `${i + 1}. [${m.from}]${m.time ? `(${m.time})` : ''} ${m.text}`);
157
- console.error(`[boss-cli] open_candidate_chat full_messages count=${fullMessages.length} hasFriendResumeAttachment=${String(hasFriendResumeAttachment)}\n${lines.length > 0 ? lines.join('\n') : '(empty)'}`);
158
- }
159
- catch (e) {
160
- const message = e instanceof Error ? e.message : String(e);
161
- console.error(`[boss-cli] open_candidate_chat full_messages error: ${message}`);
162
- }
163
- console.error(`[boss-cli] open_candidate_chat ok name=${foundName} url=${url}`);
164
- return [
165
- `已进入候选人聊天:${foundName}`,
166
- `已读取完整聊天消息:${fullMessages.length} 条。`,
167
- hasFriendResumeAttachment ? '历史记录中已有候选人发来的附件简历卡片,一般无需再发起「求简历」。' : '',
168
- ]
169
- .filter(Boolean)
170
- .join('\n');
354
+ }
355
+ catch {
356
+ /* 抓取消息失败时仍返回摘要,不刷屏 stderr */
357
+ }
358
+ const detailLines = fullMessages.map((m) => {
359
+ const tag = chatRoleTag(m.from);
360
+ const timePart = m.time ? ` ${m.time}` : '';
361
+ return `${tag}${timePart} ${m.text}`.trimEnd();
362
+ });
363
+ const resumeStatus = hasFriendResumeAttachment ? '已获取' : '未获取';
364
+ const summary = await fetchCandidateSummary(page);
365
+ let historyBlock = null;
366
+ try {
367
+ historyBlock = await fetchColleagueChatHistorySection(page);
368
+ }
369
+ catch {
370
+ historyBlock = null;
371
+ }
372
+ const out = [
373
+ `成功进入候选人聊天:${foundName}`,
374
+ `简历获取状态: ${resumeStatus}`,
375
+ ];
376
+ const summaryLines = [];
377
+ const summaryName = summary.name || foundName || targetName;
378
+ summaryLines.push(`姓名: ${summaryName}`);
379
+ if (summary.active) {
380
+ summaryLines.push(`活跃状态: ${summary.active}`);
381
+ }
382
+ if (summary.basicFacts.length > 0) {
383
+ summaryLines.push(`基本信息: ${summary.basicFacts.join(' / ')}`);
384
+ }
385
+ if (summary.communicationPosition) {
386
+ summaryLines.push(`沟通职位: ${summary.communicationPosition}`);
387
+ }
388
+ if (summary.expectation) {
389
+ summaryLines.push(`期望: ${summary.expectation}`);
390
+ }
391
+ if (summary.recentExperience.length > 0) {
392
+ summaryLines.push('近期经历:');
393
+ summary.recentExperience.forEach((it, idx) => {
394
+ summaryLines.push(`${idx + 1}. ${it}`);
395
+ });
396
+ }
397
+ if (summaryLines.length > 0) {
398
+ out.push('', '人才摘要:', '', ...summaryLines);
399
+ }
400
+ if (summary.remark) {
401
+ out.push('', `备注: ${summary.remark}`);
402
+ }
403
+ if (historyBlock !== null) {
404
+ out.push('', '同事/我的沟通记录:', '', historyBlock);
405
+ }
406
+ out.push('', '完整聊天消息:');
407
+ if (detailLines.length > 0) {
408
+ out.push('', ...detailLines);
409
+ }
410
+ else {
411
+ out.push('', '(暂无)');
412
+ }
413
+ return out.join('\n');
171
414
  }
172
415
  catch (e) {
173
416
  const message = e instanceof Error ? e.message : String(e);
174
- console.error(`[boss-cli] open_candidate_chat error: ${message}`);
175
417
  if (e instanceof Error) {
176
418
  throw e;
177
419
  }
@@ -1 +1 @@
1
- {"version":3,"file":"open_chat.js","sourceRoot":"","sources":["../../src/toolset/open_chat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"open_chat.js","sourceRoot":"","sources":["../../src/toolset/open_chat.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function runBossSearch(): Promise<string>;
2
+ //# sourceMappingURL=search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/toolset/search.ts"],"names":[],"mappings":"AAwLA,wBAAsB,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC,CA2BrD"}