@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.
- package/dist/chat/cache_ttl.d.ts +143 -0
- package/dist/chat/cache_ttl.d.ts.map +1 -0
- package/dist/chat/cache_ttl.js +165 -0
- package/dist/chat/cache_ttl.js.map +1 -0
- package/dist/chat/claude.d.ts +1 -0
- package/dist/chat/claude.d.ts.map +1 -1
- package/dist/chat/claude.js +47 -5
- package/dist/chat/claude.js.map +1 -1
- package/dist/chat/claude_cli.d.ts +24 -0
- package/dist/chat/claude_cli.d.ts.map +1 -1
- package/dist/chat/claude_cli.js +76 -10
- package/dist/chat/claude_cli.js.map +1 -1
- package/dist/chat/panel.d.ts.map +1 -1
- package/dist/chat/panel.js +128 -17
- package/dist/chat/panel.js.map +1 -1
- package/dist/chat/server.d.ts.map +1 -1
- package/dist/chat/server.js +13 -1
- package/dist/chat/server.js.map +1 -1
- package/dist/chat/tools/evidence.d.ts +15 -0
- package/dist/chat/tools/evidence.d.ts.map +1 -1
- package/dist/chat/tools/evidence.js +16 -0
- package/dist/chat/tools/evidence.js.map +1 -1
- package/dist/chat/tools/reader.d.ts.map +1 -1
- package/dist/chat/tools/reader.js +24 -4
- package/dist/chat/tools/reader.js.map +1 -1
- package/dist/chat/tools/session_verbs.d.ts +3 -1
- package/dist/chat/tools/session_verbs.d.ts.map +1 -1
- package/dist/chat/tools/session_verbs.js +65 -2
- package/dist/chat/tools/session_verbs.js.map +1 -1
- package/dist/chat/tools/shell.d.ts +11 -0
- package/dist/chat/tools/shell.d.ts.map +1 -1
- package/dist/chat/tools/shell.js +46 -1
- package/dist/chat/tools/shell.js.map +1 -1
- package/dist/commands/chat.d.ts +6 -0
- package/dist/commands/chat.d.ts.map +1 -1
- package/dist/commands/chat.js +25 -0
- package/dist/commands/chat.js.map +1 -1
- package/dist/commands/limits.d.ts.map +1 -1
- package/dist/commands/limits.js +77 -6
- package/dist/commands/limits.js.map +1 -1
- package/dist/commands/operate.d.ts.map +1 -1
- package/dist/commands/operate.js +42 -0
- package/dist/commands/operate.js.map +1 -1
- package/dist/commands/urazuke.d.ts.map +1 -1
- package/dist/commands/urazuke.js +189 -9
- package/dist/commands/urazuke.js.map +1 -1
- package/dist/core/brain_pin.d.ts +74 -0
- package/dist/core/brain_pin.d.ts.map +1 -0
- package/dist/core/brain_pin.js +113 -0
- package/dist/core/brain_pin.js.map +1 -0
- package/dist/core/cost_router.d.ts.map +1 -1
- package/dist/core/cost_router.js +56 -0
- package/dist/core/cost_router.js.map +1 -1
- package/dist/core/limits_config.d.ts +19 -0
- package/dist/core/limits_config.d.ts.map +1 -1
- package/dist/core/limits_config.js +38 -0
- package/dist/core/limits_config.js.map +1 -1
- package/dist/core/machine_files.d.ts +27 -0
- package/dist/core/machine_files.d.ts.map +1 -0
- package/dist/core/machine_files.js +97 -0
- package/dist/core/machine_files.js.map +1 -0
- package/dist/docs/doctrine/session-orchestration.md +109 -91
- package/dist/docs/doctrine/urazuke.md +221 -221
- package/dist/llm/sse_stream.d.ts +2 -0
- package/dist/llm/sse_stream.d.ts.map +1 -1
- package/dist/llm/sse_stream.js +10 -1
- package/dist/llm/sse_stream.js.map +1 -1
- package/dist/nac3/dispatch_log.d.ts +16 -1
- package/dist/nac3/dispatch_log.d.ts.map +1 -1
- package/dist/nac3/dispatch_log.js +29 -10
- package/dist/nac3/dispatch_log.js.map +1 -1
- package/dist/nac3/internal_manifest.d.ts.map +1 -1
- package/dist/nac3/internal_manifest.js +2 -0
- package/dist/nac3/internal_manifest.js.map +1 -1
- package/dist/telemetry/battery_events.d.ts +91 -0
- package/dist/telemetry/battery_events.d.ts.map +1 -0
- package/dist/telemetry/battery_events.js +84 -0
- package/dist/telemetry/battery_events.js.map +1 -0
- package/dist/telemetry/usage.d.ts +107 -0
- package/dist/telemetry/usage.d.ts.map +1 -1
- package/dist/telemetry/usage.js +172 -13
- package/dist/telemetry/usage.js.map +1 -1
- package/dist/urazuke/evidence.d.ts +5 -0
- package/dist/urazuke/evidence.d.ts.map +1 -1
- package/dist/urazuke/evidence.js +2 -0
- package/dist/urazuke/evidence.js.map +1 -1
- package/dist/urazuke/freeze.d.ts.map +1 -1
- package/dist/urazuke/freeze.js +82 -16
- package/dist/urazuke/freeze.js.map +1 -1
- package/dist/urazuke/gates_data.d.ts +4 -1
- package/dist/urazuke/gates_data.d.ts.map +1 -1
- package/dist/urazuke/gates_data.js +7 -1
- package/dist/urazuke/gates_data.js.map +1 -1
- package/dist/urazuke/gates_ledger.d.ts +25 -1
- package/dist/urazuke/gates_ledger.d.ts.map +1 -1
- package/dist/urazuke/gates_ledger.js +30 -6
- package/dist/urazuke/gates_ledger.js.map +1 -1
- package/dist/urazuke/method_config.d.ts +116 -0
- package/dist/urazuke/method_config.d.ts.map +1 -0
- package/dist/urazuke/method_config.js +328 -0
- package/dist/urazuke/method_config.js.map +1 -0
- package/dist/urazuke/prompts_client.d.ts +42 -12
- package/dist/urazuke/prompts_client.d.ts.map +1 -1
- package/dist/urazuke/prompts_client.js +120 -16
- package/dist/urazuke/prompts_client.js.map +1 -1
- package/dist/urazuke/prompts_freeze.d.ts +186 -0
- package/dist/urazuke/prompts_freeze.d.ts.map +1 -0
- package/dist/urazuke/prompts_freeze.js +498 -0
- package/dist/urazuke/prompts_freeze.js.map +1 -0
- package/dist/urazuke/receipts.d.ts +28 -1
- package/dist/urazuke/receipts.d.ts.map +1 -1
- package/dist/urazuke/receipts.js +59 -6
- package/dist/urazuke/receipts.js.map +1 -1
- package/dist/urazuke/start.d.ts.map +1 -1
- package/dist/urazuke/start.js +42 -2
- package/dist/urazuke/start.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/docs/doctrine/session-orchestration.md +109 -91
- package/docs/doctrine/urazuke.md +221 -221
- 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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"}
|
package/dist/chat/claude.d.ts
CHANGED
|
@@ -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":"AA6BA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../src/chat/claude.ts"],"names":[],"mappings":"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"}
|
package/dist/chat/claude.js
CHANGED
|
@@ -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:
|
|
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.
|
|
275
|
-
*
|
|
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'] =
|
|
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
|
-
|
|
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
|
});
|
package/dist/chat/claude.js.map
CHANGED
|
@@ -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":"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"}
|
|
@@ -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":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,OAAO,EAAS,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAe9D,OAAO,EAA6B,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAGrF,OAAO,EAAkB,KAAK,aAAa,EAAoB,KAAK,iBAAiB,EAAE,KAAK,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAqBpI;;;iEAGiE;AACjE,wBAAgB,qBAAqB,CAAC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GAAG,OAAO,CAGpG;AAoBD;;;;;;;;;qCASqC;AACrC,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAKlD,CAAC;AAEF,MAAM,WAAW,sBAAsB;IACrC,+EAA+E;IAC/E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;0EACsE;IACtE,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;mCAC+B;IAC/B,cAAc,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;IACjD,6DAA6D;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;yEAEqE;IACrE,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;kEAE8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;+DAI2D;IAC3D,WAAW,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9C;wEACoE;IACpE,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,YAAY,CAAC;CAC1F;
|
|
1
|
+
{"version":3,"file":"claude_cli.d.ts","sourceRoot":"","sources":["../../src/chat/claude_cli.ts"],"names":[],"mappings":"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"}
|