@memberjunction/core-entities 5.37.0 → 5.39.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/custom/MJQueryEntityExtended.d.ts +73 -0
- package/dist/custom/MJQueryEntityExtended.d.ts.map +1 -0
- package/dist/custom/MJQueryEntityExtended.js +195 -0
- package/dist/custom/MJQueryEntityExtended.js.map +1 -0
- package/dist/custom/ResourcePermissions/ResourcePermissionEngine.js +2 -2
- package/dist/custom/ResourcePermissions/ResourcePermissionEngine.js.map +1 -1
- package/dist/engines/QueryEngine.d.ts +28 -7
- package/dist/engines/QueryEngine.d.ts.map +1 -1
- package/dist/engines/QueryEngine.js +40 -1
- package/dist/engines/QueryEngine.js.map +1 -1
- package/dist/engines/UserInfoEngine.d.ts +9 -0
- package/dist/engines/UserInfoEngine.d.ts.map +1 -1
- package/dist/engines/UserInfoEngine.js +12 -0
- package/dist/engines/UserInfoEngine.js.map +1 -1
- package/dist/engines/conversations.d.ts +42 -2
- package/dist/engines/conversations.d.ts.map +1 -1
- package/dist/engines/conversations.js +49 -6
- package/dist/engines/conversations.js.map +1 -1
- package/dist/engines/interactive-forms.d.ts +132 -0
- package/dist/engines/interactive-forms.d.ts.map +1 -0
- package/dist/engines/interactive-forms.js +212 -0
- package/dist/engines/interactive-forms.js.map +1 -0
- package/dist/generated/entity_subclasses.d.ts +843 -104
- package/dist/generated/entity_subclasses.d.ts.map +1 -1
- package/dist/generated/entity_subclasses.js +1257 -138
- package/dist/generated/entity_subclasses.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/package.json +5 -5
- package/readme.md +3 -3
|
@@ -2658,7 +2658,7 @@ detailed information about what validation rules failed.`),
|
|
|
2658
2658
|
export const MJAIAgentRunSchema = z.object({
|
|
2659
2659
|
ID: z.string().describe(`
|
|
2660
2660
|
* * Field Name: ID
|
|
2661
|
-
* * Display Name: ID
|
|
2661
|
+
* * Display Name: Run ID
|
|
2662
2662
|
* * SQL Data Type: uniqueidentifier
|
|
2663
2663
|
* * Default Value: newsequentialid()
|
|
2664
2664
|
* * Description: Unique identifier for this agent run`),
|
|
@@ -2733,7 +2733,7 @@ export const MJAIAgentRunSchema = z.object({
|
|
|
2733
2733
|
* * Description: JSON serialization of the complete agent state, including conversation context, variables, and execution state. Enables pause/resume functionality.`),
|
|
2734
2734
|
TotalTokensUsed: z.number().nullable().describe(`
|
|
2735
2735
|
* * Field Name: TotalTokensUsed
|
|
2736
|
-
* * Display Name: Total Tokens
|
|
2736
|
+
* * Display Name: Total Tokens
|
|
2737
2737
|
* * SQL Data Type: int
|
|
2738
2738
|
* * Default Value: 0
|
|
2739
2739
|
* * Description: Total number of tokens consumed by all LLM calls during this agent run`),
|
|
@@ -2755,27 +2755,27 @@ export const MJAIAgentRunSchema = z.object({
|
|
|
2755
2755
|
* * Default Value: getutcdate()`),
|
|
2756
2756
|
TotalPromptTokensUsed: z.number().nullable().describe(`
|
|
2757
2757
|
* * Field Name: TotalPromptTokensUsed
|
|
2758
|
-
* * Display Name:
|
|
2758
|
+
* * Display Name: Prompt Tokens
|
|
2759
2759
|
* * SQL Data Type: int
|
|
2760
2760
|
* * Description: Total number of prompt/input tokens used across all AIPromptRun executions during this agent run. This provides a breakdown of the TotalTokensUsed field to help analyze the ratio of input vs output tokens consumed by the agent.`),
|
|
2761
2761
|
TotalCompletionTokensUsed: z.number().nullable().describe(`
|
|
2762
2762
|
* * Field Name: TotalCompletionTokensUsed
|
|
2763
|
-
* * Display Name:
|
|
2763
|
+
* * Display Name: Completion Tokens
|
|
2764
2764
|
* * SQL Data Type: int
|
|
2765
2765
|
* * Description: Total number of completion/output tokens generated across all AIPromptRun executions during this agent run. This provides a breakdown of the TotalTokensUsed field to help analyze the ratio of input vs output tokens consumed by the agent.`),
|
|
2766
2766
|
TotalTokensUsedRollup: z.number().nullable().describe(`
|
|
2767
2767
|
* * Field Name: TotalTokensUsedRollup
|
|
2768
|
-
* * Display Name: Total Tokens
|
|
2768
|
+
* * Display Name: Total Tokens (Rollup)
|
|
2769
2769
|
* * SQL Data Type: int
|
|
2770
2770
|
* * Description: Total tokens used including this agent run and all sub-agent runs. For leaf agents (no sub-agents), this equals TotalTokensUsed. For parent agents, this includes the sum of all descendant agent tokens. Calculated as TotalPromptTokensUsedRollup + TotalCompletionTokensUsedRollup.`),
|
|
2771
2771
|
TotalPromptTokensUsedRollup: z.number().nullable().describe(`
|
|
2772
2772
|
* * Field Name: TotalPromptTokensUsedRollup
|
|
2773
|
-
* * Display Name:
|
|
2773
|
+
* * Display Name: Prompt Tokens (Rollup)
|
|
2774
2774
|
* * SQL Data Type: int
|
|
2775
2775
|
* * Description: Total prompt/input tokens including this agent run and all sub-agent runs. For leaf agents (no sub-agents), this equals TotalPromptTokensUsed. For parent agents, this includes the sum of all descendant agent prompt tokens.`),
|
|
2776
2776
|
TotalCompletionTokensUsedRollup: z.number().nullable().describe(`
|
|
2777
2777
|
* * Field Name: TotalCompletionTokensUsedRollup
|
|
2778
|
-
* * Display Name:
|
|
2778
|
+
* * Display Name: Completion Tokens (Rollup)
|
|
2779
2779
|
* * SQL Data Type: int
|
|
2780
2780
|
* * Description: Total completion/output tokens including this agent run and all sub-agent runs. For leaf agents (no sub-agents), this equals TotalCompletionTokensUsed. For parent agents, this includes the sum of all descendant agent completion tokens.`),
|
|
2781
2781
|
TotalCostRollup: z.number().nullable().describe(`
|
|
@@ -2791,7 +2791,7 @@ export const MJAIAgentRunSchema = z.object({
|
|
|
2791
2791
|
* * Description: Optional tracking of a specific conversation detail (e.g. a specific message) that spawned this agent run`),
|
|
2792
2792
|
ConversationDetailSequence: z.number().nullable().describe(`
|
|
2793
2793
|
* * Field Name: ConversationDetailSequence
|
|
2794
|
-
* * Display Name:
|
|
2794
|
+
* * Display Name: Sequence
|
|
2795
2795
|
* * SQL Data Type: int
|
|
2796
2796
|
* * Description: If a conversation detail spawned multiple agent runs, tracks the order of their spawn/execution`),
|
|
2797
2797
|
CancellationReason: z.union([z.literal('System'), z.literal('Timeout'), z.literal('User Request')]).nullable().describe(`
|
|
@@ -2826,7 +2826,7 @@ export const MJAIAgentRunSchema = z.object({
|
|
|
2826
2826
|
* * Description: JSON serialization of the final Payload state at the end of the agent run`),
|
|
2827
2827
|
Message: z.string().nullable().describe(`
|
|
2828
2828
|
* * Field Name: Message
|
|
2829
|
-
* * Display Name: Message
|
|
2829
|
+
* * Display Name: Final Message
|
|
2830
2830
|
* * SQL Data Type: nvarchar(MAX)
|
|
2831
2831
|
* * Description: Final message from the agent to the end user at the end of a run`),
|
|
2832
2832
|
LastRunID: z.string().nullable().describe(`
|
|
@@ -2867,7 +2867,7 @@ each time the agent processes a prompt step.`),
|
|
|
2867
2867
|
* * Description: Runtime vendor override that was used for this execution. When set along with OverrideModelID, this vendor was used to provide the model.`),
|
|
2868
2868
|
Data: z.string().nullable().describe(`
|
|
2869
2869
|
* * Field Name: Data
|
|
2870
|
-
* * Display Name: Data
|
|
2870
|
+
* * Display Name: Execution Data
|
|
2871
2871
|
* * SQL Data Type: nvarchar(MAX)
|
|
2872
2872
|
* * Description: JSON serialized data that was passed for template rendering and prompt execution. This data was passed to the agent's prompt as well as all sub-agents.`),
|
|
2873
2873
|
Verbose: z.boolean().nullable().describe(`
|
|
@@ -2921,61 +2921,71 @@ each time the agent processes a prompt step.`),
|
|
|
2921
2921
|
* * Description: JSON object containing additional scope dimensions beyond the primary scope. Example: {"ContactID":"abc-123","TeamID":"team-456"}`),
|
|
2922
2922
|
ExternalReferenceID: z.string().nullable().describe(`
|
|
2923
2923
|
* * Field Name: ExternalReferenceID
|
|
2924
|
-
* * Display Name: External Reference
|
|
2924
|
+
* * Display Name: External Reference
|
|
2925
2925
|
* * SQL Data Type: nvarchar(200)
|
|
2926
2926
|
* * Description: Optional reference ID from an external system that initiated this agent run. Enables correlation between the caller's agent run and this execution. For example, when Skip SaaS is called via SkipProxyAgent, this stores the MJ-side Agent Run ID.`),
|
|
2927
2927
|
CompanyID: z.string().nullable().describe(`
|
|
2928
2928
|
* * Field Name: CompanyID
|
|
2929
|
-
* * Display Name: Company
|
|
2929
|
+
* * Display Name: Company
|
|
2930
2930
|
* * SQL Data Type: uniqueidentifier
|
|
2931
2931
|
* * Description: Optional company scope for multi-tenant memory. When populated, Memory Manager uses this to scope extracted notes to the company. Flows from ExecuteAgentParams.companyId at agent invocation time.`),
|
|
2932
|
+
TotalCacheReadTokensUsed: z.number().nullable().describe(`
|
|
2933
|
+
* * Field Name: TotalCacheReadTokensUsed
|
|
2934
|
+
* * Display Name: Cache Read Tokens
|
|
2935
|
+
* * SQL Data Type: int
|
|
2936
|
+
* * Description: Total input tokens served from the AI provider's prompt cache (cache reads / hits) across this agent run, summed from child prompt runs' TokensCacheReadRollup and sub-agent runs' TotalCacheReadTokensUsed. Counts only; the cost impact (cache reads are billed at a steep discount) is reflected in TotalCost. The cache counterpart of TotalPromptTokensUsed.`),
|
|
2937
|
+
TotalCacheWriteTokensUsed: z.number().nullable().describe(`
|
|
2938
|
+
* * Field Name: TotalCacheWriteTokensUsed
|
|
2939
|
+
* * Display Name: Cache Write Tokens
|
|
2940
|
+
* * SQL Data Type: int
|
|
2941
|
+
* * Description: Total input tokens written to the AI provider's prompt cache (cache writes / creation) across this agent run, summed from child prompt runs' TokensCacheWriteRollup and sub-agent runs' TotalCacheWriteTokensUsed. Populated for providers that bill cache creation (e.g. Anthropic); 0 or NULL otherwise. The cache counterpart of TotalCompletionTokensUsed.`),
|
|
2932
2942
|
Agent: z.string().nullable().describe(`
|
|
2933
2943
|
* * Field Name: Agent
|
|
2934
|
-
* * Display Name: Agent
|
|
2944
|
+
* * Display Name: Agent Details
|
|
2935
2945
|
* * SQL Data Type: nvarchar(255)`),
|
|
2936
2946
|
ParentRun: z.string().nullable().describe(`
|
|
2937
2947
|
* * Field Name: ParentRun
|
|
2938
|
-
* * Display Name: Parent Run
|
|
2948
|
+
* * Display Name: Parent Run Details
|
|
2939
2949
|
* * SQL Data Type: nvarchar(255)`),
|
|
2940
2950
|
Conversation: z.string().nullable().describe(`
|
|
2941
2951
|
* * Field Name: Conversation
|
|
2942
|
-
* * Display Name: Conversation
|
|
2952
|
+
* * Display Name: Conversation Details
|
|
2943
2953
|
* * SQL Data Type: nvarchar(255)`),
|
|
2944
2954
|
User: z.string().nullable().describe(`
|
|
2945
2955
|
* * Field Name: User
|
|
2946
|
-
* * Display Name: User
|
|
2956
|
+
* * Display Name: User Details
|
|
2947
2957
|
* * SQL Data Type: nvarchar(100)`),
|
|
2948
2958
|
ConversationDetail: z.string().nullable().describe(`
|
|
2949
2959
|
* * Field Name: ConversationDetail
|
|
2950
|
-
* * Display Name: Conversation Detail
|
|
2960
|
+
* * Display Name: Conversation Detail Details
|
|
2951
2961
|
* * SQL Data Type: nvarchar(MAX)`),
|
|
2952
2962
|
LastRun: z.string().nullable().describe(`
|
|
2953
2963
|
* * Field Name: LastRun
|
|
2954
|
-
* * Display Name: Last Run
|
|
2964
|
+
* * Display Name: Last Run Details
|
|
2955
2965
|
* * SQL Data Type: nvarchar(255)`),
|
|
2956
2966
|
Configuration: z.string().nullable().describe(`
|
|
2957
2967
|
* * Field Name: Configuration
|
|
2958
|
-
* * Display Name: Configuration
|
|
2968
|
+
* * Display Name: Configuration Details
|
|
2959
2969
|
* * SQL Data Type: nvarchar(100)`),
|
|
2960
2970
|
OverrideModel: z.string().nullable().describe(`
|
|
2961
2971
|
* * Field Name: OverrideModel
|
|
2962
|
-
* * Display Name: Override Model
|
|
2972
|
+
* * Display Name: Override Model Details
|
|
2963
2973
|
* * SQL Data Type: nvarchar(50)`),
|
|
2964
2974
|
OverrideVendor: z.string().nullable().describe(`
|
|
2965
2975
|
* * Field Name: OverrideVendor
|
|
2966
|
-
* * Display Name: Override Vendor
|
|
2976
|
+
* * Display Name: Override Vendor Details
|
|
2967
2977
|
* * SQL Data Type: nvarchar(50)`),
|
|
2968
2978
|
ScheduledJobRun: z.string().nullable().describe(`
|
|
2969
2979
|
* * Field Name: ScheduledJobRun
|
|
2970
|
-
* * Display Name: Scheduled Job
|
|
2980
|
+
* * Display Name: Scheduled Job Details
|
|
2971
2981
|
* * SQL Data Type: nvarchar(200)`),
|
|
2972
2982
|
TestRun: z.string().nullable().describe(`
|
|
2973
2983
|
* * Field Name: TestRun
|
|
2974
|
-
* * Display Name: Test Run
|
|
2984
|
+
* * Display Name: Test Run Details
|
|
2975
2985
|
* * SQL Data Type: nvarchar(255)`),
|
|
2976
2986
|
PrimaryScopeEntity: z.string().nullable().describe(`
|
|
2977
2987
|
* * Field Name: PrimaryScopeEntity
|
|
2978
|
-
* * Display Name: Primary Scope Entity
|
|
2988
|
+
* * Display Name: Primary Scope Entity Details
|
|
2979
2989
|
* * SQL Data Type: nvarchar(255)`),
|
|
2980
2990
|
RootParentRunID: z.string().nullable().describe(`
|
|
2981
2991
|
* * Field Name: RootParentRunID
|
|
@@ -4411,12 +4421,12 @@ export const MJAIModelCostSchema = z.object({
|
|
|
4411
4421
|
* * Default Value: newsequentialid()`),
|
|
4412
4422
|
ModelID: z.string().describe(`
|
|
4413
4423
|
* * Field Name: ModelID
|
|
4414
|
-
* * Display Name: Model
|
|
4424
|
+
* * Display Name: Model
|
|
4415
4425
|
* * SQL Data Type: uniqueidentifier
|
|
4416
4426
|
* * Related Entity/Foreign Key: MJ: AI Models (vwAIModels.ID)`),
|
|
4417
4427
|
VendorID: z.string().describe(`
|
|
4418
4428
|
* * Field Name: VendorID
|
|
4419
|
-
* * Display Name: Vendor
|
|
4429
|
+
* * Display Name: Vendor
|
|
4420
4430
|
* * SQL Data Type: uniqueidentifier
|
|
4421
4431
|
* * Related Entity/Foreign Key: MJ: AI Vendors (vwAIVendors.ID)`),
|
|
4422
4432
|
StartedAt: z.date().nullable().describe(`
|
|
@@ -4448,7 +4458,7 @@ export const MJAIModelCostSchema = z.object({
|
|
|
4448
4458
|
* * Description: ISO 4217 three-letter currency code (e.g., USD, EUR, GBP) in uppercase`),
|
|
4449
4459
|
PriceTypeID: z.string().describe(`
|
|
4450
4460
|
* * Field Name: PriceTypeID
|
|
4451
|
-
* * Display Name: Price Type
|
|
4461
|
+
* * Display Name: Price Type
|
|
4452
4462
|
* * SQL Data Type: uniqueidentifier
|
|
4453
4463
|
* * Related Entity/Foreign Key: MJ: AI Model Price Types (vwAIModelPriceTypes.ID)`),
|
|
4454
4464
|
InputPricePerUnit: z.number().describe(`
|
|
@@ -4463,7 +4473,7 @@ export const MJAIModelCostSchema = z.object({
|
|
|
4463
4473
|
* * Description: Price per unit for output tokens/responses. Must be non-negative. Often higher than input pricing`),
|
|
4464
4474
|
UnitTypeID: z.string().describe(`
|
|
4465
4475
|
* * Field Name: UnitTypeID
|
|
4466
|
-
* * Display Name: Unit Type
|
|
4476
|
+
* * Display Name: Unit Type
|
|
4467
4477
|
* * SQL Data Type: uniqueidentifier
|
|
4468
4478
|
* * Related Entity/Foreign Key: MJ: AI Model Price Unit Types (vwAIModelPriceUnitTypes.ID)`),
|
|
4469
4479
|
ProcessingType: z.union([z.literal('Batch'), z.literal('Realtime')]).describe(`
|
|
@@ -4490,21 +4500,31 @@ export const MJAIModelCostSchema = z.object({
|
|
|
4490
4500
|
* * Display Name: Updated At
|
|
4491
4501
|
* * SQL Data Type: datetimeoffset
|
|
4492
4502
|
* * Default Value: getutcdate()`),
|
|
4503
|
+
CacheReadPricePerUnit: z.number().nullable().describe(`
|
|
4504
|
+
* * Field Name: CacheReadPricePerUnit
|
|
4505
|
+
* * Display Name: Cache Read Price Per Unit
|
|
4506
|
+
* * SQL Data Type: decimal(18, 8)
|
|
4507
|
+
* * Description: Optional price per unit for input tokens served from the AI provider's prompt cache (cache reads / hits), expressed in the same currency and UnitType (e.g. per 1M tokens) as InputPricePerUnit. When NULL, cache-read tokens are priced at InputPricePerUnit. Cache reads are usually far cheaper than uncached input (e.g. ~0.1x for Anthropic/Gemini, ~0.5x for OpenAI).`),
|
|
4508
|
+
CacheWritePricePerUnit: z.number().nullable().describe(`
|
|
4509
|
+
* * Field Name: CacheWritePricePerUnit
|
|
4510
|
+
* * Display Name: Cache Write Price Per Unit
|
|
4511
|
+
* * SQL Data Type: decimal(18, 8)
|
|
4512
|
+
* * Description: Optional price per unit for input tokens written to the AI provider's prompt cache (cache writes / creation), expressed in the same currency and UnitType as InputPricePerUnit. When NULL, cache-write tokens are priced at InputPricePerUnit. Populated for providers that bill cache creation separately (e.g. Anthropic, ~1.25x input); leave NULL for providers that do not (OpenAI, Gemini), which also report 0 cache-write tokens.`),
|
|
4493
4513
|
Model: z.string().describe(`
|
|
4494
4514
|
* * Field Name: Model
|
|
4495
|
-
* * Display Name: Model
|
|
4515
|
+
* * Display Name: Model Name
|
|
4496
4516
|
* * SQL Data Type: nvarchar(50)`),
|
|
4497
4517
|
Vendor: z.string().describe(`
|
|
4498
4518
|
* * Field Name: Vendor
|
|
4499
|
-
* * Display Name: Vendor
|
|
4519
|
+
* * Display Name: Vendor Name
|
|
4500
4520
|
* * SQL Data Type: nvarchar(50)`),
|
|
4501
4521
|
PriceType: z.string().describe(`
|
|
4502
4522
|
* * Field Name: PriceType
|
|
4503
|
-
* * Display Name: Price Type
|
|
4523
|
+
* * Display Name: Price Type Name
|
|
4504
4524
|
* * SQL Data Type: nvarchar(100)`),
|
|
4505
4525
|
UnitType: z.string().describe(`
|
|
4506
4526
|
* * Field Name: UnitType
|
|
4507
|
-
* * Display Name: Unit Type
|
|
4527
|
+
* * Display Name: Unit Type Name
|
|
4508
4528
|
* * SQL Data Type: nvarchar(100)`),
|
|
4509
4529
|
});
|
|
4510
4530
|
/**
|
|
@@ -5242,7 +5262,7 @@ export const MJAIPromptRunSchema = z.object({
|
|
|
5242
5262
|
* * Description: Optional configuration used for this execution.`),
|
|
5243
5263
|
RunAt: z.date().describe(`
|
|
5244
5264
|
* * Field Name: RunAt
|
|
5245
|
-
* * Display Name:
|
|
5265
|
+
* * Display Name: Started At
|
|
5246
5266
|
* * SQL Data Type: datetimeoffset
|
|
5247
5267
|
* * Default Value: sysdatetimeoffset()
|
|
5248
5268
|
* * Description: When the prompt run started, with timezone offset information.`),
|
|
@@ -5268,7 +5288,7 @@ export const MJAIPromptRunSchema = z.object({
|
|
|
5268
5288
|
* * Description: The output result from the model.`),
|
|
5269
5289
|
TokensUsed: z.number().nullable().describe(`
|
|
5270
5290
|
* * Field Name: TokensUsed
|
|
5271
|
-
* * Display Name:
|
|
5291
|
+
* * Display Name: Tokens Used
|
|
5272
5292
|
* * SQL Data Type: int
|
|
5273
5293
|
* * Description: Total number of tokens used (prompt + completion).`),
|
|
5274
5294
|
TokensPrompt: z.number().nullable().describe(`
|
|
@@ -5343,12 +5363,12 @@ export const MJAIPromptRunSchema = z.object({
|
|
|
5343
5363
|
* * Description: The cost of this specific prompt execution as reported by the AI provider. This does not include costs from child executions. The currency is specified in CostCurrency field.`),
|
|
5344
5364
|
CostCurrency: z.string().nullable().describe(`
|
|
5345
5365
|
* * Field Name: CostCurrency
|
|
5346
|
-
* * Display Name:
|
|
5366
|
+
* * Display Name: Currency
|
|
5347
5367
|
* * SQL Data Type: nvarchar(10)
|
|
5348
5368
|
* * Description: ISO 4217 currency code for the Cost field (e.g., USD, EUR, GBP). Different AI providers may use different currencies.`),
|
|
5349
5369
|
TokensUsedRollup: z.number().nullable().describe(`
|
|
5350
5370
|
* * Field Name: TokensUsedRollup
|
|
5351
|
-
* * Display Name:
|
|
5371
|
+
* * Display Name: Tokens Used (Rollup)
|
|
5352
5372
|
* * SQL Data Type: int
|
|
5353
5373
|
* * 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.`),
|
|
5354
5374
|
TokensPromptRollup: z.number().nullable().describe(`
|
|
@@ -5408,12 +5428,12 @@ export const MJAIPromptRunSchema = z.object({
|
|
|
5408
5428
|
* * Description: The response format requested for this run (e.g., 'JSON', 'Text', 'Markdown')`),
|
|
5409
5429
|
LogProbs: z.boolean().nullable().describe(`
|
|
5410
5430
|
* * Field Name: LogProbs
|
|
5411
|
-
* * Display Name: Log
|
|
5431
|
+
* * Display Name: Log Probs
|
|
5412
5432
|
* * SQL Data Type: bit
|
|
5413
5433
|
* * Description: Whether log probabilities were requested for this run`),
|
|
5414
5434
|
TopLogProbs: z.number().nullable().describe(`
|
|
5415
5435
|
* * Field Name: TopLogProbs
|
|
5416
|
-
* * Display Name: Top Log
|
|
5436
|
+
* * Display Name: Top Log Probs
|
|
5417
5437
|
* * SQL Data Type: int
|
|
5418
5438
|
* * Description: Number of top log probabilities requested per token (if LogProbs is true)`),
|
|
5419
5439
|
DescendantCost: z.number().nullable().describe(`
|
|
@@ -5423,17 +5443,17 @@ export const MJAIPromptRunSchema = z.object({
|
|
|
5423
5443
|
* * Description: The total cost of all descendant (child and grandchild) prompt runs, excluding this run's own cost. For leaf nodes (no children), this is 0. Updated when child costs change.`),
|
|
5424
5444
|
ValidationAttemptCount: z.number().nullable().describe(`
|
|
5425
5445
|
* * Field Name: ValidationAttemptCount
|
|
5426
|
-
* * Display Name: Validation
|
|
5446
|
+
* * Display Name: Validation Attempts
|
|
5427
5447
|
* * SQL Data Type: int
|
|
5428
5448
|
* * Description: Total number of validation attempts made (including the initial attempt)`),
|
|
5429
5449
|
SuccessfulValidationCount: z.number().nullable().describe(`
|
|
5430
5450
|
* * Field Name: SuccessfulValidationCount
|
|
5431
|
-
* * Display Name: Successful
|
|
5451
|
+
* * Display Name: Successful Validations
|
|
5432
5452
|
* * SQL Data Type: int
|
|
5433
5453
|
* * Description: Number of validation attempts that passed validation`),
|
|
5434
5454
|
FinalValidationPassed: z.boolean().nullable().describe(`
|
|
5435
5455
|
* * Field Name: FinalValidationPassed
|
|
5436
|
-
* * Display Name:
|
|
5456
|
+
* * Display Name: Validation Passed
|
|
5437
5457
|
* * SQL Data Type: bit
|
|
5438
5458
|
* * Description: Whether validation ultimately passed (1) or failed (0)`),
|
|
5439
5459
|
ValidationBehavior: z.string().nullable().describe(`
|
|
@@ -5448,7 +5468,7 @@ export const MJAIPromptRunSchema = z.object({
|
|
|
5448
5468
|
* * Description: Retry strategy used: Fixed, Linear, or Exponential`),
|
|
5449
5469
|
MaxRetriesConfigured: z.number().nullable().describe(`
|
|
5450
5470
|
* * Field Name: MaxRetriesConfigured
|
|
5451
|
-
* * Display Name: Max Retries
|
|
5471
|
+
* * Display Name: Max Retries
|
|
5452
5472
|
* * SQL Data Type: int
|
|
5453
5473
|
* * Description: Maximum number of retries configured on the prompt`),
|
|
5454
5474
|
FinalValidationError: z.string().nullable().describe(`
|
|
@@ -5483,7 +5503,7 @@ export const MJAIPromptRunSchema = z.object({
|
|
|
5483
5503
|
* * Description: Total time spent on retries in milliseconds (excluding first attempt)`),
|
|
5484
5504
|
ValidationAttempts: z.string().nullable().describe(`
|
|
5485
5505
|
* * Field Name: ValidationAttempts
|
|
5486
|
-
* * Display Name: Validation
|
|
5506
|
+
* * Display Name: Validation Attempt Logs
|
|
5487
5507
|
* * SQL Data Type: nvarchar(MAX)
|
|
5488
5508
|
* * Description: JSON array containing detailed information about each validation attempt`),
|
|
5489
5509
|
ValidationSummary: z.string().nullable().describe(`
|
|
@@ -5509,13 +5529,13 @@ export const MJAIPromptRunSchema = z.object({
|
|
|
5509
5529
|
* * Description: JSON array of duration in milliseconds for each failover attempt`),
|
|
5510
5530
|
OriginalModelID: z.string().nullable().describe(`
|
|
5511
5531
|
* * Field Name: OriginalModelID
|
|
5512
|
-
* * Display Name: Original Model
|
|
5532
|
+
* * Display Name: Original Model ID
|
|
5513
5533
|
* * SQL Data Type: uniqueidentifier
|
|
5514
5534
|
* * Related Entity/Foreign Key: MJ: AI Models (vwAIModels.ID)
|
|
5515
5535
|
* * Description: The AI Model ID that was originally attempted before any failovers`),
|
|
5516
5536
|
OriginalRequestStartTime: z.date().nullable().describe(`
|
|
5517
5537
|
* * Field Name: OriginalRequestStartTime
|
|
5518
|
-
* * Display Name: Original Request Start
|
|
5538
|
+
* * Display Name: Original Request Start
|
|
5519
5539
|
* * SQL Data Type: datetimeoffset
|
|
5520
5540
|
* * Description: Timestamp when the original request started, before any failovers`),
|
|
5521
5541
|
TotalFailoverDuration: z.number().nullable().describe(`
|
|
@@ -5531,7 +5551,7 @@ export const MJAIPromptRunSchema = z.object({
|
|
|
5531
5551
|
* * Description: If this run was initiated as a re-run of another prompt run, this field links back to the original run ID`),
|
|
5532
5552
|
ModelSelection: z.string().nullable().describe(`
|
|
5533
5553
|
* * Field Name: ModelSelection
|
|
5534
|
-
* * Display Name: Model Selection
|
|
5554
|
+
* * Display Name: Model Selection Details
|
|
5535
5555
|
* * SQL Data Type: nvarchar(MAX)
|
|
5536
5556
|
* * Description: JSON object containing detailed model selection information including all models considered, their scores, and the selection rationale`),
|
|
5537
5557
|
Status: z.union([z.literal('Cancelled'), z.literal('Completed'), z.literal('Failed'), z.literal('Pending'), z.literal('Running')]).describe(`
|
|
@@ -5586,7 +5606,7 @@ export const MJAIPromptRunSchema = z.object({
|
|
|
5586
5606
|
* * Description: Unique key used for caching this prompt result, typically a hash of the prompt and parameters`),
|
|
5587
5607
|
JudgeID: z.string().nullable().describe(`
|
|
5588
5608
|
* * Field Name: JudgeID
|
|
5589
|
-
* * Display Name: Judge
|
|
5609
|
+
* * Display Name: Judge Prompt
|
|
5590
5610
|
* * SQL Data Type: uniqueidentifier
|
|
5591
5611
|
* * Related Entity/Foreign Key: MJ: AI Prompts (vwAIPrompts.ID)
|
|
5592
5612
|
* * Description: ID of the AIPrompt used as a judge to evaluate and rank multiple parallel execution results`),
|
|
@@ -5640,7 +5660,7 @@ export const MJAIPromptRunSchema = z.object({
|
|
|
5640
5660
|
* * Description: Time in milliseconds for the model to generate the completion/response tokens. Provider-specific timing metric.`),
|
|
5641
5661
|
ModelSpecificResponseDetails: z.string().nullable().describe(`
|
|
5642
5662
|
* * Field Name: ModelSpecificResponseDetails
|
|
5643
|
-
* * Display Name:
|
|
5663
|
+
* * Display Name: Provider Response Details
|
|
5644
5664
|
* * SQL Data Type: nvarchar(MAX)
|
|
5645
5665
|
* * Description: JSON field containing provider-specific response metadata and details not captured in standard fields. Structure varies by AI provider.`),
|
|
5646
5666
|
EffortLevel: z.number().nullable().describe(`
|
|
@@ -5669,6 +5689,26 @@ export const MJAIPromptRunSchema = z.object({
|
|
|
5669
5689
|
* * Display Name: Assistant Prefill
|
|
5670
5690
|
* * SQL Data Type: nvarchar(MAX)
|
|
5671
5691
|
* * 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.`),
|
|
5692
|
+
TokensCacheRead: z.number().nullable().describe(`
|
|
5693
|
+
* * Field Name: TokensCacheRead
|
|
5694
|
+
* * Display Name: Tokens Cache Read
|
|
5695
|
+
* * SQL Data Type: int
|
|
5696
|
+
* * Description: Number of input tokens served from the AI provider's prompt cache (a cache READ / hit) for this run, as reported by the provider. Counts only; no cost is derived here. NULL if the provider did not report cache reads or caching did not engage. Distinct from CacheHit/CacheKey, which track MemberJunction's own result cache.`),
|
|
5697
|
+
TokensCacheWrite: z.number().nullable().describe(`
|
|
5698
|
+
* * Field Name: TokensCacheWrite
|
|
5699
|
+
* * Display Name: Tokens Cache Write
|
|
5700
|
+
* * SQL Data Type: int
|
|
5701
|
+
* * Description: Number of input tokens written to the AI provider's prompt cache (a cache WRITE / creation) for this run, as reported by the provider. Populated for providers that report cache writes (e.g. Anthropic cache_creation_input_tokens); NULL or 0 for providers that do not bill/report writes (OpenAI, Gemini, Groq, Cerebras). Counts only; no cost is derived here.`),
|
|
5702
|
+
TokensCacheReadRollup: z.number().nullable().describe(`
|
|
5703
|
+
* * Field Name: TokensCacheReadRollup
|
|
5704
|
+
* * Display Name: Tokens Cache Read (Rollup)
|
|
5705
|
+
* * SQL Data Type: int
|
|
5706
|
+
* * Description: Rollup of TokensCacheRead across this prompt run and all of its descendant prompt runs (e.g. the individual attempts behind a parallel / multi-attempt / failover consolidation). For a leaf run this equals TokensCacheRead. Use this (not TokensCacheRead) when aggregating cache reads up a prompt-run or agent-run hierarchy so fan-out provider calls are not under-counted.`),
|
|
5707
|
+
TokensCacheWriteRollup: z.number().nullable().describe(`
|
|
5708
|
+
* * Field Name: TokensCacheWriteRollup
|
|
5709
|
+
* * Display Name: Tokens Cache Write (Rollup)
|
|
5710
|
+
* * SQL Data Type: int
|
|
5711
|
+
* * Description: Rollup of TokensCacheWrite across this prompt run and all of its descendant prompt runs. For a leaf run this equals TokensCacheWrite. Mirrors TokensUsedRollup/TokensPromptRollup; populated for providers that report cache writes (e.g. Anthropic), otherwise 0 or NULL.`),
|
|
5672
5712
|
Prompt: z.string().describe(`
|
|
5673
5713
|
* * Field Name: Prompt
|
|
5674
5714
|
* * Display Name: Prompt
|
|
@@ -5703,7 +5743,7 @@ export const MJAIPromptRunSchema = z.object({
|
|
|
5703
5743
|
* * SQL Data Type: nvarchar(50)`),
|
|
5704
5744
|
RerunFromPromptRun: z.string().nullable().describe(`
|
|
5705
5745
|
* * Field Name: RerunFromPromptRun
|
|
5706
|
-
* * Display Name: Rerun From
|
|
5746
|
+
* * Display Name: Rerun From Run
|
|
5707
5747
|
* * SQL Data Type: nvarchar(255)`),
|
|
5708
5748
|
Judge: z.string().nullable().describe(`
|
|
5709
5749
|
* * Field Name: Judge
|
|
@@ -5723,7 +5763,7 @@ export const MJAIPromptRunSchema = z.object({
|
|
|
5723
5763
|
* * SQL Data Type: uniqueidentifier`),
|
|
5724
5764
|
RootRerunFromPromptRunID: z.string().nullable().describe(`
|
|
5725
5765
|
* * Field Name: RootRerunFromPromptRunID
|
|
5726
|
-
* * Display Name: Root Rerun
|
|
5766
|
+
* * Display Name: Root Rerun Source
|
|
5727
5767
|
* * SQL Data Type: uniqueidentifier`),
|
|
5728
5768
|
});
|
|
5729
5769
|
/**
|
|
@@ -7755,10 +7795,10 @@ export const MJArtifactUseSchema = z.object({
|
|
|
7755
7795
|
* * Display Name: Updated At
|
|
7756
7796
|
* * SQL Data Type: datetimeoffset
|
|
7757
7797
|
* * Default Value: getutcdate()`),
|
|
7758
|
-
ArtifactVersion: z.
|
|
7798
|
+
ArtifactVersion: z.string().nullable().describe(`
|
|
7759
7799
|
* * Field Name: ArtifactVersion
|
|
7760
7800
|
* * Display Name: Artifact Version
|
|
7761
|
-
* * SQL Data Type:
|
|
7801
|
+
* * SQL Data Type: nvarchar(255)`),
|
|
7762
7802
|
User: z.string().describe(`
|
|
7763
7803
|
* * Field Name: User
|
|
7764
7804
|
* * Display Name: User
|
|
@@ -7815,10 +7855,10 @@ export const MJArtifactVersionAttributeSchema = z.object({
|
|
|
7815
7855
|
* * Display Name: Updated At
|
|
7816
7856
|
* * SQL Data Type: datetimeoffset
|
|
7817
7857
|
* * Default Value: getutcdate()`),
|
|
7818
|
-
ArtifactVersion: z.
|
|
7858
|
+
ArtifactVersion: z.string().nullable().describe(`
|
|
7819
7859
|
* * Field Name: ArtifactVersion
|
|
7820
7860
|
* * Display Name: Artifact Version
|
|
7821
|
-
* * SQL Data Type:
|
|
7861
|
+
* * SQL Data Type: nvarchar(255)`),
|
|
7822
7862
|
});
|
|
7823
7863
|
/**
|
|
7824
7864
|
* zod schema definition for the entity MJ: Artifact Versions
|
|
@@ -8277,10 +8317,10 @@ export const MJCollectionArtifactSchema = z.object({
|
|
|
8277
8317
|
* * Field Name: Collection
|
|
8278
8318
|
* * Display Name: Collection
|
|
8279
8319
|
* * SQL Data Type: nvarchar(255)`),
|
|
8280
|
-
ArtifactVersion: z.
|
|
8320
|
+
ArtifactVersion: z.string().nullable().describe(`
|
|
8281
8321
|
* * Field Name: ArtifactVersion
|
|
8282
8322
|
* * Display Name: Artifact Version
|
|
8283
|
-
* * SQL Data Type:
|
|
8323
|
+
* * SQL Data Type: nvarchar(255)`),
|
|
8284
8324
|
});
|
|
8285
8325
|
/**
|
|
8286
8326
|
* zod schema definition for the entity MJ: Collection Permissions
|
|
@@ -11114,10 +11154,10 @@ export const MJConversationDetailArtifactSchema = z.object({
|
|
|
11114
11154
|
* * Field Name: ConversationDetail
|
|
11115
11155
|
* * Display Name: Conversation Detail Summary
|
|
11116
11156
|
* * SQL Data Type: nvarchar(MAX)`),
|
|
11117
|
-
ArtifactVersion: z.
|
|
11157
|
+
ArtifactVersion: z.string().nullable().describe(`
|
|
11118
11158
|
* * Field Name: ArtifactVersion
|
|
11119
11159
|
* * Display Name: Artifact Version Summary
|
|
11120
|
-
* * SQL Data Type:
|
|
11160
|
+
* * SQL Data Type: nvarchar(255)`),
|
|
11121
11161
|
});
|
|
11122
11162
|
/**
|
|
11123
11163
|
* zod schema definition for the entity MJ: Conversation Detail Attachments
|
|
@@ -11224,10 +11264,10 @@ export const MJConversationDetailAttachmentSchema = z.object({
|
|
|
11224
11264
|
* * Field Name: File
|
|
11225
11265
|
* * Display Name: File Record
|
|
11226
11266
|
* * SQL Data Type: nvarchar(500)`),
|
|
11227
|
-
ArtifactVersion: z.
|
|
11267
|
+
ArtifactVersion: z.string().nullable().describe(`
|
|
11228
11268
|
* * Field Name: ArtifactVersion
|
|
11229
11269
|
* * Display Name: Artifact Version Record
|
|
11230
|
-
* * SQL Data Type:
|
|
11270
|
+
* * SQL Data Type: nvarchar(255)`),
|
|
11231
11271
|
});
|
|
11232
11272
|
/**
|
|
11233
11273
|
* zod schema definition for the entity MJ: Conversation Detail Ratings
|
|
@@ -11515,12 +11555,13 @@ export const MJConversationSchema = z.object({
|
|
|
11515
11555
|
* * Field Name: LinkedEntityID
|
|
11516
11556
|
* * Display Name: Linked Entity
|
|
11517
11557
|
* * SQL Data Type: uniqueidentifier
|
|
11518
|
-
* * Related Entity/Foreign Key: MJ: Entities (vwEntities.ID)
|
|
11558
|
+
* * Related Entity/Foreign Key: MJ: Entities (vwEntities.ID)
|
|
11559
|
+
* * Description: Generic 'what is this conversation about?' pointer. Names the Entity whose record this conversation references (e.g. MJ: Components when the conversation was started in the Form Builder cockpit about a specific form). Paired with LinkedRecordID via the CK_Conversation_LinkBinding cross-column CHECK — both NULL or both populated. Surfaces use this to filter their conversation list to entries about the currently-loaded record (e.g. 'show prior conversations about THIS form'). Reusable beyond Form Builder by any future dashboard / record-context surface that wants the same UX without further schema work.`),
|
|
11519
11560
|
LinkedRecordID: z.string().nullable().describe(`
|
|
11520
11561
|
* * Field Name: LinkedRecordID
|
|
11521
11562
|
* * Display Name: Linked Record ID
|
|
11522
11563
|
* * SQL Data Type: nvarchar(500)
|
|
11523
|
-
* * Description:
|
|
11564
|
+
* * Description: The primary key of the record this conversation is about, serialized as a string so any entity type can be referenced regardless of its PK shape (UUID, int, composite). Used together with LinkedEntityID — see CK_Conversation_LinkBinding. Wide enough (NVARCHAR(500) in the baseline schema) to handle chunky composite keys. Surfaces query by (LinkedEntityID, LinkedRecordID) — or by LinkedRecordID IN (...) when a lineage of records shares conversation context (e.g. multiple Component versions of the same form lineage).`),
|
|
11524
11565
|
DataContextID: z.string().nullable().describe(`
|
|
11525
11566
|
* * Field Name: DataContextID
|
|
11526
11567
|
* * Display Name: Data Context
|
|
@@ -11569,13 +11610,41 @@ export const MJConversationSchema = z.object({
|
|
|
11569
11610
|
* * SQL Data Type: uniqueidentifier
|
|
11570
11611
|
* * Related Entity/Foreign Key: MJ: Test Runs (vwTestRuns.ID)
|
|
11571
11612
|
* * Description: Optional Foreign Key - Links this conversation to a test run if this conversation was generated as part of a test. Enables tracking test conversations separately from production conversations.`),
|
|
11613
|
+
ApplicationScope: z.union([z.literal('Application'), z.literal('Both'), z.literal('Global')]).describe(`
|
|
11614
|
+
* * Field Name: ApplicationScope
|
|
11615
|
+
* * Display Name: Application Scope
|
|
11616
|
+
* * SQL Data Type: nvarchar(20)
|
|
11617
|
+
* * Default Value: Global
|
|
11618
|
+
* * Value List Type: List
|
|
11619
|
+
* * Possible Values
|
|
11620
|
+
* * Application
|
|
11621
|
+
* * Both
|
|
11622
|
+
* * Global
|
|
11623
|
+
* * Description: Controls where this conversation surfaces in the UI. Global = appears in the main Chat app (no application binding). Application = scoped to a specific Application's embedded chat surface (e.g. the Form Builder cockpit); hidden from the main chat list by default. Both = explicitly promoted to appear in BOTH the main chat list and the bound Application's embedded surface. Defaults to Global so pre-existing conversations stay visible in main chat. Paired with ApplicationID via a cross-column CHECK constraint: Global => ApplicationID IS NULL; Application or Both => ApplicationID IS NOT NULL.`),
|
|
11624
|
+
ApplicationID: z.string().nullable().describe(`
|
|
11625
|
+
* * Field Name: ApplicationID
|
|
11626
|
+
* * Display Name: Application
|
|
11627
|
+
* * SQL Data Type: uniqueidentifier
|
|
11628
|
+
* * Related Entity/Foreign Key: MJ: Applications (vwApplications.ID)
|
|
11629
|
+
* * Description: Optional Application this conversation is bound to. Required when ApplicationScope is 'Application' or 'Both'; must be NULL when ApplicationScope is 'Global'. Enforced by the CK_Conversation_ScopeAppBinding cross-column CHECK. Used by embedded chat surfaces (e.g. the Form Builder cockpit) to filter their conversation list to just their own application's conversations.`),
|
|
11630
|
+
DefaultAgentID: z.string().nullable().describe(`
|
|
11631
|
+
* * Field Name: DefaultAgentID
|
|
11632
|
+
* * Display Name: Default Agent
|
|
11633
|
+
* * SQL Data Type: uniqueidentifier
|
|
11634
|
+
* * Related Entity/Foreign Key: MJ: AI Agents (vwAIAgents.ID)
|
|
11635
|
+
* * Description: Optional per-conversation default AI agent. When set, the message router targets this agent for non-mention, non-continuity messages instead of falling through to the embedder-supplied default (e.g. Form Builder) or to Sage. Lets a user pin a conversation to a specific specialist agent (e.g. Research Agent) so Sage is never invoked for that thread. Routing precedence: @mention > continuity (last responder) > Conversation.DefaultAgentID > embedder's defaultAgentId input > Sage fallback.`),
|
|
11636
|
+
AdditionalData: z.string().nullable().describe(`
|
|
11637
|
+
* * Field Name: AdditionalData
|
|
11638
|
+
* * Display Name: Additional Data
|
|
11639
|
+
* * SQL Data Type: nvarchar(MAX)
|
|
11640
|
+
* * Description: Free-form JSON extensibility column. Apps that want to attach conversation-scoped metadata (UI state, draft notes, custom analytics tags, etc.) can stuff it here without a schema change. **Namespace your keys** to avoid collisions across apps — store e.g. {"form-builder.lastPreviewRecordId":"...","my-app.fooFlag":true} rather than top-level lastPreviewRecordId. Core MJ code paths do NOT read this column; it's purely for downstream apps. NVARCHAR(MAX) so callers can store arbitrarily large blobs, but treat that as a smell — heavy data belongs in a real entity, not a JSON dump.`),
|
|
11572
11641
|
User: z.string().describe(`
|
|
11573
11642
|
* * Field Name: User
|
|
11574
11643
|
* * Display Name: User Name
|
|
11575
11644
|
* * SQL Data Type: nvarchar(100)`),
|
|
11576
11645
|
LinkedEntity: z.string().nullable().describe(`
|
|
11577
11646
|
* * Field Name: LinkedEntity
|
|
11578
|
-
* * Display Name: Linked Entity
|
|
11647
|
+
* * Display Name: Linked Entity Name
|
|
11579
11648
|
* * SQL Data Type: nvarchar(255)`),
|
|
11580
11649
|
DataContext: z.string().nullable().describe(`
|
|
11581
11650
|
* * Field Name: DataContext
|
|
@@ -11593,6 +11662,14 @@ export const MJConversationSchema = z.object({
|
|
|
11593
11662
|
* * Field Name: TestRun
|
|
11594
11663
|
* * Display Name: Test Run Name
|
|
11595
11664
|
* * SQL Data Type: nvarchar(255)`),
|
|
11665
|
+
Application: z.string().nullable().describe(`
|
|
11666
|
+
* * Field Name: Application
|
|
11667
|
+
* * Display Name: Application Name
|
|
11668
|
+
* * SQL Data Type: nvarchar(100)`),
|
|
11669
|
+
DefaultAgent: z.string().nullable().describe(`
|
|
11670
|
+
* * Field Name: DefaultAgent
|
|
11671
|
+
* * Display Name: Default Agent Name
|
|
11672
|
+
* * SQL Data Type: nvarchar(255)`),
|
|
11596
11673
|
});
|
|
11597
11674
|
/**
|
|
11598
11675
|
* zod schema definition for the entity MJ: Countries
|
|
@@ -14596,7 +14673,7 @@ export const MJEntityFieldSchema = z.object({
|
|
|
14596
14673
|
* * ListOrUserEntry
|
|
14597
14674
|
* * None
|
|
14598
14675
|
* * Description: Possible Values of None, List, ListOrUserEntry - the last option meaning that the list of possible values are options, but a user can enter anything else desired too.`),
|
|
14599
|
-
ExtendedType: z.union([z.literal('Code'), z.literal('Email'), z.literal('FaceTime'), z.literal('Geo'), z.literal('GeoAddress'), z.literal('GeoCity'), z.literal('GeoCountry'), z.literal('GeoLatitude'), z.literal('GeoLongitude'), z.literal('GeoPostalCode'), z.literal('GeoStateProvince'), z.literal('MSTeams'), z.literal('Other'), z.literal('SIP'), z.literal('SMS'), z.literal('Skype'), z.literal('Tel'), z.literal('URL'), z.literal('WhatsApp'), z.literal('ZoomMtg')]).nullable().describe(`
|
|
14676
|
+
ExtendedType: z.union([z.literal('Code'), z.literal('Email'), z.literal('FaceTime'), z.literal('Geo'), z.literal('GeoAddress'), z.literal('GeoCity'), z.literal('GeoCountry'), z.literal('GeoLatitude'), z.literal('GeoLongitude'), z.literal('GeoPostalCode'), z.literal('GeoStateProvince'), z.literal('HTML'), z.literal('Icon'), z.literal('MSTeams'), z.literal('Markdown'), z.literal('Other'), z.literal('SIP'), z.literal('SMS'), z.literal('Skype'), z.literal('Tel'), z.literal('URL'), z.literal('WhatsApp'), z.literal('ZoomMtg')]).nullable().describe(`
|
|
14600
14677
|
* * Field Name: ExtendedType
|
|
14601
14678
|
* * Display Name: Extended Type
|
|
14602
14679
|
* * SQL Data Type: nvarchar(50)
|
|
@@ -14613,7 +14690,10 @@ export const MJEntityFieldSchema = z.object({
|
|
|
14613
14690
|
* * GeoLongitude
|
|
14614
14691
|
* * GeoPostalCode
|
|
14615
14692
|
* * GeoStateProvince
|
|
14693
|
+
* * HTML
|
|
14694
|
+
* * Icon
|
|
14616
14695
|
* * MSTeams
|
|
14696
|
+
* * Markdown
|
|
14617
14697
|
* * Other
|
|
14618
14698
|
* * SIP
|
|
14619
14699
|
* * SMS
|
|
@@ -14622,7 +14702,7 @@ export const MJEntityFieldSchema = z.object({
|
|
|
14622
14702
|
* * URL
|
|
14623
14703
|
* * WhatsApp
|
|
14624
14704
|
* * ZoomMtg
|
|
14625
|
-
* * Description: Defines extended behaviors for a field such as
|
|
14705
|
+
* * Description: Defines extended behaviors for a field such as Email, Web URLs, Code, Markdown, HTML, and Icon. When set to 'Icon', the field's values are treated as icon CSS classes (e.g. Font Awesome) for per-row display in the UI.`),
|
|
14626
14706
|
CodeType: z.union([z.literal('CSS'), z.literal('HTML'), z.literal('JavaScript'), z.literal('Other'), z.literal('SQL'), z.literal('TypeScript')]).nullable().describe(`
|
|
14627
14707
|
* * Field Name: CodeType
|
|
14628
14708
|
* * Display Name: Code Type
|
|
@@ -14961,6 +15041,109 @@ export const MJEntityFieldSchema = z.object({
|
|
|
14961
15041
|
* * Display Name: Related Entity Class Name
|
|
14962
15042
|
* * SQL Data Type: nvarchar(MAX)`),
|
|
14963
15043
|
});
|
|
15044
|
+
/**
|
|
15045
|
+
* zod schema definition for the entity MJ: Entity Form Overrides
|
|
15046
|
+
*/
|
|
15047
|
+
export const MJEntityFormOverrideSchema = z.object({
|
|
15048
|
+
ID: z.string().describe(`
|
|
15049
|
+
* * Field Name: ID
|
|
15050
|
+
* * Display Name: ID
|
|
15051
|
+
* * SQL Data Type: uniqueidentifier
|
|
15052
|
+
* * Default Value: newsequentialid()`),
|
|
15053
|
+
EntityID: z.string().describe(`
|
|
15054
|
+
* * Field Name: EntityID
|
|
15055
|
+
* * Display Name: Entity
|
|
15056
|
+
* * SQL Data Type: uniqueidentifier
|
|
15057
|
+
* * Related Entity/Foreign Key: MJ: Entities (vwEntities.ID)
|
|
15058
|
+
* * Description: Foreign key to Entity — which entity this override is for.`),
|
|
15059
|
+
ComponentID: z.string().describe(`
|
|
15060
|
+
* * Field Name: ComponentID
|
|
15061
|
+
* * Display Name: Component
|
|
15062
|
+
* * SQL Data Type: uniqueidentifier
|
|
15063
|
+
* * Related Entity/Foreign Key: MJ: Components (vwComponents.ID)
|
|
15064
|
+
* * Description: Foreign key to Component — the component that renders the form. Must declare componentRole='form' and implement the FormHostProps contract.`),
|
|
15065
|
+
Name: z.string().describe(`
|
|
15066
|
+
* * Field Name: Name
|
|
15067
|
+
* * Display Name: Name
|
|
15068
|
+
* * SQL Data Type: nvarchar(255)
|
|
15069
|
+
* * Description: Human-readable label for this override (e.g., "CSR Customer Form", "Compact Mobile Variant").`),
|
|
15070
|
+
Description: z.string().nullable().describe(`
|
|
15071
|
+
* * Field Name: Description
|
|
15072
|
+
* * Display Name: Description
|
|
15073
|
+
* * SQL Data Type: nvarchar(MAX)
|
|
15074
|
+
* * Description: Optional longer description of what this override is for and when it applies.`),
|
|
15075
|
+
Scope: z.union([z.literal('Global'), z.literal('Role'), z.literal('User')]).describe(`
|
|
15076
|
+
* * Field Name: Scope
|
|
15077
|
+
* * Display Name: Scope
|
|
15078
|
+
* * SQL Data Type: nvarchar(20)
|
|
15079
|
+
* * Default Value: Global
|
|
15080
|
+
* * Value List Type: List
|
|
15081
|
+
* * Possible Values
|
|
15082
|
+
* * Global
|
|
15083
|
+
* * Role
|
|
15084
|
+
* * User
|
|
15085
|
+
* * Description: Resolution tier: User (requires UserID), Role (requires RoleID), or Global. The resolver evaluates in that order — a User row beats a Role row beats a Global row.`),
|
|
15086
|
+
UserID: z.string().nullable().describe(`
|
|
15087
|
+
* * Field Name: UserID
|
|
15088
|
+
* * Display Name: User
|
|
15089
|
+
* * SQL Data Type: uniqueidentifier
|
|
15090
|
+
* * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)
|
|
15091
|
+
* * Description: Required when Scope='User'. The single user this override applies to.`),
|
|
15092
|
+
RoleID: z.string().nullable().describe(`
|
|
15093
|
+
* * Field Name: RoleID
|
|
15094
|
+
* * Display Name: Role
|
|
15095
|
+
* * SQL Data Type: uniqueidentifier
|
|
15096
|
+
* * Related Entity/Foreign Key: MJ: Roles (vwRoles.ID)
|
|
15097
|
+
* * Description: Required when Scope='Role'. The role whose members see this override.`),
|
|
15098
|
+
Priority: z.number().describe(`
|
|
15099
|
+
* * Field Name: Priority
|
|
15100
|
+
* * Display Name: Priority
|
|
15101
|
+
* * SQL Data Type: int
|
|
15102
|
+
* * Default Value: 0
|
|
15103
|
+
* * Description: Higher value wins within a scope tier. Ties broken by __mj_CreatedAt DESC. No IsDefault — Priority is the only mechanism.`),
|
|
15104
|
+
Status: z.union([z.literal('Active'), z.literal('Inactive'), z.literal('Pending')]).describe(`
|
|
15105
|
+
* * Field Name: Status
|
|
15106
|
+
* * Display Name: Status
|
|
15107
|
+
* * SQL Data Type: nvarchar(20)
|
|
15108
|
+
* * Default Value: Active
|
|
15109
|
+
* * Value List Type: List
|
|
15110
|
+
* * Possible Values
|
|
15111
|
+
* * Active
|
|
15112
|
+
* * Inactive
|
|
15113
|
+
* * Pending
|
|
15114
|
+
* * Description: Active = eligible for resolution. Inactive = ignored. Pending = AI-authored, awaiting human activation (resolver treats as Inactive).`),
|
|
15115
|
+
Notes: z.string().nullable().describe(`
|
|
15116
|
+
* * Field Name: Notes
|
|
15117
|
+
* * Display Name: Notes
|
|
15118
|
+
* * SQL Data Type: nvarchar(MAX)
|
|
15119
|
+
* * Description: Optional free-form commentary about this override — e.g. who authored it, why it exists, what should change before it goes Global, links to related discussions. Does not affect resolution.`),
|
|
15120
|
+
__mj_CreatedAt: z.date().describe(`
|
|
15121
|
+
* * Field Name: __mj_CreatedAt
|
|
15122
|
+
* * Display Name: Created At
|
|
15123
|
+
* * SQL Data Type: datetimeoffset
|
|
15124
|
+
* * Default Value: getutcdate()`),
|
|
15125
|
+
__mj_UpdatedAt: z.date().describe(`
|
|
15126
|
+
* * Field Name: __mj_UpdatedAt
|
|
15127
|
+
* * Display Name: Updated At
|
|
15128
|
+
* * SQL Data Type: datetimeoffset
|
|
15129
|
+
* * Default Value: getutcdate()`),
|
|
15130
|
+
Entity: z.string().describe(`
|
|
15131
|
+
* * Field Name: Entity
|
|
15132
|
+
* * Display Name: Entity Name
|
|
15133
|
+
* * SQL Data Type: nvarchar(255)`),
|
|
15134
|
+
Component: z.string().describe(`
|
|
15135
|
+
* * Field Name: Component
|
|
15136
|
+
* * Display Name: Component Name
|
|
15137
|
+
* * SQL Data Type: nvarchar(500)`),
|
|
15138
|
+
User: z.string().nullable().describe(`
|
|
15139
|
+
* * Field Name: User
|
|
15140
|
+
* * Display Name: User Name
|
|
15141
|
+
* * SQL Data Type: nvarchar(100)`),
|
|
15142
|
+
Role: z.string().nullable().describe(`
|
|
15143
|
+
* * Field Name: Role
|
|
15144
|
+
* * Display Name: Role Name
|
|
15145
|
+
* * SQL Data Type: nvarchar(50)`),
|
|
15146
|
+
});
|
|
14964
15147
|
/**
|
|
14965
15148
|
* zod schema definition for the entity MJ: Entity Organic Key Related Entities
|
|
14966
15149
|
*/
|
|
@@ -16335,7 +16518,7 @@ export const MJIntegrationObjectFieldSchema = z.object({
|
|
|
16335
16518
|
* * Description: Primary key`),
|
|
16336
16519
|
IntegrationObjectID: z.string().describe(`
|
|
16337
16520
|
* * Field Name: IntegrationObjectID
|
|
16338
|
-
* * Display Name: Integration Object
|
|
16521
|
+
* * Display Name: Integration Object ID
|
|
16339
16522
|
* * SQL Data Type: uniqueidentifier
|
|
16340
16523
|
* * Related Entity/Foreign Key: MJ: Integration Objects (vwIntegrationObjects.ID)
|
|
16341
16524
|
* * Description: Foreign key to the IntegrationObject this field belongs to`),
|
|
@@ -16398,7 +16581,7 @@ export const MJIntegrationObjectFieldSchema = z.object({
|
|
|
16398
16581
|
* * Description: Whether this field is part of the object primary key`),
|
|
16399
16582
|
IsUniqueKey: z.boolean().describe(`
|
|
16400
16583
|
* * Field Name: IsUniqueKey
|
|
16401
|
-
* * Display Name: Is Unique
|
|
16584
|
+
* * Display Name: Is Unique
|
|
16402
16585
|
* * SQL Data Type: bit
|
|
16403
16586
|
* * Default Value: 0
|
|
16404
16587
|
* * Description: Whether values must be unique across all records`),
|
|
@@ -16463,13 +16646,24 @@ export const MJIntegrationObjectFieldSchema = z.object({
|
|
|
16463
16646
|
* * SQL Data Type: bit
|
|
16464
16647
|
* * Default Value: 0
|
|
16465
16648
|
* * Description: When true, this field was dynamically discovered by IntrospectSchema and is not defined in static connector metadata.`),
|
|
16649
|
+
MetadataSource: z.union([z.literal('Custom'), z.literal('Declared'), z.literal('Discovered')]).describe(`
|
|
16650
|
+
* * Field Name: MetadataSource
|
|
16651
|
+
* * Display Name: Metadata Source
|
|
16652
|
+
* * SQL Data Type: nvarchar(20)
|
|
16653
|
+
* * Default Value: Declared
|
|
16654
|
+
* * Value List Type: List
|
|
16655
|
+
* * Possible Values
|
|
16656
|
+
* * Custom
|
|
16657
|
+
* * Declared
|
|
16658
|
+
* * Discovered
|
|
16659
|
+
* * Description: Provenance of this IntegrationObjectField row: Declared (from static research/docs), Discovered (from runtime API introspection), Custom (customer-defined custom field, e.g., HubSpot custom property on standard object). Drives merge precedence — discovered/runtime wins for type/constraints; declared wins for description/label/sequence/category.`),
|
|
16466
16660
|
IntegrationObject: z.string().describe(`
|
|
16467
16661
|
* * Field Name: IntegrationObject
|
|
16468
|
-
* * Display Name: Integration Object
|
|
16662
|
+
* * Display Name: Integration Object
|
|
16469
16663
|
* * SQL Data Type: nvarchar(255)`),
|
|
16470
16664
|
RelatedIntegrationObject: z.string().nullable().describe(`
|
|
16471
16665
|
* * Field Name: RelatedIntegrationObject
|
|
16472
|
-
* * Display Name: Related Object Name
|
|
16666
|
+
* * Display Name: Related Integration Object Name
|
|
16473
16667
|
* * SQL Data Type: nvarchar(255)`),
|
|
16474
16668
|
});
|
|
16475
16669
|
/**
|
|
@@ -16484,7 +16678,7 @@ export const MJIntegrationObjectSchema = z.object({
|
|
|
16484
16678
|
* * Description: Primary key`),
|
|
16485
16679
|
IntegrationID: z.string().describe(`
|
|
16486
16680
|
* * Field Name: IntegrationID
|
|
16487
|
-
* * Display Name: Integration
|
|
16681
|
+
* * Display Name: Integration
|
|
16488
16682
|
* * SQL Data Type: uniqueidentifier
|
|
16489
16683
|
* * Related Entity/Foreign Key: MJ: Integrations (vwIntegrations.ID)
|
|
16490
16684
|
* * Description: Foreign key to the Integration that owns this object`),
|
|
@@ -16614,9 +16808,113 @@ export const MJIntegrationObjectSchema = z.object({
|
|
|
16614
16808
|
* * SQL Data Type: bit
|
|
16615
16809
|
* * Default Value: 0
|
|
16616
16810
|
* * Description: When true, this object was dynamically discovered by IntrospectSchema and is not defined in static connector metadata.`),
|
|
16811
|
+
CreateAPIPath: z.string().nullable().describe(`
|
|
16812
|
+
* * Field Name: CreateAPIPath
|
|
16813
|
+
* * Display Name: Create API Path
|
|
16814
|
+
* * SQL Data Type: nvarchar(MAX)
|
|
16815
|
+
* * Description: HTTP path template for create operations. Generic CRUD in BaseRESTIntegrationConnector substitutes parent IDs into {var} placeholders. NULL means create not supported via metadata-driven path.`),
|
|
16816
|
+
CreateMethod: z.string().nullable().describe(`
|
|
16817
|
+
* * Field Name: CreateMethod
|
|
16818
|
+
* * Display Name: Create Method
|
|
16819
|
+
* * SQL Data Type: nvarchar(20)
|
|
16820
|
+
* * Description: HTTP method for create (typically POST). NULL means create not supported via metadata-driven path.`),
|
|
16821
|
+
CreateBodyShape: z.union([z.literal('flat'), z.literal('literal'), z.literal('wrapped')]).nullable().describe(`
|
|
16822
|
+
* * Field Name: CreateBodyShape
|
|
16823
|
+
* * Display Name: Create Body Shape
|
|
16824
|
+
* * SQL Data Type: nvarchar(50)
|
|
16825
|
+
* * Value List Type: List
|
|
16826
|
+
* * Possible Values
|
|
16827
|
+
* * flat
|
|
16828
|
+
* * literal
|
|
16829
|
+
* * wrapped
|
|
16830
|
+
* * Description: Request body shape for create: flat (top-level fields), wrapped (under CreateBodyKey), or literal (connector overrides CreateRecord and supplies own body).`),
|
|
16831
|
+
CreateBodyKey: z.string().nullable().describe(`
|
|
16832
|
+
* * Field Name: CreateBodyKey
|
|
16833
|
+
* * Display Name: Create Body Key
|
|
16834
|
+
* * SQL Data Type: nvarchar(100)
|
|
16835
|
+
* * Description: Wrapper key for create body when CreateBodyShape=wrapped. Example: 'member' for YourMembership which wraps body as {member:{...}}.`),
|
|
16836
|
+
CreateIDLocation: z.union([z.literal('body'), z.literal('header'), z.literal('n/a'), z.literal('path')]).nullable().describe(`
|
|
16837
|
+
* * Field Name: CreateIDLocation
|
|
16838
|
+
* * Display Name: Create ID Location
|
|
16839
|
+
* * SQL Data Type: nvarchar(20)
|
|
16840
|
+
* * Value List Type: List
|
|
16841
|
+
* * Possible Values
|
|
16842
|
+
* * body
|
|
16843
|
+
* * header
|
|
16844
|
+
* * n/a
|
|
16845
|
+
* * path
|
|
16846
|
+
* * Description: Where the created record ID is found in the create response: path (URL of returned Location header), body (parsed from JSON response), header (specific named header).`),
|
|
16847
|
+
UpdateAPIPath: z.string().nullable().describe(`
|
|
16848
|
+
* * Field Name: UpdateAPIPath
|
|
16849
|
+
* * Display Name: Update API Path
|
|
16850
|
+
* * SQL Data Type: nvarchar(MAX)
|
|
16851
|
+
* * Description: HTTP path template for update operations. Typically contains {ID} placeholder substituted with the record ExternalID at runtime.`),
|
|
16852
|
+
UpdateMethod: z.string().nullable().describe(`
|
|
16853
|
+
* * Field Name: UpdateMethod
|
|
16854
|
+
* * Display Name: Update Method
|
|
16855
|
+
* * SQL Data Type: nvarchar(20)
|
|
16856
|
+
* * Description: HTTP method for update (typically PATCH or PUT).`),
|
|
16857
|
+
UpdateBodyShape: z.union([z.literal('flat'), z.literal('literal'), z.literal('wrapped')]).nullable().describe(`
|
|
16858
|
+
* * Field Name: UpdateBodyShape
|
|
16859
|
+
* * Display Name: Update Body Shape
|
|
16860
|
+
* * SQL Data Type: nvarchar(50)
|
|
16861
|
+
* * Value List Type: List
|
|
16862
|
+
* * Possible Values
|
|
16863
|
+
* * flat
|
|
16864
|
+
* * literal
|
|
16865
|
+
* * wrapped
|
|
16866
|
+
* * Description: Request body shape for update: flat | wrapped | literal. See CreateBodyShape.`),
|
|
16867
|
+
UpdateBodyKey: z.string().nullable().describe(`
|
|
16868
|
+
* * Field Name: UpdateBodyKey
|
|
16869
|
+
* * Display Name: Update Body Key
|
|
16870
|
+
* * SQL Data Type: nvarchar(100)
|
|
16871
|
+
* * Description: Wrapper key for update body when UpdateBodyShape=wrapped.`),
|
|
16872
|
+
UpdateIDLocation: z.union([z.literal('body'), z.literal('header'), z.literal('n/a'), z.literal('path')]).nullable().describe(`
|
|
16873
|
+
* * Field Name: UpdateIDLocation
|
|
16874
|
+
* * Display Name: Update ID Location
|
|
16875
|
+
* * SQL Data Type: nvarchar(20)
|
|
16876
|
+
* * Value List Type: List
|
|
16877
|
+
* * Possible Values
|
|
16878
|
+
* * body
|
|
16879
|
+
* * header
|
|
16880
|
+
* * n/a
|
|
16881
|
+
* * path
|
|
16882
|
+
* * Description: For update: where the target record ID is located in the request — typically 'path' (substituted into UpdateAPIPath URL template).`),
|
|
16883
|
+
DeleteAPIPath: z.string().nullable().describe(`
|
|
16884
|
+
* * Field Name: DeleteAPIPath
|
|
16885
|
+
* * Display Name: Delete API Path
|
|
16886
|
+
* * SQL Data Type: nvarchar(MAX)
|
|
16887
|
+
* * Description: HTTP path template for delete operations. Typically contains {ID} placeholder. NULL means delete not supported via metadata-driven path. (Existing DeleteMethod column carries the verb.)`),
|
|
16888
|
+
DeleteIDLocation: z.union([z.literal('body'), z.literal('header'), z.literal('n/a'), z.literal('path')]).nullable().describe(`
|
|
16889
|
+
* * Field Name: DeleteIDLocation
|
|
16890
|
+
* * Display Name: Delete ID Location
|
|
16891
|
+
* * SQL Data Type: nvarchar(20)
|
|
16892
|
+
* * Value List Type: List
|
|
16893
|
+
* * Possible Values
|
|
16894
|
+
* * body
|
|
16895
|
+
* * header
|
|
16896
|
+
* * n/a
|
|
16897
|
+
* * path
|
|
16898
|
+
* * Description: For delete: where the target record ID is located — typically 'path'.`),
|
|
16899
|
+
IncrementalWatermarkField: z.string().nullable().describe(`
|
|
16900
|
+
* * Field Name: IncrementalWatermarkField
|
|
16901
|
+
* * Display Name: Incremental Watermark Field
|
|
16902
|
+
* * SQL Data Type: nvarchar(255)
|
|
16903
|
+
* * Description: Vendor field name marking "last changed" — drives incremental sync filter when SupportsIncrementalSync=1. The exact filter syntax (e.g., $filter=Modified gt {value} or modified_since={value}) lives in Configuration.incrementalFilterFormat. Provable-only: leave NULL if docs do not name a watermark field.`),
|
|
16904
|
+
MetadataSource: z.union([z.literal('Custom'), z.literal('Declared'), z.literal('Discovered')]).describe(`
|
|
16905
|
+
* * Field Name: MetadataSource
|
|
16906
|
+
* * Display Name: Metadata Source
|
|
16907
|
+
* * SQL Data Type: nvarchar(20)
|
|
16908
|
+
* * Default Value: Declared
|
|
16909
|
+
* * Value List Type: List
|
|
16910
|
+
* * Possible Values
|
|
16911
|
+
* * Custom
|
|
16912
|
+
* * Declared
|
|
16913
|
+
* * Discovered
|
|
16914
|
+
* * Description: Provenance of this IntegrationObject row: Declared (from static research/docs), Discovered (from runtime API introspection like Salesforce /describe), Custom (genuinely customer-created, e.g., HubSpot custom objects). Drives merge precedence in IntegrationSchemaSync.`),
|
|
16617
16915
|
Integration: z.string().describe(`
|
|
16618
16916
|
* * Field Name: Integration
|
|
16619
|
-
* * Display Name: Integration
|
|
16917
|
+
* * Display Name: Integration Name
|
|
16620
16918
|
* * SQL Data Type: nvarchar(100)`),
|
|
16621
16919
|
});
|
|
16622
16920
|
/**
|
|
@@ -21449,7 +21747,7 @@ export const MJScheduledJobSchema = z.object({
|
|
|
21449
21747
|
* * Description: Whether to send email notifications. Requires NotifyOnSuccess or NotifyOnFailure to also be enabled.`),
|
|
21450
21748
|
NotifyViaInApp: z.boolean().describe(`
|
|
21451
21749
|
* * Field Name: NotifyViaInApp
|
|
21452
|
-
* * Display Name: Notify Via In
|
|
21750
|
+
* * Display Name: Notify Via In-App
|
|
21453
21751
|
* * SQL Data Type: bit
|
|
21454
21752
|
* * Default Value: 1
|
|
21455
21753
|
* * Description: Whether to send in-app notifications. Requires NotifyOnSuccess or NotifyOnFailure to also be enabled. Defaults to true.`),
|
|
@@ -21494,6 +21792,12 @@ export const MJScheduledJobSchema = z.object({
|
|
|
21494
21792
|
* * Display Name: Updated At
|
|
21495
21793
|
* * SQL Data Type: datetimeoffset
|
|
21496
21794
|
* * Default Value: getutcdate()`),
|
|
21795
|
+
RunImmediatelyIfNeverRun: z.boolean().describe(`
|
|
21796
|
+
* * Field Name: RunImmediatelyIfNeverRun
|
|
21797
|
+
* * Display Name: Run Immediately If Never Run
|
|
21798
|
+
* * SQL Data Type: bit
|
|
21799
|
+
* * Default Value: 0
|
|
21800
|
+
* * Description: When true AND LastRunAt IS NULL, the scheduler sets NextRunAt to now() instead of the next cron tick on initialization, so the job runs on the next polling cycle. Useful for newly-seeded jobs that should not wait up to a full cron interval before their first execution.`),
|
|
21497
21801
|
JobType: z.string().describe(`
|
|
21498
21802
|
* * Field Name: JobType
|
|
21499
21803
|
* * Display Name: Job Type
|
|
@@ -22671,6 +22975,17 @@ export const MJTagSynonymSchema = z.object({
|
|
|
22671
22975
|
* * Display Name: Updated At
|
|
22672
22976
|
* * SQL Data Type: datetimeoffset
|
|
22673
22977
|
* * Default Value: getutcdate()`),
|
|
22978
|
+
Status: z.union([z.literal('Active'), z.literal('Pending'), z.literal('Rejected')]).describe(`
|
|
22979
|
+
* * Field Name: Status
|
|
22980
|
+
* * Display Name: Status
|
|
22981
|
+
* * SQL Data Type: nvarchar(20)
|
|
22982
|
+
* * Default Value: Active
|
|
22983
|
+
* * Value List Type: List
|
|
22984
|
+
* * Possible Values
|
|
22985
|
+
* * Active
|
|
22986
|
+
* * Pending
|
|
22987
|
+
* * Rejected
|
|
22988
|
+
* * Description: Approval state of the synonym. Active = resolves to its tag during classification. Pending = proposed (e.g. by the LLM or a bulk import) and awaiting human review; does not resolve until approved. Rejected = reviewed and declined; retained for audit and to suppress re-proposal.`),
|
|
22674
22989
|
Tag: z.string().describe(`
|
|
22675
22990
|
* * Field Name: Tag
|
|
22676
22991
|
* * Display Name: Tag Name
|
|
@@ -32729,7 +33044,7 @@ let MJAIAgentRunEntity = class MJAIAgentRunEntity extends BaseEntity {
|
|
|
32729
33044
|
}
|
|
32730
33045
|
/**
|
|
32731
33046
|
* * Field Name: ID
|
|
32732
|
-
* * Display Name: ID
|
|
33047
|
+
* * Display Name: Run ID
|
|
32733
33048
|
* * SQL Data Type: uniqueidentifier
|
|
32734
33049
|
* * Default Value: newsequentialid()
|
|
32735
33050
|
* * Description: Unique identifier for this agent run
|
|
@@ -32889,7 +33204,7 @@ let MJAIAgentRunEntity = class MJAIAgentRunEntity extends BaseEntity {
|
|
|
32889
33204
|
}
|
|
32890
33205
|
/**
|
|
32891
33206
|
* * Field Name: TotalTokensUsed
|
|
32892
|
-
* * Display Name: Total Tokens
|
|
33207
|
+
* * Display Name: Total Tokens
|
|
32893
33208
|
* * SQL Data Type: int
|
|
32894
33209
|
* * Default Value: 0
|
|
32895
33210
|
* * Description: Total number of tokens consumed by all LLM calls during this agent run
|
|
@@ -32933,7 +33248,7 @@ let MJAIAgentRunEntity = class MJAIAgentRunEntity extends BaseEntity {
|
|
|
32933
33248
|
}
|
|
32934
33249
|
/**
|
|
32935
33250
|
* * Field Name: TotalPromptTokensUsed
|
|
32936
|
-
* * Display Name:
|
|
33251
|
+
* * Display Name: Prompt Tokens
|
|
32937
33252
|
* * SQL Data Type: int
|
|
32938
33253
|
* * Description: Total number of prompt/input tokens used across all AIPromptRun executions during this agent run. This provides a breakdown of the TotalTokensUsed field to help analyze the ratio of input vs output tokens consumed by the agent.
|
|
32939
33254
|
*/
|
|
@@ -32945,7 +33260,7 @@ let MJAIAgentRunEntity = class MJAIAgentRunEntity extends BaseEntity {
|
|
|
32945
33260
|
}
|
|
32946
33261
|
/**
|
|
32947
33262
|
* * Field Name: TotalCompletionTokensUsed
|
|
32948
|
-
* * Display Name:
|
|
33263
|
+
* * Display Name: Completion Tokens
|
|
32949
33264
|
* * SQL Data Type: int
|
|
32950
33265
|
* * Description: Total number of completion/output tokens generated across all AIPromptRun executions during this agent run. This provides a breakdown of the TotalTokensUsed field to help analyze the ratio of input vs output tokens consumed by the agent.
|
|
32951
33266
|
*/
|
|
@@ -32957,7 +33272,7 @@ let MJAIAgentRunEntity = class MJAIAgentRunEntity extends BaseEntity {
|
|
|
32957
33272
|
}
|
|
32958
33273
|
/**
|
|
32959
33274
|
* * Field Name: TotalTokensUsedRollup
|
|
32960
|
-
* * Display Name: Total Tokens
|
|
33275
|
+
* * Display Name: Total Tokens (Rollup)
|
|
32961
33276
|
* * SQL Data Type: int
|
|
32962
33277
|
* * Description: Total tokens used including this agent run and all sub-agent runs. For leaf agents (no sub-agents), this equals TotalTokensUsed. For parent agents, this includes the sum of all descendant agent tokens. Calculated as TotalPromptTokensUsedRollup + TotalCompletionTokensUsedRollup.
|
|
32963
33278
|
*/
|
|
@@ -32969,7 +33284,7 @@ let MJAIAgentRunEntity = class MJAIAgentRunEntity extends BaseEntity {
|
|
|
32969
33284
|
}
|
|
32970
33285
|
/**
|
|
32971
33286
|
* * Field Name: TotalPromptTokensUsedRollup
|
|
32972
|
-
* * Display Name:
|
|
33287
|
+
* * Display Name: Prompt Tokens (Rollup)
|
|
32973
33288
|
* * SQL Data Type: int
|
|
32974
33289
|
* * Description: Total prompt/input tokens including this agent run and all sub-agent runs. For leaf agents (no sub-agents), this equals TotalPromptTokensUsed. For parent agents, this includes the sum of all descendant agent prompt tokens.
|
|
32975
33290
|
*/
|
|
@@ -32981,7 +33296,7 @@ let MJAIAgentRunEntity = class MJAIAgentRunEntity extends BaseEntity {
|
|
|
32981
33296
|
}
|
|
32982
33297
|
/**
|
|
32983
33298
|
* * Field Name: TotalCompletionTokensUsedRollup
|
|
32984
|
-
* * Display Name:
|
|
33299
|
+
* * Display Name: Completion Tokens (Rollup)
|
|
32985
33300
|
* * SQL Data Type: int
|
|
32986
33301
|
* * Description: Total completion/output tokens including this agent run and all sub-agent runs. For leaf agents (no sub-agents), this equals TotalCompletionTokensUsed. For parent agents, this includes the sum of all descendant agent completion tokens.
|
|
32987
33302
|
*/
|
|
@@ -33018,7 +33333,7 @@ let MJAIAgentRunEntity = class MJAIAgentRunEntity extends BaseEntity {
|
|
|
33018
33333
|
}
|
|
33019
33334
|
/**
|
|
33020
33335
|
* * Field Name: ConversationDetailSequence
|
|
33021
|
-
* * Display Name:
|
|
33336
|
+
* * Display Name: Sequence
|
|
33022
33337
|
* * SQL Data Type: int
|
|
33023
33338
|
* * Description: If a conversation detail spawned multiple agent runs, tracks the order of their spawn/execution
|
|
33024
33339
|
*/
|
|
@@ -33081,7 +33396,7 @@ let MJAIAgentRunEntity = class MJAIAgentRunEntity extends BaseEntity {
|
|
|
33081
33396
|
}
|
|
33082
33397
|
/**
|
|
33083
33398
|
* * Field Name: Message
|
|
33084
|
-
* * Display Name: Message
|
|
33399
|
+
* * Display Name: Final Message
|
|
33085
33400
|
* * SQL Data Type: nvarchar(MAX)
|
|
33086
33401
|
* * Description: Final message from the agent to the end user at the end of a run
|
|
33087
33402
|
*/
|
|
@@ -33171,7 +33486,7 @@ each time the agent processes a prompt step.
|
|
|
33171
33486
|
}
|
|
33172
33487
|
/**
|
|
33173
33488
|
* * Field Name: Data
|
|
33174
|
-
* * Display Name: Data
|
|
33489
|
+
* * Display Name: Execution Data
|
|
33175
33490
|
* * SQL Data Type: nvarchar(MAX)
|
|
33176
33491
|
* * Description: JSON serialized data that was passed for template rendering and prompt execution. This data was passed to the agent's prompt as well as all sub-agents.
|
|
33177
33492
|
*/
|
|
@@ -33295,7 +33610,7 @@ each time the agent processes a prompt step.
|
|
|
33295
33610
|
}
|
|
33296
33611
|
/**
|
|
33297
33612
|
* * Field Name: ExternalReferenceID
|
|
33298
|
-
* * Display Name: External Reference
|
|
33613
|
+
* * Display Name: External Reference
|
|
33299
33614
|
* * SQL Data Type: nvarchar(200)
|
|
33300
33615
|
* * Description: Optional reference ID from an external system that initiated this agent run. Enables correlation between the caller's agent run and this execution. For example, when Skip SaaS is called via SkipProxyAgent, this stores the MJ-side Agent Run ID.
|
|
33301
33616
|
*/
|
|
@@ -33307,7 +33622,7 @@ each time the agent processes a prompt step.
|
|
|
33307
33622
|
}
|
|
33308
33623
|
/**
|
|
33309
33624
|
* * Field Name: CompanyID
|
|
33310
|
-
* * Display Name: Company
|
|
33625
|
+
* * Display Name: Company
|
|
33311
33626
|
* * SQL Data Type: uniqueidentifier
|
|
33312
33627
|
* * Description: Optional company scope for multi-tenant memory. When populated, Memory Manager uses this to scope extracted notes to the company. Flows from ExecuteAgentParams.companyId at agent invocation time.
|
|
33313
33628
|
*/
|
|
@@ -33318,8 +33633,32 @@ each time the agent processes a prompt step.
|
|
|
33318
33633
|
this.Set('CompanyID', value);
|
|
33319
33634
|
}
|
|
33320
33635
|
/**
|
|
33636
|
+
* * Field Name: TotalCacheReadTokensUsed
|
|
33637
|
+
* * Display Name: Cache Read Tokens
|
|
33638
|
+
* * SQL Data Type: int
|
|
33639
|
+
* * Description: Total input tokens served from the AI provider's prompt cache (cache reads / hits) across this agent run, summed from child prompt runs' TokensCacheReadRollup and sub-agent runs' TotalCacheReadTokensUsed. Counts only; the cost impact (cache reads are billed at a steep discount) is reflected in TotalCost. The cache counterpart of TotalPromptTokensUsed.
|
|
33640
|
+
*/
|
|
33641
|
+
get TotalCacheReadTokensUsed() {
|
|
33642
|
+
return this.Get('TotalCacheReadTokensUsed');
|
|
33643
|
+
}
|
|
33644
|
+
set TotalCacheReadTokensUsed(value) {
|
|
33645
|
+
this.Set('TotalCacheReadTokensUsed', value);
|
|
33646
|
+
}
|
|
33647
|
+
/**
|
|
33648
|
+
* * Field Name: TotalCacheWriteTokensUsed
|
|
33649
|
+
* * Display Name: Cache Write Tokens
|
|
33650
|
+
* * SQL Data Type: int
|
|
33651
|
+
* * Description: Total input tokens written to the AI provider's prompt cache (cache writes / creation) across this agent run, summed from child prompt runs' TokensCacheWriteRollup and sub-agent runs' TotalCacheWriteTokensUsed. Populated for providers that bill cache creation (e.g. Anthropic); 0 or NULL otherwise. The cache counterpart of TotalCompletionTokensUsed.
|
|
33652
|
+
*/
|
|
33653
|
+
get TotalCacheWriteTokensUsed() {
|
|
33654
|
+
return this.Get('TotalCacheWriteTokensUsed');
|
|
33655
|
+
}
|
|
33656
|
+
set TotalCacheWriteTokensUsed(value) {
|
|
33657
|
+
this.Set('TotalCacheWriteTokensUsed', value);
|
|
33658
|
+
}
|
|
33659
|
+
/**
|
|
33321
33660
|
* * Field Name: Agent
|
|
33322
|
-
* * Display Name: Agent
|
|
33661
|
+
* * Display Name: Agent Details
|
|
33323
33662
|
* * SQL Data Type: nvarchar(255)
|
|
33324
33663
|
*/
|
|
33325
33664
|
get Agent() {
|
|
@@ -33327,7 +33666,7 @@ each time the agent processes a prompt step.
|
|
|
33327
33666
|
}
|
|
33328
33667
|
/**
|
|
33329
33668
|
* * Field Name: ParentRun
|
|
33330
|
-
* * Display Name: Parent Run
|
|
33669
|
+
* * Display Name: Parent Run Details
|
|
33331
33670
|
* * SQL Data Type: nvarchar(255)
|
|
33332
33671
|
*/
|
|
33333
33672
|
get ParentRun() {
|
|
@@ -33335,7 +33674,7 @@ each time the agent processes a prompt step.
|
|
|
33335
33674
|
}
|
|
33336
33675
|
/**
|
|
33337
33676
|
* * Field Name: Conversation
|
|
33338
|
-
* * Display Name: Conversation
|
|
33677
|
+
* * Display Name: Conversation Details
|
|
33339
33678
|
* * SQL Data Type: nvarchar(255)
|
|
33340
33679
|
*/
|
|
33341
33680
|
get Conversation() {
|
|
@@ -33343,7 +33682,7 @@ each time the agent processes a prompt step.
|
|
|
33343
33682
|
}
|
|
33344
33683
|
/**
|
|
33345
33684
|
* * Field Name: User
|
|
33346
|
-
* * Display Name: User
|
|
33685
|
+
* * Display Name: User Details
|
|
33347
33686
|
* * SQL Data Type: nvarchar(100)
|
|
33348
33687
|
*/
|
|
33349
33688
|
get User() {
|
|
@@ -33351,7 +33690,7 @@ each time the agent processes a prompt step.
|
|
|
33351
33690
|
}
|
|
33352
33691
|
/**
|
|
33353
33692
|
* * Field Name: ConversationDetail
|
|
33354
|
-
* * Display Name: Conversation Detail
|
|
33693
|
+
* * Display Name: Conversation Detail Details
|
|
33355
33694
|
* * SQL Data Type: nvarchar(MAX)
|
|
33356
33695
|
*/
|
|
33357
33696
|
get ConversationDetail() {
|
|
@@ -33359,7 +33698,7 @@ each time the agent processes a prompt step.
|
|
|
33359
33698
|
}
|
|
33360
33699
|
/**
|
|
33361
33700
|
* * Field Name: LastRun
|
|
33362
|
-
* * Display Name: Last Run
|
|
33701
|
+
* * Display Name: Last Run Details
|
|
33363
33702
|
* * SQL Data Type: nvarchar(255)
|
|
33364
33703
|
*/
|
|
33365
33704
|
get LastRun() {
|
|
@@ -33367,7 +33706,7 @@ each time the agent processes a prompt step.
|
|
|
33367
33706
|
}
|
|
33368
33707
|
/**
|
|
33369
33708
|
* * Field Name: Configuration
|
|
33370
|
-
* * Display Name: Configuration
|
|
33709
|
+
* * Display Name: Configuration Details
|
|
33371
33710
|
* * SQL Data Type: nvarchar(100)
|
|
33372
33711
|
*/
|
|
33373
33712
|
get Configuration() {
|
|
@@ -33375,7 +33714,7 @@ each time the agent processes a prompt step.
|
|
|
33375
33714
|
}
|
|
33376
33715
|
/**
|
|
33377
33716
|
* * Field Name: OverrideModel
|
|
33378
|
-
* * Display Name: Override Model
|
|
33717
|
+
* * Display Name: Override Model Details
|
|
33379
33718
|
* * SQL Data Type: nvarchar(50)
|
|
33380
33719
|
*/
|
|
33381
33720
|
get OverrideModel() {
|
|
@@ -33383,7 +33722,7 @@ each time the agent processes a prompt step.
|
|
|
33383
33722
|
}
|
|
33384
33723
|
/**
|
|
33385
33724
|
* * Field Name: OverrideVendor
|
|
33386
|
-
* * Display Name: Override Vendor
|
|
33725
|
+
* * Display Name: Override Vendor Details
|
|
33387
33726
|
* * SQL Data Type: nvarchar(50)
|
|
33388
33727
|
*/
|
|
33389
33728
|
get OverrideVendor() {
|
|
@@ -33391,7 +33730,7 @@ each time the agent processes a prompt step.
|
|
|
33391
33730
|
}
|
|
33392
33731
|
/**
|
|
33393
33732
|
* * Field Name: ScheduledJobRun
|
|
33394
|
-
* * Display Name: Scheduled Job
|
|
33733
|
+
* * Display Name: Scheduled Job Details
|
|
33395
33734
|
* * SQL Data Type: nvarchar(200)
|
|
33396
33735
|
*/
|
|
33397
33736
|
get ScheduledJobRun() {
|
|
@@ -33399,7 +33738,7 @@ each time the agent processes a prompt step.
|
|
|
33399
33738
|
}
|
|
33400
33739
|
/**
|
|
33401
33740
|
* * Field Name: TestRun
|
|
33402
|
-
* * Display Name: Test Run
|
|
33741
|
+
* * Display Name: Test Run Details
|
|
33403
33742
|
* * SQL Data Type: nvarchar(255)
|
|
33404
33743
|
*/
|
|
33405
33744
|
get TestRun() {
|
|
@@ -33407,7 +33746,7 @@ each time the agent processes a prompt step.
|
|
|
33407
33746
|
}
|
|
33408
33747
|
/**
|
|
33409
33748
|
* * Field Name: PrimaryScopeEntity
|
|
33410
|
-
* * Display Name: Primary Scope Entity
|
|
33749
|
+
* * Display Name: Primary Scope Entity Details
|
|
33411
33750
|
* * SQL Data Type: nvarchar(255)
|
|
33412
33751
|
*/
|
|
33413
33752
|
get PrimaryScopeEntity() {
|
|
@@ -37188,7 +37527,7 @@ let MJAIModelCostEntity = class MJAIModelCostEntity extends BaseEntity {
|
|
|
37188
37527
|
}
|
|
37189
37528
|
/**
|
|
37190
37529
|
* * Field Name: ModelID
|
|
37191
|
-
* * Display Name: Model
|
|
37530
|
+
* * Display Name: Model
|
|
37192
37531
|
* * SQL Data Type: uniqueidentifier
|
|
37193
37532
|
* * Related Entity/Foreign Key: MJ: AI Models (vwAIModels.ID)
|
|
37194
37533
|
*/
|
|
@@ -37200,7 +37539,7 @@ let MJAIModelCostEntity = class MJAIModelCostEntity extends BaseEntity {
|
|
|
37200
37539
|
}
|
|
37201
37540
|
/**
|
|
37202
37541
|
* * Field Name: VendorID
|
|
37203
|
-
* * Display Name: Vendor
|
|
37542
|
+
* * Display Name: Vendor
|
|
37204
37543
|
* * SQL Data Type: uniqueidentifier
|
|
37205
37544
|
* * Related Entity/Foreign Key: MJ: AI Vendors (vwAIVendors.ID)
|
|
37206
37545
|
*/
|
|
@@ -37267,7 +37606,7 @@ let MJAIModelCostEntity = class MJAIModelCostEntity extends BaseEntity {
|
|
|
37267
37606
|
}
|
|
37268
37607
|
/**
|
|
37269
37608
|
* * Field Name: PriceTypeID
|
|
37270
|
-
* * Display Name: Price Type
|
|
37609
|
+
* * Display Name: Price Type
|
|
37271
37610
|
* * SQL Data Type: uniqueidentifier
|
|
37272
37611
|
* * Related Entity/Foreign Key: MJ: AI Model Price Types (vwAIModelPriceTypes.ID)
|
|
37273
37612
|
*/
|
|
@@ -37303,7 +37642,7 @@ let MJAIModelCostEntity = class MJAIModelCostEntity extends BaseEntity {
|
|
|
37303
37642
|
}
|
|
37304
37643
|
/**
|
|
37305
37644
|
* * Field Name: UnitTypeID
|
|
37306
|
-
* * Display Name: Unit Type
|
|
37645
|
+
* * Display Name: Unit Type
|
|
37307
37646
|
* * SQL Data Type: uniqueidentifier
|
|
37308
37647
|
* * Related Entity/Foreign Key: MJ: AI Model Price Unit Types (vwAIModelPriceUnitTypes.ID)
|
|
37309
37648
|
*/
|
|
@@ -37360,8 +37699,32 @@ let MJAIModelCostEntity = class MJAIModelCostEntity extends BaseEntity {
|
|
|
37360
37699
|
return this.Get('__mj_UpdatedAt');
|
|
37361
37700
|
}
|
|
37362
37701
|
/**
|
|
37702
|
+
* * Field Name: CacheReadPricePerUnit
|
|
37703
|
+
* * Display Name: Cache Read Price Per Unit
|
|
37704
|
+
* * SQL Data Type: decimal(18, 8)
|
|
37705
|
+
* * Description: Optional price per unit for input tokens served from the AI provider's prompt cache (cache reads / hits), expressed in the same currency and UnitType (e.g. per 1M tokens) as InputPricePerUnit. When NULL, cache-read tokens are priced at InputPricePerUnit. Cache reads are usually far cheaper than uncached input (e.g. ~0.1x for Anthropic/Gemini, ~0.5x for OpenAI).
|
|
37706
|
+
*/
|
|
37707
|
+
get CacheReadPricePerUnit() {
|
|
37708
|
+
return this.Get('CacheReadPricePerUnit');
|
|
37709
|
+
}
|
|
37710
|
+
set CacheReadPricePerUnit(value) {
|
|
37711
|
+
this.Set('CacheReadPricePerUnit', value);
|
|
37712
|
+
}
|
|
37713
|
+
/**
|
|
37714
|
+
* * Field Name: CacheWritePricePerUnit
|
|
37715
|
+
* * Display Name: Cache Write Price Per Unit
|
|
37716
|
+
* * SQL Data Type: decimal(18, 8)
|
|
37717
|
+
* * Description: Optional price per unit for input tokens written to the AI provider's prompt cache (cache writes / creation), expressed in the same currency and UnitType as InputPricePerUnit. When NULL, cache-write tokens are priced at InputPricePerUnit. Populated for providers that bill cache creation separately (e.g. Anthropic, ~1.25x input); leave NULL for providers that do not (OpenAI, Gemini), which also report 0 cache-write tokens.
|
|
37718
|
+
*/
|
|
37719
|
+
get CacheWritePricePerUnit() {
|
|
37720
|
+
return this.Get('CacheWritePricePerUnit');
|
|
37721
|
+
}
|
|
37722
|
+
set CacheWritePricePerUnit(value) {
|
|
37723
|
+
this.Set('CacheWritePricePerUnit', value);
|
|
37724
|
+
}
|
|
37725
|
+
/**
|
|
37363
37726
|
* * Field Name: Model
|
|
37364
|
-
* * Display Name: Model
|
|
37727
|
+
* * Display Name: Model Name
|
|
37365
37728
|
* * SQL Data Type: nvarchar(50)
|
|
37366
37729
|
*/
|
|
37367
37730
|
get Model() {
|
|
@@ -37369,7 +37732,7 @@ let MJAIModelCostEntity = class MJAIModelCostEntity extends BaseEntity {
|
|
|
37369
37732
|
}
|
|
37370
37733
|
/**
|
|
37371
37734
|
* * Field Name: Vendor
|
|
37372
|
-
* * Display Name: Vendor
|
|
37735
|
+
* * Display Name: Vendor Name
|
|
37373
37736
|
* * SQL Data Type: nvarchar(50)
|
|
37374
37737
|
*/
|
|
37375
37738
|
get Vendor() {
|
|
@@ -37377,7 +37740,7 @@ let MJAIModelCostEntity = class MJAIModelCostEntity extends BaseEntity {
|
|
|
37377
37740
|
}
|
|
37378
37741
|
/**
|
|
37379
37742
|
* * Field Name: PriceType
|
|
37380
|
-
* * Display Name: Price Type
|
|
37743
|
+
* * Display Name: Price Type Name
|
|
37381
37744
|
* * SQL Data Type: nvarchar(100)
|
|
37382
37745
|
*/
|
|
37383
37746
|
get PriceType() {
|
|
@@ -37385,7 +37748,7 @@ let MJAIModelCostEntity = class MJAIModelCostEntity extends BaseEntity {
|
|
|
37385
37748
|
}
|
|
37386
37749
|
/**
|
|
37387
37750
|
* * Field Name: UnitType
|
|
37388
|
-
* * Display Name: Unit Type
|
|
37751
|
+
* * Display Name: Unit Type Name
|
|
37389
37752
|
* * SQL Data Type: nvarchar(100)
|
|
37390
37753
|
*/
|
|
37391
37754
|
get UnitType() {
|
|
@@ -39573,7 +39936,7 @@ let MJAIPromptRunEntity = class MJAIPromptRunEntity extends BaseEntity {
|
|
|
39573
39936
|
}
|
|
39574
39937
|
/**
|
|
39575
39938
|
* * Field Name: RunAt
|
|
39576
|
-
* * Display Name:
|
|
39939
|
+
* * Display Name: Started At
|
|
39577
39940
|
* * SQL Data Type: datetimeoffset
|
|
39578
39941
|
* * Default Value: sysdatetimeoffset()
|
|
39579
39942
|
* * Description: When the prompt run started, with timezone offset information.
|
|
@@ -39634,7 +39997,7 @@ let MJAIPromptRunEntity = class MJAIPromptRunEntity extends BaseEntity {
|
|
|
39634
39997
|
}
|
|
39635
39998
|
/**
|
|
39636
39999
|
* * Field Name: TokensUsed
|
|
39637
|
-
* * Display Name:
|
|
40000
|
+
* * Display Name: Tokens Used
|
|
39638
40001
|
* * SQL Data Type: int
|
|
39639
40002
|
* * Description: Total number of tokens used (prompt + completion).
|
|
39640
40003
|
*/
|
|
@@ -39794,7 +40157,7 @@ let MJAIPromptRunEntity = class MJAIPromptRunEntity extends BaseEntity {
|
|
|
39794
40157
|
}
|
|
39795
40158
|
/**
|
|
39796
40159
|
* * Field Name: CostCurrency
|
|
39797
|
-
* * Display Name:
|
|
40160
|
+
* * Display Name: Currency
|
|
39798
40161
|
* * SQL Data Type: nvarchar(10)
|
|
39799
40162
|
* * Description: ISO 4217 currency code for the Cost field (e.g., USD, EUR, GBP). Different AI providers may use different currencies.
|
|
39800
40163
|
*/
|
|
@@ -39806,7 +40169,7 @@ let MJAIPromptRunEntity = class MJAIPromptRunEntity extends BaseEntity {
|
|
|
39806
40169
|
}
|
|
39807
40170
|
/**
|
|
39808
40171
|
* * Field Name: TokensUsedRollup
|
|
39809
|
-
* * Display Name:
|
|
40172
|
+
* * Display Name: Tokens Used (Rollup)
|
|
39810
40173
|
* * SQL Data Type: int
|
|
39811
40174
|
* * 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.
|
|
39812
40175
|
*/
|
|
@@ -39950,7 +40313,7 @@ let MJAIPromptRunEntity = class MJAIPromptRunEntity extends BaseEntity {
|
|
|
39950
40313
|
}
|
|
39951
40314
|
/**
|
|
39952
40315
|
* * Field Name: LogProbs
|
|
39953
|
-
* * Display Name: Log
|
|
40316
|
+
* * Display Name: Log Probs
|
|
39954
40317
|
* * SQL Data Type: bit
|
|
39955
40318
|
* * Description: Whether log probabilities were requested for this run
|
|
39956
40319
|
*/
|
|
@@ -39962,7 +40325,7 @@ let MJAIPromptRunEntity = class MJAIPromptRunEntity extends BaseEntity {
|
|
|
39962
40325
|
}
|
|
39963
40326
|
/**
|
|
39964
40327
|
* * Field Name: TopLogProbs
|
|
39965
|
-
* * Display Name: Top Log
|
|
40328
|
+
* * Display Name: Top Log Probs
|
|
39966
40329
|
* * SQL Data Type: int
|
|
39967
40330
|
* * Description: Number of top log probabilities requested per token (if LogProbs is true)
|
|
39968
40331
|
*/
|
|
@@ -39986,7 +40349,7 @@ let MJAIPromptRunEntity = class MJAIPromptRunEntity extends BaseEntity {
|
|
|
39986
40349
|
}
|
|
39987
40350
|
/**
|
|
39988
40351
|
* * Field Name: ValidationAttemptCount
|
|
39989
|
-
* * Display Name: Validation
|
|
40352
|
+
* * Display Name: Validation Attempts
|
|
39990
40353
|
* * SQL Data Type: int
|
|
39991
40354
|
* * Description: Total number of validation attempts made (including the initial attempt)
|
|
39992
40355
|
*/
|
|
@@ -39998,7 +40361,7 @@ let MJAIPromptRunEntity = class MJAIPromptRunEntity extends BaseEntity {
|
|
|
39998
40361
|
}
|
|
39999
40362
|
/**
|
|
40000
40363
|
* * Field Name: SuccessfulValidationCount
|
|
40001
|
-
* * Display Name: Successful
|
|
40364
|
+
* * Display Name: Successful Validations
|
|
40002
40365
|
* * SQL Data Type: int
|
|
40003
40366
|
* * Description: Number of validation attempts that passed validation
|
|
40004
40367
|
*/
|
|
@@ -40010,7 +40373,7 @@ let MJAIPromptRunEntity = class MJAIPromptRunEntity extends BaseEntity {
|
|
|
40010
40373
|
}
|
|
40011
40374
|
/**
|
|
40012
40375
|
* * Field Name: FinalValidationPassed
|
|
40013
|
-
* * Display Name:
|
|
40376
|
+
* * Display Name: Validation Passed
|
|
40014
40377
|
* * SQL Data Type: bit
|
|
40015
40378
|
* * Description: Whether validation ultimately passed (1) or failed (0)
|
|
40016
40379
|
*/
|
|
@@ -40046,7 +40409,7 @@ let MJAIPromptRunEntity = class MJAIPromptRunEntity extends BaseEntity {
|
|
|
40046
40409
|
}
|
|
40047
40410
|
/**
|
|
40048
40411
|
* * Field Name: MaxRetriesConfigured
|
|
40049
|
-
* * Display Name: Max Retries
|
|
40412
|
+
* * Display Name: Max Retries
|
|
40050
40413
|
* * SQL Data Type: int
|
|
40051
40414
|
* * Description: Maximum number of retries configured on the prompt
|
|
40052
40415
|
*/
|
|
@@ -40130,7 +40493,7 @@ let MJAIPromptRunEntity = class MJAIPromptRunEntity extends BaseEntity {
|
|
|
40130
40493
|
}
|
|
40131
40494
|
/**
|
|
40132
40495
|
* * Field Name: ValidationAttempts
|
|
40133
|
-
* * Display Name: Validation
|
|
40496
|
+
* * Display Name: Validation Attempt Logs
|
|
40134
40497
|
* * SQL Data Type: nvarchar(MAX)
|
|
40135
40498
|
* * Description: JSON array containing detailed information about each validation attempt
|
|
40136
40499
|
*/
|
|
@@ -40191,7 +40554,7 @@ let MJAIPromptRunEntity = class MJAIPromptRunEntity extends BaseEntity {
|
|
|
40191
40554
|
}
|
|
40192
40555
|
/**
|
|
40193
40556
|
* * Field Name: OriginalModelID
|
|
40194
|
-
* * Display Name: Original Model
|
|
40557
|
+
* * Display Name: Original Model ID
|
|
40195
40558
|
* * SQL Data Type: uniqueidentifier
|
|
40196
40559
|
* * Related Entity/Foreign Key: MJ: AI Models (vwAIModels.ID)
|
|
40197
40560
|
* * Description: The AI Model ID that was originally attempted before any failovers
|
|
@@ -40204,7 +40567,7 @@ let MJAIPromptRunEntity = class MJAIPromptRunEntity extends BaseEntity {
|
|
|
40204
40567
|
}
|
|
40205
40568
|
/**
|
|
40206
40569
|
* * Field Name: OriginalRequestStartTime
|
|
40207
|
-
* * Display Name: Original Request Start
|
|
40570
|
+
* * Display Name: Original Request Start
|
|
40208
40571
|
* * SQL Data Type: datetimeoffset
|
|
40209
40572
|
* * Description: Timestamp when the original request started, before any failovers
|
|
40210
40573
|
*/
|
|
@@ -40241,7 +40604,7 @@ let MJAIPromptRunEntity = class MJAIPromptRunEntity extends BaseEntity {
|
|
|
40241
40604
|
}
|
|
40242
40605
|
/**
|
|
40243
40606
|
* * Field Name: ModelSelection
|
|
40244
|
-
* * Display Name: Model Selection
|
|
40607
|
+
* * Display Name: Model Selection Details
|
|
40245
40608
|
* * SQL Data Type: nvarchar(MAX)
|
|
40246
40609
|
* * Description: JSON object containing detailed model selection information including all models considered, their scores, and the selection rationale
|
|
40247
40610
|
*/
|
|
@@ -40352,7 +40715,7 @@ let MJAIPromptRunEntity = class MJAIPromptRunEntity extends BaseEntity {
|
|
|
40352
40715
|
}
|
|
40353
40716
|
/**
|
|
40354
40717
|
* * Field Name: JudgeID
|
|
40355
|
-
* * Display Name: Judge
|
|
40718
|
+
* * Display Name: Judge Prompt
|
|
40356
40719
|
* * SQL Data Type: uniqueidentifier
|
|
40357
40720
|
* * Related Entity/Foreign Key: MJ: AI Prompts (vwAIPrompts.ID)
|
|
40358
40721
|
* * Description: ID of the AIPrompt used as a judge to evaluate and rank multiple parallel execution results
|
|
@@ -40476,7 +40839,7 @@ let MJAIPromptRunEntity = class MJAIPromptRunEntity extends BaseEntity {
|
|
|
40476
40839
|
}
|
|
40477
40840
|
/**
|
|
40478
40841
|
* * Field Name: ModelSpecificResponseDetails
|
|
40479
|
-
* * Display Name:
|
|
40842
|
+
* * Display Name: Provider Response Details
|
|
40480
40843
|
* * SQL Data Type: nvarchar(MAX)
|
|
40481
40844
|
* * Description: JSON field containing provider-specific response metadata and details not captured in standard fields. Structure varies by AI provider.
|
|
40482
40845
|
*/
|
|
@@ -40548,6 +40911,54 @@ let MJAIPromptRunEntity = class MJAIPromptRunEntity extends BaseEntity {
|
|
|
40548
40911
|
this.Set('AssistantPrefill', value);
|
|
40549
40912
|
}
|
|
40550
40913
|
/**
|
|
40914
|
+
* * Field Name: TokensCacheRead
|
|
40915
|
+
* * Display Name: Tokens Cache Read
|
|
40916
|
+
* * SQL Data Type: int
|
|
40917
|
+
* * Description: Number of input tokens served from the AI provider's prompt cache (a cache READ / hit) for this run, as reported by the provider. Counts only; no cost is derived here. NULL if the provider did not report cache reads or caching did not engage. Distinct from CacheHit/CacheKey, which track MemberJunction's own result cache.
|
|
40918
|
+
*/
|
|
40919
|
+
get TokensCacheRead() {
|
|
40920
|
+
return this.Get('TokensCacheRead');
|
|
40921
|
+
}
|
|
40922
|
+
set TokensCacheRead(value) {
|
|
40923
|
+
this.Set('TokensCacheRead', value);
|
|
40924
|
+
}
|
|
40925
|
+
/**
|
|
40926
|
+
* * Field Name: TokensCacheWrite
|
|
40927
|
+
* * Display Name: Tokens Cache Write
|
|
40928
|
+
* * SQL Data Type: int
|
|
40929
|
+
* * Description: Number of input tokens written to the AI provider's prompt cache (a cache WRITE / creation) for this run, as reported by the provider. Populated for providers that report cache writes (e.g. Anthropic cache_creation_input_tokens); NULL or 0 for providers that do not bill/report writes (OpenAI, Gemini, Groq, Cerebras). Counts only; no cost is derived here.
|
|
40930
|
+
*/
|
|
40931
|
+
get TokensCacheWrite() {
|
|
40932
|
+
return this.Get('TokensCacheWrite');
|
|
40933
|
+
}
|
|
40934
|
+
set TokensCacheWrite(value) {
|
|
40935
|
+
this.Set('TokensCacheWrite', value);
|
|
40936
|
+
}
|
|
40937
|
+
/**
|
|
40938
|
+
* * Field Name: TokensCacheReadRollup
|
|
40939
|
+
* * Display Name: Tokens Cache Read (Rollup)
|
|
40940
|
+
* * SQL Data Type: int
|
|
40941
|
+
* * Description: Rollup of TokensCacheRead across this prompt run and all of its descendant prompt runs (e.g. the individual attempts behind a parallel / multi-attempt / failover consolidation). For a leaf run this equals TokensCacheRead. Use this (not TokensCacheRead) when aggregating cache reads up a prompt-run or agent-run hierarchy so fan-out provider calls are not under-counted.
|
|
40942
|
+
*/
|
|
40943
|
+
get TokensCacheReadRollup() {
|
|
40944
|
+
return this.Get('TokensCacheReadRollup');
|
|
40945
|
+
}
|
|
40946
|
+
set TokensCacheReadRollup(value) {
|
|
40947
|
+
this.Set('TokensCacheReadRollup', value);
|
|
40948
|
+
}
|
|
40949
|
+
/**
|
|
40950
|
+
* * Field Name: TokensCacheWriteRollup
|
|
40951
|
+
* * Display Name: Tokens Cache Write (Rollup)
|
|
40952
|
+
* * SQL Data Type: int
|
|
40953
|
+
* * Description: Rollup of TokensCacheWrite across this prompt run and all of its descendant prompt runs. For a leaf run this equals TokensCacheWrite. Mirrors TokensUsedRollup/TokensPromptRollup; populated for providers that report cache writes (e.g. Anthropic), otherwise 0 or NULL.
|
|
40954
|
+
*/
|
|
40955
|
+
get TokensCacheWriteRollup() {
|
|
40956
|
+
return this.Get('TokensCacheWriteRollup');
|
|
40957
|
+
}
|
|
40958
|
+
set TokensCacheWriteRollup(value) {
|
|
40959
|
+
this.Set('TokensCacheWriteRollup', value);
|
|
40960
|
+
}
|
|
40961
|
+
/**
|
|
40551
40962
|
* * Field Name: Prompt
|
|
40552
40963
|
* * Display Name: Prompt
|
|
40553
40964
|
* * SQL Data Type: nvarchar(255)
|
|
@@ -40613,7 +41024,7 @@ let MJAIPromptRunEntity = class MJAIPromptRunEntity extends BaseEntity {
|
|
|
40613
41024
|
}
|
|
40614
41025
|
/**
|
|
40615
41026
|
* * Field Name: RerunFromPromptRun
|
|
40616
|
-
* * Display Name: Rerun From
|
|
41027
|
+
* * Display Name: Rerun From Run
|
|
40617
41028
|
* * SQL Data Type: nvarchar(255)
|
|
40618
41029
|
*/
|
|
40619
41030
|
get RerunFromPromptRun() {
|
|
@@ -40653,7 +41064,7 @@ let MJAIPromptRunEntity = class MJAIPromptRunEntity extends BaseEntity {
|
|
|
40653
41064
|
}
|
|
40654
41065
|
/**
|
|
40655
41066
|
* * Field Name: RootRerunFromPromptRunID
|
|
40656
|
-
* * Display Name: Root Rerun
|
|
41067
|
+
* * Display Name: Root Rerun Source
|
|
40657
41068
|
* * SQL Data Type: uniqueidentifier
|
|
40658
41069
|
*/
|
|
40659
41070
|
get RootRerunFromPromptRunID() {
|
|
@@ -43920,6 +44331,41 @@ let MJApplicationEntity = class MJApplicationEntity extends BaseEntity {
|
|
|
43920
44331
|
return await super.InnerLoad(compositeKey, EntityRelationshipsToLoad);
|
|
43921
44332
|
}
|
|
43922
44333
|
/**
|
|
44334
|
+
* MJ: Applications - Delete method override to wrap in transaction since CascadeDeletes is true.
|
|
44335
|
+
* Wrapping in a transaction ensures that all cascade delete operations are handled atomically.
|
|
44336
|
+
* @public
|
|
44337
|
+
* @method
|
|
44338
|
+
* @override
|
|
44339
|
+
* @memberof MJApplicationEntity
|
|
44340
|
+
* @returns {Promise<boolean>} - true if successful, false otherwise
|
|
44341
|
+
*/
|
|
44342
|
+
async Delete(options) {
|
|
44343
|
+
if (Metadata.Provider.ProviderType === ProviderType.Database) { // global-provider-ok: codegen runs offline against a single provider
|
|
44344
|
+
// For database providers, use the transaction methods directly
|
|
44345
|
+
const provider = Metadata.Provider; // global-provider-ok: codegen runs offline against a single provider
|
|
44346
|
+
try {
|
|
44347
|
+
await provider.BeginTransaction();
|
|
44348
|
+
const result = await super.Delete(options);
|
|
44349
|
+
if (result) {
|
|
44350
|
+
await provider.CommitTransaction();
|
|
44351
|
+
return true;
|
|
44352
|
+
}
|
|
44353
|
+
else {
|
|
44354
|
+
await provider.RollbackTransaction();
|
|
44355
|
+
return false;
|
|
44356
|
+
}
|
|
44357
|
+
}
|
|
44358
|
+
catch (error) {
|
|
44359
|
+
await provider.RollbackTransaction();
|
|
44360
|
+
throw error;
|
|
44361
|
+
}
|
|
44362
|
+
}
|
|
44363
|
+
else {
|
|
44364
|
+
// For network providers, cascading deletes are handled server-side
|
|
44365
|
+
return super.Delete(options);
|
|
44366
|
+
}
|
|
44367
|
+
}
|
|
44368
|
+
/**
|
|
43923
44369
|
* * Field Name: ID
|
|
43924
44370
|
* * Display Name: ID
|
|
43925
44371
|
* * SQL Data Type: uniqueidentifier
|
|
@@ -45629,7 +46075,7 @@ let MJArtifactUseEntity = class MJArtifactUseEntity extends BaseEntity {
|
|
|
45629
46075
|
/**
|
|
45630
46076
|
* * Field Name: ArtifactVersion
|
|
45631
46077
|
* * Display Name: Artifact Version
|
|
45632
|
-
* * SQL Data Type:
|
|
46078
|
+
* * SQL Data Type: nvarchar(255)
|
|
45633
46079
|
*/
|
|
45634
46080
|
get ArtifactVersion() {
|
|
45635
46081
|
return this.Get('ArtifactVersion');
|
|
@@ -45775,7 +46221,7 @@ let MJArtifactVersionAttributeEntity = class MJArtifactVersionAttributeEntity ex
|
|
|
45775
46221
|
/**
|
|
45776
46222
|
* * Field Name: ArtifactVersion
|
|
45777
46223
|
* * Display Name: Artifact Version
|
|
45778
|
-
* * SQL Data Type:
|
|
46224
|
+
* * SQL Data Type: nvarchar(255)
|
|
45779
46225
|
*/
|
|
45780
46226
|
get ArtifactVersion() {
|
|
45781
46227
|
return this.Get('ArtifactVersion');
|
|
@@ -46929,7 +47375,7 @@ let MJCollectionArtifactEntity = class MJCollectionArtifactEntity extends BaseEn
|
|
|
46929
47375
|
/**
|
|
46930
47376
|
* * Field Name: ArtifactVersion
|
|
46931
47377
|
* * Display Name: Artifact Version
|
|
46932
|
-
* * SQL Data Type:
|
|
47378
|
+
* * SQL Data Type: nvarchar(255)
|
|
46933
47379
|
*/
|
|
46934
47380
|
get ArtifactVersion() {
|
|
46935
47381
|
return this.Get('ArtifactVersion');
|
|
@@ -54052,7 +54498,7 @@ let MJConversationDetailArtifactEntity = class MJConversationDetailArtifactEntit
|
|
|
54052
54498
|
/**
|
|
54053
54499
|
* * Field Name: ArtifactVersion
|
|
54054
54500
|
* * Display Name: Artifact Version Summary
|
|
54055
|
-
* * SQL Data Type:
|
|
54501
|
+
* * SQL Data Type: nvarchar(255)
|
|
54056
54502
|
*/
|
|
54057
54503
|
get ArtifactVersion() {
|
|
54058
54504
|
return this.Get('ArtifactVersion');
|
|
@@ -54067,7 +54513,7 @@ export { MJConversationDetailArtifactEntity };
|
|
|
54067
54513
|
* * Schema: __mj
|
|
54068
54514
|
* * Base Table: ConversationDetailAttachment
|
|
54069
54515
|
* * Base View: vwConversationDetailAttachments
|
|
54070
|
-
* * @description
|
|
54516
|
+
* * @description DEPRECATED: file uploads now flow through ConversationArtifactVersion so they share storage, identity, versioning, permissions, and the artifact-tool dispatch path. Table, generated entity class, GraphQL types, and stored procedures all remain functional — runtime use produces a console warning per the framework's standard handling of Status='Deprecated'. See packages/AI/Agents/docs/ARTIFACT_TOOLS_GUIDE.md for migration guidance. Originally: Stores attachments (images, videos, audio, documents) for conversation messages.
|
|
54071
54517
|
* * Primary Key: ID
|
|
54072
54518
|
* @extends {BaseEntity}
|
|
54073
54519
|
* @class
|
|
@@ -54345,7 +54791,7 @@ let MJConversationDetailAttachmentEntity = class MJConversationDetailAttachmentE
|
|
|
54345
54791
|
/**
|
|
54346
54792
|
* * Field Name: ArtifactVersion
|
|
54347
54793
|
* * Display Name: Artifact Version Record
|
|
54348
|
-
* * SQL Data Type:
|
|
54794
|
+
* * SQL Data Type: nvarchar(255)
|
|
54349
54795
|
*/
|
|
54350
54796
|
get ArtifactVersion() {
|
|
54351
54797
|
return this.Get('ArtifactVersion');
|
|
@@ -55070,6 +55516,49 @@ let MJConversationEntity = class MJConversationEntity extends BaseEntity {
|
|
|
55070
55516
|
}
|
|
55071
55517
|
}
|
|
55072
55518
|
/**
|
|
55519
|
+
* Validate() method override for MJ: Conversations entity. This is an auto-generated method that invokes the generated validators for this entity for the following fields:
|
|
55520
|
+
* * Table-Level: Ensures that records scoped as 'Global' do not have an associated Application ID, while records scoped to 'Application' or 'Both' must have a valid Application ID assigned.
|
|
55521
|
+
* * Table-Level: Both the linked entity and the linked record must be provided together, or both must be left empty, to ensure that a reference to an external record is complete.
|
|
55522
|
+
* @public
|
|
55523
|
+
* @method
|
|
55524
|
+
* @override
|
|
55525
|
+
*/
|
|
55526
|
+
Validate() {
|
|
55527
|
+
const result = super.Validate();
|
|
55528
|
+
this.ValidateApplicationScopeAndIDConsistency(result);
|
|
55529
|
+
this.ValidateLinkedEntityAndRecordCoexistence(result);
|
|
55530
|
+
result.Success = result.Success && (result.Errors.length === 0);
|
|
55531
|
+
return result;
|
|
55532
|
+
}
|
|
55533
|
+
/**
|
|
55534
|
+
* Ensures that records scoped as 'Global' do not have an associated Application ID, while records scoped to 'Application' or 'Both' must have a valid Application ID assigned.
|
|
55535
|
+
* @param result - the ValidationResult object to add any errors or warnings to
|
|
55536
|
+
* @public
|
|
55537
|
+
* @method
|
|
55538
|
+
*/
|
|
55539
|
+
ValidateApplicationScopeAndIDConsistency(result) {
|
|
55540
|
+
// If the scope is Global, ApplicationID must be null
|
|
55541
|
+
if (this.ApplicationScope === 'Global' && this.ApplicationID != null) {
|
|
55542
|
+
result.Errors.push(new ValidationErrorInfo("ApplicationID", "Application ID must be empty when the application scope is set to Global.", this.ApplicationID, ValidationErrorType.Failure));
|
|
55543
|
+
}
|
|
55544
|
+
// If the scope is Application or Both, ApplicationID must be provided
|
|
55545
|
+
if ((this.ApplicationScope === 'Application' || this.ApplicationScope === 'Both') && this.ApplicationID == null) {
|
|
55546
|
+
result.Errors.push(new ValidationErrorInfo("ApplicationID", "An Application ID is required when the application scope is set to Application or Both.", this.ApplicationID, ValidationErrorType.Failure));
|
|
55547
|
+
}
|
|
55548
|
+
}
|
|
55549
|
+
/**
|
|
55550
|
+
* Both the linked entity and the linked record must be provided together, or both must be left empty, to ensure that a reference to an external record is complete.
|
|
55551
|
+
* @param result - the ValidationResult object to add any errors or warnings to
|
|
55552
|
+
* @public
|
|
55553
|
+
* @method
|
|
55554
|
+
*/
|
|
55555
|
+
ValidateLinkedEntityAndRecordCoexistence(result) {
|
|
55556
|
+
// The constraint ensures that LinkedEntityID and LinkedRecordID are either both null or both populated
|
|
55557
|
+
if ((this.LinkedEntityID == null && this.LinkedRecordID != null) || (this.LinkedEntityID != null && this.LinkedRecordID == null)) {
|
|
55558
|
+
result.Errors.push(new ValidationErrorInfo("LinkedEntityID", "Both Linked Entity and Linked Record must be provided together, or both must be empty.", this.LinkedEntityID, ValidationErrorType.Failure));
|
|
55559
|
+
}
|
|
55560
|
+
}
|
|
55561
|
+
/**
|
|
55073
55562
|
* * Field Name: ID
|
|
55074
55563
|
* * Display Name: ID
|
|
55075
55564
|
* * SQL Data Type: uniqueidentifier
|
|
@@ -55158,6 +55647,7 @@ let MJConversationEntity = class MJConversationEntity extends BaseEntity {
|
|
|
55158
55647
|
* * Display Name: Linked Entity
|
|
55159
55648
|
* * SQL Data Type: uniqueidentifier
|
|
55160
55649
|
* * Related Entity/Foreign Key: MJ: Entities (vwEntities.ID)
|
|
55650
|
+
* * Description: Generic 'what is this conversation about?' pointer. Names the Entity whose record this conversation references (e.g. MJ: Components when the conversation was started in the Form Builder cockpit about a specific form). Paired with LinkedRecordID via the CK_Conversation_LinkBinding cross-column CHECK — both NULL or both populated. Surfaces use this to filter their conversation list to entries about the currently-loaded record (e.g. 'show prior conversations about THIS form'). Reusable beyond Form Builder by any future dashboard / record-context surface that wants the same UX without further schema work.
|
|
55161
55651
|
*/
|
|
55162
55652
|
get LinkedEntityID() {
|
|
55163
55653
|
return this.Get('LinkedEntityID');
|
|
@@ -55169,7 +55659,7 @@ let MJConversationEntity = class MJConversationEntity extends BaseEntity {
|
|
|
55169
55659
|
* * Field Name: LinkedRecordID
|
|
55170
55660
|
* * Display Name: Linked Record ID
|
|
55171
55661
|
* * SQL Data Type: nvarchar(500)
|
|
55172
|
-
* * Description:
|
|
55662
|
+
* * Description: The primary key of the record this conversation is about, serialized as a string so any entity type can be referenced regardless of its PK shape (UUID, int, composite). Used together with LinkedEntityID — see CK_Conversation_LinkBinding. Wide enough (NVARCHAR(500) in the baseline schema) to handle chunky composite keys. Surfaces query by (LinkedEntityID, LinkedRecordID) — or by LinkedRecordID IN (...) when a lineage of records shares conversation context (e.g. multiple Component versions of the same form lineage).
|
|
55173
55663
|
*/
|
|
55174
55664
|
get LinkedRecordID() {
|
|
55175
55665
|
return this.Get('LinkedRecordID');
|
|
@@ -55276,6 +55766,62 @@ let MJConversationEntity = class MJConversationEntity extends BaseEntity {
|
|
|
55276
55766
|
this.Set('TestRunID', value);
|
|
55277
55767
|
}
|
|
55278
55768
|
/**
|
|
55769
|
+
* * Field Name: ApplicationScope
|
|
55770
|
+
* * Display Name: Application Scope
|
|
55771
|
+
* * SQL Data Type: nvarchar(20)
|
|
55772
|
+
* * Default Value: Global
|
|
55773
|
+
* * Value List Type: List
|
|
55774
|
+
* * Possible Values
|
|
55775
|
+
* * Application
|
|
55776
|
+
* * Both
|
|
55777
|
+
* * Global
|
|
55778
|
+
* * Description: Controls where this conversation surfaces in the UI. Global = appears in the main Chat app (no application binding). Application = scoped to a specific Application's embedded chat surface (e.g. the Form Builder cockpit); hidden from the main chat list by default. Both = explicitly promoted to appear in BOTH the main chat list and the bound Application's embedded surface. Defaults to Global so pre-existing conversations stay visible in main chat. Paired with ApplicationID via a cross-column CHECK constraint: Global => ApplicationID IS NULL; Application or Both => ApplicationID IS NOT NULL.
|
|
55779
|
+
*/
|
|
55780
|
+
get ApplicationScope() {
|
|
55781
|
+
return this.Get('ApplicationScope');
|
|
55782
|
+
}
|
|
55783
|
+
set ApplicationScope(value) {
|
|
55784
|
+
this.Set('ApplicationScope', value);
|
|
55785
|
+
}
|
|
55786
|
+
/**
|
|
55787
|
+
* * Field Name: ApplicationID
|
|
55788
|
+
* * Display Name: Application
|
|
55789
|
+
* * SQL Data Type: uniqueidentifier
|
|
55790
|
+
* * Related Entity/Foreign Key: MJ: Applications (vwApplications.ID)
|
|
55791
|
+
* * Description: Optional Application this conversation is bound to. Required when ApplicationScope is 'Application' or 'Both'; must be NULL when ApplicationScope is 'Global'. Enforced by the CK_Conversation_ScopeAppBinding cross-column CHECK. Used by embedded chat surfaces (e.g. the Form Builder cockpit) to filter their conversation list to just their own application's conversations.
|
|
55792
|
+
*/
|
|
55793
|
+
get ApplicationID() {
|
|
55794
|
+
return this.Get('ApplicationID');
|
|
55795
|
+
}
|
|
55796
|
+
set ApplicationID(value) {
|
|
55797
|
+
this.Set('ApplicationID', value);
|
|
55798
|
+
}
|
|
55799
|
+
/**
|
|
55800
|
+
* * Field Name: DefaultAgentID
|
|
55801
|
+
* * Display Name: Default Agent
|
|
55802
|
+
* * SQL Data Type: uniqueidentifier
|
|
55803
|
+
* * Related Entity/Foreign Key: MJ: AI Agents (vwAIAgents.ID)
|
|
55804
|
+
* * Description: Optional per-conversation default AI agent. When set, the message router targets this agent for non-mention, non-continuity messages instead of falling through to the embedder-supplied default (e.g. Form Builder) or to Sage. Lets a user pin a conversation to a specific specialist agent (e.g. Research Agent) so Sage is never invoked for that thread. Routing precedence: @mention > continuity (last responder) > Conversation.DefaultAgentID > embedder's defaultAgentId input > Sage fallback.
|
|
55805
|
+
*/
|
|
55806
|
+
get DefaultAgentID() {
|
|
55807
|
+
return this.Get('DefaultAgentID');
|
|
55808
|
+
}
|
|
55809
|
+
set DefaultAgentID(value) {
|
|
55810
|
+
this.Set('DefaultAgentID', value);
|
|
55811
|
+
}
|
|
55812
|
+
/**
|
|
55813
|
+
* * Field Name: AdditionalData
|
|
55814
|
+
* * Display Name: Additional Data
|
|
55815
|
+
* * SQL Data Type: nvarchar(MAX)
|
|
55816
|
+
* * Description: Free-form JSON extensibility column. Apps that want to attach conversation-scoped metadata (UI state, draft notes, custom analytics tags, etc.) can stuff it here without a schema change. **Namespace your keys** to avoid collisions across apps — store e.g. {"form-builder.lastPreviewRecordId":"...","my-app.fooFlag":true} rather than top-level lastPreviewRecordId. Core MJ code paths do NOT read this column; it's purely for downstream apps. NVARCHAR(MAX) so callers can store arbitrarily large blobs, but treat that as a smell — heavy data belongs in a real entity, not a JSON dump.
|
|
55817
|
+
*/
|
|
55818
|
+
get AdditionalData() {
|
|
55819
|
+
return this.Get('AdditionalData');
|
|
55820
|
+
}
|
|
55821
|
+
set AdditionalData(value) {
|
|
55822
|
+
this.Set('AdditionalData', value);
|
|
55823
|
+
}
|
|
55824
|
+
/**
|
|
55279
55825
|
* * Field Name: User
|
|
55280
55826
|
* * Display Name: User Name
|
|
55281
55827
|
* * SQL Data Type: nvarchar(100)
|
|
@@ -55285,7 +55831,7 @@ let MJConversationEntity = class MJConversationEntity extends BaseEntity {
|
|
|
55285
55831
|
}
|
|
55286
55832
|
/**
|
|
55287
55833
|
* * Field Name: LinkedEntity
|
|
55288
|
-
* * Display Name: Linked Entity
|
|
55834
|
+
* * Display Name: Linked Entity Name
|
|
55289
55835
|
* * SQL Data Type: nvarchar(255)
|
|
55290
55836
|
*/
|
|
55291
55837
|
get LinkedEntity() {
|
|
@@ -55323,6 +55869,22 @@ let MJConversationEntity = class MJConversationEntity extends BaseEntity {
|
|
|
55323
55869
|
get TestRun() {
|
|
55324
55870
|
return this.Get('TestRun');
|
|
55325
55871
|
}
|
|
55872
|
+
/**
|
|
55873
|
+
* * Field Name: Application
|
|
55874
|
+
* * Display Name: Application Name
|
|
55875
|
+
* * SQL Data Type: nvarchar(100)
|
|
55876
|
+
*/
|
|
55877
|
+
get Application() {
|
|
55878
|
+
return this.Get('Application');
|
|
55879
|
+
}
|
|
55880
|
+
/**
|
|
55881
|
+
* * Field Name: DefaultAgent
|
|
55882
|
+
* * Display Name: Default Agent Name
|
|
55883
|
+
* * SQL Data Type: nvarchar(255)
|
|
55884
|
+
*/
|
|
55885
|
+
get DefaultAgent() {
|
|
55886
|
+
return this.Get('DefaultAgent');
|
|
55887
|
+
}
|
|
55326
55888
|
};
|
|
55327
55889
|
MJConversationEntity = __decorate([
|
|
55328
55890
|
RegisterClass(BaseEntity, 'MJ: Conversations')
|
|
@@ -62777,7 +63339,10 @@ let MJEntityFieldEntity = class MJEntityFieldEntity extends BaseEntity {
|
|
|
62777
63339
|
* * GeoLongitude
|
|
62778
63340
|
* * GeoPostalCode
|
|
62779
63341
|
* * GeoStateProvince
|
|
63342
|
+
* * HTML
|
|
63343
|
+
* * Icon
|
|
62780
63344
|
* * MSTeams
|
|
63345
|
+
* * Markdown
|
|
62781
63346
|
* * Other
|
|
62782
63347
|
* * SIP
|
|
62783
63348
|
* * SMS
|
|
@@ -62786,7 +63351,7 @@ let MJEntityFieldEntity = class MJEntityFieldEntity extends BaseEntity {
|
|
|
62786
63351
|
* * URL
|
|
62787
63352
|
* * WhatsApp
|
|
62788
63353
|
* * ZoomMtg
|
|
62789
|
-
* * Description: Defines extended behaviors for a field such as
|
|
63354
|
+
* * Description: Defines extended behaviors for a field such as Email, Web URLs, Code, Markdown, HTML, and Icon. When set to 'Icon', the field's values are treated as icon CSS classes (e.g. Font Awesome) for per-row display in the UI.
|
|
62790
63355
|
*/
|
|
62791
63356
|
get ExtendedType() {
|
|
62792
63357
|
return this.Get('ExtendedType');
|
|
@@ -63494,6 +64059,274 @@ MJEntityFieldEntity = __decorate([
|
|
|
63494
64059
|
RegisterClass(BaseEntity, 'MJ: Entity Fields')
|
|
63495
64060
|
], MJEntityFieldEntity);
|
|
63496
64061
|
export { MJEntityFieldEntity };
|
|
64062
|
+
/**
|
|
64063
|
+
* MJ: Entity Form Overrides - strongly typed entity sub-class
|
|
64064
|
+
* * Schema: __mj
|
|
64065
|
+
* * Base Table: EntityFormOverride
|
|
64066
|
+
* * Base View: vwEntityFormOverrides
|
|
64067
|
+
* * @description Points an Entity at a Component to serve as its form at runtime. Scoped to User > Role > Global with priority-based resolution. When present and Active, takes precedence over the entity's @RegisterClass-registered or CodeGen-generated Angular form.
|
|
64068
|
+
* * Primary Key: ID
|
|
64069
|
+
* @extends {BaseEntity}
|
|
64070
|
+
* @class
|
|
64071
|
+
* @public
|
|
64072
|
+
*/
|
|
64073
|
+
let MJEntityFormOverrideEntity = class MJEntityFormOverrideEntity extends BaseEntity {
|
|
64074
|
+
/**
|
|
64075
|
+
* Loads the MJ: Entity Form Overrides record from the database
|
|
64076
|
+
* @param ID: string - primary key value to load the MJ: Entity Form Overrides record.
|
|
64077
|
+
* @param EntityRelationshipsToLoad - (optional) the relationships to load
|
|
64078
|
+
* @returns {Promise<boolean>} - true if successful, false otherwise
|
|
64079
|
+
* @public
|
|
64080
|
+
* @async
|
|
64081
|
+
* @memberof MJEntityFormOverrideEntity
|
|
64082
|
+
* @method
|
|
64083
|
+
* @override
|
|
64084
|
+
*/
|
|
64085
|
+
async Load(ID, EntityRelationshipsToLoad) {
|
|
64086
|
+
const compositeKey = new CompositeKey();
|
|
64087
|
+
compositeKey.KeyValuePairs.push({ FieldName: 'ID', Value: ID });
|
|
64088
|
+
return await super.InnerLoad(compositeKey, EntityRelationshipsToLoad);
|
|
64089
|
+
}
|
|
64090
|
+
/**
|
|
64091
|
+
* Validate() method override for MJ: Entity Form Overrides entity. This is an auto-generated method that invokes the generated validators for this entity for the following fields:
|
|
64092
|
+
* * Table-Level: Ensures that the correct identifier is provided based on the selected scope: 'User' requires a User ID without a Role, 'Role' requires a Role ID without a User, and 'Global' requires both to be empty. This prevents data inconsistency by ensuring records are correctly assigned to exactly one target type.
|
|
64093
|
+
* @public
|
|
64094
|
+
* @method
|
|
64095
|
+
* @override
|
|
64096
|
+
*/
|
|
64097
|
+
Validate() {
|
|
64098
|
+
const result = super.Validate();
|
|
64099
|
+
this.ValidateScopeAndIdentifierConsistency(result);
|
|
64100
|
+
result.Success = result.Success && (result.Errors.length === 0);
|
|
64101
|
+
return result;
|
|
64102
|
+
}
|
|
64103
|
+
/**
|
|
64104
|
+
* Ensures that the correct identifier is provided based on the selected scope: 'User' requires a User ID without a Role, 'Role' requires a Role ID without a User, and 'Global' requires both to be empty. This prevents data inconsistency by ensuring records are correctly assigned to exactly one target type.
|
|
64105
|
+
* @param result - the ValidationResult object to add any errors or warnings to
|
|
64106
|
+
* @public
|
|
64107
|
+
* @method
|
|
64108
|
+
*/
|
|
64109
|
+
ValidateScopeAndIdentifierConsistency(result) {
|
|
64110
|
+
if (this.Scope === 'User') {
|
|
64111
|
+
if (this.UserID == null || this.RoleID != null) {
|
|
64112
|
+
result.Errors.push(new ValidationErrorInfo("UserID", "When the scope is set to 'User', a User must be specified and the Role must be left empty.", this.UserID, ValidationErrorType.Failure));
|
|
64113
|
+
}
|
|
64114
|
+
}
|
|
64115
|
+
else if (this.Scope === 'Role') {
|
|
64116
|
+
if (this.RoleID == null || this.UserID != null) {
|
|
64117
|
+
result.Errors.push(new ValidationErrorInfo("RoleID", "When the scope is set to 'Role', a Role must be specified and the User must be left empty.", this.RoleID, ValidationErrorType.Failure));
|
|
64118
|
+
}
|
|
64119
|
+
}
|
|
64120
|
+
else if (this.Scope === 'Global') {
|
|
64121
|
+
if (this.UserID != null || this.RoleID != null) {
|
|
64122
|
+
result.Errors.push(new ValidationErrorInfo("Scope", "When the scope is set to 'Global', both the User and Role fields must be empty.", this.Scope, ValidationErrorType.Failure));
|
|
64123
|
+
}
|
|
64124
|
+
}
|
|
64125
|
+
}
|
|
64126
|
+
/**
|
|
64127
|
+
* * Field Name: ID
|
|
64128
|
+
* * Display Name: ID
|
|
64129
|
+
* * SQL Data Type: uniqueidentifier
|
|
64130
|
+
* * Default Value: newsequentialid()
|
|
64131
|
+
*/
|
|
64132
|
+
get ID() {
|
|
64133
|
+
return this.Get('ID');
|
|
64134
|
+
}
|
|
64135
|
+
set ID(value) {
|
|
64136
|
+
this.Set('ID', value);
|
|
64137
|
+
}
|
|
64138
|
+
/**
|
|
64139
|
+
* * Field Name: EntityID
|
|
64140
|
+
* * Display Name: Entity
|
|
64141
|
+
* * SQL Data Type: uniqueidentifier
|
|
64142
|
+
* * Related Entity/Foreign Key: MJ: Entities (vwEntities.ID)
|
|
64143
|
+
* * Description: Foreign key to Entity — which entity this override is for.
|
|
64144
|
+
*/
|
|
64145
|
+
get EntityID() {
|
|
64146
|
+
return this.Get('EntityID');
|
|
64147
|
+
}
|
|
64148
|
+
set EntityID(value) {
|
|
64149
|
+
this.Set('EntityID', value);
|
|
64150
|
+
}
|
|
64151
|
+
/**
|
|
64152
|
+
* * Field Name: ComponentID
|
|
64153
|
+
* * Display Name: Component
|
|
64154
|
+
* * SQL Data Type: uniqueidentifier
|
|
64155
|
+
* * Related Entity/Foreign Key: MJ: Components (vwComponents.ID)
|
|
64156
|
+
* * Description: Foreign key to Component — the component that renders the form. Must declare componentRole='form' and implement the FormHostProps contract.
|
|
64157
|
+
*/
|
|
64158
|
+
get ComponentID() {
|
|
64159
|
+
return this.Get('ComponentID');
|
|
64160
|
+
}
|
|
64161
|
+
set ComponentID(value) {
|
|
64162
|
+
this.Set('ComponentID', value);
|
|
64163
|
+
}
|
|
64164
|
+
/**
|
|
64165
|
+
* * Field Name: Name
|
|
64166
|
+
* * Display Name: Name
|
|
64167
|
+
* * SQL Data Type: nvarchar(255)
|
|
64168
|
+
* * Description: Human-readable label for this override (e.g., "CSR Customer Form", "Compact Mobile Variant").
|
|
64169
|
+
*/
|
|
64170
|
+
get Name() {
|
|
64171
|
+
return this.Get('Name');
|
|
64172
|
+
}
|
|
64173
|
+
set Name(value) {
|
|
64174
|
+
this.Set('Name', value);
|
|
64175
|
+
}
|
|
64176
|
+
/**
|
|
64177
|
+
* * Field Name: Description
|
|
64178
|
+
* * Display Name: Description
|
|
64179
|
+
* * SQL Data Type: nvarchar(MAX)
|
|
64180
|
+
* * Description: Optional longer description of what this override is for and when it applies.
|
|
64181
|
+
*/
|
|
64182
|
+
get Description() {
|
|
64183
|
+
return this.Get('Description');
|
|
64184
|
+
}
|
|
64185
|
+
set Description(value) {
|
|
64186
|
+
this.Set('Description', value);
|
|
64187
|
+
}
|
|
64188
|
+
/**
|
|
64189
|
+
* * Field Name: Scope
|
|
64190
|
+
* * Display Name: Scope
|
|
64191
|
+
* * SQL Data Type: nvarchar(20)
|
|
64192
|
+
* * Default Value: Global
|
|
64193
|
+
* * Value List Type: List
|
|
64194
|
+
* * Possible Values
|
|
64195
|
+
* * Global
|
|
64196
|
+
* * Role
|
|
64197
|
+
* * User
|
|
64198
|
+
* * Description: Resolution tier: User (requires UserID), Role (requires RoleID), or Global. The resolver evaluates in that order — a User row beats a Role row beats a Global row.
|
|
64199
|
+
*/
|
|
64200
|
+
get Scope() {
|
|
64201
|
+
return this.Get('Scope');
|
|
64202
|
+
}
|
|
64203
|
+
set Scope(value) {
|
|
64204
|
+
this.Set('Scope', value);
|
|
64205
|
+
}
|
|
64206
|
+
/**
|
|
64207
|
+
* * Field Name: UserID
|
|
64208
|
+
* * Display Name: User
|
|
64209
|
+
* * SQL Data Type: uniqueidentifier
|
|
64210
|
+
* * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)
|
|
64211
|
+
* * Description: Required when Scope='User'. The single user this override applies to.
|
|
64212
|
+
*/
|
|
64213
|
+
get UserID() {
|
|
64214
|
+
return this.Get('UserID');
|
|
64215
|
+
}
|
|
64216
|
+
set UserID(value) {
|
|
64217
|
+
this.Set('UserID', value);
|
|
64218
|
+
}
|
|
64219
|
+
/**
|
|
64220
|
+
* * Field Name: RoleID
|
|
64221
|
+
* * Display Name: Role
|
|
64222
|
+
* * SQL Data Type: uniqueidentifier
|
|
64223
|
+
* * Related Entity/Foreign Key: MJ: Roles (vwRoles.ID)
|
|
64224
|
+
* * Description: Required when Scope='Role'. The role whose members see this override.
|
|
64225
|
+
*/
|
|
64226
|
+
get RoleID() {
|
|
64227
|
+
return this.Get('RoleID');
|
|
64228
|
+
}
|
|
64229
|
+
set RoleID(value) {
|
|
64230
|
+
this.Set('RoleID', value);
|
|
64231
|
+
}
|
|
64232
|
+
/**
|
|
64233
|
+
* * Field Name: Priority
|
|
64234
|
+
* * Display Name: Priority
|
|
64235
|
+
* * SQL Data Type: int
|
|
64236
|
+
* * Default Value: 0
|
|
64237
|
+
* * Description: Higher value wins within a scope tier. Ties broken by __mj_CreatedAt DESC. No IsDefault — Priority is the only mechanism.
|
|
64238
|
+
*/
|
|
64239
|
+
get Priority() {
|
|
64240
|
+
return this.Get('Priority');
|
|
64241
|
+
}
|
|
64242
|
+
set Priority(value) {
|
|
64243
|
+
this.Set('Priority', value);
|
|
64244
|
+
}
|
|
64245
|
+
/**
|
|
64246
|
+
* * Field Name: Status
|
|
64247
|
+
* * Display Name: Status
|
|
64248
|
+
* * SQL Data Type: nvarchar(20)
|
|
64249
|
+
* * Default Value: Active
|
|
64250
|
+
* * Value List Type: List
|
|
64251
|
+
* * Possible Values
|
|
64252
|
+
* * Active
|
|
64253
|
+
* * Inactive
|
|
64254
|
+
* * Pending
|
|
64255
|
+
* * Description: Active = eligible for resolution. Inactive = ignored. Pending = AI-authored, awaiting human activation (resolver treats as Inactive).
|
|
64256
|
+
*/
|
|
64257
|
+
get Status() {
|
|
64258
|
+
return this.Get('Status');
|
|
64259
|
+
}
|
|
64260
|
+
set Status(value) {
|
|
64261
|
+
this.Set('Status', value);
|
|
64262
|
+
}
|
|
64263
|
+
/**
|
|
64264
|
+
* * Field Name: Notes
|
|
64265
|
+
* * Display Name: Notes
|
|
64266
|
+
* * SQL Data Type: nvarchar(MAX)
|
|
64267
|
+
* * Description: Optional free-form commentary about this override — e.g. who authored it, why it exists, what should change before it goes Global, links to related discussions. Does not affect resolution.
|
|
64268
|
+
*/
|
|
64269
|
+
get Notes() {
|
|
64270
|
+
return this.Get('Notes');
|
|
64271
|
+
}
|
|
64272
|
+
set Notes(value) {
|
|
64273
|
+
this.Set('Notes', value);
|
|
64274
|
+
}
|
|
64275
|
+
/**
|
|
64276
|
+
* * Field Name: __mj_CreatedAt
|
|
64277
|
+
* * Display Name: Created At
|
|
64278
|
+
* * SQL Data Type: datetimeoffset
|
|
64279
|
+
* * Default Value: getutcdate()
|
|
64280
|
+
*/
|
|
64281
|
+
get __mj_CreatedAt() {
|
|
64282
|
+
return this.Get('__mj_CreatedAt');
|
|
64283
|
+
}
|
|
64284
|
+
/**
|
|
64285
|
+
* * Field Name: __mj_UpdatedAt
|
|
64286
|
+
* * Display Name: Updated At
|
|
64287
|
+
* * SQL Data Type: datetimeoffset
|
|
64288
|
+
* * Default Value: getutcdate()
|
|
64289
|
+
*/
|
|
64290
|
+
get __mj_UpdatedAt() {
|
|
64291
|
+
return this.Get('__mj_UpdatedAt');
|
|
64292
|
+
}
|
|
64293
|
+
/**
|
|
64294
|
+
* * Field Name: Entity
|
|
64295
|
+
* * Display Name: Entity Name
|
|
64296
|
+
* * SQL Data Type: nvarchar(255)
|
|
64297
|
+
*/
|
|
64298
|
+
get Entity() {
|
|
64299
|
+
return this.Get('Entity');
|
|
64300
|
+
}
|
|
64301
|
+
/**
|
|
64302
|
+
* * Field Name: Component
|
|
64303
|
+
* * Display Name: Component Name
|
|
64304
|
+
* * SQL Data Type: nvarchar(500)
|
|
64305
|
+
*/
|
|
64306
|
+
get Component() {
|
|
64307
|
+
return this.Get('Component');
|
|
64308
|
+
}
|
|
64309
|
+
/**
|
|
64310
|
+
* * Field Name: User
|
|
64311
|
+
* * Display Name: User Name
|
|
64312
|
+
* * SQL Data Type: nvarchar(100)
|
|
64313
|
+
*/
|
|
64314
|
+
get User() {
|
|
64315
|
+
return this.Get('User');
|
|
64316
|
+
}
|
|
64317
|
+
/**
|
|
64318
|
+
* * Field Name: Role
|
|
64319
|
+
* * Display Name: Role Name
|
|
64320
|
+
* * SQL Data Type: nvarchar(50)
|
|
64321
|
+
*/
|
|
64322
|
+
get Role() {
|
|
64323
|
+
return this.Get('Role');
|
|
64324
|
+
}
|
|
64325
|
+
};
|
|
64326
|
+
MJEntityFormOverrideEntity = __decorate([
|
|
64327
|
+
RegisterClass(BaseEntity, 'MJ: Entity Form Overrides')
|
|
64328
|
+
], MJEntityFormOverrideEntity);
|
|
64329
|
+
export { MJEntityFormOverrideEntity };
|
|
63497
64330
|
/**
|
|
63498
64331
|
* MJ: Entity Organic Key Related Entities - strongly typed entity sub-class
|
|
63499
64332
|
* * Schema: __mj
|
|
@@ -66975,7 +67808,7 @@ let MJIntegrationObjectFieldEntity = class MJIntegrationObjectFieldEntity extend
|
|
|
66975
67808
|
}
|
|
66976
67809
|
/**
|
|
66977
67810
|
* * Field Name: IntegrationObjectID
|
|
66978
|
-
* * Display Name: Integration Object
|
|
67811
|
+
* * Display Name: Integration Object ID
|
|
66979
67812
|
* * SQL Data Type: uniqueidentifier
|
|
66980
67813
|
* * Related Entity/Foreign Key: MJ: Integration Objects (vwIntegrationObjects.ID)
|
|
66981
67814
|
* * Description: Foreign key to the IntegrationObject this field belongs to
|
|
@@ -67122,7 +67955,7 @@ let MJIntegrationObjectFieldEntity = class MJIntegrationObjectFieldEntity extend
|
|
|
67122
67955
|
}
|
|
67123
67956
|
/**
|
|
67124
67957
|
* * Field Name: IsUniqueKey
|
|
67125
|
-
* * Display Name: Is Unique
|
|
67958
|
+
* * Display Name: Is Unique
|
|
67126
67959
|
* * SQL Data Type: bit
|
|
67127
67960
|
* * Default Value: 0
|
|
67128
67961
|
* * Description: Whether values must be unique across all records
|
|
@@ -67259,8 +68092,26 @@ let MJIntegrationObjectFieldEntity = class MJIntegrationObjectFieldEntity extend
|
|
|
67259
68092
|
this.Set('IsCustom', value);
|
|
67260
68093
|
}
|
|
67261
68094
|
/**
|
|
68095
|
+
* * Field Name: MetadataSource
|
|
68096
|
+
* * Display Name: Metadata Source
|
|
68097
|
+
* * SQL Data Type: nvarchar(20)
|
|
68098
|
+
* * Default Value: Declared
|
|
68099
|
+
* * Value List Type: List
|
|
68100
|
+
* * Possible Values
|
|
68101
|
+
* * Custom
|
|
68102
|
+
* * Declared
|
|
68103
|
+
* * Discovered
|
|
68104
|
+
* * Description: Provenance of this IntegrationObjectField row: Declared (from static research/docs), Discovered (from runtime API introspection), Custom (customer-defined custom field, e.g., HubSpot custom property on standard object). Drives merge precedence — discovered/runtime wins for type/constraints; declared wins for description/label/sequence/category.
|
|
68105
|
+
*/
|
|
68106
|
+
get MetadataSource() {
|
|
68107
|
+
return this.Get('MetadataSource');
|
|
68108
|
+
}
|
|
68109
|
+
set MetadataSource(value) {
|
|
68110
|
+
this.Set('MetadataSource', value);
|
|
68111
|
+
}
|
|
68112
|
+
/**
|
|
67262
68113
|
* * Field Name: IntegrationObject
|
|
67263
|
-
* * Display Name: Integration Object
|
|
68114
|
+
* * Display Name: Integration Object
|
|
67264
68115
|
* * SQL Data Type: nvarchar(255)
|
|
67265
68116
|
*/
|
|
67266
68117
|
get IntegrationObject() {
|
|
@@ -67268,7 +68119,7 @@ let MJIntegrationObjectFieldEntity = class MJIntegrationObjectFieldEntity extend
|
|
|
67268
68119
|
}
|
|
67269
68120
|
/**
|
|
67270
68121
|
* * Field Name: RelatedIntegrationObject
|
|
67271
|
-
* * Display Name: Related Object Name
|
|
68122
|
+
* * Display Name: Related Integration Object Name
|
|
67272
68123
|
* * SQL Data Type: nvarchar(255)
|
|
67273
68124
|
*/
|
|
67274
68125
|
get RelatedIntegrationObject() {
|
|
@@ -67322,7 +68173,7 @@ let MJIntegrationObjectEntity = class MJIntegrationObjectEntity extends BaseEnti
|
|
|
67322
68173
|
}
|
|
67323
68174
|
/**
|
|
67324
68175
|
* * Field Name: IntegrationID
|
|
67325
|
-
* * Display Name: Integration
|
|
68176
|
+
* * Display Name: Integration
|
|
67326
68177
|
* * SQL Data Type: uniqueidentifier
|
|
67327
68178
|
* * Related Entity/Foreign Key: MJ: Integrations (vwIntegrations.ID)
|
|
67328
68179
|
* * Description: Foreign key to the Integration that owns this object
|
|
@@ -67601,8 +68452,210 @@ let MJIntegrationObjectEntity = class MJIntegrationObjectEntity extends BaseEnti
|
|
|
67601
68452
|
this.Set('IsCustom', value);
|
|
67602
68453
|
}
|
|
67603
68454
|
/**
|
|
68455
|
+
* * Field Name: CreateAPIPath
|
|
68456
|
+
* * Display Name: Create API Path
|
|
68457
|
+
* * SQL Data Type: nvarchar(MAX)
|
|
68458
|
+
* * Description: HTTP path template for create operations. Generic CRUD in BaseRESTIntegrationConnector substitutes parent IDs into {var} placeholders. NULL means create not supported via metadata-driven path.
|
|
68459
|
+
*/
|
|
68460
|
+
get CreateAPIPath() {
|
|
68461
|
+
return this.Get('CreateAPIPath');
|
|
68462
|
+
}
|
|
68463
|
+
set CreateAPIPath(value) {
|
|
68464
|
+
this.Set('CreateAPIPath', value);
|
|
68465
|
+
}
|
|
68466
|
+
/**
|
|
68467
|
+
* * Field Name: CreateMethod
|
|
68468
|
+
* * Display Name: Create Method
|
|
68469
|
+
* * SQL Data Type: nvarchar(20)
|
|
68470
|
+
* * Description: HTTP method for create (typically POST). NULL means create not supported via metadata-driven path.
|
|
68471
|
+
*/
|
|
68472
|
+
get CreateMethod() {
|
|
68473
|
+
return this.Get('CreateMethod');
|
|
68474
|
+
}
|
|
68475
|
+
set CreateMethod(value) {
|
|
68476
|
+
this.Set('CreateMethod', value);
|
|
68477
|
+
}
|
|
68478
|
+
/**
|
|
68479
|
+
* * Field Name: CreateBodyShape
|
|
68480
|
+
* * Display Name: Create Body Shape
|
|
68481
|
+
* * SQL Data Type: nvarchar(50)
|
|
68482
|
+
* * Value List Type: List
|
|
68483
|
+
* * Possible Values
|
|
68484
|
+
* * flat
|
|
68485
|
+
* * literal
|
|
68486
|
+
* * wrapped
|
|
68487
|
+
* * Description: Request body shape for create: flat (top-level fields), wrapped (under CreateBodyKey), or literal (connector overrides CreateRecord and supplies own body).
|
|
68488
|
+
*/
|
|
68489
|
+
get CreateBodyShape() {
|
|
68490
|
+
return this.Get('CreateBodyShape');
|
|
68491
|
+
}
|
|
68492
|
+
set CreateBodyShape(value) {
|
|
68493
|
+
this.Set('CreateBodyShape', value);
|
|
68494
|
+
}
|
|
68495
|
+
/**
|
|
68496
|
+
* * Field Name: CreateBodyKey
|
|
68497
|
+
* * Display Name: Create Body Key
|
|
68498
|
+
* * SQL Data Type: nvarchar(100)
|
|
68499
|
+
* * Description: Wrapper key for create body when CreateBodyShape=wrapped. Example: 'member' for YourMembership which wraps body as {member:{...}}.
|
|
68500
|
+
*/
|
|
68501
|
+
get CreateBodyKey() {
|
|
68502
|
+
return this.Get('CreateBodyKey');
|
|
68503
|
+
}
|
|
68504
|
+
set CreateBodyKey(value) {
|
|
68505
|
+
this.Set('CreateBodyKey', value);
|
|
68506
|
+
}
|
|
68507
|
+
/**
|
|
68508
|
+
* * Field Name: CreateIDLocation
|
|
68509
|
+
* * Display Name: Create ID Location
|
|
68510
|
+
* * SQL Data Type: nvarchar(20)
|
|
68511
|
+
* * Value List Type: List
|
|
68512
|
+
* * Possible Values
|
|
68513
|
+
* * body
|
|
68514
|
+
* * header
|
|
68515
|
+
* * n/a
|
|
68516
|
+
* * path
|
|
68517
|
+
* * Description: Where the created record ID is found in the create response: path (URL of returned Location header), body (parsed from JSON response), header (specific named header).
|
|
68518
|
+
*/
|
|
68519
|
+
get CreateIDLocation() {
|
|
68520
|
+
return this.Get('CreateIDLocation');
|
|
68521
|
+
}
|
|
68522
|
+
set CreateIDLocation(value) {
|
|
68523
|
+
this.Set('CreateIDLocation', value);
|
|
68524
|
+
}
|
|
68525
|
+
/**
|
|
68526
|
+
* * Field Name: UpdateAPIPath
|
|
68527
|
+
* * Display Name: Update API Path
|
|
68528
|
+
* * SQL Data Type: nvarchar(MAX)
|
|
68529
|
+
* * Description: HTTP path template for update operations. Typically contains {ID} placeholder substituted with the record ExternalID at runtime.
|
|
68530
|
+
*/
|
|
68531
|
+
get UpdateAPIPath() {
|
|
68532
|
+
return this.Get('UpdateAPIPath');
|
|
68533
|
+
}
|
|
68534
|
+
set UpdateAPIPath(value) {
|
|
68535
|
+
this.Set('UpdateAPIPath', value);
|
|
68536
|
+
}
|
|
68537
|
+
/**
|
|
68538
|
+
* * Field Name: UpdateMethod
|
|
68539
|
+
* * Display Name: Update Method
|
|
68540
|
+
* * SQL Data Type: nvarchar(20)
|
|
68541
|
+
* * Description: HTTP method for update (typically PATCH or PUT).
|
|
68542
|
+
*/
|
|
68543
|
+
get UpdateMethod() {
|
|
68544
|
+
return this.Get('UpdateMethod');
|
|
68545
|
+
}
|
|
68546
|
+
set UpdateMethod(value) {
|
|
68547
|
+
this.Set('UpdateMethod', value);
|
|
68548
|
+
}
|
|
68549
|
+
/**
|
|
68550
|
+
* * Field Name: UpdateBodyShape
|
|
68551
|
+
* * Display Name: Update Body Shape
|
|
68552
|
+
* * SQL Data Type: nvarchar(50)
|
|
68553
|
+
* * Value List Type: List
|
|
68554
|
+
* * Possible Values
|
|
68555
|
+
* * flat
|
|
68556
|
+
* * literal
|
|
68557
|
+
* * wrapped
|
|
68558
|
+
* * Description: Request body shape for update: flat | wrapped | literal. See CreateBodyShape.
|
|
68559
|
+
*/
|
|
68560
|
+
get UpdateBodyShape() {
|
|
68561
|
+
return this.Get('UpdateBodyShape');
|
|
68562
|
+
}
|
|
68563
|
+
set UpdateBodyShape(value) {
|
|
68564
|
+
this.Set('UpdateBodyShape', value);
|
|
68565
|
+
}
|
|
68566
|
+
/**
|
|
68567
|
+
* * Field Name: UpdateBodyKey
|
|
68568
|
+
* * Display Name: Update Body Key
|
|
68569
|
+
* * SQL Data Type: nvarchar(100)
|
|
68570
|
+
* * Description: Wrapper key for update body when UpdateBodyShape=wrapped.
|
|
68571
|
+
*/
|
|
68572
|
+
get UpdateBodyKey() {
|
|
68573
|
+
return this.Get('UpdateBodyKey');
|
|
68574
|
+
}
|
|
68575
|
+
set UpdateBodyKey(value) {
|
|
68576
|
+
this.Set('UpdateBodyKey', value);
|
|
68577
|
+
}
|
|
68578
|
+
/**
|
|
68579
|
+
* * Field Name: UpdateIDLocation
|
|
68580
|
+
* * Display Name: Update ID Location
|
|
68581
|
+
* * SQL Data Type: nvarchar(20)
|
|
68582
|
+
* * Value List Type: List
|
|
68583
|
+
* * Possible Values
|
|
68584
|
+
* * body
|
|
68585
|
+
* * header
|
|
68586
|
+
* * n/a
|
|
68587
|
+
* * path
|
|
68588
|
+
* * Description: For update: where the target record ID is located in the request — typically 'path' (substituted into UpdateAPIPath URL template).
|
|
68589
|
+
*/
|
|
68590
|
+
get UpdateIDLocation() {
|
|
68591
|
+
return this.Get('UpdateIDLocation');
|
|
68592
|
+
}
|
|
68593
|
+
set UpdateIDLocation(value) {
|
|
68594
|
+
this.Set('UpdateIDLocation', value);
|
|
68595
|
+
}
|
|
68596
|
+
/**
|
|
68597
|
+
* * Field Name: DeleteAPIPath
|
|
68598
|
+
* * Display Name: Delete API Path
|
|
68599
|
+
* * SQL Data Type: nvarchar(MAX)
|
|
68600
|
+
* * Description: HTTP path template for delete operations. Typically contains {ID} placeholder. NULL means delete not supported via metadata-driven path. (Existing DeleteMethod column carries the verb.)
|
|
68601
|
+
*/
|
|
68602
|
+
get DeleteAPIPath() {
|
|
68603
|
+
return this.Get('DeleteAPIPath');
|
|
68604
|
+
}
|
|
68605
|
+
set DeleteAPIPath(value) {
|
|
68606
|
+
this.Set('DeleteAPIPath', value);
|
|
68607
|
+
}
|
|
68608
|
+
/**
|
|
68609
|
+
* * Field Name: DeleteIDLocation
|
|
68610
|
+
* * Display Name: Delete ID Location
|
|
68611
|
+
* * SQL Data Type: nvarchar(20)
|
|
68612
|
+
* * Value List Type: List
|
|
68613
|
+
* * Possible Values
|
|
68614
|
+
* * body
|
|
68615
|
+
* * header
|
|
68616
|
+
* * n/a
|
|
68617
|
+
* * path
|
|
68618
|
+
* * Description: For delete: where the target record ID is located — typically 'path'.
|
|
68619
|
+
*/
|
|
68620
|
+
get DeleteIDLocation() {
|
|
68621
|
+
return this.Get('DeleteIDLocation');
|
|
68622
|
+
}
|
|
68623
|
+
set DeleteIDLocation(value) {
|
|
68624
|
+
this.Set('DeleteIDLocation', value);
|
|
68625
|
+
}
|
|
68626
|
+
/**
|
|
68627
|
+
* * Field Name: IncrementalWatermarkField
|
|
68628
|
+
* * Display Name: Incremental Watermark Field
|
|
68629
|
+
* * SQL Data Type: nvarchar(255)
|
|
68630
|
+
* * Description: Vendor field name marking "last changed" — drives incremental sync filter when SupportsIncrementalSync=1. The exact filter syntax (e.g., $filter=Modified gt {value} or modified_since={value}) lives in Configuration.incrementalFilterFormat. Provable-only: leave NULL if docs do not name a watermark field.
|
|
68631
|
+
*/
|
|
68632
|
+
get IncrementalWatermarkField() {
|
|
68633
|
+
return this.Get('IncrementalWatermarkField');
|
|
68634
|
+
}
|
|
68635
|
+
set IncrementalWatermarkField(value) {
|
|
68636
|
+
this.Set('IncrementalWatermarkField', value);
|
|
68637
|
+
}
|
|
68638
|
+
/**
|
|
68639
|
+
* * Field Name: MetadataSource
|
|
68640
|
+
* * Display Name: Metadata Source
|
|
68641
|
+
* * SQL Data Type: nvarchar(20)
|
|
68642
|
+
* * Default Value: Declared
|
|
68643
|
+
* * Value List Type: List
|
|
68644
|
+
* * Possible Values
|
|
68645
|
+
* * Custom
|
|
68646
|
+
* * Declared
|
|
68647
|
+
* * Discovered
|
|
68648
|
+
* * Description: Provenance of this IntegrationObject row: Declared (from static research/docs), Discovered (from runtime API introspection like Salesforce /describe), Custom (genuinely customer-created, e.g., HubSpot custom objects). Drives merge precedence in IntegrationSchemaSync.
|
|
68649
|
+
*/
|
|
68650
|
+
get MetadataSource() {
|
|
68651
|
+
return this.Get('MetadataSource');
|
|
68652
|
+
}
|
|
68653
|
+
set MetadataSource(value) {
|
|
68654
|
+
this.Set('MetadataSource', value);
|
|
68655
|
+
}
|
|
68656
|
+
/**
|
|
67604
68657
|
* * Field Name: Integration
|
|
67605
|
-
* * Display Name: Integration
|
|
68658
|
+
* * Display Name: Integration Name
|
|
67606
68659
|
* * SQL Data Type: nvarchar(100)
|
|
67607
68660
|
*/
|
|
67608
68661
|
get Integration() {
|
|
@@ -79880,7 +80933,7 @@ let MJScheduledJobEntity = class MJScheduledJobEntity extends BaseEntity {
|
|
|
79880
80933
|
}
|
|
79881
80934
|
/**
|
|
79882
80935
|
* * Field Name: NotifyViaInApp
|
|
79883
|
-
* * Display Name: Notify Via In
|
|
80936
|
+
* * Display Name: Notify Via In-App
|
|
79884
80937
|
* * SQL Data Type: bit
|
|
79885
80938
|
* * Default Value: 1
|
|
79886
80939
|
* * Description: Whether to send in-app notifications. Requires NotifyOnSuccess or NotifyOnFailure to also be enabled. Defaults to true.
|
|
@@ -79976,6 +81029,19 @@ let MJScheduledJobEntity = class MJScheduledJobEntity extends BaseEntity {
|
|
|
79976
81029
|
return this.Get('__mj_UpdatedAt');
|
|
79977
81030
|
}
|
|
79978
81031
|
/**
|
|
81032
|
+
* * Field Name: RunImmediatelyIfNeverRun
|
|
81033
|
+
* * Display Name: Run Immediately If Never Run
|
|
81034
|
+
* * SQL Data Type: bit
|
|
81035
|
+
* * Default Value: 0
|
|
81036
|
+
* * Description: When true AND LastRunAt IS NULL, the scheduler sets NextRunAt to now() instead of the next cron tick on initialization, so the job runs on the next polling cycle. Useful for newly-seeded jobs that should not wait up to a full cron interval before their first execution.
|
|
81037
|
+
*/
|
|
81038
|
+
get RunImmediatelyIfNeverRun() {
|
|
81039
|
+
return this.Get('RunImmediatelyIfNeverRun');
|
|
81040
|
+
}
|
|
81041
|
+
set RunImmediatelyIfNeverRun(value) {
|
|
81042
|
+
this.Set('RunImmediatelyIfNeverRun', value);
|
|
81043
|
+
}
|
|
81044
|
+
/**
|
|
79979
81045
|
* * Field Name: JobType
|
|
79980
81046
|
* * Display Name: Job Type
|
|
79981
81047
|
* * SQL Data Type: nvarchar(100)
|
|
@@ -83014,6 +84080,24 @@ let MJTagSynonymEntity = class MJTagSynonymEntity extends BaseEntity {
|
|
|
83014
84080
|
return this.Get('__mj_UpdatedAt');
|
|
83015
84081
|
}
|
|
83016
84082
|
/**
|
|
84083
|
+
* * Field Name: Status
|
|
84084
|
+
* * Display Name: Status
|
|
84085
|
+
* * SQL Data Type: nvarchar(20)
|
|
84086
|
+
* * Default Value: Active
|
|
84087
|
+
* * Value List Type: List
|
|
84088
|
+
* * Possible Values
|
|
84089
|
+
* * Active
|
|
84090
|
+
* * Pending
|
|
84091
|
+
* * Rejected
|
|
84092
|
+
* * Description: Approval state of the synonym. Active = resolves to its tag during classification. Pending = proposed (e.g. by the LLM or a bulk import) and awaiting human review; does not resolve until approved. Rejected = reviewed and declined; retained for audit and to suppress re-proposal.
|
|
84093
|
+
*/
|
|
84094
|
+
get Status() {
|
|
84095
|
+
return this.Get('Status');
|
|
84096
|
+
}
|
|
84097
|
+
set Status(value) {
|
|
84098
|
+
this.Set('Status', value);
|
|
84099
|
+
}
|
|
84100
|
+
/**
|
|
83017
84101
|
* * Field Name: Tag
|
|
83018
84102
|
* * Display Name: Tag Name
|
|
83019
84103
|
* * SQL Data Type: nvarchar(255)
|
|
@@ -87253,6 +88337,41 @@ let MJUserApplicationEntity = class MJUserApplicationEntity extends BaseEntity {
|
|
|
87253
88337
|
return await super.InnerLoad(compositeKey, EntityRelationshipsToLoad);
|
|
87254
88338
|
}
|
|
87255
88339
|
/**
|
|
88340
|
+
* MJ: User Applications - Delete method override to wrap in transaction since CascadeDeletes is true.
|
|
88341
|
+
* Wrapping in a transaction ensures that all cascade delete operations are handled atomically.
|
|
88342
|
+
* @public
|
|
88343
|
+
* @method
|
|
88344
|
+
* @override
|
|
88345
|
+
* @memberof MJUserApplicationEntity
|
|
88346
|
+
* @returns {Promise<boolean>} - true if successful, false otherwise
|
|
88347
|
+
*/
|
|
88348
|
+
async Delete(options) {
|
|
88349
|
+
if (Metadata.Provider.ProviderType === ProviderType.Database) { // global-provider-ok: codegen runs offline against a single provider
|
|
88350
|
+
// For database providers, use the transaction methods directly
|
|
88351
|
+
const provider = Metadata.Provider; // global-provider-ok: codegen runs offline against a single provider
|
|
88352
|
+
try {
|
|
88353
|
+
await provider.BeginTransaction();
|
|
88354
|
+
const result = await super.Delete(options);
|
|
88355
|
+
if (result) {
|
|
88356
|
+
await provider.CommitTransaction();
|
|
88357
|
+
return true;
|
|
88358
|
+
}
|
|
88359
|
+
else {
|
|
88360
|
+
await provider.RollbackTransaction();
|
|
88361
|
+
return false;
|
|
88362
|
+
}
|
|
88363
|
+
}
|
|
88364
|
+
catch (error) {
|
|
88365
|
+
await provider.RollbackTransaction();
|
|
88366
|
+
throw error;
|
|
88367
|
+
}
|
|
88368
|
+
}
|
|
88369
|
+
else {
|
|
88370
|
+
// For network providers, cascading deletes are handled server-side
|
|
88371
|
+
return super.Delete(options);
|
|
88372
|
+
}
|
|
88373
|
+
}
|
|
88374
|
+
/**
|
|
87256
88375
|
* * Field Name: ID
|
|
87257
88376
|
* * SQL Data Type: uniqueidentifier
|
|
87258
88377
|
* * Default Value: newsequentialid()
|