@mitralab.io/functions-sdk 0.2.0 → 0.2.2-beta.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.
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"contract": "SDK-PARITY-001",
|
|
3
|
+
"version": "0.2.2",
|
|
4
|
+
"dependency": {
|
|
5
|
+
"package": "@mitralab.io/sdk-core",
|
|
6
|
+
"version": "0.2.2",
|
|
7
|
+
"contractPath": "contracts/v0.2.2/sdk-parity.json"
|
|
8
|
+
},
|
|
9
|
+
"sha256": "8466d8f5169d2de93d1f99b1262af9c72316dd8348eff92fd6e3d729d8f3a800",
|
|
10
|
+
"source": {
|
|
11
|
+
"repository": "https://github.com/mitralab-dev/mitra-core-sdk",
|
|
12
|
+
"commit": "b212f3733e0a0f1be7edcb80796e597b7a464065",
|
|
13
|
+
"path": "contracts/v0.2.2/sdk-parity.json"
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"contract": "SDK-PARITY-001",
|
|
3
|
+
"version": "0.2.6-beta.0",
|
|
4
|
+
"dependency": {
|
|
5
|
+
"package": "@mitralab.io/sdk-core",
|
|
6
|
+
"version": "0.2.6-beta.0",
|
|
7
|
+
"contractPath": "contracts/v0.2.6-beta.0/sdk-parity.json"
|
|
8
|
+
},
|
|
9
|
+
"sha256": "777daf74e49b6bd41f2b7eca573712c275f4278588232c4fc9976326fbd6eea4",
|
|
10
|
+
"source": {
|
|
11
|
+
"repository": "https://github.com/mitralab-dev/mitra-core-sdk",
|
|
12
|
+
"commit": "326f05af5c253b08b42115b77c006bc02a173229",
|
|
13
|
+
"path": "contracts/v0.2.6-beta.0/sdk-parity.json"
|
|
14
|
+
}
|
|
15
|
+
}
|
package/dist/index.cjs
CHANGED
|
@@ -301,6 +301,14 @@ var HttpClient = class {
|
|
|
301
301
|
};
|
|
302
302
|
|
|
303
303
|
// src/agent-task-sse.ts
|
|
304
|
+
var SILENCE_TIMEOUT_MS = 6e4;
|
|
305
|
+
function silenceError() {
|
|
306
|
+
return new MitraApiError(
|
|
307
|
+
`The Mitra Agent event stream went silent for ${SILENCE_TIMEOUT_MS / 1e3}s`,
|
|
308
|
+
0,
|
|
309
|
+
{ code: "NETWORK_ERROR", retryable: true }
|
|
310
|
+
);
|
|
311
|
+
}
|
|
304
312
|
function invalidResponse(message) {
|
|
305
313
|
return new MitraApiError(message, 200, {
|
|
306
314
|
code: "INVALID_RESPONSE",
|
|
@@ -424,10 +432,25 @@ var AgentTaskSseEventSource = class {
|
|
|
424
432
|
const reader = response.body.getReader();
|
|
425
433
|
const decoder = new TextDecoder();
|
|
426
434
|
let buffer = "";
|
|
435
|
+
let breakSilence;
|
|
436
|
+
const silence = new Promise((_, reject) => {
|
|
437
|
+
breakSilence = reject;
|
|
438
|
+
});
|
|
439
|
+
let silenceTimer = null;
|
|
440
|
+
const armSilence = () => {
|
|
441
|
+
if (silenceTimer !== null) clearTimeout(silenceTimer);
|
|
442
|
+
silenceTimer = setTimeout(() => breakSilence(silenceError()), SILENCE_TIMEOUT_MS);
|
|
443
|
+
};
|
|
444
|
+
const disarmSilence = () => {
|
|
445
|
+
if (silenceTimer !== null) clearTimeout(silenceTimer);
|
|
446
|
+
silenceTimer = null;
|
|
447
|
+
};
|
|
427
448
|
void (async () => {
|
|
428
449
|
try {
|
|
450
|
+
armSilence();
|
|
429
451
|
while (true) {
|
|
430
|
-
const { done, value } = await reader.read();
|
|
452
|
+
const { done, value } = await Promise.race([reader.read(), silence]);
|
|
453
|
+
armSilence();
|
|
431
454
|
if (done) break;
|
|
432
455
|
buffer += decoder.decode(value, { stream: true });
|
|
433
456
|
let boundary = /\r?\n\r?\n/.exec(buffer);
|
|
@@ -447,6 +470,7 @@ var AgentTaskSseEventSource = class {
|
|
|
447
470
|
disconnect(error);
|
|
448
471
|
}
|
|
449
472
|
} finally {
|
|
473
|
+
disarmSilence();
|
|
450
474
|
cleanup();
|
|
451
475
|
reader.releaseLock();
|
|
452
476
|
}
|
|
@@ -455,6 +479,7 @@ var AgentTaskSseEventSource = class {
|
|
|
455
479
|
close() {
|
|
456
480
|
if (intentionallyClosed) return;
|
|
457
481
|
intentionallyClosed = true;
|
|
482
|
+
disarmSilence();
|
|
458
483
|
cleanup();
|
|
459
484
|
controller.abort();
|
|
460
485
|
void reader.cancel().catch(() => void 0);
|
package/dist/index.js
CHANGED
|
@@ -207,6 +207,14 @@ var HttpClient = class {
|
|
|
207
207
|
};
|
|
208
208
|
|
|
209
209
|
// src/agent-task-sse.ts
|
|
210
|
+
var SILENCE_TIMEOUT_MS = 6e4;
|
|
211
|
+
function silenceError() {
|
|
212
|
+
return new MitraApiError(
|
|
213
|
+
`The Mitra Agent event stream went silent for ${SILENCE_TIMEOUT_MS / 1e3}s`,
|
|
214
|
+
0,
|
|
215
|
+
{ code: "NETWORK_ERROR", retryable: true }
|
|
216
|
+
);
|
|
217
|
+
}
|
|
210
218
|
function invalidResponse(message) {
|
|
211
219
|
return new MitraApiError(message, 200, {
|
|
212
220
|
code: "INVALID_RESPONSE",
|
|
@@ -330,10 +338,25 @@ var AgentTaskSseEventSource = class {
|
|
|
330
338
|
const reader = response.body.getReader();
|
|
331
339
|
const decoder = new TextDecoder();
|
|
332
340
|
let buffer = "";
|
|
341
|
+
let breakSilence;
|
|
342
|
+
const silence = new Promise((_, reject) => {
|
|
343
|
+
breakSilence = reject;
|
|
344
|
+
});
|
|
345
|
+
let silenceTimer = null;
|
|
346
|
+
const armSilence = () => {
|
|
347
|
+
if (silenceTimer !== null) clearTimeout(silenceTimer);
|
|
348
|
+
silenceTimer = setTimeout(() => breakSilence(silenceError()), SILENCE_TIMEOUT_MS);
|
|
349
|
+
};
|
|
350
|
+
const disarmSilence = () => {
|
|
351
|
+
if (silenceTimer !== null) clearTimeout(silenceTimer);
|
|
352
|
+
silenceTimer = null;
|
|
353
|
+
};
|
|
333
354
|
void (async () => {
|
|
334
355
|
try {
|
|
356
|
+
armSilence();
|
|
335
357
|
while (true) {
|
|
336
|
-
const { done, value } = await reader.read();
|
|
358
|
+
const { done, value } = await Promise.race([reader.read(), silence]);
|
|
359
|
+
armSilence();
|
|
337
360
|
if (done) break;
|
|
338
361
|
buffer += decoder.decode(value, { stream: true });
|
|
339
362
|
let boundary = /\r?\n\r?\n/.exec(buffer);
|
|
@@ -353,6 +376,7 @@ var AgentTaskSseEventSource = class {
|
|
|
353
376
|
disconnect(error);
|
|
354
377
|
}
|
|
355
378
|
} finally {
|
|
379
|
+
disarmSilence();
|
|
356
380
|
cleanup();
|
|
357
381
|
reader.releaseLock();
|
|
358
382
|
}
|
|
@@ -361,6 +385,7 @@ var AgentTaskSseEventSource = class {
|
|
|
361
385
|
close() {
|
|
362
386
|
if (intentionallyClosed) return;
|
|
363
387
|
intentionallyClosed = true;
|
|
388
|
+
disarmSilence();
|
|
364
389
|
cleanup();
|
|
365
390
|
controller.abort();
|
|
366
391
|
void reader.cancel().catch(() => void 0);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mitralab.io/functions-sdk",
|
|
3
|
-
"version": "0.2.0",
|
|
3
|
+
"version": "0.2.2-beta.0",
|
|
4
4
|
"description": "JavaScript and TypeScript SDK for Mitra Server Functions",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
"node": ">=18.0.0"
|
|
68
68
|
},
|
|
69
69
|
"dependencies": {
|
|
70
|
-
"@mitralab.io/sdk-core": "0.2.0",
|
|
70
|
+
"@mitralab.io/sdk-core": "0.2.6-beta.0",
|
|
71
71
|
"mitra-sdk": "1.0.63-beta.42"
|
|
72
72
|
},
|
|
73
73
|
"devDependencies": {
|