@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.
- package/README.md +13 -20
- package/dist/browser/auth.d.ts +0 -1
- package/dist/browser/auth.d.ts.map +1 -1
- package/dist/browser/auth.js +3 -19
- package/dist/browser/auth.js.map +1 -1
- package/dist/browser/browser_session.d.ts +4 -0
- package/dist/browser/browser_session.d.ts.map +1 -1
- package/dist/browser/browser_session.js +65 -14
- package/dist/browser/browser_session.js.map +1 -1
- package/dist/browser/cdp_browser.d.ts +9 -0
- package/dist/browser/cdp_browser.d.ts.map +1 -1
- package/dist/browser/cdp_browser.js +243 -11
- package/dist/browser/cdp_browser.js.map +1 -1
- package/dist/browser/chat.d.ts +2 -2
- package/dist/browser/chat.d.ts.map +1 -1
- package/dist/browser/chat.js +50 -18
- package/dist/browser/chat.js.map +1 -1
- package/dist/browser/human_delay.d.ts +88 -0
- package/dist/browser/human_delay.d.ts.map +1 -0
- package/dist/browser/human_delay.js +52 -0
- package/dist/browser/human_delay.js.map +1 -0
- package/dist/browser/index.d.ts +3 -2
- package/dist/browser/index.d.ts.map +1 -1
- package/dist/browser/index.js +3 -2
- package/dist/browser/index.js.map +1 -1
- package/dist/browser/timing.d.ts +7 -0
- package/dist/browser/timing.d.ts.map +1 -0
- package/dist/browser/timing.js +34 -0
- package/dist/browser/timing.js.map +1 -0
- package/dist/cli/banner.d.ts.map +1 -1
- package/dist/cli/banner.js +43 -9
- package/dist/cli/banner.js.map +1 -1
- package/dist/cli/cliRouter.d.ts.map +1 -1
- package/dist/cli/cliRouter.js +130 -62
- package/dist/cli/cliRouter.js.map +1 -1
- package/dist/cli/index.js +14 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/config.d.ts +9 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +25 -0
- package/dist/config.js.map +1 -1
- package/dist/ocr/baidu_ocr.d.ts +11 -0
- package/dist/ocr/baidu_ocr.d.ts.map +1 -0
- package/dist/ocr/baidu_ocr.js +76 -0
- package/dist/ocr/baidu_ocr.js.map +1 -0
- package/dist/ocr/index.d.ts +3 -0
- package/dist/ocr/index.d.ts.map +1 -0
- package/dist/ocr/index.js +3 -0
- package/dist/ocr/index.js.map +1 -0
- package/dist/ocr/resume_ocr.d.ts +13 -0
- package/dist/ocr/resume_ocr.d.ts.map +1 -0
- package/dist/ocr/resume_ocr.js +35 -0
- package/dist/ocr/resume_ocr.js.map +1 -0
- package/dist/toolset/action.d.ts +7 -0
- package/dist/toolset/action.d.ts.map +1 -0
- package/dist/toolset/action.js +433 -0
- package/dist/toolset/action.js.map +1 -0
- package/dist/toolset/chat.d.ts +4 -0
- package/dist/toolset/chat.d.ts.map +1 -0
- package/dist/toolset/chat.js +434 -0
- package/dist/toolset/chat.js.map +1 -0
- package/dist/toolset/chat_action.d.ts +7 -0
- package/dist/toolset/chat_action.d.ts.map +1 -0
- package/dist/toolset/chat_action.js +355 -0
- package/dist/toolset/chat_action.js.map +1 -0
- package/dist/toolset/index.d.ts +18 -1
- package/dist/toolset/index.d.ts.map +1 -1
- package/dist/toolset/index.js +27 -6
- package/dist/toolset/index.js.map +1 -1
- package/dist/toolset/jd.d.ts +10 -0
- package/dist/toolset/jd.d.ts.map +1 -0
- package/dist/toolset/jd.js +418 -0
- package/dist/toolset/jd.js.map +1 -0
- package/dist/toolset/list.d.ts +4 -0
- package/dist/toolset/list.d.ts.map +1 -0
- package/dist/toolset/list.js +156 -0
- package/dist/toolset/list.js.map +1 -0
- package/dist/toolset/list_candidates.d.ts.map +1 -1
- package/dist/toolset/list_candidates.js +12 -19
- package/dist/toolset/list_candidates.js.map +1 -1
- package/dist/toolset/login.d.ts.map +1 -1
- package/dist/toolset/login.js +7 -4
- package/dist/toolset/login.js.map +1 -1
- package/dist/toolset/open_chat.d.ts.map +1 -1
- package/dist/toolset/open_chat.js +266 -24
- package/dist/toolset/open_chat.js.map +1 -1
- package/dist/toolset/search.d.ts +2 -0
- package/dist/toolset/search.d.ts.map +1 -0
- package/dist/toolset/search.js +174 -0
- package/dist/toolset/search.js.map +1 -0
- package/dist/toolset/send.d.ts +12 -0
- package/dist/toolset/send.d.ts.map +1 -0
- package/dist/toolset/send.js +214 -0
- package/dist/toolset/send.js.map +1 -0
- package/dist/toolset/send_message.d.ts +11 -1
- package/dist/toolset/send_message.d.ts.map +1 -1
- package/dist/toolset/send_message.js +120 -21
- package/dist/toolset/send_message.js.map +1 -1
- package/dist/toolset/skill.d.ts +13 -0
- package/dist/toolset/skill.d.ts.map +1 -0
- package/dist/toolset/skill.js +85 -0
- package/dist/toolset/skill.js.map +1 -0
- package/package.json +5 -2
- package/skills/README.md +11 -0
- package/skills/boss-cli/SKILL.md +58 -0
package/dist/cli/cliRouter.js
CHANGED
|
@@ -4,9 +4,8 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { createInterface } from 'node:readline/promises';
|
|
6
6
|
import { stdin as input, stdout as output } from 'node:process';
|
|
7
|
-
import { detachBrowserSession
|
|
8
|
-
import {
|
|
9
|
-
import { implLogin, implListCandidates, implListUnreadCandidates, implListPositions, implOpenChat, implSendMessage, } from '../toolset/index.js';
|
|
7
|
+
import { detachBrowserSession } from '../browser/index.js';
|
|
8
|
+
import { implBossSearch, implChatAction, implLogin, implListCandidates, implListUnreadCandidates, implListPositions, implListPositionsWithOptions, implOpenChat, implSendMessage, implSkill, } from '../toolset/index.js';
|
|
10
9
|
import { printBossInteractiveBanner } from './banner.js';
|
|
11
10
|
class CliError extends Error {
|
|
12
11
|
constructor(message) {
|
|
@@ -18,45 +17,23 @@ function envTruthy(name) {
|
|
|
18
17
|
const v = (process.env[name] ?? '').trim().toLowerCase();
|
|
19
18
|
return v === '1' || v === 'true' || v === 'yes' || v === 'y';
|
|
20
19
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
envTruthy('BOSSCLI_HEADFUL') ||
|
|
25
|
-
envTruthy('BOSS_CLI_HEADFUL'));
|
|
20
|
+
/** 默认有头;仅当环境变量为真时启用无头(与 `connectBrowser` 读取的 `BOSS_BROWSER_HEADLESS` 一致)。 */
|
|
21
|
+
function shouldRunHeadless() {
|
|
22
|
+
return envTruthy('BOSS_BROWSER_HEADLESS');
|
|
26
23
|
}
|
|
27
24
|
function configureHeadlessForCommand(cmd) {
|
|
28
25
|
if (cmd === 'login') {
|
|
29
|
-
// 登录必须可见:方便扫码/人机验证/手动操作
|
|
30
26
|
process.env.BOSS_BROWSER_HEADLESS = 'false';
|
|
31
27
|
return;
|
|
32
28
|
}
|
|
33
|
-
process.env.BOSS_BROWSER_HEADLESS =
|
|
29
|
+
process.env.BOSS_BROWSER_HEADLESS = shouldRunHeadless() ? 'true' : 'false';
|
|
34
30
|
}
|
|
35
|
-
/**
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
async function cleanupAfterCommand(
|
|
40
|
-
const kill = shouldKillBrowserProcess();
|
|
41
|
-
// 交互模式:默认不断开;仅当显式要求关闭浏览器时处理(便于长时间复用同一会话)。
|
|
31
|
+
/**
|
|
32
|
+
* 一次性命令结束后:detach CDP,不关浏览器窗口。
|
|
33
|
+
* 交互模式在循环内不调用;退出 REPL 时在 `runInteractiveLoop` 的 finally 里单独 detach(避免 Node 退出时拖死 Chrome)。
|
|
34
|
+
*/
|
|
35
|
+
async function cleanupAfterCommand(_cmd, nonInteractive) {
|
|
42
36
|
if (!nonInteractive) {
|
|
43
|
-
if (!kill)
|
|
44
|
-
return;
|
|
45
|
-
if (cmd === 'login') {
|
|
46
|
-
await detachBrowserSession().catch(() => { });
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
await disconnectBrowserSession().catch(() => { });
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
// 一次性命令:login 始终只 detach,便于用户继续在窗口内操作。
|
|
53
|
-
if (cmd === 'login') {
|
|
54
|
-
await detachBrowserSession().catch(() => { });
|
|
55
|
-
return;
|
|
56
|
-
}
|
|
57
|
-
// 其它命令:默认仅断开 CDP(进程可退出、浏览器窗口保留);BOSS_BROWSER_AUTO_CLOSE=1 时才 close。
|
|
58
|
-
if (kill) {
|
|
59
|
-
await disconnectBrowserSession().catch(() => { });
|
|
60
37
|
return;
|
|
61
38
|
}
|
|
62
39
|
await detachBrowserSession().catch(() => { });
|
|
@@ -106,6 +83,21 @@ function splitShellLine(line) {
|
|
|
106
83
|
}
|
|
107
84
|
return out;
|
|
108
85
|
}
|
|
86
|
+
/** 短命令为主;保留旧长名作为别名,避免已有脚本失效 */
|
|
87
|
+
function normalizeSubcommand(cmd) {
|
|
88
|
+
switch (cmd) {
|
|
89
|
+
case 'list-candidates':
|
|
90
|
+
return 'list';
|
|
91
|
+
case 'open-chat':
|
|
92
|
+
return 'chat';
|
|
93
|
+
case 'send-message':
|
|
94
|
+
return 'send';
|
|
95
|
+
case 'list-positions':
|
|
96
|
+
return 'positions';
|
|
97
|
+
default:
|
|
98
|
+
return cmd;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
109
101
|
function printHelp() {
|
|
110
102
|
console.error(`boss-cli — Boss 直聘浏览器自动化(纯 CLI,无 Agent 运行时)
|
|
111
103
|
|
|
@@ -116,19 +108,27 @@ function printHelp() {
|
|
|
116
108
|
显示本帮助
|
|
117
109
|
boss login
|
|
118
110
|
打开登录页(需要在浏览器中自行完成登录)
|
|
119
|
-
boss list
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
boss open-chat <姓名> [--strict]
|
|
111
|
+
boss list [--unread]
|
|
112
|
+
读取「全部」聊天列表候选人;--unread 仅显示未读(角标>0)
|
|
113
|
+
boss chat <姓名> [--strict]
|
|
123
114
|
打开指定联系人会话;默认包含匹配,--strict 为精确匹配
|
|
124
|
-
boss
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
115
|
+
boss action <操作> [--remark <备注>]
|
|
116
|
+
仅在当前聊天页已打开候选人详情时执行操作,并只返回 action 执行结果
|
|
117
|
+
操作: resume | not-fit | remark | agree-resume | history
|
|
118
|
+
操作为 remark 时必须提供 --remark
|
|
119
|
+
boss send [--text <内容>] [-t <内容>] [--action <操作>]
|
|
120
|
+
--text 与 --action 可同时使用;先发消息再执行 action,中间有默认随机间隔
|
|
121
|
+
--action: request-resume | agree-resume | confuse-resume(confuse-resume=拒绝附件);须至少 text 或 action 其一
|
|
122
|
+
boss positions
|
|
123
|
+
读取当前职位列表(含开放/待开放/已关闭状态)
|
|
124
|
+
boss jd <name>
|
|
125
|
+
抓取指定职位详情并缓存到项目目录同名 .md
|
|
126
|
+
boss search
|
|
127
|
+
从侧边栏进入「深度搜索」并触发一次“立即匹配”
|
|
128
|
+
boss skill
|
|
129
|
+
输出本包 Agent Skill 的说明
|
|
130
|
+
boss skill install | boss skill uninstall
|
|
131
|
+
安装或移除唯一 Skill(boss-cli)到 ~/.agents/skills/(可用 BOSS_AGENT_SKILLS_DIR 覆盖根目录)
|
|
132
132
|
`);
|
|
133
133
|
}
|
|
134
134
|
/** 解析 `--key value` / `--key=value` / 布尔 `--flag` */
|
|
@@ -190,44 +190,111 @@ export async function executeCommand(argv) {
|
|
|
190
190
|
if (argv.length === 0) {
|
|
191
191
|
die('❌ 空命令');
|
|
192
192
|
}
|
|
193
|
-
const cmd = argv[0];
|
|
193
|
+
const cmd = normalizeSubcommand(argv[0]);
|
|
194
194
|
const tail = argv.slice(1);
|
|
195
195
|
configureHeadlessForCommand(cmd);
|
|
196
196
|
if (cmd === 'login') {
|
|
197
197
|
return implLogin();
|
|
198
198
|
}
|
|
199
|
-
if (cmd === 'list
|
|
199
|
+
if (cmd === 'list') {
|
|
200
200
|
const { flags } = parseOpts(tail);
|
|
201
201
|
if (flags.has('unread')) {
|
|
202
202
|
return implListUnreadCandidates();
|
|
203
203
|
}
|
|
204
204
|
return implListCandidates();
|
|
205
205
|
}
|
|
206
|
-
if (cmd === '
|
|
207
|
-
const { rest, flags } = parseOpts(tail);
|
|
206
|
+
if (cmd === 'chat') {
|
|
207
|
+
const { rest, flags, opts } = parseOpts(tail);
|
|
208
208
|
const nameArg = rest[0]?.trim();
|
|
209
209
|
if (!nameArg) {
|
|
210
|
-
die('❌ 用法:
|
|
210
|
+
die('❌ 用法: chat <姓名> [--strict]');
|
|
211
|
+
}
|
|
212
|
+
if ((opts.action ?? '').trim().length > 0 || (opts.remark ?? '').trim().length > 0) {
|
|
213
|
+
die('❌ chat 不再支持 --action/--remark。请改用: action <操作> [--remark <备注>]');
|
|
211
214
|
}
|
|
212
215
|
// 默认模糊匹配(包含);仅在指定 --strict 时做精确匹配
|
|
213
216
|
const exact = flags.has('strict');
|
|
214
217
|
return implOpenChat(nameArg, exact);
|
|
215
218
|
}
|
|
216
|
-
if (cmd === '
|
|
217
|
-
const {
|
|
219
|
+
if (cmd === 'action') {
|
|
220
|
+
const { rest, opts } = parseOpts(tail);
|
|
221
|
+
const raw = (rest[0] ?? opts.type ?? opts.action ?? '').trim().toLowerCase();
|
|
222
|
+
const actionMap = {
|
|
223
|
+
resume: 'resume',
|
|
224
|
+
'not-fit': 'not-fit',
|
|
225
|
+
remark: 'remark',
|
|
226
|
+
'agree-resume': 'agree-resume',
|
|
227
|
+
history: 'history',
|
|
228
|
+
'chat-history': 'history',
|
|
229
|
+
};
|
|
230
|
+
const action = actionMap[raw];
|
|
231
|
+
if (!action) {
|
|
232
|
+
die('❌ 用法: action <resume|not-fit|remark|agree-resume|history> [--remark <备注>]');
|
|
233
|
+
}
|
|
234
|
+
const remark = (opts.remark ?? '').trim();
|
|
235
|
+
if (action === 'remark' && !remark) {
|
|
236
|
+
die('❌ 当操作为 remark 时,必须提供 --remark <备注内容>。');
|
|
237
|
+
}
|
|
238
|
+
return implChatAction({ action, remark });
|
|
239
|
+
}
|
|
240
|
+
if (cmd === 'send') {
|
|
241
|
+
const { opts } = parseOpts(tail);
|
|
218
242
|
const text = opts.text?.trim() || opts.t?.trim() || '';
|
|
219
|
-
const
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
243
|
+
const raw = (opts.action ?? '').trim().toLowerCase();
|
|
244
|
+
const actionMap = {
|
|
245
|
+
'request-resume': 'request-resume',
|
|
246
|
+
'agree-resume': 'agree-resume',
|
|
247
|
+
'confuse-resume': 'confuse-resume',
|
|
248
|
+
};
|
|
249
|
+
let action;
|
|
250
|
+
if (raw) {
|
|
251
|
+
action = actionMap[raw];
|
|
252
|
+
if (!action) {
|
|
253
|
+
die(`❌ 未知 --action “${raw}”,可选:request-resume | agree-resume | confuse-resume`);
|
|
254
|
+
}
|
|
224
255
|
}
|
|
225
|
-
|
|
256
|
+
if (!text && !action) {
|
|
257
|
+
die('❌ 用法: send [--text <消息>] [-t <消息>] [--action request-resume|agree-resume|confuse-resume](至少其一)');
|
|
258
|
+
}
|
|
259
|
+
return implSendMessage({ text, action });
|
|
226
260
|
}
|
|
227
|
-
if (cmd === '
|
|
261
|
+
if (cmd === 'positions') {
|
|
262
|
+
const { rest, opts, flags } = parseOpts(tail);
|
|
263
|
+
if (rest.length > 0 || Object.keys(opts).length > 0 || flags.size > 0) {
|
|
264
|
+
die('❌ 用法: positions');
|
|
265
|
+
}
|
|
228
266
|
return implListPositions();
|
|
229
267
|
}
|
|
230
|
-
|
|
268
|
+
if (cmd === 'jd') {
|
|
269
|
+
const { flags, opts, rest } = parseOpts(tail);
|
|
270
|
+
if (flags.has('detail')) {
|
|
271
|
+
die('❌ jd 不再支持 --detail。请使用: jd <name>');
|
|
272
|
+
}
|
|
273
|
+
if (flags.size > 0) {
|
|
274
|
+
const unsupportedFlags = Array.from(flags).join(', --');
|
|
275
|
+
die(`❌ jd 不支持参数: --${unsupportedFlags}`);
|
|
276
|
+
}
|
|
277
|
+
const detailName = rest.join(' ').trim();
|
|
278
|
+
if (!detailName) {
|
|
279
|
+
die('❌ 用法: jd <name>');
|
|
280
|
+
}
|
|
281
|
+
const unknownOpts = Object.keys(opts);
|
|
282
|
+
if (unknownOpts.length > 0) {
|
|
283
|
+
die(`❌ jd 不支持参数: --${unknownOpts.join(', --')}`);
|
|
284
|
+
}
|
|
285
|
+
return implListPositionsWithOptions({ detail: true, name: detailName });
|
|
286
|
+
}
|
|
287
|
+
if (cmd === 'search') {
|
|
288
|
+
const { rest, opts, flags } = parseOpts(tail);
|
|
289
|
+
if (rest.length > 0 || Object.keys(opts).length > 0 || flags.size > 0) {
|
|
290
|
+
die('❌ 用法: search');
|
|
291
|
+
}
|
|
292
|
+
return implBossSearch();
|
|
293
|
+
}
|
|
294
|
+
if (cmd === 'skill') {
|
|
295
|
+
return implSkill(tail);
|
|
296
|
+
}
|
|
297
|
+
die(`❌ 未知命令 “${argv[0]}”。输入 help 查看用法。`);
|
|
231
298
|
}
|
|
232
299
|
export async function runOneCommand(argv) {
|
|
233
300
|
if (argv.length === 0) {
|
|
@@ -281,7 +348,8 @@ async function runInteractiveLoop() {
|
|
|
281
348
|
}
|
|
282
349
|
finally {
|
|
283
350
|
rl.close();
|
|
284
|
-
|
|
351
|
+
// 退出交互时进程即将结束,必须 detach + unref 子进程,否则 Chrome 常随 Node 一起退出
|
|
352
|
+
await detachBrowserSession().catch(() => { });
|
|
285
353
|
}
|
|
286
354
|
}
|
|
287
355
|
export async function runCli(argv) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cliRouter.js","sourceRoot":"","sources":["../../src/cli/cliRouter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cliRouter.js","sourceRoot":"","sources":["../../src/cli/cliRouter.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.js
CHANGED
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
// boss-cli 入口:子命令见 cliRouter;业务能力见 toolset(impl*)
|
|
3
|
+
// 环境变量:先读 ~/.boss-cli/.env,再读当前工作目录下的 .env(后者覆盖前者)。
|
|
4
|
+
import { existsSync } from 'node:fs';
|
|
5
|
+
import { join } from 'node:path';
|
|
6
|
+
import { config as loadEnv } from 'dotenv';
|
|
7
|
+
import { APP_HOME } from '../config.js';
|
|
3
8
|
import { runCli, isReadlineAbortError } from './cliRouter.js';
|
|
9
|
+
const userEnvPath = join(APP_HOME, '.env');
|
|
10
|
+
if (existsSync(userEnvPath)) {
|
|
11
|
+
loadEnv({ path: userEnvPath });
|
|
12
|
+
}
|
|
13
|
+
loadEnv();
|
|
4
14
|
async function main() {
|
|
5
15
|
const args = process.argv.slice(2);
|
|
6
16
|
try {
|
|
@@ -17,5 +27,8 @@ async function main() {
|
|
|
17
27
|
process.exit(1);
|
|
18
28
|
}
|
|
19
29
|
}
|
|
20
|
-
main()
|
|
30
|
+
main().catch((err) => {
|
|
31
|
+
console.error('❌ 未捕获错误:', err);
|
|
32
|
+
process.exit(1);
|
|
33
|
+
});
|
|
21
34
|
//# sourceMappingURL=index.js.map
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA,kDAAkD;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA,kDAAkD;AAClD,oDAAoD;AAEpD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAE9D,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC3C,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;IAC5B,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;AACjC,CAAC;AACD,OAAO,EAAE,CAAC;AAEV,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAChC,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IAC/B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
package/dist/config.d.ts
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 多数 Agent 客户端约定的 skills 根目录(如 `~/.agents/skills`)。
|
|
3
|
+
* 可用 `BOSS_AGENT_SKILLS_DIR` 设为绝对路径以覆盖。
|
|
4
|
+
*/
|
|
5
|
+
export declare function getAgentSkillsDir(): string;
|
|
1
6
|
/** 应用主目录(业务数据在 .cache 下) */
|
|
2
7
|
export declare const APP_HOME: string;
|
|
3
8
|
/** 存放岗位 JD 的目录(每个岗位一个 .md 文件) */
|
|
@@ -8,6 +13,10 @@ export declare const JD_DIR: string;
|
|
|
8
13
|
export declare const CACHE_DIR: string;
|
|
9
14
|
/** Puppeteer 用户数据目录(与 CDP 启动默认目录一致) */
|
|
10
15
|
export declare const BROWSER_USER_DATA_DIR: string;
|
|
16
|
+
/** `chat` 抓取在线简历时对 iframe 区域截图保存目录 */
|
|
17
|
+
export declare const RESUME_SCREENSHOTS_DIR: string;
|
|
18
|
+
/** 在线简历截图经 OCR 后的纯文本保存目录(与截图同名 `.txt`) */
|
|
19
|
+
export declare const RESUME_OCR_DIR: string;
|
|
11
20
|
/** 确保 `~/.boss-cli/.cache` 目录存在(幂等) */
|
|
12
21
|
export declare function ensureAppDataLayout(): void;
|
|
13
22
|
//# sourceMappingURL=config.d.ts.map
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAMA,4BAA4B;AAC5B,eAAO,MAAM,QAAQ,QAA+B,CAAC;AAErD,iCAAiC;AACjC,eAAO,MAAM,MAAM,QAAuB,CAAC;AAE3C;;GAEG;AACH,eAAO,MAAM,SAAS,QAA2B,CAAC;AAElD,uCAAuC;AACvC,eAAO,MAAM,qBAAqB,QAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAM1C;AAED,4BAA4B;AAC5B,eAAO,MAAM,QAAQ,QAA+B,CAAC;AAErD,iCAAiC;AACjC,eAAO,MAAM,MAAM,QAAuB,CAAC;AAE3C;;GAEG;AACH,eAAO,MAAM,SAAS,QAA2B,CAAC;AAElD,uCAAuC;AACvC,eAAO,MAAM,qBAAqB,QAAkC,CAAC;AAErE,sCAAsC;AACtC,eAAO,MAAM,sBAAsB,QAAwC,CAAC;AAE5E,0CAA0C;AAC1C,eAAO,MAAM,cAAc,QAAyB,CAAC;AAIrD,uCAAuC;AACvC,wBAAgB,mBAAmB,IAAI,IAAI,CAwB1C"}
|
package/dist/config.js
CHANGED
|
@@ -2,6 +2,17 @@
|
|
|
2
2
|
import { existsSync, mkdirSync } from 'fs';
|
|
3
3
|
import { join } from 'path';
|
|
4
4
|
import { homedir } from 'os';
|
|
5
|
+
/**
|
|
6
|
+
* 多数 Agent 客户端约定的 skills 根目录(如 `~/.agents/skills`)。
|
|
7
|
+
* 可用 `BOSS_AGENT_SKILLS_DIR` 设为绝对路径以覆盖。
|
|
8
|
+
*/
|
|
9
|
+
export function getAgentSkillsDir() {
|
|
10
|
+
const raw = process.env.BOSS_AGENT_SKILLS_DIR?.trim();
|
|
11
|
+
if (raw && raw.length > 0) {
|
|
12
|
+
return raw;
|
|
13
|
+
}
|
|
14
|
+
return join(homedir(), '.agents', 'skills');
|
|
15
|
+
}
|
|
5
16
|
/** 应用主目录(业务数据在 .cache 下) */
|
|
6
17
|
export const APP_HOME = join(homedir(), '.boss-cli');
|
|
7
18
|
/** 存放岗位 JD 的目录(每个岗位一个 .md 文件) */
|
|
@@ -12,6 +23,10 @@ export const JD_DIR = join(APP_HOME, 'jd');
|
|
|
12
23
|
export const CACHE_DIR = join(APP_HOME, '.cache');
|
|
13
24
|
/** Puppeteer 用户数据目录(与 CDP 启动默认目录一致) */
|
|
14
25
|
export const BROWSER_USER_DATA_DIR = join(CACHE_DIR, 'browser-data');
|
|
26
|
+
/** `chat` 抓取在线简历时对 iframe 区域截图保存目录 */
|
|
27
|
+
export const RESUME_SCREENSHOTS_DIR = join(CACHE_DIR, 'resume-screenshots');
|
|
28
|
+
/** 在线简历截图经 OCR 后的纯文本保存目录(与截图同名 `.txt`) */
|
|
29
|
+
export const RESUME_OCR_DIR = join(CACHE_DIR, 'ocr');
|
|
15
30
|
let appDataLayoutReady = false;
|
|
16
31
|
/** 确保 `~/.boss-cli/.cache` 目录存在(幂等) */
|
|
17
32
|
export function ensureAppDataLayout() {
|
|
@@ -28,5 +43,15 @@ export function ensureAppDataLayout() {
|
|
|
28
43
|
if (!existsSync(JD_DIR)) {
|
|
29
44
|
mkdirSync(JD_DIR, { recursive: true });
|
|
30
45
|
}
|
|
46
|
+
if (!existsSync(RESUME_SCREENSHOTS_DIR)) {
|
|
47
|
+
mkdirSync(RESUME_SCREENSHOTS_DIR, { recursive: true });
|
|
48
|
+
}
|
|
49
|
+
if (!existsSync(RESUME_OCR_DIR)) {
|
|
50
|
+
mkdirSync(RESUME_OCR_DIR, { recursive: true });
|
|
51
|
+
}
|
|
52
|
+
const agentSkills = getAgentSkillsDir();
|
|
53
|
+
if (!existsSync(agentSkills)) {
|
|
54
|
+
mkdirSync(agentSkills, { recursive: true });
|
|
55
|
+
}
|
|
31
56
|
}
|
|
32
57
|
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,oCAAoC;AAEpC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAE7B,4BAA4B;AAC5B,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,CAAC;AAErD,iCAAiC;AACjC,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAE3C;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAElD,uCAAuC;AACvC,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;AAErE,IAAI,kBAAkB,GAAG,KAAK,CAAC;AAE/B,uCAAuC;AACvC,MAAM,UAAU,mBAAmB;IACjC,IAAI,kBAAkB,EAAE,CAAC;QACvB,OAAO;IACT,CAAC;IACD,kBAAkB,GAAG,IAAI,CAAC;IAC1B,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5C,CAAC;IACD,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,EAAE,CAAC;QACvC,SAAS,CAAC,qBAAqB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,CAAC;IACD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACxB,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,oCAAoC;AAEpC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAE7B;;;GAGG;AACH,MAAM,UAAU,iBAAiB;IAC/B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,IAAI,EAAE,CAAC;IACtD,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AAC9C,CAAC;AAED,4BAA4B;AAC5B,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,CAAC;AAErD,iCAAiC;AACjC,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAE3C;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAElD,uCAAuC;AACvC,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;AAErE,sCAAsC;AACtC,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;AAE5E,0CAA0C;AAC1C,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AAErD,IAAI,kBAAkB,GAAG,KAAK,CAAC;AAE/B,uCAAuC;AACvC,MAAM,UAAU,mBAAmB;IACjC,IAAI,kBAAkB,EAAE,CAAC;QACvB,OAAO;IACT,CAAC;IACD,kBAAkB,GAAG,IAAI,CAAC;IAC1B,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5C,CAAC;IACD,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,EAAE,CAAC;QACvC,SAAS,CAAC,qBAAqB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,CAAC;IACD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACxB,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;IACD,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,EAAE,CAAC;QACxC,SAAS,CAAC,sBAAsB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzD,CAAC;IACD,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;QAChC,SAAS,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC;IACD,MAAM,WAAW,GAAG,iBAAiB,EAAE,CAAC;IACxC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7B,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 百度 AI 开放平台:OAuth + 通用文字识别(高精度含位置版 accurate_basic)。
|
|
3
|
+
* 需在环境变量中配置 `API_KEY`、`SECRET_KEY`(与百度控制台一致)。
|
|
4
|
+
* @see https://ai.baidu.com/ai-doc/OCR/zk3h7xz52
|
|
5
|
+
*/
|
|
6
|
+
export declare function isBaiduOcrConfigured(): boolean;
|
|
7
|
+
/** 获取 access_token(带简单内存缓存,过期前 1 分钟刷新)。 */
|
|
8
|
+
export declare function getBaiduAccessToken(): Promise<string>;
|
|
9
|
+
/** 对整张 PNG/JPG 做高精度识别,返回合并文本(按行拼接)。 */
|
|
10
|
+
export declare function baiduOcrImageBase64(imageBase64: string): Promise<string>;
|
|
11
|
+
//# sourceMappingURL=baidu_ocr.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"baidu_ocr.d.ts","sourceRoot":"","sources":["../../src/ocr/baidu_ocr.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAaH,wBAAgB,oBAAoB,IAAI,OAAO,CAE9C;AAID,2CAA2C;AAC3C,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC,CA4C3D;AAID,uCAAuC;AACvC,wBAAsB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAgC9E"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 百度 AI 开放平台:OAuth + 通用文字识别(高精度含位置版 accurate_basic)。
|
|
3
|
+
* 需在环境变量中配置 `API_KEY`、`SECRET_KEY`(与百度控制台一致)。
|
|
4
|
+
* @see https://ai.baidu.com/ai-doc/OCR/zk3h7xz52
|
|
5
|
+
*/
|
|
6
|
+
const BAIDU_TOKEN_URL = 'https://aip.baidubce.com/oauth/2.0/token';
|
|
7
|
+
const BAIDU_OCR_ACCURATE_BASIC = 'https://aip.baidubce.com/rest/2.0/ocr/v1/accurate_basic';
|
|
8
|
+
function apiKey() {
|
|
9
|
+
return process.env.API_KEY?.trim() || process.env.BOSS_BAIDU_API_KEY?.trim();
|
|
10
|
+
}
|
|
11
|
+
function secretKey() {
|
|
12
|
+
return process.env.SECRET_KEY?.trim() || process.env.BOSS_BAIDU_SECRET_KEY?.trim();
|
|
13
|
+
}
|
|
14
|
+
export function isBaiduOcrConfigured() {
|
|
15
|
+
return !!(apiKey() && secretKey());
|
|
16
|
+
}
|
|
17
|
+
let cachedToken = null;
|
|
18
|
+
/** 获取 access_token(带简单内存缓存,过期前 1 分钟刷新)。 */
|
|
19
|
+
export async function getBaiduAccessToken() {
|
|
20
|
+
const client_id = apiKey();
|
|
21
|
+
const client_secret = secretKey();
|
|
22
|
+
if (!client_id || !client_secret) {
|
|
23
|
+
throw new Error('缺少百度 OCR 凭证:请设置 API_KEY 与 SECRET_KEY(或 BOSS_BAIDU_API_KEY / BOSS_BAIDU_SECRET_KEY)');
|
|
24
|
+
}
|
|
25
|
+
const now = Date.now();
|
|
26
|
+
if (cachedToken && now < cachedToken.expiresAtMs - 60_000) {
|
|
27
|
+
return cachedToken.token;
|
|
28
|
+
}
|
|
29
|
+
const u = new URL(BAIDU_TOKEN_URL);
|
|
30
|
+
u.searchParams.set('grant_type', 'client_credentials');
|
|
31
|
+
u.searchParams.set('client_id', client_id);
|
|
32
|
+
u.searchParams.set('client_secret', client_secret);
|
|
33
|
+
const res = await fetch(u.toString(), {
|
|
34
|
+
method: 'POST',
|
|
35
|
+
headers: {
|
|
36
|
+
'Content-Type': 'application/json',
|
|
37
|
+
Accept: 'application/json',
|
|
38
|
+
},
|
|
39
|
+
});
|
|
40
|
+
const data = (await res.json());
|
|
41
|
+
if (!res.ok || !data.access_token) {
|
|
42
|
+
throw new Error(`百度 OAuth 失败: ${res.status} ${data.error ?? ''} ${data.error_description ?? JSON.stringify(data)}`);
|
|
43
|
+
}
|
|
44
|
+
const expiresInSec = typeof data.expires_in === 'number' ? data.expires_in : 2592000;
|
|
45
|
+
cachedToken = {
|
|
46
|
+
token: data.access_token,
|
|
47
|
+
expiresAtMs: now + expiresInSec * 1000,
|
|
48
|
+
};
|
|
49
|
+
return data.access_token;
|
|
50
|
+
}
|
|
51
|
+
/** 对整张 PNG/JPG 做高精度识别,返回合并文本(按行拼接)。 */
|
|
52
|
+
export async function baiduOcrImageBase64(imageBase64) {
|
|
53
|
+
const token = await getBaiduAccessToken();
|
|
54
|
+
const url = new URL(BAIDU_OCR_ACCURATE_BASIC);
|
|
55
|
+
url.searchParams.set('access_token', token);
|
|
56
|
+
const body = new URLSearchParams();
|
|
57
|
+
body.set('image', imageBase64);
|
|
58
|
+
body.set('language_type', 'CHN_ENG');
|
|
59
|
+
const res = await fetch(url.toString(), {
|
|
60
|
+
method: 'POST',
|
|
61
|
+
headers: {
|
|
62
|
+
'Content-Type': 'application/x-www-form-urlencoded',
|
|
63
|
+
Accept: 'application/json',
|
|
64
|
+
},
|
|
65
|
+
body: body.toString(),
|
|
66
|
+
});
|
|
67
|
+
const data = (await res.json());
|
|
68
|
+
if (!res.ok || (data.error_code !== undefined && data.error_code !== 0)) {
|
|
69
|
+
throw new Error(`百度 OCR 失败: ${res.status} ${data.error_msg ?? JSON.stringify(data)}`);
|
|
70
|
+
}
|
|
71
|
+
const lines = (data.words_result ?? [])
|
|
72
|
+
.map((r) => (r.words ?? '').trim())
|
|
73
|
+
.filter((s) => s.length > 0);
|
|
74
|
+
return lines.join('\n').trim();
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=baidu_ocr.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"baidu_ocr.js","sourceRoot":"","sources":["../../src/ocr/baidu_ocr.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ocr/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ocr/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 是否对在线简历截图做 OCR。关闭:`BOSS_RESUME_OCR=0`。
|
|
3
|
+
* 开启时需配置百度 `API_KEY` + `SECRET_KEY`(在线识别,无本地引擎)。
|
|
4
|
+
*/
|
|
5
|
+
export declare function isResumeOcrEnabled(): boolean;
|
|
6
|
+
/**
|
|
7
|
+
* 对简历区域 PNG 调用百度 OCR,将结果写入 `~/.boss-cli/.cache/ocr/`(与截图同名 `.txt`)。
|
|
8
|
+
*/
|
|
9
|
+
export declare function ocrResumePngToTextFile(pngAbsPath: string): Promise<{
|
|
10
|
+
textPath: string;
|
|
11
|
+
text: string;
|
|
12
|
+
}>;
|
|
13
|
+
//# sourceMappingURL=resume_ocr.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resume_ocr.d.ts","sourceRoot":"","sources":["../../src/ocr/resume_ocr.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAG5C;AAKD;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAqB5G"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { basename, join } from 'node:path';
|
|
2
|
+
import { readFile, writeFile } from 'node:fs/promises';
|
|
3
|
+
import { ensureAppDataLayout, RESUME_OCR_DIR } from '../config.js';
|
|
4
|
+
import { baiduOcrImageBase64, isBaiduOcrConfigured } from './baidu_ocr.js';
|
|
5
|
+
/**
|
|
6
|
+
* 是否对在线简历截图做 OCR。关闭:`BOSS_RESUME_OCR=0`。
|
|
7
|
+
* 开启时需配置百度 `API_KEY` + `SECRET_KEY`(在线识别,无本地引擎)。
|
|
8
|
+
*/
|
|
9
|
+
export function isResumeOcrEnabled() {
|
|
10
|
+
const v = process.env.BOSS_RESUME_OCR?.trim().toLowerCase();
|
|
11
|
+
return v !== '0' && v !== 'false' && v !== 'no';
|
|
12
|
+
}
|
|
13
|
+
/** 串行执行 OCR,避免并发请求交错 */
|
|
14
|
+
let ocrChain = Promise.resolve();
|
|
15
|
+
/**
|
|
16
|
+
* 对简历区域 PNG 调用百度 OCR,将结果写入 `~/.boss-cli/.cache/ocr/`(与截图同名 `.txt`)。
|
|
17
|
+
*/
|
|
18
|
+
export async function ocrResumePngToTextFile(pngAbsPath) {
|
|
19
|
+
ensureAppDataLayout();
|
|
20
|
+
if (!isBaiduOcrConfigured()) {
|
|
21
|
+
throw new Error('已开启简历 OCR(BOSS_RESUME_OCR),但未配置百度密钥:请设置 API_KEY 与 SECRET_KEY(或 BOSS_BAIDU_API_KEY / BOSS_BAIDU_SECRET_KEY)。');
|
|
22
|
+
}
|
|
23
|
+
const base = basename(pngAbsPath).replace(/\.png$/i, '.txt');
|
|
24
|
+
const textPath = join(RESUME_OCR_DIR, base);
|
|
25
|
+
const run = async () => {
|
|
26
|
+
const buf = await readFile(pngAbsPath);
|
|
27
|
+
const text = await baiduOcrImageBase64(buf.toString('base64'));
|
|
28
|
+
await writeFile(textPath, text.endsWith('\n') ? text : `${text}\n`, 'utf8');
|
|
29
|
+
return { textPath, text };
|
|
30
|
+
};
|
|
31
|
+
const p = ocrChain.then(run);
|
|
32
|
+
ocrChain = p.catch(() => { });
|
|
33
|
+
return p;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=resume_ocr.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resume_ocr.js","sourceRoot":"","sources":["../../src/ocr/resume_ocr.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAE3E;;;GAGG;AACH,MAAM,UAAU,kBAAkB;IAChC,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC5D,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,OAAO,IAAI,CAAC,KAAK,IAAI,CAAC;AAClD,CAAC;AAED,wBAAwB;AACxB,IAAI,QAAQ,GAAqB,OAAO,CAAC,OAAO,EAAE,CAAC;AAEnD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,UAAkB;IAC7D,mBAAmB,EAAE,CAAC;IACtB,IAAI,CAAC,oBAAoB,EAAE,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CACb,6GAA6G,CAC9G,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;IAE5C,MAAM,GAAG,GAAG,KAAK,IAAiD,EAAE;QAClE,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC/D,MAAM,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,EAAE,MAAM,CAAC,CAAC;QAC5E,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC5B,CAAC,CAAC;IAEF,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7B,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAC7B,OAAO,CAAgD,CAAC;AAC1D,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Page } from 'puppeteer-core';
|
|
2
|
+
export type ChatPageAction = 'resume' | 'not-fit' | 'remark' | 'agree-resume' | 'history';
|
|
3
|
+
export declare function runChatActionOnCurrentConversation(page: Page, options: {
|
|
4
|
+
action: ChatPageAction;
|
|
5
|
+
remark?: string;
|
|
6
|
+
}): Promise<string>;
|
|
7
|
+
//# sourceMappingURL=action.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../src/toolset/action.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAgc3C,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,cAAc,GAAG,SAAS,CAAC;AAE1F,wBAAsB,kCAAkC,CACtD,IAAI,EAAE,IAAI,EACV,OAAO,EAAE;IAAE,MAAM,EAAE,cAAc,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GACnD,OAAO,CAAC,MAAM,CAAC,CAkCjB"}
|