@nac3/forge-cli 1.26.0 → 1.28.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 (93) hide show
  1. package/dist/chat/graph_snapshot.d.ts +24 -0
  2. package/dist/chat/graph_snapshot.d.ts.map +1 -1
  3. package/dist/chat/graph_snapshot.js +28 -3
  4. package/dist/chat/graph_snapshot.js.map +1 -1
  5. package/dist/chat/history_budget.d.ts +114 -0
  6. package/dist/chat/history_budget.d.ts.map +1 -0
  7. package/dist/chat/history_budget.js +98 -0
  8. package/dist/chat/history_budget.js.map +1 -0
  9. package/dist/chat/panel.d.ts.map +1 -1
  10. package/dist/chat/panel.js +26 -0
  11. package/dist/chat/panel.js.map +1 -1
  12. package/dist/chat/server.d.ts.map +1 -1
  13. package/dist/chat/server.js +59 -1
  14. package/dist/chat/server.js.map +1 -1
  15. package/dist/chat/tools/pending.d.ts.map +1 -1
  16. package/dist/chat/tools/pending.js +25 -10
  17. package/dist/chat/tools/pending.js.map +1 -1
  18. package/dist/chat/tools/pending_ack.d.ts +82 -0
  19. package/dist/chat/tools/pending_ack.d.ts.map +1 -0
  20. package/dist/chat/tools/pending_ack.js +55 -0
  21. package/dist/chat/tools/pending_ack.js.map +1 -0
  22. package/dist/chat/tools/reader.d.ts.map +1 -1
  23. package/dist/chat/tools/reader.js +24 -4
  24. package/dist/chat/tools/reader.js.map +1 -1
  25. package/dist/commands/operate.d.ts.map +1 -1
  26. package/dist/commands/operate.js +42 -0
  27. package/dist/commands/operate.js.map +1 -1
  28. package/dist/commands/urazuke.d.ts.map +1 -1
  29. package/dist/commands/urazuke.js +189 -9
  30. package/dist/commands/urazuke.js.map +1 -1
  31. package/dist/core/instructions_budget.d.ts +113 -0
  32. package/dist/core/instructions_budget.d.ts.map +1 -0
  33. package/dist/core/instructions_budget.js +165 -0
  34. package/dist/core/instructions_budget.js.map +1 -0
  35. package/dist/core/limits_config.d.ts +23 -0
  36. package/dist/core/limits_config.d.ts.map +1 -1
  37. package/dist/core/limits_config.js +36 -0
  38. package/dist/core/limits_config.js.map +1 -1
  39. package/dist/core/machine_files.d.ts +27 -0
  40. package/dist/core/machine_files.d.ts.map +1 -0
  41. package/dist/core/machine_files.js +97 -0
  42. package/dist/core/machine_files.js.map +1 -0
  43. package/dist/docs/doctrine/session-orchestration.md +109 -109
  44. package/dist/docs/doctrine/urazuke.md +221 -221
  45. package/dist/nac3/dispatch_log.d.ts +16 -1
  46. package/dist/nac3/dispatch_log.d.ts.map +1 -1
  47. package/dist/nac3/dispatch_log.js +29 -10
  48. package/dist/nac3/dispatch_log.js.map +1 -1
  49. package/dist/nac3/manifest_lazy.d.ts +15 -0
  50. package/dist/nac3/manifest_lazy.d.ts.map +1 -1
  51. package/dist/nac3/manifest_lazy.js +17 -1
  52. package/dist/nac3/manifest_lazy.js.map +1 -1
  53. package/dist/telemetry/battery_events.d.ts +91 -0
  54. package/dist/telemetry/battery_events.d.ts.map +1 -0
  55. package/dist/telemetry/battery_events.js +84 -0
  56. package/dist/telemetry/battery_events.js.map +1 -0
  57. package/dist/telemetry/usage.d.ts.map +1 -1
  58. package/dist/telemetry/usage.js +11 -25
  59. package/dist/telemetry/usage.js.map +1 -1
  60. package/dist/urazuke/evidence.d.ts.map +1 -1
  61. package/dist/urazuke/evidence.js +14 -2
  62. package/dist/urazuke/evidence.js.map +1 -1
  63. package/dist/urazuke/freeze.d.ts.map +1 -1
  64. package/dist/urazuke/freeze.js +82 -16
  65. package/dist/urazuke/freeze.js.map +1 -1
  66. package/dist/urazuke/gates_data.d.ts +4 -1
  67. package/dist/urazuke/gates_data.d.ts.map +1 -1
  68. package/dist/urazuke/gates_data.js +7 -1
  69. package/dist/urazuke/gates_data.js.map +1 -1
  70. package/dist/urazuke/gates_ledger.d.ts +25 -1
  71. package/dist/urazuke/gates_ledger.d.ts.map +1 -1
  72. package/dist/urazuke/gates_ledger.js +30 -6
  73. package/dist/urazuke/gates_ledger.js.map +1 -1
  74. package/dist/urazuke/method_config.d.ts +116 -0
  75. package/dist/urazuke/method_config.d.ts.map +1 -0
  76. package/dist/urazuke/method_config.js +328 -0
  77. package/dist/urazuke/method_config.js.map +1 -0
  78. package/dist/urazuke/prompts_client.d.ts +42 -12
  79. package/dist/urazuke/prompts_client.d.ts.map +1 -1
  80. package/dist/urazuke/prompts_client.js +120 -16
  81. package/dist/urazuke/prompts_client.js.map +1 -1
  82. package/dist/urazuke/prompts_freeze.d.ts +186 -0
  83. package/dist/urazuke/prompts_freeze.d.ts.map +1 -0
  84. package/dist/urazuke/prompts_freeze.js +498 -0
  85. package/dist/urazuke/prompts_freeze.js.map +1 -0
  86. package/dist/urazuke/start.d.ts.map +1 -1
  87. package/dist/urazuke/start.js +42 -2
  88. package/dist/urazuke/start.js.map +1 -1
  89. package/dist/version.d.ts +1 -1
  90. package/dist/version.js +1 -1
  91. package/docs/doctrine/session-orchestration.md +109 -109
  92. package/docs/doctrine/urazuke.md +221 -221
  93. package/package.json +125 -124
@@ -52,6 +52,7 @@ import path from 'node:path';
52
52
  import os from 'node:os';
53
53
  import { renameWithRetry } from '../core/atomic_write.js';
54
54
  import { CACHE_TTL_POLICIES, CACHE_TTL_ALCANCE } from '../chat/cache_ttl.js';
55
+ import { DEFAULT_AGENT_HISTORY_BUDGET_TOKENS } from '../chat/history_budget.js';
55
56
  /** The undici default headersTimeout, measured twice independently in the
56
57
  * A/B experiment (a local server that never answers: UND_ERR_HEADERS_TIMEOUT
57
58
  * at 305609 ms; four real sub-session deaths at 307.8-308.4 s). It is not a
@@ -83,6 +84,7 @@ export function defaultLimitsConfig() {
83
84
  classifier_timeout_ms: 2500,
84
85
  managed_max_tokens_per_turn: 8192,
85
86
  max_tokens_per_turn: 8192,
87
+ agent_history_budget_tokens: DEFAULT_AGENT_HISTORY_BUDGET_TOKENS,
86
88
  claude_cli_timeout_ms: 30 * 60 * 1000,
87
89
  claude_cli_silence_ms: 15 * 60 * 1000,
88
90
  shell: {
@@ -118,6 +120,11 @@ export function defaultLimitsConfig() {
118
120
  * no una constante. El motivo largo esta en src/chat/cache_ttl.ts. */
119
121
  ttl: 'auto',
120
122
  },
123
+ urazuke: {
124
+ /* Avisar por omision: hoy nadie se entera de que salio una version
125
+ * nueva del metodo hasta que corre un pull a mano. Avisar no adopta. */
126
+ update_check: 'notify',
127
+ },
121
128
  max_request_body_bytes: 32 * 1024 * 1024,
122
129
  };
123
130
  }
@@ -317,6 +324,20 @@ export function normaliseLimitsConfig(raw) {
317
324
  * configs are honoured; otherwise default 8192. Floor 256 so a
318
325
  * fat-fingered tiny value can't re-starve tool-use. */
319
326
  max_tokens_per_turn: clamp(j.max_tokens_per_turn ?? j.managed_max_tokens_per_turn, 256, 64000, def.max_tokens_per_turn),
327
+ /* P0 -- 0 es un valor VALIDO y significa "desactivado", asi que no
328
+ * puede pasar por `clamp` con piso: clamp lo tomaria por fat-finger y
329
+ * lo subiria al default, dejando al que quiere pagar la conversacion
330
+ * entera sin forma de pedirla. El techo de 200.000 es la ventana del
331
+ * modelo: un presupuesto mas grande que eso no acota nada. */
332
+ agent_history_budget_tokens: (() => {
333
+ const raw = j.agent_history_budget_tokens;
334
+ if (raw === undefined || raw === null)
335
+ return def.agent_history_budget_tokens;
336
+ const n = Number(raw);
337
+ if (!Number.isFinite(n) || n < 0)
338
+ return def.agent_history_budget_tokens;
339
+ return Math.min(Math.floor(n), 200000);
340
+ })(),
320
341
  /* 1 min .. 4 hours. Lets long autonomous turns run; the floor keeps
321
342
  * a fat-fingered 0 from disabling the safety net. */
322
343
  claude_cli_timeout_ms: clamp(j.claude_cli_timeout_ms, 60000, 4 * 60 * 60 * 1000, def.claude_cli_timeout_ms),
@@ -366,6 +387,10 @@ export function normaliseLimitsConfig(raw) {
366
387
  ? j.cache.ttl
367
388
  : def.cache.ttl,
368
389
  },
390
+ urazuke: {
391
+ update_check: j.urazuke?.update_check === 'off'
392
+ ? 'off' : def.urazuke.update_check,
393
+ },
369
394
  /* 1MB .. 256MB. Floor keeps a fat-fingered tiny value from re-breaking
370
395
  * large chat turns; ceiling is a sane cap for a local server. */
371
396
  max_request_body_bytes: clamp(j.max_request_body_bytes, 1024 * 1024, 256 * 1024 * 1024, def.max_request_body_bytes),
@@ -473,6 +498,7 @@ export const LIMITS_FIELD_PATHS = [
473
498
  'classifier_timeout_ms',
474
499
  'managed_max_tokens_per_turn',
475
500
  'max_tokens_per_turn',
501
+ 'agent_history_budget_tokens',
476
502
  'claude_cli_timeout_ms',
477
503
  'claude_cli_silence_ms',
478
504
  'shell.timeout_ms_default',
@@ -504,6 +530,16 @@ export const LIMITS_ENUM_FIELD_PATHS = [
504
530
  * interesante es el tercero: 'auto' la decide con el hueco medido. El
505
531
  * alcance NO es todo el producto, y por eso viaja declarado. */
506
532
  { field: 'cache.ttl', values: CACHE_TTL_POLICIES, note: CACHE_TTL_ALCANCE },
533
+ /* PND-277 -- el aviso de version nueva del metodo. Solo el RUIDO es de la
534
+ * maquina; de donde sale la definicion es del proyecto. */
535
+ {
536
+ field: 'urazuke.update_check',
537
+ values: ['off', 'notify'],
538
+ note: 'Solo AVISA cuando el metodo publica una version nueva; no adopta nada. La adopcion es un'
539
+ + ' acto con razon escrita (yf urazuke gates|prompts adopt --reason). De donde sale la definicion'
540
+ + ' y si el proyecto se niega a arrancar sin congelar NO se configura aca: vive en el proyecto,'
541
+ + ' en .forge/project-settings.json seccion method.',
542
+ },
507
543
  ];
508
544
  export function isLimitsEnumFieldPath(p) {
509
545
  return LIMITS_ENUM_FIELD_PATHS.some((f) => f.field === p);
@@ -1 +1 @@
1
- {"version":3,"file":"limits_config.js","sourceRoot":"","sources":["../../src/core/limits_config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"limits_config.js","sourceRoot":"","sources":["../../src/core/limits_config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /** La carpeta de configuracion de la MAQUINA: la del dueno, la que ningun
2
+ * test puede tocar. Se calcula aparte del configDir() de cada modulo a
3
+ * proposito -- hace falta poder comparar el destino CONTRA ella. */
4
+ export declare function machineConfigDir(env?: Record<string, string | undefined>): string;
5
+ export declare function sameDir(a: string, b: string): boolean;
6
+ /** Estamos adentro de la bateria? Vitest lo declara en el entorno. */
7
+ export declare function inBattery(env?: Record<string, string | undefined>): boolean;
8
+ export interface MachineFileDestination {
9
+ allowed: boolean;
10
+ /** La carpeta y el archivo exactos, resueltos AHORA. Solo cuando allowed. */
11
+ dir?: string;
12
+ file?: string;
13
+ /** Por que se nego, para el test y para quien lea el motivo. */
14
+ why?: string;
15
+ }
16
+ /**
17
+ * EL DESTINO DE UN ARCHIVO DE ESTADO, DECIDIDO DE UNA SOLA VEZ Y SIN
18
+ * AWAITS EN EL MEDIO.
19
+ *
20
+ * `rel` es la ruta relativa dentro de la carpeta de configuracion
21
+ * ('usage.jsonl', 'nac3_log.jsonl', 'cache/reader_sessions.json'). El
22
+ * llamador escribe en `file` y crea `dir` -- y no vuelve a leer el entorno.
23
+ */
24
+ export declare function machineFileDestination(rel: string, env?: Record<string, string | undefined>): MachineFileDestination;
25
+ /** Atajo para quien solo necesita el si/no. */
26
+ export declare function machineWritesAllowed(rel: string, env?: Record<string, string | undefined>): boolean;
27
+ //# sourceMappingURL=machine_files.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"machine_files.d.ts","sourceRoot":"","sources":["../../src/core/machine_files.ts"],"names":[],"mappings":"AAoDA;;qEAEqE;AACrE,wBAAgB,gBAAgB,CAAC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GAAG,MAAM,CAG9F;AAED,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAGrD;AAED,sEAAsE;AACtE,wBAAgB,SAAS,CAAC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GAAG,OAAO,CAExF;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,6EAA6E;IAC7E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gEAAgE;IAChE,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,MAAM,EACX,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACpD,sBAAsB,CAiBxB;AAED,+CAA+C;AAC/C,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,MAAM,EACX,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACpD,OAAO,CAET"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * LOS ARCHIVOS DE LA MAQUINA, Y LA UNICA PUERTA POR DONDE LA BATERIA NO
3
+ * ENTRA.
4
+ *
5
+ * Esto no es una abstraccion por prolijidad: es una familia de defectos
6
+ * MEDIDA tres veces en el mismo archivo de configuracion del dueno.
7
+ *
8
+ * 1. 2026-10-19 -- la bateria del publish dejo entradas "test approval
9
+ * gate" y llaves de prueba en el nac3_log.jsonl del dueno. Se
10
+ * "arreglo" resolviendo el path en el momento de la llamada en vez de
11
+ * al importar el modulo (src/nac3/dispatch_log.ts).
12
+ * 2. 2026-11-03 -- la bateria llevaba meses escribiendo en el
13
+ * usage.jsonl del dueno: 8.764 de 8.821 eventos de la ventana de 30
14
+ * dias, el 99,4%, todos valuados en cero dolares. Y el archivo es la
15
+ * unica fuente del reporte de costos. Se le puso una guarda... que no
16
+ * alcanzo: la bateria completa siguio dejando cuatro. La causa real es
17
+ * una CARRERA, no un permiso (G-12 en docs/GOTCHAS.md).
18
+ * 3. 2026-11-03, mas tarde, midiendo la pregunta "escribe en algun otro
19
+ * archivo mio?" con el arbol de configuracion fotografiado antes y
20
+ * despues de la bateria completa: SI, en dos mas --
21
+ * `cache/reader_sessions.json` y, todavia, `nac3_log.jsonl`. El de
22
+ * reader fue el peor: el archivo QUEDO MAS CHICO que antes de correr,
23
+ * porque el almacen tiene tope y las sesiones de prueba desalojaron
24
+ * las del dueno. No fue contaminacion: fue perdida de datos.
25
+ *
26
+ * La forma general del defecto, que es la que esta funcion cierra:
27
+ *
28
+ * el permiso se evalua en un instante y el PATH se resuelve en otro.
29
+ *
30
+ * Mientras sean dos lecturas del entorno en dos momentos distintos, el
31
+ * `void escribir(...)` que nadie espera va a despertar despues del
32
+ * `afterEach` que borro YF_CONFIG_DIR y va a aterrizar en la carpeta de la
33
+ * maquina. Por eso la puerta devuelve el DESTINO COMPLETO resuelto, de una
34
+ * sola vez: quien la usa no vuelve a mirar el entorno en esa llamada.
35
+ *
36
+ * Y fail-closed adentro de la bateria: sin YF_CONFIG_DIR, o con uno que
37
+ * apunta a la carpeta de la maquina, se NIEGA. El peor caso pasa a ser que
38
+ * un test pierda un recibo, no que la unica medicion honesta de costo del
39
+ * experimento quede contaminada -- o que al dueno le desaparezcan sus
40
+ * sesiones del lector.
41
+ *
42
+ * Lo que esta funcion NO hace, a proposito: no mueve YF_CONFIG_DIR para
43
+ * toda la bateria. Ese es un override ANCHO y este repositorio ya tiene la
44
+ * cicatriz de uno (src/chat/instance_lock.ts: "un override angosto es el
45
+ * arreglo; uno ancho era el bug"). Hay tests que necesitan la config real
46
+ * para leer. Lo que ningun test necesita es ESCRIBIR en la del dueno.
47
+ *
48
+ * ASCII-only.
49
+ */
50
+ import os from 'node:os';
51
+ import path from 'node:path';
52
+ /** La carpeta de configuracion de la MAQUINA: la del dueno, la que ningun
53
+ * test puede tocar. Se calcula aparte del configDir() de cada modulo a
54
+ * proposito -- hace falta poder comparar el destino CONTRA ella. */
55
+ export function machineConfigDir(env = process.env) {
56
+ const home = env['USERPROFILE'] || env['HOME'] || os.homedir();
57
+ return path.join(home, '.yujin-forge');
58
+ }
59
+ export function sameDir(a, b) {
60
+ const n = (x) => path.resolve(x).replace(/[\\/]+$/, '').toLowerCase();
61
+ return n(a) === n(b);
62
+ }
63
+ /** Estamos adentro de la bateria? Vitest lo declara en el entorno. */
64
+ export function inBattery(env = process.env) {
65
+ return env['VITEST'] === 'true' || env['VITEST'] === '1';
66
+ }
67
+ /**
68
+ * EL DESTINO DE UN ARCHIVO DE ESTADO, DECIDIDO DE UNA SOLA VEZ Y SIN
69
+ * AWAITS EN EL MEDIO.
70
+ *
71
+ * `rel` es la ruta relativa dentro de la carpeta de configuracion
72
+ * ('usage.jsonl', 'nac3_log.jsonl', 'cache/reader_sessions.json'). El
73
+ * llamador escribe en `file` y crea `dir` -- y no vuelve a leer el entorno.
74
+ */
75
+ export function machineFileDestination(rel, env = process.env) {
76
+ const override = env['YF_CONFIG_DIR'] || env['YUJIN_FORGE_HOME'];
77
+ const tiene = typeof override === 'string' && override.trim() !== '';
78
+ const base = tiene ? override.trim() : machineConfigDir(env);
79
+ if (inBattery(env)) {
80
+ if (!tiene) {
81
+ return { allowed: false, why: 'bateria sin YF_CONFIG_DIR: ' + rel + ' iria al archivo del dueno' };
82
+ }
83
+ if (sameDir(base, machineConfigDir(env))) {
84
+ return {
85
+ allowed: false,
86
+ why: 'bateria con YF_CONFIG_DIR apuntando a la carpeta de la maquina (' + base + ')',
87
+ };
88
+ }
89
+ }
90
+ const file = path.join(base, ...rel.split('/'));
91
+ return { allowed: true, dir: path.dirname(file), file };
92
+ }
93
+ /** Atajo para quien solo necesita el si/no. */
94
+ export function machineWritesAllowed(rel, env = process.env) {
95
+ return machineFileDestination(rel, env).allowed;
96
+ }
97
+ //# sourceMappingURL=machine_files.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"machine_files.js","sourceRoot":"","sources":["../../src/core/machine_files.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B;;qEAEqE;AACrE,MAAM,UAAU,gBAAgB,CAAC,MAA0C,OAAO,CAAC,GAAG;IACpF,MAAM,IAAI,GAAG,GAAG,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;IAC/D,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,CAAS,EAAE,CAAS;IAC1C,MAAM,CAAC,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAC9E,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACvB,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,SAAS,CAAC,MAA0C,OAAO,CAAC,GAAG;IAC7E,OAAO,GAAG,CAAC,QAAQ,CAAC,KAAK,MAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC;AAC3D,CAAC;AAWD;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB,CACpC,GAAW,EACX,MAA0C,OAAO,CAAC,GAAG;IAErD,MAAM,QAAQ,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,GAAG,CAAC,kBAAkB,CAAC,CAAC;IACjE,MAAM,KAAK,GAAG,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;IACrE,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,QAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAC9D,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;QACnB,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,6BAA6B,GAAG,GAAG,GAAG,4BAA4B,EAAE,CAAC;QACrG,CAAC;QACD,IAAI,OAAO,CAAC,IAAI,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACzC,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,GAAG,EAAE,kEAAkE,GAAG,IAAI,GAAG,GAAG;aACrF,CAAC;QACJ,CAAC;IACH,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAChD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;AAC1D,CAAC;AAED,+CAA+C;AAC/C,MAAM,UAAU,oBAAoB,CAClC,GAAW,EACX,MAA0C,OAAO,CAAC,GAAG;IAErD,OAAO,sBAAsB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC;AAClD,CAAC"}
@@ -1,109 +1,109 @@
1
- # Doctrine: session orchestration (yujin.session.*)
2
-
3
- When it is optimal, you may launch other `yf chat` instances as
4
- HEADLESS AGENT sub-sessions to do orthogonal, well-scoped work in
5
- parallel with this conversation, and collect their results over the
6
- coordination bridge. This is the `yujin.session.*` verb family.
7
-
8
- This doctrine is about WHEN to spawn and how to keep it safe and
9
- cheap. It is distinct from `agent-orchestrator` (product-side agents
10
- the generated software dispatches on the user's machine).
11
-
12
- ## Off by default
13
-
14
- The whole capability is gated by `multiagent.enabled` in the limits
15
- config (Ajustes > Limites), DEFAULT OFF. While off, the
16
- `yujin.session.*` verbs are hidden from the manifest, this doctrine is
17
- not injected, the system prompt tells you it is OFF, and the handlers
18
- refuse. So you only see + use these verbs when the user has explicitly
19
- turned multi-agent on. If the user asks for parallel sub-sessions while
20
- it is off, tell them to enable it in Ajustes > Limites.
21
-
22
- ## The verbs
23
-
24
- - `yujin.session.spawn { task, project_root?, budget_tokens?, label?, model? }`
25
- -- launch a sub-session for one self-contained task. Returns a
26
- handle immediately (NON-blocking). The user approves each spawn
27
- (it spends BYOK tokens autonomously).
28
- `model` PINS the child brain as "provider/model" (PND-263). Without
29
- it the child inherits the global `brain_config`, so its brain comes
30
- out by OMISSION -- which is wrong whenever the brain is part of the
31
- point. Measured in the Urazuke A/B experiment: the step-13 audit done
32
- by the inherited non-frontier brain wrote FOUR of the nine findings it
33
- announced, with a false P0; the same audit over the same commit with a
34
- frontier brain wrote SEVENTEEN, all seventeen verified. The step asks
35
- for a second opinion, and an inherited brain turns it into a
36
- formality. Two rules on the pin, both deliberate: the slash is
37
- REQUIRED (Forge never guesses the provider from the model name), and
38
- an unknown provider -- or one whose key is not in the vault -- is
39
- REFUSED at the door instead of silently falling back to another. A pin
40
- also overrides the eco/frontier classifier and the escalation: it is a
41
- request, not a preference.
42
- - `yujin.session.collect { handle?, wait_ms? }` -- read the results
43
- sub-sessions have published. `wait_ms` blocks up to that long for
44
- at least one result; default 0 = return whatever has arrived.
45
- - `yujin.session.list` -- what you have spawned, with TWO facts that are
46
- not the same one (PND-256): `alive` is whether the process exists
47
- (asked of the OS), and `registered` is whether the child already
48
- published itself on the coordination bridge. A child can be alive and
49
- not yet registered (booting), and a dead child can linger in the
50
- roster. Reading one as the other costs either a needless relaunch or
51
- an endless wait.
52
- - `yujin.session.stop { handle }` -- terminate one.
53
-
54
- ## Spawn ONLY when it pays off
55
-
56
- A sub-session boots a whole headless server and spends tokens, so the
57
- overhead must be justified. Spawn when ALL of these hold:
58
-
59
- 1. **Orthogonal** -- the subtask is independent of the work you are
60
- doing right now; it does not need the live conversation context.
61
- (The child gets ONLY the `task` string you write -- be specific.)
62
- 2. **Parallelizable** -- it can run while you keep working, and you
63
- genuinely benefit from not blocking on it (e.g. a wide read /
64
- research / analysis sweep over a different subsystem).
65
- 3. **No write collision** -- it will not edit the same files you are
66
- editing. If both might write, scope them to different paths or do
67
- it yourself.
68
- 4. **Fits a budget** -- set `budget_tokens` to bound the spend.
69
- 5. **Brain chosen, not inherited** -- when the brain matters (an AUDIT
70
- by another session, a review, a second opinion), pass `model`. An
71
- auditor that comes out by omission satisfies the form of the step and
72
- loses its point.
73
-
74
- Do NOT spawn for:
75
-
76
- - Trivial tasks (a single read, a one-line answer) -- the overhead
77
- costs more than doing it inline.
78
- - Anything that needs the user's live judgement or the chat history.
79
- - Work you could do with one of your own verbs in this turn.
80
-
81
- Typical good uses: "map how subsystem X wires together and report the
82
- key files + entry points", "search the whole repo for every place
83
- pattern Y appears and summarise", "read these 8 docs and extract the
84
- constraints". Launch one per independent angle, then `collect`.
85
-
86
- ## The child's scope (enforced, not advisory)
87
-
88
- A sub-session runs with a RESTRICTED verb scope (enforced in
89
- `nac3_invoke` via `YF_AGENT_MODE`):
90
-
91
- - CAN: read / search / write files in its project root, run SAFE
92
- shell, query the graph / pendings / reader.
93
- - CANNOT: `git push` / `git commit`, destructive actions, `fs.move`,
94
- re-anchor the project, mutate the workflow / pending / keys, run
95
- lifecycle servers, or spawn its OWN sub-sessions (no grandchildren).
96
-
97
- So the child is a safe builder/analyst. Anything outward or
98
- irreversible stays with YOU, the parent, where the user can approve
99
- it. Have the child RETURN its deliverable; you surface it (pizarron,
100
- etc.) and you do the push/commit.
101
-
102
- ## Lifecycle
103
-
104
- Sub-sessions are one-shot: a child runs its task to completion (a
105
- `[SESSION_DONE]` marker), publishes its result, and exits. The full
106
- result is written to disk; the bridge signal carries a summary + the
107
- path. Always `collect` what you spawn -- do not leave results
108
- unread. If a child is no longer useful or is burning budget, `stop`
109
- it.
1
+ # Doctrine: session orchestration (yujin.session.*)
2
+
3
+ When it is optimal, you may launch other `yf chat` instances as
4
+ HEADLESS AGENT sub-sessions to do orthogonal, well-scoped work in
5
+ parallel with this conversation, and collect their results over the
6
+ coordination bridge. This is the `yujin.session.*` verb family.
7
+
8
+ This doctrine is about WHEN to spawn and how to keep it safe and
9
+ cheap. It is distinct from `agent-orchestrator` (product-side agents
10
+ the generated software dispatches on the user's machine).
11
+
12
+ ## Off by default
13
+
14
+ The whole capability is gated by `multiagent.enabled` in the limits
15
+ config (Ajustes > Limites), DEFAULT OFF. While off, the
16
+ `yujin.session.*` verbs are hidden from the manifest, this doctrine is
17
+ not injected, the system prompt tells you it is OFF, and the handlers
18
+ refuse. So you only see + use these verbs when the user has explicitly
19
+ turned multi-agent on. If the user asks for parallel sub-sessions while
20
+ it is off, tell them to enable it in Ajustes > Limites.
21
+
22
+ ## The verbs
23
+
24
+ - `yujin.session.spawn { task, project_root?, budget_tokens?, label?, model? }`
25
+ -- launch a sub-session for one self-contained task. Returns a
26
+ handle immediately (NON-blocking). The user approves each spawn
27
+ (it spends BYOK tokens autonomously).
28
+ `model` PINS the child brain as "provider/model" (PND-263). Without
29
+ it the child inherits the global `brain_config`, so its brain comes
30
+ out by OMISSION -- which is wrong whenever the brain is part of the
31
+ point. Measured in the Urazuke A/B experiment: the step-13 audit done
32
+ by the inherited non-frontier brain wrote FOUR of the nine findings it
33
+ announced, with a false P0; the same audit over the same commit with a
34
+ frontier brain wrote SEVENTEEN, all seventeen verified. The step asks
35
+ for a second opinion, and an inherited brain turns it into a
36
+ formality. Two rules on the pin, both deliberate: the slash is
37
+ REQUIRED (Forge never guesses the provider from the model name), and
38
+ an unknown provider -- or one whose key is not in the vault -- is
39
+ REFUSED at the door instead of silently falling back to another. A pin
40
+ also overrides the eco/frontier classifier and the escalation: it is a
41
+ request, not a preference.
42
+ - `yujin.session.collect { handle?, wait_ms? }` -- read the results
43
+ sub-sessions have published. `wait_ms` blocks up to that long for
44
+ at least one result; default 0 = return whatever has arrived.
45
+ - `yujin.session.list` -- what you have spawned, with TWO facts that are
46
+ not the same one (PND-256): `alive` is whether the process exists
47
+ (asked of the OS), and `registered` is whether the child already
48
+ published itself on the coordination bridge. A child can be alive and
49
+ not yet registered (booting), and a dead child can linger in the
50
+ roster. Reading one as the other costs either a needless relaunch or
51
+ an endless wait.
52
+ - `yujin.session.stop { handle }` -- terminate one.
53
+
54
+ ## Spawn ONLY when it pays off
55
+
56
+ A sub-session boots a whole headless server and spends tokens, so the
57
+ overhead must be justified. Spawn when ALL of these hold:
58
+
59
+ 1. **Orthogonal** -- the subtask is independent of the work you are
60
+ doing right now; it does not need the live conversation context.
61
+ (The child gets ONLY the `task` string you write -- be specific.)
62
+ 2. **Parallelizable** -- it can run while you keep working, and you
63
+ genuinely benefit from not blocking on it (e.g. a wide read /
64
+ research / analysis sweep over a different subsystem).
65
+ 3. **No write collision** -- it will not edit the same files you are
66
+ editing. If both might write, scope them to different paths or do
67
+ it yourself.
68
+ 4. **Fits a budget** -- set `budget_tokens` to bound the spend.
69
+ 5. **Brain chosen, not inherited** -- when the brain matters (an AUDIT
70
+ by another session, a review, a second opinion), pass `model`. An
71
+ auditor that comes out by omission satisfies the form of the step and
72
+ loses its point.
73
+
74
+ Do NOT spawn for:
75
+
76
+ - Trivial tasks (a single read, a one-line answer) -- the overhead
77
+ costs more than doing it inline.
78
+ - Anything that needs the user's live judgement or the chat history.
79
+ - Work you could do with one of your own verbs in this turn.
80
+
81
+ Typical good uses: "map how subsystem X wires together and report the
82
+ key files + entry points", "search the whole repo for every place
83
+ pattern Y appears and summarise", "read these 8 docs and extract the
84
+ constraints". Launch one per independent angle, then `collect`.
85
+
86
+ ## The child's scope (enforced, not advisory)
87
+
88
+ A sub-session runs with a RESTRICTED verb scope (enforced in
89
+ `nac3_invoke` via `YF_AGENT_MODE`):
90
+
91
+ - CAN: read / search / write files in its project root, run SAFE
92
+ shell, query the graph / pendings / reader.
93
+ - CANNOT: `git push` / `git commit`, destructive actions, `fs.move`,
94
+ re-anchor the project, mutate the workflow / pending / keys, run
95
+ lifecycle servers, or spawn its OWN sub-sessions (no grandchildren).
96
+
97
+ So the child is a safe builder/analyst. Anything outward or
98
+ irreversible stays with YOU, the parent, where the user can approve
99
+ it. Have the child RETURN its deliverable; you surface it (pizarron,
100
+ etc.) and you do the push/commit.
101
+
102
+ ## Lifecycle
103
+
104
+ Sub-sessions are one-shot: a child runs its task to completion (a
105
+ `[SESSION_DONE]` marker), publishes its result, and exits. The full
106
+ result is written to disk; the bridge signal carries a summary + the
107
+ path. Always `collect` what you spawn -- do not leave results
108
+ unread. If a child is no longer useful or is burning budget, `stop`
109
+ it.