@nac3/forge-cli 1.11.0 → 1.12.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/chat/server.d.ts.map +1 -1
- package/dist/chat/server.js +16 -1
- package/dist/chat/server.js.map +1 -1
- package/dist/relay/in_flight_turn.d.ts +56 -0
- package/dist/relay/in_flight_turn.d.ts.map +1 -0
- package/dist/relay/in_flight_turn.js +72 -0
- package/dist/relay/in_flight_turn.js.map +1 -0
- package/dist/relay/relay_publisher.d.ts +6 -0
- package/dist/relay/relay_publisher.d.ts.map +1 -1
- package/dist/relay/relay_publisher.js +17 -0
- package/dist/relay/relay_publisher.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/chat/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAA2D,KAAK,MAAM,EAAE,MAAM,WAAW,CAAC;AAKjG,OAAO,EAAoD,KAAK,aAAa,EAAoB,MAAM,aAAa,CAAC;AAErH,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAInD,OAAO,EAEL,KAAK,SAAS,EACf,MAAM,iBAAiB,CAAC;AAczB,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAsBjD,OAAO,EAAyD,KAAK,eAAe,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/chat/server.ts"],"names":[],"mappings":"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"}
|
package/dist/chat/server.js
CHANGED
|
@@ -47,6 +47,7 @@ import { checkMutatingRequest, publicOrigins } from '../core/public_origin.js';
|
|
|
47
47
|
import { isAllowedSlot, listAllowedSlots } from '../core/provider_keys.js';
|
|
48
48
|
import { toolStatusSection, startToolStatusRefresh, environmentLines } from './tool_status.js';
|
|
49
49
|
import { RelayPublisher } from '../relay/relay_publisher.js';
|
|
50
|
+
import { setInFlightTurn, clearInFlightTurn, inFlightTurn } from '../relay/in_flight_turn.js';
|
|
50
51
|
import { getInstanceIdentity } from '../relay/instance_identity.js';
|
|
51
52
|
import { isMobilePaired, relayGate } from '../core/mobile_pairing_state.js';
|
|
52
53
|
import { relayPoll } from '../relay/relay_client.js';
|
|
@@ -1136,7 +1137,11 @@ function startDesktopCommandConsumer(port, coord = {}) {
|
|
|
1136
1137
|
return;
|
|
1137
1138
|
const idn = getInstanceIdentity();
|
|
1138
1139
|
const slug = _relayBoardCtx?.slug ?? null;
|
|
1139
|
-
pub.presence({
|
|
1140
|
+
pub.presence({
|
|
1141
|
+
hostname: idn.hostname, pid: idn.pid, port,
|
|
1142
|
+
...(slug ? { project_slug: slug, project_name: slug } : {}),
|
|
1143
|
+
turn: inFlightTurn(),
|
|
1144
|
+
});
|
|
1140
1145
|
void pub.flush();
|
|
1141
1146
|
}
|
|
1142
1147
|
catch { /* best-effort */ }
|
|
@@ -5605,6 +5610,12 @@ async function handleChat(req, res, ctx) {
|
|
|
5605
5610
|
* the END remoteTurn (same id) fills the reply. Old phones ignore
|
|
5606
5611
|
* the extra fields and keep their current end-of-turn behavior. */
|
|
5607
5612
|
const _xTurnId = (body.origin === 'mobile' ? 'mb-' : body.origin === 'bridge' ? 'br-' : 'dt-') + Date.now().toString(36);
|
|
5613
|
+
/* Queda registrado como ESTADO para que el latido de presencia lo
|
|
5614
|
+
* repita: ver el comentario largo en RelayPublisher.presence(). */
|
|
5615
|
+
if (sessionId === DEFAULT_SESSION_ID && lastUserText
|
|
5616
|
+
&& body.origin !== 'mobile' && body.origin !== 'bridge') {
|
|
5617
|
+
setInFlightTurn({ id: _xTurnId, user: lastUserText, started_at: new Date().toISOString() });
|
|
5618
|
+
}
|
|
5608
5619
|
if (sessionId === DEFAULT_SESSION_ID && lastUserText) {
|
|
5609
5620
|
if (body.origin === 'mobile' || body.origin === 'bridge') {
|
|
5610
5621
|
try {
|
|
@@ -6609,6 +6620,10 @@ async function handleChat(req, res, ctx) {
|
|
|
6609
6620
|
* reflects it too. Mobile-origin turns are skipped (the phone already
|
|
6610
6621
|
* has them as its own bubbles). Same id as the start 'working' echo so
|
|
6611
6622
|
* a new phone replaces its pending bubble instead of appending. */
|
|
6623
|
+
/* El turno dejo de estar en vuelo. Se limpia ANTES de publicar el
|
|
6624
|
+
* remoteTurn para que un latido que caiga en el medio no vuelva a
|
|
6625
|
+
* anunciar como "en curso" algo que ya tiene respuesta. */
|
|
6626
|
+
clearInFlightTurn(_xTurnId);
|
|
6612
6627
|
if (body.origin !== 'mobile' && body.origin !== 'bridge' && sessionId === DEFAULT_SESSION_ID
|
|
6613
6628
|
&& !reply.interrupted) {
|
|
6614
6629
|
try {
|