@nac3/forge-cli 1.23.1 → 1.23.3
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/bin/yf.js +0 -0
- package/dist/chat/server.d.ts.map +1 -1
- package/dist/chat/server.js +36 -8
- package/dist/chat/server.js.map +1 -1
- package/dist/commands/urazuke.d.ts.map +1 -1
- package/dist/commands/urazuke.js +22 -16
- package/dist/commands/urazuke.js.map +1 -1
- package/dist/core/error_catalog.d.ts +27 -0
- package/dist/core/error_catalog.d.ts.map +1 -1
- package/dist/core/error_catalog.js +55 -0
- package/dist/core/error_catalog.js.map +1 -1
- package/dist/core/error_formatter.d.ts +12 -0
- package/dist/core/error_formatter.d.ts.map +1 -1
- package/dist/core/error_formatter.js +19 -0
- package/dist/core/error_formatter.js.map +1 -1
- package/dist/relay/command_consumer.d.ts +10 -0
- package/dist/relay/command_consumer.d.ts.map +1 -1
- package/dist/relay/command_consumer.js +10 -1
- package/dist/relay/command_consumer.js.map +1 -1
- package/dist/relay/loopback_turn.d.ts +82 -0
- package/dist/relay/loopback_turn.d.ts.map +1 -0
- package/dist/relay/loopback_turn.js +171 -0
- package/dist/relay/loopback_turn.js.map +1 -0
- package/dist/urazuke/heuristics.d.ts +11 -0
- package/dist/urazuke/heuristics.d.ts.map +1 -1
- package/dist/urazuke/heuristics.js +15 -3
- package/dist/urazuke/heuristics.js.map +1 -1
- package/dist/urazuke/quality.d.ts +1 -4
- package/dist/urazuke/quality.d.ts.map +1 -1
- package/dist/urazuke/quality.js +3 -42
- package/dist/urazuke/quality.js.map +1 -1
- package/dist/urazuke/quality_doc.d.ts +11 -0
- package/dist/urazuke/quality_doc.d.ts.map +1 -0
- package/dist/urazuke/quality_doc.js +137 -0
- package/dist/urazuke/quality_doc.js.map +1 -0
- package/dist/urazuke/rule_report.d.ts +29 -0
- package/dist/urazuke/rule_report.d.ts.map +1 -0
- package/dist/urazuke/rule_report.js +239 -0
- package/dist/urazuke/rule_report.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +18 -20
- package/src/i18n/catalogs/ar.json +7 -0
- package/src/i18n/catalogs/de.json +7 -0
- package/src/i18n/catalogs/en.json +7 -0
- package/src/i18n/catalogs/es.json +7 -0
- package/src/i18n/catalogs/fr.json +7 -0
- package/src/i18n/catalogs/hi.json +7 -0
- package/src/i18n/catalogs/it.json +7 -0
- package/src/i18n/catalogs/ja.json +7 -0
- package/src/i18n/catalogs/pt.json +7 -0
- package/src/i18n/catalogs/zh.json +7 -0
package/dist/bin/yf.js
CHANGED
|
File without changes
|
|
@@ -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":"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;AAwC1H,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;IACjD;;;;;;;iDAO6C;IAC7C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;oDAEgD;IAChD,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;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;IAC3B;;;oCAGgC;IAChC,MAAM,CAAC,EAAE,OAAO,aAAa,EAAE,YAAY,GAAG,IAAI,CAAC;IACnD;;;;sCAIkC;IAClC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;QACrC,WAAW,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;KAC/D,CAAC,CAAC;CACJ;AAqBD,wBAAsB,eAAe,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,CAytBhF;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;AAwJD;;;;+EAI+E;AAC/E,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACtC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACvB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;CACpB,GAAG,OAAO,CAOV;AAmoMD,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;AACtD;;;;;mEAKmE;AACnE,eAAe,CAAC,EAAE,eAAe;AACjC;;;yEAGyE;AACzE,iBAAiB,GAAE,OAAe,GACjC,MAAM,CAojBR;AAED;;;;2EAI2E;AAC3E,wBAAgB,2BAA2B,CACzC,WAAW,EAAE,OAAO,EACpB,SAAS,EAAE,OAAO,EAClB,UAAU,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,GACzC,MAAM,CAgCR"}
|
package/dist/chat/server.js
CHANGED
|
@@ -58,6 +58,9 @@ import { getInstanceIdentity } from '../relay/instance_identity.js';
|
|
|
58
58
|
import { isMobilePaired, relayGate } from '../core/mobile_pairing_state.js';
|
|
59
59
|
import { relayPoll } from '../relay/relay_client.js';
|
|
60
60
|
import { startCommandConsumer } from '../relay/command_consumer.js';
|
|
61
|
+
import { postChatTurn } from '../relay/loopback_turn.js';
|
|
62
|
+
import { forgeErrorOf } from '../core/error_catalog.js';
|
|
63
|
+
import { formatForgeErrorText } from '../core/error_formatter.js';
|
|
61
64
|
import { getSessionStore, DEFAULT_SESSION_ID } from './session_store.js';
|
|
62
65
|
import { getSessionProject, setSessionProject } from './session_projects.js';
|
|
63
66
|
import { beginTurn, endTurn, interruptActiveTurn, interruptAllTurns, isTurnActive, activeTurnId, activeTurns, } from './turn_control.js';
|
|
@@ -1163,10 +1166,15 @@ function startDesktopCommandConsumer(port, coord = {}) {
|
|
|
1163
1166
|
void pub.flush(); /* push the reply promptly, do not wait the window */
|
|
1164
1167
|
};
|
|
1165
1168
|
const runTurn = async (text, sessionId, projectSlug) => {
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
|
|
1169
|
-
|
|
1169
|
+
/* El POST va por node:http y no por fetch, y con un presupuesto de turno
|
|
1170
|
+
* y no de llamada corta: las cabeceras de esta respuesta recien salen
|
|
1171
|
+
* cuando el turno TERMINO, y el limite que fetch hereda de undici son
|
|
1172
|
+
* cinco minutos medidos, asi que todo turno mas largo moria con "fetch
|
|
1173
|
+
* failed" aunque el escritorio lo terminara bien (PND-234). El porque
|
|
1174
|
+
* completo, con la medicion, esta en src/relay/loopback_turn.ts. */
|
|
1175
|
+
const resp = await postChatTurn({
|
|
1176
|
+
port,
|
|
1177
|
+
payload: {
|
|
1170
1178
|
messages: [{ role: 'user', content: text }],
|
|
1171
1179
|
...(sessionId ? { session_id: sessionId } : {}),
|
|
1172
1180
|
/* Bind the turn to the project the phone composed it against
|
|
@@ -1178,13 +1186,33 @@ function startDesktopCommandConsumer(port, coord = {}) {
|
|
|
1178
1186
|
* the unified-thread ones to the panel (the laptop sees what was
|
|
1179
1187
|
* asked from the phone). */
|
|
1180
1188
|
origin: 'mobile',
|
|
1181
|
-
}
|
|
1189
|
+
},
|
|
1182
1190
|
});
|
|
1183
|
-
|
|
1191
|
+
/* Un cuerpo que no es JSON no se puede reportar como "turn failed": eso
|
|
1192
|
+
* esconderia un 500 con una pagina de error adentro. Se dice que la
|
|
1193
|
+
* respuesta no se pudo leer y se deja el status, que es lo que permite
|
|
1194
|
+
* diagnosticarlo. */
|
|
1195
|
+
let j;
|
|
1196
|
+
try {
|
|
1197
|
+
j = JSON.parse(resp.body);
|
|
1198
|
+
}
|
|
1199
|
+
catch {
|
|
1200
|
+
throw new Error('respuesta no interpretable del servidor de chat (HTTP '
|
|
1201
|
+
+ resp.status + ')');
|
|
1202
|
+
}
|
|
1184
1203
|
if (!j || j.ok === false)
|
|
1185
1204
|
throw new Error(j?.error || 'turn failed');
|
|
1186
1205
|
return String(j.message?.text ?? '');
|
|
1187
1206
|
};
|
|
1207
|
+
/* Como se le cuenta al telefono un turno que fallo. El consumidor no
|
|
1208
|
+
* importa el catalogo de i18n a proposito (no toca el disco, para poder
|
|
1209
|
+
* probarse sin red ni servidor), asi que el renderizado se inyecta desde
|
|
1210
|
+
* aca, que ya lo tiene cargado. Devolver null significa "no tengo nada
|
|
1211
|
+
* mejor": el consumidor cae a su texto de siempre. */
|
|
1212
|
+
const describeError = (e) => {
|
|
1213
|
+
const forge = forgeErrorOf(e);
|
|
1214
|
+
return forge ? formatForgeErrorText(forge) : null;
|
|
1215
|
+
};
|
|
1188
1216
|
const onControl = async (action, args) => {
|
|
1189
1217
|
/* Control commands from the phone (tasks #33, #29) go through the
|
|
1190
1218
|
* same loopback the chat turns use -- no extra coupling. */
|
|
@@ -1313,7 +1341,7 @@ function startDesktopCommandConsumer(port, coord = {}) {
|
|
|
1313
1341
|
* slug names a peer's project (board.activeProject races between instances),
|
|
1314
1342
|
* so no instance ran it and the phone hung on "working". */
|
|
1315
1343
|
accept: (c) => !c.control && (!!c.targetInstance || ownsChatCommand(c.projectSlug)),
|
|
1316
|
-
pollCommands, runTurn, reply,
|
|
1344
|
+
pollCommands, runTurn, reply, describeError,
|
|
1317
1345
|
ackImmediate: true, /* confirm receipt before the turn runs */
|
|
1318
1346
|
onError: () => { },
|
|
1319
1347
|
});
|
|
@@ -1321,7 +1349,7 @@ function startDesktopCommandConsumer(port, coord = {}) {
|
|
|
1321
1349
|
enabled: relayEnabled, intervalMs: 1200,
|
|
1322
1350
|
instanceId: selfInstanceId,
|
|
1323
1351
|
accept: (c) => !!c.control,
|
|
1324
|
-
pollCommands, runTurn, onControl, reply,
|
|
1352
|
+
pollCommands, runTurn, onControl, reply, describeError,
|
|
1325
1353
|
onError: () => { },
|
|
1326
1354
|
});
|
|
1327
1355
|
/* Item 2 (cross-machine): advertise this instance's presence so the phone
|