@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.
Files changed (179) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +97 -0
  3. package/dist/builder.d.ts +39 -0
  4. package/dist/builder.d.ts.map +1 -0
  5. package/dist/builder.js +224 -0
  6. package/dist/builder.js.map +1 -0
  7. package/dist/checkpoint.d.ts +33 -0
  8. package/dist/checkpoint.d.ts.map +1 -0
  9. package/dist/checkpoint.js +108 -0
  10. package/dist/checkpoint.js.map +1 -0
  11. package/dist/executor.d.ts +24 -0
  12. package/dist/executor.d.ts.map +1 -0
  13. package/dist/executor.js +207 -0
  14. package/dist/executor.js.map +1 -0
  15. package/dist/human/approval-store.d.ts +95 -0
  16. package/dist/human/approval-store.d.ts.map +1 -0
  17. package/dist/human/approval-store.js +377 -0
  18. package/dist/human/approval-store.js.map +1 -0
  19. package/dist/human/human-node.d.ts +104 -0
  20. package/dist/human/human-node.d.ts.map +1 -0
  21. package/dist/human/human-node.js +342 -0
  22. package/dist/human/human-node.js.map +1 -0
  23. package/dist/human/index.d.ts +17 -0
  24. package/dist/human/index.d.ts.map +1 -0
  25. package/dist/human/index.js +17 -0
  26. package/dist/human/index.js.map +1 -0
  27. package/dist/human/notifiers.d.ts +85 -0
  28. package/dist/human/notifiers.d.ts.map +1 -0
  29. package/dist/human/notifiers.js +289 -0
  30. package/dist/human/notifiers.js.map +1 -0
  31. package/dist/index.d.ts +32 -0
  32. package/dist/index.d.ts.map +1 -0
  33. package/dist/index.js +19 -0
  34. package/dist/index.js.map +1 -0
  35. package/dist/manager/index.d.ts +19 -0
  36. package/dist/manager/index.d.ts.map +1 -0
  37. package/dist/manager/index.js +17 -0
  38. package/dist/manager/index.js.map +1 -0
  39. package/dist/manager/run-store.d.ts +78 -0
  40. package/dist/manager/run-store.d.ts.map +1 -0
  41. package/dist/manager/run-store.js +390 -0
  42. package/dist/manager/run-store.js.map +1 -0
  43. package/dist/manager/scheduler.d.ts +159 -0
  44. package/dist/manager/scheduler.d.ts.map +1 -0
  45. package/dist/manager/scheduler.js +355 -0
  46. package/dist/manager/scheduler.js.map +1 -0
  47. package/dist/manager/workflow-manager.d.ts +114 -0
  48. package/dist/manager/workflow-manager.d.ts.map +1 -0
  49. package/dist/manager/workflow-manager.js +460 -0
  50. package/dist/manager/workflow-manager.js.map +1 -0
  51. package/dist/nodes/agent.d.ts +24 -0
  52. package/dist/nodes/agent.d.ts.map +1 -0
  53. package/dist/nodes/agent.js +37 -0
  54. package/dist/nodes/agent.js.map +1 -0
  55. package/dist/nodes/base.d.ts +12 -0
  56. package/dist/nodes/base.d.ts.map +1 -0
  57. package/dist/nodes/base.js +5 -0
  58. package/dist/nodes/base.js.map +1 -0
  59. package/dist/nodes/function.d.ts +27 -0
  60. package/dist/nodes/function.d.ts.map +1 -0
  61. package/dist/nodes/function.js +29 -0
  62. package/dist/nodes/function.js.map +1 -0
  63. package/dist/nodes/index.d.ts +8 -0
  64. package/dist/nodes/index.d.ts.map +1 -0
  65. package/dist/nodes/index.js +8 -0
  66. package/dist/nodes/index.js.map +1 -0
  67. package/dist/nodes/tool.d.ts +19 -0
  68. package/dist/nodes/tool.d.ts.map +1 -0
  69. package/dist/nodes/tool.js +26 -0
  70. package/dist/nodes/tool.js.map +1 -0
  71. package/dist/observability/exporters.d.ts +93 -0
  72. package/dist/observability/exporters.d.ts.map +1 -0
  73. package/dist/observability/exporters.js +330 -0
  74. package/dist/observability/exporters.js.map +1 -0
  75. package/dist/observability/index.d.ts +17 -0
  76. package/dist/observability/index.d.ts.map +1 -0
  77. package/dist/observability/index.js +17 -0
  78. package/dist/observability/index.js.map +1 -0
  79. package/dist/observability/metrics.d.ts +114 -0
  80. package/dist/observability/metrics.d.ts.map +1 -0
  81. package/dist/observability/metrics.js +435 -0
  82. package/dist/observability/metrics.js.map +1 -0
  83. package/dist/observability/span-attributes.d.ts +95 -0
  84. package/dist/observability/span-attributes.d.ts.map +1 -0
  85. package/dist/observability/span-attributes.js +142 -0
  86. package/dist/observability/span-attributes.js.map +1 -0
  87. package/dist/observability/tracer.d.ts +110 -0
  88. package/dist/observability/tracer.d.ts.map +1 -0
  89. package/dist/observability/tracer.js +409 -0
  90. package/dist/observability/tracer.js.map +1 -0
  91. package/dist/patterns/index.d.ts +15 -0
  92. package/dist/patterns/index.d.ts.map +1 -0
  93. package/dist/patterns/index.js +15 -0
  94. package/dist/patterns/index.js.map +1 -0
  95. package/dist/patterns/map-reduce.d.ts +223 -0
  96. package/dist/patterns/map-reduce.d.ts.map +1 -0
  97. package/dist/patterns/map-reduce.js +378 -0
  98. package/dist/patterns/map-reduce.js.map +1 -0
  99. package/dist/saga/circuit-breaker.d.ts +153 -0
  100. package/dist/saga/circuit-breaker.d.ts.map +1 -0
  101. package/dist/saga/circuit-breaker.js +306 -0
  102. package/dist/saga/circuit-breaker.js.map +1 -0
  103. package/dist/saga/compensation.d.ts +134 -0
  104. package/dist/saga/compensation.d.ts.map +1 -0
  105. package/dist/saga/compensation.js +240 -0
  106. package/dist/saga/compensation.js.map +1 -0
  107. package/dist/saga/dead-letter.d.ts +113 -0
  108. package/dist/saga/dead-letter.d.ts.map +1 -0
  109. package/dist/saga/dead-letter.js +307 -0
  110. package/dist/saga/dead-letter.js.map +1 -0
  111. package/dist/saga/idempotency.d.ts +95 -0
  112. package/dist/saga/idempotency.d.ts.map +1 -0
  113. package/dist/saga/idempotency.js +266 -0
  114. package/dist/saga/idempotency.js.map +1 -0
  115. package/dist/saga/index.d.ts +16 -0
  116. package/dist/saga/index.d.ts.map +1 -0
  117. package/dist/saga/index.js +16 -0
  118. package/dist/saga/index.js.map +1 -0
  119. package/dist/saga/retry.d.ts +59 -0
  120. package/dist/saga/retry.d.ts.map +1 -0
  121. package/dist/saga/retry.js +222 -0
  122. package/dist/saga/retry.js.map +1 -0
  123. package/dist/scheduler.d.ts +37 -0
  124. package/dist/scheduler.d.ts.map +1 -0
  125. package/dist/scheduler.js +151 -0
  126. package/dist/scheduler.js.map +1 -0
  127. package/dist/subworkflows/index.d.ts +16 -0
  128. package/dist/subworkflows/index.d.ts.map +1 -0
  129. package/dist/subworkflows/index.js +16 -0
  130. package/dist/subworkflows/index.js.map +1 -0
  131. package/dist/subworkflows/parallel-subworkflows.d.ts +139 -0
  132. package/dist/subworkflows/parallel-subworkflows.d.ts.map +1 -0
  133. package/dist/subworkflows/parallel-subworkflows.js +270 -0
  134. package/dist/subworkflows/parallel-subworkflows.js.map +1 -0
  135. package/dist/subworkflows/subworkflow-node.d.ts +136 -0
  136. package/dist/subworkflows/subworkflow-node.d.ts.map +1 -0
  137. package/dist/subworkflows/subworkflow-node.js +164 -0
  138. package/dist/subworkflows/subworkflow-node.js.map +1 -0
  139. package/dist/timers/cron-parser.d.ts +110 -0
  140. package/dist/timers/cron-parser.d.ts.map +1 -0
  141. package/dist/timers/cron-parser.js +412 -0
  142. package/dist/timers/cron-parser.js.map +1 -0
  143. package/dist/timers/index.d.ts +18 -0
  144. package/dist/timers/index.d.ts.map +1 -0
  145. package/dist/timers/index.js +18 -0
  146. package/dist/timers/index.js.map +1 -0
  147. package/dist/timers/timer-manager.d.ts +219 -0
  148. package/dist/timers/timer-manager.d.ts.map +1 -0
  149. package/dist/timers/timer-manager.js +351 -0
  150. package/dist/timers/timer-manager.js.map +1 -0
  151. package/dist/timers/timer-node.d.ts +144 -0
  152. package/dist/timers/timer-node.d.ts.map +1 -0
  153. package/dist/timers/timer-node.js +246 -0
  154. package/dist/timers/timer-node.js.map +1 -0
  155. package/dist/timers/timer-store.d.ts +90 -0
  156. package/dist/timers/timer-store.d.ts.map +1 -0
  157. package/dist/timers/timer-store.js +357 -0
  158. package/dist/timers/timer-store.js.map +1 -0
  159. package/dist/triggers/cron-trigger.d.ts +102 -0
  160. package/dist/triggers/cron-trigger.d.ts.map +1 -0
  161. package/dist/triggers/cron-trigger.js +309 -0
  162. package/dist/triggers/cron-trigger.js.map +1 -0
  163. package/dist/triggers/index.d.ts +14 -0
  164. package/dist/triggers/index.d.ts.map +1 -0
  165. package/dist/triggers/index.js +10 -0
  166. package/dist/triggers/index.js.map +1 -0
  167. package/dist/triggers/rate-limiter.d.ts +130 -0
  168. package/dist/triggers/rate-limiter.d.ts.map +1 -0
  169. package/dist/triggers/rate-limiter.js +294 -0
  170. package/dist/triggers/rate-limiter.js.map +1 -0
  171. package/dist/triggers/trigger-manager.d.ts +166 -0
  172. package/dist/triggers/trigger-manager.d.ts.map +1 -0
  173. package/dist/triggers/trigger-manager.js +436 -0
  174. package/dist/triggers/trigger-manager.js.map +1 -0
  175. package/dist/triggers/webhook-trigger.d.ts +150 -0
  176. package/dist/triggers/webhook-trigger.d.ts.map +1 -0
  177. package/dist/triggers/webhook-trigger.js +452 -0
  178. package/dist/triggers/webhook-trigger.js.map +1 -0
  179. 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