@hoilab/ada-cli 0.85.0 → 0.85.3

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 (1682) hide show
  1. package/dist/ada-publico.d.ts.map +1 -1
  2. package/dist/ada-publico.js.map +1 -1
  3. package/dist/bun/cli.d.ts.map +1 -1
  4. package/dist/bun/cli.js.map +1 -1
  5. package/dist/bun/register-bedrock.d.ts.map +1 -1
  6. package/dist/bun/register-bedrock.js.map +1 -1
  7. package/dist/bun/restore-sandbox-env.d.ts.map +1 -1
  8. package/dist/bun/restore-sandbox-env.js.map +1 -1
  9. package/dist/cli/args.d.ts.map +1 -1
  10. package/dist/cli/args.js.map +1 -1
  11. package/dist/cli/audit-command.d.ts.map +1 -1
  12. package/dist/cli/audit-command.js.map +1 -1
  13. package/dist/cli/auth-check.d.ts.map +1 -1
  14. package/dist/cli/auth-check.js.map +1 -1
  15. package/dist/cli/auth-command.d.ts.map +1 -1
  16. package/dist/cli/auth-command.js.map +1 -1
  17. package/dist/cli/banco-command.d.ts.map +1 -1
  18. package/dist/cli/banco-command.js.map +1 -1
  19. package/dist/cli/cleanse-command.d.ts.map +1 -1
  20. package/dist/cli/cleanse-command.js +5 -2
  21. package/dist/cli/cleanse-command.js.map +1 -1
  22. package/dist/cli/commit-command.d.ts +8 -6
  23. package/dist/cli/commit-command.d.ts.map +1 -1
  24. package/dist/cli/commit-command.js +124 -92
  25. package/dist/cli/commit-command.js.map +1 -1
  26. package/dist/cli/completion.d.ts +20 -0
  27. package/dist/cli/completion.d.ts.map +1 -0
  28. package/dist/cli/completion.js +75 -0
  29. package/dist/cli/completion.js.map +1 -0
  30. package/dist/cli/computer-command.d.ts.map +1 -1
  31. package/dist/cli/computer-command.js.map +1 -1
  32. package/dist/cli/config-selector.d.ts.map +1 -1
  33. package/dist/cli/config-selector.js.map +1 -1
  34. package/dist/cli/credential-print.d.ts.map +1 -1
  35. package/dist/cli/credential-print.js.map +1 -1
  36. package/dist/cli/discover-command.d.ts.map +1 -1
  37. package/dist/cli/discover-command.js +5 -1
  38. package/dist/cli/discover-command.js.map +1 -1
  39. package/dist/cli/experimental/auth.d.ts.map +1 -1
  40. package/dist/cli/experimental/auth.js.map +1 -1
  41. package/dist/cli/experimental/cli.d.ts +1 -1
  42. package/dist/cli/experimental/cli.d.ts.map +1 -1
  43. package/dist/cli/experimental/cli.js.map +1 -1
  44. package/dist/cli/experimental/command-options.d.ts.map +1 -1
  45. package/dist/cli/experimental/command-options.js.map +1 -1
  46. package/dist/cli/experimental/command.d.ts.map +1 -1
  47. package/dist/cli/experimental/command.js.map +1 -1
  48. package/dist/cli/experimental/commands/client.d.ts.map +1 -1
  49. package/dist/cli/experimental/commands/client.js.map +1 -1
  50. package/dist/cli/experimental/commands/pi.d.ts.map +1 -1
  51. package/dist/cli/experimental/commands/pi.js.map +1 -1
  52. package/dist/cli/experimental/commands/server.d.ts.map +1 -1
  53. package/dist/cli/experimental/commands/server.js.map +1 -1
  54. package/dist/cli/experimental/transport-address.d.ts.map +1 -1
  55. package/dist/cli/experimental/transport-address.js.map +1 -1
  56. package/dist/cli/file-processor.d.ts.map +1 -1
  57. package/dist/cli/file-processor.js.map +1 -1
  58. package/dist/cli/guardrails.d.ts +14 -0
  59. package/dist/cli/guardrails.d.ts.map +1 -0
  60. package/dist/cli/guardrails.js +47 -0
  61. package/dist/cli/guardrails.js.map +1 -0
  62. package/dist/cli/hashline-command.d.ts.map +1 -1
  63. package/dist/cli/hashline-command.js.map +1 -1
  64. package/dist/cli/home-screen.d.ts.map +1 -1
  65. package/dist/cli/home-screen.js +1 -0
  66. package/dist/cli/home-screen.js.map +1 -1
  67. package/dist/cli/import-command.d.ts.map +1 -1
  68. package/dist/cli/import-command.js.map +1 -1
  69. package/dist/cli/initial-message.d.ts +1 -1
  70. package/dist/cli/initial-message.d.ts.map +1 -1
  71. package/dist/cli/initial-message.js.map +1 -1
  72. package/dist/cli/list-models.d.ts.map +1 -1
  73. package/dist/cli/list-models.js.map +1 -1
  74. package/dist/cli/politica-command.d.ts.map +1 -1
  75. package/dist/cli/politica-command.js.map +1 -1
  76. package/dist/cli/project-trust.d.ts.map +1 -1
  77. package/dist/cli/project-trust.js.map +1 -1
  78. package/dist/cli/refine-command.d.ts.map +1 -1
  79. package/dist/cli/refine-command.js.map +1 -1
  80. package/dist/cli/review-command.d.ts.map +1 -1
  81. package/dist/cli/review-command.js +77 -13
  82. package/dist/cli/review-command.js.map +1 -1
  83. package/dist/cli/schedule-command.d.ts.map +1 -1
  84. package/dist/cli/schedule-command.js.map +1 -1
  85. package/dist/cli/serve-command.d.ts +0 -1
  86. package/dist/cli/serve-command.d.ts.map +1 -1
  87. package/dist/cli/serve-command.js +12 -6
  88. package/dist/cli/serve-command.js.map +1 -1
  89. package/dist/cli/session-picker.d.ts.map +1 -1
  90. package/dist/cli/session-picker.js.map +1 -1
  91. package/dist/cli/startup-ui.d.ts.map +1 -1
  92. package/dist/cli/startup-ui.js.map +1 -1
  93. package/dist/cli/telegram-command.d.ts.map +1 -1
  94. package/dist/cli/telegram-command.js.map +1 -1
  95. package/dist/cli/telemetria-command.d.ts.map +1 -1
  96. package/dist/cli/telemetria-command.js.map +1 -1
  97. package/dist/cli/undo-command.d.ts.map +1 -1
  98. package/dist/cli/undo-command.js.map +1 -1
  99. package/dist/cli/update-cli.d.ts +82 -0
  100. package/dist/cli/update-cli.d.ts.map +1 -0
  101. package/dist/cli/update-cli.js +372 -0
  102. package/dist/cli/update-cli.js.map +1 -0
  103. package/dist/cli/usage-command.d.ts.map +1 -1
  104. package/dist/cli/usage-command.js +75 -6
  105. package/dist/cli/usage-command.js.map +1 -1
  106. package/dist/cli/wiki-command.d.ts.map +1 -1
  107. package/dist/cli/wiki-command.js.map +1 -1
  108. package/dist/cli.d.ts +0 -6
  109. package/dist/cli.d.ts.map +1 -1
  110. package/dist/cli.js +0 -0
  111. package/dist/cli.js.map +1 -1
  112. package/dist/client/index.d.ts.map +1 -1
  113. package/dist/client/index.js.map +1 -1
  114. package/dist/client/remote-session.d.ts.map +1 -1
  115. package/dist/client/remote-session.js.map +1 -1
  116. package/dist/client/transcript.d.ts.map +1 -1
  117. package/dist/client/transcript.js.map +1 -1
  118. package/dist/config.d.ts.map +1 -1
  119. package/dist/config.js.map +1 -1
  120. package/dist/core/ada.d.ts +5 -0
  121. package/dist/core/ada.d.ts.map +1 -1
  122. package/dist/core/ada.js +5 -0
  123. package/dist/core/ada.js.map +1 -1
  124. package/dist/core/advisor/guarda.d.ts.map +1 -1
  125. package/dist/core/advisor/guarda.js.map +1 -1
  126. package/dist/core/advisor/runtime.d.ts.map +1 -1
  127. package/dist/core/advisor/runtime.js.map +1 -1
  128. package/dist/core/advisor/sesion.d.ts.map +1 -1
  129. package/dist/core/advisor/sesion.js.map +1 -1
  130. package/dist/core/agent-session-runtime.d.ts.map +1 -1
  131. package/dist/core/agent-session-runtime.js.map +1 -1
  132. package/dist/core/agent-session-services.d.ts.map +1 -1
  133. package/dist/core/agent-session-services.js +33 -0
  134. package/dist/core/agent-session-services.js.map +1 -1
  135. package/dist/core/agent-session.d.ts +67 -0
  136. package/dist/core/agent-session.d.ts.map +1 -1
  137. package/dist/core/agent-session.js +43 -2
  138. package/dist/core/agent-session.js.map +1 -1
  139. package/dist/core/agents/loader.d.ts.map +1 -1
  140. package/dist/core/agents/loader.js.map +1 -1
  141. package/dist/core/appendonly/append-only-context.d.ts +118 -0
  142. package/dist/core/appendonly/append-only-context.d.ts.map +1 -0
  143. package/dist/core/appendonly/append-only-context.js +256 -0
  144. package/dist/core/appendonly/append-only-context.js.map +1 -0
  145. package/dist/core/appendonly/auto.d.ts +30 -0
  146. package/dist/core/appendonly/auto.d.ts.map +1 -0
  147. package/dist/core/appendonly/auto.js +68 -0
  148. package/dist/core/appendonly/auto.js.map +1 -0
  149. package/dist/core/appendonly/extension.d.ts +29 -0
  150. package/dist/core/appendonly/extension.d.ts.map +1 -0
  151. package/dist/core/appendonly/extension.js +51 -0
  152. package/dist/core/appendonly/extension.js.map +1 -0
  153. package/dist/core/appendonly/index.d.ts +41 -0
  154. package/dist/core/appendonly/index.d.ts.map +1 -0
  155. package/dist/core/appendonly/index.js +42 -0
  156. package/dist/core/appendonly/index.js.map +1 -0
  157. package/dist/core/aprobacion/generados.d.ts.map +1 -1
  158. package/dist/core/aprobacion/generados.js.map +1 -1
  159. package/dist/core/aprobacion/politica-de-maquina.d.ts.map +1 -1
  160. package/dist/core/aprobacion/politica-de-maquina.js.map +1 -1
  161. package/dist/core/aprobacion/politica.d.ts +1 -1
  162. package/dist/core/aprobacion/politica.d.ts.map +1 -1
  163. package/dist/core/aprobacion/politica.js.map +1 -1
  164. package/dist/core/arranque/atajos.d.ts.map +1 -1
  165. package/dist/core/arranque/atajos.js +20 -0
  166. package/dist/core/arranque/atajos.js.map +1 -1
  167. package/dist/core/audit/exportacion.d.ts.map +1 -1
  168. package/dist/core/audit/exportacion.js +5 -3
  169. package/dist/core/audit/exportacion.js.map +1 -1
  170. package/dist/core/audit/libro.d.ts +7 -0
  171. package/dist/core/audit/libro.d.ts.map +1 -1
  172. package/dist/core/audit/libro.js.map +1 -1
  173. package/dist/core/audit/registro-sesion.d.ts.map +1 -1
  174. package/dist/core/audit/registro-sesion.js.map +1 -1
  175. package/dist/core/audit/retencion.d.ts.map +1 -1
  176. package/dist/core/audit/retencion.js.map +1 -1
  177. package/dist/core/audit/rutas.d.ts.map +1 -1
  178. package/dist/core/audit/rutas.js.map +1 -1
  179. package/dist/core/auth-guidance.d.ts.map +1 -1
  180. package/dist/core/auth-guidance.js.map +1 -1
  181. package/dist/core/auth-storage.d.ts.map +1 -1
  182. package/dist/core/auth-storage.js.map +1 -1
  183. package/dist/core/banco/almacenamiento.d.ts.map +1 -1
  184. package/dist/core/banco/almacenamiento.js.map +1 -1
  185. package/dist/core/banco/analisis.d.ts.map +1 -1
  186. package/dist/core/banco/analisis.js.map +1 -1
  187. package/dist/core/banco/asides.d.ts +64 -0
  188. package/dist/core/banco/asides.d.ts.map +1 -0
  189. package/dist/core/banco/asides.js +113 -0
  190. package/dist/core/banco/asides.js.map +1 -0
  191. package/dist/core/banco/bloques.d.ts.map +1 -1
  192. package/dist/core/banco/bloques.js.map +1 -1
  193. package/dist/core/banco/cargas.d.ts.map +1 -1
  194. package/dist/core/banco/cargas.js.map +1 -1
  195. package/dist/core/banco/comparar.d.ts.map +1 -1
  196. package/dist/core/banco/comparar.js.map +1 -1
  197. package/dist/core/banco/cow-isolation.d.ts +74 -0
  198. package/dist/core/banco/cow-isolation.d.ts.map +1 -0
  199. package/dist/core/banco/cow-isolation.js +259 -0
  200. package/dist/core/banco/cow-isolation.js.map +1 -0
  201. package/dist/core/banco/ejecutar.d.ts.map +1 -1
  202. package/dist/core/banco/ejecutar.js.map +1 -1
  203. package/dist/core/banco/generar.d.ts.map +1 -1
  204. package/dist/core/banco/generar.js.map +1 -1
  205. package/dist/core/banco/mutaciones.d.ts.map +1 -1
  206. package/dist/core/banco/mutaciones.js.map +1 -1
  207. package/dist/core/banco/park-revive.d.ts +67 -0
  208. package/dist/core/banco/park-revive.d.ts.map +1 -0
  209. package/dist/core/banco/park-revive.js +130 -0
  210. package/dist/core/banco/park-revive.js.map +1 -0
  211. package/dist/core/banco/pruning.d.ts +48 -0
  212. package/dist/core/banco/pruning.d.ts.map +1 -0
  213. package/dist/core/banco/pruning.js +146 -0
  214. package/dist/core/banco/pruning.js.map +1 -0
  215. package/dist/core/banco/steering.d.ts +81 -0
  216. package/dist/core/banco/steering.d.ts.map +1 -0
  217. package/dist/core/banco/steering.js +96 -0
  218. package/dist/core/banco/steering.js.map +1 -0
  219. package/dist/core/banco/tipos.d.ts.map +1 -1
  220. package/dist/core/banco/tipos.js.map +1 -1
  221. package/dist/core/bash-executor.d.ts.map +1 -1
  222. package/dist/core/bash-executor.js.map +1 -1
  223. package/dist/core/blobs/almacen.d.ts.map +1 -1
  224. package/dist/core/blobs/almacen.js.map +1 -1
  225. package/dist/core/blobs/broker.d.ts +1 -0
  226. package/dist/core/blobs/broker.d.ts.map +1 -1
  227. package/dist/core/blobs/broker.js +1 -1
  228. package/dist/core/blobs/broker.js.map +1 -1
  229. package/dist/core/blobs/index.d.ts +1 -0
  230. package/dist/core/blobs/index.d.ts.map +1 -1
  231. package/dist/core/blobs/index.js +1 -0
  232. package/dist/core/blobs/index.js.map +1 -1
  233. package/dist/core/blobs/payload.d.ts.map +1 -1
  234. package/dist/core/blobs/payload.js.map +1 -1
  235. package/dist/core/blobs/proveedor.d.ts.map +1 -1
  236. package/dist/core/blobs/proveedor.js.map +1 -1
  237. package/dist/core/blobs/uploaders.d.ts +105 -0
  238. package/dist/core/blobs/uploaders.d.ts.map +1 -0
  239. package/dist/core/blobs/uploaders.js +224 -0
  240. package/dist/core/blobs/uploaders.js.map +1 -0
  241. package/dist/core/broker/broker.d.ts +54 -0
  242. package/dist/core/broker/broker.d.ts.map +1 -0
  243. package/dist/core/broker/broker.js +216 -0
  244. package/dist/core/broker/broker.js.map +1 -0
  245. package/dist/core/broker/index.d.ts +21 -0
  246. package/dist/core/broker/index.d.ts.map +1 -0
  247. package/dist/core/broker/index.js +33 -0
  248. package/dist/core/broker/index.js.map +1 -0
  249. package/dist/core/broker/ps.d.ts +20 -0
  250. package/dist/core/broker/ps.d.ts.map +1 -0
  251. package/dist/core/broker/ps.js +55 -0
  252. package/dist/core/broker/ps.js.map +1 -0
  253. package/dist/core/broker/types.d.ts +45 -0
  254. package/dist/core/broker/types.d.ts.map +1 -0
  255. package/dist/core/broker/types.js +19 -0
  256. package/dist/core/broker/types.js.map +1 -0
  257. package/dist/core/browser/cdp.d.ts.map +1 -1
  258. package/dist/core/browser/cdp.js.map +1 -1
  259. package/dist/core/browser/politica.d.ts.map +1 -1
  260. package/dist/core/browser/politica.js.map +1 -1
  261. package/dist/core/browser/sesion.d.ts.map +1 -1
  262. package/dist/core/browser/sesion.js.map +1 -1
  263. package/dist/core/browser/tools.d.ts.map +1 -1
  264. package/dist/core/browser/tools.js.map +1 -1
  265. package/dist/core/cache-stats.d.ts.map +1 -1
  266. package/dist/core/cache-stats.js.map +1 -1
  267. package/dist/core/capability/capability.test.d.ts +12 -0
  268. package/dist/core/capability/capability.test.d.ts.map +1 -0
  269. package/dist/core/capability/capability.test.js +258 -0
  270. package/dist/core/capability/capability.test.js.map +1 -0
  271. package/dist/core/capability/fs.d.ts +32 -0
  272. package/dist/core/capability/fs.d.ts.map +1 -0
  273. package/dist/core/capability/fs.js +106 -0
  274. package/dist/core/capability/fs.js.map +1 -0
  275. package/dist/core/capability/index.d.ts +68 -0
  276. package/dist/core/capability/index.d.ts.map +1 -0
  277. package/dist/core/capability/index.js +258 -0
  278. package/dist/core/capability/index.js.map +1 -0
  279. package/dist/core/capability/types.d.ts +168 -0
  280. package/dist/core/capability/types.d.ts.map +1 -0
  281. package/dist/core/capability/types.js +16 -0
  282. package/dist/core/capability/types.js.map +1 -0
  283. package/dist/core/carga-plugins/index.d.ts +49 -0
  284. package/dist/core/carga-plugins/index.d.ts.map +1 -0
  285. package/dist/core/carga-plugins/index.js +85 -0
  286. package/dist/core/carga-plugins/index.js.map +1 -0
  287. package/dist/core/carga-plugins/invalidacion.d.ts +60 -0
  288. package/dist/core/carga-plugins/invalidacion.d.ts.map +1 -0
  289. package/dist/core/carga-plugins/invalidacion.js +94 -0
  290. package/dist/core/carga-plugins/invalidacion.js.map +1 -0
  291. package/dist/core/carga-plugins/paralelo.d.ts +48 -0
  292. package/dist/core/carga-plugins/paralelo.d.ts.map +1 -0
  293. package/dist/core/carga-plugins/paralelo.js +47 -0
  294. package/dist/core/carga-plugins/paralelo.js.map +1 -0
  295. package/dist/core/colaboracion/autoresearch.d.ts +56 -0
  296. package/dist/core/colaboracion/autoresearch.d.ts.map +1 -0
  297. package/dist/core/colaboracion/autoresearch.js +95 -0
  298. package/dist/core/colaboracion/autoresearch.js.map +1 -0
  299. package/dist/core/colaboracion/index.d.ts +10 -0
  300. package/dist/core/colaboracion/index.d.ts.map +1 -0
  301. package/dist/core/colaboracion/index.js +7 -0
  302. package/dist/core/colaboracion/index.js.map +1 -0
  303. package/dist/core/colaboracion/kernels.d.ts +63 -0
  304. package/dist/core/colaboracion/kernels.d.ts.map +1 -0
  305. package/dist/core/colaboracion/kernels.js +99 -0
  306. package/dist/core/colaboracion/kernels.js.map +1 -0
  307. package/dist/core/colaboracion/rele/index.d.ts +8 -0
  308. package/dist/core/colaboracion/rele/index.d.ts.map +1 -0
  309. package/dist/core/colaboracion/rele/index.js +6 -0
  310. package/dist/core/colaboracion/rele/index.js.map +1 -0
  311. package/dist/core/colaboracion/rele/rele-servidor.d.ts +69 -0
  312. package/dist/core/colaboracion/rele/rele-servidor.d.ts.map +1 -0
  313. package/dist/core/colaboracion/rele/rele-servidor.js +197 -0
  314. package/dist/core/colaboracion/rele/rele-servidor.js.map +1 -0
  315. package/dist/core/colaboracion/rele/suscriptor.d.ts +31 -0
  316. package/dist/core/colaboracion/rele/suscriptor.d.ts.map +1 -0
  317. package/dist/core/colaboracion/rele/suscriptor.js +173 -0
  318. package/dist/core/colaboracion/rele/suscriptor.js.map +1 -0
  319. package/dist/core/colaboracion/sesion-colaborativa.d.ts +61 -0
  320. package/dist/core/colaboracion/sesion-colaborativa.d.ts.map +1 -0
  321. package/dist/core/colaboracion/sesion-colaborativa.js +127 -0
  322. package/dist/core/colaboracion/sesion-colaborativa.js.map +1 -0
  323. package/dist/core/commits/agentic.d.ts +101 -0
  324. package/dist/core/commits/agentic.d.ts.map +1 -0
  325. package/dist/core/commits/agentic.js +268 -0
  326. package/dist/core/commits/agentic.js.map +1 -0
  327. package/dist/core/commits/changelog.d.ts +37 -0
  328. package/dist/core/commits/changelog.d.ts.map +1 -0
  329. package/dist/core/commits/changelog.js +155 -0
  330. package/dist/core/commits/changelog.js.map +1 -0
  331. package/dist/core/commits/diff.d.ts.map +1 -0
  332. package/dist/core/commits/diff.js.map +1 -0
  333. package/dist/core/commits/git.d.ts +43 -0
  334. package/dist/core/commits/git.d.ts.map +1 -0
  335. package/dist/core/commits/git.js +61 -0
  336. package/dist/core/commits/git.js.map +1 -0
  337. package/dist/core/commits/split.d.ts +45 -0
  338. package/dist/core/commits/split.d.ts.map +1 -0
  339. package/dist/core/commits/split.js +128 -0
  340. package/dist/core/commits/split.js.map +1 -0
  341. package/dist/core/compactacion/comandos.d.ts +53 -0
  342. package/dist/core/compactacion/comandos.d.ts.map +1 -0
  343. package/dist/core/compactacion/comandos.js +155 -0
  344. package/dist/core/compactacion/comandos.js.map +1 -0
  345. package/dist/core/compactacion/extension.d.ts +28 -0
  346. package/dist/core/compactacion/extension.d.ts.map +1 -0
  347. package/dist/core/compactacion/extension.js +159 -0
  348. package/dist/core/compactacion/extension.js.map +1 -0
  349. package/dist/core/compactacion/handoff.d.ts +61 -0
  350. package/dist/core/compactacion/handoff.d.ts.map +1 -0
  351. package/dist/core/compactacion/handoff.js +139 -0
  352. package/dist/core/compactacion/handoff.js.map +1 -0
  353. package/dist/core/compactacion/index.d.ts +15 -0
  354. package/dist/core/compactacion/index.d.ts.map +1 -0
  355. package/dist/core/compactacion/index.js +15 -0
  356. package/dist/core/compactacion/index.js.map +1 -0
  357. package/dist/core/compactacion/prune.d.ts +38 -0
  358. package/dist/core/compactacion/prune.d.ts.map +1 -0
  359. package/dist/core/compactacion/prune.js +81 -0
  360. package/dist/core/compactacion/prune.js.map +1 -0
  361. package/dist/core/compactacion/shake.d.ts +40 -0
  362. package/dist/core/compactacion/shake.d.ts.map +1 -0
  363. package/dist/core/compactacion/shake.js +106 -0
  364. package/dist/core/compactacion/shake.js.map +1 -0
  365. package/dist/core/compactacion/tipos.d.ts +54 -0
  366. package/dist/core/compactacion/tipos.d.ts.map +1 -0
  367. package/dist/core/compactacion/tipos.js +44 -0
  368. package/dist/core/compactacion/tipos.js.map +1 -0
  369. package/dist/core/compactar/index.d.ts.map +1 -1
  370. package/dist/core/compactar/index.js.map +1 -1
  371. package/dist/core/compactar/registro-denso.d.ts.map +1 -1
  372. package/dist/core/compactar/registro-denso.js.map +1 -1
  373. package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
  374. package/dist/core/compaction/branch-summarization.js.map +1 -1
  375. package/dist/core/compaction/compaction.d.ts.map +1 -1
  376. package/dist/core/compaction/compaction.js.map +1 -1
  377. package/dist/core/compaction/index.d.ts.map +1 -1
  378. package/dist/core/compaction/index.js.map +1 -1
  379. package/dist/core/compaction/utils.d.ts.map +1 -1
  380. package/dist/core/compaction/utils.js.map +1 -1
  381. package/dist/core/computer/captura.d.ts.map +1 -1
  382. package/dist/core/computer/captura.js.map +1 -1
  383. package/dist/core/computer/driver.d.ts.map +1 -1
  384. package/dist/core/computer/driver.js.map +1 -1
  385. package/dist/core/computer/motor/actions.d.ts.map +1 -1
  386. package/dist/core/computer/motor/actions.js.map +1 -1
  387. package/dist/core/computer/motor/bridge.d.ts +2 -2
  388. package/dist/core/computer/motor/bridge.d.ts.map +1 -1
  389. package/dist/core/computer/motor/bridge.js.map +1 -1
  390. package/dist/core/computer/motor/cdp.d.ts.map +1 -1
  391. package/dist/core/computer/motor/cdp.js.map +1 -1
  392. package/dist/core/computer/motor/config.d.ts.map +1 -1
  393. package/dist/core/computer/motor/config.js.map +1 -1
  394. package/dist/core/computer/motor/contract.d.ts.map +1 -1
  395. package/dist/core/computer/motor/contract.js.map +1 -1
  396. package/dist/core/computer/motor/note.d.ts.map +1 -1
  397. package/dist/core/computer/motor/note.js.map +1 -1
  398. package/dist/core/computer/motor/outline.d.ts.map +1 -1
  399. package/dist/core/computer/motor/outline.js.map +1 -1
  400. package/dist/core/computer/motor/output.d.ts.map +1 -1
  401. package/dist/core/computer/motor/output.js.map +1 -1
  402. package/dist/core/computer/motor/permissions.d.ts.map +1 -1
  403. package/dist/core/computer/motor/permissions.js.map +1 -1
  404. package/dist/core/computer/motor/platform/architecture.d.ts.map +1 -1
  405. package/dist/core/computer/motor/platform/architecture.js.map +1 -1
  406. package/dist/core/computer/motor/platform/coerce.d.ts.map +1 -1
  407. package/dist/core/computer/motor/platform/coerce.js.map +1 -1
  408. package/dist/core/computer/motor/platform/index.d.ts.map +1 -1
  409. package/dist/core/computer/motor/platform/index.js.map +1 -1
  410. package/dist/core/computer/motor/platform/linux/backend.d.ts.map +1 -1
  411. package/dist/core/computer/motor/platform/linux/backend.js.map +1 -1
  412. package/dist/core/computer/motor/platform/linux/helper.d.ts.map +1 -1
  413. package/dist/core/computer/motor/platform/linux/helper.js.map +1 -1
  414. package/dist/core/computer/motor/platform/macos/backend.d.ts.map +1 -1
  415. package/dist/core/computer/motor/platform/macos/backend.js.map +1 -1
  416. package/dist/core/computer/motor/platform/macos/browser.d.ts.map +1 -1
  417. package/dist/core/computer/motor/platform/macos/browser.js.map +1 -1
  418. package/dist/core/computer/motor/platform/macos/helper.d.ts.map +1 -1
  419. package/dist/core/computer/motor/platform/macos/helper.js.map +1 -1
  420. package/dist/core/computer/motor/platform/macos/permissions.d.ts.map +1 -1
  421. package/dist/core/computer/motor/platform/macos/permissions.js.map +1 -1
  422. package/dist/core/computer/motor/platform/types.d.ts.map +1 -1
  423. package/dist/core/computer/motor/platform/types.js.map +1 -1
  424. package/dist/core/computer/motor/platform/windows/backend.d.ts.map +1 -1
  425. package/dist/core/computer/motor/platform/windows/backend.js.map +1 -1
  426. package/dist/core/computer/motor/platform/windows/helper.d.ts.map +1 -1
  427. package/dist/core/computer/motor/platform/windows/helper.js.map +1 -1
  428. package/dist/core/computer/motor/root-selection.d.ts.map +1 -1
  429. package/dist/core/computer/motor/root-selection.js.map +1 -1
  430. package/dist/core/computer/motor/runtime.d.ts.map +1 -1
  431. package/dist/core/computer/motor/runtime.js.map +1 -1
  432. package/dist/core/computer/motor/state.d.ts.map +1 -1
  433. package/dist/core/computer/motor/state.js.map +1 -1
  434. package/dist/core/computer/motor/view.d.ts.map +1 -1
  435. package/dist/core/computer/motor/view.js.map +1 -1
  436. package/dist/core/computer/motor-ada.d.ts.map +1 -1
  437. package/dist/core/computer/motor-ada.js.map +1 -1
  438. package/dist/core/computer/politica.d.ts.map +1 -1
  439. package/dist/core/computer/politica.js.map +1 -1
  440. package/dist/core/computer/tools.d.ts.map +1 -1
  441. package/dist/core/computer/tools.js.map +1 -1
  442. package/dist/core/config/quarantine.d.ts +57 -0
  443. package/dist/core/config/quarantine.d.ts.map +1 -0
  444. package/dist/core/config/quarantine.js +161 -0
  445. package/dist/core/config/quarantine.js.map +1 -0
  446. package/dist/core/config-viva/ambito.d.ts +46 -0
  447. package/dist/core/config-viva/ambito.d.ts.map +1 -0
  448. package/dist/core/config-viva/ambito.js +62 -0
  449. package/dist/core/config-viva/ambito.js.map +1 -0
  450. package/dist/core/config-viva/cache-negativa.d.ts +50 -0
  451. package/dist/core/config-viva/cache-negativa.d.ts.map +1 -0
  452. package/dist/core/config-viva/cache-negativa.js +78 -0
  453. package/dist/core/config-viva/cache-negativa.js.map +1 -0
  454. package/dist/core/config-viva/headers-vivos.d.ts +41 -0
  455. package/dist/core/config-viva/headers-vivos.d.ts.map +1 -0
  456. package/dist/core/config-viva/headers-vivos.js +43 -0
  457. package/dist/core/config-viva/headers-vivos.js.map +1 -0
  458. package/dist/core/config-viva/index.d.ts +16 -0
  459. package/dist/core/config-viva/index.d.ts.map +1 -0
  460. package/dist/core/config-viva/index.js +16 -0
  461. package/dist/core/config-viva/index.js.map +1 -0
  462. package/dist/core/config-viva/proveedor.d.ts +48 -0
  463. package/dist/core/config-viva/proveedor.d.ts.map +1 -0
  464. package/dist/core/config-viva/proveedor.js +78 -0
  465. package/dist/core/config-viva/proveedor.js.map +1 -0
  466. package/dist/core/context-breakdown.d.ts.map +1 -1
  467. package/dist/core/context-breakdown.js.map +1 -1
  468. package/dist/core/credenciales/cliente.d.ts.map +1 -1
  469. package/dist/core/credenciales/cliente.js.map +1 -1
  470. package/dist/core/credenciales/pool.d.ts +36 -1
  471. package/dist/core/credenciales/pool.d.ts.map +1 -1
  472. package/dist/core/credenciales/pool.js +56 -7
  473. package/dist/core/credenciales/pool.js.map +1 -1
  474. package/dist/core/credenciales/ranking.d.ts +56 -0
  475. package/dist/core/credenciales/ranking.d.ts.map +1 -0
  476. package/dist/core/credenciales/ranking.js +94 -0
  477. package/dist/core/credenciales/ranking.js.map +1 -0
  478. package/dist/core/credenciales/ratelimit.d.ts +54 -0
  479. package/dist/core/credenciales/ratelimit.d.ts.map +1 -0
  480. package/dist/core/credenciales/ratelimit.js +116 -0
  481. package/dist/core/credenciales/ratelimit.js.map +1 -0
  482. package/dist/core/credenciales/reposo.d.ts.map +1 -1
  483. package/dist/core/credenciales/reposo.js.map +1 -1
  484. package/dist/core/credenciales/servidor.d.ts +8 -0
  485. package/dist/core/credenciales/servidor.d.ts.map +1 -1
  486. package/dist/core/credenciales/servidor.js +9 -1
  487. package/dist/core/credenciales/servidor.js.map +1 -1
  488. package/dist/core/defaults.d.ts.map +1 -1
  489. package/dist/core/defaults.js.map +1 -1
  490. package/dist/core/descubrimiento/comandos.d.ts.map +1 -1
  491. package/dist/core/descubrimiento/comandos.js.map +1 -1
  492. package/dist/core/descubrimiento/mcp.d.ts +12 -0
  493. package/dist/core/descubrimiento/mcp.d.ts.map +1 -1
  494. package/dist/core/descubrimiento/mcp.js +32 -0
  495. package/dist/core/descubrimiento/mcp.js.map +1 -1
  496. package/dist/core/descubrimiento/reglas.d.ts.map +1 -1
  497. package/dist/core/descubrimiento/reglas.js.map +1 -1
  498. package/dist/core/descubrimiento/runtimes/index.d.ts +24 -0
  499. package/dist/core/descubrimiento/runtimes/index.d.ts.map +1 -0
  500. package/dist/core/descubrimiento/runtimes/index.js +109 -0
  501. package/dist/core/descubrimiento/runtimes/index.js.map +1 -0
  502. package/dist/core/descubrimiento/runtimes/litellm.d.ts +12 -0
  503. package/dist/core/descubrimiento/runtimes/litellm.d.ts.map +1 -0
  504. package/dist/core/descubrimiento/runtimes/litellm.js +185 -0
  505. package/dist/core/descubrimiento/runtimes/litellm.js.map +1 -0
  506. package/dist/core/descubrimiento/runtimes/lm-studio.d.ts +13 -0
  507. package/dist/core/descubrimiento/runtimes/lm-studio.d.ts.map +1 -0
  508. package/dist/core/descubrimiento/runtimes/lm-studio.js +142 -0
  509. package/dist/core/descubrimiento/runtimes/lm-studio.js.map +1 -0
  510. package/dist/core/descubrimiento/runtimes/ollama.d.ts +8 -0
  511. package/dist/core/descubrimiento/runtimes/ollama.d.ts.map +1 -0
  512. package/dist/core/descubrimiento/runtimes/ollama.js +96 -0
  513. package/dist/core/descubrimiento/runtimes/ollama.js.map +1 -0
  514. package/dist/core/descubrimiento/runtimes/tipos.d.ts +47 -0
  515. package/dist/core/descubrimiento/runtimes/tipos.d.ts.map +1 -0
  516. package/dist/core/descubrimiento/runtimes/tipos.js +10 -0
  517. package/dist/core/descubrimiento/runtimes/tipos.js.map +1 -0
  518. package/dist/core/descubrimiento/skills.d.ts.map +1 -1
  519. package/dist/core/descubrimiento/skills.js.map +1 -1
  520. package/dist/core/diagnostics.d.ts.map +1 -1
  521. package/dist/core/diagnostics.js.map +1 -1
  522. package/dist/core/dificultad/clasificador.d.ts.map +1 -1
  523. package/dist/core/dificultad/clasificador.js.map +1 -1
  524. package/dist/core/edicion/diario.d.ts.map +1 -1
  525. package/dist/core/edicion/diario.js.map +1 -1
  526. package/dist/core/edicion/hashline.d.ts.map +1 -1
  527. package/dist/core/edicion/hashline.js.map +1 -1
  528. package/dist/core/edicion/hueco.d.ts.map +1 -1
  529. package/dist/core/edicion/hueco.js.map +1 -1
  530. package/dist/core/edicion/ipynb.d.ts +51 -0
  531. package/dist/core/edicion/ipynb.d.ts.map +1 -0
  532. package/dist/core/edicion/ipynb.js +110 -0
  533. package/dist/core/edicion/ipynb.js.map +1 -0
  534. package/dist/core/edicion/limpiar-carga.d.ts.map +1 -1
  535. package/dist/core/edicion/limpiar-carga.js.map +1 -1
  536. package/dist/core/edicion/observador.d.ts.map +1 -1
  537. package/dist/core/edicion/observador.js.map +1 -1
  538. package/dist/core/edicion/parecido.d.ts.map +1 -1
  539. package/dist/core/edicion/parecido.js.map +1 -1
  540. package/dist/core/edicion/parseo.d.ts.map +1 -1
  541. package/dist/core/edicion/parseo.js.map +1 -1
  542. package/dist/core/edicion/portapapeles.d.ts +28 -0
  543. package/dist/core/edicion/portapapeles.d.ts.map +1 -0
  544. package/dist/core/edicion/portapapeles.js +49 -0
  545. package/dist/core/edicion/portapapeles.js.map +1 -0
  546. package/dist/core/edicion/reparacion.d.ts.map +1 -1
  547. package/dist/core/edicion/reparacion.js.map +1 -1
  548. package/dist/core/edicion/rutas-difusas.d.ts +44 -0
  549. package/dist/core/edicion/rutas-difusas.d.ts.map +1 -0
  550. package/dist/core/edicion/rutas-difusas.js +93 -0
  551. package/dist/core/edicion/rutas-difusas.js.map +1 -0
  552. package/dist/core/edicion/sangria.d.ts.map +1 -1
  553. package/dist/core/edicion/sangria.js.map +1 -1
  554. package/dist/core/edicion/tipos.d.ts.map +1 -1
  555. package/dist/core/edicion/tipos.js.map +1 -1
  556. package/dist/core/engine-personality.d.ts.map +1 -1
  557. package/dist/core/engine-personality.js.map +1 -1
  558. package/dist/core/errores/proveedor.d.ts.map +1 -1
  559. package/dist/core/errores/proveedor.js.map +1 -1
  560. package/dist/core/estructural/buscar.d.ts.map +1 -1
  561. package/dist/core/estructural/buscar.js.map +1 -1
  562. package/dist/core/estructural/editar.d.ts.map +1 -1
  563. package/dist/core/estructural/editar.js.map +1 -1
  564. package/dist/core/estructural/tools.d.ts.map +1 -1
  565. package/dist/core/estructural/tools.js.map +1 -1
  566. package/dist/core/event-bus.d.ts.map +1 -1
  567. package/dist/core/event-bus.js.map +1 -1
  568. package/dist/core/exec.d.ts.map +1 -1
  569. package/dist/core/exec.js.map +1 -1
  570. package/dist/core/experimental.d.ts.map +1 -1
  571. package/dist/core/experimental.js.map +1 -1
  572. package/dist/core/export-html/ansi-to-html.d.ts.map +1 -1
  573. package/dist/core/export-html/ansi-to-html.js.map +1 -1
  574. package/dist/core/export-html/index.d.ts.map +1 -1
  575. package/dist/core/export-html/index.js +183 -13
  576. package/dist/core/export-html/index.js.map +1 -1
  577. package/dist/core/export-html/template.css +88 -4
  578. package/dist/core/export-html/template.html +3 -1
  579. package/dist/core/export-html/template.js +84 -0
  580. package/dist/core/export-html/tool-renderer.d.ts.map +1 -1
  581. package/dist/core/export-html/tool-renderer.js.map +1 -1
  582. package/dist/core/extensiones/suplantacion.d.ts.map +1 -1
  583. package/dist/core/extensiones/suplantacion.js.map +1 -1
  584. package/dist/core/extensiones/vigilancia.d.ts.map +1 -1
  585. package/dist/core/extensiones/vigilancia.js.map +1 -1
  586. package/dist/core/extensions/index.d.ts.map +1 -1
  587. package/dist/core/extensions/index.js.map +1 -1
  588. package/dist/core/extensions/loader.d.ts.map +1 -1
  589. package/dist/core/extensions/loader.js.map +1 -1
  590. package/dist/core/extensions/runner.d.ts.map +1 -1
  591. package/dist/core/extensions/runner.js.map +1 -1
  592. package/dist/core/extensions/types.d.ts.map +1 -1
  593. package/dist/core/extensions/types.js.map +1 -1
  594. package/dist/core/extensions/wrapper.d.ts.map +1 -1
  595. package/dist/core/extensions/wrapper.js.map +1 -1
  596. package/dist/core/footer-data-provider.d.ts.map +1 -1
  597. package/dist/core/footer-data-provider.js.map +1 -1
  598. package/dist/core/gc/archivo-frio.d.ts +33 -0
  599. package/dist/core/gc/archivo-frio.d.ts.map +1 -0
  600. package/dist/core/gc/archivo-frio.js +152 -0
  601. package/dist/core/gc/archivo-frio.js.map +1 -0
  602. package/dist/core/gc/blobs-gc.d.ts +25 -0
  603. package/dist/core/gc/blobs-gc.d.ts.map +1 -0
  604. package/dist/core/gc/blobs-gc.js +143 -0
  605. package/dist/core/gc/blobs-gc.js.map +1 -0
  606. package/dist/core/gc/index.d.ts +42 -0
  607. package/dist/core/gc/index.d.ts.map +1 -0
  608. package/dist/core/gc/index.js +50 -0
  609. package/dist/core/gc/index.js.map +1 -0
  610. package/dist/core/gc/lock.d.ts +19 -0
  611. package/dist/core/gc/lock.d.ts.map +1 -0
  612. package/dist/core/gc/lock.js +48 -0
  613. package/dist/core/gc/lock.js.map +1 -0
  614. package/dist/core/gc/reconciliacion.d.ts +19 -0
  615. package/dist/core/gc/reconciliacion.d.ts.map +1 -0
  616. package/dist/core/gc/reconciliacion.js +102 -0
  617. package/dist/core/gc/reconciliacion.js.map +1 -0
  618. package/dist/core/gc/wal.d.ts +15 -0
  619. package/dist/core/gc/wal.d.ts.map +1 -0
  620. package/dist/core/gc/wal.js +44 -0
  621. package/dist/core/gc/wal.js.map +1 -0
  622. package/dist/core/harness/fuentes-de-contexto.d.ts.map +1 -1
  623. package/dist/core/harness/fuentes-de-contexto.js.map +1 -1
  624. package/dist/core/harness/refine.d.ts.map +1 -1
  625. package/dist/core/harness/refine.js.map +1 -1
  626. package/dist/core/harness/store.d.ts.map +1 -1
  627. package/dist/core/harness/store.js.map +1 -1
  628. package/dist/core/higiene/index.d.ts +8 -0
  629. package/dist/core/higiene/index.d.ts.map +1 -0
  630. package/dist/core/higiene/index.js +8 -0
  631. package/dist/core/higiene/index.js.map +1 -0
  632. package/dist/core/higiene/managed-timers.d.ts +19 -0
  633. package/dist/core/higiene/managed-timers.d.ts.map +1 -0
  634. package/dist/core/higiene/managed-timers.js +68 -0
  635. package/dist/core/higiene/managed-timers.js.map +1 -0
  636. package/dist/core/higiene/race-handler.d.ts +7 -0
  637. package/dist/core/higiene/race-handler.d.ts.map +1 -0
  638. package/dist/core/higiene/race-handler.js +32 -0
  639. package/dist/core/higiene/race-handler.js.map +1 -0
  640. package/dist/core/higiene/withHostGuard.d.ts +27 -0
  641. package/dist/core/higiene/withHostGuard.d.ts.map +1 -0
  642. package/dist/core/higiene/withHostGuard.js +79 -0
  643. package/dist/core/higiene/withHostGuard.js.map +1 -0
  644. package/dist/core/hooks/contract.d.ts.map +1 -1
  645. package/dist/core/hooks/contract.js.map +1 -1
  646. package/dist/core/hooks/runner.d.ts.map +1 -1
  647. package/dist/core/hooks/runner.js.map +1 -1
  648. package/dist/core/hooks/session-hooks.d.ts.map +1 -1
  649. package/dist/core/hooks/session-hooks.js.map +1 -1
  650. package/dist/core/hooks-ts/cargador.d.ts +29 -0
  651. package/dist/core/hooks-ts/cargador.d.ts.map +1 -0
  652. package/dist/core/hooks-ts/cargador.js +51 -0
  653. package/dist/core/hooks-ts/cargador.js.map +1 -0
  654. package/dist/core/hooks-ts/index.d.ts +25 -0
  655. package/dist/core/hooks-ts/index.d.ts.map +1 -0
  656. package/dist/core/hooks-ts/index.js +25 -0
  657. package/dist/core/hooks-ts/index.js.map +1 -0
  658. package/dist/core/hooks-ts/runner.d.ts +40 -0
  659. package/dist/core/hooks-ts/runner.d.ts.map +1 -0
  660. package/dist/core/hooks-ts/runner.js +95 -0
  661. package/dist/core/hooks-ts/runner.js.map +1 -0
  662. package/dist/core/hooks-ts/tipos.d.ts +69 -0
  663. package/dist/core/hooks-ts/tipos.d.ts.map +1 -0
  664. package/dist/core/hooks-ts/tipos.js +90 -0
  665. package/dist/core/hooks-ts/tipos.js.map +1 -0
  666. package/dist/core/http-dispatcher.d.ts.map +1 -1
  667. package/dist/core/http-dispatcher.js.map +1 -1
  668. package/dist/core/importar/formatos.d.ts.map +1 -1
  669. package/dist/core/importar/formatos.js.map +1 -1
  670. package/dist/core/index.d.ts.map +1 -1
  671. package/dist/core/index.js.map +1 -1
  672. package/dist/core/interactivo/deteccion.d.ts.map +1 -1
  673. package/dist/core/interactivo/deteccion.js.map +1 -1
  674. package/dist/core/interactivo/sesion.d.ts.map +1 -1
  675. package/dist/core/interactivo/sesion.js.map +1 -1
  676. package/dist/core/interactivo/tools.d.ts.map +1 -1
  677. package/dist/core/interactivo/tools.js.map +1 -1
  678. package/dist/core/keybindings.d.ts +170 -170
  679. package/dist/core/keybindings.d.ts.map +1 -1
  680. package/dist/core/keybindings.js.map +1 -1
  681. package/dist/core/lectura/mapa.d.ts.map +1 -1
  682. package/dist/core/lectura/mapa.js.map +1 -1
  683. package/dist/core/lectura/pdf.d.ts.map +1 -1
  684. package/dist/core/lectura/pdf.js.map +1 -1
  685. package/dist/core/lectura/sniffer.d.ts +54 -0
  686. package/dist/core/lectura/sniffer.d.ts.map +1 -0
  687. package/dist/core/lectura/sniffer.js +106 -0
  688. package/dist/core/lectura/sniffer.js.map +1 -0
  689. package/dist/core/limpieza/comprobadores.d.ts +16 -2
  690. package/dist/core/limpieza/comprobadores.d.ts.map +1 -1
  691. package/dist/core/limpieza/comprobadores.js +200 -6
  692. package/dist/core/limpieza/comprobadores.js.map +1 -1
  693. package/dist/core/limpieza/flujo.d.ts +36 -0
  694. package/dist/core/limpieza/flujo.d.ts.map +1 -0
  695. package/dist/core/limpieza/flujo.js +89 -0
  696. package/dist/core/limpieza/flujo.js.map +1 -0
  697. package/dist/core/limpieza/parseo.d.ts.map +1 -1
  698. package/dist/core/limpieza/parseo.js.map +1 -1
  699. package/dist/core/limpieza/peso.d.ts +17 -0
  700. package/dist/core/limpieza/peso.d.ts.map +1 -0
  701. package/dist/core/limpieza/peso.js +52 -0
  702. package/dist/core/limpieza/peso.js.map +1 -0
  703. package/dist/core/limpieza/pool.d.ts +44 -0
  704. package/dist/core/limpieza/pool.d.ts.map +1 -0
  705. package/dist/core/limpieza/pool.js +123 -0
  706. package/dist/core/limpieza/pool.js.map +1 -0
  707. package/dist/core/limpieza/reparacion.d.ts +19 -2
  708. package/dist/core/limpieza/reparacion.d.ts.map +1 -1
  709. package/dist/core/limpieza/reparacion.js +95 -8
  710. package/dist/core/limpieza/reparacion.js.map +1 -1
  711. package/dist/core/limpieza/tablero.d.ts +47 -0
  712. package/dist/core/limpieza/tablero.d.ts.map +1 -0
  713. package/dist/core/limpieza/tablero.js +78 -0
  714. package/dist/core/limpieza/tablero.js.map +1 -0
  715. package/dist/core/limpieza/tipos.d.ts +25 -0
  716. package/dist/core/limpieza/tipos.d.ts.map +1 -1
  717. package/dist/core/limpieza/tipos.js.map +1 -1
  718. package/dist/core/lsp/cliente.d.ts +7 -0
  719. package/dist/core/lsp/cliente.d.ts.map +1 -1
  720. package/dist/core/lsp/cliente.js +4 -2
  721. package/dist/core/lsp/cliente.js.map +1 -1
  722. package/dist/core/lsp/descubrimiento.d.ts.map +1 -1
  723. package/dist/core/lsp/descubrimiento.js.map +1 -1
  724. package/dist/core/lsp/ediciones.d.ts.map +1 -1
  725. package/dist/core/lsp/ediciones.js.map +1 -1
  726. package/dist/core/lsp/extension.d.ts +9 -0
  727. package/dist/core/lsp/extension.d.ts.map +1 -1
  728. package/dist/core/lsp/extension.js +60 -4
  729. package/dist/core/lsp/extension.js.map +1 -1
  730. package/dist/core/lsp/formato.d.ts +72 -0
  731. package/dist/core/lsp/formato.d.ts.map +1 -0
  732. package/dist/core/lsp/formato.js +117 -0
  733. package/dist/core/lsp/formato.js.map +1 -0
  734. package/dist/core/lsp/tools.d.ts +3 -3
  735. package/dist/core/lsp/tools.d.ts.map +1 -1
  736. package/dist/core/lsp/tools.js.map +1 -1
  737. package/dist/core/lsp/writethrough.d.ts +165 -0
  738. package/dist/core/lsp/writethrough.d.ts.map +1 -0
  739. package/dist/core/lsp/writethrough.js +282 -0
  740. package/dist/core/lsp/writethrough.js.map +1 -0
  741. package/dist/core/marketplace/catalogo.d.ts +32 -0
  742. package/dist/core/marketplace/catalogo.d.ts.map +1 -0
  743. package/dist/core/marketplace/catalogo.js +122 -0
  744. package/dist/core/marketplace/catalogo.js.map +1 -0
  745. package/dist/core/marketplace/doctor.d.ts +47 -0
  746. package/dist/core/marketplace/doctor.d.ts.map +1 -0
  747. package/dist/core/marketplace/doctor.js +155 -0
  748. package/dist/core/marketplace/doctor.js.map +1 -0
  749. package/dist/core/marketplace/features.d.ts +22 -0
  750. package/dist/core/marketplace/features.d.ts.map +1 -0
  751. package/dist/core/marketplace/features.js +70 -0
  752. package/dist/core/marketplace/features.js.map +1 -0
  753. package/dist/core/marketplace/index.d.ts +33 -0
  754. package/dist/core/marketplace/index.d.ts.map +1 -0
  755. package/dist/core/marketplace/index.js +33 -0
  756. package/dist/core/marketplace/index.js.map +1 -0
  757. package/dist/core/marketplace/instalar.d.ts +27 -0
  758. package/dist/core/marketplace/instalar.d.ts.map +1 -0
  759. package/dist/core/marketplace/instalar.js +50 -0
  760. package/dist/core/marketplace/instalar.js.map +1 -0
  761. package/dist/core/mcp/client.d.ts.map +1 -1
  762. package/dist/core/mcp/client.js.map +1 -1
  763. package/dist/core/mcp/manager.d.ts.map +1 -1
  764. package/dist/core/mcp/manager.js.map +1 -1
  765. package/dist/core/mcp/oauth.d.ts +138 -0
  766. package/dist/core/mcp/oauth.d.ts.map +1 -0
  767. package/dist/core/mcp/oauth.js +348 -0
  768. package/dist/core/mcp/oauth.js.map +1 -0
  769. package/dist/core/mcp/tools.d.ts.map +1 -1
  770. package/dist/core/mcp/tools.js.map +1 -1
  771. package/dist/core/memoria/almacen.d.ts +56 -0
  772. package/dist/core/memoria/almacen.d.ts.map +1 -0
  773. package/dist/core/memoria/almacen.js +214 -0
  774. package/dist/core/memoria/almacen.js.map +1 -0
  775. package/dist/core/memoria/dr/respaldo.d.ts +34 -0
  776. package/dist/core/memoria/dr/respaldo.d.ts.map +1 -0
  777. package/dist/core/memoria/dr/respaldo.js +133 -0
  778. package/dist/core/memoria/dr/respaldo.js.map +1 -0
  779. package/dist/core/memoria/embeddings.d.ts +21 -0
  780. package/dist/core/memoria/embeddings.d.ts.map +1 -0
  781. package/dist/core/memoria/embeddings.js +87 -0
  782. package/dist/core/memoria/embeddings.js.map +1 -0
  783. package/dist/core/memoria/grafo.d.ts +56 -0
  784. package/dist/core/memoria/grafo.d.ts.map +1 -0
  785. package/dist/core/memoria/grafo.js +143 -0
  786. package/dist/core/memoria/grafo.js.map +1 -0
  787. package/dist/core/memoria/redaccion.d.ts +32 -0
  788. package/dist/core/memoria/redaccion.d.ts.map +1 -0
  789. package/dist/core/memoria/redaccion.js +76 -0
  790. package/dist/core/memoria/redaccion.js.map +1 -0
  791. package/dist/core/memoria/servidor/almacen-json.d.ts +26 -0
  792. package/dist/core/memoria/servidor/almacen-json.d.ts.map +1 -0
  793. package/dist/core/memoria/servidor/almacen-json.js +90 -0
  794. package/dist/core/memoria/servidor/almacen-json.js.map +1 -0
  795. package/dist/core/memoria/servidor/servidor.d.ts +43 -0
  796. package/dist/core/memoria/servidor/servidor.d.ts.map +1 -0
  797. package/dist/core/memoria/servidor/servidor.js +195 -0
  798. package/dist/core/memoria/servidor/servidor.js.map +1 -0
  799. package/dist/core/memoria/servidor/tipos.d.ts +44 -0
  800. package/dist/core/memoria/servidor/tipos.d.ts.map +1 -0
  801. package/dist/core/memoria/servidor/tipos.js +12 -0
  802. package/dist/core/memoria/servidor/tipos.js.map +1 -0
  803. package/dist/core/memoria/tipos.d.ts +63 -0
  804. package/dist/core/memoria/tipos.d.ts.map +1 -0
  805. package/dist/core/memoria/tipos.js +14 -0
  806. package/dist/core/memoria/tipos.js.map +1 -0
  807. package/dist/core/memory-engine/audit-export.d.ts.map +1 -1
  808. package/dist/core/memory-engine/audit-export.js.map +1 -1
  809. package/dist/core/memory-engine/audit-indice.d.ts.map +1 -1
  810. package/dist/core/memory-engine/audit-indice.js.map +1 -1
  811. package/dist/core/memory-engine/audit.d.ts.map +1 -1
  812. package/dist/core/memory-engine/audit.js.map +1 -1
  813. package/dist/core/memory-engine/engine.d.ts +7 -0
  814. package/dist/core/memory-engine/engine.d.ts.map +1 -1
  815. package/dist/core/memory-engine/engine.js.map +1 -1
  816. package/dist/core/memory-engine/inverted-index.d.ts.map +1 -1
  817. package/dist/core/memory-engine/inverted-index.js.map +1 -1
  818. package/dist/core/memory-engine/keychain.d.ts.map +1 -1
  819. package/dist/core/memory-engine/keychain.js.map +1 -1
  820. package/dist/core/memory-engine/observation-store.d.ts +1 -0
  821. package/dist/core/memory-engine/observation-store.d.ts.map +1 -1
  822. package/dist/core/memory-engine/observation-store.js.map +1 -1
  823. package/dist/core/memory-engine/refinements.d.ts.map +1 -1
  824. package/dist/core/memory-engine/refinements.js.map +1 -1
  825. package/dist/core/memory-engine/scanner.d.ts.map +1 -1
  826. package/dist/core/memory-engine/scanner.js.map +1 -1
  827. package/dist/core/memory-engine/security.d.ts.map +1 -1
  828. package/dist/core/memory-engine/security.js.map +1 -1
  829. package/dist/core/memory-engine/session-indexer.d.ts.map +1 -1
  830. package/dist/core/memory-engine/session-indexer.js.map +1 -1
  831. package/dist/core/memory-engine/tools.d.ts.map +1 -1
  832. package/dist/core/memory-engine/tools.js.map +1 -1
  833. package/dist/core/memory-engine/types.d.ts.map +1 -1
  834. package/dist/core/memory-engine/types.js.map +1 -1
  835. package/dist/core/memory-engine/vault.d.ts.map +1 -1
  836. package/dist/core/memory-engine/vault.js.map +1 -1
  837. package/dist/core/messages.d.ts.map +1 -1
  838. package/dist/core/messages.js.map +1 -1
  839. package/dist/core/metaharness/cli.d.ts +19 -0
  840. package/dist/core/metaharness/cli.d.ts.map +1 -0
  841. package/dist/core/metaharness/cli.js +171 -0
  842. package/dist/core/metaharness/cli.js.map +1 -0
  843. package/dist/core/metaharness/comparar.d.ts +21 -0
  844. package/dist/core/metaharness/comparar.d.ts.map +1 -0
  845. package/dist/core/metaharness/comparar.js +64 -0
  846. package/dist/core/metaharness/comparar.js.map +1 -0
  847. package/dist/core/metaharness/ejecutar.d.ts +70 -0
  848. package/dist/core/metaharness/ejecutar.d.ts.map +1 -0
  849. package/dist/core/metaharness/ejecutar.js +249 -0
  850. package/dist/core/metaharness/ejecutar.js.map +1 -0
  851. package/dist/core/metaharness/tipos.d.ts +142 -0
  852. package/dist/core/metaharness/tipos.d.ts.map +1 -0
  853. package/dist/core/metaharness/tipos.js +17 -0
  854. package/dist/core/metaharness/tipos.js.map +1 -0
  855. package/dist/core/model-config.d.ts +8 -8
  856. package/dist/core/model-config.d.ts.map +1 -1
  857. package/dist/core/model-config.js.map +1 -1
  858. package/dist/core/model-registry.d.ts.map +1 -1
  859. package/dist/core/model-registry.js.map +1 -1
  860. package/dist/core/model-resolver.d.ts.map +1 -1
  861. package/dist/core/model-resolver.js.map +1 -1
  862. package/dist/core/model-runtime.d.ts.map +1 -1
  863. package/dist/core/model-runtime.js.map +1 -1
  864. package/dist/core/models-store.d.ts.map +1 -1
  865. package/dist/core/models-store.js.map +1 -1
  866. package/dist/core/muestreo-restringido.d.ts.map +1 -1
  867. package/dist/core/muestreo-restringido.js.map +1 -1
  868. package/dist/core/orphan-process-journal.d.ts.map +1 -1
  869. package/dist/core/orphan-process-journal.js.map +1 -1
  870. package/dist/core/output-guard.d.ts.map +1 -1
  871. package/dist/core/output-guard.js.map +1 -1
  872. package/dist/core/package-manager.d.ts.map +1 -1
  873. package/dist/core/package-manager.js.map +1 -1
  874. package/dist/core/parche/aplicar.d.ts +19 -0
  875. package/dist/core/parche/aplicar.d.ts.map +1 -0
  876. package/dist/core/parche/aplicar.js +243 -0
  877. package/dist/core/parche/aplicar.js.map +1 -0
  878. package/dist/core/parche/parser.d.ts +38 -0
  879. package/dist/core/parche/parser.d.ts.map +1 -0
  880. package/dist/core/parche/parser.js +217 -0
  881. package/dist/core/parche/parser.js.map +1 -0
  882. package/dist/core/parche/registro.d.ts +12 -0
  883. package/dist/core/parche/registro.d.ts.map +1 -0
  884. package/dist/core/parche/registro.js +58 -0
  885. package/dist/core/parche/registro.js.map +1 -0
  886. package/dist/core/perfiles/index.d.ts +22 -0
  887. package/dist/core/perfiles/index.d.ts.map +1 -0
  888. package/dist/core/perfiles/index.js +21 -0
  889. package/dist/core/perfiles/index.js.map +1 -0
  890. package/dist/core/perfiles/resolver.d.ts +51 -0
  891. package/dist/core/perfiles/resolver.d.ts.map +1 -0
  892. package/dist/core/perfiles/resolver.js +329 -0
  893. package/dist/core/perfiles/resolver.js.map +1 -0
  894. package/dist/core/perfiles/tipos.d.ts +69 -0
  895. package/dist/core/perfiles/tipos.d.ts.map +1 -0
  896. package/dist/core/perfiles/tipos.js +98 -0
  897. package/dist/core/perfiles/tipos.js.map +1 -0
  898. package/dist/core/pi-manifest.d.ts.map +1 -1
  899. package/dist/core/pi-manifest.js.map +1 -1
  900. package/dist/core/privacidad/categorias-especiales.d.ts.map +1 -1
  901. package/dist/core/privacidad/categorias-especiales.js +4 -0
  902. package/dist/core/privacidad/categorias-especiales.js.map +1 -1
  903. package/dist/core/privacidad/tapar.d.ts.map +1 -1
  904. package/dist/core/privacidad/tapar.js.map +1 -1
  905. package/dist/core/project-memory.d.ts.map +1 -1
  906. package/dist/core/project-memory.js.map +1 -1
  907. package/dist/core/project-trust.d.ts.map +1 -1
  908. package/dist/core/project-trust.js.map +1 -1
  909. package/dist/core/prompt-cache/diagnostics.d.ts.map +1 -1
  910. package/dist/core/prompt-cache/diagnostics.js.map +1 -1
  911. package/dist/core/prompt-cache/index.d.ts.map +1 -1
  912. package/dist/core/prompt-cache/index.js.map +1 -1
  913. package/dist/core/prompt-cache/payload.d.ts.map +1 -1
  914. package/dist/core/prompt-cache/payload.js.map +1 -1
  915. package/dist/core/prompt-cache/stabilize.d.ts.map +1 -1
  916. package/dist/core/prompt-cache/stabilize.js.map +1 -1
  917. package/dist/core/prompt-cache/stats.d.ts.map +1 -1
  918. package/dist/core/prompt-cache/stats.js.map +1 -1
  919. package/dist/core/prompt-eleccion.d.ts.map +1 -1
  920. package/dist/core/prompt-eleccion.js.map +1 -1
  921. package/dist/core/prompt-optimizer.d.ts.map +1 -1
  922. package/dist/core/prompt-optimizer.js.map +1 -1
  923. package/dist/core/prompt-templates.d.ts.map +1 -1
  924. package/dist/core/prompt-templates.js.map +1 -1
  925. package/dist/core/prompts/montar.d.ts.map +1 -1
  926. package/dist/core/prompts/montar.js.map +1 -1
  927. package/dist/core/prompts/plantilla.d.ts.map +1 -1
  928. package/dist/core/prompts/plantilla.js.map +1 -1
  929. package/dist/core/proveedores-registry/definiciones.d.ts +15 -0
  930. package/dist/core/proveedores-registry/definiciones.d.ts.map +1 -0
  931. package/dist/core/proveedores-registry/definiciones.js +22 -0
  932. package/dist/core/proveedores-registry/definiciones.js.map +1 -0
  933. package/dist/core/proveedores-registry/index.d.ts +14 -0
  934. package/dist/core/proveedores-registry/index.d.ts.map +1 -0
  935. package/dist/core/proveedores-registry/index.js +13 -0
  936. package/dist/core/proveedores-registry/index.js.map +1 -0
  937. package/dist/core/proveedores-registry/resolver.d.ts +25 -0
  938. package/dist/core/proveedores-registry/resolver.d.ts.map +1 -0
  939. package/dist/core/proveedores-registry/resolver.js +69 -0
  940. package/dist/core/proveedores-registry/resolver.js.map +1 -0
  941. package/dist/core/proveedores-registry/tipos.d.ts +47 -0
  942. package/dist/core/proveedores-registry/tipos.d.ts.map +1 -0
  943. package/dist/core/proveedores-registry/tipos.js +15 -0
  944. package/dist/core/proveedores-registry/tipos.js.map +1 -0
  945. package/dist/core/provider-attribution.d.ts.map +1 -1
  946. package/dist/core/provider-attribution.js.map +1 -1
  947. package/dist/core/provider-composer.d.ts.map +1 -1
  948. package/dist/core/provider-composer.js.map +1 -1
  949. package/dist/core/radius.d.ts.map +1 -1
  950. package/dist/core/radius.js.map +1 -1
  951. package/dist/core/remote-catalog-provider.d.ts.map +1 -1
  952. package/dist/core/remote-catalog-provider.js.map +1 -1
  953. package/dist/core/remoto/destino.d.ts.map +1 -1
  954. package/dist/core/remoto/destino.js.map +1 -1
  955. package/dist/core/remoto/ejecutor.d.ts.map +1 -1
  956. package/dist/core/remoto/ejecutor.js.map +1 -1
  957. package/dist/core/remoto/ficheros.d.ts.map +1 -1
  958. package/dist/core/remoto/ficheros.js.map +1 -1
  959. package/dist/core/remoto/registro-extension.d.ts.map +1 -1
  960. package/dist/core/remoto/registro-extension.js.map +1 -1
  961. package/dist/core/remoto/tools.d.ts.map +1 -1
  962. package/dist/core/remoto/tools.js.map +1 -1
  963. package/dist/core/reparacion/index.d.ts +2 -0
  964. package/dist/core/reparacion/index.d.ts.map +1 -0
  965. package/dist/core/reparacion/index.js +2 -0
  966. package/dist/core/reparacion/index.js.map +1 -0
  967. package/dist/core/reparacion/reparar-hunk.d.ts +27 -0
  968. package/dist/core/reparacion/reparar-hunk.d.ts.map +1 -0
  969. package/dist/core/reparacion/reparar-hunk.js +139 -0
  970. package/dist/core/reparacion/reparar-hunk.js.map +1 -0
  971. package/dist/core/resolve-config-value.d.ts.map +1 -1
  972. package/dist/core/resolve-config-value.js.map +1 -1
  973. package/dist/core/resource-loader.d.ts +13 -0
  974. package/dist/core/resource-loader.d.ts.map +1 -1
  975. package/dist/core/resource-loader.js +7 -4
  976. package/dist/core/resource-loader.js.map +1 -1
  977. package/dist/core/revision/dispositions.d.ts +86 -0
  978. package/dist/core/revision/dispositions.d.ts.map +1 -0
  979. package/dist/core/revision/dispositions.js +137 -0
  980. package/dist/core/revision/dispositions.js.map +1 -0
  981. package/dist/core/revision/hallazgo.d.ts.map +1 -1
  982. package/dist/core/revision/hallazgo.js.map +1 -1
  983. package/dist/core/revision/procedencia.d.ts +63 -0
  984. package/dist/core/revision/procedencia.d.ts.map +1 -0
  985. package/dist/core/revision/procedencia.js +72 -0
  986. package/dist/core/revision/procedencia.js.map +1 -0
  987. package/dist/core/revision/publicar.d.ts +26 -0
  988. package/dist/core/revision/publicar.d.ts.map +1 -0
  989. package/dist/core/revision/publicar.js +34 -0
  990. package/dist/core/revision/publicar.js.map +1 -0
  991. package/dist/core/revision/revisor.d.ts.map +1 -1
  992. package/dist/core/revision/revisor.js.map +1 -1
  993. package/dist/core/revision/sarif.d.ts.map +1 -1
  994. package/dist/core/revision/sarif.js.map +1 -1
  995. package/dist/core/router-uris/index.d.ts +12 -0
  996. package/dist/core/router-uris/index.d.ts.map +1 -0
  997. package/dist/core/router-uris/index.js +12 -0
  998. package/dist/core/router-uris/index.js.map +1 -0
  999. package/dist/core/router-uris/router.d.ts +2 -0
  1000. package/dist/core/router-uris/router.d.ts.map +1 -0
  1001. package/dist/core/router-uris/router.js +2 -0
  1002. package/dist/core/router-uris/router.js.map +1 -0
  1003. package/dist/core/runtime-credentials.d.ts.map +1 -1
  1004. package/dist/core/runtime-credentials.js.map +1 -1
  1005. package/dist/core/rutas/envoltorio.d.ts +20 -0
  1006. package/dist/core/rutas/envoltorio.d.ts.map +1 -0
  1007. package/dist/core/rutas/envoltorio.js +48 -0
  1008. package/dist/core/rutas/envoltorio.js.map +1 -0
  1009. package/dist/core/rutas/index.d.ts +11 -0
  1010. package/dist/core/rutas/index.d.ts.map +1 -0
  1011. package/dist/core/rutas/index.js +11 -0
  1012. package/dist/core/rutas/index.js.map +1 -0
  1013. package/dist/core/rutas/router.d.ts +82 -0
  1014. package/dist/core/rutas/router.d.ts.map +1 -0
  1015. package/dist/core/rutas/router.js +161 -0
  1016. package/dist/core/rutas/router.js.map +1 -0
  1017. package/dist/core/scheduler/scheduler.d.ts.map +1 -1
  1018. package/dist/core/scheduler/scheduler.js.map +1 -1
  1019. package/dist/core/sdk.d.ts.map +1 -1
  1020. package/dist/core/sdk.js.map +1 -1
  1021. package/dist/core/secretos/extension.d.ts +31 -0
  1022. package/dist/core/secretos/extension.d.ts.map +1 -0
  1023. package/dist/core/secretos/extension.js +64 -0
  1024. package/dist/core/secretos/extension.js.map +1 -0
  1025. package/dist/core/secretos/index.d.ts +75 -0
  1026. package/dist/core/secretos/index.d.ts.map +1 -0
  1027. package/dist/core/secretos/index.js +385 -0
  1028. package/dist/core/secretos/index.js.map +1 -0
  1029. package/dist/core/secretos/message-transform.d.ts +44 -0
  1030. package/dist/core/secretos/message-transform.d.ts.map +1 -0
  1031. package/dist/core/secretos/message-transform.js +246 -0
  1032. package/dist/core/secretos/message-transform.js.map +1 -0
  1033. package/dist/core/secretos/obfuscator.d.ts +30 -0
  1034. package/dist/core/secretos/obfuscator.d.ts.map +1 -0
  1035. package/dist/core/secretos/obfuscator.js +1182 -0
  1036. package/dist/core/secretos/obfuscator.js.map +1 -0
  1037. package/dist/core/secretos/placeholder-scan.d.ts +96 -0
  1038. package/dist/core/secretos/placeholder-scan.d.ts.map +1 -0
  1039. package/dist/core/secretos/placeholder-scan.js +433 -0
  1040. package/dist/core/secretos/placeholder-scan.js.map +1 -0
  1041. package/dist/core/secretos/placeholder.d.ts +95 -0
  1042. package/dist/core/secretos/placeholder.d.ts.map +1 -0
  1043. package/dist/core/secretos/placeholder.js +283 -0
  1044. package/dist/core/secretos/placeholder.js.map +1 -0
  1045. package/dist/core/secretos/regex.d.ts +3 -0
  1046. package/dist/core/secretos/regex.d.ts.map +1 -0
  1047. package/dist/core/secretos/regex.js +19 -0
  1048. package/dist/core/secretos/regex.js.map +1 -0
  1049. package/dist/core/secretos/replacement.d.ts +83 -0
  1050. package/dist/core/secretos/replacement.d.ts.map +1 -0
  1051. package/dist/core/secretos/replacement.js +211 -0
  1052. package/dist/core/secretos/replacement.js.map +1 -0
  1053. package/dist/core/sesion/cerrar-llamadas-abiertas.d.ts.map +1 -1
  1054. package/dist/core/sesion/cerrar-llamadas-abiertas.js.map +1 -1
  1055. package/dist/core/sesion/journal-tree.d.ts +73 -0
  1056. package/dist/core/sesion/journal-tree.d.ts.map +1 -0
  1057. package/dist/core/sesion/journal-tree.js +241 -0
  1058. package/dist/core/sesion/journal-tree.js.map +1 -0
  1059. package/dist/core/sesion/turn-recovery.d.ts +48 -0
  1060. package/dist/core/sesion/turn-recovery.d.ts.map +1 -0
  1061. package/dist/core/sesion/turn-recovery.js +182 -0
  1062. package/dist/core/sesion/turn-recovery.js.map +1 -0
  1063. package/dist/core/session-cwd.d.ts.map +1 -1
  1064. package/dist/core/session-cwd.js.map +1 -1
  1065. package/dist/core/session-manager.d.ts.map +1 -1
  1066. package/dist/core/session-manager.js.map +1 -1
  1067. package/dist/core/settings-diagnostics.d.ts.map +1 -1
  1068. package/dist/core/settings-diagnostics.js.map +1 -1
  1069. package/dist/core/settings-manager.d.ts +2 -2
  1070. package/dist/core/settings-manager.d.ts.map +1 -1
  1071. package/dist/core/settings-manager.js.map +1 -1
  1072. package/dist/core/share/cifrado.d.ts +39 -0
  1073. package/dist/core/share/cifrado.d.ts.map +1 -0
  1074. package/dist/core/share/cifrado.js +81 -0
  1075. package/dist/core/share/cifrado.js.map +1 -0
  1076. package/dist/core/share/exportar.d.ts +69 -0
  1077. package/dist/core/share/exportar.d.ts.map +1 -0
  1078. package/dist/core/share/exportar.js +247 -0
  1079. package/dist/core/share/exportar.js.map +1 -0
  1080. package/dist/core/skills.d.ts.map +1 -1
  1081. package/dist/core/skills.js.map +1 -1
  1082. package/dist/core/slash-commands.d.ts.map +1 -1
  1083. package/dist/core/slash-commands.js.map +1 -1
  1084. package/dist/core/source-info.d.ts.map +1 -1
  1085. package/dist/core/source-info.js.map +1 -1
  1086. package/dist/core/stream-guard/guardia.d.ts +45 -0
  1087. package/dist/core/stream-guard/guardia.d.ts.map +1 -0
  1088. package/dist/core/stream-guard/guardia.js +100 -0
  1089. package/dist/core/stream-guard/guardia.js.map +1 -0
  1090. package/dist/core/stream-guard/index.d.ts +9 -0
  1091. package/dist/core/stream-guard/index.d.ts.map +1 -0
  1092. package/dist/core/stream-guard/index.js +7 -0
  1093. package/dist/core/stream-guard/index.js.map +1 -0
  1094. package/dist/core/stream-guard/replay.d.ts +39 -0
  1095. package/dist/core/stream-guard/replay.d.ts.map +1 -0
  1096. package/dist/core/stream-guard/replay.js +68 -0
  1097. package/dist/core/stream-guard/replay.js.map +1 -0
  1098. package/dist/core/system-prompt.d.ts.map +1 -1
  1099. package/dist/core/system-prompt.js.map +1 -1
  1100. package/dist/core/telemetria/otlp.d.ts.map +1 -1
  1101. package/dist/core/telemetria/otlp.js.map +1 -1
  1102. package/dist/core/telemetry/otel-genai.d.ts +44 -0
  1103. package/dist/core/telemetry/otel-genai.d.ts.map +1 -0
  1104. package/dist/core/telemetry/otel-genai.js +124 -0
  1105. package/dist/core/telemetry/otel-genai.js.map +1 -0
  1106. package/dist/core/telemetry.d.ts.map +1 -1
  1107. package/dist/core/telemetry.js.map +1 -1
  1108. package/dist/core/terminal/backlog-guard.d.ts +53 -0
  1109. package/dist/core/terminal/backlog-guard.d.ts.map +1 -0
  1110. package/dist/core/terminal/backlog-guard.js +122 -0
  1111. package/dist/core/terminal/backlog-guard.js.map +1 -0
  1112. package/dist/core/terminal/conpty.d.ts +29 -0
  1113. package/dist/core/terminal/conpty.d.ts.map +1 -0
  1114. package/dist/core/terminal/conpty.js +67 -0
  1115. package/dist/core/terminal/conpty.js.map +1 -0
  1116. package/dist/core/terminal/conptyChunking.d.ts +2 -0
  1117. package/dist/core/terminal/conptyChunking.d.ts.map +1 -0
  1118. package/dist/core/terminal/conptyChunking.js +2 -0
  1119. package/dist/core/terminal/conptyChunking.js.map +1 -0
  1120. package/dist/core/terminal/index.d.ts +5 -0
  1121. package/dist/core/terminal/index.d.ts.map +1 -0
  1122. package/dist/core/terminal/index.js +5 -0
  1123. package/dist/core/terminal/index.js.map +1 -0
  1124. package/dist/core/terminal/loop-watchdog.d.ts +43 -0
  1125. package/dist/core/terminal/loop-watchdog.d.ts.map +1 -0
  1126. package/dist/core/terminal/loop-watchdog.js +117 -0
  1127. package/dist/core/terminal/loop-watchdog.js.map +1 -0
  1128. package/dist/core/terminal/runner.d.ts +55 -0
  1129. package/dist/core/terminal/runner.d.ts.map +1 -0
  1130. package/dist/core/terminal/runner.js +102 -0
  1131. package/dist/core/terminal/runner.js.map +1 -0
  1132. package/dist/core/timings.d.ts.map +1 -1
  1133. package/dist/core/timings.js.map +1 -1
  1134. package/dist/core/tools/apply_patch.d.ts +29 -0
  1135. package/dist/core/tools/apply_patch.d.ts.map +1 -0
  1136. package/dist/core/tools/apply_patch.js +54 -0
  1137. package/dist/core/tools/apply_patch.js.map +1 -0
  1138. package/dist/core/tools/bash.d.ts.map +1 -1
  1139. package/dist/core/tools/bash.js.map +1 -1
  1140. package/dist/core/tools/coercion-argumentos.d.ts.map +1 -1
  1141. package/dist/core/tools/coercion-argumentos.js.map +1 -1
  1142. package/dist/core/tools/edit-diff.d.ts.map +1 -1
  1143. package/dist/core/tools/edit-diff.js.map +1 -1
  1144. package/dist/core/tools/edit.d.ts.map +1 -1
  1145. package/dist/core/tools/edit.js +43 -1
  1146. package/dist/core/tools/edit.js.map +1 -1
  1147. package/dist/core/tools/file-mutation-queue.d.ts.map +1 -1
  1148. package/dist/core/tools/file-mutation-queue.js.map +1 -1
  1149. package/dist/core/tools/find.d.ts.map +1 -1
  1150. package/dist/core/tools/find.js.map +1 -1
  1151. package/dist/core/tools/grep.d.ts.map +1 -1
  1152. package/dist/core/tools/grep.js.map +1 -1
  1153. package/dist/core/tools/index.d.ts.map +1 -1
  1154. package/dist/core/tools/index.js.map +1 -1
  1155. package/dist/core/tools/json-tolerante.d.ts.map +1 -1
  1156. package/dist/core/tools/json-tolerante.js.map +1 -1
  1157. package/dist/core/tools/ls.d.ts.map +1 -1
  1158. package/dist/core/tools/ls.js.map +1 -1
  1159. package/dist/core/tools/noop-loop-guard.d.ts +46 -0
  1160. package/dist/core/tools/noop-loop-guard.d.ts.map +1 -0
  1161. package/dist/core/tools/noop-loop-guard.js +57 -0
  1162. package/dist/core/tools/noop-loop-guard.js.map +1 -0
  1163. package/dist/core/tools/output-accumulator.d.ts.map +1 -1
  1164. package/dist/core/tools/output-accumulator.js.map +1 -1
  1165. package/dist/core/tools/path-utils.d.ts.map +1 -1
  1166. package/dist/core/tools/path-utils.js.map +1 -1
  1167. package/dist/core/tools/project-memory-tool.d.ts.map +1 -1
  1168. package/dist/core/tools/project-memory-tool.js.map +1 -1
  1169. package/dist/core/tools/read.d.ts.map +1 -1
  1170. package/dist/core/tools/read.js.map +1 -1
  1171. package/dist/core/tools/render-utils.d.ts.map +1 -1
  1172. package/dist/core/tools/render-utils.js.map +1 -1
  1173. package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -1
  1174. package/dist/core/tools/tool-definition-wrapper.js.map +1 -1
  1175. package/dist/core/tools/truncate.d.ts.map +1 -1
  1176. package/dist/core/tools/truncate.js.map +1 -1
  1177. package/dist/core/tools/write.d.ts.map +1 -1
  1178. package/dist/core/tools/write.js.map +1 -1
  1179. package/dist/core/trust-manager.d.ts.map +1 -1
  1180. package/dist/core/trust-manager.js.map +1 -1
  1181. package/dist/core/ttsr/captura.d.ts +72 -0
  1182. package/dist/core/ttsr/captura.d.ts.map +1 -0
  1183. package/dist/core/ttsr/captura.js +183 -0
  1184. package/dist/core/ttsr/captura.js.map +1 -0
  1185. package/dist/core/ttsr/index.d.ts +24 -0
  1186. package/dist/core/ttsr/index.d.ts.map +1 -0
  1187. package/dist/core/ttsr/index.js +57 -0
  1188. package/dist/core/ttsr/index.js.map +1 -0
  1189. package/dist/core/ttsr/preview.d.ts +48 -0
  1190. package/dist/core/ttsr/preview.d.ts.map +1 -0
  1191. package/dist/core/ttsr/preview.js +83 -0
  1192. package/dist/core/ttsr/preview.js.map +1 -0
  1193. package/dist/core/turno-vacio/detectar.d.ts.map +1 -1
  1194. package/dist/core/turno-vacio/detectar.js.map +1 -1
  1195. package/dist/core/undo/journal.d.ts.map +1 -1
  1196. package/dist/core/undo/journal.js.map +1 -1
  1197. package/dist/core/urls-internas/auditoria.d.ts.map +1 -1
  1198. package/dist/core/urls-internas/auditoria.js.map +1 -1
  1199. package/dist/core/urls-internas/boveda.d.ts.map +1 -1
  1200. package/dist/core/urls-internas/boveda.js.map +1 -1
  1201. package/dist/core/urls-internas/lector.d.ts +14 -10
  1202. package/dist/core/urls-internas/lector.d.ts.map +1 -1
  1203. package/dist/core/urls-internas/lector.js +50 -36
  1204. package/dist/core/urls-internas/lector.js.map +1 -1
  1205. package/dist/core/urls-internas/memoria.d.ts.map +1 -1
  1206. package/dist/core/urls-internas/memoria.js.map +1 -1
  1207. package/dist/core/urls-internas/parse.d.ts +6 -13
  1208. package/dist/core/urls-internas/parse.d.ts.map +1 -1
  1209. package/dist/core/urls-internas/parse.js +6 -17
  1210. package/dist/core/urls-internas/parse.js.map +1 -1
  1211. package/dist/core/urls-internas/reglas.d.ts.map +1 -1
  1212. package/dist/core/urls-internas/reglas.js.map +1 -1
  1213. package/dist/core/usage/aggregate.d.ts +1 -0
  1214. package/dist/core/usage/aggregate.d.ts.map +1 -1
  1215. package/dist/core/usage/aggregate.js +1 -1
  1216. package/dist/core/usage/aggregate.js.map +1 -1
  1217. package/dist/core/usage/cuota/anthropic.d.ts.map +1 -1
  1218. package/dist/core/usage/cuota/anthropic.js.map +1 -1
  1219. package/dist/core/usage/cuota/cache.d.ts.map +1 -1
  1220. package/dist/core/usage/cuota/cache.js.map +1 -1
  1221. package/dist/core/usage/cuota/github-copilot.d.ts.map +1 -1
  1222. package/dist/core/usage/cuota/github-copilot.js.map +1 -1
  1223. package/dist/core/usage/cuota/google-gemini.d.ts.map +1 -1
  1224. package/dist/core/usage/cuota/google-gemini.js.map +1 -1
  1225. package/dist/core/usage/cuota/index.d.ts.map +1 -1
  1226. package/dist/core/usage/cuota/index.js.map +1 -1
  1227. package/dist/core/usage/cuota/openai-codex.d.ts.map +1 -1
  1228. package/dist/core/usage/cuota/openai-codex.js.map +1 -1
  1229. package/dist/core/usage/cuota/openrouter.d.ts.map +1 -1
  1230. package/dist/core/usage/cuota/openrouter.js.map +1 -1
  1231. package/dist/core/usage/cuota/tipos.d.ts.map +1 -1
  1232. package/dist/core/usage/cuota/tipos.js.map +1 -1
  1233. package/dist/core/usage/index.d.ts +11 -0
  1234. package/dist/core/usage/index.d.ts.map +1 -0
  1235. package/dist/core/usage/index.js +11 -0
  1236. package/dist/core/usage/index.js.map +1 -0
  1237. package/dist/core/usage/multi.d.ts +62 -0
  1238. package/dist/core/usage/multi.d.ts.map +1 -0
  1239. package/dist/core/usage/multi.js +122 -0
  1240. package/dist/core/usage/multi.js.map +1 -0
  1241. package/dist/core/usage/redaccion.d.ts +48 -0
  1242. package/dist/core/usage/redaccion.d.ts.map +1 -0
  1243. package/dist/core/usage/redaccion.js +72 -0
  1244. package/dist/core/usage/redaccion.js.map +1 -0
  1245. package/dist/core/usage-totals.d.ts.map +1 -1
  1246. package/dist/core/usage-totals.js.map +1 -1
  1247. package/dist/core/utils/atomic-write.d.ts +55 -0
  1248. package/dist/core/utils/atomic-write.d.ts.map +1 -0
  1249. package/dist/core/utils/atomic-write.js +293 -0
  1250. package/dist/core/utils/atomic-write.js.map +1 -0
  1251. package/dist/core/utils/git.d.ts +24 -0
  1252. package/dist/core/utils/git.d.ts.map +1 -0
  1253. package/dist/core/utils/git.js +107 -0
  1254. package/dist/core/utils/git.js.map +1 -0
  1255. package/dist/core/utils/logger.d.ts +26 -0
  1256. package/dist/core/utils/logger.d.ts.map +1 -0
  1257. package/dist/core/utils/logger.js +104 -0
  1258. package/dist/core/utils/logger.js.map +1 -0
  1259. package/dist/core/utils/shell-snapshot.d.ts +21 -0
  1260. package/dist/core/utils/shell-snapshot.d.ts.map +1 -0
  1261. package/dist/core/utils/shell-snapshot.js +32 -0
  1262. package/dist/core/utils/shell-snapshot.js.map +1 -0
  1263. package/dist/core/utils/startup-watchdog.d.ts +11 -0
  1264. package/dist/core/utils/startup-watchdog.d.ts.map +1 -0
  1265. package/dist/core/utils/startup-watchdog.js +34 -0
  1266. package/dist/core/utils/startup-watchdog.js.map +1 -0
  1267. package/dist/core/utils/tls-ca-shim.d.ts +17 -0
  1268. package/dist/core/utils/tls-ca-shim.d.ts.map +1 -0
  1269. package/dist/core/utils/tls-ca-shim.js +33 -0
  1270. package/dist/core/utils/tls-ca-shim.js.map +1 -0
  1271. package/dist/core/web/agregador.d.ts +67 -0
  1272. package/dist/core/web/agregador.d.ts.map +1 -0
  1273. package/dist/core/web/agregador.js +182 -0
  1274. package/dist/core/web/agregador.js.map +1 -0
  1275. package/dist/core/web/busqueda-nativa.d.ts.map +1 -1
  1276. package/dist/core/web/busqueda-nativa.js.map +1 -1
  1277. package/dist/core/web/consulta.d.ts +53 -0
  1278. package/dist/core/web/consulta.d.ts.map +1 -0
  1279. package/dist/core/web/consulta.js +213 -0
  1280. package/dist/core/web/consulta.js.map +1 -0
  1281. package/dist/core/web/destino.d.ts +11 -0
  1282. package/dist/core/web/destino.d.ts.map +1 -1
  1283. package/dist/core/web/destino.js +35 -0
  1284. package/dist/core/web/destino.js.map +1 -1
  1285. package/dist/core/web/load-page.d.ts +52 -0
  1286. package/dist/core/web/load-page.d.ts.map +1 -0
  1287. package/dist/core/web/load-page.js +221 -0
  1288. package/dist/core/web/load-page.js.map +1 -0
  1289. package/dist/core/web/proveedores/brave.d.ts.map +1 -1
  1290. package/dist/core/web/proveedores/brave.js.map +1 -1
  1291. package/dist/core/web/proveedores/claves.d.ts.map +1 -1
  1292. package/dist/core/web/proveedores/claves.js.map +1 -1
  1293. package/dist/core/web/proveedores/duckduckgo.d.ts.map +1 -1
  1294. package/dist/core/web/proveedores/duckduckgo.js.map +1 -1
  1295. package/dist/core/web/proveedores/ecosia.d.ts.map +1 -1
  1296. package/dist/core/web/proveedores/ecosia.js.map +1 -1
  1297. package/dist/core/web/proveedores/exa.d.ts.map +1 -1
  1298. package/dist/core/web/proveedores/exa.js.map +1 -1
  1299. package/dist/core/web/proveedores/mojeek.d.ts.map +1 -1
  1300. package/dist/core/web/proveedores/mojeek.js.map +1 -1
  1301. package/dist/core/web/proveedores/navegador.d.ts.map +1 -1
  1302. package/dist/core/web/proveedores/navegador.js.map +1 -1
  1303. package/dist/core/web/proveedores/registro.d.ts.map +1 -1
  1304. package/dist/core/web/proveedores/registro.js.map +1 -1
  1305. package/dist/core/web/proveedores/searxng.d.ts.map +1 -1
  1306. package/dist/core/web/proveedores/searxng.js.map +1 -1
  1307. package/dist/core/web/proveedores/serper.d.ts.map +1 -1
  1308. package/dist/core/web/proveedores/serper.js.map +1 -1
  1309. package/dist/core/web/proveedores/tavily.d.ts.map +1 -1
  1310. package/dist/core/web/proveedores/tavily.js.map +1 -1
  1311. package/dist/core/web/proveedores/tipos.d.ts.map +1 -1
  1312. package/dist/core/web/proveedores/tipos.js.map +1 -1
  1313. package/dist/core/web/registro-red.d.ts.map +1 -1
  1314. package/dist/core/web/registro-red.js.map +1 -1
  1315. package/dist/core/web/scrapers/cisa-kev.d.ts.map +1 -1
  1316. package/dist/core/web/scrapers/cisa-kev.js.map +1 -1
  1317. package/dist/core/web/scrapers/crates-io.d.ts.map +1 -1
  1318. package/dist/core/web/scrapers/crates-io.js.map +1 -1
  1319. package/dist/core/web/scrapers/docs-rs.d.ts.map +1 -1
  1320. package/dist/core/web/scrapers/docs-rs.js.map +1 -1
  1321. package/dist/core/web/scrapers/github.d.ts.map +1 -1
  1322. package/dist/core/web/scrapers/github.js.map +1 -1
  1323. package/dist/core/web/scrapers/go-pkg.d.ts.map +1 -1
  1324. package/dist/core/web/scrapers/go-pkg.js.map +1 -1
  1325. package/dist/core/web/scrapers/hex.d.ts.map +1 -1
  1326. package/dist/core/web/scrapers/hex.js.map +1 -1
  1327. package/dist/core/web/scrapers/maven.d.ts.map +1 -1
  1328. package/dist/core/web/scrapers/maven.js.map +1 -1
  1329. package/dist/core/web/scrapers/mdn.d.ts.map +1 -1
  1330. package/dist/core/web/scrapers/mdn.js.map +1 -1
  1331. package/dist/core/web/scrapers/npm.d.ts.map +1 -1
  1332. package/dist/core/web/scrapers/npm.js.map +1 -1
  1333. package/dist/core/web/scrapers/nuget.d.ts.map +1 -1
  1334. package/dist/core/web/scrapers/nuget.js.map +1 -1
  1335. package/dist/core/web/scrapers/nvd.d.ts.map +1 -1
  1336. package/dist/core/web/scrapers/nvd.js.map +1 -1
  1337. package/dist/core/web/scrapers/pypi.d.ts.map +1 -1
  1338. package/dist/core/web/scrapers/pypi.js.map +1 -1
  1339. package/dist/core/web/scrapers/registro.d.ts.map +1 -1
  1340. package/dist/core/web/scrapers/registro.js.map +1 -1
  1341. package/dist/core/web/scrapers/rubygems.d.ts.map +1 -1
  1342. package/dist/core/web/scrapers/rubygems.js.map +1 -1
  1343. package/dist/core/web/scrapers/stackoverflow.d.ts.map +1 -1
  1344. package/dist/core/web/scrapers/stackoverflow.js.map +1 -1
  1345. package/dist/core/web/scrapers/tipos.d.ts.map +1 -1
  1346. package/dist/core/web/scrapers/tipos.js.map +1 -1
  1347. package/dist/core/web/texto.d.ts.map +1 -1
  1348. package/dist/core/web/texto.js.map +1 -1
  1349. package/dist/core/web/tools.d.ts +1 -8
  1350. package/dist/core/web/tools.d.ts.map +1 -1
  1351. package/dist/core/web/tools.js +2 -33
  1352. package/dist/core/web/tools.js.map +1 -1
  1353. package/dist/core/wiki/almacen.d.ts.map +1 -1
  1354. package/dist/core/wiki/almacen.js.map +1 -1
  1355. package/dist/core/wiki/citas.d.ts.map +1 -1
  1356. package/dist/core/wiki/citas.js.map +1 -1
  1357. package/dist/core/workflows/agent-runner.d.ts.map +1 -1
  1358. package/dist/core/workflows/agent-runner.js.map +1 -1
  1359. package/dist/core/workflows/builtins.d.ts.map +1 -1
  1360. package/dist/core/workflows/builtins.js.map +1 -1
  1361. package/dist/core/workflows/contrato/esquema.d.ts.map +1 -1
  1362. package/dist/core/workflows/contrato/esquema.js.map +1 -1
  1363. package/dist/core/workflows/contrato/reparar-argumentos.d.ts.map +1 -1
  1364. package/dist/core/workflows/contrato/reparar-argumentos.js.map +1 -1
  1365. package/dist/core/workflows/contrato/validador.d.ts.map +1 -1
  1366. package/dist/core/workflows/contrato/validador.js.map +1 -1
  1367. package/dist/core/workflows/contrato/yield.d.ts.map +1 -1
  1368. package/dist/core/workflows/contrato/yield.js.map +1 -1
  1369. package/dist/core/workflows/goal-engine/engine.d.ts +5 -0
  1370. package/dist/core/workflows/goal-engine/engine.d.ts.map +1 -1
  1371. package/dist/core/workflows/goal-engine/engine.js.map +1 -1
  1372. package/dist/core/workflows/goal-engine/errors.d.ts.map +1 -1
  1373. package/dist/core/workflows/goal-engine/errors.js.map +1 -1
  1374. package/dist/core/workflows/goal-engine/index.d.ts.map +1 -1
  1375. package/dist/core/workflows/goal-engine/index.js.map +1 -1
  1376. package/dist/core/workflows/goal-engine/persistence.d.ts.map +1 -1
  1377. package/dist/core/workflows/goal-engine/persistence.js.map +1 -1
  1378. package/dist/core/workflows/goal-engine/prompts.d.ts.map +1 -1
  1379. package/dist/core/workflows/goal-engine/prompts.js.map +1 -1
  1380. package/dist/core/workflows/goal-engine/state.d.ts.map +1 -1
  1381. package/dist/core/workflows/goal-engine/state.js.map +1 -1
  1382. package/dist/core/workflows/goal-engine/tools.d.ts.map +1 -1
  1383. package/dist/core/workflows/goal-engine/tools.js.map +1 -1
  1384. package/dist/core/workflows/goal-engine/types.d.ts.map +1 -1
  1385. package/dist/core/workflows/goal-engine/types.js.map +1 -1
  1386. package/dist/core/workflows/goal-engine/worktree-fingerprint.d.ts.map +1 -1
  1387. package/dist/core/workflows/goal-engine/worktree-fingerprint.js.map +1 -1
  1388. package/dist/core/workflows/graph-sync.d.ts.map +1 -1
  1389. package/dist/core/workflows/graph-sync.js.map +1 -1
  1390. package/dist/core/workflows/graph.d.ts.map +1 -1
  1391. package/dist/core/workflows/graph.js.map +1 -1
  1392. package/dist/core/workflows/index.d.ts +6 -0
  1393. package/dist/core/workflows/index.d.ts.map +1 -1
  1394. package/dist/core/workflows/index.js +3 -0
  1395. package/dist/core/workflows/index.js.map +1 -1
  1396. package/dist/core/workflows/journal.d.ts.map +1 -1
  1397. package/dist/core/workflows/journal.js.map +1 -1
  1398. package/dist/core/workflows/manager.d.ts.map +1 -1
  1399. package/dist/core/workflows/manager.js.map +1 -1
  1400. package/dist/core/workflows/provider-caps.d.ts +103 -0
  1401. package/dist/core/workflows/provider-caps.d.ts.map +1 -0
  1402. package/dist/core/workflows/provider-caps.js +235 -0
  1403. package/dist/core/workflows/provider-caps.js.map +1 -0
  1404. package/dist/core/workflows/resolve-script.d.ts.map +1 -1
  1405. package/dist/core/workflows/resolve-script.js.map +1 -1
  1406. package/dist/core/workflows/runtime.d.ts.map +1 -1
  1407. package/dist/core/workflows/runtime.js.map +1 -1
  1408. package/dist/core/workflows/save-as-skill.d.ts.map +1 -1
  1409. package/dist/core/workflows/save-as-skill.js.map +1 -1
  1410. package/dist/core/workflows/shared-store.d.ts.map +1 -1
  1411. package/dist/core/workflows/shared-store.js.map +1 -1
  1412. package/dist/core/workflows/soft-budget.d.ts +27 -0
  1413. package/dist/core/workflows/soft-budget.d.ts.map +1 -0
  1414. package/dist/core/workflows/soft-budget.js +47 -0
  1415. package/dist/core/workflows/soft-budget.js.map +1 -0
  1416. package/dist/core/workflows/subagent-host.d.ts.map +1 -1
  1417. package/dist/core/workflows/subagent-host.js.map +1 -1
  1418. package/dist/core/workflows/tool-scheduling.d.ts +47 -0
  1419. package/dist/core/workflows/tool-scheduling.d.ts.map +1 -0
  1420. package/dist/core/workflows/tool-scheduling.js +102 -0
  1421. package/dist/core/workflows/tool-scheduling.js.map +1 -0
  1422. package/dist/core/workflows/tool-workflow.d.ts.map +1 -1
  1423. package/dist/core/workflows/tool-workflow.js.map +1 -1
  1424. package/dist/core/workflows/types.d.ts.map +1 -1
  1425. package/dist/core/workflows/types.js.map +1 -1
  1426. package/dist/core/workflows/worktree.d.ts.map +1 -1
  1427. package/dist/core/workflows/worktree.js.map +1 -1
  1428. package/dist/extensions/index.d.ts.map +1 -1
  1429. package/dist/extensions/index.js.map +1 -1
  1430. package/dist/extensions/llama/client.d.ts.map +1 -1
  1431. package/dist/extensions/llama/client.js.map +1 -1
  1432. package/dist/extensions/llama/huggingface.d.ts.map +1 -1
  1433. package/dist/extensions/llama/huggingface.js.map +1 -1
  1434. package/dist/extensions/llama/index.d.ts.map +1 -1
  1435. package/dist/extensions/llama/index.js.map +1 -1
  1436. package/dist/extensions/llama/provider.d.ts.map +1 -1
  1437. package/dist/extensions/llama/provider.js.map +1 -1
  1438. package/dist/extensions/llama/ui.d.ts.map +1 -1
  1439. package/dist/extensions/llama/ui.js.map +1 -1
  1440. package/dist/extensions/remoto/index.d.ts.map +1 -1
  1441. package/dist/extensions/remoto/index.js.map +1 -1
  1442. package/dist/index.d.ts.map +1 -1
  1443. package/dist/index.js.map +1 -1
  1444. package/dist/main.d.ts.map +1 -1
  1445. package/dist/main.js +71 -3
  1446. package/dist/main.js.map +1 -1
  1447. package/dist/migrations.d.ts.map +1 -1
  1448. package/dist/migrations.js.map +1 -1
  1449. package/dist/modes/acp/acp-mode.d.ts.map +1 -1
  1450. package/dist/modes/acp/acp-mode.js.map +1 -1
  1451. package/dist/modes/acp/events.d.ts.map +1 -1
  1452. package/dist/modes/acp/events.js.map +1 -1
  1453. package/dist/modes/index.d.ts.map +1 -1
  1454. package/dist/modes/index.js.map +1 -1
  1455. package/dist/modes/interactive/components/armin.d.ts.map +1 -1
  1456. package/dist/modes/interactive/components/armin.js.map +1 -1
  1457. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  1458. package/dist/modes/interactive/components/assistant-message.js.map +1 -1
  1459. package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -1
  1460. package/dist/modes/interactive/components/bash-execution.js.map +1 -1
  1461. package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -1
  1462. package/dist/modes/interactive/components/bordered-loader.js.map +1 -1
  1463. package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -1
  1464. package/dist/modes/interactive/components/branch-summary-message.js.map +1 -1
  1465. package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -1
  1466. package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -1
  1467. package/dist/modes/interactive/components/config-selector.d.ts.map +1 -1
  1468. package/dist/modes/interactive/components/config-selector.js.map +1 -1
  1469. package/dist/modes/interactive/components/countdown-timer.d.ts.map +1 -1
  1470. package/dist/modes/interactive/components/countdown-timer.js.map +1 -1
  1471. package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -1
  1472. package/dist/modes/interactive/components/custom-editor.js.map +1 -1
  1473. package/dist/modes/interactive/components/custom-entry.d.ts.map +1 -1
  1474. package/dist/modes/interactive/components/custom-entry.js.map +1 -1
  1475. package/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
  1476. package/dist/modes/interactive/components/custom-message.js.map +1 -1
  1477. package/dist/modes/interactive/components/daxnuts.d.ts.map +1 -1
  1478. package/dist/modes/interactive/components/daxnuts.js.map +1 -1
  1479. package/dist/modes/interactive/components/diff.d.ts.map +1 -1
  1480. package/dist/modes/interactive/components/diff.js.map +1 -1
  1481. package/dist/modes/interactive/components/dynamic-border.d.ts.map +1 -1
  1482. package/dist/modes/interactive/components/dynamic-border.js.map +1 -1
  1483. package/dist/modes/interactive/components/earendil-announcement.d.ts.map +1 -1
  1484. package/dist/modes/interactive/components/earendil-announcement.js.map +1 -1
  1485. package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -1
  1486. package/dist/modes/interactive/components/extension-editor.js.map +1 -1
  1487. package/dist/modes/interactive/components/extension-input.d.ts.map +1 -1
  1488. package/dist/modes/interactive/components/extension-input.js.map +1 -1
  1489. package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -1
  1490. package/dist/modes/interactive/components/extension-selector.js.map +1 -1
  1491. package/dist/modes/interactive/components/first-time-setup.d.ts.map +1 -1
  1492. package/dist/modes/interactive/components/first-time-setup.js.map +1 -1
  1493. package/dist/modes/interactive/components/footer.d.ts.map +1 -1
  1494. package/dist/modes/interactive/components/footer.js.map +1 -1
  1495. package/dist/modes/interactive/components/home-screen.d.ts +2 -0
  1496. package/dist/modes/interactive/components/home-screen.d.ts.map +1 -1
  1497. package/dist/modes/interactive/components/home-screen.js +5 -6
  1498. package/dist/modes/interactive/components/home-screen.js.map +1 -1
  1499. package/dist/modes/interactive/components/index.d.ts.map +1 -1
  1500. package/dist/modes/interactive/components/index.js.map +1 -1
  1501. package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -1
  1502. package/dist/modes/interactive/components/keybinding-hints.js.map +1 -1
  1503. package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
  1504. package/dist/modes/interactive/components/login-dialog.js.map +1 -1
  1505. package/dist/modes/interactive/components/markdown-transform.d.ts.map +1 -1
  1506. package/dist/modes/interactive/components/markdown-transform.js.map +1 -1
  1507. package/dist/modes/interactive/components/mermaid.d.ts.map +1 -1
  1508. package/dist/modes/interactive/components/mermaid.js.map +1 -1
  1509. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
  1510. package/dist/modes/interactive/components/model-selector.js.map +1 -1
  1511. package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
  1512. package/dist/modes/interactive/components/oauth-selector.js.map +1 -1
  1513. package/dist/modes/interactive/components/prompt-optimization.d.ts.map +1 -1
  1514. package/dist/modes/interactive/components/prompt-optimization.js.map +1 -1
  1515. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
  1516. package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
  1517. package/dist/modes/interactive/components/session-selector-search.d.ts.map +1 -1
  1518. package/dist/modes/interactive/components/session-selector-search.js.map +1 -1
  1519. package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
  1520. package/dist/modes/interactive/components/session-selector.js.map +1 -1
  1521. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  1522. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  1523. package/dist/modes/interactive/components/settings-submenu.d.ts.map +1 -1
  1524. package/dist/modes/interactive/components/settings-submenu.js.map +1 -1
  1525. package/dist/modes/interactive/components/show-images-selector.d.ts.map +1 -1
  1526. package/dist/modes/interactive/components/show-images-selector.js.map +1 -1
  1527. package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -1
  1528. package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -1
  1529. package/dist/modes/interactive/components/status-indicator.d.ts.map +1 -1
  1530. package/dist/modes/interactive/components/status-indicator.js.map +1 -1
  1531. package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -1
  1532. package/dist/modes/interactive/components/theme-selector.js.map +1 -1
  1533. package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
  1534. package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
  1535. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  1536. package/dist/modes/interactive/components/tool-execution.js.map +1 -1
  1537. package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -1
  1538. package/dist/modes/interactive/components/tree-selector.js.map +1 -1
  1539. package/dist/modes/interactive/components/trust-selector.d.ts.map +1 -1
  1540. package/dist/modes/interactive/components/trust-selector.js.map +1 -1
  1541. package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -1
  1542. package/dist/modes/interactive/components/user-message-selector.js.map +1 -1
  1543. package/dist/modes/interactive/components/user-message.d.ts.map +1 -1
  1544. package/dist/modes/interactive/components/user-message.js.map +1 -1
  1545. package/dist/modes/interactive/components/visual-truncate.d.ts.map +1 -1
  1546. package/dist/modes/interactive/components/visual-truncate.js.map +1 -1
  1547. package/dist/modes/interactive/external-editor.d.ts.map +1 -1
  1548. package/dist/modes/interactive/external-editor.js.map +1 -1
  1549. package/dist/modes/interactive/interactive-mode.d.ts +19 -0
  1550. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  1551. package/dist/modes/interactive/interactive-mode.js +29 -0
  1552. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  1553. package/dist/modes/interactive/model-catalog-refresh.d.ts.map +1 -1
  1554. package/dist/modes/interactive/model-catalog-refresh.js.map +1 -1
  1555. package/dist/modes/interactive/model-search.d.ts.map +1 -1
  1556. package/dist/modes/interactive/model-search.js.map +1 -1
  1557. package/dist/modes/interactive/theme/theme-controller.d.ts.map +1 -1
  1558. package/dist/modes/interactive/theme/theme-controller.js.map +1 -1
  1559. package/dist/modes/interactive/theme/theme.d.ts +2 -2
  1560. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  1561. package/dist/modes/interactive/theme/theme.js.map +1 -1
  1562. package/dist/modes/json-event.d.ts.map +1 -1
  1563. package/dist/modes/json-event.js.map +1 -1
  1564. package/dist/modes/print-mode.d.ts.map +1 -1
  1565. package/dist/modes/print-mode.js.map +1 -1
  1566. package/dist/modes/rpc/jsonl.d.ts.map +1 -1
  1567. package/dist/modes/rpc/jsonl.js.map +1 -1
  1568. package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
  1569. package/dist/modes/rpc/rpc-client.js.map +1 -1
  1570. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  1571. package/dist/modes/rpc/rpc-mode.js.map +1 -1
  1572. package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
  1573. package/dist/modes/rpc/rpc-types.js.map +1 -1
  1574. package/dist/package-manager-cli.d.ts.map +1 -1
  1575. package/dist/package-manager-cli.js.map +1 -1
  1576. package/dist/rpc-entry.d.ts.map +1 -1
  1577. package/dist/rpc-entry.js +0 -0
  1578. package/dist/rpc-entry.js.map +1 -1
  1579. package/dist/server/attach.d.ts.map +1 -1
  1580. package/dist/server/attach.js.map +1 -1
  1581. package/dist/server/create-harness.d.ts.map +1 -1
  1582. package/dist/server/create-harness.js.map +1 -1
  1583. package/dist/server/extension-ops.d.ts.map +1 -1
  1584. package/dist/server/extension-ops.js.map +1 -1
  1585. package/dist/server/pi-server-service.d.ts.map +1 -1
  1586. package/dist/server/pi-server-service.js.map +1 -1
  1587. package/dist/server/scheduler-tick.d.ts.map +1 -1
  1588. package/dist/server/scheduler-tick.js.map +1 -1
  1589. package/dist/server/serve.d.ts.map +1 -1
  1590. package/dist/server/serve.js.map +1 -1
  1591. package/dist/server/transcript.d.ts.map +1 -1
  1592. package/dist/server/transcript.js.map +1 -1
  1593. package/dist/telegram/api.d.ts +6 -0
  1594. package/dist/telegram/api.d.ts.map +1 -1
  1595. package/dist/telegram/api.js.map +1 -1
  1596. package/dist/telegram/bridge.d.ts.map +1 -1
  1597. package/dist/telegram/bridge.js.map +1 -1
  1598. package/dist/telegram/journal.d.ts.map +1 -1
  1599. package/dist/telegram/journal.js.map +1 -1
  1600. package/dist/telegram/servidor.d.ts.map +1 -1
  1601. package/dist/telegram/servidor.js.map +1 -1
  1602. package/dist/utils/abort.d.ts.map +1 -1
  1603. package/dist/utils/abort.js.map +1 -1
  1604. package/dist/utils/ansi.d.ts.map +1 -1
  1605. package/dist/utils/ansi.js.map +1 -1
  1606. package/dist/utils/changelog.d.ts.map +1 -1
  1607. package/dist/utils/changelog.js.map +1 -1
  1608. package/dist/utils/child-process.d.ts.map +1 -1
  1609. package/dist/utils/child-process.js.map +1 -1
  1610. package/dist/utils/clipboard-image.d.ts.map +1 -1
  1611. package/dist/utils/clipboard-image.js.map +1 -1
  1612. package/dist/utils/clipboard-native.d.ts.map +1 -1
  1613. package/dist/utils/clipboard-native.js.map +1 -1
  1614. package/dist/utils/clipboard.d.ts.map +1 -1
  1615. package/dist/utils/clipboard.js.map +1 -1
  1616. package/dist/utils/deprecation.d.ts.map +1 -1
  1617. package/dist/utils/deprecation.js.map +1 -1
  1618. package/dist/utils/exif-orientation.d.ts.map +1 -1
  1619. package/dist/utils/exif-orientation.js.map +1 -1
  1620. package/dist/utils/frontmatter.d.ts.map +1 -1
  1621. package/dist/utils/frontmatter.js.map +1 -1
  1622. package/dist/utils/fs-watch.d.ts.map +1 -1
  1623. package/dist/utils/fs-watch.js.map +1 -1
  1624. package/dist/utils/git.d.ts.map +1 -1
  1625. package/dist/utils/git.js.map +1 -1
  1626. package/dist/utils/html.d.ts.map +1 -1
  1627. package/dist/utils/html.js.map +1 -1
  1628. package/dist/utils/image-convert.d.ts.map +1 -1
  1629. package/dist/utils/image-convert.js.map +1 -1
  1630. package/dist/utils/image-process.d.ts.map +1 -1
  1631. package/dist/utils/image-process.js.map +1 -1
  1632. package/dist/utils/image-resize-core.d.ts.map +1 -1
  1633. package/dist/utils/image-resize-core.js.map +1 -1
  1634. package/dist/utils/image-resize-worker.d.ts.map +1 -1
  1635. package/dist/utils/image-resize-worker.js.map +1 -1
  1636. package/dist/utils/image-resize.d.ts.map +1 -1
  1637. package/dist/utils/image-resize.js.map +1 -1
  1638. package/dist/utils/json.d.ts.map +1 -1
  1639. package/dist/utils/json.js.map +1 -1
  1640. package/dist/utils/management-http.d.ts.map +1 -1
  1641. package/dist/utils/management-http.js.map +1 -1
  1642. package/dist/utils/mime.d.ts.map +1 -1
  1643. package/dist/utils/mime.js.map +1 -1
  1644. package/dist/utils/open-browser.d.ts.map +1 -1
  1645. package/dist/utils/open-browser.js.map +1 -1
  1646. package/dist/utils/paths.d.ts.map +1 -1
  1647. package/dist/utils/paths.js.map +1 -1
  1648. package/dist/utils/photon.d.ts.map +1 -1
  1649. package/dist/utils/photon.js.map +1 -1
  1650. package/dist/utils/pi-user-agent.d.ts.map +1 -1
  1651. package/dist/utils/pi-user-agent.js.map +1 -1
  1652. package/dist/utils/shell.d.ts.map +1 -1
  1653. package/dist/utils/shell.js.map +1 -1
  1654. package/dist/utils/sleep.d.ts.map +1 -1
  1655. package/dist/utils/sleep.js.map +1 -1
  1656. package/dist/utils/syntax-highlight.d.ts.map +1 -1
  1657. package/dist/utils/syntax-highlight.js.map +1 -1
  1658. package/dist/utils/text.d.ts.map +1 -1
  1659. package/dist/utils/text.js.map +1 -1
  1660. package/dist/utils/tool-result-images.d.ts.map +1 -1
  1661. package/dist/utils/tool-result-images.js.map +1 -1
  1662. package/dist/utils/tools-manager.d.ts.map +1 -1
  1663. package/dist/utils/tools-manager.js.map +1 -1
  1664. package/dist/utils/version-check.d.ts.map +1 -1
  1665. package/dist/utils/version-check.js.map +1 -1
  1666. package/dist/utils/windows-self-update.d.ts.map +1 -1
  1667. package/dist/utils/windows-self-update.js.map +1 -1
  1668. package/docs/development-fork.md +170 -0
  1669. package/docs/docs.json +25 -0
  1670. package/docs/modules-infraestructura.md +115 -0
  1671. package/docs/modules-motor.md +160 -0
  1672. package/docs/modules-producto.md +179 -0
  1673. package/docs/modules-seguridad.md +158 -0
  1674. package/package.json +113 -113
  1675. package/dist/core/commit/diff.d.ts.map +0 -1
  1676. package/dist/core/commit/diff.js.map +0 -1
  1677. package/dist/core/commit/mensaje.d.ts +0 -80
  1678. package/dist/core/commit/mensaje.d.ts.map +0 -1
  1679. package/dist/core/commit/mensaje.js +0 -207
  1680. package/dist/core/commit/mensaje.js.map +0 -1
  1681. /package/dist/core/{commit → commits}/diff.d.ts +0 -0
  1682. /package/dist/core/{commit → commits}/diff.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"payload.js","sourceRoot":"","sources":["../../../src/core/blobs/payload.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Encontrar adjuntos en línea dentro del payload del proveedor y sustituirlos\n * por referencias a un fichero ya subido.\n *\n * Todo aquí es puro: entra un payload, sale otro. Ni red ni disco. Así el\n * troceado se puede probar con el payload EXACTO que construye `packages/ai`\n * sin montar una sesión.\n *\n * La distinción que sostiene la puerta 2 vive en el tipo de retorno de\n * `localizarBlobs`:\n *\n * null → \"no sé leer este payload\" (API desconocida, o la forma no es la\n * esperada). No es lo mismo que no haber encontrado nada.\n * [] → \"sé leerlo y no hay ningún adjunto que subir\".\n *\n * Devolver `[]` en los dos casos convertiría un fallo de lectura en un informe\n * tranquilizador de \"no había nada\", que es exactamente el defecto que este\n * repositorio persigue.\n */\n\nexport type ApiDeBlobs = \"anthropic-messages\" | \"openai-responses\";\n\nexport interface BloqueBlob {\n\t/**\n\t * Dónde está: índice de mensaje, índice de bloque dentro de su contenido y,\n\t * si el bloque cuelga del resultado de una herramienta, el índice dentro de\n\t * ese resultado. `bloque: -1` = el contenedor ES el item de primer nivel\n\t * (así viaja `function_call_output` en OpenAI responses).\n\t */\n\truta: { mensaje: number; bloque: number; anidado?: number };\n\tclase: \"imagen\" | \"documento\";\n\tmime: string;\n\t/** Contenido en base64, sin el prefijo `data:`. */\n\tbase64: string;\n\t/** Tamaño del contenido decodificado. */\n\tbytes: number;\n}\n\nexport function claveDeRuta(ruta: BloqueBlob[\"ruta\"]): string {\n\treturn `${ruta.mensaje}:${ruta.bloque}:${ruta.anidado ?? -1}`;\n}\n\n/** Bytes reales que representa una cadena base64, sin decodificarla. */\nexport function bytesDeBase64(base64: string): number {\n\tconst sinRelleno = base64.replace(/=+$/, \"\");\n\treturn Math.floor((sinRelleno.length * 3) / 4);\n}\n\nconst DATA_URL = /^data:([^;,]+);base64,(.*)$/s;\n\n/** `data:image/png;base64,AAAA` → `{ mime, base64 }`. */\nexport function partirDataUrl(url: unknown): { mime: string; base64: string } | undefined {\n\tif (typeof url !== \"string\") return undefined;\n\tconst coincidencia = url.match(DATA_URL);\n\tif (!coincidencia) return undefined;\n\treturn { mime: coincidencia[1], base64: coincidencia[2] };\n}\n\nfunction comoObjeto(valor: unknown): Record<string, unknown> | undefined {\n\treturn valor && typeof valor === \"object\" && !Array.isArray(valor) ? (valor as Record<string, unknown>) : undefined;\n}\n\n/** Los mensajes viven en `messages` (Anthropic) o en `input` (OpenAI responses). */\nfunction listaDeMensajes(payload: Record<string, unknown>, api: ApiDeBlobs): unknown[] | undefined {\n\tconst bruto = api === \"anthropic-messages\" ? payload.messages : payload.input;\n\treturn Array.isArray(bruto) ? bruto : undefined;\n}\n\n/**\n * Nombre del campo donde un resultado de herramienta guarda sus adjuntos, o\n * `undefined` si este bloque no es un resultado de herramienta.\n *\n * Existe porque las imágenes grandes de verdad casi nunca las pega el usuario:\n * las trae una herramienta (`read` de una captura, `computer`). Y esas NO\n * cuelgan del mensaje, van anidadas un nivel más adentro: Anthropic las mete en\n * `tool_result.content[]` (anthropic-messages.ts:1141) y OpenAI responses en\n * `function_call_output.output[]` (openai-responses-shared.ts:308). Sin mirar\n * ahí, `localizarBlobs` devolvía `[]` con una captura de 2 MB delante y\n * `/blobs` informaba \"no hay ningún adjunto en la conversación\" — un \"no lo he\n * mirado\" disfrazado de \"no hay\".\n */\nfunction campoAnidado(bloque: Record<string, unknown>, api: ApiDeBlobs): \"content\" | \"output\" | undefined {\n\tif (api === \"anthropic-messages\") {\n\t\treturn bloque.type === \"tool_result\" && Array.isArray(bloque.content) ? \"content\" : undefined;\n\t}\n\tconst esSalida = bloque.type === \"function_call_output\" || bloque.type === \"custom_tool_call_output\";\n\treturn esSalida && Array.isArray(bloque.output) ? \"output\" : undefined;\n}\n\nexport function localizarBlobs(payload: unknown, api: string): BloqueBlob[] | null {\n\tif (api !== \"anthropic-messages\" && api !== \"openai-responses\") return null;\n\tconst objeto = comoObjeto(payload);\n\tif (!objeto) return null;\n\tconst mensajes = listaDeMensajes(objeto, api);\n\tif (!mensajes) return null;\n\n\tconst encontrados: BloqueBlob[] = [];\n\tconst recoger = (lista: unknown[], mensaje: number, bloque: number) => {\n\t\tfor (const [anidado, hijo] of lista.entries()) {\n\t\t\tconst encontrado = leerBloque(hijo, api);\n\t\t\tif (encontrado) encontrados.push({ ...encontrado, ruta: { mensaje, bloque, anidado } });\n\t\t}\n\t};\n\n\tfor (const [indiceMensaje, mensaje] of mensajes.entries()) {\n\t\tconst cuerpo = comoObjeto(mensaje);\n\t\tif (!cuerpo) continue;\n\t\t// OpenAI responses: el resultado de herramienta es un item de primer nivel,\n\t\t// no un bloque dentro de un mensaje. De ahí el `-1`.\n\t\tconst directo = campoAnidado(cuerpo, api);\n\t\tif (directo) {\n\t\t\trecoger(cuerpo[directo] as unknown[], indiceMensaje, -1);\n\t\t\tcontinue;\n\t\t}\n\t\t// El contenido puede ser una cadena (Anthropic lo hace cuando solo hay\n\t\t// texto): no es un fallo de lectura, es un mensaje sin adjuntos.\n\t\tif (!Array.isArray(cuerpo.content)) continue;\n\t\tfor (const [indiceBloque, bloque] of (cuerpo.content as unknown[]).entries()) {\n\t\t\tconst objetoBloque = comoObjeto(bloque);\n\t\t\tconst campo = objetoBloque && campoAnidado(objetoBloque, api);\n\t\t\tif (objetoBloque && campo) {\n\t\t\t\trecoger(objetoBloque[campo] as unknown[], indiceMensaje, indiceBloque);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst encontrado = leerBloque(bloque, api);\n\t\t\tif (encontrado) encontrados.push({ ...encontrado, ruta: { mensaje: indiceMensaje, bloque: indiceBloque } });\n\t\t}\n\t}\n\treturn encontrados;\n}\n\nfunction leerBloque(bloque: unknown, api: ApiDeBlobs): Omit<BloqueBlob, \"ruta\"> | undefined {\n\tconst objeto = comoObjeto(bloque);\n\tif (!objeto) return undefined;\n\n\tif (api === \"anthropic-messages\") {\n\t\tif (objeto.type !== \"image\" && objeto.type !== \"document\") return undefined;\n\t\tconst fuente = comoObjeto(objeto.source);\n\t\tif (!fuente || fuente.type !== \"base64\") return undefined;\n\t\tconst base64 = fuente.data;\n\t\tconst mime = fuente.media_type;\n\t\tif (typeof base64 !== \"string\" || typeof mime !== \"string\") return undefined;\n\t\treturn { clase: objeto.type === \"image\" ? \"imagen\" : \"documento\", mime, base64, bytes: bytesDeBase64(base64) };\n\t}\n\n\tif (objeto.type === \"input_image\") {\n\t\tconst partes = partirDataUrl(objeto.image_url);\n\t\tif (!partes) return undefined;\n\t\treturn { clase: \"imagen\", mime: partes.mime, base64: partes.base64, bytes: bytesDeBase64(partes.base64) };\n\t}\n\tif (objeto.type === \"input_file\") {\n\t\tconst partes = partirDataUrl(objeto.file_data);\n\t\tif (!partes) return undefined;\n\t\treturn { clase: \"documento\", mime: partes.mime, base64: partes.base64, bytes: bytesDeBase64(partes.base64) };\n\t}\n\treturn undefined;\n}\n\n/**\n * Devuelve un payload nuevo con los bloques indicados sustituidos por su\n * referencia. Copia solo la rama que cambia: el resto se comparte, para no\n * duplicar en memoria un contexto que puede pesar megas.\n */\nexport function reescribirBlobs(payload: unknown, api: string, ids: Map<string, string>): unknown {\n\tif (ids.size === 0) return payload;\n\tif (api !== \"anthropic-messages\" && api !== \"openai-responses\") return payload;\n\tconst objeto = comoObjeto(payload);\n\tif (!objeto) return payload;\n\tconst mensajes = listaDeMensajes(objeto, api);\n\tif (!mensajes) return payload;\n\n\t/** Devuelve la lista anidada reescrita, o `undefined` si no cambió nada. */\n\tconst reescribirAnidados = (lista: unknown[], mensaje: number, bloque: number): unknown[] | undefined => {\n\t\tlet cambiadoAqui = false;\n\t\tconst nueva = lista.map((hijo, anidado) => {\n\t\t\tconst id = ids.get(claveDeRuta({ mensaje, bloque, anidado }));\n\t\t\tif (!id) return hijo;\n\t\t\tconst referencia = referenciaDeFichero(hijo, api, id);\n\t\t\tif (!referencia) return hijo;\n\t\t\tcambiadoAqui = true;\n\t\t\treturn referencia;\n\t\t});\n\t\treturn cambiadoAqui ? nueva : undefined;\n\t};\n\n\tlet cambiado = false;\n\tconst nuevosMensajes = mensajes.map((mensaje, indiceMensaje) => {\n\t\tconst cuerpo = comoObjeto(mensaje);\n\t\tif (!cuerpo) return mensaje;\n\t\tconst directo = campoAnidado(cuerpo, api);\n\t\tif (directo) {\n\t\t\tconst nuevos = reescribirAnidados(cuerpo[directo] as unknown[], indiceMensaje, -1);\n\t\t\tif (!nuevos) return mensaje;\n\t\t\tcambiado = true;\n\t\t\treturn { ...cuerpo, [directo]: nuevos };\n\t\t}\n\t\tif (!Array.isArray(cuerpo.content)) return mensaje;\n\t\tlet cambiadoAqui = false;\n\t\tconst nuevoContenido = (cuerpo.content as unknown[]).map((bloque, indiceBloque) => {\n\t\t\tconst objetoBloque = comoObjeto(bloque);\n\t\t\tconst campo = objetoBloque && campoAnidado(objetoBloque, api);\n\t\t\tif (objetoBloque && campo) {\n\t\t\t\tconst nuevos = reescribirAnidados(objetoBloque[campo] as unknown[], indiceMensaje, indiceBloque);\n\t\t\t\tif (!nuevos) return bloque;\n\t\t\t\tcambiadoAqui = true;\n\t\t\t\treturn { ...objetoBloque, [campo]: nuevos };\n\t\t\t}\n\t\t\tconst id = ids.get(claveDeRuta({ mensaje: indiceMensaje, bloque: indiceBloque }));\n\t\t\tif (!id) return bloque;\n\t\t\tconst referencia = referenciaDeFichero(bloque, api, id);\n\t\t\tif (!referencia) return bloque;\n\t\t\tcambiadoAqui = true;\n\t\t\treturn referencia;\n\t\t});\n\t\tif (!cambiadoAqui) return mensaje;\n\t\tcambiado = true;\n\t\treturn { ...cuerpo, content: nuevoContenido };\n\t});\n\n\tif (!cambiado) return payload;\n\treturn api === \"anthropic-messages\" ? { ...objeto, messages: nuevosMensajes } : { ...objeto, input: nuevosMensajes };\n}\n\n/**\n * Se conserva TODO lo demás del bloque y solo se cambia de dónde salen los\n * bytes.\n *\n * Antes se construía un bloque nuevo con `type` y la referencia, y eso tiraba\n * en silencio las propiedades hermanas. La cara: `packages/ai` pone el\n * breakpoint de caché de conversación en el ÚLTIMO bloque del último mensaje de\n * usuario, y ese bloque es la imagen cuando la imagen va la última\n * (anthropic-messages.ts:1296-1306). Comprobado ejecutándolo con el payload que\n * construye `buildParams`: entraba `cache_control: {\"type\":\"ephemeral\"}` y salía\n * sin él. Un módulo que existe para ahorrar rompía la caché de prompt y lo\n * informaba como \"1 subido\". También se perdían `title`, `context` y\n * `citations` de los bloques `document`.\n */\nfunction referenciaDeFichero(bloque: unknown, api: ApiDeBlobs, id: string): Record<string, unknown> | undefined {\n\tconst objeto = comoObjeto(bloque);\n\tif (!objeto) return undefined;\n\tif (api === \"anthropic-messages\") {\n\t\tif (objeto.type !== \"image\" && objeto.type !== \"document\") return undefined;\n\t\t// Se copia el bloque entero y solo se cambia `source`. Esta es LA rama\n\t\t// donde vive el `cache_control`: el breakpoint solo se pone en bloques\n\t\t// `text`, `image` y `tool_result`, todos de Anthropic.\n\t\treturn { ...objeto, source: { type: \"file\", file_id: id } };\n\t}\n\tif (objeto.type === \"input_image\") {\n\t\t// `detail` sobrevive con el resto: es la palanca de coste de visión de\n\t\t// OpenAI y perderla cambiaría en silencio lo que paga el usuario.\n\t\tconst { image_url: _fuera, ...resto } = objeto;\n\t\treturn { ...resto, file_id: id };\n\t}\n\tif (objeto.type === \"input_file\") {\n\t\tconst { file_data: _fuera, ...resto } = objeto;\n\t\treturn { ...resto, file_id: id };\n\t}\n\treturn undefined;\n}\n"]}
1
+ {"version":3,"file":"payload.js","sourceRoot":"","sources":["../../../src/core/blobs/payload.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"proveedor.d.ts","sourceRoot":"","sources":["../../../src/core/blobs/proveedor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,iFAAgF;AAChF,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAChC,yEAAwE;IACxE,SAAS,EAAE,MAAM,CAAC;IAClB,+EAA+E;IAC/E,OAAO,EAAE,WAAW,GAAG,QAAQ,CAAC;IAChC,iDAAgD;IAChD,WAAW,EAAE,MAAM,CAAC;IACpB,2EAA2E;IAC3E,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,YAAY;IAC5B,gDAA8C;IAC9C,MAAM,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,oBAAoB,GAAG,gBAAgB,GAAG,YAAY,CAAC;AAEnE,wBAAgB,UAAU,CAAC,SAAS,EAAE,oBAAoB,GAAG,SAAS,IAAI,gBAAgB,CAEzF;AAED,gFAA+E;AAC/E,eAAO,MAAM,uBAAuB,yBAAyB,CAAC;AAe9D,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,eAAe,GAAG,SAAS,GAAG,oBAAoB,CAoD1F;AAID,MAAM,WAAW,UAAU;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED,MAAM,MAAM,KAAK,GAAG,OAAO,UAAU,CAAC,KAAK,CAAC;AAE5C,MAAM,WAAW,iBAAiB;IACjC,EAAE,EAAE,IAAI,CAAC;IACT,EAAE,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,aAAa;IAC7B,EAAE,EAAE,KAAK,CAAC;IACV;;;;OAIG;IACH,KAAK,EAAE,WAAW,GAAG,YAAY,CAAC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,iBAAiB,GAAG,iBAAiB,GAAG,aAAa,CAAC;AAElE;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE7D;AA8BD,wBAAsB,YAAY,CACjC,SAAS,EAAE,gBAAgB,EAC3B,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE;IAAE,KAAK,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAC5D,SAAS,GAAE,KAAwB,EACnC,MAAM,CAAC,EAAE,WAAW,GAClB,OAAO,CAAC,iBAAiB,CAAC,CA0C5B;AAED,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,QAAQ,GAAG,aAAa,CAAC;AAEhE;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CACrC,SAAS,EAAE,gBAAgB,EAC3B,UAAU,EAAE,UAAU,EACtB,EAAE,EAAE,MAAM,EACV,SAAS,GAAE,KAAwB,EACnC,MAAM,CAAC,EAAE,WAAW,GAClB,OAAO,CAAC,eAAe,CAAC,CAe1B","sourcesContent":["/**\n * Qué proveedores tienen API de ficheros, y cómo se habla con ella.\n *\n * La pieza importante de este fichero no es la subida: es `capacidadDeBlobs`,\n * que NUNCA devuelve un \"no\" mudo. Un proveedor sin API de ficheros y un\n * proveedor con la API pero sin credencial son dos cosas distintas, y las dos\n * son distintas de \"no hay ningún adjunto en esta petición\". Confundirlas es el\n * defecto que más veces nos ha mordido: un \"no puedo\" leído como \"no hay\".\n *\n * Por qué se exige la URL oficial: un modelo `anthropic-messages` servido por\n * un gateway (OpenRouter, un proxy propio, Bedrock) habla el mismo dialecto de\n * mensajes pero NO expone `/v1/files`. Subir ahí devuelve 404 y, peor, un id\n * inventado por el proxy que luego el modelo no reconoce. Si no es la URL\n * oficial, decimos por qué no y mandamos el contenido en línea como siempre.\n */\n\n/** Lo mínimo que necesitamos del modelo. Evita atarnos al tipo `Model<Api>`. */\nexport interface ModeloParaBlobs {\n\tprovider?: string;\n\tapi?: string;\n\tbaseUrl?: string;\n}\n\nexport interface CapacidadDeBlobs {\n\t/** Clave de caché: los ids no son intercambiables entre proveedores. */\n\tproveedor: string;\n\t/** Familia de API de ficheros; decide multipart, cabeceras y forma del ref. */\n\tfamilia: \"anthropic\" | \"openai\";\n\t/** URL absoluta de la colección de ficheros. */\n\turlFicheros: string;\n\t/** Cabeceras extra obligatorias (el beta de la Files API de Anthropic). */\n\tcabeceras: Record<string, string>;\n}\n\nexport interface SinCapacidad {\n\t/** Por qué NO se puede subir. Nunca vacío. */\n\tmotivo: string;\n}\n\nexport type ResultadoDeCapacidad = CapacidadDeBlobs | SinCapacidad;\n\nexport function puedeSubir(resultado: ResultadoDeCapacidad): resultado is CapacidadDeBlobs {\n\treturn \"urlFicheros\" in resultado;\n}\n\n/** Beta obligatorio de la Files API de Anthropic. Sin él, /v1/files da 404. */\nexport const BETA_FICHEROS_ANTHROPIC = \"files-api-2025-04-14\";\n\nfunction anfitrion(url: string | undefined): string | undefined {\n\tif (!url) return undefined;\n\ttry {\n\t\treturn new URL(url).host.toLowerCase();\n\t} catch {\n\t\treturn undefined;\n\t}\n}\n\nfunction sinBarraFinal(url: string): string {\n\treturn url.replace(/\\/+$/, \"\");\n}\n\nexport function capacidadDeBlobs(modelo: ModeloParaBlobs | undefined): ResultadoDeCapacidad {\n\tif (!modelo) return { motivo: \"todavía no hay modelo seleccionado en la sesión\" };\n\tconst proveedor = modelo.provider ?? \"?\";\n\tconst api = modelo.api ?? \"?\";\n\tconst host = anfitrion(modelo.baseUrl);\n\n\tif (api === \"anthropic-messages\") {\n\t\tif (proveedor !== \"anthropic\") {\n\t\t\treturn {\n\t\t\t\tmotivo: `\"${proveedor}\" habla el dialecto de mensajes de Anthropic pero no es Anthropic: no expone /v1/files`,\n\t\t\t};\n\t\t}\n\t\tif (host !== \"api.anthropic.com\") {\n\t\t\treturn {\n\t\t\t\tmotivo: `el modelo apunta a ${host ?? \"una URL ilegible\"} y no a api.anthropic.com: un gateway no expone /v1/files`,\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\tproveedor: \"anthropic\",\n\t\t\tfamilia: \"anthropic\",\n\t\t\turlFicheros: `${sinBarraFinal(modelo.baseUrl ?? \"\")}/v1/files`,\n\t\t\tcabeceras: { \"anthropic-beta\": BETA_FICHEROS_ANTHROPIC, \"anthropic-version\": \"2023-06-01\" },\n\t\t};\n\t}\n\n\tif (api === \"openai-responses\") {\n\t\tif (proveedor !== \"openai\") {\n\t\t\treturn { motivo: `\"${proveedor}\" usa la API de respuestas de OpenAI pero no expone /v1/files propio` };\n\t\t}\n\t\tif (host !== \"api.openai.com\") {\n\t\t\treturn {\n\t\t\t\tmotivo: `el modelo apunta a ${host ?? \"una URL ilegible\"} y no a api.openai.com: un gateway no expone /v1/files`,\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\tproveedor: \"openai\",\n\t\t\tfamilia: \"openai\",\n\t\t\turlFicheros: `${sinBarraFinal(modelo.baseUrl ?? \"\")}/files`,\n\t\t\tcabeceras: {},\n\t\t};\n\t}\n\n\t// `openai-completions` acepta `file_id` solo en bloques `file` (PDF), no en\n\t// `image_url`; como lo que hoy adjunta Ada son imágenes, aquí no hay nada\n\t// que ganar y sí un 400 que ganar. Se dice, no se intenta.\n\tif (api === \"openai-completions\") {\n\t\treturn {\n\t\t\tmotivo: `la API \"openai-completions\" no acepta file_id en bloques de imagen; solo URL o base64 en línea`,\n\t\t};\n\t}\n\n\treturn { motivo: `la API \"${api}\" del proveedor \"${proveedor}\" no tiene API de ficheros conocida` };\n}\n\n// ─── Transporte ─────────────────────────────────────────────────────────────\n\nexport interface Credencial {\n\tapiKey?: string;\n\tcabeceras?: Record<string, string>;\n}\n\nexport type Fetch = typeof globalThis.fetch;\n\nexport interface RespuestaDeSubida {\n\tok: true;\n\tid: string;\n}\n\nexport interface FalloDeSubida {\n\tok: false;\n\t/**\n\t * `rechazado` = el proveedor contestó y dijo que no (4xx). `transporte` = no\n\t * se pudo ni preguntar. La diferencia importa: un rechazo se aprende, un\n\t * fallo de transporte se reintenta en el turno siguiente.\n\t */\n\tclase: \"rechazado\" | \"transporte\";\n\tmotivo: string;\n\testado?: number;\n}\n\nexport type ResultadoDeSubida = RespuestaDeSubida | FalloDeSubida;\n\n/**\n * Un token de OAuth de Anthropic (Claude Pro/Max: empieza por `sk-ant-oat`) NO\n * vale como `x-api-key`. `packages/ai` lo sabe y construye el cliente con\n * `authToken`, que es `Authorization: Bearer`\n * (anthropic-messages.ts:873 y :923). El mismo criterio, `includes`, y no un\n * `startsWith`: el token viaja a veces con prefijo de entorno.\n */\nexport function esTokenOAuthAnthropic(apiKey: string): boolean {\n\treturn apiKey.includes(\"sk-ant-oat\");\n}\n\nfunction cabecerasDeAuth(capacidad: CapacidadDeBlobs, credencial: Credencial): Record<string, string> {\n\t// Las de `capacidad` van LAS ÚLTIMAS y ganan: son obligatorias (el beta de la\n\t// Files API). Si una cabecera de proveedor traía su propio `anthropic-beta`,\n\t// el orden de antes borraba el beta de ficheros y /v1/files contestaba 404 —\n\t// un \"no puedo\" que se leía como \"el proveedor no quiere el fichero\".\n\tconst cabeceras: Record<string, string> = { ...(credencial.cabeceras ?? {}), ...capacidad.cabeceras };\n\tif (credencial.apiKey) {\n\t\t// Con OAuth, mandar la clave en `x-api-key` da 401 en TODAS las subidas: el\n\t\t// módulo entero quedaba muerto para quien entra con Claude Pro/Max, que es\n\t\t// la mayoría, y el motivo que salía en `/blobs` era \"401 al subir\", que\n\t\t// echa la culpa al proveedor en vez de a la cabecera.\n\t\tif (capacidad.familia === \"anthropic\" && !esTokenOAuthAnthropic(credencial.apiKey)) {\n\t\t\tcabeceras[\"x-api-key\"] = credencial.apiKey;\n\t\t} else {\n\t\t\tcabeceras.authorization = `Bearer ${credencial.apiKey}`;\n\t\t}\n\t}\n\treturn cabeceras;\n}\n\nasync function textoBreve(respuesta: Response): Promise<string> {\n\ttry {\n\t\treturn (await respuesta.text()).slice(0, 300);\n\t} catch {\n\t\treturn \"\";\n\t}\n}\n\nexport async function subirFichero(\n\tcapacidad: CapacidadDeBlobs,\n\tcredencial: Credencial,\n\tfichero: { datos: Uint8Array; mime: string; nombre: string },\n\tfetchImpl: Fetch = globalThis.fetch,\n\tsignal?: AbortSignal,\n): Promise<ResultadoDeSubida> {\n\tconst formulario = new FormData();\n\t// `new Blob([...])` y no `File`: el segundo no existe en todos los runtimes\n\t// donde se ejecutan los tests, y el nombre viaja igual en el `append`.\n\tformulario.append(\"file\", new Blob([fichero.datos], { type: fichero.mime }), fichero.nombre);\n\t// OpenAI exige `purpose`; Anthropic rechaza campos extra, así que va solo donde toca.\n\tif (capacidad.familia === \"openai\") formulario.append(\"purpose\", \"vision\");\n\n\tlet respuesta: Response;\n\ttry {\n\t\trespuesta = await fetchImpl(capacidad.urlFicheros, {\n\t\t\tmethod: \"POST\",\n\t\t\theaders: cabecerasDeAuth(capacidad, credencial),\n\t\t\tbody: formulario,\n\t\t\tsignal,\n\t\t});\n\t} catch (error) {\n\t\treturn { ok: false, clase: \"transporte\", motivo: error instanceof Error ? error.message : String(error) };\n\t}\n\n\tif (!respuesta.ok) {\n\t\treturn {\n\t\t\tok: false,\n\t\t\tclase: respuesta.status >= 400 && respuesta.status < 500 ? \"rechazado\" : \"transporte\",\n\t\t\testado: respuesta.status,\n\t\t\tmotivo: `${respuesta.status} al subir: ${await textoBreve(respuesta)}`,\n\t\t};\n\t}\n\n\tlet cuerpo: unknown;\n\ttry {\n\t\tcuerpo = await respuesta.json();\n\t} catch (error) {\n\t\treturn { ok: false, clase: \"transporte\", motivo: `respuesta ilegible: ${String(error)}` };\n\t}\n\tconst id = (cuerpo as { id?: unknown })?.id;\n\tif (typeof id !== \"string\" || id.length === 0) {\n\t\t// 200 sin id es un fallo, no un éxito vacío. Devolverlo como ok dejaría\n\t\t// un `file_id: undefined` viajando en el payload.\n\t\treturn { ok: false, clase: \"rechazado\", motivo: \"el proveedor respondió 200 sin id de fichero\" };\n\t}\n\treturn { ok: true, id };\n}\n\nexport type EstadoDeFichero = \"vivo\" | \"muerto\" | \"desconocido\";\n\n/**\n * ¿Sigue existiendo el id? Se pregunta UNA vez por proceso y solo para ids que\n * vienen de una sesión anterior. Preguntarlo en cada turno costaría una\n * petición por adjunto y por turno, que es justo lo que este módulo evita.\n *\n * `desconocido` no es `muerto`: si la red falla, no sabemos si el id sirve, y\n * tratarlo como muerto resubiría el fichero cada vez que hubiera un corte.\n */\nexport async function verificarFichero(\n\tcapacidad: CapacidadDeBlobs,\n\tcredencial: Credencial,\n\tid: string,\n\tfetchImpl: Fetch = globalThis.fetch,\n\tsignal?: AbortSignal,\n): Promise<EstadoDeFichero> {\n\tlet respuesta: Response;\n\ttry {\n\t\trespuesta = await fetchImpl(`${capacidad.urlFicheros}/${encodeURIComponent(id)}`, {\n\t\t\tmethod: \"GET\",\n\t\t\theaders: cabecerasDeAuth(capacidad, credencial),\n\t\t\tsignal,\n\t\t});\n\t} catch {\n\t\treturn \"desconocido\";\n\t}\n\tif (respuesta.ok) return \"vivo\";\n\tif (respuesta.status === 404 || respuesta.status === 410) return \"muerto\";\n\t// 401/403 no dicen nada del fichero, dicen algo de la credencial.\n\treturn \"desconocido\";\n}\n\n// Aquí vivía `borrarFichero`. No lo llamaba nadie: `/blobs purgar` solo tira la\n// entrada de la caché local, y el proveedor caduca sus ficheros solo. Código\n// escrito, probado y desenchufado; se borra en vez de dejarlo esperando a un\n// llamador que no existe.\n"]}
1
+ {"version":3,"file":"proveedor.d.ts","sourceRoot":"","sources":["../../../src/core/blobs/proveedor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,gFAAgF;AAChF,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAChC,wEAAwE;IACxE,SAAS,EAAE,MAAM,CAAC;IAClB,+EAA+E;IAC/E,OAAO,EAAE,WAAW,GAAG,QAAQ,CAAC;IAChC,gDAAgD;IAChD,WAAW,EAAE,MAAM,CAAC;IACpB,2EAA2E;IAC3E,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,YAAY;IAC5B,8CAA8C;IAC9C,MAAM,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,oBAAoB,GAAG,gBAAgB,GAAG,YAAY,CAAC;AAEnE,wBAAgB,UAAU,CAAC,SAAS,EAAE,oBAAoB,GAAG,SAAS,IAAI,gBAAgB,CAEzF;AAED,+EAA+E;AAC/E,eAAO,MAAM,uBAAuB,yBAAyB,CAAC;AAe9D,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,eAAe,GAAG,SAAS,GAAG,oBAAoB,CAoD1F;AAID,MAAM,WAAW,UAAU;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED,MAAM,MAAM,KAAK,GAAG,OAAO,UAAU,CAAC,KAAK,CAAC;AAE5C,MAAM,WAAW,iBAAiB;IACjC,EAAE,EAAE,IAAI,CAAC;IACT,EAAE,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,aAAa;IAC7B,EAAE,EAAE,KAAK,CAAC;IACV;;;;OAIG;IACH,KAAK,EAAE,WAAW,GAAG,YAAY,CAAC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,iBAAiB,GAAG,iBAAiB,GAAG,aAAa,CAAC;AAElE;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAE7D;AA8BD,wBAAsB,YAAY,CACjC,SAAS,EAAE,gBAAgB,EAC3B,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE;IAAE,KAAK,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAC5D,SAAS,GAAE,KAAwB,EACnC,MAAM,CAAC,EAAE,WAAW,GAClB,OAAO,CAAC,iBAAiB,CAAC,CA0C5B;AAED,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,QAAQ,GAAG,aAAa,CAAC;AAEhE;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CACrC,SAAS,EAAE,gBAAgB,EAC3B,UAAU,EAAE,UAAU,EACtB,EAAE,EAAE,MAAM,EACV,SAAS,GAAE,KAAwB,EACnC,MAAM,CAAC,EAAE,WAAW,GAClB,OAAO,CAAC,eAAe,CAAC,CAe1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"proveedor.js","sourceRoot":"","sources":["../../../src/core/blobs/proveedor.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Qué proveedores tienen API de ficheros, y cómo se habla con ella.\n *\n * La pieza importante de este fichero no es la subida: es `capacidadDeBlobs`,\n * que NUNCA devuelve un \"no\" mudo. Un proveedor sin API de ficheros y un\n * proveedor con la API pero sin credencial son dos cosas distintas, y las dos\n * son distintas de \"no hay ningún adjunto en esta petición\". Confundirlas es el\n * defecto que más veces nos ha mordido: un \"no puedo\" leído como \"no hay\".\n *\n * Por qué se exige la URL oficial: un modelo `anthropic-messages` servido por\n * un gateway (OpenRouter, un proxy propio, Bedrock) habla el mismo dialecto de\n * mensajes pero NO expone `/v1/files`. Subir ahí devuelve 404 y, peor, un id\n * inventado por el proxy que luego el modelo no reconoce. Si no es la URL\n * oficial, decimos por qué no y mandamos el contenido en línea como siempre.\n */\n\n/** Lo mínimo que necesitamos del modelo. Evita atarnos al tipo `Model<Api>`. */\nexport interface ModeloParaBlobs {\n\tprovider?: string;\n\tapi?: string;\n\tbaseUrl?: string;\n}\n\nexport interface CapacidadDeBlobs {\n\t/** Clave de caché: los ids no son intercambiables entre proveedores. */\n\tproveedor: string;\n\t/** Familia de API de ficheros; decide multipart, cabeceras y forma del ref. */\n\tfamilia: \"anthropic\" | \"openai\";\n\t/** URL absoluta de la colección de ficheros. */\n\turlFicheros: string;\n\t/** Cabeceras extra obligatorias (el beta de la Files API de Anthropic). */\n\tcabeceras: Record<string, string>;\n}\n\nexport interface SinCapacidad {\n\t/** Por qué NO se puede subir. Nunca vacío. */\n\tmotivo: string;\n}\n\nexport type ResultadoDeCapacidad = CapacidadDeBlobs | SinCapacidad;\n\nexport function puedeSubir(resultado: ResultadoDeCapacidad): resultado is CapacidadDeBlobs {\n\treturn \"urlFicheros\" in resultado;\n}\n\n/** Beta obligatorio de la Files API de Anthropic. Sin él, /v1/files da 404. */\nexport const BETA_FICHEROS_ANTHROPIC = \"files-api-2025-04-14\";\n\nfunction anfitrion(url: string | undefined): string | undefined {\n\tif (!url) return undefined;\n\ttry {\n\t\treturn new URL(url).host.toLowerCase();\n\t} catch {\n\t\treturn undefined;\n\t}\n}\n\nfunction sinBarraFinal(url: string): string {\n\treturn url.replace(/\\/+$/, \"\");\n}\n\nexport function capacidadDeBlobs(modelo: ModeloParaBlobs | undefined): ResultadoDeCapacidad {\n\tif (!modelo) return { motivo: \"todavía no hay modelo seleccionado en la sesión\" };\n\tconst proveedor = modelo.provider ?? \"?\";\n\tconst api = modelo.api ?? \"?\";\n\tconst host = anfitrion(modelo.baseUrl);\n\n\tif (api === \"anthropic-messages\") {\n\t\tif (proveedor !== \"anthropic\") {\n\t\t\treturn {\n\t\t\t\tmotivo: `\"${proveedor}\" habla el dialecto de mensajes de Anthropic pero no es Anthropic: no expone /v1/files`,\n\t\t\t};\n\t\t}\n\t\tif (host !== \"api.anthropic.com\") {\n\t\t\treturn {\n\t\t\t\tmotivo: `el modelo apunta a ${host ?? \"una URL ilegible\"} y no a api.anthropic.com: un gateway no expone /v1/files`,\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\tproveedor: \"anthropic\",\n\t\t\tfamilia: \"anthropic\",\n\t\t\turlFicheros: `${sinBarraFinal(modelo.baseUrl ?? \"\")}/v1/files`,\n\t\t\tcabeceras: { \"anthropic-beta\": BETA_FICHEROS_ANTHROPIC, \"anthropic-version\": \"2023-06-01\" },\n\t\t};\n\t}\n\n\tif (api === \"openai-responses\") {\n\t\tif (proveedor !== \"openai\") {\n\t\t\treturn { motivo: `\"${proveedor}\" usa la API de respuestas de OpenAI pero no expone /v1/files propio` };\n\t\t}\n\t\tif (host !== \"api.openai.com\") {\n\t\t\treturn {\n\t\t\t\tmotivo: `el modelo apunta a ${host ?? \"una URL ilegible\"} y no a api.openai.com: un gateway no expone /v1/files`,\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\tproveedor: \"openai\",\n\t\t\tfamilia: \"openai\",\n\t\t\turlFicheros: `${sinBarraFinal(modelo.baseUrl ?? \"\")}/files`,\n\t\t\tcabeceras: {},\n\t\t};\n\t}\n\n\t// `openai-completions` acepta `file_id` solo en bloques `file` (PDF), no en\n\t// `image_url`; como lo que hoy adjunta Ada son imágenes, aquí no hay nada\n\t// que ganar y sí un 400 que ganar. Se dice, no se intenta.\n\tif (api === \"openai-completions\") {\n\t\treturn {\n\t\t\tmotivo: `la API \"openai-completions\" no acepta file_id en bloques de imagen; solo URL o base64 en línea`,\n\t\t};\n\t}\n\n\treturn { motivo: `la API \"${api}\" del proveedor \"${proveedor}\" no tiene API de ficheros conocida` };\n}\n\n// ─── Transporte ─────────────────────────────────────────────────────────────\n\nexport interface Credencial {\n\tapiKey?: string;\n\tcabeceras?: Record<string, string>;\n}\n\nexport type Fetch = typeof globalThis.fetch;\n\nexport interface RespuestaDeSubida {\n\tok: true;\n\tid: string;\n}\n\nexport interface FalloDeSubida {\n\tok: false;\n\t/**\n\t * `rechazado` = el proveedor contestó y dijo que no (4xx). `transporte` = no\n\t * se pudo ni preguntar. La diferencia importa: un rechazo se aprende, un\n\t * fallo de transporte se reintenta en el turno siguiente.\n\t */\n\tclase: \"rechazado\" | \"transporte\";\n\tmotivo: string;\n\testado?: number;\n}\n\nexport type ResultadoDeSubida = RespuestaDeSubida | FalloDeSubida;\n\n/**\n * Un token de OAuth de Anthropic (Claude Pro/Max: empieza por `sk-ant-oat`) NO\n * vale como `x-api-key`. `packages/ai` lo sabe y construye el cliente con\n * `authToken`, que es `Authorization: Bearer`\n * (anthropic-messages.ts:873 y :923). El mismo criterio, `includes`, y no un\n * `startsWith`: el token viaja a veces con prefijo de entorno.\n */\nexport function esTokenOAuthAnthropic(apiKey: string): boolean {\n\treturn apiKey.includes(\"sk-ant-oat\");\n}\n\nfunction cabecerasDeAuth(capacidad: CapacidadDeBlobs, credencial: Credencial): Record<string, string> {\n\t// Las de `capacidad` van LAS ÚLTIMAS y ganan: son obligatorias (el beta de la\n\t// Files API). Si una cabecera de proveedor traía su propio `anthropic-beta`,\n\t// el orden de antes borraba el beta de ficheros y /v1/files contestaba 404 —\n\t// un \"no puedo\" que se leía como \"el proveedor no quiere el fichero\".\n\tconst cabeceras: Record<string, string> = { ...(credencial.cabeceras ?? {}), ...capacidad.cabeceras };\n\tif (credencial.apiKey) {\n\t\t// Con OAuth, mandar la clave en `x-api-key` da 401 en TODAS las subidas: el\n\t\t// módulo entero quedaba muerto para quien entra con Claude Pro/Max, que es\n\t\t// la mayoría, y el motivo que salía en `/blobs` era \"401 al subir\", que\n\t\t// echa la culpa al proveedor en vez de a la cabecera.\n\t\tif (capacidad.familia === \"anthropic\" && !esTokenOAuthAnthropic(credencial.apiKey)) {\n\t\t\tcabeceras[\"x-api-key\"] = credencial.apiKey;\n\t\t} else {\n\t\t\tcabeceras.authorization = `Bearer ${credencial.apiKey}`;\n\t\t}\n\t}\n\treturn cabeceras;\n}\n\nasync function textoBreve(respuesta: Response): Promise<string> {\n\ttry {\n\t\treturn (await respuesta.text()).slice(0, 300);\n\t} catch {\n\t\treturn \"\";\n\t}\n}\n\nexport async function subirFichero(\n\tcapacidad: CapacidadDeBlobs,\n\tcredencial: Credencial,\n\tfichero: { datos: Uint8Array; mime: string; nombre: string },\n\tfetchImpl: Fetch = globalThis.fetch,\n\tsignal?: AbortSignal,\n): Promise<ResultadoDeSubida> {\n\tconst formulario = new FormData();\n\t// `new Blob([...])` y no `File`: el segundo no existe en todos los runtimes\n\t// donde se ejecutan los tests, y el nombre viaja igual en el `append`.\n\tformulario.append(\"file\", new Blob([fichero.datos], { type: fichero.mime }), fichero.nombre);\n\t// OpenAI exige `purpose`; Anthropic rechaza campos extra, así que va solo donde toca.\n\tif (capacidad.familia === \"openai\") formulario.append(\"purpose\", \"vision\");\n\n\tlet respuesta: Response;\n\ttry {\n\t\trespuesta = await fetchImpl(capacidad.urlFicheros, {\n\t\t\tmethod: \"POST\",\n\t\t\theaders: cabecerasDeAuth(capacidad, credencial),\n\t\t\tbody: formulario,\n\t\t\tsignal,\n\t\t});\n\t} catch (error) {\n\t\treturn { ok: false, clase: \"transporte\", motivo: error instanceof Error ? error.message : String(error) };\n\t}\n\n\tif (!respuesta.ok) {\n\t\treturn {\n\t\t\tok: false,\n\t\t\tclase: respuesta.status >= 400 && respuesta.status < 500 ? \"rechazado\" : \"transporte\",\n\t\t\testado: respuesta.status,\n\t\t\tmotivo: `${respuesta.status} al subir: ${await textoBreve(respuesta)}`,\n\t\t};\n\t}\n\n\tlet cuerpo: unknown;\n\ttry {\n\t\tcuerpo = await respuesta.json();\n\t} catch (error) {\n\t\treturn { ok: false, clase: \"transporte\", motivo: `respuesta ilegible: ${String(error)}` };\n\t}\n\tconst id = (cuerpo as { id?: unknown })?.id;\n\tif (typeof id !== \"string\" || id.length === 0) {\n\t\t// 200 sin id es un fallo, no un éxito vacío. Devolverlo como ok dejaría\n\t\t// un `file_id: undefined` viajando en el payload.\n\t\treturn { ok: false, clase: \"rechazado\", motivo: \"el proveedor respondió 200 sin id de fichero\" };\n\t}\n\treturn { ok: true, id };\n}\n\nexport type EstadoDeFichero = \"vivo\" | \"muerto\" | \"desconocido\";\n\n/**\n * ¿Sigue existiendo el id? Se pregunta UNA vez por proceso y solo para ids que\n * vienen de una sesión anterior. Preguntarlo en cada turno costaría una\n * petición por adjunto y por turno, que es justo lo que este módulo evita.\n *\n * `desconocido` no es `muerto`: si la red falla, no sabemos si el id sirve, y\n * tratarlo como muerto resubiría el fichero cada vez que hubiera un corte.\n */\nexport async function verificarFichero(\n\tcapacidad: CapacidadDeBlobs,\n\tcredencial: Credencial,\n\tid: string,\n\tfetchImpl: Fetch = globalThis.fetch,\n\tsignal?: AbortSignal,\n): Promise<EstadoDeFichero> {\n\tlet respuesta: Response;\n\ttry {\n\t\trespuesta = await fetchImpl(`${capacidad.urlFicheros}/${encodeURIComponent(id)}`, {\n\t\t\tmethod: \"GET\",\n\t\t\theaders: cabecerasDeAuth(capacidad, credencial),\n\t\t\tsignal,\n\t\t});\n\t} catch {\n\t\treturn \"desconocido\";\n\t}\n\tif (respuesta.ok) return \"vivo\";\n\tif (respuesta.status === 404 || respuesta.status === 410) return \"muerto\";\n\t// 401/403 no dicen nada del fichero, dicen algo de la credencial.\n\treturn \"desconocido\";\n}\n\n// Aquí vivía `borrarFichero`. No lo llamaba nadie: `/blobs purgar` solo tira la\n// entrada de la caché local, y el proveedor caduca sus ficheros solo. Código\n// escrito, probado y desenchufado; se borra en vez de dejarlo esperando a un\n// llamador que no existe.\n"]}
1
+ {"version":3,"file":"proveedor.js","sourceRoot":"","sources":["../../../src/core/blobs/proveedor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * Espejo de imágenes salientes a URLs públicas — IMG-01.
3
+ *
4
+ * La Files API del proveedor es el camino bueno, pero no siempre está: hay
5
+ * modelos sin API de ficheros, credenciales OAuth que la rechazan, y proveedores
6
+ * que se cansan. Cuando la cadena `api → uploader → inline` se corta arriba, hoy
7
+ * el adjunto vuelve al cuerpo de la petición en base64 y se paga en CADA turno
8
+ * hasta el final de la sesión.
9
+ *
10
+ * Los uploaders públicos son el peldaño intermedio: servicios sin
11
+ * autenticación (tmpfiles.org, 0x0.st, file.io) que devuelven una URL estable.
12
+ * El modelo la descarga por su cuenta, igual que haría con una URL de la Files
13
+ * API. Tres reglas duras:
14
+ *
15
+ * 1. NUNCA viajan credenciales: los servicios son sin auth, así que no hay
16
+ * nada que filtrar; si algún día uno pide auth, va en cabecera y no en la
17
+ * URL — una URL con clave acaba en logs, historial y en el contexto del
18
+ * propio modelo.
19
+ * 2. Todo uploader tiene límite de tamaño y timeout (reutiliza
20
+ * `raceHandlerWithTimeout` del kit de higiene): un servicio caído cuesta
21
+ * segundos, no el turno.
22
+ * 3. Cuarentena: un uploader que falla 3 veces seguidas se desactiva 10 minutos.
23
+ * Es el mismo criterio del apagado del broker (`apagadoPor`) bajado a
24
+ * escala de proveedor individual: no castegar a todos por uno malo.
25
+ *
26
+ * El journal (`blobs-journal.jsonl`, append-only) registra por qué camino viajó
27
+ * cada blob y cuántos bytes eran: es la evidencia del ahorro, y se lee a mano
28
+ * cuando algo va mal, como el resto del estado de blobs.
29
+ */
30
+ import type { AlmacenDeBlobs } from "./almacen.ts";
31
+ import { type CapacidadDeBlobs, type Credencial, type Fetch } from "./proveedor.ts";
32
+ /** Timeout de cada subida pública. Un servicio lento no debe costar el turno. */
33
+ export declare const TIMEOUT_SUBIDA_MS = 30000;
34
+ /** Fallos seguidos que activan la cuarentena de un uploader. */
35
+ export declare const FALLOS_PARA_CUARENTENA = 3;
36
+ /** Tiempo que un uploader en cuarentena queda desactivado. */
37
+ export declare const CUARENTENA_MS: number;
38
+ export interface ResultadoDeUploader {
39
+ url: string;
40
+ /** Milisegundos epoch en los que la URL deja de servir, si se sabe. */
41
+ expira?: number;
42
+ }
43
+ /**
44
+ * Sin credenciales, a propósito: ver cabecera del fichero. `subir` recibe el
45
+ * fetch inyectado para poder probar sin red real.
46
+ */
47
+ export interface Uploader {
48
+ nombre: string;
49
+ /** Límite de tamaño propio del servicio; false = ni intentarlo. */
50
+ puedeSubir(mime: string, tamano: number): boolean;
51
+ subir(bytes: Uint8Array, mime: string, fetchImpl?: Fetch, signal?: AbortSignal): Promise<ResultadoDeUploader>;
52
+ }
53
+ /** https://tmpfiles.org/api/v1/upload — multipart campo `file`; caduca a 60 min. */
54
+ export declare const tmpfilesOrg: Uploader;
55
+ /** https://0x0.st — POST form campo `file`; responde el texto de la URL. */
56
+ export declare const ceroPorCero: Uploader;
57
+ /** https://file.io — POST form campo `file`; enlace de UNA descarga. */
58
+ export declare const fileIo: Uploader;
59
+ /** Orden de preferencia: el más veterano y predecible primero. */
60
+ export declare const UPLOADERS_PUBLICOS: readonly Uploader[];
61
+ /**
62
+ * Mismo criterio que `apagadoPor` en la extensión, pero por uploader: fallos
63
+ * seguidos apagan SOLO al culpable, durante un tiempo, y un éxito rompe la
64
+ * racha. En memoria a propósito: la cuarentena caduca sola y no merece disco.
65
+ */
66
+ export declare class Cuarentena {
67
+ private readonly fallosSeguidos;
68
+ private readonly hasta;
69
+ estaEnCuarentena(nombre: string, ahora?: number): boolean;
70
+ registrarExito(nombre: string): void;
71
+ registrarFallo(nombre: string, ahora?: number): void;
72
+ }
73
+ export type ViaDeSubida = "api" | "uploader" | "inline";
74
+ export interface EntradaJournal {
75
+ hash: string;
76
+ via: ViaDeSubida;
77
+ bytes: number;
78
+ en: number;
79
+ /** Nombre del uploader público usado, cuando `via === "uploader"`. */
80
+ uploader?: string;
81
+ }
82
+ export declare function anotarJournal(agentDir: string, entrada: EntradaJournal): Promise<void>;
83
+ export interface OpcionesDeCadena {
84
+ agentDir: string;
85
+ capacidad?: CapacidadDeBlobs;
86
+ credencial?: Credencial;
87
+ almacen?: AlmacenDeBlobs;
88
+ fetchImpl?: Fetch;
89
+ signal?: AbortSignal;
90
+ uploaders?: readonly Uploader[];
91
+ cuarentena?: Cuarentena;
92
+ timeoutMs?: number;
93
+ journal?: boolean;
94
+ }
95
+ export interface ResultadoDeCadena {
96
+ hash: string;
97
+ via: ViaDeSubida;
98
+ id?: string;
99
+ url?: string;
100
+ expira?: number;
101
+ uploader?: string;
102
+ motivo?: string;
103
+ }
104
+ export declare function subirConCadena(datos: Uint8Array, mime: string, opciones: OpcionesDeCadena): Promise<ResultadoDeCadena>;
105
+ //# sourceMappingURL=uploaders.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uploaders.d.ts","sourceRoot":"","sources":["../../../src/core/blobs/uploaders.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,224 @@
1
+ /**
2
+ * Espejo de imágenes salientes a URLs públicas — IMG-01.
3
+ *
4
+ * La Files API del proveedor es el camino bueno, pero no siempre está: hay
5
+ * modelos sin API de ficheros, credenciales OAuth que la rechazan, y proveedores
6
+ * que se cansan. Cuando la cadena `api → uploader → inline` se corta arriba, hoy
7
+ * el adjunto vuelve al cuerpo de la petición en base64 y se paga en CADA turno
8
+ * hasta el final de la sesión.
9
+ *
10
+ * Los uploaders públicos son el peldaño intermedio: servicios sin
11
+ * autenticación (tmpfiles.org, 0x0.st, file.io) que devuelven una URL estable.
12
+ * El modelo la descarga por su cuenta, igual que haría con una URL de la Files
13
+ * API. Tres reglas duras:
14
+ *
15
+ * 1. NUNCA viajan credenciales: los servicios son sin auth, así que no hay
16
+ * nada que filtrar; si algún día uno pide auth, va en cabecera y no en la
17
+ * URL — una URL con clave acaba en logs, historial y en el contexto del
18
+ * propio modelo.
19
+ * 2. Todo uploader tiene límite de tamaño y timeout (reutiliza
20
+ * `raceHandlerWithTimeout` del kit de higiene): un servicio caído cuesta
21
+ * segundos, no el turno.
22
+ * 3. Cuarentena: un uploader que falla 3 veces seguidas se desactiva 10 minutos.
23
+ * Es el mismo criterio del apagado del broker (`apagadoPor`) bajado a
24
+ * escala de proveedor individual: no castegar a todos por uno malo.
25
+ *
26
+ * El journal (`blobs-journal.jsonl`, append-only) registra por qué camino viajó
27
+ * cada blob y cuántos bytes eran: es la evidencia del ahorro, y se lee a mano
28
+ * cuando algo va mal, como el resto del estado de blobs.
29
+ */
30
+ import { appendFile, mkdir } from "node:fs/promises";
31
+ import { join } from "node:path";
32
+ import { raceHandlerWithTimeout } from "../higiene/race-handler.js";
33
+ import { extensionDe, hashDeContenido } from "./broker.js";
34
+ import { puedeSubir, subirFichero } from "./proveedor.js";
35
+ /** Timeout de cada subida pública. Un servicio lento no debe costar el turno. */
36
+ export const TIMEOUT_SUBIDA_MS = 30_000;
37
+ /** Fallos seguidos que activan la cuarentena de un uploader. */
38
+ export const FALLOS_PARA_CUARENTENA = 3;
39
+ /** Tiempo que un uploader en cuarentena queda desactivado. */
40
+ export const CUARENTENA_MS = 10 * 60 * 1000;
41
+ // ─── Uploaders públicos ──────────────────────────────────────────────────────
42
+ function formaMultipart(bytes, mime, nombre) {
43
+ const forma = new FormData();
44
+ forma.append("file", new Blob([bytes], { type: mime }), nombre);
45
+ return forma;
46
+ }
47
+ async function subirConTimeout(hacerSubida, timeoutMs) {
48
+ let causa;
49
+ const handler = hacerSubida().catch((error) => {
50
+ causa = error instanceof Error ? error.message : String(error);
51
+ throw error;
52
+ });
53
+ // Centinela imposible de confundir con una subida real: si sale, o el
54
+ // handler reventó (y `causa` lo dice) o venció el timer.
55
+ const VENCIO = { url: "" };
56
+ const resultado = await raceHandlerWithTimeout(handler, timeoutMs, VENCIO);
57
+ if (resultado === VENCIO) {
58
+ throw new Error(causa ?? `sin respuesta tras ${timeoutMs} ms`);
59
+ }
60
+ return resultado;
61
+ }
62
+ const TMPFILES_MAX_BYTES = 100 * 1024 * 1024;
63
+ /** https://tmpfiles.org/api/v1/upload — multipart campo `file`; caduca a 60 min. */
64
+ export const tmpfilesOrg = {
65
+ nombre: "tmpfiles.org",
66
+ puedeSubir(_mime, tamano) {
67
+ return tamano > 0 && tamano <= TMPFILES_MAX_BYTES;
68
+ },
69
+ async subir(bytes, mime, fetchImpl = globalThis.fetch, signal) {
70
+ return subirConTimeout(async () => {
71
+ const respuesta = await fetchImpl("https://tmpfiles.org/api/v1/upload", {
72
+ method: "POST",
73
+ body: formaMultipart(bytes, mime, "blob"),
74
+ signal,
75
+ });
76
+ if (!respuesta.ok)
77
+ throw new Error(`tmpfiles.org respondió ${respuesta.status}`);
78
+ const cuerpo = (await respuesta.json());
79
+ const pagina = cuerpo.data?.url;
80
+ if (cuerpo.status !== "success" || !pagina)
81
+ throw new Error("tmpfiles.org no devolvió URL");
82
+ // La API devuelve la página de visualización; el enlace directo lleva `/dl/`.
83
+ const url = pagina.replace("tmpfiles.org/", "tmpfiles.org/dl/");
84
+ return { url, expira: Date.now() + 60 * 60 * 1000 };
85
+ }, TIMEOUT_SUBIDA_MS);
86
+ },
87
+ };
88
+ const CEROXCERO_MAX_BYTES = 512 * 1024 * 1024;
89
+ /** https://0x0.st — POST form campo `file`; responde el texto de la URL. */
90
+ export const ceroPorCero = {
91
+ nombre: "0x0.st",
92
+ puedeSubir(_mime, tamano) {
93
+ return tamano > 0 && tamano <= CEROXCERO_MAX_BYTES;
94
+ },
95
+ async subir(bytes, mime, fetchImpl = globalThis.fetch, signal) {
96
+ return subirConTimeout(async () => {
97
+ const respuesta = await fetchImpl("https://0x0.st", {
98
+ method: "POST",
99
+ body: formaMultipart(bytes, mime, "blob"),
100
+ signal,
101
+ });
102
+ if (!respuesta.ok)
103
+ throw new Error(`0x0.st respondió ${respuesta.status}`);
104
+ const url = (await respuesta.text()).trim();
105
+ if (!/^https?:\/\//.test(url))
106
+ throw new Error("0x0.st no devolvió una URL");
107
+ return { url };
108
+ }, TIMEOUT_SUBIDA_MS);
109
+ },
110
+ };
111
+ const FILEIO_MAX_BYTES = 256 * 1024 * 1024;
112
+ /** https://file.io — POST form campo `file`; enlace de UNA descarga. */
113
+ export const fileIo = {
114
+ nombre: "file.io",
115
+ puedeSubir(_mime, tamano) {
116
+ return tamano > 0 && tamano <= FILEIO_MAX_BYTES;
117
+ },
118
+ async subir(bytes, mime, fetchImpl = globalThis.fetch, signal) {
119
+ return subirConTimeout(async () => {
120
+ const respuesta = await fetchImpl("https://file.io", {
121
+ method: "POST",
122
+ body: formaMultipart(bytes, mime, "blob"),
123
+ signal,
124
+ });
125
+ if (!respuesta.ok)
126
+ throw new Error(`file.io respondió ${respuesta.status}`);
127
+ const cuerpo = (await respuesta.json());
128
+ if (!cuerpo.success || !cuerpo.link)
129
+ throw new Error("file.io no devolvió enlace");
130
+ return { url: cuerpo.link };
131
+ }, TIMEOUT_SUBIDA_MS);
132
+ },
133
+ };
134
+ /** Orden de preferencia: el más veterano y predecible primero. */
135
+ export const UPLOADERS_PUBLICOS = [tmpfilesOrg, ceroPorCero, fileIo];
136
+ // ─── Cuarentena ──────────────────────────────────────────────────────────────
137
+ /**
138
+ * Mismo criterio que `apagadoPor` en la extensión, pero por uploader: fallos
139
+ * seguidos apagan SOLO al culpable, durante un tiempo, y un éxito rompe la
140
+ * racha. En memoria a propósito: la cuarentena caduca sola y no merece disco.
141
+ */
142
+ export class Cuarentena {
143
+ fallosSeguidos = new Map();
144
+ hasta = new Map();
145
+ estaEnCuarentena(nombre, ahora = Date.now()) {
146
+ const limite = this.hasta.get(nombre);
147
+ if (limite === undefined)
148
+ return false;
149
+ if (ahora < limite)
150
+ return true;
151
+ this.hasta.delete(nombre);
152
+ this.fallosSeguidos.delete(nombre);
153
+ return false;
154
+ }
155
+ registrarExito(nombre) {
156
+ this.fallosSeguidos.delete(nombre);
157
+ this.hasta.delete(nombre);
158
+ }
159
+ registrarFallo(nombre, ahora = Date.now()) {
160
+ const fallos = (this.fallosSeguidos.get(nombre) ?? 0) + 1;
161
+ if (fallos >= FALLOS_PARA_CUARENTENA) {
162
+ this.hasta.set(nombre, ahora + CUARENTENA_MS);
163
+ this.fallosSeguidos.delete(nombre);
164
+ return;
165
+ }
166
+ this.fallosSeguidos.set(nombre, fallos);
167
+ }
168
+ }
169
+ export async function anotarJournal(agentDir, entrada) {
170
+ try {
171
+ await mkdir(agentDir, { recursive: true });
172
+ await appendFile(join(agentDir, "blobs-journal.jsonl"), `${JSON.stringify(entrada)}\n`, "utf-8");
173
+ }
174
+ catch {
175
+ // El journal es evidencia del ahorro, no parte del turno: si no se puede
176
+ // escribir, la subida ya pasó y nadie debe pagar un error por él.
177
+ }
178
+ }
179
+ export async function subirConCadena(datos, mime, opciones) {
180
+ const hash = hashDeContenido(datos);
181
+ const bytes = datos.length;
182
+ const journal = opciones.journal !== false;
183
+ const anotar = async (via, extra = {}) => {
184
+ if (journal)
185
+ await anotarJournal(opciones.agentDir, { hash, via, bytes, en: Date.now(), ...extra });
186
+ };
187
+ // Peldaño 1 — Files API del proveedor (el mismo transporte del broker).
188
+ const capacidad = opciones.capacidad;
189
+ const credencial = opciones.credencial;
190
+ if (capacidad && puedeSubir(capacidad) && credencial && (credencial.apiKey || credencial.cabeceras)) {
191
+ const subida = await subirFichero(capacidad, credencial, { datos, mime, nombre: `ada-${hash.slice(0, 16)}.${extensionDe(mime)}` }, opciones.fetchImpl, opciones.signal);
192
+ if (subida.ok) {
193
+ opciones.almacen?.guardar(capacidad.proveedor, hash, {
194
+ id: subida.id,
195
+ bytes,
196
+ mime,
197
+ subidoEn: Date.now(),
198
+ usadoEn: Date.now(),
199
+ });
200
+ await anotar("api");
201
+ return { hash, via: "api", id: subida.id };
202
+ }
203
+ }
204
+ // Peldaño 2 — uploaders públicos, saltando los que no caben o están en cuarentena.
205
+ const cuarentena = opciones.cuarentena ?? new Cuarentena();
206
+ const uploaders = opciones.uploaders ?? UPLOADERS_PUBLICOS;
207
+ for (const uploader of uploaders) {
208
+ if (!uploader.puedeSubir(mime, bytes) || cuarentena.estaEnCuarentena(uploader.nombre))
209
+ continue;
210
+ try {
211
+ const resultado = await subirConTimeout(() => uploader.subir(datos, mime, opciones.fetchImpl, opciones.signal), opciones.timeoutMs ?? TIMEOUT_SUBIDA_MS);
212
+ cuarentena.registrarExito(uploader.nombre);
213
+ await anotar("uploader", { uploader: uploader.nombre });
214
+ return { hash, via: "uploader", url: resultado.url, expira: resultado.expira, uploader: uploader.nombre };
215
+ }
216
+ catch {
217
+ cuarentena.registrarFallo(uploader.nombre);
218
+ }
219
+ }
220
+ // Último recurso — en línea, como siempre se hizo. Caro pero seguro.
221
+ await anotar("inline");
222
+ return { hash, via: "inline" };
223
+ }
224
+ //# sourceMappingURL=uploaders.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uploaders.js","sourceRoot":"","sources":["../../../src/core/blobs/uploaders.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ import { ManagedTimers } from "../higiene/managed-timers.ts";
2
+ import type { DaemonHandle, PsEntry, ReapResult } from "./types.ts";
3
+ /** Por defecto, un daemon sin latido más de 60 s se considera caducado. */
4
+ export declare const DEFAULT_HEARTBEAT_TTL_MS = 60000;
5
+ export declare class Broker {
6
+ private readonly daemons;
7
+ private readonly ttlMs;
8
+ private readonly timers;
9
+ /** Inyectable para tests: decide si un pid vive. Por defecto usa kill(0). */
10
+ private readonly isAlive;
11
+ /** Inyectable para tests: startId. Por defecto lee /proc o ps. */
12
+ private readonly resolveStartId;
13
+ constructor(opts?: {
14
+ heartbeatTtlMs?: number;
15
+ isAlive?: (pid: number) => boolean;
16
+ resolveStartId?: (pid: number) => string | undefined;
17
+ });
18
+ /** Registra o re-registra un daemon para el proyecto. Devuelve el handle. */
19
+ register(projectRoot: string, pid?: number): DaemonHandle;
20
+ /** Refresca el latido de un proyecto. false = no existía. */
21
+ heartbeat(projectRoot: string): boolean;
22
+ /** Devuelve el handle crudo o undefined. */
23
+ get(projectRoot: string): DaemonHandle | undefined;
24
+ /** ¿Cuántos daemons hay registrados? */
25
+ get size(): number;
26
+ /** Lista inspeccionable para `ada ps` — pid, proyecto, uptime, estado. */
27
+ list(): PsEntry[];
28
+ /** Quita el registro del proyecto, si existe. true = había algo. */
29
+ unregister(projectRoot: string): boolean;
30
+ /**
31
+ * Mata un huérfano por proyecto: verifica identidad antes de señal.
32
+ * Devuelve narrativa de lo hecho.
33
+ */
34
+ killOrphan(projectRoot: string): {
35
+ killed: boolean;
36
+ narrativa: string;
37
+ };
38
+ /**
39
+ * Barre todos los huérfanos (pid muerto) y devuelve narrativa agregada.
40
+ * Los caducados NO se borran automáticamente: requieren `killOrphan` explícito
41
+ * o re-registro — borrar por timeout silencioso es perder trabajo a medias.
42
+ */
43
+ reapOrphans(): ReapResult;
44
+ private estadoPara;
45
+ /** Solo para tests / inspección: vacía todo. */
46
+ clear(): void;
47
+ /** Higiene B06: acceso al pool de timers para tests/inspección. */
48
+ getTimers(): ManagedTimers;
49
+ /** Programa un callback vía ManagedTimers (unref, disposeAll lo limpia). */
50
+ scheduleReap(callback: () => void, delayMs: number): ReturnType<typeof setTimeout>;
51
+ /** Limpia todos los timers pendientes (p. ej. al cerrar proyecto). */
52
+ disposeTimers(): void;
53
+ }
54
+ //# sourceMappingURL=broker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"broker.d.ts","sourceRoot":"","sources":["../../../src/core/broker/broker.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAgB,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAElF,2EAA2E;AAC3E,eAAO,MAAM,wBAAwB,QAAS,CAAC;AA0C/C,qBAAa,MAAM;IAClB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmC;IAC3D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuB;IAC9C,6EAA6E;IAC7E,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2B;IACnD,kEAAkE;IAClE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAsC;gBAEzD,IAAI,CAAC,EAAE;QAClB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;QACnC,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;KACrD;IAMD,6EAA6E;IAC7E,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,YAAY;IAqBzD,6DAA6D;IAC7D,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAQvC,4CAA4C;IAC5C,GAAG,CAAC,WAAW,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAKlD,wCAAwC;IACxC,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,0EAA0E;IAC1E,IAAI,IAAI,OAAO,EAAE;IA4BjB,oEAAoE;IACpE,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAKxC;;;OAGG;IACH,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE;IAevE;;;;OAIG;IACH,WAAW,IAAI,UAAU;IAezB,OAAO,CAAC,UAAU;IAMlB,gDAAgD;IAChD,KAAK,IAAI,IAAI;IAIb,mEAAmE;IACnE,SAAS,IAAI,aAAa;IAI1B,4EAA4E;IAC5E,YAAY,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC;IAIlF,sEAAsE;IACtE,aAAa,IAAI,IAAI;CAGrB"}