@memberjunction/core-actions 6.1.2 → 6.2.0-edge.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 (31) hide show
  1. package/dist/config.d.ts +68 -10
  2. package/dist/config.d.ts.map +1 -1
  3. package/dist/config.js +32 -5
  4. package/dist/config.js.map +1 -1
  5. package/dist/custom/ai/generate-image.action.d.ts +13 -1
  6. package/dist/custom/ai/generate-image.action.d.ts.map +1 -1
  7. package/dist/custom/ai/generate-image.action.js +25 -13
  8. package/dist/custom/ai/generate-image.action.js.map +1 -1
  9. package/dist/custom/utilities/base-file-handler.d.ts.map +1 -1
  10. package/dist/custom/utilities/base-file-handler.js +4 -2
  11. package/dist/custom/utilities/base-file-handler.js.map +1 -1
  12. package/dist/custom/web/brave-search.action.d.ts +108 -0
  13. package/dist/custom/web/brave-search.action.d.ts.map +1 -0
  14. package/dist/custom/web/brave-search.action.js +285 -0
  15. package/dist/custom/web/brave-search.action.js.map +1 -0
  16. package/dist/custom/web/perplexity-search.action.d.ts +76 -44
  17. package/dist/custom/web/perplexity-search.action.d.ts.map +1 -1
  18. package/dist/custom/web/perplexity-search.action.js +228 -157
  19. package/dist/custom/web/perplexity-search.action.js.map +1 -1
  20. package/dist/custom/web/rss-feed-read.action.d.ts.map +1 -1
  21. package/dist/custom/web/rss-feed-read.action.js +4 -1
  22. package/dist/custom/web/rss-feed-read.action.js.map +1 -1
  23. package/dist/custom/web/web-search.action.d.ts +56 -40
  24. package/dist/custom/web/web-search.action.d.ts.map +1 -1
  25. package/dist/custom/web/web-search.action.js +141 -413
  26. package/dist/custom/web/web-search.action.js.map +1 -1
  27. package/dist/index.d.ts +1 -0
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +1 -0
  30. package/dist/index.js.map +1 -1
  31. package/package.json +40 -39
package/dist/config.d.ts CHANGED
@@ -8,10 +8,30 @@ declare const apiIntegrationsSchema: z.ZodObject<{
8
8
  * Used by: Perplexity Search action
9
9
  * Get your API key from: https://www.perplexity.ai/settings/api
10
10
  *
11
- * This is the recommended web-search credential for new deployments — a single key with no
12
- * engine ID, and open to new customers. See `google.customSearch` below for why.
11
+ * Serves two distinct products behind one key, selected by the action's `Mode` parameter:
12
+ * `search` (default) calls Perplexity's raw `/search` endpoint, which returns structured
13
+ * title/url/snippet results at a flat per-query price; `answer` calls the Sonar chat models,
14
+ * which return prose plus citations and are billed per token.
15
+ *
16
+ * For a web-search role prefer `braveApiKey` below — an independent index with lower latency.
17
+ * Use this when a synthesised answer is genuinely what the caller wants.
13
18
  */
14
19
  perplexityApiKey: z.ZodOptional<z.ZodString>;
20
+ /**
21
+ * Brave Search API Key for independent web search
22
+ * Used by: Brave Search action
23
+ * Get your API key from: https://api-dashboard.search.brave.com/
24
+ *
25
+ * This is the recommended web-search credential for new deployments. Brave serves from its
26
+ * own index rather than reselling Google's or Bing's, so it does not share a failure mode
27
+ * with the SERP-proxy vendors or with `google.customSearch` below. It returns the same
28
+ * title/url/snippet shape the Google action returns, which is what makes it a migration
29
+ * rather than a rewrite.
30
+ *
31
+ * NOTE: Brave retired its free tier in early 2026. Keys now meter against a stored card
32
+ * with no spending cap, so set a budget alert before pointing production traffic at it.
33
+ */
34
+ braveApiKey: z.ZodOptional<z.ZodString>;
15
35
  /**
16
36
  * Tavily API Key for search built for LLM consumption
17
37
  * Used by: Tavily Search action
@@ -38,9 +58,15 @@ declare const apiIntegrationsSchema: z.ZodObject<{
38
58
  *
39
59
  * NOTE: the Custom Search JSON API is CLOSED TO NEW CUSTOMERS. Projects that already have it
40
60
  * enabled are served until 2027-01-01, when the API is discontinued. New deployments should
41
- * configure `perplexityApiKey` above instead — Google's stated successor (Vertex AI Search)
42
- * searches your own indexed content rather than the public web and yields neither an API key
43
- * nor a CX, so it is not a drop-in for this action.
61
+ * configure `braveApiKey` above instead — it is the only credential here that yields the same
62
+ * title/url/snippet result shape from an index that is not Google's.
63
+ *
64
+ * Google's stated successor (Vertex AI Search, since renamed Agent Search) searches your own
65
+ * indexed content or up to 50 verified domains rather than the public web, and yields neither
66
+ * an API key nor a CX. Gemini's `google_search` grounding does reach the public index, but
67
+ * returns expiring redirect URLs with no snippets, and its terms forbid caching or analysing
68
+ * the results — so neither is a drop-in for this action. `perplexityApiKey` is a reasonable
69
+ * fallback, but note its default mode is an answer engine rather than a search index.
44
70
  */
45
71
  customSearch: z.ZodOptional<z.ZodObject<{
46
72
  /**
@@ -93,6 +119,7 @@ declare const apiIntegrationsSchema: z.ZodObject<{
93
119
  }>>;
94
120
  }, "strip", z.ZodTypeAny, {
95
121
  perplexityApiKey?: string;
122
+ braveApiKey?: string;
96
123
  tavilyApiKey?: string;
97
124
  gammaApiKey?: string;
98
125
  google?: {
@@ -106,6 +133,7 @@ declare const apiIntegrationsSchema: z.ZodObject<{
106
133
  };
107
134
  }, {
108
135
  perplexityApiKey?: string;
136
+ braveApiKey?: string;
109
137
  tavilyApiKey?: string;
110
138
  gammaApiKey?: string;
111
139
  google?: {
@@ -131,10 +159,30 @@ declare const coreActionsConfigSchema: z.ZodObject<{
131
159
  * Used by: Perplexity Search action
132
160
  * Get your API key from: https://www.perplexity.ai/settings/api
133
161
  *
134
- * This is the recommended web-search credential for new deployments — a single key with no
135
- * engine ID, and open to new customers. See `google.customSearch` below for why.
162
+ * Serves two distinct products behind one key, selected by the action's `Mode` parameter:
163
+ * `search` (default) calls Perplexity's raw `/search` endpoint, which returns structured
164
+ * title/url/snippet results at a flat per-query price; `answer` calls the Sonar chat models,
165
+ * which return prose plus citations and are billed per token.
166
+ *
167
+ * For a web-search role prefer `braveApiKey` below — an independent index with lower latency.
168
+ * Use this when a synthesised answer is genuinely what the caller wants.
136
169
  */
137
170
  perplexityApiKey: z.ZodOptional<z.ZodString>;
171
+ /**
172
+ * Brave Search API Key for independent web search
173
+ * Used by: Brave Search action
174
+ * Get your API key from: https://api-dashboard.search.brave.com/
175
+ *
176
+ * This is the recommended web-search credential for new deployments. Brave serves from its
177
+ * own index rather than reselling Google's or Bing's, so it does not share a failure mode
178
+ * with the SERP-proxy vendors or with `google.customSearch` below. It returns the same
179
+ * title/url/snippet shape the Google action returns, which is what makes it a migration
180
+ * rather than a rewrite.
181
+ *
182
+ * NOTE: Brave retired its free tier in early 2026. Keys now meter against a stored card
183
+ * with no spending cap, so set a budget alert before pointing production traffic at it.
184
+ */
185
+ braveApiKey: z.ZodOptional<z.ZodString>;
138
186
  /**
139
187
  * Tavily API Key for search built for LLM consumption
140
188
  * Used by: Tavily Search action
@@ -161,9 +209,15 @@ declare const coreActionsConfigSchema: z.ZodObject<{
161
209
  *
162
210
  * NOTE: the Custom Search JSON API is CLOSED TO NEW CUSTOMERS. Projects that already have it
163
211
  * enabled are served until 2027-01-01, when the API is discontinued. New deployments should
164
- * configure `perplexityApiKey` above instead — Google's stated successor (Vertex AI Search)
165
- * searches your own indexed content rather than the public web and yields neither an API key
166
- * nor a CX, so it is not a drop-in for this action.
212
+ * configure `braveApiKey` above instead — it is the only credential here that yields the same
213
+ * title/url/snippet result shape from an index that is not Google's.
214
+ *
215
+ * Google's stated successor (Vertex AI Search, since renamed Agent Search) searches your own
216
+ * indexed content or up to 50 verified domains rather than the public web, and yields neither
217
+ * an API key nor a CX. Gemini's `google_search` grounding does reach the public index, but
218
+ * returns expiring redirect URLs with no snippets, and its terms forbid caching or analysing
219
+ * the results — so neither is a drop-in for this action. `perplexityApiKey` is a reasonable
220
+ * fallback, but note its default mode is an answer engine rather than a search index.
167
221
  */
168
222
  customSearch: z.ZodOptional<z.ZodObject<{
169
223
  /**
@@ -216,6 +270,7 @@ declare const coreActionsConfigSchema: z.ZodObject<{
216
270
  }>>;
217
271
  }, "strip", z.ZodTypeAny, {
218
272
  perplexityApiKey?: string;
273
+ braveApiKey?: string;
219
274
  tavilyApiKey?: string;
220
275
  gammaApiKey?: string;
221
276
  google?: {
@@ -229,6 +284,7 @@ declare const coreActionsConfigSchema: z.ZodObject<{
229
284
  };
230
285
  }, {
231
286
  perplexityApiKey?: string;
287
+ braveApiKey?: string;
232
288
  tavilyApiKey?: string;
233
289
  gammaApiKey?: string;
234
290
  google?: {
@@ -244,6 +300,7 @@ declare const coreActionsConfigSchema: z.ZodObject<{
244
300
  }, "strip", z.ZodTypeAny, {
245
301
  apiIntegrations?: {
246
302
  perplexityApiKey?: string;
303
+ braveApiKey?: string;
247
304
  tavilyApiKey?: string;
248
305
  gammaApiKey?: string;
249
306
  google?: {
@@ -259,6 +316,7 @@ declare const coreActionsConfigSchema: z.ZodObject<{
259
316
  }, {
260
317
  apiIntegrations?: {
261
318
  perplexityApiKey?: string;
319
+ braveApiKey?: string;
262
320
  tavilyApiKey?: string;
263
321
  gammaApiKey?: string;
264
322
  google?: {
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB;;GAEG;AACH,QAAA,MAAM,qBAAqB;IACzB;;;;;;;OAOG;;IAGH;;;;OAIG;;IAGH;;;;;OAKG;;IAGH;;;OAGG;;QAED;;;;;;;;;;;WAWG;;YAED;;eAEG;;YAEH;;eAEG;;;;;;;;;QAIL;;;;;WAKG;;YAED;;eAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAIP,CAAC;AAEH;;GAEG;AACH,QAAA,MAAM,uBAAuB;IAC3B;;OAEG;;QA1EH;;;;;;;WAOG;;QAGH;;;;WAIG;;QAGH;;;;;WAKG;;QAGH;;;WAGG;;YAED;;;;;;;;;;;eAWG;;gBAED;;mBAEG;;gBAEH;;mBAEG;;;;;;;;;YAIL;;;;;eAKG;;gBAED;;mBAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAcP,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAI1E;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,iBAAiB,CA+CxD;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,IAAI,qBAAqB,CAGhE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB;;GAEG;AACH,QAAA,MAAM,qBAAqB;IACzB;;;;;;;;;;;;OAYG;;IAGH;;;;;;;;;;;;;OAaG;;IAGH;;;;OAIG;;IAGH;;;;;OAKG;;IAGH;;;OAGG;;QAED;;;;;;;;;;;;;;;;;WAiBG;;YAED;;eAEG;;YAEH;;eAEG;;;;;;;;;QAIL;;;;;WAKG;;YAED;;eAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAIP,CAAC;AAEH;;GAEG;AACH,QAAA,MAAM,uBAAuB;IAC3B;;OAEG;;QArGH;;;;;;;;;;;;WAYG;;QAGH;;;;;;;;;;;;;WAaG;;QAGH;;;;WAIG;;QAGH;;;;;WAKG;;QAGH;;;WAGG;;YAED;;;;;;;;;;;;;;;;;eAiBG;;gBAED;;mBAEG;;gBAEH;;mBAEG;;;;;;;;;YAIL;;;;;eAKG;;gBAED;;mBAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAcP,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAI1E;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,iBAAiB,CAgDxD;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,IAAI,qBAAqB,CAGhE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C"}
package/dist/config.js CHANGED
@@ -11,10 +11,30 @@ const apiIntegrationsSchema = z.object({
11
11
  * Used by: Perplexity Search action
12
12
  * Get your API key from: https://www.perplexity.ai/settings/api
13
13
  *
14
- * This is the recommended web-search credential for new deployments — a single key with no
15
- * engine ID, and open to new customers. See `google.customSearch` below for why.
14
+ * Serves two distinct products behind one key, selected by the action's `Mode` parameter:
15
+ * `search` (default) calls Perplexity's raw `/search` endpoint, which returns structured
16
+ * title/url/snippet results at a flat per-query price; `answer` calls the Sonar chat models,
17
+ * which return prose plus citations and are billed per token.
18
+ *
19
+ * For a web-search role prefer `braveApiKey` below — an independent index with lower latency.
20
+ * Use this when a synthesised answer is genuinely what the caller wants.
16
21
  */
17
22
  perplexityApiKey: z.string().optional(),
23
+ /**
24
+ * Brave Search API Key for independent web search
25
+ * Used by: Brave Search action
26
+ * Get your API key from: https://api-dashboard.search.brave.com/
27
+ *
28
+ * This is the recommended web-search credential for new deployments. Brave serves from its
29
+ * own index rather than reselling Google's or Bing's, so it does not share a failure mode
30
+ * with the SERP-proxy vendors or with `google.customSearch` below. It returns the same
31
+ * title/url/snippet shape the Google action returns, which is what makes it a migration
32
+ * rather than a rewrite.
33
+ *
34
+ * NOTE: Brave retired its free tier in early 2026. Keys now meter against a stored card
35
+ * with no spending cap, so set a budget alert before pointing production traffic at it.
36
+ */
37
+ braveApiKey: z.string().optional(),
18
38
  /**
19
39
  * Tavily API Key for search built for LLM consumption
20
40
  * Used by: Tavily Search action
@@ -41,9 +61,15 @@ const apiIntegrationsSchema = z.object({
41
61
  *
42
62
  * NOTE: the Custom Search JSON API is CLOSED TO NEW CUSTOMERS. Projects that already have it
43
63
  * enabled are served until 2027-01-01, when the API is discontinued. New deployments should
44
- * configure `perplexityApiKey` above instead — Google's stated successor (Vertex AI Search)
45
- * searches your own indexed content rather than the public web and yields neither an API key
46
- * nor a CX, so it is not a drop-in for this action.
64
+ * configure `braveApiKey` above instead — it is the only credential here that yields the same
65
+ * title/url/snippet result shape from an index that is not Google's.
66
+ *
67
+ * Google's stated successor (Vertex AI Search, since renamed Agent Search) searches your own
68
+ * indexed content or up to 50 verified domains rather than the public web, and yields neither
69
+ * an API key nor a CX. Gemini's `google_search` grounding does reach the public index, but
70
+ * returns expiring redirect URLs with no snippets, and its terms forbid caching or analysing
71
+ * the results — so neither is a drop-in for this action. `perplexityApiKey` is a reasonable
72
+ * fallback, but note its default mode is an answer engine rather than a search index.
47
73
  */
48
74
  customSearch: z.object({
49
75
  /**
@@ -103,6 +129,7 @@ export function getCoreActionsConfig() {
103
129
  apiIntegrations: {
104
130
  perplexityApiKey: fileConfig?.perplexityApiKey || process.env.PERPLEXITY_API_KEY,
105
131
  tavilyApiKey: fileConfig?.tavilyApiKey || process.env.TAVILY_API_KEY,
132
+ braveApiKey: fileConfig?.braveApiKey || process.env.BRAVE_SEARCH_API_KEY,
106
133
  gammaApiKey: fileConfig?.gammaApiKey || process.env.GAMMA_API_KEY,
107
134
  google: {
108
135
  customSearch: {
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAE3D,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,CAAC;AAErE;;GAEG;AACH,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC;;;;;;;OAOG;IACH,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAEvC;;;;OAIG;IACH,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAEnC;;;;;OAKG;IACH,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAElC;;;OAGG;IACH,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf;;;;;;;;;;;WAWG;QACH,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC;YACrB;;eAEG;YACH,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC7B;;eAEG;YACH,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC1B,CAAC,CAAC,QAAQ,EAAE;QAEb;;;;;WAKG;QACH,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC;YAClB;;eAEG;YACH,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC9B,CAAC,CAAC,QAAQ,EAAE;KACd,CAAC,CAAC,QAAQ,EAAE;CACd,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC;;OAEG;IACH,eAAe,EAAE,qBAAqB,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;CAC9D,CAAC,CAAC;AAKH,IAAI,OAAO,GAA6B,IAAI,CAAC;AAE7C;;;GAGG;AACH,MAAM,UAAU,oBAAoB;IAClC,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;QACjC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YAC9B,SAAS,CAAC,iFAAiF,CAAC,CAAC;QAC/F,CAAC;QAED,oDAAoD;QACpD,EAAE;QACF,8EAA8E;QAC9E,0EAA0E;QAC1E,2EAA2E;QAC3E,6EAA6E;QAC7E,MAAM,UAAU,GAAG,MAAM,EAAE,MAAM,CAAC;QAClC,MAAM,SAAS,GAAG;YAChB,eAAe,EAAE;gBACf,gBAAgB,EAAE,UAAU,EAAE,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB;gBAChF,YAAY,EAAE,UAAU,EAAE,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc;gBACpE,WAAW,EAAE,UAAU,EAAE,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa;gBACjE,MAAM,EAAE;oBACN,YAAY,EAAE;wBACZ,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;4BACxC,UAAU,EAAE,wBAAwB,IAAK,0BAA0B;4BACnE,OAAO,CAAC,GAAG,CAAC,4BAA4B;wBAChD,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE;4BACpC,UAAU,EAAE,oBAAoB,IAAK,0BAA0B;4BAC/D,OAAO,CAAC,GAAG,CAAC,uBAAuB;qBACxC;oBACD,SAAS,EAAE;wBACT,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;4BACrC,OAAO,CAAC,GAAG,CAAC,wBAAwB;4BACpC,OAAO,CAAC,GAAG,CAAC,mBAAmB;qBACxC;iBACF;aACF;SACF,CAAC;QAEF,OAAO,GAAG,uBAAuB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACnD,OAAO,OAAO,CAAC;IACjB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,QAAQ,CAAC,0CAA0C,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QACvE,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB;IACtC,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAC;IACtC,OAAO,MAAM,CAAC,eAAe,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB;IACpC,OAAO,GAAG,IAAI,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAE3D,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,CAAC,CAAC;AAErE;;GAEG;AACH,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC;;;;;;;;;;;;OAYG;IACH,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAEvC;;;;;;;;;;;;;OAaG;IACH,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAElC;;;;OAIG;IACH,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAEnC;;;;;OAKG;IACH,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAElC;;;OAGG;IACH,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf;;;;;;;;;;;;;;;;;WAiBG;QACH,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC;YACrB;;eAEG;YACH,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;YAC7B;;eAEG;YACH,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC1B,CAAC,CAAC,QAAQ,EAAE;QAEb;;;;;WAKG;QACH,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC;YAClB;;eAEG;YACH,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC9B,CAAC,CAAC,QAAQ,EAAE;KACd,CAAC,CAAC,QAAQ,EAAE;CACd,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC;;OAEG;IACH,eAAe,EAAE,qBAAqB,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;CAC9D,CAAC,CAAC;AAKH,IAAI,OAAO,GAA6B,IAAI,CAAC;AAE7C;;;GAGG;AACH,MAAM,UAAU,oBAAoB;IAClC,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;QACjC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YAC9B,SAAS,CAAC,iFAAiF,CAAC,CAAC;QAC/F,CAAC;QAED,oDAAoD;QACpD,EAAE;QACF,8EAA8E;QAC9E,0EAA0E;QAC1E,2EAA2E;QAC3E,6EAA6E;QAC7E,MAAM,UAAU,GAAG,MAAM,EAAE,MAAM,CAAC;QAClC,MAAM,SAAS,GAAG;YAChB,eAAe,EAAE;gBACf,gBAAgB,EAAE,UAAU,EAAE,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB;gBAChF,YAAY,EAAE,UAAU,EAAE,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc;gBACpE,WAAW,EAAE,UAAU,EAAE,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB;gBACxE,WAAW,EAAE,UAAU,EAAE,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa;gBACjE,MAAM,EAAE;oBACN,YAAY,EAAE;wBACZ,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;4BACxC,UAAU,EAAE,wBAAwB,IAAK,0BAA0B;4BACnE,OAAO,CAAC,GAAG,CAAC,4BAA4B;wBAChD,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE;4BACpC,UAAU,EAAE,oBAAoB,IAAK,0BAA0B;4BAC/D,OAAO,CAAC,GAAG,CAAC,uBAAuB;qBACxC;oBACD,SAAS,EAAE;wBACT,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;4BACrC,OAAO,CAAC,GAAG,CAAC,wBAAwB;4BACpC,OAAO,CAAC,GAAG,CAAC,mBAAmB;qBACxC;iBACF;aACF;SACF,CAAC;QAEF,OAAO,GAAG,uBAAuB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACnD,OAAO,OAAO,CAAC;IACjB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,QAAQ,CAAC,0CAA0C,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QACvE,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB;IACtC,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAC;IACtC,OAAO,MAAM,CAAC,eAAe,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB;IACpC,OAAO,GAAG,IAAI,CAAC;AACjB,CAAC"}
@@ -1,4 +1,4 @@
1
- import { ActionResultSimple, RunActionParams } from "@memberjunction/actions-base";
1
+ import { ActionResultSimple, RunActionParams, RuntimeAPIKeyResolver } from "@memberjunction/actions-base";
2
2
  import { BaseAction } from "@memberjunction/actions";
3
3
  /**
4
4
  * Action that generates images using AI image generation models (DALL-E, Gemini, etc.)
@@ -57,6 +57,18 @@ import { BaseAction } from "@memberjunction/actions";
57
57
  * });
58
58
  * ```
59
59
  */
60
+ /**
61
+ * Resolve the key an image generator should use.
62
+ *
63
+ * Inside an agent run, `resolve` is the run's {@link RuntimeAPIKeyResolver}: the RUN'S key for the
64
+ * driver class first, then the platform's — the same order the run's prompts use, so a run on a
65
+ * customer's OpenAI key now generates its images on that key too. Outside a run (or when the agent
66
+ * refuses this action the run's key) it is undefined / answers undefined, and `GetAIAPIKey` gives
67
+ * the platform key as it always did. Then the vendor-name fallback that was always here — but
68
+ * actually USED this time: the previous code found a key by vendor name and then handed the empty
69
+ * driver-class result to the generator, so that branch never produced an image.
70
+ */
71
+ export declare function ResolveImageGenerationAPIKey(driverClass: string, vendorName: string | undefined, resolve?: RuntimeAPIKeyResolver): string;
60
72
  export declare class GenerateImageAction extends BaseAction {
61
73
  /**
62
74
  * Generates or edits image(s) using AI image generation models.
@@ -1 +1 @@
1
- {"version":3,"file":"generate-image.action.d.ts","sourceRoot":"","sources":["../../../src/custom/ai/generate-image.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEnF,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAcrD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AACH,qBACa,mBAAoB,SAAQ,UAAU;IAE/C;;;;;;;;;;;;;;;;;;;OAmBG;cACa,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAgIvF;;OAEG;YACW,qBAAqB;IAuEnC;;OAEG;YACW,sBAAsB;IAkCpC;;OAEG;YACW,gBAAgB;IAgC9B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAYzB;;OAEG;IACH,OAAO,CAAC,aAAa;IAKrB;;OAEG;IACH,OAAO,CAAC,cAAc;CAMzB"}
1
+ {"version":3,"file":"generate-image.action.d.ts","sourceRoot":"","sources":["../../../src/custom/ai/generate-image.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAE1G,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAcrD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AACH;;;;;;;;;;GAUG;AACH,wBAAgB,4BAA4B,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,MAAM,CAMzI;AAED,qBACa,mBAAoB,SAAQ,UAAU;IAE/C;;;;;;;;;;;;;;;;;;;OAmBG;cACa,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAiIvF;;OAEG;YACW,qBAAqB;IA+DnC;;OAEG;YACW,sBAAsB;IAkCpC;;OAEG;YACW,gBAAgB;IAgC9B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAYzB;;OAEG;IACH,OAAO,CAAC,aAAa;IAKrB;;OAEG;IACH,OAAO,CAAC,cAAc;CAMzB"}
@@ -7,7 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  import { RegisterClass } from "@memberjunction/global";
8
8
  import { BaseAction } from "@memberjunction/actions";
9
9
  import { MJGlobal, UUIDsEqual } from "@memberjunction/global";
10
- import { BaseImageGenerator, GetAIAPIKey } from "@memberjunction/ai";
10
+ import { BaseImageGenerator, GetAIAPIKey, } from "@memberjunction/ai";
11
11
  import { AIEngineBase } from "@memberjunction/ai-engine-base";
12
12
  /**
13
13
  * Action that generates images using AI image generation models (DALL-E, Gemini, etc.)
@@ -66,6 +66,26 @@ import { AIEngineBase } from "@memberjunction/ai-engine-base";
66
66
  * });
67
67
  * ```
68
68
  */
69
+ /**
70
+ * Resolve the key an image generator should use.
71
+ *
72
+ * Inside an agent run, `resolve` is the run's {@link RuntimeAPIKeyResolver}: the RUN'S key for the
73
+ * driver class first, then the platform's — the same order the run's prompts use, so a run on a
74
+ * customer's OpenAI key now generates its images on that key too. Outside a run (or when the agent
75
+ * refuses this action the run's key) it is undefined / answers undefined, and `GetAIAPIKey` gives
76
+ * the platform key as it always did. Then the vendor-name fallback that was always here — but
77
+ * actually USED this time: the previous code found a key by vendor name and then handed the empty
78
+ * driver-class result to the generator, so that branch never produced an image.
79
+ */
80
+ export function ResolveImageGenerationAPIKey(driverClass, vendorName, resolve) {
81
+ const byDriver = resolve?.(driverClass) || GetAIAPIKey(driverClass);
82
+ if (byDriver)
83
+ return byDriver;
84
+ 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'}`);
88
+ }
69
89
  let GenerateImageAction = class GenerateImageAction extends BaseAction {
70
90
  /**
71
91
  * Generates or edits image(s) using AI image generation models.
@@ -108,7 +128,7 @@ let GenerateImageAction = class GenerateImageAction extends BaseAction {
108
128
  };
109
129
  }
110
130
  // Get image generator model and create instance
111
- const { generator, model, apiName } = await this.prepareImageGenerator(params.ContextUser, modelName);
131
+ const { generator, model, apiName } = await this.prepareImageGenerator(params.ContextUser, modelName, params.RuntimeAPIKeyResolver);
112
132
  let result;
113
133
  if (sourceImage) {
114
134
  // Image-to-image: use EditImage when source image is provided
@@ -202,7 +222,7 @@ let GenerateImageAction = class GenerateImageAction extends BaseAction {
202
222
  /**
203
223
  * Prepare an image generator instance using proper metadata lookup
204
224
  */
205
- async prepareImageGenerator(contextUser, modelName) {
225
+ async prepareImageGenerator(contextUser, modelName, resolve) {
206
226
  // Ensure AIEngine is loaded
207
227
  await AIEngineBase.Instance.Config(false, contextUser);
208
228
  // Find image generator models
@@ -230,18 +250,10 @@ let GenerateImageAction = class GenerateImageAction extends BaseAction {
230
250
  if (!inferenceProvider) {
231
251
  throw new Error(`No active inference provider found for model '${model.Name}'`);
232
252
  }
233
- // Get API key using the vendor's driver class
234
253
  const driverClass = inferenceProvider.DriverClass;
235
254
  const apiName = inferenceProvider.APIName || model.APIName || model.Name;
236
- const apiKey = GetAIAPIKey(driverClass);
237
- if (!apiKey) {
238
- // Try getting by vendor name as fallback
239
- const vendor = AIEngineBase.Instance.Vendors.find(v => UUIDsEqual(v.ID, inferenceProvider.VendorID));
240
- const vendorApiKey = vendor ? GetAIAPIKey(vendor.Name) : null;
241
- if (!vendorApiKey) {
242
- throw new Error(`No API key found for ${driverClass} or vendor ${vendor?.Name || 'unknown'}`);
243
- }
244
- }
255
+ const vendor = AIEngineBase.Instance.Vendors.find(v => UUIDsEqual(v.ID, inferenceProvider.VendorID));
256
+ const apiKey = ResolveImageGenerationAPIKey(driverClass, vendor?.Name, resolve);
245
257
  const generator = MJGlobal.Instance.ClassFactory.CreateInstance(BaseImageGenerator, driverClass, apiKey);
246
258
  if (!generator) {
247
259
  throw new Error(`Failed to create image generator instance for ${driverClass}. Ensure the provider is registered.`);
@@ -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":";;;;;;AACA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EACH,kBAAkB,EAKlB,WAAW,GACd,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAE9D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AACH;;;;;;;;;;GAUG;AACH,MAAM,UAAU,4BAA4B,CAAC,WAAmB,EAAE,UAA8B,EAAE,OAA+B;IAC7H,MAAM,QAAQ,GAAG,OAAO,EAAE,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,WAAW,CAAC,CAAC;IACpE,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,IAAI,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACpF,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,MAAM,IAAI,KAAK,CAAC,wBAAwB,WAAW,cAAc,UAAU,IAAI,SAAS,EAAE,CAAC,CAAC;AAChG,CAAC;AAGM,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,UAAU;IAE/C;;;;;;;;;;;;;;;;;;;OAmBG;IACO,KAAK,CAAC,iBAAiB,CAAC,MAAuB;QACrD,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YACpD,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACtD,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC;YACxE,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,WAAW,CAAC;YAC/D,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YACtD,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAClD,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;YACpE,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,cAAc,CAAC,IAAI,QAAQ,CAAC;YAC5E,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;YAC9D,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAEhD,kBAAkB;YAClB,IAAI,CAAC,MAAM,EAAE,CAAC;gBACV,OAAO;oBACH,OAAO,EAAE,KAAK;oBACd,OAAO,EAAE,8BAA8B;oBACvC,UAAU,EAAE,gBAAgB;iBAC/B,CAAC;YACN,CAAC;YAED,gDAAgD;YAChD,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAClE,MAAM,CAAC,WAAW,EAClB,SAAS,EACT,MAAM,CAAC,qBAAqB,CAC/B,CAAC;YAEF,IAAI,MAA6B,CAAC;YAElC,IAAI,WAAW,EAAE,CAAC;gBACd,8DAA8D;gBAC9D,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE;oBAC5C,MAAM;oBACN,OAAO;oBACP,WAAW;oBACX,IAAI;oBACJ,cAAc;oBACd,IAAI;oBACJ,YAAY;oBACZ,cAAc;iBACjB,CAAC,CAAC;YACP,CAAC;iBAAM,CAAC;gBACJ,mCAAmC;gBACnC,MAAM,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,SAAS,EAAE;oBAClD,MAAM;oBACN,OAAO;oBACP,cAAc;oBACd,IAAI;oBACJ,YAAY;oBACZ,OAAO;oBACP,KAAK;oBACL,cAAc;iBACjB,CAAC,CAAC;YACP,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBAClB,OAAO;oBACH,OAAO,EAAE,KAAK;oBACd,OAAO,EAAE,4BAA4B,MAAM,CAAC,YAAY,IAAI,eAAe,EAAE;oBAC7E,UAAU,EAAE,mBAAmB;iBAClC,CAAC;YACN,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC/C,OAAO;oBACH,OAAO,EAAE,KAAK;oBACd,OAAO,EAAE,0BAA0B;oBACnC,UAAU,EAAE,WAAW;iBAC1B,CAAC;YACN,CAAC;YAED,uBAAuB;YACvB,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;YAE3F,wBAAwB;YACxB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;gBACf,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,YAAY;aACtB,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;gBACf,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM;aAC9B,CAAC,CAAC;YAEH,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;gBACvB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;oBACf,IAAI,EAAE,eAAe;oBACrB,IAAI,EAAE,QAAQ;oBACd,KAAK,EAAE,MAAM,CAAC,aAAa;iBAC9B,CAAC,CAAC;YACP,CAAC;YAED,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;gBACf,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,KAAK,CAAC,IAAI;aACpB,CAAC,CAAC;YAEH,yEAAyE;YACzE,uFAAuF;YACvF,MAAM,YAAY,GAAG;gBACjB,OAAO,EAAE,0BAA0B,MAAM,CAAC,MAAM,CAAC,MAAM,WAAW;gBAClE,KAAK,EAAE,KAAK,CAAC,IAAI;gBACjB,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM;gBAChC,wDAAwD;gBACxD,2DAA2D;gBAC3D,aAAa,EAAE,MAAM,CAAC,aAAa;aACtC,CAAC;YAEF,OAAO;gBACH,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,kBAAkB;gBAC9B,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;aACjD,CAAC;QAEN,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO;gBACH,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,0BAA0B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;gBAC3F,UAAU,EAAE,eAAe;aAC9B,CAAC;QACN,CAAC;IACL,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,qBAAqB,CAC/B,WAAiC,EACjC,SAAkB,EAClB,OAA+B;QAE/B,4BAA4B;QAC5B,MAAM,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAEvD,8BAA8B;QAC9B,MAAM,oBAAoB,GAAG,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAC5D,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,WAAW,EAAE,KAAK,iBAAiB,IAAI,CAAC,CAAC,QAAQ,CACxE,CAAC;QAEF,IAAI,oBAAoB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC9D,CAAC;QAED,gDAAgD;QAChD,IAAI,KAA8B,CAAC;QACnC,IAAI,SAAS,EAAE,CAAC;YACZ,MAAM,UAAU,GAAG,oBAAoB,CAAC,IAAI,CACxC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,WAAW,EAAE;gBAChD,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,SAAS,CAAC,WAAW,EAAE,CAAC,CAC1E,CAAC;YACF,IAAI,CAAC,UAAU,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,0BAA0B,SAAS,aAAa,CAAC,CAAC;YACtE,CAAC;YACD,KAAK,GAAG,UAAU,CAAC;QACvB,CAAC;aAAM,CAAC;YACJ,0CAA0C;YAC1C,KAAK,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAClD,CAAC,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CACpE,CAAC;QACN,CAAC;QAED,4EAA4E;QAC5E,2CAA2C;QAC3C,MAAM,iBAAiB,GAAG,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CACnD,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,QAAQ,CACxE,CAAC;QAEF,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,iDAAiD,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;QACpF,CAAC;QAED,MAAM,WAAW,GAAG,iBAAiB,CAAC,WAAW,CAAC;QAClD,MAAM,OAAO,GAAG,iBAAiB,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC;QACzE,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC;QACrG,MAAM,MAAM,GAAG,4BAA4B,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAEhF,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,cAAc,CAC3D,kBAAkB,EAClB,WAAW,EACX,MAAM,CACT,CAAC;QAEF,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,iDAAiD,WAAW,sCAAsC,CAAC,CAAC;QACxH,CAAC;QAED,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IACzC,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,sBAAsB,CAChC,SAA6B,EAC7B,OASC;QAED,MAAM,SAAS,GAA0B;YACrC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,KAAK,EAAE,OAAO,CAAC,OAAO;YACtB,CAAC,EAAE,OAAO,CAAC,cAAc;YACzB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,YAAY,EAAE,OAAO,CAAC,YAAY,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU;SACpE,CAAC;QAEF,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YAClB,SAAS,CAAC,OAAO,GAAG,OAAO,CAAC,OAA2C,CAAC;QAC5E,CAAC;QACD,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAChB,SAAS,CAAC,KAAK,GAAG,OAAO,CAAC,KAAuC,CAAC;QACtE,CAAC;QACD,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;YACzB,SAAS,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;QACtD,CAAC;QAED,OAAO,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IAC9C,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,gBAAgB,CAC1B,SAA6B,EAC7B,OASC;QAED,MAAM,UAAU,GAAoB;YAChC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,KAAK,EAAE,OAAO,CAAC,OAAO;YACtB,KAAK,EAAE,OAAO,CAAC,WAAW;YAC1B,CAAC,EAAE,OAAO,CAAC,cAAc;YACzB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,YAAY,EAAE,OAAO,CAAC,YAAY,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU;SACpE,CAAC;QAEF,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACf,UAAU,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACnC,CAAC;QACD,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;YACzB,UAAU,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;QACvD,CAAC;QAED,OAAO,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,GAAmB,EAAE,KAAa;QACxD,OAAO;YACH,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,WAAW;YAC1D,IAAI,EAAE,GAAG,CAAC,MAAM;YAChB,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,MAAM,EAAE,GAAG,CAAC,MAAM;YAClB,KAAK,EAAE,mBAAmB,KAAK,GAAG,CAAC,EAAE;SACxC,CAAC;IACN,CAAC;IAED;;OAEG;IACK,aAAa,CAAC,MAAuB,EAAE,IAAY;QACvD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QACnF,OAAO,KAAK,EAAE,KAAK,CAAC;IACxB,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,MAAuB,EAAE,IAAY,EAAE,YAAoB;QAC9E,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC/C,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,YAAY,CAAC;QAC/D,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1B,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC;IAC3C,CAAC;CACJ,CAAA;AAjUY,mBAAmB;IAD/B,aAAa,CAAC,UAAU,EAAE,gBAAgB,CAAC;GAC/B,mBAAmB,CAiU/B"}
@@ -1 +1 @@
1
- {"version":3,"file":"base-file-handler.d.ts","sourceRoot":"","sources":["../../../src/custom/utilities/base-file-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAM/D;;;;;;GAMG;AACH,8BAAsB,qBAAsB,SAAQ,UAAU;IAC1D;;;;;;;;;OASG;cACa,cAAc,CAC1B,MAAM,EAAE,eAAe,EACvB,aAAa,EAAE,MAAM,EACrB,aAAa,GAAE,MAAiB,EAChC,YAAY,GAAE,MAAkB,GACjC,OAAO,CAAC;QACP,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;QACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,SAAS,GAAG,KAAK,GAAG,QAAQ,CAAC;KACxC,CAAC;IAyBF;;OAEG;YACW,iBAAiB;IAkC/B;;OAEG;YACW,WAAW;IAiDzB;;;;;;;;;;;OAWG;cACa,eAAe,CAC3B,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,eAAe,EACvB,kBAAkB,CAAC,EAAE,MAAM,EAC3B,WAAW,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,MAAM,CAAC;IAiClB;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAQhC;;;OAGG;YACW,uBAAuB;IAarC;;OAEG;YACW,uBAAuB;IASrC;;OAEG;IACH,SAAS,CAAC,aAAa,CAAC,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,GAAG,GAAG;IAKxE;;OAEG;IACH,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,GAAE,OAAe,GAAG,OAAO;IAM7G;;OAEG;IACH,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,GAAE,MAAU,GAAG,MAAM;CAM1G"}
1
+ {"version":3,"file":"base-file-handler.d.ts","sourceRoot":"","sources":["../../../src/custom/utilities/base-file-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAM/D;;;;;;GAMG;AACH,8BAAsB,qBAAsB,SAAQ,UAAU;IAC1D;;;;;;;;;OASG;cACa,cAAc,CAC1B,MAAM,EAAE,eAAe,EACvB,aAAa,EAAE,MAAM,EACrB,aAAa,GAAE,MAAiB,EAChC,YAAY,GAAE,MAAkB,GACjC,OAAO,CAAC;QACP,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC;QACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,SAAS,GAAG,KAAK,GAAG,QAAQ,CAAC;KACxC,CAAC;IAyBF;;OAEG;YACW,iBAAiB;IAkC/B;;OAEG;YACW,WAAW;IAmDzB;;;;;;;;;;;OAWG;cACa,eAAe,CAC3B,OAAO,EAAE,MAAM,GAAG,MAAM,EACxB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,eAAe,EACvB,kBAAkB,CAAC,EAAE,MAAM,EAC3B,WAAW,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,MAAM,CAAC;IAiClB;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAQhC;;;OAGG;YACW,uBAAuB;IAarC;;OAEG;YACW,uBAAuB;IASrC;;OAEG;IACH,SAAS,CAAC,aAAa,CAAC,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,GAAG,GAAG;IAKxE;;OAEG;IACH,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,GAAE,OAAe,GAAG,OAAO;IAM7G;;OAEG;IACH,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,GAAE,MAAU,GAAG,MAAM;CAM1G"}
@@ -1,7 +1,7 @@
1
1
  import { BaseAction } from "@memberjunction/actions";
2
2
  import { RunView } from "@memberjunction/core";
3
3
  import { FileStorageEngine } from "@memberjunction/storage";
4
- import { DrainResponseBody } from "@memberjunction/network-utils";
4
+ import { DrainResponseBody, SafeFetch } from "@memberjunction/network-utils";
5
5
  /**
6
6
  * Base class for actions that handle file inputs from multiple sources
7
7
  * Provides common functionality for loading files from:
@@ -80,7 +80,9 @@ export class BaseFileHandlerAction extends BaseAction {
80
80
  if (!['http:', 'https:'].includes(urlObj.protocol)) {
81
81
  throw new Error('Only HTTP and HTTPS URLs are supported');
82
82
  }
83
- const response = await fetch(url);
83
+ // Route through the SSRF guard: the URL is caller-controlled, so private/loopback/
84
+ // link-local/reserved targets are blocked and every redirect hop is re-validated.
85
+ const response = await SafeFetch(url);
84
86
  if (!response.ok) {
85
87
  await DrainResponseBody(response);
86
88
  throw new Error(`HTTP ${response.status}: ${response.statusText}`);
@@ -1 +1 @@
1
- {"version":3,"file":"base-file-handler.js","sourceRoot":"","sources":["../../../src/custom/utilities/base-file-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base-file-handler.js","sourceRoot":"","sources":["../../../src/custom/utilities/base-file-handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,108 @@
1
+ import { ActionResultSimple, RunActionParams } from "@memberjunction/actions-base";
2
+ import { BaseAction } from "@memberjunction/actions";
3
+ /** One result from Brave's web search endpoint, normalised to this package's naming. */
4
+ export interface BraveSearchResultItem {
5
+ title: string;
6
+ url: string;
7
+ /** Brave calls this `description`; it is the result snippet. */
8
+ snippet: string;
9
+ /** Host as Brave displays it, e.g. `irs.gov`. Empty when Brave omits `meta_url`. */
10
+ displayUrl: string;
11
+ /** Human-readable relative age ("3 days ago"). Only present on results Brave dates. */
12
+ age?: string;
13
+ /** Publication/modification date when Brave resolved one, as an ISO-ish string. */
14
+ pageAge?: string;
15
+ /** Additional snippets from the same page. Only populated when `ExtraSnippets` is set. */
16
+ extraSnippets?: string[];
17
+ }
18
+ /**
19
+ * Action that searches the web through the Brave Search API.
20
+ *
21
+ * Brave matters here for a reason that is structural rather than qualitative: it
22
+ * serves results from **its own index** (40B+ pages) rather than reselling
23
+ * Google's or Bing's. Every SERP-proxy vendor — and every product built on the
24
+ * Google Custom Search JSON API, which is discontinued on 2027-01-01 — depends on
25
+ * a search engine continuing to permit that access. Brave does not, so it fails
26
+ * independently of the rest of this package's web-search actions. That is the
27
+ * whole point of adding it.
28
+ *
29
+ * Its output shape is deliberately `title` / `url` / `snippet`, which is the shape
30
+ * `Google Custom Search` returns today, so callers migrating off that action are
31
+ * making a rename rather than a rewrite.
32
+ *
33
+ * Authentication is the `X-Subscription-Token` header. Brave requires
34
+ * `Accept: application/json` and returns gzip, which `fetch` negotiates itself.
35
+ *
36
+ * @example
37
+ * ```typescript
38
+ * // Basic search
39
+ * await runAction({
40
+ * ActionName: 'Brave Search',
41
+ * Params: [{ Name: 'Query', Value: 'association management software trends' }]
42
+ * });
43
+ *
44
+ * // Recent results only, more of them
45
+ * await runAction({
46
+ * ActionName: 'Brave Search',
47
+ * Params: [
48
+ * { Name: 'Query', Value: 'nonprofit membership dues changes' },
49
+ * { Name: 'Freshness', Value: 'pw' },
50
+ * { Name: 'Count', Value: 20 }
51
+ * ]
52
+ * });
53
+ *
54
+ * // Second page, UK results, with the extra per-page snippets
55
+ * await runAction({
56
+ * ActionName: 'Brave Search',
57
+ * Params: [
58
+ * { Name: 'Query', Value: 'charity commission filing deadlines' },
59
+ * { Name: 'Country', Value: 'GB' },
60
+ * { Name: 'Offset', Value: 1 },
61
+ * { Name: 'ExtraSnippets', Value: true }
62
+ * ]
63
+ * });
64
+ * ```
65
+ */
66
+ export declare class BraveSearchAction extends BaseAction {
67
+ private static readonly ENDPOINT;
68
+ /** Brave's cap on results per request. */
69
+ private static readonly MAX_COUNT;
70
+ private static readonly DEFAULT_COUNT;
71
+ /** Brave's cap on the pagination offset (in pages, not results). */
72
+ private static readonly MAX_OFFSET;
73
+ /** Brave rejects queries longer than this outright. */
74
+ private static readonly MAX_QUERY_CHARS;
75
+ private static readonly SAFESEARCH_VALUES;
76
+ /** `pd`/`pw`/`pm`/`py` = past day/week/month/year. Brave also accepts a date range. */
77
+ private static readonly FRESHNESS_CODES;
78
+ private static readonly FRESHNESS_RANGE;
79
+ /**
80
+ * Executes the Brave search.
81
+ *
82
+ * @param params - The action parameters containing:
83
+ * - Query: Search query text (required, max 400 characters)
84
+ * - Count: 1-20 results (default 10)
85
+ * - Offset: Page offset 0-9 (default 0) — pages, not results
86
+ * - Country: 2-letter country code for localisation, e.g. 'US', 'GB'
87
+ * - SearchLang: Language code for results, e.g. 'en'
88
+ * - SafeSearch: 'off' | 'moderate' (default) | 'strict'
89
+ * - Freshness: 'pd' | 'pw' | 'pm' | 'py', or 'YYYY-MM-DDtoYYYY-MM-DD'
90
+ * - ExtraSnippets: Return additional snippets per result (default false).
91
+ * Brave gates this on plan tier, so it is off unless asked for
92
+ *
93
+ * @returns Structured web results with titles, URLs and snippets
94
+ */
95
+ protected InternalRunAction(params: RunActionParams): Promise<ActionResultSimple>;
96
+ private mapHttpError;
97
+ /** Pull whatever explanation the error body carries, without assuming a shape. */
98
+ private describeErrorBody;
99
+ private isValidFreshness;
100
+ private clamp;
101
+ private getStringParam;
102
+ private getBooleanParam;
103
+ private getNumericParam;
104
+ private addOutputParam;
105
+ private createErrorResult;
106
+ }
107
+ export declare function LoadBraveSearchAction(): void;
108
+ //# sourceMappingURL=brave-search.action.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brave-search.action.d.ts","sourceRoot":"","sources":["../../../src/custom/web/brave-search.action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAKrD,wFAAwF;AACxF,MAAM,WAAW,qBAAqB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,gEAAgE;IAChE,OAAO,EAAE,MAAM,CAAC;IAChB,oFAAoF;IACpF,UAAU,EAAE,MAAM,CAAC;IACnB,uFAAuF;IACvF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,mFAAmF;IACnF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0FAA0F;IAC1F,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAsBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,qBACa,iBAAkB,SAAQ,UAAU;IAC7C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAoD;IACpF,0CAA0C;IAC1C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAM;IACvC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAM;IAC3C,oEAAoE;IACpE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAK;IACvC,uDAAuD;IACvD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAO;IAE9C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAA0C;IACnF,uFAAuF;IACvF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAqC;IAC5E,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAA4C;IAEnF;;;;;;;;;;;;;;;OAeG;cACa,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA2IvF,OAAO,CAAC,YAAY;IAkCpB,kFAAkF;IAClF,OAAO,CAAC,iBAAiB;IAqBzB,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,iBAAiB;CAG5B;AAED,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C"}