@nac3/forge-cli 1.25.0 → 1.27.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 (121) hide show
  1. package/dist/chat/cache_ttl.d.ts +143 -0
  2. package/dist/chat/cache_ttl.d.ts.map +1 -0
  3. package/dist/chat/cache_ttl.js +165 -0
  4. package/dist/chat/cache_ttl.js.map +1 -0
  5. package/dist/chat/claude.d.ts +1 -0
  6. package/dist/chat/claude.d.ts.map +1 -1
  7. package/dist/chat/claude.js +47 -5
  8. package/dist/chat/claude.js.map +1 -1
  9. package/dist/chat/claude_cli.d.ts +24 -0
  10. package/dist/chat/claude_cli.d.ts.map +1 -1
  11. package/dist/chat/claude_cli.js +76 -10
  12. package/dist/chat/claude_cli.js.map +1 -1
  13. package/dist/chat/panel.d.ts.map +1 -1
  14. package/dist/chat/panel.js +128 -17
  15. package/dist/chat/panel.js.map +1 -1
  16. package/dist/chat/server.d.ts.map +1 -1
  17. package/dist/chat/server.js +13 -1
  18. package/dist/chat/server.js.map +1 -1
  19. package/dist/chat/tools/evidence.d.ts +15 -0
  20. package/dist/chat/tools/evidence.d.ts.map +1 -1
  21. package/dist/chat/tools/evidence.js +16 -0
  22. package/dist/chat/tools/evidence.js.map +1 -1
  23. package/dist/chat/tools/reader.d.ts.map +1 -1
  24. package/dist/chat/tools/reader.js +24 -4
  25. package/dist/chat/tools/reader.js.map +1 -1
  26. package/dist/chat/tools/session_verbs.d.ts +3 -1
  27. package/dist/chat/tools/session_verbs.d.ts.map +1 -1
  28. package/dist/chat/tools/session_verbs.js +65 -2
  29. package/dist/chat/tools/session_verbs.js.map +1 -1
  30. package/dist/chat/tools/shell.d.ts +11 -0
  31. package/dist/chat/tools/shell.d.ts.map +1 -1
  32. package/dist/chat/tools/shell.js +46 -1
  33. package/dist/chat/tools/shell.js.map +1 -1
  34. package/dist/commands/chat.d.ts +6 -0
  35. package/dist/commands/chat.d.ts.map +1 -1
  36. package/dist/commands/chat.js +25 -0
  37. package/dist/commands/chat.js.map +1 -1
  38. package/dist/commands/limits.d.ts.map +1 -1
  39. package/dist/commands/limits.js +77 -6
  40. package/dist/commands/limits.js.map +1 -1
  41. package/dist/commands/operate.d.ts.map +1 -1
  42. package/dist/commands/operate.js +42 -0
  43. package/dist/commands/operate.js.map +1 -1
  44. package/dist/commands/urazuke.d.ts.map +1 -1
  45. package/dist/commands/urazuke.js +189 -9
  46. package/dist/commands/urazuke.js.map +1 -1
  47. package/dist/core/brain_pin.d.ts +74 -0
  48. package/dist/core/brain_pin.d.ts.map +1 -0
  49. package/dist/core/brain_pin.js +113 -0
  50. package/dist/core/brain_pin.js.map +1 -0
  51. package/dist/core/cost_router.d.ts.map +1 -1
  52. package/dist/core/cost_router.js +56 -0
  53. package/dist/core/cost_router.js.map +1 -1
  54. package/dist/core/limits_config.d.ts +19 -0
  55. package/dist/core/limits_config.d.ts.map +1 -1
  56. package/dist/core/limits_config.js +38 -0
  57. package/dist/core/limits_config.js.map +1 -1
  58. package/dist/core/machine_files.d.ts +27 -0
  59. package/dist/core/machine_files.d.ts.map +1 -0
  60. package/dist/core/machine_files.js +97 -0
  61. package/dist/core/machine_files.js.map +1 -0
  62. package/dist/docs/doctrine/session-orchestration.md +109 -91
  63. package/dist/docs/doctrine/urazuke.md +221 -221
  64. package/dist/llm/sse_stream.d.ts +2 -0
  65. package/dist/llm/sse_stream.d.ts.map +1 -1
  66. package/dist/llm/sse_stream.js +10 -1
  67. package/dist/llm/sse_stream.js.map +1 -1
  68. package/dist/nac3/dispatch_log.d.ts +16 -1
  69. package/dist/nac3/dispatch_log.d.ts.map +1 -1
  70. package/dist/nac3/dispatch_log.js +29 -10
  71. package/dist/nac3/dispatch_log.js.map +1 -1
  72. package/dist/nac3/internal_manifest.d.ts.map +1 -1
  73. package/dist/nac3/internal_manifest.js +2 -0
  74. package/dist/nac3/internal_manifest.js.map +1 -1
  75. package/dist/telemetry/battery_events.d.ts +91 -0
  76. package/dist/telemetry/battery_events.d.ts.map +1 -0
  77. package/dist/telemetry/battery_events.js +84 -0
  78. package/dist/telemetry/battery_events.js.map +1 -0
  79. package/dist/telemetry/usage.d.ts +107 -0
  80. package/dist/telemetry/usage.d.ts.map +1 -1
  81. package/dist/telemetry/usage.js +172 -13
  82. package/dist/telemetry/usage.js.map +1 -1
  83. package/dist/urazuke/evidence.d.ts +5 -0
  84. package/dist/urazuke/evidence.d.ts.map +1 -1
  85. package/dist/urazuke/evidence.js +2 -0
  86. package/dist/urazuke/evidence.js.map +1 -1
  87. package/dist/urazuke/freeze.d.ts.map +1 -1
  88. package/dist/urazuke/freeze.js +82 -16
  89. package/dist/urazuke/freeze.js.map +1 -1
  90. package/dist/urazuke/gates_data.d.ts +4 -1
  91. package/dist/urazuke/gates_data.d.ts.map +1 -1
  92. package/dist/urazuke/gates_data.js +7 -1
  93. package/dist/urazuke/gates_data.js.map +1 -1
  94. package/dist/urazuke/gates_ledger.d.ts +25 -1
  95. package/dist/urazuke/gates_ledger.d.ts.map +1 -1
  96. package/dist/urazuke/gates_ledger.js +30 -6
  97. package/dist/urazuke/gates_ledger.js.map +1 -1
  98. package/dist/urazuke/method_config.d.ts +116 -0
  99. package/dist/urazuke/method_config.d.ts.map +1 -0
  100. package/dist/urazuke/method_config.js +328 -0
  101. package/dist/urazuke/method_config.js.map +1 -0
  102. package/dist/urazuke/prompts_client.d.ts +42 -12
  103. package/dist/urazuke/prompts_client.d.ts.map +1 -1
  104. package/dist/urazuke/prompts_client.js +120 -16
  105. package/dist/urazuke/prompts_client.js.map +1 -1
  106. package/dist/urazuke/prompts_freeze.d.ts +186 -0
  107. package/dist/urazuke/prompts_freeze.d.ts.map +1 -0
  108. package/dist/urazuke/prompts_freeze.js +498 -0
  109. package/dist/urazuke/prompts_freeze.js.map +1 -0
  110. package/dist/urazuke/receipts.d.ts +28 -1
  111. package/dist/urazuke/receipts.d.ts.map +1 -1
  112. package/dist/urazuke/receipts.js +59 -6
  113. package/dist/urazuke/receipts.js.map +1 -1
  114. package/dist/urazuke/start.d.ts.map +1 -1
  115. package/dist/urazuke/start.js +42 -2
  116. package/dist/urazuke/start.js.map +1 -1
  117. package/dist/version.d.ts +1 -1
  118. package/dist/version.js +1 -1
  119. package/docs/doctrine/session-orchestration.md +109 -91
  120. package/docs/doctrine/urazuke.md +221 -221
  121. package/package.json +124 -124
@@ -0,0 +1,143 @@
1
+ /**
2
+ * Yujin Forge -- la ventana de la cache de prompt, como DECISION del caso
3
+ * de uso y no como constante.
4
+ *
5
+ * POR QUE EXISTE ESTE ARCHIVO (medido el 2026-11-03, experimento A/B de
6
+ * Urazuke, PND-272)
7
+ *
8
+ * El camino HTTP marcaba sus dos breakpoints con el efimero por omision de
9
+ * 5 minutos, y el motivo estaba escrito al lado del codigo:
10
+ *
11
+ * TTL is the default 5min ephemeral to match the system block +
12
+ * avoid the 1h write-cost premium.
13
+ *
14
+ * Esa eleccion es CORRECTA para el caso que tenia en mente -- turnos cortos
15
+ * uno atras del otro -- y equivocada para una sesion de Urazuke, donde los
16
+ * turnos duran entre 99 y 169 minutos medidos. La aritmetica de Anthropic:
17
+ *
18
+ * lectura de cache 0,10x del precio base de entrada
19
+ * escritura a 5 min 1,25x
20
+ * escritura a 1 hora 2,00x
21
+ *
22
+ * Con ventana de 5 minutos, un prefijo que se vuelve a necesitar 20 minutos
23
+ * despues se re-escribe a 1,25x lo que podria haberse leido a 0,10x: doce
24
+ * veces de mas. Con ventana de 1 hora se paga 2x UNA vez y despues se lee.
25
+ * Pero al reves tambien es cierto: si los turnos salen cada 30 segundos, la
26
+ * ventana de 1 hora no compra NADA y cobra 2x en vez de 1,25x por cada
27
+ * escritura. No hay una constante correcta -- hay una decision.
28
+ *
29
+ * COMO SE DECIDE, Y POR QUE ASI
30
+ *
31
+ * La politica sale de la configuracion (limits.json, cache.ttl). Con 'auto'
32
+ * -- el valor por omision -- la decide la unica evidencia disponible en el
33
+ * momento de escribir: el hueco medido entre el arranque de la peticion
34
+ * ANTERIOR que compartia prefijo y el de esta. Es un predictor por historia
35
+ * reciente, y se declara como tal: nadie sabe cuando va a llegar la lectura
36
+ * siguiente. Los umbrales son los de la aritmetica de arriba, no una
37
+ * intuicion:
38
+ *
39
+ * sin hueco conocido (primera peticion) -> 5m (no hay evidencia; 5m es
40
+ * la escritura mas barata)
41
+ * hueco < 5 min -> 5m (cada peticion refresca la
42
+ * entrada; es estrictamente
43
+ * mas barato)
44
+ * hueco entre 5 y 60 min -> 1h (la unica ventana donde la
45
+ * escritura a 2x se paga)
46
+ * hueco > 60 min -> 5m (la entrada va a estar
47
+ * fria igual; pagar 2x por
48
+ * algo que nadie va a leer
49
+ * es puro recargo)
50
+ *
51
+ * Una lectura REFRESCA el reloj de la entrada sin costo extra, en las dos
52
+ * ventanas, asi que una cadena de turnos cortos mantiene viva la entrada de
53
+ * 5 minutos indefinidamente.
54
+ *
55
+ * LO QUE ESTE ARCHIVO NO ARREGLA (medido, declarado)
56
+ *
57
+ * Por el camino `claude-code-cli` la cache la maneja el CLI de Claude Code y
58
+ * no Forge: medido con scripts/measure_cache.mjs, el CLI escribe SIEMPRE en
59
+ * la ventana de 1 hora (cache_creation.ephemeral_1h_input_tokens), nunca en
60
+ * la de 5 minutos. Por ese camino no hay ventana que elegir, y el problema
61
+ * de cache es otro: la estabilidad del prefijo (ver claude_cli.ts).
62
+ *
63
+ * ASCII-only.
64
+ */
65
+ /** Las dos ventanas que acepta la API. */
66
+ export type CacheTtl = '5m' | '1h';
67
+ /** Lo que el operador puede declarar en limits.json (cache.ttl). */
68
+ export type CacheTtlPolicy = 'auto' | '5m' | '1h';
69
+ export declare const CACHE_TTL_POLICIES: readonly CacheTtlPolicy[];
70
+ /** Piso de la ventana corta: por debajo de esto cada peticion refresca la
71
+ * entrada de 5 minutos y la de 1 hora solo cobraria el doble. */
72
+ export declare const VENTANA_CORTA_MS: number;
73
+ /** Techo de la ventana larga: por encima de una hora la entrada esta fria
74
+ * igual y la escritura a 2x es recargo sin lectura. */
75
+ export declare const VENTANA_LARGA_MS: number;
76
+ export interface CacheTtlDecision {
77
+ ttl: CacheTtl;
78
+ /** Motivo legible, para el log y para el reporte de costos. */
79
+ why: string;
80
+ }
81
+ /**
82
+ * Elegir la ventana de esta escritura.
83
+ *
84
+ * `lastGapMs` es el hueco medido entre el arranque de la peticion anterior
85
+ * que compartia prefijo y el de esta. `undefined` = no hay anterior.
86
+ */
87
+ export declare function chooseCacheTtl(policy: CacheTtlPolicy, opts?: {
88
+ lastGapMs?: number | undefined;
89
+ }): CacheTtlDecision;
90
+ /**
91
+ * El bloque `cache_control` que va al cuerpo de la peticion. Separado para
92
+ * que el emisor no tenga que acordarse de que a 5 minutos se OMITE el campo
93
+ * `ttl` (es el valor por omision de la API) y a 1 hora se declara.
94
+ */
95
+ export declare function cacheControlFor(ttl: CacheTtl): Record<string, unknown>;
96
+ /**
97
+ * Rastreador del hueco entre peticiones que comparten prefijo. Vive en la
98
+ * instancia del cliente: una instancia por sesion de chat, asi que el hueco
99
+ * que mide es el de ESA conversacion y no el de la maquina.
100
+ *
101
+ * No persiste a disco a proposito: un hueco de ayer no dice nada del de hoy,
102
+ * y la primera peticion de una sesion nueva ya tiene su propia respuesta
103
+ * ('sin hueco medido' -> 5m, la escritura mas barata).
104
+ */
105
+ export declare class CacheGapTracker {
106
+ private lastStartMs;
107
+ /** Llamar al ARRANQUE de cada peticion. Devuelve el hueco contra la
108
+ * anterior (undefined la primera vez) y deja anotado este arranque. */
109
+ mark(nowMs?: number): number | undefined;
110
+ reset(): void;
111
+ }
112
+ /**
113
+ * EL ALCANCE DE ESTA POLITICA, DICHO DONDE SE LA CONFIGURA.
114
+ *
115
+ * Pedido del dueno del experimento el 2026-11-03, y el motivo es el mismo
116
+ * que el del cero que informaba salud: "un knob que no hace nada en el
117
+ * camino principal y no lo avisa es un instrumento que contesta cuando no
118
+ * puede mirar". `cache.ttl` rige el camino HTTP (src/chat/claude.ts, que es
119
+ * el que pone cache_control en el cuerpo). Por el camino `claude-code-cli`
120
+ * la cache la maneja el CLI de Claude Code: medido con
121
+ * scripts/measure_cache.mjs, escribe SIEMPRE en la ventana de una hora, y
122
+ * Forge no tiene ahi ninguna ventana que elegir.
123
+ *
124
+ * Se declara SIEMPRE y no solo cuando el proveedor activo es el CLI, a
125
+ * proposito: el proveedor de un turno se decide con la bandera `--provider`
126
+ * de `yf chat`, que la configuracion no ve. Afirmar "tu camino es el HTTP"
127
+ * leyendo brain_config seria exactamente la clase de afirmacion sin
128
+ * medicion que este lote vino a sacar. Cuando la configuracion SI alcanza a
129
+ * verlo -- anthropic_mode='plan' -- el aviso lo agrega.
130
+ */
131
+ export declare const CACHE_TTL_ALCANCE: string;
132
+ /** El aviso para `yf limits set cache.ttl` y para el panel. `brain` es
133
+ * opcional: sin el, el aviso es el alcance a secas. */
134
+ export declare function cacheTtlScopeNotice(brain?: {
135
+ anthropic_mode?: string | undefined;
136
+ eco?: {
137
+ provider?: string;
138
+ };
139
+ frontier?: {
140
+ provider?: string;
141
+ };
142
+ }): string;
143
+ //# sourceMappingURL=cache_ttl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache_ttl.d.ts","sourceRoot":"","sources":["../../src/chat/cache_ttl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;AAEH,0CAA0C;AAC1C,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC;AAEnC,oEAAoE;AACpE,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;AAElD,eAAO,MAAM,kBAAkB,EAAE,SAAS,cAAc,EAAyB,CAAC;AAElF;kEACkE;AAClE,eAAO,MAAM,gBAAgB,QAAgB,CAAC;AAE9C;wDACwD;AACxD,eAAO,MAAM,gBAAgB,QAAiB,CAAC;AAE/C,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,QAAQ,CAAC;IACd,+DAA+D;IAC/D,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,cAAc,EACtB,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAO,GAC5C,gBAAgB,CAgBlB;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAItE;AAED;;;;;;;;GAQG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,WAAW,CAAuB;IAE1C;4EACwE;IACxE,IAAI,CAAC,KAAK,GAAE,MAAmB,GAAG,MAAM,GAAG,SAAS;IAQpD,KAAK,IAAI,IAAI;CAGd;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,iBAAiB,QAGoB,CAAC;AAEnD;wDACwD;AACxD,wBAAgB,mBAAmB,CACjC,KAAK,CAAC,EAAE;IAAE,cAAc,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,GAAG,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,QAAQ,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAC7G,MAAM,CAQR"}
@@ -0,0 +1,165 @@
1
+ /**
2
+ * Yujin Forge -- la ventana de la cache de prompt, como DECISION del caso
3
+ * de uso y no como constante.
4
+ *
5
+ * POR QUE EXISTE ESTE ARCHIVO (medido el 2026-11-03, experimento A/B de
6
+ * Urazuke, PND-272)
7
+ *
8
+ * El camino HTTP marcaba sus dos breakpoints con el efimero por omision de
9
+ * 5 minutos, y el motivo estaba escrito al lado del codigo:
10
+ *
11
+ * TTL is the default 5min ephemeral to match the system block +
12
+ * avoid the 1h write-cost premium.
13
+ *
14
+ * Esa eleccion es CORRECTA para el caso que tenia en mente -- turnos cortos
15
+ * uno atras del otro -- y equivocada para una sesion de Urazuke, donde los
16
+ * turnos duran entre 99 y 169 minutos medidos. La aritmetica de Anthropic:
17
+ *
18
+ * lectura de cache 0,10x del precio base de entrada
19
+ * escritura a 5 min 1,25x
20
+ * escritura a 1 hora 2,00x
21
+ *
22
+ * Con ventana de 5 minutos, un prefijo que se vuelve a necesitar 20 minutos
23
+ * despues se re-escribe a 1,25x lo que podria haberse leido a 0,10x: doce
24
+ * veces de mas. Con ventana de 1 hora se paga 2x UNA vez y despues se lee.
25
+ * Pero al reves tambien es cierto: si los turnos salen cada 30 segundos, la
26
+ * ventana de 1 hora no compra NADA y cobra 2x en vez de 1,25x por cada
27
+ * escritura. No hay una constante correcta -- hay una decision.
28
+ *
29
+ * COMO SE DECIDE, Y POR QUE ASI
30
+ *
31
+ * La politica sale de la configuracion (limits.json, cache.ttl). Con 'auto'
32
+ * -- el valor por omision -- la decide la unica evidencia disponible en el
33
+ * momento de escribir: el hueco medido entre el arranque de la peticion
34
+ * ANTERIOR que compartia prefijo y el de esta. Es un predictor por historia
35
+ * reciente, y se declara como tal: nadie sabe cuando va a llegar la lectura
36
+ * siguiente. Los umbrales son los de la aritmetica de arriba, no una
37
+ * intuicion:
38
+ *
39
+ * sin hueco conocido (primera peticion) -> 5m (no hay evidencia; 5m es
40
+ * la escritura mas barata)
41
+ * hueco < 5 min -> 5m (cada peticion refresca la
42
+ * entrada; es estrictamente
43
+ * mas barato)
44
+ * hueco entre 5 y 60 min -> 1h (la unica ventana donde la
45
+ * escritura a 2x se paga)
46
+ * hueco > 60 min -> 5m (la entrada va a estar
47
+ * fria igual; pagar 2x por
48
+ * algo que nadie va a leer
49
+ * es puro recargo)
50
+ *
51
+ * Una lectura REFRESCA el reloj de la entrada sin costo extra, en las dos
52
+ * ventanas, asi que una cadena de turnos cortos mantiene viva la entrada de
53
+ * 5 minutos indefinidamente.
54
+ *
55
+ * LO QUE ESTE ARCHIVO NO ARREGLA (medido, declarado)
56
+ *
57
+ * Por el camino `claude-code-cli` la cache la maneja el CLI de Claude Code y
58
+ * no Forge: medido con scripts/measure_cache.mjs, el CLI escribe SIEMPRE en
59
+ * la ventana de 1 hora (cache_creation.ephemeral_1h_input_tokens), nunca en
60
+ * la de 5 minutos. Por ese camino no hay ventana que elegir, y el problema
61
+ * de cache es otro: la estabilidad del prefijo (ver claude_cli.ts).
62
+ *
63
+ * ASCII-only.
64
+ */
65
+ export const CACHE_TTL_POLICIES = ['auto', '5m', '1h'];
66
+ /** Piso de la ventana corta: por debajo de esto cada peticion refresca la
67
+ * entrada de 5 minutos y la de 1 hora solo cobraria el doble. */
68
+ export const VENTANA_CORTA_MS = 5 * 60 * 1000;
69
+ /** Techo de la ventana larga: por encima de una hora la entrada esta fria
70
+ * igual y la escritura a 2x es recargo sin lectura. */
71
+ export const VENTANA_LARGA_MS = 60 * 60 * 1000;
72
+ /**
73
+ * Elegir la ventana de esta escritura.
74
+ *
75
+ * `lastGapMs` es el hueco medido entre el arranque de la peticion anterior
76
+ * que compartia prefijo y el de esta. `undefined` = no hay anterior.
77
+ */
78
+ export function chooseCacheTtl(policy, opts = {}) {
79
+ if (policy === '5m')
80
+ return { ttl: '5m', why: 'politica fija 5m' };
81
+ if (policy === '1h')
82
+ return { ttl: '1h', why: 'politica fija 1h' };
83
+ const gap = opts.lastGapMs;
84
+ if (typeof gap !== 'number' || !Number.isFinite(gap) || gap < 0) {
85
+ return { ttl: '5m', why: 'auto: sin hueco medido todavia (primera peticion)' };
86
+ }
87
+ const min = Math.round(gap / 60000);
88
+ if (gap < VENTANA_CORTA_MS) {
89
+ return { ttl: '5m', why: 'auto: hueco anterior ' + min + ' min (< 5), cada peticion refresca la entrada' };
90
+ }
91
+ if (gap <= VENTANA_LARGA_MS) {
92
+ return { ttl: '1h', why: 'auto: hueco anterior ' + min + ' min (5..60), la escritura a 2x se paga' };
93
+ }
94
+ return { ttl: '5m', why: 'auto: hueco anterior ' + min + ' min (> 60), la entrada va a estar fria igual' };
95
+ }
96
+ /**
97
+ * El bloque `cache_control` que va al cuerpo de la peticion. Separado para
98
+ * que el emisor no tenga que acordarse de que a 5 minutos se OMITE el campo
99
+ * `ttl` (es el valor por omision de la API) y a 1 hora se declara.
100
+ */
101
+ export function cacheControlFor(ttl) {
102
+ return ttl === '1h'
103
+ ? { type: 'ephemeral', ttl: '1h' }
104
+ : { type: 'ephemeral' };
105
+ }
106
+ /**
107
+ * Rastreador del hueco entre peticiones que comparten prefijo. Vive en la
108
+ * instancia del cliente: una instancia por sesion de chat, asi que el hueco
109
+ * que mide es el de ESA conversacion y no el de la maquina.
110
+ *
111
+ * No persiste a disco a proposito: un hueco de ayer no dice nada del de hoy,
112
+ * y la primera peticion de una sesion nueva ya tiene su propia respuesta
113
+ * ('sin hueco medido' -> 5m, la escritura mas barata).
114
+ */
115
+ export class CacheGapTracker {
116
+ lastStartMs = null;
117
+ /** Llamar al ARRANQUE de cada peticion. Devuelve el hueco contra la
118
+ * anterior (undefined la primera vez) y deja anotado este arranque. */
119
+ mark(nowMs = Date.now()) {
120
+ const prev = this.lastStartMs;
121
+ this.lastStartMs = nowMs;
122
+ if (prev === null)
123
+ return undefined;
124
+ const gap = nowMs - prev;
125
+ return gap >= 0 ? gap : undefined;
126
+ }
127
+ reset() {
128
+ this.lastStartMs = null;
129
+ }
130
+ }
131
+ /**
132
+ * EL ALCANCE DE ESTA POLITICA, DICHO DONDE SE LA CONFIGURA.
133
+ *
134
+ * Pedido del dueno del experimento el 2026-11-03, y el motivo es el mismo
135
+ * que el del cero que informaba salud: "un knob que no hace nada en el
136
+ * camino principal y no lo avisa es un instrumento que contesta cuando no
137
+ * puede mirar". `cache.ttl` rige el camino HTTP (src/chat/claude.ts, que es
138
+ * el que pone cache_control en el cuerpo). Por el camino `claude-code-cli`
139
+ * la cache la maneja el CLI de Claude Code: medido con
140
+ * scripts/measure_cache.mjs, escribe SIEMPRE en la ventana de una hora, y
141
+ * Forge no tiene ahi ninguna ventana que elegir.
142
+ *
143
+ * Se declara SIEMPRE y no solo cuando el proveedor activo es el CLI, a
144
+ * proposito: el proveedor de un turno se decide con la bandera `--provider`
145
+ * de `yf chat`, que la configuracion no ve. Afirmar "tu camino es el HTTP"
146
+ * leyendo brain_config seria exactamente la clase de afirmacion sin
147
+ * medicion que este lote vino a sacar. Cuando la configuracion SI alcanza a
148
+ * verlo -- anthropic_mode='plan' -- el aviso lo agrega.
149
+ */
150
+ export const CACHE_TTL_ALCANCE = 'cache.ttl rige el camino HTTP (API con clave). Por el camino'
151
+ + ' claude-code-cli (suscripcion: yf chat --provider claude-code-cli, o anthropic_mode=plan)'
152
+ + ' la ventana la elige el CLI de Claude Code y no Forge: medido, escribe siempre en la de 1 hora.'
153
+ + ' Cambiar esta politica NO altera ese camino.';
154
+ /** El aviso para `yf limits set cache.ttl` y para el panel. `brain` es
155
+ * opcional: sin el, el aviso es el alcance a secas. */
156
+ export function cacheTtlScopeNotice(brain) {
157
+ const usaAnthropic = brain?.eco?.provider === 'anthropic' || brain?.frontier?.provider === 'anthropic';
158
+ if (brain?.anthropic_mode === 'plan' && usaAnthropic) {
159
+ return CACHE_TTL_ALCANCE
160
+ + ' Y ES TU CASO: brain_config declara anthropic_mode=plan con un brain anthropic,'
161
+ + ' asi que los turnos de ese brain no van a cambiar por esto.';
162
+ }
163
+ return CACHE_TTL_ALCANCE;
164
+ }
165
+ //# sourceMappingURL=cache_ttl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache_ttl.js","sourceRoot":"","sources":["../../src/chat/cache_ttl.ts"],"names":[],"mappings":"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"}
@@ -261,6 +261,7 @@ export declare class ClaudeClient implements ChatLLMClient {
261
261
  private fetchImpl;
262
262
  private defaultModel;
263
263
  private baseUrl;
264
+ private gap;
264
265
  constructor(opts?: ClaudeClientOptions);
265
266
  chat(req: ClaudeChatRequest): Promise<ClaudeChatResponse>;
266
267
  }
@@ -1 +1 @@
1
- {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../src/chat/claude.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../src/chat/claude.ts"],"names":[],"mappings":"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"}
@@ -30,6 +30,7 @@ import { Vault } from '../vault/store.js';
30
30
  import { recordUsage } from '../telemetry/usage.js';
31
31
  import { resolveBrainBehaviour } from '../core/brain_behaviour.js';
32
32
  import { capToolResult, compactOldAnthropicToolResults } from '../llm/context_compaction.js';
33
+ import { CacheGapTracker, cacheControlFor, chooseCacheTtl } from './cache_ttl.js';
33
34
  export class ConfigurationError extends Error {
34
35
  constructor(message) {
35
36
  super(message);
@@ -140,6 +141,10 @@ export class ClaudeClient {
140
141
  fetchImpl;
141
142
  defaultModel;
142
143
  baseUrl;
144
+ /* PND-272 -- el hueco entre peticiones que comparten prefijo, para que la
145
+ * ventana de la cache sea una decision medida y no una constante. Vive en
146
+ * la instancia: una por sesion de chat, asi que mide ESA conversacion. */
147
+ gap = new CacheGapTracker();
143
148
  constructor(opts = {}) {
144
149
  this.baseUrl = (opts.baseUrl ?? process.env.YF_ANTHROPIC_BASE_URL ?? 'https://api.anthropic.com').replace(/\/+$/, '');
145
150
  this.apiKey = opts.apiKey ?? null;
@@ -209,6 +214,10 @@ export class ClaudeClient {
209
214
  let lastFailVerb = null;
210
215
  let failStreak = 0;
211
216
  let interrupted = false;
217
+ /* La ventana con la que se escribio la cache en la ronda en curso. Se
218
+ * guarda para el recibo de uso: decide si la escritura costo 1,25x (5m)
219
+ * o 2x (1h), y sin eso el reporte de costos no puede valuarla. */
220
+ let cacheTtl = '5m';
212
221
  /* H2/H3 (2026-09-22) -- cap + compactacion de resultados de tool, que
213
222
  * hasta ahora solo existian en el cliente deepseek. Esta ruta (Console /
214
223
  * Anthropic) acumulaba `messages` sin techo: cada ronda re-serializaba la
@@ -228,6 +237,16 @@ export class ClaudeClient {
228
237
  max_tokens: maxTokens,
229
238
  messages,
230
239
  };
240
+ /* PND-272 -- la ventana de esta escritura de cache. Se decide ANTES de
241
+ * armar los breakpoints y con el hueco medido contra la peticion
242
+ * anterior de esta misma sesion; el motivo de cada umbral esta en
243
+ * src/chat/cache_ttl.ts. La MISMA ventana va a los dos breakpoints
244
+ * (tools y system) porque la API exige que las entradas de ventana
245
+ * larga aparezcan ANTES de las de ventana corta, y tools se renderiza
246
+ * antes que system: mezclarlas seria un 400 esperando a pasar. */
247
+ const ttlPolicy = (await readLimitsConfig()).cache.ttl;
248
+ const ttlDecision = chooseCacheTtl(ttlPolicy, { lastGapMs: this.gap.mark() });
249
+ cacheTtl = ttlDecision.ttl;
231
250
  if (req.system) {
232
251
  /* Wrap the system prompt as a cacheable content block.
233
252
  * Anthropic prompt caching (5-min TTL) charges 10% on cache
@@ -254,7 +273,7 @@ export class ClaudeClient {
254
273
  {
255
274
  type: 'text',
256
275
  text: req.system,
257
- cache_control: { type: 'ephemeral' },
276
+ cache_control: cacheControlFor(cacheTtl),
258
277
  },
259
278
  ];
260
279
  if (req.systemDynamic && req.systemDynamic.length > 0) {
@@ -271,8 +290,17 @@ export class ClaudeClient {
271
290
  * every turn even though the system block hit the cache. The
272
291
  * manifest is byte-identical turn after turn (it only changes
273
292
  * when MCP bridges toggle), so this is a clean, high-hit segment
274
- * ahead of the system block. TTL is the default 5min ephemeral
275
- * to match the system block + avoid the 1h write-cost premium. */
293
+ * ahead of the system block.
294
+ *
295
+ * PND-272 (2026-11-03) -- la ventana ya no es la constante de 5
296
+ * minutos. Decia "to match the system block + avoid the 1h
297
+ * write-cost premium", y era cierto para turnos cortos
298
+ * consecutivos: a 5 minutos la escritura cuesta 1,25x y a una hora
299
+ * 2x. Lo que no preveia es el turno largo -- medidos entre 99 y 169
300
+ * minutos en una sesion de Urazuke -- donde el prefijo vence muchas
301
+ * veces y cada vencimiento re-escribe a 1,25x lo que podria leerse
302
+ * a 0,10x: doce veces de mas. Ahora la elige chooseCacheTtl() con
303
+ * el hueco medido, y sigue dando 5m cuando los turnos son cortos. */
276
304
  const mapped = req.tools.map((t) => ({
277
305
  name: t.name,
278
306
  description: t.description,
@@ -280,7 +308,7 @@ export class ClaudeClient {
280
308
  }));
281
309
  const last = mapped[mapped.length - 1];
282
310
  if (last)
283
- last['cache_control'] = { type: 'ephemeral' };
311
+ last['cache_control'] = cacheControlFor(cacheTtl);
284
312
  body['tools'] = mapped;
285
313
  }
286
314
  /* Pendiente B -- token streaming. Opt-in via req.stream (panel SSE),
@@ -355,7 +383,17 @@ export class ClaudeClient {
355
383
  else {
356
384
  data = await resp.json();
357
385
  }
358
- const roundIn = data.usage?.input_tokens ?? 0;
386
+ /* PND-273 -- la entrada son TRES cosas con precios que difieren doce
387
+ * veces, y hasta este cambio este camino registraba solo los tokens
388
+ * frescos: los de cache no aparecian en ninguna parte, asi que el
389
+ * reporte de costos SUBESTIMABA el gasto real (y el camino CLI, que
390
+ * sumaba los tres en la misma bolsa, informaba otra cosa con el mismo
391
+ * nombre). Ahora los dos caminos informan lo mismo: tokens_in es el
392
+ * TOTAL de entrada y los tres componentes van al lado. */
393
+ const roundFresh = data.usage?.input_tokens ?? 0;
394
+ const roundCacheW = data.usage?.cache_creation_input_tokens ?? 0;
395
+ const roundCacheR = data.usage?.cache_read_input_tokens ?? 0;
396
+ const roundIn = roundFresh + roundCacheW + roundCacheR;
359
397
  const roundOut = data.usage?.output_tokens ?? 0;
360
398
  totalTokensIn += roundIn;
361
399
  totalTokensOut += roundOut;
@@ -367,6 +405,10 @@ export class ClaudeClient {
367
405
  model: usedModel,
368
406
  tokens_in: roundIn,
369
407
  tokens_out: roundOut,
408
+ tokens_fresh: roundFresh,
409
+ tokens_cache_write: roundCacheW,
410
+ tokens_cache_read: roundCacheR,
411
+ cache_ttl: cacheTtl,
370
412
  label: req.usageLabel,
371
413
  project_root: req.projectRoot,
372
414
  });
@@ -1 +1 @@
1
- {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/chat/claude.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/chat/claude.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAG1C,OAAO,EAAE,WAAW,EAAkB,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AAC7F,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAiB,MAAM,gBAAgB,CAAC;AAEjG,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAC3C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAED,MAAM,OAAO,cAAe,SAAQ,KAAK;IACvC,MAAM,CAAS;IACf,YAAY,OAAe,EAAE,MAAc;QACzC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AAuOD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,QAAiB;IACnD,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;IAE/D;;sEAEkE;IAClE,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC;QAC5D,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE;YAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,uDAAuD;IACzD,CAAC;IAED;;iCAE6B;IAC7B,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;QAC3D,IAAI,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACrC,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;gBAAE,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;QACxD,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP;;;uEAG+D;IACjE,CAAC;IAED,uBAAuB;IACvB,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC;WACvC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAChD,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC;IAE5D,qBAAqB;IACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,aAAa,CAAC,CAAC;IACvD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACjD,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QAC3B,IAAI,OAAO,KAAK,EAAE;YAAE,OAAO,OAAO,CAAC;IACrC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ;YAAE,MAAM,GAAG,CAAC;IAClE,CAAC;IAED;;;;;mDAK+C;IAC/C,MAAM,GAAG,GAAG,IAAI,kBAAkB,CAChC,iDAAiD;UAC/C,0EAA0E;UAC1E,0EAA0E;UAC1E,2CAA2C;UAC3C,iDAAiD;UACjD,iDAAiD,CACpD,CAAC;IACF;0DACsD;IACtD,MAAM,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC;IACzF,GAAsD,CAAC,WAAW,GAAG,gBAAgB,CAAC,kBAAkB,EAAE;QACzG,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,UAAU;KACnE,CAAC,CAAC;IACH,MAAM,GAAG,CAAC;AACZ,CAAC;AAED,MAAM,aAAa,GAAG,mBAAmB,CAAC;AAsB1C,MAAM,OAAO,YAAY;IACf,MAAM,CAAgB;IACtB,SAAS,CAAe;IACxB,YAAY,CAAS;IACrB,OAAO,CAAS;IACxB;;8EAE0E;IAClE,GAAG,GAAG,IAAI,eAAe,EAAE,CAAC;IAEpC,YAAY,OAA4B,EAAE;QACxC,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,2BAA2B,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACtH,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC;QAClC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC;QACzC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,aAAa,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,GAAsB;QAC/B,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YACzB,IAAI,CAAC,MAAM,GAAG,MAAM,aAAa,EAAE,CAAC;QACtC,CAAC;QACD,IAAI,GAAG,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;QACzE,CAAC;QACD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC;QAC7C,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,IAAI,IAAI,CAAC;QACxC;;;;qEAI6D;QAC7D,MAAM,EACJ,gBAAgB,EAAE,kBAAkB,EAAE,yBAAyB,EAC/D,kBAAkB,GACnB,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,MAAM,gBAAgB,EAAE,CAAC;QACxC,MAAM,kBAAkB,GAAG,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC;QAC3D;;sEAE8D;QAC9D,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,CAAC,gBAAgB,KAAK,IAAI,CAAC;QAC1F,MAAM,OAAO,GAAG,cAAc;YAC5B,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,UAAU;YACnC,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC;QACnC,IAAI,SAAS,GAAG,GAAG,CAAC,aAAa,IAAI,OAAO,CAAC;QAC7C,IAAI,cAAc,GAAkB,IAAI,CAAC;QAEzC;;4DAEoD;QACpD,MAAM,QAAQ,GAAiB,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACpD;;8EAEkE;YAClE,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnE,MAAM,MAAM,GAAsB,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC1D,IAAI,EAAE,OAAgB;oBACtB,MAAM,EAAE,EAAE,IAAI,EAAE,QAAiB,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;iBAC5E,CAAC,CAAC,CAAC;gBACJ,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;oBAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;gBACtF,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;YAC3C,CAAC;YACD,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,MAAM,UAAU,GAAgB,EAAE,CAAC;QACnC;+BACuB;QACvB,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,cAAc,GAAG,CAAC,CAAC;QACvB,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,IAAI,SAAS,GAAG,KAAK,CAAC;QAEtB;;;;;;oCAM4B;QAC5B,MAAM,YAAY,GAAG,CAAC,CAAC;QACvB,IAAI,YAAY,GAAkB,IAAI,CAAC;QACvC,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB;;0EAEkE;QAClE,IAAI,QAAQ,GAAa,IAAI,CAAC;QAE9B;;;;;qEAK6D;QAC7D,MAAM,SAAS,GAAG,MAAM,qBAAqB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAElE,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC;YAChD;gFACoE;YACpE,IAAI,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;gBAAC,WAAW,GAAG,IAAI,CAAC;gBAAC,MAAM;YAAC,CAAC;YACvD,MAAM,IAAI,GAA4B;gBACpC,KAAK;gBACL,UAAU,EAAE,SAAS;gBACrB,QAAQ;aACT,CAAC;YACF;;;;;;8EAMkE;YAClE,MAAM,SAAS,GAAG,CAAC,MAAM,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;YACvD,MAAM,WAAW,GAAG,cAAc,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC9E,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC;YAC3B,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;gBACf;;;;;;;;;;;;;;;;;;;;gFAoBgE;gBAChE,MAAM,YAAY,GAAmC;oBACnD;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,GAAG,CAAC,MAAM;wBAChB,aAAa,EAAE,eAAe,CAAC,QAAQ,CAAC;qBACzC;iBACF,CAAC;gBACF,IAAI,GAAG,CAAC,aAAa,IAAI,GAAG,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACtD,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC;gBAC/D,CAAC;gBACD,IAAI,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC;YAChC,CAAC;YACD,IAAI,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtC;;;;;;;;;;;;;;;;;;sFAkBsE;gBACtE,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACnC,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,WAAW,EAAE,CAAC,CAAC,WAAW;oBAC1B,YAAY,EAAE,CAAC,CAAC,YAAY;iBAC7B,CAAC,CAAmC,CAAC;gBACtC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBACvC,IAAI,IAAI;oBAAE,IAAI,CAAC,eAAe,CAAC,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;gBAC5D,IAAI,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC;YACzB,CAAC;YAED;;sEAE0D;YAC1D,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,KAAK,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,KAAK,GAAG,CAAC;YACpF,IAAI,UAAU;gBAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;YAEtC,IAAI,IAAI,CAAC;YACT;;;gFAGoE;YACpE,IAAI,UAAU,GAAG,CAAC,CAAC;YACnB,SAAS,CAAC;gBACR,IAAI,CAAC;oBACH,IAAI,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,GAAG,cAAc,EAAE;wBACzD,MAAM,EAAE,MAAM;wBACd,OAAO,EAAE;4BACP,cAAc,EAAO,kBAAkB;4BACvC,WAAW,EAAU,IAAI,CAAC,MAAgB;4BAC1C,mBAAmB,EAAE,YAAY;yBAClC;wBACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;wBAC1B,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qBAC9C,CAAC,CAAC;oBACH,MAAM;gBACR,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX;6EACyD;oBACzD,IAAI,GAAG,CAAC,MAAM,EAAE,OAAO,IAAI,CAAC,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,EAAE,CAAC;wBAC3E,WAAW,GAAG,IAAI,CAAC;wBACnB,MAAM;oBACR,CAAC;oBACD,IAAI,UAAU,GAAG,CAAC,IAAI,uBAAuB,CAAC,CAAC,CAAC,EAAE,CAAC;wBACjD,UAAU,EAAE,CAAC;wBACb,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;wBACvE,IAAI,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;4BAAC,WAAW,GAAG,IAAI,CAAC;4BAAC,MAAM;wBAAC,CAAC;wBACvD,SAAS;oBACX,CAAC;oBACD,MAAM,IAAI,cAAc,CACtB,+CAA+C,GAAG,gBAAgB,CAAC,CAAC,CAAC;0BACnE,oCAAoC,EAAE,CAAC,CAC1C,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,IAAI,WAAW;gBAAE,MAAM;YACvB,IAAI,CAAC,IAAI;gBAAE,MAAM,CAAC,wDAAwD;YAC1E,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gBACb,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACpC,MAAM,IAAI,cAAc,CACtB,aAAa,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EACzD,IAAI,CAAC,MAAM,CACZ,CAAC;YACJ,CAAC;YACD,IAAI,IAYH,CAAC;YACF,IAAI,UAAU,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBAC5B;mFACmE;gBACnE,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;gBACrE,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;oBAC9D,GAAG,CAAC,aAAa,EAAE,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;gBAC1D,CAAC,CAAC,CAAC;gBACH,IAAI,GAAG;oBACL,OAAO,EAAE,QAAQ,CAAC,OAA4B;oBAC9C,KAAK,EAAE,QAAQ,CAAC,KAAK;oBACrB,KAAK,EAAE,QAAQ,CAAC,KAAK;oBACrB,WAAW,EAAE,QAAQ,CAAC,WAAW;iBAClC,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAiB,CAAC;YAC1C,CAAC;YACD;;;;;;sEAM0D;YAC1D,MAAM,UAAU,GAAO,IAAI,CAAC,KAAK,EAAE,YAAY,IAAI,CAAC,CAAC;YACrD,MAAM,WAAW,GAAM,IAAI,CAAC,KAAK,EAAE,2BAA2B,IAAI,CAAC,CAAC;YACpE,MAAM,WAAW,GAAM,IAAI,CAAC,KAAK,EAAE,uBAAuB,IAAI,CAAC,CAAC;YAChE,MAAM,OAAO,GAAI,UAAU,GAAG,WAAW,GAAG,WAAW,CAAC;YACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,EAAE,aAAa,IAAI,CAAC,CAAC;YAChD,aAAa,IAAK,OAAO,CAAC;YAC1B,cAAc,IAAI,QAAQ,CAAC;YAC3B,SAAS,GAAG,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC;YAEhC;oDACwC;YACxC,KAAK,WAAW,CAAC;gBACf,IAAI,EAAS,GAAG,CAAC,SAAS,IAAI,aAAa;gBAC3C,KAAK,EAAQ,SAAS;gBACtB,SAAS,EAAI,OAAO;gBACpB,UAAU,EAAG,QAAQ;gBACrB,YAAY,EAAQ,UAAU;gBAC9B,kBAAkB,EAAE,WAAW;gBAC/B,iBAAiB,EAAG,WAAW;gBAC/B,SAAS,EAAW,QAAQ;gBAC5B,KAAK,EAAQ,GAAG,CAAC,UAAU;gBAC3B,YAAY,EAAC,GAAG,CAAC,WAAW;aAC7B,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;YAClC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAuC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;YAChG,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAuF,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;YAClJ,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAElD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;gBAC7D,wDAAwD;gBACxD;;;0DAG0C;gBAC1C,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,gCAAgC,CAAC,CAAC;gBAC5E,MAAM,KAAK,GAAG,gBAAgB,CAAC;oBAC7B,aAAa,EAAE,QAAQ;oBACvB,UAAU,EAAK,SAAS;oBACxB,WAAW,EAAI,IAAI,CAAC,WAAW;iBAChC,CAAC,CAAC;gBACH,OAAO;oBACL,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAG,aAAa;oBACxB,SAAS,EAAE,cAAc;oBACzB,KAAK,EAAM,SAAS;oBACpB,UAAU;oBACV,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACtC,UAAU,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;wBAC5B,SAAS,EAAE,IAAI;wBACf,MAAM,EAAK,KAAK,CAAC,MAAM;wBACvB,aAAa,EAAE,KAAK,CAAC,aAAa;wBAClC,UAAU,EAAK,KAAK,CAAC,UAAU;qBAChC,CAAC,CAAC,CAAC,SAAS;iBACd,CAAC;YACJ,CAAC;YAED;;;;;;gFAMoE;YACpE,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gBACtD,GAAG,CAAC,aAAa,EAAE,CAAC,sBAAsB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;YACzE,CAAC;YAED;kEACsD;YACtD,IAAI,cAAc,KAAK,IAAI,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnD,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAC1B,IAAI,KAAK,EAAE,CAAC;oBACV,MAAM,SAAS,GAAI,KAAK,CAAC,KAA8B,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;oBACpF,MAAM,MAAM,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;oBAC7C,cAAc,GAAG,MAAM,CAAC;oBACxB;;;uCAGmB;oBACnB,IAAI,CAAC,kBAAkB,EAAE,CAAC;wBACxB,MAAM,SAAS,GAAG,yBAAyB,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;wBAC5E,IAAI,SAAS,GAAG,SAAS;4BAAE,SAAS,GAAG,SAAS,CAAC;oBACnD,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB;;;;6BAIa;gBACb,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAC5B,MAAM,QAAQ,GAAG,OAAO;oBACtB,CAAC,CAAC,CAAE,OAAO,CAAC,KAA8B,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,IAAI,SAAS,CAAC;oBAChF,CAAC,CAAC,SAAS,CAAC;gBACd,MAAM,OAAO,GACX,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oBACnC,kBAAkB,CAAC;wBACjB,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC,eAAe;wBAC3C,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,QAAQ;qBACjD,CAAC,CAAC;gBACL,OAAO;oBACL,IAAI,EAAE,OAAO;oBACb,QAAQ,EAAG,aAAa;oBACxB,SAAS,EAAE,cAAc;oBACzB,KAAK,EAAM,SAAS;oBACpB,UAAU;oBACV,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACvC,CAAC;YACJ,CAAC;YAED;oEACwD;YACxD,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;YAEtD;uCAC2B;YAC3B,MAAM,gBAAgB,GAAsB,EAAE,CAAC;YAC/C,IAAI,cAAc,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;YACzC,IAAI,SAAS,GAAkB,IAAI,CAAC;YACpC,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;gBAC1B,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,OAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;gBAChD,UAAU,CAAC,IAAI,CAAC;oBACd,IAAI,EAAE,EAAE,CAAC,IAAI;oBACb,KAAK,EAAE,EAAE,CAAC,KAAK;oBACf,MAAM,EAAE,CAAC,CAAC,MAAM;oBAChB,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACzC,WAAW,EAAE,EAAE,CAAC,EAAE;iBACnB,CAAC,CAAC;gBACH,IAAI,SAAiB,CAAC;gBACtB,IAAI,CAAC;oBAAC,SAAS,GAAG,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBAAC,CAAC;gBACvF,MAAM,CAAC;oBAAC,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBAAC,CAAC;gBACvC,gBAAgB,CAAC,IAAI,CAAC;oBACpB,IAAI,EAAE,aAAa;oBACnB,WAAW,EAAE,EAAE,CAAC,EAAE;oBAClB,OAAO,EAAE,aAAa,CAAC,SAAS,EAAE,SAAS,CAAC;oBAC5C,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBAC1C,CAAC,CAAC;gBACH,IAAI,CAAC,CAAC,CAAC,QAAQ;oBAAE,cAAc,GAAG,KAAK,CAAC;gBACxC,MAAM,MAAM,GAAI,EAAE,CAAC,KAA8B,CAAC,OAAO,IAAI,EAAE,CAAC,IAAI,CAAC;gBACrE,IAAI,SAAS,KAAK,IAAI;oBAAE,SAAS,GAAG,MAAM,CAAC;YAC7C,CAAC;YAED,8DAA8D;YAC9D,IAAI,cAAc,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBACzC,UAAU,GAAG,SAAS,KAAK,YAAY,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC7D,YAAY,GAAG,SAAS,CAAC;YAC3B,CAAC;iBAAM,CAAC;gBACN,UAAU,GAAG,CAAC,CAAC;gBACf,YAAY,GAAG,IAAI,CAAC;YACtB,CAAC;YACD,IAAI,UAAU,IAAI,YAAY,EAAE,CAAC;gBAC/B,MAAM,OAAO,GACX,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;oBACnC,wBAAwB,GAAG,YAAY,GAAG,UAAU,GAAG,UAAU;oBACjE,6DAA6D;oBAC7D,2DAA2D;oBAC3D,2DAA2D;oBAC3D,qBAAqB,CAAC;gBACxB,OAAO;oBACL,IAAI,EAAE,OAAO;oBACb,QAAQ,EAAG,aAAa;oBACxB,SAAS,EAAE,cAAc;oBACzB,KAAK,EAAM,SAAS;oBACpB,UAAU;oBACV,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACvC,CAAC;YACJ,CAAC;YAED;;;;qDAIyC;YACzC,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrD,IAAI,KAAK,EAAE,CAAC;gBACV,gBAAgB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;gBACrD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;YAED,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC,CAAC;YAE3D;;;yEAG6D;YAC7D,8BAA8B,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QACjE,CAAC;QAED;kEAC0D;QAC1D,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,OAAO,GAAG,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;gBACtD,CAAC,CAAC,QAAQ,GAAG,oCAAoC;gBACjD,CAAC,CAAC,gFAAgF,CAAC;YACrF,OAAO;gBACL,IAAI,EAAE,OAAO;gBACb,QAAQ,EAAG,aAAa;gBACxB,SAAS,EAAE,cAAc;gBACzB,KAAK,EAAM,SAAS;gBACpB,UAAU;gBACV,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtC,WAAW,EAAE,IAAI;aAClB,CAAC;QACJ,CAAC;QAED,qEAAqE;QACrE,MAAM,IAAI,cAAc,CAAC,uCAAuC,EAAE,GAAG,CAAC,CAAC;IACzE,CAAC;CACF;AAED,KAAK,UAAU,QAAQ,CAAC,CAAW;IACjC,IAAI,CAAC;QAAC,OAAO,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,WAAW,CAAC;IAAC,CAAC;AAC9D,CAAC;AAED;;4CAE4C;AAC5C,MAAM,UAAU,uBAAuB,CAAC,CAAU;IAChD,IAAI,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACxC,MAAM,KAAK,GAAI,CAAuC,CAAC,KAAK,CAAC;IAC7D,MAAM,IAAI,GAAI,CAA2B,CAAC,IAAI,IAAI,KAAK,EAAE,IAAI,IAAI,EAAE,CAAC;IACpE,MAAM,SAAS,GAAG;QAChB,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc;QACnE,OAAO,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,yBAAyB;QAC/E,sBAAsB;KACvB,CAAC;IACF,IAAI,IAAI,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAClD,+DAA+D;IAC/D,OAAO,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;AACzE,CAAC;AAED;sCACsC;AACtC,MAAM,UAAU,gBAAgB,CAAC,CAAU;IACzC,MAAM,KAAK,GAAI,CAAuC,EAAE,KAAK,CAAC;IAC9D,MAAM,IAAI,GAAI,CAA2B,EAAE,IAAI,IAAI,KAAK,EAAE,IAAI,CAAC;IAC/D,IAAI,IAAI;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,OAAO;QAAE,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACnE,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -94,6 +94,30 @@ export interface ClaudeCliClientOptions {
94
94
  * a canned stdout JSONL stream without running the real binary. */
95
95
  spawnImpl?: (cmd: string, args: string[], opts: Record<string, unknown>) => ChildProcess;
96
96
  }
97
+ /**
98
+ * Pegar la cola dinamica al FINAL del mensaje que va por stdin (PND-272).
99
+ *
100
+ * Por que al final del mensaje y no en el prompt de sistema: el prompt de
101
+ * sistema agregado se renderiza temprano y tiene que quedar byte a byte
102
+ * igual entre turnos para que la cache se LEA en vez de re-escribirse. El
103
+ * mensaje de usuario, en cambio, cambia todos los turnos por definicion,
104
+ * asi que la cola ahi no invalida nada que no estuviera invalidado ya.
105
+ *
106
+ * Por que rotulada con <system-reminder>: la cola es contexto del sistema
107
+ * (estado del workflow, recorte del grafo, postura de aprobacion), no
108
+ * palabras del usuario. El rotulo es el que usa el propio Claude Code para
109
+ * esto, asi que el modelo ya sabe leerlo con esa autoridad: la cola cambia
110
+ * de LUGAR, no de autoridad.
111
+ *
112
+ * Una coincidencia que vale aclarar para el que lea esto despues:
113
+ * BRAIN_DIAG_MARKERS incluye /<system-reminder>/i, pero eso mira el TEXTO DE
114
+ * LA RESPUESTA (un marcador de andamiaje que se filtro al usuario), no el
115
+ * prompt. El propio Claude Code ya envuelve contexto en ese rotulo dentro de
116
+ * los turnos de usuario -- se ve en el prompt de cualquier sesion -- asi que
117
+ * el detector y el rotulo ya convivian antes de este cambio. Usar el MISMO
118
+ * rotulo que el arnes es la opcion con menos novedad, no una nueva.
119
+ */
120
+ export declare function promptConColaDinamica(prompt: string, systemDynamic?: string): string;
97
121
  /** True when `m` is a Claude model `claude -p` accepts (full id or the
98
122
  * opus/sonnet/haiku aliases). Non-Claude ids (gemini, gpt, ...) must NOT
99
123
  * be passed to claude -p -- Plan mode always runs the Claude
@@ -1 +1 @@
1
- {"version":3,"file":"claude_cli.d.ts","sourceRoot":"","sources":["../../src/chat/claude_cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude_cli.d.ts","sourceRoot":"","sources":["../../src/chat/claude_cli.ts"],"names":[],"mappings":"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"}