careervivid 1.12.22 ā 1.12.24
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-tracker.d.ts","sourceRoot":"","sources":["../../../src/agent/tools/local-tracker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"local-tracker.d.ts","sourceRoot":"","sources":["../../../src/agent/tools/local-tracker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAwKlC,eAAO,MAAM,iBAAiB,EAAE,IA8H/B,CAAC;AAMF,eAAO,MAAM,kBAAkB,EAAE,IA2HhC,CAAC;AAMF,eAAO,MAAM,eAAe,EAAE,IAmG7B,CAAC;AAMF,eAAO,MAAM,iBAAiB,EAAE,IA2F/B,CAAC;AAMF,eAAO,MAAM,sBAAsB,EAAE,IA+GpC,CAAC;AAMF,eAAO,MAAM,iBAAiB,EAAE,IAoE/B,CAAC;AAMF,eAAO,MAAM,uBAAuB,EAAE,IAAI,EAOzC,CAAC"}
|
|
@@ -19,25 +19,28 @@
|
|
|
19
19
|
* flag_stale_jobs ā surface companies with no recent activity
|
|
20
20
|
*/
|
|
21
21
|
import { Type } from "@google/genai";
|
|
22
|
-
import { readFileSync, writeFileSync, existsSync } from "fs";
|
|
22
|
+
import { readFileSync, writeFileSync, existsSync, mkdirSync } from "fs";
|
|
23
23
|
import { resolve, dirname } from "path";
|
|
24
24
|
import { fileURLToPath } from "url";
|
|
25
|
+
import { homedir } from "os";
|
|
25
26
|
// ---------------------------------------------------------------------------
|
|
26
27
|
// CSV path resolution
|
|
27
28
|
// ---------------------------------------------------------------------------
|
|
28
29
|
function getCsvPath() {
|
|
29
30
|
const __filename = fileURLToPath(import.meta.url);
|
|
30
31
|
const __dirname = dirname(__filename);
|
|
31
|
-
|
|
32
|
+
// 1. Check dev repo locations first (for existing users/contributors)
|
|
33
|
+
const devCandidates = [
|
|
32
34
|
resolve(__dirname, "../../../../career-ops/data/jobs.csv"),
|
|
33
35
|
resolve(__dirname, "../../../../../career-ops/data/jobs.csv"),
|
|
34
36
|
resolve(process.cwd(), "career-ops/data/jobs.csv"),
|
|
35
37
|
];
|
|
36
|
-
for (const p of
|
|
38
|
+
for (const p of devCandidates) {
|
|
37
39
|
if (existsSync(p))
|
|
38
40
|
return p;
|
|
39
41
|
}
|
|
40
|
-
|
|
42
|
+
// 2. Global user data directory (~/.careervivid/jobs.csv) for external/installed users
|
|
43
|
+
return resolve(homedir(), ".careervivid", "jobs.csv");
|
|
41
44
|
}
|
|
42
45
|
// ---------------------------------------------------------------------------
|
|
43
46
|
// Schema v2
|
|
@@ -112,7 +115,12 @@ function serializeCsv(rows) {
|
|
|
112
115
|
function loadCsv() {
|
|
113
116
|
const path = getCsvPath();
|
|
114
117
|
if (!existsSync(path)) {
|
|
115
|
-
|
|
118
|
+
// Auto-bootstrap: create parent directory + empty CSV with headers
|
|
119
|
+
const dir = resolve(path, "..");
|
|
120
|
+
mkdirSync(dir, { recursive: true });
|
|
121
|
+
writeFileSync(path, HEADERS.join(",") + "\n", "utf-8");
|
|
122
|
+
console.log(`\nš Created your job tracker at: ${path}`);
|
|
123
|
+
console.log(` Add jobs with cv agent, or edit the CSV directly.\n`);
|
|
116
124
|
}
|
|
117
125
|
const raw = readFileSync(path, "utf-8");
|
|
118
126
|
return { rows: parseCsv(raw), path };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repl.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/repl.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEzD,OAAO,EAA4B,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAI7E,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,GAAE,MAAM,GAAG,IAAW,QAwBtF;AAED,wBAAsB,OAAO,CAC3B,MAAM,EAAE,WAAW,GAAG,sBAAsB,GAAG,IAAI,EACnD,OAAO,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,EAC9K,gBAAgB,EAAE,WAAW,EAC7B,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,iBAAiB,EAAE,MAAM,EACzB,KAAK,EAAE,GAAG,EAAE,GACX,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"repl.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/repl.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEzD,OAAO,EAA4B,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAI7E,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,GAAE,MAAM,GAAG,IAAW,QAwBtF;AAED,wBAAsB,OAAO,CAC3B,MAAM,EAAE,WAAW,GAAG,sBAAsB,GAAG,IAAI,EACnD,OAAO,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,EAC9K,gBAAgB,EAAE,WAAW,EAC7B,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,iBAAiB,EAAE,MAAM,EACzB,KAAK,EAAE,GAAG,EAAE,GACX,OAAO,CAAC,IAAI,CAAC,CA+bf"}
|
|
@@ -196,9 +196,43 @@ export async function askLoop(engine, options, selectedProvider, selectedModel,
|
|
|
196
196
|
let currentSpinner = null;
|
|
197
197
|
let trustAllCommands = false;
|
|
198
198
|
let trustAllWrites = false;
|
|
199
|
+
// Map internal tool names to user-friendly labels
|
|
200
|
+
const TOOL_LABELS = {
|
|
201
|
+
list_directory: "š Scanning workspace...",
|
|
202
|
+
read_file: "š Reading file...",
|
|
203
|
+
run_command: "āļø Running command...",
|
|
204
|
+
write_file: "āļø Writing file...",
|
|
205
|
+
patch_file: "āļø Patching file...",
|
|
206
|
+
list_local_jobs: "š Checking job pipeline...",
|
|
207
|
+
add_local_job: "ā Adding job to pipeline...",
|
|
208
|
+
update_local_job: "š Updating job record...",
|
|
209
|
+
score_pipeline: "š Scoring pipeline...",
|
|
210
|
+
get_pipeline_metrics: "š Fetching pipeline metrics...",
|
|
211
|
+
flag_stale_jobs: "š© Checking stale jobs...",
|
|
212
|
+
list_cover_letters: "š Loading cover letters...",
|
|
213
|
+
get_cover_letter: "š Reading cover letter...",
|
|
214
|
+
save_cover_letter: "š¾ Saving cover letter...",
|
|
215
|
+
delete_cover_letter: "šļø Deleting cover letter...",
|
|
216
|
+
browser_navigate: "š Navigating to page...",
|
|
217
|
+
browser_click: "š±ļø Clicking element...",
|
|
218
|
+
browser_type: "āØļø Typing input...",
|
|
219
|
+
browser_state: "š Reading browser state...",
|
|
220
|
+
browser_screenshot: "šø Taking screenshot...",
|
|
221
|
+
browser_scroll: "š Scrolling page...",
|
|
222
|
+
browser_wait: "ā³ Waiting...",
|
|
223
|
+
browser_close: "š Closing browser...",
|
|
224
|
+
browser_select: "š±ļø Selecting option...",
|
|
225
|
+
search_jobs: "š Searching jobs...",
|
|
226
|
+
get_resume: "š Loading resume...",
|
|
227
|
+
list_resumes: "š Loading resumes...",
|
|
228
|
+
get_profile: "š¤ Loading profile...",
|
|
229
|
+
};
|
|
199
230
|
const handleToolCall = async (name, args) => {
|
|
200
|
-
|
|
201
|
-
|
|
231
|
+
// Show a clean, user-friendly label ā never show raw args
|
|
232
|
+
const label = TOOL_LABELS[name] ?? `āļø Working...`;
|
|
233
|
+
process.stdout.write(chalk.dim(`
|
|
234
|
+
${label}
|
|
235
|
+
`));
|
|
202
236
|
if (name === "run_command") {
|
|
203
237
|
if (trustAllCommands || isSafeCommand(args.command)) {
|
|
204
238
|
return true;
|
|
@@ -265,11 +299,10 @@ export async function askLoop(engine, options, selectedProvider, selectedModel,
|
|
|
265
299
|
};
|
|
266
300
|
const handleToolResult = (name, result) => {
|
|
267
301
|
if (currentSpinner) {
|
|
268
|
-
currentSpinner.succeed(
|
|
302
|
+
currentSpinner.succeed(chalk.dim(`Done`));
|
|
269
303
|
currentSpinner = null;
|
|
270
304
|
}
|
|
271
|
-
|
|
272
|
-
console.log(chalk.dim(` ā
${name}: ${preview}${preview.length >= 120 ? "ā¦" : ""}\n`));
|
|
305
|
+
// Suppress raw output ā the agent will summarize it in natural language
|
|
273
306
|
};
|
|
274
307
|
if (engine) {
|
|
275
308
|
sessionTurns++;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "careervivid",
|
|
3
|
-
"version": "1.12.
|
|
3
|
+
"version": "1.12.24",
|
|
4
4
|
"description": "Official CLI for CareerVivid ā publish articles, diagrams, and portfolio updates from your terminal or AI agent",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -45,6 +45,15 @@
|
|
|
45
45
|
"engines": {
|
|
46
46
|
"node": ">=20.0.0"
|
|
47
47
|
},
|
|
48
|
+
"overrides": {
|
|
49
|
+
"braces": "3.0.3",
|
|
50
|
+
"cross-spawn": "7.0.6",
|
|
51
|
+
"cookie": "0.7.2",
|
|
52
|
+
"ajv": "^6.12.6",
|
|
53
|
+
"micromatch": "^4.0.8",
|
|
54
|
+
"ws": ">=7.5.10",
|
|
55
|
+
"axios": ">=1.7.4"
|
|
56
|
+
},
|
|
48
57
|
"keywords": [
|
|
49
58
|
"careervivid",
|
|
50
59
|
"cli",
|