@memberjunction/server 5.34.1 → 5.35.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -10270,7 +10270,7 @@ __decorate([
10270
10270
  __metadata("design:type", Number)
10271
10271
  ], MJAIAgentRunStep_.prototype, "StepNumber", void 0);
10272
10272
  __decorate([
10273
- Field({ description: `Type of execution step: Prompt, Actions, Sub-Agent, Decision, Chat, Validation` }),
10273
+ Field({ description: `Type of execution step: Prompt, Actions, Sub-Agent, Decision, Chat, Validation, ForEach, While, Tool` }),
10274
10274
  MaxLength(50),
10275
10275
  __metadata("design:type", String)
10276
10276
  ], MJAIAgentRunStep_.prototype, "StepType", void 0);
@@ -13586,6 +13586,10 @@ __decorate([
13586
13586
  MaxLength(20),
13587
13587
  __metadata("design:type", String)
13588
13588
  ], MJAIAgent_.prototype, "SearchScopeAccess", void 0);
13589
+ __decorate([
13590
+ Field(() => Boolean, { description: `Per-agent opt-in to a Generic Binary fallback for file uploads whose MIME type does not match any registered Artifact Type. When false (default), unrecognized uploads are rejected at upload time with an actionable error. When true, unrecognized uploads resolve to the Generic Binary artifact type, exposing only get_full and get_metadata tools. Scoped per agent — there is no system-wide global flag.` }),
13591
+ __metadata("design:type", Boolean)
13592
+ ], MJAIAgent_.prototype, "AcceptUnregisteredFiles", void 0);
13589
13593
  __decorate([
13590
13594
  Field({ nullable: true }),
13591
13595
  MaxLength(255),
@@ -13996,6 +14000,10 @@ __decorate([
13996
14000
  Field({ nullable: true }),
13997
14001
  __metadata("design:type", String)
13998
14002
  ], CreateMJAIAgentInput.prototype, "SearchScopeAccess", void 0);
14003
+ __decorate([
14004
+ Field(() => Boolean, { nullable: true }),
14005
+ __metadata("design:type", Boolean)
14006
+ ], CreateMJAIAgentInput.prototype, "AcceptUnregisteredFiles", void 0);
13999
14007
  __decorate([
14000
14008
  Field(() => RestoreContextInput, { nullable: true }),
14001
14009
  __metadata("design:type", RestoreContextInput)
@@ -14261,6 +14269,10 @@ __decorate([
14261
14269
  Field({ nullable: true }),
14262
14270
  __metadata("design:type", String)
14263
14271
  ], UpdateMJAIAgentInput.prototype, "SearchScopeAccess", void 0);
14272
+ __decorate([
14273
+ Field(() => Boolean, { nullable: true }),
14274
+ __metadata("design:type", Boolean)
14275
+ ], UpdateMJAIAgentInput.prototype, "AcceptUnregisteredFiles", void 0);
14264
14276
  __decorate([
14265
14277
  Field(() => [KeyValuePairInput], { nullable: true }),
14266
14278
  __metadata("design:type", Array)
@@ -31223,6 +31235,19 @@ __decorate([
31223
31235
  MaxLength(100),
31224
31236
  __metadata("design:type", String)
31225
31237
  ], MJArtifactType_.prototype, "ToolLibraryClass", void 0);
31238
+ __decorate([
31239
+ Field(() => Int, { description: `Deterministic tiebreaker when multiple Artifact Types match the same MIME pattern. Higher values win. Within a specificity tier (exact > subtype-wildcard), the resolver sorts by Priority desc, then SystemSupplied = false beats SystemSupplied = true, then lowest ID wins.` }),
31240
+ __metadata("design:type", Number)
31241
+ ], MJArtifactType_.prototype, "Priority", void 0);
31242
+ __decorate([
31243
+ Field({ description: `How artifacts of this type are delivered to the LLM by default. Inline: emitted as an inline content block (image_url, audio_url, small text, etc.) when the model supports the modality and the size is under the inline cap. ToolsOnly: never inlined; the agent reaches the bytes only through tool calls (get_full, library-specific tools). Per-instance override is one-way via ConversationArtifactVersion.ForceToolsOnly — an instance can opt out of inline but never opt in when the type default is ToolsOnly.` }),
31244
+ MaxLength(20),
31245
+ __metadata("design:type", String)
31246
+ ], MJArtifactType_.prototype, "DefaultDeliveryMode", void 0);
31247
+ __decorate([
31248
+ Field(() => Boolean, { description: `True for Artifact Types shipped as part of the MemberJunction default registry (JSON, PDF, Office variants, Image/Audio/Video, Generic Text, Generic Binary). False for user/org-supplied customizations. Used as a tiebreaker in MIME pattern resolution: user customizations win over shipped defaults at equal Priority.` }),
31249
+ __metadata("design:type", Boolean)
31250
+ ], MJArtifactType_.prototype, "SystemSupplied", void 0);
31226
31251
  __decorate([
31227
31252
  Field({ nullable: true }),
31228
31253
  MaxLength(100),
@@ -31306,6 +31331,18 @@ __decorate([
31306
31331
  Field({ nullable: true }),
31307
31332
  __metadata("design:type", String)
31308
31333
  ], CreateMJArtifactTypeInput.prototype, "ToolLibraryClass", void 0);
31334
+ __decorate([
31335
+ Field(() => Int, { nullable: true }),
31336
+ __metadata("design:type", Number)
31337
+ ], CreateMJArtifactTypeInput.prototype, "Priority", void 0);
31338
+ __decorate([
31339
+ Field({ nullable: true }),
31340
+ __metadata("design:type", String)
31341
+ ], CreateMJArtifactTypeInput.prototype, "DefaultDeliveryMode", void 0);
31342
+ __decorate([
31343
+ Field(() => Boolean, { nullable: true }),
31344
+ __metadata("design:type", Boolean)
31345
+ ], CreateMJArtifactTypeInput.prototype, "SystemSupplied", void 0);
31309
31346
  __decorate([
31310
31347
  Field(() => RestoreContextInput, { nullable: true }),
31311
31348
  __metadata("design:type", RestoreContextInput)
@@ -31363,6 +31400,18 @@ __decorate([
31363
31400
  Field({ nullable: true }),
31364
31401
  __metadata("design:type", String)
31365
31402
  ], UpdateMJArtifactTypeInput.prototype, "ToolLibraryClass", void 0);
31403
+ __decorate([
31404
+ Field(() => Int, { nullable: true }),
31405
+ __metadata("design:type", Number)
31406
+ ], UpdateMJArtifactTypeInput.prototype, "Priority", void 0);
31407
+ __decorate([
31408
+ Field({ nullable: true }),
31409
+ __metadata("design:type", String)
31410
+ ], UpdateMJArtifactTypeInput.prototype, "DefaultDeliveryMode", void 0);
31411
+ __decorate([
31412
+ Field(() => Boolean, { nullable: true }),
31413
+ __metadata("design:type", Boolean)
31414
+ ], UpdateMJArtifactTypeInput.prototype, "SystemSupplied", void 0);
31366
31415
  __decorate([
31367
31416
  Field(() => [KeyValuePairInput], { nullable: true }),
31368
31417
  __metadata("design:type", Array)
@@ -32215,6 +32264,10 @@ __decorate([
32215
32264
  Field(() => Int, { nullable: true, description: `Size of the stored file in bytes. Denormalized for display without loading the file. Only populated when ContentMode is 'File'.` }),
32216
32265
  __metadata("design:type", Number)
32217
32266
  ], MJArtifactVersion_.prototype, "ContentSizeBytes", void 0);
32267
+ __decorate([
32268
+ Field(() => Boolean, { description: `One-way override that forces this artifact version to be delivered via tools regardless of the Artifact Type's DefaultDeliveryMode. When true, the resolver never emits an inline content block for this version. There is no inverse override — an instance cannot be widened from ToolsOnly to Inline. Default false.` }),
32269
+ __metadata("design:type", Boolean)
32270
+ ], MJArtifactVersion_.prototype, "ForceToolsOnly", void 0);
32218
32271
  __decorate([
32219
32272
  Field(),
32220
32273
  MaxLength(255),
@@ -32246,6 +32299,10 @@ __decorate([
32246
32299
  Field(() => [MJConversationDetailArtifact_]),
32247
32300
  __metadata("design:type", Array)
32248
32301
  ], MJArtifactVersion_.prototype, "MJConversationDetailArtifacts_ArtifactVersionIDArray", void 0);
32302
+ __decorate([
32303
+ Field(() => [MJConversationDetailAttachment_]),
32304
+ __metadata("design:type", Array)
32305
+ ], MJArtifactVersion_.prototype, "MJConversationDetailAttachments_ArtifactVersionIDArray", void 0);
32249
32306
  MJArtifactVersion_ = __decorate([
32250
32307
  ObjectType({ description: `Version history for artifacts, tracking all changes over time` })
32251
32308
  ], MJArtifactVersion_);
@@ -32315,6 +32372,10 @@ __decorate([
32315
32372
  Field(() => Int, { nullable: true }),
32316
32373
  __metadata("design:type", Number)
32317
32374
  ], CreateMJArtifactVersionInput.prototype, "ContentSizeBytes", void 0);
32375
+ __decorate([
32376
+ Field(() => Boolean, { nullable: true }),
32377
+ __metadata("design:type", Boolean)
32378
+ ], CreateMJArtifactVersionInput.prototype, "ForceToolsOnly", void 0);
32318
32379
  __decorate([
32319
32380
  Field(() => RestoreContextInput, { nullable: true }),
32320
32381
  __metadata("design:type", RestoreContextInput)
@@ -32388,6 +32449,10 @@ __decorate([
32388
32449
  Field(() => Int, { nullable: true }),
32389
32450
  __metadata("design:type", Number)
32390
32451
  ], UpdateMJArtifactVersionInput.prototype, "ContentSizeBytes", void 0);
32452
+ __decorate([
32453
+ Field(() => Boolean, { nullable: true }),
32454
+ __metadata("design:type", Boolean)
32455
+ ], UpdateMJArtifactVersionInput.prototype, "ForceToolsOnly", void 0);
32391
32456
  __decorate([
32392
32457
  Field(() => [KeyValuePairInput], { nullable: true }),
32393
32458
  __metadata("design:type", Array)
@@ -32491,6 +32556,14 @@ let MJArtifactVersionResolver = class MJArtifactVersionResolver extends Resolver
32491
32556
  const result = await this.ArrayMapFieldNamesToCodeNames('MJ: Conversation Detail Artifacts', rows, this.GetUserFromPayload(userPayload));
32492
32557
  return result;
32493
32558
  }
32559
+ async MJConversationDetailAttachments_ArtifactVersionIDArray(mjartifactversion_, { userPayload, providers }, pubSub) {
32560
+ this.CheckUserReadPermissions('MJ: Conversation Detail Attachments', userPayload);
32561
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
32562
+ const sSQL = `SELECT * FROM ${provider.QuoteSchemaAndView(Metadata.Provider.ConfigData.MJCoreSchemaName, 'vwConversationDetailAttachments')} WHERE ${provider.QuoteIdentifier('ArtifactVersionID')}='${mjartifactversion_.ID}' ` + this.getRowLevelSecurityWhereClause(provider, 'MJ: Conversation Detail Attachments', userPayload, EntityPermissionType.Read, 'AND');
32563
+ const rows = await provider.ExecuteSQL(sSQL, undefined, undefined, this.GetUserFromPayload(userPayload));
32564
+ const result = await this.ArrayMapFieldNamesToCodeNames('MJ: Conversation Detail Attachments', rows, this.GetUserFromPayload(userPayload));
32565
+ return result;
32566
+ }
32494
32567
  async CreateMJArtifactVersion(input, { providers, userPayload }, pubSub) {
32495
32568
  const provider = GetReadWriteProvider(providers);
32496
32569
  return this.CreateRecord('MJ: Artifact Versions', input, provider, userPayload, pubSub);
@@ -32577,6 +32650,15 @@ __decorate([
32577
32650
  __metadata("design:paramtypes", [MJArtifactVersion_, Object, PubSubEngine]),
32578
32651
  __metadata("design:returntype", Promise)
32579
32652
  ], MJArtifactVersionResolver.prototype, "MJConversationDetailArtifacts_ArtifactVersionIDArray", null);
32653
+ __decorate([
32654
+ FieldResolver(() => [MJConversationDetailAttachment_]),
32655
+ __param(0, Root()),
32656
+ __param(1, Ctx()),
32657
+ __param(2, PubSub()),
32658
+ __metadata("design:type", Function),
32659
+ __metadata("design:paramtypes", [MJArtifactVersion_, Object, PubSubEngine]),
32660
+ __metadata("design:returntype", Promise)
32661
+ ], MJArtifactVersionResolver.prototype, "MJConversationDetailAttachments_ArtifactVersionIDArray", null);
32580
32662
  __decorate([
32581
32663
  Mutation(() => MJArtifactVersion_),
32582
32664
  __param(0, Arg('input', () => CreateMJArtifactVersionInput)),
@@ -47694,6 +47776,11 @@ __decorate([
47694
47776
  Field({ nullable: true, description: `Description of the attachment providing context about its content and purpose.` }),
47695
47777
  __metadata("design:type", String)
47696
47778
  ], MJConversationDetailAttachment_.prototype, "Description", void 0);
47779
+ __decorate([
47780
+ Field({ nullable: true, description: `Foreign key to the ArtifactVersion created alongside this attachment by the storage-unification path. When set, the agent resolver routes via the artifact path (manifest + tool dispatch) and skips inline embedding of the attachment to avoid double-processing. NULL for pre-v5.35 attachment rows authored before storage unification.` }),
47781
+ MaxLength(36),
47782
+ __metadata("design:type", String)
47783
+ ], MJConversationDetailAttachment_.prototype, "ArtifactVersionID", void 0);
47697
47784
  __decorate([
47698
47785
  Field(),
47699
47786
  __metadata("design:type", String)
@@ -47708,6 +47795,11 @@ __decorate([
47708
47795
  MaxLength(500),
47709
47796
  __metadata("design:type", String)
47710
47797
  ], MJConversationDetailAttachment_.prototype, "File", void 0);
47798
+ __decorate([
47799
+ Field({ nullable: true }),
47800
+ MaxLength(255),
47801
+ __metadata("design:type", String)
47802
+ ], MJConversationDetailAttachment_.prototype, "ArtifactVersion", void 0);
47711
47803
  MJConversationDetailAttachment_ = __decorate([
47712
47804
  ObjectType({ description: `Stores attachments (images, videos, audio, documents) for conversation messages. Supports both inline base64 storage for small files and reference to MJStorage for large files.` })
47713
47805
  ], MJConversationDetailAttachment_);
@@ -47773,6 +47865,10 @@ __decorate([
47773
47865
  Field({ nullable: true }),
47774
47866
  __metadata("design:type", String)
47775
47867
  ], CreateMJConversationDetailAttachmentInput.prototype, "Description", void 0);
47868
+ __decorate([
47869
+ Field({ nullable: true }),
47870
+ __metadata("design:type", String)
47871
+ ], CreateMJConversationDetailAttachmentInput.prototype, "ArtifactVersionID", void 0);
47776
47872
  __decorate([
47777
47873
  Field(() => RestoreContextInput, { nullable: true }),
47778
47874
  __metadata("design:type", RestoreContextInput)
@@ -47842,6 +47938,10 @@ __decorate([
47842
47938
  Field({ nullable: true }),
47843
47939
  __metadata("design:type", String)
47844
47940
  ], UpdateMJConversationDetailAttachmentInput.prototype, "Description", void 0);
47941
+ __decorate([
47942
+ Field({ nullable: true }),
47943
+ __metadata("design:type", String)
47944
+ ], UpdateMJConversationDetailAttachmentInput.prototype, "ArtifactVersionID", void 0);
47845
47945
  __decorate([
47846
47946
  Field(() => [KeyValuePairInput], { nullable: true }),
47847
47947
  __metadata("design:type", Array)
@@ -88654,7 +88754,7 @@ __decorate([
88654
88754
  __metadata("design:type", Date)
88655
88755
  ], MJRecordGeoCode_.prototype, "GeocodedAt", void 0);
88656
88756
  __decorate([
88657
- Field({ nullable: true, description: `How this geocode was produced: google (Google Geocoding API), reference_data (resolved via Country/StateProvince tables), manual (user-entered), ip_geolocation (IP lookup), native (copied from entity lat/lng fields), reverse (reverse geocode from coordinates).` }),
88757
+ Field({ nullable: true, description: `Source that produced this geocode. One of: google, geocodio, here, reference_data, manual, ip_geolocation, native, reverse.` }),
88658
88758
  MaxLength(30),
88659
88759
  __metadata("design:type", String)
88660
88760
  ], MJRecordGeoCode_.prototype, "GeocodingSource", void 0);