@memberjunction/core-entities 5.14.0 → 5.15.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.
@@ -3820,7 +3820,7 @@ export const MJAICredentialBindingSchema = z.object({
3820
3820
  * * Default Value: newsequentialid()`),
3821
3821
  CredentialID: z.string().describe(`
3822
3822
  * * Field Name: CredentialID
3823
- * * Display Name: Credential ID
3823
+ * * Display Name: Credential
3824
3824
  * * SQL Data Type: uniqueidentifier
3825
3825
  * * Related Entity/Foreign Key: MJ: Credentials (vwCredentials.ID)
3826
3826
  * * Description: Reference to the credential being bound.`),
@@ -3836,19 +3836,19 @@ export const MJAICredentialBindingSchema = z.object({
3836
3836
  * * Description: The type of AI entity this credential is bound to: Vendor (broadest), ModelVendor (model+vendor specific), or PromptModel (most specific). Resolution follows prompt → model → vendor hierarchy.`),
3837
3837
  AIVendorID: z.string().nullable().describe(`
3838
3838
  * * Field Name: AIVendorID
3839
- * * Display Name: AI Vendor ID
3839
+ * * Display Name: AI Vendor
3840
3840
  * * SQL Data Type: uniqueidentifier
3841
3841
  * * Related Entity/Foreign Key: MJ: AI Vendors (vwAIVendors.ID)
3842
3842
  * * Description: Reference to AIVendor when BindingType is Vendor. NULL otherwise.`),
3843
3843
  AIModelVendorID: z.string().nullable().describe(`
3844
3844
  * * Field Name: AIModelVendorID
3845
- * * Display Name: AI Model Vendor ID
3845
+ * * Display Name: AI Model Vendor
3846
3846
  * * SQL Data Type: uniqueidentifier
3847
3847
  * * Related Entity/Foreign Key: MJ: AI Model Vendors (vwAIModelVendors.ID)
3848
3848
  * * Description: Reference to AIModelVendor when BindingType is ModelVendor. NULL otherwise.`),
3849
3849
  AIPromptModelID: z.string().nullable().describe(`
3850
3850
  * * Field Name: AIPromptModelID
3851
- * * Display Name: AI Prompt Model ID
3851
+ * * Display Name: AI Prompt Model
3852
3852
  * * SQL Data Type: uniqueidentifier
3853
3853
  * * Related Entity/Foreign Key: MJ: AI Prompt Models (vwAIPromptModels.ID)
3854
3854
  * * Description: Reference to AIPromptModel when BindingType is PromptModel. NULL otherwise.`),
@@ -3860,7 +3860,7 @@ export const MJAICredentialBindingSchema = z.object({
3860
3860
  * * Description: Priority for credential selection when multiple bindings exist at the same level. Lower values have higher priority (0 is highest). Enables failover when primary credentials are unavailable.`),
3861
3861
  IsActive: z.boolean().describe(`
3862
3862
  * * Field Name: IsActive
3863
- * * Display Name: Is Active
3863
+ * * Display Name: Active
3864
3864
  * * SQL Data Type: bit
3865
3865
  * * Default Value: 1
3866
3866
  * * Description: When false, this binding is ignored during credential resolution. Allows temporary disabling without deletion.`),
@@ -3876,19 +3876,19 @@ export const MJAICredentialBindingSchema = z.object({
3876
3876
  * * Default Value: getutcdate()`),
3877
3877
  Credential: z.string().describe(`
3878
3878
  * * Field Name: Credential
3879
- * * Display Name: Credential
3879
+ * * Display Name: Credential Name
3880
3880
  * * SQL Data Type: nvarchar(200)`),
3881
3881
  AIVendor: z.string().nullable().describe(`
3882
3882
  * * Field Name: AIVendor
3883
- * * Display Name: AI Vendor
3883
+ * * Display Name: Vendor Name
3884
3884
  * * SQL Data Type: nvarchar(50)`),
3885
3885
  AIModelVendor: z.string().nullable().describe(`
3886
3886
  * * Field Name: AIModelVendor
3887
- * * Display Name: AI Model Vendor
3888
- * * SQL Data Type: nvarchar(50)`),
3887
+ * * Display Name: Model Vendor Name
3888
+ * * SQL Data Type: nvarchar(100)`),
3889
3889
  AIPromptModel: z.string().nullable().describe(`
3890
3890
  * * Field Name: AIPromptModel
3891
- * * Display Name: AI Prompt Model
3891
+ * * Display Name: Prompt Model Name
3892
3892
  * * SQL Data Type: nvarchar(255)`),
3893
3893
  });
3894
3894
  /**
@@ -4358,13 +4358,24 @@ export const MJAIModelTypeSchema = z.object({
4358
4358
  * * SQL Data Type: uniqueidentifier
4359
4359
  * * Related Entity/Foreign Key: MJ: AI Modalities (vwAIModalities.ID)
4360
4360
  * * Description: Default output modality for this model type. Models of this type inherit this as their primary output modality unless overridden.`),
4361
+ SupportsPrefill: z.boolean().describe(`
4362
+ * * Field Name: SupportsPrefill
4363
+ * * Display Name: Supports Prefill
4364
+ * * SQL Data Type: bit
4365
+ * * Default Value: 0
4366
+ * * Description: Whether models of this type generally support assistant prefill. This is a default value that individual AI Model Vendor records can override. For LLM types, many providers support prefill; for image/audio types, this is typically false.`),
4367
+ PrefillFallbackText: z.string().nullable().describe(`
4368
+ * * Field Name: PrefillFallbackText
4369
+ * * Display Name: Prefill Fallback Text
4370
+ * * SQL Data Type: nvarchar(MAX)
4371
+ * * Description: Default fallback instruction text used when PrefillFallbackMode is SystemInstruction and the provider does not support native prefill. Use {{prefill}} as a placeholder for the actual prefill text. Example: "IMPORTANT: You must begin your response with exactly: {{prefill}}". Individual AI Model Vendor records can override this. If null, a generic fallback is used.`),
4361
4372
  DefaultInputModality: z.string().describe(`
4362
4373
  * * Field Name: DefaultInputModality
4363
- * * Display Name: Default Input Modality
4374
+ * * Display Name: Default Input Modality Name
4364
4375
  * * SQL Data Type: nvarchar(50)`),
4365
4376
  DefaultOutputModality: z.string().describe(`
4366
4377
  * * Field Name: DefaultOutputModality
4367
- * * Display Name: Default Output Modality
4378
+ * * Display Name: Default Output Modality Name
4368
4379
  * * SQL Data Type: nvarchar(50)`),
4369
4380
  });
4370
4381
  /**
@@ -4378,12 +4389,12 @@ export const MJAIModelVendorSchema = z.object({
4378
4389
  * * Default Value: newsequentialid()`),
4379
4390
  ModelID: z.string().describe(`
4380
4391
  * * Field Name: ModelID
4381
- * * Display Name: Model ID
4392
+ * * Display Name: Model
4382
4393
  * * SQL Data Type: uniqueidentifier
4383
4394
  * * Related Entity/Foreign Key: MJ: AI Models (vwAIModels.ID)`),
4384
4395
  VendorID: z.string().describe(`
4385
4396
  * * Field Name: VendorID
4386
- * * Display Name: Vendor ID
4397
+ * * Display Name: Vendor
4387
4398
  * * SQL Data Type: uniqueidentifier
4388
4399
  * * Related Entity/Foreign Key: MJ: AI Vendors (vwAIVendors.ID)`),
4389
4400
  Priority: z.number().describe(`
@@ -4459,21 +4470,31 @@ export const MJAIModelVendorSchema = z.object({
4459
4470
  * * Default Value: getutcdate()`),
4460
4471
  TypeID: z.string().describe(`
4461
4472
  * * Field Name: TypeID
4462
- * * Display Name: Type ID
4473
+ * * Display Name: Type
4463
4474
  * * SQL Data Type: uniqueidentifier
4464
4475
  * * Related Entity/Foreign Key: MJ: AI Vendor Type Definitions (vwAIVendorTypeDefinitions.ID)
4465
4476
  * * Description: References the type/role of the vendor for this model (e.g., model developer, inference provider)`),
4477
+ SupportsPrefill: z.boolean().nullable().describe(`
4478
+ * * Field Name: SupportsPrefill
4479
+ * * Display Name: Supports Prefill
4480
+ * * SQL Data Type: bit
4481
+ * * Description: Whether this specific model-vendor implementation supports assistant prefill. Overrides the AI Model Type default when set. NULL means inherit from the AI Model Type. For example, Claude via Anthropic supports prefill (true), but GPT-4 via OpenAI does not (false).`),
4482
+ PrefillFallbackText: z.string().nullable().describe(`
4483
+ * * Field Name: PrefillFallbackText
4484
+ * * Display Name: Prefill Fallback Text
4485
+ * * SQL Data Type: nvarchar(MAX)
4486
+ * * Description: Model-specific fallback instruction text used when PrefillFallbackMode is SystemInstruction and the provider does not support native prefill. Overrides the AI Model Type default. Use {{prefill}} as a placeholder. Allows tuning the fallback instruction per model since different models respond better to different phrasing.`),
4466
4487
  Model: z.string().describe(`
4467
4488
  * * Field Name: Model
4468
- * * Display Name: Model
4489
+ * * Display Name: Model Name
4469
4490
  * * SQL Data Type: nvarchar(50)`),
4470
4491
  Vendor: z.string().describe(`
4471
4492
  * * Field Name: Vendor
4472
- * * Display Name: Vendor
4493
+ * * Display Name: Vendor Name
4473
4494
  * * SQL Data Type: nvarchar(50)`),
4474
4495
  Type: z.string().describe(`
4475
4496
  * * Field Name: Type
4476
- * * Display Name: Type
4497
+ * * Display Name: Type Name
4477
4498
  * * SQL Data Type: nvarchar(50)`),
4478
4499
  });
4479
4500
  /**
@@ -4549,9 +4570,19 @@ export const MJAIModelSchema = z.object({
4549
4570
  * * SQL Data Type: uniqueidentifier
4550
4571
  * * Related Entity/Foreign Key: MJ: AI Models (vwAIModels.ID)
4551
4572
  * * Description: Reference to the previous version of this model, creating a version lineage chain. For example, GPT-4 Turbo might reference GPT-4 as its prior version.`),
4573
+ SupportsPrefill: z.boolean().nullable().describe(`
4574
+ * * Field Name: SupportsPrefill
4575
+ * * Display Name: Supports Prefill
4576
+ * * SQL Data Type: bit
4577
+ * * Description: Whether this model supports assistant prefill. Overrides the AI Model Type default when set. NULL means inherit from the AI Model Type. Can be further overridden per-vendor in AI Model Vendor.`),
4578
+ PrefillFallbackText: z.string().nullable().describe(`
4579
+ * * Field Name: PrefillFallbackText
4580
+ * * Display Name: Prefill Fallback Text
4581
+ * * SQL Data Type: nvarchar(MAX)
4582
+ * * Description: Model-level fallback instruction text used when PrefillFallbackMode is SystemInstruction and the provider does not support native prefill. Overrides the AI Model Type default, can be further overridden per-vendor in AI Model Vendor. Use {{prefill}} as a placeholder.`),
4552
4583
  AIModelType: z.string().describe(`
4553
4584
  * * Field Name: AIModelType
4554
- * * Display Name: AI Model Type
4585
+ * * Display Name: Model Type Name
4555
4586
  * * SQL Data Type: nvarchar(50)`),
4556
4587
  Vendor: z.string().nullable().describe(`
4557
4588
  * * Field Name: Vendor
@@ -4900,17 +4931,17 @@ export const MJAIPromptRunSchema = z.object({
4900
4931
  * * Description: The output result from the model.`),
4901
4932
  TokensUsed: z.number().nullable().describe(`
4902
4933
  * * Field Name: TokensUsed
4903
- * * Display Name: Tokens Used
4934
+ * * Display Name: Total Tokens Used
4904
4935
  * * SQL Data Type: int
4905
4936
  * * Description: Total number of tokens used (prompt + completion).`),
4906
4937
  TokensPrompt: z.number().nullable().describe(`
4907
4938
  * * Field Name: TokensPrompt
4908
- * * Display Name: Tokens Prompt
4939
+ * * Display Name: Prompt Tokens
4909
4940
  * * SQL Data Type: int
4910
4941
  * * Description: Number of tokens in the prompt.`),
4911
4942
  TokensCompletion: z.number().nullable().describe(`
4912
4943
  * * Field Name: TokensCompletion
4913
- * * Display Name: Tokens Completion
4944
+ * * Display Name: Completion Tokens
4914
4945
  * * SQL Data Type: int
4915
4946
  * * Description: Number of tokens in the completion/result.`),
4916
4947
  TotalCost: z.number().nullable().describe(`
@@ -4941,7 +4972,7 @@ export const MJAIPromptRunSchema = z.object({
4941
4972
  * * Default Value: getutcdate()`),
4942
4973
  ParentID: z.string().nullable().describe(`
4943
4974
  * * Field Name: ParentID
4944
- * * Display Name: Parent ID
4975
+ * * Display Name: Parent Run
4945
4976
  * * SQL Data Type: uniqueidentifier
4946
4977
  * * Related Entity/Foreign Key: MJ: AI Prompt Runs (vwAIPromptRuns.ID)
4947
4978
  * * Description: References the parent AIPromptRun.ID for hierarchical execution tracking. NULL for top-level runs, populated for parallel children and result selector runs.`),
@@ -4964,7 +4995,7 @@ export const MJAIPromptRunSchema = z.object({
4964
4995
  * * Description: Execution order for parallel child runs and result selector runs. Used to track the sequence of execution within a parallel run group. NULL for single runs and parallel parent runs.`),
4965
4996
  AgentRunID: z.string().nullable().describe(`
4966
4997
  * * Field Name: AgentRunID
4967
- * * Display Name: Agent Run ID
4998
+ * * Display Name: Agent Run
4968
4999
  * * SQL Data Type: uniqueidentifier
4969
5000
  * * Related Entity/Foreign Key: MJ: AI Agent Runs (vwAIAgentRuns.ID)
4970
5001
  * * Description: Optional reference to the AIAgentRun that initiated this prompt execution. Links prompt runs to their parent agent runs for comprehensive execution tracking.`),
@@ -4980,17 +5011,17 @@ export const MJAIPromptRunSchema = z.object({
4980
5011
  * * Description: ISO 4217 currency code for the Cost field (e.g., USD, EUR, GBP). Different AI providers may use different currencies.`),
4981
5012
  TokensUsedRollup: z.number().nullable().describe(`
4982
5013
  * * Field Name: TokensUsedRollup
4983
- * * Display Name: Tokens Used Rollup
5014
+ * * Display Name: Total Tokens (Rollup)
4984
5015
  * * SQL Data Type: int
4985
5016
  * * Description: Total tokens used including this execution and all child/grandchild executions. This provides a complete view of token usage for hierarchical prompt trees. Calculated as TokensPromptRollup + TokensCompletionRollup.`),
4986
5017
  TokensPromptRollup: z.number().nullable().describe(`
4987
5018
  * * Field Name: TokensPromptRollup
4988
- * * Display Name: Tokens Prompt Rollup
5019
+ * * Display Name: Prompt Tokens (Rollup)
4989
5020
  * * SQL Data Type: int
4990
5021
  * * Description: Total prompt/input tokens including this execution and all child/grandchild executions. For leaf nodes (no children), this equals TokensPrompt. For parent nodes, this includes the sum of all descendant prompt tokens.`),
4991
5022
  TokensCompletionRollup: z.number().nullable().describe(`
4992
5023
  * * Field Name: TokensCompletionRollup
4993
- * * Display Name: Tokens Completion Rollup
5024
+ * * Display Name: Completion Tokens (Rollup)
4994
5025
  * * SQL Data Type: int
4995
5026
  * * Description: Total completion/output tokens including this execution and all child/grandchild executions. For leaf nodes (no children), this equals TokensCompletion. For parent nodes, this includes the sum of all descendant completion tokens.`),
4996
5027
  Temperature: z.number().nullable().describe(`
@@ -5040,12 +5071,12 @@ export const MJAIPromptRunSchema = z.object({
5040
5071
  * * Description: The response format requested for this run (e.g., 'JSON', 'Text', 'Markdown')`),
5041
5072
  LogProbs: z.boolean().nullable().describe(`
5042
5073
  * * Field Name: LogProbs
5043
- * * Display Name: Log Probs
5074
+ * * Display Name: Log Probabilities
5044
5075
  * * SQL Data Type: bit
5045
5076
  * * Description: Whether log probabilities were requested for this run`),
5046
5077
  TopLogProbs: z.number().nullable().describe(`
5047
5078
  * * Field Name: TopLogProbs
5048
- * * Display Name: Top Log Probs
5079
+ * * Display Name: Top Log Probabilities
5049
5080
  * * SQL Data Type: int
5050
5081
  * * Description: Number of top log probabilities requested per token (if LogProbs is true)`),
5051
5082
  DescendantCost: z.number().nullable().describe(`
@@ -5141,7 +5172,7 @@ export const MJAIPromptRunSchema = z.object({
5141
5172
  * * Description: JSON array of duration in milliseconds for each failover attempt`),
5142
5173
  OriginalModelID: z.string().nullable().describe(`
5143
5174
  * * Field Name: OriginalModelID
5144
- * * Display Name: Original Model ID
5175
+ * * Display Name: Original Model
5145
5176
  * * SQL Data Type: uniqueidentifier
5146
5177
  * * Related Entity/Foreign Key: MJ: AI Models (vwAIModels.ID)
5147
5178
  * * Description: The AI Model ID that was originally attempted before any failovers`),
@@ -5152,12 +5183,12 @@ export const MJAIPromptRunSchema = z.object({
5152
5183
  * * Description: Timestamp when the original request started, before any failovers`),
5153
5184
  TotalFailoverDuration: z.number().nullable().describe(`
5154
5185
  * * Field Name: TotalFailoverDuration
5155
- * * Display Name: Total Failover Duration
5186
+ * * Display Name: Total Failover Duration (ms)
5156
5187
  * * SQL Data Type: int
5157
5188
  * * Description: Total time spent in failover attempts in milliseconds`),
5158
5189
  RerunFromPromptRunID: z.string().nullable().describe(`
5159
5190
  * * Field Name: RerunFromPromptRunID
5160
- * * Display Name: Rerun From Prompt Run ID
5191
+ * * Display Name: Rerun From
5161
5192
  * * SQL Data Type: uniqueidentifier
5162
5193
  * * Related Entity/Foreign Key: MJ: AI Prompt Runs (vwAIPromptRuns.ID)
5163
5194
  * * Description: If this run was initiated as a re-run of another prompt run, this field links back to the original run ID`),
@@ -5218,7 +5249,7 @@ export const MJAIPromptRunSchema = z.object({
5218
5249
  * * Description: Unique key used for caching this prompt result, typically a hash of the prompt and parameters`),
5219
5250
  JudgeID: z.string().nullable().describe(`
5220
5251
  * * Field Name: JudgeID
5221
- * * Display Name: Judge ID
5252
+ * * Display Name: Judge
5222
5253
  * * SQL Data Type: uniqueidentifier
5223
5254
  * * Related Entity/Foreign Key: MJ: AI Prompts (vwAIPrompts.ID)
5224
5255
  * * Description: ID of the AIPrompt used as a judge to evaluate and rank multiple parallel execution results`),
@@ -5241,7 +5272,7 @@ export const MJAIPromptRunSchema = z.object({
5241
5272
  * * Description: Indicates whether streaming was enabled for this prompt execution`),
5242
5273
  FirstTokenTime: z.number().nullable().describe(`
5243
5274
  * * Field Name: FirstTokenTime
5244
- * * Display Name: First Token Time
5275
+ * * Display Name: First Token Time (ms)
5245
5276
  * * SQL Data Type: int
5246
5277
  * * Description: Time in milliseconds from request initiation to receiving the first token from the model`),
5247
5278
  ErrorDetails: z.string().nullable().describe(`
@@ -5251,23 +5282,23 @@ export const MJAIPromptRunSchema = z.object({
5251
5282
  * * Description: Detailed error information in JSON format if the prompt execution failed, including stack traces and error codes`),
5252
5283
  ChildPromptID: z.string().nullable().describe(`
5253
5284
  * * Field Name: ChildPromptID
5254
- * * Display Name: Child Prompt ID
5285
+ * * Display Name: Child Prompt
5255
5286
  * * SQL Data Type: uniqueidentifier
5256
5287
  * * Related Entity/Foreign Key: MJ: AI Prompts (vwAIPrompts.ID)
5257
5288
  * * Description: References the specific child prompt that was executed as part of hierarchical prompt composition. NULL for regular prompts or parent prompts that don't directly execute a child.`),
5258
5289
  QueueTime: z.number().nullable().describe(`
5259
5290
  * * Field Name: QueueTime
5260
- * * Display Name: Queue Time
5291
+ * * Display Name: Queue Time (ms)
5261
5292
  * * SQL Data Type: int
5262
5293
  * * Description: Queue time in milliseconds before the model started processing the request. Provider-specific timing metric.`),
5263
5294
  PromptTime: z.number().nullable().describe(`
5264
5295
  * * Field Name: PromptTime
5265
- * * Display Name: Prompt Time
5296
+ * * Display Name: Prompt Time (ms)
5266
5297
  * * SQL Data Type: int
5267
5298
  * * Description: Time in milliseconds for the model to ingest and process the prompt. Provider-specific timing metric.`),
5268
5299
  CompletionTime: z.number().nullable().describe(`
5269
5300
  * * Field Name: CompletionTime
5270
- * * Display Name: Completion Time
5301
+ * * Display Name: Completion Time (ms)
5271
5302
  * * SQL Data Type: int
5272
5303
  * * Description: Time in milliseconds for the model to generate the completion/response tokens. Provider-specific timing metric.`),
5273
5304
  ModelSpecificResponseDetails: z.string().nullable().describe(`
@@ -5292,10 +5323,15 @@ export const MJAIPromptRunSchema = z.object({
5292
5323
  * * Description: Human-readable notes and comments about this prompt run`),
5293
5324
  TestRunID: z.string().nullable().describe(`
5294
5325
  * * Field Name: TestRunID
5295
- * * Display Name: Test Run ID
5326
+ * * Display Name: Test Run
5296
5327
  * * SQL Data Type: uniqueidentifier
5297
5328
  * * Related Entity/Foreign Key: MJ: Test Runs (vwTestRuns.ID)
5298
5329
  * * Description: Optional Foreign Key - Links this prompt run to a test run if this prompt execution was part of a test. Enables testing individual prompts for quality and consistency before agent integration.`),
5330
+ AssistantPrefill: z.string().nullable().describe(`
5331
+ * * Field Name: AssistantPrefill
5332
+ * * Display Name: Assistant Prefill
5333
+ * * SQL Data Type: nvarchar(MAX)
5334
+ * * Description: The assistant prefill text that was used during this prompt execution. Records whether native prefill or fallback was applied. NULL means no prefill was used.`),
5299
5335
  Prompt: z.string().describe(`
5300
5336
  * * Field Name: Prompt
5301
5337
  * * Display Name: Prompt
@@ -5330,7 +5366,7 @@ export const MJAIPromptRunSchema = z.object({
5330
5366
  * * SQL Data Type: nvarchar(50)`),
5331
5367
  RerunFromPromptRun: z.string().nullable().describe(`
5332
5368
  * * Field Name: RerunFromPromptRun
5333
- * * Display Name: Rerun From Prompt Run
5369
+ * * Display Name: Rerun From
5334
5370
  * * SQL Data Type: nvarchar(255)`),
5335
5371
  Judge: z.string().nullable().describe(`
5336
5372
  * * Field Name: Judge
@@ -5346,11 +5382,11 @@ export const MJAIPromptRunSchema = z.object({
5346
5382
  * * SQL Data Type: nvarchar(255)`),
5347
5383
  RootParentID: z.string().nullable().describe(`
5348
5384
  * * Field Name: RootParentID
5349
- * * Display Name: Root Parent ID
5385
+ * * Display Name: Root Parent
5350
5386
  * * SQL Data Type: uniqueidentifier`),
5351
5387
  RootRerunFromPromptRunID: z.string().nullable().describe(`
5352
5388
  * * Field Name: RootRerunFromPromptRunID
5353
- * * Display Name: Root Rerun From Prompt Run ID
5389
+ * * Display Name: Root Rerun From
5354
5390
  * * SQL Data Type: uniqueidentifier`),
5355
5391
  });
5356
5392
  /**
@@ -5400,19 +5436,19 @@ export const MJAIPromptSchema = z.object({
5400
5436
  * * SQL Data Type: nvarchar(MAX)`),
5401
5437
  TemplateID: z.string().describe(`
5402
5438
  * * Field Name: TemplateID
5403
- * * Display Name: Template ID
5439
+ * * Display Name: Template
5404
5440
  * * SQL Data Type: uniqueidentifier
5405
5441
  * * Related Entity/Foreign Key: MJ: Templates (vwTemplates.ID)
5406
5442
  * * Description: Reference to the template used for the prompt.`),
5407
5443
  CategoryID: z.string().nullable().describe(`
5408
5444
  * * Field Name: CategoryID
5409
- * * Display Name: Category ID
5445
+ * * Display Name: Category
5410
5446
  * * SQL Data Type: uniqueidentifier
5411
5447
  * * Related Entity/Foreign Key: MJ: AI Prompt Categories (vwAIPromptCategories.ID)
5412
5448
  * * Description: Reference to the category the prompt belongs to.`),
5413
5449
  TypeID: z.string().describe(`
5414
5450
  * * Field Name: TypeID
5415
- * * Display Name: Type ID
5451
+ * * Display Name: Type
5416
5452
  * * SQL Data Type: uniqueidentifier
5417
5453
  * * Related Entity/Foreign Key: MJ: AI Prompt Types (vwAIPromptTypes.ID)
5418
5454
  * * Description: Reference to the type of the prompt.`),
@@ -5455,13 +5491,13 @@ export const MJAIPromptSchema = z.object({
5455
5491
  * * Description: A JSON-formatted string containing model-specific response format instructions. This will be parsed and provided as a JSON object to the model.`),
5456
5492
  AIModelTypeID: z.string().nullable().describe(`
5457
5493
  * * Field Name: AIModelTypeID
5458
- * * Display Name: AI Model Type ID
5494
+ * * Display Name: AI Model Type
5459
5495
  * * SQL Data Type: uniqueidentifier
5460
5496
  * * Related Entity/Foreign Key: MJ: AI Model Types (vwAIModelTypes.ID)
5461
5497
  * * Description: References the type of AI model this prompt is designed for (LLM, Image, Audio, etc.).`),
5462
5498
  MinPowerRank: z.number().nullable().describe(`
5463
5499
  * * Field Name: MinPowerRank
5464
- * * Display Name: Min Power Rank
5500
+ * * Display Name: Minimum Power Rank
5465
5501
  * * SQL Data Type: int
5466
5502
  * * Default Value: 0
5467
5503
  * * Description: The minimum power rank required for models to be considered for this prompt.`),
@@ -5506,7 +5542,7 @@ export const MJAIPromptSchema = z.object({
5506
5542
  * * Description: When ParallelizationMode is StaticCount, specifies the number of parallel executions.`),
5507
5543
  ParallelConfigParam: z.string().nullable().describe(`
5508
5544
  * * Field Name: ParallelConfigParam
5509
- * * Display Name: Parallel Config Param
5545
+ * * Display Name: Parallel Config Parameter
5510
5546
  * * SQL Data Type: nvarchar(100)
5511
5547
  * * Description: When ParallelizationMode is ConfigParam, specifies the name of the configuration parameter that contains the parallel count.`),
5512
5548
  OutputType: z.union([z.literal('boolean'), z.literal('date'), z.literal('number'), z.literal('object'), z.literal('string')]).describe(`
@@ -5546,7 +5582,7 @@ export const MJAIPromptSchema = z.object({
5546
5582
  * * Description: Maximum number of retry attempts for API failures.`),
5547
5583
  RetryDelayMS: z.number().describe(`
5548
5584
  * * Field Name: RetryDelayMS
5549
- * * Display Name: Retry Delay MS
5585
+ * * Display Name: Retry Delay (ms)
5550
5586
  * * SQL Data Type: int
5551
5587
  * * Default Value: 0
5552
5588
  * * Description: Delay between retry attempts in milliseconds.`),
@@ -5563,7 +5599,7 @@ export const MJAIPromptSchema = z.object({
5563
5599
  * * Description: Strategy for calculating retry delays: Fixed (same delay each time), Exponential (doubling delay), or Linear (linearly increasing delay).`),
5564
5600
  ResultSelectorPromptID: z.string().nullable().describe(`
5565
5601
  * * Field Name: ResultSelectorPromptID
5566
- * * Display Name: Result Selector Prompt ID
5602
+ * * Display Name: Result Selector Prompt
5567
5603
  * * SQL Data Type: uniqueidentifier
5568
5604
  * * Related Entity/Foreign Key: MJ: AI Prompts (vwAIPrompts.ID)
5569
5605
  * * Description: References another prompt that selects the best result from multiple parallel executions.`),
@@ -5575,7 +5611,7 @@ export const MJAIPromptSchema = z.object({
5575
5611
  * * Description: When true, results from this prompt will be cached for potential reuse.`),
5576
5612
  CacheTTLSeconds: z.number().nullable().describe(`
5577
5613
  * * Field Name: CacheTTLSeconds
5578
- * * Display Name: Cache TTL Seconds
5614
+ * * Display Name: Cache TTL (Seconds)
5579
5615
  * * SQL Data Type: int
5580
5616
  * * Description: Time-to-live in seconds for cached results. NULL means results never expire.`),
5581
5617
  CacheMatchType: z.union([z.literal('Exact'), z.literal('Vector')]).describe(`
@@ -5613,7 +5649,7 @@ export const MJAIPromptSchema = z.object({
5613
5649
  * * Description: When true, the agent context must match for a cache hit. When false, agent-specific and non-agent results can be used interchangeably.`),
5614
5650
  CacheMustMatchConfig: z.boolean().describe(`
5615
5651
  * * Field Name: CacheMustMatchConfig
5616
- * * Display Name: Cache Must Match Config
5652
+ * * Display Name: Cache Must Match Configuration
5617
5653
  * * SQL Data Type: bit
5618
5654
  * * Default Value: 0
5619
5655
  * * Description: When true, the configuration must match for a cache hit. When false, results from any configuration can be used.`),
@@ -5681,13 +5717,13 @@ export const MJAIPromptSchema = z.object({
5681
5717
  * * Description: Default stop sequences for this prompt. Comma-delimited list of sequences that will stop generation when encountered. Can be overridden at runtime.`),
5682
5718
  IncludeLogProbs: z.boolean().nullable().describe(`
5683
5719
  * * Field Name: IncludeLogProbs
5684
- * * Display Name: Include Log Probs
5720
+ * * Display Name: Include Log Probabilities
5685
5721
  * * SQL Data Type: bit
5686
5722
  * * Default Value: 0
5687
5723
  * * Description: Default setting for including log probabilities in the response. Can be overridden at runtime.`),
5688
5724
  TopLogProbs: z.number().nullable().describe(`
5689
5725
  * * Field Name: TopLogProbs
5690
- * * Display Name: Top Log Probs
5726
+ * * Display Name: Top Log Probabilities
5691
5727
  * * SQL Data Type: int
5692
5728
  * * Description: Default number of top log probabilities to include when IncludeLogProbs is true. Can be overridden at runtime.`),
5693
5729
  FailoverStrategy: z.union([z.literal('NextBestModel'), z.literal('NextBestModel'), z.literal('None'), z.literal('None'), z.literal('PowerRank'), z.literal('PowerRank'), z.literal('SameModelDifferentVendor'), z.literal('SameModelDifferentVendor')]).describe(`
@@ -5714,7 +5750,7 @@ export const MJAIPromptSchema = z.object({
5714
5750
  * * Description: Maximum number of failover attempts before giving up`),
5715
5751
  FailoverDelaySeconds: z.number().nullable().describe(`
5716
5752
  * * Field Name: FailoverDelaySeconds
5717
- * * Display Name: Failover Delay Seconds
5753
+ * * Display Name: Failover Delay (seconds)
5718
5754
  * * SQL Data Type: int
5719
5755
  * * Default Value: 5
5720
5756
  * * Description: Initial delay in seconds between failover attempts`),
@@ -5753,29 +5789,45 @@ export const MJAIPromptSchema = z.object({
5753
5789
  * * Display Name: Effort Level
5754
5790
  * * SQL Data Type: int
5755
5791
  * * Description: Effort level for this specific prompt (1-100, where 1=minimal effort, 100=maximum effort). Higher values request more thorough reasoning and analysis. Can be overridden by agent DefaultPromptEffortLevel or runtime parameters.`),
5792
+ AssistantPrefill: z.string().nullable().describe(`
5793
+ * * Field Name: AssistantPrefill
5794
+ * * Display Name: Assistant Prefill
5795
+ * * SQL Data Type: nvarchar(MAX)
5796
+ * * Description: Optional text to prefill the assistant response. The model will continue generating from where this text ends. Used with StopSequences for structured output extraction (e.g., prefill with \`\`\`json to get raw JSON). Only effective with providers that support prefill natively; see PrefillFallbackMode for non-supporting providers.`),
5797
+ PrefillFallbackMode: z.union([z.literal('Ignore'), z.literal('None'), z.literal('SystemInstruction')]).describe(`
5798
+ * * Field Name: PrefillFallbackMode
5799
+ * * Display Name: Prefill Fallback Mode
5800
+ * * SQL Data Type: nvarchar(20)
5801
+ * * Default Value: Ignore
5802
+ * * Value List Type: List
5803
+ * * Possible Values
5804
+ * * Ignore
5805
+ * * None
5806
+ * * SystemInstruction
5807
+ * * Description: Controls behavior when the selected provider does not support native assistant prefill. Ignore = silently skip prefill, SystemInstruction = inject a system message instructing the model to start its response with the prefill text (uses fallback text from AI Model Vendor or AI Model Type), None = no fallback (prefill only works with supported providers).`),
5756
5808
  Template: z.string().describe(`
5757
5809
  * * Field Name: Template
5758
- * * Display Name: Template
5810
+ * * Display Name: Template Text
5759
5811
  * * SQL Data Type: nvarchar(255)`),
5760
5812
  Category: z.string().nullable().describe(`
5761
5813
  * * Field Name: Category
5762
- * * Display Name: Category
5814
+ * * Display Name: Category Name
5763
5815
  * * SQL Data Type: nvarchar(255)`),
5764
5816
  Type: z.string().describe(`
5765
5817
  * * Field Name: Type
5766
- * * Display Name: Type
5818
+ * * Display Name: Type Name
5767
5819
  * * SQL Data Type: nvarchar(255)`),
5768
5820
  AIModelType: z.string().nullable().describe(`
5769
5821
  * * Field Name: AIModelType
5770
- * * Display Name: AI Model Type
5822
+ * * Display Name: AI Model Type Name
5771
5823
  * * SQL Data Type: nvarchar(50)`),
5772
5824
  ResultSelectorPrompt: z.string().nullable().describe(`
5773
5825
  * * Field Name: ResultSelectorPrompt
5774
- * * Display Name: Result Selector Prompt
5826
+ * * Display Name: Result Selector Prompt Name
5775
5827
  * * SQL Data Type: nvarchar(255)`),
5776
5828
  RootResultSelectorPromptID: z.string().nullable().describe(`
5777
5829
  * * Field Name: RootResultSelectorPromptID
5778
- * * Display Name: Root Result Selector Prompt ID
5830
+ * * Display Name: Root Result Selector Prompt
5779
5831
  * * SQL Data Type: uniqueidentifier`),
5780
5832
  });
5781
5833
  /**
@@ -8282,7 +8334,7 @@ export const MJCompanyIntegrationRunSchema = z.object({
8282
8334
  * * Related Entity/Foreign Key: MJ: Company Integrations (vwCompanyIntegrations.ID)`),
8283
8335
  RunByUserID: z.string().describe(`
8284
8336
  * * Field Name: RunByUserID
8285
- * * Display Name: Run By User
8337
+ * * Display Name: Run By User ID
8286
8338
  * * SQL Data Type: uniqueidentifier
8287
8339
  * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)`),
8288
8340
  StartedAt: z.date().nullable().describe(`
@@ -8331,9 +8383,15 @@ export const MJCompanyIntegrationRunSchema = z.object({
8331
8383
  * * Description: Optional error log information for the integration run.`),
8332
8384
  ConfigData: z.string().nullable().describe(`
8333
8385
  * * Field Name: ConfigData
8334
- * * Display Name: Config Data
8386
+ * * Display Name: Configuration Data
8335
8387
  * * SQL Data Type: nvarchar(MAX)
8336
8388
  * * Description: Optional configuration data in JSON format for the request that started the integration run for audit purposes.`),
8389
+ ScheduledJobRunID: z.string().nullable().describe(`
8390
+ * * Field Name: ScheduledJobRunID
8391
+ * * Display Name: Scheduled Job Run
8392
+ * * SQL Data Type: uniqueidentifier
8393
+ * * Related Entity/Foreign Key: MJ: Scheduled Job Runs (vwScheduledJobRuns.ID)
8394
+ * * Description: Links to the scheduled job run that triggered this integration sync. NULL for manually-triggered syncs.`),
8337
8395
  Integration: z.string().describe(`
8338
8396
  * * Field Name: Integration
8339
8397
  * * Display Name: Integration
@@ -8465,7 +8523,7 @@ export const MJCompanyIntegrationSchema = z.object({
8465
8523
  * * Description: The company's identifier in the external system, used for API calls.`),
8466
8524
  IsExternalSystemReadOnly: z.boolean().describe(`
8467
8525
  * * Field Name: IsExternalSystemReadOnly
8468
- * * Display Name: External System Read Only
8526
+ * * Display Name: Is Read Only
8469
8527
  * * SQL Data Type: bit
8470
8528
  * * Default Value: 0
8471
8529
  * * Description: Indicates if data can only be read from the external system, not written back.`),
@@ -8574,13 +8632,19 @@ export const MJCompanyIntegrationSchema = z.object({
8574
8632
  * * Display Name: Lock Expires At
8575
8633
  * * SQL Data Type: datetimeoffset
8576
8634
  * * Description: When the lock should be considered stale and eligible for cleanup`),
8635
+ ScheduledJobID: z.string().nullable().describe(`
8636
+ * * Field Name: ScheduledJobID
8637
+ * * Display Name: Scheduled Job
8638
+ * * SQL Data Type: uniqueidentifier
8639
+ * * Related Entity/Foreign Key: MJ: Scheduled Jobs (vwScheduledJobs.ID)
8640
+ * * Description: Associates this company integration with a scheduled job for automatic sync execution. NULL if no schedule is configured.`),
8577
8641
  Company: z.string().describe(`
8578
8642
  * * Field Name: Company
8579
- * * Display Name: Company
8643
+ * * Display Name: Company Name
8580
8644
  * * SQL Data Type: nvarchar(50)`),
8581
8645
  Integration: z.string().describe(`
8582
8646
  * * Field Name: Integration
8583
- * * Display Name: Integration
8647
+ * * Display Name: Integration Name
8584
8648
  * * SQL Data Type: nvarchar(100)`),
8585
8649
  DriverClassName: z.string().nullable().describe(`
8586
8650
  * * Field Name: DriverClassName
@@ -8592,7 +8656,7 @@ export const MJCompanyIntegrationSchema = z.object({
8592
8656
  * * SQL Data Type: nvarchar(100)`),
8593
8657
  LastRunID: z.string().nullable().describe(`
8594
8658
  * * Field Name: LastRunID
8595
- * * Display Name: Last Run ID
8659
+ * * Display Name: Last Run
8596
8660
  * * SQL Data Type: uniqueidentifier`),
8597
8661
  LastRunStartedAt: z.date().nullable().describe(`
8598
8662
  * * Field Name: LastRunStartedAt
@@ -13327,6 +13391,183 @@ export const MJEntityFieldSchema = z.object({
13327
13391
  * * Display Name: Related Entity Class Name
13328
13392
  * * SQL Data Type: nvarchar(MAX)`),
13329
13393
  });
13394
+ /**
13395
+ * zod schema definition for the entity MJ: Entity Organic Key Related Entities
13396
+ */
13397
+ export const MJEntityOrganicKeyRelatedEntitySchema = z.object({
13398
+ ID: z.string().describe(`
13399
+ * * Field Name: ID
13400
+ * * Display Name: ID
13401
+ * * SQL Data Type: uniqueidentifier
13402
+ * * Default Value: newsequentialid()`),
13403
+ EntityOrganicKeyID: z.string().describe(`
13404
+ * * Field Name: EntityOrganicKeyID
13405
+ * * Display Name: Organic Key ID
13406
+ * * SQL Data Type: uniqueidentifier
13407
+ * * Related Entity/Foreign Key: MJ: Entity Organic Keys (vwEntityOrganicKeys.ID)`),
13408
+ RelatedEntityID: z.string().describe(`
13409
+ * * Field Name: RelatedEntityID
13410
+ * * Display Name: Related Entity ID
13411
+ * * SQL Data Type: uniqueidentifier
13412
+ * * Related Entity/Foreign Key: MJ: Entities (vwEntities.ID)`),
13413
+ RelatedEntityFieldNames: z.string().nullable().describe(`
13414
+ * * Field Name: RelatedEntityFieldNames
13415
+ * * Display Name: Related Entity Fields
13416
+ * * SQL Data Type: nvarchar(500)
13417
+ * * Description: Comma-delimited field names in the related entity, positionally matching MatchFieldNames on the parent key. NULL when using transitive matching.`),
13418
+ TransitiveObjectName: z.string().nullable().describe(`
13419
+ * * Field Name: TransitiveObjectName
13420
+ * * Display Name: Transitive Object Name
13421
+ * * SQL Data Type: nvarchar(500)
13422
+ * * Description: Schema-qualified name of a SQL view or table that bridges the organic key to the related entity (e.g., "dbo.vwContactRecipientBridge"). This object encapsulates any number of join hops. NULL for direct matches.`),
13423
+ TransitiveObjectMatchFieldNames: z.string().nullable().describe(`
13424
+ * * Field Name: TransitiveObjectMatchFieldNames
13425
+ * * Display Name: Transitive Match Fields
13426
+ * * SQL Data Type: nvarchar(500)
13427
+ * * Description: Comma-delimited field names in the transitive object that match the organic key values, positionally aligned with MatchFieldNames. NULL for direct matches.`),
13428
+ TransitiveObjectOutputFieldName: z.string().nullable().describe(`
13429
+ * * Field Name: TransitiveObjectOutputFieldName
13430
+ * * Display Name: Transitive Output Field
13431
+ * * SQL Data Type: nvarchar(255)
13432
+ * * Description: The field in the transitive object that produces the value to join against the related entity. NULL for direct matches.`),
13433
+ RelatedEntityJoinFieldName: z.string().nullable().describe(`
13434
+ * * Field Name: RelatedEntityJoinFieldName
13435
+ * * Display Name: Related Entity Join Field
13436
+ * * SQL Data Type: nvarchar(255)
13437
+ * * Description: The field in the related entity that matches TransitiveObjectOutputFieldName. NULL for direct matches.`),
13438
+ DisplayName: z.string().nullable().describe(`
13439
+ * * Field Name: DisplayName
13440
+ * * Display Name: Display Name
13441
+ * * SQL Data Type: nvarchar(255)
13442
+ * * Description: Tab/section label override. If NULL, defaults to the related entity's display name.`),
13443
+ DisplayLocation: z.union([z.literal('After Field Tabs'), z.literal('Before Field Tabs')]).describe(`
13444
+ * * Field Name: DisplayLocation
13445
+ * * Display Name: Display Location
13446
+ * * SQL Data Type: nvarchar(50)
13447
+ * * Default Value: After Field Tabs
13448
+ * * Value List Type: List
13449
+ * * Possible Values
13450
+ * * After Field Tabs
13451
+ * * Before Field Tabs
13452
+ * * Description: Where to render the organic key tab relative to FK relationship tabs. After Field Tabs or Before Field Tabs.`),
13453
+ DisplayComponentID: z.string().nullable().describe(`
13454
+ * * Field Name: DisplayComponentID
13455
+ * * Display Name: Display Component
13456
+ * * SQL Data Type: uniqueidentifier
13457
+ * * Description: FK to component registry for a custom display component. NULL uses the default EntityDataGrid.`),
13458
+ DisplayComponentConfiguration: z.string().nullable().describe(`
13459
+ * * Field Name: DisplayComponentConfiguration
13460
+ * * Display Name: Display Component Configuration
13461
+ * * SQL Data Type: nvarchar(MAX)
13462
+ * * Description: JSON configuration passed to the display component.`),
13463
+ Sequence: z.number().describe(`
13464
+ * * Field Name: Sequence
13465
+ * * Display Name: Sequence
13466
+ * * SQL Data Type: int
13467
+ * * Default Value: 0
13468
+ * * Description: Tab ordering within this organic key's related entities. Lower values appear first.`),
13469
+ __mj_CreatedAt: z.date().describe(`
13470
+ * * Field Name: __mj_CreatedAt
13471
+ * * Display Name: Created At
13472
+ * * SQL Data Type: datetimeoffset
13473
+ * * Default Value: getutcdate()`),
13474
+ __mj_UpdatedAt: z.date().describe(`
13475
+ * * Field Name: __mj_UpdatedAt
13476
+ * * Display Name: Updated At
13477
+ * * SQL Data Type: datetimeoffset
13478
+ * * Default Value: getutcdate()`),
13479
+ EntityOrganicKey: z.string().describe(`
13480
+ * * Field Name: EntityOrganicKey
13481
+ * * Display Name: Organic Key
13482
+ * * SQL Data Type: nvarchar(255)`),
13483
+ RelatedEntity: z.string().describe(`
13484
+ * * Field Name: RelatedEntity
13485
+ * * Display Name: Related Entity
13486
+ * * SQL Data Type: nvarchar(255)`),
13487
+ });
13488
+ /**
13489
+ * zod schema definition for the entity MJ: Entity Organic Keys
13490
+ */
13491
+ export const MJEntityOrganicKeySchema = z.object({
13492
+ ID: z.string().describe(`
13493
+ * * Field Name: ID
13494
+ * * Display Name: ID
13495
+ * * SQL Data Type: uniqueidentifier
13496
+ * * Default Value: newsequentialid()`),
13497
+ EntityID: z.string().describe(`
13498
+ * * Field Name: EntityID
13499
+ * * Display Name: Entity ID
13500
+ * * SQL Data Type: uniqueidentifier
13501
+ * * Related Entity/Foreign Key: MJ: Entities (vwEntities.ID)`),
13502
+ Name: z.string().describe(`
13503
+ * * Field Name: Name
13504
+ * * Display Name: Name
13505
+ * * SQL Data Type: nvarchar(255)
13506
+ * * Description: Human-readable label for this organic key (e.g., "Email Match", "SSN Match"). Must be unique per entity.`),
13507
+ Description: z.string().nullable().describe(`
13508
+ * * Field Name: Description
13509
+ * * Display Name: Description
13510
+ * * SQL Data Type: nvarchar(MAX)
13511
+ * * Description: Optional explanation of the key's purpose and matching semantics.`),
13512
+ MatchFieldNames: z.string().describe(`
13513
+ * * Field Name: MatchFieldNames
13514
+ * * Display Name: Match Fields
13515
+ * * SQL Data Type: nvarchar(500)
13516
+ * * Description: Comma-delimited field names in the owning entity that constitute the key. Single value for simple keys (e.g., "EmailAddress"), multiple for compound keys (e.g., "FirstName,LastName,DateOfBirth"). Field names must match EntityField.Name values.`),
13517
+ NormalizationStrategy: z.union([z.literal('Custom'), z.literal('ExactMatch'), z.literal('LowerCaseTrim'), z.literal('Trim')]).describe(`
13518
+ * * Field Name: NormalizationStrategy
13519
+ * * Display Name: Normalization Strategy
13520
+ * * SQL Data Type: nvarchar(50)
13521
+ * * Default Value: LowerCaseTrim
13522
+ * * Value List Type: List
13523
+ * * Possible Values
13524
+ * * Custom
13525
+ * * ExactMatch
13526
+ * * LowerCaseTrim
13527
+ * * Trim
13528
+ * * Description: How field values are normalized before comparison. LowerCaseTrim = LOWER(TRIM(x)), Trim = TRIM(x), ExactMatch = no transformation, Custom = uses CustomNormalizationExpression.`),
13529
+ CustomNormalizationExpression: z.string().nullable().describe(`
13530
+ * * Field Name: CustomNormalizationExpression
13531
+ * * Display Name: Custom Normalization Expression
13532
+ * * SQL Data Type: nvarchar(MAX)
13533
+ * * Description: SQL expression template when NormalizationStrategy is Custom. Uses {{FieldName}} as placeholder. Example: "REPLACE(REPLACE({{FieldName}}, '-', ''), ' ', '')" for phone number normalization.`),
13534
+ AutoCreateRelatedViewOnForm: z.boolean().describe(`
13535
+ * * Field Name: AutoCreateRelatedViewOnForm
13536
+ * * Display Name: Auto Create Related View
13537
+ * * SQL Data Type: bit
13538
+ * * Default Value: 0
13539
+ * * Description: When true, a future discovery process will automatically scan entities and create EntityOrganicKeyRelatedEntity rows for entities with matching field patterns.`),
13540
+ Sequence: z.number().describe(`
13541
+ * * Field Name: Sequence
13542
+ * * Display Name: Sequence
13543
+ * * SQL Data Type: int
13544
+ * * Default Value: 0
13545
+ * * Description: Ordering when an entity has multiple organic keys. Lower values = higher priority.`),
13546
+ Status: z.union([z.literal('Active'), z.literal('Disabled')]).describe(`
13547
+ * * Field Name: Status
13548
+ * * Display Name: Status
13549
+ * * SQL Data Type: nvarchar(20)
13550
+ * * Default Value: Active
13551
+ * * Value List Type: List
13552
+ * * Possible Values
13553
+ * * Active
13554
+ * * Disabled
13555
+ * * Description: Active or Disabled. Disabled keys are ignored at runtime.`),
13556
+ __mj_CreatedAt: z.date().describe(`
13557
+ * * Field Name: __mj_CreatedAt
13558
+ * * Display Name: Created At
13559
+ * * SQL Data Type: datetimeoffset
13560
+ * * Default Value: getutcdate()`),
13561
+ __mj_UpdatedAt: z.date().describe(`
13562
+ * * Field Name: __mj_UpdatedAt
13563
+ * * Display Name: Updated At
13564
+ * * SQL Data Type: datetimeoffset
13565
+ * * Default Value: getutcdate()`),
13566
+ Entity: z.string().describe(`
13567
+ * * Field Name: Entity
13568
+ * * Display Name: Entity
13569
+ * * SQL Data Type: nvarchar(255)`),
13570
+ });
13330
13571
  /**
13331
13572
  * zod schema definition for the entity MJ: Entity Permissions
13332
13573
  */
@@ -32157,7 +32398,7 @@ let MJAICredentialBindingEntity = class MJAICredentialBindingEntity extends Base
32157
32398
  }
32158
32399
  /**
32159
32400
  * * Field Name: CredentialID
32160
- * * Display Name: Credential ID
32401
+ * * Display Name: Credential
32161
32402
  * * SQL Data Type: uniqueidentifier
32162
32403
  * * Related Entity/Foreign Key: MJ: Credentials (vwCredentials.ID)
32163
32404
  * * Description: Reference to the credential being bound.
@@ -32187,7 +32428,7 @@ let MJAICredentialBindingEntity = class MJAICredentialBindingEntity extends Base
32187
32428
  }
32188
32429
  /**
32189
32430
  * * Field Name: AIVendorID
32190
- * * Display Name: AI Vendor ID
32431
+ * * Display Name: AI Vendor
32191
32432
  * * SQL Data Type: uniqueidentifier
32192
32433
  * * Related Entity/Foreign Key: MJ: AI Vendors (vwAIVendors.ID)
32193
32434
  * * Description: Reference to AIVendor when BindingType is Vendor. NULL otherwise.
@@ -32200,7 +32441,7 @@ let MJAICredentialBindingEntity = class MJAICredentialBindingEntity extends Base
32200
32441
  }
32201
32442
  /**
32202
32443
  * * Field Name: AIModelVendorID
32203
- * * Display Name: AI Model Vendor ID
32444
+ * * Display Name: AI Model Vendor
32204
32445
  * * SQL Data Type: uniqueidentifier
32205
32446
  * * Related Entity/Foreign Key: MJ: AI Model Vendors (vwAIModelVendors.ID)
32206
32447
  * * Description: Reference to AIModelVendor when BindingType is ModelVendor. NULL otherwise.
@@ -32213,7 +32454,7 @@ let MJAICredentialBindingEntity = class MJAICredentialBindingEntity extends Base
32213
32454
  }
32214
32455
  /**
32215
32456
  * * Field Name: AIPromptModelID
32216
- * * Display Name: AI Prompt Model ID
32457
+ * * Display Name: AI Prompt Model
32217
32458
  * * SQL Data Type: uniqueidentifier
32218
32459
  * * Related Entity/Foreign Key: MJ: AI Prompt Models (vwAIPromptModels.ID)
32219
32460
  * * Description: Reference to AIPromptModel when BindingType is PromptModel. NULL otherwise.
@@ -32239,7 +32480,7 @@ let MJAICredentialBindingEntity = class MJAICredentialBindingEntity extends Base
32239
32480
  }
32240
32481
  /**
32241
32482
  * * Field Name: IsActive
32242
- * * Display Name: Is Active
32483
+ * * Display Name: Active
32243
32484
  * * SQL Data Type: bit
32244
32485
  * * Default Value: 1
32245
32486
  * * Description: When false, this binding is ignored during credential resolution. Allows temporary disabling without deletion.
@@ -32270,7 +32511,7 @@ let MJAICredentialBindingEntity = class MJAICredentialBindingEntity extends Base
32270
32511
  }
32271
32512
  /**
32272
32513
  * * Field Name: Credential
32273
- * * Display Name: Credential
32514
+ * * Display Name: Credential Name
32274
32515
  * * SQL Data Type: nvarchar(200)
32275
32516
  */
32276
32517
  get Credential() {
@@ -32278,7 +32519,7 @@ let MJAICredentialBindingEntity = class MJAICredentialBindingEntity extends Base
32278
32519
  }
32279
32520
  /**
32280
32521
  * * Field Name: AIVendor
32281
- * * Display Name: AI Vendor
32522
+ * * Display Name: Vendor Name
32282
32523
  * * SQL Data Type: nvarchar(50)
32283
32524
  */
32284
32525
  get AIVendor() {
@@ -32286,15 +32527,15 @@ let MJAICredentialBindingEntity = class MJAICredentialBindingEntity extends Base
32286
32527
  }
32287
32528
  /**
32288
32529
  * * Field Name: AIModelVendor
32289
- * * Display Name: AI Model Vendor
32290
- * * SQL Data Type: nvarchar(50)
32530
+ * * Display Name: Model Vendor Name
32531
+ * * SQL Data Type: nvarchar(100)
32291
32532
  */
32292
32533
  get AIModelVendor() {
32293
32534
  return this.Get('AIModelVendor');
32294
32535
  }
32295
32536
  /**
32296
32537
  * * Field Name: AIPromptModel
32297
- * * Display Name: AI Prompt Model
32538
+ * * Display Name: Prompt Model Name
32298
32539
  * * SQL Data Type: nvarchar(255)
32299
32540
  */
32300
32541
  get AIPromptModel() {
@@ -33648,8 +33889,33 @@ let MJAIModelTypeEntity = class MJAIModelTypeEntity extends BaseEntity {
33648
33889
  this.Set('DefaultOutputModalityID', value);
33649
33890
  }
33650
33891
  /**
33892
+ * * Field Name: SupportsPrefill
33893
+ * * Display Name: Supports Prefill
33894
+ * * SQL Data Type: bit
33895
+ * * Default Value: 0
33896
+ * * Description: Whether models of this type generally support assistant prefill. This is a default value that individual AI Model Vendor records can override. For LLM types, many providers support prefill; for image/audio types, this is typically false.
33897
+ */
33898
+ get SupportsPrefill() {
33899
+ return this.Get('SupportsPrefill');
33900
+ }
33901
+ set SupportsPrefill(value) {
33902
+ this.Set('SupportsPrefill', value);
33903
+ }
33904
+ /**
33905
+ * * Field Name: PrefillFallbackText
33906
+ * * Display Name: Prefill Fallback Text
33907
+ * * SQL Data Type: nvarchar(MAX)
33908
+ * * Description: Default fallback instruction text used when PrefillFallbackMode is SystemInstruction and the provider does not support native prefill. Use {{prefill}} as a placeholder for the actual prefill text. Example: "IMPORTANT: You must begin your response with exactly: {{prefill}}". Individual AI Model Vendor records can override this. If null, a generic fallback is used.
33909
+ */
33910
+ get PrefillFallbackText() {
33911
+ return this.Get('PrefillFallbackText');
33912
+ }
33913
+ set PrefillFallbackText(value) {
33914
+ this.Set('PrefillFallbackText', value);
33915
+ }
33916
+ /**
33651
33917
  * * Field Name: DefaultInputModality
33652
- * * Display Name: Default Input Modality
33918
+ * * Display Name: Default Input Modality Name
33653
33919
  * * SQL Data Type: nvarchar(50)
33654
33920
  */
33655
33921
  get DefaultInputModality() {
@@ -33657,7 +33923,7 @@ let MJAIModelTypeEntity = class MJAIModelTypeEntity extends BaseEntity {
33657
33923
  }
33658
33924
  /**
33659
33925
  * * Field Name: DefaultOutputModality
33660
- * * Display Name: Default Output Modality
33926
+ * * Display Name: Default Output Modality Name
33661
33927
  * * SQL Data Type: nvarchar(50)
33662
33928
  */
33663
33929
  get DefaultOutputModality() {
@@ -33760,7 +34026,7 @@ let MJAIModelVendorEntity = class MJAIModelVendorEntity extends BaseEntity {
33760
34026
  }
33761
34027
  /**
33762
34028
  * * Field Name: ModelID
33763
- * * Display Name: Model ID
34029
+ * * Display Name: Model
33764
34030
  * * SQL Data Type: uniqueidentifier
33765
34031
  * * Related Entity/Foreign Key: MJ: AI Models (vwAIModels.ID)
33766
34032
  */
@@ -33772,7 +34038,7 @@ let MJAIModelVendorEntity = class MJAIModelVendorEntity extends BaseEntity {
33772
34038
  }
33773
34039
  /**
33774
34040
  * * Field Name: VendorID
33775
- * * Display Name: Vendor ID
34041
+ * * Display Name: Vendor
33776
34042
  * * SQL Data Type: uniqueidentifier
33777
34043
  * * Related Entity/Foreign Key: MJ: AI Vendors (vwAIVendors.ID)
33778
34044
  */
@@ -33933,7 +34199,7 @@ let MJAIModelVendorEntity = class MJAIModelVendorEntity extends BaseEntity {
33933
34199
  }
33934
34200
  /**
33935
34201
  * * Field Name: TypeID
33936
- * * Display Name: Type ID
34202
+ * * Display Name: Type
33937
34203
  * * SQL Data Type: uniqueidentifier
33938
34204
  * * Related Entity/Foreign Key: MJ: AI Vendor Type Definitions (vwAIVendorTypeDefinitions.ID)
33939
34205
  * * Description: References the type/role of the vendor for this model (e.g., model developer, inference provider)
@@ -33945,8 +34211,32 @@ let MJAIModelVendorEntity = class MJAIModelVendorEntity extends BaseEntity {
33945
34211
  this.Set('TypeID', value);
33946
34212
  }
33947
34213
  /**
34214
+ * * Field Name: SupportsPrefill
34215
+ * * Display Name: Supports Prefill
34216
+ * * SQL Data Type: bit
34217
+ * * Description: Whether this specific model-vendor implementation supports assistant prefill. Overrides the AI Model Type default when set. NULL means inherit from the AI Model Type. For example, Claude via Anthropic supports prefill (true), but GPT-4 via OpenAI does not (false).
34218
+ */
34219
+ get SupportsPrefill() {
34220
+ return this.Get('SupportsPrefill');
34221
+ }
34222
+ set SupportsPrefill(value) {
34223
+ this.Set('SupportsPrefill', value);
34224
+ }
34225
+ /**
34226
+ * * Field Name: PrefillFallbackText
34227
+ * * Display Name: Prefill Fallback Text
34228
+ * * SQL Data Type: nvarchar(MAX)
34229
+ * * Description: Model-specific fallback instruction text used when PrefillFallbackMode is SystemInstruction and the provider does not support native prefill. Overrides the AI Model Type default. Use {{prefill}} as a placeholder. Allows tuning the fallback instruction per model since different models respond better to different phrasing.
34230
+ */
34231
+ get PrefillFallbackText() {
34232
+ return this.Get('PrefillFallbackText');
34233
+ }
34234
+ set PrefillFallbackText(value) {
34235
+ this.Set('PrefillFallbackText', value);
34236
+ }
34237
+ /**
33948
34238
  * * Field Name: Model
33949
- * * Display Name: Model
34239
+ * * Display Name: Model Name
33950
34240
  * * SQL Data Type: nvarchar(50)
33951
34241
  */
33952
34242
  get Model() {
@@ -33954,7 +34244,7 @@ let MJAIModelVendorEntity = class MJAIModelVendorEntity extends BaseEntity {
33954
34244
  }
33955
34245
  /**
33956
34246
  * * Field Name: Vendor
33957
- * * Display Name: Vendor
34247
+ * * Display Name: Vendor Name
33958
34248
  * * SQL Data Type: nvarchar(50)
33959
34249
  */
33960
34250
  get Vendor() {
@@ -33962,7 +34252,7 @@ let MJAIModelVendorEntity = class MJAIModelVendorEntity extends BaseEntity {
33962
34252
  }
33963
34253
  /**
33964
34254
  * * Field Name: Type
33965
- * * Display Name: Type
34255
+ * * Display Name: Type Name
33966
34256
  * * SQL Data Type: nvarchar(50)
33967
34257
  */
33968
34258
  get Type() {
@@ -34206,8 +34496,32 @@ let MJAIModelEntity = class MJAIModelEntity extends BaseEntity {
34206
34496
  this.Set('PriorVersionID', value);
34207
34497
  }
34208
34498
  /**
34499
+ * * Field Name: SupportsPrefill
34500
+ * * Display Name: Supports Prefill
34501
+ * * SQL Data Type: bit
34502
+ * * Description: Whether this model supports assistant prefill. Overrides the AI Model Type default when set. NULL means inherit from the AI Model Type. Can be further overridden per-vendor in AI Model Vendor.
34503
+ */
34504
+ get SupportsPrefill() {
34505
+ return this.Get('SupportsPrefill');
34506
+ }
34507
+ set SupportsPrefill(value) {
34508
+ this.Set('SupportsPrefill', value);
34509
+ }
34510
+ /**
34511
+ * * Field Name: PrefillFallbackText
34512
+ * * Display Name: Prefill Fallback Text
34513
+ * * SQL Data Type: nvarchar(MAX)
34514
+ * * Description: Model-level fallback instruction text used when PrefillFallbackMode is SystemInstruction and the provider does not support native prefill. Overrides the AI Model Type default, can be further overridden per-vendor in AI Model Vendor. Use {{prefill}} as a placeholder.
34515
+ */
34516
+ get PrefillFallbackText() {
34517
+ return this.Get('PrefillFallbackText');
34518
+ }
34519
+ set PrefillFallbackText(value) {
34520
+ this.Set('PrefillFallbackText', value);
34521
+ }
34522
+ /**
34209
34523
  * * Field Name: AIModelType
34210
- * * Display Name: AI Model Type
34524
+ * * Display Name: Model Type Name
34211
34525
  * * SQL Data Type: nvarchar(50)
34212
34526
  */
34213
34527
  get AIModelType() {
@@ -35254,7 +35568,7 @@ let MJAIPromptRunEntity = class MJAIPromptRunEntity extends BaseEntity {
35254
35568
  }
35255
35569
  /**
35256
35570
  * * Field Name: TokensUsed
35257
- * * Display Name: Tokens Used
35571
+ * * Display Name: Total Tokens Used
35258
35572
  * * SQL Data Type: int
35259
35573
  * * Description: Total number of tokens used (prompt + completion).
35260
35574
  */
@@ -35266,7 +35580,7 @@ let MJAIPromptRunEntity = class MJAIPromptRunEntity extends BaseEntity {
35266
35580
  }
35267
35581
  /**
35268
35582
  * * Field Name: TokensPrompt
35269
- * * Display Name: Tokens Prompt
35583
+ * * Display Name: Prompt Tokens
35270
35584
  * * SQL Data Type: int
35271
35585
  * * Description: Number of tokens in the prompt.
35272
35586
  */
@@ -35278,7 +35592,7 @@ let MJAIPromptRunEntity = class MJAIPromptRunEntity extends BaseEntity {
35278
35592
  }
35279
35593
  /**
35280
35594
  * * Field Name: TokensCompletion
35281
- * * Display Name: Tokens Completion
35595
+ * * Display Name: Completion Tokens
35282
35596
  * * SQL Data Type: int
35283
35597
  * * Description: Number of tokens in the completion/result.
35284
35598
  */
@@ -35345,7 +35659,7 @@ let MJAIPromptRunEntity = class MJAIPromptRunEntity extends BaseEntity {
35345
35659
  }
35346
35660
  /**
35347
35661
  * * Field Name: ParentID
35348
- * * Display Name: Parent ID
35662
+ * * Display Name: Parent Run
35349
35663
  * * SQL Data Type: uniqueidentifier
35350
35664
  * * Related Entity/Foreign Key: MJ: AI Prompt Runs (vwAIPromptRuns.ID)
35351
35665
  * * Description: References the parent AIPromptRun.ID for hierarchical execution tracking. NULL for top-level runs, populated for parallel children and result selector runs.
@@ -35389,7 +35703,7 @@ let MJAIPromptRunEntity = class MJAIPromptRunEntity extends BaseEntity {
35389
35703
  }
35390
35704
  /**
35391
35705
  * * Field Name: AgentRunID
35392
- * * Display Name: Agent Run ID
35706
+ * * Display Name: Agent Run
35393
35707
  * * SQL Data Type: uniqueidentifier
35394
35708
  * * Related Entity/Foreign Key: MJ: AI Agent Runs (vwAIAgentRuns.ID)
35395
35709
  * * Description: Optional reference to the AIAgentRun that initiated this prompt execution. Links prompt runs to their parent agent runs for comprehensive execution tracking.
@@ -35426,7 +35740,7 @@ let MJAIPromptRunEntity = class MJAIPromptRunEntity extends BaseEntity {
35426
35740
  }
35427
35741
  /**
35428
35742
  * * Field Name: TokensUsedRollup
35429
- * * Display Name: Tokens Used Rollup
35743
+ * * Display Name: Total Tokens (Rollup)
35430
35744
  * * SQL Data Type: int
35431
35745
  * * Description: Total tokens used including this execution and all child/grandchild executions. This provides a complete view of token usage for hierarchical prompt trees. Calculated as TokensPromptRollup + TokensCompletionRollup.
35432
35746
  */
@@ -35438,7 +35752,7 @@ let MJAIPromptRunEntity = class MJAIPromptRunEntity extends BaseEntity {
35438
35752
  }
35439
35753
  /**
35440
35754
  * * Field Name: TokensPromptRollup
35441
- * * Display Name: Tokens Prompt Rollup
35755
+ * * Display Name: Prompt Tokens (Rollup)
35442
35756
  * * SQL Data Type: int
35443
35757
  * * Description: Total prompt/input tokens including this execution and all child/grandchild executions. For leaf nodes (no children), this equals TokensPrompt. For parent nodes, this includes the sum of all descendant prompt tokens.
35444
35758
  */
@@ -35450,7 +35764,7 @@ let MJAIPromptRunEntity = class MJAIPromptRunEntity extends BaseEntity {
35450
35764
  }
35451
35765
  /**
35452
35766
  * * Field Name: TokensCompletionRollup
35453
- * * Display Name: Tokens Completion Rollup
35767
+ * * Display Name: Completion Tokens (Rollup)
35454
35768
  * * SQL Data Type: int
35455
35769
  * * Description: Total completion/output tokens including this execution and all child/grandchild executions. For leaf nodes (no children), this equals TokensCompletion. For parent nodes, this includes the sum of all descendant completion tokens.
35456
35770
  */
@@ -35570,7 +35884,7 @@ let MJAIPromptRunEntity = class MJAIPromptRunEntity extends BaseEntity {
35570
35884
  }
35571
35885
  /**
35572
35886
  * * Field Name: LogProbs
35573
- * * Display Name: Log Probs
35887
+ * * Display Name: Log Probabilities
35574
35888
  * * SQL Data Type: bit
35575
35889
  * * Description: Whether log probabilities were requested for this run
35576
35890
  */
@@ -35582,7 +35896,7 @@ let MJAIPromptRunEntity = class MJAIPromptRunEntity extends BaseEntity {
35582
35896
  }
35583
35897
  /**
35584
35898
  * * Field Name: TopLogProbs
35585
- * * Display Name: Top Log Probs
35899
+ * * Display Name: Top Log Probabilities
35586
35900
  * * SQL Data Type: int
35587
35901
  * * Description: Number of top log probabilities requested per token (if LogProbs is true)
35588
35902
  */
@@ -35811,7 +36125,7 @@ let MJAIPromptRunEntity = class MJAIPromptRunEntity extends BaseEntity {
35811
36125
  }
35812
36126
  /**
35813
36127
  * * Field Name: OriginalModelID
35814
- * * Display Name: Original Model ID
36128
+ * * Display Name: Original Model
35815
36129
  * * SQL Data Type: uniqueidentifier
35816
36130
  * * Related Entity/Foreign Key: MJ: AI Models (vwAIModels.ID)
35817
36131
  * * Description: The AI Model ID that was originally attempted before any failovers
@@ -35836,7 +36150,7 @@ let MJAIPromptRunEntity = class MJAIPromptRunEntity extends BaseEntity {
35836
36150
  }
35837
36151
  /**
35838
36152
  * * Field Name: TotalFailoverDuration
35839
- * * Display Name: Total Failover Duration
36153
+ * * Display Name: Total Failover Duration (ms)
35840
36154
  * * SQL Data Type: int
35841
36155
  * * Description: Total time spent in failover attempts in milliseconds
35842
36156
  */
@@ -35848,7 +36162,7 @@ let MJAIPromptRunEntity = class MJAIPromptRunEntity extends BaseEntity {
35848
36162
  }
35849
36163
  /**
35850
36164
  * * Field Name: RerunFromPromptRunID
35851
- * * Display Name: Rerun From Prompt Run ID
36165
+ * * Display Name: Rerun From
35852
36166
  * * SQL Data Type: uniqueidentifier
35853
36167
  * * Related Entity/Foreign Key: MJ: AI Prompt Runs (vwAIPromptRuns.ID)
35854
36168
  * * Description: If this run was initiated as a re-run of another prompt run, this field links back to the original run ID
@@ -35972,7 +36286,7 @@ let MJAIPromptRunEntity = class MJAIPromptRunEntity extends BaseEntity {
35972
36286
  }
35973
36287
  /**
35974
36288
  * * Field Name: JudgeID
35975
- * * Display Name: Judge ID
36289
+ * * Display Name: Judge
35976
36290
  * * SQL Data Type: uniqueidentifier
35977
36291
  * * Related Entity/Foreign Key: MJ: AI Prompts (vwAIPrompts.ID)
35978
36292
  * * Description: ID of the AIPrompt used as a judge to evaluate and rank multiple parallel execution results
@@ -36023,7 +36337,7 @@ let MJAIPromptRunEntity = class MJAIPromptRunEntity extends BaseEntity {
36023
36337
  }
36024
36338
  /**
36025
36339
  * * Field Name: FirstTokenTime
36026
- * * Display Name: First Token Time
36340
+ * * Display Name: First Token Time (ms)
36027
36341
  * * SQL Data Type: int
36028
36342
  * * Description: Time in milliseconds from request initiation to receiving the first token from the model
36029
36343
  */
@@ -36047,7 +36361,7 @@ let MJAIPromptRunEntity = class MJAIPromptRunEntity extends BaseEntity {
36047
36361
  }
36048
36362
  /**
36049
36363
  * * Field Name: ChildPromptID
36050
- * * Display Name: Child Prompt ID
36364
+ * * Display Name: Child Prompt
36051
36365
  * * SQL Data Type: uniqueidentifier
36052
36366
  * * Related Entity/Foreign Key: MJ: AI Prompts (vwAIPrompts.ID)
36053
36367
  * * Description: References the specific child prompt that was executed as part of hierarchical prompt composition. NULL for regular prompts or parent prompts that don't directly execute a child.
@@ -36060,7 +36374,7 @@ let MJAIPromptRunEntity = class MJAIPromptRunEntity extends BaseEntity {
36060
36374
  }
36061
36375
  /**
36062
36376
  * * Field Name: QueueTime
36063
- * * Display Name: Queue Time
36377
+ * * Display Name: Queue Time (ms)
36064
36378
  * * SQL Data Type: int
36065
36379
  * * Description: Queue time in milliseconds before the model started processing the request. Provider-specific timing metric.
36066
36380
  */
@@ -36072,7 +36386,7 @@ let MJAIPromptRunEntity = class MJAIPromptRunEntity extends BaseEntity {
36072
36386
  }
36073
36387
  /**
36074
36388
  * * Field Name: PromptTime
36075
- * * Display Name: Prompt Time
36389
+ * * Display Name: Prompt Time (ms)
36076
36390
  * * SQL Data Type: int
36077
36391
  * * Description: Time in milliseconds for the model to ingest and process the prompt. Provider-specific timing metric.
36078
36392
  */
@@ -36084,7 +36398,7 @@ let MJAIPromptRunEntity = class MJAIPromptRunEntity extends BaseEntity {
36084
36398
  }
36085
36399
  /**
36086
36400
  * * Field Name: CompletionTime
36087
- * * Display Name: Completion Time
36401
+ * * Display Name: Completion Time (ms)
36088
36402
  * * SQL Data Type: int
36089
36403
  * * Description: Time in milliseconds for the model to generate the completion/response tokens. Provider-specific timing metric.
36090
36404
  */
@@ -36144,7 +36458,7 @@ let MJAIPromptRunEntity = class MJAIPromptRunEntity extends BaseEntity {
36144
36458
  }
36145
36459
  /**
36146
36460
  * * Field Name: TestRunID
36147
- * * Display Name: Test Run ID
36461
+ * * Display Name: Test Run
36148
36462
  * * SQL Data Type: uniqueidentifier
36149
36463
  * * Related Entity/Foreign Key: MJ: Test Runs (vwTestRuns.ID)
36150
36464
  * * Description: Optional Foreign Key - Links this prompt run to a test run if this prompt execution was part of a test. Enables testing individual prompts for quality and consistency before agent integration.
@@ -36156,6 +36470,18 @@ let MJAIPromptRunEntity = class MJAIPromptRunEntity extends BaseEntity {
36156
36470
  this.Set('TestRunID', value);
36157
36471
  }
36158
36472
  /**
36473
+ * * Field Name: AssistantPrefill
36474
+ * * Display Name: Assistant Prefill
36475
+ * * SQL Data Type: nvarchar(MAX)
36476
+ * * Description: The assistant prefill text that was used during this prompt execution. Records whether native prefill or fallback was applied. NULL means no prefill was used.
36477
+ */
36478
+ get AssistantPrefill() {
36479
+ return this.Get('AssistantPrefill');
36480
+ }
36481
+ set AssistantPrefill(value) {
36482
+ this.Set('AssistantPrefill', value);
36483
+ }
36484
+ /**
36159
36485
  * * Field Name: Prompt
36160
36486
  * * Display Name: Prompt
36161
36487
  * * SQL Data Type: nvarchar(255)
@@ -36221,7 +36547,7 @@ let MJAIPromptRunEntity = class MJAIPromptRunEntity extends BaseEntity {
36221
36547
  }
36222
36548
  /**
36223
36549
  * * Field Name: RerunFromPromptRun
36224
- * * Display Name: Rerun From Prompt Run
36550
+ * * Display Name: Rerun From
36225
36551
  * * SQL Data Type: nvarchar(255)
36226
36552
  */
36227
36553
  get RerunFromPromptRun() {
@@ -36253,7 +36579,7 @@ let MJAIPromptRunEntity = class MJAIPromptRunEntity extends BaseEntity {
36253
36579
  }
36254
36580
  /**
36255
36581
  * * Field Name: RootParentID
36256
- * * Display Name: Root Parent ID
36582
+ * * Display Name: Root Parent
36257
36583
  * * SQL Data Type: uniqueidentifier
36258
36584
  */
36259
36585
  get RootParentID() {
@@ -36261,7 +36587,7 @@ let MJAIPromptRunEntity = class MJAIPromptRunEntity extends BaseEntity {
36261
36587
  }
36262
36588
  /**
36263
36589
  * * Field Name: RootRerunFromPromptRunID
36264
- * * Display Name: Root Rerun From Prompt Run ID
36590
+ * * Display Name: Root Rerun From
36265
36591
  * * SQL Data Type: uniqueidentifier
36266
36592
  */
36267
36593
  get RootRerunFromPromptRunID() {
@@ -36571,7 +36897,7 @@ let MJAIPromptEntity = class MJAIPromptEntity extends BaseEntity {
36571
36897
  }
36572
36898
  /**
36573
36899
  * * Field Name: TemplateID
36574
- * * Display Name: Template ID
36900
+ * * Display Name: Template
36575
36901
  * * SQL Data Type: uniqueidentifier
36576
36902
  * * Related Entity/Foreign Key: MJ: Templates (vwTemplates.ID)
36577
36903
  * * Description: Reference to the template used for the prompt.
@@ -36584,7 +36910,7 @@ let MJAIPromptEntity = class MJAIPromptEntity extends BaseEntity {
36584
36910
  }
36585
36911
  /**
36586
36912
  * * Field Name: CategoryID
36587
- * * Display Name: Category ID
36913
+ * * Display Name: Category
36588
36914
  * * SQL Data Type: uniqueidentifier
36589
36915
  * * Related Entity/Foreign Key: MJ: AI Prompt Categories (vwAIPromptCategories.ID)
36590
36916
  * * Description: Reference to the category the prompt belongs to.
@@ -36597,7 +36923,7 @@ let MJAIPromptEntity = class MJAIPromptEntity extends BaseEntity {
36597
36923
  }
36598
36924
  /**
36599
36925
  * * Field Name: TypeID
36600
- * * Display Name: Type ID
36926
+ * * Display Name: Type
36601
36927
  * * SQL Data Type: uniqueidentifier
36602
36928
  * * Related Entity/Foreign Key: MJ: AI Prompt Types (vwAIPromptTypes.ID)
36603
36929
  * * Description: Reference to the type of the prompt.
@@ -36676,7 +37002,7 @@ let MJAIPromptEntity = class MJAIPromptEntity extends BaseEntity {
36676
37002
  }
36677
37003
  /**
36678
37004
  * * Field Name: AIModelTypeID
36679
- * * Display Name: AI Model Type ID
37005
+ * * Display Name: AI Model Type
36680
37006
  * * SQL Data Type: uniqueidentifier
36681
37007
  * * Related Entity/Foreign Key: MJ: AI Model Types (vwAIModelTypes.ID)
36682
37008
  * * Description: References the type of AI model this prompt is designed for (LLM, Image, Audio, etc.).
@@ -36689,7 +37015,7 @@ let MJAIPromptEntity = class MJAIPromptEntity extends BaseEntity {
36689
37015
  }
36690
37016
  /**
36691
37017
  * * Field Name: MinPowerRank
36692
- * * Display Name: Min Power Rank
37018
+ * * Display Name: Minimum Power Rank
36693
37019
  * * SQL Data Type: int
36694
37020
  * * Default Value: 0
36695
37021
  * * Description: The minimum power rank required for models to be considered for this prompt.
@@ -36769,7 +37095,7 @@ let MJAIPromptEntity = class MJAIPromptEntity extends BaseEntity {
36769
37095
  }
36770
37096
  /**
36771
37097
  * * Field Name: ParallelConfigParam
36772
- * * Display Name: Parallel Config Param
37098
+ * * Display Name: Parallel Config Parameter
36773
37099
  * * SQL Data Type: nvarchar(100)
36774
37100
  * * Description: When ParallelizationMode is ConfigParam, specifies the name of the configuration parameter that contains the parallel count.
36775
37101
  */
@@ -36844,7 +37170,7 @@ let MJAIPromptEntity = class MJAIPromptEntity extends BaseEntity {
36844
37170
  }
36845
37171
  /**
36846
37172
  * * Field Name: RetryDelayMS
36847
- * * Display Name: Retry Delay MS
37173
+ * * Display Name: Retry Delay (ms)
36848
37174
  * * SQL Data Type: int
36849
37175
  * * Default Value: 0
36850
37176
  * * Description: Delay between retry attempts in milliseconds.
@@ -36875,7 +37201,7 @@ let MJAIPromptEntity = class MJAIPromptEntity extends BaseEntity {
36875
37201
  }
36876
37202
  /**
36877
37203
  * * Field Name: ResultSelectorPromptID
36878
- * * Display Name: Result Selector Prompt ID
37204
+ * * Display Name: Result Selector Prompt
36879
37205
  * * SQL Data Type: uniqueidentifier
36880
37206
  * * Related Entity/Foreign Key: MJ: AI Prompts (vwAIPrompts.ID)
36881
37207
  * * Description: References another prompt that selects the best result from multiple parallel executions.
@@ -36901,7 +37227,7 @@ let MJAIPromptEntity = class MJAIPromptEntity extends BaseEntity {
36901
37227
  }
36902
37228
  /**
36903
37229
  * * Field Name: CacheTTLSeconds
36904
- * * Display Name: Cache TTL Seconds
37230
+ * * Display Name: Cache TTL (Seconds)
36905
37231
  * * SQL Data Type: int
36906
37232
  * * Description: Time-to-live in seconds for cached results. NULL means results never expire.
36907
37233
  */
@@ -36981,7 +37307,7 @@ let MJAIPromptEntity = class MJAIPromptEntity extends BaseEntity {
36981
37307
  }
36982
37308
  /**
36983
37309
  * * Field Name: CacheMustMatchConfig
36984
- * * Display Name: Cache Must Match Config
37310
+ * * Display Name: Cache Must Match Configuration
36985
37311
  * * SQL Data Type: bit
36986
37312
  * * Default Value: 0
36987
37313
  * * Description: When true, the configuration must match for a cache hit. When false, results from any configuration can be used.
@@ -37126,7 +37452,7 @@ let MJAIPromptEntity = class MJAIPromptEntity extends BaseEntity {
37126
37452
  }
37127
37453
  /**
37128
37454
  * * Field Name: IncludeLogProbs
37129
- * * Display Name: Include Log Probs
37455
+ * * Display Name: Include Log Probabilities
37130
37456
  * * SQL Data Type: bit
37131
37457
  * * Default Value: 0
37132
37458
  * * Description: Default setting for including log probabilities in the response. Can be overridden at runtime.
@@ -37139,7 +37465,7 @@ let MJAIPromptEntity = class MJAIPromptEntity extends BaseEntity {
37139
37465
  }
37140
37466
  /**
37141
37467
  * * Field Name: TopLogProbs
37142
- * * Display Name: Top Log Probs
37468
+ * * Display Name: Top Log Probabilities
37143
37469
  * * SQL Data Type: int
37144
37470
  * * Description: Default number of top log probabilities to include when IncludeLogProbs is true. Can be overridden at runtime.
37145
37471
  */
@@ -37187,7 +37513,7 @@ let MJAIPromptEntity = class MJAIPromptEntity extends BaseEntity {
37187
37513
  }
37188
37514
  /**
37189
37515
  * * Field Name: FailoverDelaySeconds
37190
- * * Display Name: Failover Delay Seconds
37516
+ * * Display Name: Failover Delay (seconds)
37191
37517
  * * SQL Data Type: int
37192
37518
  * * Default Value: 5
37193
37519
  * * Description: Initial delay in seconds between failover attempts
@@ -37255,8 +37581,38 @@ let MJAIPromptEntity = class MJAIPromptEntity extends BaseEntity {
37255
37581
  this.Set('EffortLevel', value);
37256
37582
  }
37257
37583
  /**
37584
+ * * Field Name: AssistantPrefill
37585
+ * * Display Name: Assistant Prefill
37586
+ * * SQL Data Type: nvarchar(MAX)
37587
+ * * Description: Optional text to prefill the assistant response. The model will continue generating from where this text ends. Used with StopSequences for structured output extraction (e.g., prefill with \`\`\`json to get raw JSON). Only effective with providers that support prefill natively; see PrefillFallbackMode for non-supporting providers.
37588
+ */
37589
+ get AssistantPrefill() {
37590
+ return this.Get('AssistantPrefill');
37591
+ }
37592
+ set AssistantPrefill(value) {
37593
+ this.Set('AssistantPrefill', value);
37594
+ }
37595
+ /**
37596
+ * * Field Name: PrefillFallbackMode
37597
+ * * Display Name: Prefill Fallback Mode
37598
+ * * SQL Data Type: nvarchar(20)
37599
+ * * Default Value: Ignore
37600
+ * * Value List Type: List
37601
+ * * Possible Values
37602
+ * * Ignore
37603
+ * * None
37604
+ * * SystemInstruction
37605
+ * * Description: Controls behavior when the selected provider does not support native assistant prefill. Ignore = silently skip prefill, SystemInstruction = inject a system message instructing the model to start its response with the prefill text (uses fallback text from AI Model Vendor or AI Model Type), None = no fallback (prefill only works with supported providers).
37606
+ */
37607
+ get PrefillFallbackMode() {
37608
+ return this.Get('PrefillFallbackMode');
37609
+ }
37610
+ set PrefillFallbackMode(value) {
37611
+ this.Set('PrefillFallbackMode', value);
37612
+ }
37613
+ /**
37258
37614
  * * Field Name: Template
37259
- * * Display Name: Template
37615
+ * * Display Name: Template Text
37260
37616
  * * SQL Data Type: nvarchar(255)
37261
37617
  */
37262
37618
  get Template() {
@@ -37264,7 +37620,7 @@ let MJAIPromptEntity = class MJAIPromptEntity extends BaseEntity {
37264
37620
  }
37265
37621
  /**
37266
37622
  * * Field Name: Category
37267
- * * Display Name: Category
37623
+ * * Display Name: Category Name
37268
37624
  * * SQL Data Type: nvarchar(255)
37269
37625
  */
37270
37626
  get Category() {
@@ -37272,7 +37628,7 @@ let MJAIPromptEntity = class MJAIPromptEntity extends BaseEntity {
37272
37628
  }
37273
37629
  /**
37274
37630
  * * Field Name: Type
37275
- * * Display Name: Type
37631
+ * * Display Name: Type Name
37276
37632
  * * SQL Data Type: nvarchar(255)
37277
37633
  */
37278
37634
  get Type() {
@@ -37280,7 +37636,7 @@ let MJAIPromptEntity = class MJAIPromptEntity extends BaseEntity {
37280
37636
  }
37281
37637
  /**
37282
37638
  * * Field Name: AIModelType
37283
- * * Display Name: AI Model Type
37639
+ * * Display Name: AI Model Type Name
37284
37640
  * * SQL Data Type: nvarchar(50)
37285
37641
  */
37286
37642
  get AIModelType() {
@@ -37288,7 +37644,7 @@ let MJAIPromptEntity = class MJAIPromptEntity extends BaseEntity {
37288
37644
  }
37289
37645
  /**
37290
37646
  * * Field Name: ResultSelectorPrompt
37291
- * * Display Name: Result Selector Prompt
37647
+ * * Display Name: Result Selector Prompt Name
37292
37648
  * * SQL Data Type: nvarchar(255)
37293
37649
  */
37294
37650
  get ResultSelectorPrompt() {
@@ -37296,7 +37652,7 @@ let MJAIPromptEntity = class MJAIPromptEntity extends BaseEntity {
37296
37652
  }
37297
37653
  /**
37298
37654
  * * Field Name: RootResultSelectorPromptID
37299
- * * Display Name: Root Result Selector Prompt ID
37655
+ * * Display Name: Root Result Selector Prompt
37300
37656
  * * SQL Data Type: uniqueidentifier
37301
37657
  */
37302
37658
  get RootResultSelectorPromptID() {
@@ -43564,7 +43920,7 @@ let MJCompanyIntegrationRunEntity = class MJCompanyIntegrationRunEntity extends
43564
43920
  }
43565
43921
  /**
43566
43922
  * * Field Name: RunByUserID
43567
- * * Display Name: Run By User
43923
+ * * Display Name: Run By User ID
43568
43924
  * * SQL Data Type: uniqueidentifier
43569
43925
  * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)
43570
43926
  */
@@ -43670,7 +44026,7 @@ let MJCompanyIntegrationRunEntity = class MJCompanyIntegrationRunEntity extends
43670
44026
  }
43671
44027
  /**
43672
44028
  * * Field Name: ConfigData
43673
- * * Display Name: Config Data
44029
+ * * Display Name: Configuration Data
43674
44030
  * * SQL Data Type: nvarchar(MAX)
43675
44031
  * * Description: Optional configuration data in JSON format for the request that started the integration run for audit purposes.
43676
44032
  */
@@ -43681,6 +44037,19 @@ let MJCompanyIntegrationRunEntity = class MJCompanyIntegrationRunEntity extends
43681
44037
  this.Set('ConfigData', value);
43682
44038
  }
43683
44039
  /**
44040
+ * * Field Name: ScheduledJobRunID
44041
+ * * Display Name: Scheduled Job Run
44042
+ * * SQL Data Type: uniqueidentifier
44043
+ * * Related Entity/Foreign Key: MJ: Scheduled Job Runs (vwScheduledJobRuns.ID)
44044
+ * * Description: Links to the scheduled job run that triggered this integration sync. NULL for manually-triggered syncs.
44045
+ */
44046
+ get ScheduledJobRunID() {
44047
+ return this.Get('ScheduledJobRunID');
44048
+ }
44049
+ set ScheduledJobRunID(value) {
44050
+ this.Set('ScheduledJobRunID', value);
44051
+ }
44052
+ /**
43684
44053
  * * Field Name: Integration
43685
44054
  * * Display Name: Integration
43686
44055
  * * SQL Data Type: nvarchar(100)
@@ -44003,7 +44372,7 @@ let MJCompanyIntegrationEntity = class MJCompanyIntegrationEntity extends BaseEn
44003
44372
  }
44004
44373
  /**
44005
44374
  * * Field Name: IsExternalSystemReadOnly
44006
- * * Display Name: External System Read Only
44375
+ * * Display Name: Is Read Only
44007
44376
  * * SQL Data Type: bit
44008
44377
  * * Default Value: 0
44009
44378
  * * Description: Indicates if data can only be read from the external system, not written back.
@@ -44247,8 +44616,21 @@ let MJCompanyIntegrationEntity = class MJCompanyIntegrationEntity extends BaseEn
44247
44616
  this.Set('LockExpiresAt', value);
44248
44617
  }
44249
44618
  /**
44619
+ * * Field Name: ScheduledJobID
44620
+ * * Display Name: Scheduled Job
44621
+ * * SQL Data Type: uniqueidentifier
44622
+ * * Related Entity/Foreign Key: MJ: Scheduled Jobs (vwScheduledJobs.ID)
44623
+ * * Description: Associates this company integration with a scheduled job for automatic sync execution. NULL if no schedule is configured.
44624
+ */
44625
+ get ScheduledJobID() {
44626
+ return this.Get('ScheduledJobID');
44627
+ }
44628
+ set ScheduledJobID(value) {
44629
+ this.Set('ScheduledJobID', value);
44630
+ }
44631
+ /**
44250
44632
  * * Field Name: Company
44251
- * * Display Name: Company
44633
+ * * Display Name: Company Name
44252
44634
  * * SQL Data Type: nvarchar(50)
44253
44635
  */
44254
44636
  get Company() {
@@ -44256,7 +44638,7 @@ let MJCompanyIntegrationEntity = class MJCompanyIntegrationEntity extends BaseEn
44256
44638
  }
44257
44639
  /**
44258
44640
  * * Field Name: Integration
44259
- * * Display Name: Integration
44641
+ * * Display Name: Integration Name
44260
44642
  * * SQL Data Type: nvarchar(100)
44261
44643
  */
44262
44644
  get Integration() {
@@ -44280,7 +44662,7 @@ let MJCompanyIntegrationEntity = class MJCompanyIntegrationEntity extends BaseEn
44280
44662
  }
44281
44663
  /**
44282
44664
  * * Field Name: LastRunID
44283
- * * Display Name: Last Run ID
44665
+ * * Display Name: Last Run
44284
44666
  * * SQL Data Type: uniqueidentifier
44285
44667
  */
44286
44668
  get LastRunID() {
@@ -56115,6 +56497,461 @@ MJEntityFieldEntity = __decorate([
56115
56497
  RegisterClass(BaseEntity, 'MJ: Entity Fields')
56116
56498
  ], MJEntityFieldEntity);
56117
56499
  export { MJEntityFieldEntity };
56500
+ /**
56501
+ * MJ: Entity Organic Key Related Entities - strongly typed entity sub-class
56502
+ * * Schema: __mj
56503
+ * * Base Table: EntityOrganicKeyRelatedEntity
56504
+ * * Base View: vwEntityOrganicKeyRelatedEntities
56505
+ * * @description Maps a related entity to an organic key, defining how records are matched — either by direct field comparison or transitively via a SQL view/table that bridges multiple hops.
56506
+ * * Primary Key: ID
56507
+ * @extends {BaseEntity}
56508
+ * @class
56509
+ * @public
56510
+ */
56511
+ let MJEntityOrganicKeyRelatedEntityEntity = class MJEntityOrganicKeyRelatedEntityEntity extends BaseEntity {
56512
+ /**
56513
+ * Loads the MJ: Entity Organic Key Related Entities record from the database
56514
+ * @param ID: string - primary key value to load the MJ: Entity Organic Key Related Entities record.
56515
+ * @param EntityRelationshipsToLoad - (optional) the relationships to load
56516
+ * @returns {Promise<boolean>} - true if successful, false otherwise
56517
+ * @public
56518
+ * @async
56519
+ * @memberof MJEntityOrganicKeyRelatedEntityEntity
56520
+ * @method
56521
+ * @override
56522
+ */
56523
+ async Load(ID, EntityRelationshipsToLoad) {
56524
+ const compositeKey = new CompositeKey();
56525
+ compositeKey.KeyValuePairs.push({ FieldName: 'ID', Value: ID });
56526
+ return await super.InnerLoad(compositeKey, EntityRelationshipsToLoad);
56527
+ }
56528
+ /**
56529
+ * Validate() method override for MJ: Entity Organic Key Related Entities entity. This is an auto-generated method that invokes the generated validators for this entity for the following fields:
56530
+ * * Table-Level: To ensure clear data mapping, you must define a relationship using either the Related Entity Field Names or a complete Transitive Object configuration. This constraint prevents ambiguous setups by ensuring that only one of these two methods is used and that all required fields for a transitive relationship are provided together.
56531
+ * @public
56532
+ * @method
56533
+ * @override
56534
+ */
56535
+ Validate() {
56536
+ const result = super.Validate();
56537
+ this.ValidateRelatedEntityOrTransitiveMapping(result);
56538
+ result.Success = result.Success && (result.Errors.length === 0);
56539
+ return result;
56540
+ }
56541
+ /**
56542
+ * To ensure clear data mapping, you must define a relationship using either the Related Entity Field Names or a complete Transitive Object configuration. This constraint prevents ambiguous setups by ensuring that only one of these two methods is used and that all required fields for a transitive relationship are provided together.
56543
+ * @param result - the ValidationResult object to add any errors or warnings to
56544
+ * @public
56545
+ * @method
56546
+ */
56547
+ ValidateRelatedEntityOrTransitiveMapping(result) {
56548
+ const hasRelatedFields = this.RelatedEntityFieldNames != null;
56549
+ const hasTransitiveName = this.TransitiveObjectName != null;
56550
+ const hasTransitiveMatch = this.TransitiveObjectMatchFieldNames != null;
56551
+ const hasTransitiveOutput = this.TransitiveObjectOutputFieldName != null;
56552
+ const hasJoinField = this.RelatedEntityJoinFieldName != null;
56553
+ // Option 1: Only RelatedEntityFieldNames is provided
56554
+ const isDirectMapping = hasRelatedFields && !hasTransitiveName && !hasTransitiveMatch && !hasTransitiveOutput && !hasJoinField;
56555
+ // Option 2: All transitive fields are provided and RelatedEntityFieldNames is null
56556
+ const isTransitiveMapping = !hasRelatedFields && hasTransitiveName && hasTransitiveMatch && hasTransitiveOutput && hasJoinField;
56557
+ if (!isDirectMapping && !isTransitiveMapping) {
56558
+ result.Errors.push(new ValidationErrorInfo("RelatedEntityFieldNames", "You must provide either only the Related Entity Field Names OR a complete set of Transitive Object fields (Object Name, Match Fields, Output Field, and Join Field). Partial or overlapping configurations are not allowed.", this.RelatedEntityFieldNames, ValidationErrorType.Failure));
56559
+ }
56560
+ }
56561
+ /**
56562
+ * * Field Name: ID
56563
+ * * Display Name: ID
56564
+ * * SQL Data Type: uniqueidentifier
56565
+ * * Default Value: newsequentialid()
56566
+ */
56567
+ get ID() {
56568
+ return this.Get('ID');
56569
+ }
56570
+ set ID(value) {
56571
+ this.Set('ID', value);
56572
+ }
56573
+ /**
56574
+ * * Field Name: EntityOrganicKeyID
56575
+ * * Display Name: Organic Key ID
56576
+ * * SQL Data Type: uniqueidentifier
56577
+ * * Related Entity/Foreign Key: MJ: Entity Organic Keys (vwEntityOrganicKeys.ID)
56578
+ */
56579
+ get EntityOrganicKeyID() {
56580
+ return this.Get('EntityOrganicKeyID');
56581
+ }
56582
+ set EntityOrganicKeyID(value) {
56583
+ this.Set('EntityOrganicKeyID', value);
56584
+ }
56585
+ /**
56586
+ * * Field Name: RelatedEntityID
56587
+ * * Display Name: Related Entity ID
56588
+ * * SQL Data Type: uniqueidentifier
56589
+ * * Related Entity/Foreign Key: MJ: Entities (vwEntities.ID)
56590
+ */
56591
+ get RelatedEntityID() {
56592
+ return this.Get('RelatedEntityID');
56593
+ }
56594
+ set RelatedEntityID(value) {
56595
+ this.Set('RelatedEntityID', value);
56596
+ }
56597
+ /**
56598
+ * * Field Name: RelatedEntityFieldNames
56599
+ * * Display Name: Related Entity Fields
56600
+ * * SQL Data Type: nvarchar(500)
56601
+ * * Description: Comma-delimited field names in the related entity, positionally matching MatchFieldNames on the parent key. NULL when using transitive matching.
56602
+ */
56603
+ get RelatedEntityFieldNames() {
56604
+ return this.Get('RelatedEntityFieldNames');
56605
+ }
56606
+ set RelatedEntityFieldNames(value) {
56607
+ this.Set('RelatedEntityFieldNames', value);
56608
+ }
56609
+ /**
56610
+ * * Field Name: TransitiveObjectName
56611
+ * * Display Name: Transitive Object Name
56612
+ * * SQL Data Type: nvarchar(500)
56613
+ * * Description: Schema-qualified name of a SQL view or table that bridges the organic key to the related entity (e.g., "dbo.vwContactRecipientBridge"). This object encapsulates any number of join hops. NULL for direct matches.
56614
+ */
56615
+ get TransitiveObjectName() {
56616
+ return this.Get('TransitiveObjectName');
56617
+ }
56618
+ set TransitiveObjectName(value) {
56619
+ this.Set('TransitiveObjectName', value);
56620
+ }
56621
+ /**
56622
+ * * Field Name: TransitiveObjectMatchFieldNames
56623
+ * * Display Name: Transitive Match Fields
56624
+ * * SQL Data Type: nvarchar(500)
56625
+ * * Description: Comma-delimited field names in the transitive object that match the organic key values, positionally aligned with MatchFieldNames. NULL for direct matches.
56626
+ */
56627
+ get TransitiveObjectMatchFieldNames() {
56628
+ return this.Get('TransitiveObjectMatchFieldNames');
56629
+ }
56630
+ set TransitiveObjectMatchFieldNames(value) {
56631
+ this.Set('TransitiveObjectMatchFieldNames', value);
56632
+ }
56633
+ /**
56634
+ * * Field Name: TransitiveObjectOutputFieldName
56635
+ * * Display Name: Transitive Output Field
56636
+ * * SQL Data Type: nvarchar(255)
56637
+ * * Description: The field in the transitive object that produces the value to join against the related entity. NULL for direct matches.
56638
+ */
56639
+ get TransitiveObjectOutputFieldName() {
56640
+ return this.Get('TransitiveObjectOutputFieldName');
56641
+ }
56642
+ set TransitiveObjectOutputFieldName(value) {
56643
+ this.Set('TransitiveObjectOutputFieldName', value);
56644
+ }
56645
+ /**
56646
+ * * Field Name: RelatedEntityJoinFieldName
56647
+ * * Display Name: Related Entity Join Field
56648
+ * * SQL Data Type: nvarchar(255)
56649
+ * * Description: The field in the related entity that matches TransitiveObjectOutputFieldName. NULL for direct matches.
56650
+ */
56651
+ get RelatedEntityJoinFieldName() {
56652
+ return this.Get('RelatedEntityJoinFieldName');
56653
+ }
56654
+ set RelatedEntityJoinFieldName(value) {
56655
+ this.Set('RelatedEntityJoinFieldName', value);
56656
+ }
56657
+ /**
56658
+ * * Field Name: DisplayName
56659
+ * * Display Name: Display Name
56660
+ * * SQL Data Type: nvarchar(255)
56661
+ * * Description: Tab/section label override. If NULL, defaults to the related entity's display name.
56662
+ */
56663
+ get DisplayName() {
56664
+ return this.Get('DisplayName');
56665
+ }
56666
+ set DisplayName(value) {
56667
+ this.Set('DisplayName', value);
56668
+ }
56669
+ /**
56670
+ * * Field Name: DisplayLocation
56671
+ * * Display Name: Display Location
56672
+ * * SQL Data Type: nvarchar(50)
56673
+ * * Default Value: After Field Tabs
56674
+ * * Value List Type: List
56675
+ * * Possible Values
56676
+ * * After Field Tabs
56677
+ * * Before Field Tabs
56678
+ * * Description: Where to render the organic key tab relative to FK relationship tabs. After Field Tabs or Before Field Tabs.
56679
+ */
56680
+ get DisplayLocation() {
56681
+ return this.Get('DisplayLocation');
56682
+ }
56683
+ set DisplayLocation(value) {
56684
+ this.Set('DisplayLocation', value);
56685
+ }
56686
+ /**
56687
+ * * Field Name: DisplayComponentID
56688
+ * * Display Name: Display Component
56689
+ * * SQL Data Type: uniqueidentifier
56690
+ * * Description: FK to component registry for a custom display component. NULL uses the default EntityDataGrid.
56691
+ */
56692
+ get DisplayComponentID() {
56693
+ return this.Get('DisplayComponentID');
56694
+ }
56695
+ set DisplayComponentID(value) {
56696
+ this.Set('DisplayComponentID', value);
56697
+ }
56698
+ /**
56699
+ * * Field Name: DisplayComponentConfiguration
56700
+ * * Display Name: Display Component Configuration
56701
+ * * SQL Data Type: nvarchar(MAX)
56702
+ * * Description: JSON configuration passed to the display component.
56703
+ */
56704
+ get DisplayComponentConfiguration() {
56705
+ return this.Get('DisplayComponentConfiguration');
56706
+ }
56707
+ set DisplayComponentConfiguration(value) {
56708
+ this.Set('DisplayComponentConfiguration', value);
56709
+ }
56710
+ /**
56711
+ * * Field Name: Sequence
56712
+ * * Display Name: Sequence
56713
+ * * SQL Data Type: int
56714
+ * * Default Value: 0
56715
+ * * Description: Tab ordering within this organic key's related entities. Lower values appear first.
56716
+ */
56717
+ get Sequence() {
56718
+ return this.Get('Sequence');
56719
+ }
56720
+ set Sequence(value) {
56721
+ this.Set('Sequence', value);
56722
+ }
56723
+ /**
56724
+ * * Field Name: __mj_CreatedAt
56725
+ * * Display Name: Created At
56726
+ * * SQL Data Type: datetimeoffset
56727
+ * * Default Value: getutcdate()
56728
+ */
56729
+ get __mj_CreatedAt() {
56730
+ return this.Get('__mj_CreatedAt');
56731
+ }
56732
+ /**
56733
+ * * Field Name: __mj_UpdatedAt
56734
+ * * Display Name: Updated At
56735
+ * * SQL Data Type: datetimeoffset
56736
+ * * Default Value: getutcdate()
56737
+ */
56738
+ get __mj_UpdatedAt() {
56739
+ return this.Get('__mj_UpdatedAt');
56740
+ }
56741
+ /**
56742
+ * * Field Name: EntityOrganicKey
56743
+ * * Display Name: Organic Key
56744
+ * * SQL Data Type: nvarchar(255)
56745
+ */
56746
+ get EntityOrganicKey() {
56747
+ return this.Get('EntityOrganicKey');
56748
+ }
56749
+ /**
56750
+ * * Field Name: RelatedEntity
56751
+ * * Display Name: Related Entity
56752
+ * * SQL Data Type: nvarchar(255)
56753
+ */
56754
+ get RelatedEntity() {
56755
+ return this.Get('RelatedEntity');
56756
+ }
56757
+ };
56758
+ MJEntityOrganicKeyRelatedEntityEntity = __decorate([
56759
+ RegisterClass(BaseEntity, 'MJ: Entity Organic Key Related Entities')
56760
+ ], MJEntityOrganicKeyRelatedEntityEntity);
56761
+ export { MJEntityOrganicKeyRelatedEntityEntity };
56762
+ /**
56763
+ * MJ: Entity Organic Keys - strongly typed entity sub-class
56764
+ * * Schema: __mj
56765
+ * * Base Table: EntityOrganicKey
56766
+ * * Base View: vwEntityOrganicKeys
56767
+ * * @description Defines organic keys on entities — sets of fields that constitute natural identifiers for cross-system matching (e.g., email, phone, SSN). Enables related record views across integration boundaries without foreign keys.
56768
+ * * Primary Key: ID
56769
+ * @extends {BaseEntity}
56770
+ * @class
56771
+ * @public
56772
+ */
56773
+ let MJEntityOrganicKeyEntity = class MJEntityOrganicKeyEntity extends BaseEntity {
56774
+ /**
56775
+ * Loads the MJ: Entity Organic Keys record from the database
56776
+ * @param ID: string - primary key value to load the MJ: Entity Organic Keys record.
56777
+ * @param EntityRelationshipsToLoad - (optional) the relationships to load
56778
+ * @returns {Promise<boolean>} - true if successful, false otherwise
56779
+ * @public
56780
+ * @async
56781
+ * @memberof MJEntityOrganicKeyEntity
56782
+ * @method
56783
+ * @override
56784
+ */
56785
+ async Load(ID, EntityRelationshipsToLoad) {
56786
+ const compositeKey = new CompositeKey();
56787
+ compositeKey.KeyValuePairs.push({ FieldName: 'ID', Value: ID });
56788
+ return await super.InnerLoad(compositeKey, EntityRelationshipsToLoad);
56789
+ }
56790
+ /**
56791
+ * * Field Name: ID
56792
+ * * Display Name: ID
56793
+ * * SQL Data Type: uniqueidentifier
56794
+ * * Default Value: newsequentialid()
56795
+ */
56796
+ get ID() {
56797
+ return this.Get('ID');
56798
+ }
56799
+ set ID(value) {
56800
+ this.Set('ID', value);
56801
+ }
56802
+ /**
56803
+ * * Field Name: EntityID
56804
+ * * Display Name: Entity ID
56805
+ * * SQL Data Type: uniqueidentifier
56806
+ * * Related Entity/Foreign Key: MJ: Entities (vwEntities.ID)
56807
+ */
56808
+ get EntityID() {
56809
+ return this.Get('EntityID');
56810
+ }
56811
+ set EntityID(value) {
56812
+ this.Set('EntityID', value);
56813
+ }
56814
+ /**
56815
+ * * Field Name: Name
56816
+ * * Display Name: Name
56817
+ * * SQL Data Type: nvarchar(255)
56818
+ * * Description: Human-readable label for this organic key (e.g., "Email Match", "SSN Match"). Must be unique per entity.
56819
+ */
56820
+ get Name() {
56821
+ return this.Get('Name');
56822
+ }
56823
+ set Name(value) {
56824
+ this.Set('Name', value);
56825
+ }
56826
+ /**
56827
+ * * Field Name: Description
56828
+ * * Display Name: Description
56829
+ * * SQL Data Type: nvarchar(MAX)
56830
+ * * Description: Optional explanation of the key's purpose and matching semantics.
56831
+ */
56832
+ get Description() {
56833
+ return this.Get('Description');
56834
+ }
56835
+ set Description(value) {
56836
+ this.Set('Description', value);
56837
+ }
56838
+ /**
56839
+ * * Field Name: MatchFieldNames
56840
+ * * Display Name: Match Fields
56841
+ * * SQL Data Type: nvarchar(500)
56842
+ * * Description: Comma-delimited field names in the owning entity that constitute the key. Single value for simple keys (e.g., "EmailAddress"), multiple for compound keys (e.g., "FirstName,LastName,DateOfBirth"). Field names must match EntityField.Name values.
56843
+ */
56844
+ get MatchFieldNames() {
56845
+ return this.Get('MatchFieldNames');
56846
+ }
56847
+ set MatchFieldNames(value) {
56848
+ this.Set('MatchFieldNames', value);
56849
+ }
56850
+ /**
56851
+ * * Field Name: NormalizationStrategy
56852
+ * * Display Name: Normalization Strategy
56853
+ * * SQL Data Type: nvarchar(50)
56854
+ * * Default Value: LowerCaseTrim
56855
+ * * Value List Type: List
56856
+ * * Possible Values
56857
+ * * Custom
56858
+ * * ExactMatch
56859
+ * * LowerCaseTrim
56860
+ * * Trim
56861
+ * * Description: How field values are normalized before comparison. LowerCaseTrim = LOWER(TRIM(x)), Trim = TRIM(x), ExactMatch = no transformation, Custom = uses CustomNormalizationExpression.
56862
+ */
56863
+ get NormalizationStrategy() {
56864
+ return this.Get('NormalizationStrategy');
56865
+ }
56866
+ set NormalizationStrategy(value) {
56867
+ this.Set('NormalizationStrategy', value);
56868
+ }
56869
+ /**
56870
+ * * Field Name: CustomNormalizationExpression
56871
+ * * Display Name: Custom Normalization Expression
56872
+ * * SQL Data Type: nvarchar(MAX)
56873
+ * * Description: SQL expression template when NormalizationStrategy is Custom. Uses {{FieldName}} as placeholder. Example: "REPLACE(REPLACE({{FieldName}}, '-', ''), ' ', '')" for phone number normalization.
56874
+ */
56875
+ get CustomNormalizationExpression() {
56876
+ return this.Get('CustomNormalizationExpression');
56877
+ }
56878
+ set CustomNormalizationExpression(value) {
56879
+ this.Set('CustomNormalizationExpression', value);
56880
+ }
56881
+ /**
56882
+ * * Field Name: AutoCreateRelatedViewOnForm
56883
+ * * Display Name: Auto Create Related View
56884
+ * * SQL Data Type: bit
56885
+ * * Default Value: 0
56886
+ * * Description: When true, a future discovery process will automatically scan entities and create EntityOrganicKeyRelatedEntity rows for entities with matching field patterns.
56887
+ */
56888
+ get AutoCreateRelatedViewOnForm() {
56889
+ return this.Get('AutoCreateRelatedViewOnForm');
56890
+ }
56891
+ set AutoCreateRelatedViewOnForm(value) {
56892
+ this.Set('AutoCreateRelatedViewOnForm', value);
56893
+ }
56894
+ /**
56895
+ * * Field Name: Sequence
56896
+ * * Display Name: Sequence
56897
+ * * SQL Data Type: int
56898
+ * * Default Value: 0
56899
+ * * Description: Ordering when an entity has multiple organic keys. Lower values = higher priority.
56900
+ */
56901
+ get Sequence() {
56902
+ return this.Get('Sequence');
56903
+ }
56904
+ set Sequence(value) {
56905
+ this.Set('Sequence', value);
56906
+ }
56907
+ /**
56908
+ * * Field Name: Status
56909
+ * * Display Name: Status
56910
+ * * SQL Data Type: nvarchar(20)
56911
+ * * Default Value: Active
56912
+ * * Value List Type: List
56913
+ * * Possible Values
56914
+ * * Active
56915
+ * * Disabled
56916
+ * * Description: Active or Disabled. Disabled keys are ignored at runtime.
56917
+ */
56918
+ get Status() {
56919
+ return this.Get('Status');
56920
+ }
56921
+ set Status(value) {
56922
+ this.Set('Status', value);
56923
+ }
56924
+ /**
56925
+ * * Field Name: __mj_CreatedAt
56926
+ * * Display Name: Created At
56927
+ * * SQL Data Type: datetimeoffset
56928
+ * * Default Value: getutcdate()
56929
+ */
56930
+ get __mj_CreatedAt() {
56931
+ return this.Get('__mj_CreatedAt');
56932
+ }
56933
+ /**
56934
+ * * Field Name: __mj_UpdatedAt
56935
+ * * Display Name: Updated At
56936
+ * * SQL Data Type: datetimeoffset
56937
+ * * Default Value: getutcdate()
56938
+ */
56939
+ get __mj_UpdatedAt() {
56940
+ return this.Get('__mj_UpdatedAt');
56941
+ }
56942
+ /**
56943
+ * * Field Name: Entity
56944
+ * * Display Name: Entity
56945
+ * * SQL Data Type: nvarchar(255)
56946
+ */
56947
+ get Entity() {
56948
+ return this.Get('Entity');
56949
+ }
56950
+ };
56951
+ MJEntityOrganicKeyEntity = __decorate([
56952
+ RegisterClass(BaseEntity, 'MJ: Entity Organic Keys')
56953
+ ], MJEntityOrganicKeyEntity);
56954
+ export { MJEntityOrganicKeyEntity };
56118
56955
  /**
56119
56956
  * MJ: Entity Permissions - strongly typed entity sub-class
56120
56957
  * * Schema: __mj