@memberjunction/core-entities 5.29.0 → 5.30.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/dist/custom/MJConversationDetailEntityExtended.d.ts +31 -0
  2. package/dist/custom/MJConversationDetailEntityExtended.d.ts.map +1 -0
  3. package/dist/custom/MJConversationDetailEntityExtended.js +106 -0
  4. package/dist/custom/MJConversationDetailEntityExtended.js.map +1 -0
  5. package/dist/custom/PermissionProviders/AIAgentPermissionProvider.d.ts +31 -0
  6. package/dist/custom/PermissionProviders/AIAgentPermissionProvider.d.ts.map +1 -0
  7. package/dist/custom/PermissionProviders/AIAgentPermissionProvider.js +151 -0
  8. package/dist/custom/PermissionProviders/AIAgentPermissionProvider.js.map +1 -0
  9. package/dist/custom/PermissionProviders/AccessControlRuleProvider.d.ts +45 -0
  10. package/dist/custom/PermissionProviders/AccessControlRuleProvider.d.ts.map +1 -0
  11. package/dist/custom/PermissionProviders/AccessControlRuleProvider.js +253 -0
  12. package/dist/custom/PermissionProviders/AccessControlRuleProvider.js.map +1 -0
  13. package/dist/custom/PermissionProviders/ApplicationRolePermissionProvider.d.ts +28 -0
  14. package/dist/custom/PermissionProviders/ApplicationRolePermissionProvider.d.ts.map +1 -0
  15. package/dist/custom/PermissionProviders/ApplicationRolePermissionProvider.js +144 -0
  16. package/dist/custom/PermissionProviders/ApplicationRolePermissionProvider.js.map +1 -0
  17. package/dist/custom/PermissionProviders/ArtifactPermissionProvider.d.ts +45 -0
  18. package/dist/custom/PermissionProviders/ArtifactPermissionProvider.d.ts.map +1 -0
  19. package/dist/custom/PermissionProviders/ArtifactPermissionProvider.js +169 -0
  20. package/dist/custom/PermissionProviders/ArtifactPermissionProvider.js.map +1 -0
  21. package/dist/custom/PermissionProviders/CollectionPermissionProvider.d.ts +40 -0
  22. package/dist/custom/PermissionProviders/CollectionPermissionProvider.d.ts.map +1 -0
  23. package/dist/custom/PermissionProviders/CollectionPermissionProvider.js +220 -0
  24. package/dist/custom/PermissionProviders/CollectionPermissionProvider.js.map +1 -0
  25. package/dist/custom/PermissionProviders/DashboardPermissionProvider.d.ts +47 -0
  26. package/dist/custom/PermissionProviders/DashboardPermissionProvider.d.ts.map +1 -0
  27. package/dist/custom/PermissionProviders/DashboardPermissionProvider.js +218 -0
  28. package/dist/custom/PermissionProviders/DashboardPermissionProvider.js.map +1 -0
  29. package/dist/custom/PermissionProviders/EntityPermissionProvider.d.ts +25 -0
  30. package/dist/custom/PermissionProviders/EntityPermissionProvider.d.ts.map +1 -0
  31. package/dist/custom/PermissionProviders/EntityPermissionProvider.js +129 -0
  32. package/dist/custom/PermissionProviders/EntityPermissionProvider.js.map +1 -0
  33. package/dist/custom/PermissionProviders/QueryPermissionProvider.d.ts +24 -0
  34. package/dist/custom/PermissionProviders/QueryPermissionProvider.d.ts.map +1 -0
  35. package/dist/custom/PermissionProviders/QueryPermissionProvider.js +123 -0
  36. package/dist/custom/PermissionProviders/QueryPermissionProvider.js.map +1 -0
  37. package/dist/custom/PermissionProviders/ResourcePermissionProvider.d.ts +39 -0
  38. package/dist/custom/PermissionProviders/ResourcePermissionProvider.d.ts.map +1 -0
  39. package/dist/custom/PermissionProviders/ResourcePermissionProvider.js +193 -0
  40. package/dist/custom/PermissionProviders/ResourcePermissionProvider.js.map +1 -0
  41. package/dist/custom/PermissionProviders/index.d.ts +16 -0
  42. package/dist/custom/PermissionProviders/index.d.ts.map +1 -0
  43. package/dist/custom/PermissionProviders/index.js +41 -0
  44. package/dist/custom/PermissionProviders/index.js.map +1 -0
  45. package/dist/custom/Permissions/BaseShareEntityExtended.d.ts +105 -0
  46. package/dist/custom/Permissions/BaseShareEntityExtended.d.ts.map +1 -0
  47. package/dist/custom/Permissions/BaseShareEntityExtended.js +162 -0
  48. package/dist/custom/Permissions/BaseShareEntityExtended.js.map +1 -0
  49. package/dist/custom/Permissions/MJAccessControlRuleEntityExtended.d.ts +22 -0
  50. package/dist/custom/Permissions/MJAccessControlRuleEntityExtended.d.ts.map +1 -0
  51. package/dist/custom/Permissions/MJAccessControlRuleEntityExtended.js +75 -0
  52. package/dist/custom/Permissions/MJAccessControlRuleEntityExtended.js.map +1 -0
  53. package/dist/custom/Permissions/MJArtifactPermissionEntityExtended.d.ts +22 -0
  54. package/dist/custom/Permissions/MJArtifactPermissionEntityExtended.d.ts.map +1 -0
  55. package/dist/custom/Permissions/MJArtifactPermissionEntityExtended.js +114 -0
  56. package/dist/custom/Permissions/MJArtifactPermissionEntityExtended.js.map +1 -0
  57. package/dist/custom/Permissions/MJCollectionPermissionEntityExtended.d.ts +25 -0
  58. package/dist/custom/Permissions/MJCollectionPermissionEntityExtended.d.ts.map +1 -0
  59. package/dist/custom/Permissions/MJCollectionPermissionEntityExtended.js +101 -0
  60. package/dist/custom/Permissions/MJCollectionPermissionEntityExtended.js.map +1 -0
  61. package/dist/custom/Permissions/MJDashboardPermissionEntityExtended.d.ts +32 -0
  62. package/dist/custom/Permissions/MJDashboardPermissionEntityExtended.d.ts.map +1 -0
  63. package/dist/custom/Permissions/MJDashboardPermissionEntityExtended.js +95 -0
  64. package/dist/custom/Permissions/MJDashboardPermissionEntityExtended.js.map +1 -0
  65. package/dist/custom/Permissions/index.d.ts +13 -0
  66. package/dist/custom/Permissions/index.d.ts.map +1 -0
  67. package/dist/custom/Permissions/index.js +22 -0
  68. package/dist/custom/Permissions/index.js.map +1 -0
  69. package/dist/custom/Permissions/shareNotification.d.ts +72 -0
  70. package/dist/custom/Permissions/shareNotification.d.ts.map +1 -0
  71. package/dist/custom/Permissions/shareNotification.js +98 -0
  72. package/dist/custom/Permissions/shareNotification.js.map +1 -0
  73. package/dist/custom/ResourcePermissions/MJResourcePermissionEntityExtended.d.ts +63 -1
  74. package/dist/custom/ResourcePermissions/MJResourcePermissionEntityExtended.d.ts.map +1 -1
  75. package/dist/custom/ResourcePermissions/MJResourcePermissionEntityExtended.js +244 -27
  76. package/dist/custom/ResourcePermissions/MJResourcePermissionEntityExtended.js.map +1 -1
  77. package/dist/custom/ResourcePermissions/ResourcePermissionEngine.d.ts +7 -0
  78. package/dist/custom/ResourcePermissions/ResourcePermissionEngine.d.ts.map +1 -1
  79. package/dist/custom/ResourcePermissions/ResourcePermissionEngine.js +13 -0
  80. package/dist/custom/ResourcePermissions/ResourcePermissionEngine.js.map +1 -1
  81. package/dist/engines/GeoDataEngine.d.ts +42 -8
  82. package/dist/engines/GeoDataEngine.d.ts.map +1 -1
  83. package/dist/engines/GeoDataEngine.js +191 -36
  84. package/dist/engines/GeoDataEngine.js.map +1 -1
  85. package/dist/engines/PermissionEngine.d.ts +142 -0
  86. package/dist/engines/PermissionEngine.d.ts.map +1 -0
  87. package/dist/engines/PermissionEngine.js +343 -0
  88. package/dist/engines/PermissionEngine.js.map +1 -0
  89. package/dist/engines/UserInfoEngine.d.ts +6 -1
  90. package/dist/engines/UserInfoEngine.d.ts.map +1 -1
  91. package/dist/engines/UserInfoEngine.js +21 -5
  92. package/dist/engines/UserInfoEngine.js.map +1 -1
  93. package/dist/engines/conversations.d.ts +35 -0
  94. package/dist/engines/conversations.d.ts.map +1 -1
  95. package/dist/engines/conversations.js +103 -16
  96. package/dist/engines/conversations.js.map +1 -1
  97. package/dist/generated/entity_subclasses.d.ts +579 -52
  98. package/dist/generated/entity_subclasses.d.ts.map +1 -1
  99. package/dist/generated/entity_subclasses.js +697 -66
  100. package/dist/generated/entity_subclasses.js.map +1 -1
  101. package/dist/index.d.ts +4 -0
  102. package/dist/index.d.ts.map +1 -1
  103. package/dist/index.js +8 -0
  104. package/dist/index.js.map +1 -1
  105. package/package.json +5 -5
@@ -588,7 +588,7 @@ export const MJActionSchema = z.object({
588
588
  * * Field Name: Description
589
589
  * * Display Name: Description
590
590
  * * SQL Data Type: nvarchar(MAX)`),
591
- Type: z.union([z.literal('Custom'), z.literal('Generated')]).describe(`
591
+ Type: z.union([z.literal('Custom'), z.literal('Generated'), z.literal('Runtime')]).describe(`
592
592
  * * Field Name: Type
593
593
  * * Display Name: Type
594
594
  * * SQL Data Type: nvarchar(20)
@@ -597,6 +597,7 @@ export const MJActionSchema = z.object({
597
597
  * * Possible Values
598
598
  * * Custom
599
599
  * * Generated
600
+ * * Runtime
600
601
  * * Description: Generated or Custom. Generated means the UserPrompt is used to prompt an AI model to automatically create the code for the Action. Custom means that a custom class has been implemented that subclasses the BaseAction class. The custom class needs to use the @RegisterClass decorator and be included in the MJAPI (or other runtime environment) to be available for execution.`),
601
602
  UserPrompt: z.string().nullable().describe(`
602
603
  * * Field Name: UserPrompt
@@ -620,7 +621,7 @@ export const MJActionSchema = z.object({
620
621
  * * Description: AI's explanation of the code.`),
621
622
  CodeApprovalStatus: z.union([z.literal('Approved'), z.literal('Pending'), z.literal('Rejected')]).describe(`
622
623
  * * Field Name: CodeApprovalStatus
623
- * * Display Name: Code Approval Status
624
+ * * Display Name: Approval Status
624
625
  * * SQL Data Type: nvarchar(20)
625
626
  * * Default Value: Pending
626
627
  * * Value List Type: List
@@ -631,17 +632,17 @@ export const MJActionSchema = z.object({
631
632
  * * Description: An action won't be usable until the code is approved.`),
632
633
  CodeApprovalComments: z.string().nullable().describe(`
633
634
  * * Field Name: CodeApprovalComments
634
- * * Display Name: Code Approval Comments
635
+ * * Display Name: Approval Comments
635
636
  * * SQL Data Type: nvarchar(MAX)
636
637
  * * Description: Optional comments when an individual (or an AI) reviews and approves the code.`),
637
638
  CodeApprovedByUserID: z.string().nullable().describe(`
638
639
  * * Field Name: CodeApprovedByUserID
639
- * * Display Name: Code Approved By
640
+ * * Display Name: Approved By User
640
641
  * * SQL Data Type: uniqueidentifier
641
642
  * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)`),
642
643
  CodeApprovedAt: z.date().nullable().describe(`
643
644
  * * Field Name: CodeApprovedAt
644
- * * Display Name: Code Approved At
645
+ * * Display Name: Approved At
645
646
  * * SQL Data Type: datetimeoffset
646
647
  * * Description: When the code was approved.`),
647
648
  CodeLocked: z.boolean().describe(`
@@ -689,7 +690,7 @@ export const MJActionSchema = z.object({
689
690
  * * Description: For actions where Type='Custom', this specifies the fully qualified class name of the BaseAction sub-class that should be instantiated to handle the action execution. This provides a more reliable mechanism than relying on the Name field for class instantiation.`),
690
691
  ParentID: z.string().nullable().describe(`
691
692
  * * Field Name: ParentID
692
- * * Display Name: Parent
693
+ * * Display Name: Parent Action
693
694
  * * SQL Data Type: uniqueidentifier
694
695
  * * Related Entity/Foreign Key: MJ: Actions (vwActions.ID)
695
696
  * * Description: Optional ID of the parent action this action inherits from. Used for hierarchical action composition where child actions can specialize parent actions.`),
@@ -709,21 +710,42 @@ export const MJActionSchema = z.object({
709
710
  * * Display Name: Configuration
710
711
  * * SQL Data Type: nvarchar(MAX)
711
712
  * * Description: Optional JSON configuration for the action. For integration actions, contains routing info: integrationName, objectName, verb, and optional connectorConfig. Non-integration actions leave this NULL.`),
713
+ RuntimeActionConfiguration: z.any().nullable().describe(`
714
+ * * Field Name: RuntimeActionConfiguration
715
+ * * Display Name: Runtime Configuration
716
+ * * SQL Data Type: nvarchar(MAX)
717
+ * * JSON Type: MJActionEntity_IRuntimeActionConfiguration
718
+ * * Description: JSON blob holding configuration specific to Type='Runtime' actions: declarative permission scopes (allowedEntities, allowedActions, allowedAgents with id+name pairs), resource limits (maxMemoryMB, maxBridgeCalls), and sandbox options (additionalLibraries, debugMode). Evolvable — new keys can be introduced without schema changes. NULL for non-Runtime actions.`),
719
+ MaxExecutionTimeMS: z.number().nullable().describe(`
720
+ * * Field Name: MaxExecutionTimeMS
721
+ * * Display Name: Max Execution Time (ms)
722
+ * * SQL Data Type: int
723
+ * * Description: Universal maximum execution time in milliseconds for a single action invocation. Enforced by ActionEngine across ALL action types (Custom, Generated, Runtime) via AbortSignal passed through RunActionParams. NULL means use the engine default.`),
724
+ CreatedByAgentID: z.string().nullable().describe(`
725
+ * * Field Name: CreatedByAgentID
726
+ * * Display Name: Created By Agent
727
+ * * SQL Data Type: uniqueidentifier
728
+ * * Related Entity/Foreign Key: MJ: AI Agents (vwAIAgents.ID)
729
+ * * Description: Optional reference to the AI Agent that authored this action — populated when an agent (e.g. ActionSmith) dynamically generates a Runtime action. NULL for human-authored Custom/Generated actions. Provides an audit trail linking agent-generated capabilities back to their creator.`),
712
730
  Category: z.string().nullable().describe(`
713
731
  * * Field Name: Category
714
732
  * * Display Name: Category Name
715
733
  * * SQL Data Type: nvarchar(255)`),
716
734
  CodeApprovedByUser: z.string().nullable().describe(`
717
735
  * * Field Name: CodeApprovedByUser
718
- * * Display Name: Code Approved By (User)
736
+ * * Display Name: Approved By User Name
719
737
  * * SQL Data Type: nvarchar(100)`),
720
738
  Parent: z.string().nullable().describe(`
721
739
  * * Field Name: Parent
722
- * * Display Name: Parent Name
740
+ * * Display Name: Parent Action Name
723
741
  * * SQL Data Type: nvarchar(425)`),
724
742
  DefaultCompactPrompt: z.string().nullable().describe(`
725
743
  * * Field Name: DefaultCompactPrompt
726
- * * Display Name: Default Compact Prompt Text
744
+ * * Display Name: Default Compact Prompt Name
745
+ * * SQL Data Type: nvarchar(255)`),
746
+ CreatedByAgent: z.string().nullable().describe(`
747
+ * * Field Name: CreatedByAgent
748
+ * * Display Name: Created By Agent Name
727
749
  * * SQL Data Type: nvarchar(255)`),
728
750
  RootParentID: z.string().nullable().describe(`
729
751
  * * Field Name: RootParentID
@@ -1355,7 +1377,7 @@ export const MJAIAgentExampleSchema = z.object({
1355
1377
  * * Display Name: Comments
1356
1378
  * * SQL Data Type: nvarchar(MAX)
1357
1379
  * * Description: Internal comments about this example, not included in agent context injection.`),
1358
- Status: z.union([z.literal('Active'), z.literal('Pending'), z.literal('Revoked')]).describe(`
1380
+ Status: z.union([z.literal('Active'), z.literal('Archived'), z.literal('Pending'), z.literal('Revoked')]).describe(`
1359
1381
  * * Field Name: Status
1360
1382
  * * Display Name: Status
1361
1383
  * * SQL Data Type: nvarchar(20)
@@ -1363,6 +1385,7 @@ export const MJAIAgentExampleSchema = z.object({
1363
1385
  * * Value List Type: List
1364
1386
  * * Possible Values
1365
1387
  * * Active
1388
+ * * Archived
1366
1389
  * * Pending
1367
1390
  * * Revoked
1368
1391
  * * Description: Status of the example: Pending (awaiting review), Active (in use), or Revoked (disabled).`),
@@ -1732,7 +1755,7 @@ export const MJAIAgentNoteSchema = z.object({
1732
1755
  * * Display Name: Comments
1733
1756
  * * SQL Data Type: nvarchar(MAX)
1734
1757
  * * Description: Internal comments about this note, not included in agent context injection.`),
1735
- Status: z.union([z.literal('Active'), z.literal('Pending'), z.literal('Revoked')]).describe(`
1758
+ Status: z.union([z.literal('Active'), z.literal('Archived'), z.literal('Pending'), z.literal('Revoked')]).describe(`
1736
1759
  * * Field Name: Status
1737
1760
  * * Display Name: Status
1738
1761
  * * SQL Data Type: nvarchar(20)
@@ -1740,6 +1763,7 @@ export const MJAIAgentNoteSchema = z.object({
1740
1763
  * * Value List Type: List
1741
1764
  * * Possible Values
1742
1765
  * * Active
1766
+ * * Archived
1743
1767
  * * Pending
1744
1768
  * * Revoked
1745
1769
  * * Description: Status of the note: Pending (awaiting review), Active (in use), or Revoked (disabled).`),
@@ -1810,6 +1834,40 @@ export const MJAIAgentNoteSchema = z.object({
1810
1834
  * * Display Name: Expires At
1811
1835
  * * SQL Data Type: datetimeoffset
1812
1836
  * * Description: Optional expiration timestamp. Notes past this date are candidates for archival. NULL means no expiration.`),
1837
+ ConsolidatedIntoNoteID: z.string().nullable().describe(`
1838
+ * * Field Name: ConsolidatedIntoNoteID
1839
+ * * Display Name: Consolidated Into Note ID
1840
+ * * SQL Data Type: uniqueidentifier
1841
+ * * Related Entity/Foreign Key: MJ: AI Agent Notes (vwAIAgentNotes.ID)
1842
+ * * Description: Self-referential FK. Points to the consolidated note that replaced this one when revoked during consolidation or contradiction resolution.`),
1843
+ ConsolidationCount: z.number().describe(`
1844
+ * * Field Name: ConsolidationCount
1845
+ * * Display Name: Consolidation Count
1846
+ * * SQL Data Type: int
1847
+ * * Default Value: 0
1848
+ * * Description: Tracks re-summarization depth. 0=raw extraction, 1=first consolidation, etc. Capped at 3 to prevent semantic drift.`),
1849
+ DerivedFromNoteIDs: z.string().nullable().describe(`
1850
+ * * Field Name: DerivedFromNoteIDs
1851
+ * * Display Name: Derived From Note I Ds
1852
+ * * SQL Data Type: nvarchar(MAX)
1853
+ * * Description: JSON array of source note IDs that were consolidated into this note. Enables provenance chain resolution and rollback.`),
1854
+ ProtectionTier: z.union([z.literal('Ephemeral'), z.literal('Immutable'), z.literal('Protected'), z.literal('Standard')]).describe(`
1855
+ * * Field Name: ProtectionTier
1856
+ * * Display Name: Protection Tier
1857
+ * * SQL Data Type: nvarchar(20)
1858
+ * * Default Value: Standard
1859
+ * * Value List Type: List
1860
+ * * Possible Values
1861
+ * * Ephemeral
1862
+ * * Immutable
1863
+ * * Protected
1864
+ * * Standard
1865
+ * * Description: Protection level: Immutable (never consolidated/archived), Protected (no consolidation, extended 365-day retention), Standard (default), Ephemeral (aggressive consolidation, 2x decay rate).`),
1866
+ ImportanceScore: z.number().nullable().describe(`
1867
+ * * Field Name: ImportanceScore
1868
+ * * Display Name: Importance Score
1869
+ * * SQL Data Type: decimal(5, 2)
1870
+ * * Description: Composite importance score (0-10) computed from 7 signals: recency, LLM-importance, relevance, uniqueness, correction boost, goal alignment, user mark. Replaces raw AccessCount for authority and retention decisions.`),
1813
1871
  Agent: z.string().nullable().describe(`
1814
1872
  * * Field Name: Agent
1815
1873
  * * Display Name: Agent
@@ -1846,6 +1904,14 @@ export const MJAIAgentNoteSchema = z.object({
1846
1904
  * * Field Name: PrimaryScopeEntity
1847
1905
  * * Display Name: Primary Scope Entity
1848
1906
  * * SQL Data Type: nvarchar(255)`),
1907
+ ConsolidatedIntoNote: z.string().nullable().describe(`
1908
+ * * Field Name: ConsolidatedIntoNote
1909
+ * * Display Name: Consolidated Into Note
1910
+ * * SQL Data Type: nvarchar(MAX)`),
1911
+ RootConsolidatedIntoNoteID: z.string().nullable().describe(`
1912
+ * * Field Name: RootConsolidatedIntoNoteID
1913
+ * * Display Name: Root Consolidated Into Note ID
1914
+ * * SQL Data Type: uniqueidentifier`),
1849
1915
  });
1850
1916
  /**
1851
1917
  * zod schema definition for the entity MJ: AI Agent Permissions
@@ -2857,6 +2923,11 @@ each time the agent processes a prompt step.`),
2857
2923
  * * Display Name: External Reference ID
2858
2924
  * * SQL Data Type: nvarchar(200)
2859
2925
  * * Description: Optional reference ID from an external system that initiated this agent run. Enables correlation between the caller's agent run and this execution. For example, when Skip SaaS is called via SkipProxyAgent, this stores the MJ-side Agent Run ID.`),
2926
+ CompanyID: z.string().nullable().describe(`
2927
+ * * Field Name: CompanyID
2928
+ * * Display Name: Company ID
2929
+ * * SQL Data Type: uniqueidentifier
2930
+ * * Description: Optional company scope for multi-tenant memory. When populated, Memory Manager uses this to scope extracted notes to the company. Flows from ExecuteAgentParams.companyId at agent invocation time.`),
2860
2931
  Agent: z.string().nullable().describe(`
2861
2932
  * * Field Name: Agent
2862
2933
  * * Display Name: Agent Name
@@ -7165,7 +7236,7 @@ export const MJArchiveRunDetailSchema = z.object({
7165
7236
  * * Description: Foreign key to the parent ArchiveRun.`),
7166
7237
  EntityID: z.string().describe(`
7167
7238
  * * Field Name: EntityID
7168
- * * Display Name: Entity Record
7239
+ * * Display Name: Entity ID
7169
7240
  * * SQL Data Type: uniqueidentifier
7170
7241
  * * Related Entity/Foreign Key: MJ: Entities (vwEntities.ID)
7171
7242
  * * Description: Foreign key to the Entity this record belongs to.`),
@@ -7212,7 +7283,7 @@ export const MJArchiveRunDetailSchema = z.object({
7212
7283
  * * Description: The __mj_UpdatedAt timestamp of the record at the time of archiving, used for conflict detection during restore.`),
7213
7284
  IsRecordChangeArchive: z.boolean().describe(`
7214
7285
  * * Field Name: IsRecordChangeArchive
7215
- * * Display Name: Is Record Change Archive
7286
+ * * Display Name: Is Record Change
7216
7287
  * * SQL Data Type: bit
7217
7288
  * * Default Value: 0
7218
7289
  * * Description: When true, this detail row represents an archived Record Change entry rather than a primary entity record.`),
@@ -7226,9 +7297,13 @@ export const MJArchiveRunDetailSchema = z.object({
7226
7297
  * * Display Name: Updated At
7227
7298
  * * SQL Data Type: datetimeoffset
7228
7299
  * * Default Value: getutcdate()`),
7300
+ ArchiveRun: z.date().describe(`
7301
+ * * Field Name: ArchiveRun
7302
+ * * Display Name: Archive Run Timestamp
7303
+ * * SQL Data Type: datetimeoffset`),
7229
7304
  Entity: z.string().describe(`
7230
7305
  * * Field Name: Entity
7231
- * * Display Name: Entity Type
7306
+ * * Display Name: Entity Name
7232
7307
  * * SQL Data Type: nvarchar(255)`),
7233
7308
  });
7234
7309
  /**
@@ -14890,6 +14965,7 @@ export const MJEntityOrganicKeySchema = z.object({
14890
14965
  export const MJEntityPermissionSchema = z.object({
14891
14966
  ID: z.string().describe(`
14892
14967
  * * Field Name: ID
14968
+ * * Display Name: ID
14893
14969
  * * SQL Data Type: uniqueidentifier
14894
14970
  * * Default Value: newsequentialid()`),
14895
14971
  EntityID: z.string().describe(`
@@ -14928,34 +15004,44 @@ export const MJEntityPermissionSchema = z.object({
14928
15004
  * * Description: Whether the role/user can delete records from this entity.`),
14929
15005
  ReadRLSFilterID: z.string().nullable().describe(`
14930
15006
  * * Field Name: ReadRLSFilterID
14931
- * * Display Name: Read RLSFilter ID
15007
+ * * Display Name: Read Filter ID
14932
15008
  * * SQL Data Type: uniqueidentifier
14933
15009
  * * Related Entity/Foreign Key: MJ: Row Level Security Filters (vwRowLevelSecurityFilters.ID)`),
14934
15010
  CreateRLSFilterID: z.string().nullable().describe(`
14935
15011
  * * Field Name: CreateRLSFilterID
14936
- * * Display Name: Create RLSFilter ID
15012
+ * * Display Name: Create Filter ID
14937
15013
  * * SQL Data Type: uniqueidentifier
14938
15014
  * * Related Entity/Foreign Key: MJ: Row Level Security Filters (vwRowLevelSecurityFilters.ID)`),
14939
15015
  UpdateRLSFilterID: z.string().nullable().describe(`
14940
15016
  * * Field Name: UpdateRLSFilterID
14941
- * * Display Name: Update RLSFilter ID
15017
+ * * Display Name: Update Filter ID
14942
15018
  * * SQL Data Type: uniqueidentifier
14943
15019
  * * Related Entity/Foreign Key: MJ: Row Level Security Filters (vwRowLevelSecurityFilters.ID)`),
14944
15020
  DeleteRLSFilterID: z.string().nullable().describe(`
14945
15021
  * * Field Name: DeleteRLSFilterID
14946
- * * Display Name: Delete RLSFilter ID
15022
+ * * Display Name: Delete Filter ID
14947
15023
  * * SQL Data Type: uniqueidentifier
14948
15024
  * * Related Entity/Foreign Key: MJ: Row Level Security Filters (vwRowLevelSecurityFilters.ID)`),
14949
15025
  __mj_CreatedAt: z.date().describe(`
14950
15026
  * * Field Name: __mj_CreatedAt
14951
- * * Display Name: __mj _Created At
15027
+ * * Display Name: Created At
14952
15028
  * * SQL Data Type: datetimeoffset
14953
15029
  * * Default Value: getutcdate()`),
14954
15030
  __mj_UpdatedAt: z.date().describe(`
14955
15031
  * * Field Name: __mj_UpdatedAt
14956
- * * Display Name: __mj _Updated At
15032
+ * * Display Name: Updated At
14957
15033
  * * SQL Data Type: datetimeoffset
14958
15034
  * * Default Value: getutcdate()`),
15035
+ Type: z.union([z.literal('Allow'), z.literal('Deny')]).describe(`
15036
+ * * Field Name: Type
15037
+ * * Display Name: Access Type
15038
+ * * SQL Data Type: nvarchar(10)
15039
+ * * Default Value: Allow
15040
+ * * Value List Type: List
15041
+ * * Possible Values
15042
+ * * Allow
15043
+ * * Deny
15044
+ * * Description: Allow or Deny. Deny rows override any Allow grants on the same (EntityID, RoleID, action) at evaluation time, letting administrators exclude a role from an action another role grants.`),
14959
15045
  Entity: z.string().describe(`
14960
15046
  * * Field Name: Entity
14961
15047
  * * Display Name: Entity
@@ -14966,23 +15052,23 @@ export const MJEntityPermissionSchema = z.object({
14966
15052
  * * SQL Data Type: nvarchar(50)`),
14967
15053
  RoleSQLName: z.string().nullable().describe(`
14968
15054
  * * Field Name: RoleSQLName
14969
- * * Display Name: Role SQLName
15055
+ * * Display Name: Role SQL Name
14970
15056
  * * SQL Data Type: nvarchar(250)`),
14971
15057
  CreateRLSFilter: z.string().nullable().describe(`
14972
15058
  * * Field Name: CreateRLSFilter
14973
- * * Display Name: Create RLSFilter
15059
+ * * Display Name: Create Filter
14974
15060
  * * SQL Data Type: nvarchar(100)`),
14975
15061
  ReadRLSFilter: z.string().nullable().describe(`
14976
15062
  * * Field Name: ReadRLSFilter
14977
- * * Display Name: Read RLSFilter
15063
+ * * Display Name: Read Filter
14978
15064
  * * SQL Data Type: nvarchar(100)`),
14979
15065
  UpdateRLSFilter: z.string().nullable().describe(`
14980
15066
  * * Field Name: UpdateRLSFilter
14981
- * * Display Name: Update RLSFilter
15067
+ * * Display Name: Update Filter
14982
15068
  * * SQL Data Type: nvarchar(100)`),
14983
15069
  DeleteRLSFilter: z.string().nullable().describe(`
14984
15070
  * * Field Name: DeleteRLSFilter
14985
- * * Display Name: Delete RLSFilter
15071
+ * * Display Name: Delete Filter
14986
15072
  * * SQL Data Type: nvarchar(100)`),
14987
15073
  });
14988
15074
  /**
@@ -17554,14 +17640,16 @@ export const MJMCPToolFavoriteSchema = z.object({
17554
17640
  * * Default Value: newsequentialid()`),
17555
17641
  UserID: z.string().describe(`
17556
17642
  * * Field Name: UserID
17557
- * * Display Name: User ID
17643
+ * * Display Name: User
17558
17644
  * * SQL Data Type: uniqueidentifier
17559
- * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)`),
17645
+ * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)
17646
+ * * Description: The user who starred this tool. Favorites are per-user; multiple users can favorite the same tool independently. References the MJ User table.`),
17560
17647
  MCPServerToolID: z.string().describe(`
17561
17648
  * * Field Name: MCPServerToolID
17562
- * * Display Name: MCP Server Tool ID
17649
+ * * Display Name: MCP Server Tool
17563
17650
  * * SQL Data Type: uniqueidentifier
17564
- * * Related Entity/Foreign Key: MJ: MCP Server Tools (vwMCPServerTools.ID)`),
17651
+ * * Related Entity/Foreign Key: MJ: MCP Server Tools (vwMCPServerTools.ID)
17652
+ * * Description: The MCP Server Tool that has been favorited. Combined with UserID this forms a unique constraint so a user cannot favorite the same tool twice.`),
17565
17653
  __mj_CreatedAt: z.date().describe(`
17566
17654
  * * Field Name: __mj_CreatedAt
17567
17655
  * * Display Name: Created At
@@ -17574,11 +17662,11 @@ export const MJMCPToolFavoriteSchema = z.object({
17574
17662
  * * Default Value: getutcdate()`),
17575
17663
  User: z.string().describe(`
17576
17664
  * * Field Name: User
17577
- * * Display Name: User
17665
+ * * Display Name: User Name
17578
17666
  * * SQL Data Type: nvarchar(100)`),
17579
17667
  MCPServerTool: z.string().nullable().describe(`
17580
17668
  * * Field Name: MCPServerTool
17581
- * * Display Name: MCP Server Tool
17669
+ * * Display Name: Tool Name
17582
17670
  * * SQL Data Type: nvarchar(255)`),
17583
17671
  });
17584
17672
  /**
@@ -18313,6 +18401,86 @@ export const MJOutputTriggerTypeSchema = z.object({
18313
18401
  * * SQL Data Type: datetimeoffset
18314
18402
  * * Default Value: getutcdate()`),
18315
18403
  });
18404
+ /**
18405
+ * zod schema definition for the entity MJ: Permission Domains
18406
+ */
18407
+ export const MJPermissionDomainSchema = z.object({
18408
+ ID: z.string().describe(`
18409
+ * * Field Name: ID
18410
+ * * Display Name: ID
18411
+ * * SQL Data Type: uniqueidentifier
18412
+ * * Default Value: newsequentialid()`),
18413
+ Name: z.string().describe(`
18414
+ * * Field Name: Name
18415
+ * * Display Name: Name
18416
+ * * SQL Data Type: nvarchar(200)
18417
+ * * Description: Human-readable unique name for the permission domain (e.g., "Entity Permissions", "Dashboard Permissions"). Used in admin UI and as the domain identifier in PermissionEngine API calls.`),
18418
+ Description: z.string().nullable().describe(`
18419
+ * * Field Name: Description
18420
+ * * Display Name: Description
18421
+ * * SQL Data Type: nvarchar(MAX)
18422
+ * * Description: Detailed description of what this permission domain covers and how permissions are enforced.`),
18423
+ ProviderClassName: z.string().describe(`
18424
+ * * Field Name: ProviderClassName
18425
+ * * Display Name: Provider Class Name
18426
+ * * SQL Data Type: nvarchar(500)
18427
+ * * Description: ClassFactory key used to instantiate this provider. Must match the key passed to @RegisterClass(PermissionProviderBase, 'ClassName'). Convention: prefix with MJ for built-in providers (e.g., MJEntityPermissionProvider).`),
18428
+ SupportedGranteeTypes: z.string().describe(`
18429
+ * * Field Name: SupportedGranteeTypes
18430
+ * * Display Name: Supported Grantee Types
18431
+ * * SQL Data Type: nvarchar(200)
18432
+ * * Description: Comma-delimited list of grantee types this provider supports. Valid tokens: User, Role, Everyone, Public. Example: "User,Role".`),
18433
+ SupportedActions: z.string().describe(`
18434
+ * * Field Name: SupportedActions
18435
+ * * Display Name: Supported Actions
18436
+ * * SQL Data Type: nvarchar(500)
18437
+ * * Description: Comma-delimited list of permission actions this provider can evaluate. Valid tokens: Read, Create, Update, Delete, Share, Execute, Admin. Example: "Read,Create,Update,Delete".`),
18438
+ SupportsDeny: z.boolean().describe(`
18439
+ * * Field Name: SupportsDeny
18440
+ * * Display Name: Supports Deny
18441
+ * * SQL Data Type: bit
18442
+ * * Default Value: 0
18443
+ * * Description: When true, this provider supports explicit Deny records that override Allow grants at the same scope.`),
18444
+ SupportsExpiration: z.boolean().describe(`
18445
+ * * Field Name: SupportsExpiration
18446
+ * * Display Name: Supports Expiration
18447
+ * * SQL Data Type: bit
18448
+ * * Default Value: 0
18449
+ * * Description: When true, this provider supports time-bound permissions with an expiration timestamp.`),
18450
+ SupportsHierarchyInheritance: z.boolean().describe(`
18451
+ * * Field Name: SupportsHierarchyInheritance
18452
+ * * Display Name: Supports Hierarchy Inheritance
18453
+ * * SQL Data Type: bit
18454
+ * * Default Value: 0
18455
+ * * Description: When true, this provider resolves permissions hierarchically (e.g., category-level grants cascade to items within the category).`),
18456
+ IsActive: z.boolean().describe(`
18457
+ * * Field Name: IsActive
18458
+ * * Display Name: Is Active
18459
+ * * SQL Data Type: bit
18460
+ * * Default Value: 1
18461
+ * * Description: When false, the PermissionEngine skips loading this provider at startup. Use to temporarily disable a provider without removing its record.`),
18462
+ DisplayOrder: z.number().describe(`
18463
+ * * Field Name: DisplayOrder
18464
+ * * Display Name: Display Order
18465
+ * * SQL Data Type: int
18466
+ * * Default Value: 100
18467
+ * * Description: Sort order for displaying domains in the Sharing Center admin UI. Lower numbers appear first.`),
18468
+ Icon: z.string().nullable().describe(`
18469
+ * * Field Name: Icon
18470
+ * * Display Name: Icon
18471
+ * * SQL Data Type: nvarchar(100)
18472
+ * * Description: Optional Font Awesome icon class for display in admin UI (e.g., "fa-solid fa-shield").`),
18473
+ __mj_CreatedAt: z.date().describe(`
18474
+ * * Field Name: __mj_CreatedAt
18475
+ * * Display Name: Created At
18476
+ * * SQL Data Type: datetimeoffset
18477
+ * * Default Value: getutcdate()`),
18478
+ __mj_UpdatedAt: z.date().describe(`
18479
+ * * Field Name: __mj_UpdatedAt
18480
+ * * Display Name: Updated At
18481
+ * * SQL Data Type: datetimeoffset
18482
+ * * Default Value: getutcdate()`),
18483
+ });
18316
18484
  /**
18317
18485
  * zod schema definition for the entity MJ: Projects
18318
18486
  */
@@ -20414,12 +20582,12 @@ export const MJResourcePermissionSchema = z.object({
20414
20582
  * * Description: Reference to the type of resource being shared (View, Dashboard, Report, etc.)`),
20415
20583
  ResourceRecordID: z.string().describe(`
20416
20584
  * * Field Name: ResourceRecordID
20417
- * * Display Name: Resource Record ID
20585
+ * * Display Name: Resource Record
20418
20586
  * * SQL Data Type: nvarchar(255)
20419
20587
  * * Description: ID of the specific resource being shared`),
20420
20588
  Type: z.union([z.literal('Role'), z.literal('User')]).describe(`
20421
20589
  * * Field Name: Type
20422
- * * Display Name: Type
20590
+ * * Display Name: Share Type
20423
20591
  * * SQL Data Type: nvarchar(10)
20424
20592
  * * Value List Type: List
20425
20593
  * * Possible Values
@@ -20428,12 +20596,12 @@ export const MJResourcePermissionSchema = z.object({
20428
20596
  * * Description: The level of sharing either Role or User`),
20429
20597
  StartSharingAt: z.date().nullable().describe(`
20430
20598
  * * Field Name: StartSharingAt
20431
- * * Display Name: Start Sharing At
20599
+ * * Display Name: Start Date
20432
20600
  * * SQL Data Type: datetimeoffset
20433
20601
  * * Description: Optional: Date when sharing starts`),
20434
20602
  EndSharingAt: z.date().nullable().describe(`
20435
20603
  * * Field Name: EndSharingAt
20436
- * * Display Name: End Sharing At
20604
+ * * Display Name: End Date
20437
20605
  * * SQL Data Type: datetimeoffset
20438
20606
  * * Description: Optional: Date when sharing ends`),
20439
20607
  RoleID: z.string().nullable().describe(`
@@ -20478,6 +20646,12 @@ export const MJResourcePermissionSchema = z.object({
20478
20646
  * * Requested
20479
20647
  * * Revoked
20480
20648
  * * Description: Status of the resource permission request. Possible values are Requested, Approved, Rejected, or Revoked.`),
20649
+ SharedByUserID: z.string().nullable().describe(`
20650
+ * * Field Name: SharedByUserID
20651
+ * * Display Name: Shared By User ID
20652
+ * * SQL Data Type: uniqueidentifier
20653
+ * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)
20654
+ * * Description: The user who granted this permission. NULL when the share pre-dates this column or when the grantor is unknown (e.g., a system-seeded permission).`),
20481
20655
  ResourceType: z.string().describe(`
20482
20656
  * * Field Name: ResourceType
20483
20657
  * * Display Name: Resource Type
@@ -20490,6 +20664,10 @@ export const MJResourcePermissionSchema = z.object({
20490
20664
  * * Field Name: User
20491
20665
  * * Display Name: User
20492
20666
  * * SQL Data Type: nvarchar(100)`),
20667
+ SharedByUser: z.string().nullable().describe(`
20668
+ * * Field Name: SharedByUser
20669
+ * * Display Name: Shared By User
20670
+ * * SQL Data Type: nvarchar(100)`),
20493
20671
  });
20494
20672
  /**
20495
20673
  * zod schema definition for the entity MJ: Resource Types
@@ -26152,6 +26330,11 @@ export { MJActionResultCodeEntity };
26152
26330
  * @public
26153
26331
  */
26154
26332
  let MJActionEntity = class MJActionEntity extends BaseEntity {
26333
+ constructor() {
26334
+ super(...arguments);
26335
+ this._RuntimeActionConfigurationObject_cached = undefined;
26336
+ this._RuntimeActionConfigurationObject_lastRaw = null;
26337
+ }
26155
26338
  /**
26156
26339
  * Loads the MJ: Actions record from the database
26157
26340
  * @param ID: string - primary key value to load the MJ: Actions record.
@@ -26259,6 +26442,7 @@ let MJActionEntity = class MJActionEntity extends BaseEntity {
26259
26442
  * * Possible Values
26260
26443
  * * Custom
26261
26444
  * * Generated
26445
+ * * Runtime
26262
26446
  * * Description: Generated or Custom. Generated means the UserPrompt is used to prompt an AI model to automatically create the code for the Action. Custom means that a custom class has been implemented that subclasses the BaseAction class. The custom class needs to use the @RegisterClass decorator and be included in the MJAPI (or other runtime environment) to be available for execution.
26263
26447
  */
26264
26448
  get Type() {
@@ -26317,7 +26501,7 @@ let MJActionEntity = class MJActionEntity extends BaseEntity {
26317
26501
  }
26318
26502
  /**
26319
26503
  * * Field Name: CodeApprovalStatus
26320
- * * Display Name: Code Approval Status
26504
+ * * Display Name: Approval Status
26321
26505
  * * SQL Data Type: nvarchar(20)
26322
26506
  * * Default Value: Pending
26323
26507
  * * Value List Type: List
@@ -26335,7 +26519,7 @@ let MJActionEntity = class MJActionEntity extends BaseEntity {
26335
26519
  }
26336
26520
  /**
26337
26521
  * * Field Name: CodeApprovalComments
26338
- * * Display Name: Code Approval Comments
26522
+ * * Display Name: Approval Comments
26339
26523
  * * SQL Data Type: nvarchar(MAX)
26340
26524
  * * Description: Optional comments when an individual (or an AI) reviews and approves the code.
26341
26525
  */
@@ -26347,7 +26531,7 @@ let MJActionEntity = class MJActionEntity extends BaseEntity {
26347
26531
  }
26348
26532
  /**
26349
26533
  * * Field Name: CodeApprovedByUserID
26350
- * * Display Name: Code Approved By
26534
+ * * Display Name: Approved By User
26351
26535
  * * SQL Data Type: uniqueidentifier
26352
26536
  * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)
26353
26537
  */
@@ -26359,7 +26543,7 @@ let MJActionEntity = class MJActionEntity extends BaseEntity {
26359
26543
  }
26360
26544
  /**
26361
26545
  * * Field Name: CodeApprovedAt
26362
- * * Display Name: Code Approved At
26546
+ * * Display Name: Approved At
26363
26547
  * * SQL Data Type: datetimeoffset
26364
26548
  * * Description: When the code was approved.
26365
26549
  */
@@ -26457,7 +26641,7 @@ let MJActionEntity = class MJActionEntity extends BaseEntity {
26457
26641
  }
26458
26642
  /**
26459
26643
  * * Field Name: ParentID
26460
- * * Display Name: Parent
26644
+ * * Display Name: Parent Action
26461
26645
  * * SQL Data Type: uniqueidentifier
26462
26646
  * * Related Entity/Foreign Key: MJ: Actions (vwActions.ID)
26463
26647
  * * Description: Optional ID of the parent action this action inherits from. Used for hierarchical action composition where child actions can specialize parent actions.
@@ -26507,6 +26691,62 @@ let MJActionEntity = class MJActionEntity extends BaseEntity {
26507
26691
  this.Set('Config', value);
26508
26692
  }
26509
26693
  /**
26694
+ * * Field Name: RuntimeActionConfiguration
26695
+ * * Display Name: Runtime Configuration
26696
+ * * SQL Data Type: nvarchar(MAX)
26697
+ * * JSON Type: MJActionEntity_IRuntimeActionConfiguration
26698
+ * * Description: JSON blob holding configuration specific to Type='Runtime' actions: declarative permission scopes (allowedEntities, allowedActions, allowedAgents with id+name pairs), resource limits (maxMemoryMB, maxBridgeCalls), and sandbox options (additionalLibraries, debugMode). Evolvable — new keys can be introduced without schema changes. NULL for non-Runtime actions.
26699
+ */
26700
+ get RuntimeActionConfiguration() {
26701
+ return this.Get('RuntimeActionConfiguration');
26702
+ }
26703
+ set RuntimeActionConfiguration(value) {
26704
+ this.Set('RuntimeActionConfiguration', value);
26705
+ }
26706
+ /**
26707
+ * Typed accessor for RuntimeActionConfiguration — returns parsed JSON as MJActionEntity_IRuntimeActionConfiguration.
26708
+ * Uses lazy parsing with cache invalidation when the underlying raw value changes.
26709
+ */
26710
+ get RuntimeActionConfigurationObject() {
26711
+ const raw = this.RuntimeActionConfiguration;
26712
+ if (raw !== this._RuntimeActionConfigurationObject_lastRaw) {
26713
+ this._RuntimeActionConfigurationObject_cached = raw ? JSON.parse(raw) : null;
26714
+ this._RuntimeActionConfigurationObject_lastRaw = raw;
26715
+ }
26716
+ return this._RuntimeActionConfigurationObject_cached;
26717
+ }
26718
+ set RuntimeActionConfigurationObject(value) {
26719
+ const raw = value ? JSON.stringify(value) : null;
26720
+ this.RuntimeActionConfiguration = raw;
26721
+ this._RuntimeActionConfigurationObject_cached = value;
26722
+ this._RuntimeActionConfigurationObject_lastRaw = raw;
26723
+ }
26724
+ /**
26725
+ * * Field Name: MaxExecutionTimeMS
26726
+ * * Display Name: Max Execution Time (ms)
26727
+ * * SQL Data Type: int
26728
+ * * Description: Universal maximum execution time in milliseconds for a single action invocation. Enforced by ActionEngine across ALL action types (Custom, Generated, Runtime) via AbortSignal passed through RunActionParams. NULL means use the engine default.
26729
+ */
26730
+ get MaxExecutionTimeMS() {
26731
+ return this.Get('MaxExecutionTimeMS');
26732
+ }
26733
+ set MaxExecutionTimeMS(value) {
26734
+ this.Set('MaxExecutionTimeMS', value);
26735
+ }
26736
+ /**
26737
+ * * Field Name: CreatedByAgentID
26738
+ * * Display Name: Created By Agent
26739
+ * * SQL Data Type: uniqueidentifier
26740
+ * * Related Entity/Foreign Key: MJ: AI Agents (vwAIAgents.ID)
26741
+ * * Description: Optional reference to the AI Agent that authored this action — populated when an agent (e.g. ActionSmith) dynamically generates a Runtime action. NULL for human-authored Custom/Generated actions. Provides an audit trail linking agent-generated capabilities back to their creator.
26742
+ */
26743
+ get CreatedByAgentID() {
26744
+ return this.Get('CreatedByAgentID');
26745
+ }
26746
+ set CreatedByAgentID(value) {
26747
+ this.Set('CreatedByAgentID', value);
26748
+ }
26749
+ /**
26510
26750
  * * Field Name: Category
26511
26751
  * * Display Name: Category Name
26512
26752
  * * SQL Data Type: nvarchar(255)
@@ -26516,7 +26756,7 @@ let MJActionEntity = class MJActionEntity extends BaseEntity {
26516
26756
  }
26517
26757
  /**
26518
26758
  * * Field Name: CodeApprovedByUser
26519
- * * Display Name: Code Approved By (User)
26759
+ * * Display Name: Approved By User Name
26520
26760
  * * SQL Data Type: nvarchar(100)
26521
26761
  */
26522
26762
  get CodeApprovedByUser() {
@@ -26524,7 +26764,7 @@ let MJActionEntity = class MJActionEntity extends BaseEntity {
26524
26764
  }
26525
26765
  /**
26526
26766
  * * Field Name: Parent
26527
- * * Display Name: Parent Name
26767
+ * * Display Name: Parent Action Name
26528
26768
  * * SQL Data Type: nvarchar(425)
26529
26769
  */
26530
26770
  get Parent() {
@@ -26532,13 +26772,21 @@ let MJActionEntity = class MJActionEntity extends BaseEntity {
26532
26772
  }
26533
26773
  /**
26534
26774
  * * Field Name: DefaultCompactPrompt
26535
- * * Display Name: Default Compact Prompt Text
26775
+ * * Display Name: Default Compact Prompt Name
26536
26776
  * * SQL Data Type: nvarchar(255)
26537
26777
  */
26538
26778
  get DefaultCompactPrompt() {
26539
26779
  return this.Get('DefaultCompactPrompt');
26540
26780
  }
26541
26781
  /**
26782
+ * * Field Name: CreatedByAgent
26783
+ * * Display Name: Created By Agent Name
26784
+ * * SQL Data Type: nvarchar(255)
26785
+ */
26786
+ get CreatedByAgent() {
26787
+ return this.Get('CreatedByAgent');
26788
+ }
26789
+ /**
26542
26790
  * * Field Name: RootParentID
26543
26791
  * * Display Name: Root Parent
26544
26792
  * * SQL Data Type: uniqueidentifier
@@ -28236,6 +28484,7 @@ let MJAIAgentExampleEntity = class MJAIAgentExampleEntity extends BaseEntity {
28236
28484
  * * Value List Type: List
28237
28485
  * * Possible Values
28238
28486
  * * Active
28487
+ * * Archived
28239
28488
  * * Pending
28240
28489
  * * Revoked
28241
28490
  * * Description: Status of the example: Pending (awaiting review), Active (in use), or Revoked (disabled).
@@ -29134,6 +29383,7 @@ let MJAIAgentNoteEntity = class MJAIAgentNoteEntity extends BaseEntity {
29134
29383
  * * Value List Type: List
29135
29384
  * * Possible Values
29136
29385
  * * Active
29386
+ * * Archived
29137
29387
  * * Pending
29138
29388
  * * Revoked
29139
29389
  * * Description: Status of the note: Pending (awaiting review), Active (in use), or Revoked (disabled).
@@ -29296,6 +29546,75 @@ let MJAIAgentNoteEntity = class MJAIAgentNoteEntity extends BaseEntity {
29296
29546
  this.Set('ExpiresAt', value);
29297
29547
  }
29298
29548
  /**
29549
+ * * Field Name: ConsolidatedIntoNoteID
29550
+ * * Display Name: Consolidated Into Note ID
29551
+ * * SQL Data Type: uniqueidentifier
29552
+ * * Related Entity/Foreign Key: MJ: AI Agent Notes (vwAIAgentNotes.ID)
29553
+ * * Description: Self-referential FK. Points to the consolidated note that replaced this one when revoked during consolidation or contradiction resolution.
29554
+ */
29555
+ get ConsolidatedIntoNoteID() {
29556
+ return this.Get('ConsolidatedIntoNoteID');
29557
+ }
29558
+ set ConsolidatedIntoNoteID(value) {
29559
+ this.Set('ConsolidatedIntoNoteID', value);
29560
+ }
29561
+ /**
29562
+ * * Field Name: ConsolidationCount
29563
+ * * Display Name: Consolidation Count
29564
+ * * SQL Data Type: int
29565
+ * * Default Value: 0
29566
+ * * Description: Tracks re-summarization depth. 0=raw extraction, 1=first consolidation, etc. Capped at 3 to prevent semantic drift.
29567
+ */
29568
+ get ConsolidationCount() {
29569
+ return this.Get('ConsolidationCount');
29570
+ }
29571
+ set ConsolidationCount(value) {
29572
+ this.Set('ConsolidationCount', value);
29573
+ }
29574
+ /**
29575
+ * * Field Name: DerivedFromNoteIDs
29576
+ * * Display Name: Derived From Note I Ds
29577
+ * * SQL Data Type: nvarchar(MAX)
29578
+ * * Description: JSON array of source note IDs that were consolidated into this note. Enables provenance chain resolution and rollback.
29579
+ */
29580
+ get DerivedFromNoteIDs() {
29581
+ return this.Get('DerivedFromNoteIDs');
29582
+ }
29583
+ set DerivedFromNoteIDs(value) {
29584
+ this.Set('DerivedFromNoteIDs', value);
29585
+ }
29586
+ /**
29587
+ * * Field Name: ProtectionTier
29588
+ * * Display Name: Protection Tier
29589
+ * * SQL Data Type: nvarchar(20)
29590
+ * * Default Value: Standard
29591
+ * * Value List Type: List
29592
+ * * Possible Values
29593
+ * * Ephemeral
29594
+ * * Immutable
29595
+ * * Protected
29596
+ * * Standard
29597
+ * * Description: Protection level: Immutable (never consolidated/archived), Protected (no consolidation, extended 365-day retention), Standard (default), Ephemeral (aggressive consolidation, 2x decay rate).
29598
+ */
29599
+ get ProtectionTier() {
29600
+ return this.Get('ProtectionTier');
29601
+ }
29602
+ set ProtectionTier(value) {
29603
+ this.Set('ProtectionTier', value);
29604
+ }
29605
+ /**
29606
+ * * Field Name: ImportanceScore
29607
+ * * Display Name: Importance Score
29608
+ * * SQL Data Type: decimal(5, 2)
29609
+ * * Description: Composite importance score (0-10) computed from 7 signals: recency, LLM-importance, relevance, uniqueness, correction boost, goal alignment, user mark. Replaces raw AccessCount for authority and retention decisions.
29610
+ */
29611
+ get ImportanceScore() {
29612
+ return this.Get('ImportanceScore');
29613
+ }
29614
+ set ImportanceScore(value) {
29615
+ this.Set('ImportanceScore', value);
29616
+ }
29617
+ /**
29299
29618
  * * Field Name: Agent
29300
29619
  * * Display Name: Agent
29301
29620
  * * SQL Data Type: nvarchar(255)
@@ -29367,6 +29686,22 @@ let MJAIAgentNoteEntity = class MJAIAgentNoteEntity extends BaseEntity {
29367
29686
  get PrimaryScopeEntity() {
29368
29687
  return this.Get('PrimaryScopeEntity');
29369
29688
  }
29689
+ /**
29690
+ * * Field Name: ConsolidatedIntoNote
29691
+ * * Display Name: Consolidated Into Note
29692
+ * * SQL Data Type: nvarchar(MAX)
29693
+ */
29694
+ get ConsolidatedIntoNote() {
29695
+ return this.Get('ConsolidatedIntoNote');
29696
+ }
29697
+ /**
29698
+ * * Field Name: RootConsolidatedIntoNoteID
29699
+ * * Display Name: Root Consolidated Into Note ID
29700
+ * * SQL Data Type: uniqueidentifier
29701
+ */
29702
+ get RootConsolidatedIntoNoteID() {
29703
+ return this.Get('RootConsolidatedIntoNoteID');
29704
+ }
29370
29705
  };
29371
29706
  MJAIAgentNoteEntity = __decorate([
29372
29707
  RegisterClass(BaseEntity, 'MJ: AI Agent Notes')
@@ -31944,6 +32279,18 @@ each time the agent processes a prompt step.
31944
32279
  this.Set('ExternalReferenceID', value);
31945
32280
  }
31946
32281
  /**
32282
+ * * Field Name: CompanyID
32283
+ * * Display Name: Company ID
32284
+ * * SQL Data Type: uniqueidentifier
32285
+ * * Description: Optional company scope for multi-tenant memory. When populated, Memory Manager uses this to scope extracted notes to the company. Flows from ExecuteAgentParams.companyId at agent invocation time.
32286
+ */
32287
+ get CompanyID() {
32288
+ return this.Get('CompanyID');
32289
+ }
32290
+ set CompanyID(value) {
32291
+ this.Set('CompanyID', value);
32292
+ }
32293
+ /**
31947
32294
  * * Field Name: Agent
31948
32295
  * * Display Name: Agent Name
31949
32296
  * * SQL Data Type: nvarchar(255)
@@ -43057,7 +43404,7 @@ let MJArchiveRunDetailEntity = class MJArchiveRunDetailEntity extends BaseEntity
43057
43404
  }
43058
43405
  /**
43059
43406
  * * Field Name: EntityID
43060
- * * Display Name: Entity Record
43407
+ * * Display Name: Entity ID
43061
43408
  * * SQL Data Type: uniqueidentifier
43062
43409
  * * Related Entity/Foreign Key: MJ: Entities (vwEntities.ID)
43063
43410
  * * Description: Foreign key to the Entity this record belongs to.
@@ -43160,7 +43507,7 @@ let MJArchiveRunDetailEntity = class MJArchiveRunDetailEntity extends BaseEntity
43160
43507
  }
43161
43508
  /**
43162
43509
  * * Field Name: IsRecordChangeArchive
43163
- * * Display Name: Is Record Change Archive
43510
+ * * Display Name: Is Record Change
43164
43511
  * * SQL Data Type: bit
43165
43512
  * * Default Value: 0
43166
43513
  * * Description: When true, this detail row represents an archived Record Change entry rather than a primary entity record.
@@ -43190,8 +43537,16 @@ let MJArchiveRunDetailEntity = class MJArchiveRunDetailEntity extends BaseEntity
43190
43537
  return this.Get('__mj_UpdatedAt');
43191
43538
  }
43192
43539
  /**
43540
+ * * Field Name: ArchiveRun
43541
+ * * Display Name: Archive Run Timestamp
43542
+ * * SQL Data Type: datetimeoffset
43543
+ */
43544
+ get ArchiveRun() {
43545
+ return this.Get('ArchiveRun');
43546
+ }
43547
+ /**
43193
43548
  * * Field Name: Entity
43194
- * * Display Name: Entity Type
43549
+ * * Display Name: Entity Name
43195
43550
  * * SQL Data Type: nvarchar(255)
43196
43551
  */
43197
43552
  get Entity() {
@@ -55345,6 +55700,41 @@ let MJDashboardEntity = class MJDashboardEntity extends BaseEntity {
55345
55700
  return await super.InnerLoad(compositeKey, EntityRelationshipsToLoad);
55346
55701
  }
55347
55702
  /**
55703
+ * MJ: Dashboards - Delete method override to wrap in transaction since CascadeDeletes is true.
55704
+ * Wrapping in a transaction ensures that all cascade delete operations are handled atomically.
55705
+ * @public
55706
+ * @method
55707
+ * @override
55708
+ * @memberof MJDashboardEntity
55709
+ * @returns {Promise<boolean>} - true if successful, false otherwise
55710
+ */
55711
+ async Delete(options) {
55712
+ if (Metadata.Provider.ProviderType === ProviderType.Database) {
55713
+ // For database providers, use the transaction methods directly
55714
+ const provider = Metadata.Provider;
55715
+ try {
55716
+ await provider.BeginTransaction();
55717
+ const result = await super.Delete(options);
55718
+ if (result) {
55719
+ await provider.CommitTransaction();
55720
+ return true;
55721
+ }
55722
+ else {
55723
+ await provider.RollbackTransaction();
55724
+ return false;
55725
+ }
55726
+ }
55727
+ catch (error) {
55728
+ await provider.RollbackTransaction();
55729
+ throw error;
55730
+ }
55731
+ }
55732
+ else {
55733
+ // For network providers, cascading deletes are handled server-side
55734
+ return super.Delete(options);
55735
+ }
55736
+ }
55737
+ /**
55348
55738
  * * Field Name: ID
55349
55739
  * * Display Name: ID
55350
55740
  * * SQL Data Type: uniqueidentifier
@@ -62177,6 +62567,7 @@ let MJEntityPermissionEntity = class MJEntityPermissionEntity extends BaseEntity
62177
62567
  }
62178
62568
  /**
62179
62569
  * * Field Name: ID
62570
+ * * Display Name: ID
62180
62571
  * * SQL Data Type: uniqueidentifier
62181
62572
  * * Default Value: newsequentialid()
62182
62573
  */
@@ -62264,7 +62655,7 @@ let MJEntityPermissionEntity = class MJEntityPermissionEntity extends BaseEntity
62264
62655
  }
62265
62656
  /**
62266
62657
  * * Field Name: ReadRLSFilterID
62267
- * * Display Name: Read RLSFilter ID
62658
+ * * Display Name: Read Filter ID
62268
62659
  * * SQL Data Type: uniqueidentifier
62269
62660
  * * Related Entity/Foreign Key: MJ: Row Level Security Filters (vwRowLevelSecurityFilters.ID)
62270
62661
  */
@@ -62276,7 +62667,7 @@ let MJEntityPermissionEntity = class MJEntityPermissionEntity extends BaseEntity
62276
62667
  }
62277
62668
  /**
62278
62669
  * * Field Name: CreateRLSFilterID
62279
- * * Display Name: Create RLSFilter ID
62670
+ * * Display Name: Create Filter ID
62280
62671
  * * SQL Data Type: uniqueidentifier
62281
62672
  * * Related Entity/Foreign Key: MJ: Row Level Security Filters (vwRowLevelSecurityFilters.ID)
62282
62673
  */
@@ -62288,7 +62679,7 @@ let MJEntityPermissionEntity = class MJEntityPermissionEntity extends BaseEntity
62288
62679
  }
62289
62680
  /**
62290
62681
  * * Field Name: UpdateRLSFilterID
62291
- * * Display Name: Update RLSFilter ID
62682
+ * * Display Name: Update Filter ID
62292
62683
  * * SQL Data Type: uniqueidentifier
62293
62684
  * * Related Entity/Foreign Key: MJ: Row Level Security Filters (vwRowLevelSecurityFilters.ID)
62294
62685
  */
@@ -62300,7 +62691,7 @@ let MJEntityPermissionEntity = class MJEntityPermissionEntity extends BaseEntity
62300
62691
  }
62301
62692
  /**
62302
62693
  * * Field Name: DeleteRLSFilterID
62303
- * * Display Name: Delete RLSFilter ID
62694
+ * * Display Name: Delete Filter ID
62304
62695
  * * SQL Data Type: uniqueidentifier
62305
62696
  * * Related Entity/Foreign Key: MJ: Row Level Security Filters (vwRowLevelSecurityFilters.ID)
62306
62697
  */
@@ -62312,7 +62703,7 @@ let MJEntityPermissionEntity = class MJEntityPermissionEntity extends BaseEntity
62312
62703
  }
62313
62704
  /**
62314
62705
  * * Field Name: __mj_CreatedAt
62315
- * * Display Name: __mj _Created At
62706
+ * * Display Name: Created At
62316
62707
  * * SQL Data Type: datetimeoffset
62317
62708
  * * Default Value: getutcdate()
62318
62709
  */
@@ -62321,7 +62712,7 @@ let MJEntityPermissionEntity = class MJEntityPermissionEntity extends BaseEntity
62321
62712
  }
62322
62713
  /**
62323
62714
  * * Field Name: __mj_UpdatedAt
62324
- * * Display Name: __mj _Updated At
62715
+ * * Display Name: Updated At
62325
62716
  * * SQL Data Type: datetimeoffset
62326
62717
  * * Default Value: getutcdate()
62327
62718
  */
@@ -62329,6 +62720,23 @@ let MJEntityPermissionEntity = class MJEntityPermissionEntity extends BaseEntity
62329
62720
  return this.Get('__mj_UpdatedAt');
62330
62721
  }
62331
62722
  /**
62723
+ * * Field Name: Type
62724
+ * * Display Name: Access Type
62725
+ * * SQL Data Type: nvarchar(10)
62726
+ * * Default Value: Allow
62727
+ * * Value List Type: List
62728
+ * * Possible Values
62729
+ * * Allow
62730
+ * * Deny
62731
+ * * Description: Allow or Deny. Deny rows override any Allow grants on the same (EntityID, RoleID, action) at evaluation time, letting administrators exclude a role from an action another role grants.
62732
+ */
62733
+ get Type() {
62734
+ return this.Get('Type');
62735
+ }
62736
+ set Type(value) {
62737
+ this.Set('Type', value);
62738
+ }
62739
+ /**
62332
62740
  * * Field Name: Entity
62333
62741
  * * Display Name: Entity
62334
62742
  * * SQL Data Type: nvarchar(255)
@@ -62346,7 +62754,7 @@ let MJEntityPermissionEntity = class MJEntityPermissionEntity extends BaseEntity
62346
62754
  }
62347
62755
  /**
62348
62756
  * * Field Name: RoleSQLName
62349
- * * Display Name: Role SQLName
62757
+ * * Display Name: Role SQL Name
62350
62758
  * * SQL Data Type: nvarchar(250)
62351
62759
  */
62352
62760
  get RoleSQLName() {
@@ -62354,7 +62762,7 @@ let MJEntityPermissionEntity = class MJEntityPermissionEntity extends BaseEntity
62354
62762
  }
62355
62763
  /**
62356
62764
  * * Field Name: CreateRLSFilter
62357
- * * Display Name: Create RLSFilter
62765
+ * * Display Name: Create Filter
62358
62766
  * * SQL Data Type: nvarchar(100)
62359
62767
  */
62360
62768
  get CreateRLSFilter() {
@@ -62362,7 +62770,7 @@ let MJEntityPermissionEntity = class MJEntityPermissionEntity extends BaseEntity
62362
62770
  }
62363
62771
  /**
62364
62772
  * * Field Name: ReadRLSFilter
62365
- * * Display Name: Read RLSFilter
62773
+ * * Display Name: Read Filter
62366
62774
  * * SQL Data Type: nvarchar(100)
62367
62775
  */
62368
62776
  get ReadRLSFilter() {
@@ -62370,7 +62778,7 @@ let MJEntityPermissionEntity = class MJEntityPermissionEntity extends BaseEntity
62370
62778
  }
62371
62779
  /**
62372
62780
  * * Field Name: UpdateRLSFilter
62373
- * * Display Name: Update RLSFilter
62781
+ * * Display Name: Update Filter
62374
62782
  * * SQL Data Type: nvarchar(100)
62375
62783
  */
62376
62784
  get UpdateRLSFilter() {
@@ -62378,7 +62786,7 @@ let MJEntityPermissionEntity = class MJEntityPermissionEntity extends BaseEntity
62378
62786
  }
62379
62787
  /**
62380
62788
  * * Field Name: DeleteRLSFilter
62381
- * * Display Name: Delete RLSFilter
62789
+ * * Display Name: Delete Filter
62382
62790
  * * SQL Data Type: nvarchar(100)
62383
62791
  */
62384
62792
  get DeleteRLSFilter() {
@@ -68800,7 +69208,7 @@ export { MJMCPToolExecutionLogEntity };
68800
69208
  * * Schema: __mj
68801
69209
  * * Base Table: MCPToolFavorite
68802
69210
  * * Base View: vwMCPToolFavorites
68803
- * * @description Per-user favorite marker for an MCP Server Tool. Lets users star tools for quick access in the MCP Dashboard and Test dialog.
69211
+ * * @description Per-user favorite marker for an MCP Server Tool. Each row indicates the user has starred the referenced tool for quick access in the MCP Dashboard Tools tab and in the Test Tool dialog picker. Combined with UserID forms a unique pair so a user cannot favorite the same tool twice.
68804
69212
  * * Primary Key: ID
68805
69213
  * @extends {BaseEntity}
68806
69214
  * @class
@@ -68837,9 +69245,10 @@ let MJMCPToolFavoriteEntity = class MJMCPToolFavoriteEntity extends BaseEntity {
68837
69245
  }
68838
69246
  /**
68839
69247
  * * Field Name: UserID
68840
- * * Display Name: User ID
69248
+ * * Display Name: User
68841
69249
  * * SQL Data Type: uniqueidentifier
68842
69250
  * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)
69251
+ * * Description: The user who starred this tool. Favorites are per-user; multiple users can favorite the same tool independently. References the MJ User table.
68843
69252
  */
68844
69253
  get UserID() {
68845
69254
  return this.Get('UserID');
@@ -68849,9 +69258,10 @@ let MJMCPToolFavoriteEntity = class MJMCPToolFavoriteEntity extends BaseEntity {
68849
69258
  }
68850
69259
  /**
68851
69260
  * * Field Name: MCPServerToolID
68852
- * * Display Name: MCP Server Tool ID
69261
+ * * Display Name: MCP Server Tool
68853
69262
  * * SQL Data Type: uniqueidentifier
68854
69263
  * * Related Entity/Foreign Key: MJ: MCP Server Tools (vwMCPServerTools.ID)
69264
+ * * Description: The MCP Server Tool that has been favorited. Combined with UserID this forms a unique constraint so a user cannot favorite the same tool twice.
68855
69265
  */
68856
69266
  get MCPServerToolID() {
68857
69267
  return this.Get('MCPServerToolID');
@@ -68879,7 +69289,7 @@ let MJMCPToolFavoriteEntity = class MJMCPToolFavoriteEntity extends BaseEntity {
68879
69289
  }
68880
69290
  /**
68881
69291
  * * Field Name: User
68882
- * * Display Name: User
69292
+ * * Display Name: User Name
68883
69293
  * * SQL Data Type: nvarchar(100)
68884
69294
  */
68885
69295
  get User() {
@@ -68887,7 +69297,7 @@ let MJMCPToolFavoriteEntity = class MJMCPToolFavoriteEntity extends BaseEntity {
68887
69297
  }
68888
69298
  /**
68889
69299
  * * Field Name: MCPServerTool
68890
- * * Display Name: MCP Server Tool
69300
+ * * Display Name: Tool Name
68891
69301
  * * SQL Data Type: nvarchar(255)
68892
69302
  */
68893
69303
  get MCPServerTool() {
@@ -70798,6 +71208,206 @@ MJOutputTriggerTypeEntity = __decorate([
70798
71208
  RegisterClass(BaseEntity, 'MJ: Output Trigger Types')
70799
71209
  ], MJOutputTriggerTypeEntity);
70800
71210
  export { MJOutputTriggerTypeEntity };
71211
+ /**
71212
+ * MJ: Permission Domains - strongly typed entity sub-class
71213
+ * * Schema: __mj
71214
+ * * Base Table: PermissionDomain
71215
+ * * Base View: vwPermissionDomains
71216
+ * * @description Catalog of registered permission subsystems. Each row describes one permission provider; the PermissionEngine uses ProviderClassName as the ClassFactory key to instantiate providers at startup. Enables unified permission queries across all subsystems.
71217
+ * * Primary Key: ID
71218
+ * @extends {BaseEntity}
71219
+ * @class
71220
+ * @public
71221
+ */
71222
+ let MJPermissionDomainEntity = class MJPermissionDomainEntity extends BaseEntity {
71223
+ /**
71224
+ * Loads the MJ: Permission Domains record from the database
71225
+ * @param ID: string - primary key value to load the MJ: Permission Domains record.
71226
+ * @param EntityRelationshipsToLoad - (optional) the relationships to load
71227
+ * @returns {Promise<boolean>} - true if successful, false otherwise
71228
+ * @public
71229
+ * @async
71230
+ * @memberof MJPermissionDomainEntity
71231
+ * @method
71232
+ * @override
71233
+ */
71234
+ async Load(ID, EntityRelationshipsToLoad) {
71235
+ const compositeKey = new CompositeKey();
71236
+ compositeKey.KeyValuePairs.push({ FieldName: 'ID', Value: ID });
71237
+ return await super.InnerLoad(compositeKey, EntityRelationshipsToLoad);
71238
+ }
71239
+ /**
71240
+ * * Field Name: ID
71241
+ * * Display Name: ID
71242
+ * * SQL Data Type: uniqueidentifier
71243
+ * * Default Value: newsequentialid()
71244
+ */
71245
+ get ID() {
71246
+ return this.Get('ID');
71247
+ }
71248
+ set ID(value) {
71249
+ this.Set('ID', value);
71250
+ }
71251
+ /**
71252
+ * * Field Name: Name
71253
+ * * Display Name: Name
71254
+ * * SQL Data Type: nvarchar(200)
71255
+ * * Description: Human-readable unique name for the permission domain (e.g., "Entity Permissions", "Dashboard Permissions"). Used in admin UI and as the domain identifier in PermissionEngine API calls.
71256
+ */
71257
+ get Name() {
71258
+ return this.Get('Name');
71259
+ }
71260
+ set Name(value) {
71261
+ this.Set('Name', value);
71262
+ }
71263
+ /**
71264
+ * * Field Name: Description
71265
+ * * Display Name: Description
71266
+ * * SQL Data Type: nvarchar(MAX)
71267
+ * * Description: Detailed description of what this permission domain covers and how permissions are enforced.
71268
+ */
71269
+ get Description() {
71270
+ return this.Get('Description');
71271
+ }
71272
+ set Description(value) {
71273
+ this.Set('Description', value);
71274
+ }
71275
+ /**
71276
+ * * Field Name: ProviderClassName
71277
+ * * Display Name: Provider Class Name
71278
+ * * SQL Data Type: nvarchar(500)
71279
+ * * Description: ClassFactory key used to instantiate this provider. Must match the key passed to @RegisterClass(PermissionProviderBase, 'ClassName'). Convention: prefix with MJ for built-in providers (e.g., MJEntityPermissionProvider).
71280
+ */
71281
+ get ProviderClassName() {
71282
+ return this.Get('ProviderClassName');
71283
+ }
71284
+ set ProviderClassName(value) {
71285
+ this.Set('ProviderClassName', value);
71286
+ }
71287
+ /**
71288
+ * * Field Name: SupportedGranteeTypes
71289
+ * * Display Name: Supported Grantee Types
71290
+ * * SQL Data Type: nvarchar(200)
71291
+ * * Description: Comma-delimited list of grantee types this provider supports. Valid tokens: User, Role, Everyone, Public. Example: "User,Role".
71292
+ */
71293
+ get SupportedGranteeTypes() {
71294
+ return this.Get('SupportedGranteeTypes');
71295
+ }
71296
+ set SupportedGranteeTypes(value) {
71297
+ this.Set('SupportedGranteeTypes', value);
71298
+ }
71299
+ /**
71300
+ * * Field Name: SupportedActions
71301
+ * * Display Name: Supported Actions
71302
+ * * SQL Data Type: nvarchar(500)
71303
+ * * Description: Comma-delimited list of permission actions this provider can evaluate. Valid tokens: Read, Create, Update, Delete, Share, Execute, Admin. Example: "Read,Create,Update,Delete".
71304
+ */
71305
+ get SupportedActions() {
71306
+ return this.Get('SupportedActions');
71307
+ }
71308
+ set SupportedActions(value) {
71309
+ this.Set('SupportedActions', value);
71310
+ }
71311
+ /**
71312
+ * * Field Name: SupportsDeny
71313
+ * * Display Name: Supports Deny
71314
+ * * SQL Data Type: bit
71315
+ * * Default Value: 0
71316
+ * * Description: When true, this provider supports explicit Deny records that override Allow grants at the same scope.
71317
+ */
71318
+ get SupportsDeny() {
71319
+ return this.Get('SupportsDeny');
71320
+ }
71321
+ set SupportsDeny(value) {
71322
+ this.Set('SupportsDeny', value);
71323
+ }
71324
+ /**
71325
+ * * Field Name: SupportsExpiration
71326
+ * * Display Name: Supports Expiration
71327
+ * * SQL Data Type: bit
71328
+ * * Default Value: 0
71329
+ * * Description: When true, this provider supports time-bound permissions with an expiration timestamp.
71330
+ */
71331
+ get SupportsExpiration() {
71332
+ return this.Get('SupportsExpiration');
71333
+ }
71334
+ set SupportsExpiration(value) {
71335
+ this.Set('SupportsExpiration', value);
71336
+ }
71337
+ /**
71338
+ * * Field Name: SupportsHierarchyInheritance
71339
+ * * Display Name: Supports Hierarchy Inheritance
71340
+ * * SQL Data Type: bit
71341
+ * * Default Value: 0
71342
+ * * Description: When true, this provider resolves permissions hierarchically (e.g., category-level grants cascade to items within the category).
71343
+ */
71344
+ get SupportsHierarchyInheritance() {
71345
+ return this.Get('SupportsHierarchyInheritance');
71346
+ }
71347
+ set SupportsHierarchyInheritance(value) {
71348
+ this.Set('SupportsHierarchyInheritance', value);
71349
+ }
71350
+ /**
71351
+ * * Field Name: IsActive
71352
+ * * Display Name: Is Active
71353
+ * * SQL Data Type: bit
71354
+ * * Default Value: 1
71355
+ * * Description: When false, the PermissionEngine skips loading this provider at startup. Use to temporarily disable a provider without removing its record.
71356
+ */
71357
+ get IsActive() {
71358
+ return this.Get('IsActive');
71359
+ }
71360
+ set IsActive(value) {
71361
+ this.Set('IsActive', value);
71362
+ }
71363
+ /**
71364
+ * * Field Name: DisplayOrder
71365
+ * * Display Name: Display Order
71366
+ * * SQL Data Type: int
71367
+ * * Default Value: 100
71368
+ * * Description: Sort order for displaying domains in the Sharing Center admin UI. Lower numbers appear first.
71369
+ */
71370
+ get DisplayOrder() {
71371
+ return this.Get('DisplayOrder');
71372
+ }
71373
+ set DisplayOrder(value) {
71374
+ this.Set('DisplayOrder', value);
71375
+ }
71376
+ /**
71377
+ * * Field Name: Icon
71378
+ * * Display Name: Icon
71379
+ * * SQL Data Type: nvarchar(100)
71380
+ * * Description: Optional Font Awesome icon class for display in admin UI (e.g., "fa-solid fa-shield").
71381
+ */
71382
+ get Icon() {
71383
+ return this.Get('Icon');
71384
+ }
71385
+ set Icon(value) {
71386
+ this.Set('Icon', value);
71387
+ }
71388
+ /**
71389
+ * * Field Name: __mj_CreatedAt
71390
+ * * Display Name: Created At
71391
+ * * SQL Data Type: datetimeoffset
71392
+ * * Default Value: getutcdate()
71393
+ */
71394
+ get __mj_CreatedAt() {
71395
+ return this.Get('__mj_CreatedAt');
71396
+ }
71397
+ /**
71398
+ * * Field Name: __mj_UpdatedAt
71399
+ * * Display Name: Updated At
71400
+ * * SQL Data Type: datetimeoffset
71401
+ * * Default Value: getutcdate()
71402
+ */
71403
+ get __mj_UpdatedAt() {
71404
+ return this.Get('__mj_UpdatedAt');
71405
+ }
71406
+ };
71407
+ MJPermissionDomainEntity = __decorate([
71408
+ RegisterClass(BaseEntity, 'MJ: Permission Domains')
71409
+ ], MJPermissionDomainEntity);
71410
+ export { MJPermissionDomainEntity };
70801
71411
  /**
70802
71412
  * MJ: Projects - strongly typed entity sub-class
70803
71413
  * * Schema: __mj
@@ -76145,7 +76755,7 @@ let MJResourcePermissionEntity = class MJResourcePermissionEntity extends BaseEn
76145
76755
  }
76146
76756
  /**
76147
76757
  * * Field Name: ResourceRecordID
76148
- * * Display Name: Resource Record ID
76758
+ * * Display Name: Resource Record
76149
76759
  * * SQL Data Type: nvarchar(255)
76150
76760
  * * Description: ID of the specific resource being shared
76151
76761
  */
@@ -76157,7 +76767,7 @@ let MJResourcePermissionEntity = class MJResourcePermissionEntity extends BaseEn
76157
76767
  }
76158
76768
  /**
76159
76769
  * * Field Name: Type
76160
- * * Display Name: Type
76770
+ * * Display Name: Share Type
76161
76771
  * * SQL Data Type: nvarchar(10)
76162
76772
  * * Value List Type: List
76163
76773
  * * Possible Values
@@ -76173,7 +76783,7 @@ let MJResourcePermissionEntity = class MJResourcePermissionEntity extends BaseEn
76173
76783
  }
76174
76784
  /**
76175
76785
  * * Field Name: StartSharingAt
76176
- * * Display Name: Start Sharing At
76786
+ * * Display Name: Start Date
76177
76787
  * * SQL Data Type: datetimeoffset
76178
76788
  * * Description: Optional: Date when sharing starts
76179
76789
  */
@@ -76185,7 +76795,7 @@ let MJResourcePermissionEntity = class MJResourcePermissionEntity extends BaseEn
76185
76795
  }
76186
76796
  /**
76187
76797
  * * Field Name: EndSharingAt
76188
- * * Display Name: End Sharing At
76798
+ * * Display Name: End Date
76189
76799
  * * SQL Data Type: datetimeoffset
76190
76800
  * * Description: Optional: Date when sharing ends
76191
76801
  */
@@ -76274,6 +76884,19 @@ let MJResourcePermissionEntity = class MJResourcePermissionEntity extends BaseEn
76274
76884
  this.Set('Status', value);
76275
76885
  }
76276
76886
  /**
76887
+ * * Field Name: SharedByUserID
76888
+ * * Display Name: Shared By User ID
76889
+ * * SQL Data Type: uniqueidentifier
76890
+ * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)
76891
+ * * Description: The user who granted this permission. NULL when the share pre-dates this column or when the grantor is unknown (e.g., a system-seeded permission).
76892
+ */
76893
+ get SharedByUserID() {
76894
+ return this.Get('SharedByUserID');
76895
+ }
76896
+ set SharedByUserID(value) {
76897
+ this.Set('SharedByUserID', value);
76898
+ }
76899
+ /**
76277
76900
  * * Field Name: ResourceType
76278
76901
  * * Display Name: Resource Type
76279
76902
  * * SQL Data Type: nvarchar(255)
@@ -76297,6 +76920,14 @@ let MJResourcePermissionEntity = class MJResourcePermissionEntity extends BaseEn
76297
76920
  get User() {
76298
76921
  return this.Get('User');
76299
76922
  }
76923
+ /**
76924
+ * * Field Name: SharedByUser
76925
+ * * Display Name: Shared By User
76926
+ * * SQL Data Type: nvarchar(100)
76927
+ */
76928
+ get SharedByUser() {
76929
+ return this.Get('SharedByUser');
76930
+ }
76300
76931
  };
76301
76932
  MJResourcePermissionEntity = __decorate([
76302
76933
  RegisterClass(BaseEntity, 'MJ: Resource Permissions')