xonecode 0.3.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (406) hide show
  1. package/README.md +49 -7
  2. package/THIRD_PARTY_NOTICES.md +128 -0
  3. package/apps/web/dist/assets/KaTeX_AMS-Regular-BQhdFMY1.woff2 +0 -0
  4. package/apps/web/dist/assets/KaTeX_AMS-Regular-DMm9YOAa.woff +0 -0
  5. package/apps/web/dist/assets/KaTeX_AMS-Regular-DRggAlZN.ttf +0 -0
  6. package/apps/web/dist/assets/KaTeX_Caligraphic-Bold-ATXxdsX0.ttf +0 -0
  7. package/apps/web/dist/assets/KaTeX_Caligraphic-Bold-BEiXGLvX.woff +0 -0
  8. package/apps/web/dist/assets/KaTeX_Caligraphic-Bold-Dq_IR9rO.woff2 +0 -0
  9. package/apps/web/dist/assets/KaTeX_Caligraphic-Regular-CTRA-rTL.woff +0 -0
  10. package/apps/web/dist/assets/KaTeX_Caligraphic-Regular-Di6jR-x-.woff2 +0 -0
  11. package/apps/web/dist/assets/KaTeX_Caligraphic-Regular-wX97UBjC.ttf +0 -0
  12. package/apps/web/dist/assets/KaTeX_Fraktur-Bold-BdnERNNW.ttf +0 -0
  13. package/apps/web/dist/assets/KaTeX_Fraktur-Bold-BsDP51OF.woff +0 -0
  14. package/apps/web/dist/assets/KaTeX_Fraktur-Bold-CL6g_b3V.woff2 +0 -0
  15. package/apps/web/dist/assets/KaTeX_Fraktur-Regular-CB_wures.ttf +0 -0
  16. package/apps/web/dist/assets/KaTeX_Fraktur-Regular-CTYiF6lA.woff2 +0 -0
  17. package/apps/web/dist/assets/KaTeX_Fraktur-Regular-Dxdc4cR9.woff +0 -0
  18. package/apps/web/dist/assets/KaTeX_Main-Bold-Cx986IdX.woff2 +0 -0
  19. package/apps/web/dist/assets/KaTeX_Main-Bold-Jm3AIy58.woff +0 -0
  20. package/apps/web/dist/assets/KaTeX_Main-Bold-waoOVXN0.ttf +0 -0
  21. package/apps/web/dist/assets/KaTeX_Main-BoldItalic-DxDJ3AOS.woff2 +0 -0
  22. package/apps/web/dist/assets/KaTeX_Main-BoldItalic-DzxPMmG6.ttf +0 -0
  23. package/apps/web/dist/assets/KaTeX_Main-BoldItalic-SpSLRI95.woff +0 -0
  24. package/apps/web/dist/assets/KaTeX_Main-Italic-3WenGoN9.ttf +0 -0
  25. package/apps/web/dist/assets/KaTeX_Main-Italic-BMLOBm91.woff +0 -0
  26. package/apps/web/dist/assets/KaTeX_Main-Italic-NWA7e6Wa.woff2 +0 -0
  27. package/apps/web/dist/assets/KaTeX_Main-Regular-B22Nviop.woff2 +0 -0
  28. package/apps/web/dist/assets/KaTeX_Main-Regular-Dr94JaBh.woff +0 -0
  29. package/apps/web/dist/assets/KaTeX_Main-Regular-ypZvNtVU.ttf +0 -0
  30. package/apps/web/dist/assets/KaTeX_Math-BoldItalic-B3XSjfu4.ttf +0 -0
  31. package/apps/web/dist/assets/KaTeX_Math-BoldItalic-CZnvNsCZ.woff2 +0 -0
  32. package/apps/web/dist/assets/KaTeX_Math-BoldItalic-iY-2wyZ7.woff +0 -0
  33. package/apps/web/dist/assets/KaTeX_Math-Italic-DA0__PXp.woff +0 -0
  34. package/apps/web/dist/assets/KaTeX_Math-Italic-flOr_0UB.ttf +0 -0
  35. package/apps/web/dist/assets/KaTeX_Math-Italic-t53AETM-.woff2 +0 -0
  36. package/apps/web/dist/assets/KaTeX_SansSerif-Bold-CFMepnvq.ttf +0 -0
  37. package/apps/web/dist/assets/KaTeX_SansSerif-Bold-D1sUS0GD.woff2 +0 -0
  38. package/apps/web/dist/assets/KaTeX_SansSerif-Bold-DbIhKOiC.woff +0 -0
  39. package/apps/web/dist/assets/KaTeX_SansSerif-Italic-C3H0VqGB.woff2 +0 -0
  40. package/apps/web/dist/assets/KaTeX_SansSerif-Italic-DN2j7dab.woff +0 -0
  41. package/apps/web/dist/assets/KaTeX_SansSerif-Italic-YYjJ1zSn.ttf +0 -0
  42. package/apps/web/dist/assets/KaTeX_SansSerif-Regular-BNo7hRIc.ttf +0 -0
  43. package/apps/web/dist/assets/KaTeX_SansSerif-Regular-CS6fqUqJ.woff +0 -0
  44. package/apps/web/dist/assets/KaTeX_SansSerif-Regular-DDBCnlJ7.woff2 +0 -0
  45. package/apps/web/dist/assets/KaTeX_Script-Regular-C5JkGWo-.ttf +0 -0
  46. package/apps/web/dist/assets/KaTeX_Script-Regular-D3wIWfF6.woff2 +0 -0
  47. package/apps/web/dist/assets/KaTeX_Script-Regular-D5yQViql.woff +0 -0
  48. package/apps/web/dist/assets/KaTeX_Size1-Regular-C195tn64.woff +0 -0
  49. package/apps/web/dist/assets/KaTeX_Size1-Regular-Dbsnue_I.ttf +0 -0
  50. package/apps/web/dist/assets/KaTeX_Size1-Regular-mCD8mA8B.woff2 +0 -0
  51. package/apps/web/dist/assets/KaTeX_Size2-Regular-B7gKUWhC.ttf +0 -0
  52. package/apps/web/dist/assets/KaTeX_Size2-Regular-Dy4dx90m.woff2 +0 -0
  53. package/apps/web/dist/assets/KaTeX_Size2-Regular-oD1tc_U0.woff +0 -0
  54. package/apps/web/dist/assets/KaTeX_Size3-Regular-CTq5MqoE.woff +0 -0
  55. package/apps/web/dist/assets/KaTeX_Size3-Regular-DgpXs0kz.ttf +0 -0
  56. package/apps/web/dist/assets/KaTeX_Size4-Regular-BF-4gkZK.woff +0 -0
  57. package/apps/web/dist/assets/KaTeX_Size4-Regular-DWFBv043.ttf +0 -0
  58. package/apps/web/dist/assets/KaTeX_Size4-Regular-Dl5lxZxV.woff2 +0 -0
  59. package/apps/web/dist/assets/KaTeX_Typewriter-Regular-C0xS9mPB.woff +0 -0
  60. package/apps/web/dist/assets/KaTeX_Typewriter-Regular-CO6r4hn1.woff2 +0 -0
  61. package/apps/web/dist/assets/KaTeX_Typewriter-Regular-D3Ib7_Hf.ttf +0 -0
  62. package/apps/web/dist/assets/c-BIGW1oBm.js +1 -0
  63. package/apps/web/dist/assets/cpp-DddhVWhK.js +1 -0
  64. package/apps/web/dist/assets/csharp-DSvCPggb.js +1 -0
  65. package/apps/web/dist/assets/css-CLj8gQPS.js +1 -0
  66. package/apps/web/dist/assets/go-C27-OAKa.js +1 -0
  67. package/apps/web/dist/assets/html-CfGypltT.js +1 -0
  68. package/apps/web/dist/assets/index-BB3SamhR.css +1 -0
  69. package/apps/web/dist/assets/index-CFYAoHdw.js +477 -0
  70. package/apps/web/dist/assets/ini-BEwlwnbL.js +1 -0
  71. package/apps/web/dist/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2 +0 -0
  72. package/apps/web/dist/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2 +0 -0
  73. package/apps/web/dist/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2 +0 -0
  74. package/apps/web/dist/assets/inter-greek-wght-normal-CkhJZR-_.woff2 +0 -0
  75. package/apps/web/dist/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2 +0 -0
  76. package/apps/web/dist/assets/inter-latin-wght-normal-Dx4kXJAl.woff2 +0 -0
  77. package/apps/web/dist/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2 +0 -0
  78. package/apps/web/dist/assets/java-CylS5w8V.js +1 -0
  79. package/apps/web/dist/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2 +0 -0
  80. package/apps/web/dist/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2 +0 -0
  81. package/apps/web/dist/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2 +0 -0
  82. package/apps/web/dist/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2 +0 -0
  83. package/apps/web/dist/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2 +0 -0
  84. package/apps/web/dist/assets/kotlin-BdnUsdx6.js +1 -0
  85. package/apps/web/dist/assets/less-B1dDrJ26.js +1 -0
  86. package/apps/web/dist/assets/lua-BaeVxFsk.js +1 -0
  87. package/apps/web/dist/assets/markdown-Cvjx9yec.js +1 -0
  88. package/apps/web/dist/assets/mdx-Cmh6b_Ma.js +1 -0
  89. package/apps/web/dist/assets/php-D_2--9WK.js +1 -0
  90. package/apps/web/dist/assets/python-B6aJPvgy.js +1 -0
  91. package/apps/web/dist/assets/ruby-DSHSDbk1.js +1 -0
  92. package/apps/web/dist/assets/rust-B1yitclQ.js +1 -0
  93. package/apps/web/dist/assets/scss-D5BDwBP9.js +1 -0
  94. package/apps/web/dist/assets/sql-CRqJ_cUM.js +1 -0
  95. package/apps/web/dist/assets/swift-C2oV4EkX.js +1 -0
  96. package/apps/web/dist/assets/toml-vGWfd6FD.js +1 -0
  97. package/apps/web/dist/assets/xml-sdJ4AIDG.js +1 -0
  98. package/apps/web/dist/assets/yaml-Buea-lGh.js +1 -0
  99. package/apps/web/dist/iconos/xonecode.png +0 -0
  100. package/apps/web/dist/index.html +20 -0
  101. package/dist/agent/agentesEnDisco.js +539 -0
  102. package/dist/agent/agentesEnDisco.js.map +1 -0
  103. package/dist/agent/arbolDeProyecto.js +245 -0
  104. package/dist/agent/arbolDeProyecto.js.map +1 -0
  105. package/dist/agent/artefactosEnDisco.js +139 -0
  106. package/dist/agent/artefactosEnDisco.js.map +1 -0
  107. package/dist/agent/aumentador.js +175 -0
  108. package/dist/agent/aumentador.js.map +1 -0
  109. package/dist/agent/authEnDisco.js +76 -1
  110. package/dist/agent/authEnDisco.js.map +1 -1
  111. package/dist/agent/busquedaRegex.js +92 -0
  112. package/dist/agent/busquedaRegex.js.map +1 -0
  113. package/dist/agent/catalogoModelos.js +345 -0
  114. package/dist/agent/catalogoModelos.js.map +1 -0
  115. package/dist/agent/checkpointer.js +127 -0
  116. package/dist/agent/checkpointer.js.map +1 -0
  117. package/dist/agent/cloudstudioClient.js +194 -0
  118. package/dist/agent/cloudstudioClient.js.map +1 -0
  119. package/dist/agent/cloudstudioMcp.js +722 -0
  120. package/dist/agent/cloudstudioMcp.js.map +1 -0
  121. package/dist/agent/configEnDisco.js +309 -11
  122. package/dist/agent/configEnDisco.js.map +1 -1
  123. package/dist/agent/consumoExterno.js +99 -0
  124. package/dist/agent/consumoExterno.js.map +1 -0
  125. package/dist/agent/descarga.js +149 -0
  126. package/dist/agent/descarga.js.map +1 -0
  127. package/dist/agent/diagnosticoDeTools.js +51 -0
  128. package/dist/agent/diagnosticoDeTools.js.map +1 -0
  129. package/dist/agent/dispositivosEnMaquina.js +596 -0
  130. package/dist/agent/dispositivosEnMaquina.js.map +1 -0
  131. package/dist/agent/escrituraDeCodex.js +134 -0
  132. package/dist/agent/escrituraDeCodex.js.map +1 -0
  133. package/dist/agent/escrituraDeOpencode.js +80 -0
  134. package/dist/agent/escrituraDeOpencode.js.map +1 -0
  135. package/dist/agent/escrituraExterna.js +742 -0
  136. package/dist/agent/escrituraExterna.js.map +1 -0
  137. package/dist/agent/gemini.js +81 -0
  138. package/dist/agent/gemini.js.map +1 -0
  139. package/dist/agent/git.js +83 -0
  140. package/dist/agent/git.js.map +1 -0
  141. package/dist/agent/gitSync.js +441 -0
  142. package/dist/agent/gitSync.js.map +1 -0
  143. package/dist/agent/hotswap.js +448 -0
  144. package/dist/agent/hotswap.js.map +1 -0
  145. package/dist/agent/instalacionEnMaquina.js +252 -0
  146. package/dist/agent/instalacionEnMaquina.js.map +1 -0
  147. package/dist/agent/instantanea.js +7 -10
  148. package/dist/agent/instantanea.js.map +1 -1
  149. package/dist/agent/interrupts.js +11 -2
  150. package/dist/agent/interrupts.js.map +1 -1
  151. package/dist/agent/juezDeTarea.js +345 -0
  152. package/dist/agent/juezDeTarea.js.map +1 -0
  153. package/dist/agent/lanzamientoEnMaquina.js +377 -0
  154. package/dist/agent/lanzamientoEnMaquina.js.map +1 -0
  155. package/dist/agent/manifiesto.js +59 -0
  156. package/dist/agent/manifiesto.js.map +1 -0
  157. package/dist/agent/memoriaDeProyecto.js +60 -0
  158. package/dist/agent/memoriaDeProyecto.js.map +1 -0
  159. package/dist/agent/modelos.js +105 -17
  160. package/dist/agent/modelos.js.map +1 -1
  161. package/dist/agent/modelosDeMotor.js +204 -0
  162. package/dist/agent/modelosDeMotor.js.map +1 -0
  163. package/dist/agent/paqueteDelProyecto.js +181 -0
  164. package/dist/agent/paqueteDelProyecto.js.map +1 -0
  165. package/dist/agent/perfiles.js +92 -31
  166. package/dist/agent/perfiles.js.map +1 -1
  167. package/dist/agent/persona.js +40 -0
  168. package/dist/agent/persona.js.map +1 -0
  169. package/dist/agent/procesosEnMaquina.js +204 -0
  170. package/dist/agent/procesosEnMaquina.js.map +1 -0
  171. package/dist/agent/proyecto.js +311 -13
  172. package/dist/agent/proyecto.js.map +1 -1
  173. package/dist/agent/puente.js +63 -6
  174. package/dist/agent/puente.js.map +1 -1
  175. package/dist/agent/resumenDeContexto.js +30 -0
  176. package/dist/agent/resumenDeContexto.js.map +1 -0
  177. package/dist/agent/resumenDeTool.js +64 -18
  178. package/dist/agent/resumenDeTool.js.map +1 -1
  179. package/dist/agent/sesionGit.js +481 -0
  180. package/dist/agent/sesionGit.js.map +1 -0
  181. package/dist/agent/settingsEnDisco.js +189 -0
  182. package/dist/agent/settingsEnDisco.js.map +1 -0
  183. package/dist/agent/subagenteCodex.js +368 -0
  184. package/dist/agent/subagenteCodex.js.map +1 -0
  185. package/dist/agent/subagenteExterno.js +423 -0
  186. package/dist/agent/subagenteExterno.js.map +1 -0
  187. package/dist/agent/subagenteOpencode.js +389 -0
  188. package/dist/agent/subagenteOpencode.js.map +1 -0
  189. package/dist/agent/subida.js +202 -0
  190. package/dist/agent/subida.js.map +1 -0
  191. package/dist/agent/tareasEnDisco.js +466 -0
  192. package/dist/agent/tareasEnDisco.js.map +1 -0
  193. package/dist/agent/turnoReal.js +663 -50
  194. package/dist/agent/turnoReal.js.map +1 -1
  195. package/dist/agent/versionEnDisco.js +48 -0
  196. package/dist/agent/versionEnDisco.js.map +1 -0
  197. package/dist/agent/xoneAgent.js +290 -49
  198. package/dist/agent/xoneAgent.js.map +1 -1
  199. package/dist/agent/zip.js +52 -0
  200. package/dist/agent/zip.js.map +1 -0
  201. package/dist/cli/acuseDeModelo.js +30 -0
  202. package/dist/cli/acuseDeModelo.js.map +1 -0
  203. package/dist/cli/aprobar.js +55 -2
  204. package/dist/cli/aprobar.js.map +1 -1
  205. package/dist/cli/config.js +9 -13
  206. package/dist/cli/config.js.map +1 -1
  207. package/dist/cli/consola.js +750 -19
  208. package/dist/cli/consola.js.map +1 -1
  209. package/dist/cli/main.js +740 -81
  210. package/dist/cli/main.js.map +1 -1
  211. package/dist/cli/markdown.js +188 -2
  212. package/dist/cli/markdown.js.map +1 -1
  213. package/dist/cli/run.js +32 -4
  214. package/dist/cli/run.js.map +1 -1
  215. package/dist/cli/stdio.js +46 -19
  216. package/dist/cli/stdio.js.map +1 -1
  217. package/dist/cli/tema.js +96 -8
  218. package/dist/cli/tema.js.map +1 -1
  219. package/dist/cli/tokens.js +29 -0
  220. package/dist/cli/tokens.js.map +1 -0
  221. package/dist/cli/tui/app.js +171 -0
  222. package/dist/cli/tui/app.js.map +1 -0
  223. package/dist/cli/tui/aprobarTui.js +80 -0
  224. package/dist/cli/tui/aprobarTui.js.map +1 -0
  225. package/dist/cli/tui/barra.js +37 -0
  226. package/dist/cli/tui/barra.js.map +1 -0
  227. package/dist/cli/tui/correrTui.js +478 -0
  228. package/dist/cli/tui/correrTui.js.map +1 -0
  229. package/dist/cli/tui/entrada.js +166 -0
  230. package/dist/cli/tui/entrada.js.map +1 -0
  231. package/dist/cli/tui/filas.js +24 -0
  232. package/dist/cli/tui/filas.js.map +1 -0
  233. package/dist/cli/tui/logo.js +49 -0
  234. package/dist/cli/tui/logo.js.map +1 -0
  235. package/dist/cli/tui/pielTui.js +14 -0
  236. package/dist/cli/tui/pielTui.js.map +1 -0
  237. package/dist/cli/tui/raton.js +126 -0
  238. package/dist/cli/tui/raton.js.map +1 -0
  239. package/dist/cli/tui/sidebar.js +86 -0
  240. package/dist/cli/tui/sidebar.js.map +1 -0
  241. package/dist/cli/tui/store.js +143 -0
  242. package/dist/cli/tui/store.js.map +1 -0
  243. package/dist/cli/tui/tarjeta.js +19 -0
  244. package/dist/cli/tui/tarjeta.js.map +1 -0
  245. package/dist/cli/tui/temaInk.js +114 -0
  246. package/dist/cli/tui/temaInk.js.map +1 -0
  247. package/dist/cli/tui/transcript.js +254 -0
  248. package/dist/cli/tui/transcript.js.map +1 -0
  249. package/dist/cli/wizardInicial.js +240 -0
  250. package/dist/cli/wizardInicial.js.map +1 -0
  251. package/dist/core/actos.js +113 -0
  252. package/dist/core/actos.js.map +1 -0
  253. package/dist/core/adjuntos.js +97 -0
  254. package/dist/core/adjuntos.js.map +1 -0
  255. package/dist/core/agentes.js +227 -0
  256. package/dist/core/agentes.js.map +1 -0
  257. package/dist/core/artefactos.js +149 -0
  258. package/dist/core/artefactos.js.map +1 -0
  259. package/dist/core/cloudstudio.js +7 -0
  260. package/dist/core/cloudstudio.js.map +1 -0
  261. package/dist/core/config.js +212 -5
  262. package/dist/core/config.js.map +1 -1
  263. package/dist/core/contextos.js +53 -1
  264. package/dist/core/contextos.js.map +1 -1
  265. package/dist/core/descargas.js +106 -0
  266. package/dist/core/descargas.js.map +1 -0
  267. package/dist/core/descriptoresDeApp.js +279 -0
  268. package/dist/core/descriptoresDeApp.js.map +1 -0
  269. package/dist/core/dispositivos.js +466 -0
  270. package/dist/core/dispositivos.js.map +1 -0
  271. package/dist/core/entrega.js +141 -0
  272. package/dist/core/entrega.js.map +1 -0
  273. package/dist/core/entrelazar.js +90 -0
  274. package/dist/core/entrelazar.js.map +1 -0
  275. package/dist/core/esqueleto.js +10 -0
  276. package/dist/core/esqueleto.js.map +1 -1
  277. package/dist/core/modelos.js +235 -3
  278. package/dist/core/modelos.js.map +1 -1
  279. package/dist/core/notify.js +27 -9
  280. package/dist/core/notify.js.map +1 -1
  281. package/dist/core/planDeSubida.js +127 -0
  282. package/dist/core/planDeSubida.js.map +1 -0
  283. package/dist/core/ports.js +189 -1
  284. package/dist/core/ports.js.map +1 -1
  285. package/dist/core/puedeLanzarse.js +239 -0
  286. package/dist/core/puedeLanzarse.js.map +1 -0
  287. package/dist/core/rutaVirtual.js +42 -0
  288. package/dist/core/rutaVirtual.js.map +1 -0
  289. package/dist/core/settings.js +246 -0
  290. package/dist/core/settings.js.map +1 -0
  291. package/dist/core/tareas.js +230 -0
  292. package/dist/core/tareas.js.map +1 -0
  293. package/dist/core/textos.js +36 -0
  294. package/dist/core/textos.js.map +1 -0
  295. package/dist/core/turno.js +56 -8
  296. package/dist/core/turno.js.map +1 -1
  297. package/dist/core/version.js +31 -0
  298. package/dist/core/version.js.map +1 -0
  299. package/dist/vendor/tokenTracking.js +22 -1
  300. package/dist/vendor/tokenTracking.js.map +1 -1
  301. package/dist/web/servidor/arranque.js +3964 -0
  302. package/dist/web/servidor/arranque.js.map +1 -0
  303. package/dist/web/servidor/consolaDeTarea.js +161 -0
  304. package/dist/web/servidor/consolaDeTarea.js.map +1 -0
  305. package/dist/web/servidor/consolaWeb.js +389 -0
  306. package/dist/web/servidor/consolaWeb.js.map +1 -0
  307. package/dist/web/servidor/corredorDeTareas.js +1119 -0
  308. package/dist/web/servidor/corredorDeTareas.js.map +1 -0
  309. package/dist/web/servidor/pielWeb.js +269 -0
  310. package/dist/web/servidor/pielWeb.js.map +1 -0
  311. package/dist/web/servidor/servidor.js +257 -0
  312. package/dist/web/servidor/servidor.js.map +1 -0
  313. package/dist/web/servidor/sesiones.js +440 -0
  314. package/dist/web/servidor/sesiones.js.map +1 -0
  315. package/dist/web/servidor/transporte.js +169 -0
  316. package/dist/web/servidor/transporte.js.map +1 -0
  317. package/dist/web/servidor/vestibulo.js +1276 -0
  318. package/dist/web/servidor/vestibulo.js.map +1 -0
  319. package/package.json +30 -8
  320. package/skills/archify/LICENSE +22 -0
  321. package/skills/archify/SKILL.md +109 -0
  322. package/skills/archify/THIRD_PARTY_NOTICES.md +56 -0
  323. package/skills/archify/assets/template.html +14787 -0
  324. package/skills/archify/bin/archify.mjs +1990 -0
  325. package/skills/archify/bin/open-artifact.mjs +86 -0
  326. package/skills/archify/bin/preview.mjs +648 -0
  327. package/skills/archify/bin/visual-check.mjs +829 -0
  328. package/skills/archify/brand-marks/README.md +31 -0
  329. package/skills/archify/brand-marks/catalog.json +131 -0
  330. package/skills/archify/delta/architecture-delta.mjs +1214 -0
  331. package/skills/archify/examples/agent-run.lifecycle.json +71 -0
  332. package/skills/archify/examples/agent-tool-call.workflow.json +94 -0
  333. package/skills/archify/examples/async-job-roundtrip.sequence.json +61 -0
  334. package/skills/archify/examples/brand-aware-delivery.architecture.json +47 -0
  335. package/skills/archify/examples/cache-miss-request.sequence.json +81 -0
  336. package/skills/archify/examples/checkout-platform.base.architecture.json +31 -0
  337. package/skills/archify/examples/checkout-platform.head.architecture.json +31 -0
  338. package/skills/archify/examples/dataflow-product-analytics.html +14898 -0
  339. package/skills/archify/examples/deployment-release.lifecycle.json +49 -0
  340. package/skills/archify/examples/event-stream.dataflow.json +57 -0
  341. package/skills/archify/examples/incident-response.workflow.json +64 -0
  342. package/skills/archify/examples/lifecycle-agent-run.html +14847 -0
  343. package/skills/archify/examples/product-analytics.dataflow.json +76 -0
  344. package/skills/archify/examples/production-deployment.architecture.json +71 -0
  345. package/skills/archify/examples/release-delivery.workflow.json +62 -0
  346. package/skills/archify/examples/sequence-cache-miss-request.html +14913 -0
  347. package/skills/archify/examples/web-app-rendered.html +14862 -0
  348. package/skills/archify/examples/web-app.architecture.json +46 -0
  349. package/skills/archify/examples/workflow-agent-tool-call-rendered.html +14904 -0
  350. package/skills/archify/migrations/workflow-v2.mjs +279 -0
  351. package/skills/archify/package.json +17 -0
  352. package/skills/archify/recipes/scenarios.mjs +391 -0
  353. package/skills/archify/references/authoring-contract.md +198 -0
  354. package/skills/archify/references/brand-marks.md +69 -0
  355. package/skills/archify/references/delivery-contract.md +116 -0
  356. package/skills/archify/references/viewer-runtime.md +45 -0
  357. package/skills/archify/renderers/architecture/grid.mjs +62 -0
  358. package/skills/archify/renderers/architecture/render-architecture.mjs +1078 -0
  359. package/skills/archify/renderers/dataflow/README.md +104 -0
  360. package/skills/archify/renderers/dataflow/render-dataflow.mjs +483 -0
  361. package/skills/archify/renderers/lifecycle/README.md +115 -0
  362. package/skills/archify/renderers/lifecycle/render-lifecycle.mjs +561 -0
  363. package/skills/archify/renderers/sequence/README.md +114 -0
  364. package/skills/archify/renderers/sequence/render-sequence.mjs +453 -0
  365. package/skills/archify/renderers/shared/brand-marks.mjs +563 -0
  366. package/skills/archify/renderers/shared/cli.mjs +218 -0
  367. package/skills/archify/renderers/shared/desktop-readability.mjs +26 -0
  368. package/skills/archify/renderers/shared/diagnostics.mjs +127 -0
  369. package/skills/archify/renderers/shared/engineering-profiles.mjs +157 -0
  370. package/skills/archify/renderers/shared/generated-brand-marks.mjs +2003 -0
  371. package/skills/archify/renderers/shared/generated-validators.mjs +13 -0
  372. package/skills/archify/renderers/shared/geometry.mjs +1423 -0
  373. package/skills/archify/renderers/shared/i18n.mjs +594 -0
  374. package/skills/archify/renderers/shared/layout-report.mjs +40 -0
  375. package/skills/archify/renderers/shared/legend.mjs +217 -0
  376. package/skills/archify/renderers/shared/output-path.mjs +321 -0
  377. package/skills/archify/renderers/shared/repository-evidence.mjs +235 -0
  378. package/skills/archify/renderers/shared/text-fit.mjs +49 -0
  379. package/skills/archify/renderers/shared/utils.mjs +232 -0
  380. package/skills/archify/renderers/shared/validator.mjs +86 -0
  381. package/skills/archify/renderers/workflow/README.md +223 -0
  382. package/skills/archify/renderers/workflow/render-workflow.mjs +35 -0
  383. package/skills/archify/renderers/workflow/workflow-compiler.mjs +4400 -0
  384. package/skills/archify/renderers/workflow/workflow-migration-geometry.mjs +144 -0
  385. package/skills/archify/schemas/README.md +211 -0
  386. package/skills/archify/schemas/architecture.schema.json +176 -0
  387. package/skills/archify/schemas/common.schema.json +115 -0
  388. package/skills/archify/schemas/dataflow.schema.json +243 -0
  389. package/skills/archify/schemas/lifecycle.schema.json +266 -0
  390. package/skills/archify/schemas/sequence.schema.json +223 -0
  391. package/skills/archify/schemas/workflow.schema.json +428 -0
  392. package/skills/archify/scripts/check-render-output.mjs +835 -0
  393. package/skills/archify/scripts/check-update.mjs +1667 -0
  394. package/skills/archify/scripts/render-examples.mjs +26 -0
  395. package/skills/archify/scripts/update-contract.mjs +182 -0
  396. package/skills/archify/skill-release.json +10 -0
  397. package/skills/artifacts-builder/SKILL.md +120 -0
  398. package/skills/artifacts-builder/reference/diagramas.md +123 -0
  399. package/skills/artifacts-builder/reference/estilo.md +123 -0
  400. package/skills/artifacts-builder/reference/exportar-pdf.md +56 -0
  401. package/skills/artifacts-builder/reference/graficas.md +22 -0
  402. package/skills/artifacts-builder/scripts/bundle_artifact.py +109 -0
  403. package/skills/artifacts-builder/scripts/validate_artifact.py +345 -0
  404. package/skills/xone-hotswap/SKILL.md +185 -0
  405. package/skills/xone-hotswap/references/comandos.md +706 -0
  406. package/skills/xone-hotswap/references/conexion-y-despliegue.md +226 -0
@@ -17,13 +17,55 @@
17
17
  * truncado. Un mensaje de error acaba en logs, capturas e issues; el aviso dice QUÉ
18
18
  * campo, no QUÉ contenía. Por eso estos mensajes no interpolan nunca el valor de entrada.
19
19
  */
20
- import { PROVEEDORES, PAPELES } from "./modelos.js";
20
+ import { PROVEEDORES, PAPELES, esProveedorPersonalizado, motivoDeEndpointInaceptable, motivoDeSlugInaceptable, } from "./modelos.js";
21
21
  /**
22
22
  * Formas plausibles de colar una clave dentro de un `config.json`. El intento se rechaza
23
23
  * sea cual sea el valor: lo que delata es el NOMBRE del campo, porque una clave con otro
24
24
  * nombre ya no es reconocible — y estas seis cubren lo que la gente escribe a mano.
25
+ *
26
+ * Exportada porque `core/settings.ts` la reutiliza tal cual: dos listas de nombres de
27
+ * credencial que empiezan iguales y divergen con el tiempo es justo el bug que se midió
28
+ * («key» —el campo que usa `auth.json`— faltaba en la copia que tenía `settings.ts`).
25
29
  */
26
- const CLAVES_DENEGADAS = [
30
+ /**
31
+ * ¿Vale eso como clave de API? Devuelve el MOTIVO del rechazo, o `undefined` si pasa.
32
+ *
33
+ * La regla no es nuestra: es la que aplica el harness de DeepSeek en su panel de modelos,
34
+ * y la razón es que una clave de API acaba siendo el valor de una cabecera HTTP — todo
35
+ * carácter ASCII imprimible (`\x21`–`\x7E`) cabe ahí y ninguno más. Un espacio, un
36
+ * tabulador, un salto de línea o una eñe no llegan al proveedor: fallan al construir la
37
+ * petición, o peor, viajan mutilados y el error que vuelve habla de autorización.
38
+ *
39
+ * Las otras dos son de pegado, no de formato, y las dos se han visto de verdad:
40
+ * - `ANTHROPIC_API_KEY=sk-…`, la línea entera del `.env` copiada de un tirón;
41
+ * - `"sk-…"`, con las comillas de la línea de la que salió.
42
+ *
43
+ * Ninguna de las dos se «arregla» por nuestra cuenta quitando lo que sobra: no se puede
44
+ * saber si el usuario quería eso, y una clave adivinada que resulta ser válida enseña a
45
+ * pegar mal. Se rechaza diciendo qué pasa, que es lo que se puede afirmar.
46
+ *
47
+ * Lo que NO comprueba es que la clave sirva — eso solo lo sabe el proveedor, y el sitio
48
+ * donde se pregunta es el catálogo (`cli/wizardInicial.ts`, que lista antes de escribir).
49
+ * Ésta es la criba de balde: la que evita gastar una llamada para que te digan lo que el
50
+ * propio campo ya decía.
51
+ */
52
+ export function motivoDeClaveInaceptable(clave) {
53
+ const limpia = clave.trim();
54
+ if (limpia === "")
55
+ return "la clave está vacía";
56
+ if (/^[A-Za-z_][A-Za-z0-9_]*=/.test(limpia)) {
57
+ return "eso parece una línea de entorno («NOMBRE=valor»): pega solo el valor, sin el nombre ni el «=»";
58
+ }
59
+ if (/^"[^]*"$/.test(limpia) || /^'[^]*'$/.test(limpia)) {
60
+ return "la clave viene entre comillas: pega solo el valor, sin ellas";
61
+ }
62
+ // eslint-disable-next-line no-control-regex
63
+ if (!/^[\x21-\x7e]+$/.test(limpia)) {
64
+ return "la clave lleva espacios o caracteres que no pueden viajar en una cabecera HTTP";
65
+ }
66
+ return undefined;
67
+ }
68
+ export const CLAVES_DENEGADAS = [
27
69
  "claves",
28
70
  "apiKey",
29
71
  "api_key",
@@ -61,7 +103,10 @@ export function validar(bruto, ruta, procedencia) {
61
103
  const valor = bruto[clave];
62
104
  // El rechazo se comprueba PRIMERO, para que una clave denegada no salga también como
63
105
  // «campo desconocido»: el mismo campo con dos avisos es ruido en la dirección mala.
64
- const proveedorConCadena = PROVEEDORES.includes(clave) && typeof valor === "string";
106
+ // También un personalizado: `{"custom:mi-llm": "sk-…"}` es exactamente el mismo intento
107
+ // de meter una credencial aquí, y el campo lo delata igual.
108
+ const proveedorConCadena = (PROVEEDORES.includes(clave) || esProveedorPersonalizado(clave))
109
+ && typeof valor === "string";
65
110
  if (CLAVES_DENEGADAS.includes(clave) || proveedorConCadena) {
66
111
  avisos.push({
67
112
  texto: `«${ruta}»: el campo «${clave}» parece una clave de API y NO se acepta en un config.json: las claves van en ~/.xonecode/auth.json.`,
@@ -81,6 +126,75 @@ export function validar(bruto, ruta, procedencia) {
81
126
  }
82
127
  continue;
83
128
  }
129
+ if (clave === "proveedores") {
130
+ // Solo global, y el aviso es GRAVE: quien escribió esto esperaba que funcionara, y
131
+ // callarlo dejaría un proveedor declarado que no existe en ninguna lista.
132
+ if (procedencia === "proyecto") {
133
+ avisos.push({
134
+ texto: `«${ruta}»: «proveedores» solo se admite en el config.json GLOBAL — la clave de un proveedor personalizado se guarda por su identificador, y un proyecto que redefiniera su URL la mandaría a otro sitio; se descarta.`,
135
+ severidad: "grave",
136
+ });
137
+ continue;
138
+ }
139
+ if (!Array.isArray(valor)) {
140
+ avisos.push({
141
+ texto: `«${ruta}»: «proveedores» debe ser una lista de {slug, nombre, baseUrl}; se descarta.`,
142
+ severidad: "aviso",
143
+ });
144
+ continue;
145
+ }
146
+ const declarados = [];
147
+ for (const fila of valor) {
148
+ if (!esObjeto(fila)) {
149
+ avisos.push({ texto: `«${ruta}»: una entrada de «proveedores» no es un objeto; se descarta.`, severidad: "aviso" });
150
+ continue;
151
+ }
152
+ const slug = fila["slug"];
153
+ const nombre = fila["nombre"];
154
+ const baseUrl = fila["baseUrl"];
155
+ if (typeof slug !== "string" || typeof nombre !== "string" || typeof baseUrl !== "string") {
156
+ avisos.push({ texto: `«${ruta}»: una entrada de «proveedores» no trae «slug», «nombre» y «baseUrl» como texto; se descarta.`, severidad: "aviso" });
157
+ continue;
158
+ }
159
+ // Los mismos motivos que enseña la ventana, aplicados aquí también: este fichero
160
+ // se edita a mano, así que la autoridad sobre si vale es el cargador y no el
161
+ // formulario — la misma regla que los `.md` de los subagentes.
162
+ const malSlug = motivoDeSlugInaceptable(slug);
163
+ if (malSlug !== undefined) {
164
+ avisos.push({ texto: `«${ruta}»: el «slug» de un proveedor no vale (${malSlug}); se descarta la entrada.`, severidad: "aviso" });
165
+ continue;
166
+ }
167
+ const malUrl = motivoDeEndpointInaceptable(baseUrl);
168
+ if (malUrl !== undefined) {
169
+ // El motivo sí, la URL NO: el aviso acaba en logs y en capturas.
170
+ avisos.push({ texto: `«${ruta}»: la «baseUrl» del proveedor «${slug}» no vale (${malUrl}); se descarta la entrada.`, severidad: "aviso" });
171
+ continue;
172
+ }
173
+ if (nombre.trim() === "") {
174
+ avisos.push({ texto: `«${ruta}»: el proveedor «${slug}» no tiene nombre; se descarta la entrada.`, severidad: "aviso" });
175
+ continue;
176
+ }
177
+ if (declarados.some((d) => d.slug === slug)) {
178
+ avisos.push({ texto: `«${ruta}»: el proveedor «${slug}» está declarado dos veces; se queda el primero.`, severidad: "aviso" });
179
+ continue;
180
+ }
181
+ declarados.push({ slug, nombre, baseUrl });
182
+ }
183
+ config.proveedores = declarados;
184
+ continue;
185
+ }
186
+ if (clave === "modo") {
187
+ if (valor === "offline" || valor === "cloud") {
188
+ config.modo = valor;
189
+ }
190
+ else {
191
+ avisos.push({
192
+ texto: `«${ruta}»: «modo» debe ser «offline» o «cloud»; se descarta.`,
193
+ severidad: "aviso",
194
+ });
195
+ }
196
+ continue;
197
+ }
84
198
  if (clave === "modelos") {
85
199
  if (!esObjeto(valor)) {
86
200
  avisos.push({
@@ -111,6 +225,95 @@ export function validar(bruto, ruta, procedencia) {
111
225
  config.modelos = modelos;
112
226
  continue;
113
227
  }
228
+ if (clave === "tema") {
229
+ if (typeof valor === "string") {
230
+ config.tema = valor;
231
+ }
232
+ else {
233
+ avisos.push({
234
+ texto: `«${ruta}»: «tema» debe ser una cadena; se descarta.`,
235
+ severidad: "aviso",
236
+ });
237
+ }
238
+ continue;
239
+ }
240
+ if (clave === "entorno") {
241
+ // Un id vacío no es «sin entorno»: es un id que no se puede buscar en
242
+ // `settings.json`, y dejarlo pasar haría que el juego de credenciales se leyera bajo
243
+ // la clave "" en vez de caer en `legado` como cae un proyecto de antes de los entornos.
244
+ if (typeof valor === "string" && valor.trim() !== "") {
245
+ config.entorno = valor;
246
+ }
247
+ else {
248
+ avisos.push({
249
+ texto: `«${ruta}»: «entorno» debe ser el id no vacío de un entorno de settings.json; se descarta.`,
250
+ severidad: "aviso",
251
+ });
252
+ }
253
+ continue;
254
+ }
255
+ if (clave === "cloudstudio") {
256
+ if (!esObjeto(valor) || typeof valor.url !== "string") {
257
+ avisos.push({
258
+ texto: `«${ruta}»: «cloudstudio» debe ser un objeto con la URL HTTPS «url»; se descarta.`,
259
+ severidad: "aviso",
260
+ });
261
+ continue;
262
+ }
263
+ try {
264
+ const url = new URL(valor.url);
265
+ if (url.protocol !== "https:" || url.username !== "" || url.password !== "")
266
+ throw new Error();
267
+ const scopes = valor.scopes;
268
+ const proyectoBruto = valor.proyecto;
269
+ const proyecto = proyectoBruto === undefined
270
+ ? undefined
271
+ : esObjeto(proyectoBruto) && typeof proyectoBruto.id === "string" && proyectoBruto.id.trim() !== "" &&
272
+ typeof proyectoBruto.nombre === "string" && proyectoBruto.nombre.trim() !== ""
273
+ ? { id: proyectoBruto.id, nombre: proyectoBruto.nombre }
274
+ : undefined;
275
+ if (proyectoBruto !== undefined && proyecto === undefined) {
276
+ avisos.push({
277
+ texto: `«${ruta}»: «cloudstudio.proyecto» debe tener «id» y «nombre» no vacíos; se descarta.`,
278
+ severidad: "aviso",
279
+ });
280
+ }
281
+ const ramaBruta = valor.rama;
282
+ const rama = typeof ramaBruta === "string" && ramaBruta.trim() !== "" ? ramaBruta : undefined;
283
+ if (ramaBruta !== undefined && rama === undefined) {
284
+ avisos.push({
285
+ texto: `«${ruta}»: «cloudstudio.rama» debe ser un nombre no vacío; se descarta.`,
286
+ severidad: "aviso",
287
+ });
288
+ }
289
+ if (scopes !== undefined && (!Array.isArray(scopes) || !scopes.every((scope) => typeof scope === "string" && scope.trim() !== ""))) {
290
+ avisos.push({
291
+ texto: `«${ruta}»: «cloudstudio.scopes» debe ser una lista de permisos no vacíos; se descarta.`,
292
+ severidad: "aviso",
293
+ });
294
+ config.cloudstudio = {
295
+ url: url.toString(),
296
+ ...(proyecto === undefined ? {} : { proyecto }),
297
+ ...(rama === undefined ? {} : { rama }),
298
+ };
299
+ }
300
+ else {
301
+ config.cloudstudio = {
302
+ url: url.toString(),
303
+ ...(scopes === undefined ? {} : { scopes: [...scopes] }),
304
+ ...(proyecto === undefined ? {} : { proyecto }),
305
+ ...(rama === undefined ? {} : { rama }),
306
+ };
307
+ }
308
+ }
309
+ catch {
310
+ avisos.push({
311
+ texto: `«${ruta}»: «cloudstudio.url» debe ser una URL HTTPS sin credenciales; se descarta.`,
312
+ severidad: "aviso",
313
+ });
314
+ }
315
+ continue;
316
+ }
114
317
  // El tope de la ventana de contexto que la tabla de `core/contextos.ts` no
115
318
  // sabe: cada entrada es «proveedor/modelo» → tope en tokens. Se fija a mano
116
319
  // porque el usuario sabe más de SU modelo (sobre todo del local) que la tabla.
@@ -205,9 +408,13 @@ export function validarAuth(bruto, ruta, modo, procedencia) {
205
408
  const auth = {};
206
409
  for (const clave of Object.keys(bruto)) {
207
410
  const valor = bruto[clave];
208
- if (!PROVEEDORES.includes(clave)) {
411
+ // Un personalizado se acepta por su FORMA, igual que en `parsear`: aquí no hay
412
+ // registro que consultar —`auth.json` no sabe de `config.json`— y descartar la clave
413
+ // de un proveedor dado de alta dejaría al catálogo diciendo que falta una credencial
414
+ // que está escrita en el fichero de al lado.
415
+ if (!PROVEEDORES.includes(clave) && !esProveedorPersonalizado(clave)) {
209
416
  avisos.push({
210
- texto: `«${ruta}»: «${clave}» no es un proveedor conocido (los que hay: ${PROVEEDORES.join(", ")}); se descarta.`,
417
+ texto: `«${ruta}»: «${clave}» no es un proveedor conocido (los que hay: ${PROVEEDORES.join(", ")}, o «custom:<id>»); se descarta.`,
211
418
  severidad: "aviso",
212
419
  });
213
420
  continue;
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
@@ -17,7 +17,29 @@
17
17
  */
18
18
  /** Familias conocidas por proveedor, emparejadas por prefijo del id del modelo. */
19
19
  const TOPES = {
20
- anthropic: [["claude", 200_000]],
20
+ // Claude va por VERSIÓN y no por familia, porque dentro de la misma familia la ventana
21
+ // cambió: la generación 4.6 y posteriores lleva 1M, y lo anterior (más Haiku 4.5, que
22
+ // sigue en 200k) se queda en 200.000. Fue una sola fila «claude → 200.000», y al
23
+ // emparejar por prefijo le daba 200k a `claude-opus-5`: la barra calculaba el porcentaje
24
+ // sobre una quinta parte de la ventana real. El orden importa —`find` se queda con el
25
+ // PRIMER prefijo que casa—, así que lo específico va antes que el `claude` de reserva,
26
+ // igual que `gpt-4.1` va antes que `gpt-4` aquí abajo.
27
+ //
28
+ // La tabla sigue siendo el último recurso: el catálogo vivo de Anthropic ya devuelve
29
+ // `max_input_tokens` (`agent/catalogoModelos.ts`), que es la verdad para el modelo
30
+ // concreto; lo que todavía no está es ese valor llegando a la barra, que hoy resuelve
31
+ // por aquí.
32
+ anthropic: [
33
+ ["claude-fable", 1_000_000],
34
+ ["claude-mythos", 1_000_000],
35
+ ["claude-opus-5", 1_000_000],
36
+ ["claude-opus-4-8", 1_000_000],
37
+ ["claude-opus-4-7", 1_000_000],
38
+ ["claude-opus-4-6", 1_000_000],
39
+ ["claude-sonnet-5", 1_000_000],
40
+ ["claude-sonnet-4-6", 1_000_000],
41
+ ["claude", 200_000],
42
+ ],
21
43
  gemini: [["gemini", 1_000_000]],
22
44
  openai: [
23
45
  ["gpt-4.1", 1_000_000],
@@ -53,4 +75,34 @@ export function topeResuelto(proveedor, modelo, configs) {
53
75
  const deTabla = topeDeContexto(proveedor, modelo);
54
76
  return deTabla !== undefined ? { tope: deTabla, origen: "tabla" } : undefined;
55
77
  }
78
+ /**
79
+ * El tope de SALIDA que le fijamos a un modelo, o `undefined` para dejarlo en manos del
80
+ * cliente.
81
+ *
82
+ * Existe por un fallo MEDIDO de la dependencia, no por gusto de configurar:
83
+ * `@langchain/anthropic` 1.5.2 resuelve su propio `max_tokens` por omisión con una tabla
84
+ * emparejada por prefijo, y un id que su tabla no conoce cae en su
85
+ * `FALLBACK_MAX_OUTPUT_TOKENS = 4096` **en silencio**. Comprobado reproduciendo su función
86
+ * con sus datos: `claude-sonnet-5` no casa con ninguna de sus claves —`claude-sonnet-4` no
87
+ * es prefijo de `claude-sonnet-5`— y sale con 4096, mientras `claude-opus-5`,
88
+ * `claude-opus-4-8` y `claude-fable-5-1` salen con 16384. En un harness que escribe
89
+ * ficheros, un tope de 4096 no da error: corta la respuesta a media escritura.
90
+ *
91
+ * **16.384 y no más, y el motivo es de qué camino lo usa.** El modelo construido se
92
+ * comparte entre el turno (que STREAMEA: su `_streamResponseChunks` mete `stream: true` en
93
+ * el payload sea cual sea la bandera del constructor) y las llamadas sueltas con `.invoke()`
94
+ * —el juez, el aumentador—, que no streamean y donde un tope grande se lleva por delante el
95
+ * plazo HTTP del SDK. 16.384 es además el valor que la propia dependencia da a la familia
96
+ * actual, así que para los modelos que SÍ conoce esto no cambia nada: solo tapa el 4096.
97
+ *
98
+ * Solo `anthropic` tiene fila, como `ollama` no tiene fila en la tabla de contexto: los
99
+ * demás clientes no tienen este fallo, y fijarles un tope a ciegas sería recortarles la
100
+ * salida por una razón que no existe.
101
+ */
102
+ const TOPES_DE_SALIDA = {
103
+ anthropic: [["claude", 16_384]],
104
+ };
105
+ export function topeDeSalida(proveedor, modelo) {
106
+ return TOPES_DE_SALIDA[proveedor]?.find(([prefijo]) => modelo.startsWith(prefijo))?.[1];
107
+ }
56
108
  //# sourceMappingURL=contextos.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"contextos.js","sourceRoot":"","sources":["../../src/core/contextos.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,mFAAmF;AACnF,MAAM,KAAK,GAAuE;IAChF,SAAS,EAAE,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC/B,MAAM,EAAE;QACN,CAAC,SAAS,EAAE,SAAS,CAAC;QACtB,CAAC,QAAQ,EAAE,OAAO,CAAC;QACnB,CAAC,aAAa,EAAE,OAAO,CAAC;QACxB,CAAC,OAAO,EAAE,OAAO,CAAC;KACnB;CACF,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAC5B,SAAoB,EACpB,MAAc,EACd,YAAoC,EAAE;IAEtC,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,SAAS,IAAI,MAAM,EAAE,CAAC,CAAC;IAClD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAE5C,OAAO,KAAK,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAChF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAC1B,SAAoB,EACpB,MAAc,EACd,OAA+E;IAE/E,MAAM,EAAE,GAAG,GAAG,SAAS,IAAI,MAAM,EAAE,CAAC;IACpC,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,KAAK,SAAS;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAE,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IACrG,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,KAAK,SAAS;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,CAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAC/F,MAAM,OAAO,GAAG,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAClD,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAChF,CAAC"}
1
+ {"version":3,"file":"contextos.js","sourceRoot":"","sources":["../../src/core/contextos.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,mFAAmF;AACnF,MAAM,KAAK,GAAuE;IAChF,uFAAuF;IACvF,sFAAsF;IACtF,iFAAiF;IACjF,yFAAyF;IACzF,sFAAsF;IACtF,uFAAuF;IACvF,uDAAuD;IACvD,EAAE;IACF,qFAAqF;IACrF,mFAAmF;IACnF,sFAAsF;IACtF,YAAY;IACZ,SAAS,EAAE;QACT,CAAC,cAAc,EAAE,SAAS,CAAC;QAC3B,CAAC,eAAe,EAAE,SAAS,CAAC;QAC5B,CAAC,eAAe,EAAE,SAAS,CAAC;QAC5B,CAAC,iBAAiB,EAAE,SAAS,CAAC;QAC9B,CAAC,iBAAiB,EAAE,SAAS,CAAC;QAC9B,CAAC,iBAAiB,EAAE,SAAS,CAAC;QAC9B,CAAC,iBAAiB,EAAE,SAAS,CAAC;QAC9B,CAAC,mBAAmB,EAAE,SAAS,CAAC;QAChC,CAAC,QAAQ,EAAE,OAAO,CAAC;KACpB;IACD,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAC/B,MAAM,EAAE;QACN,CAAC,SAAS,EAAE,SAAS,CAAC;QACtB,CAAC,QAAQ,EAAE,OAAO,CAAC;QACnB,CAAC,aAAa,EAAE,OAAO,CAAC;QACxB,CAAC,OAAO,EAAE,OAAO,CAAC;KACnB;CACF,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAC5B,SAAoB,EACpB,MAAc,EACd,YAAoC,EAAE;IAEtC,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,SAAS,IAAI,MAAM,EAAE,CAAC,CAAC;IAClD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAE5C,OAAO,KAAK,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAChF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAC1B,SAAoB,EACpB,MAAc,EACd,OAA+E;IAE/E,MAAM,EAAE,GAAG,GAAG,SAAS,IAAI,MAAM,EAAE,CAAC;IACpC,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,KAAK,SAAS;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAE,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IACrG,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,KAAK,SAAS;QAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,CAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAC/F,MAAM,OAAO,GAAG,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAClD,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAChF,CAAC;AACD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,eAAe,GAAuE;IAC1F,SAAS,EAAE,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;CAChC,CAAC;AAEF,MAAM,UAAU,YAAY,CAAC,SAAoB,EAAE,MAAc;IAC/D,OAAO,eAAe,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC1F,CAAC"}
@@ -0,0 +1,106 @@
1
+ /**
2
+ * Lo que deepagents DESCARGA fuera del contexto, y dónde tiene que caer.
3
+ *
4
+ * Cuando la salida de una tool pasa de su tope (`toolTokenLimitBeforeEvict`, 20k tokens por
5
+ * omisión) el `FilesystemMiddleware` no la mete en el hilo: la escribe en
6
+ * `/large_tool_results/<tool_call_id>.txt` y deja en su sitio un mensaje que le dice al
7
+ * modelo dónde mirar. Lo mismo hace con un mensaje de usuario enorme
8
+ * (`humanMessageTokenLimitBeforeEvict`, 50k tokens), que va a `/conversation_history/<id>`.
9
+ * Las dos rutas están **a fuego** en la librería —comprobado en deepagents 1.13.2: no hay
10
+ * opción para cambiarlas— y las escribe llamando al backend DIRECTAMENTE, así que no pasan
11
+ * por ninguna tool: ni por el HITL ni por `permissions`.
12
+ *
13
+ * **Y ese es el problema que este módulo cierra.** Medido el 10-09-2026 en el AppDemo real
14
+ * del usuario: `large_tool_results/call_866999.txt`, 26 KB, DENTRO del proyecto XOne y
15
+ * commiteado — ninguna de las dos rutas estaba montada, así que caían en el
16
+ * `FilesystemBackend` de la raíz. Es exactamente la forma del problema de `/artifacts/` que
17
+ * ya documenta `core/artefactos.ts`: una salida interna del agente dentro de la app del
18
+ * cliente, que el siguiente `/sync subir` se lleva a CloudStudio porque el plan son «los
19
+ * ficheros CAMBIADOS». Y de paso ensuciaba la atribución de Revisión, apareciendo como un
20
+ * fichero que escribió la sesión.
21
+ *
22
+ * Este módulo es `core/`: los nombres, dónde va la carpeta y la barrera. Quién la monta es
23
+ * de `agent/` (`agent/proyecto.ts#backendConDescargas`).
24
+ */
25
+ import { dirname, join } from "node:path";
26
+ /**
27
+ * Los dos prefijos virtuales, con barra final: `CompositeBackend` la exige para no
28
+ * reconstruir `//nombre` fuera de la raíz montada — la misma trampa medida con `/skills/`.
29
+ *
30
+ * Los nombres son los de la librería y no una elección nuestra: cambiarlos aquí no cambiaría
31
+ * dónde escribe ella, solo dejaría el montaje sin usar.
32
+ */
33
+ export const RUTA_RESULTADOS_GRANDES = "/large_tool_results/";
34
+ export const RUTA_HISTORIAL_DE_MENSAJES = "/conversation_history/";
35
+ /** Las dos, para montarlas de una vez. */
36
+ export const RUTAS_DE_DESCARGA = [RUTA_RESULTADOS_GRANDES, RUTA_HISTORIAL_DE_MENSAJES];
37
+ /**
38
+ * Dónde cae en DISCO una de esas carpetas: al LADO de la de artefactos de la sesión.
39
+ *
40
+ * Se deriva de la carpeta de artefactos en vez de recibir su propio parámetro, y no es
41
+ * pereza: esa carpeta ya lleva dentro la única decisión que hace falta —¿hay una sesión con
42
+ * IDENTIDAD?—, que `turnoReal.ts` resuelve pasando `.xonecode/sesiones/<id>/artefactos` en
43
+ * la web y cayendo a `.xonecode/artefactos` en el terminal, donde el hilo es un uuid nuevo
44
+ * en cada arranque y no habría nada que reabrir. Dos parámetros serían dos sitios donde
45
+ * contestar la misma pregunta, y el segundo es justo el que se cae en un cableado de ocho
46
+ * saltos — el patrón de fallo que este repo ya ha medido seis veces.
47
+ *
48
+ * Y de vivir AHÍ cuelga gratis lo que si no habría que escribir: `borrarSesion` ya borra la
49
+ * carpeta `<id>` entera (`rmSync(dirname(carpetaDeArtefactosDeSesion(...)))`), así que
50
+ * borrar una conversación se lleva también sus descargas — que es lo correcto, por el mismo
51
+ * motivo que se lleva su checkpoint: ahí dentro está la salida entera de tools que se
52
+ * ejecutaron en ella.
53
+ *
54
+ * En el terminal la carpeta es del PROYECTO y no de un hilo, y eso hay que decirlo: esos
55
+ * ficheros se acumulan entre arranques y nada los poda. Es la misma deuda declarada del
56
+ * checkpointer — en este repo no hay barrido de nada todavía.
57
+ */
58
+ export function carpetaDeDescargas(carpetaDeArtefactos, ruta) {
59
+ return join(dirname(carpetaDeArtefactos), nombreDeCarpeta(ruta));
60
+ }
61
+ /** El nombre llano del prefijo: `/large_tool_results/` → `large_tool_results`. */
62
+ function nombreDeCarpeta(ruta) {
63
+ return ruta.replace(/^\/+/, "").replace(/\/+$/, "");
64
+ }
65
+ /** Los nombres de las dos carpetas, en minúsculas, para la barrera de abajo. */
66
+ const CARPETAS = new Set(RUTAS_DE_DESCARGA.map((r) => nombreDeCarpeta(r).toLowerCase()));
67
+ /**
68
+ * ¿Es esta ruta una descarga del agente escrita en el PROYECTO? Y si lo es, dónde iba.
69
+ *
70
+ * Existe para que la regla no dependa del montaje. Con las dos raíces montadas esto no
71
+ * salta nunca —`CompositeBackend.getBackendAndKey` enruta por PREFIJO de texto y sin mirar
72
+ * si la carpeta destino existe (leído en deepagents 1.13.2), así que el backend del proyecto
73
+ * no llega a ver esas rutas—, y ahí está el sentido: el día que el montaje falte (una
74
+ * consola construida sin carpeta de artefactos, un cableado que se cae en silencio) la
75
+ * escritura falla CERRADO en vez de aterrizar en la app del cliente. Es la misma lección
76
+ * que la fila incondicional de `/adjuntos/` en `permisosDe`, y por el mismo camino: medido,
77
+ * sin ella la ruta se convertía en un fichero del proyecto.
78
+ *
79
+ * **Se mira el PRIMER segmento y nada más**, igual que `artefactoFueraDeSitio`, y con el
80
+ * mismo precio dicho: un proyecto que de verdad tuviera una carpeta `large_tool_results/`
81
+ * en su raíz no podría escribir ahí con el agente. Se acepta — ninguna convención de XOne
82
+ * usa esos nombres, y el otro lado del error es la salida cruda de una tool subida a la app
83
+ * del cliente. Sin distinguir mayúsculas, que es la lección de APFS.
84
+ */
85
+ export function descargaFueraDeSitio(ruta) {
86
+ const segmentos = ruta.split(/[\\/]+/).filter((s) => s.length > 0);
87
+ if (segmentos.length < 2)
88
+ return undefined;
89
+ const primero = segmentos[0].toLowerCase();
90
+ if (!CARPETAS.has(primero))
91
+ return undefined;
92
+ return `/${primero}/`;
93
+ }
94
+ /**
95
+ * El motivo con el que se rechaza. Dice QUÉ es y por qué no va ahí, como `porQueNoAhi`: un
96
+ * error seco haría que el modelo probara otra ruta o diera el trabajo por hecho.
97
+ *
98
+ * Aquí quien lee el mensaje casi nunca es el modelo —estas escrituras las hace la librería,
99
+ * y su hueco en el contexto es un «no se pudo guardar»— así que el destinatario de verdad
100
+ * es quien esté leyendo un log. Por eso nombra la causa probable.
101
+ */
102
+ export const porQueNoEsDelProyecto = (ruta, destino) => `«${ruta}» es una descarga interna del agente, no un fichero del proyecto: ahí acabaría ` +
103
+ `dentro de la app XOne del usuario y subiría a CloudStudio. Va en «${destino}», que se ` +
104
+ `monta fuera del proyecto; si no está montada, esta consola se construyó sin carpeta de ` +
105
+ `sesión y eso es lo que hay que arreglar.`;
106
+ //# sourceMappingURL=descargas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"descargas.js","sourceRoot":"","sources":["../../src/core/descargas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE1C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,sBAAsB,CAAC;AAC9D,MAAM,CAAC,MAAM,0BAA0B,GAAG,wBAAwB,CAAC;AAEnE,0CAA0C;AAC1C,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,uBAAuB,EAAE,0BAA0B,CAAU,CAAC;AAEhG;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,kBAAkB,CAAC,mBAA2B,EAAE,IAAY;IAC1E,OAAO,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,kFAAkF;AAClF,SAAS,eAAe,CAAC,IAAY;IACnC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACtD,CAAC;AAED,gFAAgF;AAChF,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;AAEzF;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,oBAAoB,CAAC,IAAY;IAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACnE,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAC3C,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAE,CAAC,WAAW,EAAE,CAAC;IAC5C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC;QAAE,OAAO,SAAS,CAAC;IAC7C,OAAO,IAAI,OAAO,GAAG,CAAC;AACxB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,IAAY,EAAE,OAAe,EAAU,EAAE,CAC7E,IAAI,IAAI,iFAAiF;IACzF,qEAAqE,OAAO,YAAY;IACxF,yFAAyF;IACzF,0CAA0C,CAAC"}