@memberjunction/core-entities 5.43.0 → 5.44.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.
Files changed (53) hide show
  1. package/dist/custom/MJUserViewEntityExtended.d.ts.map +1 -1
  2. package/dist/custom/MJUserViewEntityExtended.js +16 -6
  3. package/dist/custom/MJUserViewEntityExtended.js.map +1 -1
  4. package/dist/custom/PermissionProviders/AISkillPermissionProvider.d.ts +35 -0
  5. package/dist/custom/PermissionProviders/AISkillPermissionProvider.d.ts.map +1 -0
  6. package/dist/custom/PermissionProviders/AISkillPermissionProvider.js +155 -0
  7. package/dist/custom/PermissionProviders/AISkillPermissionProvider.js.map +1 -0
  8. package/dist/custom/PermissionProviders/index.d.ts +1 -0
  9. package/dist/custom/PermissionProviders/index.d.ts.map +1 -1
  10. package/dist/custom/PermissionProviders/index.js +3 -0
  11. package/dist/custom/PermissionProviders/index.js.map +1 -1
  12. package/dist/engines/ApplicationSettingEngine.js +1 -1
  13. package/dist/engines/ApplicationSettingEngine.js.map +1 -1
  14. package/dist/engines/AuditLogTypeEngine.js +1 -1
  15. package/dist/engines/AuditLogTypeEngine.js.map +1 -1
  16. package/dist/engines/MCPEngine.js +7 -7
  17. package/dist/engines/MCPEngine.js.map +1 -1
  18. package/dist/engines/PermissionEngine.d.ts.map +1 -1
  19. package/dist/engines/PermissionEngine.js +3 -1
  20. package/dist/engines/PermissionEngine.js.map +1 -1
  21. package/dist/engines/QueryEngine.js +14 -14
  22. package/dist/engines/QueryEngine.js.map +1 -1
  23. package/dist/engines/ResourceTypeEngine.js +1 -1
  24. package/dist/engines/ResourceTypeEngine.js.map +1 -1
  25. package/dist/engines/SearchEngineBase.js +7 -7
  26. package/dist/engines/SearchEngineBase.js.map +1 -1
  27. package/dist/engines/TypeTablesCache.js +1 -1
  28. package/dist/engines/TypeTablesCache.js.map +1 -1
  29. package/dist/engines/UserInfoEngine.d.ts +57 -0
  30. package/dist/engines/UserInfoEngine.d.ts.map +1 -1
  31. package/dist/engines/UserInfoEngine.js +79 -17
  32. package/dist/engines/UserInfoEngine.js.map +1 -1
  33. package/dist/engines/UserViewEngine.js +1 -1
  34. package/dist/engines/UserViewEngine.js.map +1 -1
  35. package/dist/engines/artifacts.js +3 -3
  36. package/dist/engines/artifacts.js.map +1 -1
  37. package/dist/engines/conversations.d.ts +19 -0
  38. package/dist/engines/conversations.d.ts.map +1 -1
  39. package/dist/engines/conversations.js +76 -4
  40. package/dist/engines/conversations.js.map +1 -1
  41. package/dist/engines/dashboards.js +8 -8
  42. package/dist/engines/dashboards.js.map +1 -1
  43. package/dist/engines/interactive-forms.js +2 -2
  44. package/dist/engines/interactive-forms.js.map +1 -1
  45. package/dist/generated/entity_subclasses.d.ts +3696 -132
  46. package/dist/generated/entity_subclasses.d.ts.map +1 -1
  47. package/dist/generated/entity_subclasses.js +23202 -18166
  48. package/dist/generated/entity_subclasses.js.map +1 -1
  49. package/dist/generated/remote_operations.d.ts +584 -1
  50. package/dist/generated/remote_operations.d.ts.map +1 -1
  51. package/dist/generated/remote_operations.js +181 -1
  52. package/dist/generated/remote_operations.js.map +1 -1
  53. package/package.json +5 -5
@@ -6,9 +6,473 @@
6
6
  * emitted from the operation's metadata: OperationKey, ExecutionMode, RequiredScope, and the raw
7
7
  * TypeScript Input/Output type definitions. GenerationType=Manual rows emit a typed SHELL — a
8
8
  * hand-authored server subclass (registered via @RegisterClass) supplies the InternalExecute body.
9
- * GenerationType=AI/Default rows with Approved Code emit a complete, registered class.
9
+ * GenerationType=AI/Default rows with Approved Code emit a complete, registered class whose body imports
10
+ * the default libraries plus whatever it declared in its Libraries metadata.
10
11
  **************************************************/
11
12
  import { BaseRemotableOperation } from "@memberjunction/core";
13
+ /** Input for `AISkill.ExportMarkdown`. */
14
+ export interface AISkillExportMarkdownInput {
15
+ /** The `MJ: AI Skills` ID to export. */
16
+ skillID: string;
17
+ }
18
+ /** Output of `AISkill.ExportMarkdown`. */
19
+ export interface AISkillExportMarkdownOutput {
20
+ /** The portable SKILL.md document text. */
21
+ markdown: string;
22
+ /** The skill's Name, for the client to use as a suggested filename (e.g. `${name}.SKILL.md`). */
23
+ suggestedFileName: string;
24
+ }
25
+ /** Input for `AISkill.ImportMarkdown`. */
26
+ export interface AISkillImportMarkdownInput {
27
+ /** The SKILL.md document text to import. */
28
+ markdownText: string;
29
+ /**
30
+ * When provided, updates this existing skill (and resyncs its Action/sub-agent bundling)
31
+ * instead of creating a new one. Caller must confirm the current user may edit it.
32
+ */
33
+ updateSkillID?: string;
34
+ }
35
+ /** Output of `AISkill.ImportMarkdown`. */
36
+ export interface AISkillImportMarkdownOutput {
37
+ /** The created/updated `MJ: AI Skills` ID. */
38
+ skillID: string;
39
+ /** The skill's Name, for UI confirmation messaging. */
40
+ skillName: string;
41
+ /** Action/sub-agent names from the SKILL.md that couldn't be resolved in this instance — non-fatal. */
42
+ warnings: string[];
43
+ }
44
+ /** The control action to apply to a running/paused experiment session. */
45
+ export type PredictiveStudioExperimentSessionAction = 'pause' | 'resume' | 'cancel';
46
+ /** Input for `PredictiveStudio.ControlExperimentSession`. */
47
+ export interface PredictiveStudioControlExperimentSessionInput {
48
+ /** Id of the `MJ: Experiment Sessions` row to control. */
49
+ sessionId: string;
50
+ /** The control action: pause a running session, resume a paused one, or cancel. */
51
+ action: PredictiveStudioExperimentSessionAction;
52
+ }
53
+ /** Output of `PredictiveStudio.ControlExperimentSession` — the session's status after the control action. */
54
+ export interface PredictiveStudioControlExperimentSessionOutput {
55
+ /** The session's status after the control action (e.g. `Paused` / `Running` / `Cancelled`). */
56
+ status: string;
57
+ }
58
+ /** Input for `PredictiveStudio.CreateScoringProcess`. */
59
+ export interface PredictiveStudioCreateScoringProcessInput {
60
+ /** Id of the `MJ: ML Models` row the created Record Process scores with. */
61
+ modelId: string;
62
+ /** The entity whose rows are scored (e.g. `Memberships`). */
63
+ targetEntityName: string;
64
+ /**
65
+ * The records a run scores. Mirrors the Record Set Processing scope shapes
66
+ * (Filter / View / List). Populate EXACTLY ONE selector; `all` is the
67
+ * whole-entity shortcut ("score everyone"), expressed under the hood as a Filter
68
+ * with the all-rows predicate `(1=1)`.
69
+ */
70
+ scope: {
71
+ /** A SQL filter over the target entity selecting the rows to score. */
72
+ filter?: string;
73
+ /** A `User Views` id whose rows are scored. */
74
+ viewId?: string;
75
+ /** A `Lists` id whose member rows are scored. */
76
+ listId?: string;
77
+ /** Score the WHOLE target entity ("score everyone"); mutually exclusive with the others. */
78
+ all?: boolean;
79
+ };
80
+ /**
81
+ * Optional. The target-entity column to write the prediction into (e.g.
82
+ * `RenewalScore`). **When supplied → write-back mode**: each run writes the
83
+ * prediction into that column AND a `MJ: ML Model Scoring Bindings` lineage row
84
+ * (`Mode='OnDemand'`) is created. **When omitted → generic output, no binding**:
85
+ * predictions are recorded in the process run history (`MJ: Process Run Details`)
86
+ * only, with no write-back column and no scoring binding.
87
+ */
88
+ outputField?: string;
89
+ /**
90
+ * Which prediction value the write-back lands in `outputField` — the numeric
91
+ * `'score'` (probability / regression value — the default) or the predicted
92
+ * `'class'` label (classification). Ignored in generic mode (no `outputField`).
93
+ */
94
+ valueKind?: 'score' | 'class';
95
+ /** Primary-key field on the target entity the model joins on (defaults to `ID`). */
96
+ primaryKeyField?: string;
97
+ /** Optional Record Process name; a descriptive default is generated when omitted. */
98
+ name?: string;
99
+ }
100
+ /** Output of `PredictiveStudio.CreateScoringProcess` — the created on-demand scoring Record Process + write-back lineage. */
101
+ export interface PredictiveStudioCreateScoringProcessOutput {
102
+ /**
103
+ * Id of the created `MJ: Record Processes` row (`WorkType='ML Model'`,
104
+ * `OnDemandEnabled=true`, no schedule). This is the row the generic
105
+ * "Run Record Process" run-now Remote Op and the generic scheduler dialog target.
106
+ */
107
+ recordProcessId: string;
108
+ /**
109
+ * Whether write-back was configured — `true` when an `outputField` was supplied
110
+ * (the Record Process carries an `OutputMapping` and a scoring binding was
111
+ * created), `false` in generic mode (predictions recorded in run history only).
112
+ */
113
+ wroteColumn: boolean;
114
+ /**
115
+ * Id of the created `MJ: ML Model Scoring Bindings` lineage row (`Mode='OnDemand'`)
116
+ * in write-back mode. Omitted in generic mode (no `outputField`, no binding).
117
+ */
118
+ scoringBindingId?: string;
119
+ }
120
+ /** The lifecycle status to transition an ML Model to. */
121
+ export type PredictiveStudioModelTargetStatus = 'Validated' | 'Published' | 'Archived';
122
+ /** Input for `PredictiveStudio.PromoteModel`. */
123
+ export interface PredictiveStudioPromoteModelInput {
124
+ /** Id of the `MJ: ML Models` row to transition. */
125
+ modelId: string;
126
+ /** The lifecycle status to move the model to. */
127
+ targetStatus: PredictiveStudioModelTargetStatus;
128
+ /** Human/agent sign-off that overrides the leakage gate. Required (true) to promote a leakage-flagged model; ignored for clean models. */
129
+ signOff?: boolean;
130
+ /** Optional human-readable reason recorded with the promotion. */
131
+ reason?: string;
132
+ }
133
+ /** Output of `PredictiveStudio.PromoteModel` — whether the transition was applied + the new status. */
134
+ export interface PredictiveStudioPromoteModelOutput {
135
+ /** True when the model was transitioned to the target status. */
136
+ promoted: boolean;
137
+ /** The model's new lifecycle status on success (the target status); the unchanged current status when not promoted. */
138
+ status: string;
139
+ }
140
+ /**
141
+ * Runtime scope override for a Feature Pipeline run. A Feature Pipeline is a
142
+ * categorized `MJ: Record Processes` row, so this mirrors the Record Process
143
+ * runtime scope shapes (records / view / list / filter). When omitted, the
144
+ * pipeline's stored scope is used.
145
+ */
146
+ export type PredictiveStudioFeaturePipelineScope = {
147
+ Kind: 'records';
148
+ RecordIDs: string[];
149
+ } | {
150
+ Kind: 'view';
151
+ ViewID: string;
152
+ } | {
153
+ Kind: 'list';
154
+ ListID: string;
155
+ } | {
156
+ Kind: 'filter';
157
+ Filter?: string;
158
+ };
159
+ /** Input for `PredictiveStudio.RunFeaturePipeline`. */
160
+ export interface PredictiveStudioRunFeaturePipelineInput {
161
+ /** Id of the `MJ: Record Processes` row (a Feature Pipeline) to run. */
162
+ featurePipelineID: string;
163
+ /** When set, processes just this single record instead of the configured/scope rows. */
164
+ singleRecordID?: string;
165
+ /** Compute the per-record feature values WITHOUT writing them back (preview). */
166
+ dryRun?: boolean;
167
+ /** Runtime scope override (selected rows / a view / list / filter), used instead of the stored scope. */
168
+ scope?: PredictiveStudioFeaturePipelineScope;
169
+ }
170
+ /** Output of `PredictiveStudio.RunFeaturePipeline` — the underlying Record Process run summary. */
171
+ export interface PredictiveStudioRunFeaturePipelineOutput {
172
+ /** Id of the persisted `MJ: Process Runs` row produced by the underlying Record Process. */
173
+ processRunID?: string;
174
+ /** Run-level status (`Completed` / `Failed` / `Cancelled` / …). */
175
+ status: string;
176
+ /** Records the run touched. */
177
+ processed: number;
178
+ /** Records whose features were written back (0 in dry-run). */
179
+ written: number;
180
+ /** Records skipped (no rule matched / nothing changed). */
181
+ skipped: number;
182
+ /** Records that errored. */
183
+ error: number;
184
+ /** Run-level error detail when `status` is not `Completed`. */
185
+ errorMessage?: string;
186
+ }
187
+ /**
188
+ * The scope of records to score. Mirrors the Record Set Processing scope shapes
189
+ * (records / view / list / filter / single). Exactly one shape should be populated;
190
+ * the runner resolves it into a concrete record set.
191
+ */
192
+ export interface PredictiveStudioScoringScope {
193
+ /** Explicit record ids / primary-key objects to score. */
194
+ records?: Array<string | Record<string, unknown>>;
195
+ /** A `User Views` id whose rows are scored. */
196
+ viewId?: string;
197
+ /** A `Lists` id whose member rows are scored. */
198
+ listId?: string;
199
+ /** An entity name + SQL filter selecting the rows to score. */
200
+ filter?: {
201
+ entityName: string;
202
+ extraFilter?: string;
203
+ maxRows?: number;
204
+ };
205
+ /** A single record (entity + primary key) to score. */
206
+ single?: {
207
+ entityName: string;
208
+ primaryKey: Record<string, unknown>;
209
+ };
210
+ }
211
+ /**
212
+ * Optional write-back directive. `true` enables write-back with the model's default
213
+ * mapping; an object supplies an explicit `OutputMapping` (target column / child
214
+ * record). When omitted, predictions are returned ephemerally.
215
+ */
216
+ export type PredictiveStudioWriteBackDirective = boolean | {
217
+ OutputMapping: Record<string, unknown>;
218
+ };
219
+ /** Input for `PredictiveStudio.ScoreRecordSet`. */
220
+ export interface PredictiveStudioScoreRecordSetInput {
221
+ /** Id of the `MJ: ML Models` row to score with. */
222
+ modelId: string;
223
+ /** The records to score — populate exactly one selector on the scope. */
224
+ scope: PredictiveStudioScoringScope;
225
+ /** Compute the predictions WITHOUT writing them back (preview) when true/omitted with no write-back. */
226
+ dryRun?: boolean;
227
+ /** Optional write-back directive; when omitted (or false) predictions are returned ephemerally. */
228
+ writeBack?: PredictiveStudioWriteBackDirective;
229
+ }
230
+ /** A single ephemeral prediction surfaced when write-back is NOT requested. */
231
+ export interface PredictiveStudioEphemeralPrediction {
232
+ /** The scored record's id (when known). */
233
+ recordId?: string;
234
+ /** Numeric model output (probability or value). */
235
+ score: number;
236
+ /** Predicted class (classification only). */
237
+ class?: string;
238
+ }
239
+ /** Output of `PredictiveStudio.ScoreRecordSet` — the run summary. */
240
+ export interface PredictiveStudioScoreRecordSetOutput {
241
+ /** Number of records successfully scored. */
242
+ scored: number;
243
+ /** Number of records that failed to score. */
244
+ failed: number;
245
+ /** Number of records skipped (no selector matched / nothing to score). */
246
+ skipped: number;
247
+ /** True when the runner wrote scores back to the target (predictions are then NOT returned ephemerally). */
248
+ wroteBack: boolean;
249
+ /** Ephemeral predictions, present only when `wroteBack` is false. */
250
+ predictions?: PredictiveStudioEphemeralPrediction[];
251
+ }
252
+ /**
253
+ * Explicit resource budget for an experiment session — the bounded-autonomy
254
+ * guardrail. Mirrors `Budget` from `@memberjunction/predictive-studio-core`.
255
+ */
256
+ export interface PredictiveStudioBudget {
257
+ /** Max total compute cost the session may spend. */
258
+ MaxComputeCost?: number;
259
+ /** Max number of training runs/iterations the session may execute. */
260
+ MaxRuns?: number;
261
+ /** Max wall-clock minutes the session may run. */
262
+ MaxWallclockMinutes?: number;
263
+ }
264
+ /**
265
+ * The strongly-typed modeling plan to execute. Mirrors `ModelingPlanSpec` from
266
+ * `@memberjunction/predictive-studio-core` — the deterministic orchestrator runs
267
+ * its `ProposedExperiments` as waves. Must be approved (`Approved=true`) — execution
268
+ * is gated on user approval.
269
+ */
270
+ export interface PredictiveStudioModelingPlanSpec {
271
+ /** Business objective, refined from the user's initial goal. */
272
+ Goal: string;
273
+ /** Precise definition of what is being predicted. */
274
+ TargetDefinition: {
275
+ /** Training-unit entity (e.g. "Members"). */
276
+ EntityName: string;
277
+ /** Label expression/column. */
278
+ TargetVariable: string;
279
+ /** Classification or regression. */
280
+ ProblemType: 'classification' | 'regression';
281
+ /** The deterministic success metric driving the search (e.g. AUC / F1 / Accuracy / RMSE). */
282
+ SuccessMetric: string;
283
+ /** Optional point-in-time assembly strategy. */
284
+ AsOfStrategy?: {
285
+ Mode: 'none' | 'column' | 'offset';
286
+ Column?: string;
287
+ OffsetDays?: number;
288
+ };
289
+ };
290
+ /** Candidate feed-in sources proposed by the Data Scout, each with rationale. */
291
+ CandidateSources: Array<{
292
+ Kind: 'Entity' | 'Query' | 'ExternalEntity' | 'VectorSet' | 'FeaturePipeline';
293
+ Ref: string;
294
+ Why: string;
295
+ }>;
296
+ /** Candidate features proposed by the Data Scout, each with rationale. */
297
+ CandidateFeatures: Array<{
298
+ Name: string;
299
+ SourceRef: string;
300
+ Kind: 'numeric' | 'categorical' | 'embedding' | 'llm-derived';
301
+ Why: string;
302
+ }>;
303
+ /** Leakage risks identified by the Data Scout and the chosen action per field. */
304
+ LeakageNotes: Array<{
305
+ Field: string;
306
+ Risk: string;
307
+ Action: 'exclude' | 'allow';
308
+ }>;
309
+ /** Ranked experiments proposed by the Experiment Designer (feature combos × algorithms × hyperparameters). */
310
+ ProposedExperiments: Array<{
311
+ Label: string;
312
+ AlgorithmName: string;
313
+ FeatureSet: string[];
314
+ Hyperparameters?: Record<string, unknown>;
315
+ Rationale: string;
316
+ Priority: number;
317
+ }>;
318
+ /** Validation strategy for the search. */
319
+ ValidationStrategy: {
320
+ Strategy: 'train_test_split' | 'kfold' | 'holdout';
321
+ TestSize?: number;
322
+ K?: number;
323
+ LockedHoldoutFraction: number;
324
+ };
325
+ /** Proposed resource budget for the experiment session. */
326
+ ProposedBudget: PredictiveStudioBudget;
327
+ /** User approval gate — execution does not begin until this is true. */
328
+ Approved?: boolean;
329
+ }
330
+ /** Input for `PredictiveStudio.StartExperimentSession`. */
331
+ export interface PredictiveStudioStartExperimentSessionInput {
332
+ /** Optional id of an existing `MJ: Experiments` definition to attach the session to. When omitted, a new durable Experiment is created from the plan. */
333
+ experimentId?: string;
334
+ /** The approved modeling plan to execute. Must have `Approved=true`. */
335
+ planSpec: PredictiveStudioModelingPlanSpec;
336
+ /** Optional budget override; when omitted the plan's `ProposedBudget` is used. */
337
+ budget?: PredictiveStudioBudget;
338
+ /** Optional human-readable session name (defaults to one derived from the plan goal). */
339
+ sessionName?: string;
340
+ }
341
+ /** Output of `PredictiveStudio.StartExperimentSession` — the created/executed session. */
342
+ export interface PredictiveStudioStartExperimentSessionOutput {
343
+ /** Id of the `MJ: Experiment Sessions` row that was started. */
344
+ sessionId: string;
345
+ /** Id of the durable `MJ: Experiments` definition the session runs under. */
346
+ experimentId: string;
347
+ /** The session's status after starting (`Running`, or `Completed`/`Paused` if it ran to a bound synchronously). */
348
+ status: string;
349
+ }
350
+ /** Optional point-in-time assembly strategy for the train (mirrors the pipeline's stored AsOfStrategy). */
351
+ export interface PredictiveStudioTrainAsOf {
352
+ /** How to anchor feature assembly in time: no anchoring, a column on the row, or an offset before the label event. */
353
+ Mode: 'none' | 'column' | 'offset';
354
+ /** Column carrying the as-of timestamp (when `Mode` is `column`). */
355
+ Column?: string;
356
+ /** Days before the label event to assemble features (when `Mode` is `offset`). */
357
+ OffsetDays?: number;
358
+ }
359
+ /** Input for `PredictiveStudio.TrainModel`. */
360
+ export interface PredictiveStudioTrainModelInput {
361
+ /** Id of the `MJ: ML Training Pipelines` row to train. */
362
+ pipelineId: string;
363
+ /** Optional `MJ: Experiment Session Iterations` id this run belongs to (NULL for a one-off standalone train). */
364
+ experimentSessionIterationId?: string;
365
+ /** Optional cap on the number of training rows pulled from the target entity. */
366
+ maxRows?: number;
367
+ /** Optional primary-key field on the target entity (defaults to `ID`). */
368
+ primaryKeyField?: string;
369
+ /** Optional per-record label-event dates (keyed by record primary key), required when `asOf.Mode` is `offset`. */
370
+ labelEventDates?: Record<string, string>;
371
+ /** Optional as-of strategy override; when omitted the pipeline's stored `AsOfStrategy` is used. */
372
+ asOf?: PredictiveStudioTrainAsOf;
373
+ /** Sidecar version string recorded in the model lineage for provenance. */
374
+ sidecarVersion?: string;
375
+ }
376
+ /** Output of `PredictiveStudio.TrainModel` — the produced (Draft) model + its honest metrics. */
377
+ export interface PredictiveStudioTrainModelOutput {
378
+ /** Id of the produced (Draft) `MJ: ML Models` row. */
379
+ modelId: string;
380
+ /** Id of the `MJ: ML Training Runs` row recording this attempt. */
381
+ trainingRunId: string;
382
+ /** Monotonic model version under the pipeline (`max(Version)+1`). */
383
+ version: number;
384
+ /** JSON of the metrics scored exactly once on the locked holdout the search never saw (the honest performance number). */
385
+ holdoutMetrics?: string;
386
+ /** True when one feature dominates the model's predictions (possible target leakage). A flagged model stays Draft and needs human sign-off before promotion. */
387
+ leakageFlagged: boolean;
388
+ /** Lifecycle status of the produced model (always `Draft` immediately after training). */
389
+ status: string;
390
+ }
391
+ /** A single primary-key field/value pair identifying a record to compare. */
392
+ export interface RecordComparisonKeyValuePair {
393
+ /** Primary-key field name (e.g. "ID"). */
394
+ FieldName: string;
395
+ /** Primary-key value, as a string (UUIDs, ints, etc. are all sent as strings). */
396
+ Value: string;
397
+ }
398
+ /**
399
+ * One record to compare, expressed as its composite key (one pair for single-PK
400
+ * entities, multiple for composite-PK entities).
401
+ */
402
+ export interface RecordComparisonKey {
403
+ /** The primary-key field/value pairs uniquely identifying this record. */
404
+ KeyValuePairs: RecordComparisonKeyValuePair[];
405
+ }
406
+ /** Input for `RecordComparison.Compare`. */
407
+ export interface RecordComparisonCompareInput {
408
+ /** Registered entity name (e.g. "Accounts"), NOT the physical table name. */
409
+ EntityName: string;
410
+ /**
411
+ * The records to compare, in column order. By convention the first key is the
412
+ * survivor candidate (the reference column); the rest are potential matches.
413
+ */
414
+ Keys: RecordComparisonKey[];
415
+ /**
416
+ * Optional include-list of field names to restrict the comparison to. When omitted,
417
+ * all non-PK, non-system fields are compared (matched case-insensitively).
418
+ */
419
+ IncludeFields?: string[];
420
+ }
421
+ /** A scalar field value as loaded from the database. */
422
+ export type RecordComparisonFieldValue = string | number | boolean | null;
423
+ /** One loaded record in the comparison. Mirrors the engine's `RecordComparisonRecord`. */
424
+ export interface RecordComparisonRecord {
425
+ /** Zero-based index aligned with the input `Keys` array (the comparison column). */
426
+ ColumnIndex: number;
427
+ /** The composite key identifying this record (as supplied in the input). */
428
+ Key: unknown;
429
+ /** A human-readable label for the record. */
430
+ Label: string;
431
+ /** Plain field-name → value map for this record (only the compared fields). */
432
+ Values: Record<string, RecordComparisonFieldValue>;
433
+ }
434
+ /** Per-record value of a single field. Mirrors the engine's `RecordComparisonFieldCell`. */
435
+ export interface RecordComparisonFieldCell {
436
+ /** Column index aligned with the record's `ColumnIndex`. */
437
+ ColumnIndex: number;
438
+ /** The field's value for this record. */
439
+ Value: RecordComparisonFieldValue;
440
+ /**
441
+ * True when this cell's value equals (case-insensitive, trimmed) the reference
442
+ * cell (column 0). Column 0 is always true.
443
+ */
444
+ EqualsReference: boolean;
445
+ }
446
+ /**
447
+ * The delta for a single field across all compared records. Mirrors the engine's
448
+ * `RecordComparisonFieldDelta`.
449
+ */
450
+ export interface RecordComparisonFieldDelta {
451
+ /** Field name (matches the entity field metadata Name). */
452
+ FieldName: string;
453
+ /** Display name for the field. */
454
+ DisplayName: string;
455
+ /** Optional grouping category from the field metadata. */
456
+ Category: string | null;
457
+ /** Per-record values for this field, in column order. */
458
+ Cells: RecordComparisonFieldCell[];
459
+ /** True when at least one record's value differs from the reference (column 0). */
460
+ Differs: boolean;
461
+ }
462
+ /**
463
+ * Output of `RecordComparison.Compare` — the loaded records plus the per-field delta
464
+ * matrix. Logical success/failure is carried by the wrapping `RemoteOpResult` (a failed
465
+ * comparison surfaces as `Success=false` + `ErrorMessage`), so this payload is the
466
+ * success body only.
467
+ */
468
+ export interface RecordComparisonCompareOutput {
469
+ /** The registered entity name that was compared. */
470
+ EntityName: string;
471
+ /** The loaded records, in input column order. */
472
+ Records: RecordComparisonRecord[];
473
+ /** The per-field delta matrix. Only fields with at least one non-empty value. */
474
+ Fields: RecordComparisonFieldDelta[];
475
+ }
12
476
  /** Input for the pause / resume / cancel control operations. */
13
477
  export interface ProcessRunControlInput {
14
478
  /** The `MJ: Process Runs` row to control. */
@@ -89,6 +553,125 @@ export interface TemplateRunOutput {
89
553
  /** Wall-clock render time in milliseconds. */
90
554
  executionTimeMs?: number;
91
555
  }
556
+ /**
557
+ * Export AI Skill Markdown
558
+ * Exports an MJ: AI Skills record to the portable SKILL.md format (frontmatter + Instructions body). Bundled Action/sub-agent IDs are resolved to their current Names for cross-instance portability. Implemented by AISkillExportMarkdownServerOperation in @memberjunction/ai-agents.
559
+ * GenerationType=Manual — the server body is supplied by a hand-authored subclass registered
560
+ * under 'AISkill.ExportMarkdown'. This generated base provides the typed contract only (client-safe).
561
+ */
562
+ export declare class AISkillExportMarkdownOperation extends BaseRemotableOperation<AISkillExportMarkdownInput, AISkillExportMarkdownOutput> {
563
+ readonly OperationKey = "AISkill.ExportMarkdown";
564
+ readonly ExecutionMode: "Sync";
565
+ readonly RequiredScope = "aiskill:manage";
566
+ readonly RequiresSystemUser = false;
567
+ }
568
+ /**
569
+ * Import AI Skill Markdown
570
+ * Imports a SKILL.md document, resolving Action/sub-agent names against this instance's catalog (unresolvable names become non-fatal warnings), and creates or updates the MJ: AI Skills record plus its Action/sub-agent bundling junction rows. Implemented by AISkillImportMarkdownServerOperation in @memberjunction/ai-agents.
571
+ * GenerationType=Manual — the server body is supplied by a hand-authored subclass registered
572
+ * under 'AISkill.ImportMarkdown'. This generated base provides the typed contract only (client-safe).
573
+ */
574
+ export declare class AISkillImportMarkdownOperation extends BaseRemotableOperation<AISkillImportMarkdownInput, AISkillImportMarkdownOutput> {
575
+ readonly OperationKey = "AISkill.ImportMarkdown";
576
+ readonly ExecutionMode: "Sync";
577
+ readonly RequiredScope = "aiskill:manage";
578
+ readonly RequiresSystemUser = false;
579
+ }
580
+ /**
581
+ * Control Experiment Session
582
+ * Pause, resume, or cancel an MJ: Experiment Sessions run (honored at the next wave checkpoint). Returns the session's status after the control action. A quick lifecycle transition over the experiment orchestrator's session state.
583
+ * GenerationType=Manual — the server body is supplied by a hand-authored subclass registered
584
+ * under 'PredictiveStudio.ControlExperimentSession'. This generated base provides the typed contract only (client-safe).
585
+ */
586
+ export declare class PredictiveStudioControlExperimentSessionOperation extends BaseRemotableOperation<PredictiveStudioControlExperimentSessionInput, PredictiveStudioControlExperimentSessionOutput> {
587
+ readonly OperationKey = "PredictiveStudio.ControlExperimentSession";
588
+ readonly ExecutionMode: "Sync";
589
+ readonly RequiredScope = "predictive:execute";
590
+ readonly RequiresSystemUser = false;
591
+ }
592
+ /**
593
+ * Create Scoring Process
594
+ * Create an on-demand WorkType='ML Model' MJ: Record Processes row that scores a target entity's records with a trained MJ: ML Models (no schedule). The scope selects records (a saved view / a list / an entity filter / the whole entity). When outputField is supplied, the run writes the prediction into that column and a MJ: ML Model Scoring Bindings lineage row (Mode='OnDemand') is created; when omitted, output is generic (run history only) with no binding. Returns the new Record Process id, whether a write-back column was configured, and the scoring binding id (when created). The created row is then run-now via the Run Record Process operation or scheduled via the generic scheduling dialog. Delegates to createScoringProcess in @memberjunction/predictive-studio-engine.
595
+ * GenerationType=Manual — the server body is supplied by a hand-authored subclass registered
596
+ * under 'PredictiveStudio.CreateScoringProcess'. This generated base provides the typed contract only (client-safe).
597
+ */
598
+ export declare class PredictiveStudioCreateScoringProcessOperation extends BaseRemotableOperation<PredictiveStudioCreateScoringProcessInput, PredictiveStudioCreateScoringProcessOutput> {
599
+ readonly OperationKey = "PredictiveStudio.CreateScoringProcess";
600
+ readonly ExecutionMode: "Sync";
601
+ readonly RequiredScope = "predictive:execute";
602
+ readonly RequiresSystemUser = false;
603
+ }
604
+ /**
605
+ * Promote ML Model
606
+ * Transition an MJ: ML Models row through its lifecycle (Validated / Published / Archived). Enforces the leakage sign-off gate — a model flagged for possible target leakage cannot be promoted unless signOff=true. Lifecycle-only: never edits metrics or artifact, only Status. Returns whether the model was promoted and its new status. Delegates to the ProductionModelPromotionGate in @memberjunction/predictive-studio-engine.
607
+ * GenerationType=Manual — the server body is supplied by a hand-authored subclass registered
608
+ * under 'PredictiveStudio.PromoteModel'. This generated base provides the typed contract only (client-safe).
609
+ */
610
+ export declare class PredictiveStudioPromoteModelOperation extends BaseRemotableOperation<PredictiveStudioPromoteModelInput, PredictiveStudioPromoteModelOutput> {
611
+ readonly OperationKey = "PredictiveStudio.PromoteModel";
612
+ readonly ExecutionMode: "Sync";
613
+ readonly RequiredScope = "predictive:execute";
614
+ readonly RequiresSystemUser = false;
615
+ }
616
+ /**
617
+ * Run Feature Pipeline
618
+ * Run a Feature Pipeline — a categorized MJ: Record Processes row — over an optional runtime scope (selected records / view / list / filter), optionally as a dry-run preview that computes feature values without writing. Returns processed/written/skipped/error counts plus the MJ: Process Runs id. Runs the underlying Record Process (no dedicated entity); delegates to the Record Process substrate.
619
+ * GenerationType=Manual — the server body is supplied by a hand-authored subclass registered
620
+ * under 'PredictiveStudio.RunFeaturePipeline'. This generated base provides the typed contract only (client-safe).
621
+ */
622
+ export declare class PredictiveStudioRunFeaturePipelineOperation extends BaseRemotableOperation<PredictiveStudioRunFeaturePipelineInput, PredictiveStudioRunFeaturePipelineOutput> {
623
+ readonly OperationKey = "PredictiveStudio.RunFeaturePipeline";
624
+ readonly ExecutionMode: "LongRunning";
625
+ readonly RequiredScope = "predictive:execute";
626
+ readonly RequiresSystemUser = false;
627
+ }
628
+ /**
629
+ * Score Record Set
630
+ * Score a set of records with a trained MJ: ML Models row. The scope selects records (explicit ids / a saved view / a list / an entity+filter / a single record). Optionally a dry-run preview, or a write-back to the target. Returns scored/failed/skipped counts plus either the ephemeral predictions or write-back confirmation. Delegates to the MLModelInferenceProcessor scoring work type in @memberjunction/predictive-studio-engine.
631
+ * GenerationType=Manual — the server body is supplied by a hand-authored subclass registered
632
+ * under 'PredictiveStudio.ScoreRecordSet'. This generated base provides the typed contract only (client-safe).
633
+ */
634
+ export declare class PredictiveStudioScoreRecordSetOperation extends BaseRemotableOperation<PredictiveStudioScoreRecordSetInput, PredictiveStudioScoreRecordSetOutput> {
635
+ readonly OperationKey = "PredictiveStudio.ScoreRecordSet";
636
+ readonly ExecutionMode: "LongRunning";
637
+ readonly RequiredScope = "predictive:execute";
638
+ readonly RequiresSystemUser = false;
639
+ }
640
+ /**
641
+ * Start Experiment Session
642
+ * Start an experiment session from an approved ModelingPlanSpec — running its proposed experiments in waves under a Budget, maintaining a leaderboard. Optionally attaches to an existing MJ: Experiments definition or creates a new one. Returns the session id, experiment id, and initial status. Delegates to ExperimentOrchestrator.runSession in @memberjunction/predictive-studio-engine.
643
+ * GenerationType=Manual — the server body is supplied by a hand-authored subclass registered
644
+ * under 'PredictiveStudio.StartExperimentSession'. This generated base provides the typed contract only (client-safe).
645
+ */
646
+ export declare class PredictiveStudioStartExperimentSessionOperation extends BaseRemotableOperation<PredictiveStudioStartExperimentSessionInput, PredictiveStudioStartExperimentSessionOutput> {
647
+ readonly OperationKey = "PredictiveStudio.StartExperimentSession";
648
+ readonly ExecutionMode: "LongRunning";
649
+ readonly RequiredScope = "predictive:execute";
650
+ readonly RequiresSystemUser = false;
651
+ }
652
+ /**
653
+ * Train ML Model
654
+ * Train a predictive model from an MJ: ML Training Pipelines definition. Carves a locked holdout (point-in-time/as-of aware), trains via the sidecar, persists an immutable Draft MJ: ML Models row, and flags single-feature dominance (possible target leakage). Returns the new model id, its honest holdout metrics, the leakage flag, and the model version. Delegates to TrainingEngine.trainModel in @memberjunction/predictive-studio-engine.
655
+ * GenerationType=Manual — the server body is supplied by a hand-authored subclass registered
656
+ * under 'PredictiveStudio.TrainModel'. This generated base provides the typed contract only (client-safe).
657
+ */
658
+ export declare class PredictiveStudioTrainModelOperation extends BaseRemotableOperation<PredictiveStudioTrainModelInput, PredictiveStudioTrainModelOutput> {
659
+ readonly OperationKey = "PredictiveStudio.TrainModel";
660
+ readonly ExecutionMode: "LongRunning";
661
+ readonly RequiredScope = "predictive:execute";
662
+ readonly RequiresSystemUser = false;
663
+ }
664
+ /**
665
+ * Compare Records
666
+ * Load a set of an entity's records (by composite key, column 0 = survivor/reference) and compute the field-level delta matrix between them. Read-only. Returns the loaded records + per-field deltas. Implemented by RecordComparisonCompareServerOperation in @memberjunction/record-comparison.
667
+ * GenerationType=Manual — the server body is supplied by a hand-authored subclass registered
668
+ * under 'RecordComparison.Compare'. This generated base provides the typed contract only (client-safe).
669
+ */
670
+ export declare class RecordComparisonCompareOperation extends BaseRemotableOperation<RecordComparisonCompareInput, RecordComparisonCompareOutput> {
671
+ readonly OperationKey = "RecordComparison.Compare";
672
+ readonly ExecutionMode: "Sync";
673
+ readonly RequiresSystemUser = false;
674
+ }
92
675
  /**
93
676
  * Cancel Record Process Run
94
677
  * Request cancellation of a running Record Process (honored at the next checkpoint). Returns the run's status. Implemented by RecordProcessCancelRunOperation in @memberjunction/record-set-processor.
@@ -1 +1 @@
1
- {"version":3,"file":"remote_operations.d.ts","sourceRoot":"","sources":["../../src/generated/remote_operations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"remote_operations.d.ts","sourceRoot":"","sources":["../../src/generated/remote_operations.ts"],"names":[],"mappings":"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"}