@hoilab/ada-cli 0.85.0 → 0.85.1

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 (1691) 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.map +1 -1
  134. package/dist/core/agent-session.d.ts +67 -0
  135. package/dist/core/agent-session.d.ts.map +1 -1
  136. package/dist/core/agent-session.js +43 -2
  137. package/dist/core/agent-session.js.map +1 -1
  138. package/dist/core/agents/loader.d.ts.map +1 -1
  139. package/dist/core/agents/loader.js.map +1 -1
  140. package/dist/core/appendonly/append-only-context.d.ts +118 -0
  141. package/dist/core/appendonly/append-only-context.d.ts.map +1 -0
  142. package/dist/core/appendonly/append-only-context.js +256 -0
  143. package/dist/core/appendonly/append-only-context.js.map +1 -0
  144. package/dist/core/appendonly/auto.d.ts +30 -0
  145. package/dist/core/appendonly/auto.d.ts.map +1 -0
  146. package/dist/core/appendonly/auto.js +68 -0
  147. package/dist/core/appendonly/auto.js.map +1 -0
  148. package/dist/core/appendonly/extension.d.ts +29 -0
  149. package/dist/core/appendonly/extension.d.ts.map +1 -0
  150. package/dist/core/appendonly/extension.js +51 -0
  151. package/dist/core/appendonly/extension.js.map +1 -0
  152. package/dist/core/appendonly/index.d.ts +41 -0
  153. package/dist/core/appendonly/index.d.ts.map +1 -0
  154. package/dist/core/appendonly/index.js +42 -0
  155. package/dist/core/appendonly/index.js.map +1 -0
  156. package/dist/core/aprobacion/generados.d.ts.map +1 -1
  157. package/dist/core/aprobacion/generados.js.map +1 -1
  158. package/dist/core/aprobacion/politica-de-maquina.d.ts.map +1 -1
  159. package/dist/core/aprobacion/politica-de-maquina.js.map +1 -1
  160. package/dist/core/aprobacion/politica.d.ts +1 -1
  161. package/dist/core/aprobacion/politica.d.ts.map +1 -1
  162. package/dist/core/aprobacion/politica.js.map +1 -1
  163. package/dist/core/arranque/atajos.d.ts.map +1 -1
  164. package/dist/core/arranque/atajos.js +20 -0
  165. package/dist/core/arranque/atajos.js.map +1 -1
  166. package/dist/core/audit/exportacion.d.ts.map +1 -1
  167. package/dist/core/audit/exportacion.js +5 -3
  168. package/dist/core/audit/exportacion.js.map +1 -1
  169. package/dist/core/audit/libro.d.ts +7 -0
  170. package/dist/core/audit/libro.d.ts.map +1 -1
  171. package/dist/core/audit/libro.js.map +1 -1
  172. package/dist/core/audit/registro-sesion.d.ts.map +1 -1
  173. package/dist/core/audit/registro-sesion.js.map +1 -1
  174. package/dist/core/audit/retencion.d.ts.map +1 -1
  175. package/dist/core/audit/retencion.js.map +1 -1
  176. package/dist/core/audit/rutas.d.ts.map +1 -1
  177. package/dist/core/audit/rutas.js.map +1 -1
  178. package/dist/core/auth-guidance.d.ts.map +1 -1
  179. package/dist/core/auth-guidance.js.map +1 -1
  180. package/dist/core/auth-storage.d.ts.map +1 -1
  181. package/dist/core/auth-storage.js.map +1 -1
  182. package/dist/core/banco/almacenamiento.d.ts.map +1 -1
  183. package/dist/core/banco/almacenamiento.js.map +1 -1
  184. package/dist/core/banco/analisis.d.ts.map +1 -1
  185. package/dist/core/banco/analisis.js.map +1 -1
  186. package/dist/core/banco/asides.d.ts +64 -0
  187. package/dist/core/banco/asides.d.ts.map +1 -0
  188. package/dist/core/banco/asides.js +113 -0
  189. package/dist/core/banco/asides.js.map +1 -0
  190. package/dist/core/banco/bloques.d.ts.map +1 -1
  191. package/dist/core/banco/bloques.js.map +1 -1
  192. package/dist/core/banco/cargas.d.ts.map +1 -1
  193. package/dist/core/banco/cargas.js.map +1 -1
  194. package/dist/core/banco/comparar.d.ts.map +1 -1
  195. package/dist/core/banco/comparar.js.map +1 -1
  196. package/dist/core/banco/cow-isolation.d.ts +74 -0
  197. package/dist/core/banco/cow-isolation.d.ts.map +1 -0
  198. package/dist/core/banco/cow-isolation.js +259 -0
  199. package/dist/core/banco/cow-isolation.js.map +1 -0
  200. package/dist/core/banco/ejecutar.d.ts.map +1 -1
  201. package/dist/core/banco/ejecutar.js.map +1 -1
  202. package/dist/core/banco/generar.d.ts.map +1 -1
  203. package/dist/core/banco/generar.js.map +1 -1
  204. package/dist/core/banco/mutaciones.d.ts.map +1 -1
  205. package/dist/core/banco/mutaciones.js.map +1 -1
  206. package/dist/core/banco/park-revive.d.ts +67 -0
  207. package/dist/core/banco/park-revive.d.ts.map +1 -0
  208. package/dist/core/banco/park-revive.js +130 -0
  209. package/dist/core/banco/park-revive.js.map +1 -0
  210. package/dist/core/banco/pruning.d.ts +48 -0
  211. package/dist/core/banco/pruning.d.ts.map +1 -0
  212. package/dist/core/banco/pruning.js +146 -0
  213. package/dist/core/banco/pruning.js.map +1 -0
  214. package/dist/core/banco/steering.d.ts +81 -0
  215. package/dist/core/banco/steering.d.ts.map +1 -0
  216. package/dist/core/banco/steering.js +96 -0
  217. package/dist/core/banco/steering.js.map +1 -0
  218. package/dist/core/banco/tipos.d.ts.map +1 -1
  219. package/dist/core/banco/tipos.js.map +1 -1
  220. package/dist/core/bash-executor.d.ts.map +1 -1
  221. package/dist/core/bash-executor.js.map +1 -1
  222. package/dist/core/blobs/almacen.d.ts.map +1 -1
  223. package/dist/core/blobs/almacen.js.map +1 -1
  224. package/dist/core/blobs/broker.d.ts +1 -0
  225. package/dist/core/blobs/broker.d.ts.map +1 -1
  226. package/dist/core/blobs/broker.js +1 -1
  227. package/dist/core/blobs/broker.js.map +1 -1
  228. package/dist/core/blobs/index.d.ts +1 -0
  229. package/dist/core/blobs/index.d.ts.map +1 -1
  230. package/dist/core/blobs/index.js +1 -0
  231. package/dist/core/blobs/index.js.map +1 -1
  232. package/dist/core/blobs/payload.d.ts.map +1 -1
  233. package/dist/core/blobs/payload.js.map +1 -1
  234. package/dist/core/blobs/proveedor.d.ts.map +1 -1
  235. package/dist/core/blobs/proveedor.js.map +1 -1
  236. package/dist/core/blobs/uploaders.d.ts +105 -0
  237. package/dist/core/blobs/uploaders.d.ts.map +1 -0
  238. package/dist/core/blobs/uploaders.js +224 -0
  239. package/dist/core/blobs/uploaders.js.map +1 -0
  240. package/dist/core/broker/broker.d.ts +54 -0
  241. package/dist/core/broker/broker.d.ts.map +1 -0
  242. package/dist/core/broker/broker.js +216 -0
  243. package/dist/core/broker/broker.js.map +1 -0
  244. package/dist/core/broker/index.d.ts +21 -0
  245. package/dist/core/broker/index.d.ts.map +1 -0
  246. package/dist/core/broker/index.js +33 -0
  247. package/dist/core/broker/index.js.map +1 -0
  248. package/dist/core/broker/ps.d.ts +20 -0
  249. package/dist/core/broker/ps.d.ts.map +1 -0
  250. package/dist/core/broker/ps.js +55 -0
  251. package/dist/core/broker/ps.js.map +1 -0
  252. package/dist/core/broker/types.d.ts +45 -0
  253. package/dist/core/broker/types.d.ts.map +1 -0
  254. package/dist/core/broker/types.js +19 -0
  255. package/dist/core/broker/types.js.map +1 -0
  256. package/dist/core/browser/cdp.d.ts.map +1 -1
  257. package/dist/core/browser/cdp.js.map +1 -1
  258. package/dist/core/browser/politica.d.ts.map +1 -1
  259. package/dist/core/browser/politica.js.map +1 -1
  260. package/dist/core/browser/sesion.d.ts.map +1 -1
  261. package/dist/core/browser/sesion.js.map +1 -1
  262. package/dist/core/browser/tools.d.ts.map +1 -1
  263. package/dist/core/browser/tools.js.map +1 -1
  264. package/dist/core/cache-stats.d.ts.map +1 -1
  265. package/dist/core/cache-stats.js.map +1 -1
  266. package/dist/core/capability/capability.test.d.ts +12 -0
  267. package/dist/core/capability/capability.test.d.ts.map +1 -0
  268. package/dist/core/capability/capability.test.js +258 -0
  269. package/dist/core/capability/capability.test.js.map +1 -0
  270. package/dist/core/capability/fs.d.ts +32 -0
  271. package/dist/core/capability/fs.d.ts.map +1 -0
  272. package/dist/core/capability/fs.js +106 -0
  273. package/dist/core/capability/fs.js.map +1 -0
  274. package/dist/core/capability/index.d.ts +68 -0
  275. package/dist/core/capability/index.d.ts.map +1 -0
  276. package/dist/core/capability/index.js +258 -0
  277. package/dist/core/capability/index.js.map +1 -0
  278. package/dist/core/capability/types.d.ts +168 -0
  279. package/dist/core/capability/types.d.ts.map +1 -0
  280. package/dist/core/capability/types.js +16 -0
  281. package/dist/core/capability/types.js.map +1 -0
  282. package/dist/core/carga-plugins/index.d.ts +49 -0
  283. package/dist/core/carga-plugins/index.d.ts.map +1 -0
  284. package/dist/core/carga-plugins/index.js +85 -0
  285. package/dist/core/carga-plugins/index.js.map +1 -0
  286. package/dist/core/carga-plugins/invalidacion.d.ts +60 -0
  287. package/dist/core/carga-plugins/invalidacion.d.ts.map +1 -0
  288. package/dist/core/carga-plugins/invalidacion.js +94 -0
  289. package/dist/core/carga-plugins/invalidacion.js.map +1 -0
  290. package/dist/core/carga-plugins/paralelo.d.ts +48 -0
  291. package/dist/core/carga-plugins/paralelo.d.ts.map +1 -0
  292. package/dist/core/carga-plugins/paralelo.js +47 -0
  293. package/dist/core/carga-plugins/paralelo.js.map +1 -0
  294. package/dist/core/colaboracion/autoresearch.d.ts +56 -0
  295. package/dist/core/colaboracion/autoresearch.d.ts.map +1 -0
  296. package/dist/core/colaboracion/autoresearch.js +95 -0
  297. package/dist/core/colaboracion/autoresearch.js.map +1 -0
  298. package/dist/core/colaboracion/index.d.ts +10 -0
  299. package/dist/core/colaboracion/index.d.ts.map +1 -0
  300. package/dist/core/colaboracion/index.js +7 -0
  301. package/dist/core/colaboracion/index.js.map +1 -0
  302. package/dist/core/colaboracion/kernels.d.ts +63 -0
  303. package/dist/core/colaboracion/kernels.d.ts.map +1 -0
  304. package/dist/core/colaboracion/kernels.js +99 -0
  305. package/dist/core/colaboracion/kernels.js.map +1 -0
  306. package/dist/core/colaboracion/rele/index.d.ts +8 -0
  307. package/dist/core/colaboracion/rele/index.d.ts.map +1 -0
  308. package/dist/core/colaboracion/rele/index.js +6 -0
  309. package/dist/core/colaboracion/rele/index.js.map +1 -0
  310. package/dist/core/colaboracion/rele/rele-servidor.d.ts +69 -0
  311. package/dist/core/colaboracion/rele/rele-servidor.d.ts.map +1 -0
  312. package/dist/core/colaboracion/rele/rele-servidor.js +197 -0
  313. package/dist/core/colaboracion/rele/rele-servidor.js.map +1 -0
  314. package/dist/core/colaboracion/rele/suscriptor.d.ts +31 -0
  315. package/dist/core/colaboracion/rele/suscriptor.d.ts.map +1 -0
  316. package/dist/core/colaboracion/rele/suscriptor.js +173 -0
  317. package/dist/core/colaboracion/rele/suscriptor.js.map +1 -0
  318. package/dist/core/colaboracion/sesion-colaborativa.d.ts +61 -0
  319. package/dist/core/colaboracion/sesion-colaborativa.d.ts.map +1 -0
  320. package/dist/core/colaboracion/sesion-colaborativa.js +127 -0
  321. package/dist/core/colaboracion/sesion-colaborativa.js.map +1 -0
  322. package/dist/core/commits/agentic.d.ts +101 -0
  323. package/dist/core/commits/agentic.d.ts.map +1 -0
  324. package/dist/core/commits/agentic.js +268 -0
  325. package/dist/core/commits/agentic.js.map +1 -0
  326. package/dist/core/commits/changelog.d.ts +37 -0
  327. package/dist/core/commits/changelog.d.ts.map +1 -0
  328. package/dist/core/commits/changelog.js +155 -0
  329. package/dist/core/commits/changelog.js.map +1 -0
  330. package/dist/core/commits/diff.d.ts.map +1 -0
  331. package/dist/core/commits/diff.js.map +1 -0
  332. package/dist/core/commits/git.d.ts +43 -0
  333. package/dist/core/commits/git.d.ts.map +1 -0
  334. package/dist/core/commits/git.js +61 -0
  335. package/dist/core/commits/git.js.map +1 -0
  336. package/dist/core/commits/split.d.ts +45 -0
  337. package/dist/core/commits/split.d.ts.map +1 -0
  338. package/dist/core/commits/split.js +128 -0
  339. package/dist/core/commits/split.js.map +1 -0
  340. package/dist/core/compactacion/comandos.d.ts +53 -0
  341. package/dist/core/compactacion/comandos.d.ts.map +1 -0
  342. package/dist/core/compactacion/comandos.js +155 -0
  343. package/dist/core/compactacion/comandos.js.map +1 -0
  344. package/dist/core/compactacion/extension.d.ts +28 -0
  345. package/dist/core/compactacion/extension.d.ts.map +1 -0
  346. package/dist/core/compactacion/extension.js +159 -0
  347. package/dist/core/compactacion/extension.js.map +1 -0
  348. package/dist/core/compactacion/handoff.d.ts +61 -0
  349. package/dist/core/compactacion/handoff.d.ts.map +1 -0
  350. package/dist/core/compactacion/handoff.js +139 -0
  351. package/dist/core/compactacion/handoff.js.map +1 -0
  352. package/dist/core/compactacion/index.d.ts +15 -0
  353. package/dist/core/compactacion/index.d.ts.map +1 -0
  354. package/dist/core/compactacion/index.js +15 -0
  355. package/dist/core/compactacion/index.js.map +1 -0
  356. package/dist/core/compactacion/prune.d.ts +38 -0
  357. package/dist/core/compactacion/prune.d.ts.map +1 -0
  358. package/dist/core/compactacion/prune.js +81 -0
  359. package/dist/core/compactacion/prune.js.map +1 -0
  360. package/dist/core/compactacion/shake.d.ts +40 -0
  361. package/dist/core/compactacion/shake.d.ts.map +1 -0
  362. package/dist/core/compactacion/shake.js +106 -0
  363. package/dist/core/compactacion/shake.js.map +1 -0
  364. package/dist/core/compactacion/tipos.d.ts +54 -0
  365. package/dist/core/compactacion/tipos.d.ts.map +1 -0
  366. package/dist/core/compactacion/tipos.js +44 -0
  367. package/dist/core/compactacion/tipos.js.map +1 -0
  368. package/dist/core/compactar/index.d.ts.map +1 -1
  369. package/dist/core/compactar/index.js.map +1 -1
  370. package/dist/core/compactar/registro-denso.d.ts.map +1 -1
  371. package/dist/core/compactar/registro-denso.js.map +1 -1
  372. package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
  373. package/dist/core/compaction/branch-summarization.js.map +1 -1
  374. package/dist/core/compaction/compaction.d.ts.map +1 -1
  375. package/dist/core/compaction/compaction.js.map +1 -1
  376. package/dist/core/compaction/index.d.ts.map +1 -1
  377. package/dist/core/compaction/index.js.map +1 -1
  378. package/dist/core/compaction/utils.d.ts.map +1 -1
  379. package/dist/core/compaction/utils.js.map +1 -1
  380. package/dist/core/computer/captura.d.ts.map +1 -1
  381. package/dist/core/computer/captura.js.map +1 -1
  382. package/dist/core/computer/driver.d.ts.map +1 -1
  383. package/dist/core/computer/driver.js.map +1 -1
  384. package/dist/core/computer/motor/actions.d.ts.map +1 -1
  385. package/dist/core/computer/motor/actions.js.map +1 -1
  386. package/dist/core/computer/motor/bridge.d.ts +2 -2
  387. package/dist/core/computer/motor/bridge.d.ts.map +1 -1
  388. package/dist/core/computer/motor/bridge.js.map +1 -1
  389. package/dist/core/computer/motor/cdp.d.ts.map +1 -1
  390. package/dist/core/computer/motor/cdp.js.map +1 -1
  391. package/dist/core/computer/motor/config.d.ts.map +1 -1
  392. package/dist/core/computer/motor/config.js.map +1 -1
  393. package/dist/core/computer/motor/contract.d.ts.map +1 -1
  394. package/dist/core/computer/motor/contract.js.map +1 -1
  395. package/dist/core/computer/motor/note.d.ts.map +1 -1
  396. package/dist/core/computer/motor/note.js.map +1 -1
  397. package/dist/core/computer/motor/outline.d.ts.map +1 -1
  398. package/dist/core/computer/motor/outline.js.map +1 -1
  399. package/dist/core/computer/motor/output.d.ts.map +1 -1
  400. package/dist/core/computer/motor/output.js.map +1 -1
  401. package/dist/core/computer/motor/permissions.d.ts.map +1 -1
  402. package/dist/core/computer/motor/permissions.js.map +1 -1
  403. package/dist/core/computer/motor/platform/architecture.d.ts.map +1 -1
  404. package/dist/core/computer/motor/platform/architecture.js.map +1 -1
  405. package/dist/core/computer/motor/platform/coerce.d.ts.map +1 -1
  406. package/dist/core/computer/motor/platform/coerce.js.map +1 -1
  407. package/dist/core/computer/motor/platform/index.d.ts.map +1 -1
  408. package/dist/core/computer/motor/platform/index.js.map +1 -1
  409. package/dist/core/computer/motor/platform/linux/backend.d.ts.map +1 -1
  410. package/dist/core/computer/motor/platform/linux/backend.js.map +1 -1
  411. package/dist/core/computer/motor/platform/linux/helper.d.ts.map +1 -1
  412. package/dist/core/computer/motor/platform/linux/helper.js.map +1 -1
  413. package/dist/core/computer/motor/platform/macos/backend.d.ts.map +1 -1
  414. package/dist/core/computer/motor/platform/macos/backend.js.map +1 -1
  415. package/dist/core/computer/motor/platform/macos/browser.d.ts.map +1 -1
  416. package/dist/core/computer/motor/platform/macos/browser.js.map +1 -1
  417. package/dist/core/computer/motor/platform/macos/helper.d.ts.map +1 -1
  418. package/dist/core/computer/motor/platform/macos/helper.js.map +1 -1
  419. package/dist/core/computer/motor/platform/macos/permissions.d.ts.map +1 -1
  420. package/dist/core/computer/motor/platform/macos/permissions.js.map +1 -1
  421. package/dist/core/computer/motor/platform/types.d.ts.map +1 -1
  422. package/dist/core/computer/motor/platform/types.js.map +1 -1
  423. package/dist/core/computer/motor/platform/windows/backend.d.ts.map +1 -1
  424. package/dist/core/computer/motor/platform/windows/backend.js.map +1 -1
  425. package/dist/core/computer/motor/platform/windows/helper.d.ts.map +1 -1
  426. package/dist/core/computer/motor/platform/windows/helper.js.map +1 -1
  427. package/dist/core/computer/motor/root-selection.d.ts.map +1 -1
  428. package/dist/core/computer/motor/root-selection.js.map +1 -1
  429. package/dist/core/computer/motor/runtime.d.ts.map +1 -1
  430. package/dist/core/computer/motor/runtime.js.map +1 -1
  431. package/dist/core/computer/motor/state.d.ts.map +1 -1
  432. package/dist/core/computer/motor/state.js.map +1 -1
  433. package/dist/core/computer/motor/view.d.ts.map +1 -1
  434. package/dist/core/computer/motor/view.js.map +1 -1
  435. package/dist/core/computer/motor-ada.d.ts.map +1 -1
  436. package/dist/core/computer/motor-ada.js.map +1 -1
  437. package/dist/core/computer/politica.d.ts.map +1 -1
  438. package/dist/core/computer/politica.js.map +1 -1
  439. package/dist/core/computer/tools.d.ts.map +1 -1
  440. package/dist/core/computer/tools.js.map +1 -1
  441. package/dist/core/config/quarantine.d.ts +57 -0
  442. package/dist/core/config/quarantine.d.ts.map +1 -0
  443. package/dist/core/config/quarantine.js +161 -0
  444. package/dist/core/config/quarantine.js.map +1 -0
  445. package/dist/core/config-viva/ambito.d.ts +46 -0
  446. package/dist/core/config-viva/ambito.d.ts.map +1 -0
  447. package/dist/core/config-viva/ambito.js +62 -0
  448. package/dist/core/config-viva/ambito.js.map +1 -0
  449. package/dist/core/config-viva/cache-negativa.d.ts +50 -0
  450. package/dist/core/config-viva/cache-negativa.d.ts.map +1 -0
  451. package/dist/core/config-viva/cache-negativa.js +78 -0
  452. package/dist/core/config-viva/cache-negativa.js.map +1 -0
  453. package/dist/core/config-viva/headers-vivos.d.ts +41 -0
  454. package/dist/core/config-viva/headers-vivos.d.ts.map +1 -0
  455. package/dist/core/config-viva/headers-vivos.js +43 -0
  456. package/dist/core/config-viva/headers-vivos.js.map +1 -0
  457. package/dist/core/config-viva/index.d.ts +16 -0
  458. package/dist/core/config-viva/index.d.ts.map +1 -0
  459. package/dist/core/config-viva/index.js +16 -0
  460. package/dist/core/config-viva/index.js.map +1 -0
  461. package/dist/core/config-viva/proveedor.d.ts +48 -0
  462. package/dist/core/config-viva/proveedor.d.ts.map +1 -0
  463. package/dist/core/config-viva/proveedor.js +78 -0
  464. package/dist/core/config-viva/proveedor.js.map +1 -0
  465. package/dist/core/context-breakdown.d.ts.map +1 -1
  466. package/dist/core/context-breakdown.js.map +1 -1
  467. package/dist/core/credenciales/cliente.d.ts.map +1 -1
  468. package/dist/core/credenciales/cliente.js.map +1 -1
  469. package/dist/core/credenciales/pool.d.ts +36 -1
  470. package/dist/core/credenciales/pool.d.ts.map +1 -1
  471. package/dist/core/credenciales/pool.js +56 -7
  472. package/dist/core/credenciales/pool.js.map +1 -1
  473. package/dist/core/credenciales/ranking.d.ts +56 -0
  474. package/dist/core/credenciales/ranking.d.ts.map +1 -0
  475. package/dist/core/credenciales/ranking.js +94 -0
  476. package/dist/core/credenciales/ranking.js.map +1 -0
  477. package/dist/core/credenciales/ratelimit.d.ts +54 -0
  478. package/dist/core/credenciales/ratelimit.d.ts.map +1 -0
  479. package/dist/core/credenciales/ratelimit.js +116 -0
  480. package/dist/core/credenciales/ratelimit.js.map +1 -0
  481. package/dist/core/credenciales/reposo.d.ts.map +1 -1
  482. package/dist/core/credenciales/reposo.js.map +1 -1
  483. package/dist/core/credenciales/servidor.d.ts +8 -0
  484. package/dist/core/credenciales/servidor.d.ts.map +1 -1
  485. package/dist/core/credenciales/servidor.js +9 -1
  486. package/dist/core/credenciales/servidor.js.map +1 -1
  487. package/dist/core/defaults.d.ts.map +1 -1
  488. package/dist/core/defaults.js.map +1 -1
  489. package/dist/core/descubrimiento/comandos.d.ts.map +1 -1
  490. package/dist/core/descubrimiento/comandos.js.map +1 -1
  491. package/dist/core/descubrimiento/mcp.d.ts +12 -0
  492. package/dist/core/descubrimiento/mcp.d.ts.map +1 -1
  493. package/dist/core/descubrimiento/mcp.js +32 -0
  494. package/dist/core/descubrimiento/mcp.js.map +1 -1
  495. package/dist/core/descubrimiento/reglas.d.ts.map +1 -1
  496. package/dist/core/descubrimiento/reglas.js.map +1 -1
  497. package/dist/core/descubrimiento/runtimes/index.d.ts +24 -0
  498. package/dist/core/descubrimiento/runtimes/index.d.ts.map +1 -0
  499. package/dist/core/descubrimiento/runtimes/index.js +109 -0
  500. package/dist/core/descubrimiento/runtimes/index.js.map +1 -0
  501. package/dist/core/descubrimiento/runtimes/litellm.d.ts +12 -0
  502. package/dist/core/descubrimiento/runtimes/litellm.d.ts.map +1 -0
  503. package/dist/core/descubrimiento/runtimes/litellm.js +185 -0
  504. package/dist/core/descubrimiento/runtimes/litellm.js.map +1 -0
  505. package/dist/core/descubrimiento/runtimes/lm-studio.d.ts +13 -0
  506. package/dist/core/descubrimiento/runtimes/lm-studio.d.ts.map +1 -0
  507. package/dist/core/descubrimiento/runtimes/lm-studio.js +142 -0
  508. package/dist/core/descubrimiento/runtimes/lm-studio.js.map +1 -0
  509. package/dist/core/descubrimiento/runtimes/ollama.d.ts +8 -0
  510. package/dist/core/descubrimiento/runtimes/ollama.d.ts.map +1 -0
  511. package/dist/core/descubrimiento/runtimes/ollama.js +96 -0
  512. package/dist/core/descubrimiento/runtimes/ollama.js.map +1 -0
  513. package/dist/core/descubrimiento/runtimes/tipos.d.ts +47 -0
  514. package/dist/core/descubrimiento/runtimes/tipos.d.ts.map +1 -0
  515. package/dist/core/descubrimiento/runtimes/tipos.js +10 -0
  516. package/dist/core/descubrimiento/runtimes/tipos.js.map +1 -0
  517. package/dist/core/descubrimiento/skills.d.ts.map +1 -1
  518. package/dist/core/descubrimiento/skills.js.map +1 -1
  519. package/dist/core/diagnostics.d.ts.map +1 -1
  520. package/dist/core/diagnostics.js.map +1 -1
  521. package/dist/core/dificultad/clasificador.d.ts.map +1 -1
  522. package/dist/core/dificultad/clasificador.js.map +1 -1
  523. package/dist/core/edicion/diario.d.ts.map +1 -1
  524. package/dist/core/edicion/diario.js.map +1 -1
  525. package/dist/core/edicion/hashline.d.ts.map +1 -1
  526. package/dist/core/edicion/hashline.js.map +1 -1
  527. package/dist/core/edicion/hueco.d.ts.map +1 -1
  528. package/dist/core/edicion/hueco.js.map +1 -1
  529. package/dist/core/edicion/ipynb.d.ts +51 -0
  530. package/dist/core/edicion/ipynb.d.ts.map +1 -0
  531. package/dist/core/edicion/ipynb.js +110 -0
  532. package/dist/core/edicion/ipynb.js.map +1 -0
  533. package/dist/core/edicion/limpiar-carga.d.ts.map +1 -1
  534. package/dist/core/edicion/limpiar-carga.js.map +1 -1
  535. package/dist/core/edicion/observador.d.ts.map +1 -1
  536. package/dist/core/edicion/observador.js.map +1 -1
  537. package/dist/core/edicion/parecido.d.ts.map +1 -1
  538. package/dist/core/edicion/parecido.js.map +1 -1
  539. package/dist/core/edicion/parseo.d.ts.map +1 -1
  540. package/dist/core/edicion/parseo.js.map +1 -1
  541. package/dist/core/edicion/portapapeles.d.ts +28 -0
  542. package/dist/core/edicion/portapapeles.d.ts.map +1 -0
  543. package/dist/core/edicion/portapapeles.js +49 -0
  544. package/dist/core/edicion/portapapeles.js.map +1 -0
  545. package/dist/core/edicion/reparacion.d.ts.map +1 -1
  546. package/dist/core/edicion/reparacion.js.map +1 -1
  547. package/dist/core/edicion/rutas-difusas.d.ts +44 -0
  548. package/dist/core/edicion/rutas-difusas.d.ts.map +1 -0
  549. package/dist/core/edicion/rutas-difusas.js +93 -0
  550. package/dist/core/edicion/rutas-difusas.js.map +1 -0
  551. package/dist/core/edicion/sangria.d.ts.map +1 -1
  552. package/dist/core/edicion/sangria.js.map +1 -1
  553. package/dist/core/edicion/tipos.d.ts.map +1 -1
  554. package/dist/core/edicion/tipos.js.map +1 -1
  555. package/dist/core/engine-personality.d.ts.map +1 -1
  556. package/dist/core/engine-personality.js.map +1 -1
  557. package/dist/core/errores/proveedor.d.ts.map +1 -1
  558. package/dist/core/errores/proveedor.js.map +1 -1
  559. package/dist/core/estructural/buscar.d.ts.map +1 -1
  560. package/dist/core/estructural/buscar.js.map +1 -1
  561. package/dist/core/estructural/editar.d.ts.map +1 -1
  562. package/dist/core/estructural/editar.js.map +1 -1
  563. package/dist/core/estructural/tools.d.ts.map +1 -1
  564. package/dist/core/estructural/tools.js.map +1 -1
  565. package/dist/core/event-bus.d.ts.map +1 -1
  566. package/dist/core/event-bus.js.map +1 -1
  567. package/dist/core/exec.d.ts.map +1 -1
  568. package/dist/core/exec.js.map +1 -1
  569. package/dist/core/experimental.d.ts.map +1 -1
  570. package/dist/core/experimental.js.map +1 -1
  571. package/dist/core/export-html/ansi-to-html.d.ts.map +1 -1
  572. package/dist/core/export-html/ansi-to-html.js.map +1 -1
  573. package/dist/core/export-html/index.d.ts.map +1 -1
  574. package/dist/core/export-html/index.js +183 -13
  575. package/dist/core/export-html/index.js.map +1 -1
  576. package/dist/core/export-html/tool-renderer.d.ts.map +1 -1
  577. package/dist/core/export-html/tool-renderer.js.map +1 -1
  578. package/dist/core/extensiones/suplantacion.d.ts.map +1 -1
  579. package/dist/core/extensiones/suplantacion.js.map +1 -1
  580. package/dist/core/extensiones/vigilancia.d.ts.map +1 -1
  581. package/dist/core/extensiones/vigilancia.js.map +1 -1
  582. package/dist/core/extensions/index.d.ts.map +1 -1
  583. package/dist/core/extensions/index.js.map +1 -1
  584. package/dist/core/extensions/loader.d.ts.map +1 -1
  585. package/dist/core/extensions/loader.js.map +1 -1
  586. package/dist/core/extensions/runner.d.ts.map +1 -1
  587. package/dist/core/extensions/runner.js.map +1 -1
  588. package/dist/core/extensions/types.d.ts.map +1 -1
  589. package/dist/core/extensions/types.js.map +1 -1
  590. package/dist/core/extensions/wrapper.d.ts.map +1 -1
  591. package/dist/core/extensions/wrapper.js.map +1 -1
  592. package/dist/core/footer-data-provider.d.ts.map +1 -1
  593. package/dist/core/footer-data-provider.js.map +1 -1
  594. package/dist/core/gc/archivo-frio.d.ts +33 -0
  595. package/dist/core/gc/archivo-frio.d.ts.map +1 -0
  596. package/dist/core/gc/archivo-frio.js +152 -0
  597. package/dist/core/gc/archivo-frio.js.map +1 -0
  598. package/dist/core/gc/blobs-gc.d.ts +25 -0
  599. package/dist/core/gc/blobs-gc.d.ts.map +1 -0
  600. package/dist/core/gc/blobs-gc.js +143 -0
  601. package/dist/core/gc/blobs-gc.js.map +1 -0
  602. package/dist/core/gc/index.d.ts +42 -0
  603. package/dist/core/gc/index.d.ts.map +1 -0
  604. package/dist/core/gc/index.js +50 -0
  605. package/dist/core/gc/index.js.map +1 -0
  606. package/dist/core/gc/lock.d.ts +19 -0
  607. package/dist/core/gc/lock.d.ts.map +1 -0
  608. package/dist/core/gc/lock.js +48 -0
  609. package/dist/core/gc/lock.js.map +1 -0
  610. package/dist/core/gc/reconciliacion.d.ts +19 -0
  611. package/dist/core/gc/reconciliacion.d.ts.map +1 -0
  612. package/dist/core/gc/reconciliacion.js +102 -0
  613. package/dist/core/gc/reconciliacion.js.map +1 -0
  614. package/dist/core/gc/wal.d.ts +15 -0
  615. package/dist/core/gc/wal.d.ts.map +1 -0
  616. package/dist/core/gc/wal.js +44 -0
  617. package/dist/core/gc/wal.js.map +1 -0
  618. package/dist/core/harness/fuentes-de-contexto.d.ts.map +1 -1
  619. package/dist/core/harness/fuentes-de-contexto.js.map +1 -1
  620. package/dist/core/harness/refine.d.ts.map +1 -1
  621. package/dist/core/harness/refine.js.map +1 -1
  622. package/dist/core/harness/store.d.ts.map +1 -1
  623. package/dist/core/harness/store.js.map +1 -1
  624. package/dist/core/higiene/index.d.ts +8 -0
  625. package/dist/core/higiene/index.d.ts.map +1 -0
  626. package/dist/core/higiene/index.js +8 -0
  627. package/dist/core/higiene/index.js.map +1 -0
  628. package/dist/core/higiene/managed-timers.d.ts +19 -0
  629. package/dist/core/higiene/managed-timers.d.ts.map +1 -0
  630. package/dist/core/higiene/managed-timers.js +68 -0
  631. package/dist/core/higiene/managed-timers.js.map +1 -0
  632. package/dist/core/higiene/race-handler.d.ts +7 -0
  633. package/dist/core/higiene/race-handler.d.ts.map +1 -0
  634. package/dist/core/higiene/race-handler.js +32 -0
  635. package/dist/core/higiene/race-handler.js.map +1 -0
  636. package/dist/core/higiene/withHostGuard.d.ts +27 -0
  637. package/dist/core/higiene/withHostGuard.d.ts.map +1 -0
  638. package/dist/core/higiene/withHostGuard.js +79 -0
  639. package/dist/core/higiene/withHostGuard.js.map +1 -0
  640. package/dist/core/hooks/contract.d.ts.map +1 -1
  641. package/dist/core/hooks/contract.js.map +1 -1
  642. package/dist/core/hooks/runner.d.ts.map +1 -1
  643. package/dist/core/hooks/runner.js.map +1 -1
  644. package/dist/core/hooks/session-hooks.d.ts.map +1 -1
  645. package/dist/core/hooks/session-hooks.js.map +1 -1
  646. package/dist/core/hooks-ts/cargador.d.ts +29 -0
  647. package/dist/core/hooks-ts/cargador.d.ts.map +1 -0
  648. package/dist/core/hooks-ts/cargador.js +51 -0
  649. package/dist/core/hooks-ts/cargador.js.map +1 -0
  650. package/dist/core/hooks-ts/index.d.ts +25 -0
  651. package/dist/core/hooks-ts/index.d.ts.map +1 -0
  652. package/dist/core/hooks-ts/index.js +25 -0
  653. package/dist/core/hooks-ts/index.js.map +1 -0
  654. package/dist/core/hooks-ts/runner.d.ts +40 -0
  655. package/dist/core/hooks-ts/runner.d.ts.map +1 -0
  656. package/dist/core/hooks-ts/runner.js +95 -0
  657. package/dist/core/hooks-ts/runner.js.map +1 -0
  658. package/dist/core/hooks-ts/tipos.d.ts +69 -0
  659. package/dist/core/hooks-ts/tipos.d.ts.map +1 -0
  660. package/dist/core/hooks-ts/tipos.js +90 -0
  661. package/dist/core/hooks-ts/tipos.js.map +1 -0
  662. package/dist/core/http-dispatcher.d.ts.map +1 -1
  663. package/dist/core/http-dispatcher.js.map +1 -1
  664. package/dist/core/importar/formatos.d.ts.map +1 -1
  665. package/dist/core/importar/formatos.js.map +1 -1
  666. package/dist/core/index.d.ts.map +1 -1
  667. package/dist/core/index.js.map +1 -1
  668. package/dist/core/interactivo/deteccion.d.ts.map +1 -1
  669. package/dist/core/interactivo/deteccion.js.map +1 -1
  670. package/dist/core/interactivo/sesion.d.ts.map +1 -1
  671. package/dist/core/interactivo/sesion.js.map +1 -1
  672. package/dist/core/interactivo/tools.d.ts.map +1 -1
  673. package/dist/core/interactivo/tools.js.map +1 -1
  674. package/dist/core/keybindings.d.ts +170 -170
  675. package/dist/core/keybindings.d.ts.map +1 -1
  676. package/dist/core/keybindings.js.map +1 -1
  677. package/dist/core/lectura/mapa.d.ts.map +1 -1
  678. package/dist/core/lectura/mapa.js.map +1 -1
  679. package/dist/core/lectura/pdf.d.ts.map +1 -1
  680. package/dist/core/lectura/pdf.js.map +1 -1
  681. package/dist/core/lectura/sniffer.d.ts +54 -0
  682. package/dist/core/lectura/sniffer.d.ts.map +1 -0
  683. package/dist/core/lectura/sniffer.js +106 -0
  684. package/dist/core/lectura/sniffer.js.map +1 -0
  685. package/dist/core/limpieza/comprobadores.d.ts +16 -2
  686. package/dist/core/limpieza/comprobadores.d.ts.map +1 -1
  687. package/dist/core/limpieza/comprobadores.js +200 -6
  688. package/dist/core/limpieza/comprobadores.js.map +1 -1
  689. package/dist/core/limpieza/flujo.d.ts +36 -0
  690. package/dist/core/limpieza/flujo.d.ts.map +1 -0
  691. package/dist/core/limpieza/flujo.js +89 -0
  692. package/dist/core/limpieza/flujo.js.map +1 -0
  693. package/dist/core/limpieza/parseo.d.ts.map +1 -1
  694. package/dist/core/limpieza/parseo.js.map +1 -1
  695. package/dist/core/limpieza/peso.d.ts +17 -0
  696. package/dist/core/limpieza/peso.d.ts.map +1 -0
  697. package/dist/core/limpieza/peso.js +52 -0
  698. package/dist/core/limpieza/peso.js.map +1 -0
  699. package/dist/core/limpieza/pool.d.ts +44 -0
  700. package/dist/core/limpieza/pool.d.ts.map +1 -0
  701. package/dist/core/limpieza/pool.js +123 -0
  702. package/dist/core/limpieza/pool.js.map +1 -0
  703. package/dist/core/limpieza/reparacion.d.ts +19 -2
  704. package/dist/core/limpieza/reparacion.d.ts.map +1 -1
  705. package/dist/core/limpieza/reparacion.js +95 -8
  706. package/dist/core/limpieza/reparacion.js.map +1 -1
  707. package/dist/core/limpieza/tablero.d.ts +47 -0
  708. package/dist/core/limpieza/tablero.d.ts.map +1 -0
  709. package/dist/core/limpieza/tablero.js +78 -0
  710. package/dist/core/limpieza/tablero.js.map +1 -0
  711. package/dist/core/limpieza/tipos.d.ts +25 -0
  712. package/dist/core/limpieza/tipos.d.ts.map +1 -1
  713. package/dist/core/limpieza/tipos.js.map +1 -1
  714. package/dist/core/lsp/cliente.d.ts +7 -0
  715. package/dist/core/lsp/cliente.d.ts.map +1 -1
  716. package/dist/core/lsp/cliente.js +4 -2
  717. package/dist/core/lsp/cliente.js.map +1 -1
  718. package/dist/core/lsp/descubrimiento.d.ts.map +1 -1
  719. package/dist/core/lsp/descubrimiento.js.map +1 -1
  720. package/dist/core/lsp/ediciones.d.ts.map +1 -1
  721. package/dist/core/lsp/ediciones.js.map +1 -1
  722. package/dist/core/lsp/extension.d.ts +9 -0
  723. package/dist/core/lsp/extension.d.ts.map +1 -1
  724. package/dist/core/lsp/extension.js +60 -4
  725. package/dist/core/lsp/extension.js.map +1 -1
  726. package/dist/core/lsp/formato.d.ts +72 -0
  727. package/dist/core/lsp/formato.d.ts.map +1 -0
  728. package/dist/core/lsp/formato.js +117 -0
  729. package/dist/core/lsp/formato.js.map +1 -0
  730. package/dist/core/lsp/tools.d.ts +3 -3
  731. package/dist/core/lsp/tools.d.ts.map +1 -1
  732. package/dist/core/lsp/tools.js.map +1 -1
  733. package/dist/core/lsp/writethrough.d.ts +165 -0
  734. package/dist/core/lsp/writethrough.d.ts.map +1 -0
  735. package/dist/core/lsp/writethrough.js +282 -0
  736. package/dist/core/lsp/writethrough.js.map +1 -0
  737. package/dist/core/marketplace/catalogo.d.ts +32 -0
  738. package/dist/core/marketplace/catalogo.d.ts.map +1 -0
  739. package/dist/core/marketplace/catalogo.js +122 -0
  740. package/dist/core/marketplace/catalogo.js.map +1 -0
  741. package/dist/core/marketplace/doctor.d.ts +47 -0
  742. package/dist/core/marketplace/doctor.d.ts.map +1 -0
  743. package/dist/core/marketplace/doctor.js +155 -0
  744. package/dist/core/marketplace/doctor.js.map +1 -0
  745. package/dist/core/marketplace/features.d.ts +22 -0
  746. package/dist/core/marketplace/features.d.ts.map +1 -0
  747. package/dist/core/marketplace/features.js +70 -0
  748. package/dist/core/marketplace/features.js.map +1 -0
  749. package/dist/core/marketplace/index.d.ts +33 -0
  750. package/dist/core/marketplace/index.d.ts.map +1 -0
  751. package/dist/core/marketplace/index.js +33 -0
  752. package/dist/core/marketplace/index.js.map +1 -0
  753. package/dist/core/marketplace/instalar.d.ts +27 -0
  754. package/dist/core/marketplace/instalar.d.ts.map +1 -0
  755. package/dist/core/marketplace/instalar.js +50 -0
  756. package/dist/core/marketplace/instalar.js.map +1 -0
  757. package/dist/core/mcp/client.d.ts.map +1 -1
  758. package/dist/core/mcp/client.js.map +1 -1
  759. package/dist/core/mcp/manager.d.ts.map +1 -1
  760. package/dist/core/mcp/manager.js.map +1 -1
  761. package/dist/core/mcp/oauth.d.ts +138 -0
  762. package/dist/core/mcp/oauth.d.ts.map +1 -0
  763. package/dist/core/mcp/oauth.js +348 -0
  764. package/dist/core/mcp/oauth.js.map +1 -0
  765. package/dist/core/mcp/tools.d.ts.map +1 -1
  766. package/dist/core/mcp/tools.js.map +1 -1
  767. package/dist/core/memoria/almacen.d.ts +56 -0
  768. package/dist/core/memoria/almacen.d.ts.map +1 -0
  769. package/dist/core/memoria/almacen.js +214 -0
  770. package/dist/core/memoria/almacen.js.map +1 -0
  771. package/dist/core/memoria/dr/respaldo.d.ts +34 -0
  772. package/dist/core/memoria/dr/respaldo.d.ts.map +1 -0
  773. package/dist/core/memoria/dr/respaldo.js +133 -0
  774. package/dist/core/memoria/dr/respaldo.js.map +1 -0
  775. package/dist/core/memoria/embeddings.d.ts +21 -0
  776. package/dist/core/memoria/embeddings.d.ts.map +1 -0
  777. package/dist/core/memoria/embeddings.js +87 -0
  778. package/dist/core/memoria/embeddings.js.map +1 -0
  779. package/dist/core/memoria/grafo.d.ts +56 -0
  780. package/dist/core/memoria/grafo.d.ts.map +1 -0
  781. package/dist/core/memoria/grafo.js +143 -0
  782. package/dist/core/memoria/grafo.js.map +1 -0
  783. package/dist/core/memoria/redaccion.d.ts +32 -0
  784. package/dist/core/memoria/redaccion.d.ts.map +1 -0
  785. package/dist/core/memoria/redaccion.js +76 -0
  786. package/dist/core/memoria/redaccion.js.map +1 -0
  787. package/dist/core/memoria/servidor/almacen-json.d.ts +26 -0
  788. package/dist/core/memoria/servidor/almacen-json.d.ts.map +1 -0
  789. package/dist/core/memoria/servidor/almacen-json.js +90 -0
  790. package/dist/core/memoria/servidor/almacen-json.js.map +1 -0
  791. package/dist/core/memoria/servidor/servidor.d.ts +43 -0
  792. package/dist/core/memoria/servidor/servidor.d.ts.map +1 -0
  793. package/dist/core/memoria/servidor/servidor.js +195 -0
  794. package/dist/core/memoria/servidor/servidor.js.map +1 -0
  795. package/dist/core/memoria/servidor/tipos.d.ts +44 -0
  796. package/dist/core/memoria/servidor/tipos.d.ts.map +1 -0
  797. package/dist/core/memoria/servidor/tipos.js +12 -0
  798. package/dist/core/memoria/servidor/tipos.js.map +1 -0
  799. package/dist/core/memoria/tipos.d.ts +63 -0
  800. package/dist/core/memoria/tipos.d.ts.map +1 -0
  801. package/dist/core/memoria/tipos.js +14 -0
  802. package/dist/core/memoria/tipos.js.map +1 -0
  803. package/dist/core/memory-engine/audit-export.d.ts.map +1 -1
  804. package/dist/core/memory-engine/audit-export.js.map +1 -1
  805. package/dist/core/memory-engine/audit-indice.d.ts.map +1 -1
  806. package/dist/core/memory-engine/audit-indice.js.map +1 -1
  807. package/dist/core/memory-engine/audit.d.ts.map +1 -1
  808. package/dist/core/memory-engine/audit.js.map +1 -1
  809. package/dist/core/memory-engine/engine.d.ts +7 -0
  810. package/dist/core/memory-engine/engine.d.ts.map +1 -1
  811. package/dist/core/memory-engine/engine.js.map +1 -1
  812. package/dist/core/memory-engine/inverted-index.d.ts.map +1 -1
  813. package/dist/core/memory-engine/inverted-index.js.map +1 -1
  814. package/dist/core/memory-engine/keychain.d.ts.map +1 -1
  815. package/dist/core/memory-engine/keychain.js.map +1 -1
  816. package/dist/core/memory-engine/observation-store.d.ts +1 -0
  817. package/dist/core/memory-engine/observation-store.d.ts.map +1 -1
  818. package/dist/core/memory-engine/observation-store.js.map +1 -1
  819. package/dist/core/memory-engine/refinements.d.ts.map +1 -1
  820. package/dist/core/memory-engine/refinements.js.map +1 -1
  821. package/dist/core/memory-engine/scanner.d.ts.map +1 -1
  822. package/dist/core/memory-engine/scanner.js.map +1 -1
  823. package/dist/core/memory-engine/security.d.ts.map +1 -1
  824. package/dist/core/memory-engine/security.js.map +1 -1
  825. package/dist/core/memory-engine/session-indexer.d.ts.map +1 -1
  826. package/dist/core/memory-engine/session-indexer.js.map +1 -1
  827. package/dist/core/memory-engine/tools.d.ts.map +1 -1
  828. package/dist/core/memory-engine/tools.js.map +1 -1
  829. package/dist/core/memory-engine/types.d.ts.map +1 -1
  830. package/dist/core/memory-engine/types.js.map +1 -1
  831. package/dist/core/memory-engine/vault.d.ts.map +1 -1
  832. package/dist/core/memory-engine/vault.js.map +1 -1
  833. package/dist/core/messages.d.ts.map +1 -1
  834. package/dist/core/messages.js.map +1 -1
  835. package/dist/core/metaharness/cli.d.ts +19 -0
  836. package/dist/core/metaharness/cli.d.ts.map +1 -0
  837. package/dist/core/metaharness/cli.js +171 -0
  838. package/dist/core/metaharness/cli.js.map +1 -0
  839. package/dist/core/metaharness/comparar.d.ts +21 -0
  840. package/dist/core/metaharness/comparar.d.ts.map +1 -0
  841. package/dist/core/metaharness/comparar.js +64 -0
  842. package/dist/core/metaharness/comparar.js.map +1 -0
  843. package/dist/core/metaharness/ejecutar.d.ts +70 -0
  844. package/dist/core/metaharness/ejecutar.d.ts.map +1 -0
  845. package/dist/core/metaharness/ejecutar.js +249 -0
  846. package/dist/core/metaharness/ejecutar.js.map +1 -0
  847. package/dist/core/metaharness/tipos.d.ts +142 -0
  848. package/dist/core/metaharness/tipos.d.ts.map +1 -0
  849. package/dist/core/metaharness/tipos.js +17 -0
  850. package/dist/core/metaharness/tipos.js.map +1 -0
  851. package/dist/core/model-config.d.ts +8 -8
  852. package/dist/core/model-config.d.ts.map +1 -1
  853. package/dist/core/model-config.js.map +1 -1
  854. package/dist/core/model-registry.d.ts.map +1 -1
  855. package/dist/core/model-registry.js.map +1 -1
  856. package/dist/core/model-resolver.d.ts.map +1 -1
  857. package/dist/core/model-resolver.js.map +1 -1
  858. package/dist/core/model-runtime.d.ts.map +1 -1
  859. package/dist/core/model-runtime.js.map +1 -1
  860. package/dist/core/models-store.d.ts.map +1 -1
  861. package/dist/core/models-store.js.map +1 -1
  862. package/dist/core/muestreo-restringido.d.ts.map +1 -1
  863. package/dist/core/muestreo-restringido.js.map +1 -1
  864. package/dist/core/orphan-process-journal.d.ts.map +1 -1
  865. package/dist/core/orphan-process-journal.js.map +1 -1
  866. package/dist/core/output-guard.d.ts.map +1 -1
  867. package/dist/core/output-guard.js.map +1 -1
  868. package/dist/core/package-manager.d.ts.map +1 -1
  869. package/dist/core/package-manager.js.map +1 -1
  870. package/dist/core/parche/aplicar.d.ts +19 -0
  871. package/dist/core/parche/aplicar.d.ts.map +1 -0
  872. package/dist/core/parche/aplicar.js +243 -0
  873. package/dist/core/parche/aplicar.js.map +1 -0
  874. package/dist/core/parche/parser.d.ts +38 -0
  875. package/dist/core/parche/parser.d.ts.map +1 -0
  876. package/dist/core/parche/parser.js +217 -0
  877. package/dist/core/parche/parser.js.map +1 -0
  878. package/dist/core/parche/registro.d.ts +12 -0
  879. package/dist/core/parche/registro.d.ts.map +1 -0
  880. package/dist/core/parche/registro.js +58 -0
  881. package/dist/core/parche/registro.js.map +1 -0
  882. package/dist/core/perfiles/index.d.ts +22 -0
  883. package/dist/core/perfiles/index.d.ts.map +1 -0
  884. package/dist/core/perfiles/index.js +21 -0
  885. package/dist/core/perfiles/index.js.map +1 -0
  886. package/dist/core/perfiles/resolver.d.ts +51 -0
  887. package/dist/core/perfiles/resolver.d.ts.map +1 -0
  888. package/dist/core/perfiles/resolver.js +329 -0
  889. package/dist/core/perfiles/resolver.js.map +1 -0
  890. package/dist/core/perfiles/tipos.d.ts +69 -0
  891. package/dist/core/perfiles/tipos.d.ts.map +1 -0
  892. package/dist/core/perfiles/tipos.js +98 -0
  893. package/dist/core/perfiles/tipos.js.map +1 -0
  894. package/dist/core/pi-manifest.d.ts.map +1 -1
  895. package/dist/core/pi-manifest.js.map +1 -1
  896. package/dist/core/privacidad/categorias-especiales.d.ts.map +1 -1
  897. package/dist/core/privacidad/categorias-especiales.js +4 -0
  898. package/dist/core/privacidad/categorias-especiales.js.map +1 -1
  899. package/dist/core/privacidad/tapar.d.ts.map +1 -1
  900. package/dist/core/privacidad/tapar.js.map +1 -1
  901. package/dist/core/project-memory.d.ts.map +1 -1
  902. package/dist/core/project-memory.js.map +1 -1
  903. package/dist/core/project-trust.d.ts.map +1 -1
  904. package/dist/core/project-trust.js.map +1 -1
  905. package/dist/core/prompt-cache/diagnostics.d.ts.map +1 -1
  906. package/dist/core/prompt-cache/diagnostics.js.map +1 -1
  907. package/dist/core/prompt-cache/index.d.ts.map +1 -1
  908. package/dist/core/prompt-cache/index.js.map +1 -1
  909. package/dist/core/prompt-cache/payload.d.ts.map +1 -1
  910. package/dist/core/prompt-cache/payload.js.map +1 -1
  911. package/dist/core/prompt-cache/stabilize.d.ts.map +1 -1
  912. package/dist/core/prompt-cache/stabilize.js.map +1 -1
  913. package/dist/core/prompt-cache/stats.d.ts.map +1 -1
  914. package/dist/core/prompt-cache/stats.js.map +1 -1
  915. package/dist/core/prompt-eleccion.d.ts.map +1 -1
  916. package/dist/core/prompt-eleccion.js.map +1 -1
  917. package/dist/core/prompt-optimizer.d.ts.map +1 -1
  918. package/dist/core/prompt-optimizer.js.map +1 -1
  919. package/dist/core/prompt-templates.d.ts.map +1 -1
  920. package/dist/core/prompt-templates.js.map +1 -1
  921. package/dist/core/prompts/montar.d.ts.map +1 -1
  922. package/dist/core/prompts/montar.js.map +1 -1
  923. package/dist/core/prompts/plantilla.d.ts.map +1 -1
  924. package/dist/core/prompts/plantilla.js.map +1 -1
  925. package/dist/core/proveedores-registry/definiciones.d.ts +15 -0
  926. package/dist/core/proveedores-registry/definiciones.d.ts.map +1 -0
  927. package/dist/core/proveedores-registry/definiciones.js +22 -0
  928. package/dist/core/proveedores-registry/definiciones.js.map +1 -0
  929. package/dist/core/proveedores-registry/index.d.ts +14 -0
  930. package/dist/core/proveedores-registry/index.d.ts.map +1 -0
  931. package/dist/core/proveedores-registry/index.js +13 -0
  932. package/dist/core/proveedores-registry/index.js.map +1 -0
  933. package/dist/core/proveedores-registry/resolver.d.ts +25 -0
  934. package/dist/core/proveedores-registry/resolver.d.ts.map +1 -0
  935. package/dist/core/proveedores-registry/resolver.js +69 -0
  936. package/dist/core/proveedores-registry/resolver.js.map +1 -0
  937. package/dist/core/proveedores-registry/tipos.d.ts +47 -0
  938. package/dist/core/proveedores-registry/tipos.d.ts.map +1 -0
  939. package/dist/core/proveedores-registry/tipos.js +15 -0
  940. package/dist/core/proveedores-registry/tipos.js.map +1 -0
  941. package/dist/core/provider-attribution.d.ts.map +1 -1
  942. package/dist/core/provider-attribution.js.map +1 -1
  943. package/dist/core/provider-composer.d.ts.map +1 -1
  944. package/dist/core/provider-composer.js.map +1 -1
  945. package/dist/core/radius.d.ts.map +1 -1
  946. package/dist/core/radius.js.map +1 -1
  947. package/dist/core/remote-catalog-provider.d.ts.map +1 -1
  948. package/dist/core/remote-catalog-provider.js.map +1 -1
  949. package/dist/core/remoto/destino.d.ts.map +1 -1
  950. package/dist/core/remoto/destino.js.map +1 -1
  951. package/dist/core/remoto/ejecutor.d.ts.map +1 -1
  952. package/dist/core/remoto/ejecutor.js.map +1 -1
  953. package/dist/core/remoto/ficheros.d.ts.map +1 -1
  954. package/dist/core/remoto/ficheros.js.map +1 -1
  955. package/dist/core/remoto/registro-extension.d.ts.map +1 -1
  956. package/dist/core/remoto/registro-extension.js.map +1 -1
  957. package/dist/core/remoto/tools.d.ts.map +1 -1
  958. package/dist/core/remoto/tools.js.map +1 -1
  959. package/dist/core/reparacion/index.d.ts +2 -0
  960. package/dist/core/reparacion/index.d.ts.map +1 -0
  961. package/dist/core/reparacion/index.js +2 -0
  962. package/dist/core/reparacion/index.js.map +1 -0
  963. package/dist/core/reparacion/reparar-hunk.d.ts +27 -0
  964. package/dist/core/reparacion/reparar-hunk.d.ts.map +1 -0
  965. package/dist/core/reparacion/reparar-hunk.js +139 -0
  966. package/dist/core/reparacion/reparar-hunk.js.map +1 -0
  967. package/dist/core/resolve-config-value.d.ts.map +1 -1
  968. package/dist/core/resolve-config-value.js.map +1 -1
  969. package/dist/core/resource-loader.d.ts +13 -0
  970. package/dist/core/resource-loader.d.ts.map +1 -1
  971. package/dist/core/resource-loader.js +7 -4
  972. package/dist/core/resource-loader.js.map +1 -1
  973. package/dist/core/revision/dispositions.d.ts +86 -0
  974. package/dist/core/revision/dispositions.d.ts.map +1 -0
  975. package/dist/core/revision/dispositions.js +137 -0
  976. package/dist/core/revision/dispositions.js.map +1 -0
  977. package/dist/core/revision/hallazgo.d.ts.map +1 -1
  978. package/dist/core/revision/hallazgo.js.map +1 -1
  979. package/dist/core/revision/procedencia.d.ts +63 -0
  980. package/dist/core/revision/procedencia.d.ts.map +1 -0
  981. package/dist/core/revision/procedencia.js +72 -0
  982. package/dist/core/revision/procedencia.js.map +1 -0
  983. package/dist/core/revision/publicar.d.ts +26 -0
  984. package/dist/core/revision/publicar.d.ts.map +1 -0
  985. package/dist/core/revision/publicar.js +34 -0
  986. package/dist/core/revision/publicar.js.map +1 -0
  987. package/dist/core/revision/revisor.d.ts.map +1 -1
  988. package/dist/core/revision/revisor.js.map +1 -1
  989. package/dist/core/revision/sarif.d.ts.map +1 -1
  990. package/dist/core/revision/sarif.js.map +1 -1
  991. package/dist/core/router-uris/index.d.ts +12 -0
  992. package/dist/core/router-uris/index.d.ts.map +1 -0
  993. package/dist/core/router-uris/index.js +12 -0
  994. package/dist/core/router-uris/index.js.map +1 -0
  995. package/dist/core/router-uris/router.d.ts +2 -0
  996. package/dist/core/router-uris/router.d.ts.map +1 -0
  997. package/dist/core/router-uris/router.js +2 -0
  998. package/dist/core/router-uris/router.js.map +1 -0
  999. package/dist/core/runtime-credentials.d.ts.map +1 -1
  1000. package/dist/core/runtime-credentials.js.map +1 -1
  1001. package/dist/core/rutas/envoltorio.d.ts +20 -0
  1002. package/dist/core/rutas/envoltorio.d.ts.map +1 -0
  1003. package/dist/core/rutas/envoltorio.js +48 -0
  1004. package/dist/core/rutas/envoltorio.js.map +1 -0
  1005. package/dist/core/rutas/index.d.ts +11 -0
  1006. package/dist/core/rutas/index.d.ts.map +1 -0
  1007. package/dist/core/rutas/index.js +11 -0
  1008. package/dist/core/rutas/index.js.map +1 -0
  1009. package/dist/core/rutas/router.d.ts +82 -0
  1010. package/dist/core/rutas/router.d.ts.map +1 -0
  1011. package/dist/core/rutas/router.js +161 -0
  1012. package/dist/core/rutas/router.js.map +1 -0
  1013. package/dist/core/scheduler/scheduler.d.ts.map +1 -1
  1014. package/dist/core/scheduler/scheduler.js.map +1 -1
  1015. package/dist/core/sdk.d.ts.map +1 -1
  1016. package/dist/core/sdk.js.map +1 -1
  1017. package/dist/core/secretos/extension.d.ts +31 -0
  1018. package/dist/core/secretos/extension.d.ts.map +1 -0
  1019. package/dist/core/secretos/extension.js +64 -0
  1020. package/dist/core/secretos/extension.js.map +1 -0
  1021. package/dist/core/secretos/index.d.ts +75 -0
  1022. package/dist/core/secretos/index.d.ts.map +1 -0
  1023. package/dist/core/secretos/index.js +385 -0
  1024. package/dist/core/secretos/index.js.map +1 -0
  1025. package/dist/core/secretos/message-transform.d.ts +44 -0
  1026. package/dist/core/secretos/message-transform.d.ts.map +1 -0
  1027. package/dist/core/secretos/message-transform.js +246 -0
  1028. package/dist/core/secretos/message-transform.js.map +1 -0
  1029. package/dist/core/secretos/obfuscator.d.ts +30 -0
  1030. package/dist/core/secretos/obfuscator.d.ts.map +1 -0
  1031. package/dist/core/secretos/obfuscator.js +1182 -0
  1032. package/dist/core/secretos/obfuscator.js.map +1 -0
  1033. package/dist/core/secretos/placeholder-scan.d.ts +96 -0
  1034. package/dist/core/secretos/placeholder-scan.d.ts.map +1 -0
  1035. package/dist/core/secretos/placeholder-scan.js +433 -0
  1036. package/dist/core/secretos/placeholder-scan.js.map +1 -0
  1037. package/dist/core/secretos/placeholder.d.ts +95 -0
  1038. package/dist/core/secretos/placeholder.d.ts.map +1 -0
  1039. package/dist/core/secretos/placeholder.js +283 -0
  1040. package/dist/core/secretos/placeholder.js.map +1 -0
  1041. package/dist/core/secretos/regex.d.ts +3 -0
  1042. package/dist/core/secretos/regex.d.ts.map +1 -0
  1043. package/dist/core/secretos/regex.js +19 -0
  1044. package/dist/core/secretos/regex.js.map +1 -0
  1045. package/dist/core/secretos/replacement.d.ts +83 -0
  1046. package/dist/core/secretos/replacement.d.ts.map +1 -0
  1047. package/dist/core/secretos/replacement.js +211 -0
  1048. package/dist/core/secretos/replacement.js.map +1 -0
  1049. package/dist/core/sesion/cerrar-llamadas-abiertas.d.ts.map +1 -1
  1050. package/dist/core/sesion/cerrar-llamadas-abiertas.js.map +1 -1
  1051. package/dist/core/sesion/journal-tree.d.ts +73 -0
  1052. package/dist/core/sesion/journal-tree.d.ts.map +1 -0
  1053. package/dist/core/sesion/journal-tree.js +241 -0
  1054. package/dist/core/sesion/journal-tree.js.map +1 -0
  1055. package/dist/core/sesion/turn-recovery.d.ts +48 -0
  1056. package/dist/core/sesion/turn-recovery.d.ts.map +1 -0
  1057. package/dist/core/sesion/turn-recovery.js +182 -0
  1058. package/dist/core/sesion/turn-recovery.js.map +1 -0
  1059. package/dist/core/session-cwd.d.ts.map +1 -1
  1060. package/dist/core/session-cwd.js.map +1 -1
  1061. package/dist/core/session-manager.d.ts.map +1 -1
  1062. package/dist/core/session-manager.js.map +1 -1
  1063. package/dist/core/settings-diagnostics.d.ts.map +1 -1
  1064. package/dist/core/settings-diagnostics.js.map +1 -1
  1065. package/dist/core/settings-manager.d.ts +2 -2
  1066. package/dist/core/settings-manager.d.ts.map +1 -1
  1067. package/dist/core/settings-manager.js.map +1 -1
  1068. package/dist/core/share/cifrado.d.ts +39 -0
  1069. package/dist/core/share/cifrado.d.ts.map +1 -0
  1070. package/dist/core/share/cifrado.js +81 -0
  1071. package/dist/core/share/cifrado.js.map +1 -0
  1072. package/dist/core/share/exportar.d.ts +69 -0
  1073. package/dist/core/share/exportar.d.ts.map +1 -0
  1074. package/dist/core/share/exportar.js +247 -0
  1075. package/dist/core/share/exportar.js.map +1 -0
  1076. package/dist/core/skills.d.ts.map +1 -1
  1077. package/dist/core/skills.js.map +1 -1
  1078. package/dist/core/slash-commands.d.ts.map +1 -1
  1079. package/dist/core/slash-commands.js.map +1 -1
  1080. package/dist/core/source-info.d.ts.map +1 -1
  1081. package/dist/core/source-info.js.map +1 -1
  1082. package/dist/core/stream-guard/guardia.d.ts +45 -0
  1083. package/dist/core/stream-guard/guardia.d.ts.map +1 -0
  1084. package/dist/core/stream-guard/guardia.js +100 -0
  1085. package/dist/core/stream-guard/guardia.js.map +1 -0
  1086. package/dist/core/stream-guard/index.d.ts +9 -0
  1087. package/dist/core/stream-guard/index.d.ts.map +1 -0
  1088. package/dist/core/stream-guard/index.js +7 -0
  1089. package/dist/core/stream-guard/index.js.map +1 -0
  1090. package/dist/core/stream-guard/replay.d.ts +39 -0
  1091. package/dist/core/stream-guard/replay.d.ts.map +1 -0
  1092. package/dist/core/stream-guard/replay.js +68 -0
  1093. package/dist/core/stream-guard/replay.js.map +1 -0
  1094. package/dist/core/system-prompt.d.ts.map +1 -1
  1095. package/dist/core/system-prompt.js.map +1 -1
  1096. package/dist/core/telemetria/otlp.d.ts.map +1 -1
  1097. package/dist/core/telemetria/otlp.js.map +1 -1
  1098. package/dist/core/telemetry/otel-genai.d.ts +44 -0
  1099. package/dist/core/telemetry/otel-genai.d.ts.map +1 -0
  1100. package/dist/core/telemetry/otel-genai.js +124 -0
  1101. package/dist/core/telemetry/otel-genai.js.map +1 -0
  1102. package/dist/core/telemetry.d.ts.map +1 -1
  1103. package/dist/core/telemetry.js.map +1 -1
  1104. package/dist/core/terminal/backlog-guard.d.ts +53 -0
  1105. package/dist/core/terminal/backlog-guard.d.ts.map +1 -0
  1106. package/dist/core/terminal/backlog-guard.js +122 -0
  1107. package/dist/core/terminal/backlog-guard.js.map +1 -0
  1108. package/dist/core/terminal/conpty.d.ts +29 -0
  1109. package/dist/core/terminal/conpty.d.ts.map +1 -0
  1110. package/dist/core/terminal/conpty.js +67 -0
  1111. package/dist/core/terminal/conpty.js.map +1 -0
  1112. package/dist/core/terminal/conptyChunking.d.ts +2 -0
  1113. package/dist/core/terminal/conptyChunking.d.ts.map +1 -0
  1114. package/dist/core/terminal/conptyChunking.js +2 -0
  1115. package/dist/core/terminal/conptyChunking.js.map +1 -0
  1116. package/dist/core/terminal/index.d.ts +5 -0
  1117. package/dist/core/terminal/index.d.ts.map +1 -0
  1118. package/dist/core/terminal/index.js +5 -0
  1119. package/dist/core/terminal/index.js.map +1 -0
  1120. package/dist/core/terminal/loop-watchdog.d.ts +43 -0
  1121. package/dist/core/terminal/loop-watchdog.d.ts.map +1 -0
  1122. package/dist/core/terminal/loop-watchdog.js +117 -0
  1123. package/dist/core/terminal/loop-watchdog.js.map +1 -0
  1124. package/dist/core/terminal/runner.d.ts +55 -0
  1125. package/dist/core/terminal/runner.d.ts.map +1 -0
  1126. package/dist/core/terminal/runner.js +102 -0
  1127. package/dist/core/terminal/runner.js.map +1 -0
  1128. package/dist/core/timings.d.ts.map +1 -1
  1129. package/dist/core/timings.js.map +1 -1
  1130. package/dist/core/tools/apply_patch.d.ts +29 -0
  1131. package/dist/core/tools/apply_patch.d.ts.map +1 -0
  1132. package/dist/core/tools/apply_patch.js +54 -0
  1133. package/dist/core/tools/apply_patch.js.map +1 -0
  1134. package/dist/core/tools/bash.d.ts.map +1 -1
  1135. package/dist/core/tools/bash.js.map +1 -1
  1136. package/dist/core/tools/coercion-argumentos.d.ts.map +1 -1
  1137. package/dist/core/tools/coercion-argumentos.js.map +1 -1
  1138. package/dist/core/tools/edit-diff.d.ts.map +1 -1
  1139. package/dist/core/tools/edit-diff.js.map +1 -1
  1140. package/dist/core/tools/edit.d.ts.map +1 -1
  1141. package/dist/core/tools/edit.js +43 -1
  1142. package/dist/core/tools/edit.js.map +1 -1
  1143. package/dist/core/tools/file-mutation-queue.d.ts.map +1 -1
  1144. package/dist/core/tools/file-mutation-queue.js.map +1 -1
  1145. package/dist/core/tools/find.d.ts.map +1 -1
  1146. package/dist/core/tools/find.js.map +1 -1
  1147. package/dist/core/tools/grep.d.ts.map +1 -1
  1148. package/dist/core/tools/grep.js.map +1 -1
  1149. package/dist/core/tools/index.d.ts.map +1 -1
  1150. package/dist/core/tools/index.js.map +1 -1
  1151. package/dist/core/tools/json-tolerante.d.ts.map +1 -1
  1152. package/dist/core/tools/json-tolerante.js.map +1 -1
  1153. package/dist/core/tools/ls.d.ts.map +1 -1
  1154. package/dist/core/tools/ls.js.map +1 -1
  1155. package/dist/core/tools/noop-loop-guard.d.ts +46 -0
  1156. package/dist/core/tools/noop-loop-guard.d.ts.map +1 -0
  1157. package/dist/core/tools/noop-loop-guard.js +57 -0
  1158. package/dist/core/tools/noop-loop-guard.js.map +1 -0
  1159. package/dist/core/tools/output-accumulator.d.ts.map +1 -1
  1160. package/dist/core/tools/output-accumulator.js.map +1 -1
  1161. package/dist/core/tools/path-utils.d.ts.map +1 -1
  1162. package/dist/core/tools/path-utils.js.map +1 -1
  1163. package/dist/core/tools/project-memory-tool.d.ts.map +1 -1
  1164. package/dist/core/tools/project-memory-tool.js.map +1 -1
  1165. package/dist/core/tools/read.d.ts.map +1 -1
  1166. package/dist/core/tools/read.js.map +1 -1
  1167. package/dist/core/tools/render-utils.d.ts.map +1 -1
  1168. package/dist/core/tools/render-utils.js.map +1 -1
  1169. package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -1
  1170. package/dist/core/tools/tool-definition-wrapper.js.map +1 -1
  1171. package/dist/core/tools/truncate.d.ts.map +1 -1
  1172. package/dist/core/tools/truncate.js.map +1 -1
  1173. package/dist/core/tools/write.d.ts.map +1 -1
  1174. package/dist/core/tools/write.js.map +1 -1
  1175. package/dist/core/trust-manager.d.ts.map +1 -1
  1176. package/dist/core/trust-manager.js.map +1 -1
  1177. package/dist/core/ttsr/captura.d.ts +72 -0
  1178. package/dist/core/ttsr/captura.d.ts.map +1 -0
  1179. package/dist/core/ttsr/captura.js +183 -0
  1180. package/dist/core/ttsr/captura.js.map +1 -0
  1181. package/dist/core/ttsr/index.d.ts +24 -0
  1182. package/dist/core/ttsr/index.d.ts.map +1 -0
  1183. package/dist/core/ttsr/index.js +57 -0
  1184. package/dist/core/ttsr/index.js.map +1 -0
  1185. package/dist/core/ttsr/preview.d.ts +48 -0
  1186. package/dist/core/ttsr/preview.d.ts.map +1 -0
  1187. package/dist/core/ttsr/preview.js +83 -0
  1188. package/dist/core/ttsr/preview.js.map +1 -0
  1189. package/dist/core/turno-vacio/detectar.d.ts.map +1 -1
  1190. package/dist/core/turno-vacio/detectar.js.map +1 -1
  1191. package/dist/core/undo/journal.d.ts.map +1 -1
  1192. package/dist/core/undo/journal.js.map +1 -1
  1193. package/dist/core/urls-internas/auditoria.d.ts.map +1 -1
  1194. package/dist/core/urls-internas/auditoria.js.map +1 -1
  1195. package/dist/core/urls-internas/boveda.d.ts.map +1 -1
  1196. package/dist/core/urls-internas/boveda.js.map +1 -1
  1197. package/dist/core/urls-internas/lector.d.ts +14 -10
  1198. package/dist/core/urls-internas/lector.d.ts.map +1 -1
  1199. package/dist/core/urls-internas/lector.js +50 -36
  1200. package/dist/core/urls-internas/lector.js.map +1 -1
  1201. package/dist/core/urls-internas/memoria.d.ts.map +1 -1
  1202. package/dist/core/urls-internas/memoria.js.map +1 -1
  1203. package/dist/core/urls-internas/parse.d.ts +6 -13
  1204. package/dist/core/urls-internas/parse.d.ts.map +1 -1
  1205. package/dist/core/urls-internas/parse.js +6 -17
  1206. package/dist/core/urls-internas/parse.js.map +1 -1
  1207. package/dist/core/urls-internas/reglas.d.ts.map +1 -1
  1208. package/dist/core/urls-internas/reglas.js.map +1 -1
  1209. package/dist/core/usage/aggregate.d.ts +1 -0
  1210. package/dist/core/usage/aggregate.d.ts.map +1 -1
  1211. package/dist/core/usage/aggregate.js +1 -1
  1212. package/dist/core/usage/aggregate.js.map +1 -1
  1213. package/dist/core/usage/cuota/anthropic.d.ts.map +1 -1
  1214. package/dist/core/usage/cuota/anthropic.js.map +1 -1
  1215. package/dist/core/usage/cuota/cache.d.ts.map +1 -1
  1216. package/dist/core/usage/cuota/cache.js.map +1 -1
  1217. package/dist/core/usage/cuota/github-copilot.d.ts.map +1 -1
  1218. package/dist/core/usage/cuota/github-copilot.js.map +1 -1
  1219. package/dist/core/usage/cuota/google-gemini.d.ts.map +1 -1
  1220. package/dist/core/usage/cuota/google-gemini.js.map +1 -1
  1221. package/dist/core/usage/cuota/index.d.ts.map +1 -1
  1222. package/dist/core/usage/cuota/index.js.map +1 -1
  1223. package/dist/core/usage/cuota/openai-codex.d.ts.map +1 -1
  1224. package/dist/core/usage/cuota/openai-codex.js.map +1 -1
  1225. package/dist/core/usage/cuota/openrouter.d.ts.map +1 -1
  1226. package/dist/core/usage/cuota/openrouter.js.map +1 -1
  1227. package/dist/core/usage/cuota/tipos.d.ts.map +1 -1
  1228. package/dist/core/usage/cuota/tipos.js.map +1 -1
  1229. package/dist/core/usage/index.d.ts +11 -0
  1230. package/dist/core/usage/index.d.ts.map +1 -0
  1231. package/dist/core/usage/index.js +11 -0
  1232. package/dist/core/usage/index.js.map +1 -0
  1233. package/dist/core/usage/multi.d.ts +62 -0
  1234. package/dist/core/usage/multi.d.ts.map +1 -0
  1235. package/dist/core/usage/multi.js +122 -0
  1236. package/dist/core/usage/multi.js.map +1 -0
  1237. package/dist/core/usage/redaccion.d.ts +48 -0
  1238. package/dist/core/usage/redaccion.d.ts.map +1 -0
  1239. package/dist/core/usage/redaccion.js +72 -0
  1240. package/dist/core/usage/redaccion.js.map +1 -0
  1241. package/dist/core/usage-totals.d.ts.map +1 -1
  1242. package/dist/core/usage-totals.js.map +1 -1
  1243. package/dist/core/utils/atomic-write.d.ts +55 -0
  1244. package/dist/core/utils/atomic-write.d.ts.map +1 -0
  1245. package/dist/core/utils/atomic-write.js +293 -0
  1246. package/dist/core/utils/atomic-write.js.map +1 -0
  1247. package/dist/core/utils/git.d.ts +24 -0
  1248. package/dist/core/utils/git.d.ts.map +1 -0
  1249. package/dist/core/utils/git.js +107 -0
  1250. package/dist/core/utils/git.js.map +1 -0
  1251. package/dist/core/utils/logger.d.ts +26 -0
  1252. package/dist/core/utils/logger.d.ts.map +1 -0
  1253. package/dist/core/utils/logger.js +104 -0
  1254. package/dist/core/utils/logger.js.map +1 -0
  1255. package/dist/core/utils/shell-snapshot.d.ts +21 -0
  1256. package/dist/core/utils/shell-snapshot.d.ts.map +1 -0
  1257. package/dist/core/utils/shell-snapshot.js +32 -0
  1258. package/dist/core/utils/shell-snapshot.js.map +1 -0
  1259. package/dist/core/utils/startup-watchdog.d.ts +11 -0
  1260. package/dist/core/utils/startup-watchdog.d.ts.map +1 -0
  1261. package/dist/core/utils/startup-watchdog.js +34 -0
  1262. package/dist/core/utils/startup-watchdog.js.map +1 -0
  1263. package/dist/core/utils/tls-ca-shim.d.ts +17 -0
  1264. package/dist/core/utils/tls-ca-shim.d.ts.map +1 -0
  1265. package/dist/core/utils/tls-ca-shim.js +33 -0
  1266. package/dist/core/utils/tls-ca-shim.js.map +1 -0
  1267. package/dist/core/web/agregador.d.ts +67 -0
  1268. package/dist/core/web/agregador.d.ts.map +1 -0
  1269. package/dist/core/web/agregador.js +182 -0
  1270. package/dist/core/web/agregador.js.map +1 -0
  1271. package/dist/core/web/busqueda-nativa.d.ts.map +1 -1
  1272. package/dist/core/web/busqueda-nativa.js.map +1 -1
  1273. package/dist/core/web/consulta.d.ts +53 -0
  1274. package/dist/core/web/consulta.d.ts.map +1 -0
  1275. package/dist/core/web/consulta.js +213 -0
  1276. package/dist/core/web/consulta.js.map +1 -0
  1277. package/dist/core/web/destino.d.ts +11 -0
  1278. package/dist/core/web/destino.d.ts.map +1 -1
  1279. package/dist/core/web/destino.js +35 -0
  1280. package/dist/core/web/destino.js.map +1 -1
  1281. package/dist/core/web/load-page.d.ts +52 -0
  1282. package/dist/core/web/load-page.d.ts.map +1 -0
  1283. package/dist/core/web/load-page.js +221 -0
  1284. package/dist/core/web/load-page.js.map +1 -0
  1285. package/dist/core/web/proveedores/brave.d.ts.map +1 -1
  1286. package/dist/core/web/proveedores/brave.js.map +1 -1
  1287. package/dist/core/web/proveedores/claves.d.ts.map +1 -1
  1288. package/dist/core/web/proveedores/claves.js.map +1 -1
  1289. package/dist/core/web/proveedores/duckduckgo.d.ts.map +1 -1
  1290. package/dist/core/web/proveedores/duckduckgo.js.map +1 -1
  1291. package/dist/core/web/proveedores/ecosia.d.ts.map +1 -1
  1292. package/dist/core/web/proveedores/ecosia.js.map +1 -1
  1293. package/dist/core/web/proveedores/exa.d.ts.map +1 -1
  1294. package/dist/core/web/proveedores/exa.js.map +1 -1
  1295. package/dist/core/web/proveedores/mojeek.d.ts.map +1 -1
  1296. package/dist/core/web/proveedores/mojeek.js.map +1 -1
  1297. package/dist/core/web/proveedores/navegador.d.ts.map +1 -1
  1298. package/dist/core/web/proveedores/navegador.js.map +1 -1
  1299. package/dist/core/web/proveedores/registro.d.ts.map +1 -1
  1300. package/dist/core/web/proveedores/registro.js.map +1 -1
  1301. package/dist/core/web/proveedores/searxng.d.ts.map +1 -1
  1302. package/dist/core/web/proveedores/searxng.js.map +1 -1
  1303. package/dist/core/web/proveedores/serper.d.ts.map +1 -1
  1304. package/dist/core/web/proveedores/serper.js.map +1 -1
  1305. package/dist/core/web/proveedores/tavily.d.ts.map +1 -1
  1306. package/dist/core/web/proveedores/tavily.js.map +1 -1
  1307. package/dist/core/web/proveedores/tipos.d.ts.map +1 -1
  1308. package/dist/core/web/proveedores/tipos.js.map +1 -1
  1309. package/dist/core/web/registro-red.d.ts.map +1 -1
  1310. package/dist/core/web/registro-red.js.map +1 -1
  1311. package/dist/core/web/scrapers/cisa-kev.d.ts.map +1 -1
  1312. package/dist/core/web/scrapers/cisa-kev.js.map +1 -1
  1313. package/dist/core/web/scrapers/crates-io.d.ts.map +1 -1
  1314. package/dist/core/web/scrapers/crates-io.js.map +1 -1
  1315. package/dist/core/web/scrapers/docs-rs.d.ts.map +1 -1
  1316. package/dist/core/web/scrapers/docs-rs.js.map +1 -1
  1317. package/dist/core/web/scrapers/github.d.ts.map +1 -1
  1318. package/dist/core/web/scrapers/github.js.map +1 -1
  1319. package/dist/core/web/scrapers/go-pkg.d.ts.map +1 -1
  1320. package/dist/core/web/scrapers/go-pkg.js.map +1 -1
  1321. package/dist/core/web/scrapers/hex.d.ts.map +1 -1
  1322. package/dist/core/web/scrapers/hex.js.map +1 -1
  1323. package/dist/core/web/scrapers/maven.d.ts.map +1 -1
  1324. package/dist/core/web/scrapers/maven.js.map +1 -1
  1325. package/dist/core/web/scrapers/mdn.d.ts.map +1 -1
  1326. package/dist/core/web/scrapers/mdn.js.map +1 -1
  1327. package/dist/core/web/scrapers/npm.d.ts.map +1 -1
  1328. package/dist/core/web/scrapers/npm.js.map +1 -1
  1329. package/dist/core/web/scrapers/nuget.d.ts.map +1 -1
  1330. package/dist/core/web/scrapers/nuget.js.map +1 -1
  1331. package/dist/core/web/scrapers/nvd.d.ts.map +1 -1
  1332. package/dist/core/web/scrapers/nvd.js.map +1 -1
  1333. package/dist/core/web/scrapers/pypi.d.ts.map +1 -1
  1334. package/dist/core/web/scrapers/pypi.js.map +1 -1
  1335. package/dist/core/web/scrapers/registro.d.ts.map +1 -1
  1336. package/dist/core/web/scrapers/registro.js.map +1 -1
  1337. package/dist/core/web/scrapers/rubygems.d.ts.map +1 -1
  1338. package/dist/core/web/scrapers/rubygems.js.map +1 -1
  1339. package/dist/core/web/scrapers/stackoverflow.d.ts.map +1 -1
  1340. package/dist/core/web/scrapers/stackoverflow.js.map +1 -1
  1341. package/dist/core/web/scrapers/tipos.d.ts.map +1 -1
  1342. package/dist/core/web/scrapers/tipos.js.map +1 -1
  1343. package/dist/core/web/texto.d.ts.map +1 -1
  1344. package/dist/core/web/texto.js.map +1 -1
  1345. package/dist/core/web/tools.d.ts +1 -8
  1346. package/dist/core/web/tools.d.ts.map +1 -1
  1347. package/dist/core/web/tools.js +2 -33
  1348. package/dist/core/web/tools.js.map +1 -1
  1349. package/dist/core/wiki/almacen.d.ts.map +1 -1
  1350. package/dist/core/wiki/almacen.js.map +1 -1
  1351. package/dist/core/wiki/citas.d.ts.map +1 -1
  1352. package/dist/core/wiki/citas.js.map +1 -1
  1353. package/dist/core/workflows/agent-runner.d.ts.map +1 -1
  1354. package/dist/core/workflows/agent-runner.js.map +1 -1
  1355. package/dist/core/workflows/builtins.d.ts.map +1 -1
  1356. package/dist/core/workflows/builtins.js.map +1 -1
  1357. package/dist/core/workflows/contrato/esquema.d.ts.map +1 -1
  1358. package/dist/core/workflows/contrato/esquema.js.map +1 -1
  1359. package/dist/core/workflows/contrato/reparar-argumentos.d.ts.map +1 -1
  1360. package/dist/core/workflows/contrato/reparar-argumentos.js.map +1 -1
  1361. package/dist/core/workflows/contrato/validador.d.ts.map +1 -1
  1362. package/dist/core/workflows/contrato/validador.js.map +1 -1
  1363. package/dist/core/workflows/contrato/yield.d.ts.map +1 -1
  1364. package/dist/core/workflows/contrato/yield.js.map +1 -1
  1365. package/dist/core/workflows/goal-engine/engine.d.ts +5 -0
  1366. package/dist/core/workflows/goal-engine/engine.d.ts.map +1 -1
  1367. package/dist/core/workflows/goal-engine/engine.js.map +1 -1
  1368. package/dist/core/workflows/goal-engine/errors.d.ts.map +1 -1
  1369. package/dist/core/workflows/goal-engine/errors.js.map +1 -1
  1370. package/dist/core/workflows/goal-engine/index.d.ts.map +1 -1
  1371. package/dist/core/workflows/goal-engine/index.js.map +1 -1
  1372. package/dist/core/workflows/goal-engine/persistence.d.ts.map +1 -1
  1373. package/dist/core/workflows/goal-engine/persistence.js.map +1 -1
  1374. package/dist/core/workflows/goal-engine/prompts.d.ts.map +1 -1
  1375. package/dist/core/workflows/goal-engine/prompts.js.map +1 -1
  1376. package/dist/core/workflows/goal-engine/state.d.ts.map +1 -1
  1377. package/dist/core/workflows/goal-engine/state.js.map +1 -1
  1378. package/dist/core/workflows/goal-engine/tools.d.ts.map +1 -1
  1379. package/dist/core/workflows/goal-engine/tools.js.map +1 -1
  1380. package/dist/core/workflows/goal-engine/types.d.ts.map +1 -1
  1381. package/dist/core/workflows/goal-engine/types.js.map +1 -1
  1382. package/dist/core/workflows/goal-engine/worktree-fingerprint.d.ts.map +1 -1
  1383. package/dist/core/workflows/goal-engine/worktree-fingerprint.js.map +1 -1
  1384. package/dist/core/workflows/graph-sync.d.ts.map +1 -1
  1385. package/dist/core/workflows/graph-sync.js.map +1 -1
  1386. package/dist/core/workflows/graph.d.ts.map +1 -1
  1387. package/dist/core/workflows/graph.js.map +1 -1
  1388. package/dist/core/workflows/index.d.ts +6 -0
  1389. package/dist/core/workflows/index.d.ts.map +1 -1
  1390. package/dist/core/workflows/index.js +3 -0
  1391. package/dist/core/workflows/index.js.map +1 -1
  1392. package/dist/core/workflows/journal.d.ts.map +1 -1
  1393. package/dist/core/workflows/journal.js.map +1 -1
  1394. package/dist/core/workflows/manager.d.ts.map +1 -1
  1395. package/dist/core/workflows/manager.js.map +1 -1
  1396. package/dist/core/workflows/provider-caps.d.ts +103 -0
  1397. package/dist/core/workflows/provider-caps.d.ts.map +1 -0
  1398. package/dist/core/workflows/provider-caps.js +235 -0
  1399. package/dist/core/workflows/provider-caps.js.map +1 -0
  1400. package/dist/core/workflows/resolve-script.d.ts.map +1 -1
  1401. package/dist/core/workflows/resolve-script.js.map +1 -1
  1402. package/dist/core/workflows/runtime.d.ts.map +1 -1
  1403. package/dist/core/workflows/runtime.js.map +1 -1
  1404. package/dist/core/workflows/save-as-skill.d.ts.map +1 -1
  1405. package/dist/core/workflows/save-as-skill.js.map +1 -1
  1406. package/dist/core/workflows/shared-store.d.ts.map +1 -1
  1407. package/dist/core/workflows/shared-store.js.map +1 -1
  1408. package/dist/core/workflows/soft-budget.d.ts +27 -0
  1409. package/dist/core/workflows/soft-budget.d.ts.map +1 -0
  1410. package/dist/core/workflows/soft-budget.js +47 -0
  1411. package/dist/core/workflows/soft-budget.js.map +1 -0
  1412. package/dist/core/workflows/subagent-host.d.ts.map +1 -1
  1413. package/dist/core/workflows/subagent-host.js.map +1 -1
  1414. package/dist/core/workflows/tool-scheduling.d.ts +47 -0
  1415. package/dist/core/workflows/tool-scheduling.d.ts.map +1 -0
  1416. package/dist/core/workflows/tool-scheduling.js +102 -0
  1417. package/dist/core/workflows/tool-scheduling.js.map +1 -0
  1418. package/dist/core/workflows/tool-workflow.d.ts.map +1 -1
  1419. package/dist/core/workflows/tool-workflow.js.map +1 -1
  1420. package/dist/core/workflows/types.d.ts.map +1 -1
  1421. package/dist/core/workflows/types.js.map +1 -1
  1422. package/dist/core/workflows/worktree.d.ts.map +1 -1
  1423. package/dist/core/workflows/worktree.js.map +1 -1
  1424. package/dist/extensions/index.d.ts.map +1 -1
  1425. package/dist/extensions/index.js.map +1 -1
  1426. package/dist/extensions/llama/client.d.ts.map +1 -1
  1427. package/dist/extensions/llama/client.js.map +1 -1
  1428. package/dist/extensions/llama/huggingface.d.ts.map +1 -1
  1429. package/dist/extensions/llama/huggingface.js.map +1 -1
  1430. package/dist/extensions/llama/index.d.ts.map +1 -1
  1431. package/dist/extensions/llama/index.js.map +1 -1
  1432. package/dist/extensions/llama/provider.d.ts.map +1 -1
  1433. package/dist/extensions/llama/provider.js.map +1 -1
  1434. package/dist/extensions/llama/ui.d.ts.map +1 -1
  1435. package/dist/extensions/llama/ui.js.map +1 -1
  1436. package/dist/extensions/remoto/index.d.ts.map +1 -1
  1437. package/dist/extensions/remoto/index.js.map +1 -1
  1438. package/dist/index.d.ts.map +1 -1
  1439. package/dist/index.js.map +1 -1
  1440. package/dist/main.d.ts.map +1 -1
  1441. package/dist/main.js +71 -3
  1442. package/dist/main.js.map +1 -1
  1443. package/dist/migrations.d.ts.map +1 -1
  1444. package/dist/migrations.js.map +1 -1
  1445. package/dist/modes/acp/acp-mode.d.ts.map +1 -1
  1446. package/dist/modes/acp/acp-mode.js.map +1 -1
  1447. package/dist/modes/acp/events.d.ts.map +1 -1
  1448. package/dist/modes/acp/events.js.map +1 -1
  1449. package/dist/modes/index.d.ts.map +1 -1
  1450. package/dist/modes/index.js.map +1 -1
  1451. package/dist/modes/interactive/components/armin.d.ts.map +1 -1
  1452. package/dist/modes/interactive/components/armin.js.map +1 -1
  1453. package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  1454. package/dist/modes/interactive/components/assistant-message.js.map +1 -1
  1455. package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -1
  1456. package/dist/modes/interactive/components/bash-execution.js.map +1 -1
  1457. package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -1
  1458. package/dist/modes/interactive/components/bordered-loader.js.map +1 -1
  1459. package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -1
  1460. package/dist/modes/interactive/components/branch-summary-message.js.map +1 -1
  1461. package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -1
  1462. package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -1
  1463. package/dist/modes/interactive/components/config-selector.d.ts.map +1 -1
  1464. package/dist/modes/interactive/components/config-selector.js.map +1 -1
  1465. package/dist/modes/interactive/components/countdown-timer.d.ts.map +1 -1
  1466. package/dist/modes/interactive/components/countdown-timer.js.map +1 -1
  1467. package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -1
  1468. package/dist/modes/interactive/components/custom-editor.js.map +1 -1
  1469. package/dist/modes/interactive/components/custom-entry.d.ts.map +1 -1
  1470. package/dist/modes/interactive/components/custom-entry.js.map +1 -1
  1471. package/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
  1472. package/dist/modes/interactive/components/custom-message.js.map +1 -1
  1473. package/dist/modes/interactive/components/daxnuts.d.ts.map +1 -1
  1474. package/dist/modes/interactive/components/daxnuts.js.map +1 -1
  1475. package/dist/modes/interactive/components/diff.d.ts.map +1 -1
  1476. package/dist/modes/interactive/components/diff.js.map +1 -1
  1477. package/dist/modes/interactive/components/dynamic-border.d.ts.map +1 -1
  1478. package/dist/modes/interactive/components/dynamic-border.js.map +1 -1
  1479. package/dist/modes/interactive/components/earendil-announcement.d.ts.map +1 -1
  1480. package/dist/modes/interactive/components/earendil-announcement.js.map +1 -1
  1481. package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -1
  1482. package/dist/modes/interactive/components/extension-editor.js.map +1 -1
  1483. package/dist/modes/interactive/components/extension-input.d.ts.map +1 -1
  1484. package/dist/modes/interactive/components/extension-input.js.map +1 -1
  1485. package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -1
  1486. package/dist/modes/interactive/components/extension-selector.js.map +1 -1
  1487. package/dist/modes/interactive/components/first-time-setup.d.ts.map +1 -1
  1488. package/dist/modes/interactive/components/first-time-setup.js.map +1 -1
  1489. package/dist/modes/interactive/components/footer.d.ts.map +1 -1
  1490. package/dist/modes/interactive/components/footer.js.map +1 -1
  1491. package/dist/modes/interactive/components/home-screen.d.ts +2 -0
  1492. package/dist/modes/interactive/components/home-screen.d.ts.map +1 -1
  1493. package/dist/modes/interactive/components/home-screen.js +5 -6
  1494. package/dist/modes/interactive/components/home-screen.js.map +1 -1
  1495. package/dist/modes/interactive/components/index.d.ts.map +1 -1
  1496. package/dist/modes/interactive/components/index.js.map +1 -1
  1497. package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -1
  1498. package/dist/modes/interactive/components/keybinding-hints.js.map +1 -1
  1499. package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
  1500. package/dist/modes/interactive/components/login-dialog.js.map +1 -1
  1501. package/dist/modes/interactive/components/markdown-transform.d.ts.map +1 -1
  1502. package/dist/modes/interactive/components/markdown-transform.js.map +1 -1
  1503. package/dist/modes/interactive/components/mermaid.d.ts.map +1 -1
  1504. package/dist/modes/interactive/components/mermaid.js.map +1 -1
  1505. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
  1506. package/dist/modes/interactive/components/model-selector.js.map +1 -1
  1507. package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
  1508. package/dist/modes/interactive/components/oauth-selector.js.map +1 -1
  1509. package/dist/modes/interactive/components/prompt-optimization.d.ts.map +1 -1
  1510. package/dist/modes/interactive/components/prompt-optimization.js.map +1 -1
  1511. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
  1512. package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
  1513. package/dist/modes/interactive/components/session-selector-search.d.ts.map +1 -1
  1514. package/dist/modes/interactive/components/session-selector-search.js.map +1 -1
  1515. package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
  1516. package/dist/modes/interactive/components/session-selector.js.map +1 -1
  1517. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  1518. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  1519. package/dist/modes/interactive/components/settings-submenu.d.ts.map +1 -1
  1520. package/dist/modes/interactive/components/settings-submenu.js.map +1 -1
  1521. package/dist/modes/interactive/components/show-images-selector.d.ts.map +1 -1
  1522. package/dist/modes/interactive/components/show-images-selector.js.map +1 -1
  1523. package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -1
  1524. package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -1
  1525. package/dist/modes/interactive/components/status-indicator.d.ts.map +1 -1
  1526. package/dist/modes/interactive/components/status-indicator.js.map +1 -1
  1527. package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -1
  1528. package/dist/modes/interactive/components/theme-selector.js.map +1 -1
  1529. package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
  1530. package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
  1531. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  1532. package/dist/modes/interactive/components/tool-execution.js.map +1 -1
  1533. package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -1
  1534. package/dist/modes/interactive/components/tree-selector.js.map +1 -1
  1535. package/dist/modes/interactive/components/trust-selector.d.ts.map +1 -1
  1536. package/dist/modes/interactive/components/trust-selector.js.map +1 -1
  1537. package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -1
  1538. package/dist/modes/interactive/components/user-message-selector.js.map +1 -1
  1539. package/dist/modes/interactive/components/user-message.d.ts.map +1 -1
  1540. package/dist/modes/interactive/components/user-message.js.map +1 -1
  1541. package/dist/modes/interactive/components/visual-truncate.d.ts.map +1 -1
  1542. package/dist/modes/interactive/components/visual-truncate.js.map +1 -1
  1543. package/dist/modes/interactive/external-editor.d.ts.map +1 -1
  1544. package/dist/modes/interactive/external-editor.js.map +1 -1
  1545. package/dist/modes/interactive/interactive-mode.d.ts +19 -0
  1546. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  1547. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  1548. package/dist/modes/interactive/model-catalog-refresh.d.ts.map +1 -1
  1549. package/dist/modes/interactive/model-catalog-refresh.js.map +1 -1
  1550. package/dist/modes/interactive/model-search.d.ts.map +1 -1
  1551. package/dist/modes/interactive/model-search.js.map +1 -1
  1552. package/dist/modes/interactive/theme/theme-controller.d.ts.map +1 -1
  1553. package/dist/modes/interactive/theme/theme-controller.js.map +1 -1
  1554. package/dist/modes/interactive/theme/theme.d.ts +2 -2
  1555. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  1556. package/dist/modes/interactive/theme/theme.js.map +1 -1
  1557. package/dist/modes/json-event.d.ts.map +1 -1
  1558. package/dist/modes/json-event.js.map +1 -1
  1559. package/dist/modes/print-mode.d.ts.map +1 -1
  1560. package/dist/modes/print-mode.js.map +1 -1
  1561. package/dist/modes/rpc/jsonl.d.ts.map +1 -1
  1562. package/dist/modes/rpc/jsonl.js.map +1 -1
  1563. package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
  1564. package/dist/modes/rpc/rpc-client.js.map +1 -1
  1565. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  1566. package/dist/modes/rpc/rpc-mode.js.map +1 -1
  1567. package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
  1568. package/dist/modes/rpc/rpc-types.js.map +1 -1
  1569. package/dist/package-manager-cli.d.ts.map +1 -1
  1570. package/dist/package-manager-cli.js.map +1 -1
  1571. package/dist/rpc-entry.d.ts.map +1 -1
  1572. package/dist/rpc-entry.js +0 -0
  1573. package/dist/rpc-entry.js.map +1 -1
  1574. package/dist/server/attach.d.ts.map +1 -1
  1575. package/dist/server/attach.js.map +1 -1
  1576. package/dist/server/create-harness.d.ts.map +1 -1
  1577. package/dist/server/create-harness.js.map +1 -1
  1578. package/dist/server/extension-ops.d.ts.map +1 -1
  1579. package/dist/server/extension-ops.js.map +1 -1
  1580. package/dist/server/pi-server-service.d.ts.map +1 -1
  1581. package/dist/server/pi-server-service.js.map +1 -1
  1582. package/dist/server/scheduler-tick.d.ts.map +1 -1
  1583. package/dist/server/scheduler-tick.js.map +1 -1
  1584. package/dist/server/serve.d.ts.map +1 -1
  1585. package/dist/server/serve.js.map +1 -1
  1586. package/dist/server/transcript.d.ts.map +1 -1
  1587. package/dist/server/transcript.js.map +1 -1
  1588. package/dist/telegram/api.d.ts +6 -0
  1589. package/dist/telegram/api.d.ts.map +1 -1
  1590. package/dist/telegram/api.js.map +1 -1
  1591. package/dist/telegram/bridge.d.ts.map +1 -1
  1592. package/dist/telegram/bridge.js.map +1 -1
  1593. package/dist/telegram/journal.d.ts.map +1 -1
  1594. package/dist/telegram/journal.js.map +1 -1
  1595. package/dist/telegram/servidor.d.ts.map +1 -1
  1596. package/dist/telegram/servidor.js.map +1 -1
  1597. package/dist/utils/abort.d.ts.map +1 -1
  1598. package/dist/utils/abort.js.map +1 -1
  1599. package/dist/utils/ansi.d.ts.map +1 -1
  1600. package/dist/utils/ansi.js.map +1 -1
  1601. package/dist/utils/changelog.d.ts.map +1 -1
  1602. package/dist/utils/changelog.js.map +1 -1
  1603. package/dist/utils/child-process.d.ts.map +1 -1
  1604. package/dist/utils/child-process.js.map +1 -1
  1605. package/dist/utils/clipboard-image.d.ts.map +1 -1
  1606. package/dist/utils/clipboard-image.js.map +1 -1
  1607. package/dist/utils/clipboard-native.d.ts.map +1 -1
  1608. package/dist/utils/clipboard-native.js.map +1 -1
  1609. package/dist/utils/clipboard.d.ts.map +1 -1
  1610. package/dist/utils/clipboard.js.map +1 -1
  1611. package/dist/utils/deprecation.d.ts.map +1 -1
  1612. package/dist/utils/deprecation.js.map +1 -1
  1613. package/dist/utils/exif-orientation.d.ts.map +1 -1
  1614. package/dist/utils/exif-orientation.js.map +1 -1
  1615. package/dist/utils/frontmatter.d.ts.map +1 -1
  1616. package/dist/utils/frontmatter.js.map +1 -1
  1617. package/dist/utils/fs-watch.d.ts.map +1 -1
  1618. package/dist/utils/fs-watch.js.map +1 -1
  1619. package/dist/utils/git.d.ts.map +1 -1
  1620. package/dist/utils/git.js.map +1 -1
  1621. package/dist/utils/html.d.ts.map +1 -1
  1622. package/dist/utils/html.js.map +1 -1
  1623. package/dist/utils/image-convert.d.ts.map +1 -1
  1624. package/dist/utils/image-convert.js.map +1 -1
  1625. package/dist/utils/image-process.d.ts.map +1 -1
  1626. package/dist/utils/image-process.js.map +1 -1
  1627. package/dist/utils/image-resize-core.d.ts.map +1 -1
  1628. package/dist/utils/image-resize-core.js.map +1 -1
  1629. package/dist/utils/image-resize-worker.d.ts.map +1 -1
  1630. package/dist/utils/image-resize-worker.js.map +1 -1
  1631. package/dist/utils/image-resize.d.ts.map +1 -1
  1632. package/dist/utils/image-resize.js.map +1 -1
  1633. package/dist/utils/json.d.ts.map +1 -1
  1634. package/dist/utils/json.js.map +1 -1
  1635. package/dist/utils/management-http.d.ts.map +1 -1
  1636. package/dist/utils/management-http.js.map +1 -1
  1637. package/dist/utils/mime.d.ts.map +1 -1
  1638. package/dist/utils/mime.js.map +1 -1
  1639. package/dist/utils/open-browser.d.ts.map +1 -1
  1640. package/dist/utils/open-browser.js.map +1 -1
  1641. package/dist/utils/paths.d.ts.map +1 -1
  1642. package/dist/utils/paths.js.map +1 -1
  1643. package/dist/utils/photon.d.ts.map +1 -1
  1644. package/dist/utils/photon.js.map +1 -1
  1645. package/dist/utils/pi-user-agent.d.ts.map +1 -1
  1646. package/dist/utils/pi-user-agent.js.map +1 -1
  1647. package/dist/utils/shell.d.ts.map +1 -1
  1648. package/dist/utils/shell.js.map +1 -1
  1649. package/dist/utils/sleep.d.ts.map +1 -1
  1650. package/dist/utils/sleep.js.map +1 -1
  1651. package/dist/utils/syntax-highlight.d.ts.map +1 -1
  1652. package/dist/utils/syntax-highlight.js.map +1 -1
  1653. package/dist/utils/text.d.ts.map +1 -1
  1654. package/dist/utils/text.js.map +1 -1
  1655. package/dist/utils/tool-result-images.d.ts.map +1 -1
  1656. package/dist/utils/tool-result-images.js.map +1 -1
  1657. package/dist/utils/tools-manager.d.ts.map +1 -1
  1658. package/dist/utils/tools-manager.js.map +1 -1
  1659. package/dist/utils/version-check.d.ts.map +1 -1
  1660. package/dist/utils/version-check.js.map +1 -1
  1661. package/dist/utils/windows-self-update.d.ts.map +1 -1
  1662. package/dist/utils/windows-self-update.js.map +1 -1
  1663. package/docs/development-fork.md +170 -0
  1664. package/docs/docs.json +25 -0
  1665. package/docs/modules-infraestructura.md +115 -0
  1666. package/docs/modules-motor.md +160 -0
  1667. package/docs/modules-producto.md +179 -0
  1668. package/docs/modules-seguridad.md +158 -0
  1669. package/npm-shrinkwrap.json +2 -2
  1670. package/package.json +113 -113
  1671. package/dist/core/commit/diff.d.ts.map +0 -1
  1672. package/dist/core/commit/diff.js.map +0 -1
  1673. package/dist/core/commit/mensaje.d.ts +0 -80
  1674. package/dist/core/commit/mensaje.d.ts.map +0 -1
  1675. package/dist/core/commit/mensaje.js +0 -207
  1676. package/dist/core/commit/mensaje.js.map +0 -1
  1677. package/dist/core/computer/motor/platform/macos/helper-path.mjs +0 -34
  1678. package/dist/core/export-html/template.css +0 -1066
  1679. package/dist/core/export-html/template.html +0 -55
  1680. package/dist/core/export-html/template.js +0 -1864
  1681. package/dist/core/export-html/vendor/highlight.min.js +0 -1213
  1682. package/dist/core/export-html/vendor/marked.min.js +0 -78
  1683. package/dist/core/prompts/sistema.md +0 -134
  1684. package/dist/modes/interactive/assets/clankolas.png +0 -0
  1685. package/dist/modes/interactive/theme/dark.json +0 -90
  1686. package/dist/modes/interactive/theme/light.json +0 -89
  1687. package/dist/modes/interactive/theme/theme-schema.json +0 -352
  1688. package/dist/skills/ada-engine/SKILL.md +0 -153
  1689. package/dist/skills/skill-creator/SKILL.md +0 -90
  1690. /package/dist/core/{commit → commits}/diff.d.ts +0 -0
  1691. /package/dist/core/{commit → commits}/diff.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"auditoria.js","sourceRoot":"","sources":["../../../src/core/urls-internas/auditoria.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,MAAM,cAAc,GAAG,EAAE,CAAC;AAE1B,SAAS,aAAa,CAAC,MAA+B,EAAU;IAC/D,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;SAClC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC;SAC7B,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5C,IAAI,CAAC,GAAG,CAAC,CAAC;IACZ,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAAA,CACzC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,KAAoB,EAAE,KAAa,EAAmB;IACzF,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,MAAM,GAAG,cAAc,CAAC;IAC5B,IAAI,KAAK,EAAE,CAAC;QACX,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACpC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,cAAc,KAAK,sEAAqE,CAAC,CAAC;QAC3G,CAAC;IACF,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,SAAS,EAAE,CAAC;IAC1C,2EAAyE;IACzE,6EAA6E;IAC7E,iFAA6E;IAC7E,wCAAqC;IACrC,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM;QACtC,CAAC,CAAC,UAAU,SAAS,CAAC,MAAM,CAAC,MAAM,6BAA6B,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,4DAA2D;QAC/K,CAAC,CAAC,SAAS,CAAC,MAAM;YACjB,CAAC,CAAC,mBAAkB,SAAS,CAAC,WAAW,4BAA4B;YACrE,CAAC,CAAC,kBAAkB,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,WAAW,oCAAmC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;IAE/L,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,WAAW,KAAK,uCAAoC,MAAM,GAAG,CAAC;IAEhG,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,IAAI,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACnF,OAAO,GAAG,QAAQ,CAAC,MAAM,kDAAgD,MAAM,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AAAA,CACzG","sourcesContent":["/**\n * `audit://<n>` — las últimas `n` entradas del libro de sesión\n * (`audit/libro.ts`), con el veredicto de la cadena de hashes.\n *\n * El veredicto va SIEMPRE, no solo cuando algo falla: \"válida\" es tan\n * informativo como \"alterada\" para quien pregunta qué hizo el agente.\n */\n\nimport type { LibroDeSesion } from \"../audit/libro.ts\";\n\nconst LIMITE_DEFECTO = 20;\n\nfunction resumenSuceso(suceso: Record<string, unknown>): string {\n\tconst tipo = String(suceso.tipo ?? \"?\");\n\tconst resto = Object.entries(suceso)\n\t\t.filter(([k]) => k !== \"tipo\")\n\t\t.map(([k, v]) => `${k}=${JSON.stringify(v)}`)\n\t\t.join(\" \");\n\treturn resto ? `${tipo} ${resto}` : tipo;\n}\n\nexport async function leerAuditoria(libro: LibroDeSesion, resto: string): Promise<string> {\n\tconst texto = resto.trim();\n\tlet limite = LIMITE_DEFECTO;\n\tif (texto) {\n\t\tlimite = Number.parseInt(texto, 10);\n\t\tif (!Number.isFinite(limite) || limite <= 0) {\n\t\t\tthrow new Error(`audit://: \"${resto}\" no es un número positivo. Usa audit://<n>, por ejemplo audit://5.`);\n\t\t}\n\t}\n\n\tconst entradas = await libro.leer(limite);\n\tconst veredicto = await libro.verificar();\n\t// El caso «falta un fichero entero» no tiene `alteradaEn`, porque no hay\n\t// ninguna entrada que no cuadre: lo que no cuadra es el inventario. Sin esta\n\t// rama el texto decía «cadena ALTERADA en undefined», que es la peor versión\n\t// de un aviso — grita y no dice qué.\n\tconst cadena = veredicto.faltan?.length\n\t\t? `FALTAN ${veredicto.faltan.length} fichero(s) del libro con ${veredicto.faltan.reduce((n, f) => n + f.entradas, 0)} entrada(s), borrados de sesion/ y recuperados del índice`\n\t\t: veredicto.valido\n\t\t\t? `cadena válida (${veredicto.comprobadas} entrada(s) comprobada(s))`\n\t\t\t: `cadena ALTERADA${veredicto.alteradaEn ? ` en ${veredicto.alteradaEn}` : \"\"} (${veredicto.comprobadas} entrada(s) válidas antes de eso${veredicto.motivo ? `; ${veredicto.motivo}` : \"\"})`;\n\n\tif (entradas.length === 0) return `audit://${resto}: el libro de sesión está vacío. ${cadena}.`;\n\n\tconst lineas = entradas.map((e) => `#${e.seq} ${e.ts} ${resumenSuceso(e.suceso)}`);\n\treturn `${entradas.length} entrada(s) (de más reciente a más antigua), ${cadena}:\\n${lineas.join(\"\\n\")}`;\n}\n"]}
1
+ {"version":3,"file":"auditoria.js","sourceRoot":"","sources":["../../../src/core/urls-internas/auditoria.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,MAAM,cAAc,GAAG,EAAE,CAAC;AAE1B,SAAS,aAAa,CAAC,MAA+B;IACrD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;SAClC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC;SAC7B,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;SAC5C,IAAI,CAAC,GAAG,CAAC,CAAC;IACZ,OAAO,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,KAAoB,EAAE,KAAa;IACtE,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,MAAM,GAAG,cAAc,CAAC;IAC5B,IAAI,KAAK,EAAE,CAAC;QACX,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACpC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;YAC7C,MAAM,IAAI,KAAK,CAAC,cAAc,KAAK,qEAAqE,CAAC,CAAC;QAC3G,CAAC;IACF,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,SAAS,EAAE,CAAC;IAC1C,yEAAyE;IACzE,6EAA6E;IAC7E,6EAA6E;IAC7E,qCAAqC;IACrC,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM;QACtC,CAAC,CAAC,UAAU,SAAS,CAAC,MAAM,CAAC,MAAM,6BAA6B,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,2DAA2D;QAC/K,CAAC,CAAC,SAAS,CAAC,MAAM;YACjB,CAAC,CAAC,kBAAkB,SAAS,CAAC,WAAW,4BAA4B;YACrE,CAAC,CAAC,kBAAkB,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,CAAC,WAAW,mCAAmC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;IAE/L,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,WAAW,KAAK,oCAAoC,MAAM,GAAG,CAAC;IAEhG,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,IAAI,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACnF,OAAO,GAAG,QAAQ,CAAC,MAAM,gDAAgD,MAAM,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AAC1G,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"boveda.d.ts","sourceRoot":"","sources":["../../../src/core/urls-internas/boveda.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAkB,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAO9E,wBAAgB,UAAU,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAwB7E","sourcesContent":["/**\n * `vault://<nombre>` — lista los NOMBRES del vault y su clasificación.\n *\n * Nunca el valor. La política de aprobación (`aprobacion/politica.ts`,\n * `rutaProtegida`) deniega a propósito leer `<agentDir>/vault/…` incluso en\n * modo `yolo` — es la única ruta que no es configurable. Este esquema no\n * puede ser la puerta trasera que deshaga esa decisión, así que ni siquiera\n * llama a `VaultManager.getSecret()`: solo a `.list()`, que por construcción\n * no puede devolver un valor porque `VaultListEntry` no tiene ese campo.\n */\n\nimport type { VaultListEntry, VaultManager } from \"../memory-engine/vault.ts\";\n\nfunction formatoEntrada(e: VaultListEntry): string {\n\tconst categoria = e.category ?? \"sin categoría\";\n\treturn `- ${e.name} [${categoria}] (${e.source})${e.note ? ` — ${e.note}` : \"\"}`;\n}\n\nexport function leerBoveda(vault: VaultManager | null, nombre: string): string {\n\tif (!vault) throw new Error(\"vault://: no hay vault configurado en esta sesión.\");\n\tconst objetivo = nombre.trim();\n\tconst entradas = vault.list();\n\n\t// TRES estados, no dos.\n\t//\n\t// `VaultManager.list()` devuelve `[]` tanto cuando el vault está VACÍO como\n\t// cuando está BLOQUEADO —`projectVault` es `null` hasta que alguien lo\n\t// desbloquea—, así que un usuario con doce secretos guardados leía «no hay\n\t// secretos guardados». Es «no puedo» disfrazado de «no hay», y en la ruta de\n\t// seguridad: le empujaría a volver a guardarlos o a dar el vault por roto.\n\tif (entradas.length === 0 && vault.exists() && !vault.isUnlocked) {\n\t\treturn \"vault://: el vault de este proyecto existe pero está BLOQUEADO. No es que no haya secretos: no se han podido leer. Desbloquéalo para listarlos.\";\n\t}\n\n\tif (!objetivo) {\n\t\tif (entradas.length === 0) return \"vault://: no hay secretos guardados en este proyecto.\";\n\t\treturn `${entradas.length} secreto(s) en el vault (solo nombre y clasificación, nunca el valor):\\n${entradas.map(formatoEntrada).join(\"\\n\")}`;\n\t}\n\n\tconst encontrada = entradas.find((e) => e.name === objetivo);\n\tif (!encontrada) return `vault://${objetivo}: no existe una entrada con ese nombre.`;\n\treturn `${formatoEntrada(encontrada)}\\n(el valor no se expone por esta vía: la política de aprobación deniega leer el vault)`;\n}\n"]}
1
+ {"version":3,"file":"boveda.d.ts","sourceRoot":"","sources":["../../../src/core/urls-internas/boveda.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAkB,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAO9E,wBAAgB,UAAU,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAwB7E"}
@@ -1 +1 @@
1
- {"version":3,"file":"boveda.js","sourceRoot":"","sources":["../../../src/core/urls-internas/boveda.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,SAAS,cAAc,CAAC,CAAiB,EAAU;IAClD,MAAM,SAAS,GAAG,CAAC,CAAC,QAAQ,IAAI,gBAAe,CAAC;IAChD,OAAO,KAAK,CAAC,CAAC,IAAI,KAAK,SAAS,MAAM,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AAAA,CACjF;AAED,MAAM,UAAU,UAAU,CAAC,KAA0B,EAAE,MAAc,EAAU;IAC9E,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,qDAAoD,CAAC,CAAC;IAClF,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IAC/B,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAE9B,wBAAwB;IACxB,EAAE;IACF,8EAA4E;IAC5E,0EAAuE;IACvE,gFAA2E;IAC3E,kFAA6E;IAC7E,4EAA2E;IAC3E,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QAClE,OAAO,mJAAiJ,CAAC;IAC1J,CAAC;IAED,IAAI,CAAC,QAAQ,EAAE,CAAC;QACf,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,uDAAuD,CAAC;QAC1F,OAAO,GAAG,QAAQ,CAAC,MAAM,4EAA2E,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAC/I,CAAC;IAED,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IAC7D,IAAI,CAAC,UAAU;QAAE,OAAO,WAAW,QAAQ,yCAAyC,CAAC;IACrF,OAAO,GAAG,cAAc,CAAC,UAAU,CAAC,4FAAyF,CAAC;AAAA,CAC9H","sourcesContent":["/**\n * `vault://<nombre>` — lista los NOMBRES del vault y su clasificación.\n *\n * Nunca el valor. La política de aprobación (`aprobacion/politica.ts`,\n * `rutaProtegida`) deniega a propósito leer `<agentDir>/vault/…` incluso en\n * modo `yolo` — es la única ruta que no es configurable. Este esquema no\n * puede ser la puerta trasera que deshaga esa decisión, así que ni siquiera\n * llama a `VaultManager.getSecret()`: solo a `.list()`, que por construcción\n * no puede devolver un valor porque `VaultListEntry` no tiene ese campo.\n */\n\nimport type { VaultListEntry, VaultManager } from \"../memory-engine/vault.ts\";\n\nfunction formatoEntrada(e: VaultListEntry): string {\n\tconst categoria = e.category ?? \"sin categoría\";\n\treturn `- ${e.name} [${categoria}] (${e.source})${e.note ? ` — ${e.note}` : \"\"}`;\n}\n\nexport function leerBoveda(vault: VaultManager | null, nombre: string): string {\n\tif (!vault) throw new Error(\"vault://: no hay vault configurado en esta sesión.\");\n\tconst objetivo = nombre.trim();\n\tconst entradas = vault.list();\n\n\t// TRES estados, no dos.\n\t//\n\t// `VaultManager.list()` devuelve `[]` tanto cuando el vault está VACÍO como\n\t// cuando está BLOQUEADO —`projectVault` es `null` hasta que alguien lo\n\t// desbloquea—, así que un usuario con doce secretos guardados leía «no hay\n\t// secretos guardados». Es «no puedo» disfrazado de «no hay», y en la ruta de\n\t// seguridad: le empujaría a volver a guardarlos o a dar el vault por roto.\n\tif (entradas.length === 0 && vault.exists() && !vault.isUnlocked) {\n\t\treturn \"vault://: el vault de este proyecto existe pero está BLOQUEADO. No es que no haya secretos: no se han podido leer. Desbloquéalo para listarlos.\";\n\t}\n\n\tif (!objetivo) {\n\t\tif (entradas.length === 0) return \"vault://: no hay secretos guardados en este proyecto.\";\n\t\treturn `${entradas.length} secreto(s) en el vault (solo nombre y clasificación, nunca el valor):\\n${entradas.map(formatoEntrada).join(\"\\n\")}`;\n\t}\n\n\tconst encontrada = entradas.find((e) => e.name === objetivo);\n\tif (!encontrada) return `vault://${objetivo}: no existe una entrada con ese nombre.`;\n\treturn `${formatoEntrada(encontrada)}\\n(el valor no se expone por esta vía: la política de aprobación deniega leer el vault)`;\n}\n"]}
1
+ {"version":3,"file":"boveda.js","sourceRoot":"","sources":["../../../src/core/urls-internas/boveda.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,SAAS,cAAc,CAAC,CAAiB;IACxC,MAAM,SAAS,GAAG,CAAC,CAAC,QAAQ,IAAI,eAAe,CAAC;IAChD,OAAO,KAAK,CAAC,CAAC,IAAI,KAAK,SAAS,MAAM,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AAClF,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAA0B,EAAE,MAAc;IACpE,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IAClF,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IAC/B,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAE9B,wBAAwB;IACxB,EAAE;IACF,4EAA4E;IAC5E,uEAAuE;IACvE,2EAA2E;IAC3E,6EAA6E;IAC7E,2EAA2E;IAC3E,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QAClE,OAAO,iJAAiJ,CAAC;IAC1J,CAAC;IAED,IAAI,CAAC,QAAQ,EAAE,CAAC;QACf,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,uDAAuD,CAAC;QAC1F,OAAO,GAAG,QAAQ,CAAC,MAAM,2EAA2E,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAC/I,CAAC;IAED,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IAC7D,IAAI,CAAC,UAAU;QAAE,OAAO,WAAW,QAAQ,yCAAyC,CAAC;IACrF,OAAO,GAAG,cAAc,CAAC,UAAU,CAAC,yFAAyF,CAAC;AAC/H,CAAC"}
@@ -1,19 +1,21 @@
1
1
  /**
2
- * Engancha las cuatro URLs internas (`memory://`, `vault://`, `rule://`,
3
- * `audit://`) en la tool `read`, SIN tocar `core/tools/read.ts`.
2
+ * Engancha las URLs internas en la tool `read`, SIN tocar `core/tools/read.ts`.
4
3
  *
5
- * `read.ts` es de upstream y el presupuesto de sincronización ya está al
6
- * tope (115/115, ver `scripts/sync-ada.sh --check`): un hunk más ahí hace
7
- * fallar la construcción. La tool en sí ya expone el hueco que hace falta —
8
- * es un `ToolDefinition` normal, y `agent-session.ts` construye el registro
9
- * de tools con `Map<string, ToolDefinition>` donde el nombre gana por
10
- * inserción — así que envolver la definición y reemplazarla con
4
+ * `read.ts` es de upstream y el presupuesto de sincronización está al límite
5
+ * (ver `scripts/sync-ada.sh --check`): un hunk más ahí hace fallar la
6
+ * construcción. La tool en sí ya expone el hueco que hace falta — es un
7
+ * `ToolDefinition` normal, y `agent-session.ts` construye el registro de
8
+ * tools con `Map<string, ToolDefinition>` donde el nombre gana por inserción
9
+ * — así que envolver la definición y reemplazarla con
11
10
  * `_baseToolDefinitions.set("read", …)` no es un rodeo, es como Ada ya
12
11
  * registra `memory_*`, `web_*` y el resto de sus capacidades en ese mismo
13
12
  * método.
14
13
  *
15
- * Delega TODO lo que no sea una URL interna al `read` original: rutas de
16
- * fichero, imágenes, `offset`/`limit`… nada de eso cambia.
14
+ * Antes eran 4 esquemas (memory/vault/rule/audit). Ahora son 8
15
+ * (patch/cleanse/lsp/share añadidos) vía `core/rutas/router.ts`. Este fichero
16
+ * es la fachada histórica: delega en el router canónico para no duplicar la
17
+ * lista ni los handlers. Delega TODO lo que no sea una URL interna al `read`
18
+ * original: rutas de fichero, imágenes, `offset`/`limit`… nada de eso cambia.
17
19
  */
18
20
  import type { LibroDeSesion } from "../audit/libro.ts";
19
21
  import type { ToolDefinition } from "../extensions/types.ts";
@@ -27,4 +29,6 @@ export interface DependenciasUrlsInternas {
27
29
  libro: () => LibroDeSesion;
28
30
  }
29
31
  export declare function envolverReadConUrlsInternas(base: ToolDefinition, deps: DependenciasUrlsInternas): ToolDefinition;
32
+ /** Alias para `edit`: mismo router, mismo contrato, distinta tool. */
33
+ export declare function envolverEditConUrlsInternas(base: ToolDefinition, deps: DependenciasUrlsInternas): ToolDefinition;
30
34
  //# sourceMappingURL=lector.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"lector.d.ts","sourceRoot":"","sources":["../../../src/core/urls-internas/lector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAmB,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAO9D,MAAM,WAAW,wBAAwB;IACxC,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;IAClC,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,gFAA+E;IAC/E,KAAK,EAAE,MAAM,aAAa,CAAC;CAC3B;AAoBD,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,wBAAwB,GAAG,cAAc,CAchH","sourcesContent":["/**\n * Engancha las cuatro URLs internas (`memory://`, `vault://`, `rule://`,\n * `audit://`) en la tool `read`, SIN tocar `core/tools/read.ts`.\n *\n * `read.ts` es de upstream y el presupuesto de sincronización ya está al\n * tope (115/115, ver `scripts/sync-ada.sh --check`): un hunk más ahí hace\n * fallar la construcción. La tool en sí ya expone el hueco que hace falta —\n * es un `ToolDefinition` normal, y `agent-session.ts` construye el registro\n * de tools con `Map<string, ToolDefinition>` donde el nombre gana por\n * inserción — así que envolver la definición y reemplazarla con\n * `_baseToolDefinitions.set(\"read\", …)` no es un rodeo, es como Ada ya\n * registra `memory_*`, `web_*` y el resto de sus capacidades en ese mismo\n * método.\n *\n * Delega TODO lo que no sea una URL interna al `read` original: rutas de\n * fichero, imágenes, `offset`/`limit`… nada de eso cambia.\n */\n\nimport type { LibroDeSesion } from \"../audit/libro.ts\";\nimport type { AgentToolResult, ToolDefinition } from \"../extensions/types.ts\";\nimport type { MemoryEngine } from \"../memory-engine/engine.ts\";\nimport type { VaultManager } from \"../memory-engine/vault.ts\";\nimport { leerAuditoria } from \"./auditoria.ts\";\nimport { leerBoveda } from \"./boveda.ts\";\nimport { leerMemoria } from \"./memoria.ts\";\nimport { errorEsquemaDesconocido, esEsquemaConocido, parseaUrlInterna } from \"./parse.ts\";\nimport { leerReglas } from \"./reglas.ts\";\n\nexport interface DependenciasUrlsInternas {\n\tmemoryEngine: MemoryEngine | null;\n\tvaultManager: VaultManager | null;\n\tcwd: string;\n\t/** Perezoso porque el libro también lo es (ver `RegistroDeSesion.libro()`). */\n\tlibro: () => LibroDeSesion;\n}\n\nasync function resuelveUrlInterna(esquema: string, resto: string, deps: DependenciasUrlsInternas): Promise<string> {\n\tswitch (esquema) {\n\t\tcase \"memory\":\n\t\t\treturn leerMemoria(deps.memoryEngine, resto);\n\t\tcase \"vault\":\n\t\t\treturn leerBoveda(deps.vaultManager, resto);\n\t\tcase \"rule\":\n\t\t\treturn leerReglas(deps.cwd, resto);\n\t\tcase \"audit\":\n\t\t\treturn leerAuditoria(deps.libro(), resto);\n\t\tdefault:\n\t\t\t// Inalcanzable si `esEsquemaConocido` ya filtró, pero deja el fallo\n\t\t\t// hablando en vez de romper con un `undefined` silencioso si alguien\n\t\t\t// añade un esquema a la lista y olvida este switch.\n\t\t\tthrow errorEsquemaDesconocido(esquema);\n\t}\n}\n\nexport function envolverReadConUrlsInternas(base: ToolDefinition, deps: DependenciasUrlsInternas): ToolDefinition {\n\treturn {\n\t\t...base,\n\t\tdescription: `${base.description} Además de rutas de fichero, acepta URLs internas: memory://<consulta>, vault://<nombre> (solo nombre y clasificación, nunca el valor), rule://<origen>, audit://<n>.`,\n\t\tasync execute(toolCallId, params, signal, onUpdate, ctx): Promise<AgentToolResult<unknown>> {\n\t\t\tconst ruta = (params as { path?: unknown }).path;\n\t\t\tconst url = typeof ruta === \"string\" ? parseaUrlInterna(ruta) : null;\n\t\t\tif (!url) return base.execute(toolCallId, params, signal, onUpdate, ctx);\n\n\t\t\tif (!esEsquemaConocido(url.esquema)) throw errorEsquemaDesconocido(url.esquema);\n\t\t\tconst texto = await resuelveUrlInterna(url.esquema, url.resto, deps);\n\t\t\treturn { content: [{ type: \"text\", text: texto }], details: undefined };\n\t\t},\n\t};\n}\n"]}
1
+ {"version":3,"file":"lector.d.ts","sourceRoot":"","sources":["../../../src/core/urls-internas/lector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAmB,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAG9D,MAAM,WAAW,wBAAwB;IACxC,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;IAClC,YAAY,EAAE,YAAY,GAAG,IAAI,CAAC;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,+EAA+E;IAC/E,KAAK,EAAE,MAAM,aAAa,CAAC;CAC3B;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,wBAAwB,GAAG,cAAc,CAwBhH;AAED,sEAAsE;AACtE,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,wBAAwB,GAAG,cAAc,CAqBhH"}
@@ -1,54 +1,68 @@
1
1
  /**
2
- * Engancha las cuatro URLs internas (`memory://`, `vault://`, `rule://`,
3
- * `audit://`) en la tool `read`, SIN tocar `core/tools/read.ts`.
2
+ * Engancha las URLs internas en la tool `read`, SIN tocar `core/tools/read.ts`.
4
3
  *
5
- * `read.ts` es de upstream y el presupuesto de sincronización ya está al
6
- * tope (115/115, ver `scripts/sync-ada.sh --check`): un hunk más ahí hace
7
- * fallar la construcción. La tool en sí ya expone el hueco que hace falta —
8
- * es un `ToolDefinition` normal, y `agent-session.ts` construye el registro
9
- * de tools con `Map<string, ToolDefinition>` donde el nombre gana por
10
- * inserción — así que envolver la definición y reemplazarla con
4
+ * `read.ts` es de upstream y el presupuesto de sincronización está al límite
5
+ * (ver `scripts/sync-ada.sh --check`): un hunk más ahí hace fallar la
6
+ * construcción. La tool en sí ya expone el hueco que hace falta — es un
7
+ * `ToolDefinition` normal, y `agent-session.ts` construye el registro de
8
+ * tools con `Map<string, ToolDefinition>` donde el nombre gana por inserción
9
+ * — así que envolver la definición y reemplazarla con
11
10
  * `_baseToolDefinitions.set("read", …)` no es un rodeo, es como Ada ya
12
11
  * registra `memory_*`, `web_*` y el resto de sus capacidades en ese mismo
13
12
  * método.
14
13
  *
15
- * Delega TODO lo que no sea una URL interna al `read` original: rutas de
16
- * fichero, imágenes, `offset`/`limit`… nada de eso cambia.
14
+ * Antes eran 4 esquemas (memory/vault/rule/audit). Ahora son 8
15
+ * (patch/cleanse/lsp/share añadidos) vía `core/rutas/router.ts`. Este fichero
16
+ * es la fachada histórica: delega en el router canónico para no duplicar la
17
+ * lista ni los handlers. Delega TODO lo que no sea una URL interna al `read`
18
+ * original: rutas de fichero, imágenes, `offset`/`limit`… nada de eso cambia.
17
19
  */
18
- import { leerAuditoria } from "./auditoria.js";
19
- import { leerBoveda } from "./boveda.js";
20
- import { leerMemoria } from "./memoria.js";
21
- import { errorEsquemaDesconocido, esEsquemaConocido, parseaUrlInterna } from "./parse.js";
22
- import { leerReglas } from "./reglas.js";
23
- async function resuelveUrlInterna(esquema, resto, deps) {
24
- switch (esquema) {
25
- case "memory":
26
- return leerMemoria(deps.memoryEngine, resto);
27
- case "vault":
28
- return leerBoveda(deps.vaultManager, resto);
29
- case "rule":
30
- return leerReglas(deps.cwd, resto);
31
- case "audit":
32
- return leerAuditoria(deps.libro(), resto);
33
- default:
34
- // Inalcanzable si `esEsquemaConocido` ya filtró, pero deja el fallo
35
- // hablando en vez de romper con un `undefined` silencioso si alguien
36
- // añade un esquema a la lista y olvida este switch.
37
- throw errorEsquemaDesconocido(esquema);
38
- }
39
- }
20
+ import { parseaUrlInterna, routerPorDefecto } from "../rutas/router.js";
40
21
  export function envolverReadConUrlsInternas(base, deps) {
22
+ const esquemas = routerPorDefecto
23
+ .listarEsquemas()
24
+ .map((e) => `${e}://`)
25
+ .join(", ");
26
+ return {
27
+ ...base,
28
+ description: `${base.description} Además de rutas de fichero, acepta URIs internas: ${esquemas}.`,
29
+ async execute(toolCallId, params, signal, onUpdate, ctx) {
30
+ const ruta = params.path;
31
+ const url = typeof ruta === "string" ? parseaUrlInterna(ruta) : null;
32
+ if (!url)
33
+ return base.execute(toolCallId, params, signal, onUpdate, ctx);
34
+ // El router es quien decide si es conocido y cómo despachar.
35
+ // Así un `registrar()` futuro se ve aquí sin tocar este fichero.
36
+ const texto = await routerPorDefecto.resolver(url.esquema, url.resto, {
37
+ memoryEngine: deps.memoryEngine,
38
+ vaultManager: deps.vaultManager,
39
+ cwd: deps.cwd,
40
+ libro: deps.libro,
41
+ });
42
+ return { content: [{ type: "text", text: texto }], details: undefined };
43
+ },
44
+ };
45
+ }
46
+ /** Alias para `edit`: mismo router, mismo contrato, distinta tool. */
47
+ export function envolverEditConUrlsInternas(base, deps) {
48
+ const esquemas = routerPorDefecto
49
+ .listarEsquemas()
50
+ .map((e) => `${e}://`)
51
+ .join(", ");
41
52
  return {
42
53
  ...base,
43
- description: `${base.description} Además de rutas de fichero, acepta URLs internas: memory://<consulta>, vault://<nombre> (solo nombre y clasificación, nunca el valor), rule://<origen>, audit://<n>.`,
54
+ description: `${base.description} Además de rutas de fichero, acepta URIs internas: ${esquemas}.`,
44
55
  async execute(toolCallId, params, signal, onUpdate, ctx) {
45
56
  const ruta = params.path;
46
57
  const url = typeof ruta === "string" ? parseaUrlInterna(ruta) : null;
47
58
  if (!url)
48
59
  return base.execute(toolCallId, params, signal, onUpdate, ctx);
49
- if (!esEsquemaConocido(url.esquema))
50
- throw errorEsquemaDesconocido(url.esquema);
51
- const texto = await resuelveUrlInterna(url.esquema, url.resto, deps);
60
+ const texto = await routerPorDefecto.resolver(url.esquema, url.resto, {
61
+ memoryEngine: deps.memoryEngine,
62
+ vaultManager: deps.vaultManager,
63
+ cwd: deps.cwd,
64
+ libro: deps.libro,
65
+ });
52
66
  return { content: [{ type: "text", text: texto }], details: undefined };
53
67
  },
54
68
  };
@@ -1 +1 @@
1
- {"version":3,"file":"lector.js","sourceRoot":"","sources":["../../../src/core/urls-internas/lector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAMH,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC1F,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAUzC,KAAK,UAAU,kBAAkB,CAAC,OAAe,EAAE,KAAa,EAAE,IAA8B,EAAmB;IAClH,QAAQ,OAAO,EAAE,CAAC;QACjB,KAAK,QAAQ;YACZ,OAAO,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QAC9C,KAAK,OAAO;YACX,OAAO,UAAU,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QAC7C,KAAK,MAAM;YACV,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACpC,KAAK,OAAO;YACX,OAAO,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC;QAC3C;YACC,qEAAoE;YACpE,qEAAqE;YACrE,qDAAoD;YACpD,MAAM,uBAAuB,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;AAAA,CACD;AAED,MAAM,UAAU,2BAA2B,CAAC,IAAoB,EAAE,IAA8B,EAAkB;IACjH,OAAO;QACN,GAAG,IAAI;QACP,WAAW,EAAE,GAAG,IAAI,CAAC,WAAW,yKAAuK;QACvM,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAqC;YAC3F,MAAM,IAAI,GAAI,MAA6B,CAAC,IAAI,CAAC;YACjD,MAAM,GAAG,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACrE,IAAI,CAAC,GAAG;gBAAE,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;YAEzE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC;gBAAE,MAAM,uBAAuB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAChF,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACrE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;QAAA,CACxE;KACD,CAAC;AAAA,CACF","sourcesContent":["/**\n * Engancha las cuatro URLs internas (`memory://`, `vault://`, `rule://`,\n * `audit://`) en la tool `read`, SIN tocar `core/tools/read.ts`.\n *\n * `read.ts` es de upstream y el presupuesto de sincronización ya está al\n * tope (115/115, ver `scripts/sync-ada.sh --check`): un hunk más ahí hace\n * fallar la construcción. La tool en sí ya expone el hueco que hace falta —\n * es un `ToolDefinition` normal, y `agent-session.ts` construye el registro\n * de tools con `Map<string, ToolDefinition>` donde el nombre gana por\n * inserción — así que envolver la definición y reemplazarla con\n * `_baseToolDefinitions.set(\"read\", …)` no es un rodeo, es como Ada ya\n * registra `memory_*`, `web_*` y el resto de sus capacidades en ese mismo\n * método.\n *\n * Delega TODO lo que no sea una URL interna al `read` original: rutas de\n * fichero, imágenes, `offset`/`limit`… nada de eso cambia.\n */\n\nimport type { LibroDeSesion } from \"../audit/libro.ts\";\nimport type { AgentToolResult, ToolDefinition } from \"../extensions/types.ts\";\nimport type { MemoryEngine } from \"../memory-engine/engine.ts\";\nimport type { VaultManager } from \"../memory-engine/vault.ts\";\nimport { leerAuditoria } from \"./auditoria.ts\";\nimport { leerBoveda } from \"./boveda.ts\";\nimport { leerMemoria } from \"./memoria.ts\";\nimport { errorEsquemaDesconocido, esEsquemaConocido, parseaUrlInterna } from \"./parse.ts\";\nimport { leerReglas } from \"./reglas.ts\";\n\nexport interface DependenciasUrlsInternas {\n\tmemoryEngine: MemoryEngine | null;\n\tvaultManager: VaultManager | null;\n\tcwd: string;\n\t/** Perezoso porque el libro también lo es (ver `RegistroDeSesion.libro()`). */\n\tlibro: () => LibroDeSesion;\n}\n\nasync function resuelveUrlInterna(esquema: string, resto: string, deps: DependenciasUrlsInternas): Promise<string> {\n\tswitch (esquema) {\n\t\tcase \"memory\":\n\t\t\treturn leerMemoria(deps.memoryEngine, resto);\n\t\tcase \"vault\":\n\t\t\treturn leerBoveda(deps.vaultManager, resto);\n\t\tcase \"rule\":\n\t\t\treturn leerReglas(deps.cwd, resto);\n\t\tcase \"audit\":\n\t\t\treturn leerAuditoria(deps.libro(), resto);\n\t\tdefault:\n\t\t\t// Inalcanzable si `esEsquemaConocido` ya filtró, pero deja el fallo\n\t\t\t// hablando en vez de romper con un `undefined` silencioso si alguien\n\t\t\t// añade un esquema a la lista y olvida este switch.\n\t\t\tthrow errorEsquemaDesconocido(esquema);\n\t}\n}\n\nexport function envolverReadConUrlsInternas(base: ToolDefinition, deps: DependenciasUrlsInternas): ToolDefinition {\n\treturn {\n\t\t...base,\n\t\tdescription: `${base.description} Además de rutas de fichero, acepta URLs internas: memory://<consulta>, vault://<nombre> (solo nombre y clasificación, nunca el valor), rule://<origen>, audit://<n>.`,\n\t\tasync execute(toolCallId, params, signal, onUpdate, ctx): Promise<AgentToolResult<unknown>> {\n\t\t\tconst ruta = (params as { path?: unknown }).path;\n\t\t\tconst url = typeof ruta === \"string\" ? parseaUrlInterna(ruta) : null;\n\t\t\tif (!url) return base.execute(toolCallId, params, signal, onUpdate, ctx);\n\n\t\t\tif (!esEsquemaConocido(url.esquema)) throw errorEsquemaDesconocido(url.esquema);\n\t\t\tconst texto = await resuelveUrlInterna(url.esquema, url.resto, deps);\n\t\t\treturn { content: [{ type: \"text\", text: texto }], details: undefined };\n\t\t},\n\t};\n}\n"]}
1
+ {"version":3,"file":"lector.js","sourceRoot":"","sources":["../../../src/core/urls-internas/lector.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"memoria.d.ts","sourceRoot":"","sources":["../../../src/core/urls-internas/memoria.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAI/D,wBAAgB,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAajF","sourcesContent":["/**\n * `memory://<consulta>` — busca en el motor de memoria (`memory-engine/engine.ts`).\n *\n * No es un tool nuevo: es el mismo `searchMemories` que ya usa `memory_search`\n * en `memory-engine/tools.ts`, con el mismo formato de salida. Reutilizarlo en\n * vez de reimplementar la búsqueda es justo el punto del hueco — un `read` en\n * vez de veinte tools.\n */\n\nimport type { MemoryEngine } from \"../memory-engine/engine.ts\";\n\nconst LIMITE = 10;\n\nexport function leerMemoria(engine: MemoryEngine | null, consulta: string): string {\n\tif (!engine) throw new Error(\"memory://: el motor de memoria no está disponible en esta sesión.\");\n\tconst texto = consulta.trim();\n\tif (!texto) throw new Error(\"memory://: falta la consulta. Usa memory://<lo que buscas>.\");\n\n\tconst hits = engine.searchMemories({ text: texto, limit: LIMITE });\n\tif (hits.length === 0) return `memory://${consulta}: sin resultados.`;\n\n\tconst lineas = hits.map((hit, i) => {\n\t\tconst alcance = hit.observation.project ? \"project\" : \"global/user\";\n\t\treturn `${i + 1}. [${hit.observation.type} · ${alcance}] ${hit.observation.text}`;\n\t});\n\treturn `${hits.length} resultado(s) para memory://${consulta}:\\n${lineas.join(\"\\n\")}`;\n}\n"]}
1
+ {"version":3,"file":"memoria.d.ts","sourceRoot":"","sources":["../../../src/core/urls-internas/memoria.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAI/D,wBAAgB,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAajF"}
@@ -1 +1 @@
1
- {"version":3,"file":"memoria.js","sourceRoot":"","sources":["../../../src/core/urls-internas/memoria.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,MAAM,MAAM,GAAG,EAAE,CAAC;AAElB,MAAM,UAAU,WAAW,CAAC,MAA2B,EAAE,QAAgB,EAAU;IAClF,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,qEAAmE,CAAC,CAAC;IAClG,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC9B,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;IAE3F,MAAM,IAAI,GAAG,MAAM,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IACnE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,YAAY,QAAQ,mBAAmB,CAAC;IAEtE,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC;QACpE,OAAO,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,WAAW,CAAC,IAAI,OAAM,OAAO,KAAK,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;IAAA,CAClF,CAAC,CAAC;IACH,OAAO,GAAG,IAAI,CAAC,MAAM,+BAA+B,QAAQ,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AAAA,CACtF","sourcesContent":["/**\n * `memory://<consulta>` — busca en el motor de memoria (`memory-engine/engine.ts`).\n *\n * No es un tool nuevo: es el mismo `searchMemories` que ya usa `memory_search`\n * en `memory-engine/tools.ts`, con el mismo formato de salida. Reutilizarlo en\n * vez de reimplementar la búsqueda es justo el punto del hueco — un `read` en\n * vez de veinte tools.\n */\n\nimport type { MemoryEngine } from \"../memory-engine/engine.ts\";\n\nconst LIMITE = 10;\n\nexport function leerMemoria(engine: MemoryEngine | null, consulta: string): string {\n\tif (!engine) throw new Error(\"memory://: el motor de memoria no está disponible en esta sesión.\");\n\tconst texto = consulta.trim();\n\tif (!texto) throw new Error(\"memory://: falta la consulta. Usa memory://<lo que buscas>.\");\n\n\tconst hits = engine.searchMemories({ text: texto, limit: LIMITE });\n\tif (hits.length === 0) return `memory://${consulta}: sin resultados.`;\n\n\tconst lineas = hits.map((hit, i) => {\n\t\tconst alcance = hit.observation.project ? \"project\" : \"global/user\";\n\t\treturn `${i + 1}. [${hit.observation.type} · ${alcance}] ${hit.observation.text}`;\n\t});\n\treturn `${hits.length} resultado(s) para memory://${consulta}:\\n${lineas.join(\"\\n\")}`;\n}\n"]}
1
+ {"version":3,"file":"memoria.js","sourceRoot":"","sources":["../../../src/core/urls-internas/memoria.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,MAAM,MAAM,GAAG,EAAE,CAAC;AAElB,MAAM,UAAU,WAAW,CAAC,MAA2B,EAAE,QAAgB;IACxE,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;IAClG,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC9B,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;IAE3F,MAAM,IAAI,GAAG,MAAM,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IACnE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,YAAY,QAAQ,mBAAmB,CAAC;IAEtE,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;QAClC,MAAM,OAAO,GAAG,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC;QACpE,OAAO,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,WAAW,CAAC,IAAI,MAAM,OAAO,KAAK,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;IACnF,CAAC,CAAC,CAAC;IACH,OAAO,GAAG,IAAI,CAAC,MAAM,+BAA+B,QAAQ,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AACvF,CAAC"}
@@ -11,18 +11,11 @@
11
11
  * La frontera es literal: cualquier texto con forma `algo://algo` entra en
12
12
  * este espacio de nombres y YA NO se intenta como ruta de fichero. Una ruta
13
13
  * real de disco no lleva `://`, así que no hay colisión que resolver.
14
+ *
15
+ * Este módulo es la fachada histórica (4 esquemas). El router canónico vive
16
+ * en `core/rutas/router.ts` con 8 esquemas y extensibilidad. Aquí
17
+ * re-exportamos desde allí para que ambos caminos vean el mismo origen de
18
+ * verdad y no haya dos listas que diverjan en silencio.
14
19
  */
15
- /** Los únicos cuatro esquemas que existen hoy. Cualquier otro es un error con lista. */
16
- export declare const ESQUEMAS_INTERNOS: readonly ["memory", "vault", "rule", "audit"];
17
- export type EsquemaInterno = (typeof ESQUEMAS_INTERNOS)[number];
18
- export interface UrlInterna {
19
- esquema: string;
20
- /** Todo lo que va después de `://`, sin decodificar: cada manejador decide qué hacer con él. */
21
- resto: string;
22
- }
23
- /** `null` cuando el texto no tiene forma de URL — no es "no reconocido", es "no aplica". */
24
- export declare function parseaUrlInterna(texto: string): UrlInterna | null;
25
- export declare function esEsquemaConocido(esquema: string): esquema is EsquemaInterno;
26
- /** El error que ve el modelo cuando pide un esquema que no existe. Siempre nombra los que sí. */
27
- export declare function errorEsquemaDesconocido(esquema: string): Error;
20
+ export { ESQUEMAS_INTERNOS, type EsquemaInterno, errorEsquemaDesconocido, esEsquemaConocido, parseaUrlInterna, type UrlInterna, } from "../rutas/router.ts";
28
21
  //# sourceMappingURL=parse.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../src/core/urls-internas/parse.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,yFAAwF;AACxF,eAAO,MAAM,iBAAiB,+CAAgD,CAAC;AAC/E,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEhE,MAAM,WAAW,UAAU;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,mGAAgG;IAChG,KAAK,EAAE,MAAM,CAAC;CACd;AAID,8FAA4F;AAC5F,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAIjE;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,IAAI,cAAc,CAE5E;AAED,kGAAiG;AACjG,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAI9D","sourcesContent":["/**\n * Parseo de URLs internas: `esquema://resto`.\n *\n * oh-my-pi (el competidor, ver `/Users/31017423z/auditoria-omp/oh-my-pi`)\n * tiene veinte esquemas y un parser que reconstruye `URL` a mano para\n * aguantar dos puntos dentro del host (`skill://plugin:name`). Nosotros no\n * tenemos esa forma — nuestro \"resto\" es una consulta, un nombre o un número,\n * nunca un host con puerto — así que un regex basta y no hace falta\n * replicar esa máquina.\n *\n * La frontera es literal: cualquier texto con forma `algo://algo` entra en\n * este espacio de nombres y YA NO se intenta como ruta de fichero. Una ruta\n * real de disco no lleva `://`, así que no hay colisión que resolver.\n */\n\n/** Los únicos cuatro esquemas que existen hoy. Cualquier otro es un error con lista. */\nexport const ESQUEMAS_INTERNOS = [\"memory\", \"vault\", \"rule\", \"audit\"] as const;\nexport type EsquemaInterno = (typeof ESQUEMAS_INTERNOS)[number];\n\nexport interface UrlInterna {\n\tesquema: string;\n\t/** Todo lo que va después de `://`, sin decodificar: cada manejador decide qué hacer con él. */\n\tresto: string;\n}\n\nconst PATRON = /^([a-zA-Z][a-zA-Z0-9+.-]*):\\/\\/(.*)$/s;\n\n/** `null` cuando el texto no tiene forma de URL — no es \"no reconocido\", es \"no aplica\". */\nexport function parseaUrlInterna(texto: string): UrlInterna | null {\n\tconst m = PATRON.exec(texto);\n\tif (!m) return null;\n\treturn { esquema: m[1].toLowerCase(), resto: m[2] };\n}\n\nexport function esEsquemaConocido(esquema: string): esquema is EsquemaInterno {\n\treturn (ESQUEMAS_INTERNOS as readonly string[]).includes(esquema);\n}\n\n/** El error que ve el modelo cuando pide un esquema que no existe. Siempre nombra los que sí. */\nexport function errorEsquemaDesconocido(esquema: string): Error {\n\treturn new Error(\n\t\t`Esquema interno desconocido: \"${esquema}://\". Esquemas disponibles: ${ESQUEMAS_INTERNOS.map((e) => `${e}://`).join(\", \")}.`,\n\t);\n}\n"]}
1
+ {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../src/core/urls-internas/parse.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EACN,iBAAiB,EACjB,KAAK,cAAc,EACnB,uBAAuB,EACvB,iBAAiB,EACjB,gBAAgB,EAChB,KAAK,UAAU,GACf,MAAM,oBAAoB,CAAC"}
@@ -11,22 +11,11 @@
11
11
  * La frontera es literal: cualquier texto con forma `algo://algo` entra en
12
12
  * este espacio de nombres y YA NO se intenta como ruta de fichero. Una ruta
13
13
  * real de disco no lleva `://`, así que no hay colisión que resolver.
14
+ *
15
+ * Este módulo es la fachada histórica (4 esquemas). El router canónico vive
16
+ * en `core/rutas/router.ts` con 8 esquemas y extensibilidad. Aquí
17
+ * re-exportamos desde allí para que ambos caminos vean el mismo origen de
18
+ * verdad y no haya dos listas que diverjan en silencio.
14
19
  */
15
- /** Los únicos cuatro esquemas que existen hoy. Cualquier otro es un error con lista. */
16
- export const ESQUEMAS_INTERNOS = ["memory", "vault", "rule", "audit"];
17
- const PATRON = /^([a-zA-Z][a-zA-Z0-9+.-]*):\/\/(.*)$/s;
18
- /** `null` cuando el texto no tiene forma de URL — no es "no reconocido", es "no aplica". */
19
- export function parseaUrlInterna(texto) {
20
- const m = PATRON.exec(texto);
21
- if (!m)
22
- return null;
23
- return { esquema: m[1].toLowerCase(), resto: m[2] };
24
- }
25
- export function esEsquemaConocido(esquema) {
26
- return ESQUEMAS_INTERNOS.includes(esquema);
27
- }
28
- /** El error que ve el modelo cuando pide un esquema que no existe. Siempre nombra los que sí. */
29
- export function errorEsquemaDesconocido(esquema) {
30
- return new Error(`Esquema interno desconocido: "${esquema}://". Esquemas disponibles: ${ESQUEMAS_INTERNOS.map((e) => `${e}://`).join(", ")}.`);
31
- }
20
+ export { ESQUEMAS_INTERNOS, errorEsquemaDesconocido, esEsquemaConocido, parseaUrlInterna, } from "../rutas/router.js";
32
21
  //# sourceMappingURL=parse.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../src/core/urls-internas/parse.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,yFAAwF;AACxF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAU,CAAC;AAS/E,MAAM,MAAM,GAAG,uCAAuC,CAAC;AAEvD,8FAA4F;AAC5F,MAAM,UAAU,gBAAgB,CAAC,KAAa,EAAqB;IAClE,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpB,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAAA,CACpD;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAe,EAA6B;IAC7E,OAAQ,iBAAuC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAAA,CAClE;AAED,kGAAiG;AACjG,MAAM,UAAU,uBAAuB,CAAC,OAAe,EAAS;IAC/D,OAAO,IAAI,KAAK,CACf,iCAAiC,OAAO,+BAA+B,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAC5H,CAAC;AAAA,CACF","sourcesContent":["/**\n * Parseo de URLs internas: `esquema://resto`.\n *\n * oh-my-pi (el competidor, ver `/Users/31017423z/auditoria-omp/oh-my-pi`)\n * tiene veinte esquemas y un parser que reconstruye `URL` a mano para\n * aguantar dos puntos dentro del host (`skill://plugin:name`). Nosotros no\n * tenemos esa forma — nuestro \"resto\" es una consulta, un nombre o un número,\n * nunca un host con puerto — así que un regex basta y no hace falta\n * replicar esa máquina.\n *\n * La frontera es literal: cualquier texto con forma `algo://algo` entra en\n * este espacio de nombres y YA NO se intenta como ruta de fichero. Una ruta\n * real de disco no lleva `://`, así que no hay colisión que resolver.\n */\n\n/** Los únicos cuatro esquemas que existen hoy. Cualquier otro es un error con lista. */\nexport const ESQUEMAS_INTERNOS = [\"memory\", \"vault\", \"rule\", \"audit\"] as const;\nexport type EsquemaInterno = (typeof ESQUEMAS_INTERNOS)[number];\n\nexport interface UrlInterna {\n\tesquema: string;\n\t/** Todo lo que va después de `://`, sin decodificar: cada manejador decide qué hacer con él. */\n\tresto: string;\n}\n\nconst PATRON = /^([a-zA-Z][a-zA-Z0-9+.-]*):\\/\\/(.*)$/s;\n\n/** `null` cuando el texto no tiene forma de URL — no es \"no reconocido\", es \"no aplica\". */\nexport function parseaUrlInterna(texto: string): UrlInterna | null {\n\tconst m = PATRON.exec(texto);\n\tif (!m) return null;\n\treturn { esquema: m[1].toLowerCase(), resto: m[2] };\n}\n\nexport function esEsquemaConocido(esquema: string): esquema is EsquemaInterno {\n\treturn (ESQUEMAS_INTERNOS as readonly string[]).includes(esquema);\n}\n\n/** El error que ve el modelo cuando pide un esquema que no existe. Siempre nombra los que sí. */\nexport function errorEsquemaDesconocido(esquema: string): Error {\n\treturn new Error(\n\t\t`Esquema interno desconocido: \"${esquema}://\". Esquemas disponibles: ${ESQUEMAS_INTERNOS.map((e) => `${e}://`).join(\", \")}.`,\n\t);\n}\n"]}
1
+ {"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../src/core/urls-internas/parse.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EACN,iBAAiB,EAEjB,uBAAuB,EACvB,iBAAiB,EACjB,gBAAgB,GAEhB,MAAM,oBAAoB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"reglas.d.ts","sourceRoot":"","sources":["../../../src/core/urls-internas/reglas.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAiB9D","sourcesContent":["/**\n * `rule://<origen>` — las reglas que `descubrimiento/reglas.ts` ya encuentra\n * (`.cursorrules`, `.clinerules`, `.windsurfrules`, GEMINI.md, Copilot…).\n *\n * `descubrirReglas` ya hace la deduplicación por contenido y el tope de\n * tamaño; aquí solo se filtra por origen y se recorta el texto final para no\n * volcar un fichero de 32KB entero en una respuesta de `read`.\n */\n\nimport { descubrirReglas } from \"../descubrimiento/reglas.ts\";\nimport { truncateHead } from \"../tools/truncate.ts\";\n\nconst TOPE_SALIDA = 8 * 1024;\n\nexport function leerReglas(cwd: string, origen: string): string {\n\tconst { reglas, omitidas } = descubrirReglas(cwd);\n\tconst filtro = origen.trim().toLowerCase();\n\tconst encontradas = filtro ? reglas.filter((r) => r.origen.toLowerCase().includes(filtro)) : reglas;\n\n\tif (reglas.length === 0) return \"rule://: no se ha descubierto ninguna regla en este proyecto.\";\n\tif (encontradas.length === 0) {\n\t\tconst origenes = [...new Set(reglas.map((r) => r.origen))].join(\", \");\n\t\treturn `rule://${origen}: ninguna regla descubierta de ese origen. Orígenes presentes: ${origenes}.`;\n\t}\n\n\tconst cuerpo = encontradas.map((r) => `── ${r.ruta} (${r.origen}) ──\\n${r.contenido}`).join(\"\\n\\n\");\n\tconst recortado = truncateHead(cuerpo, { maxBytes: TOPE_SALIDA });\n\tlet salida = `${encontradas.length} regla(s) de ${filtro ? origen : \"todos los orígenes\"}:\\n${recortado.content}`;\n\tif (recortado.truncated) salida += \"\\n\\n[recortado; pide un origen más concreto para ver el resto]\";\n\tif (omitidas.length > 0) salida += `\\n\\nOmitidas: ${omitidas.map((o) => `${o.ruta} (${o.motivo})`).join(\"; \")}`;\n\treturn salida;\n}\n"]}
1
+ {"version":3,"file":"reglas.d.ts","sourceRoot":"","sources":["../../../src/core/urls-internas/reglas.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAiB9D"}
@@ -1 +1 @@
1
- {"version":3,"file":"reglas.js","sourceRoot":"","sources":["../../../src/core/urls-internas/reglas.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC;AAE7B,MAAM,UAAU,UAAU,CAAC,GAAW,EAAE,MAAc,EAAU;IAC/D,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3C,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAEpG,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,+DAA+D,CAAC;IAChG,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtE,OAAO,UAAU,MAAM,mEAAkE,QAAQ,GAAG,CAAC;IACtG,CAAC;IAED,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAM,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,aAAS,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpG,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC;IAClE,IAAI,MAAM,GAAG,GAAG,WAAW,CAAC,MAAM,gBAAgB,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,qBAAoB,MAAM,SAAS,CAAC,OAAO,EAAE,CAAC;IAClH,IAAI,SAAS,CAAC,SAAS;QAAE,MAAM,IAAI,iEAAgE,CAAC;IACpG,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,IAAI,iBAAiB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAChH,OAAO,MAAM,CAAC;AAAA,CACd","sourcesContent":["/**\n * `rule://<origen>` — las reglas que `descubrimiento/reglas.ts` ya encuentra\n * (`.cursorrules`, `.clinerules`, `.windsurfrules`, GEMINI.md, Copilot…).\n *\n * `descubrirReglas` ya hace la deduplicación por contenido y el tope de\n * tamaño; aquí solo se filtra por origen y se recorta el texto final para no\n * volcar un fichero de 32KB entero en una respuesta de `read`.\n */\n\nimport { descubrirReglas } from \"../descubrimiento/reglas.ts\";\nimport { truncateHead } from \"../tools/truncate.ts\";\n\nconst TOPE_SALIDA = 8 * 1024;\n\nexport function leerReglas(cwd: string, origen: string): string {\n\tconst { reglas, omitidas } = descubrirReglas(cwd);\n\tconst filtro = origen.trim().toLowerCase();\n\tconst encontradas = filtro ? reglas.filter((r) => r.origen.toLowerCase().includes(filtro)) : reglas;\n\n\tif (reglas.length === 0) return \"rule://: no se ha descubierto ninguna regla en este proyecto.\";\n\tif (encontradas.length === 0) {\n\t\tconst origenes = [...new Set(reglas.map((r) => r.origen))].join(\", \");\n\t\treturn `rule://${origen}: ninguna regla descubierta de ese origen. Orígenes presentes: ${origenes}.`;\n\t}\n\n\tconst cuerpo = encontradas.map((r) => `── ${r.ruta} (${r.origen}) ──\\n${r.contenido}`).join(\"\\n\\n\");\n\tconst recortado = truncateHead(cuerpo, { maxBytes: TOPE_SALIDA });\n\tlet salida = `${encontradas.length} regla(s) de ${filtro ? origen : \"todos los orígenes\"}:\\n${recortado.content}`;\n\tif (recortado.truncated) salida += \"\\n\\n[recortado; pide un origen más concreto para ver el resto]\";\n\tif (omitidas.length > 0) salida += `\\n\\nOmitidas: ${omitidas.map((o) => `${o.ruta} (${o.motivo})`).join(\"; \")}`;\n\treturn salida;\n}\n"]}
1
+ {"version":3,"file":"reglas.js","sourceRoot":"","sources":["../../../src/core/urls-internas/reglas.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,MAAM,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC;AAE7B,MAAM,UAAU,UAAU,CAAC,GAAW,EAAE,MAAc;IACrD,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3C,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAEpG,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,+DAA+D,CAAC;IAChG,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtE,OAAO,UAAU,MAAM,kEAAkE,QAAQ,GAAG,CAAC;IACtG,CAAC;IAED,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,SAAS,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACpG,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC;IAClE,IAAI,MAAM,GAAG,GAAG,WAAW,CAAC,MAAM,gBAAgB,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,oBAAoB,MAAM,SAAS,CAAC,OAAO,EAAE,CAAC;IAClH,IAAI,SAAS,CAAC,SAAS;QAAE,MAAM,IAAI,gEAAgE,CAAC;IACpG,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,IAAI,iBAAiB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAChH,OAAO,MAAM,CAAC;AACf,CAAC"}
@@ -46,6 +46,7 @@ export interface Resumen extends Totales {
46
46
  porDia: Record<string, Totales>;
47
47
  porProyecto: Record<string, Totales>;
48
48
  }
49
+ export declare function vacio(): Totales;
49
50
  export declare function esRutaTemporal(ruta: string): boolean;
50
51
  export interface OpcionesResumen {
51
52
  /** Solo mensajes a partir de esta fecha (ISO). */
@@ -1 +1 @@
1
- {"version":3,"file":"aggregate.d.ts","sourceRoot":"","sources":["../../../src/core/usage/aggregate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,WAAW,QAAQ;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC1B;AAED,MAAM,WAAW,WAAW;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE;QACT,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,QAAQ,CAAC;KACjB,CAAC;CACF;AAED,MAAM,WAAW,OAAO;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,OAAQ,SAAQ,OAAO;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAoCD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,MAAM,WAAW,eAAe;IAC/B,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yEAAyE;IACzE,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CACtB,QAAQ,EAAE,KAAK,CAAC;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,WAAW,EAAE,CAAA;CAAE,CAAC,EACxD,QAAQ,GAAE,eAAoB,GAC5B,OAAO,CAmCT;AAED,8EAA8E;AAC9E,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAEjF","sourcesContent":["/**\n * Agrega el consumo real a partir de los JSONL de sesión.\n *\n * El dato ya estaba ahí —cada mensaje del asistente guarda `usage` con tokens y\n * coste—, solo que nadie lo leía. Esto no estima nada: suma lo que el proveedor\n * cobró.\n *\n * Los tokens de caché se cuentan APARTE. Meterlos en el total haría que un día\n * con mucha caché pareciera carísimo cuando es justo lo contrario: la caché es\n * lo que abarata: en DeepSeek un acierto cuesta ~1/31 de un fallo. Un panel que\n * los mezcla enseña un número que no se corresponde con la factura.\n */\n\nexport interface UsoBruto {\n\tinput?: number;\n\toutput?: number;\n\tcacheRead?: number;\n\tcacheWrite?: number;\n\tcost?: { total?: number };\n}\n\nexport interface LineaSesion {\n\ttype?: string;\n\ttimestamp?: string;\n\tcwd?: string;\n\tmessage?: {\n\t\trole?: string;\n\t\tprovider?: string;\n\t\tmodel?: string;\n\t\tusage?: UsoBruto;\n\t};\n}\n\nexport interface Totales {\n\tmensajes: number;\n\tentrada: number;\n\tsalida: number;\n\tcacheRead: number;\n\tcacheWrite: number;\n\tcoste: number;\n}\n\nexport interface Resumen extends Totales {\n\tsesiones: number;\n\t/** Sesiones descartadas por vivir en un directorio temporal. */\n\tsesionesTemporales: number;\n\tporModelo: Record<string, Totales>;\n\tporDia: Record<string, Totales>;\n\tporProyecto: Record<string, Totales>;\n}\n\nfunction vacio(): Totales {\n\treturn { mensajes: 0, entrada: 0, salida: 0, cacheRead: 0, cacheWrite: 0, coste: 0 };\n}\n\nfunction acumular(destino: Totales, uso: UsoBruto): void {\n\tdestino.mensajes += 1;\n\tdestino.entrada += uso.input ?? 0;\n\tdestino.salida += uso.output ?? 0;\n\tdestino.cacheRead += uso.cacheRead ?? 0;\n\tdestino.cacheWrite += uso.cacheWrite ?? 0;\n\tdestino.coste += uso.cost?.total ?? 0;\n}\n\nfunction enCubo(mapa: Record<string, Totales>, clave: string): Totales {\n\tconst actual = mapa[clave];\n\tif (actual) return actual;\n\tconst nuevo = vacio();\n\tmapa[clave] = nuevo;\n\treturn nuevo;\n}\n\n/**\n * Directorios que nunca son un proyecto del usuario.\n *\n * Las suites de tests crean sus sesiones en temporales del sistema y acaban en\n * el mismo almacén que las reales: sin filtrarlas, el desglose por proyecto son\n * 989 rutas `/var/folders/kl/5b56hptn6…` que ya ni existen, y el consumo real\n * queda enterrado debajo.\n *\n * Estrecho a propósito: esconder un proyecto real sería peor que enseñar una\n * ruta rara, y por eso hay `--all`.\n */\nconst RUTAS_TEMPORALES = [/^\\/var\\/folders\\//, /^\\/private\\/var\\/folders\\//, /^\\/tmp\\//, /[\\\\/]Temp[\\\\/]/i];\n\nexport function esRutaTemporal(ruta: string): boolean {\n\treturn RUTAS_TEMPORALES.some((patron) => patron.test(ruta));\n}\n\nexport interface OpcionesResumen {\n\t/** Solo mensajes a partir de esta fecha (ISO). */\n\tdesde?: string;\n\t/** Incluir las sesiones de directorios temporales (las de los tests). */\n\tincluirTemporales?: boolean;\n}\n\n/**\n * Resume una o varias sesiones.\n *\n * Una sesión cuenta solo si aportó consumo: los JSONL abandonados sin una sola\n * respuesta inflarían el recuento de sesiones sin corresponder a trabajo.\n */\nexport function resumir(\n\tsesiones: Array<{ cwd?: string; lineas: LineaSesion[] }>,\n\topciones: OpcionesResumen = {},\n): Resumen {\n\tconst resumen: Resumen = {\n\t\t...vacio(),\n\t\tsesiones: 0,\n\t\tsesionesTemporales: 0,\n\t\tporModelo: {},\n\t\tporDia: {},\n\t\tporProyecto: {},\n\t};\n\n\tfor (const sesion of sesiones) {\n\t\tlet aporto = false;\n\t\t// El `cwd` viene en la cabecera; si falta, se etiqueta explícitamente en\n\t\t// vez de repartirlo entre los demás proyectos.\n\t\tconst proyecto = sesion.cwd ?? sesion.lineas.find((l) => l.type === \"session\")?.cwd ?? \"(desconocido)\";\n\t\tif (!opciones.incluirTemporales && esRutaTemporal(proyecto)) {\n\t\t\tresumen.sesionesTemporales += 1;\n\t\t\tcontinue;\n\t\t}\n\n\t\tfor (const linea of sesion.lineas) {\n\t\t\tconst uso = linea.message?.usage;\n\t\t\tif (!uso || linea.message?.role !== \"assistant\") continue;\n\t\t\tif (opciones.desde && linea.timestamp && linea.timestamp < opciones.desde) continue;\n\n\t\t\taporto = true;\n\t\t\tacumular(resumen, uso);\n\t\t\tacumular(enCubo(resumen.porModelo, `${linea.message.provider ?? \"?\"}/${linea.message.model ?? \"?\"}`), uso);\n\t\t\tacumular(enCubo(resumen.porProyecto, proyecto), uso);\n\t\t\tif (linea.timestamp) acumular(enCubo(resumen.porDia, linea.timestamp.slice(0, 10)), uso);\n\t\t}\n\t\tif (aporto) resumen.sesiones += 1;\n\t}\n\n\treturn resumen;\n}\n\n/** Ordena un desglose de mayor a menor coste, que es el orden que importa. */\nexport function porCoste(cubos: Record<string, Totales>): Array<[string, Totales]> {\n\treturn Object.entries(cubos).sort((a, b) => b[1].coste - a[1].coste || b[1].salida - a[1].salida);\n}\n"]}
1
+ {"version":3,"file":"aggregate.d.ts","sourceRoot":"","sources":["../../../src/core/usage/aggregate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,WAAW,QAAQ;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC1B;AAED,MAAM,WAAW,WAAW;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE;QACT,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,QAAQ,CAAC;KACjB,CAAC;CACF;AAED,MAAM,WAAW,OAAO;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,OAAQ,SAAQ,OAAO;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,kBAAkB,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAED,wBAAgB,KAAK,IAAI,OAAO,CAE/B;AAgCD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,MAAM,WAAW,eAAe;IAC/B,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yEAAyE;IACzE,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CACtB,QAAQ,EAAE,KAAK,CAAC;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,WAAW,EAAE,CAAA;CAAE,CAAC,EACxD,QAAQ,GAAE,eAAoB,GAC5B,OAAO,CAmCT;AAED,8EAA8E;AAC9E,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAEjF"}
@@ -10,7 +10,7 @@
10
10
  * lo que abarata: en DeepSeek un acierto cuesta ~1/31 de un fallo. Un panel que
11
11
  * los mezcla enseña un número que no se corresponde con la factura.
12
12
  */
13
- function vacio() {
13
+ export function vacio() {
14
14
  return { mensajes: 0, entrada: 0, salida: 0, cacheRead: 0, cacheWrite: 0, coste: 0 };
15
15
  }
16
16
  function acumular(destino, uso) {
@@ -1 +1 @@
1
- {"version":3,"file":"aggregate.js","sourceRoot":"","sources":["../../../src/core/usage/aggregate.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Agrega el consumo real a partir de los JSONL de sesión.\n *\n * El dato ya estaba ahí —cada mensaje del asistente guarda `usage` con tokens y\n * coste—, solo que nadie lo leía. Esto no estima nada: suma lo que el proveedor\n * cobró.\n *\n * Los tokens de caché se cuentan APARTE. Meterlos en el total haría que un día\n * con mucha caché pareciera carísimo cuando es justo lo contrario: la caché es\n * lo que abarata: en DeepSeek un acierto cuesta ~1/31 de un fallo. Un panel que\n * los mezcla enseña un número que no se corresponde con la factura.\n */\n\nexport interface UsoBruto {\n\tinput?: number;\n\toutput?: number;\n\tcacheRead?: number;\n\tcacheWrite?: number;\n\tcost?: { total?: number };\n}\n\nexport interface LineaSesion {\n\ttype?: string;\n\ttimestamp?: string;\n\tcwd?: string;\n\tmessage?: {\n\t\trole?: string;\n\t\tprovider?: string;\n\t\tmodel?: string;\n\t\tusage?: UsoBruto;\n\t};\n}\n\nexport interface Totales {\n\tmensajes: number;\n\tentrada: number;\n\tsalida: number;\n\tcacheRead: number;\n\tcacheWrite: number;\n\tcoste: number;\n}\n\nexport interface Resumen extends Totales {\n\tsesiones: number;\n\t/** Sesiones descartadas por vivir en un directorio temporal. */\n\tsesionesTemporales: number;\n\tporModelo: Record<string, Totales>;\n\tporDia: Record<string, Totales>;\n\tporProyecto: Record<string, Totales>;\n}\n\nfunction vacio(): Totales {\n\treturn { mensajes: 0, entrada: 0, salida: 0, cacheRead: 0, cacheWrite: 0, coste: 0 };\n}\n\nfunction acumular(destino: Totales, uso: UsoBruto): void {\n\tdestino.mensajes += 1;\n\tdestino.entrada += uso.input ?? 0;\n\tdestino.salida += uso.output ?? 0;\n\tdestino.cacheRead += uso.cacheRead ?? 0;\n\tdestino.cacheWrite += uso.cacheWrite ?? 0;\n\tdestino.coste += uso.cost?.total ?? 0;\n}\n\nfunction enCubo(mapa: Record<string, Totales>, clave: string): Totales {\n\tconst actual = mapa[clave];\n\tif (actual) return actual;\n\tconst nuevo = vacio();\n\tmapa[clave] = nuevo;\n\treturn nuevo;\n}\n\n/**\n * Directorios que nunca son un proyecto del usuario.\n *\n * Las suites de tests crean sus sesiones en temporales del sistema y acaban en\n * el mismo almacén que las reales: sin filtrarlas, el desglose por proyecto son\n * 989 rutas `/var/folders/kl/5b56hptn6…` que ya ni existen, y el consumo real\n * queda enterrado debajo.\n *\n * Estrecho a propósito: esconder un proyecto real sería peor que enseñar una\n * ruta rara, y por eso hay `--all`.\n */\nconst RUTAS_TEMPORALES = [/^\\/var\\/folders\\//, /^\\/private\\/var\\/folders\\//, /^\\/tmp\\//, /[\\\\/]Temp[\\\\/]/i];\n\nexport function esRutaTemporal(ruta: string): boolean {\n\treturn RUTAS_TEMPORALES.some((patron) => patron.test(ruta));\n}\n\nexport interface OpcionesResumen {\n\t/** Solo mensajes a partir de esta fecha (ISO). */\n\tdesde?: string;\n\t/** Incluir las sesiones de directorios temporales (las de los tests). */\n\tincluirTemporales?: boolean;\n}\n\n/**\n * Resume una o varias sesiones.\n *\n * Una sesión cuenta solo si aportó consumo: los JSONL abandonados sin una sola\n * respuesta inflarían el recuento de sesiones sin corresponder a trabajo.\n */\nexport function resumir(\n\tsesiones: Array<{ cwd?: string; lineas: LineaSesion[] }>,\n\topciones: OpcionesResumen = {},\n): Resumen {\n\tconst resumen: Resumen = {\n\t\t...vacio(),\n\t\tsesiones: 0,\n\t\tsesionesTemporales: 0,\n\t\tporModelo: {},\n\t\tporDia: {},\n\t\tporProyecto: {},\n\t};\n\n\tfor (const sesion of sesiones) {\n\t\tlet aporto = false;\n\t\t// El `cwd` viene en la cabecera; si falta, se etiqueta explícitamente en\n\t\t// vez de repartirlo entre los demás proyectos.\n\t\tconst proyecto = sesion.cwd ?? sesion.lineas.find((l) => l.type === \"session\")?.cwd ?? \"(desconocido)\";\n\t\tif (!opciones.incluirTemporales && esRutaTemporal(proyecto)) {\n\t\t\tresumen.sesionesTemporales += 1;\n\t\t\tcontinue;\n\t\t}\n\n\t\tfor (const linea of sesion.lineas) {\n\t\t\tconst uso = linea.message?.usage;\n\t\t\tif (!uso || linea.message?.role !== \"assistant\") continue;\n\t\t\tif (opciones.desde && linea.timestamp && linea.timestamp < opciones.desde) continue;\n\n\t\t\taporto = true;\n\t\t\tacumular(resumen, uso);\n\t\t\tacumular(enCubo(resumen.porModelo, `${linea.message.provider ?? \"?\"}/${linea.message.model ?? \"?\"}`), uso);\n\t\t\tacumular(enCubo(resumen.porProyecto, proyecto), uso);\n\t\t\tif (linea.timestamp) acumular(enCubo(resumen.porDia, linea.timestamp.slice(0, 10)), uso);\n\t\t}\n\t\tif (aporto) resumen.sesiones += 1;\n\t}\n\n\treturn resumen;\n}\n\n/** Ordena un desglose de mayor a menor coste, que es el orden que importa. */\nexport function porCoste(cubos: Record<string, Totales>): Array<[string, Totales]> {\n\treturn Object.entries(cubos).sort((a, b) => b[1].coste - a[1].coste || b[1].salida - a[1].salida);\n}\n"]}
1
+ {"version":3,"file":"aggregate.js","sourceRoot":"","sources":["../../../src/core/usage/aggregate.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../../../src/core/usage/cuota/anthropic.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,cAAc,EAAyC,MAAM,YAAY,CAAC;AA0BxF,eAAO,MAAM,kBAAkB,EAAE,cA0ChC,CAAC","sourcesContent":["/**\n * Cuota de Anthropic — solo publica límites la sesión OAuth de Claude\n * (claude.ai/Claude Code); la clave de API de la consola es pago por token,\n * sin techo que consultar.\n *\n * Mismo endpoint que usa Claude Code para pintar \"Usage limit\" en su CLI.\n */\n\nimport { type ConsultorCuota, ErrorConsultaCuota, type VentanaCuota } from \"./tipos.ts\";\n\nconst ENDPOINT = \"https://api.anthropic.com/api/oauth/usage\";\n\ninterface CuboBruto {\n\tutilization?: number;\n\tresets_at?: string | null;\n}\n\ninterface RespuestaAnthropic {\n\tfive_hour?: CuboBruto | null;\n\tseven_day?: CuboBruto | null;\n}\n\nfunction aVentana(etiqueta: string, cubo: CuboBruto | null | undefined): VentanaCuota | undefined {\n\tif (!cubo || typeof cubo.utilization !== \"number\") return undefined;\n\tconst seReinicia = cubo.resets_at ? Date.parse(cubo.resets_at) : Number.NaN;\n\treturn {\n\t\tetiqueta,\n\t\tusado: Math.min(Math.max(cubo.utilization, 0), 100),\n\t\tlimite: 100,\n\t\tseReinicia: Number.isFinite(seReinicia) ? seReinicia : null,\n\t\tunidad: \"porcentaje\",\n\t};\n}\n\nexport const consultorAnthropic: ConsultorCuota = {\n\tid: \"anthropic\",\n\tsoporta: (credencial) => credencial.type === \"oauth\",\n\tasync consultar({ credencial, fetch: fetchImpl = fetch, señal }) {\n\t\tif (credencial.type !== \"oauth\") return null;\n\n\t\tlet respuesta: Response;\n\t\ttry {\n\t\t\trespuesta = await fetchImpl(ENDPOINT, {\n\t\t\t\theaders: {\n\t\t\t\t\taccept: \"application/json\",\n\t\t\t\t\t\"anthropic-beta\": \"oauth-2025-04-20\",\n\t\t\t\t\t\"content-type\": \"application/json\",\n\t\t\t\t\tauthorization: `Bearer ${credencial.access}`,\n\t\t\t\t},\n\t\t\t\tsignal: señal,\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tthrow new ErrorConsultaCuota(\"anthropic\", `no se pudo contactar con Anthropic: ${String(error)}`, {\n\t\t\t\tcause: error,\n\t\t\t});\n\t\t}\n\t\tif (!respuesta.ok) {\n\t\t\tthrow new ErrorConsultaCuota(\"anthropic\", `Anthropic respondió ${respuesta.status} ${respuesta.statusText}`);\n\t\t}\n\n\t\tlet datos: RespuestaAnthropic;\n\t\ttry {\n\t\t\tdatos = (await respuesta.json()) as RespuestaAnthropic;\n\t\t} catch (error) {\n\t\t\tthrow new ErrorConsultaCuota(\"anthropic\", `la respuesta de Anthropic no es JSON válido: ${String(error)}`, {\n\t\t\t\tcause: error,\n\t\t\t});\n\t\t}\n\n\t\tconst ventanas = [aVentana(\"5 horas\", datos.five_hour), aVentana(\"7 días\", datos.seven_day)].filter(\n\t\t\t(v): v is VentanaCuota => v !== undefined,\n\t\t);\n\t\t// Cero ventanas reconocibles no es \"cero cuota usada\": es que la cuenta\n\t\t// no publicó ningún cubo, y eso hay que enseñarlo como \"no publica\".\n\t\treturn ventanas.length > 0 ? ventanas : null;\n\t},\n};\n"]}
1
+ {"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../../../src/core/usage/cuota/anthropic.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,KAAK,cAAc,EAAyC,MAAM,YAAY,CAAC;AA0BxF,eAAO,MAAM,kBAAkB,EAAE,cA0ChC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../../../src/core/usage/cuota/anthropic.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAuB,kBAAkB,EAAqB,MAAM,YAAY,CAAC;AAExF,MAAM,QAAQ,GAAG,2CAA2C,CAAC;AAY7D,SAAS,QAAQ,CAAC,QAAgB,EAAE,IAAkC,EAA4B;IACjG,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IACpE,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;IAC5E,OAAO;QACN,QAAQ;QACR,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC;QACnD,MAAM,EAAE,GAAG;QACX,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI;QAC3D,MAAM,EAAE,YAAY;KACpB,CAAC;AAAA,CACF;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAmB;IACjD,EAAE,EAAE,WAAW;IACf,OAAO,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,KAAK,OAAO;IACpD,KAAK,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,GAAG,KAAK,EAAE,MAAK,EAAE,EAAE;QAChE,IAAI,UAAU,CAAC,IAAI,KAAK,OAAO;YAAE,OAAO,IAAI,CAAC;QAE7C,IAAI,SAAmB,CAAC;QACxB,IAAI,CAAC;YACJ,SAAS,GAAG,MAAM,SAAS,CAAC,QAAQ,EAAE;gBACrC,OAAO,EAAE;oBACR,MAAM,EAAE,kBAAkB;oBAC1B,gBAAgB,EAAE,kBAAkB;oBACpC,cAAc,EAAE,kBAAkB;oBAClC,aAAa,EAAE,UAAU,UAAU,CAAC,MAAM,EAAE;iBAC5C;gBACD,MAAM,EAAE,MAAK;aACb,CAAC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,IAAI,kBAAkB,CAAC,WAAW,EAAE,uCAAuC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE;gBACjG,KAAK,EAAE,KAAK;aACZ,CAAC,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;YACnB,MAAM,IAAI,kBAAkB,CAAC,WAAW,EAAE,wBAAuB,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;QAC9G,CAAC;QAED,IAAI,KAAyB,CAAC;QAC9B,IAAI,CAAC;YACJ,KAAK,GAAG,CAAC,MAAM,SAAS,CAAC,IAAI,EAAE,CAAuB,CAAC;QACxD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,IAAI,kBAAkB,CAAC,WAAW,EAAE,iDAAgD,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE;gBAC1G,KAAK,EAAE,KAAK;aACZ,CAAC,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,SAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAClG,CAAC,CAAC,EAAqB,EAAE,CAAC,CAAC,KAAK,SAAS,CACzC,CAAC;QACF,wEAAwE;QACxE,wEAAqE;QACrE,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;IAAA,CAC7C;CACD,CAAC","sourcesContent":["/**\n * Cuota de Anthropic — solo publica límites la sesión OAuth de Claude\n * (claude.ai/Claude Code); la clave de API de la consola es pago por token,\n * sin techo que consultar.\n *\n * Mismo endpoint que usa Claude Code para pintar \"Usage limit\" en su CLI.\n */\n\nimport { type ConsultorCuota, ErrorConsultaCuota, type VentanaCuota } from \"./tipos.ts\";\n\nconst ENDPOINT = \"https://api.anthropic.com/api/oauth/usage\";\n\ninterface CuboBruto {\n\tutilization?: number;\n\tresets_at?: string | null;\n}\n\ninterface RespuestaAnthropic {\n\tfive_hour?: CuboBruto | null;\n\tseven_day?: CuboBruto | null;\n}\n\nfunction aVentana(etiqueta: string, cubo: CuboBruto | null | undefined): VentanaCuota | undefined {\n\tif (!cubo || typeof cubo.utilization !== \"number\") return undefined;\n\tconst seReinicia = cubo.resets_at ? Date.parse(cubo.resets_at) : Number.NaN;\n\treturn {\n\t\tetiqueta,\n\t\tusado: Math.min(Math.max(cubo.utilization, 0), 100),\n\t\tlimite: 100,\n\t\tseReinicia: Number.isFinite(seReinicia) ? seReinicia : null,\n\t\tunidad: \"porcentaje\",\n\t};\n}\n\nexport const consultorAnthropic: ConsultorCuota = {\n\tid: \"anthropic\",\n\tsoporta: (credencial) => credencial.type === \"oauth\",\n\tasync consultar({ credencial, fetch: fetchImpl = fetch, señal }) {\n\t\tif (credencial.type !== \"oauth\") return null;\n\n\t\tlet respuesta: Response;\n\t\ttry {\n\t\t\trespuesta = await fetchImpl(ENDPOINT, {\n\t\t\t\theaders: {\n\t\t\t\t\taccept: \"application/json\",\n\t\t\t\t\t\"anthropic-beta\": \"oauth-2025-04-20\",\n\t\t\t\t\t\"content-type\": \"application/json\",\n\t\t\t\t\tauthorization: `Bearer ${credencial.access}`,\n\t\t\t\t},\n\t\t\t\tsignal: señal,\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tthrow new ErrorConsultaCuota(\"anthropic\", `no se pudo contactar con Anthropic: ${String(error)}`, {\n\t\t\t\tcause: error,\n\t\t\t});\n\t\t}\n\t\tif (!respuesta.ok) {\n\t\t\tthrow new ErrorConsultaCuota(\"anthropic\", `Anthropic respondió ${respuesta.status} ${respuesta.statusText}`);\n\t\t}\n\n\t\tlet datos: RespuestaAnthropic;\n\t\ttry {\n\t\t\tdatos = (await respuesta.json()) as RespuestaAnthropic;\n\t\t} catch (error) {\n\t\t\tthrow new ErrorConsultaCuota(\"anthropic\", `la respuesta de Anthropic no es JSON válido: ${String(error)}`, {\n\t\t\t\tcause: error,\n\t\t\t});\n\t\t}\n\n\t\tconst ventanas = [aVentana(\"5 horas\", datos.five_hour), aVentana(\"7 días\", datos.seven_day)].filter(\n\t\t\t(v): v is VentanaCuota => v !== undefined,\n\t\t);\n\t\t// Cero ventanas reconocibles no es \"cero cuota usada\": es que la cuenta\n\t\t// no publicó ningún cubo, y eso hay que enseñarlo como \"no publica\".\n\t\treturn ventanas.length > 0 ? ventanas : null;\n\t},\n};\n"]}
1
+ {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../../../src/core/usage/cuota/anthropic.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAuB,kBAAkB,EAAqB,MAAM,YAAY,CAAC;AAExF,MAAM,QAAQ,GAAG,2CAA2C,CAAC;AAY7D,SAAS,QAAQ,CAAC,QAAgB,EAAE,IAAkC;IACrE,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ;QAAE,OAAO,SAAS,CAAC;IACpE,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;IAC5E,OAAO;QACN,QAAQ;QACR,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC;QACnD,MAAM,EAAE,GAAG;QACX,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI;QAC3D,MAAM,EAAE,YAAY;KACpB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAmB;IACjD,EAAE,EAAE,WAAW;IACf,OAAO,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,KAAK,OAAO;IACpD,KAAK,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,GAAG,KAAK,EAAE,KAAK,EAAE;QAC9D,IAAI,UAAU,CAAC,IAAI,KAAK,OAAO;YAAE,OAAO,IAAI,CAAC;QAE7C,IAAI,SAAmB,CAAC;QACxB,IAAI,CAAC;YACJ,SAAS,GAAG,MAAM,SAAS,CAAC,QAAQ,EAAE;gBACrC,OAAO,EAAE;oBACR,MAAM,EAAE,kBAAkB;oBAC1B,gBAAgB,EAAE,kBAAkB;oBACpC,cAAc,EAAE,kBAAkB;oBAClC,aAAa,EAAE,UAAU,UAAU,CAAC,MAAM,EAAE;iBAC5C;gBACD,MAAM,EAAE,KAAK;aACb,CAAC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,IAAI,kBAAkB,CAAC,WAAW,EAAE,uCAAuC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE;gBACjG,KAAK,EAAE,KAAK;aACZ,CAAC,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC;YACnB,MAAM,IAAI,kBAAkB,CAAC,WAAW,EAAE,uBAAuB,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC,CAAC;QAC9G,CAAC;QAED,IAAI,KAAyB,CAAC;QAC9B,IAAI,CAAC;YACJ,KAAK,GAAG,CAAC,MAAM,SAAS,CAAC,IAAI,EAAE,CAAuB,CAAC;QACxD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,IAAI,kBAAkB,CAAC,WAAW,EAAE,gDAAgD,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE;gBAC1G,KAAK,EAAE,KAAK;aACZ,CAAC,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAClG,CAAC,CAAC,EAAqB,EAAE,CAAC,CAAC,KAAK,SAAS,CACzC,CAAC;QACF,wEAAwE;QACxE,qEAAqE;QACrE,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9C,CAAC;CACD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../../src/core/usage/cuota/cache.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAWH;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAWjG;AAED,uDAAqD;AACrD,wBAAgB,iBAAiB,IAAI,IAAI,CAExC","sourcesContent":["/**\n * Cachea la respuesta de cuota unos minutos.\n *\n * Sin esto, cada turno del agente dispararía una petición HTTP más solo para\n * enseñar un número que apenas cambia turno a turno — el hueco que describe\n * la tarea: \"una petición de más por turno\".\n */\n\nconst TTL_MS = 5 * 60_000;\n\ninterface Entrada<T> {\n\texpira: number;\n\tvalor: Promise<T>;\n}\n\nconst cache = new Map<string, Entrada<unknown>>();\n\n/**\n * Devuelve el valor cacheado si sigue vivo; si no, lo calcula y lo guarda.\n *\n * Cachea la PROMESA, no el resultado ya resuelto: dos llamadas concurrentes\n * antes de que la primera responda comparten la misma petición en vuelo en\n * vez de disparar dos. Si la promesa acaba en rechazo, se borra de la caché\n * para que la siguiente consulta pueda reintentar — un fallo cacheado como\n * si fuera bueno sería peor que no cachear nada.\n */\nexport function conCache<T>(clave: string, calcular: () => Promise<T>, ttlMs = TTL_MS): Promise<T> {\n\tconst ahora = Date.now();\n\tconst existente = cache.get(clave) as Entrada<T> | undefined;\n\tif (existente && existente.expira > ahora) return existente.valor;\n\n\tconst valor = calcular();\n\tcache.set(clave, { expira: ahora + ttlMs, valor });\n\tvalor.catch(() => {\n\t\tif (cache.get(clave)?.valor === valor) cache.delete(clave);\n\t});\n\treturn valor;\n}\n\n/** Solo para pruebas: vacía la caché entre casos. */\nexport function limpiarCacheCuota(): void {\n\tcache.clear();\n}\n"]}
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../../src/core/usage/cuota/cache.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAWH;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAWjG;AAED,qDAAqD;AACrD,wBAAgB,iBAAiB,IAAI,IAAI,CAExC"}
@@ -1 +1 @@
1
- {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../../src/core/usage/cuota/cache.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC;AAO1B,MAAM,KAAK,GAAG,IAAI,GAAG,EAA4B,CAAC;AAElD;;;;;;;;GAQG;AACH,MAAM,UAAU,QAAQ,CAAI,KAAa,EAAE,QAA0B,EAAE,KAAK,GAAG,MAAM,EAAc;IAClG,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAA2B,CAAC;IAC7D,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,KAAK;QAAE,OAAO,SAAS,CAAC,KAAK,CAAC;IAElE,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACnD,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QACjB,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,KAAK,KAAK;YAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAAA,CAC3D,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AAAA,CACb;AAED,uDAAqD;AACrD,MAAM,UAAU,iBAAiB,GAAS;IACzC,KAAK,CAAC,KAAK,EAAE,CAAC;AAAA,CACd","sourcesContent":["/**\n * Cachea la respuesta de cuota unos minutos.\n *\n * Sin esto, cada turno del agente dispararía una petición HTTP más solo para\n * enseñar un número que apenas cambia turno a turno — el hueco que describe\n * la tarea: \"una petición de más por turno\".\n */\n\nconst TTL_MS = 5 * 60_000;\n\ninterface Entrada<T> {\n\texpira: number;\n\tvalor: Promise<T>;\n}\n\nconst cache = new Map<string, Entrada<unknown>>();\n\n/**\n * Devuelve el valor cacheado si sigue vivo; si no, lo calcula y lo guarda.\n *\n * Cachea la PROMESA, no el resultado ya resuelto: dos llamadas concurrentes\n * antes de que la primera responda comparten la misma petición en vuelo en\n * vez de disparar dos. Si la promesa acaba en rechazo, se borra de la caché\n * para que la siguiente consulta pueda reintentar — un fallo cacheado como\n * si fuera bueno sería peor que no cachear nada.\n */\nexport function conCache<T>(clave: string, calcular: () => Promise<T>, ttlMs = TTL_MS): Promise<T> {\n\tconst ahora = Date.now();\n\tconst existente = cache.get(clave) as Entrada<T> | undefined;\n\tif (existente && existente.expira > ahora) return existente.valor;\n\n\tconst valor = calcular();\n\tcache.set(clave, { expira: ahora + ttlMs, valor });\n\tvalor.catch(() => {\n\t\tif (cache.get(clave)?.valor === valor) cache.delete(clave);\n\t});\n\treturn valor;\n}\n\n/** Solo para pruebas: vacía la caché entre casos. */\nexport function limpiarCacheCuota(): void {\n\tcache.clear();\n}\n"]}
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../../src/core/usage/cuota/cache.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC;AAO1B,MAAM,KAAK,GAAG,IAAI,GAAG,EAA4B,CAAC;AAElD;;;;;;;;GAQG;AACH,MAAM,UAAU,QAAQ,CAAI,KAAa,EAAE,QAA0B,EAAE,KAAK,GAAG,MAAM;IACpF,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACzB,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAA2B,CAAC;IAC7D,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,KAAK;QAAE,OAAO,SAAS,CAAC,KAAK,CAAC;IAElE,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACnD,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE;QAChB,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,KAAK,KAAK;YAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACd,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,iBAAiB;IAChC,KAAK,CAAC,KAAK,EAAE,CAAC;AACf,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"github-copilot.d.ts","sourceRoot":"","sources":["../../../../src/core/usage/cuota/github-copilot.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,KAAK,cAAc,EAAyC,MAAM,YAAY,CAAC;AAsCxF,eAAO,MAAM,sBAAsB,EAAE,cA8CpC,CAAC","sourcesContent":["/**\n * Cuota de GitHub Copilot — `quota_snapshots` en el endpoint interno de\n * cuenta. Un cubo `unlimited: true` (plan Business/Enterprise sin techo de\n * peticiones premium) se descarta a propósito: no tiene \"usado/límite\" que\n * enseñar, y forzar un 0/0 mentiría sobre haber consultado algo real.\n */\n\nimport type { Credential } from \"@earendil-works/pi-ai\";\nimport { type ConsultorCuota, ErrorConsultaCuota, type VentanaCuota } from \"./tipos.ts\";\n\nconst ENDPOINT = \"https://api.github.com/copilot_internal/user\";\n\ninterface CuotaBruta {\n\tentitlement?: number;\n\tremaining?: number;\n\tunlimited?: boolean;\n}\n\ninterface RespuestaCopilot {\n\tquota_reset_date?: string;\n\tquota_snapshots?: {\n\t\tchat?: CuotaBruta;\n\t\tcompletions?: CuotaBruta;\n\t\tpremium_interactions?: CuotaBruta;\n\t};\n}\n\nfunction aVentana(etiqueta: string, cubo: CuotaBruta | undefined, seReinicia: number | null): VentanaCuota | undefined {\n\tif (!cubo || cubo.unlimited || typeof cubo.entitlement !== \"number\" || typeof cubo.remaining !== \"number\") {\n\t\treturn undefined;\n\t}\n\treturn {\n\t\tetiqueta,\n\t\tusado: Math.max(0, cubo.entitlement - cubo.remaining),\n\t\tlimite: cubo.entitlement,\n\t\tseReinicia,\n\t\tunidad: \"peticiones\",\n\t};\n}\n\n/** OAuth guarda el token de GitHub en `refresh`; api_key es un PAT directo. */\nfunction tokenDe(credencial: Credential): string | undefined {\n\tif (credencial.type === \"oauth\") return credencial.refresh || credencial.access;\n\treturn credencial.key;\n}\n\nexport const consultorGithubCopilot: ConsultorCuota = {\n\tid: \"github-copilot\",\n\tsoporta: (credencial) => Boolean(tokenDe(credencial)),\n\tasync consultar({ credencial, fetch: fetchImpl = fetch, señal }) {\n\t\tconst token = tokenDe(credencial);\n\t\tif (!token) return null;\n\n\t\tlet respuesta: Response;\n\t\ttry {\n\t\t\trespuesta = await fetchImpl(ENDPOINT, {\n\t\t\t\theaders: { accept: \"application/json\", authorization: `Bearer ${token}` },\n\t\t\t\tsignal: señal,\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tthrow new ErrorConsultaCuota(\"github-copilot\", `no se pudo contactar con GitHub Copilot: ${String(error)}`, {\n\t\t\t\tcause: error,\n\t\t\t});\n\t\t}\n\t\tif (!respuesta.ok) {\n\t\t\tthrow new ErrorConsultaCuota(\n\t\t\t\t\"github-copilot\",\n\t\t\t\t`GitHub Copilot respondió ${respuesta.status} ${respuesta.statusText}`,\n\t\t\t);\n\t\t}\n\n\t\tlet datos: RespuestaCopilot;\n\t\ttry {\n\t\t\tdatos = (await respuesta.json()) as RespuestaCopilot;\n\t\t} catch (error) {\n\t\t\tthrow new ErrorConsultaCuota(\n\t\t\t\t\"github-copilot\",\n\t\t\t\t`la respuesta de GitHub Copilot no es JSON válido: ${String(error)}`,\n\t\t\t\t{ cause: error },\n\t\t\t);\n\t\t}\n\n\t\tconst seReiniciaBruto = datos.quota_reset_date ? Date.parse(datos.quota_reset_date) : Number.NaN;\n\t\tconst seReinicia = Number.isFinite(seReiniciaBruto) ? seReiniciaBruto : null;\n\t\tconst snapshots = datos.quota_snapshots ?? {};\n\t\tconst ventanas = [\n\t\t\taVentana(\"Peticiones premium\", snapshots.premium_interactions, seReinicia),\n\t\t\taVentana(\"Chat\", snapshots.chat, seReinicia),\n\t\t\taVentana(\"Autocompletado\", snapshots.completions, seReinicia),\n\t\t].filter((v): v is VentanaCuota => v !== undefined);\n\t\treturn ventanas.length > 0 ? ventanas : null;\n\t},\n};\n"]}
1
+ {"version":3,"file":"github-copilot.d.ts","sourceRoot":"","sources":["../../../../src/core/usage/cuota/github-copilot.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,KAAK,cAAc,EAAyC,MAAM,YAAY,CAAC;AAsCxF,eAAO,MAAM,sBAAsB,EAAE,cA8CpC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"github-copilot.js","sourceRoot":"","sources":["../../../../src/core/usage/cuota/github-copilot.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Cuota de GitHub Copilot — `quota_snapshots` en el endpoint interno de\n * cuenta. Un cubo `unlimited: true` (plan Business/Enterprise sin techo de\n * peticiones premium) se descarta a propósito: no tiene \"usado/límite\" que\n * enseñar, y forzar un 0/0 mentiría sobre haber consultado algo real.\n */\n\nimport type { Credential } from \"@earendil-works/pi-ai\";\nimport { type ConsultorCuota, ErrorConsultaCuota, type VentanaCuota } from \"./tipos.ts\";\n\nconst ENDPOINT = \"https://api.github.com/copilot_internal/user\";\n\ninterface CuotaBruta {\n\tentitlement?: number;\n\tremaining?: number;\n\tunlimited?: boolean;\n}\n\ninterface RespuestaCopilot {\n\tquota_reset_date?: string;\n\tquota_snapshots?: {\n\t\tchat?: CuotaBruta;\n\t\tcompletions?: CuotaBruta;\n\t\tpremium_interactions?: CuotaBruta;\n\t};\n}\n\nfunction aVentana(etiqueta: string, cubo: CuotaBruta | undefined, seReinicia: number | null): VentanaCuota | undefined {\n\tif (!cubo || cubo.unlimited || typeof cubo.entitlement !== \"number\" || typeof cubo.remaining !== \"number\") {\n\t\treturn undefined;\n\t}\n\treturn {\n\t\tetiqueta,\n\t\tusado: Math.max(0, cubo.entitlement - cubo.remaining),\n\t\tlimite: cubo.entitlement,\n\t\tseReinicia,\n\t\tunidad: \"peticiones\",\n\t};\n}\n\n/** OAuth guarda el token de GitHub en `refresh`; api_key es un PAT directo. */\nfunction tokenDe(credencial: Credential): string | undefined {\n\tif (credencial.type === \"oauth\") return credencial.refresh || credencial.access;\n\treturn credencial.key;\n}\n\nexport const consultorGithubCopilot: ConsultorCuota = {\n\tid: \"github-copilot\",\n\tsoporta: (credencial) => Boolean(tokenDe(credencial)),\n\tasync consultar({ credencial, fetch: fetchImpl = fetch, señal }) {\n\t\tconst token = tokenDe(credencial);\n\t\tif (!token) return null;\n\n\t\tlet respuesta: Response;\n\t\ttry {\n\t\t\trespuesta = await fetchImpl(ENDPOINT, {\n\t\t\t\theaders: { accept: \"application/json\", authorization: `Bearer ${token}` },\n\t\t\t\tsignal: señal,\n\t\t\t});\n\t\t} catch (error) {\n\t\t\tthrow new ErrorConsultaCuota(\"github-copilot\", `no se pudo contactar con GitHub Copilot: ${String(error)}`, {\n\t\t\t\tcause: error,\n\t\t\t});\n\t\t}\n\t\tif (!respuesta.ok) {\n\t\t\tthrow new ErrorConsultaCuota(\n\t\t\t\t\"github-copilot\",\n\t\t\t\t`GitHub Copilot respondió ${respuesta.status} ${respuesta.statusText}`,\n\t\t\t);\n\t\t}\n\n\t\tlet datos: RespuestaCopilot;\n\t\ttry {\n\t\t\tdatos = (await respuesta.json()) as RespuestaCopilot;\n\t\t} catch (error) {\n\t\t\tthrow new ErrorConsultaCuota(\n\t\t\t\t\"github-copilot\",\n\t\t\t\t`la respuesta de GitHub Copilot no es JSON válido: ${String(error)}`,\n\t\t\t\t{ cause: error },\n\t\t\t);\n\t\t}\n\n\t\tconst seReiniciaBruto = datos.quota_reset_date ? Date.parse(datos.quota_reset_date) : Number.NaN;\n\t\tconst seReinicia = Number.isFinite(seReiniciaBruto) ? seReiniciaBruto : null;\n\t\tconst snapshots = datos.quota_snapshots ?? {};\n\t\tconst ventanas = [\n\t\t\taVentana(\"Peticiones premium\", snapshots.premium_interactions, seReinicia),\n\t\t\taVentana(\"Chat\", snapshots.chat, seReinicia),\n\t\t\taVentana(\"Autocompletado\", snapshots.completions, seReinicia),\n\t\t].filter((v): v is VentanaCuota => v !== undefined);\n\t\treturn ventanas.length > 0 ? ventanas : null;\n\t},\n};\n"]}
1
+ {"version":3,"file":"github-copilot.js","sourceRoot":"","sources":["../../../../src/core/usage/cuota/github-copilot.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"google-gemini.d.ts","sourceRoot":"","sources":["../../../../src/core/usage/cuota/google-gemini.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,cAAc,EAAyC,MAAM,YAAY,CAAC;AAwDxF,eAAO,MAAM,qBAAqB,EAAE,cA0CnC,CAAC","sourcesContent":["/**\n * Cuota de Gemini (Google Code Assist / Antigravity) — dos llamadas: primero\n * `loadCodeAssist` para resolver el proyecto de Cloud, luego\n * `retrieveUserQuota` con ese proyecto. Si la credencial ya trae un\n * `projectId` guardado se usa ese y se ahorra la primera petición.\n */\n\nimport { type ConsultorCuota, ErrorConsultaCuota, type VentanaCuota } from \"./tipos.ts\";\n\nconst BASE_URL = \"https://cloudcode-pa.googleapis.com\";\nconst PROVEEDOR = \"google\";\n\ninterface CargaCodeAssist {\n\tcloudaicompanionProject?: string | { id?: string };\n}\n\ninterface CuboBruto {\n\tmodelId?: string;\n\tremainingFraction?: number;\n\tresetTime?: string;\n}\n\ninterface RespuestaCuota {\n\tbuckets?: CuboBruto[];\n}\n\nfunction proyectoDe(carga: CargaCodeAssist | undefined): string | undefined {\n\tconst p = carga?.cloudaicompanionProject;\n\tif (typeof p === \"string\") return p;\n\tif (p && typeof p === \"object\") return p.id;\n\treturn undefined;\n}\n\nasync function pedir<T>(\n\tfetchImpl: typeof fetch,\n\turl: string,\n\ttoken: string,\n\tcuerpo: unknown,\n\tseñal: AbortSignal | undefined,\n): Promise<T> {\n\tlet respuesta: Response;\n\ttry {\n\t\trespuesta = await fetchImpl(url, {\n\t\t\tmethod: \"POST\",\n\t\t\theaders: { authorization: `Bearer ${token}`, \"content-type\": \"application/json\" },\n\t\t\tbody: JSON.stringify(cuerpo),\n\t\t\tsignal: señal,\n\t\t});\n\t} catch (error) {\n\t\tthrow new ErrorConsultaCuota(PROVEEDOR, `no se pudo contactar con Google: ${String(error)}`, { cause: error });\n\t}\n\tif (!respuesta.ok) {\n\t\tthrow new ErrorConsultaCuota(PROVEEDOR, `Google respondió ${respuesta.status} ${respuesta.statusText}`);\n\t}\n\ttry {\n\t\treturn (await respuesta.json()) as T;\n\t} catch (error) {\n\t\tthrow new ErrorConsultaCuota(PROVEEDOR, `la respuesta de Google no es JSON válido: ${String(error)}`, {\n\t\t\tcause: error,\n\t\t});\n\t}\n}\n\nexport const consultorGoogleGemini: ConsultorCuota = {\n\tid: PROVEEDOR,\n\tsoporta: (credencial) => credencial.type === \"oauth\",\n\tasync consultar({ credencial, fetch: fetchImpl = fetch, señal }) {\n\t\tif (credencial.type !== \"oauth\") return null;\n\n\t\tconst proyectoGuardado = typeof credencial.projectId === \"string\" ? credencial.projectId : undefined;\n\t\tlet proyecto = proyectoGuardado;\n\t\tif (!proyecto) {\n\t\t\tconst carga = await pedir<CargaCodeAssist>(\n\t\t\t\tfetchImpl,\n\t\t\t\t`${BASE_URL}/v1internal:loadCodeAssist`,\n\t\t\t\tcredencial.access,\n\t\t\t\t{ metadata: { ideType: \"IDE_UNSPECIFIED\", platform: \"PLATFORM_UNSPECIFIED\", pluginType: \"GEMINI\" } },\n\t\t\t\tseñal,\n\t\t\t);\n\t\t\tproyecto = proyectoDe(carga);\n\t\t}\n\n\t\tconst cuota = await pedir<RespuestaCuota>(\n\t\t\tfetchImpl,\n\t\t\t`${BASE_URL}/v1internal:retrieveUserQuota`,\n\t\t\tcredencial.access,\n\t\t\tproyecto ? { project: proyecto } : {},\n\t\t\tseñal,\n\t\t);\n\n\t\tconst ventanas = (cuota.buckets ?? [])\n\t\t\t.filter((b): b is CuboBruto & { remainingFraction: number } => typeof b.remainingFraction === \"number\")\n\t\t\t.map((b): VentanaCuota => {\n\t\t\t\tconst restante = Math.min(Math.max(b.remainingFraction, 0), 1);\n\t\t\t\tconst seReiniciaBruto = b.resetTime ? Date.parse(b.resetTime) : Number.NaN;\n\t\t\t\treturn {\n\t\t\t\t\tetiqueta: b.modelId ?? \"Gemini\",\n\t\t\t\t\tusado: Math.round((1 - restante) * 1000) / 10,\n\t\t\t\t\tlimite: 100,\n\t\t\t\t\tseReinicia: Number.isFinite(seReiniciaBruto) ? seReiniciaBruto : null,\n\t\t\t\t\tunidad: \"porcentaje\",\n\t\t\t\t};\n\t\t\t});\n\t\treturn ventanas.length > 0 ? ventanas : null;\n\t},\n};\n"]}
1
+ {"version":3,"file":"google-gemini.d.ts","sourceRoot":"","sources":["../../../../src/core/usage/cuota/google-gemini.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,cAAc,EAAyC,MAAM,YAAY,CAAC;AAwDxF,eAAO,MAAM,qBAAqB,EAAE,cA0CnC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"google-gemini.js","sourceRoot":"","sources":["../../../../src/core/usage/cuota/google-gemini.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Cuota de Gemini (Google Code Assist / Antigravity) — dos llamadas: primero\n * `loadCodeAssist` para resolver el proyecto de Cloud, luego\n * `retrieveUserQuota` con ese proyecto. Si la credencial ya trae un\n * `projectId` guardado se usa ese y se ahorra la primera petición.\n */\n\nimport { type ConsultorCuota, ErrorConsultaCuota, type VentanaCuota } from \"./tipos.ts\";\n\nconst BASE_URL = \"https://cloudcode-pa.googleapis.com\";\nconst PROVEEDOR = \"google\";\n\ninterface CargaCodeAssist {\n\tcloudaicompanionProject?: string | { id?: string };\n}\n\ninterface CuboBruto {\n\tmodelId?: string;\n\tremainingFraction?: number;\n\tresetTime?: string;\n}\n\ninterface RespuestaCuota {\n\tbuckets?: CuboBruto[];\n}\n\nfunction proyectoDe(carga: CargaCodeAssist | undefined): string | undefined {\n\tconst p = carga?.cloudaicompanionProject;\n\tif (typeof p === \"string\") return p;\n\tif (p && typeof p === \"object\") return p.id;\n\treturn undefined;\n}\n\nasync function pedir<T>(\n\tfetchImpl: typeof fetch,\n\turl: string,\n\ttoken: string,\n\tcuerpo: unknown,\n\tseñal: AbortSignal | undefined,\n): Promise<T> {\n\tlet respuesta: Response;\n\ttry {\n\t\trespuesta = await fetchImpl(url, {\n\t\t\tmethod: \"POST\",\n\t\t\theaders: { authorization: `Bearer ${token}`, \"content-type\": \"application/json\" },\n\t\t\tbody: JSON.stringify(cuerpo),\n\t\t\tsignal: señal,\n\t\t});\n\t} catch (error) {\n\t\tthrow new ErrorConsultaCuota(PROVEEDOR, `no se pudo contactar con Google: ${String(error)}`, { cause: error });\n\t}\n\tif (!respuesta.ok) {\n\t\tthrow new ErrorConsultaCuota(PROVEEDOR, `Google respondió ${respuesta.status} ${respuesta.statusText}`);\n\t}\n\ttry {\n\t\treturn (await respuesta.json()) as T;\n\t} catch (error) {\n\t\tthrow new ErrorConsultaCuota(PROVEEDOR, `la respuesta de Google no es JSON válido: ${String(error)}`, {\n\t\t\tcause: error,\n\t\t});\n\t}\n}\n\nexport const consultorGoogleGemini: ConsultorCuota = {\n\tid: PROVEEDOR,\n\tsoporta: (credencial) => credencial.type === \"oauth\",\n\tasync consultar({ credencial, fetch: fetchImpl = fetch, señal }) {\n\t\tif (credencial.type !== \"oauth\") return null;\n\n\t\tconst proyectoGuardado = typeof credencial.projectId === \"string\" ? credencial.projectId : undefined;\n\t\tlet proyecto = proyectoGuardado;\n\t\tif (!proyecto) {\n\t\t\tconst carga = await pedir<CargaCodeAssist>(\n\t\t\t\tfetchImpl,\n\t\t\t\t`${BASE_URL}/v1internal:loadCodeAssist`,\n\t\t\t\tcredencial.access,\n\t\t\t\t{ metadata: { ideType: \"IDE_UNSPECIFIED\", platform: \"PLATFORM_UNSPECIFIED\", pluginType: \"GEMINI\" } },\n\t\t\t\tseñal,\n\t\t\t);\n\t\t\tproyecto = proyectoDe(carga);\n\t\t}\n\n\t\tconst cuota = await pedir<RespuestaCuota>(\n\t\t\tfetchImpl,\n\t\t\t`${BASE_URL}/v1internal:retrieveUserQuota`,\n\t\t\tcredencial.access,\n\t\t\tproyecto ? { project: proyecto } : {},\n\t\t\tseñal,\n\t\t);\n\n\t\tconst ventanas = (cuota.buckets ?? [])\n\t\t\t.filter((b): b is CuboBruto & { remainingFraction: number } => typeof b.remainingFraction === \"number\")\n\t\t\t.map((b): VentanaCuota => {\n\t\t\t\tconst restante = Math.min(Math.max(b.remainingFraction, 0), 1);\n\t\t\t\tconst seReiniciaBruto = b.resetTime ? Date.parse(b.resetTime) : Number.NaN;\n\t\t\t\treturn {\n\t\t\t\t\tetiqueta: b.modelId ?? \"Gemini\",\n\t\t\t\t\tusado: Math.round((1 - restante) * 1000) / 10,\n\t\t\t\t\tlimite: 100,\n\t\t\t\t\tseReinicia: Number.isFinite(seReiniciaBruto) ? seReiniciaBruto : null,\n\t\t\t\t\tunidad: \"porcentaje\",\n\t\t\t\t};\n\t\t\t});\n\t\treturn ventanas.length > 0 ? ventanas : null;\n\t},\n};\n"]}
1
+ {"version":3,"file":"google-gemini.js","sourceRoot":"","sources":["../../../../src/core/usage/cuota/google-gemini.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/usage/cuota/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAOxD,OAAO,KAAK,EAAkB,gBAAgB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EACN,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,kBAAkB,EAClB,KAAK,WAAW,EAChB,KAAK,YAAY,GACjB,MAAM,YAAY,CAAC;AAUpB,0FAAyF;AACzF,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAA6B,CAAC;AAYjF;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CACnC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,UAAU,GAAG,SAAS,EAClC,QAAQ,GAAE,IAAI,CAAC,gBAAgB,EAAE,YAAY,CAAM,GACjD,OAAO,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,CAIhC","sourcesContent":["/**\n * Registro de consultores de cuota, uno por proveedor.\n *\n * `ada-cli usage` (ver `../aggregate.ts`) dice lo GASTADO. Esto dice lo que\n * QUEDA: se lo pregunta al proveedor, con la credencial que ya tiene\n * guardada en `auth.json`, y cachea la respuesta unos minutos para no sumar\n * una petición HTTP a cada turno.\n */\n\nimport type { Credential } from \"@earendil-works/pi-ai\";\nimport { consultorAnthropic } from \"./anthropic.ts\";\nimport { conCache } from \"./cache.ts\";\nimport { consultorGithubCopilot } from \"./github-copilot.ts\";\nimport { consultorGoogleGemini } from \"./google-gemini.ts\";\nimport { consultorOpenAiCodex } from \"./openai-codex.ts\";\nimport { consultorOpenRouter } from \"./openrouter.ts\";\nimport type { ConsultorCuota, ContextoConsulta, VentanaCuota } from \"./tipos.ts\";\n\nexport { limpiarCacheCuota } from \"./cache.ts\";\nexport {\n\ttype ConsultorCuota,\n\ttype ContextoConsulta,\n\tErrorConsultaCuota,\n\ttype UnidadCuota,\n\ttype VentanaCuota,\n} from \"./tipos.ts\";\n\nconst CONSULTORES: Record<string, ConsultorCuota> = {\n\tanthropic: consultorAnthropic,\n\topenrouter: consultorOpenRouter,\n\t\"openai-codex\": consultorOpenAiCodex,\n\t\"github-copilot\": consultorGithubCopilot,\n\tgoogle: consultorGoogleGemini,\n};\n\n/** Proveedores para los que hay un consultor de cuota, en el orden en que se enseñan. */\nexport const PROVEEDORES_CON_CUOTA: readonly string[] = Object.keys(CONSULTORES);\n\n/**\n * Los últimos caracteres del secreto bastan para distinguir dos credenciales\n * del mismo proveedor sin quedarse el secreto entero más tiempo del\n * necesario dentro de la clave de caché.\n */\nfunction claveCache(proveedor: string, credencial: Credential): string {\n\tconst identidad = credencial.type === \"oauth\" ? credencial.access : (credencial.key ?? \"\");\n\treturn `${proveedor}:${identidad.slice(-12)}`;\n}\n\n/**\n * Cuánto queda del plan para un proveedor, con la credencial dada.\n *\n * `null` = no hay credencial, el proveedor no la reconoce, o el proveedor no\n * publica cuota para ese tipo de credencial (p.ej. la API key de Anthropic).\n * Lanza {@link ErrorConsultaCuota} si la consulta llega a intentarse y falla:\n * eso NUNCA se reporta como `null`, o un fallo de red se leería como \"sin\n * límite\".\n */\nexport async function consultarCuota(\n\tproveedor: string,\n\tcredencial: Credential | undefined,\n\topciones: Omit<ContextoConsulta, \"credencial\"> = {},\n): Promise<VentanaCuota[] | null> {\n\tconst consultor = CONSULTORES[proveedor];\n\tif (!consultor || !credencial || !consultor.soporta(credencial)) return null;\n\treturn conCache(claveCache(proveedor, credencial), () => consultor.consultar({ ...opciones, credencial }));\n}\n"]}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/usage/cuota/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAOxD,OAAO,KAAK,EAAkB,gBAAgB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAEjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EACN,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,kBAAkB,EAClB,KAAK,WAAW,EAChB,KAAK,YAAY,GACjB,MAAM,YAAY,CAAC;AAUpB,yFAAyF;AACzF,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAA6B,CAAC;AAYjF;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CACnC,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,UAAU,GAAG,SAAS,EAClC,QAAQ,GAAE,IAAI,CAAC,gBAAgB,EAAE,YAAY,CAAM,GACjD,OAAO,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,CAIhC"}