@nac3/forge-cli 1.0.24 → 1.0.26
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 +30 -2
- package/dist/chat/server.js.map +1 -1
- package/dist/core/limits_config.d.ts +6 -0
- package/dist/core/limits_config.d.ts.map +1 -1
- package/dist/core/limits_config.js +7 -0
- package/dist/core/limits_config.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;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;qEACiE;IACjE,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,eAAe,CAAC;IACvB,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAqBD,wBAAsB,eAAe,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,CAoahF;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;IAGlE,MAAM,CAAC,EAAE,OAAO,aAAa,EAAE,YAAY,GAAG,IAAI,CAAC;CACpD;
|
|
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;qEACiE;IACjE,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,eAAe,CAAC;IACvB,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAqBD,wBAAsB,eAAe,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,CAoahF;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;IAGlE,MAAM,CAAC,EAAE,OAAO,aAAa,EAAE,YAAY,GAAG,IAAI,CAAC;CACpD;AAs+ID,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,CAsfR"}
|
package/dist/chat/server.js
CHANGED
|
@@ -1379,19 +1379,32 @@ async function route(req, res, ctx) {
|
|
|
1379
1379
|
catch {
|
|
1380
1380
|
accept = true;
|
|
1381
1381
|
}
|
|
1382
|
+
const fromNameEarly = String(body.from_name || 'otra instancia');
|
|
1382
1383
|
if (!accept) {
|
|
1384
|
+
try {
|
|
1385
|
+
console.error('[bridge] directed message from ' + fromNameEarly + ' DROPPED (accept_directed=off)');
|
|
1386
|
+
}
|
|
1387
|
+
catch { /* */ }
|
|
1383
1388
|
sendJson(res, 200, { ok: true, accepted: false, reason: 'disabled' });
|
|
1384
1389
|
return;
|
|
1385
1390
|
}
|
|
1386
1391
|
if (isTurnActive()) {
|
|
1392
|
+
try {
|
|
1393
|
+
console.error('[bridge] directed message from ' + fromNameEarly + ' deferred (busy; host will retry)');
|
|
1394
|
+
}
|
|
1395
|
+
catch { /* */ }
|
|
1387
1396
|
sendJson(res, 200, { ok: true, accepted: false, reason: 'busy' });
|
|
1388
1397
|
return;
|
|
1389
1398
|
}
|
|
1390
|
-
const fromName =
|
|
1399
|
+
const fromName = fromNameEarly;
|
|
1391
1400
|
const fromId = String(body.from || '');
|
|
1392
1401
|
const m = fromId.match(/-(\d+)-\d+$/);
|
|
1393
1402
|
const fromPort = m ? m[1] : '';
|
|
1394
1403
|
const hop = Math.max(0, Math.min(10, Number(body.hop) || 0));
|
|
1404
|
+
try {
|
|
1405
|
+
console.error('[bridge] injecting directed message from ' + fromName + (fromPort ? ' (:' + fromPort + ')' : '') + ' as a chat turn (hop=' + hop + ')');
|
|
1406
|
+
}
|
|
1407
|
+
catch { /* */ }
|
|
1395
1408
|
const tagged = '[Coordinacion entre instancias] Mensaje DIRIGIDO de Forge "' + fromName + '"'
|
|
1396
1409
|
+ (fromPort ? ' (:' + fromPort + ')' : '') + ':\n\n' + text
|
|
1397
1410
|
+ '\n\n(Responde en el chat. Si necesitas contestarle por el canal usa yujin.bridge.say con to:"'
|
|
@@ -4649,6 +4662,12 @@ async function handleChat(req, res, ctx) {
|
|
|
4649
4662
|
* until the queue (task #28) serializes turns. */
|
|
4650
4663
|
turnId = sessionId + ':' + String(Date.now());
|
|
4651
4664
|
const turnSignal = beginTurn(turnId);
|
|
4665
|
+
/* Pablo 2026-06-19 -- response-token cap from config, NOT the old hardcoded
|
|
4666
|
+
* 1024 that starved BYOK/Console agentic turns (verbose narration ate the
|
|
4667
|
+
* budget before the tool_use block, so verbs never fired -> the tester's
|
|
4668
|
+
* "narro sin invocar"). Plan/CLI ignores this; BYOK + managed honour it. */
|
|
4669
|
+
const { readLimitsConfig: _readLimForTokens } = await import('../core/limits_config.js');
|
|
4670
|
+
const _maxTokensPerTurn = (await _readLimForTokens()).max_tokens_per_turn;
|
|
4652
4671
|
const chatRequest = {
|
|
4653
4672
|
messages: turnMessages,
|
|
4654
4673
|
signal: turnSignal,
|
|
@@ -4681,7 +4700,7 @@ async function handleChat(req, res, ctx) {
|
|
|
4681
4700
|
? (ctx.panelPushToken ? 'mcp-bridge' : 'none')
|
|
4682
4701
|
: 'native'),
|
|
4683
4702
|
systemDynamic: projectContextSection + snapshotSection + graphSection + wiringSection + toolingSection + workflowSection,
|
|
4684
|
-
maxTokens:
|
|
4703
|
+
maxTokens: _maxTokensPerTurn,
|
|
4685
4704
|
tools: FORGE_TOOL_SPECS,
|
|
4686
4705
|
runTool: async (name, input) => {
|
|
4687
4706
|
/* alpha.59e -- loop detection. Build a signature from
|
|
@@ -5344,6 +5363,15 @@ panelMode = 'native') {
|
|
|
5344
5363
|
'user trust + triggers a quality detector that escalates the',
|
|
5345
5364
|
'next turn to a stronger model.',
|
|
5346
5365
|
'',
|
|
5366
|
+
'COORDINACION ENTRE INSTANCIAS (yujin.bridge.*): para que OTRA instancia',
|
|
5367
|
+
'reciba algo EN SU CHAT y lo conteste (saludo, pregunta, handoff, "decile a',
|
|
5368
|
+
'la otra que..."), usa yujin.bridge.say CON `to`=<panel port> (DIRIGIDO): se',
|
|
5369
|
+
'inyecta como turno alla. Un say SIN `to` es solo un broadcast pasivo que',
|
|
5370
|
+
'queda en el feed y NO entra a ningun chat. Para alcanzar a VARIAS/todas:',
|
|
5371
|
+
'llama yujin.bridge.peers y luego un say dirigido POR CADA peer usando su',
|
|
5372
|
+
'PUERTO (si comparten nombre de proyecto, el nombre es ambiguo -- usa el',
|
|
5373
|
+
'puerto). NO uses un solo broadcast cuando esperas que te respondan.',
|
|
5374
|
+
'',
|
|
5347
5375
|
...(tierHeader ? [tierHeader, ''] : []),
|
|
5348
5376
|
'LEMA YUJIN: "La tecnologia desaparece. El sistema aprende de vos, no vos del sistema." Toda decision se evalua contra esto.',
|
|
5349
5377
|
'',
|