career-compass-mcp 2.3.0 → 2.4.1

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 (63) hide show
  1. package/README.md +98 -12
  2. package/build/bin/cli.d.ts.map +1 -1
  3. package/build/bin/cli.js +70 -7
  4. package/build/bin/cli.js.map +1 -1
  5. package/build/src/dashboard-lite/render.d.ts +11 -11
  6. package/build/src/dashboard-lite/render.d.ts.map +1 -1
  7. package/build/src/dashboard-lite/render.js +40 -26
  8. package/build/src/dashboard-lite/render.js.map +1 -1
  9. package/build/src/dashboard-lite/server.d.ts +5 -6
  10. package/build/src/dashboard-lite/server.d.ts.map +1 -1
  11. package/build/src/dashboard-lite/server.js +75 -2
  12. package/build/src/dashboard-lite/server.js.map +1 -1
  13. package/build/src/manifest-format.d.ts +56 -0
  14. package/build/src/manifest-format.d.ts.map +1 -0
  15. package/build/src/manifest-format.js +67 -0
  16. package/build/src/manifest-format.js.map +1 -0
  17. package/build/src/pipeline-stats.d.ts +59 -0
  18. package/build/src/pipeline-stats.d.ts.map +1 -0
  19. package/build/src/pipeline-stats.js +66 -0
  20. package/build/src/pipeline-stats.js.map +1 -0
  21. package/build/src/sample-data.d.ts +49 -0
  22. package/build/src/sample-data.d.ts.map +1 -0
  23. package/build/src/sample-data.js +234 -0
  24. package/build/src/sample-data.js.map +1 -0
  25. package/build/src/schemas/career-schema.d.ts +15 -4
  26. package/build/src/schemas/career-schema.d.ts.map +1 -1
  27. package/build/src/schemas/career-schema.js +36 -2
  28. package/build/src/schemas/career-schema.js.map +1 -1
  29. package/build/src/server.d.ts +14 -1
  30. package/build/src/server.d.ts.map +1 -1
  31. package/build/src/server.js +4 -1
  32. package/build/src/server.js.map +1 -1
  33. package/build/src/storage/file-store.d.ts +10 -0
  34. package/build/src/storage/file-store.d.ts.map +1 -1
  35. package/build/src/storage/file-store.js +72 -5
  36. package/build/src/storage/file-store.js.map +1 -1
  37. package/build/src/tools/career-kb.d.ts +26 -0
  38. package/build/src/tools/career-kb.d.ts.map +1 -1
  39. package/build/src/tools/career-kb.js +138 -13
  40. package/build/src/tools/career-kb.js.map +1 -1
  41. package/build/src/tools/doctor.d.ts +115 -0
  42. package/build/src/tools/doctor.d.ts.map +1 -0
  43. package/build/src/tools/doctor.js +549 -0
  44. package/build/src/tools/doctor.js.map +1 -0
  45. package/build/src/tools/interview.d.ts.map +1 -1
  46. package/build/src/tools/interview.js +206 -0
  47. package/build/src/tools/interview.js.map +1 -1
  48. package/build/src/tools/opportunity.d.ts.map +1 -1
  49. package/build/src/tools/opportunity.js +101 -22
  50. package/build/src/tools/opportunity.js.map +1 -1
  51. package/build/src/tools/pipeline.d.ts +23 -1
  52. package/build/src/tools/pipeline.d.ts.map +1 -1
  53. package/build/src/tools/pipeline.js +110 -17
  54. package/build/src/tools/pipeline.js.map +1 -1
  55. package/build/src/types/tool-args.d.ts +4 -1
  56. package/build/src/types/tool-args.d.ts.map +1 -1
  57. package/build/src/version.d.ts +9 -0
  58. package/build/src/version.d.ts.map +1 -1
  59. package/build/src/version.js +10 -1
  60. package/build/src/version.js.map +1 -1
  61. package/data/example/career/journal.yaml +4 -4
  62. package/data/example/pipeline/applications.yaml +7 -7
  63. package/package.json +5 -2
package/README.md CHANGED
@@ -84,7 +84,9 @@ files on your own disk** and never leaves it.
84
84
  - **Never committed to git:** `.gitignore` excludes `data/career/` and `data/pipeline/`, so
85
85
  the only career data in this repo is the fictional sample under `data/example/` (meet Alex
86
86
  Rivera). Read it, edit it, delete it — it's all just files you own.
87
- - **No account, no cloud sync, no telemetry.** Nothing phones home.
87
+ - **No account, no cloud sync, no telemetry.** The one request the package ever makes is
88
+ `check_setup`'s optional version check against the public npm registry, which carries
89
+ nothing about you or your data — see [Privacy Policy](#privacy-policy).
88
90
  - **What ships in the package:** only the MCP server code and a small set of **fictional
89
91
  example files** (`data/example/` — the "Alex Rivera" persona). There is no real career
90
92
  data in the published package, and none can be — the package and your data live in
@@ -142,7 +144,14 @@ Open Claude and say:
142
144
  Claude will:
143
145
  - Extract your work history, achievements, and skills into structured YAML
144
146
  - Ask clarifying questions about gaps or unclear metrics
145
- - Save everything to your `CAREER_DATA_PATH`
147
+ - Call `save_career_section` once per section to write it to your `CAREER_DATA_PATH`
148
+
149
+ `save_career_section` is the step where your data actually lands on disk — it is
150
+ the only tool that writes the Career KB. It saves one section at a time
151
+ (`profile`, `experience`, `skills`, `education`, `projects`, `testimonials`),
152
+ validates against the schema before touching the file, and keeps the previous
153
+ version as a timestamped `.bak`. Because it replaces a section wholesale, your
154
+ host will ask you to confirm each write; approving them is what fills the KB.
146
155
 
147
156
  That's it. From there, every tool has full context on who you are.
148
157
 
@@ -165,7 +174,7 @@ Career Compass stores all data as YAML files under `CAREER_DATA_PATH` (default `
165
174
  └── applications.yaml # all job applications
166
175
  ```
167
176
 
168
- This is your single source of truth — built once, enriched over time, read by every tool. You never need to edit these files by hand: use `ingest_document` to add data by pasting documents, or just ask Claude to update specific sections.
177
+ This is your single source of truth — built once, enriched over time, read by every tool. You never need to edit these files by hand: paste a document and ask Claude to save it, and it will extract the structure and write it with `save_career_section`. (`ingest_document` reads a document and pulls achievements out of it, but never writes — `save_career_section` is what puts them on disk.)
169
178
 
170
179
  See [`data/example/`](data/example/) in this repo for a fully populated sample (the fictional Alex Rivera).
171
180
 
@@ -205,7 +214,7 @@ cd dashboard && npm install && cd .. # dashboard deps (its own package.json)
205
214
  npm run build
206
215
 
207
216
  # Try it with the bundled Alex Rivera sample (no setup, ~1 minute):
208
- CAREER_DATA_PATH=data/example npm run dashboard
217
+ npm run dashboard -- --sample
209
218
  ```
210
219
 
211
220
  This opens the dashboard at `http://localhost:3141` (or the next available port). Point
@@ -226,13 +235,20 @@ every request**, so a browser refresh always reflects the current state of `~/.c
226
235
  > `dashboard` reports that no dashboard is available.
227
236
 
228
237
  ```bash
229
- # Ships in the package - no clone, no build:
230
- npx -y career-compass-mcp dashboard --lite
238
+ # Try it with the bundled Alex Rivera sample - no clone, no build, no setup:
239
+ npx -y career-compass-mcp dashboard --lite --sample
231
240
 
232
- # Or try it against the bundled Alex Rivera sample:
233
- CAREER_DATA_PATH=data/example npx -y career-compass-mcp dashboard --lite
241
+ # Or against your own data (CAREER_DATA_PATH, or ~/.career-compass if unset):
242
+ npx -y career-compass-mcp dashboard --lite
234
243
  ```
235
244
 
245
+ `--sample` (alias `--demo`) resolves the demo *inside the installed package*, wherever npx
246
+ put it, so it works from any directory and on any shell. The sample is a **read-only
247
+ demo**: its dates are shifted to sit around today each time it is read, so the pipeline
248
+ always looks like a live search, and Career Compass refuses to write into it. Drop the flag
249
+ — and point `CAREER_DATA_PATH` at your own folder, or leave it unset for
250
+ `~/.career-compass` — before saving anything.
251
+
236
252
  Plain `career-compass-mcp dashboard` uses the full dashboard when it's been built and falls back
237
253
  to the lite one otherwise. Data never leaves your machine - the page has no external assets and
238
254
  makes no network calls. Clicking a card copies a ready-to-paste prompt for Claude (in Cowork, the
@@ -243,11 +259,16 @@ same board is available as a live artifact that dispatches the prompt straight i
243
259
  ## Privacy Policy
244
260
 
245
261
  Career Compass runs entirely on your own computer. There is no account, no cloud sync, and
246
- no telemetry — the software makes no outbound network requests of its own.
262
+ no telemetry. The whole package makes exactly one outbound network request: `check_setup`
263
+ asks the public npm registry whether a newer version has been released. It is an
264
+ unauthenticated GET for the package name — nothing about you or your data goes with it —
265
+ and calling `check_setup` with `checkForUpdates: false` never constructs the request at all.
247
266
 
248
267
  - **What it handles:** the career history, job pipeline, and pasted documents you give it.
249
268
  - **Where it's stored:** plain YAML in the directory you set via `CAREER_DATA_PATH`
250
- (default `~/.career-compass/`), plus timestamped `.bak` copies of previous versions.
269
+ (default `~/.career-compass/`), plus timestamped `.bak` copies of previous versions
270
+ (the five most recent per file are kept; older ones are pruned on the next write —
271
+ backups you make by hand are never touched).
251
272
  - **Who else sees it:** only the MCP client you connect (e.g. Claude Desktop), and through
252
273
  it your model provider, under *their* policy — and only for the requests you make.
253
274
  Career Compass sends nothing anywhere on its own.
@@ -265,21 +286,23 @@ published at https://benskamps.github.io/career-compass-mcp/privacy
265
286
 
266
287
  | Tool | What it does |
267
288
  |------|-------------|
268
- | `explore_opportunity` | Analyzes a job posting against your Career KB — fit score, matched strengths, gaps, talking points, day-in-the-life, red flags |
289
+ | `explore_opportunity` | Analyzes a job posting against your Career KB **and your stated preferences** — salary band, remote, relocation, notice period. Returns a fit score, an explicit compensation and location check, matched strengths, gaps, talking points, day-in-the-life, red flags. Pass `sourceFitLabel` ("LinkedIn: strong match") and it will explicitly agree or disagree with the job board, in both directions |
269
290
  | `research_company` | Builds an intelligence brief: product, culture, funding, interview process, strategic fit |
270
291
  | `tailor_resume` | Generates an ATS-optimized, tailored resume from your KB — standard, federal, academic, or functional formats |
271
292
  | `generate_cover_letter` | Writes a personalized cover letter with your actual achievements woven in |
272
293
  | `format_for_ats` | Reformats resume content for specific ATS systems: Workday, Greenhouse, Lever, LinkedIn, iCIMS, Taleo |
273
294
  | `pipeline_view` | Reads the pipeline — list, funnel stats, what needs attention, or one application by id. Read-only, so it runs without a permission prompt |
274
- | `pipeline_add` | Adds one job application to the pipeline |
295
+ | `pipeline_add` | Adds one job application to the pipeline. Takes an optional starting `status` (defaults to `applied`); unknown statuses are rejected with a did-you-mean suggestion |
275
296
  | `pipeline_update` | Updates one application — status, notes, follow-up date, a contact, or an interview round |
276
297
  | `classify_email` | Classifies a job-search email and extracts contacts, dates, and suggested pipeline updates |
277
298
  | `prepare_interview` | Full interview prep: opening pitch, STAR stories, likely questions, company alignment, questions to ask |
299
+ | `interview_arc` | Mid-process projection: reconstructs the arc so far from your recorded rounds and journal signals, then projects what the **next** round will probe — ground already covered, threads the last interview left open, gaps nobody has tested yet, and ranked likely questions |
278
300
  | `evaluate_offer` | Breaks down total comp, compares to market, builds negotiation strategy, drafts counter scripts |
279
301
  | `ingest_document` | Extracts achievements from any document: performance review, award email, LinkedIn recommendation, project summary |
280
302
  | `generate_rejection_response` | Drafts a graceful response that keeps the door open and maintains the relationship |
281
303
  | `capture_insight` | Appends a dated signal to your career journal — fit signals, interview insights, offer reflections, rejection patterns, skill evidence, wins — which later resume, interview, and fit prompts read back |
282
304
  | `save_career_section` | Writes one section of your Career KB to disk as plain YAML — this is how the KB gets populated. Replaces the whole section; the previous version is kept as a `.bak` |
305
+ | `check_setup` | Health-checks the install in one pass — version vs. the current npm release, data directory, which Career KB sections are filled, whether the pipeline parses, leftover temp files, dashboard status — each finding with the one command that fixes it. Read-only. Run it first when anything seems off |
283
306
 
284
307
  ## Resources
285
308
 
@@ -316,6 +339,69 @@ Power-user shortcuts (appear in Claude's prompt menu):
316
339
 
317
340
  ---
318
341
 
342
+ ## Upgrading
343
+
344
+ **If something is behaving strangely, start here:**
345
+
346
+ > **"Run the Career Compass setup check."**
347
+
348
+ That calls `check_setup`, which reports your installed version against the current npm
349
+ release, whether your data directory exists and is writable, which Career KB sections are
350
+ filled in, whether your pipeline file parses, any leftover temp files, and whether the
351
+ dashboard is running — each with the one command that fixes it. It is read-only and usually
352
+ answers the question before you have to debug anything.
353
+
354
+ It is also the fastest way to find out you are simply on an old version, which is the most
355
+ common cause of "this feels rough around the edges."
356
+
357
+ Your career data is never touched by an upgrade. It lives in `CAREER_DATA_PATH`, not in the
358
+ package, and older data directories keep working — sections added by later releases are
359
+ created when you first write them.
360
+
361
+ ### Claude Desktop (`.mcpb` bundle)
362
+
363
+ The bundle does not self-update. Download the current `.mcpb` from the
364
+ [Releases page](https://github.com/benskamps/career-compass-mcp/releases), then in Claude
365
+ Desktop go to **Settings → Extensions**, remove the installed Career Compass extension, and
366
+ install the new file. Restart Claude Desktop.
367
+
368
+ Your settings — including `CAREER_DATA_PATH` — are re-entered on install, so note the path
369
+ before you remove the old one. `check_setup` prints it.
370
+
371
+ ### npx (the config in Quick Start)
372
+
373
+ `npx -y career-compass-mcp` resolves the latest published version, but npx caches, so a
374
+ stale copy can persist. To force the current one:
375
+
376
+ ```bash
377
+ npx -y career-compass-mcp@latest --version
378
+ ```
379
+
380
+ Then restart your MCP client. If the version still lags, clear the npx cache with
381
+ `npm cache clean --force` and try again.
382
+
383
+ ### Global npm install
384
+
385
+ ```bash
386
+ npm install -g career-compass-mcp@latest
387
+ career-compass-mcp --version
388
+ ```
389
+
390
+ Restart your MCP client afterward — it keeps the old server process alive until it does.
391
+
392
+ ### From source
393
+
394
+ ```bash
395
+ git pull
396
+ npm install
397
+ npm run build:mcp # or `npm run build` for the full Next.js dashboard too
398
+ ```
399
+
400
+ Restart your MCP client. A source checkout will normally report itself as *ahead* of npm in
401
+ `check_setup`; that is expected, not drift.
402
+
403
+ ---
404
+
319
405
  ## Building from Source
320
406
 
321
407
  ```bash
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../bin/cli.ts"],"names":[],"mappings":";AAkBA;;;;GAIG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../bin/cli.ts"],"names":[],"mappings":";AAkBA;;;;GAIG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAE,cAAc,EAAE,CAAC"}
package/build/bin/cli.js CHANGED
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { homedir } from "os";
3
- import { join } from "path";
3
+ import { join, resolve } from "path";
4
4
  import { existsSync, mkdirSync } from "fs";
5
5
  import { createServer as createNetServer } from "net";
6
6
  import { spawn } from "child_process";
@@ -18,6 +18,7 @@ const __cliDir = fileURLToPath(new URL(".", import.meta.url));
18
18
  * cli-version.test.ts exercises it directly.
19
19
  */
20
20
  import { readPkgVersion } from "../src/version.js";
21
+ import { bundledSampleDir } from "../src/sample-data.js";
21
22
  export { readPkgVersion };
22
23
  const pkgVersion = readPkgVersion(__cliDir);
23
24
  if (args.includes("--version") || args.includes("-v")) {
@@ -32,6 +33,7 @@ career-compass-mcp v${pkgVersion}
32
33
  Usage:
33
34
  career-compass-mcp Run MCP server (stdio)
34
35
  career-compass-mcp dashboard Open web dashboard (full if built, else lite)
36
+ career-compass-mcp dashboard --sample Open the bundled Alex Rivera demo
35
37
  career-compass-mcp dashboard --lite Force the zero-build lite dashboard
36
38
  career-compass-mcp dashboard --port 3000 Specify port (default: 3141)
37
39
  career-compass-mcp dashboard --no-open Start without opening browser
@@ -39,9 +41,13 @@ Usage:
39
41
  Options:
40
42
  -h, --help Show this help message
41
43
  -v, --version Show version number
44
+ --sample Serve the bundled read-only demo (alias: --demo).
45
+ Ignores CAREER_DATA_PATH; writes nothing.
42
46
  --lite Use the built-in zero-build dashboard (no Next.js build needed)
43
47
  --port <number> Dashboard port (default: 3141)
44
48
  --no-open Don't auto-open browser
49
+
50
+ Your data folder is CAREER_DATA_PATH, or ~/.career-compass when that is unset.
45
51
  `);
46
52
  process.exit(0);
47
53
  }
@@ -64,12 +70,8 @@ else {
64
70
  }
65
71
  const noOpen = args.includes("--no-open");
66
72
  const forceLite = args.includes("--lite");
67
- // Resolve data path
68
- const dataPath = process.env.CAREER_DATA_PATH ?? join(homedir(), ".career-compass");
69
- if (!existsSync(dataPath)) {
70
- mkdirSync(join(dataPath, "career"), { recursive: true });
71
- mkdirSync(join(dataPath, "pipeline"), { recursive: true });
72
- }
73
+ const useSample = args.includes("--sample") || args.includes("--demo");
74
+ const dataPath = resolveDataPath(useSample);
73
75
  // Find available port
74
76
  const port = await findPort(requestedPort);
75
77
  // Resolve standalone server path
@@ -146,6 +148,67 @@ function findPort(preferred) {
146
148
  });
147
149
  });
148
150
  }
151
+ function ensureDataDirs(dir) {
152
+ mkdirSync(join(dir, "career"), { recursive: true });
153
+ mkdirSync(join(dir, "pipeline"), { recursive: true });
154
+ }
155
+ /**
156
+ * Decide which folder the dashboard serves, and refuse the one case that used
157
+ * to fail silently.
158
+ *
159
+ * The README's own demo line was `CAREER_DATA_PATH=data/example npx -y
160
+ * career-compass-mcp dashboard --lite`. That path is relative, and npx runs it
161
+ * from wherever the user happens to be standing — so unless they were inside a
162
+ * clone of this repo it resolved to a folder that did not exist, which this
163
+ * function's predecessor then created. The result was an empty dashboard, a
164
+ * stray `./data/example/` left in their working directory, and no indication
165
+ * that either had happened. `--sample` is the flag that command actually
166
+ * wanted: it resolves the demo inside the installed package, wherever npx put
167
+ * it.
168
+ *
169
+ * A missing CAREER_DATA_PATH is now refused rather than conjured. Creating a
170
+ * directory the user did not ask for is the more surprising of the two
171
+ * behaviours — the default `~/.career-compass` is still created without
172
+ * ceremony, because that one *is* what they asked for by not choosing.
173
+ */
174
+ function resolveDataPath(useSample) {
175
+ if (useSample) {
176
+ const sample = bundledSampleDir();
177
+ if (!sample) {
178
+ console.error("Error: --sample serves the bundled demo (data/example/), which is missing from this install.");
179
+ console.error("Reinstall the package, or drop --sample and point CAREER_DATA_PATH at your own folder.");
180
+ process.exit(1);
181
+ }
182
+ console.error(`Serving the bundled Alex Rivera demo — read-only, nothing is written:\n ${sample}`);
183
+ return sample;
184
+ }
185
+ const configured = process.env.CAREER_DATA_PATH;
186
+ if (!configured) {
187
+ const fallback = join(homedir(), ".career-compass");
188
+ ensureDataDirs(fallback);
189
+ return fallback;
190
+ }
191
+ const abs = resolve(configured);
192
+ if (!existsSync(abs)) {
193
+ console.error(`Error: CAREER_DATA_PATH points at a folder that does not exist:\n ${abs}`);
194
+ if (abs !== configured) {
195
+ console.error(` (resolved from "${configured}" against ${process.cwd()})`);
196
+ }
197
+ console.error("");
198
+ console.error("Nothing was created: an empty folder here would open an empty dashboard and");
199
+ console.error("leave a stray directory behind. One of these is probably what you meant:");
200
+ console.error("");
201
+ console.error(" To see the bundled demo:");
202
+ console.error(" career-compass-mcp dashboard --sample");
203
+ console.error(" To use your own data in the default folder (~/.career-compass):");
204
+ console.error(" clear CAREER_DATA_PATH from your environment");
205
+ console.error(" To really use this folder:");
206
+ console.error(` mkdir "${abs}"`);
207
+ process.exit(1);
208
+ }
209
+ ensureDataDirs(abs);
210
+ return abs;
211
+ }
149
212
  function openBrowser(url) {
150
213
  const cmd = process.platform === "win32" ? "start" : process.platform === "darwin" ? "open" : "xdg-open";
151
214
  spawn(cmd, [url], { shell: true, stdio: "ignore", detached: true }).unref();
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../bin/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../bin/cli.ts"],"names":[],"mappings":"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"}
@@ -6,16 +6,16 @@ interface NextAction {
6
6
  }
7
7
  /** Derive next actions from follow-up dates, upcoming interviews, and expiring offers. */
8
8
  export declare function deriveNextActions(apps: Application[], today?: Date): NextAction[];
9
- export interface PipelineStats {
10
- total: number;
11
- active: number;
12
- inConversation: number;
13
- offers: number;
14
- responseRate: number;
15
- ghostRate: number;
16
- }
17
- export declare function computeStats(apps: Application[]): PipelineStats;
18
- /** Render the full self-contained HTML document. */
19
- export declare function renderLiteDashboard(pipeline: Pipeline): string;
9
+ /**
10
+ * Render the full self-contained HTML document.
11
+ *
12
+ * `dataDir` is passed in rather than read here so this module stays free of the
13
+ * store (and of node-only APIs — the Next dashboard imports from this tree).
14
+ * When it is absent the footer simply does not name a folder, which is the one
15
+ * honest thing to say without knowing it: the footer used to print
16
+ * `~/.career-compass` unconditionally, so anyone running with CAREER_DATA_PATH
17
+ * set was told their data was somewhere it wasn't.
18
+ */
19
+ export declare function renderLiteDashboard(pipeline: Pipeline, dataDir?: string): string;
20
20
  export {};
21
21
  //# sourceMappingURL=render.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../../src/dashboard-lite/render.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAqB,MAAM,6BAA6B,CAAC;AA0D5F,UAAU,UAAU;IAAG,GAAG,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;CAAE;AAE/F,0FAA0F;AAC1F,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,KAAK,OAAa,GAAG,UAAU,EAAE,CAkCvF;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IACtE,YAAY,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;CACzC;AACD,wBAAgB,YAAY,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,aAAa,CAa/D;AAkBD,oDAAoD;AACpD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAkL9D"}
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../../src/dashboard-lite/render.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAqB,MAAM,6BAA6B,CAAC;AA2D5F,UAAU,UAAU;IAAG,GAAG,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;CAAE;AAE/F,0FAA0F;AAC1F,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,KAAK,OAAa,GAAG,UAAU,EAAE,CAwCvF;AAmBD;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CA6LhF"}
@@ -1,3 +1,5 @@
1
+ import { STATUS_ORDER, statusRank } from "../schemas/career-schema.js";
2
+ import { ACTIVE_STATUSES, computeStats } from "../pipeline-stats.js";
1
3
  /**
2
4
  * Zero-build "lite" dashboard.
3
5
  *
@@ -12,13 +14,13 @@
12
14
  * than dispatching it. In Cowork, the artifact variant wires the same prompts to
13
15
  * sendPrompt() instead.
14
16
  */
15
- const STAGE_ORDER = [
16
- "discovered", "applied", "screening", "interviewing",
17
- "offer", "negotiating", "accepted", "rejected", "withdrawn", "ghosted",
18
- ];
19
- const ACTIVE = [
20
- "discovered", "applied", "screening", "interviewing", "offer", "negotiating",
21
- ];
17
+ // The board's column order is the funnel order declared on the schema, shared
18
+ // with `pipeline_view sortBy=status` so the two surfaces cannot disagree about
19
+ // which stage comes first.
20
+ const STAGE_ORDER = STATUS_ORDER;
21
+ // The same live-stage list the stats use, so the chart cannot show a stage the
22
+ // "Active" KPI is not counting.
23
+ const ACTIVE = ACTIVE_STATUSES;
22
24
  /**
23
25
  * Stage colours as a temperature ramp, not a rainbow.
24
26
  *
@@ -77,7 +79,13 @@ export function deriveNextActions(apps, today = new Date()) {
77
79
  else if (fu <= 2)
78
80
  out.push({ app, label: `Follow-up due ${fu === 0 ? "today" : `in ${fu}d`} — ${app.company}`, urgency: "soon" });
79
81
  }
80
- const nextInterview = (app.interviewRounds ?? [])
82
+ // A future-dated round on an application that has already reached offer or
83
+ // negotiating is a leftover, not a plan — the process moved past it.
84
+ // Filtering rounds by date alone put "Interview in 2d" beside an offer
85
+ // under review, in the demo, on the panel that is supposed to say what to
86
+ // do next.
87
+ const stillInterviewing = statusRank(app.status) <= statusRank("interviewing");
88
+ const nextInterview = !stillInterviewing ? undefined : (app.interviewRounds ?? [])
81
89
  .map((r) => days(r.date)).filter((d) => !Number.isNaN(d) && d >= 0).sort((a, b) => a - b)[0];
82
90
  if (nextInterview != null && nextInterview <= 7) {
83
91
  out.push({ app, label: `Interview ${nextInterview === 0 ? "today" : `in ${nextInterview}d`} — ${app.company}`, urgency: nextInterview <= 2 ? "soon" : "info" });
@@ -91,20 +99,6 @@ export function deriveNextActions(apps, today = new Date()) {
91
99
  const rank = { overdue: 0, soon: 1, info: 2 };
92
100
  return out.sort((a, b) => rank[a.urgency] - rank[b.urgency]);
93
101
  }
94
- export function computeStats(apps) {
95
- const total = apps.length;
96
- const active = apps.filter((a) => ACTIVE.includes(a.status)).length;
97
- const inConversation = apps.filter((a) => ["screening", "interviewing"].includes(a.status)).length;
98
- const offers = apps.filter((a) => ["offer", "negotiating", "accepted"].includes(a.status)).length;
99
- const applied = apps.filter((a) => a.status !== "discovered").length;
100
- const responded = apps.filter((a) => !["discovered", "applied", "ghosted"].includes(a.status)).length;
101
- const ghosted = apps.filter((a) => a.status === "ghosted").length;
102
- return {
103
- total, active, inConversation, offers,
104
- responseRate: applied ? Math.round((responded / applied) * 100) : 0,
105
- ghostRate: applied ? Math.round((ghosted / applied) * 100) : 0,
106
- };
107
- }
108
102
  function kpi(n, label, foot = "") {
109
103
  return `<div class="kpi"><div class="n">${esc(n)}</div><div class="l">${esc(label)}</div>${foot ? `<div class="foot">${esc(foot)}</div>` : ""}</div>`;
110
104
  }
@@ -119,8 +113,17 @@ function jobCard(a) {
119
113
  <div class="meta">${pr}${exc}</div>
120
114
  </div>`;
121
115
  }
122
- /** Render the full self-contained HTML document. */
123
- export function renderLiteDashboard(pipeline) {
116
+ /**
117
+ * Render the full self-contained HTML document.
118
+ *
119
+ * `dataDir` is passed in rather than read here so this module stays free of the
120
+ * store (and of node-only APIs — the Next dashboard imports from this tree).
121
+ * When it is absent the footer simply does not name a folder, which is the one
122
+ * honest thing to say without knowing it: the footer used to print
123
+ * `~/.career-compass` unconditionally, so anyone running with CAREER_DATA_PATH
124
+ * set was told their data was somewhere it wasn't.
125
+ */
126
+ export function renderLiteDashboard(pipeline, dataDir) {
124
127
  const apps = [...(pipeline.applications ?? [])].sort((a, b) => (b.dateUpdated ?? "").localeCompare(a.dateUpdated ?? ""));
125
128
  const s = computeStats(apps);
126
129
  const actions = deriveNextActions(apps);
@@ -196,7 +199,18 @@ h1{font-size:20px;margin:0 0 2px;letter-spacing:-.01em}.sub{color:var(--muted);f
196
199
  .kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:20px}
197
200
  .kpi{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px 16px;box-shadow:var(--shadow)}
198
201
  .kpi .n{font-size:26px;font-weight:700;letter-spacing:-.02em}.kpi .l{color:var(--muted);font-size:12px;margin-top:2px}.kpi .foot{font-size:11.5px;margin-top:6px;color:var(--muted)}
199
- .grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}@media(max-width:900px){.grid2{grid-template-columns:1fr}}
202
+ /* minmax(0,…) is load-bearing, not decoration. A grid item's default
203
+ min-width is auto — its min-content — so a bare 1fr track is a *floor*,
204
+ not a cap: one long unbreakable token in a company name or a follow-up
205
+ label grows its own rail past its share, and the sibling rail is squeezed
206
+ to whatever is left. Measured on the sample pipeline at 1512px, the rails
207
+ went 1263px / 175px, the chart track collapsed to 3px, and the page ran
208
+ 135px off the right edge. minmax(0,1fr) lets the item shrink; the
209
+ overflow-wrap below is what keeps the token itself inside the card once
210
+ the box stops growing to fit it. */
211
+ .grid2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start}@media(max-width:900px){.grid2{grid-template-columns:minmax(0,1fr)}}
212
+ .grid2>*,.board>*{min-width:0}
213
+ .action .t b,.jc .co,.jc .ro{overflow-wrap:anywhere}
200
214
  .panel{background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}
201
215
  .panel h2{font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:0;padding:14px 16px;border-bottom:1px solid var(--line)}
202
216
  .panel .body{padding:14px 16px}.chart-box{position:relative;display:flex;gap:10px}
@@ -259,7 +273,7 @@ ${apps.length === 0 ? emptyState : `
259
273
  <div class="panel"><h2>Next actions</h2><div class="body">${actionsHtml}</div></div>
260
274
  <div class="panel"><h2>Stage distribution</h2><div class="body"><div id="chart" class="chart-box"></div></div></div>
261
275
  </div>`}
262
- <div class="foot-note">Data stays local (<code>~/.career-compass</code>). Click any card to copy a prompt for Claude — that's where the work happens. Refresh the page to re-read from disk.</div>
276
+ <div class="foot-note">${dataDir ? `Data stays local (<code>${esc(dataDir)}</code>).` : "Data stays local on this machine."} Click any card to copy a prompt for Claude — that's where the work happens. Refresh the page to re-read from disk.</div>
263
277
  </div>
264
278
  <div id="toast"></div>
265
279
  <script>
@@ -1 +1 @@
1
- {"version":3,"file":"render.js","sourceRoot":"","sources":["../../../src/dashboard-lite/render.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render.js","sourceRoot":"","sources":["../../../src/dashboard-lite/render.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,12 @@
1
1
  import { type Server } from "http";
2
2
  /**
3
- * Zero-build "lite" dashboard server.
3
+ * Is this `Host` header one of ours?
4
4
  *
5
- * A dependency-free Node HTTP server that, on every request, re-reads the
6
- * pipeline YAML from disk and renders it via renderLiteDashboard(). Nothing is
7
- * cached or prerendered — refreshing the page always reflects the current state
8
- * of ~/.career-compass, mirroring the force-dynamic guarantee of the Next.js
9
- * dashboard. Ships in the npm package (pure JS, no framework, no build).
5
+ * A missing header is refused too. HTTP/1.1 requires it and every browser sends
6
+ * it, so its absence is either a hand-written request or an attempt to skip the
7
+ * check — neither is a case worth serving a career history to.
10
8
  */
9
+ export declare function isAllowedHost(host: string | undefined): boolean;
11
10
  export declare function createLiteDashboardServer(): Server;
12
11
  /**
13
12
  * Start the lite dashboard on `port`, resolving once it's listening.
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/dashboard-lite/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,MAAM,CAAC;AAIjD;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CA2BlD;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,SAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAgBxF"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/dashboard-lite/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,MAAM,CAAC;AAkEjD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAI/D;AAED,wBAAgB,yBAAyB,IAAI,MAAM,CAwClD;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,SAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAgBxF"}