@memberjunction/core-entities 5.30.1 → 5.31.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 (56) hide show
  1. package/dist/custom/MJDashboardEntityExtended.d.ts.map +1 -1
  2. package/dist/custom/MJDashboardEntityExtended.js +2 -2
  3. package/dist/custom/MJDashboardEntityExtended.js.map +1 -1
  4. package/dist/custom/MJListDetailEntityExtended.d.ts.map +1 -1
  5. package/dist/custom/MJListDetailEntityExtended.js +3 -3
  6. package/dist/custom/MJListDetailEntityExtended.js.map +1 -1
  7. package/dist/custom/MJUserViewEntityExtended.js +8 -8
  8. package/dist/custom/MJUserViewEntityExtended.js.map +1 -1
  9. package/dist/custom/PermissionProviders/AccessControlRuleProvider.d.ts +6 -6
  10. package/dist/custom/PermissionProviders/AccessControlRuleProvider.d.ts.map +1 -1
  11. package/dist/custom/PermissionProviders/AccessControlRuleProvider.js +16 -15
  12. package/dist/custom/PermissionProviders/AccessControlRuleProvider.js.map +1 -1
  13. package/dist/custom/PermissionProviders/ApplicationRolePermissionProvider.d.ts +5 -5
  14. package/dist/custom/PermissionProviders/ApplicationRolePermissionProvider.d.ts.map +1 -1
  15. package/dist/custom/PermissionProviders/ApplicationRolePermissionProvider.js +7 -7
  16. package/dist/custom/PermissionProviders/ApplicationRolePermissionProvider.js.map +1 -1
  17. package/dist/custom/PermissionProviders/EntityPermissionProvider.d.ts +6 -6
  18. package/dist/custom/PermissionProviders/EntityPermissionProvider.d.ts.map +1 -1
  19. package/dist/custom/PermissionProviders/EntityPermissionProvider.js +11 -10
  20. package/dist/custom/PermissionProviders/EntityPermissionProvider.js.map +1 -1
  21. package/dist/custom/PermissionProviders/QueryPermissionProvider.d.ts +2 -2
  22. package/dist/custom/PermissionProviders/QueryPermissionProvider.d.ts.map +1 -1
  23. package/dist/custom/PermissionProviders/QueryPermissionProvider.js +2 -2
  24. package/dist/custom/PermissionProviders/QueryPermissionProvider.js.map +1 -1
  25. package/dist/custom/PermissionProviders/ResourcePermissionProvider.d.ts +17 -5
  26. package/dist/custom/PermissionProviders/ResourcePermissionProvider.d.ts.map +1 -1
  27. package/dist/custom/PermissionProviders/ResourcePermissionProvider.js +43 -5
  28. package/dist/custom/PermissionProviders/ResourcePermissionProvider.js.map +1 -1
  29. package/dist/custom/Permissions/MJAccessControlRuleEntityExtended.d.ts.map +1 -1
  30. package/dist/custom/Permissions/MJAccessControlRuleEntityExtended.js +3 -3
  31. package/dist/custom/Permissions/MJAccessControlRuleEntityExtended.js.map +1 -1
  32. package/dist/custom/ResourcePermissions/ResourcePermissionEngine.d.ts.map +1 -1
  33. package/dist/custom/ResourcePermissions/ResourcePermissionEngine.js +2 -2
  34. package/dist/custom/ResourcePermissions/ResourcePermissionEngine.js.map +1 -1
  35. package/dist/engines/GeoDataEngine.d.ts.map +1 -1
  36. package/dist/engines/GeoDataEngine.js +2 -2
  37. package/dist/engines/GeoDataEngine.js.map +1 -1
  38. package/dist/engines/PermissionEngine.d.ts +1 -1
  39. package/dist/engines/PermissionEngine.d.ts.map +1 -1
  40. package/dist/engines/PermissionEngine.js +2 -2
  41. package/dist/engines/PermissionEngine.js.map +1 -1
  42. package/dist/engines/UserInfoEngine.d.ts.map +1 -1
  43. package/dist/engines/UserInfoEngine.js +10 -10
  44. package/dist/engines/UserInfoEngine.js.map +1 -1
  45. package/dist/engines/UserViewEngine.d.ts.map +1 -1
  46. package/dist/engines/UserViewEngine.js +4 -4
  47. package/dist/engines/UserViewEngine.js.map +1 -1
  48. package/dist/engines/conversations.d.ts.map +1 -1
  49. package/dist/engines/conversations.js +11 -11
  50. package/dist/engines/conversations.js.map +1 -1
  51. package/dist/generated/entity_subclasses.d.ts +653 -5
  52. package/dist/generated/entity_subclasses.d.ts.map +1 -1
  53. package/dist/generated/entity_subclasses.js +937 -36
  54. package/dist/generated/entity_subclasses.js.map +1 -1
  55. package/package.json +5 -5
  56. package/readme.md +14 -0
@@ -13556,6 +13556,141 @@ export declare const MJTagCoOccurrenceSchema: z.ZodObject<{
13556
13556
  TagB?: string;
13557
13557
  }>;
13558
13558
  export type MJTagCoOccurrenceEntityType = z.infer<typeof MJTagCoOccurrenceSchema>;
13559
+ /**
13560
+ * zod schema definition for the entity MJ: Tag Scopes
13561
+ */
13562
+ export declare const MJTagScopeSchema: z.ZodObject<{
13563
+ ID: z.ZodString;
13564
+ TagID: z.ZodString;
13565
+ ScopeEntityID: z.ZodString;
13566
+ ScopeRecordID: z.ZodString;
13567
+ __mj_CreatedAt: z.ZodDate;
13568
+ __mj_UpdatedAt: z.ZodDate;
13569
+ Tag: z.ZodString;
13570
+ ScopeEntity: z.ZodString;
13571
+ }, "strip", z.ZodTypeAny, {
13572
+ ID?: string;
13573
+ __mj_CreatedAt?: Date;
13574
+ __mj_UpdatedAt?: Date;
13575
+ Tag?: string;
13576
+ TagID?: string;
13577
+ ScopeEntityID?: string;
13578
+ ScopeRecordID?: string;
13579
+ ScopeEntity?: string;
13580
+ }, {
13581
+ ID?: string;
13582
+ __mj_CreatedAt?: Date;
13583
+ __mj_UpdatedAt?: Date;
13584
+ Tag?: string;
13585
+ TagID?: string;
13586
+ ScopeEntityID?: string;
13587
+ ScopeRecordID?: string;
13588
+ ScopeEntity?: string;
13589
+ }>;
13590
+ export type MJTagScopeEntityType = z.infer<typeof MJTagScopeSchema>;
13591
+ /**
13592
+ * zod schema definition for the entity MJ: Tag Suggestions
13593
+ */
13594
+ export declare const MJTagSuggestionSchema: z.ZodObject<{
13595
+ ID: z.ZodString;
13596
+ ProposedName: z.ZodString;
13597
+ ProposedParentID: z.ZodNullable<z.ZodString>;
13598
+ BestMatchTagID: z.ZodNullable<z.ZodString>;
13599
+ BestMatchScore: z.ZodNullable<z.ZodNumber>;
13600
+ Reason: z.ZodString;
13601
+ SourceContentItemID: z.ZodNullable<z.ZodString>;
13602
+ SourceContentSourceID: z.ZodNullable<z.ZodString>;
13603
+ SourceText: z.ZodNullable<z.ZodString>;
13604
+ Status: z.ZodUnion<[z.ZodLiteral<"Approved">, z.ZodLiteral<"Merged">, z.ZodLiteral<"Pending">, z.ZodLiteral<"Rejected">]>;
13605
+ ResolvedTagID: z.ZodNullable<z.ZodString>;
13606
+ ReviewedByUserID: z.ZodNullable<z.ZodString>;
13607
+ ReviewedAt: z.ZodNullable<z.ZodDate>;
13608
+ ReviewerNotes: z.ZodNullable<z.ZodString>;
13609
+ __mj_CreatedAt: z.ZodDate;
13610
+ __mj_UpdatedAt: z.ZodDate;
13611
+ ProposedParent: z.ZodNullable<z.ZodString>;
13612
+ BestMatchTag: z.ZodNullable<z.ZodString>;
13613
+ SourceContentItem: z.ZodNullable<z.ZodString>;
13614
+ SourceContentSource: z.ZodNullable<z.ZodString>;
13615
+ ResolvedTag: z.ZodNullable<z.ZodString>;
13616
+ ReviewedByUser: z.ZodNullable<z.ZodString>;
13617
+ }, "strip", z.ZodTypeAny, {
13618
+ ID?: string;
13619
+ __mj_CreatedAt?: Date;
13620
+ __mj_UpdatedAt?: Date;
13621
+ Status?: "Pending" | "Approved" | "Rejected" | "Merged";
13622
+ ProposedName?: string;
13623
+ ProposedParentID?: string;
13624
+ BestMatchTagID?: string;
13625
+ BestMatchScore?: number;
13626
+ Reason?: string;
13627
+ SourceContentItemID?: string;
13628
+ SourceContentSourceID?: string;
13629
+ SourceText?: string;
13630
+ ResolvedTagID?: string;
13631
+ ReviewedByUserID?: string;
13632
+ ReviewedAt?: Date;
13633
+ ReviewerNotes?: string;
13634
+ ProposedParent?: string;
13635
+ BestMatchTag?: string;
13636
+ SourceContentItem?: string;
13637
+ SourceContentSource?: string;
13638
+ ResolvedTag?: string;
13639
+ ReviewedByUser?: string;
13640
+ }, {
13641
+ ID?: string;
13642
+ __mj_CreatedAt?: Date;
13643
+ __mj_UpdatedAt?: Date;
13644
+ Status?: "Pending" | "Approved" | "Rejected" | "Merged";
13645
+ ProposedName?: string;
13646
+ ProposedParentID?: string;
13647
+ BestMatchTagID?: string;
13648
+ BestMatchScore?: number;
13649
+ Reason?: string;
13650
+ SourceContentItemID?: string;
13651
+ SourceContentSourceID?: string;
13652
+ SourceText?: string;
13653
+ ResolvedTagID?: string;
13654
+ ReviewedByUserID?: string;
13655
+ ReviewedAt?: Date;
13656
+ ReviewerNotes?: string;
13657
+ ProposedParent?: string;
13658
+ BestMatchTag?: string;
13659
+ SourceContentItem?: string;
13660
+ SourceContentSource?: string;
13661
+ ResolvedTag?: string;
13662
+ ReviewedByUser?: string;
13663
+ }>;
13664
+ export type MJTagSuggestionEntityType = z.infer<typeof MJTagSuggestionSchema>;
13665
+ /**
13666
+ * zod schema definition for the entity MJ: Tag Synonyms
13667
+ */
13668
+ export declare const MJTagSynonymSchema: z.ZodObject<{
13669
+ ID: z.ZodString;
13670
+ TagID: z.ZodString;
13671
+ Synonym: z.ZodString;
13672
+ Source: z.ZodUnion<[z.ZodLiteral<"Imported">, z.ZodLiteral<"LLM">, z.ZodLiteral<"Manual">, z.ZodLiteral<"Merged">]>;
13673
+ __mj_CreatedAt: z.ZodDate;
13674
+ __mj_UpdatedAt: z.ZodDate;
13675
+ Tag: z.ZodString;
13676
+ }, "strip", z.ZodTypeAny, {
13677
+ ID?: string;
13678
+ __mj_CreatedAt?: Date;
13679
+ __mj_UpdatedAt?: Date;
13680
+ Tag?: string;
13681
+ TagID?: string;
13682
+ Source?: "Manual" | "Merged" | "Imported" | "LLM";
13683
+ Synonym?: string;
13684
+ }, {
13685
+ ID?: string;
13686
+ __mj_CreatedAt?: Date;
13687
+ __mj_UpdatedAt?: Date;
13688
+ Tag?: string;
13689
+ TagID?: string;
13690
+ Source?: "Manual" | "Merged" | "Imported" | "LLM";
13691
+ Synonym?: string;
13692
+ }>;
13693
+ export type MJTagSynonymEntityType = z.infer<typeof MJTagSynonymSchema>;
13559
13694
  /**
13560
13695
  * zod schema definition for the entity MJ: Tagged Items
13561
13696
  */
@@ -13604,8 +13739,18 @@ export declare const MJTagSchema: z.ZodObject<{
13604
13739
  __mj_UpdatedAt: z.ZodDate;
13605
13740
  Status: z.ZodUnion<[z.ZodLiteral<"Active">, z.ZodLiteral<"Deleted">, z.ZodLiteral<"Deprecated">, z.ZodLiteral<"Merged">]>;
13606
13741
  MergedIntoTagID: z.ZodNullable<z.ZodString>;
13742
+ IsGlobal: z.ZodBoolean;
13743
+ AllowAutoGrow: z.ZodBoolean;
13744
+ IsFrozen: z.ZodBoolean;
13745
+ MaxChildren: z.ZodNullable<z.ZodNumber>;
13746
+ MaxDescendantDepth: z.ZodNullable<z.ZodNumber>;
13747
+ MinWeight: z.ZodNullable<z.ZodNumber>;
13748
+ RequiresReview: z.ZodBoolean;
13749
+ EmbeddingVector: z.ZodNullable<z.ZodString>;
13750
+ EmbeddingModelID: z.ZodNullable<z.ZodString>;
13607
13751
  Parent: z.ZodNullable<z.ZodString>;
13608
13752
  MergedIntoTag: z.ZodNullable<z.ZodString>;
13753
+ EmbeddingModel: z.ZodNullable<z.ZodString>;
13609
13754
  RootParentID: z.ZodNullable<z.ZodString>;
13610
13755
  RootMergedIntoTagID: z.ZodNullable<z.ZodString>;
13611
13756
  }, "strip", z.ZodTypeAny, {
@@ -13619,7 +13764,17 @@ export declare const MJTagSchema: z.ZodObject<{
13619
13764
  Parent?: string;
13620
13765
  RootParentID?: string;
13621
13766
  DisplayName?: string;
13767
+ EmbeddingVector?: string;
13768
+ EmbeddingModelID?: string;
13769
+ EmbeddingModel?: string;
13622
13770
  MergedIntoTagID?: string;
13771
+ IsGlobal?: boolean;
13772
+ AllowAutoGrow?: boolean;
13773
+ IsFrozen?: boolean;
13774
+ MaxChildren?: number;
13775
+ MaxDescendantDepth?: number;
13776
+ MinWeight?: number;
13777
+ RequiresReview?: boolean;
13623
13778
  MergedIntoTag?: string;
13624
13779
  RootMergedIntoTagID?: string;
13625
13780
  }, {
@@ -13633,7 +13788,17 @@ export declare const MJTagSchema: z.ZodObject<{
13633
13788
  Parent?: string;
13634
13789
  RootParentID?: string;
13635
13790
  DisplayName?: string;
13791
+ EmbeddingVector?: string;
13792
+ EmbeddingModelID?: string;
13793
+ EmbeddingModel?: string;
13636
13794
  MergedIntoTagID?: string;
13795
+ IsGlobal?: boolean;
13796
+ AllowAutoGrow?: boolean;
13797
+ IsFrozen?: boolean;
13798
+ MaxChildren?: number;
13799
+ MaxDescendantDepth?: number;
13800
+ MinWeight?: number;
13801
+ RequiresReview?: boolean;
13637
13802
  MergedIntoTag?: string;
13638
13803
  RootMergedIntoTagID?: string;
13639
13804
  }>;
@@ -14055,10 +14220,10 @@ export declare const MJTestRunFeedbackSchema: z.ZodObject<{
14055
14220
  TestRunID?: string;
14056
14221
  TestRun?: string;
14057
14222
  Rating?: number;
14223
+ ReviewedAt?: Date;
14058
14224
  ReviewerUserID?: string;
14059
14225
  IsCorrect?: boolean;
14060
14226
  CorrectionSummary?: string;
14061
- ReviewedAt?: Date;
14062
14227
  ReviewerUser?: string;
14063
14228
  }, {
14064
14229
  ID?: string;
@@ -14068,10 +14233,10 @@ export declare const MJTestRunFeedbackSchema: z.ZodObject<{
14068
14233
  TestRunID?: string;
14069
14234
  TestRun?: string;
14070
14235
  Rating?: number;
14236
+ ReviewedAt?: Date;
14071
14237
  ReviewerUserID?: string;
14072
14238
  IsCorrect?: boolean;
14073
14239
  CorrectionSummary?: string;
14074
- ReviewedAt?: Date;
14075
14240
  ReviewerUser?: string;
14076
14241
  }>;
14077
14242
  export type MJTestRunFeedbackEntityType = z.infer<typeof MJTestRunFeedbackSchema>;
@@ -34574,6 +34739,36 @@ export interface MJContentSourceEntity_IContentSourceConfiguration {
34574
34739
  ShareTaxonomyWithLLM?: boolean;
34575
34740
  /** Enable vectorization for this source. Default true */
34576
34741
  EnableVectorization?: boolean;
34742
+ /**
34743
+ * Lower confidence band (0.0-1.0) that routes a semantic match into the human-in-the-loop
34744
+ * `MJ:Tag Suggestions` queue instead of auto-applying or auto-creating. A score `s` is
34745
+ * routed as: `s >= TagMatchThreshold` → apply; `SuggestThreshold <= s < TagMatchThreshold`
34746
+ * → enqueue suggestion (Reason='BelowThreshold'); `s < SuggestThreshold` → fall through to
34747
+ * `handleNoMatch` (governed by `TagTaxonomyMode`). When unset, defaults to
34748
+ * `TagMatchThreshold - 0.05` at runtime.
34749
+ */
34750
+ SuggestThreshold?: number;
34751
+ /**
34752
+ * Maximum number of new tags the autotagger may auto-create across an entire run before
34753
+ * the run is paused via the existing CancellationRequested machinery. NULL/unset = unlimited.
34754
+ * Pause is graceful — the run resumes from `LastProcessedOffset` when restarted.
34755
+ */
34756
+ MaxNewTagsPerRun?: number;
34757
+ /**
34758
+ * Maximum number of new tags the autotagger may auto-create for a single ContentItem.
34759
+ * Once reached, further free-text tags from that item are routed to `MJ:Tag Suggestions`
34760
+ * with Reason='MaxItemTagsExceeded' instead of being created. NULL/unset = unlimited.
34761
+ */
34762
+ MaxNewTagsPerItem?: number;
34763
+ /**
34764
+ * Maximum cumulative LLM tokens (prompt + completion) the run may consume before pausing.
34765
+ * Reads from `ContentProcessRunDetail.TotalTokensUsed` rollup. NULL/unset = unlimited.
34766
+ */
34767
+ MaxTokensPerRun?: number;
34768
+ /**
34769
+ * Maximum cumulative cost (USD) the run may incur before pausing. NULL/unset = unlimited.
34770
+ */
34771
+ MaxCostPerRun?: number;
34577
34772
  /**
34578
34773
  * Source-type-specific configuration values. The keys here correspond to the
34579
34774
  * RequiredFields[].Key values defined on the parent ContentSourceType's Configuration.
@@ -54449,6 +54644,376 @@ export declare class MJTagCoOccurrenceEntity extends BaseEntity<MJTagCoOccurrenc
54449
54644
  */
54450
54645
  get TagB(): string;
54451
54646
  }
54647
+ /**
54648
+ * MJ: Tag Scopes - strongly typed entity sub-class
54649
+ * * Schema: __mj
54650
+ * * Base Table: TagScope
54651
+ * * Base View: vwTagScopes
54652
+ * * @description Polymorphic junction binding a Tag to one or more (Entity, Record) scope rows. A Tag with one or more TagScope rows is only visible inside those scopes; a Tag with no rows AND IsGlobal=1 is visible everywhere. Mirrors the shape of TaggedItem.
54653
+ * * Primary Key: ID
54654
+ * @extends {BaseEntity}
54655
+ * @class
54656
+ * @public
54657
+ */
54658
+ export declare class MJTagScopeEntity extends BaseEntity<MJTagScopeEntityType> {
54659
+ /**
54660
+ * Loads the MJ: Tag Scopes record from the database
54661
+ * @param ID: string - primary key value to load the MJ: Tag Scopes record.
54662
+ * @param EntityRelationshipsToLoad - (optional) the relationships to load
54663
+ * @returns {Promise<boolean>} - true if successful, false otherwise
54664
+ * @public
54665
+ * @async
54666
+ * @memberof MJTagScopeEntity
54667
+ * @method
54668
+ * @override
54669
+ */
54670
+ Load(ID: string, EntityRelationshipsToLoad?: string[]): Promise<boolean>;
54671
+ /**
54672
+ * * Field Name: ID
54673
+ * * Display Name: ID
54674
+ * * SQL Data Type: uniqueidentifier
54675
+ * * Default Value: newsequentialid()
54676
+ */
54677
+ get ID(): string;
54678
+ set ID(value: string);
54679
+ /**
54680
+ * * Field Name: TagID
54681
+ * * Display Name: Tag ID
54682
+ * * SQL Data Type: uniqueidentifier
54683
+ * * Related Entity/Foreign Key: MJ: Tags (vwTags.ID)
54684
+ * * Description: The Tag whose visibility this row constrains.
54685
+ */
54686
+ get TagID(): string;
54687
+ set TagID(value: string);
54688
+ /**
54689
+ * * Field Name: ScopeEntityID
54690
+ * * Display Name: Scope Entity ID
54691
+ * * SQL Data Type: uniqueidentifier
54692
+ * * Related Entity/Foreign Key: MJ: Entities (vwEntities.ID)
54693
+ * * Description: Entity that the scope record belongs to (e.g., Companies, AI Agents). Combined with ScopeRecordID identifies the specific tenant or context that may see the tag.
54694
+ */
54695
+ get ScopeEntityID(): string;
54696
+ set ScopeEntityID(value: string);
54697
+ /**
54698
+ * * Field Name: ScopeRecordID
54699
+ * * Display Name: Scope Record ID
54700
+ * * SQL Data Type: nvarchar(450)
54701
+ * * Description: Primary key value of the scope record. Stored as NVARCHAR(450) to match the polymorphic RecordID convention used by TaggedItem.
54702
+ */
54703
+ get ScopeRecordID(): string;
54704
+ set ScopeRecordID(value: string);
54705
+ /**
54706
+ * * Field Name: __mj_CreatedAt
54707
+ * * Display Name: Created At
54708
+ * * SQL Data Type: datetimeoffset
54709
+ * * Default Value: getutcdate()
54710
+ */
54711
+ get __mj_CreatedAt(): Date;
54712
+ /**
54713
+ * * Field Name: __mj_UpdatedAt
54714
+ * * Display Name: Updated At
54715
+ * * SQL Data Type: datetimeoffset
54716
+ * * Default Value: getutcdate()
54717
+ */
54718
+ get __mj_UpdatedAt(): Date;
54719
+ /**
54720
+ * * Field Name: Tag
54721
+ * * Display Name: Tag
54722
+ * * SQL Data Type: nvarchar(255)
54723
+ */
54724
+ get Tag(): string;
54725
+ /**
54726
+ * * Field Name: ScopeEntity
54727
+ * * Display Name: Scope Entity
54728
+ * * SQL Data Type: nvarchar(255)
54729
+ */
54730
+ get ScopeEntity(): string;
54731
+ }
54732
+ /**
54733
+ * MJ: Tag Suggestions - strongly typed entity sub-class
54734
+ * * Schema: __mj
54735
+ * * Base Table: TagSuggestion
54736
+ * * Base View: vwTagSuggestions
54737
+ * * @description Human-in-the-loop review queue for tag changes the autotagger could not commit autonomously: ambiguous matches, governance-blocked auto-grows, low-usage deprecation candidates, and merge candidates from co-occurrence analysis.
54738
+ * * Primary Key: ID
54739
+ * @extends {BaseEntity}
54740
+ * @class
54741
+ * @public
54742
+ */
54743
+ export declare class MJTagSuggestionEntity extends BaseEntity<MJTagSuggestionEntityType> {
54744
+ /**
54745
+ * Loads the MJ: Tag Suggestions record from the database
54746
+ * @param ID: string - primary key value to load the MJ: Tag Suggestions record.
54747
+ * @param EntityRelationshipsToLoad - (optional) the relationships to load
54748
+ * @returns {Promise<boolean>} - true if successful, false otherwise
54749
+ * @public
54750
+ * @async
54751
+ * @memberof MJTagSuggestionEntity
54752
+ * @method
54753
+ * @override
54754
+ */
54755
+ Load(ID: string, EntityRelationshipsToLoad?: string[]): Promise<boolean>;
54756
+ /**
54757
+ * * Field Name: ID
54758
+ * * Display Name: ID
54759
+ * * SQL Data Type: uniqueidentifier
54760
+ * * Default Value: newsequentialid()
54761
+ */
54762
+ get ID(): string;
54763
+ set ID(value: string);
54764
+ /**
54765
+ * * Field Name: ProposedName
54766
+ * * Display Name: Proposed Name
54767
+ * * SQL Data Type: nvarchar(255)
54768
+ * * Description: The proposed tag name as seen by the classifier or analyzer.
54769
+ */
54770
+ get ProposedName(): string;
54771
+ set ProposedName(value: string);
54772
+ /**
54773
+ * * Field Name: ProposedParentID
54774
+ * * Display Name: Proposed Parent
54775
+ * * SQL Data Type: uniqueidentifier
54776
+ * * Related Entity/Foreign Key: MJ: Tags (vwTags.ID)
54777
+ * * Description: Tag under which the suggestion would be created if approved as a new tag. NULL = root.
54778
+ */
54779
+ get ProposedParentID(): string | null;
54780
+ set ProposedParentID(value: string | null);
54781
+ /**
54782
+ * * Field Name: BestMatchTagID
54783
+ * * Display Name: Best Match Tag
54784
+ * * SQL Data Type: uniqueidentifier
54785
+ * * Related Entity/Foreign Key: MJ: Tags (vwTags.ID)
54786
+ * * Description: When non-null, the existing Tag the system believes is the closest match. The reviewer may accept this as a merge target instead of creating a new tag.
54787
+ */
54788
+ get BestMatchTagID(): string | null;
54789
+ set BestMatchTagID(value: string | null);
54790
+ /**
54791
+ * * Field Name: BestMatchScore
54792
+ * * Display Name: Best Match Score
54793
+ * * SQL Data Type: decimal(4, 3)
54794
+ * * Description: Cosine similarity score (0.000-1.000) between the proposed name embedding and BestMatchTagID's embedding, when applicable.
54795
+ */
54796
+ get BestMatchScore(): number | null;
54797
+ set BestMatchScore(value: number | null);
54798
+ /**
54799
+ * * Field Name: Reason
54800
+ * * Display Name: Reason
54801
+ * * SQL Data Type: nvarchar(50)
54802
+ * * Description: Why this suggestion was created. Free-form NVARCHAR for forward compatibility; conventional values include ConstrainedMode, BelowThreshold, ParentFrozen, AutoGrowDisabled, MaxChildrenExceeded, MaxDepthExceeded, BelowMinWeight, RequiresReview, MergeCandidate, LowUsage, WideNode.
54803
+ */
54804
+ get Reason(): string;
54805
+ set Reason(value: string);
54806
+ /**
54807
+ * * Field Name: SourceContentItemID
54808
+ * * Display Name: Source Content Item
54809
+ * * SQL Data Type: uniqueidentifier
54810
+ * * Related Entity/Foreign Key: MJ: Content Items (vwContentItems.ID)
54811
+ * * Description: ContentItem that triggered this suggestion, when item-level. NULL for taxonomy-level suggestions (merge candidates, low-usage alerts).
54812
+ */
54813
+ get SourceContentItemID(): string | null;
54814
+ set SourceContentItemID(value: string | null);
54815
+ /**
54816
+ * * Field Name: SourceContentSourceID
54817
+ * * Display Name: Source Content Source
54818
+ * * SQL Data Type: uniqueidentifier
54819
+ * * Related Entity/Foreign Key: MJ: Content Sources (vwContentSources.ID)
54820
+ * * Description: ContentSource that triggered this suggestion, when source-attributable.
54821
+ */
54822
+ get SourceContentSourceID(): string | null;
54823
+ set SourceContentSourceID(value: string | null);
54824
+ /**
54825
+ * * Field Name: SourceText
54826
+ * * Display Name: Source Text
54827
+ * * SQL Data Type: nvarchar(MAX)
54828
+ * * Description: Optional snippet of source text that prompted the suggestion. Useful for reviewer context.
54829
+ */
54830
+ get SourceText(): string | null;
54831
+ set SourceText(value: string | null);
54832
+ /**
54833
+ * * Field Name: Status
54834
+ * * Display Name: Status
54835
+ * * SQL Data Type: nvarchar(20)
54836
+ * * Default Value: Pending
54837
+ * * Value List Type: List
54838
+ * * Possible Values
54839
+ * * Approved
54840
+ * * Merged
54841
+ * * Pending
54842
+ * * Rejected
54843
+ * * Description: Pending = awaiting review; Approved = accepted as a new tag; Merged = accepted as a merge into BestMatchTagID; Rejected = dismissed.
54844
+ */
54845
+ get Status(): 'Approved' | 'Merged' | 'Pending' | 'Rejected';
54846
+ set Status(value: 'Approved' | 'Merged' | 'Pending' | 'Rejected');
54847
+ /**
54848
+ * * Field Name: ResolvedTagID
54849
+ * * Display Name: Resolved Tag
54850
+ * * SQL Data Type: uniqueidentifier
54851
+ * * Related Entity/Foreign Key: MJ: Tags (vwTags.ID)
54852
+ * * Description: When Approved or Merged, points to the resulting Tag (the new tag for Approved, the merge target for Merged).
54853
+ */
54854
+ get ResolvedTagID(): string | null;
54855
+ set ResolvedTagID(value: string | null);
54856
+ /**
54857
+ * * Field Name: ReviewedByUserID
54858
+ * * Display Name: Reviewed By User
54859
+ * * SQL Data Type: uniqueidentifier
54860
+ * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)
54861
+ * * Description: User who took action on this suggestion.
54862
+ */
54863
+ get ReviewedByUserID(): string | null;
54864
+ set ReviewedByUserID(value: string | null);
54865
+ /**
54866
+ * * Field Name: ReviewedAt
54867
+ * * Display Name: Reviewed At
54868
+ * * SQL Data Type: datetimeoffset
54869
+ * * Description: Timestamp of the review action.
54870
+ */
54871
+ get ReviewedAt(): Date | null;
54872
+ set ReviewedAt(value: Date | null);
54873
+ /**
54874
+ * * Field Name: ReviewerNotes
54875
+ * * Display Name: Reviewer Notes
54876
+ * * SQL Data Type: nvarchar(MAX)
54877
+ * * Description: Free-form notes captured at review time. Useful for rejection rationale or merge decisions.
54878
+ */
54879
+ get ReviewerNotes(): string | null;
54880
+ set ReviewerNotes(value: string | null);
54881
+ /**
54882
+ * * Field Name: __mj_CreatedAt
54883
+ * * Display Name: Created At
54884
+ * * SQL Data Type: datetimeoffset
54885
+ * * Default Value: getutcdate()
54886
+ */
54887
+ get __mj_CreatedAt(): Date;
54888
+ /**
54889
+ * * Field Name: __mj_UpdatedAt
54890
+ * * Display Name: Updated At
54891
+ * * SQL Data Type: datetimeoffset
54892
+ * * Default Value: getutcdate()
54893
+ */
54894
+ get __mj_UpdatedAt(): Date;
54895
+ /**
54896
+ * * Field Name: ProposedParent
54897
+ * * Display Name: Proposed Parent Name
54898
+ * * SQL Data Type: nvarchar(255)
54899
+ */
54900
+ get ProposedParent(): string | null;
54901
+ /**
54902
+ * * Field Name: BestMatchTag
54903
+ * * Display Name: Best Match Name
54904
+ * * SQL Data Type: nvarchar(255)
54905
+ */
54906
+ get BestMatchTag(): string | null;
54907
+ /**
54908
+ * * Field Name: SourceContentItem
54909
+ * * Display Name: Source Content Item Name
54910
+ * * SQL Data Type: nvarchar(250)
54911
+ */
54912
+ get SourceContentItem(): string | null;
54913
+ /**
54914
+ * * Field Name: SourceContentSource
54915
+ * * Display Name: Source Content Source Name
54916
+ * * SQL Data Type: nvarchar(255)
54917
+ */
54918
+ get SourceContentSource(): string | null;
54919
+ /**
54920
+ * * Field Name: ResolvedTag
54921
+ * * Display Name: Resolved Tag Name
54922
+ * * SQL Data Type: nvarchar(255)
54923
+ */
54924
+ get ResolvedTag(): string | null;
54925
+ /**
54926
+ * * Field Name: ReviewedByUser
54927
+ * * Display Name: Reviewed By User Name
54928
+ * * SQL Data Type: nvarchar(100)
54929
+ */
54930
+ get ReviewedByUser(): string | null;
54931
+ }
54932
+ /**
54933
+ * MJ: Tag Synonyms - strongly typed entity sub-class
54934
+ * * Schema: __mj
54935
+ * * Base Table: TagSynonym
54936
+ * * Base View: vwTagSynonyms
54937
+ * * @description Alternate names that should resolve to a Tag during autotagging. Consulted before exact/fuzzy/semantic match tiers in TagEngine.ResolveTag.
54938
+ * * Primary Key: ID
54939
+ * @extends {BaseEntity}
54940
+ * @class
54941
+ * @public
54942
+ */
54943
+ export declare class MJTagSynonymEntity extends BaseEntity<MJTagSynonymEntityType> {
54944
+ /**
54945
+ * Loads the MJ: Tag Synonyms record from the database
54946
+ * @param ID: string - primary key value to load the MJ: Tag Synonyms record.
54947
+ * @param EntityRelationshipsToLoad - (optional) the relationships to load
54948
+ * @returns {Promise<boolean>} - true if successful, false otherwise
54949
+ * @public
54950
+ * @async
54951
+ * @memberof MJTagSynonymEntity
54952
+ * @method
54953
+ * @override
54954
+ */
54955
+ Load(ID: string, EntityRelationshipsToLoad?: string[]): Promise<boolean>;
54956
+ /**
54957
+ * * Field Name: ID
54958
+ * * Display Name: ID
54959
+ * * SQL Data Type: uniqueidentifier
54960
+ * * Default Value: newsequentialid()
54961
+ */
54962
+ get ID(): string;
54963
+ set ID(value: string);
54964
+ /**
54965
+ * * Field Name: TagID
54966
+ * * Display Name: Tag ID
54967
+ * * SQL Data Type: uniqueidentifier
54968
+ * * Related Entity/Foreign Key: MJ: Tags (vwTags.ID)
54969
+ * * Description: The Tag this synonym maps to.
54970
+ */
54971
+ get TagID(): string;
54972
+ set TagID(value: string);
54973
+ /**
54974
+ * * Field Name: Synonym
54975
+ * * Display Name: Synonym
54976
+ * * SQL Data Type: nvarchar(255)
54977
+ * * Description: The alternate name that should resolve to the Tag. Case-insensitive; uniqueness is enforced per-Tag via UQ_TagSynonym_Tag_Synonym.
54978
+ */
54979
+ get Synonym(): string;
54980
+ set Synonym(value: string);
54981
+ /**
54982
+ * * Field Name: Source
54983
+ * * Display Name: Source
54984
+ * * SQL Data Type: nvarchar(20)
54985
+ * * Default Value: Manual
54986
+ * * Value List Type: List
54987
+ * * Possible Values
54988
+ * * Imported
54989
+ * * LLM
54990
+ * * Manual
54991
+ * * Merged
54992
+ * * Description: How this synonym was introduced. Manual = admin-authored; LLM = suggested by an LLM run; Imported = bulk-loaded; Merged = inherited from a tag merged into this one.
54993
+ */
54994
+ get Source(): 'Imported' | 'LLM' | 'Manual' | 'Merged';
54995
+ set Source(value: 'Imported' | 'LLM' | 'Manual' | 'Merged');
54996
+ /**
54997
+ * * Field Name: __mj_CreatedAt
54998
+ * * Display Name: Created At
54999
+ * * SQL Data Type: datetimeoffset
55000
+ * * Default Value: getutcdate()
55001
+ */
55002
+ get __mj_CreatedAt(): Date;
55003
+ /**
55004
+ * * Field Name: __mj_UpdatedAt
55005
+ * * Display Name: Updated At
55006
+ * * SQL Data Type: datetimeoffset
55007
+ * * Default Value: getutcdate()
55008
+ */
55009
+ get __mj_UpdatedAt(): Date;
55010
+ /**
55011
+ * * Field Name: Tag
55012
+ * * Display Name: Tag Name
55013
+ * * SQL Data Type: nvarchar(255)
55014
+ */
55015
+ get Tag(): string;
55016
+ }
54452
55017
  /**
54453
55018
  * MJ: Tagged Items - strongly typed entity sub-class
54454
55019
  * * Schema: __mj
@@ -54634,7 +55199,7 @@ export declare class MJTagEntity extends BaseEntity<MJTagEntityType> {
54634
55199
  set Status(value: 'Active' | 'Deleted' | 'Deprecated' | 'Merged');
54635
55200
  /**
54636
55201
  * * Field Name: MergedIntoTagID
54637
- * * Display Name: Merged Into Tag
55202
+ * * Display Name: Merged Into
54638
55203
  * * SQL Data Type: uniqueidentifier
54639
55204
  * * Related Entity/Foreign Key: MJ: Tags (vwTags.ID)
54640
55205
  * * Description: When Status is Merged, points to the surviving tag this tag was merged into. All TaggedItem and ContentItemTag references are re-pointed during merge.
@@ -54642,6 +55207,83 @@ export declare class MJTagEntity extends BaseEntity<MJTagEntityType> {
54642
55207
  get MergedIntoTagID(): string | null;
54643
55208
  set MergedIntoTagID(value: string | null);
54644
55209
  /**
55210
+ * * Field Name: IsGlobal
55211
+ * * Display Name: Is Global
55212
+ * * SQL Data Type: bit
55213
+ * * Default Value: 1
55214
+ * * Description: When 1, the tag is visible to every tenant/scope. When 0, the tag is only visible to the (Entity, Record) pairs listed in TagScope. Cannot be set together with TagScope rows — enforced in entity Save() override.
55215
+ */
55216
+ get IsGlobal(): boolean;
55217
+ set IsGlobal(value: boolean);
55218
+ /**
55219
+ * * Field Name: AllowAutoGrow
55220
+ * * Display Name: Allow Auto Grow
55221
+ * * SQL Data Type: bit
55222
+ * * Default Value: 1
55223
+ * * Description: When 1, the autotagger may auto-create new child tags under this node when running in AutoGrow or FreeFlow mode. When 0, new children must come through the TagSuggestion review queue.
55224
+ */
55225
+ get AllowAutoGrow(): boolean;
55226
+ set AllowAutoGrow(value: boolean);
55227
+ /**
55228
+ * * Field Name: IsFrozen
55229
+ * * Display Name: Is Frozen
55230
+ * * SQL Data Type: bit
55231
+ * * Default Value: 0
55232
+ * * Description: When 1, this subtree is locked: no new children may be created under this node or any descendant, regardless of taxonomy mode. Existing children remain editable.
55233
+ */
55234
+ get IsFrozen(): boolean;
55235
+ set IsFrozen(value: boolean);
55236
+ /**
55237
+ * * Field Name: MaxChildren
55238
+ * * Display Name: Max Children
55239
+ * * SQL Data Type: int
55240
+ * * Description: Optional cap on the number of direct children allowed under this tag. NULL = unlimited. Auto-grow is blocked once this cap is reached and routed to the TagSuggestion queue.
55241
+ */
55242
+ get MaxChildren(): number | null;
55243
+ set MaxChildren(value: number | null);
55244
+ /**
55245
+ * * Field Name: MaxDescendantDepth
55246
+ * * Display Name: Max Descendant Depth
55247
+ * * SQL Data Type: int
55248
+ * * Description: Optional cap on the depth of the subtree rooted at this tag. NULL = unlimited. 0 = leaf-only (no children at all). Enforced via ancestor walk during auto-grow.
55249
+ */
55250
+ get MaxDescendantDepth(): number | null;
55251
+ set MaxDescendantDepth(value: number | null);
55252
+ /**
55253
+ * * Field Name: MinWeight
55254
+ * * Display Name: Min Weight
55255
+ * * SQL Data Type: decimal(3, 2)
55256
+ * * Description: Optional minimum classifier confidence (0.00-1.00) required for this tag to be applied. Items below this floor are routed to the TagSuggestion queue instead of being tagged.
55257
+ */
55258
+ get MinWeight(): number | null;
55259
+ set MinWeight(value: number | null);
55260
+ /**
55261
+ * * Field Name: RequiresReview
55262
+ * * Display Name: Requires Review
55263
+ * * SQL Data Type: bit
55264
+ * * Default Value: 0
55265
+ * * Description: When 1, every classifier-applied use of this tag is routed to the TagSuggestion queue for human approval before being persisted as a ContentItemTag → TaggedItem.
55266
+ */
55267
+ get RequiresReview(): boolean;
55268
+ set RequiresReview(value: boolean);
55269
+ /**
55270
+ * * Field Name: EmbeddingVector
55271
+ * * Display Name: Embedding Vector
55272
+ * * SQL Data Type: nvarchar(MAX)
55273
+ * * Description: JSON-encoded numeric vector representing the tag's embedding under the model identified by EmbeddingModelID. Refreshed automatically on Save() when Name or Description changes. Used to seed the in-memory tag vector cache without a cold-start LLM round-trip.
55274
+ */
55275
+ get EmbeddingVector(): string | null;
55276
+ set EmbeddingVector(value: string | null);
55277
+ /**
55278
+ * * Field Name: EmbeddingModelID
55279
+ * * Display Name: Embedding Model
55280
+ * * SQL Data Type: uniqueidentifier
55281
+ * * Related Entity/Foreign Key: MJ: AI Models (vwAIModels.ID)
55282
+ * * Description: AI model whose embedding produced EmbeddingVector. When the configured tag-embedding model differs from this value, the cached vector is treated as stale and recomputed.
55283
+ */
55284
+ get EmbeddingModelID(): string | null;
55285
+ set EmbeddingModelID(value: string | null);
55286
+ /**
54645
55287
  * * Field Name: Parent
54646
55288
  * * Display Name: Parent Name
54647
55289
  * * SQL Data Type: nvarchar(255)
@@ -54649,11 +55291,17 @@ export declare class MJTagEntity extends BaseEntity<MJTagEntityType> {
54649
55291
  get Parent(): string | null;
54650
55292
  /**
54651
55293
  * * Field Name: MergedIntoTag
54652
- * * Display Name: Merged Into Tag Name
55294
+ * * Display Name: Merged Into Name
54653
55295
  * * SQL Data Type: nvarchar(255)
54654
55296
  */
54655
55297
  get MergedIntoTag(): string | null;
54656
55298
  /**
55299
+ * * Field Name: EmbeddingModel
55300
+ * * Display Name: Embedding Model Name
55301
+ * * SQL Data Type: nvarchar(50)
55302
+ */
55303
+ get EmbeddingModel(): string | null;
55304
+ /**
54657
55305
  * * Field Name: RootParentID
54658
55306
  * * Display Name: Root Parent
54659
55307
  * * SQL Data Type: uniqueidentifier
@@ -54661,7 +55309,7 @@ export declare class MJTagEntity extends BaseEntity<MJTagEntityType> {
54661
55309
  get RootParentID(): string | null;
54662
55310
  /**
54663
55311
  * * Field Name: RootMergedIntoTagID
54664
- * * Display Name: Root Merged Into Tag
55312
+ * * Display Name: Root Merged Into
54665
55313
  * * SQL Data Type: uniqueidentifier
54666
55314
  */
54667
55315
  get RootMergedIntoTagID(): string | null;