@memberjunction/core-entities 6.2.0-edge.0 → 6.2.0-edge.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/artifact-extraction/artifact-extractor.d.ts +1 -1
  3. package/dist/artifact-extraction/artifact-extractor.js +2 -2
  4. package/dist/custom/MJConversationDetailEntityExtended.d.ts +1 -1
  5. package/dist/custom/MJConversationDetailEntityExtended.js +5 -5
  6. package/dist/custom/MJTemplateEntityExtended.d.ts +2 -2
  7. package/dist/custom/MJTemplateEntityExtended.js +6 -6
  8. package/dist/custom/MJUserViewEntityExtended.d.ts +4 -4
  9. package/dist/custom/MJUserViewEntityExtended.js +22 -22
  10. package/dist/custom/MJUserViewEntityExtended.js.map +1 -1
  11. package/dist/custom/Permissions/BaseShareEntityExtended.d.ts +8 -0
  12. package/dist/custom/Permissions/BaseShareEntityExtended.d.ts.map +1 -1
  13. package/dist/custom/Permissions/BaseShareEntityExtended.js +20 -4
  14. package/dist/custom/Permissions/BaseShareEntityExtended.js.map +1 -1
  15. package/dist/custom/Permissions/MJAccessControlRuleEntityExtended.js +4 -4
  16. package/dist/custom/Permissions/MJArtifactPermissionEntityExtended.js +5 -5
  17. package/dist/custom/Permissions/MJCollectionPermissionEntityExtended.js +5 -5
  18. package/dist/custom/Permissions/MJDashboardPermissionEntityExtended.js +5 -5
  19. package/dist/custom/ResourcePermissions/MJResourcePermissionEntityExtended.js +2 -2
  20. package/dist/custom/ResourcePermissions/ResourcePermissionEngine.d.ts +2 -2
  21. package/dist/custom/ResourcePermissions/ResourcePermissionEngine.js +5 -5
  22. package/dist/engines/ApplicationSettingEngine.d.ts +1 -1
  23. package/dist/engines/ApplicationSettingEngine.js +8 -8
  24. package/dist/engines/AuditLogTypeEngine.d.ts +1 -1
  25. package/dist/engines/AuditLogTypeEngine.js +4 -4
  26. package/dist/engines/InstanceConfigEngine.d.ts +1 -1
  27. package/dist/engines/InstanceConfigEngine.js +2 -2
  28. package/dist/engines/MCPEngine.d.ts +4 -4
  29. package/dist/engines/MCPEngine.js +24 -24
  30. package/dist/engines/PermissionEngine.d.ts +2 -0
  31. package/dist/engines/PermissionEngine.d.ts.map +1 -1
  32. package/dist/engines/PermissionEngine.js +5 -1
  33. package/dist/engines/PermissionEngine.js.map +1 -1
  34. package/dist/engines/ResourceTypeEngine.d.ts +1 -1
  35. package/dist/engines/ResourceTypeEngine.js +4 -4
  36. package/dist/engines/TypeTablesCache.d.ts +1 -1
  37. package/dist/engines/TypeTablesCache.js +3 -3
  38. package/dist/engines/UserInfoEngine.d.ts +8 -8
  39. package/dist/engines/UserInfoEngine.js +48 -48
  40. package/dist/engines/UserRoutineEngine.d.ts +3 -3
  41. package/dist/engines/UserRoutineEngine.js +15 -15
  42. package/dist/engines/conversations.d.ts +192 -12
  43. package/dist/engines/conversations.d.ts.map +1 -1
  44. package/dist/engines/conversations.js +547 -102
  45. package/dist/engines/conversations.js.map +1 -1
  46. package/dist/generated/entities/__mj.d.ts +623 -14
  47. package/dist/generated/entities/__mj.d.ts.map +1 -1
  48. package/dist/generated/entities/__mj.js +112 -8
  49. package/dist/generated/entities/__mj.js.map +1 -1
  50. package/package.json +5 -5
@@ -3753,6 +3753,7 @@ export declare const MJAIPromptRunSchema: z.ZodObject<{
3753
3753
  OutputUnitsUsed: z.ZodNullable<z.ZodNumber>;
3754
3754
  UsageTypeID: z.ZodNullable<z.ZodString>;
3755
3755
  ToolCallingMode: z.ZodNullable<z.ZodUnion<[z.ZodLiteral<"Envelope">, z.ZodLiteral<"Native">, z.ZodLiteral<"NativeFallback">, z.ZodLiteral<"NativeImplicit">]>>;
3756
+ UserID: z.ZodNullable<z.ZodString>;
3756
3757
  Prompt: z.ZodString;
3757
3758
  Model: z.ZodString;
3758
3759
  Vendor: z.ZodString;
@@ -3765,6 +3766,7 @@ export declare const MJAIPromptRunSchema: z.ZodObject<{
3765
3766
  ChildPrompt: z.ZodNullable<z.ZodString>;
3766
3767
  TestRun: z.ZodNullable<z.ZodString>;
3767
3768
  UsageType: z.ZodNullable<z.ZodString>;
3769
+ User: z.ZodNullable<z.ZodString>;
3768
3770
  RootParentID: z.ZodNullable<z.ZodString>;
3769
3771
  ParentIDDepth: z.ZodNullable<z.ZodNumber>;
3770
3772
  ParentIDPath: z.ZodNullable<z.ZodString>;
@@ -3786,7 +3788,9 @@ export declare const MJAIPromptRunSchema: z.ZodObject<{
3786
3788
  ParentIDChildCount?: number;
3787
3789
  Configuration?: string;
3788
3790
  ExecutionOrder?: number;
3791
+ UserID?: string;
3789
3792
  Comments?: string;
3793
+ User?: string;
3790
3794
  ModelID?: string;
3791
3795
  Model?: string;
3792
3796
  PromptID?: string;
@@ -3896,7 +3900,9 @@ export declare const MJAIPromptRunSchema: z.ZodObject<{
3896
3900
  ParentIDChildCount?: number;
3897
3901
  Configuration?: string;
3898
3902
  ExecutionOrder?: number;
3903
+ UserID?: string;
3899
3904
  Comments?: string;
3905
+ User?: string;
3900
3906
  ModelID?: string;
3901
3907
  Model?: string;
3902
3908
  PromptID?: string;
@@ -4617,6 +4623,7 @@ export declare const MJAIVendorSchema: z.ZodObject<{
4617
4623
  __mj_CreatedAt: z.ZodDate;
4618
4624
  __mj_UpdatedAt: z.ZodDate;
4619
4625
  CredentialTypeID: z.ZodNullable<z.ZodString>;
4626
+ Configuration: z.ZodNullable<z.ZodAny>;
4620
4627
  CredentialType: z.ZodNullable<z.ZodString>;
4621
4628
  }, "strip", z.ZodTypeAny, {
4622
4629
  ID?: string;
@@ -4624,6 +4631,7 @@ export declare const MJAIVendorSchema: z.ZodObject<{
4624
4631
  Description?: string;
4625
4632
  __mj_CreatedAt?: Date;
4626
4633
  __mj_UpdatedAt?: Date;
4634
+ Configuration?: any;
4627
4635
  CredentialTypeID?: string;
4628
4636
  CredentialType?: string;
4629
4637
  }, {
@@ -4632,6 +4640,7 @@ export declare const MJAIVendorSchema: z.ZodObject<{
4632
4640
  Description?: string;
4633
4641
  __mj_CreatedAt?: Date;
4634
4642
  __mj_UpdatedAt?: Date;
4643
+ Configuration?: any;
4635
4644
  CredentialTypeID?: string;
4636
4645
  CredentialType?: string;
4637
4646
  }>;
@@ -15289,8 +15298,10 @@ export declare const MJProjectSchema: z.ZodObject<{
15289
15298
  IsArchived: z.ZodBoolean;
15290
15299
  __mj_CreatedAt: z.ZodDate;
15291
15300
  __mj_UpdatedAt: z.ZodDate;
15301
+ OwnerUserID: z.ZodNullable<z.ZodString>;
15292
15302
  Environment: z.ZodString;
15293
15303
  Parent: z.ZodNullable<z.ZodString>;
15304
+ OwnerUser: z.ZodNullable<z.ZodString>;
15294
15305
  RootParentID: z.ZodNullable<z.ZodString>;
15295
15306
  ParentIDDepth: z.ZodNullable<z.ZodNumber>;
15296
15307
  ParentIDPath: z.ZodNullable<z.ZodString>;
@@ -15310,6 +15321,8 @@ export declare const MJProjectSchema: z.ZodObject<{
15310
15321
  ParentIDIsLeaf?: boolean;
15311
15322
  ParentIDChildCount?: number;
15312
15323
  Icon?: string;
15324
+ OwnerUserID?: string;
15325
+ OwnerUser?: string;
15313
15326
  Color?: string;
15314
15327
  EnvironmentID?: string;
15315
15328
  Environment?: string;
@@ -15328,6 +15341,8 @@ export declare const MJProjectSchema: z.ZodObject<{
15328
15341
  ParentIDIsLeaf?: boolean;
15329
15342
  ParentIDChildCount?: number;
15330
15343
  Icon?: string;
15344
+ OwnerUserID?: string;
15345
+ OwnerUser?: string;
15331
15346
  Color?: string;
15332
15347
  EnvironmentID?: string;
15333
15348
  Environment?: string;
@@ -25560,8 +25575,8 @@ export declare class MJAIAgentRunEntity extends BaseEntity<MJAIAgentRunEntityTyp
25560
25575
  /**
25561
25576
  * * Field Name: TotalCost
25562
25577
  * * Display Name: Total Cost
25563
- * * SQL Data Type: decimal(18, 6)
25564
- * * Default Value: 0.000000
25578
+ * * SQL Data Type: decimal(19, 8)
25579
+ * * Default Value: 0.00000000
25565
25580
  * * Description: Total estimated cost for all AI model usage during this agent run
25566
25581
  */
25567
25582
  get TotalCost(): number | null;
@@ -30821,7 +30836,8 @@ export declare class MJAIModelPriceUnitTypeEntity extends BaseEntity<MJAIModelPr
30821
30836
  * Two kinds of type live here, and the distinction is the whole point of the file:
30822
30837
  *
30823
30838
  * 1. **Shared modality sections** (`MJAIModelTypeEntity_LLMConfigurationSettings`, `MJAIModelTypeEntity_RealtimeConfigurationSettings`,
30824
- * `MJAIModelTypeEntity_VisionConfigurationSettings`, `MJAIModelTypeEntity_AudioConfigurationSettings`) — what "the LLM configuration"
30839
+ * `MJAIModelTypeEntity_VisionConfigurationSettings`, `MJAIModelTypeEntity_AudioConfigurationSettings`, `MJAIModelTypeEntity_DecisionConfigurationSettings`) —
30840
+ * what "the LLM configuration"
30825
30841
  * MEANS, defined once and reused by every layer that carries a configuration bag.
30826
30842
  * 2. **Per-table outer types** (`MJAIModelTypeEntity_IAIModelConfiguration`, `MJAIModelTypeEntity_IAIPromptConfiguration`,
30827
30843
  * `MJAIModelTypeEntity_IAIPromptModelConfiguration`) — one per `JSONType`, so each table names its own type even
@@ -30830,7 +30846,8 @@ export declare class MJAIModelPriceUnitTypeEntity extends BaseEntity<MJAIModelPr
30830
30846
  * ```
30831
30847
  * MJ: AI Model Types . ModelConfiguration (type-wide default — e.g. every Realtime model)
30832
30848
  * < MJ: AI Models . ModelConfiguration (per-model)
30833
- * < MJ: AI Model Vendors . ModelConfiguration (per model-on-this-provider — the winner)
30849
+ * < MJ: AI Vendors . Configuration.ModelDefaults (host-wide default for every model this vendor serves)
30850
+ * < MJ: AI Model Vendors . ModelConfiguration (per model-on-this-provider — the tie-breaker, wins)
30834
30851
  *
30835
30852
  * MJ: AI Prompts . PromptConfiguration (per-prompt)
30836
30853
  * < MJ: AI Prompt Models . PromptConfiguration (per prompt-on-this-model — the winner)
@@ -30908,6 +30925,18 @@ export interface MJAIModelTypeEntity_LLMConfigurationSettings {
30908
30925
  * only when the gate resolves native.
30909
30926
  */
30910
30927
  NativeToolResults?: boolean | null;
30928
+ /**
30929
+ * **Catalog layers only.** Whether this serving path's prompt cache is an exact BYTE-PREFIX match:
30930
+ * it reuses a prior request only when that request's entire prompt is a prefix of the new one
30931
+ * (OpenAI's automatic cache, xAI), so per-iteration framework state must be appended, never
30932
+ * replaced. Absent or `false` means a block or segment cache (Anthropic breakpoints, Gemini
30933
+ * implicit cache, Cerebras sliding cache), where a trailing per-iteration message can be replaced
30934
+ * in place — the safe default. Set `true` under `Configuration.ModelDefaults` on the VENDOR row of a prefix-cache provider so
30935
+ * every model it serves inherits it (the vendor default beats the model's own bag); a MODEL-VENDOR
30936
+ * row overrides it for one model on that host.
30937
+ * Consumed by the loop agent's trailing runtime-state layout.
30938
+ */
30939
+ PrefixPromptCache?: boolean | null;
30911
30940
  }
30912
30941
  /**
30913
30942
  * MJ-normalized turn-detection settings for realtime (speech-to-speech) models. Every field is
@@ -30972,6 +31001,24 @@ export interface MJAIModelTypeEntity_VisionConfigurationSettings {
30972
31001
  export interface MJAIModelTypeEntity_AudioConfigurationSettings {
30973
31002
  [key: string]: unknown;
30974
31003
  }
31004
+ /**
31005
+ * Typed-decision knobs, consumed at call time by the decision runner. They declare what a decision
31006
+ * model accepts, so an oversized request can be refused with a clear message before the call,
31007
+ * instead of being truncated or rejected by the provider. Each is a limit of the model itself: set
31008
+ * it on the catalog layers (`MJ: AI Models`, `MJ: AI Model Vendors`). Absent means no limit is
31009
+ * declared. A decision always needs at least two Choice options or Score levels; that minimum
31010
+ * belongs to `BaseDecision`, not to this bag.
31011
+ */
31012
+ export interface MJAIModelTypeEntity_DecisionConfigurationSettings {
31013
+ /** The most questions one call may carry. */
31014
+ MaxQuestionsPerCall?: number | null;
31015
+ /** The most options one Choice question may list. */
31016
+ MaxChoiceOptions?: number | null;
31017
+ /** The most levels one Score question may list. */
31018
+ MaxScoreLevels?: number | null;
31019
+ /** The largest state the model reads, in tokens. */
31020
+ MaxStateTokens?: number | null;
31021
+ }
30975
31022
  /**
30976
31023
  * The `ModelConfiguration` column on the three MODEL-CATALOG entities (`MJ: AI Model Types`,
30977
31024
  * `MJ: AI Models`, `MJ: AI Model Vendors`), which form an inherit-with-override cascade. Sections
@@ -30986,6 +31033,8 @@ export interface MJAIModelTypeEntity_IAIModelConfiguration {
30986
31033
  Vision?: MJAIModelTypeEntity_VisionConfigurationSettings | null;
30987
31034
  /** Audio (TTS/STT) knobs. Reserved. */
30988
31035
  Audio?: MJAIModelTypeEntity_AudioConfigurationSettings | null;
31036
+ /** Typed-decision limits. Honored at the catalog layers. */
31037
+ Decision?: MJAIModelTypeEntity_DecisionConfigurationSettings | null;
30989
31038
  }
30990
31039
  /**
30991
31040
  * The `PromptConfiguration` column on `MJ: AI Prompts` — per-prompt call-time knobs, layered ON TOP of the
@@ -31003,6 +31052,8 @@ export interface MJAIModelTypeEntity_IAIPromptConfiguration {
31003
31052
  Vision?: MJAIModelTypeEntity_VisionConfigurationSettings | null;
31004
31053
  /** Audio knobs. Reserved. */
31005
31054
  Audio?: MJAIModelTypeEntity_AudioConfigurationSettings | null;
31055
+ /** Typed-decision limits. Reserved at this layer. */
31056
+ Decision?: MJAIModelTypeEntity_DecisionConfigurationSettings | null;
31006
31057
  }
31007
31058
  /**
31008
31059
  * The `PromptConfiguration` column on `MJ: AI Prompt Models` — the most specific layer, overriding both
@@ -31017,6 +31068,25 @@ export interface MJAIModelTypeEntity_IAIPromptModelConfiguration {
31017
31068
  Vision?: MJAIModelTypeEntity_VisionConfigurationSettings | null;
31018
31069
  /** Audio knobs. Reserved. */
31019
31070
  Audio?: MJAIModelTypeEntity_AudioConfigurationSettings | null;
31071
+ /** Typed-decision limits. Reserved at this layer. */
31072
+ Decision?: MJAIModelTypeEntity_DecisionConfigurationSettings | null;
31073
+ }
31074
+ /**
31075
+ * `MJ: AI Vendors . Configuration` — the vendor's own configuration bag. General-purpose: a vendor
31076
+ * row carries settings that describe how this host serves models, of which the first key is
31077
+ * `ModelDefaults`. Add further vendor-level sections here as they arise; do not add capability
31078
+ * columns to AIVendor per knob.
31079
+ */
31080
+ export interface MJAIModelTypeEntity_IAIVendorConfiguration {
31081
+ /**
31082
+ * The default model configuration for EVERY model this vendor serves — the vendor layer of the
31083
+ * model-configuration cascade. Resolved ABOVE the model's own bag and BELOW the model-vendor row:
31084
+ * a host's statement about how it serves models beats the model's generic description, and the
31085
+ * model-vendor row is the tie-breaker where a host diverges for one model. The merge is per key,
31086
+ * so a default here only touches the keys it actually sets. First use: `LLM.PrefixPromptCache`
31087
+ * on OpenAI and x.ai, inherited by every model they serve.
31088
+ */
31089
+ ModelDefaults?: MJAIModelTypeEntity_IAIModelConfiguration | null;
31020
31090
  }
31021
31091
  /**
31022
31092
  * MJ: AI Model Types - strongly typed entity sub-class
@@ -31149,7 +31219,8 @@ export declare class MJAIModelTypeEntity extends BaseEntity<MJAIModelTypeEntityT
31149
31219
  * Two kinds of type live here, and the distinction is the whole point of the file:
31150
31220
  *
31151
31221
  * 1. **Shared modality sections** (`MJAIModelVendorEntity_LLMConfigurationSettings`, `MJAIModelVendorEntity_RealtimeConfigurationSettings`,
31152
- * `MJAIModelVendorEntity_VisionConfigurationSettings`, `MJAIModelVendorEntity_AudioConfigurationSettings`) — what "the LLM configuration"
31222
+ * `MJAIModelVendorEntity_VisionConfigurationSettings`, `MJAIModelVendorEntity_AudioConfigurationSettings`, `MJAIModelVendorEntity_DecisionConfigurationSettings`) —
31223
+ * what "the LLM configuration"
31153
31224
  * MEANS, defined once and reused by every layer that carries a configuration bag.
31154
31225
  * 2. **Per-table outer types** (`MJAIModelVendorEntity_IAIModelConfiguration`, `MJAIModelVendorEntity_IAIPromptConfiguration`,
31155
31226
  * `MJAIModelVendorEntity_IAIPromptModelConfiguration`) — one per `JSONType`, so each table names its own type even
@@ -31158,7 +31229,8 @@ export declare class MJAIModelTypeEntity extends BaseEntity<MJAIModelTypeEntityT
31158
31229
  * ```
31159
31230
  * MJ: AI Model Types . ModelConfiguration (type-wide default — e.g. every Realtime model)
31160
31231
  * < MJ: AI Models . ModelConfiguration (per-model)
31161
- * < MJ: AI Model Vendors . ModelConfiguration (per model-on-this-provider — the winner)
31232
+ * < MJ: AI Vendors . Configuration.ModelDefaults (host-wide default for every model this vendor serves)
31233
+ * < MJ: AI Model Vendors . ModelConfiguration (per model-on-this-provider — the tie-breaker, wins)
31162
31234
  *
31163
31235
  * MJ: AI Prompts . PromptConfiguration (per-prompt)
31164
31236
  * < MJ: AI Prompt Models . PromptConfiguration (per prompt-on-this-model — the winner)
@@ -31236,6 +31308,18 @@ export interface MJAIModelVendorEntity_LLMConfigurationSettings {
31236
31308
  * only when the gate resolves native.
31237
31309
  */
31238
31310
  NativeToolResults?: boolean | null;
31311
+ /**
31312
+ * **Catalog layers only.** Whether this serving path's prompt cache is an exact BYTE-PREFIX match:
31313
+ * it reuses a prior request only when that request's entire prompt is a prefix of the new one
31314
+ * (OpenAI's automatic cache, xAI), so per-iteration framework state must be appended, never
31315
+ * replaced. Absent or `false` means a block or segment cache (Anthropic breakpoints, Gemini
31316
+ * implicit cache, Cerebras sliding cache), where a trailing per-iteration message can be replaced
31317
+ * in place — the safe default. Set `true` under `Configuration.ModelDefaults` on the VENDOR row of a prefix-cache provider so
31318
+ * every model it serves inherits it (the vendor default beats the model's own bag); a MODEL-VENDOR
31319
+ * row overrides it for one model on that host.
31320
+ * Consumed by the loop agent's trailing runtime-state layout.
31321
+ */
31322
+ PrefixPromptCache?: boolean | null;
31239
31323
  }
31240
31324
  /**
31241
31325
  * MJ-normalized turn-detection settings for realtime (speech-to-speech) models. Every field is
@@ -31300,6 +31384,24 @@ export interface MJAIModelVendorEntity_VisionConfigurationSettings {
31300
31384
  export interface MJAIModelVendorEntity_AudioConfigurationSettings {
31301
31385
  [key: string]: unknown;
31302
31386
  }
31387
+ /**
31388
+ * Typed-decision knobs, consumed at call time by the decision runner. They declare what a decision
31389
+ * model accepts, so an oversized request can be refused with a clear message before the call,
31390
+ * instead of being truncated or rejected by the provider. Each is a limit of the model itself: set
31391
+ * it on the catalog layers (`MJ: AI Models`, `MJ: AI Model Vendors`). Absent means no limit is
31392
+ * declared. A decision always needs at least two Choice options or Score levels; that minimum
31393
+ * belongs to `BaseDecision`, not to this bag.
31394
+ */
31395
+ export interface MJAIModelVendorEntity_DecisionConfigurationSettings {
31396
+ /** The most questions one call may carry. */
31397
+ MaxQuestionsPerCall?: number | null;
31398
+ /** The most options one Choice question may list. */
31399
+ MaxChoiceOptions?: number | null;
31400
+ /** The most levels one Score question may list. */
31401
+ MaxScoreLevels?: number | null;
31402
+ /** The largest state the model reads, in tokens. */
31403
+ MaxStateTokens?: number | null;
31404
+ }
31303
31405
  /**
31304
31406
  * The `ModelConfiguration` column on the three MODEL-CATALOG entities (`MJ: AI Model Types`,
31305
31407
  * `MJ: AI Models`, `MJ: AI Model Vendors`), which form an inherit-with-override cascade. Sections
@@ -31314,6 +31416,8 @@ export interface MJAIModelVendorEntity_IAIModelConfiguration {
31314
31416
  Vision?: MJAIModelVendorEntity_VisionConfigurationSettings | null;
31315
31417
  /** Audio (TTS/STT) knobs. Reserved. */
31316
31418
  Audio?: MJAIModelVendorEntity_AudioConfigurationSettings | null;
31419
+ /** Typed-decision limits. Honored at the catalog layers. */
31420
+ Decision?: MJAIModelVendorEntity_DecisionConfigurationSettings | null;
31317
31421
  }
31318
31422
  /**
31319
31423
  * The `PromptConfiguration` column on `MJ: AI Prompts` — per-prompt call-time knobs, layered ON TOP of the
@@ -31331,6 +31435,8 @@ export interface MJAIModelVendorEntity_IAIPromptConfiguration {
31331
31435
  Vision?: MJAIModelVendorEntity_VisionConfigurationSettings | null;
31332
31436
  /** Audio knobs. Reserved. */
31333
31437
  Audio?: MJAIModelVendorEntity_AudioConfigurationSettings | null;
31438
+ /** Typed-decision limits. Reserved at this layer. */
31439
+ Decision?: MJAIModelVendorEntity_DecisionConfigurationSettings | null;
31334
31440
  }
31335
31441
  /**
31336
31442
  * The `PromptConfiguration` column on `MJ: AI Prompt Models` — the most specific layer, overriding both
@@ -31345,6 +31451,25 @@ export interface MJAIModelVendorEntity_IAIPromptModelConfiguration {
31345
31451
  Vision?: MJAIModelVendorEntity_VisionConfigurationSettings | null;
31346
31452
  /** Audio knobs. Reserved. */
31347
31453
  Audio?: MJAIModelVendorEntity_AudioConfigurationSettings | null;
31454
+ /** Typed-decision limits. Reserved at this layer. */
31455
+ Decision?: MJAIModelVendorEntity_DecisionConfigurationSettings | null;
31456
+ }
31457
+ /**
31458
+ * `MJ: AI Vendors . Configuration` — the vendor's own configuration bag. General-purpose: a vendor
31459
+ * row carries settings that describe how this host serves models, of which the first key is
31460
+ * `ModelDefaults`. Add further vendor-level sections here as they arise; do not add capability
31461
+ * columns to AIVendor per knob.
31462
+ */
31463
+ export interface MJAIModelVendorEntity_IAIVendorConfiguration {
31464
+ /**
31465
+ * The default model configuration for EVERY model this vendor serves — the vendor layer of the
31466
+ * model-configuration cascade. Resolved ABOVE the model's own bag and BELOW the model-vendor row:
31467
+ * a host's statement about how it serves models beats the model's generic description, and the
31468
+ * model-vendor row is the tie-breaker where a host diverges for one model. The merge is per key,
31469
+ * so a default here only touches the keys it actually sets. First use: `LLM.PrefixPromptCache`
31470
+ * on OpenAI and x.ai, inherited by every model they serve.
31471
+ */
31472
+ ModelDefaults?: MJAIModelVendorEntity_IAIModelConfiguration | null;
31348
31473
  }
31349
31474
  /**
31350
31475
  * MJ: AI Model Vendors - strongly typed entity sub-class
@@ -31597,7 +31722,8 @@ export declare class MJAIModelVendorEntity extends BaseEntity<MJAIModelVendorEnt
31597
31722
  * Two kinds of type live here, and the distinction is the whole point of the file:
31598
31723
  *
31599
31724
  * 1. **Shared modality sections** (`MJAIModelEntity_LLMConfigurationSettings`, `MJAIModelEntity_RealtimeConfigurationSettings`,
31600
- * `MJAIModelEntity_VisionConfigurationSettings`, `MJAIModelEntity_AudioConfigurationSettings`) — what "the LLM configuration"
31725
+ * `MJAIModelEntity_VisionConfigurationSettings`, `MJAIModelEntity_AudioConfigurationSettings`, `MJAIModelEntity_DecisionConfigurationSettings`) —
31726
+ * what "the LLM configuration"
31601
31727
  * MEANS, defined once and reused by every layer that carries a configuration bag.
31602
31728
  * 2. **Per-table outer types** (`MJAIModelEntity_IAIModelConfiguration`, `MJAIModelEntity_IAIPromptConfiguration`,
31603
31729
  * `MJAIModelEntity_IAIPromptModelConfiguration`) — one per `JSONType`, so each table names its own type even
@@ -31606,7 +31732,8 @@ export declare class MJAIModelVendorEntity extends BaseEntity<MJAIModelVendorEnt
31606
31732
  * ```
31607
31733
  * MJ: AI Model Types . ModelConfiguration (type-wide default — e.g. every Realtime model)
31608
31734
  * < MJ: AI Models . ModelConfiguration (per-model)
31609
- * < MJ: AI Model Vendors . ModelConfiguration (per model-on-this-provider — the winner)
31735
+ * < MJ: AI Vendors . Configuration.ModelDefaults (host-wide default for every model this vendor serves)
31736
+ * < MJ: AI Model Vendors . ModelConfiguration (per model-on-this-provider — the tie-breaker, wins)
31610
31737
  *
31611
31738
  * MJ: AI Prompts . PromptConfiguration (per-prompt)
31612
31739
  * < MJ: AI Prompt Models . PromptConfiguration (per prompt-on-this-model — the winner)
@@ -31684,6 +31811,18 @@ export interface MJAIModelEntity_LLMConfigurationSettings {
31684
31811
  * only when the gate resolves native.
31685
31812
  */
31686
31813
  NativeToolResults?: boolean | null;
31814
+ /**
31815
+ * **Catalog layers only.** Whether this serving path's prompt cache is an exact BYTE-PREFIX match:
31816
+ * it reuses a prior request only when that request's entire prompt is a prefix of the new one
31817
+ * (OpenAI's automatic cache, xAI), so per-iteration framework state must be appended, never
31818
+ * replaced. Absent or `false` means a block or segment cache (Anthropic breakpoints, Gemini
31819
+ * implicit cache, Cerebras sliding cache), where a trailing per-iteration message can be replaced
31820
+ * in place — the safe default. Set `true` under `Configuration.ModelDefaults` on the VENDOR row of a prefix-cache provider so
31821
+ * every model it serves inherits it (the vendor default beats the model's own bag); a MODEL-VENDOR
31822
+ * row overrides it for one model on that host.
31823
+ * Consumed by the loop agent's trailing runtime-state layout.
31824
+ */
31825
+ PrefixPromptCache?: boolean | null;
31687
31826
  }
31688
31827
  /**
31689
31828
  * MJ-normalized turn-detection settings for realtime (speech-to-speech) models. Every field is
@@ -31748,6 +31887,24 @@ export interface MJAIModelEntity_VisionConfigurationSettings {
31748
31887
  export interface MJAIModelEntity_AudioConfigurationSettings {
31749
31888
  [key: string]: unknown;
31750
31889
  }
31890
+ /**
31891
+ * Typed-decision knobs, consumed at call time by the decision runner. They declare what a decision
31892
+ * model accepts, so an oversized request can be refused with a clear message before the call,
31893
+ * instead of being truncated or rejected by the provider. Each is a limit of the model itself: set
31894
+ * it on the catalog layers (`MJ: AI Models`, `MJ: AI Model Vendors`). Absent means no limit is
31895
+ * declared. A decision always needs at least two Choice options or Score levels; that minimum
31896
+ * belongs to `BaseDecision`, not to this bag.
31897
+ */
31898
+ export interface MJAIModelEntity_DecisionConfigurationSettings {
31899
+ /** The most questions one call may carry. */
31900
+ MaxQuestionsPerCall?: number | null;
31901
+ /** The most options one Choice question may list. */
31902
+ MaxChoiceOptions?: number | null;
31903
+ /** The most levels one Score question may list. */
31904
+ MaxScoreLevels?: number | null;
31905
+ /** The largest state the model reads, in tokens. */
31906
+ MaxStateTokens?: number | null;
31907
+ }
31751
31908
  /**
31752
31909
  * The `ModelConfiguration` column on the three MODEL-CATALOG entities (`MJ: AI Model Types`,
31753
31910
  * `MJ: AI Models`, `MJ: AI Model Vendors`), which form an inherit-with-override cascade. Sections
@@ -31762,6 +31919,8 @@ export interface MJAIModelEntity_IAIModelConfiguration {
31762
31919
  Vision?: MJAIModelEntity_VisionConfigurationSettings | null;
31763
31920
  /** Audio (TTS/STT) knobs. Reserved. */
31764
31921
  Audio?: MJAIModelEntity_AudioConfigurationSettings | null;
31922
+ /** Typed-decision limits. Honored at the catalog layers. */
31923
+ Decision?: MJAIModelEntity_DecisionConfigurationSettings | null;
31765
31924
  }
31766
31925
  /**
31767
31926
  * The `PromptConfiguration` column on `MJ: AI Prompts` — per-prompt call-time knobs, layered ON TOP of the
@@ -31779,6 +31938,8 @@ export interface MJAIModelEntity_IAIPromptConfiguration {
31779
31938
  Vision?: MJAIModelEntity_VisionConfigurationSettings | null;
31780
31939
  /** Audio knobs. Reserved. */
31781
31940
  Audio?: MJAIModelEntity_AudioConfigurationSettings | null;
31941
+ /** Typed-decision limits. Reserved at this layer. */
31942
+ Decision?: MJAIModelEntity_DecisionConfigurationSettings | null;
31782
31943
  }
31783
31944
  /**
31784
31945
  * The `PromptConfiguration` column on `MJ: AI Prompt Models` — the most specific layer, overriding both
@@ -31793,6 +31954,25 @@ export interface MJAIModelEntity_IAIPromptModelConfiguration {
31793
31954
  Vision?: MJAIModelEntity_VisionConfigurationSettings | null;
31794
31955
  /** Audio knobs. Reserved. */
31795
31956
  Audio?: MJAIModelEntity_AudioConfigurationSettings | null;
31957
+ /** Typed-decision limits. Reserved at this layer. */
31958
+ Decision?: MJAIModelEntity_DecisionConfigurationSettings | null;
31959
+ }
31960
+ /**
31961
+ * `MJ: AI Vendors . Configuration` — the vendor's own configuration bag. General-purpose: a vendor
31962
+ * row carries settings that describe how this host serves models, of which the first key is
31963
+ * `ModelDefaults`. Add further vendor-level sections here as they arise; do not add capability
31964
+ * columns to AIVendor per knob.
31965
+ */
31966
+ export interface MJAIModelEntity_IAIVendorConfiguration {
31967
+ /**
31968
+ * The default model configuration for EVERY model this vendor serves — the vendor layer of the
31969
+ * model-configuration cascade. Resolved ABOVE the model's own bag and BELOW the model-vendor row:
31970
+ * a host's statement about how it serves models beats the model's generic description, and the
31971
+ * model-vendor row is the tie-breaker where a host diverges for one model. The merge is per key,
31972
+ * so a default here only touches the keys it actually sets. First use: `LLM.PrefixPromptCache`
31973
+ * on OpenAI and x.ai, inherited by every model they serve.
31974
+ */
31975
+ ModelDefaults?: MJAIModelEntity_IAIModelConfiguration | null;
31796
31976
  }
31797
31977
  /**
31798
31978
  * MJ: AI Models - strongly typed entity sub-class
@@ -32505,7 +32685,8 @@ export declare class MJAIPromptCategoryEntity extends BaseEntity<MJAIPromptCateg
32505
32685
  * Two kinds of type live here, and the distinction is the whole point of the file:
32506
32686
  *
32507
32687
  * 1. **Shared modality sections** (`MJAIPromptModelEntity_LLMConfigurationSettings`, `MJAIPromptModelEntity_RealtimeConfigurationSettings`,
32508
- * `MJAIPromptModelEntity_VisionConfigurationSettings`, `MJAIPromptModelEntity_AudioConfigurationSettings`) — what "the LLM configuration"
32688
+ * `MJAIPromptModelEntity_VisionConfigurationSettings`, `MJAIPromptModelEntity_AudioConfigurationSettings`, `MJAIPromptModelEntity_DecisionConfigurationSettings`) —
32689
+ * what "the LLM configuration"
32509
32690
  * MEANS, defined once and reused by every layer that carries a configuration bag.
32510
32691
  * 2. **Per-table outer types** (`MJAIPromptModelEntity_IAIModelConfiguration`, `MJAIPromptModelEntity_IAIPromptConfiguration`,
32511
32692
  * `MJAIPromptModelEntity_IAIPromptModelConfiguration`) — one per `JSONType`, so each table names its own type even
@@ -32514,7 +32695,8 @@ export declare class MJAIPromptCategoryEntity extends BaseEntity<MJAIPromptCateg
32514
32695
  * ```
32515
32696
  * MJ: AI Model Types . ModelConfiguration (type-wide default — e.g. every Realtime model)
32516
32697
  * < MJ: AI Models . ModelConfiguration (per-model)
32517
- * < MJ: AI Model Vendors . ModelConfiguration (per model-on-this-provider — the winner)
32698
+ * < MJ: AI Vendors . Configuration.ModelDefaults (host-wide default for every model this vendor serves)
32699
+ * < MJ: AI Model Vendors . ModelConfiguration (per model-on-this-provider — the tie-breaker, wins)
32518
32700
  *
32519
32701
  * MJ: AI Prompts . PromptConfiguration (per-prompt)
32520
32702
  * < MJ: AI Prompt Models . PromptConfiguration (per prompt-on-this-model — the winner)
@@ -32592,6 +32774,18 @@ export interface MJAIPromptModelEntity_LLMConfigurationSettings {
32592
32774
  * only when the gate resolves native.
32593
32775
  */
32594
32776
  NativeToolResults?: boolean | null;
32777
+ /**
32778
+ * **Catalog layers only.** Whether this serving path's prompt cache is an exact BYTE-PREFIX match:
32779
+ * it reuses a prior request only when that request's entire prompt is a prefix of the new one
32780
+ * (OpenAI's automatic cache, xAI), so per-iteration framework state must be appended, never
32781
+ * replaced. Absent or `false` means a block or segment cache (Anthropic breakpoints, Gemini
32782
+ * implicit cache, Cerebras sliding cache), where a trailing per-iteration message can be replaced
32783
+ * in place — the safe default. Set `true` under `Configuration.ModelDefaults` on the VENDOR row of a prefix-cache provider so
32784
+ * every model it serves inherits it (the vendor default beats the model's own bag); a MODEL-VENDOR
32785
+ * row overrides it for one model on that host.
32786
+ * Consumed by the loop agent's trailing runtime-state layout.
32787
+ */
32788
+ PrefixPromptCache?: boolean | null;
32595
32789
  }
32596
32790
  /**
32597
32791
  * MJ-normalized turn-detection settings for realtime (speech-to-speech) models. Every field is
@@ -32656,6 +32850,24 @@ export interface MJAIPromptModelEntity_VisionConfigurationSettings {
32656
32850
  export interface MJAIPromptModelEntity_AudioConfigurationSettings {
32657
32851
  [key: string]: unknown;
32658
32852
  }
32853
+ /**
32854
+ * Typed-decision knobs, consumed at call time by the decision runner. They declare what a decision
32855
+ * model accepts, so an oversized request can be refused with a clear message before the call,
32856
+ * instead of being truncated or rejected by the provider. Each is a limit of the model itself: set
32857
+ * it on the catalog layers (`MJ: AI Models`, `MJ: AI Model Vendors`). Absent means no limit is
32858
+ * declared. A decision always needs at least two Choice options or Score levels; that minimum
32859
+ * belongs to `BaseDecision`, not to this bag.
32860
+ */
32861
+ export interface MJAIPromptModelEntity_DecisionConfigurationSettings {
32862
+ /** The most questions one call may carry. */
32863
+ MaxQuestionsPerCall?: number | null;
32864
+ /** The most options one Choice question may list. */
32865
+ MaxChoiceOptions?: number | null;
32866
+ /** The most levels one Score question may list. */
32867
+ MaxScoreLevels?: number | null;
32868
+ /** The largest state the model reads, in tokens. */
32869
+ MaxStateTokens?: number | null;
32870
+ }
32659
32871
  /**
32660
32872
  * The `ModelConfiguration` column on the three MODEL-CATALOG entities (`MJ: AI Model Types`,
32661
32873
  * `MJ: AI Models`, `MJ: AI Model Vendors`), which form an inherit-with-override cascade. Sections
@@ -32670,6 +32882,8 @@ export interface MJAIPromptModelEntity_IAIModelConfiguration {
32670
32882
  Vision?: MJAIPromptModelEntity_VisionConfigurationSettings | null;
32671
32883
  /** Audio (TTS/STT) knobs. Reserved. */
32672
32884
  Audio?: MJAIPromptModelEntity_AudioConfigurationSettings | null;
32885
+ /** Typed-decision limits. Honored at the catalog layers. */
32886
+ Decision?: MJAIPromptModelEntity_DecisionConfigurationSettings | null;
32673
32887
  }
32674
32888
  /**
32675
32889
  * The `PromptConfiguration` column on `MJ: AI Prompts` — per-prompt call-time knobs, layered ON TOP of the
@@ -32687,6 +32901,8 @@ export interface MJAIPromptModelEntity_IAIPromptConfiguration {
32687
32901
  Vision?: MJAIPromptModelEntity_VisionConfigurationSettings | null;
32688
32902
  /** Audio knobs. Reserved. */
32689
32903
  Audio?: MJAIPromptModelEntity_AudioConfigurationSettings | null;
32904
+ /** Typed-decision limits. Reserved at this layer. */
32905
+ Decision?: MJAIPromptModelEntity_DecisionConfigurationSettings | null;
32690
32906
  }
32691
32907
  /**
32692
32908
  * The `PromptConfiguration` column on `MJ: AI Prompt Models` — the most specific layer, overriding both
@@ -32701,6 +32917,25 @@ export interface MJAIPromptModelEntity_IAIPromptModelConfiguration {
32701
32917
  Vision?: MJAIPromptModelEntity_VisionConfigurationSettings | null;
32702
32918
  /** Audio knobs. Reserved. */
32703
32919
  Audio?: MJAIPromptModelEntity_AudioConfigurationSettings | null;
32920
+ /** Typed-decision limits. Reserved at this layer. */
32921
+ Decision?: MJAIPromptModelEntity_DecisionConfigurationSettings | null;
32922
+ }
32923
+ /**
32924
+ * `MJ: AI Vendors . Configuration` — the vendor's own configuration bag. General-purpose: a vendor
32925
+ * row carries settings that describe how this host serves models, of which the first key is
32926
+ * `ModelDefaults`. Add further vendor-level sections here as they arise; do not add capability
32927
+ * columns to AIVendor per knob.
32928
+ */
32929
+ export interface MJAIPromptModelEntity_IAIVendorConfiguration {
32930
+ /**
32931
+ * The default model configuration for EVERY model this vendor serves — the vendor layer of the
32932
+ * model-configuration cascade. Resolved ABOVE the model's own bag and BELOW the model-vendor row:
32933
+ * a host's statement about how it serves models beats the model's generic description, and the
32934
+ * model-vendor row is the tie-breaker where a host diverges for one model. The merge is per key,
32935
+ * so a default here only touches the keys it actually sets. First use: `LLM.PrefixPromptCache`
32936
+ * on OpenAI and x.ai, inherited by every model they serve.
32937
+ */
32938
+ ModelDefaults?: MJAIPromptModelEntity_IAIModelConfiguration | null;
32704
32939
  }
32705
32940
  /**
32706
32941
  * MJ: AI Prompt Models - strongly typed entity sub-class
@@ -33322,7 +33557,7 @@ export declare class MJAIPromptRunEntity extends BaseEntity<MJAIPromptRunEntityT
33322
33557
  /**
33323
33558
  * * Field Name: TotalCost
33324
33559
  * * Display Name: Total Cost
33325
- * * SQL Data Type: decimal(18, 6)
33560
+ * * SQL Data Type: decimal(19, 8)
33326
33561
  * * Description: Total cost of this prompt run including its own cost plus all descendant costs. Calculated as Cost + DescendantCost. This value is stored (not computed) for query performance. Currency is specified in CostCurrency field.
33327
33562
  */
33328
33563
  get TotalCost(): number | null;
@@ -33521,7 +33756,7 @@ export declare class MJAIPromptRunEntity extends BaseEntity<MJAIPromptRunEntityT
33521
33756
  /**
33522
33757
  * * Field Name: DescendantCost
33523
33758
  * * Display Name: Descendant Cost
33524
- * * SQL Data Type: decimal(18, 6)
33759
+ * * SQL Data Type: decimal(19, 8)
33525
33760
  * * 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.
33526
33761
  */
33527
33762
  get DescendantCost(): number | null;
@@ -33981,6 +34216,15 @@ export declare class MJAIPromptRunEntity extends BaseEntity<MJAIPromptRunEntityT
33981
34216
  get ToolCallingMode(): 'Envelope' | 'Native' | 'NativeFallback' | 'NativeImplicit' | null;
33982
34217
  set ToolCallingMode(value: 'Envelope' | 'Native' | 'NativeFallback' | 'NativeImplicit' | null);
33983
34218
  /**
34219
+ * * Field Name: UserID
34220
+ * * Display Name: User ID
34221
+ * * SQL Data Type: uniqueidentifier
34222
+ * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)
34223
+ * * Description: The user on whose behalf this prompt was executed, written when the run is created. NULL for automated/unauthenticated runs and for runs that pre-date this column. For an agent-driven run the agent run's user is also reachable through AIAgentRunStep.TargetLogID, which vwAIUsageFacts falls back to.
34224
+ */
34225
+ get UserID(): string | null;
34226
+ set UserID(value: string | null);
34227
+ /**
33984
34228
  * * Field Name: Prompt
33985
34229
  * * Display Name: Prompt
33986
34230
  * * SQL Data Type: nvarchar(255)
@@ -34053,6 +34297,12 @@ export declare class MJAIPromptRunEntity extends BaseEntity<MJAIPromptRunEntityT
34053
34297
  */
34054
34298
  get UsageType(): string | null;
34055
34299
  /**
34300
+ * * Field Name: User
34301
+ * * Display Name: User
34302
+ * * SQL Data Type: nvarchar(100)
34303
+ */
34304
+ get User(): string | null;
34305
+ /**
34056
34306
  * * Field Name: RootParentID
34057
34307
  * * Display Name: Root Parent
34058
34308
  * * SQL Data Type: uniqueidentifier
@@ -34150,7 +34400,8 @@ export declare class MJAIPromptTypeEntity extends BaseEntity<MJAIPromptTypeEntit
34150
34400
  * Two kinds of type live here, and the distinction is the whole point of the file:
34151
34401
  *
34152
34402
  * 1. **Shared modality sections** (`MJAIPromptEntity_LLMConfigurationSettings`, `MJAIPromptEntity_RealtimeConfigurationSettings`,
34153
- * `MJAIPromptEntity_VisionConfigurationSettings`, `MJAIPromptEntity_AudioConfigurationSettings`) — what "the LLM configuration"
34403
+ * `MJAIPromptEntity_VisionConfigurationSettings`, `MJAIPromptEntity_AudioConfigurationSettings`, `MJAIPromptEntity_DecisionConfigurationSettings`) —
34404
+ * what "the LLM configuration"
34154
34405
  * MEANS, defined once and reused by every layer that carries a configuration bag.
34155
34406
  * 2. **Per-table outer types** (`MJAIPromptEntity_IAIModelConfiguration`, `MJAIPromptEntity_IAIPromptConfiguration`,
34156
34407
  * `MJAIPromptEntity_IAIPromptModelConfiguration`) — one per `JSONType`, so each table names its own type even
@@ -34159,7 +34410,8 @@ export declare class MJAIPromptTypeEntity extends BaseEntity<MJAIPromptTypeEntit
34159
34410
  * ```
34160
34411
  * MJ: AI Model Types . ModelConfiguration (type-wide default — e.g. every Realtime model)
34161
34412
  * < MJ: AI Models . ModelConfiguration (per-model)
34162
- * < MJ: AI Model Vendors . ModelConfiguration (per model-on-this-provider — the winner)
34413
+ * < MJ: AI Vendors . Configuration.ModelDefaults (host-wide default for every model this vendor serves)
34414
+ * < MJ: AI Model Vendors . ModelConfiguration (per model-on-this-provider — the tie-breaker, wins)
34163
34415
  *
34164
34416
  * MJ: AI Prompts . PromptConfiguration (per-prompt)
34165
34417
  * < MJ: AI Prompt Models . PromptConfiguration (per prompt-on-this-model — the winner)
@@ -34237,6 +34489,18 @@ export interface MJAIPromptEntity_LLMConfigurationSettings {
34237
34489
  * only when the gate resolves native.
34238
34490
  */
34239
34491
  NativeToolResults?: boolean | null;
34492
+ /**
34493
+ * **Catalog layers only.** Whether this serving path's prompt cache is an exact BYTE-PREFIX match:
34494
+ * it reuses a prior request only when that request's entire prompt is a prefix of the new one
34495
+ * (OpenAI's automatic cache, xAI), so per-iteration framework state must be appended, never
34496
+ * replaced. Absent or `false` means a block or segment cache (Anthropic breakpoints, Gemini
34497
+ * implicit cache, Cerebras sliding cache), where a trailing per-iteration message can be replaced
34498
+ * in place — the safe default. Set `true` under `Configuration.ModelDefaults` on the VENDOR row of a prefix-cache provider so
34499
+ * every model it serves inherits it (the vendor default beats the model's own bag); a MODEL-VENDOR
34500
+ * row overrides it for one model on that host.
34501
+ * Consumed by the loop agent's trailing runtime-state layout.
34502
+ */
34503
+ PrefixPromptCache?: boolean | null;
34240
34504
  }
34241
34505
  /**
34242
34506
  * MJ-normalized turn-detection settings for realtime (speech-to-speech) models. Every field is
@@ -34301,6 +34565,24 @@ export interface MJAIPromptEntity_VisionConfigurationSettings {
34301
34565
  export interface MJAIPromptEntity_AudioConfigurationSettings {
34302
34566
  [key: string]: unknown;
34303
34567
  }
34568
+ /**
34569
+ * Typed-decision knobs, consumed at call time by the decision runner. They declare what a decision
34570
+ * model accepts, so an oversized request can be refused with a clear message before the call,
34571
+ * instead of being truncated or rejected by the provider. Each is a limit of the model itself: set
34572
+ * it on the catalog layers (`MJ: AI Models`, `MJ: AI Model Vendors`). Absent means no limit is
34573
+ * declared. A decision always needs at least two Choice options or Score levels; that minimum
34574
+ * belongs to `BaseDecision`, not to this bag.
34575
+ */
34576
+ export interface MJAIPromptEntity_DecisionConfigurationSettings {
34577
+ /** The most questions one call may carry. */
34578
+ MaxQuestionsPerCall?: number | null;
34579
+ /** The most options one Choice question may list. */
34580
+ MaxChoiceOptions?: number | null;
34581
+ /** The most levels one Score question may list. */
34582
+ MaxScoreLevels?: number | null;
34583
+ /** The largest state the model reads, in tokens. */
34584
+ MaxStateTokens?: number | null;
34585
+ }
34304
34586
  /**
34305
34587
  * The `ModelConfiguration` column on the three MODEL-CATALOG entities (`MJ: AI Model Types`,
34306
34588
  * `MJ: AI Models`, `MJ: AI Model Vendors`), which form an inherit-with-override cascade. Sections
@@ -34315,6 +34597,8 @@ export interface MJAIPromptEntity_IAIModelConfiguration {
34315
34597
  Vision?: MJAIPromptEntity_VisionConfigurationSettings | null;
34316
34598
  /** Audio (TTS/STT) knobs. Reserved. */
34317
34599
  Audio?: MJAIPromptEntity_AudioConfigurationSettings | null;
34600
+ /** Typed-decision limits. Honored at the catalog layers. */
34601
+ Decision?: MJAIPromptEntity_DecisionConfigurationSettings | null;
34318
34602
  }
34319
34603
  /**
34320
34604
  * The `PromptConfiguration` column on `MJ: AI Prompts` — per-prompt call-time knobs, layered ON TOP of the
@@ -34332,6 +34616,8 @@ export interface MJAIPromptEntity_IAIPromptConfiguration {
34332
34616
  Vision?: MJAIPromptEntity_VisionConfigurationSettings | null;
34333
34617
  /** Audio knobs. Reserved. */
34334
34618
  Audio?: MJAIPromptEntity_AudioConfigurationSettings | null;
34619
+ /** Typed-decision limits. Reserved at this layer. */
34620
+ Decision?: MJAIPromptEntity_DecisionConfigurationSettings | null;
34335
34621
  }
34336
34622
  /**
34337
34623
  * The `PromptConfiguration` column on `MJ: AI Prompt Models` — the most specific layer, overriding both
@@ -34346,6 +34632,25 @@ export interface MJAIPromptEntity_IAIPromptModelConfiguration {
34346
34632
  Vision?: MJAIPromptEntity_VisionConfigurationSettings | null;
34347
34633
  /** Audio knobs. Reserved. */
34348
34634
  Audio?: MJAIPromptEntity_AudioConfigurationSettings | null;
34635
+ /** Typed-decision limits. Reserved at this layer. */
34636
+ Decision?: MJAIPromptEntity_DecisionConfigurationSettings | null;
34637
+ }
34638
+ /**
34639
+ * `MJ: AI Vendors . Configuration` — the vendor's own configuration bag. General-purpose: a vendor
34640
+ * row carries settings that describe how this host serves models, of which the first key is
34641
+ * `ModelDefaults`. Add further vendor-level sections here as they arise; do not add capability
34642
+ * columns to AIVendor per knob.
34643
+ */
34644
+ export interface MJAIPromptEntity_IAIVendorConfiguration {
34645
+ /**
34646
+ * The default model configuration for EVERY model this vendor serves — the vendor layer of the
34647
+ * model-configuration cascade. Resolved ABOVE the model's own bag and BELOW the model-vendor row:
34648
+ * a host's statement about how it serves models beats the model's generic description, and the
34649
+ * model-vendor row is the tie-breaker where a host diverges for one model. The merge is per key,
34650
+ * so a default here only touches the keys it actually sets. First use: `LLM.PrefixPromptCache`
34651
+ * on OpenAI and x.ai, inherited by every model they serve.
34652
+ */
34653
+ ModelDefaults?: MJAIPromptEntity_IAIModelConfiguration | null;
34349
34654
  }
34350
34655
  /**
34351
34656
  * MJ: AI Prompts - strongly typed entity sub-class
@@ -36294,6 +36599,264 @@ export declare class MJAIVendorTypeEntity extends BaseEntity<MJAIVendorTypeEntit
36294
36599
  */
36295
36600
  get Type(): string;
36296
36601
  }
36602
+ /**
36603
+ * The AI stack's per-modality configuration bags — ONE source of truth for every layer.
36604
+ *
36605
+ * Two kinds of type live here, and the distinction is the whole point of the file:
36606
+ *
36607
+ * 1. **Shared modality sections** (`MJAIVendorEntity_LLMConfigurationSettings`, `MJAIVendorEntity_RealtimeConfigurationSettings`,
36608
+ * `MJAIVendorEntity_VisionConfigurationSettings`, `MJAIVendorEntity_AudioConfigurationSettings`, `MJAIVendorEntity_DecisionConfigurationSettings`) —
36609
+ * what "the LLM configuration"
36610
+ * MEANS, defined once and reused by every layer that carries a configuration bag.
36611
+ * 2. **Per-table outer types** (`MJAIVendorEntity_IAIModelConfiguration`, `MJAIVendorEntity_IAIPromptConfiguration`,
36612
+ * `MJAIVendorEntity_IAIPromptModelConfiguration`) — one per `JSONType`, so each table names its own type even
36613
+ * though they compose the same sections.
36614
+ *
36615
+ * ```
36616
+ * MJ: AI Model Types . ModelConfiguration (type-wide default — e.g. every Realtime model)
36617
+ * < MJ: AI Models . ModelConfiguration (per-model)
36618
+ * < MJ: AI Vendors . Configuration.ModelDefaults (host-wide default for every model this vendor serves)
36619
+ * < MJ: AI Model Vendors . ModelConfiguration (per model-on-this-provider — the tie-breaker, wins)
36620
+ *
36621
+ * MJ: AI Prompts . PromptConfiguration (per-prompt)
36622
+ * < MJ: AI Prompt Models . PromptConfiguration (per prompt-on-this-model — the winner)
36623
+ * ```
36624
+ *
36625
+ * The catalog cascade is resolved base-first with per-key deep merge by
36626
+ * `ResolveEffectiveModelConfiguration` in `@memberjunction/ai`; the prompt cascade is resolved by
36627
+ * the prompt runner, which layers the prompt bags ON TOP of the catalog result.
36628
+ *
36629
+ * **Why one file**: `EntityField.JSONTypeDefinition` stores this text VERBATIM, and CodeGen emits
36630
+ * it inline above each entity class with every top-level name prefixed (`MJAIModelEntity_…`). It
36631
+ * therefore has to be self-contained — a definition cannot `import` a sibling, and `@file:`
36632
+ * substitutes a whole file rather than splicing one into another. Keeping every AI configuration
36633
+ * type in ONE file is what makes a shared section possible at all; the cost is that each of the
36634
+ * five entities emits the full (prefixed) set, including outer types it does not use.
36635
+ *
36636
+ * **Lockstep contract**: this file is the JSONType SOURCE; its package-side mirror is
36637
+ * `packages/AI/Core/src/generic/modelConfiguration.ts` in `@memberjunction/ai`, which runtime code
36638
+ * compiles against. Keep the two in step when adding a section or property — the same pact
36639
+ * `IAgentSettings` follows with `@memberjunction/ai-core-plus`.
36640
+ *
36641
+ * **Boundary rule**: anything the engine filters, sorts, or joins on stays a COLUMN (`PowerRank`,
36642
+ * `IsActive`, `Priority`, `Status` — SQL cannot cheaply predicate into this bag); anything a driver
36643
+ * or runner consumes at call time belongs HERE. New capability knobs go in the bag — do not add a
36644
+ * capability column per knob. A knob graduates to a real column when it needs a foreign key or
36645
+ * becomes a first-class thing the platform reasons about.
36646
+ */
36647
+ /**
36648
+ * Text-generation knobs, consumed by the LLM drivers and the prompt runner at call time.
36649
+ *
36650
+ * Every flag is TRI-STATE (`boolean | null | absent`) and the three differ: the cascade REPLACES on
36651
+ * any explicit value (including `null`) and only skips a layer that OMITS the property. So absent
36652
+ * means "inherit", while an explicit value at a higher layer overrides a lower one even when false.
36653
+ *
36654
+ * Properties are marked with the layers that HONOR them. A property set at a layer that does not
36655
+ * honor it is inert, not an error — that tolerance is deliberate, so a knob can move between layers
36656
+ * without a schema change.
36657
+ */
36658
+ export interface MJAIVendorEntity_LLMConfigurationSettings {
36659
+ /**
36660
+ * **Catalog layers only** (model type / model / model vendor). Whether this model — or this
36661
+ * vendor's serving of it — supports native tool/function calling.
36662
+ *
36663
+ * CAPABILITY flag, and a hard gate: no policy or preference at any layer can force tools onto a
36664
+ * (model, vendor) whose resolved value is not true. Set `false` only for a model or serving path
36665
+ * verified NOT to support tools; leave absent when support is unknown, because absent is the
36666
+ * honest value and it inherits.
36667
+ */
36668
+ SupportsNativeToolCalling?: boolean | null;
36669
+ /**
36670
+ * **Catalog layers only.** Whether prompts run against this model default to native tool calling
36671
+ * when they express no preference of their own. POLICY flag — subordinate to
36672
+ * {@link MJAIVendorEntity_LLMConfigurationSettings.SupportsNativeToolCalling}.
36673
+ */
36674
+ DefaultToNativeToolCalling?: boolean | null;
36675
+ /**
36676
+ * **Prompt layers only** (prompt / prompt model). Whether THIS prompt asks for native tool
36677
+ * calling. PREFERENCE — it outranks the catalog's `DefaultToNativeToolCalling`, and is still
36678
+ * subordinate to the capability gate. Absent means "no preference; fall through to the model's
36679
+ * default".
36680
+ */
36681
+ UseNativeToolCalling?: boolean | null;
36682
+ /**
36683
+ * **Catalog layers only.** How control flow is expressed when a request resolves to native tool
36684
+ * calling. `'envelope'` (the default when absent) is the hybrid: Actions are tools, everything
36685
+ * else — completion, chat, delegation, payload changes — is the JSON envelope. `'implicit'` is the
36686
+ * implicit protocol: sub-agents, `payload_change_request` and `ask_user` are tools too, a tool call
36687
+ * continues the loop, and plain text with no call ends the turn as task completion. Consulted only
36688
+ * when the gate resolves native; subordinate to {@link MJAIVendorEntity_LLMConfigurationSettings.SupportsNativeToolCalling}.
36689
+ */
36690
+ NativeControlFlow?: 'envelope' | 'implicit' | null;
36691
+ /**
36692
+ * **Catalog layers only.** Whether action results are returned to the model as native tool-result
36693
+ * turns instead of a markdown "Action results" user message. Absent means `false`. Consulted
36694
+ * only when the gate resolves native.
36695
+ */
36696
+ NativeToolResults?: boolean | null;
36697
+ /**
36698
+ * **Catalog layers only.** Whether this serving path's prompt cache is an exact BYTE-PREFIX match:
36699
+ * it reuses a prior request only when that request's entire prompt is a prefix of the new one
36700
+ * (OpenAI's automatic cache, xAI), so per-iteration framework state must be appended, never
36701
+ * replaced. Absent or `false` means a block or segment cache (Anthropic breakpoints, Gemini
36702
+ * implicit cache, Cerebras sliding cache), where a trailing per-iteration message can be replaced
36703
+ * in place — the safe default. Set `true` under `Configuration.ModelDefaults` on the VENDOR row of a prefix-cache provider so
36704
+ * every model it serves inherits it (the vendor default beats the model's own bag); a MODEL-VENDOR
36705
+ * row overrides it for one model on that host.
36706
+ * Consumed by the loop agent's trailing runtime-state layout.
36707
+ */
36708
+ PrefixPromptCache?: boolean | null;
36709
+ }
36710
+ /**
36711
+ * MJ-normalized turn-detection settings for realtime (speech-to-speech) models. Every field is
36712
+ * optional; absent fields contribute nothing. Provider profiles translate this vocabulary to their
36713
+ * native wire block, and an unsupported value is diagnostic-logged and falls back to the profile
36714
+ * default — a wrong inherited value degrades safely, it never rejects a session.
36715
+ */
36716
+ export interface MJAIVendorEntity_RealtimeTurnDetectionSettings {
36717
+ /**
36718
+ * - `'default'` — let the provider profile decide (today's behavior).
36719
+ * - `'serverVad'` — classic silence-based server VAD.
36720
+ * - `'semanticVad'` — semantic end-of-utterance detection (OpenAI `semantic_vad`).
36721
+ * - `'native'` — this model's smartest documented turn/duplex mode, whatever the profile maps it
36722
+ * to; the forward slot for full-duplex reasoning voice models.
36723
+ */
36724
+ Mode?: 'default' | 'serverVad' | 'semanticVad' | 'native' | null;
36725
+ /** Semantic-VAD aggressiveness (OpenAI `eagerness`); ignored without a mapping. */
36726
+ Eagerness?: 'low' | 'auto' | 'high' | null;
36727
+ /** Server-VAD activation threshold (0–1); ignored without a mapping. */
36728
+ Threshold?: number | null;
36729
+ /** Server-VAD trailing-silence duration in ms; ignored without a mapping. */
36730
+ SilenceDurationMs?: number | null;
36731
+ }
36732
+ /**
36733
+ * Reasoning-plane settings for realtime models — dual delegation configuration. Absent defaults to
36734
+ * `'local'`.
36735
+ */
36736
+ export interface MJAIVendorEntity_RealtimeReasoningSettings {
36737
+ /**
36738
+ * Which plane handles reasoning:
36739
+ * - `'local'` — application/agent loop (default).
36740
+ * - `'remote'` — delegated to remote model or hosted agent.
36741
+ */
36742
+ Plane?: 'local' | 'remote' | null;
36743
+ /** Remote reasoning target configuration. */
36744
+ Remote?: {
36745
+ Kind?: 'model' | 'hostedAgent' | null;
36746
+ Ref?: string | null;
36747
+ Effort?: 'none' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh' | null;
36748
+ MaxOutputTokens?: number | null;
36749
+ } | null;
36750
+ }
36751
+ /** Realtime (speech-to-speech) knobs. */
36752
+ export interface MJAIVendorEntity_RealtimeConfigurationSettings {
36753
+ /**
36754
+ * Catalog-level turn-detection default for this model. Folded into the realtime session Config
36755
+ * bag as the `turnDetection` key BELOW the agent/app config cascade
36756
+ * (`realtime.session.turnDetection`) and the runtime override — the catalog supplies the
36757
+ * default, agents/apps/callers refine it.
36758
+ */
36759
+ TurnDetection?: MJAIVendorEntity_RealtimeTurnDetectionSettings | null;
36760
+ /**
36761
+ * Reasoning plane settings — dual delegation configuration. Absent defaults to `'local'`.
36762
+ */
36763
+ Reasoning?: MJAIVendorEntity_RealtimeReasoningSettings | null;
36764
+ }
36765
+ /** Vision knobs. Reserved — no consumers yet. */
36766
+ export interface MJAIVendorEntity_VisionConfigurationSettings {
36767
+ [key: string]: unknown;
36768
+ }
36769
+ /** Audio (TTS/STT) knobs. Reserved — no consumers yet. */
36770
+ export interface MJAIVendorEntity_AudioConfigurationSettings {
36771
+ [key: string]: unknown;
36772
+ }
36773
+ /**
36774
+ * Typed-decision knobs, consumed at call time by the decision runner. They declare what a decision
36775
+ * model accepts, so an oversized request can be refused with a clear message before the call,
36776
+ * instead of being truncated or rejected by the provider. Each is a limit of the model itself: set
36777
+ * it on the catalog layers (`MJ: AI Models`, `MJ: AI Model Vendors`). Absent means no limit is
36778
+ * declared. A decision always needs at least two Choice options or Score levels; that minimum
36779
+ * belongs to `BaseDecision`, not to this bag.
36780
+ */
36781
+ export interface MJAIVendorEntity_DecisionConfigurationSettings {
36782
+ /** The most questions one call may carry. */
36783
+ MaxQuestionsPerCall?: number | null;
36784
+ /** The most options one Choice question may list. */
36785
+ MaxChoiceOptions?: number | null;
36786
+ /** The most levels one Score question may list. */
36787
+ MaxScoreLevels?: number | null;
36788
+ /** The largest state the model reads, in tokens. */
36789
+ MaxStateTokens?: number | null;
36790
+ }
36791
+ /**
36792
+ * The `ModelConfiguration` column on the three MODEL-CATALOG entities (`MJ: AI Model Types`,
36793
+ * `MJ: AI Models`, `MJ: AI Model Vendors`), which form an inherit-with-override cascade. Sections
36794
+ * are per-modality so one catalog row can configure everything its model does.
36795
+ */
36796
+ export interface MJAIVendorEntity_IAIModelConfiguration {
36797
+ /** Text-generation knobs. Honors the catalog-layer properties. */
36798
+ LLM?: MJAIVendorEntity_LLMConfigurationSettings | null;
36799
+ /** Realtime (speech-to-speech) knobs. */
36800
+ Realtime?: MJAIVendorEntity_RealtimeConfigurationSettings | null;
36801
+ /** Vision knobs. Reserved. */
36802
+ Vision?: MJAIVendorEntity_VisionConfigurationSettings | null;
36803
+ /** Audio (TTS/STT) knobs. Reserved. */
36804
+ Audio?: MJAIVendorEntity_AudioConfigurationSettings | null;
36805
+ /** Typed-decision limits. Honored at the catalog layers. */
36806
+ Decision?: MJAIVendorEntity_DecisionConfigurationSettings | null;
36807
+ }
36808
+ /**
36809
+ * The `PromptConfiguration` column on `MJ: AI Prompts` — per-prompt call-time knobs, layered ON TOP of the
36810
+ * resolved model-catalog configuration by the prompt runner.
36811
+ *
36812
+ * The same anti-widening argument that produced `ModelConfiguration` applies here with more force:
36813
+ * `AIPrompt` already carries fifty-odd columns. New per-prompt call-time knobs land here.
36814
+ */
36815
+ export interface MJAIVendorEntity_IAIPromptConfiguration {
36816
+ /** Text-generation knobs. Honors the prompt-layer properties. */
36817
+ LLM?: MJAIVendorEntity_LLMConfigurationSettings | null;
36818
+ /** Realtime knobs. Reserved at this layer. */
36819
+ Realtime?: MJAIVendorEntity_RealtimeConfigurationSettings | null;
36820
+ /** Vision knobs. Reserved. */
36821
+ Vision?: MJAIVendorEntity_VisionConfigurationSettings | null;
36822
+ /** Audio knobs. Reserved. */
36823
+ Audio?: MJAIVendorEntity_AudioConfigurationSettings | null;
36824
+ /** Typed-decision limits. Reserved at this layer. */
36825
+ Decision?: MJAIVendorEntity_DecisionConfigurationSettings | null;
36826
+ }
36827
+ /**
36828
+ * The `PromptConfiguration` column on `MJ: AI Prompt Models` — the most specific layer, overriding both
36829
+ * the prompt's own bag and the model catalog for this one (prompt, model) pairing.
36830
+ */
36831
+ export interface MJAIVendorEntity_IAIPromptModelConfiguration {
36832
+ /** Text-generation knobs. Honors the prompt-layer properties. */
36833
+ LLM?: MJAIVendorEntity_LLMConfigurationSettings | null;
36834
+ /** Realtime knobs. Reserved at this layer. */
36835
+ Realtime?: MJAIVendorEntity_RealtimeConfigurationSettings | null;
36836
+ /** Vision knobs. Reserved. */
36837
+ Vision?: MJAIVendorEntity_VisionConfigurationSettings | null;
36838
+ /** Audio knobs. Reserved. */
36839
+ Audio?: MJAIVendorEntity_AudioConfigurationSettings | null;
36840
+ /** Typed-decision limits. Reserved at this layer. */
36841
+ Decision?: MJAIVendorEntity_DecisionConfigurationSettings | null;
36842
+ }
36843
+ /**
36844
+ * `MJ: AI Vendors . Configuration` — the vendor's own configuration bag. General-purpose: a vendor
36845
+ * row carries settings that describe how this host serves models, of which the first key is
36846
+ * `ModelDefaults`. Add further vendor-level sections here as they arise; do not add capability
36847
+ * columns to AIVendor per knob.
36848
+ */
36849
+ export interface MJAIVendorEntity_IAIVendorConfiguration {
36850
+ /**
36851
+ * The default model configuration for EVERY model this vendor serves — the vendor layer of the
36852
+ * model-configuration cascade. Resolved ABOVE the model's own bag and BELOW the model-vendor row:
36853
+ * a host's statement about how it serves models beats the model's generic description, and the
36854
+ * model-vendor row is the tie-breaker where a host diverges for one model. The merge is per key,
36855
+ * so a default here only touches the keys it actually sets. First use: `LLM.PrefixPromptCache`
36856
+ * on OpenAI and x.ai, inherited by every model they serve.
36857
+ */
36858
+ ModelDefaults?: MJAIVendorEntity_IAIModelConfiguration | null;
36859
+ }
36297
36860
  /**
36298
36861
  * MJ: AI Vendors - strongly typed entity sub-class
36299
36862
  * * Schema: __mj
@@ -36366,6 +36929,23 @@ export declare class MJAIVendorEntity extends BaseEntity<MJAIVendorEntityType> {
36366
36929
  get CredentialTypeID(): string | null;
36367
36930
  set CredentialTypeID(value: string | null);
36368
36931
  /**
36932
+ * * Field Name: Configuration
36933
+ * * Display Name: Configuration
36934
+ * * SQL Data Type: nvarchar(MAX)
36935
+ * * JSON Type: MJAIVendorEntity_IAIVendorConfiguration
36936
+ * * Description: Vendor configuration bag (JSON, IAIVendorConfiguration shape). Its ModelDefaults key is an IAIModelConfiguration bag (LLM / Realtime / Vision / Audio sections) that forms the default model configuration for every model this vendor serves: the vendor layer of the ModelConfiguration cascade, above AIModelType and AIModel and below AIModelVendor, which may override it per key. NULL = contributes nothing.
36937
+ */
36938
+ get Configuration(): string | null;
36939
+ set Configuration(value: string | null);
36940
+ private _ConfigurationObject_cached;
36941
+ private _ConfigurationObject_lastRaw;
36942
+ /**
36943
+ * Typed accessor for Configuration — returns parsed JSON as MJAIVendorEntity_IAIVendorConfiguration.
36944
+ * Uses lazy parsing with cache invalidation when the underlying raw value changes.
36945
+ */
36946
+ get ConfigurationObject(): MJAIVendorEntity_IAIVendorConfiguration | null;
36947
+ set ConfigurationObject(value: MJAIVendorEntity_IAIVendorConfiguration | null);
36948
+ /**
36369
36949
  * * Field Name: CredentialType
36370
36950
  * * Display Name: Credential Type
36371
36951
  * * SQL Data Type: nvarchar(100)
@@ -52960,6 +53540,20 @@ export interface MJEntityEntity_IEntitySubtypeSelectorConfig {
52960
53540
  * reading the target subtype entity name.
52961
53541
  */
52962
53542
  Path: string;
53543
+ /**
53544
+ * Whether `BaseEntity` also walks {@link Path} for a record it LOADS, not only for one it creates,
53545
+ * so the load can fetch the named child's row directly instead of first querying every child's
53546
+ * table. Optional; `false` or absent keeps loads as they were, with the discovery query.
53547
+ *
53548
+ * On load, only hops that a loaded `BaseEngine` holds as entity objects are walked. A hop that
53549
+ * isn't cached gives no hint, never a query. Turn it on when records of a subtyped type have
53550
+ * their subtype row: a record whose type names a child it has no row for costs one extra round
53551
+ * trip per load.
53552
+ *
53553
+ * Ignored while an `EntitySubtypeResolver` is registered for the entity: the resolver owns the
53554
+ * rule, and gives load hints by overriding its `ResolveLoadHint` method.
53555
+ */
53556
+ UseForLoadedRecords?: boolean;
52963
53557
  }
52964
53558
  /**
52965
53559
  * MJ: Entities - strongly typed entity sub-class
@@ -67641,6 +68235,15 @@ export declare class MJProjectEntity extends BaseEntity<MJProjectEntityType> {
67641
68235
  */
67642
68236
  get __mj_UpdatedAt(): Date;
67643
68237
  /**
68238
+ * * Field Name: OwnerUserID
68239
+ * * Display Name: Owner User ID
68240
+ * * SQL Data Type: uniqueidentifier
68241
+ * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)
68242
+ * * Description: The user who owns this folder, or NULL when the folder is shared with the whole environment. NULL (the value every pre-existing folder carries) means SHARED: visible to anyone who can read projects in the environment, which was the only possible behaviour before this column existed. A set value means PERSONAL: the folder belongs to that user and consumers filter it to them, so it stays out of other people's sidebars. Personal is opt-in at create time; nothing is migrated.
68243
+ */
68244
+ get OwnerUserID(): string | null;
68245
+ set OwnerUserID(value: string | null);
68246
+ /**
67644
68247
  * * Field Name: Environment
67645
68248
  * * Display Name: Environment
67646
68249
  * * SQL Data Type: nvarchar(255)
@@ -67653,6 +68256,12 @@ export declare class MJProjectEntity extends BaseEntity<MJProjectEntityType> {
67653
68256
  */
67654
68257
  get Parent(): string | null;
67655
68258
  /**
68259
+ * * Field Name: OwnerUser
68260
+ * * Display Name: Owner User
68261
+ * * SQL Data Type: nvarchar(100)
68262
+ */
68263
+ get OwnerUser(): string | null;
68264
+ /**
67656
68265
  * * Field Name: RootParentID
67657
68266
  * * Display Name: Root Parent ID
67658
68267
  * * SQL Data Type: uniqueidentifier