@chrt-inc/typescript-sdk 1.559.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/Client.js +2 -2
- package/dist/cjs/api/resources/utils/resources/dev/client/Client.d.ts +1 -12
- package/dist/cjs/api/resources/utils/resources/dev/client/Client.js +13 -12
- package/dist/cjs/core/index.d.ts +1 -0
- package/dist/cjs/core/index.js +1 -0
- package/dist/cjs/core/stream/Stream.d.ts +46 -0
- package/dist/cjs/core/stream/Stream.js +169 -0
- package/dist/cjs/core/stream/index.d.ts +1 -0
- package/dist/cjs/core/stream/index.js +5 -0
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/esm/Client.mjs +2 -2
- package/dist/esm/api/resources/utils/resources/dev/client/Client.d.mts +1 -12
- package/dist/esm/api/resources/utils/resources/dev/client/Client.mjs +13 -12
- package/dist/esm/core/index.d.mts +1 -0
- package/dist/esm/core/index.mjs +1 -0
- package/dist/esm/core/stream/Stream.d.mts +46 -0
- package/dist/esm/core/stream/Stream.mjs +164 -0
- package/dist/esm/core/stream/index.d.mts +1 -0
- package/dist/esm/core/stream/index.mjs +1 -0
- package/dist/esm/version.d.mts +1 -1
- package/dist/esm/version.mjs +1 -1
- package/package.json +1 -1
- package/reference.md +5 -2
package/dist/cjs/Client.js
CHANGED
|
@@ -53,8 +53,8 @@ class ChrtClient {
|
|
|
53
53
|
this._options = Object.assign(Object.assign({}, _options), { headers: (0, headers_js_1.mergeHeaders)({
|
|
54
54
|
"X-Fern-Language": "JavaScript",
|
|
55
55
|
"X-Fern-SDK-Name": "@chrt-inc/typescript-sdk",
|
|
56
|
-
"X-Fern-SDK-Version": "1.
|
|
57
|
-
"User-Agent": "@chrt-inc/typescript-sdk/1.
|
|
56
|
+
"X-Fern-SDK-Version": "2.1.0",
|
|
57
|
+
"User-Agent": "@chrt-inc/typescript-sdk/2.1.0",
|
|
58
58
|
"X-Fern-Runtime": core.RUNTIME.type,
|
|
59
59
|
"X-Fern-Runtime-Version": core.RUNTIME.version,
|
|
60
60
|
}, _options === null || _options === void 0 ? void 0 : _options.headers) });
|
|
@@ -76,19 +76,8 @@ export declare class Dev {
|
|
|
76
76
|
private __postAgentOrderBuilderV1;
|
|
77
77
|
/**
|
|
78
78
|
* Same as /agent/order-builder/v1 but streams progress events via SSE as each workflow step completes. | (OrderBuilderReq) -> SSE stream of OrderBuilderProgressEvent, final OrderBuilderRes
|
|
79
|
-
*
|
|
80
|
-
* @param {Chrt.OrderBuilderReq} request
|
|
81
|
-
* @param {Dev.RequestOptions} requestOptions - Request-specific configuration.
|
|
82
|
-
*
|
|
83
|
-
* @throws {@link Chrt.UnprocessableEntityError}
|
|
84
|
-
*
|
|
85
|
-
* @example
|
|
86
|
-
* await client.utils.dev.postAgentOrderBuilderStreamV1({
|
|
87
|
-
* order_short_id: "order_short_id",
|
|
88
|
-
* text: "text"
|
|
89
|
-
* })
|
|
90
79
|
*/
|
|
91
|
-
postAgentOrderBuilderStreamV1(request: Chrt.OrderBuilderReq, requestOptions?: Dev.RequestOptions): core.HttpResponsePromise<
|
|
80
|
+
postAgentOrderBuilderStreamV1(request: Chrt.OrderBuilderReq, requestOptions?: Dev.RequestOptions): core.HttpResponsePromise<core.Stream<string>>;
|
|
92
81
|
private __postAgentOrderBuilderStreamV1;
|
|
93
82
|
/**
|
|
94
83
|
* (DEPRECATED) Extracts and returns the user ID from the authenticated request's JWT token. | () -> (str)
|
|
@@ -248,17 +248,6 @@ class Dev {
|
|
|
248
248
|
}
|
|
249
249
|
/**
|
|
250
250
|
* Same as /agent/order-builder/v1 but streams progress events via SSE as each workflow step completes. | (OrderBuilderReq) -> SSE stream of OrderBuilderProgressEvent, final OrderBuilderRes
|
|
251
|
-
*
|
|
252
|
-
* @param {Chrt.OrderBuilderReq} request
|
|
253
|
-
* @param {Dev.RequestOptions} requestOptions - Request-specific configuration.
|
|
254
|
-
*
|
|
255
|
-
* @throws {@link Chrt.UnprocessableEntityError}
|
|
256
|
-
*
|
|
257
|
-
* @example
|
|
258
|
-
* await client.utils.dev.postAgentOrderBuilderStreamV1({
|
|
259
|
-
* order_short_id: "order_short_id",
|
|
260
|
-
* text: "text"
|
|
261
|
-
* })
|
|
262
251
|
*/
|
|
263
252
|
postAgentOrderBuilderStreamV1(request, requestOptions) {
|
|
264
253
|
return core.HttpResponsePromise.fromPromise(this.__postAgentOrderBuilderStreamV1(request, requestOptions));
|
|
@@ -275,12 +264,24 @@ class Dev {
|
|
|
275
264
|
queryParameters: requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.queryParams,
|
|
276
265
|
requestType: "json",
|
|
277
266
|
body: request,
|
|
267
|
+
responseType: "sse",
|
|
278
268
|
timeoutMs: (requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.timeoutInSeconds) != null ? requestOptions.timeoutInSeconds * 1000 : 60000,
|
|
279
269
|
maxRetries: requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.maxRetries,
|
|
280
270
|
abortSignal: requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.abortSignal,
|
|
281
271
|
});
|
|
282
272
|
if (_response.ok) {
|
|
283
|
-
return {
|
|
273
|
+
return {
|
|
274
|
+
data: new core.Stream({
|
|
275
|
+
stream: _response.body,
|
|
276
|
+
parse: (data) => data,
|
|
277
|
+
signal: requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.abortSignal,
|
|
278
|
+
eventShape: {
|
|
279
|
+
type: "sse",
|
|
280
|
+
streamTerminator: "[DONE]",
|
|
281
|
+
},
|
|
282
|
+
}),
|
|
283
|
+
rawResponse: _response.rawResponse,
|
|
284
|
+
};
|
|
284
285
|
}
|
|
285
286
|
if (_response.error.reason === "status-code") {
|
|
286
287
|
switch (_response.error.statusCode) {
|
package/dist/cjs/core/index.d.ts
CHANGED
package/dist/cjs/core/index.js
CHANGED
|
@@ -43,4 +43,5 @@ exports.url = __importStar(require("./url/index.js"));
|
|
|
43
43
|
__exportStar(require("./auth/index.js"), exports);
|
|
44
44
|
__exportStar(require("./base64.js"), exports);
|
|
45
45
|
__exportStar(require("./form-data-utils/index.js"), exports);
|
|
46
|
+
__exportStar(require("./stream/index.js"), exports);
|
|
46
47
|
exports.file = __importStar(require("./file/index.js"));
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
export declare namespace Stream {
|
|
2
|
+
interface Args {
|
|
3
|
+
/**
|
|
4
|
+
* The HTTP response stream to read from.
|
|
5
|
+
*/
|
|
6
|
+
stream: ReadableStream;
|
|
7
|
+
/**
|
|
8
|
+
* The event shape to use for parsing the stream data.
|
|
9
|
+
*/
|
|
10
|
+
eventShape: JsonEvent | SseEvent;
|
|
11
|
+
/**
|
|
12
|
+
* An abort signal to stop the stream.
|
|
13
|
+
*/
|
|
14
|
+
signal?: AbortSignal;
|
|
15
|
+
}
|
|
16
|
+
interface JsonEvent {
|
|
17
|
+
type: "json";
|
|
18
|
+
messageTerminator: string;
|
|
19
|
+
}
|
|
20
|
+
interface SseEvent {
|
|
21
|
+
type: "sse";
|
|
22
|
+
streamTerminator?: string;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
export declare class Stream<T> implements AsyncIterable<T> {
|
|
26
|
+
private stream;
|
|
27
|
+
private parse;
|
|
28
|
+
/**
|
|
29
|
+
* The prefix to use for each message. For example,
|
|
30
|
+
* for SSE, the prefix is "data: ".
|
|
31
|
+
*/
|
|
32
|
+
private prefix;
|
|
33
|
+
private messageTerminator;
|
|
34
|
+
private streamTerminator;
|
|
35
|
+
private controller;
|
|
36
|
+
constructor({ stream, parse, eventShape, signal }: Stream.Args & {
|
|
37
|
+
parse: (val: unknown) => Promise<T>;
|
|
38
|
+
});
|
|
39
|
+
private iterMessages;
|
|
40
|
+
[Symbol.asyncIterator](): AsyncIterator<T, void, unknown>;
|
|
41
|
+
private decodeChunk;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Browser polyfill for ReadableStream
|
|
45
|
+
*/
|
|
46
|
+
export declare function readableStreamAsyncIterable<T>(stream: any): AsyncIterableIterator<T>;
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __asyncValues = (this && this.__asyncValues) || function (o) {
|
|
12
|
+
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
13
|
+
var m = o[Symbol.asyncIterator], i;
|
|
14
|
+
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
|
|
15
|
+
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
|
|
16
|
+
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
|
|
17
|
+
};
|
|
18
|
+
var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }
|
|
19
|
+
var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
|
|
20
|
+
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
21
|
+
var g = generator.apply(thisArg, _arguments || []), i, q = [];
|
|
22
|
+
return i = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;
|
|
23
|
+
function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }
|
|
24
|
+
function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }
|
|
25
|
+
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
|
|
26
|
+
function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
|
|
27
|
+
function fulfill(value) { resume("next", value); }
|
|
28
|
+
function reject(value) { resume("throw", value); }
|
|
29
|
+
function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
|
|
30
|
+
};
|
|
31
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
32
|
+
exports.Stream = void 0;
|
|
33
|
+
exports.readableStreamAsyncIterable = readableStreamAsyncIterable;
|
|
34
|
+
const index_js_1 = require("../runtime/index.js");
|
|
35
|
+
const DATA_PREFIX = "data:";
|
|
36
|
+
class Stream {
|
|
37
|
+
constructor({ stream, parse, eventShape, signal }) {
|
|
38
|
+
this.controller = new AbortController();
|
|
39
|
+
this.stream = stream;
|
|
40
|
+
this.parse = parse;
|
|
41
|
+
if (eventShape.type === "sse") {
|
|
42
|
+
this.prefix = DATA_PREFIX;
|
|
43
|
+
this.messageTerminator = "\n";
|
|
44
|
+
this.streamTerminator = eventShape.streamTerminator;
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
this.messageTerminator = eventShape.messageTerminator;
|
|
48
|
+
}
|
|
49
|
+
signal === null || signal === void 0 ? void 0 : signal.addEventListener("abort", () => this.controller.abort());
|
|
50
|
+
}
|
|
51
|
+
iterMessages() {
|
|
52
|
+
return __asyncGenerator(this, arguments, function* iterMessages_1() {
|
|
53
|
+
var _a, e_1, _b, _c;
|
|
54
|
+
this.controller.signal;
|
|
55
|
+
const stream = readableStreamAsyncIterable(this.stream);
|
|
56
|
+
let buf = "";
|
|
57
|
+
let prefixSeen = false;
|
|
58
|
+
try {
|
|
59
|
+
for (var _d = true, stream_1 = __asyncValues(stream), stream_1_1; stream_1_1 = yield __await(stream_1.next()), _a = stream_1_1.done, !_a; _d = true) {
|
|
60
|
+
_c = stream_1_1.value;
|
|
61
|
+
_d = false;
|
|
62
|
+
const chunk = _c;
|
|
63
|
+
buf += this.decodeChunk(chunk);
|
|
64
|
+
let terminatorIndex;
|
|
65
|
+
while ((terminatorIndex = buf.indexOf(this.messageTerminator)) >= 0) {
|
|
66
|
+
let line = buf.slice(0, terminatorIndex + 1);
|
|
67
|
+
buf = buf.slice(terminatorIndex + this.messageTerminator.length);
|
|
68
|
+
if (!line.trim()) {
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
if (!prefixSeen && this.prefix != null) {
|
|
72
|
+
const prefixIndex = line.indexOf(this.prefix);
|
|
73
|
+
if (prefixIndex === -1) {
|
|
74
|
+
continue;
|
|
75
|
+
}
|
|
76
|
+
prefixSeen = true;
|
|
77
|
+
line = line.slice(prefixIndex + this.prefix.length);
|
|
78
|
+
}
|
|
79
|
+
if (this.streamTerminator != null && line.includes(this.streamTerminator)) {
|
|
80
|
+
return yield __await(void 0);
|
|
81
|
+
}
|
|
82
|
+
const message = yield __await(this.parse(JSON.parse(line)));
|
|
83
|
+
yield yield __await(message);
|
|
84
|
+
prefixSeen = false;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
89
|
+
finally {
|
|
90
|
+
try {
|
|
91
|
+
if (!_d && !_a && (_b = stream_1.return)) yield __await(_b.call(stream_1));
|
|
92
|
+
}
|
|
93
|
+
finally { if (e_1) throw e_1.error; }
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
[Symbol.asyncIterator]() {
|
|
98
|
+
return __asyncGenerator(this, arguments, function* _a() {
|
|
99
|
+
var _b, e_2, _c, _d;
|
|
100
|
+
try {
|
|
101
|
+
for (var _e = true, _f = __asyncValues(this.iterMessages()), _g; _g = yield __await(_f.next()), _b = _g.done, !_b; _e = true) {
|
|
102
|
+
_d = _g.value;
|
|
103
|
+
_e = false;
|
|
104
|
+
const message = _d;
|
|
105
|
+
yield yield __await(message);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
109
|
+
finally {
|
|
110
|
+
try {
|
|
111
|
+
if (!_e && !_b && (_c = _f.return)) yield __await(_c.call(_f));
|
|
112
|
+
}
|
|
113
|
+
finally { if (e_2) throw e_2.error; }
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
decodeChunk(chunk) {
|
|
118
|
+
let decoded = "";
|
|
119
|
+
// If TextDecoder is present, use it
|
|
120
|
+
if (typeof TextDecoder !== "undefined") {
|
|
121
|
+
const decoder = new TextDecoder("utf8");
|
|
122
|
+
decoded += decoder.decode(chunk);
|
|
123
|
+
}
|
|
124
|
+
// Buffer is present in Node.js environment
|
|
125
|
+
else if (index_js_1.RUNTIME.type === "node" && typeof chunk !== "undefined") {
|
|
126
|
+
decoded += Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk);
|
|
127
|
+
}
|
|
128
|
+
return decoded;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
exports.Stream = Stream;
|
|
132
|
+
/**
|
|
133
|
+
* Browser polyfill for ReadableStream
|
|
134
|
+
*/
|
|
135
|
+
// biome-ignore lint/suspicious/noExplicitAny: allow explicit any
|
|
136
|
+
function readableStreamAsyncIterable(stream) {
|
|
137
|
+
if (stream[Symbol.asyncIterator]) {
|
|
138
|
+
return stream;
|
|
139
|
+
}
|
|
140
|
+
const reader = stream.getReader();
|
|
141
|
+
return {
|
|
142
|
+
next() {
|
|
143
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
144
|
+
try {
|
|
145
|
+
const result = yield reader.read();
|
|
146
|
+
if (result === null || result === void 0 ? void 0 : result.done) {
|
|
147
|
+
reader.releaseLock();
|
|
148
|
+
} // release lock when stream becomes closed
|
|
149
|
+
return result;
|
|
150
|
+
}
|
|
151
|
+
catch (e) {
|
|
152
|
+
reader.releaseLock(); // release lock when stream becomes errored
|
|
153
|
+
throw e;
|
|
154
|
+
}
|
|
155
|
+
});
|
|
156
|
+
},
|
|
157
|
+
return() {
|
|
158
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
159
|
+
const cancelPromise = reader.cancel();
|
|
160
|
+
reader.releaseLock();
|
|
161
|
+
yield cancelPromise;
|
|
162
|
+
return { done: true, value: undefined };
|
|
163
|
+
});
|
|
164
|
+
},
|
|
165
|
+
[Symbol.asyncIterator]() {
|
|
166
|
+
return this;
|
|
167
|
+
},
|
|
168
|
+
};
|
|
169
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Stream } from "./Stream.js";
|
package/dist/cjs/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const SDK_VERSION = "1.
|
|
1
|
+
export declare const SDK_VERSION = "2.1.0";
|
package/dist/cjs/version.js
CHANGED
package/dist/esm/Client.mjs
CHANGED
|
@@ -17,8 +17,8 @@ export class ChrtClient {
|
|
|
17
17
|
this._options = Object.assign(Object.assign({}, _options), { headers: mergeHeaders({
|
|
18
18
|
"X-Fern-Language": "JavaScript",
|
|
19
19
|
"X-Fern-SDK-Name": "@chrt-inc/typescript-sdk",
|
|
20
|
-
"X-Fern-SDK-Version": "1.
|
|
21
|
-
"User-Agent": "@chrt-inc/typescript-sdk/1.
|
|
20
|
+
"X-Fern-SDK-Version": "2.1.0",
|
|
21
|
+
"User-Agent": "@chrt-inc/typescript-sdk/2.1.0",
|
|
22
22
|
"X-Fern-Runtime": core.RUNTIME.type,
|
|
23
23
|
"X-Fern-Runtime-Version": core.RUNTIME.version,
|
|
24
24
|
}, _options === null || _options === void 0 ? void 0 : _options.headers) });
|
|
@@ -76,19 +76,8 @@ export declare class Dev {
|
|
|
76
76
|
private __postAgentOrderBuilderV1;
|
|
77
77
|
/**
|
|
78
78
|
* Same as /agent/order-builder/v1 but streams progress events via SSE as each workflow step completes. | (OrderBuilderReq) -> SSE stream of OrderBuilderProgressEvent, final OrderBuilderRes
|
|
79
|
-
*
|
|
80
|
-
* @param {Chrt.OrderBuilderReq} request
|
|
81
|
-
* @param {Dev.RequestOptions} requestOptions - Request-specific configuration.
|
|
82
|
-
*
|
|
83
|
-
* @throws {@link Chrt.UnprocessableEntityError}
|
|
84
|
-
*
|
|
85
|
-
* @example
|
|
86
|
-
* await client.utils.dev.postAgentOrderBuilderStreamV1({
|
|
87
|
-
* order_short_id: "order_short_id",
|
|
88
|
-
* text: "text"
|
|
89
|
-
* })
|
|
90
79
|
*/
|
|
91
|
-
postAgentOrderBuilderStreamV1(request: Chrt.OrderBuilderReq, requestOptions?: Dev.RequestOptions): core.HttpResponsePromise<
|
|
80
|
+
postAgentOrderBuilderStreamV1(request: Chrt.OrderBuilderReq, requestOptions?: Dev.RequestOptions): core.HttpResponsePromise<core.Stream<string>>;
|
|
92
81
|
private __postAgentOrderBuilderStreamV1;
|
|
93
82
|
/**
|
|
94
83
|
* (DEPRECATED) Extracts and returns the user ID from the authenticated request's JWT token. | () -> (str)
|
|
@@ -212,17 +212,6 @@ export class Dev {
|
|
|
212
212
|
}
|
|
213
213
|
/**
|
|
214
214
|
* Same as /agent/order-builder/v1 but streams progress events via SSE as each workflow step completes. | (OrderBuilderReq) -> SSE stream of OrderBuilderProgressEvent, final OrderBuilderRes
|
|
215
|
-
*
|
|
216
|
-
* @param {Chrt.OrderBuilderReq} request
|
|
217
|
-
* @param {Dev.RequestOptions} requestOptions - Request-specific configuration.
|
|
218
|
-
*
|
|
219
|
-
* @throws {@link Chrt.UnprocessableEntityError}
|
|
220
|
-
*
|
|
221
|
-
* @example
|
|
222
|
-
* await client.utils.dev.postAgentOrderBuilderStreamV1({
|
|
223
|
-
* order_short_id: "order_short_id",
|
|
224
|
-
* text: "text"
|
|
225
|
-
* })
|
|
226
215
|
*/
|
|
227
216
|
postAgentOrderBuilderStreamV1(request, requestOptions) {
|
|
228
217
|
return core.HttpResponsePromise.fromPromise(this.__postAgentOrderBuilderStreamV1(request, requestOptions));
|
|
@@ -239,12 +228,24 @@ export class Dev {
|
|
|
239
228
|
queryParameters: requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.queryParams,
|
|
240
229
|
requestType: "json",
|
|
241
230
|
body: request,
|
|
231
|
+
responseType: "sse",
|
|
242
232
|
timeoutMs: (requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.timeoutInSeconds) != null ? requestOptions.timeoutInSeconds * 1000 : 60000,
|
|
243
233
|
maxRetries: requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.maxRetries,
|
|
244
234
|
abortSignal: requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.abortSignal,
|
|
245
235
|
});
|
|
246
236
|
if (_response.ok) {
|
|
247
|
-
return {
|
|
237
|
+
return {
|
|
238
|
+
data: new core.Stream({
|
|
239
|
+
stream: _response.body,
|
|
240
|
+
parse: (data) => data,
|
|
241
|
+
signal: requestOptions === null || requestOptions === void 0 ? void 0 : requestOptions.abortSignal,
|
|
242
|
+
eventShape: {
|
|
243
|
+
type: "sse",
|
|
244
|
+
streamTerminator: "[DONE]",
|
|
245
|
+
},
|
|
246
|
+
}),
|
|
247
|
+
rawResponse: _response.rawResponse,
|
|
248
|
+
};
|
|
248
249
|
}
|
|
249
250
|
if (_response.error.reason === "status-code") {
|
|
250
251
|
switch (_response.error.statusCode) {
|
package/dist/esm/core/index.mjs
CHANGED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
export declare namespace Stream {
|
|
2
|
+
interface Args {
|
|
3
|
+
/**
|
|
4
|
+
* The HTTP response stream to read from.
|
|
5
|
+
*/
|
|
6
|
+
stream: ReadableStream;
|
|
7
|
+
/**
|
|
8
|
+
* The event shape to use for parsing the stream data.
|
|
9
|
+
*/
|
|
10
|
+
eventShape: JsonEvent | SseEvent;
|
|
11
|
+
/**
|
|
12
|
+
* An abort signal to stop the stream.
|
|
13
|
+
*/
|
|
14
|
+
signal?: AbortSignal;
|
|
15
|
+
}
|
|
16
|
+
interface JsonEvent {
|
|
17
|
+
type: "json";
|
|
18
|
+
messageTerminator: string;
|
|
19
|
+
}
|
|
20
|
+
interface SseEvent {
|
|
21
|
+
type: "sse";
|
|
22
|
+
streamTerminator?: string;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
export declare class Stream<T> implements AsyncIterable<T> {
|
|
26
|
+
private stream;
|
|
27
|
+
private parse;
|
|
28
|
+
/**
|
|
29
|
+
* The prefix to use for each message. For example,
|
|
30
|
+
* for SSE, the prefix is "data: ".
|
|
31
|
+
*/
|
|
32
|
+
private prefix;
|
|
33
|
+
private messageTerminator;
|
|
34
|
+
private streamTerminator;
|
|
35
|
+
private controller;
|
|
36
|
+
constructor({ stream, parse, eventShape, signal }: Stream.Args & {
|
|
37
|
+
parse: (val: unknown) => Promise<T>;
|
|
38
|
+
});
|
|
39
|
+
private iterMessages;
|
|
40
|
+
[Symbol.asyncIterator](): AsyncIterator<T, void, unknown>;
|
|
41
|
+
private decodeChunk;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Browser polyfill for ReadableStream
|
|
45
|
+
*/
|
|
46
|
+
export declare function readableStreamAsyncIterable<T>(stream: any): AsyncIterableIterator<T>;
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
var __asyncValues = (this && this.__asyncValues) || function (o) {
|
|
11
|
+
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
12
|
+
var m = o[Symbol.asyncIterator], i;
|
|
13
|
+
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
|
|
14
|
+
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
|
|
15
|
+
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
|
|
16
|
+
};
|
|
17
|
+
var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }
|
|
18
|
+
var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
|
|
19
|
+
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
|
20
|
+
var g = generator.apply(thisArg, _arguments || []), i, q = [];
|
|
21
|
+
return i = Object.create((typeof AsyncIterator === "function" ? AsyncIterator : Object).prototype), verb("next"), verb("throw"), verb("return", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;
|
|
22
|
+
function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }
|
|
23
|
+
function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }
|
|
24
|
+
function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
|
|
25
|
+
function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
|
|
26
|
+
function fulfill(value) { resume("next", value); }
|
|
27
|
+
function reject(value) { resume("throw", value); }
|
|
28
|
+
function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
|
|
29
|
+
};
|
|
30
|
+
import { RUNTIME } from "../runtime/index.mjs";
|
|
31
|
+
const DATA_PREFIX = "data:";
|
|
32
|
+
export class Stream {
|
|
33
|
+
constructor({ stream, parse, eventShape, signal }) {
|
|
34
|
+
this.controller = new AbortController();
|
|
35
|
+
this.stream = stream;
|
|
36
|
+
this.parse = parse;
|
|
37
|
+
if (eventShape.type === "sse") {
|
|
38
|
+
this.prefix = DATA_PREFIX;
|
|
39
|
+
this.messageTerminator = "\n";
|
|
40
|
+
this.streamTerminator = eventShape.streamTerminator;
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
this.messageTerminator = eventShape.messageTerminator;
|
|
44
|
+
}
|
|
45
|
+
signal === null || signal === void 0 ? void 0 : signal.addEventListener("abort", () => this.controller.abort());
|
|
46
|
+
}
|
|
47
|
+
iterMessages() {
|
|
48
|
+
return __asyncGenerator(this, arguments, function* iterMessages_1() {
|
|
49
|
+
var _a, e_1, _b, _c;
|
|
50
|
+
this.controller.signal;
|
|
51
|
+
const stream = readableStreamAsyncIterable(this.stream);
|
|
52
|
+
let buf = "";
|
|
53
|
+
let prefixSeen = false;
|
|
54
|
+
try {
|
|
55
|
+
for (var _d = true, stream_1 = __asyncValues(stream), stream_1_1; stream_1_1 = yield __await(stream_1.next()), _a = stream_1_1.done, !_a; _d = true) {
|
|
56
|
+
_c = stream_1_1.value;
|
|
57
|
+
_d = false;
|
|
58
|
+
const chunk = _c;
|
|
59
|
+
buf += this.decodeChunk(chunk);
|
|
60
|
+
let terminatorIndex;
|
|
61
|
+
while ((terminatorIndex = buf.indexOf(this.messageTerminator)) >= 0) {
|
|
62
|
+
let line = buf.slice(0, terminatorIndex + 1);
|
|
63
|
+
buf = buf.slice(terminatorIndex + this.messageTerminator.length);
|
|
64
|
+
if (!line.trim()) {
|
|
65
|
+
continue;
|
|
66
|
+
}
|
|
67
|
+
if (!prefixSeen && this.prefix != null) {
|
|
68
|
+
const prefixIndex = line.indexOf(this.prefix);
|
|
69
|
+
if (prefixIndex === -1) {
|
|
70
|
+
continue;
|
|
71
|
+
}
|
|
72
|
+
prefixSeen = true;
|
|
73
|
+
line = line.slice(prefixIndex + this.prefix.length);
|
|
74
|
+
}
|
|
75
|
+
if (this.streamTerminator != null && line.includes(this.streamTerminator)) {
|
|
76
|
+
return yield __await(void 0);
|
|
77
|
+
}
|
|
78
|
+
const message = yield __await(this.parse(JSON.parse(line)));
|
|
79
|
+
yield yield __await(message);
|
|
80
|
+
prefixSeen = false;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
85
|
+
finally {
|
|
86
|
+
try {
|
|
87
|
+
if (!_d && !_a && (_b = stream_1.return)) yield __await(_b.call(stream_1));
|
|
88
|
+
}
|
|
89
|
+
finally { if (e_1) throw e_1.error; }
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
[Symbol.asyncIterator]() {
|
|
94
|
+
return __asyncGenerator(this, arguments, function* _a() {
|
|
95
|
+
var _b, e_2, _c, _d;
|
|
96
|
+
try {
|
|
97
|
+
for (var _e = true, _f = __asyncValues(this.iterMessages()), _g; _g = yield __await(_f.next()), _b = _g.done, !_b; _e = true) {
|
|
98
|
+
_d = _g.value;
|
|
99
|
+
_e = false;
|
|
100
|
+
const message = _d;
|
|
101
|
+
yield yield __await(message);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
105
|
+
finally {
|
|
106
|
+
try {
|
|
107
|
+
if (!_e && !_b && (_c = _f.return)) yield __await(_c.call(_f));
|
|
108
|
+
}
|
|
109
|
+
finally { if (e_2) throw e_2.error; }
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
decodeChunk(chunk) {
|
|
114
|
+
let decoded = "";
|
|
115
|
+
// If TextDecoder is present, use it
|
|
116
|
+
if (typeof TextDecoder !== "undefined") {
|
|
117
|
+
const decoder = new TextDecoder("utf8");
|
|
118
|
+
decoded += decoder.decode(chunk);
|
|
119
|
+
}
|
|
120
|
+
// Buffer is present in Node.js environment
|
|
121
|
+
else if (RUNTIME.type === "node" && typeof chunk !== "undefined") {
|
|
122
|
+
decoded += Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk);
|
|
123
|
+
}
|
|
124
|
+
return decoded;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Browser polyfill for ReadableStream
|
|
129
|
+
*/
|
|
130
|
+
// biome-ignore lint/suspicious/noExplicitAny: allow explicit any
|
|
131
|
+
export function readableStreamAsyncIterable(stream) {
|
|
132
|
+
if (stream[Symbol.asyncIterator]) {
|
|
133
|
+
return stream;
|
|
134
|
+
}
|
|
135
|
+
const reader = stream.getReader();
|
|
136
|
+
return {
|
|
137
|
+
next() {
|
|
138
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
139
|
+
try {
|
|
140
|
+
const result = yield reader.read();
|
|
141
|
+
if (result === null || result === void 0 ? void 0 : result.done) {
|
|
142
|
+
reader.releaseLock();
|
|
143
|
+
} // release lock when stream becomes closed
|
|
144
|
+
return result;
|
|
145
|
+
}
|
|
146
|
+
catch (e) {
|
|
147
|
+
reader.releaseLock(); // release lock when stream becomes errored
|
|
148
|
+
throw e;
|
|
149
|
+
}
|
|
150
|
+
});
|
|
151
|
+
},
|
|
152
|
+
return() {
|
|
153
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
154
|
+
const cancelPromise = reader.cancel();
|
|
155
|
+
reader.releaseLock();
|
|
156
|
+
yield cancelPromise;
|
|
157
|
+
return { done: true, value: undefined };
|
|
158
|
+
});
|
|
159
|
+
},
|
|
160
|
+
[Symbol.asyncIterator]() {
|
|
161
|
+
return this;
|
|
162
|
+
},
|
|
163
|
+
};
|
|
164
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Stream } from "./Stream.mjs";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Stream } from "./Stream.mjs";
|
package/dist/esm/version.d.mts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const SDK_VERSION = "1.
|
|
1
|
+
export declare const SDK_VERSION = "2.1.0";
|
package/dist/esm/version.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const SDK_VERSION = "1.
|
|
1
|
+
export const SDK_VERSION = "2.1.0";
|
package/package.json
CHANGED
package/reference.md
CHANGED
|
@@ -16540,7 +16540,7 @@ await client.utils.dev.postAgentOrderBuilderV1({
|
|
|
16540
16540
|
</dl>
|
|
16541
16541
|
</details>
|
|
16542
16542
|
|
|
16543
|
-
<details><summary><code>client.utils.dev.<a href="/src/api/resources/utils/resources/dev/client/Client.ts">postAgentOrderBuilderStreamV1</a>({ ...params }) ->
|
|
16543
|
+
<details><summary><code>client.utils.dev.<a href="/src/api/resources/utils/resources/dev/client/Client.ts">postAgentOrderBuilderStreamV1</a>({ ...params }) -> core.Stream<string></code></summary>
|
|
16544
16544
|
<dl>
|
|
16545
16545
|
<dd>
|
|
16546
16546
|
|
|
@@ -16568,10 +16568,13 @@ Same as /agent/order-builder/v1 but streams progress events via SSE as each work
|
|
|
16568
16568
|
<dd>
|
|
16569
16569
|
|
|
16570
16570
|
```typescript
|
|
16571
|
-
await client.utils.dev.postAgentOrderBuilderStreamV1({
|
|
16571
|
+
const response = await client.utils.dev.postAgentOrderBuilderStreamV1({
|
|
16572
16572
|
order_short_id: "order_short_id",
|
|
16573
16573
|
text: "text",
|
|
16574
16574
|
});
|
|
16575
|
+
for await (const item of response) {
|
|
16576
|
+
console.log(item);
|
|
16577
|
+
}
|
|
16575
16578
|
```
|
|
16576
16579
|
|
|
16577
16580
|
</dd>
|