@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
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/v3/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAE1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,cAAc,UAAU,CAAC;AACzB,cAAc,sBAAsB,CAAC;AACrC,cAAc,kCAAkC,CAAC;AACjD,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,0BAA0B,EAC1B,yBAAyB,EACzB,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EACL,iBAAiB,EACjB,mCAAmC,EACnC,mBAAmB,EACnB,aAAa,GACd,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EACL,uBAAuB,EACvB,gBAAgB,EAChB,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,EACL,yBAAyB,EACzB,yBAAyB,EACzB,sBAAsB,EACtB,4BAA4B,EAC5B,wBAAwB,EACxB,WAAW,EACX,iBAAiB,EACjB,WAAW,GAEZ,MAAM,4BAA4B,CAAC;AAEpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,aAAa,CAAC;AAC5B,OAAO,EACL,gBAAgB,EAGhB,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/v3/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAE1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,cAAc,UAAU,CAAC;AACzB,cAAc,sBAAsB,CAAC;AACrC,cAAc,kCAAkC,CAAC;AACjD,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC;AAC9B,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,0BAA0B,EAC1B,yBAAyB,EACzB,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,sBAAsB,CAAC;AAI9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EACL,iBAAiB,EACjB,mCAAmC,EACnC,mBAAmB,EACnB,aAAa,GACd,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAChF,OAAO,EACL,uBAAuB,EACvB,gBAAgB,EAChB,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,EACL,yBAAyB,EACzB,yBAAyB,EACzB,sBAAsB,EACtB,4BAA4B,EAC5B,wBAAwB,EACxB,WAAW,EACX,iBAAiB,EACjB,WAAW,GAEZ,MAAM,4BAA4B,CAAC;AAEpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,aAAa,CAAC;AAC5B,OAAO,EACL,gBAAgB,EAGhB,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { InputStreamsAPI } from "./inputStreams/index.js";
2
+ export declare const inputStreams: InputStreamsAPI;
3
+ export * from "./inputStreams/types.js";
@@ -0,0 +1,6 @@
1
+ // Split module-level variable definition into separate files to allow
2
+ // tree-shaking on each api instance.
3
+ import { InputStreamsAPI } from "./inputStreams/index.js";
4
+ export const inputStreams = InputStreamsAPI.getInstance();
5
+ export * from "./inputStreams/types.js";
6
+ //# sourceMappingURL=input-streams-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-streams-api.js","sourceRoot":"","sources":["../../../src/v3/input-streams-api.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,qCAAqC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,MAAM,CAAC,MAAM,YAAY,GAAG,eAAe,CAAC,WAAW,EAAE,CAAC;AAE1D,cAAc,yBAAyB,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { InputStreamManager, InputStreamOncePromise } from "./types.js";
2
+ import { InputStreamOnceOptions } from "../realtimeStreams/types.js";
3
+ export declare class InputStreamsAPI implements InputStreamManager {
4
+ #private;
5
+ private static _instance?;
6
+ private constructor();
7
+ static getInstance(): InputStreamsAPI;
8
+ setGlobalManager(manager: InputStreamManager): boolean;
9
+ setRunId(runId: string, streamsVersion?: string): void;
10
+ on(streamId: string, handler: (data: unknown) => void | Promise<void>): {
11
+ off: () => void;
12
+ };
13
+ once(streamId: string, options?: InputStreamOnceOptions): InputStreamOncePromise<unknown>;
14
+ peek(streamId: string): unknown | undefined;
15
+ lastSeqNum(streamId: string): number | undefined;
16
+ clearHandlers(): void;
17
+ reset(): void;
18
+ disconnect(): void;
19
+ connectTail(runId: string, fromSeq?: number): void;
20
+ }
@@ -0,0 +1,48 @@
1
+ import { getGlobal, registerGlobal } from "../utils/globals.js";
2
+ import { NoopInputStreamManager } from "./noopManager.js";
3
+ const API_NAME = "input-streams";
4
+ const NOOP_MANAGER = new NoopInputStreamManager();
5
+ export class InputStreamsAPI {
6
+ static _instance;
7
+ constructor() { }
8
+ static getInstance() {
9
+ if (!this._instance) {
10
+ this._instance = new InputStreamsAPI();
11
+ }
12
+ return this._instance;
13
+ }
14
+ setGlobalManager(manager) {
15
+ return registerGlobal(API_NAME, manager);
16
+ }
17
+ #getManager() {
18
+ return getGlobal(API_NAME) ?? NOOP_MANAGER;
19
+ }
20
+ setRunId(runId, streamsVersion) {
21
+ this.#getManager().setRunId(runId, streamsVersion);
22
+ }
23
+ on(streamId, handler) {
24
+ return this.#getManager().on(streamId, handler);
25
+ }
26
+ once(streamId, options) {
27
+ return this.#getManager().once(streamId, options);
28
+ }
29
+ peek(streamId) {
30
+ return this.#getManager().peek(streamId);
31
+ }
32
+ lastSeqNum(streamId) {
33
+ return this.#getManager().lastSeqNum(streamId);
34
+ }
35
+ clearHandlers() {
36
+ this.#getManager().clearHandlers();
37
+ }
38
+ reset() {
39
+ this.#getManager().reset();
40
+ }
41
+ disconnect() {
42
+ this.#getManager().disconnect();
43
+ }
44
+ connectTail(runId, fromSeq) {
45
+ this.#getManager().connectTail(runId, fromSeq);
46
+ }
47
+ }
48
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/v3/inputStreams/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAI1D,MAAM,QAAQ,GAAG,eAAe,CAAC;AAEjC,MAAM,YAAY,GAAG,IAAI,sBAAsB,EAAE,CAAC;AAElD,MAAM,OAAO,eAAe;IAClB,MAAM,CAAC,SAAS,CAAmB;IAE3C,gBAAuB,CAAC;IAEjB,MAAM,CAAC,WAAW;QACvB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,gBAAgB,CAAC,OAA2B;QAC1C,OAAO,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,WAAW;QACT,OAAO,SAAS,CAAC,QAAQ,CAAC,IAAI,YAAY,CAAC;IAC7C,CAAC;IAEM,QAAQ,CAAC,KAAa,EAAE,cAAuB;QACpD,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;IACrD,CAAC;IAEM,EAAE,CACP,QAAgB,EAChB,OAAgD;QAEhD,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAEM,IAAI,CAAC,QAAgB,EAAE,OAAgC;QAC5D,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACpD,CAAC;IAEM,IAAI,CAAC,QAAgB;QAC1B,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAEM,UAAU,CAAC,QAAgB;QAChC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACjD,CAAC;IAEM,aAAa;QAClB,IAAI,CAAC,WAAW,EAAE,CAAC,aAAa,EAAE,CAAC;IACrC,CAAC;IAEM,KAAK;QACV,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;IAEM,UAAU;QACf,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,EAAE,CAAC;IAClC,CAAC;IAEM,WAAW,CAAC,KAAa,EAAE,OAAgB;QAChD,IAAI,CAAC,WAAW,EAAE,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACjD,CAAC;CACF"}
@@ -0,0 +1,30 @@
1
+ import { ApiClient } from "../apiClient/index.js";
2
+ import { InputStreamManager, InputStreamOncePromise } from "./types.js";
3
+ import { InputStreamOnceOptions } from "../realtimeStreams/types.js";
4
+ type InputStreamHandler = (data: unknown) => void | Promise<void>;
5
+ export declare class StandardInputStreamManager implements InputStreamManager {
6
+ #private;
7
+ private apiClient;
8
+ private baseUrl;
9
+ private debug;
10
+ private handlers;
11
+ private onceWaiters;
12
+ private buffer;
13
+ private tails;
14
+ private seqNums;
15
+ private currentRunId;
16
+ private streamsVersion;
17
+ constructor(apiClient: ApiClient, baseUrl: string, debug?: boolean);
18
+ lastSeqNum(streamId: string): number | undefined;
19
+ setRunId(runId: string, streamsVersion?: string): void;
20
+ on(streamId: string, handler: InputStreamHandler): {
21
+ off: () => void;
22
+ };
23
+ once(streamId: string, options?: InputStreamOnceOptions): InputStreamOncePromise<unknown>;
24
+ peek(streamId: string): unknown | undefined;
25
+ clearHandlers(): void;
26
+ connectTail(runId: string, _fromSeq?: number): void;
27
+ disconnect(): void;
28
+ reset(): void;
29
+ }
30
+ export {};
@@ -0,0 +1,295 @@
1
+ import { InputStreamOncePromise, InputStreamTimeoutError, } from "./types.js";
2
+ export class StandardInputStreamManager {
3
+ apiClient;
4
+ baseUrl;
5
+ debug;
6
+ handlers = new Map();
7
+ onceWaiters = new Map();
8
+ buffer = new Map();
9
+ tails = new Map();
10
+ seqNums = new Map();
11
+ currentRunId = null;
12
+ streamsVersion;
13
+ constructor(apiClient, baseUrl, debug = false) {
14
+ this.apiClient = apiClient;
15
+ this.baseUrl = baseUrl;
16
+ this.debug = debug;
17
+ }
18
+ lastSeqNum(streamId) {
19
+ return this.seqNums.get(streamId);
20
+ }
21
+ setRunId(runId, streamsVersion) {
22
+ this.currentRunId = runId;
23
+ this.streamsVersion = streamsVersion;
24
+ }
25
+ on(streamId, handler) {
26
+ this.#requireV2Streams();
27
+ let handlerSet = this.handlers.get(streamId);
28
+ if (!handlerSet) {
29
+ handlerSet = new Set();
30
+ this.handlers.set(streamId, handlerSet);
31
+ }
32
+ handlerSet.add(handler);
33
+ // Lazily connect a tail for this stream
34
+ this.#ensureStreamTailConnected(streamId);
35
+ // Flush any buffered data for this stream
36
+ const buffered = this.buffer.get(streamId);
37
+ if (buffered && buffered.length > 0) {
38
+ for (const data of buffered) {
39
+ this.#invokeHandler(handler, data);
40
+ }
41
+ this.buffer.delete(streamId);
42
+ }
43
+ return {
44
+ off: () => {
45
+ handlerSet?.delete(handler);
46
+ if (handlerSet?.size === 0) {
47
+ this.handlers.delete(streamId);
48
+ }
49
+ },
50
+ };
51
+ }
52
+ once(streamId, options) {
53
+ this.#requireV2Streams();
54
+ // Lazily connect a tail for this stream
55
+ this.#ensureStreamTailConnected(streamId);
56
+ // Check buffer first
57
+ const buffered = this.buffer.get(streamId);
58
+ if (buffered && buffered.length > 0) {
59
+ const data = buffered.shift();
60
+ if (buffered.length === 0) {
61
+ this.buffer.delete(streamId);
62
+ }
63
+ return new InputStreamOncePromise((resolve) => {
64
+ resolve({ ok: true, output: data });
65
+ });
66
+ }
67
+ return new InputStreamOncePromise((resolve, reject) => {
68
+ const waiter = { resolve, reject };
69
+ // Handle abort signal
70
+ if (options?.signal) {
71
+ if (options.signal.aborted) {
72
+ reject(new Error("Aborted"));
73
+ return;
74
+ }
75
+ options.signal.addEventListener("abort", () => {
76
+ if (waiter.timeoutHandle) {
77
+ clearTimeout(waiter.timeoutHandle);
78
+ }
79
+ this.#removeOnceWaiter(streamId, waiter);
80
+ reject(new Error("Aborted"));
81
+ }, { once: true });
82
+ }
83
+ // Handle timeout — resolve with error result instead of rejecting
84
+ if (options?.timeoutMs) {
85
+ waiter.timeoutHandle = setTimeout(() => {
86
+ this.#removeOnceWaiter(streamId, waiter);
87
+ resolve({
88
+ ok: false,
89
+ error: new InputStreamTimeoutError(streamId, options.timeoutMs),
90
+ });
91
+ }, options.timeoutMs);
92
+ }
93
+ let waiters = this.onceWaiters.get(streamId);
94
+ if (!waiters) {
95
+ waiters = [];
96
+ this.onceWaiters.set(streamId, waiters);
97
+ }
98
+ waiters.push(waiter);
99
+ });
100
+ }
101
+ peek(streamId) {
102
+ const buffered = this.buffer.get(streamId);
103
+ if (buffered && buffered.length > 0) {
104
+ return buffered[0];
105
+ }
106
+ return undefined;
107
+ }
108
+ clearHandlers() {
109
+ this.handlers.clear();
110
+ // Abort tails that no longer have any once waiters either
111
+ for (const [streamId, tail] of this.tails) {
112
+ const hasWaiters = this.onceWaiters.has(streamId) && this.onceWaiters.get(streamId).length > 0;
113
+ if (!hasWaiters) {
114
+ tail.abortController.abort();
115
+ this.tails.delete(streamId);
116
+ }
117
+ }
118
+ }
119
+ connectTail(runId, _fromSeq) {
120
+ // No-op: tails are now created per-stream lazily
121
+ }
122
+ disconnect() {
123
+ for (const [, tail] of this.tails) {
124
+ tail.abortController.abort();
125
+ }
126
+ this.tails.clear();
127
+ }
128
+ reset() {
129
+ this.disconnect();
130
+ this.currentRunId = null;
131
+ this.streamsVersion = undefined;
132
+ this.seqNums.clear();
133
+ this.handlers.clear();
134
+ // Reject all pending once waiters
135
+ for (const [, waiters] of this.onceWaiters) {
136
+ for (const waiter of waiters) {
137
+ if (waiter.timeoutHandle) {
138
+ clearTimeout(waiter.timeoutHandle);
139
+ }
140
+ waiter.reject(new Error("Input stream manager reset"));
141
+ }
142
+ }
143
+ this.onceWaiters.clear();
144
+ this.buffer.clear();
145
+ }
146
+ #requireV2Streams() {
147
+ if (this.currentRunId && this.streamsVersion !== "v2") {
148
+ throw new Error("Input streams require v2 realtime streams. Enable them with: { future: { v2RealtimeStreams: true } }");
149
+ }
150
+ }
151
+ #ensureStreamTailConnected(streamId) {
152
+ if (!this.tails.has(streamId) && this.currentRunId) {
153
+ const abortController = new AbortController();
154
+ const promise = this.#runTail(this.currentRunId, streamId, abortController.signal)
155
+ .catch((error) => {
156
+ if (this.debug) {
157
+ console.error(`[InputStreamManager] Tail error for "${streamId}":`, error);
158
+ }
159
+ })
160
+ .finally(() => {
161
+ this.tails.delete(streamId);
162
+ // Auto-reconnect if there are still active handlers or waiters
163
+ const hasHandlers = this.handlers.has(streamId) && this.handlers.get(streamId).size > 0;
164
+ const hasWaiters = this.onceWaiters.has(streamId) && this.onceWaiters.get(streamId).length > 0;
165
+ if (hasHandlers || hasWaiters) {
166
+ this.#ensureStreamTailConnected(streamId);
167
+ }
168
+ });
169
+ this.tails.set(streamId, { abortController, promise });
170
+ }
171
+ }
172
+ async #runTail(runId, streamId, signal) {
173
+ try {
174
+ const lastSeq = this.seqNums.get(streamId);
175
+ const stream = await this.apiClient.fetchStream(runId, `input/${streamId}`, {
176
+ signal,
177
+ baseUrl: this.baseUrl,
178
+ // Max allowed by the SSE endpoint is 600s; the tail will reconnect on close
179
+ timeoutInSeconds: 600,
180
+ // Resume from last seen sequence number to avoid replaying history on reconnect
181
+ lastEventId: lastSeq !== undefined ? String(lastSeq) : undefined,
182
+ onPart: (part) => {
183
+ const seqNum = parseInt(part.id, 10);
184
+ if (Number.isFinite(seqNum)) {
185
+ this.seqNums.set(streamId, seqNum);
186
+ }
187
+ },
188
+ onComplete: () => {
189
+ if (this.debug) {
190
+ console.log(`[InputStreamManager] Tail stream completed for "${streamId}"`);
191
+ }
192
+ },
193
+ onError: (error) => {
194
+ if (this.debug) {
195
+ console.error(`[InputStreamManager] Tail stream error for "${streamId}":`, error);
196
+ }
197
+ },
198
+ });
199
+ for await (const record of stream) {
200
+ if (signal.aborted)
201
+ break;
202
+ // S2 SSE returns record bodies as JSON strings; parse if needed
203
+ let data;
204
+ if (typeof record === "string") {
205
+ try {
206
+ data = JSON.parse(record);
207
+ }
208
+ catch {
209
+ data = record;
210
+ }
211
+ }
212
+ else {
213
+ data = record;
214
+ }
215
+ this.#dispatch(streamId, data);
216
+ }
217
+ }
218
+ catch (error) {
219
+ // AbortError is expected when disconnecting
220
+ if (error instanceof Error && error.name === "AbortError") {
221
+ return;
222
+ }
223
+ throw error;
224
+ }
225
+ }
226
+ #dispatch(streamId, data) {
227
+ // First try to resolve a once waiter
228
+ const waiters = this.onceWaiters.get(streamId);
229
+ if (waiters && waiters.length > 0) {
230
+ const waiter = waiters.shift();
231
+ if (waiters.length === 0) {
232
+ this.onceWaiters.delete(streamId);
233
+ }
234
+ if (waiter.timeoutHandle) {
235
+ clearTimeout(waiter.timeoutHandle);
236
+ }
237
+ waiter.resolve({ ok: true, output: data });
238
+ // Also invoke persistent handlers
239
+ this.#invokeHandlers(streamId, data);
240
+ return;
241
+ }
242
+ // Invoke persistent handlers
243
+ const handlers = this.handlers.get(streamId);
244
+ if (handlers && handlers.size > 0) {
245
+ this.#invokeHandlers(streamId, data);
246
+ return;
247
+ }
248
+ // No handlers, buffer the data
249
+ let buffered = this.buffer.get(streamId);
250
+ if (!buffered) {
251
+ buffered = [];
252
+ this.buffer.set(streamId, buffered);
253
+ }
254
+ buffered.push(data);
255
+ }
256
+ #invokeHandlers(streamId, data) {
257
+ const handlers = this.handlers.get(streamId);
258
+ if (!handlers)
259
+ return;
260
+ for (const handler of handlers) {
261
+ this.#invokeHandler(handler, data);
262
+ }
263
+ }
264
+ #invokeHandler(handler, data) {
265
+ try {
266
+ const result = handler(data);
267
+ // If the handler returns a promise, catch errors silently
268
+ if (result && typeof result === "object" && "catch" in result) {
269
+ result.catch((error) => {
270
+ if (this.debug) {
271
+ console.error("[InputStreamManager] Handler error:", error);
272
+ }
273
+ });
274
+ }
275
+ }
276
+ catch (error) {
277
+ if (this.debug) {
278
+ console.error("[InputStreamManager] Handler error:", error);
279
+ }
280
+ }
281
+ }
282
+ #removeOnceWaiter(streamId, waiter) {
283
+ const waiters = this.onceWaiters.get(streamId);
284
+ if (!waiters)
285
+ return;
286
+ const index = waiters.indexOf(waiter);
287
+ if (index !== -1) {
288
+ waiters.splice(index, 1);
289
+ }
290
+ if (waiters.length === 0) {
291
+ this.onceWaiters.delete(streamId);
292
+ }
293
+ }
294
+ }
295
+ //# 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,23 @@
1
+ import { InputStreamOncePromise } from "./types.js";
2
+ export class NoopInputStreamManager {
3
+ setRunId(_runId, _streamsVersion) { }
4
+ on(_streamId, _handler) {
5
+ return { off: () => { } };
6
+ }
7
+ once(_streamId, _options) {
8
+ return new InputStreamOncePromise(() => {
9
+ // Never resolves in noop mode
10
+ });
11
+ }
12
+ peek(_streamId) {
13
+ return undefined;
14
+ }
15
+ lastSeqNum(_streamId) {
16
+ return undefined;
17
+ }
18
+ clearHandlers() { }
19
+ reset() { }
20
+ disconnect() { }
21
+ connectTail(_runId, _fromSeq) { }
22
+ }
23
+ //# sourceMappingURL=noopManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"noopManager.js","sourceRoot":"","sources":["../../../../src/v3/inputStreams/noopManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAGxE,MAAM,OAAO,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,sBAAsB,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"}
@@ -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,26 @@
1
+ export class InputStreamTimeoutError extends Error {
2
+ streamId;
3
+ timeoutMs;
4
+ constructor(streamId, timeoutMs) {
5
+ super(`Timeout waiting for input stream "${streamId}" after ${timeoutMs}ms`);
6
+ this.streamId = streamId;
7
+ this.timeoutMs = timeoutMs;
8
+ this.name = "InputStreamTimeoutError";
9
+ }
10
+ }
11
+ export class InputStreamOncePromise extends Promise {
12
+ constructor(executor) {
13
+ super(executor);
14
+ }
15
+ unwrap() {
16
+ return this.then((result) => {
17
+ if (result.ok) {
18
+ return result.output;
19
+ }
20
+ else {
21
+ throw result.error;
22
+ }
23
+ });
24
+ }
25
+ }
26
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/v3/inputStreams/types.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,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;AAMD,MAAM,OAAO,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"}
@@ -0,0 +1,2 @@
1
+ import { type MeterProvider } from "@opentelemetry/sdk-metrics";
2
+ export declare function startDiskIoMetrics(meterProvider: MeterProvider): void;
@@ -0,0 +1,68 @@
1
+ import * as fs from "node:fs";
2
+ import * as fsPromises from "node:fs/promises";
3
+ const SECTOR_SIZE = 512;
4
+ const FILTERED_DEVICE_PREFIXES = ["loop", "ram", "dm-"];
5
+ function parseProcDiskstats(content) {
6
+ const entries = [];
7
+ for (const line of content.split("\n")) {
8
+ const trimmed = line.trim();
9
+ if (!trimmed)
10
+ continue;
11
+ const fields = trimmed.split(/\s+/);
12
+ if (fields.length < 14)
13
+ continue;
14
+ const device = fields[2];
15
+ if (FILTERED_DEVICE_PREFIXES.some((prefix) => device.startsWith(prefix))) {
16
+ continue;
17
+ }
18
+ entries.push({
19
+ device,
20
+ readsCompleted: parseInt(fields[3], 10),
21
+ sectorsRead: parseInt(fields[5], 10),
22
+ writesCompleted: parseInt(fields[7], 10),
23
+ sectorsWritten: parseInt(fields[9], 10),
24
+ });
25
+ }
26
+ return entries;
27
+ }
28
+ export function startDiskIoMetrics(meterProvider) {
29
+ try {
30
+ fs.accessSync("/proc/diskstats", fs.constants.R_OK);
31
+ }
32
+ catch {
33
+ return;
34
+ }
35
+ const meter = meterProvider.getMeter("system-disk", "1.0.0");
36
+ const ioCounter = meter.createObservableCounter("system.disk.io", {
37
+ description: "Disk I/O bytes read and written per device",
38
+ unit: "By",
39
+ });
40
+ const opsCounter = meter.createObservableCounter("system.disk.operations", {
41
+ description: "Disk read/write operation counts per device",
42
+ unit: "{operation}",
43
+ });
44
+ meter.addBatchObservableCallback(async (obs) => {
45
+ try {
46
+ const content = await fsPromises.readFile("/proc/diskstats", "utf-8");
47
+ const stats = parseProcDiskstats(content);
48
+ for (const entry of stats) {
49
+ const readAttrs = {
50
+ "system.device": entry.device,
51
+ "disk.io.direction": "read",
52
+ };
53
+ const writeAttrs = {
54
+ "system.device": entry.device,
55
+ "disk.io.direction": "write",
56
+ };
57
+ obs.observe(ioCounter, entry.sectorsRead * SECTOR_SIZE, readAttrs);
58
+ obs.observe(ioCounter, entry.sectorsWritten * SECTOR_SIZE, writeAttrs);
59
+ obs.observe(opsCounter, entry.readsCompleted, readAttrs);
60
+ obs.observe(opsCounter, entry.writesCompleted, writeAttrs);
61
+ }
62
+ }
63
+ catch {
64
+ // Skip entire cycle on failure
65
+ }
66
+ }, [ioCounter, opsCounter]);
67
+ }
68
+ //# sourceMappingURL=diskIoMetrics.js.map