@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 +7 -5
- package/dist/index.d.ts +7 -5
- package/dist/index.js +45 -23
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +45 -23
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|