@fias/plugin-dev-harness 1.5.14 → 1.5.15

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.
@@ -1 +1 @@
1
- {"version":3,"file":"live-handler.d.ts","sourceRoot":"","sources":["../../src/bridge/live-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAIjF,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IACzE,SAAS,EAAE,OAAO,GAAG,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,yBAAyB,EAAE,gBAAgB,CAAC,CAAC;CACnF;AAED,qBAAa,iBAAkB,YAAW,aAAa;IACrD,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,WAAW,CAAoB;gBAE3B,OAAO,EAAE,kBAAkB;IAUjC,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IAehD,YAAY,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;IA2E1F,yDAAyD;YAC3C,UAAU;CAuBzB"}
1
+ {"version":3,"file":"live-handler.d.ts","sourceRoot":"","sources":["../../src/bridge/live-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAIjF,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IACzE,SAAS,EAAE,OAAO,GAAG,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,yBAAyB,EAAE,gBAAgB,CAAC,CAAC;CACnF;AAED,qBAAa,iBAAkB,YAAW,aAAa;IACrD,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,WAAW,CAAoB;gBAE3B,OAAO,EAAE,kBAAkB;IAUjC,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IAehD,YAAY,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;IA+E1F,yDAAyD;YAC3C,UAAU;CAuBzB"}
@@ -86,6 +86,10 @@ class LiveBridgeHandler {
86
86
  if (parsed.text) {
87
87
  fullOutput += parsed.text;
88
88
  onToken(parsed.text);
89
+ // Yield to the event loop so Node.js flushes the HTTP response
90
+ // write to the network. Without this, all onToken/res.write calls
91
+ // within a single reader.read() chunk get batched into one TCP write.
92
+ await new Promise((resolve) => setImmediate(resolve));
89
93
  }
90
94
  if (parsed.done) {
91
95
  finalResult = { output: parsed.output, metadata: parsed.metadata };
@@ -1 +1 @@
1
- {"version":3,"file":"live-handler.js","sourceRoot":"","sources":["../../src/bridge/live-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"live-handler.js","sourceRoot":"","sources":["../../src/bridge/live-handler.ts"],"names":[],"mappings":"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"}
@@ -375,11 +375,8 @@
375
375
  return;
376
376
  }
377
377
 
378
- // Live mode: get the full response via non-streaming endpoint, then
379
- // simulate streaming in the browser. The Express SSE proxy batches all
380
- // tokens into a single chunk due to Node.js TCP buffering on localhost,
381
- // so browser-side simulation is the only reliable approach.
382
- fetch('/api/bridge', {
378
+ // Live mode: SSE proxy through Express with event-loop yields
379
+ fetch('/api/bridge/stream', {
383
380
  method: 'POST',
384
381
  headers: { 'Content-Type': 'application/json' },
385
382
  body: JSON.stringify({ type: data.type, payload: data.payload }),
@@ -387,17 +384,63 @@
387
384
  .then(function (response) {
388
385
  if (!response.ok) {
389
386
  return response.json().then(function (err) {
390
- throw new Error(err.error || 'Bridge call failed');
387
+ throw new Error(err.error || 'Bridge streaming call failed');
391
388
  });
392
389
  }
393
- return response.json();
394
- })
395
- .then(function (result) {
396
- if (result.metadata && result.metadata.cost > 0) {
397
- logMessage('cost', 'Credits used: ' + result.metadata.cost.toFixed(4));
398
- fetchCredits();
390
+
391
+ var contentType = response.headers.get('content-type') || '';
392
+ if (contentType.indexOf('text/event-stream') === -1) {
393
+ return response.json().then(function (result) {
394
+ sendToPlugin({ type: 'response', messageId: data.messageId, payload: result });
395
+ });
396
+ }
397
+
398
+ var reader = response.body.getReader();
399
+ var decoder = new TextDecoder();
400
+ var buffer = '';
401
+ var finalPayload = null;
402
+
403
+ function pump() {
404
+ return reader.read().then(function (chunk) {
405
+ if (chunk.done) {
406
+ if (finalPayload) {
407
+ logMessage('send', 'response', finalPayload);
408
+ if (finalPayload.metadata && finalPayload.metadata.cost > 0) {
409
+ logMessage('cost', 'Credits used: ' + finalPayload.metadata.cost.toFixed(4));
410
+ fetchCredits();
411
+ }
412
+ sendToPlugin({ type: 'response', messageId: data.messageId, payload: finalPayload });
413
+ }
414
+ return;
415
+ }
416
+
417
+ buffer += decoder.decode(chunk.value, { stream: true });
418
+ var lines = buffer.split('\n');
419
+ buffer = lines.pop() || '';
420
+
421
+ for (var i = 0; i < lines.length; i++) {
422
+ var line = lines[i];
423
+ if (line.indexOf('data: ') !== 0) continue;
424
+ try {
425
+ var parsed = JSON.parse(line.slice(6));
426
+ if (parsed.error) throw new Error(parsed.error);
427
+ if (parsed.text) {
428
+ sendToPlugin({ type: 'stream_token', messageId: data.messageId, text: parsed.text });
429
+ }
430
+ if (parsed.done) {
431
+ finalPayload = { output: parsed.output, metadata: parsed.metadata };
432
+ }
433
+ } catch (e) {
434
+ if (e instanceof SyntaxError) continue;
435
+ throw e;
436
+ }
437
+ }
438
+
439
+ return pump();
440
+ });
399
441
  }
400
- simulateStreamInBrowser(data.messageId, result.output, result.metadata);
442
+
443
+ return pump();
401
444
  })
402
445
  .catch(function (err) {
403
446
  logMessage('error', err.message);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fias/plugin-dev-harness",
3
- "version": "1.5.14",
3
+ "version": "1.5.15",
4
4
  "description": "Development harness for building and testing FIAS plugin arches locally",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",