ai-workflows 2.1.3 → 2.3.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/.turbo/turbo-build.log +1 -1
- package/CHANGELOG.md +8 -1
- package/README.md +2 -0
- package/dist/barrier.d.ts +6 -0
- package/dist/barrier.d.ts.map +1 -1
- package/dist/barrier.js +45 -7
- package/dist/barrier.js.map +1 -1
- package/dist/cascade-context.d.ts.map +1 -1
- package/dist/cascade-context.js +25 -25
- package/dist/cascade-context.js.map +1 -1
- package/dist/cascade-executor.d.ts.map +1 -1
- package/dist/cascade-executor.js +1 -1
- package/dist/cascade-executor.js.map +1 -1
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +23 -7
- package/dist/context.js.map +1 -1
- package/dist/cron-parser.d.ts +65 -0
- package/dist/cron-parser.d.ts.map +1 -0
- package/dist/cron-parser.js +294 -0
- package/dist/cron-parser.js.map +1 -0
- package/dist/cron-scheduler.d.ts +117 -0
- package/dist/cron-scheduler.d.ts.map +1 -0
- package/dist/cron-scheduler.js +176 -0
- package/dist/cron-scheduler.js.map +1 -0
- package/dist/database-context.d.ts +184 -0
- package/dist/database-context.d.ts.map +1 -0
- package/dist/database-context.js +428 -0
- package/dist/database-context.js.map +1 -0
- package/dist/digital-objects-adapter.d.ts +159 -0
- package/dist/digital-objects-adapter.d.ts.map +1 -0
- package/dist/digital-objects-adapter.js +229 -0
- package/dist/digital-objects-adapter.js.map +1 -0
- package/dist/durable-execution-cloudflare.d.ts +427 -0
- package/dist/durable-execution-cloudflare.d.ts.map +1 -0
- package/dist/durable-execution-cloudflare.js +510 -0
- package/dist/durable-execution-cloudflare.js.map +1 -0
- package/dist/durable-execution.d.ts +482 -0
- package/dist/durable-execution.d.ts.map +1 -0
- package/dist/durable-execution.js +594 -0
- package/dist/durable-execution.js.map +1 -0
- package/dist/durable-workflow.d.ts +176 -0
- package/dist/durable-workflow.d.ts.map +1 -0
- package/dist/durable-workflow.js +552 -0
- package/dist/durable-workflow.js.map +1 -0
- package/dist/graph/topological-sort.d.ts.map +1 -1
- package/dist/graph/topological-sort.js +5 -5
- package/dist/graph/topological-sort.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -1
- package/dist/logger.d.ts +101 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +115 -0
- package/dist/logger.js.map +1 -0
- package/dist/on.d.ts.map +1 -1
- package/dist/on.js +3 -3
- package/dist/on.js.map +1 -1
- package/dist/runtime.d.ts +169 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +275 -0
- package/dist/runtime.js.map +1 -0
- package/dist/send.d.ts.map +1 -1
- package/dist/send.js +4 -3
- package/dist/send.js.map +1 -1
- package/dist/telemetry.d.ts +150 -0
- package/dist/telemetry.d.ts.map +1 -0
- package/dist/telemetry.js +388 -0
- package/dist/telemetry.js.map +1 -0
- package/dist/timer-registry.d.ts +25 -0
- package/dist/timer-registry.d.ts.map +1 -1
- package/dist/timer-registry.js +42 -8
- package/dist/timer-registry.js.map +1 -1
- package/dist/types.d.ts +17 -6
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -1
- package/dist/types.js.map +1 -1
- package/dist/worker/durable-step.d.ts +481 -0
- package/dist/worker/durable-step.d.ts.map +1 -0
- package/dist/worker/durable-step.js +606 -0
- package/dist/worker/durable-step.js.map +1 -0
- package/dist/worker/index.d.ts +106 -0
- package/dist/worker/index.d.ts.map +1 -0
- package/dist/worker/index.js +124 -0
- package/dist/worker/index.js.map +1 -0
- package/dist/worker/state-adapter.d.ts +230 -0
- package/dist/worker/state-adapter.d.ts.map +1 -0
- package/dist/worker/state-adapter.js +409 -0
- package/dist/worker/state-adapter.js.map +1 -0
- package/dist/worker/topological-executor.d.ts +282 -0
- package/dist/worker/topological-executor.d.ts.map +1 -0
- package/dist/worker/topological-executor.js +396 -0
- package/dist/worker/topological-executor.js.map +1 -0
- package/dist/worker/workflow-builder.d.ts +286 -0
- package/dist/worker/workflow-builder.d.ts.map +1 -0
- package/dist/worker/workflow-builder.js +565 -0
- package/dist/worker/workflow-builder.js.map +1 -0
- package/dist/worker.d.ts +800 -0
- package/dist/worker.d.ts.map +1 -0
- package/dist/worker.js +2428 -0
- package/dist/worker.js.map +1 -0
- package/dist/workflow-builder.d.ts +287 -0
- package/dist/workflow-builder.d.ts.map +1 -0
- package/dist/workflow-builder.js +762 -0
- package/dist/workflow-builder.js.map +1 -0
- package/dist/workflow.d.ts +14 -30
- package/dist/workflow.d.ts.map +1 -1
- package/dist/workflow.js +132 -292
- package/dist/workflow.js.map +1 -1
- package/examples/01-ecommerce-order-pipeline.ts +358 -0
- package/examples/02-content-moderation-cascade.ts +454 -0
- package/examples/03-scheduled-reporting-dependencies.ts +479 -0
- package/examples/04-database-persistence.ts +518 -0
- package/examples/README.md +173 -0
- package/package.json +30 -13
- package/src/__tests__/digital-objects-adapter.test.ts +274 -0
- package/src/__tests__/durable-workflow.test.ts +297 -0
- package/src/barrier.ts +48 -7
- package/src/cascade-context.ts +36 -29
- package/src/cascade-executor.ts +3 -2
- package/src/context.ts +41 -12
- package/src/cron-parser.ts +347 -0
- package/src/cron-scheduler.ts +239 -0
- package/src/database-context.ts +658 -0
- package/src/digital-objects-adapter.ts +351 -0
- package/src/durable-execution-cloudflare.ts +855 -0
- package/src/durable-execution.ts +1042 -0
- package/src/durable-workflow.ts +717 -0
- package/src/graph/topological-sort.ts +6 -8
- package/src/index.ts +69 -0
- package/src/logger.ts +148 -0
- package/src/on.ts +8 -9
- package/src/runtime.ts +436 -0
- package/src/send.ts +4 -5
- package/src/telemetry.ts +577 -0
- package/src/timer-registry.ts +44 -10
- package/src/types.ts +32 -17
- package/src/worker/durable-step.ts +976 -0
- package/src/worker/index.ts +216 -0
- package/src/worker/state-adapter.ts +589 -0
- package/src/worker/topological-executor.ts +625 -0
- package/src/worker/workflow-builder.ts +871 -0
- package/src/worker.ts +2906 -0
- package/src/workflow-builder.ts +1068 -0
- package/src/workflow.ts +188 -351
- package/test/barrier-join.test.ts +32 -24
- package/test/cascade-executor.test.ts +9 -16
- package/test/cron-parser.test.ts +314 -0
- package/test/cron-scheduler.test.ts +291 -0
- package/test/database-context.test.ts +770 -0
- package/test/db-provider-adapter.test.ts +862 -0
- package/test/durable-execution-cloudflare.test.ts +606 -0
- package/test/durable-execution-in-process.test.ts +286 -0
- package/test/durable-execution.test.ts +247 -0
- package/test/e2e/workflow-scenarios.e2e.test.ts +1039 -0
- package/test/integration.test.ts +442 -0
- package/test/rpc-surface.test.ts +946 -0
- package/test/runtime.test.ts +262 -0
- package/test/schedule-timer-cleanup.test.ts +30 -21
- package/test/send-race-conditions.test.ts +30 -40
- package/test/worker/durable-cascade.test.ts +1117 -0
- package/test/worker/durable-step.test.ts +723 -0
- package/test/worker/topological-executor.test.ts +1240 -0
- package/test/worker/workflow-builder.test.ts +1067 -0
- package/test/worker.test.ts +608 -0
- package/test/workflow-builder.test.ts +1670 -0
- package/test/workflow-cron.test.ts +256 -0
- package/test/workflow-state-adapter.test.ts +923 -0
- package/test/workflow.test.ts +25 -22
- package/tsconfig.json +3 -1
- package/vitest.config.ts +38 -1
- package/vitest.workers.config.ts +44 -0
- package/wrangler.jsonc +22 -0
- package/.turbo/turbo-test.log +0 -169
- package/LICENSE +0 -21
- package/src/context.js +0 -83
- package/src/every.js +0 -267
- package/src/index.js +0 -71
- package/src/on.js +0 -79
- package/src/send.js +0 -111
- package/src/types.js +0 -4
- package/src/workflow.js +0 -455
- package/test/context.test.js +0 -116
- package/test/every.test.js +0 -282
- package/test/on.test.js +0 -80
- package/test/send.test.js +0 -89
- package/test/workflow.test.js +0 -224
- package/vitest.config.js +0 -7
|
@@ -0,0 +1,388 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenTelemetry Integration for ai-workflows
|
|
3
|
+
*
|
|
4
|
+
* Provides instrumented wrappers and telemetry utilities for workflow execution.
|
|
5
|
+
* Integrates with cascade-context for distributed tracing support.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```ts
|
|
9
|
+
* import { Workflow } from 'ai-workflows'
|
|
10
|
+
* import { withWorkflowTelemetry, instrumentWorkflow } from 'ai-workflows/telemetry'
|
|
11
|
+
*
|
|
12
|
+
* // Enable telemetry globally
|
|
13
|
+
* withWorkflowTelemetry({ provider: createConsoleTelemetryProvider() }, async () => {
|
|
14
|
+
* const workflow = Workflow($ => {
|
|
15
|
+
* $.on.Customer.created(async (customer) => {
|
|
16
|
+
* // Traced automatically
|
|
17
|
+
* })
|
|
18
|
+
* })
|
|
19
|
+
* await workflow.start()
|
|
20
|
+
* })
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* @packageDocumentation
|
|
24
|
+
*/
|
|
25
|
+
import { getTracer, getMeter, getLogger, setTelemetryProvider, getTelemetryProvider, createHandlerMetrics, SemanticAttributes, MetricNames, createTraceparent, parseTraceparent, generateTraceId, generateSpanId, } from '@org.ai/types';
|
|
26
|
+
// Package info
|
|
27
|
+
const PACKAGE_NAME = 'ai-workflows';
|
|
28
|
+
const PACKAGE_VERSION = '2.1.4';
|
|
29
|
+
// ============================================================================
|
|
30
|
+
// Package-level Telemetry
|
|
31
|
+
// ============================================================================
|
|
32
|
+
let packageTracer;
|
|
33
|
+
let packageMeter;
|
|
34
|
+
let packageLogger;
|
|
35
|
+
let workflowMetrics;
|
|
36
|
+
/**
|
|
37
|
+
* Get the tracer for ai-workflows
|
|
38
|
+
*/
|
|
39
|
+
export function getWorkflowTracer() {
|
|
40
|
+
if (!packageTracer) {
|
|
41
|
+
packageTracer = getTracer(PACKAGE_NAME, PACKAGE_VERSION);
|
|
42
|
+
}
|
|
43
|
+
return packageTracer;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Get the meter for ai-workflows
|
|
47
|
+
*/
|
|
48
|
+
export function getWorkflowMeter() {
|
|
49
|
+
if (!packageMeter) {
|
|
50
|
+
packageMeter = getMeter(PACKAGE_NAME, PACKAGE_VERSION);
|
|
51
|
+
}
|
|
52
|
+
return packageMeter;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Get the logger for ai-workflows
|
|
56
|
+
*/
|
|
57
|
+
export function getWorkflowLogger() {
|
|
58
|
+
if (!packageLogger) {
|
|
59
|
+
packageLogger = getLogger(PACKAGE_NAME);
|
|
60
|
+
}
|
|
61
|
+
return packageLogger;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Create workflow-specific metrics
|
|
65
|
+
*/
|
|
66
|
+
export function createWorkflowMetrics(meter) {
|
|
67
|
+
return {
|
|
68
|
+
stepDuration: meter.createHistogram(MetricNames.WORKFLOW_STEP_DURATION, 'Duration of workflow steps', 'ms'),
|
|
69
|
+
stepTotal: meter.createCounter(MetricNames.WORKFLOW_STEP_TOTAL, 'Total number of workflow steps executed'),
|
|
70
|
+
stepErrors: meter.createCounter(MetricNames.WORKFLOW_STEP_ERRORS, 'Number of failed workflow steps'),
|
|
71
|
+
eventHandlers: meter.createCounter('workflow.event.handlers', 'Event handler invocations'),
|
|
72
|
+
scheduleHandlers: meter.createCounter('workflow.schedule.handlers', 'Schedule handler invocations'),
|
|
73
|
+
cascadeDepth: meter.createHistogram('workflow.cascade.depth', 'Cascade context depth'),
|
|
74
|
+
cascadeDuration: meter.createHistogram('workflow.cascade.duration', 'Total cascade execution duration', 'ms'),
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Get workflow metrics for the package
|
|
79
|
+
*/
|
|
80
|
+
export function getWorkflowMetrics() {
|
|
81
|
+
if (!workflowMetrics) {
|
|
82
|
+
workflowMetrics = createWorkflowMetrics(getWorkflowMeter());
|
|
83
|
+
}
|
|
84
|
+
return workflowMetrics;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Reset cached telemetry instances
|
|
88
|
+
*/
|
|
89
|
+
export function resetTelemetry() {
|
|
90
|
+
packageTracer = undefined;
|
|
91
|
+
packageMeter = undefined;
|
|
92
|
+
packageLogger = undefined;
|
|
93
|
+
workflowMetrics = undefined;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Execute a function with workflow telemetry enabled
|
|
97
|
+
*/
|
|
98
|
+
export async function withWorkflowTelemetry(options, fn) {
|
|
99
|
+
const previousProvider = getTelemetryProvider();
|
|
100
|
+
if (options.provider) {
|
|
101
|
+
setTelemetryProvider(options.provider);
|
|
102
|
+
resetTelemetry();
|
|
103
|
+
}
|
|
104
|
+
try {
|
|
105
|
+
return await fn();
|
|
106
|
+
}
|
|
107
|
+
finally {
|
|
108
|
+
if (options.provider) {
|
|
109
|
+
setTelemetryProvider(previousProvider);
|
|
110
|
+
resetTelemetry();
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
// ============================================================================
|
|
115
|
+
// Cascade Context Integration
|
|
116
|
+
// ============================================================================
|
|
117
|
+
/**
|
|
118
|
+
* Create a span from a CascadeContext
|
|
119
|
+
*
|
|
120
|
+
* This bridges the cascade-context W3C Trace Context support with OpenTelemetry.
|
|
121
|
+
*/
|
|
122
|
+
export function spanFromCascadeContext(ctx, name) {
|
|
123
|
+
const tracer = getWorkflowTracer();
|
|
124
|
+
const traceContext = ctx.toTraceContext();
|
|
125
|
+
return tracer.startSpan(name || ctx.name || 'cascade', {
|
|
126
|
+
kind: 'internal',
|
|
127
|
+
parent: traceContext,
|
|
128
|
+
attributes: {
|
|
129
|
+
[SemanticAttributes.WORKFLOW_NAME]: ctx.name || 'cascade',
|
|
130
|
+
'cascade.correlationId': ctx.correlationId,
|
|
131
|
+
'cascade.spanId': ctx.spanId,
|
|
132
|
+
'cascade.depth': ctx.depth,
|
|
133
|
+
...(ctx.parentId && { 'cascade.parentId': ctx.parentId }),
|
|
134
|
+
},
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Create a TraceContext from a span
|
|
139
|
+
*
|
|
140
|
+
* Allows propagating span context to cascade-context.
|
|
141
|
+
*/
|
|
142
|
+
export function traceContextFromSpan(span) {
|
|
143
|
+
return span.getTraceContext();
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Record a CascadeStep as a span event
|
|
147
|
+
*/
|
|
148
|
+
export function recordStepAsSpanEvent(span, step) {
|
|
149
|
+
const attrs = {
|
|
150
|
+
'step.status': step.status,
|
|
151
|
+
...(step.duration !== undefined && { 'step.duration': step.duration }),
|
|
152
|
+
...(step.metadata &&
|
|
153
|
+
Object.keys(step.metadata).length > 0 && { 'step.metadata': JSON.stringify(step.metadata) }),
|
|
154
|
+
};
|
|
155
|
+
span.addEvent(step.name, attrs);
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Convert CascadeContext steps to span events
|
|
159
|
+
*/
|
|
160
|
+
export function cascadeStepsToSpanEvents(span, ctx) {
|
|
161
|
+
for (const step of ctx.steps) {
|
|
162
|
+
recordStepAsSpanEvent(span, step);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
// ============================================================================
|
|
166
|
+
// Event Handler Instrumentation
|
|
167
|
+
// ============================================================================
|
|
168
|
+
/**
|
|
169
|
+
* Record an event handler invocation
|
|
170
|
+
*/
|
|
171
|
+
export function recordEventHandler(params) {
|
|
172
|
+
const metrics = getWorkflowMetrics();
|
|
173
|
+
const labels = {
|
|
174
|
+
event: params.event,
|
|
175
|
+
status: params.success ? 'success' : 'error',
|
|
176
|
+
};
|
|
177
|
+
metrics.eventHandlers.add(1, labels);
|
|
178
|
+
metrics.stepDuration.record(params.durationMs, { ...labels, type: 'event' });
|
|
179
|
+
metrics.stepTotal.add(1, { ...labels, type: 'event' });
|
|
180
|
+
if (!params.success) {
|
|
181
|
+
metrics.stepErrors.add(1, { ...labels, type: 'event' });
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Record a schedule handler invocation
|
|
186
|
+
*/
|
|
187
|
+
export function recordScheduleHandler(params) {
|
|
188
|
+
const metrics = getWorkflowMetrics();
|
|
189
|
+
const labels = {
|
|
190
|
+
schedule: params.schedule,
|
|
191
|
+
status: params.success ? 'success' : 'error',
|
|
192
|
+
};
|
|
193
|
+
metrics.scheduleHandlers.add(1, labels);
|
|
194
|
+
metrics.stepDuration.record(params.durationMs, { ...labels, type: 'schedule' });
|
|
195
|
+
metrics.stepTotal.add(1, { ...labels, type: 'schedule' });
|
|
196
|
+
if (!params.success) {
|
|
197
|
+
metrics.stepErrors.add(1, { ...labels, type: 'schedule' });
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Create a traced event handler
|
|
202
|
+
*/
|
|
203
|
+
export function tracedEventHandler(event, handler) {
|
|
204
|
+
return async (data, ctx) => {
|
|
205
|
+
const tracer = getWorkflowTracer();
|
|
206
|
+
const logger = getWorkflowLogger();
|
|
207
|
+
const startTime = Date.now();
|
|
208
|
+
return tracer.withSpan(`workflow.event.${event}`, {
|
|
209
|
+
kind: 'consumer',
|
|
210
|
+
attributes: {
|
|
211
|
+
[SemanticAttributes.WORKFLOW_NAME]: event,
|
|
212
|
+
'workflow.event': event,
|
|
213
|
+
},
|
|
214
|
+
}, async (span) => {
|
|
215
|
+
logger.info(`Event handler ${event} started`);
|
|
216
|
+
try {
|
|
217
|
+
const result = await handler(data, ctx);
|
|
218
|
+
const durationMs = Date.now() - startTime;
|
|
219
|
+
recordEventHandler({
|
|
220
|
+
event,
|
|
221
|
+
durationMs,
|
|
222
|
+
success: true,
|
|
223
|
+
});
|
|
224
|
+
span.setStatus('ok');
|
|
225
|
+
logger.info(`Event handler ${event} completed`, { durationMs });
|
|
226
|
+
return result;
|
|
227
|
+
}
|
|
228
|
+
catch (error) {
|
|
229
|
+
const durationMs = Date.now() - startTime;
|
|
230
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
231
|
+
recordEventHandler({
|
|
232
|
+
event,
|
|
233
|
+
durationMs,
|
|
234
|
+
success: false,
|
|
235
|
+
});
|
|
236
|
+
span.setStatus('error', message);
|
|
237
|
+
logger.error(`Event handler ${event} failed`, error instanceof Error ? error : undefined, { durationMs });
|
|
238
|
+
throw error;
|
|
239
|
+
}
|
|
240
|
+
});
|
|
241
|
+
};
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Create a traced schedule handler
|
|
245
|
+
*/
|
|
246
|
+
export function tracedScheduleHandler(schedule, handler) {
|
|
247
|
+
return async (ctx) => {
|
|
248
|
+
const tracer = getWorkflowTracer();
|
|
249
|
+
const logger = getWorkflowLogger();
|
|
250
|
+
const startTime = Date.now();
|
|
251
|
+
return tracer.withSpan(`workflow.schedule.${schedule}`, {
|
|
252
|
+
kind: 'internal',
|
|
253
|
+
attributes: {
|
|
254
|
+
[SemanticAttributes.WORKFLOW_NAME]: schedule,
|
|
255
|
+
'workflow.schedule': schedule,
|
|
256
|
+
},
|
|
257
|
+
}, async (span) => {
|
|
258
|
+
logger.info(`Schedule handler ${schedule} started`);
|
|
259
|
+
try {
|
|
260
|
+
const result = await handler(ctx);
|
|
261
|
+
const durationMs = Date.now() - startTime;
|
|
262
|
+
recordScheduleHandler({
|
|
263
|
+
schedule,
|
|
264
|
+
durationMs,
|
|
265
|
+
success: true,
|
|
266
|
+
});
|
|
267
|
+
span.setStatus('ok');
|
|
268
|
+
logger.info(`Schedule handler ${schedule} completed`, { durationMs });
|
|
269
|
+
return result;
|
|
270
|
+
}
|
|
271
|
+
catch (error) {
|
|
272
|
+
const durationMs = Date.now() - startTime;
|
|
273
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
274
|
+
recordScheduleHandler({
|
|
275
|
+
schedule,
|
|
276
|
+
durationMs,
|
|
277
|
+
success: false,
|
|
278
|
+
});
|
|
279
|
+
span.setStatus('error', message);
|
|
280
|
+
logger.error(`Schedule handler ${schedule} failed`, error instanceof Error ? error : undefined, { durationMs });
|
|
281
|
+
throw error;
|
|
282
|
+
}
|
|
283
|
+
});
|
|
284
|
+
};
|
|
285
|
+
}
|
|
286
|
+
// ============================================================================
|
|
287
|
+
// Workflow Step Instrumentation
|
|
288
|
+
// ============================================================================
|
|
289
|
+
/**
|
|
290
|
+
* Record a workflow step
|
|
291
|
+
*/
|
|
292
|
+
export function recordWorkflowStep(params) {
|
|
293
|
+
const metrics = getWorkflowMetrics();
|
|
294
|
+
const labels = {
|
|
295
|
+
step: params.step,
|
|
296
|
+
workflow: params.workflow || 'default',
|
|
297
|
+
status: params.success ? 'success' : 'error',
|
|
298
|
+
...(params.tier && { tier: params.tier }),
|
|
299
|
+
};
|
|
300
|
+
metrics.stepTotal.add(1, labels);
|
|
301
|
+
metrics.stepDuration.record(params.durationMs, labels);
|
|
302
|
+
if (!params.success) {
|
|
303
|
+
metrics.stepErrors.add(1, labels);
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
/**
|
|
307
|
+
* Create a traced workflow step
|
|
308
|
+
*/
|
|
309
|
+
export function tracedStep(stepName, fn, options = {}) {
|
|
310
|
+
return async (...args) => {
|
|
311
|
+
const tracer = getWorkflowTracer();
|
|
312
|
+
const logger = getWorkflowLogger();
|
|
313
|
+
const startTime = Date.now();
|
|
314
|
+
const attributes = {
|
|
315
|
+
[SemanticAttributes.WORKFLOW_STEP]: stepName,
|
|
316
|
+
...(options.workflowName && { [SemanticAttributes.WORKFLOW_NAME]: options.workflowName }),
|
|
317
|
+
...(options.tier && { [SemanticAttributes.AI_TIER]: options.tier }),
|
|
318
|
+
};
|
|
319
|
+
return tracer.withSpan(`workflow.step.${stepName}`, { kind: 'internal', attributes }, async (span) => {
|
|
320
|
+
logger.debug(`Step ${stepName} started`, {
|
|
321
|
+
workflow: options.workflowName,
|
|
322
|
+
tier: options.tier,
|
|
323
|
+
});
|
|
324
|
+
try {
|
|
325
|
+
const result = await fn(...args);
|
|
326
|
+
const durationMs = Date.now() - startTime;
|
|
327
|
+
recordWorkflowStep({
|
|
328
|
+
step: stepName,
|
|
329
|
+
workflow: options.workflowName,
|
|
330
|
+
durationMs,
|
|
331
|
+
success: true,
|
|
332
|
+
tier: options.tier,
|
|
333
|
+
});
|
|
334
|
+
span.setStatus('ok');
|
|
335
|
+
return result;
|
|
336
|
+
}
|
|
337
|
+
catch (error) {
|
|
338
|
+
const durationMs = Date.now() - startTime;
|
|
339
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
340
|
+
recordWorkflowStep({
|
|
341
|
+
step: stepName,
|
|
342
|
+
workflow: options.workflowName,
|
|
343
|
+
durationMs,
|
|
344
|
+
success: false,
|
|
345
|
+
tier: options.tier,
|
|
346
|
+
});
|
|
347
|
+
span.setStatus('error', message);
|
|
348
|
+
throw error;
|
|
349
|
+
}
|
|
350
|
+
});
|
|
351
|
+
};
|
|
352
|
+
}
|
|
353
|
+
// ============================================================================
|
|
354
|
+
// Span Helpers
|
|
355
|
+
// ============================================================================
|
|
356
|
+
/**
|
|
357
|
+
* Start a span for a workflow operation
|
|
358
|
+
*/
|
|
359
|
+
export function startWorkflowSpan(name, attributes) {
|
|
360
|
+
const tracer = getWorkflowTracer();
|
|
361
|
+
return tracer.startSpan(name, {
|
|
362
|
+
kind: 'internal',
|
|
363
|
+
attributes: {
|
|
364
|
+
[SemanticAttributes.SERVICE_NAME]: PACKAGE_NAME,
|
|
365
|
+
...attributes,
|
|
366
|
+
},
|
|
367
|
+
});
|
|
368
|
+
}
|
|
369
|
+
/**
|
|
370
|
+
* Execute code within a workflow span
|
|
371
|
+
*/
|
|
372
|
+
export async function withWorkflowSpan(name, fn, attributes) {
|
|
373
|
+
const tracer = getWorkflowTracer();
|
|
374
|
+
return tracer.withSpan(name, { kind: 'internal', attributes }, fn);
|
|
375
|
+
}
|
|
376
|
+
// ============================================================================
|
|
377
|
+
// Re-exports from @org.ai/types
|
|
378
|
+
// ============================================================================
|
|
379
|
+
export {
|
|
380
|
+
// Global functions
|
|
381
|
+
getTracer, getMeter, getLogger, setTelemetryProvider, getTelemetryProvider,
|
|
382
|
+
// W3C Trace Context
|
|
383
|
+
createTraceparent, parseTraceparent, generateTraceId, generateSpanId,
|
|
384
|
+
// Constants
|
|
385
|
+
SemanticAttributes, MetricNames,
|
|
386
|
+
// Utilities
|
|
387
|
+
createHandlerMetrics, } from '@org.ai/types';
|
|
388
|
+
//# sourceMappingURL=telemetry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":"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"}
|
package/dist/timer-registry.d.ts
CHANGED
|
@@ -47,6 +47,31 @@ export declare const timerRegistry: {
|
|
|
47
47
|
clearAll: typeof clearAllTimers;
|
|
48
48
|
getAll: () => [string, TimerEntry][];
|
|
49
49
|
};
|
|
50
|
+
/**
|
|
51
|
+
* Enable global timer registry functions.
|
|
52
|
+
*
|
|
53
|
+
* This opt-in function registers `getActiveWorkflowTimerCount` and `clearAllWorkflowTimers`
|
|
54
|
+
* on the global scope for debugging and cleanup purposes.
|
|
55
|
+
*
|
|
56
|
+
* Call this function explicitly if you need global access to timer management:
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* ```ts
|
|
60
|
+
* import { enableGlobalTimerRegistry } from 'ai-workflows'
|
|
61
|
+
*
|
|
62
|
+
* // Enable global registration
|
|
63
|
+
* enableGlobalTimerRegistry()
|
|
64
|
+
*
|
|
65
|
+
* // Now these are available globally:
|
|
66
|
+
* // globalThis.getActiveWorkflowTimerCount()
|
|
67
|
+
* // globalThis.clearAllWorkflowTimers()
|
|
68
|
+
* ```
|
|
69
|
+
*/
|
|
70
|
+
export declare function enableGlobalTimerRegistry(): void;
|
|
71
|
+
/**
|
|
72
|
+
* Check if global timer registry is enabled
|
|
73
|
+
*/
|
|
74
|
+
export declare function isGlobalTimerRegistryEnabled(): boolean;
|
|
50
75
|
export declare function registerProcessCleanup(): void;
|
|
51
76
|
export {};
|
|
52
77
|
//# sourceMappingURL=timer-registry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timer-registry.d.ts","sourceRoot":"","sources":["../src/timer-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,UAAU,UAAU;IAClB,OAAO,EAAE,MAAM,CAAC,OAAO,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;CACrB;AAmBD;;GAEG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,GAAG,MAAM,CAQjF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAQnD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAQnE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAMjE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAKrC;AAED;;GAEG;AACH,eAAO,MAAM,aAAa;;;;;;;;CAQzB,CAAA;
|
|
1
|
+
{"version":3,"file":"timer-registry.d.ts","sourceRoot":"","sources":["../src/timer-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,UAAU,UAAU;IAClB,OAAO,EAAE,MAAM,CAAC,OAAO,CAAA;IACvB,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;CACrB;AAmBD;;GAEG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,GAAG,MAAM,CAQjF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAQnD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAQnE;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAMjE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAKrC;AAED;;GAEG;AACH,eAAO,MAAM,aAAa;;;;;;;;CAQzB,CAAA;AAaD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,yBAAyB,IAAI,IAAI,CAahD;AAED;;GAEG;AACH,wBAAgB,4BAA4B,IAAI,OAAO,CAEtD;AAKD,wBAAgB,sBAAsB,IAAI,IAAI,CAU7C"}
|
package/dist/timer-registry.js
CHANGED
|
@@ -93,17 +93,51 @@ export const timerRegistry = {
|
|
|
93
93
|
clearAll: clearAllTimers,
|
|
94
94
|
getAll: () => Array.from(activeTimers.entries()),
|
|
95
95
|
};
|
|
96
|
+
let globalRegistrationEnabled = false;
|
|
96
97
|
function registerGlobalFunctions(target) {
|
|
97
|
-
|
|
98
|
-
target
|
|
98
|
+
;
|
|
99
|
+
target['getActiveWorkflowTimerCount'] =
|
|
100
|
+
getActiveTimerCount;
|
|
101
|
+
target['clearAllWorkflowTimers'] = clearAllTimers;
|
|
99
102
|
}
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
+
/**
|
|
104
|
+
* Enable global timer registry functions.
|
|
105
|
+
*
|
|
106
|
+
* This opt-in function registers `getActiveWorkflowTimerCount` and `clearAllWorkflowTimers`
|
|
107
|
+
* on the global scope for debugging and cleanup purposes.
|
|
108
|
+
*
|
|
109
|
+
* Call this function explicitly if you need global access to timer management:
|
|
110
|
+
*
|
|
111
|
+
* @example
|
|
112
|
+
* ```ts
|
|
113
|
+
* import { enableGlobalTimerRegistry } from 'ai-workflows'
|
|
114
|
+
*
|
|
115
|
+
* // Enable global registration
|
|
116
|
+
* enableGlobalTimerRegistry()
|
|
117
|
+
*
|
|
118
|
+
* // Now these are available globally:
|
|
119
|
+
* // globalThis.getActiveWorkflowTimerCount()
|
|
120
|
+
* // globalThis.clearAllWorkflowTimers()
|
|
121
|
+
* ```
|
|
122
|
+
*/
|
|
123
|
+
export function enableGlobalTimerRegistry() {
|
|
124
|
+
if (globalRegistrationEnabled)
|
|
125
|
+
return;
|
|
126
|
+
globalRegistrationEnabled = true;
|
|
127
|
+
// Register on globalThis (standard)
|
|
128
|
+
if (typeof globalThis !== 'undefined') {
|
|
129
|
+
registerGlobalFunctions(globalThis);
|
|
130
|
+
}
|
|
131
|
+
// Also register on global (Node.js specific, used in some test environments)
|
|
132
|
+
if (typeof global !== 'undefined' && global !== globalThis) {
|
|
133
|
+
registerGlobalFunctions(global);
|
|
134
|
+
}
|
|
103
135
|
}
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
136
|
+
/**
|
|
137
|
+
* Check if global timer registry is enabled
|
|
138
|
+
*/
|
|
139
|
+
export function isGlobalTimerRegistryEnabled() {
|
|
140
|
+
return globalRegistrationEnabled;
|
|
107
141
|
}
|
|
108
142
|
// Register process exit handlers for cleanup
|
|
109
143
|
let cleanupRegistered = false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timer-registry.js","sourceRoot":"","sources":["../src/timer-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAQH;;GAEG;AACH,MAAM,YAAY,GAA4B,IAAI,GAAG,EAAE,CAAA;AAEvD;;GAEG;AACH,IAAI,YAAY,GAAG,CAAC,CAAA;AAEpB;;GAEG;AACH,SAAS,eAAe,CAAC,UAAkB;IACzC,OAAO,GAAG,UAAU,UAAU,EAAE,YAAY,EAAE,CAAA;AAChD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,UAAkB,EAAE,OAAuB;IACvE,MAAM,EAAE,GAAG,eAAe,CAAC,UAAU,CAAC,CAAA;IACtC,YAAY,CAAC,GAAG,CAAC,EAAE,EAAE;QACnB,OAAO;QACP,UAAU;QACV,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE;KACzB,CAAC,CAAA;IACF,OAAO,EAAE,CAAA;AACX,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,EAAU;IACxC,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAClC,IAAI,KAAK,EAAE,CAAC;QACV,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAC5B,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QACvB,OAAO,IAAI,CAAA;IACb,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,UAAkB;IACvD,MAAM,GAAG,GAAa,EAAE,CAAA;IACxB,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,YAAY,EAAE,CAAC;QACvC,IAAI,KAAK,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;YACpC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACd,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,UAAkB;IACvD,MAAM,GAAG,GAAG,sBAAsB,CAAC,UAAU,CAAC,CAAA;IAC9C,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACrB,eAAe,CAAC,EAAE,CAAC,CAAA;IACrB,CAAC;IACD,OAAO,GAAG,CAAC,MAAM,CAAA;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB;IACjC,OAAO,YAAY,CAAC,IAAI,CAAA;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc;IAC5B,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,YAAY,EAAE,CAAC;QACvC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAC5B,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IACzB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,QAAQ,EAAE,aAAa;IACvB,UAAU,EAAE,eAAe;IAC3B,sBAAsB;IACtB,gBAAgB,EAAE,sBAAsB;IACxC,cAAc,EAAE,mBAAmB;IACnC,QAAQ,EAAE,cAAc;IACxB,MAAM,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;CACjD,CAAA;
|
|
1
|
+
{"version":3,"file":"timer-registry.js","sourceRoot":"","sources":["../src/timer-registry.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Types for ai-workflows
|
|
3
3
|
*/
|
|
4
|
+
import type { WorkflowContextType } from '@org.ai/types';
|
|
4
5
|
/**
|
|
5
6
|
* Handler function with source code for remote execution
|
|
6
7
|
*/
|
|
7
8
|
export interface HandlerFunction<T = unknown> {
|
|
8
9
|
/** The actual function */
|
|
9
|
-
fn: (...args:
|
|
10
|
+
fn: (...args: unknown[]) => void | Promise<void>;
|
|
10
11
|
/** Source code string for remote execution */
|
|
11
12
|
source: string;
|
|
12
13
|
/** Handler name (for debugging) */
|
|
@@ -19,6 +20,9 @@ export interface HandlerFunction<T = unknown> {
|
|
|
19
20
|
* Generic order follows Promise<T> convention:
|
|
20
21
|
* - TOutput (first) is what the handler returns
|
|
21
22
|
* - TInput (second) is what the handler receives
|
|
23
|
+
*
|
|
24
|
+
* Note: Uses WorkflowContext (extends WorkflowContextType from @org.ai/types)
|
|
25
|
+
* for workflow-specific features like OnProxy, EveryProxy, getState, log.
|
|
22
26
|
*/
|
|
23
27
|
export type EventHandler<TOutput = unknown, TInput = unknown> = (data: TInput, $: WorkflowContext) => TOutput | void | Promise<TOutput | void>;
|
|
24
28
|
/**
|
|
@@ -26,14 +30,21 @@ export type EventHandler<TOutput = unknown, TInput = unknown> = (data: TInput, $
|
|
|
26
30
|
*/
|
|
27
31
|
export type ScheduleHandler = ($: WorkflowContext) => void | Promise<void>;
|
|
28
32
|
/**
|
|
29
|
-
* Workflow context ($) passed to handlers
|
|
33
|
+
* Workflow context ($) passed to handlers.
|
|
34
|
+
* Extends WorkflowContextType from @org.ai/types with workflow-specific features.
|
|
30
35
|
*/
|
|
31
|
-
export interface WorkflowContext {
|
|
36
|
+
export interface WorkflowContext extends WorkflowContextType {
|
|
37
|
+
/**
|
|
38
|
+
* Track an event (fire and forget)
|
|
39
|
+
* Best effort, no confirmation, swallows errors
|
|
40
|
+
* Use for telemetry and non-critical events
|
|
41
|
+
*/
|
|
42
|
+
track: (event: string, data: unknown) => void;
|
|
32
43
|
/**
|
|
33
|
-
* Send an event (
|
|
34
|
-
*
|
|
44
|
+
* Send an event (durable)
|
|
45
|
+
* Guaranteed delivery, returns trackable EventId
|
|
35
46
|
*/
|
|
36
|
-
send: <T = unknown>(event: string, data: T) =>
|
|
47
|
+
send: <T = unknown>(event: string, data: T) => string;
|
|
37
48
|
/**
|
|
38
49
|
* Do an action (durable, waits for result)
|
|
39
50
|
* Retries on failure, stores result durably
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC,GAAG,OAAO;IAC1C,0BAA0B;IAC1B,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Type guard to check if a string is a valid plural unit key
|
|
6
6
|
*/
|
|
7
7
|
export function isPluralUnitKey(key) {
|
|
8
|
-
return key === 'seconds' || key === 'minutes' || key === 'hours' || key === 'days' || key === 'weeks';
|
|
8
|
+
return (key === 'seconds' || key === 'minutes' || key === 'hours' || key === 'days' || key === 'weeks');
|
|
9
9
|
}
|
|
10
10
|
/**
|
|
11
11
|
* Constant mapping object with strict typing
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAoZH;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,OAAO,CACL,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,OAAO,CAC/F,CAAA;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAgC;IACvD,OAAO,EAAE,QAAQ;IACjB,OAAO,EAAE,QAAQ;IACjB,KAAK,EAAE,MAAM;IACb,IAAI,EAAE,KAAK;IACX,KAAK,EAAE,MAAM;CACL,CAAA"}
|