@cadenza.io/core 1.11.6 → 1.11.8

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.
package/dist/index.d.mts CHANGED
@@ -114,18 +114,17 @@ declare abstract class SignalEmitter {
114
114
  */
115
115
  constructor(silent?: boolean);
116
116
  /**
117
- * Emits a signal via the broker if not silent.
117
+ * Emits a signal via the broker.
118
118
  * @param signal The signal name.
119
119
  * @param data Optional payload (defaults to empty object).
120
- * @edge No emission if silent; for metrics in silent mode, consider override or separate method.
121
120
  */
122
121
  protected emit(signal: string, data?: AnyObject): void;
123
122
  /**
124
- * Emits a signal via the broker even if silent.
123
+ * Emits a signal via the broker if not silent.
125
124
  * @param signal The signal name.
126
125
  * @param data Optional payload (defaults to empty object).
127
126
  */
128
- protected emitMetric(signal: string, data?: AnyObject): void;
127
+ protected emitMetrics(signal: string, data?: AnyObject): void;
129
128
  }
130
129
 
131
130
  declare abstract class ExecutionChain {
@@ -230,6 +229,7 @@ declare class GraphNode extends SignalEmitter implements Graph {
230
229
  private executeAsync;
231
230
  private work;
232
231
  protected emitWithMetadata(signal: string, ctx: AnyObject): void;
232
+ protected emitMetricsWithMetadata(signal: string, ctx: AnyObject): void;
233
233
  private onProgress;
234
234
  private postProcess;
235
235
  private onError;
@@ -639,7 +639,9 @@ declare class SignalBroker {
639
639
  */
640
640
  static get instance(): SignalBroker;
641
641
  private debug;
642
+ private verbose;
642
643
  setDebug(value: boolean): void;
644
+ setVerbose(value: boolean): void;
643
645
  protected validateSignalName(signalName: string): void;
644
646
  protected runner: GraphRunner | undefined;
645
647
  protected metaRunner: GraphRunner | undefined;
@@ -783,7 +785,7 @@ interface TaskOptions {
783
785
  retryDelayMax?: number;
784
786
  retryDelayFactor?: number;
785
787
  }
786
- type CadenzaMode = "dev" | "debug" | "production";
788
+ type CadenzaMode = "dev" | "debug" | "verbose" | "production";
787
789
  declare class Cadenza {
788
790
  static broker: SignalBroker;
789
791
  static runner: GraphRunner;
package/dist/index.d.ts CHANGED
@@ -114,18 +114,17 @@ declare abstract class SignalEmitter {
114
114
  */
115
115
  constructor(silent?: boolean);
116
116
  /**
117
- * Emits a signal via the broker if not silent.
117
+ * Emits a signal via the broker.
118
118
  * @param signal The signal name.
119
119
  * @param data Optional payload (defaults to empty object).
120
- * @edge No emission if silent; for metrics in silent mode, consider override or separate method.
121
120
  */
122
121
  protected emit(signal: string, data?: AnyObject): void;
123
122
  /**
124
- * Emits a signal via the broker even if silent.
123
+ * Emits a signal via the broker if not silent.
125
124
  * @param signal The signal name.
126
125
  * @param data Optional payload (defaults to empty object).
127
126
  */
128
- protected emitMetric(signal: string, data?: AnyObject): void;
127
+ protected emitMetrics(signal: string, data?: AnyObject): void;
129
128
  }
130
129
 
131
130
  declare abstract class ExecutionChain {
@@ -230,6 +229,7 @@ declare class GraphNode extends SignalEmitter implements Graph {
230
229
  private executeAsync;
231
230
  private work;
232
231
  protected emitWithMetadata(signal: string, ctx: AnyObject): void;
232
+ protected emitMetricsWithMetadata(signal: string, ctx: AnyObject): void;
233
233
  private onProgress;
234
234
  private postProcess;
235
235
  private onError;
@@ -639,7 +639,9 @@ declare class SignalBroker {
639
639
  */
640
640
  static get instance(): SignalBroker;
641
641
  private debug;
642
+ private verbose;
642
643
  setDebug(value: boolean): void;
644
+ setVerbose(value: boolean): void;
643
645
  protected validateSignalName(signalName: string): void;
644
646
  protected runner: GraphRunner | undefined;
645
647
  protected metaRunner: GraphRunner | undefined;
@@ -783,7 +785,7 @@ interface TaskOptions {
783
785
  retryDelayMax?: number;
784
786
  retryDelayFactor?: number;
785
787
  }
786
- type CadenzaMode = "dev" | "debug" | "production";
788
+ type CadenzaMode = "dev" | "debug" | "verbose" | "production";
787
789
  declare class Cadenza {
788
790
  static broker: SignalBroker;
789
791
  static runner: GraphRunner;
package/dist/index.js CHANGED
@@ -76,6 +76,7 @@ var SignalBroker = class _SignalBroker {
76
76
  // execId -> emitted signals
77
77
  constructor() {
78
78
  this.debug = false;
79
+ this.verbose = false;
79
80
  this.signalObservers = /* @__PURE__ */ new Map();
80
81
  this.emitStacks = /* @__PURE__ */ new Map();
81
82
  this.addSignal("meta.signal_broker.added");
@@ -93,6 +94,9 @@ var SignalBroker = class _SignalBroker {
93
94
  setDebug(value) {
94
95
  this.debug = value;
95
96
  }
97
+ setVerbose(value) {
98
+ this.verbose = value;
99
+ }
96
100
  validateSignalName(signalName) {
97
101
  if (signalName.length > 100) {
98
102
  throw new Error(
@@ -196,8 +200,10 @@ var SignalBroker = class _SignalBroker {
196
200
  }
197
201
  }
198
202
  execute(signal, context) {
203
+ var _a;
199
204
  const isMeta = signal.startsWith("meta.");
200
205
  const isSubMeta = signal.startsWith("sub_meta.");
206
+ const isMetric = (_a = context.__signalEmission) == null ? void 0 : _a.isMetric;
201
207
  if (!isSubMeta && (!isMeta || this.debug)) {
202
208
  const emittedAt = Date.now();
203
209
  context.__signalEmission = {
@@ -214,7 +220,7 @@ var SignalBroker = class _SignalBroker {
214
220
  } else {
215
221
  delete context.__signalEmission;
216
222
  }
217
- if (this.debug) {
223
+ if (this.debug && (!isMetric || this.verbose)) {
218
224
  console.log(
219
225
  `Emitting signal ${signal} with context ${JSON.stringify(context)}`
220
226
  );
@@ -663,23 +669,22 @@ var SignalEmitter = class {
663
669
  this.silent = silent;
664
670
  }
665
671
  /**
666
- * Emits a signal via the broker if not silent.
672
+ * Emits a signal via the broker.
667
673
  * @param signal The signal name.
668
674
  * @param data Optional payload (defaults to empty object).
669
- * @edge No emission if silent; for metrics in silent mode, consider override or separate method.
670
675
  */
671
676
  emit(signal, data = {}) {
672
- if (this.silent) {
673
- return;
674
- }
675
677
  Cadenza.broker.emit(signal, data);
676
678
  }
677
679
  /**
678
- * Emits a signal via the broker even if silent.
680
+ * Emits a signal via the broker if not silent.
679
681
  * @param signal The signal name.
680
682
  * @param data Optional payload (defaults to empty object).
681
683
  */
682
- emitMetric(signal, data = {}) {
684
+ emitMetrics(signal, data = {}) {
685
+ if (this.silent) {
686
+ return;
687
+ }
683
688
  Cadenza.broker.emit(signal, data);
684
689
  }
685
690
  };
@@ -785,7 +790,7 @@ var GraphNode = class _GraphNode extends SignalEmitter {
785
790
  layer.add(this);
786
791
  const context = this.context.getFullContext();
787
792
  const scheduledAt = Date.now();
788
- this.emitWithMetadata("meta.node.scheduled", {
793
+ this.emitMetricsWithMetadata("meta.node.scheduled", {
789
794
  data: {
790
795
  uuid: this.id,
791
796
  routineExecutionId: this.routineExecId,
@@ -800,7 +805,7 @@ var GraphNode = class _GraphNode extends SignalEmitter {
800
805
  }
801
806
  });
802
807
  this.previousNodes.forEach((node) => {
803
- this.emitWithMetadata("meta.node.mapped", {
808
+ this.emitMetricsWithMetadata("meta.node.mapped", {
804
809
  data: {
805
810
  taskExecutionId: this.id,
806
811
  previousTaskExecutionId: node.id,
@@ -812,7 +817,7 @@ var GraphNode = class _GraphNode extends SignalEmitter {
812
817
  }
813
818
  });
814
819
  if (node.failed || node.errored) {
815
- this.emitWithMetadata("meta.node.failed_mapped", {
820
+ this.emitMetricsWithMetadata("meta.node.failed_mapped", {
816
821
  data: {
817
822
  executionCount: "increment"
818
823
  },
@@ -824,7 +829,7 @@ var GraphNode = class _GraphNode extends SignalEmitter {
824
829
  }
825
830
  });
826
831
  if (((_a = context.__signalEmission) == null ? void 0 : _a.consumed) === false && (!this.isMeta() || this.debug)) {
827
- this.emitWithMetadata("meta.node.consumed_signal", {
832
+ this.emitMetricsWithMetadata("meta.node.consumed_signal", {
828
833
  data: {
829
834
  signalName: context.__signalEmission.signalName,
830
835
  taskId: this.task.id,
@@ -842,7 +847,7 @@ var GraphNode = class _GraphNode extends SignalEmitter {
842
847
  this.executionStart = Date.now();
843
848
  }
844
849
  if (this.previousNodes.length === 0) {
845
- this.emitWithMetadata("meta.node.started_routine_execution", {
850
+ this.emitMetricsWithMetadata("meta.node.started_routine_execution", {
846
851
  data: {
847
852
  isRunning: true,
848
853
  started: formatTimestamp(this.executionStart)
@@ -853,7 +858,7 @@ var GraphNode = class _GraphNode extends SignalEmitter {
853
858
  if (this.debug) {
854
859
  this.log();
855
860
  }
856
- this.emitWithMetadata("meta.node.started", {
861
+ this.emitMetricsWithMetadata("meta.node.started", {
857
862
  data: {
858
863
  isRunning: true,
859
864
  started: formatTimestamp(this.executionStart)
@@ -871,7 +876,7 @@ var GraphNode = class _GraphNode extends SignalEmitter {
871
876
  this.executionTime = end - this.executionStart;
872
877
  const context = this.context.getFullContext();
873
878
  if (this.errored || this.failed) {
874
- this.emitWithMetadata("meta.node.errored", {
879
+ this.emitMetricsWithMetadata("meta.node.errored", {
875
880
  data: {
876
881
  isRunning: false,
877
882
  errored: this.errored,
@@ -881,7 +886,7 @@ var GraphNode = class _GraphNode extends SignalEmitter {
881
886
  filter: { uuid: this.id }
882
887
  });
883
888
  }
884
- this.emitWithMetadata("meta.node.ended", {
889
+ this.emitMetricsWithMetadata("meta.node.ended", {
885
890
  data: {
886
891
  isRunning: false,
887
892
  isComplete: true,
@@ -895,7 +900,7 @@ var GraphNode = class _GraphNode extends SignalEmitter {
895
900
  filter: { uuid: this.id }
896
901
  });
897
902
  if (this.graphDone()) {
898
- this.emitWithMetadata(
903
+ this.emitMetricsWithMetadata(
899
904
  `meta.node.ended_routine_execution:${this.routineExecId}`,
900
905
  {
901
906
  data: {
@@ -968,7 +973,6 @@ var GraphNode = class _GraphNode extends SignalEmitter {
968
973
  }
969
974
  }
970
975
  emitWithMetadata(signal, ctx) {
971
- if (this.silent) return;
972
976
  const data = { ...ctx };
973
977
  if (!this.task.isHidden) {
974
978
  data.__signalEmission = {
@@ -981,10 +985,24 @@ var GraphNode = class _GraphNode extends SignalEmitter {
981
985
  }
982
986
  this.emit(signal, data);
983
987
  }
988
+ emitMetricsWithMetadata(signal, ctx) {
989
+ const data = { ...ctx };
990
+ if (!this.task.isHidden) {
991
+ data.__signalEmission = {
992
+ taskId: this.task.id,
993
+ taskExecutionId: this.id,
994
+ isMetric: true
995
+ };
996
+ data.__metadata = {
997
+ __routineExecId: this.routineExecId
998
+ };
999
+ }
1000
+ this.emitMetrics(signal, data);
1001
+ }
984
1002
  onProgress(progress) {
985
1003
  var _a, _b;
986
1004
  progress = Math.min(Math.max(0, progress), 1);
987
- this.emitWithMetadata("meta.node.progress", {
1005
+ this.emitMetricsWithMetadata("meta.node.progress", {
988
1006
  data: {
989
1007
  progress
990
1008
  },
@@ -992,7 +1010,7 @@ var GraphNode = class _GraphNode extends SignalEmitter {
992
1010
  uuid: this.id
993
1011
  }
994
1012
  });
995
- this.emitWithMetadata(
1013
+ this.emitMetricsWithMetadata(
996
1014
  `meta.node.routine_execution_progress:${this.routineExecId}`,
997
1015
  {
998
1016
  data: {
@@ -1273,8 +1291,7 @@ var GraphNode = class _GraphNode extends SignalEmitter {
1273
1291
  console.log(
1274
1292
  "Node execution:",
1275
1293
  this.task.name,
1276
- JSON.stringify(this.context.getFullContext()),
1277
- this.routineExecId
1294
+ JSON.stringify(this.context.getFullContext())
1278
1295
  );
1279
1296
  }
1280
1297
  };
@@ -2255,7 +2272,7 @@ var GraphRunner = class extends SignalEmitter {
2255
2272
  const routineExecId = (_a = context.__routineExecId) != null ? _a : (0, import_uuid6.v4)();
2256
2273
  context.__routineExecId = routineExecId;
2257
2274
  if (!isSubMeta) {
2258
- this.emit("meta.runner.added_tasks", {
2275
+ this.emitMetrics("meta.runner.added_tasks", {
2259
2276
  data: {
2260
2277
  uuid: routineExecId,
2261
2278
  name: routineName,
@@ -3046,6 +3063,11 @@ var Cadenza = class {
3046
3063
  this.broker.setDebug(true);
3047
3064
  this.runner.setDebug(true);
3048
3065
  }
3066
+ if (mode === "verbose") {
3067
+ this.broker.setDebug(true);
3068
+ this.broker.setVerbose(true);
3069
+ this.runner.setDebug(true);
3070
+ }
3049
3071
  }
3050
3072
  /**
3051
3073
  * Validates a name for uniqueness and non-emptiness.