@nac3/forge-cli 1.4.0 → 1.6.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 (97) hide show
  1. package/dist/bin/heap_bootstrap.d.ts +34 -0
  2. package/dist/bin/heap_bootstrap.d.ts.map +1 -0
  3. package/dist/bin/heap_bootstrap.js +134 -0
  4. package/dist/bin/heap_bootstrap.js.map +1 -0
  5. package/dist/bin/yf.js +30 -21
  6. package/dist/bin/yf.js.map +1 -1
  7. package/dist/chat/claude.d.ts.map +1 -1
  8. package/dist/chat/claude.js +20 -1
  9. package/dist/chat/claude.js.map +1 -1
  10. package/dist/chat/claude_cli.d.ts.map +1 -1
  11. package/dist/chat/claude_cli.js +22 -3
  12. package/dist/chat/claude_cli.js.map +1 -1
  13. package/dist/chat/graph_auto_ingest.d.ts +3 -0
  14. package/dist/chat/graph_auto_ingest.d.ts.map +1 -1
  15. package/dist/chat/graph_auto_ingest.js +18 -0
  16. package/dist/chat/graph_auto_ingest.js.map +1 -1
  17. package/dist/chat/graph_component_watcher.d.ts +41 -0
  18. package/dist/chat/graph_component_watcher.d.ts.map +1 -1
  19. package/dist/chat/graph_component_watcher.js +144 -2
  20. package/dist/chat/graph_component_watcher.js.map +1 -1
  21. package/dist/chat/graph_snapshot.d.ts +8 -0
  22. package/dist/chat/graph_snapshot.d.ts.map +1 -1
  23. package/dist/chat/graph_snapshot.js +142 -44
  24. package/dist/chat/graph_snapshot.js.map +1 -1
  25. package/dist/chat/panel.d.ts.map +1 -1
  26. package/dist/chat/panel.js +12728 -12719
  27. package/dist/chat/panel.js.map +1 -1
  28. package/dist/chat/persistence.d.ts.map +1 -1
  29. package/dist/chat/persistence.js +18 -8
  30. package/dist/chat/persistence.js.map +1 -1
  31. package/dist/chat/server.d.ts.map +1 -1
  32. package/dist/chat/server.js +22 -8
  33. package/dist/chat/server.js.map +1 -1
  34. package/dist/chat/session_store.d.ts +13 -0
  35. package/dist/chat/session_store.d.ts.map +1 -1
  36. package/dist/chat/session_store.js +36 -1
  37. package/dist/chat/session_store.js.map +1 -1
  38. package/dist/commands/chat.d.ts.map +1 -1
  39. package/dist/commands/chat.js +59 -0
  40. package/dist/commands/chat.js.map +1 -1
  41. package/dist/core/brain_behaviour.d.ts.map +1 -1
  42. package/dist/core/brain_behaviour.js +8 -1
  43. package/dist/core/brain_behaviour.js.map +1 -1
  44. package/dist/core/brain_config.d.ts +23 -0
  45. package/dist/core/brain_config.d.ts.map +1 -1
  46. package/dist/core/brain_config.js +33 -0
  47. package/dist/core/brain_config.js.map +1 -1
  48. package/dist/core/federation_config.js +1 -1
  49. package/dist/core/federation_config.js.map +1 -1
  50. package/dist/core/heap_watch.d.ts +33 -0
  51. package/dist/core/heap_watch.d.ts.map +1 -0
  52. package/dist/core/heap_watch.js +82 -0
  53. package/dist/core/heap_watch.js.map +1 -0
  54. package/dist/core/keys_envelope.d.ts +1 -1
  55. package/dist/core/keys_envelope.d.ts.map +1 -1
  56. package/dist/core/keys_envelope.js.map +1 -1
  57. package/dist/core/provider_models.d.ts +5 -0
  58. package/dist/core/provider_models.d.ts.map +1 -1
  59. package/dist/core/provider_models.js +17 -4
  60. package/dist/core/provider_models.js.map +1 -1
  61. package/dist/lan/announce.d.ts +53 -0
  62. package/dist/lan/announce.d.ts.map +1 -0
  63. package/dist/lan/announce.js +111 -0
  64. package/dist/lan/announce.js.map +1 -0
  65. package/dist/llm/cohere_client.d.ts.map +1 -1
  66. package/dist/llm/cohere_client.js +13 -3
  67. package/dist/llm/cohere_client.js.map +1 -1
  68. package/dist/llm/context_compaction.d.ts +25 -0
  69. package/dist/llm/context_compaction.d.ts.map +1 -1
  70. package/dist/llm/context_compaction.js +81 -13
  71. package/dist/llm/context_compaction.js.map +1 -1
  72. package/dist/llm/deepseek_client.d.ts +10 -3
  73. package/dist/llm/deepseek_client.d.ts.map +1 -1
  74. package/dist/llm/deepseek_client.js +12 -2
  75. package/dist/llm/deepseek_client.js.map +1 -1
  76. package/dist/llm/gemini_client.d.ts.map +1 -1
  77. package/dist/llm/gemini_client.js +0 -0
  78. package/dist/llm/gemini_client.js.map +1 -1
  79. package/dist/llm/mistral_client.d.ts.map +1 -1
  80. package/dist/llm/mistral_client.js +13 -3
  81. package/dist/llm/mistral_client.js.map +1 -1
  82. package/dist/llm/ollama_client.d.ts.map +1 -1
  83. package/dist/llm/ollama_client.js +13 -3
  84. package/dist/llm/ollama_client.js.map +1 -1
  85. package/dist/llm/openai_client.d.ts.map +1 -1
  86. package/dist/llm/openai_client.js +13 -3
  87. package/dist/llm/openai_client.js.map +1 -1
  88. package/dist/llm/xai_client.d.ts.map +1 -1
  89. package/dist/llm/xai_client.js +13 -3
  90. package/dist/llm/xai_client.js.map +1 -1
  91. package/dist/qa/brain_matrix/brains.json +80 -80
  92. package/dist/semantic_graph/store.d.ts.map +1 -1
  93. package/dist/semantic_graph/store.js +119 -88
  94. package/dist/semantic_graph/store.js.map +1 -1
  95. package/dist/version.d.ts +1 -1
  96. package/dist/version.js +1 -1
  97. package/package.json +117 -117
@@ -15,6 +15,11 @@ export interface ModelListResult {
15
15
  }
16
16
  /** Test hook. */
17
17
  export declare function _resetProviderModelsCache(): void;
18
+ /** Providers con listado VIVO contra el API del proveedor. Es la fuente del
19
+ * invariante que exige que todo cerebro ofrecido tenga uno (ver
20
+ * `DAILY_BRAIN_PROVIDERS`): sin listado vivo el catalogo se pudre en
21
+ * silencio y el wizard termina escribiendo un modelo retirado. */
22
+ export declare const PROVIDERS_WITH_LIVE_LISTING: readonly BrainProvider[];
18
23
  /**
19
24
  * Lista los modelos disponibles para un provider. Nunca lanza:
20
25
  * degrada a la lista estatica con `source: 'static'`.
@@ -1 +1 @@
1
- {"version":3,"file":"provider_models.d.ts","sourceRoot":"","sources":["../../src/core/provider_models.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAwB,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAE7E,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,aAAa,CAAC;IACxB,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB;sDACkD;IAClD,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC1B;2CACuC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAyDD,iBAAiB;AACjB,wBAAgB,yBAAyB,IAAI,IAAI,CAAoB;AAgFrE;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,aAAa,EACvB,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAO,GACnF,OAAO,CAAC,eAAe,CAAC,CAwC1B"}
1
+ {"version":3,"file":"provider_models.d.ts","sourceRoot":"","sources":["../../src/core/provider_models.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAwB,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAE7E,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,aAAa,CAAC;IACxB,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB;sDACkD;IAClD,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC1B;2CACuC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AA4DD,iBAAiB;AACjB,wBAAgB,yBAAyB,IAAI,IAAI,CAAoB;AAErE;;;mEAGmE;AACnE,eAAO,MAAM,2BAA2B,EAAE,SAAS,aAAa,EAE/D,CAAC;AAgFF;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,aAAa,EACvB,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAO,GACnF,OAAO,CAAC,eAAe,CAAC,CA2C1B"}
@@ -35,8 +35,11 @@ const STATIC_MODELS = {
35
35
  { id: 'gpt-4o-mini', display_name: 'GPT-4o mini' },
36
36
  ],
37
37
  deepseek: [
38
- { id: 'deepseek-chat', display_name: 'DeepSeek Chat' },
39
- { id: 'deepseek-reasoner', display_name: 'DeepSeek Reasoner' },
38
+ /* 2026-09-21 -- deepseek-chat / deepseek-reasoner fueron retirados del
39
+ * API (GET /models ya no los devuelve). El catalogo vivo es flash +
40
+ * v4-pro; esta lista solo actua de fallback sin key. */
41
+ { id: 'deepseek-flash', display_name: 'DeepSeek Flash' },
42
+ { id: 'deepseek-v4-pro', display_name: 'DeepSeek V4 Pro' },
40
43
  ],
41
44
  xai: [
42
45
  { id: 'grok-3', display_name: 'Grok 3' },
@@ -70,6 +73,13 @@ const CACHE_TTL_MS = 10 * 60 * 1000;
70
73
  const _cache = new Map();
71
74
  /** Test hook. */
72
75
  export function _resetProviderModelsCache() { _cache.clear(); }
76
+ /** Providers con listado VIVO contra el API del proveedor. Es la fuente del
77
+ * invariante que exige que todo cerebro ofrecido tenga uno (ver
78
+ * `DAILY_BRAIN_PROVIDERS`): sin listado vivo el catalogo se pudre en
79
+ * silencio y el wizard termina escribiendo un modelo retirado. */
80
+ export const PROVIDERS_WITH_LIVE_LISTING = [
81
+ 'anthropic', 'openai', 'google_ai', 'deepseek',
82
+ ];
73
83
  function staticResult(provider, error) {
74
84
  const r = {
75
85
  provider,
@@ -183,8 +193,11 @@ export async function listProviderModels(provider, opts = {}) {
183
193
  case 'deepseek':
184
194
  models = await listDeepSeek(key, fetchImpl, timeoutMs);
185
195
  break;
186
- /* Providers sin endpoint de listado wireado todavia (xai/mistral/
187
- * cohere/qwen/zai/ollama): fallback estatico sin error. */
196
+ /* Providers SIN listado vivo (xai/mistral/cohere/qwen/zai/ollama):
197
+ * fallback estatico sin error. Ninguno de estos es un cerebro
198
+ * ofrecido -- ver DAILY_BRAIN_PROVIDERS y el invariante que lo
199
+ * testea: un cerebro que se ofrece TIENE que tener listado vivo, o
200
+ * su catalogo se pudre igual que le paso a DeepSeek. */
188
201
  default: return staticResult(provider);
189
202
  }
190
203
  if (models.length === 0)
@@ -1 +1 @@
1
- {"version":3,"file":"provider_models.js","sourceRoot":"","sources":["../../src/core/provider_models.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider_models.js","sourceRoot":"","sources":["../../src/core/provider_models.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Anunciador mDNS del panel -- la mitad que faltaba (PND-086, 2026-09-22).
3
+ *
4
+ * `src/lan/mdns_service.ts` implementa el protocolo completo (announce +
5
+ * browse de `_yujin-forge._tcp.local.`) desde hace meses, pero
6
+ * `attachAnnouncer` NO lo llamaba nadie fuera de los tests: el panel nunca
7
+ * anunciaba nada en la red. Por eso el descubrimiento del celular cae
8
+ * siempre al polling de hosts cargados a mano -- y por eso habilitar
9
+ * zeroconf nativo en la app, sola, no habria cambiado nada: no habia a quien
10
+ * descubrir.
11
+ *
12
+ * Esto levanta el socket multicast, responde las consultas PTR y manda un
13
+ * anuncio no solicitado al arrancar (para que un cliente que ya estaba
14
+ * escuchando se entere sin tener que preguntar).
15
+ *
16
+ * Reglas de la casa:
17
+ * - Nunca tumba el panel. Si no hay red, si el puerto 5353 esta tomado por
18
+ * otro responder (Bonjour de Apple, avahi) o si el SO niega el multicast,
19
+ * se degrada a "no anuncio" y sigue.
20
+ * - Opt-out por env: `YF_NO_MDNS=1`.
21
+ *
22
+ * ASCII-only.
23
+ */
24
+ import os from 'node:os';
25
+ import { type SocketLike } from './mdns_service.js';
26
+ export interface AnnouncerHandle {
27
+ /** true si el socket quedo escuchando y respondiendo. */
28
+ active: boolean;
29
+ /** Por que no se anuncia, cuando active=false. */
30
+ reason?: string;
31
+ stop(): void;
32
+ }
33
+ /** Primera IPv4 no interna de la maquina. Es la que se publica en el
34
+ * registro A: si no hay ninguna (sin red), no tiene sentido anunciar. */
35
+ export declare function primaryIpv4(ifaces?: NodeJS.Dict<os.NetworkInterfaceInfo[]>): string | null;
36
+ /** Nombre de instancia legible: el hostname de la maquina, sin dominio. */
37
+ export declare function instanceNameFor(hostname?: string): string;
38
+ export interface StartAnnouncerOpts {
39
+ /** Puerto del panel. */
40
+ port: number;
41
+ /** Slug del proyecto activo, para el TXT. */
42
+ projectSlug?: string;
43
+ /** Version del CLI, para el TXT. */
44
+ version?: string;
45
+ /** Inyectable para tests: crea el socket multicast ya bindeado. */
46
+ createSocket?: () => Promise<SocketLike & {
47
+ close(): void;
48
+ }>;
49
+ env?: Record<string, string | undefined>;
50
+ ipv4?: string | null;
51
+ }
52
+ export declare function startPanelAnnouncer(opts: StartAnnouncerOpts): Promise<AnnouncerHandle>;
53
+ //# sourceMappingURL=announce.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"announce.d.ts","sourceRoot":"","sources":["../../src/lan/announce.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAEe,KAAK,UAAU,EACpC,MAAM,mBAAmB,CAAC;AAE3B,MAAM,WAAW,eAAe;IAC9B,yDAAyD;IACzD,MAAM,EAAE,OAAO,CAAC;IAChB,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,IAAI,IAAI,CAAC;CACd;AAMD;0EAC0E;AAC1E,wBAAgB,WAAW,CAAC,MAAM,GAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAA0B,GAAG,MAAM,GAAG,IAAI,CAUlH;AAED,2EAA2E;AAC3E,wBAAgB,eAAe,CAAC,QAAQ,GAAE,MAAsB,GAAG,MAAM,CAGxE;AAED,MAAM,WAAW,kBAAkB;IACjC,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oCAAoC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mEAAmE;IACnE,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,UAAU,GAAG;QAAE,KAAK,IAAI,IAAI,CAAA;KAAE,CAAC,CAAC;IAC7D,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IACzC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAkBD,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,eAAe,CAAC,CAmC5F"}
@@ -0,0 +1,111 @@
1
+ /**
2
+ * Anunciador mDNS del panel -- la mitad que faltaba (PND-086, 2026-09-22).
3
+ *
4
+ * `src/lan/mdns_service.ts` implementa el protocolo completo (announce +
5
+ * browse de `_yujin-forge._tcp.local.`) desde hace meses, pero
6
+ * `attachAnnouncer` NO lo llamaba nadie fuera de los tests: el panel nunca
7
+ * anunciaba nada en la red. Por eso el descubrimiento del celular cae
8
+ * siempre al polling de hosts cargados a mano -- y por eso habilitar
9
+ * zeroconf nativo en la app, sola, no habria cambiado nada: no habia a quien
10
+ * descubrir.
11
+ *
12
+ * Esto levanta el socket multicast, responde las consultas PTR y manda un
13
+ * anuncio no solicitado al arrancar (para que un cliente que ya estaba
14
+ * escuchando se entere sin tener que preguntar).
15
+ *
16
+ * Reglas de la casa:
17
+ * - Nunca tumba el panel. Si no hay red, si el puerto 5353 esta tomado por
18
+ * otro responder (Bonjour de Apple, avahi) o si el SO niega el multicast,
19
+ * se degrada a "no anuncio" y sigue.
20
+ * - Opt-out por env: `YF_NO_MDNS=1`.
21
+ *
22
+ * ASCII-only.
23
+ */
24
+ import os from 'node:os';
25
+ import { attachAnnouncer, MDNS_PORT, MDNS_GROUP_IPV4, } from './mdns_service.js';
26
+ const INACTIVE = (reason) => ({
27
+ active: false, reason, stop() { },
28
+ });
29
+ /** Primera IPv4 no interna de la maquina. Es la que se publica en el
30
+ * registro A: si no hay ninguna (sin red), no tiene sentido anunciar. */
31
+ export function primaryIpv4(ifaces = os.networkInterfaces()) {
32
+ for (const list of Object.values(ifaces)) {
33
+ for (const ni of list ?? []) {
34
+ if (ni.internal)
35
+ continue;
36
+ /* node >=18 puede devolver family como numero (4) o string ('IPv4') */
37
+ const fam = String(ni.family);
38
+ if (fam === '4' || fam === 'IPv4')
39
+ return ni.address;
40
+ }
41
+ }
42
+ return null;
43
+ }
44
+ /** Nombre de instancia legible: el hostname de la maquina, sin dominio. */
45
+ export function instanceNameFor(hostname = os.hostname()) {
46
+ const first = String(hostname || 'forge').split('.')[0] || 'forge';
47
+ return first.slice(0, 63);
48
+ }
49
+ /** Socket real: UDP4 con reuseAddr (convive con el responder del SO),
50
+ * bindeado a 5353 y unido al grupo multicast. */
51
+ async function defaultSocket() {
52
+ const dgram = await import('node:dgram');
53
+ const sock = dgram.createSocket({ type: 'udp4', reuseAddr: true });
54
+ await new Promise((resolve, reject) => {
55
+ sock.once('error', reject);
56
+ sock.bind(MDNS_PORT, () => {
57
+ try {
58
+ sock.addMembership(MDNS_GROUP_IPV4);
59
+ }
60
+ catch { /* sin multicast: igual respondemos unicast */ }
61
+ sock.removeListener('error', reject);
62
+ resolve();
63
+ });
64
+ });
65
+ return sock;
66
+ }
67
+ export async function startPanelAnnouncer(opts) {
68
+ const env = opts.env ?? process.env;
69
+ if (env['YF_NO_MDNS'])
70
+ return INACTIVE('desactivado por YF_NO_MDNS');
71
+ const ipv4 = opts.ipv4 === undefined ? primaryIpv4() : opts.ipv4;
72
+ if (!ipv4)
73
+ return INACTIVE('sin IPv4 no interna (maquina sin red)');
74
+ const instanceName = instanceNameFor();
75
+ const cfg = {
76
+ instanceName,
77
+ hostName: instanceName + '.local.',
78
+ port: opts.port,
79
+ ipv4,
80
+ txt: {
81
+ ...(opts.projectSlug ? { project: opts.projectSlug } : {}),
82
+ ...(opts.version ? { version: opts.version } : {}),
83
+ },
84
+ };
85
+ let sock = null;
86
+ try {
87
+ sock = await (opts.createSocket ?? defaultSocket)();
88
+ const { unsolicited } = attachAnnouncer({ socket: sock, cfg });
89
+ /* Anuncio no solicitado: el que ya estaba escuchando nos ve sin preguntar. */
90
+ try {
91
+ sock.send(unsolicited, MDNS_PORT, MDNS_GROUP_IPV4);
92
+ }
93
+ catch { /* best-effort */ }
94
+ }
95
+ catch (err) {
96
+ try {
97
+ sock?.close();
98
+ }
99
+ catch { /* */ }
100
+ return INACTIVE(err instanceof Error ? err.message : String(err));
101
+ }
102
+ const s = sock;
103
+ return {
104
+ active: true,
105
+ stop() { try {
106
+ s.close();
107
+ }
108
+ catch { /* ya cerrado */ } },
109
+ };
110
+ }
111
+ //# sourceMappingURL=announce.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"announce.js","sourceRoot":"","sources":["../../src/lan/announce.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cohere_client.d.ts","sourceRoot":"","sources":["../../src/llm/cohere_client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAKjD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC;QAClE,MAAM,EAAE,OAAO,CAAC;QAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC,CAAC;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B;AA6BD,qBAAa,cAAe,SAAQ,KAAK;IACvC,MAAM,EAAE,MAAM,CAAC;gBACH,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAK5C;AAaD,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAe;IAChC,OAAO,CAAC,YAAY,CAAS;gBAEjB,IAAI,EAAE,mBAAmB;IAS/B,IAAI,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAoKhE"}
1
+ {"version":3,"file":"cohere_client.d.ts","sourceRoot":"","sources":["../../src/llm/cohere_client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAOjD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC;QAClE,MAAM,EAAE,OAAO,CAAC;QAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC,CAAC;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B;AA6BD,qBAAa,cAAe,SAAQ,KAAK;IACvC,MAAM,EAAE,MAAM,CAAC;gBACH,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAK5C;AAaD,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAe;IAChC,OAAO,CAAC,YAAY,CAAS;gBAEjB,IAAI,EAAE,mBAAmB;IAS/B,IAAI,CAAC,GAAG,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC;CA8KhE"}
@@ -1,3 +1,5 @@
1
+ import { resolveBrainBehaviour } from '../core/brain_behaviour.js';
2
+ import { capToolResult, compactOldToolResults } from './context_compaction.js';
1
3
  const COHERE_BASE = 'https://api.cohere.com/v2/chat';
2
4
  const DEFAULT_COHERE_MODEL = 'command-r-plus-08-2024';
3
5
  export class CohereApiError extends Error {
@@ -70,6 +72,10 @@ export class CohereClient {
70
72
  let totalOut = 0;
71
73
  let serverModel = model;
72
74
  const toolRounds = [];
75
+ /* H2/H3 (2026-09-22) -- cap + compactacion por cerebro. Antes esto solo
76
+ * existia en el cliente deepseek: el resto acumulaba la historia entera
77
+ * y la re-serializaba en cada ronda, que es como se agotaba el heap. */
78
+ const behaviour = await resolveBrainBehaviour('cohere', serverModel);
73
79
  for (let round = 0; round < maxRounds; round++) {
74
80
  void round;
75
81
  const body = {
@@ -181,11 +187,15 @@ export class CohereClient {
181
187
  catch {
182
188
  resultStr = String(result);
183
189
  }
184
- if (resultStr.length > 200_000) {
185
- resultStr = JSON.stringify({ _truncated: true, _bytes: resultStr.length });
186
- }
190
+ /* H2 (2026-09-22) -- antes: stub ciego de 200KB. Ahora el cap sale
191
+ * de la behaviour del cerebro (modo 'head': el modelo sigue viendo
192
+ * el principio del dato en vez de quedarse ciego). */
193
+ resultStr = capToolResult(resultStr, behaviour);
187
194
  messages.push({ role: 'tool', tool_call_id: tc.id, content: resultStr });
188
195
  }
196
+ /* Compactar los resultados VIEJOS del turno (no-op hasta que el turno
197
+ * se hace largo, segun la behaviour del cerebro). */
198
+ compactOldToolResults(messages, behaviour, round + 1);
189
199
  }
190
200
  return {
191
201
  text: '[Alcance el limite de rondas (' + maxRounds + '/' + maxRounds +
@@ -1 +1 @@
1
- {"version":3,"file":"cohere_client.js","sourceRoot":"","sources":["../../src/llm/cohere_client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cohere_client.js","sourceRoot":"","sources":["../../src/llm/cohere_client.ts"],"names":[],"mappings":"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"}
@@ -31,5 +31,30 @@ interface OpenAiMsg {
31
31
  * disabled or before the round trigger. Returns the number compacted (for
32
32
  * telemetry/tests). */
33
33
  export declare function compactOldToolResults(messages: OpenAiMsg[], b: BrainBehaviour, round: number): number;
34
+ interface AnthropicMsg {
35
+ role: string;
36
+ content?: unknown;
37
+ }
38
+ /** Misma idea que `compactOldToolResults`, para la forma de Anthropic: el
39
+ * resultado no es un mensaje con role='tool' sino un bloque
40
+ * `{ type: 'tool_result', content: '...' }` dentro del `content` de un
41
+ * mensaje de usuario. Sin esto, la ruta Console (el cerebro anthropic, que
42
+ * es el default) acumulaba la historia entera sin techo -- la causa del
43
+ * OOM de heap del panel (2026-09). */
44
+ export declare function compactOldAnthropicToolResults(messages: AnthropicMsg[], b: BrainBehaviour, round: number): number;
45
+ interface GeminiPart {
46
+ functionResponse?: {
47
+ name?: string;
48
+ response?: unknown;
49
+ };
50
+ }
51
+ interface GeminiContent {
52
+ role?: string;
53
+ parts?: GeminiPart[];
54
+ }
55
+ /** Variante Gemini: el resultado viaja en
56
+ * `parts[].functionResponse.response`. Se reemplaza el payload por el
57
+ * marcador, conservando la forma que la API espera. */
58
+ export declare function compactOldGeminiToolResults(contents: GeminiContent[], b: BrainBehaviour, round: number): number;
34
59
  export {};
35
60
  //# sourceMappingURL=context_compaction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context_compaction.d.ts","sourceRoot":"","sources":["../../src/llm/context_compaction.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE;;kDAEkD;AAClD,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,cAAc,GAAG,MAAM,CAS1E;AAED,UAAU,SAAS;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAAE;AAErG;;;;wBAIwB;AACxB,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAkBrG"}
1
+ {"version":3,"file":"context_compaction.d.ts","sourceRoot":"","sources":["../../src/llm/context_compaction.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE;;kDAEkD;AAClD,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,cAAc,GAAG,MAAM,CAS1E;AAED,UAAU,SAAS;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAAE;AAwBrG;;;;wBAIwB;AACxB,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAYrG;AAKD,UAAU,YAAY;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE;AAE1D;;;;;uCAKuC;AACvC,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,YAAY,EAAE,EAAE,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GACzD,MAAM,CAgBR;AAID,UAAU,UAAU;IAAG,gBAAgB,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;CAAE;AACjF,UAAU,aAAa;IAAG,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,UAAU,EAAE,CAAA;CAAE;AAE/D;;wDAEwD;AACxD,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,aAAa,EAAE,EAAE,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAC1D,MAAM,CAiBR"}
@@ -12,32 +12,100 @@ export function capToolResult(resultStr, b) {
12
12
  + '\n[...truncado: ' + resultStr.length + ' bytes en total; se muestran los primeros '
13
13
  + max + '. Pedi un rango/paginado o filtra la consulta si necesitas mas.]';
14
14
  }
15
+ /** El texto con el que se reemplaza un resultado viejo. Unico lugar donde
16
+ * se arma, para que los tres formatos digan exactamente lo mismo. */
17
+ function staleMarker(bytes) {
18
+ return '[resultado previo compactado -- ' + bytes
19
+ + ' bytes; volve a consultar esa fuente si lo necesitas de nuevo]';
20
+ }
21
+ /** Ya fue compactado (o es tan chico que no vale la pena). */
22
+ function alreadyCompact(c) {
23
+ return c.length <= 400 || c.startsWith('[resultado previo compactado');
24
+ }
25
+ /** Cuantos de los N resultados hay que compactar, dados keep_recent.
26
+ * Devuelve los INDICES (dentro del array de indices recibido) a tocar. */
27
+ function staleSlice(all, b, round) {
28
+ if (!b.compaction.enabled)
29
+ return [];
30
+ if (round < b.compaction.trigger_after_rounds)
31
+ return [];
32
+ const keep = Math.max(1, b.compaction.keep_recent_tool_results | 0);
33
+ if (all.length <= keep)
34
+ return [];
35
+ return all.slice(0, all.length - keep);
36
+ }
15
37
  /** Compact OLD tool-result messages IN PLACE: keep the `keep_recent` most
16
38
  * recent role='tool' messages in full, replace the content of older ones with
17
39
  * a short marker. Bounds both the RSS and the per-round payload. No-op when
18
40
  * disabled or before the round trigger. Returns the number compacted (for
19
41
  * telemetry/tests). */
20
42
  export function compactOldToolResults(messages, b, round) {
21
- if (!b.compaction.enabled)
22
- return 0;
23
- if (round < b.compaction.trigger_after_rounds)
24
- return 0;
25
- const keep = Math.max(1, b.compaction.keep_recent_tool_results | 0);
26
43
  const toolIdx = [];
27
44
  for (let i = 0; i < messages.length; i++)
28
45
  if (messages[i].role === 'tool')
29
46
  toolIdx.push(i);
30
- if (toolIdx.length <= keep)
31
- return 0;
32
- const stale = toolIdx.slice(0, toolIdx.length - keep);
33
47
  let compacted = 0;
34
- for (const i of stale) {
48
+ for (const i of staleSlice(toolIdx, b, round)) {
35
49
  const m = messages[i];
36
50
  const c = typeof m.content === 'string' ? m.content : '';
37
- if (c.length <= 400 || c.startsWith('[resultado previo compactado'))
38
- continue; /* already tiny/done */
39
- m.content = '[resultado previo compactado -- ' + c.length
40
- + ' bytes; volve a consultar esa fuente si lo necesitas de nuevo]';
51
+ if (alreadyCompact(c))
52
+ continue;
53
+ m.content = staleMarker(c.length);
54
+ compacted++;
55
+ }
56
+ return compacted;
57
+ }
58
+ /** Misma idea que `compactOldToolResults`, para la forma de Anthropic: el
59
+ * resultado no es un mensaje con role='tool' sino un bloque
60
+ * `{ type: 'tool_result', content: '...' }` dentro del `content` de un
61
+ * mensaje de usuario. Sin esto, la ruta Console (el cerebro anthropic, que
62
+ * es el default) acumulaba la historia entera sin techo -- la causa del
63
+ * OOM de heap del panel (2026-09). */
64
+ export function compactOldAnthropicToolResults(messages, b, round) {
65
+ const blocks = [];
66
+ for (const m of messages) {
67
+ if (!Array.isArray(m.content))
68
+ continue;
69
+ for (const raw of m.content) {
70
+ if (raw && raw.type === 'tool_result')
71
+ blocks.push(raw);
72
+ }
73
+ }
74
+ let compacted = 0;
75
+ for (const blk of staleSlice(blocks, b, round)) {
76
+ const c = typeof blk.content === 'string' ? blk.content : '';
77
+ if (alreadyCompact(c))
78
+ continue;
79
+ blk.content = staleMarker(c.length);
80
+ compacted++;
81
+ }
82
+ return compacted;
83
+ }
84
+ /** Variante Gemini: el resultado viaja en
85
+ * `parts[].functionResponse.response`. Se reemplaza el payload por el
86
+ * marcador, conservando la forma que la API espera. */
87
+ export function compactOldGeminiToolResults(contents, b, round) {
88
+ const parts = [];
89
+ for (const c of contents) {
90
+ if (!Array.isArray(c.parts))
91
+ continue;
92
+ for (const p of c.parts)
93
+ if (p && p.functionResponse)
94
+ parts.push(p);
95
+ }
96
+ let compacted = 0;
97
+ for (const p of staleSlice(parts, b, round)) {
98
+ const fr = p.functionResponse;
99
+ let serialized;
100
+ try {
101
+ serialized = typeof fr.response === 'string' ? fr.response : JSON.stringify(fr.response);
102
+ }
103
+ catch {
104
+ serialized = String(fr.response);
105
+ }
106
+ if (alreadyCompact(serialized ?? ''))
107
+ continue;
108
+ fr.response = { result: staleMarker(serialized.length) };
41
109
  compacted++;
42
110
  }
43
111
  return compacted;
@@ -1 +1 @@
1
- {"version":3,"file":"context_compaction.js","sourceRoot":"","sources":["../../src/llm/context_compaction.ts"],"names":[],"mappings":"AAkBA;;kDAEkD;AAClD,MAAM,UAAU,aAAa,CAAC,SAAiB,EAAE,CAAiB;IAChE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,qBAAqB,GAAG,CAAC,CAAC,CAAC;IACxD,IAAI,SAAS,CAAC,MAAM,IAAI,GAAG;QAAE,OAAO,SAAS,CAAC;IAC9C,IAAI,CAAC,CAAC,gBAAgB,KAAK,MAAM,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;UAC1B,kBAAkB,GAAG,SAAS,CAAC,MAAM,GAAG,4CAA4C;UACpF,GAAG,GAAG,kEAAkE,CAAC;AAC/E,CAAC;AAID;;;;wBAIwB;AACxB,MAAM,UAAU,qBAAqB,CAAC,QAAqB,EAAE,CAAiB,EAAE,KAAa;IAC3F,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO;QAAE,OAAO,CAAC,CAAC;IACpC,IAAI,KAAK,GAAG,CAAC,CAAC,UAAU,CAAC,oBAAoB;QAAE,OAAO,CAAC,CAAC;IACxD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,wBAAwB,GAAG,CAAC,CAAC,CAAC;IACpE,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE;QAAE,IAAI,QAAQ,CAAC,CAAC,CAAE,CAAC,IAAI,KAAK,MAAM;YAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5F,IAAI,OAAO,CAAC,MAAM,IAAI,IAAI;QAAE,OAAO,CAAC,CAAC;IACrC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACtD,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAC;QACvB,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,IAAI,CAAC,CAAC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,UAAU,CAAC,8BAA8B,CAAC;YAAE,SAAS,CAAG,uBAAuB;QACxG,CAAC,CAAC,OAAO,GAAG,kCAAkC,GAAG,CAAC,CAAC,MAAM;cACrD,gEAAgE,CAAC;QACrE,SAAS,EAAE,CAAC;IACd,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"context_compaction.js","sourceRoot":"","sources":["../../src/llm/context_compaction.ts"],"names":[],"mappings":"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"}
@@ -17,14 +17,21 @@
17
17
  * eco tier when budgets matter; reasoner variant decent for
18
18
  * frontier-like work in non-coding contexts.
19
19
  *
20
- * Default models:
21
- * deepseek-chat -- general purpose (V3.1)
22
- * deepseek-reasoner -- R1 series, slower, deeper reasoning
20
+ * Default models (catalogo vigente al 2026-09-21, verificado contra
21
+ * GET https://api.deepseek.com/models):
22
+ * deepseek-flash -- general purpose, barato y rapido
23
+ * deepseek-v4-pro -- tope de gama, mas lento, razonamiento profundo
24
+ *
25
+ * Los ids viejos deepseek-chat / deepseek-reasoner fueron RETIRADOS del
26
+ * API: ya no aparecen en /models y una llamada con ellos es rechazada.
27
+ * normalizeDeepSeekModel() los remapea para que una config guardada de
28
+ * antes siga funcionando en vez de romper.
23
29
  *
24
30
  * ASCII-only.
25
31
  */
26
32
  import type { ToolRound, ChatMessage } from '../chat/claude.js';
27
33
  import type { ToolSpec } from '../chat/tools.js';
34
+ export declare function normalizeDeepSeekModel(model: string): string;
28
35
  export interface DeepSeekChatRequest {
29
36
  messages: ChatMessage[];
30
37
  system?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"deepseek_client.d.ts","sourceRoot":"","sources":["../../src/llm/deepseek_client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAejD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC;QAClE,MAAM,EAAE,OAAO,CAAC;QAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC,CAAC;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kDAAkD;IAClD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACxD;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B;AA6BD,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,MAAM,EAAE,MAAM,CAAC;gBACH,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAK5C;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAe;IAChC,OAAO,CAAC,YAAY,CAAS;gBAEjB,IAAI,EAAE,qBAAqB;IASjC,IAAI,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;CA6NpE"}
1
+ {"version":3,"file":"deepseek_client.d.ts","sourceRoot":"","sources":["../../src/llm/deepseek_client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAejD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE5D;AAUD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC;QAClE,MAAM,EAAE,OAAO,CAAC;QAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC,CAAC;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kDAAkD;IAClD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACxD;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B;AA6BD,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,MAAM,EAAE,MAAM,CAAC;gBACH,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAK5C;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAe;IAChC,OAAO,CAAC,YAAY,CAAS;gBAEjB,IAAI,EAAE,qBAAqB;IASjC,IAAI,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;CA6NpE"}
@@ -2,7 +2,17 @@ import { isTransientNetworkError, describeNetError } from '../chat/claude.js';
2
2
  import { resolveBrainBehaviour } from '../core/brain_behaviour.js';
3
3
  import { capToolResult, compactOldToolResults } from './context_compaction.js';
4
4
  const DEEPSEEK_BASE = 'https://api.deepseek.com/chat/completions';
5
- const DEFAULT_DEEPSEEK_MODEL = 'deepseek-chat';
5
+ const DEFAULT_DEEPSEEK_MODEL = 'deepseek-flash';
6
+ /** Ids retirados -> su equivalente vigente. Una brain_config guardada
7
+ * antes del retiro (o un envelope BYOK viejo) trae los ids muertos; sin
8
+ * este remapeo la llamada muere con "model not found". */
9
+ const RETIRED_DEEPSEEK_MODELS = {
10
+ 'deepseek-chat': 'deepseek-flash',
11
+ 'deepseek-reasoner': 'deepseek-v4-pro',
12
+ };
13
+ export function normalizeDeepSeekModel(model) {
14
+ return RETIRED_DEEPSEEK_MODELS[model] ?? model;
15
+ }
6
16
  const DEFAULT_MAX_TOOL_ROUNDS = 5;
7
17
  /* A reasoning model (deepseek-reasoner) on a heavy task can take minutes.
8
18
  * A hung socket must still eventually fail so the retry can fire, but the
@@ -35,7 +45,7 @@ export class DeepSeekClient {
35
45
  if (req.tools && !req.runTool) {
36
46
  throw new Error('DeepSeekChatRequest.tools requires a runTool callback');
37
47
  }
38
- const model = req.model ?? this.defaultModel;
48
+ const model = normalizeDeepSeekModel(req.model ?? this.defaultModel);
39
49
  const maxTokens = req.maxTokens ?? 1024;
40
50
  /* alpha.59g -- config-driven cap + family resolver, mirrors
41
51
  * what OpenAI/Gemini/Claude clients do. */