@memberjunction/core-actions 6.2.0-edge.0 → 6.2.0-edge.2

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 (114) hide show
  1. package/dist/config.d.ts +6 -0
  2. package/dist/config.d.ts.map +1 -1
  3. package/dist/config.js +16 -4
  4. package/dist/config.js.map +1 -1
  5. package/dist/custom/ai/base-find-actions.action.js +6 -6
  6. package/dist/custom/ai/base-find-agents.action.d.ts.map +1 -1
  7. package/dist/custom/ai/base-find-agents.action.js +8 -13
  8. package/dist/custom/ai/base-find-agents.action.js.map +1 -1
  9. package/dist/custom/ai/find-candidate-agents.action.d.ts.map +1 -1
  10. package/dist/custom/ai/find-candidate-agents.action.js +4 -3
  11. package/dist/custom/ai/find-candidate-agents.action.js.map +1 -1
  12. package/dist/custom/ai/generate-image.action.d.ts +63 -5
  13. package/dist/custom/ai/generate-image.action.d.ts.map +1 -1
  14. package/dist/custom/ai/generate-image.action.js +196 -139
  15. package/dist/custom/ai/generate-image.action.js.map +1 -1
  16. package/dist/custom/ai/run-decision.action.d.ts +45 -0
  17. package/dist/custom/ai/run-decision.action.d.ts.map +1 -0
  18. package/dist/custom/ai/run-decision.action.js +169 -0
  19. package/dist/custom/ai/run-decision.action.js.map +1 -0
  20. package/dist/custom/ai/semantic-entity-search.helper.d.ts +6 -0
  21. package/dist/custom/ai/semantic-entity-search.helper.d.ts.map +1 -1
  22. package/dist/custom/ai/semantic-entity-search.helper.js +16 -4
  23. package/dist/custom/ai/semantic-entity-search.helper.js.map +1 -1
  24. package/dist/custom/data/search-query-catalog.action.js +2 -2
  25. package/dist/custom/integration/api-rate-limiter.action.d.ts +4 -0
  26. package/dist/custom/integration/api-rate-limiter.action.d.ts.map +1 -1
  27. package/dist/custom/integration/api-rate-limiter.action.js +10 -2
  28. package/dist/custom/integration/api-rate-limiter.action.js.map +1 -1
  29. package/dist/custom/integration/gamma-generate-presentation.action.js +2 -2
  30. package/dist/custom/integration/integration-action-executor.d.ts +22 -22
  31. package/dist/custom/integration/integration-action-executor.js +83 -83
  32. package/dist/custom/interactive-forms/_shared.d.ts +69 -0
  33. package/dist/custom/interactive-forms/_shared.d.ts.map +1 -1
  34. package/dist/custom/interactive-forms/_shared.js +118 -38
  35. package/dist/custom/interactive-forms/_shared.js.map +1 -1
  36. package/dist/custom/interactive-forms/activate-interactive-form-version.action.js +25 -25
  37. package/dist/custom/interactive-forms/create-interactive-form.action.js +22 -22
  38. package/dist/custom/interactive-forms/modify-interactive-form.action.js +35 -35
  39. package/dist/custom/interactive-forms/revert-interactive-form.action.js +32 -32
  40. package/dist/custom/lists/_action-helpers.d.ts +10 -0
  41. package/dist/custom/lists/_action-helpers.d.ts.map +1 -1
  42. package/dist/custom/lists/_action-helpers.js +26 -6
  43. package/dist/custom/lists/_action-helpers.js.map +1 -1
  44. package/dist/custom/lists/add-view-results-to-list.action.js +8 -8
  45. package/dist/custom/lists/bulk-update-list-item-status.action.js +8 -8
  46. package/dist/custom/lists/compose-lists.action.js +14 -14
  47. package/dist/custom/lists/invite-to-list.action.js +10 -10
  48. package/dist/custom/lists/materialize-list-from-view.action.js +13 -13
  49. package/dist/custom/lists/move-list-members.action.js +12 -12
  50. package/dist/custom/lists/refresh-list-from-source.action.js +8 -8
  51. package/dist/custom/lists/resolve-audience.action.js +7 -7
  52. package/dist/custom/lists/revoke-list-invitation.action.js +3 -3
  53. package/dist/custom/lists/share-list.action.js +8 -8
  54. package/dist/custom/lists/unshare-list.action.js +3 -3
  55. package/dist/custom/record-cloning/clone-record.action.d.ts +15 -0
  56. package/dist/custom/record-cloning/clone-record.action.d.ts.map +1 -0
  57. package/dist/custom/record-cloning/clone-record.action.js +125 -0
  58. package/dist/custom/record-cloning/clone-record.action.js.map +1 -0
  59. package/dist/custom/record-cloning/clone-records.action.d.ts +15 -0
  60. package/dist/custom/record-cloning/clone-records.action.d.ts.map +1 -0
  61. package/dist/custom/record-cloning/clone-records.action.js +175 -0
  62. package/dist/custom/record-cloning/clone-records.action.js.map +1 -0
  63. package/dist/custom/utilities/address-services.action.js +2 -2
  64. package/dist/custom/utilities/artifact-builder-service.d.ts +16 -16
  65. package/dist/custom/utilities/artifact-builder-service.js +39 -39
  66. package/dist/custom/utilities/artifact-builder-service.js.map +1 -1
  67. package/dist/custom/utilities/docx-renderer.d.ts +17 -11
  68. package/dist/custom/utilities/docx-renderer.d.ts.map +1 -1
  69. package/dist/custom/utilities/docx-renderer.js +60 -48
  70. package/dist/custom/utilities/docx-renderer.js.map +1 -1
  71. package/dist/custom/utilities/json-param-helper.d.ts +6 -0
  72. package/dist/custom/utilities/json-param-helper.d.ts.map +1 -1
  73. package/dist/custom/utilities/json-param-helper.js +16 -4
  74. package/dist/custom/utilities/json-param-helper.js.map +1 -1
  75. package/dist/custom/utilities/pdf-renderer.d.ts +13 -7
  76. package/dist/custom/utilities/pdf-renderer.d.ts.map +1 -1
  77. package/dist/custom/utilities/pdf-renderer.js +27 -15
  78. package/dist/custom/utilities/pdf-renderer.js.map +1 -1
  79. package/dist/custom/utilities/vectorize-entity.action.js +1 -1
  80. package/dist/custom/utilities/vectorize-entity.action.js.map +1 -1
  81. package/dist/custom/utilities/xlsx-renderer.d.ts +19 -11
  82. package/dist/custom/utilities/xlsx-renderer.d.ts.map +1 -1
  83. package/dist/custom/utilities/xlsx-renderer.js +55 -39
  84. package/dist/custom/utilities/xlsx-renderer.js.map +1 -1
  85. package/dist/custom/visualization/create-svg-chart.action.js +23 -23
  86. package/dist/custom/visualization/create-svg-diagram.action.js +10 -10
  87. package/dist/custom/visualization/create-svg-infographic.action.js +4 -4
  88. package/dist/custom/visualization/create-svg-network.action.js +12 -12
  89. package/dist/custom/visualization/create-svg-sketch-diagram.action.js +10 -10
  90. package/dist/custom/visualization/create-svg-word-cloud.action.js +11 -11
  91. package/dist/custom/visualization/shared/svg-theming.d.ts +17 -0
  92. package/dist/custom/visualization/shared/svg-theming.d.ts.map +1 -1
  93. package/dist/custom/visualization/shared/svg-theming.js +34 -10
  94. package/dist/custom/visualization/shared/svg-theming.js.map +1 -1
  95. package/dist/custom/visualization/shared/svg-utils.d.ts +39 -0
  96. package/dist/custom/visualization/shared/svg-utils.d.ts.map +1 -1
  97. package/dist/custom/visualization/shared/svg-utils.js +81 -17
  98. package/dist/custom/visualization/shared/svg-utils.js.map +1 -1
  99. package/dist/custom/web/duckduckgo-rate-limiter.d.ts +17 -1
  100. package/dist/custom/web/duckduckgo-rate-limiter.d.ts.map +1 -1
  101. package/dist/custom/web/duckduckgo-rate-limiter.js +26 -6
  102. package/dist/custom/web/duckduckgo-rate-limiter.js.map +1 -1
  103. package/dist/custom/web/google-custom-search.action.js +2 -2
  104. package/dist/custom/web/rss-feed-parsing.d.ts +19 -0
  105. package/dist/custom/web/rss-feed-parsing.d.ts.map +1 -1
  106. package/dist/custom/web/rss-feed-parsing.js +45 -13
  107. package/dist/custom/web/rss-feed-parsing.js.map +1 -1
  108. package/dist/custom/web/rss-feed-read.action.js +5 -5
  109. package/dist/custom/web/tavily-search.action.js +2 -2
  110. package/dist/index.d.ts +3 -0
  111. package/dist/index.d.ts.map +1 -1
  112. package/dist/index.js +3 -0
  113. package/dist/index.js.map +1 -1
  114. package/package.json +42 -40
@@ -6,9 +6,10 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  };
7
7
  import { RegisterClass } from "@memberjunction/global";
8
8
  import { BaseAction } from "@memberjunction/actions";
9
- import { MJGlobal, UUIDsEqual } from "@memberjunction/global";
10
- import { BaseImageGenerator, GetAIAPIKey, } from "@memberjunction/ai";
9
+ import { UUIDsEqual } from "@memberjunction/global";
10
+ import { GetAIAPIKey, } from "@memberjunction/ai";
11
11
  import { AIEngineBase } from "@memberjunction/ai-engine-base";
12
+ import { AIImageGenerationRunner, } from "@memberjunction/ai-prompts";
12
13
  /**
13
14
  * Action that generates images using AI image generation models (DALL-E, Gemini, etc.)
14
15
  *
@@ -76,15 +77,45 @@ import { AIEngineBase } from "@memberjunction/ai-engine-base";
76
77
  * the platform key as it always did. Then the vendor-name fallback that was always here — but
77
78
  * actually USED this time: the previous code found a key by vendor name and then handed the empty
78
79
  * driver-class result to the generator, so that branch never produced an image.
80
+ *
81
+ * @deprecated Kept for compatibility only: `GenerateImageAction` no longer calls it. Use
82
+ * {@link BuildImageGenerationAPIKeys}, which the action and the runner use.
79
83
  */
80
84
  export function ResolveImageGenerationAPIKey(driverClass, vendorName, resolve) {
85
+ const key = findImageGenerationAPIKey(driverClass, vendorName, resolve);
86
+ if (key)
87
+ return key;
88
+ throw new Error(`No API key found for ${driverClass} or vendor ${vendorName || 'unknown'}`);
89
+ }
90
+ /** {@link ResolveImageGenerationAPIKey}'s lookup, answering undefined rather than throwing when nothing resolves. */
91
+ function findImageGenerationAPIKey(driverClass, vendorName, resolve) {
81
92
  const byDriver = resolve?.(driverClass) || GetAIAPIKey(driverClass);
82
93
  if (byDriver)
83
94
  return byDriver;
84
95
  const byVendor = vendorName ? resolve?.(vendorName) || GetAIAPIKey(vendorName) : '';
85
- if (byVendor)
86
- return byVendor;
87
- throw new Error(`No API key found for ${driverClass} or vendor ${vendorName || 'unknown'}`);
96
+ return byVendor || undefined;
97
+ }
98
+ /**
99
+ * The keys an image run hands the runner as `APIKeys`: at most one per driver class, resolved as
100
+ * {@link ResolveImageGenerationAPIKey} does. A key reaches only the candidates of its own driver
101
+ * class, so a run's own key survives failover to another vendor only if that vendor's class has
102
+ * one here.
103
+ *
104
+ * `sources` should be in the order the runner tries its candidates. When two sources share a driver
105
+ * class, the first whose key resolves wins, so the key a class carries is the one for the vendor the
106
+ * runner reaches first. A class with no key anywhere is left out: the runner may still resolve a
107
+ * credential binding for it, and otherwise skips it.
108
+ */
109
+ export function BuildImageGenerationAPIKeys(sources, resolve) {
110
+ const keys = [];
111
+ for (const source of sources) {
112
+ if (keys.some(k => k.driverClass === source.DriverClass))
113
+ continue;
114
+ const apiKey = findImageGenerationAPIKey(source.DriverClass, source.VendorName, resolve);
115
+ if (apiKey)
116
+ keys.push({ driverClass: source.DriverClass, apiKey });
117
+ }
118
+ return keys;
88
119
  }
89
120
  let GenerateImageAction = class GenerateImageAction extends BaseAction {
90
121
  /**
@@ -95,7 +126,8 @@ let GenerateImageAction = class GenerateImageAction extends BaseAction {
95
126
  *
96
127
  * @param params - The action parameters containing:
97
128
  * - Prompt: Text description of the image to generate or edit instructions (required)
98
- * - Model: Model name/ID to use (optional, uses default if not specified)
129
+ * - Model: Model name or API name to pin (optional; when not specified, the `Default Image
130
+ * Generation` prompt's bindings choose, with failover between them)
99
131
  * - NumberOfImages: Number of images to generate (optional, default: 1)
100
132
  * - Size: Image size like "1024x1024" (optional)
101
133
  * - Quality: Quality level - "standard" or "hd" (optional)
@@ -110,16 +142,6 @@ let GenerateImageAction = class GenerateImageAction extends BaseAction {
110
142
  async InternalRunAction(params) {
111
143
  try {
112
144
  const prompt = this.getParamValue(params, 'prompt');
113
- const modelName = this.getParamValue(params, 'model');
114
- const numberOfImages = this.getNumberParam(params, 'numberofimages', 1);
115
- const size = this.getParamValue(params, 'size') || '1024x1024';
116
- const quality = this.getParamValue(params, 'quality');
117
- const style = this.getParamValue(params, 'style');
118
- const negativePrompt = this.getParamValue(params, 'negativeprompt');
119
- const outputFormat = this.getParamValue(params, 'outputformat') || 'base64';
120
- const sourceImage = this.getParamValue(params, 'sourceimage');
121
- const mask = this.getParamValue(params, 'mask');
122
- // Validate prompt
123
145
  if (!prompt) {
124
146
  return {
125
147
  Success: false,
@@ -127,89 +149,10 @@ let GenerateImageAction = class GenerateImageAction extends BaseAction {
127
149
  ResultCode: "MISSING_PROMPT"
128
150
  };
129
151
  }
130
- // Get image generator model and create instance
131
- const { generator, model, apiName } = await this.prepareImageGenerator(params.ContextUser, modelName, params.RuntimeAPIKeyResolver);
132
- let result;
133
- if (sourceImage) {
134
- // Image-to-image: use EditImage when source image is provided
135
- result = await this.executeImageEdit(generator, {
136
- prompt,
137
- apiName,
138
- sourceImage,
139
- mask,
140
- numberOfImages,
141
- size,
142
- outputFormat,
143
- negativePrompt
144
- });
145
- }
146
- else {
147
- // Text-to-image: use GenerateImage
148
- result = await this.executeImageGeneration(generator, {
149
- prompt,
150
- apiName,
151
- numberOfImages,
152
- size,
153
- outputFormat,
154
- quality,
155
- style,
156
- negativePrompt
157
- });
158
- }
159
- if (!result.success) {
160
- return {
161
- Success: false,
162
- Message: `Image generation failed: ${result.errorMessage || 'Unknown error'}`,
163
- ResultCode: "GENERATION_FAILED"
164
- };
165
- }
166
- if (!result.images || result.images.length === 0) {
167
- return {
168
- Success: false,
169
- Message: "No images were generated",
170
- ResultCode: "NO_IMAGES"
171
- };
172
- }
173
- // Format output images
174
- const outputImages = result.images.map((img, index) => this.formatImageOutput(img, index));
175
- // Add output parameters
176
- params.Params.push({
177
- Name: 'Images',
178
- Type: 'Output',
179
- Value: outputImages
180
- });
181
- params.Params.push({
182
- Name: 'ImageCount',
183
- Type: 'Output',
184
- Value: result.images.length
185
- });
186
- if (result.revisedPrompt) {
187
- params.Params.push({
188
- Name: 'RevisedPrompt',
189
- Type: 'Output',
190
- Value: result.revisedPrompt
191
- });
192
- }
193
- params.Params.push({
194
- Name: 'ModelUsed',
195
- Type: 'Output',
196
- Value: model.Name
197
- });
198
- // Build response - NOTE: images data is in output params, not in Message
199
- // This keeps Message lightweight for LLM context (base64 images are ~700K tokens each)
200
- const responseData = {
201
- message: `Successfully generated ${result.images.length} image(s)`,
202
- model: model.Name,
203
- imageCount: result.images.length,
204
- // Images are available in the 'Images' output parameter
205
- // Use the provided placeholder references in your response
206
- revisedPrompt: result.revisedPrompt
207
- };
208
- return {
209
- Success: true,
210
- ResultCode: "IMAGES_GENERATED",
211
- Message: JSON.stringify(responseData, null, 2)
212
- };
152
+ const { PinnedModel, RunOptions } = await this.prepareImageRun(params, this.getParamValue(params, 'model'));
153
+ const runResult = await this.runImageOperation(params, prompt, RunOptions);
154
+ // The model that answered, which after failover may not be the first choice
155
+ return this.toActionResult(params, runResult, runResult.ModelName ?? PinnedModel?.Name ?? '');
213
156
  }
214
157
  catch (error) {
215
158
  return {
@@ -220,53 +163,167 @@ let GenerateImageAction = class GenerateImageAction extends BaseAction {
220
163
  }
221
164
  }
222
165
  /**
223
- * Prepare an image generator instance using proper metadata lookup
166
+ * Build the runner options for this call.
167
+ *
168
+ * - **The model is pinned only when the caller named one.** Otherwise the `Default Image
169
+ * Generation` prompt's bindings choose, and its failover reaches the other models. As shipped,
170
+ * its top binding is the highest-PowerRank active image model, the one this action used to
171
+ * pick itself.
172
+ * - **`APIKeys` holds a key for every driver class the run may reach** (see
173
+ * {@link BuildImageGenerationAPIKeys}), so a run's own key carries across vendors on failover.
174
+ * Within a model the sources follow the runner's vendor order exactly; across models they
175
+ * follow PowerRank. That order matters only when two vendors share a driver class that has no
176
+ * key of its own, where it picks whose vendor-name key the class carries.
177
+ * - **The calling agent** (`Context.AgentID`, stamped by BaseAgent) is recorded on the run row.
178
+ *
179
+ * The keys rank as they do for chat prompts: a credential bound to the prompt-model, the
180
+ * model-vendor or the vendor, or a default credential of the vendor's credential type, wins
181
+ * over them. Only with none of those is the key the generator gets the one this action resolves.
224
182
  */
225
- async prepareImageGenerator(contextUser, modelName, resolve) {
226
- // Ensure AIEngine is loaded
227
- await AIEngineBase.Instance.Config(false, contextUser);
228
- // Find image generator models
229
- const imageGeneratorModels = AIEngineBase.Instance.Models.filter(m => m.AIModelType?.toLowerCase() === 'image generator' && m.IsActive);
230
- if (imageGeneratorModels.length === 0) {
231
- throw new Error('No active image generator models found');
183
+ async prepareImageRun(params, modelName) {
184
+ await AIEngineBase.Instance.Config(false, params.ContextUser);
185
+ const imageModels = this.activeImageModels();
186
+ const pinned = modelName ? this.findNamedModel(imageModels, modelName) : undefined;
187
+ const sources = pinned ? this.pinnedKeySources(pinned) : imageModels.flatMap(m => this.keySources(m));
188
+ const runOptions = {
189
+ ContextUser: params.ContextUser,
190
+ APIKeys: BuildImageGenerationAPIKeys(sources, params.RuntimeAPIKeyResolver)
191
+ };
192
+ if (pinned) {
193
+ runOptions.ModelID = pinned.ID;
232
194
  }
233
- // Select model - use specified or highest power
234
- let model;
235
- if (modelName) {
236
- const foundModel = imageGeneratorModels.find(m => m.Name.toLowerCase() === modelName.toLowerCase() ||
237
- (m.APIName && m.APIName.toLowerCase() === modelName.toLowerCase()));
238
- if (!foundModel) {
239
- throw new Error(`Image generator model '${modelName}' not found`);
240
- }
241
- model = foundModel;
195
+ const agentId = this.contextAgentID(params);
196
+ if (agentId) {
197
+ runOptions.AgentID = agentId;
242
198
  }
243
- else {
244
- // Get highest power image generator model
245
- model = imageGeneratorModels.reduce((best, current) => (current.PowerRank || 0) > (best.PowerRank || 0) ? current : best);
199
+ return { PinnedModel: pinned, RunOptions: runOptions };
200
+ }
201
+ /** The active image models, highest PowerRank first. */
202
+ activeImageModels() {
203
+ const models = AIEngineBase.Instance.Models.filter(m => m.AIModelType?.toLowerCase() === 'image generator' && m.IsActive);
204
+ if (models.length === 0) {
205
+ throw new Error('No active image generator models found');
206
+ }
207
+ return [...models].sort((a, b) => (b.PowerRank || 0) - (a.PowerRank || 0));
208
+ }
209
+ /** The image model the caller named, by name or API name. */
210
+ findNamedModel(models, modelName) {
211
+ const wanted = modelName.toLowerCase();
212
+ const found = models.find(m => m.Name.toLowerCase() === wanted || (m.APIName && m.APIName.toLowerCase() === wanted));
213
+ if (!found) {
214
+ throw new Error(`Image generator model '${modelName}' not found`);
246
215
  }
247
- // Find the inference provider from ModelVendors (populated by AIEngineBase)
248
- // Inference providers have DriverClass set
249
- const inferenceProvider = model.ModelVendors.find(mv => mv.DriverClass && mv.DriverClass.length > 0 && mv.Status === 'Active');
250
- if (!inferenceProvider) {
216
+ return found;
217
+ }
218
+ /** The named model's key sources. A named model with no active inference provider cannot run. */
219
+ pinnedKeySources(model) {
220
+ const sources = this.keySources(model);
221
+ if (sources.length === 0) {
251
222
  throw new Error(`No active inference provider found for model '${model.Name}'`);
252
223
  }
253
- const driverClass = inferenceProvider.DriverClass;
254
- const apiName = inferenceProvider.APIName || model.APIName || model.Name;
255
- const vendor = AIEngineBase.Instance.Vendors.find(v => UUIDsEqual(v.ID, inferenceProvider.VendorID));
256
- const apiKey = ResolveImageGenerationAPIKey(driverClass, vendor?.Name, resolve);
257
- const generator = MJGlobal.Instance.ClassFactory.CreateInstance(BaseImageGenerator, driverClass, apiKey);
258
- if (!generator) {
259
- throw new Error(`Failed to create image generator instance for ${driverClass}. Ensure the provider is registered.`);
224
+ return sources;
225
+ }
226
+ /**
227
+ * A model's active inference vendors, in the order the runner tries them (Priority, highest
228
+ * first), each with the driver class the runner builds for it.
229
+ */
230
+ keySources(model) {
231
+ return model.ModelVendors
232
+ .filter(mv => mv.Status === 'Active' && AIEngineBase.Instance.IsInferenceProvider(mv) && (mv.DriverClass || model.DriverClass))
233
+ .sort((a, b) => (b.Priority || 0) - (a.Priority || 0))
234
+ .map(mv => ({
235
+ DriverClass: mv.DriverClass || model.DriverClass,
236
+ VendorName: AIEngineBase.Instance.Vendors.find(v => UUIDsEqual(v.ID, mv.VendorID))?.Name
237
+ }));
238
+ }
239
+ /** The calling agent's ID, which BaseAgent stamps on the action's context. */
240
+ contextAgentID(params) {
241
+ const context = params.Context;
242
+ const agentId = context?.AgentID;
243
+ return typeof agentId === 'string' && agentId.trim().length > 0 ? agentId : undefined;
244
+ }
245
+ /** Runs the edit when a source image is given, otherwise the generation. */
246
+ runImageOperation(params, prompt, runOptions) {
247
+ const numberOfImages = this.getNumberParam(params, 'numberofimages', 1);
248
+ const size = this.getParamValue(params, 'size') || '1024x1024';
249
+ const outputFormat = this.getParamValue(params, 'outputformat') || 'base64';
250
+ const negativePrompt = this.getParamValue(params, 'negativeprompt');
251
+ const sourceImage = this.getParamValue(params, 'sourceimage');
252
+ if (sourceImage) {
253
+ // Image-to-image: use EditImage when source image is provided
254
+ const mask = this.getParamValue(params, 'mask');
255
+ return this.executeImageEdit(runOptions, { prompt, sourceImage, mask, numberOfImages, size, outputFormat, negativePrompt });
256
+ }
257
+ const quality = this.getParamValue(params, 'quality');
258
+ const style = this.getParamValue(params, 'style');
259
+ return this.executeImageGeneration(runOptions, { prompt, numberOfImages, size, outputFormat, quality, style, negativePrompt });
260
+ }
261
+ /** Maps the runner's result onto the action's result codes and output params. */
262
+ toActionResult(params, runResult, modelName) {
263
+ if (!runResult.Success) {
264
+ return {
265
+ Success: false,
266
+ Message: `Image generation failed: ${runResult.ErrorMessage || 'Unknown error'}`,
267
+ ResultCode: "GENERATION_FAILED"
268
+ };
269
+ }
270
+ const result = runResult.ImageResult;
271
+ if (!result?.images || result.images.length === 0) {
272
+ return {
273
+ Success: false,
274
+ Message: "No images were generated",
275
+ ResultCode: "NO_IMAGES"
276
+ };
277
+ }
278
+ this.addOutputParams(params, result, modelName);
279
+ // Build response - NOTE: images data is in output params, not in Message
280
+ // This keeps Message lightweight for LLM context (base64 images are ~700K tokens each)
281
+ const responseData = {
282
+ message: `Successfully generated ${result.images.length} image(s)`,
283
+ model: modelName,
284
+ imageCount: result.images.length,
285
+ // Images are available in the 'Images' output parameter
286
+ // Use the provided placeholder references in your response
287
+ revisedPrompt: result.revisedPrompt
288
+ };
289
+ return {
290
+ Success: true,
291
+ ResultCode: "IMAGES_GENERATED",
292
+ Message: JSON.stringify(responseData, null, 2)
293
+ };
294
+ }
295
+ /** Adds the Images, ImageCount, RevisedPrompt and ModelUsed output params. */
296
+ addOutputParams(params, result, modelName) {
297
+ params.Params.push({
298
+ Name: 'Images',
299
+ Type: 'Output',
300
+ Value: result.images.map((img, index) => this.formatImageOutput(img, index))
301
+ });
302
+ params.Params.push({
303
+ Name: 'ImageCount',
304
+ Type: 'Output',
305
+ Value: result.images.length
306
+ });
307
+ if (result.revisedPrompt) {
308
+ params.Params.push({
309
+ Name: 'RevisedPrompt',
310
+ Type: 'Output',
311
+ Value: result.revisedPrompt
312
+ });
260
313
  }
261
- return { generator, model, apiName };
314
+ params.Params.push({
315
+ Name: 'ModelUsed',
316
+ Type: 'Output',
317
+ Value: modelName
318
+ });
262
319
  }
263
320
  /**
264
- * Execute text-to-image generation
321
+ * Execute text-to-image generation through the image runner
265
322
  */
266
- async executeImageGeneration(generator, options) {
323
+ async executeImageGeneration(runOptions, options) {
267
324
  const genParams = {
325
+ ...runOptions,
268
326
  prompt: options.prompt,
269
- model: options.apiName,
270
327
  n: options.numberOfImages,
271
328
  size: options.size,
272
329
  outputFormat: options.outputFormat === 'url' ? 'url' : 'b64_json'
@@ -280,15 +337,15 @@ let GenerateImageAction = class GenerateImageAction extends BaseAction {
280
337
  if (options.negativePrompt) {
281
338
  genParams.negativePrompt = options.negativePrompt;
282
339
  }
283
- return generator.GenerateImage(genParams);
340
+ return new AIImageGenerationRunner().RunImageGeneration(genParams);
284
341
  }
285
342
  /**
286
- * Execute image-to-image editing
343
+ * Execute image-to-image editing through the image runner
287
344
  */
288
- async executeImageEdit(generator, options) {
345
+ async executeImageEdit(runOptions, options) {
289
346
  const editParams = {
347
+ ...runOptions,
290
348
  prompt: options.prompt,
291
- model: options.apiName,
292
349
  image: options.sourceImage,
293
350
  n: options.numberOfImages,
294
351
  size: options.size,
@@ -300,7 +357,7 @@ let GenerateImageAction = class GenerateImageAction extends BaseAction {
300
357
  if (options.negativePrompt) {
301
358
  editParams.negativePrompt = options.negativePrompt;
302
359
  }
303
- return generator.EditImage(editParams);
360
+ return new AIImageGenerationRunner().RunImageEdit(editParams);
304
361
  }
305
362
  /**
306
363
  * Format a generated image for output as MediaOutput
@@ -1 +1 @@
1
- {"version":3,"file":"generate-image.action.js","sourceRoot":"","sources":["../../../src/custom/ai/generate-image.action.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-image.action.js","sourceRoot":"","sources":["../../../src/custom/ai/generate-image.action.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ import { ActionResultSimple, RunActionParams } from "@memberjunction/actions-base";
2
+ import { BaseAction } from "@memberjunction/actions";
3
+ /**
4
+ * Result codes produced by RunDecisionAction.
5
+ */
6
+ export declare const RunDecisionResultCodes: {
7
+ readonly SUCCESS: "SUCCESS";
8
+ readonly MISSING_STATE: "MISSING_STATE";
9
+ readonly INVALID_QUESTIONS: "INVALID_QUESTIONS";
10
+ readonly PROMPT_NOT_FOUND: "PROMPT_NOT_FOUND";
11
+ readonly PROMPT_NOT_ACTIVE: "PROMPT_NOT_ACTIVE";
12
+ readonly DECISION_FAILED: "DECISION_FAILED";
13
+ readonly EXECUTION_ERROR: "EXECUTION_ERROR";
14
+ };
15
+ export type RunDecisionResultCode = typeof RunDecisionResultCodes[keyof typeof RunDecisionResultCodes];
16
+ /**
17
+ * Action that exposes typed decision execution to AI agents, flows, and low-code workflows.
18
+ * Wraps AIDecisionRunner to evaluate Likelihood, Choice, and Score questions against state.
19
+ */
20
+ export declare class RunDecisionAction extends BaseAction {
21
+ private static readonly DEFAULT_PROMPT_NAME;
22
+ /**
23
+ * Executes a typed decision operation.
24
+ *
25
+ * Input params:
26
+ * - State (required): Text or a JSON object describing the state to evaluate.
27
+ * - Questions (required): Object or JSON string mapping question keys to typed question definitions.
28
+ * - DecisionPromptName (optional): Name of the AI Prompt entity to use, defaults to 'Default Decision'.
29
+ */
30
+ protected InternalRunAction(params: RunActionParams): Promise<ActionResultSimple>;
31
+ /** Validates State and Questions and resolves the prompt name, before any model is called. */
32
+ private readInputs;
33
+ private buildDecisionParams;
34
+ private addOutputs;
35
+ private failure;
36
+ private validateState;
37
+ private buildSummaryMessage;
38
+ /** Finds the decision prompt in AIEngine's cache, by name, case-insensitively. */
39
+ private loadPrompt;
40
+ private addOutputParam;
41
+ private getParamValue;
42
+ private getStringParam;
43
+ private isObject;
44
+ }
45
+ //# sourceMappingURL=run-decision.action.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-decision.action.d.ts","sourceRoot":"","sources":["../../../src/custom/ai/run-decision.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEnF,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAOrD;;GAEG;AACH,eAAO,MAAM,sBAAsB;;;;;;;;CAQzB,CAAC;AAEX,MAAM,MAAM,qBAAqB,GAAG,OAAO,sBAAsB,CAAC,MAAM,OAAO,sBAAsB,CAAC,CAAC;AAWvG;;;GAGG;AACH,qBACa,iBAAkB,SAAQ,UAAU;IAC7C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAsB;IAEjE;;;;;;;OAOG;cACa,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAwBvF,8FAA8F;IAC9F,OAAO,CAAC,UAAU;IAalB,OAAO,CAAC,mBAAmB;IAiB3B,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,aAAa;IAoBrB,OAAO,CAAC,mBAAmB;IAY3B,kFAAkF;YACpE,UAAU;IAMxB,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,QAAQ;CAGnB"}