@nac3/forge-cli 1.24.0 → 1.25.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/bin/yf.js +0 -0
- package/dist/chat/agent_session.d.ts.map +1 -1
- package/dist/chat/agent_session.js +132 -12
- package/dist/chat/agent_session.js.map +1 -1
- package/dist/chat/panel.d.ts.map +1 -1
- package/dist/chat/panel.js +31 -4
- package/dist/chat/panel.js.map +1 -1
- package/dist/chat/server.d.ts.map +1 -1
- package/dist/chat/server.js +29 -3
- package/dist/chat/server.js.map +1 -1
- package/dist/chat/tools/keys.d.ts.map +1 -1
- package/dist/chat/tools/keys.js +22 -2
- package/dist/chat/tools/keys.js.map +1 -1
- package/dist/chat/tools/pending.d.ts +3 -0
- package/dist/chat/tools/pending.d.ts.map +1 -1
- package/dist/chat/tools/pending.js +40 -3
- package/dist/chat/tools/pending.js.map +1 -1
- package/dist/chat/tools/session_verbs.d.ts +81 -0
- package/dist/chat/tools/session_verbs.d.ts.map +1 -1
- package/dist/chat/tools/session_verbs.js +188 -18
- package/dist/chat/tools/session_verbs.js.map +1 -1
- package/dist/chat/tools/shell.d.ts.map +1 -1
- package/dist/chat/tools/shell.js +22 -0
- package/dist/chat/tools/shell.js.map +1 -1
- package/dist/commands/limits.d.ts.map +1 -1
- package/dist/commands/limits.js +9 -1
- package/dist/commands/limits.js.map +1 -1
- package/dist/commands/pending.d.ts.map +1 -1
- package/dist/commands/pending.js +26 -1
- package/dist/commands/pending.js.map +1 -1
- package/dist/commands/urazuke.d.ts.map +1 -1
- package/dist/commands/urazuke.js +82 -0
- package/dist/commands/urazuke.js.map +1 -1
- package/dist/core/battery_stamp.d.ts +26 -0
- package/dist/core/battery_stamp.d.ts.map +1 -1
- package/dist/core/battery_stamp.js +51 -1
- package/dist/core/battery_stamp.js.map +1 -1
- package/dist/core/ci_gaps.d.ts +2 -1
- package/dist/core/ci_gaps.d.ts.map +1 -1
- package/dist/core/ci_gaps.js +2 -1
- package/dist/core/ci_gaps.js.map +1 -1
- package/dist/core/hook_budget.d.ts +60 -0
- package/dist/core/hook_budget.d.ts.map +1 -0
- package/dist/core/hook_budget.js +163 -0
- package/dist/core/hook_budget.js.map +1 -0
- package/dist/core/limits_config.d.ts +50 -0
- package/dist/core/limits_config.d.ts.map +1 -1
- package/dist/core/limits_config.js +59 -0
- package/dist/core/limits_config.js.map +1 -1
- package/dist/core/provider_keys.d.ts +33 -0
- package/dist/core/provider_keys.d.ts.map +1 -1
- package/dist/core/provider_keys.js +40 -3
- package/dist/core/provider_keys.js.map +1 -1
- package/dist/docs/doctrine/session-orchestration.md +91 -86
- package/dist/llm/sse_stream.d.ts +3 -0
- package/dist/llm/sse_stream.d.ts.map +1 -1
- package/dist/llm/sse_stream.js +16 -2
- package/dist/llm/sse_stream.js.map +1 -1
- package/dist/mcp/bridge_registry.d.ts +1 -1
- package/dist/pending/store.d.ts +12 -0
- package/dist/pending/store.d.ts.map +1 -1
- package/dist/pending/store.js +20 -0
- package/dist/pending/store.js.map +1 -1
- package/dist/pending/types.d.ts +11 -0
- package/dist/pending/types.d.ts.map +1 -1
- package/dist/pending/types.js.map +1 -1
- package/dist/tasks/supervisor.d.ts +31 -0
- package/dist/tasks/supervisor.d.ts.map +1 -1
- package/dist/tasks/supervisor.js +61 -5
- package/dist/tasks/supervisor.js.map +1 -1
- package/dist/urazuke/close_gate.d.ts +47 -3
- package/dist/urazuke/close_gate.d.ts.map +1 -1
- package/dist/urazuke/close_gate.js +57 -3
- package/dist/urazuke/close_gate.js.map +1 -1
- package/dist/urazuke/evidence.d.ts +5 -0
- package/dist/urazuke/evidence.d.ts.map +1 -1
- package/dist/urazuke/evidence.js +61 -3
- package/dist/urazuke/evidence.js.map +1 -1
- package/dist/urazuke/external_audit.d.ts +89 -0
- package/dist/urazuke/external_audit.d.ts.map +1 -0
- package/dist/urazuke/external_audit.js +309 -0
- package/dist/urazuke/external_audit.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/docs/doctrine/session-orchestration.md +91 -86
- package/package.json +26 -23
- package/src/i18n/catalogs/ar.json +570 -568
- package/src/i18n/catalogs/de.json +570 -568
- package/src/i18n/catalogs/en.json +570 -568
- package/src/i18n/catalogs/es.json +570 -568
- package/src/i18n/catalogs/fr.json +570 -568
- package/src/i18n/catalogs/hi.json +570 -568
- package/src/i18n/catalogs/it.json +570 -568
- package/src/i18n/catalogs/ja.json +570 -568
- package/src/i18n/catalogs/pt.json +570 -568
- package/src/i18n/catalogs/zh.json +570 -568
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../../src/chat/tools/keys.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAiBrE,eAAO,MAAM,oBAAoB,EAAE,QAalC,CAAC;AAEF,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../../src/chat/tools/keys.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAiBrE,eAAO,MAAM,oBAAoB,EAAE,QAalC,CAAC;AAEF,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC,UAAU,CAAC,CAiDrB;AAMD,eAAO,MAAM,iBAAiB,EAAE,QAiC/B,CAAC;AAEF,wBAAsB,aAAa,CACjC,IAAI,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,EACvC,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC,UAAU,CAAC,CA4CrB"}
|
package/dist/chat/tools/keys.js
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
import { promises as fs } from 'node:fs';
|
|
16
16
|
import path from 'node:path';
|
|
17
17
|
import os from 'node:os';
|
|
18
|
-
import {
|
|
18
|
+
import { listStatusDetailed, setKey, isAllowedSlot, listAllowedSlots, } from '../../core/provider_keys.js';
|
|
19
19
|
const ALLOWED_SLOTS = listAllowedSlots();
|
|
20
20
|
function licenseFile() {
|
|
21
21
|
const home = process.env.HOME || process.env.USERPROFILE || os.homedir();
|
|
@@ -39,7 +39,8 @@ export const GET_BYOK_STATUS_SPEC = {
|
|
|
39
39
|
requires_approval: false,
|
|
40
40
|
};
|
|
41
41
|
export async function runGetByokStatus(_args, _ctx) {
|
|
42
|
-
const
|
|
42
|
+
const detail = await listStatusDetailed();
|
|
43
|
+
const out = detail.keys;
|
|
43
44
|
/* license */
|
|
44
45
|
let licensePlan = 'none';
|
|
45
46
|
try {
|
|
@@ -60,11 +61,30 @@ export async function runGetByokStatus(_args, _ctx) {
|
|
|
60
61
|
if (out.whisper_api_key)
|
|
61
62
|
summary.push('Whisper OK');
|
|
62
63
|
summary.push('license: ' + licensePlan);
|
|
64
|
+
/* PND-259 -- EL LUGAR VA EN LA LINEA QUE SE LEE, NO SOLO EN EL CAMPO.
|
|
65
|
+
*
|
|
66
|
+
* Esta respuesta se usa como evidencia: el cerebro la lee y le pide al
|
|
67
|
+
* dueno la clave que falta. En el experimento Urazuke informo nueve
|
|
68
|
+
* ranuras en `false` leyendo un vault que no era el que el dueno habia
|
|
69
|
+
* cargado, y nadie pudo ver el error porque la salida no nombraba ningun
|
|
70
|
+
* lugar. Asi que el vault consultado viaja en el campo (para el que
|
|
71
|
+
* audita) y en el resumen (para el que escucha). */
|
|
72
|
+
summary.push('vault: ' + path.basename(detail.config_dir));
|
|
73
|
+
if (detail.from_env) {
|
|
74
|
+
/* Y la otra mitad: un `true` que sale del entorno manda a buscar al
|
|
75
|
+
* vault algo que no esta ahi. Se dice, no se promedia. */
|
|
76
|
+
summary.push(detail.from_env + ' del entorno (no del vault)');
|
|
77
|
+
}
|
|
63
78
|
return {
|
|
64
79
|
tool: GET_BYOK_STATUS_SPEC.name,
|
|
65
80
|
is_error: false,
|
|
66
81
|
result: {
|
|
67
82
|
keys: out,
|
|
83
|
+
/* slot -> 'vault' | 'env', solo para los que estan en true. */
|
|
84
|
+
sources: detail.sources,
|
|
85
|
+
config_dir: detail.config_dir,
|
|
86
|
+
from_vault: detail.from_vault,
|
|
87
|
+
from_env: detail.from_env,
|
|
68
88
|
license_plan: licensePlan,
|
|
69
89
|
summary: summary.join(' | '),
|
|
70
90
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../../../src/chat/tools/keys.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../../../src/chat/tools/keys.ts"],"names":[],"mappings":"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"}
|
|
@@ -57,6 +57,9 @@ interface CloseArgs {
|
|
|
57
57
|
tests_status?: 'green' | 'red' | 'partial' | 'none';
|
|
58
58
|
tests_summary?: string;
|
|
59
59
|
tests_files?: string[];
|
|
60
|
+
/** PND-260 -- el motivo escrito de por que la terna de recibos no esta.
|
|
61
|
+
* Obligatorio cuando se cierra con `shipped` sin los tres recibos. */
|
|
62
|
+
sin_recibos_porque?: string;
|
|
60
63
|
/** Urazuke: written reason to close a workflow task although its step
|
|
61
64
|
* is RED or an earlier step is open. Recorded in the item history. */
|
|
62
65
|
force_reason?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pending.d.ts","sourceRoot":"","sources":["../../../src/chat/tools/pending.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAK3D,OAAO,KAAK,EACV,eAAe,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,mBAAmB,EAC7E,MAAM,wBAAwB,CAAC;AAgBhC,UAAU,QAAQ;IAChB,MAAM,CAAC,EAAO,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACxC,QAAQ,CAAC,EAAK,eAAe,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAQ,MAAM,CAAC;CACtB;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAsB1F;AAID,UAAU,YAAY;IAAG,GAAG,EAAE,MAAM,EAAE,CAAA;CAAE;AAExC,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAqBlG;AAID,UAAU,OAAO;IACf,KAAK,EAAU,MAAM,CAAC;IACtB,IAAI,CAAC,EAAU,MAAM,CAAC;IACtB,QAAQ,EAAO,eAAe,CAAC;IAC/B,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,WAAW,CAAC,EAAG,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAM,MAAM,CAAC;IACtB,WAAW,CAAC,EAAG,MAAM,CAAC;IAEtB,UAAU,CAAC,EAAI,MAAM,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAS,MAAM,EAAE,CAAC;CACzB;AAwBD,wBAAsB,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAyCxF;AAID,UAAU,SAAS;IACjB,EAAE,EAAW,MAAM,CAAC;IACpB,MAAM,EAAO,kBAAkB,CAAC;IAChC,MAAM,CAAC,EAAM,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;2EACuE;IACvE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAG,MAAM,EAAE,CAAC;IACtB,KAAK,CAAC,EAAO,MAAM,EAAE,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,SAAS,GAAG,MAAM,CAAC;IACpD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAG,MAAM,EAAE,CAAC;IACxB;2EACuE;IACvE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;wCAGoC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;
|
|
1
|
+
{"version":3,"file":"pending.d.ts","sourceRoot":"","sources":["../../../src/chat/tools/pending.ts"],"names":[],"mappings":"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"}
|
|
@@ -166,12 +166,21 @@ function expedienteFaltante(args) {
|
|
|
166
166
|
if (casos.length === 0) {
|
|
167
167
|
faltan.push('`use_cases`: al menos un caso concreto que ahora queda cubierto');
|
|
168
168
|
}
|
|
169
|
+
/* PND-260 (c): `tests_status` pasa de pedido POR DESCRIPCION a requerido,
|
|
170
|
+
* igual que `functional`. Es el principio que el comentario de arriba
|
|
171
|
+
* enuncia y que se aplicaba a dos campos y no a este: el repo no registra
|
|
172
|
+
* como fue la bateria, asi que si no lo declara quien acaba de correrla,
|
|
173
|
+
* se pierde. */
|
|
174
|
+
if (!args.tests_status) {
|
|
175
|
+
faltan.push('`tests_status`: green | red | partial | none -- como fue la bateria que acabas de'
|
|
176
|
+
+ ' correr. El repo no lo registra en ningun lado: si no lo declaras, se pierde');
|
|
177
|
+
}
|
|
169
178
|
if (faltan.length) {
|
|
170
179
|
return 'no se puede cerrar con reason=shipped sin el expediente de la implementacion. Falta -> '
|
|
171
180
|
+ faltan.join(' | ')
|
|
172
181
|
+ '. Pasa tambien `commit` con el SHA: de ahi se derivan las fuentes afectadas, que el repo'
|
|
173
|
-
+ ' conoce con certeza
|
|
174
|
-
+ '
|
|
182
|
+
+ ' conoce con certeza, y `tests_summary` con como fue la bateria. Sin esto, mas adelante del'
|
|
183
|
+
+ ' item solo queda el titulo.';
|
|
175
184
|
}
|
|
176
185
|
return null;
|
|
177
186
|
}
|
|
@@ -203,8 +212,34 @@ export async function runPendingClose(args, ctx) {
|
|
|
203
212
|
* tests_status is a declaration; the receipt is the evidence. */
|
|
204
213
|
{
|
|
205
214
|
const { findPending, appendPendingHistory } = await import('../../pending/store.js');
|
|
206
|
-
const { evidenceGateApplies, evidenceForClose } = await import('../../urazuke/close_gate.js');
|
|
215
|
+
const { evidenceGateApplies, evidenceForClose, receiptsRequiredForShipped, evidenceEscapeProblem, } = await import('../../urazuke/close_gate.js');
|
|
207
216
|
const item = await findPending(slug, args.id);
|
|
217
|
+
/* PND-260 -- LA EXIGENCIA UNIVERSAL, PRIMERO.
|
|
218
|
+
*
|
|
219
|
+
* Vale en todo cierre con `shipped` de un item que no sea tarea canonica
|
|
220
|
+
* de la escalera, en cualquier proyecto. Cuando ADEMAS rige el gate
|
|
221
|
+
* estricto de Urazuke (abajo), este no decide: la escapatoria del agente
|
|
222
|
+
* no puede abrir una compuerta del dueno, asi que se saltea y manda el
|
|
223
|
+
* de abajo. */
|
|
224
|
+
if (item && !(await evidenceGateApplies(slug, item, args.reason))
|
|
225
|
+
&& receiptsRequiredForShipped(item, args.reason)) {
|
|
226
|
+
const ev = await evidenceForClose(slug, args.id, { projectRoot: ctx.projectRoot });
|
|
227
|
+
if (!ev.ok) {
|
|
228
|
+
const problema = evidenceEscapeProblem(args.sin_recibos_porque);
|
|
229
|
+
if (problema) {
|
|
230
|
+
return err('yujin.pending.close', 'no se puede cerrar ' + args.id + ' con reason=shipped sin la terna de'
|
|
231
|
+
+ ' recibos (red_proof + green + regression). Falta: ' + ev.missing.join(' | ')
|
|
232
|
+
+ '. Tiene: ' + ev.have.red_proofs + ' red_proof, ' + ev.have.greens + ' green, '
|
|
233
|
+
+ ev.have.regressions + ' regression'
|
|
234
|
+
+ (ev.have.env_incomplete_reds ? ', ' + ev.have.env_incomplete_reds + ' rojo(s) descartado(s) por entorno incompleto' : '')
|
|
235
|
+
+ '. Corre cada uno con yujin.evidence.run (pending_id=' + args.id + '). Si de verdad no'
|
|
236
|
+
+ ' corresponde -- un cambio que no es de codigo, un peldano que todavia no tiene bateria --'
|
|
237
|
+
+ ' pasa `sin_recibos_porque` con el motivo escrito: ' + problema + '. Queda marcado en el'
|
|
238
|
+
+ ' item y contado en `pending stats`, para que la excepcion la escriba quien sabe y no la'
|
|
239
|
+
+ ' reconstruya un auditor cuatro semanas despues.');
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
}
|
|
208
243
|
if (item && await evidenceGateApplies(slug, item, args.reason)) {
|
|
209
244
|
/* Con el project root: la regla de cierre sale de la definicion EN
|
|
210
245
|
* VIGOR del proyecto (su copia congelada), no de la compilada. */
|
|
@@ -274,6 +309,8 @@ export async function runPendingClose(args, ctx) {
|
|
|
274
309
|
input.resolution = args.resolution;
|
|
275
310
|
if (args.functional !== undefined)
|
|
276
311
|
input.functional = args.functional;
|
|
312
|
+
if (args.sin_recibos_porque !== undefined)
|
|
313
|
+
input.sin_recibos_porque = args.sin_recibos_porque;
|
|
277
314
|
if (Array.isArray(args.use_cases))
|
|
278
315
|
input.use_cases = args.use_cases;
|
|
279
316
|
if (args.tests_status !== undefined)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pending.js","sourceRoot":"","sources":["../../../src/chat/tools/pending.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pending.js","sourceRoot":"","sources":["../../../src/chat/tools/pending.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,6 +31,72 @@ export declare function resetSessionStateForTest(): void;
|
|
|
31
31
|
export declare function childBrainKeySlots(bc: {
|
|
32
32
|
anthropic_mode?: string;
|
|
33
33
|
} | undefined): string[];
|
|
34
|
+
/** Un nivel que el hijo puede llegar a usar, y si esta en condiciones. */
|
|
35
|
+
export interface ChildTierCheck {
|
|
36
|
+
tier: 'eco' | 'frontier';
|
|
37
|
+
provider: string;
|
|
38
|
+
/** La ranura del vault que el resolvedor va a leer para ESE proveedor. */
|
|
39
|
+
slot: string;
|
|
40
|
+
ok: boolean;
|
|
41
|
+
/** Por que no, cuando no: no_key | plan_mode. */
|
|
42
|
+
why?: 'no_key' | 'plan_mode';
|
|
43
|
+
}
|
|
44
|
+
export interface ChildBrainVerdict {
|
|
45
|
+
ok: boolean;
|
|
46
|
+
/** Los niveles que el ruteo puede elegir para un turno del hijo. */
|
|
47
|
+
checked: ChildTierCheck[];
|
|
48
|
+
/** Los que no estan en condiciones -- lo que el error tiene que nombrar. */
|
|
49
|
+
missing: ChildTierCheck[];
|
|
50
|
+
/** Cuando el hijo no necesita ninguna clave: managed. */
|
|
51
|
+
managed: boolean;
|
|
52
|
+
}
|
|
53
|
+
/** QUE NIVELES PUEDE ELEGIR UN TURNO DEL HIJO.
|
|
54
|
+
*
|
|
55
|
+
* No es "el nivel por default" y punto: el ruteo (src/core/cost_router.ts)
|
|
56
|
+
* elige por turno, y con el modo eco prendido los dos niveles son
|
|
57
|
+
* alcanzables -- el barato por el clasificador, el frontier por escalada.
|
|
58
|
+
* Con el modo eco apagado, cost_router clampa eco -> frontier, asi que el
|
|
59
|
+
* unico alcanzable es frontier. Esta funcion existe para que esa regla viva
|
|
60
|
+
* en UN lugar y la compuerta no se desincronice del ruteo. */
|
|
61
|
+
export declare function childReachableTiers(cfg: {
|
|
62
|
+
eco_enabled?: boolean;
|
|
63
|
+
}): Array<'eco' | 'frontier'>;
|
|
64
|
+
/** LA COMPUERTA DEL SPAWN, MIRANDO LA MISMA CLAVE QUE EL RESOLVEDOR (PND-256).
|
|
65
|
+
*
|
|
66
|
+
* Lo que habia aca recorria `childBrainKeySlots()` y devolvia `true` con la
|
|
67
|
+
* clave de CUALQUIER proveedor. Medido en el experimento Urazuke
|
|
68
|
+
* (2026-11-01): con `frontier` apuntado a anthropic SIN clave y una clave de
|
|
69
|
+
* DeepSeek cargada, el spawn devolvia ok:true con handle y pid, y el hijo
|
|
70
|
+
* moria a los ~30 s con 0 turnos y 0 tokens. La compuerta tenia todo lo que
|
|
71
|
+
* necesitaba para contestar `false` -- la config dice el proveedor del nivel
|
|
72
|
+
* y el vault dice si esa clave esta -- y contestaba `true` con la clave de
|
|
73
|
+
* otro. Un ok:true que no significa que el hijo pueda arrancar es un cero
|
|
74
|
+
* que se lee como salud: el que lo recibe espera 30 segundos y despues tiene
|
|
75
|
+
* que ir a buscar a la morgue por que no hubo turnos.
|
|
76
|
+
*
|
|
77
|
+
* Ahora pregunta lo que el resolvedor va a preguntar: para cada nivel
|
|
78
|
+
* alcanzable, `vaultSlotForProvider(provider)` y `getKey(slot)` -- las dos
|
|
79
|
+
* mismas llamadas que hace cost_router. Si una falta, el veredicto la nombra
|
|
80
|
+
* con proveedor y ranura, que es lo que el dueno necesita para arreglarlo. */
|
|
81
|
+
export declare function childBrainVerdict(): Promise<ChildBrainVerdict>;
|
|
82
|
+
/** THE REFUSAL WITH NO DETAIL BEHIND IT -- still names the two ways out.
|
|
83
|
+
*
|
|
84
|
+
* Reached when the check cannot say WHICH tier is missing what: the test
|
|
85
|
+
* seam, or any caller that only has the boolean. A bare "no usable child
|
|
86
|
+
* brain" is a no without a door: the owner reads it and has nowhere to go.
|
|
87
|
+
* So this one keeps naming both exits (a BYOK key the child can use, or a
|
|
88
|
+
* managed brain) plus the Claude Plan trap, which is the case that actually
|
|
89
|
+
* happens (ADIP, 2026-10-19). */
|
|
90
|
+
export declare const NO_CHILD_BRAIN_GENERIC: string;
|
|
91
|
+
/** The refusal text, naming provider and slot. It lives next to the verdict
|
|
92
|
+
* because it is the half that is useful: "no usable brain" tells nobody what
|
|
93
|
+
* to do. English, like every other error string this verb returns -- a single
|
|
94
|
+
* verb answering half in one language and half in another is its own defect.
|
|
95
|
+
* (The whole verb-error surface still owes the i18n migration; that is the
|
|
96
|
+
* f104 learning, not this batch.) */
|
|
97
|
+
export declare function describeChildBrainVerdict(v: ChildBrainVerdict): string;
|
|
98
|
+
/** Compatibilidad: la pregunta de si/no, para el que solo necesita el booleano
|
|
99
|
+
* (el panel la usa para decidir si ofrece la orquestacion). */
|
|
34
100
|
export declare function hasUsableChildBrain(): Promise<boolean>;
|
|
35
101
|
export declare function runSessionSpawn(args: {
|
|
36
102
|
task?: unknown;
|
|
@@ -42,6 +108,21 @@ export declare function runSessionCollect(args: {
|
|
|
42
108
|
handle?: unknown;
|
|
43
109
|
wait_ms?: unknown;
|
|
44
110
|
}, ctx: ToolContext): Promise<ToolResult>;
|
|
111
|
+
/** SI EL PROCESO EXISTE, PREGUNTANDOLE AL SISTEMA OPERATIVO (PND-256).
|
|
112
|
+
*
|
|
113
|
+
* `alive` salia de buscar el pid en el roster del bridge, y el roster dice
|
|
114
|
+
* otra cosa: dice si el hijo ya se registro en el canal. Las dos direcciones
|
|
115
|
+
* del error estan medidas (2026-11-01):
|
|
116
|
+
*
|
|
117
|
+
* - `alive:false` sobre un proceso VIVO -- el hijo esta arrancando y
|
|
118
|
+
* todavia no publico. El que lo lee lo da por muerto y lo relanza.
|
|
119
|
+
* - `alive:true` sobre un pid INEXISTENTE -- el roster quedo con la
|
|
120
|
+
* entrada de un hijo que murio. El que lo lee se queda esperando.
|
|
121
|
+
*
|
|
122
|
+
* `process.kill(pid, 0)` no manda ninguna senal: pregunta por la existencia.
|
|
123
|
+
* ESRCH = no existe; EPERM = existe y es de otro usuario (existe igual, y
|
|
124
|
+
* eso cuenta como vivo). Funciona en Windows tambien. */
|
|
125
|
+
export declare function pidAlive(pid: number | null): boolean;
|
|
45
126
|
export declare function runSessionList(_args: unknown, ctx: ToolContext): Promise<ToolResult>;
|
|
46
127
|
export declare function runSessionStop(args: {
|
|
47
128
|
handle?: unknown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session_verbs.d.ts","sourceRoot":"","sources":["../../../src/chat/tools/session_verbs.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAI3D,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,CAAC;IACzE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,8EAA8E;AAC9E,MAAM,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,KAAK;IAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC;AAS7F,uDAAuD;AACvD,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,cAAc,GAAG,IAAI,GAAG,IAAI,CAAmB;AAC5F,qEAAqE;AACrE,wBAAgB,2BAA2B,CAAC,EAAE,EAAE,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAsB;AAC5G,+DAA+D;AAC/D,wBAAgB,gCAAgC,CAAC,EAAE,EAAE,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAwB;AACnH,oEAAoE;AACpE,wBAAgB,wBAAwB,IAAI,IAAI,CAA4C;AA4C5F;;;;;0EAK0E;AAC1E,wBAAgB,kBAAkB,CAAC,EAAE,EAAE;IAAE,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,GAAG,MAAM,EAAE,CAIxF;AAED,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"session_verbs.d.ts","sourceRoot":"","sources":["../../../src/chat/tools/session_verbs.ts"],"names":[],"mappings":"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"}
|
|
@@ -88,28 +88,148 @@ export function childBrainKeySlots(bc) {
|
|
|
88
88
|
'deepseek_api_key', 'xai_api_key', 'mistral_api_key', 'cohere_api_key'];
|
|
89
89
|
return bc?.anthropic_mode === 'plan' ? all.filter((s) => s !== 'anthropic_api_key') : all;
|
|
90
90
|
}
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
91
|
+
/** Proveedores que arrancan SIN una clave BYOK en el vault: ollama es local,
|
|
92
|
+
* managed autentica con la licencia, y federation usa su propia ranura cruda
|
|
93
|
+
* (`yf_federation_key`) que el cliente de federacion lee directo. */
|
|
94
|
+
const KEYLESS_PROVIDERS = new Set(['ollama', 'yujin_managed', 'federation']);
|
|
95
|
+
/** QUE NIVELES PUEDE ELEGIR UN TURNO DEL HIJO.
|
|
96
|
+
*
|
|
97
|
+
* No es "el nivel por default" y punto: el ruteo (src/core/cost_router.ts)
|
|
98
|
+
* elige por turno, y con el modo eco prendido los dos niveles son
|
|
99
|
+
* alcanzables -- el barato por el clasificador, el frontier por escalada.
|
|
100
|
+
* Con el modo eco apagado, cost_router clampa eco -> frontier, asi que el
|
|
101
|
+
* unico alcanzable es frontier. Esta funcion existe para que esa regla viva
|
|
102
|
+
* en UN lugar y la compuerta no se desincronice del ruteo. */
|
|
103
|
+
export function childReachableTiers(cfg) {
|
|
104
|
+
return cfg.eco_enabled === false ? ['frontier'] : ['eco', 'frontier'];
|
|
105
|
+
}
|
|
106
|
+
/** LA COMPUERTA DEL SPAWN, MIRANDO LA MISMA CLAVE QUE EL RESOLVEDOR (PND-256).
|
|
107
|
+
*
|
|
108
|
+
* Lo que habia aca recorria `childBrainKeySlots()` y devolvia `true` con la
|
|
109
|
+
* clave de CUALQUIER proveedor. Medido en el experimento Urazuke
|
|
110
|
+
* (2026-11-01): con `frontier` apuntado a anthropic SIN clave y una clave de
|
|
111
|
+
* DeepSeek cargada, el spawn devolvia ok:true con handle y pid, y el hijo
|
|
112
|
+
* moria a los ~30 s con 0 turnos y 0 tokens. La compuerta tenia todo lo que
|
|
113
|
+
* necesitaba para contestar `false` -- la config dice el proveedor del nivel
|
|
114
|
+
* y el vault dice si esa clave esta -- y contestaba `true` con la clave de
|
|
115
|
+
* otro. Un ok:true que no significa que el hijo pueda arrancar es un cero
|
|
116
|
+
* que se lee como salud: el que lo recibe espera 30 segundos y despues tiene
|
|
117
|
+
* que ir a buscar a la morgue por que no hubo turnos.
|
|
118
|
+
*
|
|
119
|
+
* Ahora pregunta lo que el resolvedor va a preguntar: para cada nivel
|
|
120
|
+
* alcanzable, `vaultSlotForProvider(provider)` y `getKey(slot)` -- las dos
|
|
121
|
+
* mismas llamadas que hace cost_router. Si una falta, el veredicto la nombra
|
|
122
|
+
* con proveedor y ranura, que es lo que el dueno necesita para arreglarlo. */
|
|
123
|
+
export async function childBrainVerdict() {
|
|
95
124
|
let bc;
|
|
125
|
+
let vaultSlotForProvider;
|
|
96
126
|
try {
|
|
97
|
-
const
|
|
98
|
-
bc = await readBrainConfig();
|
|
99
|
-
|
|
100
|
-
return true;
|
|
127
|
+
const mod = await import('../../core/brain_config.js');
|
|
128
|
+
bc = await mod.readBrainConfig();
|
|
129
|
+
vaultSlotForProvider = mod.vaultSlotForProvider;
|
|
101
130
|
}
|
|
102
131
|
catch { /* config unavailable */ }
|
|
132
|
+
if (!bc || !vaultSlotForProvider) {
|
|
133
|
+
/* Sin config no se puede afirmar nada, y la afirmacion optimista es la
|
|
134
|
+
* que costo el defecto: falla cerrado. */
|
|
135
|
+
return { ok: false, checked: [], missing: [], managed: false };
|
|
136
|
+
}
|
|
137
|
+
/* EL OPT-IN DE LA RUTA MANAGED SE RESPETA SIN AFIRMAR NADA MAS.
|
|
138
|
+
*
|
|
139
|
+
* Con YF_MANAGED_ROUTING=1 el ruteo puede mandar el turno al proxy de
|
|
140
|
+
* Yujin y entonces NO necesita ninguna clave BYOK (autentica con la
|
|
141
|
+
* licencia). Las otras tres precondiciones de resolveManagedRouting
|
|
142
|
+
* (plan no byok_only, auth en el vault, user_handle en la licencia) viven
|
|
143
|
+
* en cost_router y no estan exportadas; replicarlas aca seria crear la
|
|
144
|
+
* segunda fuente de verdad que esta misma compuerta vino a eliminar.
|
|
145
|
+
*
|
|
146
|
+
* Asi que con el opt-in prendido esta funcion NO se niega: no puede
|
|
147
|
+
* demostrar que el hijo va a fallar, y negarse sin poder demostrarlo es
|
|
148
|
+
* el error simetrico del que estamos arreglando. Sin el opt-in --que es
|
|
149
|
+
* el default-- todo turno es BYOK y la cuenta de abajo es la que manda. */
|
|
150
|
+
if (process.env['YF_MANAGED_ROUTING'] === '1') {
|
|
151
|
+
return { ok: true, checked: [], missing: [], managed: true };
|
|
152
|
+
}
|
|
153
|
+
const slotFor = vaultSlotForProvider;
|
|
154
|
+
const tiers = childReachableTiers(bc);
|
|
155
|
+
/* Las ranuras que pueden respaldar un hijo. En modo Plan la de Anthropic NO
|
|
156
|
+
* cuenta: el dueno paga la suscripcion, no credito de API, y el hijo moria
|
|
157
|
+
* con "credit balance too low" (ADIP, 2026-10-19). */
|
|
158
|
+
const usableSlots = new Set(childBrainKeySlots(bc));
|
|
159
|
+
let getKey = null;
|
|
103
160
|
try {
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
161
|
+
({ getKey } = await import('../../core/provider_keys.js'));
|
|
162
|
+
}
|
|
163
|
+
catch { /* vault unavailable -> toda ranura cuenta como ausente */ }
|
|
164
|
+
const checked = [];
|
|
165
|
+
for (const tier of tiers) {
|
|
166
|
+
const provider = String(bc[tier]?.provider ?? '');
|
|
167
|
+
const slot = provider ? slotFor(provider) : '';
|
|
168
|
+
if (KEYLESS_PROVIDERS.has(provider)) {
|
|
169
|
+
checked.push({ tier, provider, slot, ok: true });
|
|
170
|
+
continue;
|
|
109
171
|
}
|
|
172
|
+
if (slot && !usableSlots.has(slot)) {
|
|
173
|
+
/* La ranura existe y tiene valor, pero para un hijo no sirve: es el
|
|
174
|
+
* caso del modo Plan. El motivo se nombra aparte de "no esta", porque
|
|
175
|
+
* el arreglo es otro (configurar otro proveedor, no cargar la clave). */
|
|
176
|
+
checked.push({ tier, provider, slot, ok: false, why: 'plan_mode' });
|
|
177
|
+
continue;
|
|
178
|
+
}
|
|
179
|
+
let key = null;
|
|
180
|
+
if (getKey && slot) {
|
|
181
|
+
try {
|
|
182
|
+
key = await getKey(slot);
|
|
183
|
+
}
|
|
184
|
+
catch {
|
|
185
|
+
key = null;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
const ok = typeof key === 'string' && key.trim() !== '';
|
|
189
|
+
checked.push({ tier, provider, slot, ok, ...(ok ? {} : { why: 'no_key' }) });
|
|
110
190
|
}
|
|
111
|
-
|
|
112
|
-
|
|
191
|
+
const missing = checked.filter((c) => !c.ok);
|
|
192
|
+
const managed = checked.some((c) => c.provider === 'yujin_managed');
|
|
193
|
+
return { ok: checked.length > 0 && missing.length === 0, checked, missing, managed };
|
|
194
|
+
}
|
|
195
|
+
/** THE REFUSAL WITH NO DETAIL BEHIND IT -- still names the two ways out.
|
|
196
|
+
*
|
|
197
|
+
* Reached when the check cannot say WHICH tier is missing what: the test
|
|
198
|
+
* seam, or any caller that only has the boolean. A bare "no usable child
|
|
199
|
+
* brain" is a no without a door: the owner reads it and has nowhere to go.
|
|
200
|
+
* So this one keeps naming both exits (a BYOK key the child can use, or a
|
|
201
|
+
* managed brain) plus the Claude Plan trap, which is the case that actually
|
|
202
|
+
* happens (ADIP, 2026-10-19). */
|
|
203
|
+
export const NO_CHILD_BRAIN_GENERIC = 'sub-sessions need a usable child brain: either a BYOK key of a provider the child can use '
|
|
204
|
+
+ '(Ajustes > Keys) or a managed brain. On the Claude Plan the Anthropic key does not count for '
|
|
205
|
+
+ 'a child: the child goes over HTTP and would burn API credit, or die with "credit balance too '
|
|
206
|
+
+ 'low". Do the work in series in this session, or configure another provider key.';
|
|
207
|
+
/** The refusal text, naming provider and slot. It lives next to the verdict
|
|
208
|
+
* because it is the half that is useful: "no usable brain" tells nobody what
|
|
209
|
+
* to do. English, like every other error string this verb returns -- a single
|
|
210
|
+
* verb answering half in one language and half in another is its own defect.
|
|
211
|
+
* (The whole verb-error surface still owes the i18n migration; that is the
|
|
212
|
+
* f104 learning, not this batch.) */
|
|
213
|
+
export function describeChildBrainVerdict(v) {
|
|
214
|
+
if (!v.checked.length) {
|
|
215
|
+
return 'I could not read the brain_config, so I cannot claim the child has a brain to start '
|
|
216
|
+
+ 'with. I am not launching it: an ok:true that does not mean that costs 30 seconds of '
|
|
217
|
+
+ 'waiting and then an autopsy. ' + NO_CHILD_BRAIN_GENERIC;
|
|
218
|
+
}
|
|
219
|
+
const parts = v.missing.map((m) => m.why === 'plan_mode'
|
|
220
|
+
? ('tier ' + m.tier + ' uses ' + m.provider + ' on the Claude Plan, and the vault Anthropic key '
|
|
221
|
+
+ 'is not usable for a child (it goes over HTTP and would burn API credit, or die with '
|
|
222
|
+
+ '"credit balance too low")')
|
|
223
|
+
: ('tier ' + m.tier + ' uses ' + m.provider + ' and slot ' + m.slot + ' is empty'));
|
|
224
|
+
return 'the sub-session cannot start with the configured brain: ' + parts.join('; ')
|
|
225
|
+
+ '. The child resolves its turn with the same config as this session, so it would start and '
|
|
226
|
+
+ 'die without giving a single turn. Load that key in Ajustes > Keys, or point that tier at a '
|
|
227
|
+
+ 'provider that has one.';
|
|
228
|
+
}
|
|
229
|
+
/** Compatibilidad: la pregunta de si/no, para el que solo necesita el booleano
|
|
230
|
+
* (el panel la usa para decidir si ofrece la orquestacion). */
|
|
231
|
+
export async function hasUsableChildBrain() {
|
|
232
|
+
return (await childBrainVerdict()).ok;
|
|
113
233
|
}
|
|
114
234
|
export async function runSessionSpawn(args, ctx) {
|
|
115
235
|
const tool = 'yujin.session.spawn';
|
|
@@ -128,8 +248,28 @@ export async function runSessionSpawn(args, ctx) {
|
|
|
128
248
|
if (!bridge) {
|
|
129
249
|
return { tool, is_error: true, result: { ok: false, error: 'the coordination bridge is off -- a sub-session has no channel to report back, so it cannot be launched' }, display: 'session.spawn: bridge off' };
|
|
130
250
|
}
|
|
131
|
-
if (
|
|
132
|
-
|
|
251
|
+
if (_brainCheck) {
|
|
252
|
+
if (!(await _brainCheck())) {
|
|
253
|
+
return { tool, is_error: true, result: { ok: false, error: NO_CHILD_BRAIN_GENERIC }, display: 'session.spawn: no usable brain' };
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
else {
|
|
257
|
+
const verdict = await childBrainVerdict();
|
|
258
|
+
if (!verdict.ok) {
|
|
259
|
+
/* El veredicto entero viaja en el resultado, no solo la prosa: el que
|
|
260
|
+
* audita quiere el nivel, el proveedor y la ranura como campos. */
|
|
261
|
+
return {
|
|
262
|
+
tool, is_error: true,
|
|
263
|
+
result: {
|
|
264
|
+
ok: false,
|
|
265
|
+
error: describeChildBrainVerdict(verdict),
|
|
266
|
+
brain_checked: verdict.checked,
|
|
267
|
+
brain_missing: verdict.missing,
|
|
268
|
+
},
|
|
269
|
+
display: 'session.spawn: ' + verdict.missing.map((m) => m.tier + '=' + m.provider).join(', ')
|
|
270
|
+
+ ' sin clave',
|
|
271
|
+
};
|
|
272
|
+
}
|
|
133
273
|
}
|
|
134
274
|
const live = [...registry.values()].filter((e) => e.status === 'running').length;
|
|
135
275
|
if (live >= MAX_CHILDREN) {
|
|
@@ -251,6 +391,31 @@ export async function runSessionCollect(args, ctx) {
|
|
|
251
391
|
display: 'session.collect: ' + collected.length + ' result(s)',
|
|
252
392
|
};
|
|
253
393
|
}
|
|
394
|
+
/** SI EL PROCESO EXISTE, PREGUNTANDOLE AL SISTEMA OPERATIVO (PND-256).
|
|
395
|
+
*
|
|
396
|
+
* `alive` salia de buscar el pid en el roster del bridge, y el roster dice
|
|
397
|
+
* otra cosa: dice si el hijo ya se registro en el canal. Las dos direcciones
|
|
398
|
+
* del error estan medidas (2026-11-01):
|
|
399
|
+
*
|
|
400
|
+
* - `alive:false` sobre un proceso VIVO -- el hijo esta arrancando y
|
|
401
|
+
* todavia no publico. El que lo lee lo da por muerto y lo relanza.
|
|
402
|
+
* - `alive:true` sobre un pid INEXISTENTE -- el roster quedo con la
|
|
403
|
+
* entrada de un hijo que murio. El que lo lee se queda esperando.
|
|
404
|
+
*
|
|
405
|
+
* `process.kill(pid, 0)` no manda ninguna senal: pregunta por la existencia.
|
|
406
|
+
* ESRCH = no existe; EPERM = existe y es de otro usuario (existe igual, y
|
|
407
|
+
* eso cuenta como vivo). Funciona en Windows tambien. */
|
|
408
|
+
export function pidAlive(pid) {
|
|
409
|
+
if (pid == null || !Number.isInteger(pid) || pid <= 0)
|
|
410
|
+
return false;
|
|
411
|
+
try {
|
|
412
|
+
process.kill(pid, 0);
|
|
413
|
+
return true;
|
|
414
|
+
}
|
|
415
|
+
catch (err) {
|
|
416
|
+
return err.code === 'EPERM';
|
|
417
|
+
}
|
|
418
|
+
}
|
|
254
419
|
function rosterHasPid(ctx, pid) {
|
|
255
420
|
if (!ctx.bridge || pid == null)
|
|
256
421
|
return Promise.resolve(false);
|
|
@@ -270,7 +435,12 @@ export async function runSessionList(_args, ctx) {
|
|
|
270
435
|
status: e.status,
|
|
271
436
|
pid: e.pid,
|
|
272
437
|
started_at: new Date(e.started_at).toISOString(),
|
|
273
|
-
|
|
438
|
+
/* La existencia del proceso, que es lo que `alive` dice. */
|
|
439
|
+
alive: e.status === 'running' ? pidAlive(e.pid) : false,
|
|
440
|
+
/* Y el roster aparte, con su nombre: ya se registro en el canal. Es un
|
|
441
|
+
* dato util -- un hijo vivo que no se registro no va a poder contestar --
|
|
442
|
+
* pero es OTRA pregunta, y confundirlas es el defecto que se midio. */
|
|
443
|
+
registered: await rosterHasPid(ctx, e.pid),
|
|
274
444
|
...(e.tokens_in != null ? { tokens_in: e.tokens_in, tokens_out: e.tokens_out } : {}),
|
|
275
445
|
})));
|
|
276
446
|
return {
|