@trigger.dev/core 4.4.0 → 4.4.2

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 (163) hide show
  1. package/dist/commonjs/v3/apiClient/index.d.ts +10 -1
  2. package/dist/commonjs/v3/apiClient/index.js +18 -1
  3. package/dist/commonjs/v3/apiClient/index.js.map +1 -1
  4. package/dist/commonjs/v3/config.d.ts +13 -0
  5. package/dist/commonjs/v3/errors.js +3 -0
  6. package/dist/commonjs/v3/errors.js.map +1 -1
  7. package/dist/commonjs/v3/index.d.ts +3 -0
  8. package/dist/commonjs/v3/index.js +6 -1
  9. package/dist/commonjs/v3/index.js.map +1 -1
  10. package/dist/commonjs/v3/input-streams-api.d.ts +3 -0
  11. package/dist/commonjs/v3/input-streams-api.js +23 -0
  12. package/dist/commonjs/v3/input-streams-api.js.map +1 -0
  13. package/dist/commonjs/v3/inputStreams/index.d.ts +20 -0
  14. package/dist/commonjs/v3/inputStreams/index.js +52 -0
  15. package/dist/commonjs/v3/inputStreams/index.js.map +1 -0
  16. package/dist/commonjs/v3/inputStreams/manager.d.ts +30 -0
  17. package/dist/commonjs/v3/inputStreams/manager.js +299 -0
  18. package/dist/commonjs/v3/inputStreams/manager.js.map +1 -0
  19. package/dist/commonjs/v3/inputStreams/noopManager.d.ts +15 -0
  20. package/dist/commonjs/v3/inputStreams/noopManager.js +27 -0
  21. package/dist/commonjs/v3/inputStreams/noopManager.js.map +1 -0
  22. package/dist/commonjs/v3/inputStreams/types.d.ts +65 -0
  23. package/dist/commonjs/v3/inputStreams/types.js +31 -0
  24. package/dist/commonjs/v3/inputStreams/types.js.map +1 -0
  25. package/dist/commonjs/v3/otel/diskIoMetrics.d.ts +2 -0
  26. package/dist/commonjs/v3/otel/diskIoMetrics.js +94 -0
  27. package/dist/commonjs/v3/otel/diskIoMetrics.js.map +1 -0
  28. package/dist/commonjs/v3/otel/filesystemMetrics.d.ts +2 -0
  29. package/dist/commonjs/v3/otel/filesystemMetrics.js +137 -0
  30. package/dist/commonjs/v3/otel/filesystemMetrics.js.map +1 -0
  31. package/dist/commonjs/v3/otel/machineId.d.ts +1 -0
  32. package/dist/commonjs/v3/otel/machineId.js +7 -0
  33. package/dist/commonjs/v3/otel/machineId.js.map +1 -0
  34. package/dist/commonjs/v3/otel/nodejsRuntimeMetrics.d.ts +2 -0
  35. package/dist/commonjs/v3/otel/nodejsRuntimeMetrics.js +69 -0
  36. package/dist/commonjs/v3/otel/nodejsRuntimeMetrics.js.map +1 -0
  37. package/dist/commonjs/v3/otel/tracingSDK.d.ts +16 -0
  38. package/dist/commonjs/v3/otel/tracingSDK.js +75 -6
  39. package/dist/commonjs/v3/otel/tracingSDK.js.map +1 -1
  40. package/dist/commonjs/v3/realtimeStreams/streamInstance.js +3 -0
  41. package/dist/commonjs/v3/realtimeStreams/streamInstance.js.map +1 -1
  42. package/dist/commonjs/v3/realtimeStreams/streamsWriterV2.d.ts +3 -2
  43. package/dist/commonjs/v3/realtimeStreams/streamsWriterV2.js +18 -8
  44. package/dist/commonjs/v3/realtimeStreams/streamsWriterV2.js.map +1 -1
  45. package/dist/commonjs/v3/realtimeStreams/types.d.ts +93 -0
  46. package/dist/commonjs/v3/realtimeStreams/types.js +4 -0
  47. package/dist/commonjs/v3/realtimeStreams/types.js.map +1 -1
  48. package/dist/commonjs/v3/runEngineWorker/supervisor/schemas.d.ts +7 -7
  49. package/dist/commonjs/v3/runEngineWorker/workload/schemas.d.ts +7 -7
  50. package/dist/commonjs/v3/schemas/api.d.ts +52 -5
  51. package/dist/commonjs/v3/schemas/api.js +21 -1
  52. package/dist/commonjs/v3/schemas/api.js.map +1 -1
  53. package/dist/commonjs/v3/schemas/common.d.ts +24 -24
  54. package/dist/commonjs/v3/schemas/common.js +3 -0
  55. package/dist/commonjs/v3/schemas/common.js.map +1 -1
  56. package/dist/commonjs/v3/schemas/messages.d.ts +119 -116
  57. package/dist/commonjs/v3/schemas/messages.js +1 -0
  58. package/dist/commonjs/v3/schemas/messages.js.map +1 -1
  59. package/dist/commonjs/v3/schemas/webhooks.d.ts +344 -16
  60. package/dist/commonjs/v3/schemas/webhooks.js +20 -0
  61. package/dist/commonjs/v3/schemas/webhooks.js.map +1 -1
  62. package/dist/commonjs/v3/semanticInternalAttributes.d.ts +2 -0
  63. package/dist/commonjs/v3/semanticInternalAttributes.js +2 -0
  64. package/dist/commonjs/v3/semanticInternalAttributes.js.map +1 -1
  65. package/dist/commonjs/v3/taskContext/index.d.ts +2 -0
  66. package/dist/commonjs/v3/taskContext/index.js +7 -2
  67. package/dist/commonjs/v3/taskContext/index.js.map +1 -1
  68. package/dist/commonjs/v3/taskContext/otelProcessors.d.ts +24 -0
  69. package/dist/commonjs/v3/taskContext/otelProcessors.js +173 -1
  70. package/dist/commonjs/v3/taskContext/otelProcessors.js.map +1 -1
  71. package/dist/commonjs/v3/utils/globals.d.ts +2 -0
  72. package/dist/commonjs/v3/utils/globals.js.map +1 -1
  73. package/dist/commonjs/v3/waitpoints/index.d.ts +8 -0
  74. package/dist/commonjs/v3/waitpoints/index.js +27 -0
  75. package/dist/commonjs/v3/waitpoints/index.js.map +1 -0
  76. package/dist/commonjs/v3/workers/index.d.ts +2 -1
  77. package/dist/commonjs/v3/workers/index.js +4 -1
  78. package/dist/commonjs/v3/workers/index.js.map +1 -1
  79. package/dist/commonjs/v3/workers/taskExecutor.js +1 -0
  80. package/dist/commonjs/v3/workers/taskExecutor.js.map +1 -1
  81. package/dist/commonjs/version.js +1 -1
  82. package/dist/esm/v3/apiClient/index.d.ts +10 -1
  83. package/dist/esm/v3/apiClient/index.js +19 -2
  84. package/dist/esm/v3/apiClient/index.js.map +1 -1
  85. package/dist/esm/v3/config.d.ts +13 -0
  86. package/dist/esm/v3/errors.js +3 -0
  87. package/dist/esm/v3/errors.js.map +1 -1
  88. package/dist/esm/v3/index.d.ts +3 -0
  89. package/dist/esm/v3/index.js +3 -0
  90. package/dist/esm/v3/index.js.map +1 -1
  91. package/dist/esm/v3/input-streams-api.d.ts +3 -0
  92. package/dist/esm/v3/input-streams-api.js +6 -0
  93. package/dist/esm/v3/input-streams-api.js.map +1 -0
  94. package/dist/esm/v3/inputStreams/index.d.ts +20 -0
  95. package/dist/esm/v3/inputStreams/index.js +48 -0
  96. package/dist/esm/v3/inputStreams/index.js.map +1 -0
  97. package/dist/esm/v3/inputStreams/manager.d.ts +30 -0
  98. package/dist/esm/v3/inputStreams/manager.js +295 -0
  99. package/dist/esm/v3/inputStreams/manager.js.map +1 -0
  100. package/dist/esm/v3/inputStreams/noopManager.d.ts +15 -0
  101. package/dist/esm/v3/inputStreams/noopManager.js +23 -0
  102. package/dist/esm/v3/inputStreams/noopManager.js.map +1 -0
  103. package/dist/esm/v3/inputStreams/types.d.ts +65 -0
  104. package/dist/esm/v3/inputStreams/types.js +26 -0
  105. package/dist/esm/v3/inputStreams/types.js.map +1 -0
  106. package/dist/esm/v3/otel/diskIoMetrics.d.ts +2 -0
  107. package/dist/esm/v3/otel/diskIoMetrics.js +68 -0
  108. package/dist/esm/v3/otel/diskIoMetrics.js.map +1 -0
  109. package/dist/esm/v3/otel/filesystemMetrics.d.ts +2 -0
  110. package/dist/esm/v3/otel/filesystemMetrics.js +111 -0
  111. package/dist/esm/v3/otel/filesystemMetrics.js.map +1 -0
  112. package/dist/esm/v3/otel/machineId.d.ts +1 -0
  113. package/dist/esm/v3/otel/machineId.js +4 -0
  114. package/dist/esm/v3/otel/machineId.js.map +1 -0
  115. package/dist/esm/v3/otel/nodejsRuntimeMetrics.d.ts +2 -0
  116. package/dist/esm/v3/otel/nodejsRuntimeMetrics.js +66 -0
  117. package/dist/esm/v3/otel/nodejsRuntimeMetrics.js.map +1 -0
  118. package/dist/esm/v3/otel/tracingSDK.d.ts +16 -0
  119. package/dist/esm/v3/otel/tracingSDK.js +77 -8
  120. package/dist/esm/v3/otel/tracingSDK.js.map +1 -1
  121. package/dist/esm/v3/realtimeStreams/streamInstance.js +3 -0
  122. package/dist/esm/v3/realtimeStreams/streamInstance.js.map +1 -1
  123. package/dist/esm/v3/realtimeStreams/streamsWriterV2.d.ts +3 -2
  124. package/dist/esm/v3/realtimeStreams/streamsWriterV2.js +18 -8
  125. package/dist/esm/v3/realtimeStreams/streamsWriterV2.js.map +1 -1
  126. package/dist/esm/v3/realtimeStreams/types.d.ts +93 -0
  127. package/dist/esm/v3/realtimeStreams/types.js +1 -1
  128. package/dist/esm/v3/realtimeStreams/types.js.map +1 -1
  129. package/dist/esm/v3/runEngineWorker/supervisor/schemas.d.ts +7 -7
  130. package/dist/esm/v3/runEngineWorker/workload/schemas.d.ts +7 -7
  131. package/dist/esm/v3/schemas/api.d.ts +52 -5
  132. package/dist/esm/v3/schemas/api.js +20 -0
  133. package/dist/esm/v3/schemas/api.js.map +1 -1
  134. package/dist/esm/v3/schemas/common.d.ts +24 -24
  135. package/dist/esm/v3/schemas/common.js +3 -0
  136. package/dist/esm/v3/schemas/common.js.map +1 -1
  137. package/dist/esm/v3/schemas/messages.d.ts +119 -116
  138. package/dist/esm/v3/schemas/messages.js +1 -0
  139. package/dist/esm/v3/schemas/messages.js.map +1 -1
  140. package/dist/esm/v3/schemas/webhooks.d.ts +344 -16
  141. package/dist/esm/v3/schemas/webhooks.js +20 -0
  142. package/dist/esm/v3/schemas/webhooks.js.map +1 -1
  143. package/dist/esm/v3/semanticInternalAttributes.d.ts +2 -0
  144. package/dist/esm/v3/semanticInternalAttributes.js +2 -0
  145. package/dist/esm/v3/semanticInternalAttributes.js.map +1 -1
  146. package/dist/esm/v3/taskContext/index.d.ts +2 -0
  147. package/dist/esm/v3/taskContext/index.js +8 -3
  148. package/dist/esm/v3/taskContext/index.js.map +1 -1
  149. package/dist/esm/v3/taskContext/otelProcessors.d.ts +24 -0
  150. package/dist/esm/v3/taskContext/otelProcessors.js +170 -0
  151. package/dist/esm/v3/taskContext/otelProcessors.js.map +1 -1
  152. package/dist/esm/v3/utils/globals.d.ts +2 -0
  153. package/dist/esm/v3/utils/globals.js.map +1 -1
  154. package/dist/esm/v3/waitpoints/index.d.ts +8 -0
  155. package/dist/esm/v3/waitpoints/index.js +22 -0
  156. package/dist/esm/v3/waitpoints/index.js.map +1 -0
  157. package/dist/esm/v3/workers/index.d.ts +2 -1
  158. package/dist/esm/v3/workers/index.js +2 -1
  159. package/dist/esm/v3/workers/index.js.map +1 -1
  160. package/dist/esm/v3/workers/taskExecutor.js +2 -1
  161. package/dist/esm/v3/workers/taskExecutor.js.map +1 -1
  162. package/dist/esm/version.js +1 -1
  163. package/package.json +5 -2
@@ -0,0 +1,299 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StandardInputStreamManager = void 0;
4
+ const types_js_1 = require("./types.js");
5
+ class StandardInputStreamManager {
6
+ apiClient;
7
+ baseUrl;
8
+ debug;
9
+ handlers = new Map();
10
+ onceWaiters = new Map();
11
+ buffer = new Map();
12
+ tails = new Map();
13
+ seqNums = new Map();
14
+ currentRunId = null;
15
+ streamsVersion;
16
+ constructor(apiClient, baseUrl, debug = false) {
17
+ this.apiClient = apiClient;
18
+ this.baseUrl = baseUrl;
19
+ this.debug = debug;
20
+ }
21
+ lastSeqNum(streamId) {
22
+ return this.seqNums.get(streamId);
23
+ }
24
+ setRunId(runId, streamsVersion) {
25
+ this.currentRunId = runId;
26
+ this.streamsVersion = streamsVersion;
27
+ }
28
+ on(streamId, handler) {
29
+ this.#requireV2Streams();
30
+ let handlerSet = this.handlers.get(streamId);
31
+ if (!handlerSet) {
32
+ handlerSet = new Set();
33
+ this.handlers.set(streamId, handlerSet);
34
+ }
35
+ handlerSet.add(handler);
36
+ // Lazily connect a tail for this stream
37
+ this.#ensureStreamTailConnected(streamId);
38
+ // Flush any buffered data for this stream
39
+ const buffered = this.buffer.get(streamId);
40
+ if (buffered && buffered.length > 0) {
41
+ for (const data of buffered) {
42
+ this.#invokeHandler(handler, data);
43
+ }
44
+ this.buffer.delete(streamId);
45
+ }
46
+ return {
47
+ off: () => {
48
+ handlerSet?.delete(handler);
49
+ if (handlerSet?.size === 0) {
50
+ this.handlers.delete(streamId);
51
+ }
52
+ },
53
+ };
54
+ }
55
+ once(streamId, options) {
56
+ this.#requireV2Streams();
57
+ // Lazily connect a tail for this stream
58
+ this.#ensureStreamTailConnected(streamId);
59
+ // Check buffer first
60
+ const buffered = this.buffer.get(streamId);
61
+ if (buffered && buffered.length > 0) {
62
+ const data = buffered.shift();
63
+ if (buffered.length === 0) {
64
+ this.buffer.delete(streamId);
65
+ }
66
+ return new types_js_1.InputStreamOncePromise((resolve) => {
67
+ resolve({ ok: true, output: data });
68
+ });
69
+ }
70
+ return new types_js_1.InputStreamOncePromise((resolve, reject) => {
71
+ const waiter = { resolve, reject };
72
+ // Handle abort signal
73
+ if (options?.signal) {
74
+ if (options.signal.aborted) {
75
+ reject(new Error("Aborted"));
76
+ return;
77
+ }
78
+ options.signal.addEventListener("abort", () => {
79
+ if (waiter.timeoutHandle) {
80
+ clearTimeout(waiter.timeoutHandle);
81
+ }
82
+ this.#removeOnceWaiter(streamId, waiter);
83
+ reject(new Error("Aborted"));
84
+ }, { once: true });
85
+ }
86
+ // Handle timeout — resolve with error result instead of rejecting
87
+ if (options?.timeoutMs) {
88
+ waiter.timeoutHandle = setTimeout(() => {
89
+ this.#removeOnceWaiter(streamId, waiter);
90
+ resolve({
91
+ ok: false,
92
+ error: new types_js_1.InputStreamTimeoutError(streamId, options.timeoutMs),
93
+ });
94
+ }, options.timeoutMs);
95
+ }
96
+ let waiters = this.onceWaiters.get(streamId);
97
+ if (!waiters) {
98
+ waiters = [];
99
+ this.onceWaiters.set(streamId, waiters);
100
+ }
101
+ waiters.push(waiter);
102
+ });
103
+ }
104
+ peek(streamId) {
105
+ const buffered = this.buffer.get(streamId);
106
+ if (buffered && buffered.length > 0) {
107
+ return buffered[0];
108
+ }
109
+ return undefined;
110
+ }
111
+ clearHandlers() {
112
+ this.handlers.clear();
113
+ // Abort tails that no longer have any once waiters either
114
+ for (const [streamId, tail] of this.tails) {
115
+ const hasWaiters = this.onceWaiters.has(streamId) && this.onceWaiters.get(streamId).length > 0;
116
+ if (!hasWaiters) {
117
+ tail.abortController.abort();
118
+ this.tails.delete(streamId);
119
+ }
120
+ }
121
+ }
122
+ connectTail(runId, _fromSeq) {
123
+ // No-op: tails are now created per-stream lazily
124
+ }
125
+ disconnect() {
126
+ for (const [, tail] of this.tails) {
127
+ tail.abortController.abort();
128
+ }
129
+ this.tails.clear();
130
+ }
131
+ reset() {
132
+ this.disconnect();
133
+ this.currentRunId = null;
134
+ this.streamsVersion = undefined;
135
+ this.seqNums.clear();
136
+ this.handlers.clear();
137
+ // Reject all pending once waiters
138
+ for (const [, waiters] of this.onceWaiters) {
139
+ for (const waiter of waiters) {
140
+ if (waiter.timeoutHandle) {
141
+ clearTimeout(waiter.timeoutHandle);
142
+ }
143
+ waiter.reject(new Error("Input stream manager reset"));
144
+ }
145
+ }
146
+ this.onceWaiters.clear();
147
+ this.buffer.clear();
148
+ }
149
+ #requireV2Streams() {
150
+ if (this.currentRunId && this.streamsVersion !== "v2") {
151
+ throw new Error("Input streams require v2 realtime streams. Enable them with: { future: { v2RealtimeStreams: true } }");
152
+ }
153
+ }
154
+ #ensureStreamTailConnected(streamId) {
155
+ if (!this.tails.has(streamId) && this.currentRunId) {
156
+ const abortController = new AbortController();
157
+ const promise = this.#runTail(this.currentRunId, streamId, abortController.signal)
158
+ .catch((error) => {
159
+ if (this.debug) {
160
+ console.error(`[InputStreamManager] Tail error for "${streamId}":`, error);
161
+ }
162
+ })
163
+ .finally(() => {
164
+ this.tails.delete(streamId);
165
+ // Auto-reconnect if there are still active handlers or waiters
166
+ const hasHandlers = this.handlers.has(streamId) && this.handlers.get(streamId).size > 0;
167
+ const hasWaiters = this.onceWaiters.has(streamId) && this.onceWaiters.get(streamId).length > 0;
168
+ if (hasHandlers || hasWaiters) {
169
+ this.#ensureStreamTailConnected(streamId);
170
+ }
171
+ });
172
+ this.tails.set(streamId, { abortController, promise });
173
+ }
174
+ }
175
+ async #runTail(runId, streamId, signal) {
176
+ try {
177
+ const lastSeq = this.seqNums.get(streamId);
178
+ const stream = await this.apiClient.fetchStream(runId, `input/${streamId}`, {
179
+ signal,
180
+ baseUrl: this.baseUrl,
181
+ // Max allowed by the SSE endpoint is 600s; the tail will reconnect on close
182
+ timeoutInSeconds: 600,
183
+ // Resume from last seen sequence number to avoid replaying history on reconnect
184
+ lastEventId: lastSeq !== undefined ? String(lastSeq) : undefined,
185
+ onPart: (part) => {
186
+ const seqNum = parseInt(part.id, 10);
187
+ if (Number.isFinite(seqNum)) {
188
+ this.seqNums.set(streamId, seqNum);
189
+ }
190
+ },
191
+ onComplete: () => {
192
+ if (this.debug) {
193
+ console.log(`[InputStreamManager] Tail stream completed for "${streamId}"`);
194
+ }
195
+ },
196
+ onError: (error) => {
197
+ if (this.debug) {
198
+ console.error(`[InputStreamManager] Tail stream error for "${streamId}":`, error);
199
+ }
200
+ },
201
+ });
202
+ for await (const record of stream) {
203
+ if (signal.aborted)
204
+ break;
205
+ // S2 SSE returns record bodies as JSON strings; parse if needed
206
+ let data;
207
+ if (typeof record === "string") {
208
+ try {
209
+ data = JSON.parse(record);
210
+ }
211
+ catch {
212
+ data = record;
213
+ }
214
+ }
215
+ else {
216
+ data = record;
217
+ }
218
+ this.#dispatch(streamId, data);
219
+ }
220
+ }
221
+ catch (error) {
222
+ // AbortError is expected when disconnecting
223
+ if (error instanceof Error && error.name === "AbortError") {
224
+ return;
225
+ }
226
+ throw error;
227
+ }
228
+ }
229
+ #dispatch(streamId, data) {
230
+ // First try to resolve a once waiter
231
+ const waiters = this.onceWaiters.get(streamId);
232
+ if (waiters && waiters.length > 0) {
233
+ const waiter = waiters.shift();
234
+ if (waiters.length === 0) {
235
+ this.onceWaiters.delete(streamId);
236
+ }
237
+ if (waiter.timeoutHandle) {
238
+ clearTimeout(waiter.timeoutHandle);
239
+ }
240
+ waiter.resolve({ ok: true, output: data });
241
+ // Also invoke persistent handlers
242
+ this.#invokeHandlers(streamId, data);
243
+ return;
244
+ }
245
+ // Invoke persistent handlers
246
+ const handlers = this.handlers.get(streamId);
247
+ if (handlers && handlers.size > 0) {
248
+ this.#invokeHandlers(streamId, data);
249
+ return;
250
+ }
251
+ // No handlers, buffer the data
252
+ let buffered = this.buffer.get(streamId);
253
+ if (!buffered) {
254
+ buffered = [];
255
+ this.buffer.set(streamId, buffered);
256
+ }
257
+ buffered.push(data);
258
+ }
259
+ #invokeHandlers(streamId, data) {
260
+ const handlers = this.handlers.get(streamId);
261
+ if (!handlers)
262
+ return;
263
+ for (const handler of handlers) {
264
+ this.#invokeHandler(handler, data);
265
+ }
266
+ }
267
+ #invokeHandler(handler, data) {
268
+ try {
269
+ const result = handler(data);
270
+ // If the handler returns a promise, catch errors silently
271
+ if (result && typeof result === "object" && "catch" in result) {
272
+ result.catch((error) => {
273
+ if (this.debug) {
274
+ console.error("[InputStreamManager] Handler error:", error);
275
+ }
276
+ });
277
+ }
278
+ }
279
+ catch (error) {
280
+ if (this.debug) {
281
+ console.error("[InputStreamManager] Handler error:", error);
282
+ }
283
+ }
284
+ }
285
+ #removeOnceWaiter(streamId, waiter) {
286
+ const waiters = this.onceWaiters.get(streamId);
287
+ if (!waiters)
288
+ return;
289
+ const index = waiters.indexOf(waiter);
290
+ if (index !== -1) {
291
+ waiters.splice(index, 1);
292
+ }
293
+ if (waiters.length === 0) {
294
+ this.onceWaiters.delete(streamId);
295
+ }
296
+ }
297
+ }
298
+ exports.StandardInputStreamManager = StandardInputStreamManager;
299
+ //# sourceMappingURL=manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../../src/v3/inputStreams/manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { InputStreamManager, InputStreamOncePromise } from "./types.js";
2
+ import { InputStreamOnceOptions } from "../realtimeStreams/types.js";
3
+ export declare class NoopInputStreamManager implements InputStreamManager {
4
+ setRunId(_runId: string, _streamsVersion?: string): void;
5
+ on(_streamId: string, _handler: (data: unknown) => void | Promise<void>): {
6
+ off: () => void;
7
+ };
8
+ once(_streamId: string, _options?: InputStreamOnceOptions): InputStreamOncePromise<unknown>;
9
+ peek(_streamId: string): unknown | undefined;
10
+ lastSeqNum(_streamId: string): number | undefined;
11
+ clearHandlers(): void;
12
+ reset(): void;
13
+ disconnect(): void;
14
+ connectTail(_runId: string, _fromSeq?: number): void;
15
+ }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NoopInputStreamManager = void 0;
4
+ const types_js_1 = require("./types.js");
5
+ class NoopInputStreamManager {
6
+ setRunId(_runId, _streamsVersion) { }
7
+ on(_streamId, _handler) {
8
+ return { off: () => { } };
9
+ }
10
+ once(_streamId, _options) {
11
+ return new types_js_1.InputStreamOncePromise(() => {
12
+ // Never resolves in noop mode
13
+ });
14
+ }
15
+ peek(_streamId) {
16
+ return undefined;
17
+ }
18
+ lastSeqNum(_streamId) {
19
+ return undefined;
20
+ }
21
+ clearHandlers() { }
22
+ reset() { }
23
+ disconnect() { }
24
+ connectTail(_runId, _fromSeq) { }
25
+ }
26
+ exports.NoopInputStreamManager = NoopInputStreamManager;
27
+ //# sourceMappingURL=noopManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"noopManager.js","sourceRoot":"","sources":["../../../../src/v3/inputStreams/noopManager.ts"],"names":[],"mappings":";;;AAAA,yCAAwE;AAGxE,MAAa,sBAAsB;IACjC,QAAQ,CAAC,MAAc,EAAE,eAAwB,IAAS,CAAC;IAE3D,EAAE,CAAC,SAAiB,EAAE,QAAiD;QACrE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAC;IAC3B,CAAC;IAED,IAAI,CAAC,SAAiB,EAAE,QAAiC;QACvD,OAAO,IAAI,iCAAsB,CAAC,GAAG,EAAE;YACrC,8BAA8B;QAChC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,SAAiB;QACpB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,UAAU,CAAC,SAAiB;QAC1B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,aAAa,KAAU,CAAC;IACxB,KAAK,KAAU,CAAC;IAChB,UAAU,KAAU,CAAC;IACrB,WAAW,CAAC,MAAc,EAAE,QAAiB,IAAS,CAAC;CACxD;AAzBD,wDAyBC"}
@@ -0,0 +1,65 @@
1
+ import { InputStreamOnceOptions } from "../realtimeStreams/types.js";
2
+ export declare class InputStreamTimeoutError extends Error {
3
+ readonly streamId: string;
4
+ readonly timeoutMs: number;
5
+ constructor(streamId: string, timeoutMs: number);
6
+ }
7
+ export type InputStreamOnceResult<TData> = {
8
+ ok: true;
9
+ output: TData;
10
+ } | {
11
+ ok: false;
12
+ error: InputStreamTimeoutError;
13
+ };
14
+ export declare class InputStreamOncePromise<TData> extends Promise<InputStreamOnceResult<TData>> {
15
+ constructor(executor: (resolve: (value: InputStreamOnceResult<TData> | PromiseLike<InputStreamOnceResult<TData>>) => void, reject: (reason?: any) => void) => void);
16
+ unwrap(): Promise<TData>;
17
+ }
18
+ export interface InputStreamManager {
19
+ /**
20
+ * Set the current run ID and streams version. The tail connection will be
21
+ * established lazily when `on()` or `once()` is first called, but only
22
+ * for v2 (S2-backed) realtime streams.
23
+ */
24
+ setRunId(runId: string, streamsVersion?: string): void;
25
+ /**
26
+ * Register a handler that fires every time data arrives on the given input stream.
27
+ * Handlers are automatically cleaned up when the task run completes.
28
+ * Returns `{ off }` for early unsubscription if needed.
29
+ */
30
+ on(streamId: string, handler: (data: unknown) => void | Promise<void>): {
31
+ off: () => void;
32
+ };
33
+ /**
34
+ * Wait for the next piece of data on the given input stream.
35
+ * Returns a result object `{ ok, output }` or `{ ok, error }`.
36
+ * Chain `.unwrap()` to get the data directly or throw on timeout.
37
+ */
38
+ once(streamId: string, options?: InputStreamOnceOptions): InputStreamOncePromise<unknown>;
39
+ /**
40
+ * Non-blocking peek at the most recent data on the given input stream.
41
+ */
42
+ peek(streamId: string): unknown | undefined;
43
+ /**
44
+ * The last S2 sequence number seen for the given input stream.
45
+ * Used by `.wait()` to tell the server where to check for existing data.
46
+ */
47
+ lastSeqNum(streamId: string): number | undefined;
48
+ /**
49
+ * Clear all persistent `.on()` handlers and abort tails that have no remaining once waiters.
50
+ * Called automatically when a task run completes.
51
+ */
52
+ clearHandlers(): void;
53
+ /**
54
+ * Reset state between task executions.
55
+ */
56
+ reset(): void;
57
+ /**
58
+ * Disconnect any active tails / connections.
59
+ */
60
+ disconnect(): void;
61
+ /**
62
+ * Connect a tail to receive input stream records for the given run.
63
+ */
64
+ connectTail(runId: string, fromSeq?: number): void;
65
+ }
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InputStreamOncePromise = exports.InputStreamTimeoutError = void 0;
4
+ class InputStreamTimeoutError extends Error {
5
+ streamId;
6
+ timeoutMs;
7
+ constructor(streamId, timeoutMs) {
8
+ super(`Timeout waiting for input stream "${streamId}" after ${timeoutMs}ms`);
9
+ this.streamId = streamId;
10
+ this.timeoutMs = timeoutMs;
11
+ this.name = "InputStreamTimeoutError";
12
+ }
13
+ }
14
+ exports.InputStreamTimeoutError = InputStreamTimeoutError;
15
+ class InputStreamOncePromise extends Promise {
16
+ constructor(executor) {
17
+ super(executor);
18
+ }
19
+ unwrap() {
20
+ return this.then((result) => {
21
+ if (result.ok) {
22
+ return result.output;
23
+ }
24
+ else {
25
+ throw result.error;
26
+ }
27
+ });
28
+ }
29
+ }
30
+ exports.InputStreamOncePromise = InputStreamOncePromise;
31
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/v3/inputStreams/types.ts"],"names":[],"mappings":";;;AAEA,MAAa,uBAAwB,SAAQ,KAAK;IAE9B;IACA;IAFlB,YACkB,QAAgB,EAChB,SAAiB;QAEjC,KAAK,CAAC,qCAAqC,QAAQ,WAAW,SAAS,IAAI,CAAC,CAAC;QAH7D,aAAQ,GAAR,QAAQ,CAAQ;QAChB,cAAS,GAAT,SAAS,CAAQ;QAGjC,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;CACF;AARD,0DAQC;AAMD,MAAa,sBAA8B,SAAQ,OAAqC;IACtF,YACE,QAKS;QAET,KAAK,CAAC,QAAQ,CAAC,CAAC;IAClB,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YAC1B,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;gBACd,OAAO,MAAM,CAAC,MAAM,CAAC;YACvB,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,CAAC,KAAK,CAAC;YACrB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AArBD,wDAqBC"}
@@ -0,0 +1,2 @@
1
+ import { type MeterProvider } from "@opentelemetry/sdk-metrics";
2
+ export declare function startDiskIoMetrics(meterProvider: MeterProvider): void;
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.startDiskIoMetrics = startDiskIoMetrics;
27
+ const fs = __importStar(require("node:fs"));
28
+ const fsPromises = __importStar(require("node:fs/promises"));
29
+ const SECTOR_SIZE = 512;
30
+ const FILTERED_DEVICE_PREFIXES = ["loop", "ram", "dm-"];
31
+ function parseProcDiskstats(content) {
32
+ const entries = [];
33
+ for (const line of content.split("\n")) {
34
+ const trimmed = line.trim();
35
+ if (!trimmed)
36
+ continue;
37
+ const fields = trimmed.split(/\s+/);
38
+ if (fields.length < 14)
39
+ continue;
40
+ const device = fields[2];
41
+ if (FILTERED_DEVICE_PREFIXES.some((prefix) => device.startsWith(prefix))) {
42
+ continue;
43
+ }
44
+ entries.push({
45
+ device,
46
+ readsCompleted: parseInt(fields[3], 10),
47
+ sectorsRead: parseInt(fields[5], 10),
48
+ writesCompleted: parseInt(fields[7], 10),
49
+ sectorsWritten: parseInt(fields[9], 10),
50
+ });
51
+ }
52
+ return entries;
53
+ }
54
+ function startDiskIoMetrics(meterProvider) {
55
+ try {
56
+ fs.accessSync("/proc/diskstats", fs.constants.R_OK);
57
+ }
58
+ catch {
59
+ return;
60
+ }
61
+ const meter = meterProvider.getMeter("system-disk", "1.0.0");
62
+ const ioCounter = meter.createObservableCounter("system.disk.io", {
63
+ description: "Disk I/O bytes read and written per device",
64
+ unit: "By",
65
+ });
66
+ const opsCounter = meter.createObservableCounter("system.disk.operations", {
67
+ description: "Disk read/write operation counts per device",
68
+ unit: "{operation}",
69
+ });
70
+ meter.addBatchObservableCallback(async (obs) => {
71
+ try {
72
+ const content = await fsPromises.readFile("/proc/diskstats", "utf-8");
73
+ const stats = parseProcDiskstats(content);
74
+ for (const entry of stats) {
75
+ const readAttrs = {
76
+ "system.device": entry.device,
77
+ "disk.io.direction": "read",
78
+ };
79
+ const writeAttrs = {
80
+ "system.device": entry.device,
81
+ "disk.io.direction": "write",
82
+ };
83
+ obs.observe(ioCounter, entry.sectorsRead * SECTOR_SIZE, readAttrs);
84
+ obs.observe(ioCounter, entry.sectorsWritten * SECTOR_SIZE, writeAttrs);
85
+ obs.observe(opsCounter, entry.readsCompleted, readAttrs);
86
+ obs.observe(opsCounter, entry.writesCompleted, writeAttrs);
87
+ }
88
+ }
89
+ catch {
90
+ // Skip entire cycle on failure
91
+ }
92
+ }, [ioCounter, opsCounter]);
93
+ }
94
+ //# sourceMappingURL=diskIoMetrics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diskIoMetrics.js","sourceRoot":"","sources":["../../../../src/v3/otel/diskIoMetrics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { type MeterProvider } from "@opentelemetry/sdk-metrics";
2
+ export declare function startFilesystemMetrics(meterProvider: MeterProvider): void;