@curviate/cli 0.19.0 → 0.20.0

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 (26) hide show
  1. package/CHANGELOG.md +95 -0
  2. package/dist/{account-EGJJNBXW.js → account-2SOSCEB6.js} +26 -26
  3. package/dist/{chunk-TMU3CSPR.js → chunk-DW2HCRXJ.js} +1 -1
  4. package/dist/{chunk-M33MI53G.js → chunk-HDQUEFD2.js} +1 -1
  5. package/dist/chunk-HOQ7EUHJ.js +50 -0
  6. package/dist/{chunk-KVV6LZ7E.js → chunk-IGCQNDIG.js} +53 -17
  7. package/dist/cli.js +33 -33
  8. package/dist/{comment-VT6PO4MN.js → comment-AXDINBPS.js} +3 -3
  9. package/dist/{company-XEEBBCRZ.js → company-BX4VDXZX.js} +19 -18
  10. package/dist/{config-P5CPF5WC.js → config-3O4N2XSH.js} +2 -2
  11. package/dist/{connect-6PU7QCOL.js → connect-KWOJKCIB.js} +36 -15
  12. package/dist/{feed-KAUDRE5K.js → feed-4ROKUBG5.js} +3 -3
  13. package/dist/{group-LPVVJ2JX.js → group-L7TQEEFN.js} +7 -7
  14. package/dist/{inbox-BXCWHGWP.js → inbox-GMGZVDTQ.js} +9 -9
  15. package/dist/{inboxes-MTPWLP5F.js → inboxes-YVYLSM5W.js} +4 -4
  16. package/dist/{job-EIXBJXLW.js → job-TYBA2DUQ.js} +7 -7
  17. package/dist/{login-GDLWR542.js → login-W7NCDZOQ.js} +2 -2
  18. package/dist/{message-UWMRE2SJ.js → message-C6FV6JH6.js} +6 -3
  19. package/dist/{notification-RYFDHM3G.js → notification-45XFT3S4.js} +5 -5
  20. package/dist/{post-HK6HHIKV.js → post-RETV3WUG.js} +8 -8
  21. package/dist/{profile-PES67647.js → profile-A2TWF4HB.js} +13 -13
  22. package/dist/{recruiter-MVPSTH2V.js → recruiter-FQAKY6Z2.js} +30 -30
  23. package/dist/{sales-nav-TMXWDKSE.js → sales-nav-SSJIZUNB.js} +16 -16
  24. package/dist/{search-O2LACGHE.js → search-DH6BJFQC.js} +13 -13
  25. package/dist/{webhook-QFSZN3P2.js → webhook-LED6AKF3.js} +50 -19
  26. package/package.json +2 -2
@@ -24,12 +24,12 @@ import {
24
24
  renderSuccess,
25
25
  renderUnexpectedError,
26
26
  resolveEffectiveConfig
27
- } from "./chunk-M33MI53G.js";
27
+ } from "./chunk-HDQUEFD2.js";
28
28
  import {
29
29
  GLOBAL_FLAGS,
30
30
  READ_SINGLE_FLAGS,
31
31
  WRITE_SINGLE_FLAGS
32
- } from "./chunk-TMU3CSPR.js";
32
+ } from "./chunk-DW2HCRXJ.js";
33
33
 
34
34
  // src/commands/job.ts
35
35
  import { defineCommand } from "citty";
@@ -181,7 +181,7 @@ async function runJobList(client, flags, out) {
181
181
  function pace(ms) {
182
182
  return ms > 0 ? new Promise((resolve) => setTimeout(resolve, ms)) : Promise.resolve();
183
183
  }
184
- var JOB_LIST_UNION_CAVEAT = "note: --state ALL is a best-effort client-side union over DRAFT/OPEN/CLOSED/REVIEW/SUSPENDED. LinkedIn's per-state filter is best-effort, so each state is queried, its items are re-filtered against their own state, and the results are merged and de-duplicated by id. There is no unified pagination cursor \u2014 each state is walked independently and --max-pages applies per state.\n";
184
+ var JOB_LIST_UNION_CAVEAT = "note: --state ALL is a best-effort client-side union over DRAFT/OPEN/CLOSED/REVIEW/SUSPENDED. LinkedIn's per-state filter is best-effort, so each state is queried, its items are re-filtered against their own state, and the results are merged and de-duplicated by id. There is no unified pagination cursor; each state is walked independently and --max-pages applies per state.\n";
185
185
  function jobItemId(item) {
186
186
  const id = item.id;
187
187
  return typeof id === "string" ? id : void 0;
@@ -453,7 +453,7 @@ async function withClient(flags, fn) {
453
453
  profile: flags.profile
454
454
  });
455
455
  if (!cfg.apiKey) {
456
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
456
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
457
457
  process.exit(3);
458
458
  }
459
459
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -468,7 +468,7 @@ var JOB_BODY_FLAGS = {
468
468
  "workplace-type": { type: "string", description: "Workplace arrangement: ON_SITE|HYBRID|REMOTE." },
469
469
  location: { type: "string", description: "A LOCATION parameter id (from search parameters)." },
470
470
  "employment-status": { type: "string", description: "Employment type: FULL_TIME|PART_TIME|CONTRACT|TEMPORARY|OTHER|VOLUNTEER|INTERNSHIP." },
471
- description: { type: "string", description: "Full job description (required; minimum 200 characters \u2014 enforced server-side)." },
471
+ description: { type: "string", description: "Full job description (required; minimum 200 characters, enforced server-side)." },
472
472
  "apply-method": { type: "string", description: "How candidates apply: linkedin|external." },
473
473
  "notification-email": { type: "string", description: "Email notified of new applicants (required when --apply-method is linkedin)." },
474
474
  "website-url": { type: "string", description: "External apply URL (required when --apply-method is external)." },
@@ -526,13 +526,13 @@ var jobBudgetCommand = defineCommand({
526
526
  }
527
527
  });
528
528
  var jobPublishCommand = defineCommand({
529
- meta: { name: "publish", description: "Publish a draft. PROMOTED/PROMOTED_PLUS spend real money and require --budget-*." },
529
+ meta: { name: "publish", description: "Publish a draft. PROMOTED/PROMOTED_PLUS spend real money and require --budget-amount, --budget-currency, and --budget-scope." },
530
530
  args: {
531
531
  ...WRITE_SINGLE_FLAGS,
532
532
  id: { type: "positional", description: "Job id to publish." },
533
533
  mode: { type: "string", description: "Publish mode (required): FREE|PROMOTED|PROMOTED_PLUS.", required: true },
534
534
  "budget-currency": { type: "string", description: "ISO-4217 currency (required for a paid publish), e.g. EUR." },
535
- "budget-amount": { type: "string", description: "Budget amount \u2014 a non-negative number (required for a paid publish)." },
535
+ "budget-amount": { type: "string", description: "Budget amount, a non-negative number (required for a paid publish)." },
536
536
  "budget-scope": { type: "string", description: "Budget scope (required for a paid publish): DAILY|TOTAL." }
537
537
  },
538
538
  async run({ args }) {
@@ -5,7 +5,7 @@ import {
5
5
  import {
6
6
  GLOBAL_FLAGS,
7
7
  writeProfile
8
- } from "./chunk-TMU3CSPR.js";
8
+ } from "./chunk-DW2HCRXJ.js";
9
9
 
10
10
  // src/commands/login.ts
11
11
  import { defineCommand } from "citty";
@@ -66,7 +66,7 @@ var loginCommand = defineCommand({
66
66
  apiKey = await promptMasked("Enter your API key: ");
67
67
  } else {
68
68
  process.stderr.write(
69
- "error: no API key \u2014 pass --api-key or run interactively on a TTY.\n"
69
+ "error: no API key, pass --api-key or run interactively on a TTY.\n"
70
70
  );
71
71
  process.exit(2);
72
72
  return;
@@ -1,5 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
+ guardBareMessageForm,
3
4
  messageCommand,
4
5
  runMessageAttachment,
5
6
  runMessageDelete,
@@ -12,15 +13,17 @@ import {
12
13
  runMessageSend,
13
14
  sentAsNotice,
14
15
  willSendAsNotice
15
- } from "./chunk-KVV6LZ7E.js";
16
+ } from "./chunk-IGCQNDIG.js";
17
+ import "./chunk-HOQ7EUHJ.js";
16
18
  import "./chunk-U7Y4EXHT.js";
17
19
  import "./chunk-BGZW6B7G.js";
18
20
  import "./chunk-UWO2D4HW.js";
19
21
  import "./chunk-DMQZEPQE.js";
20
22
  import "./chunk-R3VLWLVV.js";
21
- import "./chunk-M33MI53G.js";
22
- import "./chunk-TMU3CSPR.js";
23
+ import "./chunk-HDQUEFD2.js";
24
+ import "./chunk-DW2HCRXJ.js";
23
25
  export {
26
+ guardBareMessageForm,
24
27
  messageCommand,
25
28
  runMessageAttachment,
26
29
  runMessageDelete,
@@ -12,11 +12,11 @@ import {
12
12
  renderSuccess,
13
13
  renderUnexpectedError,
14
14
  resolveEffectiveConfig
15
- } from "./chunk-M33MI53G.js";
15
+ } from "./chunk-HDQUEFD2.js";
16
16
  import {
17
17
  GLOBAL_FLAGS,
18
18
  WRITE_SINGLE_FLAGS
19
- } from "./chunk-TMU3CSPR.js";
19
+ } from "./chunk-DW2HCRXJ.js";
20
20
 
21
21
  // src/commands/notification.ts
22
22
  import { defineCommand } from "citty";
@@ -139,7 +139,7 @@ var notificationListCommand = defineCommand({
139
139
  profile: flags.profile
140
140
  });
141
141
  if (!cfg.apiKey) {
142
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
142
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
143
143
  process.exit(3);
144
144
  }
145
145
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -163,7 +163,7 @@ var notificationDeleteCommand = defineCommand({
163
163
  profile: flags.profile
164
164
  });
165
165
  if (!cfg.apiKey) {
166
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
166
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
167
167
  process.exit(3);
168
168
  }
169
169
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -190,7 +190,7 @@ var notificationShowLessCommand = defineCommand({
190
190
  profile: flags.profile
191
191
  });
192
192
  if (!cfg.apiKey) {
193
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
193
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
194
194
  process.exit(3);
195
195
  }
196
196
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -24,12 +24,12 @@ import {
24
24
  renderSuccess,
25
25
  renderUnexpectedError,
26
26
  resolveEffectiveConfig
27
- } from "./chunk-M33MI53G.js";
27
+ } from "./chunk-HDQUEFD2.js";
28
28
  import {
29
29
  GLOBAL_FLAGS,
30
30
  WRITE_FLAGS,
31
31
  WRITE_SINGLE_FLAGS
32
- } from "./chunk-TMU3CSPR.js";
32
+ } from "./chunk-DW2HCRXJ.js";
33
33
 
34
34
  // src/commands/post.ts
35
35
  import { defineCommand } from "citty";
@@ -399,7 +399,7 @@ var postGetCommand = defineCommand({
399
399
  profile: flags.profile
400
400
  });
401
401
  if (!cfg.apiKey) {
402
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
402
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
403
403
  process.exit(3);
404
404
  }
405
405
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -428,7 +428,7 @@ var postCreateCommand = defineCommand({
428
428
  profile: flags.profile
429
429
  });
430
430
  if (!cfg.apiKey) {
431
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
431
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
432
432
  process.exit(3);
433
433
  }
434
434
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -457,7 +457,7 @@ var postReactCommand = defineCommand({
457
457
  },
458
458
  "as-organization": {
459
459
  type: "string",
460
- description: "React on behalf of an organization/company page you administer \u2014 pass that page's numeric id or URN."
460
+ description: "React on behalf of an organization/company page you administer. Pass that page's numeric id or URN."
461
461
  }
462
462
  },
463
463
  async run({ args }) {
@@ -470,7 +470,7 @@ var postReactCommand = defineCommand({
470
470
  profile: flags.profile
471
471
  });
472
472
  if (!cfg.apiKey) {
473
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
473
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
474
474
  process.exit(3);
475
475
  }
476
476
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -497,7 +497,7 @@ var postReactionsCommand = defineCommand({
497
497
  profile: flags.profile
498
498
  });
499
499
  if (!cfg.apiKey) {
500
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
500
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
501
501
  process.exit(3);
502
502
  }
503
503
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -514,7 +514,7 @@ async function withClient(flags, fn) {
514
514
  profile: flags.profile
515
515
  });
516
516
  if (!cfg.apiKey) {
517
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
517
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
518
518
  process.exit(3);
519
519
  }
520
520
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -28,12 +28,12 @@ import {
28
28
  renderSuccess,
29
29
  renderUnexpectedError,
30
30
  resolveEffectiveConfig
31
- } from "./chunk-M33MI53G.js";
31
+ } from "./chunk-HDQUEFD2.js";
32
32
  import {
33
33
  GLOBAL_FLAGS,
34
34
  READ_SINGLE_FLAGS,
35
35
  WRITE_SINGLE_FLAGS
36
- } from "./chunk-TMU3CSPR.js";
36
+ } from "./chunk-DW2HCRXJ.js";
37
37
 
38
38
  // src/commands/profile.ts
39
39
  import { defineCommand } from "citty";
@@ -523,7 +523,7 @@ async function runProfileUpdate(client, flags, out) {
523
523
  throw err;
524
524
  }
525
525
  if (Object.keys(body).length === 0) {
526
- out.stderr.write("error: nothing to update \u2014 pass at least one of --first-name, --last-name, --headline, --bio, --skills, --picture, --background-picture.\n");
526
+ out.stderr.write("error: nothing to update. Pass at least one of --first-name, --last-name, --headline, --bio, --skills, --picture, --background-picture.\n");
527
527
  process.exit(2);
528
528
  }
529
529
  if (flags.preview) {
@@ -653,7 +653,7 @@ var profileMeCommand = defineCommand({
653
653
  ...GLOBAL_FLAGS,
654
654
  sections: {
655
655
  type: "string",
656
- description: "Comma-separated LinkedIn sections to fetch \u2014 linkedin_experience, linkedin_education, linkedin_languages, linkedin_skills, linkedin_certifications, linkedin_volunteer_experience, linkedin_projects, linkedin_recommendations, linkedin_interests, or linkedin_* for all (each also has a _preview variant). A bare value (e.g. skills) is auto-prefixed to linkedin_skills. Only applies to the base getMe call (no activity flag)."
656
+ description: "Comma-separated LinkedIn sections to fetch: linkedin_experience, linkedin_education, linkedin_languages, linkedin_skills, linkedin_certifications, linkedin_volunteer_experience, linkedin_projects, linkedin_recommendations, linkedin_interests, or linkedin_* for all (each also has a _preview variant). A bare value (e.g. skills) is auto-prefixed to linkedin_skills. Only applies to the base getMe call (no activity flag)."
657
657
  },
658
658
  posts: {
659
659
  type: "boolean",
@@ -686,7 +686,7 @@ var profileMeCommand = defineCommand({
686
686
  profile: flags.profile
687
687
  });
688
688
  if (!cfg.apiKey) {
689
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
689
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
690
690
  process.exit(3);
691
691
  }
692
692
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -707,7 +707,7 @@ var profileRelationsCommand = defineCommand({
707
707
  profile: flags.profile
708
708
  });
709
709
  if (!cfg.apiKey) {
710
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
710
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
711
711
  process.exit(3);
712
712
  }
713
713
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -722,7 +722,7 @@ var profileEndorseCommand = defineCommand({
722
722
  id: { type: "positional", description: "Member identifier (URL, slug, or provider id). A URL/slug is resolved to the provider id automatically (a slug is not accepted directly by the endorse endpoint)." },
723
723
  "endorsement-id": {
724
724
  type: "string",
725
- description: "Endorsement ID to endorse \u2014 get it from the target's skills section via `profile <id> --sections linkedin_skills`.",
725
+ description: "Endorsement ID to endorse. Get it from the target's skills section via `profile <id> --sections linkedin_skills`.",
726
726
  required: true
727
727
  }
728
728
  },
@@ -736,7 +736,7 @@ var profileEndorseCommand = defineCommand({
736
736
  profile: args.profile
737
737
  });
738
738
  if (!cfg.apiKey) {
739
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
739
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
740
740
  process.exit(3);
741
741
  }
742
742
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -753,7 +753,7 @@ async function withClient(flags, fn) {
753
753
  profile: flags.profile
754
754
  });
755
755
  if (!cfg.apiKey) {
756
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
756
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
757
757
  process.exit(3);
758
758
  }
759
759
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -769,8 +769,8 @@ var profileUpdateCommand = defineCommand({
769
769
  "first-name": { type: "string", description: "New first name." },
770
770
  "last-name": { type: "string", description: "New last name." },
771
771
  skills: { type: "string", description: "Comma-separated skill names to add (add-only)." },
772
- picture: { type: "string", description: "New profile photo \u2014 path to an image file." },
773
- "background-picture": { type: "string", description: "New cover/banner photo \u2014 path to an image file." }
772
+ picture: { type: "string", description: "New profile photo: path to an image file." },
773
+ "background-picture": { type: "string", description: "New cover/banner photo: path to an image file." }
774
774
  },
775
775
  async run({ args }) {
776
776
  await withClient(args, runProfileUpdate);
@@ -856,7 +856,7 @@ var profileCommand = defineCommand({
856
856
  "is-company": { type: "boolean", description: "When listing posts, treat the profile as a company page.", default: false },
857
857
  sections: {
858
858
  type: "string",
859
- description: "Comma-separated LinkedIn sections to fetch \u2014 linkedin_experience, linkedin_education, linkedin_languages, linkedin_skills, linkedin_certifications, linkedin_volunteer_experience, linkedin_projects, linkedin_recommendations, linkedin_interests, or linkedin_* for all (each also has a _preview variant). A bare value (e.g. skills) is auto-prefixed to linkedin_skills."
859
+ description: "Comma-separated LinkedIn sections to fetch: linkedin_experience, linkedin_education, linkedin_languages, linkedin_skills, linkedin_certifications, linkedin_volunteer_experience, linkedin_projects, linkedin_recommendations, linkedin_interests, or linkedin_* for all (each also has a _preview variant). A bare value (e.g. skills) is auto-prefixed to linkedin_skills."
860
860
  }
861
861
  },
862
862
  subCommands: {
@@ -889,7 +889,7 @@ var profileCommand = defineCommand({
889
889
  profile: flags.profile
890
890
  });
891
891
  if (!cfg.apiKey) {
892
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
892
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
893
893
  process.exit(3);
894
894
  }
895
895
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -33,13 +33,13 @@ import {
33
33
  renderSuccess,
34
34
  renderUnexpectedError,
35
35
  resolveEffectiveConfig
36
- } from "./chunk-M33MI53G.js";
36
+ } from "./chunk-HDQUEFD2.js";
37
37
  import {
38
38
  GLOBAL_FLAGS,
39
39
  READ_SINGLE_FLAGS,
40
40
  WRITE_FLAGS,
41
41
  WRITE_SINGLE_FLAGS
42
- } from "./chunk-TMU3CSPR.js";
42
+ } from "./chunk-DW2HCRXJ.js";
43
43
 
44
44
  // src/commands/recruiter.ts
45
45
  import { defineCommand } from "citty";
@@ -894,7 +894,7 @@ var recruiterMessageNewCommand = defineCommand({
894
894
  ...WRITE_FLAGS,
895
895
  to: {
896
896
  type: "string",
897
- description: "Recipient's LinkedIn provider ID (AE\u2026 format, e.g. from a Recruiter search result or profile). Not resolved from a URL/slug \u2014 pass the provider ID directly.",
897
+ description: "Recipient's LinkedIn provider ID (AE\u2026 format, e.g. from a Recruiter search result or profile). Not resolved from a URL/slug. Pass the provider ID directly.",
898
898
  required: true
899
899
  },
900
900
  subject: { type: "string", description: "Message subject line (required for Recruiter InMail).", required: true },
@@ -914,7 +914,7 @@ var recruiterMessageNewCommand = defineCommand({
914
914
  profile: flags.profile
915
915
  });
916
916
  if (!cfg.apiKey) {
917
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
917
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
918
918
  process.exit(3);
919
919
  }
920
920
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -949,7 +949,7 @@ var recruiterProfileCommand = defineCommand({
949
949
  profile: flags.profile
950
950
  });
951
951
  if (!cfg.apiKey) {
952
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
952
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
953
953
  process.exit(3);
954
954
  }
955
955
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -979,7 +979,7 @@ var recruiterSearchPeopleCommand = defineCommand({
979
979
  profile: flags.profile
980
980
  });
981
981
  if (!cfg.apiKey) {
982
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
982
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
983
983
  process.exit(3);
984
984
  }
985
985
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -988,7 +988,7 @@ var recruiterSearchPeopleCommand = defineCommand({
988
988
  }
989
989
  });
990
990
  var recruiterSearchParametersCommand = defineCommand({
991
- meta: { name: "parameters", description: "Resolve Recruiter filter parameter IDs (POST \u2014 source-scoped)." },
991
+ meta: { name: "parameters", description: "Resolve Recruiter filter parameter IDs (POST, source-scoped)." },
992
992
  args: {
993
993
  ...GLOBAL_FLAGS,
994
994
  source: {
@@ -1015,7 +1015,7 @@ var recruiterSearchParametersCommand = defineCommand({
1015
1015
  profile: flags.profile
1016
1016
  });
1017
1017
  if (!cfg.apiKey) {
1018
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
1018
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
1019
1019
  process.exit(3);
1020
1020
  }
1021
1021
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -1053,7 +1053,7 @@ var recruiterSearchCommand = defineCommand({
1053
1053
  profile: flags.profile
1054
1054
  });
1055
1055
  if (!cfg.apiKey) {
1056
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
1056
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
1057
1057
  process.exit(3);
1058
1058
  }
1059
1059
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -1074,7 +1074,7 @@ var recruiterProjectsCommand = defineCommand({
1074
1074
  profile: flags.profile
1075
1075
  });
1076
1076
  if (!cfg.apiKey) {
1077
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
1077
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
1078
1078
  process.exit(3);
1079
1079
  }
1080
1080
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -1083,7 +1083,7 @@ var recruiterProjectsCommand = defineCommand({
1083
1083
  }
1084
1084
  });
1085
1085
  var recruiterProjectUpdateCommand = defineCommand({
1086
- meta: { name: "update", description: "Edit a Recruiter project's config. All fields optional \u2014 omitted fields are left unchanged." },
1086
+ meta: { name: "update", description: "Edit a Recruiter project's config. All fields optional; omitted fields are left unchanged." },
1087
1087
  args: {
1088
1088
  // Write command: WRITE_SINGLE_FLAGS omits pagination flags, keeps --fields
1089
1089
  ...WRITE_SINGLE_FLAGS,
@@ -1108,7 +1108,7 @@ var recruiterProjectUpdateCommand = defineCommand({
1108
1108
  profile: flags.profile
1109
1109
  });
1110
1110
  if (!cfg.apiKey) {
1111
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
1111
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
1112
1112
  process.exit(3);
1113
1113
  }
1114
1114
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -1142,7 +1142,7 @@ var recruiterProjectCommand = defineCommand({
1142
1142
  profile: flags.profile
1143
1143
  });
1144
1144
  if (!cfg.apiKey) {
1145
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
1145
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
1146
1146
  process.exit(3);
1147
1147
  }
1148
1148
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -1170,7 +1170,7 @@ var recruiterPipelineCommand = defineCommand({
1170
1170
  profile: flags.profile
1171
1171
  });
1172
1172
  if (!cfg.apiKey) {
1173
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
1173
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
1174
1174
  process.exit(3);
1175
1175
  }
1176
1176
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -1197,7 +1197,7 @@ var recruiterSaveCandidateCommand = defineCommand({
1197
1197
  profile: flags.profile
1198
1198
  });
1199
1199
  if (!cfg.apiKey) {
1200
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
1200
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
1201
1201
  process.exit(3);
1202
1202
  }
1203
1203
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -1218,7 +1218,7 @@ var recruiterJobsCommand = defineCommand({
1218
1218
  profile: flags.profile
1219
1219
  });
1220
1220
  if (!cfg.apiKey) {
1221
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
1221
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
1222
1222
  process.exit(3);
1223
1223
  }
1224
1224
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -1262,7 +1262,7 @@ var recruiterJobCreateCommand = defineCommand({
1262
1262
  profile: flags.profile
1263
1263
  });
1264
1264
  if (!cfg.apiKey) {
1265
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
1265
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
1266
1266
  process.exit(3);
1267
1267
  }
1268
1268
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -1271,7 +1271,7 @@ var recruiterJobCreateCommand = defineCommand({
1271
1271
  }
1272
1272
  });
1273
1273
  var recruiterJobPublishCommand = defineCommand({
1274
- meta: { name: "publish", description: "Publish a Recruiter job posting draft. PROMOTED/PROMOTED_PLUS spend real money and require --budget-*." },
1274
+ meta: { name: "publish", description: "Publish a Recruiter job posting draft. PROMOTED/PROMOTED_PLUS spend real money and require --budget-amount, --budget-currency, and --budget-scope." },
1275
1275
  args: {
1276
1276
  // Write command: WRITE_SINGLE_FLAGS omits pagination flags, keeps --fields
1277
1277
  ...WRITE_SINGLE_FLAGS,
@@ -1292,7 +1292,7 @@ var recruiterJobPublishCommand = defineCommand({
1292
1292
  profile: flags.profile
1293
1293
  });
1294
1294
  if (!cfg.apiKey) {
1295
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
1295
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
1296
1296
  process.exit(3);
1297
1297
  }
1298
1298
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -1317,7 +1317,7 @@ var recruiterApplicantsCommand = defineCommand({
1317
1317
  profile: flags.profile
1318
1318
  });
1319
1319
  if (!cfg.apiKey) {
1320
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
1320
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
1321
1321
  process.exit(3);
1322
1322
  }
1323
1323
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -1341,7 +1341,7 @@ var recruiterJobGetCommand = defineCommand({
1341
1341
  profile: flags.profile
1342
1342
  });
1343
1343
  if (!cfg.apiKey) {
1344
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
1344
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
1345
1345
  process.exit(3);
1346
1346
  }
1347
1347
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -1367,7 +1367,7 @@ var recruiterJobCloseCommand = defineCommand({
1367
1367
  profile: flags.profile
1368
1368
  });
1369
1369
  if (!cfg.apiKey) {
1370
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
1370
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
1371
1371
  process.exit(3);
1372
1372
  }
1373
1373
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -1407,7 +1407,7 @@ var recruiterProjectJobGetCommand = defineCommand({
1407
1407
  profile: flags.profile
1408
1408
  });
1409
1409
  if (!cfg.apiKey) {
1410
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
1410
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
1411
1411
  process.exit(3);
1412
1412
  }
1413
1413
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -1433,7 +1433,7 @@ var recruiterProjectJobCreateCommand = defineCommand({
1433
1433
  profile: flags.profile
1434
1434
  });
1435
1435
  if (!cfg.apiKey) {
1436
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
1436
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
1437
1437
  process.exit(3);
1438
1438
  }
1439
1439
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -1459,7 +1459,7 @@ var recruiterProjectJobBudgetCommand = defineCommand({
1459
1459
  profile: flags.profile
1460
1460
  });
1461
1461
  if (!cfg.apiKey) {
1462
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
1462
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
1463
1463
  process.exit(3);
1464
1464
  }
1465
1465
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -1486,7 +1486,7 @@ var recruiterProjectJobUpdateCommand = defineCommand({
1486
1486
  profile: flags.profile
1487
1487
  });
1488
1488
  if (!cfg.apiKey) {
1489
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
1489
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
1490
1490
  process.exit(3);
1491
1491
  }
1492
1492
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -1522,7 +1522,7 @@ var recruiterProjectJobCommand = defineCommand({
1522
1522
  profile: flags.profile
1523
1523
  });
1524
1524
  if (!cfg.apiKey) {
1525
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
1525
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
1526
1526
  process.exit(3);
1527
1527
  }
1528
1528
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -1550,7 +1550,7 @@ var recruiterTalentSearchCommand = defineCommand({
1550
1550
  profile: flags.profile
1551
1551
  });
1552
1552
  if (!cfg.apiKey) {
1553
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
1553
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
1554
1554
  process.exit(3);
1555
1555
  }
1556
1556
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -1577,7 +1577,7 @@ var recruiterApplicantResumeCommand = defineCommand({
1577
1577
  profile: flags.profile
1578
1578
  });
1579
1579
  if (!cfg.apiKey) {
1580
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
1580
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
1581
1581
  process.exit(3);
1582
1582
  }
1583
1583
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });
@@ -1617,7 +1617,7 @@ var recruiterApplicantCommand = defineCommand({
1617
1617
  profile: flags.profile
1618
1618
  });
1619
1619
  if (!cfg.apiKey) {
1620
- process.stderr.write("error: no API key \u2014 run `curviate login` or pass --api-key.\n");
1620
+ process.stderr.write("error: no API key, run `curviate login` or pass --api-key.\n");
1621
1621
  process.exit(3);
1622
1622
  }
1623
1623
  const client = createClient({ apiKey: cfg.apiKey, baseUrl: cfg.baseUrl, timeout: cfg.timeout });