@memberjunction/core-entities 6.2.0-edge.5 → 6.2.0-edge.6

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 (30) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/custom/MJConversationDetailEntityExtended.d.ts +27 -3
  3. package/dist/custom/MJConversationDetailEntityExtended.d.ts.map +1 -1
  4. package/dist/custom/MJConversationDetailEntityExtended.js +96 -13
  5. package/dist/custom/MJConversationDetailEntityExtended.js.map +1 -1
  6. package/dist/custom/MJQueryEntityExtended.d.ts +37 -1
  7. package/dist/custom/MJQueryEntityExtended.d.ts.map +1 -1
  8. package/dist/custom/MJQueryEntityExtended.js +92 -5
  9. package/dist/custom/MJQueryEntityExtended.js.map +1 -1
  10. package/dist/custom/MJUserViewEntityExtended.d.ts +39 -4
  11. package/dist/custom/MJUserViewEntityExtended.d.ts.map +1 -1
  12. package/dist/custom/MJUserViewEntityExtended.js +111 -18
  13. package/dist/custom/MJUserViewEntityExtended.js.map +1 -1
  14. package/dist/custom/approvals.d.ts +55 -0
  15. package/dist/custom/approvals.d.ts.map +1 -0
  16. package/dist/custom/approvals.js +120 -0
  17. package/dist/custom/approvals.js.map +1 -0
  18. package/dist/engines/knowledgeHubMetadata.d.ts +8 -3
  19. package/dist/engines/knowledgeHubMetadata.d.ts.map +1 -1
  20. package/dist/engines/knowledgeHubMetadata.js +19 -2
  21. package/dist/engines/knowledgeHubMetadata.js.map +1 -1
  22. package/dist/generated/entities/__mj.d.ts +2385 -72
  23. package/dist/generated/entities/__mj.d.ts.map +1 -1
  24. package/dist/generated/entities/__mj.js +3487 -67
  25. package/dist/generated/entities/__mj.js.map +1 -1
  26. package/dist/index.d.ts +1 -0
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +1 -0
  29. package/dist/index.js.map +1 -1
  30. package/package.json +6 -6
@@ -2812,6 +2812,11 @@ each time the agent processes a prompt step.`),
2812
2812
  * * SQL Data Type: int
2813
2813
  * * Default Value: 0
2814
2814
  * * Description: How many task-graph continuations led to this run. 0 (the default, and the value every ordinary run carries) means the run was not started by a finished graph. A run started because a graph declared continuation='reinvoke' records its source graph's depth plus one, and any graph that run subsequently submits inherits that value — which is what allows MAX_REINVOKE_DEPTH to bound a chain of graph-reinvokes-agent-emits-graph. Without a durable value here the cap could never fire, because a reinvoked agent has no other way to learn it was a continuation. Distinct from ParentRunID, which tracks sub-agent lineage within a single turn; a continuation is a NEW top-level turn caused by work that already completed.`),
2815
+ BoundActionParams: z.string().nullable().describe(`
2816
+ * * Field Name: BoundActionParams
2817
+ * * Display Name: Bound Action Params
2818
+ * * SQL Data Type: nvarchar(MAX)
2819
+ * * Description: The run's bound action parameters (ExecuteAgentParams.boundActionParams) as JSON, keyed by Action ID and then parameter name. Written when the run starts, so a run resumed from a stored request applies the same bindings. Null when the run had none.`),
2815
2820
  Agent: z.string().nullable().describe(`
2816
2821
  * * Field Name: Agent
2817
2822
  * * Display Name: Agent Name
@@ -11206,6 +11211,139 @@ export const MJAuthorizationSchema = z.object({
11206
11211
  * * Display Name: Parent ID Child Count
11207
11212
  * * SQL Data Type: int`),
11208
11213
  });
11214
+ /**
11215
+ * zod schema definition for the entity MJ: Calendar Event Links
11216
+ */
11217
+ export const MJCalendarEventLinkSchema = z.object({
11218
+ ID: z.string().describe(`
11219
+ * * Field Name: ID
11220
+ * * Display Name: ID
11221
+ * * SQL Data Type: uniqueidentifier
11222
+ * * Default Value: newsequentialid()`),
11223
+ CommunicationProviderID: z.string().describe(`
11224
+ * * Field Name: CommunicationProviderID
11225
+ * * Display Name: Communication Provider ID
11226
+ * * SQL Data Type: uniqueidentifier
11227
+ * * Related Entity/Foreign Key: MJ: Communication Providers (vwCommunicationProviders.ID)`),
11228
+ AccountIdentifier: z.string().describe(`
11229
+ * * Field Name: AccountIdentifier
11230
+ * * Display Name: Account Identifier
11231
+ * * SQL Data Type: nvarchar(255)
11232
+ * * Description: The calendar account the event lives in: a mailbox address for MS Graph, the account for Google. Later syncs and changes go to the same account.`),
11233
+ CalendarID: z.string().nullable().describe(`
11234
+ * * Field Name: CalendarID
11235
+ * * Display Name: Calendar ID
11236
+ * * SQL Data Type: nvarchar(500)
11237
+ * * Description: The calendar within the account. Null means the account's default calendar.`),
11238
+ ExternalEventID: z.string().describe(`
11239
+ * * Field Name: ExternalEventID
11240
+ * * Display Name: External Event ID
11241
+ * * SQL Data Type: nvarchar(500)
11242
+ * * Description: The provider's ID for the event in this account. It differs between attendees' calendars; match across calendars on ICalUID.`),
11243
+ ExternalSeriesID: z.string().nullable().describe(`
11244
+ * * Field Name: ExternalSeriesID
11245
+ * * Display Name: External Series ID
11246
+ * * SQL Data Type: nvarchar(500)
11247
+ * * Description: The provider's ID for the recurring series this event belongs to, when it is an occurrence or exception of one.`),
11248
+ ICalUID: z.string().nullable().describe(`
11249
+ * * Field Name: ICalUID
11250
+ * * Display Name: I Cal UID
11251
+ * * SQL Data Type: nvarchar(1000)
11252
+ * * Description: The event's iCalendar UID (Graph iCalUId, Google iCalUID). The same in every attendee's calendar, so other apps match an imported event to this link by it.`),
11253
+ EntityID: z.string().describe(`
11254
+ * * Field Name: EntityID
11255
+ * * Display Name: Entity ID
11256
+ * * SQL Data Type: uniqueidentifier
11257
+ * * Related Entity/Foreign Key: MJ: Entities (vwEntities.ID)
11258
+ * * Description: The entity of the linked record.`),
11259
+ RecordID: z.string().describe(`
11260
+ * * Field Name: RecordID
11261
+ * * Display Name: Record ID
11262
+ * * SQL Data Type: nvarchar(450)
11263
+ * * Description: The linked record's primary key, in the compact URL-segment form (a bare value for a single-column key).`),
11264
+ Status: z.union([z.literal('Active'), z.literal('Cancelled')]).describe(`
11265
+ * * Field Name: Status
11266
+ * * Display Name: Status
11267
+ * * SQL Data Type: nvarchar(20)
11268
+ * * Default Value: Active
11269
+ * * Value List Type: List
11270
+ * * Possible Values
11271
+ * * Active
11272
+ * * Cancelled
11273
+ * * Description: Active, or Cancelled once the event is cancelled, in the calendar or through MemberJunction.`),
11274
+ LastSyncedAt: z.date().nullable().describe(`
11275
+ * * Field Name: LastSyncedAt
11276
+ * * Display Name: Last Synced At
11277
+ * * SQL Data Type: datetimeoffset
11278
+ * * Description: When a change to this event was last read from or written to the calendar.`),
11279
+ __mj_CreatedAt: z.date().describe(`
11280
+ * * Field Name: __mj_CreatedAt
11281
+ * * Display Name: Created At
11282
+ * * SQL Data Type: datetimeoffset
11283
+ * * Default Value: getutcdate()`),
11284
+ __mj_UpdatedAt: z.date().describe(`
11285
+ * * Field Name: __mj_UpdatedAt
11286
+ * * Display Name: Updated At
11287
+ * * SQL Data Type: datetimeoffset
11288
+ * * Default Value: getutcdate()`),
11289
+ CommunicationProvider: z.string().describe(`
11290
+ * * Field Name: CommunicationProvider
11291
+ * * Display Name: Communication Provider
11292
+ * * SQL Data Type: nvarchar(255)`),
11293
+ Entity: z.string().describe(`
11294
+ * * Field Name: Entity
11295
+ * * Display Name: Entity
11296
+ * * SQL Data Type: nvarchar(255)`),
11297
+ });
11298
+ /**
11299
+ * zod schema definition for the entity MJ: Calendar Sync States
11300
+ */
11301
+ export const MJCalendarSyncStateSchema = z.object({
11302
+ ID: z.string().describe(`
11303
+ * * Field Name: ID
11304
+ * * Display Name: ID
11305
+ * * SQL Data Type: uniqueidentifier
11306
+ * * Default Value: newsequentialid()`),
11307
+ CommunicationProviderID: z.string().describe(`
11308
+ * * Field Name: CommunicationProviderID
11309
+ * * Display Name: Communication Provider ID
11310
+ * * SQL Data Type: uniqueidentifier
11311
+ * * Related Entity/Foreign Key: MJ: Communication Providers (vwCommunicationProviders.ID)`),
11312
+ AccountIdentifier: z.string().describe(`
11313
+ * * Field Name: AccountIdentifier
11314
+ * * Display Name: Account Identifier
11315
+ * * SQL Data Type: nvarchar(255)
11316
+ * * Description: The calendar account: a mailbox address for MS Graph, the account for Google.`),
11317
+ CalendarID: z.string().nullable().describe(`
11318
+ * * Field Name: CalendarID
11319
+ * * Display Name: Calendar ID
11320
+ * * SQL Data Type: nvarchar(500)
11321
+ * * Description: The calendar within the account. Null means the account's default calendar.`),
11322
+ SyncToken: z.string().nullable().describe(`
11323
+ * * Field Name: SyncToken
11324
+ * * Display Name: Sync Token
11325
+ * * SQL Data Type: nvarchar(MAX)
11326
+ * * Description: The provider's cursor for the next incremental sync: a Graph delta link or a Google sync token. Null until the first sync.`),
11327
+ LastSyncedAt: z.date().nullable().describe(`
11328
+ * * Field Name: LastSyncedAt
11329
+ * * Display Name: Last Synced At
11330
+ * * SQL Data Type: datetimeoffset
11331
+ * * Description: When this calendar was last synced.`),
11332
+ __mj_CreatedAt: z.date().describe(`
11333
+ * * Field Name: __mj_CreatedAt
11334
+ * * Display Name: Created At
11335
+ * * SQL Data Type: datetimeoffset
11336
+ * * Default Value: getutcdate()`),
11337
+ __mj_UpdatedAt: z.date().describe(`
11338
+ * * Field Name: __mj_UpdatedAt
11339
+ * * Display Name: Updated At
11340
+ * * SQL Data Type: datetimeoffset
11341
+ * * Default Value: getutcdate()`),
11342
+ CommunicationProvider: z.string().describe(`
11343
+ * * Field Name: CommunicationProvider
11344
+ * * Display Name: Communication Provider
11345
+ * * SQL Data Type: nvarchar(255)`),
11346
+ });
11209
11347
  /**
11210
11348
  * zod schema definition for the entity MJ: Cluster Analysis
11211
11349
  */
@@ -11872,6 +12010,17 @@ export const MJCommunicationProviderSchema = z.object({
11872
12010
  * * SQL Data Type: uniqueidentifier
11873
12011
  * * Related Entity/Foreign Key: MJ: Credentials (vwCredentials.ID)
11874
12012
  * * Description: Optional default MJ Credential used by this communication provider when no per-request credential override is supplied.`),
12013
+ AllowUserDelegatedOAuth: z.boolean().describe(`
12014
+ * * Field Name: AllowUserDelegatedOAuth
12015
+ * * Display Name: Allow User Delegated O Auth
12016
+ * * SQL Data Type: bit
12017
+ * * Default Value: 0
12018
+ * * Description: Posture 3 master switch (Gate 1). When 1, users may connect their own mailbox/calendar to this provider through per-user delegated OAuth 2.0 (3LO) with PKCE, subject to AllowedEmailDomains and AllowedOAuthTenantIDs. Default 0: no user can initiate a personal OAuth flow.`),
12019
+ AllowedOAuthTenantIDs: z.string().nullable().describe(`
12020
+ * * Field Name: AllowedOAuthTenantIDs
12021
+ * * Display Name: Allowed O Auth Tenant I Ds
12022
+ * * SQL Data Type: nvarchar(1000)
12023
+ * * Description: Optional comma-separated allowlist of identity tenant identifiers (Gate 3) that a user-delegated OAuth token must carry: Azure AD tenant IDs (tid) or Google Workspace hosted domains (hd). NULL means no tenant restriction beyond AllowedEmailDomains.`),
11875
12024
  DefaultCredential: z.string().nullable().describe(`
11876
12025
  * * Field Name: DefaultCredential
11877
12026
  * * Display Name: Default Credential
@@ -12194,6 +12343,529 @@ export const MJCompanyIntegrationFieldMapSchema = z.object({
12194
12343
  * * Display Name: Entity Map
12195
12344
  * * SQL Data Type: nvarchar(500)`),
12196
12345
  });
12346
+ /**
12347
+ * zod schema definition for the entity MJ: Company Integration Object Fields
12348
+ */
12349
+ export const MJCompanyIntegrationObjectFieldSchema = z.object({
12350
+ ID: z.string().describe(`
12351
+ * * Field Name: ID
12352
+ * * Display Name: ID
12353
+ * * SQL Data Type: uniqueidentifier
12354
+ * * Default Value: newsequentialid()`),
12355
+ Name: z.string().describe(`
12356
+ * * Field Name: Name
12357
+ * * Display Name: Name
12358
+ * * SQL Data Type: nvarchar(255)
12359
+ * * Description: Field name as returned by the external API`),
12360
+ DisplayName: z.string().nullable().describe(`
12361
+ * * Field Name: DisplayName
12362
+ * * Display Name: Display Name
12363
+ * * SQL Data Type: nvarchar(255)
12364
+ * * Description: Human-friendly display label for the field`),
12365
+ Description: z.string().nullable().describe(`
12366
+ * * Field Name: Description
12367
+ * * Display Name: Description
12368
+ * * SQL Data Type: nvarchar(MAX)
12369
+ * * Description: Description of what this field represents`),
12370
+ Category: z.string().nullable().describe(`
12371
+ * * Field Name: Category
12372
+ * * Display Name: Category
12373
+ * * SQL Data Type: nvarchar(100)
12374
+ * * Description: UI grouping category within the object`),
12375
+ Type: z.string().describe(`
12376
+ * * Field Name: Type
12377
+ * * Display Name: Type
12378
+ * * SQL Data Type: nvarchar(100)
12379
+ * * Description: Data type of the field (e.g., nvarchar, int, datetime, decimal, bit). Uses same type vocabulary as EntityField.`),
12380
+ Length: z.number().nullable().describe(`
12381
+ * * Field Name: Length
12382
+ * * Display Name: Length
12383
+ * * SQL Data Type: int
12384
+ * * Description: Maximum length for string types`),
12385
+ Precision: z.number().nullable().describe(`
12386
+ * * Field Name: Precision
12387
+ * * Display Name: Precision
12388
+ * * SQL Data Type: int
12389
+ * * Description: Numeric precision`),
12390
+ Scale: z.number().nullable().describe(`
12391
+ * * Field Name: Scale
12392
+ * * Display Name: Scale
12393
+ * * SQL Data Type: int
12394
+ * * Description: Numeric scale`),
12395
+ AllowsNull: z.boolean().describe(`
12396
+ * * Field Name: AllowsNull
12397
+ * * Display Name: Allows Null
12398
+ * * SQL Data Type: bit
12399
+ * * Default Value: 1
12400
+ * * Description: Whether the field can contain NULL values`),
12401
+ DefaultValue: z.string().nullable().describe(`
12402
+ * * Field Name: DefaultValue
12403
+ * * Display Name: Default Value
12404
+ * * SQL Data Type: nvarchar(255)
12405
+ * * Description: Default value from the source system`),
12406
+ IsPrimaryKey: z.boolean().describe(`
12407
+ * * Field Name: IsPrimaryKey
12408
+ * * Display Name: Is Primary Key
12409
+ * * SQL Data Type: bit
12410
+ * * Default Value: 0
12411
+ * * Description: Whether this field is part of the object primary key`),
12412
+ IsUniqueKey: z.boolean().describe(`
12413
+ * * Field Name: IsUniqueKey
12414
+ * * Display Name: Is Unique Key
12415
+ * * SQL Data Type: bit
12416
+ * * Default Value: 0
12417
+ * * Description: Whether values must be unique across all records`),
12418
+ IsReadOnly: z.boolean().describe(`
12419
+ * * Field Name: IsReadOnly
12420
+ * * Display Name: Is Read Only
12421
+ * * SQL Data Type: bit
12422
+ * * Default Value: 0
12423
+ * * Description: Whether this field cannot be written back to the source system`),
12424
+ IsRequired: z.boolean().describe(`
12425
+ * * Field Name: IsRequired
12426
+ * * Display Name: Is Required
12427
+ * * SQL Data Type: bit
12428
+ * * Default Value: 0
12429
+ * * Description: Whether this field is required for create/update operations`),
12430
+ RelatedIntegrationObjectFieldName: z.string().nullable().describe(`
12431
+ * * Field Name: RelatedIntegrationObjectFieldName
12432
+ * * Display Name: Related Integration Object Field Name
12433
+ * * SQL Data Type: nvarchar(255)
12434
+ * * Description: The field name on the related IntegrationObject that this FK points to (typically the PK field)`),
12435
+ Sequence: z.number().describe(`
12436
+ * * Field Name: Sequence
12437
+ * * Display Name: Sequence
12438
+ * * SQL Data Type: int
12439
+ * * Default Value: 0
12440
+ * * Description: Display and processing order within the object. Lower numbers appear first.`),
12441
+ Configuration: z.string().nullable().describe(`
12442
+ * * Field Name: Configuration
12443
+ * * Display Name: Configuration
12444
+ * * SQL Data Type: nvarchar(MAX)
12445
+ * * Description: Freeform JSON for connector-specific field configuration`),
12446
+ Status: z.union([z.literal('Active'), z.literal('Deprecated'), z.literal('Disabled')]).describe(`
12447
+ * * Field Name: Status
12448
+ * * Display Name: Status
12449
+ * * SQL Data Type: nvarchar(25)
12450
+ * * Default Value: Active
12451
+ * * Value List Type: List
12452
+ * * Possible Values
12453
+ * * Active
12454
+ * * Deprecated
12455
+ * * Disabled
12456
+ * * Description: Active, Deprecated, or Disabled. Mirrors EntityField status values.`),
12457
+ IsCustom: z.boolean().describe(`
12458
+ * * Field Name: IsCustom
12459
+ * * Display Name: Is Custom
12460
+ * * SQL Data Type: bit
12461
+ * * Default Value: 0
12462
+ * * Description: When true, this field was dynamically discovered by IntrospectSchema and is not defined in static connector metadata.`),
12463
+ MetadataSource: z.union([z.literal('Custom'), z.literal('Declared'), z.literal('Discovered')]).describe(`
12464
+ * * Field Name: MetadataSource
12465
+ * * Display Name: Metadata Source
12466
+ * * SQL Data Type: nvarchar(20)
12467
+ * * Default Value: Declared
12468
+ * * Value List Type: List
12469
+ * * Possible Values
12470
+ * * Custom
12471
+ * * Declared
12472
+ * * Discovered
12473
+ * * Description: Provenance of this CompanyIntegrationObjectField row: Declared (from static research/docs), Discovered (from runtime API introspection), Custom (customer-defined custom field, e.g., HubSpot custom property on standard object). Drives merge precedence — discovered/runtime wins for type/constraints; declared wins for description/label/sequence/category.`),
12474
+ CompanyIntegrationObjectID: z.string().describe(`
12475
+ * * Field Name: CompanyIntegrationObjectID
12476
+ * * Display Name: Company Integration Object ID
12477
+ * * SQL Data Type: uniqueidentifier
12478
+ * * Related Entity/Foreign Key: MJ: Company Integration Objects (vwCompanyIntegrationObjects.ID)`),
12479
+ RelatedCompanyIntegrationObjectID: z.string().nullable().describe(`
12480
+ * * Field Name: RelatedCompanyIntegrationObjectID
12481
+ * * Display Name: Related Company Integration Object ID
12482
+ * * SQL Data Type: uniqueidentifier
12483
+ * * Related Entity/Foreign Key: MJ: Company Integration Objects (vwCompanyIntegrationObjects.ID)`),
12484
+ IntegrationObjectFieldID: z.string().nullable().describe(`
12485
+ * * Field Name: IntegrationObjectFieldID
12486
+ * * Display Name: Integration Object Field ID
12487
+ * * SQL Data Type: uniqueidentifier
12488
+ * * Related Entity/Foreign Key: MJ: Integration Object Fields (vwIntegrationObjectFields.ID)`),
12489
+ ObservedMaxLength: z.number().nullable().describe(`
12490
+ * * Field Name: ObservedMaxLength
12491
+ * * Display Name: Observed Max Length
12492
+ * * SQL Data Type: int
12493
+ * * Description: The longest value sampling actually saw, kept SEPARATE from Length. Length carries the padded width the schema builder will use; this carries the evidence. Without both, a width cannot be audited and a truncation cannot be distinguished from a bad guess.`),
12494
+ Provenance: z.union([z.literal('Declared'), z.literal('Endpoint'), z.literal('Sampled')]).describe(`
12495
+ * * Field Name: Provenance
12496
+ * * Display Name: Provenance
12497
+ * * SQL Data Type: nvarchar(20)
12498
+ * * Default Value: Declared
12499
+ * * Value List Type: List
12500
+ * * Possible Values
12501
+ * * Declared
12502
+ * * Endpoint
12503
+ * * Sampled
12504
+ * * Description: Where this row came from: Declared (the connector shipped catalog), Endpoint (the source listed it) or Sampled (only streaming records revealed it). Answers "whose is this" for a connection whose catalog no longer matches the connector default.`),
12505
+ ProvenanceDetail: z.string().nullable().describe(`
12506
+ * * Field Name: ProvenanceDetail
12507
+ * * Display Name: Provenance Detail
12508
+ * * SQL Data Type: nvarchar(MAX)
12509
+ * * Description: The per-attribute merge log for this row: which side won each overlay decision and why. The persist already computes this and throws it away, so the operator has never been able to see why a width or a key looks the way it does.`),
12510
+ IsSelected: z.boolean().describe(`
12511
+ * * Field Name: IsSelected
12512
+ * * Display Name: Is Selected
12513
+ * * SQL Data Type: bit
12514
+ * * Default Value: 0
12515
+ * * Description: Whether this connection syncs this item. THE AXIS THAT MAKES THE CONTRACT SATISFIABLE: Status says whether the item is in the catalog at all, IsSelected says whether the customer chose it. Conflating the two is why a newly discovered object had to arrive ENABLED — a disabled object was excluded from schema introspection, so it never reached key inference and never reached a migration.`),
12516
+ SelectedAt: z.date().nullable().describe(`
12517
+ * * Field Name: SelectedAt
12518
+ * * Display Name: Selected At
12519
+ * * SQL Data Type: datetimeoffset
12520
+ * * Description: When the selection last changed. Lets the UI distinguish "never chosen" from "deliberately deselected".`),
12521
+ FirstSeenAt: z.date().nullable().describe(`
12522
+ * * Field Name: FirstSeenAt
12523
+ * * Display Name: First Seen At
12524
+ * * SQL Data Type: datetimeoffset
12525
+ * * Description: When this connection first observed this item. Set once and never updated, so a catalog can be read as a history of what the source exposed and when.`),
12526
+ LastSeenAt: z.date().nullable().describe(`
12527
+ * * Field Name: LastSeenAt
12528
+ * * Display Name: Last Seen At
12529
+ * * SQL Data Type: datetimeoffset
12530
+ * * Description: When this connection most recently observed this item. A row whose LastSeenAt is older than the connection last discovery is what "absent from the source" means.`),
12531
+ LastSampledAt: z.date().nullable().describe(`
12532
+ * * Field Name: LastSampledAt
12533
+ * * Display Name: Last Sampled At
12534
+ * * SQL Data Type: datetimeoffset
12535
+ * * Description: When sampling last streamed records for this item. Distinct from LastSeenAt: an item can be listed by an endpoint without ever being sampled, and unsampled items are exactly the ones whose widths and keys came from the declared catalog rather than from data.`),
12536
+ __mj_CreatedAt: z.date().describe(`
12537
+ * * Field Name: __mj_CreatedAt
12538
+ * * Display Name: Created At
12539
+ * * SQL Data Type: datetimeoffset
12540
+ * * Default Value: getutcdate()`),
12541
+ __mj_UpdatedAt: z.date().describe(`
12542
+ * * Field Name: __mj_UpdatedAt
12543
+ * * Display Name: Updated At
12544
+ * * SQL Data Type: datetimeoffset
12545
+ * * Default Value: getutcdate()`),
12546
+ CompanyIntegrationObject: z.string().describe(`
12547
+ * * Field Name: CompanyIntegrationObject
12548
+ * * Display Name: Company Integration Object
12549
+ * * SQL Data Type: nvarchar(255)`),
12550
+ RelatedCompanyIntegrationObject: z.string().nullable().describe(`
12551
+ * * Field Name: RelatedCompanyIntegrationObject
12552
+ * * Display Name: Related Company Integration Object
12553
+ * * SQL Data Type: nvarchar(255)`),
12554
+ IntegrationObjectField: z.string().nullable().describe(`
12555
+ * * Field Name: IntegrationObjectField
12556
+ * * Display Name: Integration Object Field
12557
+ * * SQL Data Type: nvarchar(255)`),
12558
+ });
12559
+ /**
12560
+ * zod schema definition for the entity MJ: Company Integration Objects
12561
+ */
12562
+ export const MJCompanyIntegrationObjectSchema = z.object({
12563
+ ID: z.string().describe(`
12564
+ * * Field Name: ID
12565
+ * * Display Name: ID
12566
+ * * SQL Data Type: uniqueidentifier
12567
+ * * Default Value: newsequentialid()`),
12568
+ IntegrationID: z.string().describe(`
12569
+ * * Field Name: IntegrationID
12570
+ * * Display Name: Integration ID
12571
+ * * SQL Data Type: uniqueidentifier
12572
+ * * Related Entity/Foreign Key: MJ: Integrations (vwIntegrations.ID)
12573
+ * * Description: The integration (connector) this object belongs to. Always the IntegrationID of the owning CompanyIntegration, copied onto the row by the catalog writer so the per-connection catalog can be read through the same projection as the shared IntegrationObject catalog.`),
12574
+ Name: z.string().describe(`
12575
+ * * Field Name: Name
12576
+ * * Display Name: Name
12577
+ * * SQL Data Type: nvarchar(255)
12578
+ * * Description: Internal/programmatic name of the external object (e.g., Members, Events)`),
12579
+ DisplayName: z.string().nullable().describe(`
12580
+ * * Field Name: DisplayName
12581
+ * * Display Name: Display Name
12582
+ * * SQL Data Type: nvarchar(255)
12583
+ * * Description: Human-friendly display label`),
12584
+ Description: z.string().nullable().describe(`
12585
+ * * Field Name: Description
12586
+ * * Display Name: Description
12587
+ * * SQL Data Type: nvarchar(MAX)
12588
+ * * Description: Description of what this external object represents`),
12589
+ Category: z.string().nullable().describe(`
12590
+ * * Field Name: Category
12591
+ * * Display Name: Category
12592
+ * * SQL Data Type: nvarchar(100)
12593
+ * * Description: UI grouping category (e.g., Membership, Events, Finance)`),
12594
+ APIPath: z.string().describe(`
12595
+ * * Field Name: APIPath
12596
+ * * Display Name: API Path
12597
+ * * SQL Data Type: nvarchar(500)
12598
+ * * Description: API endpoint path, may include template variables like {ProfileID} that are resolved at runtime from parent object records`),
12599
+ ResponseDataKey: z.string().nullable().describe(`
12600
+ * * Field Name: ResponseDataKey
12601
+ * * Display Name: Response Data Key
12602
+ * * SQL Data Type: nvarchar(255)
12603
+ * * Description: JSON key used to extract the data array from the API response envelope. NULL means the response is a root-level array.`),
12604
+ DefaultPageSize: z.number().describe(`
12605
+ * * Field Name: DefaultPageSize
12606
+ * * Display Name: Default Page Size
12607
+ * * SQL Data Type: int
12608
+ * * Default Value: 100
12609
+ * * Description: Number of records to request per page from the API`),
12610
+ SupportsPagination: z.boolean().describe(`
12611
+ * * Field Name: SupportsPagination
12612
+ * * Display Name: Supports Pagination
12613
+ * * SQL Data Type: bit
12614
+ * * Default Value: 1
12615
+ * * Description: Whether this endpoint supports paginated fetching`),
12616
+ PaginationType: z.string().describe(`
12617
+ * * Field Name: PaginationType
12618
+ * * Display Name: Pagination Type
12619
+ * * SQL Data Type: nvarchar(20)
12620
+ * * Default Value: PageNumber
12621
+ * * Description: Pagination strategy: PageNumber (page index), Offset (record offset), Cursor (opaque token), or None`),
12622
+ SupportsIncrementalSync: z.boolean().describe(`
12623
+ * * Field Name: SupportsIncrementalSync
12624
+ * * Display Name: Supports Incremental Sync
12625
+ * * SQL Data Type: bit
12626
+ * * Default Value: 0
12627
+ * * Description: Whether this object supports watermark-based incremental sync`),
12628
+ SupportsWrite: z.boolean().describe(`
12629
+ * * Field Name: SupportsWrite
12630
+ * * Display Name: Supports Write
12631
+ * * SQL Data Type: bit
12632
+ * * Default Value: 0
12633
+ * * Description: Whether data can be pushed back to this object via the API`),
12634
+ DefaultQueryParams: z.string().nullable().describe(`
12635
+ * * Field Name: DefaultQueryParams
12636
+ * * Display Name: Default Query Params
12637
+ * * SQL Data Type: nvarchar(MAX)
12638
+ * * Description: JSON object of default query parameters to include with every API request for this object`),
12639
+ Configuration: z.string().nullable().describe(`
12640
+ * * Field Name: Configuration
12641
+ * * Display Name: Configuration
12642
+ * * SQL Data Type: nvarchar(MAX)
12643
+ * * Description: Freeform JSON for connector-specific configuration not covered by standard columns`),
12644
+ Sequence: z.number().describe(`
12645
+ * * Field Name: Sequence
12646
+ * * Display Name: Sequence
12647
+ * * SQL Data Type: int
12648
+ * * Default Value: 0
12649
+ * * Description: Processing and display order. Lower numbers are processed first.`),
12650
+ Status: z.union([z.literal('Active'), z.literal('Deprecated'), z.literal('Disabled')]).describe(`
12651
+ * * Field Name: Status
12652
+ * * Display Name: Status
12653
+ * * SQL Data Type: nvarchar(25)
12654
+ * * Default Value: Active
12655
+ * * Value List Type: List
12656
+ * * Possible Values
12657
+ * * Active
12658
+ * * Deprecated
12659
+ * * Disabled
12660
+ * * Description: Active, Deprecated, or Disabled. Mirrors EntityField status values.`),
12661
+ WriteAPIPath: z.string().nullable().describe(`
12662
+ * * Field Name: WriteAPIPath
12663
+ * * Display Name: Write API Path
12664
+ * * SQL Data Type: nvarchar(500)
12665
+ * * Description: API path for create/update operations when different from the read APIPath. If NULL, the read APIPath is used for writes as well.`),
12666
+ WriteMethod: z.string().nullable().describe(`
12667
+ * * Field Name: WriteMethod
12668
+ * * Display Name: Write Method
12669
+ * * SQL Data Type: nvarchar(10)
12670
+ * * Default Value: POST
12671
+ * * Description: HTTP method for create operations. Defaults to POST.`),
12672
+ DeleteMethod: z.string().nullable().describe(`
12673
+ * * Field Name: DeleteMethod
12674
+ * * Display Name: Delete Method
12675
+ * * SQL Data Type: nvarchar(10)
12676
+ * * Default Value: DELETE
12677
+ * * Description: HTTP method for delete operations. Defaults to DELETE.`),
12678
+ IsCustom: z.boolean().describe(`
12679
+ * * Field Name: IsCustom
12680
+ * * Display Name: Is Custom
12681
+ * * SQL Data Type: bit
12682
+ * * Default Value: 0
12683
+ * * Description: When true, this object was dynamically discovered by IntrospectSchema and is not defined in static connector metadata.`),
12684
+ CreateAPIPath: z.string().nullable().describe(`
12685
+ * * Field Name: CreateAPIPath
12686
+ * * Display Name: Create API Path
12687
+ * * SQL Data Type: nvarchar(MAX)
12688
+ * * Description: HTTP path template for create operations. Generic CRUD in BaseRESTIntegrationConnector substitutes parent IDs into {var} placeholders. NULL means create not supported via metadata-driven path.`),
12689
+ CreateMethod: z.string().nullable().describe(`
12690
+ * * Field Name: CreateMethod
12691
+ * * Display Name: Create Method
12692
+ * * SQL Data Type: nvarchar(20)
12693
+ * * Description: HTTP method for create (typically POST). NULL means create not supported via metadata-driven path.`),
12694
+ CreateBodyShape: z.string().nullable().describe(`
12695
+ * * Field Name: CreateBodyShape
12696
+ * * Display Name: Create Body Shape
12697
+ * * SQL Data Type: nvarchar(50)
12698
+ * * Description: Request body shape for create: flat (top-level fields), wrapped (under CreateBodyKey), or literal (connector overrides CreateRecord and supplies own body).`),
12699
+ CreateBodyKey: z.string().nullable().describe(`
12700
+ * * Field Name: CreateBodyKey
12701
+ * * Display Name: Create Body Key
12702
+ * * SQL Data Type: nvarchar(100)
12703
+ * * Description: Wrapper key for create body when CreateBodyShape=wrapped. Example: 'member' for YourMembership which wraps body as {member:{...}}.`),
12704
+ CreateIDLocation: z.string().nullable().describe(`
12705
+ * * Field Name: CreateIDLocation
12706
+ * * Display Name: Create ID Location
12707
+ * * SQL Data Type: nvarchar(20)
12708
+ * * Description: Where the created record ID is found in the create response: path (URL of returned Location header), body (parsed from JSON response), header (specific named header).`),
12709
+ UpdateAPIPath: z.string().nullable().describe(`
12710
+ * * Field Name: UpdateAPIPath
12711
+ * * Display Name: Update API Path
12712
+ * * SQL Data Type: nvarchar(MAX)
12713
+ * * Description: HTTP path template for update operations. Typically contains {ID} placeholder substituted with the record ExternalID at runtime.`),
12714
+ UpdateMethod: z.string().nullable().describe(`
12715
+ * * Field Name: UpdateMethod
12716
+ * * Display Name: Update Method
12717
+ * * SQL Data Type: nvarchar(20)
12718
+ * * Description: HTTP method for update (typically PATCH or PUT).`),
12719
+ UpdateBodyShape: z.string().nullable().describe(`
12720
+ * * Field Name: UpdateBodyShape
12721
+ * * Display Name: Update Body Shape
12722
+ * * SQL Data Type: nvarchar(50)
12723
+ * * Description: Request body shape for update: flat | wrapped | literal. See CreateBodyShape.`),
12724
+ UpdateBodyKey: z.string().nullable().describe(`
12725
+ * * Field Name: UpdateBodyKey
12726
+ * * Display Name: Update Body Key
12727
+ * * SQL Data Type: nvarchar(100)
12728
+ * * Description: Wrapper key for update body when UpdateBodyShape=wrapped.`),
12729
+ UpdateIDLocation: z.string().nullable().describe(`
12730
+ * * Field Name: UpdateIDLocation
12731
+ * * Display Name: Update ID Location
12732
+ * * SQL Data Type: nvarchar(20)
12733
+ * * Description: For update: where the target record ID is located in the request — typically 'path' (substituted into UpdateAPIPath URL template).`),
12734
+ DeleteAPIPath: z.string().nullable().describe(`
12735
+ * * Field Name: DeleteAPIPath
12736
+ * * Display Name: Delete API Path
12737
+ * * SQL Data Type: nvarchar(MAX)
12738
+ * * Description: HTTP path template for delete operations. Typically contains {ID} placeholder. NULL means delete not supported via metadata-driven path. (Existing DeleteMethod column carries the verb.)`),
12739
+ DeleteIDLocation: z.string().nullable().describe(`
12740
+ * * Field Name: DeleteIDLocation
12741
+ * * Display Name: Delete ID Location
12742
+ * * SQL Data Type: nvarchar(20)
12743
+ * * Description: For delete: where the target record ID is located — typically 'path'.`),
12744
+ IncrementalWatermarkField: z.string().nullable().describe(`
12745
+ * * Field Name: IncrementalWatermarkField
12746
+ * * Display Name: Incremental Watermark Field
12747
+ * * SQL Data Type: nvarchar(255)
12748
+ * * Description: Vendor field name marking "last changed" — drives incremental sync filter when SupportsIncrementalSync=1. The exact filter syntax (e.g., $filter=Modified gt {value} or modified_since={value}) lives in Configuration.incrementalFilterFormat. Provable-only: leave NULL if docs do not name a watermark field.`),
12749
+ MetadataSource: z.union([z.literal('Custom'), z.literal('Declared'), z.literal('Discovered')]).describe(`
12750
+ * * Field Name: MetadataSource
12751
+ * * Display Name: Metadata Source
12752
+ * * SQL Data Type: nvarchar(20)
12753
+ * * Default Value: Declared
12754
+ * * Value List Type: List
12755
+ * * Possible Values
12756
+ * * Custom
12757
+ * * Declared
12758
+ * * Discovered
12759
+ * * Description: Provenance of this CompanyIntegrationObject row: Declared (from static research/docs), Discovered (from runtime API introspection like Salesforce /describe), Custom (genuinely customer-created, e.g., HubSpot custom objects). Drives merge precedence in IntegrationSchemaSync.`),
12760
+ SupportsCreate: z.boolean().describe(`
12761
+ * * Field Name: SupportsCreate
12762
+ * * Display Name: Supports Create
12763
+ * * SQL Data Type: bit
12764
+ * * Default Value: 0
12765
+ * * Description: Whether this object supports record creation in the external system (per-operation granularity beyond SupportsWrite). Drives whether the generic CreateRecord path is wired and whether the object is offered for write-back create.`),
12766
+ SupportsUpdate: z.boolean().describe(`
12767
+ * * Field Name: SupportsUpdate
12768
+ * * Display Name: Supports Update
12769
+ * * SQL Data Type: bit
12770
+ * * Default Value: 0
12771
+ * * Description: Whether this object supports record updates in the external system (per-operation granularity beyond SupportsWrite).`),
12772
+ SupportsDelete: z.boolean().describe(`
12773
+ * * Field Name: SupportsDelete
12774
+ * * Display Name: Supports Delete
12775
+ * * SQL Data Type: bit
12776
+ * * Default Value: 0
12777
+ * * Description: Whether this object supports record deletion/tombstoning in the external system (per-operation granularity beyond SupportsWrite).`),
12778
+ SyncStrategy: z.string().nullable().describe(`
12779
+ * * Field Name: SyncStrategy
12780
+ * * Display Name: Sync Strategy
12781
+ * * SQL Data Type: nvarchar(50)
12782
+ * * Description: Declared incremental sync strategy for this object (e.g. WatermarkIncremental, ContentHash, FullSnapshot). Informs how the engine narrows subsequent syncs.`),
12783
+ ContentHashApplicable: z.boolean().describe(`
12784
+ * * Field Name: ContentHashApplicable
12785
+ * * Display Name: Content Hash Applicable
12786
+ * * SQL Data Type: bit
12787
+ * * Default Value: 1
12788
+ * * Description: Whether per-record content hashing is meaningful for this object (false for append-only/event streams where every row is new). Controls whether the engine uses content-hash to skip unchanged-row writes.`),
12789
+ StableOrderingKey: z.string().nullable().describe(`
12790
+ * * Field Name: StableOrderingKey
12791
+ * * Display Name: Stable Ordering Key
12792
+ * * SQL Data Type: nvarchar(255)
12793
+ * * Description: Stable, monotonic ordering column (usually the PK) used for keyset/no-watermark resume of a scan. Null when the object has no stable key.`),
12794
+ CompanyIntegrationID: z.string().describe(`
12795
+ * * Field Name: CompanyIntegrationID
12796
+ * * Display Name: Company Integration ID
12797
+ * * SQL Data Type: uniqueidentifier
12798
+ * * Related Entity/Foreign Key: MJ: Company Integrations (vwCompanyIntegrations.ID)`),
12799
+ IntegrationObjectID: z.string().nullable().describe(`
12800
+ * * Field Name: IntegrationObjectID
12801
+ * * Display Name: Integration Object ID
12802
+ * * SQL Data Type: uniqueidentifier
12803
+ * * Related Entity/Foreign Key: MJ: Integration Objects (vwIntegrationObjects.ID)`),
12804
+ Provenance: z.union([z.literal('Declared'), z.literal('Endpoint'), z.literal('Sampled')]).describe(`
12805
+ * * Field Name: Provenance
12806
+ * * Display Name: Provenance
12807
+ * * SQL Data Type: nvarchar(20)
12808
+ * * Default Value: Declared
12809
+ * * Value List Type: List
12810
+ * * Possible Values
12811
+ * * Declared
12812
+ * * Endpoint
12813
+ * * Sampled
12814
+ * * Description: Where this row came from: Declared (the connector shipped catalog), Endpoint (the source listed it) or Sampled (only streaming records revealed it). Answers "whose is this" for a connection whose catalog no longer matches the connector default.`),
12815
+ ProvenanceDetail: z.string().nullable().describe(`
12816
+ * * Field Name: ProvenanceDetail
12817
+ * * Display Name: Provenance Detail
12818
+ * * SQL Data Type: nvarchar(MAX)
12819
+ * * Description: The per-attribute merge log for this row: which side won each overlay decision and why. The persist already computes this and throws it away, so the operator has never been able to see why a width or a key looks the way it does.`),
12820
+ IsSelected: z.boolean().describe(`
12821
+ * * Field Name: IsSelected
12822
+ * * Display Name: Is Selected
12823
+ * * SQL Data Type: bit
12824
+ * * Default Value: 0
12825
+ * * Description: Whether this connection syncs this item. THE AXIS THAT MAKES THE CONTRACT SATISFIABLE: Status says whether the item is in the catalog at all, IsSelected says whether the customer chose it. Conflating the two is why a newly discovered object had to arrive ENABLED — a disabled object was excluded from schema introspection, so it never reached key inference and never reached a migration.`),
12826
+ SelectedAt: z.date().nullable().describe(`
12827
+ * * Field Name: SelectedAt
12828
+ * * Display Name: Selected At
12829
+ * * SQL Data Type: datetimeoffset
12830
+ * * Description: When the selection last changed. Lets the UI distinguish "never chosen" from "deliberately deselected".`),
12831
+ FirstSeenAt: z.date().nullable().describe(`
12832
+ * * Field Name: FirstSeenAt
12833
+ * * Display Name: First Seen At
12834
+ * * SQL Data Type: datetimeoffset
12835
+ * * Description: When this connection first observed this item. Set once and never updated, so a catalog can be read as a history of what the source exposed and when.`),
12836
+ LastSeenAt: z.date().nullable().describe(`
12837
+ * * Field Name: LastSeenAt
12838
+ * * Display Name: Last Seen At
12839
+ * * SQL Data Type: datetimeoffset
12840
+ * * Description: When this connection most recently observed this item. A row whose LastSeenAt is older than the connection last discovery is what "absent from the source" means.`),
12841
+ LastSampledAt: z.date().nullable().describe(`
12842
+ * * Field Name: LastSampledAt
12843
+ * * Display Name: Last Sampled At
12844
+ * * SQL Data Type: datetimeoffset
12845
+ * * Description: When sampling last streamed records for this item. Distinct from LastSeenAt: an item can be listed by an endpoint without ever being sampled, and unsampled items are exactly the ones whose widths and keys came from the declared catalog rather than from data.`),
12846
+ __mj_CreatedAt: z.date().describe(`
12847
+ * * Field Name: __mj_CreatedAt
12848
+ * * Display Name: Created At
12849
+ * * SQL Data Type: datetimeoffset
12850
+ * * Default Value: getutcdate()`),
12851
+ __mj_UpdatedAt: z.date().describe(`
12852
+ * * Field Name: __mj_UpdatedAt
12853
+ * * Display Name: Updated At
12854
+ * * SQL Data Type: datetimeoffset
12855
+ * * Default Value: getutcdate()`),
12856
+ Integration: z.string().describe(`
12857
+ * * Field Name: Integration
12858
+ * * Display Name: Integration
12859
+ * * SQL Data Type: nvarchar(100)`),
12860
+ CompanyIntegration: z.string().describe(`
12861
+ * * Field Name: CompanyIntegration
12862
+ * * Display Name: Company Integration
12863
+ * * SQL Data Type: nvarchar(255)`),
12864
+ IntegrationObject: z.string().nullable().describe(`
12865
+ * * Field Name: IntegrationObject
12866
+ * * Display Name: Integration Object
12867
+ * * SQL Data Type: nvarchar(255)`),
12868
+ });
12197
12869
  /**
12198
12870
  * zod schema definition for the entity MJ: Company Integration Record Maps
12199
12871
  */
@@ -13191,10 +13863,46 @@ export const MJComponentSchema = z.object({
13191
13863
  * * Display Name: Technical Design Vector Binary
13192
13864
  * * SQL Data Type: varbinary(MAX)
13193
13865
  * * Description: The technical-design embedding as little-endian IEEE-754 float32 bytes (4 bytes per dimension): the compact form of TechnicalDesignVector. Written alongside TechnicalDesignVector; readers prefer it and fall back to TechnicalDesignVector when it is NULL.`),
13866
+ ApprovalStatus: z.union([z.literal('Approved'), z.literal('Pending'), z.literal('Rejected')]).describe(`
13867
+ * * Field Name: ApprovalStatus
13868
+ * * Display Name: Approval Status
13869
+ * * SQL Data Type: nvarchar(20)
13870
+ * * Default Value: Pending
13871
+ * * Value List Type: List
13872
+ * * Possible Values
13873
+ * * Approved
13874
+ * * Pending
13875
+ * * Rejected
13876
+ * * Description: Whether this component version's definition is approved: Pending, Approved or Rejected. Separate from Status, which is publication. An approval is current only while ApprovedFingerprint matches the current definition.`),
13877
+ ApprovalComments: z.string().nullable().describe(`
13878
+ * * Field Name: ApprovalComments
13879
+ * * Display Name: Approval Comments
13880
+ * * SQL Data Type: nvarchar(MAX)
13881
+ * * Description: Reviewer comments recorded with the approval decision, such as the tests the definition passed.`),
13882
+ ApprovedByUserID: z.string().nullable().describe(`
13883
+ * * Field Name: ApprovedByUserID
13884
+ * * Display Name: Approved By User ID
13885
+ * * SQL Data Type: uniqueidentifier
13886
+ * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)
13887
+ * * Description: The user who approved this component version.`),
13888
+ ApprovedAt: z.date().nullable().describe(`
13889
+ * * Field Name: ApprovedAt
13890
+ * * Display Name: Approved At
13891
+ * * SQL Data Type: datetimeoffset
13892
+ * * Description: When this component version was approved.`),
13893
+ ApprovedFingerprint: z.string().nullable().describe(`
13894
+ * * Field Name: ApprovedFingerprint
13895
+ * * Display Name: Approved Fingerprint
13896
+ * * SQL Data Type: nvarchar(100)
13897
+ * * Description: SHA-256 fingerprint of the definition that was approved: the component's specification for this version. The approval is current only while this matches the fingerprint of the current definition.`),
13194
13898
  SourceRegistry: z.string().nullable().describe(`
13195
13899
  * * Field Name: SourceRegistry
13196
13900
  * * Display Name: Source Registry
13197
13901
  * * SQL Data Type: nvarchar(255)`),
13902
+ ApprovedByUser: z.string().nullable().describe(`
13903
+ * * Field Name: ApprovedByUser
13904
+ * * Display Name: Approved By User
13905
+ * * SQL Data Type: nvarchar(100)`),
13198
13906
  });
13199
13907
  /**
13200
13908
  * zod schema definition for the entity MJ: Content File Types
@@ -13224,6 +13932,21 @@ export const MJContentFileTypeSchema = z.object({
13224
13932
  * * Display Name: Updated At
13225
13933
  * * SQL Data Type: datetimeoffset
13226
13934
  * * Default Value: getutcdate()`),
13935
+ ByteSignature: z.string().nullable().describe(`
13936
+ * * Field Name: ByteSignature
13937
+ * * Display Name: Byte Signature
13938
+ * * SQL Data Type: nvarchar(MAX)
13939
+ * * Description: How this file type is recognised from its own content, as JSON. Either magic bytes - {"Magic":[37,80,68,70],"Offset":0,"Unambiguous":true} - or, for a text format, the characters it opens with: {"TextPrefix":["<!doctype html","<html"]}, matched after a byte-order mark and leading whitespace are stripped and case is folded. Unambiguous means a match may override a declared type; a container format such as zip recognises without identifying, so it may not.`),
13940
+ IsText: z.boolean().nullable().describe(`
13941
+ * * Field Name: IsText
13942
+ * * Display Name: Is Text
13943
+ * * SQL Data Type: bit
13944
+ * * Description: Whether this file type is text. Decides whether an unrecognised file is attempted as plain text or routed down the multi-modal path. NULL means unknown, and the pipeline falls back to inspecting the bytes.`),
13945
+ ExtractorKey: z.string().nullable().describe(`
13946
+ * * Field Name: ExtractorKey
13947
+ * * Display Name: Extractor Key
13948
+ * * SQL Data Type: nvarchar(100)
13949
+ * * Description: The registered content extractor that reads this file type. Lets a deployment add support for a format by pointing its file type at an extractor, rather than editing the extractor's own list of what it supports.`),
13227
13950
  });
13228
13951
  /**
13229
13952
  * zod schema definition for the entity MJ: Content Item Attributes
@@ -13292,7 +14015,7 @@ export const MJContentItemChunkSchema = z.object({
13292
14015
  * * Display Name: Vector Record ID
13293
14016
  * * SQL Data Type: nvarchar(100)
13294
14017
  * * Description: The identifier of this chunk's vector record in the vector database (e.g. Pinecone) — the deterministic key MemberJunction assigns and upserts the chunk's embedding under. Provides traceability from the chunk back to its stored vector.`),
13295
- EmbeddingStatus: z.union([z.literal('Active'), z.literal('Complete'), z.literal('Failed'), z.literal('Pending'), z.literal('Processed'), z.literal('Processing'), z.literal('Skipped')]).describe(`
14018
+ EmbeddingStatus: z.union([z.literal('Active'), z.literal('Complete'), z.literal('Failed'), z.literal('MetadataOnly'), z.literal('Pending'), z.literal('Processed'), z.literal('Processing'), z.literal('Skipped')]).describe(`
13296
14019
  * * Field Name: EmbeddingStatus
13297
14020
  * * Display Name: Embedding Status
13298
14021
  * * SQL Data Type: nvarchar(20)
@@ -13302,6 +14025,7 @@ export const MJContentItemChunkSchema = z.object({
13302
14025
  * * Active
13303
14026
  * * Complete
13304
14027
  * * Failed
14028
+ * * MetadataOnly
13305
14029
  * * Pending
13306
14030
  * * Processed
13307
14031
  * * Processing
@@ -13420,6 +14144,16 @@ export const MJContentItemChunkSchema = z.object({
13420
14144
  * * SQL Data Type: uniqueidentifier
13421
14145
  * * Related Entity/Foreign Key: MJ: Content Item Chunks (vwContentItemChunks.ID)
13422
14146
  * * Description: Optional self-reference to another chunk of the same Content Item that is the parent of this one, expressing a chapter to sub-chapter hierarchy — for example a five-minute chapter of a recording and the individual speaker turns within it, or a document section and its subsections. NULL for top-level segments.`),
14147
+ FieldConfidence: z.string().nullable().describe(`
14148
+ * * Field Name: FieldConfidence
14149
+ * * Display Name: Field Confidence
14150
+ * * SQL Data Type: nvarchar(MAX)
14151
+ * * Description: Per-field provenance for the pipeline: for each well-known field, the confidence the winning stage had and which stage set it.`),
14152
+ Decorator: z.string().nullable().describe(`
14153
+ * * Field Name: Decorator
14154
+ * * Display Name: Decorator
14155
+ * * SQL Data Type: nvarchar(MAX)
14156
+ * * Description: Text that accompanies this chunk so it still makes sense retrieved on its own — normally inherited from its parent item. Kept as its own field rather than prefixed into Text so it stays separately searchable and can be revised without rewriting the chunk.`),
13423
14157
  ContentItem: z.string().nullable().describe(`
13424
14158
  * * Field Name: ContentItem
13425
14159
  * * Display Name: Content Item Name
@@ -13673,16 +14407,19 @@ export const MJContentItemSchema = z.object({
13673
14407
  * * SQL Data Type: uniqueidentifier
13674
14408
  * * Related Entity/Foreign Key: MJ: Entity Record Documents (vwEntityRecordDocuments.ID)
13675
14409
  * * Description: For entity-sourced content items, links to the Entity Record Document snapshot that was rendered for this item. Provides traceability back to the source entity record via ERD.EntityID + ERD.RecordID. NULL for non-entity sources.`),
13676
- EmbeddingStatus: z.union([z.literal('Complete'), z.literal('Failed'), z.literal('Pending'), z.literal('Processing'), z.literal('Skipped')]).describe(`
14410
+ EmbeddingStatus: z.union([z.literal('Active'), z.literal('Complete'), z.literal('Failed'), z.literal('MetadataOnly'), z.literal('Pending'), z.literal('Processed'), z.literal('Processing'), z.literal('Skipped')]).describe(`
13677
14411
  * * Field Name: EmbeddingStatus
13678
14412
  * * Display Name: Embedding Status
13679
14413
  * * SQL Data Type: nvarchar(20)
13680
14414
  * * Default Value: Pending
13681
14415
  * * Value List Type: List
13682
14416
  * * Possible Values
14417
+ * * Active
13683
14418
  * * Complete
13684
14419
  * * Failed
14420
+ * * MetadataOnly
13685
14421
  * * Pending
14422
+ * * Processed
13686
14423
  * * Processing
13687
14424
  * * Skipped
13688
14425
  * * Description: Vectorization status: Pending (not yet embedded), Processing (currently being embedded), Complete (vector stored), Failed (embedding error), Skipped (excluded from vectorization).`),
@@ -13731,6 +14468,82 @@ export const MJContentItemSchema = z.object({
13731
14468
  * * Display Name: Display Link
13732
14469
  * * SQL Data Type: nvarchar(2000)
13733
14470
  * * Description: Optional display/clickable URL for this Content Item (e.g. a canonical or human-facing link), distinct from the source URL used for ingestion.`),
14471
+ FieldConfidence: z.string().nullable().describe(`
14472
+ * * Field Name: FieldConfidence
14473
+ * * Display Name: Field Confidence
14474
+ * * SQL Data Type: nvarchar(MAX)
14475
+ * * Description: Per-field provenance for the pipeline: for each well-known field, the confidence the winning stage had and which stage set it. Lets two stages that know nothing about each other resolve a shared field on merit rather than by running order.`),
14476
+ ExtractionStatus: z.union([z.literal('Complete'), z.literal('Failed'), z.literal('Pending'), z.literal('Processing'), z.literal('Skipped')]).nullable().describe(`
14477
+ * * Field Name: ExtractionStatus
14478
+ * * Display Name: Extraction Status
14479
+ * * SQL Data Type: nvarchar(40)
14480
+ * * Value List Type: List
14481
+ * * Possible Values
14482
+ * * Complete
14483
+ * * Failed
14484
+ * * Pending
14485
+ * * Processing
14486
+ * * Skipped
14487
+ * * Description: Status of the Extract stage for this item: Pending, Processing, Complete, Failed or Skipped.`),
14488
+ SegmentationStatus: z.union([z.literal('Complete'), z.literal('Failed'), z.literal('Pending'), z.literal('Processing'), z.literal('Skipped')]).nullable().describe(`
14489
+ * * Field Name: SegmentationStatus
14490
+ * * Display Name: Segmentation Status
14491
+ * * SQL Data Type: nvarchar(40)
14492
+ * * Value List Type: List
14493
+ * * Possible Values
14494
+ * * Complete
14495
+ * * Failed
14496
+ * * Pending
14497
+ * * Processing
14498
+ * * Skipped
14499
+ * * Description: Status of the Segment stage for this item: Pending, Processing, Complete, Failed or Skipped.`),
14500
+ DeleteStatus: z.union([z.literal('Deleted'), z.literal('Pending')]).nullable().describe(`
14501
+ * * Field Name: DeleteStatus
14502
+ * * Display Name: Delete Status
14503
+ * * SQL Data Type: nvarchar(20)
14504
+ * * Value List Type: List
14505
+ * * Possible Values
14506
+ * * Deleted
14507
+ * * Pending
14508
+ * * Description: Soft-delete marker: Pending once something has been removed at the source, Deleted once the Delete stage has cleaned up everything downstream of it. Marking rather than deleting keeps the outside-system cleanup in one place and makes it retryable.`),
14509
+ ExtractorKey: z.string().nullable().describe(`
14510
+ * * Field Name: ExtractorKey
14511
+ * * Display Name: Extractor Key
14512
+ * * SQL Data Type: nvarchar(100)
14513
+ * * Description: The registered content extractor that actually read this item, recorded as a receipt of what ran. Distinct from the defaults on Content Type and in the source configuration, which say what should run.`),
14514
+ ExtractorKeyOverride: z.string().nullable().describe(`
14515
+ * * Field Name: ExtractorKeyOverride
14516
+ * * Display Name: Extractor Key Override
14517
+ * * SQL Data Type: nvarchar(100)
14518
+ * * Description: Forces a specific content extractor for this item, overriding every default in the cascade. Set by a splitting extractor that already knows what one of its own children is, and by an operator correcting a misrouted item.`),
14519
+ Modality: z.union([z.literal('audio'), z.literal('image'), z.literal('multimodal'), z.literal('text'), z.literal('video')]).nullable().describe(`
14520
+ * * Field Name: Modality
14521
+ * * Display Name: Modality
14522
+ * * SQL Data Type: nvarchar(20)
14523
+ * * Value List Type: List
14524
+ * * Possible Values
14525
+ * * audio
14526
+ * * image
14527
+ * * multimodal
14528
+ * * text
14529
+ * * video
14530
+ * * Description: What kind of content this item holds: text, image, audio, video or multimodal. Determines whether the item can be embedded without extracted text.`),
14531
+ Date: z.date().nullable().describe(`
14532
+ * * Field Name: Date
14533
+ * * Display Name: Content Date
14534
+ * * SQL Data Type: datetimeoffset
14535
+ * * Description: The date the content itself carries — published, issued or authored — as opposed to when this row was created.`),
14536
+ Decorator: z.string().nullable().describe(`
14537
+ * * Field Name: Decorator
14538
+ * * Display Name: Decorator
14539
+ * * SQL Data Type: nvarchar(MAX)
14540
+ * * Description: Text that accompanies this item so it still makes sense retrieved on its own. Kept as its own field rather than prefixed into Text so it stays separately searchable and can be revised without rewriting the content.`),
14541
+ FileID: z.string().nullable().describe(`
14542
+ * * Field Name: FileID
14543
+ * * Display Name: File
14544
+ * * SQL Data Type: uniqueidentifier
14545
+ * * Related Entity/Foreign Key: MJ: Files (vwFiles.ID)
14546
+ * * Description: The durable copy of the fetched artifact, held as an MJ File so the bytes live in whichever storage provider the source is configured for rather than in this database.`),
13734
14547
  ContentSource: z.string().nullable().describe(`
13735
14548
  * * Field Name: ContentSource
13736
14549
  * * Display Name: Content Source Name
@@ -13759,6 +14572,10 @@ export const MJContentItemSchema = z.object({
13759
14572
  * * Field Name: Parent
13760
14573
  * * Display Name: Parent Content Name
13761
14574
  * * SQL Data Type: nvarchar(250)`),
14575
+ File: z.string().nullable().describe(`
14576
+ * * Field Name: File
14577
+ * * Display Name: File Details
14578
+ * * SQL Data Type: nvarchar(500)`),
13762
14579
  RootParentID: z.string().nullable().describe(`
13763
14580
  * * Field Name: RootParentID
13764
14581
  * * Display Name: Root Parent Content
@@ -14241,6 +15058,27 @@ export const MJContentSourceSchema = z.object({
14241
15058
  * * SQL Data Type: uniqueidentifier
14242
15059
  * * Related Entity/Foreign Key: MJ: Scheduled Jobs (vwScheduledJobs.ID)
14243
15060
  * * Description: Optional link to the Scheduled Job that runs this content source on a recurring basis. Replaces the retired ScheduledActionID link; the job is of type Action and carries its action + parameters in ScheduledJob.Configuration.`),
15061
+ FieldConfidence: z.string().nullable().describe(`
15062
+ * * Field Name: FieldConfidence
15063
+ * * Display Name: Field Confidence
15064
+ * * SQL Data Type: nvarchar(MAX)
15065
+ * * Description: Per-field provenance for the pipeline: for each well-known field, the confidence the winning stage had and which stage set it.`),
15066
+ ForceDiscovery: z.boolean().describe(`
15067
+ * * Field Name: ForceDiscovery
15068
+ * * Display Name: Force Discovery
15069
+ * * SQL Data Type: bit
15070
+ * * Default Value: 0
15071
+ * * Description: Walk this source on the next pass regardless of its schedule. A one-shot: the Discover stage clears it when the walk completes. Scheduling is deployment-owned and the shipped Discover process selects ForceDiscovery = 1, which is why there is no discovery status column to re-arm.`),
15072
+ LastDiscoveredAt: z.date().nullable().describe(`
15073
+ * * Field Name: LastDiscoveredAt
15074
+ * * Display Name: Last Discovered At
15075
+ * * SQL Data Type: datetimeoffset
15076
+ * * Description: When this source was last walked by the Discover stage. Stamped with the time a completed walk started, and passed back as Since on subsequent incremental walks.`),
15077
+ LastSyncedAt: z.date().nullable().describe(`
15078
+ * * Field Name: LastSyncedAt
15079
+ * * Display Name: Last Synced At
15080
+ * * SQL Data Type: datetimeoffset
15081
+ * * Description: When this source last completed a full Sync walk (reconciling removals). Stamped with the time a completed sync walk started. The shipped Sync Record Process selects sources by LastSyncedAt (LastSyncedAt IS NULL OR LastSyncedAt < DATEADD(day, -30, GETUTCDATE())), never by ForceDiscovery; to force a sync, set LastSyncedAt back or to NULL.`),
14244
15082
  ContentType: z.string().describe(`
14245
15083
  * * Field Name: ContentType
14246
15084
  * * Display Name: Content Type Name
@@ -14382,6 +15220,11 @@ export const MJContentTypeSchema = z.object({
14382
15220
  * * Display Name: Cleaner Strategy
14383
15221
  * * SQL Data Type: nvarchar(100)
14384
15222
  * * Description: Default content-cleaning strategy for content of this type, used when a Content Source does not specify its own CleanerKey. See ContentSource.CleanerKey.`),
15223
+ ExtractorKey: z.string().nullable().describe(`
15224
+ * * Field Name: ExtractorKey
15225
+ * * Display Name: Extractor Key
15226
+ * * SQL Data Type: nvarchar(100)
15227
+ * * Description: The default content extractor for items of this content type, beside SegmenterKey and CleanerKey. A per-type default has no home in a source's Configuration, and reading it from a run's Options would make it per-run.`),
14385
15228
  AIModel: z.string().describe(`
14386
15229
  * * Field Name: AIModel
14387
15230
  * * Display Name: AI Model Name
@@ -16333,6 +17176,38 @@ export const MJDashboardSchema = z.object({
16333
17176
  * * SQL Data Type: uniqueidentifier
16334
17177
  * * Related Entity/Foreign Key: MJ: Environments (vwEnvironments.ID)
16335
17178
  * * Default Value: F51358F3-9447-4176-B313-BF8025FD8D09`),
17179
+ ApprovalStatus: z.union([z.literal('Approved'), z.literal('Pending'), z.literal('Rejected')]).describe(`
17180
+ * * Field Name: ApprovalStatus
17181
+ * * Display Name: Approval Status
17182
+ * * SQL Data Type: nvarchar(20)
17183
+ * * Default Value: Pending
17184
+ * * Value List Type: List
17185
+ * * Possible Values
17186
+ * * Approved
17187
+ * * Pending
17188
+ * * Rejected
17189
+ * * Description: Whether this dashboard's definition is approved: Pending, Approved or Rejected. An approval is current only while ApprovedFingerprint matches the current definition.`),
17190
+ ApprovalComments: z.string().nullable().describe(`
17191
+ * * Field Name: ApprovalComments
17192
+ * * Display Name: Approval Comments
17193
+ * * SQL Data Type: nvarchar(MAX)
17194
+ * * Description: Reviewer comments recorded with the approval decision, such as the tests the definition passed.`),
17195
+ ApprovedByUserID: z.string().nullable().describe(`
17196
+ * * Field Name: ApprovedByUserID
17197
+ * * Display Name: Approved By User ID
17198
+ * * SQL Data Type: uniqueidentifier
17199
+ * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)
17200
+ * * Description: The user who approved this dashboard.`),
17201
+ ApprovedAt: z.date().nullable().describe(`
17202
+ * * Field Name: ApprovedAt
17203
+ * * Display Name: Approved At
17204
+ * * SQL Data Type: datetimeoffset
17205
+ * * Description: When this dashboard was approved.`),
17206
+ ApprovedFingerprint: z.string().nullable().describe(`
17207
+ * * Field Name: ApprovedFingerprint
17208
+ * * Display Name: Approved Fingerprint
17209
+ * * SQL Data Type: nvarchar(100)
17210
+ * * Description: SHA-256 fingerprint of the definition that was approved: its layout, parts, property mappings, wires and code. The approval is current only while this matches the fingerprint of the current definition.`),
16336
17211
  User: z.string().describe(`
16337
17212
  * * Field Name: User
16338
17213
  * * Display Name: User
@@ -16349,6 +17224,10 @@ export const MJDashboardSchema = z.object({
16349
17224
  * * Field Name: Environment
16350
17225
  * * Display Name: Environment
16351
17226
  * * SQL Data Type: nvarchar(255)`),
17227
+ ApprovedByUser: z.string().nullable().describe(`
17228
+ * * Field Name: ApprovedByUser
17229
+ * * Display Name: Approved By User
17230
+ * * SQL Data Type: nvarchar(100)`),
16352
17231
  });
16353
17232
  /**
16354
17233
  * zod schema definition for the entity MJ: Data Context Items
@@ -16938,6 +17817,12 @@ export const MJDuplicateRunSchema = z.object({
16938
17817
  * * SQL Data Type: bit
16939
17818
  * * Default Value: 0
16940
17819
  * * Description: When set to 1, duplicate detection stops after the current batch. Used for pause/cancel.`),
17820
+ EntityDocumentID: z.string().describe(`
17821
+ * * Field Name: EntityDocumentID
17822
+ * * Display Name: Entity Document
17823
+ * * SQL Data Type: uniqueidentifier
17824
+ * * Related Entity/Foreign Key: MJ: Entity Documents (vwEntityDocuments.ID)
17825
+ * * Description: The Entity Document this run used: its template, vectors, match thresholds and LLM reasoning settings produced the run's matches.`),
16941
17826
  Entity: z.string().describe(`
16942
17827
  * * Field Name: Entity
16943
17828
  * * Display Name: Entity Name
@@ -16954,6 +17839,10 @@ export const MJDuplicateRunSchema = z.object({
16954
17839
  * * Field Name: ApprovedByUser
16955
17840
  * * Display Name: Approved By User
16956
17841
  * * SQL Data Type: nvarchar(100)`),
17842
+ EntityDocument: z.string().describe(`
17843
+ * * Field Name: EntityDocument
17844
+ * * Display Name: Entity Document Name
17845
+ * * SQL Data Type: nvarchar(250)`),
16957
17846
  });
16958
17847
  /**
16959
17848
  * zod schema definition for the entity MJ: Employee Company Integrations
@@ -18244,6 +19133,98 @@ export const MJEntityActionSchema = z.object({
18244
19133
  * * Display Name: Scope Entity Name
18245
19134
  * * SQL Data Type: nvarchar(255)`),
18246
19135
  });
19136
+ /**
19137
+ * zod schema definition for the entity MJ: Entity Alternate Base Views
19138
+ */
19139
+ export const MJEntityAlternateBaseViewSchema = z.object({
19140
+ ID: z.string().describe(`
19141
+ * * Field Name: ID
19142
+ * * Display Name: ID
19143
+ * * SQL Data Type: uniqueidentifier
19144
+ * * Default Value: newsequentialid()`),
19145
+ EntityID: z.string().describe(`
19146
+ * * Field Name: EntityID
19147
+ * * Display Name: Entity
19148
+ * * SQL Data Type: uniqueidentifier
19149
+ * * Related Entity/Foreign Key: MJ: Entities (vwEntities.ID)
19150
+ * * Description: Owning entity whose column contract this alternate base view shares.`),
19151
+ ParentID: z.string().nullable().describe(`
19152
+ * * Field Name: ParentID
19153
+ * * Display Name: Parent
19154
+ * * SQL Data Type: uniqueidentifier
19155
+ * * Related Entity/Foreign Key: MJ: Entity Alternate Base Views (vwEntityAlternateBaseViews.ID)
19156
+ * * Description: Optional parent alternate base view on the same entity that this view derives from (e.g. an Active Auto-Renew Members view built on top of Active Members). NULL when the view selects directly from the entity's BaseView. Automatically populated on save via SQL AST extraction when the view's FROM clause references another registered alternate base view.`),
19157
+ Name: z.string().describe(`
19158
+ * * Field Name: Name
19159
+ * * Display Name: Name
19160
+ * * SQL Data Type: nvarchar(100)
19161
+ * * Description: Logical name of the alternate base view, unique per entity (case-insensitive). Cannot contain pipe (|) or colon (:) characters. Callers pass this name via RunViewParams.AlternateBaseView or pin it on a User View.`),
19162
+ DisplayName: z.string().nullable().describe(`
19163
+ * * Field Name: DisplayName
19164
+ * * Display Name: Display Name
19165
+ * * SQL Data Type: nvarchar(255)
19166
+ * * Description: Human-friendly label shown in UI pickers and badges. Falls back to Name when NULL.`),
19167
+ Description: z.string().describe(`
19168
+ * * Field Name: Description
19169
+ * * Display Name: Description
19170
+ * * SQL Data Type: nvarchar(MAX)
19171
+ * * Description: Plain-language definition of which rows this alternate base view includes. Surfaced as help text in pickers and in agent and QueryGen discovery context.`),
19172
+ SchemaName: z.string().nullable().describe(`
19173
+ * * Field Name: SchemaName
19174
+ * * Display Name: Schema Name
19175
+ * * SQL Data Type: nvarchar(255)
19176
+ * * Description: Database schema of ViewName. When NULL, defaults to the owning entity's SchemaName. Cross-schema views allow an Open App to register an alternate view in its own schema on an upstream entity.`),
19177
+ ViewName: z.string().describe(`
19178
+ * * Field Name: ViewName
19179
+ * * Display Name: View Name
19180
+ * * SQL Data Type: nvarchar(255)
19181
+ * * Description: Physical SQL view name in the database. Must select all columns from the owning entity's BaseView.`),
19182
+ CachePolicy: z.union([z.literal('Bypass'), z.literal('Default')]).describe(`
19183
+ * * Field Name: CachePolicy
19184
+ * * Display Name: Cache Policy
19185
+ * * SQL Data Type: nvarchar(20)
19186
+ * * Default Value: Default
19187
+ * * Value List Type: List
19188
+ * * Possible Values
19189
+ * * Bypass
19190
+ * * Default
19191
+ * * Description: Controls RunView caching for this alternate view: Default caches results under an isolated abv: fingerprint segment and invalidates on entity writes; Bypass disables caching for views whose predicates depend on the clock or other tables.`),
19192
+ Status: z.union([z.literal('Active'), z.literal('Deprecated'), z.literal('Disabled')]).describe(`
19193
+ * * Field Name: Status
19194
+ * * Display Name: Status
19195
+ * * SQL Data Type: nvarchar(20)
19196
+ * * Default Value: Active
19197
+ * * Value List Type: List
19198
+ * * Possible Values
19199
+ * * Active
19200
+ * * Deprecated
19201
+ * * Disabled
19202
+ * * Description: Lifecycle status of the alternate view: Active (selectable and shown in pickers and agent context), Deprecated (executable with a warning, hidden from pickers and agents), or Disabled (rejected at runtime).`),
19203
+ Sequence: z.number().describe(`
19204
+ * * Field Name: Sequence
19205
+ * * Display Name: Sequence
19206
+ * * SQL Data Type: int
19207
+ * * Default Value: 0
19208
+ * * Description: Display ordering of this alternate view within its owning entity (lower numbers appear first).`),
19209
+ __mj_CreatedAt: z.date().describe(`
19210
+ * * Field Name: __mj_CreatedAt
19211
+ * * Display Name: Created At
19212
+ * * SQL Data Type: datetimeoffset
19213
+ * * Default Value: getutcdate()`),
19214
+ __mj_UpdatedAt: z.date().describe(`
19215
+ * * Field Name: __mj_UpdatedAt
19216
+ * * Display Name: Updated At
19217
+ * * SQL Data Type: datetimeoffset
19218
+ * * Default Value: getutcdate()`),
19219
+ Entity: z.string().describe(`
19220
+ * * Field Name: Entity
19221
+ * * Display Name: Entity Text
19222
+ * * SQL Data Type: nvarchar(255)`),
19223
+ Parent: z.string().nullable().describe(`
19224
+ * * Field Name: Parent
19225
+ * * Display Name: Parent Text
19226
+ * * SQL Data Type: nvarchar(100)`),
19227
+ });
18247
19228
  /**
18248
19229
  * zod schema definition for the entity MJ: Entity Communication Fields
18249
19230
  */
@@ -27143,6 +28124,27 @@ export const MJQuerySchema = z.object({
27143
28124
  * * Display Name: Embedding Vector Binary
27144
28125
  * * SQL Data Type: varbinary(MAX)
27145
28126
  * * Description: The query embedding as little-endian IEEE-754 float32 bytes (4 bytes per dimension): the compact form of EmbeddingVector. Written alongside EmbeddingVector; readers prefer it and fall back to EmbeddingVector when it is NULL.`),
28127
+ ApprovalComments: z.string().nullable().describe(`
28128
+ * * Field Name: ApprovalComments
28129
+ * * Display Name: Approval Comments
28130
+ * * SQL Data Type: nvarchar(MAX)
28131
+ * * Description: Reviewer comments recorded with the approval decision, such as the tests the definition passed.`),
28132
+ ApprovedByUserID: z.string().nullable().describe(`
28133
+ * * Field Name: ApprovedByUserID
28134
+ * * Display Name: Approved By User ID
28135
+ * * SQL Data Type: uniqueidentifier
28136
+ * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)
28137
+ * * Description: The user who approved this query.`),
28138
+ ApprovedAt: z.date().nullable().describe(`
28139
+ * * Field Name: ApprovedAt
28140
+ * * Display Name: Approved At
28141
+ * * SQL Data Type: datetimeoffset
28142
+ * * Description: When this query was approved.`),
28143
+ ApprovedFingerprint: z.string().nullable().describe(`
28144
+ * * Field Name: ApprovedFingerprint
28145
+ * * Display Name: Approved Fingerprint
28146
+ * * SQL Data Type: nvarchar(100)
28147
+ * * Description: SHA-256 fingerprint of the definition that was approved: its SQL, dialect variants and parameter contract. The approval is current only while this matches the fingerprint of the current definition.`),
27146
28148
  Category: z.string().nullable().describe(`
27147
28149
  * * Field Name: Category
27148
28150
  * * Display Name: Category Name
@@ -27159,6 +28161,10 @@ export const MJQuerySchema = z.object({
27159
28161
  * * Field Name: ExternalDataSource
27160
28162
  * * Display Name: External Data Source
27161
28163
  * * SQL Data Type: nvarchar(100)`),
28164
+ ApprovedByUser: z.string().nullable().describe(`
28165
+ * * Field Name: ApprovedByUser
28166
+ * * Display Name: Approved By User
28167
+ * * SQL Data Type: nvarchar(100)`),
27162
28168
  });
27163
28169
  /**
27164
28170
  * zod schema definition for the entity MJ: Query Categories
@@ -27360,6 +28366,12 @@ export const MJQueryEntitySchema = z.object({
27360
28366
  * * Display Name: Auto Detect Confidence Score
27361
28367
  * * SQL Data Type: decimal(3, 2)
27362
28368
  * * Description: Confidence score (0.00-1.00) indicating how certain the AI was that this entity is actually used in the query. Only populated when DetectionMethod="AI". Considers factors like: direct table references vs indirect joins, clear entity names vs ambiguous aliases, and context from the query purpose. Lower scores might indicate the entity is only peripherally involved or the detection was uncertain.`),
28369
+ AlternateBaseViewID: z.string().nullable().describe(`
28370
+ * * Field Name: AlternateBaseViewID
28371
+ * * Display Name: Alternate Base View
28372
+ * * SQL Data Type: uniqueidentifier
28373
+ * * Related Entity/Foreign Key: MJ: Entity Alternate Base Views (vwEntityAlternateBaseViews.ID)
28374
+ * * Description: When this query references an alternate base view rather than the entity's primary BaseView, records the specific MJ: Entity Alternate Base Views row while EntityID continues to reference the owning entity.`),
27363
28375
  Query: z.string().describe(`
27364
28376
  * * Field Name: Query
27365
28377
  * * Display Name: Query
@@ -27368,6 +28380,10 @@ export const MJQueryEntitySchema = z.object({
27368
28380
  * * Field Name: Entity
27369
28381
  * * Display Name: Entity
27370
28382
  * * SQL Data Type: nvarchar(255)`),
28383
+ AlternateBaseView: z.string().nullable().describe(`
28384
+ * * Field Name: AlternateBaseView
28385
+ * * Display Name: Alternate Base View Name
28386
+ * * SQL Data Type: nvarchar(100)`),
27371
28387
  });
27372
28388
  /**
27373
28389
  * zod schema definition for the entity MJ: Query Fields
@@ -27554,6 +28570,12 @@ export const MJQueryParameterSchema = z.object({
27554
28570
  * * Display Name: Updated At
27555
28571
  * * SQL Data Type: datetimeoffset
27556
28572
  * * Default Value: getutcdate()`),
28573
+ IsServerSet: z.boolean().describe(`
28574
+ * * Field Name: IsServerSet
28575
+ * * Display Name: Is Server Set
28576
+ * * SQL Data Type: bit
28577
+ * * Default Value: 0
28578
+ * * Description: When true, only server code may supply this parameter's value (RunQueryParams.ServerParameters). A value for it from a client is refused.`),
27557
28579
  Query: z.string().describe(`
27558
28580
  * * Field Name: Query
27559
28581
  * * Display Name: Query
@@ -29014,7 +30036,7 @@ export const MJRecordProcessSchema = z.object({
29014
30036
  * * Disabled
29015
30037
  * * Draft
29016
30038
  * * Description: Lifecycle status: Draft (not yet wired), Active (triggers live), or Disabled`),
29017
- WorkType: z.union([z.literal('Action'), z.literal('Agent'), z.literal('Clone'), z.literal('FieldRules'), z.literal('Infer'), z.literal('ML Model')]).describe(`
30039
+ WorkType: z.union([z.literal('Action'), z.literal('Agent'), z.literal('Clone'), z.literal('FieldRules'), z.literal('Infer'), z.literal('ML Model'), z.literal('Pipeline Stage')]).describe(`
29018
30040
  * * Field Name: WorkType
29019
30041
  * * Display Name: Work Type
29020
30042
  * * SQL Data Type: nvarchar(20)
@@ -29026,6 +30048,7 @@ export const MJRecordProcessSchema = z.object({
29026
30048
  * * FieldRules
29027
30049
  * * Infer
29028
30050
  * * ML Model
30051
+ * * Pipeline Stage
29029
30052
  * * Description: Whether the work is an Action, an Agent, or an Infer (per-record AI Prompt). Agents are dispatched through the Execute Agent action and must be top-level + ExposeAsAction; Infer runs the AI Prompt named by PromptID for each record and writes its structured output back via OutputMapping.`),
29030
30053
  ActionID: z.string().nullable().describe(`
29031
30054
  * * Field Name: ActionID
@@ -36367,6 +37390,44 @@ export const MJUserViewSchema = z.object({
36367
37390
  * * SQL Data Type: uniqueidentifier
36368
37391
  * * Related Entity/Foreign Key: MJ: View Types (vwViewTypes.ID)
36369
37392
  * * Description: Foreign key to the view's default / active ViewType (Grid, Cards, Timeline, Map, Cluster, Tag Cloud, ...). Supersedes DisplayState.defaultMode as the source of truth for which view type the view opens in. NULL means the system default (Grid). The set of enabled view types and each type's configuration remain in the DisplayState JSON column.`),
37393
+ Properties: z.any().nullable().describe(`
37394
+ * * Field Name: Properties
37395
+ * * Display Name: Properties
37396
+ * * SQL Data Type: nvarchar(MAX)
37397
+ * * JSON Type: Array<MJUserViewEntity_IUserViewProperty>
37398
+ * * Description: JSON array of the view's declared properties: named, typed inputs, each of which adds one predicate on a target field when a run gives it a value or it has a default. A property with AllowOverride false may be set only by server code. Null for a view with no properties.`),
37399
+ ApprovalStatus: z.union([z.literal('Approved'), z.literal('Pending'), z.literal('Rejected')]).describe(`
37400
+ * * Field Name: ApprovalStatus
37401
+ * * Display Name: Approval Status
37402
+ * * SQL Data Type: nvarchar(20)
37403
+ * * Default Value: Pending
37404
+ * * Value List Type: List
37405
+ * * Possible Values
37406
+ * * Approved
37407
+ * * Pending
37408
+ * * Rejected
37409
+ * * Description: Whether this view's definition is approved: Pending, Approved or Rejected. An approval is current only while ApprovedFingerprint matches the current definition.`),
37410
+ ApprovalComments: z.string().nullable().describe(`
37411
+ * * Field Name: ApprovalComments
37412
+ * * Display Name: Approval Comments
37413
+ * * SQL Data Type: nvarchar(MAX)
37414
+ * * Description: Reviewer comments recorded with the approval decision, such as the tests the definition passed.`),
37415
+ ApprovedByUserID: z.string().nullable().describe(`
37416
+ * * Field Name: ApprovedByUserID
37417
+ * * Display Name: Approved By User ID
37418
+ * * SQL Data Type: uniqueidentifier
37419
+ * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)
37420
+ * * Description: The user who approved this view.`),
37421
+ ApprovedAt: z.date().nullable().describe(`
37422
+ * * Field Name: ApprovedAt
37423
+ * * Display Name: Approved At
37424
+ * * SQL Data Type: datetimeoffset
37425
+ * * Description: When this view was approved.`),
37426
+ ApprovedFingerprint: z.string().nullable().describe(`
37427
+ * * Field Name: ApprovedFingerprint
37428
+ * * Display Name: Approved Fingerprint
37429
+ * * SQL Data Type: nvarchar(100)
37430
+ * * Description: SHA-256 fingerprint of the definition that was approved: its entity, filters and properties. The approval is current only while this matches the fingerprint of the current definition.`),
36370
37431
  UserName: z.string().describe(`
36371
37432
  * * Field Name: UserName
36372
37433
  * * Display Name: User Name
@@ -44944,6 +46005,18 @@ each time the agent processes a prompt step.
44944
46005
  this.Set('ContinuationDepth', value);
44945
46006
  }
44946
46007
  /**
46008
+ * * Field Name: BoundActionParams
46009
+ * * Display Name: Bound Action Params
46010
+ * * SQL Data Type: nvarchar(MAX)
46011
+ * * Description: The run's bound action parameters (ExecuteAgentParams.boundActionParams) as JSON, keyed by Action ID and then parameter name. Written when the run starts, so a run resumed from a stored request applies the same bindings. Null when the run had none.
46012
+ */
46013
+ get BoundActionParams() {
46014
+ return this.Get('BoundActionParams');
46015
+ }
46016
+ set BoundActionParams(value) {
46017
+ this.Set('BoundActionParams', value);
46018
+ }
46019
+ /**
44947
46020
  * * Field Name: Agent
44948
46021
  * * Display Name: Agent Name
44949
46022
  * * SQL Data Type: nvarchar(255)
@@ -46415,9 +47488,6 @@ let MJAIAgentSessionEntity = class MJAIAgentSessionEntity extends BaseEntity {
46415
47488
  get RecordingMedia() {
46416
47489
  return this.Get('RecordingMedia');
46417
47490
  }
46418
- set RecordingMedia(value) {
46419
- this.Set('RecordingMedia', value);
46420
- }
46421
47491
  /**
46422
47492
  * * Field Name: RecordingStartedAt
46423
47493
  * * Display Name: Recording Started At
@@ -46439,9 +47509,6 @@ let MJAIAgentSessionEntity = class MJAIAgentSessionEntity extends BaseEntity {
46439
47509
  get RecordingFileID() {
46440
47510
  return this.Get('RecordingFileID');
46441
47511
  }
46442
- set RecordingFileID(value) {
46443
- this.Set('RecordingFileID', value);
46444
- }
46445
47512
  /**
46446
47513
  * * Field Name: LinkedEntityID
46447
47514
  * * Display Name: Linked Entity ID
@@ -46483,9 +47550,6 @@ let MJAIAgentSessionEntity = class MJAIAgentSessionEntity extends BaseEntity {
46483
47550
  get RecordingStatus() {
46484
47551
  return this.Get('RecordingStatus');
46485
47552
  }
46486
- set RecordingStatus(value) {
46487
- this.Set('RecordingStatus', value);
46488
- }
46489
47553
  /**
46490
47554
  * * Field Name: RecordingExpectedShards
46491
47555
  * * Display Name: Expected Shards
@@ -46495,9 +47559,6 @@ let MJAIAgentSessionEntity = class MJAIAgentSessionEntity extends BaseEntity {
46495
47559
  get RecordingExpectedShards() {
46496
47560
  return this.Get('RecordingExpectedShards');
46497
47561
  }
46498
- set RecordingExpectedShards(value) {
46499
- this.Set('RecordingExpectedShards', value);
46500
- }
46501
47562
  /**
46502
47563
  * * Field Name: RecordingCapturedSamples
46503
47564
  * * Display Name: Captured Samples
@@ -46507,9 +47568,6 @@ let MJAIAgentSessionEntity = class MJAIAgentSessionEntity extends BaseEntity {
46507
47568
  get RecordingCapturedSamples() {
46508
47569
  return this.Get('RecordingCapturedSamples');
46509
47570
  }
46510
- set RecordingCapturedSamples(value) {
46511
- this.Set('RecordingCapturedSamples', value);
46512
- }
46513
47571
  /**
46514
47572
  * * Field Name: RecordingGaps
46515
47573
  * * Display Name: Recording Gaps
@@ -46519,9 +47577,6 @@ let MJAIAgentSessionEntity = class MJAIAgentSessionEntity extends BaseEntity {
46519
47577
  get RecordingGaps() {
46520
47578
  return this.Get('RecordingGaps');
46521
47579
  }
46522
- set RecordingGaps(value) {
46523
- this.Set('RecordingGaps', value);
46524
- }
46525
47580
  /**
46526
47581
  * * Field Name: RecordingAssemblyVersion
46527
47582
  * * Display Name: Assembly Version
@@ -46532,9 +47587,6 @@ let MJAIAgentSessionEntity = class MJAIAgentSessionEntity extends BaseEntity {
46532
47587
  get RecordingAssemblyVersion() {
46533
47588
  return this.Get('RecordingAssemblyVersion');
46534
47589
  }
46535
- set RecordingAssemblyVersion(value) {
46536
- this.Set('RecordingAssemblyVersion', value);
46537
- }
46538
47590
  /**
46539
47591
  * * Field Name: Agent
46540
47592
  * * Display Name: Agent
@@ -66280,25 +67332,361 @@ MJAuthorizationEntity = __decorate([
66280
67332
  ], MJAuthorizationEntity);
66281
67333
  export { MJAuthorizationEntity };
66282
67334
  /**
66283
- * MJ: Cluster Analysis - strongly typed entity sub-class
67335
+ * MJ: Calendar Event Links - strongly typed entity sub-class
66284
67336
  * * Schema: __mj
66285
- * * Base Table: ClusterAnalysis
66286
- * * Base View: vwClusterAnalysis
66287
- * * @description A saved cluster analysis: the configuration, computed metrics, and projected 2D/3D layout of a clustering run over an entity's embedding vectors. First-class, queryable, and shareable — replaces the prior approach of stashing analyses in a User Settings JSON blob / browser localStorage. Owner-private; explicit shares are recorded in ResourcePermission against the "Cluster Analysis" ResourceType.
67337
+ * * Base Table: CalendarEventLink
67338
+ * * Base View: vwCalendarEventLinks
67339
+ * * @description Ties a record to an event in an external calendar (MS Graph, Google Calendar), so any record can be linked to an event without a calendar column on its own table.
66288
67340
  * * Primary Key: ID
66289
67341
  * @extends {BaseEntity}
66290
67342
  * @class
66291
67343
  * @public
66292
67344
  */
66293
- let MJClusterAnalysisEntity = class MJClusterAnalysisEntity extends BaseEntity {
67345
+ let MJCalendarEventLinkEntity = class MJCalendarEventLinkEntity extends BaseEntity {
66294
67346
  /**
66295
- * Loads the MJ: Cluster Analysis record from the database
66296
- * @param ID: string - primary key value to load the MJ: Cluster Analysis record.
67347
+ * Loads the MJ: Calendar Event Links record from the database
67348
+ * @param ID: string - primary key value to load the MJ: Calendar Event Links record.
66297
67349
  * @param EntityRelationshipsToLoad - (optional) the relationships to load
66298
67350
  * @returns {Promise<boolean>} - true if successful, false otherwise
66299
67351
  * @public
66300
67352
  * @async
66301
- * @memberof MJClusterAnalysisEntity
67353
+ * @memberof MJCalendarEventLinkEntity
67354
+ * @method
67355
+ * @override
67356
+ */
67357
+ async Load(ID, EntityRelationshipsToLoad) {
67358
+ const compositeKey = new CompositeKey();
67359
+ compositeKey.KeyValuePairs.push({ FieldName: 'ID', Value: ID });
67360
+ return await super.InnerLoad(compositeKey, EntityRelationshipsToLoad);
67361
+ }
67362
+ /**
67363
+ * * Field Name: ID
67364
+ * * Display Name: ID
67365
+ * * SQL Data Type: uniqueidentifier
67366
+ * * Default Value: newsequentialid()
67367
+ */
67368
+ get ID() {
67369
+ return this.Get('ID');
67370
+ }
67371
+ set ID(value) {
67372
+ this.Set('ID', value);
67373
+ }
67374
+ /**
67375
+ * * Field Name: CommunicationProviderID
67376
+ * * Display Name: Communication Provider ID
67377
+ * * SQL Data Type: uniqueidentifier
67378
+ * * Related Entity/Foreign Key: MJ: Communication Providers (vwCommunicationProviders.ID)
67379
+ */
67380
+ get CommunicationProviderID() {
67381
+ return this.Get('CommunicationProviderID');
67382
+ }
67383
+ set CommunicationProviderID(value) {
67384
+ this.Set('CommunicationProviderID', value);
67385
+ }
67386
+ /**
67387
+ * * Field Name: AccountIdentifier
67388
+ * * Display Name: Account Identifier
67389
+ * * SQL Data Type: nvarchar(255)
67390
+ * * Description: The calendar account the event lives in: a mailbox address for MS Graph, the account for Google. Later syncs and changes go to the same account.
67391
+ */
67392
+ get AccountIdentifier() {
67393
+ return this.Get('AccountIdentifier');
67394
+ }
67395
+ set AccountIdentifier(value) {
67396
+ this.Set('AccountIdentifier', value);
67397
+ }
67398
+ /**
67399
+ * * Field Name: CalendarID
67400
+ * * Display Name: Calendar ID
67401
+ * * SQL Data Type: nvarchar(500)
67402
+ * * Description: The calendar within the account. Null means the account's default calendar.
67403
+ */
67404
+ get CalendarID() {
67405
+ return this.Get('CalendarID');
67406
+ }
67407
+ set CalendarID(value) {
67408
+ this.Set('CalendarID', value);
67409
+ }
67410
+ /**
67411
+ * * Field Name: ExternalEventID
67412
+ * * Display Name: External Event ID
67413
+ * * SQL Data Type: nvarchar(500)
67414
+ * * Description: The provider's ID for the event in this account. It differs between attendees' calendars; match across calendars on ICalUID.
67415
+ */
67416
+ get ExternalEventID() {
67417
+ return this.Get('ExternalEventID');
67418
+ }
67419
+ set ExternalEventID(value) {
67420
+ this.Set('ExternalEventID', value);
67421
+ }
67422
+ /**
67423
+ * * Field Name: ExternalSeriesID
67424
+ * * Display Name: External Series ID
67425
+ * * SQL Data Type: nvarchar(500)
67426
+ * * Description: The provider's ID for the recurring series this event belongs to, when it is an occurrence or exception of one.
67427
+ */
67428
+ get ExternalSeriesID() {
67429
+ return this.Get('ExternalSeriesID');
67430
+ }
67431
+ set ExternalSeriesID(value) {
67432
+ this.Set('ExternalSeriesID', value);
67433
+ }
67434
+ /**
67435
+ * * Field Name: ICalUID
67436
+ * * Display Name: I Cal UID
67437
+ * * SQL Data Type: nvarchar(1000)
67438
+ * * Description: The event's iCalendar UID (Graph iCalUId, Google iCalUID). The same in every attendee's calendar, so other apps match an imported event to this link by it.
67439
+ */
67440
+ get ICalUID() {
67441
+ return this.Get('ICalUID');
67442
+ }
67443
+ set ICalUID(value) {
67444
+ this.Set('ICalUID', value);
67445
+ }
67446
+ /**
67447
+ * * Field Name: EntityID
67448
+ * * Display Name: Entity ID
67449
+ * * SQL Data Type: uniqueidentifier
67450
+ * * Related Entity/Foreign Key: MJ: Entities (vwEntities.ID)
67451
+ * * Description: The entity of the linked record.
67452
+ */
67453
+ get EntityID() {
67454
+ return this.Get('EntityID');
67455
+ }
67456
+ set EntityID(value) {
67457
+ this.Set('EntityID', value);
67458
+ }
67459
+ /**
67460
+ * * Field Name: RecordID
67461
+ * * Display Name: Record ID
67462
+ * * SQL Data Type: nvarchar(450)
67463
+ * * Description: The linked record's primary key, in the compact URL-segment form (a bare value for a single-column key).
67464
+ */
67465
+ get RecordID() {
67466
+ return this.Get('RecordID');
67467
+ }
67468
+ set RecordID(value) {
67469
+ this.Set('RecordID', value);
67470
+ }
67471
+ /**
67472
+ * * Field Name: Status
67473
+ * * Display Name: Status
67474
+ * * SQL Data Type: nvarchar(20)
67475
+ * * Default Value: Active
67476
+ * * Value List Type: List
67477
+ * * Possible Values
67478
+ * * Active
67479
+ * * Cancelled
67480
+ * * Description: Active, or Cancelled once the event is cancelled, in the calendar or through MemberJunction.
67481
+ */
67482
+ get Status() {
67483
+ return this.Get('Status');
67484
+ }
67485
+ set Status(value) {
67486
+ this.Set('Status', value);
67487
+ }
67488
+ /**
67489
+ * * Field Name: LastSyncedAt
67490
+ * * Display Name: Last Synced At
67491
+ * * SQL Data Type: datetimeoffset
67492
+ * * Description: When a change to this event was last read from or written to the calendar.
67493
+ */
67494
+ get LastSyncedAt() {
67495
+ return this.Get('LastSyncedAt');
67496
+ }
67497
+ set LastSyncedAt(value) {
67498
+ this.Set('LastSyncedAt', value);
67499
+ }
67500
+ /**
67501
+ * * Field Name: __mj_CreatedAt
67502
+ * * Display Name: Created At
67503
+ * * SQL Data Type: datetimeoffset
67504
+ * * Default Value: getutcdate()
67505
+ */
67506
+ get __mj_CreatedAt() {
67507
+ return this.Get('__mj_CreatedAt');
67508
+ }
67509
+ /**
67510
+ * * Field Name: __mj_UpdatedAt
67511
+ * * Display Name: Updated At
67512
+ * * SQL Data Type: datetimeoffset
67513
+ * * Default Value: getutcdate()
67514
+ */
67515
+ get __mj_UpdatedAt() {
67516
+ return this.Get('__mj_UpdatedAt');
67517
+ }
67518
+ /**
67519
+ * * Field Name: CommunicationProvider
67520
+ * * Display Name: Communication Provider
67521
+ * * SQL Data Type: nvarchar(255)
67522
+ */
67523
+ get CommunicationProvider() {
67524
+ return this.Get('CommunicationProvider');
67525
+ }
67526
+ /**
67527
+ * * Field Name: Entity
67528
+ * * Display Name: Entity
67529
+ * * SQL Data Type: nvarchar(255)
67530
+ */
67531
+ get Entity() {
67532
+ return this.Get('Entity');
67533
+ }
67534
+ };
67535
+ MJCalendarEventLinkEntity = __decorate([
67536
+ RegisterClass(BaseEntity, 'MJ: Calendar Event Links')
67537
+ ], MJCalendarEventLinkEntity);
67538
+ export { MJCalendarEventLinkEntity };
67539
+ /**
67540
+ * MJ: Calendar Sync States - strongly typed entity sub-class
67541
+ * * Schema: __mj
67542
+ * * Base Table: CalendarSyncState
67543
+ * * Base View: vwCalendarSyncStates
67544
+ * * @description One sync cursor per external calendar, so an incremental sync reads only what changed since the last one.
67545
+ * * Primary Key: ID
67546
+ * @extends {BaseEntity}
67547
+ * @class
67548
+ * @public
67549
+ */
67550
+ let MJCalendarSyncStateEntity = class MJCalendarSyncStateEntity extends BaseEntity {
67551
+ /**
67552
+ * Loads the MJ: Calendar Sync States record from the database
67553
+ * @param ID: string - primary key value to load the MJ: Calendar Sync States record.
67554
+ * @param EntityRelationshipsToLoad - (optional) the relationships to load
67555
+ * @returns {Promise<boolean>} - true if successful, false otherwise
67556
+ * @public
67557
+ * @async
67558
+ * @memberof MJCalendarSyncStateEntity
67559
+ * @method
67560
+ * @override
67561
+ */
67562
+ async Load(ID, EntityRelationshipsToLoad) {
67563
+ const compositeKey = new CompositeKey();
67564
+ compositeKey.KeyValuePairs.push({ FieldName: 'ID', Value: ID });
67565
+ return await super.InnerLoad(compositeKey, EntityRelationshipsToLoad);
67566
+ }
67567
+ /**
67568
+ * * Field Name: ID
67569
+ * * Display Name: ID
67570
+ * * SQL Data Type: uniqueidentifier
67571
+ * * Default Value: newsequentialid()
67572
+ */
67573
+ get ID() {
67574
+ return this.Get('ID');
67575
+ }
67576
+ set ID(value) {
67577
+ this.Set('ID', value);
67578
+ }
67579
+ /**
67580
+ * * Field Name: CommunicationProviderID
67581
+ * * Display Name: Communication Provider ID
67582
+ * * SQL Data Type: uniqueidentifier
67583
+ * * Related Entity/Foreign Key: MJ: Communication Providers (vwCommunicationProviders.ID)
67584
+ */
67585
+ get CommunicationProviderID() {
67586
+ return this.Get('CommunicationProviderID');
67587
+ }
67588
+ set CommunicationProviderID(value) {
67589
+ this.Set('CommunicationProviderID', value);
67590
+ }
67591
+ /**
67592
+ * * Field Name: AccountIdentifier
67593
+ * * Display Name: Account Identifier
67594
+ * * SQL Data Type: nvarchar(255)
67595
+ * * Description: The calendar account: a mailbox address for MS Graph, the account for Google.
67596
+ */
67597
+ get AccountIdentifier() {
67598
+ return this.Get('AccountIdentifier');
67599
+ }
67600
+ set AccountIdentifier(value) {
67601
+ this.Set('AccountIdentifier', value);
67602
+ }
67603
+ /**
67604
+ * * Field Name: CalendarID
67605
+ * * Display Name: Calendar ID
67606
+ * * SQL Data Type: nvarchar(500)
67607
+ * * Description: The calendar within the account. Null means the account's default calendar.
67608
+ */
67609
+ get CalendarID() {
67610
+ return this.Get('CalendarID');
67611
+ }
67612
+ set CalendarID(value) {
67613
+ this.Set('CalendarID', value);
67614
+ }
67615
+ /**
67616
+ * * Field Name: SyncToken
67617
+ * * Display Name: Sync Token
67618
+ * * SQL Data Type: nvarchar(MAX)
67619
+ * * Description: The provider's cursor for the next incremental sync: a Graph delta link or a Google sync token. Null until the first sync.
67620
+ */
67621
+ get SyncToken() {
67622
+ return this.Get('SyncToken');
67623
+ }
67624
+ set SyncToken(value) {
67625
+ this.Set('SyncToken', value);
67626
+ }
67627
+ /**
67628
+ * * Field Name: LastSyncedAt
67629
+ * * Display Name: Last Synced At
67630
+ * * SQL Data Type: datetimeoffset
67631
+ * * Description: When this calendar was last synced.
67632
+ */
67633
+ get LastSyncedAt() {
67634
+ return this.Get('LastSyncedAt');
67635
+ }
67636
+ set LastSyncedAt(value) {
67637
+ this.Set('LastSyncedAt', value);
67638
+ }
67639
+ /**
67640
+ * * Field Name: __mj_CreatedAt
67641
+ * * Display Name: Created At
67642
+ * * SQL Data Type: datetimeoffset
67643
+ * * Default Value: getutcdate()
67644
+ */
67645
+ get __mj_CreatedAt() {
67646
+ return this.Get('__mj_CreatedAt');
67647
+ }
67648
+ /**
67649
+ * * Field Name: __mj_UpdatedAt
67650
+ * * Display Name: Updated At
67651
+ * * SQL Data Type: datetimeoffset
67652
+ * * Default Value: getutcdate()
67653
+ */
67654
+ get __mj_UpdatedAt() {
67655
+ return this.Get('__mj_UpdatedAt');
67656
+ }
67657
+ /**
67658
+ * * Field Name: CommunicationProvider
67659
+ * * Display Name: Communication Provider
67660
+ * * SQL Data Type: nvarchar(255)
67661
+ */
67662
+ get CommunicationProvider() {
67663
+ return this.Get('CommunicationProvider');
67664
+ }
67665
+ };
67666
+ MJCalendarSyncStateEntity = __decorate([
67667
+ RegisterClass(BaseEntity, 'MJ: Calendar Sync States')
67668
+ ], MJCalendarSyncStateEntity);
67669
+ export { MJCalendarSyncStateEntity };
67670
+ /**
67671
+ * MJ: Cluster Analysis - strongly typed entity sub-class
67672
+ * * Schema: __mj
67673
+ * * Base Table: ClusterAnalysis
67674
+ * * Base View: vwClusterAnalysis
67675
+ * * @description A saved cluster analysis: the configuration, computed metrics, and projected 2D/3D layout of a clustering run over an entity's embedding vectors. First-class, queryable, and shareable — replaces the prior approach of stashing analyses in a User Settings JSON blob / browser localStorage. Owner-private; explicit shares are recorded in ResourcePermission against the "Cluster Analysis" ResourceType.
67676
+ * * Primary Key: ID
67677
+ * @extends {BaseEntity}
67678
+ * @class
67679
+ * @public
67680
+ */
67681
+ let MJClusterAnalysisEntity = class MJClusterAnalysisEntity extends BaseEntity {
67682
+ /**
67683
+ * Loads the MJ: Cluster Analysis record from the database
67684
+ * @param ID: string - primary key value to load the MJ: Cluster Analysis record.
67685
+ * @param EntityRelationshipsToLoad - (optional) the relationships to load
67686
+ * @returns {Promise<boolean>} - true if successful, false otherwise
67687
+ * @public
67688
+ * @async
67689
+ * @memberof MJClusterAnalysisEntity
66302
67690
  * @method
66303
67691
  * @override
66304
67692
  */
@@ -67913,6 +69301,31 @@ let MJCommunicationProviderEntity = class MJCommunicationProviderEntity extends
67913
69301
  this.Set('DefaultCredentialID', value);
67914
69302
  }
67915
69303
  /**
69304
+ * * Field Name: AllowUserDelegatedOAuth
69305
+ * * Display Name: Allow User Delegated O Auth
69306
+ * * SQL Data Type: bit
69307
+ * * Default Value: 0
69308
+ * * Description: Posture 3 master switch (Gate 1). When 1, users may connect their own mailbox/calendar to this provider through per-user delegated OAuth 2.0 (3LO) with PKCE, subject to AllowedEmailDomains and AllowedOAuthTenantIDs. Default 0: no user can initiate a personal OAuth flow.
69309
+ */
69310
+ get AllowUserDelegatedOAuth() {
69311
+ return this.Get('AllowUserDelegatedOAuth');
69312
+ }
69313
+ set AllowUserDelegatedOAuth(value) {
69314
+ this.Set('AllowUserDelegatedOAuth', value);
69315
+ }
69316
+ /**
69317
+ * * Field Name: AllowedOAuthTenantIDs
69318
+ * * Display Name: Allowed O Auth Tenant I Ds
69319
+ * * SQL Data Type: nvarchar(1000)
69320
+ * * Description: Optional comma-separated allowlist of identity tenant identifiers (Gate 3) that a user-delegated OAuth token must carry: Azure AD tenant IDs (tid) or Google Workspace hosted domains (hd). NULL means no tenant restriction beyond AllowedEmailDomains.
69321
+ */
69322
+ get AllowedOAuthTenantIDs() {
69323
+ return this.Get('AllowedOAuthTenantIDs');
69324
+ }
69325
+ set AllowedOAuthTenantIDs(value) {
69326
+ this.Set('AllowedOAuthTenantIDs', value);
69327
+ }
69328
+ /**
67916
69329
  * * Field Name: DefaultCredential
67917
69330
  * * Display Name: Default Credential
67918
69331
  * * SQL Data Type: nvarchar(200)
@@ -68682,6 +70095,1199 @@ MJCompanyIntegrationFieldMapEntity = __decorate([
68682
70095
  RegisterClass(BaseEntity, 'MJ: Company Integration Field Maps')
68683
70096
  ], MJCompanyIntegrationFieldMapEntity);
68684
70097
  export { MJCompanyIntegrationFieldMapEntity };
70098
+ /**
70099
+ * MJ: Company Integration Object Fields - strongly typed entity sub-class
70100
+ * * Schema: __mj
70101
+ * * Base Table: CompanyIntegrationObjectField
70102
+ * * Base View: vwCompanyIntegrationObjectFields
70103
+ * * @description A field of a CompanyIntegrationObject: the declared field definition rebased with this connection's own discovery and sampling (observed width, provenance), with selection separate from Status.
70104
+ * * Primary Key: ID
70105
+ * @extends {BaseEntity}
70106
+ * @class
70107
+ * @public
70108
+ */
70109
+ let MJCompanyIntegrationObjectFieldEntity = class MJCompanyIntegrationObjectFieldEntity extends BaseEntity {
70110
+ /**
70111
+ * Loads the MJ: Company Integration Object Fields record from the database
70112
+ * @param ID: string - primary key value to load the MJ: Company Integration Object Fields record.
70113
+ * @param EntityRelationshipsToLoad - (optional) the relationships to load
70114
+ * @returns {Promise<boolean>} - true if successful, false otherwise
70115
+ * @public
70116
+ * @async
70117
+ * @memberof MJCompanyIntegrationObjectFieldEntity
70118
+ * @method
70119
+ * @override
70120
+ */
70121
+ async Load(ID, EntityRelationshipsToLoad) {
70122
+ const compositeKey = new CompositeKey();
70123
+ compositeKey.KeyValuePairs.push({ FieldName: 'ID', Value: ID });
70124
+ return await super.InnerLoad(compositeKey, EntityRelationshipsToLoad);
70125
+ }
70126
+ /**
70127
+ * * Field Name: ID
70128
+ * * Display Name: ID
70129
+ * * SQL Data Type: uniqueidentifier
70130
+ * * Default Value: newsequentialid()
70131
+ */
70132
+ get ID() {
70133
+ return this.Get('ID');
70134
+ }
70135
+ set ID(value) {
70136
+ this.Set('ID', value);
70137
+ }
70138
+ /**
70139
+ * * Field Name: Name
70140
+ * * Display Name: Name
70141
+ * * SQL Data Type: nvarchar(255)
70142
+ * * Description: Field name as returned by the external API
70143
+ */
70144
+ get Name() {
70145
+ return this.Get('Name');
70146
+ }
70147
+ set Name(value) {
70148
+ this.Set('Name', value);
70149
+ }
70150
+ /**
70151
+ * * Field Name: DisplayName
70152
+ * * Display Name: Display Name
70153
+ * * SQL Data Type: nvarchar(255)
70154
+ * * Description: Human-friendly display label for the field
70155
+ */
70156
+ get DisplayName() {
70157
+ return this.Get('DisplayName');
70158
+ }
70159
+ set DisplayName(value) {
70160
+ this.Set('DisplayName', value);
70161
+ }
70162
+ /**
70163
+ * * Field Name: Description
70164
+ * * Display Name: Description
70165
+ * * SQL Data Type: nvarchar(MAX)
70166
+ * * Description: Description of what this field represents
70167
+ */
70168
+ get Description() {
70169
+ return this.Get('Description');
70170
+ }
70171
+ set Description(value) {
70172
+ this.Set('Description', value);
70173
+ }
70174
+ /**
70175
+ * * Field Name: Category
70176
+ * * Display Name: Category
70177
+ * * SQL Data Type: nvarchar(100)
70178
+ * * Description: UI grouping category within the object
70179
+ */
70180
+ get Category() {
70181
+ return this.Get('Category');
70182
+ }
70183
+ set Category(value) {
70184
+ this.Set('Category', value);
70185
+ }
70186
+ /**
70187
+ * * Field Name: Type
70188
+ * * Display Name: Type
70189
+ * * SQL Data Type: nvarchar(100)
70190
+ * * Description: Data type of the field (e.g., nvarchar, int, datetime, decimal, bit). Uses same type vocabulary as EntityField.
70191
+ */
70192
+ get Type() {
70193
+ return this.Get('Type');
70194
+ }
70195
+ set Type(value) {
70196
+ this.Set('Type', value);
70197
+ }
70198
+ /**
70199
+ * * Field Name: Length
70200
+ * * Display Name: Length
70201
+ * * SQL Data Type: int
70202
+ * * Description: Maximum length for string types
70203
+ */
70204
+ get Length() {
70205
+ return this.Get('Length');
70206
+ }
70207
+ set Length(value) {
70208
+ this.Set('Length', value);
70209
+ }
70210
+ /**
70211
+ * * Field Name: Precision
70212
+ * * Display Name: Precision
70213
+ * * SQL Data Type: int
70214
+ * * Description: Numeric precision
70215
+ */
70216
+ get Precision() {
70217
+ return this.Get('Precision');
70218
+ }
70219
+ set Precision(value) {
70220
+ this.Set('Precision', value);
70221
+ }
70222
+ /**
70223
+ * * Field Name: Scale
70224
+ * * Display Name: Scale
70225
+ * * SQL Data Type: int
70226
+ * * Description: Numeric scale
70227
+ */
70228
+ get Scale() {
70229
+ return this.Get('Scale');
70230
+ }
70231
+ set Scale(value) {
70232
+ this.Set('Scale', value);
70233
+ }
70234
+ /**
70235
+ * * Field Name: AllowsNull
70236
+ * * Display Name: Allows Null
70237
+ * * SQL Data Type: bit
70238
+ * * Default Value: 1
70239
+ * * Description: Whether the field can contain NULL values
70240
+ */
70241
+ get AllowsNull() {
70242
+ return this.Get('AllowsNull');
70243
+ }
70244
+ set AllowsNull(value) {
70245
+ this.Set('AllowsNull', value);
70246
+ }
70247
+ /**
70248
+ * * Field Name: DefaultValue
70249
+ * * Display Name: Default Value
70250
+ * * SQL Data Type: nvarchar(255)
70251
+ * * Description: Default value from the source system
70252
+ */
70253
+ get DefaultValue() {
70254
+ return this.Get('DefaultValue');
70255
+ }
70256
+ set DefaultValue(value) {
70257
+ this.Set('DefaultValue', value);
70258
+ }
70259
+ /**
70260
+ * * Field Name: IsPrimaryKey
70261
+ * * Display Name: Is Primary Key
70262
+ * * SQL Data Type: bit
70263
+ * * Default Value: 0
70264
+ * * Description: Whether this field is part of the object primary key
70265
+ */
70266
+ get IsPrimaryKey() {
70267
+ return this.Get('IsPrimaryKey');
70268
+ }
70269
+ set IsPrimaryKey(value) {
70270
+ this.Set('IsPrimaryKey', value);
70271
+ }
70272
+ /**
70273
+ * * Field Name: IsUniqueKey
70274
+ * * Display Name: Is Unique Key
70275
+ * * SQL Data Type: bit
70276
+ * * Default Value: 0
70277
+ * * Description: Whether values must be unique across all records
70278
+ */
70279
+ get IsUniqueKey() {
70280
+ return this.Get('IsUniqueKey');
70281
+ }
70282
+ set IsUniqueKey(value) {
70283
+ this.Set('IsUniqueKey', value);
70284
+ }
70285
+ /**
70286
+ * * Field Name: IsReadOnly
70287
+ * * Display Name: Is Read Only
70288
+ * * SQL Data Type: bit
70289
+ * * Default Value: 0
70290
+ * * Description: Whether this field cannot be written back to the source system
70291
+ */
70292
+ get IsReadOnly() {
70293
+ return this.Get('IsReadOnly');
70294
+ }
70295
+ set IsReadOnly(value) {
70296
+ this.Set('IsReadOnly', value);
70297
+ }
70298
+ /**
70299
+ * * Field Name: IsRequired
70300
+ * * Display Name: Is Required
70301
+ * * SQL Data Type: bit
70302
+ * * Default Value: 0
70303
+ * * Description: Whether this field is required for create/update operations
70304
+ */
70305
+ get IsRequired() {
70306
+ return this.Get('IsRequired');
70307
+ }
70308
+ set IsRequired(value) {
70309
+ this.Set('IsRequired', value);
70310
+ }
70311
+ /**
70312
+ * * Field Name: RelatedIntegrationObjectFieldName
70313
+ * * Display Name: Related Integration Object Field Name
70314
+ * * SQL Data Type: nvarchar(255)
70315
+ * * Description: The field name on the related IntegrationObject that this FK points to (typically the PK field)
70316
+ */
70317
+ get RelatedIntegrationObjectFieldName() {
70318
+ return this.Get('RelatedIntegrationObjectFieldName');
70319
+ }
70320
+ set RelatedIntegrationObjectFieldName(value) {
70321
+ this.Set('RelatedIntegrationObjectFieldName', value);
70322
+ }
70323
+ /**
70324
+ * * Field Name: Sequence
70325
+ * * Display Name: Sequence
70326
+ * * SQL Data Type: int
70327
+ * * Default Value: 0
70328
+ * * Description: Display and processing order within the object. Lower numbers appear first.
70329
+ */
70330
+ get Sequence() {
70331
+ return this.Get('Sequence');
70332
+ }
70333
+ set Sequence(value) {
70334
+ this.Set('Sequence', value);
70335
+ }
70336
+ /**
70337
+ * * Field Name: Configuration
70338
+ * * Display Name: Configuration
70339
+ * * SQL Data Type: nvarchar(MAX)
70340
+ * * Description: Freeform JSON for connector-specific field configuration
70341
+ */
70342
+ get Configuration() {
70343
+ return this.Get('Configuration');
70344
+ }
70345
+ set Configuration(value) {
70346
+ this.Set('Configuration', value);
70347
+ }
70348
+ /**
70349
+ * * Field Name: Status
70350
+ * * Display Name: Status
70351
+ * * SQL Data Type: nvarchar(25)
70352
+ * * Default Value: Active
70353
+ * * Value List Type: List
70354
+ * * Possible Values
70355
+ * * Active
70356
+ * * Deprecated
70357
+ * * Disabled
70358
+ * * Description: Active, Deprecated, or Disabled. Mirrors EntityField status values.
70359
+ */
70360
+ get Status() {
70361
+ return this.Get('Status');
70362
+ }
70363
+ set Status(value) {
70364
+ this.Set('Status', value);
70365
+ }
70366
+ /**
70367
+ * * Field Name: IsCustom
70368
+ * * Display Name: Is Custom
70369
+ * * SQL Data Type: bit
70370
+ * * Default Value: 0
70371
+ * * Description: When true, this field was dynamically discovered by IntrospectSchema and is not defined in static connector metadata.
70372
+ */
70373
+ get IsCustom() {
70374
+ return this.Get('IsCustom');
70375
+ }
70376
+ set IsCustom(value) {
70377
+ this.Set('IsCustom', value);
70378
+ }
70379
+ /**
70380
+ * * Field Name: MetadataSource
70381
+ * * Display Name: Metadata Source
70382
+ * * SQL Data Type: nvarchar(20)
70383
+ * * Default Value: Declared
70384
+ * * Value List Type: List
70385
+ * * Possible Values
70386
+ * * Custom
70387
+ * * Declared
70388
+ * * Discovered
70389
+ * * Description: Provenance of this CompanyIntegrationObjectField row: Declared (from static research/docs), Discovered (from runtime API introspection), Custom (customer-defined custom field, e.g., HubSpot custom property on standard object). Drives merge precedence — discovered/runtime wins for type/constraints; declared wins for description/label/sequence/category.
70390
+ */
70391
+ get MetadataSource() {
70392
+ return this.Get('MetadataSource');
70393
+ }
70394
+ set MetadataSource(value) {
70395
+ this.Set('MetadataSource', value);
70396
+ }
70397
+ /**
70398
+ * * Field Name: CompanyIntegrationObjectID
70399
+ * * Display Name: Company Integration Object ID
70400
+ * * SQL Data Type: uniqueidentifier
70401
+ * * Related Entity/Foreign Key: MJ: Company Integration Objects (vwCompanyIntegrationObjects.ID)
70402
+ */
70403
+ get CompanyIntegrationObjectID() {
70404
+ return this.Get('CompanyIntegrationObjectID');
70405
+ }
70406
+ set CompanyIntegrationObjectID(value) {
70407
+ this.Set('CompanyIntegrationObjectID', value);
70408
+ }
70409
+ /**
70410
+ * * Field Name: RelatedCompanyIntegrationObjectID
70411
+ * * Display Name: Related Company Integration Object ID
70412
+ * * SQL Data Type: uniqueidentifier
70413
+ * * Related Entity/Foreign Key: MJ: Company Integration Objects (vwCompanyIntegrationObjects.ID)
70414
+ */
70415
+ get RelatedCompanyIntegrationObjectID() {
70416
+ return this.Get('RelatedCompanyIntegrationObjectID');
70417
+ }
70418
+ set RelatedCompanyIntegrationObjectID(value) {
70419
+ this.Set('RelatedCompanyIntegrationObjectID', value);
70420
+ }
70421
+ /**
70422
+ * * Field Name: IntegrationObjectFieldID
70423
+ * * Display Name: Integration Object Field ID
70424
+ * * SQL Data Type: uniqueidentifier
70425
+ * * Related Entity/Foreign Key: MJ: Integration Object Fields (vwIntegrationObjectFields.ID)
70426
+ */
70427
+ get IntegrationObjectFieldID() {
70428
+ return this.Get('IntegrationObjectFieldID');
70429
+ }
70430
+ set IntegrationObjectFieldID(value) {
70431
+ this.Set('IntegrationObjectFieldID', value);
70432
+ }
70433
+ /**
70434
+ * * Field Name: ObservedMaxLength
70435
+ * * Display Name: Observed Max Length
70436
+ * * SQL Data Type: int
70437
+ * * Description: The longest value sampling actually saw, kept SEPARATE from Length. Length carries the padded width the schema builder will use; this carries the evidence. Without both, a width cannot be audited and a truncation cannot be distinguished from a bad guess.
70438
+ */
70439
+ get ObservedMaxLength() {
70440
+ return this.Get('ObservedMaxLength');
70441
+ }
70442
+ set ObservedMaxLength(value) {
70443
+ this.Set('ObservedMaxLength', value);
70444
+ }
70445
+ /**
70446
+ * * Field Name: Provenance
70447
+ * * Display Name: Provenance
70448
+ * * SQL Data Type: nvarchar(20)
70449
+ * * Default Value: Declared
70450
+ * * Value List Type: List
70451
+ * * Possible Values
70452
+ * * Declared
70453
+ * * Endpoint
70454
+ * * Sampled
70455
+ * * Description: Where this row came from: Declared (the connector shipped catalog), Endpoint (the source listed it) or Sampled (only streaming records revealed it). Answers "whose is this" for a connection whose catalog no longer matches the connector default.
70456
+ */
70457
+ get Provenance() {
70458
+ return this.Get('Provenance');
70459
+ }
70460
+ set Provenance(value) {
70461
+ this.Set('Provenance', value);
70462
+ }
70463
+ /**
70464
+ * * Field Name: ProvenanceDetail
70465
+ * * Display Name: Provenance Detail
70466
+ * * SQL Data Type: nvarchar(MAX)
70467
+ * * Description: The per-attribute merge log for this row: which side won each overlay decision and why. The persist already computes this and throws it away, so the operator has never been able to see why a width or a key looks the way it does.
70468
+ */
70469
+ get ProvenanceDetail() {
70470
+ return this.Get('ProvenanceDetail');
70471
+ }
70472
+ set ProvenanceDetail(value) {
70473
+ this.Set('ProvenanceDetail', value);
70474
+ }
70475
+ /**
70476
+ * * Field Name: IsSelected
70477
+ * * Display Name: Is Selected
70478
+ * * SQL Data Type: bit
70479
+ * * Default Value: 0
70480
+ * * Description: Whether this connection syncs this item. THE AXIS THAT MAKES THE CONTRACT SATISFIABLE: Status says whether the item is in the catalog at all, IsSelected says whether the customer chose it. Conflating the two is why a newly discovered object had to arrive ENABLED — a disabled object was excluded from schema introspection, so it never reached key inference and never reached a migration.
70481
+ */
70482
+ get IsSelected() {
70483
+ return this.Get('IsSelected');
70484
+ }
70485
+ set IsSelected(value) {
70486
+ this.Set('IsSelected', value);
70487
+ }
70488
+ /**
70489
+ * * Field Name: SelectedAt
70490
+ * * Display Name: Selected At
70491
+ * * SQL Data Type: datetimeoffset
70492
+ * * Description: When the selection last changed. Lets the UI distinguish "never chosen" from "deliberately deselected".
70493
+ */
70494
+ get SelectedAt() {
70495
+ return this.Get('SelectedAt');
70496
+ }
70497
+ set SelectedAt(value) {
70498
+ this.Set('SelectedAt', value);
70499
+ }
70500
+ /**
70501
+ * * Field Name: FirstSeenAt
70502
+ * * Display Name: First Seen At
70503
+ * * SQL Data Type: datetimeoffset
70504
+ * * Description: When this connection first observed this item. Set once and never updated, so a catalog can be read as a history of what the source exposed and when.
70505
+ */
70506
+ get FirstSeenAt() {
70507
+ return this.Get('FirstSeenAt');
70508
+ }
70509
+ set FirstSeenAt(value) {
70510
+ this.Set('FirstSeenAt', value);
70511
+ }
70512
+ /**
70513
+ * * Field Name: LastSeenAt
70514
+ * * Display Name: Last Seen At
70515
+ * * SQL Data Type: datetimeoffset
70516
+ * * Description: When this connection most recently observed this item. A row whose LastSeenAt is older than the connection last discovery is what "absent from the source" means.
70517
+ */
70518
+ get LastSeenAt() {
70519
+ return this.Get('LastSeenAt');
70520
+ }
70521
+ set LastSeenAt(value) {
70522
+ this.Set('LastSeenAt', value);
70523
+ }
70524
+ /**
70525
+ * * Field Name: LastSampledAt
70526
+ * * Display Name: Last Sampled At
70527
+ * * SQL Data Type: datetimeoffset
70528
+ * * Description: When sampling last streamed records for this item. Distinct from LastSeenAt: an item can be listed by an endpoint without ever being sampled, and unsampled items are exactly the ones whose widths and keys came from the declared catalog rather than from data.
70529
+ */
70530
+ get LastSampledAt() {
70531
+ return this.Get('LastSampledAt');
70532
+ }
70533
+ set LastSampledAt(value) {
70534
+ this.Set('LastSampledAt', value);
70535
+ }
70536
+ /**
70537
+ * * Field Name: __mj_CreatedAt
70538
+ * * Display Name: Created At
70539
+ * * SQL Data Type: datetimeoffset
70540
+ * * Default Value: getutcdate()
70541
+ */
70542
+ get __mj_CreatedAt() {
70543
+ return this.Get('__mj_CreatedAt');
70544
+ }
70545
+ /**
70546
+ * * Field Name: __mj_UpdatedAt
70547
+ * * Display Name: Updated At
70548
+ * * SQL Data Type: datetimeoffset
70549
+ * * Default Value: getutcdate()
70550
+ */
70551
+ get __mj_UpdatedAt() {
70552
+ return this.Get('__mj_UpdatedAt');
70553
+ }
70554
+ /**
70555
+ * * Field Name: CompanyIntegrationObject
70556
+ * * Display Name: Company Integration Object
70557
+ * * SQL Data Type: nvarchar(255)
70558
+ */
70559
+ get CompanyIntegrationObject() {
70560
+ return this.Get('CompanyIntegrationObject');
70561
+ }
70562
+ /**
70563
+ * * Field Name: RelatedCompanyIntegrationObject
70564
+ * * Display Name: Related Company Integration Object
70565
+ * * SQL Data Type: nvarchar(255)
70566
+ */
70567
+ get RelatedCompanyIntegrationObject() {
70568
+ return this.Get('RelatedCompanyIntegrationObject');
70569
+ }
70570
+ /**
70571
+ * * Field Name: IntegrationObjectField
70572
+ * * Display Name: Integration Object Field
70573
+ * * SQL Data Type: nvarchar(255)
70574
+ */
70575
+ get IntegrationObjectField() {
70576
+ return this.Get('IntegrationObjectField');
70577
+ }
70578
+ };
70579
+ MJCompanyIntegrationObjectFieldEntity = __decorate([
70580
+ RegisterClass(BaseEntity, 'MJ: Company Integration Object Fields')
70581
+ ], MJCompanyIntegrationObjectFieldEntity);
70582
+ export { MJCompanyIntegrationObjectFieldEntity };
70583
+ /**
70584
+ * MJ: Company Integration Objects - strongly typed entity sub-class
70585
+ * * Schema: __mj
70586
+ * * Base Table: CompanyIntegrationObject
70587
+ * * Base View: vwCompanyIntegrationObjects
70588
+ * * @description One connection's (CompanyIntegration's) own copy of an integration object: the vendor's declared definition rebased with what THIS connection discovered and sampled, with provenance, and with selection (IsSelected) as an axis separate from Status. Replaces reading IntegrationObject directly so two connections of one connector no longer overwrite each other.
70589
+ * * Primary Key: ID
70590
+ * @extends {BaseEntity}
70591
+ * @class
70592
+ * @public
70593
+ */
70594
+ let MJCompanyIntegrationObjectEntity = class MJCompanyIntegrationObjectEntity extends BaseEntity {
70595
+ /**
70596
+ * Loads the MJ: Company Integration Objects record from the database
70597
+ * @param ID: string - primary key value to load the MJ: Company Integration Objects record.
70598
+ * @param EntityRelationshipsToLoad - (optional) the relationships to load
70599
+ * @returns {Promise<boolean>} - true if successful, false otherwise
70600
+ * @public
70601
+ * @async
70602
+ * @memberof MJCompanyIntegrationObjectEntity
70603
+ * @method
70604
+ * @override
70605
+ */
70606
+ async Load(ID, EntityRelationshipsToLoad) {
70607
+ const compositeKey = new CompositeKey();
70608
+ compositeKey.KeyValuePairs.push({ FieldName: 'ID', Value: ID });
70609
+ return await super.InnerLoad(compositeKey, EntityRelationshipsToLoad);
70610
+ }
70611
+ /**
70612
+ * * Field Name: ID
70613
+ * * Display Name: ID
70614
+ * * SQL Data Type: uniqueidentifier
70615
+ * * Default Value: newsequentialid()
70616
+ */
70617
+ get ID() {
70618
+ return this.Get('ID');
70619
+ }
70620
+ set ID(value) {
70621
+ this.Set('ID', value);
70622
+ }
70623
+ /**
70624
+ * * Field Name: IntegrationID
70625
+ * * Display Name: Integration ID
70626
+ * * SQL Data Type: uniqueidentifier
70627
+ * * Related Entity/Foreign Key: MJ: Integrations (vwIntegrations.ID)
70628
+ * * Description: The integration (connector) this object belongs to. Always the IntegrationID of the owning CompanyIntegration, copied onto the row by the catalog writer so the per-connection catalog can be read through the same projection as the shared IntegrationObject catalog.
70629
+ */
70630
+ get IntegrationID() {
70631
+ return this.Get('IntegrationID');
70632
+ }
70633
+ set IntegrationID(value) {
70634
+ this.Set('IntegrationID', value);
70635
+ }
70636
+ /**
70637
+ * * Field Name: Name
70638
+ * * Display Name: Name
70639
+ * * SQL Data Type: nvarchar(255)
70640
+ * * Description: Internal/programmatic name of the external object (e.g., Members, Events)
70641
+ */
70642
+ get Name() {
70643
+ return this.Get('Name');
70644
+ }
70645
+ set Name(value) {
70646
+ this.Set('Name', value);
70647
+ }
70648
+ /**
70649
+ * * Field Name: DisplayName
70650
+ * * Display Name: Display Name
70651
+ * * SQL Data Type: nvarchar(255)
70652
+ * * Description: Human-friendly display label
70653
+ */
70654
+ get DisplayName() {
70655
+ return this.Get('DisplayName');
70656
+ }
70657
+ set DisplayName(value) {
70658
+ this.Set('DisplayName', value);
70659
+ }
70660
+ /**
70661
+ * * Field Name: Description
70662
+ * * Display Name: Description
70663
+ * * SQL Data Type: nvarchar(MAX)
70664
+ * * Description: Description of what this external object represents
70665
+ */
70666
+ get Description() {
70667
+ return this.Get('Description');
70668
+ }
70669
+ set Description(value) {
70670
+ this.Set('Description', value);
70671
+ }
70672
+ /**
70673
+ * * Field Name: Category
70674
+ * * Display Name: Category
70675
+ * * SQL Data Type: nvarchar(100)
70676
+ * * Description: UI grouping category (e.g., Membership, Events, Finance)
70677
+ */
70678
+ get Category() {
70679
+ return this.Get('Category');
70680
+ }
70681
+ set Category(value) {
70682
+ this.Set('Category', value);
70683
+ }
70684
+ /**
70685
+ * * Field Name: APIPath
70686
+ * * Display Name: API Path
70687
+ * * SQL Data Type: nvarchar(500)
70688
+ * * Description: API endpoint path, may include template variables like {ProfileID} that are resolved at runtime from parent object records
70689
+ */
70690
+ get APIPath() {
70691
+ return this.Get('APIPath');
70692
+ }
70693
+ set APIPath(value) {
70694
+ this.Set('APIPath', value);
70695
+ }
70696
+ /**
70697
+ * * Field Name: ResponseDataKey
70698
+ * * Display Name: Response Data Key
70699
+ * * SQL Data Type: nvarchar(255)
70700
+ * * Description: JSON key used to extract the data array from the API response envelope. NULL means the response is a root-level array.
70701
+ */
70702
+ get ResponseDataKey() {
70703
+ return this.Get('ResponseDataKey');
70704
+ }
70705
+ set ResponseDataKey(value) {
70706
+ this.Set('ResponseDataKey', value);
70707
+ }
70708
+ /**
70709
+ * * Field Name: DefaultPageSize
70710
+ * * Display Name: Default Page Size
70711
+ * * SQL Data Type: int
70712
+ * * Default Value: 100
70713
+ * * Description: Number of records to request per page from the API
70714
+ */
70715
+ get DefaultPageSize() {
70716
+ return this.Get('DefaultPageSize');
70717
+ }
70718
+ set DefaultPageSize(value) {
70719
+ this.Set('DefaultPageSize', value);
70720
+ }
70721
+ /**
70722
+ * * Field Name: SupportsPagination
70723
+ * * Display Name: Supports Pagination
70724
+ * * SQL Data Type: bit
70725
+ * * Default Value: 1
70726
+ * * Description: Whether this endpoint supports paginated fetching
70727
+ */
70728
+ get SupportsPagination() {
70729
+ return this.Get('SupportsPagination');
70730
+ }
70731
+ set SupportsPagination(value) {
70732
+ this.Set('SupportsPagination', value);
70733
+ }
70734
+ /**
70735
+ * * Field Name: PaginationType
70736
+ * * Display Name: Pagination Type
70737
+ * * SQL Data Type: nvarchar(20)
70738
+ * * Default Value: PageNumber
70739
+ * * Description: Pagination strategy: PageNumber (page index), Offset (record offset), Cursor (opaque token), or None
70740
+ */
70741
+ get PaginationType() {
70742
+ return this.Get('PaginationType');
70743
+ }
70744
+ set PaginationType(value) {
70745
+ this.Set('PaginationType', value);
70746
+ }
70747
+ /**
70748
+ * * Field Name: SupportsIncrementalSync
70749
+ * * Display Name: Supports Incremental Sync
70750
+ * * SQL Data Type: bit
70751
+ * * Default Value: 0
70752
+ * * Description: Whether this object supports watermark-based incremental sync
70753
+ */
70754
+ get SupportsIncrementalSync() {
70755
+ return this.Get('SupportsIncrementalSync');
70756
+ }
70757
+ set SupportsIncrementalSync(value) {
70758
+ this.Set('SupportsIncrementalSync', value);
70759
+ }
70760
+ /**
70761
+ * * Field Name: SupportsWrite
70762
+ * * Display Name: Supports Write
70763
+ * * SQL Data Type: bit
70764
+ * * Default Value: 0
70765
+ * * Description: Whether data can be pushed back to this object via the API
70766
+ */
70767
+ get SupportsWrite() {
70768
+ return this.Get('SupportsWrite');
70769
+ }
70770
+ set SupportsWrite(value) {
70771
+ this.Set('SupportsWrite', value);
70772
+ }
70773
+ /**
70774
+ * * Field Name: DefaultQueryParams
70775
+ * * Display Name: Default Query Params
70776
+ * * SQL Data Type: nvarchar(MAX)
70777
+ * * Description: JSON object of default query parameters to include with every API request for this object
70778
+ */
70779
+ get DefaultQueryParams() {
70780
+ return this.Get('DefaultQueryParams');
70781
+ }
70782
+ set DefaultQueryParams(value) {
70783
+ this.Set('DefaultQueryParams', value);
70784
+ }
70785
+ /**
70786
+ * * Field Name: Configuration
70787
+ * * Display Name: Configuration
70788
+ * * SQL Data Type: nvarchar(MAX)
70789
+ * * Description: Freeform JSON for connector-specific configuration not covered by standard columns
70790
+ */
70791
+ get Configuration() {
70792
+ return this.Get('Configuration');
70793
+ }
70794
+ set Configuration(value) {
70795
+ this.Set('Configuration', value);
70796
+ }
70797
+ /**
70798
+ * * Field Name: Sequence
70799
+ * * Display Name: Sequence
70800
+ * * SQL Data Type: int
70801
+ * * Default Value: 0
70802
+ * * Description: Processing and display order. Lower numbers are processed first.
70803
+ */
70804
+ get Sequence() {
70805
+ return this.Get('Sequence');
70806
+ }
70807
+ set Sequence(value) {
70808
+ this.Set('Sequence', value);
70809
+ }
70810
+ /**
70811
+ * * Field Name: Status
70812
+ * * Display Name: Status
70813
+ * * SQL Data Type: nvarchar(25)
70814
+ * * Default Value: Active
70815
+ * * Value List Type: List
70816
+ * * Possible Values
70817
+ * * Active
70818
+ * * Deprecated
70819
+ * * Disabled
70820
+ * * Description: Active, Deprecated, or Disabled. Mirrors EntityField status values.
70821
+ */
70822
+ get Status() {
70823
+ return this.Get('Status');
70824
+ }
70825
+ set Status(value) {
70826
+ this.Set('Status', value);
70827
+ }
70828
+ /**
70829
+ * * Field Name: WriteAPIPath
70830
+ * * Display Name: Write API Path
70831
+ * * SQL Data Type: nvarchar(500)
70832
+ * * Description: API path for create/update operations when different from the read APIPath. If NULL, the read APIPath is used for writes as well.
70833
+ */
70834
+ get WriteAPIPath() {
70835
+ return this.Get('WriteAPIPath');
70836
+ }
70837
+ set WriteAPIPath(value) {
70838
+ this.Set('WriteAPIPath', value);
70839
+ }
70840
+ /**
70841
+ * * Field Name: WriteMethod
70842
+ * * Display Name: Write Method
70843
+ * * SQL Data Type: nvarchar(10)
70844
+ * * Default Value: POST
70845
+ * * Description: HTTP method for create operations. Defaults to POST.
70846
+ */
70847
+ get WriteMethod() {
70848
+ return this.Get('WriteMethod');
70849
+ }
70850
+ set WriteMethod(value) {
70851
+ this.Set('WriteMethod', value);
70852
+ }
70853
+ /**
70854
+ * * Field Name: DeleteMethod
70855
+ * * Display Name: Delete Method
70856
+ * * SQL Data Type: nvarchar(10)
70857
+ * * Default Value: DELETE
70858
+ * * Description: HTTP method for delete operations. Defaults to DELETE.
70859
+ */
70860
+ get DeleteMethod() {
70861
+ return this.Get('DeleteMethod');
70862
+ }
70863
+ set DeleteMethod(value) {
70864
+ this.Set('DeleteMethod', value);
70865
+ }
70866
+ /**
70867
+ * * Field Name: IsCustom
70868
+ * * Display Name: Is Custom
70869
+ * * SQL Data Type: bit
70870
+ * * Default Value: 0
70871
+ * * Description: When true, this object was dynamically discovered by IntrospectSchema and is not defined in static connector metadata.
70872
+ */
70873
+ get IsCustom() {
70874
+ return this.Get('IsCustom');
70875
+ }
70876
+ set IsCustom(value) {
70877
+ this.Set('IsCustom', value);
70878
+ }
70879
+ /**
70880
+ * * Field Name: CreateAPIPath
70881
+ * * Display Name: Create API Path
70882
+ * * SQL Data Type: nvarchar(MAX)
70883
+ * * Description: HTTP path template for create operations. Generic CRUD in BaseRESTIntegrationConnector substitutes parent IDs into {var} placeholders. NULL means create not supported via metadata-driven path.
70884
+ */
70885
+ get CreateAPIPath() {
70886
+ return this.Get('CreateAPIPath');
70887
+ }
70888
+ set CreateAPIPath(value) {
70889
+ this.Set('CreateAPIPath', value);
70890
+ }
70891
+ /**
70892
+ * * Field Name: CreateMethod
70893
+ * * Display Name: Create Method
70894
+ * * SQL Data Type: nvarchar(20)
70895
+ * * Description: HTTP method for create (typically POST). NULL means create not supported via metadata-driven path.
70896
+ */
70897
+ get CreateMethod() {
70898
+ return this.Get('CreateMethod');
70899
+ }
70900
+ set CreateMethod(value) {
70901
+ this.Set('CreateMethod', value);
70902
+ }
70903
+ /**
70904
+ * * Field Name: CreateBodyShape
70905
+ * * Display Name: Create Body Shape
70906
+ * * SQL Data Type: nvarchar(50)
70907
+ * * Description: Request body shape for create: flat (top-level fields), wrapped (under CreateBodyKey), or literal (connector overrides CreateRecord and supplies own body).
70908
+ */
70909
+ get CreateBodyShape() {
70910
+ return this.Get('CreateBodyShape');
70911
+ }
70912
+ set CreateBodyShape(value) {
70913
+ this.Set('CreateBodyShape', value);
70914
+ }
70915
+ /**
70916
+ * * Field Name: CreateBodyKey
70917
+ * * Display Name: Create Body Key
70918
+ * * SQL Data Type: nvarchar(100)
70919
+ * * Description: Wrapper key for create body when CreateBodyShape=wrapped. Example: 'member' for YourMembership which wraps body as {member:{...}}.
70920
+ */
70921
+ get CreateBodyKey() {
70922
+ return this.Get('CreateBodyKey');
70923
+ }
70924
+ set CreateBodyKey(value) {
70925
+ this.Set('CreateBodyKey', value);
70926
+ }
70927
+ /**
70928
+ * * Field Name: CreateIDLocation
70929
+ * * Display Name: Create ID Location
70930
+ * * SQL Data Type: nvarchar(20)
70931
+ * * Description: Where the created record ID is found in the create response: path (URL of returned Location header), body (parsed from JSON response), header (specific named header).
70932
+ */
70933
+ get CreateIDLocation() {
70934
+ return this.Get('CreateIDLocation');
70935
+ }
70936
+ set CreateIDLocation(value) {
70937
+ this.Set('CreateIDLocation', value);
70938
+ }
70939
+ /**
70940
+ * * Field Name: UpdateAPIPath
70941
+ * * Display Name: Update API Path
70942
+ * * SQL Data Type: nvarchar(MAX)
70943
+ * * Description: HTTP path template for update operations. Typically contains {ID} placeholder substituted with the record ExternalID at runtime.
70944
+ */
70945
+ get UpdateAPIPath() {
70946
+ return this.Get('UpdateAPIPath');
70947
+ }
70948
+ set UpdateAPIPath(value) {
70949
+ this.Set('UpdateAPIPath', value);
70950
+ }
70951
+ /**
70952
+ * * Field Name: UpdateMethod
70953
+ * * Display Name: Update Method
70954
+ * * SQL Data Type: nvarchar(20)
70955
+ * * Description: HTTP method for update (typically PATCH or PUT).
70956
+ */
70957
+ get UpdateMethod() {
70958
+ return this.Get('UpdateMethod');
70959
+ }
70960
+ set UpdateMethod(value) {
70961
+ this.Set('UpdateMethod', value);
70962
+ }
70963
+ /**
70964
+ * * Field Name: UpdateBodyShape
70965
+ * * Display Name: Update Body Shape
70966
+ * * SQL Data Type: nvarchar(50)
70967
+ * * Description: Request body shape for update: flat | wrapped | literal. See CreateBodyShape.
70968
+ */
70969
+ get UpdateBodyShape() {
70970
+ return this.Get('UpdateBodyShape');
70971
+ }
70972
+ set UpdateBodyShape(value) {
70973
+ this.Set('UpdateBodyShape', value);
70974
+ }
70975
+ /**
70976
+ * * Field Name: UpdateBodyKey
70977
+ * * Display Name: Update Body Key
70978
+ * * SQL Data Type: nvarchar(100)
70979
+ * * Description: Wrapper key for update body when UpdateBodyShape=wrapped.
70980
+ */
70981
+ get UpdateBodyKey() {
70982
+ return this.Get('UpdateBodyKey');
70983
+ }
70984
+ set UpdateBodyKey(value) {
70985
+ this.Set('UpdateBodyKey', value);
70986
+ }
70987
+ /**
70988
+ * * Field Name: UpdateIDLocation
70989
+ * * Display Name: Update ID Location
70990
+ * * SQL Data Type: nvarchar(20)
70991
+ * * Description: For update: where the target record ID is located in the request — typically 'path' (substituted into UpdateAPIPath URL template).
70992
+ */
70993
+ get UpdateIDLocation() {
70994
+ return this.Get('UpdateIDLocation');
70995
+ }
70996
+ set UpdateIDLocation(value) {
70997
+ this.Set('UpdateIDLocation', value);
70998
+ }
70999
+ /**
71000
+ * * Field Name: DeleteAPIPath
71001
+ * * Display Name: Delete API Path
71002
+ * * SQL Data Type: nvarchar(MAX)
71003
+ * * Description: HTTP path template for delete operations. Typically contains {ID} placeholder. NULL means delete not supported via metadata-driven path. (Existing DeleteMethod column carries the verb.)
71004
+ */
71005
+ get DeleteAPIPath() {
71006
+ return this.Get('DeleteAPIPath');
71007
+ }
71008
+ set DeleteAPIPath(value) {
71009
+ this.Set('DeleteAPIPath', value);
71010
+ }
71011
+ /**
71012
+ * * Field Name: DeleteIDLocation
71013
+ * * Display Name: Delete ID Location
71014
+ * * SQL Data Type: nvarchar(20)
71015
+ * * Description: For delete: where the target record ID is located — typically 'path'.
71016
+ */
71017
+ get DeleteIDLocation() {
71018
+ return this.Get('DeleteIDLocation');
71019
+ }
71020
+ set DeleteIDLocation(value) {
71021
+ this.Set('DeleteIDLocation', value);
71022
+ }
71023
+ /**
71024
+ * * Field Name: IncrementalWatermarkField
71025
+ * * Display Name: Incremental Watermark Field
71026
+ * * SQL Data Type: nvarchar(255)
71027
+ * * Description: Vendor field name marking "last changed" — drives incremental sync filter when SupportsIncrementalSync=1. The exact filter syntax (e.g., $filter=Modified gt {value} or modified_since={value}) lives in Configuration.incrementalFilterFormat. Provable-only: leave NULL if docs do not name a watermark field.
71028
+ */
71029
+ get IncrementalWatermarkField() {
71030
+ return this.Get('IncrementalWatermarkField');
71031
+ }
71032
+ set IncrementalWatermarkField(value) {
71033
+ this.Set('IncrementalWatermarkField', value);
71034
+ }
71035
+ /**
71036
+ * * Field Name: MetadataSource
71037
+ * * Display Name: Metadata Source
71038
+ * * SQL Data Type: nvarchar(20)
71039
+ * * Default Value: Declared
71040
+ * * Value List Type: List
71041
+ * * Possible Values
71042
+ * * Custom
71043
+ * * Declared
71044
+ * * Discovered
71045
+ * * Description: Provenance of this CompanyIntegrationObject row: Declared (from static research/docs), Discovered (from runtime API introspection like Salesforce /describe), Custom (genuinely customer-created, e.g., HubSpot custom objects). Drives merge precedence in IntegrationSchemaSync.
71046
+ */
71047
+ get MetadataSource() {
71048
+ return this.Get('MetadataSource');
71049
+ }
71050
+ set MetadataSource(value) {
71051
+ this.Set('MetadataSource', value);
71052
+ }
71053
+ /**
71054
+ * * Field Name: SupportsCreate
71055
+ * * Display Name: Supports Create
71056
+ * * SQL Data Type: bit
71057
+ * * Default Value: 0
71058
+ * * Description: Whether this object supports record creation in the external system (per-operation granularity beyond SupportsWrite). Drives whether the generic CreateRecord path is wired and whether the object is offered for write-back create.
71059
+ */
71060
+ get SupportsCreate() {
71061
+ return this.Get('SupportsCreate');
71062
+ }
71063
+ set SupportsCreate(value) {
71064
+ this.Set('SupportsCreate', value);
71065
+ }
71066
+ /**
71067
+ * * Field Name: SupportsUpdate
71068
+ * * Display Name: Supports Update
71069
+ * * SQL Data Type: bit
71070
+ * * Default Value: 0
71071
+ * * Description: Whether this object supports record updates in the external system (per-operation granularity beyond SupportsWrite).
71072
+ */
71073
+ get SupportsUpdate() {
71074
+ return this.Get('SupportsUpdate');
71075
+ }
71076
+ set SupportsUpdate(value) {
71077
+ this.Set('SupportsUpdate', value);
71078
+ }
71079
+ /**
71080
+ * * Field Name: SupportsDelete
71081
+ * * Display Name: Supports Delete
71082
+ * * SQL Data Type: bit
71083
+ * * Default Value: 0
71084
+ * * Description: Whether this object supports record deletion/tombstoning in the external system (per-operation granularity beyond SupportsWrite).
71085
+ */
71086
+ get SupportsDelete() {
71087
+ return this.Get('SupportsDelete');
71088
+ }
71089
+ set SupportsDelete(value) {
71090
+ this.Set('SupportsDelete', value);
71091
+ }
71092
+ /**
71093
+ * * Field Name: SyncStrategy
71094
+ * * Display Name: Sync Strategy
71095
+ * * SQL Data Type: nvarchar(50)
71096
+ * * Description: Declared incremental sync strategy for this object (e.g. WatermarkIncremental, ContentHash, FullSnapshot). Informs how the engine narrows subsequent syncs.
71097
+ */
71098
+ get SyncStrategy() {
71099
+ return this.Get('SyncStrategy');
71100
+ }
71101
+ set SyncStrategy(value) {
71102
+ this.Set('SyncStrategy', value);
71103
+ }
71104
+ /**
71105
+ * * Field Name: ContentHashApplicable
71106
+ * * Display Name: Content Hash Applicable
71107
+ * * SQL Data Type: bit
71108
+ * * Default Value: 1
71109
+ * * Description: Whether per-record content hashing is meaningful for this object (false for append-only/event streams where every row is new). Controls whether the engine uses content-hash to skip unchanged-row writes.
71110
+ */
71111
+ get ContentHashApplicable() {
71112
+ return this.Get('ContentHashApplicable');
71113
+ }
71114
+ set ContentHashApplicable(value) {
71115
+ this.Set('ContentHashApplicable', value);
71116
+ }
71117
+ /**
71118
+ * * Field Name: StableOrderingKey
71119
+ * * Display Name: Stable Ordering Key
71120
+ * * SQL Data Type: nvarchar(255)
71121
+ * * Description: Stable, monotonic ordering column (usually the PK) used for keyset/no-watermark resume of a scan. Null when the object has no stable key.
71122
+ */
71123
+ get StableOrderingKey() {
71124
+ return this.Get('StableOrderingKey');
71125
+ }
71126
+ set StableOrderingKey(value) {
71127
+ this.Set('StableOrderingKey', value);
71128
+ }
71129
+ /**
71130
+ * * Field Name: CompanyIntegrationID
71131
+ * * Display Name: Company Integration ID
71132
+ * * SQL Data Type: uniqueidentifier
71133
+ * * Related Entity/Foreign Key: MJ: Company Integrations (vwCompanyIntegrations.ID)
71134
+ */
71135
+ get CompanyIntegrationID() {
71136
+ return this.Get('CompanyIntegrationID');
71137
+ }
71138
+ set CompanyIntegrationID(value) {
71139
+ this.Set('CompanyIntegrationID', value);
71140
+ }
71141
+ /**
71142
+ * * Field Name: IntegrationObjectID
71143
+ * * Display Name: Integration Object ID
71144
+ * * SQL Data Type: uniqueidentifier
71145
+ * * Related Entity/Foreign Key: MJ: Integration Objects (vwIntegrationObjects.ID)
71146
+ */
71147
+ get IntegrationObjectID() {
71148
+ return this.Get('IntegrationObjectID');
71149
+ }
71150
+ set IntegrationObjectID(value) {
71151
+ this.Set('IntegrationObjectID', value);
71152
+ }
71153
+ /**
71154
+ * * Field Name: Provenance
71155
+ * * Display Name: Provenance
71156
+ * * SQL Data Type: nvarchar(20)
71157
+ * * Default Value: Declared
71158
+ * * Value List Type: List
71159
+ * * Possible Values
71160
+ * * Declared
71161
+ * * Endpoint
71162
+ * * Sampled
71163
+ * * Description: Where this row came from: Declared (the connector shipped catalog), Endpoint (the source listed it) or Sampled (only streaming records revealed it). Answers "whose is this" for a connection whose catalog no longer matches the connector default.
71164
+ */
71165
+ get Provenance() {
71166
+ return this.Get('Provenance');
71167
+ }
71168
+ set Provenance(value) {
71169
+ this.Set('Provenance', value);
71170
+ }
71171
+ /**
71172
+ * * Field Name: ProvenanceDetail
71173
+ * * Display Name: Provenance Detail
71174
+ * * SQL Data Type: nvarchar(MAX)
71175
+ * * Description: The per-attribute merge log for this row: which side won each overlay decision and why. The persist already computes this and throws it away, so the operator has never been able to see why a width or a key looks the way it does.
71176
+ */
71177
+ get ProvenanceDetail() {
71178
+ return this.Get('ProvenanceDetail');
71179
+ }
71180
+ set ProvenanceDetail(value) {
71181
+ this.Set('ProvenanceDetail', value);
71182
+ }
71183
+ /**
71184
+ * * Field Name: IsSelected
71185
+ * * Display Name: Is Selected
71186
+ * * SQL Data Type: bit
71187
+ * * Default Value: 0
71188
+ * * Description: Whether this connection syncs this item. THE AXIS THAT MAKES THE CONTRACT SATISFIABLE: Status says whether the item is in the catalog at all, IsSelected says whether the customer chose it. Conflating the two is why a newly discovered object had to arrive ENABLED — a disabled object was excluded from schema introspection, so it never reached key inference and never reached a migration.
71189
+ */
71190
+ get IsSelected() {
71191
+ return this.Get('IsSelected');
71192
+ }
71193
+ set IsSelected(value) {
71194
+ this.Set('IsSelected', value);
71195
+ }
71196
+ /**
71197
+ * * Field Name: SelectedAt
71198
+ * * Display Name: Selected At
71199
+ * * SQL Data Type: datetimeoffset
71200
+ * * Description: When the selection last changed. Lets the UI distinguish "never chosen" from "deliberately deselected".
71201
+ */
71202
+ get SelectedAt() {
71203
+ return this.Get('SelectedAt');
71204
+ }
71205
+ set SelectedAt(value) {
71206
+ this.Set('SelectedAt', value);
71207
+ }
71208
+ /**
71209
+ * * Field Name: FirstSeenAt
71210
+ * * Display Name: First Seen At
71211
+ * * SQL Data Type: datetimeoffset
71212
+ * * Description: When this connection first observed this item. Set once and never updated, so a catalog can be read as a history of what the source exposed and when.
71213
+ */
71214
+ get FirstSeenAt() {
71215
+ return this.Get('FirstSeenAt');
71216
+ }
71217
+ set FirstSeenAt(value) {
71218
+ this.Set('FirstSeenAt', value);
71219
+ }
71220
+ /**
71221
+ * * Field Name: LastSeenAt
71222
+ * * Display Name: Last Seen At
71223
+ * * SQL Data Type: datetimeoffset
71224
+ * * Description: When this connection most recently observed this item. A row whose LastSeenAt is older than the connection last discovery is what "absent from the source" means.
71225
+ */
71226
+ get LastSeenAt() {
71227
+ return this.Get('LastSeenAt');
71228
+ }
71229
+ set LastSeenAt(value) {
71230
+ this.Set('LastSeenAt', value);
71231
+ }
71232
+ /**
71233
+ * * Field Name: LastSampledAt
71234
+ * * Display Name: Last Sampled At
71235
+ * * SQL Data Type: datetimeoffset
71236
+ * * Description: When sampling last streamed records for this item. Distinct from LastSeenAt: an item can be listed by an endpoint without ever being sampled, and unsampled items are exactly the ones whose widths and keys came from the declared catalog rather than from data.
71237
+ */
71238
+ get LastSampledAt() {
71239
+ return this.Get('LastSampledAt');
71240
+ }
71241
+ set LastSampledAt(value) {
71242
+ this.Set('LastSampledAt', value);
71243
+ }
71244
+ /**
71245
+ * * Field Name: __mj_CreatedAt
71246
+ * * Display Name: Created At
71247
+ * * SQL Data Type: datetimeoffset
71248
+ * * Default Value: getutcdate()
71249
+ */
71250
+ get __mj_CreatedAt() {
71251
+ return this.Get('__mj_CreatedAt');
71252
+ }
71253
+ /**
71254
+ * * Field Name: __mj_UpdatedAt
71255
+ * * Display Name: Updated At
71256
+ * * SQL Data Type: datetimeoffset
71257
+ * * Default Value: getutcdate()
71258
+ */
71259
+ get __mj_UpdatedAt() {
71260
+ return this.Get('__mj_UpdatedAt');
71261
+ }
71262
+ /**
71263
+ * * Field Name: Integration
71264
+ * * Display Name: Integration
71265
+ * * SQL Data Type: nvarchar(100)
71266
+ */
71267
+ get Integration() {
71268
+ return this.Get('Integration');
71269
+ }
71270
+ /**
71271
+ * * Field Name: CompanyIntegration
71272
+ * * Display Name: Company Integration
71273
+ * * SQL Data Type: nvarchar(255)
71274
+ */
71275
+ get CompanyIntegration() {
71276
+ return this.Get('CompanyIntegration');
71277
+ }
71278
+ /**
71279
+ * * Field Name: IntegrationObject
71280
+ * * Display Name: Integration Object
71281
+ * * SQL Data Type: nvarchar(255)
71282
+ */
71283
+ get IntegrationObject() {
71284
+ return this.Get('IntegrationObject');
71285
+ }
71286
+ };
71287
+ MJCompanyIntegrationObjectEntity = __decorate([
71288
+ RegisterClass(BaseEntity, 'MJ: Company Integration Objects')
71289
+ ], MJCompanyIntegrationObjectEntity);
71290
+ export { MJCompanyIntegrationObjectEntity };
68685
71291
  /**
68686
71292
  * MJ: Company Integration Record Maps - strongly typed entity sub-class
68687
71293
  * * Schema: __mj
@@ -71054,6 +73660,73 @@ let MJComponentEntity = class MJComponentEntity extends BaseEntity {
71054
73660
  this.Set('TechnicalDesignVectorBinary', value);
71055
73661
  }
71056
73662
  /**
73663
+ * * Field Name: ApprovalStatus
73664
+ * * Display Name: Approval Status
73665
+ * * SQL Data Type: nvarchar(20)
73666
+ * * Default Value: Pending
73667
+ * * Value List Type: List
73668
+ * * Possible Values
73669
+ * * Approved
73670
+ * * Pending
73671
+ * * Rejected
73672
+ * * Description: Whether this component version's definition is approved: Pending, Approved or Rejected. Separate from Status, which is publication. An approval is current only while ApprovedFingerprint matches the current definition.
73673
+ */
73674
+ get ApprovalStatus() {
73675
+ return this.Get('ApprovalStatus');
73676
+ }
73677
+ set ApprovalStatus(value) {
73678
+ this.Set('ApprovalStatus', value);
73679
+ }
73680
+ /**
73681
+ * * Field Name: ApprovalComments
73682
+ * * Display Name: Approval Comments
73683
+ * * SQL Data Type: nvarchar(MAX)
73684
+ * * Description: Reviewer comments recorded with the approval decision, such as the tests the definition passed.
73685
+ */
73686
+ get ApprovalComments() {
73687
+ return this.Get('ApprovalComments');
73688
+ }
73689
+ set ApprovalComments(value) {
73690
+ this.Set('ApprovalComments', value);
73691
+ }
73692
+ /**
73693
+ * * Field Name: ApprovedByUserID
73694
+ * * Display Name: Approved By User ID
73695
+ * * SQL Data Type: uniqueidentifier
73696
+ * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)
73697
+ * * Description: The user who approved this component version.
73698
+ */
73699
+ get ApprovedByUserID() {
73700
+ return this.Get('ApprovedByUserID');
73701
+ }
73702
+ set ApprovedByUserID(value) {
73703
+ this.Set('ApprovedByUserID', value);
73704
+ }
73705
+ /**
73706
+ * * Field Name: ApprovedAt
73707
+ * * Display Name: Approved At
73708
+ * * SQL Data Type: datetimeoffset
73709
+ * * Description: When this component version was approved.
73710
+ */
73711
+ get ApprovedAt() {
73712
+ return this.Get('ApprovedAt');
73713
+ }
73714
+ set ApprovedAt(value) {
73715
+ this.Set('ApprovedAt', value);
73716
+ }
73717
+ /**
73718
+ * * Field Name: ApprovedFingerprint
73719
+ * * Display Name: Approved Fingerprint
73720
+ * * SQL Data Type: nvarchar(100)
73721
+ * * Description: SHA-256 fingerprint of the definition that was approved: the component's specification for this version. The approval is current only while this matches the fingerprint of the current definition.
73722
+ */
73723
+ get ApprovedFingerprint() {
73724
+ return this.Get('ApprovedFingerprint');
73725
+ }
73726
+ set ApprovedFingerprint(value) {
73727
+ this.Set('ApprovedFingerprint', value);
73728
+ }
73729
+ /**
71057
73730
  * * Field Name: SourceRegistry
71058
73731
  * * Display Name: Source Registry
71059
73732
  * * SQL Data Type: nvarchar(255)
@@ -71061,6 +73734,14 @@ let MJComponentEntity = class MJComponentEntity extends BaseEntity {
71061
73734
  get SourceRegistry() {
71062
73735
  return this.Get('SourceRegistry');
71063
73736
  }
73737
+ /**
73738
+ * * Field Name: ApprovedByUser
73739
+ * * Display Name: Approved By User
73740
+ * * SQL Data Type: nvarchar(100)
73741
+ */
73742
+ get ApprovedByUser() {
73743
+ return this.Get('ApprovedByUser');
73744
+ }
71064
73745
  };
71065
73746
  MJComponentEntity = __decorate([
71066
73747
  RegisterClass(BaseEntity, 'MJ: Components')
@@ -71147,6 +73828,42 @@ let MJContentFileTypeEntity = class MJContentFileTypeEntity extends BaseEntity {
71147
73828
  get __mj_UpdatedAt() {
71148
73829
  return this.Get('__mj_UpdatedAt');
71149
73830
  }
73831
+ /**
73832
+ * * Field Name: ByteSignature
73833
+ * * Display Name: Byte Signature
73834
+ * * SQL Data Type: nvarchar(MAX)
73835
+ * * Description: How this file type is recognised from its own content, as JSON. Either magic bytes - {"Magic":[37,80,68,70],"Offset":0,"Unambiguous":true} - or, for a text format, the characters it opens with: {"TextPrefix":["<!doctype html","<html"]}, matched after a byte-order mark and leading whitespace are stripped and case is folded. Unambiguous means a match may override a declared type; a container format such as zip recognises without identifying, so it may not.
73836
+ */
73837
+ get ByteSignature() {
73838
+ return this.Get('ByteSignature');
73839
+ }
73840
+ set ByteSignature(value) {
73841
+ this.Set('ByteSignature', value);
73842
+ }
73843
+ /**
73844
+ * * Field Name: IsText
73845
+ * * Display Name: Is Text
73846
+ * * SQL Data Type: bit
73847
+ * * Description: Whether this file type is text. Decides whether an unrecognised file is attempted as plain text or routed down the multi-modal path. NULL means unknown, and the pipeline falls back to inspecting the bytes.
73848
+ */
73849
+ get IsText() {
73850
+ return this.Get('IsText');
73851
+ }
73852
+ set IsText(value) {
73853
+ this.Set('IsText', value);
73854
+ }
73855
+ /**
73856
+ * * Field Name: ExtractorKey
73857
+ * * Display Name: Extractor Key
73858
+ * * SQL Data Type: nvarchar(100)
73859
+ * * Description: The registered content extractor that reads this file type. Lets a deployment add support for a format by pointing its file type at an extractor, rather than editing the extractor's own list of what it supports.
73860
+ */
73861
+ get ExtractorKey() {
73862
+ return this.Get('ExtractorKey');
73863
+ }
73864
+ set ExtractorKey(value) {
73865
+ this.Set('ExtractorKey', value);
73866
+ }
71150
73867
  };
71151
73868
  MJContentFileTypeEntity = __decorate([
71152
73869
  RegisterClass(BaseEntity, 'MJ: Content File Types')
@@ -71356,6 +74073,7 @@ let MJContentItemChunkEntity = class MJContentItemChunkEntity extends BaseEntity
71356
74073
  * * Active
71357
74074
  * * Complete
71358
74075
  * * Failed
74076
+ * * MetadataOnly
71359
74077
  * * Pending
71360
74078
  * * Processed
71361
74079
  * * Processing
@@ -71602,6 +74320,30 @@ let MJContentItemChunkEntity = class MJContentItemChunkEntity extends BaseEntity
71602
74320
  this.Set('ParentChunkID', value);
71603
74321
  }
71604
74322
  /**
74323
+ * * Field Name: FieldConfidence
74324
+ * * Display Name: Field Confidence
74325
+ * * SQL Data Type: nvarchar(MAX)
74326
+ * * Description: Per-field provenance for the pipeline: for each well-known field, the confidence the winning stage had and which stage set it.
74327
+ */
74328
+ get FieldConfidence() {
74329
+ return this.Get('FieldConfidence');
74330
+ }
74331
+ set FieldConfidence(value) {
74332
+ this.Set('FieldConfidence', value);
74333
+ }
74334
+ /**
74335
+ * * Field Name: Decorator
74336
+ * * Display Name: Decorator
74337
+ * * SQL Data Type: nvarchar(MAX)
74338
+ * * Description: Text that accompanies this chunk so it still makes sense retrieved on its own — normally inherited from its parent item. Kept as its own field rather than prefixed into Text so it stays separately searchable and can be revised without rewriting the chunk.
74339
+ */
74340
+ get Decorator() {
74341
+ return this.Get('Decorator');
74342
+ }
74343
+ set Decorator(value) {
74344
+ this.Set('Decorator', value);
74345
+ }
74346
+ /**
71605
74347
  * * Field Name: ContentItem
71606
74348
  * * Display Name: Content Item Name
71607
74349
  * * SQL Data Type: nvarchar(250)
@@ -72210,9 +74952,12 @@ let MJContentItemEntity = class MJContentItemEntity extends BaseEntity {
72210
74952
  * * Default Value: Pending
72211
74953
  * * Value List Type: List
72212
74954
  * * Possible Values
74955
+ * * Active
72213
74956
  * * Complete
72214
74957
  * * Failed
74958
+ * * MetadataOnly
72215
74959
  * * Pending
74960
+ * * Processed
72216
74961
  * * Processing
72217
74962
  * * Skipped
72218
74963
  * * Description: Vectorization status: Pending (not yet embedded), Processing (currently being embedded), Complete (vector stored), Failed (embedding error), Skipped (excluded from vectorization).
@@ -72318,6 +75063,152 @@ let MJContentItemEntity = class MJContentItemEntity extends BaseEntity {
72318
75063
  this.Set('DisplayLink', value);
72319
75064
  }
72320
75065
  /**
75066
+ * * Field Name: FieldConfidence
75067
+ * * Display Name: Field Confidence
75068
+ * * SQL Data Type: nvarchar(MAX)
75069
+ * * Description: Per-field provenance for the pipeline: for each well-known field, the confidence the winning stage had and which stage set it. Lets two stages that know nothing about each other resolve a shared field on merit rather than by running order.
75070
+ */
75071
+ get FieldConfidence() {
75072
+ return this.Get('FieldConfidence');
75073
+ }
75074
+ set FieldConfidence(value) {
75075
+ this.Set('FieldConfidence', value);
75076
+ }
75077
+ /**
75078
+ * * Field Name: ExtractionStatus
75079
+ * * Display Name: Extraction Status
75080
+ * * SQL Data Type: nvarchar(40)
75081
+ * * Value List Type: List
75082
+ * * Possible Values
75083
+ * * Complete
75084
+ * * Failed
75085
+ * * Pending
75086
+ * * Processing
75087
+ * * Skipped
75088
+ * * Description: Status of the Extract stage for this item: Pending, Processing, Complete, Failed or Skipped.
75089
+ */
75090
+ get ExtractionStatus() {
75091
+ return this.Get('ExtractionStatus');
75092
+ }
75093
+ set ExtractionStatus(value) {
75094
+ this.Set('ExtractionStatus', value);
75095
+ }
75096
+ /**
75097
+ * * Field Name: SegmentationStatus
75098
+ * * Display Name: Segmentation Status
75099
+ * * SQL Data Type: nvarchar(40)
75100
+ * * Value List Type: List
75101
+ * * Possible Values
75102
+ * * Complete
75103
+ * * Failed
75104
+ * * Pending
75105
+ * * Processing
75106
+ * * Skipped
75107
+ * * Description: Status of the Segment stage for this item: Pending, Processing, Complete, Failed or Skipped.
75108
+ */
75109
+ get SegmentationStatus() {
75110
+ return this.Get('SegmentationStatus');
75111
+ }
75112
+ set SegmentationStatus(value) {
75113
+ this.Set('SegmentationStatus', value);
75114
+ }
75115
+ /**
75116
+ * * Field Name: DeleteStatus
75117
+ * * Display Name: Delete Status
75118
+ * * SQL Data Type: nvarchar(20)
75119
+ * * Value List Type: List
75120
+ * * Possible Values
75121
+ * * Deleted
75122
+ * * Pending
75123
+ * * Description: Soft-delete marker: Pending once something has been removed at the source, Deleted once the Delete stage has cleaned up everything downstream of it. Marking rather than deleting keeps the outside-system cleanup in one place and makes it retryable.
75124
+ */
75125
+ get DeleteStatus() {
75126
+ return this.Get('DeleteStatus');
75127
+ }
75128
+ set DeleteStatus(value) {
75129
+ this.Set('DeleteStatus', value);
75130
+ }
75131
+ /**
75132
+ * * Field Name: ExtractorKey
75133
+ * * Display Name: Extractor Key
75134
+ * * SQL Data Type: nvarchar(100)
75135
+ * * Description: The registered content extractor that actually read this item, recorded as a receipt of what ran. Distinct from the defaults on Content Type and in the source configuration, which say what should run.
75136
+ */
75137
+ get ExtractorKey() {
75138
+ return this.Get('ExtractorKey');
75139
+ }
75140
+ set ExtractorKey(value) {
75141
+ this.Set('ExtractorKey', value);
75142
+ }
75143
+ /**
75144
+ * * Field Name: ExtractorKeyOverride
75145
+ * * Display Name: Extractor Key Override
75146
+ * * SQL Data Type: nvarchar(100)
75147
+ * * Description: Forces a specific content extractor for this item, overriding every default in the cascade. Set by a splitting extractor that already knows what one of its own children is, and by an operator correcting a misrouted item.
75148
+ */
75149
+ get ExtractorKeyOverride() {
75150
+ return this.Get('ExtractorKeyOverride');
75151
+ }
75152
+ set ExtractorKeyOverride(value) {
75153
+ this.Set('ExtractorKeyOverride', value);
75154
+ }
75155
+ /**
75156
+ * * Field Name: Modality
75157
+ * * Display Name: Modality
75158
+ * * SQL Data Type: nvarchar(20)
75159
+ * * Value List Type: List
75160
+ * * Possible Values
75161
+ * * audio
75162
+ * * image
75163
+ * * multimodal
75164
+ * * text
75165
+ * * video
75166
+ * * Description: What kind of content this item holds: text, image, audio, video or multimodal. Determines whether the item can be embedded without extracted text.
75167
+ */
75168
+ get Modality() {
75169
+ return this.Get('Modality');
75170
+ }
75171
+ set Modality(value) {
75172
+ this.Set('Modality', value);
75173
+ }
75174
+ /**
75175
+ * * Field Name: Date
75176
+ * * Display Name: Content Date
75177
+ * * SQL Data Type: datetimeoffset
75178
+ * * Description: The date the content itself carries — published, issued or authored — as opposed to when this row was created.
75179
+ */
75180
+ get Date() {
75181
+ return this.Get('Date');
75182
+ }
75183
+ set Date(value) {
75184
+ this.Set('Date', value);
75185
+ }
75186
+ /**
75187
+ * * Field Name: Decorator
75188
+ * * Display Name: Decorator
75189
+ * * SQL Data Type: nvarchar(MAX)
75190
+ * * Description: Text that accompanies this item so it still makes sense retrieved on its own. Kept as its own field rather than prefixed into Text so it stays separately searchable and can be revised without rewriting the content.
75191
+ */
75192
+ get Decorator() {
75193
+ return this.Get('Decorator');
75194
+ }
75195
+ set Decorator(value) {
75196
+ this.Set('Decorator', value);
75197
+ }
75198
+ /**
75199
+ * * Field Name: FileID
75200
+ * * Display Name: File
75201
+ * * SQL Data Type: uniqueidentifier
75202
+ * * Related Entity/Foreign Key: MJ: Files (vwFiles.ID)
75203
+ * * Description: The durable copy of the fetched artifact, held as an MJ File so the bytes live in whichever storage provider the source is configured for rather than in this database.
75204
+ */
75205
+ get FileID() {
75206
+ return this.Get('FileID');
75207
+ }
75208
+ set FileID(value) {
75209
+ this.Set('FileID', value);
75210
+ }
75211
+ /**
72321
75212
  * * Field Name: ContentSource
72322
75213
  * * Display Name: Content Source Name
72323
75214
  * * SQL Data Type: nvarchar(255)
@@ -72374,6 +75265,14 @@ let MJContentItemEntity = class MJContentItemEntity extends BaseEntity {
72374
75265
  return this.Get('Parent');
72375
75266
  }
72376
75267
  /**
75268
+ * * Field Name: File
75269
+ * * Display Name: File Details
75270
+ * * SQL Data Type: nvarchar(500)
75271
+ */
75272
+ get File() {
75273
+ return this.Get('File');
75274
+ }
75275
+ /**
72377
75276
  * * Field Name: RootParentID
72378
75277
  * * Display Name: Root Parent Content
72379
75278
  * * SQL Data Type: uniqueidentifier
@@ -73625,6 +76524,55 @@ let MJContentSourceEntity = class MJContentSourceEntity extends BaseEntity {
73625
76524
  this.Set('ScheduledJobID', value);
73626
76525
  }
73627
76526
  /**
76527
+ * * Field Name: FieldConfidence
76528
+ * * Display Name: Field Confidence
76529
+ * * SQL Data Type: nvarchar(MAX)
76530
+ * * Description: Per-field provenance for the pipeline: for each well-known field, the confidence the winning stage had and which stage set it.
76531
+ */
76532
+ get FieldConfidence() {
76533
+ return this.Get('FieldConfidence');
76534
+ }
76535
+ set FieldConfidence(value) {
76536
+ this.Set('FieldConfidence', value);
76537
+ }
76538
+ /**
76539
+ * * Field Name: ForceDiscovery
76540
+ * * Display Name: Force Discovery
76541
+ * * SQL Data Type: bit
76542
+ * * Default Value: 0
76543
+ * * Description: Walk this source on the next pass regardless of its schedule. A one-shot: the Discover stage clears it when the walk completes. Scheduling is deployment-owned and the shipped Discover process selects ForceDiscovery = 1, which is why there is no discovery status column to re-arm.
76544
+ */
76545
+ get ForceDiscovery() {
76546
+ return this.Get('ForceDiscovery');
76547
+ }
76548
+ set ForceDiscovery(value) {
76549
+ this.Set('ForceDiscovery', value);
76550
+ }
76551
+ /**
76552
+ * * Field Name: LastDiscoveredAt
76553
+ * * Display Name: Last Discovered At
76554
+ * * SQL Data Type: datetimeoffset
76555
+ * * Description: When this source was last walked by the Discover stage. Stamped with the time a completed walk started, and passed back as Since on subsequent incremental walks.
76556
+ */
76557
+ get LastDiscoveredAt() {
76558
+ return this.Get('LastDiscoveredAt');
76559
+ }
76560
+ set LastDiscoveredAt(value) {
76561
+ this.Set('LastDiscoveredAt', value);
76562
+ }
76563
+ /**
76564
+ * * Field Name: LastSyncedAt
76565
+ * * Display Name: Last Synced At
76566
+ * * SQL Data Type: datetimeoffset
76567
+ * * Description: When this source last completed a full Sync walk (reconciling removals). Stamped with the time a completed sync walk started. The shipped Sync Record Process selects sources by LastSyncedAt (LastSyncedAt IS NULL OR LastSyncedAt < DATEADD(day, -30, GETUTCDATE())), never by ForceDiscovery; to force a sync, set LastSyncedAt back or to NULL.
76568
+ */
76569
+ get LastSyncedAt() {
76570
+ return this.Get('LastSyncedAt');
76571
+ }
76572
+ set LastSyncedAt(value) {
76573
+ this.Set('LastSyncedAt', value);
76574
+ }
76575
+ /**
73628
76576
  * * Field Name: ContentType
73629
76577
  * * Display Name: Content Type Name
73630
76578
  * * SQL Data Type: nvarchar(255)
@@ -73996,6 +76944,18 @@ let MJContentTypeEntity = class MJContentTypeEntity extends BaseEntity {
73996
76944
  this.Set('CleanerKey', value);
73997
76945
  }
73998
76946
  /**
76947
+ * * Field Name: ExtractorKey
76948
+ * * Display Name: Extractor Key
76949
+ * * SQL Data Type: nvarchar(100)
76950
+ * * Description: The default content extractor for items of this content type, beside SegmenterKey and CleanerKey. A per-type default has no home in a source's Configuration, and reading it from a run's Options would make it per-run.
76951
+ */
76952
+ get ExtractorKey() {
76953
+ return this.Get('ExtractorKey');
76954
+ }
76955
+ set ExtractorKey(value) {
76956
+ this.Set('ExtractorKey', value);
76957
+ }
76958
+ /**
73999
76959
  * * Field Name: AIModel
74000
76960
  * * Display Name: AI Model Name
74001
76961
  * * SQL Data Type: nvarchar(50)
@@ -79112,6 +82072,73 @@ let MJDashboardEntity = class MJDashboardEntity extends BaseEntity {
79112
82072
  this.Set('EnvironmentID', value);
79113
82073
  }
79114
82074
  /**
82075
+ * * Field Name: ApprovalStatus
82076
+ * * Display Name: Approval Status
82077
+ * * SQL Data Type: nvarchar(20)
82078
+ * * Default Value: Pending
82079
+ * * Value List Type: List
82080
+ * * Possible Values
82081
+ * * Approved
82082
+ * * Pending
82083
+ * * Rejected
82084
+ * * Description: Whether this dashboard's definition is approved: Pending, Approved or Rejected. An approval is current only while ApprovedFingerprint matches the current definition.
82085
+ */
82086
+ get ApprovalStatus() {
82087
+ return this.Get('ApprovalStatus');
82088
+ }
82089
+ set ApprovalStatus(value) {
82090
+ this.Set('ApprovalStatus', value);
82091
+ }
82092
+ /**
82093
+ * * Field Name: ApprovalComments
82094
+ * * Display Name: Approval Comments
82095
+ * * SQL Data Type: nvarchar(MAX)
82096
+ * * Description: Reviewer comments recorded with the approval decision, such as the tests the definition passed.
82097
+ */
82098
+ get ApprovalComments() {
82099
+ return this.Get('ApprovalComments');
82100
+ }
82101
+ set ApprovalComments(value) {
82102
+ this.Set('ApprovalComments', value);
82103
+ }
82104
+ /**
82105
+ * * Field Name: ApprovedByUserID
82106
+ * * Display Name: Approved By User ID
82107
+ * * SQL Data Type: uniqueidentifier
82108
+ * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)
82109
+ * * Description: The user who approved this dashboard.
82110
+ */
82111
+ get ApprovedByUserID() {
82112
+ return this.Get('ApprovedByUserID');
82113
+ }
82114
+ set ApprovedByUserID(value) {
82115
+ this.Set('ApprovedByUserID', value);
82116
+ }
82117
+ /**
82118
+ * * Field Name: ApprovedAt
82119
+ * * Display Name: Approved At
82120
+ * * SQL Data Type: datetimeoffset
82121
+ * * Description: When this dashboard was approved.
82122
+ */
82123
+ get ApprovedAt() {
82124
+ return this.Get('ApprovedAt');
82125
+ }
82126
+ set ApprovedAt(value) {
82127
+ this.Set('ApprovedAt', value);
82128
+ }
82129
+ /**
82130
+ * * Field Name: ApprovedFingerprint
82131
+ * * Display Name: Approved Fingerprint
82132
+ * * SQL Data Type: nvarchar(100)
82133
+ * * Description: SHA-256 fingerprint of the definition that was approved: its layout, parts, property mappings, wires and code. The approval is current only while this matches the fingerprint of the current definition.
82134
+ */
82135
+ get ApprovedFingerprint() {
82136
+ return this.Get('ApprovedFingerprint');
82137
+ }
82138
+ set ApprovedFingerprint(value) {
82139
+ this.Set('ApprovedFingerprint', value);
82140
+ }
82141
+ /**
79115
82142
  * * Field Name: User
79116
82143
  * * Display Name: User
79117
82144
  * * SQL Data Type: nvarchar(100)
@@ -79143,6 +82170,14 @@ let MJDashboardEntity = class MJDashboardEntity extends BaseEntity {
79143
82170
  get Environment() {
79144
82171
  return this.Get('Environment');
79145
82172
  }
82173
+ /**
82174
+ * * Field Name: ApprovedByUser
82175
+ * * Display Name: Approved By User
82176
+ * * SQL Data Type: nvarchar(100)
82177
+ */
82178
+ get ApprovedByUser() {
82179
+ return this.Get('ApprovedByUser');
82180
+ }
79146
82181
  };
79147
82182
  MJDashboardEntity = __decorate([
79148
82183
  RegisterClass(BaseEntity, 'MJ: Dashboards')
@@ -80558,6 +83593,19 @@ let MJDuplicateRunEntity = class MJDuplicateRunEntity extends BaseEntity {
80558
83593
  this.Set('CancellationRequested', value);
80559
83594
  }
80560
83595
  /**
83596
+ * * Field Name: EntityDocumentID
83597
+ * * Display Name: Entity Document
83598
+ * * SQL Data Type: uniqueidentifier
83599
+ * * Related Entity/Foreign Key: MJ: Entity Documents (vwEntityDocuments.ID)
83600
+ * * Description: The Entity Document this run used: its template, vectors, match thresholds and LLM reasoning settings produced the run's matches.
83601
+ */
83602
+ get EntityDocumentID() {
83603
+ return this.Get('EntityDocumentID');
83604
+ }
83605
+ set EntityDocumentID(value) {
83606
+ this.Set('EntityDocumentID', value);
83607
+ }
83608
+ /**
80561
83609
  * * Field Name: Entity
80562
83610
  * * Display Name: Entity Name
80563
83611
  * * SQL Data Type: nvarchar(255)
@@ -80589,6 +83637,14 @@ let MJDuplicateRunEntity = class MJDuplicateRunEntity extends BaseEntity {
80589
83637
  get ApprovedByUser() {
80590
83638
  return this.Get('ApprovedByUser');
80591
83639
  }
83640
+ /**
83641
+ * * Field Name: EntityDocument
83642
+ * * Display Name: Entity Document Name
83643
+ * * SQL Data Type: nvarchar(250)
83644
+ */
83645
+ get EntityDocument() {
83646
+ return this.Get('EntityDocument');
83647
+ }
80592
83648
  };
80593
83649
  MJDuplicateRunEntity = __decorate([
80594
83650
  RegisterClass(BaseEntity, 'MJ: Duplicate Runs')
@@ -83780,6 +86836,219 @@ MJEntityActionEntity = __decorate([
83780
86836
  RegisterClass(BaseEntity, 'MJ: Entity Actions')
83781
86837
  ], MJEntityActionEntity);
83782
86838
  export { MJEntityActionEntity };
86839
+ /**
86840
+ * MJ: Entity Alternate Base Views - strongly typed entity sub-class
86841
+ * * Schema: __mj
86842
+ * * Base Table: EntityAlternateBaseView
86843
+ * * Base View: vwEntityAlternateBaseViews
86844
+ * * @description Registers alternate base views for an entity: SQL views that expose the same columns as the entity's BaseView while returning a canonical row subset (such as Active Members or Open Orders).
86845
+ * * Primary Key: ID
86846
+ * @extends {BaseEntity}
86847
+ * @class
86848
+ * @public
86849
+ */
86850
+ let MJEntityAlternateBaseViewEntity = class MJEntityAlternateBaseViewEntity extends BaseEntity {
86851
+ /**
86852
+ * Loads the MJ: Entity Alternate Base Views record from the database
86853
+ * @param ID: string - primary key value to load the MJ: Entity Alternate Base Views record.
86854
+ * @param EntityRelationshipsToLoad - (optional) the relationships to load
86855
+ * @returns {Promise<boolean>} - true if successful, false otherwise
86856
+ * @public
86857
+ * @async
86858
+ * @memberof MJEntityAlternateBaseViewEntity
86859
+ * @method
86860
+ * @override
86861
+ */
86862
+ async Load(ID, EntityRelationshipsToLoad) {
86863
+ const compositeKey = new CompositeKey();
86864
+ compositeKey.KeyValuePairs.push({ FieldName: 'ID', Value: ID });
86865
+ return await super.InnerLoad(compositeKey, EntityRelationshipsToLoad);
86866
+ }
86867
+ /**
86868
+ * * Field Name: ID
86869
+ * * Display Name: ID
86870
+ * * SQL Data Type: uniqueidentifier
86871
+ * * Default Value: newsequentialid()
86872
+ */
86873
+ get ID() {
86874
+ return this.Get('ID');
86875
+ }
86876
+ set ID(value) {
86877
+ this.Set('ID', value);
86878
+ }
86879
+ /**
86880
+ * * Field Name: EntityID
86881
+ * * Display Name: Entity
86882
+ * * SQL Data Type: uniqueidentifier
86883
+ * * Related Entity/Foreign Key: MJ: Entities (vwEntities.ID)
86884
+ * * Description: Owning entity whose column contract this alternate base view shares.
86885
+ */
86886
+ get EntityID() {
86887
+ return this.Get('EntityID');
86888
+ }
86889
+ set EntityID(value) {
86890
+ this.Set('EntityID', value);
86891
+ }
86892
+ /**
86893
+ * * Field Name: ParentID
86894
+ * * Display Name: Parent
86895
+ * * SQL Data Type: uniqueidentifier
86896
+ * * Related Entity/Foreign Key: MJ: Entity Alternate Base Views (vwEntityAlternateBaseViews.ID)
86897
+ * * Description: Optional parent alternate base view on the same entity that this view derives from (e.g. an Active Auto-Renew Members view built on top of Active Members). NULL when the view selects directly from the entity's BaseView. Automatically populated on save via SQL AST extraction when the view's FROM clause references another registered alternate base view.
86898
+ */
86899
+ get ParentID() {
86900
+ return this.Get('ParentID');
86901
+ }
86902
+ set ParentID(value) {
86903
+ this.Set('ParentID', value);
86904
+ }
86905
+ /**
86906
+ * * Field Name: Name
86907
+ * * Display Name: Name
86908
+ * * SQL Data Type: nvarchar(100)
86909
+ * * Description: Logical name of the alternate base view, unique per entity (case-insensitive). Cannot contain pipe (|) or colon (:) characters. Callers pass this name via RunViewParams.AlternateBaseView or pin it on a User View.
86910
+ */
86911
+ get Name() {
86912
+ return this.Get('Name');
86913
+ }
86914
+ set Name(value) {
86915
+ this.Set('Name', value);
86916
+ }
86917
+ /**
86918
+ * * Field Name: DisplayName
86919
+ * * Display Name: Display Name
86920
+ * * SQL Data Type: nvarchar(255)
86921
+ * * Description: Human-friendly label shown in UI pickers and badges. Falls back to Name when NULL.
86922
+ */
86923
+ get DisplayName() {
86924
+ return this.Get('DisplayName');
86925
+ }
86926
+ set DisplayName(value) {
86927
+ this.Set('DisplayName', value);
86928
+ }
86929
+ /**
86930
+ * * Field Name: Description
86931
+ * * Display Name: Description
86932
+ * * SQL Data Type: nvarchar(MAX)
86933
+ * * Description: Plain-language definition of which rows this alternate base view includes. Surfaced as help text in pickers and in agent and QueryGen discovery context.
86934
+ */
86935
+ get Description() {
86936
+ return this.Get('Description');
86937
+ }
86938
+ set Description(value) {
86939
+ this.Set('Description', value);
86940
+ }
86941
+ /**
86942
+ * * Field Name: SchemaName
86943
+ * * Display Name: Schema Name
86944
+ * * SQL Data Type: nvarchar(255)
86945
+ * * Description: Database schema of ViewName. When NULL, defaults to the owning entity's SchemaName. Cross-schema views allow an Open App to register an alternate view in its own schema on an upstream entity.
86946
+ */
86947
+ get SchemaName() {
86948
+ return this.Get('SchemaName');
86949
+ }
86950
+ set SchemaName(value) {
86951
+ this.Set('SchemaName', value);
86952
+ }
86953
+ /**
86954
+ * * Field Name: ViewName
86955
+ * * Display Name: View Name
86956
+ * * SQL Data Type: nvarchar(255)
86957
+ * * Description: Physical SQL view name in the database. Must select all columns from the owning entity's BaseView.
86958
+ */
86959
+ get ViewName() {
86960
+ return this.Get('ViewName');
86961
+ }
86962
+ set ViewName(value) {
86963
+ this.Set('ViewName', value);
86964
+ }
86965
+ /**
86966
+ * * Field Name: CachePolicy
86967
+ * * Display Name: Cache Policy
86968
+ * * SQL Data Type: nvarchar(20)
86969
+ * * Default Value: Default
86970
+ * * Value List Type: List
86971
+ * * Possible Values
86972
+ * * Bypass
86973
+ * * Default
86974
+ * * Description: Controls RunView caching for this alternate view: Default caches results under an isolated abv: fingerprint segment and invalidates on entity writes; Bypass disables caching for views whose predicates depend on the clock or other tables.
86975
+ */
86976
+ get CachePolicy() {
86977
+ return this.Get('CachePolicy');
86978
+ }
86979
+ set CachePolicy(value) {
86980
+ this.Set('CachePolicy', value);
86981
+ }
86982
+ /**
86983
+ * * Field Name: Status
86984
+ * * Display Name: Status
86985
+ * * SQL Data Type: nvarchar(20)
86986
+ * * Default Value: Active
86987
+ * * Value List Type: List
86988
+ * * Possible Values
86989
+ * * Active
86990
+ * * Deprecated
86991
+ * * Disabled
86992
+ * * Description: Lifecycle status of the alternate view: Active (selectable and shown in pickers and agent context), Deprecated (executable with a warning, hidden from pickers and agents), or Disabled (rejected at runtime).
86993
+ */
86994
+ get Status() {
86995
+ return this.Get('Status');
86996
+ }
86997
+ set Status(value) {
86998
+ this.Set('Status', value);
86999
+ }
87000
+ /**
87001
+ * * Field Name: Sequence
87002
+ * * Display Name: Sequence
87003
+ * * SQL Data Type: int
87004
+ * * Default Value: 0
87005
+ * * Description: Display ordering of this alternate view within its owning entity (lower numbers appear first).
87006
+ */
87007
+ get Sequence() {
87008
+ return this.Get('Sequence');
87009
+ }
87010
+ set Sequence(value) {
87011
+ this.Set('Sequence', value);
87012
+ }
87013
+ /**
87014
+ * * Field Name: __mj_CreatedAt
87015
+ * * Display Name: Created At
87016
+ * * SQL Data Type: datetimeoffset
87017
+ * * Default Value: getutcdate()
87018
+ */
87019
+ get __mj_CreatedAt() {
87020
+ return this.Get('__mj_CreatedAt');
87021
+ }
87022
+ /**
87023
+ * * Field Name: __mj_UpdatedAt
87024
+ * * Display Name: Updated At
87025
+ * * SQL Data Type: datetimeoffset
87026
+ * * Default Value: getutcdate()
87027
+ */
87028
+ get __mj_UpdatedAt() {
87029
+ return this.Get('__mj_UpdatedAt');
87030
+ }
87031
+ /**
87032
+ * * Field Name: Entity
87033
+ * * Display Name: Entity Text
87034
+ * * SQL Data Type: nvarchar(255)
87035
+ */
87036
+ get Entity() {
87037
+ return this.Get('Entity');
87038
+ }
87039
+ /**
87040
+ * * Field Name: Parent
87041
+ * * Display Name: Parent Text
87042
+ * * SQL Data Type: nvarchar(100)
87043
+ */
87044
+ get Parent() {
87045
+ return this.Get('Parent');
87046
+ }
87047
+ };
87048
+ MJEntityAlternateBaseViewEntity = __decorate([
87049
+ RegisterClass(BaseEntity, 'MJ: Entity Alternate Base Views')
87050
+ ], MJEntityAlternateBaseViewEntity);
87051
+ export { MJEntityAlternateBaseViewEntity };
83783
87052
  /**
83784
87053
  * MJ: Entity Communication Fields - strongly typed entity sub-class
83785
87054
  * * Schema: __mj
@@ -84357,41 +87626,6 @@ let MJEntityDocumentEntity = class MJEntityDocumentEntity extends BaseEntity {
84357
87626
  return await super.InnerLoad(compositeKey, EntityRelationshipsToLoad);
84358
87627
  }
84359
87628
  /**
84360
- * MJ: Entity Documents - Delete method override to wrap in transaction since CascadeDeletes is true.
84361
- * Wrapping in a transaction ensures that all cascade delete operations are handled atomically.
84362
- * @public
84363
- * @method
84364
- * @override
84365
- * @memberof MJEntityDocumentEntity
84366
- * @returns {Promise<boolean>} - true if successful, false otherwise
84367
- */
84368
- async Delete(options) {
84369
- if (Metadata.Provider.ProviderType === ProviderType.Database) { // global-provider-ok: codegen runs offline against a single provider
84370
- // For database providers, use the transaction methods directly
84371
- const provider = Metadata.Provider; // global-provider-ok: codegen runs offline against a single provider
84372
- try {
84373
- await provider.BeginTransaction();
84374
- const result = await super.Delete(options);
84375
- if (result) {
84376
- await provider.CommitTransaction();
84377
- return true;
84378
- }
84379
- else {
84380
- await provider.RollbackTransaction();
84381
- return false;
84382
- }
84383
- }
84384
- catch (error) {
84385
- await provider.RollbackTransaction();
84386
- throw error;
84387
- }
84388
- }
84389
- else {
84390
- // For network providers, cascading deletes are handled server-side
84391
- return super.Delete(options);
84392
- }
84393
- }
84394
- /**
84395
87629
  * Validate() method override for MJ: Entity Documents entity. This is an auto-generated method that invokes the generated validators for this entity for the following fields:
84396
87630
  * * Table-Level: This rule ensures that both the Potential Match Threshold and the Absolute Match Threshold are numbers between 0 and 1, inclusive. Additionally, the Potential Match Threshold must not be higher than the Absolute Match Threshold.
84397
87631
  * @public
@@ -105797,6 +109031,55 @@ let MJQueryEntity = class MJQueryEntity extends BaseEntity {
105797
109031
  this.Set('EmbeddingVectorBinary', value);
105798
109032
  }
105799
109033
  /**
109034
+ * * Field Name: ApprovalComments
109035
+ * * Display Name: Approval Comments
109036
+ * * SQL Data Type: nvarchar(MAX)
109037
+ * * Description: Reviewer comments recorded with the approval decision, such as the tests the definition passed.
109038
+ */
109039
+ get ApprovalComments() {
109040
+ return this.Get('ApprovalComments');
109041
+ }
109042
+ set ApprovalComments(value) {
109043
+ this.Set('ApprovalComments', value);
109044
+ }
109045
+ /**
109046
+ * * Field Name: ApprovedByUserID
109047
+ * * Display Name: Approved By User ID
109048
+ * * SQL Data Type: uniqueidentifier
109049
+ * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)
109050
+ * * Description: The user who approved this query.
109051
+ */
109052
+ get ApprovedByUserID() {
109053
+ return this.Get('ApprovedByUserID');
109054
+ }
109055
+ set ApprovedByUserID(value) {
109056
+ this.Set('ApprovedByUserID', value);
109057
+ }
109058
+ /**
109059
+ * * Field Name: ApprovedAt
109060
+ * * Display Name: Approved At
109061
+ * * SQL Data Type: datetimeoffset
109062
+ * * Description: When this query was approved.
109063
+ */
109064
+ get ApprovedAt() {
109065
+ return this.Get('ApprovedAt');
109066
+ }
109067
+ set ApprovedAt(value) {
109068
+ this.Set('ApprovedAt', value);
109069
+ }
109070
+ /**
109071
+ * * Field Name: ApprovedFingerprint
109072
+ * * Display Name: Approved Fingerprint
109073
+ * * SQL Data Type: nvarchar(100)
109074
+ * * Description: SHA-256 fingerprint of the definition that was approved: its SQL, dialect variants and parameter contract. The approval is current only while this matches the fingerprint of the current definition.
109075
+ */
109076
+ get ApprovedFingerprint() {
109077
+ return this.Get('ApprovedFingerprint');
109078
+ }
109079
+ set ApprovedFingerprint(value) {
109080
+ this.Set('ApprovedFingerprint', value);
109081
+ }
109082
+ /**
105800
109083
  * * Field Name: Category
105801
109084
  * * Display Name: Category Name
105802
109085
  * * SQL Data Type: nvarchar(50)
@@ -105828,6 +109111,14 @@ let MJQueryEntity = class MJQueryEntity extends BaseEntity {
105828
109111
  get ExternalDataSource() {
105829
109112
  return this.Get('ExternalDataSource');
105830
109113
  }
109114
+ /**
109115
+ * * Field Name: ApprovedByUser
109116
+ * * Display Name: Approved By User
109117
+ * * SQL Data Type: nvarchar(100)
109118
+ */
109119
+ get ApprovedByUser() {
109120
+ return this.Get('ApprovedByUser');
109121
+ }
105831
109122
  };
105832
109123
  MJQueryEntity = __decorate([
105833
109124
  RegisterClass(BaseEntity, 'MJ: Queries')
@@ -106321,6 +109612,19 @@ let MJQueryEntityEntity = class MJQueryEntityEntity extends BaseEntity {
106321
109612
  this.Set('AutoDetectConfidenceScore', value);
106322
109613
  }
106323
109614
  /**
109615
+ * * Field Name: AlternateBaseViewID
109616
+ * * Display Name: Alternate Base View
109617
+ * * SQL Data Type: uniqueidentifier
109618
+ * * Related Entity/Foreign Key: MJ: Entity Alternate Base Views (vwEntityAlternateBaseViews.ID)
109619
+ * * Description: When this query references an alternate base view rather than the entity's primary BaseView, records the specific MJ: Entity Alternate Base Views row while EntityID continues to reference the owning entity.
109620
+ */
109621
+ get AlternateBaseViewID() {
109622
+ return this.Get('AlternateBaseViewID');
109623
+ }
109624
+ set AlternateBaseViewID(value) {
109625
+ this.Set('AlternateBaseViewID', value);
109626
+ }
109627
+ /**
106324
109628
  * * Field Name: Query
106325
109629
  * * Display Name: Query
106326
109630
  * * SQL Data Type: nvarchar(255)
@@ -106336,6 +109640,14 @@ let MJQueryEntityEntity = class MJQueryEntityEntity extends BaseEntity {
106336
109640
  get Entity() {
106337
109641
  return this.Get('Entity');
106338
109642
  }
109643
+ /**
109644
+ * * Field Name: AlternateBaseView
109645
+ * * Display Name: Alternate Base View Name
109646
+ * * SQL Data Type: nvarchar(100)
109647
+ */
109648
+ get AlternateBaseView() {
109649
+ return this.Get('AlternateBaseView');
109650
+ }
106339
109651
  };
106340
109652
  MJQueryEntityEntity = __decorate([
106341
109653
  RegisterClass(BaseEntity, 'MJ: Query Entities')
@@ -106785,6 +110097,19 @@ let MJQueryParameterEntity = class MJQueryParameterEntity extends BaseEntity {
106785
110097
  return this.Get('__mj_UpdatedAt');
106786
110098
  }
106787
110099
  /**
110100
+ * * Field Name: IsServerSet
110101
+ * * Display Name: Is Server Set
110102
+ * * SQL Data Type: bit
110103
+ * * Default Value: 0
110104
+ * * Description: When true, only server code may supply this parameter's value (RunQueryParams.ServerParameters). A value for it from a client is refused.
110105
+ */
110106
+ get IsServerSet() {
110107
+ return this.Get('IsServerSet');
110108
+ }
110109
+ set IsServerSet(value) {
110110
+ this.Set('IsServerSet', value);
110111
+ }
110112
+ /**
106788
110113
  * * Field Name: Query
106789
110114
  * * Display Name: Query
106790
110115
  * * SQL Data Type: nvarchar(255)
@@ -110420,6 +113745,7 @@ let MJRecordProcessEntity = class MJRecordProcessEntity extends BaseEntity {
110420
113745
  * * FieldRules
110421
113746
  * * Infer
110422
113747
  * * ML Model
113748
+ * * Pipeline Stage
110423
113749
  * * Description: Whether the work is an Action, an Agent, or an Infer (per-record AI Prompt). Agents are dispatched through the Execute Agent action and must be top-level + ExposeAsAction; Infer runs the AI Prompt named by PromptID for each record and writes its structured output back via OutputMapping.
110424
113750
  */
110425
113751
  get WorkType() {
@@ -128899,6 +132225,100 @@ let MJUserViewEntity = class MJUserViewEntity extends BaseEntity {
128899
132225
  this.Set('ViewTypeID', value);
128900
132226
  }
128901
132227
  /**
132228
+ * * Field Name: Properties
132229
+ * * Display Name: Properties
132230
+ * * SQL Data Type: nvarchar(MAX)
132231
+ * * JSON Type: Array<MJUserViewEntity_IUserViewProperty>
132232
+ * * Description: JSON array of the view's declared properties: named, typed inputs, each of which adds one predicate on a target field when a run gives it a value or it has a default. A property with AllowOverride false may be set only by server code. Null for a view with no properties.
132233
+ */
132234
+ get Properties() {
132235
+ return this.Get('Properties');
132236
+ }
132237
+ set Properties(value) {
132238
+ this.Set('Properties', value);
132239
+ }
132240
+ /**
132241
+ * Typed accessor for Properties — a live view of the parsed JSON as Array<MJUserViewEntity_IUserViewProperty>.
132242
+ * Edits made through it, at any depth (`obj.a.b = 1`, `arr.push(x)`, `delete obj.k`), update the
132243
+ * underlying Properties field, so it becomes dirty and Save() persists them. If the raw value changes by
132244
+ * any other route (Load, Set, revert) the next read re-parses, and objects obtained earlier are
132245
+ * detached: writing through one throws. To clone, structuredClone or postMessage the value use
132246
+ * ToPlainJSON() from @memberjunction/core.
132247
+ */
132248
+ get PropertiesObject() {
132249
+ return this.GetJSONFieldObject('Properties');
132250
+ }
132251
+ set PropertiesObject(value) {
132252
+ this.SetJSONFieldObject('Properties', value);
132253
+ }
132254
+ /**
132255
+ * * Field Name: ApprovalStatus
132256
+ * * Display Name: Approval Status
132257
+ * * SQL Data Type: nvarchar(20)
132258
+ * * Default Value: Pending
132259
+ * * Value List Type: List
132260
+ * * Possible Values
132261
+ * * Approved
132262
+ * * Pending
132263
+ * * Rejected
132264
+ * * Description: Whether this view's definition is approved: Pending, Approved or Rejected. An approval is current only while ApprovedFingerprint matches the current definition.
132265
+ */
132266
+ get ApprovalStatus() {
132267
+ return this.Get('ApprovalStatus');
132268
+ }
132269
+ set ApprovalStatus(value) {
132270
+ this.Set('ApprovalStatus', value);
132271
+ }
132272
+ /**
132273
+ * * Field Name: ApprovalComments
132274
+ * * Display Name: Approval Comments
132275
+ * * SQL Data Type: nvarchar(MAX)
132276
+ * * Description: Reviewer comments recorded with the approval decision, such as the tests the definition passed.
132277
+ */
132278
+ get ApprovalComments() {
132279
+ return this.Get('ApprovalComments');
132280
+ }
132281
+ set ApprovalComments(value) {
132282
+ this.Set('ApprovalComments', value);
132283
+ }
132284
+ /**
132285
+ * * Field Name: ApprovedByUserID
132286
+ * * Display Name: Approved By User ID
132287
+ * * SQL Data Type: uniqueidentifier
132288
+ * * Related Entity/Foreign Key: MJ: Users (vwUsers.ID)
132289
+ * * Description: The user who approved this view.
132290
+ */
132291
+ get ApprovedByUserID() {
132292
+ return this.Get('ApprovedByUserID');
132293
+ }
132294
+ set ApprovedByUserID(value) {
132295
+ this.Set('ApprovedByUserID', value);
132296
+ }
132297
+ /**
132298
+ * * Field Name: ApprovedAt
132299
+ * * Display Name: Approved At
132300
+ * * SQL Data Type: datetimeoffset
132301
+ * * Description: When this view was approved.
132302
+ */
132303
+ get ApprovedAt() {
132304
+ return this.Get('ApprovedAt');
132305
+ }
132306
+ set ApprovedAt(value) {
132307
+ this.Set('ApprovedAt', value);
132308
+ }
132309
+ /**
132310
+ * * Field Name: ApprovedFingerprint
132311
+ * * Display Name: Approved Fingerprint
132312
+ * * SQL Data Type: nvarchar(100)
132313
+ * * Description: SHA-256 fingerprint of the definition that was approved: its entity, filters and properties. The approval is current only while this matches the fingerprint of the current definition.
132314
+ */
132315
+ get ApprovedFingerprint() {
132316
+ return this.Get('ApprovedFingerprint');
132317
+ }
132318
+ set ApprovedFingerprint(value) {
132319
+ this.Set('ApprovedFingerprint', value);
132320
+ }
132321
+ /**
128902
132322
  * * Field Name: UserName
128903
132323
  * * Display Name: User Name
128904
132324
  * * SQL Data Type: nvarchar(100)