@cogitator-ai/workflows 0.1.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.
- package/LICENSE +21 -0
- package/README.md +97 -0
- package/dist/builder.d.ts +39 -0
- package/dist/builder.d.ts.map +1 -0
- package/dist/builder.js +224 -0
- package/dist/builder.js.map +1 -0
- package/dist/checkpoint.d.ts +33 -0
- package/dist/checkpoint.d.ts.map +1 -0
- package/dist/checkpoint.js +108 -0
- package/dist/checkpoint.js.map +1 -0
- package/dist/executor.d.ts +24 -0
- package/dist/executor.d.ts.map +1 -0
- package/dist/executor.js +207 -0
- package/dist/executor.js.map +1 -0
- package/dist/human/approval-store.d.ts +95 -0
- package/dist/human/approval-store.d.ts.map +1 -0
- package/dist/human/approval-store.js +377 -0
- package/dist/human/approval-store.js.map +1 -0
- package/dist/human/human-node.d.ts +104 -0
- package/dist/human/human-node.d.ts.map +1 -0
- package/dist/human/human-node.js +342 -0
- package/dist/human/human-node.js.map +1 -0
- package/dist/human/index.d.ts +17 -0
- package/dist/human/index.d.ts.map +1 -0
- package/dist/human/index.js +17 -0
- package/dist/human/index.js.map +1 -0
- package/dist/human/notifiers.d.ts +85 -0
- package/dist/human/notifiers.d.ts.map +1 -0
- package/dist/human/notifiers.js +289 -0
- package/dist/human/notifiers.js.map +1 -0
- package/dist/index.d.ts +32 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/manager/index.d.ts +19 -0
- package/dist/manager/index.d.ts.map +1 -0
- package/dist/manager/index.js +17 -0
- package/dist/manager/index.js.map +1 -0
- package/dist/manager/run-store.d.ts +78 -0
- package/dist/manager/run-store.d.ts.map +1 -0
- package/dist/manager/run-store.js +390 -0
- package/dist/manager/run-store.js.map +1 -0
- package/dist/manager/scheduler.d.ts +159 -0
- package/dist/manager/scheduler.d.ts.map +1 -0
- package/dist/manager/scheduler.js +355 -0
- package/dist/manager/scheduler.js.map +1 -0
- package/dist/manager/workflow-manager.d.ts +114 -0
- package/dist/manager/workflow-manager.d.ts.map +1 -0
- package/dist/manager/workflow-manager.js +460 -0
- package/dist/manager/workflow-manager.js.map +1 -0
- package/dist/nodes/agent.d.ts +24 -0
- package/dist/nodes/agent.d.ts.map +1 -0
- package/dist/nodes/agent.js +37 -0
- package/dist/nodes/agent.js.map +1 -0
- package/dist/nodes/base.d.ts +12 -0
- package/dist/nodes/base.d.ts.map +1 -0
- package/dist/nodes/base.js +5 -0
- package/dist/nodes/base.js.map +1 -0
- package/dist/nodes/function.d.ts +27 -0
- package/dist/nodes/function.d.ts.map +1 -0
- package/dist/nodes/function.js +29 -0
- package/dist/nodes/function.js.map +1 -0
- package/dist/nodes/index.d.ts +8 -0
- package/dist/nodes/index.d.ts.map +1 -0
- package/dist/nodes/index.js +8 -0
- package/dist/nodes/index.js.map +1 -0
- package/dist/nodes/tool.d.ts +19 -0
- package/dist/nodes/tool.d.ts.map +1 -0
- package/dist/nodes/tool.js +26 -0
- package/dist/nodes/tool.js.map +1 -0
- package/dist/observability/exporters.d.ts +93 -0
- package/dist/observability/exporters.d.ts.map +1 -0
- package/dist/observability/exporters.js +330 -0
- package/dist/observability/exporters.js.map +1 -0
- package/dist/observability/index.d.ts +17 -0
- package/dist/observability/index.d.ts.map +1 -0
- package/dist/observability/index.js +17 -0
- package/dist/observability/index.js.map +1 -0
- package/dist/observability/metrics.d.ts +114 -0
- package/dist/observability/metrics.d.ts.map +1 -0
- package/dist/observability/metrics.js +435 -0
- package/dist/observability/metrics.js.map +1 -0
- package/dist/observability/span-attributes.d.ts +95 -0
- package/dist/observability/span-attributes.d.ts.map +1 -0
- package/dist/observability/span-attributes.js +142 -0
- package/dist/observability/span-attributes.js.map +1 -0
- package/dist/observability/tracer.d.ts +110 -0
- package/dist/observability/tracer.d.ts.map +1 -0
- package/dist/observability/tracer.js +409 -0
- package/dist/observability/tracer.js.map +1 -0
- package/dist/patterns/index.d.ts +15 -0
- package/dist/patterns/index.d.ts.map +1 -0
- package/dist/patterns/index.js +15 -0
- package/dist/patterns/index.js.map +1 -0
- package/dist/patterns/map-reduce.d.ts +223 -0
- package/dist/patterns/map-reduce.d.ts.map +1 -0
- package/dist/patterns/map-reduce.js +378 -0
- package/dist/patterns/map-reduce.js.map +1 -0
- package/dist/saga/circuit-breaker.d.ts +153 -0
- package/dist/saga/circuit-breaker.d.ts.map +1 -0
- package/dist/saga/circuit-breaker.js +306 -0
- package/dist/saga/circuit-breaker.js.map +1 -0
- package/dist/saga/compensation.d.ts +134 -0
- package/dist/saga/compensation.d.ts.map +1 -0
- package/dist/saga/compensation.js +240 -0
- package/dist/saga/compensation.js.map +1 -0
- package/dist/saga/dead-letter.d.ts +113 -0
- package/dist/saga/dead-letter.d.ts.map +1 -0
- package/dist/saga/dead-letter.js +307 -0
- package/dist/saga/dead-letter.js.map +1 -0
- package/dist/saga/idempotency.d.ts +95 -0
- package/dist/saga/idempotency.d.ts.map +1 -0
- package/dist/saga/idempotency.js +266 -0
- package/dist/saga/idempotency.js.map +1 -0
- package/dist/saga/index.d.ts +16 -0
- package/dist/saga/index.d.ts.map +1 -0
- package/dist/saga/index.js +16 -0
- package/dist/saga/index.js.map +1 -0
- package/dist/saga/retry.d.ts +59 -0
- package/dist/saga/retry.d.ts.map +1 -0
- package/dist/saga/retry.js +222 -0
- package/dist/saga/retry.js.map +1 -0
- package/dist/scheduler.d.ts +37 -0
- package/dist/scheduler.d.ts.map +1 -0
- package/dist/scheduler.js +151 -0
- package/dist/scheduler.js.map +1 -0
- package/dist/subworkflows/index.d.ts +16 -0
- package/dist/subworkflows/index.d.ts.map +1 -0
- package/dist/subworkflows/index.js +16 -0
- package/dist/subworkflows/index.js.map +1 -0
- package/dist/subworkflows/parallel-subworkflows.d.ts +139 -0
- package/dist/subworkflows/parallel-subworkflows.d.ts.map +1 -0
- package/dist/subworkflows/parallel-subworkflows.js +270 -0
- package/dist/subworkflows/parallel-subworkflows.js.map +1 -0
- package/dist/subworkflows/subworkflow-node.d.ts +136 -0
- package/dist/subworkflows/subworkflow-node.d.ts.map +1 -0
- package/dist/subworkflows/subworkflow-node.js +164 -0
- package/dist/subworkflows/subworkflow-node.js.map +1 -0
- package/dist/timers/cron-parser.d.ts +110 -0
- package/dist/timers/cron-parser.d.ts.map +1 -0
- package/dist/timers/cron-parser.js +412 -0
- package/dist/timers/cron-parser.js.map +1 -0
- package/dist/timers/index.d.ts +18 -0
- package/dist/timers/index.d.ts.map +1 -0
- package/dist/timers/index.js +18 -0
- package/dist/timers/index.js.map +1 -0
- package/dist/timers/timer-manager.d.ts +219 -0
- package/dist/timers/timer-manager.d.ts.map +1 -0
- package/dist/timers/timer-manager.js +351 -0
- package/dist/timers/timer-manager.js.map +1 -0
- package/dist/timers/timer-node.d.ts +144 -0
- package/dist/timers/timer-node.d.ts.map +1 -0
- package/dist/timers/timer-node.js +246 -0
- package/dist/timers/timer-node.js.map +1 -0
- package/dist/timers/timer-store.d.ts +90 -0
- package/dist/timers/timer-store.d.ts.map +1 -0
- package/dist/timers/timer-store.js +357 -0
- package/dist/timers/timer-store.js.map +1 -0
- package/dist/triggers/cron-trigger.d.ts +102 -0
- package/dist/triggers/cron-trigger.d.ts.map +1 -0
- package/dist/triggers/cron-trigger.js +309 -0
- package/dist/triggers/cron-trigger.js.map +1 -0
- package/dist/triggers/index.d.ts +14 -0
- package/dist/triggers/index.d.ts.map +1 -0
- package/dist/triggers/index.js +10 -0
- package/dist/triggers/index.js.map +1 -0
- package/dist/triggers/rate-limiter.d.ts +130 -0
- package/dist/triggers/rate-limiter.d.ts.map +1 -0
- package/dist/triggers/rate-limiter.js +294 -0
- package/dist/triggers/rate-limiter.js.map +1 -0
- package/dist/triggers/trigger-manager.d.ts +166 -0
- package/dist/triggers/trigger-manager.d.ts.map +1 -0
- package/dist/triggers/trigger-manager.js +436 -0
- package/dist/triggers/trigger-manager.js.map +1 -0
- package/dist/triggers/webhook-trigger.d.ts +150 -0
- package/dist/triggers/webhook-trigger.d.ts.map +1 -0
- package/dist/triggers/webhook-trigger.js +452 -0
- package/dist/triggers/webhook-trigger.js.map +1 -0
- package/package.json +44 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/nodes/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ToolNode - Run a single tool as a workflow node
|
|
3
|
+
*/
|
|
4
|
+
import type { WorkflowNode, WorkflowState, Tool } from '@cogitator-ai/types';
|
|
5
|
+
export interface ToolNodeOptions<S = WorkflowState, TArgs = unknown> {
|
|
6
|
+
/**
|
|
7
|
+
* Map current state to tool arguments
|
|
8
|
+
*/
|
|
9
|
+
argsMapper: (state: S, input?: unknown) => TArgs;
|
|
10
|
+
/**
|
|
11
|
+
* Map tool result to state updates
|
|
12
|
+
*/
|
|
13
|
+
stateMapper?: (result: unknown) => Partial<S>;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Create a workflow node that runs a single tool
|
|
17
|
+
*/
|
|
18
|
+
export declare function toolNode<S extends WorkflowState = WorkflowState, TArgs = unknown>(tool: Tool<TArgs, unknown>, options: ToolNodeOptions<S, TArgs>): WorkflowNode<S>;
|
|
19
|
+
//# sourceMappingURL=tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../src/nodes/tool.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EAEb,IAAI,EAEL,MAAM,qBAAqB,CAAC;AAE7B,MAAM,WAAW,eAAe,CAAC,CAAC,GAAG,aAAa,EAAE,KAAK,GAAG,OAAO;IACjE;;OAEG;IACH,UAAU,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,KAAK,CAAC;IAEjD;;OAEG;IACH,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;CAC/C;AAED;;GAEG;AACH,wBAAgB,QAAQ,CACtB,CAAC,SAAS,aAAa,GAAG,aAAa,EACvC,KAAK,GAAG,OAAO,EACf,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAsBjF"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ToolNode - Run a single tool as a workflow node
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Create a workflow node that runs a single tool
|
|
6
|
+
*/
|
|
7
|
+
export function toolNode(tool, options) {
|
|
8
|
+
return {
|
|
9
|
+
name: tool.name,
|
|
10
|
+
fn: async (ctx) => {
|
|
11
|
+
const args = options.argsMapper(ctx.state, ctx.input);
|
|
12
|
+
const toolContext = {
|
|
13
|
+
agentId: 'workflow',
|
|
14
|
+
runId: ctx.workflowId,
|
|
15
|
+
signal: new AbortController().signal,
|
|
16
|
+
};
|
|
17
|
+
const result = await tool.execute(args, toolContext);
|
|
18
|
+
const stateUpdate = options.stateMapper?.(result);
|
|
19
|
+
return {
|
|
20
|
+
state: stateUpdate,
|
|
21
|
+
output: result,
|
|
22
|
+
};
|
|
23
|
+
},
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool.js","sourceRoot":"","sources":["../../src/nodes/tool.ts"],"names":[],"mappings":"AAAA;;GAEG;AAsBH;;GAEG;AACH,MAAM,UAAU,QAAQ,CAGtB,IAA0B,EAAE,OAAkC;IAC9D,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,EAAE,EAAE,KAAK,EAAE,GAAG,EAA0B,EAAE;YACxC,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;YAEtD,MAAM,WAAW,GAAgB;gBAC/B,OAAO,EAAE,UAAU;gBACnB,KAAK,EAAE,GAAG,CAAC,UAAU;gBACrB,MAAM,EAAE,IAAI,eAAe,EAAE,CAAC,MAAM;aACrC,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YAErD,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC;YAElD,OAAO;gBACL,KAAK,EAAE,WAAW;gBAClB,MAAM,EAAE,MAAM;aACf,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Span exporters for workflow tracing
|
|
3
|
+
*
|
|
4
|
+
* Supports:
|
|
5
|
+
* - Console (for development/debugging)
|
|
6
|
+
* - OTLP HTTP (OpenTelemetry Protocol)
|
|
7
|
+
* - Jaeger (via OTLP or native)
|
|
8
|
+
* - Zipkin
|
|
9
|
+
*/
|
|
10
|
+
import type { WorkflowSpan, SpanExporter } from '@cogitator-ai/types';
|
|
11
|
+
export interface SpanExporterInstance {
|
|
12
|
+
export(spans: WorkflowSpan[]): Promise<void>;
|
|
13
|
+
shutdown(): Promise<void>;
|
|
14
|
+
}
|
|
15
|
+
export interface ExporterConfig {
|
|
16
|
+
type: SpanExporter;
|
|
17
|
+
endpoint?: string;
|
|
18
|
+
headers?: Record<string, string>;
|
|
19
|
+
batchSize?: number;
|
|
20
|
+
flushInterval?: number;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Console exporter for development/debugging
|
|
24
|
+
*/
|
|
25
|
+
export declare class ConsoleSpanExporter implements SpanExporterInstance {
|
|
26
|
+
private verbose;
|
|
27
|
+
constructor(verbose?: boolean);
|
|
28
|
+
export(spans: WorkflowSpan[]): Promise<void>;
|
|
29
|
+
shutdown(): Promise<void>;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* OTLP HTTP exporter for OpenTelemetry-compatible backends
|
|
33
|
+
* (Jaeger, Tempo, Honeycomb, Datadog, etc.)
|
|
34
|
+
*/
|
|
35
|
+
export declare class OTLPSpanExporter implements SpanExporterInstance {
|
|
36
|
+
private endpoint;
|
|
37
|
+
private headers;
|
|
38
|
+
private batchSize;
|
|
39
|
+
private flushInterval;
|
|
40
|
+
private pendingSpans;
|
|
41
|
+
private flushTimer;
|
|
42
|
+
constructor(config: {
|
|
43
|
+
endpoint?: string;
|
|
44
|
+
headers?: Record<string, string>;
|
|
45
|
+
batchSize?: number;
|
|
46
|
+
flushInterval?: number;
|
|
47
|
+
});
|
|
48
|
+
export(spans: WorkflowSpan[]): Promise<void>;
|
|
49
|
+
private flush;
|
|
50
|
+
private toOTLPFormat;
|
|
51
|
+
private spanToOTLP;
|
|
52
|
+
private kindToOTLP;
|
|
53
|
+
private valueToOTLP;
|
|
54
|
+
shutdown(): Promise<void>;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Zipkin exporter
|
|
58
|
+
*/
|
|
59
|
+
export declare class ZipkinSpanExporter implements SpanExporterInstance {
|
|
60
|
+
private endpoint;
|
|
61
|
+
private headers;
|
|
62
|
+
private serviceName;
|
|
63
|
+
constructor(config: {
|
|
64
|
+
endpoint?: string;
|
|
65
|
+
headers?: Record<string, string>;
|
|
66
|
+
serviceName?: string;
|
|
67
|
+
});
|
|
68
|
+
export(spans: WorkflowSpan[]): Promise<void>;
|
|
69
|
+
private toZipkinFormat;
|
|
70
|
+
private kindToZipkin;
|
|
71
|
+
shutdown(): Promise<void>;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Composite exporter that sends to multiple backends
|
|
75
|
+
*/
|
|
76
|
+
export declare class CompositeSpanExporter implements SpanExporterInstance {
|
|
77
|
+
private exporters;
|
|
78
|
+
constructor(exporters: SpanExporterInstance[]);
|
|
79
|
+
export(spans: WorkflowSpan[]): Promise<void>;
|
|
80
|
+
shutdown(): Promise<void>;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* No-op exporter for when tracing is disabled
|
|
84
|
+
*/
|
|
85
|
+
export declare class NoopSpanExporter implements SpanExporterInstance {
|
|
86
|
+
export(): Promise<void>;
|
|
87
|
+
shutdown(): Promise<void>;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Factory function to create an exporter from config
|
|
91
|
+
*/
|
|
92
|
+
export declare function createSpanExporter(config: ExporterConfig): SpanExporterInstance;
|
|
93
|
+
//# sourceMappingURL=exporters.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exporters.d.ts","sourceRoot":"","sources":["../../src/observability/exporters.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEtE,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,YAAY,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,qBAAa,mBAAoB,YAAW,oBAAoB;IAC9D,OAAO,CAAC,OAAO,CAAU;gBAEb,OAAO,UAAQ;IAIrB,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA0B5C,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAEhC;AAED;;;GAGG;AACH,qBAAa,gBAAiB,YAAW,oBAAoB;IAC3D,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAyB;IACxC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,UAAU,CAA+C;gBAErD,MAAM,EAAE;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB;IAeK,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;YAQpC,KAAK;IAyBnB,OAAO,CAAC,YAAY;IAqBpB,OAAO,CAAC,UAAU;IA6ClB,OAAO,CAAC,UAAU;IAWlB,OAAO,CAAC,WAAW;IAuBb,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAOhC;AAED;;GAEG;AACH,qBAAa,kBAAmB,YAAW,oBAAoB;IAC7D,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAyB;IACxC,OAAO,CAAC,WAAW,CAAS;gBAEhB,MAAM,EAAE;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB;IAUK,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBlD,OAAO,CAAC,cAAc;IA+CtB,OAAO,CAAC,YAAY;IAgBd,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAEhC;AAED;;GAEG;AACH,qBAAa,qBAAsB,YAAW,oBAAoB;IAChE,OAAO,CAAC,SAAS,CAAyB;gBAE9B,SAAS,EAAE,oBAAoB,EAAE;IAIvC,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAM5C,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAKhC;AAED;;GAEG;AACH,qBAAa,gBAAiB,YAAW,oBAAoB;IACrD,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAGvB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAEhC;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,cAAc,GAAG,oBAAoB,CA8B/E"}
|
|
@@ -0,0 +1,330 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Span exporters for workflow tracing
|
|
3
|
+
*
|
|
4
|
+
* Supports:
|
|
5
|
+
* - Console (for development/debugging)
|
|
6
|
+
* - OTLP HTTP (OpenTelemetry Protocol)
|
|
7
|
+
* - Jaeger (via OTLP or native)
|
|
8
|
+
* - Zipkin
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Console exporter for development/debugging
|
|
12
|
+
*/
|
|
13
|
+
export class ConsoleSpanExporter {
|
|
14
|
+
verbose;
|
|
15
|
+
constructor(verbose = false) {
|
|
16
|
+
this.verbose = verbose;
|
|
17
|
+
}
|
|
18
|
+
async export(spans) {
|
|
19
|
+
for (const span of spans) {
|
|
20
|
+
const duration = span.endTime
|
|
21
|
+
? `${(span.endTime - span.startTime).toString()}ms`
|
|
22
|
+
: 'ongoing';
|
|
23
|
+
const statusIcon = span.status === 'ok' ? '✓' : span.status === 'error' ? '✗' : '○';
|
|
24
|
+
const indent = span.parentSpanId ? ' └─' : '';
|
|
25
|
+
console.log(`${indent}[${span.traceId.slice(0, 8)}] ${statusIcon} ${span.name} (${duration})`);
|
|
26
|
+
if (this.verbose) {
|
|
27
|
+
console.log(' Attributes:', JSON.stringify(span.attributes, null, 2));
|
|
28
|
+
if (span.events.length > 0) {
|
|
29
|
+
console.log(' Events:', span.events.map((e) => e.name).join(', '));
|
|
30
|
+
}
|
|
31
|
+
if (span.statusMessage) {
|
|
32
|
+
console.log(' Message:', span.statusMessage);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
async shutdown() {
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* OTLP HTTP exporter for OpenTelemetry-compatible backends
|
|
42
|
+
* (Jaeger, Tempo, Honeycomb, Datadog, etc.)
|
|
43
|
+
*/
|
|
44
|
+
export class OTLPSpanExporter {
|
|
45
|
+
endpoint;
|
|
46
|
+
headers;
|
|
47
|
+
batchSize;
|
|
48
|
+
flushInterval;
|
|
49
|
+
pendingSpans = [];
|
|
50
|
+
flushTimer = null;
|
|
51
|
+
constructor(config) {
|
|
52
|
+
this.endpoint =
|
|
53
|
+
config.endpoint ?? 'http://localhost:4318/v1/traces';
|
|
54
|
+
this.headers = {
|
|
55
|
+
'Content-Type': 'application/json',
|
|
56
|
+
...config.headers,
|
|
57
|
+
};
|
|
58
|
+
this.batchSize = config.batchSize ?? 512;
|
|
59
|
+
this.flushInterval = config.flushInterval ?? 5000;
|
|
60
|
+
this.flushTimer = setInterval(() => {
|
|
61
|
+
void this.flush();
|
|
62
|
+
}, this.flushInterval);
|
|
63
|
+
}
|
|
64
|
+
async export(spans) {
|
|
65
|
+
this.pendingSpans.push(...spans);
|
|
66
|
+
if (this.pendingSpans.length >= this.batchSize) {
|
|
67
|
+
await this.flush();
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
async flush() {
|
|
71
|
+
if (this.pendingSpans.length === 0)
|
|
72
|
+
return;
|
|
73
|
+
const spansToExport = this.pendingSpans.splice(0, this.batchSize);
|
|
74
|
+
const payload = this.toOTLPFormat(spansToExport);
|
|
75
|
+
try {
|
|
76
|
+
const response = await fetch(this.endpoint, {
|
|
77
|
+
method: 'POST',
|
|
78
|
+
headers: this.headers,
|
|
79
|
+
body: JSON.stringify(payload),
|
|
80
|
+
});
|
|
81
|
+
if (!response.ok) {
|
|
82
|
+
console.error(`OTLP export failed: ${response.status.toString()} ${response.statusText}`);
|
|
83
|
+
this.pendingSpans.unshift(...spansToExport);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
catch (error) {
|
|
87
|
+
console.error('OTLP export error:', error);
|
|
88
|
+
this.pendingSpans.unshift(...spansToExport);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
toOTLPFormat(spans) {
|
|
92
|
+
const resourceSpans = [
|
|
93
|
+
{
|
|
94
|
+
resource: {
|
|
95
|
+
attributes: [],
|
|
96
|
+
},
|
|
97
|
+
scopeSpans: [
|
|
98
|
+
{
|
|
99
|
+
scope: {
|
|
100
|
+
name: '@cogitator-ai/workflows',
|
|
101
|
+
version: '1.0.0',
|
|
102
|
+
},
|
|
103
|
+
spans: spans.map((span) => this.spanToOTLP(span)),
|
|
104
|
+
},
|
|
105
|
+
],
|
|
106
|
+
},
|
|
107
|
+
];
|
|
108
|
+
return { resourceSpans };
|
|
109
|
+
}
|
|
110
|
+
spanToOTLP(span) {
|
|
111
|
+
const statusCode = span.status === 'ok' ? 1 : span.status === 'error' ? 2 : 0;
|
|
112
|
+
return {
|
|
113
|
+
traceId: span.traceId,
|
|
114
|
+
spanId: span.spanId,
|
|
115
|
+
parentSpanId: span.parentSpanId,
|
|
116
|
+
name: span.name,
|
|
117
|
+
kind: this.kindToOTLP(span.kind),
|
|
118
|
+
startTimeUnixNano: (span.startTime * 1_000_000).toString(),
|
|
119
|
+
endTimeUnixNano: span.endTime
|
|
120
|
+
? (span.endTime * 1_000_000).toString()
|
|
121
|
+
: undefined,
|
|
122
|
+
attributes: Object.entries(span.attributes).map(([key, value]) => ({
|
|
123
|
+
key,
|
|
124
|
+
value: this.valueToOTLP(value),
|
|
125
|
+
})),
|
|
126
|
+
events: span.events.map((event) => ({
|
|
127
|
+
name: event.name,
|
|
128
|
+
timeUnixNano: (event.timestamp * 1_000_000).toString(),
|
|
129
|
+
attributes: event.attributes
|
|
130
|
+
? Object.entries(event.attributes).map(([key, value]) => ({
|
|
131
|
+
key,
|
|
132
|
+
value: this.valueToOTLP(value),
|
|
133
|
+
}))
|
|
134
|
+
: [],
|
|
135
|
+
})),
|
|
136
|
+
links: span.links.map((link) => ({
|
|
137
|
+
traceId: link.traceId,
|
|
138
|
+
spanId: link.spanId,
|
|
139
|
+
attributes: link.attributes
|
|
140
|
+
? Object.entries(link.attributes).map(([key, value]) => ({
|
|
141
|
+
key,
|
|
142
|
+
value: this.valueToOTLP(value),
|
|
143
|
+
}))
|
|
144
|
+
: [],
|
|
145
|
+
})),
|
|
146
|
+
status: {
|
|
147
|
+
code: statusCode,
|
|
148
|
+
message: span.statusMessage,
|
|
149
|
+
},
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
kindToOTLP(kind) {
|
|
153
|
+
const kindMap = {
|
|
154
|
+
internal: 1,
|
|
155
|
+
server: 2,
|
|
156
|
+
client: 3,
|
|
157
|
+
producer: 4,
|
|
158
|
+
consumer: 5,
|
|
159
|
+
};
|
|
160
|
+
return kindMap[kind] ?? 0;
|
|
161
|
+
}
|
|
162
|
+
valueToOTLP(value) {
|
|
163
|
+
if (typeof value === 'string') {
|
|
164
|
+
return { stringValue: value };
|
|
165
|
+
}
|
|
166
|
+
if (typeof value === 'number') {
|
|
167
|
+
if (Number.isInteger(value)) {
|
|
168
|
+
return { intValue: value.toString() };
|
|
169
|
+
}
|
|
170
|
+
return { doubleValue: value };
|
|
171
|
+
}
|
|
172
|
+
if (typeof value === 'boolean') {
|
|
173
|
+
return { boolValue: value };
|
|
174
|
+
}
|
|
175
|
+
if (Array.isArray(value)) {
|
|
176
|
+
return {
|
|
177
|
+
arrayValue: {
|
|
178
|
+
values: value.map((v) => this.valueToOTLP(v)),
|
|
179
|
+
},
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
return { stringValue: JSON.stringify(value) };
|
|
183
|
+
}
|
|
184
|
+
async shutdown() {
|
|
185
|
+
if (this.flushTimer) {
|
|
186
|
+
clearInterval(this.flushTimer);
|
|
187
|
+
this.flushTimer = null;
|
|
188
|
+
}
|
|
189
|
+
await this.flush();
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Zipkin exporter
|
|
194
|
+
*/
|
|
195
|
+
export class ZipkinSpanExporter {
|
|
196
|
+
endpoint;
|
|
197
|
+
headers;
|
|
198
|
+
serviceName;
|
|
199
|
+
constructor(config) {
|
|
200
|
+
this.endpoint =
|
|
201
|
+
config.endpoint ?? 'http://localhost:9411/api/v2/spans';
|
|
202
|
+
this.headers = {
|
|
203
|
+
'Content-Type': 'application/json',
|
|
204
|
+
...config.headers,
|
|
205
|
+
};
|
|
206
|
+
this.serviceName = config.serviceName ?? 'cogitator-workflow';
|
|
207
|
+
}
|
|
208
|
+
async export(spans) {
|
|
209
|
+
const zipkinSpans = spans.map((span) => this.toZipkinFormat(span));
|
|
210
|
+
try {
|
|
211
|
+
const response = await fetch(this.endpoint, {
|
|
212
|
+
method: 'POST',
|
|
213
|
+
headers: this.headers,
|
|
214
|
+
body: JSON.stringify(zipkinSpans),
|
|
215
|
+
});
|
|
216
|
+
if (!response.ok) {
|
|
217
|
+
console.error(`Zipkin export failed: ${response.status.toString()} ${response.statusText}`);
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
catch (error) {
|
|
221
|
+
console.error('Zipkin export error:', error);
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
toZipkinFormat(span) {
|
|
225
|
+
const kind = this.kindToZipkin(span.kind);
|
|
226
|
+
const result = {
|
|
227
|
+
traceId: span.traceId,
|
|
228
|
+
id: span.spanId,
|
|
229
|
+
name: span.name,
|
|
230
|
+
timestamp: span.startTime * 1000,
|
|
231
|
+
duration: span.endTime
|
|
232
|
+
? (span.endTime - span.startTime) * 1000
|
|
233
|
+
: undefined,
|
|
234
|
+
localEndpoint: {
|
|
235
|
+
serviceName: this.serviceName,
|
|
236
|
+
},
|
|
237
|
+
tags: {},
|
|
238
|
+
annotations: [],
|
|
239
|
+
};
|
|
240
|
+
if (span.parentSpanId) {
|
|
241
|
+
result.parentId = span.parentSpanId;
|
|
242
|
+
}
|
|
243
|
+
if (kind) {
|
|
244
|
+
result.kind = kind;
|
|
245
|
+
}
|
|
246
|
+
for (const [key, value] of Object.entries(span.attributes)) {
|
|
247
|
+
result.tags[key] = String(value);
|
|
248
|
+
}
|
|
249
|
+
if (span.status === 'error') {
|
|
250
|
+
result.tags.error = 'true';
|
|
251
|
+
if (span.statusMessage) {
|
|
252
|
+
result.tags['error.message'] = span.statusMessage;
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
for (const event of span.events) {
|
|
256
|
+
result.annotations.push({
|
|
257
|
+
timestamp: event.timestamp * 1000,
|
|
258
|
+
value: event.name,
|
|
259
|
+
});
|
|
260
|
+
}
|
|
261
|
+
return result;
|
|
262
|
+
}
|
|
263
|
+
kindToZipkin(kind) {
|
|
264
|
+
const kindMap = {
|
|
265
|
+
client: 'CLIENT',
|
|
266
|
+
server: 'SERVER',
|
|
267
|
+
producer: 'PRODUCER',
|
|
268
|
+
consumer: 'CONSUMER',
|
|
269
|
+
internal: undefined,
|
|
270
|
+
};
|
|
271
|
+
return kindMap[kind];
|
|
272
|
+
}
|
|
273
|
+
async shutdown() {
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* Composite exporter that sends to multiple backends
|
|
278
|
+
*/
|
|
279
|
+
export class CompositeSpanExporter {
|
|
280
|
+
exporters;
|
|
281
|
+
constructor(exporters) {
|
|
282
|
+
this.exporters = exporters;
|
|
283
|
+
}
|
|
284
|
+
async export(spans) {
|
|
285
|
+
await Promise.allSettled(this.exporters.map((exporter) => exporter.export(spans)));
|
|
286
|
+
}
|
|
287
|
+
async shutdown() {
|
|
288
|
+
await Promise.allSettled(this.exporters.map((exporter) => exporter.shutdown()));
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
/**
|
|
292
|
+
* No-op exporter for when tracing is disabled
|
|
293
|
+
*/
|
|
294
|
+
export class NoopSpanExporter {
|
|
295
|
+
async export() {
|
|
296
|
+
}
|
|
297
|
+
async shutdown() {
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
/**
|
|
301
|
+
* Factory function to create an exporter from config
|
|
302
|
+
*/
|
|
303
|
+
export function createSpanExporter(config) {
|
|
304
|
+
switch (config.type) {
|
|
305
|
+
case 'console':
|
|
306
|
+
return new ConsoleSpanExporter(true);
|
|
307
|
+
case 'otlp':
|
|
308
|
+
return new OTLPSpanExporter({
|
|
309
|
+
endpoint: config.endpoint,
|
|
310
|
+
headers: config.headers,
|
|
311
|
+
batchSize: config.batchSize,
|
|
312
|
+
flushInterval: config.flushInterval,
|
|
313
|
+
});
|
|
314
|
+
case 'jaeger':
|
|
315
|
+
return new OTLPSpanExporter({
|
|
316
|
+
endpoint: config.endpoint ?? 'http://localhost:4318/v1/traces',
|
|
317
|
+
headers: config.headers,
|
|
318
|
+
batchSize: config.batchSize,
|
|
319
|
+
flushInterval: config.flushInterval,
|
|
320
|
+
});
|
|
321
|
+
case 'zipkin':
|
|
322
|
+
return new ZipkinSpanExporter({
|
|
323
|
+
endpoint: config.endpoint,
|
|
324
|
+
headers: config.headers,
|
|
325
|
+
});
|
|
326
|
+
default:
|
|
327
|
+
return new NoopSpanExporter();
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
//# sourceMappingURL=exporters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exporters.js","sourceRoot":"","sources":["../../src/observability/exporters.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @cogitator-ai/workflows - Observability module
|
|
3
|
+
*
|
|
4
|
+
* Provides distributed tracing and metrics collection for workflow execution.
|
|
5
|
+
*
|
|
6
|
+
* Features:
|
|
7
|
+
* - W3C Trace Context propagation
|
|
8
|
+
* - OpenTelemetry-compatible span export (OTLP, Jaeger, Zipkin)
|
|
9
|
+
* - Prometheus-compatible metrics export
|
|
10
|
+
* - Per-workflow and per-node metrics
|
|
11
|
+
* - Token usage and cost tracking
|
|
12
|
+
*/
|
|
13
|
+
export { WorkflowTracer, createTracer, getGlobalTracer, setGlobalTracer, } from './tracer';
|
|
14
|
+
export { WorkflowMetricsCollector, createMetricsCollector, getGlobalMetrics, setGlobalMetrics, } from './metrics';
|
|
15
|
+
export { type SpanExporterInstance, type ExporterConfig, ConsoleSpanExporter, OTLPSpanExporter, ZipkinSpanExporter, CompositeSpanExporter, NoopSpanExporter, createSpanExporter, } from './exporters';
|
|
16
|
+
export { TRACE_PARENT_HEADER, TRACE_STATE_HEADER, BAGGAGE_HEADER, SERVICE_NAME, SERVICE_VERSION, SERVICE_INSTANCE_ID, WORKFLOW_NAME, WORKFLOW_ID, WORKFLOW_RUN_ID, WORKFLOW_VERSION, WORKFLOW_ENTRY_POINT, WORKFLOW_NODE_COUNT, WORKFLOW_STATUS, NODE_NAME, NODE_TYPE, NODE_INDEX, NODE_RETRY_COUNT, NODE_TIMEOUT, NODE_DURATION, NODE_STATUS, LLM_SYSTEM, LLM_REQUEST_MODEL, LLM_RESPONSE_MODEL, LLM_REQUEST_MAX_TOKENS, LLM_REQUEST_TEMPERATURE, LLM_REQUEST_TOP_P, LLM_USAGE_INPUT_TOKENS, LLM_USAGE_OUTPUT_TOKENS, LLM_USAGE_TOTAL_TOKENS, LLM_USAGE_COST, TOOL_NAME, TOOL_PARAMETERS, TOOL_RESULT, TOOL_DURATION, TOOL_SUCCESS, ERROR_TYPE, ERROR_MESSAGE, ERROR_STACK, ERROR_CODE, RETRY_ATTEMPT, RETRY_MAX, RETRY_DELAY, CIRCUIT_BREAKER_STATE, COMPENSATION_TRIGGERED, COMPENSATION_NODE, DEAD_LETTER_QUEUE, APPROVAL_ID, APPROVAL_TYPE, APPROVAL_STATUS, APPROVAL_TIMEOUT, APPROVAL_ASSIGNEE, TIMER_TYPE, TIMER_DELAY, TIMER_CRON, TIMER_SCHEDULED_AT, TIMER_FIRED_AT, SUBWORKFLOW_NAME, SUBWORKFLOW_DEPTH, SUBWORKFLOW_PARENT_ID, TRIGGER_TYPE, TRIGGER_ID, TRIGGER_SOURCE, WEBHOOK_PATH, WEBHOOK_METHOD, CRON_EXPRESSION, CRON_NEXT_RUN, workflowSpanAttributes, nodeSpanAttributes, llmSpanAttributes, toolSpanAttributes, errorSpanAttributes, retrySpanAttributes, } from './span-attributes';
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/observability/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EACL,cAAc,EACd,YAAY,EACZ,eAAe,EACf,eAAe,GAChB,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EAEd,YAAY,EACZ,eAAe,EACf,mBAAmB,EAEnB,aAAa,EACb,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EAEf,SAAS,EACT,SAAS,EACT,UAAU,EACV,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,WAAW,EAEX,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,EACvB,iBAAiB,EACjB,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,EACtB,cAAc,EAEd,SAAS,EACT,eAAe,EACf,WAAW,EACX,aAAa,EACb,YAAY,EAEZ,UAAU,EACV,aAAa,EACb,WAAW,EACX,UAAU,EAEV,aAAa,EACb,SAAS,EACT,WAAW,EACX,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EAEjB,WAAW,EACX,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EAEjB,UAAU,EACV,WAAW,EACX,UAAU,EACV,kBAAkB,EAClB,cAAc,EAEd,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EAErB,YAAY,EACZ,UAAU,EACV,cAAc,EACd,YAAY,EACZ,cAAc,EACd,eAAe,EACf,aAAa,EAEb,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @cogitator-ai/workflows - Observability module
|
|
3
|
+
*
|
|
4
|
+
* Provides distributed tracing and metrics collection for workflow execution.
|
|
5
|
+
*
|
|
6
|
+
* Features:
|
|
7
|
+
* - W3C Trace Context propagation
|
|
8
|
+
* - OpenTelemetry-compatible span export (OTLP, Jaeger, Zipkin)
|
|
9
|
+
* - Prometheus-compatible metrics export
|
|
10
|
+
* - Per-workflow and per-node metrics
|
|
11
|
+
* - Token usage and cost tracking
|
|
12
|
+
*/
|
|
13
|
+
export { WorkflowTracer, createTracer, getGlobalTracer, setGlobalTracer, } from './tracer';
|
|
14
|
+
export { WorkflowMetricsCollector, createMetricsCollector, getGlobalMetrics, setGlobalMetrics, } from './metrics';
|
|
15
|
+
export { ConsoleSpanExporter, OTLPSpanExporter, ZipkinSpanExporter, CompositeSpanExporter, NoopSpanExporter, createSpanExporter, } from './exporters';
|
|
16
|
+
export { TRACE_PARENT_HEADER, TRACE_STATE_HEADER, BAGGAGE_HEADER, SERVICE_NAME, SERVICE_VERSION, SERVICE_INSTANCE_ID, WORKFLOW_NAME, WORKFLOW_ID, WORKFLOW_RUN_ID, WORKFLOW_VERSION, WORKFLOW_ENTRY_POINT, WORKFLOW_NODE_COUNT, WORKFLOW_STATUS, NODE_NAME, NODE_TYPE, NODE_INDEX, NODE_RETRY_COUNT, NODE_TIMEOUT, NODE_DURATION, NODE_STATUS, LLM_SYSTEM, LLM_REQUEST_MODEL, LLM_RESPONSE_MODEL, LLM_REQUEST_MAX_TOKENS, LLM_REQUEST_TEMPERATURE, LLM_REQUEST_TOP_P, LLM_USAGE_INPUT_TOKENS, LLM_USAGE_OUTPUT_TOKENS, LLM_USAGE_TOTAL_TOKENS, LLM_USAGE_COST, TOOL_NAME, TOOL_PARAMETERS, TOOL_RESULT, TOOL_DURATION, TOOL_SUCCESS, ERROR_TYPE, ERROR_MESSAGE, ERROR_STACK, ERROR_CODE, RETRY_ATTEMPT, RETRY_MAX, RETRY_DELAY, CIRCUIT_BREAKER_STATE, COMPENSATION_TRIGGERED, COMPENSATION_NODE, DEAD_LETTER_QUEUE, APPROVAL_ID, APPROVAL_TYPE, APPROVAL_STATUS, APPROVAL_TIMEOUT, APPROVAL_ASSIGNEE, TIMER_TYPE, TIMER_DELAY, TIMER_CRON, TIMER_SCHEDULED_AT, TIMER_FIRED_AT, SUBWORKFLOW_NAME, SUBWORKFLOW_DEPTH, SUBWORKFLOW_PARENT_ID, TRIGGER_TYPE, TRIGGER_ID, TRIGGER_SOURCE, WEBHOOK_PATH, WEBHOOK_METHOD, CRON_EXPRESSION, CRON_NEXT_RUN, workflowSpanAttributes, nodeSpanAttributes, llmSpanAttributes, toolSpanAttributes, errorSpanAttributes, retrySpanAttributes, } from './span-attributes';
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/observability/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EACL,cAAc,EACd,YAAY,EACZ,eAAe,EACf,eAAe,GAChB,MAAM,UAAU,CAAC;AAElB,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,WAAW,CAAC;AAEnB,OAAO,EAGL,mBAAmB,EACnB,gBAAgB,EAChB,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EAEd,YAAY,EACZ,eAAe,EACf,mBAAmB,EAEnB,aAAa,EACb,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACpB,mBAAmB,EACnB,eAAe,EAEf,SAAS,EACT,SAAS,EACT,UAAU,EACV,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,WAAW,EAEX,UAAU,EACV,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,EACvB,iBAAiB,EACjB,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,EACtB,cAAc,EAEd,SAAS,EACT,eAAe,EACf,WAAW,EACX,aAAa,EACb,YAAY,EAEZ,UAAU,EACV,aAAa,EACb,WAAW,EACX,UAAU,EAEV,aAAa,EACb,SAAS,EACT,WAAW,EACX,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EACjB,iBAAiB,EAEjB,WAAW,EACX,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EAEjB,UAAU,EACV,WAAW,EACX,UAAU,EACV,kBAAkB,EAClB,cAAc,EAEd,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EAErB,YAAY,EACZ,UAAU,EACV,cAAc,EACd,YAAY,EACZ,cAAc,EACd,eAAe,EACf,aAAa,EAEb,sBAAsB,EACtB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WorkflowMetricsCollector - Metrics collection for workflow execution
|
|
3
|
+
*
|
|
4
|
+
* Features:
|
|
5
|
+
* - Counters for executions, successes, failures
|
|
6
|
+
* - Histograms for latency distribution
|
|
7
|
+
* - Gauges for active workflows, queue depth
|
|
8
|
+
* - Per-node and per-workflow metrics
|
|
9
|
+
* - Token and cost tracking
|
|
10
|
+
* - Prometheus-compatible output
|
|
11
|
+
*/
|
|
12
|
+
import type { MetricsConfig, WorkflowMetrics } from '@cogitator-ai/types';
|
|
13
|
+
/**
|
|
14
|
+
* WorkflowMetricsCollector - Main metrics collection class
|
|
15
|
+
*/
|
|
16
|
+
export declare class WorkflowMetricsCollector {
|
|
17
|
+
private config;
|
|
18
|
+
private counters;
|
|
19
|
+
private gauges;
|
|
20
|
+
private histograms;
|
|
21
|
+
private latencySamples;
|
|
22
|
+
private nodeMetrics;
|
|
23
|
+
private tokenUsage;
|
|
24
|
+
private costTracking;
|
|
25
|
+
private lastUpdated;
|
|
26
|
+
constructor(config?: Partial<MetricsConfig>);
|
|
27
|
+
/**
|
|
28
|
+
* Get prefixed metric name
|
|
29
|
+
*/
|
|
30
|
+
private metricName;
|
|
31
|
+
/**
|
|
32
|
+
* Record workflow start
|
|
33
|
+
*/
|
|
34
|
+
recordWorkflowStart(workflowName: string, labels?: Record<string, string>): void;
|
|
35
|
+
/**
|
|
36
|
+
* Record workflow completion
|
|
37
|
+
*/
|
|
38
|
+
recordWorkflowComplete(workflowName: string, durationMs: number, status: 'success' | 'failure' | 'cancelled', labels?: Record<string, string>): void;
|
|
39
|
+
/**
|
|
40
|
+
* Record node execution
|
|
41
|
+
*/
|
|
42
|
+
recordNodeExecution(workflowName: string, nodeName: string, nodeType: string, durationMs: number, success: boolean, retries?: number): void;
|
|
43
|
+
/**
|
|
44
|
+
* Record token usage
|
|
45
|
+
*/
|
|
46
|
+
recordTokenUsage(workflowName: string, inputTokens: number, outputTokens: number): void;
|
|
47
|
+
/**
|
|
48
|
+
* Record cost
|
|
49
|
+
*/
|
|
50
|
+
recordCost(workflowName: string, cost: number): void;
|
|
51
|
+
/**
|
|
52
|
+
* Get workflow metrics summary
|
|
53
|
+
*/
|
|
54
|
+
getWorkflowMetrics(workflowName: string): WorkflowMetrics | null;
|
|
55
|
+
/**
|
|
56
|
+
* Increment counter
|
|
57
|
+
*/
|
|
58
|
+
private incrementCounter;
|
|
59
|
+
/**
|
|
60
|
+
* Set gauge value
|
|
61
|
+
*/
|
|
62
|
+
private setGauge;
|
|
63
|
+
/**
|
|
64
|
+
* Increment gauge
|
|
65
|
+
*/
|
|
66
|
+
private incrementGauge;
|
|
67
|
+
/**
|
|
68
|
+
* Decrement gauge
|
|
69
|
+
*/
|
|
70
|
+
private decrementGauge;
|
|
71
|
+
/**
|
|
72
|
+
* Record histogram value
|
|
73
|
+
*/
|
|
74
|
+
private recordHistogram;
|
|
75
|
+
/**
|
|
76
|
+
* Record latency sample for percentile calculations
|
|
77
|
+
*/
|
|
78
|
+
private recordLatencySample;
|
|
79
|
+
/**
|
|
80
|
+
* Get appropriate buckets for a metric
|
|
81
|
+
*/
|
|
82
|
+
private getBucketsForMetric;
|
|
83
|
+
/**
|
|
84
|
+
* Build labeled key for maps
|
|
85
|
+
*/
|
|
86
|
+
private labeledKey;
|
|
87
|
+
/**
|
|
88
|
+
* Export metrics in Prometheus text format
|
|
89
|
+
*/
|
|
90
|
+
toPrometheusFormat(): string;
|
|
91
|
+
/**
|
|
92
|
+
* Format labels for Prometheus
|
|
93
|
+
*/
|
|
94
|
+
private formatPrometheusLabels;
|
|
95
|
+
/**
|
|
96
|
+
* Parse labels from key
|
|
97
|
+
*/
|
|
98
|
+
private parseLabels;
|
|
99
|
+
/**
|
|
100
|
+
* Reset all metrics
|
|
101
|
+
*/
|
|
102
|
+
reset(): void;
|
|
103
|
+
/**
|
|
104
|
+
* Get all workflow names with metrics
|
|
105
|
+
*/
|
|
106
|
+
getWorkflowNames(): string[];
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Create a metrics collector instance
|
|
110
|
+
*/
|
|
111
|
+
export declare function createMetricsCollector(config?: Partial<MetricsConfig>): WorkflowMetricsCollector;
|
|
112
|
+
export declare function getGlobalMetrics(): WorkflowMetricsCollector;
|
|
113
|
+
export declare function setGlobalMetrics(metrics: WorkflowMetricsCollector): void;
|
|
114
|
+
//# sourceMappingURL=metrics.d.ts.map
|