@thejob/schema 2.5.0 → 2.7.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.
package/dist/index.d.cts CHANGED
@@ -640,8 +640,12 @@ declare const JobSchema: ObjectSchema<{
640
640
  employmentType: string;
641
641
  workMode: string;
642
642
  skills: {
643
- conceptId?: string | null | undefined;
644
- conceptName?: string | null | undefined;
643
+ concept?: {
644
+ name: string;
645
+ type: string;
646
+ conceptId: string;
647
+ vocabulary: string;
648
+ } | null | undefined;
645
649
  name: string;
646
650
  logo: {
647
651
  dark?: string | null | undefined;
@@ -653,8 +657,8 @@ declare const JobSchema: ObjectSchema<{
653
657
  userId: string;
654
658
  }[] | undefined;
655
659
  embedding: {
656
- vector?: number[] | undefined;
657
660
  model?: string | undefined;
661
+ vector?: number[] | undefined;
658
662
  } | null | undefined;
659
663
  applicants: {
660
664
  createdAt: string;
@@ -789,6 +793,7 @@ declare const JobSchema: ObjectSchema<{
789
793
  category: string | null | undefined;
790
794
  industry: string | null | undefined;
791
795
  subCategories: string[] | null | undefined;
796
+ taxonomyVersion: number | null | undefined;
792
797
  termsAccepted: NonNullable<boolean | undefined>;
793
798
  isFeatured: boolean;
794
799
  featuredMarkets: string[];
@@ -894,6 +899,7 @@ declare const JobSchema: ObjectSchema<{
894
899
  category: undefined;
895
900
  industry: undefined;
896
901
  subCategories: "";
902
+ taxonomyVersion: undefined;
897
903
  termsAccepted: undefined;
898
904
  isFeatured: false;
899
905
  featuredMarkets: never[];
@@ -2848,8 +2854,8 @@ declare const CampaignSchema: yup.ObjectSchema<{
2848
2854
  unit: NonNullable<CampaignIntervalUnit | undefined>;
2849
2855
  } | undefined;
2850
2856
  byMonthday?: number | undefined;
2851
- timezone: string;
2852
2857
  kind: NonNullable<CampaignTriggerKind | undefined>;
2858
+ timezone: string;
2853
2859
  timeOfDay: string;
2854
2860
  byWeekday: number[];
2855
2861
  end: {
@@ -2862,8 +2868,8 @@ declare const CampaignSchema: yup.ObjectSchema<{
2862
2868
  resendAfterDays: number | null | undefined;
2863
2869
  maxRecipients: number | undefined;
2864
2870
  utm: {
2865
- campaign?: string | undefined;
2866
2871
  content?: string | undefined;
2872
+ campaign?: string | undefined;
2867
2873
  } | undefined;
2868
2874
  }, yup.AnyObject, {
2869
2875
  name: undefined;
@@ -3654,6 +3660,595 @@ declare const EntitlementConsumeSchema: yup.ObjectSchema<{
3654
3660
  idempotencyKey: undefined;
3655
3661
  }, "">;
3656
3662
 
3663
+ /** One concept type a vocabulary allows, e.g. `programming_language`. */
3664
+ declare const VocabularyTypeSchema: yup.ObjectSchema<{
3665
+ id: string;
3666
+ description: string;
3667
+ }, yup.AnyObject, {
3668
+ id: undefined;
3669
+ description: undefined;
3670
+ }, "">;
3671
+ /**
3672
+ * A kind of concept the service holds (skills, languages, roles). Adding one is
3673
+ * data (an API call), never a code change: every prompt is built from these
3674
+ * fields.
3675
+ */
3676
+ declare const VocabularySchema: yup.ObjectSchema<{
3677
+ vocabularyId: string;
3678
+ name: string;
3679
+ noun: string;
3680
+ nounPlural: string;
3681
+ description: string;
3682
+ appearsIn: string;
3683
+ outOfScope: string;
3684
+ types: {
3685
+ description: string;
3686
+ id: string;
3687
+ }[];
3688
+ defaultType: string;
3689
+ prefilter: NonNullable<"spoken_language" | "no_letters" | "url_or_email" | "fragment" | undefined>[];
3690
+ qualifiers: string[] | undefined;
3691
+ guidance: {
3692
+ describe?: string | undefined;
3693
+ classify?: string | undefined;
3694
+ aliases?: string | undefined;
3695
+ verify?: string | undefined;
3696
+ place?: string | undefined;
3697
+ };
3698
+ source: NonNullable<"seed" | "manual" | undefined>;
3699
+ createdAt: number;
3700
+ updatedAt: number;
3701
+ }, yup.AnyObject, {
3702
+ vocabularyId: undefined;
3703
+ name: undefined;
3704
+ noun: undefined;
3705
+ nounPlural: undefined;
3706
+ description: undefined;
3707
+ appearsIn: undefined;
3708
+ outOfScope: undefined;
3709
+ types: undefined;
3710
+ defaultType: undefined;
3711
+ prefilter: never[];
3712
+ qualifiers: undefined;
3713
+ guidance: {
3714
+ describe: undefined;
3715
+ classify: undefined;
3716
+ aliases: undefined;
3717
+ verify: undefined;
3718
+ place: undefined;
3719
+ };
3720
+ source: undefined;
3721
+ createdAt: undefined;
3722
+ updatedAt: undefined;
3723
+ }, "">;
3724
+ /**
3725
+ * One node of a vocabulary's 3-level backbone (category > subcategory > group),
3726
+ * stored flat with `parentId` and `path` so any level can be read directly.
3727
+ */
3728
+ declare const TaxonomyNodeSchema: yup.ObjectSchema<{
3729
+ nodeId: string;
3730
+ vocabulary: string;
3731
+ kind: NonNullable<"category" | "subcategory" | "group" | undefined>;
3732
+ name: string;
3733
+ description: string | undefined;
3734
+ aliases: string[];
3735
+ parentId: string | null;
3736
+ path: string[];
3737
+ source: "seed" | "manual" | undefined;
3738
+ createdAt: number;
3739
+ updatedAt: number;
3740
+ }, yup.AnyObject, {
3741
+ nodeId: undefined;
3742
+ vocabulary: undefined;
3743
+ kind: undefined;
3744
+ name: undefined;
3745
+ description: undefined;
3746
+ aliases: never[];
3747
+ parentId: undefined;
3748
+ path: never[];
3749
+ source: undefined;
3750
+ createdAt: undefined;
3751
+ updatedAt: undefined;
3752
+ }, "">;
3753
+ /**
3754
+ * Where a concept sits in its vocabulary's backbone. A concept may have several
3755
+ * (the same name filed under several categories merges into one concept) or none
3756
+ * (live but uncategorized, waiting for a placement).
3757
+ */
3758
+ declare const ConceptMembershipSchema: yup.ObjectSchema<{
3759
+ categoryId: string;
3760
+ categoryName: string;
3761
+ subcategoryId: string;
3762
+ subcategoryName: string;
3763
+ groupId: string;
3764
+ groupName: string;
3765
+ sourceId: string;
3766
+ }, yup.AnyObject, {
3767
+ categoryId: undefined;
3768
+ categoryName: undefined;
3769
+ subcategoryId: undefined;
3770
+ subcategoryName: undefined;
3771
+ groupId: undefined;
3772
+ groupName: undefined;
3773
+ sourceId: "";
3774
+ }, "">;
3775
+ /**
3776
+ * A canonical concept: what `/normalize` resolves free text onto.
3777
+ *
3778
+ * Which keys a concept answers to is NOT here: the service keeps them in its
3779
+ * own `matchKeys` store. `aliases` is alias TEXT for people to read.
3780
+ */
3781
+ declare const ConceptSchema: yup.ObjectSchema<{
3782
+ conceptId: string;
3783
+ vocabulary: string;
3784
+ name: string;
3785
+ type: string;
3786
+ description: string;
3787
+ aliases: string[];
3788
+ memberships: {
3789
+ groupId: string;
3790
+ categoryId: string;
3791
+ categoryName: string;
3792
+ subcategoryId: string;
3793
+ subcategoryName: string;
3794
+ groupName: string;
3795
+ sourceId: string;
3796
+ }[];
3797
+ relatedConceptIds: string[];
3798
+ source: NonNullable<"seed" | "manual" | "import" | undefined>;
3799
+ createdAt: number;
3800
+ updatedAt: number;
3801
+ retypedAt: number | undefined;
3802
+ aliasedAt: number | undefined;
3803
+ descriptionPending: true | undefined;
3804
+ }, yup.AnyObject, {
3805
+ conceptId: undefined;
3806
+ vocabulary: undefined;
3807
+ name: undefined;
3808
+ type: undefined;
3809
+ description: "";
3810
+ aliases: never[];
3811
+ memberships: never[];
3812
+ relatedConceptIds: never[];
3813
+ source: undefined;
3814
+ createdAt: undefined;
3815
+ updatedAt: undefined;
3816
+ retypedAt: undefined;
3817
+ aliasedAt: undefined;
3818
+ descriptionPending: "";
3819
+ }, "">;
3820
+ /**
3821
+ * A term callers sent that the taxonomy could not resolve: the ranked work list
3822
+ * for growing it. Never expired; `resolution` closes the loop.
3823
+ */
3824
+ declare const UnmatchedTermSchema: yup.ObjectSchema<{
3825
+ vocabulary: string;
3826
+ term: string;
3827
+ normalizedTerm: string;
3828
+ count: number;
3829
+ firstSeenAt: number;
3830
+ lastSeenAt: number;
3831
+ sources: {
3832
+ context?: string | undefined;
3833
+ service: string;
3834
+ }[];
3835
+ resolution: NonNullable<"pending" | "rejected" | "added" | undefined>;
3836
+ resolvedConceptId: string | undefined;
3837
+ reason: "ambiguous" | undefined;
3838
+ candidates: string[] | undefined;
3839
+ rejectedBy: string | undefined;
3840
+ }, yup.AnyObject, {
3841
+ vocabulary: undefined;
3842
+ term: undefined;
3843
+ normalizedTerm: undefined;
3844
+ count: undefined;
3845
+ firstSeenAt: undefined;
3846
+ lastSeenAt: undefined;
3847
+ sources: never[];
3848
+ resolution: undefined;
3849
+ resolvedConceptId: undefined;
3850
+ reason: undefined;
3851
+ candidates: undefined;
3852
+ rejectedBy: undefined;
3853
+ }, "">;
3854
+ /** A scored backbone group a draft could be placed in. */
3855
+ declare const ProposalCandidateSchema: yup.ObjectSchema<{
3856
+ groupId: string;
3857
+ groupName: string;
3858
+ subcategoryId: string;
3859
+ subcategoryName: string;
3860
+ categoryId: string;
3861
+ categoryName: string;
3862
+ score: number;
3863
+ nearestMembers: string[];
3864
+ }, yup.AnyObject, {
3865
+ groupId: undefined;
3866
+ groupName: undefined;
3867
+ subcategoryId: undefined;
3868
+ subcategoryName: undefined;
3869
+ categoryId: undefined;
3870
+ categoryName: undefined;
3871
+ score: undefined;
3872
+ nearestMembers: never[];
3873
+ }, "">;
3874
+ /** One turn of a draft's refinement chat. */
3875
+ declare const ProposalMessageSchema: yup.ObjectSchema<{
3876
+ role: NonNullable<"operator" | "model" | undefined>;
3877
+ content: string;
3878
+ model: string | undefined;
3879
+ at: number;
3880
+ }, yup.AnyObject, {
3881
+ role: undefined;
3882
+ content: undefined;
3883
+ model: undefined;
3884
+ at: undefined;
3885
+ }, "">;
3886
+ /** A home that does not exist yet, named level by level. "" means no opinion on that level. */
3887
+ declare const SuggestedHomeSchema: yup.ObjectSchema<{
3888
+ categoryName: string;
3889
+ subcategoryName: string;
3890
+ groupName: string;
3891
+ }, yup.AnyObject, {
3892
+ categoryName: undefined;
3893
+ subcategoryName: undefined;
3894
+ groupName: undefined;
3895
+ }, "">;
3896
+ /** The resolver's verdict on the existing concepts it was shown for a miss. */
3897
+ declare const ResolverVerificationSchema: yup.ObjectSchema<{
3898
+ verdict: NonNullable<"same" | "narrower" | "broader" | "related" | "new_concept" | "out_of_scope" | undefined>;
3899
+ conceptId: string | null;
3900
+ evidence: string;
3901
+ means: string | undefined;
3902
+ consistent: boolean | undefined;
3903
+ confirm: {
3904
+ evidence: string;
3905
+ answer: NonNullable<"yes" | "no" | undefined>;
3906
+ } | undefined;
3907
+ }, yup.AnyObject, {
3908
+ verdict: undefined;
3909
+ conceptId: undefined;
3910
+ evidence: undefined;
3911
+ means: undefined;
3912
+ consistent: undefined;
3913
+ confirm: undefined;
3914
+ }, "">;
3915
+ /**
3916
+ * A draft between a miss and the taxonomy. Nothing in a draft is matchable;
3917
+ * approving it is the only way it reaches the concepts.
3918
+ */
3919
+ declare const ConceptProposalSchema: yup.ObjectSchema<{
3920
+ proposalId: string;
3921
+ vocabulary: string;
3922
+ term: string;
3923
+ normalizedTerm: string;
3924
+ count: number;
3925
+ mergedTerms: {
3926
+ term: string;
3927
+ normalizedTerm: string;
3928
+ count: number;
3929
+ }[] | undefined;
3930
+ kind: "concept" | "alias" | "placement" | undefined;
3931
+ targetConceptId: string | undefined;
3932
+ targetName: string | undefined;
3933
+ name: string;
3934
+ type: string;
3935
+ description: string;
3936
+ aliases: string[];
3937
+ memberships: {
3938
+ groupId: string;
3939
+ categoryId: string;
3940
+ categoryName: string;
3941
+ subcategoryId: string;
3942
+ subcategoryName: string;
3943
+ groupName: string;
3944
+ sourceId: string;
3945
+ }[];
3946
+ suggestedHome: {
3947
+ categoryName: string;
3948
+ subcategoryName: string;
3949
+ groupName: string;
3950
+ } | null | undefined;
3951
+ relatedConceptIds: string[];
3952
+ candidates: {
3953
+ score: number;
3954
+ groupId: string;
3955
+ categoryId: string;
3956
+ categoryName: string;
3957
+ subcategoryId: string;
3958
+ subcategoryName: string;
3959
+ groupName: string;
3960
+ nearestMembers: string[];
3961
+ }[];
3962
+ needsReview: NonNullable<boolean | undefined>;
3963
+ reason: string | undefined;
3964
+ verification: {
3965
+ means?: string | undefined;
3966
+ consistent?: boolean | undefined;
3967
+ confirm?: {
3968
+ evidence: string;
3969
+ answer: NonNullable<"yes" | "no" | undefined>;
3970
+ } | undefined;
3971
+ conceptId: string | null;
3972
+ verdict: NonNullable<"same" | "narrower" | "broader" | "related" | "new_concept" | "out_of_scope" | undefined>;
3973
+ evidence: string;
3974
+ } | undefined;
3975
+ autoAccept: {
3976
+ reason?: string | undefined;
3977
+ tier?: string | undefined;
3978
+ calibrationId?: string | undefined;
3979
+ releaseId?: string | undefined;
3980
+ accepted: NonNullable<boolean | undefined>;
3981
+ } | undefined;
3982
+ model: string;
3983
+ messages: {
3984
+ model?: string | undefined;
3985
+ at: number;
3986
+ role: NonNullable<"operator" | "model" | undefined>;
3987
+ content: string;
3988
+ }[];
3989
+ status: NonNullable<"approved" | "draft" | "discarded" | undefined>;
3990
+ resolvedConceptId: string | undefined;
3991
+ createdAt: number;
3992
+ updatedAt: number;
3993
+ }, yup.AnyObject, {
3994
+ proposalId: undefined;
3995
+ vocabulary: undefined;
3996
+ term: undefined;
3997
+ normalizedTerm: undefined;
3998
+ count: undefined;
3999
+ mergedTerms: undefined;
4000
+ kind: undefined;
4001
+ targetConceptId: undefined;
4002
+ targetName: undefined;
4003
+ name: undefined;
4004
+ type: undefined;
4005
+ description: undefined;
4006
+ aliases: never[];
4007
+ memberships: never[];
4008
+ suggestedHome: undefined;
4009
+ relatedConceptIds: never[];
4010
+ candidates: never[];
4011
+ needsReview: undefined;
4012
+ reason: undefined;
4013
+ verification: undefined;
4014
+ autoAccept: undefined;
4015
+ model: undefined;
4016
+ messages: never[];
4017
+ status: undefined;
4018
+ resolvedConceptId: undefined;
4019
+ createdAt: undefined;
4020
+ updatedAt: undefined;
4021
+ }, "">;
4022
+ /** A group of key writes that is undone together. Every key write belongs to one. */
4023
+ declare const ReleaseSchema: yup.ObjectSchema<{
4024
+ releaseId: string;
4025
+ kind: NonNullable<"seed" | "manual" | "review" | "auto" | undefined>;
4026
+ status: NonNullable<"open" | "rolled_back" | undefined>;
4027
+ createdBy: string;
4028
+ createdAt: number;
4029
+ note: string | undefined;
4030
+ rolledBackAt: number | undefined;
4031
+ rolledBackBy: string | undefined;
4032
+ }, yup.AnyObject, {
4033
+ releaseId: undefined;
4034
+ kind: undefined;
4035
+ status: undefined;
4036
+ createdBy: undefined;
4037
+ createdAt: undefined;
4038
+ note: undefined;
4039
+ rolledBackAt: undefined;
4040
+ rolledBackBy: undefined;
4041
+ }, "">;
4042
+ /** A sampled auto-accepted key, waiting for (or carrying) a human's verdict. */
4043
+ declare const AuditSchema: yup.ObjectSchema<{
4044
+ auditId: string;
4045
+ releaseId: string;
4046
+ key: string;
4047
+ term: string;
4048
+ conceptId: string;
4049
+ tier: string | undefined;
4050
+ status: NonNullable<"pending" | "correct" | "wrong" | undefined>;
4051
+ createdAt: number;
4052
+ resolvedAt: number | undefined;
4053
+ resolvedBy: string | undefined;
4054
+ }, yup.AnyObject, {
4055
+ auditId: undefined;
4056
+ releaseId: undefined;
4057
+ key: undefined;
4058
+ term: undefined;
4059
+ conceptId: undefined;
4060
+ tier: undefined;
4061
+ status: undefined;
4062
+ createdAt: undefined;
4063
+ resolvedAt: undefined;
4064
+ resolvedBy: undefined;
4065
+ }, "">;
4066
+ /**
4067
+ * Operator-editable runtime settings and kill switches. One document; every
4068
+ * replica obeys it within seconds.
4069
+ */
4070
+ declare const ResolverSettingsSchema: yup.ObjectSchema<{
4071
+ autoAccept: {
4072
+ enabled: NonNullable<boolean | undefined>;
4073
+ target: number;
4074
+ maxPerRun: number;
4075
+ maxPerDay: number;
4076
+ auditRate: number;
4077
+ };
4078
+ serveAutoKeys: NonNullable<boolean | undefined>;
4079
+ fuzzyMinScore: number;
4080
+ searchRateLimitPerMin: number;
4081
+ scheduledJobs: NonNullable<boolean | undefined>;
4082
+ updatedAt: number | undefined;
4083
+ updatedBy: string | undefined;
4084
+ trippedReason: string | undefined;
4085
+ }, yup.AnyObject, {
4086
+ autoAccept: {
4087
+ enabled: undefined;
4088
+ target: undefined;
4089
+ maxPerRun: undefined;
4090
+ maxPerDay: undefined;
4091
+ auditRate: undefined;
4092
+ };
4093
+ serveAutoKeys: undefined;
4094
+ fuzzyMinScore: undefined;
4095
+ searchRateLimitPerMin: undefined;
4096
+ scheduledJobs: undefined;
4097
+ updatedAt: undefined;
4098
+ updatedBy: undefined;
4099
+ trippedReason: undefined;
4100
+ }, "">;
4101
+ /** How often one maintenance job runs on the schedule. */
4102
+ declare const TaxonomyScheduleSchema: yup.ObjectSchema<{
4103
+ kind: NonNullable<"describe-concepts" | "retype-concepts" | "generate-aliases" | "alias-backfill" | "close-gaps" | "propose-placements" | "place-unplaced" | "calibrate-placement" | "reseed" | "reindex" | "calibrate-resolver" | "golden" | "resolve-backlog" | undefined>;
4104
+ enabled: NonNullable<boolean | undefined>;
4105
+ everyHours: number;
4106
+ lastRunAt: number | undefined;
4107
+ updatedAt: number;
4108
+ }, yup.AnyObject, {
4109
+ kind: undefined;
4110
+ enabled: undefined;
4111
+ everyHours: undefined;
4112
+ lastRunAt: undefined;
4113
+ updatedAt: undefined;
4114
+ }, "">;
4115
+ /**
4116
+ * Optional caller context for `/normalize`, used ONLY to choose between the
4117
+ * meanings of an ambiguous term. It never changes an unambiguous answer.
4118
+ */
4119
+ declare const NormalizeContextSchema: yup.ObjectSchema<{
4120
+ title: string | undefined;
4121
+ categoryIds: string[] | undefined;
4122
+ siblings: string[] | undefined;
4123
+ }, yup.AnyObject, {
4124
+ title: undefined;
4125
+ categoryIds: undefined;
4126
+ siblings: undefined;
4127
+ }, "">;
4128
+
4129
+ /**
4130
+ * Taxonomy vocabulary (thejob-taxonomy-service).
4131
+ *
4132
+ * Every value here is stored in Mongo and compared as a literal by the service,
4133
+ * so the strings are data, not style. Two conventions differ from the rest of the
4134
+ * package, both deliberate:
4135
+ *
4136
+ * 1. **`as const` arrays, not enums.** The service compares and assigns these as
4137
+ * string literals (`status: 'draft'`) in hundreds of places; a TS string enum
4138
+ * would make every one of them a type error. The array is the single list,
4139
+ * and the type is derived from it, the same way as `SupportedSalaryCurrencies`.
4140
+ * 2. **Some values keep underscores** (`spoken_language`, `new_concept`,
4141
+ * `rolled_back`). They are stored as written; changing one is a data
4142
+ * migration, not a rename.
4143
+ */
4144
+ /** Who owns a concept. Only `seed` may be rewritten by a re-seed. */
4145
+ declare const SupportedConceptSources: readonly ["seed", "manual", "import"];
4146
+ type ConceptSource = (typeof SupportedConceptSources)[number];
4147
+ /** Who owns a backbone node or a vocabulary. Only `seed` may be rewritten by a re-seed. */
4148
+ declare const SupportedTaxonomySources: readonly ["seed", "manual"];
4149
+ type TaxonomySource = (typeof SupportedTaxonomySources)[number];
4150
+ /** The three levels of a vocabulary's backbone, root first. */
4151
+ declare const SupportedTaxonomyNodeKinds: readonly ["category", "subcategory", "group"];
4152
+ type TaxonomyNodeKind = (typeof SupportedTaxonomyNodeKinds)[number];
4153
+ /** Cheap rules that reject a miss before any model sees it, per vocabulary. */
4154
+ declare const SupportedPrefilterRules: readonly ["spoken_language", "no_letters", "url_or_email", "fragment"];
4155
+ type PrefilterRule = (typeof SupportedPrefilterRules)[number];
4156
+ /** Triage state of a miss. */
4157
+ declare const SupportedUnmatchedResolutions: readonly ["pending", "added", "rejected"];
4158
+ type UnmatchedResolution = (typeof SupportedUnmatchedResolutions)[number];
4159
+ /** Why a miss is not a gap: the term names several concepts and no context picked one. */
4160
+ declare const SupportedUnmatchedReasons: readonly ["ambiguous"];
4161
+ type UnmatchedReason = (typeof SupportedUnmatchedReasons)[number];
4162
+ /**
4163
+ * What approving a proposal does. `concept`: a new concept. `alias`: another name
4164
+ * for an existing concept. `placement`: a home for a concept that has none.
4165
+ */
4166
+ declare const SupportedProposalKinds: readonly ["concept", "alias", "placement"];
4167
+ type ProposalKind = (typeof SupportedProposalKinds)[number];
4168
+ /** The review queue's filter: a kind, or `uncategorized` (drafts with no home yet). */
4169
+ declare const SupportedProposalFilters: readonly ["concept", "alias", "placement", "uncategorized"];
4170
+ type ProposalFilter = (typeof SupportedProposalFilters)[number];
4171
+ declare const SupportedProposalStatuses: readonly ["draft", "approved", "discarded"];
4172
+ type ProposalStatus = (typeof SupportedProposalStatuses)[number];
4173
+ declare const SupportedProposalMessageRoles: readonly ["operator", "model"];
4174
+ type ProposalMessageRole = (typeof SupportedProposalMessageRoles)[number];
4175
+ /** The resolver's judgement of a miss against the concepts it was shown. */
4176
+ declare const SupportedResolverVerdicts: readonly ["same", "narrower", "broader", "related", "new_concept", "out_of_scope"];
4177
+ type ResolverVerdict = (typeof SupportedResolverVerdicts)[number];
4178
+ /** A human's check of one auto-accepted key. */
4179
+ declare const SupportedAuditStatuses: readonly ["pending", "correct", "wrong"];
4180
+ type AuditStatus = (typeof SupportedAuditStatuses)[number];
4181
+ /** Where a batch of key writes came from. */
4182
+ declare const SupportedReleaseKinds: readonly ["seed", "manual", "review", "auto"];
4183
+ type ReleaseKind = (typeof SupportedReleaseKinds)[number];
4184
+ declare const SupportedReleaseStatuses: readonly ["open", "rolled_back"];
4185
+ type ReleaseStatus = (typeof SupportedReleaseStatuses)[number];
4186
+ /**
4187
+ * How a term resolved. `exact` and `canonical` are deterministic key hits,
4188
+ * `fuzzy` a scored search hit above the threshold, `none` no answer.
4189
+ */
4190
+ declare const SupportedMatchTypes: readonly ["exact", "canonical", "fuzzy", "none"];
4191
+ type MatchType = (typeof SupportedMatchTypes)[number];
4192
+ /** The service's maintenance jobs, as started from the API or the schedule. */
4193
+ declare const SupportedTaxonomyJobKinds: readonly ["describe-concepts", "retype-concepts", "generate-aliases", "alias-backfill", "close-gaps", "propose-placements", "place-unplaced", "calibrate-placement", "reseed", "reindex", "calibrate-resolver", "golden", "resolve-backlog"];
4194
+ type TaxonomyJobKind = (typeof SupportedTaxonomyJobKinds)[number];
4195
+ declare const SupportedTaxonomyJobStates: readonly ["running", "succeeded", "failed", "cancelled"];
4196
+ type TaxonomyJobState = (typeof SupportedTaxonomyJobStates)[number];
4197
+ /** `<vocabulary>_<slug>`, e.g. `skills_power-bi`. The vocabulary is the part before `_`. */
4198
+ declare const CONCEPT_ID_PATTERN: RegExp;
4199
+ /** Never `_`: concept ids use it to separate the vocabulary from the slug. */
4200
+ declare const VOCABULARY_ID_PATTERN: RegExp;
4201
+ /** Backbone node ids, e.g. `CAT_01_TECH`. Interpolated into search filters, so nothing else is allowed. */
4202
+ declare const TAXONOMY_NODE_ID_PATTERN: RegExp;
4203
+ /** A concept type id, e.g. `programming_language`. */
4204
+ declare const CONCEPT_TYPE_PATTERN: RegExp;
4205
+ /** Schedule bounds, in hours: the floor protects the AI budget, the ceiling keeps it a schedule. */
4206
+ declare const SCHEDULE_MIN_HOURS = 1;
4207
+ declare const SCHEDULE_MAX_HOURS: number;
4208
+
4209
+ declare const ConceptFilterSchema: yup.ObjectSchema<{
4210
+ type: string[];
4211
+ categoryId: string[];
4212
+ unplaced: boolean | undefined;
4213
+ }, yup.AnyObject, {
4214
+ type: never[];
4215
+ categoryId: never[];
4216
+ unplaced: undefined;
4217
+ }, "">;
4218
+ declare const TaxonomyNodeFilterSchema: yup.ObjectSchema<{
4219
+ kind: string[];
4220
+ parentId: string[];
4221
+ }, yup.AnyObject, {
4222
+ kind: never[];
4223
+ parentId: never[];
4224
+ }, "">;
4225
+ declare const UnmatchedFilterSchema: yup.ObjectSchema<{
4226
+ resolution: string[];
4227
+ reason: string[];
4228
+ }, yup.AnyObject, {
4229
+ resolution: never[];
4230
+ reason: never[];
4231
+ }, "">;
4232
+ declare const ConceptProposalFilterSchema: yup.ObjectSchema<{
4233
+ status: string[];
4234
+ kind: string[];
4235
+ }, yup.AnyObject, {
4236
+ status: never[];
4237
+ kind: never[];
4238
+ }, "">;
4239
+ declare const ReleaseFilterSchema: yup.ObjectSchema<{
4240
+ kind: string[];
4241
+ status: string[];
4242
+ }, yup.AnyObject, {
4243
+ kind: never[];
4244
+ status: never[];
4245
+ }, "">;
4246
+ declare const AuditFilterSchema: yup.ObjectSchema<{
4247
+ status: string[];
4248
+ }, yup.AnyObject, {
4249
+ status: never[];
4250
+ }, "">;
4251
+
3657
4252
  declare enum SocialAccount {
3658
4253
  Facebook = "facebook",
3659
4254
  Twitter = "twitter",
@@ -3826,8 +4421,8 @@ declare const UserSchema: yup.ObjectSchema<{
3826
4421
  subscribed: boolean;
3827
4422
  };
3828
4423
  embedding: {
3829
- vector?: number[] | undefined;
3830
4424
  model?: string | undefined;
4425
+ vector?: number[] | undefined;
3831
4426
  } | null | undefined;
3832
4427
  createdAt: number | undefined;
3833
4428
  id: string | undefined;
@@ -5343,4 +5938,4 @@ declare const StudentCompletenessSchema: yup.ObjectSchema<{
5343
5938
  };
5344
5939
  }, "">;
5345
5940
 
5346
- export { AnswerChoiceType, ApplicationReceivePreference, BillingPeriod, BillingSubscriptionSchema, BillingTransactionSchema, CAMPAIGN_MAX_RECIPIENTS_CEILING, CONSUME_MAX_UNITS, CampaignDataSourceSchema, CampaignEndKind, CampaignIntervalUnit, CampaignSchema, CampaignStatus, CampaignStatusTransitions, CampaignTriggerKind, CampaignTriggerSchema, ChoiceQuestionSchema, type City, CityFilterSchema, CitySchema, Common, CompensationType, CompletenessScoreSchema, ContactTypes, CoordinatorPageLinkSchema, type Country, CountryFilterSchema, CountrySchema, type CountryTimezone, DISPLAY_DATE_FORMAT, DISPLAY_DATE_FORMAT_SHORT, DateStringSchema, DbDefaultSchema, DefaultPaginatedResponse, DefaultPaginationOptions, DefaultUserRoles, DurationSchema, EMPTY_STRING, EducationLevel, EducationSchema, EmployeeCount, EmploymentType, EntitlementConsumeSchema, EntitlementDenialReason, EntitlementDenialSchema, EntitlingSubscriptionStatuses, ExperienceLevel, FEEDBACK_MESSAGE_MAX, FeatureEntitlementSchema, FeatureKey, FeedbackFilterSchema, FeedbackSchema, FeedbackStatus, FeedbackType, GEO_COLLECTIONS, GEO_SEARCH_MAX, GRANT_MAX_LIMIT, GeneraDetailFields, GeoKind, type GeoSyncCounts, GeoSyncPhase, type GeoSyncRun, GeoSyncRunSchema, GeoSyncStatus, GeoSyncTrigger, type GeoTranslations, GrantType, GroupFilterSchema, GroupManagedBy, GroupMembershipSchema, GroupMembershipStatus, GroupSchema, GroupStatus, GroupTranslationSchema, GroupVisibility, InputQuestionSchema, JOB_TAXONOMY, JobAlertFrequency, JobCategory, JobFilterSchema, JobIndustry, JobSchema, JobSearchUrgency, JobStatus, JobSubCategory, LanguageFilterSchema, LiveSubscriptionStatuses, LocationSchema, MIN_SALARY_LOWER_BOUND, MIN_SALARY_UPPER_BOUND, MailingListFilterSchema, MailingListSchema, MoneySchema, NotificationType, OccurrenceStatus, PREFILL_MIRRORED_KEYS, PRIVATE_PROFILE_FIELDS, PaddleEnvironment, PaddlePriceIdsSchema, PageFilterSchema, PageSchema, PageStatus, PageType, type PaginatedResponse, PaginationSchema, PlanAudience, PlanGrantSchema, PlanKind, PlanSchema, PlanStatus, PostSchema, PostStatus, type PrefillMirroredKey, type PrivateProfileField, ProficiencyLevel, type PushSubscriptionRecord, PushSubscriptionSchema, QuestionSchema, QuestionType, QuotaPeriod, ReadAndAcknowledgeQuestionSchema, RecruiterPageLinkSchema, ReferralSource, ReportReason, ReportSchema, ResourceType, SITEMAP_FORMAT, SYSTEM_DATE_FORMAT, SavedSearchSchema, SavedSearchStatus, SignupContextSource, SkillFilterSchema, SkillSchema, SocialAccount, SocialAccountSchema, type State, StateFilterSchema, StateSchema, StudentCompletenessSchema, StudyType, SubscriptionStatus, SupportedAnswerChoiceTypes, SupportedApplicationReceivePreferences, SupportedBillingPeriods, SupportedCampaignEndKinds, SupportedCampaignIntervalUnits, SupportedCampaignStatuses, SupportedCampaignTriggerKinds, SupportedCompensationTypes, SupportedContactTypes, SupportedEducationLevels, SupportedEmployeeCounts, SupportedEmploymentTypes, SupportedEntitlementDenialReasons, SupportedExperienceLevels, SupportedFeatureKeys, SupportedFeedbackStatuses, SupportedFeedbackTypes, SupportedGeoKinds, SupportedGeoSyncPhases, SupportedGeoSyncStatuses, SupportedGeoSyncTriggers, SupportedGrantTypes, SupportedGroupManagedBy, SupportedGroupMembershipStatuses, SupportedGroupStatuses, SupportedGroupVisibilities, SupportedJobAlertFrequencies, SupportedJobCategories, SupportedJobIndustries, SupportedJobSearchUrgencies, SupportedJobStatuses, SupportedJobSubCategories, SupportedNotificationTypes, SupportedOccurrenceStatuses, SupportedPaddleEnvironments, SupportedPageStatuses, SupportedPageTypes, SupportedPlanAudiences, SupportedPlanKinds, SupportedPlanStatuses, SupportedPostStatuses, SupportedProficiencyLevels, SupportedQuestionTypes, SupportedQuotaPeriods, SupportedReferralSources, SupportedReportReasons, SupportedResourceTypes, SupportedSalaryCurrencies, type SupportedSalaryCurrency, SupportedSavedSearchStatuses, SupportedSignupContextSources, SupportedSocialAccounts, SupportedStudyTypes, SupportedSubscriptionStatuses, SupportedTemplateVariableBindingKinds, SupportedTransactionStatuses, SupportedUserProfileVisibilities, SupportedUserRoles, SupportedUserStatuses, SupportedWorkModes, TAXONOMY_LABELS, type TChoiceQuestionSchema, type TDurationSchema, type TInputQuestionSchema, type TJobSchema, type TPostSchema, type TQuestionSchema, type TReadAndAcknowledgeQuestionSchema, type TUserIdAndCreatedAtSchema, TemplateVariableBindingKind, TemplateVariableBindingSchema, TerminalCampaignStatuses, TerminalGeoSyncStatuses, TermsAcceptedSchema, TransactionStatus, type User, UserAdditionalInfoSchema, UserCertificationSchema, UserCompletenessSchema, UserCoordinatorProfileSchema, UserDetailType, UserFilterSchema, UserGeneralDetailSchema, UserIdAndCreatedAtSchema, UserInterestSchema, UserJobPreferencesSchema, UserLanguageSchema, type UserProfileOverview, UserProfileVisibility, UserProjectSchema, UserRecruiterProfileSchema, UserRole, UserSchema, UserSkillSchema, UserStatus, WorkExperienceSchema, WorkMode, canTransitionCampaign, categoryOfIndustry, categoryOfSubCategory, codeTokens, conjunction, currencyBound, dateString, days, deriveIndustry, enumFacet, epoch, getSchemaByQuestion, industriesOfCategory, industryOfSubCategory, months, percent, qualified, rejectUnknownKeys, subCategoriesOfIndustry, tokens };
5941
+ export { AnswerChoiceType, ApplicationReceivePreference, AuditFilterSchema, AuditSchema, type AuditStatus, BillingPeriod, BillingSubscriptionSchema, BillingTransactionSchema, CAMPAIGN_MAX_RECIPIENTS_CEILING, CONCEPT_ID_PATTERN, CONCEPT_TYPE_PATTERN, CONSUME_MAX_UNITS, CampaignDataSourceSchema, CampaignEndKind, CampaignIntervalUnit, CampaignSchema, CampaignStatus, CampaignStatusTransitions, CampaignTriggerKind, CampaignTriggerSchema, ChoiceQuestionSchema, type City, CityFilterSchema, CitySchema, Common, CompensationType, CompletenessScoreSchema, ConceptFilterSchema, ConceptMembershipSchema, ConceptProposalFilterSchema, ConceptProposalSchema, ConceptSchema, type ConceptSource, ContactTypes, CoordinatorPageLinkSchema, type Country, CountryFilterSchema, CountrySchema, type CountryTimezone, DISPLAY_DATE_FORMAT, DISPLAY_DATE_FORMAT_SHORT, DateStringSchema, DbDefaultSchema, DefaultPaginatedResponse, DefaultPaginationOptions, DefaultUserRoles, DurationSchema, EMPTY_STRING, EducationLevel, EducationSchema, EmployeeCount, EmploymentType, EntitlementConsumeSchema, EntitlementDenialReason, EntitlementDenialSchema, EntitlingSubscriptionStatuses, ExperienceLevel, FEEDBACK_MESSAGE_MAX, FeatureEntitlementSchema, FeatureKey, FeedbackFilterSchema, FeedbackSchema, FeedbackStatus, FeedbackType, GEO_COLLECTIONS, GEO_SEARCH_MAX, GRANT_MAX_LIMIT, GeneraDetailFields, GeoKind, type GeoSyncCounts, GeoSyncPhase, type GeoSyncRun, GeoSyncRunSchema, GeoSyncStatus, GeoSyncTrigger, type GeoTranslations, GrantType, GroupFilterSchema, GroupManagedBy, GroupMembershipSchema, GroupMembershipStatus, GroupSchema, GroupStatus, GroupTranslationSchema, GroupVisibility, InputQuestionSchema, JOB_TAXONOMY, JobAlertFrequency, JobCategory, JobFilterSchema, JobIndustry, JobSchema, JobSearchUrgency, JobStatus, JobSubCategory, LanguageFilterSchema, LiveSubscriptionStatuses, LocationSchema, MIN_SALARY_LOWER_BOUND, MIN_SALARY_UPPER_BOUND, MailingListFilterSchema, MailingListSchema, type MatchType, MoneySchema, NormalizeContextSchema, NotificationType, OccurrenceStatus, PREFILL_MIRRORED_KEYS, PRIVATE_PROFILE_FIELDS, PaddleEnvironment, PaddlePriceIdsSchema, PageFilterSchema, PageSchema, PageStatus, PageType, type PaginatedResponse, PaginationSchema, PlanAudience, PlanGrantSchema, PlanKind, PlanSchema, PlanStatus, PostSchema, PostStatus, type PrefillMirroredKey, type PrefilterRule, type PrivateProfileField, ProficiencyLevel, ProposalCandidateSchema, type ProposalFilter, type ProposalKind, type ProposalMessageRole, ProposalMessageSchema, type ProposalStatus, type PushSubscriptionRecord, PushSubscriptionSchema, QuestionSchema, QuestionType, QuotaPeriod, ReadAndAcknowledgeQuestionSchema, RecruiterPageLinkSchema, ReferralSource, ReleaseFilterSchema, type ReleaseKind, ReleaseSchema, type ReleaseStatus, ReportReason, ReportSchema, ResolverSettingsSchema, type ResolverVerdict, ResolverVerificationSchema, ResourceType, SCHEDULE_MAX_HOURS, SCHEDULE_MIN_HOURS, SITEMAP_FORMAT, SYSTEM_DATE_FORMAT, SavedSearchSchema, SavedSearchStatus, SignupContextSource, SkillFilterSchema, SkillSchema, SocialAccount, SocialAccountSchema, type State, StateFilterSchema, StateSchema, StudentCompletenessSchema, StudyType, SubscriptionStatus, SuggestedHomeSchema, SupportedAnswerChoiceTypes, SupportedApplicationReceivePreferences, SupportedAuditStatuses, SupportedBillingPeriods, SupportedCampaignEndKinds, SupportedCampaignIntervalUnits, SupportedCampaignStatuses, SupportedCampaignTriggerKinds, SupportedCompensationTypes, SupportedConceptSources, SupportedContactTypes, SupportedEducationLevels, SupportedEmployeeCounts, SupportedEmploymentTypes, SupportedEntitlementDenialReasons, SupportedExperienceLevels, SupportedFeatureKeys, SupportedFeedbackStatuses, SupportedFeedbackTypes, SupportedGeoKinds, SupportedGeoSyncPhases, SupportedGeoSyncStatuses, SupportedGeoSyncTriggers, SupportedGrantTypes, SupportedGroupManagedBy, SupportedGroupMembershipStatuses, SupportedGroupStatuses, SupportedGroupVisibilities, SupportedJobAlertFrequencies, SupportedJobCategories, SupportedJobIndustries, SupportedJobSearchUrgencies, SupportedJobStatuses, SupportedJobSubCategories, SupportedMatchTypes, SupportedNotificationTypes, SupportedOccurrenceStatuses, SupportedPaddleEnvironments, SupportedPageStatuses, SupportedPageTypes, SupportedPlanAudiences, SupportedPlanKinds, SupportedPlanStatuses, SupportedPostStatuses, SupportedPrefilterRules, SupportedProficiencyLevels, SupportedProposalFilters, SupportedProposalKinds, SupportedProposalMessageRoles, SupportedProposalStatuses, SupportedQuestionTypes, SupportedQuotaPeriods, SupportedReferralSources, SupportedReleaseKinds, SupportedReleaseStatuses, SupportedReportReasons, SupportedResolverVerdicts, SupportedResourceTypes, SupportedSalaryCurrencies, type SupportedSalaryCurrency, SupportedSavedSearchStatuses, SupportedSignupContextSources, SupportedSocialAccounts, SupportedStudyTypes, SupportedSubscriptionStatuses, SupportedTaxonomyJobKinds, SupportedTaxonomyJobStates, SupportedTaxonomyNodeKinds, SupportedTaxonomySources, SupportedTemplateVariableBindingKinds, SupportedTransactionStatuses, SupportedUnmatchedReasons, SupportedUnmatchedResolutions, SupportedUserProfileVisibilities, SupportedUserRoles, SupportedUserStatuses, SupportedWorkModes, TAXONOMY_LABELS, TAXONOMY_NODE_ID_PATTERN, type TChoiceQuestionSchema, type TDurationSchema, type TInputQuestionSchema, type TJobSchema, type TPostSchema, type TQuestionSchema, type TReadAndAcknowledgeQuestionSchema, type TUserIdAndCreatedAtSchema, type TaxonomyJobKind, type TaxonomyJobState, TaxonomyNodeFilterSchema, type TaxonomyNodeKind, TaxonomyNodeSchema, TaxonomyScheduleSchema, type TaxonomySource, TemplateVariableBindingKind, TemplateVariableBindingSchema, TerminalCampaignStatuses, TerminalGeoSyncStatuses, TermsAcceptedSchema, TransactionStatus, UnmatchedFilterSchema, type UnmatchedReason, type UnmatchedResolution, UnmatchedTermSchema, type User, UserAdditionalInfoSchema, UserCertificationSchema, UserCompletenessSchema, UserCoordinatorProfileSchema, UserDetailType, UserFilterSchema, UserGeneralDetailSchema, UserIdAndCreatedAtSchema, UserInterestSchema, UserJobPreferencesSchema, UserLanguageSchema, type UserProfileOverview, UserProfileVisibility, UserProjectSchema, UserRecruiterProfileSchema, UserRole, UserSchema, UserSkillSchema, UserStatus, VOCABULARY_ID_PATTERN, VocabularySchema, VocabularyTypeSchema, WorkExperienceSchema, WorkMode, canTransitionCampaign, categoryOfIndustry, categoryOfSubCategory, codeTokens, conjunction, currencyBound, dateString, days, deriveIndustry, enumFacet, epoch, getSchemaByQuestion, industriesOfCategory, industryOfSubCategory, months, percent, qualified, rejectUnknownKeys, subCategoriesOfIndustry, tokens };