@nocobase/app-plugin-agents 2.0.0-beta.1 → 2.0.0-beta.11

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 (382) hide show
  1. package/CHANGELOG.md +197 -0
  2. package/README.md +25 -5
  3. package/dist/client/chat/api.d.ts +6 -1
  4. package/dist/client/chat/api.d.ts.map +1 -1
  5. package/dist/client/chat/api.js +18 -0
  6. package/dist/client/chat/api.js.map +1 -1
  7. package/dist/client/chat/controller.d.ts +12 -0
  8. package/dist/client/chat/controller.d.ts.map +1 -1
  9. package/dist/client/chat/controller.js +65 -20
  10. package/dist/client/chat/controller.js.map +1 -1
  11. package/dist/client/chat/notices.d.ts +12 -0
  12. package/dist/client/chat/notices.d.ts.map +1 -0
  13. package/dist/client/chat/notices.js +15 -0
  14. package/dist/client/chat/notices.js.map +1 -0
  15. package/dist/client/chat/submissions.d.ts +16 -0
  16. package/dist/client/chat/submissions.d.ts.map +1 -1
  17. package/dist/client/chat/submissions.js +22 -0
  18. package/dist/client/chat/submissions.js.map +1 -1
  19. package/dist/client/chat/use-chat.d.ts.map +1 -1
  20. package/dist/client/chat/use-chat.js +1 -0
  21. package/dist/client/chat/use-chat.js.map +1 -1
  22. package/dist/client/chat.d.ts +1 -0
  23. package/dist/client/chat.d.ts.map +1 -1
  24. package/dist/client/chat.js +1 -0
  25. package/dist/client/chat.js.map +1 -1
  26. package/dist/client/components/page-container.js +1 -1
  27. package/dist/client/components/page-container.js.map +1 -1
  28. package/dist/client/components/route-child-page.d.ts +1 -1
  29. package/dist/client/components/route-child-page.d.ts.map +1 -1
  30. package/dist/client/components/route-child-page.js +18 -2
  31. package/dist/client/components/route-child-page.js.map +1 -1
  32. package/dist/client/components/route-overlay.d.ts +4 -1
  33. package/dist/client/components/route-overlay.d.ts.map +1 -1
  34. package/dist/client/components/route-overlay.js +32 -3
  35. package/dist/client/components/route-overlay.js.map +1 -1
  36. package/dist/client/components/ui/alert-dialog.d.ts +3 -1
  37. package/dist/client/components/ui/alert-dialog.d.ts.map +1 -1
  38. package/dist/client/components/ui/alert-dialog.js +2 -2
  39. package/dist/client/components/ui/alert-dialog.js.map +1 -1
  40. package/dist/client/components/unsaved-changes.d.ts.map +1 -1
  41. package/dist/client/components/unsaved-changes.js +17 -4
  42. package/dist/client/components/unsaved-changes.js.map +1 -1
  43. package/dist/client/components/use-route-overlay.d.ts +2 -9
  44. package/dist/client/components/use-route-overlay.d.ts.map +1 -1
  45. package/dist/client/components/use-route-overlay.js +5 -3
  46. package/dist/client/components/use-route-overlay.js.map +1 -1
  47. package/dist/client/lib/format.d.ts.map +1 -1
  48. package/dist/client/lib/format.js +1 -0
  49. package/dist/client/lib/format.js.map +1 -1
  50. package/dist/client/locales/de-DE.d.ts.map +1 -1
  51. package/dist/client/locales/de-DE.js +145 -109
  52. package/dist/client/locales/de-DE.js.map +1 -1
  53. package/dist/client/locales/en-US.d.ts +2 -0
  54. package/dist/client/locales/en-US.d.ts.map +1 -1
  55. package/dist/client/locales/en-US.js +4 -2
  56. package/dist/client/locales/en-US.js.map +1 -1
  57. package/dist/client/locales/es-ES.d.ts.map +1 -1
  58. package/dist/client/locales/es-ES.js +222 -186
  59. package/dist/client/locales/es-ES.js.map +1 -1
  60. package/dist/client/locales/fr-FR.d.ts.map +1 -1
  61. package/dist/client/locales/fr-FR.js +154 -118
  62. package/dist/client/locales/fr-FR.js.map +1 -1
  63. package/dist/client/locales/id-ID.d.ts.map +1 -1
  64. package/dist/client/locales/id-ID.js +143 -107
  65. package/dist/client/locales/id-ID.js.map +1 -1
  66. package/dist/client/locales/index.d.ts.map +1 -1
  67. package/dist/client/locales/index.js +2 -0
  68. package/dist/client/locales/index.js.map +1 -1
  69. package/dist/client/locales/ja-JP.d.ts.map +1 -1
  70. package/dist/client/locales/ja-JP.js +226 -190
  71. package/dist/client/locales/ja-JP.js.map +1 -1
  72. package/dist/client/locales/ko-KR.d.ts +5 -0
  73. package/dist/client/locales/ko-KR.d.ts.map +1 -0
  74. package/dist/client/locales/ko-KR.js +1319 -0
  75. package/dist/client/locales/ko-KR.js.map +1 -0
  76. package/dist/client/locales/pt-BR.d.ts.map +1 -1
  77. package/dist/client/locales/pt-BR.js +216 -180
  78. package/dist/client/locales/pt-BR.js.map +1 -1
  79. package/dist/client/locales/ru-RU.d.ts +5 -0
  80. package/dist/client/locales/ru-RU.d.ts.map +1 -0
  81. package/dist/client/locales/ru-RU.js +1349 -0
  82. package/dist/client/locales/ru-RU.js.map +1 -0
  83. package/dist/client/locales/runWait.en-US.d.ts +2 -0
  84. package/dist/client/locales/runWait.en-US.d.ts.map +1 -1
  85. package/dist/client/locales/runWait.en-US.js +2 -0
  86. package/dist/client/locales/runWait.en-US.js.map +1 -1
  87. package/dist/client/locales/runWait.zh-CN.d.ts.map +1 -1
  88. package/dist/client/locales/runWait.zh-CN.js +2 -0
  89. package/dist/client/locales/runWait.zh-CN.js.map +1 -1
  90. package/dist/client/locales/runtimes.en-US.d.ts +9 -0
  91. package/dist/client/locales/runtimes.en-US.d.ts.map +1 -1
  92. package/dist/client/locales/runtimes.en-US.js +11 -2
  93. package/dist/client/locales/runtimes.en-US.js.map +1 -1
  94. package/dist/client/locales/runtimes.zh-CN.d.ts.map +1 -1
  95. package/dist/client/locales/runtimes.zh-CN.js +11 -2
  96. package/dist/client/locales/runtimes.zh-CN.js.map +1 -1
  97. package/dist/client/locales/vi-VN.d.ts.map +1 -1
  98. package/dist/client/locales/vi-VN.js +182 -146
  99. package/dist/client/locales/vi-VN.js.map +1 -1
  100. package/dist/client/locales/zh-CN.d.ts.map +1 -1
  101. package/dist/client/locales/zh-CN.js +4 -2
  102. package/dist/client/locales/zh-CN.js.map +1 -1
  103. package/dist/client/locales/zh-TW.d.ts.map +1 -1
  104. package/dist/client/locales/zh-TW.js +159 -123
  105. package/dist/client/locales/zh-TW.js.map +1 -1
  106. package/dist/client/pages/runtimes/quota-limit-setting.d.ts +12 -0
  107. package/dist/client/pages/runtimes/quota-limit-setting.d.ts.map +1 -0
  108. package/dist/client/pages/runtimes/quota-limit-setting.js +57 -0
  109. package/dist/client/pages/runtimes/quota-limit-setting.js.map +1 -0
  110. package/dist/client/pages/runtimes/quota.d.ts +3 -2
  111. package/dist/client/pages/runtimes/quota.d.ts.map +1 -1
  112. package/dist/client/pages/runtimes/quota.js +10 -4
  113. package/dist/client/pages/runtimes/quota.js.map +1 -1
  114. package/dist/client/pages/runtimes/runner-runs.d.ts.map +1 -1
  115. package/dist/client/pages/runtimes/runner-runs.js +2 -8
  116. package/dist/client/pages/runtimes/runner-runs.js.map +1 -1
  117. package/dist/client/pages/runtimes/runner-tools.d.ts.map +1 -1
  118. package/dist/client/pages/runtimes/runner-tools.js +7 -16
  119. package/dist/client/pages/runtimes/runner-tools.js.map +1 -1
  120. package/dist/client/pages/runtimes/workspace-diagnostics.js +3 -3
  121. package/dist/client/pages/runtimes/workspace-diagnostics.js.map +1 -1
  122. package/dist/client/pages/usage/date-range-picker.d.ts.map +1 -1
  123. package/dist/client/pages/usage/date-range-picker.js +3 -1
  124. package/dist/client/pages/usage/date-range-picker.js.map +1 -1
  125. package/dist/client/routes.d.ts.map +1 -1
  126. package/dist/client/routes.js +7 -0
  127. package/dist/client/routes.js.map +1 -1
  128. package/dist/client/runs/format-wait.d.ts.map +1 -1
  129. package/dist/client/runs/format-wait.js +2 -0
  130. package/dist/client/runs/format-wait.js.map +1 -1
  131. package/dist/database/migrations/.manifest.json +20 -0
  132. package/dist/database/migrations/202611070001_ag_run_runner_pin.d.ts +4 -0
  133. package/dist/database/migrations/202611070001_ag_run_runner_pin.d.ts.map +1 -0
  134. package/dist/database/migrations/202611070001_ag_run_runner_pin.js +17 -0
  135. package/dist/database/migrations/202611070001_ag_run_runner_pin.js.map +1 -0
  136. package/dist/database/migrations/202611080001_ag_conversation_shares.d.ts +4 -0
  137. package/dist/database/migrations/202611080001_ag_conversation_shares.d.ts.map +1 -0
  138. package/dist/database/migrations/202611080001_ag_conversation_shares.js +25 -0
  139. package/dist/database/migrations/202611080001_ag_conversation_shares.js.map +1 -0
  140. package/dist/database/migrations/202611080002_ag_run_failure_params.d.ts +4 -0
  141. package/dist/database/migrations/202611080002_ag_run_failure_params.d.ts.map +1 -0
  142. package/dist/database/migrations/202611080002_ag_run_failure_params.js +17 -0
  143. package/dist/database/migrations/202611080002_ag_run_failure_params.js.map +1 -0
  144. package/dist/database/migrations/202611090001_ag_runner_preference.d.ts +9 -0
  145. package/dist/database/migrations/202611090001_ag_runner_preference.d.ts.map +1 -0
  146. package/dist/database/migrations/202611090001_ag_runner_preference.js +28 -0
  147. package/dist/database/migrations/202611090001_ag_runner_preference.js.map +1 -0
  148. package/dist/database/migrations/202611110001_ag_runner_quota_limits.d.ts +4 -0
  149. package/dist/database/migrations/202611110001_ag_runner_quota_limits.d.ts.map +1 -0
  150. package/dist/database/migrations/202611110001_ag_runner_quota_limits.js +17 -0
  151. package/dist/database/migrations/202611110001_ag_runner_quota_limits.js.map +1 -0
  152. package/dist/package.json +4 -2
  153. package/dist/server/composition.d.ts +9 -1
  154. package/dist/server/composition.d.ts.map +1 -1
  155. package/dist/server/composition.js +31 -2
  156. package/dist/server/composition.js.map +1 -1
  157. package/dist/server/core/agents/agent.service.d.ts +2 -1
  158. package/dist/server/core/agents/agent.service.d.ts.map +1 -1
  159. package/dist/server/core/agents/agent.service.js.map +1 -1
  160. package/dist/server/core/agents/agent.store.d.ts +2 -2
  161. package/dist/server/core/agents/agent.store.d.ts.map +1 -1
  162. package/dist/server/core/agents/agent.store.js +8 -2
  163. package/dist/server/core/agents/agent.store.js.map +1 -1
  164. package/dist/server/core/brief/brief.d.ts +10 -5
  165. package/dist/server/core/brief/brief.d.ts.map +1 -1
  166. package/dist/server/core/brief/brief.js +36 -13
  167. package/dist/server/core/brief/brief.js.map +1 -1
  168. package/dist/server/core/brief/index.d.ts +1 -1
  169. package/dist/server/core/brief/index.d.ts.map +1 -1
  170. package/dist/server/core/brief/index.js +1 -1
  171. package/dist/server/core/brief/index.js.map +1 -1
  172. package/dist/server/core/conversations/attachments.d.ts +6 -4
  173. package/dist/server/core/conversations/attachments.d.ts.map +1 -1
  174. package/dist/server/core/conversations/attachments.js +66 -22
  175. package/dist/server/core/conversations/attachments.js.map +1 -1
  176. package/dist/server/core/conversations/chat-settings.d.ts +1 -1
  177. package/dist/server/core/conversations/chat-settings.d.ts.map +1 -1
  178. package/dist/server/core/conversations/chat-settings.js +6 -0
  179. package/dist/server/core/conversations/chat-settings.js.map +1 -1
  180. package/dist/server/core/conversations/conversation.service.d.ts +3 -1
  181. package/dist/server/core/conversations/conversation.service.d.ts.map +1 -1
  182. package/dist/server/core/conversations/conversation.service.js +198 -18
  183. package/dist/server/core/conversations/conversation.service.js.map +1 -1
  184. package/dist/server/core/conversations/conversation.store.d.ts +2 -0
  185. package/dist/server/core/conversations/conversation.store.d.ts.map +1 -1
  186. package/dist/server/core/conversations/conversation.store.js.map +1 -1
  187. package/dist/server/core/conversations/index.d.ts +1 -0
  188. package/dist/server/core/conversations/index.d.ts.map +1 -1
  189. package/dist/server/core/conversations/links.d.ts.map +1 -1
  190. package/dist/server/core/conversations/links.js +10 -5
  191. package/dist/server/core/conversations/links.js.map +1 -1
  192. package/dist/server/core/conversations/ports.d.ts +8 -2
  193. package/dist/server/core/conversations/ports.d.ts.map +1 -1
  194. package/dist/server/core/conversations/shares.d.ts +38 -0
  195. package/dist/server/core/conversations/shares.d.ts.map +1 -0
  196. package/dist/server/core/conversations/shares.js +189 -0
  197. package/dist/server/core/conversations/shares.js.map +1 -0
  198. package/dist/server/core/reports/report.service.d.ts.map +1 -1
  199. package/dist/server/core/reports/report.service.js +24 -13
  200. package/dist/server/core/reports/report.service.js.map +1 -1
  201. package/dist/server/core/runs/access.d.ts +7 -1
  202. package/dist/server/core/runs/access.d.ts.map +1 -1
  203. package/dist/server/core/runs/access.js +51 -2
  204. package/dist/server/core/runs/access.js.map +1 -1
  205. package/dist/server/core/runs/claim.d.ts +22 -3
  206. package/dist/server/core/runs/claim.d.ts.map +1 -1
  207. package/dist/server/core/runs/claim.js +260 -42
  208. package/dist/server/core/runs/claim.js.map +1 -1
  209. package/dist/server/core/runs/eligibility.d.ts.map +1 -1
  210. package/dist/server/core/runs/eligibility.js +1 -0
  211. package/dist/server/core/runs/eligibility.js.map +1 -1
  212. package/dist/server/core/runs/extensions.d.ts +30 -2
  213. package/dist/server/core/runs/extensions.d.ts.map +1 -1
  214. package/dist/server/core/runs/extensions.js +18 -1
  215. package/dist/server/core/runs/extensions.js.map +1 -1
  216. package/dist/server/core/runs/git-credentials.d.ts.map +1 -1
  217. package/dist/server/core/runs/git-credentials.js +24 -2
  218. package/dist/server/core/runs/git-credentials.js.map +1 -1
  219. package/dist/server/core/runs/identity.d.ts.map +1 -1
  220. package/dist/server/core/runs/identity.js +9 -0
  221. package/dist/server/core/runs/identity.js.map +1 -1
  222. package/dist/server/core/runs/index.d.ts +3 -2
  223. package/dist/server/core/runs/index.d.ts.map +1 -1
  224. package/dist/server/core/runs/index.js +2 -1
  225. package/dist/server/core/runs/index.js.map +1 -1
  226. package/dist/server/core/runs/lifecycle.d.ts.map +1 -1
  227. package/dist/server/core/runs/lifecycle.js +14 -0
  228. package/dist/server/core/runs/lifecycle.js.map +1 -1
  229. package/dist/server/core/runs/npm-credentials.d.ts +35 -0
  230. package/dist/server/core/runs/npm-credentials.d.ts.map +1 -0
  231. package/dist/server/core/runs/npm-credentials.js +83 -0
  232. package/dist/server/core/runs/npm-credentials.js.map +1 -0
  233. package/dist/server/core/runs/ports.d.ts +24 -3
  234. package/dist/server/core/runs/ports.d.ts.map +1 -1
  235. package/dist/server/core/runs/ports.js.map +1 -1
  236. package/dist/server/core/runs/preview.d.ts +1 -4
  237. package/dist/server/core/runs/preview.d.ts.map +1 -1
  238. package/dist/server/core/runs/preview.js +10 -5
  239. package/dist/server/core/runs/preview.js.map +1 -1
  240. package/dist/server/core/runs/quota-wait.d.ts +7 -0
  241. package/dist/server/core/runs/quota-wait.d.ts.map +1 -0
  242. package/dist/server/core/runs/quota-wait.js +56 -0
  243. package/dist/server/core/runs/quota-wait.js.map +1 -0
  244. package/dist/server/core/runs/run-data-purge.d.ts.map +1 -1
  245. package/dist/server/core/runs/run-data-purge.js +1 -0
  246. package/dist/server/core/runs/run-data-purge.js.map +1 -1
  247. package/dist/server/core/runs/run.service.d.ts +31 -5
  248. package/dist/server/core/runs/run.service.d.ts.map +1 -1
  249. package/dist/server/core/runs/run.service.js +129 -35
  250. package/dist/server/core/runs/run.service.js.map +1 -1
  251. package/dist/server/core/runs/run.store.d.ts +24 -0
  252. package/dist/server/core/runs/run.store.d.ts.map +1 -1
  253. package/dist/server/core/runs/run.store.js +44 -0
  254. package/dist/server/core/runs/run.store.js.map +1 -1
  255. package/dist/server/core/runs/sweeper.d.ts.map +1 -1
  256. package/dist/server/core/runs/sweeper.js +2 -0
  257. package/dist/server/core/runs/sweeper.js.map +1 -1
  258. package/dist/server/core/runs/transitions.d.ts +1 -0
  259. package/dist/server/core/runs/transitions.d.ts.map +1 -1
  260. package/dist/server/core/runs/transitions.js +15 -1
  261. package/dist/server/core/runs/transitions.js.map +1 -1
  262. package/dist/server/core/runs/workload.d.ts +2 -2
  263. package/dist/server/core/runs/workload.d.ts.map +1 -1
  264. package/dist/server/core/runs/workload.js +62 -9
  265. package/dist/server/core/runs/workload.js.map +1 -1
  266. package/dist/server/kernel/clock.d.ts +2 -0
  267. package/dist/server/kernel/clock.d.ts.map +1 -1
  268. package/dist/server/kernel/clock.js +14 -0
  269. package/dist/server/kernel/clock.js.map +1 -1
  270. package/dist/server/kernel/events.d.ts +4 -1
  271. package/dist/server/kernel/events.d.ts.map +1 -1
  272. package/dist/server/kernel/events.js.map +1 -1
  273. package/dist/server/locales/de-DE.js +3 -3
  274. package/dist/server/locales/de-DE.js.map +1 -1
  275. package/dist/server/locales/es-ES.js +6 -6
  276. package/dist/server/locales/es-ES.js.map +1 -1
  277. package/dist/server/locales/fr-FR.js +4 -4
  278. package/dist/server/locales/fr-FR.js.map +1 -1
  279. package/dist/server/locales/id-ID.js +5 -5
  280. package/dist/server/locales/id-ID.js.map +1 -1
  281. package/dist/server/locales/index.d.ts.map +1 -1
  282. package/dist/server/locales/index.js +2 -0
  283. package/dist/server/locales/index.js.map +1 -1
  284. package/dist/server/locales/ja-JP.d.ts.map +1 -1
  285. package/dist/server/locales/ja-JP.js +6 -6
  286. package/dist/server/locales/ja-JP.js.map +1 -1
  287. package/dist/server/locales/ko-KR.d.ts +5 -0
  288. package/dist/server/locales/ko-KR.d.ts.map +1 -0
  289. package/dist/server/locales/ko-KR.js +59 -0
  290. package/dist/server/locales/ko-KR.js.map +1 -0
  291. package/dist/server/locales/pt-BR.js +6 -6
  292. package/dist/server/locales/pt-BR.js.map +1 -1
  293. package/dist/server/locales/ru-RU.d.ts +5 -0
  294. package/dist/server/locales/ru-RU.d.ts.map +1 -0
  295. package/dist/server/locales/ru-RU.js +59 -0
  296. package/dist/server/locales/ru-RU.js.map +1 -0
  297. package/dist/server/locales/vi-VN.js +6 -6
  298. package/dist/server/locales/vi-VN.js.map +1 -1
  299. package/dist/server/locales/zh-TW.d.ts.map +1 -1
  300. package/dist/server/locales/zh-TW.js +6 -6
  301. package/dist/server/locales/zh-TW.js.map +1 -1
  302. package/dist/server/online/agent/persistence/store.d.ts.map +1 -1
  303. package/dist/server/online/agent/persistence/store.js +3 -0
  304. package/dist/server/online/agent/persistence/store.js.map +1 -1
  305. package/dist/server/online/agent/runner/projection.d.ts +1 -1
  306. package/dist/server/online/agent/runner/projection.d.ts.map +1 -1
  307. package/dist/server/online/agent/runner/projection.js +8 -1
  308. package/dist/server/online/agent/runner/projection.js.map +1 -1
  309. package/dist/server/online/files/input.d.ts +2 -2
  310. package/dist/server/online/files/input.d.ts.map +1 -1
  311. package/dist/server/online/files/input.js +5 -6
  312. package/dist/server/online/files/input.js.map +1 -1
  313. package/dist/server/online/files/kimi.d.ts.map +1 -1
  314. package/dist/server/online/files/kimi.js +2 -2
  315. package/dist/server/online/files/kimi.js.map +1 -1
  316. package/dist/server/online/files/service.d.ts +2 -1
  317. package/dist/server/online/files/service.d.ts.map +1 -1
  318. package/dist/server/online/files/service.js +11 -10
  319. package/dist/server/online/files/service.js.map +1 -1
  320. package/dist/server/providers/agents.d.ts.map +1 -1
  321. package/dist/server/providers/agents.js +5 -2
  322. package/dist/server/providers/agents.js.map +1 -1
  323. package/dist/server/routes/admin.d.ts +1 -0
  324. package/dist/server/routes/admin.d.ts.map +1 -1
  325. package/dist/server/routes/admin.js +41 -14
  326. package/dist/server/routes/admin.js.map +1 -1
  327. package/dist/server/routes/chat.d.ts.map +1 -1
  328. package/dist/server/routes/chat.js +107 -24
  329. package/dist/server/routes/chat.js.map +1 -1
  330. package/dist/server/routes/index.d.ts.map +1 -1
  331. package/dist/server/routes/index.js +8 -2
  332. package/dist/server/routes/index.js.map +1 -1
  333. package/dist/server/routes/run.js +1 -1
  334. package/dist/server/routes/run.js.map +1 -1
  335. package/dist/server/routes/runners/admin.d.ts.map +1 -1
  336. package/dist/server/routes/runners/admin.js +3 -3
  337. package/dist/server/routes/runners/admin.js.map +1 -1
  338. package/dist/server/routes/runners/install.d.ts.map +1 -1
  339. package/dist/server/routes/runners/install.js +5 -0
  340. package/dist/server/routes/runners/install.js.map +1 -1
  341. package/dist/server/routes/runners/runner.d.ts.map +1 -1
  342. package/dist/server/routes/runners/runner.js +13 -22
  343. package/dist/server/routes/runners/runner.js.map +1 -1
  344. package/dist/server/routes/runners/runs.d.ts +1 -1
  345. package/dist/server/routes/runners/runs.d.ts.map +1 -1
  346. package/dist/server/routes/runners/runs.js +20 -1
  347. package/dist/server/routes/runners/runs.js.map +1 -1
  348. package/dist/server/routes/schemas.d.ts +4 -0
  349. package/dist/server/routes/schemas.d.ts.map +1 -1
  350. package/dist/server/routes/schemas.js +31 -6
  351. package/dist/server/routes/schemas.js.map +1 -1
  352. package/dist/server/runners/runner.service.d.ts.map +1 -1
  353. package/dist/server/runners/runner.service.js +33 -9
  354. package/dist/server/runners/runner.service.js.map +1 -1
  355. package/dist/server/runners/runner.store.d.ts +1 -0
  356. package/dist/server/runners/runner.store.d.ts.map +1 -1
  357. package/dist/server/runners/runner.store.js +1 -0
  358. package/dist/server/runners/runner.store.js.map +1 -1
  359. package/dist/server/tokens.d.ts +1 -1
  360. package/dist/server/tokens.d.ts.map +1 -1
  361. package/dist/server/tokens.js.map +1 -1
  362. package/dist/shared/briefs.d.ts +2 -6
  363. package/dist/shared/briefs.d.ts.map +1 -1
  364. package/dist/shared/conversations.d.ts +34 -3
  365. package/dist/shared/conversations.d.ts.map +1 -1
  366. package/dist/shared/conversations.js +10 -2
  367. package/dist/shared/conversations.js.map +1 -1
  368. package/dist/shared/runners.d.ts +7 -3
  369. package/dist/shared/runners.d.ts.map +1 -1
  370. package/dist/shared/runners.js +20 -4
  371. package/dist/shared/runners.js.map +1 -1
  372. package/dist/shared/runs.d.ts +11 -3
  373. package/dist/shared/runs.d.ts.map +1 -1
  374. package/dist/shared/runs.js +2 -0
  375. package/dist/shared/runs.js.map +1 -1
  376. package/docs/conversation-sharing.md +55 -0
  377. package/package.json +18 -16
  378. package/skills/nocobase-app-plugin-agents/SKILL.md +5 -1
  379. package/skills/nocobase-app-plugin-agents/references/extension-points.md +5 -1
  380. package/skills/nocobase-app-plugin-agents/references/online-agent.md +6 -6
  381. package/skills/nocobase-app-plugin-agents/references/runners.md +1 -1
  382. package/skills/nocobase-app-plugin-agents/references/verification-and-troubleshooting.md +2 -1
@@ -1,5 +1,3 @@
1
- import runtimesEnUS from './runtimes.en-US.js';
2
- import chatEnUS from './chat.en-US.js';
3
1
  const esES = {
4
2
  modelSuggestions: {
5
3
  design: 'Razonamiento más potente: propuestas, arquitectura, investigaciones difíciles y revisión de cambios importantes; también implementación habitual y cambios entre paquetes.',
@@ -55,7 +53,7 @@ const esES = {
55
53
  title: '¿Descartar cambios no guardados?',
56
54
  },
57
55
  errors: {
58
- boundRunnerIncompatible: 'Este ejecutor no puede ejecutar el Agent seleccionado. Cambie de ejecutor o inicie una conversación nueva.',
56
+ boundRunnerIncompatible: 'Este entorno no puede ejecutar el Agent seleccionado. Cambia de entorno para continuar.',
59
57
  CONFLICT: 'Entretanto cambió. Vuelva a cargar y vuelva a intentarlo.',
60
58
  REVISION_CONFLICT: 'Entretanto cambió. Vuelva a cargar y vuelva a intentarlo.',
61
59
  FORBIDDEN: 'No está permitido hacer esto.',
@@ -95,30 +93,31 @@ const esES = {
95
93
  cline: 'Cline',
96
94
  amp: 'Amp',
97
95
  vibe: 'Mistral Vibe',
96
+ dsh: 'DeepSeek Harness',
98
97
  },
99
98
  agents: {
100
99
  unavailableNow: 'No disponible ahora',
101
100
  title: 'Agentes',
102
- description: 'Añada agentes a partir de los modelos que informan los ejecutores. El Lead Agent asigna cada paso de una tarea al agente cuya descripción encaja con ella.',
103
- fromRunners: 'Agentes de ejecutores',
101
+ description: 'Añade Agents a partir de los modelos que informan los entornos de ejecución. El Lead Agent encarga cada paso de una tarea al Agent cuya descripción encaja.',
102
+ fromRunners: 'Agentes de entornos de ejecución',
104
103
  display: {
105
104
  search: 'Búsqueda de modelos o proveedores',
106
105
  select: 'Seleccione {{name}}',
107
106
  showDisabled: 'Mostrar deshabilitados',
108
107
  hideDisabled: 'Ocultar deshabilitados',
109
108
  },
110
- filterLabel: 'Mostrar agentes',
109
+ filterLabel: 'Mostrar Agents',
111
110
  filters: {
112
111
  all: 'Todos {{count}}',
113
112
  enabled: 'Habilitado {{count}}',
114
- unreported: 'Sin ejecutor {{count}}',
113
+ unreported: 'Sin entorno de ejecución {{count}}',
115
114
  },
116
- loadFailed: 'No se pudieron cargar los agentes',
115
+ loadFailed: 'No se pudieron cargar los Agents',
117
116
  loadMore: 'Cargar más',
118
- emptyTitle: 'Aún no hay agentes',
119
- emptyDescription: 'Conecte un ejecutor con una herramienta de codificación con la sesión iniciada y añada un agente desde «Modelos disponibles».',
120
- noneInFilter: 'Ningún agente aquí.',
121
- howToAdd: 'Para añadir un agente, instale una herramienta de codificación en un ejecutor e inicie sesión para usar un modelo disponible. Cuando el ejecutor lo informe, añada el agente desde «Modelos disponibles» indicando en qué destaca. Quedará habilitado al añadirlo. Un agente disponible solo en ejecutores personales trabaja únicamente en las tareas que inician sus propietarios.',
117
+ emptyTitle: 'Aún no hay Agents',
118
+ emptyDescription: 'Conecte un entorno de ejecución con una herramienta de codificación con la sesión iniciada y añada un Agent desde «Modelos disponibles».',
119
+ noneInFilter: 'Ningún Agent aquí.',
120
+ howToAdd: 'Para añadir un Agent, instala una herramienta de programación en un entorno de ejecución e inicia sesión en un modelo que puedas usar: cuando el entorno lo informe, añádelo desde Modelos disponibles escribiendo en qué es bueno. Un Agent que solo tienen entornos personales trabaja solo en tareas que inician sus propietarios.',
122
121
  goodAtMissing: 'Aún no escrito',
123
122
  columns: {
124
123
  agent: 'Agente',
@@ -128,23 +127,23 @@ const esES = {
128
127
  state: 'Estado',
129
128
  },
130
129
  where: {
131
- none: 'Ningún ejecutor',
132
- team_one: 'Ejecutor del equipo {{count}}',
133
- team_other: 'Ejecutores del equipo {{count}}',
134
- personal_one: 'Ejecutor personal {{count}} en línea',
135
- personal_other: '{{count}} ejecutores personales en línea',
130
+ none: 'Ningún entorno de ejecución',
131
+ team_one: '{{count}} entorno de ejecución del equipo',
132
+ team_other: '{{count}} entornos de ejecución del equipo',
133
+ personal_one: '{{count}} entorno de ejecución personal en línea',
134
+ personal_other: '{{count}} entornos de ejecución personales en línea',
136
135
  both: 'Equipo {{team}} · Personal {{personal}}',
137
136
  names: '{{names}}',
138
- noneOnline: 'Ningún ejecutor en línea ahora',
139
- personalOnly: 'Solo ejecutores personales',
137
+ noneOnline: 'Ningún entorno de ejecución en línea ahora',
138
+ personalOnly: 'Solo entornos de ejecución personales',
140
139
  lastReported: 'Último reportado {{when}}',
141
- team_many: 'Ejecutores del equipo {{count}}',
142
- personal_many: '{{count}} ejecutores personales en línea',
140
+ team_many: '{{count}} entornos de ejecución del equipo',
141
+ personal_many: '{{count}} entornos de ejecución personales en línea',
143
142
  },
144
143
  state: {
145
144
  enabled: 'Habilitado',
146
145
  disabled: 'Deshabilitado',
147
- unreported: 'Ningún ejecutor',
146
+ unreported: 'Ningún entorno de ejecución',
148
147
  },
149
148
  effort: {
150
149
  default: 'Valor predeterminado de la herramienta',
@@ -158,14 +157,14 @@ const esES = {
158
157
  ultra: 'Ultra',
159
158
  },
160
159
  enable: {
161
- reportedBy_one: 'Reportado por el ejecutor {{count}} en línea: {{names}}.',
162
- reportedBy_other: 'Reportado por ejecutores {{count}} en línea: {{names}}.',
163
- noRunnerNow: 'Ningún ejecutor que lo tenga está en línea ahora.',
164
- goodAtHint: 'El Lead Agent decide qué entregarle a este agente con estas palabras. Di lo que conviene y lo que no.',
160
+ reportedBy_one: 'Reportado por el entorno de ejecución {{count}} en línea: {{names}}.',
161
+ reportedBy_other: 'Reportado por entornos de ejecución {{count}} en línea: {{names}}.',
162
+ noRunnerNow: 'Ningún entorno de ejecución que lo tenga está en línea ahora.',
163
+ goodAtHint: 'El Lead Agent decide qué entregarle a este Agent con estas palabras. Di lo que conviene y lo que no.',
165
164
  goodAtRequired: 'Escriba en qué es bueno antes de habilitarlo.',
166
165
  effortHint: 'El Lead Agent no puede cambiarlo cuando entrega el trabajo.',
167
- personalOnly: 'Sólo lo tienen los ejecutores personales: el Lead Agent lo entrega trabajo sólo en los problemas que inician sus propietarios.',
168
- reportedBy_many: 'Reportado por ejecutores {{count}} en línea: {{names}}.',
166
+ personalOnly: 'Solo lo tienen entornos personales: el Lead Agent le encarga trabajo solo en tareas que inician sus propietarios.',
167
+ reportedBy_many: 'Reportado por entornos de ejecución {{count}} en línea: {{names}}.',
169
168
  },
170
169
  edit: {
171
170
  button: 'Editar',
@@ -175,9 +174,9 @@ const esES = {
175
174
  done: '{{name}} guardado',
176
175
  },
177
176
  available: {
178
- open: 'Añadir agente',
177
+ open: 'Añadir Agent',
179
178
  title: 'Modelos disponibles',
180
- description: 'Solo las herramientas marcadas en el tiempo de ejecución se detectan y aparecen aquí. Las combinaciones recomendadas por la aplicación se crean y habilitan solas en cuanto un ejecutor las reporta; añada un agente a partir de cualquier otra.',
179
+ description: 'Solo las herramientas marcadas en el entorno de ejecución se detectan y aparecen aquí. Las combinaciones recomendadas por la aplicación se crean y habilitan solas en cuanto un entorno de ejecución las reporta; añada un Agent a partir de cualquier otra.',
181
180
  recommended: 'Se habilita automáticamente al reportarse',
182
181
  added: 'Añadido',
183
182
  add: 'Añadir',
@@ -188,7 +187,7 @@ const esES = {
188
187
  failed: 'Detección fallida',
189
188
  },
190
189
  details: 'Detalles de la herramienta',
191
- setupCommand: 'Ejecute {{command}} en el tiempo de ejecución.',
190
+ setupCommand: 'Ejecute {{command}} en el entorno de ejecución.',
192
191
  setupUnknown: 'Esta herramienta necesita configuración, pero no conocemos el comando para ello.',
193
192
  upgradeAdvice: 'Actualiza la herramienta y su adaptador ACP a las últimas versiones en el entorno y vuelve a detectar.',
194
193
  minimumVersionUnknown: 'Se desconoce la versión mínima compatible de la herramienta. Consulte su documentación de compatibilidad.',
@@ -199,23 +198,23 @@ const esES = {
199
198
  group_one: '{{tool}} · {{count}} modelo · {{runners}}',
200
199
  group_other: '{{tool}} · {{count}} modelos · {{runners}}',
201
200
  group_many: '{{tool}} · {{count}} modelos · {{runners}}',
202
- runners_one: '{{count}} ejecutor',
203
- runners_other: '{{count}} ejecutores',
204
- runners_many: '{{count}} ejecutores',
201
+ runners_one: '{{count}} entorno de ejecución',
202
+ runners_other: '{{count}} entornos de ejecución',
203
+ runners_many: '{{count}} entornos de ejecución',
205
204
  noModels: 'No hay ningún modelo aquí.',
206
205
  selectedCount_one: '{{count}} seleccionado',
207
206
  selectedCount_other: '{{count}} seleccionados',
208
207
  selectedCount_many: '{{count}} seleccionados',
209
208
  addSelected: 'Añadir {{count}}',
210
- confirmTitle_one: 'Añadir {{count}} agente',
211
- confirmTitle_other: 'Añadir {{count}} agentes',
209
+ confirmTitle_one: 'Añadir {{count}} Agent',
210
+ confirmTitle_other: 'Añadir {{count}} Agents',
212
211
  confirmTitle_many: 'Añadir {{count}} agentes',
213
212
  confirmAction_one: 'Añadir {{count}}',
214
213
  confirmAction_other: 'Añadir {{count}}',
215
214
  confirmAction_many: 'Añadir {{count}}',
216
215
  goodAtNeeded: '¿En qué es bueno?',
217
- addedCount_one: 'Se añadió {{count}} agente.',
218
- addedCount_other: 'Se añadieron {{count}} agentes.',
216
+ addedCount_one: 'Se añadió {{count}} Agent.',
217
+ addedCount_other: 'Se añadieron {{count}} Agents.',
219
218
  addedCount_many: 'Se añadieron {{count}} agentes.',
220
219
  addedPartial: 'Se añadieron {{succeeded}}; {{failed}} no se pudieron añadir. El motivo está debajo de cada uno.',
221
220
  addFailed: '{{failed}} no se pudieron añadir. El motivo está debajo de cada uno; inténtelo de nuevo.',
@@ -223,32 +222,32 @@ const esES = {
223
222
  },
224
223
  agentTypes: {
225
224
  label: 'Tipo de agente',
226
- question: '¿Qué tipo de agente?',
225
+ question: '¿Qué tipo de Agent?',
227
226
  online: 'En línea',
228
227
  runner: 'Ejecutor',
229
- onlineHint: 'Respuestas en segundos en el servidor a través de un servicio modelo. No se necesita tiempo de ejecución; no puede tocar el código.',
230
- runnerHint: 'Controla una herramienta de codificación en tiempo de ejecución y funciona en un directorio de trabajo: código, archivos, comandos.',
231
- immutable: 'Un agente mantiene su tipo; crear otro agente para el otro tipo.',
228
+ onlineHint: 'Respuestas en segundos en el servidor a través de un servicio modelo. No se necesita entorno de ejecución; no puede tocar el código.',
229
+ runnerHint: 'Controla una herramienta de codificación en entorno de ejecución y funciona en un directorio de trabajo: código, archivos, comandos.',
230
+ immutable: 'Un Agent mantiene su tipo; crear otro Agent para el otro tipo.',
232
231
  onServer: 'En el servidor',
233
232
  filterAll: 'Todos los tipos',
234
- noneOfType: 'Ningún agente de este tipo.',
233
+ noneOfType: 'Ningún Agent de este tipo.',
235
234
  },
236
235
  agentSkills: {
237
236
  title: 'Habilidades',
238
- description: 'Manuales que el agente lee cuando una tarea coincide con su descripción. Colocado en su directorio de trabajo antes de cada ejecución.',
237
+ description: 'Manuales que el Agent lee cuando una tarea coincide con su descripción. Colocado en su directorio de trabajo antes de cada ejecución.',
239
238
  manage: 'Administrar habilidades',
240
239
  placeholder: 'Seleccionar habilidades',
241
240
  empty: 'Aún no tengo habilidades.',
242
241
  save: 'Guardar habilidades',
243
- descriptionOnline: 'Manuales que el agente lee cuando una tarea coincide con su descripción, en un entorno limitado de solo lectura en el servidor.',
244
- onlineScripts: 'Los scripts no se ejecutan para los agentes en línea: el agente puede leerlos, no ejecutarlos.',
242
+ descriptionOnline: 'Manuales que el Agent lee cuando una tarea coincide con su descripción, en un entorno limitado de solo lectura en el servidor.',
243
+ onlineScripts: 'Los scripts no se ejecutan para los Agents en línea: el Agent puede leerlos, no ejecutarlos.',
245
244
  skippedScripts: ': {{paths}}',
246
245
  pathSeparator: ', ',
247
246
  },
248
247
  brief: {
249
248
  preview: 'Vista previa del mensaje completo',
250
249
  previewTitle: 'Vista previa del mensaje completo',
251
- previewDescription: '¡Menuda tirada de este agente se enviaría ahora, sobre un tema inventado! No hay nada en cola.',
250
+ previewDescription: '¡Menuda tirada de este Agent se enviaría ahora, sobre un tema inventado! No hay nada en cola.',
252
251
  scenario: 'Escenario',
253
252
  sample: 'Sobre un tema inventado: {{subject}}. Los valores marcados [muestra] están compuestos.',
254
253
  previewFailed: 'No se pudo representar el mensaje completo.',
@@ -257,13 +256,13 @@ const esES = {
257
256
  rendered: 'Renderizado',
258
257
  raw: 'Sin procesar',
259
258
  platform: 'Reglas y tareas de la plataforma · sobre caracteres {{size}} (inglés)',
260
- platformNote: 'Las reglas de la plataforma se envían en inglés; el agente aún responde en su idioma.',
259
+ platformNote: 'Las reglas de la plataforma se envían en inglés; el Agent aún responde en su idioma.',
261
260
  agentPrompt: 'Aviso del agente (escrito por usted)',
262
- noAgentPrompt: 'Este agente no tiene aviso propio.',
261
+ noAgentPrompt: 'Este Agent no tiene aviso propio.',
263
262
  firstMessage: 'Primer mensaje',
264
263
  empty: 'Vacío',
265
- previewPlaceholders: 'Las notas entre corchetes sobre el tiempo de ejecución son completadas por el tiempo de ejecución que lo ejecuta: sus directorios de trabajo y las indicaciones de inicialización de los directorios que acaba de preparar.',
266
- placeholders: 'Los marcadores de posición {{runner.…}} son completados por el tiempo de ejecución que lo ejecuta: sus directorios de trabajo y las indicaciones de inicialización de los directorios que acaba de preparar.',
264
+ previewPlaceholders: 'Las notas entre corchetes sobre el entorno de ejecución son completadas por el entorno de ejecución que lo ejecuta: sus directorios de trabajo y las indicaciones de inicialización de los directorios que acaba de preparar.',
265
+ placeholders: 'Los marcadores de posición {{runner.…}} son completados por el entorno de ejecución que lo ejecuta: sus directorios de trabajo y las indicaciones de inicialización de los directorios que acaba de preparar.',
267
266
  layers: {
268
267
  system: 'Reglas',
269
268
  task: 'Tarea',
@@ -274,7 +273,7 @@ const esES = {
274
273
  },
275
274
  envVars: {
276
275
  title: 'Variables de entorno',
277
- description: 'Pasado a la herramienta de codificación en cada ejecución y enmascarado en los registros de ejecución; Los valores no se muestran nuevamente después de guardarlos. Cualquiera que utilice un agente compartido puede recibir estos valores en su propia computadora; marque los secretos de alto riesgo como "Solo tiempos de ejecución de equipo".',
276
+ description: 'Pasado a la herramienta de codificación en cada ejecución y enmascarado en los registros de ejecución; Los valores no se muestran nuevamente después de guardarlos. Cualquiera que utilice un Agent compartido puede recibir estos valores en su propia computadora; marque los secretos de alto riesgo como "Solo entornos de ejecución de equipo".',
278
277
  add: 'Añadir variable',
279
278
  addTitle: 'Añadir variable de entorno',
280
279
  editTitle: 'Reemplazar {{name}}',
@@ -284,13 +283,13 @@ const esES = {
284
283
  value: 'Valor',
285
284
  valueTooLong: 'El valor es mayor que 8 KB.',
286
285
  keepValueHint: 'Déjelo vacío para mantener el valor actual.',
287
- teamRunnersOnly: 'Solo tiempos de ejecución en equipo',
288
- teamRunnersOnlyHint: 'Sin él, una ejecución envía el valor al tiempo de ejecución que lo toma, incluido el tiempo de ejecución personal de cualquiera que pueda usar el agente. Con él, solo el tiempo de ejecución del equipo realiza ejecuciones que obtienen esta variable.',
289
- teamRunnersOnlyBadge: 'Solo tiempos de ejecución en equipo',
290
- fromRunner: 'Tomar del tiempo de ejecución',
291
- fromRunnerHint: 'Aquí no se guarda ningún valor: el tiempo de ejecución que realiza una ejecución lo proporciona desde su propia máquina, configurado allí con {{command}} o pasado con `--pass-env`. Un tiempo de ejecución que no lo proporciona falla en la ejecución antes de comenzar.',
292
- fromRunnerBadge: 'Desde el tiempo de ejecución',
293
- valueRequired: 'Ingrese un valor o continúe tomándolo del tiempo de ejecución.',
286
+ teamRunnersOnly: 'Solo entornos de ejecución en equipo',
287
+ teamRunnersOnlyHint: 'Sin él, una ejecución envía el valor al entorno de ejecución que lo toma, incluido el entorno de ejecución personal de cualquiera que pueda usar el Agent. Con él, solo el entorno de ejecución del equipo realiza ejecuciones que obtienen esta variable.',
288
+ teamRunnersOnlyBadge: 'Solo entornos de ejecución en equipo',
289
+ fromRunner: 'Tomar del entorno de ejecución',
290
+ fromRunnerHint: 'Aquí no se guarda ningún valor: el entorno de ejecución que realiza una ejecución lo proporciona desde su propia máquina, configurado allí con {{command}} o pasado con `--pass-env`. Un entorno de ejecución que no lo proporciona falla en la ejecución antes de comenzar.',
291
+ fromRunnerBadge: 'Desde el entorno de ejecución',
292
+ valueRequired: 'Ingrese un valor o continúe tomándolo del entorno de ejecución.',
294
293
  empty: 'Sin variables de entorno.',
295
294
  scope: 'Ámbito',
296
295
  updated: 'Actualizado',
@@ -330,7 +329,7 @@ const esES = {
330
329
  },
331
330
  scopeVariables: {
332
331
  title: 'Variables y secretos',
333
- description: 'Entregado a todos los agentes que trabajan aquí. Las variables más específicas (las del directorio de trabajo y luego las del agente) las superan.',
332
+ description: 'Entregado a todos los Agents que trabajan aquí. Las variables más específicas (las del directorio de trabajo y luego las del Agent) las superan.',
334
333
  },
335
334
  scopes: {
336
335
  workdir: 'Directorio de trabajo',
@@ -342,7 +341,7 @@ const esES = {
342
341
  usage: {
343
342
  otherUse: {
344
343
  title: 'Otro uso del modelo',
345
- description: 'Llamadas a modelos fuera de las ejecuciones del agente, como indexación y búsqueda en la base de conocimientos.',
344
+ description: 'Llamadas a modelos fuera de las ejecuciones del Agent, como indexación y búsqueda en la base de conocimientos.',
346
345
  purpose: 'Uso',
347
346
  source: 'Preguntado por',
348
347
  model: 'Modelo',
@@ -355,7 +354,7 @@ const esES = {
355
354
  },
356
355
  },
357
356
  title: 'Uso',
358
- description: 'Qué agentes se utilizan y cuánto cuestan a los precios del modelo actual.',
357
+ description: 'Qué Agents se utilizan y cuánto cuestan a los precios del modelo actual.',
359
358
  loadFailed: 'No se pudo cargar el uso',
360
359
  groupBy: 'Agrupar por',
361
360
  groupByValue: 'Grupo por {{group}}',
@@ -377,7 +376,7 @@ const esES = {
377
376
  filters: {
378
377
  allGroups: 'Todos: {{group}}',
379
378
  agent: 'Agente',
380
- allAgents: 'Todos los agentes',
379
+ allAgents: 'Todos los Agents',
381
380
  person: 'Despertado por',
382
381
  allPeople: 'Todos',
383
382
  range: 'Rango de fechas',
@@ -412,7 +411,7 @@ const esES = {
412
411
  },
413
412
  defaultSkills: {
414
413
  title: 'Habilidades predeterminadas',
415
- description: 'Todos los agentes que trabajan aquí también adquieren estas habilidades.',
414
+ description: 'Todos los Agents que trabajan aquí también adquieren estas habilidades.',
416
415
  save: 'Guardar habilidades',
417
416
  saved: 'Habilidades predeterminadas guardadas.',
418
417
  },
@@ -429,7 +428,7 @@ const esES = {
429
428
  filters: {
430
429
  agent: 'Agente',
431
430
  status: 'Estado',
432
- allAgents: 'Todos los agentes',
431
+ allAgents: 'Todos los Agents',
433
432
  allStatuses: 'Todos los estados',
434
433
  },
435
434
  noMatch: 'Ninguna ejecución coincide con estos filtros.',
@@ -442,7 +441,7 @@ const esES = {
442
441
  retried: 'Ejecución puesta de nuevo en cola',
443
442
  viewBrief: 'Ver aviso completo',
444
443
  briefTitle: 'Mensaje completo',
445
- briefDescription: 'Lo que se le dijo al agente la última vez que se reclamó esta ejecución.',
444
+ briefDescription: 'Lo que se le dijo al Agent la última vez que se reclamó esta ejecución.',
446
445
  briefOf: 'Intento {{attempt}}, reivindicado {{time}}',
447
446
  briefUnavailable: 'No hay ningún mensaje completo disponible para esta ejecución.',
448
447
  processDataCleared: 'Los datos del proceso de ejecución se borraron según la política de retención.',
@@ -450,7 +449,7 @@ const esES = {
450
449
  workspaceReset: {
451
450
  button: 'Limpiar directorio de trabajo',
452
451
  title: '¿Limpiar el directorio de trabajo?',
453
- description: 'La siguiente ejecución comienza desde una nueva verificación y recibe nuevamente las indicaciones de inicialización. Los cambios que no se implementaron se pierden en ese tiempo de ejecución. Un directorio utilizado en su lugar nunca se elimina.',
452
+ description: 'La siguiente ejecución comienza desde una nueva verificación y recibe nuevamente las indicaciones de inicialización. Los cambios que no se implementaron se pierden en ese entorno de ejecución. Un directorio utilizado en su lugar nunca se elimina.',
454
453
  confirm: 'Limpiar',
455
454
  done: 'La siguiente ejecución comienza desde una nueva compra.',
456
455
  },
@@ -486,7 +485,7 @@ const esES = {
486
485
  transcript: {
487
486
  title: 'Transcripción de la ejecución',
488
487
  notFound: 'Esta ejecución no existe.',
489
- waiting: 'Esperando que el agente inicie…',
488
+ waiting: 'Esperando que el Agent inicie…',
490
489
  empty: 'Esta ejecución no registró eventos.',
491
490
  fetchFailed: 'No se pueden recuperar nuevos eventos. Reintentando…',
492
491
  expand: 'Mostrar todo',
@@ -494,10 +493,10 @@ const esES = {
494
493
  summary_one: 'Creado {{created}} · Evento {{count}}',
495
494
  summary_other: 'Eventos {{created}} · {{count}} creados',
496
495
  took: 'tomó {{duration}}',
497
- pendingInputs_one: 'Comentario {{count}} esperando al agente',
498
- pendingInputs_other: 'Comentarios de {{count}} esperando al agente',
499
- inputDelivered_one: 'Entregado al agente',
500
- inputDelivered_other: 'Entradas {{count}} entregadas al agente',
496
+ pendingInputs_one: 'Comentario {{count}} esperando al Agent',
497
+ pendingInputs_other: 'Comentarios de {{count}} esperando al Agent',
498
+ inputDelivered_one: 'Entregado al Agent',
499
+ inputDelivered_other: 'Entradas {{count}} entregadas al Agent',
501
500
  tokens: 'Tokens {{input}} adentro, {{output}} afuera',
502
501
  kinds: {
503
502
  text: 'Agente',
@@ -519,35 +518,44 @@ const esES = {
519
518
  failures: {
520
519
  runnerUpgrade: 'Interrumpido por actualización de la máquina de ejecución; la carrera continuará.',
521
520
  runnerDiskFull: 'La máquina de ejecución se quedó sin espacio en disco.',
522
- runnerOfflineBeforeStart: 'El tiempo de ejecución se desconectó antes de iniciar la ejecución.',
523
- runnerOffline: 'El tiempo de ejecución se desconectó.',
524
- leaseExpired: 'El tiempo de ejecución dejó de informar.',
525
- startTimeout: 'El tiempo de ejecución no inició la ejecución a tiempo.',
521
+ runnerOfflineBeforeStart: 'El entorno de ejecución se desconectó antes de iniciar la ejecución.',
522
+ runnerOffline: 'El entorno de ejecución se desconectó.',
523
+ leaseExpired: 'El entorno de ejecución dejó de informar.',
524
+ startTimeout: 'El entorno de ejecución no inició la ejecución a tiempo.',
526
525
  cancelled: 'Cancelado.',
527
- idleTimeout: 'El agente dejó de avanzar.',
526
+ idleTimeout: 'El Agent dejó de avanzar.',
528
527
  setupFailed: 'No se pudo preparar la ejecución.',
529
- cliUnavailable: 'El tiempo de ejecución no pudo instalar la CLI de la aplicación.',
528
+ cliUnavailable: 'El entorno de ejecución no pudo instalar la CLI de la aplicación.',
530
529
  workspaceBusy: 'El directorio de trabajo está ocupado; esperando otro intento.',
531
530
  checkoutFailed: 'Falló la verificación del repositorio.',
532
- toolAuth: 'La herramienta de codificación no está registrada en el tiempo de ejecución.',
531
+ toolAuth: 'La herramienta de codificación no está registrada en el entorno de ejecución.',
533
532
  toolQuota: 'La herramienta de codificación se quedó sin cuota.',
533
+ sessionUnavailable: 'No se pudo reanudar la sesión original de la herramienta de programación.',
534
534
  toolRateLimit: 'La herramienta de codificación tenía una velocidad limitada.',
535
535
  toolNetwork: 'La herramienta de codificación no pudo alcanzar su servicio.',
536
536
  toolProcess: 'La herramienta de codificación se cerró inesperadamente.',
537
537
  contextOverflow: 'La conversación se hizo demasiado larga para la modelo.',
538
538
  delegatedQueueTimeout: 'Tiempo de espera de cola de delegación; retirado',
539
- queuedExpired: 'Ningún tiempo de ejecución tomó la ejecución a tiempo.',
540
- modelUnavailable: 'El modelo del agente no está disponible.',
541
- stepLimit: 'El agente llamó a las herramientas demasiadas veces sin responder.',
542
- policyRefused: 'Ninguna política de tiempo de ejecución le permite realizar este trabajo.',
543
- prepareNetwork: 'El tiempo de ejecución no pudo alcanzar el host del repositorio mientras preparaba la ejecución.',
544
- repoAccessUnavailable: 'La credencial de un repositorio no se pudo emitir en este momento; La ejecución se intentará nuevamente.',
539
+ queuedExpired: 'Ningún entorno de ejecución tomó la ejecución a tiempo.',
540
+ modelUnavailable: 'El modelo del Agent no está disponible.',
541
+ stepLimit: 'El Agent llamó a las herramientas demasiadas veces sin responder.',
542
+ policyRefused: 'Ninguna política de entorno de ejecución le permite realizar este trabajo.',
543
+ prepareNetwork: 'El entorno de ejecución no pudo alcanzar el host del repositorio mientras preparaba la ejecución.',
544
+ repoAccessUnavailable: 'El acceso al repositorio no está disponible temporalmente.',
545
545
  repoAccessDenied: 'La aplicación no emitirá una credencial para uno de los repositorios de la ejecución.',
546
546
  unknown: 'La ejecución falló.',
547
547
  },
548
548
  runtimes: {
549
- pathHint: runtimesEnUS.runtimes.pathHint,
549
+ pathHint: 'El runner busca las herramientas de programación con su propio PATH. En un terminal donde funcione which codex / which claude, vuelve a ejecutar nocobase-runner service install y reinicia el servicio (o vuelve a ejecutar nocobase-runner start) para que obtenga el PATH correcto.',
550
550
  quota: {
551
+ ceilingReached: 'Umbral de cuota alcanzado',
552
+ ceilingLabel: 'Pausar al',
553
+ ceilingInput: 'Pausar nuevos trabajos de {{tool}} al porcentaje usado',
554
+ ceilingOff: 'Sin límite',
555
+ ceilingSave: 'Aplicar',
556
+ ceilingInvalid: 'Introduce un porcentaje entero entre 1 y 100 o déjalo vacío.',
557
+ ceilingHint: 'Usa el último consumo informado. Vacío significa sin límite; el trabajo en curso continúa.',
558
+ ceilingPaused: 'Una ventana alcanzó el límite; el nuevo trabajo afectado espera al reinicio o a un cambio del límite.',
551
559
  workspaceStatus: {
552
560
  active: 'El trabajo continúa',
553
561
  ended: 'Finalizado · limpieza permitida',
@@ -572,13 +580,13 @@ const esES = {
572
580
  since: 'desde {{time}}',
573
581
  marks_one: 'Marca de cuota {{count}}',
574
582
  marks_other: 'Marcas de cuota {{count}}',
575
- queueHint: 'Aún se puede seleccionar un agente con cuota. El trabajo se pondrá en cola con la fecha límite de espera existente.',
583
+ queueHint: 'Aún se puede seleccionar un Agent con cuota. El trabajo se pondrá en cola con la fecha límite de espera existente.',
576
584
  partial: 'Se ejecuta en {{available}} · {{blocked}} en cuota',
577
585
  workspaceSize: 'Tamaño del espacio de trabajo: {{value}}',
578
586
  providers_one: 'Proveedor {{count}} en cuota',
579
587
  providers_other: 'Proveedores {{count}} en cuota',
580
588
  runColumns: {
581
- issue: 'Asunto / conversación',
589
+ issue: 'Tarea / conversación',
582
590
  agent: 'Agente',
583
591
  status: 'Estado',
584
592
  started: 'Iniciado',
@@ -614,11 +622,12 @@ const esES = {
614
622
  near: 'Cerca del límite',
615
623
  clear: 'Borrar',
616
624
  clearMark: 'Borrar marca',
617
- confirm: '¿Borrar esta marca? {{target}} vuelve a funcionar.',
625
+ confirmTitle: '¿Borrar la marca de cuota de {{target}}?',
626
+ confirm: 'Bórrela solo después de confirmar que la cuota se ha restablecido. {{target}} vuelve a recibir trabajo de inmediato; si la cuota sigue agotada, la siguiente ejecución la marca de nuevo.',
618
627
  observed: 'Último reportado {{time}}',
619
628
  usedPercent: '{{percent}}% usado',
620
629
  ok: 'Aceptar',
621
- hint: 'Los tiempos de reinicio conocidos restauran la elegibilidad automáticamente. Para reinicios desconocidos, restaure la cuota y borre la marca. Sólo el propietario y los administradores del tiempo de ejecución pueden borrar las marcas.',
630
+ hint: 'Una marca se borra sola a la hora de reinicio conocida o cuando la herramienta vuelve a informar cuota disponible. Bórrela a mano solo después de confirmar que la cuota se ha restablecido. Sólo el propietario y los administradores del entorno de ejecución pueden borrar las marcas.',
622
631
  marks_many: 'Marcas de cuota {{count}}',
623
632
  providers_many: 'Proveedores {{count}} en cuota',
624
633
  },
@@ -644,14 +653,14 @@ const esES = {
644
653
  ended: 'Finalizado',
645
654
  active: 'El trabajo continúa',
646
655
  unknown: 'No se puede confirmar si el trabajo finalizó',
647
- oldRunner: 'Este ejecutor no ha proporcionado razones de diagnóstico',
656
+ oldRunner: 'Este entorno de ejecución no ha proporcionado razones de diagnóstico',
648
657
  noCleanup: 'No se ha recibido el resultado de la limpieza local',
649
658
  discardsUntracked: 'La limpieza descartará los archivos sin seguimiento',
650
659
  decision: {
651
660
  settled: 'Trabajo finalizado; Se requieren controles de limpieza locales.',
652
661
  active: 'El trabajo continúa',
653
662
  runNotFound: 'No se puede confirmar: ejecución no encontrada',
654
- ownershipUnknown: 'No se puede confirmar: no se pudo verificar la propiedad del ejecutor',
663
+ ownershipUnknown: 'No se puede confirmar: no se pudo verificar la propiedad del entorno de ejecución',
655
664
  ambiguousSubject: 'No se puede confirmar: clave de asunto ambigua',
656
665
  bindingUnavailable: 'No se puede confirmar: la aplicación no tiene enlace de espacio de trabajo',
657
666
  subjectUnknown: 'No se puede confirmar: la aplicación no pudo resolver el tema',
@@ -667,14 +676,14 @@ const esES = {
667
676
  },
668
677
  },
669
678
  title: 'Entornos de ejecución',
670
- description: 'Los tiempos de ejecución que ejecutan los agentes y las herramientas de codificación que cada uno reportó.',
671
- add: 'Añadir tiempo de ejecución',
672
- loadFailed: 'No se pudieron cargar los tiempos de ejecución',
673
- emptyTitle: 'Aún no hay tiempos de ejecución conectados',
674
- emptyDescription: 'Una vez que se conecta un tiempo de ejecución, los agentes ejecutores asumen el trabajo allí con sus herramientas de codificación.',
675
- noneConnected: 'No hay ningún tiempo de ejecución conectado.',
676
- revokedList_one: '{{count}} revocó el tiempo de ejecución',
677
- revokedList_other: '{{count}} revocó tiempos de ejecución',
679
+ description: 'Los entornos de ejecución que ejecutan los Agents y las herramientas de codificación que cada uno reportó.',
680
+ add: 'Añadir entorno de ejecución',
681
+ loadFailed: 'No se pudieron cargar los entornos de ejecución',
682
+ emptyTitle: 'Aún no hay entornos de ejecución conectados',
683
+ emptyDescription: 'Una vez que se conecta un entorno de ejecución, los Agents entornos de ejecución asumen el trabajo allí con sus herramientas de codificación.',
684
+ noneConnected: 'No hay ningún entorno de ejecución conectado.',
685
+ revokedList_one: '{{count}} revocó el entorno de ejecución',
686
+ revokedList_other: '{{count}} revocó entornos de ejecución',
678
687
  lastSeen: 'Visto por última vez {{time}}',
679
688
  activity: {
680
689
  online: 'En línea {{active}}/{{slots}}',
@@ -705,7 +714,7 @@ const esES = {
705
714
  },
706
715
  policy: {
707
716
  title: 'Política local',
708
- description: 'Lo que el propietario del tiempo de ejecución le permite tomar, según informó. Se cambia en la máquina, no aquí.',
717
+ description: 'Lo que el propietario del entorno de ejecución le permite tomar, según informó. Se cambia en la máquina, no aquí.',
709
718
  none: 'No hay política local: acepta cualquier trabajo para el que esté registrado.',
710
719
  any: 'Cualquiera',
711
720
  nothing: 'Ninguno',
@@ -715,14 +724,14 @@ const esES = {
715
724
  },
716
725
  variables: {
717
726
  title: 'Variables de esta máquina',
718
- description: 'Las variables que proporciona a las ejecuciones que las toman del tiempo de ejecución, por nombre; Los valores permanecen en la máquina. Configure uno allí con `nocobase-runner env set NAME` o páselo con `--pass-env NAME`.',
719
- none: 'Ninguno: una ejecución que toma una variable del tiempo de ejecución falla aquí antes de comenzar.',
720
- unknown: 'No informado: su ejecutor es más antiguo que esta característica. Actualiza el ejecutor para verlos.',
727
+ description: 'Las variables que proporciona a las ejecuciones que las toman del entorno de ejecución, por nombre; Los valores permanecen en la máquina. Configure uno allí con `nocobase-runner env set NAME` o páselo con `--pass-env NAME`.',
728
+ none: 'Ninguno: una ejecución que toma una variable del entorno de ejecución falla aquí antes de comenzar.',
729
+ unknown: 'No informado: su entorno de ejecución es más antiguo que esta característica. Actualiza el entorno de ejecución para verlos.',
721
730
  },
722
731
  jobs: {
723
732
  allow: 'Permitir trabajos de construcción',
724
- hint: 'Compilaciones y otros pasos que configura esta aplicación, ejecutados sin un modelo. Este tiempo de ejecución informa: {{kinds}}.',
725
- unsupported: 'El ejecutor de este tiempo de ejecución no acepta trabajos. Actualice el ejecutor para activar esto.',
733
+ hint: 'Compilaciones y otros pasos que configura esta aplicación, ejecutados sin un modelo. Este entorno de ejecución informa: {{kinds}}.',
734
+ unsupported: 'El entorno de ejecución de este entorno de ejecución no acepta trabajos. Actualice el entorno de ejecución para activar esto.',
726
735
  },
727
736
  noTools: 'No se encontró ninguna herramienta de codificación',
728
737
  actionsFor: 'Acciones para {{name}}',
@@ -760,12 +769,12 @@ const esES = {
760
769
  upgrade_required: 'Actualización requerida',
761
770
  },
762
771
  upgradeRequired: {
763
- title: 'Este tiempo de ejecución necesita una actualización',
764
- older: 'Su ejecutor {{version}} habla el protocolo de agente {{protocol}}; esta aplicación necesita el protocolo {{required}}. Permanece conectado pero no ejecuta nada hasta que se actualiza.',
765
- newer: 'Su ejecutor {{version}} habla el protocolo de agente {{protocol}}, más nuevo que esta aplicación (protocolo {{required}}). Permanece conectado pero no ejecuta nada hasta que ejecuta un ejecutor al que sirve esta aplicación.',
766
- latest: 'Esta aplicación sirve al ejecutor {{latest}}. Ejecute esto en su host para actualizarlo:',
767
- noLatest: 'Instale un ejecutor que hable el protocolo {{required}} o ejecútelo en su host para actualizarlo:',
768
- reinstall: 'Su ejecutor no dice cómo fue instalado. Instálelo nuevamente en su host con el comando de Añadir tiempo de ejecución.',
772
+ title: 'Este entorno de ejecución necesita una actualización',
773
+ older: 'Su entorno de ejecución {{version}} habla el protocolo de Agent {{protocol}}; esta aplicación necesita el protocolo {{required}}. Permanece conectado pero no ejecuta nada hasta que se actualiza.',
774
+ newer: 'Su entorno de ejecución {{version}} habla el protocolo de Agent {{protocol}}, más nuevo que esta aplicación (protocolo {{required}}). Permanece conectado pero no ejecuta nada hasta que ejecuta un entorno de ejecución al que sirve esta aplicación.',
775
+ latest: 'Esta aplicación sirve al entorno de ejecución {{latest}}. Ejecute esto en su host para actualizarlo:',
776
+ noLatest: 'Instale un entorno de ejecución que hable el protocolo {{required}} o ejecútelo en su host para actualizarlo:',
777
+ reinstall: 'Su entorno de ejecución no dice cómo fue instalado. Instálelo nuevamente en su host con el comando de Añadir entorno de ejecución.',
769
778
  },
770
779
  tool: {
771
780
  checking: 'Esperando detección',
@@ -776,22 +785,22 @@ const esES = {
776
785
  signedOut: 'No iniciado sesión',
777
786
  notInstalled: 'No instalado',
778
787
  off: 'Desactivado',
779
- offHint: 'Desactivado: el trabajo para esta herramienta no se envía a este tiempo de ejecución.',
788
+ offHint: 'Desactivado: el trabajo para esta herramienta no se envía a este entorno de ejecución.',
780
789
  enableLabel: 'Ejecute {{tool}} en {{name}}',
781
790
  version: 'Versión {{version}}',
782
791
  },
783
792
  trust: {
784
- isolationHint: runtimesEnUS.runtimes.trust.isolationHint,
793
+ isolationHint: 'Tanto en entornos de ejecución personales como compartidos, ejecuta el runner en una máquina virtual o un entorno aislado: los Agents tienen acceso total y el runner no es un sandbox.',
785
794
  label: 'Para quién funciona',
786
795
  team: 'Equipo',
787
796
  teamHint: 'Las ejecuciones son las que inicia cualquier miembro del equipo, con sus variables y secretos. Para servidores compartidos y máquinas virtuales.',
788
797
  ownerOnly: 'Personales',
789
- ownerOnlyHint: 'Ejecuta sólo el trabajo que inicia. El valor predeterminado para un tiempo de ejecución que añada.',
790
- personalOnly: 'Este tiempo de ejecución será personal: ejecuta sólo el trabajo que usted inicia. Puedes compartirlo con el equipo más tarde.',
798
+ ownerOnlyHint: 'Ejecuta sólo el trabajo que inicia. El valor predeterminado para un entorno de ejecución que añada.',
799
+ personalOnly: 'Este entorno de ejecución será personal: ejecuta sólo el trabajo que usted inicia. Puedes compartirlo con el equipo más tarde.',
791
800
  },
792
801
  share: {
793
802
  title: '¿Compartir {{name}} con el equipo?',
794
- description: 'Las ejecuciones de otras personas se ejecutarán en este tiempo de ejecución, con sus variables y secretos, y podrán leer lo que contiene. Compártelo sólo si te parece bien.',
803
+ description: 'Las ejecuciones de otras personas se ejecutarán en este entorno de ejecución, con sus variables y secretos, y podrán leer lo que contiene. Compártelo sólo si te parece bien.',
795
804
  confirm: 'Compartir con el equipo',
796
805
  },
797
806
  edit: {
@@ -799,49 +808,59 @@ const esES = {
799
808
  title: 'Editar {{name}}',
800
809
  name: 'Nombre',
801
810
  nameRequired: 'Ingrese un nombre.',
802
- slotsHint: 'Cuántas ejecuciones toma el tiempo de ejecución a la vez.',
811
+ slotsHint: 'Cuántas ejecuciones toma el entorno de ejecución a la vez.',
803
812
  slotsInvalid: 'Ingrese un número entero del 1 al 64.',
804
813
  saved: 'Guardado {{name}}',
805
814
  },
806
815
  upgrade: {
807
- show: 'Versión {{version}}: hay un ejecutor más nuevo disponible',
816
+ show: 'Versión {{version}}: hay un entorno de ejecución más nuevo disponible',
808
817
  available: 'Actualización disponible',
809
818
  badge: 'Actualizable',
810
- title: 'Un ejecutor más nuevo para {{name}}',
819
+ title: 'Un entorno de ejecución más nuevo para {{name}}',
811
820
  description: 'Instalado {{version}}, esta aplicación sirve para {{latest}}.',
812
- hint: 'Se actualiza solo una vez que no se está ejecutando ningún agente. Para actualizarlo ahora, ejecútelo en su host.',
821
+ hint: 'Se actualiza solo una vez que no se está ejecutando ningún Agent. Para actualizarlo ahora, ejecútelo en su host.',
813
822
  },
814
823
  revoke: {
815
824
  title: '¿Revocar la credencial de {{name}}?',
816
- description: 'Su ejecutor se detiene en su siguiente solicitud y sus ejecuciones regresan a la cola. Para volver a conectarlo, añada nuevamente el tiempo de ejecución.',
825
+ description: 'Su entorno de ejecución se detiene en su siguiente solicitud y sus ejecuciones regresan a la cola. Para volver a conectarlo, añada nuevamente el entorno de ejecución.',
817
826
  confirm: 'Revocar',
818
827
  done: 'Revocada la credencial de {{name}}',
819
828
  },
820
829
  delete: {
821
830
  title: '¿Eliminar {{name}}?',
822
- description: 'El tiempo de ejecución revocado se elimina de la lista. Sus carreras pasadas permanecen.',
831
+ description: 'El entorno de ejecución revocado se elimina de la lista. Sus carreras pasadas permanecen.',
823
832
  confirm: 'Eliminar',
824
833
  done: 'Eliminado {{name}}',
825
834
  },
826
- revokedList_many: '{{count}} revocó tiempos de ejecución',
835
+ revokedList_many: '{{count}} revocó entornos de ejecución',
827
836
  },
828
837
  connect: {
829
- ...runtimesEnUS.connect,
830
- title: 'Añadir tiempo de ejecución',
831
- description: 'Ejecute el siguiente comando en un host que tenga una herramienta de codificación instalada: un servidor, una máquina virtual o su propio dispositivo. Los agentes se ejecutan allí con acceso completo, como el usuario que ejecuta el ejecutor, y pueden leer y cambiar cualquier cosa que el usuario pueda, incluidas las claves SSH y otras credenciales. El ejecutor no es un límite de seguridad: ejecútelo como un usuario dedicado, en un contenedor o en una VM.',
838
+ manual: 'O instálalo tú mismo',
839
+ promptTitle: 'Deja que un Agent lo configure',
840
+ promptCopy: 'Copiar la instrucción para el Agent',
841
+ promptShow: 'Ver la instrucción',
842
+ promptHide: 'Ocultar la instrucción',
843
+ promptHint: 'Copia esta instrucción a un Agent (Claude Code, Codex y similares) en la máquina de destino y realizará por ti los pasos siguientes. Contiene una credencial de un solo uso: dásela solo a ese Agent.',
844
+ windowsPowerShell: '1. Instala WSL: ejecútalo en PowerShell y reinicia Windows:',
845
+ windowsUbuntu: '2. Abre Ubuntu y ejecuta el comando de Linux de abajo. Instala Node.js y las herramientas de programación dentro de WSL Ubuntu.',
846
+ windowsNetwork: 'Si WSL no puede acceder a internet, activa la red en modo espejo en WSL.',
847
+ promptWindows: 'PRIMERO, determina si te ejecutas dentro de WSL Ubuntu. Si NO estás en WSL Ubuntu, DETENTE: no ejecutes ningún comando de instalación ni de registro. Dile al usuario que ejecute wsl --install en PowerShell, reinicie Windows, abra el Agent dentro de WSL Ubuntu y vuelva a ejecutar esta instrucción. Continúa con los pasos siguientes SOLO dentro de WSL Ubuntu. Instala tanto Node.js como las herramientas de programación dentro de WSL. Si WSL no puede acceder a internet, activa la red en modo espejo.\n\n',
848
+ promptBody: 'Configura esta máquina como entorno de ejecución de NocoBase. Usa una máquina virtual o un entorno aislado: los Agents tienen acceso total y el runner no es un sandbox.\n\nComprueba que hay Node.js 24 o posterior y que estas herramientas de programación están instaladas y con sesión iniciada: {{tools}}. Usa sus métodos de instalación oficiales, no paquetes snap.\n\nEjecuta este comando de registro de un solo uso para instalar el runner y la CLI de la aplicación, registrarlo e instalar su servicio en segundo plano:\n{{command}}\n\nResuelve los problemas habituales de configuración: asegúrate de que el PATH del servicio contiene las herramientas de programación (comprueba which codex / which claude en el terminal de instalación y vuelve a ejecutar nocobase-runner service install y reinicia el servicio); configura el proxy necesario para las descargas y para el servicio; resuelve los permisos de instalación global de npm con un prefijo propiedad del usuario o un gestor de versiones de Node, sin sudo npm install.\n\nTermina con nocobase-runner status y confirma la conexión y las herramientas de programación. Indícame los pasos de inicio de sesión o de red que queden por hacer. Trata la credencial de registro como un secreto y no la incluyas en tu informe.',
849
+ title: 'Añadir entorno de ejecución',
850
+ description: 'Ejecute el siguiente comando en un host que tenga una herramienta de codificación instalada: un servidor, una máquina virtual o su propio dispositivo. Los agentes se ejecutan allí con acceso completo, como el usuario que ejecuta el entorno de ejecución, y pueden leer y cambiar cualquier cosa que el usuario pueda, incluidas las claves SSH y otras credenciales. El entorno de ejecución no es un límite de seguridad: ejecútelo como un usuario dedicado, en un contenedor o en una VM.',
832
851
  createCredential: 'Generar comando de instalación',
833
852
  advanced: 'Avanzado: límites por herramienta de codificación',
834
- run: 'Ejecute esto en ese host. Descarga el ejecutor (nocobase-runner) y la CLI de esta aplicación desde esta aplicación, registra el ejecutor y lo inicia al iniciar sesión:',
853
+ run: 'Ejecute esto en ese host. Descarga el entorno de ejecución (nocobase-runner) y la CLI de esta aplicación desde esta aplicación, registra el entorno de ejecución y lo inicia al iniciar sesión:',
835
854
  nodeRequired: 'El host necesita Node.js 24 o posterior (verifique con node --version). El comando se detiene y dice cómo instalarlo cuando falta.',
836
855
  installed: '¿Ya tienes instalado nocobase-runner? Regístrelo en su lugar:',
837
- tokenOnce: 'El comando lleva una credencial de un solo uso para un tiempo de ejecución "{{trust}}". Funciona una vez, hasta {{time}}.',
838
- after: 'En cuestión de segundos, el tiempo de ejecución aparece en la lista, con cada herramienta de codificación que encontró...',
856
+ tokenOnce: 'El comando lleva una credencial de un solo uso para un entorno de ejecución "{{trust}}". Funciona una vez, hasta {{time}}.',
857
+ after: 'En cuestión de segundos, el entorno de ejecución aparece en la lista, con cada herramienta de codificación que encontró...',
839
858
  tokenTools: 'Herramientas de codificación: {{tools}}.',
840
859
  tools: 'Herramientas de codificación',
841
- toolsHint: 'Este tiempo de ejecución se ofrece para funcionar solo para las herramientas marcadas. Puede cambiarlo en la página Runtimes en cualquier momento.',
860
+ toolsHint: 'Este entorno de ejecución se ofrece para funcionar solo para las herramientas marcadas. Puede cambiarlo en la página Runtimes en cualquier momento.',
842
861
  toolsRequired: 'Elija al menos una herramienta de codificación.',
843
862
  slots: 'Máximo de ejecuciones simultáneas',
844
- slotsHint: 'Cuántas ejecuciones toma el tiempo de ejecución a la vez. Puede cambiarlo en la página Runtimes en cualquier momento.',
863
+ slotsHint: 'Cuántas ejecuciones toma el entorno de ejecución a la vez. Puede cambiarlo en la página Runtimes en cualquier momento.',
845
864
  tokenSlots: 'Ejecuciones simultáneas máximas: {{slots}}.',
846
865
  tokenToolSlots: 'Por herramienta de codificación: {{limits}}.',
847
866
  connected: '{{name}} está conectado.',
@@ -854,8 +873,23 @@ const esES = {
854
873
  },
855
874
  chat: {
856
875
  // Keep new guidance available in English until this locale is translated.
857
- executionFailed: chatEnUS.chat.executionFailed,
858
- fileInputFailures: chatEnUS.chat.fileInputFailures,
876
+ executionFailed: 'La ejecución falló. Revisa la conversación guardada antes de reintentar.',
877
+ fileInputFailures: {
878
+ imageCapability: 'Este modelo no tiene configurada la entrada de imágenes. Cambia a un modelo con soporte de imágenes verificado.',
879
+ unsupportedFormat: 'El modelo seleccionado no tiene configurada la entrada para este formato de adjunto y ningún extractor de texto local lo admite. Usa un formato de documento compatible o un modelo con soporte de archivos verificado.',
880
+ formatMismatch: 'El nombre del archivo adjunto y su tipo de contenido indican formatos de documento distintos. Comprueba el formato y vuelve a subirlo.',
881
+ invalidInline: 'Los datos del archivo adjunto no son válidos o son demasiado grandes. Vuelve a subirlo o usa un archivo más pequeño.',
882
+ fileTooLarge: 'Un adjunto supera su límite de tamaño. Usa un archivo más pequeño.',
883
+ inputTooLarge: 'Los adjuntos de la conversación superan el límite de entrada. Usa archivos más pequeños o empieza una conversación nueva.',
884
+ documentTooLarge: 'El adjunto supera el límite de texto extraído. Usa un archivo más pequeño.',
885
+ contextTooLarge: 'Los adjuntos de la conversación superan el límite de texto extraído. Usa archivos más pequeños o empieza una conversación nueva.',
886
+ fileCount: 'La conversación supera el límite de 100 archivos de entrada. Empieza una conversación nueva.',
887
+ nativeFileCount: 'La conversación supera el límite configurado de archivos nativos. Usa menos adjuntos o conviértelos a un documento de texto compatible.',
888
+ unreadable: 'El adjunto no contiene texto legible. Los documentos escaneados requieren OCR.',
889
+ extractionFailed: 'No se pudo extraer el texto del adjunto. Comprueba que el documento sea legible y vuelve a subirlo.',
890
+ extractionTimeout: 'Se agotó el tiempo de extracción del texto del adjunto. Usa un archivo más pequeño o inténtalo de nuevo.',
891
+ preparationFailed: 'No se pudo preparar el adjunto. Comprueba tu acceso y el formato del archivo e inténtalo de nuevo.',
892
+ },
859
893
  untitled: 'Conversación sin título',
860
894
  renamed: 'Renombrado',
861
895
  archivedNamed: 'Archivado “{{title}}”',
@@ -868,27 +902,27 @@ const esES = {
868
902
  agentArchived: 'No habilitado',
869
903
  forbidden: 'No disponible para ti',
870
904
  noModel: 'Configurar un modelo de chat primero',
871
- noRunner: 'Ningún ejecutor en línea, no se puede elegir',
872
- othersPersonal: 'Sólo los ejecutores personales de otros lo tienen.',
905
+ noRunner: 'Ningún entorno de ejecución en línea, no se puede elegir',
906
+ othersPersonal: 'Sólo los entornos de ejecución personales de otros lo tienen.',
873
907
  modelUnavailable: 'Modelo no disponible',
874
908
  },
875
909
  offline: {
876
- fallbackDone: 'Esta conversación ahora utiliza otro agente',
910
+ fallbackDone: 'Esta conversación ahora utiliza otro Agent',
877
911
  restoreDone: 'Regresado',
878
- newSession: 'El agente inicia una nueva sesión y lee esta conversación.',
912
+ newSession: 'El Agent inicia una nueva sesión y lee esta conversación.',
879
913
  },
880
914
  notice: {
881
915
  switchedToDefault: 'Se cambió a {{name}}, el valor predeterminado del sistema, hasta que regrese {{own}}.',
882
- switchedToOnline: '{{own}} no tiene ningún ejecutor para usted ahora, por lo que {{name}} responde hasta que {{own}} regrese.',
883
- onlineFallbackUnavailable: 'El agente de reserva en línea no puede responder ({{reason}}). Esta conversación permanece con {{own}} mientras espera un ejecutor.',
916
+ switchedToOnline: '{{own}} no tiene ningún entorno de ejecución para usted ahora, por lo que {{name}} responde hasta que {{own}} regrese.',
917
+ onlineFallbackUnavailable: 'El Agent de reserva en línea no puede responder ({{reason}}). Esta conversación permanece con {{own}} mientras espera un entorno de ejecución.',
884
918
  switchedAgent: 'Se cambió a {{name}}, conservando el historial de esta conversación.',
885
919
  switchedBack: 'De vuelta con {{name}}.',
886
- runFailed: 'El agente se detuvo antes de responder.',
887
- runFailedReason: 'El agente se detuvo antes de responder: {{reason}}',
920
+ runFailed: 'El Agent se detuvo antes de responder.',
921
+ runFailedReason: 'El Agent se detuvo antes de responder: {{reason}}',
888
922
  runCancelled: 'Cancelación solicitada.',
889
923
  },
890
924
  consultation: {
891
- unavailableTitle: 'Agente consultado no disponible',
925
+ unavailableTitle: 'Agent consultado no disponible',
892
926
  snapshotTitle: 'Solicitado {{name}} en su momento',
893
927
  title: 'Consultado {{name}}',
894
928
  },
@@ -898,32 +932,32 @@ const esES = {
898
932
  working: 'Trabajando en {{subject}}',
899
933
  },
900
934
  agents: {
901
- personalOnly: 'Solo ejecutores personales',
902
- hint: 'Enumera los agentes habilitados y dice por qué uno no puede responderle ahora. Las respuestas se ejecutan en un ejecutor: la primera respuesta espera a que uno la tome, generalmente unos segundos.',
903
- chooseFor: 'Elige un agente',
904
- empty: 'Ningún agente puedes elegir',
905
- none: 'Ningún agente',
906
- unknown: 'Agente desconocido',
907
- placeholder: 'Elige un agente',
935
+ personalOnly: 'Solo entornos de ejecución personales',
936
+ hint: 'Enumera los Agents habilitados y dice por qué uno no puede responderle ahora. Las respuestas se ejecutan en un entorno de ejecución: la primera respuesta espera a que uno la tome, generalmente unos segundos.',
937
+ chooseFor: 'Elige un Agent',
938
+ empty: 'Ningún Agent puedes elegir',
939
+ none: 'Ningún Agent',
940
+ unknown: 'Agent desconocido',
941
+ placeholder: 'Elige un Agent',
908
942
  myDefault: 'Mi valor predeterminado',
909
943
  systemDefault: 'Valor predeterminado del sistema',
910
944
  },
911
945
  },
912
946
  chatProfile: {
913
- loadFailed: 'No se pudo cargar la configuración de su agente',
914
- defaultAgent: 'Mi agente de chat predeterminado',
947
+ loadFailed: 'No se pudo cargar la configuración de su Agent',
948
+ defaultAgent: 'My Agent de chat predeterminado',
915
949
  systemDefault: 'Valor predeterminado del sistema',
916
950
  systemDefaultNamed: 'Valor predeterminado del sistema ({{name}})',
917
951
  noDefault: 'No se establece ningún valor predeterminado del sistema.',
918
- saved: 'Agente de chat predeterminado guardado',
952
+ saved: 'Agent de chat predeterminado guardado',
919
953
  },
920
954
  models: {
921
955
  title: 'Modelos',
922
- description: 'Los modelos de servicios que llaman los agentes en línea, y los modelos que ofrece cada uno: modelos de chat para agentes, modelos de incrustación y rerank para búsqueda.',
956
+ description: 'Los modelos de servicios que llaman los Agents en línea, y los modelos que ofrece cada uno: modelos de chat para Agents, modelos de incrustación y rerank para búsqueda.',
923
957
  },
924
958
  defaultModel: {
925
959
  title: 'Modelo de chat predeterminado',
926
- description: 'Los agentes en línea que no tienen modelos propios responden con ella, como un agente nuevo o uno que viene con la aplicación.',
960
+ description: 'Los Agents en línea que no tienen modelos propios responden con ella, como un Agent nuevo o uno que viene con la aplicación.',
927
961
  none: 'Aún no hay ningún modelo de chat activado. Añada un servicio modelo y active un modelo de chat: el primero se convierte en el predeterminado.',
928
962
  saved: 'El modelo de chat predeterminado ahora es {{model}}.',
929
963
  },
@@ -937,7 +971,7 @@ const esES = {
937
971
  loadFailed: 'No se pudieron cargar los servicios del modelo.',
938
972
  empty: {
939
973
  title: 'Aún no hay servicio de modelo',
940
- description: 'Una vez que agrega un servicio modelo, los agentes en línea pueden responder a través de él.',
974
+ description: 'Una vez que agrega un servicio modelo, los Agents en línea pueden responder a través de él.',
941
975
  readOnly: 'Pídale a un administrador que añada un servicio modelo.',
942
976
  },
943
977
  add: {
@@ -962,7 +996,7 @@ const esES = {
962
996
  turnedOff: '{{title}} está apagado.',
963
997
  name: 'Nombre',
964
998
  enabled: 'Habilitado',
965
- enabledHint: 'Los agentes en línea pueden usar sus modelos solo mientras está activado.',
999
+ enabledHint: 'Los Agents en línea pueden usar sus modelos solo mientras está activado.',
966
1000
  saved: '{{title}} guardado.',
967
1001
  delete: 'Eliminar',
968
1002
  deleteTitle: '¿Eliminar {{title}}?',
@@ -985,7 +1019,7 @@ const esES = {
985
1019
  },
986
1020
  models: {
987
1021
  title: 'Modelos',
988
- description: 'Verifique los modelos que ofrece este servicio y diga para qué sirve cada uno: modelos de chat que responden a los agentes, incrustación de texto de índice de modelos para búsqueda, modelos de reclasificación para ordenar resultados de búsqueda. Un modelo de incrustación puede solicitar vectores de un tamaño.',
1022
+ description: 'Verifique los modelos que ofrece este servicio y diga para qué sirve cada uno: modelos de chat que responden a los Agents, incrustación de texto de índice de modelos para búsqueda, modelos de reclasificación para ordenar resultados de búsqueda. Un modelo de incrustación puede solicitar vectores de un tamaño.',
989
1023
  fetching: 'Obteniendo los modelos del proveedor…',
990
1024
  fetchFailed: 'El proveedor no lista sus modelos: {{message}}',
991
1025
  fetch: 'Obtener modelos',
@@ -1083,10 +1117,10 @@ const esES = {
1083
1117
  loadFailed: 'No se pudieron cargar las habilidades',
1084
1118
  backToList: 'Volver a habilidades',
1085
1119
  emptyTitle: 'Aún no hay habilidades',
1086
- emptyDescription: 'Una vez que agrega una habilidad, los agentes leen su SKILL.md cada vez que una tarea lo requiere.',
1120
+ emptyDescription: 'Una vez que agrega una habilidad, los Agents leen su SKILL.md cada vez que una tarea lo requiere.',
1087
1121
  emptyReadOnly: 'Pídale a un administrador que añada una habilidad.',
1088
1122
  content: 'SKILL.md',
1089
- contentHint: 'El nombre de la portada es el nombre de la carpeta de la habilidad: cambiarlo cambia el nombre de la habilidad. La descripción les dice a los agentes cuándo leerla.',
1123
+ contentHint: 'El nombre de la portada es el nombre de la carpeta de la habilidad: cambiarlo cambia el nombre de la habilidad. La descripción les dice a los Agents cuándo leerla.',
1090
1124
  contentTooLarge: 'SKILL.md es más grande que {{max}}.',
1091
1125
  emptyContent: 'Esta habilidad aún no tiene contenido.',
1092
1126
  created: 'Habilidad creada "{{name}}"',
@@ -1099,14 +1133,14 @@ const esES = {
1099
1133
  edit: 'Editar',
1100
1134
  delete: 'Eliminar habilidad',
1101
1135
  deleteTitle: '¿Eliminar la habilidad "{{name}}"?',
1102
- deleteDescription: 'Cada agente y cada lugar que utilice esta habilidad por defecto la pierde.',
1136
+ deleteDescription: 'Cada Agent y cada lugar que utilice esta habilidad por defecto la pierde.',
1103
1137
  readOnly: 'Solo el creador de la habilidad y los administradores del espacio de trabajo pueden cambiar esta habilidad.',
1104
1138
  conflict: 'Alguien más acaba de cambiar esta habilidad. Se carga la última versión; intentar otra vez.',
1105
1139
  conflictTitle: 'Alguien más acaba de cambiar esta habilidad.',
1106
1140
  conflictDraft: 'Alguien guardó una nueva versión después de que usted comenzó a editar, por lo que sus cambios no se guardaron. Copie lo que desea conservar, luego cargue la última versión y edítela nuevamente.',
1107
1141
  loadLatest: 'Cargar la última versión',
1108
- mountedAgents: 'Agentes adjuntos',
1109
- noAgents: 'Aún no está vinculado a ningún agente.',
1142
+ mountedAgents: 'Agents adjuntos',
1143
+ noAgents: 'Aún no está vinculado a ningún Agent.',
1110
1144
  defaults: 'Habilidad predeterminada de: {{places}}.',
1111
1145
  defaultsSeparator: ', ',
1112
1146
  files: 'Archivos',
@@ -1119,7 +1153,7 @@ const esES = {
1119
1153
  binaryFile: 'Archivo binario, {{size}}. No se puede editar aquí.',
1120
1154
  executable: 'Ejecutable',
1121
1155
  scriptBadge: 'Guión',
1122
- scriptsNote: 'Tiene scripts: los agentes en línea pueden leerlos pero nunca ejecutarlos',
1156
+ scriptsNote: 'Tiene scripts: los Agents en línea pueden leerlos pero nunca ejecutarlos',
1123
1157
  compatibility: 'Compatibilidad: {{value}}',
1124
1158
  fileContent: 'Contenido de {{path}}',
1125
1159
  export: 'Exportar',
@@ -1150,8 +1184,8 @@ const esES = {
1150
1184
  name: 'Nombre',
1151
1185
  renameTitle: 'Cambiar el nombre de "{{name}}"',
1152
1186
  conventional: {
1153
- scripts: 'Los agentes de código pueden ejecutarse. Los agentes en línea solo lo leen.',
1154
- references: 'Los agentes de documentación leen cuando la necesitan.',
1187
+ scripts: 'Los Agents de código pueden ejecutarse. Los Agents en línea solo lo leen.',
1188
+ references: 'Los Agents de documentación leen cuando la necesitan.',
1155
1189
  assets: 'Plantillas, imágenes y otros recursos.',
1156
1190
  },
1157
1191
  problems: {
@@ -1186,7 +1220,7 @@ const esES = {
1186
1220
  },
1187
1221
  },
1188
1222
  template: {
1189
- description: 'Qué hace esta habilidad y cuándo un agente debe usarla.',
1223
+ description: 'Qué hace esta habilidad y cuándo un Agent debe usarla.',
1190
1224
  title: 'Nueva habilidad',
1191
1225
  whenToUse: 'Cuándo usar',
1192
1226
  whenToUseHint: 'Describa las tareas que requieren esta habilidad.',
@@ -1205,7 +1239,7 @@ const esES = {
1205
1239
  },
1206
1240
  versions: {
1207
1241
  title: 'Versiones',
1208
- description: 'Cada guardado crea una nueva versión; los agentes siempre reciben la versión más reciente.',
1242
+ description: 'Cada guardado crea una nueva versión; los Agents siempre reciben la versión más reciente.',
1209
1243
  current: 'Actual',
1210
1244
  compare: 'Comparar',
1211
1245
  compareTitle: 'Versión {{version}} → versión {{current}}',
@@ -1213,7 +1247,7 @@ const esES = {
1213
1247
  unchanged: 'sin cambios',
1214
1248
  restore: 'Restaurar',
1215
1249
  restoreTitle: '¿Restaurar versión {{version}}?',
1216
- restoreDescription: 'Se guarda nuevamente como la versión más nueva; los agentes lo obtienen en su próxima carrera. No se pierde nada: la versión actual permanece en el historial.',
1250
+ restoreDescription: 'Se guarda nuevamente como la versión más nueva; los Agents lo obtienen en su próxima carrera. No se pierde nada: la versión actual permanece en el historial.',
1217
1251
  restored: 'Versión restaurada {{version}} como versión {{current}}.',
1218
1252
  },
1219
1253
  },
@@ -1222,26 +1256,28 @@ const esES = {
1222
1256
  reasons: {
1223
1257
  updatePending: 'Ejecutor esperando actualización; el nuevo trabajo está en pausa',
1224
1258
  pruning: 'Ejecutor limpiando tienda compartida; el nuevo trabajo está en pausa',
1225
- toolNotInstalled: 'Ningún ejecutor conectado tiene esta herramienta instalada',
1226
- incompatible: 'Los ejecutores conectados no soportan esta carga de trabajo; actualización requerida',
1227
- restricted: 'Restricciones de políticas, directorios o variables del ejecutor',
1259
+ toolNotInstalled: 'Ningún entorno de ejecución conectado tiene esta herramienta instalada',
1260
+ incompatible: 'Los entornos de ejecución conectados no soportan esta carga de trabajo; actualización requerida',
1261
+ restricted: 'Restricciones de políticas, directorios o variables del entorno de ejecución',
1228
1262
  unknown: 'La elegibilidad de la carga de trabajo no está establecida',
1229
- agentArchived: 'El agente está archivado',
1263
+ agentArchived: 'El Agent está archivado',
1230
1264
  delayed: 'Programado para {{until}}',
1231
- noRunnerOnline: 'Sin tiempo de ejecución en línea',
1232
- runnersOffline: 'Sus tiempos de ejecución están fuera de línea',
1265
+ noRunnerOnline: 'Sin entorno de ejecución en línea',
1266
+ runnersOffline: 'Sus entornos de ejecución están fuera de línea',
1267
+ toolQuota: 'Cuota de la herramienta agotada; restablecimiento: {{until}}',
1233
1268
  toolUnavailable: 'Herramienta no iniciada, deshabilitada o modelo solicitado no disponible ({{tool}})',
1234
- noSharedRunner: 'Sólo los ejecutores personales de otras personas están en línea',
1235
- missingFeatures: 'Ningún tiempo de ejecución admite {{features}}',
1236
- secretsNotAllowed: 'Necesita un tiempo de ejecución en equipo: {{variables}} es solo para tiempos de ejecución en equipo',
1269
+ noSharedRunner: 'Sólo los entornos de ejecución personales de otras personas están en línea',
1270
+ missingFeatures: 'Ningún entorno de ejecución admite {{features}}',
1271
+ secretsNotAllowed: 'Necesita un entorno de ejecución en equipo: {{variables}} es solo para entornos de ejecución en equipo',
1237
1272
  sameWorkActive: 'Después de la ejecución ya en él',
1238
1273
  concurrencyFull: 'Simultaneidad completa ({{active}}/{{limit}})',
1239
- runnersBusy: 'Los ejecutores compatibles están llenos',
1274
+ runnersBusy: 'Los entornos de ejecución compatibles están llenos',
1240
1275
  toolSlotsFull: 'Ranuras {{tool}} llenas ({{used}}/{{limit}})',
1241
1276
  setupRetrying: 'Falló su preparación; reintentando: {{detail}}',
1242
- next: 'Siguiente para un tiempo de ejecución gratuito',
1277
+ next: 'Siguiente para un entorno de ejecución gratuito',
1243
1278
  },
1244
1279
  unknown: 'En cola ({{reason}})',
1280
+ quotaResetUnknown: 'desconocido',
1245
1281
  unknownValue: '—',
1246
1282
  },
1247
1283
  access: {
@@ -1253,12 +1289,12 @@ const esES = {
1253
1289
  description: 'Los agentes del equipo y las habilidades que utilizan.',
1254
1290
  actions: {
1255
1291
  edit: {
1256
- title: 'Agentes de cambio y habilidades',
1257
- description: 'Cambiar la configuración, habilidades y variables de un agente, archivarlo, restaurarlo y eliminarlo, y editar habilidades. Un agente no tiene ninguna capacidad más allá de la del editor.',
1258
- related: 'Agentes de cambio y habilidades (agentes que poseen y habilidades que crearon)',
1292
+ title: 'Agents de cambio y habilidades',
1293
+ description: 'Cambiar la configuración, habilidades y variables de un Agent, archivarlo, restaurarlo y eliminarlo, y editar habilidades. Un Agent no tiene ninguna capacidad más allá de la del editor.',
1294
+ related: 'Agents de cambio y habilidades (Agents que poseen y habilidades que crearon)',
1259
1295
  relatedLabel: 'Agentes que poseo y habilidades que creé',
1260
1296
  relatedHint: 'Agentes de los que soy propietario y habilidades que creé',
1261
- all: 'Agentes de cambio y habilidades (todos)',
1297
+ all: 'Agents de cambio y habilidades (todos)',
1262
1298
  },
1263
1299
  },
1264
1300
  },
@@ -1278,11 +1314,11 @@ const esES = {
1278
1314
  keyScopes: {
1279
1315
  agents: {
1280
1316
  title: 'Agentes',
1281
- description: 'Ver agentes, habilidades y carreras; cambiar agentes y habilidades, cancelar y reintentar ejecuciones.',
1317
+ description: 'Ver Agents, habilidades y carreras; cambiar Agents y habilidades, cancelar y reintentar ejecuciones.',
1282
1318
  },
1283
1319
  runners: {
1284
1320
  title: 'Entornos de ejecución',
1285
- description: 'Ver ejecutores y tokens de registro; gestionar ejecutores.',
1321
+ description: 'Ver entornos de ejecución y tokens de registro; gestionar entornos de ejecución.',
1286
1322
  },
1287
1323
  prices: {
1288
1324
  title: 'Precios de los modelos',