@trigger.dev/core 0.0.0-prerelease-20241023140846 → 0.0.0-prerelease-20241119135607

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 (249) hide show
  1. package/dist/commonjs/schemas/api.d.ts +8 -8
  2. package/dist/commonjs/v3/apiClient/core.d.ts +1 -1
  3. package/dist/commonjs/v3/apiClient/core.js +9 -1
  4. package/dist/commonjs/v3/apiClient/core.js.map +1 -1
  5. package/dist/commonjs/v3/apiClient/index.d.ts +109 -75
  6. package/dist/commonjs/v3/apiClient/index.js +116 -4
  7. package/dist/commonjs/v3/apiClient/index.js.map +1 -1
  8. package/dist/commonjs/v3/apiClient/runStream.d.ts +99 -0
  9. package/dist/commonjs/v3/apiClient/runStream.js +260 -0
  10. package/dist/commonjs/v3/apiClient/runStream.js.map +1 -0
  11. package/dist/commonjs/v3/apiClient/stream.d.ts +9 -0
  12. package/dist/commonjs/v3/apiClient/stream.js +51 -0
  13. package/dist/commonjs/v3/apiClient/stream.js.map +1 -0
  14. package/dist/commonjs/v3/apiClient/types.d.ts +4 -0
  15. package/dist/commonjs/v3/apiClientManager/index.d.ts +2 -1
  16. package/dist/commonjs/v3/apiClientManager/index.js +18 -7
  17. package/dist/commonjs/v3/apiClientManager/index.js.map +1 -1
  18. package/dist/commonjs/v3/apiClientManager/types.d.ts +7 -0
  19. package/dist/commonjs/v3/apps/process.d.ts +2 -0
  20. package/dist/commonjs/v3/apps/process.js +2 -0
  21. package/dist/commonjs/v3/apps/process.js.map +1 -1
  22. package/dist/commonjs/v3/build/extensions.d.ts +1 -0
  23. package/dist/commonjs/v3/errors.d.ts +5 -0
  24. package/dist/commonjs/v3/errors.js +193 -30
  25. package/dist/commonjs/v3/errors.js.map +1 -1
  26. package/dist/commonjs/v3/idempotencyKeys.d.ts +41 -0
  27. package/dist/commonjs/v3/idempotencyKeys.js +83 -0
  28. package/dist/commonjs/v3/idempotencyKeys.js.map +1 -0
  29. package/dist/commonjs/v3/index.d.ts +4 -1
  30. package/dist/commonjs/v3/index.js +6 -3
  31. package/dist/commonjs/v3/index.js.map +1 -1
  32. package/dist/commonjs/v3/jwt.d.ts +19 -0
  33. package/dist/commonjs/v3/jwt.js +47 -0
  34. package/dist/commonjs/v3/jwt.js.map +1 -0
  35. package/dist/commonjs/v3/links.d.ts +3 -0
  36. package/dist/commonjs/v3/links.js +3 -0
  37. package/dist/commonjs/v3/links.js.map +1 -1
  38. package/dist/commonjs/v3/otel/index.d.ts +2 -3
  39. package/dist/commonjs/v3/otel/index.js +15 -21
  40. package/dist/commonjs/v3/otel/index.js.map +1 -1
  41. package/dist/commonjs/v3/otel/utils.d.ts +2 -0
  42. package/dist/commonjs/v3/otel/utils.js +24 -0
  43. package/dist/commonjs/v3/otel/utils.js.map +1 -0
  44. package/dist/commonjs/v3/runMetadata/index.d.ts +13 -6
  45. package/dist/commonjs/v3/runMetadata/index.js +33 -39
  46. package/dist/commonjs/v3/runMetadata/index.js.map +1 -1
  47. package/dist/commonjs/v3/runMetadata/manager.d.ts +30 -0
  48. package/dist/commonjs/v3/runMetadata/manager.js +278 -0
  49. package/dist/commonjs/v3/runMetadata/manager.js.map +1 -0
  50. package/dist/commonjs/v3/runMetadata/metadataStream.d.ts +21 -0
  51. package/dist/commonjs/v3/runMetadata/metadataStream.js +71 -0
  52. package/dist/commonjs/v3/runMetadata/metadataStream.js.map +1 -0
  53. package/dist/commonjs/v3/runMetadata/noopManager.d.ts +17 -0
  54. package/dist/commonjs/v3/runMetadata/noopManager.js +41 -0
  55. package/dist/commonjs/v3/runMetadata/noopManager.js.map +1 -0
  56. package/dist/commonjs/v3/runMetadata/types.d.ts +16 -0
  57. package/dist/commonjs/v3/runMetadata/types.js +3 -0
  58. package/dist/commonjs/v3/runMetadata/types.js.map +1 -0
  59. package/dist/commonjs/v3/runtime/devRuntimeManager.js.map +1 -1
  60. package/dist/commonjs/v3/runtime/noopRuntimeManager.js +5 -1
  61. package/dist/commonjs/v3/runtime/noopRuntimeManager.js.map +1 -1
  62. package/dist/commonjs/v3/schemas/api.d.ts +300 -164
  63. package/dist/commonjs/v3/schemas/api.js +34 -4
  64. package/dist/commonjs/v3/schemas/api.js.map +1 -1
  65. package/dist/commonjs/v3/schemas/build.d.ts +84 -70
  66. package/dist/commonjs/v3/schemas/common.d.ts +124 -124
  67. package/dist/commonjs/v3/schemas/common.js +3 -0
  68. package/dist/commonjs/v3/schemas/common.js.map +1 -1
  69. package/dist/commonjs/v3/schemas/messages.d.ts +949 -917
  70. package/dist/commonjs/v3/schemas/messages.js +1 -0
  71. package/dist/commonjs/v3/schemas/messages.js.map +1 -1
  72. package/dist/commonjs/v3/schemas/resources.d.ts +30 -22
  73. package/dist/commonjs/v3/schemas/resources.js +1 -0
  74. package/dist/commonjs/v3/schemas/resources.js.map +1 -1
  75. package/dist/commonjs/v3/schemas/schemas.d.ts +102 -96
  76. package/dist/commonjs/v3/schemas/schemas.js +1 -0
  77. package/dist/commonjs/v3/schemas/schemas.js.map +1 -1
  78. package/dist/commonjs/v3/tracer.js +2 -2
  79. package/dist/commonjs/v3/types/idempotencyKeys.d.ts +7 -0
  80. package/dist/commonjs/v3/types/idempotencyKeys.js +3 -0
  81. package/dist/commonjs/v3/types/idempotencyKeys.js.map +1 -0
  82. package/dist/commonjs/v3/types/index.d.ts +10 -63
  83. package/dist/commonjs/v3/types/index.js +3 -0
  84. package/dist/commonjs/v3/types/index.js.map +1 -1
  85. package/dist/commonjs/v3/types/schemas.d.ts +44 -0
  86. package/dist/commonjs/v3/types/schemas.js +41 -0
  87. package/dist/commonjs/v3/types/schemas.js.map +1 -0
  88. package/dist/commonjs/v3/types/tasks.d.ts +487 -0
  89. package/dist/commonjs/v3/types/tasks.js +42 -0
  90. package/dist/commonjs/v3/types/tasks.js.map +1 -0
  91. package/dist/commonjs/v3/types/tools.d.ts +6 -0
  92. package/dist/commonjs/v3/types/tools.js +22 -0
  93. package/dist/commonjs/v3/types/tools.js.map +1 -0
  94. package/dist/commonjs/v3/utils/flattenAttributes.d.ts +2 -1
  95. package/dist/commonjs/v3/utils/flattenAttributes.js +39 -16
  96. package/dist/commonjs/v3/utils/flattenAttributes.js.map +1 -1
  97. package/dist/commonjs/v3/utils/getEnv.d.ts +2 -1
  98. package/dist/commonjs/v3/utils/getEnv.js +15 -3
  99. package/dist/commonjs/v3/utils/getEnv.js.map +1 -1
  100. package/dist/commonjs/v3/utils/globals.d.ts +4 -2
  101. package/dist/commonjs/v3/utils/globals.js.map +1 -1
  102. package/dist/commonjs/v3/utils/ioSerialization.d.ts +8 -2
  103. package/dist/commonjs/v3/utils/ioSerialization.js +62 -37
  104. package/dist/commonjs/v3/utils/ioSerialization.js.map +1 -1
  105. package/dist/commonjs/v3/utils/safeAsyncLocalStorage.d.ts +1 -0
  106. package/dist/commonjs/v3/utils/safeAsyncLocalStorage.js +3 -0
  107. package/dist/commonjs/v3/utils/safeAsyncLocalStorage.js.map +1 -1
  108. package/dist/commonjs/v3/wait-until-api.d.ts +2 -0
  109. package/dist/commonjs/v3/wait-until-api.js +8 -0
  110. package/dist/commonjs/v3/wait-until-api.js.map +1 -0
  111. package/dist/commonjs/v3/waitUntil/index.d.ts +11 -0
  112. package/dist/commonjs/v3/waitUntil/index.js +44 -0
  113. package/dist/commonjs/v3/waitUntil/index.js.map +1 -0
  114. package/dist/commonjs/v3/waitUntil/manager.d.ts +8 -0
  115. package/dist/commonjs/v3/waitUntil/manager.js +28 -0
  116. package/dist/commonjs/v3/waitUntil/manager.js.map +1 -0
  117. package/dist/commonjs/v3/waitUntil/types.d.ts +9 -0
  118. package/dist/commonjs/v3/waitUntil/types.js +3 -0
  119. package/dist/commonjs/v3/waitUntil/types.js.map +1 -0
  120. package/dist/commonjs/v3/workers/index.d.ts +3 -1
  121. package/dist/commonjs/v3/workers/index.js +6 -1
  122. package/dist/commonjs/v3/workers/index.js.map +1 -1
  123. package/dist/commonjs/v3/workers/taskExecutor.js +56 -9
  124. package/dist/commonjs/v3/workers/taskExecutor.js.map +1 -1
  125. package/dist/commonjs/version.js +1 -1
  126. package/dist/esm/v3/apiClient/core.d.ts +1 -1
  127. package/dist/esm/v3/apiClient/core.js +9 -1
  128. package/dist/esm/v3/apiClient/core.js.map +1 -1
  129. package/dist/esm/v3/apiClient/index.d.ts +109 -75
  130. package/dist/esm/v3/apiClient/index.js +116 -4
  131. package/dist/esm/v3/apiClient/index.js.map +1 -1
  132. package/dist/esm/v3/apiClient/runStream.d.ts +99 -0
  133. package/dist/esm/v3/apiClient/runStream.js +253 -0
  134. package/dist/esm/v3/apiClient/runStream.js.map +1 -0
  135. package/dist/esm/v3/apiClient/stream.d.ts +9 -0
  136. package/dist/esm/v3/apiClient/stream.js +47 -0
  137. package/dist/esm/v3/apiClient/stream.js.map +1 -0
  138. package/dist/esm/v3/apiClient/types.d.ts +4 -0
  139. package/dist/esm/v3/apiClientManager/index.d.ts +2 -1
  140. package/dist/esm/v3/apiClientManager/index.js +18 -7
  141. package/dist/esm/v3/apiClientManager/index.js.map +1 -1
  142. package/dist/esm/v3/apiClientManager/types.d.ts +7 -0
  143. package/dist/esm/v3/apps/process.d.ts +2 -0
  144. package/dist/esm/v3/apps/process.js +2 -0
  145. package/dist/esm/v3/apps/process.js.map +1 -1
  146. package/dist/esm/v3/build/extensions.d.ts +1 -0
  147. package/dist/esm/v3/errors.d.ts +5 -0
  148. package/dist/esm/v3/errors.js +190 -29
  149. package/dist/esm/v3/errors.js.map +1 -1
  150. package/dist/esm/v3/idempotencyKeys.d.ts +41 -0
  151. package/dist/esm/v3/idempotencyKeys.js +78 -0
  152. package/dist/esm/v3/idempotencyKeys.js.map +1 -0
  153. package/dist/esm/v3/index.d.ts +4 -1
  154. package/dist/esm/v3/index.js +4 -1
  155. package/dist/esm/v3/index.js.map +1 -1
  156. package/dist/esm/v3/jwt.d.ts +19 -0
  157. package/dist/esm/v3/jwt.js +42 -0
  158. package/dist/esm/v3/jwt.js.map +1 -0
  159. package/dist/esm/v3/links.d.ts +3 -0
  160. package/dist/esm/v3/links.js +3 -0
  161. package/dist/esm/v3/links.js.map +1 -1
  162. package/dist/esm/v3/otel/index.d.ts +2 -3
  163. package/dist/esm/v3/otel/index.js +1 -20
  164. package/dist/esm/v3/otel/index.js.map +1 -1
  165. package/dist/esm/v3/otel/utils.d.ts +2 -0
  166. package/dist/esm/v3/otel/utils.js +21 -0
  167. package/dist/esm/v3/otel/utils.js.map +1 -0
  168. package/dist/esm/v3/runMetadata/index.d.ts +13 -6
  169. package/dist/esm/v3/runMetadata/index.js +35 -41
  170. package/dist/esm/v3/runMetadata/index.js.map +1 -1
  171. package/dist/esm/v3/runMetadata/manager.d.ts +30 -0
  172. package/dist/esm/v3/runMetadata/manager.js +274 -0
  173. package/dist/esm/v3/runMetadata/manager.js.map +1 -0
  174. package/dist/esm/v3/runMetadata/metadataStream.d.ts +21 -0
  175. package/dist/esm/v3/runMetadata/metadataStream.js +67 -0
  176. package/dist/esm/v3/runMetadata/metadataStream.js.map +1 -0
  177. package/dist/esm/v3/runMetadata/noopManager.d.ts +17 -0
  178. package/dist/esm/v3/runMetadata/noopManager.js +37 -0
  179. package/dist/esm/v3/runMetadata/noopManager.js.map +1 -0
  180. package/dist/esm/v3/runMetadata/types.d.ts +16 -0
  181. package/dist/esm/v3/runMetadata/types.js +2 -0
  182. package/dist/esm/v3/runMetadata/types.js.map +1 -0
  183. package/dist/esm/v3/runtime/devRuntimeManager.js.map +1 -1
  184. package/dist/esm/v3/runtime/noopRuntimeManager.js +5 -1
  185. package/dist/esm/v3/runtime/noopRuntimeManager.js.map +1 -1
  186. package/dist/esm/v3/schemas/api.d.ts +300 -164
  187. package/dist/esm/v3/schemas/api.js +33 -3
  188. package/dist/esm/v3/schemas/api.js.map +1 -1
  189. package/dist/esm/v3/schemas/build.d.ts +84 -70
  190. package/dist/esm/v3/schemas/common.d.ts +24 -24
  191. package/dist/esm/v3/schemas/common.js +3 -0
  192. package/dist/esm/v3/schemas/common.js.map +1 -1
  193. package/dist/esm/v3/schemas/messages.d.ts +949 -917
  194. package/dist/esm/v3/schemas/messages.js +1 -0
  195. package/dist/esm/v3/schemas/messages.js.map +1 -1
  196. package/dist/esm/v3/schemas/resources.d.ts +30 -22
  197. package/dist/esm/v3/schemas/resources.js +1 -0
  198. package/dist/esm/v3/schemas/resources.js.map +1 -1
  199. package/dist/esm/v3/schemas/schemas.d.ts +102 -96
  200. package/dist/esm/v3/schemas/schemas.js +1 -0
  201. package/dist/esm/v3/schemas/schemas.js.map +1 -1
  202. package/dist/esm/v3/tracer.js +1 -1
  203. package/dist/esm/v3/types/idempotencyKeys.d.ts +7 -0
  204. package/dist/esm/v3/types/idempotencyKeys.js +2 -0
  205. package/dist/esm/v3/types/idempotencyKeys.js.map +1 -0
  206. package/dist/esm/v3/types/index.d.ts +10 -63
  207. package/dist/esm/v3/types/index.js +3 -0
  208. package/dist/esm/v3/types/index.js.map +1 -1
  209. package/dist/esm/v3/types/schemas.d.ts +44 -0
  210. package/dist/esm/v3/types/schemas.js +38 -0
  211. package/dist/esm/v3/types/schemas.js.map +1 -0
  212. package/dist/esm/v3/types/tasks.d.ts +487 -0
  213. package/dist/esm/v3/types/tasks.js +37 -0
  214. package/dist/esm/v3/types/tasks.js.map +1 -0
  215. package/dist/esm/v3/types/tools.d.ts +6 -0
  216. package/dist/esm/v3/types/tools.js +19 -0
  217. package/dist/esm/v3/types/tools.js.map +1 -0
  218. package/dist/esm/v3/utils/flattenAttributes.d.ts +2 -1
  219. package/dist/esm/v3/utils/flattenAttributes.js +38 -15
  220. package/dist/esm/v3/utils/flattenAttributes.js.map +1 -1
  221. package/dist/esm/v3/utils/getEnv.d.ts +2 -1
  222. package/dist/esm/v3/utils/getEnv.js +14 -3
  223. package/dist/esm/v3/utils/getEnv.js.map +1 -1
  224. package/dist/esm/v3/utils/globals.d.ts +4 -2
  225. package/dist/esm/v3/utils/globals.js.map +1 -1
  226. package/dist/esm/v3/utils/ioSerialization.d.ts +8 -2
  227. package/dist/esm/v3/utils/ioSerialization.js +61 -37
  228. package/dist/esm/v3/utils/ioSerialization.js.map +1 -1
  229. package/dist/esm/v3/utils/safeAsyncLocalStorage.d.ts +1 -0
  230. package/dist/esm/v3/utils/safeAsyncLocalStorage.js +3 -0
  231. package/dist/esm/v3/utils/safeAsyncLocalStorage.js.map +1 -1
  232. package/dist/esm/v3/wait-until-api.d.ts +2 -0
  233. package/dist/esm/v3/wait-until-api.js +5 -0
  234. package/dist/esm/v3/wait-until-api.js.map +1 -0
  235. package/dist/esm/v3/waitUntil/index.d.ts +11 -0
  236. package/dist/esm/v3/waitUntil/index.js +40 -0
  237. package/dist/esm/v3/waitUntil/index.js.map +1 -0
  238. package/dist/esm/v3/waitUntil/manager.d.ts +8 -0
  239. package/dist/esm/v3/waitUntil/manager.js +24 -0
  240. package/dist/esm/v3/waitUntil/manager.js.map +1 -0
  241. package/dist/esm/v3/waitUntil/types.d.ts +9 -0
  242. package/dist/esm/v3/waitUntil/types.js +2 -0
  243. package/dist/esm/v3/waitUntil/types.js.map +1 -0
  244. package/dist/esm/v3/workers/index.d.ts +3 -1
  245. package/dist/esm/v3/workers/index.js +3 -1
  246. package/dist/esm/v3/workers/index.js.map +1 -1
  247. package/dist/esm/v3/workers/taskExecutor.js +58 -11
  248. package/dist/esm/v3/workers/taskExecutor.js.map +1 -1
  249. package/package.json +39 -1
@@ -1,22 +1,3 @@
1
- import { SpanStatusCode } from "@opentelemetry/api";
2
1
  export { TracingSDK } from "./tracingSDK.js";
3
- export function recordSpanException(span, error) {
4
- if (error instanceof Error) {
5
- span.recordException(sanitizeSpanError(error));
6
- }
7
- else if (typeof error === "string") {
8
- span.recordException(error.replace(/\0/g, ""));
9
- }
10
- else {
11
- span.recordException(JSON.stringify(error).replace(/\0/g, ""));
12
- }
13
- span.setStatus({ code: SpanStatusCode.ERROR });
14
- }
15
- function sanitizeSpanError(error) {
16
- // Create a new error object with the same name, message and stack trace
17
- const sanitizedError = new Error(error.message.replace(/\0/g, ""));
18
- sanitizedError.name = error.name.replace(/\0/g, "");
19
- sanitizedError.stack = error.stack?.replace(/\0/g, "");
20
- return sanitizedError;
21
- }
2
+ export * from "./utils.js";
22
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/v3/otel/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAE1D,OAAO,EAAE,UAAU,EAAyD,MAAM,iBAAiB,CAAC;AAEpG,MAAM,UAAU,mBAAmB,CAAC,IAAU,EAAE,KAAc;IAC5D,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;IACjD,CAAC;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACrC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;IACjD,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAY;IACrC,wEAAwE;IACxE,MAAM,cAAc,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;IACnE,cAAc,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACpD,cAAc,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAEvD,OAAO,cAAc,CAAC;AACxB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/v3/otel/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAyD,MAAM,iBAAiB,CAAC;AAEpG,cAAc,YAAY,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { type Span } from "@opentelemetry/api";
2
+ export declare function recordSpanException(span: Span, error: unknown): void;
@@ -0,0 +1,21 @@
1
+ import { SpanStatusCode } from "@opentelemetry/api";
2
+ export function recordSpanException(span, error) {
3
+ if (error instanceof Error) {
4
+ span.recordException(sanitizeSpanError(error));
5
+ }
6
+ else if (typeof error === "string") {
7
+ span.recordException(error.replace(/\0/g, ""));
8
+ }
9
+ else {
10
+ span.recordException(JSON.stringify(error).replace(/\0/g, ""));
11
+ }
12
+ span.setStatus({ code: SpanStatusCode.ERROR });
13
+ }
14
+ function sanitizeSpanError(error) {
15
+ // Create a new error object with the same name, message and stack trace
16
+ const sanitizedError = new Error(error.message.replace(/\0/g, ""));
17
+ sanitizedError.name = error.name.replace(/\0/g, "");
18
+ sanitizedError.stack = error.stack?.replace(/\0/g, "");
19
+ return sanitizedError;
20
+ }
21
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/v3/otel/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAE/D,MAAM,UAAU,mBAAmB,CAAC,IAAU,EAAE,KAAc;IAC5D,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;IACjD,CAAC;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACrC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;IACjD,CAAC;SAAM,CAAC;QACN,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAY;IACrC,wEAAwE;IACxE,MAAM,cAAc,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;IACnE,cAAc,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACpD,cAAc,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAEvD,OAAO,cAAc,CAAC;AACxB,CAAC"}
@@ -1,15 +1,22 @@
1
1
  import { DeserializedJson } from "../../schemas/json.js";
2
2
  import { ApiRequestOptions } from "../zodfetch.js";
3
- export declare class RunMetadataAPI {
3
+ import { RunMetadataManager } from "./types.js";
4
+ export declare class RunMetadataAPI implements RunMetadataManager {
5
+ #private;
4
6
  private static _instance?;
5
7
  private constructor();
6
8
  static getInstance(): RunMetadataAPI;
7
- get store(): Record<string, DeserializedJson> | undefined;
8
- set store(value: Record<string, DeserializedJson> | undefined);
9
+ setGlobalManager(manager: RunMetadataManager): boolean;
9
10
  enterWithMetadata(metadata: Record<string, DeserializedJson>): void;
10
11
  current(): Record<string, DeserializedJson> | undefined;
11
12
  getKey(key: string): DeserializedJson | undefined;
12
- setKey(key: string, value: DeserializedJson, requestOptions?: ApiRequestOptions): Promise<void>;
13
- deleteKey(key: string, requestOptions?: ApiRequestOptions): Promise<void>;
14
- update(metadata: Record<string, DeserializedJson>, requestOptions?: ApiRequestOptions): Promise<void>;
13
+ setKey(key: string, value: DeserializedJson): void;
14
+ deleteKey(key: string): void;
15
+ incrementKey(key: string, value: number): void;
16
+ decrementKey(key: string, value: number): void;
17
+ appendKey(key: string, value: DeserializedJson): void;
18
+ removeFromKey(key: string, value: DeserializedJson): void;
19
+ update(metadata: Record<string, DeserializedJson>): void;
20
+ stream<T>(key: string, value: AsyncIterable<T> | ReadableStream<T>, signal?: AbortSignal): Promise<AsyncIterable<T>>;
21
+ flush(requestOptions?: ApiRequestOptions): Promise<void>;
15
22
  }
@@ -1,7 +1,7 @@
1
- import { apiClientManager } from "../apiClientManager-api.js";
2
- import { taskContext } from "../task-context-api.js";
3
1
  import { getGlobal, registerGlobal } from "../utils/globals.js";
2
+ import { NoopRunMetadataManager } from "./noopManager.js";
4
3
  const API_NAME = "run-metadata";
4
+ const NOOP_MANAGER = new NoopRunMetadataManager();
5
5
  export class RunMetadataAPI {
6
6
  static _instance;
7
7
  constructor() { }
@@ -11,53 +11,47 @@ export class RunMetadataAPI {
11
11
  }
12
12
  return this._instance;
13
13
  }
14
- get store() {
15
- return getGlobal(API_NAME);
14
+ setGlobalManager(manager) {
15
+ return registerGlobal(API_NAME, manager);
16
16
  }
17
- set store(value) {
18
- registerGlobal(API_NAME, value, true);
17
+ #getManager() {
18
+ return getGlobal(API_NAME) ?? NOOP_MANAGER;
19
19
  }
20
20
  enterWithMetadata(metadata) {
21
- registerGlobal(API_NAME, metadata);
21
+ this.#getManager().enterWithMetadata(metadata);
22
22
  }
23
23
  current() {
24
- return this.store;
24
+ return this.#getManager().current();
25
25
  }
26
26
  getKey(key) {
27
- return this.store?.[key];
27
+ return this.#getManager().getKey(key);
28
28
  }
29
- async setKey(key, value, requestOptions) {
30
- const runId = taskContext.ctx?.run.id;
31
- if (!runId) {
32
- return;
33
- }
34
- const apiClient = apiClientManager.clientOrThrow();
35
- const nextStore = {
36
- ...(this.store ?? {}),
37
- [key]: value,
38
- };
39
- const response = await apiClient.updateRunMetadata(runId, { metadata: nextStore }, requestOptions);
40
- this.store = response.metadata;
41
- }
42
- async deleteKey(key, requestOptions) {
43
- const runId = taskContext.ctx?.run.id;
44
- if (!runId) {
45
- return;
46
- }
47
- const apiClient = apiClientManager.clientOrThrow();
48
- const nextStore = { ...(this.store ?? {}) };
49
- delete nextStore[key];
50
- const response = await apiClient.updateRunMetadata(runId, { metadata: nextStore }, requestOptions);
51
- this.store = response.metadata;
52
- }
53
- async update(metadata, requestOptions) {
54
- const runId = taskContext.ctx?.run.id;
55
- if (!runId) {
56
- return;
57
- }
58
- const apiClient = apiClientManager.clientOrThrow();
59
- const response = await apiClient.updateRunMetadata(runId, { metadata }, requestOptions);
60
- this.store = response.metadata;
29
+ setKey(key, value) {
30
+ return this.#getManager().setKey(key, value);
31
+ }
32
+ deleteKey(key) {
33
+ return this.#getManager().deleteKey(key);
34
+ }
35
+ incrementKey(key, value) {
36
+ return this.#getManager().incrementKey(key, value);
37
+ }
38
+ decrementKey(key, value) {
39
+ return this.#getManager().decrementKey(key, value);
40
+ }
41
+ appendKey(key, value) {
42
+ this.#getManager().appendKey(key, value);
43
+ }
44
+ removeFromKey(key, value) {
45
+ this.#getManager().removeFromKey(key, value);
46
+ }
47
+ update(metadata) {
48
+ return this.#getManager().update(metadata);
49
+ }
50
+ stream(key, value, signal) {
51
+ return this.#getManager().stream(key, value, signal);
52
+ }
53
+ flush(requestOptions) {
54
+ return this.#getManager().flush(requestOptions);
61
55
  }
62
56
  }
63
57
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/v3/runMetadata/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/v3/runMetadata/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAEhE,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAG1D,MAAM,QAAQ,GAAG,cAAc,CAAC;AAEhC,MAAM,YAAY,GAAG,IAAI,sBAAsB,EAAE,CAAC;AAElD,MAAM,OAAO,cAAc;IACjB,MAAM,CAAC,SAAS,CAAkB;IAE1C,gBAAuB,CAAC;IAEjB,MAAM,CAAC,WAAW;QACvB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,GAAG,IAAI,cAAc,EAAE,CAAC;QACxC,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,iBAAiB,CAAC,QAA0C;QACjE,IAAI,CAAC,WAAW,EAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACjD,CAAC;IAEM,OAAO;QACZ,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,CAAC;IACtC,CAAC;IAEM,MAAM,CAAC,GAAW;QACvB,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACxC,CAAC;IAEM,MAAM,CAAC,GAAW,EAAE,KAAuB;QAChD,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC/C,CAAC;IAEM,SAAS,CAAC,GAAW;QAC1B,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC;IAEM,YAAY,CAAC,GAAW,EAAE,KAAa;QAC5C,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACrD,CAAC;IAED,YAAY,CAAC,GAAW,EAAE,KAAa;QACrC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACrD,CAAC;IAED,SAAS,CAAC,GAAW,EAAE,KAAuB;QAC5C,IAAI,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC3C,CAAC;IAED,aAAa,CAAC,GAAW,EAAE,KAAuB;QAChD,IAAI,CAAC,WAAW,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC/C,CAAC;IAEM,MAAM,CAAC,QAA0C;QACtD,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAEM,MAAM,CACX,GAAW,EACX,KAA2C,EAC3C,MAAoB;QAEpB,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,cAAkC;QACtC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAClD,CAAC;CACF"}
@@ -0,0 +1,30 @@
1
+ import { DeserializedJson } from "../../schemas/json.js";
2
+ import { ApiRequestOptions } from "../zodfetch.js";
3
+ import { RunMetadataManager } from "./types.js";
4
+ import { ApiClient } from "../apiClient/index.js";
5
+ export declare class StandardMetadataManager implements RunMetadataManager {
6
+ private apiClient;
7
+ private streamsBaseUrl;
8
+ private flushTimeoutId;
9
+ private hasChanges;
10
+ private store;
11
+ private activeStreams;
12
+ runId: string | undefined;
13
+ constructor(apiClient: ApiClient, streamsBaseUrl: string);
14
+ enterWithMetadata(metadata: Record<string, DeserializedJson>): void;
15
+ current(): Record<string, DeserializedJson> | undefined;
16
+ getKey(key: string): DeserializedJson | undefined;
17
+ setKey(key: string, value: DeserializedJson): void;
18
+ deleteKey(key: string): void;
19
+ appendKey(key: string, value: DeserializedJson): void;
20
+ removeFromKey(key: string, value: DeserializedJson): void;
21
+ incrementKey(key: string, increment?: number): void;
22
+ decrementKey(key: string, decrement?: number): void;
23
+ update(metadata: Record<string, DeserializedJson>): void;
24
+ stream<T>(key: string, value: AsyncIterable<T> | ReadableStream<T>, signal?: AbortSignal): Promise<AsyncIterable<T>>;
25
+ hasActiveStreams(): boolean;
26
+ waitForAllStreams(timeout?: number): Promise<void>;
27
+ flush(requestOptions?: ApiRequestOptions): Promise<void>;
28
+ startPeriodicFlush(intervalMs?: number): void;
29
+ stopPeriodicFlush(): void;
30
+ }
@@ -0,0 +1,274 @@
1
+ import { JSONHeroPath } from "@jsonhero/path";
2
+ import { dequal } from "dequal/lite";
3
+ import { MetadataStream } from "./metadataStream.js";
4
+ const MAXIMUM_ACTIVE_STREAMS = 2;
5
+ const MAXIMUM_TOTAL_STREAMS = 5;
6
+ export class StandardMetadataManager {
7
+ apiClient;
8
+ streamsBaseUrl;
9
+ flushTimeoutId = null;
10
+ hasChanges = false;
11
+ store;
12
+ // Add a Map to track active streams
13
+ activeStreams = new Map();
14
+ runId;
15
+ constructor(apiClient, streamsBaseUrl) {
16
+ this.apiClient = apiClient;
17
+ this.streamsBaseUrl = streamsBaseUrl;
18
+ }
19
+ enterWithMetadata(metadata) {
20
+ this.store = metadata ?? {};
21
+ }
22
+ current() {
23
+ return this.store;
24
+ }
25
+ getKey(key) {
26
+ return this.store?.[key];
27
+ }
28
+ setKey(key, value) {
29
+ if (!this.runId) {
30
+ return;
31
+ }
32
+ let nextStore = this.store
33
+ ? structuredClone(this.store)
34
+ : undefined;
35
+ if (key.startsWith("$.")) {
36
+ const path = new JSONHeroPath(key);
37
+ path.set(nextStore, value);
38
+ }
39
+ else {
40
+ nextStore = {
41
+ ...(nextStore ?? {}),
42
+ [key]: value,
43
+ };
44
+ }
45
+ if (!nextStore) {
46
+ return;
47
+ }
48
+ if (!dequal(this.store, nextStore)) {
49
+ this.hasChanges = true;
50
+ }
51
+ this.store = nextStore;
52
+ }
53
+ deleteKey(key) {
54
+ if (!this.runId) {
55
+ return;
56
+ }
57
+ const nextStore = { ...(this.store ?? {}) };
58
+ delete nextStore[key];
59
+ if (!dequal(this.store, nextStore)) {
60
+ this.hasChanges = true;
61
+ }
62
+ this.store = nextStore;
63
+ }
64
+ appendKey(key, value) {
65
+ if (!this.runId) {
66
+ return;
67
+ }
68
+ let nextStore = this.store
69
+ ? structuredClone(this.store)
70
+ : {};
71
+ if (key.startsWith("$.")) {
72
+ const path = new JSONHeroPath(key);
73
+ const currentValue = path.first(nextStore);
74
+ if (currentValue === undefined) {
75
+ // Initialize as array with single item
76
+ path.set(nextStore, [value]);
77
+ }
78
+ else if (Array.isArray(currentValue)) {
79
+ // Append to existing array
80
+ path.set(nextStore, [...currentValue, value]);
81
+ }
82
+ else {
83
+ // Convert to array if not already
84
+ path.set(nextStore, [currentValue, value]);
85
+ }
86
+ }
87
+ else {
88
+ const currentValue = nextStore[key];
89
+ if (currentValue === undefined) {
90
+ // Initialize as array with single item
91
+ nextStore[key] = [value];
92
+ }
93
+ else if (Array.isArray(currentValue)) {
94
+ // Append to existing array
95
+ nextStore[key] = [...currentValue, value];
96
+ }
97
+ else {
98
+ // Convert to array if not already
99
+ nextStore[key] = [currentValue, value];
100
+ }
101
+ }
102
+ if (!dequal(this.store, nextStore)) {
103
+ this.hasChanges = true;
104
+ }
105
+ this.store = nextStore;
106
+ }
107
+ removeFromKey(key, value) {
108
+ if (!this.runId) {
109
+ return;
110
+ }
111
+ let nextStore = this.store
112
+ ? structuredClone(this.store)
113
+ : {};
114
+ if (key.startsWith("$.")) {
115
+ const path = new JSONHeroPath(key);
116
+ const currentValue = path.first(nextStore);
117
+ if (Array.isArray(currentValue)) {
118
+ // Remove the value from array using deep equality check
119
+ const newArray = currentValue.filter((item) => !dequal(item, value));
120
+ path.set(nextStore, newArray);
121
+ }
122
+ }
123
+ else {
124
+ const currentValue = nextStore[key];
125
+ if (Array.isArray(currentValue)) {
126
+ // Remove the value from array using deep equality check
127
+ nextStore[key] = currentValue.filter((item) => !dequal(item, value));
128
+ }
129
+ }
130
+ if (!dequal(this.store, nextStore)) {
131
+ this.hasChanges = true;
132
+ }
133
+ this.store = nextStore;
134
+ }
135
+ incrementKey(key, increment = 1) {
136
+ if (!this.runId) {
137
+ return;
138
+ }
139
+ let nextStore = this.store ? structuredClone(this.store) : {};
140
+ let currentValue = key.startsWith("$.")
141
+ ? new JSONHeroPath(key).first(nextStore)
142
+ : nextStore[key];
143
+ const newValue = (typeof currentValue === "number" ? currentValue : 0) + increment;
144
+ if (key.startsWith("$.")) {
145
+ new JSONHeroPath(key).set(nextStore, newValue);
146
+ }
147
+ else {
148
+ nextStore[key] = newValue;
149
+ }
150
+ if (!dequal(this.store, nextStore)) {
151
+ this.hasChanges = true;
152
+ this.store = nextStore;
153
+ }
154
+ }
155
+ decrementKey(key, decrement = 1) {
156
+ this.incrementKey(key, -decrement);
157
+ }
158
+ update(metadata) {
159
+ if (!this.runId) {
160
+ return;
161
+ }
162
+ if (!dequal(this.store, metadata)) {
163
+ this.hasChanges = true;
164
+ }
165
+ this.store = metadata;
166
+ }
167
+ async stream(key, value, signal) {
168
+ const $value = value;
169
+ if (!this.runId) {
170
+ return $value;
171
+ }
172
+ // Check to make sure we haven't exceeded the max number of active streams
173
+ if (this.activeStreams.size >= MAXIMUM_ACTIVE_STREAMS) {
174
+ console.warn(`Exceeded the maximum number of active streams (${MAXIMUM_ACTIVE_STREAMS}). The "${key}" stream will be ignored.`);
175
+ return $value;
176
+ }
177
+ // Check to make sure we haven't exceeded the max number of total streams
178
+ const streams = (this.store?.$$streams ?? []);
179
+ if (streams.length >= MAXIMUM_TOTAL_STREAMS) {
180
+ console.warn(`Exceeded the maximum number of total streams (${MAXIMUM_TOTAL_STREAMS}). The "${key}" stream will be ignored.`);
181
+ return $value;
182
+ }
183
+ try {
184
+ // Add the key to the special stream metadata object
185
+ this.appendKey(`$$streams`, key);
186
+ await this.flush();
187
+ const streamInstance = new MetadataStream({
188
+ key,
189
+ runId: this.runId,
190
+ iterator: $value[Symbol.asyncIterator](),
191
+ baseUrl: this.streamsBaseUrl,
192
+ signal,
193
+ });
194
+ this.activeStreams.set(key, streamInstance);
195
+ // Clean up when stream completes
196
+ streamInstance.wait().finally(() => this.activeStreams.delete(key));
197
+ return streamInstance;
198
+ }
199
+ catch (error) {
200
+ // Clean up metadata key if stream creation fails
201
+ this.deleteKey(`$$stream.${key}`);
202
+ throw error;
203
+ }
204
+ }
205
+ hasActiveStreams() {
206
+ return this.activeStreams.size > 0;
207
+ }
208
+ // Waits for all the streams to finish
209
+ async waitForAllStreams(timeout = 60_000) {
210
+ if (this.activeStreams.size === 0) {
211
+ return;
212
+ }
213
+ const promises = Array.from(this.activeStreams.values());
214
+ try {
215
+ await Promise.race([
216
+ Promise.allSettled(promises),
217
+ new Promise((resolve, _) => setTimeout(() => resolve(), timeout)),
218
+ ]);
219
+ }
220
+ catch (error) {
221
+ console.error("Error waiting for streams to finish:", error);
222
+ // If we time out, abort all remaining streams
223
+ for (const [key, promise] of this.activeStreams.entries()) {
224
+ // We can add abort logic here if needed
225
+ this.activeStreams.delete(key);
226
+ }
227
+ throw error;
228
+ }
229
+ }
230
+ async flush(requestOptions) {
231
+ if (!this.runId) {
232
+ return;
233
+ }
234
+ if (!this.store) {
235
+ return;
236
+ }
237
+ if (!this.hasChanges) {
238
+ return;
239
+ }
240
+ try {
241
+ this.hasChanges = false;
242
+ await this.apiClient.updateRunMetadata(this.runId, { metadata: this.store }, requestOptions);
243
+ }
244
+ catch (error) {
245
+ this.hasChanges = true;
246
+ throw error;
247
+ }
248
+ }
249
+ startPeriodicFlush(intervalMs = 1000) {
250
+ const periodicFlush = async (intervalMs) => {
251
+ try {
252
+ await this.flush();
253
+ }
254
+ catch (error) {
255
+ console.error("Failed to flush metadata", error);
256
+ throw error;
257
+ }
258
+ finally {
259
+ scheduleNext();
260
+ }
261
+ };
262
+ const scheduleNext = () => {
263
+ this.flushTimeoutId = setTimeout(() => periodicFlush(intervalMs), intervalMs);
264
+ };
265
+ scheduleNext();
266
+ }
267
+ stopPeriodicFlush() {
268
+ if (this.flushTimeoutId) {
269
+ clearTimeout(this.flushTimeoutId);
270
+ this.flushTimeoutId = null;
271
+ }
272
+ }
273
+ }
274
+ //# sourceMappingURL=manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../../src/v3/runMetadata/manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ export type MetadataOptions<T> = {
2
+ baseUrl: string;
3
+ runId: string;
4
+ key: string;
5
+ iterator: AsyncIterator<T>;
6
+ signal?: AbortSignal;
7
+ };
8
+ export declare class MetadataStream<T> {
9
+ private options;
10
+ private controller;
11
+ private serverQueue;
12
+ private consumerQueue;
13
+ private serverIterator;
14
+ private consumerIterator;
15
+ private streamPromise;
16
+ constructor(options: MetadataOptions<T>);
17
+ private createTeeIterators;
18
+ private initializeServerStream;
19
+ wait(): Promise<void>;
20
+ [Symbol.asyncIterator](): AsyncIterator<T, any, undefined>;
21
+ }
@@ -0,0 +1,67 @@
1
+ export class MetadataStream {
2
+ options;
3
+ controller = new AbortController();
4
+ serverQueue = [];
5
+ consumerQueue = [];
6
+ serverIterator;
7
+ consumerIterator;
8
+ streamPromise;
9
+ constructor(options) {
10
+ this.options = options;
11
+ const { serverIterator, consumerIterator } = this.createTeeIterators();
12
+ this.serverIterator = serverIterator;
13
+ this.consumerIterator = consumerIterator;
14
+ this.streamPromise = this.initializeServerStream();
15
+ }
16
+ createTeeIterators() {
17
+ const teeIterator = (queue) => ({
18
+ next: () => {
19
+ if (queue.length === 0) {
20
+ const result = this.options.iterator.next();
21
+ this.serverQueue.push(result);
22
+ this.consumerQueue.push(result);
23
+ }
24
+ return queue.shift();
25
+ },
26
+ });
27
+ return {
28
+ serverIterator: teeIterator(this.serverQueue),
29
+ consumerIterator: teeIterator(this.consumerQueue),
30
+ };
31
+ }
32
+ initializeServerStream() {
33
+ const serverIterator = this.serverIterator;
34
+ // TODO: Why is this only sending stuff to the server at the end of the run?
35
+ const serverStream = new ReadableStream({
36
+ async pull(controller) {
37
+ try {
38
+ const { value, done } = await serverIterator.next();
39
+ if (done) {
40
+ controller.close();
41
+ return;
42
+ }
43
+ controller.enqueue(JSON.stringify(value) + "\n");
44
+ }
45
+ catch (err) {
46
+ controller.error(err);
47
+ }
48
+ },
49
+ cancel: () => this.controller.abort(),
50
+ });
51
+ return fetch(`${this.options.baseUrl}/realtime/v1/streams/${this.options.runId}/${this.options.key}`, {
52
+ method: "POST",
53
+ headers: {},
54
+ body: serverStream,
55
+ // @ts-expect-error
56
+ duplex: "half",
57
+ signal: this.controller.signal,
58
+ });
59
+ }
60
+ async wait() {
61
+ return this.streamPromise.then(() => void 0);
62
+ }
63
+ [Symbol.asyncIterator]() {
64
+ return this.consumerIterator;
65
+ }
66
+ }
67
+ //# sourceMappingURL=metadataStream.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadataStream.js","sourceRoot":"","sources":["../../../../src/v3/runMetadata/metadataStream.ts"],"names":[],"mappings":"AAQA,MAAM,OAAO,cAAc;IAQL;IAPZ,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACnC,WAAW,GAAsC,EAAE,CAAC;IACpD,aAAa,GAAsC,EAAE,CAAC;IACtD,cAAc,CAAmB;IACjC,gBAAgB,CAAmB;IACnC,aAAa,CAA2B;IAEhD,YAAoB,OAA2B;QAA3B,YAAO,GAAP,OAAO,CAAoB;QAC7C,MAAM,EAAE,cAAc,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACvE,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QAEzC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;IACrD,CAAC;IAEO,kBAAkB;QACxB,MAAM,WAAW,GAAG,CAAC,KAAwC,EAAoB,EAAE,CAAC,CAAC;YACnF,IAAI,EAAE,GAAG,EAAE;gBACT,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACvB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;oBAC5C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAC9B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAClC,CAAC;gBACD,OAAO,KAAK,CAAC,KAAK,EAAG,CAAC;YACxB,CAAC;SACF,CAAC,CAAC;QAEH,OAAO;YACL,cAAc,EAAE,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC;YAC7C,gBAAgB,EAAE,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC;SAClD,CAAC;IACJ,CAAC;IAEO,sBAAsB;QAC5B,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QAE3C,4EAA4E;QAC5E,MAAM,YAAY,GAAG,IAAI,cAAc,CAAC;YACtC,KAAK,CAAC,IAAI,CAAC,UAAU;gBACnB,IAAI,CAAC;oBACH,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,CAAC;oBACpD,IAAI,IAAI,EAAE,CAAC;wBACT,UAAU,CAAC,KAAK,EAAE,CAAC;wBACnB,OAAO;oBACT,CAAC;oBAED,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;gBACnD,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACxB,CAAC;YACH,CAAC;YACD,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;SACtC,CAAC,CAAC;QAEH,OAAO,KAAK,CACV,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,wBAAwB,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EACvF;YACE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE;YACX,IAAI,EAAE,YAAY;YAClB,mBAAmB;YACnB,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM;SAC/B,CACF,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,IAAI;QACf,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/C,CAAC;IAEM,CAAC,MAAM,CAAC,aAAa,CAAC;QAC3B,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;CACF"}
@@ -0,0 +1,17 @@
1
+ import { DeserializedJson } from "../../schemas/json.js";
2
+ import { ApiRequestOptions } from "../zodfetch.js";
3
+ import type { RunMetadataManager } from "./types.js";
4
+ export declare class NoopRunMetadataManager implements RunMetadataManager {
5
+ appendKey(key: string, value: DeserializedJson): void;
6
+ removeFromKey(key: string, value: DeserializedJson): void;
7
+ incrementKey(key: string, value: number): void;
8
+ decrementKey(key: string, value: number): void;
9
+ stream<T>(key: string, value: AsyncIterable<T>): Promise<AsyncIterable<T>>;
10
+ flush(requestOptions?: ApiRequestOptions): Promise<void>;
11
+ enterWithMetadata(metadata: Record<string, DeserializedJson>): void;
12
+ current(): Record<string, DeserializedJson> | undefined;
13
+ getKey(key: string): DeserializedJson | undefined;
14
+ setKey(key: string, value: DeserializedJson): void;
15
+ deleteKey(key: string): void;
16
+ update(metadata: Record<string, DeserializedJson>): void;
17
+ }