@nac3/forge-cli 1.0.2 → 1.0.5
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 +23 -5
- package/dist/chat/server.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +15 -7
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/mobile.d.ts.map +1 -1
- package/dist/commands/mobile.js +7 -0
- package/dist/commands/mobile.js.map +1 -1
- package/dist/core/mobile_pairing_state.d.ts +9 -0
- package/dist/core/mobile_pairing_state.d.ts.map +1 -0
- package/dist/core/mobile_pairing_state.js +54 -0
- package/dist/core/mobile_pairing_state.js.map +1 -0
- 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;
|
|
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;AAmCjD,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,yDAAyD;IACzD,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB;;;;;;;;wDAQoD;IACpD,YAAY,CAAC,EAAE,eAAe,GAAG,iBAAiB,CAAC;IACnD;;2DAEuD;IACvD,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B;+CAC2C;IAC3C,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB;;;kEAG8D;IAC9D,OAAO,CAAC,EAAE,OAAO,sBAAsB,EAAE,OAAO,CAAC;CAClD;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,eAAe,CAAC;IACvB,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,CAwVhF;AAED,UAAU,GAAG;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,aAAa,CAAC;IACtB,KAAK,EAAE,WAAW,CAAC;IACnB,KAAK,EAAE,eAAe,CAAC;IAIvB,OAAO,CAAC,EAAE,OAAO,sBAAsB,EAAE,OAAO,CAAC;IAMjD,YAAY,CAAC,EAAE,eAAe,GAAG,iBAAiB,CAAC;IAKnD,cAAc,CAAC,EAAE,MAAM,CAAC;IAGxB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAG3G,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACnE;AAiuID,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,GAAG,EACR,IAAI,GAAE,SAAuB,EAC7B,UAAU,GAAE;IAAE,eAAe,EAAE,OAAO,CAAC;IAAC,cAAc,EAAE,OAAO,CAAC;IAAC,YAAY,EAAE,OAAO,CAAA;CAErF;AACD;;;qDAGqD;AACrD,KAAK,CAAC,EAAE;IAAE,IAAI,EAAE,KAAK,GAAG,UAAU,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE;AACrE;;;;;2CAK2C;AAC3C,sBAAsB,GAAE,MAAW;AACnC;;;;;;;4DAO4D;AAC5D,YAAY,GAAE,OAAe;AAC7B;;;;;;;uDAOuD;AACvD,mBAAmB,GAAE,MAAW;AAChC;;;;kEAIkE;AAClE,gBAAgB,GAAE,MAAW;AAC7B;;;;;;;;;;;+BAW+B;AAC/B,SAAS,GAAE,QAAQ,GAAG,YAAY,GAAG,MAAiB,GACrD,MAAM,CA6eR"}
|
package/dist/chat/server.js
CHANGED
|
@@ -41,6 +41,7 @@ import { executeScaffold, rollbackScaffold } from './spec_scaffold.js';
|
|
|
41
41
|
import { VERSION } from '../version.js';
|
|
42
42
|
import { buildDoctrineDigestLines } from './doctrine_digest.js';
|
|
43
43
|
import { RelayPublisher } from '../relay/relay_publisher.js';
|
|
44
|
+
import { isMobilePaired, relayGate } from '../core/mobile_pairing_state.js';
|
|
44
45
|
import { relayPoll } from '../relay/relay_client.js';
|
|
45
46
|
import { startCommandConsumer } from '../relay/command_consumer.js';
|
|
46
47
|
import { getSessionStore, DEFAULT_SESSION_ID } from './session_store.js';
|
|
@@ -442,12 +443,12 @@ export async function startChatServer(opts) {
|
|
|
442
443
|
}
|
|
443
444
|
/* P2 (mobile remote control) -- the desktop mirrors its Coding-feed
|
|
444
445
|
* activity to the worker relay so a paired phone can watch the work.
|
|
445
|
-
*
|
|
446
|
-
*
|
|
447
|
-
*
|
|
446
|
+
* AUTOMATIC: on as soon as a phone is paired (the pairing drops a marker);
|
|
447
|
+
* no env var, no command. YF_RELAY is only an explicit override (=1 force
|
|
448
|
+
* on, =0 force off). Best-effort: the publisher swallows every error, so an
|
|
449
|
+
* unreachable relay never affects a chat turn. */
|
|
448
450
|
function relayEnabled() {
|
|
449
|
-
|
|
450
|
-
return v === '1' || v === 'true' || v === 'yes';
|
|
451
|
+
return relayGate(process.env.YF_RELAY, isMobilePaired());
|
|
451
452
|
}
|
|
452
453
|
let _relayPub = null;
|
|
453
454
|
function getRelayPublisher() {
|
|
@@ -2992,6 +2993,23 @@ async function handleMobilePair(_req, res) {
|
|
|
2992
2993
|
sendJson(res, 200, { ok: false, error: built.error ?? 'no pude generar el pairing', hint: built.hint });
|
|
2993
2994
|
return;
|
|
2994
2995
|
}
|
|
2996
|
+
/* assemblePairing just dropped the pairing marker -> the relay is now
|
|
2997
|
+
* enabled. Point the board ctx at the active project (if a turn has not
|
|
2998
|
+
* set it yet) and push a snapshot right away, so the phone shows the
|
|
2999
|
+
* project bubble + pizarron the moment it finishes scanning instead of
|
|
3000
|
+
* waiting for the first chat turn. Best-effort. */
|
|
3001
|
+
try {
|
|
3002
|
+
if (!_relayBoardCtx) {
|
|
3003
|
+
const { readRegistry } = await import('../core/projects.js');
|
|
3004
|
+
const reg = await readRegistry();
|
|
3005
|
+
const slug = reg.active_slug ?? null;
|
|
3006
|
+
const entry = slug ? reg.projects.find((p) => p.slug === slug) : undefined;
|
|
3007
|
+
if (entry?.path)
|
|
3008
|
+
setRelayBoardCtx(entry.path, slug);
|
|
3009
|
+
}
|
|
3010
|
+
publishBoardSnapshot();
|
|
3011
|
+
}
|
|
3012
|
+
catch { /* best-effort */ }
|
|
2995
3013
|
const QRCode = (await import('qrcode')).default;
|
|
2996
3014
|
/* PND-047 follow-up -- the pairing payload grew (the per-handle key is
|
|
2997
3015
|
* 64 hex chars + key_kind), pushing the QR from 97x97 to 105x105 modules
|