@memberjunction/core-entities 5.34.0 → 5.35.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.
@@ -2510,7 +2510,7 @@ export const MJAIAgentRunStepSchema = z.object({
2510
2510
  * * Display Name: Step Number
2511
2511
  * * SQL Data Type: int
2512
2512
  * * Description: Sequential number of this step within the agent run, starting from 1`),
2513
- StepType: z.union([z.literal('Actions'), z.literal('Chat'), z.literal('Decision'), z.literal('ForEach'), z.literal('Prompt'), z.literal('Sub-Agent'), z.literal('Validation'), z.literal('While')]).describe(`
2513
+ StepType: z.union([z.literal('Actions'), z.literal('Chat'), z.literal('Decision'), z.literal('ForEach'), z.literal('Prompt'), z.literal('Sub-Agent'), z.literal('Tool'), z.literal('Validation'), z.literal('While')]).describe(`
2514
2514
  * * Field Name: StepType
2515
2515
  * * Display Name: Step Type
2516
2516
  * * SQL Data Type: nvarchar(50)
@@ -2523,9 +2523,10 @@ export const MJAIAgentRunStepSchema = z.object({
2523
2523
  * * ForEach
2524
2524
  * * Prompt
2525
2525
  * * Sub-Agent
2526
+ * * Tool
2526
2527
  * * Validation
2527
2528
  * * While
2528
- * * Description: Type of execution step: Prompt, Actions, Sub-Agent, Decision, Chat, Validation`),
2529
+ * * Description: Type of execution step: Prompt, Actions, Sub-Agent, Decision, Chat, Validation, ForEach, While, Tool`),
2529
2530
  StepName: z.string().describe(`
2530
2531
  * * Field Name: StepName
2531
2532
  * * Display Name: Step Name
@@ -3470,7 +3471,7 @@ export const MJAIAgentSchema = z.object({
3470
3471
  * * Description: When true, enables automatic compression of conversation context when the message threshold is reached.`),
3471
3472
  ContextCompressionMessageThreshold: z.number().nullable().describe(`
3472
3473
  * * Field Name: ContextCompressionMessageThreshold
3473
- * * Display Name: Message Threshold
3474
+ * * Display Name: Compression Message Threshold
3474
3475
  * * SQL Data Type: int
3475
3476
  * * Description: Number of messages that triggers context compression when EnableContextCompression is true.`),
3476
3477
  ContextCompressionPromptID: z.string().nullable().describe(`
@@ -3480,7 +3481,7 @@ export const MJAIAgentSchema = z.object({
3480
3481
  * * Related Entity/Foreign Key: MJ: AI Prompts (vwAIPrompts.ID)`),
3481
3482
  ContextCompressionMessageRetentionCount: z.number().nullable().describe(`
3482
3483
  * * Field Name: ContextCompressionMessageRetentionCount
3483
- * * Display Name: Retention Count
3484
+ * * Display Name: Compression Retention Count
3484
3485
  * * SQL Data Type: int
3485
3486
  * * Description: Number of recent messages to keep uncompressed when context compression is applied.`),
3486
3487
  TypeID: z.string().nullable().describe(`
@@ -3522,25 +3523,25 @@ export const MJAIAgentSchema = z.object({
3522
3523
  * * Description: Controls whether model selection is driven by the Agent Type's system prompt or the Agent's specific prompt. Default is Agent Type for backward compatibility.`),
3523
3524
  PayloadDownstreamPaths: z.string().describe(`
3524
3525
  * * Field Name: PayloadDownstreamPaths
3525
- * * Display Name: Downstream Paths
3526
+ * * Display Name: Payload Downstream Paths
3526
3527
  * * SQL Data Type: nvarchar(MAX)
3527
3528
  * * Default Value: ["*"]
3528
3529
  * * Description: JSON array of paths that define which parts of the payload should be sent downstream to sub-agents. Use ["*"] to send entire payload, or specify paths like ["customer.id", "campaign.*", "analysis.sentiment"]`),
3529
3530
  PayloadUpstreamPaths: z.string().describe(`
3530
3531
  * * Field Name: PayloadUpstreamPaths
3531
- * * Display Name: Upstream Paths
3532
+ * * Display Name: Payload Upstream Paths
3532
3533
  * * SQL Data Type: nvarchar(MAX)
3533
3534
  * * Default Value: ["*"]
3534
3535
  * * Description: JSON array of paths that define which parts of the payload sub-agents are allowed to write back upstream. Use ["*"] to allow all writes, or specify paths like ["analysis.results", "recommendations.*"]`),
3535
3536
  PayloadSelfReadPaths: z.string().nullable().describe(`
3536
3537
  * * Field Name: PayloadSelfReadPaths
3537
- * * Display Name: Self Read Paths
3538
+ * * Display Name: Payload Self Read Paths
3538
3539
  * * SQL Data Type: nvarchar(MAX)
3539
3540
  * * Description: JSON array of paths that specify what parts of the payload the agent's own prompt can read. Controls downstream data
3540
3541
  flow when the agent executes its own prompt step.`),
3541
3542
  PayloadSelfWritePaths: z.string().nullable().describe(`
3542
3543
  * * Field Name: PayloadSelfWritePaths
3543
- * * Display Name: Self Write Paths
3544
+ * * Display Name: Payload Self Write Paths
3544
3545
  * * SQL Data Type: nvarchar(MAX)
3545
3546
  * * Description: JSON array of paths that specify what parts of the payload the agent's own prompt can write back. Controls upstream
3546
3547
  data flow when the agent executes its own prompt step.`),
@@ -3556,7 +3557,7 @@ data flow when the agent executes its own prompt step.`),
3556
3557
  * * Description: Optional JSON schema or requirements that define the expected structure and content of the agent's final payload. Used to validate the output when the agent declares success. Similar to OutputExample in AI Prompts.`),
3557
3558
  FinalPayloadValidationMode: z.union([z.literal('Fail'), z.literal('Retry'), z.literal('Warn')]).describe(`
3558
3559
  * * Field Name: FinalPayloadValidationMode
3559
- * * Display Name: Final Validation Mode
3560
+ * * Display Name: Final Payload Validation Mode
3560
3561
  * * SQL Data Type: nvarchar(25)
3561
3562
  * * Default Value: Retry
3562
3563
  * * Value List Type: List
@@ -3567,7 +3568,7 @@ data flow when the agent executes its own prompt step.`),
3567
3568
  * * Description: Determines how to handle validation failures when FinalPayloadValidation is specified. Options: Retry (default) - retry the agent with validation feedback, Fail - fail the agent run immediately, Warn - log a warning but allow success.`),
3568
3569
  FinalPayloadValidationMaxRetries: z.number().describe(`
3569
3570
  * * Field Name: FinalPayloadValidationMaxRetries
3570
- * * Display Name: Max Validation Retries
3571
+ * * Display Name: Final Payload Validation Max Retries
3571
3572
  * * SQL Data Type: int
3572
3573
  * * Default Value: 3
3573
3574
  * * Description: Maximum number of retry attempts allowed when FinalPayloadValidation fails with
@@ -3613,7 +3614,7 @@ if this limit is exceeded.`),
3613
3614
  * * Description: Optional JSON schema validation to apply to the input payload before agent execution begins. Uses the same JSONValidator format as FinalPayloadValidation.`),
3614
3615
  StartingPayloadValidationMode: z.union([z.literal('Fail'), z.literal('Warn')]).describe(`
3615
3616
  * * Field Name: StartingPayloadValidationMode
3616
- * * Display Name: Starting Validation Mode
3617
+ * * Display Name: Starting Payload Validation Mode
3617
3618
  * * SQL Data Type: nvarchar(25)
3618
3619
  * * Default Value: Fail
3619
3620
  * * Value List Type: List
@@ -3623,7 +3624,7 @@ if this limit is exceeded.`),
3623
3624
  * * Description: Determines how to handle StartingPayloadValidation failures. Fail = reject invalid input, Warn = log warning but proceed.`),
3624
3625
  DefaultPromptEffortLevel: z.number().nullable().describe(`
3625
3626
  * * Field Name: DefaultPromptEffortLevel
3626
- * * Display Name: Default Effort Level
3627
+ * * Display Name: Default Prompt Effort Level
3627
3628
  * * SQL Data Type: int
3628
3629
  * * Description: Default effort level for all prompts executed by this agent (1-100, where 1=minimal effort, 100=maximum effort). Takes precedence over individual prompt EffortLevel settings but can be overridden by runtime parameters. Inherited by sub-agents unless explicitly overridden.`),
3629
3630
  ChatHandlingOption: z.union([z.literal('Failed'), z.literal('Retry'), z.literal('Success')]).nullable().describe(`
@@ -3689,7 +3690,7 @@ if this limit is exceeded.`),
3689
3690
  * * Description: When enabled, agent notes will be automatically injected into the agent context based on scoping rules.`),
3690
3691
  MaxNotesToInject: z.number().describe(`
3691
3692
  * * Field Name: MaxNotesToInject
3692
- * * Display Name: Max Notes to Inject
3693
+ * * Display Name: Max Notes To Inject
3693
3694
  * * SQL Data Type: int
3694
3695
  * * Default Value: 5
3695
3696
  * * Description: Maximum number of notes to inject into agent context per request.`),
@@ -3712,7 +3713,7 @@ if this limit is exceeded.`),
3712
3713
  * * Description: When enabled, agent examples will be automatically injected into the agent context based on scoping rules.`),
3713
3714
  MaxExamplesToInject: z.number().describe(`
3714
3715
  * * Field Name: MaxExamplesToInject
3715
- * * Display Name: Max Examples to Inject
3716
+ * * Display Name: Max Examples To Inject
3716
3717
  * * SQL Data Type: int
3717
3718
  * * Default Value: 3
3718
3719
  * * Description: Maximum number of examples to inject into agent context per request.`),
@@ -3752,23 +3753,23 @@ if this limit is exceeded.`),
3752
3753
  * * Description: Maximum number of conversation messages to include when MessageMode is 'Latest' or 'Bookend'. NULL means no limit (ignored for 'None' and 'All' modes). Must be greater than 0 if specified. For 'Latest': keeps most recent N messages. For 'Bookend': keeps first 2 + most recent (N-2) messages.`),
3753
3754
  AttachmentStorageProviderID: z.string().nullable().describe(`
3754
3755
  * * Field Name: AttachmentStorageProviderID
3755
- * * Display Name: Storage Provider
3756
+ * * Display Name: Attachment Storage Provider
3756
3757
  * * SQL Data Type: uniqueidentifier
3757
3758
  * * Related Entity/Foreign Key: MJ: File Storage Providers (vwFileStorageProviders.ID)
3758
3759
  * * Description: File storage provider for large attachments. Overrides the default from AIConfiguration. NULL uses system default.`),
3759
3760
  AttachmentRootPath: z.string().nullable().describe(`
3760
3761
  * * Field Name: AttachmentRootPath
3761
- * * Display Name: Root Path
3762
+ * * Display Name: Attachment Root Path
3762
3763
  * * SQL Data Type: nvarchar(500)
3763
3764
  * * Description: Base path within the storage provider for this agent's attachments. Agent run ID and sequence number are appended to create unique paths. Format: /folder/subfolder`),
3764
3765
  InlineStorageThresholdBytes: z.number().nullable().describe(`
3765
3766
  * * Field Name: InlineStorageThresholdBytes
3766
- * * Display Name: Inline Storage Threshold
3767
+ * * Display Name: Inline Storage Threshold Bytes
3767
3768
  * * SQL Data Type: int
3768
3769
  * * Description: File size threshold for inline storage. Files <= this size are stored as base64 inline, larger files use MJStorage. NULL uses system default (1MB). Set to 0 to always use MJStorage.`),
3769
3770
  AgentTypePromptParams: z.string().nullable().describe(`
3770
3771
  * * Field Name: AgentTypePromptParams
3771
- * * Display Name: Prompt Parameters
3772
+ * * Display Name: Agent Type Prompt Params
3772
3773
  * * SQL Data Type: nvarchar(MAX)
3773
3774
  * * Description: JSON object containing parameter values that customize how this agent's type-level system prompt is rendered. The schema is defined by the agent type's PromptParamsSchema field. Allows per-agent control over which prompt sections are included, enabling token savings by excluding unused documentation.`),
3774
3775
  ScopeConfig: z.string().nullable().describe(`
@@ -3807,7 +3808,7 @@ if this limit is exceeded.`),
3807
3808
  * * Description: Foreign key to AIAgentCategory. Assigns this agent to an organizational category for grouping, filtering, and inherited assignment strategy resolution.`),
3808
3809
  AllowEphemeralClientTools: z.boolean().describe(`
3809
3810
  * * Field Name: AllowEphemeralClientTools
3810
- * * Display Name: Allow Ephemeral Tools
3811
+ * * Display Name: Allow Ephemeral Client Tools
3811
3812
  * * SQL Data Type: bit
3812
3813
  * * Default Value: 1
3813
3814
  * * Description: When true (default), this agent accepts runtime-registered ephemeral client tools that are not defined in metadata. Set to false for agents that require strict tool governance.`),
@@ -3828,17 +3829,23 @@ if this limit is exceeded.`),
3828
3829
  * * Assigned
3829
3830
  * * None
3830
3831
  * * Description: Controls the agent's search capability. All = may use any scope including Global; search action does not restrict. Assigned = may use ONLY scopes explicitly linked via AIAgentSearchScope; scoped search action enforces this. None = agent has no search capability; the scoped search action rejects all requests.`),
3832
+ AcceptUnregisteredFiles: z.boolean().describe(`
3833
+ * * Field Name: AcceptUnregisteredFiles
3834
+ * * Display Name: Accept Unregistered Files
3835
+ * * SQL Data Type: bit
3836
+ * * Default Value: 0
3837
+ * * Description: Per-agent opt-in to a Generic Binary fallback for file uploads whose MIME type does not match any registered Artifact Type. When false (default), unrecognized uploads are rejected at upload time with an actionable error. When true, unrecognized uploads resolve to the Generic Binary artifact type, exposing only get_full and get_metadata tools. Scoped per agent — there is no system-wide global flag.`),
3831
3838
  Parent: z.string().nullable().describe(`
3832
3839
  * * Field Name: Parent
3833
3840
  * * Display Name: Parent Name
3834
3841
  * * SQL Data Type: nvarchar(255)`),
3835
3842
  ContextCompressionPrompt: z.string().nullable().describe(`
3836
3843
  * * Field Name: ContextCompressionPrompt
3837
- * * Display Name: Compression Prompt Name
3844
+ * * Display Name: Compression Prompt Text
3838
3845
  * * SQL Data Type: nvarchar(255)`),
3839
3846
  Type: z.string().nullable().describe(`
3840
3847
  * * Field Name: Type
3841
- * * Display Name: Type Name
3848
+ * * Display Name: Type
3842
3849
  * * SQL Data Type: nvarchar(100)`),
3843
3850
  DefaultArtifactType: z.string().nullable().describe(`
3844
3851
  * * Field Name: DefaultArtifactType
@@ -3850,7 +3857,7 @@ if this limit is exceeded.`),
3850
3857
  * * SQL Data Type: nvarchar(100)`),
3851
3858
  AttachmentStorageProvider: z.string().nullable().describe(`
3852
3859
  * * Field Name: AttachmentStorageProvider
3853
- * * Display Name: Storage Provider Name
3860
+ * * Display Name: Attachment Storage Provider Name
3854
3861
  * * SQL Data Type: nvarchar(50)`),
3855
3862
  Category: z.string().nullable().describe(`
3856
3863
  * * Field Name: Category
@@ -7669,6 +7676,28 @@ export const MJArtifactTypeSchema = z.object({
7669
7676
  * * Display Name: Tool Library Class
7670
7677
  * * SQL Data Type: nvarchar(100)
7671
7678
  * * Description: Class name for the BaseArtifactToolLibrary subclass that provides type-specific artifact exploration tools for agents. Resolved via ClassFactory. When NULL, ArtifactToolManager uses name-based fallback resolution.`),
7679
+ Priority: z.number().describe(`
7680
+ * * Field Name: Priority
7681
+ * * Display Name: Priority
7682
+ * * SQL Data Type: int
7683
+ * * Default Value: 0
7684
+ * * Description: Deterministic tiebreaker when multiple Artifact Types match the same MIME pattern. Higher values win. Within a specificity tier (exact > subtype-wildcard), the resolver sorts by Priority desc, then SystemSupplied = false beats SystemSupplied = true, then lowest ID wins.`),
7685
+ DefaultDeliveryMode: z.union([z.literal('Inline'), z.literal('ToolsOnly')]).describe(`
7686
+ * * Field Name: DefaultDeliveryMode
7687
+ * * Display Name: Default Delivery Mode
7688
+ * * SQL Data Type: nvarchar(20)
7689
+ * * Default Value: ToolsOnly
7690
+ * * Value List Type: List
7691
+ * * Possible Values
7692
+ * * Inline
7693
+ * * ToolsOnly
7694
+ * * Description: How artifacts of this type are delivered to the LLM by default. Inline: emitted as an inline content block (image_url, audio_url, small text, etc.) when the model supports the modality and the size is under the inline cap. ToolsOnly: never inlined; the agent reaches the bytes only through tool calls (get_full, library-specific tools). Per-instance override is one-way via ConversationArtifactVersion.ForceToolsOnly — an instance can opt out of inline but never opt in when the type default is ToolsOnly.`),
7695
+ SystemSupplied: z.boolean().describe(`
7696
+ * * Field Name: SystemSupplied
7697
+ * * Display Name: System Supplied
7698
+ * * SQL Data Type: bit
7699
+ * * Default Value: 0
7700
+ * * Description: True for Artifact Types shipped as part of the MemberJunction default registry (JSON, PDF, Office variants, Image/Audio/Video, Generic Text, Generic Binary). False for user/org-supplied customizations. Used as a tiebreaker in MIME pattern resolution: user customizations win over shipped defaults at equal Priority.`),
7672
7701
  Parent: z.string().nullable().describe(`
7673
7702
  * * Field Name: Parent
7674
7703
  * * Display Name: Parent
@@ -7827,7 +7856,7 @@ export const MJArtifactVersionSchema = z.object({
7827
7856
  * * Description: User comments specific to this version`),
7828
7857
  UserID: z.string().describe(`
7829
7858
  * * Field Name: UserID
7830
- * * Display Name: User
7859
+ * * Display Name: User ID
7831
7860
  * * SQL Data Type: uniqueidentifier
7832
7861
  * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)`),
7833
7862
  __mj_CreatedAt: z.date().describe(`
@@ -7857,7 +7886,7 @@ export const MJArtifactVersionSchema = z.object({
7857
7886
  * * Description: Description of this artifact version. Can differ from Artifact.Description as it may evolve with versions.`),
7858
7887
  FileID: z.string().nullable().describe(`
7859
7888
  * * Field Name: FileID
7860
- * * Display Name: File
7889
+ * * Display Name: File ID
7861
7890
  * * SQL Data Type: uniqueidentifier
7862
7891
  * * Related Entity/Foreign Key: MJ: Files (vwFiles.ID)
7863
7892
  * * Description: Foreign key to the MJ: Files entity. When ContentMode is 'File', this references the binary file stored in MJStorage. NULL when ContentMode is 'Text'.`),
@@ -7883,9 +7912,15 @@ export const MJArtifactVersionSchema = z.object({
7883
7912
  * * Description: Original filename of the stored file (e.g. report.pdf). Denormalized from the File entity for display without joins. Only populated when ContentMode is 'File'.`),
7884
7913
  ContentSizeBytes: z.number().nullable().describe(`
7885
7914
  * * Field Name: ContentSizeBytes
7886
- * * Display Name: Content Size Bytes
7915
+ * * Display Name: Content Size (Bytes)
7887
7916
  * * SQL Data Type: bigint
7888
7917
  * * Description: Size of the stored file in bytes. Denormalized for display without loading the file. Only populated when ContentMode is 'File'.`),
7918
+ ForceToolsOnly: z.boolean().describe(`
7919
+ * * Field Name: ForceToolsOnly
7920
+ * * Display Name: Force Tools Only
7921
+ * * SQL Data Type: bit
7922
+ * * Default Value: 0
7923
+ * * Description: One-way override that forces this artifact version to be delivered via tools regardless of the Artifact Type's DefaultDeliveryMode. When true, the resolver never emits an inline content block for this version. There is no inverse override — an instance cannot be widened from ToolsOnly to Inline. Default false.`),
7889
7924
  Artifact: z.string().describe(`
7890
7925
  * * Field Name: Artifact
7891
7926
  * * Display Name: Artifact
@@ -11171,18 +11206,28 @@ export const MJConversationDetailAttachmentSchema = z.object({
11171
11206
  * * Display Name: Description
11172
11207
  * * SQL Data Type: nvarchar(MAX)
11173
11208
  * * Description: Description of the attachment providing context about its content and purpose.`),
11209
+ ArtifactVersionID: z.string().nullable().describe(`
11210
+ * * Field Name: ArtifactVersionID
11211
+ * * Display Name: Artifact Version ID
11212
+ * * SQL Data Type: uniqueidentifier
11213
+ * * Related Entity/Foreign Key: MJ: Artifact Versions (vwArtifactVersions.ID)
11214
+ * * Description: Foreign key to the ArtifactVersion created alongside this attachment by the storage-unification path. When set, the agent resolver routes via the artifact path (manifest + tool dispatch) and skips inline embedding of the attachment to avoid double-processing. NULL for pre-v5.35 attachment rows authored before storage unification.`),
11174
11215
  ConversationDetail: z.string().describe(`
11175
11216
  * * Field Name: ConversationDetail
11176
- * * Display Name: Conversation Detail
11217
+ * * Display Name: Conversation Detail Record
11177
11218
  * * SQL Data Type: nvarchar(MAX)`),
11178
11219
  Modality: z.string().describe(`
11179
11220
  * * Field Name: Modality
11180
- * * Display Name: Modality
11221
+ * * Display Name: Modality Record
11181
11222
  * * SQL Data Type: nvarchar(50)`),
11182
11223
  File: z.string().nullable().describe(`
11183
11224
  * * Field Name: File
11184
- * * Display Name: File
11225
+ * * Display Name: File Record
11185
11226
  * * SQL Data Type: nvarchar(500)`),
11227
+ ArtifactVersion: z.string().nullable().describe(`
11228
+ * * Field Name: ArtifactVersion
11229
+ * * Display Name: Artifact Version Record
11230
+ * * SQL Data Type: nvarchar(255)`),
11186
11231
  });
11187
11232
  /**
11188
11233
  * zod schema definition for the entity MJ: Conversation Detail Ratings
@@ -20065,19 +20110,21 @@ export const MJRecordGeoCodeSchema = z.object({
20065
20110
  * * Display Name: Geocoded At
20066
20111
  * * SQL Data Type: datetimeoffset
20067
20112
  * * Description: Timestamp of when geocoding was last attempted (success or failure).`),
20068
- GeocodingSource: z.union([z.literal('google'), z.literal('ip_geolocation'), z.literal('manual'), z.literal('native'), z.literal('reference_data'), z.literal('reverse')]).nullable().describe(`
20113
+ GeocodingSource: z.union([z.literal('geocodio'), z.literal('google'), z.literal('here'), z.literal('ip_geolocation'), z.literal('manual'), z.literal('native'), z.literal('reference_data'), z.literal('reverse')]).nullable().describe(`
20069
20114
  * * Field Name: GeocodingSource
20070
20115
  * * Display Name: Geocoding Source
20071
20116
  * * SQL Data Type: nvarchar(30)
20072
20117
  * * Value List Type: List
20073
20118
  * * Possible Values
20119
+ * * geocodio
20074
20120
  * * google
20121
+ * * here
20075
20122
  * * ip_geolocation
20076
20123
  * * manual
20077
20124
  * * native
20078
20125
  * * reference_data
20079
20126
  * * reverse
20080
- * * Description: How this geocode was produced: google (Google Geocoding API), reference_data (resolved via Country/StateProvince tables), manual (user-entered), ip_geolocation (IP lookup), native (copied from entity lat/lng fields), reverse (reverse geocode from coordinates).`),
20127
+ * * Description: Source that produced this geocode. One of: google, geocodio, here, reference_data, manual, ip_geolocation, native, reverse.`),
20081
20128
  __mj_CreatedAt: z.date().describe(`
20082
20129
  * * Field Name: __mj_CreatedAt
20083
20130
  * * Display Name: Created At
@@ -32254,9 +32301,10 @@ let MJAIAgentRunStepEntity = class MJAIAgentRunStepEntity extends BaseEntity {
32254
32301
  * * ForEach
32255
32302
  * * Prompt
32256
32303
  * * Sub-Agent
32304
+ * * Tool
32257
32305
  * * Validation
32258
32306
  * * While
32259
- * * Description: Type of execution step: Prompt, Actions, Sub-Agent, Decision, Chat, Validation
32307
+ * * Description: Type of execution step: Prompt, Actions, Sub-Agent, Decision, Chat, Validation, ForEach, While, Tool
32260
32308
  */
32261
32309
  get StepType() {
32262
32310
  return this.Get('StepType');
@@ -34726,7 +34774,7 @@ let MJAIAgentEntity = class MJAIAgentEntity extends BaseEntity {
34726
34774
  }
34727
34775
  /**
34728
34776
  * * Field Name: ContextCompressionMessageThreshold
34729
- * * Display Name: Message Threshold
34777
+ * * Display Name: Compression Message Threshold
34730
34778
  * * SQL Data Type: int
34731
34779
  * * Description: Number of messages that triggers context compression when EnableContextCompression is true.
34732
34780
  */
@@ -34750,7 +34798,7 @@ let MJAIAgentEntity = class MJAIAgentEntity extends BaseEntity {
34750
34798
  }
34751
34799
  /**
34752
34800
  * * Field Name: ContextCompressionMessageRetentionCount
34753
- * * Display Name: Retention Count
34801
+ * * Display Name: Compression Retention Count
34754
34802
  * * SQL Data Type: int
34755
34803
  * * Description: Number of recent messages to keep uncompressed when context compression is applied.
34756
34804
  */
@@ -34834,7 +34882,7 @@ let MJAIAgentEntity = class MJAIAgentEntity extends BaseEntity {
34834
34882
  }
34835
34883
  /**
34836
34884
  * * Field Name: PayloadDownstreamPaths
34837
- * * Display Name: Downstream Paths
34885
+ * * Display Name: Payload Downstream Paths
34838
34886
  * * SQL Data Type: nvarchar(MAX)
34839
34887
  * * Default Value: ["*"]
34840
34888
  * * Description: JSON array of paths that define which parts of the payload should be sent downstream to sub-agents. Use ["*"] to send entire payload, or specify paths like ["customer.id", "campaign.*", "analysis.sentiment"]
@@ -34847,7 +34895,7 @@ let MJAIAgentEntity = class MJAIAgentEntity extends BaseEntity {
34847
34895
  }
34848
34896
  /**
34849
34897
  * * Field Name: PayloadUpstreamPaths
34850
- * * Display Name: Upstream Paths
34898
+ * * Display Name: Payload Upstream Paths
34851
34899
  * * SQL Data Type: nvarchar(MAX)
34852
34900
  * * Default Value: ["*"]
34853
34901
  * * Description: JSON array of paths that define which parts of the payload sub-agents are allowed to write back upstream. Use ["*"] to allow all writes, or specify paths like ["analysis.results", "recommendations.*"]
@@ -34860,7 +34908,7 @@ let MJAIAgentEntity = class MJAIAgentEntity extends BaseEntity {
34860
34908
  }
34861
34909
  /**
34862
34910
  * * Field Name: PayloadSelfReadPaths
34863
- * * Display Name: Self Read Paths
34911
+ * * Display Name: Payload Self Read Paths
34864
34912
  * * SQL Data Type: nvarchar(MAX)
34865
34913
  * * Description: JSON array of paths that specify what parts of the payload the agent's own prompt can read. Controls downstream data
34866
34914
  flow when the agent executes its own prompt step.
@@ -34873,7 +34921,7 @@ flow when the agent executes its own prompt step.
34873
34921
  }
34874
34922
  /**
34875
34923
  * * Field Name: PayloadSelfWritePaths
34876
- * * Display Name: Self Write Paths
34924
+ * * Display Name: Payload Self Write Paths
34877
34925
  * * SQL Data Type: nvarchar(MAX)
34878
34926
  * * Description: JSON array of paths that specify what parts of the payload the agent's own prompt can write back. Controls upstream
34879
34927
  data flow when the agent executes its own prompt step.
@@ -34910,7 +34958,7 @@ data flow when the agent executes its own prompt step.
34910
34958
  }
34911
34959
  /**
34912
34960
  * * Field Name: FinalPayloadValidationMode
34913
- * * Display Name: Final Validation Mode
34961
+ * * Display Name: Final Payload Validation Mode
34914
34962
  * * SQL Data Type: nvarchar(25)
34915
34963
  * * Default Value: Retry
34916
34964
  * * Value List Type: List
@@ -34928,7 +34976,7 @@ data flow when the agent executes its own prompt step.
34928
34976
  }
34929
34977
  /**
34930
34978
  * * Field Name: FinalPayloadValidationMaxRetries
34931
- * * Display Name: Max Validation Retries
34979
+ * * Display Name: Final Payload Validation Max Retries
34932
34980
  * * SQL Data Type: int
34933
34981
  * * Default Value: 3
34934
34982
  * * Description: Maximum number of retry attempts allowed when FinalPayloadValidation fails with
@@ -35030,7 +35078,7 @@ if this limit is exceeded.
35030
35078
  }
35031
35079
  /**
35032
35080
  * * Field Name: StartingPayloadValidationMode
35033
- * * Display Name: Starting Validation Mode
35081
+ * * Display Name: Starting Payload Validation Mode
35034
35082
  * * SQL Data Type: nvarchar(25)
35035
35083
  * * Default Value: Fail
35036
35084
  * * Value List Type: List
@@ -35047,7 +35095,7 @@ if this limit is exceeded.
35047
35095
  }
35048
35096
  /**
35049
35097
  * * Field Name: DefaultPromptEffortLevel
35050
- * * Display Name: Default Effort Level
35098
+ * * Display Name: Default Prompt Effort Level
35051
35099
  * * SQL Data Type: int
35052
35100
  * * Description: Default effort level for all prompts executed by this agent (1-100, where 1=minimal effort, 100=maximum effort). Takes precedence over individual prompt EffortLevel settings but can be overridden by runtime parameters. Inherited by sub-agents unless explicitly overridden.
35053
35101
  */
@@ -35176,7 +35224,7 @@ if this limit is exceeded.
35176
35224
  }
35177
35225
  /**
35178
35226
  * * Field Name: MaxNotesToInject
35179
- * * Display Name: Max Notes to Inject
35227
+ * * Display Name: Max Notes To Inject
35180
35228
  * * SQL Data Type: int
35181
35229
  * * Default Value: 5
35182
35230
  * * Description: Maximum number of notes to inject into agent context per request.
@@ -35220,7 +35268,7 @@ if this limit is exceeded.
35220
35268
  }
35221
35269
  /**
35222
35270
  * * Field Name: MaxExamplesToInject
35223
- * * Display Name: Max Examples to Inject
35271
+ * * Display Name: Max Examples To Inject
35224
35272
  * * SQL Data Type: int
35225
35273
  * * Default Value: 3
35226
35274
  * * Description: Maximum number of examples to inject into agent context per request.
@@ -35295,7 +35343,7 @@ if this limit is exceeded.
35295
35343
  }
35296
35344
  /**
35297
35345
  * * Field Name: AttachmentStorageProviderID
35298
- * * Display Name: Storage Provider
35346
+ * * Display Name: Attachment Storage Provider
35299
35347
  * * SQL Data Type: uniqueidentifier
35300
35348
  * * Related Entity/Foreign Key: MJ: File Storage Providers (vwFileStorageProviders.ID)
35301
35349
  * * Description: File storage provider for large attachments. Overrides the default from AIConfiguration. NULL uses system default.
@@ -35308,7 +35356,7 @@ if this limit is exceeded.
35308
35356
  }
35309
35357
  /**
35310
35358
  * * Field Name: AttachmentRootPath
35311
- * * Display Name: Root Path
35359
+ * * Display Name: Attachment Root Path
35312
35360
  * * SQL Data Type: nvarchar(500)
35313
35361
  * * Description: Base path within the storage provider for this agent's attachments. Agent run ID and sequence number are appended to create unique paths. Format: /folder/subfolder
35314
35362
  */
@@ -35320,7 +35368,7 @@ if this limit is exceeded.
35320
35368
  }
35321
35369
  /**
35322
35370
  * * Field Name: InlineStorageThresholdBytes
35323
- * * Display Name: Inline Storage Threshold
35371
+ * * Display Name: Inline Storage Threshold Bytes
35324
35372
  * * SQL Data Type: int
35325
35373
  * * Description: File size threshold for inline storage. Files <= this size are stored as base64 inline, larger files use MJStorage. NULL uses system default (1MB). Set to 0 to always use MJStorage.
35326
35374
  */
@@ -35332,7 +35380,7 @@ if this limit is exceeded.
35332
35380
  }
35333
35381
  /**
35334
35382
  * * Field Name: AgentTypePromptParams
35335
- * * Display Name: Prompt Parameters
35383
+ * * Display Name: Agent Type Prompt Params
35336
35384
  * * SQL Data Type: nvarchar(MAX)
35337
35385
  * * Description: JSON object containing parameter values that customize how this agent's type-level system prompt is rendered. The schema is defined by the agent type's PromptParamsSchema field. Allows per-agent control over which prompt sections are included, enabling token savings by excluding unused documentation.
35338
35386
  */
@@ -35420,7 +35468,7 @@ if this limit is exceeded.
35420
35468
  }
35421
35469
  /**
35422
35470
  * * Field Name: AllowEphemeralClientTools
35423
- * * Display Name: Allow Ephemeral Tools
35471
+ * * Display Name: Allow Ephemeral Client Tools
35424
35472
  * * SQL Data Type: bit
35425
35473
  * * Default Value: 1
35426
35474
  * * Description: When true (default), this agent accepts runtime-registered ephemeral client tools that are not defined in metadata. Set to false for agents that require strict tool governance.
@@ -35463,6 +35511,19 @@ if this limit is exceeded.
35463
35511
  this.Set('SearchScopeAccess', value);
35464
35512
  }
35465
35513
  /**
35514
+ * * Field Name: AcceptUnregisteredFiles
35515
+ * * Display Name: Accept Unregistered Files
35516
+ * * SQL Data Type: bit
35517
+ * * Default Value: 0
35518
+ * * Description: Per-agent opt-in to a Generic Binary fallback for file uploads whose MIME type does not match any registered Artifact Type. When false (default), unrecognized uploads are rejected at upload time with an actionable error. When true, unrecognized uploads resolve to the Generic Binary artifact type, exposing only get_full and get_metadata tools. Scoped per agent — there is no system-wide global flag.
35519
+ */
35520
+ get AcceptUnregisteredFiles() {
35521
+ return this.Get('AcceptUnregisteredFiles');
35522
+ }
35523
+ set AcceptUnregisteredFiles(value) {
35524
+ this.Set('AcceptUnregisteredFiles', value);
35525
+ }
35526
+ /**
35466
35527
  * * Field Name: Parent
35467
35528
  * * Display Name: Parent Name
35468
35529
  * * SQL Data Type: nvarchar(255)
@@ -35472,7 +35533,7 @@ if this limit is exceeded.
35472
35533
  }
35473
35534
  /**
35474
35535
  * * Field Name: ContextCompressionPrompt
35475
- * * Display Name: Compression Prompt Name
35536
+ * * Display Name: Compression Prompt Text
35476
35537
  * * SQL Data Type: nvarchar(255)
35477
35538
  */
35478
35539
  get ContextCompressionPrompt() {
@@ -35480,7 +35541,7 @@ if this limit is exceeded.
35480
35541
  }
35481
35542
  /**
35482
35543
  * * Field Name: Type
35483
- * * Display Name: Type Name
35544
+ * * Display Name: Type
35484
35545
  * * SQL Data Type: nvarchar(100)
35485
35546
  */
35486
35547
  get Type() {
@@ -35504,7 +35565,7 @@ if this limit is exceeded.
35504
35565
  }
35505
35566
  /**
35506
35567
  * * Field Name: AttachmentStorageProvider
35507
- * * Display Name: Storage Provider Name
35568
+ * * Display Name: Attachment Storage Provider Name
35508
35569
  * * SQL Data Type: nvarchar(50)
35509
35570
  */
35510
35571
  get AttachmentStorageProvider() {
@@ -45338,6 +45399,49 @@ let MJArtifactTypeEntity = class MJArtifactTypeEntity extends BaseEntity {
45338
45399
  this.Set('ToolLibraryClass', value);
45339
45400
  }
45340
45401
  /**
45402
+ * * Field Name: Priority
45403
+ * * Display Name: Priority
45404
+ * * SQL Data Type: int
45405
+ * * Default Value: 0
45406
+ * * Description: Deterministic tiebreaker when multiple Artifact Types match the same MIME pattern. Higher values win. Within a specificity tier (exact > subtype-wildcard), the resolver sorts by Priority desc, then SystemSupplied = false beats SystemSupplied = true, then lowest ID wins.
45407
+ */
45408
+ get Priority() {
45409
+ return this.Get('Priority');
45410
+ }
45411
+ set Priority(value) {
45412
+ this.Set('Priority', value);
45413
+ }
45414
+ /**
45415
+ * * Field Name: DefaultDeliveryMode
45416
+ * * Display Name: Default Delivery Mode
45417
+ * * SQL Data Type: nvarchar(20)
45418
+ * * Default Value: ToolsOnly
45419
+ * * Value List Type: List
45420
+ * * Possible Values
45421
+ * * Inline
45422
+ * * ToolsOnly
45423
+ * * Description: How artifacts of this type are delivered to the LLM by default. Inline: emitted as an inline content block (image_url, audio_url, small text, etc.) when the model supports the modality and the size is under the inline cap. ToolsOnly: never inlined; the agent reaches the bytes only through tool calls (get_full, library-specific tools). Per-instance override is one-way via ConversationArtifactVersion.ForceToolsOnly — an instance can opt out of inline but never opt in when the type default is ToolsOnly.
45424
+ */
45425
+ get DefaultDeliveryMode() {
45426
+ return this.Get('DefaultDeliveryMode');
45427
+ }
45428
+ set DefaultDeliveryMode(value) {
45429
+ this.Set('DefaultDeliveryMode', value);
45430
+ }
45431
+ /**
45432
+ * * Field Name: SystemSupplied
45433
+ * * Display Name: System Supplied
45434
+ * * SQL Data Type: bit
45435
+ * * Default Value: 0
45436
+ * * Description: True for Artifact Types shipped as part of the MemberJunction default registry (JSON, PDF, Office variants, Image/Audio/Video, Generic Text, Generic Binary). False for user/org-supplied customizations. Used as a tiebreaker in MIME pattern resolution: user customizations win over shipped defaults at equal Priority.
45437
+ */
45438
+ get SystemSupplied() {
45439
+ return this.Get('SystemSupplied');
45440
+ }
45441
+ set SystemSupplied(value) {
45442
+ this.Set('SystemSupplied', value);
45443
+ }
45444
+ /**
45341
45445
  * * Field Name: Parent
45342
45446
  * * Display Name: Parent
45343
45447
  * * SQL Data Type: nvarchar(100)
@@ -45734,7 +45838,7 @@ let MJArtifactVersionEntity = class MJArtifactVersionEntity extends BaseEntity {
45734
45838
  }
45735
45839
  /**
45736
45840
  * * Field Name: UserID
45737
- * * Display Name: User
45841
+ * * Display Name: User ID
45738
45842
  * * SQL Data Type: uniqueidentifier
45739
45843
  * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)
45740
45844
  */
@@ -45800,7 +45904,7 @@ let MJArtifactVersionEntity = class MJArtifactVersionEntity extends BaseEntity {
45800
45904
  }
45801
45905
  /**
45802
45906
  * * Field Name: FileID
45803
- * * Display Name: File
45907
+ * * Display Name: File ID
45804
45908
  * * SQL Data Type: uniqueidentifier
45805
45909
  * * Related Entity/Foreign Key: MJ: Files (vwFiles.ID)
45806
45910
  * * Description: Foreign key to the MJ: Files entity. When ContentMode is 'File', this references the binary file stored in MJStorage. NULL when ContentMode is 'Text'.
@@ -45854,7 +45958,7 @@ let MJArtifactVersionEntity = class MJArtifactVersionEntity extends BaseEntity {
45854
45958
  }
45855
45959
  /**
45856
45960
  * * Field Name: ContentSizeBytes
45857
- * * Display Name: Content Size Bytes
45961
+ * * Display Name: Content Size (Bytes)
45858
45962
  * * SQL Data Type: bigint
45859
45963
  * * Description: Size of the stored file in bytes. Denormalized for display without loading the file. Only populated when ContentMode is 'File'.
45860
45964
  */
@@ -45865,6 +45969,19 @@ let MJArtifactVersionEntity = class MJArtifactVersionEntity extends BaseEntity {
45865
45969
  this.Set('ContentSizeBytes', value);
45866
45970
  }
45867
45971
  /**
45972
+ * * Field Name: ForceToolsOnly
45973
+ * * Display Name: Force Tools Only
45974
+ * * SQL Data Type: bit
45975
+ * * Default Value: 0
45976
+ * * Description: One-way override that forces this artifact version to be delivered via tools regardless of the Artifact Type's DefaultDeliveryMode. When true, the resolver never emits an inline content block for this version. There is no inverse override — an instance cannot be widened from ToolsOnly to Inline. Default false.
45977
+ */
45978
+ get ForceToolsOnly() {
45979
+ return this.Get('ForceToolsOnly');
45980
+ }
45981
+ set ForceToolsOnly(value) {
45982
+ this.Set('ForceToolsOnly', value);
45983
+ }
45984
+ /**
45868
45985
  * * Field Name: Artifact
45869
45986
  * * Display Name: Artifact
45870
45987
  * * SQL Data Type: nvarchar(255)
@@ -53906,6 +54023,7 @@ export { MJConversationDetailArtifactEntity };
53906
54023
  * @extends {BaseEntity}
53907
54024
  * @class
53908
54025
  * @public
54026
+ * @deprecated This entity is deprecated and will be removed in a future version. Using it will result in console warnings.
53909
54027
  */
53910
54028
  let MJConversationDetailAttachmentEntity = class MJConversationDetailAttachmentEntity extends BaseEntity {
53911
54029
  /**
@@ -54139,8 +54257,21 @@ let MJConversationDetailAttachmentEntity = class MJConversationDetailAttachmentE
54139
54257
  this.Set('Description', value);
54140
54258
  }
54141
54259
  /**
54260
+ * * Field Name: ArtifactVersionID
54261
+ * * Display Name: Artifact Version ID
54262
+ * * SQL Data Type: uniqueidentifier
54263
+ * * Related Entity/Foreign Key: MJ: Artifact Versions (vwArtifactVersions.ID)
54264
+ * * Description: Foreign key to the ArtifactVersion created alongside this attachment by the storage-unification path. When set, the agent resolver routes via the artifact path (manifest + tool dispatch) and skips inline embedding of the attachment to avoid double-processing. NULL for pre-v5.35 attachment rows authored before storage unification.
54265
+ */
54266
+ get ArtifactVersionID() {
54267
+ return this.Get('ArtifactVersionID');
54268
+ }
54269
+ set ArtifactVersionID(value) {
54270
+ this.Set('ArtifactVersionID', value);
54271
+ }
54272
+ /**
54142
54273
  * * Field Name: ConversationDetail
54143
- * * Display Name: Conversation Detail
54274
+ * * Display Name: Conversation Detail Record
54144
54275
  * * SQL Data Type: nvarchar(MAX)
54145
54276
  */
54146
54277
  get ConversationDetail() {
@@ -54148,7 +54279,7 @@ let MJConversationDetailAttachmentEntity = class MJConversationDetailAttachmentE
54148
54279
  }
54149
54280
  /**
54150
54281
  * * Field Name: Modality
54151
- * * Display Name: Modality
54282
+ * * Display Name: Modality Record
54152
54283
  * * SQL Data Type: nvarchar(50)
54153
54284
  */
54154
54285
  get Modality() {
@@ -54156,12 +54287,20 @@ let MJConversationDetailAttachmentEntity = class MJConversationDetailAttachmentE
54156
54287
  }
54157
54288
  /**
54158
54289
  * * Field Name: File
54159
- * * Display Name: File
54290
+ * * Display Name: File Record
54160
54291
  * * SQL Data Type: nvarchar(500)
54161
54292
  */
54162
54293
  get File() {
54163
54294
  return this.Get('File');
54164
54295
  }
54296
+ /**
54297
+ * * Field Name: ArtifactVersion
54298
+ * * Display Name: Artifact Version Record
54299
+ * * SQL Data Type: nvarchar(255)
54300
+ */
54301
+ get ArtifactVersion() {
54302
+ return this.Get('ArtifactVersion');
54303
+ }
54165
54304
  };
54166
54305
  MJConversationDetailAttachmentEntity = __decorate([
54167
54306
  RegisterClass(BaseEntity, 'MJ: Conversation Detail Attachments')
@@ -76272,13 +76411,15 @@ let MJRecordGeoCodeEntity = class MJRecordGeoCodeEntity extends BaseEntity {
76272
76411
  * * SQL Data Type: nvarchar(30)
76273
76412
  * * Value List Type: List
76274
76413
  * * Possible Values
76414
+ * * geocodio
76275
76415
  * * google
76416
+ * * here
76276
76417
  * * ip_geolocation
76277
76418
  * * manual
76278
76419
  * * native
76279
76420
  * * reference_data
76280
76421
  * * reverse
76281
- * * Description: How this geocode was produced: google (Google Geocoding API), reference_data (resolved via Country/StateProvince tables), manual (user-entered), ip_geolocation (IP lookup), native (copied from entity lat/lng fields), reverse (reverse geocode from coordinates).
76422
+ * * Description: Source that produced this geocode. One of: google, geocodio, here, reference_data, manual, ip_geolocation, native, reverse.
76282
76423
  */
76283
76424
  get GeocodingSource() {
76284
76425
  return this.Get('GeocodingSource');