@memberjunction/server 5.49.0 → 5.50.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.
@@ -11861,10 +11861,6 @@ __decorate([
11861
11861
  Field(() => [MJAIAgentRequest_]),
11862
11862
  __metadata("design:type", Array)
11863
11863
  ], MJAIAgentRun_.prototype, "MJAIAgentRequests_ResumingAgentRunIDArray", void 0);
11864
- __decorate([
11865
- Field(() => [MJAIPromptRun_]),
11866
- __metadata("design:type", Array)
11867
- ], MJAIAgentRun_.prototype, "MJAIPromptRuns_AgentRunIDArray", void 0);
11868
11864
  __decorate([
11869
11865
  Field(() => [MJAIAgentRun_]),
11870
11866
  __metadata("design:type", Array)
@@ -12430,14 +12426,6 @@ let MJAIAgentRunResolver = class MJAIAgentRunResolver extends ResolverBase {
12430
12426
  const result = await this.ArrayMapFieldNamesToCodeNames('MJ: AI Agent Requests', rows, this.GetUserFromPayload(userPayload));
12431
12427
  return result;
12432
12428
  }
12433
- async MJAIPromptRuns_AgentRunIDArray(mjaiagentrun_, { userPayload, providers }, pubSub) {
12434
- this.CheckUserReadPermissions('MJ: AI Prompt Runs', userPayload);
12435
- const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
12436
- const sSQL = `SELECT * FROM ${provider.QuoteSchemaAndView(Metadata.Provider.ConfigData.MJCoreSchemaName, 'vwAIPromptRuns')} WHERE ${provider.QuoteIdentifier('AgentRunID')}=${provider.BuildParameterPlaceholder(0)} ` + this.getRowLevelSecurityWhereClause(provider, 'MJ: AI Prompt Runs', userPayload, EntityPermissionType.Read, 'AND');
12437
- const rows = await provider.ExecuteSQL(sSQL, [mjaiagentrun_.ID], undefined, this.GetUserFromPayload(userPayload));
12438
- const result = await this.ArrayMapFieldNamesToCodeNames('MJ: AI Prompt Runs', rows, this.GetUserFromPayload(userPayload));
12439
- return result;
12440
- }
12441
12429
  async MJAIAgentRuns_LastRunIDArray(mjaiagentrun_, { userPayload, providers }, pubSub) {
12442
12430
  this.CheckUserReadPermissions('MJ: AI Agent Runs', userPayload);
12443
12431
  const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
@@ -12599,15 +12587,6 @@ __decorate([
12599
12587
  __metadata("design:paramtypes", [MJAIAgentRun_, Object, PubSubEngine]),
12600
12588
  __metadata("design:returntype", Promise)
12601
12589
  ], MJAIAgentRunResolver.prototype, "MJAIAgentRequests_ResumingAgentRunIDArray", null);
12602
- __decorate([
12603
- FieldResolver(() => [MJAIPromptRun_]),
12604
- __param(0, Root()),
12605
- __param(1, Ctx()),
12606
- __param(2, PubSub()),
12607
- __metadata("design:type", Function),
12608
- __metadata("design:paramtypes", [MJAIAgentRun_, Object, PubSubEngine]),
12609
- __metadata("design:returntype", Promise)
12610
- ], MJAIAgentRunResolver.prototype, "MJAIPromptRuns_AgentRunIDArray", null);
12611
12590
  __decorate([
12612
12591
  FieldResolver(() => [MJAIAgentRun_]),
12613
12592
  __param(0, Root()),
@@ -26085,11 +26064,6 @@ __decorate([
26085
26064
  Field(() => Int, { nullable: true, description: `Execution order for parallel child runs and result selector runs. Used to track the sequence of execution within a parallel run group. NULL for single runs and parallel parent runs.` }),
26086
26065
  __metadata("design:type", Number)
26087
26066
  ], MJAIPromptRun_.prototype, "ExecutionOrder", void 0);
26088
- __decorate([
26089
- Field({ nullable: true, description: `Optional reference to the AIAgentRun that initiated this prompt execution. Links prompt runs to their parent agent runs for comprehensive execution tracking.` }),
26090
- MaxLength(36),
26091
- __metadata("design:type", String)
26092
- ], MJAIPromptRun_.prototype, "AgentRunID", void 0);
26093
26067
  __decorate([
26094
26068
  Field(() => Float, { nullable: true, description: `The cost of this specific prompt execution as reported by the AI provider. This does not include costs from child executions. The currency is specified in CostCurrency field.` }),
26095
26069
  __metadata("design:type", Number)
@@ -26399,11 +26373,6 @@ __decorate([
26399
26373
  MaxLength(255),
26400
26374
  __metadata("design:type", String)
26401
26375
  ], MJAIPromptRun_.prototype, "Parent", void 0);
26402
- __decorate([
26403
- Field({ nullable: true }),
26404
- MaxLength(255),
26405
- __metadata("design:type", String)
26406
- ], MJAIPromptRun_.prototype, "AgentRun", void 0);
26407
26376
  __decorate([
26408
26377
  Field({ nullable: true }),
26409
26378
  MaxLength(50),
@@ -26472,9 +26441,9 @@ __decorate([
26472
26441
  __metadata("design:type", Array)
26473
26442
  ], MJAIPromptRun_.prototype, "MJUserRoutineRuns_PromptRunIDArray", void 0);
26474
26443
  __decorate([
26475
- Field(() => [MJConversationDetail_]),
26444
+ Field(() => [MJConversationCompactionRun_]),
26476
26445
  __metadata("design:type", Array)
26477
- ], MJAIPromptRun_.prototype, "MJConversationDetails_SummaryPromptRunIDArray", void 0);
26446
+ ], MJAIPromptRun_.prototype, "MJConversationCompactionRuns_PromptRunIDArray", void 0);
26478
26447
  MJAIPromptRun_ = __decorate([
26479
26448
  ObjectType({ description: `Tracks AI prompt executions including timings, inputs, outputs, and performance metrics.` })
26480
26449
  ], MJAIPromptRun_);
@@ -26564,10 +26533,6 @@ __decorate([
26564
26533
  Field(() => Int, { nullable: true }),
26565
26534
  __metadata("design:type", Number)
26566
26535
  ], CreateMJAIPromptRunInput.prototype, "ExecutionOrder", void 0);
26567
- __decorate([
26568
- Field({ nullable: true }),
26569
- __metadata("design:type", String)
26570
- ], CreateMJAIPromptRunInput.prototype, "AgentRunID", void 0);
26571
26536
  __decorate([
26572
26537
  Field(() => Float, { nullable: true }),
26573
26538
  __metadata("design:type", Number)
@@ -26925,10 +26890,6 @@ __decorate([
26925
26890
  Field(() => Int, { nullable: true }),
26926
26891
  __metadata("design:type", Number)
26927
26892
  ], UpdateMJAIPromptRunInput.prototype, "ExecutionOrder", void 0);
26928
- __decorate([
26929
- Field({ nullable: true }),
26930
- __metadata("design:type", String)
26931
- ], UpdateMJAIPromptRunInput.prototype, "AgentRunID", void 0);
26932
26893
  __decorate([
26933
26894
  Field(() => Float, { nullable: true }),
26934
26895
  __metadata("design:type", Number)
@@ -27328,12 +27289,12 @@ let MJAIPromptRunResolver = class MJAIPromptRunResolver extends ResolverBase {
27328
27289
  const result = await this.ArrayMapFieldNamesToCodeNames('MJ: User Routine Runs', rows, this.GetUserFromPayload(userPayload));
27329
27290
  return result;
27330
27291
  }
27331
- async MJConversationDetails_SummaryPromptRunIDArray(mjaipromptrun_, { userPayload, providers }, pubSub) {
27332
- this.CheckUserReadPermissions('MJ: Conversation Details', userPayload);
27292
+ async MJConversationCompactionRuns_PromptRunIDArray(mjaipromptrun_, { userPayload, providers }, pubSub) {
27293
+ this.CheckUserReadPermissions('MJ: Conversation Compaction Runs', userPayload);
27333
27294
  const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
27334
- const sSQL = `SELECT * FROM ${provider.QuoteSchemaAndView(Metadata.Provider.ConfigData.MJCoreSchemaName, 'vwConversationDetails')} WHERE ${provider.QuoteIdentifier('SummaryPromptRunID')}=${provider.BuildParameterPlaceholder(0)} ` + this.getRowLevelSecurityWhereClause(provider, 'MJ: Conversation Details', userPayload, EntityPermissionType.Read, 'AND');
27295
+ const sSQL = `SELECT * FROM ${provider.QuoteSchemaAndView(Metadata.Provider.ConfigData.MJCoreSchemaName, 'vwConversationCompactionRuns')} WHERE ${provider.QuoteIdentifier('PromptRunID')}=${provider.BuildParameterPlaceholder(0)} ` + this.getRowLevelSecurityWhereClause(provider, 'MJ: Conversation Compaction Runs', userPayload, EntityPermissionType.Read, 'AND');
27335
27296
  const rows = await provider.ExecuteSQL(sSQL, [mjaipromptrun_.ID], undefined, this.GetUserFromPayload(userPayload));
27336
- const result = await this.ArrayMapFieldNamesToCodeNames('MJ: Conversation Details', rows, this.GetUserFromPayload(userPayload));
27297
+ const result = await this.ArrayMapFieldNamesToCodeNames('MJ: Conversation Compaction Runs', rows, this.GetUserFromPayload(userPayload));
27337
27298
  return result;
27338
27299
  }
27339
27300
  async CreateMJAIPromptRun(input, { providers, userPayload }, pubSub) {
@@ -27459,14 +27420,14 @@ __decorate([
27459
27420
  __metadata("design:returntype", Promise)
27460
27421
  ], MJAIPromptRunResolver.prototype, "MJUserRoutineRuns_PromptRunIDArray", null);
27461
27422
  __decorate([
27462
- FieldResolver(() => [MJConversationDetail_]),
27423
+ FieldResolver(() => [MJConversationCompactionRun_]),
27463
27424
  __param(0, Root()),
27464
27425
  __param(1, Ctx()),
27465
27426
  __param(2, PubSub()),
27466
27427
  __metadata("design:type", Function),
27467
27428
  __metadata("design:paramtypes", [MJAIPromptRun_, Object, PubSubEngine]),
27468
27429
  __metadata("design:returntype", Promise)
27469
- ], MJAIPromptRunResolver.prototype, "MJConversationDetails_SummaryPromptRunIDArray", null);
27430
+ ], MJAIPromptRunResolver.prototype, "MJConversationCompactionRuns_PromptRunIDArray", null);
27470
27431
  __decorate([
27471
27432
  Mutation(() => MJAIPromptRun_),
27472
27433
  __param(0, Arg('input', () => CreateMJAIPromptRunInput)),
@@ -30303,6 +30264,304 @@ MJAISkillPermissionResolver = __decorate([
30303
30264
  ], MJAISkillPermissionResolver);
30304
30265
  export { MJAISkillPermissionResolver };
30305
30266
  //****************************************************************************
30267
+ // ENTITY CLASS for MJ: AI Skill Search Scopes
30268
+ //****************************************************************************
30269
+ let MJAISkillSearchScope_ = class MJAISkillSearchScope_ {
30270
+ };
30271
+ __decorate([
30272
+ Field(),
30273
+ MaxLength(36),
30274
+ __metadata("design:type", String)
30275
+ ], MJAISkillSearchScope_.prototype, "ID", void 0);
30276
+ __decorate([
30277
+ Field({ description: `The skill this grant belongs to.` }),
30278
+ MaxLength(36),
30279
+ __metadata("design:type", String)
30280
+ ], MJAISkillSearchScope_.prototype, "SkillID", void 0);
30281
+ __decorate([
30282
+ Field({ description: `The Search Scope this skill may reach.` }),
30283
+ MaxLength(36),
30284
+ __metadata("design:type", String)
30285
+ ], MJAISkillSearchScope_.prototype, "SearchScopeID", void 0);
30286
+ __decorate([
30287
+ Field({ description: `Active or Inactive. Inactive rows are ignored during resolution.` }),
30288
+ MaxLength(20),
30289
+ __metadata("design:type", String)
30290
+ ], MJAISkillSearchScope_.prototype, "Status", void 0);
30291
+ __decorate([
30292
+ Field({ nullable: true, description: `Optional start of the window in which this grant is honoured. NULL = no lower bound. Evaluated against the current time on every resolution, so a window opening or closing needs no cache invalidation.` }),
30293
+ __metadata("design:type", Date)
30294
+ ], MJAISkillSearchScope_.prototype, "StartAt", void 0);
30295
+ __decorate([
30296
+ Field({ nullable: true, description: `Optional end of the window in which this grant is honoured. NULL = no upper bound.` }),
30297
+ __metadata("design:type", Date)
30298
+ ], MJAISkillSearchScope_.prototype, "EndAt", void 0);
30299
+ __decorate([
30300
+ Field(() => Int, { nullable: true, description: `Lower numbers win when several granted scopes are candidates and none is marked IsDefault.` }),
30301
+ __metadata("design:type", Number)
30302
+ ], MJAISkillSearchScope_.prototype, "Priority", void 0);
30303
+ __decorate([
30304
+ Field(() => Boolean, { description: `When set, this scope is chosen for the skill ahead of Priority ordering.` }),
30305
+ __metadata("design:type", Boolean)
30306
+ ], MJAISkillSearchScope_.prototype, "IsDefault", void 0);
30307
+ __decorate([
30308
+ Field(),
30309
+ __metadata("design:type", Date)
30310
+ ], MJAISkillSearchScope_.prototype, "_mj__CreatedAt", void 0);
30311
+ __decorate([
30312
+ Field(),
30313
+ __metadata("design:type", Date)
30314
+ ], MJAISkillSearchScope_.prototype, "_mj__UpdatedAt", void 0);
30315
+ __decorate([
30316
+ Field(),
30317
+ MaxLength(255),
30318
+ __metadata("design:type", String)
30319
+ ], MJAISkillSearchScope_.prototype, "Skill", void 0);
30320
+ __decorate([
30321
+ Field(),
30322
+ MaxLength(200),
30323
+ __metadata("design:type", String)
30324
+ ], MJAISkillSearchScope_.prototype, "SearchScope", void 0);
30325
+ MJAISkillSearchScope_ = __decorate([
30326
+ ObjectType({ description: `Search Scopes an AI Skill may reach when activated, honoured when AISkill.SearchScopeAccess = \'Assigned\'. Mirrors AIAgentSearchScope: Status plus an optional StartAt/EndAt window time-box a grant, and Priority/IsDefault pick among several. An empty table means no skill grants any scope - the pre-migration behaviour.` })
30327
+ ], MJAISkillSearchScope_);
30328
+ export { MJAISkillSearchScope_ };
30329
+ //****************************************************************************
30330
+ // INPUT TYPE for MJ: AI Skill Search Scopes
30331
+ //****************************************************************************
30332
+ let CreateMJAISkillSearchScopeInput = class CreateMJAISkillSearchScopeInput {
30333
+ };
30334
+ __decorate([
30335
+ Field({ nullable: true }),
30336
+ __metadata("design:type", String)
30337
+ ], CreateMJAISkillSearchScopeInput.prototype, "ID", void 0);
30338
+ __decorate([
30339
+ Field({ nullable: true }),
30340
+ __metadata("design:type", String)
30341
+ ], CreateMJAISkillSearchScopeInput.prototype, "SkillID", void 0);
30342
+ __decorate([
30343
+ Field({ nullable: true }),
30344
+ __metadata("design:type", String)
30345
+ ], CreateMJAISkillSearchScopeInput.prototype, "SearchScopeID", void 0);
30346
+ __decorate([
30347
+ Field({ nullable: true }),
30348
+ __metadata("design:type", String)
30349
+ ], CreateMJAISkillSearchScopeInput.prototype, "Status", void 0);
30350
+ __decorate([
30351
+ Field({ nullable: true }),
30352
+ __metadata("design:type", Date)
30353
+ ], CreateMJAISkillSearchScopeInput.prototype, "StartAt", void 0);
30354
+ __decorate([
30355
+ Field({ nullable: true }),
30356
+ __metadata("design:type", Date)
30357
+ ], CreateMJAISkillSearchScopeInput.prototype, "EndAt", void 0);
30358
+ __decorate([
30359
+ Field(() => Int, { nullable: true }),
30360
+ __metadata("design:type", Number)
30361
+ ], CreateMJAISkillSearchScopeInput.prototype, "Priority", void 0);
30362
+ __decorate([
30363
+ Field(() => Boolean, { nullable: true }),
30364
+ __metadata("design:type", Boolean)
30365
+ ], CreateMJAISkillSearchScopeInput.prototype, "IsDefault", void 0);
30366
+ __decorate([
30367
+ Field(() => RestoreContextInput, { nullable: true }),
30368
+ __metadata("design:type", RestoreContextInput)
30369
+ ], CreateMJAISkillSearchScopeInput.prototype, "RestoreContext___", void 0);
30370
+ CreateMJAISkillSearchScopeInput = __decorate([
30371
+ InputType()
30372
+ ], CreateMJAISkillSearchScopeInput);
30373
+ export { CreateMJAISkillSearchScopeInput };
30374
+ //****************************************************************************
30375
+ // INPUT TYPE for MJ: AI Skill Search Scopes
30376
+ //****************************************************************************
30377
+ let UpdateMJAISkillSearchScopeInput = class UpdateMJAISkillSearchScopeInput {
30378
+ };
30379
+ __decorate([
30380
+ Field(),
30381
+ __metadata("design:type", String)
30382
+ ], UpdateMJAISkillSearchScopeInput.prototype, "ID", void 0);
30383
+ __decorate([
30384
+ Field({ nullable: true }),
30385
+ __metadata("design:type", String)
30386
+ ], UpdateMJAISkillSearchScopeInput.prototype, "SkillID", void 0);
30387
+ __decorate([
30388
+ Field({ nullable: true }),
30389
+ __metadata("design:type", String)
30390
+ ], UpdateMJAISkillSearchScopeInput.prototype, "SearchScopeID", void 0);
30391
+ __decorate([
30392
+ Field({ nullable: true }),
30393
+ __metadata("design:type", String)
30394
+ ], UpdateMJAISkillSearchScopeInput.prototype, "Status", void 0);
30395
+ __decorate([
30396
+ Field({ nullable: true }),
30397
+ __metadata("design:type", Date)
30398
+ ], UpdateMJAISkillSearchScopeInput.prototype, "StartAt", void 0);
30399
+ __decorate([
30400
+ Field({ nullable: true }),
30401
+ __metadata("design:type", Date)
30402
+ ], UpdateMJAISkillSearchScopeInput.prototype, "EndAt", void 0);
30403
+ __decorate([
30404
+ Field(() => Int, { nullable: true }),
30405
+ __metadata("design:type", Number)
30406
+ ], UpdateMJAISkillSearchScopeInput.prototype, "Priority", void 0);
30407
+ __decorate([
30408
+ Field(() => Boolean, { nullable: true }),
30409
+ __metadata("design:type", Boolean)
30410
+ ], UpdateMJAISkillSearchScopeInput.prototype, "IsDefault", void 0);
30411
+ __decorate([
30412
+ Field(() => [KeyValuePairInput], { nullable: true }),
30413
+ __metadata("design:type", Array)
30414
+ ], UpdateMJAISkillSearchScopeInput.prototype, "OldValues___", void 0);
30415
+ __decorate([
30416
+ Field(() => RestoreContextInput, { nullable: true }),
30417
+ __metadata("design:type", RestoreContextInput)
30418
+ ], UpdateMJAISkillSearchScopeInput.prototype, "RestoreContext___", void 0);
30419
+ UpdateMJAISkillSearchScopeInput = __decorate([
30420
+ InputType()
30421
+ ], UpdateMJAISkillSearchScopeInput);
30422
+ export { UpdateMJAISkillSearchScopeInput };
30423
+ //****************************************************************************
30424
+ // RESOLVER for MJ: AI Skill Search Scopes
30425
+ //****************************************************************************
30426
+ let RunMJAISkillSearchScopeViewResult = class RunMJAISkillSearchScopeViewResult {
30427
+ };
30428
+ __decorate([
30429
+ Field(() => [MJAISkillSearchScope_]),
30430
+ __metadata("design:type", Array)
30431
+ ], RunMJAISkillSearchScopeViewResult.prototype, "Results", void 0);
30432
+ __decorate([
30433
+ Field(() => String, { nullable: true }),
30434
+ __metadata("design:type", String)
30435
+ ], RunMJAISkillSearchScopeViewResult.prototype, "UserViewRunID", void 0);
30436
+ __decorate([
30437
+ Field(() => Int, { nullable: true }),
30438
+ __metadata("design:type", Number)
30439
+ ], RunMJAISkillSearchScopeViewResult.prototype, "RowCount", void 0);
30440
+ __decorate([
30441
+ Field(() => Int, { nullable: true }),
30442
+ __metadata("design:type", Number)
30443
+ ], RunMJAISkillSearchScopeViewResult.prototype, "TotalRowCount", void 0);
30444
+ __decorate([
30445
+ Field(() => Int, { nullable: true }),
30446
+ __metadata("design:type", Number)
30447
+ ], RunMJAISkillSearchScopeViewResult.prototype, "ExecutionTime", void 0);
30448
+ __decorate([
30449
+ Field({ nullable: true }),
30450
+ __metadata("design:type", String)
30451
+ ], RunMJAISkillSearchScopeViewResult.prototype, "ErrorMessage", void 0);
30452
+ __decorate([
30453
+ Field(() => Boolean, { nullable: false }),
30454
+ __metadata("design:type", Boolean)
30455
+ ], RunMJAISkillSearchScopeViewResult.prototype, "Success", void 0);
30456
+ RunMJAISkillSearchScopeViewResult = __decorate([
30457
+ ObjectType()
30458
+ ], RunMJAISkillSearchScopeViewResult);
30459
+ export { RunMJAISkillSearchScopeViewResult };
30460
+ let MJAISkillSearchScopeResolver = class MJAISkillSearchScopeResolver extends ResolverBase {
30461
+ async RunMJAISkillSearchScopeViewByID(input, { providers, userPayload }, pubSub) {
30462
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
30463
+ return super.RunViewByIDGeneric(input, provider, userPayload, pubSub);
30464
+ }
30465
+ async RunMJAISkillSearchScopeViewByName(input, { providers, userPayload }, pubSub) {
30466
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
30467
+ return super.RunViewByNameGeneric(input, provider, userPayload, pubSub);
30468
+ }
30469
+ async RunMJAISkillSearchScopeDynamicView(input, { providers, userPayload }, pubSub) {
30470
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
30471
+ input.EntityName = 'MJ: AI Skill Search Scopes';
30472
+ return super.RunDynamicViewGeneric(input, provider, userPayload, pubSub);
30473
+ }
30474
+ async MJAISkillSearchScope(ID, { userPayload, providers }, pubSub) {
30475
+ this.CheckUserReadPermissions('MJ: AI Skill Search Scopes', userPayload);
30476
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
30477
+ const sSQL = `SELECT * FROM ${provider.QuoteSchemaAndView(Metadata.Provider.ConfigData.MJCoreSchemaName, 'vwAISkillSearchScopes')} WHERE ${provider.QuoteIdentifier('ID')}=${provider.BuildParameterPlaceholder(0)} ` + this.getRowLevelSecurityWhereClause(provider, 'MJ: AI Skill Search Scopes', userPayload, EntityPermissionType.Read, 'AND');
30478
+ const rows = await provider.ExecuteSQL(sSQL, [ID], undefined, this.GetUserFromPayload(userPayload));
30479
+ const result = await this.MapFieldNamesToCodeNames('MJ: AI Skill Search Scopes', rows && rows.length > 0 ? rows[0] : null, this.GetUserFromPayload(userPayload));
30480
+ return result;
30481
+ }
30482
+ async CreateMJAISkillSearchScope(input, { providers, userPayload }, pubSub) {
30483
+ const provider = GetReadWriteProvider(providers);
30484
+ return this.CreateRecord('MJ: AI Skill Search Scopes', input, provider, userPayload, pubSub);
30485
+ }
30486
+ async UpdateMJAISkillSearchScope(input, { providers, userPayload }, pubSub) {
30487
+ const provider = GetReadWriteProvider(providers);
30488
+ return this.UpdateRecord('MJ: AI Skill Search Scopes', input, provider, userPayload, pubSub);
30489
+ }
30490
+ async DeleteMJAISkillSearchScope(ID, options, { providers, userPayload }, pubSub) {
30491
+ const provider = GetReadWriteProvider(providers);
30492
+ const key = new CompositeKey([{ FieldName: 'ID', Value: ID }]);
30493
+ return this.DeleteRecord('MJ: AI Skill Search Scopes', key, options, provider, userPayload, pubSub);
30494
+ }
30495
+ };
30496
+ __decorate([
30497
+ Query(() => RunMJAISkillSearchScopeViewResult),
30498
+ __param(0, Arg('input', () => RunViewByIDInput)),
30499
+ __param(1, Ctx()),
30500
+ __param(2, PubSub()),
30501
+ __metadata("design:type", Function),
30502
+ __metadata("design:paramtypes", [RunViewByIDInput, Object, PubSubEngine]),
30503
+ __metadata("design:returntype", Promise)
30504
+ ], MJAISkillSearchScopeResolver.prototype, "RunMJAISkillSearchScopeViewByID", null);
30505
+ __decorate([
30506
+ Query(() => RunMJAISkillSearchScopeViewResult),
30507
+ __param(0, Arg('input', () => RunViewByNameInput)),
30508
+ __param(1, Ctx()),
30509
+ __param(2, PubSub()),
30510
+ __metadata("design:type", Function),
30511
+ __metadata("design:paramtypes", [RunViewByNameInput, Object, PubSubEngine]),
30512
+ __metadata("design:returntype", Promise)
30513
+ ], MJAISkillSearchScopeResolver.prototype, "RunMJAISkillSearchScopeViewByName", null);
30514
+ __decorate([
30515
+ Query(() => RunMJAISkillSearchScopeViewResult),
30516
+ __param(0, Arg('input', () => RunDynamicViewInput)),
30517
+ __param(1, Ctx()),
30518
+ __param(2, PubSub()),
30519
+ __metadata("design:type", Function),
30520
+ __metadata("design:paramtypes", [RunDynamicViewInput, Object, PubSubEngine]),
30521
+ __metadata("design:returntype", Promise)
30522
+ ], MJAISkillSearchScopeResolver.prototype, "RunMJAISkillSearchScopeDynamicView", null);
30523
+ __decorate([
30524
+ Query(() => MJAISkillSearchScope_, { nullable: true }),
30525
+ __param(0, Arg('ID', () => String)),
30526
+ __param(1, Ctx()),
30527
+ __param(2, PubSub()),
30528
+ __metadata("design:type", Function),
30529
+ __metadata("design:paramtypes", [String, Object, PubSubEngine]),
30530
+ __metadata("design:returntype", Promise)
30531
+ ], MJAISkillSearchScopeResolver.prototype, "MJAISkillSearchScope", null);
30532
+ __decorate([
30533
+ Mutation(() => MJAISkillSearchScope_),
30534
+ __param(0, Arg('input', () => CreateMJAISkillSearchScopeInput)),
30535
+ __param(1, Ctx()),
30536
+ __param(2, PubSub()),
30537
+ __metadata("design:type", Function),
30538
+ __metadata("design:paramtypes", [CreateMJAISkillSearchScopeInput, Object, PubSubEngine]),
30539
+ __metadata("design:returntype", Promise)
30540
+ ], MJAISkillSearchScopeResolver.prototype, "CreateMJAISkillSearchScope", null);
30541
+ __decorate([
30542
+ Mutation(() => MJAISkillSearchScope_),
30543
+ __param(0, Arg('input', () => UpdateMJAISkillSearchScopeInput)),
30544
+ __param(1, Ctx()),
30545
+ __param(2, PubSub()),
30546
+ __metadata("design:type", Function),
30547
+ __metadata("design:paramtypes", [UpdateMJAISkillSearchScopeInput, Object, PubSubEngine]),
30548
+ __metadata("design:returntype", Promise)
30549
+ ], MJAISkillSearchScopeResolver.prototype, "UpdateMJAISkillSearchScope", null);
30550
+ __decorate([
30551
+ Mutation(() => MJAISkillSearchScope_),
30552
+ __param(0, Arg('ID', () => String)),
30553
+ __param(1, Arg('options___', () => DeleteOptionsInput)),
30554
+ __param(2, Ctx()),
30555
+ __param(3, PubSub()),
30556
+ __metadata("design:type", Function),
30557
+ __metadata("design:paramtypes", [String, DeleteOptionsInput, Object, PubSubEngine]),
30558
+ __metadata("design:returntype", Promise)
30559
+ ], MJAISkillSearchScopeResolver.prototype, "DeleteMJAISkillSearchScope", null);
30560
+ MJAISkillSearchScopeResolver = __decorate([
30561
+ Resolver(MJAISkillSearchScope_)
30562
+ ], MJAISkillSearchScopeResolver);
30563
+ export { MJAISkillSearchScopeResolver };
30564
+ //****************************************************************************
30306
30565
  // ENTITY CLASS for MJ: AI Skill Sub Agents
30307
30566
  //****************************************************************************
30308
30567
  let MJAISkillSubAgent_ = class MJAISkillSubAgent_ {
@@ -30600,6 +30859,11 @@ __decorate([
30600
30859
  MaxLength(20),
30601
30860
  __metadata("design:type", String)
30602
30861
  ], MJAISkill_.prototype, "ActivationMode", void 0);
30862
+ __decorate([
30863
+ Field({ nullable: true, description: `Which Search Scopes this skill may reach when activated. None = grants no retrieval scope; Assigned = only scopes listed in AISkillSearchScope; All = any active scope. NULL behaves as None so existing skills are unaffected. Mirrors AIAgent.SearchScopeAccess so a skill and an agent are interchangeable principals to SearchScopePermissionResolver.` }),
30864
+ MaxLength(20),
30865
+ __metadata("design:type", String)
30866
+ ], MJAISkill_.prototype, "SearchScopeAccess", void 0);
30603
30867
  __decorate([
30604
30868
  Field(),
30605
30869
  MaxLength(100),
@@ -30621,6 +30885,14 @@ __decorate([
30621
30885
  Field(() => [MJAISkillPermission_]),
30622
30886
  __metadata("design:type", Array)
30623
30887
  ], MJAISkill_.prototype, "MJAISkillPermissions_SkillIDArray", void 0);
30888
+ __decorate([
30889
+ Field(() => [MJSearchExecutionLog_]),
30890
+ __metadata("design:type", Array)
30891
+ ], MJAISkill_.prototype, "MJSearchExecutionLogs_AISkillIDArray", void 0);
30892
+ __decorate([
30893
+ Field(() => [MJAISkillSearchScope_]),
30894
+ __metadata("design:type", Array)
30895
+ ], MJAISkill_.prototype, "MJAISkillSearchScopes_SkillIDArray", void 0);
30624
30896
  MJAISkill_ = __decorate([
30625
30897
  ObjectType()
30626
30898
  ], MJAISkill_);
@@ -30670,6 +30942,10 @@ __decorate([
30670
30942
  Field({ nullable: true }),
30671
30943
  __metadata("design:type", String)
30672
30944
  ], CreateMJAISkillInput.prototype, "ActivationMode", void 0);
30945
+ __decorate([
30946
+ Field({ nullable: true }),
30947
+ __metadata("design:type", String)
30948
+ ], CreateMJAISkillInput.prototype, "SearchScopeAccess", void 0);
30673
30949
  __decorate([
30674
30950
  Field(() => RestoreContextInput, { nullable: true }),
30675
30951
  __metadata("design:type", RestoreContextInput)
@@ -30723,6 +30999,10 @@ __decorate([
30723
30999
  Field({ nullable: true }),
30724
31000
  __metadata("design:type", String)
30725
31001
  ], UpdateMJAISkillInput.prototype, "ActivationMode", void 0);
31002
+ __decorate([
31003
+ Field({ nullable: true }),
31004
+ __metadata("design:type", String)
31005
+ ], UpdateMJAISkillInput.prototype, "SearchScopeAccess", void 0);
30726
31006
  __decorate([
30727
31007
  Field(() => [KeyValuePairInput], { nullable: true }),
30728
31008
  __metadata("design:type", Array)
@@ -30826,6 +31106,22 @@ let MJAISkillResolver = class MJAISkillResolver extends ResolverBase {
30826
31106
  const result = await this.ArrayMapFieldNamesToCodeNames('MJ: AI Skill Permissions', rows, this.GetUserFromPayload(userPayload));
30827
31107
  return result;
30828
31108
  }
31109
+ async MJSearchExecutionLogs_AISkillIDArray(mjaiskill_, { userPayload, providers }, pubSub) {
31110
+ this.CheckUserReadPermissions('MJ: Search Execution Logs', userPayload);
31111
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
31112
+ const sSQL = `SELECT * FROM ${provider.QuoteSchemaAndView(Metadata.Provider.ConfigData.MJCoreSchemaName, 'vwSearchExecutionLogs')} WHERE ${provider.QuoteIdentifier('AISkillID')}=${provider.BuildParameterPlaceholder(0)} ` + this.getRowLevelSecurityWhereClause(provider, 'MJ: Search Execution Logs', userPayload, EntityPermissionType.Read, 'AND');
31113
+ const rows = await provider.ExecuteSQL(sSQL, [mjaiskill_.ID], undefined, this.GetUserFromPayload(userPayload));
31114
+ const result = await this.ArrayMapFieldNamesToCodeNames('MJ: Search Execution Logs', rows, this.GetUserFromPayload(userPayload));
31115
+ return result;
31116
+ }
31117
+ async MJAISkillSearchScopes_SkillIDArray(mjaiskill_, { userPayload, providers }, pubSub) {
31118
+ this.CheckUserReadPermissions('MJ: AI Skill Search Scopes', userPayload);
31119
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
31120
+ const sSQL = `SELECT * FROM ${provider.QuoteSchemaAndView(Metadata.Provider.ConfigData.MJCoreSchemaName, 'vwAISkillSearchScopes')} WHERE ${provider.QuoteIdentifier('SkillID')}=${provider.BuildParameterPlaceholder(0)} ` + this.getRowLevelSecurityWhereClause(provider, 'MJ: AI Skill Search Scopes', userPayload, EntityPermissionType.Read, 'AND');
31121
+ const rows = await provider.ExecuteSQL(sSQL, [mjaiskill_.ID], undefined, this.GetUserFromPayload(userPayload));
31122
+ const result = await this.ArrayMapFieldNamesToCodeNames('MJ: AI Skill Search Scopes', rows, this.GetUserFromPayload(userPayload));
31123
+ return result;
31124
+ }
30829
31125
  async CreateMJAISkill(input, { providers, userPayload }, pubSub) {
30830
31126
  const provider = GetReadWriteProvider(providers);
30831
31127
  return this.CreateRecord('MJ: AI Skills', input, provider, userPayload, pubSub);
@@ -30912,6 +31208,24 @@ __decorate([
30912
31208
  __metadata("design:paramtypes", [MJAISkill_, Object, PubSubEngine]),
30913
31209
  __metadata("design:returntype", Promise)
30914
31210
  ], MJAISkillResolver.prototype, "MJAISkillPermissions_SkillIDArray", null);
31211
+ __decorate([
31212
+ FieldResolver(() => [MJSearchExecutionLog_]),
31213
+ __param(0, Root()),
31214
+ __param(1, Ctx()),
31215
+ __param(2, PubSub()),
31216
+ __metadata("design:type", Function),
31217
+ __metadata("design:paramtypes", [MJAISkill_, Object, PubSubEngine]),
31218
+ __metadata("design:returntype", Promise)
31219
+ ], MJAISkillResolver.prototype, "MJSearchExecutionLogs_AISkillIDArray", null);
31220
+ __decorate([
31221
+ FieldResolver(() => [MJAISkillSearchScope_]),
31222
+ __param(0, Root()),
31223
+ __param(1, Ctx()),
31224
+ __param(2, PubSub()),
31225
+ __metadata("design:type", Function),
31226
+ __metadata("design:paramtypes", [MJAISkill_, Object, PubSubEngine]),
31227
+ __metadata("design:returntype", Promise)
31228
+ ], MJAISkillResolver.prototype, "MJAISkillSearchScopes_SkillIDArray", null);
30915
31229
  __decorate([
30916
31230
  Mutation(() => MJAISkill_),
30917
31231
  __param(0, Arg('input', () => CreateMJAISkillInput)),
@@ -49525,6 +49839,499 @@ MJContentItemAttributeResolver = __decorate([
49525
49839
  ], MJContentItemAttributeResolver);
49526
49840
  export { MJContentItemAttributeResolver };
49527
49841
  //****************************************************************************
49842
+ // ENTITY CLASS for MJ: Content Item Chunks
49843
+ //****************************************************************************
49844
+ let MJContentItemChunk_ = class MJContentItemChunk_ {
49845
+ };
49846
+ __decorate([
49847
+ Field(),
49848
+ MaxLength(36),
49849
+ __metadata("design:type", String)
49850
+ ], MJContentItemChunk_.prototype, "ID", void 0);
49851
+ __decorate([
49852
+ Field(),
49853
+ MaxLength(36),
49854
+ __metadata("design:type", String)
49855
+ ], MJContentItemChunk_.prototype, "ContentItemID", void 0);
49856
+ __decorate([
49857
+ Field(() => Int, { description: `Zero-based ordinal position of this chunk within the parent Content Item, preserving the original order in which the text was split.` }),
49858
+ __metadata("design:type", Number)
49859
+ ], MJContentItemChunk_.prototype, "Sequence", void 0);
49860
+ __decorate([
49861
+ Field({ nullable: true, description: `The chunk of extracted text (from the parent Content Item) that was embedded to produce this chunk's vector. NULL for media-only segments (for example an image, or a video window with no transcript), where the embedded payload is the media itself and any readable representation lives in Description/Transcript.` }),
49862
+ __metadata("design:type", String)
49863
+ ], MJContentItemChunk_.prototype, "Text", void 0);
49864
+ __decorate([
49865
+ Field({ nullable: true, 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.` }),
49866
+ MaxLength(100),
49867
+ __metadata("design:type", String)
49868
+ ], MJContentItemChunk_.prototype, "VectorRecordID", void 0);
49869
+ __decorate([
49870
+ Field({ description: `Embedding lifecycle state of this chunk: Pending (default), Processing, Active, Complete, Processed, Failed, or Skipped.` }),
49871
+ MaxLength(20),
49872
+ __metadata("design:type", String)
49873
+ ], MJContentItemChunk_.prototype, "EmbeddingStatus", void 0);
49874
+ __decorate([
49875
+ Field({ description: `Tagging lifecycle state of this chunk: Pending (default), Processing, Active, Complete, Processed, Failed, or Skipped.` }),
49876
+ MaxLength(20),
49877
+ __metadata("design:type", String)
49878
+ ], MJContentItemChunk_.prototype, "TaggingStatus", void 0);
49879
+ __decorate([
49880
+ Field({ nullable: true, description: `Deletion lifecycle state of this chunk's vector: NULL when not slated for deletion, Pending when vector removal is queued, or Deleted once the vector has been removed from the vector database.` }),
49881
+ MaxLength(20),
49882
+ __metadata("design:type", String)
49883
+ ], MJContentItemChunk_.prototype, "DeleteStatus", void 0);
49884
+ __decorate([
49885
+ Field({ nullable: true, description: `Timestamp of the last successful embedding of this chunk.` }),
49886
+ __metadata("design:type", Date)
49887
+ ], MJContentItemChunk_.prototype, "LastEmbeddedAt", void 0);
49888
+ __decorate([
49889
+ Field({ nullable: true, description: `Timestamp of the last successful tagging of this chunk.` }),
49890
+ __metadata("design:type", Date)
49891
+ ], MJContentItemChunk_.prototype, "LastTaggedAt", void 0);
49892
+ __decorate([
49893
+ Field({ nullable: true, description: `Timestamp of the last successful deletion of this chunk's vector from the vector database.` }),
49894
+ __metadata("design:type", Date)
49895
+ ], MJContentItemChunk_.prototype, "LastDeletedAt", void 0);
49896
+ __decorate([
49897
+ Field(),
49898
+ __metadata("design:type", Date)
49899
+ ], MJContentItemChunk_.prototype, "_mj__CreatedAt", void 0);
49900
+ __decorate([
49901
+ Field(),
49902
+ __metadata("design:type", Date)
49903
+ ], MJContentItemChunk_.prototype, "_mj__UpdatedAt", void 0);
49904
+ __decorate([
49905
+ Field({ description: `The modality of this chunk's embedded payload: text (default), image, audio, video, or multimodal (text and media fused into a single vector). Determines which vector index the chunk's embedding belongs to, since a multimodal embedding model produces vectors of a different dimension than a text model, and is used at retrieval time to merge results per modality rather than taking a single global top-k.` }),
49906
+ MaxLength(20),
49907
+ __metadata("design:type", String)
49908
+ ], MJContentItemChunk_.prototype, "Modality", void 0);
49909
+ __decorate([
49910
+ Field(() => Int, { nullable: true, description: `Inclusive character offset where this chunk begins within the parent Content Item's extracted text. Together with EndOffset this is the provenance link that resolves a search hit back to the exact passage in the source document. NULL for media segments, which are positioned by StartMs/EndMs instead.` }),
49911
+ __metadata("design:type", Number)
49912
+ ], MJContentItemChunk_.prototype, "StartOffset", void 0);
49913
+ __decorate([
49914
+ Field(() => Int, { nullable: true, description: `Exclusive character offset where this chunk ends within the parent Content Item's extracted text. See StartOffset. NULL for media segments.` }),
49915
+ __metadata("design:type", Number)
49916
+ ], MJContentItemChunk_.prototype, "EndOffset", void 0);
49917
+ __decorate([
49918
+ Field(() => Int, { nullable: true, description: `Start of this chunk's time window, in milliseconds from the beginning of the parent audio or video asset. Set by transcript- or window-based segmentation; enables time-windowed playback deep-links from a search result (for example 14:22-15:05 of a session recording). NULL for text segments.` }),
49919
+ __metadata("design:type", Number)
49920
+ ], MJContentItemChunk_.prototype, "StartMs", void 0);
49921
+ __decorate([
49922
+ Field(() => Int, { nullable: true, description: `End of this chunk's time window, in milliseconds from the beginning of the parent audio or video asset. See StartMs. NULL for text segments.` }),
49923
+ __metadata("design:type", Number)
49924
+ ], MJContentItemChunk_.prototype, "EndMs", void 0);
49925
+ __decorate([
49926
+ Field(() => Int, { nullable: true, description: `One-based page number this chunk came from, for paginated sources such as PDFs or slide decks. Provides citation-grade provenance alongside the character offsets. NULL when the source is not paginated.` }),
49927
+ __metadata("design:type", Number)
49928
+ ], MJContentItemChunk_.prototype, "PageNumber", void 0);
49929
+ __decorate([
49930
+ Field({ nullable: true, description: `Human-readable label for this segment — a document heading for structure-based segmentation, or a generated chapter title for topic- and transcript-based segmentation. Displayed with search results and prepended to the embedded text so a chunk's vector carries its own topic.` }),
49931
+ MaxLength(500),
49932
+ __metadata("design:type", String)
49933
+ ], MJContentItemChunk_.prototype, "SegmentTitle", void 0);
49934
+ __decorate([
49935
+ Field({ nullable: true, description: `An AI-generated description of this chunk's content, primarily for non-text segments. Retrieval of a media chunk otherwise yields only a pointer (an asset and a time window) that an agent cannot reason over; this column is the readable representation that an agent reads, a cross-encoder reranks, and lexical search matches. A short summary of it may be mirrored into the vector record's metadata for display and filtering, but the full text belongs here.` }),
49936
+ __metadata("design:type", String)
49937
+ ], MJContentItemChunk_.prototype, "Description", void 0);
49938
+ __decorate([
49939
+ Field({ nullable: true, description: `The verbatim transcript covering this chunk's time window, for audio and video segments, including speaker labels where the source provides them. Distinct from Description, which is a generated summary: this is what was actually said, and it is what makes a recording findable by lexical search.` }),
49940
+ __metadata("design:type", String)
49941
+ ], MJContentItemChunk_.prototype, "Transcript", void 0);
49942
+ __decorate([
49943
+ Field({ nullable: true, description: `Registration key of the segmentation strategy that produced this chunk (for example StructuralText, SemanticText, Transcript, or FixedWindow). Provenance: when a Content Source's configured strategy changes, this identifies which chunks were produced by the previous strategy and therefore need re-chunking.` }),
49944
+ MaxLength(100),
49945
+ __metadata("design:type", String)
49946
+ ], MJContentItemChunk_.prototype, "SegmenterKey", void 0);
49947
+ __decorate([
49948
+ Field({ nullable: true, 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.` }),
49949
+ MaxLength(36),
49950
+ __metadata("design:type", String)
49951
+ ], MJContentItemChunk_.prototype, "ParentChunkID", void 0);
49952
+ __decorate([
49953
+ Field({ nullable: true }),
49954
+ MaxLength(250),
49955
+ __metadata("design:type", String)
49956
+ ], MJContentItemChunk_.prototype, "ContentItem", void 0);
49957
+ __decorate([
49958
+ Field({ nullable: true }),
49959
+ MaxLength(36),
49960
+ __metadata("design:type", String)
49961
+ ], MJContentItemChunk_.prototype, "RootParentChunkID", void 0);
49962
+ __decorate([
49963
+ Field(() => [MJContentItemChunk_]),
49964
+ __metadata("design:type", Array)
49965
+ ], MJContentItemChunk_.prototype, "MJContentItemChunks_ParentChunkIDArray", void 0);
49966
+ MJContentItemChunk_ = __decorate([
49967
+ ObjectType({ description: `Represents an individual chunk of a Content Item\'s text that was embedded as a distinct vector. When a Content Item is too large to embed as a single vector it is split into ordered chunks; each chunk becomes one row here, linking the stored vector back to the specific portion of the parent Content Item it represents.` })
49968
+ ], MJContentItemChunk_);
49969
+ export { MJContentItemChunk_ };
49970
+ //****************************************************************************
49971
+ // INPUT TYPE for MJ: Content Item Chunks
49972
+ //****************************************************************************
49973
+ let CreateMJContentItemChunkInput = class CreateMJContentItemChunkInput {
49974
+ };
49975
+ __decorate([
49976
+ Field({ nullable: true }),
49977
+ __metadata("design:type", String)
49978
+ ], CreateMJContentItemChunkInput.prototype, "ID", void 0);
49979
+ __decorate([
49980
+ Field({ nullable: true }),
49981
+ __metadata("design:type", String)
49982
+ ], CreateMJContentItemChunkInput.prototype, "ContentItemID", void 0);
49983
+ __decorate([
49984
+ Field(() => Int, { nullable: true }),
49985
+ __metadata("design:type", Number)
49986
+ ], CreateMJContentItemChunkInput.prototype, "Sequence", void 0);
49987
+ __decorate([
49988
+ Field({ nullable: true }),
49989
+ __metadata("design:type", String)
49990
+ ], CreateMJContentItemChunkInput.prototype, "Text", void 0);
49991
+ __decorate([
49992
+ Field({ nullable: true }),
49993
+ __metadata("design:type", String)
49994
+ ], CreateMJContentItemChunkInput.prototype, "VectorRecordID", void 0);
49995
+ __decorate([
49996
+ Field({ nullable: true }),
49997
+ __metadata("design:type", String)
49998
+ ], CreateMJContentItemChunkInput.prototype, "EmbeddingStatus", void 0);
49999
+ __decorate([
50000
+ Field({ nullable: true }),
50001
+ __metadata("design:type", String)
50002
+ ], CreateMJContentItemChunkInput.prototype, "TaggingStatus", void 0);
50003
+ __decorate([
50004
+ Field({ nullable: true }),
50005
+ __metadata("design:type", String)
50006
+ ], CreateMJContentItemChunkInput.prototype, "DeleteStatus", void 0);
50007
+ __decorate([
50008
+ Field({ nullable: true }),
50009
+ __metadata("design:type", Date)
50010
+ ], CreateMJContentItemChunkInput.prototype, "LastEmbeddedAt", void 0);
50011
+ __decorate([
50012
+ Field({ nullable: true }),
50013
+ __metadata("design:type", Date)
50014
+ ], CreateMJContentItemChunkInput.prototype, "LastTaggedAt", void 0);
50015
+ __decorate([
50016
+ Field({ nullable: true }),
50017
+ __metadata("design:type", Date)
50018
+ ], CreateMJContentItemChunkInput.prototype, "LastDeletedAt", void 0);
50019
+ __decorate([
50020
+ Field({ nullable: true }),
50021
+ __metadata("design:type", String)
50022
+ ], CreateMJContentItemChunkInput.prototype, "Modality", void 0);
50023
+ __decorate([
50024
+ Field(() => Int, { nullable: true }),
50025
+ __metadata("design:type", Number)
50026
+ ], CreateMJContentItemChunkInput.prototype, "StartOffset", void 0);
50027
+ __decorate([
50028
+ Field(() => Int, { nullable: true }),
50029
+ __metadata("design:type", Number)
50030
+ ], CreateMJContentItemChunkInput.prototype, "EndOffset", void 0);
50031
+ __decorate([
50032
+ Field(() => Int, { nullable: true }),
50033
+ __metadata("design:type", Number)
50034
+ ], CreateMJContentItemChunkInput.prototype, "StartMs", void 0);
50035
+ __decorate([
50036
+ Field(() => Int, { nullable: true }),
50037
+ __metadata("design:type", Number)
50038
+ ], CreateMJContentItemChunkInput.prototype, "EndMs", void 0);
50039
+ __decorate([
50040
+ Field(() => Int, { nullable: true }),
50041
+ __metadata("design:type", Number)
50042
+ ], CreateMJContentItemChunkInput.prototype, "PageNumber", void 0);
50043
+ __decorate([
50044
+ Field({ nullable: true }),
50045
+ __metadata("design:type", String)
50046
+ ], CreateMJContentItemChunkInput.prototype, "SegmentTitle", void 0);
50047
+ __decorate([
50048
+ Field({ nullable: true }),
50049
+ __metadata("design:type", String)
50050
+ ], CreateMJContentItemChunkInput.prototype, "Description", void 0);
50051
+ __decorate([
50052
+ Field({ nullable: true }),
50053
+ __metadata("design:type", String)
50054
+ ], CreateMJContentItemChunkInput.prototype, "Transcript", void 0);
50055
+ __decorate([
50056
+ Field({ nullable: true }),
50057
+ __metadata("design:type", String)
50058
+ ], CreateMJContentItemChunkInput.prototype, "SegmenterKey", void 0);
50059
+ __decorate([
50060
+ Field({ nullable: true }),
50061
+ __metadata("design:type", String)
50062
+ ], CreateMJContentItemChunkInput.prototype, "ParentChunkID", void 0);
50063
+ __decorate([
50064
+ Field(() => RestoreContextInput, { nullable: true }),
50065
+ __metadata("design:type", RestoreContextInput)
50066
+ ], CreateMJContentItemChunkInput.prototype, "RestoreContext___", void 0);
50067
+ CreateMJContentItemChunkInput = __decorate([
50068
+ InputType()
50069
+ ], CreateMJContentItemChunkInput);
50070
+ export { CreateMJContentItemChunkInput };
50071
+ //****************************************************************************
50072
+ // INPUT TYPE for MJ: Content Item Chunks
50073
+ //****************************************************************************
50074
+ let UpdateMJContentItemChunkInput = class UpdateMJContentItemChunkInput {
50075
+ };
50076
+ __decorate([
50077
+ Field(),
50078
+ __metadata("design:type", String)
50079
+ ], UpdateMJContentItemChunkInput.prototype, "ID", void 0);
50080
+ __decorate([
50081
+ Field({ nullable: true }),
50082
+ __metadata("design:type", String)
50083
+ ], UpdateMJContentItemChunkInput.prototype, "ContentItemID", void 0);
50084
+ __decorate([
50085
+ Field(() => Int, { nullable: true }),
50086
+ __metadata("design:type", Number)
50087
+ ], UpdateMJContentItemChunkInput.prototype, "Sequence", void 0);
50088
+ __decorate([
50089
+ Field({ nullable: true }),
50090
+ __metadata("design:type", String)
50091
+ ], UpdateMJContentItemChunkInput.prototype, "Text", void 0);
50092
+ __decorate([
50093
+ Field({ nullable: true }),
50094
+ __metadata("design:type", String)
50095
+ ], UpdateMJContentItemChunkInput.prototype, "VectorRecordID", void 0);
50096
+ __decorate([
50097
+ Field({ nullable: true }),
50098
+ __metadata("design:type", String)
50099
+ ], UpdateMJContentItemChunkInput.prototype, "EmbeddingStatus", void 0);
50100
+ __decorate([
50101
+ Field({ nullable: true }),
50102
+ __metadata("design:type", String)
50103
+ ], UpdateMJContentItemChunkInput.prototype, "TaggingStatus", void 0);
50104
+ __decorate([
50105
+ Field({ nullable: true }),
50106
+ __metadata("design:type", String)
50107
+ ], UpdateMJContentItemChunkInput.prototype, "DeleteStatus", void 0);
50108
+ __decorate([
50109
+ Field({ nullable: true }),
50110
+ __metadata("design:type", Date)
50111
+ ], UpdateMJContentItemChunkInput.prototype, "LastEmbeddedAt", void 0);
50112
+ __decorate([
50113
+ Field({ nullable: true }),
50114
+ __metadata("design:type", Date)
50115
+ ], UpdateMJContentItemChunkInput.prototype, "LastTaggedAt", void 0);
50116
+ __decorate([
50117
+ Field({ nullable: true }),
50118
+ __metadata("design:type", Date)
50119
+ ], UpdateMJContentItemChunkInput.prototype, "LastDeletedAt", void 0);
50120
+ __decorate([
50121
+ Field({ nullable: true }),
50122
+ __metadata("design:type", String)
50123
+ ], UpdateMJContentItemChunkInput.prototype, "Modality", void 0);
50124
+ __decorate([
50125
+ Field(() => Int, { nullable: true }),
50126
+ __metadata("design:type", Number)
50127
+ ], UpdateMJContentItemChunkInput.prototype, "StartOffset", void 0);
50128
+ __decorate([
50129
+ Field(() => Int, { nullable: true }),
50130
+ __metadata("design:type", Number)
50131
+ ], UpdateMJContentItemChunkInput.prototype, "EndOffset", void 0);
50132
+ __decorate([
50133
+ Field(() => Int, { nullable: true }),
50134
+ __metadata("design:type", Number)
50135
+ ], UpdateMJContentItemChunkInput.prototype, "StartMs", void 0);
50136
+ __decorate([
50137
+ Field(() => Int, { nullable: true }),
50138
+ __metadata("design:type", Number)
50139
+ ], UpdateMJContentItemChunkInput.prototype, "EndMs", void 0);
50140
+ __decorate([
50141
+ Field(() => Int, { nullable: true }),
50142
+ __metadata("design:type", Number)
50143
+ ], UpdateMJContentItemChunkInput.prototype, "PageNumber", void 0);
50144
+ __decorate([
50145
+ Field({ nullable: true }),
50146
+ __metadata("design:type", String)
50147
+ ], UpdateMJContentItemChunkInput.prototype, "SegmentTitle", void 0);
50148
+ __decorate([
50149
+ Field({ nullable: true }),
50150
+ __metadata("design:type", String)
50151
+ ], UpdateMJContentItemChunkInput.prototype, "Description", void 0);
50152
+ __decorate([
50153
+ Field({ nullable: true }),
50154
+ __metadata("design:type", String)
50155
+ ], UpdateMJContentItemChunkInput.prototype, "Transcript", void 0);
50156
+ __decorate([
50157
+ Field({ nullable: true }),
50158
+ __metadata("design:type", String)
50159
+ ], UpdateMJContentItemChunkInput.prototype, "SegmenterKey", void 0);
50160
+ __decorate([
50161
+ Field({ nullable: true }),
50162
+ __metadata("design:type", String)
50163
+ ], UpdateMJContentItemChunkInput.prototype, "ParentChunkID", void 0);
50164
+ __decorate([
50165
+ Field(() => [KeyValuePairInput], { nullable: true }),
50166
+ __metadata("design:type", Array)
50167
+ ], UpdateMJContentItemChunkInput.prototype, "OldValues___", void 0);
50168
+ __decorate([
50169
+ Field(() => RestoreContextInput, { nullable: true }),
50170
+ __metadata("design:type", RestoreContextInput)
50171
+ ], UpdateMJContentItemChunkInput.prototype, "RestoreContext___", void 0);
50172
+ UpdateMJContentItemChunkInput = __decorate([
50173
+ InputType()
50174
+ ], UpdateMJContentItemChunkInput);
50175
+ export { UpdateMJContentItemChunkInput };
50176
+ //****************************************************************************
50177
+ // RESOLVER for MJ: Content Item Chunks
50178
+ //****************************************************************************
50179
+ let RunMJContentItemChunkViewResult = class RunMJContentItemChunkViewResult {
50180
+ };
50181
+ __decorate([
50182
+ Field(() => [MJContentItemChunk_]),
50183
+ __metadata("design:type", Array)
50184
+ ], RunMJContentItemChunkViewResult.prototype, "Results", void 0);
50185
+ __decorate([
50186
+ Field(() => String, { nullable: true }),
50187
+ __metadata("design:type", String)
50188
+ ], RunMJContentItemChunkViewResult.prototype, "UserViewRunID", void 0);
50189
+ __decorate([
50190
+ Field(() => Int, { nullable: true }),
50191
+ __metadata("design:type", Number)
50192
+ ], RunMJContentItemChunkViewResult.prototype, "RowCount", void 0);
50193
+ __decorate([
50194
+ Field(() => Int, { nullable: true }),
50195
+ __metadata("design:type", Number)
50196
+ ], RunMJContentItemChunkViewResult.prototype, "TotalRowCount", void 0);
50197
+ __decorate([
50198
+ Field(() => Int, { nullable: true }),
50199
+ __metadata("design:type", Number)
50200
+ ], RunMJContentItemChunkViewResult.prototype, "ExecutionTime", void 0);
50201
+ __decorate([
50202
+ Field({ nullable: true }),
50203
+ __metadata("design:type", String)
50204
+ ], RunMJContentItemChunkViewResult.prototype, "ErrorMessage", void 0);
50205
+ __decorate([
50206
+ Field(() => Boolean, { nullable: false }),
50207
+ __metadata("design:type", Boolean)
50208
+ ], RunMJContentItemChunkViewResult.prototype, "Success", void 0);
50209
+ RunMJContentItemChunkViewResult = __decorate([
50210
+ ObjectType()
50211
+ ], RunMJContentItemChunkViewResult);
50212
+ export { RunMJContentItemChunkViewResult };
50213
+ let MJContentItemChunkResolver = class MJContentItemChunkResolver extends ResolverBase {
50214
+ async RunMJContentItemChunkViewByID(input, { providers, userPayload }, pubSub) {
50215
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
50216
+ return super.RunViewByIDGeneric(input, provider, userPayload, pubSub);
50217
+ }
50218
+ async RunMJContentItemChunkViewByName(input, { providers, userPayload }, pubSub) {
50219
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
50220
+ return super.RunViewByNameGeneric(input, provider, userPayload, pubSub);
50221
+ }
50222
+ async RunMJContentItemChunkDynamicView(input, { providers, userPayload }, pubSub) {
50223
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
50224
+ input.EntityName = 'MJ: Content Item Chunks';
50225
+ return super.RunDynamicViewGeneric(input, provider, userPayload, pubSub);
50226
+ }
50227
+ async MJContentItemChunk(ID, { userPayload, providers }, pubSub) {
50228
+ this.CheckUserReadPermissions('MJ: Content Item Chunks', userPayload);
50229
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
50230
+ const sSQL = `SELECT * FROM ${provider.QuoteSchemaAndView(Metadata.Provider.ConfigData.MJCoreSchemaName, 'vwContentItemChunks')} WHERE ${provider.QuoteIdentifier('ID')}=${provider.BuildParameterPlaceholder(0)} ` + this.getRowLevelSecurityWhereClause(provider, 'MJ: Content Item Chunks', userPayload, EntityPermissionType.Read, 'AND');
50231
+ const rows = await provider.ExecuteSQL(sSQL, [ID], undefined, this.GetUserFromPayload(userPayload));
50232
+ const result = await this.MapFieldNamesToCodeNames('MJ: Content Item Chunks', rows && rows.length > 0 ? rows[0] : null, this.GetUserFromPayload(userPayload));
50233
+ return result;
50234
+ }
50235
+ async MJContentItemChunks_ParentChunkIDArray(mjcontentitemchunk_, { userPayload, providers }, pubSub) {
50236
+ this.CheckUserReadPermissions('MJ: Content Item Chunks', userPayload);
50237
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
50238
+ const sSQL = `SELECT * FROM ${provider.QuoteSchemaAndView(Metadata.Provider.ConfigData.MJCoreSchemaName, 'vwContentItemChunks')} WHERE ${provider.QuoteIdentifier('ParentChunkID')}=${provider.BuildParameterPlaceholder(0)} ` + this.getRowLevelSecurityWhereClause(provider, 'MJ: Content Item Chunks', userPayload, EntityPermissionType.Read, 'AND');
50239
+ const rows = await provider.ExecuteSQL(sSQL, [mjcontentitemchunk_.ID], undefined, this.GetUserFromPayload(userPayload));
50240
+ const result = await this.ArrayMapFieldNamesToCodeNames('MJ: Content Item Chunks', rows, this.GetUserFromPayload(userPayload));
50241
+ return result;
50242
+ }
50243
+ async CreateMJContentItemChunk(input, { providers, userPayload }, pubSub) {
50244
+ const provider = GetReadWriteProvider(providers);
50245
+ return this.CreateRecord('MJ: Content Item Chunks', input, provider, userPayload, pubSub);
50246
+ }
50247
+ async UpdateMJContentItemChunk(input, { providers, userPayload }, pubSub) {
50248
+ const provider = GetReadWriteProvider(providers);
50249
+ return this.UpdateRecord('MJ: Content Item Chunks', input, provider, userPayload, pubSub);
50250
+ }
50251
+ async DeleteMJContentItemChunk(ID, options, { providers, userPayload }, pubSub) {
50252
+ const provider = GetReadWriteProvider(providers);
50253
+ const key = new CompositeKey([{ FieldName: 'ID', Value: ID }]);
50254
+ return this.DeleteRecord('MJ: Content Item Chunks', key, options, provider, userPayload, pubSub);
50255
+ }
50256
+ };
50257
+ __decorate([
50258
+ Query(() => RunMJContentItemChunkViewResult),
50259
+ __param(0, Arg('input', () => RunViewByIDInput)),
50260
+ __param(1, Ctx()),
50261
+ __param(2, PubSub()),
50262
+ __metadata("design:type", Function),
50263
+ __metadata("design:paramtypes", [RunViewByIDInput, Object, PubSubEngine]),
50264
+ __metadata("design:returntype", Promise)
50265
+ ], MJContentItemChunkResolver.prototype, "RunMJContentItemChunkViewByID", null);
50266
+ __decorate([
50267
+ Query(() => RunMJContentItemChunkViewResult),
50268
+ __param(0, Arg('input', () => RunViewByNameInput)),
50269
+ __param(1, Ctx()),
50270
+ __param(2, PubSub()),
50271
+ __metadata("design:type", Function),
50272
+ __metadata("design:paramtypes", [RunViewByNameInput, Object, PubSubEngine]),
50273
+ __metadata("design:returntype", Promise)
50274
+ ], MJContentItemChunkResolver.prototype, "RunMJContentItemChunkViewByName", null);
50275
+ __decorate([
50276
+ Query(() => RunMJContentItemChunkViewResult),
50277
+ __param(0, Arg('input', () => RunDynamicViewInput)),
50278
+ __param(1, Ctx()),
50279
+ __param(2, PubSub()),
50280
+ __metadata("design:type", Function),
50281
+ __metadata("design:paramtypes", [RunDynamicViewInput, Object, PubSubEngine]),
50282
+ __metadata("design:returntype", Promise)
50283
+ ], MJContentItemChunkResolver.prototype, "RunMJContentItemChunkDynamicView", null);
50284
+ __decorate([
50285
+ Query(() => MJContentItemChunk_, { nullable: true }),
50286
+ __param(0, Arg('ID', () => String)),
50287
+ __param(1, Ctx()),
50288
+ __param(2, PubSub()),
50289
+ __metadata("design:type", Function),
50290
+ __metadata("design:paramtypes", [String, Object, PubSubEngine]),
50291
+ __metadata("design:returntype", Promise)
50292
+ ], MJContentItemChunkResolver.prototype, "MJContentItemChunk", null);
50293
+ __decorate([
50294
+ FieldResolver(() => [MJContentItemChunk_]),
50295
+ __param(0, Root()),
50296
+ __param(1, Ctx()),
50297
+ __param(2, PubSub()),
50298
+ __metadata("design:type", Function),
50299
+ __metadata("design:paramtypes", [MJContentItemChunk_, Object, PubSubEngine]),
50300
+ __metadata("design:returntype", Promise)
50301
+ ], MJContentItemChunkResolver.prototype, "MJContentItemChunks_ParentChunkIDArray", null);
50302
+ __decorate([
50303
+ Mutation(() => MJContentItemChunk_),
50304
+ __param(0, Arg('input', () => CreateMJContentItemChunkInput)),
50305
+ __param(1, Ctx()),
50306
+ __param(2, PubSub()),
50307
+ __metadata("design:type", Function),
50308
+ __metadata("design:paramtypes", [CreateMJContentItemChunkInput, Object, PubSubEngine]),
50309
+ __metadata("design:returntype", Promise)
50310
+ ], MJContentItemChunkResolver.prototype, "CreateMJContentItemChunk", null);
50311
+ __decorate([
50312
+ Mutation(() => MJContentItemChunk_),
50313
+ __param(0, Arg('input', () => UpdateMJContentItemChunkInput)),
50314
+ __param(1, Ctx()),
50315
+ __param(2, PubSub()),
50316
+ __metadata("design:type", Function),
50317
+ __metadata("design:paramtypes", [UpdateMJContentItemChunkInput, Object, PubSubEngine]),
50318
+ __metadata("design:returntype", Promise)
50319
+ ], MJContentItemChunkResolver.prototype, "UpdateMJContentItemChunk", null);
50320
+ __decorate([
50321
+ Mutation(() => MJContentItemChunk_),
50322
+ __param(0, Arg('ID', () => String)),
50323
+ __param(1, Arg('options___', () => DeleteOptionsInput)),
50324
+ __param(2, Ctx()),
50325
+ __param(3, PubSub()),
50326
+ __metadata("design:type", Function),
50327
+ __metadata("design:paramtypes", [String, DeleteOptionsInput, Object, PubSubEngine]),
50328
+ __metadata("design:returntype", Promise)
50329
+ ], MJContentItemChunkResolver.prototype, "DeleteMJContentItemChunk", null);
50330
+ MJContentItemChunkResolver = __decorate([
50331
+ Resolver(MJContentItemChunk_)
50332
+ ], MJContentItemChunkResolver);
50333
+ export { MJContentItemChunkResolver };
50334
+ //****************************************************************************
49528
50335
  // ENTITY CLASS for MJ: Content Item Duplicates
49529
50336
  //****************************************************************************
49530
50337
  let MJContentItemDuplicate_ = class MJContentItemDuplicate_ {
@@ -50223,6 +51030,21 @@ __decorate([
50223
51030
  Field({ nullable: true, description: `Timestamp of the most recent successful autotagging run for this content item.` }),
50224
51031
  __metadata("design:type", Date)
50225
51032
  ], MJContentItem_.prototype, "LastTaggedAt", void 0);
51033
+ __decorate([
51034
+ Field({ nullable: true, description: `The identifier of this Content Item's vector record in the vector database (e.g. Pinecone) — the deterministic key MemberJunction assigns and upserts the embedding under when the item is embedded as a single vector. Provides traceability from the Content Item back to its stored vector. For chunked items, per-chunk identifiers are tracked on the ContentItemChunk entity instead.` }),
51035
+ MaxLength(100),
51036
+ __metadata("design:type", String)
51037
+ ], MJContentItem_.prototype, "VectorRecordID", void 0);
51038
+ __decorate([
51039
+ Field({ nullable: true, description: `Optional self-reference to another Content Item that is the parent of this one, enabling a content-item hierarchy (e.g. a document and its sub-pages, or a site and its crawled pages). NULL for top-level items.` }),
51040
+ MaxLength(36),
51041
+ __metadata("design:type", String)
51042
+ ], MJContentItem_.prototype, "ParentID", void 0);
51043
+ __decorate([
51044
+ Field({ nullable: true, 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.` }),
51045
+ MaxLength(2000),
51046
+ __metadata("design:type", String)
51047
+ ], MJContentItem_.prototype, "DisplayLink", void 0);
50226
51048
  __decorate([
50227
51049
  Field({ nullable: true }),
50228
51050
  MaxLength(255),
@@ -50253,6 +51075,16 @@ __decorate([
50253
51075
  MaxLength(50),
50254
51076
  __metadata("design:type", String)
50255
51077
  ], MJContentItem_.prototype, "EmbeddingModel", void 0);
51078
+ __decorate([
51079
+ Field({ nullable: true }),
51080
+ MaxLength(250),
51081
+ __metadata("design:type", String)
51082
+ ], MJContentItem_.prototype, "Parent", void 0);
51083
+ __decorate([
51084
+ Field({ nullable: true }),
51085
+ MaxLength(36),
51086
+ __metadata("design:type", String)
51087
+ ], MJContentItem_.prototype, "RootParentID", void 0);
50256
51088
  __decorate([
50257
51089
  Field(() => [MJContentItemAttribute_]),
50258
51090
  __metadata("design:type", Array)
@@ -50269,10 +51101,18 @@ __decorate([
50269
51101
  Field(() => [MJContentItemDuplicate_]),
50270
51102
  __metadata("design:type", Array)
50271
51103
  ], MJContentItem_.prototype, "MJContentItemDuplicates_ContentItemBIDArray", void 0);
51104
+ __decorate([
51105
+ Field(() => [MJContentItem_]),
51106
+ __metadata("design:type", Array)
51107
+ ], MJContentItem_.prototype, "MJContentItems_ParentIDArray", void 0);
50272
51108
  __decorate([
50273
51109
  Field(() => [MJTagSuggestion_]),
50274
51110
  __metadata("design:type", Array)
50275
51111
  ], MJContentItem_.prototype, "MJTagSuggestions_SourceContentItemIDArray", void 0);
51112
+ __decorate([
51113
+ Field(() => [MJContentItemChunk_]),
51114
+ __metadata("design:type", Array)
51115
+ ], MJContentItem_.prototype, "MJContentItemChunks_ContentItemIDArray", void 0);
50276
51116
  MJContentItem_ = __decorate([
50277
51117
  ObjectType({ description: `Stores extracted text from content assets, as well as the source location, versioning, and links to extracted tags and attributes.` })
50278
51118
  ], MJContentItem_);
@@ -50346,6 +51186,18 @@ __decorate([
50346
51186
  Field({ nullable: true }),
50347
51187
  __metadata("design:type", Date)
50348
51188
  ], CreateMJContentItemInput.prototype, "LastTaggedAt", void 0);
51189
+ __decorate([
51190
+ Field({ nullable: true }),
51191
+ __metadata("design:type", String)
51192
+ ], CreateMJContentItemInput.prototype, "VectorRecordID", void 0);
51193
+ __decorate([
51194
+ Field({ nullable: true }),
51195
+ __metadata("design:type", String)
51196
+ ], CreateMJContentItemInput.prototype, "ParentID", void 0);
51197
+ __decorate([
51198
+ Field({ nullable: true }),
51199
+ __metadata("design:type", String)
51200
+ ], CreateMJContentItemInput.prototype, "DisplayLink", void 0);
50349
51201
  __decorate([
50350
51202
  Field(() => RestoreContextInput, { nullable: true }),
50351
51203
  __metadata("design:type", RestoreContextInput)
@@ -50423,6 +51275,18 @@ __decorate([
50423
51275
  Field({ nullable: true }),
50424
51276
  __metadata("design:type", Date)
50425
51277
  ], UpdateMJContentItemInput.prototype, "LastTaggedAt", void 0);
51278
+ __decorate([
51279
+ Field({ nullable: true }),
51280
+ __metadata("design:type", String)
51281
+ ], UpdateMJContentItemInput.prototype, "VectorRecordID", void 0);
51282
+ __decorate([
51283
+ Field({ nullable: true }),
51284
+ __metadata("design:type", String)
51285
+ ], UpdateMJContentItemInput.prototype, "ParentID", void 0);
51286
+ __decorate([
51287
+ Field({ nullable: true }),
51288
+ __metadata("design:type", String)
51289
+ ], UpdateMJContentItemInput.prototype, "DisplayLink", void 0);
50426
51290
  __decorate([
50427
51291
  Field(() => [KeyValuePairInput], { nullable: true }),
50428
51292
  __metadata("design:type", Array)
@@ -50526,6 +51390,14 @@ let MJContentItemResolver = class MJContentItemResolver extends ResolverBase {
50526
51390
  const result = await this.ArrayMapFieldNamesToCodeNames('MJ: Content Item Duplicates', rows, this.GetUserFromPayload(userPayload));
50527
51391
  return result;
50528
51392
  }
51393
+ async MJContentItems_ParentIDArray(mjcontentitem_, { userPayload, providers }, pubSub) {
51394
+ this.CheckUserReadPermissions('MJ: Content Items', userPayload);
51395
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
51396
+ const sSQL = `SELECT * FROM ${provider.QuoteSchemaAndView(Metadata.Provider.ConfigData.MJCoreSchemaName, 'vwContentItems')} WHERE ${provider.QuoteIdentifier('ParentID')}=${provider.BuildParameterPlaceholder(0)} ` + this.getRowLevelSecurityWhereClause(provider, 'MJ: Content Items', userPayload, EntityPermissionType.Read, 'AND');
51397
+ const rows = await provider.ExecuteSQL(sSQL, [mjcontentitem_.ID], undefined, this.GetUserFromPayload(userPayload));
51398
+ const result = await this.ArrayMapFieldNamesToCodeNames('MJ: Content Items', rows, this.GetUserFromPayload(userPayload));
51399
+ return result;
51400
+ }
50529
51401
  async MJTagSuggestions_SourceContentItemIDArray(mjcontentitem_, { userPayload, providers }, pubSub) {
50530
51402
  this.CheckUserReadPermissions('MJ: Tag Suggestions', userPayload);
50531
51403
  const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
@@ -50534,6 +51406,14 @@ let MJContentItemResolver = class MJContentItemResolver extends ResolverBase {
50534
51406
  const result = await this.ArrayMapFieldNamesToCodeNames('MJ: Tag Suggestions', rows, this.GetUserFromPayload(userPayload));
50535
51407
  return result;
50536
51408
  }
51409
+ async MJContentItemChunks_ContentItemIDArray(mjcontentitem_, { userPayload, providers }, pubSub) {
51410
+ this.CheckUserReadPermissions('MJ: Content Item Chunks', userPayload);
51411
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
51412
+ const sSQL = `SELECT * FROM ${provider.QuoteSchemaAndView(Metadata.Provider.ConfigData.MJCoreSchemaName, 'vwContentItemChunks')} WHERE ${provider.QuoteIdentifier('ContentItemID')}=${provider.BuildParameterPlaceholder(0)} ` + this.getRowLevelSecurityWhereClause(provider, 'MJ: Content Item Chunks', userPayload, EntityPermissionType.Read, 'AND');
51413
+ const rows = await provider.ExecuteSQL(sSQL, [mjcontentitem_.ID], undefined, this.GetUserFromPayload(userPayload));
51414
+ const result = await this.ArrayMapFieldNamesToCodeNames('MJ: Content Item Chunks', rows, this.GetUserFromPayload(userPayload));
51415
+ return result;
51416
+ }
50537
51417
  async CreateMJContentItem(input, { providers, userPayload }, pubSub) {
50538
51418
  const provider = GetReadWriteProvider(providers);
50539
51419
  return this.CreateRecord('MJ: Content Items', input, provider, userPayload, pubSub);
@@ -50620,6 +51500,15 @@ __decorate([
50620
51500
  __metadata("design:paramtypes", [MJContentItem_, Object, PubSubEngine]),
50621
51501
  __metadata("design:returntype", Promise)
50622
51502
  ], MJContentItemResolver.prototype, "MJContentItemDuplicates_ContentItemBIDArray", null);
51503
+ __decorate([
51504
+ FieldResolver(() => [MJContentItem_]),
51505
+ __param(0, Root()),
51506
+ __param(1, Ctx()),
51507
+ __param(2, PubSub()),
51508
+ __metadata("design:type", Function),
51509
+ __metadata("design:paramtypes", [MJContentItem_, Object, PubSubEngine]),
51510
+ __metadata("design:returntype", Promise)
51511
+ ], MJContentItemResolver.prototype, "MJContentItems_ParentIDArray", null);
50623
51512
  __decorate([
50624
51513
  FieldResolver(() => [MJTagSuggestion_]),
50625
51514
  __param(0, Root()),
@@ -50629,6 +51518,15 @@ __decorate([
50629
51518
  __metadata("design:paramtypes", [MJContentItem_, Object, PubSubEngine]),
50630
51519
  __metadata("design:returntype", Promise)
50631
51520
  ], MJContentItemResolver.prototype, "MJTagSuggestions_SourceContentItemIDArray", null);
51521
+ __decorate([
51522
+ FieldResolver(() => [MJContentItemChunk_]),
51523
+ __param(0, Root()),
51524
+ __param(1, Ctx()),
51525
+ __param(2, PubSub()),
51526
+ __metadata("design:type", Function),
51527
+ __metadata("design:paramtypes", [MJContentItem_, Object, PubSubEngine]),
51528
+ __metadata("design:returntype", Promise)
51529
+ ], MJContentItemResolver.prototype, "MJContentItemChunks_ContentItemIDArray", null);
50632
51530
  __decorate([
50633
51531
  Mutation(() => MJContentItem_),
50634
51532
  __param(0, Arg('input', () => CreateMJContentItemInput)),
@@ -52588,6 +53486,16 @@ __decorate([
52588
53486
  MaxLength(36),
52589
53487
  __metadata("design:type", String)
52590
53488
  ], MJContentSource_.prototype, "ScheduledActionID", void 0);
53489
+ __decorate([
53490
+ Field({ nullable: true, description: `Registration key of the segmentation strategy used to split this source's content into embeddable chunks — for example StructuralText (document headings), AdaptiveBoundary (target size closing on the nearest natural break), SemanticText (LLM-detected topic boundaries), Transcript (audio/video chapters), PagedContent (one segment per page), or FixedWindow (uniform windows). NULL falls back to the Content Type's value, then to a built-in default.` }),
53491
+ MaxLength(100),
53492
+ __metadata("design:type", String)
53493
+ ], MJContentSource_.prototype, "SegmenterKey", void 0);
53494
+ __decorate([
53495
+ Field({ nullable: true, description: `Registration key of the content-cleaning strategy applied to this source before segmentation — for example Html (CSS-selector-driven extraction that drops navigation, sidebars, and advertising) or PlainText (whitespace normalization only). Cleaning is separate from segmentation because the two change for different reasons: a new site template needs new selectors, not a new chunking strategy. NULL falls back to the Content Type's value, then to a default inferred from the content's mime type.` }),
53496
+ MaxLength(100),
53497
+ __metadata("design:type", String)
53498
+ ], MJContentSource_.prototype, "CleanerKey", void 0);
52591
53499
  __decorate([
52592
53500
  Field(),
52593
53501
  MaxLength(255),
@@ -52705,6 +53613,14 @@ __decorate([
52705
53613
  Field({ nullable: true }),
52706
53614
  __metadata("design:type", String)
52707
53615
  ], CreateMJContentSourceInput.prototype, "ScheduledActionID", void 0);
53616
+ __decorate([
53617
+ Field({ nullable: true }),
53618
+ __metadata("design:type", String)
53619
+ ], CreateMJContentSourceInput.prototype, "SegmenterKey", void 0);
53620
+ __decorate([
53621
+ Field({ nullable: true }),
53622
+ __metadata("design:type", String)
53623
+ ], CreateMJContentSourceInput.prototype, "CleanerKey", void 0);
52708
53624
  __decorate([
52709
53625
  Field(() => RestoreContextInput, { nullable: true }),
52710
53626
  __metadata("design:type", RestoreContextInput)
@@ -52766,6 +53682,14 @@ __decorate([
52766
53682
  Field({ nullable: true }),
52767
53683
  __metadata("design:type", String)
52768
53684
  ], UpdateMJContentSourceInput.prototype, "ScheduledActionID", void 0);
53685
+ __decorate([
53686
+ Field({ nullable: true }),
53687
+ __metadata("design:type", String)
53688
+ ], UpdateMJContentSourceInput.prototype, "SegmenterKey", void 0);
53689
+ __decorate([
53690
+ Field({ nullable: true }),
53691
+ __metadata("design:type", String)
53692
+ ], UpdateMJContentSourceInput.prototype, "CleanerKey", void 0);
52769
53693
  __decorate([
52770
53694
  Field(() => [KeyValuePairInput], { nullable: true }),
52771
53695
  __metadata("design:type", Array)
@@ -53309,6 +54233,16 @@ __decorate([
53309
54233
  Field({ nullable: true, description: `JSON configuration blob for content-type-level settings. Conforms to the IContentTypeConfiguration interface. Reserved for future type-wide settings such as default tag taxonomy rules and processing options.` }),
53310
54234
  __metadata("design:type", String)
53311
54235
  ], MJContentType_.prototype, "Configuration", void 0);
54236
+ __decorate([
54237
+ Field({ nullable: true, description: `Default segmentation strategy for content of this type, used when a Content Source does not specify its own SegmenterKey. See ContentSource.SegmenterKey for the available strategies.` }),
54238
+ MaxLength(100),
54239
+ __metadata("design:type", String)
54240
+ ], MJContentType_.prototype, "SegmenterKey", void 0);
54241
+ __decorate([
54242
+ Field({ nullable: true, description: `Default content-cleaning strategy for content of this type, used when a Content Source does not specify its own CleanerKey. See ContentSource.CleanerKey.` }),
54243
+ MaxLength(100),
54244
+ __metadata("design:type", String)
54245
+ ], MJContentType_.prototype, "CleanerKey", void 0);
53312
54246
  __decorate([
53313
54247
  Field(),
53314
54248
  MaxLength(50),
@@ -53377,6 +54311,14 @@ __decorate([
53377
54311
  Field({ nullable: true }),
53378
54312
  __metadata("design:type", String)
53379
54313
  ], CreateMJContentTypeInput.prototype, "Configuration", void 0);
54314
+ __decorate([
54315
+ Field({ nullable: true }),
54316
+ __metadata("design:type", String)
54317
+ ], CreateMJContentTypeInput.prototype, "SegmenterKey", void 0);
54318
+ __decorate([
54319
+ Field({ nullable: true }),
54320
+ __metadata("design:type", String)
54321
+ ], CreateMJContentTypeInput.prototype, "CleanerKey", void 0);
53380
54322
  __decorate([
53381
54323
  Field(() => RestoreContextInput, { nullable: true }),
53382
54324
  __metadata("design:type", RestoreContextInput)
@@ -53426,6 +54368,14 @@ __decorate([
53426
54368
  Field({ nullable: true }),
53427
54369
  __metadata("design:type", String)
53428
54370
  ], UpdateMJContentTypeInput.prototype, "Configuration", void 0);
54371
+ __decorate([
54372
+ Field({ nullable: true }),
54373
+ __metadata("design:type", String)
54374
+ ], UpdateMJContentTypeInput.prototype, "SegmenterKey", void 0);
54375
+ __decorate([
54376
+ Field({ nullable: true }),
54377
+ __metadata("design:type", String)
54378
+ ], UpdateMJContentTypeInput.prototype, "CleanerKey", void 0);
53429
54379
  __decorate([
53430
54380
  Field(() => [KeyValuePairInput], { nullable: true }),
53431
54381
  __metadata("design:type", Array)
@@ -54497,6 +55447,243 @@ MJConversationArtifactResolver = __decorate([
54497
55447
  ], MJConversationArtifactResolver);
54498
55448
  export { MJConversationArtifactResolver };
54499
55449
  //****************************************************************************
55450
+ // ENTITY CLASS for MJ: Conversation Compaction Runs
55451
+ //****************************************************************************
55452
+ let MJConversationCompactionRun_ = class MJConversationCompactionRun_ {
55453
+ };
55454
+ __decorate([
55455
+ Field(),
55456
+ MaxLength(36),
55457
+ __metadata("design:type", String)
55458
+ ], MJConversationCompactionRun_.prototype, "ID", void 0);
55459
+ __decorate([
55460
+ Field({ description: `The conversation detail row whose SummaryOfEarlierConversation was produced by this compaction run.` }),
55461
+ MaxLength(36),
55462
+ __metadata("design:type", String)
55463
+ ], MJConversationCompactionRun_.prototype, "ConversationDetailID", void 0);
55464
+ __decorate([
55465
+ Field({ description: `The AI Prompt Run that generated the compaction summary (model, tokens, cost, prompt version).` }),
55466
+ MaxLength(36),
55467
+ __metadata("design:type", String)
55468
+ ], MJConversationCompactionRun_.prototype, "PromptRunID", void 0);
55469
+ __decorate([
55470
+ Field(),
55471
+ __metadata("design:type", Date)
55472
+ ], MJConversationCompactionRun_.prototype, "_mj__CreatedAt", void 0);
55473
+ __decorate([
55474
+ Field(),
55475
+ __metadata("design:type", Date)
55476
+ ], MJConversationCompactionRun_.prototype, "_mj__UpdatedAt", void 0);
55477
+ __decorate([
55478
+ Field({ nullable: true }),
55479
+ MaxLength(100),
55480
+ __metadata("design:type", String)
55481
+ ], MJConversationCompactionRun_.prototype, "ConversationDetail", void 0);
55482
+ __decorate([
55483
+ Field({ nullable: true }),
55484
+ MaxLength(255),
55485
+ __metadata("design:type", String)
55486
+ ], MJConversationCompactionRun_.prototype, "PromptRun", void 0);
55487
+ MJConversationCompactionRun_ = __decorate([
55488
+ ObjectType({ description: `Links a conversation detail boundary row to the AI Prompt Run that produced its compaction summary. Audit-only join table replacing the former ConversationDetail.SummaryPromptRunID FK to break the CodeGen cycle.` })
55489
+ ], MJConversationCompactionRun_);
55490
+ export { MJConversationCompactionRun_ };
55491
+ //****************************************************************************
55492
+ // INPUT TYPE for MJ: Conversation Compaction Runs
55493
+ //****************************************************************************
55494
+ let CreateMJConversationCompactionRunInput = class CreateMJConversationCompactionRunInput {
55495
+ };
55496
+ __decorate([
55497
+ Field({ nullable: true }),
55498
+ __metadata("design:type", String)
55499
+ ], CreateMJConversationCompactionRunInput.prototype, "ID", void 0);
55500
+ __decorate([
55501
+ Field({ nullable: true }),
55502
+ __metadata("design:type", String)
55503
+ ], CreateMJConversationCompactionRunInput.prototype, "ConversationDetailID", void 0);
55504
+ __decorate([
55505
+ Field({ nullable: true }),
55506
+ __metadata("design:type", String)
55507
+ ], CreateMJConversationCompactionRunInput.prototype, "PromptRunID", void 0);
55508
+ __decorate([
55509
+ Field(() => RestoreContextInput, { nullable: true }),
55510
+ __metadata("design:type", RestoreContextInput)
55511
+ ], CreateMJConversationCompactionRunInput.prototype, "RestoreContext___", void 0);
55512
+ CreateMJConversationCompactionRunInput = __decorate([
55513
+ InputType()
55514
+ ], CreateMJConversationCompactionRunInput);
55515
+ export { CreateMJConversationCompactionRunInput };
55516
+ //****************************************************************************
55517
+ // INPUT TYPE for MJ: Conversation Compaction Runs
55518
+ //****************************************************************************
55519
+ let UpdateMJConversationCompactionRunInput = class UpdateMJConversationCompactionRunInput {
55520
+ };
55521
+ __decorate([
55522
+ Field(),
55523
+ __metadata("design:type", String)
55524
+ ], UpdateMJConversationCompactionRunInput.prototype, "ID", void 0);
55525
+ __decorate([
55526
+ Field({ nullable: true }),
55527
+ __metadata("design:type", String)
55528
+ ], UpdateMJConversationCompactionRunInput.prototype, "ConversationDetailID", void 0);
55529
+ __decorate([
55530
+ Field({ nullable: true }),
55531
+ __metadata("design:type", String)
55532
+ ], UpdateMJConversationCompactionRunInput.prototype, "PromptRunID", void 0);
55533
+ __decorate([
55534
+ Field(() => [KeyValuePairInput], { nullable: true }),
55535
+ __metadata("design:type", Array)
55536
+ ], UpdateMJConversationCompactionRunInput.prototype, "OldValues___", void 0);
55537
+ __decorate([
55538
+ Field(() => RestoreContextInput, { nullable: true }),
55539
+ __metadata("design:type", RestoreContextInput)
55540
+ ], UpdateMJConversationCompactionRunInput.prototype, "RestoreContext___", void 0);
55541
+ UpdateMJConversationCompactionRunInput = __decorate([
55542
+ InputType()
55543
+ ], UpdateMJConversationCompactionRunInput);
55544
+ export { UpdateMJConversationCompactionRunInput };
55545
+ //****************************************************************************
55546
+ // RESOLVER for MJ: Conversation Compaction Runs
55547
+ //****************************************************************************
55548
+ let RunMJConversationCompactionRunViewResult = class RunMJConversationCompactionRunViewResult {
55549
+ };
55550
+ __decorate([
55551
+ Field(() => [MJConversationCompactionRun_]),
55552
+ __metadata("design:type", Array)
55553
+ ], RunMJConversationCompactionRunViewResult.prototype, "Results", void 0);
55554
+ __decorate([
55555
+ Field(() => String, { nullable: true }),
55556
+ __metadata("design:type", String)
55557
+ ], RunMJConversationCompactionRunViewResult.prototype, "UserViewRunID", void 0);
55558
+ __decorate([
55559
+ Field(() => Int, { nullable: true }),
55560
+ __metadata("design:type", Number)
55561
+ ], RunMJConversationCompactionRunViewResult.prototype, "RowCount", void 0);
55562
+ __decorate([
55563
+ Field(() => Int, { nullable: true }),
55564
+ __metadata("design:type", Number)
55565
+ ], RunMJConversationCompactionRunViewResult.prototype, "TotalRowCount", void 0);
55566
+ __decorate([
55567
+ Field(() => Int, { nullable: true }),
55568
+ __metadata("design:type", Number)
55569
+ ], RunMJConversationCompactionRunViewResult.prototype, "ExecutionTime", void 0);
55570
+ __decorate([
55571
+ Field({ nullable: true }),
55572
+ __metadata("design:type", String)
55573
+ ], RunMJConversationCompactionRunViewResult.prototype, "ErrorMessage", void 0);
55574
+ __decorate([
55575
+ Field(() => Boolean, { nullable: false }),
55576
+ __metadata("design:type", Boolean)
55577
+ ], RunMJConversationCompactionRunViewResult.prototype, "Success", void 0);
55578
+ RunMJConversationCompactionRunViewResult = __decorate([
55579
+ ObjectType()
55580
+ ], RunMJConversationCompactionRunViewResult);
55581
+ export { RunMJConversationCompactionRunViewResult };
55582
+ let MJConversationCompactionRunResolver = class MJConversationCompactionRunResolver extends ResolverBase {
55583
+ async RunMJConversationCompactionRunViewByID(input, { providers, userPayload }, pubSub) {
55584
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
55585
+ return super.RunViewByIDGeneric(input, provider, userPayload, pubSub);
55586
+ }
55587
+ async RunMJConversationCompactionRunViewByName(input, { providers, userPayload }, pubSub) {
55588
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
55589
+ return super.RunViewByNameGeneric(input, provider, userPayload, pubSub);
55590
+ }
55591
+ async RunMJConversationCompactionRunDynamicView(input, { providers, userPayload }, pubSub) {
55592
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
55593
+ input.EntityName = 'MJ: Conversation Compaction Runs';
55594
+ return super.RunDynamicViewGeneric(input, provider, userPayload, pubSub);
55595
+ }
55596
+ async MJConversationCompactionRun(ID, { userPayload, providers }, pubSub) {
55597
+ this.CheckUserReadPermissions('MJ: Conversation Compaction Runs', userPayload);
55598
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
55599
+ const sSQL = `SELECT * FROM ${provider.QuoteSchemaAndView(Metadata.Provider.ConfigData.MJCoreSchemaName, 'vwConversationCompactionRuns')} WHERE ${provider.QuoteIdentifier('ID')}=${provider.BuildParameterPlaceholder(0)} ` + this.getRowLevelSecurityWhereClause(provider, 'MJ: Conversation Compaction Runs', userPayload, EntityPermissionType.Read, 'AND');
55600
+ const rows = await provider.ExecuteSQL(sSQL, [ID], undefined, this.GetUserFromPayload(userPayload));
55601
+ const result = await this.MapFieldNamesToCodeNames('MJ: Conversation Compaction Runs', rows && rows.length > 0 ? rows[0] : null, this.GetUserFromPayload(userPayload));
55602
+ return result;
55603
+ }
55604
+ async CreateMJConversationCompactionRun(input, { providers, userPayload }, pubSub) {
55605
+ const provider = GetReadWriteProvider(providers);
55606
+ return this.CreateRecord('MJ: Conversation Compaction Runs', input, provider, userPayload, pubSub);
55607
+ }
55608
+ async UpdateMJConversationCompactionRun(input, { providers, userPayload }, pubSub) {
55609
+ const provider = GetReadWriteProvider(providers);
55610
+ return this.UpdateRecord('MJ: Conversation Compaction Runs', input, provider, userPayload, pubSub);
55611
+ }
55612
+ async DeleteMJConversationCompactionRun(ID, options, { providers, userPayload }, pubSub) {
55613
+ const provider = GetReadWriteProvider(providers);
55614
+ const key = new CompositeKey([{ FieldName: 'ID', Value: ID }]);
55615
+ return this.DeleteRecord('MJ: Conversation Compaction Runs', key, options, provider, userPayload, pubSub);
55616
+ }
55617
+ };
55618
+ __decorate([
55619
+ Query(() => RunMJConversationCompactionRunViewResult),
55620
+ __param(0, Arg('input', () => RunViewByIDInput)),
55621
+ __param(1, Ctx()),
55622
+ __param(2, PubSub()),
55623
+ __metadata("design:type", Function),
55624
+ __metadata("design:paramtypes", [RunViewByIDInput, Object, PubSubEngine]),
55625
+ __metadata("design:returntype", Promise)
55626
+ ], MJConversationCompactionRunResolver.prototype, "RunMJConversationCompactionRunViewByID", null);
55627
+ __decorate([
55628
+ Query(() => RunMJConversationCompactionRunViewResult),
55629
+ __param(0, Arg('input', () => RunViewByNameInput)),
55630
+ __param(1, Ctx()),
55631
+ __param(2, PubSub()),
55632
+ __metadata("design:type", Function),
55633
+ __metadata("design:paramtypes", [RunViewByNameInput, Object, PubSubEngine]),
55634
+ __metadata("design:returntype", Promise)
55635
+ ], MJConversationCompactionRunResolver.prototype, "RunMJConversationCompactionRunViewByName", null);
55636
+ __decorate([
55637
+ Query(() => RunMJConversationCompactionRunViewResult),
55638
+ __param(0, Arg('input', () => RunDynamicViewInput)),
55639
+ __param(1, Ctx()),
55640
+ __param(2, PubSub()),
55641
+ __metadata("design:type", Function),
55642
+ __metadata("design:paramtypes", [RunDynamicViewInput, Object, PubSubEngine]),
55643
+ __metadata("design:returntype", Promise)
55644
+ ], MJConversationCompactionRunResolver.prototype, "RunMJConversationCompactionRunDynamicView", null);
55645
+ __decorate([
55646
+ Query(() => MJConversationCompactionRun_, { nullable: true }),
55647
+ __param(0, Arg('ID', () => String)),
55648
+ __param(1, Ctx()),
55649
+ __param(2, PubSub()),
55650
+ __metadata("design:type", Function),
55651
+ __metadata("design:paramtypes", [String, Object, PubSubEngine]),
55652
+ __metadata("design:returntype", Promise)
55653
+ ], MJConversationCompactionRunResolver.prototype, "MJConversationCompactionRun", null);
55654
+ __decorate([
55655
+ Mutation(() => MJConversationCompactionRun_),
55656
+ __param(0, Arg('input', () => CreateMJConversationCompactionRunInput)),
55657
+ __param(1, Ctx()),
55658
+ __param(2, PubSub()),
55659
+ __metadata("design:type", Function),
55660
+ __metadata("design:paramtypes", [CreateMJConversationCompactionRunInput, Object, PubSubEngine]),
55661
+ __metadata("design:returntype", Promise)
55662
+ ], MJConversationCompactionRunResolver.prototype, "CreateMJConversationCompactionRun", null);
55663
+ __decorate([
55664
+ Mutation(() => MJConversationCompactionRun_),
55665
+ __param(0, Arg('input', () => UpdateMJConversationCompactionRunInput)),
55666
+ __param(1, Ctx()),
55667
+ __param(2, PubSub()),
55668
+ __metadata("design:type", Function),
55669
+ __metadata("design:paramtypes", [UpdateMJConversationCompactionRunInput, Object, PubSubEngine]),
55670
+ __metadata("design:returntype", Promise)
55671
+ ], MJConversationCompactionRunResolver.prototype, "UpdateMJConversationCompactionRun", null);
55672
+ __decorate([
55673
+ Mutation(() => MJConversationCompactionRun_),
55674
+ __param(0, Arg('ID', () => String)),
55675
+ __param(1, Arg('options___', () => DeleteOptionsInput)),
55676
+ __param(2, Ctx()),
55677
+ __param(3, PubSub()),
55678
+ __metadata("design:type", Function),
55679
+ __metadata("design:paramtypes", [String, DeleteOptionsInput, Object, PubSubEngine]),
55680
+ __metadata("design:returntype", Promise)
55681
+ ], MJConversationCompactionRunResolver.prototype, "DeleteMJConversationCompactionRun", null);
55682
+ MJConversationCompactionRunResolver = __decorate([
55683
+ Resolver(MJConversationCompactionRun_)
55684
+ ], MJConversationCompactionRunResolver);
55685
+ export { MJConversationCompactionRunResolver };
55686
+ //****************************************************************************
54500
55687
  // ENTITY CLASS for MJ: Conversation Detail Artifacts
54501
55688
  //****************************************************************************
54502
55689
  let MJConversationDetailArtifact_ = class MJConversationDetailArtifact_ {
@@ -55552,11 +56739,6 @@ __decorate([
55552
56739
  Field(() => Int, { description: `Monotonic, per-conversation ordinal assigned on insert (1-based). Provides a stable symbolic handle used by conversation-history retrieval tools and by the sequence markers embedded in compaction summaries. A summary stored in SummaryOfEarlierConversation on a given row covers all rows with a lower Sequence in the same conversation.` }),
55553
56740
  __metadata("design:type", Number)
55554
56741
  ], MJConversationDetail_.prototype, "Sequence", void 0);
55555
- __decorate([
55556
- Field({ nullable: true, description: `When SummaryOfEarlierConversation is populated by a cross-turn compaction, this links to the AIPromptRun that produced it (model, tokens, cost, prompt version). Null for ordinary (non-summary) rows.` }),
55557
- MaxLength(36),
55558
- __metadata("design:type", String)
55559
- ], MJConversationDetail_.prototype, "SummaryPromptRunID", void 0);
55560
56742
  __decorate([
55561
56743
  Field({ nullable: true }),
55562
56744
  MaxLength(255),
@@ -55592,11 +56774,6 @@ __decorate([
55592
56774
  MaxLength(255),
55593
56775
  __metadata("design:type", String)
55594
56776
  ], MJConversationDetail_.prototype, "TestRun", void 0);
55595
- __decorate([
55596
- Field({ nullable: true }),
55597
- MaxLength(255),
55598
- __metadata("design:type", String)
55599
- ], MJConversationDetail_.prototype, "SummaryPromptRun", void 0);
55600
56777
  __decorate([
55601
56778
  Field({ nullable: true }),
55602
56779
  MaxLength(36),
@@ -55638,6 +56815,10 @@ __decorate([
55638
56815
  Field(() => [MJTask_]),
55639
56816
  __metadata("design:type", Array)
55640
56817
  ], MJConversationDetail_.prototype, "MJTasks_ConversationDetailIDArray", void 0);
56818
+ __decorate([
56819
+ Field(() => [MJConversationCompactionRun_]),
56820
+ __metadata("design:type", Array)
56821
+ ], MJConversationDetail_.prototype, "MJConversationCompactionRuns_ConversationDetailIDArray", void 0);
55641
56822
  MJConversationDetail_ = __decorate([
55642
56823
  ObjectType({ description: `Stores individual messages, responses, and interactions within a conversation, maintaining the complete dialogue history with timestamps.` })
55643
56824
  ], MJConversationDetail_);
@@ -55767,14 +56948,6 @@ __decorate([
55767
56948
  Field({ nullable: true }),
55768
56949
  __metadata("design:type", String)
55769
56950
  ], CreateMJConversationDetailInput.prototype, "MediaType", void 0);
55770
- __decorate([
55771
- Field(() => Int, { nullable: true }),
55772
- __metadata("design:type", Number)
55773
- ], CreateMJConversationDetailInput.prototype, "Sequence", void 0);
55774
- __decorate([
55775
- Field({ nullable: true }),
55776
- __metadata("design:type", String)
55777
- ], CreateMJConversationDetailInput.prototype, "SummaryPromptRunID", void 0);
55778
56951
  __decorate([
55779
56952
  Field(() => RestoreContextInput, { nullable: true }),
55780
56953
  __metadata("design:type", RestoreContextInput)
@@ -55908,14 +57081,6 @@ __decorate([
55908
57081
  Field({ nullable: true }),
55909
57082
  __metadata("design:type", String)
55910
57083
  ], UpdateMJConversationDetailInput.prototype, "MediaType", void 0);
55911
- __decorate([
55912
- Field(() => Int, { nullable: true }),
55913
- __metadata("design:type", Number)
55914
- ], UpdateMJConversationDetailInput.prototype, "Sequence", void 0);
55915
- __decorate([
55916
- Field({ nullable: true }),
55917
- __metadata("design:type", String)
55918
- ], UpdateMJConversationDetailInput.prototype, "SummaryPromptRunID", void 0);
55919
57084
  __decorate([
55920
57085
  Field(() => [KeyValuePairInput], { nullable: true }),
55921
57086
  __metadata("design:type", Array)
@@ -56059,6 +57224,14 @@ let MJConversationDetailResolver = class MJConversationDetailResolver extends Re
56059
57224
  const result = await this.ArrayMapFieldNamesToCodeNames('MJ: Tasks', rows, this.GetUserFromPayload(userPayload));
56060
57225
  return result;
56061
57226
  }
57227
+ async MJConversationCompactionRuns_ConversationDetailIDArray(mjconversationdetail_, { userPayload, providers }, pubSub) {
57228
+ this.CheckUserReadPermissions('MJ: Conversation Compaction Runs', userPayload);
57229
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
57230
+ const sSQL = `SELECT * FROM ${provider.QuoteSchemaAndView(Metadata.Provider.ConfigData.MJCoreSchemaName, 'vwConversationCompactionRuns')} WHERE ${provider.QuoteIdentifier('ConversationDetailID')}=${provider.BuildParameterPlaceholder(0)} ` + this.getRowLevelSecurityWhereClause(provider, 'MJ: Conversation Compaction Runs', userPayload, EntityPermissionType.Read, 'AND');
57231
+ const rows = await provider.ExecuteSQL(sSQL, [mjconversationdetail_.ID], undefined, this.GetUserFromPayload(userPayload));
57232
+ const result = await this.ArrayMapFieldNamesToCodeNames('MJ: Conversation Compaction Runs', rows, this.GetUserFromPayload(userPayload));
57233
+ return result;
57234
+ }
56062
57235
  async CreateMJConversationDetail(input, { providers, userPayload }, pubSub) {
56063
57236
  const provider = GetReadWriteProvider(providers);
56064
57237
  return this.CreateRecord('MJ: Conversation Details', input, provider, userPayload, pubSub);
@@ -56190,6 +57363,15 @@ __decorate([
56190
57363
  __metadata("design:paramtypes", [MJConversationDetail_, Object, PubSubEngine]),
56191
57364
  __metadata("design:returntype", Promise)
56192
57365
  ], MJConversationDetailResolver.prototype, "MJTasks_ConversationDetailIDArray", null);
57366
+ __decorate([
57367
+ FieldResolver(() => [MJConversationCompactionRun_]),
57368
+ __param(0, Root()),
57369
+ __param(1, Ctx()),
57370
+ __param(2, PubSub()),
57371
+ __metadata("design:type", Function),
57372
+ __metadata("design:paramtypes", [MJConversationDetail_, Object, PubSubEngine]),
57373
+ __metadata("design:returntype", Promise)
57374
+ ], MJConversationDetailResolver.prototype, "MJConversationCompactionRuns_ConversationDetailIDArray", null);
56193
57375
  __decorate([
56194
57376
  Mutation(() => MJConversationDetail_),
56195
57377
  __param(0, Arg('input', () => CreateMJConversationDetailInput)),
@@ -114854,6 +116036,20 @@ __decorate([
114854
116036
  Field(),
114855
116037
  __metadata("design:type", Date)
114856
116038
  ], MJSearchExecutionLog_.prototype, "_mj__UpdatedAt", void 0);
116039
+ __decorate([
116040
+ Field({ nullable: true, description: `The AI Skill on whose behalf this search ran, or NULL for a search with no active skill. Mirrors AIAgentID: since a skill is a search principal in its own right (AISkill.SearchScopeAccess plus MJ: AI Skill Search Scopes rows can reach a scope the user's own roles do not grant), the log must record which skill was active or the entitlement decision cannot be reconstructed.` }),
116041
+ MaxLength(36),
116042
+ __metadata("design:type", String)
116043
+ ], MJSearchExecutionLog_.prototype, "AISkillID", void 0);
116044
+ __decorate([
116045
+ Field({ nullable: true, description: `The tenant this search ran for, taken from SearchContext.PrimaryScopeRecordID. Lets a multi-tenant deployment partition, filter and retain search audit history per customer. NULL for untenanted searches. Named for the existing primary-scope concept rather than OrganizationID because a scope's primary scope may be a Company, Client or Practice.` }),
116046
+ MaxLength(36),
116047
+ __metadata("design:type", String)
116048
+ ], MJSearchExecutionLog_.prototype, "PrimaryScopeRecordID", void 0);
116049
+ __decorate([
116050
+ Field({ nullable: true, description: `Serialized ScopeExplanation recording WHY this search could reach what it reached: the entitlement decision and the grant that produced it, every dimension with its provenance (CallerSupplied / ServerDerived / Default / DiscardedCaller / Absent), and each lane's rendered filter with its active-or-skipped status and reason. Identical in shape to the value returned by SearchEngine.ExplainScope(), so the dry-run an administrator previews before running a search is the same structure the audit log stores afterwards. NULL when the engine did not capture a decision (older writers, or a failure before scope resolution).` }),
116051
+ __metadata("design:type", String)
116052
+ ], MJSearchExecutionLog_.prototype, "ScopeDecisionJSON", void 0);
114857
116053
  __decorate([
114858
116054
  Field({ nullable: true }),
114859
116055
  MaxLength(200),
@@ -114869,6 +116065,11 @@ __decorate([
114869
116065
  MaxLength(255),
114870
116066
  __metadata("design:type", String)
114871
116067
  ], MJSearchExecutionLog_.prototype, "AIAgent", void 0);
116068
+ __decorate([
116069
+ Field({ nullable: true }),
116070
+ MaxLength(255),
116071
+ __metadata("design:type", String)
116072
+ ], MJSearchExecutionLog_.prototype, "AISkill", void 0);
114872
116073
  MJSearchExecutionLog_ = __decorate([
114873
116074
  ObjectType({ description: `One row per SearchEngine.search invocation. Populated by SearchEngine\'s post-fusion logging hook (Phase 3.2). Read by the Knowledge Hub Search Analytics dashboard (Phase 3.3) and the per-scope tuning CSV export (Phase 3.4).` })
114874
116075
  ], MJSearchExecutionLog_);
@@ -114926,6 +116127,18 @@ __decorate([
114926
116127
  Field({ nullable: true }),
114927
116128
  __metadata("design:type", String)
114928
116129
  ], CreateMJSearchExecutionLogInput.prototype, "ProvidersJSON", void 0);
116130
+ __decorate([
116131
+ Field({ nullable: true }),
116132
+ __metadata("design:type", String)
116133
+ ], CreateMJSearchExecutionLogInput.prototype, "AISkillID", void 0);
116134
+ __decorate([
116135
+ Field({ nullable: true }),
116136
+ __metadata("design:type", String)
116137
+ ], CreateMJSearchExecutionLogInput.prototype, "PrimaryScopeRecordID", void 0);
116138
+ __decorate([
116139
+ Field({ nullable: true }),
116140
+ __metadata("design:type", String)
116141
+ ], CreateMJSearchExecutionLogInput.prototype, "ScopeDecisionJSON", void 0);
114929
116142
  __decorate([
114930
116143
  Field(() => RestoreContextInput, { nullable: true }),
114931
116144
  __metadata("design:type", RestoreContextInput)
@@ -114987,6 +116200,18 @@ __decorate([
114987
116200
  Field({ nullable: true }),
114988
116201
  __metadata("design:type", String)
114989
116202
  ], UpdateMJSearchExecutionLogInput.prototype, "ProvidersJSON", void 0);
116203
+ __decorate([
116204
+ Field({ nullable: true }),
116205
+ __metadata("design:type", String)
116206
+ ], UpdateMJSearchExecutionLogInput.prototype, "AISkillID", void 0);
116207
+ __decorate([
116208
+ Field({ nullable: true }),
116209
+ __metadata("design:type", String)
116210
+ ], UpdateMJSearchExecutionLogInput.prototype, "PrimaryScopeRecordID", void 0);
116211
+ __decorate([
116212
+ Field({ nullable: true }),
116213
+ __metadata("design:type", String)
116214
+ ], UpdateMJSearchExecutionLogInput.prototype, "ScopeDecisionJSON", void 0);
114990
116215
  __decorate([
114991
116216
  Field(() => [KeyValuePairInput], { nullable: true }),
114992
116217
  __metadata("design:type", Array)
@@ -115553,6 +116778,10 @@ __decorate([
115553
116778
  Field(),
115554
116779
  __metadata("design:type", Date)
115555
116780
  ], MJSearchScopeEntity_.prototype, "_mj__UpdatedAt", void 0);
116781
+ __decorate([
116782
+ Field({ nullable: true, description: `JSON array of column or alias names the rendered ExtraFilter MUST reference for this lane to be considered safe, e.g. ["OrganizationID","ContentSourceID"]. Checked against the RENDERED filter at search time: if one is missing the lane is SKIPPED rather than queried, because a partially-rendered filter (an {% if %} clause dropped when its dimension was absent or discarded) is still valid SQL and silently widens the search. Same concept and same engine check as SearchScopeExternalIndex.RequiredMetadataKeys, applied to the SQL lane. NULL = no contract declared, which is the pre-migration behaviour.` }),
116783
+ __metadata("design:type", String)
116784
+ ], MJSearchScopeEntity_.prototype, "RequiredMetadataKeys", void 0);
115556
116785
  __decorate([
115557
116786
  Field(),
115558
116787
  MaxLength(200),
@@ -115592,6 +116821,10 @@ __decorate([
115592
116821
  Field({ nullable: true }),
115593
116822
  __metadata("design:type", String)
115594
116823
  ], CreateMJSearchScopeEntityInput.prototype, "UserSearchString", void 0);
116824
+ __decorate([
116825
+ Field({ nullable: true }),
116826
+ __metadata("design:type", String)
116827
+ ], CreateMJSearchScopeEntityInput.prototype, "RequiredMetadataKeys", void 0);
115595
116828
  __decorate([
115596
116829
  Field(() => RestoreContextInput, { nullable: true }),
115597
116830
  __metadata("design:type", RestoreContextInput)
@@ -115625,6 +116858,10 @@ __decorate([
115625
116858
  Field({ nullable: true }),
115626
116859
  __metadata("design:type", String)
115627
116860
  ], UpdateMJSearchScopeEntityInput.prototype, "UserSearchString", void 0);
116861
+ __decorate([
116862
+ Field({ nullable: true }),
116863
+ __metadata("design:type", String)
116864
+ ], UpdateMJSearchScopeEntityInput.prototype, "RequiredMetadataKeys", void 0);
115628
116865
  __decorate([
115629
116866
  Field(() => [KeyValuePairInput], { nullable: true }),
115630
116867
  __metadata("design:type", Array)
@@ -115824,6 +117061,10 @@ __decorate([
115824
117061
  Field(),
115825
117062
  __metadata("design:type", Date)
115826
117063
  ], MJSearchScopeExternalIndex_.prototype, "_mj__UpdatedAt", void 0);
117064
+ __decorate([
117065
+ Field({ nullable: true, description: `JSON array of metadata key names the rendered MetadataFilter MUST constrain on for this lane to be considered safe, e.g. ["OrganizationID","ContentSourceID"]. Checked against the RENDERED filter at search time: if a key is missing the lane is SKIPPED rather than queried, because a partially-rendered filter silently widens the search. This also documents the ingest contract — these are the labels the writer must stamp on every document in the index, since a filter on a key that was never written either matches nothing or (on providers that ignore unknown keys) matches everything. NULL = no contract declared, which is the pre-migration behaviour.` }),
117066
+ __metadata("design:type", String)
117067
+ ], MJSearchScopeExternalIndex_.prototype, "RequiredMetadataKeys", void 0);
115827
117068
  __decorate([
115828
117069
  Field(),
115829
117070
  MaxLength(200),
@@ -115871,6 +117112,10 @@ __decorate([
115871
117112
  Field({ nullable: true }),
115872
117113
  __metadata("design:type", String)
115873
117114
  ], CreateMJSearchScopeExternalIndexInput.prototype, "MetadataFilter", void 0);
117115
+ __decorate([
117116
+ Field({ nullable: true }),
117117
+ __metadata("design:type", String)
117118
+ ], CreateMJSearchScopeExternalIndexInput.prototype, "RequiredMetadataKeys", void 0);
115874
117119
  __decorate([
115875
117120
  Field(() => RestoreContextInput, { nullable: true }),
115876
117121
  __metadata("design:type", RestoreContextInput)
@@ -115912,6 +117157,10 @@ __decorate([
115912
117157
  Field({ nullable: true }),
115913
117158
  __metadata("design:type", String)
115914
117159
  ], UpdateMJSearchScopeExternalIndexInput.prototype, "MetadataFilter", void 0);
117160
+ __decorate([
117161
+ Field({ nullable: true }),
117162
+ __metadata("design:type", String)
117163
+ ], UpdateMJSearchScopeExternalIndexInput.prototype, "RequiredMetadataKeys", void 0);
115915
117164
  __decorate([
115916
117165
  Field(() => [KeyValuePairInput], { nullable: true }),
115917
117166
  __metadata("design:type", Array)
@@ -116103,6 +117352,19 @@ __decorate([
116103
117352
  Field(),
116104
117353
  __metadata("design:type", Date)
116105
117354
  ], MJSearchScopePermission_.prototype, "_mj__UpdatedAt", void 0);
117355
+ __decorate([
117356
+ Field({ nullable: true, description: `Optional start of the window in which this grant applies. NULL = no lower bound. SearchScopePermission was the only member of this family without a time window, so temporary grants previously needed a bespoke mechanism.` }),
117357
+ __metadata("design:type", Date)
117358
+ ], MJSearchScopePermission_.prototype, "StartAt", void 0);
117359
+ __decorate([
117360
+ Field({ nullable: true, description: `Optional end of the window in which this grant applies. NULL = no upper bound.` }),
117361
+ __metadata("design:type", Date)
117362
+ ], MJSearchScopePermission_.prototype, "EndAt", void 0);
117363
+ __decorate([
117364
+ Field({ nullable: true, description: `Optional tenant this grant is limited to, matched against SearchContext.PrimaryScopeRecordID at search time and type-checkable against the scope's own PrimaryScopeEntityID. NULL = applies to every tenant, which is the pre-migration behaviour for all existing rows. Deliberately NOT called OrganizationID: MJ is domain-agnostic and a scope's primary scope may be a Company, Client or Practice, so this reuses the existing primary-scope concept rather than inventing a parallel tenancy column.` }),
117365
+ MaxLength(36),
117366
+ __metadata("design:type", String)
117367
+ ], MJSearchScopePermission_.prototype, "PrimaryScopeRecordID", void 0);
116106
117368
  __decorate([
116107
117369
  Field(),
116108
117370
  MaxLength(200),
@@ -116147,6 +117409,18 @@ __decorate([
116147
117409
  Field({ nullable: true }),
116148
117410
  __metadata("design:type", String)
116149
117411
  ], CreateMJSearchScopePermissionInput.prototype, "PermissionLevel", void 0);
117412
+ __decorate([
117413
+ Field({ nullable: true }),
117414
+ __metadata("design:type", Date)
117415
+ ], CreateMJSearchScopePermissionInput.prototype, "StartAt", void 0);
117416
+ __decorate([
117417
+ Field({ nullable: true }),
117418
+ __metadata("design:type", Date)
117419
+ ], CreateMJSearchScopePermissionInput.prototype, "EndAt", void 0);
117420
+ __decorate([
117421
+ Field({ nullable: true }),
117422
+ __metadata("design:type", String)
117423
+ ], CreateMJSearchScopePermissionInput.prototype, "PrimaryScopeRecordID", void 0);
116150
117424
  __decorate([
116151
117425
  Field(() => RestoreContextInput, { nullable: true }),
116152
117426
  __metadata("design:type", RestoreContextInput)
@@ -116180,6 +117454,18 @@ __decorate([
116180
117454
  Field({ nullable: true }),
116181
117455
  __metadata("design:type", String)
116182
117456
  ], UpdateMJSearchScopePermissionInput.prototype, "PermissionLevel", void 0);
117457
+ __decorate([
117458
+ Field({ nullable: true }),
117459
+ __metadata("design:type", Date)
117460
+ ], UpdateMJSearchScopePermissionInput.prototype, "StartAt", void 0);
117461
+ __decorate([
117462
+ Field({ nullable: true }),
117463
+ __metadata("design:type", Date)
117464
+ ], UpdateMJSearchScopePermissionInput.prototype, "EndAt", void 0);
117465
+ __decorate([
117466
+ Field({ nullable: true }),
117467
+ __metadata("design:type", String)
117468
+ ], UpdateMJSearchScopePermissionInput.prototype, "PrimaryScopeRecordID", void 0);
116183
117469
  __decorate([
116184
117470
  Field(() => [KeyValuePairInput], { nullable: true }),
116185
117471
  __metadata("design:type", Array)
@@ -117263,6 +118549,10 @@ __decorate([
117263
118549
  Field(() => [MJSearchExecutionLog_]),
117264
118550
  __metadata("design:type", Array)
117265
118551
  ], MJSearchScope_.prototype, "MJSearchExecutionLogs_SearchScopeIDArray", void 0);
118552
+ __decorate([
118553
+ Field(() => [MJAISkillSearchScope_]),
118554
+ __metadata("design:type", Array)
118555
+ ], MJSearchScope_.prototype, "MJAISkillSearchScopes_SearchScopeIDArray", void 0);
117266
118556
  MJSearchScope_ = __decorate([
117267
118557
  ObjectType({ description: `A named, reusable boundary defining WHICH content participates in a search (providers, external indexes, entities, storage accounts). Combined with a runtime SearchContext, it enables multi-tenant, permission-aware, agent-friendly retrieval. See plans/search-scopes-rag-plus.md.` })
117268
118558
  ], MJSearchScope_);
@@ -117524,6 +118814,14 @@ let MJSearchScopeResolver = class MJSearchScopeResolver extends ResolverBase {
117524
118814
  const result = await this.ArrayMapFieldNamesToCodeNames('MJ: Search Execution Logs', rows, this.GetUserFromPayload(userPayload));
117525
118815
  return result;
117526
118816
  }
118817
+ async MJAISkillSearchScopes_SearchScopeIDArray(mjsearchscope_, { userPayload, providers }, pubSub) {
118818
+ this.CheckUserReadPermissions('MJ: AI Skill Search Scopes', userPayload);
118819
+ const provider = GetReadOnlyProvider(providers, { allowFallbackToReadWrite: true });
118820
+ const sSQL = `SELECT * FROM ${provider.QuoteSchemaAndView(Metadata.Provider.ConfigData.MJCoreSchemaName, 'vwAISkillSearchScopes')} WHERE ${provider.QuoteIdentifier('SearchScopeID')}=${provider.BuildParameterPlaceholder(0)} ` + this.getRowLevelSecurityWhereClause(provider, 'MJ: AI Skill Search Scopes', userPayload, EntityPermissionType.Read, 'AND');
118821
+ const rows = await provider.ExecuteSQL(sSQL, [mjsearchscope_.ID], undefined, this.GetUserFromPayload(userPayload));
118822
+ const result = await this.ArrayMapFieldNamesToCodeNames('MJ: AI Skill Search Scopes', rows, this.GetUserFromPayload(userPayload));
118823
+ return result;
118824
+ }
117527
118825
  async CreateMJSearchScope(input, { providers, userPayload }, pubSub) {
117528
118826
  const provider = GetReadWriteProvider(providers);
117529
118827
  return this.CreateRecord('MJ: Search Scopes', input, provider, userPayload, pubSub);
@@ -117646,6 +118944,15 @@ __decorate([
117646
118944
  __metadata("design:paramtypes", [MJSearchScope_, Object, PubSubEngine]),
117647
118945
  __metadata("design:returntype", Promise)
117648
118946
  ], MJSearchScopeResolver.prototype, "MJSearchExecutionLogs_SearchScopeIDArray", null);
118947
+ __decorate([
118948
+ FieldResolver(() => [MJAISkillSearchScope_]),
118949
+ __param(0, Root()),
118950
+ __param(1, Ctx()),
118951
+ __param(2, PubSub()),
118952
+ __metadata("design:type", Function),
118953
+ __metadata("design:paramtypes", [MJSearchScope_, Object, PubSubEngine]),
118954
+ __metadata("design:returntype", Promise)
118955
+ ], MJSearchScopeResolver.prototype, "MJAISkillSearchScopes_SearchScopeIDArray", null);
117649
118956
  __decorate([
117650
118957
  Mutation(() => MJSearchScope_),
117651
118958
  __param(0, Arg('input', () => CreateMJSearchScopeInput)),