@almadar/integrations 2.4.0 → 2.5.1

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.
@@ -1,3 +1,5 @@
1
+ import { LogMeta } from '@almadar/core';
2
+
1
3
  /**
2
4
  * Core types for Almadar integrations
3
5
  */
@@ -66,14 +68,23 @@ declare class IntegrationError extends Error {
66
68
  details: unknown;
67
69
  };
68
70
  }
71
+
69
72
  /**
70
73
  * Logger interface
71
74
  */
72
75
  interface IntegrationLogger {
73
- debug(message: string, meta?: Record<string, unknown>): void;
74
- info(message: string, meta?: Record<string, unknown>): void;
75
- warn(message: string, meta?: Record<string, unknown>): void;
76
- error(message: string, meta?: Record<string, unknown>): void;
76
+ debug(message: string, meta?: LogMeta): void;
77
+ info(message: string, meta?: LogMeta): void;
78
+ warn(message: string, meta?: LogMeta): void;
79
+ error(message: string, meta?: LogMeta): void;
80
+ }
81
+ /**
82
+ * Integration action parameters.
83
+ * Each integration's execute() method receives params as this type.
84
+ * Individual methods cast to specific param shapes from their contracts.
85
+ */
86
+ interface IntegrationParams {
87
+ [key: string]: string | number | boolean | null | undefined | string[] | IntegrationParams;
77
88
  }
78
89
  /**
79
90
  * Validation result
@@ -93,7 +104,7 @@ interface ValidationError {
93
104
  /**
94
105
  * Validate action params against registry schema
95
106
  */
96
- declare function validateParams(integration: string, action: string, params: Record<string, unknown>): ValidationResult;
107
+ declare function validateParams(integration: string, action: string, params: IntegrationParams): ValidationResult;
97
108
 
98
109
  /**
99
110
  * Base class for all integrations
@@ -105,11 +116,11 @@ declare abstract class BaseIntegration {
105
116
  /**
106
117
  * Execute an action
107
118
  */
108
- abstract execute(action: string, params: Record<string, unknown>): Promise<IntegrationResult>;
119
+ abstract execute(action: string, params: IntegrationParams): Promise<IntegrationResult>;
109
120
  /**
110
121
  * Validate action params against registry
111
122
  */
112
- protected validateParams(action: string, params: Record<string, unknown>): ReturnType<typeof validateParams>;
123
+ protected validateParams(action: string, params: IntegrationParams): ReturnType<typeof validateParams>;
113
124
  /**
114
125
  * Handle errors uniformly
115
126
  */
@@ -124,4 +135,4 @@ declare abstract class BaseIntegration {
124
135
  protected executeWithRetry<T>(fn: () => Promise<T>): Promise<T>;
125
136
  }
126
137
 
127
- export { BaseIntegration as B, type IntegrationLogger as I, type ValidationError as V, type IntegrationErrorCode as a, type IntegrationConfig as b, type IntegrationResult as c, IntegrationError as d, type ValidationResult as e, validateParams as v };
138
+ export { BaseIntegration as B, type IntegrationParams as I, type ValidationError as V, type IntegrationLogger as a, type IntegrationErrorCode as b, type IntegrationConfig as c, type IntegrationResult as d, IntegrationError as e, type ValidationResult as f, validateParams as v };
@@ -1,4 +1,4 @@
1
- import { b as IntegrationConfig, B as BaseIntegration, c as IntegrationResult } from './BaseIntegration-DNSuiUnG.js';
1
+ import { c as IntegrationConfig, B as BaseIntegration, I as IntegrationParams, d as IntegrationResult } from './BaseIntegration-DjXCkytU.js';
2
2
 
3
3
  /**
4
4
  * Factory for creating and managing integration instances
@@ -17,11 +17,15 @@ declare class IntegrationFactory {
17
17
  /**
18
18
  * Execute an action on an integration
19
19
  */
20
- execute(integration: string, action: string, params: Record<string, unknown>): Promise<IntegrationResult>;
20
+ execute(integration: string, action: string, params: IntegrationParams): Promise<IntegrationResult>;
21
21
  /**
22
22
  * Check if integration is configured
23
23
  */
24
24
  isConfigured(name: string): boolean;
25
+ /**
26
+ * Register an integration instance directly (used by mock infrastructure)
27
+ */
28
+ registerInstance(name: string, instance: BaseIntegration): void;
25
29
  /**
26
30
  * Clear all instances (useful for testing)
27
31
  */
package/dist/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
- import { I as IntegrationLogger, a as IntegrationErrorCode, b as IntegrationConfig, B as BaseIntegration, c as IntegrationResult } from './BaseIntegration-DNSuiUnG.js';
2
- export { d as IntegrationError, V as ValidationError, e as ValidationResult, v as validateParams } from './BaseIntegration-DNSuiUnG.js';
3
- export { I as IntegrationFactory, g as getIntegrationFactory, r as resetIntegrationFactory } from './factory-B1QtCI_c.js';
1
+ import { I as IntegrationParams, a as IntegrationLogger, b as IntegrationErrorCode, c as IntegrationConfig, B as BaseIntegration, d as IntegrationResult } from './BaseIntegration-DjXCkytU.js';
2
+ export { e as IntegrationError, V as ValidationError, f as ValidationResult, v as validateParams } from './BaseIntegration-DjXCkytU.js';
3
+ import { LogMeta } from '@almadar/core';
4
+ export { I as IntegrationFactory, g as getIntegrationFactory, r as resetIntegrationFactory } from './factory-BoDqQ89e.js';
4
5
  export { GitHubIntegration } from './integrations/github/index.js';
5
6
 
6
7
  /**
@@ -174,10 +175,10 @@ type LLMIntegrationActions = {
174
175
  extract: {
175
176
  params: {
176
177
  text: string;
177
- schema: Record<string, unknown>;
178
+ schema: IntegrationParams;
178
179
  model?: string;
179
180
  };
180
- result: Record<string, unknown>;
181
+ result: IntegrationParams;
181
182
  };
182
183
  summarize: {
183
184
  params: {
@@ -386,7 +387,7 @@ type StorageActions = {
386
387
  key: string;
387
388
  content: unknown;
388
389
  contentType?: string;
389
- metadata?: Record<string, unknown>;
390
+ metadata?: IntegrationParams;
390
391
  };
391
392
  result: {
392
393
  key: string;
@@ -404,7 +405,7 @@ type StorageActions = {
404
405
  content: unknown;
405
406
  contentType: string;
406
407
  size: number;
407
- metadata: Record<string, unknown>;
408
+ metadata: IntegrationParams;
408
409
  };
409
410
  };
410
411
  list: {
@@ -660,7 +661,7 @@ type OtelActions = {
660
661
  startSpan: {
661
662
  params: {
662
663
  name: string;
663
- attributes?: Record<string, unknown>;
664
+ attributes?: IntegrationParams;
664
665
  traceId?: string;
665
666
  };
666
667
  result: {
@@ -681,7 +682,7 @@ type OtelActions = {
681
682
  params: {
682
683
  spanId: string;
683
684
  name: string;
684
- attributes?: Record<string, unknown>;
685
+ attributes?: IntegrationParams;
685
686
  };
686
687
  result: {
687
688
  added: boolean;
@@ -692,7 +693,7 @@ type OtelActions = {
692
693
  name: string;
693
694
  value: number;
694
695
  type?: 'counter' | 'gauge' | 'histogram';
695
- labels?: Record<string, unknown>;
696
+ labels?: IntegrationParams;
696
697
  };
697
698
  result: {
698
699
  recorded: boolean;
@@ -709,7 +710,7 @@ type OtelActions = {
709
710
  startTime: number;
710
711
  endTime?: number;
711
712
  status?: 'ok' | 'error';
712
- attributes: Record<string, unknown>;
713
+ attributes: IntegrationParams;
713
714
  } | null;
714
715
  };
715
716
  getMetrics: {
@@ -719,7 +720,7 @@ type OtelActions = {
719
720
  type: string;
720
721
  value: number;
721
722
  values: number[];
722
- labels: Record<string, unknown>;
723
+ labels: IntegrationParams;
723
724
  }>;
724
725
  };
725
726
  };
@@ -742,7 +743,7 @@ type DeepAgentActions = {
742
743
  message: string;
743
744
  threadId?: string;
744
745
  skill?: string;
745
- context?: Record<string, unknown>;
746
+ context?: IntegrationParams;
746
747
  };
747
748
  result: {
748
749
  response: string;
@@ -837,10 +838,10 @@ type IntegrationActionName<K extends IntegrationName> = keyof IntegrationContrac
837
838
  declare class ConsoleLogger implements IntegrationLogger {
838
839
  private level;
839
840
  constructor(level?: 'debug' | 'info' | 'warn' | 'error');
840
- debug(message: string, meta?: Record<string, unknown>): void;
841
- info(message: string, meta?: Record<string, unknown>): void;
842
- warn(message: string, meta?: Record<string, unknown>): void;
843
- error(message: string, meta?: Record<string, unknown>): void;
841
+ debug(message: string, meta?: LogMeta): void;
842
+ info(message: string, meta?: LogMeta): void;
843
+ warn(message: string, meta?: LogMeta): void;
844
+ error(message: string, meta?: LogMeta): void;
844
845
  private shouldLog;
845
846
  }
846
847
 
@@ -885,7 +886,7 @@ declare function getRegisteredIntegrations(): string[];
885
886
  declare class StripeIntegration extends BaseIntegration {
886
887
  private client;
887
888
  constructor(config: IntegrationConfig);
888
- execute(action: string, params: Record<string, unknown>): Promise<IntegrationResult>;
889
+ execute(action: string, params: IntegrationParams): Promise<IntegrationResult>;
889
890
  private createPaymentIntent;
890
891
  private confirmPayment;
891
892
  private refund;
@@ -897,7 +898,7 @@ declare class StripeIntegration extends BaseIntegration {
897
898
  declare class YouTubeIntegration extends BaseIntegration {
898
899
  private client;
899
900
  constructor(config: IntegrationConfig);
900
- execute(action: string, params: Record<string, unknown>): Promise<IntegrationResult>;
901
+ execute(action: string, params: IntegrationParams): Promise<IntegrationResult>;
901
902
  private search;
902
903
  private getVideo;
903
904
  private getChannel;
@@ -910,7 +911,7 @@ declare class TwilioIntegration extends BaseIntegration {
910
911
  private client;
911
912
  private phoneNumber;
912
913
  constructor(config: IntegrationConfig);
913
- execute(action: string, params: Record<string, unknown>): Promise<IntegrationResult>;
914
+ execute(action: string, params: IntegrationParams): Promise<IntegrationResult>;
914
915
  private sendSMS;
915
916
  private sendWhatsApp;
916
917
  }
@@ -923,7 +924,7 @@ declare class EmailIntegration extends BaseIntegration {
923
924
  private fromEmail;
924
925
  private resendClient?;
925
926
  constructor(config: IntegrationConfig);
926
- execute(action: string, params: Record<string, unknown>): Promise<IntegrationResult>;
927
+ execute(action: string, params: IntegrationParams): Promise<IntegrationResult>;
927
928
  private send;
928
929
  private sendViaSendGrid;
929
930
  private sendViaResend;
@@ -947,7 +948,7 @@ declare class LLMIntegration extends BaseIntegration {
947
948
  * The client will throw a clear error when actually used without a key.
948
949
  */
949
950
  private getClient;
950
- execute(action: string, params: Record<string, unknown>): Promise<IntegrationResult>;
951
+ execute(action: string, params: IntegrationParams): Promise<IntegrationResult>;
951
952
  private generate;
952
953
  private classify;
953
954
  private extract;
@@ -961,7 +962,7 @@ declare class DeepAgentIntegration extends BaseIntegration {
961
962
  private apiUrl;
962
963
  private apiKey;
963
964
  constructor(config: IntegrationConfig);
964
- execute(action: string, params: Record<string, unknown>): Promise<IntegrationResult>;
965
+ execute(action: string, params: IntegrationParams): Promise<IntegrationResult>;
965
966
  private sendMessage;
966
967
  private cancelGeneration;
967
968
  private validateSchema;
@@ -981,7 +982,7 @@ declare class DeepAgentIntegration extends BaseIntegration {
981
982
  */
982
983
  declare class CLIIntegration extends BaseIntegration {
983
984
  constructor(config: IntegrationConfig);
984
- execute(action: string, params: Record<string, unknown>): Promise<IntegrationResult>;
985
+ execute(action: string, params: IntegrationParams): Promise<IntegrationResult>;
985
986
  private validate;
986
987
  }
987
988
 
@@ -998,7 +999,7 @@ declare class RedisIntegration extends BaseIntegration {
998
999
  private locks;
999
1000
  private channels;
1000
1001
  constructor(config: IntegrationConfig);
1001
- execute(action: string, params: Record<string, unknown>): Promise<IntegrationResult>;
1002
+ execute(action: string, params: IntegrationParams): Promise<IntegrationResult>;
1002
1003
  /** Remove expired entries on access and return whether a key is alive. */
1003
1004
  private isAlive;
1004
1005
  /** Generate a unique lock identifier. */
@@ -1026,7 +1027,7 @@ declare class QueueIntegration extends BaseIntegration {
1026
1027
  /** Map from job ID to job data */
1027
1028
  private jobs;
1028
1029
  constructor(config: IntegrationConfig);
1029
- execute(action: string, params: Record<string, unknown>): Promise<IntegrationResult>;
1030
+ execute(action: string, params: IntegrationParams): Promise<IntegrationResult>;
1030
1031
  /** Generate a unique job identifier. */
1031
1032
  private generateJobId;
1032
1033
  /** Get or create the queue array for a given queue name. */
@@ -1050,7 +1051,7 @@ declare class OtelIntegration extends BaseIntegration {
1050
1051
  private spans;
1051
1052
  private metrics;
1052
1053
  constructor(config: IntegrationConfig);
1053
- execute(action: string, params: Record<string, unknown>): Promise<IntegrationResult>;
1054
+ execute(action: string, params: IntegrationParams): Promise<IntegrationResult>;
1054
1055
  private startSpan;
1055
1056
  private endSpan;
1056
1057
  private addEvent;
@@ -1076,7 +1077,7 @@ declare class OAuthIntegration extends BaseIntegration {
1076
1077
  /** Maps access token -> mock user session */
1077
1078
  private sessions;
1078
1079
  constructor(config: IntegrationConfig);
1079
- execute(action: string, params: Record<string, unknown>): Promise<IntegrationResult>;
1080
+ execute(action: string, params: IntegrationParams): Promise<IntegrationResult>;
1080
1081
  /** Generate a random hex token of the given byte length. */
1081
1082
  private generateToken;
1082
1083
  /** Generate a mock user profile from a provider and access token. */
@@ -1098,7 +1099,7 @@ declare class OAuthIntegration extends BaseIntegration {
1098
1099
  declare class StorageIntegration extends BaseIntegration {
1099
1100
  private objects;
1100
1101
  constructor(config: IntegrationConfig);
1101
- execute(action: string, params: Record<string, unknown>): Promise<IntegrationResult>;
1102
+ execute(action: string, params: IntegrationParams): Promise<IntegrationResult>;
1102
1103
  /** Build a composite key from bucket and object key. */
1103
1104
  private compositeKey;
1104
1105
  /** Generate a deterministic etag from content. */
@@ -1123,7 +1124,7 @@ declare class DockerIntegration extends BaseIntegration {
1123
1124
  private containers;
1124
1125
  private images;
1125
1126
  constructor(config: IntegrationConfig);
1126
- execute(action: string, params: Record<string, unknown>): Promise<IntegrationResult>;
1127
+ execute(action: string, params: IntegrationParams): Promise<IntegrationResult>;
1127
1128
  /** Generate a random hex container/image ID. */
1128
1129
  private generateId;
1129
1130
  /** Find a container by ID (prefix match supported). */
package/dist/index.js CHANGED
@@ -156,7 +156,7 @@ var BaseIntegration = class {
156
156
  */
157
157
  handleError(action, error) {
158
158
  this.logger.error(`Integration error in ${this.config.name}.${action}`, {
159
- error
159
+ error: error instanceof Error ? error : new Error(String(error))
160
160
  });
161
161
  const integrationError = error instanceof Error ? error : new Error(String(error));
162
162
  return {
@@ -258,6 +258,12 @@ var IntegrationFactory = class {
258
258
  isConfigured(name) {
259
259
  return this.configs.has(name);
260
260
  }
261
+ /**
262
+ * Register an integration instance directly (used by mock infrastructure)
263
+ */
264
+ registerInstance(name, instance) {
265
+ this.instances.set(name, instance);
266
+ }
261
267
  /**
262
268
  * Clear all instances (useful for testing)
263
269
  */
@@ -339,7 +345,7 @@ var StripeIntegration = class extends BaseIntegration {
339
345
  }
340
346
  async createPaymentIntent(params) {
341
347
  const { amount, currency, metadata } = params;
342
- this.logger.debug("Creating payment intent", { amount, currency });
348
+ this.logger.debug("Creating payment intent", { amount: Number(amount), currency: String(currency ?? "") });
343
349
  return await this.client.paymentIntents.create({
344
350
  amount,
345
351
  currency,
@@ -348,12 +354,12 @@ var StripeIntegration = class extends BaseIntegration {
348
354
  }
349
355
  async confirmPayment(params) {
350
356
  const { paymentIntentId } = params;
351
- this.logger.debug("Confirming payment", { paymentIntentId });
357
+ this.logger.debug("Confirming payment", { paymentIntentId: String(paymentIntentId ?? "") });
352
358
  return await this.client.paymentIntents.confirm(paymentIntentId);
353
359
  }
354
360
  async refund(params) {
355
361
  const { paymentIntentId, amount } = params;
356
- this.logger.debug("Creating refund", { paymentIntentId, amount });
362
+ this.logger.debug("Creating refund", { paymentIntentId: String(paymentIntentId ?? ""), amount: Number(amount) });
357
363
  return await this.client.refunds.create({
358
364
  payment_intent: paymentIntentId,
359
365
  amount
@@ -416,7 +422,7 @@ var YouTubeIntegration = class extends BaseIntegration {
416
422
  }
417
423
  async search(params) {
418
424
  const { query, maxResults, type } = params;
419
- this.logger.debug("Searching YouTube", { query, maxResults, type });
425
+ this.logger.debug("Searching YouTube", { query: String(query ?? ""), maxResults: Number(maxResults ?? 10), type: String(type ?? "") });
420
426
  const response = await this.client.search.list({
421
427
  part: ["snippet"],
422
428
  q: query,
@@ -432,7 +438,7 @@ var YouTubeIntegration = class extends BaseIntegration {
432
438
  }
433
439
  async getVideo(params) {
434
440
  const { videoId } = params;
435
- this.logger.debug("Getting video details", { videoId });
441
+ this.logger.debug("Getting video details", { videoId: String(videoId ?? "") });
436
442
  const response = await this.client.videos.list({
437
443
  part: ["snippet", "statistics"],
438
444
  id: [videoId]
@@ -450,7 +456,7 @@ var YouTubeIntegration = class extends BaseIntegration {
450
456
  }
451
457
  async getChannel(params) {
452
458
  const { channelId } = params;
453
- this.logger.debug("Getting channel details", { channelId });
459
+ this.logger.debug("Getting channel details", { channelId: String(channelId ?? "") });
454
460
  const response = await this.client.channels.list({
455
461
  part: ["snippet", "statistics"],
456
462
  id: [channelId]
@@ -518,7 +524,7 @@ var TwilioIntegration = class extends BaseIntegration {
518
524
  }
519
525
  async sendSMS(params) {
520
526
  const { to, body } = params;
521
- this.logger.debug("Sending SMS", { to });
527
+ this.logger.debug("Sending SMS", { to: String(to ?? "") });
522
528
  const message = await this.client.messages.create({
523
529
  from: this.phoneNumber,
524
530
  to,
@@ -531,7 +537,7 @@ var TwilioIntegration = class extends BaseIntegration {
531
537
  }
532
538
  async sendWhatsApp(params) {
533
539
  const { to, body } = params;
534
- this.logger.debug("Sending WhatsApp message", { to });
540
+ this.logger.debug("Sending WhatsApp message", { to: String(to ?? "") });
535
541
  const message = await this.client.messages.create({
536
542
  from: `whatsapp:${this.phoneNumber}`,
537
543
  to: `whatsapp:${to}`,
@@ -600,7 +606,7 @@ var EmailIntegration = class extends BaseIntegration {
600
606
  }
601
607
  async send(params) {
602
608
  const { to, subject, body, from } = params;
603
- this.logger.debug("Sending email", { to, subject, provider: this.provider });
609
+ this.logger.debug("Sending email", { to: String(to), subject: String(subject), provider: this.provider });
604
610
  if (this.provider === "sendgrid") {
605
611
  return await this.sendViaSendGrid(
606
612
  to,
@@ -740,7 +746,7 @@ var LLMIntegration = class extends BaseIntegration {
740
746
  }
741
747
  async classify(params) {
742
748
  const { text, categories, model } = params;
743
- this.logger.debug("Classifying text", { categories });
749
+ this.logger.debug("Classifying text", { categories: categories.join(", ") });
744
750
  const ClassificationSchema = z.object({
745
751
  category: z.enum(categories),
746
752
  confidence: z.number().min(0).max(1),
@@ -757,7 +763,7 @@ var LLMIntegration = class extends BaseIntegration {
757
763
  }
758
764
  async extract(params) {
759
765
  const { text, schema, model } = params;
760
- this.logger.debug("Extracting structured data", { schema });
766
+ this.logger.debug("Extracting structured data", { schema: String(schema ?? "") });
761
767
  const ExtractSchema = z.record(z.unknown());
762
768
  const client = model ? new LLMClient({ provider: this.provider, model, temperature: 0.2 }) : this.getClient();
763
769
  const schemaDescription = JSON.stringify(schema, null, 2);
@@ -855,7 +861,7 @@ var DeepAgentIntegration = class extends BaseIntegration {
855
861
  }
856
862
  async sendMessage(params) {
857
863
  const { message, threadId, skill, context } = params;
858
- this.logger.debug("Sending message to DeepAgent", { threadId, skill });
864
+ this.logger.debug("Sending message to DeepAgent", { threadId: String(threadId ?? ""), skill: String(skill ?? "") });
859
865
  const response = await this.request("/api/agent/message", {
860
866
  message,
861
867
  threadId,
@@ -866,7 +872,7 @@ var DeepAgentIntegration = class extends BaseIntegration {
866
872
  }
867
873
  async cancelGeneration(params) {
868
874
  const { threadId } = params;
869
- this.logger.debug("Cancelling generation", { threadId });
875
+ this.logger.debug("Cancelling generation", { threadId: String(threadId ?? "") });
870
876
  const response = await this.request("/api/agent/cancel", {
871
877
  threadId
872
878
  });
@@ -882,7 +888,7 @@ var DeepAgentIntegration = class extends BaseIntegration {
882
888
  }
883
889
  async compileSchema(params) {
884
890
  const { schema, shell } = params;
885
- this.logger.debug("Compiling schema", { shell });
891
+ this.logger.debug("Compiling schema", { shell: String(shell ?? "") });
886
892
  const response = await this.request("/api/schema/compile", {
887
893
  schema,
888
894
  shell
@@ -891,7 +897,7 @@ var DeepAgentIntegration = class extends BaseIntegration {
891
897
  }
892
898
  async getThreadHistory(params) {
893
899
  const { threadId } = params;
894
- this.logger.debug("Getting thread history", { threadId });
900
+ this.logger.debug("Getting thread history", { threadId: String(threadId ?? "") });
895
901
  const response = await this.request("/api/agent/history", {
896
902
  threadId
897
903
  });
@@ -1363,7 +1369,7 @@ var GitHubIntegration = class extends BaseIntegration {
1363
1369
  * List issues
1364
1370
  */
1365
1371
  async listIssues(params) {
1366
- this.logger.debug("Listing issues", params);
1372
+ this.logger.debug("Listing issues", { state: params.state, labels: params.labels?.join(", "), limit: params.limit });
1367
1373
  const apiConfig = this.getAPIConfig();
1368
1374
  const issues = await listIssues(params, apiConfig);
1369
1375
  return { issues };
@@ -2150,7 +2156,7 @@ var OAuthIntegration = class extends BaseIntegration {
2150
2156
  const provider = params.provider;
2151
2157
  const scopes = params.scopes;
2152
2158
  const redirectUri = params.redirectUri;
2153
- this.logger.debug("OAuth AUTHORIZE", { provider, scopes, redirectUri });
2159
+ this.logger.debug("OAuth AUTHORIZE", { provider, scopes: scopes.join(", "), redirectUri });
2154
2160
  const state = this.generateToken(16);
2155
2161
  this.states.set(state, provider);
2156
2162
  const baseUrl = PROVIDER_AUTH_URLS[provider];
@@ -2547,7 +2553,7 @@ var DockerIntegration = class extends BaseIntegration {
2547
2553
  const env = params.env ?? {};
2548
2554
  const rawVolumes = params.volumes ?? [];
2549
2555
  const command = params.command ?? "";
2550
- this.logger.debug("Docker RUN", { image, name, ports: rawPorts, env, volumes: rawVolumes, command });
2556
+ this.logger.debug("Docker RUN", { image, name, ports: rawPorts.map((p) => `${p.host}:${p.container}`).join(", "), volumes: rawVolumes.map((v) => `${v.host}:${v.container}`).join(", "), command });
2551
2557
  const containerId = this.generateId();
2552
2558
  const ports = rawPorts.map((p) => ({
2553
2559
  host: p.host,