@memberjunction/core-entities 5.48.0 → 5.49.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.
@@ -2688,7 +2688,7 @@ export const MJAIAgentRunStepSchema = z.object({
2688
2688
  * * Display Name: Step Number
2689
2689
  * * SQL Data Type: int
2690
2690
  * * Description: Sequential number of this step within the agent run, starting from 1`),
2691
- StepType: z.union([z.literal('Actions'), z.literal('Chat'), z.literal('Decision'), z.literal('ForEach'), z.literal('Plan'), z.literal('Prompt'), z.literal('Skill'), z.literal('Sub-Agent'), z.literal('Tool'), z.literal('Validation'), z.literal('While')]).describe(`
2691
+ StepType: z.union([z.literal('Actions'), z.literal('Chat'), z.literal('Compaction'), z.literal('Decision'), z.literal('ForEach'), z.literal('Plan'), z.literal('Prompt'), z.literal('Skill'), z.literal('Sub-Agent'), z.literal('Tool'), z.literal('Validation'), z.literal('While')]).describe(`
2692
2692
  * * Field Name: StepType
2693
2693
  * * Display Name: Step Type
2694
2694
  * * SQL Data Type: nvarchar(50)
@@ -2697,6 +2697,7 @@ export const MJAIAgentRunStepSchema = z.object({
2697
2697
  * * Possible Values
2698
2698
  * * Actions
2699
2699
  * * Chat
2700
+ * * Compaction
2700
2701
  * * Decision
2701
2702
  * * ForEach
2702
2703
  * * Plan
@@ -4018,7 +4019,7 @@ export const MJAIAgentTypeSchema = z.object({
4018
4019
  * * Description: Reference to the AI Prompt that contains the system-level instructions for all agents of this type. This prompt will be blended with individual agent prompts.`),
4019
4020
  IsActive: z.boolean().describe(`
4020
4021
  * * Field Name: IsActive
4021
- * * Display Name: Is Active
4022
+ * * Display Name: Active
4022
4023
  * * SQL Data Type: bit
4023
4024
  * * Default Value: 1
4024
4025
  * * Description: Indicates whether this agent type is available for use. Inactive types cannot be assigned to new agents.`),
@@ -4060,7 +4061,7 @@ export const MJAIAgentTypeSchema = z.object({
4060
4061
  * * Description: Determines whether the custom form section (specified by UIFormSectionClass) should be expanded by default when the AI Agent form loads. True means the section starts expanded, False means it starts collapsed. Only applies when UIFormSectionClass is specified. Defaults to 1 (expanded).`),
4061
4062
  PromptParamsSchema: z.string().nullable().describe(`
4062
4063
  * * Field Name: PromptParamsSchema
4063
- * * Display Name: Prompt Parameters Schema
4064
+ * * Display Name: Prompt Params Schema
4064
4065
  * * SQL Data Type: nvarchar(MAX)
4065
4066
  * * Description: JSON Schema defining the available prompt parameters for this agent type. Includes property definitions with types, defaults, and descriptions. Used by agents of this type to customize which prompt sections are included in the system prompt. The schema follows JSON Schema draft-07 format.`),
4066
4067
  AssignmentStrategy: z.string().nullable().describe(`
@@ -4070,13 +4071,13 @@ export const MJAIAgentTypeSchema = z.object({
4070
4071
  * * Description: JSON-serialized AgentRequestAssignmentStrategy defining the default assignment strategy for all agents of this type. Overridden by per-invocation or category-level strategies in the resolution chain.`),
4071
4072
  DefaultStorageAccountID: z.string().nullable().describe(`
4072
4073
  * * Field Name: DefaultStorageAccountID
4073
- * * Display Name: Default Storage Account
4074
+ * * Display Name: Default Storage Account ID
4074
4075
  * * SQL Data Type: uniqueidentifier
4075
4076
  * * Related Entity/Foreign Key: MJ: File Storage Accounts (vwFileStorageAccounts.ID)
4076
4077
  * * Description: Default file storage account for agents of this type. Lowest priority in the resolution chain (Type → Category tree → Agent → Runtime override). When set, all agents of this type use this storage account unless overridden at a more specific level. FK to FileStorageAccount.`),
4077
4078
  ConfigSchema: z.string().nullable().describe(`
4078
4079
  * * Field Name: ConfigSchema
4079
- * * Display Name: Configuration Schema
4080
+ * * Display Name: Config Schema
4080
4081
  * * SQL Data Type: nvarchar(MAX)
4081
4082
  * * Description: JSON Schema (draft-07) describing the shape of TypeConfiguration payloads on agents of this type. When present, agent saves validate their TypeConfiguration against it server-side (MJAIAgentEntityServer.ValidateAsync); null = TypeConfiguration is freeform for this type.`),
4082
4083
  DefaultConfiguration: z.string().nullable().describe(`
@@ -4084,14 +4085,61 @@ export const MJAIAgentTypeSchema = z.object({
4084
4085
  * * Display Name: Default Configuration
4085
4086
  * * SQL Data Type: nvarchar(MAX)
4086
4087
  * * Description: Type-level DEFAULT configuration JSON for agents of this type — the base layer of the effective-configuration merge: type DefaultConfiguration <- agent TypeConfiguration <- runtime overrides (later layers win per key, deep-merged). Must itself conform to ConfigSchema when one is published. Null = no type defaults.`),
4088
+ ContextCompressionMessageThreshold: z.number().nullable().describe(`
4089
+ * * Field Name: ContextCompressionMessageThreshold
4090
+ * * Display Name: Context Compression Message Threshold
4091
+ * * SQL Data Type: int
4092
+ * * Description: Type-level default for the in-turn context-compression message-count threshold. Overridable per agent via AIAgent.ContextCompressionMessageThreshold.`),
4093
+ ContextCompressionPromptID: z.string().nullable().describe(`
4094
+ * * Field Name: ContextCompressionPromptID
4095
+ * * Display Name: Context Compression Prompt ID
4096
+ * * SQL Data Type: uniqueidentifier
4097
+ * * Related Entity/Foreign Key: MJ: AI Prompts (vwAIPrompts.ID)
4098
+ * * Description: Type-level default prompt used for in-turn context compression. Overridable per agent via AIAgent.ContextCompressionPromptID.`),
4099
+ ContextCompressionMessageRetentionCount: z.number().nullable().describe(`
4100
+ * * Field Name: ContextCompressionMessageRetentionCount
4101
+ * * Display Name: Context Compression Message Retention Count
4102
+ * * SQL Data Type: int
4103
+ * * Description: Type-level default for the number of most-recent messages kept uncompressed (the "hot tail") when context compression is applied. Overridable per agent via AIAgent.ContextCompressionMessageRetentionCount.`),
4104
+ ContextWindowMaxTokens: z.number().nullable().describe(`
4105
+ * * Field Name: ContextWindowMaxTokens
4106
+ * * Display Name: Context Window Max Tokens
4107
+ * * SQL Data Type: int
4108
+ * * Description: Type-level default effective working-context budget, in tokens. Null means use the selected model's MaxInputTokens. The resolved value is clamped to the model's limit at runtime (a warning is logged if it would exceed it). Overridable per agent via AIAgent.ContextWindowMaxTokens.`),
4109
+ CompactionTriggerPercent: z.number().describe(`
4110
+ * * Field Name: CompactionTriggerPercent
4111
+ * * Display Name: Compaction Trigger Percent
4112
+ * * SQL Data Type: int
4113
+ * * Default Value: 75
4114
+ * * Description: Type-level default: the percentage of the effective context budget at which cross-turn conversation compaction is triggered. Defaults to 75. Overridable per agent via AIAgent.CompactionTriggerPercent.`),
4115
+ CompactionTargetPercent: z.number().describe(`
4116
+ * * Field Name: CompactionTargetPercent
4117
+ * * Display Name: Compaction Target Percent
4118
+ * * SQL Data Type: int
4119
+ * * Default Value: 30
4120
+ * * Description: Type-level default: the target percentage of the effective context budget to reduce to after a cross-turn compaction. Defaults to 30. Overridable per agent via AIAgent.CompactionTargetPercent.`),
4121
+ ConversationSummaryPromptID: z.string().nullable().describe(`
4122
+ * * Field Name: ConversationSummaryPromptID
4123
+ * * Display Name: Conversation Summary Prompt ID
4124
+ * * SQL Data Type: uniqueidentifier
4125
+ * * Related Entity/Foreign Key: MJ: AI Prompts (vwAIPrompts.ID)
4126
+ * * Description: Type-level default prompt used for cross-turn conversation compaction (the durable summary baseline). Distinct from ContextCompressionPromptID, which governs in-turn compression. Overridable per agent via AIAgent.ConversationSummaryPromptID.`),
4087
4127
  SystemPrompt: z.string().nullable().describe(`
4088
4128
  * * Field Name: SystemPrompt
4089
- * * Display Name: System Prompt Content
4129
+ * * Display Name: System Prompt
4090
4130
  * * SQL Data Type: nvarchar(255)`),
4091
4131
  DefaultStorageAccount: z.string().nullable().describe(`
4092
4132
  * * Field Name: DefaultStorageAccount
4093
- * * Display Name: Default Storage Account Name
4133
+ * * Display Name: Default Storage Account
4094
4134
  * * SQL Data Type: nvarchar(200)`),
4135
+ ContextCompressionPrompt: z.string().nullable().describe(`
4136
+ * * Field Name: ContextCompressionPrompt
4137
+ * * Display Name: Context Compression Prompt
4138
+ * * SQL Data Type: nvarchar(255)`),
4139
+ ConversationSummaryPrompt: z.string().nullable().describe(`
4140
+ * * Field Name: ConversationSummaryPrompt
4141
+ * * Display Name: Conversation Summary Prompt
4142
+ * * SQL Data Type: nvarchar(255)`),
4095
4143
  });
4096
4144
  /**
4097
4145
  * zod schema definition for the entity MJ: AI Agents
@@ -4130,7 +4178,7 @@ export const MJAIAgentSchema = z.object({
4130
4178
  * * Default Value: getutcdate()`),
4131
4179
  ParentID: z.string().nullable().describe(`
4132
4180
  * * Field Name: ParentID
4133
- * * Display Name: Parent Agent
4181
+ * * Display Name: Parent
4134
4182
  * * SQL Data Type: uniqueidentifier
4135
4183
  * * Related Entity/Foreign Key: MJ: AI Agents (vwAIAgents.ID)
4136
4184
  * * Description: References the parent agent in the hierarchical structure. If NULL, this is a root (top-level) agent.`),
@@ -4164,22 +4212,22 @@ export const MJAIAgentSchema = z.object({
4164
4212
  * * Description: When true, enables automatic compression of conversation context when the message threshold is reached.`),
4165
4213
  ContextCompressionMessageThreshold: z.number().nullable().describe(`
4166
4214
  * * Field Name: ContextCompressionMessageThreshold
4167
- * * Display Name: Compression Message Threshold
4215
+ * * Display Name: Context Compression Message Threshold
4168
4216
  * * SQL Data Type: int
4169
4217
  * * Description: Number of messages that triggers context compression when EnableContextCompression is true.`),
4170
4218
  ContextCompressionPromptID: z.string().nullable().describe(`
4171
4219
  * * Field Name: ContextCompressionPromptID
4172
- * * Display Name: Compression Prompt
4220
+ * * Display Name: Context Compression Prompt ID
4173
4221
  * * SQL Data Type: uniqueidentifier
4174
4222
  * * Related Entity/Foreign Key: MJ: AI Prompts (vwAIPrompts.ID)`),
4175
4223
  ContextCompressionMessageRetentionCount: z.number().nullable().describe(`
4176
4224
  * * Field Name: ContextCompressionMessageRetentionCount
4177
- * * Display Name: Compression Retention Count
4225
+ * * Display Name: Context Compression Message Retention Count
4178
4226
  * * SQL Data Type: int
4179
4227
  * * Description: Number of recent messages to keep uncompressed when context compression is applied.`),
4180
4228
  TypeID: z.string().nullable().describe(`
4181
4229
  * * Field Name: TypeID
4182
- * * Display Name: Agent Type
4230
+ * * Display Name: Type
4183
4231
  * * SQL Data Type: uniqueidentifier
4184
4232
  * * Related Entity/Foreign Key: MJ: AI Agent Types (vwAIAgentTypes.ID)
4185
4233
  * * Description: Reference to the AIAgentType that defines the category and system-level behavior for this agent. Cannot be null.`),
@@ -4216,25 +4264,25 @@ export const MJAIAgentSchema = z.object({
4216
4264
  * * Description: Controls whether model selection is driven by the Agent Type's system prompt or the Agent's specific prompt. Default is Agent Type for backward compatibility.`),
4217
4265
  PayloadDownstreamPaths: z.string().describe(`
4218
4266
  * * Field Name: PayloadDownstreamPaths
4219
- * * Display Name: Downstream Payload Paths
4267
+ * * Display Name: Payload Downstream Paths
4220
4268
  * * SQL Data Type: nvarchar(MAX)
4221
4269
  * * Default Value: ["*"]
4222
4270
  * * Description: JSON array of paths that define which parts of the payload should be sent downstream to sub-agents. Use ["*"] to send entire payload, or specify paths like ["customer.id", "campaign.*", "analysis.sentiment"]`),
4223
4271
  PayloadUpstreamPaths: z.string().describe(`
4224
4272
  * * Field Name: PayloadUpstreamPaths
4225
- * * Display Name: Upstream Payload Paths
4273
+ * * Display Name: Payload Upstream Paths
4226
4274
  * * SQL Data Type: nvarchar(MAX)
4227
4275
  * * Default Value: ["*"]
4228
4276
  * * Description: JSON array of paths that define which parts of the payload sub-agents are allowed to write back upstream. Use ["*"] to allow all writes, or specify paths like ["analysis.results", "recommendations.*"]`),
4229
4277
  PayloadSelfReadPaths: z.string().nullable().describe(`
4230
4278
  * * Field Name: PayloadSelfReadPaths
4231
- * * Display Name: Self-Read Payload Paths
4279
+ * * Display Name: Payload Self Read Paths
4232
4280
  * * SQL Data Type: nvarchar(MAX)
4233
4281
  * * Description: JSON array of paths that specify what parts of the payload the agent's own prompt can read. Controls downstream data
4234
4282
  flow when the agent executes its own prompt step.`),
4235
4283
  PayloadSelfWritePaths: z.string().nullable().describe(`
4236
4284
  * * Field Name: PayloadSelfWritePaths
4237
- * * Display Name: Self-Write Payload Paths
4285
+ * * Display Name: Payload Self Write Paths
4238
4286
  * * SQL Data Type: nvarchar(MAX)
4239
4287
  * * Description: JSON array of paths that specify what parts of the payload the agent's own prompt can write back. Controls upstream
4240
4288
  data flow when the agent executes its own prompt step.`),
@@ -4250,7 +4298,7 @@ data flow when the agent executes its own prompt step.`),
4250
4298
  * * Description: Optional JSON schema or requirements that define the expected structure and content of the agent's final payload. Used to validate the output when the agent declares success. Similar to OutputExample in AI Prompts.`),
4251
4299
  FinalPayloadValidationMode: z.union([z.literal('Fail'), z.literal('Retry'), z.literal('Warn')]).describe(`
4252
4300
  * * Field Name: FinalPayloadValidationMode
4253
- * * Display Name: Final Validation Mode
4301
+ * * Display Name: Final Payload Validation Mode
4254
4302
  * * SQL Data Type: nvarchar(25)
4255
4303
  * * Default Value: Retry
4256
4304
  * * Value List Type: List
@@ -4261,7 +4309,7 @@ data flow when the agent executes its own prompt step.`),
4261
4309
  * * Description: Determines how to handle validation failures when FinalPayloadValidation is specified. Options: Retry (default) - retry the agent with validation feedback, Fail - fail the agent run immediately, Warn - log a warning but allow success.`),
4262
4310
  FinalPayloadValidationMaxRetries: z.number().describe(`
4263
4311
  * * Field Name: FinalPayloadValidationMaxRetries
4264
- * * Display Name: Final Validation Max Retries
4312
+ * * Display Name: Final Payload Validation Max Retries
4265
4313
  * * SQL Data Type: int
4266
4314
  * * Default Value: 3
4267
4315
  * * Description: Maximum number of retry attempts allowed when FinalPayloadValidation fails with
@@ -4307,7 +4355,7 @@ if this limit is exceeded.`),
4307
4355
  * * Description: Optional JSON schema validation to apply to the input payload before agent execution begins. Uses the same JSONValidator format as FinalPayloadValidation.`),
4308
4356
  StartingPayloadValidationMode: z.union([z.literal('Fail'), z.literal('Warn')]).describe(`
4309
4357
  * * Field Name: StartingPayloadValidationMode
4310
- * * Display Name: Starting Validation Mode
4358
+ * * Display Name: Starting Payload Validation Mode
4311
4359
  * * SQL Data Type: nvarchar(25)
4312
4360
  * * Default Value: Fail
4313
4361
  * * Value List Type: List
@@ -4338,7 +4386,7 @@ if this limit is exceeded.`),
4338
4386
  * * Description: Default artifact type produced by this agent. This is the primary artifact type; additional artifact types can be linked via AIAgentArtifactType junction table. Can be NULL if agent does not produce artifacts by default.`),
4339
4387
  OwnerUserID: z.string().describe(`
4340
4388
  * * Field Name: OwnerUserID
4341
- * * Display Name: Owner
4389
+ * * Display Name: Owner User
4342
4390
  * * SQL Data Type: uniqueidentifier
4343
4391
  * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)
4344
4392
  * * Default Value: ECAFCCEC-6A37-EF11-86D4-000D3A4E707E
@@ -4462,7 +4510,7 @@ if this limit is exceeded.`),
4462
4510
  * * Description: File size threshold for inline storage. Files <= this size are stored as base64 inline, larger files use MJStorage. NULL uses system default (1MB). Set to 0 to always use MJStorage.`),
4463
4511
  AgentTypePromptParams: z.string().nullable().describe(`
4464
4512
  * * Field Name: AgentTypePromptParams
4465
- * * Display Name: Prompt Parameters
4513
+ * * Display Name: Agent Type Prompt Params
4466
4514
  * * SQL Data Type: nvarchar(MAX)
4467
4515
  * * Description: JSON object containing parameter values that customize how this agent's type-level system prompt is rendered. The schema is defined by the agent type's PromptParamsSchema field. Allows per-agent control over which prompt sections are included, enabling token savings by excluding unused documentation.`),
4468
4516
  ScopeConfig: z.string().nullable().describe(`
@@ -4600,13 +4648,34 @@ if this limit is exceeded.`),
4600
4648
  * * SQL Data Type: bit
4601
4649
  * * Default Value: 0
4602
4650
  * * Description: When 1, every root-level run of this agent executes in plan mode regardless of the per-request planMode flag — the agent must present a plan and receive human approval before any Actions or Sub-Agent steps execute. SupportsPlanMode is irrelevant when this is set. Use for high-consequence agents (e.g. ones with outbound-communication capabilities) where human-in-the-loop review is mandatory.`),
4651
+ ContextWindowMaxTokens: z.number().nullable().describe(`
4652
+ * * Field Name: ContextWindowMaxTokens
4653
+ * * Display Name: Context Window Max Tokens
4654
+ * * SQL Data Type: int
4655
+ * * Description: Per-agent override for the effective working-context budget, in tokens. Null inherits the agent type's value (which, if also null, falls back to the selected model's MaxInputTokens). The resolved value is clamped to the model's limit at runtime.`),
4656
+ CompactionTriggerPercent: z.number().nullable().describe(`
4657
+ * * Field Name: CompactionTriggerPercent
4658
+ * * Display Name: Compaction Trigger Percent
4659
+ * * SQL Data Type: int
4660
+ * * Description: Per-agent override for the cross-turn compaction trigger percentage. Null inherits the agent type's value.`),
4661
+ CompactionTargetPercent: z.number().nullable().describe(`
4662
+ * * Field Name: CompactionTargetPercent
4663
+ * * Display Name: Compaction Target Percent
4664
+ * * SQL Data Type: int
4665
+ * * Description: Per-agent override for the cross-turn compaction target percentage. Null inherits the agent type's value.`),
4666
+ ConversationSummaryPromptID: z.string().nullable().describe(`
4667
+ * * Field Name: ConversationSummaryPromptID
4668
+ * * Display Name: Conversation Summary Prompt ID
4669
+ * * SQL Data Type: uniqueidentifier
4670
+ * * Related Entity/Foreign Key: MJ: AI Prompts (vwAIPrompts.ID)
4671
+ * * Description: Per-agent override for the cross-turn conversation compaction prompt. Null inherits the agent type's value.`),
4603
4672
  Parent: z.string().nullable().describe(`
4604
4673
  * * Field Name: Parent
4605
- * * Display Name: Parent Agent Name
4674
+ * * Display Name: Parent
4606
4675
  * * SQL Data Type: nvarchar(255)`),
4607
4676
  ContextCompressionPrompt: z.string().nullable().describe(`
4608
4677
  * * Field Name: ContextCompressionPrompt
4609
- * * Display Name: Compression Prompt Name
4678
+ * * Display Name: Context Compression Prompt
4610
4679
  * * SQL Data Type: nvarchar(255)`),
4611
4680
  Type: z.string().nullable().describe(`
4612
4681
  * * Field Name: Type
@@ -4614,11 +4683,11 @@ if this limit is exceeded.`),
4614
4683
  * * SQL Data Type: nvarchar(100)`),
4615
4684
  DefaultArtifactType: z.string().nullable().describe(`
4616
4685
  * * Field Name: DefaultArtifactType
4617
- * * Display Name: Default Artifact Type Name
4686
+ * * Display Name: Default Artifact Type
4618
4687
  * * SQL Data Type: nvarchar(100)`),
4619
4688
  OwnerUser: z.string().describe(`
4620
4689
  * * Field Name: OwnerUser
4621
- * * Display Name: Owner Name
4690
+ * * Display Name: Owner User
4622
4691
  * * SQL Data Type: nvarchar(100)`),
4623
4692
  AttachmentStorageProvider: z.string().nullable().describe(`
4624
4693
  * * Field Name: AttachmentStorageProvider
@@ -4626,7 +4695,7 @@ if this limit is exceeded.`),
4626
4695
  * * SQL Data Type: nvarchar(50)`),
4627
4696
  Category: z.string().nullable().describe(`
4628
4697
  * * Field Name: Category
4629
- * * Display Name: Category Name
4698
+ * * Display Name: Category
4630
4699
  * * SQL Data Type: nvarchar(200)`),
4631
4700
  DefaultStorageAccount: z.string().nullable().describe(`
4632
4701
  * * Field Name: DefaultStorageAccount
@@ -4644,13 +4713,17 @@ if this limit is exceeded.`),
4644
4713
  * * Field Name: DefaultMediaCollection
4645
4714
  * * Display Name: Default Media Collection Name
4646
4715
  * * SQL Data Type: nvarchar(255)`),
4716
+ ConversationSummaryPrompt: z.string().nullable().describe(`
4717
+ * * Field Name: ConversationSummaryPrompt
4718
+ * * Display Name: Conversation Summary Prompt
4719
+ * * SQL Data Type: nvarchar(255)`),
4647
4720
  RootParentID: z.string().nullable().describe(`
4648
4721
  * * Field Name: RootParentID
4649
- * * Display Name: Root Parent
4722
+ * * Display Name: Root Parent ID
4650
4723
  * * SQL Data Type: uniqueidentifier`),
4651
4724
  RootDefaultCoAgentID: z.string().nullable().describe(`
4652
4725
  * * Field Name: RootDefaultCoAgentID
4653
- * * Display Name: Root Default Co-Agent
4726
+ * * Display Name: Root Default Co-Agent ID
4654
4727
  * * SQL Data Type: uniqueidentifier`),
4655
4728
  });
4656
4729
  /**
@@ -12836,7 +12909,7 @@ export const MJConversationDetailSchema = z.object({
12836
12909
  * * Description: Error message if this conversation turn encountered a problem.`),
12837
12910
  HiddenToUser: z.boolean().describe(`
12838
12911
  * * Field Name: HiddenToUser
12839
- * * Display Name: Hidden to User
12912
+ * * Display Name: Hidden To User
12840
12913
  * * SQL Data Type: bit
12841
12914
  * * Default Value: 0
12842
12915
  * * Description: Flag indicating if this message should be hidden from end users (system messages, function calls, etc.).`),
@@ -12867,30 +12940,30 @@ export const MJConversationDetailSchema = z.object({
12867
12940
  * * Description: This column stores human or AI-generated reflections on how to improve future responses based on the user feedback and the AI output generated for prior messages in the conversation.`),
12868
12941
  SummaryOfEarlierConversation: z.string().nullable().describe(`
12869
12942
  * * Field Name: SummaryOfEarlierConversation
12870
- * * Display Name: Summary of Earlier Conversation
12943
+ * * Display Name: Summary Of Earlier Conversation
12871
12944
  * * SQL Data Type: nvarchar(MAX)
12872
12945
  * * Description: This column optionally stores a summary of the entire conversation leading up to this particular conversation detail record. It is used in long-running conversations to optimize performance by summarizing earlier parts.`),
12873
12946
  UserID: z.string().nullable().describe(`
12874
12947
  * * Field Name: UserID
12875
- * * Display Name: User ID
12948
+ * * Display Name: User
12876
12949
  * * SQL Data Type: uniqueidentifier
12877
12950
  * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)
12878
12951
  * * Description: This field, when populated, overrides the UserID at the Conversation level to specify a different user created the message.`),
12879
12952
  ArtifactID: z.string().nullable().describe(`
12880
12953
  * * Field Name: ArtifactID
12881
- * * Display Name: Artifact ID
12954
+ * * Display Name: Artifact
12882
12955
  * * SQL Data Type: uniqueidentifier
12883
12956
  * * Related Entity/Foreign Key: MJ: Conversation Artifacts (vwConversationArtifacts.ID)
12884
12957
  * * Description: Optional reference to a conversation artifact associated with this conversation detail`),
12885
12958
  ArtifactVersionID: z.string().nullable().describe(`
12886
12959
  * * Field Name: ArtifactVersionID
12887
- * * Display Name: Artifact Version ID
12960
+ * * Display Name: Artifact Version
12888
12961
  * * SQL Data Type: uniqueidentifier
12889
12962
  * * Related Entity/Foreign Key: MJ: Conversation Artifact Versions (vwConversationArtifactVersions.ID)
12890
12963
  * * Description: Optional reference to a specific version of a conversation artifact associated with this conversation detail`),
12891
12964
  CompletionTime: z.number().nullable().describe(`
12892
12965
  * * Field Name: CompletionTime
12893
- * * Display Name: Completion Time (ms)
12966
+ * * Display Name: Completion Time
12894
12967
  * * SQL Data Type: bigint
12895
12968
  * * Description: Duration in milliseconds representing how long the AI response processing took to complete for this conversation detail.`),
12896
12969
  IsPinned: z.boolean().describe(`
@@ -12901,13 +12974,13 @@ export const MJConversationDetailSchema = z.object({
12901
12974
  * * Description: Indicates if this message is pinned within the conversation for easy reference`),
12902
12975
  ParentID: z.string().nullable().describe(`
12903
12976
  * * Field Name: ParentID
12904
- * * Display Name: Parent ID
12977
+ * * Display Name: Parent
12905
12978
  * * SQL Data Type: uniqueidentifier
12906
12979
  * * Related Entity/Foreign Key: MJ: Conversation Details (vwConversationDetails.ID)
12907
12980
  * * Description: Optional reference to parent message for threaded conversations. NULL for top-level messages.`),
12908
12981
  AgentID: z.string().nullable().describe(`
12909
12982
  * * Field Name: AgentID
12910
- * * Display Name: Agent ID
12983
+ * * Display Name: Agent
12911
12984
  * * SQL Data Type: uniqueidentifier
12912
12985
  * * Related Entity/Foreign Key: MJ: AI Agents (vwAIAgents.ID)
12913
12986
  * * Description: Denormalized agent ID for quick lookup of agent name and icon without joining through AgentRun`),
@@ -12929,7 +13002,7 @@ export const MJConversationDetailSchema = z.object({
12929
13002
  * * Description: DEPRECATED: Use ResponseForm, ActionableCommands, and AutomaticCommands instead. Legacy field for simple text-based suggested responses. Replaced in v2.118 by more powerful structured forms and commands system. Retained for historical data only.`),
12930
13003
  TestRunID: z.string().nullable().describe(`
12931
13004
  * * Field Name: TestRunID
12932
- * * Display Name: Test Run ID
13005
+ * * Display Name: Test Run
12933
13006
  * * SQL Data Type: uniqueidentifier
12934
13007
  * * Related Entity/Foreign Key: MJ: Test Runs (vwTestRuns.ID)
12935
13008
  * * Description: Optional Foreign Key - Links this conversation detail to a test run if this message was part of a test conversation. Allows filtering and analyzing test-specific conversation turns.`),
@@ -12956,7 +13029,7 @@ export const MJConversationDetailSchema = z.object({
12956
13029
  * * Description: Indicates if the original message content was modified after initial creation. Set automatically by the server when the Message field is changed on update.`),
12957
13030
  AgentSessionID: z.string().nullable().describe(`
12958
13031
  * * Field Name: AgentSessionID
12959
- * * Display Name: Agent Session ID
13032
+ * * Display Name: Agent Session
12960
13033
  * * SQL Data Type: uniqueidentifier
12961
13034
  * * Related Entity/Foreign Key: MJ: AI Agent Sessions (vwAIAgentSessions.ID)
12962
13035
  * * Description: Links this message to the AIAgentSession that was active when it was created. NULL for messages typed in standard text chat outside any live session. Lets the conversation timeline group a sessions messages into a single collapsible block.`),
@@ -12967,12 +13040,12 @@ export const MJConversationDetailSchema = z.object({
12967
13040
  * * Description: Immutable timestamp marking when this turn ended/finalized. Set once on turn completion (do NOT read __mj_UpdatedAt for this — it moves on later edits). Paired with __mj_CreatedAt (turn start) and AIAgentSession.RecordingStartedAt (t0) to derive audio seek offsets.`),
12968
13041
  UtteranceStartMs: z.number().nullable().describe(`
12969
13042
  * * Field Name: UtteranceStartMs
12970
- * * Display Name: Utterance Start (ms)
13043
+ * * Display Name: Utterance Start Ms
12971
13044
  * * SQL Data Type: int
12972
13045
  * * Description: Precise media-relative start of this turn, in integer milliseconds from the recording t0 (AIAgentSession.RecordingStartedAt). Populated only when the realtime driver supplies frame timing; NULL otherwise (fall back to __mj_CreatedAt - t0). Used by the evidence player for click-to-seek.`),
12973
13046
  UtteranceEndMs: z.number().nullable().describe(`
12974
13047
  * * Field Name: UtteranceEndMs
12975
- * * Display Name: Utterance End (ms)
13048
+ * * Display Name: Utterance End Ms
12976
13049
  * * SQL Data Type: int
12977
13050
  * * Description: Precise media-relative end of this turn, in integer milliseconds from the recording t0 (AIAgentSession.RecordingStartedAt). Populated only when the realtime driver supplies frame timing; NULL otherwise. Used by the evidence player for click-to-seek.`),
12978
13051
  MediaType: z.union([z.literal('Audio'), z.literal('Text'), z.literal('Video')]).nullable().describe(`
@@ -12985,6 +13058,18 @@ export const MJConversationDetailSchema = z.object({
12985
13058
  * * Text
12986
13059
  * * Video
12987
13060
  * * Description: Modality of this turn's content: Text, Audio, or Video. Forward-compat so video turns reuse the same record shape when realtime models support it. NULL = text (legacy default).`),
13061
+ Sequence: z.number().describe(`
13062
+ * * Field Name: Sequence
13063
+ * * Display Name: Sequence
13064
+ * * SQL Data Type: int
13065
+ * * Default Value: 0
13066
+ * * Description: Monotonic, per-conversation ordinal assigned on insert (1-based). Provides a stable symbolic handle used by conversation-history retrieval tools and by the sequence markers embedded in compaction summaries. A summary stored in SummaryOfEarlierConversation on a given row covers all rows with a lower Sequence in the same conversation.`),
13067
+ SummaryPromptRunID: z.string().nullable().describe(`
13068
+ * * Field Name: SummaryPromptRunID
13069
+ * * Display Name: Summary Prompt Run
13070
+ * * SQL Data Type: uniqueidentifier
13071
+ * * Related Entity/Foreign Key: MJ: AI Prompt Runs (vwAIPromptRuns.ID)
13072
+ * * Description: When SummaryOfEarlierConversation is populated by a cross-turn compaction, this links to the AIPromptRun that produced it (model, tokens, cost, prompt version). Null for ordinary (non-summary) rows.`),
12988
13073
  Conversation: z.string().nullable().describe(`
12989
13074
  * * Field Name: Conversation
12990
13075
  * * Display Name: Conversation
@@ -13013,9 +13098,13 @@ export const MJConversationDetailSchema = z.object({
13013
13098
  * * Field Name: TestRun
13014
13099
  * * Display Name: Test Run
13015
13100
  * * SQL Data Type: nvarchar(255)`),
13101
+ SummaryPromptRun: z.string().nullable().describe(`
13102
+ * * Field Name: SummaryPromptRun
13103
+ * * Display Name: Summary Prompt Run
13104
+ * * SQL Data Type: nvarchar(255)`),
13016
13105
  RootParentID: z.string().nullable().describe(`
13017
13106
  * * Field Name: RootParentID
13018
- * * Display Name: Root Parent ID
13107
+ * * Display Name: Root Parent
13019
13108
  * * SQL Data Type: uniqueidentifier`),
13020
13109
  });
13021
13110
  /**
@@ -22041,7 +22130,7 @@ export const MJOpenAppSchema = z.object({
22041
22130
  * * Display Name: Last Completed Step
22042
22131
  * * SQL Data Type: nvarchar(50)
22043
22132
  * * Value List Type: List
22044
- * * Possible Values
22133
+ * * Possible Values
22045
22134
  * * AngularExcludesUpdated
22046
22135
  * * ConfigUpdated
22047
22136
  * * DbCleanupDone
@@ -29404,6 +29493,88 @@ export const MJTestSchema = z.object({
29404
29493
  * * Display Name: Type
29405
29494
  * * SQL Data Type: nvarchar(100)`),
29406
29495
  });
29496
+ /**
29497
+ * zod schema definition for the entity MJ: Themes
29498
+ */
29499
+ export const MJThemeSchema = z.object({
29500
+ ID: z.string().describe(`
29501
+ * * Field Name: ID
29502
+ * * Display Name: ID
29503
+ * * SQL Data Type: uniqueidentifier
29504
+ * * Default Value: newsequentialid()`),
29505
+ Name: z.string().describe(`
29506
+ * * Field Name: Name
29507
+ * * Display Name: Name
29508
+ * * SQL Data Type: nvarchar(100)
29509
+ * * Description: Display name for the theme (unique).`),
29510
+ Description: z.string().nullable().describe(`
29511
+ * * Field Name: Description
29512
+ * * Display Name: Description
29513
+ * * SQL Data Type: nvarchar(MAX)
29514
+ * * Description: Optional description of the theme.`),
29515
+ Seeds: z.string().describe(`
29516
+ * * Field Name: Seeds
29517
+ * * Display Name: Seeds
29518
+ * * SQL Data Type: nvarchar(MAX)
29519
+ * * Description: Brand seeds as JSON (the ThemeSeeds shape from @memberjunction/theme-engine): primary/accent/tertiary hue anchors, neutralChroma, vibrancy, radius, depth, fontFamily, and an optional vizPalette override. Source of truth — the full token contract is derived from this, not stored.`),
29520
+ LightMarkURL: z.string().nullable().describe(`
29521
+ * * Field Name: LightMarkURL
29522
+ * * Display Name: Light Mode Logo
29523
+ * * SQL Data Type: nvarchar(1000)
29524
+ * * Description: Public URL of the logo mark for light surfaces. Logos are variant uploads, never recolored.`),
29525
+ DarkMarkURL: z.string().nullable().describe(`
29526
+ * * Field Name: DarkMarkURL
29527
+ * * Display Name: Dark Mode Logo
29528
+ * * SQL Data Type: nvarchar(1000)
29529
+ * * Description: Public URL of the logo mark for dark surfaces. Dark mode swaps to this artwork rather than transforming the light mark.`),
29530
+ WordmarkURL: z.string().nullable().describe(`
29531
+ * * Field Name: WordmarkURL
29532
+ * * Display Name: Wordmark Logo
29533
+ * * SQL Data Type: nvarchar(1000)
29534
+ * * Description: Optional public URL of the full wordmark logo.`),
29535
+ MonochromeURL: z.string().nullable().describe(`
29536
+ * * Field Name: MonochromeURL
29537
+ * * Display Name: Monochrome Logo
29538
+ * * SQL Data Type: nvarchar(1000)
29539
+ * * Description: Optional public URL of a single-fill monochrome logo variant.`),
29540
+ IsDefault: z.boolean().describe(`
29541
+ * * Field Name: IsDefault
29542
+ * * Display Name: Is Default Theme
29543
+ * * SQL Data Type: bit
29544
+ * * Default Value: 0
29545
+ * * Description: When 1, this is the default theme applied when no other is selected. Single-default enforcement is handled at the application layer.`),
29546
+ Status: z.union([z.literal('Active'), z.literal('Draft'), z.literal('Inactive')]).describe(`
29547
+ * * Field Name: Status
29548
+ * * Display Name: Status
29549
+ * * SQL Data Type: nvarchar(20)
29550
+ * * Default Value: Active
29551
+ * * Value List Type: List
29552
+ * * Possible Values
29553
+ * * Active
29554
+ * * Draft
29555
+ * * Inactive
29556
+ * * Description: Lifecycle status: Active (available), Inactive (retired), or Draft (in progress, not applied).`),
29557
+ Overrides: z.string().nullable().describe(`
29558
+ * * Field Name: Overrides
29559
+ * * Display Name: Token Overrides
29560
+ * * SQL Data Type: nvarchar(MAX)
29561
+ * * Description: Optional advanced token overrides as a JSON object mapping a --mj-* CSS custom property name to a value (e.g. {"--mj-brand-primary-hover":"#0a5cff"}). Applied on top of the seed-derived token contract at load, before CustomCSS. Leave null to use the pure derived theme.`),
29562
+ CustomCSS: z.string().nullable().describe(`
29563
+ * * Field Name: CustomCSS
29564
+ * * Display Name: Custom CSS
29565
+ * * SQL Data Type: nvarchar(MAX)
29566
+ * * Description: Optional advanced raw CSS appended to the theme overlay and auto-scoped under [data-theme-overlay="<id>"]. Applied last, after the derived tokens and Overrides. Escape hatch for rules the seed/token model cannot express; leave null for none.`),
29567
+ __mj_CreatedAt: z.date().describe(`
29568
+ * * Field Name: __mj_CreatedAt
29569
+ * * Display Name: Created At
29570
+ * * SQL Data Type: datetimeoffset
29571
+ * * Default Value: getutcdate()`),
29572
+ __mj_UpdatedAt: z.date().describe(`
29573
+ * * Field Name: __mj_UpdatedAt
29574
+ * * Display Name: Updated At
29575
+ * * SQL Data Type: datetimeoffset
29576
+ * * Default Value: getutcdate()`),
29577
+ });
29407
29578
  /**
29408
29579
  * zod schema definition for the entity MJ: User Application Entities
29409
29580
  */
@@ -38373,6 +38544,7 @@ let MJAIAgentRunStepEntity = class MJAIAgentRunStepEntity extends BaseEntity {
38373
38544
  * * Possible Values
38374
38545
  * * Actions
38375
38546
  * * Chat
38547
+ * * Compaction
38376
38548
  * * Decision
38377
38549
  * * ForEach
38378
38550
  * * Plan
@@ -41600,7 +41772,7 @@ let MJAIAgentTypeEntity = class MJAIAgentTypeEntity extends BaseEntity {
41600
41772
  }
41601
41773
  /**
41602
41774
  * * Field Name: IsActive
41603
- * * Display Name: Is Active
41775
+ * * Display Name: Active
41604
41776
  * * SQL Data Type: bit
41605
41777
  * * Default Value: 1
41606
41778
  * * Description: Indicates whether this agent type is available for use. Inactive types cannot be assigned to new agents.
@@ -41692,7 +41864,7 @@ let MJAIAgentTypeEntity = class MJAIAgentTypeEntity extends BaseEntity {
41692
41864
  }
41693
41865
  /**
41694
41866
  * * Field Name: PromptParamsSchema
41695
- * * Display Name: Prompt Parameters Schema
41867
+ * * Display Name: Prompt Params Schema
41696
41868
  * * SQL Data Type: nvarchar(MAX)
41697
41869
  * * Description: JSON Schema defining the available prompt parameters for this agent type. Includes property definitions with types, defaults, and descriptions. Used by agents of this type to customize which prompt sections are included in the system prompt. The schema follows JSON Schema draft-07 format.
41698
41870
  */
@@ -41716,7 +41888,7 @@ let MJAIAgentTypeEntity = class MJAIAgentTypeEntity extends BaseEntity {
41716
41888
  }
41717
41889
  /**
41718
41890
  * * Field Name: DefaultStorageAccountID
41719
- * * Display Name: Default Storage Account
41891
+ * * Display Name: Default Storage Account ID
41720
41892
  * * SQL Data Type: uniqueidentifier
41721
41893
  * * Related Entity/Foreign Key: MJ: File Storage Accounts (vwFileStorageAccounts.ID)
41722
41894
  * * Description: Default file storage account for agents of this type. Lowest priority in the resolution chain (Type → Category tree → Agent → Runtime override). When set, all agents of this type use this storage account unless overridden at a more specific level. FK to FileStorageAccount.
@@ -41729,7 +41901,7 @@ let MJAIAgentTypeEntity = class MJAIAgentTypeEntity extends BaseEntity {
41729
41901
  }
41730
41902
  /**
41731
41903
  * * Field Name: ConfigSchema
41732
- * * Display Name: Configuration Schema
41904
+ * * Display Name: Config Schema
41733
41905
  * * SQL Data Type: nvarchar(MAX)
41734
41906
  * * Description: JSON Schema (draft-07) describing the shape of TypeConfiguration payloads on agents of this type. When present, agent saves validate their TypeConfiguration against it server-side (MJAIAgentEntityServer.ValidateAsync); null = TypeConfiguration is freeform for this type.
41735
41907
  */
@@ -41752,8 +41924,96 @@ let MJAIAgentTypeEntity = class MJAIAgentTypeEntity extends BaseEntity {
41752
41924
  this.Set('DefaultConfiguration', value);
41753
41925
  }
41754
41926
  /**
41927
+ * * Field Name: ContextCompressionMessageThreshold
41928
+ * * Display Name: Context Compression Message Threshold
41929
+ * * SQL Data Type: int
41930
+ * * Description: Type-level default for the in-turn context-compression message-count threshold. Overridable per agent via AIAgent.ContextCompressionMessageThreshold.
41931
+ */
41932
+ get ContextCompressionMessageThreshold() {
41933
+ return this.Get('ContextCompressionMessageThreshold');
41934
+ }
41935
+ set ContextCompressionMessageThreshold(value) {
41936
+ this.Set('ContextCompressionMessageThreshold', value);
41937
+ }
41938
+ /**
41939
+ * * Field Name: ContextCompressionPromptID
41940
+ * * Display Name: Context Compression Prompt ID
41941
+ * * SQL Data Type: uniqueidentifier
41942
+ * * Related Entity/Foreign Key: MJ: AI Prompts (vwAIPrompts.ID)
41943
+ * * Description: Type-level default prompt used for in-turn context compression. Overridable per agent via AIAgent.ContextCompressionPromptID.
41944
+ */
41945
+ get ContextCompressionPromptID() {
41946
+ return this.Get('ContextCompressionPromptID');
41947
+ }
41948
+ set ContextCompressionPromptID(value) {
41949
+ this.Set('ContextCompressionPromptID', value);
41950
+ }
41951
+ /**
41952
+ * * Field Name: ContextCompressionMessageRetentionCount
41953
+ * * Display Name: Context Compression Message Retention Count
41954
+ * * SQL Data Type: int
41955
+ * * Description: Type-level default for the number of most-recent messages kept uncompressed (the "hot tail") when context compression is applied. Overridable per agent via AIAgent.ContextCompressionMessageRetentionCount.
41956
+ */
41957
+ get ContextCompressionMessageRetentionCount() {
41958
+ return this.Get('ContextCompressionMessageRetentionCount');
41959
+ }
41960
+ set ContextCompressionMessageRetentionCount(value) {
41961
+ this.Set('ContextCompressionMessageRetentionCount', value);
41962
+ }
41963
+ /**
41964
+ * * Field Name: ContextWindowMaxTokens
41965
+ * * Display Name: Context Window Max Tokens
41966
+ * * SQL Data Type: int
41967
+ * * Description: Type-level default effective working-context budget, in tokens. Null means use the selected model's MaxInputTokens. The resolved value is clamped to the model's limit at runtime (a warning is logged if it would exceed it). Overridable per agent via AIAgent.ContextWindowMaxTokens.
41968
+ */
41969
+ get ContextWindowMaxTokens() {
41970
+ return this.Get('ContextWindowMaxTokens');
41971
+ }
41972
+ set ContextWindowMaxTokens(value) {
41973
+ this.Set('ContextWindowMaxTokens', value);
41974
+ }
41975
+ /**
41976
+ * * Field Name: CompactionTriggerPercent
41977
+ * * Display Name: Compaction Trigger Percent
41978
+ * * SQL Data Type: int
41979
+ * * Default Value: 75
41980
+ * * Description: Type-level default: the percentage of the effective context budget at which cross-turn conversation compaction is triggered. Defaults to 75. Overridable per agent via AIAgent.CompactionTriggerPercent.
41981
+ */
41982
+ get CompactionTriggerPercent() {
41983
+ return this.Get('CompactionTriggerPercent');
41984
+ }
41985
+ set CompactionTriggerPercent(value) {
41986
+ this.Set('CompactionTriggerPercent', value);
41987
+ }
41988
+ /**
41989
+ * * Field Name: CompactionTargetPercent
41990
+ * * Display Name: Compaction Target Percent
41991
+ * * SQL Data Type: int
41992
+ * * Default Value: 30
41993
+ * * Description: Type-level default: the target percentage of the effective context budget to reduce to after a cross-turn compaction. Defaults to 30. Overridable per agent via AIAgent.CompactionTargetPercent.
41994
+ */
41995
+ get CompactionTargetPercent() {
41996
+ return this.Get('CompactionTargetPercent');
41997
+ }
41998
+ set CompactionTargetPercent(value) {
41999
+ this.Set('CompactionTargetPercent', value);
42000
+ }
42001
+ /**
42002
+ * * Field Name: ConversationSummaryPromptID
42003
+ * * Display Name: Conversation Summary Prompt ID
42004
+ * * SQL Data Type: uniqueidentifier
42005
+ * * Related Entity/Foreign Key: MJ: AI Prompts (vwAIPrompts.ID)
42006
+ * * Description: Type-level default prompt used for cross-turn conversation compaction (the durable summary baseline). Distinct from ContextCompressionPromptID, which governs in-turn compression. Overridable per agent via AIAgent.ConversationSummaryPromptID.
42007
+ */
42008
+ get ConversationSummaryPromptID() {
42009
+ return this.Get('ConversationSummaryPromptID');
42010
+ }
42011
+ set ConversationSummaryPromptID(value) {
42012
+ this.Set('ConversationSummaryPromptID', value);
42013
+ }
42014
+ /**
41755
42015
  * * Field Name: SystemPrompt
41756
- * * Display Name: System Prompt Content
42016
+ * * Display Name: System Prompt
41757
42017
  * * SQL Data Type: nvarchar(255)
41758
42018
  */
41759
42019
  get SystemPrompt() {
@@ -41761,12 +42021,28 @@ let MJAIAgentTypeEntity = class MJAIAgentTypeEntity extends BaseEntity {
41761
42021
  }
41762
42022
  /**
41763
42023
  * * Field Name: DefaultStorageAccount
41764
- * * Display Name: Default Storage Account Name
42024
+ * * Display Name: Default Storage Account
41765
42025
  * * SQL Data Type: nvarchar(200)
41766
42026
  */
41767
42027
  get DefaultStorageAccount() {
41768
42028
  return this.Get('DefaultStorageAccount');
41769
42029
  }
42030
+ /**
42031
+ * * Field Name: ContextCompressionPrompt
42032
+ * * Display Name: Context Compression Prompt
42033
+ * * SQL Data Type: nvarchar(255)
42034
+ */
42035
+ get ContextCompressionPrompt() {
42036
+ return this.Get('ContextCompressionPrompt');
42037
+ }
42038
+ /**
42039
+ * * Field Name: ConversationSummaryPrompt
42040
+ * * Display Name: Conversation Summary Prompt
42041
+ * * SQL Data Type: nvarchar(255)
42042
+ */
42043
+ get ConversationSummaryPrompt() {
42044
+ return this.Get('ConversationSummaryPrompt');
42045
+ }
41770
42046
  };
41771
42047
  MJAIAgentTypeEntity = __decorate([
41772
42048
  RegisterClass(BaseEntity, 'MJ: AI Agent Types')
@@ -42016,7 +42292,7 @@ let MJAIAgentEntity = class MJAIAgentEntity extends BaseEntity {
42016
42292
  }
42017
42293
  /**
42018
42294
  * * Field Name: ParentID
42019
- * * Display Name: Parent Agent
42295
+ * * Display Name: Parent
42020
42296
  * * SQL Data Type: uniqueidentifier
42021
42297
  * * Related Entity/Foreign Key: MJ: AI Agents (vwAIAgents.ID)
42022
42298
  * * Description: References the parent agent in the hierarchical structure. If NULL, this is a root (top-level) agent.
@@ -42085,7 +42361,7 @@ let MJAIAgentEntity = class MJAIAgentEntity extends BaseEntity {
42085
42361
  }
42086
42362
  /**
42087
42363
  * * Field Name: ContextCompressionMessageThreshold
42088
- * * Display Name: Compression Message Threshold
42364
+ * * Display Name: Context Compression Message Threshold
42089
42365
  * * SQL Data Type: int
42090
42366
  * * Description: Number of messages that triggers context compression when EnableContextCompression is true.
42091
42367
  */
@@ -42097,7 +42373,7 @@ let MJAIAgentEntity = class MJAIAgentEntity extends BaseEntity {
42097
42373
  }
42098
42374
  /**
42099
42375
  * * Field Name: ContextCompressionPromptID
42100
- * * Display Name: Compression Prompt
42376
+ * * Display Name: Context Compression Prompt ID
42101
42377
  * * SQL Data Type: uniqueidentifier
42102
42378
  * * Related Entity/Foreign Key: MJ: AI Prompts (vwAIPrompts.ID)
42103
42379
  */
@@ -42109,7 +42385,7 @@ let MJAIAgentEntity = class MJAIAgentEntity extends BaseEntity {
42109
42385
  }
42110
42386
  /**
42111
42387
  * * Field Name: ContextCompressionMessageRetentionCount
42112
- * * Display Name: Compression Retention Count
42388
+ * * Display Name: Context Compression Message Retention Count
42113
42389
  * * SQL Data Type: int
42114
42390
  * * Description: Number of recent messages to keep uncompressed when context compression is applied.
42115
42391
  */
@@ -42121,7 +42397,7 @@ let MJAIAgentEntity = class MJAIAgentEntity extends BaseEntity {
42121
42397
  }
42122
42398
  /**
42123
42399
  * * Field Name: TypeID
42124
- * * Display Name: Agent Type
42400
+ * * Display Name: Type
42125
42401
  * * SQL Data Type: uniqueidentifier
42126
42402
  * * Related Entity/Foreign Key: MJ: AI Agent Types (vwAIAgentTypes.ID)
42127
42403
  * * Description: Reference to the AIAgentType that defines the category and system-level behavior for this agent. Cannot be null.
@@ -42193,7 +42469,7 @@ let MJAIAgentEntity = class MJAIAgentEntity extends BaseEntity {
42193
42469
  }
42194
42470
  /**
42195
42471
  * * Field Name: PayloadDownstreamPaths
42196
- * * Display Name: Downstream Payload Paths
42472
+ * * Display Name: Payload Downstream Paths
42197
42473
  * * SQL Data Type: nvarchar(MAX)
42198
42474
  * * Default Value: ["*"]
42199
42475
  * * Description: JSON array of paths that define which parts of the payload should be sent downstream to sub-agents. Use ["*"] to send entire payload, or specify paths like ["customer.id", "campaign.*", "analysis.sentiment"]
@@ -42206,7 +42482,7 @@ let MJAIAgentEntity = class MJAIAgentEntity extends BaseEntity {
42206
42482
  }
42207
42483
  /**
42208
42484
  * * Field Name: PayloadUpstreamPaths
42209
- * * Display Name: Upstream Payload Paths
42485
+ * * Display Name: Payload Upstream Paths
42210
42486
  * * SQL Data Type: nvarchar(MAX)
42211
42487
  * * Default Value: ["*"]
42212
42488
  * * Description: JSON array of paths that define which parts of the payload sub-agents are allowed to write back upstream. Use ["*"] to allow all writes, or specify paths like ["analysis.results", "recommendations.*"]
@@ -42219,7 +42495,7 @@ let MJAIAgentEntity = class MJAIAgentEntity extends BaseEntity {
42219
42495
  }
42220
42496
  /**
42221
42497
  * * Field Name: PayloadSelfReadPaths
42222
- * * Display Name: Self-Read Payload Paths
42498
+ * * Display Name: Payload Self Read Paths
42223
42499
  * * SQL Data Type: nvarchar(MAX)
42224
42500
  * * Description: JSON array of paths that specify what parts of the payload the agent's own prompt can read. Controls downstream data
42225
42501
  flow when the agent executes its own prompt step.
@@ -42232,7 +42508,7 @@ flow when the agent executes its own prompt step.
42232
42508
  }
42233
42509
  /**
42234
42510
  * * Field Name: PayloadSelfWritePaths
42235
- * * Display Name: Self-Write Payload Paths
42511
+ * * Display Name: Payload Self Write Paths
42236
42512
  * * SQL Data Type: nvarchar(MAX)
42237
42513
  * * Description: JSON array of paths that specify what parts of the payload the agent's own prompt can write back. Controls upstream
42238
42514
  data flow when the agent executes its own prompt step.
@@ -42269,7 +42545,7 @@ data flow when the agent executes its own prompt step.
42269
42545
  }
42270
42546
  /**
42271
42547
  * * Field Name: FinalPayloadValidationMode
42272
- * * Display Name: Final Validation Mode
42548
+ * * Display Name: Final Payload Validation Mode
42273
42549
  * * SQL Data Type: nvarchar(25)
42274
42550
  * * Default Value: Retry
42275
42551
  * * Value List Type: List
@@ -42287,7 +42563,7 @@ data flow when the agent executes its own prompt step.
42287
42563
  }
42288
42564
  /**
42289
42565
  * * Field Name: FinalPayloadValidationMaxRetries
42290
- * * Display Name: Final Validation Max Retries
42566
+ * * Display Name: Final Payload Validation Max Retries
42291
42567
  * * SQL Data Type: int
42292
42568
  * * Default Value: 3
42293
42569
  * * Description: Maximum number of retry attempts allowed when FinalPayloadValidation fails with
@@ -42389,7 +42665,7 @@ if this limit is exceeded.
42389
42665
  }
42390
42666
  /**
42391
42667
  * * Field Name: StartingPayloadValidationMode
42392
- * * Display Name: Starting Validation Mode
42668
+ * * Display Name: Starting Payload Validation Mode
42393
42669
  * * SQL Data Type: nvarchar(25)
42394
42670
  * * Default Value: Fail
42395
42671
  * * Value List Type: List
@@ -42448,7 +42724,7 @@ if this limit is exceeded.
42448
42724
  }
42449
42725
  /**
42450
42726
  * * Field Name: OwnerUserID
42451
- * * Display Name: Owner
42727
+ * * Display Name: Owner User
42452
42728
  * * SQL Data Type: uniqueidentifier
42453
42729
  * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)
42454
42730
  * * Default Value: ECAFCCEC-6A37-EF11-86D4-000D3A4E707E
@@ -42691,7 +42967,7 @@ if this limit is exceeded.
42691
42967
  }
42692
42968
  /**
42693
42969
  * * Field Name: AgentTypePromptParams
42694
- * * Display Name: Prompt Parameters
42970
+ * * Display Name: Agent Type Prompt Params
42695
42971
  * * SQL Data Type: nvarchar(MAX)
42696
42972
  * * Description: JSON object containing parameter values that customize how this agent's type-level system prompt is rendered. The schema is defined by the agent type's PromptParamsSchema field. Allows per-agent control over which prompt sections are included, enabling token savings by excluding unused documentation.
42697
42973
  */
@@ -42977,8 +43253,57 @@ if this limit is exceeded.
42977
43253
  this.Set('RequirePlanMode', value);
42978
43254
  }
42979
43255
  /**
43256
+ * * Field Name: ContextWindowMaxTokens
43257
+ * * Display Name: Context Window Max Tokens
43258
+ * * SQL Data Type: int
43259
+ * * Description: Per-agent override for the effective working-context budget, in tokens. Null inherits the agent type's value (which, if also null, falls back to the selected model's MaxInputTokens). The resolved value is clamped to the model's limit at runtime.
43260
+ */
43261
+ get ContextWindowMaxTokens() {
43262
+ return this.Get('ContextWindowMaxTokens');
43263
+ }
43264
+ set ContextWindowMaxTokens(value) {
43265
+ this.Set('ContextWindowMaxTokens', value);
43266
+ }
43267
+ /**
43268
+ * * Field Name: CompactionTriggerPercent
43269
+ * * Display Name: Compaction Trigger Percent
43270
+ * * SQL Data Type: int
43271
+ * * Description: Per-agent override for the cross-turn compaction trigger percentage. Null inherits the agent type's value.
43272
+ */
43273
+ get CompactionTriggerPercent() {
43274
+ return this.Get('CompactionTriggerPercent');
43275
+ }
43276
+ set CompactionTriggerPercent(value) {
43277
+ this.Set('CompactionTriggerPercent', value);
43278
+ }
43279
+ /**
43280
+ * * Field Name: CompactionTargetPercent
43281
+ * * Display Name: Compaction Target Percent
43282
+ * * SQL Data Type: int
43283
+ * * Description: Per-agent override for the cross-turn compaction target percentage. Null inherits the agent type's value.
43284
+ */
43285
+ get CompactionTargetPercent() {
43286
+ return this.Get('CompactionTargetPercent');
43287
+ }
43288
+ set CompactionTargetPercent(value) {
43289
+ this.Set('CompactionTargetPercent', value);
43290
+ }
43291
+ /**
43292
+ * * Field Name: ConversationSummaryPromptID
43293
+ * * Display Name: Conversation Summary Prompt ID
43294
+ * * SQL Data Type: uniqueidentifier
43295
+ * * Related Entity/Foreign Key: MJ: AI Prompts (vwAIPrompts.ID)
43296
+ * * Description: Per-agent override for the cross-turn conversation compaction prompt. Null inherits the agent type's value.
43297
+ */
43298
+ get ConversationSummaryPromptID() {
43299
+ return this.Get('ConversationSummaryPromptID');
43300
+ }
43301
+ set ConversationSummaryPromptID(value) {
43302
+ this.Set('ConversationSummaryPromptID', value);
43303
+ }
43304
+ /**
42980
43305
  * * Field Name: Parent
42981
- * * Display Name: Parent Agent Name
43306
+ * * Display Name: Parent
42982
43307
  * * SQL Data Type: nvarchar(255)
42983
43308
  */
42984
43309
  get Parent() {
@@ -42986,7 +43311,7 @@ if this limit is exceeded.
42986
43311
  }
42987
43312
  /**
42988
43313
  * * Field Name: ContextCompressionPrompt
42989
- * * Display Name: Compression Prompt Name
43314
+ * * Display Name: Context Compression Prompt
42990
43315
  * * SQL Data Type: nvarchar(255)
42991
43316
  */
42992
43317
  get ContextCompressionPrompt() {
@@ -43002,7 +43327,7 @@ if this limit is exceeded.
43002
43327
  }
43003
43328
  /**
43004
43329
  * * Field Name: DefaultArtifactType
43005
- * * Display Name: Default Artifact Type Name
43330
+ * * Display Name: Default Artifact Type
43006
43331
  * * SQL Data Type: nvarchar(100)
43007
43332
  */
43008
43333
  get DefaultArtifactType() {
@@ -43010,7 +43335,7 @@ if this limit is exceeded.
43010
43335
  }
43011
43336
  /**
43012
43337
  * * Field Name: OwnerUser
43013
- * * Display Name: Owner Name
43338
+ * * Display Name: Owner User
43014
43339
  * * SQL Data Type: nvarchar(100)
43015
43340
  */
43016
43341
  get OwnerUser() {
@@ -43026,7 +43351,7 @@ if this limit is exceeded.
43026
43351
  }
43027
43352
  /**
43028
43353
  * * Field Name: Category
43029
- * * Display Name: Category Name
43354
+ * * Display Name: Category
43030
43355
  * * SQL Data Type: nvarchar(200)
43031
43356
  */
43032
43357
  get Category() {
@@ -43065,8 +43390,16 @@ if this limit is exceeded.
43065
43390
  return this.Get('DefaultMediaCollection');
43066
43391
  }
43067
43392
  /**
43393
+ * * Field Name: ConversationSummaryPrompt
43394
+ * * Display Name: Conversation Summary Prompt
43395
+ * * SQL Data Type: nvarchar(255)
43396
+ */
43397
+ get ConversationSummaryPrompt() {
43398
+ return this.Get('ConversationSummaryPrompt');
43399
+ }
43400
+ /**
43068
43401
  * * Field Name: RootParentID
43069
- * * Display Name: Root Parent
43402
+ * * Display Name: Root Parent ID
43070
43403
  * * SQL Data Type: uniqueidentifier
43071
43404
  */
43072
43405
  get RootParentID() {
@@ -43074,7 +43407,7 @@ if this limit is exceeded.
43074
43407
  }
43075
43408
  /**
43076
43409
  * * Field Name: RootDefaultCoAgentID
43077
- * * Display Name: Root Default Co-Agent
43410
+ * * Display Name: Root Default Co-Agent ID
43078
43411
  * * SQL Data Type: uniqueidentifier
43079
43412
  */
43080
43413
  get RootDefaultCoAgentID() {
@@ -63978,7 +64311,7 @@ let MJConversationDetailEntity = class MJConversationDetailEntity extends BaseEn
63978
64311
  }
63979
64312
  /**
63980
64313
  * * Field Name: HiddenToUser
63981
- * * Display Name: Hidden to User
64314
+ * * Display Name: Hidden To User
63982
64315
  * * SQL Data Type: bit
63983
64316
  * * Default Value: 0
63984
64317
  * * Description: Flag indicating if this message should be hidden from end users (system messages, function calls, etc.).
@@ -64045,7 +64378,7 @@ let MJConversationDetailEntity = class MJConversationDetailEntity extends BaseEn
64045
64378
  }
64046
64379
  /**
64047
64380
  * * Field Name: SummaryOfEarlierConversation
64048
- * * Display Name: Summary of Earlier Conversation
64381
+ * * Display Name: Summary Of Earlier Conversation
64049
64382
  * * SQL Data Type: nvarchar(MAX)
64050
64383
  * * Description: This column optionally stores a summary of the entire conversation leading up to this particular conversation detail record. It is used in long-running conversations to optimize performance by summarizing earlier parts.
64051
64384
  */
@@ -64057,7 +64390,7 @@ let MJConversationDetailEntity = class MJConversationDetailEntity extends BaseEn
64057
64390
  }
64058
64391
  /**
64059
64392
  * * Field Name: UserID
64060
- * * Display Name: User ID
64393
+ * * Display Name: User
64061
64394
  * * SQL Data Type: uniqueidentifier
64062
64395
  * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)
64063
64396
  * * Description: This field, when populated, overrides the UserID at the Conversation level to specify a different user created the message.
@@ -64070,7 +64403,7 @@ let MJConversationDetailEntity = class MJConversationDetailEntity extends BaseEn
64070
64403
  }
64071
64404
  /**
64072
64405
  * * Field Name: ArtifactID
64073
- * * Display Name: Artifact ID
64406
+ * * Display Name: Artifact
64074
64407
  * *
64075
64408
  * * @deprecated This field is deprecated and will be removed in a future version. Using it will result in console warnings.SQL Data Type: uniqueidentifier
64076
64409
  * * Related Entity/Foreign Key: MJ: Conversation Artifacts (vwConversationArtifacts.ID)
@@ -64084,7 +64417,7 @@ let MJConversationDetailEntity = class MJConversationDetailEntity extends BaseEn
64084
64417
  }
64085
64418
  /**
64086
64419
  * * Field Name: ArtifactVersionID
64087
- * * Display Name: Artifact Version ID
64420
+ * * Display Name: Artifact Version
64088
64421
  * *
64089
64422
  * * @deprecated This field is deprecated and will be removed in a future version. Using it will result in console warnings.SQL Data Type: uniqueidentifier
64090
64423
  * * Related Entity/Foreign Key: MJ: Conversation Artifact Versions (vwConversationArtifactVersions.ID)
@@ -64098,7 +64431,7 @@ let MJConversationDetailEntity = class MJConversationDetailEntity extends BaseEn
64098
64431
  }
64099
64432
  /**
64100
64433
  * * Field Name: CompletionTime
64101
- * * Display Name: Completion Time (ms)
64434
+ * * Display Name: Completion Time
64102
64435
  * * SQL Data Type: bigint
64103
64436
  * * Description: Duration in milliseconds representing how long the AI response processing took to complete for this conversation detail.
64104
64437
  */
@@ -64123,7 +64456,7 @@ let MJConversationDetailEntity = class MJConversationDetailEntity extends BaseEn
64123
64456
  }
64124
64457
  /**
64125
64458
  * * Field Name: ParentID
64126
- * * Display Name: Parent ID
64459
+ * * Display Name: Parent
64127
64460
  * * SQL Data Type: uniqueidentifier
64128
64461
  * * Related Entity/Foreign Key: MJ: Conversation Details (vwConversationDetails.ID)
64129
64462
  * * Description: Optional reference to parent message for threaded conversations. NULL for top-level messages.
@@ -64136,7 +64469,7 @@ let MJConversationDetailEntity = class MJConversationDetailEntity extends BaseEn
64136
64469
  }
64137
64470
  /**
64138
64471
  * * Field Name: AgentID
64139
- * * Display Name: Agent ID
64472
+ * * Display Name: Agent
64140
64473
  * * SQL Data Type: uniqueidentifier
64141
64474
  * * Related Entity/Foreign Key: MJ: AI Agents (vwAIAgents.ID)
64142
64475
  * * Description: Denormalized agent ID for quick lookup of agent name and icon without joining through AgentRun
@@ -64180,7 +64513,7 @@ let MJConversationDetailEntity = class MJConversationDetailEntity extends BaseEn
64180
64513
  }
64181
64514
  /**
64182
64515
  * * Field Name: TestRunID
64183
- * * Display Name: Test Run ID
64516
+ * * Display Name: Test Run
64184
64517
  * * SQL Data Type: uniqueidentifier
64185
64518
  * * Related Entity/Foreign Key: MJ: Test Runs (vwTestRuns.ID)
64186
64519
  * * Description: Optional Foreign Key - Links this conversation detail to a test run if this message was part of a test conversation. Allows filtering and analyzing test-specific conversation turns.
@@ -64242,7 +64575,7 @@ let MJConversationDetailEntity = class MJConversationDetailEntity extends BaseEn
64242
64575
  }
64243
64576
  /**
64244
64577
  * * Field Name: AgentSessionID
64245
- * * Display Name: Agent Session ID
64578
+ * * Display Name: Agent Session
64246
64579
  * * SQL Data Type: uniqueidentifier
64247
64580
  * * Related Entity/Foreign Key: MJ: AI Agent Sessions (vwAIAgentSessions.ID)
64248
64581
  * * Description: Links this message to the AIAgentSession that was active when it was created. NULL for messages typed in standard text chat outside any live session. Lets the conversation timeline group a sessions messages into a single collapsible block.
@@ -64267,7 +64600,7 @@ let MJConversationDetailEntity = class MJConversationDetailEntity extends BaseEn
64267
64600
  }
64268
64601
  /**
64269
64602
  * * Field Name: UtteranceStartMs
64270
- * * Display Name: Utterance Start (ms)
64603
+ * * Display Name: Utterance Start Ms
64271
64604
  * * SQL Data Type: int
64272
64605
  * * Description: Precise media-relative start of this turn, in integer milliseconds from the recording t0 (AIAgentSession.RecordingStartedAt). Populated only when the realtime driver supplies frame timing; NULL otherwise (fall back to __mj_CreatedAt - t0). Used by the evidence player for click-to-seek.
64273
64606
  */
@@ -64279,7 +64612,7 @@ let MJConversationDetailEntity = class MJConversationDetailEntity extends BaseEn
64279
64612
  }
64280
64613
  /**
64281
64614
  * * Field Name: UtteranceEndMs
64282
- * * Display Name: Utterance End (ms)
64615
+ * * Display Name: Utterance End Ms
64283
64616
  * * SQL Data Type: int
64284
64617
  * * Description: Precise media-relative end of this turn, in integer milliseconds from the recording t0 (AIAgentSession.RecordingStartedAt). Populated only when the realtime driver supplies frame timing; NULL otherwise. Used by the evidence player for click-to-seek.
64285
64618
  */
@@ -64307,6 +64640,32 @@ let MJConversationDetailEntity = class MJConversationDetailEntity extends BaseEn
64307
64640
  this.Set('MediaType', value);
64308
64641
  }
64309
64642
  /**
64643
+ * * Field Name: Sequence
64644
+ * * Display Name: Sequence
64645
+ * * SQL Data Type: int
64646
+ * * Default Value: 0
64647
+ * * Description: Monotonic, per-conversation ordinal assigned on insert (1-based). Provides a stable symbolic handle used by conversation-history retrieval tools and by the sequence markers embedded in compaction summaries. A summary stored in SummaryOfEarlierConversation on a given row covers all rows with a lower Sequence in the same conversation.
64648
+ */
64649
+ get Sequence() {
64650
+ return this.Get('Sequence');
64651
+ }
64652
+ set Sequence(value) {
64653
+ this.Set('Sequence', value);
64654
+ }
64655
+ /**
64656
+ * * Field Name: SummaryPromptRunID
64657
+ * * Display Name: Summary Prompt Run
64658
+ * * SQL Data Type: uniqueidentifier
64659
+ * * Related Entity/Foreign Key: MJ: AI Prompt Runs (vwAIPromptRuns.ID)
64660
+ * * Description: When SummaryOfEarlierConversation is populated by a cross-turn compaction, this links to the AIPromptRun that produced it (model, tokens, cost, prompt version). Null for ordinary (non-summary) rows.
64661
+ */
64662
+ get SummaryPromptRunID() {
64663
+ return this.Get('SummaryPromptRunID');
64664
+ }
64665
+ set SummaryPromptRunID(value) {
64666
+ this.Set('SummaryPromptRunID', value);
64667
+ }
64668
+ /**
64310
64669
  * * Field Name: Conversation
64311
64670
  * * Display Name: Conversation
64312
64671
  * * SQL Data Type: nvarchar(255)
@@ -64363,8 +64722,16 @@ let MJConversationDetailEntity = class MJConversationDetailEntity extends BaseEn
64363
64722
  return this.Get('TestRun');
64364
64723
  }
64365
64724
  /**
64725
+ * * Field Name: SummaryPromptRun
64726
+ * * Display Name: Summary Prompt Run
64727
+ * * SQL Data Type: nvarchar(255)
64728
+ */
64729
+ get SummaryPromptRun() {
64730
+ return this.Get('SummaryPromptRun');
64731
+ }
64732
+ /**
64366
64733
  * * Field Name: RootParentID
64367
- * * Display Name: Root Parent ID
64734
+ * * Display Name: Root Parent
64368
64735
  * * SQL Data Type: uniqueidentifier
64369
64736
  */
64370
64737
  get RootParentID() {
@@ -104942,6 +105309,208 @@ MJTestEntity = __decorate([
104942
105309
  RegisterClass(BaseEntity, 'MJ: Tests')
104943
105310
  ], MJTestEntity);
104944
105311
  export { MJTestEntity };
105312
+ /**
105313
+ * MJ: Themes - strongly typed entity sub-class
105314
+ * * Schema: __mj
105315
+ * * Base Table: Theme
105316
+ * * Base View: vwThemes
105317
+ * * @description A named brand theme. Stores ~8 brand seeds (color hue anchors, neutral character, vibrancy, shape, depth, type, viz palette) as JSON; the full --mj-* design-token contract is derived from the seeds at load. A theme is a brand — light/dark is the user's mode layered under it, so a theme carries no per-mode values.
105318
+ * * Primary Key: ID
105319
+ * @extends {BaseEntity}
105320
+ * @class
105321
+ * @public
105322
+ */
105323
+ let MJThemeEntity = class MJThemeEntity extends BaseEntity {
105324
+ /**
105325
+ * Loads the MJ: Themes record from the database
105326
+ * @param ID: string - primary key value to load the MJ: Themes record.
105327
+ * @param EntityRelationshipsToLoad - (optional) the relationships to load
105328
+ * @returns {Promise<boolean>} - true if successful, false otherwise
105329
+ * @public
105330
+ * @async
105331
+ * @memberof MJThemeEntity
105332
+ * @method
105333
+ * @override
105334
+ */
105335
+ async Load(ID, EntityRelationshipsToLoad) {
105336
+ const compositeKey = new CompositeKey();
105337
+ compositeKey.KeyValuePairs.push({ FieldName: 'ID', Value: ID });
105338
+ return await super.InnerLoad(compositeKey, EntityRelationshipsToLoad);
105339
+ }
105340
+ /**
105341
+ * * Field Name: ID
105342
+ * * Display Name: ID
105343
+ * * SQL Data Type: uniqueidentifier
105344
+ * * Default Value: newsequentialid()
105345
+ */
105346
+ get ID() {
105347
+ return this.Get('ID');
105348
+ }
105349
+ set ID(value) {
105350
+ this.Set('ID', value);
105351
+ }
105352
+ /**
105353
+ * * Field Name: Name
105354
+ * * Display Name: Name
105355
+ * * SQL Data Type: nvarchar(100)
105356
+ * * Description: Display name for the theme (unique).
105357
+ */
105358
+ get Name() {
105359
+ return this.Get('Name');
105360
+ }
105361
+ set Name(value) {
105362
+ this.Set('Name', value);
105363
+ }
105364
+ /**
105365
+ * * Field Name: Description
105366
+ * * Display Name: Description
105367
+ * * SQL Data Type: nvarchar(MAX)
105368
+ * * Description: Optional description of the theme.
105369
+ */
105370
+ get Description() {
105371
+ return this.Get('Description');
105372
+ }
105373
+ set Description(value) {
105374
+ this.Set('Description', value);
105375
+ }
105376
+ /**
105377
+ * * Field Name: Seeds
105378
+ * * Display Name: Seeds
105379
+ * * SQL Data Type: nvarchar(MAX)
105380
+ * * Description: Brand seeds as JSON (the ThemeSeeds shape from @memberjunction/theme-engine): primary/accent/tertiary hue anchors, neutralChroma, vibrancy, radius, depth, fontFamily, and an optional vizPalette override. Source of truth — the full token contract is derived from this, not stored.
105381
+ */
105382
+ get Seeds() {
105383
+ return this.Get('Seeds');
105384
+ }
105385
+ set Seeds(value) {
105386
+ this.Set('Seeds', value);
105387
+ }
105388
+ /**
105389
+ * * Field Name: LightMarkURL
105390
+ * * Display Name: Light Mode Logo
105391
+ * * SQL Data Type: nvarchar(1000)
105392
+ * * Description: Public URL of the logo mark for light surfaces. Logos are variant uploads, never recolored.
105393
+ */
105394
+ get LightMarkURL() {
105395
+ return this.Get('LightMarkURL');
105396
+ }
105397
+ set LightMarkURL(value) {
105398
+ this.Set('LightMarkURL', value);
105399
+ }
105400
+ /**
105401
+ * * Field Name: DarkMarkURL
105402
+ * * Display Name: Dark Mode Logo
105403
+ * * SQL Data Type: nvarchar(1000)
105404
+ * * Description: Public URL of the logo mark for dark surfaces. Dark mode swaps to this artwork rather than transforming the light mark.
105405
+ */
105406
+ get DarkMarkURL() {
105407
+ return this.Get('DarkMarkURL');
105408
+ }
105409
+ set DarkMarkURL(value) {
105410
+ this.Set('DarkMarkURL', value);
105411
+ }
105412
+ /**
105413
+ * * Field Name: WordmarkURL
105414
+ * * Display Name: Wordmark Logo
105415
+ * * SQL Data Type: nvarchar(1000)
105416
+ * * Description: Optional public URL of the full wordmark logo.
105417
+ */
105418
+ get WordmarkURL() {
105419
+ return this.Get('WordmarkURL');
105420
+ }
105421
+ set WordmarkURL(value) {
105422
+ this.Set('WordmarkURL', value);
105423
+ }
105424
+ /**
105425
+ * * Field Name: MonochromeURL
105426
+ * * Display Name: Monochrome Logo
105427
+ * * SQL Data Type: nvarchar(1000)
105428
+ * * Description: Optional public URL of a single-fill monochrome logo variant.
105429
+ */
105430
+ get MonochromeURL() {
105431
+ return this.Get('MonochromeURL');
105432
+ }
105433
+ set MonochromeURL(value) {
105434
+ this.Set('MonochromeURL', value);
105435
+ }
105436
+ /**
105437
+ * * Field Name: IsDefault
105438
+ * * Display Name: Is Default Theme
105439
+ * * SQL Data Type: bit
105440
+ * * Default Value: 0
105441
+ * * Description: When 1, this is the default theme applied when no other is selected. Single-default enforcement is handled at the application layer.
105442
+ */
105443
+ get IsDefault() {
105444
+ return this.Get('IsDefault');
105445
+ }
105446
+ set IsDefault(value) {
105447
+ this.Set('IsDefault', value);
105448
+ }
105449
+ /**
105450
+ * * Field Name: Status
105451
+ * * Display Name: Status
105452
+ * * SQL Data Type: nvarchar(20)
105453
+ * * Default Value: Active
105454
+ * * Value List Type: List
105455
+ * * Possible Values
105456
+ * * Active
105457
+ * * Draft
105458
+ * * Inactive
105459
+ * * Description: Lifecycle status: Active (available), Inactive (retired), or Draft (in progress, not applied).
105460
+ */
105461
+ get Status() {
105462
+ return this.Get('Status');
105463
+ }
105464
+ set Status(value) {
105465
+ this.Set('Status', value);
105466
+ }
105467
+ /**
105468
+ * * Field Name: Overrides
105469
+ * * Display Name: Token Overrides
105470
+ * * SQL Data Type: nvarchar(MAX)
105471
+ * * Description: Optional advanced token overrides as a JSON object mapping a --mj-* CSS custom property name to a value (e.g. {"--mj-brand-primary-hover":"#0a5cff"}). Applied on top of the seed-derived token contract at load, before CustomCSS. Leave null to use the pure derived theme.
105472
+ */
105473
+ get Overrides() {
105474
+ return this.Get('Overrides');
105475
+ }
105476
+ set Overrides(value) {
105477
+ this.Set('Overrides', value);
105478
+ }
105479
+ /**
105480
+ * * Field Name: CustomCSS
105481
+ * * Display Name: Custom CSS
105482
+ * * SQL Data Type: nvarchar(MAX)
105483
+ * * Description: Optional advanced raw CSS appended to the theme overlay and auto-scoped under [data-theme-overlay="<id>"]. Applied last, after the derived tokens and Overrides. Escape hatch for rules the seed/token model cannot express; leave null for none.
105484
+ */
105485
+ get CustomCSS() {
105486
+ return this.Get('CustomCSS');
105487
+ }
105488
+ set CustomCSS(value) {
105489
+ this.Set('CustomCSS', value);
105490
+ }
105491
+ /**
105492
+ * * Field Name: __mj_CreatedAt
105493
+ * * Display Name: Created At
105494
+ * * SQL Data Type: datetimeoffset
105495
+ * * Default Value: getutcdate()
105496
+ */
105497
+ get __mj_CreatedAt() {
105498
+ return this.Get('__mj_CreatedAt');
105499
+ }
105500
+ /**
105501
+ * * Field Name: __mj_UpdatedAt
105502
+ * * Display Name: Updated At
105503
+ * * SQL Data Type: datetimeoffset
105504
+ * * Default Value: getutcdate()
105505
+ */
105506
+ get __mj_UpdatedAt() {
105507
+ return this.Get('__mj_UpdatedAt');
105508
+ }
105509
+ };
105510
+ MJThemeEntity = __decorate([
105511
+ RegisterClass(BaseEntity, 'MJ: Themes')
105512
+ ], MJThemeEntity);
105513
+ export { MJThemeEntity };
104945
105514
  /**
104946
105515
  * MJ: User Application Entities - strongly typed entity sub-class
104947
105516
  * * Schema: __mj