@pipeline-builder/ai-core 3.4.78 → 3.4.80

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.
@@ -8,30 +8,45 @@ import { createXai } from '@ai-sdk/xai';
8
8
  import { AI_PROVIDER_CATALOG, AI_PROVIDER_ENV_VARS, getAIProviderModels, } from '@pipeline-builder/api-core';
9
9
  const registry = new Map();
10
10
  let initialized = false;
11
+ // Provider → model-factory map. `key` is optional so keyless providers (Bedrock,
12
+ // via the runtime IAM role) and key-based providers share one signature. Declared
13
+ // once and consumed by BOTH initRegistry and createModelWithKey.
14
+ const PROVIDER_FACTORIES = {
15
+ 'anthropic': (key) => createAnthropic({ apiKey: key }),
16
+ 'openai': (key) => createOpenAI({ apiKey: key }),
17
+ 'google': (key) => createGoogleGenerativeAI({ apiKey: key }),
18
+ 'xai': (key) => createXai({ apiKey: key }),
19
+ 'amazon-bedrock': () => createAmazonBedrock(),
20
+ };
21
+ /** Providers that authenticate WITHOUT an API key (Bedrock uses the IAM role). */
22
+ const KEYLESS_PROVIDERS = new Set(['amazon-bedrock']);
11
23
  /**
12
- * Lazily initialize the provider registry from environment variables.
13
- * Only providers with configured API keys are registered.
24
+ * Whether a keyless provider (Bedrock) should be advertised. It auths via the
25
+ * runtime IAM role (no API key), so an AWS region — set by every AWS runtime — is
26
+ * the "running in / configured for AWS" signal. Gating it on AWS_ACCESS_KEY_ID
27
+ * (which it never uses) left it permanently unavailable despite valid IAM creds;
28
+ * advertising it with no AWS context at all would just fail at model-call time.
29
+ */
30
+ function keylessProviderAvailable() {
31
+ return !!(process.env.AWS_REGION || process.env.AWS_DEFAULT_REGION);
32
+ }
33
+ /**
34
+ * Lazily initialize the provider registry from environment variables. Key-based
35
+ * providers register only when their key is set; keyless providers (Bedrock)
36
+ * register when an AWS region is configured.
14
37
  */
15
38
  function initRegistry() {
16
39
  if (initialized)
17
40
  return;
18
41
  initialized = true;
19
- // Bedrock authenticates via the IAM role attached to the runtime (no key
20
- // is passed); other providers take an API key. The factory signature
21
- // accepts an optional key so both shapes share one type.
22
- const factories = {
23
- 'anthropic': (key) => createAnthropic({ apiKey: key }),
24
- 'openai': (key) => createOpenAI({ apiKey: key }),
25
- 'google': (key) => createGoogleGenerativeAI({ apiKey: key }),
26
- 'xai': (key) => createXai({ apiKey: key }),
27
- 'amazon-bedrock': () => createAmazonBedrock(),
28
- };
29
42
  for (const [id, info] of Object.entries(AI_PROVIDER_CATALOG)) {
43
+ const factory = PROVIDER_FACTORIES[id];
44
+ if (!factory)
45
+ continue;
30
46
  const envVar = AI_PROVIDER_ENV_VARS[id];
31
47
  const apiKey = envVar ? process.env[envVar] : undefined;
32
- if (apiKey && factories[id]) {
33
- const provider = factories[id](apiKey);
34
- registry.set(id, { info, createModel: provider });
48
+ if (apiKey || (KEYLESS_PROVIDERS.has(id) && keylessProviderAvailable())) {
49
+ registry.set(id, { info, createModel: factory(apiKey) });
35
50
  }
36
51
  }
37
52
  }
@@ -90,19 +105,10 @@ export function createModelWithKey(providerId, modelId, apiKey) {
90
105
  if (!models.some((m) => m.id === modelId)) {
91
106
  throw new Error(`Model "${modelId}" is not available for provider "${providerId}". Available: ${models.map((m) => m.id).join(', ')}`);
92
107
  }
93
- switch (providerId) {
94
- case 'anthropic':
95
- return createAnthropic({ apiKey })(modelId);
96
- case 'openai':
97
- return createOpenAI({ apiKey })(modelId);
98
- case 'google':
99
- return createGoogleGenerativeAI({ apiKey })(modelId);
100
- case 'xai':
101
- return createXai({ apiKey })(modelId);
102
- case 'amazon-bedrock':
103
- return createAmazonBedrock()(modelId);
104
- default:
105
- throw new Error(`Unsupported AI provider "${providerId}"`);
106
- }
108
+ const factory = PROVIDER_FACTORIES[providerId];
109
+ if (!factory)
110
+ throw new Error(`Unsupported AI provider "${providerId}"`);
111
+ // Keyless providers (Bedrock) ignore the key and use the IAM role.
112
+ return factory(apiKey)(modelId);
107
113
  }
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXItcmVnaXN0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcHJvdmlkZXItcmVnaXN0cnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDeEMsT0FBTyxFQUNMLG1CQUFtQixFQUNuQixvQkFBb0IsRUFDcEIsbUJBQW1CLEdBR3BCLE1BQU0sNEJBQTRCLENBQUM7QUFXcEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxHQUFHLEVBQXlCLENBQUM7QUFDbEQsSUFBSSxXQUFXLEdBQUcsS0FBSyxDQUFDO0FBRXhCOzs7R0FHRztBQUNILFNBQVMsWUFBWTtJQUNuQixJQUFJLFdBQVc7UUFBRSxPQUFPO0lBQ3hCLFdBQVcsR0FBRyxJQUFJLENBQUM7SUFFbkIseUVBQXlFO0lBQ3pFLHFFQUFxRTtJQUNyRSx5REFBeUQ7SUFDekQsTUFBTSxTQUFTLEdBQXlFO1FBQ3RGLFdBQVcsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsZUFBZSxDQUFDLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ3RELFFBQVEsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ2hELFFBQVEsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsd0JBQXdCLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFD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LENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQzFDLE1BQU0sSUFBSSxLQUFLLENBQUMsVUFBVSxPQUFPLG9DQUFvQyxVQUFVLGlCQUFpQixNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN4SSxDQUFDO0lBRUQsUUFBUSxVQUFVLEVBQUUsQ0FBQztRQUNuQixLQUFLLFdBQVc7WUFDZCxPQUFPLGVBQWUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDOUMsS0FBSyxRQUFRO1lBQ1gsT0FBTyxZQUFZLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNDLEtBQUssUUFBUTtZQUNYLE9BQU8sd0JBQXdCLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZELEtBQUssS0FBSztZQUNSLE9BQU8sU0FBUyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4QyxLQUFLLGdCQUFnQjtZQUNuQixPQUFPLG1CQUFtQixFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDeEM7WUFDRSxNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixVQUFVLEdBQUcsQ0FBQyxDQUFDO0lBQy9ELENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCB7IGNyZWF0ZUFtYXpvbkJlZHJvY2sgfSBmcm9tICdAYWktc2RrL2FtYXpvbi1iZWRyb2NrJztcbmltcG9ydCB7IGNyZWF0ZUFudGhyb3BpYyB9IGZyb20gJ0BhaS1zZGsvYW50aHJvcGljJztcbmltcG9ydCB7IGNyZWF0ZUdvb2dsZUdlbmVyYXRpdmVBSSB9IGZyb20gJ0BhaS1zZGsvZ29vZ2xlJztcbmltcG9ydCB7IGNyZWF0ZU9wZW5BSSB9IGZyb20gJ0BhaS1zZGsvb3BlbmFpJztcbmltcG9ydCB7IGNyZWF0ZVhhaSB9IGZyb20gJ0BhaS1zZGsveGFpJztcbmltcG9ydCB7XG4gIEFJX1BST1ZJREVSX0NBVEFMT0csXG4gIEFJX1BST1ZJREVSX0VOVl9WQVJTLFxuICBnZXRBSVByb3ZpZGVyTW9kZWxzLFxuICB0eXBlIEFJUHJvdmlkZXJJbmZvLFxuICB0eXBlIEFJTW9kZWxJbmZvLFxufSBmcm9tICdAcGlwZWxpbmUtYnVpbGRlci9hcGktY29yZSc7XG5pbXBvcnQgdHlwZSB7IExhbmd1YWdlTW9kZWwgfSBmcm9tICdhaSc7XG5cbi8vIFByb3ZpZGVyIFJlZ2lzdHJ5XG5cbi8qKiBSZWdpc3RlcmVkIHByb3ZpZGVyIHdpdGggbW9kZWwgZmFjdG9yeSBmdW5jdGlvbi4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvdmlkZXJFbnRyeSB7XG4gIGluZm86IEFJUHJvdmlkZXJJbmZvO1xuICBjcmVhdGVNb2RlbDogKG1vZGVsSWQ6IHN0cmluZykgPT4gTGFuZ3VhZ2VNb2RlbDtcbn1cblxuY29uc3QgcmVnaXN0cnkgPSBuZXcgTWFwPHN0cmluZywgUHJvdmlkZXJFbnRyeT4oKTtcbmxldCBpbml0aWFsaXplZCA9IGZhbHNlO1xuXG4vKipcbiAqIExhemlseSBpbml0aWFsaXplIHRoZSBwcm92aWRlciByZWdpc3RyeSBmcm9tIGVudmlyb25tZW50IHZhcmlhYmxlcy5cbiAqIE9ubHkgcHJvdmlkZXJzIHdpdGggY29uZmlndXJlZCBBUEkga2V5cyBhcmUgcmVnaXN0ZXJlZC5cbiAqL1xuZnVuY3Rpb24gaW5pdFJlZ2lzdHJ5KCk6IHZvaWQge1xuICBpZiAoaW5pdGlhbGl6ZWQpIHJldHVybjtcbiAgaW5pdGlhbGl6ZWQgPSB0cnVlO1xuXG4gIC8vIEJlZHJvY2sgYXV0aGVudGljYXRlcyB2aWEgdGhlIElBTSByb2xlIGF0dGFjaGVkIHRvIHRoZSBydW50aW1lIChubyBrZXlcbiAgLy8gaXMgcGFzc2VkKTsgb3RoZXIgcHJvdmlkZXJzIHRha2UgYW4gQVBJIGtleS4gVGhlIGZhY3Rvcnkgc2lnbmF0dXJlXG4gIC8vIGFjY2VwdHMgYW4gb3B0aW9uYWwga2V5IHNvIGJvdGggc2hhcGVzIHNoYXJlIG9uZSB0eXBlLlxuICBjb25zdCBmYWN0b3JpZXM6IFJlY29yZDxzdHJpbmcsIChrZXk/OiBzdHJpbmcpID0+IChtb2RlbElkOiBzdHJpbmcpID0+IExhbmd1YWdlTW9kZWw+ID0ge1xuICAgICdhbnRocm9waWMnOiAoa2V5KSA9PiBjcmVhdGVBbnRocm9waWMoeyBhcGlLZXk6IGtleSB9KSxcbiAgICAnb3BlbmFpJzogKGtleSkgPT4gY3JlYXRlT3BlbkFJKHsgYXBpS2V5OiBrZXkgfSksXG4gICAgJ2dvb2dsZSc6IChrZXkpID0+IGNyZWF0ZUdvb2dsZUdlbmVyYXRpdmVBSSh7IGFwaUtleToga2V5IH0pLFxuICAgICd4YWknOiAoa2V5KSA9PiBjcmVhdGVYYWkoeyBhcGlLZXk6IGtleSB9KSxcbiAgICAnYW1hem9uLWJlZHJvY2snOiAoKSA9PiBjcmVhdGVBbWF6b25CZWRyb2NrKCksXG4gIH07XG5cbiAgZm9yIChjb25zdCBbaWQsIGluZm9dIG9mIE9iamVjdC5lbnRyaWVzKEFJX1BST1ZJREVSX0NBVEFMT0cpKSB7XG4gICAgY29uc3QgZW52VmFyID0gQUlfUFJPVklERVJfRU5WX1ZBUlNbaWRdO1xuICAgIGNvbnN0IGFwaUtleSA9IGVudlZhciA/IHByb2Nlc3MuZW52W2VudlZhcl0gOiB1bmRlZmluZWQ7XG4gICAgaWYgKGFwaUtleSAmJiBmYWN0b3JpZXNbaWRdKSB7XG4gICAgICBjb25zdCBwcm92aWRlciA9IGZhY3Rvcmllc1tpZF0oYXBpS2V5KTtcbiAgICAgIHJlZ2lzdHJ5LnNldChpZCwgeyBpbmZvLCBjcmVhdGVNb2RlbDogcHJvdmlkZXIgfSk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgbGlzdCBvZiBwcm92aWRlcnMgdGhhdCBoYXZlIEFQSSBrZXlzIGNvbmZpZ3VyZWQgdmlhIGVudiB2YXJzLlxuICpcbiAqIEByZXR1cm5zIEFycmF5IG9mIGNvbmZpZ3VyZWQgcHJvdmlkZXIgaW5mbyB3aXRoIG1vZGVsIGxpc3RzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBdmFpbGFibGVQcm92aWRlcnMoKTogQUlQcm92aWRlckluZm9bXSB7XG4gIGluaXRSZWdpc3RyeSgpO1xuICByZXR1cm4gQXJyYXkuZnJvbShyZWdpc3RyeS52YWx1ZXMoKSkubWFwKChlKSA9PiBlLmluZm8pO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIG1vZGVsIGxpc3QgZm9yIGEgZ2l2ZW4gcHJvdmlkZXIgSUQgKHJlZ2FyZGxlc3Mgb2YgZW52IHZhciBjb25maWcpLlxuICpcbiAqIEBwYXJhbSBwcm92aWRlcklkIC0gUHJvdmlkZXIgaWRlbnRpZmllclxuICogQHJldHVybnMgQXJyYXkgb2YgbW9kZWxzLCBvciBlbXB0eSBhcnJheSBpZiBwcm92aWRlciBpcyB1bmtub3duXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRQcm92aWRlck1vZGVscyhwcm92aWRlcklkOiBzdHJpbmcpOiBBSU1vZGVsSW5mb1tdIHtcbiAgcmV0dXJuIGdldEFJUHJvdmlkZXJNb2RlbHMocHJvdmlkZXJJZCk7XG59XG5cbi8qKlxuICogUmVzb2x2ZSBhIExhbmd1YWdlTW9kZWwgZnJvbSB0aGUgcmVnaXN0cnkgZm9yIGEgY29uZmlndXJlZCBwcm92aWRlci5cbiAqXG4gKiBAcGFyYW0gcHJvdmlkZXJJZCAtIFByb3ZpZGVyIGlkZW50aWZpZXJcbiAqIEBwYXJhbSBtb2RlbElkIC0gTW9kZWwgaWRlbnRpZmllclxuICogQHJldHVybnMgTGFuZ3VhZ2VNb2RlbCBpbnN0YW5jZVxuICogQHRocm93cyBFcnJvciBpZiBwcm92aWRlciBpcyBub3QgY29uZmlndXJlZCBvciBtb2RlbCBpcyBpbnZhbGlkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlTW9kZWwocHJvdmlkZXJJZDogc3RyaW5nLCBtb2RlbElkOiBzdHJpbmcpOiBMYW5ndWFnZU1vZGVsIHtcbiAgaW5pdFJlZ2lzdHJ5KCk7XG4gIGNvbnN0IGVudHJ5ID0gcmVnaXN0cnkuZ2V0KHByb3ZpZGVySWQpO1xuICBpZiAoIWVudHJ5KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBBSSBwcm92aWRlciBcIiR7cHJvdmlkZXJJZH1cIiBpcyBub3QgY29uZmlndXJlZC4gU2V0IHRoZSBjb3JyZXNwb25kaW5nIEFQSSBrZXkgZW52aXJvbm1lbnQgdmFyaWFibGUuYCk7XG4gIH1cbiAgaWYgKCFlbnRyeS5pbmZvLm1vZGVscy5zb21lKChtKSA9PiBtLmlkID09PSBtb2RlbElkKSkge1xuICAgIGNvbnN0IGF2YWlsYWJsZSA9IGVudHJ5LmluZm8ubW9kZWxzLm1hcCgobSkgPT4gbS5pZCkuam9pbignLCAnKTtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYE1vZGVsIFwiJHttb2RlbElkfVwiIGlzIG5vdCBhdmFpbGFibGUgZm9yIHByb3ZpZGVyIFwiJHtwcm92aWRlcklkfVwiLiBBdmFpbGFibGUgbW9kZWxzOiAke2F2YWlsYWJsZX1gKTtcbiAgfVxuICByZXR1cm4gZW50cnkuY3JlYXRlTW9kZWwobW9kZWxJZCk7XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgdGVtcG9yYXJ5IExhbmd1YWdlTW9kZWwgdXNpbmcgYSBjdXN0b20gQVBJIGtleSAobm90IGNhY2hlZCBpbiByZWdpc3RyeSkuXG4gKlxuICogQHBhcmFtIHByb3ZpZGVySWQgLSBQcm92aWRlciBpZGVudGlmaWVyXG4gKiBAcGFyYW0gbW9kZWxJZCAtIE1vZGVsIGlkZW50aWZpZXJcbiAqIEBwYXJhbSBhcGlLZXkgLSBDdXN0b20gQVBJIGtleVxuICogQHJldHVybnMgTGFuZ3VhZ2VNb2RlbCBpbnN0YW5jZVxuICogQHRocm93cyBFcnJvciBpZiBwcm92aWRlciBvciBtb2RlbCBpcyB1bmtub3duXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVNb2RlbFdpdGhLZXkocHJvdmlkZXJJZDogc3RyaW5nLCBtb2RlbElkOiBzdHJpbmcsIGFwaUtleTogc3RyaW5nKTogTGFuZ3VhZ2VNb2RlbCB7XG4gIGNvbnN0IG1vZGVscyA9IGdldEFJUHJvdmlkZXJNb2RlbHMocHJvdmlkZXJJZCk7XG4gIGlmIChtb2RlbHMubGVuZ3RoID09PSAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBVbmtub3duIEFJIHByb3ZpZGVyIFwiJHtwcm92aWRlcklkfVwiLiBTdXBwb3J0ZWQ6ICR7T2JqZWN0LmtleXMoQUlfUFJPVklERVJfQ0FUQUxPRykuam9pbignLCAnKX1gKTtcbiAgfVxuICBpZiAoIW1vZGVscy5zb21lKChtKSA9PiBtLmlkID09PSBtb2RlbElkKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgTW9kZWwgXCIke21vZGVsSWR9XCIgaXMgbm90IGF2YWlsYWJsZSBmb3IgcHJvdmlkZXIgXCIke3Byb3ZpZGVySWR9XCIuIEF2YWlsYWJsZTogJHttb2RlbHMubWFwKChtKSA9PiBtLmlkKS5qb2luKCcsICcpfWApO1xuICB9XG5cbiAgc3dpdGNoIChwcm92aWRlcklkKSB7XG4gICAgY2FzZSAnYW50aHJvcGljJzpcbiAgICAgIHJldHVybiBjcmVhdGVBbnRocm9waWMoeyBhcGlLZXkgfSkobW9kZWxJZCk7XG4gICAgY2FzZSAnb3BlbmFpJzpcbiAgICAgIHJldHVybiBjcmVhdGVPcGVuQUkoeyBhcGlLZXkgfSkobW9kZWxJZCk7XG4gICAgY2FzZSAnZ29vZ2xlJzpcbiAgICAgIHJldHVybiBjcmVhdGVHb29nbGVHZW5lcmF0aXZlQUkoeyBhcGlLZXkgfSkobW9kZWxJZCk7XG4gICAgY2FzZSAneGFpJzpcbiAgICAgIHJldHVybiBjcmVhdGVYYWkoeyBhcGlLZXkgfSkobW9kZWxJZCk7XG4gICAgY2FzZSAnYW1hem9uLWJlZHJvY2snOlxuICAgICAgcmV0dXJuIGNyZWF0ZUFtYXpvbkJlZHJvY2soKShtb2RlbElkKTtcbiAgICBkZWZhdWx0OlxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCBBSSBwcm92aWRlciBcIiR7cHJvdmlkZXJJZH1cImApO1xuICB9XG59XG4iXX0=
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXItcmVnaXN0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcHJvdmlkZXItcmVnaXN0cnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDcEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDeEMsT0FBTyxFQUNMLG1CQUFtQixFQUNuQixvQkFBb0IsRUFDcEIsbUJBQW1CLEdBR3BCLE1BQU0sNEJBQTRCLENBQUM7QUFXcEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxHQUFHLEVBQXlCLENBQUM7QUFDbEQsSUFBSSxXQUFXLEdBQUcsS0FBSyxDQUFDO0FBRXhCLGlGQUFpRjtBQUNqRixrRkFBa0Y7QUFDbEYsaUVBQWlFO0FBQ2pFLE1BQU0sa0JBQWtCLEdBQXlFO0lBQy9GLFdBQVcsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsZUFBZSxDQUFDLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDO0lBQ3RELFFBQVEsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDO0lBQ2hELFFBQVEsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsd0JBQXdCLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUM7SUFDNUQsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUM7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R0FRRztBQUNILE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxVQUFrQixFQUFFLE9BQWUsRUFBRSxNQUFjO0lBQ3BGLE1BQU0sTUFBTSxHQUFHLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQy9DLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN4QixNQUFNLElBQUksS0FBSyxDQUFDLHdCQUF3QixVQUFVLGlCQUFpQixNQUFNLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNwSCxDQUFDO0lBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUMxQyxNQUFNLElBQUksS0FBSyxDQUFDLFVBQVUsT0FBTyxvQ0FBb0MsVUFBVSxpQkFBaUIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDeEksQ0FBQztJQUVELE1BQU0sT0FBTyxHQUFHLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQy9DLElBQUksQ0FBQyxPQUFPO1FBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyw0QkFBNEIsVUFBVSxHQUFHLENBQUMsQ0FBQztJQUN6RSxtRUFBbUU7SUFDbkUsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDbEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgeyBjcmVhdGVBbWF6b25CZWRyb2NrIH0gZnJvbSAnQGFpLXNkay9hbWF6b24tYmVkcm9jayc7XG5pbXBvcnQgeyBjcmVhdGVBbnRocm9waWMgfSBmcm9tICdAYWktc2RrL2FudGhyb3BpYyc7XG5pbXBvcnQgeyBjcmVhdGVHb29nbGVHZW5lcmF0aXZlQUkgfSBmcm9tICdAYWktc2RrL2dvb2dsZSc7XG5pbXBvcnQgeyBjcmVhdGVPcGVuQUkgfSBmcm9tICdAYWktc2RrL29wZW5haSc7XG5pbXBvcnQgeyBjcmVhdGVYYWkgfSBmcm9tICdAYWktc2RrL3hhaSc7XG5pbXBvcnQge1xuICBBSV9QUk9WSURFUl9DQVRBTE9HLFxuICBBSV9QUk9WSURFUl9FTlZfVkFSUyxcbiAgZ2V0QUlQcm92aWRlck1vZGVscyxcbiAgdHlwZSBBSVByb3ZpZGVySW5mbyxcbiAgdHlwZSBBSU1vZGVsSW5mbyxcbn0gZnJvbSAnQHBpcGVsaW5lLWJ1aWxkZXIvYXBpLWNvcmUnO1xuaW1wb3J0IHR5cGUgeyBMYW5ndWFnZU1vZGVsIH0gZnJvbSAnYWknO1xuXG4vLyBQcm92aWRlciBSZWdpc3RyeVxuXG4vKiogUmVnaXN0ZXJlZCBwcm92aWRlciB3aXRoIG1vZGVsIGZhY3RvcnkgZnVuY3Rpb24uICovXG5leHBvcnQgaW50ZXJmYWNlIFByb3ZpZGVyRW50cnkge1xuICBpbmZvOiBBSVByb3ZpZGVySW5mbztcbiAgY3JlYXRlTW9kZWw6IChtb2RlbElkOiBzdHJpbmcpID0+IExhbmd1YWdlTW9kZWw7XG59XG5cbmNvbnN0IHJlZ2lzdHJ5ID0gbmV3IE1hcDxzdHJpbmcsIFByb3ZpZGVyRW50cnk+KCk7XG5sZXQgaW5pdGlhbGl6ZWQgPSBmYWxzZTtcblxuLy8gUHJvdmlkZXIg4oaSIG1vZGVsLWZhY3RvcnkgbWFwLiBga2V5YCBpcyBvcHRpb25hbCBzbyBrZXlsZXNzIHByb3ZpZGVycyAoQmVkcm9jayxcbi8vIHZpYSB0aGUgcnVudGltZSBJQU0gcm9sZSkgYW5kIGtleS1iYXNlZCBwcm92aWRlcnMgc2hhcmUgb25lIHNpZ25hdHVyZS4gRGVjbGFyZWRcbi8vIG9uY2UgYW5kIGNvbnN1bWVkIGJ5IEJPVEggaW5pdFJlZ2lzdHJ5IGFuZCBjcmVhdGVNb2RlbFdpdGhLZXkuXG5jb25zdCBQUk9WSURFUl9GQUNUT1JJRVM6IFJlY29yZDxzdHJpbmcsIChrZXk/OiBzdHJpbmcpID0+IChtb2RlbElkOiBzdHJpbmcpID0+IExhbmd1YWdlTW9kZWw+ID0ge1xuICAnYW50aHJvcGljJzogKGtleSkgPT4gY3JlYXRlQW50aHJvcGljKHsgYXBpS2V5OiBrZXkgfSksXG4gICdvcGVuYWknOiAoa2V5KSA9PiBjcmVhdGVPcGVuQUkoeyBhcGlLZXk6IGtleSB9KSxcbiAgJ2dvb2dsZSc6IChrZXkpID0+IGNyZWF0ZUdvb2dsZUdlbmVyYXRpdmVBSSh7IGFwaUtleToga2V5IH0pLFxuICAneGFpJzogKGtleSkgPT4gY3JlYXRlWGFpKHsgYXBpS2V5OiBrZXkgfSksXG4gICdhbWF6b24tYmVkcm9jayc6ICgpID0+IGNyZWF0ZUFtYXpvbkJlZHJvY2soKSxcbn07XG5cbi8qKiBQcm92aWRlcnMgdGhhdCBhdXRoZW50aWNhdGUgV0lUSE9VVCBhbiBBUEkga2V5IChCZWRyb2NrIHVzZXMgdGhlIElBTSByb2xlKS4gKi9cbmNvbnN0IEtFWUxFU1NfUFJPVklERVJTID0gbmV3IFNldChbJ2FtYXpvbi1iZWRyb2NrJ10pO1xuXG4vKipcbiAqIFdoZXRoZXIgYSBrZXlsZXNzIHByb3ZpZGVyIChCZWRyb2NrKSBzaG91bGQgYmUgYWR2ZXJ0aXNlZC4gSXQgYXV0aHMgdmlhIHRoZVxuICogcnVudGltZSBJQU0gcm9sZSAobm8gQVBJIGtleSksIHNvIGFuIEFXUyByZWdpb24g4oCUIHNldCBieSBldmVyeSBBV1MgcnVudGltZSDigJQgaXNcbiAqIHRoZSBcInJ1bm5pbmcgaW4gLyBjb25maWd1cmVkIGZvciBBV1NcIiBzaWduYWwuIEdhdGluZyBpdCBvbiBBV1NfQUNDRVNTX0tFWV9JRFxuICogKHdoaWNoIGl0IG5ldmVyIHVzZXMpIGxlZnQgaXQgcGVybWFuZW50bHkgdW5hdmFpbGFibGUgZGVzcGl0ZSB2YWxpZCBJQU0gY3JlZHM7XG4gKiBhZHZlcnRpc2luZyBpdCB3aXRoIG5vIEFXUyBjb250ZXh0IGF0IGFsbCB3b3VsZCBqdXN0IGZhaWwgYXQgbW9kZWwtY2FsbCB0aW1lLlxuICovXG5mdW5jdGlvbiBrZXlsZXNzUHJvdmlkZXJBdmFpbGFibGUoKTogYm9vbGVhbiB7XG4gIHJldHVybiAhIShwcm9jZXNzLmVudi5BV1NfUkVHSU9OIHx8IHByb2Nlc3MuZW52LkFXU19ERUZBVUxUX1JFR0lPTik7XG59XG5cbi8qKlxuICogTGF6aWx5IGluaXRpYWxpemUgdGhlIHByb3ZpZGVyIHJlZ2lzdHJ5IGZyb20gZW52aXJvbm1lbnQgdmFyaWFibGVzLiBLZXktYmFzZWRcbiAqIHByb3ZpZGVycyByZWdpc3RlciBvbmx5IHdoZW4gdGhlaXIga2V5IGlzIHNldDsga2V5bGVzcyBwcm92aWRlcnMgKEJlZHJvY2spXG4gKiByZWdpc3RlciB3aGVuIGFuIEFXUyByZWdpb24gaXMgY29uZmlndXJlZC5cbiAqL1xuZnVuY3Rpb24gaW5pdFJlZ2lzdHJ5KCk6IHZvaWQge1xuICBpZiAoaW5pdGlhbGl6ZWQpIHJldHVybjtcbiAgaW5pdGlhbGl6ZWQgPSB0cnVlO1xuXG4gIGZvciAoY29uc3QgW2lkLCBpbmZvXSBvZiBPYmplY3QuZW50cmllcyhBSV9QUk9WSURFUl9DQVRBTE9HKSkge1xuICAgIGNvbnN0IGZhY3RvcnkgPSBQUk9WSURFUl9GQUNUT1JJRVNbaWRdO1xuICAgIGlmICghZmFjdG9yeSkgY29udGludWU7XG4gICAgY29uc3QgZW52VmFyID0gQUlfUFJPVklERVJfRU5WX1ZBUlNbaWRdO1xuICAgIGNvbnN0IGFwaUtleSA9IGVudlZhciA/IHByb2Nlc3MuZW52W2VudlZhcl0gOiB1bmRlZmluZWQ7XG4gICAgaWYgKGFwaUtleSB8fCAoS0VZTEVTU19QUk9WSURFUlMuaGFzKGlkKSAmJiBrZXlsZXNzUHJvdmlkZXJBdmFpbGFibGUoKSkpIHtcbiAgICAgIHJlZ2lzdHJ5LnNldChpZCwgeyBpbmZvLCBjcmVhdGVNb2RlbDogZmFjdG9yeShhcGlLZXkpIH0pO1xuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIGxpc3Qgb2YgcHJvdmlkZXJzIHRoYXQgaGF2ZSBBUEkga2V5cyBjb25maWd1cmVkIHZpYSBlbnYgdmFycy5cbiAqXG4gKiBAcmV0dXJucyBBcnJheSBvZiBjb25maWd1cmVkIHByb3ZpZGVyIGluZm8gd2l0aCBtb2RlbCBsaXN0c1xuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QXZhaWxhYmxlUHJvdmlkZXJzKCk6IEFJUHJvdmlkZXJJbmZvW10ge1xuICBpbml0UmVnaXN0cnkoKTtcbiAgcmV0dXJuIEFycmF5LmZyb20ocmVnaXN0cnkudmFsdWVzKCkpLm1hcCgoZSkgPT4gZS5pbmZvKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBtb2RlbCBsaXN0IGZvciBhIGdpdmVuIHByb3ZpZGVyIElEIChyZWdhcmRsZXNzIG9mIGVudiB2YXIgY29uZmlnKS5cbiAqXG4gKiBAcGFyYW0gcHJvdmlkZXJJZCAtIFByb3ZpZGVyIGlkZW50aWZpZXJcbiAqIEByZXR1cm5zIEFycmF5IG9mIG1vZGVscywgb3IgZW1wdHkgYXJyYXkgaWYgcHJvdmlkZXIgaXMgdW5rbm93blxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UHJvdmlkZXJNb2RlbHMocHJvdmlkZXJJZDogc3RyaW5nKTogQUlNb2RlbEluZm9bXSB7XG4gIHJldHVybiBnZXRBSVByb3ZpZGVyTW9kZWxzKHByb3ZpZGVySWQpO1xufVxuXG4vKipcbiAqIFJlc29sdmUgYSBMYW5ndWFnZU1vZGVsIGZyb20gdGhlIHJlZ2lzdHJ5IGZvciBhIGNvbmZpZ3VyZWQgcHJvdmlkZXIuXG4gKlxuICogQHBhcmFtIHByb3ZpZGVySWQgLSBQcm92aWRlciBpZGVudGlmaWVyXG4gKiBAcGFyYW0gbW9kZWxJZCAtIE1vZGVsIGlkZW50aWZpZXJcbiAqIEByZXR1cm5zIExhbmd1YWdlTW9kZWwgaW5zdGFuY2VcbiAqIEB0aHJvd3MgRXJyb3IgaWYgcHJvdmlkZXIgaXMgbm90IGNvbmZpZ3VyZWQgb3IgbW9kZWwgaXMgaW52YWxpZFxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZU1vZGVsKHByb3ZpZGVySWQ6IHN0cmluZywgbW9kZWxJZDogc3RyaW5nKTogTGFuZ3VhZ2VNb2RlbCB7XG4gIGluaXRSZWdpc3RyeSgpO1xuICBjb25zdCBlbnRyeSA9IHJlZ2lzdHJ5LmdldChwcm92aWRlcklkKTtcbiAgaWYgKCFlbnRyeSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgQUkgcHJvdmlkZXIgXCIke3Byb3ZpZGVySWR9XCIgaXMgbm90IGNvbmZpZ3VyZWQuIFNldCB0aGUgY29ycmVzcG9uZGluZyBBUEkga2V5IGVudmlyb25tZW50IHZhcmlhYmxlLmApO1xuICB9XG4gIGlmICghZW50cnkuaW5mby5tb2RlbHMuc29tZSgobSkgPT4gbS5pZCA9PT0gbW9kZWxJZCkpIHtcbiAgICBjb25zdCBhdmFpbGFibGUgPSBlbnRyeS5pbmZvLm1vZGVscy5tYXAoKG0pID0+IG0uaWQpLmpvaW4oJywgJyk7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBNb2RlbCBcIiR7bW9kZWxJZH1cIiBpcyBub3QgYXZhaWxhYmxlIGZvciBwcm92aWRlciBcIiR7cHJvdmlkZXJJZH1cIi4gQXZhaWxhYmxlIG1vZGVsczogJHthdmFpbGFibGV9YCk7XG4gIH1cbiAgcmV0dXJuIGVudHJ5LmNyZWF0ZU1vZGVsKG1vZGVsSWQpO1xufVxuXG4vKipcbiAqIENyZWF0ZSBhIHRlbXBvcmFyeSBMYW5ndWFnZU1vZGVsIHVzaW5nIGEgY3VzdG9tIEFQSSBrZXkgKG5vdCBjYWNoZWQgaW4gcmVnaXN0cnkpLlxuICpcbiAqIEBwYXJhbSBwcm92aWRlcklkIC0gUHJvdmlkZXIgaWRlbnRpZmllclxuICogQHBhcmFtIG1vZGVsSWQgLSBNb2RlbCBpZGVudGlmaWVyXG4gKiBAcGFyYW0gYXBpS2V5IC0gQ3VzdG9tIEFQSSBrZXlcbiAqIEByZXR1cm5zIExhbmd1YWdlTW9kZWwgaW5zdGFuY2VcbiAqIEB0aHJvd3MgRXJyb3IgaWYgcHJvdmlkZXIgb3IgbW9kZWwgaXMgdW5rbm93blxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTW9kZWxXaXRoS2V5KHByb3ZpZGVySWQ6IHN0cmluZywgbW9kZWxJZDogc3RyaW5nLCBhcGlLZXk6IHN0cmluZyk6IExhbmd1YWdlTW9kZWwge1xuICBjb25zdCBtb2RlbHMgPSBnZXRBSVByb3ZpZGVyTW9kZWxzKHByb3ZpZGVySWQpO1xuICBpZiAobW9kZWxzLmxlbmd0aCA9PT0gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biBBSSBwcm92aWRlciBcIiR7cHJvdmlkZXJJZH1cIi4gU3VwcG9ydGVkOiAke09iamVjdC5rZXlzKEFJX1BST1ZJREVSX0NBVEFMT0cpLmpvaW4oJywgJyl9YCk7XG4gIH1cbiAgaWYgKCFtb2RlbHMuc29tZSgobSkgPT4gbS5pZCA9PT0gbW9kZWxJZCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYE1vZGVsIFwiJHttb2RlbElkfVwiIGlzIG5vdCBhdmFpbGFibGUgZm9yIHByb3ZpZGVyIFwiJHtwcm92aWRlcklkfVwiLiBBdmFpbGFibGU6ICR7bW9kZWxzLm1hcCgobSkgPT4gbS5pZCkuam9pbignLCAnKX1gKTtcbiAgfVxuXG4gIGNvbnN0IGZhY3RvcnkgPSBQUk9WSURFUl9GQUNUT1JJRVNbcHJvdmlkZXJJZF07XG4gIGlmICghZmFjdG9yeSkgdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCBBSSBwcm92aWRlciBcIiR7cHJvdmlkZXJJZH1cImApO1xuICAvLyBLZXlsZXNzIHByb3ZpZGVycyAoQmVkcm9jaykgaWdub3JlIHRoZSBrZXkgYW5kIHVzZSB0aGUgSUFNIHJvbGUuXG4gIHJldHVybiBmYWN0b3J5KGFwaUtleSkobW9kZWxJZCk7XG59XG4iXX0=
package/package.json CHANGED
@@ -27,7 +27,7 @@
27
27
  "@ai-sdk/openai-compatible": "2.0.48",
28
28
  "@ai-sdk/xai": "3.0.93",
29
29
  "ai": "6.0.198",
30
- "@pipeline-builder/api-core": "3.4.78"
30
+ "@pipeline-builder/api-core": "3.4.80"
31
31
  },
32
32
  "keywords": [
33
33
  "ci-cd",
@@ -83,7 +83,7 @@
83
83
  "access": "public",
84
84
  "registry": "https://registry.npmjs.org/"
85
85
  },
86
- "version": "3.4.78",
86
+ "version": "3.4.80",
87
87
  "bugs": {
88
88
  "url": "https://github.com/mwashburn160/pipeline-builder/issues"
89
89
  },