@trigger.dev/core 0.0.0-prerelease-20251007140052 → 0.0.0-prerelease-20251113152046
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commonjs/v3/apiClient/index.d.ts +106 -8
- package/dist/commonjs/v3/apiClient/index.js +75 -4
- package/dist/commonjs/v3/apiClient/index.js.map +1 -1
- package/dist/commonjs/v3/apiClient/runStream.d.ts +28 -14
- package/dist/commonjs/v3/apiClient/runStream.js +175 -58
- package/dist/commonjs/v3/apiClient/runStream.js.map +1 -1
- package/dist/commonjs/v3/apiClientManager/index.d.ts +1 -1
- package/dist/commonjs/v3/apiClientManager/index.js +11 -4
- package/dist/commonjs/v3/apiClientManager/index.js.map +1 -1
- package/dist/commonjs/v3/apiClientManager/types.d.ts +2 -1
- package/dist/commonjs/v3/errors.d.ts +5 -0
- package/dist/commonjs/v3/errors.js +12 -1
- package/dist/commonjs/v3/errors.js.map +1 -1
- package/dist/commonjs/v3/index.d.ts +1 -0
- package/dist/commonjs/v3/index.js +1 -0
- package/dist/commonjs/v3/index.js.map +1 -1
- package/dist/commonjs/v3/lifecycle-hooks-api.d.ts +1 -1
- package/dist/commonjs/v3/lifecycleHooks/index.d.ts +5 -1
- package/dist/commonjs/v3/lifecycleHooks/index.js +12 -0
- package/dist/commonjs/v3/lifecycleHooks/index.js.map +1 -1
- package/dist/commonjs/v3/lifecycleHooks/manager.d.ts +11 -1
- package/dist/commonjs/v3/lifecycleHooks/manager.js +36 -0
- package/dist/commonjs/v3/lifecycleHooks/manager.js.map +1 -1
- package/dist/commonjs/v3/lifecycleHooks/types.d.ts +12 -0
- package/dist/commonjs/v3/realtime-streams-api.d.ts +3 -0
- package/dist/commonjs/v3/realtime-streams-api.js +23 -0
- package/dist/commonjs/v3/realtime-streams-api.js.map +1 -0
- package/dist/commonjs/v3/realtimeStreams/index.d.ts +10 -0
- package/dist/commonjs/v3/realtimeStreams/index.js +31 -0
- package/dist/commonjs/v3/realtimeStreams/index.js.map +1 -0
- package/dist/commonjs/v3/realtimeStreams/manager.d.ts +14 -0
- package/dist/commonjs/v3/realtimeStreams/manager.js +128 -0
- package/dist/commonjs/v3/realtimeStreams/manager.js.map +1 -0
- package/dist/commonjs/v3/realtimeStreams/noopManager.d.ts +5 -0
- package/dist/commonjs/v3/realtimeStreams/noopManager.js +17 -0
- package/dist/commonjs/v3/realtimeStreams/noopManager.js.map +1 -0
- package/dist/commonjs/v3/realtimeStreams/streamInstance.d.ts +23 -0
- package/dist/commonjs/v3/realtimeStreams/streamInstance.js +106 -0
- package/dist/commonjs/v3/realtimeStreams/streamInstance.js.map +1 -0
- package/dist/commonjs/v3/realtimeStreams/streamsWriterV1.d.ts +49 -0
- package/dist/commonjs/v3/realtimeStreams/streamsWriterV1.js +382 -0
- package/dist/commonjs/v3/realtimeStreams/streamsWriterV1.js.map +1 -0
- package/dist/commonjs/v3/realtimeStreams/streamsWriterV2.d.ts +60 -0
- package/dist/commonjs/v3/realtimeStreams/streamsWriterV2.js +179 -0
- package/dist/commonjs/v3/realtimeStreams/streamsWriterV2.js.map +1 -0
- package/dist/commonjs/v3/realtimeStreams/types.d.ts +119 -0
- package/dist/commonjs/v3/realtimeStreams/types.js +3 -0
- package/dist/commonjs/v3/realtimeStreams/types.js.map +1 -0
- package/dist/commonjs/v3/runEngineWorker/supervisor/http.d.ts +1 -0
- package/dist/commonjs/v3/runEngineWorker/supervisor/schemas.d.ts +7 -0
- package/dist/commonjs/v3/runEngineWorker/workload/http.d.ts +1 -0
- package/dist/commonjs/v3/runEngineWorker/workload/schemas.d.ts +7 -0
- package/dist/commonjs/v3/runMetadata/manager.d.ts +3 -8
- package/dist/commonjs/v3/runMetadata/manager.js +14 -79
- package/dist/commonjs/v3/runMetadata/manager.js.map +1 -1
- package/dist/commonjs/v3/schemas/api.d.ts +69 -25
- package/dist/commonjs/v3/schemas/api.js +24 -6
- package/dist/commonjs/v3/schemas/api.js.map +1 -1
- package/dist/commonjs/v3/schemas/common.d.ts +5 -0
- package/dist/commonjs/v3/schemas/common.js +1 -0
- package/dist/commonjs/v3/schemas/common.js.map +1 -1
- package/dist/commonjs/v3/schemas/messages.d.ts +50 -0
- package/dist/commonjs/v3/schemas/messages.js +7 -0
- package/dist/commonjs/v3/schemas/messages.js.map +1 -1
- package/dist/commonjs/v3/schemas/queues.d.ts +41 -2
- package/dist/commonjs/v3/schemas/queues.js +17 -2
- package/dist/commonjs/v3/schemas/queues.js.map +1 -1
- package/dist/commonjs/v3/schemas/runEngine.d.ts +7 -0
- package/dist/commonjs/v3/schemas/schemas.d.ts +7 -0
- package/dist/commonjs/v3/semanticInternalAttributes.d.ts +1 -0
- package/dist/commonjs/v3/semanticInternalAttributes.js +1 -0
- package/dist/commonjs/v3/semanticInternalAttributes.js.map +1 -1
- package/dist/commonjs/v3/streams/asyncIterableStream.d.ts +2 -0
- package/dist/commonjs/v3/streams/asyncIterableStream.js +47 -0
- package/dist/commonjs/v3/streams/asyncIterableStream.js.map +1 -1
- package/dist/commonjs/v3/timeout/api.d.ts +1 -0
- package/dist/commonjs/v3/timeout/api.js +6 -0
- package/dist/commonjs/v3/timeout/api.js.map +1 -1
- package/dist/commonjs/v3/timeout/types.d.ts +1 -0
- package/dist/commonjs/v3/timeout/types.js.map +1 -1
- package/dist/commonjs/v3/timeout/usageTimeoutManager.d.ts +2 -0
- package/dist/commonjs/v3/timeout/usageTimeoutManager.js +10 -1
- package/dist/commonjs/v3/timeout/usageTimeoutManager.js.map +1 -1
- package/dist/commonjs/v3/types/tasks.d.ts +17 -2
- package/dist/commonjs/v3/types/tasks.js.map +1 -1
- package/dist/commonjs/v3/utils/globals.d.ts +2 -0
- package/dist/commonjs/v3/utils/globals.js.map +1 -1
- package/dist/commonjs/v3/waitUntil/index.d.ts +1 -1
- package/dist/commonjs/v3/waitUntil/index.js +3 -3
- package/dist/commonjs/v3/waitUntil/index.js.map +1 -1
- package/dist/commonjs/v3/waitUntil/manager.d.ts +3 -1
- package/dist/commonjs/v3/waitUntil/manager.js +7 -3
- package/dist/commonjs/v3/waitUntil/manager.js.map +1 -1
- package/dist/commonjs/v3/waitUntil/types.d.ts +2 -2
- package/dist/commonjs/v3/workers/index.d.ts +1 -0
- package/dist/commonjs/v3/workers/index.js +3 -1
- package/dist/commonjs/v3/workers/index.js.map +1 -1
- package/dist/commonjs/v3/workers/taskExecutor.js +53 -40
- package/dist/commonjs/v3/workers/taskExecutor.js.map +1 -1
- package/dist/commonjs/v3/workers/warmStartClient.d.ts +3 -0
- package/dist/commonjs/v3/workers/warmStartClient.js +67 -28
- package/dist/commonjs/v3/workers/warmStartClient.js.map +1 -1
- package/dist/commonjs/version.js +1 -1
- package/dist/esm/v3/apiClient/index.d.ts +106 -8
- package/dist/esm/v3/apiClient/index.js +76 -6
- package/dist/esm/v3/apiClient/index.js.map +1 -1
- package/dist/esm/v3/apiClient/runStream.d.ts +28 -14
- package/dist/esm/v3/apiClient/runStream.js +176 -58
- package/dist/esm/v3/apiClient/runStream.js.map +1 -1
- package/dist/esm/v3/apiClientManager/index.d.ts +1 -1
- package/dist/esm/v3/apiClientManager/index.js +11 -4
- package/dist/esm/v3/apiClientManager/index.js.map +1 -1
- package/dist/esm/v3/apiClientManager/types.d.ts +2 -1
- package/dist/esm/v3/errors.d.ts +5 -0
- package/dist/esm/v3/errors.js +10 -0
- package/dist/esm/v3/errors.js.map +1 -1
- package/dist/esm/v3/index.d.ts +1 -0
- package/dist/esm/v3/index.js +1 -0
- package/dist/esm/v3/index.js.map +1 -1
- package/dist/esm/v3/lifecycle-hooks-api.d.ts +1 -1
- package/dist/esm/v3/lifecycleHooks/index.d.ts +5 -1
- package/dist/esm/v3/lifecycleHooks/index.js +12 -0
- package/dist/esm/v3/lifecycleHooks/index.js.map +1 -1
- package/dist/esm/v3/lifecycleHooks/manager.d.ts +11 -1
- package/dist/esm/v3/lifecycleHooks/manager.js +36 -0
- package/dist/esm/v3/lifecycleHooks/manager.js.map +1 -1
- package/dist/esm/v3/lifecycleHooks/types.d.ts +12 -0
- package/dist/esm/v3/realtime-streams-api.d.ts +3 -0
- package/dist/esm/v3/realtime-streams-api.js +6 -0
- package/dist/esm/v3/realtime-streams-api.js.map +1 -0
- package/dist/esm/v3/realtimeStreams/index.d.ts +10 -0
- package/dist/esm/v3/realtimeStreams/index.js +27 -0
- package/dist/esm/v3/realtimeStreams/index.js.map +1 -0
- package/dist/esm/v3/realtimeStreams/manager.d.ts +14 -0
- package/dist/esm/v3/realtimeStreams/manager.js +124 -0
- package/dist/esm/v3/realtimeStreams/manager.js.map +1 -0
- package/dist/esm/v3/realtimeStreams/noopManager.d.ts +5 -0
- package/dist/esm/v3/realtimeStreams/noopManager.js +13 -0
- package/dist/esm/v3/realtimeStreams/noopManager.js.map +1 -0
- package/dist/esm/v3/realtimeStreams/streamInstance.d.ts +23 -0
- package/dist/esm/v3/realtimeStreams/streamInstance.js +102 -0
- package/dist/esm/v3/realtimeStreams/streamInstance.js.map +1 -0
- package/dist/esm/v3/realtimeStreams/streamsWriterV1.d.ts +49 -0
- package/dist/esm/v3/realtimeStreams/streamsWriterV1.js +378 -0
- package/dist/esm/v3/realtimeStreams/streamsWriterV1.js.map +1 -0
- package/dist/esm/v3/realtimeStreams/streamsWriterV2.d.ts +60 -0
- package/dist/esm/v3/realtimeStreams/streamsWriterV2.js +175 -0
- package/dist/esm/v3/realtimeStreams/streamsWriterV2.js.map +1 -0
- package/dist/esm/v3/realtimeStreams/types.d.ts +119 -0
- package/dist/esm/v3/realtimeStreams/types.js +2 -0
- package/dist/esm/v3/realtimeStreams/types.js.map +1 -0
- package/dist/esm/v3/runEngineWorker/supervisor/http.d.ts +1 -0
- package/dist/esm/v3/runEngineWorker/supervisor/schemas.d.ts +7 -0
- package/dist/esm/v3/runEngineWorker/workload/http.d.ts +1 -0
- package/dist/esm/v3/runEngineWorker/workload/schemas.d.ts +7 -0
- package/dist/esm/v3/runMetadata/manager.d.ts +3 -8
- package/dist/esm/v3/runMetadata/manager.js +14 -79
- package/dist/esm/v3/runMetadata/manager.js.map +1 -1
- package/dist/esm/v3/schemas/api.d.ts +69 -25
- package/dist/esm/v3/schemas/api.js +21 -3
- package/dist/esm/v3/schemas/api.js.map +1 -1
- package/dist/esm/v3/schemas/common.d.ts +5 -0
- package/dist/esm/v3/schemas/common.js +1 -0
- package/dist/esm/v3/schemas/common.js.map +1 -1
- package/dist/esm/v3/schemas/messages.d.ts +50 -0
- package/dist/esm/v3/schemas/messages.js +7 -0
- package/dist/esm/v3/schemas/messages.js.map +1 -1
- package/dist/esm/v3/schemas/queues.d.ts +41 -2
- package/dist/esm/v3/schemas/queues.js +17 -2
- package/dist/esm/v3/schemas/queues.js.map +1 -1
- package/dist/esm/v3/schemas/runEngine.d.ts +7 -0
- package/dist/esm/v3/schemas/schemas.d.ts +7 -0
- package/dist/esm/v3/semanticInternalAttributes.d.ts +1 -0
- package/dist/esm/v3/semanticInternalAttributes.js +1 -0
- package/dist/esm/v3/semanticInternalAttributes.js.map +1 -1
- package/dist/esm/v3/streams/asyncIterableStream.d.ts +2 -0
- package/dist/esm/v3/streams/asyncIterableStream.js +45 -0
- package/dist/esm/v3/streams/asyncIterableStream.js.map +1 -1
- package/dist/esm/v3/timeout/api.d.ts +1 -0
- package/dist/esm/v3/timeout/api.js +6 -0
- package/dist/esm/v3/timeout/api.js.map +1 -1
- package/dist/esm/v3/timeout/types.d.ts +1 -0
- package/dist/esm/v3/timeout/types.js.map +1 -1
- package/dist/esm/v3/timeout/usageTimeoutManager.d.ts +2 -0
- package/dist/esm/v3/timeout/usageTimeoutManager.js +10 -1
- package/dist/esm/v3/timeout/usageTimeoutManager.js.map +1 -1
- package/dist/esm/v3/types/tasks.d.ts +17 -2
- package/dist/esm/v3/types/tasks.js.map +1 -1
- package/dist/esm/v3/utils/globals.d.ts +2 -0
- package/dist/esm/v3/utils/globals.js.map +1 -1
- package/dist/esm/v3/waitUntil/index.d.ts +1 -1
- package/dist/esm/v3/waitUntil/index.js +3 -3
- package/dist/esm/v3/waitUntil/index.js.map +1 -1
- package/dist/esm/v3/waitUntil/manager.d.ts +3 -1
- package/dist/esm/v3/waitUntil/manager.js +7 -3
- package/dist/esm/v3/waitUntil/manager.js.map +1 -1
- package/dist/esm/v3/waitUntil/types.d.ts +2 -2
- package/dist/esm/v3/workers/index.d.ts +1 -0
- package/dist/esm/v3/workers/index.js +1 -0
- package/dist/esm/v3/workers/index.js.map +1 -1
- package/dist/esm/v3/workers/taskExecutor.js +54 -41
- package/dist/esm/v3/workers/taskExecutor.js.map +1 -1
- package/dist/esm/v3/workers/warmStartClient.d.ts +3 -0
- package/dist/esm/v3/workers/warmStartClient.js +67 -28
- package/dist/esm/v3/workers/warmStartClient.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/package.json +2 -1
- package/dist/commonjs/v3/runMetadata/metadataStream.d.ts +0 -28
- package/dist/commonjs/v3/runMetadata/metadataStream.js +0 -155
- package/dist/commonjs/v3/runMetadata/metadataStream.js.map +0 -1
- package/dist/esm/v3/runMetadata/metadataStream.d.ts +0 -28
- package/dist/esm/v3/runMetadata/metadataStream.js +0 -151
- package/dist/esm/v3/runMetadata/metadataStream.js.map +0 -1
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { getGlobal, registerGlobal } from "../utils/globals.js";
|
|
2
|
+
import { NoopRealtimeStreamsManager } from "./noopManager.js";
|
|
3
|
+
const API_NAME = "realtime-streams";
|
|
4
|
+
const NOOP_MANAGER = new NoopRealtimeStreamsManager();
|
|
5
|
+
export class RealtimeStreamsAPI {
|
|
6
|
+
static _instance;
|
|
7
|
+
constructor() { }
|
|
8
|
+
static getInstance() {
|
|
9
|
+
if (!this._instance) {
|
|
10
|
+
this._instance = new RealtimeStreamsAPI();
|
|
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
|
+
pipe(key, source, options) {
|
|
21
|
+
return this.#getManager().pipe(key, source, options);
|
|
22
|
+
}
|
|
23
|
+
append(key, part, options) {
|
|
24
|
+
return this.#getManager().append(key, part, options);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/v3/realtimeStreams/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAO9D,MAAM,QAAQ,GAAG,kBAAkB,CAAC;AAEpC,MAAM,YAAY,GAAG,IAAI,0BAA0B,EAAE,CAAC;AAEtD,MAAM,OAAO,kBAAkB;IACrB,MAAM,CAAC,SAAS,CAAsB;IAE9C,gBAAuB,CAAC;IAEjB,MAAM,CAAC,WAAW;QACvB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC,SAAS,GAAG,IAAI,kBAAkB,EAAE,CAAC;QAC5C,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,gBAAgB,CAAC,OAA+B;QAC9C,OAAO,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,WAAW;QACT,OAAO,SAAS,CAAC,QAAQ,CAAC,IAAI,YAAY,CAAC;IAC7C,CAAC;IAEM,IAAI,CACT,GAAW,EACX,MAA4C,EAC5C,OAAwC;QAExC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;IAEM,MAAM,CACX,GAAW,EACX,IAAW,EACX,OAAwC;QAExC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;CACF"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ApiClient } from "../apiClient/index.js";
|
|
2
|
+
import { RealtimeStreamInstance, RealtimeStreamOperationOptions, RealtimeStreamsManager } from "./types.js";
|
|
3
|
+
export declare class StandardRealtimeStreamsManager implements RealtimeStreamsManager {
|
|
4
|
+
private apiClient;
|
|
5
|
+
private baseUrl;
|
|
6
|
+
private debug;
|
|
7
|
+
constructor(apiClient: ApiClient, baseUrl: string, debug?: boolean);
|
|
8
|
+
private activeStreams;
|
|
9
|
+
reset(): void;
|
|
10
|
+
pipe<T>(key: string, source: AsyncIterable<T> | ReadableStream<T>, options?: RealtimeStreamOperationOptions): RealtimeStreamInstance<T>;
|
|
11
|
+
append<TPart extends BodyInit>(key: string, part: TPart, options?: RealtimeStreamOperationOptions): Promise<void>;
|
|
12
|
+
hasActiveStreams(): boolean;
|
|
13
|
+
waitForAllStreams(timeout?: number): Promise<void>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { ensureReadableStream } from "../streams/asyncIterableStream.js";
|
|
2
|
+
import { taskContext } from "../task-context-api.js";
|
|
3
|
+
import { StreamInstance } from "./streamInstance.js";
|
|
4
|
+
export class StandardRealtimeStreamsManager {
|
|
5
|
+
apiClient;
|
|
6
|
+
baseUrl;
|
|
7
|
+
debug;
|
|
8
|
+
constructor(apiClient, baseUrl, debug = false) {
|
|
9
|
+
this.apiClient = apiClient;
|
|
10
|
+
this.baseUrl = baseUrl;
|
|
11
|
+
this.debug = debug;
|
|
12
|
+
}
|
|
13
|
+
// Track active streams - using a Set allows multiple streams for the same key to coexist
|
|
14
|
+
activeStreams = new Set();
|
|
15
|
+
reset() {
|
|
16
|
+
this.activeStreams.clear();
|
|
17
|
+
}
|
|
18
|
+
pipe(key, source, options) {
|
|
19
|
+
// Normalize ReadableStream to AsyncIterable
|
|
20
|
+
const readableStreamSource = ensureReadableStream(source);
|
|
21
|
+
const runId = getRunIdForOptions(options);
|
|
22
|
+
if (!runId) {
|
|
23
|
+
throw new Error("Could not determine the target run ID for the realtime stream. Please specify a target run ID using the `target` option.");
|
|
24
|
+
}
|
|
25
|
+
// Create an AbortController for this stream
|
|
26
|
+
const abortController = new AbortController();
|
|
27
|
+
// Chain with user-provided signal if present
|
|
28
|
+
const combinedSignal = options?.signal
|
|
29
|
+
? AbortSignal.any?.([options.signal, abortController.signal]) ?? abortController.signal
|
|
30
|
+
: abortController.signal;
|
|
31
|
+
const streamInstance = new StreamInstance({
|
|
32
|
+
apiClient: this.apiClient,
|
|
33
|
+
baseUrl: this.baseUrl,
|
|
34
|
+
runId,
|
|
35
|
+
key,
|
|
36
|
+
source: readableStreamSource,
|
|
37
|
+
signal: combinedSignal,
|
|
38
|
+
requestOptions: options?.requestOptions,
|
|
39
|
+
target: options?.target,
|
|
40
|
+
debug: this.debug,
|
|
41
|
+
});
|
|
42
|
+
// Register this stream
|
|
43
|
+
const streamInfo = { wait: () => streamInstance.wait(), abortController };
|
|
44
|
+
this.activeStreams.add(streamInfo);
|
|
45
|
+
// Clean up when stream completes
|
|
46
|
+
streamInstance.wait().finally(() => this.activeStreams.delete(streamInfo));
|
|
47
|
+
return {
|
|
48
|
+
wait: () => streamInstance.wait(),
|
|
49
|
+
stream: streamInstance.stream,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
async append(key, part, options) {
|
|
53
|
+
const runId = getRunIdForOptions(options);
|
|
54
|
+
if (!runId) {
|
|
55
|
+
throw new Error("Could not determine the target run ID for the realtime stream. Please specify a target run ID using the `target` option.");
|
|
56
|
+
}
|
|
57
|
+
const result = await this.apiClient.appendToStream(runId, "self", key, part, options?.requestOptions);
|
|
58
|
+
if (!result.ok) {
|
|
59
|
+
throw new Error(`Failed to append to stream: ${result.message ?? "Unknown error"}`);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
hasActiveStreams() {
|
|
63
|
+
return this.activeStreams.size > 0;
|
|
64
|
+
}
|
|
65
|
+
// Waits for all the streams to finish
|
|
66
|
+
async waitForAllStreams(timeout = 60_000) {
|
|
67
|
+
if (this.activeStreams.size === 0) {
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
const promises = Array.from(this.activeStreams).map((stream) => stream.wait());
|
|
71
|
+
// Create a timeout promise that resolves to a special sentinel value
|
|
72
|
+
const TIMEOUT_SENTINEL = Symbol("timeout");
|
|
73
|
+
const timeoutPromise = new Promise((resolve) => setTimeout(() => resolve(TIMEOUT_SENTINEL), timeout));
|
|
74
|
+
// Race between all streams completing/rejecting and the timeout
|
|
75
|
+
const result = await Promise.race([Promise.all(promises), timeoutPromise]);
|
|
76
|
+
// Check if we timed out
|
|
77
|
+
if (result === TIMEOUT_SENTINEL) {
|
|
78
|
+
// Timeout occurred - abort all active streams
|
|
79
|
+
const abortedCount = this.activeStreams.size;
|
|
80
|
+
for (const streamInfo of this.activeStreams) {
|
|
81
|
+
streamInfo.abortController.abort();
|
|
82
|
+
this.activeStreams.delete(streamInfo);
|
|
83
|
+
}
|
|
84
|
+
throw new Error(`Timeout waiting for streams to finish after ${timeout}ms. Aborted ${abortedCount} active stream(s).`);
|
|
85
|
+
}
|
|
86
|
+
// If we reach here, Promise.all completed (either all resolved or one rejected)
|
|
87
|
+
// Any rejection from Promise.all will have already propagated
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
function getRunIdForOptions(options) {
|
|
91
|
+
if (options?.target) {
|
|
92
|
+
if (options.target === "parent") {
|
|
93
|
+
return taskContext.ctx?.run?.parentTaskRunId ?? taskContext.ctx?.run?.id;
|
|
94
|
+
}
|
|
95
|
+
if (options.target === "root") {
|
|
96
|
+
return taskContext.ctx?.run?.rootTaskRunId ?? taskContext.ctx?.run?.id;
|
|
97
|
+
}
|
|
98
|
+
if (options.target === "self") {
|
|
99
|
+
return taskContext.ctx?.run?.id;
|
|
100
|
+
}
|
|
101
|
+
return options.target;
|
|
102
|
+
}
|
|
103
|
+
return taskContext.ctx?.run?.id;
|
|
104
|
+
}
|
|
105
|
+
function parseCreateStreamResponse(version, headers) {
|
|
106
|
+
if (version === "v1") {
|
|
107
|
+
return { version: "v1" };
|
|
108
|
+
}
|
|
109
|
+
const accessToken = headers?.["x-s2-access-token"];
|
|
110
|
+
const basin = headers?.["x-s2-basin"];
|
|
111
|
+
if (!accessToken || !basin) {
|
|
112
|
+
return { version: "v1" };
|
|
113
|
+
}
|
|
114
|
+
const flushIntervalMs = headers?.["x-s2-flush-interval-ms"];
|
|
115
|
+
const maxRetries = headers?.["x-s2-max-retries"];
|
|
116
|
+
return {
|
|
117
|
+
version: "v2",
|
|
118
|
+
accessToken,
|
|
119
|
+
basin,
|
|
120
|
+
flushIntervalMs: flushIntervalMs ? parseInt(flushIntervalMs) : undefined,
|
|
121
|
+
maxRetries: maxRetries ? parseInt(maxRetries) : undefined,
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../../../src/v3/realtimeStreams/manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { RealtimeStreamOperationOptions, RealtimeStreamInstance, RealtimeStreamsManager } from "./types.js";
|
|
2
|
+
export declare class NoopRealtimeStreamsManager implements RealtimeStreamsManager {
|
|
3
|
+
pipe<T>(key: string, source: AsyncIterable<T> | ReadableStream<T>, options?: RealtimeStreamOperationOptions): RealtimeStreamInstance<T>;
|
|
4
|
+
append<TPart extends BodyInit>(key: string, part: TPart, options?: RealtimeStreamOperationOptions): Promise<void>;
|
|
5
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { createAsyncIterableStreamFromAsyncIterable, } from "../streams/asyncIterableStream.js";
|
|
2
|
+
export class NoopRealtimeStreamsManager {
|
|
3
|
+
pipe(key, source, options) {
|
|
4
|
+
return {
|
|
5
|
+
wait: () => Promise.resolve(),
|
|
6
|
+
get stream() {
|
|
7
|
+
return createAsyncIterableStreamFromAsyncIterable(source);
|
|
8
|
+
},
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
async append(key, part, options) { }
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=noopManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"noopManager.js","sourceRoot":"","sources":["../../../../src/v3/realtimeStreams/noopManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,0CAA0C,GAC3C,MAAM,mCAAmC,CAAC;AAO3C,MAAM,OAAO,0BAA0B;IAC9B,IAAI,CACT,GAAW,EACX,MAA4C,EAC5C,OAAwC;QAExC,OAAO;YACL,IAAI,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE;YAC7B,IAAI,MAAM;gBACR,OAAO,0CAA0C,CAAC,MAAM,CAAC,CAAC;YAC5D,CAAC;SACF,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,MAAM,CACjB,GAAW,EACX,IAAW,EACX,OAAwC,IACxB,CAAC;CACpB"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ApiClient } from "../apiClient/index.js";
|
|
2
|
+
import { AsyncIterableStream } from "../streams/asyncIterableStream.js";
|
|
3
|
+
import { AnyZodFetchOptions } from "../zodfetch.js";
|
|
4
|
+
import { StreamsWriter } from "./types.js";
|
|
5
|
+
export type StreamInstanceOptions<T> = {
|
|
6
|
+
apiClient: ApiClient;
|
|
7
|
+
baseUrl: string;
|
|
8
|
+
runId: string;
|
|
9
|
+
key: string;
|
|
10
|
+
source: ReadableStream<T>;
|
|
11
|
+
signal?: AbortSignal;
|
|
12
|
+
requestOptions?: AnyZodFetchOptions;
|
|
13
|
+
target?: "self" | "parent" | "root" | string;
|
|
14
|
+
debug?: boolean;
|
|
15
|
+
};
|
|
16
|
+
export declare class StreamInstance<T> implements StreamsWriter {
|
|
17
|
+
private options;
|
|
18
|
+
private streamPromise;
|
|
19
|
+
constructor(options: StreamInstanceOptions<T>);
|
|
20
|
+
private initializeWriter;
|
|
21
|
+
wait(): Promise<void>;
|
|
22
|
+
get stream(): AsyncIterableStream<T>;
|
|
23
|
+
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { StreamsWriterV1 } from "./streamsWriterV1.js";
|
|
2
|
+
import { StreamsWriterV2 } from "./streamsWriterV2.js";
|
|
3
|
+
export class StreamInstance {
|
|
4
|
+
options;
|
|
5
|
+
streamPromise;
|
|
6
|
+
constructor(options) {
|
|
7
|
+
this.options = options;
|
|
8
|
+
this.streamPromise = this.initializeWriter();
|
|
9
|
+
}
|
|
10
|
+
async initializeWriter() {
|
|
11
|
+
const { version, headers } = await this.options.apiClient.createStream(this.options.runId, "self", this.options.key, this.options?.requestOptions);
|
|
12
|
+
const parsedResponse = parseCreateStreamResponse(version, headers);
|
|
13
|
+
const streamWriter = parsedResponse.version === "v1"
|
|
14
|
+
? new StreamsWriterV1({
|
|
15
|
+
key: this.options.key,
|
|
16
|
+
runId: this.options.runId,
|
|
17
|
+
source: this.options.source,
|
|
18
|
+
baseUrl: this.options.baseUrl,
|
|
19
|
+
headers: this.options.apiClient.getHeaders(),
|
|
20
|
+
signal: this.options.signal,
|
|
21
|
+
version,
|
|
22
|
+
target: "self",
|
|
23
|
+
})
|
|
24
|
+
: new StreamsWriterV2({
|
|
25
|
+
basin: parsedResponse.basin,
|
|
26
|
+
stream: parsedResponse.streamName ?? this.options.key,
|
|
27
|
+
accessToken: parsedResponse.accessToken,
|
|
28
|
+
source: this.options.source,
|
|
29
|
+
signal: this.options.signal,
|
|
30
|
+
debug: this.options.debug,
|
|
31
|
+
flushIntervalMs: parsedResponse.flushIntervalMs,
|
|
32
|
+
maxRetries: parsedResponse.maxRetries,
|
|
33
|
+
});
|
|
34
|
+
return streamWriter;
|
|
35
|
+
}
|
|
36
|
+
async wait() {
|
|
37
|
+
return this.streamPromise.then((writer) => writer.wait());
|
|
38
|
+
}
|
|
39
|
+
get stream() {
|
|
40
|
+
const self = this;
|
|
41
|
+
return new ReadableStream({
|
|
42
|
+
async start(controller) {
|
|
43
|
+
const streamWriter = await self.streamPromise;
|
|
44
|
+
const iterator = streamWriter[Symbol.asyncIterator]();
|
|
45
|
+
while (true) {
|
|
46
|
+
if (self.options.signal?.aborted) {
|
|
47
|
+
controller.close();
|
|
48
|
+
break;
|
|
49
|
+
}
|
|
50
|
+
const { done, value } = await iterator.next();
|
|
51
|
+
if (done) {
|
|
52
|
+
controller.close();
|
|
53
|
+
break;
|
|
54
|
+
}
|
|
55
|
+
controller.enqueue(value);
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
function parseCreateStreamResponse(version, headers) {
|
|
62
|
+
if (version === "v1") {
|
|
63
|
+
return { version: "v1" };
|
|
64
|
+
}
|
|
65
|
+
const accessToken = headers?.["x-s2-access-token"];
|
|
66
|
+
const basin = headers?.["x-s2-basin"];
|
|
67
|
+
if (!accessToken || !basin) {
|
|
68
|
+
return { version: "v1" };
|
|
69
|
+
}
|
|
70
|
+
const flushIntervalMs = headers?.["x-s2-flush-interval-ms"];
|
|
71
|
+
const maxRetries = headers?.["x-s2-max-retries"];
|
|
72
|
+
const streamName = headers?.["x-s2-stream-name"];
|
|
73
|
+
return {
|
|
74
|
+
version: "v2",
|
|
75
|
+
accessToken,
|
|
76
|
+
basin,
|
|
77
|
+
flushIntervalMs: flushIntervalMs ? parseInt(flushIntervalMs) : undefined,
|
|
78
|
+
maxRetries: maxRetries ? parseInt(maxRetries) : undefined,
|
|
79
|
+
streamName,
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
async function* streamToAsyncIterator(stream) {
|
|
83
|
+
const reader = stream.getReader();
|
|
84
|
+
try {
|
|
85
|
+
while (true) {
|
|
86
|
+
const { done, value } = await reader.read();
|
|
87
|
+
if (done)
|
|
88
|
+
return;
|
|
89
|
+
yield value;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
finally {
|
|
93
|
+
safeReleaseLock(reader);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
function safeReleaseLock(reader) {
|
|
97
|
+
try {
|
|
98
|
+
reader.releaseLock();
|
|
99
|
+
}
|
|
100
|
+
catch (error) { }
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=streamInstance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"streamInstance.js","sourceRoot":"","sources":["../../../../src/v3/realtimeStreams/streamInstance.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { StreamsWriter } from "./types.js";
|
|
2
|
+
export type StreamsWriterV1Options<T> = {
|
|
3
|
+
baseUrl: string;
|
|
4
|
+
runId: string;
|
|
5
|
+
key: string;
|
|
6
|
+
source: ReadableStream<T>;
|
|
7
|
+
headers?: Record<string, string>;
|
|
8
|
+
signal?: AbortSignal;
|
|
9
|
+
version?: string;
|
|
10
|
+
target?: "self" | "parent" | "root";
|
|
11
|
+
maxRetries?: number;
|
|
12
|
+
maxBufferSize?: number;
|
|
13
|
+
clientId?: string;
|
|
14
|
+
};
|
|
15
|
+
export declare class StreamsWriterV1<T> implements StreamsWriter {
|
|
16
|
+
private options;
|
|
17
|
+
private controller;
|
|
18
|
+
private serverStream;
|
|
19
|
+
private consumerStream;
|
|
20
|
+
private streamPromise;
|
|
21
|
+
private retryCount;
|
|
22
|
+
private readonly maxRetries;
|
|
23
|
+
private currentChunkIndex;
|
|
24
|
+
private readonly baseDelayMs;
|
|
25
|
+
private readonly maxDelayMs;
|
|
26
|
+
private readonly maxBufferSize;
|
|
27
|
+
private readonly clientId;
|
|
28
|
+
private ringBuffer;
|
|
29
|
+
private bufferStartIndex;
|
|
30
|
+
private highestBufferedIndex;
|
|
31
|
+
private streamReader;
|
|
32
|
+
private bufferReaderTask;
|
|
33
|
+
private streamComplete;
|
|
34
|
+
constructor(options: StreamsWriterV1Options<T>);
|
|
35
|
+
private generateClientId;
|
|
36
|
+
private startBuffering;
|
|
37
|
+
private makeRequest;
|
|
38
|
+
private initializeServerStream;
|
|
39
|
+
wait(): Promise<void>;
|
|
40
|
+
[Symbol.asyncIterator](): AsyncIterableIterator<T>;
|
|
41
|
+
private buildUrl;
|
|
42
|
+
private isRetryableError;
|
|
43
|
+
private isRetryableStatusCode;
|
|
44
|
+
private delay;
|
|
45
|
+
private calculateBackoffDelay;
|
|
46
|
+
private addToRingBuffer;
|
|
47
|
+
private getChunksFromBuffer;
|
|
48
|
+
private queryServerLastChunkIndex;
|
|
49
|
+
}
|