careervivid 1.12.20 → 1.12.22

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":"instructions.d.ts","sourceRoot":"","sources":["../../src/agent/instructions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH,eAAO,MAAM,aAAa,QAWlB,CAAC;AAMT,eAAO,MAAM,cAAc,QAcnB,CAAC;AAMT,eAAO,MAAM,cAAc,QAgBnB,CAAC;AAMT,eAAO,MAAM,kBAAkB,QA2BvB,CAAC;AAMT,eAAO,MAAM,eAAe,QAOpB,CAAC;AAMT,eAAO,MAAM,YAAY,QAoBjB,CAAC;AAMT,eAAO,MAAM,iBAAiB,QActB,CAAC;AAMT;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE;IACzC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,GAAG,MAAM,CA0BT"}
1
+ {"version":3,"file":"instructions.d.ts","sourceRoot":"","sources":["../../src/agent/instructions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,eAAO,MAAM,aAAa,QAalB,CAAC;AAMT,eAAO,MAAM,cAAc,QAcnB,CAAC;AAMT,eAAO,MAAM,cAAc,QAgBnB,CAAC;AAMT,eAAO,MAAM,kBAAkB,QA2BvB,CAAC;AAMT,eAAO,MAAM,eAAe,QAOpB,CAAC;AAMT,eAAO,MAAM,YAAY,QAoBjB,CAAC;AAMT,eAAO,MAAM,iBAAiB,QActB,CAAC;AAMT;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE;IACzC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,GAAG,MAAM,CA0BT"}
@@ -10,20 +10,19 @@
10
10
  *
11
11
  * DO NOT scatter instructions across QueryEngine.ts, engineResolver.ts, or anywhere else.
12
12
  */
13
- // ---------------------------------------------------------------------------
14
- // §1 — Shared Agent Identity (injected into every mode)
15
- // ---------------------------------------------------------------------------
16
13
  export const BASE_IDENTITY = `
17
14
  You are CareerVivid AI — an autonomous career intelligence agent built into the CareerVivid CLI.
18
15
  You help users manage their resume, track job applications, find new opportunities, prep for interviews, and grow their career.
19
16
 
20
17
  ## Core Behavioral Rules
21
18
 
22
- 1. **TOOL-FIRST** — Always call the relevant tool BEFORE writing prose. Never answer pipeline or resume questions from memory.
23
- 2. **MINIMAL FOOTPRINT** — Make the smallest action that solves the problem. Confirm before destructive operations (delete, overwrite).
24
- 3. **SELF-VERIFY** — After any write or mutation, confirm the result by re-reading or re-fetching the changed resource.
25
- 4. **NO CONVERSATIONAL STALLS** — Never say "I would…", "I can…", or "Would you like me to…" before calling a tool. Just call it.
26
- 5. **TRANSPARENCY** — If uncertain, list options and your recommendation. Never silently choose.
19
+ 1. **ANSWER FIRST** — If the user asks a direct question (e.g., "Did you find X?", "What is Y?"), answer it explicitly and immediately. Do not ignore the question or bury it behind a massive multi-step automated tangent.
20
+ 2. **STAY TARGETED** — Perform exactly the task requested. Do not go on unprompted tangents or invent massive autonomous workflows that the user didn't ask for.
21
+ 3. **TOOL-FIRST** — Always call the relevant tool BEFORE writing prose. Never answer pipeline or resume questions from memory.
22
+ 4. **MINIMAL FOOTPRINT** — Make the smallest action that solves the problem. Confirm before destructive operations (delete, overwrite).
23
+ 5. **SELF-VERIFY** — After any write or mutation, confirm the result by re-reading or re-fetching the changed resource.
24
+ 6. **NO CONVERSATIONAL STALLS** — Never say "I would…", "I can…", or "Would you like me to…" before calling a tool. Just call it.
25
+ 7. **TRANSPARENCY** — If uncertain, list options and your recommendation. Never silently choose.
27
26
  `.trim();
28
27
  // ---------------------------------------------------------------------------
29
28
  // §2 — Resume section (appended in --resume and --jobs modes)
@@ -114,7 +113,7 @@ export const JOBS_HARNESS = `
114
113
  1. DO NOT ASK FOR PERMISSION before calling mutative tools (add_local_job, update_local_job, etc.) unless the action is destructive.
115
114
  2. Fill in missing details with sensible defaults (TBD, today's date, empty strings) rather than stalling for input.
116
115
  3. If you catch yourself explaining what you *are going to do* instead of calling the tool — STOP and call the tool.
117
- 4. Complete the full workflow in a single turn. Avoid handoffs like "Would you like me to".
116
+ 4. Complete the full workflow (e.g., tailoring a resume, finding jobs) ONLY if explicitly requested or obviously needed. However, if the user just asks a simple targeted question (e.g., "Did you find X?", "Is my resume up to date?"), DO NOT trigger an unprompted mass workflow (like saving extra companies and rewriting multiple resumes). Answer the question immediately.
118
117
 
119
118
  ## Mandatory Tool Dispatch Table
120
119
 
@@ -1 +1 @@
1
- {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../../src/agent/tools/browser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAmtBlC,eAAO,MAAM,iBAAiB,EAAE,IAAI,EAanC,CAAC"}
1
+ {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../../src/agent/tools/browser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AA4tBlC,eAAO,MAAM,iBAAiB,EAAE,IAAI,EAanC,CAAC"}
@@ -18,7 +18,7 @@
18
18
  * The dedicated profile avoids this entirely and is always available.
19
19
  */
20
20
  import { Type } from "@google/genai";
21
- import { chromium } from "playwright";
21
+ import { chromium } from "playwright-core";
22
22
  import { homedir } from "os";
23
23
  import { join, resolve, dirname } from "path";
24
24
  import { existsSync, mkdirSync } from "fs";
@@ -76,6 +76,14 @@ async function ensureBrowser() {
76
76
  const profileDir = getAutomationProfileDir();
77
77
  const executablePath = getChromeBinaryPath();
78
78
  console.log(chalk.dim(" 🌐 Launching automation browser..."));
79
+ if (!executablePath) {
80
+ console.log("");
81
+ console.log(chalk.red("❌ Error: Missing local browser"));
82
+ console.log(chalk.dim("The CareerVivid CLI uses playwright-core to launch your existing browser installation to save hundreds of megabytes of setup time."));
83
+ console.log(chalk.dim("However, Google Chrome or Microsoft Edge could not be found in the standard system locations."));
84
+ console.log(chalk.yellow("\nPlease install Google Chrome to use AI Browser automation: https://www.google.com/chrome/"));
85
+ process.exit(1);
86
+ }
79
87
  activeContext = await chromium.launchPersistentContext(profileDir, {
80
88
  headless: false,
81
89
  executablePath, // real Chrome binary if available, otherwise bundled Chromium
@@ -122,7 +122,7 @@ export async function loadGeneratedAdapter(adapterPath) {
122
122
  // ── HTML scraper (headless) ───────────────────────────────────────────────────
123
123
  async function scrapeFormHtml(url) {
124
124
  // Lazy import Playwright so it's only required when actually generating
125
- const { chromium } = await import("playwright");
125
+ const { chromium } = await import("playwright-core");
126
126
  const browser = await chromium.launch({ headless: true });
127
127
  try {
128
128
  const page = await browser.newPage();
@@ -178,7 +178,7 @@ Requirements:
178
178
  - Use Playwright locators: page.getByLabel(), page.getByPlaceholder(), page.locator()
179
179
  - Add humanType delays: await new Promise(r => setTimeout(r, 200 + Math.random() * 300))
180
180
  - The platform property should be: "${hostname}"
181
- - Import Page from "playwright" using: /** @type {import('playwright').Page} */
181
+ - Import Page from "playwright-core" using: /** @type {import('playwright').Page} */
182
182
  - Use JSDoc type annotations instead of TypeScript syntax (this is plain JavaScript)
183
183
  - Do NOT use TypeScript syntax (no interface, no type annotations with :, no import type)
184
184
  - The output must be a complete, standalone .mjs file
@@ -4,7 +4,7 @@
4
4
  * Handles job application forms on jobs.ashbyhq.com
5
5
  * Ashby uses a React SPA with dynamically rendered form fields.
6
6
  */
7
- import type { Page } from "playwright";
7
+ import type { Page } from "playwright-core";
8
8
  import type { ATSAdapter, FormField } from "../index.js";
9
9
  import type { ApplyProfile } from "../gemini-agent.js";
10
10
  export declare class AshbyAdapter implements ATSAdapter {
@@ -1 +1 @@
1
- {"version":3,"file":"ashby.d.ts","sourceRoot":"","sources":["../../../src/apply/adapters/ashby.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAsDvD,qBAAa,YAAa,YAAW,UAAU;IAC7C,QAAQ,EAAG,OAAO,CAAU;IAEtB,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBzD,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC;QAChE,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,OAAO,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC;IAwDI,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IA+D/C,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBtE,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;CASxC"}
1
+ {"version":3,"file":"ashby.d.ts","sourceRoot":"","sources":["../../../src/apply/adapters/ashby.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAsDvD,qBAAa,YAAa,YAAW,UAAU;IAC7C,QAAQ,EAAG,OAAO,CAAU;IAEtB,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBzD,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC;QAChE,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,OAAO,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC;IAwDI,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IA+D/C,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBtE,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;CASxC"}
@@ -7,7 +7,7 @@
7
7
  * Works reasonably well for: SmartRecruiters, iCIMS, JazzHR, BambooHR,
8
8
  * Breezy, Pinpoint, and company-hosted career sites.
9
9
  */
10
- import type { Page } from "playwright";
10
+ import type { Page } from "playwright-core";
11
11
  import type { ATSAdapter, FormField } from "../index.js";
12
12
  import type { ApplyProfile } from "../gemini-agent.js";
13
13
  export declare class GenericAdapter implements ATSAdapter {
@@ -1 +1 @@
1
- {"version":3,"file":"generic.d.ts","sourceRoot":"","sources":["../../../src/apply/adapters/generic.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAoDvD,qBAAa,cAAe,YAAW,UAAU;IAC/C,QAAQ,EAAG,SAAS,CAAU;IAExB,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BzD,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC;QAChE,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,OAAO,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC;IAsDI,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IA0E/C,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoCtE,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;CAuBxC"}
1
+ {"version":3,"file":"generic.d.ts","sourceRoot":"","sources":["../../../src/apply/adapters/generic.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAoDvD,qBAAa,cAAe,YAAW,UAAU;IAC/C,QAAQ,EAAG,SAAS,CAAU;IAExB,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BzD,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC;QAChE,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,OAAO,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC;IAsDI,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IA0E/C,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoCtE,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;CAuBxC"}
@@ -10,7 +10,7 @@
10
10
  * 2. extractFields() — CSS fallback for passing field list to Gemini agent.
11
11
  * 3. fillField() — fills a single field by selector (used by Gemini agent actions).
12
12
  */
13
- import type { Page } from "playwright";
13
+ import type { Page } from "playwright-core";
14
14
  import type { ATSAdapter, FormField } from "../index.js";
15
15
  import type { ApplyProfile } from "../gemini-agent.js";
16
16
  export declare class GreenhouseAdapter implements ATSAdapter {
@@ -1 +1 @@
1
- {"version":3,"file":"greenhouse.d.ts","sourceRoot":"","sources":["../../../src/apply/adapters/greenhouse.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AA4CvD,qBAAa,iBAAkB,YAAW,UAAU;IAClD,QAAQ,EAAG,YAAY,CAAU;IAI3B,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW/D,OAAO,CAAC,qBAAqB;IAyBvB,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC;QAChE,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,OAAO,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC;YA6DY,WAAW;YAeX,YAAY;YAgBZ,aAAa;IAkCrB,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAgD/C,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BtE,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;CASxC"}
1
+ {"version":3,"file":"greenhouse.d.ts","sourceRoot":"","sources":["../../../src/apply/adapters/greenhouse.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AA4CvD,qBAAa,iBAAkB,YAAW,UAAU;IAClD,QAAQ,EAAG,YAAY,CAAU;IAI3B,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW/D,OAAO,CAAC,qBAAqB;IAyBvB,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC;QAChE,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,OAAO,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC;YA6DY,WAAW;YAeX,YAAY;YAgBZ,aAAa;IAkCrB,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAgD/C,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BtE,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;CASxC"}
@@ -4,7 +4,7 @@
4
4
  * Handles job application forms on icims.com platforms.
5
5
  * iCIMS forms are often embedded inside an iframe (#icims_content_iframe).
6
6
  */
7
- import type { Page, FrameLocator } from "playwright";
7
+ import type { Page, FrameLocator } from "playwright-core";
8
8
  import type { ATSAdapter, FormField } from "../index.js";
9
9
  import type { ApplyProfile } from "../gemini-agent.js";
10
10
  export declare class IcimsAdapter implements ATSAdapter {
@@ -1 +1 @@
1
- {"version":3,"file":"icims.d.ts","sourceRoot":"","sources":["../../../src/apply/adapters/icims.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,YAAY,EAAW,MAAM,YAAY,CAAC;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAsBvD,qBAAa,YAAa,YAAW,UAAU;IAC7C,QAAQ,EAAG,OAAO,CAAU;IAE5B;;;OAGG;IACG,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,GAAG,YAAY,CAAC;IASpD,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAezD,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAiDpG,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAwE/C,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BtE,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;CAcxC"}
1
+ {"version":3,"file":"icims.d.ts","sourceRoot":"","sources":["../../../src/apply/adapters/icims.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,YAAY,EAAW,MAAM,iBAAiB,CAAC;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAsBvD,qBAAa,YAAa,YAAW,UAAU;IAC7C,QAAQ,EAAG,OAAO,CAAU;IAE5B;;;OAGG;IACG,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,GAAG,YAAY,CAAC;IASpD,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAezD,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAiDpG,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAwE/C,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BtE,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;CAcxC"}
@@ -4,7 +4,7 @@
4
4
  * Handles job application forms on jobs.lever.co
5
5
  * Lever has a clean, consistent form structure.
6
6
  */
7
- import type { Page } from "playwright";
7
+ import type { Page } from "playwright-core";
8
8
  import type { ATSAdapter, FormField } from "../index.js";
9
9
  export declare class LeverAdapter implements ATSAdapter {
10
10
  platform: "lever";
@@ -1 +1 @@
1
- {"version":3,"file":"lever.d.ts","sourceRoot":"","sources":["../../../src/apply/adapters/lever.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGzD,qBAAa,YAAa,YAAW,UAAU;IAC7C,QAAQ,EAAG,OAAO,CAAU;IAEtB,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAazD,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IA6C/C,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBtE,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;CASxC"}
1
+ {"version":3,"file":"lever.d.ts","sourceRoot":"","sources":["../../../src/apply/adapters/lever.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGzD,qBAAa,YAAa,YAAW,UAAU;IAC7C,QAAQ,EAAG,OAAO,CAAU;IAEtB,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAazD,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IA6C/C,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBtE,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;CASxC"}
@@ -7,7 +7,7 @@
7
7
  * This adapter requires explicit opt-in via `--enable-linkedin` flag.
8
8
  * Use sparingly (max 10-15 applications/day) for roles with score ≥ 80%.
9
9
  */
10
- import type { Page } from "playwright";
10
+ import type { Page } from "playwright-core";
11
11
  import type { ATSAdapter, FormField } from "../index.js";
12
12
  export declare class LinkedInAdapter implements ATSAdapter {
13
13
  platform: "linkedin";
@@ -1 +1 @@
1
- {"version":3,"file":"linkedin.d.ts","sourceRoot":"","sources":["../../../src/apply/adapters/linkedin.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGzD,qBAAa,eAAgB,YAAW,UAAU;IAChD,QAAQ,EAAG,UAAU,CAAU;IAEzB,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBzD,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAqE/C,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoB5E;;OAEG;IACG,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;CAsBxC"}
1
+ {"version":3,"file":"linkedin.d.ts","sourceRoot":"","sources":["../../../src/apply/adapters/linkedin.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGzD,qBAAa,eAAgB,YAAW,UAAU;IAChD,QAAQ,EAAG,UAAU,CAAU;IAEzB,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBzD,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAqE/C,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoB5E;;OAEG;IACG,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;CAsBxC"}
@@ -19,7 +19,7 @@
19
19
  * After launch, the caller is responsible for navigating to the target URL
20
20
  * via page.goto(). The browser starts at about:blank.
21
21
  */
22
- import { type BrowserContext, type Page } from "playwright";
22
+ import { type BrowserContext, type Page } from "playwright-core";
23
23
  /** Type text into a field with random per-character delay (30–120ms) */
24
24
  export declare function humanType(page: Page, selector: string, text: string): Promise<void>;
25
25
  /** Random delay between actions (simulates reading / thinking) */
@@ -1 +1 @@
1
- {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../src/apply/browser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAY,KAAK,cAAc,EAAE,KAAK,IAAI,EAAE,MAAM,YAAY,CAAC;AAsEtE,wEAAwE;AACxE,wBAAsB,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMzF;AAED,kEAAkE;AAClE,wBAAsB,UAAU,CAAC,KAAK,SAAM,EAAE,KAAK,SAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAGzE;AAID,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6EAA6E;IAC7E,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,6EAA6E;IAC7E,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,cAAc,CAAC;IACxB,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,wEAAwE;IACxE,sBAAsB,EAAE,OAAO,CAAC;CACjC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,kBAAkB,CAAC,KAAK,GAAE,oBAAyB,GAAG,OAAO,CAAC,YAAY,CAAC,CA0DhG;AAKD,wBAAgB,eAAe,IAAI,OAAO,CAEzC"}
1
+ {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../src/apply/browser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAY,KAAK,cAAc,EAAE,KAAK,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAsE3E,wEAAwE;AACxE,wBAAsB,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMzF;AAED,kEAAkE;AAClE,wBAAsB,UAAU,CAAC,KAAK,SAAM,EAAE,KAAK,SAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAGzE;AAID,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6EAA6E;IAC7E,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,6EAA6E;IAC7E,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,cAAc,CAAC;IACxB,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,wEAAwE;IACxE,sBAAsB,EAAE,OAAO,CAAC;CACjC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,kBAAkB,CAAC,KAAK,GAAE,oBAAyB,GAAG,OAAO,CAAC,YAAY,CAAC,CAmEhG;AAKD,wBAAgB,eAAe,IAAI,OAAO,CAEzC"}
@@ -19,7 +19,7 @@
19
19
  * After launch, the caller is responsible for navigating to the target URL
20
20
  * via page.goto(). The browser starts at about:blank.
21
21
  */
22
- import { chromium } from "playwright";
22
+ import { chromium } from "playwright-core";
23
23
  import { homedir } from "os";
24
24
  import { join } from "path";
25
25
  import { existsSync, mkdirSync } from "fs";
@@ -119,6 +119,14 @@ export async function launchApplyBrowser(_opts = {}) {
119
119
  console.log(chalk.cyan(" ℹ️ First run — a dedicated automation browser will open.\n") +
120
120
  chalk.dim(" Your session will be saved for future applications.\n"));
121
121
  }
122
+ if (!executablePath) {
123
+ console.log("");
124
+ console.log(chalk.red("❌ Error: Missing local browser"));
125
+ console.log(chalk.dim("The CareerVivid CLI uses playwright-core to launch your existing browser installation to save hundreds of megabytes of setup time."));
126
+ console.log(chalk.dim("However, Google Chrome or Microsoft Edge could not be found in the standard system locations."));
127
+ console.log(chalk.yellow("\nPlease install Google Chrome to use AI Browser automation: https://www.google.com/chrome/"));
128
+ process.exit(1);
129
+ }
122
130
  const context = await chromium.launchPersistentContext(profileDir, {
123
131
  headless: _opts.headless ?? false,
124
132
  // Use real Chrome binary for best ATS site compatibility.
@@ -11,7 +11,7 @@
11
11
  *
12
12
  * This replaces brittle CSS-selector scraping with intent-driven AI navigation.
13
13
  */
14
- import type { Page } from "playwright";
14
+ import type { Page } from "playwright-core";
15
15
  export interface ApplyProfile {
16
16
  firstName?: string;
17
17
  lastName?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"gemini-agent.d.ts","sourceRoot":"","sources":["../../src/apply/gemini-agent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAYvC,MAAM,WAAW,YAAY;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACnC;AAID,wBAAgB,WAAW,IAAI,YAAY,CAS1C;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAIvD;AAID,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;IACjG,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mEAAmE;IACnE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uDAAuD;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,OAAO,CAAC;CACf;AAoCD,qBAAa,eAAe;IAC1B,OAAO,CAAC,EAAE,CAAc;IACxB,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,UAAU,CAA2D;IAC7E,OAAO,CAAC,SAAS,CAAK;gBAEV,IAAI,EAAE;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,YAAY,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAChC,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB;IAWD;;;OAGG;IACG,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,iBAAiB,CAAC;YAmEnC,SAAS;YAyET,aAAa;YA6Eb,OAAO;CAyBtB"}
1
+ {"version":3,"file":"gemini-agent.d.ts","sourceRoot":"","sources":["../../src/apply/gemini-agent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAY5C,MAAM,WAAW,YAAY;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACnC;AAID,wBAAgB,WAAW,IAAI,YAAY,CAS1C;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAIvD;AAID,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;IACjG,wCAAwC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mEAAmE;IACnE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uDAAuD;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,OAAO,CAAC;CACf;AAoCD,qBAAa,eAAe;IAC1B,OAAO,CAAC,EAAE,CAAc;IACxB,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,UAAU,CAA2D;IAC7E,OAAO,CAAC,SAAS,CAAK;gBAEV,IAAI,EAAE;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,YAAY,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAChC,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;QAChB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB;IAWD;;;OAGG;IACG,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,iBAAiB,CAAC;YAmEnC,SAAS;YAyET,aAAa;YA6Eb,OAAO;CAyBtB"}
@@ -8,15 +8,15 @@ export type ATSPlatform = "greenhouse" | "lever" | "ashby" | "linkedin" | "workd
8
8
  export interface ATSAdapter {
9
9
  platform: ATSPlatform;
10
10
  /** Navigate to the application page (may click "Apply" button) */
11
- navigateToForm: (page: import("playwright").Page, jobUrl: string) => Promise<void>;
11
+ navigateToForm: (page: import("playwright-core").Page, jobUrl: string) => Promise<void>;
12
12
  /** Extract form fields from the current page */
13
- extractFields: (page: import("playwright").Page) => Promise<FormField[]>;
13
+ extractFields: (page: import("playwright-core").Page) => Promise<FormField[]>;
14
14
  /** Fill a single field given selector + answer */
15
- fillField: (page: import("playwright").Page, field: FormField, answer: string) => Promise<void>;
15
+ fillField: (page: import("playwright-core").Page, field: FormField, answer: string) => Promise<void>;
16
16
  /** Click the final submit button */
17
- submit: (page: import("playwright").Page) => Promise<void>;
17
+ submit: (page: import("playwright-core").Page) => Promise<void>;
18
18
  /** Optional: fill standard fields directly from saved user profile (no AI needed) */
19
- fillFromProfile?: (page: import("playwright").Page, profile: import("./gemini-agent.js").ApplyProfile) => Promise<{
19
+ fillFromProfile?: (page: import("playwright-core").Page, profile: import("./gemini-agent.js").ApplyProfile) => Promise<{
20
20
  filled: string[];
21
21
  skipped: string[];
22
22
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/apply/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,WAAW,GACnB,YAAY,GACZ,OAAO,GACP,OAAO,GACP,UAAU,GACV,SAAS,GACT,OAAO,GACP,SAAS,CAAC;AAEd,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,WAAW,CAAC;IACtB,kEAAkE;IAClE,cAAc,EAAE,CAAC,IAAI,EAAE,OAAO,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnF,gDAAgD;IAChD,aAAa,EAAE,CAAC,IAAI,EAAE,OAAO,YAAY,EAAE,IAAI,KAAK,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IACzE,kDAAkD;IAClD,SAAS,EAAE,CAAC,IAAI,EAAE,OAAO,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChG,oCAAoC;IACpC,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,YAAY,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3D,qFAAqF;IACrF,eAAe,CAAC,EAAE,CAChB,IAAI,EAAE,OAAO,YAAY,EAAE,IAAI,EAC/B,OAAO,EAAE,OAAO,mBAAmB,EAAE,YAAY,KAC9C,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;CACvD;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;IACjF,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAID,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CASvD;AAID,wBAAsB,UAAU,CAAC,QAAQ,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CA2B3E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/apply/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,WAAW,GACnB,YAAY,GACZ,OAAO,GACP,OAAO,GACP,UAAU,GACV,SAAS,GACT,OAAO,GACP,SAAS,CAAC;AAEd,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,WAAW,CAAC;IACtB,kEAAkE;IAClE,cAAc,EAAE,CAAC,IAAI,EAAE,OAAO,iBAAiB,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxF,gDAAgD;IAChD,aAAa,EAAE,CAAC,IAAI,EAAE,OAAO,iBAAiB,EAAE,IAAI,KAAK,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IAC9E,kDAAkD;IAClD,SAAS,EAAE,CAAC,IAAI,EAAE,OAAO,iBAAiB,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrG,oCAAoC;IACpC,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,iBAAiB,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChE,qFAAqF;IACrF,eAAe,CAAC,EAAE,CAChB,IAAI,EAAE,OAAO,iBAAiB,EAAE,IAAI,EACpC,OAAO,EAAE,OAAO,mBAAmB,EAAE,YAAY,KAC9C,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;CACvD;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;IACjF,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAID,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CASvD;AAID,wBAAsB,UAAU,CAAC,QAAQ,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CA2B3E"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "careervivid",
3
- "version": "1.12.20",
3
+ "version": "1.12.22",
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": {
@@ -31,7 +31,7 @@
31
31
  "mermaid": "11.14.0",
32
32
  "open": "^10.1.0",
33
33
  "ora": "^8.1.0",
34
- "playwright": "^1.51.0",
34
+ "playwright-core": "^1.51.0",
35
35
  "semver": "7.7.4",
36
36
  "update-notifier": "^7.3.1"
37
37
  },
@@ -43,7 +43,7 @@
43
43
  "typescript": "^5.4.0"
44
44
  },
45
45
  "engines": {
46
- "node": ">=18.0.0"
46
+ "node": ">=20.0.0"
47
47
  },
48
48
  "keywords": [
49
49
  "careervivid",