careervivid 1.12.38 → 1.12.39
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/dist/agent/CareerVividProxyEngine.js +1 -1
- package/dist/agent/QueryEngine.js +2 -2
- package/dist/agent/tools/jobOpenings.d.ts.map +1 -1
- package/dist/agent/tools/jobOpenings.js +35 -15
- package/dist/commands/agent/engineResolver.d.ts.map +1 -1
- package/dist/commands/agent/engineResolver.js +4 -3
- package/package.json +1 -1
|
@@ -291,7 +291,7 @@ export class CareerVividProxyEngine {
|
|
|
291
291
|
hooks.onThinking("Harness intercepted permission seeking. Auto-correcting...");
|
|
292
292
|
this.history.push({
|
|
293
293
|
role: 'user',
|
|
294
|
-
parts: [{ text: "[Harness Instruction]: You halted execution to ask for permission or missing information. RE-READ YOUR HARNESS DIRECTIVES. You must autonomously execute the mutation (e.g.,
|
|
294
|
+
parts: [{ text: "[Harness Instruction]: You halted execution to ask for permission or missing information. RE-READ YOUR HARNESS DIRECTIVES. You must autonomously execute the mutation (e.g., tracker_update_job or tracker_add_job) using defaults for missing fields. Do not wait for confirmation. Do it now." }]
|
|
295
295
|
});
|
|
296
296
|
continue;
|
|
297
297
|
}
|
|
@@ -232,7 +232,7 @@ export class QueryEngine {
|
|
|
232
232
|
hooks.onThinking("Harness intercepted permission seeking. Auto-correcting...");
|
|
233
233
|
this.history.push({
|
|
234
234
|
role: 'user',
|
|
235
|
-
parts: [{ text: "[Harness Instruction]: You halted execution to ask for permission or missing information. RE-READ YOUR HARNESS DIRECTIVES. You must autonomously execute the mutation (e.g.,
|
|
235
|
+
parts: [{ text: "[Harness Instruction]: You halted execution to ask for permission or missing information. RE-READ YOUR HARNESS DIRECTIVES. You must autonomously execute the mutation (e.g., tracker_update_job or tracker_add_job) using defaults for missing fields. Do not wait for confirmation. Do it now." }]
|
|
236
236
|
});
|
|
237
237
|
continue;
|
|
238
238
|
}
|
|
@@ -345,7 +345,7 @@ export class QueryEngine {
|
|
|
345
345
|
hooks.onThinking("Harness intercepted permission seeking. Auto-correcting...");
|
|
346
346
|
this.history.push({
|
|
347
347
|
role: 'user',
|
|
348
|
-
parts: [{ text: "[Harness Instruction]: You halted execution to ask for permission or missing information. RE-READ YOUR HARNESS DIRECTIVES. You must autonomously execute the mutation (e.g.,
|
|
348
|
+
parts: [{ text: "[Harness Instruction]: You halted execution to ask for permission or missing information. RE-READ YOUR HARNESS DIRECTIVES. You must autonomously execute the mutation (e.g., tracker_update_job or tracker_add_job) using defaults for missing fields. Do not wait for confirmation. Do it now." }]
|
|
349
349
|
});
|
|
350
350
|
continue;
|
|
351
351
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jobOpenings.d.ts","sourceRoot":"","sources":["../../../src/agent/tools/jobOpenings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"jobOpenings.d.ts","sourceRoot":"","sources":["../../../src/agent/tools/jobOpenings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAkdlC,eAAO,MAAM,gBAAgB,EAAE,IA2O9B,CAAC;AAMF,eAAO,MAAM,gBAAgB,EAAE,IA4G9B,CAAC;AAQF,eAAO,MAAM,iBAAiB,EAAE,IA8F/B,CAAC;AAMF,eAAO,MAAM,sBAAsB,EAAE,IAAI,EAIxC,CAAC"}
|
|
@@ -14,11 +14,10 @@
|
|
|
14
14
|
* Direct — JSON-LD schema.org/JobPosting + heuristic <a> tag parsing
|
|
15
15
|
*/
|
|
16
16
|
import { Type } from "@google/genai";
|
|
17
|
-
import { readFileSync, writeFileSync, existsSync,
|
|
17
|
+
import { readFileSync, writeFileSync, existsSync, copyFileSync, renameSync, } from "fs";
|
|
18
18
|
import { resolve, dirname } from "path";
|
|
19
19
|
import { fileURLToPath } from "url";
|
|
20
20
|
import { homedir } from "os";
|
|
21
|
-
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
22
21
|
// ---------------------------------------------------------------------------
|
|
23
22
|
// CSV Schema — job_openings.csv
|
|
24
23
|
// ---------------------------------------------------------------------------
|
|
@@ -40,16 +39,39 @@ const OPENING_HEADERS = [
|
|
|
40
39
|
// ---------------------------------------------------------------------------
|
|
41
40
|
// File path
|
|
42
41
|
// ---------------------------------------------------------------------------
|
|
42
|
+
/** Resolves the jobs.csv path the same way local-tracker.ts does. */
|
|
43
|
+
function getJobsCsvPath() {
|
|
44
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
45
|
+
const __dirpath = dirname(__filename);
|
|
46
|
+
// 1. Check dev repo locations (for local development)
|
|
47
|
+
const devCandidates = [
|
|
48
|
+
resolve(__dirpath, "../../../../career-ops/data/jobs.csv"),
|
|
49
|
+
resolve(__dirpath, "../../../../../career-ops/data/jobs.csv"),
|
|
50
|
+
resolve(process.cwd(), "career-ops/data/jobs.csv"),
|
|
51
|
+
];
|
|
52
|
+
for (const p of devCandidates) {
|
|
53
|
+
if (existsSync(p))
|
|
54
|
+
return p;
|
|
55
|
+
}
|
|
56
|
+
// 2. Global ~/.careervivid/jobs.csv for installed users
|
|
57
|
+
return resolve(homedir(), ".careervivid", "jobs.csv");
|
|
58
|
+
}
|
|
43
59
|
function getOpeningsPath() {
|
|
44
|
-
|
|
45
|
-
const
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
60
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
61
|
+
const __dirpath = dirname(__filename);
|
|
62
|
+
// Mirror next to jobs.csv
|
|
63
|
+
const devCandidates = [
|
|
64
|
+
resolve(__dirpath, "../../../../career-ops/data/job_openings.csv"),
|
|
65
|
+
resolve(__dirpath, "../../../../../career-ops/data/job_openings.csv"),
|
|
66
|
+
resolve(process.cwd(), "career-ops/data/job_openings.csv"),
|
|
67
|
+
];
|
|
68
|
+
for (const p of devCandidates) {
|
|
69
|
+
if (existsSync(p))
|
|
70
|
+
return p;
|
|
71
|
+
}
|
|
72
|
+
// Fallback: mirror next to jobs.csv
|
|
73
|
+
const jobsPath = getJobsCsvPath();
|
|
74
|
+
return resolve(dirname(jobsPath), "job_openings.csv");
|
|
53
75
|
}
|
|
54
76
|
function loadOpenings() {
|
|
55
77
|
const path = getOpeningsPath();
|
|
@@ -452,10 +474,8 @@ openings_scan is for drilling into companies the user has already vetted.`,
|
|
|
452
474
|
},
|
|
453
475
|
execute: async (args) => {
|
|
454
476
|
try {
|
|
455
|
-
// Load companies from jobs.csv
|
|
456
|
-
const
|
|
457
|
-
const altPath = resolve(homedir(), ".careervivid", "jobs.csv");
|
|
458
|
-
const csvPath = existsSync(jobsCsvPath) ? jobsCsvPath : altPath;
|
|
477
|
+
// Load companies from jobs.csv — use the same path-resolution as local-tracker.ts
|
|
478
|
+
const csvPath = getJobsCsvPath();
|
|
459
479
|
if (!existsSync(csvPath)) {
|
|
460
480
|
return "❌ No jobs.csv found. Add some companies to your tracker first with tracker_add_job.";
|
|
461
481
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engineResolver.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/engineResolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAyC,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC1F,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAI3C;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,CAE5G;AAED,wBAAgB,WAAW,CACzB,gBAAgB,EAAE,WAAW,EAC7B,aAAa,EAAE,MAAM,EACrB,iBAAiB,EAAE,MAAM,EACzB,KAAK,EAAE,IAAI,EAAE,EACb,cAAc,EAAE,MAAM,EACtB,eAAe,EAAE,OAAO,EACxB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B,WAAW,GAAG,sBAAsB,GAAG,IAAI,CA2B7C;AAED,wBAAgB,WAAW,CACzB,OAAO,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,EAC9F,gBAAgB,EAAE,MAAM,EACxB,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"engineResolver.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/engineResolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAyC,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC1F,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAI3C;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,CAE5G;AAED,wBAAgB,WAAW,CACzB,gBAAgB,EAAE,WAAW,EAC7B,aAAa,EAAE,MAAM,EACrB,iBAAiB,EAAE,MAAM,EACzB,KAAK,EAAE,IAAI,EAAE,EACb,cAAc,EAAE,MAAM,EACtB,eAAe,EAAE,OAAO,EACxB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B,WAAW,GAAG,sBAAsB,GAAG,IAAI,CA2B7C;AAED,wBAAgB,WAAW,CACzB,OAAO,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,EAC9F,gBAAgB,EAAE,MAAM,EACxB,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,MAAM,QAwBvB"}
|
|
@@ -53,10 +53,11 @@ export function printBanner(options, selectedProvider, selectedModel, thinkingBu
|
|
|
53
53
|
if (options.coding)
|
|
54
54
|
console.log(chalk.green(" ✔ Coding mode: file I/O, shell, search tools active"));
|
|
55
55
|
if (options.jobs) {
|
|
56
|
-
console.log(chalk.cyan(" ✔ Job mode: search,
|
|
56
|
+
console.log(chalk.cyan(" ✔ Job mode: search, score, apply_to_job, openings_scan tools active"));
|
|
57
57
|
console.log(chalk.magenta(" ✔ Browser mode: navigate, click, type, select, scroll, screenshot tools active"));
|
|
58
|
-
console.log(chalk.yellow(" ✔ Local tracker:
|
|
59
|
-
console.log(chalk.yellow(" +
|
|
58
|
+
console.log(chalk.yellow(" ✔ Local tracker: tracker_list_jobs · tracker_update_job · tracker_add_job"));
|
|
59
|
+
console.log(chalk.yellow(" + tracker_rank_priority · tracker_dashboard · tracker_find_stale"));
|
|
60
|
+
console.log(chalk.yellow(" + tracker_recheck_urls · openings_scan · openings_list (jobs.csv v2)"));
|
|
60
61
|
}
|
|
61
62
|
else if (options.resume)
|
|
62
63
|
console.log(chalk.cyan(" ✔ Resume mode: get_resume tool active"));
|