@cavuno/board 2.0.5 → 3.0.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 (73) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +1 -3
  3. package/dist/{_spec-BKtVFcV9.d.mts → _spec-nkWAraS0.d.mts} +4 -18
  4. package/dist/{_spec-BKtVFcV9.d.ts → _spec-nkWAraS0.d.ts} +4 -18
  5. package/dist/bin.mjs +40 -57
  6. package/dist/{board-3Xj_Y-Tx.d.ts → board-NE98PlwN.d.ts} +2 -3
  7. package/dist/{board-pNN710Zc.d.mts → board-muu8BI8P.d.mts} +2 -3
  8. package/dist/doctor.js +21 -47
  9. package/dist/doctor.mjs +24 -50
  10. package/dist/filters.d.mts +2 -2
  11. package/dist/filters.d.ts +2 -2
  12. package/dist/format.d.mts +3 -3
  13. package/dist/format.d.ts +3 -3
  14. package/dist/index.d.mts +11 -27
  15. package/dist/index.d.ts +11 -27
  16. package/dist/index.js +3 -3
  17. package/dist/index.mjs +3 -3
  18. package/dist/{jobs-C4qRfCdP.d.ts → jobs-BiEvL9d7.d.ts} +1 -1
  19. package/dist/{jobs-k84C0v_8.d.mts → jobs-lVvKCBCU.d.mts} +1 -1
  20. package/dist/{salaries--J5mTylN.d.ts → salaries-BahBpxWT.d.ts} +2 -2
  21. package/dist/{salaries-C9YLO5NG.d.mts → salaries-ChSqDBAM.d.mts} +2 -2
  22. package/dist/{search-CE_qQiM7.d.mts → search-CCyFWPi3.d.mts} +1 -1
  23. package/dist/{search-CLRQ_El9.d.ts → search-CyRvVMUp.d.ts} +1 -1
  24. package/dist/seo.d.mts +4 -4
  25. package/dist/seo.d.ts +4 -4
  26. package/dist/server.d.mts +5 -5
  27. package/dist/server.d.ts +5 -5
  28. package/dist/sitemap.d.mts +5 -5
  29. package/dist/sitemap.d.ts +5 -5
  30. package/dist/skills.d.mts +15 -4
  31. package/dist/skills.d.ts +15 -4
  32. package/dist/skills.js +30 -7
  33. package/dist/skills.mjs +30 -8
  34. package/dist/suggest.d.mts +2 -2
  35. package/dist/suggest.d.ts +2 -2
  36. package/package.json +1 -11
  37. package/skills/cavuno-board-account/SKILL.md +54 -66
  38. package/skills/cavuno-board-api-client/SKILL.md +74 -0
  39. package/skills/cavuno-board-applications/SKILL.md +38 -52
  40. package/skills/cavuno-board-auth/SKILL.md +36 -61
  41. package/skills/cavuno-board-blog/SKILL.md +60 -49
  42. package/skills/cavuno-board-companies/SKILL.md +71 -53
  43. package/skills/cavuno-board-errors/SKILL.md +29 -46
  44. package/skills/cavuno-board-filters/SKILL.md +64 -75
  45. package/skills/cavuno-board-format/SKILL.md +63 -68
  46. package/skills/cavuno-board-i18n/SKILL.md +33 -62
  47. package/skills/cavuno-board-job-alerts/SKILL.md +68 -57
  48. package/skills/cavuno-board-jobs/SKILL.md +63 -55
  49. package/skills/cavuno-board-messaging/SKILL.md +53 -59
  50. package/skills/cavuno-board-paywall/SKILL.md +48 -54
  51. package/skills/cavuno-board-post-a-job/SKILL.md +118 -0
  52. package/skills/cavuno-board-salaries/SKILL.md +73 -50
  53. package/skills/cavuno-board-search-suggestions/SKILL.md +82 -0
  54. package/skills/cavuno-board-seo/BLOG.md +40 -0
  55. package/skills/cavuno-board-seo/JOB_AND_BREADCRUMBS.md +49 -0
  56. package/skills/cavuno-board-seo/LISTING.md +36 -0
  57. package/skills/cavuno-board-seo/SALARY.md +61 -0
  58. package/skills/cavuno-board-seo/SKILL.md +32 -163
  59. package/skills/cavuno-board-server-sessions/SKILL.md +143 -0
  60. package/skills/cavuno-board-setup/SKILL.md +43 -80
  61. package/skills/cavuno-board-sitemap/SKILL.md +76 -93
  62. package/skills/cavuno-board-smoke-test/SKILL.md +34 -69
  63. package/skills/manifest.json +43 -57
  64. package/dist/theme.d.mts +0 -115
  65. package/dist/theme.d.ts +0 -115
  66. package/dist/theme.js +0 -195
  67. package/dist/theme.mjs +0 -174
  68. package/skills/cavuno-board-client/SKILL.md +0 -89
  69. package/skills/cavuno-board-job-posting/SKILL.md +0 -116
  70. package/skills/cavuno-board-server/SKILL.md +0 -229
  71. package/skills/cavuno-board-suggest/SKILL.md +0 -119
  72. package/skills/cavuno-board-theme/SKILL.md +0 -57
  73. package/skills/flavors/tanstack-start/SKILL.md +0 -102
package/dist/index.d.mts CHANGED
@@ -1,11 +1,11 @@
1
- import { S as Schemas, c as components } from './_spec-BKtVFcV9.mjs';
2
- import { F as FetchOptions, S as StorageMode, B as BoardRequest, A as Awaitable, L as Logger, a as BoardClient, b as SearchSuggestQuery } from './search-CE_qQiM7.mjs';
3
- export { c as ACCESS_TOKEN_KEY, d as BOARD_ACCESS_GRANT_KEY, C as CompanySuggestion, e as CustomStorage, R as REFRESH_TOKEN_KEY, f as SuggestResult, g as SuggestionItem, T as TermSuggestion } from './search-CE_qQiM7.mjs';
4
- export { C as CustomFieldDefinition, a as CustomFieldOption, b as CustomFieldType, P as PublicBoard, c as PublicBoardAnalytics, d as PublicBoardFeatures, e as PublicBoardTheme } from './board-pNN710Zc.mjs';
5
- import { R as RemoteOption, E as EmploymentType, S as Seniority, L as ListEnvelope, b as JobsListQuery, c as JobCardListEnvelope, d as JobsSearchBody, e as JobCardSearchEnvelope, f as JobsSimilarQuery, g as SearchEnvelope } from './jobs-k84C0v_8.mjs';
6
- export { h as CustomFieldValue, C as CustomFieldValues, i as EducationRequirement, j as JobCatalogPagination, k as JobCompany, J as JobSort, O as OfficeLocation, l as OffsetPagination, P as PublicJob, a as PublicJobCard, m as RelatedSearch, n as RemotePermit, o as RemoteTimezone, p as StorefrontPagination } from './jobs-k84C0v_8.mjs';
7
- import { b as CompaniesListQuery, c as CompanyListEnvelope, d as CompaniesSearchBody, e as CompanyJobsListQuery, f as CompanySimilarQuery, g as CompanyMarketsListQuery, h as SalaryDetailQuery, i as BlogPostsListQuery, j as BlogSimilarQuery, k as BlogSearchBody } from './salaries-C9YLO5NG.mjs';
8
- export { B as BlogAuthorEmbed, l as BlogTagEmbed, C as CompanyCategorySalary, m as CompanyMarket, n as CompanyMarketRef, a as CompanySalary, L as LocationSalaryDetail, o as LocationSkillsIndex, p as LocationTitlesIndex, q as PublicBlogAdjacentPosts, r as PublicBlogAuthor, s as PublicBlogPost, P as PublicBlogPostSummary, t as PublicBlogTag, u as PublicCompany, v as PublicCompanyDetail, w as SalaryCompany, x as SalaryLocation, y as SalarySkill, z as SalaryTitle, A as SkillLocationSalary, D as SkillLocationsIndex, S as SkillSalaryDetail, E as TitleLocationSalary, F as TitleLocationsIndex, T as TitleSalaryDetail } from './salaries-C9YLO5NG.mjs';
1
+ import { S as Schemas, c as components } from './_spec-nkWAraS0.mjs';
2
+ import { F as FetchOptions, S as StorageMode, B as BoardRequest, A as Awaitable, L as Logger, a as BoardClient, b as SearchSuggestQuery } from './search-CCyFWPi3.mjs';
3
+ export { c as ACCESS_TOKEN_KEY, d as BOARD_ACCESS_GRANT_KEY, C as CompanySuggestion, e as CustomStorage, R as REFRESH_TOKEN_KEY, f as SuggestResult, g as SuggestionItem, T as TermSuggestion } from './search-CCyFWPi3.mjs';
4
+ export { C as CustomFieldDefinition, a as CustomFieldOption, b as CustomFieldType, P as PublicBoard, c as PublicBoardAnalytics, d as PublicBoardFeatures } from './board-muu8BI8P.mjs';
5
+ import { R as RemoteOption, E as EmploymentType, S as Seniority, L as ListEnvelope, b as JobsListQuery, c as JobCardListEnvelope, d as JobsSearchBody, e as JobCardSearchEnvelope, f as JobsSimilarQuery, g as SearchEnvelope } from './jobs-lVvKCBCU.mjs';
6
+ export { h as CustomFieldValue, C as CustomFieldValues, i as EducationRequirement, j as JobCatalogPagination, k as JobCompany, J as JobSort, O as OfficeLocation, l as OffsetPagination, P as PublicJob, a as PublicJobCard, m as RelatedSearch, n as RemotePermit, o as RemoteTimezone, p as StorefrontPagination } from './jobs-lVvKCBCU.mjs';
7
+ import { b as CompaniesListQuery, c as CompanyListEnvelope, d as CompaniesSearchBody, e as CompanyJobsListQuery, f as CompanySimilarQuery, g as CompanyMarketsListQuery, h as SalaryDetailQuery, i as BlogPostsListQuery, j as BlogSimilarQuery, k as BlogSearchBody } from './salaries-ChSqDBAM.mjs';
8
+ export { B as BlogAuthorEmbed, l as BlogTagEmbed, C as CompanyCategorySalary, m as CompanyMarket, n as CompanyMarketRef, a as CompanySalary, L as LocationSalaryDetail, o as LocationSkillsIndex, p as LocationTitlesIndex, q as PublicBlogAdjacentPosts, r as PublicBlogAuthor, s as PublicBlogPost, P as PublicBlogPostSummary, t as PublicBlogTag, u as PublicCompany, v as PublicCompanyDetail, w as SalaryCompany, x as SalaryLocation, y as SalarySkill, z as SalaryTitle, A as SkillLocationSalary, D as SkillLocationsIndex, S as SkillSalaryDetail, E as TitleLocationSalary, F as TitleLocationsIndex, T as TitleSalaryDetail } from './salaries-ChSqDBAM.mjs';
9
9
 
10
10
  /**
11
11
  * Well-known `<domain>_<snake_reason>` codes the Board API sends, grouped by
@@ -141,7 +141,7 @@ declare function paginate<Q extends Record<string, unknown>, P extends PageShape
141
141
  * constant because the package is platform-neutral and cannot read
142
142
  * package.json at runtime.
143
143
  */
144
- declare const SDK_VERSION = "2.0.5";
144
+ declare const SDK_VERSION = "3.0.0";
145
145
 
146
146
  type SavedJob = Schemas['SavedJob'];
147
147
  type SavedJobsListQuery = {
@@ -680,10 +680,10 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
680
680
  */
681
681
  client: BoardClient;
682
682
  /**
683
- * Board context — identity, features, analytics, theme.
683
+ * Board context — identity, language, features, and analytics.
684
684
  *
685
685
  * @example
686
- * const { name, theme } = await board.context();
686
+ * const { name, language } = await board.context();
687
687
  */
688
688
  context(options?: FetchOptions): Promise<{
689
689
  object: "public_board";
@@ -716,22 +716,6 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
716
716
  linkedInPartnerId: string | null;
717
717
  cookieConsentRequired: boolean;
718
718
  };
719
- theme: {
720
- mode: string;
721
- schemeId: string;
722
- typography: {
723
- fontSans: string;
724
- fontHeading?: string | null;
725
- };
726
- colors: {
727
- light: {
728
- [key: string]: unknown;
729
- };
730
- dark: {
731
- [key: string]: unknown;
732
- };
733
- };
734
- } | null;
735
719
  customFields: components["schemas"]["CustomFieldDefinition"][];
736
720
  labels: {
737
721
  [key: string]: {
package/dist/index.d.ts CHANGED
@@ -1,11 +1,11 @@
1
- import { S as Schemas, c as components } from './_spec-BKtVFcV9.js';
2
- import { F as FetchOptions, S as StorageMode, B as BoardRequest, A as Awaitable, L as Logger, a as BoardClient, b as SearchSuggestQuery } from './search-CLRQ_El9.js';
3
- export { c as ACCESS_TOKEN_KEY, d as BOARD_ACCESS_GRANT_KEY, C as CompanySuggestion, e as CustomStorage, R as REFRESH_TOKEN_KEY, f as SuggestResult, g as SuggestionItem, T as TermSuggestion } from './search-CLRQ_El9.js';
4
- export { C as CustomFieldDefinition, a as CustomFieldOption, b as CustomFieldType, P as PublicBoard, c as PublicBoardAnalytics, d as PublicBoardFeatures, e as PublicBoardTheme } from './board-3Xj_Y-Tx.js';
5
- import { R as RemoteOption, E as EmploymentType, S as Seniority, L as ListEnvelope, b as JobsListQuery, c as JobCardListEnvelope, d as JobsSearchBody, e as JobCardSearchEnvelope, f as JobsSimilarQuery, g as SearchEnvelope } from './jobs-C4qRfCdP.js';
6
- export { h as CustomFieldValue, C as CustomFieldValues, i as EducationRequirement, j as JobCatalogPagination, k as JobCompany, J as JobSort, O as OfficeLocation, l as OffsetPagination, P as PublicJob, a as PublicJobCard, m as RelatedSearch, n as RemotePermit, o as RemoteTimezone, p as StorefrontPagination } from './jobs-C4qRfCdP.js';
7
- import { b as CompaniesListQuery, c as CompanyListEnvelope, d as CompaniesSearchBody, e as CompanyJobsListQuery, f as CompanySimilarQuery, g as CompanyMarketsListQuery, h as SalaryDetailQuery, i as BlogPostsListQuery, j as BlogSimilarQuery, k as BlogSearchBody } from './salaries--J5mTylN.js';
8
- export { B as BlogAuthorEmbed, l as BlogTagEmbed, C as CompanyCategorySalary, m as CompanyMarket, n as CompanyMarketRef, a as CompanySalary, L as LocationSalaryDetail, o as LocationSkillsIndex, p as LocationTitlesIndex, q as PublicBlogAdjacentPosts, r as PublicBlogAuthor, s as PublicBlogPost, P as PublicBlogPostSummary, t as PublicBlogTag, u as PublicCompany, v as PublicCompanyDetail, w as SalaryCompany, x as SalaryLocation, y as SalarySkill, z as SalaryTitle, A as SkillLocationSalary, D as SkillLocationsIndex, S as SkillSalaryDetail, E as TitleLocationSalary, F as TitleLocationsIndex, T as TitleSalaryDetail } from './salaries--J5mTylN.js';
1
+ import { S as Schemas, c as components } from './_spec-nkWAraS0.js';
2
+ import { F as FetchOptions, S as StorageMode, B as BoardRequest, A as Awaitable, L as Logger, a as BoardClient, b as SearchSuggestQuery } from './search-CyRvVMUp.js';
3
+ export { c as ACCESS_TOKEN_KEY, d as BOARD_ACCESS_GRANT_KEY, C as CompanySuggestion, e as CustomStorage, R as REFRESH_TOKEN_KEY, f as SuggestResult, g as SuggestionItem, T as TermSuggestion } from './search-CyRvVMUp.js';
4
+ export { C as CustomFieldDefinition, a as CustomFieldOption, b as CustomFieldType, P as PublicBoard, c as PublicBoardAnalytics, d as PublicBoardFeatures } from './board-NE98PlwN.js';
5
+ import { R as RemoteOption, E as EmploymentType, S as Seniority, L as ListEnvelope, b as JobsListQuery, c as JobCardListEnvelope, d as JobsSearchBody, e as JobCardSearchEnvelope, f as JobsSimilarQuery, g as SearchEnvelope } from './jobs-BiEvL9d7.js';
6
+ export { h as CustomFieldValue, C as CustomFieldValues, i as EducationRequirement, j as JobCatalogPagination, k as JobCompany, J as JobSort, O as OfficeLocation, l as OffsetPagination, P as PublicJob, a as PublicJobCard, m as RelatedSearch, n as RemotePermit, o as RemoteTimezone, p as StorefrontPagination } from './jobs-BiEvL9d7.js';
7
+ import { b as CompaniesListQuery, c as CompanyListEnvelope, d as CompaniesSearchBody, e as CompanyJobsListQuery, f as CompanySimilarQuery, g as CompanyMarketsListQuery, h as SalaryDetailQuery, i as BlogPostsListQuery, j as BlogSimilarQuery, k as BlogSearchBody } from './salaries-BahBpxWT.js';
8
+ export { B as BlogAuthorEmbed, l as BlogTagEmbed, C as CompanyCategorySalary, m as CompanyMarket, n as CompanyMarketRef, a as CompanySalary, L as LocationSalaryDetail, o as LocationSkillsIndex, p as LocationTitlesIndex, q as PublicBlogAdjacentPosts, r as PublicBlogAuthor, s as PublicBlogPost, P as PublicBlogPostSummary, t as PublicBlogTag, u as PublicCompany, v as PublicCompanyDetail, w as SalaryCompany, x as SalaryLocation, y as SalarySkill, z as SalaryTitle, A as SkillLocationSalary, D as SkillLocationsIndex, S as SkillSalaryDetail, E as TitleLocationSalary, F as TitleLocationsIndex, T as TitleSalaryDetail } from './salaries-BahBpxWT.js';
9
9
 
10
10
  /**
11
11
  * Well-known `<domain>_<snake_reason>` codes the Board API sends, grouped by
@@ -141,7 +141,7 @@ declare function paginate<Q extends Record<string, unknown>, P extends PageShape
141
141
  * constant because the package is platform-neutral and cannot read
142
142
  * package.json at runtime.
143
143
  */
144
- declare const SDK_VERSION = "2.0.5";
144
+ declare const SDK_VERSION = "3.0.0";
145
145
 
146
146
  type SavedJob = Schemas['SavedJob'];
147
147
  type SavedJobsListQuery = {
@@ -680,10 +680,10 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
680
680
  */
681
681
  client: BoardClient;
682
682
  /**
683
- * Board context — identity, features, analytics, theme.
683
+ * Board context — identity, language, features, and analytics.
684
684
  *
685
685
  * @example
686
- * const { name, theme } = await board.context();
686
+ * const { name, language } = await board.context();
687
687
  */
688
688
  context(options?: FetchOptions): Promise<{
689
689
  object: "public_board";
@@ -716,22 +716,6 @@ declare function createBoardClient(options: CreateBoardClientOptions): {
716
716
  linkedInPartnerId: string | null;
717
717
  cookieConsentRequired: boolean;
718
718
  };
719
- theme: {
720
- mode: string;
721
- schemeId: string;
722
- typography: {
723
- fontSans: string;
724
- fontHeading?: string | null;
725
- };
726
- colors: {
727
- light: {
728
- [key: string]: unknown;
729
- };
730
- dark: {
731
- [key: string]: unknown;
732
- };
733
- };
734
- } | null;
735
719
  customFields: components["schemas"]["CustomFieldDefinition"][];
736
720
  labels: {
737
721
  [key: string]: {
package/dist/index.js CHANGED
@@ -312,7 +312,7 @@ async function clearSession(storage) {
312
312
  }
313
313
 
314
314
  // src/version.ts
315
- var SDK_VERSION = "2.0.5";
315
+ var SDK_VERSION = "3.0.0";
316
316
 
317
317
  // src/client.ts
318
318
  function isRawBody(body) {
@@ -2830,10 +2830,10 @@ function createBoardClient(options) {
2830
2830
  */
2831
2831
  client,
2832
2832
  /**
2833
- * Board context — identity, features, analytics, theme.
2833
+ * Board context — identity, language, features, and analytics.
2834
2834
  *
2835
2835
  * @example
2836
- * const { name, theme } = await board.context();
2836
+ * const { name, language } = await board.context();
2837
2837
  */
2838
2838
  context(options2) {
2839
2839
  return client.fetch("", options2);
package/dist/index.mjs CHANGED
@@ -265,7 +265,7 @@ async function clearSession(storage) {
265
265
  }
266
266
 
267
267
  // src/version.ts
268
- var SDK_VERSION = "2.0.5";
268
+ var SDK_VERSION = "3.0.0";
269
269
 
270
270
  // src/client.ts
271
271
  function isRawBody(body) {
@@ -2783,10 +2783,10 @@ function createBoardClient(options) {
2783
2783
  */
2784
2784
  client,
2785
2785
  /**
2786
- * Board context — identity, features, analytics, theme.
2786
+ * Board context — identity, language, features, and analytics.
2787
2787
  *
2788
2788
  * @example
2789
- * const { name, theme } = await board.context();
2789
+ * const { name, language } = await board.context();
2790
2790
  */
2791
2791
  context(options2) {
2792
2792
  return client.fetch("", options2);
@@ -1,4 +1,4 @@
1
- import { S as Schemas } from './_spec-BKtVFcV9.js';
1
+ import { S as Schemas } from './_spec-nkWAraS0.js';
2
2
 
3
3
  /**
4
4
  * Optional pagination metadata returned by Board API list operations.
@@ -1,4 +1,4 @@
1
- import { S as Schemas } from './_spec-BKtVFcV9.mjs';
1
+ import { S as Schemas } from './_spec-nkWAraS0.mjs';
2
2
 
3
3
  /**
4
4
  * Optional pagination metadata returned by Board API list operations.
@@ -1,5 +1,5 @@
1
- import { S as Schemas } from './_spec-BKtVFcV9.js';
2
- import { L as ListEnvelope, m as RelatedSearch } from './jobs-C4qRfCdP.js';
1
+ import { S as Schemas } from './_spec-nkWAraS0.js';
2
+ import { L as ListEnvelope, m as RelatedSearch } from './jobs-BiEvL9d7.js';
3
3
 
4
4
  /** Author shape embedded on posts (no `object` discriminator). */
5
5
  type BlogAuthorEmbed = Schemas['PublicBlogAuthorEmbed'];
@@ -1,5 +1,5 @@
1
- import { S as Schemas } from './_spec-BKtVFcV9.mjs';
2
- import { L as ListEnvelope, m as RelatedSearch } from './jobs-k84C0v_8.mjs';
1
+ import { S as Schemas } from './_spec-nkWAraS0.mjs';
2
+ import { L as ListEnvelope, m as RelatedSearch } from './jobs-lVvKCBCU.mjs';
3
3
 
4
4
  /** Author shape embedded on posts (no `object` discriminator). */
5
5
  type BlogAuthorEmbed = Schemas['PublicBlogAuthorEmbed'];
@@ -1,4 +1,4 @@
1
- import { S as Schemas } from './_spec-BKtVFcV9.mjs';
1
+ import { S as Schemas } from './_spec-nkWAraS0.mjs';
2
2
 
3
3
  type Awaitable<T> = T | Promise<T>;
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { S as Schemas } from './_spec-BKtVFcV9.js';
1
+ import { S as Schemas } from './_spec-nkWAraS0.js';
2
2
 
3
3
  type Awaitable<T> = T | Promise<T>;
4
4
  /**
package/dist/seo.d.mts CHANGED
@@ -1,8 +1,8 @@
1
- import { P as PublicBlogPostSummary, B as BlogAuthorEmbed, C as CompanyCategorySalary, a as CompanySalary, L as LocationSalaryDetail, S as SkillSalaryDetail, T as TitleSalaryDetail } from './salaries-C9YLO5NG.mjs';
2
- import { P as PublicBoard } from './board-pNN710Zc.mjs';
3
- import { P as PublicJob } from './jobs-k84C0v_8.mjs';
1
+ import { P as PublicBlogPostSummary, B as BlogAuthorEmbed, C as CompanyCategorySalary, a as CompanySalary, L as LocationSalaryDetail, S as SkillSalaryDetail, T as TitleSalaryDetail } from './salaries-ChSqDBAM.mjs';
2
+ import { P as PublicBoard } from './board-muu8BI8P.mjs';
3
+ import { P as PublicJob } from './jobs-lVvKCBCU.mjs';
4
4
  import { B as BoardLabelOverrides } from './ui-copy-CCkz6CVF.mjs';
5
- import './_spec-BKtVFcV9.mjs';
5
+ import './_spec-nkWAraS0.mjs';
6
6
 
7
7
  /**
8
8
  * Google for Jobs `JobPosting` structured data on the `@cavuno/board` wire
package/dist/seo.d.ts CHANGED
@@ -1,8 +1,8 @@
1
- import { P as PublicBlogPostSummary, B as BlogAuthorEmbed, C as CompanyCategorySalary, a as CompanySalary, L as LocationSalaryDetail, S as SkillSalaryDetail, T as TitleSalaryDetail } from './salaries--J5mTylN.js';
2
- import { P as PublicBoard } from './board-3Xj_Y-Tx.js';
3
- import { P as PublicJob } from './jobs-C4qRfCdP.js';
1
+ import { P as PublicBlogPostSummary, B as BlogAuthorEmbed, C as CompanyCategorySalary, a as CompanySalary, L as LocationSalaryDetail, S as SkillSalaryDetail, T as TitleSalaryDetail } from './salaries-BahBpxWT.js';
2
+ import { P as PublicBoard } from './board-NE98PlwN.js';
3
+ import { P as PublicJob } from './jobs-BiEvL9d7.js';
4
4
  import { B as BoardLabelOverrides } from './ui-copy-CCkz6CVF.js';
5
- import './_spec-BKtVFcV9.js';
5
+ import './_spec-nkWAraS0.js';
6
6
 
7
7
  /**
8
8
  * Google for Jobs `JobPosting` structured data on the `@cavuno/board` wire
package/dist/server.d.mts CHANGED
@@ -1,9 +1,9 @@
1
1
  import { BoardSdk } from './index.mjs';
2
- import './_spec-BKtVFcV9.mjs';
3
- import './search-CE_qQiM7.mjs';
4
- import './board-pNN710Zc.mjs';
5
- import './jobs-k84C0v_8.mjs';
6
- import './salaries-C9YLO5NG.mjs';
2
+ import './_spec-nkWAraS0.mjs';
3
+ import './search-CCyFWPi3.mjs';
4
+ import './board-muu8BI8P.mjs';
5
+ import './jobs-lVvKCBCU.mjs';
6
+ import './salaries-ChSqDBAM.mjs';
7
7
 
8
8
  /**
9
9
  * Session cookie codec — pure (no framework imports, no node imports) so it
package/dist/server.d.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  import { BoardSdk } from './index.js';
2
- import './_spec-BKtVFcV9.js';
3
- import './search-CLRQ_El9.js';
4
- import './board-3Xj_Y-Tx.js';
5
- import './jobs-C4qRfCdP.js';
6
- import './salaries--J5mTylN.js';
2
+ import './_spec-nkWAraS0.js';
3
+ import './search-CyRvVMUp.js';
4
+ import './board-NE98PlwN.js';
5
+ import './jobs-BiEvL9d7.js';
6
+ import './salaries-BahBpxWT.js';
7
7
 
8
8
  /**
9
9
  * Session cookie codec — pure (no framework imports, no node imports) so it
@@ -1,9 +1,9 @@
1
1
  import { BoardSdk } from './index.mjs';
2
- import './_spec-BKtVFcV9.mjs';
3
- import './search-CE_qQiM7.mjs';
4
- import './board-pNN710Zc.mjs';
5
- import './jobs-k84C0v_8.mjs';
6
- import './salaries-C9YLO5NG.mjs';
2
+ import './_spec-nkWAraS0.mjs';
3
+ import './search-CCyFWPi3.mjs';
4
+ import './board-muu8BI8P.mjs';
5
+ import './jobs-lVvKCBCU.mjs';
6
+ import './salaries-ChSqDBAM.mjs';
7
7
 
8
8
  /**
9
9
  * Sitemap primitives — the pure XML + bucket-filename logic behind a board
package/dist/sitemap.d.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  import { BoardSdk } from './index.js';
2
- import './_spec-BKtVFcV9.js';
3
- import './search-CLRQ_El9.js';
4
- import './board-3Xj_Y-Tx.js';
5
- import './jobs-C4qRfCdP.js';
6
- import './salaries--J5mTylN.js';
2
+ import './_spec-nkWAraS0.js';
3
+ import './search-CyRvVMUp.js';
4
+ import './board-NE98PlwN.js';
5
+ import './jobs-BiEvL9d7.js';
6
+ import './salaries-BahBpxWT.js';
7
7
 
8
8
  /**
9
9
  * Sitemap primitives — the pure XML + bucket-filename logic behind a board
package/dist/skills.d.mts CHANGED
@@ -27,6 +27,12 @@ interface SkillManifest {
27
27
 
28
28
  interface LoadedSkill extends SkillManifestEntry {
29
29
  content: string;
30
+ references: LoadedSkillReference[];
31
+ }
32
+ interface LoadedSkillReference {
33
+ /** Filename relative to the skill's directory. */
34
+ path: string;
35
+ content: string;
30
36
  }
31
37
  interface SkillCorpus {
32
38
  version: string;
@@ -36,10 +42,15 @@ interface SkillCorpus {
36
42
  declare function resolveFromPackageRoot(relativePath: string, baseDir?: string): string;
37
43
  declare function loadSkillManifest(baseDir?: string): SkillManifest;
38
44
  /**
39
- * Load the full skill corpus — manifest metadata plus each skill's markdown
40
- * `content`. The sidekick injects `content` into its agent context; an external
41
- * Claude Code instead receives the files copied by the setup command.
45
+ * Load the full skill corpus — manifest metadata, each SKILL.md, and its
46
+ * disclosed Markdown references. Filesystem consumers keep the references
47
+ * separate; transports without sibling-file access use `bundleSkillMarkdown`.
42
48
  */
43
49
  declare function loadSkillCorpus(baseDir?: string): SkillCorpus;
50
+ /**
51
+ * Flatten one skill for transports that cannot resolve sibling files. Local
52
+ * setup keeps the files separate so agents retain progressive disclosure.
53
+ */
54
+ declare function bundleSkillMarkdown(skill: LoadedSkill): string;
44
55
 
45
- export { type LoadedSkill, type SkillCorpus, type SkillManifest, type SkillManifestEntry, loadSkillCorpus, loadSkillManifest, resolveFromPackageRoot };
56
+ export { type LoadedSkill, type LoadedSkillReference, type SkillCorpus, type SkillManifest, type SkillManifestEntry, bundleSkillMarkdown, loadSkillCorpus, loadSkillManifest, resolveFromPackageRoot };
package/dist/skills.d.ts CHANGED
@@ -27,6 +27,12 @@ interface SkillManifest {
27
27
 
28
28
  interface LoadedSkill extends SkillManifestEntry {
29
29
  content: string;
30
+ references: LoadedSkillReference[];
31
+ }
32
+ interface LoadedSkillReference {
33
+ /** Filename relative to the skill's directory. */
34
+ path: string;
35
+ content: string;
30
36
  }
31
37
  interface SkillCorpus {
32
38
  version: string;
@@ -36,10 +42,15 @@ interface SkillCorpus {
36
42
  declare function resolveFromPackageRoot(relativePath: string, baseDir?: string): string;
37
43
  declare function loadSkillManifest(baseDir?: string): SkillManifest;
38
44
  /**
39
- * Load the full skill corpus — manifest metadata plus each skill's markdown
40
- * `content`. The sidekick injects `content` into its agent context; an external
41
- * Claude Code instead receives the files copied by the setup command.
45
+ * Load the full skill corpus — manifest metadata, each SKILL.md, and its
46
+ * disclosed Markdown references. Filesystem consumers keep the references
47
+ * separate; transports without sibling-file access use `bundleSkillMarkdown`.
42
48
  */
43
49
  declare function loadSkillCorpus(baseDir?: string): SkillCorpus;
50
+ /**
51
+ * Flatten one skill for transports that cannot resolve sibling files. Local
52
+ * setup keeps the files separate so agents retain progressive disclosure.
53
+ */
54
+ declare function bundleSkillMarkdown(skill: LoadedSkill): string;
44
55
 
45
- export { type LoadedSkill, type SkillCorpus, type SkillManifest, type SkillManifestEntry, loadSkillCorpus, loadSkillManifest, resolveFromPackageRoot };
56
+ export { type LoadedSkill, type LoadedSkillReference, type SkillCorpus, type SkillManifest, type SkillManifestEntry, bundleSkillMarkdown, loadSkillCorpus, loadSkillManifest, resolveFromPackageRoot };
package/dist/skills.js CHANGED
@@ -20,6 +20,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
20
20
  // src/skills.ts
21
21
  var skills_exports = {};
22
22
  __export(skills_exports, {
23
+ bundleSkillMarkdown: () => bundleSkillMarkdown,
23
24
  loadSkillCorpus: () => loadSkillCorpus,
24
25
  loadSkillManifest: () => loadSkillManifest,
25
26
  resolveFromPackageRoot: () => resolveFromPackageRoot
@@ -48,17 +49,39 @@ function loadSkillCorpus(baseDir) {
48
49
  const manifest = loadSkillManifest(baseDir);
49
50
  return {
50
51
  version: manifest.version,
51
- skills: manifest.skills.map((skill) => ({
52
- ...skill,
53
- content: (0, import_node_fs.readFileSync)(
54
- resolveFromPackageRoot(skill.path, baseDir),
55
- "utf8"
56
- )
57
- }))
52
+ skills: manifest.skills.map((skill) => {
53
+ const skillPath = resolveFromPackageRoot(skill.path, baseDir);
54
+ const skillDir = (0, import_node_path.dirname)(skillPath);
55
+ const references = (0, import_node_fs.readdirSync)(skillDir, { withFileTypes: true }).filter(
56
+ (entry) => entry.isFile() && entry.name !== "SKILL.md" && entry.name.endsWith(".md")
57
+ ).map((entry) => ({
58
+ path: entry.name,
59
+ content: (0, import_node_fs.readFileSync)((0, import_node_path.resolve)(skillDir, entry.name), "utf8")
60
+ })).sort((a, b) => a.path.localeCompare(b.path));
61
+ return {
62
+ ...skill,
63
+ content: (0, import_node_fs.readFileSync)(skillPath, "utf8"),
64
+ references
65
+ };
66
+ })
58
67
  };
59
68
  }
69
+ function bundleSkillMarkdown(skill) {
70
+ const references = skill.references.map(
71
+ (reference) => `## Disclosed reference: ${reference.path}
72
+
73
+ ${reference.content.trim()}`
74
+ ).join("\n\n---\n\n");
75
+ return references ? `${skill.content.trim()}
76
+
77
+ ---
78
+
79
+ ${references}
80
+ ` : skill.content;
81
+ }
60
82
  // Annotate the CommonJS export names for ESM import in node:
61
83
  0 && (module.exports = {
84
+ bundleSkillMarkdown,
62
85
  loadSkillCorpus,
63
86
  loadSkillManifest,
64
87
  resolveFromPackageRoot
package/dist/skills.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  // src/skills.ts
2
- import { readFileSync } from "fs";
2
+ import { readdirSync, readFileSync } from "fs";
3
3
  import { dirname, resolve } from "path";
4
4
  import { fileURLToPath } from "url";
5
5
  function packageRoot() {
@@ -16,16 +16,38 @@ function loadSkillCorpus(baseDir) {
16
16
  const manifest = loadSkillManifest(baseDir);
17
17
  return {
18
18
  version: manifest.version,
19
- skills: manifest.skills.map((skill) => ({
20
- ...skill,
21
- content: readFileSync(
22
- resolveFromPackageRoot(skill.path, baseDir),
23
- "utf8"
24
- )
25
- }))
19
+ skills: manifest.skills.map((skill) => {
20
+ const skillPath = resolveFromPackageRoot(skill.path, baseDir);
21
+ const skillDir = dirname(skillPath);
22
+ const references = readdirSync(skillDir, { withFileTypes: true }).filter(
23
+ (entry) => entry.isFile() && entry.name !== "SKILL.md" && entry.name.endsWith(".md")
24
+ ).map((entry) => ({
25
+ path: entry.name,
26
+ content: readFileSync(resolve(skillDir, entry.name), "utf8")
27
+ })).sort((a, b) => a.path.localeCompare(b.path));
28
+ return {
29
+ ...skill,
30
+ content: readFileSync(skillPath, "utf8"),
31
+ references
32
+ };
33
+ })
26
34
  };
27
35
  }
36
+ function bundleSkillMarkdown(skill) {
37
+ const references = skill.references.map(
38
+ (reference) => `## Disclosed reference: ${reference.path}
39
+
40
+ ${reference.content.trim()}`
41
+ ).join("\n\n---\n\n");
42
+ return references ? `${skill.content.trim()}
43
+
44
+ ---
45
+
46
+ ${references}
47
+ ` : skill.content;
48
+ }
28
49
  export {
50
+ bundleSkillMarkdown,
29
51
  loadSkillCorpus,
30
52
  loadSkillManifest,
31
53
  resolveFromPackageRoot
@@ -1,5 +1,5 @@
1
- import { g as SuggestionItem, b as SearchSuggestQuery, F as FetchOptions, f as SuggestResult } from './search-CE_qQiM7.mjs';
2
- import './_spec-BKtVFcV9.mjs';
1
+ import { g as SuggestionItem, b as SearchSuggestQuery, F as FetchOptions, f as SuggestResult } from './search-CCyFWPi3.mjs';
2
+ import './_spec-nkWAraS0.mjs';
3
3
 
4
4
  /**
5
5
  * `@cavuno/board/suggest` — framework-agnostic headless search-suggest
package/dist/suggest.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { g as SuggestionItem, b as SearchSuggestQuery, F as FetchOptions, f as SuggestResult } from './search-CLRQ_El9.js';
2
- import './_spec-BKtVFcV9.js';
1
+ import { g as SuggestionItem, b as SearchSuggestQuery, F as FetchOptions, f as SuggestResult } from './search-CyRvVMUp.js';
2
+ import './_spec-nkWAraS0.js';
3
3
 
4
4
  /**
5
5
  * `@cavuno/board/suggest` — framework-agnostic headless search-suggest
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cavuno/board",
3
- "version": "2.0.5",
3
+ "version": "3.0.0",
4
4
  "description": "Build custom job boards and careers pages with Cavuno’s TypeScript SDK.",
5
5
  "keywords": [
6
6
  "api-client",
@@ -92,16 +92,6 @@
92
92
  "default": "./dist/suggest.js"
93
93
  }
94
94
  },
95
- "./theme": {
96
- "import": {
97
- "types": "./dist/theme.d.mts",
98
- "default": "./dist/theme.mjs"
99
- },
100
- "require": {
101
- "types": "./dist/theme.d.ts",
102
- "default": "./dist/theme.js"
103
- }
104
- },
105
95
  "./seo": {
106
96
  "import": {
107
97
  "types": "./dist/seo.d.mts",