@nac3/forge-cli 1.24.1 → 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.
Files changed (83) hide show
  1. package/dist/chat/agent_session.d.ts.map +1 -1
  2. package/dist/chat/agent_session.js +132 -12
  3. package/dist/chat/agent_session.js.map +1 -1
  4. package/dist/chat/panel.d.ts.map +1 -1
  5. package/dist/chat/panel.js +31 -4
  6. package/dist/chat/panel.js.map +1 -1
  7. package/dist/chat/server.d.ts.map +1 -1
  8. package/dist/chat/server.js +29 -3
  9. package/dist/chat/server.js.map +1 -1
  10. package/dist/chat/tools/keys.d.ts.map +1 -1
  11. package/dist/chat/tools/keys.js +22 -2
  12. package/dist/chat/tools/keys.js.map +1 -1
  13. package/dist/chat/tools/pending.d.ts +3 -0
  14. package/dist/chat/tools/pending.d.ts.map +1 -1
  15. package/dist/chat/tools/pending.js +40 -3
  16. package/dist/chat/tools/pending.js.map +1 -1
  17. package/dist/chat/tools/session_verbs.d.ts +81 -0
  18. package/dist/chat/tools/session_verbs.d.ts.map +1 -1
  19. package/dist/chat/tools/session_verbs.js +188 -18
  20. package/dist/chat/tools/session_verbs.js.map +1 -1
  21. package/dist/chat/tools/shell.d.ts.map +1 -1
  22. package/dist/chat/tools/shell.js +22 -0
  23. package/dist/chat/tools/shell.js.map +1 -1
  24. package/dist/commands/limits.d.ts.map +1 -1
  25. package/dist/commands/limits.js +9 -1
  26. package/dist/commands/limits.js.map +1 -1
  27. package/dist/commands/pending.d.ts.map +1 -1
  28. package/dist/commands/pending.js +26 -1
  29. package/dist/commands/pending.js.map +1 -1
  30. package/dist/commands/urazuke.d.ts.map +1 -1
  31. package/dist/commands/urazuke.js +82 -0
  32. package/dist/commands/urazuke.js.map +1 -1
  33. package/dist/core/limits_config.d.ts +50 -0
  34. package/dist/core/limits_config.d.ts.map +1 -1
  35. package/dist/core/limits_config.js +59 -0
  36. package/dist/core/limits_config.js.map +1 -1
  37. package/dist/core/provider_keys.d.ts +33 -0
  38. package/dist/core/provider_keys.d.ts.map +1 -1
  39. package/dist/core/provider_keys.js +40 -3
  40. package/dist/core/provider_keys.js.map +1 -1
  41. package/dist/docs/doctrine/session-orchestration.md +91 -86
  42. package/dist/llm/sse_stream.d.ts +3 -0
  43. package/dist/llm/sse_stream.d.ts.map +1 -1
  44. package/dist/llm/sse_stream.js +16 -2
  45. package/dist/llm/sse_stream.js.map +1 -1
  46. package/dist/mcp/bridge_registry.d.ts +1 -1
  47. package/dist/pending/store.d.ts +12 -0
  48. package/dist/pending/store.d.ts.map +1 -1
  49. package/dist/pending/store.js +20 -0
  50. package/dist/pending/store.js.map +1 -1
  51. package/dist/pending/types.d.ts +11 -0
  52. package/dist/pending/types.d.ts.map +1 -1
  53. package/dist/pending/types.js.map +1 -1
  54. package/dist/tasks/supervisor.d.ts +31 -0
  55. package/dist/tasks/supervisor.d.ts.map +1 -1
  56. package/dist/tasks/supervisor.js +61 -5
  57. package/dist/tasks/supervisor.js.map +1 -1
  58. package/dist/urazuke/close_gate.d.ts +47 -3
  59. package/dist/urazuke/close_gate.d.ts.map +1 -1
  60. package/dist/urazuke/close_gate.js +57 -3
  61. package/dist/urazuke/close_gate.js.map +1 -1
  62. package/dist/urazuke/evidence.d.ts +5 -0
  63. package/dist/urazuke/evidence.d.ts.map +1 -1
  64. package/dist/urazuke/evidence.js +61 -3
  65. package/dist/urazuke/evidence.js.map +1 -1
  66. package/dist/urazuke/external_audit.d.ts +89 -0
  67. package/dist/urazuke/external_audit.d.ts.map +1 -0
  68. package/dist/urazuke/external_audit.js +309 -0
  69. package/dist/urazuke/external_audit.js.map +1 -0
  70. package/dist/version.d.ts +1 -1
  71. package/dist/version.js +1 -1
  72. package/docs/doctrine/session-orchestration.md +91 -86
  73. package/package.json +1 -1
  74. package/src/i18n/catalogs/ar.json +570 -568
  75. package/src/i18n/catalogs/de.json +570 -568
  76. package/src/i18n/catalogs/en.json +570 -568
  77. package/src/i18n/catalogs/es.json +570 -568
  78. package/src/i18n/catalogs/fr.json +570 -568
  79. package/src/i18n/catalogs/hi.json +570 -568
  80. package/src/i18n/catalogs/it.json +570 -568
  81. package/src/i18n/catalogs/ja.json +570 -568
  82. package/src/i18n/catalogs/pt.json +570 -568
  83. 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,CA6BrB;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"}
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"}
@@ -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 { listStatus, setKey, isAllowedSlot, listAllowedSlots, } from '../../core/provider_keys.js';
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 out = await listStatus();
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":"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"}
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":"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"}
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. Y `tests_status` + `tests_summary` con como fue la bateria, que acabas'
174
- + ' de correr y el repo no registra. Sin esto, mas adelante del item solo queda el titulo.';
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,CAe5D;AAED,wBAAsB,eAAe,CACnC,IAAI,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,EAC1F,GAAG,EAAE,WAAW,GACf,OAAO,CAAC,UAAU,CAAC,CAqErB;AAID,wBAAsB,iBAAiB,CACrC,IAAI,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,EAC7C,GAAG,EAAE,WAAW,GACf,OAAO,CAAC,UAAU,CAAC,CA6DrB;AASD,wBAAsB,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAmB1F;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAqBvG"}
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
- export async function hasUsableChildBrain() {
92
- /* The child forces the BYOK HTTP path (anthropic-api) so the NAC3 verb
93
- * scope applies -- so it needs a BYOK key OR a managed provider. The
94
- * Claude Plan subprocess path is not usable for sub-sessions. */
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 { readBrainConfig } = await import('../../core/brain_config.js');
98
- bc = await readBrainConfig();
99
- if (bc.frontier?.provider === 'yujin_managed' || bc.eco?.provider === 'yujin_managed')
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
- const { getKey } = await import('../../core/provider_keys.js');
105
- for (const s of childBrainKeySlots(bc)) {
106
- const k = await getKey(s);
107
- if (k && k.trim() !== '')
108
- return true;
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
- catch { /* vault unavailable */ }
112
- return false;
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 (!(await (_brainCheck ?? hasUsableChildBrain)())) {
132
- return { tool, is_error: true, result: { ok: false, error: 'sub-sessions need a BYOK key of another provider or a managed brain: on the Claude Plan the Anthropic key is not usable for children (they would burn API credit or die with "credit balance too low"). Do the work in series in this session, or configure another provider key in Ajustes > Keys.' }, display: 'session.spawn: no usable brain (Claude Plan)' };
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
- alive: e.status === 'running' ? await rosterHasPid(ctx, e.pid) : false,
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 {